|
|
Strona 1 z 1
|
[ Posty: 14 ] |
|
[HMF2017] Drukowanie do pdf wielu dokumentów
Autor |
Wiadomość |
koronen
Rejestracja: 2009-01-08, 11:43 Posty: 96 Pomógł: 1
|
[HMF2017] Drukowanie do pdf wielu dokumentów
(1)
Drukuję do pdf wiele dokumentów w pętli. Przechodzi mi powiedzmy 4000 po czym się wysypuje komunikatem "błednie umieszczony endif" lub "błędnie umieszczony endsub" lub inne świadczące o błędnej składni. Oczywiście aktualnie drukujący się dokument jest poprawny i składnia też się nagle nie zmieniła. Wygląda na to że następjue coś w rodzaju przepełnienia pamięci :/? Miał ktoś może podobne doświadczenia? Kod: int errDk long i Dispatch xDokSp = xFactory.NewObject("BDokSp") for i=200000 to i>210000 errDk = xDk.Load(Using"id='%l'",i) if !errDk then Run("Dokument VAT IFJ",-2,KatalogGlowny,"0",(Using "%l", xDk.id),T(xDk.numer),"","","") Endif next i
|
2017-03-15, 08:31 |
|
|
Autor |
Wiadomość |
Mix-soft.pl
|
|
|
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4002 Pomógł: 448
|
Re: [HMF2017] Drukowanie do pdf wielu dokumentów
Możliwe. Zrób tak, żeby w pętli przy każdym dokumencie tworzył się nowy obiekt BDokSp i niszczył. Kod: int errDk long i Dispatch xDokSp Dispatch xNull for i=200000 to i>210000 xDokSp = xFactory.NewObject("BDokSp") errDk = xDk.Load(Using"id='%l'",i) if !errDk then Run("Dokument VAT IFJ",-2,KatalogGlowny,"0",(Using "%l", xDk.id),T(xDk.numer),"","","") Endif xDokSp = xNull next i Może zamiast obiektu BDokSp użyj
|
2017-03-15, 09:35 |
|
|
koronen
Rejestracja: 2009-01-08, 11:43 Posty: 96 Pomógł: 1
|
Re: [HMF2017] Drukowanie do pdf wielu dokumentów
Niestety nie pomogło ani niszczenie obiektu ani użycie BaseDK... Może w samym wydruku trzeba coś "zmienić"?
|
2017-03-15, 15:34 |
|
|
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4002 Pomógł: 448
|
Re: [HMF2017] Drukowanie do pdf wielu dokumentów
Trzeba by u Ciebie popatrzeć.
|
2017-03-15, 16:01 |
|
|
koronen
Rejestracja: 2009-01-08, 11:43 Posty: 96 Pomógł: 1
|
Re: [HMF2017] Drukowanie do pdf wielu dokumentów
Żeby się upewnić że nie same modyfikacje w wydruku są problemem postanowiłem założyć nową bazę i maksymalnie uprościć procedurę. Utworzyłem jedną fakturę i drukowałem ją w pętli. Niestety efekt jest ten sam - utworzyło się około 4000 dokumentów i pojawił się błąd typu "błędnie umieszczony endif"... Kod: long i for i=1 to i>10000 Run("Dokument VAT I",-2,"C:\\Import\\","0","65536",(Using"%l",i),"","","") next i Naprawdę nie ma na to sposobu? Dzięki za wskazówki.
|
2017-03-15, 22:57 |
|
|
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4002 Pomógł: 448
|
Re: [HMF2017] Drukowanie do pdf wielu dokumentów
Pokaz screena komunikatu bledu.
|
2017-03-15, 23:43 |
|
|
koronen
Rejestracja: 2009-01-08, 11:43 Posty: 96 Pomógł: 1
|
Re: [HMF2017] Drukowanie do pdf wielu dokumentów
Pierwszy komunikat to: po kliknięciu "OK" pojawia się po kolejnym "OK" komunikat powtarza się i tak aż do końca pętli.
|
2017-03-16, 21:23 |
|
|
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4002 Pomógł: 448
|
Re: [HMF2017] Drukowanie do pdf wielu dokumentów
Brak obrazkow.
|
2017-03-16, 22:07 |
|
|
koronen
Rejestracja: 2009-01-08, 11:43 Posty: 96 Pomógł: 1
|
Re: [HMF2017] Drukowanie do pdf wielu dokumentów
Powinno działać z menu kontekstowego "otwórz grafikę w nowej karcie" - przynajmniej u mnie działa to w chrome. Ale wrzucam inne url. Pierwszy komunikat: Kolejne:
|
2017-03-16, 22:36 |
|
|
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4002 Pomógł: 448
|
Re: [HMF2017] Drukowanie do pdf wielu dokumentów
Zobacz jeszcze czy cos da opoznienie w petli zeby byl czas na wykonanie zapisu.
|
2017-03-16, 23:06 |
|
|
koronen
Rejestracja: 2009-01-08, 11:43 Posty: 96 Pomógł: 1
|
Re: [HMF2017] Drukowanie do pdf wielu dokumentów
Przede wszystkim "opóźniacz" spowoduje że raport przestanie być funkcjonalny bo już teraz wykonuje się 2 godziny a przechodzi powiedzmy 20%. Po drugie mocno wątpię w skuteczność bo błędy pojawiają się z podobną częstotliwością czyli po jakiś 4000-4500 dokumentów - jeśli byłaby to kwestia czasu to wydaje mi się że raport wysypywałby się w różnych momentach. Poza tym "Run" czeka aż zakończy się działanie raportu wywoływanego - np. jeśli wrzucimy "message" do wywoływanego raportu to Run zatrzymuje działanie pętli do póki raport się nie wykona do końca. Myślę że przydałoby się jakiś mechanizm w stylu rodzaju garbage collector... Nie mam niestety pomysłu:(
|
2017-03-16, 23:26 |
|
|
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4002 Pomógł: 448
|
Re: [HMF2017] Drukowanie do pdf wielu dokumentów
Ok
|
2017-03-17, 00:57 |
|
|
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4002 Pomógł: 448
|
Re: [HMF2017] Drukowanie do pdf wielu dokumentów
Wygląda to na operację jednorazową więc możesz zrobić to partiami. A potem generować na bieżąco po jednym w OnAfterInsert()
|
2017-03-17, 08:59 |
|
|
bongos
Rejestracja: 2013-09-05, 11:53 Posty: 126 Pomógł: 8
|
Re: [HMF2017] Drukowanie do pdf wielu dokumentów
koronen pisze: Żeby się upewnić że nie same modyfikacje w wydruku są problemem postanowiłem założyć nową bazę i maksymalnie uprościć procedurę. Utworzyłem jedną fakturę i drukowałem ją w pętli. Niestety efekt jest ten sam - utworzyło się około 4000 dokumentów i pojawił się błąd typu "błędnie umieszczony endif"... Kod: long i for i=1 to i>10000 Run("Dokument VAT I",-2,"C:\\Import\\","0","65536",(Using"%l",i),"","","") next i Naprawdę nie ma na to sposobu? Dzięki za wskazówki. Hej, no niestety mi tak 'czasami' wywala się hmf na rozwiązaniu OnTimer-owym. Coś musi być nie teges z intepreterem AmBasic przy 'długim obciążeniu' bo za diabła błędu nie znalazłem tam gdzie program sugerował. Pozostaje mi się połączyć w bólu z kolegą . No chyba, że masz jakieś obserwacje to napisz.
|
2017-08-01, 14:11 |
|
|
|
Strona 1 z 1
|
[ Posty: 14 ] |
|
Kto jest online |
Użytkownicy przeglądający to forum: Nie ma żadnego zarejestrowanego użytkownika i 1 gość |
|
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
|
|
|
|