Страница 1 из 1

Дерево

Добавлено: 17 фев 2006, 18:09
Juve
Здравствуйте!
В интерфейсе пишу:

Код: Выделить всё

window wNewResDetail 'тря ля ля'
  show at (,,120,20);
  panel pwResDetail;
    show at (,,64,10);
    Tree t_CallValue;     
      show at (,,56,10);
      table tc_CallValue;
      Fields
        tc_CallValue.sName;
      end; // tree
handleevent
    cmTreeNodeType:  Message ('jk');
    cmTreeTop: nvParent:=0;
    cmTreeDown:  nvParent:=tc_CallValue.ATL_NRec; 
    cmTreeUp:  nvParent:=tc_CallValue.nParent;
    end; // handle
  end; // panel
 end; // window
так вот, событие cmTreeNodeType просто не происходит, не помогает даже если его прописать на уровне окна. :eek: Срабатывает только на уровне фейса, хотя по логике, должно на уровне панели. Подскажите, где же я не прав. Спасибо!

Добавлено: 20 фев 2006, 09:32
Goblin
Table у панели укажите, у Tree не надо - нормально будет тогда

Добавлено: 20 фев 2006, 20:38
Juve
Спасибо большое, заработало!!!

Только если вот у меня корневая таблица дерева меняется в динамике через TreeSetNodeTable, мне что тогда без cmTreeNodeType сидеть?
То есть, как только вызывается TreeSetNodeTable, событие cmTreeNodeType попросту перестаёт функционировать. Есть ли выход из ситуации?

Добавлено: 20 фев 2006, 21:08
Juve
Ура, разобрался! дело было не в TreeSetNodeTable а в подцепке!
Теперь работает вот так:

Код: Выделить всё

...
where ((
nvParent==CallValue2.nParent
and CallValue2.nCallTypeID==CallType2.ATL_NRec))...
а сам код такой:

Код: Выделить всё

  panel pwResDetail;
    show at (,,64,10);
    table CallValue2;
    Tree t_CallValue;     
      show at (,,56,10);
      Fields
        If (TreeGetNodeTable(t_CallValue)=#CallType2,CallType2.sName,CallValue2.sName) 'Отзывы от клиента':[20],Protect;
      end; // tree
   handleEvent
    cmTreeNodeType: 
      { 
        If TreeIsTerminal(t_CallValue) then TreeSetNodeType(t_CallValue,ntfText);
      }
    cmTreeTop:
      {
        nvParent:=0; 
      }
    cmTreeDown:
      {
        if (TreeGetNodeTable(t_CallValue)=#CallType2) TreeSetNodeTable(t_CallValue,#CallValue2);
          else nvParent:=CallValue2.ATL_NRec;    
      }
    cmTreeUp:
      {
        if nvParent=0 TreeSetNodeTable(t_CallValue,#CallType2);
          else nvParent:=CallValue2.nParent;   
      }
      end; // handle
    end; // panel
Спасибо еще раз! :cool: