Firmenlogo auf 400-seitige Rechnung Drucken gibt Fehler

29. Oktober 2021 16:13

Hallo Zusammen

Wir verwenden NAV 2017 und möchten auf der Rechnung das Firmenlogo auf jeder Seite aufdrucken.
Wenn nun eine grosse Rechnung kommt, in meinem Beispiel 400 Seiten, dann lädt die Rechnung ewigs und gibt am Schluss den Fehler "Ausgaberendering für Bericht fehlgeschlagen. Fehler: Fehler bei der Berichtsverarbeitung."
Das Bild berechne ich mit CALCFIELDS im OnPreReport() Event.
Das Bild wird als Feld übergeben und im RDLC erstelle ich eine Image
Image Source: Database
Use this MIME type: image/bmp

Nun habe ich das Logo entfernt und die Rechnung konnte dann erstellt werden. Jedoch ist eine Rechnung ohne Logo nicht so professionell also keine Dauerlösung.

Habt ihr Tipps wie ich es schaffe das Logo auf den Bericht zu kriegen ohne das es bei grossen Rechnungen crasht?
Irgendwie muss das doch gehen das man für grosse Berichte das Logo andrucken kann.

Vielen Dank für die Antworten :)

Re: Firmenlogo auf 400-seitige Rechnung Drucken gibt Fehler

30. Oktober 2021 07:33

Hallo,

egal was du tust, es ist mit dem RTC ein sportliches Unterfangen eine so große Rechnung ausdrucken zu wollen.
Aber du kannst ein paar Dinge probieren, die dir evtl. helfen es doch zu schaffen.
Dazu sollte man einiges berücksichtigen:
  • RDLC arbeitet im Hintergrund mit XML die wird irgendwann sehr groß, und das XML-Handling auf deinem Client kann die Daten u.U. nicht mehr verarbeiten weil der Speicher zu klein ist (oder nur 32bit, ich weiß im Moment nicht wann MS den Client auf 64bit umgestellt hat). Was du jetzt tun kannst, ist die Anzahl der Felder und Datendätze zu reduzieren. D.h. wenn du z.B. einen Textbaustein ausdrucken willst, der einer Zeile zugeordnet ist, kannst du das beireits im C/AL zu einer Textvariable zusammenfassen, die du im Datensatz der eigentlichen Zeile mit übergibst. Das spart die Datensätze für jede einzelne Textzeile.
  • Wenn es möglich ist, füge das Logo direkt in den RDLC- Report ein, und übergib es nicht als Feld, und schon gar nicht als BMP sondern als PNG oder JPG. Das wird das XML, je nach Reportstruktur, um einiges verkleinern.
  • Führe den Bericht auf dem Server aus z.B. mit SAVEASPDF. Dort kannst du sicher sein, dass das ganze in einer 64bit- Umgebung läuft.
  • Verkürze die übergebenen Parameternamen (also die rechte Spalte "Name" in der C/AL Übesicht). Das reduziert die Größe der erzeugten Textdatei, und damit auch des benötigten Speichers beim Einlesen
  • Zu guter Letzt kannst du noch versuchen, die Struktur des Reports zu optimieren, um das XML möglichst klein zu halten.

Ansonsten kannst du dir nur einen Spezial-Report schreiben, bei dem du die zu druckenden Zeilen filtern kannst. Der sollte dann in der Lage sein die Seiten von 1-50, 51-100,.. auszudrucken. Aber ob das überhaupt möglich ist, hängt auch ein wenig von dem ab was du Ausdrucken willst und musst. :wink:

Gruß Fiddi

Re: Firmenlogo auf 400-seitige Rechnung Drucken gibt Fehler

30. Oktober 2021 13:39

fiddi hat geschrieben:, ich weiß im Moment nicht wann MS den Client auf 64bit umgestellt hat).
Das passierte bei NAV 2016, bzw. ab da hatte man die Wahl zwischen einem 64-bit (als Vorgabe) und einem 32-bit-Client mit der althergebrachten Technik.

Re: Firmenlogo auf 400-seitige Rechnung Drucken gibt Fehler

1. November 2021 09:33

Hallo.

Wie sieht das Dataset aus? Ist in jeder Zeile das Logo mit drin?

Wenn ja musst Du das Logo an den Anfang des Dataset bringen und auf das Logo mit First() in RDLC zugreifen.
In CAL musst Du dann das Logo an geeigneter Stelle mit Clear(Logo) "killen".

Re: Firmenlogo auf 400-seitige Rechnung Drucken gibt Fehler

1. November 2021 10:26

genau das, was Fred sagt, sollte den Erfolg bringen - hatten "früher" mal das gleiche Problem beim Massendruck von Rechnungen.

Re: Firmenlogo auf 400-seitige Rechnung Drucken gibt Fehler

1. November 2021 12:05

Hallo ,

das ist nicht gesagt.
Wenn man das Logo im Report einbindet, statt es zu übergeben, sollte man das recht schnell testen können.

Aber bei der Größe ist noch nicht gesagt, dass das hilft.

Gruß Fiddi