jeżeli potrzebne są Ci dekretacje na dokumencie KP i KW (nie wiem po co - nie pytam), proponuję następujące modyfikacje standardowych raportów Kasa przyjmie i Kasa wyda.
Użyjemy funkcji Dekretacje() drukującej dekretacje na dokumentach sprzedaży.
Raporty → Dokumenty → Dokumenty płatności → Kasa przyjmie
pod :
Kod:
int GRAF = !Val( Arg0 )
long iddok = Val( Arg1 )
wpisz
Kod:
#define BAZAPN 32
Obliczenia obl
obl.Add(BAZAPN, iddok)
int Sub Dekretacje()
string sWN, sKwota, sMA, sKw, sKnt
int y,tbl2,j
int bc = Styl ( "nagłówek", 0, "bc" )
y = str.Pozycja(#B)+50
tbl2 = tabela 1,4004, 200,bc,250,bc,200,bc
if GRAF then
ramka od 0,y,650,10,0,1//nGray
else
print "\n"
ramka od 0,#Y,str.szer,10,0
endif
tabela #tbl2, od 0,0
kolumna 1, "WN"
kolumna 2, "Kwota"
kolumna 3, "MA"
koniec
koniec
tbl2 = tabela 1,4004, 200,nc,250,kr,200,nc
if obl.GetFirstZap() then
j=0
Do
if j == obl.PozycjaZap then
if sKw == kwota(obl.KwotaZap) && sKnt != obl.StronaZap then
if obl.StronaZap=="WN" then
buf = sWN
delete regular "\n$"
sWN = buf
sWN += obl.KontoZap + LF
else
buf = sMA
delete regular "\n$"
sMA = buf
sMA += obl.KontoZap + LF
endif
sKw = ""
sKnt = ""
else
sKWota += kwota(obl.KwotaZap) + LF
sKw = kwota(obl.KwotaZap)
sKnt = obl.StronaZap
if obl.StronaZap=="WN" then
sWN += obl.KontoZap + LF
sMA += LF
else
sMA += obl.KontoZap + LF
sWN += LF
endif
endif
else
ramka od 0,#Y,str.szer,10,0
tabela #tbl2, od 0,0
kolumna 2, sKwota
sKwota = ""
kolumna 1, sWN
sWN = ""
kolumna 3, sMA
sMA = ""
koniec
koniec
sKWota += kwota(obl.KwotaZap) + LF
sKw = kwota(obl.KwotaZap)
sKnt = obl.StronaZap
if obl.StronaZap=="WN" then
sWN += obl.KontoZap + LF
sMA += LF
else
sMA += obl.KontoZap + LF
sWN += LF
endif
endif
j=obl.PozycjaZap
Loop While ( obl.GetNextZap() )
ramka od 0,#Y,str.szer,10,0
tabela #tbl2, od 0,0
kolumna 2, sKwota
sKwota = ""
kolumna 1, sWN
sWN = ""
kolumna 3, sMA
sMA = ""
koniec
koniec
endif
EndSub
na końcu raportu przed
wpisz
[center]
[/center]