Anzahl der ausgewählten Elemente eines Listenfeldes bestimmen
Anzahl der ausgewählten Elemente eines Listenfeldes bestimmen
Hallo,
ist vielleicht ganz einfach, aber ich komme nicht drauf: gibt es eine Möglichkeit, wie man in einem Listenfeld mit mehrfacher Auswahl die Anzahl der tatsächlich ausgewählten items bestimmen kann, um sie dann im Skript zu verwerten?
Wäre schön, wenn jemand eine Idee hat. Vielen Dank schon mal!
Viele Grüße
Abtaucher
ist vielleicht ganz einfach, aber ich komme nicht drauf: gibt es eine Möglichkeit, wie man in einem Listenfeld mit mehrfacher Auswahl die Anzahl der tatsächlich ausgewählten items bestimmen kann, um sie dann im Skript zu verwerten?
Wäre schön, wenn jemand eine Idee hat. Vielen Dank schon mal!
Viele Grüße
Abtaucher
- nele_sonntag
- Beiträge: 2742
- Registriert: 04.05.2009, 15:12
- Wohnort: Frankfurt
- Kontaktdaten:
Anzahl der ausgewählten Elemente eines Listenfeldes bestimmen
Hallo Abtaucher,
habe keine konkrete Lösung für Dich, aber vlt. kannst Du hiermit experimentieren.
Skript von Walde: http://acronaut.de/attachment.php?id=984 aus der Diskussion: http://acronaut.de/view_topic.php?id=1326&forum_id=34&highlight=Anhang+hinzuf%C3%BCgen
Hier werden zum einen:
- Anzahl der Listenelemente per Skript berechnet
- ausgewähltes Element kann angezeigt oder gelöscht werden per Skript
Dieser werden per angesprochen. Und um den selektierten Index geht es ja bei Dir auch. Vielleicht kannst Du nun mit oder einer anderen Methode diese zusammenzählen.
Habe leider selbst grad kein Zeit zum rumprobieren.
LG Mandy
habe keine konkrete Lösung für Dich, aber vlt. kannst Du hiermit experimentieren.
Skript von Walde: http://acronaut.de/attachment.php?id=984 aus der Diskussion: http://acronaut.de/view_topic.php?id=1326&forum_id=34&highlight=Anhang+hinzuf%C3%BCgen
Hier werden zum einen:
- Anzahl der Listenelemente per Skript berechnet
- ausgewähltes Element kann angezeigt oder gelöscht werden per Skript
Dieser werden per
Code: Alles auswählen
Listenfeld1.selectedIndex
Code: Alles auswählen
Listenfeld1.selectedIndex.all
Habe leider selbst grad kein Zeit zum rumprobieren.
LG Mandy
Anzahl der ausgewählten Elemente eines Listenfeldes bestimmen
Hallo Mandy,
danke, ich schau's mir mal an. Vielleicht bringt's mich ein Stück weiter. Habe inzwischen versucht, das Problem zu umgehen, aber dabei stoße ich wieder an andere Probleme.
Viele Grüße
danke, ich schau's mir mal an. Vielleicht bringt's mich ein Stück weiter. Habe inzwischen versucht, das Problem zu umgehen, aber dabei stoße ich wieder an andere Probleme.
Viele Grüße
- nele_sonntag
- Beiträge: 2742
- Registriert: 04.05.2009, 15:12
- Wohnort: Frankfurt
- Kontaktdaten:
Anzahl der ausgewählten Elemente eines Listenfeldes bestimmen
Was ist denn Dein anderer Lösungsansatz, vielleicht kann ich Dir hier eher helfen.
- nele_sonntag
- Beiträge: 2742
- Registriert: 04.05.2009, 15:12
- Wohnort: Frankfurt
- Kontaktdaten:
Anzahl der ausgewählten Elemente eines Listenfeldes bestimmen
Wie wäre es hiermit?
Die Auswahl des Listenfeldes in ein verstecktes Feld schreiben: http://acronaut.de/attachment.php?id=957
Und bei diesem Feld einfach auszählen, siehe vorhin geposteter Link zur Anzahl der Anhänge aus dem Listenfeld mit im calculate-Ereignis des berechneten Feldes.
LG Mandy
Die Auswahl des Listenfeldes in ein verstecktes Feld schreiben: http://acronaut.de/attachment.php?id=957
Und bei diesem Feld einfach auszählen, siehe vorhin geposteter Link zur Anzahl der Anhänge aus dem Listenfeld mit
Code: Alles auswählen
Listenfeld1.items.nodes.length;
LG Mandy
- nele_sonntag
- Beiträge: 2742
- Registriert: 04.05.2009, 15:12
- Wohnort: Frankfurt
- Kontaktdaten:
Anzahl der ausgewählten Elemente eines Listenfeldes bestimmen
Hallo Abtaucher,
anbei ein Beispiel, welches zählt, wieviel Einträge man ausgewählt hat.
Bei Beispiel 2 habe ich einfach das zweite Listenfeld ausgeblendet.
Weiß gerade nicht, warum er Empty angibt, habe es auch ohne selectedIndes probiert, aber zumindest zählt er richtig.
LG Mandy
anbei ein Beispiel, welches zählt, wieviel Einträge man ausgewählt hat.
Bei Beispiel 2 habe ich einfach das zweite Listenfeld ausgeblendet.
Weiß gerade nicht, warum er Empty angibt, habe es auch ohne selectedIndes probiert, aber zumindest zählt er richtig.
LG Mandy
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- nele_sonntag
- Beiträge: 2742
- Registriert: 04.05.2009, 15:12
- Wohnort: Frankfurt
- Kontaktdaten:
Anzahl der ausgewählten Elemente eines Listenfeldes bestimmen
Vlt. hilft Dir dieses Skript von walde auch noch weiter.
Auswahl wird angezeigt und bei Bedarf wieder gelöscht mit Klick auf den Eintrag.
Auswahl wird angezeigt und bei Bedarf wieder gelöscht mit Klick auf den Eintrag.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Anzahl der ausgewählten Elemente eines Listenfeldes bestimmen
Hallo Mandy,
mein Problem ist folgendes: ich sitze mal wieder (nach längerer Pause) an meinem Formular für den Studienplan. Ich habe je Modul eine Zeile mit einer checkbox, verschiedenen Text- und Numerischen Feldern. Ein Listenfeld wird mit Werten aus den Zeilen gefüllt, bei denen das Kontrollfeld nicht aktiviert ist. Soweit klappt das alles. Nun möchte ich mehrere Einträge im Listenfeld auswählen und beim Verlassen des Listenfeldes sollen die dazugehörigen Zeilen unter dem Listenfeld angezeigt werden. Dazu habe ich eine leere Zeile (Schwerpunktmodule1.Zeile) angelegt. Das Skript unten soll die ausgewählten Einträge abprüfen und bei jedem ausgewählten Eintrag, den es findet, eine leere Zeile einfügen und diese mit den Werten aus der Ursprungszeile füllen. (Vielleicht geht das ja auch viel einfacher, indem man die Ursprungszeile direkt an die Stelle kopiert, aber keine Ahnung, wie das funktioniert).
Das Skript unten funktioniert soweit, dass es die richtige Anzahl Zeilen einfügt und befüllt, ALLERDINGS nur mit den Werten des letzten ausgewählten Eintrags, dh. bei drei ausgewählten Einträgen schreibt es mir drei neue Zeilen mit jeweils dem Inhalt des dritten Eintrags.
Irgendwo habe ich einen Denkfehler, aber ich komme nicht drauf.
mein Problem ist folgendes: ich sitze mal wieder (nach längerer Pause) an meinem Formular für den Studienplan. Ich habe je Modul eine Zeile mit einer checkbox, verschiedenen Text- und Numerischen Feldern. Ein Listenfeld wird mit Werten aus den Zeilen gefüllt, bei denen das Kontrollfeld nicht aktiviert ist. Soweit klappt das alles. Nun möchte ich mehrere Einträge im Listenfeld auswählen und beim Verlassen des Listenfeldes sollen die dazugehörigen Zeilen unter dem Listenfeld angezeigt werden. Dazu habe ich eine leere Zeile (Schwerpunktmodule1.Zeile) angelegt. Das Skript unten soll die ausgewählten Einträge abprüfen und bei jedem ausgewählten Eintrag, den es findet, eine leere Zeile einfügen und diese mit den Werten aus der Ursprungszeile füllen. (Vielleicht geht das ja auch viel einfacher, indem man die Ursprungszeile direkt an die Stelle kopiert, aber keine Ahnung, wie das funktioniert).
Das Skript unten funktioniert soweit, dass es die richtige Anzahl Zeilen einfügt und befüllt, ALLERDINGS nur mit den Werten des letzten ausgewählten Eintrags, dh. bei drei ausgewählten Einträgen schreibt es mir drei neue Zeilen mit jeweils dem Inhalt des dritten Eintrags.
Irgendwo habe ich einen Denkfehler, aber ich komme nicht drauf.
Code: Alles auswählen
Formular1.Vertiefungsmodule.Schwerpunktmodule.Listenfeld1::exit - (JavaScript, client)
//das sind die Daten, aus denen sich die Einträge im Listenfeld ergeben
var fields1 = xfa.resolveNodes("Studienrichtung1.Zeile[*].Kontrollkaestchen1.[rawValue == 0]");
//Durchlaufe alle Einträge in der Liste
for (var i=0; i < fields1.length; i++) {
//Wenn ein Eintrag ausgewählt ist, ergänze eine Zeile im Teilformular "Schwerpunktmodule1" und...
if (this.getItemState(i)) {
Schwerpunktmodule1.Zeile.instanceManager.addInstance(1);
var Modulzeile = xfa.resolveNodes("Schwerpunktmodule1.Zeile[*]");
//Hier wird die Anzahl der eingefügten Zeilen abgefragt = Anzahl der selektierten Listeneinträge
var f = Schwerpunktmodule1.Zeile.instanceManager.count-1;
//Hier sollen in der jeweiligen Zeile in den einzelnen Feldern die Daten aus den Feldern der Zeilen eingefügt werden, aus denen sich das Listenfeld zusammensetzt.
for (var p=0; p<f; p++) {
Modulzeile.item(p).Textfeld1.rawValue = fields1.item(i).parent.Textfeld1.rawValue;
Modulzeile.item(p).Textfeld2.rawValue = fields1.item(i).parent.Textfeld2.rawValue;
Modulzeile.item(p).Textfeld3.rawValue = fields1.item(i).parent.Textfeld3.rawValue;
Modulzeile.item(p).NumerischesFeld2.rawValue = fields1.item(i).parent.NumerischesFeld2.rawValue;
Modulzeile.item(p).Textfeld4.rawValue = fields1.item(i).parent.Textfeld4.rawValue;
}}}