Radomił Ząbik 308 Napisano 25 Lutego 2021 Udostępnij Napisano 25 Lutego 2021 w [Sfera] Wydruk FP, a dziwne zachowanie tabeli VAT Drukując z programu, domyślnie proponowanym przez niego wzorcem, tabela VAT wygląda tak: Natomiast jak wydrukuję ją poprzez Sferę, to mam tyle wierszy ile jest pozycji na dokumencie: Sprawdziłem logując informacje, że wzorzec wydruku jest dokładnie ten sam. Do wydruku wychodzę z poziomu IZamowieniaOdKlientow, bo chyba nie ma innej drogi. Co robię źle? A może Sfera ma babola? Poza samą tabelą, cały wydruk jest ok. Kod drukujący: int id; id = results.id; // uzyskanie dokumentu do wydruku IZamowieniaOdKlientow dokumenty = sfera.PodajObiektTypu<IZamowieniaOdKlientow>(); Dokument dokument = dokumenty.Dane.Wszystkie().Where(d => d.Id == id).Single(); if(dokument == null) { Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd H:mm:ss")+" - Wskazany do wydruku dokument nie istnieje!"); response = "{ \"error\":\"Dokument nie istnieje!\" }"; } else { Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd H:mm:ss")+" - Drukowanie FP: "+dokument.NumerWewnetrzny.PelnaSygnatura); //pobranie managera drukowania IWydruki manager = sfera.PodajObiektTypu<IWydruki>(); // utworzenie zadania drukowania using (IWydruk wydruk = manager.Utworz(TypWzorcaWydruku.FakturaProForma)) { // wskazanie obiektu do wydruku wydruk.ObiektDoWydruku = dokument; using (var podmiot = sfera.PodajObiektTypu<IPodmioty>().Znajdz(dokument.Podmiot)) { IOperacjePodmiotuDlaDokumentu operacje = podmiot.OperacjePodmiotuDlaDokumentu[dokument.Konfiguracja]; wydruk.ParametryDrukowania.WybranyWzorzec = operacje.WzorzecWydruku; Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd H:mm:ss")+" - Wzorzec: "+operacje.WzorzecWydruku.Nazwa); // wyeksportowanie dokumentu do pliku wydruk.ObiektDoWydruku = dokument; string filename; filename = "fp"+dokument.Id; wydruk.ParametryDrukowania.NazwaDokumentuUzytkownika = filename; wydruk.ParametryDrukowania.SciezkaEksportu = @"C:\mocujemy_nexo\www\temp"; wydruk.Eksport(); Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd H:mm:ss")+" - Wydrukowano: " +wydruk.ParametryDrukowania.NazwaDokumentuUzytkownika+".pdf"); response = "{ \"number\":\""+dokument.NumerWewnetrzny.PelnaSygnatura+"\", \"filename\":\""+filename+"\", \"id\":\""+dokument.Id+"\" }"; } } } Link to postu
Wojciech Szopiński 226 Napisano 26 Lutego 2021 Udostępnij Napisano 26 Lutego 2021 w [Sfera] Wydruk FP, a dziwne zachowanie tabeli VAT Faktycznie jest jakiś problem. Zapisujemy temat do zbadania i naprawy. Mogę na ten moment zaproponować obejście w postaci drukowania encji z obiektu biznesowego zamówienia. Chodzi mi o coś takiego: DokumentZK proformaEncja = zamowienia.Dane.Wszystkie().Where(fp => fp.Id == idProformy).FirstOrDefault(); // najpierw ładujemy obiekt biznesowy IZamowienieOdKlienta using (IZamowienieOdKlienta fp = zamowienia.Znajdz(proformaEncja)) { using (IWydruk wydrukFp = wydruki.Utworz(TypWzorcaWydruku.FakturaProForma)) { wydrukFp.ParametryDrukowania.WybranyWzorzec = wydrukFp.ParametryDrukowania.DostepneWzorce.FirstOrDefault(w => w.Domyslny); // tutaj ważne, żeby jako obiekt do wydruku podać encję // załadowaną w ramach obiektu biznesowego IZamowienieOdKlienta // a nie tą pobraną z bazy: wydrukFp.ObiektDoWydruku = fp.Dane; wydrukFp.ParametryDrukowania.NazwaDokumentuUzytkownika = "testwydruku.pdf"; wydrukFp.ParametryDrukowania.SciezkaEksportu = "C:\\Temp"; wydrukFp.Eksport(); } } Link to postu
Radomił Ząbik 308 Napisano 26 Lutego 2021 Autor Udostępnij Napisano 26 Lutego 2021 w [Sfera] Wydruk FP, a dziwne zachowanie tabeli VAT Ok. Rozumiem, że spokojnie mogę do tego dodać wybór wzorca wydruku, przypisanego do podmiotu, tak jak mam w Swoim kodzie? Link to postu
Wojciech Szopiński 226 Napisano 26 Lutego 2021 Udostępnij Napisano 26 Lutego 2021 w [Sfera] Wydruk FP, a dziwne zachowanie tabeli VAT Oczywiście, to nie miało znaczenia w tym przypadku (powtórzyłem to bez korzystania z operacji podmiotu dla dokumentu). Istotne jest, żeby wydruk operował na encji załadowanej w ramach obiektu biznesowego dokumentu. 1 Link to postu
Wojciech Szopiński 226 Napisano 7 Kwietnia 2021 Udostępnij Napisano 7 Kwietnia 2021 w [Sfera] Wydruk FP, a dziwne zachowanie tabeli VAT W dniu 25.02.2021 o 14:30, Radomił Ząbik napisał: A może Sfera ma babola? "Babol" zostanie poprawiony w wersji letniej 😀 1 Link to postu
Radomił Ząbik 308 Napisano 7 Kwietnia 2021 Autor Udostępnij Napisano 7 Kwietnia 2021 w [Sfera] Wydruk FP, a dziwne zachowanie tabeli VAT Fajnie jak dopisujecie do postu info o poprawce/wprowadzeniu zmiany, to człowiek potem nie jest nagle zaskoczony, jak nie doczytał, w ostatnim akapicie listy zmian Dzięki za info. 1 Link to postu
Kamil Ciszewski 0 Napisano 22 Marca Udostępnij Napisano 22 Marca w [Sfera] Wydruk FP, a dziwne zachowanie tabeli VAT (edytowane) Cześć, z góry wybaczcie z odkopanie danego tematu. Korzystając z opublikowanego przez Was kodu wyżej próbowałem do zaimplementować jako druk do FS/FD. Korzystając z innego wątku natknąłem się na taki błąd: Console.WriteLine("saveInvoiceWithPrint"); IWydruki wydruki = this.mainWindowViewModel.UchwytDoSfery.PodajObiektTypu<IWydruki>(); IDokumentySprzedazy dokumentySprzedazy = this.mainWindowViewModel.UchwytDoSfery.PodajObiektTypu<IDokumentySprzedazy>(); DokumentDS dokumentSprzedazy = dokumentySprzedazy.Dane.Wszystkie().Where(ds => ds.Id == receiptInvoiceObj.Id).FirstOrDefault(); Console.WriteLine("do druku Id:"); Console.WriteLine(dokumentSprzedazy.Id); using (IDokumentSprzedazy ds = dokumentySprzedazy.Znajdz(dokumentSprzedazy)) { Console.WriteLine("Znalazlo dokument do druku"); InsERT.Moria.Wydruki.Enums.TypWzorcaWydruku typWzorca = InsERT.Moria.Wydruki.Enums.TypWzorcaWydruku.FakturaSprzedazy; if (this.documentType == "FD") { typWzorca = InsERT.Moria.Wydruki.Enums.TypWzorcaWydruku.FakturaDetaliczna; } using (IWydruk printDoc = wydruki.Utworz(typWzorca)) { printDoc.ParametryDrukowania.WybranyWzorzec = printDoc.ParametryDrukowania.DostepneWzorce.FirstOrDefault(w => w.Domyslny); Console.WriteLine("wzorzec: " + printDoc.ParametryDrukowania.WybranyWzorzec.Id); Console.WriteLine("do druku ds:"); Console.WriteLine(ds.Dane.Id); printDoc.ObiektDoWydruku = ds.Dane; printDoc.ParametryDrukowania.NazwaDokumentuUzytkownika = ds.Dane.Id+".pdf"; printDoc.ParametryDrukowania.SciezkaEksportu = @"C:\SubiektBL_Eksports"; Console.WriteLine(ds.Dane.Id + ".pdf"); printDoc.Eksport(); Console.WriteLine(printDoc.OstatniaOperacjaZakonczonaSukcesem); if (!printDoc.OstatniaOperacjaZakonczonaSukcesem) { Console.WriteLine("problem z zapisem"); foreach (var blad in printDoc.PobierzListeBledow()) { Console.WriteLine("BLAD ZAPISU: "+ blad); // zapisz lub wyświetl błąd } } Console.WriteLine("Powinno wyeksportowac!"); //if (SharedRegistryManager.GetValue(RegistryConfigurationKeys.Subiekt_PrinterEnabled) == "1") //{ //} } Konsola: Invoice number: FS 35/CENTRALA/2024. saveInvoiceWithPrint do druku Id: 101174 Znalazlo dokument do druku wzorzec: 1 do druku ds: 101174 101174.pdf False problem z zapisem System.Collections.Generic.List`1[System.String] BLAD ZAPISU: Nie znaleziono pliku wnf.pak. Powinno wyeksportowac! Niestety nie pokazuje żadnych problemów z zapisem, folder sprawdzany, utworzony. Można w nim zapisać plik. Proszę o wsparcie w rozwiązaniu problemu. Edytowane 22 Marca przez Kamil Ciszewski udało się złapać błąd Link to postu
Wojciech Szopiński 226 Napisano 22 Marca Udostępnij Napisano 22 Marca w [Sfera] Wydruk FP, a dziwne zachowanie tabeli VAT Domniemam, że rozwiązanie jest uruchamiane poprzez skopiowanie zawartości sdk do katalogu z rozwiązaniem własnym, a nie poprzez wgranie go do binariów podmiotu. Jeśli tak to czy wspomniany plik jest faktycznie skopiowany do katalogu z rozwiązaniem? Plik wnf.pak zawiera wzorce dla wydruków niefskalnych - czy domyślnym wzorcem jest w tym przypadku wzorzec niefiskalny? Link to postu
Polecane posty