|
|
#1 |
|
Участник
|
Программынй экспорт из определенного слоя
Подскажите пожалуйста, как программно можно сделать экспорт элемента АОТ из определенного слоя?
Сразу скажу, что из определенного слоя - ключевое словосочетание, т.к. всё остальное уже работает! |
|
|
|
|
#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. |
|
|
|
|
#3 |
|
Участник
|
2sukhanchik Попробовал предложенный Вами вариант! Почему-то при стандартном экспорте с того же слоя того же самого объекта получается другой файл экспорта!
|
|
|
|
|
#4 |
|
Участник
|
Странно! С други объектом отработало нормально!!
Спасибо за совет!
|
|
|
|
|
#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. |
|
|
|
|
#6 |
|
Участник
|
Все остальные объекты выгрузились без проблем (Таблицы, Типы, Классы, Отчеты и т.д.) а вот с формами такая трабла!
|
|
|
|
|
#7 |
|
Moderator
|
Формы не хранятся по слоям.
Здесь еще об этом.
__________________
С уважением, kvan. Последний раз редактировалось kvan; 07.12.2005 в 19:01. |
|
|
|
|
#8 |
|
Участник
|
Цитата:
Сообщение от kvan
Формы не хранятся по слоям.
|
|
|
|
|
#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 |
|
|
|
|
#10 |
|
Administrator
|
Вообще говоря - такой код работает (проверил):
X++: TreeNode treeNode = TreeNode::findNode('\\Forms\\Address'); ; treeNode.treeNodeExport('d:\\dis.xpo'); treeNode.getNodeInLayer(UtilEntryLevel::gls).treeNodeExport('d:\\gls.xpo'); 2AndyD: Дык мой вариант короче
__________________
Возможно сделать все. Вопрос времени |
|
|
|
|
#11 |
|
Участник
|
Цитата:
Сообщение от sukhanchik
Вообще говоря - такой код работает (проверил):
А уменя тоже самое не работает!!![]() И что самое интересное, что только для форм! Для отчетов и запросов отработало все отлично!! ![]() Уже после первой строки X++: TreeNode treeNode = TreeNode::findNode([color=red]'\\Forms\\Address'[/color]);Последний раз редактировалось Vasilenko Alexsandr; 08.12.2005 в 11:06. |
|
|
|
|
#12 |
|
Administrator
|
а в чем состоит неработоспособность? treeNode правильно инициализировался. Не работает метод
getNodeInLayer или treeNodeExport ?
__________________
Возможно сделать все. Вопрос времени |
|
|
|
|
#13 |
|
Участник
|
Цитата:
Сообщение от sukhanchik
а в чем состоит неработоспособность? treeNode правильно инициализировался. Не работает метод
getNodeInLayer или treeNodeExport ?
|
|
|
|
|
#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
__________________
Возможно сделать все. Вопрос времени |
|
|
|
|
#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). | |