[GELÖST][RDLC] Report Rendering von Bildern

19. August 2015 09:49

Hallo,

Ich möchte an einem Beleg ein Logo andrucken das sich innerhalb eines Massendrucks ändern kann.
Ich habe dazu die Standardvorgehensweise aus dem Beleg 205 übernommen.
Im Dataset sind die Unterschiedlichen Bilder an den richtigen Stellen enthalten.
Eine Textbox die mir das Bild als Text anzeigt, wird auch richtig dargestellt(und ändert sich korrekter Weise pro Beleg).
Die Picturebox bleibt davon jedoch unberührt. Das Bild wird einmal angedruckt und ändert sich dann nicht mehr.
Hat jemand einen Anhaltspunkt an dem ich noch ansetzen könnte?
langsam bin ich echt ratlos..
Zuletzt geändert von b.denger am 21. August 2015 11:30, insgesamt 2-mal geändert.

Re: [RDLC] Report Rendering von Bildern

19. August 2015 09:58

Hallo,

das erste Problem ist der Massendruck. Wie groß ist die Menge der zu druckenden Logos. wenn das in eine Größenordnung kommt, dann kannst du das Logo nicht mehr als Parameter an den Report übergeben, weil dann der Speicherplatz nicht mehr ausreicht, um den Druck zu rendern.
Ansonsten müsste die Übergabe aber funktionieren, wenn du auf darauf achtest, dass du im Boddy den gleichen Bildindex übergibst, den du auch im Header abfragst. Außerdem musst du natürlich darauf achten, dass das Bild mit Jedem Gruppenwechsel neu übergeben wird, und nicht nur einmal am Anfang.

Gruß Fiddi

Re: [RDLC] Report Rendering von Bildern

19. August 2015 10:15

Optimierungen bezüglich der OutOfMemory Exception habe ich schon vorgenommen, sollte also keine Probleme machen.
Wie gesagt funktioniert die übergabe des Bildes an den Header eigentlich einwandfrei, da ich den string in der Textbox anzeigen lassen kann und dieser auch pro Beleg wechselt.
Die Texboxen auf die ich mit der SetPicture Funktion zugreife befindet sich in einer Liste die sich nach der Belegart & Nummer Gruppiert.

Re: [RDLC] Report Rendering von Bildern

19. August 2015 10:21

Die PictureBox ist auch wie im Header des Berichts wie in Report 205, nicht in einem GroupHeader. Letzterer ist statisch.

Gruß Fiddi

Re: [RDLC] Report Rendering von Bildern

19. August 2015 12:02

Ja, die Picturebox ist im Berichtsheader

Re: [RDLC] Report Rendering von Bildern

19. August 2015 14:12

Unter NAV 2013 ist das glaube ich ein bekanntes Problem. Texte andern sich, aber Bilder nicht. Möglicherweise funktioniert es unter 2015.

Re: [RDLC] Report Rendering von Bildern

19. August 2015 14:29

Hallo,

Unter NAV 2013 ist das glaube ich ein bekanntes Problem. Texte andern sich, aber Bilder nicht. Möglicherweise funktioniert es unter 2015.


Bei mir funktioniert das ohne Probleme, ich nutze allerdings auch nicht eine der Standard- Reports als Muster :mrgreen:

Falls es möglich ist, würde ich eh die Bilder in den Report einbinden, und dann nur noch umschalten, das beschleunigt den Report sicherlich, und verkleinert die Renderinggröße.

Gruß, Fiddi

Re: [RDLC] Report Rendering von Bildern

19. August 2015 14:44

Einbinden kann ich es nicht, da die Bilder sich dynamisch Ändern sollen.

Re: [RDLC] Report Rendering von Bildern

19. August 2015 14:49

Einbinden kann ich es nicht, da die Bilder sich dynamisch Ändern sollen.


Ist das eine Anzahl von 10 Stück, oder ist es das Foto des Empfängers?

Gruß, Fiddi

Re: [RDLC] Report Rendering von Bildern

19. August 2015 15:01

SO in etwa kann man es sich vorstellen ^^
Nicht direkt das Foto des empfängers aber ein Logo das (indirekt) am Beleg hängt

Re: [RDLC] Report Rendering von Bildern

19. August 2015 15:05

Nicht direkt das Foto des empfängers aber ein Logo das (indirekt) am Beleg hängt


Das ein Logo bei mir am Beleg hängt, habe ich auch. Die Frage war nur, ob wir hier von 10 bekannten festen Logos reden, oder von 100, bzw. die sich jeden Tag ändern?

Gruß, Fiddi

