Procedury a funkce ve sriptu |
Top Previous Next |
Seznam témat: Umístění ve scriptu Popis a nastavení procedur a funkcí ve skriptu (průvodce zadáním): umístění seznam a popis
Použití
Příklad 1 : Výběr poboček za již vybranou firmu (při #selrows)
Dotaz musí být aktivní před vlastním spuštěním scriptu, pokud ho tedy máme nekativní, je potřeba ho otevřít a v případě, že naše další akce bude mít vliv i na tento dotaz, pak nesmíme zapomenout dát na závěr REFRESH('dotaz')
OPEN('odberatel')
SET fico= FIELD('dotaz1','id_ico') SET fmulti=LOOKUPBOX('Vyberte pobočku','id_multi','SELECT id_multi, nazev1,ulice,obec FROM dba.gfirmy WHERE id_ico=:fico',fico)
další práce s proměnnou je již standardní.
Příklad 2: Příklad pro využití finkcí DIALOGADDITEM, DIALOGINIT, DIALOGSHOW. Sdružení dotazů do jednoho dialogového okna (formuláře) pro nastavení parametrů výběru a zpracování dat před tvorbou tiskového výstupu. Výběr dat má být omezen obdobím, nastaveno třídění, dále nastaveno omezení tisku (všechno, či jen součtové řádky):
SET DlgIsValid=FALSE LOOP DIALOGINIT('Parametry sestavy') DIALOGADDITEM('LOOKUP', 'varobd', 'Vyberte z číselníku období', 'id_dat1; select id_dat1, nazev from dba.gobdobi order by id_dat1 desc') DIALOGADDITEM('COMBO', 'var1', 'Zvolte třídění', 'Podle firmy, Podle času;0') DIALOGADDITEM('COMBO', 'vtisk', 'Zpusob tisku','Položkově,Součty;0')
IF (DIALOGSHOW=FALSE) RETURN(FALSE) //stornuje generování sestavy EXIT ENDIF
SET DlgIsValid=YESNOBOX('Použít tyto parametry pro tisk?') set varobd = getvar('varobd') set var1 = getvar('var1') set vtisk = getvar('vtisk')
if (varobd = '') OKBOX('Chybí parametr "období"') set DlgIsValid=FALSE endif
if (var1 = 0) OKBOX('Chybí parametr "způsob třídění"') set DlgIsValid=FALSE endif
if (vtisk = 0) OKBOX('Chybí parametr "způsob tisku"') set DlgIsValid=FALSE endif
IF (DlgIsValid=TRUE) BREAKLOOP ENDIF ENDLOOP
Příklad 2: Příklad pro výběr parametrů pro sestavení SQL dotazu před tiskem, v SQL dotazu již je klauzule WHERE a je doplněna o dotaz na období:
IF (CHECKQUERY('select * from #zd1') = TRUE) EXECSQL('DROP table #zd1') ENDIF
IF (DUALLOOKUPBOX( 'Vyberte období:', '#zd1', 'id_dat1, dat2','SELECT id_dat1, dat2, nazev FROM dba.gobdobi ORDER BY id_dat1 desc') = FALSE) RETURN(FALSE) EXIT ENDIF
ADDSQLCLAUSE('query1','from', ' ,#zd1') ADDSQLCLAUSE('query1','where',' and (v.datum >= #zd1.id_dat1 and v.datum <= #zd1.dat2)')
Příklad 3: Příklad pro výběr parametrů pro sestavení SQL dotazu před tiskem, do SQL dotazu má být doplněna klauzule WHERE s dotazem na období:
IF (CHECKQUERY('select * from #zd1') = TRUE) EXECSQL('DROP table #zd1') ENDIF
IF (DUALLOOKUPBOX( 'Vyberte období:', '#zd1', 'id_dat1, dat2','SELECT id_dat1, dat2, nazev FROM dba.gobdobi ORDER BY id_dat1 desc') = FALSE) RETURN(FALSE) EXIT ENDIF
ADDSQLCLAUSE('query1','from', ' ,#zd1') SETSQLCLAUSE('query1','where','(v.datum >= #zd1.id_dat1 and v.datum <= #zd1.dat2)') Související témata |