04.09.2008, 19:26 | #1 |
Модератор
|
Вызов метода element.args().caller().setOfficialsParams(....
Помогите прояснить почему параметры не передаются.
Есть форма Form1. На ней кнопка с вызовом другой формы OfficialsSelect. При нажатии этой кнопки форме той передаются параметры: X++: void clicked() { Args args; Object formRun; OfficialsTrans_RU officialsTrans; ; super(); args = new Args(); args.name(formstr(OfficialsSelect)); args.caller(element); formRun = classfactory.formRunClass(args); formRun.init(); formRun.run(); formRun.wait(); if (formRun.closedOk() && offName) {...... Ок вызывает X++: public void closeOk() { super(); element.args().caller().setOfficialsParams(Position.selection(),/ Name.valueStr(), Title.valueStr()); } X++: void setOfficialsParams(OffPosition_RU _offPosition, Name _offName, TitleId _offTitle) { offPosition = _offPosition; offName = _offName; offTitle = _offTitle; // breakpoint; } Поле OffName обязательно должно заноситься. Почему не вызывается метод element.args().caller().setOfficialsParams( .... ? |
|
04.09.2008, 19:30 | #2 |
Участник
|
public void closeOk()
{ super(); element.args().caller().setOfficialsParams(Position.selection(),/ Name.valueStr(), Title.valueStr()); } super() - вызывает закрытие формы и до второй строчки дело не доходит... легко проверяется трассировщиком |
|
|
За это сообщение автора поблагодарили: Poleax (2). |
04.09.2008, 19:33 | #3 |
Боец
|
поставьте строку
X++: element.args().caller().setOfficialsParams(Position.selection(),/ Name.valueStr(), Title.valueStr()); |
|
|
За это сообщение автора поблагодарили: Poleax (2). |
04.09.2008, 19:41 | #4 |
Модератор
|
написание
X++: public void closeOk() { element.args().caller().setOfficialsParams(Position.selection(),Name.valueStr(), Title.valueStr()); super(); } но в метод setOfficialsParams НЕ заходит. просто спокойно его опускает. В методе setOfficialsParams стоит точка останова и даже писал breakpoint; Последний раз редактировалось Poleax; 04.09.2008 в 19:43. |
|
04.09.2008, 19:47 | #5 |
Модератор
|
Забыл сказать Axapta 3.0 SP3
|
|
04.09.2008, 19:47 | #6 |
Боец
|
Чудеса Разнесите эту длинную строку:
Object callerFromRun = element.args().caller(); ; if (callerFromRun && formhasMethod(callerFromRun, identifierstr(setOfficialsParams))) { callerFromRun.setOfficialsParams(...); } дебаг, проверте параметры в вызове setOfficialsParams() |
|
04.09.2008, 19:49 | #7 |
Модератор
|
Спасибо все получилось. Точно super() надо было после. Все песпект. Щас балы прибавлю
|
|
Теги |
ax3.0 |
|
Похожие темы | ||||
Тема | Ответов | |||
Использование caller в args | 3 | |||
вызов метода из таблицы в операторе while select | 7 | |||
args.caller() и .dialog | 2 | |||
args.caller() | 3 | |||
args().caller() - ссылка | 2 |
|