mojaSymfonia FORUM https://forum.mix-soft.pl/ |
|
[HMF2017] Drukowanie do pdf wielu dokumentów https://forum.mix-soft.pl/viewtopic.php?f=15&t=7817 |
Strona 1 z 1 |
Autor: | koronen [ 2017-03-15, 08:31 ] |
Tytuł: | [HMF2017] Drukowanie do pdf wielu dokumentów |
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 |
Autor: | rafal [ 2017-03-15, 09:35 ] |
Tytuł: | 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 Kod: baseDK dk |
Autor: | koronen [ 2017-03-15, 15:34 ] |
Tytuł: | 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ć"? |
Autor: | rafal [ 2017-03-15, 16:01 ] |
Tytuł: | Re: [HMF2017] Drukowanie do pdf wielu dokumentów |
Trzeba by u Ciebie popatrzeć. |
Autor: | koronen [ 2017-03-15, 22:57 ] |
Tytuł: | 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. |
Autor: | rafal [ 2017-03-15, 23:43 ] |
Tytuł: | Re: [HMF2017] Drukowanie do pdf wielu dokumentów |
Pokaz screena komunikatu bledu. |
Autor: | koronen [ 2017-03-16, 21:23 ] |
Tytuł: | 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. |
Autor: | rafal [ 2017-03-16, 22:07 ] |
Tytuł: | Re: [HMF2017] Drukowanie do pdf wielu dokumentów |
Brak obrazkow. |
Autor: | koronen [ 2017-03-16, 22:36 ] |
Tytuł: | 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: |
Autor: | rafal [ 2017-03-16, 23:06 ] |
Tytuł: | Re: [HMF2017] Drukowanie do pdf wielu dokumentów |
Zobacz jeszcze czy cos da opoznienie w petli zeby byl czas na wykonanie zapisu. |
Autor: | koronen [ 2017-03-16, 23:26 ] |
Tytuł: | 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:( |
Autor: | rafal [ 2017-03-17, 00:57 ] |
Tytuł: | Re: [HMF2017] Drukowanie do pdf wielu dokumentów |
Ok |
Autor: | rafal [ 2017-03-17, 08:59 ] |
Tytuł: | 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() |
Autor: | bongos [ 2017-08-01, 14:11 ] |
Tytuł: | 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. |
Strona 1 z 1 | Strefa czasowa UTC+1godz. [letni] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |