mojaSymfonia FORUM
https://forum.mix-soft.pl/

niepoprawne dzialanie raportow dla niektorych kontahentow
https://forum.mix-soft.pl/viewtopic.php?f=2&t=3852
Strona 1 z 2

Autor:  symfhan09 [ 2012-03-21, 17:14 ]
Tytuł:  niepoprawne dzialanie raportow dla niektorych kontahentow

handel 2011.1a z perv. mam problem z raportem pokazujacym liste z nieuregulowanymi fakturami i raportem listujacym ostatnie pozycje z faktur (oba pokazuja dokumenty ze wszystkich firm, z ktorych klient otrzymal ode mnie jakis towar). niespodziewanie kilka dni temu raporty zaczely sie zawieszac (pod sam koniec), ale tylko dla jednego kontrahenta (starego). dzisiaj problem pojawil sie dla kolejnego (rowniez starego)... a ten pierwszy po kilku dniach znow dziala. nic z tego nie rozumiem. z autorem dodatkow nie mam niestety kontaktu. co moge sprawdzic, zeby ktos byl w stanie mi tutaj pomoc ?

Autor:  wrob [ 2012-03-21, 17:38 ]
Tytuł:  Re: niepoprawne dzialanie raportow dla niektorych kontahento

A masz zrodla tych dodatkow ?

Autor:  symfhan09 [ 2012-03-21, 17:57 ]
Tytuł:  Re: niepoprawne dzialanie raportow dla niektorych kontahento

co rozumiesz przez zrodla :?: :oops:

Autor:  wrob [ 2012-03-21, 18:00 ]
Tytuł:  Re: niepoprawne dzialanie raportow dla niektorych kontahento

No czy masz niezakodowany kod źródłowy tych dodatków (w ambasicu) :)

Autor:  symfhan09 [ 2012-03-21, 18:08 ]
Tytuł:  Re: niepoprawne dzialanie raportow dla niektorych kontahento

tak, mam wszystko niekodowane. jak wylaczam raport to wywala mi jakis blad w include xxxx (nazwa firmy :P). ale to moze blad zwiazany z przerwaniem raportu recznie (sam nie wyskakuje). najbardziej dziwi mnie fakt, ze wszystko dzialalo ok od kilkunastu miesiecy bez zmian ani czy to w raportach czy to w danych kontrahenta. zapewne powinienem wkleic czesc kodu, ktora "sieje bledami" ?

Autor:  Misiek [ 2012-03-21, 21:56 ]
Tytuł:  Re: niepoprawne dzialanie raportow dla niektorych kontahento

Załącz cały raport - będzie można sprawdzić go na bazach, które posiadamy do testów... Jeżeli będzie pracował u nas prawidłowo, winna może być Twoja baza.... czyli Kopia bezpieczeństwa i własnoręczne diagnostyki raportowe LUB zlecenie diagnostyki specjaliście od Symfonii, który je przetworzy i naprawi.

Autor:  symfhan09 [ 2012-03-22, 12:42 ]
Tytuł:  Re: niepoprawne dzialanie raportow dla niektorych kontahento

jak mozna zachowac formatowanie (wciecia) ?

//"niep2.sc","Nieuregulowane płatności",12604,0,2.2.8,SYSTEM
//"Raporty",1,14,62

#define bezNaglowka

#include "Formatowanie wydruków"
#include "xxxx - include"
Limit 18000
mapvalue l_ipn
l_ipn.type(long)
l_ipn.clear()

String mindata = "2000-01-01"

int spoznienie
int quickmode = 0
String pobranie
String notatka = ""
int isNotatka = 1




//*********************************************************************************
//********************************************************************************* PRINTOUT
//*********************************************************************************


nazwaRaportu = "Nieuregulowane płatności - wybrani kontrahenci" //nazwa raportu w nagłówku

int nc,tl,tr,tc,lp,nv,nvv
if !typWydruku then
str.wydruk ( 0, -1, 0 )
strona 100,130,50,20
nc = Styl ( "nagłówek",0 )
nv = Styl ( "nagłówek",-1 )
nv = Styl (Font (36,B,"Arial CE"),-1,"Styl1")
nvv = Styl (Font (36,B,"Arial CE"),1,"Styl1")
tl = Styl ( "tekst",-1 )
tc = Styl ( "tekst",0 )
tr = Styl ( "tekst",1 )
else
str.wydruk ( 1, -1, 1 )
strona 50,130,50,100
nc = Styl ( "10cpi",0 )
nv = Styl ( "10cpi",-1 )
nvv = Styl ( "10cpi",1 )
tl = Styl ( "10cpi",-1 )
tc = Styl ( "10cpi",0 )
tr = Styl ( "10cpi",1 )
endif

float wi = str.szer/100
int aKolTab(7) = wi*13,wi*17,wi*13,wi*11,wi*12,wi*12,wi*19
int aKolTab2(1) = wi*100
int aStylTabH(7) = nc,nc,nc,nc,nc,nc,nc
int aStylTabH2(1) = nv
int aStylTabH3(7) = tl,nc,nc,nc,nc,nvv,nc
int aStylTab(7) = tc,tc,tc,tc,tr,tr,tc
int tblH = tabela 7,7,aKolTab,aStylTabH
int tab1 = tabela 1,7,aKolTab,aStylTab
int tab2 = tabela 0,1,aKolTab2,aStylTabH2
int tab3 = tabela 0,7,aKolTab,aStylTabH3


int sub Opis(int pierwszy)
tabela #tblH, od 0,#Y+10
kolumna 1,"Z dnia"
kolumna 2,"Faktura"
kolumna 3,"Termin"
kolumna 4,"Spóźnienie"
kolumna 5,"Na kwotę"
kolumna 6,"Do zapłaty"
kolumna 7,"Uwagi"
koniec
endsub


int sub Podsumowanie(int ostatni)
endsub




String kodkh




//*********************************************************************************
//********************************************************************************* START ***********
//*********************************************************************************

int bylafirma,cntr, i, xxxx, currFirma
string mykod, term, dat, fNip
int pomin,bylorazem, licz
float dozap, nakwo
String pout
String kontrah(1)
Long kontrahi(1), id_kth
int ui,h, err
float nk,dz,fp
string da
int byldruk
float potall, potpob, potpoz
float total
String entry
int pdni, ping = 0


// robimy listy kodow i id kontrahenta

if (Arg0 == "OnKhChanged") then
quickmode = 1
kontrah(1) = Arg1
kontrahi(1) = val(Arg2)
isNotatka = val(Arg5)
grow kontrah,1
grow kontrahi, 1
else
//wybierz kod i id kontrahenta z bufora lub z dokumentow
err = SetTaggedPos(FS)
ui=1
while err
buf = getLine()
kontrah(ui) = Find Regular "\t*\t"
kontrah(ui) = mid(kontrah(ui),2,len(kontrah(ui))-2)
kontrahi(ui) = GetLineId()
grow kontrah, 1
grow kontrahi, 1
ui += 1
err = SetTaggedPos(NX)
wend
if size(kontrah) > 21 then
message "Można wskazać maksymalnie 20 kontrahentów!"
error ""
endif
endif


for i= 1 to i >= size(f)
bdk(i) = Open f(i) + "51dk.dat" for base "DK"
BaseError( bdk(i), 4 )
bbd(i) = Open f(i) + "51bd.dat" for base "BD"
BaseError( bbd(i), 4 )
bipn(i) = Open f(i) + "5ipn.dat" for base "IPN"
BaseError( bipn(i), 4 )
bpn(i) = Open f(i) + "51pn.dat" for base "PN"
BaseError( bpn(i), 4 )
bkh(i) = Open f(i) + "51kh.dat" for base "KH"
BaseError( bkh(i), 4 )
bZZ(i) = Open f(i) + "51zz.dat" for base "ZZ"
BaseError( bZZ(i), 4 )
bXT(i) = Open f(i) + "51xt.dat" for base "XT"
BaseError( bXT(i), 4 )
bNT(i) = Open f(i) + "51nt.dat" for base "NT"
BaseError( bNT(i), 4 )

SetKey(bkh(i),"id")
SetKeySeg(bkh(i),"id", 1)
GetRec(bKH(i), EQ)
if GetField(bKH(i),"kod") == "xxxx" then
xxxx = i
endif
if quickmode > 0 then
if GetField(bKH(i),"kod") == Arg4 then
currFirma = i
endif
endif
next i



Header(1)
for h = 1 to h > 1
for ui = 1 to ui >= size(kontrah) //dla kazdego z konrahentow..
mykod = kontrah(ui)
id_kth = kontrahi(ui)
Popup(1,"Przetwarzanie kontrahenta: " + mykod)
for i = 1 to i >= size(f)
Popup(2,"Firma: " + (using "%L", i))
pomin = 0
if i != xxxx then
Popup(3,"Wyszukiwanie kontrahenta")
SetKey(bKH(i),"kod")
SetKeySeg(bKH(i),"typi", 0)
SetKeySeg(bKH(i),"kod", mykod)
err_kh=GetRec(bKH(i), EQ)
if !err_kh then
id_kth = GetField(bKH(i),"id") //mamy ID kontrahenta w bazie konkretnej firmy
else
pomin = 1
print lf + "Dla " + f(i) + " nie znaleziono kontrahenta o kodzie " + mykod + lf
//message "Dla " + f(i) + " nie znaleziono kontrahenta o kodzie " + mykod
endif
if !pomin then
Popup(3,"Przeszukiwanie płatności")
SetKey(bipn(i),"khid")
SetKeySeg(bipn(i),"khid", id_kth)
SetKeySeg(bipn(i),"rodzaji", 0) //0-platnosc, 1-rozrachunek
SetKeySeg(bipn(i),"termin", mindata)
err_ipn=GetRec(bipn(i), GE)
while !err_ipn //tworzymy liste wszystkich niezaplaconych pozycji
//message kwota(GetField(bipn(i),"khid")) + kwota(id_kth) + kwota(GetField(bipn(i),"rodzaji"))
if GetField(bipn(i),"khid")==id_kth && GetField(bipn(i),"rodzaji")==0 then
if round(GetField(bipn(i),"kwota"),2)!=0 then
pobranie = ""
Popup(4,"Pobieranie dodatkowych danych")
SetKey(bpn(i),"id")
SetKeySeg(bpn(i),"id", GetField(bipn(i),"id"))
err_pn = GetRec(bpn(i), EQ)
if !err_pn then
SetKey(bDK(i),"id")
SetKeySeg(bDK(i),"id", GetField(bpn(i),"dkid"))
err_dk = GetRec(bDK(i), EQ)
if !err_dk then
SetKey(bZZ(i),"id")
SetKeySeg(bZZ(i),"id",GetField(bDK(i),"formaplatn"))
err_zz = GetRec(bZZ(i), EQ)
if !err_zz then
SetKey(bXT(i),"id")
SetKeySeg(bXT(i),"id",GetField(bZZ(i),"id1"))
err_xt = GetRec(bXT(i), EQ)
if !err_xt then
pobranie = GetField(bXT(i),"nazwa")
endif
endif
endif
entry = GetField(bdk(i),"data")
entry += "###"+(using "%l",GetField(bIPN(i),"id"))
entry += "##" + (using "%l",i)
// entry += "#fp#"+(using "%l",GetField(bDK(i),"formaplatn"))
entry += "#tp#"+GetField(bDK(i),"plattermin")
entry += "#da#"+GetField(bDK(i),"data")
entry += "#ko#"+GetField(bDK(i),"kod")
entry += "#nk#"+(using "%f.6",GetField(bDK(i),"netto") + GetField(bDK(i),"vat"))
entry += "#dz#"+(using "%f.6",GetField(bPN(i),"kwota"))
entry += "#po#"+pobranie
l_ipn.get( entry,0)+=1
endif
Popup(4,"")
endif
else
exit
endif
err_ipn=GetRec(bipn(i), NX)
wend
// dodatkowo dorzucamy dokumenty z bufora (dla dokumentow w buforze nie ma jeszcze utworzonych płatności)
Popup(3,"Przeszukiwanie bufora")
SetKey(bBD(i),"kh")
SetKeySeg(bBD(i),"khid", id_kth)
//SetKeySeg(bBD(i),"subtypi", 0) //0-platnosc, 1-rozrachunek
SetKeySeg(bBD(i),"data", "1001-01-01")
err_bd=GetRec(bBD(i), GE)
while !err_bd
if (quickmode == 0) || ((quickmode > 0) && ((i != currFirma) || (GetField(bBD(i),"id") != val(Arg3)))) then

if (GetField(bBD(i),"typi") == 0) && (GetField(bBD(i),"khid") == id_kth) then //tylko dok.sprzedaży
pobranie = ""
SetKey(bZZ(i),"id")
SetKeySeg(bZZ(i),"id",GetField(bBD(i),"formaplatn"))
err_zz = GetRec(bZZ(i), EQ)
if !err_zz then
SetKey(bXT(i),"id")
SetKeySeg(bXT(i),"id",GetField(bZZ(i),"id1"))
err_xt = GetRec(bXT(i), EQ)
if !err_xt then
pobranie = GetField(bXT(i),"nazwa")
endif
endif
entry = GetField(bBD(i),"data")
entry += "###"+"0"
entry += "##" + (using "%l",i)
// entry += "#fp#"+(using "%l",GetField(bBd(i),"formaplatn"))
entry += "#tp#"+GetField(bBD(i),"plattermin")
entry += "#da#"+GetField(bBD(i),"data")
entry += "#ko#"+GetField(bBD(i),"kod") + "/bufor"
entry += "#nk#"+(using "%f.6",GetField(bBD(i),"netto") + GetField(bBD(i),"vat"))
entry += "#dz#"+"------"
entry += "#po#"+pobranie
l_ipn.get( entry,0)+=1
endif
endif
err_bd=GetRec(bBD(i), NX)
wend
if ((quickmode == 1) && (len(notatka) == 0 || i == currfirma)) then
Popup(3,"Wyszukiwanie notatki")
SetKey(bNT(i),"super")
SetKeySeg(bNT(i),"typi", 0)
SetKeySeg(bNT(i),"baza", 20)
SetKeySeg(bNT(i),"super", id_kth)
err_nt = GetRec(bNT(i),EQ)
if (err_nt == 0) then
notatka = GetField(bNT(i),"opis")
endif
endif
endif //pomin
endif
next i


Popup(3,"Sortowanie")
l_ipn.Sort(-1)

if l_ipn.size() > 0 then
Tabela #TAB2, od 0, #Y-30*bylorazem + 10
print mykod
koniec
ping += 1
bylorazem = 0

for licz=1 to licz>l_ipn.size()
buf=l_ipn.getkey(licz)
spoznienie = 0
if find regular "^{*}/#/#/#{*}/#/#{*}/#tp/#{*}/#da/#{*}/#ko/#{*}/#nk/#{*}/#dz/#{*}/#po/#{*}$" then
popup(3,"Ustalanie spóźnienia")
term = (regular 4)
dat = data()
if term < dat then //spoznienie
while DataDni(term, spoznienie) < dat
spoznienie += 100
wend
while DataDni(term, spoznienie) > dat
spoznienie -= 10
wend
while DataDni(term, spoznienie) < dat
spoznienie += 1
wend
endif
popup(3,"Wydruk")
Tabela #TAB1 //druk
byldruk = 1
Kolumna 1
print (regular 5)
Kolumna 2
print (regular 6)
Kolumna 3
print term
Kolumna 4
if spoznienie > 0 then
print (using "%L", spoznienie)
if spoznienie == 1 then
print " dzień"
else
print " dni"
endif
else
print " - "
endif
Kolumna 5
nk = val(regular 7)
print kwota(nk) + " "
Kolumna 6
if (regular 8) == "------" then
dz = nk
else
dz = val(regular 8)
endif
print kwota(dz) + " "
total += dz
Kolumna 7
print (regular 9)
if ((regular 9) == "przelew") then
pdni = 0
term = (regular 5)
dat = (regular 4)
if term < dat then
while DataDni(term, pdni) != dat
pdni += 1
wend
endif
print " " + (using "%L", pdni)
if pdni == 1 then
print " dzień"
else
print " dni"
endif
endif

