funkcije programskog paketa kipcolas.rs/uputstvo/f-je kip-a - za napredne korisnike.pdf · funkcije...
TRANSCRIPT
Funkcije programskog paketa KIP
Rad sa bazama podataka
Net_Use - Otvara specificiranu bazu podataka ........................... 6OpnBaseStn - Otvara glavnu bazu: GB.DBF ................................... 6OpenBase - Otvara listu baza podataka iz GB za cSpecCode ........ 6Modify_dbs - Modifikacija strukture baze ....................................... 7Pack_dbs - Pakovanje baze podataka .......................................... 8Create_IDX - Kreira indeksni fajl u trenutno selektovanom alias ..... 8File_Lock - Zaključava bazu podataka ......................................... 8Rec_Lock - Zaključava slog ......................................................... 9UnLock - Otključava slog ......................................................... 9Add_Rec - Dodaje slog ............................................................... 9Null_Rec - Upisuje nulte vrednosti u polja aktuelnog sloga ........ 10Fn_Repl - Zamena za ‘REPLACE WITH’ ................................ 10Get_DBFPath - Vraća putokaz specificirane baze podataka.................10isLockRepl - Upis vrednosti u polje aktivnog sloga ....................... 10isAlias - Provera egzistiranja baze............................................11
Kontrola nad bazama podataka
TestSifra - Testiranje postojanje ranije unešene šifre u šifarniku 11TestSifF2 - Testiranje postojanje šifre u šifarniku uz podršku .... 11
sistema F2Srch_Fld - Vraća vrednost polja iz sloga koji se traži u bazi ....... 13Search - Vraća uspešnost pronalaženja sloga u bazi za zadati . 13
uslovValid_NStr - Koristi se za formatiranje šifara u tabeli ................... 14SkipFor - Preskače slogove za uslov ........................................ 14SkipForL - Vrti petlju (skip) za uslov ......................................... 14
Rad sa fajlovima
Get_Line - Učitava liniju iz fajla ................................................ 15Get_Str - Vraća parametar iz stringa ........................................ 15Put_Str - Setuje parametar u stringu ........................................ 16GetIzvLn - Učitava tekst iz fajla iza znaka '=' ............................. 17fWrite_s - Upis teksta u fajl ........................................................17
1
FRead_s - Učitava tekst iz fajla ................................................. 18FReadLine - Očitava liniju iz fajla..................................................18FWriteLine - Upisuje liniju u fajl ....................................................18FEof - Proverava kraj fajla ....................................................18FLineCount - Vraća broj linija u fajlu ..............................................18Read_Text - Učitava fajl u niz stringova ...................................... 19cCopyFile - Kopiranje listu fajlova .............................................. 19c_isDir - Proverava postojanje direktorijuma .......................... 19c_mkDir - Kreira direktorijum .................................................. 19EditFile - Editovanje fajla ........................................................ 20
Ekranske f-je
Msg_On - Aktivira prozor sa porukom ...................................... 20Msg_Off - Isključuje aktivirani prozor ...................................... 20Error - Prikaz poruke ........................................................... 21ChoiceYN - Generiše izbor .......................................................... 21Get_YN - Potprogram za izbor logičkog polja 'Da/Ne' .............. 22Percent_ON - Aktivira prozor sa prikazom procenta ....................... 22Percent_OFF - Deaktivira prozor ..................................................... 22Percent_SAY - Promena procenta .................................................... 22i_Error - Prikaz poruke uz uslov ............................................. 23Say_Tot - Prikaz niza totala ..................................................... 23SayWnd - Ispisuje tekst na trenutnoj liniji u prozoru ................. 24Say_YX - Ispisuje tekst na koordinatama ................................. 24Exec_Msg - Izvršenje f-je uz poruku ........................................... 24Dialog - Izvršenje f-je u prozoru ............................................ 25
Izveštaji / Rad sa štampačem
SP_Print_I - Štampanje tekstualnog fajla (izveštaja) ..................... 25SP_View - Ekranski uvid u fajl (izveštaj) ................................... 25TestPrinter - Provera spremnosti printera ...................................... 26ConvPrnStr - Izbacuje printer kodove iz stringa ............................. 26FontPrn - Promena fonta/ Vraćanje aktivnog fonta ................... 26OutPrn - Slanje teksta na štampač ........................................... 27PrBuf - Koordinatno štampanje u baferu ............................... 27PrBufL - Štampa u nastavku aktivnog reda u baferu ................ 28PrBufLn - Štampa u novom redu u baferu ................................. 28
2
ClrPrBuf - Brisanje bafera ......................................................... 28FlushPrBuf - Pražnjenje bafera u fajl ............................................. 28SP_Izv - Startuje obradu izveštaja '.IZV' ili '.IZ' ili '.ICH' ........ 29OpenIzvFile - Otvara fajl izveštaja ................................................. 29CloseIzvFile - Zatvara fajl izveštaja ................................................ 30PrnIzv_Start - Otvara fajl izveštaja i otvara prozor sa porukom o ... 30
obradiPrnIzv_End - Zatvara fajl izveštaja i prikazuje ga na monitoru ....... 30I_Print - Štampa u nastavku aktivnog reda direktno u fajl ...... 30
(preskače bafer)I_PrintLn - Štampa u novom redu direktno u fajl (preskače ....... 31
bafer)I_PrnEJECT - Generiše kod za skok na novu stranu u fajlu ............. 31IzvLn - Dodaje tekst u nizu (memoriji) koji se šalje u bafer ....31 ako je ispunjen uslov štampanja reda (f-ja je vezana
za f-ju: SP_Izv)
Sistemske F-je
Initialize - Inicijalizuje globalne parametre i public promenljive 32SP_Quit - Izlazak iz programa .................................................. 33ifQuit - Izlazak iz programa uz uslov .................................... 33GetMacro - Izvršava makro funkcije iz specificiranog fajla ......... 33Arhive_LSC - Arhiviranje baza podataka ........................................ 34
Tastatura
Add_Keyb - Dodaje kod na kraju keyboard bafera ....................... 34Ins_Keyb - Umeće kod na početku keyboard bafera ................... 34SP_Inkey - Vraća kod pritisnutog tastera .................................... 34Ostale F-jelBeep - Generiše ton uz uslov ............................................... 35Push_v - Ostavlja na stek vrednost .......................................... 35Pop_v - Vraća vrednost sa steka ............................................ 35MilliSec - Pauza u milisekundama ............................................ 35TasterF2 - Setuje aktivnost tastera <F2> ................................... 35Fill_Range - Postavlja vrednost II polja ako je < od I polja ............ 36Fn_IO - Startuje makro obradu (fajl sa ekstenzijom '.IO') ....... 36Call_NFn - Vraća niz f-ja iz stringa ............................................ 36aDI - Rad sa nizom ........................................................... 37
3
Formatiranje vrednosti
NumStr - Uredjuje numerik u stringu ....................................... 38rStr - Uredjuje prikaz numerika ......................................... 38Int_MP - Vraća zaokruženu vrednost broja + ili - .................... 39Str_z - Formatira ispis broja ................................................ 39Str_d - Prikazuje numerik sa decimalama ako postoje .......... 40Str_k - Formatira numerik u string (pogodno za ispis .......... 40
količine)Val_s - Zamenjuje u stringu znake ',' u '.' i '.' u ’’ .................. 40RemLeft - Odseca leve karaktere iz teksta ................................. 41RemRight - Odseca desne karaktere iz teksta .............................. 41PadLeft ili PadL - Poravnanje stringa u levo ......................................... 41PadRight ili PadR - Poravnanje stringa u desno ....................................... 42
F-je za testiranje
Ret_Width - Vraća dužinu karakter polja ..................................... 42Ret_Dec - Vraća broj decimala numerika .................................. 42Valid_CN - Formatira string u desno ako je čist numerik ............. 42Modul11 - Testira broj po modulu 11 ........................................ 43TestDat - Testira datum u opsegu i poslovnu godinu ................ 43
F-je za konverziju
StrHex - Vraća HEX broj (jedna cifra) ................................... 43RetProc - Vraća procenat ......................................................... 44SecToTime - Vraća vreme izvedeno od broja sekundi ................... 44Doy - Vraća broj dana u godini .......................................... 44Eom - Vraća zadnji datum u mesecu ................................... 44Eoy - Vraća zadnji datum u godini ..................................... 44LastDayOm - Vraća poslednji dan u mesecu ....................................45ArrToC - Konvertuje niz u string...............................................45x2c - Konvetuje bilo koji podatak u string...........................45c2x - Konvertuje string u drugi tip podatka .........................45x2N - Konvertuje bilo koji podatak u numerik......................46x2D - Konvertuje bilo koji podatak u datum.........................46x2L - Konvertuje bilo koji podatak u logičku vrednost.........46cSelect - Selektuje bazu podataka.............................................46aMaxStrLen - Vraća max dužinu stringa u nizu ................................46
4
Tabele - Meniji
TABELA - Generator tabele za kontrolu baze podataka .............. 47V_TAB - Generator vertikalne tabele za kontrolu polja ili var. . 50V_MENU - Generator menija ..................................................... 51
F-je iz KIP-a
Dok_Izv - Priprema podataka za izradu izveštaja - dokumenta .. 52Izv_MagT - Poziva fajl za pripremu izveštaja .............................. 52Ret_SPor - Vraća važeću stopu poreze šifre robe ........................ 53Tip_OJ - Vraća tip odabranog magacina ................................. 53Ret_Cena - Vraća prosečnu cenu šifre robe iz totala .................. 53Ret_Kol - Vraća količinu (stanje) šifre robe iz totala ................ 54Racun - Obračun svih iznosa sa aktuelnog sloga .................... 54Get_DefPorez - Vraća iznos poreske osnovice ................................... 56Racun_PTBr - Vraća porez sa aktuelne pozicije .............................. 56Racun_2PTBr - Vraća porez 2 sa aktuelne pozicije ............................ 56Pr_NizP - Štampa u baferu niz poreze ...................................... 57Pr_NizP2 - Štampa u baferu niz poreze2 .................................... 57Pr_NizZ - Štampa u baferu niz zavisnih troškova ...................... 57Pr_GP - Štampanje sastavnice gotovog proizvoda u baferu ... 58Ret_NazivI - Formatiranje prikaza šifre robe ................................. 58Fn_Lager - Obračun totala za odabranu šifru robe ...................... 59Reset_IzvT - Resetuje totale izveštaja ........................................... 60Fn_RK - Obračun iznosa odabranog sloga baze ‘UNOS_S’ .... 60Pr_s - Štampanje teksta na koloni tabele u bafferu .............. 60Pr_DatI - Prikaz iznosa po datumima plaćanja u baferu ........... 61iAdd_JM - Dodavanje jedinice mere u standardnim izveštajima . 61r_KnMag - Vraća konto iz tabele konta magacina ....................... 61i_rDok - Vraća totale za dokument ......................................... 62Racun_Izv - Obračunava iznose za poziciju robe .......................... 63Racun_Dok - Obračunava totale za dokument ................................ 63Fn_GetIzn - Obračunava totale za odgovarajuću analitiku ............ 64Reset_DP - Resetuje totale .......................................................... 65Fn_AKIzn - Obračunava vrednosti za odgovarajuću .................... 65Say_PP - Formatira prikaz naziva poslovnog partnera ............. 65Say_ppi - Standardni prikaz poslovnog partnera ....................... 66
5
sStopa - Vraća poresku stopu iz šifarnika slobodnih ............... 66 poreskih stopa ili stopu prema tarifnom broju
Test_Sintax - Proverava ispravnost sintakse izraza ........................ 67SortDat - Uredjivanje datuma prema starosti ........................... 67gGS - Vraća grupu subanalitike konta ................................ 68Ret_NameGS - Vraća naziv grupe subanalitike iz I_GS .................... 68Ret_Vr - Vraća naziv vrste dokumenta ................................... 68st - Vraća poresku stopu prema tarifnom broju ............... 68Pos_Vr - Uredjuje vrste dokumenta ........................................ 69Ima_Dir - Testira postojanje putokaza ...................................... 69RecToDBF - Kopira slogove iz jedne datoteke u drugu ................. 69SetParam_I - Generiše tabelu za unos parametara izveštaja ........... 70Def_Mag - Vraća parametre iz zaglavlja dokumenta .................. 71Def_US - Vraća parametre iz tabele sadržaja dokumenta .......... 71Push_Alias - Memoriše parametre radne oblasti .............................71Pop_Alias - Vraća parametre radne oblasti ...................................71Fn_Zbir - Obračunava vrednost zadatog uslova..........................73Ret_BrSDok - Vraća broj stavki dokumenta .....................................73BrSl - Prikaz broja tekstualno ..............................................73Ret_CenGP - Izračunava cenu gotovog proizvoda ..........................74isOneUser - Testitra prisutnost jednog ili više korisnika.................74isModul - Testira prisutnost modula (aplikacije).........................74Conv852 - Converzija teksta po kodnom rasporedu 852 ..............74isFnExec - Izvršava F-ju..............................................................75aCopy2 - Kopira jedan niz u drugi.............................................75
6
Net_Use - Otvara bazu podataka
Param: cFile_Name - naziv DBF fajlacAlias - cFile // naziv radne oblasticPath - Path_DBF
lNewArea - .T. lReadOnly - .F.
Return: Logical // vraća uspešnost operacije
Primer: Ekskluzivno otvaranje baze GB.DBF:
if ! Net_Use (‘GB”,.F.,,,,,,,Path_SYS) Error (‘Neuspelo otvaranje baze GB.DBF !’)endif
OpnBaseStn - Otvara glavnu bazu: GB.DBF i GB.NSX ( nalazi se na putokazu PATH_SYS )
Param: lRecLock - .T. // zaključava slog sa ključem korisnika GB_KEY=’USER-NO’+SP_UserNo
Napomena: U slučaju neuspeha otvaranja baze poziva se SP_Quit (.F.)
Return: NIL
OpenBase - Otvara listu baza podataka specificiranu u bazi GB.DBF.
GB_KEY =”DBF_LIST’+cSpecCode
Param: cID - cSpecCode ( specifičan kod aplikacije ) lShared - .T. (*)
7
lReindex - .F. // .T. - reindeksira sve ključeve vezane za tu bazu podataka
lPack - .F. // .T. - pakuje bazu podatakalClose - .F. // zatvara baze pri izlasku is F-jecFile - INI fajl ( Path_SYS+’BASE.INI’ )lRetArr - F-ja vraća niz:
{ { dbf_Name, Alias, Path, Path_pom, { Index_expr .. },{ aStruct .. } } ... }
aStruct = { Name, Type,Width, Dec } (*) - vidi Net_Use Napomena: cSpecCode je public promenljiva od jednog karaktera
(primer: R-robno )
Return: Logical ili Array // vraća uspešnost operacije
Primer: Otvaranje baza podataka za aplikaciju robno poslovanje
CSpecCode = ‘R’ // robno poslovanjeIf ! OpenBase () Error (‘Neuspelo otvaranja baza podataka !’)endif
Modify_dbs - Modifikacija strukture baze
Param: cPath - // putokaz cFile - naziv datoteke bez ekstenzije
aFields - š šcField_Name, cType, nLen, nDecć ,.. ć Napomena: U slučaju neuspeha sačuvani su podaci u fajlu:
cPath+"OLD_STRU.DB"
Return: Logical // vraća uspešnost operacije
8
Pack_dbs - Pakovanje baze podataka. Fizičko uklanjanje obrisanih slogova.
Param: cPath - putokaz cFile - naziv baze lOpnGB - Select(GB) na izlasku
Napomena: U slučaju neuspeha sačuvani su podaci u fajlu: cPath+"PACK.DB"
Return: Logical // vraća uspešnost operacije
Create_IDX - Kreira indeksni fajl u selektovanom alias-u
Param: cKey - ključ cIDX_Name - naziv indeksnog fajla [ cTagName ]
Return: NIL
File_Lock - Zaključava bazu podataka Param: nWait - 3 // sekunde čekanja
Return: Logical // Vraća .T. ako je baza zaključana
Primer:select GLKif ! File_Lock () Error (‘Drugi korisnik je pristupio bazi i zaključao slog !’else ... UnLockendif
9
Rec_Lock - Zaključava aktuelni slog
Param: nWait - 2 // broj sekundi trajanja novih pokušajazaključavanja u slučaju neuspeha
lMsg - .F.
Return: Logical
Primer: Zaključavanje sloga, upis vrednosti u polje, otključavanjeSelect GLKif Rec_Lock () Rreplace IZNOS With 100 UnLockendif
Add_Rec - Dodaje novi slog u selektovanoj oblasti
Param: aRepl - šć // niz š šcFieldName,xValueć ..ć nWait - 1 (standardno 1 sec)
[ cAlias ] - opciono: alias (naziv baze)
Return: Logical // Vraća uspešnost dodavanja sloga
Primer:Select GLKif Add_Rec () Replace KONTO With ‘2410’ Replace IZNOS With 100 Replace DP With ‘D’ UnLockendif
iliSelect GLKif Add_Rec ( š š‘KONTO’,’2410’ć, š‘IZNOS’,100ć, ; š‘DP’,’D’ć ć ) UnLockendif
10
Null_Rec - Upisuje nulte vrednosti u sva polja aktuelnog sloga
Return: NIL
Fn_Repl - Zamena za komandu REPLACE WITH (može se pozivati iz f-je ili Eval () )
Param: cField_Name - naziv polja xValue - vrednost
Return: NIL
Primer:Select GLKFn_Repl (‘IZNOS’,100)
Get_DBFPath - Vraća putokaz baze podataka koji je definisan u GB.DBF
Param: cDBF_Name - naziv baze
Return: String
isLockRepl - Upis vrednosti u polje selectovanog alias-a
Param: cField_Name - naziv polja xVal - vrednost koja se upisuje u polje lMsg - .F. // ako je .T. i ne zaključa se slog sledi
poruka o pristupu drugog korisnika[ New_Alias ]- Alias
Komanda je slična f-ji Fn_Repl s tim što proverava da li je slog
11
zaključan i ukoliko nije zaključava ga. Funkcija vraća pretnodno stanje zaključanosti ili ne sloga.
Return: NIL
isAlias - Testiranje egzistiranja baze podataka (aliasa)
Param: cAlias- Alias
Return: logical
TestSifra - Testiranje postojanja ranije unešene šifre u šifarniku Param: cSrch - cFld - "SIFRA" nOrder - IndexOrd() cAlias - Alias() cMsg - 'Šifra je ranije unešena !' Napomena: ne menja se alias, order i record Return: logical
TestSifF2 - Testiranje postojanja šifre u šifarniku uz podršku sistema F2 (izborom preko <F2> vraća vrednost iz cSif_Name pozvane baze u cField polja izvorne baze ili promenljive )
Param: cAlias - Alias() // koji se pretražuje cField - "SIFRA" // polje koje se proverava ili u koje
se vraća izabrana vrednost cSearch - // ključ pretraživanja cProcCall - // naziv f-je koja se poziva (šifarnik)
acOpc - ’’ // može biti naziv f-je koja se pozivaili niz š Row, Col, makro izraz ć za prikaz teksta na monitoru
12
lMsg - .T. // ako šifra ne postoji prikazuje poruku: ‘Šifra ne postoji !'
lNull - .F. // ako je .T. dozvoljava unos nulte šifre(praznog polja) u protivnom tretira šifrunepostojećom
cSif_Name - "SIFRA" // polje iz koga se uzima vrednost nOrder - 1 // order za pretragu nOrderF2 - nOrder // za f-ju koja se poziva cWilds - cSearch // u slučaju neuspeha pri pretraživanju
sa ključem ‘cSearch’ vrći se logičko pretraživanje pre poziva f-je ‘cProcCall’.
Napomena: F-ja ne menja se alias, order i record
Return: logical
Primer: Unos šifre konta u programu za finansijsko poslovanje.
private I_Kn := space (6) V_TAB AT 5,5 ;
TEXT {‘Konto’} ; FIELDS {‘I_Kn} ; PICTURE {‘######’} ; VALID {‘TestSifF2 ("SIFAR",,"K ”+I_Kn,
"sKonta(5,5,0,1)",,Sw_F2Msg,.T.)’}Objašnjenje:( Pritiskom na <ENTER> prilikom unosa polja I_Kn vrši se proveravalidnosti. Pretražuje se alias ‘SIFAR’ sa ključem “K “+I_Kn. Uslučaju nepostojanja šifre poziva se f-ja ‘sKonta (5,5,0,1)’.Pre poziva biće ispisana poruka ‘Šifra ne postoji’ ako je publicpromenljiva Sw_F2Msg=.T. . Ne dozvoljava se unos prazne šifre(prazan konto). )
13
Srch_Fld - Vraća vrednost polja cField iz sloga koji se traži
Param: cAlias - ALIAS() cSeek - // ključ pretrage cField - // naziv polja čiji se sadržaj vraća. Može se navesti i
izraz nOrder - 1
Return: xVal
Primer: Naziv poslovnog partnera i_pp.
cNaziv := srch_fld (‘SIFAR’,’P ‘+i_pp,’NAZIV’,1)
Search - Vraća uspešnost pronalaženja sloga u bazi za zadati uslov
Param: cAlias - ALIAS() cSeek - Uslov nType - 1 1 - seek 2 - seek pune duzine indeksa 3 - softseek on 4 - Sx_WildSeek (mogu džokeri *?) nOrder - 1
lStayRec - u slučaju ispunjenja uslova ostavlja brojač sloga ubazi podataka ( Recno() se ne vraća )
Napomena: F-ja ne menja alias, order i recordReturn: logical Primer: Pronadji poslovnog partnera i_pp.
if search (‘SIFAR’,’P ‘+i_pp) Error (š ‘Poslovni partner :‘+i_pp, ‘Naziv:’+NAZIV’ć)
else Error (‘Poslovni partner sa šifrom:’+i_pp+’ ne postoji !’)
endif
14
Valid_NStr - Koristi se za formatiranje šifara u tabeli
Param: lIF - uslov za prolaz cVarName - "FLD_NAME" // koristi se u Tabeli nLen lNum lLZero
Napomena: koristi se za formatiranje šifara u tabeli (f-ja poziva NumStr)
Return: Logical
SkipFor - Preskače slog. Proverava uslov izlaska iz petlje
Param: cUslov - (makro izraz) xVal - nil // vrednost koja se prosledjuje i vraća
[ cFn ] - F-ja koja se izvršava za svaki slog koji ispunjava uslov
Return: xVal
SkipForL - Proverava uslov izlaska iz petlje. Ako nije ispunjen preskače slog
Param: cUslov - (makro)
Return: logical // ako se dogodio bar jedan prolaz vraća .T.
15
Get_Line - Učitava liniju iz fajla
Param: nLine - // broj linije koja se učitava Handle - // broj handle otvorenog fajla Mod - 0 // moze biti:
0- učitavanje od početka fajla1- učitavanje od trenutne pozicije2- učitavanje od kraja fajla
Return: String
Primer: Prikaži drugu liniju fajla KIP.INI
h := FOpen (Path_SYS+’KIP.INI’,64)if FError() = 0 ? Get_Line (2,h,0)
FClose (h)endif
Get_Str -Vraća parametar iz stringa
Param: cString - cSearch - // znak koji se traži u ‘cString’ i iza koga se očitava
vrednost Numeric ili Character. nLong - 0 // nLong = 0 - učitava string od znaka ‘=’ do
kraja reda nLong > 0 - učitava numerik duzine nLong cType - if (nLong=0,'C','N') // vrednost koja se očitava i
vraća character or numeric xDef - if (cType='N',0,'') // standardna vrednost koja se
vraća u slučaju ne nalaženja znaka ‘cSearch’
Return: ncValue
16
Primer: Učitaj parametar za osvežavanje tabele iz fajla KIP.INI
h := FOpen (Path_SYS+’KIP.INI’,64)if FError() = 0 c := Get_Line (2,h,0) SP_RefrTab := Get_Str (c,'=',2) // vraća numerik
// (iz ‘cString’ dve cifre iza znaka ‘=’) FClose (h)endif
Put_Str - Setuje parametar u stringu
Param: cStr - // promenljiva (tipa: Character) u kojoj se vrši promena. navodi se po referenci uz korišćenje operatora @
cnSearch - // tekst koji se traži u stringu cStr ili broj pozicije (karaktera) od koga počinje upis
cnVal - // vrednost koja se upisuje Numeric/Char nLong - (if(valType(Value)="N",ltrim(str(Value))
,Value)) // dužina parametra koji se upisuje
Return: nil
Primer: Promena godine rodjenja 0000 u 1968 u stringu:
c := ‘Godina rodjenja=0000, Ime i Prezime:’Put_Str (@c,’=’,1968,4)Iza znaka ’=’ sledecih 4 mesta zamenjuje se vrednošću1968
17
GetIzvLn - Očitava tekst iz fajla iza znaka '='( prepoznaje znake '{' , '}' (početak i kraj) ili separator ';' na kraju reda za nastavak u sledećem redu )
Param: nHandle - // broj otvorenog fajla (hanlde) nLn - 0 // nLn>0 - pozicionira se na ‘nLn’ liniju nLn=0 - očitavanje od trenutne linije c - '' // c=’’ - očitava najpre fajl sa fReadLine c<>’’ - očitava najpre string ‘c’
a posle koristi fReadLine ako ne pronadje znak ‘=’
ol - .F. // .T. - očitava samo prvi red (string ‘c’ ili samo jedan poziv fReadLine)
.F. - nastavak u narednim linijama tražeći znak ‘=’ i prateći separatore 'š' (početak) , 'ć' (kraj) ili ';' (ako se nalazi na kraju reda prelazak u narednu liniju)
l_allTrim - .T. // očitanom stringu se odsecaju levi i desni blanko karakteri
Napomena: Ovom f-jom se očitavaju parametri iz fajlova za izveštaje ‘*.IZV’ ili ‘*.IO’
Return: String
FWrite_s - Upis stringa u otvoreni fajl
Param: nHandle cText
Return: NIL
18
FRead_s - Očitavanje teksta iz otvorenog fajla
Param: nHandle - nLong - dužina teksta koji se očitava
Return: String
FReadLine - Očitava liniju iz fajla
Param: - nHandle fajla
Return: cText
FWriteLine - Upisuje liniju u fajl
Param: - nHandle fajla- cText linije koji se upisuje
Return: NIL
FEof - proverava kraj fajla
Param: - nHandle fajla
Return: Logic
fLineCount - Vraća broj linija fajla
Param: - nHandle fajla
Return: nBr
19
Read_Text - Učitava fajl u niz stringova
Param: cFile_Name - Naziv TXT fajlalMsg - .T. // ispisuje poruku ako fajl ne postoji
Return: Array = { cLn1, cLn2, .. }
cCopyFile - Kopiranje fajlova
Param: cFileName - naziv fajla mogu se navesti džoker znaci ‘?’ ili ‘*’ čime se mogu kopirati i više fajlova
cSPath - izvorni putokaz cTPath - odredišni putokaz
Return: NIL
c_isDir - Proverava postojanje direktorijuma
Param: cPath
Return: Logical
c_mkDir - Kreiranje direktorijuma
Param: cPath
Return: Logical // vraća uspešnost operacije
20
EditFile - Editovanje fajla
Param: y - koordinate (gornji levi (y,x) i donji desni ugao (y1,x1) prozora za editovanje)
x - y1 - x1 - cFile_Name - naziv fajla čiji se sadržaj modifikuje
Return: NIL
Msg_On - Aktivira prozor sa porukom
Param: aText - xVal ili niz vrednosti lCenter - .F. // .T. - prikaz teksta u sredini prozora cColor - c_err nAllTrim - broj kolone do koje ne važi poravnanje ako je
lCenter=.T.
Return: NIL
Primer:Msg_On (‘Obrada u toku ...’)do while ... enddoMsg_Off ()
Msg_Off - Isključuje aktivirani prozor
Return: NIL
21
Error - Prikaz poruke
Param: aText - xVal ili niz vrednosti nWait - 0 lCenter - .F. // .T. - prikaz teksta u sredini prozora
Return: NIL
Primer:Error ( { Date(), 50, ‘Opis’ } )Error ( ‘Poruka’ )
ChoiceYN - Generiše meni za izbor opcije
Param: acMsg - poruka ( xVal ili niz ) LC - može biti: - Logical - nudi izbor "Da / Ne" Ako je l_Esc_N = 0 isključuje se
dejstvo <Esc> za izlaz - Niz - niz stringova koji se nude
u izboru l_Esc_N=inicijalni izbor
l_Esc_N - cCol - c_err // boja prozora lAllTrim - broj kolone do koje ne važi centriranje acMsg
lEsc - .T. // omogućen izlaz tasterom ESC
Return: NIL
Primer:ChoiceYN ( ‘Potvrdite izbor’, .F. )ChoiceYN ( ‘Izaberite:’,š‘Jedan’,’Dva’,’Tri’ć,2)ChoiceYN ({‘Generalije’,’Naziv:’+NAZIV’,’Sifra:’+SIFRA’}
, {‘Izveštaj’,’Izlaz’},,, 1 )
22
Get_YN - Potprogram za izbor logičkog polja ' Da/Ne '
Param: y - col() // kolona (y - koordinata) x - row() // red (x - koordinata) i - // navodi se formalno zbog korišćenja ove funkcije
iz bTab - TABELA) lDef - // default value (.F. or .T.)
Napomena: Navodi se u picture deklaraciji kod tabela kao "Fn=Get_YN" Ako se u V_TAB kod deklaracije picture navede nil parametar podrazumevaće se f-ja ‘Get_YN’ ako je polje logičko.
Return: Logical
Percent_ON - Aktivira prozor sa prikazom procenta u linijskom prikazu
Param: aTxt - {} // pred-tekst (ako postoji podvlaci se linijom)
Return: NIL
Percent_OFF - Deaktivira prozor sa prikazom procenta
Return: nil
Percent_SAY - Promena procenta
Param: nMax - maksimalna vrednost nPos - trenutna vrednost
Return: NIL
23
Primer:Percent_ON (‘Obrada u toku ...’)for v:=1 to 100 Percent_Say (100,v)nextPercent_Off ()
i_Error - Prikaz poruke uz uslov
Param: lUslov - Uslov (logički izraz) cMsg - Poruka koja se prosledjuje f-ji Error (cMsg)
Return: ! ( lUslov )
Primer:if i_Error (!search(‘SIFAR’,’P ‘+i_pp),’Šifra ne postoji !’)
Error (‘Šifra postoji !’)endif
Say_Tot - Prikaz totala
Param: aPar - // niz nizeva od tri elementa: š š1,2,3ć, ... ć 1) - makro izraz za sabiranje 2) - uslov za operaciju 3) - tekst ispred iznosa koji se ispisuje cSeek - // ključ pozicioniranja cUslov - // uslov petlje (makro izraz)
Return: NIL
Primer: Prikaz totala dugovne i potražne strane u izvodu broj 1
24
private vNal := 'IZ', cNal := str(1,5)select GLKSay_Tot ( š š'IZNOS','DP="D"','Dugovna strana'ć ,;
š'IZNOS','DP="P"','Potražna strana'ć ć ,; 'F'+vNal+cNal ,;
'VNAL=vNal.and.cNal==NALOG' )
SayWnd - Ispisuje tekst na trenutnoj liniji u prozoru
Param: cText
Return: NIL
Say_YX - Ispisuje tekst na zadatim koordinatama
Param: nCol - kolona (y-koordinata) nRow - red (x-koordinata) cText
Return: NIL
Exec_Msg - Izvršenje f-je uz prikaz poruke
Param: cMsg - "Obrada u toku ..., prekid na <Esc>" // poruka prikazana pre poziva f-je
cFn - f-ja ŠxPar1, .. ŠxPar10Ć Ć - parametri
Return: xVal // vrednost koju vraća cFn
Primer:Exec_Msg (,’Fn_Lager’, c_Sif, c_Mag )
25
Dialog - Izvršenje f-je u prozoru
Param: cFn - naziv f-je aCoor - koordinate šy,x,y1,x1,cColorć ŠxPar1, .. ŠxPar10Ć Ć - parametri
Return: xVal // vrednost koju vraća cFn
Primer:Dialog ( ‘Fn_o’, š5,5,10,40,c_tabvć, c_Sif )
function Fn_o ( s ) ...return nil
SP_Print_I - Štampanje tekstualnog fajla (izveštaja)
Param: cName
Napomena: Ukoliko je ‘cName’ bez ekstenzije dodaje se:'.'+cSpecCode+SP_UserNo
Return: NIL
SP_View - Ekranski uvid u fajl (izveštaj) Param: cName Mon_Prn - ’’ // moze biti: "M" - izlaz na monitoru
"P" - izlaz na printeru“” - nudi se izbor:
izlaz na Monitoru ili Printeru cSay - ’’ // prikaz vremena trajanja obrade
Napomena: ako naziv ne sadrži extenziju dodaje se:'.'+cSpecCode+SP_UserNo+Mon_Prn
Return: nil
26
TestPrinter - Proverava spremnost printera ili prekid tasterom <Esc>
Param: nPort - PRN_PORT // ako je nPort < 0, ne proverava printer lMsg - .F. // .T. - ispisuje poruku ako printer nije spreman cMsg - 'Prekid štampanja ?' (ako je nPort >=0 )
ili 'Prekid obrade ?' (ako je nPort < 0 ) ( Pitanje se dobija pritiskom na taster <Esc> )
Napomena: Ako je SP_BrkPrint=.F. vraća .F. Ako se izvrši prekid na <Esc> SP_BrkPrint postaje .F.
Return: Logical
StartPrn - Setuje nulte vrednosti kontrole obrade/štampe( SetPrc (0,0); SP_BrkPrint:=.F.; PrLnCount := 0 )
Return: NIL
ConvPrnStr - Konvertuje printer kodove u stringu
Param: cString
Return: String
FontPrn - Promena fonta/ Vraćanje aktivnog fonta
Param: NoFont - 0 // broj fonta od 0 do 9
Return: String // kontrolna sekvenca starog fonta
27
OutPrn - Slanje (teksta) stringa na štampač
Param: cTxt - // tekst koji se štampa lReset - .F. // ako je .T. poziva StartPrn()
Napomena: LPT port je odredjen u public promenljivoj PRN_PORT. F-ja proverava spremnost štampača pozivom TestPrinter. Utiče na promenljivu SP_BrkPrint.
Return: SP_BrkPrint
PrBuf - Koordinatno štampanje u baferu
Param: cTxt - ’’ y - -2 // ako se ne navedu y,x štampa se normalno x - -1 nFont - 0
Napomena: y moze biti: y < 0 - koordinata-red u kome se štampay = 0 - ignoriše se štampay < -1 - štampa se na trenutnom redu +y-1
x moze biti x = 0 - tekst se centrira x = -1 - štampa se od leve margine tabele x = -2 - štampa se u nastavku prethodne
kolone
Bafer je u memoriji niz od 72 linije po kome sekoordinatno upisuje tekst. Ukoliko je red (y-koordinata)veća od dužine bafera (72) vrši se pražnjenje bafera a ypostaje 1.
Public promenljive:pr_cRow - aktivni redpr_cCol - aktivna kolonaMax_Buf_Ln - poslednji red na kome je štampano
(od 1 do 72) Return: NIL
28
PrBufL - Štampa u nastavku aktivnog reda u baferu
Param: cTxt nFont
Napomena: Poziva se PrBuf ( cTxt, -1,-2, nFont)
Return: NIL
PrBufLn - Štampa na novom redu u baferu
Param: cTxt - ' ' (1xspace) nFont
Napomena: Poziva se PrBuf ( cTxt, -2,1, nFont)
Return nil
ClrPrBuf - Brisanje bafera za štampu
Prazni se niz u kome se koordinatno štampa i public promenljive: pr_cRow, pr_cCol, Max_Buf_Ln dobijaju vrednost 0.
Return: NIL
FlushPrBuf - Pražnjenje bafera za štampu u fajl
Param: Ej_Type - ‘1’ // Tip EJECT komande0 - nikada1- uvek skok na novu stranu2 - preklapanje dve zamišljene stranice na jednoj (pola/pola)
nLM - 0 // broj karaktera leve marginenLMF - 0 // font karaktera koji čine levu marginu
29
Bafer se šalje u štampač od prve linije do Max_Buf_Ln u fajlove sa handle= Prn_Handle i Scr_Handle. Na kraju poziva f-ju ClrPrBuf
Return: NIL
SP_Izv - Startuje obradu izveštaja sa ekstenzijom: '.IZV' , '.IZ', ‘.IO’ ili '.ICH'
Param: Izv_Name - // naziv izveštaja l_Msg - .F. // Prikaz poruka (fajl ne postoji ..) l_OpnIzv - .T. // .T. otvara fajlove Prn_Handle,
Scr_Handle l_ClrMP - .T. // Briše macro var.: MP1..MP9,
j_MP..j_MP9, t_MP1..t_MP9
Ako naziv nema ekstenziju dodaje se u sledećem prioritetu: a) '.ICH' - ako postoji fajl b) '.IZV' - ako postoji fajl c) '.I'+cSpecCode+SP_UserNo
Return: NIL
OpenIzvFile - Otvara fajlove izveštaj (priprema štampe)
Param: cFName
Napomena: f-ja formira dva fajla: - fajl za štampu: Prn_Handle := FCreate (cFName+"P") - fajl za ekranski uvid: Scr_Handle := FCreate (cFName+"M")
Return: Logical // vraća uspešnost operacije
30
CloseIzvFile - Zatvara fajlove izveštaja
FClose (Prn_Handle) & FClose (Scr_Handle)
Return: NIL
PrnIzv_Start - Otvara fajlove izveštaja i otvara prozor sa porukom o obradi
Param: cFName - cMsg - {'',,' Obrada u toku ..., Prekid na <Esc> ',''}
Poziva: OpenIzvFile (cFName), StartPrn, ClrPrBuf
Return: Logical // vraća uspešnost operacije
PrnIzv_End - Zatvara fajl izveštaja i prikazuje ga na monitoru
Param: EJ_Type - "1" // Tip EJECT komande Tab_X_LM - 0 // Leva margina Tab_Font - 0 // font leve margine
Startuje: FlushPrBuf, CloseIzvFile, Msg_Off, SP_View
Return: NIL
I_Print - Štampa u nastavku aktivnog reda direktno u fajl Prn_Handle i Scr_Handle (preskače bafer)
Param: cTxt - ’’ nFont - 0
Return: NIL
31
I_PrintLn - Štampa u novom redu direktno u fajl Prn_Handle i Scr_Handle (preskače bafer)
Param: cTxt - (default = '') nFont - (default = 0)
Public promenljiva: PrLnCount - zadni broj reda (linije) štampane na stranici
Return nil
I_PrnEject - Generiše kod u fajlu za skok na novu stranu
Public promenljive: NoPage - broj strane se uvećavaPrLnCount - broj reda (linije) = 0
Return: NIL
IzvLn - Dodaje tekst u nizu (memoriji) koji će biti poslan bafer štampača ako je ispunjen uslov štampanja reda iz ‘.IZV’ izveštaja (vezana je za f-ju SP_Izv)
Param: cText
Return: 0
Primer: Formiranje izveštaja
PrnIzv_Start (‘IZV’)I_PrintLn (‘Naziv izveštaja’)do while .. enddoI_PrnEject ()I_PrintLn ( ... )PrnIzv_End ()
32
Initialize - Inicijalizuje globalne parametre i public promenljive
Param: lYesPG - .F. // unos poslovne godine lOpenBase - .T. // otvaranje baza iz GB (cSpecCode se
mora definisati) cUsrNam - '' cCompName - ''
• Inicijalizacija public promenjivih• Format datuma: dd.mm.gg• Vrući tasteri: F1 - Help
Alt F1 - Generalni Help F5 - Pregled/Štampanje izvestaja F6 - Sat F7 - Kalendar F8 - Kalkulator Alt F8 - informacija o korisniku koji je zadnji
ažurirao slog Alt F9 - pregled svih korisnika Alt F10 - zaključavanje programa Ctrl F9 - Slanje poruke Ctrl F10 - izmena šifre Alt X - direktan izlazak iz programa
( važi samo za tekstualni režim)• Format help fajlova: *.C - generalni help (C - spec. oznaka) *.HLP - univerzalni help fajl Tekst u fajlu se navodi u prvih 60 kolona.
Fajl Path_Hlp+”HELP.G” (koji se poziva iz osnovnog help fajlakoji se poziva tasterima Alt_F1) je osnovni help fajl iz koga semogu pozivatiu drugi. Od 61-ve kolone (narednih 12) rezervisanesu za naziv (ukoliko se ne navede ekstenzija automatski se dodajespec. oznaka.) fajla koji se poziva izborom sa <Enter>. Od 75-tekolone navodi se broj ili ASCII karakter vrućeg tastera.
Return: Logiical // .F. - prekid
33
SP_Quit - Izlazak iz programa
Param: lPar - .T. // pamti promenljive u GB.DBF lDOS - .F. // izlaz u DOS
Return: NIL
ifQuit - Izlazak iz programa uz uslov
Param: lUslov - uslov za izlazak iz programa ( poziva se f-ja SP_Quit (.F.) )
cMsg - poruka pre izlaska iz programa
Return: NIL
Primer:
ifQuit ( ChoiceYN (‘Povratak u DOS ?’,.F.) )
GetMacro - Izvršava makro funkcije iz fajla (fajl se očitava pozivom f-je GetIzvLn() )
Param: cFile_Name // fajl se uzima sa direktorijuma Path_SYS
Return: xVal // vrednost poslednjeg izraza
Primer: Očitavanje minimalne osnovic doprrinosa u programu ZARADE
o := GetMacro (‘DOP.MAC’)
34
Arhive_LSC - potprogram za arhiviranje baza podataka
Param: cSpecCode - specifična oznaka aplikacije ( očitavanje liste baza iz GB.DBF )
Return: NIL
Add_Keyb - Dodaje kod tastera na kraju keyboard bafera
Param: cKey
Return: NIL
Ins_Keyb - Umeće kod tastera na početku keyboard bafera Param: cKey return: nil
SP_Inkey - Vraća kod pritisnutog tastera
Param: nWait -1 // broj sekundi za čekanje na pritisak tastera,nWait može biti:
> 0 - broj sekundi = 0 - beskonačno vreme - 1 - bez čekanja Mode - 0 l_F5 - .T. l_MBS - .T. l_Hlp - .T.
Return: Numeric // kod pritisnutog tastera
35
lBeep - Generiše ton uz uslov
Param: nLoop - 1 // broj ponavljanja nFreq - 250 nDur - 3
Return: NIL
Push_v - Ostavlja na stek vrednost
Param: xValue
Return: NIL
Pop_v - Vraća vrednost sa steka
Return: xValue
MilliSec - Pauza u mili sekundama
Param: nSeconds
Return: NIL
TasterF2 - Setuje aktivnost tastera <F2> šalje u keyboard: (chr(13)+chr(64)) Return: NIL
36
Fill_Range - Postavlja vrednost drugog polja ako je manje od prvog
Param: cV1 - naziv promenljive ili polja cV2 - ’’
Return: .T.
Primer:@ 0,0 Say “Šifra od” GET s_od VALID Fill_Range (‘s_do’,’s_od’)@ 1,0 Say ‘Šifra do” GET s_do VALID s_do >= s_odREAD
Unosom prvog polja ‘s_od’ setuje se drugo ‘s_do’ ukoliko sadržimanju vrednost od prvog.
Fn_IO - Startuje obradu (fajl sa ekstenzijom '.IO')
Param: Izv_Name - // naziv fajla. Ako se ne navede ekstenzija program je formira automatski: '.IO'+SP_UserNo
l_Msg - .F. // Ako je .T. i fajl ne postoji sledi prikaz poruke: 'fajl ne postoji na disku ..'
Return: NIL
Call_NFn - Vraća niz f-ja iz stringa
Param: cTxt - string iz koga se izdvajaju celine (f-je) razdvojene separatorom ';'
Return: Array // { string (f-ja_1), (f_ja_2), .. }
37
aDI - Rad sa nizom (brisanje, umetanje, promena, zamena) elemenata
Param: aSource - Izvorni niz elemenata [ aDelete ], - [ aInsert ], - [ aChange ], - [ aMove ] -
primer:
aSource - osnovni niz elemenataaSource := 1 2 3 4 5 6 7 8 9
aDelete - niz pozicija koje se brišu iz nizaaDelete := š3ć 1 2 4 5 6 7 8 9
aInsert - niz od po dva člana (pozicije u nizu, i vrednosi elementa)aInsert := šš3,’X’ćć 1 2 X 3 4 5 6 7 8 9
aChange - niz od po dva člana (pozicije u nizu, i nove vrednosi elementa)
aChange := šš3,’X’ćć 1 2 X 4 5 6 7 8 9
aMove - niz od po dva člana (dva broja) pozicija u nizu prvi element prelazi u drugi sa rotacijom u levo:
AMove := šš3,6ćć 1 2 4 5 6 3 7 8 9ili u desno:
aMove := šš6,3ćć 1 2 6 3 4 5 7 8 9
38
NumStr - Uredjuje numerik u stringu
Param: cStr - String koji sadrži numeričku vrednost (čist numerik) nLen - dužina (cStr) lNum - .T. // numerička šifra lLZero - .F. // .T. i ako je lNum=.T. dodaje leve nule
Return: String
Primer:
s := ’12 ‘NumStr (s,10) // vraća: ‘ 12’NumStr (s,10,,.T.) // vraća: ‘0000000012’
rStr - Uredjuje prikaz numerika
Param: nVal - izraz nWidth - 14 nDec - 2 l0 - .T. // i ako je nVal=0 vraća space(nWidth) lNoDec - .F. // ako je .T. i nValue nema decimala ne
prikazuje ih
Return: String
Primer:
rStr (12,10) // vraća: ' 12.00'rStr (0,10,,.T.) // vraća: ' 0.00'rStr (0,10,,.F.) // vraća: ' 'rStr (12,10,,,.T.) // vraća: ' 12 'rStr (12,10,,,.F.) // vraća: ' 12.00'
39
Int_MP - Vraća zaokruženu vrednost broja + ili -
Param: nVal - Izraz Dec - 0 // zaokruženje na ‘Dec’ decimala
Return: Numeric
Primer:Int_MP (3.6,0) // vraća: 4.00Int_MP (-3.6,0) // vraća: -4.00Int_MP (3.636,2) // vraća: 3.64Int_MP (-3.636,2) // vraća: -3.64
Str_z - Formatira ispis broja uz prikaz separatora ‘.’ izmedju tri cifre ( ‘###.###.###,##’ )
Param: nValue - Iznos nWidth - 16 // dužina polja lZero - .F. // ako je .T. i ‘nValue’=0 vraća space(nWidth) nDec - 2 // broj decimala lNoDec - .F. // ne prikazuje decimale ako ih nema u broju l_IF - .T. // uslov prikaza, ako je .f. vraća space(nWidth) l_vir - .F. // akoj je .T. umeće znak '=' ispred broja koji
vraća u stringu(pogodno za iznose na virmanima)
Return: String
Primer:
str_z (23123,12) // vraća: ' 23.123,00'str_z (23123,12,,,.T.) // vraća: ' 23.123'str_z (23123,12,,,,,.T.) // vraća: ' =23.123,00'str_z (23123,12,,,, .F. ) // vraća: ' 'str_z (0,12,.F.) // vraća: ' 0,00'str_z (0,12,.T.) // vraća: ' '
40
Str_d - Prikazuje numerik sa decimalama ako postoje
Param: nValue - Izraz nWidth - 16 // dužina polja
Return: String
Primer:
str_d (23123,12) // vraća: ' 23123'str_d (23123.56,12) // vraća: ' 23123.56'
Str_k - Formatira numerik u string (pogodno za ispis količine)
ako nema decimala vraća: str(nIznos,6)+space(4) ako ima decimalavraća : str(nIznos,10,3) ( uz poravnaje dužine nWidth )
Param: nIznos - nWidth - 10 // dužina polja
Return: String
Primer: str_k (234) // vraća: ' 234 'str_k (234.56) // vraća: ' 234.560'
Val_s - Formatira string zamenjujući znake ',' u '.' i '.' u ''
Param: cTxt -
Return: String
Primer: Str_z (12564) // vraća: ’ 12.564,00’Val_s (Str_z(12564) // vraća: ‘ 12546.00’
41
RemLeft - Odseca leve karaktere iz stringa
Param: cText - string cChar - ’ ’ // karakter koji se izbacuje iz stringa
Return: String
Primer: str(12,10) // vraća: ‘ 12’RemLeft (str(12,10)) // vraća: ’12 ‘RemLeft ('00001','0') // vraća: ‘1’
RemRight - Odseca desne karaktere iz stringa
Param: cText - string cChar - ’ ’ // karakter koji se izbacuje iz stringa
Return: String
PadLeft ili PadL - Poravnanje u levo
Param: cText - cChar - ‘ ‘ // karakter za poravnanje (koji se dodaje) nLen - dužina teksta
Return: String
Primer:PadL (‘12’,10) // vraća: ‘ 12’
42
PadRight ili PadR - Poravnanje u desno
Param: cText - cChar - ‘ ‘ // karakter za poravnanje nLen - dužina teksta
Return: String
Ret_Width - Vraća dužinu karakter polja
Param: cVar - var name
Return: Numeric
Ret_Dec - Vraća broj decimala numerika
Param: cVar - var name
Return: Numeric
Valid_CN - Formatira string u desno ako je čist numerik
Param: cVar - naziv promenljive ili poljanLen - 0
lYes - .T. // ako je .T. i cVar karakter formatira se string
Return: .T.
Primer:Unos šifre poslovnog partnera (prekidač testiranje numerikakod šifre pos. p artnera je setovan na .T.)
@ 0,0 SAY ‘Šifra’ GET i_pp VALID_CN (‘i_pp’,5,Num_pp)( Unos ’12 ‘, posle VALID_CN biće i_pp=’ 12’ )
43
Modul11 - Testira da li je broj po modulu 11
Param: nVal - // Izraz nLong - // dužina polja lMsg - .F. // ako je .T. i broj nije po modulu 11 ispisuje
poruku: ‘Šifra nije po modulu 11’ Return: Logical // .T. – jeste po modulu 11
TestDat - Testira datum u opsegu i poslovnu godinu
Param: dDatum1 - DATUM lTest - .F. dDatum2 - ’’ // ako se navede dDatum2 i dDatum1 <
dDatum2 prijaviće se poruka i vrednostkoju f-ja vraća je .F.
l_pg - .T. // ako je .T. i ( Sw_TestDat=.T. ili jelTest=.T. ) a godina unešenodatuma dDatum1 <> Pos_God javljaporuku o različitoj poslovnoj godini uzizbor prihvatanja datuma
Returm: Logical
StrHex - Vraća HEX broj (jedna cifra)
Param: nVal - broj (0-15)
Return: Char // dužina 1 cifra = (0..9,A,B,C,D,E,F)
44
RetProc - Vraća rezultat u procentu
Param: nD - deljenik nL - delilac nDec - broj decimala
Return: Numeric
SecToTime - Vraća vreme izvedeno od broja sekundi
Param: nSek -
Return: String
Doy - Vraća broj dana u godini
Param: dDatum -
Return: Numeric
Eom - Vraća zadnji datum u mesecu
Param: dDatum -
Return: Date
Eoy - Vraća zadnji datum u godini
Param: dDatum
Return: Date
45
LastDayOm - Vraća zadnji dan u mesecu
Param: dDatum
Return: Numeric
Primeri:
d:=cTod (’10.05.99’)Doy (d) // vraća: 365Eom (d) // vraća: 31.05.99Eoy (d) // vraća: 31.12.99LastDayOM (d) // vraća: 31
ArrToC - Pretvara niz u string
Param: - aVal - niz vrednsti
Return: String
x2c - Konvertuje bilo koji podatak u string
Param: - xVal - vrednost bilo koja
Return: cText
c2x - Konvertuje string u drugi tip podatka
Param: - cText - string- cType - oznaka tipapodatka: C / N / L / D
Return: xVal
46
x2N - Konvertuje bilo koji podatak u numerik
Param: - xVal - bilo koja vrednost
Return: xVal
x2D - Konvertuje bilo koji podatak u datum
Param: - xVal - bilo koja vrednost
Return: xVal
x2L - Konvertuje bilo koji podatak u logičku vrednost
Param: - xVal - bilo koja vrednost
Return: xVal
cSelect - Selektuje bazu podataka
Param: - cAlias
Return: xVal
aMaxStrLen - Vraća najveću dužinu stringa iz zadatog niza
Param: - aText - niz teksta
Return: nBr
47
TABELA - F-ja bTab ( param .. ) AT nY,nX - gornji levi ugao tabele HEIGHT n - visina WIDTH n - sirina TITLE ac - naziv tabele niz ili string CENTER l - centriranje naziva (default = .T.) FILTER c [, c2 ] - filter (filter2 - do (default = '') ) TEXT { .. } - niz naziva kolona FIELDS { .. } - niz naziva polja kolona TRANS {.. } - niz prikaza u kolonama PICTURE { .. } - niz picture deklaracija o formatiranju unosa
Polja.
Ako tekst počinje sa "IF" ili "&" poziva semakro f-jaAko vraca "." preskace se unos
VALID { .. } - valid FREEZE n - zamrzavanje skrolovanja do kolone n USERFN c - korisnička f-ja koja prenosi parametre:
Key - kod pritisnutog tastera RowPos - X poziciju kursora (kolone) ColPos - Y poziciju kursora na ekranu y - gornji levi x - ugao tabele y2 - početni red aktivnog dela tabele Mode_RW - Read/Write parametar Vraća: ExitCode
Š,Range_1,Range_2,FixSifra,OrderĆ ExitCode = 1 - Refresh sa GoTop() = 2 - izlaz = 3 - nastavlja petlju uz Key=0 = 4 - Refresh DEL l_a - Omogućeno brisanje Y/N (Logical) ili niz: Prvi element: Uslov brisanja (default .T.)
Makro izraz Drugi je niz od po tri elementa: - ALIAS (default alias())
48
- Uslov za SEEK prilikom brisanja makro na početku petlje ukoliko je tekst počinje sa "F-"
poziva se f-ja (makro) od 3-ćeg karaktera - Order (dafault IndexKey()) - mora se navesti
(makar kao nil)- Field name (ukuoliko postoji dodaje se na
ključ prilikom brisanja paralelnog indeksa,primer "PRBR" ) - ne mora se navesti (default= .T.)
SIF_NAME c - naziv šifre (default = 'SIFRA') INS l - Omogućeno umetanje Y/N Automatsko povlaćenje brojeva ako je
'SIF_NAME' čist numerik i kontrola fiksnogdela šifre FIX_SIF (default = .F.)
FIX_SIF c - fiksni deo šifre (default = '') NUM_SIF n - Ako je n>0 onda je šifra numerik dužine n,
n<0 nema levih nula R_W n - za n=0 - Omoguceno dodavanje za n=0
(default = 0) n=1 - Omoguceno dodavanje sa SHIFT +
ENTER, izbor sa ENTER n=2 - Izbor sa ENTER n=3 - Unos sa ENTER, nema dodavanja NEW_REC ac - ili naziv funkcije ili niz od dva člana: naziv
polja i vrednost (default =’’) MAX_EXIT n - kolona od koje se pamti novi slog
(default = Len (fields) ) SPEED_SEARCH a - niz: {Opis,Num_Sif,Order} ako je niz > 1 prikazuje se "<F9> Sort:" ako je Num_Sif > 0 onda se pretražuje preko space na duzini numerika Num_Sif INIT_ORDER n - inicijalni order (default = 1) ADDREC_ORDER n - index po kome se dodaju šifre Add_Rec
(default = 1) AUTO_SIF l - Y/N (default = .F.) DUP_F3 l - Y/N (default = .T.) <F3> dupliranje sloga
pamti slog u nizu DN_EXPWIN n - Broj redova za koliko se produžuje dno tabele
(default = 0)
49
NEXT_VALID c - naziv f-je koja se poziva prilikom izlaska izunosa polja i prenosi:
- niz prethodnih vrednosti polja - l_NewRecord (Y/N novi slog ili ne) - broj kolone iz koje se poziva f-ja DN_SAY a - f-ja prenosi: ( Y (red) -ispod tabele, 1) ili niz makro izraza koji se ispisuju zaredom
ispod tabele
UPDATE ca - f-ja ili niz (kao NEW_REC) koja se poziva nakraju unosa polja.
Ukoliko se koristi f-ja prenosi se broj koloneiz koje se poziva
Napomena: pamte se boje i oblik kursora (tabela se setuje bojom iz c_tabb)
Aktivni tasteri: <F9> - sortiranje (ako je SpeedSearch > 1) <Alt-P> - logicko pretraživanje <Alt-S> - nastavlja pretraživanje započeto sa <Alt-P>
50
V_TAB AT nY,nX - gornji levi ugao tabele HEIGHT n - visina (default = len(aTxt)) WIDTH n - širina TITLE a - niz ili string naziv tabele CENTER l - centriranje naziva (default = .T.) TEXT { .. } - niz naziva kolona FIELDS { .. } - niz naziva polja kolona TRANS { .. } - niz prikaza kolona PICTURE { .. } - niz picture deklaracija o formatiranju unosa
Polja.Ako tekst počinje sa "IF" ili "&" poziva semakro f-jaAko vraca "." preskace se unos
VALID { .. } - niz f-ja za proveru validnosti unosa u poljima ADD_TEXT c - tekst koji se dodaje radi poravnanja desne
margine ( default = ' ' - space ) ADD_CHAR c - karakter koji se dodaje radi poravnanja
( default = ’’ ) INIT n - inicijalni red (default = 1) CLS_WIN l - Y/N zatvaranje prozora prilikom izlaska
(default = .T.) COLOR c - korisnička boja (default = c_tabv)
lRW - .T. // lReadWritecExecFn - opciono: F-ja koja se poziva po izlasku iz tabelelWndOn - .T. // Pri pozivu f-je otvara se prozor
51
V_MENU - F-ja vMenu ( param .. ) AT nY,nX - gornji levi ugao tabele HEIGHT n - visina (default = len(aTxt)) WIDTH n - širina TEXT { .. } - niz naziva redova za izbor YN { .. } - niz Y/N aktivnih redova INIT n - inicijalni red (default = 1) USER_FN c - f-ja ili š f-ja, š šcOpis,nKeyć , .. ć ć ć
Prenosi parametre:nPos - pozicija aktuelnog redaKey - kod pritisnutog tastera
poziva se izborom na ENTER a treba davrati numeričku vrednost:
1 - refresh 2 - nastavak petlje 3 - nastavak petlje uz Key=0 5 - izlaz - prekid USER_FNP c - f-ja
Prenosi parametre:NPos - pozicija aktuelnog redaKey - kod pritisnutog tastera
poziva se izborom na <ENTER> i treba davrati logičku vrednost:
.T. - vrši se poziv f-je iz ProcName TITLE { .. } - niz ili string naziva tabele CENTER l - centriranje naziva (default = .F.) HOT_KEYS { .. } - niz vrućih tastera ili se unose u TEXT sa
predznakom '#' ispred slova PROC { .. } - nazivi f-ja (ProcName) a u pozivu se prenose: - Y koordinata, korner ispod odabranog reda - X koordinata - izabrani red u nizu LR_KEY l - Aktivnost tastera K_RIGHT i K_LEFT
(default=.F.) CLS_WIN l - Zatvaranje prozora prilikom izlaska
(default=.T.) COLOR c - korisnička boja (default = c_menu) TO <Var> - varijabla u koju se vraća izbor
52
F-je iz KIP-a
Dok_Izv - Priprema podataka za izradu izveštaja - dokumenta ( priikaz robnog dokumenta )
Param: cVD - vrsta dokumentacMag - šifra magacina
Pre poziva selectovati radnu oblast (alias=’UNOS’) i pozicionirati se na željeni dokument. F-ja inicira public promenljive sa sledećim vrednostima:
ime_pp - šifra+naziv poslovnog partnerapp_naz - naziv poslovnog partnerapp_adr - adresa poslovnog partnerapp_pos - pošta poslovnog partnerapp_tel - telefon poslovnog partnerapp_fax - fax poslovnog partnerapp_zr - žiro račun poslovnog partnera
aZbir - niz deklaracija za fajl ‘.IZV’ (totali za tabelu)aText - niz naziva kolonaaPrikaz - niz prikaza polja u kolonamaaFields - niz naziva polja
Poziva j-ju: Izv_MagT (v,o)
Return: Logical ( .T. )
Izv_MagT - Poziva fajl za pripremu izveštaja
Param: cVD - vrsta dokumentacMag - šifra magacina
Poziva izveštaj za obradu dokumenta odgovarajućeg magacina uz prioritet provere postojanja fajla:
1. v__m.ICH - dokument (v) na nivou specificirane šifre2. v__m.IZV magacina (m)
53
3. v_t.ICH - dokument (v) na nivou specificiranog tipa4. v_t.IZV magacina (t)
Return: NIL
Ret_SPor - Vraća važeću stopu poreze šifre robe za odabrani Magacin u skladu sa tarifnim brojem iz šifarnika robe ili unosa stavki. F-ja se poziva sa selektovanog sloga baze ‘UNOS_S’ (koristi se kod relacija kontiranja)
Param: cSifra - SIFAR->SIFRA // šifra robecMag - ‘ ‘ (4xblanko) // magacinl_old - .F. // .T. - vraća prethodno važeću stopu poreze
.F. - vraća aktuelnu stopu porezeDat - opciono: datum važnosti ( UNOS-DATUM )
Return: Numeric
Tip_OJ - Vraća tip odabranog magacina
Param: cMag - UNOS->SIFOJ // Magacin
Return: Char // može biti $ ‘VMSPKNOI’
Ret_Cena - Vraća prosečnu cenu šifre robe iz totala
Param: cSifra - UNOS_S->SIFRA // šifra robecMag - UNOS_S->SIFOJ // magacincTip - ‘’ - default: prosečna cena
‘A’ - Dug ( nab.vr)‘P’ - Pot (otp.vr)
Return: Numeric
54
Ret_Kol - Vraća količinu (stanje) šifre robe iz totala
Param: cSifra - UNOS_S->SIFRA // šifra robecMag - UNOS_S->SIFOJ // magacin
Return: Numeric
Racun - Obračun svih iznosa sa aktuelnog sloga baze ‘UNOS_S’.
Param: lClrTot - .T. // poništava totale (‘t_...’)lMsg - .F. // ako je .T. a šifre nema u šifarniku robe
prijavljuje porukulTest_ZTr - .F. // očitava i zavisne troškove (niz)lTbr3 - ‘?’ - Poreza3 uzima se iz šifarnika bez obzira
na promenu tarife u dokumentu‘?K’ - vrši i korekciju
F-ja utiče na public promenljive:
Totali koji se menjaju svakim pozivom f-je Racun:t_NCena, t_Rabat,t_ZTros,t_Cena,t_OldMar,t_Marza,t_Porez,t_Cena1,t_Cena2nizovi: t_aPorez, t_aStope, t_aZTros, t_aKZTros, t_a2Porez, t_a2Stopeponištavaju se na početku f-je ako je lClrTot=.T.
Iznosi na nivou stavke (za ukupnu količinu):i_NCena - nabavna cenai_Rabat - rabati_ZTros - zavisni troškovii_Cena - nabavna cena (umanjena za rabat ako rabat ne
ulazi u strukturu cene)i_OldMar - prethodna marža (npr. maloprodajna marža)i_Marza - maržai_Porez - porezai_2Porez - poreza 2
55
i_Cena1 - medju cena (npr. kod int. povratnice cena bez poreze)
i_Cena2 - zadnja cena (npr. VP ili MP kalkulativna cena)
nizovi:i_aPorez - niz iznosa poreza po različitim stopama i
kontimai_aStope - niz stringova koji se sastoje od segmenata (5 x
6 karaktera) :• stopa poreze• konto (U)• konto (I)• konto (U2)• konto (I2)
t_aPorez - totali na nivou dokumentat_aStope -i_a2Porez, i_a2Stope, t_a2Porez,
t_a2Stope - vezani za porezu 2i_aZTros - niz iznosa zavisnih troškovai_aKZTros - niz konta + subanalitike + broj_dokumentat_aZTros - totali na nivou dokumentat_aKZTros -
Iznosi na nivou stavke (po jedinici mere):j_NCena, j_Rabat, j_ZTros, j_Marza, j_Porez,j_Cena1, j_Cena2,j_Tbr - tarifni broj
Konto_1 - niz mogucih konta magacina 1 Konto_2 - niz mogucih konta magacina 2 (ako postoji magacin
2 u dokumentu) Kn_Tbr1, Kn_Tbr2 - Konto 1 i 2 rezervisani na nivou tarifnog broja Tip_Mag - tip magacina 1 Tip_Mag2 - tip magacina 2 ako postoji VrDok - vrsta dokumenta
Return: NIL
56
Get_DefPorez - Vraća iznos poreske osnovice
Param: dDatum - datum važnosticTip - ‘p’ // može biti: ‘p’ - poreska osnovica 1
‘2’ - poreska osnovica 2
Return: Numeric
Racun_PTBr - Vraća porez prema aktuelnom tarifnom brojukoji se odnosi na šifru robe iz aktivnog sloga
baze 'UNOS_S'
Pre poziva f-je pozicionirati se na željeni dokument u bazi ‘UNOS’ i poziciju u bazi ‘UNOS_S’.
F-ja ažurira i_aStope i i_aPorez
Param: nIznos - 0cMag2 - ’’ // magacin 2 (ako postoji formira se niz i_aStope2lTip - .F. // ako je .T. f-ja samo vraća poresku stopu
i_aPorez je napunjen vrednostima 0// ako je .F. vrši se i preraspodela ‘nIznos’ u nizu i_aPorez
cMag - UNOS->SIFOJ // Magacin
Return: Numeric
Racun_2PTBr -
( Identično f-ji Racun_PTbr s tim što se ova odnosi na porezu 2 )
57
Pr_NizP - Štampa u baferu niz poreze na trenutnim koordinatama
Param: cTxt - // pred-tekst (zaglavlje)lSayN - .F. // .T. - prikaz naziva poreske stopenIznos - 0 // iznos poreze.
• Ako se ne navede (nil) prikazuje se niz iz obračunate poreze prema sadržaju niza t_aPorez• Ako se navede iznos preraspodeliće se u prikazu prema učešću stopa unutar nuza t_aStope
nMaxL - 0 // Maksimalna dužina teksta koji se prikazujenXpom - 0 // pomeraj (+-) po x-osi opisa od 2-gog redalPrviRed- .T. // ispis prvog reda (komentar + iznos )
Return: NIL
Pr_NizP2 - Štampa u baferu niz poreze2
( Identično f-ji Pr_NizP s tim što se radi o porezi2. )
Pr_NizZ - Štampa u baferu niz zavisnih troškova na trenutnim koordinatama
Param: cTxt - // pred-tekstl_n - .T. // prikzuje i nazive troškova
Return: NIL
58
Pr_GP - Štampanje sastavnice gotovog proizvoda u baferu na trenutnim koordinatama
Param: y - Pr_cRow // red u baferux - Pr_cCol // kolona u baferucTxt - ’’ // pred-tekst (opis zaglavlja)lSrch - // uslov (default = postojanje sastavnice u
samom dokumentu)cSN - Ret_NazivI (4,,30) // načun ispisivanja opisa
robelNext - .T. // ako je .T. i u sastavnici definisan
parametar ‘,’ dodaje separator ‘, ’nSpace - 0 // > 0 - broj kolona razmaka
izmedju opisa robe i količine= 0 - ispisuje se količina, znak ‘x ‘ i opis robe
nCol_RN - 0nType - vrsta ispisa naziva artikla
Return: 0
Ret_NazivI - Formatiranje prikaza šifre robe
Param: nTip - 1 // način formatiranja prikaza1 - samo šifra dužine nLs2 - šifra dužine nLs + nazin robe3 - šifra bez levih i desnih blanko karaktera +
naziv robe4 - naziv robe
nLs - 13 // dužina prikaza šifrenLn - 30 // dužina ukupnog opisa koji se vraća
(ako je tip > 1)cSif - ‘SIFRA’ // naziv polja iz koga se uzima šifra robe
Return: String // formatiran prikaz
59
Fn_Lager - Obračun totala za odabranu šifru robe
Param: cSifra - šifra robecMag - ’’ // magacinDat_od - ctod(’’) // period od doDat_do - ctod(’’) // (ako se ne navede obuhvata se ceo period)ndy - .F. // .T. - uzima u obzir i neproknjiženu
dokumentacijilUsl - .T. // šifre sa tretmanom usluge uzeti u obzircRN - ’’ // broj radnog naloga za koga se vezuju
dokumenta u pretraživanjucDok - ’’ // string od niza karaktera (oznaka dokumenata)
koji ulaze u obradu. Ako je string prazanmoguća su sva dokumenta.
c_pp - ’’ // šifra poslovnog partnera za koga se vezujuulazna dokumenta u pretraživanju
c_Tbr - // obuhvata samo šifre sa navedenim tarifnim brojemc_pp2 - ‘’ // šifra poslovnog partnera za koga se vezuju
izlazna dokumenta u pretraživanjun_LenSif- ‘’ // dužina šifre do koje se zbrajaju šifrec_RUC - ‘’ // niz: š c_Dok1 - dok. koja vuku nivel. ,
c_Dok2 - dok. koja imaju ukalk. maržu ,c_Dok3 - dok. gde je marža + rabat ć
lRacun - .F. // poziva F-ju Racun()
(*) Napomena: Iniciraju se public promenljive:Izv_Dug - ukupna dugovna stranaIzv_Pot - potražnaIzv_Ul - ukupan ulazIzv_Iz - ukupan izlazIzv_Cena - prosečna cenaIzv_Prolaz - .T. ako postoji bar jedna promena za
navedenu šifru robetotali:
Izv_tDug, Izv_tPot, Izv_tUl, Izv_tIz, Izv_tCena
Return: Logical // .T. - ako postoji bar jedan prolaz (bar jedna promena vezana za navedenu šifru robe)
60
Reset_IzvT - Resetuje totale izveštaja
Upisuje nulte vrednosti u: Izv_tDug, Izv_tPot, Izv_tUl, Izv_tIz, Izv_tCena, t_MP1..t_MP2 (totali macro)
Return: NIL
Fn_RK - Obračun iznosa odabranog sloga baze ‘UNOS_S’ (koristi se kod izrade izveštaja: robna kartica)
Param: cSifra - šifra robecMag - ’’ // magacinndy - .F. // .T. - uzima u obzir i neproknjiženu
dokumentacijiDat_od - ctod(’’) // period od doDat_do - ctod(’’) // (ako se ne navede obuhvata se ceo period)c_pp - ’’ // šifra poslovnog partnera za koga se vezujuc_pp2 - ‘’ // šifra poslovnog partnera za koga se vezuju
izlazna dokumenta u pretraživanju
Vidi (*) u f-ji Fn_Lager
Return: Logical // .T. - ako postoji bar jedan prolaz (bar jedna promena vezana za navedenu šifru robe)
Pr_s - Štampanje teksta na koloni tabele u bafferu
Param: y - Pr_cRow // red bafera x - Pr_cCol // kolona tabele
cTxt - tekst lUslov - .T. // uslov za štampanje
Return: 0
61
Pr_DatI - Prikaz iznosa po datumima plaćanja u baferu ( pogodno kod ispisa valuta plaćanja na dokumentu )
Napomena: F-ja se vezuje za dokument specificiran preko promenljivih: m_vr - vrsta dokumenta
m_oj - magacin / OJm_br - broj dokumenta
Prilikom štampanja u baferu koristi se font tabele iz fajla ‘.IZV’
Param: nIznos - // iznos za plaćanjecTxt - ’’ // opis
y - Pr_Y// red bafera x - Pr_X // kolona bafera
(Pr_Y, Pr_X - poslednja pozicija kursora u print buferu)
lRab - .F. // vraća niz po valutama plaćanja umesto štampanja: š š iznos, datum_val ć ć
Return: 0 ili niz
iAdd_JM - Dodavanje u standardnim nizovima dokumenata za izveštaje (aFields, aText, aPrikaz, aZbir) jedinice mere
Param: nPos -3 // pozicija u nizu na kojoj umeće jedinica mere
Return: NIL
r_KnMag - Vraća konto iz tabele konta magacina
Param: nPos - pozicija u tabeli kontacMag - i_Mag // magacin
Return: String // konto (6 karaktera)
62
i_rDok - Vraća totale za dokument
Param: cVD - vrsta dokumentacMag - magacincBD - broj dokumentalMetod - .F. // način obrade:
.F. - poziva f-ju Fn_RK
.T. - koristi f-ju Racun koja ažuriratotale na nivou dokumenta “t_...”
Return: ako je lMetod = .F. - vraća niz š 1 .. 11 ć gde su elementi:1. total za dokument u skladu da li je dugovna ili potražna
strana u pitanju (ulazni ili izlazni dokument)2. vraća ‘U’ ako je ulazni dokument ili
‘I’ za izlazni dokument3. .T. ako dokument postoji4. iznos rabata5. iznos poreza6. iznos marže7. iznos poreze 28. iznos nabavne cene9. iznos cene110. iznos cene211. iznos zavisnih troškova12. iznos ostalih troškova
ako je lMetod = .T. - vraća logičku vrednost(.T. - ako dokument postoji)
63
Racun_Izv - Obračunava iznose za poziciju robe iz sloba baze ‘UNOS_S’
F-ja je skraćeni deo f-je Racun radi brže obrade koristi se kod izradeizveštaja. (vidi f-ju Racun)
Obračunava vrednosti u:i_NCena, i_Rabat, i_ZTros, i_Cena, i_OldMar,i_Marza, i_Porez, i_Cena1, i_Cena2Tip_Mag, Tip_Mag2VrDok
Return: NIL
Racun_Dok - Obračunava totale za dokument
Param: cVr - UNOS->VRSTA // vrsta dokumentaCmag - UNOS->SIFOJ // magacinCBr - UNOS->BROJ // broj dokumenta_JM -
Napomena: F-ja koristi f-ju Racun i vraća vrednost u:t_NCena, t_Rabat, t_ZTros, t_Cena, t_OldMar, t_Marza,t_Porez, t_2Porez, t_Cena1, t_Cena2
Return: Logical // .T. ako postoji bar jedan prolaz
64
Fn_GetIzn - Obračunava totale za odgovarajuću analitiku
Param: cKonto - // šifra kontacMag - ’’ // Magacin / OJcSub - ’’ // subanalitikadDod - ctod (’’) // period od - dodDdo - ctod (’31.12.99’)lUslov - .T. // uslov obradelTot - .F. // .T. - vraća podatke iz totala (tada period nema
uticaja)dVal - ctod (’’) // datum preseka ( datum valute mora biti
raniji od dVal )lProvRablBezUplcVNal - Uslov za vrstu nalogacVDok - Uslov za broj dokumenta (polje: BRDOK)cOpis - Uslov za opis (polje: VK)lOJ - uslov da je SIFOJ vezan za obračunsku jedinicu
za cVDok i cOpis može se koristiti % kao džoker znak
Napomena: F-ja vraća vrednost u public promenljivima:ps_dug- početno stanje (dugovna strana)ps_pot - početno stanje (potražna strana)pr_dug- promet (dugovna strana)pr_pot - promet (potražna strana)s_dug - saldo (dugovna strana)s_pot - saldo (potražna strana)
( f-ja podržava preračun vrednosti prema kursnoj listi )
Return: Logical // .T. ako postoji makar jedna promena
65
Reset_DP - Resetuje totale
Param: l - .F. // svodi na nulte vrednosti totaleza vrednost .T. - s_dug, s_potza vrednost .F. - ps_dug, ps_pot, pr_dug, pr_pot
Return: 0
Fn_AKIzn - Obračunava vrednosti za odgovarajućupoziciju sloga u bazi ‘GLK’
Param: cKonto - i_Kn // šifra kontacSub - i_pp // subanalitikadDod - ctod (’’) // period od-dodDdo - ctod (’31.12.99’)l_uslov - .T. // uslov obrade
Napomena: F-ja (uvećava) utiče na promenljive:pr_dug, pr_pot, ps_dug, ps_pot
Return: Logical // .T. ako postoji makar jedna promena
Say_PP - Formatira prikaz naziva poslovnog partnera
Param: nLen - 0 // Ako je >0 odredjuje dužinu stringa koji se vraćakoristi se f-ja PadR ( string, nLen) za dodavanjedesnih blanko karaktera
cSif - GLK-SUBANAL // šifra subanalitikelTrim - .F. // ako je .T. iz šifre izbacuje leve i desne blanko
karakterecKn - GLK->KONTO // (potreban kod utvrdjivanja grupe
subanalitike ako se ne specificira cGs)
nTip - 0 // način formatiranja stringa koji se vraća
66
0 - šifra + naziv u punoj dužini1 - šifra + naziv bez desnih blanko karaktera2 - šifra bez levih i desnih blanko karaktera + naziv bez desnih blanko karaktera
cGs - ’’ // cChar - grupa subanalitike’’ - pronalazi grupu subanalitike preko cKn’ ’ - šifarnik posl. partnera
Return: String
Say_ppi - Standardni prikaz poslovnog partnera ( format: šifra + naziv )
Param: cPP - i_pp // šifra subanalitikecGs - // grupa subanalitikenLen
Napomena: poziva se f-ja Say_pp ( nLen, cPP, , i_Kn, 2, cGs ) i vraća njena vrednost
Return: String
sStopa - Vraća poresku stopu iz šifarnika slobodnihporeskih stopa ili stopu prema tarifnom broju
Param: nSt - 0 //nR - 0 //nIznos - 0 // broj slobodne poreske stopeŠDatumĆ - UNOS->DATUM datum važnosti
F-ja vraća vrednost prema sledećoj šemi:ako je nSt=0 // vraća stopu prema tarifnom broju šifre
'SIFRA' iz aktuelnog sloga baze 'UNOS_S'ako je nSt<>0 // traži stopu ‘nSt’
nR = 0 // vraća poresku stopu
67
nR = 1 // vraća niz konta poreskih stopanR = 2 // vraća niz poreskih stopanR = 3 // vraća niz iznosa prema raspodeli 'nIznos' u nizu
poreskih stopanR = 4 // vraća niz nizeva š konto, stopa, iznos ć
Return: Numeric/Niz
Test_Sintax - Proverava ispravnost sintakse izraza za zadatitip
Param: cIzraz - // string polje (makro) koje sadrži izrazcTip - // tip koji se proverava: 'C' - caracter
'N' - Numeric'L' - Logical'D' - Date
lNull - .F. // .T. - mogućprazan string cIzraz
Return: Logical // vraća uspešnost operacije
SortDat - Uredjivanje datuma prema starosti
Param: dDate - // datum
Return: str(99999999-val(dtos(dDate)),8)
68
gGS - Vraća grupu subanalitike konta
Param: cKn - GLK->KONTO // konto
F-ja smešta vrednost koju vraća u public promenljivu I_GS I_GS može biti '' što se odnosi na standardnu grupu subanalitike odnosno poslovne partnere.
Return: Char
Ret_NameGS - Vraća naziv grupe subanalitike iz I_GS
Return: String
st - Vraća poresku stopu prema tarifnom broju
Param: cnTip - '0' // cnTip može biti:'0' - vraća poresku stopu'1' - vraća koeficijent ( Stopa/100 )'2' - vraća koeficijent ( 1 + Stopa/100 )
Numeric - vraća iznos: cnTip * (1+Stopa/100)nDec - 2 // broj decimala iznosa koji f-ja vraćacSif - ‘’ // šifra robecMag - UNOS->SIFOJ // magacinDat - DATUM // Datum promene tarife
Return: Numeric
Ret_Vr - Vraća naziv vrste dokumenta
Param: cVD - UNOS->VRSTA // vrsta dokumenta
Return: String // dužine 10 karaktera
69
Pos_Vr - Uredjuje vrste dokumenta u robnom (iz: KIP.INI)
Param: cVD -// vrsta dokumenta
Return: Char // (vidi objašnjenje za fajl: KIP.INI)
Ima_Dir - Testira postojanje putokaza
Param: cPath -// putokaz
Return: Logical // .F. - prijavljuje poruku "Putokaz nije korektan !"
RecToDBF - Kopira slogove iz jedne datoteke u drugu za zadati uslov (ključ)
Param: cAlias -// radna oblast u koju se kopiraju slogovicSeek - // uslov petlje u izvornoj radnoj oblastinOrder - 0 //
Napomena: Pre poziva f-je selectovati izvornu radnu oblast. Obe radne oblasti moraju imati iste strukture slogova.nDec - 2 // broj decimalam - ‘’ // opciono: SIFRA iz koje se vuče Tbr
u protivnom Tbr se uzima iz SIFAR->FAXOJ - Magacin // UNOS_S->SIFOJDat - datum važnosti ( (Alias())->DATUM )
Return: Logical
70
SetParam_I `- Generiše tabelu za unos parametara izveštaja
Param: y `- // redx `- // kolona (gornji levi ugao tabele)aParam `- // niz parametaraaDefault `- // niz standardnih vrednosti koje se predlažu
prilikom unosa cTitle `- // naziv tabele
lDel `- .T. // Brišu se public vrednosti I_Mag, I_Kn ...
aParam sadrži niz string-parametara koji sadrže: a) niz: 'ša,b,c,ŠdĆ,ŠeĆ,ŠfĆć'
pri čemu su:a - moze biti: 'M - magacin
'P' - pos.par'R' - roba
'K' - konto'D' - datum
'' - vrši se provera preko šifarnika b - naziv promenljive c - opis (tekst) koji se dodaje ispred polja za unos d - valid ( koristi se ako je a = '' ) e - picture ( koristi se ako je a = '' )
f - transform ( koristi se ako je a = '' ) b) gotove string deklaracije: 'M' - Magacin (I_Mag) 'OJ' - OJ
‘M2’ - Magacini od-do ( I_Mag, I_Mag2)‘OJ2’
'R2' - Šifra robe od - do (I_Sod, I_Sdo) 'R' - Šifra robe (I_Sod)
'DN' - Pregled po datuma naloga (Sw_DtNal)'D2' - Period od - do (I_Dod, I_Ddo)'D' - Presek sa (I_DPr)'P' - Poslovni partner (I_pp)'S2' - Subanalitika od - do (I_pp, I_pp2)'SN' - Na nivou sintetike (I_SintY)'ND' - Sa neproknjiženom dok. (I_NDY)'PS' - P.S. kao saldo (Saldo_PS)
71
'K2' - Konto od - do (I_Kn, I_Kn2)'K' - Konto (I_Kn)'O1' - Opis (1) (I_O1)'O2' - Opis (2) (I_O2)
'O3' - Opis (3) (I_O3)'NN' - Redni broj od - do (I_N1, I_N2)'N?' - Broj (I_N? - ?=1,2,3,4,5)'GS' - Grupa subanalitike'NF' - Vrsta finansijskog naloga (I_fvNal, I_fNalOd,
+ nalog od do I_fNalDo) 'NR' - Vrsta robnog naloga (I_rvNal, I_rNalOd, + nalog od do I_rNalDo) 'RN' - Radni nalog (I_RadNal)
‘O2’ - Šifra OS od..do (I_Sod, I_Sdo)‘PT’ - Sa presekom stanja (Presek_St)‘NR1’ robno:‘NR1T’ - Vrsta naloga + nalog ( I_rvNal, I_rNalog )‘NRN’ - Vrsta naloga robnog ( I_rvNal )‘NF1’ finansijski:‘NF1T’ - Vrsta naloga + nalog ( I_fvNal, I_fNalog)‘NFN’ - Vrsta naloga ( I_fNalog )‘RN’ - Radni nalog ( I_RadNal )‘ZG’ - Godina ( I_ZGod )‘ZM’ - Mesec ( I_ZMes )‘ZM2’ - Mesec od .. do ( I_ZMes, I_ZMes2 )‘ZR’ - Radnik ( I_ZRad )‘ZR2’ - Radnik od .. do ( I_ZRad, I_ZRad2 )‘ZB’ - Broj isplate ( I_ZBr )‘VRBL’ - Vrsta blagajne ( I_VrBl )
Napomena: ukoliko: a) se kod deklaracija 'O?', 'N?' i 'NN' upiše tekst od
3-će pozicije on se ispisuje ispred polja za unos podataka b) je nastavak deklaracije '-Y' omogućuje se unos
nulte šifre (ili '-N' ili ako se ne navede - nije moguća) c) kod 'K' deklaracije može se dopisati: ':S' - konto mora biti subanalitički ':N' - ne mora
Return: Logical // .F. - prekid unosa na <Esc>
72
Def_Mag - Vraća parametre iz zaglavlja dokumenta
Param: nPos - 0 // pozicija iz tabele za definiciju zaglavljadokumenta
cMag - UNOS-SIFOJ // magacincVD - UNOS->VRSTA // vrsta dokumenta‘L:’ - Lozinka ( xLozinka )
Return: Char
Def_US - Vraća parametre iz tabele sadržaja dokumenta
Param: nPos - 0 // pozicija iz tabele za definiciju sadržajadokumenta (stavki)
cMag - UNOS-SIFOJ // magacincVD - UNOS->VRSTA // vrsta dokumenta
Return: Char
Push_Alias - Memoriše alias, indeks i poziciju sloga i trenutni alias koji se vraća f-jom Pop_Alias
Param: cAlias - Alias() // alias koji se memoriše,ako se ne navede uzima se trenutni
Return: Nil
Pop_Alias - Vraća indeks i poziciju sloga memorisanog aliasa Selectuje stari alias
Param: Return: Nil
73
Fn_Zbir - Obračunava vrednosti zadatih uslova u odabranoj radnoj oblasti za zadati uslov
Param: - cAlias - alias() // radna oblast- nOrder - 1 //- cKey - .T. // pozicioniranje na poč. slog- cUsl - .T. // uslov petlje- caFld - polje ili niz polja za zbrajanje- caUsl - uslov ili niz uslova- cFn - f-ja koja se poziva pre obrade sabiranja
Return: niz vrednosti (numerickih) ili numerik
Ret_BrSDok - Vraća broj stavki dokumenta
Param: - c_Vr - UNOS->VRSTA // vrsta dokumenta- c_OJ - UNOS->SIFOJ // magacin- c_Br - UNOS->BROJ // broj dokumenta
Return: nBr // numerik
BrSl - Prikaz broja tekstualno
Param: - n_Br - Broj
Return: c // string
74
Ret_CenGP - Izračunava cenu gotovog proizvoda na osnovu normativa-sastavnice
Param: - c_Sifra - šifra gotovog proizvoda- c_Mag - šifra magacina sirovina- a_Tip - izbor cene koja se primenjuje u
obračunu a to je niz š a, b, c ć gde “a” može biti:• ‘U’ zadnja ulazna cena sirovina• ‘I’ zadnja izlazna cena sirovina• ‘P’ prosečna cena• ‘1’ uzima cenu iz standardnog cenovnika a prema• unapred odredjenoj koloni (CENA1..6) - taster <F10>• ‘2’, dok je b=oznaka datumskog cenovnika• ‘3’, dok je b=oznaka cenovnika po poslovnim part.,
c=šifra pos.par• ‘4’, dok je b=oznaka cenovnika tipa 4
Return: iznos // numeric
isOneUser - Proverava da li je samo jedan korisnik pristupio programu
Return: logical
isModul - Proverava prisustvo modula
Return: logical
Conv852 - Konvertuje tekst prema CodePage 852 rasporedu
Param: - cText - string- cMode - ‘P’ - printer ili ‘M’ - monitor
Return: cText