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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.08.2008, 15:01   #2  
altap is offline
altap
MCTS
MCBMSS
 
26 / 18 (1) ++
Регистрация: 28.09.2005
Вообщем на досуге посидел, надеюсь, что поможет.
В классе SysTableLookup модифицировал метод buildGrid к такому виду:
X++:
protected FormBuildGridControl buildGrid(FormBuildGridControl _formBuildGridControl,
                                         FormBuildDataSource  _formBuildDataSource,
                                         Form                   form) //передаем форму в метод для поиска ее ноды
{
    FormBuildControl                formBuildControl;
    Object                          obj;
    boolean                         returnItem;
    boolean                         method;
    int                             fieldId;
    int                             i, j;
    //-->
    TreeNode                        gridNode, controlNode, methodsNode;
    MemberFunction                  newMethod;
    str                             source;
    TreeNodeIterator                iterator;
    //<--
    ;

    for (i = 1; i <= conlen(lookupItems); i++)
    {
        [fieldId, returnItem, method] = conpeek(lookupItems, i);

        if (!method)
        {
            formBuildControl = _formBuildGridControl.addDataField(_formBuildDataSource.id(), fieldId);

            if (i == 1 || returnItem)
            {
                controlIdx = formBuildControl.id();
                lookupField = fieldId;
            }

            obj = formBuildControl;

            if (labels[i])
            {
                obj = formBuildControl;
                obj.label(labels[i]);
            }

            //Дойдем до созданного контрола
            gridNode = form.AOTfindChild('Designs');
            gridNode = gridNode.AOTfindChild('Design');
            gridNode = gridNode.AOTfirstChild();

            iterator = gridNode.AOTiterator();
            controlNode = iterator.next();
            while (controlNode)
            {
                If (controlNode.AOTname() == obj.name()) break;
                controlNode = iterator.next();
            }

            //Перекроем метод sort
            methodsNode = controlNode.AOTfindChild('Methods');
            methodsNode.AOTadd('sort');
            newMethod   = methodsNode.aotfindChild('sort');

            source      = 'public int sort(SortOrder _sortDirection) ' +
                            '{ ' +
                            '    ; ' +
                            '    return 0; ' +
                            '}';

            newMethod.AOTsetSource(source, false);
            //Откомпилируем новый метод
            newMethod.AOTcompile(1);
        }
    }

    return _formBuildGridControl;
}
единственное, что не смог победить - это при компиляции метода выскакивает окошко сообщений компилятора...
Вдохновило это

Последний раз редактировалось altap; 08.08.2008 в 16:13.
За это сообщение автора поблагодарили: wojzeh (1).
Теги
ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
gatesasbait: How to define a custom lookup form for an extended datatype Blog bot DAX Blogs 0 09.07.2008 22:05
Создание Lookup формы Maxim Gorbunov DAX: База знаний и проекты 9 26.06.2007 16:44
Нагло глючит lookup Sada DAX: Программирование 1 08.06.2006 10:32
Динамические Lookup формы. Андрей Василюк DAX: База знаний и проекты 0 07.12.2001 07:07
Произвольная Lookup форма Maxim Gorbunov DAX: База знаний и проекты 0 30.11.2001 21:59

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

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

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