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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.11.2008, 14:05   #1  
petr is offline
petr
Участник
Соотечественники
 
561 / 201 (8) ++++++
Регистрация: 30.05.2005
Адрес: Швейцария
Просто раз уж тему открыл, то предложу и свое решение задачи:

X++:
static void Job2(Args _args)
{
    SetEnumerator   dimensionsEnumerator = Dimensions::dimensionCodesSet().getEnumerator();
    SysDimension    sysDimension;
    ;

    while (dimensionsEnumerator.moveNext())
    {
        sysDimension = dimensionsEnumerator.current();
        print enum2str(sysDimension);
    }
    
    pause;
}
За это сообщение автора поблагодарили: lev (1), player (1).
Старый 14.07.2011, 07:47   #2  
gefr is offline
gefr
Участник
Аватар для gefr
MCBMSS
 
147 / 17 (1) ++
Регистрация: 01.11.2004
Адрес: МО, Котельники
А если нужно добавить поля на форму?
У меня есть расширение этой задачи - добавление на форму "отвязанных" контролов по фин. аналитикам. Вариант с добавлением всех и последующим скрытием не интересен, т.к. заранее не известно, сколько аналитик будет.
Делаю так:
X++:
        DictEnum DictEnum = new DictEnum(enumnum(SysDimension));
        FormBuildDesign             formBuilddesign = form.design();
        FormBuildGroupControl       formBuildGroupControl;
        FormStringControl c;
        int      i;

        ;

        if (dictEnum){
            for (i=0; i<dictEnum.values(); i++){
            c = DimensionList.addControl(FormControlType::String,strfmt("_%1",dictEnum.index2Symbol(i)));
            c.extendedDataType(global::extendedTypeName2Id(strfmt("Dimension[%1]",i)));
            c.showLabel(true);
            c.label(dictEnum.index2Name(i));
            c.lookupButton(2);
            }
        }
Элементы появляются, но выпадающие списки не работают, т.е. тип не подцепляется. Не делать showlabel, label и lookupbutton пробовал, получается простое текстовое поле, что еще раз подтверждает, что тип не подхватывается.
Не подскажете, в чем дело?

Последний раз редактировалось gefr; 14.07.2011 в 08:07.
Старый 14.07.2011, 08:25   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от gefr Посмотреть сообщение
У меня есть расширение этой задачи - добавление на форму "отвязанных" контролов по фин. аналитикам.
...
выпадающие списки не работают, т.е. тип не подцепляется
А вы попробуйте для начала решить задачу не программно а в ручную. Получится?
Когда будете создавать unbound контрол вручную какой расширенный тип выберете?
Что, по-вашему, должен вернуть метод global::extendedTypeName2Id(strfmt("Dimension[%1]",i))?
Старый 14.07.2011, 08:35   #4  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,342 / 3563 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от gefr Посмотреть сообщение
У меня есть расширение этой задачи - добавление на форму "отвязанных" контролов по фин. аналитикам.
...
Не подскажете, в чем дело?
В свое время для 4.0 пытался также решать похожую задачу и не тоже смог победить. Причем - такой вариант, как задание строкового типа Dimension[i] не катит - это точно - нет такого типа в системе.

Нашел для себя 2 "обходных" пути.
1. Для диалогов - наследников RunBase есть класс DialogAddDimensionType_CheckButton_RU. Он добавляет в диалог флажки, по количеству элементов в массиве в типе Dimension. По сути здесь простой цикл и все. Но это решает задачу добавления именно "отвязанных" контролов. Важно! Здесь список контролов подготавливается ДО init формы. Т.к. после - уже не получается (ну у меня тогда не получилось). При этом лукапы для каждого элемента массива тут работать не будут (если пытаться заменить галки на строковые поля). Т.е. если хочется добавить контрол с лукапом в случае массива - он должен быть "связанным"

2. Если нужно сделать лукап со списком полей (а может и лукап со списком значений) аналогично форме расширенного запроса (SysQueryForm) - то нужно использовать класс SysQueryForm (его можно использовать, предварительно подготовив всякие таблички и Query). При этом, обращаю внимание - там используется табличка TmpSysQuery и у контрола типа Dimension проставлен не EDT, а FieldId, причем свойство ArraySize не используется (оно не работает), а в FieldId подставлено значение fieldId2Ext(fieldnum(Dimension), i), где i - индекс массива. Здесь видно, что лукап у поля "Значения" строится в зависимости от выбранного элемента массива.
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 14.07.2011 в 08:46.
За это сообщение автора поблагодарили: Sergey Petrov (1).
Старый 14.07.2011, 08:45   #5  
gefr is offline
gefr
Участник
Аватар для gefr
MCBMSS
 
147 / 17 (1) ++
Регистрация: 01.11.2004
Адрес: МО, Котельники
2 S.Kuskov: да, вы правы, тупанул переделал так - все равно не помогло.
X++:
                c.extendedDataType(typeid(Dimension));
                c.arrayIndex(i);
Старый 14.07.2011, 08:47   #6  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,342 / 3563 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от gefr Посмотреть сообщение
2 S.Kuskov: да, вы правы, тупанул переделал так - все равно не помогло.
X++:
                c.extendedDataType(typeid(Dimension));
                c.arrayIndex(i);
Я ж сказал - не работает это свойство. Ошибся в названии - не ArraySize, а arrayIndex
__________________
Возможно сделать все. Вопрос времени
Теги
dimensions

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
финансовые аналитики в диалог longson DAX: Программирование 6 02.07.2008 03:23
Код новой фин. аналитики 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:52.