[gelöst] RTC: Fehler beim Rechnungsgruck / "Bis-Operator"

5. Juni 2012 17:21

Hallo zusammen,

ich habe hier eine TestDB mit NAV 2009 R2 (6.0.33172.0).

Wenn ich eine geb. Rechnung (Standard) als PDF drucke (interne PDF-Funktion von NAV -> Button Drucken -> Pfeil nach unten -> PDF) funktioniert der Ausdruck einwandfrei. Wähle ich dagegen eine Filterung über das Feld "Buchungsdatum" und setze den Filter z.B. "VRG120001..VRG120005" erhalte ich folgende Meldung:

"Ausgaberedering für Bericht fehlgeschlagen. Fehler: Eine Ausnahme vom Typ "System.OutOfMemoryException" wurde ausgelöst.

Ein paar weitere Tests ergaben, dass beim Benutzen des Filteroperators „|“, auch bei mehreren Belegen, der Ausdruck einwandfrei funktioniert. Lediglich die Nutzung des Operators „..“ führt zu der Fehlermeldung.
Zuletzt geändert von aps am 8. Juni 2012 11:27, insgesamt 1-mal geändert.

Re: RTC: Fehler beim Rechnungsgruck / "Bis-Operator"

5. Juni 2012 17:31

Diesen Fehler kenne ich im Zusammenhang mit Bildern in Reports: Pro Datasetzeile (!) wird ein Bild mitgeführt, dies lässt das Dataset zu groß werden - Fehler.
Lösung: mit den Recordvariablen im CC so jonglieren, dass das Bild-Feld nur noch in den Datensätzen gefüllt ist, wo man es auch braucht (z.B. so).

Falls dies auch bei dir die Ursache sein sollte, dann wäre nicht das ".." das Problem, sondern die Anzahl an Rechnungen. Schon eine einzige Rechnung hat ein recht großes Datenvolumen.
Warum dann der direkte Druck funktioniert? Da kann ich nur raten; vielleicht/wahrscheinlich wird der Bericht beim PDF-Druck im Hintergrund zweimal ausgeführt = doppeltes Datenvolumen.

Re: RTC: Fehler beim Rechnungsgruck / "Bis-Operator"

6. Juni 2012 13:38

Hallo Natalie,

es scheint wohl nicht nur so, sondern es ist leider so :-( Ich habe mir den Prozess beim Erstellen des Beleges im Task_Manager angeschaut ... läuft weit über die 1 GB ... und dann knallt es. Das Logo habe ich bereits verkleinert, ein paar Seiten mehr, aber das war es dann auch schon.

Der Fehler tritt sowohl beim Druckvorgang auf einen PDF-Drucker (zugegeben, dass verstehe ich nicht, dann wenn ich das Ganze auf einen physikalisch vorhandenen Drucker drucke, geht es ja auch), als bei der internen PDF-Drucker auf

Gedruckt wird hier die geb. Rechnung. das Bild gebe ich nur im Sales Header aus. 90% der Rechnungen besitzen nur eine Seite, so dass eine Reduzierung bzw. Splittung der Datasets nicht möglich ist.

Noch eine andere Idee?

Re: RTC: Fehler beim Rechnungsgruck / "Bis-Operator"

6. Juni 2012 13:46

aps hat geschrieben:Das Logo habe ich bereits verkleinert[...]

das Bild gebe ich nur im Sales Header aus. 90% der Rechnungen besitzen nur eine Seite, so dass eine Reduzierung bzw. Splittung der Datasets nicht möglich ist.

Ich befürchte, du hast mich nicht verstanden.
Weißt du, was das DataSet im RTC-Report ist? Lass mal (einen beliebigen funktionierenden) RTC-Report in der Vorschau laufen und rufe dann Hilfe -> Info zu diesem Bericht auf (ggf. wiederholen, weil beim ersten Mal eine Hinweismeldung kommen kann).
All dieser Datenwust wird dem Bericht übergeben, und in jeder einzelnen Zeile wiederholt (!) sich die Bilddatei (im Feld Picture o.ä.), ganz egal, wo du das Bild nun druckst. Das macht diese Datei so riesig.
Ziel sollte es sein, in diesem Dataset das Picture-Feld nur in solchen Datensätzen gefüllt zu lassen, wo es auch abgefragt wird. Daher sollte man allerspätestens beim Druck der Rechnungszeilen das Bild-Tabellenfeld (jetzt sind wir wieder in den CC-DataItems) leeren.

Re: RTC: Fehler beim Rechnungsgruck / "Bis-Operator"

6. Juni 2012 15:35

Natalie hat geschrieben:Weißt du, was das DataSet im RTC-Report ist? Lass mal (einen beliebigen funktionierenden) RTC-Report in der Vorschau laufen und rufe dann Hilfe -> Info zu diesem Bericht auf (ggf. wiederholen, weil beim ersten Mal eine Hinweismeldung kommen kann).
All dieser Datenwust wird dem Bericht übergeben, und in jeder einzelnen Zeile wiederholt (!) sich die Bilddatei (im Feld Picture o.ä.), ganz egal, wo du das Bild nun druckst. Das macht diese Datei so riesig.
Ziel sollte es sein, in diesem Dataset das Picture-Feld nur in solchen Datensätzen gefüllt zu lassen, wo es auch abgefragt wird. Daher sollte man allerspätestens beim Druck der Rechnungszeilen das Bild-Tabellenfeld (jetzt sind wir wieder in den CC-DataItems) leeren.


Das ist ja eine Menge an Wust!!!! ... Ich habe jetzt mal mit CLEAR die Variablen geleert. In "Info zu diesem Bericht" sieht man eindeutig den Unterschied. Das Bild wird nur noch einmal berechnet. Aber das hat leider immer noch nicht gereicht ... jetzt bekomme ich zwar immerhin zwei Tage am Stück, aber mehr nicht .... :-(

Re: RTC: Fehler beim Rechnungsgruck / "Bis-Operator"

6. Juni 2012 16:17

Ohne dass ich jetzt daneben sitze, kann ich dir leider nicht beim Feintuning helfen ...

Zusammenfassung:
- Bild komprimieren, falls möglich (und natürlich zur Datenbank hochladen)
- DataSet optimieren: Bildfeld(er) so wenig wie möglich gefüllt lassen.

Re: RTC: Fehler beim Rechnungsgruck / "Bis-Operator"

8. Juni 2012 11:27

Natalie hat geschrieben:Ohne dass ich jetzt daneben sitze, kann ich dir leider nicht beim Feintuning helfen ...

Zusammenfassung:
- Bild komprimieren, falls möglich (und natürlich zur Datenbank hochladen)
- DataSet optimieren: Bildfeld(er) so wenig wie möglich gefüllt lassen.


Hallo Natalie,

so ich habe jetzt noch ein bisschen mit dem Bild herum experimentiert. Einen ganzen Monat bekomme ich nun fast raus und ansonsten wird der Monat in zwei gesplittet. Das ist absolut akzeptabel. Vorher ging ja nur eine Rechnung :lol:

Re: [gelöst] RTC: Fehler beim Rechnungsgruck / "Bis-Operator

12. Juni 2012 10:12

Und noch eine Ergänzung: Wer zum Thema noch ein paar Screenshots sehen möchte, wird hier fündig:
http://dynamicsuser.net/blogs/waldo/arc ... asets.aspx

Neben den sich wiederholenden Bildern (die das Dataset zu groß werden lassen - und einer alternativen Lösung!), geht es hier auch darum, wie im Dataset die leeren Felder (gekennzeichnet durch "< >") zustande kommen.