[RTC] Report Design Hidden Value eines Bildes im SK [Gelöst]

22. September 2011 16:04

Hallo zusammen,

ich bin zur Zeit in bischen amverzweifeln, da meine gedankliche Firewall nicht die Logik begreift, was beim Report passiert.

Ich habe einen Standard Report (Einkauf - Bestellung) etwas modifizert um das ganze für den Kunden schön zu machen. Dazu gehörte ein Briefkopf, welcher sich im Seitenkopf befindet und unter Visual Studio als sogenanntes eingebettetes Bild geführt wird. Da seine Anforderung war, diese mal auf Geschäftspapier und mal auf Blanko zu drucken, gibt in der Request Page ein Boolean, welches besagt, ob dies mit Briefkopf gedruckt wird oder ohne. Technisches Ziel ist es also mein Bild ein oder auszublenden aufgrund des Booleanwertes der Request Page. Die Variabel wird auch durch die (erste mögliche Section) hindurchgezogen auf mein Dataset. Da Felder aus dem Dataset nicht direkt in den Seitenkopf genutzt werden können, könnte ich den Trick anwenden in der ersten Tabelle die sich im Standard Report befindet (die kleine Tabelle von Einzeiler mit der Größe von 0,1cm-0,2cm welche versteckt ist) nutzen und dort ein neue Spalte hinzufügen, wo ich nun mein Booleanfeld als Value veranker. Über ReportItems!XXX.Value würde ich nun auch daran kommen, was auch recht gut funktioniert, bis der Report meint, er wird zu lang und er braucht ein logische 2. Seite. Ab da hat der Report keinen Zugriff mehr auf das Boolean und mein Ziel ist nicht erfüllt.

Also nutz ich die der Standard auch die Berichtsfunktionen. In diesem Falle Code.GetData() und Code.SetData(). Ich gebe mein Boolean also zu einem Standardfeld hinzu getrennt durch ein Charackter 177. Da alles String ist und es sonst nicht funktioniert, wandel ich mein Boolean per .ToString ebenfalls in ein String um und bekomme es schließlich in dieShared Object Variable des VBA's Code gespeichert. Da die Funktion Code.GetData grundsätzlich String auch zurück gibt, lasse ich mir mein Boolean testweise mal anzeigen.

Request Page --> Textbox Output
True ist "True"
False ist "False"

Diese Werte lassen sich auch mittels der VBA Funktion CBool() wunderbar in Booleans zurück verwandeln und auch ein NOT macht keine Probleme. Das Ergebnis ist das selbe :) einziger Fehlschlag den ich erleide ist, dass wenn ich es in meinem Hidden Property als Ausdruck des Bildes nutze, nur eins zu geben scheint.

Beispiel:
Request Page Boolean = True

Textbox als auch Hidden Value Ausdruck = "=CBool(Code.GetData(xx, x))"
Textbox steht "True"
Bild ist sichtbar :?: Hidden = Verstecken, wenn True dann sollte es nicht sichtbar sein :?:

1. Sache die mir schleierhaft erscheint.

Um den ganzen aber noch die Krönung zu geben bin ich hingegangen und haben im Hidden Property doch wieder auf ReportItems!XXX.Value zurück gegriffen. Diesmal aber auf meine Textbox, welche sich im Seitkopf befindet.

Request Page Boolean = True

Textbox Ausdruck = "=CBool(Code.GetData(xx, x))"
Hidden Ausdruck = "=ReportItems!Textbox.Value"

Textbox steht False
Bild ist sichtbar

sobald ich den Hidden Ausdruck rausnehme ändert sich das Boolean wieder. Kann mir das bitte einer erklären? Der SSRS möchte nicht mit mir sprechen und scheint jeglichen Dienst zu verweigern. Ich hab die Befürchtung es hasst mich. Aber mal Spass beiseite, das ist nicht logisch in meinen Augen und den Kunden auf Endlospapier drucken zu lassen ist keine Lösung, nur weil der SSRS streikt.

Danke schonmal für geistreiche ergüsse.

Mit freundlichen Grüßen
iPeon
Zuletzt geändert von iPeon am 23. September 2011 11:06, insgesamt 1-mal geändert.

Re: [RTC] Report Design Hidden Value eines Bildes im Seitenk

22. September 2011 16:51

iPeon hat geschrieben:Beispiel:
Request Page Boolean = True

Textbox als auch Hidden Value Ausdruck = "=CBool(Code.GetData(xx, x))"
Textbox steht "True"
Bild ist sichtbar :?: Hidden = Verstecken, wenn True dann sollte es nicht sichtbar sein :?:


Könntest du das mit ein paar wenigen Screenshots dokumentieren? Mir ist vom Lesen ganz schwindlig geworden :-)

Re: [RTC] Report Design Hidden Value eines Bildes im Seitenk

23. September 2011 09:49

Guten Morgen Natalie,

konnte gestern leider nicht die selbe Systemumgebung nutzen, da ich auf meinen Laptop nur NAV R2 hab und der Kunde noch SP1 fährt. Ist ein wildes Thema und schwierig zu Googlen, weils doch sehr speziell ist :)

RDL in Visual Studio.png

Links die Textbox welche den übergebenen Parameter des Shared Objects raus holt und in ein Boolean zurückverwandelt. Selber Ausdruck in der Hidden Property des Bildes.

Nun die Ergebnisse dieses Umstands:
Eingabe ist FALSE
Druck mit Briefkopf False.png

Hier scheint alles in Ordnung zu sein

Eingabe ist TRUE
Druck mit Briefkopf True.png