if spoznienie>0 then
potall += dz
if ((regular 9) == "za zaliczeniem pocztowym") then
potpob += dz
else
potpoz += dz
endif
endif
koniec
nakwo += nk
dozap += dz
cntr += 1
endif
next licz
endif

l_ipn.clear()
if cntr > 1 then
Tabela #TAB3
Kolumna 1
// print "Razem:"
Kolumna 6
print kwota(dozap) + " "
koniec
bylorazem = 1
endif
cntr = 0
nakwo = 0
dozap = 0
next ui
next h
if ping > 1 then
print "-------------------------------------------------------------------------------" + LF
Tabela #TAB3
Kolumna 1
print "Łącznie:"
Kolumna 6
print kwota(total) + " "
koniec
endif

for i= 1 to i >= size(f) //zamykamy bazy
Close(bdk(i))
Close(bbd(i))
Close(bipn(i))
Close(bpn(i))
Close(bkh(i))
Close(bzz(i))
Close(bxt(i))
Close(bnt(i))
next i

if ((len(notatka) > 0) && (isNotatka == 1)) then
print LF + "NOTATKA: " + notatka + LF
byldruk = 1
endif
if !byldruk then NoOutput()

Autor:  krzysiek [ 2012-03-22, 13:04 ]
Tytuł:  Re: niepoprawne dzialanie raportow dla niektorych kontahento

Może dołączając plik txt a nie wklejając raport.

masz tam jeszcze 'includa' czyli drugi raport #include "xxxx - include" który bierze udział w tworzeniu zestawienia.

Przy okazji jak już go wrzucisz, społeczność forumowa pewnie podziękuje Ci za darmowy raport do HMP :-P

Autor:  symfhan09 [ 2012-03-22, 13:21 ]
Tytuł:  Re: niepoprawne dzialanie raportow dla niektorych kontahento

milo, ze moge cos dac spolecznosci od siebie :mrgreen: ;-) przy probie dolaczenia .txt, .odt czy .rtf uzyskuje info, ze to zabronione.

Autor:  krzysiek [ 2012-03-22, 16:06 ]
Tytuł:  Re: niepoprawne dzialanie raportow dla niektorych kontahento

Może ta baza już sie po prostu nie wyrabia? Może by ją przeindeksować od nowa?

Masz tam takie coś:

String mindata = "2000-01-01"

i wygląda ze raport zawsze przegląda ten okres - czy baza jest taka stara? Czy mogą być tak stare nie rozliczone dokumenty? Czy przeglądanie wymaga zawsze patrzenia tak daleko wstecz?

To tak na pierwszy rzut oka bo przy 22 linijce sie znudziłem ;)

Autor:  symfhan09 [ 2012-03-22, 16:39 ]
Tytuł:  Re: niepoprawne dzialanie raportow dla niektorych kontahento

dokumenty zaczynaja sie dopiero od 2003, wiec jesli to wielkosc bazy to musialbym ja mocno ograniczyc, zbey wyrznie ja zmniejszyc (?). dokumentow wystawiam niewiele, bo moze ok. 1500 faktur rocznie. sa mocno przeterminowane dokumnety, ale jest ich niewiele. najbardziej dziwi mnie, ze bez jakichkolwiek modyfikacji i dla starych kontrahentow (i to na razie tylko dwoch) pojawil sie problem. jak przeprowadzic to indeksowanie, sprawdzenie bledow ? wiem tylko jak zaczac... od kopii bezpieczenstwa :mrgreen:

Autor:  Misiek [ 2012-03-22, 21:13 ]
Tytuł:  Re: niepoprawne dzialanie raportow dla niektorych kontahento

Znajdź w Symfonii raport "xxxx - include" i wrzuć go na forum. Chciałbym przetestować ten raport ma żywym organizmie...

Autor:  symfhan09 [ 2012-03-23, 14:19 ]
Tytuł:  Re: niepoprawne dzialanie raportow dla niektorych kontahento

nadal nie wiem jak wkleic, zeby zachowac formatowanie :oops:

//"xxxxin.sc","xxxx - include",2400,0,1.0.0,SYSTEM
//"Raporty",1,14,62


string xxx_gls = ". GLS" // "Lista dokumentów z pozycjami xxxx"
string xxx_pobranie = "pobranie" // "Lista dokumentów z pozycjami xxxx"

String pomijane(5) // "Faktury z faktur"
..."

Record cennikxxx
String kod[40]
float cena
endrec

cennikxxx cenniki(15) // "Faktury z faktur"

...




string f(1) //lista nazw wszystkich firm

string serial = getSerialNumber()
string pINI=katalog()+"xxxx.INI"
string sSekcja="USTAWIENIA"
int counterxxxIni = val(GetIni (sSekcja, "Licznik", pINI))
int ixxxIni
if (counterxxxIni > 0) && (size(f) == 1) then
for ixxxIni = 1 to ixxxIni > counterxxxIni
f(size(f)) = GetIni( sSekcja, "F" + (using "%L",ixxxIni), pINI)
grow f,1
next ixxxIni
else
f(1) = katalogfirmy()
endif

int bKH(Size(f))
int bDP(Size(f))
int bDK(Size(f))
int bZZ(Size(f))
int bXT(Size(f))
int bBD(Size(f))
int bBP(Size(f))
int bTW(Size(f))
int bPN(Size(f))
int bIPN(Size(f))
int bIDK(Size(f))
int bMG(Size(f))
int bBM(Size(f))
int bMZ(Size(f))
int bBZ(Size(f))
int bSM(Size(f))
int bNT(Size(f))
int bRL(Size(f))

int err_kh, err_dp, err_dk, err_zz, err_xt, err_bd, err_bp, err_tw, err_pn, err_ipn, err_nt, err_sm, err_bz, err_mz, err_bm, err_mg, err_idk, err_rl


Record faktura
long idF
string dataF[12]
string terminF[12]
string kodF[40]
string firmaF[100]
string formaplatnF[40]
int anulowana
int buf
float nettoF
float vatF
float bruttoF
string dataR[12]
int liczbaR
endrec


Record platnosc
long idP
string dataP[12]
string kodP[40]
float wart
long idF
string kodF[40]
endrec


Record pozycja
long idP
long idFakturyP
string kodFakturyP[40]
long idTowaruP
string nazwaP[40]
float iloscP
float cenaP
int lpP
string formaP[40]
long superP
long idPozKorygP
string dataP[12]
string terminP[12]
string dataR[12]
float rabatP
int anulowana
int buf
string kodP[40]
float wartNettoP
float wartVatP
float wartTowaruP
endrec

Record towar
string kod[40]
int typi
string nazwa[40]
string longnazwa[250]
float cbazowa
float cenaa
float cenab
float cenac
float cenad
string sww[20]
string jm[8]
string kodvat[100]
string rodzaj[100]
endrec




