Seite 1 von 2
Dropdown-Felder in Tabelle löschen
Verfasst: 26.05.2010, 14:27
von UliMann
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]
Dropdown-Felder in Tabelle löschen
Verfasst: 26.05.2010, 15:05
von steffen
Hallo Uli,
spontan würden mir zwei Lösungsmöglichkeiten einfallen.
- 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.
- 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
Dropdown-Felder in Tabelle löschen
Verfasst: 27.05.2010, 16:23
von UliMann
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
Dropdown-Felder in Tabelle löschen
Verfasst: 27.05.2010, 18:50
von steffen
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
Dropdown-Felder in Tabelle löschen
Verfasst: 28.05.2010, 07:03
von UliMann
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]
Dropdown-Felder in Tabelle löschen
Verfasst: 28.05.2010, 07:12
von steffen
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
Dropdown-Felder in Tabelle löschen
Verfasst: 28.05.2010, 08:07
von UliMann
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
Dropdown-Felder in Tabelle löschen
Verfasst: 31.05.2010, 08:48
von steffen
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
Dropdown-Felder in Tabelle löschen
Verfasst: 31.05.2010, 10:51
von UliMann
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
Dropdown-Felder in Tabelle löschen
Verfasst: 31.05.2010, 11:17
von steffen
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