Während eine "Alles auswählen" -Funktion in einer Auswahl-Dropdown-Komponente scheint eine einfache Funktion zu sein, hatte ich eine unglaublich harte Zeit eine funktionierende Lösung zu finden. Ich kann drei SO-Fragen zu dem Thema finden, aber keiner der Ansätze funktioniert vollständig.Pentaho CDE "Alle" Option in "Select" Komponente
How to add a select all option to select component in CDE
Pentaho CDE reset parameter
How to add a "select all" option to select component in CDE?
Ich habe eine Tabelle mit einer Spalte, die Ratings von 1-5 (als String-Typ) enthält. Ich muss den Benutzern die Möglichkeit geben, entweder einen Wert von 1-5 oder ein "All" auszuwählen.
Ich habe eine einfache Datenquelle (DB2) erstellt, indem ich die Zahlen 1-5 als Strings ziehe. Gegebenenfalls unten, würde ich UNION ALL
mit einem ''
oder einem "All"
SELECT ... WHERE (CAST(RATING AS CHAR) = CAST(${parameter} AS CHAR) OR ${parameter} = '')
SELECT ... WHERE (RATING = ${parameter} OR ${parameter} = '')
SELECT ... WHERE (RATING LIKE (CASE WHEN ${parameter} = 'All' THEN '%' ELSE ${parameter} END))
ich die "Select Component" verwenden und "Simple Parameter" Eigenschaften wie wäre erwartet. Ich habe experimentiert mit der Einstellung der "Parameter-Eigenschaft Wert" gleich ''
, "Alle" und Nummern 1-5, aber ich kann nur entweder die "Alle" oder die numerischen Auswahlen zu arbeiten. In wahrscheinlich 50 Iterationen dieser Methodik habe ich noch nie erfolgreich sowohl arbeiten.
Gibt es eine einfache oder direkte Möglichkeit, eine "Alle" -Auswahl hinzuzufügen, ohne zu einer Mehrfachauswahlkomponente oder zusätzlichem JavaScript zu wechseln?
Es könnte sein, dass Pentaho, wenn Sie numerische Werte verwenden, den Parameter als Zahl kodiert und ihn daher nicht in Anführungszeichen in SQL einpackt und andernfalls in Anführungszeichen setzt. Das wäre eine Erklärung, warum Sie nur 'entweder oder' verwenden können (nur ein Typ würde funktionieren, wenn er mit 'RATING' verglichen wird). Haben Sie versucht, den Parameter in einer LIKE-Klausel wie folgt zu verwenden: 'WHERE TO_CHAR (RATING) LIKE $ {parameter}' und dann '%' als Wert für 'All' verwenden? Ich denke, dass ich mit dieser Strategie etwas Ähnliches lösen konnte. –