Пометка в своих интерфейсах под 8.10 - НЕ РАБОТАЕТ. HELP!!!

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

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

Ответить
Sheinina
Местный житель
Сообщения: 366
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Пометка в своих интерфейсах под 8.10 - НЕ РАБОТАЕТ. HELP!!!

Сообщение Sheinina »

Имеется интерфейс выбора:

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

Interface Select_Nach 'Выбор' EscClose, Cyan;
  show at (,,,);
var 
   sel   : longint;
   ino   : longint;
view as select * from table order o1 by table.f1;
parameters sel;
panel p1;
browse b1  (,,sci1EnIns);
fields
   table.f1 'Ф1':[3],protect, {Font={bold=searchmarker(sel,table.nrec,ino)}};
   table.f2 'Ф2':[30],protect, {Font={bold=searchmarker(sel,table.nrec,ino)}};
end;
HandleEvent
cmMarkUnmark: {
      InvertMarker(sel,table.nrec);
      if GetNext table <> tsOK then{};
message('помечено'); // отладка!!!!
      ReReadRecord();
}
cmInvertAll:{
      PushPos(tntable);
      _Loop table {
         InvertMarker(sel,table.nrec);
      }
      PopPos(tntable);
      RescanPanel(tntable);
   }
cmSelectAll: {
      PushPos(tntable);
      _Loop table {
         InsertMarker(sel,table.nrec);
      }
      PopPos(tntable);
      RescanPanel(tntable);
   }
cmUnSelectAll: {
      ClearMarker(sel)
      RescanPanel(tntable);
   }
end;
end;

Handleevent
  cmInit : {
     setorder(tiO1); 
     if getfirst table = tsOK then {}; 
  }
  cmDefault: {
     if GetMarkerCount(sel)=0 then {
           InsertMarker(sel,table.nrec);
     }
     summa:=0; nalog:=0;
     CloseInterface(cmOK); 
  }
end;
end.
В подключенных в проекте файлах описано:

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

  cmMarkUnMark     = 2243;
  cmSelectAll      = 2244;
  cmUnSelectAll    = 2245;
  cmAltInsert      = 2246;
  cmInvertAll      = 2247;
и

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

sci1EnIns         =  6937;
В Галактике 7.12 все работало замечательно. После перекомпиляции под 8.10 пометка работать перестала (сообщение 'помечено' не появляется). Что делать???
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

видать константы событий поменялись.
не пробовали поискать в gal810\frm\galfrm.rar\inc\mark.inc?
у где то там нужно смотреть.
k_vit
Постоянный обитатель
Сообщения: 143
Зарегистрирован: 09 авг 2006, 16:40
Откуда: Россия, Тюмень, ОАО "Сибирский Научно-Аналитический Центр"

Сообщение k_vit »

Вопрос: А зачем HandleEvent дважды описан?
k_vit
Постоянный обитатель
Сообщения: 143
Зарегистрирован: 09 авг 2006, 16:40
Откуда: Россия, Тюмень, ОАО "Сибирский Научно-Аналитический Центр"

Сообщение k_vit »

а что есил попробовать так:

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

Interface Select_Nach 'Выбор' EscClose, Cyan; 
  show at (,,,); 
var 
   sel   : longint; 
   ino   : longint; 
view as select * from table order o1 by table.f1; 
parameters sel; 

browse b1  (,,sci1EnIns); 
fields 
   table.f1 'Ф1':[3],protect, {Font={bold=searchmarker(sel,table.nrec,ino)}}; 
   table.f2 'Ф2':[30],protect, {Font={bold=searchmarker(sel,table.nrec,ino)}}; 
end; 
HandleEvent 
cmInit : { 
   setorder(tiO1); 
   if getfirst table = tsOK then {}; 
} 
cmDefault: { 
   if GetMarkerCount(sel)=0 then { 
         InsertMarker(sel,table.nrec); 
  } 
   summa:=0; nalog:=0; 
   CloseInterface(cmOK); 
} 
cmMarkUnmark: { 
      InvertMarker(sel,table.nrec); 
      if GetNext table <> tsOK then{}; 
message('помечено'); // отладка!!!! 
      ReReadRecord(); 
} 
cmInvertAll:{ 
      PushPos(tntable); 
      _Loop table { 
         InvertMarker(sel,table.nrec); 
      } 
      PopPos(tntable); 
      RescanPanel(tntable); 
   } 
cmSelectAll: { 
      PushPos(tntable); 
      _Loop table { 
         InsertMarker(sel,table.nrec); 
      } 
      PopPos(tntable); 
      RescanPanel(tntable); 
   } 
cmUnSelectAll: { 
      ClearMarker(sel) 
      RescanPanel(tntable); 
   } 
end; 
end.
Nikos
Местный житель
Сообщения: 577
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Томск

Сообщение Nikos »

Я это обошел следующим образом:
const
cmMyIns=1221;
cmMySelAll=1219;
cmMyClear=1220;
end;

далее:
cmMyIns: //cmMarkUnmark:
{
...
}
cmMySelAll: //cmSelectAll:
{
...
}
cmMyClear: //cmUnSelectAll:
{
...
}
Вроде работает.
Sheinina
Местный житель
Сообщения: 366
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение Sheinina »

Nikos писал(а):Я это обошел следующим образом:
const
cmMyIns=1221;
cmMySelAll=1219;
cmMyClear=1220;
end;

далее:
cmMyIns: //cmMarkUnmark:
{
...
}
cmMySelAll: //cmSelectAll:
{
...
}
cmMyClear: //cmUnSelectAll:
{
...
}
Вроде работает.
Спасибо, я так и сделала. Блин, лопатить пришлось все свои vip-ы. Но работает :grin:
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

всего то нужно подправить значения констант. Или ужо inc взять новый- благо он вместе с формами теперь идет. 8)
Ответить