| 
			
			 | 
		#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). | |