Мультивыбор организаций

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

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

Ответить
levtov
Постоянный гость
Сообщения: 60
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Казахстан, Экибастуз, АО "ЕЭК"
Контактная информация:

Мультивыбор организаций

Сообщение levtov »

Галактика 8. Можно ли с помощью интерфейса GetKatOr или другого
выбрать несколько организаций. То есть запустить множественный выбор KatOrg.Nrec и где то их сохранить.
k_vit
Постоянный обитатель
Сообщения: 143
Зарегистрирован: 09 авг 2006, 16:40
Откуда: Россия, Тюмень, ОАО "Сибирский Научно-Аналитический Центр"

Сообщение k_vit »

Interface L_KATORG::GetSomeKontrPrim

Интерфейс множественного выбора организаций. Выбор сохраняется в маркера KatOrg, KatOrgDescr
levtov
Постоянный гость
Сообщения: 60
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Казахстан, Экибастуз, АО "ЕЭК"
Контактная информация:

Сообщение levtov »

К сожалению с маркерами работать не приходилось. Сделал по старинке через Pick:
Table struct Organ (mark:comp);

cmKontra:
{delete all Pick; s2:=''; delete all Organ;
delete Pick where ((word(6)==Pick.wList));
if (RunInterface('GetSomeKontr', False)=cmDefault)
_LOOP Pick where ((word(6)==Pick.wList and Pick.cRec==KatOrg.nRec))
{ClearBuffer(#Organ);
Organ.mark:=Pick.cRec;
s2:=s2+' '+KatOrg.Name;
insert current Organ; }
s2:=trim(s2); message(s2);};
k_vit
Постоянный обитатель
Сообщения: 143
Зарегистрирован: 09 авг 2006, 16:40
Откуда: Россия, Тюмень, ОАО "Сибирский Научно-Аналитический Центр"

Сообщение k_vit »

Ну маркеры работают быстрее чем таблицы.
Хотя в вашем случае я не думаю, что вы много организаций собираете. :grin:
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

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

Сообщение k_vit »

Алексей

Почему бы и нет?

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

var cOrg : comp;
var Marker : longint;

Marker := initmarker...
  for (i := 0; i <= GetMarkerCount(Marker); Inc(i)) {
    GetMarker(Marker, i, cOrg);
    if GetFirst FastFirstRow KatOrg where ((cOrg == KatOrg.NRec)) = tsOk  {
      ClearBuffer(#Organ);
      Organ.mark:=cOrg;
      s2 := s2 + KatOrg.Name;
      insert current Organ;
    }
  }
donemarker...
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

:) ну вы ведь маркеры перетаскиваете в табличку, по которой потом и наложите жесткую подцепку?

Мы, реализовывая фильтры по МОЛам и подразделениям просто добавляем баундсы, к примеру по МБП

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

Bounds ByPodr = word(11)    /== PickPodr.wList   and
                MBPIn.cPodr /== PickPodr.cRec

Bounds ByMOL = word(8)     /== PickMOL.wList      and
                MBPIn.cMOL /== PickMOL.cRec
;
и дальше если пик не пустой просто подымаем баундс...
мне кажется так проще.
Ответить