+1 800 256 3608 (toll-free in North America) or +49 7531 9060-10| service@combit.com

Dimension, Anzahl von Berichtsparametern

Ich generiere einen Berichtsparameter aus einer Datenquelle (Werte einer Tabelle). Für diesen Berichtsparameter lasse ich die Mehrfachauswahl zu.
Wie kann ich herausbekommen und anzeigen, wieviele der möglichen Werte ausgewählt sind?
Ich kann natürlich die ausgewählten Werte anzeigen, möchte aber eher angeben “x von y” (3 von 20).

An sich wollte ich “das geht derzeit leider nicht” antworten, um es richtig zu machen würde man Funktionen benötigen, die auf den Berichtsparameter wirken, so wie SelectedValuesCount und TotalValuesCount. Sie können den Vorschlag gerne in die Idea Place-Kategorie posten.

Da mich das Ganze aber doch gereizt hat habe ich mal ein bisschen gegraben und einen Workaround gefunden der zumindest in unserer Demo-Anwendung mit einer Datenquelle, die native Aggregatsfunktionen unterstützt funktioniert. Trivial ist es aber nicht:

  1. Ermitteln der Anzahl selektierter Elemente

Len(RegExSubst$(DisplayValues$(@Categories)+"","[a-zA-Z0-9 /=-]", ""))+1

lies: Nimm den Wert des Parameters (DisplayValues$), mache ihn eindimensional (+""), ersetze alle Zeichen die außer “,” im String vorkommen (RegExSubst$) und ermittele die Länge dieses Strings (=die Anzahl der Kommata). Dieser Wert +1 entspricht der Anzahl selektierter Einträge. Achtung: wenn die Einträge ebenfalls Kommata enthalten können greift das nicht mehr.

  1. Ermitteln der Gesamtzahl der Einträge

Das ist vergleichsweise einfach: NativeCount(Categories.CategoryID) wenn Sie sich für Felder aus der Categories-Tabelle interessieren. Das klappt natürlich nur, wenn hier kein Filter mehr für den Parameter greift.

Ich lade Ihnen das Beispiel hier mal hoch. Stolz bin ich nicht darauf :wink: , die schönere Lösung wären sicher neue Designerfunktionen. Vielleicht ist das Beispiel dennoch nützlich für Sie. ParameterErmittlung.lsr (41.9 KB)

Klappt! Ich find es gar nicht so unschön, bin jedenfalls lange daran gescheitert den Berichtsparameter eindimensional zu machen, um dann irgendwie die Zeichen zu zählen.
Ich gehe jetzt letztlich den Weg über einen numerischen Berichtsparameter (Liste von ID’s), da läuft die Ersetzung von Zeichen, also Zahlen, robuster.
Vielen Dank für den Tipp.

1 Like

© combit GmbH