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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.04.2005, 11:05   #1  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Автоматическое сравнение слоев
Небольшой джобик для автоматического сравнения слоев.

Просто часто приходиться все перетаскивать на cus...
Нужны не все элементы, поэтому использован switch.

PHP код:
static void AutoUSR_CUSCompare(Args _args)
{
    
SysCompare      sysCompare;
    
TreeNode        treeNode  = new TreeNode();
    
TreeNode        treeNode1 = new TreeNode();
    
xInfo           xInfo     = new xInfo();
    
boolean         res;
    
UtilElements    elements;
    ;
    
sysCompare = new sysCompare(true);

    while 
select elements
        where elements
.utilLevel    == UtilEntryLevel::usr
    
{
        
treeNode    xInfo.rootNode();

        switch (
elements.recordType)
        {
            case 
UtilElementType::Table             :
                
treeNode    treeNode.AOTfindChild("Data Dictionary");
                
treeNode    treeNode.AOTfindChild("Tables");
                break;
            case 
UtilElementType::TableMap          :
                
treeNode    treeNode.AOTfindChild("Data Dictionary");
                
treeNode    treeNode.AOTfindChild("Maps");
                break;
            case 
UtilElementType::TableCollection   :
                
treeNode    treeNode.AOTfindChild("Data Dictionary");
                
treeNode    treeNode.AOTfindChild("Table Collections");
                break;
            case 
UtilElementType::ExtendedType      :
                
treeNode    treeNode.AOTfindChild("Data Dictionary");
                
treeNode    treeNode.AOTfindChild("Extended Data Types");
                break;
            case 
UtilElementType::Enum              :
                
treeNode    treeNode.AOTfindChild("Data Dictionary");
                
treeNode    treeNode.AOTfindChild("Base Enums");
                break;
            case 
UtilElementType::Class             :
                
treeNode    treeNode.AOTfindChild("Classes");
                break;
            case 
UtilElementType::Form              :
                
treeNode    treeNode.AOTfindChild("Forms");
                break;
            case 
UtilElementType::Report            :
                
treeNode    treeNode.AOTfindChild("Reports");
                break;
            default                                 :
                continue;
        }

        
treeNode treeNode.AOTfindChild(elements.name);
        if (! 
treeNode)
        {
            
info(strfmt("Узел %1 не найден!",elements.name));
            continue;
        }

        
treeNode1 treeNode.getNodeInLayer(UtilEntryLevel::cusfalse);
        if (! 
treeNode1)
        {
            
info(strfmt("Элемент :%1 не найден в cus слое!",elements.name));
            continue;
        }

        
res sysCompare.compareTreenodes(treeNodetreeNode1);

        if (! 
res)
            
info(strfmt("Элемент :%1 различается в слоях!",treeNode.toString()));
//        else
//            info(strfmt("Элемент :%1 идентичен!",treeNode.toString()));
    
}

Элементарно и довольно просто.
Удачи!

С Уважением,
Георгий
Старый 20.04.2005, 11:39   #2  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
А чем не устроил класс SysCompareCreateProject?
Старый 20.04.2005, 12:05   #3  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Это ж самопальное!

Хм, спасибо! Честно говоря, просто не знал. Он проекты сравнивает? Т.е. выделяем все объекты слоя в проект и запускаем сравнение?
Тоже ничего!

С Уважением,
Георгий.
Старый 20.04.2005, 12:18   #4  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
Слои он сравнивает, по различиям генерит проект

Кстати, есть и в меню
Сервис\Средства разработки\Переход к новой версии\Сравнение слоев
За это сообщение автора поблагодарили: alex55 (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Сравнение при импорте XPO akvi DAX: Программирование 26 23.01.2013 18:03
Сравнение слоев SerAl DAX: Прочие вопросы 4 23.07.2007 11:05
Есть ли возможность вызывать код с вышележащих слоев ? FishLog DAX: Программирование 5 07.09.2004 17:24
Есть ли возможность вызывать код с вышележащих слоев ? FishLog DAX: Программирование 0 07.09.2004 13:39
Сравнение слоев lexa DAX: Программирование 2 28.07.2004 14:24

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

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

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