+1 800 256 3608 (toll-free in North America) or +49 7531 90 60 10| service@combit.com

Textfeld über mehrere Zeilen

designer
(claudia meier) #1

Hallo,
ich habe ein Textfeld das beliebig viele Zeilen haben kann.
Im Designer habe ich das Feld z.B. mit ca. 3 Zeilen hoch gezogen.
Wie schaffe ich es, dass sich das Feld automatisch vergrößert ?

(claudia meier) #2

das Feld habe ich mittels
LlDefineVariableExt(njob, “Text”, cText, LL_TEXT, 0)
bzw.
LlDefineVariableExt(njob, “Text”, cText, LL_TEXT_ALLOW_WORDWRAP, 0)
hinzugefügt.Leider bleibt es bei der Höhe wie ich das im Designer definiert habe.

(Günther Schwarze) #3

Textobjekte können in LL nicht wachsen, nur schrumpfen. Also einfach das Objekt so groß wie maximal benötigt aufziehen. Wenn Du dahinter weitere Texte ausgeben willst könnte eine Tabelle mit freiem Inhalt die bessere Wahl sein: die passt ihre Größe automatisch an (innerhalb des Berichtscontainers) und funktioniert auch über mehrere Seiten problemlos.

(claudia meier) #4

nehmen wir mal an, dass der Benutzer über meine Software einen Brief erstellen kann.
Dieser Brief soll dann über List & Label ausgegeben werden.
d.h. der Benutzer kann dann maximal 30 oder 40 Zeilen ausgeben und wenn er mehr eingibt wird es einfach abgeschnitten ?
Bei meinen Benutzern könnte es auch sein, dass eine Seite nicht genügt und der Text über mehrere Seiten geht… :frowning:

(Günther Schwarze) #5

Hast Du meine Antwort ganz gelesen :wink: ? Schau Dir mal in der Beispielanwendung z.B. das Projekt “Rechnung mit Anschreiben” an, da wird genau sowas umgesetzt.

(claudia meier) #6

Hallo,
ich verstehe das nicht :frowning:

  • ich habe die Beispielanwendung geöffnet - hier den Bericht “Beispielanwendung/Brief.brf”
    Wenn ich hier den Text verlängere, funktioniert der Umbruch.

Zurück in meinem Bericht (im lst-Format) funktioniert das nicht.
1.) es wird ausgegeben “Seite 1 von 0”
2.) der Text wird nicht erweitert

kannst du mir einen TIpp geben ?
Danke

(Günther Schwarze) #7

Das klingt nach einem Fehler im Code. Machst Du die Druckschleife selber? Beachtest Du den Rückgabewert aller APIs? Hast Du mal ins Debug-Log geschaut?

(claudia meier) #8

Hallo,
ich glaube eigentlich nicht dass es am Code liegt. In einer anderen Liste klappt der Code gut.
Wie wird denn das Feld so eingestellt, dass dieses Feld automatisch erweitert/vergrößert wird ?

Ich habe es trotz Beispielanwendung leider nicht verstanden.
Welche Einstellung muss vorgenommen werden ?
Danke

(claudia meier) #10

Hallo,
gibt es denn da keinen Tipp?
Ich hätte eigentlich gedacht, dass das Problem in 5 Minuten gelöst ist - jetzt ist mein Problem nach fast einer Woche immer noch ungelöst :frowning:

(combit Support - Erdal Alacali) #11

Wie schon oben geschrieben können die Textobjekte nicht wachsen, die Größe muss man so groß wie maximal benötigt aufziehen.
Was den Seitenumbruch angeht, in unserem Brief Beispiel ist es ein “Formatiertes Text” Objekt, damit der Umbruch auch ausgelöst wird muss die Eigenschaft “Seitenumbruch” vom Objekt auf “True” stehen.

Wenn dies alles der Fall ist, dann wird wie schon von Günther Schwarze geschrieben, nicht korrekt auf die Rückgabewerte der API´s reagiert.
An dieser Stelle würde ich dann gerne auf unsere Sourcecode Beispiele verweisen, dort sind diverse Beispiele hinterlegt welche eine eigene Druckschleife verwenden.

(claudia meier) #12

Hallo,
nachdem ich sehr viel Zeit investiert habe, habe ich festgestellt, dass es an folgenden Befehl liegt:
LlDbAddTable

Wenn dieser Befehl ausgeführt wird, wird der Seitenumbruch nicht mehr durchgeführt.
:frowning:

Entferne ich den Befehl funktioniert die Ausgabe

(Günther Schwarze) #13

Das führt mich wieder dazu, dass ich denke, dass Du nicht alle Rückgabewerte richtig auswertest. LlDbAddTable schaltet in den Berichtscontainermodus, dann gibt es neu LL_WRN_TABLECHANGE zu berücksichtigen. Ein Logfile würde mehr als 1000 Worte sagen :wink: .