01.11.2007, 07:32 | #1 |
Участник
|
Обработка ошибки!
Добрый день!
Есть код. В определенный момент появляется ошибка, нужно обработать эту ошибку. 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 Почему может не ловиться исключение но это мне не помогло. Подскажите, как можно поймать и обработать эту ошибку? |
|
01.11.2007, 09:53 | #2 |
Moderator
|
А это что за хакерство у вас? Что вы хотите сделать-то?
__________________
Андрей. |
|
01.11.2007, 10:00 | #3 |
Участник
|
Хочу получить TabPage формы. Исходный код этого хакерства можно посмотреть здесь.
У меня строка "Control::Tab", почему то не работала, поэтому пришлось написать так. |
|
01.11.2007, 10:11 | #4 |
Moderator
|
Ну по ссылке _такого_ не написано.
ИДшники контролов формы - дело переменчивое, на них не стоит завязываться. А Control::Tab не работает потому, что у вас сам FormTabControl имеет название отличное от "Tab". Напишите "Control::<ваше_название>".
__________________
Андрей. |
|
01.11.2007, 10:21 | #5 |
Участник
|
Цитата:
ИДшники контролов формы - дело переменчивое, на них не стоит завязываться
В том то и дело, что название "своего" контрола не знаю. Цикл должен быть универсален, чтоб работало для любой формы, у каждой свой Tab, а там имён тьма тьмущая. |
|
01.11.2007, 10:32 | #6 |
Moderator
|
Цикл по всем контролам формы, с проверкой на FormTabControl, можно написать так:
X++: FormControl formControl; ... for (i = 1; i <= formRun.design().controlCount(); i++) { formControl = formRun.design().controlNum(i); if (classIdGet(formControl) == classnum(FormTabControl)) { ... } }
__________________
Андрей. |
|
01.11.2007, 10:57 | #7 |
Участник
|
Интерсно
X++: for (i = 1; i <= formRun.design().controlCount(); i++) Цитата:
А если на форме не 1 таб, а два, три?
Зада в том чтоб перебрать все вкладки формы и сделать для них скрин шот, ВСЕ те которые ВИДНЫ пользователю. Например для таблицы "PurchTable" у меня не видно не одной вкладки (хотя они есть), и в стороке "tab.tabs(); " происходила ошибка. Поэтому и захотелось проигнарировать эту ошибку, и сделать скрин шот формы как есть. |
|
01.11.2007, 11:14 | #8 |
Moderator
|
Да, там еще надо рекурсивно залазить внутрь контейнерных контролов на форме.
Посмотрите форму tutorial_Form_EnumerateControls, там это все есть. Я имел в виду не закладки (TabPages), а сами Табы (FormTabControl). Ну это ладно, проехали.
__________________
Андрей. |
|
02.11.2007, 09:45 | #9 |
Участник
|
Спасибо большое за пример!!!!
Моё решение X++: formRun.control(12294) Последовал вашему совету Цитата:
Посмотрите форму tutorial_Form_EnumerateControls
Спасибо! |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Обработка входящего НДС | 12 | |||
Ошибки при разноске в ГК | 16 | |||
Ошибки (?) в акте списания | 0 | |||
Висит обработка фактуры | 12 | |||
Суммарная обработка накладной | 1 |
|