Ausgeblendete Inhalte auf Masterseite werden wieder sichtbar

Ob nun dynamisch agierende Subformulare, oder einfach nur Textfelder...
Antworten
Jenses82
Beiträge: 3
Registriert: 01.06.2013, 09:27

Ausgeblendete Inhalte auf Masterseite werden wieder sichtbar

Beitrag von Jenses82 » 22.07.2017, 13:45

Hallo zusammen,

ich habe eine Briefvorlage im pdf-Format erstellt.
Diese beinhaltet 2 Masterseiten.
Auf der ersten Masterseite befindet sich der Briefkopf sowie die Fußzeile, ab der zweiten Briefseite soll nur noch der Briefkopf angedruckt werden. Das habe ich alles vom Prinzip her hinbekommen.

Nun habe ich ein Steuerungsmenü eingebaut, über welches verschiedene Dinge ein- und ausgeblendet werden können. Nun treten folgende Problemchen auf.

a) Ich kann den Kopf- und Fussbereich zwar ausblenden, sobald ich allerdings den Strichcode oder die Unterschriftsgrafik einblende oder der Brief aufgrund der Textmenge eine weitere Seite erhält, erscheinen die ausgeblendeten Elemente wieder.
b) Das Einblenden der Unterschriftsgrafik funktioniert nur dann, wenn dies zu Beginn des Dokuments getan wird und dann der Brieftext eingegeben wird. Spätenstens wenn sich die Unterschrift auf Seite 2 befindet, funktioniert das Script nicht mehr. Es funktioniert aber auch dann nicht mehr, wenn der Brieftext gelöscht wird und sich die Unterschrift wieder auf Seite 1 befindet.

Bin ratlos ... Hat jemanden Lösungen (mit Beispielen) für meine Probleme?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Jenses82
Beiträge: 3
Registriert: 01.06.2013, 09:27

Ausgeblendete Inhalte auf Masterseite werden wieder sichtbar

Beitrag von Jenses82 » 23.07.2017, 11:45

Hallo zusammen,

ich bin nun einen Schritt weiter und habe zumindest Punkt a) "hemdsärmlig" behoben, indem ich im ready:layout-Event folgenden Code eingebaut habe.

Code: Alles auswählen

Briefvorlage::ready:layout - (JavaScript, client)
if (Briefvorlage.V1.rechtesTeilformular.StatischerAbschnitt.Steuerung.Head.rawValue == 1)
{ 
xfa.resolveNode("#pageSet[0].V1.Brief_LOGO").presence="visible";
xfa.resolveNode("#pageSet[0].V1.Brief_FUSS").presence="visible";

    for (var i = 0; i < xfa.host.numPages; i++)
         {
             var oFields = xfa.resolveNode("Briefvorlage.#pageSet.Seite2[" + i + "]");
             oFields.Brief_LOGO.presence = "visible";
    }

} else { 
xfa.resolveNode("#pageSet[0].V1.Brief_LOGO").presence="invisible";
xfa.resolveNode("#pageSet[0].V1.Brief_FUSS").presence="invisible";

    for (var i = 0; i < xfa.host.numPages; i++)
         {
             var oFields = xfa.resolveNode("Briefvorlage.#pageSet.Seite2[" + i + "]");
             oFields.Brief_LOGO.presence = "invisible";
    }
}
Die Sache mit der Unterschriftsgrafik ist für mich weiterhin ein Rätsel.

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Re: Ausgeblendete Inhalte auf Masterseite werden wieder sichtbar

Beitrag von nele_sonntag » 05.04.2018, 12:37

Hallo jensen82,

wenn du den Debugger aktivierst, bekommst du die Fehlermeldung, dass:

Code: Alles auswählen

TypeError: oFields is null
19:XFA:Briefvorlage[0]:V1[0]:rechtesTeilformular[0]:StatischerAbschnitt[0]:Steuerung[0]:Head[0]:change
Hier liegt also ein Scriptfehler vor.

Ich würde aber empfehlen, nur mit einer Masterseite zu arbeiten. Das die Fußzeile ab Seite 2 nicht eingeblendet wird, würde ich im Objekt Fußzeile auf der Masterseite 1 im calculate überprüfen und es automatisch ausblenden, wenn die Seitenanzahl größer 1 ist.

Ansonsten hast du die Möglichkeit in den Objekten selbst zu scripten, bspw. in der Subform "Brief_Logo" im calculate Event:

Code: Alles auswählen

(Briefvorlage.V1.rechtesTeilformular.StatischerAbschnitt.Steuerung.Head.rawValue == "1") ? this.presence = "visible" : this.presence = "hidden";
Dann funktionieren alle Objekte mE nach tadellos.

LG Mandy

Antworten