Hauptmenü

Leeres dynamisches Feld bei Berichterstellung

Begonnen von Marvin G. - FZJ, 23.06.2022 16:31:27

⏪ vorheriges - nächstes ⏩

Marvin G. - FZJ

Hallo, 


gibt es bei der Berichterstattung und der Verwendung von Variablen eine Möglichkeit zu sagen, dass er alle Werte ausgeben soll (auch wenn ein dynamisches Feld leer ist), wenn kein Wert angegeben wird?


Also z.B. folgende (zusammengesetzte) Tabelle:


TicketnummerDyn. Feld
123
ABC
456
DEF
789


Die Ticketnummer 789 hat kein dynamisches Feld. Wenn ich nun einen Filter für Dyn. Feld einbaue, kann ich nur ABC und DEF auswählen. Das Ticket 789 fällt auf jeden Fall raus, da ich es nicht filtern kann. Ich kann ja nur  WHERE dynFeld.value IN (${Parameters.DynFeldList}) machen, aber nicht sagen, wenn (${Parameters.DynFeldList}) leer ist, soll er das gar nicht erst filtern.


Hat jemand ne Idee, wie ich das SQL-Statement passend bauen könnte, damit er auch etwas ausgibt, wenn ich kein Dynamisches Feld im Filter auswähle?


Vielen Dank und Viele Grüße
Marvin

Torsten Thau

Hallo Marvin,


wenn Du alle Werte haben willst würde ich den filter einfach weg lassen (?).


Aber so richtig verstehe ich das Beispiel/die Frage vielleicht nicht: ist "Dyn. Feld" der Name eines DF oder sollen damit jegliche DF referenziert werden?


CU, Torsten

Marvin G. - FZJ

Hallo Thorsten, 


es geht sich hier um ein spezielles dynamisches Feld. Ich habe zum Beispiel ein dynamisches Feld "Dienstgruppe", dort sind mögliche Auswahlwerte "Applikation" und "Geräte". Dieses kann bei einem Ticket ausgewählt werden, oder auch nicht (da es nicht in allen Ticketvorlagen ein Pflichtfeld ist). Es gibt im System dann also Tickets die das dynamische Feld befüllt haben, und andere nicht. In dem Bericht wollte ich die Möglichkeit bieten, einen Filter auszuwählen, um das dynamische Feld "Dienstgruppe" zu filtern. Der Gedanke dazu war dann, wenn ich dort nichts auswähle, soll er das erst gar nicht filtern und alles anzeigen. Wenn ich diese Filterbedingung jedoch drin habe, fallen sofort alle Tickets raus, die das Feld nicht befüllt haben. 


Ganz schön wäre es, wenn man sagen könnte, er soll eine ganze Zeile aus dem SQL nehmen, wenn im Filter garnichts ausgewählt wurde. Sowas hier in der Art: 

[if not ${Parameters.DienstgruppeList} isEmpty] WHERE DynamicField.Dienstgruppe IN (${Parameters.DienstgruppeList}) 


Die Alternative für mich wäre dann, die Berichtsdefinition zu kopieren und eine zweite Definition komplett ohne Filter anzulegen. Wenn ich in einem Bericht mehrere solcher Felder drin habe, ist das natürlich entsprechend aufwendig, für jede Möglichkeit eine entsprechende eigene Definition anzulegen. 


Viele Grüße
Marvin