Я создал оплату экрана Экран Acumatica и выписал ее. См. Следующий снимок экрана.Вставить/Отправить RefNbr в другую базу данных в системе Acumatica ERP
Я уже создать следующий код, чтобы обеспечить его.
protected virtual void APPayment_RowPersisted(PXCache sender, PXRowPersistedEventArgs e)
{
string serverJade, dbJade, userJade, passJade;
serverJade = Properties.Settings.Default.serverJade;
dbJade = Properties.Settings.Default.dbJade;
userJade = Properties.Settings.Default.userJade;
passJade = Properties.Settings.Default.passJade;
APPayment app = (APPayment)e.Row;
if (e.Operation == PXDBOperation.Update && e.TranStatus == PXTranStatus.Completed)
{
if (app.DocType == APPaymentType.Check || app.DocType == APPaymentType.Prepayment)
{
if (app.RefNbr != null)
{
using (SqlConnection con = new SqlConnection("server = " + serverJade + "; database = " + dbJade + "; user = " + userJade + "; password = " + passJade + ""))
{
con.Open();
//---- query to update a field in the table of another database -------//
string query = "Update EVMaster set AcuRefNo = '" + app.RefNbr + "' where VchNo = 'DD02/16-VIII/12206-VCH-01'";
using (SqlCommand com = new SqlCommand(query, con))
{
SqlDataReader sdr = com.ExecuteReader();
sdr.Close();
}
con.Close();
}
}
}
}
}
Я уже пытался отладить этот код, но не работал. И затем я пытаюсь использовать этот код.
protected virtual void APPayment_RowPersisted(PXCache sender, PXRowPersistedEventArgs e)
{
string serverJade, dbJade, userJade, passJade;
serverJade = Properties.Settings.Default.serverJade;
dbJade = Properties.Settings.Default.dbJade;
userJade = Properties.Settings.Default.userJade;
passJade = Properties.Settings.Default.passJade;
APPayment app = (APPayment)e.Row;
if (app.DocType == APPaymentType.Check || app.DocType == APPaymentType.Prepayment)
{
if (app.RefNbr != null)
{
using (SqlConnection con = new SqlConnection("server = " + serverJade + "; database = " + dbJade + "; user = " + userJade + "; password = " + passJade + ""))
{
con.Open();
//---- query to update a field in the table of another database -------//
string query = "Update EVMaster set AcuRefNo = '" + app.RefNbr + "' where VchNo = 'DD02/16-VIII/12206-VCH-01'";
using (SqlCommand com = new SqlCommand(query, con))
{
SqlDataReader sdr = com.ExecuteReader();
sdr.Close();
}
con.Close();
}
}
}
}
Коды выше работала, я просто удалить, если условие (если (e.Operation == PXDBOperation.Update & & e.TranStatus == PXTranStatus.Completed) {}).
Но это не моя цель, я должен отфильтровать документ только для Doc Status = 'print' из документа, и этот процесс будет выполнен, когда была нажата кнопка «Release».
А также любая идея, как получить все записи в APAdjust текущего документа? потому что мне нужно сравнить adjgrefnbr в apadjust с refnbr в APInvoice на основе adjgrefnbr (apadjust) = refnbr (apinvoice). Поэтому я могу получить также все записи APinvoice, основанные на refnbr (APinvoice) = ajgrefnbr (текущий apadjust). Это условие используется для того, чтобы условие «где» не должно быть жестко запрограммировано, я буду использовать переменную для ее предоставления.
любые предложения, чтобы решить эту проблему?
Благодарим вас за ответ. Оно работает. – HariEko