Есть хитрый способ имитровать некий аналог OR на формах.
Пример - В списке счетов фактур нужно показывать только те записи где я менеджер ИЛИ клиент='Вася Пупкин'.
Что делаем
1. На форме Объявляем две переменные record Purh. Inv Header. и при открытии накладываем фильтры PIH1.setrange("Salesperson Code", Я); PIH2.setrange("Salesperson Code", Я).
2. На OnFindRecord и OnNextRecord обманываем Нав следующим образом:
[codebox]OnFindRecord:
PIH1:=rec;
PIH2:=rec;
Found1:=PIH1.find(which);
Found2:=PIH1.find(which);
if not(Found1) and not(Found2) then exit(false);
if Found1 and Found2 then begin
if PIH1."No."<PIH2."No." then
rec:=PIH1;
else
rec:=PIH2;
end
else begin
if Found1 then
rec:=found1
else
rec:=found2;
end;
exit(true)[/codebox]
Аналогичным образом (работая с двумя наборами и сравнивая) - пишем код на OnNextRecord.
В приведенном примере не учитываются фильтры наложенные на форму и выбранный ключ - эти проблемы решаются достаточно просто.
|