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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.07.2008, 15:55   #4  
petergunn is offline
petergunn
Участник
 
118 / 274 (10) ++++++
Регистрация: 30.08.2005
Адрес: Tyumen
DialogField.fieldControl([...])
Цитата:
Сообщение от glibs Посмотреть сообщение
Интересно стало.

Вот один из способов достижения результата. Код, правда, не дописан. Но как академический пример сойдет.

X++:
#Define.underline("_")
#Define.fieldNameTemplate("\%1_\%2")
static server void glibs(Args _args)
{
    Dialog              dialog = new Dialog();
    DialogField         dialogField;
    FormStringControl   formStringControl;
    FieldName           fieldName;
    Counter             pos,
                        i;
    ;

    dialogField = dialog.addField(typeid(Dimension));
    fieldName = dialogField.name();
    pos = strfind(fieldName, #underline, 1, 9999);
    if (pos)
    {
        fieldName = substr(fieldName, 1, pos - 1);
    }
    for (i = 1; i <= 3; i++)
    {
        if (i != SysDimension::Department + 1)
        {
            formStringControl = dialogField.control(strfmt(#fieldNameTemplate, fieldName, i));
            formStringControl.visible(false);
        }
    }
    formStringControl = dialogField.control(dialogField.name());
    dialog.run();

}
Есть вариант написать альтернативный .addField() в классе Dialog.

Но это теория. Просто хотелось разобраться и узнать что-то новое. На практике лучше так не делать. Проще создать расширенный тип. Я так делаю всегда.
Для академичности примера лучше воспользоваться методом dialogField.fieldControl() для перебора диалоговых полей EDT Dimension, вариация приведенного job на эту тему:
X++:
static void jobDimensionFields(Args _args)
{
    Dialog              dialog              ;
    DialogField         dialogFieldDimension;
    FormStringControl   formStringControl   ;
    Counter             idx                 ;
    ;
    
    dialog = new Dialog() ;
    dialogFieldDimension = dialog.addField(typeId(Dimension));
 
    for( idx=2; idx<=Dimensions::numOfDimensions(); idx++ )
    {
        formStringControl = dialogFieldDimension.fieldControl(idx) ;
        formStringControl.visible( false ) ;
    }
 
    dialog.run() ;
}
За это сообщение автора поблагодарили: glibs (1).
Теги
аналитика

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Финансовые аналитики jiller DAX: Программирование 18 14.07.2011 14:33
Код новой фин. аналитики DAX 4.0 Ivanhoe DAX: Программирование 4 13.05.2008 15:23
Сравнение в разрезе складской аналитики. longson DAX: Программирование 3 14.01.2008 13:45
Учёт остатков в разрезе фин. аналитики miklenew DAX: Программирование 11 06.11.2007 20:01
Допустимо ли так использовать фин. аналитики kosenkov DAX: Функционал 5 26.02.2006 18:17

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

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

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