[Gelöst] [RDLC] Tablix und Leere Zeilen / Seiten

28. März 2019 11:50

Hi,

ich muss mal einige Reports bei uns anpassen weil seit der Einführung von NAV2018 und RDLC Berichte gefühlt doppelt so viel Papier verbraucht wird...
Aktuell 3 leere seite (nur mit Header/Footer)

Ich versuche nun herauszufinden wie ich am besten die Leerzeilen /Seiten vermeide und möglichst effizient die Inhalte zusammenfasse.

Hier hängen 2 Textboxen "in der luft" und scheinen eine Leerzeile im Report zu verursachen, diese würde ich gerne in ein Tablix packen um zu schauen ob die Leerzeile dann auch gedruckt wird.
Dann müsste ich auch nicht die Visibility für jede TextBox handeln, sondern könnte es für jede Zeile machen.

Wie bekomme ich an der Stelle (oberhalb des grünen Tablix) ein weiteren Tablix eingefügt?

rdlc1.png

rdlc2.png


Welche Tipps habt Ihr noch um Leere Seiten zu finden? ,ich hab zwar schon alles eingefärbt, aber bei den leeren Seiten, bleibt es weiß
Die Reporteigenschaft ConsumeContainerWhiteSpace = True. Können irgendwelche Report Designer Einstellungen Einfluss nehmen? (PrintOnlyIfDetail ,Currreport.Skip oder und oder ... ? )

Danke!
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von elTorito am 29. März 2019 13:19, insgesamt 1-mal geändert.

Re: [RDLC] Tablix und Leere Zeilen / Seiten

28. März 2019 13:40

Hallo,

die leere Seite kommt meistens, wen der Report + die Seitenränder zu breit werden.

zu deinen Tablixen für die Texte:
Fasse die Texte schon in NAV zusammen. Aus den Zeilen:
Code:
Line No.       Text
10000           Dies ist Zeile 1
20000           Dies Zeile 2


machst du VOR der Übergabe den Text:
Code:
Dies ist Zeile 1<br>Dies Zeile 2

und gibst das ganze als EINE Textvariable im übergordneten Record aus. (daran denken, in der letzten Zeile das '<br>' weg zu lassen)
Im RDLC musst du dann nur noch EIN Textfeld benutzen, das die Eingenschaft "CanGrow=True" hat, und dessen Expression als HTML formatiert hinterlegt ist. (dazu im Feld die Expr. markieren und dann über Eigenschaften als HTML hinterlegen). Um alles weitere kümmert sich das RDLC. (auf diesem Wege kann man auch formatierte Texte ausgeben mit Fett, unterstrichen,... alles HTML das RDLC erlaubt)
Wenn du jetzt noch ein zusätzliches Feld oder Text benötigst, kannst du das schon im NAV dem anderen Text hinzufügen oder auf die gleiche Art und Weise ausgeben.

Komm(en/t) diese(r) Text(e) nur manchmal, solltest du die Texte in einer Textbox in einer oder mehreren Tablix- Zeile(n) ausgeben. Dort setzt du dann die Hidden- Property der Tablix-Zeile auf '=Field!Text.Value=""' und die Zeile verschwindet auf dem Beleg, wenn kein Text vorhanden ist.

Gruß Fiddi

Re: [RDLC] Tablix und Leere Zeilen / Seiten

28. März 2019 16:26

Hi Fiddi,

dankeschön. Das hilft mir schon sehr weiter.

Weiße Seiten/Zeilen sind soweit alle weg :-)

Jetzt habe ich noch das Problem dass mir einige Controls verrutschen

Wenn das Gelb Markierte Textfeld einen Wert enthält soll es angezeigt werden.
Wenn es angezeigt wird, verrutscht mir das Rectangle darunter um die Höhe der TextBox.

rdlc3.png

rdlc4.png


Danke
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: [RDLC] Tablix und Leere Zeilen / Seiten

28. März 2019 17:58

Hallo,

das ist ein wenig diffizil.
Ist die Textbox Hidden, wenn sie nicht angezeigt wird? Falls ja, ist das normales Verhalten.
Es gibt jetzt zwei Möglichkeiten:
1. du lässt das Feld in jedem Fall anzeigen, auch wenn es leer ist.
2. du platzierst rechts neben dem Feld ein Rechteck ohne Rahmen und Inhalt, also quasi weißer Adler auf weißem Grund, um den Abstand einzuhalten.

Gruß Fiddi

Re: [RDLC] Tablix und Leere Zeilen / Seiten

29. März 2019 09:23

Hi Fiddi,

