Rolf Thielmann Posted November 14, 2023 Share Posted November 14, 2023 Hallo allerseits, ich baue gerade an einer Smap zur Erfassung eines Leistungsbelegs für unsere Servicetechniker. Die Smap ist in mehrere Abschnitte unterteilt, die immer erst angezeigt werden, wenn der vorhergehende Abschnitt bearbeitet wurde. In einem Abschnitt geht es um das eingesetzte Material. Hier habe ich eine Wiederholungsgruppe angelegt, in der Artikel ausgewählt werden und dazu die Mengeneinheit und die Anzahl erfasst wird. Je nach Mengeneinheit wird für die Anzahl ein Zahleneingabefeld für ganze Zahlen oder Kommazahlen angezeigt. Am Ende der Wiederholungsgruppe habe ich einen Zahlenergebnisbaustein, mit dem ich überprüfe, ob in einem der beiden Anzahlfelder etwas eingegeben wurde. Formel für den Baustein lautet IF(AND(EMPTY({Anzahl_Ganzzahl}), EMPTY({Anzahl_Kommazahl})), 1, 0) Für den nächsten Abschnitt habe ich dann die nachfolgende Aktivierungsregel WENN EQUALS(SUM({WG_Materialeinsatz.Kontrollergebnis_Material}), 0)) Dann ABSCHNITT ist aktiviert Das funktioniert soweit gut, wenn mindestens ein Artikel ausgewählt ist. Wenn bei einem der Artikel keine Menge eingegeben ist, ist die Summe der Kontrollergebnisse größer 0 und der nächste Abschnitt wird nicht angezeigt. Leider wird der nächste Abschnitt aber auch nicht angezeigt, wenn kein Material eingesetzt wurde. Dann zeigt die Summe aller Kontrollergebnisse (ich habe dafür vorerst noch einen Zahlenergebnisbaustein eingebaut) "kein Ergebnis berechnet" (s.u.) und der nächste Abschnitt wird nicht angezeigt. Hat jemand eine Idee, wie ich abfragen kann, ob überhaupt ein Eintrag in der Wiederholungsgruppe erstellt wurde? VIELEN DANK im Voraus Link to comment Share on other sites More sharing options...
Bülent Erbas Posted November 14, 2023 Share Posted November 14, 2023 Hallo Rolf, wie soll die Regel üblicherweise aussehen? Die Formel besagt ja durch das "AND" wenn beide Bedingungen leer sind, dann nimm den Wert 1, ansonsten 0 vor 21 Minuten schrieb Rolf Thielmann: IF(AND(EMPTY({Anzahl_Ganzzahl}), EMPTY({Anzahl_Kommazahl})), 1, 0) Hier in der Regel verweist du auf den Baustein "Kontrollergebnis_Material", obwohl du oben im Bild im Baustein "Kontrolle_Material" eigentlich die gleiche Abfrage machst. ist das so gewollt? vor 27 Minuten schrieb Rolf Thielmann: WENN EQUALS(SUM({WG_Materialeinsatz.Kontrollergebnis_Material}), 0)) Dann ABSCHNITT ist aktiviert Link to comment Share on other sites More sharing options...
Rolf Thielmann Posted November 15, 2023 Author Share Posted November 15, 2023 Hallo Bülent, die erste Formel "IF(AND(EMPTY({Anzahl_Ganzzahl}), EMPTY({Anzahl_Kommazahl})), 1, 0)" ist der Wert, den der Baustein {Kontrollergebnis_Material} innerhalb der Wiederholungsgruppe annimmt. Normalerweise würde man wohl 0 verwenden, wenn beide Eingabebausteine leer sind und 1, wenn einer der Bausteine einen Wert enthält. Aber ich hatte gehofft, dass die Summe in der Aktivierungsformel des nächsten Abschnitts "EQUALS(SUM({WG_Materialeinsatz.Kontrollergebnis_Material}), 0))" auch 0 ergibt, wenn gar keine Werte in der Wiederholungsgruppe eingegeben sind... Link to comment Share on other sites More sharing options...
Bülent Erbas Posted November 15, 2023 Share Posted November 15, 2023 Ich glaube, dann müsstest du mit "OR" arbeiten, falls es reicht wenn eine Bedingung True ist. Denn mit "AND" müssen beide Bedingungen, also Ganzzahl UND Kommazahl zutreffen, damit deine Abfrage auf 1 geht. Wenn nur eine Bedingung wahr ist dann landest du immer bei 0. Link to comment Share on other sites More sharing options...
Rolf Thielmann Posted November 15, 2023 Author Share Posted November 15, 2023 Hallo Bülent, ich habe bewusst die AND-Funktion verwendet. Wenn beide Eingabebausteine leer sind, erhält die Formel des Kontrollbausteins den Wert 1 und nur wenn die Summe aller Kontrollbausteine in der Wiederholungsgruppe 0 ist, wird der nächste Abschnitt aktiviert. Das Problem liegt nicht in der Formel des Kontrollbausteins, sondern darin, dass die Summe aller Kontrollbausteine keinen Wert liefert, wenn keine Einträge in der Wiederholungsgruppe vorhanden sind. Darum frage ich mich, ob bzw. wie man feststellen kann, ob in einer Wiederholungsgruppe überhaupt ein Eintrag vorhanden ist. Link to comment Share on other sites More sharing options...
Manuel Rühl Posted November 15, 2023 Share Posted November 15, 2023 Dann probier mal: NOTEMPTY(SUM({WG_Materialeinsatz.Kontrollergebnis_Material}) 1 Link to comment Share on other sites More sharing options...
Bülent Erbas Posted November 15, 2023 Share Posted November 15, 2023 Schau mal @Rolf Thielmann So habe ich es mal umgesetzt. Solange nicht beide Bausteine Ganzzahl UND Kommazahl eingegeben sind, bleibt der Kontrollbaustein immer auf 0 und damit bleibt der nächste Abschnitt deaktiviert. Vielleicht ist das ja hilfreich: 1 Link to comment Share on other sites More sharing options...
Solution Rolf Thielmann Posted November 16, 2023 Author Solution Share Posted November 16, 2023 Hallo Manuel, hallo Bülent, VIELEN DANK für Eure Tipps! Ich habe es etwas anders umgesetzt, weil der folgende Abschnitt nur eingeblendet werden soll, wenn kein Eintrag in der Wiederholungsgruppe vorhanden ist, bzw. alle vollständig ausgefüllt sind. Hier nochmal meine Version: 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now