LÖSUNG: Filterfunktion in Tabelle
Verfasst: 16.01.2024, 15:40
Hallo Acronaut*innen,
Im angehängten Dokument habe ich eine Filterung nach Checkboxen und Inhalten ermöglicht...
Bei der Dropdownliste habe ich die Einträge unter CHANGE in einer Switch-Case Anweisung so programmiert, dass nur noch die Zeilen der Tabelle angezeigt sind bei denen im Feld bmGruppe der Wert steht, der im Filter gewählt wurde:
Leider habe ich noch nicht herausgefunden, wie ich das in einer For-Schleife abfrage, die eben den gewählten Eintrag direkt als Variable hat. Dann würde das ganze dynamischer sein, denn für jeden weiteren Eintrag im Feld bmGruppe muss ein neuer Case-Eintrag programmiert werden. Das Formular funktioniert aber erst einmal.
Vielleicht hilft das dem/der einen oder dem/der anderen.
LG Ralf
Im angehängten Dokument habe ich eine Filterung nach Checkboxen und Inhalten ermöglicht...
Bei der Dropdownliste habe ich die Einträge unter CHANGE in einer Switch-Case Anweisung so programmiert, dass nur noch die Zeilen der Tabelle angezeigt sind bei denen im Feld bmGruppe der Wert steht, der im Filter gewählt wurde:
Code: Alles auswählen
switch (xfa.event.newText) {
case "Rauchabzüge":
for (i = 0; i < parent.parent.parent.items.instanceManager.count; i++) {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue == "Rauchabzüge")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "visible";
} else {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue != "Rauchabzüge")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "hidden";
};
};
}
break;
case "Feuerlöscher":
for (i = 0; i < parent.parent.parent.items.instanceManager.count; i++) {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue == "Feuerlöscher")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "visible";
} else {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue != "Feuerlöscher")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "hidden";
};
};
}
break;
case "Brandschutztüren":
for (i = 0; i < parent.parent.parent.items.instanceManager.count; i++) {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue == "Brandschutztüren")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "visible";
} else {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue != "Brandschutztüren")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "hidden";
};
};
}
break;
case "Brandschutzklappen":
for (i = 0; i < parent.parent.parent.items.instanceManager.count; i++) {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue == "Brandschutzklappen")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "visible";
} else {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue != "Brandschutzklappen")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "hidden";
};
};
}
break;
case "Blitzschutz":
for (i = 0; i < parent.parent.parent.items.instanceManager.count; i++) {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue == "Blitzschutz")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "visible";
} else {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue != "Blitzschutz")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "hidden";
};
};
}
break;
case "Brandmeldeanlagen":
for (i = 0; i < parent.parent.parent.items.instanceManager.count; i++) {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue == "Brandmeldeanlagen")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "visible";
} else {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue != "Brandmeldeanlagen")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "hidden";
};
};
}
break;
case "Küchentechnik":
for (i = 0; i < parent.parent.parent.items.instanceManager.count; i++) {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue == "Küchentechnik")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "visible";
} else {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue != "Küchentechnik")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "hidden";
};
};
}
break;
case "Fettabscheideranlagen":
for (i = 0; i < parent.parent.parent.items.instanceManager.count; i++) {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue == "Fettabscheideranlagen")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "visible";
} else {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue != "Fettabscheideranlagen")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "hidden";
};
};
}
break;
case "Heizung":
for (i = 0; i < parent.parent.parent.items.instanceManager.count; i++) {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue == "Heizung")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "visible";
} else {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue != "Heizung")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "hidden";
};
};
}
break;
case "Tore und Türen":
for (i = 0; i < parent.parent.parent.items.instanceManager.count; i++) {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue == "Tore und Türen")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "visible";
} else {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue != "Tore und Türen")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "hidden";
};
};
}
break;
case "Fenster":
for (i = 0; i < parent.parent.parent.items.instanceManager.count; i++) {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue == "Fenster")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "visible";
} else {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue != "Fenster")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "hidden";
};
};
}
break;
case "Abluftanlagen":
for (i = 0; i < parent.parent.parent.items.instanceManager.count; i++) {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue == "Abluftanlagen")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "visible";
} else {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue != "Abluftanlagen")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "hidden";
};
};
}
break;
case "Flurförderzeuge / Hubwagen":
for (i = 0; i < parent.parent.parent.items.instanceManager.count; i++) {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue == "Flurförderzeuge / Hubwagen")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "visible";
} else {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue != "Flurförderzeuge / Hubwagen")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "hidden";
};
};
}
break;
case "Hebeanlagen / Pumpen":
for (i = 0; i < parent.parent.parent.items.instanceManager.count; i++) {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue == "Hebeanlagen / Pumpen")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "visible";
} else {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue != "Hebeanlagen / Pumpen")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "hidden";
};
};
}
break;
case "Regale":
for (i = 0; i < parent.parent.parent.items.instanceManager.count; i++) {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue == "Regale")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "visible";
} else {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue != "Regale")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "hidden";
};
};
}
break;
case "Baumprüfung":
for (i = 0; i < parent.parent.parent.items.instanceManager.count; i++) {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue == "Baumprüfung")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "visible";
} else {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue != "Baumprüfung")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "hidden";
};
};
}
break;
case "Sicherheitstechnik":
for (i = 0; i < parent.parent.parent.items.instanceManager.count; i++) {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue == "Sicherheitstechnik")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "visible";
} else {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue != "Sicherheitstechnik")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "hidden";
};
};
}
break;
case "Trafostation":
for (i = 0; i < parent.parent.parent.items.instanceManager.count; i++) {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue == "Trafostation")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "visible";
} else {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue != "Trafostation")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "hidden";
};
};
}
break;
case "Elektrische Betriebsmittel":
for (i = 0; i < parent.parent.parent.items.instanceManager.count; i++) {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue == "Elektrische Betriebsmittel")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "visible";
} else {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue != "Elektrische Betriebsmittel")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "hidden";
};
};
}
break;
case "Pressen / Stanzen":
for (i = 0; i < parent.parent.parent.items.instanceManager.count; i++) {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue == "Pressen / Stanzen")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "visible";
} else {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue != "Pressen / Stanzen")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "hidden";
};
};
}
break;
case "Aufzüge":
for (i = 0; i < parent.parent.parent.items.instanceManager.count; i++) {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue == "Aufzüge")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "visible";
} else {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue != "Aufzüge")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "hidden";
};
};
}
break;
case "Fahrzeuge":
for (i = 0; i < parent.parent.parent.items.instanceManager.count; i++) {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue == "Fahrzeuge")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "visible";
} else {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue != "Fahrzeuge")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "hidden";
};
};
}
break;
case "Betriebsmittel":
for (i = 0; i < parent.parent.parent.items.instanceManager.count; i++) {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue == "Betriebsmittel")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "visible";
} else {
if (xfa.resolveNode("parent.parent.parent.items[" + i + "]").bmGruppe.rawValue != "Betriebsmittel")
{
xfa.resolveNode("parent.parent.parent.items[" + i + "]").presence = "hidden";
};
};
}
break;
};
Vielleicht hilft das dem/der einen oder dem/der anderen.
LG Ralf