|
|
Strona 1 z 1
|
[ Posty: 5 ] |
|
Raport pomija dokumenty z listy - Dla czego??
Autor |
Wiadomość |
wojtek
Rejestracja: 2010-02-10, 21:24 Posty: 260 Pomógł: 4
|
Raport pomija dokumenty z listy - Dla czego??
System Symfoni ERP 2015 Poniżej zamieszczam treść raportu, który napisałem. Jego zadaniem jest dla dokumentów zakupu w buforze: 1.Uzupełnić datę i numer obcy, 2.Wystawić dokument handlowy, 3.Wystawić sprzężony z nim dokument magazynowy, 4.Wydrukować zestawienie wystawionych dokumentów Z nieznanych mi przyczyn raport - jeśli zastosować go dla większej ilości dokumentów - pomija bez żadnego komunikatu część zaznaczonych dokumentów z listy. Raport jest dość prosty, ale nie wiem, może popełniłem gdzieś jakiś błąd? Jeśli pominięte przez raport dokumenty znowu zaznaczę i włącze raport jeszcze raz to znowu część dokumentów się wystawia a część zostaje pominięta i pozostaje w buforze. Proszę o pomoc Kod: IORec dok_zk string sDokumId,sNrDok
long dokumId long dokErr = SetTaggedPos (FS) long Err,Err2,Err3,nErr Dispatch xDk = xFactory.NewObject("BDokumentZk") int nr = 0 int i
record k_ string recNrDok[50] endrec
k_ podsum(1)
str.wydruk ( 0, -1, 0 ) strona 50,50,50,100 string nazwaRaportu = "Podsumowanie"
while dokErr dokumId = GetLineId() sDokumId = using "%l",dokumId nErr = xDk.Load("id="+sDokumId) sNrDok = xDk.kod
dok_zk.clear() dok_zk.SetField("id", sDokumId) dok_zk.setfield( "numerObcy", ("."+data()) ) dok_zk.setfield( "dataObcy", data() )
Err = EditZK(dok_zk) popup(0,"Trwa wykonanie raportu....") popup(1,sNrDok)
if Err then message "Nie udało się wprowadzić numeru obcego dokumentu: "+sNrDok exit endif if !xDK.czyWystawiony then Err2 = WystawDokumentHandlowy(dokumId,1,0,2) if !Err2 then message "Nie udało się wystawić dokumentu: "+sNrDok exit endif endif
Err3 = UtworzDokumentMagazynowy (dokumId, 1, 1)//, 1) sNrDok = xDk.kod
if Err3 then message "Nie udało się wystawić dokumentu magazynowego do faktury: "+sNrDok exit endif
nr=nr+1 if podsum(1).recNrDok then grow podsum,1 podsum(nr).recNrDok = sNrDok
dokErr = SetTaggedPos ( NX) wend
print "Wystawiono dokumnety magazynowe dla następujących faktur:"+lf+lf for i = 1 to i > nr PRINT using "%i",i print ". "+podsum(i).recNrDok + lf next i
|
2015-10-26, 17:55 |
|
|
Autor |
Wiadomość |
Mix-soft.pl
|
|
|
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4000 Pomógł: 448
|
Re: Raport pomija dokumenty z listy - Dla czego??
A nie jest tak, że nie może wystawić jednego dokumentu i wyskakuje w pętli while przez exit i nie kontynuuje na następnych?
|
2015-10-26, 22:20 |
|
|
wojtek
Rejestracja: 2010-02-10, 21:24 Posty: 260 Pomógł: 4
|
Re: Raport pomija dokumenty z listy - Dla czego??
Zastanawiałem się nad tym, ale następowałoby wtedy przerwanie raportu - więc to nie to. Zmieniłem trochę kod i teraz go testuje. Wyglada że jest lepiej ale dopiero będę wiedział. Edit wrzuciłem tylko dla dokumentu który nie jest wystawiony - a podczas jego wystawiania automatycznie generowany jest dok. magazynowy. Kod: if !xDK.czyWystawiony then dok_zk.clear() dok_zk.SetField("id", sDokumId) dok_zk.setfield( "numerObcy", ("."+data()) ) dok_zk.setfield( "dataObcy", data() ) Err = EditZK(dok_zk) Err2 = WystawDokumentHandlowy(dokumId,1,2,2) if !Err2 then message "Nie udało się wystawić dokumentu: "+sNrDok+"\nSprawdź czy uzupełniono wymagane pola na dokumencie" exit endif else Err3 = UtworzDokumentMagazynowy (dokumId, 1, 1)//, 1) if Err3 then message "Nie udało się wystawić dokumentu magazynowego do faktury: "+sNrDok exit endif endif
|
2015-10-27, 13:21 |
|
|
wojtek
Rejestracja: 2010-02-10, 21:24 Posty: 260 Pomógł: 4
|
Re: Raport pomija dokumenty z listy - Dla czego??
Podobno raport pomija część zaznaczonych dokumentów - tak jakby pozycja nie była "zaznaczona". Poniżej nowa wersja raportu. Czy jest możliwe żeby pętla while dla dokErr = SetTaggedPos (FS) pomijała zaznaczony dokument? Albo "nie nadażała" z wystawianiem dokumentów? Exit nie ma tu nic do gadania bo raport uległby zatrzymaniu, a zachowije się tak, że wystawia dokumenty bez żadnego błędu, tylko pomija z niektóre pozycje z listy. Kod: IORec dok_zk string sDokumId,sNrDok
long dokumId long dokErr = SetTaggedPos (FS) long Err,Err2,Err3,nErr Dispatch xDk = xFactory.NewObject("BDokumentZk") int nr = 0 int i
record k_ string recNrDok[50] endrec
k_ podsum(1)
str.wydruk ( 0, -1, 0 ) strona 50,50,50,100 string nazwaRaportu = "Podsumowanie"
while dokErr dokumId = GetLineId() sDokumId = using "%l",dokumId nErr = xDk.Load("id="+sDokumId) sNrDok = xDk.kod popup(0,"Trwa wykonanie raportu....") popup(1,sNrDok)
if Err then message "Nie udało się wprowadzić numeru obcego dokumentu: "+sNrDok exit endif if !xDK.czyWystawiony then dok_zk.clear() dok_zk.SetField("id", sDokumId) dok_zk.setfield( "numerObcy", ("."+data()) ) dok_zk.setfield( "dataObcy", data() ) Err = EditZK(dok_zk) Err2 = WystawDokumentHandlowy(dokumId,1,2,2) if !Err2 then message "Nie udało się wystawić dokumentu: "+sNrDok+"\nSprawdź czy uzupełniono wymagane pola na dokumencie" exit endif else Err3 = UtworzDokumentMagazynowy (dokumId, 1, 1)//, 1) if Err3 then message "Nie udało się wystawić dokumentu magazynowego do faktury: "+sNrDok exit endif endif
sNrDok = xDk.kod
nr=nr+1 if podsum(1).recNrDok then grow podsum,1 podsum(nr).recNrDok = sNrDok
dokErr = SetTaggedPos ( NX) wend
print "Wystawiono dokumnety magazynowe dla następujących faktur:"+lf+lf for i = 1 to i > nr PRINT using "%i",i print ". "+podsum(i).recNrDok + lf next i
|
2015-10-27, 14:50 |
|
|
wojtek
Rejestracja: 2010-02-10, 21:24 Posty: 260 Pomógł: 4
|
Re: Raport pomija dokumenty z listy - Dla czego??
Znalazłem problem - może się komuś przyda. Raport bazuje na dokumentach zaznaczonych z listy - SetTaggetPoz - i jeżeli dokumenty sa w buforze i na liście dokumentów mam np 10 filtrowanych po statusie "bufor" to zaznaczonych pierwotnie elementów jest 1 do 10. Po wystawieniu dokumentu znika on z listy (bo założony jest filtr) i zmienia się liczba - teraz dokumentów nie jest już 10 tylko 9 - i dokument który był nr 2 teraz jest już numer 1 , a raport numer jeden już zrobił więc go pomija. Żeby raport działał dobrze trzeba go wywoływać bez filtru bufor albo zebrać najpierw w rekordzie informacje o id dokumentu i później zaczać wystawiać dokumenty wg tego raportu a nie settagedpoz
|
2015-10-27, 15:16 |
|
|
|
Strona 1 z 1
|
[ Posty: 5 ] |
|
Kto jest online |
Użytkownicy przeglądający to forum: Bing [Bot] i 15 gości |
|
Nie możesz tworzyć nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz dodawać załączników
|
|
|
|