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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.04.2008, 17:08   #1  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
Как программно обращаться к полям диалога, созданным на основе типа Dimension
Есть класс в методе Dialog которого создается поле
X++:
dialogDimensionCriteria = dialog.addFieldValue(typeId(DimensionCriteria), dimensionCriteria);
//..
В результате создается не одно поле, а столько, сколько фининсовых аналитик в системе.

Вопрос, как программно обратиться к каждому из этих контролов.

Вариант:
X++:
FormStringControl fs;
;
fs = dialogDimensionCriteria.control();
ошибок не выдает но и не работает.

Можно попробовать обратиться через

X++:
dialog.form().design().control()
но как узнать id нужного контрола
Старый 22.04.2008, 17:37   #2  
Sergey Petrov is offline
Sergey Petrov
Участник
 
80 / 19 (1) ++
Регистрация: 03.04.2007
Адрес: Saint-Petersburg, Russia
Меня спасло создание отдельных пользовательских типов на основе типа SysGroup, причём в настройке Relations указать 2 строки: <тип> == Dimensions.Num и <номер аналитики, начиная с 0> == Dimensions.DimensionCode. А потом этот новый тип уже использовать в диалоге.
Старый 23.04.2008, 09:16   #3  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
Цитата:
Сообщение от Sergey Petrov Посмотреть сообщение
Меня спасло создание отдельных пользовательских типов на основе типа SysGroup, причём в настройке Relations указать 2 строки: <тип> == Dimensions.Num и <номер аналитики, начиная с 0> == Dimensions.DimensionCode. А потом этот новый тип уже использовать в диалоге.
Проблема в том, что нужно немного поправить стандартный запрос RLedgerSheetEngine_AccountReview (Главная книга\Запросы\Анализ счета) и сильно его менять не хотелось бы так как нужно изменить свойства нескольких контролов.

Вот и хочется найти способ попроще.
Старый 23.04.2008, 09:36   #4  
petergunn is offline
petergunn
Участник
 
118 / 274 (10) ++++++
Регистрация: 30.08.2005
Адрес: Tyumen
Цитата:
Сообщение от Lucky13 Посмотреть сообщение
Есть класс в методе Dialog которого создается поле
X++:
dialogDimensionCriteria = dialog.addFieldValue(typeId(DimensionCriteria), dimensionCriteria);
//..
В результате создается не одно поле, а столько, сколько фининсовых аналитик в системе.

Вопрос, как программно обратиться к каждому из этих контролов.
DialogField.fieldControl() ?

X++:
static void testFieldControl(Args _args)
{
    Dialog                   dialog                  ;
    DialogField            dialogDimensionCriteria ;
    FormStringControl  formStringControl       ;
    ;
    
    dialog = new Dialog() ;
    dialogDimensionCriteria = dialog.addField(typeId(DimensionCriteria));
    
    if( !dialog.run() )
        return ;
        
    formStringControl = dialogDimensionCriteria.fieldControl(1) ;
    info( formStringControl.text() ) ;

    formStringControl = dialogDimensionCriteria.fieldControl(2) ;
    info( formStringControl.text() ) ;

    formStringControl = dialogDimensionCriteria.fieldControl(3) ;
    info( formStringControl.text() ) ;
}
За это сообщение автора поблагодарили: Lucky13 (2).
Старый 23.04.2008, 09:45   #5  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
Спасибо, не знал про fieldControl()
Теги
array, dialog, fieldcontrol, dimensions

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Использование формы в качестве диалога vs создание диалога программно Lucky13 DAX: Программирование 3 30.05.2008 13:09
Как использовать dimension sets (DAX 4.0) Qaz Qwerty DAX: Функционал 9 19.05.2008 21:08
Значение по умолчанию параметра типа EDT c array elements либо просто массива HorrR DAX: Программирование 16 20.02.2008 19:18
Связывание таблиц по заранее неизвестному кол-ву полей из Dimension TasmanianDevil DAX: Программирование 2 22.03.2006 09:50
Работа с диалогом программно (новичок) Pavel Pustovalov DAX: Программирование 7 10.08.2004 11:51

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

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

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