Re: [RDLC] Report Rendering von Bildern

19. August 2015 15:10

Der Kunde möchte das Logo selber einbinden Können.
Die Logos werden sich im Laufe der Zeit nicht oft ändern.

Re: [RDLC] Report Rendering von Bildern

19. August 2015 15:36

fiddi hat geschrieben:Hallo,

Unter NAV 2013 ist das glaube ich ein bekanntes Problem. Texte andern sich, aber Bilder nicht. Möglicherweise funktioniert es unter 2015.


Bei mir funktioniert das ohne Probleme
als sich ändernde Bilder im Seitenkopf aus der Datenbank?

Re: [RDLC] Report Rendering von Bildern

19. August 2015 15:43

SilverX hat geschrieben:als sich ändernde Bilder im Seitenkopf aus der Datenbank?

Wenn du damit meinst, ob ich in einem Ausdruck (mehrere Belege in einem Druckjob z.B. Sammelrechnungsdruck), mit unterschiedlichen Logos arbeiten kann? dann kann ich das uneingeschränkt mit Ja beantworten.
Aber wie gesagt, ich verwende, wie du ja weißt, auch nicht den Standard als Vorlage. :mrgreen:

Gruß Fiddi

Re: [RDLC] Report Rendering von Bildern

19. August 2015 15:51

Ich habe jetzt nochmal einen komplett neuen Bericht aufgesetzt.
SetPicture im Header (In der Hiddenproperty)
GetPicture In der Picturebox(In der Value Property)
Fields!Picture.Value in der Liste im Textkörper die sich nach der Belegnummer Gruppiert(In der Value Propertie) Textfeld.Hidden = false

Uuuund es funktioniert immernoch nicht..
Mir fallen langsam echt keine weiteren anhaltspunkte ein

@Fiddi
Was machst du denn anders das die Picturebox bei dir neu geladen wird und bei mir nicht? :-D

Re: [RDLC] Report Rendering von Bildern

19. August 2015 16:02

Was machst du denn anders das die Picturebox bei dir neu geladen wird und bei mir nicht?


Wahrscheinlich so ziemlich alles :mrgreen:

Während ich mal schaue, was da anders ist, hast du dir schon mal die Daten deines Reports angeschaut, ob deine Bilddaten auch zur rechten Zeit übertragen werden (im 1. Datensatz des Belegs). (Seitenansicht/Hilfe/Info über diesen Bericht/...)?
Eine weitere Sache die auch immer zu merkwürdigen Ergebnissen führt, ist die Position des Objekts. D.h. des Setzen der Bilddaten im Header muss u.U. über der Ausgabe des Logos im Beleg erfolgen.
Wenn es sich um Belege handelt, funktionieren denn die Standard- Belege?

Gruß Fiddi

Re: [RDLC] Report Rendering von Bildern

19. August 2015 16:18

fiddi hat geschrieben:
SilverX hat geschrieben:als sich ändernde Bilder im Seitenkopf aus der Datenbank?

Wenn du damit meinst, ob ich in einem Ausdruck (mehrere Belege in einem Druckjob z.B. Sammelrechnungsdruck), mit unterschiedlichen Logos arbeiten kann? dann kann ich das uneingeschränkt mit Ja beantworten.
Aber wie gesagt, ich verwende, wie du ja weißt, auch nicht den Standard als Vorlage. :mrgreen:

Gruß Fiddi
das hat eigentlich nichts mit den Standard zu tun, sondern mit einer technischen Einschränkung. Ich wäre echt interessiert, was du da anders machst...

Re: [RDLC] Report Rendering von Bildern

19. August 2015 16:46

das hat eigentlich nichts mit den Standard zu tun, sondern mit einer technischen Einschränkung. Ich wäre echt interessiert, was du da anders machst...

Es gibt eigentlich kaum einen Unterschied zwischen dem Standard und meinem Weg in dem Teil wann ich etwas tue. Ich übergebe die Werte an der gleichen Stelle, wie auch der Standard.
Nur der Weg ist ein komplett anderer, da ich mit symbolischen Namen arbeite und nicht mit den Indexen. Es gibt es bei mir nur zwei Funktionen für den Austausch zwischen Header und Boddy, da ich das Logo schon im C/AL- Teil in Base64 konvertiere (warum soll der RDLC- Generator das Logo in Base64 konvertieren für die XML-Ausgabe, im Report wieder zurück, damit ich das Ganze noch mal wieder in Base64 konvertieren kann für die Übergabe an den Header). Außerdem bereite ich den Großteil der übergebenen Daten bereits im C/AL für die Übergabe an den Header bzw. Footer auf.

