14.03.2007, 13:26 | #1 |
Moderator
|
DictMethod.propertyHelp()
Добрый день.
Есть такой метод на системном классе - DictMethod.propertyHelp(). Возвращает строку. У меня - всегда пустую. Есть идеи как заставить этот метод возвращать что-то осмысленное? Поясню общую задачу - может что-то более удачное посоветуете. Цель - минимальная документация, встроенная в код. Есть иерархия классов, выполняющих какие-то действия. Классы однотипные и должны уметь сами рассказывать о том, как они работают. То есть, реализовывать метод, возвращающий строку документации. Можно было бы заставить программистов в каждом классе реализовывать этот метод, но это не наш путь. Наш путь - перебрать все методы класса (последовательность их выполнения я могу узнать программно) и спросить у системы - что же делает данный метод. Пока вижу 2 варианта:
Кстати, если кто-то подскажет как получить код метода класса буду тоже благодарен |
|
14.03.2007, 13:29 | #2 |
Участник
|
|
|
14.03.2007, 13:39 | #3 |
Участник
|
Цитата:
X++: TreeNode tr; ; tr = TreeNode::findNode('\\Classes\\SalesTableType'); tr = tr.AOTfindChild('update'); box::info(tr.AOTgetSource()); |
|
14.03.2007, 13:44 | #4 |
Moderator
|
Цитата:
XppDoc -- это инструмент, который делает из комментариев к исходникам справку
|
|
14.03.2007, 13:55 | #5 |
Участник
|
1. он делает справку ввиде аксаптовского хелпа
2. да - а зачем? цель то конечная какая? |
|
14.03.2007, 14:48 | #6 |
Moderator
|
Цитата:
да - а зачем? цель то конечная какая?
|
|
14.03.2007, 14:55 | #7 |
Участник
|
Тут два варианта:
1. если надо только одну маленькую строку, проше разобрать исходник самостоятельно (ну или выдрать из XppDoc то что надо) 2. Если хочется всего что может XppDoc то можно скопировать \Forms\SysHelp\Designs\Design\[Group:MainGrp]\[GroupocTab]\ActiveXoc на свою форму 3. Конечно можно выдрать из хелпа строку, но преобразовывать Html в текст рази ондой строчки... |
|
15.03.2007, 09:39 | #8 |
Участник
|
По поводу 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 |
|
|
За это сообщение автора поблагодарили: Андре (5). |