AXForum  
Go Back   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search Mark Forums Read

 
 
Thread Tools Search this Thread Display Modes
Old 01.11.2007, 07:32   #1  
Proba is offline
Proba
Участник
 
60 / 13 (1) ++
Join Date: 25.06.2007
Location: Красноярск\Зеленогорск
Обработка ошибки!
Добрый день!

Есть код. В определенный момент появляется ошибка, нужно обработать эту ошибку.
X++:
args    = new Args(PurchTable);
formRun = new FormRun(args);
 
formRun.init();
formRun.run();
tab = formRun.control(12294); //12290; 12292
 
if(tab)
{
     for(i=1; i<=tab.tabs(); i++)
     {
     ...................
     }
}
На строке
X++:
for(i=1; i<=tab.tabs(); i++)
выдается ошибка.
Как поймать эту ошибку, и как в качестве обработки выполнить какую либо другую операцию.
Ошибка появляется не для всех форм.

Пробовал использовать try и catch, просмотрел темы,
Вопрос про throw error

Почему может не ловиться исключение
но это мне не помогло.

Подскажите, как можно поймать и обработать эту ошибку?
Old 01.11.2007, 09:53   #2  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Join Date: 27.03.2002
Location: Москва
Quote:
Originally Posted by Proba View Post
X++:
tab = formRun.control(12294); //12290; 12292
А это что за хакерство у вас? Что вы хотите сделать-то?
__________________
Андрей.
Old 01.11.2007, 10:00   #3  
Proba is offline
Proba
Участник
 
60 / 13 (1) ++
Join Date: 25.06.2007
Location: Красноярск\Зеленогорск
Хочу получить TabPage формы. Исходный код этого хакерства можно посмотреть здесь.
У меня строка "Control::Tab", почему то не работала, поэтому пришлось написать так.
Old 01.11.2007, 10:11   #4  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Join Date: 27.03.2002
Location: Москва
Ну по ссылке _такого_ не написано.
ИДшники контролов формы - дело переменчивое, на них не стоит завязываться. А Control::Tab не работает потому, что у вас сам FormTabControl имеет название отличное от "Tab". Напишите "Control::<ваше_название>".
__________________
Андрей.
Old 01.11.2007, 10:21   #5  
Proba is offline
Proba
Участник
 
60 / 13 (1) ++
Join Date: 25.06.2007
Location: Красноярск\Зеленогорск
Quote:
ИДшники контролов формы - дело переменчивое, на них не стоит завязываться
Согласен, но ни чего не поделаеш.
В том то и дело, что название "своего" контрола не знаю.
Цикл должен быть универсален, чтоб работало для любой формы, у каждой свой Tab, а там имён тьма тьмущая.
Old 01.11.2007, 10:32   #6  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Join Date: 27.03.2002
Location: Москва
Цикл по всем контролам формы, с проверкой на FormTabControl, можно написать так:
X++:
FormControl    formControl;
...
for (i = 1; i <= formRun.design().controlCount(); i++)
{
    formControl = formRun.design().controlNum(i);
    if (classIdGet(formControl) == classnum(FormTabControl))
    {
    ...
    }
}
Но задача у вас какая-то, извините, странная. А если на форме не 1 таб, а два, три? Вложенные?
__________________
Андрей.
Old 01.11.2007, 10:57   #7  
Proba is offline
Proba
Участник
 
60 / 13 (1) ++
Join Date: 25.06.2007
Location: Красноярск\Зеленогорск
Интерсно
X++:
for (i = 1; i <= formRun.design().controlCount(); i++)
, НО (на примере формы InventTable) "controlCount()" выдаёт количество контролов равное 2. Но ведь это не так, их гораздо больше. В итоге обрабатывается только одна вкладка, о др. контрол отсекается условием.

Quote:
А если на форме не 1 таб, а два, три?
Не пойму, а в чем проблема если их больше однго. По выше приведенной ссылке, показано как активировать n-ю вкладку.

Зада в том чтоб перебрать все вкладки формы и сделать для них скрин шот, ВСЕ те которые ВИДНЫ пользователю. Например для таблицы "PurchTable" у меня не видно не одной вкладки (хотя они есть), и в стороке "tab.tabs(); " происходила ошибка. Поэтому и захотелось проигнарировать эту ошибку, и сделать скрин шот формы как есть.
Old 01.11.2007, 11:14   #8  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Join Date: 27.03.2002
Location: Москва
Да, там еще надо рекурсивно залазить внутрь контейнерных контролов на форме.
Посмотрите форму tutorial_Form_EnumerateControls, там это все есть.

Quote:
Originally Posted by Proba View Post
Не пойму, а в чем проблема если их больше однго. По выше приведенной ссылке, показано как активировать n-ю вкладку.
Я имел в виду не закладки (TabPages), а сами Табы (FormTabControl). Ну это ладно, проехали.
__________________
Андрей.
Old 02.11.2007, 09:45   #9  
Proba is offline
Proba
Участник
 
60 / 13 (1) ++
Join Date: 25.06.2007
Location: Красноярск\Зеленогорск
Спасибо большое за пример!!!!
Моё решение
X++:
formRun.control(12294)
было в корне не правильно!
Последовал вашему совету
Quote:
Посмотрите форму tutorial_Form_EnumerateControls
и все проблемы решились сами собой!
Спасибо!
 

Similar Threads
Thread Thread Starter Forum Replies Last Post
Обработка входящего НДС andrw DAX: Функционал 12 05.03.2008 11:35
Ошибки при разноске в ГК Андрей К. DAX: Программирование 16 17.04.2007 12:44
Ошибки (?) в акте списания Ivanhoe DAX: Функционал 0 01.02.2007 13:32
Висит обработка фактуры Pavel8338 DAX: Администрирование 12 12.01.2006 13:10
Суммарная обработка накладной AlexUnik DAX: Функционал 1 19.08.2004 15:51
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 02:03.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.