//----------------------------------------------------
string sub DataDni(string OdDaty, int LiczbaDni)
//----------------------------------------------------
int dni_wmiesiacu(12) = 31,28,31,30,31,30,31,31,30,31,30,31
int lata_przestepne(11) = 1980,1984,1988,1992,1996,2000,2004,2008,2012,2016,2020
int dzien = val(mid(OdDaty,9,2))
int miesiac = val(mid(OdDaty,6,2))
int rok = val(mid(OdDaty,1,4))
int petla
dzien = dzien + LiczbaDni
if LiczbaDni < 0 then
while dzien <= 0
miesiac -= 1
if miesiac == 0 then
rok -= 1
miesiac = 12
endif
dzien = dzien + dni_wmiesiacu(miesiac)
if miesiac == 2 then
for petla = 1 to petla > size(lata_przestepne)
if rok == lata_przestepne(petla) then dzien += 1
next petla
endif
wend
else
while dzien > dni_wmiesiacu(miesiac)
dzien = dzien - dni_wmiesiacu(miesiac)
if miesiac == 2 then
for petla = 1 to petla > size(lata_przestepne)
if rok == lata_przestepne(petla) then dzien -= 1
next petla
endif
miesiac += 1
if miesiac == 13 then
rok += 1
miesiac = 1
endif
wend
endif
DataDni = (using "%.4d",rok) + "-" + (using "%.2d",miesiac) + "-" + (using "%.2d",dzien)
endsub

#define KOREKTA 0x0200


int sub AktualizujDateWystawienia(long id)
BaseAll bd
BaseAll bp
int err
BeginTrans()
bd.SetBase("BD")
bd.Open()
bp.SetBase("BP")
bp.Open()
bd.SetKey("id")
bd.SetKeySeg("id",id)
err=bd.GetRec(EQ)
if err then message "Błąd nr " + (using "%L", err)
if ((bd.GetField("iddokkoryg") == 0) && (bd.GetField("znaczniki") != 67)) then //jezeli korekta, to nie zmieniamy daty
if bd.GetField("data") != Data() then
bd.SetField("data",Data())
err=bd.Update()
if err then AbortTrans() : message "Błąd podczas zmiany daty wystawienia na dokumencie!"
endif
if bd.GetField("datarej") != Data() then
bd.SetField("datarej",Data())
err=bd.Update()
if err then AbortTrans() : message "Błąd podczas zmiany daty wejścia na dokumencie!"

//zmieniamy w buforze pozycji
bp.SetKey("super")
bp.SetKeySeg("super",Id)
bp.SetKeySeg("lp",0)
err=bp.GetRec(GE)
while !err && bp.GetKeySeg("super")==id
bp.SetField("datarej",Data())
if bp.Update() then AbortTrans() : message "Błąd podczas zmiany daty wejścia w pozycjach dokumentu!"
err=bp.GetRec(NX)
wend
endif
endif
EndTrans()
bd.Close()
bp.Close()
endsub

int sub AktualizujDateSprzedazy(long id)
BaseAll bd
int err

bd.SetBase("BD")
bd.Open()
BeginTrans()
bd.SetKey("id")
bd.SetKeySeg("id",id)
err=bd.GetRec(EQ)
if err then message "Błąd nr " + (using "%L", err)
if ((bd.GetField("iddokkoryg") == 0) && (bd.GetField("znaczniki") != 67)) then //jezeli korekta, to nie zmieniamy daty
if bd.GetField("datasp") != Data() then
bd.SetField("datasp",Data())
err=bd.Update()
if err then AbortTrans(): message "Błąd podczas zmiany daty sprzedaży na dokumencie!"
endif
endif
if ( bd.GetField("znaczniki") == 67) then
bd.SetField("znaczniki",0)
err=bd.Update()
if err then AbortTrans(): message "Błąd podczas usuwania znacznika dokumentu!"
endif
EndTrans()
bd.Close()
endsub

Autor:  symfhan09 [ 2012-03-26, 17:38 ]
Tytuł:  Re: niepoprawne dzialanie raportow dla niektorych kontahento

nikt :?: :-(

Autor:  Misiek [ 2012-03-26, 23:12 ]
Tytuł:  Re: niepoprawne dzialanie raportow dla niektorych kontahento

Spokojnie ;-) jest początek tygodnia - rozkręcamy się ;-D

Strona 1 z 2 Strefa czasowa UTC+1godz. [letni]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/