Seite 1 von 1

Bei Textüberlauf durch Event Full aktuelles Objekt überschreiben

Verfasst: 28.08.2014, 11:27
von dafonk
Hallo zusammen,

wie schaffe ich es, beim Event "Full" das auslösende Objekt zu überschreiben.

Das ist mein Code, der bei "Full" ausgeführt wird:


app.alert("Text1 läuft über, bitte in Text2 weiterschreiben!");

Text2.rawValue = xfa.event.newText;

xfa.host.setFocus(Text2);

Text1.rawValue = "siehe Text2";


Vielen Dank vorab und Grüße

Dafonk



Bei Textüberlauf durch Event Full aktuelles Objekt überschreiben

Verfasst: 28.08.2014, 13:44
von nele_sonntag
Hallo Dafonk,

mal eine ganz andere Frage. Was bezweckst du denn damit? Du hättest nämlich auch ohne Scripting die Möglichkeit einfach zwei Inhaltsbereiche auf der Masterseite anzulegen und dort den Überlauf (einfach) einzustellen.

LG Mandy

Bei Textüberlauf durch Event Full aktuelles Objekt überschreiben

Verfasst: 28.08.2014, 13:47
von nele_sonntag
Im Übrigen fehlt dir natürlich eine essentielle Einstellung, wenn Du Dir mal die Hilfe (F1) anschaust und dort "full":

Code: Alles auswählen

full-Ereignis     Beschreibung

Wird ausgelöst, wenn beim Ausfüllen von Formularen mehr als die maximal  zulässige Menge an Inhalt in ein Feld eingegeben wird. 

Angenommen, die  Eigenschaft "Länge begrenzen" für ein Feld wurde auf 5  eingestellt und ein Benutzer versucht, die Zeichenfolge abcdef einzugeben. 

In diesem Fall wird das Ereignis full initiiert, sobald der Benutzer den Buchstaben  f eingibt.
Dann tut auch Dein Script etwas. :)

LG Mandy

Bei Textüberlauf durch Event Full aktuelles Objekt überschreiben

Verfasst: 28.08.2014, 13:50
von nele_sonntag
Obwohl..ich gestehe..deins tut auch etwas...insofern weiß ich jetzt gar nicht ganz genau, was du eigentlich möchtest..das in Feld 2 nicht der Text vom ersten erscheint, oder??

Bei Textüberlauf durch Event Full aktuelles Objekt überschreiben

Verfasst: 28.08.2014, 14:37
von dafonk
Hallo Mandy,

danke für die schnelle Antwort.

Textfeld1 soll mit "siehe Text2" überschrieben werden.

Im meinem eigentlichen Formular steht Text1 als Infofeld in einer Tabelle und kann aus Layoutgründen nicht mehrzeilig werden. Es muss andererseits der ganze Text sichtbar und druckbar sein.

Reicht der Platz nicht in Text1 soll automatisch nach Text2 an anderer Stelle im Layout ausgewichen werden.
(Dort beliebig oft mit Hinweis auf die Position im Sinne einer Fussnote ).

In die Tabelle in Text1 soll ein "siehe unter Sonstiges" eingetragen werden.

Hab das Ganze schon einmal mit Abfrage der Textlänge und Exit als Event geschrieben. (Ginge sicherlich auch mit Change)

Es ergibt sich aber je nach Text eine unterschiedliche Lauflänge, sodaß ein fixer Maximalwert nicht ermittelbar ist. Und ich habe immer wieder neue Tabellenlayouts, die jedesmal die Ermittlung einen neuen Maxwert erfordern würden.

Da ist die Anwendung von Full ja viel eleganter und es klappt ja auch prima bis auf das Überschreiben des ersten Textfeldes.

Irgendwie ist der Wert dieses Objekt während des Events nicht per einfacher Zuweisung veränderbar. Auch der rawValue ist Null, deswegen das Auslesen per newText.

Ich schürfe schon ne Weile an dem Thema, aber was macht man nicht alles, um die Komfortwünsche der Anwender zu erfüllen :).

LG Dafonk



Bei Textüberlauf durch Event Full aktuelles Objekt überschreiben

Verfasst: 28.08.2014, 14:55
von nele_sonntag
Alles klar, dann versuche ich nachher mal zu schauen. :)

Bei Textüberlauf durch Event Full aktuelles Objekt überschreiben

Verfasst: 02.09.2014, 15:36
von dafonk
Hallöle,

hab jetzt selber eine Lösung gefunden.

Ich benutze die Events "full" und "exit" als Kombi.

"full" löst folgendes Script aus:

Code: Alles auswählen

app.alert("Text1 läuft über, bitte in Text2 weiterschreiben!");

Text2.rawValue = xfa.event.fullText;

Fullexit.value = "1";

xfa.host.setFocus(Text2);
Und "exit":

Code: Alles auswählen

if (Fullexit.value == 1) {this.rawValue= "siehe Text"; Fullexit = 0;}
"full" triggert "exit" automatisch durch den Focuswechsel.

Damit "exit" nicht ungewollt Text1 überschreibt, benutze ich eine Variable als Flag.

Warum

Code: Alles auswählen

this.rawValue= "siehe Text";
unter "full" nicht funktioniert, erschließt sich mir aber immer noch nicht.


LG Dafonk