Gelöschte Instanzen werden nach Speichern wieder eingeblendet

Alles was sich mit dem Thema dynamische XML Formulare auf Basis des LiveCycleDesigners beschäftigt
Antworten
benni41850
Beiträge: 9
Registriert: 19.12.2018, 14:55

Gelöschte Instanzen werden nach Speichern wieder eingeblendet

Beitrag von benni41850 » 20.12.2018, 09:02

Hallo zusammen,

als blutiger Anfänger habe ich ein Problem, was hier im Forum schon einige Male diskutiert wurde:

In meinem dynamischen Formular sollen initial alle Instanzen sichtbar sein (auch wenn es dadurch relativ hässlich ist). Abhängig von der Auswahl des Ausfüllers werden dann einige Teilformulare ausgeblendet, was soweit auch wunderbar funktioniert. Nach dem Speichern und erneuten Öffnen sind jedoch alle Instanzen wieder sichtbar.

Wie im Forum mehrmals beschrieben, habe ich zunächst nach der Laufzeit in den Formulareigenschaften geguckt. Auch habe ich kein Skript was die vorgenommenen Änderungen überschreibt verwendet (zumindest nicht bewusst). Beides ohne Erfolg. Leider bin ich ziemlich ratlos, kann mir jemand helfen?

Zur besseren Nachvollziehbarkeit habe ich das Dokument einmal angehängt.
Zuletzt geändert von benni41850 am 02.01.2019, 11:37, insgesamt 1-mal geändert.

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

Re: Gelöschte Instanzen werden nach Speichern wieder eingeblendet

Beitrag von armine » 21.12.2018, 10:37

Hallo benni41850,

öffne dein PDF mit Acrobat (JavaScript-Debugger aktiviert) und schau dir die Fehlermeldungen nach Auswahl Geschenk/Einladung an. Dann ahnst du, dass das Arbeiten mit Instanzen (mindestens eine, und die wird ggf. gelöscht) nicht konfliktfrei ist.

Wenn ich’s recht verstanden habe geht es darum, abhängig von einer Auswahl eine Reihe von Teilformularen ein- bzw. auszublenden. Dazu würde ich keine Aktionen zusammenklicken. Teilformular referenzieren und die Sichtbarkeit im Fall Geschenk bzw. Einladung zuweisen sollte ausreichen.

Alle Teilformulare beim Öffen des PDFs einzublenden verstehe ich nicht, es sei denn, Ausfüllende sollen die Möglichkeit haben, mit dem Studium (ggf. auch Ausfüllen) von Unzutreffendem ihren Tag zu vertrödeln.

vg armine

P.S.: Wäre DIN A4 nicht das geeignetere Papierformat?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

benni41850
Beiträge: 9
Registriert: 19.12.2018, 14:55

Re: Gelöschte Instanzen werden nach Speichern wieder eingeblendet

Beitrag von benni41850 » 25.12.2018, 11:16

Hallo Armine,

erst einmal frohe Weihnachten und vielen Dank für deine schnelle Hilfe.

Genau, zu Beginn und die größte Auswirkung hat die Auswahl von Geschenk/Einladung. Danach folgen noch einige andere Dropdown-Auswahlen (teilweise in Kombination mit anderen Dropdowns oder Checkboxen) die Teilformulare ein- und ausblenden sollen (bzw. Instanzen adden und removen sollen).

Der Grund warum initial alle Teilformulare eingeblendet sind ist der, dass das Formular danach automatisiert ausgelesen werden soll (RPA). Die Input-Lesen Funktion ist dabei so aufgebaut, dass zunächst alle Selektoren gesetzt sind. Würde ich nun Teilformulare zunächst ausblenden müsste die Input-lesen Funktion angepasst werden, was aus zeitlichen Gründen nicht mehr möglich ist und die geringere Nutzerfreundlichkeit damit in Kauf genommen wird.

