DEFINISANJE VREDNOSTI GLAVNE KNJIGE

Calculus 12
Calculus 12 - "Vrednosti za posebne izveštaje".

Vrednosti glavne knjige predstavljaju izraze kojima "dohvatate" određene iznose iz glavne knjige i dajete im imena, da biste ih posle koristili u različitim izveštajima. Ova imena mogu se koristiti samo u izveštajima slobodnog tipa. Iako svaki izveštaj možete definisati i bez ovih vrednosti, one Vam značajno olakšavaju posao. Osim toga, za definisanje vrednosti ne morate poznavati SQL (Structured Query Language), jezik za upite nad bazama podataka, dok definisanje izveštaja bez vrednosti ne možete uraditi bez poznavanja SQL-a.

Možda su najbolji primer za ove vrednosti, obrasci za bilanse stanja i uspeha. U tim obrascima postoje pozicije, od kojih svaka predstavlja određeni iznos iz kartica konta glavne knjige: "Prihodi od prodaje", "Troškovi materijala", "Revalorizacione rezerve" itd. Upravo tako treba definisati i ove vrednosti, a onda te "pozicije" koristiti gde god je potrebno u izveštajima.

Učitaj sliku
Calculus 12 - "Vrednosti za posebne izveštaje".

Unos vrednosti

Naziv vrednosti
Za svaku vrednost morate dodeliti jedinstveno ime. Uz instalaciju programa standardno se isporučuje nekoliko demo izveštaja, koji imaju i svoje vrednosti. Imena ovih vrednosti imaju prefiks *D*, da biste ih lako razlikovali od vrednosti koje sami unosite. Takođe, ako budete preuzimali gotove izveštaje sa Internet lokacije za razmenu, imena vrednosti imaće prefiks *C*, ako je izveštaj kreirao Calculus, ili neki drugi prefiks, ako je izveštaj kreirao neko od korisnika. Time se izbegava preklapanje imena vrednosti koje sami definišete i imena koja preuzimate sa Internet lokacije. U pregledu vrednosti prikazano je polje "Napravio". Za svaku vrednost koju sami unesete ovde se ispisuje oznaka "Korisnik". Uz vrednosti isporučene u instalaciji programa stoji oznaka "Demo". Ako preuzmete vrednosti sa Internet lokacije, ovde će stajati oznaka "Calculus" ili "Drugi korisnik", zavisno od toga ko je autor izveštaja i pratećih vrednosti.

Brisanje vrednosti koja se koristi u nekom od izveštaja nije dozvoljeno. Ako pokušate da promenite naziv vrednosti koja se koristi u nekom od izveštaja, program će Vas obavestiti porukom i dati Vam mogućnost da naziv te vrednosti zamenite u svim izveštajima u kojima se ona koristi. Ako odbijete zamenu, program neće dozvoliti izmenu naziva.

Izraz
Zatim je potrebno definisati izraz za izračunavanje vrednosti. Možete ga ukucati direktno u polje, a možete i dugmetom otvoriti prozor za definisanje izraza u kojem su ponuđene sve mogućnosti za kreiranje izraza. Budući da se vrednosti definišu za glavnu knjigu, u donjem delu prozora za unos izraza, u listiću <Kolone> ponuđeno je šest osnovnih promenljivih koje predstavljaju iznose sa kartica glavne knjige:

  • <DO> - duguje u osnovnoj valuti
  • <PO> - potražuje u osnovnoj valuti
  • <SO> - saldo u osnovnoj valuti
  • <DP> - duguje u paralelnoj valuti
  • <PP> - potražuje u paralelnoj valuti
  • <SP> - saldo u paralelnoj valuti

Sa ovih šest osnovnih promenljivih možete "dohvatiti" praktično bilo koji iznos iz glavne knjige. Svaka od ovih promenljivih će u izveštaju izračunati zbir svih stavki koje zadovolje uslove definisane za vrednost (o uslovima za vrednosti biće reči u narednim pasusima ovog poglavlja), kao i uslove postavljene u filteru izveštaja.

Osim osnovnih promenljivih, ponuđeni su i nazivi svih ostalih vrednosti glavne knjige definisanih u ovom prozoru, zatvoreni u znakove <>. Dakle, u izrazu možete kombinovati i druge vrednosti. koje ste već definisali. Kao što već primećujete, znakovi < i > su specijalni znakovi koji se koriste za označavanje promenljivih u izrazima, pa se ne smeju koristiti u nazivima vrednosti.

Naravno, osim jednostavnog izbora jedne od ovih promenljivih, u izrazima možete koristiti različite aritmetičke i logičke operatore, kao i dodatne programske funkcije.

