Dropdown-Felder in Tabelle löschen

Fragen und Antworten rund um das Thema JavaScript im LiveCycleDesigner
UliMann
Beiträge: 38
Registriert: 20.05.2008, 09:47

Dropdown-Felder in Tabelle löschen

Beitrag von UliMann » 26.05.2010, 14:27

Hallo Zusammen,

ich habe eine dynamische Tabelle mit einem Dropdown-Feld. Die Werte hierzu lese ich aus einer Exceldatei ein. (http://www.acronaut.de/view_topic.php?id=1858&forum_id=34&highlight=UliMann)

Ich beötige nun noch eine Aktion bzw. Button zum zurücksetzen des Formulars. Nachstehende Befehle funktionieren leider nicht, da hierdurch auch die eingelesenen Werte des Dropdown-Feldes dann vollständig gelöscht werden und nicht mehr zur Auswahl zur Verfügung stehen.
[fontsize=2]
xfa.host.resetData();
[/fontsize][fontsize=2]xfa.form.remerge();
[/fontsize]
[fontsize=2]Eine Möglichkeit wäre vielleicht, dass mit resetdata alle Felder außer das Dropdown-Feld einschließt und das Dropdown-Feld mit rowValue="" zurücksetzt.

Wie setze ich dies jedoch in JavaScript bzw. für die dynamische Tabelle um ?[/fontsize]

[fontsize=2]Ein Beispiel habe ich beigefügt.[/fontsize]

[fontsize=2]Vielen Dank vorab.[/fontsize]

[fontsize=2]Uli[/fontsize]

Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

steffen
Beiträge: 12
Registriert: 29.04.2010, 08:51

Dropdown-Felder in Tabelle löschen

Beitrag von steffen » 26.05.2010, 15:05

Hallo Uli,

spontan würden mir zwei Lösungsmöglichkeiten einfallen.
  1. Ein Rekursives aufrufen einer Methode die alle Felder auf rawValue = null setzt, siehe Bsp.

    Eingabeparameter wäre hier Dein Knoten AB dem alles auf null gesetzt werden soll.
  2. Dein Lösungsansatz mit folgendem dynamischen Zugriff auf die DropDown-Felder: (Pseudocode)

    Code: Alles auswählen

    var oManager = table.instanceManager;
    
    var count = oManager.count;
    
    for(var i=0; i < count; i++){
    //lösche dropdown
    xfa.resolveNode("data.XXX.XXX.dropDown1").rawValue = null; 
    }
    Für weitere Fragen stehe ich gerne zur Verfügung.
Grüße
Steffen

Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

UliMann
Beiträge: 38
Registriert: 20.05.2008, 09:47

Dropdown-Felder in Tabelle löschen

Beitrag von UliMann » 27.05.2010, 16:23

Hallo Steffen,

vorab vielen Dank nochmal für Deine Hilfe.

Leider bekomme ich es nicht hin. Dein erster Lösungsvorschlag ist mir etwas zu kompliziert, da blicke ich überhaupt nicht durch.

Der zweite gefällt mir schon eher, allerdings löscht er mir immer nur das erste Dropdown-Feld.

Kannst Du mir dabei nochmal behilflich sein.

Vielen lieben Dank

Uli

steffen
Beiträge: 12
Registriert: 29.04.2010, 08:51

Dropdown-Felder in Tabelle löschen

Beitrag von steffen » 27.05.2010, 18:50

Hi Uli,

ja gerne. Dazu muss ich aber noch wissen wo Du Probleme hast?

Übrigens habe ich mir dein Formular gerade nochmal angeschaut, das mit resetdata sollten wir hier ganz lassen.
Einfach im loop alle felder auf null setzen.

Grüße
Steffen

UliMann
Beiträge: 38
Registriert: 20.05.2008, 09:47

Dropdown-Felder in Tabelle löschen

Beitrag von UliMann » 28.05.2010, 07:03

Hallo Steffen,

ich habe nachstehenden angepaßten Code beim Löschen-Button hinterlegt:
[fontsize=2][fontsize=2]
var[/fontsize]
[/fontsize]
[fontsize=2] oManager [/fontsize][fontsize=2][fontsize=2]=[/fontsize][/fontsize][fontsize=2] Formular.Seite.Details.Tabelle.Zeile.instanceManager;
[/fontsize][fontsize=2][fontsize=2]var[/fontsize][/fontsize][fontsize=2] count [/fontsize][fontsize=2][fontsize=2]=[/fontsize][/fontsize][fontsize=2] oManager.count;
[/fontsize][fontsize=2][fontsize=2]
for[/fontsize]
[/fontsize]
[fontsize=2]([/fontsize][fontsize=2][fontsize=2]var[/fontsize][/fontsize][fontsize=2] i[/fontsize][fontsize=2][fontsize=2]=[/fontsize][/fontsize][fontsize=2]0; i [/fontsize][fontsize=2][fontsize=2]<[/fontsize][/fontsize][fontsize=2] count; i[/fontsize][fontsize=2][fontsize=2]++[/fontsize][/fontsize][fontsize=2]){
[/fontsize][fontsize=2][fontsize=2]//lösche dropdown
[/fontsize]
[/fontsize]
[fontsize=2]xfa.resolveNode("Formular.Seite.Details.Tabelle.Zeile.KSTAuftrag").rawValue [/fontsize][fontsize=2][fontsize=2]=[/fontsize][/fontsize][fontsize=2] [/fontsize][fontsize=2][fontsize=2]null[/fontsize][/fontsize][fontsize=2];
}[/fontsize]

[fontsize=2]Leider löscht bzw. setzt er nur den ersten Wert bzw. den der ersten Zeile zurück. Die Werte in der zweiten, dritten, etc. Zeile bleiben stehen![/fontsize]

[fontsize=2][/fontsize][fontsize=2]Uli

[/fontsize]

steffen
Beiträge: 12
Registriert: 29.04.2010, 08:51

Dropdown-Felder in Tabelle löschen

Beitrag von steffen » 28.05.2010, 07:12

Hi Uli,

bei dir fehlt noch die übergabe in welcher Zeile das Dropdown gelöscht werden soll.

Es muss so aussehen:

xfa.resolveNode("Formular.Seite.Details.Tabelle.Zeile["+i+"].KSTAuftrag").rawValue = null;

Damit übergibst du den Zeilenindex. Ansonsten wird immer nur die erste verwendet.

In deinem Fall würde ich dieses Verfahren für alle Spalten anwenden.
D.h. anstelle von nur KSTAuftrag einfach noch die anderen Felder mit einfügen:

Code: Alles auswählen

for(var i=0; i < count; i++){
//lösche felder
xfa.resolveNode("Formular.Seite.Details.Tabelle.Zeile["+i+"].Beleg").rawValue = null;
xfa.resolveNode("Formular.Seite.Details.Tabelle.Zeile["+i+"].Belegdatum").rawValue = null;
xfa.resolveNode("Formular.Seite.Details.Tabelle.Zeile["+i+"].Betrag").rawValue = null;
xfa.resolveNode("Formular.Seite.Details.Tabelle.Zeile["+i+"].VerwZweck").rawValue = null;
xfa.resolveNode("Formular.Seite.Details.Tabelle.Zeile["+i+"].KSTAuftrag").rawValue = null;
}
Grüße
Steffen

UliMann
Beiträge: 38
Registriert: 20.05.2008, 09:47

Dropdown-Felder in Tabelle löschen

Beitrag von UliMann » 28.05.2010, 08:07

Hallo Steffen,

das funktioniert nun erstmal, Super!

Aber wie könnte es anders sein, ein Problem bringt das nächste.

Wenn ich z.B. alle Zeilen ausgefüllt und auch weitere Zeilen hinzugefügt habe,  alles über den Button lösche und die Zeilen auch wieder auf 6 Stück zurückgesetzt werden, dann können zwar beim Dropdown-Feld wieder Werte für die ersten 6 Zeilen ausgewählt werden, allerdings sind im Dropdown-Feld bei neu hinzugefügten Zeilen keine Werte mehr hinterlegt !

Irgendwo muß da noch ein Bug sein.

Hast Du eine Vermut?

Uli

 

 

steffen
Beiträge: 12
Registriert: 29.04.2010, 08:51

Dropdown-Felder in Tabelle löschen

Beitrag von steffen » 31.05.2010, 08:48

Hallo Uli,

ich kann leider deine Beispieldatei nicht einlesen um es zu probieren.

Kannst du das pdf nochmal hochladen mit schon im Anhang befindlicher xls??

Grüße
Steffen



UliMann
Beiträge: 38
Registriert: 20.05.2008, 09:47

Dropdown-Felder in Tabelle löschen

Beitrag von UliMann » 31.05.2010, 10:51

Hallo Steffen,

an Deinem Script liegt es wahrscheinlich nicht, dies ist bestimmt perfekt.

Es liegt am Import. Nach dem Import muß ich zuerst alle Dropdowns kurz anklicken, damit er mir die Werte übernimmt.

Wenn ich Zeilen hinzufüge, fehlen dort die Wert im Dropdownfeld.

Kannst Du dort bitte nochmal drüberschauen, Du findest bestimmt schnell den Fehler.

Super, und vielen lieben Dank.

Uli
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

steffen
Beiträge: 12
Registriert: 29.04.2010, 08:51

Dropdown-Felder in Tabelle löschen

Beitrag von steffen » 31.05.2010, 11:17

Hi Uli,


wo kommt denn diese Datei her??

var nImport = event.target.importDataObject("XLSDaten");

Bei der PDF die Du hochgestellt hast kann ich sie nicht sehen.
Ich habe leider auch kein Acrobat da um sie selber reinzuhängen.

D.h. Du müsstest mir ein PDf zur Verfügung stellen indem schon diese XLS im Anhang steckt.



Grüße
Steffen

Antworten