danke, das hat auch geholfen, Feld war auf Hidden wenn bestimmter Wert vorhanden war.
Da ich im Reportdesigner die Variable schon "Vordefiniere":

Code:
IF locPaymentMethod.GET("Sales Invoice Header"."Payment Method Code") THEN
  IF("Sales Invoice Header"."Cash Registration Order") THEN
    EXIT('Zahlung: ' + locPaymentMethod.Description)
  ELSE
    EXIT('Zahlungsformcode: ' + "Sales Invoice Header"."Payment Method Code")
ELSE EXIT(' ');


Habe das Feld jetzt Visible, und es wird halt leer gedruckt und die Box verrutscht nicht mehr.

Alles Super Tips :-)

Dann muss ich jetzt noch herausfinden warum der "Body" auf die nächste Seite druckt, und dann hab ich es (glaube ich) erstmal, vermutlich wird je nachdem ob dies oder jenes gedruckt wird alles nochmal zersört ;-) Ich teste grad erstmal nur den "idealfall" wo alle betroffenen Sektionen etwas beinhalten.

Vielleicht noch eine Idee warum das so sein kann.
Das breiteste Control ist 18,4 cm, demnach sollte es in der Breite eigentlich passen.

Ich würde jetzt als nächstes versuchen die unteren Tablixe (im grünen Bereich) als Zeilen in der Tablix darüber einzufügen. Gute Idee? :?: :-?

rdlc5.png


rdlc6.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: [RDLC] Tablix und Leere Zeilen / Seiten

29. März 2019 10:03

Hallo,

Ich würde jetzt als nächstes versuchen die unteren Tablixe (im grünen Bereich) als Zeilen in der Tablix darüber einzufügen. Gute Idee?

Im Idealfall besteht ein RDLC- Report nur aus einem einzigen Tablix im Body. (Ausnahme: du möchtest zwei unterschiedliche Body- Layouts in einem Bericht implementieren, aber eher selten)
Das breiteste Control ist 18,4 cm, demnach sollte es in der Breite eigentlich passen.

Kann sein, aber unwahrscheinlich :wink:
Wenn du den Bericht auf DIN-A4 Hochformat definiert hast, ist das Papier 21 cm breit.
Hast du jetzt im Bericht einen linken Rand von 2cm und einen rechten Rand von 1cm definiert, ergibt das 2 + 18,4 + 1 = 21,4cm. Das ist zu breit. :-?

Ein weiteres Problem könnten Rechtecke oder auch der Report- Body selbst sein, die nicht mit dem letzten Control abschließen. Dadurch wird Platz reserviert, der eigentlich nicht nötig ist.
Um das zu verhindern, gehst du in die Properties des jeweiligen Containers, und änderst die Höhe auf einen Wert, der definitiv kleiner ist als die tatsächliche Höhe ist. Also angezeigte Höhe 10cm, du änderst das auf 1cm.
Der Reportdesigner schaut dann wie hoch der Container tatsächlich sein muss, damit auch das unterste Control noch hinein passt, und passt die tatsächliche Höhe an. D.h. er macht aus deinem 1cm z.B. wieder 6,795cm.

Noch einen Tipp:
Ich hoffe, du druckst immer nur einen Beleg zur Zeit aus, oder du musst deine Belege nicht in Fremdsprachen gemischt ausdrucken, denn die Funktion First(..) wird dafür sorgen, dass immer nur der erste übergebene Wert ausgegeben wird-> erster Beleg Englisch-> alle Belege mit englischen Captions.

Gruß Fiddi

Re: [RDLC] Tablix und Leere Zeilen / Seiten

29. März 2019 11:08

Hi Fiddi,

danke für deine Antworten.
Dann werde ich mal alles in ein Tablix packen. Ich glaub dann fallen zukünftige Änderungen auch leichter.

Um meine Fragestunde noch abzuschließen .-)

Es gibt eine Tablix Rows welche mehr Eigenschaften haben als andere. Ich sehe aber nicht was die unterscheidet.
Einige Rows haben bei Eigenschaften die Gruppierungen Font, General, Lists, bei Localisation mehr Eigenschaften.

Danke

Re: [Gelöst] [RDLC] Tablix und Leere Zeilen / Seiten

29. März 2019 13:21

Es passt nun alles auf einer Seite so wie es soll.

Allerdings habe ich es nicht hinbekommen alles in einer Tablix unterzubringen, das gab da ein paar Tablixen die Partout nichts gedruckt haben wenn Sie innerhalb der "globalen" Tablix eingefügt wurden.
Da gucke ich nochmal, jetzt weiß ich ja so ungefähr wie der Hase läuft ;-)

Vielen Dank nochmal.