Skocz do zawartości

[Sfera] Eksportowanie PIT-11 do PDF


Zobacz rozwiązanie Rozwiązane przez Wojciech Urbanowski,

Polecane posty

Na podstawie przykładu zawartego w SDK, postanowiłem przygotować moduł, do eksportu deklaracji PIT-11 do PDF. Teoretycznie wszystko przechodzi przez kompilator, ale kod wysypuje się na elementach związanych z parametryzacją eksportu do pliku i w sumie samym eksportem do pliku. Plik Wydruki.zip, znajduje się w folderze aplikacji. Próbowałem także uruchomić wasz przykład 1:1, ale także na Eksport dostaje błąd.

int id; id = results.id;   
IDeklaracje deklaracje = sfera.PodajObiektTypu<IDeklaracje>();
Deklaracja deklaracjaEncja = deklaracje.Dane.Wszystkie().FirstOrDefault(d => d.Id == id);
if(deklaracjaEncja == null) { }
else
{
using (IDeklaracja deklaracja = deklaracje.Znajdz(deklaracjaEncja))
  {
  IWydruki manager = sfera.PodajObiektTypu<IWydruki>();
  using (IWydruk wydruk = manager.Utworz(TypWzorcaWydruku.Deklaracja))
    {
    IDeklaracjaDoWydrukuHelper deklaracjaDoWydrukuHelper = sfera.PodajObiektTypu<IDeklaracjaDoWydrukuHelper>();
    foreach (var deklaracjaDoWydruku in deklaracjaDoWydrukuHelper.PobierzDeklaracjeDoWydruku(deklaracja))
      {
      wydruk.ObiektDoWydruku = deklaracjaDoWydruku;
      string filename;
      filename = "deklaracja"+deklaracja.Dane.Id;
      wydruk.ParametryDrukowania.NazwaDokumentuUzytkownika = filename;
      wydruk.ParametryDrukowania.SciezkaEksportu = @"N:\";
      wydruk.Eksport();
      }
    }
  }
}

Błąd, który otrzymuję:

Cytat

System.NullReferenceException: Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu.

   w InsERT.Moria.Wydruki.Deklaracje.DeklaracjaWydruk.WzorzecLazyInitializer(Boolean eko)

   w InsERT.Moria.Wydruki.Deklaracje.DeklaracjaWydruk.<.ctor>b__4_0()

   w System.Lazy`1.CreateValue()

   w System.Lazy`1.LazyInitValue()

   w System.Lazy`1.get_Value()

   w InsERT.Moria.Wydruki.Deklaracje.DeklaracjaWydruk.Wzorzec(Boolean eko)

   w InsERT.Moria.Wydruki.Deklaracje.DeklaracjaWydruk.WzorzecDomyslny()

   w InsERT.Moria.Wydruki.Base.Wydruk`2.get_UstawionyWzorzecDomyslny()

   w InsERT.Moria.Wydruki.Base.Wydruk`2.get_ParametryDrukowania()

   w InsERT.Moria.Wydruki.Base.Wydruk`2.InsERT.Moria.Wydruki.IWydruk.get_ParametryDrukowania()

   w SynchronousSocketListener.StartListening() w f:\SferaDEV\Sfera\Sfera\Program.cs:wiersz 3144

 

Link to postu
  • Rozwiązanie

Szanowny Panie,

 "u mnie działa" (nexo 32.1.0, baza demo), ale mam podobny efekt jak Pan jeśli skasuję plik Wydruki.zip. Stąd wnioskuję, że prawdopodobnie mam Pan go w złej lokalizacji. Wydruki.zip powinien znajdować się w podkatalogu Deklaracje względem katalogu w którym jest *.exe:

 obraz.png.5ef6147766e7dc11306a797f66a3426a.png

  • Dziękuję 1
Link to postu
  • 2 lata później...

Trochę odkopuje temat, ale mam dziwny problem. Oczywiście przy okazji zmiany wersji, przenoszę cały folder Deklaracje, do folderu z skompilowanym programem. Deklaracje działają i generują się, ale w obecnym okresie zmożonego ich pobierania przez ponad 100 pracowników, prawie codziennie ktoś mi zgłasza, ze generują się szlaczki, albo bez tła - sposobem na rozwiązanie, jest ponowne skopiowanie identycznych plików z SDK, z identyczną datą modyfikacji, nie trzeba nawet restartować działającego rozwiązania i zaczyna działać. Rozwiązanie spokojnie chodzi Sobie od tygodnia ponad nie uruchamiane ponownie, a ja od czwartku, codziennie muszę z raz dziennie zrobić ten myk z plikami. Jakieś sugestie, z czego to może wynikać? Czy ewentualne wygenerowanie starego PITa, przez któregoś mądrego, mogło by mieć na to wpływ?

Link to postu

Akurat naprawiłem, ale jak tylko wystąpi błąd, to zrobię jakieś anonimowe screeny - pliki tymczasowe kasuje od razu, aby nie trzymać danych osobowych.

Wstępnie, z tego co widziałem sam, to na pewno jest wersja, że PIT-11 nie ma tła, w sensie są wszystkie dane naniesione na puste kartki, ale w właściwych pozycjach. Drugi dzisiaj zgłaszany błąd, to "zakodowany" PIT-11 - strzelam, że może to związane z ostatnimi problemami z wydrukami deklaracji, ale tego nawet nie poszedłem obejrzeć, tylko podmieniłem pliki i już działał.

Link to postu

Lada chwila wyjdzie wersja 44.0.0. Zawiera trochę zmian odnośnie wydruków. Jeśli to nie problem, proszę o zweryfikowanie na wersji 44.0.0.

Jeśli problem nadal będzie występował, proszę uprzejmie o spróbowanie zastosowania oficjalnej łatki od Microsoft na drukowanie XPSów (w plikach XPS przechowujemy podkładki z pustymi formularzami deklaracji):

https://support.microsoft.com/en-us/topic/kb5022083-change-in-how-wpf-based-applications-render-xps-documents-a4ae4fa4-bc58-4c37-acdd-5eebc4e34556

 

Niestety, ale dopiero wersja 45.0.0 zmienia mechanizm wydruków deklaracji na taki niezależny od systemowego renderera plików XPS.

  • Dziękuję 1
Link to postu
  • 3 tygodnie później...
  • 10 miesięcy temu...

Nowy rok, a problem dalej występuje, a nawet jest gorzej, bo teraz w ogóle nawet po ponownym skopiowaniu ZIP, nie mogę uzyskać prawidłowej deklaracji.

UPDATE: Dobra, raz wydrukowanie z Gratyfikanta, na komputerze z rozwiązaniem, nagle odczarowało PITy. Ja tylko dodam, że nie odpalam rozwiązania launcherem, tutaj pewnie gdzieś leży problem?

UPDATE 2: I nadal działa to tymczasowo. Po 4h znowu musiałem raz wygenerować w Gratyfikancie, aby Sferycznie robiło się dobrze.

Edytowane przez Radomił Ząbik
Link to postu

Spróbujemy zatem powtórzyć to u nas, bo w przeciwieństwie do zeszłego roku nie ma żadnych rewolucji, które mogłyby "przy okazji" naprawić.

Czy kawałek kodu z pierwszego posta jest aktualny i odpowiada mniej więcej temu co robi aktualnie Pana aplikacja? Oczywiście wyizolowany problem do postaci aplikacji testowej out-of-the-box to moje marzenie 😉

Link to postu
×
×
  • Dodaj nową pozycję...