|
17.08.2020, 12:27 | #1 |
Axapta
|
В моем гугле по второй же ссылке есть бОльшая часть того, что вам надо.
https://www.google.com/search?q=dyna...+list+of+forms
__________________
С уважением, Олег. Последний раз редактировалось oip; 17.08.2020 в 13:40. |
|
|
За это сообщение автора поблагодарили: oleggy (1). |
18.08.2020, 06:45 | #2 |
Участник
|
Спасибо. Резюмирую:
https://community.dynamics.com/ax/f/...t-forms/520378 X++: static void ListOfForms(Args _args) { UtilElements localEelmet; UtilEntryLevel LayerName = UtilEntryLevel::usr; TreeNode treeNode; ; while select localEelmet where localEelmet.recordType == UtilElementType::Form && localEelmet.utilLevel == LayerName //remove this line if you want all layers { treeNode = xUtilElements::getNodeInTree(xUtilElements::parentElement(localEelmet)); info(strFmt("Name: %1",localEelmet.name)); } } Последний раз редактировалось oleggy; 18.08.2020 в 06:49. |
|
18.08.2020, 11:30 | #3 |
Участник
|
Не правильный вывод. Перемудрили...
Если нужен просто тупой перебор ВСЕХ узлов конкретной ветки AOT, то это делают так X++: static void job_Test(Args _args) { utilElements utilElements; int totalI; TreeNode treeNode; TreeNode node; ; info("Scan AOT"); totalI = 0; treeNode = treeNode::findNode(@"\Forms"); node = treeNode.AOTfirstChild(); while (node) { info(strFmt("Name = %1", node.AOTname())); // debug totalI++; if (totalI > 10) break; node = node.AOTnextSibling(); } info('end'); } Например, если Вам нужна информация только о том, кто последний раз менял объект, то это поле этой самой таблицы UtilIdElements.ModifiedBy. Вам НЕ НАДО обращаться к самому объекту. Нужная информация уже есть в таблице. Кстати, и имя объекта также есть в таблице
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
|