Primer s poizvedbo in branjem podatkov iz okna v P
Tabele in poizvedbe

|
KRATEK OPIS SPODNJEGA PRIMERA: Primer s poivedbo in branjem podatkov iz okna v PANTHEON-u |
Primer s poizvedbo in branjem podatkov iz okna v PANTHEON-u
Naredili bomo kopijo izpisa 147, ki je v programu v meniju Blago | Zaloga | Pregled trenutne zaloge s poenostavljenim datasetom, da bo vseboval samo podatke iz tabele identov in obe klasifikaciji. Pogoj za poizvedbo bomo prebrali iz tekstovnih komponent v oknu v PANTHEON-u. Najprej izpis 147 odpremo in naredimo kopijo, na kateri bomo delali. Na zavihek Data damo objekt za poizvedbo in mu za lastnost SQL vnesemo stavek na spodnji sliki. Na zavihku Page1 nastavimo lastnost pasu Detail na DlDBQuery1 in nanj damo naslednja polja:
acIdent, acName, acCode, acClasif in acClasif2.
V filter na poizvedbi bomo iz okna v PANTHEON-u s pomočjo funkcije GetFormValue prebrali pogoja za ident in primarno klasifikacijo.
Slika - Zavihek Data z objektom za poizvedbo in vpisanim stavkom SQL
Najprej nastavimo lastnost objekta za poizvedbo Filtered na True . Potem v kodo na izpisu dopišemo:
var
cIdent, cKlasif: String;
...
begin
cIdent := GetFormValue('PrometIzpisTrenZaloga.fIdent');
cKlasif := GetFormValue('PrometIzpisTrenZaloga.fKlasif');
DlDBQuery1.Filter := '(1=1)';
if cIdent <> '' then
DlDBQuery1.Filter := DlDBQuery11.Filter + ' AND acIdent = ''' + cIdent + '''';
if cKlasif <> '' then
DlDBQuery1.Filter := DlDBQuery1.Filter + ' AND acClasif = ''' + cKlasif + '''';
end.
Da ni bilo potrebno preverjati, ali je pogoj prvi in je zato potrebno pred njim pisati 'AND', smo na začetku filtra zapisali pogoj, ki je vedno izpolnjen.