Помогите разобраться в установке и снятии ограничений. Написал такой интерфейс (часть):
Код: Выделить всё
interface SortEx 'Сортировка', cyan, EscClose;
show at (,,110,30);
table struct ChoosePodr (NREC : comp)
with index (ind01=NREC);
create view
as select *
from PERSONS, DOPINFO, APPOINTMENTS, SYNONYM CATALOGS CATALOGSPOST, SYNONYM CATALOGS CATALOGSDEP, COMMUNICATIONS, ChoosePodr
where
(( 'С' == PERSONS.ISEMPLOYEE
and PERSONS.NREC == DOPINFO.CPERSON
and PERSONS.APPOINTCUR == APPOINTMENTS.NREC
and APPOINTMENTS.POST == CATALOGSPOST.NREC
and APPOINTMENTS.DEPARTMENT == CATALOGSDEP.NREC
and 10000000002D9h == COMMUNICATIONS.COMTYPE
and PERSONS.NREC == COMMUNICATIONS.PERSON
))
bounds byPodr =
'С' == PERSONS.ISEMPLOYEE //Сотрудники
and PERSONS.APPOINTCUR /==APPOINTMENTS.NREC
and APPOINTMENTS.POST /==ChoosePodr.NREC
order byFio by PERSONS.ISEMPLOYEE, PERSONS.FIO
order byTabN by PERSONS.ISEMPLOYEE, PERSONS.TABNMB;
browse brSpisok (,,sci1Esc);
table PERSONS;
fields
PERSONS.TABNMB 'Табельный номер' :[10],protect;
PERSONS.FIO 'ФИО' :[35],protect;
CATALOGSDEP.NAME 'Отдел' :[30],protect;
CATALOGSPOST.NAME 'Должность' :[25],protect;
COMMUNICATIONS.ADDR 'Телефон' :[10],protect;
end;
procedure ApplyFilter;
{
var mMarkDoc : longint;
var IndexNo : longint;
var i : word;
var z : comp;
mMarkDoc := InitMarker('CATALOGSMARKER',8,1,1);
z := 0
delete all ChoosePodr;
for(i:=0; i < GetMarkerCount(mMarkDoc); i:=i+1)
{
count := count + 1;
IndexNo := i;
GetMarker(mMarkDoc,IndexNo,z);
insert into ChoosePodr set ChoosePodr.NREC := z;
}
donemarker(mMarkDoc,'CATALOGSMARKER');
PushBounds(tbbyPodr);
RescanPanel(#PERSONS);
}
...
Я хочу, чтоб была возможность установить фильтр на отдел (множественный выбор). Планировал заполнить временную таблицу ChoosePodr выбранными записями и затем ограничением byPodr выводить нужное.
Подскажите, где ошибся, или, может быть, такие задачи как-то по другому решать надо.