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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.06.2015, 17:20   #19  
Ruff is offline
Ruff
Дмитрий Ерин
Аватар для Ruff
1C
 
475 / 396 (14) ++++++
Регистрация: 18.09.2003
Адрес: Тула
Кстати, не так уж много таблиц в системе, задействованных в большом количестве форм. Чтобы примерно оценить, стоит ли игра свеч, можно воспользоваться таким джобом (как пользоваться - см. комментарии):
X++:
static void ShowMostUsedTables(Args _args)
{
////////////////////////////////////////////////////////////////
// С заданными ниже параметрами Job работает около 5-7 секунд, меняйте с осторожностью:)

    #define.DSCountCriteria     (10)        // критерий попадания в "ТОП" (минимальное количество ссылающихся DS)
    #define.TableFilter         ("*")       // доп. фильтр, например: "Invent*", "Ledger*", "Vend*"
////////////////////////////////////////////////////////////////
    xRefReferences      xref;
    xRefPaths           forms, tables;

    RecordSortedList    sortedList = new RecordSortedList(tablenum(xRefPaths));

    ;
    sortedList.sortOrder(fieldnum(xRefPaths, ApplObjectPathRecId), fieldnum(xRefPaths, RecId));
    
    // перебрать таблицы
    while select Path, RecId from tables
        group by tables.Path, RecId
        where     tables.Path like "\\\\Data Dictionary\\\\Tables\\\\" + #TableFilter   
            &&  !(tables.Path like "*\\\\Tables\\\\?*\\\\*")                            // исключить все подузлы
    // подсчитать ссылки "Чем используется"
    join    count (RecId) from xref                                                     
        where   xref.referencePathRecId     == tables.RecId
            &&  xref.line                   == 0                                        // исключить ссылки из X++ кода
    // наложить фильтр на ссылки
    exists join forms                                                                   
        where   forms.RecId     == xref.xRefPathRecId
            &&    forms.Path    like "\\\\Forms\\\\?*\\\\Data Sources\\\\*"             // интересуют DS форм
            &&  !(forms.Path    like "*\\\\Fields\\\\*")                                // не интересуют поля и прочее
            &&  !(forms.Path    like "*\\\\Ranges\\\\*")
            &&  !(forms.Path    like "*\\\\Sorting\\\\*")                    
    {
        if (xref.RecId >= #DSCountCriteria)
        {
            tables.ApplObjectPathRecId = -xref.RecId;  // минус - для убывающей сортировки
            sortedList.ins(tables);
        }
    }
    setprefix(strfmt("Найдено %1 таблиц (по фильтру %2) с количеством ссылающихся FormDS >= %3", sortedList.len(), #TableFilter, #DSCountCriteria));
    info("Сount of FormDS; TableName");

    sortedList.first(tables);
    do{
        info(strfmt("%1; %2", -tables.ApplObjectPathRecId, tables.pathName()));
    } 
    while (sortedList.next(tables));
}
На кастомизированной DAX2009 "Топ" выглядит примерно так (см. вложение):
Изображения
 
__________________
Теги
field, код, свойства

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Kashperuk Ivan: Tutorial: AX 2012 - Invalid field access or Accessing unretrieved fields Blog bot DAX Blogs 0 29.10.2011 05:18
DynamicsAxSCM: The InventTrans table. Explore various field usages. Blog bot DAX Blogs 0 09.11.2010 19:10
Как можно управлять элементом Grid из кода? vitk DAX: Программирование 4 26.08.2004 16:02
DS по временной таблице странно обновлляется ArturK DAX: Программирование 2 29.07.2004 19:27
Что и как можно резать? George Nordic DAX: Администрирование 1 11.05.2004 18:44

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

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

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