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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.08.2009, 17:34   #1  
Denicce is offline
Denicce
Участник
 
62 / 54 (2) ++++
Регистрация: 22.03.2005
Адрес: Москва
Вариант решения.
Писал на коленке на 3.0, перевел на 4.0

\Classes\SysImportElements\compareNodes
X++:
private boolean compareNodes(FormTreeControl _formTreeControl, FormTreeItem _formTreeItem)
{
    TreeNode                        treeNodeAOT;
    TreeNode                        treeNodeImport  = NULL;
    int                             exportId;
    int                             flag            = (#impGetCompareNode + #impKeepIds);
    boolean                         ret;
    ;

    if (_formTreeItem &&
        _formTreeItem.stateBold())
    {
        select firstonly tmpImportAot
            where tmpImportAot.TreeNodePath == _formTreeItem.data();

        if (tmpImportAot)
        {
            treeNodeAOT = infolog.findNode(tmpImportAot.TreeNodePath);
            if (treeNodeAot)
            {
                ret = true;
                exportId        = infolog.startImport(filename, flag);
                treeNodeImport  = infolog.getImportedNode(
                                        exportId,
                                        tmpImportAot.UtilFileType,
                                        tmpImportAot.UtilElementType,
                                        tmpImportAot.treeNodeName,
                                        tmpImportAot.FilePos,
                                        flag);
                ret = SysCompare::silentCompare(SysTreeNode::newTreenode(treeNodeAOT), SysTreeNode::newTreenode(treeNodeImport));

                infolog.endImport(exportId, 1);
            }
        }
    }
    return ret;
}
\Classes\SysImportElements\markDifferentObjects
X++:
public void markDifferentObjects(FormTreeControl _ftc)
{
    int idx;
    FormTreeControl     t = _ftc;
    FormTreeItem        i;
    TreeItemIdx     treeItemIdx;
    boolean checked, res;
    ;

    i = t.getItem(t.getRoot());
    SysFormTreeControl::expandTree(t, i.idx());

    while (i)
    {
        // KDV анализируем только конечные узлы дерева (листы - объекты АОТ):
        if (! strFind(i.data(), '\\', strLen(i.data()), -1))
        {
            // KDV сравниваем последний слой в АОТ и слой XPO:
            res = this.compareNodes(t, i);

            if (res)
                SysFormTreeControl::deselectedTreeItem_checkBox(t, i.idx());
            else
                SysFormTreeControl::selectedTreeItem_checkBox(t, i.idx());

            while select forUpdate firstonly tmpImportAot
                where tmpImportAot.TreeNodePath == i.data()
            {
                tmpImportAot.Import = ! res;
                tmpImportAot.update();
            }
        }
        else
            SysFormTreeControl::deselectedTreeItem_checkBox(t, i.idx());
        i = t.getItem(t.getNextVisible(i.idx()));
    }
}
\Forms\SysImportDialog\Methods\markDifferentObjects
X++:
void markDifferentObjects()
{
    ;
    sysImportElements.markDifferentObjects(AOTtree);
    tmpImportLabel_ds.executeQuery();
}
Добавляем кнопку на форму:
\Forms\SysImportDialog\Designs\Design\[Group:BottomGrp]\[ButtonGroup:ButtonGroup]\Button:MarkDifferentObjects\Methods\clicked
X++:
void clicked()
{
    element.markDifferentObjects();
}
минус - перед нажатием на кнопку нужно включить "Отобразить подробости". Да не особо шустро работает...
За это сообщение автора поблагодарили: Dron AKA andy (4), Small Den (1), Logger (5), leva (1),  (1).
Старый 17.08.2009, 16:11   #2  
olesh is offline
olesh
Участник
 
58 / 26 (1) +++
Регистрация: 02.04.2002
Адрес: Москва
Цитата:
Сообщение от Denicce Посмотреть сообщение
Писал на коленке на 3.0, перевел на 4.0
А для 3.0 не осталось варианта?
Теги
araxis, ax2009, ax3.0, ax4.0, xpo, документация, законченный пример, импорт, инструменты, полезное, разработка, сравнение, сравнение систем, сравнение слоев

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
А в СП6 есть что-нибудь про зарплату? Arahnid DAX: Программирование 5 10.05.2007 12:46
Axapta Report Designer vs. Something Андре DAX: Программирование 39 18.07.2005 11:06
А кто нибудь пробовал получать налоговую отчетность в системе? Sergioso DAX: Функционал 46 17.01.2005 14:56
Есть у кого ни будь Job ик для групповой замены поля dataareaid в группе таблиц ShadowFromXZone DAX: Функционал 7 13.10.2004 12:48
У кого есть вопросы по модулю Проекты AlexFK DAX: Функционал 2 30.04.2004 16:00

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 16:26.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.