Als blutiger Anfänger bin ich zwar davon begeistert, was alles möglich ist, beherrschen tue ich allerdings noch nicht viel :( Die Fehlermeldung aus dem Debugger kann ich mir leider auch nicht erklären. Maximal 1 und Anfangszahl 1 innerhalb der Bindung sollten doch bewirken, dass ich die Teilformular-Instanz removen kann, aber auch wieder adden kann. Häufiger als 1x hingegen nicht (?).

GeneralError: Vorgang fehlgeschlagen.
XFAObject.addInstance:137:XFA:Formular1[0]:Seite1[0]:AllgemeineAngaben[0]:Dropdown_EinladungGeschenk[0]:change
Das Element [max] hat gegen seine zulässige Anzahl an Vorkommen verstoßen.

TypeError: oOriginalNode is null
49:Doc:Init


Ich verstehe nicht, wieso sich das auf das nicht speichern können der Änderungen auswirkt? Wie kann ich das bewirken?
Danke für das Beispielformular, aber mit hidden/visible kann ich leider nicht arbeiten, da einige davon Pflichtfelder sein sollen.

Viele Grüße
Benni

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

Re: Gelöschte Instanzen werden nach Speichern wieder eingeblendet

Beitrag von armine » 27.12.2018, 10:13

Hallo Benni,

»... aber mit hidden/visible kann ich leider nicht arbeiten, da einige davon Pflichtfelder sein sollen.«
Woher weißt du das? Gut, dass ich nicht weiß, warum das Eine das andere ausschließt – bei mir geht’s ganz gut.
Zur einfacheren Kontrolle habe ich je einen Button zum Drucken und Mailen eingebaut. Beide schauen nach, ob Pflichtfelder auch ausgefüllt wurden und siehe da, ausgeblendete Teilformulare interessieren beim Nachschauen nicht.

vg armine

P.S.: Dass du mir erklärst, wie der LCD funktionieren soll, bringt mich leider nicht weiter. Mit dem Debugger lege ich mich prinzipiell nicht an, der ist so was von rechthaberisch ...
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

benni41850
Beiträge: 9
Registriert: 19.12.2018, 14:55

Re: Gelöschte Instanzen werden nach Speichern wieder eingeblendet

Beitrag von benni41850 » 27.12.2018, 12:14

Hallo Armine,

erst einmal vielen Dank für deine Mühe. Muss mir das später nochmal im Detail angucken und Stück für Stück nachvollziehen, aber das sieht schon richtig klasse aus. Ich hoffe davon einiges für mein Formular übernehmen zu können.

»...Woher weißt du das? Gut, dass ich nicht weiß, warum das Eine das andere ausschließt – bei mir geht’s ganz gut.«
Ich hatte in einem Tutorial gesehen, dass bei Drucken/Senden-Buttons nur über Instanzen ausgeblendete Teilformulare berücksichtigt werden können, sofern man innerhalb der Objektpalette bei Wert / Benutzereingabe - Erforderlich auswählt. Wenn die Teilformulare über hidden/visible aus- und eingeblendet werden, wird nicht berücksichtigt, ob es sich um erforderliche oder optionale Benutzereingaben handelt, so dass bei ausgeblendeten Pflichtfeldern nicht berücksichtigt wird, dass eine Eingabe in dieser Konstellation nicht erforderlich/sinnig ist. Wie ich festgestellt habe, lässt du 'Wert' innerhalb der Objektpalette aber komplett unberührt und definierst über das jeweilige Skript, ob es sich um ein Pflichtfeld handelt oder eben nicht.

Darf ich mal ganz indiskret fragen, wie Du dir dein Wissen angeeignet hast? Gibt es ein Standardwerk oder so etwas in der Art was Du empfehlen kannst oder hast Du einen anderen Tipp (außer dass Übung den Meister macht)?

Viele Grüße
Benni

benni41850
Beiträge: 9
Registriert: 19.12.2018, 14:55

Re: Gelöschte Instanzen werden nach Speichern wieder eingeblendet

Beitrag von benni41850 » 03.01.2019, 12:28

Hallo nochmal,

mit deiner Hilfe bin ich ein großes Stück weitergekommen, habe jedoch noch folgende zwei Probleme:
1. Wenn ich im Dropdown "Handelt es sich um ein Geschenk/eine Einladung?" eine der beiden Optionen wähle, werden nur manche Teilformulare ausgeblendet. Beispielsweise wähle ich "Einladung" und "Art des Geschenks" wird richtigerweise ausgeblendet, "Datum der Schenkung" jedoch nicht.
"Datum der Schenkung" soll initial, so wie bei Auswahl von "Geschenk" eingeblendet werden. Bei "Einladung" jedoch nicht. Ich finde meine(n) Fehler einfach nicht :cry:

2. Ich möchte, dass das Ein- und Ausblenden eines Teilformulars von zwei Bedingungen abhängt. Genauer gesagt, soll bei der Auswahl von "Geschenk" im Dropdown "Handelt es sich um ein Geschenk/eine Einladung?" UND bei dem Ankreuzen der "Gewährung einer Einladung/eines Geschenks" Ausschluss Gruppe das Teilformular "VerwertungGeschenk" ausgeblendet werden und das Teilformular "GewährungAmtsträger" eingeblendet (usw.) werden. Ich habe mir dabei folgenden Code innerhalb des Change-Events überlegt (leider ohne Erfolg):
Formular1.Seite1.ArtderMeldung.Optionsfeld_ArtDerMeldung::change - (JavaScript, client)

Code: Alles auswählen

if (this.resolveNode("AllgemeineAngaben.Dropdown_EinladungGeschenk").rawValue == "Geschenk" && this.rawValue == "1") {
  this.resolveNode('Seite2._VerwertungGeschenk').presence = "hidden";
  this.resolveNode('Seite3._GewährungAmtsträger').presence = "visible";
  this.resolveNode('Seite2._ZweiterSachbearbeiter').presence = "hidden";
  this.resolveNode('Seite2._GemeinnützigeOrganisation').presence = "hidden";
  this.resolveNode('Seite3._WarnhinweisBesondersVerpflichteter').presence = "visible";
}
Die Berücksichtigung der Pflichtfelder innerhalb der Teilformulare soll dabei natürlich trotzdem funktionieren, so dass bei ausgeblendeten Teilformularen keine Pflichtfeldwarnung erscheint (vice versa).


Wenn Du mir nochmal helfen könntest, wäre ich Dir unglaublich dankbar!
P.S.: Anbei das anonymisierte Formular zur Veranschaulichung.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

benni41850
Beiträge: 9
Registriert: 19.12.2018, 14:55

Re: Gelöschte Instanzen werden nach Speichern wieder eingeblendet

Beitrag von benni41850 » 05.01.2019, 12:21

Hallo nochmal,

ich habe mir mittlerweile durch einen kleinen Umweg selbst helfen können und habe die ein- und auszublendenden Teilformulare mit dem Aktions-Generator erstellt. Das wird hier vermutlich verpöhnt und nicht gerne gesehen, erschien mir aber am benutzerfreundlichsten und schnellsten. Auf den ersten Blick funktioniert im Formular alles wunderbar, was mich schon zu Freudensprüngen verleitet hat.

Dann sind mir doch noch zwei Dinge aufgefallen, die irgendwie etwas für's Kuriositätenkabinett sind: :?
  • Wenn ich im Dropdown-Menü "Handelt es sich um ein Geschenk/eine Einladung?" Geschenk auswähle und bei "Art der Meldung" die Ausschlussgruppe "Gewährung" auswähle, wird das Teilformular "Gewährung an Amtsträger für den öffentlichen Dienst besonders Verpflichteter" wie gewünscht sichtbar. Wenn ich das Formular dann zu Ende ausfülle und über Einreichen zunächst das Dokument speichere, wird das Kreuz bei "Handelt es sich bei der eingeladenen/beschenkten Person um einen Amtsträger oder für den öffentlichen Dienst besonders Verpflichteten?" plötzlich nicht mehr angezeigt, das Mail-UI öffnet sich aber. Warum wird das Kreuz nicht mehr angezeigt? :roll: Mit dem Debugger innerhalb des Adobe Acrobat Pro erhalte ich eigentlich keine Fehlermeldung.
  • Wenn ich im Textfeld "Name des zweiten Sachbearbeiters" innerhalb des layout:ready-Events den bedingten Operator als Kurzform des if-Statements einfüge: this.validate.nullTest = this.rawValue ? "disabled" : "error", erhalte ich schon im Dropdown-Menü "Handelt es sich um ein Geschenk/eine Einladung?" eine MessageBox, dass dieses Textfeld nicht leer bleiben soll. Bei "Name der gemeinnützigen Organisation" ist dies nicht der Fall. Ich habe keine Erklärung für dieses ungewünschte Verhalten :oops:
Ich habe das PDF in seiner jetzigen Form noch einmal angehängt.

Viele Grüße
Benni
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

benni41850
Beiträge: 9
Registriert: 19.12.2018, 14:55

Re: Gelöschte Instanzen werden nach Speichern wieder eingeblendet

Beitrag von benni41850 » 07.01.2019, 10:27

Update: Das erste Problem konnte ich selbst lösen, indem ich das Skript im initialize-event herausgenommen habe. Jetzt besteht nur noch das zweite Problem....
benni41850 hat geschrieben:
05.01.2019, 12:21
Hallo nochmal,

ich habe mir mittlerweile durch einen kleinen Umweg selbst helfen können und habe die ein- und auszublendenden Teilformulare mit dem Aktions-Generator erstellt. Das wird hier vermutlich verpöhnt und nicht gerne gesehen, erschien mir aber am benutzerfreundlichsten und schnellsten. Auf den ersten Blick funktioniert im Formular alles wunderbar, was mich schon zu Freudensprüngen verleitet hat.

Dann sind mir doch noch zwei Dinge aufgefallen, die irgendwie etwas für's Kuriositätenkabinett sind: :?
  • Wenn ich im Dropdown-Menü "Handelt es sich um ein Geschenk/eine Einladung?" Geschenk auswähle und bei "Art der Meldung" die Ausschlussgruppe "Gewährung" auswähle, wird das Teilformular "Gewährung an Amtsträger für den öffentlichen Dienst besonders Verpflichteter" wie gewünscht sichtbar. Wenn ich das Formular dann zu Ende ausfülle und über Einreichen zunächst das Dokument speichere, wird das Kreuz bei "Handelt es sich bei der eingeladenen/beschenkten Person um einen Amtsträger oder für den öffentlichen Dienst besonders Verpflichteten?" plötzlich nicht mehr angezeigt, das Mail-UI öffnet sich aber. Warum wird das Kreuz nicht mehr angezeigt? :roll: Mit dem Debugger innerhalb des Adobe Acrobat Pro erhalte ich eigentlich keine Fehlermeldung.
  • Wenn ich im Textfeld "Name des zweiten Sachbearbeiters" innerhalb des layout:ready-Events den bedingten Operator als Kurzform des if-Statements einfüge: this.validate.nullTest = this.rawValue ? "disabled" : "error", erhalte ich schon im Dropdown-Menü "Handelt es sich um ein Geschenk/eine Einladung?" eine MessageBox, dass dieses Textfeld nicht leer bleiben soll. Bei "Name der gemeinnützigen Organisation" ist dies nicht der Fall. Ich habe keine Erklärung für dieses ungewünschte Verhalten :oops:
Ich habe das PDF in seiner jetzigen Form noch einmal angehängt.

Viele Grüße
Benni

benni41850
Beiträge: 9
Registriert: 19.12.2018, 14:55

Re: Gelöschte Instanzen werden nach Speichern wieder eingeblendet

Beitrag von benni41850 » 11.01.2019, 18:13

Hallo armine,

dein Skript innerhalb des exit- und des ready:layout-Ereignisses hat mir wirklich weitergeholfen und funktioniert wunderbar! 1000 Dank!
::exit - (JavaScript, client)
Skripte.trim(this, "Pflichtfeld") // Statt "Pflichtfeld" kann auch ein beliebiger String oder eine Zahl (aber nicht die 0) verwendet werden.

::ready:layout - (JavaScript, client)
this.validate.nullTest = this.rawValue ? "disabled" : "error"

Leider schaffe ich es nicht, dieses auch für Checkboxen funktionsfähig zu machen, so dass ich beim Senden in der aufkommenden MessageBox einen Hinweis für diese Felder erhalte. Sie werden lediglich umrandet. Was mache ich nun wieder falsch? :cry: :roll:

Beste Grüße
Benni

armine hat geschrieben:
27.12.2018, 10:13
Hallo Benni,

»... aber mit hidden/visible kann ich leider nicht arbeiten, da einige davon Pflichtfelder sein sollen.«
Woher weißt du das? Gut, dass ich nicht weiß, warum das Eine das andere ausschließt – bei mir geht’s ganz gut.
Zur einfacheren Kontrolle habe ich je einen Button zum Drucken und Mailen eingebaut. Beide schauen nach, ob Pflichtfelder auch ausgefüllt wurden und siehe da, ausgeblendete Teilformulare interessieren beim Nachschauen nicht.

vg armine

P.S.: Dass du mir erklärst, wie der LCD funktionieren soll, bringt mich leider nicht weiter. Mit dem Debugger lege ich mich prinzipiell nicht an, der ist so was von rechthaberisch ...

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

Re: Gelöschte Instanzen werden nach Speichern wieder eingeblendet

Beitrag von armine » 14.01.2019, 10:50

Hallo Benni,

wg. der bei dir auftretenden Probleme habe ich mich mal ins Thema „exclGroup“ eingearbeitet und mit deren „nodes“ beschäftigt. Nun sollte es also damit klappen. Die Hilfskonstruktion mit den unterlegten Textfeldern ist damit hinfällig.

Weil beim Herumexperimentieren mit ein- und ausblenden bei mir auch Erscheinungen aufgetreten sind, die ich mir nicht erklären kann, habe ich deinen Aufbau in Tabellen überführt (Wer weiß, was ich dabei übersehen oder falsch verstanden habe?) und war damit auf sichererem Terrain. Um Augenrheuma zu vermeiden, habe ich nicht Calibri u.s.w. sondern die Myriad Pro verwendet. Die Tabelle hat auch geholfen, die Dynamik deiner „tanzenden“ Radiobuttons im Zaum zu halten. Apropos: Bei Radiobuttons verwende ich die auch und täusche keine Kontrollkästchen vor.

Kommst du nun weiter?
vg armine
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten