Autor Thema: Kaskadierende Parameter MIT ALL  (Gelesen 85 mal)

frenchcancan

  • Newbie
  • *
  • Beiträge: 1
Kaskadierende Parameter MIT ALL
« am: 23. August 2018, 10:05 »
Guten Tag!
ich schaffe es, einen Report mit kaskadierenden parametern zu erstellen (Country->Region)
Was ich aber noch nicht herausgefunden habe ist, wie ich es mache, wenn ich in den Wertelisten '*All' als erster Eintrag haben will.
Dafür habe ich 2 Befehle hinzugefügt, damit in der Country-Liste und in der Regionliste der Eintrag '*ALL' hinzugefügt wird. Und die Parametern nehme ich aus diesen neuen Tabellen CustomerCountryPlusALL und CustomerRegionPlusALL
Aber dann , wenn ich die Auswahlliste bekomme, hängt die Regionliste nicht mehr von der Countryliste ab.
Egal, was für ein Land ich aussuche, es werden alle Regionen angezeigt.

Befehl, um die Tabelle CustomerRegionPlusALL zu erstellen:
SELECT '*ALL' AS Country FROM Customer UNION SELECT DISTINCT Country FROM Customer
Befehl, um die Tabelle CustomerRegionPlusALL zu erstellen:
SELECT '*ALL' AS Region FROM Customer UNION SELECT DISTINCT Region FROM Customer
Kann mir jemand weiterhelfen?
Ich möchte dass die Auswahl der Regionen von der Auswahl des Landes abhängt, aber vorher möchte ich den Regionen den Eintrag "*ALL" hinzugefügt haben, um ggf alle regionen eines Landes auszuwählen

Vielen Dank im Voraus für Eure Hilfe
frenchcancan

hgfa

  • Experte
  • *****
  • Beiträge: 1770
Re: Kaskadierende Parameter MIT ALL
« Antwort #1 am: 24. August 2018, 12:50 »
Hallo,
Zitat
Egal, was für ein Land ich aussuche, es werden alle Regionen angezeigt.
Ist klar, da Du zwei verschiedene virtuelle Tabellen verwendest (kein Zusammenhang; woher soll die eine von der anderen wissen?).
Kaskadieren geht nur, wenn eine entsprechende "Gruppierung" moeglich ist. Das geht aber mit zwei Tabellen nicht. Also eine Tabelle.
Ich hab nur die deutsche Version von Xtreme-Musterdatenbank deshalb in deutsch:
Um eine virtuelle Tabelle zu erstellen Befehl:
SELECT '*Alle Regionen der gewaehlten Laender' AS Land, '*Alle Regionen der gewaehlten Laender' AS Region  FROM Kunde
UNION
SELECT Distinct Land,Region FROM Kunde
'*Alle Regionen der gewaehlten Laender' zweimal, damit eine "Verbindung" fuer die Kaskadierung besteht.
Wenn Du also alle Regionen der gewaehlten Laender haben willst, musst Du auch bei der Laenderauswahl 'zusaetzlich *Alle...' auswaehlen.
Die Auswahlformel sieht dann so aus:
If {?Alle - Region} = "*Alle Regionen der gewaehlten Laender" Then
{Kunde.Land} = {?Alle - Land}
Else
{Kunde.Region} = {?Alle - Region} and
{Kunde.Land} = {?Alle - Land}
Hoffe, Du kommst zurecht
Gruss Hansgeorg