Funkce vlastní
<< Klikni pro zobrazení obsahu >> Navigace: Společné prvky Evidenčních modulů > Seznam funkcí FoxPro a systému BAKALÁŘI > Funkce vlastní |
Kromě funkcí systému FoxPro a programu Bakaláři mohou využít zkušení uživatelé, kteří velmi dobře znají jazyk Visual FoxPro, vlastní funkce. Alternativně lze o vytvoření vlastní funkce požádat autory systému - služba na zakázku.
Vlastní funkce jsou čerpány ze souboru evid\programy\VlastProg.prg (resp. fxp).
Vlastní funkce lze využít například v INI souborech pro generování výchozí hodnoty pro položku v sekci DefaultValues:
EV_CISLO=GenerujEvCislo()
nebo ekvivalentně
EV_CISLO=VlastProg("GenerujEvCislo()")
dále
EV_CISLO=VlastProg("MujPriklad1")
EV_CISLO=VlastProg("MujPriklad2()")
Příklad zdrojového kódu souboru VlastProg.prg:
parameters jmenoFunkce
private rtValue
m.rtValue=""
do case
case !type("m.jmenoFunkce")="C"
* nic se neprovede
case m.jmenoFunkce="MujPriklad1"
m.rtValue="ahoj"
other
try
m.rtValue=evaluate(m.jmenoFunkce)
catch
m.rtValue="error"
endtry
endcase
return m.rtValue
function MujPriklad2
private prjm
m.prjm="*"
try
m.prjm=trim(prijmeni)+"."+trim(jmeno)
catch
m.prjm="error"
endtry
return m.prjm
function GenerujEvCislo
private maxValue,pomValue,oldSl
dimension maxValue(1)
maxValue(1)=0
m.pomValue=str(year(date()),4)
if m.sqlruns and m.priorevi=1
m.oldSl=select(0)
SelectDataSql("cmaxValue",[select max(substring(ev_cislo,5,3)) as maxvalue from zaci where left(ev_cislo,4)=']+m.pomValue+['],"zaci",.F.)
maxValue(1)=iif(isnull(maxvalue),0,val(cmaxValue.maxvalue))
use in cmaxValue
select (m.oldSl)
else
select max(val(substr(ev_cislo,5,3))) from dbzaci where left(ev_cislo,4)=m.pomValue into array maxValue
endif
return m.pomValue+strtran(str(maxValue(1)+1,3)," ","0")