Aktion nach Zeilen löschen in Tabelle

Alles was sich mit dem Thema dynamische XML Formulare auf Basis des LiveCycleDesigners beschäftigt
Antworten
Benutzeravatar
yamu
Beiträge: 9
Registriert: 05.03.2010, 08:08

Aktion nach Zeilen löschen in Tabelle

Beitrag von yamu » 24.03.2010, 20:17

Hallo,

Ich habe eine dynamische Tabelle, wo ich Zeilen hinzufügen und wegnehmen kann. Funktioniert mit dem instanceManager sehr gut. Jetzt möchte ich aber, sobald die letzte Zeile gelöscht ist einen Button auf "unsichtbar" setzen und eine Optionsfeldgruppe so setzen, dass keines der Optionsfelder angehakt ist. Dazu habe ich folgendes auf einem Löschknopf (der heißt "removeZeile"), der das 1. Element jeder Zeile ist, programmiert:

Code: Alles auswählen

 bos.FB001.Fragentabelle.zeilen.removeZeile::click - (JavaScript, client)

_zeilen.removeInstance(this.parent.index);
xfa.form.recalculate(1);

if (_zeilen.count == 0) {
    Fragentabelle.Kopfteil.Kopfzeile2[1].addZeile.presence="invisible";
    Fragentabelle.Kopfteil.Kopfzeile2[1].resolveNode("#subform[0].Fragenoptionsfeld").rawValue = null;
}
Das Löschen funktioniert, aber ich erhalte danach immer die Fehlermeldung "_zeilen has no properties" obwohl ich an anderer Stelle im Formular mir mit "_zeilen.count" problemlos die Anzahl der Tabellenzeilen im InstanceManager dieser Tabellenzeilen anzeigen lassen kann. Alles was im if-Block drinnen ist läuft nicht durch. Wenn ich testweise das if weglasse und nur z.B.

Fragentabelle.Kopfteil.Kopfzeile2[1].addZeile.presence="invisible";

setze, dann erhalte ich ebenfalls eine Fehlermeldung "Fragentabelle not defined", obwohl "zeilen" eine Child der Fragentabelle ist? Wo habe ich da meinen Denkfehler oder was übersehe ich hier?

Danke für Eure "Denkanstöße"
Hans




Benutzeravatar
yamu
Beiträge: 9
Registriert: 05.03.2010, 08:08

Aktion nach Zeilen löschen in Tabelle

Beitrag von yamu » 25.03.2010, 00:51

Hallo,

Ich hab's nach 4 Stunden testen jetzt gefunden:

1) Wenn ich gleich in der 1. Zeile ein removeInstance mache wird dieses Objekt weggelöscht und diese Instanz des _zeilen Objekt existiert damit nicht mehr, und deshalb hat auch _zeilen keine Eigenschaften mehr.

2) Ich weiß zwar jetzt nicht genau warum, aber die Schreibweise "Fragentabelle.Kopfteil......" kann in JavaScript nicht aufgelöst werden; die alternative Schreibweise xfa.resolveNode("Fragentabelle.Kopfteil.Kopfzeile2[1].addZeile").presence ist die Richtige.

Vielleicht hat ja irgend jemand auch einmal dieses Problem und braucht eine Antwort.

Gute Nacht (eh guten Morgen)
Hans

Antworten