Primer za operatore i funkcije (daje saldo u osnovnoj valuti samo ako je apsolutna vrednost veća od 1.000):
if Abs(<SO>) > 1000 then <SO> else 0 endif

Na kraju, za one korisnike koji poznaju SQL jezik, izraz može biti i SQL upit, koji mora vratiti jednu numeričku vrednost. Ovu varijantu možete koristiti za slučajeve kada uslovi ponuđeni u prozoru za unos vrednosti nisu dovoljni za postizanje željenog rezultata.
Da bi bilo jasnije kako funkcioniše izračunavanje vrednosti prilikom konačnog formiranja izveštaja, treba da znate da program zamenjuje gore navedene promenljive izrazom Sum( stavkanalog.colname ), gde je colname naziv odgovarajuće kolone
(npr. za <DO> to bi bilo Sum( stavkanalog.dugosnval ) i formira upit koji kompletno glasi:
SELECT Sum( stavkanalog.colname )
FROM dba.konto key join dba.stavkanalog key join dba.nalog key join dba.vrstadok key join dba.tipdok
Dakle, izraz u obliku SQL upita zapravo treba da bude napisan kao podupit (subselect) upita, čija je FROM sekcija gore navedena.
Npr. upit možete napisati kao:
(select sum(snal.dugosnval) from dba.stavkanalog as snal key join dba.konto as kto where kto.sifra like '201%')
 

Uslovi za izračunavanje vrednosti
Sva ostala polja kod unosa vrednosti predstavljaju uslove koji će biti primenjeni kod izračunavanja izraza. Nijedno od ovih polja nije obavezno, ali logično je da primenite barem jedan uslov. Osnovni uslov je konto. Npr. ako želite da definišete vrednost pod nazivom "Potraživanja od kupaca", u izrazu biste definisali promenljivu <SO>, a za konto biste uneli npr. 201%. Već vidite da se u definisanju uslova mogu koristiti standardni "džoker" znakovi % i _, kao i u svim filterima programa. Međutim, ovi sulovi imaju još i jednu dodatnu mogućnost: nabrajanje. Za nabrajanje se kao separator koristi zarez. Polja prikazana bledo plavom bojom označavaju da je moguće nabrajanje uslova. Npr. za neku od vrednosti možda vam treba da obuhvatite više grupa konta, pa tako u polje za konto možete da unesete 52%,53%,56%,57%.

Poslednje polje u osnovnom listiću je "Uslov". Ovde se, prema potrebi, unosi dodatni SQL uslov, za slučaj da preko ponuđenih polja nije moguće formirati odgovarajući kriterijum. Npr. ovde možete uneti izraz nalog.brojb > 100, što bi uzelo u obzir samo stavke sa naloga čiji su brojevi veči od 100. Ovaj uslov mora odgovarati FROM sekciji upita koji se koristi za izračunavanje vrednosti, pomenutog u prethodnom tekstu. Dugmetom možete otvoriti prozor za unos uslova, sličan onom za unos izraza.

Kod određivanja uslova za vrednosti, nemojte postavljati suviše jaka ograničenja. Npr. polje "Proknjiženi nalozi" najbolje je da ostavite prazno, što znači da nema uslova po tome je li nalog proknjižen ili nije. Svaki ovako unet uslov odnosi se samo na tu vrednost. Kod formiranja konačnog izveštaja imaćete ponuđen filter sa istim ovim poljima, pri čemu će se tada unet uslov odnositi na kompletan izveštaj. Time ćete omogućiti da npr. jednom izlistate izveštaj samo za proknjižene, a drugi put za sve naloge. Ako taj uslov unesete u definisanju vrednosti, onda nećete moći da ga podešavate u izveštaju, jer će se ti uslovi međusobno preklapati.

Pored polja za postavljanje uslova u listiću <Osnovno>, postoje i dodatni listići:
<Vrste naloga> - navodite vrste naloga za koje se izračunava vrednost
<Analitike> - navodite konkretne analitike za koje se izračunava vrednost
<Šifre analitika> - navodite vrstu analitike i jednu ili niz šifara (nabrajanje sa zarezima) za koje se izračunava vrednost
<Grupe komitenata/org.jedinica> - navodite grupe komitenata ili org.jedinica za koje se izračunava vrednost
<Područja komitenata/org.jedinica> - navodite područja komitenata ili organizacionih jedinica za koja se izračunava vrednost

Svi uslovi koji se odnose na analitike imaju smi sl. samo ako je za vrednost definisan konto koji se vodi po analitikama.

A šta je sa vremenskim uslovima (datumi, meseci, godine)?
Definisanje uslova po vremenskim kriterijumima u većini slučajeva nema smi sl. uz definisanje vrednosti glavne knjige. Ovi se uslovi postavljaju tek prilikom konačnog formiranja izveštaja i primeniće se na sve vrednosti korišćene u izveštaju. Ako baš imate potrebu da pojedinačnu vrednost ograničite vremenski, možete iskoristiti polje "Uslov" i uneti takav kriterijum preko datuma stavke naloga (kolona stavkanalog.datum).

Provera vrednosti

Unetu vrednost možete odmah isprobati, odnosno proveriti rezultat izraza. U gornjem delu ovog prozora nalazi se filter za vremenske uslove (detalji o postavljanju vremenskih uslova opisani su u poglavlju Filter za vremenske uslove) i dugme <Izračunaj>. Klikom na ovo dugme u polju ispod njega dobićete prikazan rezultat izračunavanja vrednosti koja je trenutno aktivna na ekranu. Ako ste u filteru izabrali i vrstu analitike, iznosi po analitikama biće prikazani u posebnom prozoru koji se automatski otvara.

Definisanje vrednosti za upite iz više poslovnih godina

Filter za vremenske uslove podešen je na tekuću poslovnu godinu. Ako ga podesite na neku od prethodnih godina ili na vremenski period od više godina, a podaci za te godine se nalaze u drugim bazama, možete dobiti poruku o grešci kod izračunavanja vrednosti.

Prvi mogući razlog je da niste definisali baze podataka za svaku od tih poslovnih godina, što se obavlja u prozoru Baze po godinama.

Drugi je razlog nepostojanje definisane vrednosti glavne knjige u drugim bazama. Naime, vrednosti glavne knjige moraju biti definisane u svim bazama koje se koriste u izračunavanju. Ovo može delovati kao bespotrebno ponavljanje, ali ima svoj smisao. Kontni plan i način knjiženja se s vremenom menja. U bazi iz neke prethodne godine ista vrednost se možda mora definisati na drugi način. Npr. možda ste u dve različite baze imali drugačije organizovana analitička konta prihoda, pa morate drugačije definisati i konta za vrednost koja nosi naziv "Prihod od prodaje robe". Dakle, isiti je naziv vrednosti, ali su drugačiji uslovi, a možda i izraz za njezino izračunavanje. Sa druge strane, kod izveštaja koje sada napravite, a budete ih koristili u više sledećih godina, vrednosti će se same prenositi kod prenosa u iduću godinu, tako da ćete ih morati modifikovati samo u tekućoj poslovnoj godini i to samo kad dođe do neke promene u organizaciji kontnog plana.

Da bismo Vam olakšali ovaj posao, omogućili smo kopiranje vrednosti u druge baze dugmetom <Snimi u druge baze>. Klikom na ovo dugme otvara se prozor za izbor baza podataka. Selektujte sve baze u koje želite da iskopirate vrednost i nastavite dugmetom potvrdi. U slučaju da u odredišnoj bazi već postoje vrednosti sa istim nazivima, dobićete poruku sa izborom da li da ažurirate postojeće vrednosti ili kreirate nove, ali sa izmenjenim nazivima.

Kod snimanja vrednosti koje imaju definisane dodatne uslove (u posebnim listićima: vrste naloga, analitike itd.) treba imati na umu da su ovi uslovi vezani za podatke u toj bazi. Ti podaci ne moraju postojati u bazi u koju kopirate vrednosti. Ako ste npr. definisali uslov po analitici i uneli konkretnog komitenta, taj komitent možda ne postoji u odredišnoj bazi. Program će prilikom snimanja prikazati poruku sa upozorenjem da postoje definisani ovakvi uslovi. Možete da odaberete da se snimanje izvrši bez ovih uslova, a ako odaberete opciju da prenese i ove uslove, program će pokušati da ponađe odgovarajuće podatke u odredišnoj bazi i poveže uslove sa njima. Ako ih ne pronađe prijaviće grešku i snimanje će biti prekinuto. U tom slučaju, u odredišnoj bazi morate "ručno" uneti nedostajuće vrednosti, a zatim ponoviti snimanje.

Snimanje i učitavanje iz datoteke

Dugmetom <Snimi u datoteku> možete selektovane vrednosti da snimite u jednu datoteku, koja se posle može učitati u neku drugu bazu. Ovu mogućnost možete iskoristiti ako želite da vrednosti snimite u neku bazu koja nije dostupna sa tog računara (npr. nalazi se na nekoj udaljenoj lokaciji). Program nudi inicijalno ime datoteke posizvp_vred.dat, na tekućem direktorijumu aplikacije, ali ovo možete promeniti. Ovakva datoteka učitava se dugmetom <Učitaj iz datoteke>. Pored prenosa u drugu bazu, ova operacija je predviđena i za snimanje i ućitavanje vrednosti sa Internet lokacije za razmenu izveštaja.