Textfeldbreite in Kopfzeile zurückgesetzt
Verfasst: 10.08.2011, 09:17
Hallo Experten!
Wir haben folgendes Problem:
In den Kopfzeile der Masterseite sind Textfelder, die ihren RawValue dynamisch aus anderen Textfeldern beziehen (die vom User ausgefüllt werden).
Beispiel für das Feld GH:
----- LS_15.MyMaster.Seite1.UFM_Kopfzeile.UFM_Zentriert2.GH::calculate: - (FormCalc, Client) -------
xfa.form.LS_15.Textseite01.UFM_GH.GH.rawValue
Die Breitenanpassung der Unterformulare und der Felder steht auf "automatisch" und auf "Textfluss". Das funktioniert auch ganz prima, d.h. wenn der User in das Feld Textseite01.UFM_GH.GH einen Text einträgt, erscheint dieser im Feld MyMaster.Seite1.UFM_Kopfzeile.UFM_Zentriert2.GH, dabei wird die Feldlänge automatisch angepasst, und der restliche Text in der Kopfzeile nach rechts verschoben.
Aber wenn ich per FormCalc oder per JavaScript ein Teilformular einer Textseite auf "hidden" oder "visible" setze, dann werden die Feldbreiten in der Kopfzeile wieder auf ihren Ursprungswert zurückgesetzt! Das sieht natürlich bescheuert aus, denn der Inhalt passt ja nun nicht mehr rein!
Erst wenn der User das Feld Textseite01.UFM_GH.GH wieder neu beschreibt, wird die Feldbreite im Masterbereich wieder korrigiert. Bis zum nächsten "hidden" oder "visible". (Die betroffenen Felder sind nicht in den ein- oder ausgeklappten Teilformularen, sondern sind immer sichtbar.)
Ich habe die Zeile xfa.form.LS_15.Textseite01.UFM_GH.GH.rawValue in diverse Ereignisse des Feldes reingeschrieben, um eine Neuformatierung zu erzwingen. Ich habe in den Eventroutinen, die den Fehler auslösen, ebenso die Kopfzeilenfelder neu versorgt. Kein Erfolg, die Feldbreiten bleiben klein.
Das Problem tritt auch auf, wenn ich per [fontsize=2]instanceManager.removeInstance eine Tabellenzeile lösche. Jedoch nicht, wenn ich per instanceManager.addInstance eine Zeile hinzufüge.
[/fontsize]Was tun?
Danke für Tipps
Raimund Gryszik, Berlin
Wir haben folgendes Problem:
In den Kopfzeile der Masterseite sind Textfelder, die ihren RawValue dynamisch aus anderen Textfeldern beziehen (die vom User ausgefüllt werden).
Beispiel für das Feld GH:
----- LS_15.MyMaster.Seite1.UFM_Kopfzeile.UFM_Zentriert2.GH::calculate: - (FormCalc, Client) -------
xfa.form.LS_15.Textseite01.UFM_GH.GH.rawValue
Die Breitenanpassung der Unterformulare und der Felder steht auf "automatisch" und auf "Textfluss". Das funktioniert auch ganz prima, d.h. wenn der User in das Feld Textseite01.UFM_GH.GH einen Text einträgt, erscheint dieser im Feld MyMaster.Seite1.UFM_Kopfzeile.UFM_Zentriert2.GH, dabei wird die Feldlänge automatisch angepasst, und der restliche Text in der Kopfzeile nach rechts verschoben.
Aber wenn ich per FormCalc oder per JavaScript ein Teilformular einer Textseite auf "hidden" oder "visible" setze, dann werden die Feldbreiten in der Kopfzeile wieder auf ihren Ursprungswert zurückgesetzt! Das sieht natürlich bescheuert aus, denn der Inhalt passt ja nun nicht mehr rein!
Erst wenn der User das Feld Textseite01.UFM_GH.GH wieder neu beschreibt, wird die Feldbreite im Masterbereich wieder korrigiert. Bis zum nächsten "hidden" oder "visible". (Die betroffenen Felder sind nicht in den ein- oder ausgeklappten Teilformularen, sondern sind immer sichtbar.)
Ich habe die Zeile xfa.form.LS_15.Textseite01.UFM_GH.GH.rawValue in diverse Ereignisse des Feldes reingeschrieben, um eine Neuformatierung zu erzwingen. Ich habe in den Eventroutinen, die den Fehler auslösen, ebenso die Kopfzeilenfelder neu versorgt. Kein Erfolg, die Feldbreiten bleiben klein.
Das Problem tritt auch auf, wenn ich per [fontsize=2]instanceManager.removeInstance eine Tabellenzeile lösche. Jedoch nicht, wenn ich per instanceManager.addInstance eine Zeile hinzufüge.
[/fontsize]Was tun?
Danke für Tipps
Raimund Gryszik, Berlin