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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.01.2020, 13:14   #1  
oleggy is offline
oleggy
Участник
 
253 / 36 (2) +++
Регистрация: 03.12.2019
Адрес: Россия
DAX2009: как снять галочку в диалоговой форме
Привет.
Имеется генерируемая форма диалогового окна:
X++:
    NoYesId selectResigned, selectUpdateEmplId;
    EmplId emplId;
    DialogGroup dialogGroupUpdateAll, dialogGroupUpdateEmplId;
    DialogField dialogFieldResigned, dialogFieldEmplId;

    #define.CurrentVersion(1)

    #localmacro.CurrentList
        selectResigned
        , selectUpdateEmplId
        , emplId
    #endmacro

protected Object dialog()
{
    DialogRunBase dialog = super();
    ;

    dialogGroupUpdateAll = dialog.addGroup("настройки");
    dialogFieldResigned = dialog.addFieldValue(typeid(NoYesId), selectResigned, "установка");

    dialogGroupUpdateEmplId = dialog.addGroup("Обновить");
    dialogGroupUpdateEmplId.frameOptionButton(FormFrameOptionButton::Check);

    dialogFieldEmplId = dialog.addFieldValue(typeid(EmplId), emplId, "Выбор");

    return dialog;
}

public boolean getFromDialog()
{
    boolean ret;
    ;

    ret = super();

    if (ret)
    {
        selectResigned = dialogFieldResigned.value();
        selectUpdateEmplId = dialogGroupUpdateEmplId.value();
        emplId = dialogFieldEmplId.value();
    }

    return ret;
}
Подскажите по 2 вопросам:
Хотелось бы что бы по умолчанию в поле:
dialogFieldEmplId - хранилось пустое значение ('') вместо "0".
dialogGroupUpdateEmplId - была снята галочка, вместо установленной.
И еще, где этот код нужно дополнительно вписать? В методе dialogPostRun ?

Последний раз редактировалось oleggy; 21.01.2020 в 13:27.
Старый 21.01.2020, 13:51   #2  
online
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,651 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
1. initParmDefault() - метод, который выполняется при первом запуске экземпляра класса, если нет записей в кеше. Т.е. если unpack() возвращает false. Здесь инициализируются значения переменных selectResigned и emplId

2. При повторном вызове экземпляра класса значения переменных извлекаются из сохраненного кеша при помощи методов pack()/unpack()

pack() - это просто список значений
unpack() - это собственно извлечение из кеша
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 21.01.2020, 13:55   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,427 / 1771 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Вы можете инициализировать элемент управления при его создании при помощи второго параметра метода addFieldValue.
Либо после создания, записав нужное значение в метод .value()
Старый 21.01.2020, 17:43   #4  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
642 / 347 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Вы можете инициализировать элемент управления при его создании при помощи второго параметра метода addFieldValue.
Что касается полей, то все делают также. В вашем примере сделано именно так. Скорее всего значение "0" передается из метода unpack(). Просто почистите кэш.
Для группы полей используйте метод optionValue(boolean). Делается это в методе dialog().
__________________
// no comments

Последний раз редактировалось dech; 21.01.2020 в 17:51.
Старый 05.02.2020, 13:53   #5  
oleggy is offline
oleggy
Участник
 
253 / 36 (2) +++
Регистрация: 03.12.2019
Адрес: Россия
Подскажите еще.

А если есть системная форма. Каким способом в ней можно поменять значение динамически? Программно?

К примеру есть форма DirParameters.
В ней есть поле PersonNameOrder. Какими методами можно поменять значение? Значение данного поля - список.
Старый 06.02.2020, 18:58   #6  
astralsun is offline
astralsun
Участник
 
16 / 19 (1) ++
Регистрация: 17.04.2018
Цитата:
Сообщение от oleggy Посмотреть сообщение
А если есть системная форма. Каким способом в ней можно поменять значение динамически? Программно?

К примеру есть форма DirParameters.
В ней есть поле PersonNameOrder. Какими методами можно поменять значение? Значение данного поля - список.
программно передать в поле нужное значение в зависимости от необходимых условий
Старый 07.02.2020, 14:04   #7  
БАХ43 is offline
БАХ43
Участник
 
92 / 54 (2) ++++
Регистрация: 15.02.2013
Адрес: г.Москва, г. Зеленоград
Не забудь, чтобы иметь программно доступ к элементу формы, надо выставить свойство AutoDeclaration = Yes
Дальше просто:
X++:
PersonNameOrder.value(Myspisok::MyElement);
__________________
Я прибыл к вам из Кантемировской дивизии. А там, как известно, дураков не держат!

Последний раз редактировалось БАХ43; 07.02.2020 в 14:07.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
стандартные кнопки в диалоговой форме отчета Nikit DAX: Программирование 4 14.10.2012 15:36
DAX2009 программное создание Control на форме polygris DAX: Программирование 6 24.05.2011 13:01
снять сопоставление проводок IKA DAX: Функционал 3 29.11.2010 21:01
Как правильно связать таблицы в форме? Как показать параметры партии? mazzy DAX: Программирование 10 27.10.2010 15:56
Заполнение полей на диалоговой форме и передача их в запрос Ilyaae DAX: Программирование 1 30.07.2010 03:31
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:23.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.