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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.05.2015, 15:41   #1  
pedrozzz is offline
pedrozzz
Молодой, подающий надежды
Аватар для pedrozzz
MCBMSS
Лучший по профессии 2015
 
164 / 218 (8) ++++++
Регистрация: 18.02.2010
Адрес: Краснодар
Цитата:
Сообщение от Logger Посмотреть сообщение
К вопросу о штучечках.
Может кто-нибудь делал доработку чтобы можно было поля табличек подобно методам или кускам методов добавлять. Ткнул по ссылке в окошке сравнения XPO и у тебя поле в табличке добавилось.
Если интересуют только поля, то в классе SysTreeNode
X++:
public boolean canMergeInsertSubnodes(SysComparable _top, SysCompareContextProvider _context)
{
    //...
    //Добавить в switch
            case UtilElementType::Table:
                  return true;
    //..
}

public boolean hasOrdering()
{
    //...
    //Добавить в switch
            case #NT_DBFIELDLIST:
                  return false;
    //..
}
Во вложении класс с указанными изменениями, делал на 2012 R3. Но,таблицы - это не только поля, а еще и группы полей, индексы и прочее. С ними пока не взлетело и нет времени разобраться. Но именно поля работают
Вложения
Тип файла: xpo Class_SysTreeNode.xpo (115.0 Кб, 668 просмотров)
__________________
Кононов Пётр

Последний раз редактировалось pedrozzz; 29.05.2015 в 15:45.
За это сообщение автора поблагодарили: Logger (10), Ivanhoe (5), gl00mie (3), S.Kuskov (5).
Старый 29.05.2015, 16:31   #2  
makbeth is offline
makbeth
Участник
Аватар для makbeth
КОРУС Консалтинг
 
43 / 52 (2) ++++
Регистрация: 15.05.2007
Адрес: Санкт-Петербург
Цитата:
Сообщение от pedrozzz Посмотреть сообщение
Но,таблицы - это не только поля, а еще и группы полей, индексы и прочее. С ними пока не взлетело и нет времени разобраться. Но именно поля работают
Не взлетело потому, что вставка при сравнении использует метод TreeNode.AOTDrop, который не работает с индексами и группами полей.

Кстати говоря, с полями эта правка будет нормально работать только в 2012. Сравнение происходит построчно, без учета прочих метаданных сравниваемого объекта, т.е. текстовое представление объектов (в нашем случае - списков полей) должно быть одинаковым для обоих версий сравниваемых объектов (в нашем случае порядок существующих в обоих версиях полей должен быть одинаковым). Поскольку при вставке полей ядром не учитывается второй параметр AOTDrop - позиция вставки - новое поле всегда вставляется в начало узла Fields таблицы (до сохранения/восстановления), а в нормальном представлении поля отсортированы, то получается забавный результат. Он как раз и лечится правкой метода hasOrdering, которая заставляет при формировании текстового представления сортировать список полей по алфавиту.
В 2009 видимо потребуется уже более тщательное перепиливание, т.к. там нужно учитывать, что поля сортируются по id.

Для того, чтобы индексы и группы не помечались для добавления (ибо не работает), надо немного подправить изменения в canMergeInsertSubnodes:
X++:
public boolean canMergeInsertSubnodes(SysComparable _top, SysCompareContextProvider _context)
{
    //...
    //Добавить в switch
            case UtilElementType::Table:
                if (this.parmTreeNode().treeNodeType().id() == #NT_DBFIELDLIST)

                {
                    return true;
                }
                break;

    //..
}

Последний раз редактировалось makbeth; 29.05.2015 в 16:52.
За это сообщение автора поблагодарили: Ivanhoe (5), gl00mie (3), pedrozzz (3).
Теги
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, время: 14:26.