globale Variablen verlieren Referenz nach relayout() - ReferenceError

Grundsätzliche Themen zur Bedienung, Erstellung von Formularen, Datenbankanbindung und Beispiele ...
Antworten
Klopfa
Beiträge: 10
Registriert: 07.03.2017, 16:33

globale Variablen verlieren Referenz nach relayout() - ReferenceError

Beitrag von Klopfa » 20.02.2018, 15:42

Hallo zusammen,

ich muss beim Drucken über eine DialogBox entscheiden, ob ich das Formular mit Kommentaren (extra Teilbereiche) oder ohne drucken möchte.

Angenommen, ich möchte mit Kommentaren drucken:
Ich blende im PrePrint-Event die entsprechenden Teilbereiche ein und blende sie im PostPrint-Event wieder aus.
Im Click-Event der Drucken-Schaltfläche führe ich den Druckbefehl aus. Der Befehl

Code: Alles auswählen

xfa.host.print(1, "0", (xfa.host.numPages -1).toString(), 0, 0, 0, 0, 0);
 
passt mir aber nicht, da ich mit numPages nicht die  korrekte Seitenzahl erhalte (Teilbereiche wurden im PrePrint eingeblendet und es sind jetzt 4 Seiten mehr).

Deshalb würde ich im PrePrint-Event nach dem Einblenden einen

Code: Alles auswählen

xfa.layout.relayout()
durchführen, um dann mit

Code: Alles auswählen

xfa.layout.pageCount()
die "neue" korrekte Seitenzahl zu bekommen.
Zusätzlich würde ich den Wert einer globalen Variable zuweisen, um ihn im click-Event beim Drucken zu verwenden.

Code: Alles auswählen

xfa.host.print(1, "0", (globale Variable).toString(), 0, 0, 0, 0, 0);
Leider verlieren die globalen Variablen im PrePrint-Event nach dem relayout() ihre Referenz, sodass ich den Wert der Seitenzahl nicht zuweisen kann.
Ohne relayout() kann ich die Variable ansprechen, allerdings erhalte ich dann bei pageCount() wieder die falsche Seitenzahl.
Die globale Variable benötige ich aber, um dem Druckbefehl die korrekte Seitenzahl mitzugeben.

Iwie bin ich hier festgefahren.
Es wäre super, wenn mir hier jemand helfen könnte. Besten Dank!

Klopfa
Beiträge: 10
Registriert: 07.03.2017, 16:33

globale Variablen verlieren Referenz nach relayout() - ReferenceError

Beitrag von Klopfa » 21.02.2018, 11:33

Hallo zusammen,

konnte die Problematik lösen!

Mein Denkansatz war falsch: da ich die Seitenanzahl ohnehin bereits im Click-Event beim Befehl

Code: Alles auswählen

xfa.host.print()
mitgebe, nützt es eh nichts, wenn ich im PrePrint-Event die korrekte Seitenanzahl rausfinde, da der Zauber bereits passiert ist.

Abhilfe siehe folgenden Beitrag
https://forums.adobe.com/thread/904274

Lösung:
statt

Code: Alles auswählen

xfa.host.print()
verwende ich

Code: Alles auswählen

app.execMenuItem("Print");
und er zeigt beim Drucken-Dialog die korrekte Seitenanzahl an. :cool:

Greetz!:)

Antworten