76
Funkcije programskog paketa KIP Rad sa bazama podataka Net_Use - Otvara specificiranu bazu podataka ........................... 6 OpnBaseStn - Otvara glavnu bazu: GB.DBF ................................... 6 OpenBase - Otvara listu baza podataka iz GB za cSpecCode ........ 6 Modify_dbs - Modifikacija strukture baze ....................................... 7 Pack_dbs - Pakovanje baze podataka .......................................... 8 Create_IDX - Kreira indeksni fajl u trenutno selektovanom alias ..... 8 File_Lock - Zaključava bazu podataka ......................................... 8 Rec_Lock - Zaključava slog ......................................................... 9 UnLock - Otključava slog ......................................................... 9 Add_Rec - Dodaje slog ............................................................... 9 Null_Rec - Upisuje nulte vrednosti u polja aktuelnog sloga ........ 10 Fn_Repl - Zamena za ‘REPLACE WITH’ ................................ 10 Get_DBFPath - Vraća putokaz specificirane baze podataka .................10 isLockRepl - Upis vrednosti u polje aktivnog sloga ....................... 10 isAlias - Provera egzistiranja baze............................................11 Kontrola nad bazama podataka TestSifra - Testiranje postojanje ranije unešene šifre u šifarniku 11 TestSifF2 - Testiranje postojanje šifre u šifarniku uz podršku .... 11 sistema F2 Srch_Fld - Vraća vrednost polja iz sloga koji se traži u bazi ....... 13 Search - Vraća uspešnost pronalaženja sloga u bazi za zadati . 13 uslov Valid_NStr - Koristi se za formatiranje šifara u tabeli ................... 14 SkipFor - Preskače slogove za uslov ........................................ 14 SkipForL - Vrti petlju (skip) za uslov ......................................... 14 Rad sa fajlovima Get_Line - Učitava liniju iz fajla ................................................ 15 Get_Str - Vraća parametar iz stringa ........................................ 15 Put_Str - Setuje parametar u stringu ........................................ 16 GetIzvLn - Učitava tekst iz fajla iza znaka '=' ............................. 17 fWrite_s - Upis teksta u fajl ........................................................17

Funkcije programskog paketa KIPcolas.rs/Uputstvo/F-je KIP-a - za napredne korisnike.pdf · Funkcije programskog paketa KIP Rad sa bazama podataka Net_Use - Otvara specificiranu bazu

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

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

75

isFnExec - Vraća broj stavki dokumenta

Param: - cFn - Funkcija koja se izvršava- xDefRet - vrednost koja se vraća ako se F-ja ne

izvrši zbog greške

Return: xRet

aCopy2 - Kopira jedan niz u drugi

Param: - aArr1 - izvorni niz podataka- aArr2 - odredišni niz podataka

Return: cText