Touto procedurou lze z uživatelské databáze 'F' vybrat věty, které odpovídají definici v parametru 'Data'. Typ filtru je určen parametrem 'Typ':
1 = první věta, která splňuje podmínku 2 = první věta, která nesplňuje podmínku 3 = všechny věty, které splňují podmínku 4 = všechny věty, které nesplňují podmínku 5 = všechny věty, které leží uvnitř intervalu 6 = všechny věty, které leží vně intervalu
'KeyNr' je číslo řídicího indexu, podle kterého bude probíhat krokování. 'KeyMask' je maska definující použité klíče:
$0001 = klíč 1 (Ident) $0002 = klíč 2 $0004 = klíč 3 $0008 = klíč 4 $0010 = klíč 5
DBFltKeys(PohDBF, 3, 6, $0020, "", "", "", "", "", "", "", "", "", "", KeyStr, "", "", "", "", "", "", "", "", "", True, ValidRec);
DBFltKeys(DBF, 5, 3, $0004, "", "", "", "", KeyStrLo, KeyStrHi, "", "", "", "", "", "", "", "", "", "", "", "", "", "", True, ValidRec);
Bude-li parametr 'Show' = True(1), bude zobrazena časová osa práce programu. 'Label' je podprogram, který bude volán v případě platnosti věty. Před jeho zavoláním uloží program procedurou SetResult nalezenou větu, procedurou SetIResult(1) atribut věty, procedurou SetLIResult(1) Ident věty, a procedurou SetLIResult(2) uloží fyzické umístění věty na disku (RefNr).
Podívejte se na:Uživatelské databáze
Příklad:
dim F : File;
dim W : Word;
dim Record : String;
dim S10 : String[10;
Vytvoření testovací databáze --
DBRewrite(F, "TEST."+dtaExt, 1,10)
if _DBResult // 0 then Exit endif
for W := 1 to 50 do
S10 := "TEST"+_Str(W:3);
StrPut(Record, S10, W, S10)
DBAdd(F, Record)
end
WInit(10, 1,1,80,22, "", winMove, 0); WOpen(10);
Zobraz všechny věty mající klíč v rozsahu 'TEST 4'..'TEST 9'
DBFltKeys(DBF, 5, 2, $0004,
"", "",
"TEST 4", "TEST 9",
"", "",
"", "",
"", "",
"", "",
"", "",
"", "",
"",
"",
"",
"",
True, Filter);
Wait
Exit
Filter:
PrintLn(_GetResult)
return