Показать сообщение отдельно
Старый 28.04.2008, 17:37   #1  
matew is offline
matew
Участник
 
37 / 10 (1) +
Регистрация: 10.07.2006
Адрес: Москва
Проблема с передачей контролов из формы в класс
Всем доброго времени суток!
Есть задача: создать поле 'Наименование ячейки' в WMSLocation и в определенных случаях отображать его на некоторых формах при отображении складской аналитики 'Ячейка'.
Создаю на нужной форме (InventTransBOM - Строки журнала спецификаций) контрол для отображения нового поля, перекрываю нужный класс InventDimCtrl_Frm_... (дописываю в нем метод для отображения (сокрытия) нового контрола на форме) - все работает прекрасно! Контрол отображается в зависимости от обображения аналитики 'Ячейка'.
Решил немного усовершенствовать - передвинуть контрол в группу аналитик, чтобы он следовал сразу за контролом 'Ячейка'. Сделал свойство группы аналитик на форме AutoDataGroup = No, передвинул контрол, после чего начались необъяснимые явления )))
На ините формы инициализируется класс journalFormTrans, куда передаются некоторые контролы формы.

X++:
void init()
{
    ;
    journalFormTrans = new InventJournalFormTrans_Mov_BOM(element);

    super();

    journalFormTrans.parmCtrlCheckJournal(checkJournal);
    journalFormTrans.parmCtrlPostJournal(postJournal);
    journalFormTrans.parmCtrlInfolog(showInfolog);
    journalFormTrans.parmCtrlVoucherGrid(inventJournalTrans_Voucher);
    journalFormTrans.parmCtrlVoucherTab(voucher);
    journalFormTrans.parmCtrlLineLogImage(lineLogImage);

    journalFormTrans.formInitPost();
}
Так вот после передвижки моего контрола в группу, в качестве контролов в класс стали передаваться другие контролы, например вместо lineLogImage стал передаваться voucher, вместо voucher - следующий, расположенный за ним на форме со свойством AutoDeclaration = Yes и т.д., в результате трассировки - класс journalFormTrans не отрабатывает так как надо.
Стоит поменять свойство моего контрола на AutoDeclaration = No (для моей задачи нужно чтоб было Yes), как все опять работает нормально. В чем может быть дело ума не приложу? Контролы передаются по именам, как может влиять добавление нового контрола (точнее даже просто установка его свойства AutoDeclaration) на порядок передачи их в класс - просто загадка!!!
Пробовал переливать на другое приложение - та же картина. Кто нибудь сталкивался с чем-нибудь подобным или я делаю что-то криминальное?

Ax 4.0, SQL server 2005