Skript za fakture

Skript za fakture se najcesce menja, pa kod toga posebno pazite. Tu postoji nekoliko vaznih stvari:

- Ranije je na pocetku skripta bilo obavezno da se "izracunaju" sve promenljive za prikazivanje:

%COMMAND a := Faktura()
%COMMAND pv := s := Faktura (a, "N_PV")
%COMMAND r := Faktura (a, "N_R")
...

Sada se ova inicijalizacija obavlja u okviru pripreme za stampu, pa mozete da pobrisete sve ovo.

- Trudite se da skript bude sto jasniji i jednostavniji, jer ce pre ili kasnije neko drugi morati da ga menja. Pisite komentare, a komande koje su viska pobrisite. Na primer, sad nadjoh kod Labe na pocetku COMMAND brojac:=0, a u nastavku se ovo nigde ne koristi.

- Nemojte u okviru izraza koji se prikazuju da komplikujete - bolje prvo izracunajte sta treba u neku privremenu promenljivu, pa tek onda ispisite sta treba:

NE VALJA:
%PadL(AllTrim(faktur->f_idu),4)+"/"+Substr(DtoC(faktur->f_dat),7,2)%

TREBA:
%COMMAND m_fak := PadL(AllTrim(faktur->f_idu),4)
%COMMAND m_god := Substr(DtoC(faktur->f_dat),7,2)
%m_fak% / %m_god%

Uzgred, ovo zadnje je bolje kao Right(DtoC(Faktur->f_dat),2)


- Bitna promenljiva kod preloma strane je nLine. Ona se povecava uvek kada se ispise neki red i tako se uvek zna do koje linije smo dosli. Pri tom treba da uzimate u obzir i IF naredbe:

%IF Faktur->f_alt <> 0
%m_nazivo%
%m_adr1o%
%m_adr2o%
%COMMAND nLine := nLine + 3
%ENDIF

- Nemojte ovu promenljivu koristiti na drugi nacin, narocito ako je ovako glup:

%IF da <> 0
%COMMAND nLine := 30
%ELSE
%COMMAND nLine := 28
%ENDIF

Autor je hteo da smanji broj redova ako treba da se ispise avans, ali to se ne radi tako sto povecavas tekuci broj redova.

- Provera da li je neki string prazan:

NE VALJA:
%IF ALLTRIM(artikli->a_naziv2) <> ""

TREBA:
%IF Empty(Artikli->a_naziv2)