Hier wiederum nicht, den man kann das Bild im Hintergrund sehen

Fortsetzung folgt, da ich nur 5 Dateien Uploaden darf...
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: [RTC] Report Design Hidden Value eines Bildes im Seitenk

23. September 2011 09:52

Die Logik müsste natürlich anders rum sein, also mit einem NOT umgewandelt werden. Das ist mir durchaus bewusst, aber so lässt sich besser zeigen. Kommen wir zu dem Krönchen.

RDL in Visual Studio 2.png

Ich habe hier nochmal eine gleiche Textbox erstellt um das Phänomen besser zu zeigen.

Eingabe ist FALSE
Druck mit Briefkopf False 2.png

Auch hier scheint wieder alles in Ordnung

Eingabe ist TRUE
Druck mit Briefkopf True 2.png

Doch jetzt spaltet sich mein Boolean in einen Triniärcode. Ja / Nein / Vielleicht :?:

Ich hoffe das erklärt es besser...

*EDIT*
Ach ja, wenn ich die Zuweisung auf die andere Textbox änder tauschen sich die Booleans aus. Ist dann genau anders rum.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: [RTC] Report Design Hidden Value eines Bildes im Seitenk

23. September 2011 10:11

iPeon hat geschrieben:Doch jetzt spaltet sich mein Boolean in einen Triniärcode. Ja / Nein / Vielleicht :?:

Sehr gut, nach dem Begriff hab ich schon lange gesucht :mrgreen:

Vorweg: Wenn du testest, dann musst du unbedingt das Drucklayout (oben in der Vorschau das kleine grüne Druckersymbol) benutzen, da die Seitenansicht sonst falsche Ergebnisse liefern kann (betrifft insbesondere die Seitenumbrüche). Oder sind das schon deine Ergebnisse des Druckerlayouts?

Weiterhin wage ich zu behaupten, dass es generell keinen Unterschied macht, ob du mit ReportItems oder Code.GetData auf "ortsfremde" Werte zugreifts. Im Grunde genommen ist Code.GetData nichts anderes als die Platz sparende Version von ReportItems. Die Funktion umgeht lediglich das Problem, dass du für jeden Wert eine eigene Textbox brauchst. Ergo gilt auch hier: Bei Seitenumbrüchen gehen die Werte verloren.
Man möge mich gern korrigieren.

Re: [RTC] Report Design Hidden Value eines Bildes im Seitenk

23. September 2011 10:23

Mmh, ich suche grade verzweifelt das kleine grüne Druckersymbol. Ich finde es weder in der SP1 noch im R2 :S

Du hast durchaus Recht, das es egal ist ob ich ReportItems nutze oder Code.GetData() in meinem Fall. Sollte das ReportItem im Seitenkörper sein und der Verweis dann im Steitenkopf gibt es aber ein Problem beim Seitenumbruch. Sobald du aber einen Seitenumbruch hast, funktioniert Code.GetData() noch, weil du im Hintergrund eine Shared Object hast, welches sich global im Report befindet und du trotz Seitenumbruch immer noch zugriff drauf hast.

Seitenumbruch ist dementsprechend nicht mein Problem. Das war es vorher...

Re: [RTC] Report Design Hidden Value eines Bildes im Seitenk

23. September 2011 10:31

iPeon hat geschrieben:Mmh, ich suche grade verzweifelt das kleine grüne Druckersymbol. Ich finde es weder in der SP1 noch im R2 :S

Schau mal hier.
Es ist allerdings nur dann sichtbar (zusammen übrigens mit dem Export nach PDF und Excel), wenn im Report-Quelltext (C/AL) kein einziges CurrReport.PREVIEW aufgerufen wird.

Re: [RTC] Report Design Hidden Value eines Bildes im Seitenk

23. September 2011 10:51

Evtl. noch eine andere Möglichkeit? Hab im C/AL (Dataitem als auch Section) alle CurrReport.PREVIEW auskommentiert, aber ich bekomme diese Buttons leider nicht.

*EDIT*
STOP! Vorschau ist wie gehabt, beim Drucken macht ihm Falle TRUE auch alles TRUE und das Bild verschwindet, wie gewünscht. Ich krieg nen Anfall...
Bringt mich vor das nächste Problem, dass der Kunde sich beschwerden wird, dass die Vorschau ja absoluter Mist ist -.-

Erklärt aber immer noch nicht das Trinäre Boolean in der Vorschau. Lösung also - vertraue NIE der Vorschau?

*EDIT 2*
Hab doch das Drucklayout hinbekommen... Man sollte auch den richtigen Report anpassen :S So früh am Tag und schon so durcheinander. Da macht er die Vorschau richtig.

Ich bedanke mich herzlichst bei dir Natalie und hoffe, dass sich andere nicht durch die Vorschau so durcheinander bringen lassen. Thematik zu 98% gelöst, die 2% scheinen ein Bug in NAV (entschuldigung Feature) zu sein.

Re: [RTC] Report Design Hidden Value eines Bildes im Seitenk

23. September 2011 11:07

iPeon hat geschrieben:Evtl. noch eine andere Möglichkeit? Hab im C/AL (Dataitem als auch Section) alle CurrReport.PREVIEW auskommentiert, aber ich bekomme diese Buttons leider nicht.
Hattest du das Objekt auch mal txt exportiert und so gesucht? Nur zur Sicherheit ;-)
EDIT: hat sich ja scheinbar doch erledigt :-)

Lösung also - vertraue NIE der Vorschau?

Im Zweifel: leider ja.
Schau vielleicht außerdem hier.
EDIT: Dies vielleicht als Erläuterung des "Features".