AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.09.2008, 19:26   #1  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
! Вызов метода 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)
{......
по formRun.wait(); запускается форма. Проставляются пару параметров. и Ок.
Ок вызывает
X++:
public void closeOk()
{
    super();
    element.args().caller().setOfficialsParams(Position.selection(),/ Name.valueStr(), Title.valueStr());

}
но как я понял по трасировке вызов метода setOfficialsParams у Form1 не происходит.

X++:
void setOfficialsParams(OffPosition_RU _offPosition, Name _offName, TitleId _offTitle)
{
    offPosition = _offPosition;
    offName     = _offName;
    offTitle    = _offTitle;
       //  breakpoint;
}
и соотвественно условие if (formRun.closedOk() && offName) не отрабатывается.

Поле OffName обязательно должно заноситься.

Почему не вызывается метод element.args().caller().setOfficialsParams( .... ?
Старый 04.09.2008, 19:30   #2  
dns is offline
dns
Участник
 
19 / 13 (1) ++
Регистрация: 11.05.2007
public void closeOk()
{
super();
element.args().caller().setOfficialsParams(Position.selection(),/ Name.valueStr(), Title.valueStr());
}


super() - вызывает закрытие формы и до второй строчки дело не доходит... легко проверяется трассировщиком
За это сообщение автора поблагодарили: Poleax (2).
Старый 04.09.2008, 19:33   #3  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
поставьте строку
X++:
element.args().caller().setOfficialsParams(Position.selection(),/ Name.valueStr(), Title.valueStr());
перед super()
За это сообщение автора поблагодарили: Poleax (2).
Старый 04.09.2008, 19:41   #4  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
написание
X++:
public void closeOk()
{
    element.args().caller().setOfficialsParams(Position.selection(),Name.valueStr(), Title.valueStr());
    super();
}
не помогло. Трасировщик проходит проходит по строке element.args().caller().setOfficialsParams(Position.selection(),Name.valueStr(), Title.valueStr());
но в метод setOfficialsParams НЕ заходит. просто спокойно его опускает.

В методе setOfficialsParams стоит точка останова и даже писал breakpoint;

Последний раз редактировалось Poleax; 04.09.2008 в 19:43.
Старый 04.09.2008, 19:47   #5  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
Забыл сказать Axapta 3.0 SP3
Старый 04.09.2008, 19:47   #6  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Чудеса Разнесите эту длинную строку:
Object callerFromRun = element.args().caller();
;
if (callerFromRun && formhasMethod(callerFromRun, identifierstr(setOfficialsParams)))
{
callerFromRun.setOfficialsParams(...);
}

дебаг, проверте параметры в вызове setOfficialsParams()
Старый 04.09.2008, 19:49   #7  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
Спасибо все получилось. Точно super() надо было после. Все песпект. Щас балы прибавлю
Теги
ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Использование caller в args Zoe DAX: Программирование 3 23.04.2008 12:18
вызов метода из таблицы в операторе while select V777 DAX: Программирование 7 23.04.2008 09:11
args.caller() и .dialog maximka DAX: Программирование 2 04.06.2007 13:27
args.caller() Кирилл DAX: Программирование 3 15.04.2004 12:06
args().caller() - ссылка puz DAX: Программирование 2 16.09.2003 12:49

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 22:23.