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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.12.2002, 07:27   #1  
Алексей Контев is offline
Алексей Контев
Участник
 
118 / 31 (2) +++
Регистрация: 28.12.2001
Адрес: Барнаул
Проблемы в dialog
Имеется контрол в диалоге типа Dimension, надо по какому-то условию делать эти контролы недоступны.
метод:
PHP код:
dfdim                dialog.addFieldvalue(TypeId(Dimension), Dim);
dfdim.enabled(false); 
приводит к тому, что недоступными становятся только 1-й и последний компоненты аналитики, а промежуточные не изменяются. Так происходит для всех свойств контрола (visible, showlabel и т.д.)
Есть у кого-нибудь какие мысли?
Старый 11.10.2007, 17:37   #2  
Russland is offline
Russland
MCTS
Аватар для Russland
MCBMSS
 
267 / 116 (4) +++++
Регистрация: 17.10.2005
Адрес: Донеччина, Україна
Ну не знаю...

Одно из решений: допиливание классов DialogField и Dialog
Идея: при добавлении поля в диалоге указывать индекс поля (то бишь аналитику)

В классе Dialog метод addField()
X++:
DialogField addField(
    int         type,
    FieldLabel  label   = '',
    FieldHelp   help    = '',
    ArrayIdx    idx     = 0 //modified for ArrayFields
    )
{
    DialogField DialogField;

    fields += 1;
    DialogField = new DialogField(this,type,fields);
    this.addCtrlDialogField(dialogField.name());

//    dialogField.init(this); //standard
    dialogField.init(this, idx);//modified for ArrayFields

    if (label)
        dialogField.label(label);
    if (help)
        dialogField.helpText(help);

    this.addDialogClass(dialogField);

    return dialogField;
}
В классе DialogField метод init()
X++:
//void init(Dialog  dialog)//standard
void init(Dialog  dialog, ArrayIdx idx=0)//Modified for ArrayFields
{
....
    //Added for ArrayFields -->
    if((idx)&&(idx<=arraysize))
    {
        f = idx;
        arraysize = idx;
    }
    //Added for ArrayFields <--
    while (f <= arraysize)
    {
....
}
Ну и сам вызов теперь
X++:
d.addField(TypeId(Dimension), '', '', 1);
__________________

В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню
Старый 12.10.2007, 14:37   #3  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Если все делаете правильно (как советовал Peter Savintsev), то нормально создается и работает EDT для любой аналитики.

MyDimensionPurpose == Dimensions.Num
2 == Dimensions.DimensionCode

Единственное, я не наследовал от SysDim.
__________________
Андрей.
За это сообщение автора поблагодарили: Qaz Qwerty (1).
Старый 12.10.2007, 14:46   #4  
Peter Savintsev is offline
Peter Savintsev
Участник
 
246 / 119 (4) +++++
Регистрация: 14.12.2001
Сорри, ошибся. Действительно, надо наследовать не от SysDim, а от SysGroup. Для SysDim используется своя lookup-форма, которая не очень корректно работает в данном случае.
За это сообщение автора поблагодарили: Qaz Qwerty (1).
Старый 12.10.2007, 16:54   #5  
akvi is offline
akvi
Участник
 
119 / 12 (1) ++
Регистрация: 31.03.2003
Адрес: Москва
Спасибо!!! Всё получилось
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Kashperuk Ivan: 3 Dialog extensions Blog bot DAX Blogs 4 28.09.2007 18:56
DynamicsTech: How to modify the behavior of dialog boxes to enable forms to appear in full-screen mode in Microsoft Dynamics AX Blog bot DAX Blogs 0 13.04.2007 12:10
Fred Shen: Dialog screen events Blog bot DAX Blogs 0 28.10.2006 16:40
Mandatory field в Dialog axaLearner DAX: Программирование 4 02.11.2004 09:50
Проблемы фильтрации из dialog ArturK DAX: Программирование 1 19.05.2004 13:43

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

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

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