Показать сообщение отдельно
Старый 21.08.2006, 11:48   #15  
sparur is offline
sparur
Участник
 
334 / 25 (1) +++
Регистрация: 19.05.2006
Цитата:
Сообщение от AndyD
X++:
    InventMovement _movement = InventMovement::Construct(inventJournalTrans);
   InventTable inventTable;
;
   switch ( mode )
   {
      case InventDimFormDesignUpdate::Init :
         if ( !inventDimFormSetup )
            inventDimFormSetup = new InventDimCtrl_Frm_*( element, _movement);
         inventDimFormSetup.parmSkipOnHandLookUp( true );
         // do continue
Надо бы делать так
Кстати, если наследоваться от InventDimCtrl_Frm, то надо так же переопределять метод mustShowGridField(), как, например, в классе InventDimCtrl_Frm_Mov, иначе, просто, не будет привязки к таблице настроек, а все будет зашито в коде
ага, с этим уже разобрался... теперь другая проблема, так как в стандартном механизме стоит так что сразу после кейса Init выполняется кейс Active ( отсутствует) break,
case InventDimFormDesignUpdate::Init :
if ( !inventDimFormSetup )
inventDimFormSetup = new InventDimCtrl_Frm_Mov_Copy(element,movement);
inventDimFormSetup.parmSkipOnHandLookUp( true );
// do continue
case InventDimFormDesignUpdate::Active :
inventTable = InventTable::find(inventJournalTrans.itemId);
inventDimFormSetup.formActiveSetup(inventTable.dimGroupId);
inventDimFormSetup.formSetControls(true);
break;

то вылезает другая проблема, а именно мы вызываем updatedesign() в методе Init нашей формы, в этот момент к сожалению еще не известна номенклатура и объект InventTable не определен (inventTable = InventTable::find(inventJournalTrans.itemId)) в итоге мы имеем ошибку (или она имеет нас )