mojaSymfonia FORUM https://forum.mix-soft.pl/ |
|
Polecenie RUN w pętli https://forum.mix-soft.pl/viewtopic.php?f=15&t=6557 |
Strona 1 z 1 |
Autor: | Adi [ 2015-03-20, 10:23 ] |
Tytuł: | Polecenie RUN w pętli |
Witam Czy ktoś próbował uruchamiać polecenie RUN w pętli. Musze wygenerować wydruki pdf dla wielu dokumentów w celu eksportu na stronę www. Niestety wywołanie RUN w pętli powoduje koniec pętli. Nie wykonuje się dla kolejnych wywołań. Próbowałem wstawić pętle opóźniającą, ale nic nie daje. |
Autor: | rafal [ 2015-03-20, 10:27 ] |
Tytuł: | Re: Polecenie RUN w pętli |
pokaż kawałek kodu |
Autor: | Adi [ 2015-03-20, 11:46 ] |
Tytuł: | Re: Polecenie RUN w pętli |
Kod: err1 = SetTaggedPos(FS) while err1 id = GetLineId() Npdf = Plik_pdf(id) NEpp = Plik_Epp(id) NCsv = Plik_Csv(id) //teraz xml buf = Nepp replace ".epp",".xml" Nxml = buf //teraz zapisz w pliku setkey(dk,"id") setkeyseg(dk,"id",id) err = getrec(dk,EQ) buf = getfield(dk,"opis") delete " " delete " " delete " " delete "/" delete "/" delete "/" TNumer = buf if TNumer=="" then Tnumer = using "%l",id f.StartElement("Faktura") f.Element("NumerFV","<[!CDATA[" + getfield(dk,"kod")+"]]>") f.Element("DataWyst","<[!CDATA[" + getfield(dk,"data")+"]]>") f.Element("DataSprz","<[!CDATA[" + getfield(dk,"datasp")+"]]>") f.Element("TerminZapl","<[!CDATA[" + getfield(dk,"plattermin")+"]]>") skwota = using "%12.4f",GetField(dk,"walbrutto") f.Element("WartoscFV","<[!CDATA[" + skwota+"]]>") f.Element("NumerZam","<[!CDATA[" + Tnumer+"]]>") f.Element("PlikPdf","<[!CDATA[" + Npdf+".pdf"+"]]>") f.Element("PlikCsv","<[!CDATA[" + Ncsv+"]]>") f.Element("PlikEpp","<[!CDATA[" + Nepp+"]]>") f.Element("PlikXml","<[!CDATA[" + Nxml+"]]>") f.EndElement("Faktura") // teraz xml PobierzPola( rootEl ,"Firma", 1, "KH") PobierzPola( rootEl ,"Info", 1, "XT") PobierzPola( rootEl ,"Dokument", GetLineId( Id ), "DK") p = xml.createProcessingInstruction("xml","version='1.0' encoding='windows-1250' standalone='no'") xml.insertBefore(p,xml.childNodes(0)) xml.Save( Pkatalog + NXml ) Siddok = using "%l",id RUN("Dokument VAT I DRUK",-2,PKatalog,"",Siddok,"","0","",Npdf,"") err1 = SetTaggedPos(NX) wend |
Autor: | rafal [ 2015-03-20, 12:37 ] |
Tytuł: | Re: Polecenie RUN w pętli |
Dlaczego nazwę pliku przekazujesz w Arg5? Oto działający przykład Kod: long err = SetTaggedPos(FS) long id while err id = GetLineId(err) Run("Dokument VAT I", -2, "e:\\tmp\\", "", (Using "%l", id), "", "0", "", "", "") err = SetTaggedPos(NX) wend Z tym, że ja mam na początku raportu Dokument VAT I dodaną linię Kod: pdfDisp.Filename = arg1 Co powoduje, że nazwa tworzonego pliku to id_dokumenty.pdf |
Autor: | Adi [ 2015-03-23, 09:07 ] |
Tytuł: | Re: Polecenie RUN w pętli |
Cześć Przekazuję w arg5 ponieważ tworzę dla jednego dokumentu kilka dokumentów wynikowych csv,xml, itd. Dla klienta pobierającego ze strony www nazwa pliku 345_dokument.pdf nic nie mówi, natomiast FV123_2015.pdf już tak. Pierwotnie generowanie pdf miałem w podprogramie też nie działa. Czy twój przykład działa dla wielu wybranych dokumentów.? |
Autor: | rafal [ 2015-03-23, 09:29 ] |
Tytuł: | Re: Polecenie RUN w pętli |
Tak, przykład działa dla wielu zaznaczonych dokumentów. |
Autor: | Adi [ 2015-03-26, 08:11 ] |
Tytuł: | Re: Polecenie RUN w pętli |
Miałeś racje działa w pętli, mój raport też, problem leżał w podprogramie do generowania xml. |
Strona 1 z 1 | Strefa czasowa UTC+1godz. [letni] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |