AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
NAV
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 14.03.2007, 13:26   #1  
Андре ist offline
Андре
Moderator
Сотрудники компании GMCS
 
2.375 / 464 (20) +++++++
Registriert seit: 03.12.2001
DictMethod.propertyHelp()
Добрый день.

Есть такой метод на системном классе - DictMethod.propertyHelp(). Возвращает строку. У меня - всегда пустую.
Есть идеи как заставить этот метод возвращать что-то осмысленное?

Поясню общую задачу - может что-то более удачное посоветуете. Цель - минимальная документация, встроенная в код. Есть иерархия классов, выполняющих какие-то действия. Классы однотипные и должны уметь сами рассказывать о том, как они работают. То есть, реализовывать метод, возвращающий строку документации.
Можно было бы заставить программистов в каждом классе реализовывать этот метод, но это не наш путь. Наш путь - перебрать все методы класса (последовательность их выполнения я могу узнать программно) и спросить у системы - что же делает данный метод.

Пока вижу 2 варианта:
  • Первая строка каждого метода - комментарий, говорящий о том, что делает данный метод. Система перебирает методы, получает их код, берет из кода первую строку и собирает документацию.
  • Разобраться с propertyHelp()

Кстати, если кто-то подскажет как получить код метода класса буду тоже благодарен
Alt 14.03.2007, 13:29   #2  
belugin ist offline
belugin
Участник
Benutzerbild von belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.622 / 2925 (107) +++++++++
Registriert seit: 16.01.2004
Blog-Einträge: 5
XppDoc?
Alt 14.03.2007, 13:39   #3  
kashperuk ist offline
kashperuk
Участник
Benutzerbild von kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.361 / 2084 (78) +++++++++
Registriert seit: 30.05.2004
Ort: Atlanta, GA, USA
Zitat:
Zitat von Андре Beitrag anzeigen
Кстати, если кто-то подскажет как получить код метода класса буду тоже благодарен
X++:
    TreeNode    tr;
    ;
    tr = TreeNode::findNode('\\Classes\\SalesTableType');
    tr = tr.AOTfindChild('update');
    box::info(tr.AOTgetSource());
Alt 14.03.2007, 13:44   #4  
Андре ist offline
Андре
Moderator
Сотрудники компании GMCS
 
2.375 / 464 (20) +++++++
Registriert seit: 03.12.2001
Zitat:
XppDoc -- это инструмент, который делает из комментариев к исходникам справку
А в каком виде (формате) он делает справку? Смогу ли я получить эту справку програмным путем из x++.
Alt 14.03.2007, 13:55   #5  
belugin ist offline
belugin
Участник
Benutzerbild von belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.622 / 2925 (107) +++++++++
Registriert seit: 16.01.2004
Blog-Einträge: 5
1. он делает справку ввиде аксаптовского хелпа
2. да - а зачем? цель то конечная какая?
Alt 14.03.2007, 14:48   #6  
Андре ist offline
Андре
Moderator
Сотрудники компании GMCS
 
2.375 / 464 (20) +++++++
Registriert seit: 03.12.2001
Zitat:
да - а зачем? цель то конечная какая?
Отобразить данную справку на своей форме.
Alt 14.03.2007, 14:55   #7  
belugin ist offline
belugin
Участник
Benutzerbild von belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.622 / 2925 (107) +++++++++
Registriert seit: 16.01.2004
Blog-Einträge: 5
Тут два варианта:

1. если надо только одну маленькую строку, проше разобрать исходник самостоятельно (ну или выдрать из XppDoc то что надо)

2. Если хочется всего что может XppDoc то можно скопировать \Forms\SysHelp\Designs\Design\[Group:MainGrp]\[GroupocTab]\ActiveXoc на свою форму

3. Конечно можно выдрать из хелпа строку, но преобразовывать Html в текст рази ондой строчки...
Alt 15.03.2007, 09:39   #8  
AndyD ist offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2.560 / 2494 (89) +++++++++
Registriert seit: 20.08.2005
По поводу propertyHelp()

Основное предназначение этого метода - получение подсказки для свойств в AOT.

Поясню на примере.
Если выбрать в AOT любую форму (ей соответствует класс FORM) и вызвать окно свойств, то в нем будут показан список, соответствующий методам класса Form, возвращающим истину при вызове propertyMethod() класса DictMethod, созданного для этого метода. При этом propertyHelp() вернет строку помощи, отображаемую при выделении свойства в статусной строке (или в хинте при наведении мыши на свойство).
Если в форме выделить любой датасоурс (если он есть), то отобразятся свойства, соответствующие классу FormDataSource

Сами значения, возвращаемые методом propertyHelp(), хранятся в ktd-файле (как, впрочем, и отображаемые названия свойств)

Еще propertyHelp() используется при динамическом формировании хелпа для выбранного метода в \System Documentation\Classes, если он (хелп) не был создан

Ну и вот вывод методов, возвращающих значение для propertyHelp()
X++:
static void GetPropertyHelp(Args _args)
{
    TreeNode treeNode = TreeNode::findNode("\\System Documentation\\Classes");
    DictClass   dictClass;
    DictMethod  dictMethod;
    int i;
    ;
    SetPrefix("Список методов с установленной строкой помощи");
    treeNode = treeNode.AOTfirstChild();
    while (treeNode)
    {
        dictClass = new DictClass(className2Id(treeNode.treeNodeName()));
        if (dictClass)
        {
            SetPrefix(dictClass.name());
            for (i=1;i<=dictClass.objectMethodCnt();i++)
            {
                dictMethod = dictClass.objectMethodObject(i);
                if (dictMethod && dictMethod.propertyMethod() && dictMethod.propertyHelp())
                {
                    info(strfmt("%3::%1::%2", dictMethod.propertyMethod()==1, dictMethod.propertyHelp(), dictMethod.name()));
                }
            }
        }
        treeNode = treeNode.AOTnextSibling();
    }
}
__________________
Axapta v.3.0 sp5 kr2
This post has been rated by: Андре (5).
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Структура таблиц axapta velk DAX: База знаний и проекты 46 27.07.2009 07:56

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 17:08 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.