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")