TECHNISCHER BLOG

RDLC - bedingte Zeilenumbrüche mit VBCRLF

Stellen wir uns die folgende Situation vor. Wir müssen eine Adresse im Berichtskopf darstellen. Die Adresse ist ein 8-dimensionales Array, in dem jeweils unterschiedliche Adressteile enthalten sein können. Es gibt zwei Möglichkeiten, alles in Microsoft Dynamics NAV Berichtslayout zu gestallten.

Die erste wird häufig in allen Standardberichten verwendet. Es gibt 8 Textfelder. Jedes Textfeld bildet eine Variable aus dem Report DataSet ab. Das Layout könnte ungefähr so aussehen:

Dynamics NAV (Navision) Bericht-Layout mit Werten 1

Bei der zweiten Methode wir ein Textfeld im Layout mit einer Funktion erstellt, die alle 8 Variablen in diesem Feld kombiniert.

Dynamics NAV (Navision) Bericht-Layout mit Werten 2

Beim zweiten Ansatz gibt es mehr Flexibilität, insbesondere wenn die folgenden Sachen berücksichtigt werden:

  1. Der Text kann die Breite des eigenen Felds überschreiten. Für solche Fälle gibt es in Properties des Feldes eine Option zur Erweiterung des Feldes ("Allow height to increase"). Wird die ausgewählt, wird es wahrscheinlicher, der erweiterte Text überlappt den Text aus dem nächsten Textfeld.
  2. Einige Adress-Textfelder können keinen Wert haben. In solchem Fall werden die als leer angezeigt und es kann so aussehen, als ob es Lücken zwischen Textfelder gäbe. (Das ist bei dem Lieferdatum natürlich nicht der Fall. Die leeren Felder werden durch einer C/AL-Funktion aussortiert).

Als eine Alternative kann so eine VB Funktion direkt im Layout verwendet werden:

Dynamics NAV (Navision) Bericht-Layout - Beispiel der VB Funktion mit VBCRLF

Bedingte Verwendung von der Funktion 'VBCRLF' ermöglicht alle leere Felder zu überspringen und einen Zeilenbruch zu machen nur dann, wenn die Zeile hat einen Wert. Andersgesagt, die Verwendung der Erweiterungsfunktion ("Allow height to increase") wird nicht zum Überlappen auf dem nächsten Feld führen.

Dynamics NAV TM Entwickler und Berater View Konrad Buczkowski's LinkedIn profile Konrad Buczkowski

Wir verwenden Cookies
Einige von ihnen sind essenziell (z.B. speichern von gewählten Optionen des Lizenzrechners), während andere uns helfen unsere Website bei Werbung zu analysieren. Sie können dies akzeptieren oder ablehnen sowie diese Einstellungen jederzeit aufrufen und Cookies auch nachträglich abwählen (im Fußbereich unserer Website unter "Cookies Einrichtung"). Nähere Hinweise in unserer Datenschutzerklärung.
Individuelle Cookie Einstellungen
Notwendig ( 3 / 3 )
Notwendige Cookies helfen dabei, eine Webseite nutzbar zu machen, indem sie Grundfunktionen wie Seitennavigation und Zugriff auf sichere Bereiche der Webseite ermöglichen. Die Webseite kann ohne diese Cookies nicht richtig funktionieren.
v
Details in dieser Gruppe einblendenDetails in dieser Gruppe ausblenden
  • AkzeptiertNameKonfigurierungscookieAnbieterseccount.comZweckSpeichert vom Besucher in einem Feld ausgewählte Einstellungen.Cookie Namemod_cookies_125Cookie Laufzeit1 Jahr
  • AkzeptiertNameSessionAnbieterSeccount.comZweckCookies, die für die Sessionsitzung auf der Website verantwortlich sind.Cookie Names81a877_vv, s81a877_verify, s81a877, s81a877_v, c_verifyCookie Laufzeit1 Tag, Session
  • AkzeptiertNameCookiesAnbieterSeccount.comZweckCookies, die die Verwendung von Cookies bestätigen.Cookie Namec_verifyCookie Laufzeit38 Monate
Statistiken ( 1 / 1 )
Statistik-Cookies helfen Webseiten-Besitzern zu verstehen, wie Besucher mit Webseiten interagieren, indem Informationen anonym gesammelt und gemeldet werden.
v
Details in dieser Gruppe einblendenDetails in dieser Gruppe ausblenden
  • AkzeptiertNameGoogle AnalyticsAnbieterGoogle LLCZweckRegistriert eine eindeutige ID, die verwendet wird, um statistische Daten dazu, wie der Besucher die Website nutzt, zu generieren.Datenschutzerklärunghttps://policies.google.com/privacyCookie Name_ga,_gat,_gidCookie Laufzeit24 Monate
aaa1604053742