07.07.2008, 13:41 | #1 |
Участник
|
Передача параметра в Запрос(Query)
Добрый день!
Подскажите, пожалуйста, решение следующей проблемы: Форма FormA вызывает FormB через MenuItem (соответственно, явно данные не передаются из одной формы в другую...). На FormB запускается запрос (Query), одним из параметров которого должен служить Код клиента выбранной записи на FormA. Сам вопрос: Каким образом можно передать значение одного поля DS FormA в FormB (точнее, в FormB используется таблица CustTable, из которой забирается значение поля AccountNum (Код клиента), и по его значению зацепляются строки таблицы CustConfirm для Form2)? Скажу сразу, что часть кода, написанная в формировании запроса X++: CustAccount z_CodClient; X++: Args args = new Args(); CustConfirmOfPaymentTrans custConfirmOfPaymentTrans; ; //Задаем значение для Кода клиента (считываем из вызывающей формы) z_custConfirmOfPaymentTrans = args.record(); z_CodClient = custConfirmOfPaymentTrans.CustAccount; Подскажите, пожалуйста, в чем может быть причина такой ошибки и как ее избежать... Спасибо всем заранее! |
|
07.07.2008, 13:43 | #2 |
Участник
|
Простите, пожалуйста, за невнятный код! Я повторю его:
X++: CustAccount CodClient; Args args = new Args(); CustConfirmOfPaymentTrans custConfirmOfPaymentTrans; ; //Задаем значение для Кода клиента (считываем из вызывающей формы) custConfirmOfPaymentTrans = args.record(); CodClient = custConfirmOfPaymentTrans.CustAccount; |
|
07.07.2008, 14:02 | #3 |
MCTS
|
Не
X++: Args args = new Args(); X++: Args args = element.args(); |
|
07.07.2008, 14:04 | #4 |
Axapta
|
У кнопки с MenuItem на FormA заполняете поле DataSource, затем в FormB считываете custTable через element.args().record(). В AOT полно примеров. А вы из только что проинициализированного (и потому "пустого") args пытаетесь какой-то record получить.
|
|
07.07.2008, 15:22 | #5 |
Участник
|
Спасибо Всем огромное! В самом деле, перестав переинициализировать args и записав вот так (как посоветовал IvanOFF )
X++: Args args = element.args(); CustConfirmOfPaymentTrans custConfirmOfPaymentTrans;
CustTable CustTable;
;
//Задаем значение для Кода клиента (считываем из вызывающей формы)
CustTable = args.record();
CodClient = CustTable.AccountNum; все заработало без проблем! Спасибо!!! |
|
07.07.2008, 15:27 | #6 |
Axapta
|
Лучше так.
X++: Args args = element.args(); CustTable ustTable; ; if (element.args() && element.args().dataset() == tableNum(CustTable)) { ustTable = args.record(); odClient = custTable.AccountNum; } |
|