|  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). | |
|  | 
| Опции темы | Поиск в этой теме | 
| Опции просмотра | |
| 
 |