Gruß Fiddi

Re: [RDLC] Report Rendering von Bildern

19. August 2015 17:20

Könntest du mir erklären wie man das macht?
Wär echt klasse wenn das klappt..

Re: [RDLC] Report Rendering von Bildern

19. August 2015 17:47

Könntest du mir erklären wie man das macht?


Könnte ich schon, nur bekomme ich dann wahrscheinlich Ärger mit meinem Chef. Außerdem gibt es für soetwas wie "Advanced Reporting" Schulungen bei einem allseits bekannten NAV- Schulungspartner, die dort 3 Tage dauern. Diese Zeit benötigst du auch um die ganzen Tricks, Gemeinheiten und "undokumentierten" Funktionen kennenzulernen. Nach dem was ich von meinem Kollegen gehört habe, entspricht das in etwa meinem Kenntnisstand, den ich mir über mehr als ein halbes Jahr regelmäßiger Beschäftigung mit dem Thema angeeignet habe.
Außerdem ist das meiste von meinem Know-How aus dem Internet geklaut, also frei verfügbar. Den Rest bekommt man mit etwas Nachdenken hin. :mrgreen:

Gruß Fiddi

Re: [RDLC] Report Rendering von Bildern

20. August 2015 08:19

Ich habe selbst an einer solchen advanced Reporting Schulung teilgenommen. Dort werden jedoch auch nur die standard Methoden vermittelt was get und setdata betrifft.
Ich wüsste nicht wie ich einen base64 string an das layout geben soll.. Den Datentyp bigtext kann ich hier scheinbar nicht übergeben.
Ich werde es weiter probieren und das Resultat dann anschließend hier Posten. Davon lebt ein Forum ja schließlich

Re: [RDLC] Report Rendering von Bildern

20. August 2015 09:00

Den Datentyp bigtext kann ich hier scheinbar nicht übergeben.


musst du ja auch nicht. Auch Text (ohne Größenangaben) darf in NAV inzwischen 2GB groß werden, wenn das nicht reicht, hast du eh ein Problem :-?

Und genau diese Eigenschaft habe ich wirklich intensiv genutzt.
Ein weiterer Tipp was das Reporting mit RDLC- angeht, ist die Anzahl der übergebenen Datensätze zu reduzieren. In meinen Reports besteht eine Rechnung für eine Position nur aus einem übergeben Datensatz.
Was die Text-Indexe angeht, ist das im Prinzip nichts anders als die normalen Funktionen, nur das in einer Liste nach dem Text gesucht wird, und nicht nach einer Zahl. :wink:

Gruß Fiddi

Re: [RDLC] Report Rendering von Bildern

20. August 2015 11:05

Trotz der Konvertierung im CAL Teil mithilfe von .Net ändert sich das Logo im Belegkopf nicht.
Mit einer Textbox im Reportheader lässt sich der String korrekt darstellen.

Re: [RDLC] Report Rendering von Bildern

20. August 2015 11:31

Hallo,

also da habe ich absolut keinen Unterschied zwischen Standard und meiner Implementierung.
Wenn das Logo als Text im ReportHeader ankommt, dann fällt mir eigentlich nur noch ein, das dein Logo zu hoch sitzt oder vor der Übergabe des Logotextes gerendert wird (Logo zu hoch oder zu weit links) .

Was passiert denn, wenn du die Logo- Textbox an der gleiche Stelle ausgibst, wie das Logo.

Könnte es sein, das dein Logo einem Expression- Shortcut zum Opfer fällt?
im RDLC- Visualbasic werden Boolsche Verknüpfungen im Gegensatz zu NAV abgekürzt. D.h. bei einem Vergleich "(True OR FunktionDieIrgenwasTutUndTrueZurückliefert) wird die Funktion nicht ausgeführt, das der Vergleich bereits vorher zu einem eindeutigen Ergebnis kommt.

Gruß, Fiddi

Re: [RDLC] Report Rendering von Bildern

20. August 2015 11:58

Es ändert sich nichts an den Controls wenn ich die Positionierung Verändere.
Die Textbox funktioniert, die PicBox nicht..
Ich habe momentan keine Hidden-Eigenschaft festgelegt die mir Probleme machen könnte.
Mein Logo befindet sich oben rechts, 5 mm unter den Setdata-Boxen(die links oben bei location :"0cm;0cm" stehen )
Selbst wenn auf Seite 5 Ein Logo kommt und auf Seite 6 ein leerstring übergeben wird, ändert sich das Bild nicht