![]() |
#18 |
Участник
|
Есть хитрый способ имитровать некий аналог 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. В приведенном примере не учитываются фильтры наложенные на форму и выбранный ключ - эти проблемы решаются достаточно просто. |
|