Enačbe:
?-možnost direktnega vnosa zneskov na poročilo
B oznaki B sledi številka konta (sintetike, skupine ali razreda), katerega znesek v breme se upošteva v tej vrstici (npr. B400 +B401 +B4...)
D oznaki D sledi številka konta (sintetike, skupine ali razreda), katerega znesek v dobro se upošteva v tej vrstici (npr. +D751 + D751001 +D7...)
S oznaki S sledi številka konta (sintetike, skupine ali razreda), katerega saldo se upošteva v tej vrstici (npr. +S910+ S1200 -S120...)
# oznaki # sledi številka vrstice (ključa), katere vrednost se upošteva v tekoči vrstici. Številka ključa mora biti nižja od tekočega ključa. (npr. #001...)
$ oznaki $ sledi številka vrstice (ključa) iz drugega, arhiviranega obrazca. Številko arhiviranega obrazca se izbere ob obračunu obrazca.
V enačbi ni dovoljen znak *.
Zgled:
Obr. Ključ Opis Enačba
01 000 STROŠKI
01 001 Dnevnice potovanja +B4400+B4401
01 002 Drugi stroški +B400+B41+B42+B46
01 003 Skupaj +#001+#002
01 005 Stroški OD +B270
01 006 Planski stroški (#005)*0.1
01 008 Skupaj razno +#001+#002+#005
op.: Konta in besedila služijo zgolj v ilustracijo
Posebno si velja ogledati rubriko planski stroški. Tu je spremenjen obračun v 01, kar pomeni, da se rezultat iz vrstice 005 množi s planskim faktorjem 10%.
Rezultat izračuna ob izbranih začetnih pogojih je:
STROŠKI:
Stroškovno mesto: 0001
Dnevnice potovanja 100.00 250,00
Drugi stroški 200.00 600,00
Skupaj 300.00 850,00
Stroški OD 1500.00 10000,00
Planski stroški 150.00 1000,00
Skupaj razno 450.00 1850,00
POSEBNE FUNKCIJE IN OPERATORJI
V obrazcih se lahko uporabljajo vse numerične funkcije, ki jih nudi FoxPro. Navedene so najpogostejše:
iif funkcija za pogoj: npr. iif(#001<>0, #004/#001,0) (če je ključ 001 različen od 0 potem podeli ključ 004 s ključem 001, drugače izpiši 0)
< manjši in se uporablja v funkcji iif
> večji in se uporablja v funkcji iif
= enak in se uporablja v funkcji iif
>= večji ali enak in se uporablja v funkcji iif
<= manjši ali enak in se uporablja v funkcji iif
<> ni enak in se uporablja v funkcji iif
Pravila priprave obrazca:
Obrazec : interna dvomestna oznaka obrazca, ki je skupna vsem postavkam na istem Obrazcu (uporabljajo se lahko številke in/ali črke)
Ključ : zaporedna trimestna številka pozicije, na katero se je možno sklicevati tudi v formulah.
Ključ 000 je naslovna vrstica obrazca in je obvezna za vnos, saj ta številka določa nov obrazec in njegov naziv.
Enačba pri tem ključu mora biti vedno prazna.
Opis : poljubno besedilo podatkov iz posamezne vrstice, ki se izpiše pred izračunanim zneskom. Tekstovno polje
Enačba : za enačbo se lahko vnese poljuben matematični izraz z vsebovanimi konti. Veljajo spodaj našteta pravila:
B-breme, D-dobro, S-saldo, matematični znaki (+-*/), logični znaki.
V obrazec se lahko vključi funkcijo select, ki pripravi podatke iz drugih knjigovodstev, pri čemer pa se ne upoštevajo omejitve vstopne
maske. Primer:
SELECT sum(breme-dobro) from OS_VKNJIZ1 where datv>='20070101' and datv<'20090630' and konto LIKE '020%' and strm like
'60%'
Obračun : vrsta obračuna (00 ali prazno je osnova)
Pogoj : dodatni pogoj, kjer je mogoče določiti stroškovno mesto (iz knjižb v glavni knjigi), simbol (iz knjižb v glavni knjigi), klasifikator konta (iz kontnega načrta)
B\D : polje služi kot pogoj pri opciji za pripravo temeljnice iz s podatki pridobljenimi na podlagi enačb iz obrazcev.
Z izborom med B-breme, D - dobro določimo v katero polje se bo zapisal znesek na temeljnici.
Konto : polje služi kot pogoj pri opciji za pripravo temeljnice iz obrazcev v meniju Poročila \ Obrazci. Določi se konto, podatek za konto
se zapiše na pripravljeno temeljnico.
Oblika dob. : Oblika prikaza vrstice v poročilu na Reporting services. Možnosti so:
(prazno) - navadno
B - poudarjeno (Bold)
I - ležeče (Italic)
N - Negativno poudarjeno
P - Pozitivno poudarjeno
Obdobje : polje služi kot pogoj pri opciji za pripravo temeljnice iz obrazcev v meniju Poročila \ Obrazci. Možnost izbite je:
0 - ni določeno
1 - otvoritev
2 - obdobje
3 - skupaj
Stroškovno mesto : Šifra stroškovnega mesta nastale knjižbe temeljnice
Projekt : Šifra projekta za nastalo knjižbo temeljnice
Poizvedba : vpis select stavka za posamezno vrstico (ključ) - z dvojnim klikom na sivo polje v desni polovici ekrana
Pravila pri uporabi SQL stavkov
Od SQL ukazov se v obrazcih sme uporabljati le
select, ki izbere podatke iz poljubne tabele. Ob tem je potrebno upoštevati sledeča pravila:
1. Na tabeli se upošteva samo vrednost prvega zapisa prvega polja. Rezultat poizvedbe mora biti samo eno polje numeričnega tipa. Ime tabele mora biti zapisano
pravilno npr. gk_vknjiz1, vp_vknjiz1.
2. Prvo polje mora biti vedno numeričnega tipa. Drugih polj program ne upošteva. (select sum(znesek)...)
3. Vedno mora biti rezultat en zapis (record). Zato je potrebno uporabiti operatorje sum(), avg(), min(), max() ali združevanje group by..
4. Če se uporablja več tabel, potem je obvezno treba vzpostaviti relacije z where, left right, inner ali outer join.
5. Nikoli se ne uporablja ukaza INTO (INTO TABLE, CURSOR)... Program ta ukaz doda sam. Uporabi into cursor.
Nekatere spremenljivke, ki se lahko uporabljajo v select stavku:
- ?datv0 .. datum otvoritve (01.01. leta datuma od)
- ?datv1 .. prvi datum obdobja, ki bo/je bil vnešen pred izpisom kot pogoj.
- ?datv2 .. zadnji datum obdobja, ki bo/je bil vnešen pred izpisom kot pogoj.
- ?strm1 .. stroškovno mesto ki bo/je bil vnešen pred izpisom kot pogoj.
- ?simb1 .. simbol, ki bo/je bil vnešen pred izpisom kor pogoj.
Posebne funkcije:
CasovniInterval(datum) ..
Funkcijo se uporabi za izpis v vseh treh rubrikah (otvoritev, promet do, promet obdobja). V argument se doda ime polja iz tabele, ki mora biti datumskega tipa. Program doda tri različne pogoje in stavek izvaja trikrat. Pogoji so: datum=?datv0, datum>datv0 and datum<m.datv1 in zadnji datum>=datv1 and datum<=?datv2. Funkcijo se lahko vključi v pogoj where.
ZGLED: SELECT sum(breme) from gk_vknjiz1 WHERE CasovniInterval(datv) and konto='120%'
Nekaj zgledov:
1. Promet v breme v glavni knjigi:
SELECT sum(BREME) from GK_VKNJIZ1 where CasovniInterval(datv)
2. Fakturirano v obdobju na kontu 1200:
SELECT sum(BRUTO) from FA_FA_GL where CasovniInterval(datv) and konto like '1200%'
3. Število rednih delovnih ur na ključu 001 v letu LLLL:
SELECT sum(URE) from OD_DENAR where kljuc='001' and mesec like 'LLLL%'
4. Največje prejeto plačilo na TRR na kontu domači kupci:
SELECT max(dobro) from SAK_SALK1 where konto like '120%' and CasovniInterval(datv)
5. Začetno stanje na računu pred datumom iz vstopne maske obrazca:
SELECT sum(breme-dobro) from gk_vknjiz1 where datv>=?datv0 and datv<?datv1 and (konto like '11%' or konto like '10%')