LÖSUNG: Filterfunktion in Tabelle

Fragen und Antworten rund um das Thema JavaScript im LiveCycleDesigner
Antworten
Benutzeravatar
schuh
Beiträge: 80
Registriert: 03.01.2017, 13:53
Wohnort: Leverkusen
Kontaktdaten:

LÖSUNG: Filterfunktion in Tabelle

Beitrag von schuh » 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:

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;

};
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
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten