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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.10.2009, 17:34   #1  
Bishop is offline
Bishop
Участник
 
89 / 60 (3) ++++
Регистрация: 12.08.2004
Адрес: Москва
Цитата:
Сообщение от Poleax Посмотреть сообщение
\Classes\RAssetReport
добавил методы модификации на поля:
X++:
void dateField_modified()
{
    ;
    info('dateField_modified');
    breakpoint;
}
 
void numberField_modified()
{
    ;
    info('numberField_modified');
    breakpoint;
}
при изменений полей даты документа или номера документа "Акт приемки оборудования (№ ОС-14)"
Извините за дурацкий вопрос...
А вы уверены, что созданные контролы на диалоге имеют имена "dateField" и "numberField" ?
В стандарте они создаются как "Fld1_1" и "Fld2_1". Соответственно, методы должны называться fld1_1_modified() и fld2_1_modified().
Старый 15.10.2009, 17:40   #2  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
Цитата:
Сообщение от Bishop Посмотреть сообщение
Извините за дурацкий вопрос...
А вы уверены, что созданные контролы на диалоге имеют имена "dateField" и "numberField" ?
В стандарте они создаются как "Fld1_1" и "Fld2_1". Соответственно, методы должны называться fld1_1_modified() и fld2_1_modified().
в AX 3.0 SP6 \Classes\RAssetReport\classDeclaration
X++:
    DialogField             dateField;
    DialogField             numberField;
Не наблюдаю "Fld1_1" и "Fld2_1"
За это сообщение автора поблагодарили: Lemming (-2).
Старый 15.10.2009, 17:42   #3  
Bishop is offline
Bishop
Участник
 
89 / 60 (3) ++++
Регистрация: 12.08.2004
Адрес: Москва
Цитата:
Сообщение от Poleax Посмотреть сообщение
в AX 3.0 SP6 \Classes\RAssetReport\classDeclaration
X++:
    DialogField             dateField;
    DialogField             numberField;
Не наблюдаю "Fld1_1" и "Fld2_1"
А вы посмотрите на форме диалога по правой кнопке в Настройках - увидите совсем другие имена...
dateField и numberField - названия переменных, а названия контролов совсем другие.
Посмотрите также методы dialog.addField() и dialogField.fieldName() - все станет ясно...
За это сообщение автора поблагодарили: Lemming (4), Poleax (2).
Старый 15.10.2009, 17:57   #4  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
Цитата:
Сообщение от Bishop Посмотреть сообщение
А вы посмотрите на форме диалога по правой кнопке в Настройках - увидите совсем другие имена...
dateField и numberField - названия переменных, а названия контролов совсем другие.
Посмотрите также методы dialog.addField() и dialogField.fieldName() - все станет ясно...
Ты абсолютно прав, чет я запарился уже
Старый 15.10.2009, 18:05   #5  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от Bishop Посмотреть сообщение
В стандарте они создаются как "Fld1_1" и "Fld2_1". Соответственно, методы должны называться fld1_1_modified() и fld2_1_modified().
Вспомнил свою цитату:
Цитата:
Сообщение от Gustav Посмотреть сообщение
Можно перейти от fld5_1 к "нормальному" названию поля типа "Kontragent", создав переменную контрола соответствующего типа, и тогда метод приобретет более осмысленное название типа Kontragent_modified(). Соответственно, никаких проблем с последующим добавлением полей в серединку не возникнет. Делал такое в Ax 3.0 sp4.
Там обещал выложить, а здесь-таки выложу:
X++:
static void Job220(Args _args)
{
    Dialog              dialog = new Dialog('Наш диалог');

    FormStringControl   fscOKOFCode;
    FormIntControl      ficLifeTime;

    DialogField         fieldOKOFCode;
    DialogField         fieldLifeTime;
    ;

    fieldOKOFCode   = dialog.addField(Types::String,'ОКОФ');
    fieldLifeTime   = dialog.addField(Types::Integer, 'Срок амортизации');

    fscOKOFCode     = fieldOKOFCode.fieldControl();
    ficLifeTime     = fieldLifeTime.fieldControl();

    fscOKOFCode.name('OKOFCode');
    ficLifeTime.name('LifeTime');

    dialog.doInit();

    dialog.formRun().controlMethodOverload( true );
    dialog.formRun().controlMethodOverloadObject( new KKu_TestForPoleax( dialog ));
    // KKu_TestForPoleax - класс, содержащий метод OKOFCode_modified

    dialog.run();

    // опытным путём было установлено, что здесь еще раз необходима инициализация переменных,
    // чтобы дальше ими свободно оперировать
    fscOKOFCode = dialog.formRun().design().controlName('OKOFCode');
    ficLifeTime = dialog.formRun().design().controlName('LifeTime');

    if(dialog.closedOk())
    {
        box::info(strFmt('ОКОФ: %1, Срок: %2', fscOKOFCode.text(), ficLifeTime.value()));
    }
}
Создайте у себя класс KKu_TestForPoleax:
X++:
class KKu_TestForPoleax
{
    Dialog dialog;
}

void new(Dialog _dialog)
{
    ;
    dialog = _dialog;
}

public boolean OKOFCode_modified()
{
    boolean             ret;
    FormStringControl   me = dialog.formRun().controlCallingMethod();
    ;

    ret = me.modified(); // как super()

    box::info('Привет, Poleax! Вон оно, оказывается, как надо было!');

    return ret;
}
и потом запустите вышеуказанный Job220

Последний раз редактировалось Gustav; 15.10.2009 в 18:43.
За это сообщение автора поблагодарили: Poleax (4).
Старый 15.10.2009, 18:44   #6  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Всё! ПолучИте законченный пример - джоб и класс к нему (см. выше).
Теги
dialog, modified, runbase

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Можно ли динамически созданному контролу CheckBox прикрутить метод modified? Poleax DAX: Программирование 4 31.03.2009 19:58
метод Modified к stringControl Poleax DAX: Программирование 15 21.07.2008 18:39
Форма: как привязать метод до выбора в поле Arahnid DAX: Программирование 9 22.11.2007 16:18
Метод на поле датасурса. Deusik DAX: Программирование 6 09.11.2006 16:38
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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