AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.12.2005, 15:45   #1  
Vasilenko Alexsandr is offline
Vasilenko Alexsandr
Участник
Дети Юза
 
90 / 16 (1) ++
Регистрация: 05.09.2002
Адрес: Одесса
Программынй экспорт из определенного слоя
Подскажите пожалуйста, как программно можно сделать экспорт элемента АОТ из определенного слоя?
Сразу скажу, что из определенного слоя - ключевое словосочетание, т.к. всё остальное уже работает!
Старый 07.12.2005, 16:04   #2  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,323 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
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, 18:22   #3  
Vasilenko Alexsandr is offline
Vasilenko Alexsandr
Участник
Дети Юза
 
90 / 16 (1) ++
Регистрация: 05.09.2002
Адрес: Одесса
Возникла проблема при выгрузке форм в строке

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();
}
}
в качестве параметра treeNode = \Forms

может кто знает как с этим бороться?

Последний раз редактировалось Vasilenko Alexsandr; 07.12.2005 в 18:25.
Старый 07.12.2005, 16:25   #4  
Vasilenko Alexsandr is offline
Vasilenko Alexsandr
Участник
Дети Юза
 
90 / 16 (1) ++
Регистрация: 05.09.2002
Адрес: Одесса
2sukhanchik Попробовал предложенный Вами вариант! Почему-то при стандартном экспорте с того же слоя того же самого объекта получается другой файл экспорта!
Старый 07.12.2005, 16:31   #5  
Vasilenko Alexsandr is offline
Vasilenko Alexsandr
Участник
Дети Юза
 
90 / 16 (1) ++
Регистрация: 05.09.2002
Адрес: Одесса
Странно! С други объектом отработало нормально!! Спасибо за совет!
Старый 07.12.2005, 18:24   #6  
Vasilenko Alexsandr is offline
Vasilenko Alexsandr
Участник
Дети Юза
 
90 / 16 (1) ++
Регистрация: 05.09.2002
Адрес: Одесса
Все остальные объекты выгрузились без проблем (Таблицы, Типы, Классы, Отчеты и т.д.) а вот с формами такая трабла!
Старый 07.12.2005, 18:34   #7  
kvan is offline
kvan
Moderator
Аватар для kvan
Дети Юза
 
775 / 49 (3) +
Регистрация: 07.08.2002
Адрес: Donetsk
Формы не хранятся по слоям.
Здесь еще об этом.
__________________
С уважением, kvan.

Последний раз редактировалось kvan; 07.12.2005 в 19:01.
Старый 07.12.2005, 18:52   #8  
Vasilenko Alexsandr is offline
Vasilenko Alexsandr
Участник
Дети Юза
 
90 / 16 (1) ++
Регистрация: 05.09.2002
Адрес: Одесса
Цитата:
Сообщение от kvan
Формы не хранятся по слоям.
Но ведь в стандартном експорте фозможно получить форму из определенного слоя!
Старый 07.12.2005, 23:28   #9  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
По-моему проще это сделать с помощью 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  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,323 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Вообще говоря - такой код работает (проверил):
X++:
    TreeNode treeNode = TreeNode::findNode('\\Forms\\Address');
    ;
    treeNode.treeNodeExport('d:\\dis.xpo');
    treeNode.getNodeInLayer(UtilEntryLevel::gls).treeNodeExport('d:\\gls.xpo');
kvan прав - формы, отчеты и запросы хранятся не по слоям

2AndyD: Дык мой вариант короче
__________________
Возможно сделать все. Вопрос времени
Старый 08.12.2005, 10:45   #11  
Vasilenko Alexsandr is offline
Vasilenko Alexsandr
Участник
Дети Юза
 
90 / 16 (1) ++
Регистрация: 05.09.2002
Адрес: Одесса
Цитата:
Сообщение от sukhanchik
Вообще говоря - такой код работает (проверил):
Повезло Вам!! А уменя тоже самое не работает!!
И что самое интересное, что только для форм! Для отчетов и запросов отработало все отлично!!
Уже после первой строки
X++:
TreeNode treeNode = TreeNode::findNode([color=red]'\\Forms\\Address'[/color]);
treeNode имеет значение new, Form (наследник ТreeNode), а не \Forms\Adress : Layer usr!

Последний раз редактировалось Vasilenko Alexsandr; 08.12.2005 в 11:06.
Старый 08.12.2005, 11:26   #12  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,323 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
а в чем состоит неработоспособность? treeNode правильно инициализировался. Не работает метод
getNodeInLayer или treeNodeExport ?
__________________
Возможно сделать все. Вопрос времени
Старый 08.12.2005, 11:30   #13  
Vasilenko Alexsandr is offline
Vasilenko Alexsandr
Участник
Дети Юза
 
90 / 16 (1) ++
Регистрация: 05.09.2002
Адрес: Одесса
Цитата:
Сообщение от sukhanchik
а в чем состоит неработоспособность? treeNode правильно инициализировался. Не работает метод
getNodeInLayer или treeNodeExport ?
в том то и дело что treeNode неправильно инициализируется!
Старый 08.12.2005, 13:30   #14  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,323 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
минуточку - следующий код
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  
Vasilenko Alexsandr is offline
Vasilenko Alexsandr
Участник
Дети Юза
 
90 / 16 (1) ++
Регистрация: 05.09.2002
Адрес: Одесса
Забыл написать, что инициализацию уже поборол!
Да и вобщем все проблемы решил! Спасибо!

Вот если кому нужно:
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).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как экспортитровать объекты с конкретного слоя из Х++? custtable DAX: Программирование 4 25.01.2007 10:29
Экспорт слоя USR st_msav DAX: Администрирование 2 10.02.2006 13:56
Экспорт таблиц и форм с указанием слоя Zepp DAX: Администрирование 8 31.10.2005 20:16
Перенос модификаций из слоя в слой с идентификаторами Anais DAX: Программирование 12 05.08.2005 15:51
Экспорт Александр Костоусов DAX: Программирование 1 06.10.2004 15:53
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 13:37.