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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.02.2008, 18:19   #1  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Трамплин в код из инфолога (SysInfoAction_Editor)
Почитываю книгу Microsoft Dynamics AX 4.0 (на русском языке). Выборочно, отдельными главами. Недавно прочитал 14-ю - "Отражение". После прочтения в голове хорошо и понятно выстроились все 3 API (UtilElements, Dict... и TreeNode AOT), которые раньше постигал урывками и бессистемно. Признаться, совсем доселе не приходилось возиться с UtilElements, а тут набросал джобик, повыводил в инфолог всякие списки последних модифицированных объектов - хорошо!

А если учесть, что недавно также открыл для себя возможности SysInfoAction, то возникло несколько строк кода, выполняющих довольно полезную функцию.

У меня есть несколько джобов, предназначенных для нужд конкретных пользователей по конкретным задачам, причем для удобства распознавания я включаю (вкратце) фамилию пользователя и название задачи в идентификатор джоба. И вот мне нужно было посмотреть какие изменения были внесены за последний месяц в джобы для пользователя Ивановой:
X++:
static void Job_Unsorted_8229(Args _args)
{
    UtilElements    utilElements;
;
    while select Name from utilElements
        where utilElements.RecordType == UtilElementType::Job
           && utilElements.Name like '*Ivanova*'
           && utilElements.ModifiedDate >= today()-30
    {
        info( utilElements.Name, '',
              SysInfoAction_Editor::newOpen( strfmt(@'\Jobs\%1', 
                                             utilElements.Name ) ));
    }
}
Приведенный код вывел мне в инфолог фактически меню-навигатор: список нужных мне в данный момент джобов и возможность двойным щелчком открыть любой из них в редакторе кода.

P.S. По поводу буквального перевода "отражения" (reflection). Вроде, в отечественной литературе по Java, о тесном родстве с которой принято говорить при упоминании об X++, имеется устойчивый, обычно непереводимый, термин "рефлексия" (из серии: "файл", а не "реестр", "подшивка", "напильник"...). Ну, да ладно, "отражение" тоже понятно

P.S. от 08.12.2008. Версия джоба с использованием формы запроса:
X++:
static void Job_Unsorted_8229_Query(Args _args)
{
    UtilElements            utilElements;
 
    Query                   query = new Query();
    QueryBuildDatasource    qbds  = new QueryBuildDatasource() ;
    QueryRun                qr;
    ;
 
    qbds = query.addDataSource(tablenum(UtilElements));
 
    qbds.addRange(fieldnum(UtilElements, RecordType))
        .value(queryValue(UtilElementType::Job));
 
    qbds.addRange(fieldnum(UtilElements, Name))
        .value('*Ivanova*');
 
    qbds.addRange(fieldnum(UtilElements, ModifiedDate))
        .value(strFmt('%1..',date2StrXpp( today()-30 )));
 
    qbds.addSortField(fieldnum(UtilElements, ModifiedDate), 
        SortOrder::Ascending);
 
 
    qr = new QueryRun(query);
 
    // qr.userUpdate(false);
    if (qr.prompt())
    {
        while (qr.next())
        {
            utilElements = qr.getNo(1);
 
            info( strfmt('%1 -- %2', utilElements.ModifiedDate, 
                                     utilElements.Name),
                  '',
                  SysInfoAction_Editor::newOpen( strfmt(@'\Jobs\%1',
                                                 utilElements.Name) ));
        }
    }
}
Старый 29.02.2008, 19:14   #2  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от Gustav Посмотреть сообщение
P.S. По поводу буквального перевода "отражения" (reflection). Вроде, в отечественной литературе по Java, о тесном родстве с которой принято говорить при упоминании об X++, имеется устойчивый, обычно непереводимый, термин "рефлексия" (из серии: "файл", а не "реестр", "подшивка", "напильник"...). Ну, да ладно, "отражение" тоже понятно
Долго думал над этим термином. Кого уже только не спрашивал.
Мнения знатоков разошлись.

Да и что говорить, только что опять полез гуглить - вот 2 ссылки на один и тот же сайт про Java, с двумя разными переводами

http://www.javable.com/javaworld/tips/118_tt/ -- здесь отражение
http://www.javable.com/tutorials/fesunov/lesson22/ -- здесь рефлексия.

По шарпу вроде чаще таки использовалось отражение.
А рефлексия - не нравится мне это слово. Мне напоминает болезнь какую-то по звучанию
Теги
excel, rls, полезное, blog, axapta

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dax-lessons: Generate XML Documentation Files for a project - DAX 2009 Blog bot DAX Blogs 0 08.08.2008 19:06
dax-lessons: Active directory in Axapta Blog bot DAX Blogs 0 27.08.2007 23:00
Kashperuk Ivan: AxPaint - make your DAX look cool :) Blog bot DAX Blogs 0 26.06.2007 21:00
Kashperuk Ivan: (DAX 3.0) SysExportDialog form extension Blog bot DAX Blogs 1 15.05.2007 19:16
Kashperuk Ivan: Two very useful projects for DAX Blog bot DAX Blogs 0 20.04.2007 01:14

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

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

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