Дерево

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Juve
Постоянный гость
Сообщения: 60
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Контактная информация:

Дерево

Сообщение 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: Срабатывает только на уровне фейса, хотя по логике, должно на уровне панели. Подскажите, где же я не прав. Спасибо!
Goblin
Местный житель
Сообщения: 474
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Сибирь-матушка
Контактная информация:

Сообщение Goblin »

Table у панели укажите, у Tree не надо - нормально будет тогда
Питаю патологические отвращение и ненависть в особо тяжелой и крайне запущенной формах к семейству программ Microsoft Business Solution !
Восславим господа Кришну за то, что у нас есть ГАЛАКТИКА !
Juve
Постоянный гость
Сообщения: 60
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Контактная информация:

Сообщение Juve »

Спасибо большое, заработало!!!

Только если вот у меня корневая таблица дерева меняется в динамике через TreeSetNodeTable, мне что тогда без cmTreeNodeType сидеть?
То есть, как только вызывается TreeSetNodeTable, событие cmTreeNodeType попросту перестаёт функционировать. Есть ли выход из ситуации?
Juve
Постоянный гость
Сообщения: 60
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Контактная информация:

Сообщение 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:
Ответить