Posty bez odpowiedzi |oraz Aktywne tematy Dzisiaj jest 2024-04-19, 17:19x



Odpowiedz w temacie  [ Posty: 5 ] 
Raport pomija dokumenty z listy - Dla czego?? 
Autor Wiadomość

Rejestracja: 2010-02-10, 21:24
Posty: 260
Pomógł: 4
Post 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
Wyświetl profil
Autor Wiadomość
 


Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 3983
Pomógł: 445
Post 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?

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2015-10-26, 22:20
Wyświetl profil

Rejestracja: 2010-02-10, 21:24
Posty: 260
Pomógł: 4
Post 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
Wyświetl profil

Rejestracja: 2010-02-10, 21:24
Posty: 260
Pomógł: 4
Post 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
Wyświetl profil

Rejestracja: 2010-02-10, 21:24
Posty: 260
Pomógł: 4
Post 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
Wyświetl profil
Wyświetl posty nie starsze niż:  Sortuj wg  
Odpowiedz w temacie   [ Posty: 5 ] 
   Podobne tematy   Autor   Odpowiedzi   Odsłony   Ostatni post 
Na tym forum nie ma nowych nieprzeczytanych postów. Załączniki Raport ZUS Z-17(karta zasiłkowa) - usunięto raport z listy

w Programy Kadrowo Płacowe

Floyd

8

6353

2016-09-02, 17:31

Jarek75 Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Załączniki Nagłówek raport Listy Płac - KDP 2014a

w Programy Kadrowo Płacowe

Dreco

7

3601

2013-11-05, 09:07

Dreco Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Raport: "Nie zrealizowanie dokumenty zakupu"

w Programy Handlowe

Olik3

2

1872

2010-06-23, 13:00

Olik3 Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. od czego zacząć

w Pozostałe

krezus

10

7743

2009-03-20, 07:34

Karramba Wyświetl najnowszy post



Kto jest online

Użytkownicy przeglądający to forum: Nie ma żadnego zarejestrowanego użytkownika i 4 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

Szukaj:
Przejdź do:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Support forum phpbb by phpBB Assistant