[Gelöst] Zeilenumbruch in Textfeld eines Reports

2. Juni 2021 13:35

Hallo zusammen,

ich würde gern in einem Textfeld Um genau zu sein die Artikelbeschreibung einen gezielten Textumbruch erzwingen.
Die Beschreibung setzt sich zusammen aus einer Speziellen Artikelnummer und der Beschreibung, und die Artikelnummer soll für sich alleine stehen.

Die Beschreibung wird im Code erzeugt :
Code:
PurchLineDescription := STRSUBSTNO('%1, %2, %3', Item."SBG No.",'\', Item."Additional attributes")

oder an anderer Stelle so:
Code:
 DescriptionFull := Item_GT."SBG No." + '\ ' + Item_GT."Additional attributes";


Jetzt hätte ich dort gern einen Zeilenumbruch dazwischen, wie man an beiden Beispielen sehen kann haben verschiedene
Suchen ergeben das dies mit dem Backslash zu bewerkstelligen sein soll. In beiden Fällen wird dieser aber einfach "nur" mit angezeigt.

Einen weiteren Tip die Textbox auf "Multiline = YES" zu stellen scheitert daran das ich diese Eigenschaft für das Textfeld nirgends finde.

Daher hoffe ich auf eure Hilfe.
Danke und Gruß
Mike
Zuletzt geändert von cracymike am 3. Juni 2021 10:12, insgesamt 2-mal geändert.

Re: Zeilenumbruch in Textfeld eines Reports

2. Juni 2021 15:20

Es kommt drauf an wo du es verwenden/anzeigen willst. Der Backslash ist sozusagen Classic NAV, wird in MESSAGE oder CONFIRM noch als Zeilenumbruch interpretiert. Wenn du in Reports einen Zeilenumbruch haben willst dann wirst du wohl sowas hier machen müssen:

CR :=13;
LF := 10;
CRLF := FORMAT(CR) + FORMAT(LF);

VAR:
CR = Char
LF = Char
CRLF = Text[30]

Re: Zeilenumbruch in Textfeld eines Reports

2. Juni 2021 15:50

Wenn es um die Anzeige in der Page geht, schau dir mal Page 42 "Sales Order" an, dort gibt es in einer eigenen Group ein Feld "WorkDescription" mit Prooperty MultiLine=Yes.
(Da ich keine NAV 2016 Installation habe hab ich das in NAV 2017 geschaut, ich hoffe das war auch schon in NAV 2016 vorhanden.)

Re: Zeilenumbruch in Textfeld eines Reports

2. Juni 2021 20:45

cracymike hat geschrieben:...
Suchen ergeben das dies mit dem Backslash zu bewerkstelligen sein soll. In beiden Fällen wird dieser aber einfach "nur" mit angezeigt.

Einen weiteren Tip die Textbox auf "Multiline = YES" zu stellen scheitert daran das ich diese Eigenschaft für das Textfeld nirgends finde.
...

Dabei handelt es sich um Hinweise für den alten NAV-Report-Designer bis Version 2009. Mit 2016 verwendest du wahrscheinlich das RDLC-Layout und Visual Studio.
Da funktioniert das nicht.

Der Backslash ist jedoch ein guter Anfang.
Danach ersetzt du den dann mit einem Replace()

Re: Zeilenumbruch in Textfeld eines Reports

3. Juni 2021 07:54

Na schon mal Danke.

Die Lösung mit CRLF hat funktioniert

Hab es jetzt entsprechend umgebaut.

Allerdings hab ich noch ein Verständnisproblem.

Wenn ich diese Zeile so anpasse :
Code:
PurchLineDescription := STRSUBSTNO('%1, %2, %3', Item."SBG No.", CRLF, Item."Additional attributes")


Gibt es den Zeilenumbruch wie gewünscht allerdings flankiert von zwei Kommas, diese sind ja in dem Aufbau enthalten ich dachte aber diese stellen
nur den "Trenner" zwischen den Werten da, sie werden aber in den String eingebettet. Wie kann ich den die Loswerden?

Einfach weglassen geht nicht da er mir dann Vorschlägt das ich eine Klammer setzen soll.

Gruß Mike

Re: Zeilenumbruch in Textfeld eines Reports

3. Juni 2021 08:31

Hallo,

warum lässt du die Kommas nicht einfach im STRSUBSTNO- Formatstring weg? :wink:

Und noch einen Tipp: Wenn das Feld im Report HTML-formatiert ist, funktioniert deine Lösung nicht. Dann muss du statt CRLF '<br>' übergeben.

Gruß Fiddi

Re: Zeilenumbruch in Textfeld eines Reports

3. Juni 2021 09:49

Du willst also sagen das die Kommas zwischen
Code:
%1, %2, %3
keine Trennpositionen sind sondern Teil des Strings welcher dann aufgefüllt wird.

So einfach wenn man es weis.

Danke für den Input, wieder was gelernt.

Da es nicht in HTML formatiert ist und ich mich vermutlich etwas unglücklich ausgedrückt habe, es handelt
sich letztendlich um die verschiednen auszugebenden Dokumente wie Rechnung u.s.w welche ich gerade anpasse.
Hoffe ich mal das mich das nicht gleich trifft, wenn aber doch werde ich mich an diese Information sofort erinnern.

Gruß Mike