07.12.2005, 15:45 | #1 |
Участник
|
Программынй экспорт из определенного слоя
Подскажите пожалуйста, как программно можно сделать экспорт элемента АОТ из определенного слоя?
Сразу скажу, что из определенного слоя - ключевое словосочетание, т.к. всё остальное уже работает! |
|
07.12.2005, 16:04 | #2 |
Administrator
|
X++: TreeNode treeNode = TreeNode::findNode('\\Classes\\AssetProposal'); ; treeNode.treeNodeExport('d:\\syp.xpo'); treeNode.getNodeInLayer(UtilEntryLevel::sys).treeNodeExport('d:\\sys.xpo');
__________________
Возможно сделать все. Вопрос времени Последний раз редактировалось sukhanchik; 07.12.2005 в 16:12. |
|
07.12.2005, 16:25 | #3 |
Участник
|
2sukhanchik Попробовал предложенный Вами вариант! Почему-то при стандартном экспорте с того же слоя того же самого объекта получается другой файл экспорта!
|
|
07.12.2005, 16:31 | #4 |
Участник
|
Странно! С други объектом отработало нормально!! Спасибо за совет!
|
|
07.12.2005, 18:22 | #5 |
Участник
|
Возникла проблема при выгрузке форм в строке
treeNode = treeNode.getNodeInLayer(UtilEntryLevel::var); переменная treeNode получает значение: new, Form Код: void exportElements (TreeNode treeNode, FilePath filePath) { TreeNodeIterator it; ; it = treenode.AOTiterator(); treeNode = it.next(); while(treeNode) { treeNode = treeNode.getNodeInLayer(UtilEntryLevel::var); if (treeNode) treeNode.treeNodeExport(filePath+"\\" + treeNode.AOTname()+'.xpo'); treeNode = it.next(); } } может кто знает как с этим бороться? Последний раз редактировалось Vasilenko Alexsandr; 07.12.2005 в 18:25. |
|
07.12.2005, 18:24 | #6 |
Участник
|
Все остальные объекты выгрузились без проблем (Таблицы, Типы, Классы, Отчеты и т.д.) а вот с формами такая трабла!
|
|
07.12.2005, 18:34 | #7 |
Moderator
|
Формы не хранятся по слоям.
Здесь еще об этом.
__________________
С уважением, kvan. Последний раз редактировалось kvan; 07.12.2005 в 19:01. |
|
07.12.2005, 18:52 | #8 |
Участник
|
Цитата:
Сообщение от kvan
Формы не хранятся по слоям.
|
|
07.12.2005, 23:28 | #9 |
Участник
|
По-моему проще это сделать с помощью UtilElements
X++: void exportForms (UtilElementType elementType, UtilEntryLevel entryLevel, FilePath filePath) { TreeNode tn; UtilElements utilElements; // для форм elementType = UtilElementType::Form ; while select utilElements where utilElements.recordType == elementType && utilElements.utilLevel == entryLevel { tn = xUtilElements::getNode(utilElements); tn.treeNodeExport(FilePath + "\\" + tn.treeNodeName() + "_" + enum2str(tn.applObjectLayer()) + ".xpo"); tn.treeNodeRelease(); } }
__________________
Axapta v.3.0 sp5 kr2 |
|
08.12.2005, 10:03 | #10 |
Administrator
|
Вообще говоря - такой код работает (проверил):
X++: TreeNode treeNode = TreeNode::findNode('\\Forms\\Address'); ; treeNode.treeNodeExport('d:\\dis.xpo'); treeNode.getNodeInLayer(UtilEntryLevel::gls).treeNodeExport('d:\\gls.xpo'); 2AndyD: Дык мой вариант короче
__________________
Возможно сделать все. Вопрос времени |
|
08.12.2005, 10:45 | #11 |
Участник
|
Цитата:
Сообщение от sukhanchik
Вообще говоря - такой код работает (проверил):
И что самое интересное, что только для форм! Для отчетов и запросов отработало все отлично!! Уже после первой строки X++: TreeNode treeNode = TreeNode::findNode([color=red]'\\Forms\\Address'[/color]); Последний раз редактировалось Vasilenko Alexsandr; 08.12.2005 в 11:06. |
|
08.12.2005, 11:26 | #12 |
Administrator
|
а в чем состоит неработоспособность? treeNode правильно инициализировался. Не работает метод
getNodeInLayer или treeNodeExport ?
__________________
Возможно сделать все. Вопрос времени |
|
08.12.2005, 11:30 | #13 |
Участник
|
Цитата:
Сообщение от sukhanchik
а в чем состоит неработоспособность? treeNode правильно инициализировался. Не работает метод
getNodeInLayer или treeNodeExport ? |
|
08.12.2005, 13:30 | #14 |
Administrator
|
минуточку - следующий код
X++: TreeNode treeNode = TreeNode::findNode('\\Forms\\Address');
;
info(treeNode.toString()); Path: \Forms\Address Layer: dis Код X++: TreeNode treeNode = TreeNode::findNode('\\Forms\\Address').getNodeInLayer(UtilEntryLevel::gls);
;
info(treeNode.toString()); Path: \Forms\Address Layer: gls Проверьте у себя. У меня - приложение от Ax 3.0 SP3 CU1; клиент - Ax 3.0 SP4
__________________
Возможно сделать все. Вопрос времени |
|
08.12.2005, 15:07 | #15 |
Участник
|
Забыл написать, что инициализацию уже поборол!
Да и вобщем все проблемы решил! Спасибо! Вот если кому нужно: X++: void exportElements (TreeNode treeNode, FilePath filePath) { TreeNodeIterator it; ; it = treenode.AOTiterator(); treeNode = it.next(); while(treeNode) { if (treeNode.getNodeInLayer(UtilEntryLevel::var)) treeNode.getNodeInLayer(UtilEntryLevel::var).treeNodeExport(filePath+"\\" + treeNode.treeNodeName()+'.xpo'); treeNode = it.next(); } } |
|
|
За это сообщение автора поблагодарили: Lucky13 (5). |