Страница 1 из 1
Мультивыбор организаций
Добавлено: 12 июн 2008, 15:40
levtov
Галактика 8. Можно ли с помощью интерфейса GetKatOr или другого
выбрать несколько организаций. То есть запустить множественный выбор KatOrg.Nrec и где то их сохранить.
Добавлено: 16 июн 2008, 11:02
k_vit
Interface L_KATORG::GetSomeKontrPrim
Интерфейс множественного выбора организаций. Выбор сохраняется в маркера KatOrg, KatOrgDescr
Добавлено: 16 июн 2008, 16:29
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);};
Добавлено: 17 июн 2008, 08:41
k_vit
Ну маркеры работают быстрее чем таблицы.
Хотя в вашем случае я не думаю, что вы много организаций собираете.

Добавлено: 17 июн 2008, 09:58
Алексей
k_vit маркеры нельзя использовать для жесткой подцепки в логической таблице, а pick можно...
Добавлено: 17 июн 2008, 15:34
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...
Добавлено: 18 июн 2008, 09:12
Алексей

ну вы ведь маркеры перетаскиваете в табличку, по которой потом и наложите жесткую подцепку?
Мы, реализовывая фильтры по МОЛам и подразделениям просто добавляем баундсы, к примеру по МБП
Код: Выделить всё
Bounds ByPodr = word(11) /== PickPodr.wList and
MBPIn.cPodr /== PickPodr.cRec
Bounds ByMOL = word(8) /== PickMOL.wList and
MBPIn.cMOL /== PickMOL.cRec
;
и дальше если пик не пустой просто подымаем баундс...
мне кажется так проще.