How To Design Studio – Variablen über Dropdown füllen
In dem Beitrag Werte über Dropdown filtern haben Sie bereits die Basics für die Arbeit mit Dropdown Boxes kennengelernt. In diesem Beitrag zeige ich Ihnen wie Sie Variablen übergeben können.
Unsere Query hat nun eine (optionale) Variable für das Geschäftjahr bekommen. Wir wollen diese nun über das Dropdown füllen. Die Dropdown Box haben wir bereits erstellt. Diese wird beim Aufruf über das folgende Script gefüllt.
//populate drop down DROPDOWN_1.setItems(DS_1.getMemberList("LPRODUCT", MemberPresentation.INTERNAL_KEY, MemberDisplay.TEXT, 10, "Alle Werte anzeigen")); DROPDOWN_2.setItems(DS_1.getMemberList("0FISCYEAR", MemberPresentation.INTERNAL_KEY, MemberDisplay.KEY, 10, "Alle Werte anzeigen")); //set query to "input ready" DS_1.configureInputReadiness(true);
Als Nächstes soll die Auswahl aus der Dropdown Box an die Variable weitergegeben werden. Dazu legen wir für die Dropdown Box ein On Select Event (Properties → Events) an. Die Variable wird für die gesamte Anwendung festgelegt. Dazu verwenden wir die Methode setVariableValue
des Objekts APPLICATION
.
APPLICATION.setVariableValue(variable, value);
Als erstes Parameter legen wir die zu füllende Varibale fest.
APPLICATION.setVariableValue("CIT_PIX_VAR_0FISCYEAR_M_E_O", value);
Dann definieren wir, woher der Wert für diese Variable kommen soll. Dieser soll aus der zweiten Dropdown Box kommen. Allerdings ist das Geschäftsjahr mit der Geschäftsjahresvariante geklammert. Wir wollen jedoch nur das Jahr übergeben. Daher legen wir über substring
fest, dass nur die Zeichen nach der zweiten Stelle übergeben werden sollen.
APPLICATION.setVariableValue("CIT_PIX_VAR_0FISCYEAR_M_E_O", DROPDOWN_2.getSelectedValue().substring(2,6));
Das Geschäftsjahr wird nun über die Variable festgelegt und die Query ist eingabebereit.
Planung und Reporting mit SAP Analysis leicht gemacht!
Lernen Sie, wie Sie mit SAP Analysis for Microsoft Office professionelle Berichte erstellen. Dieses Praxishandbuch erklärt Ihnen, wie Sie Ihre Daten auf vielfältige Weise auswerten und darstellen. Schritt-für-Schritt-Anleitungen mit zahlreichen Screenshots unterstützen Sie – von der Implementierung bis zur Anwendung.
Wenn Sie bei dem Geschäftsjahr 0FISCYEAR
für den Stammdatenzugriff die Klasse CL_RSMD_RS_0FISCYEAR
verwenden, kommt es bei der erneuten Auswahl von „Alle Werte anzeigen“ zu einem Dump (Stand DS 1.3). Bei der Auswahl von „Alle Werte anzeigen“ wird (ALL_MEMBERS)
ans BW übergeben und die Klasse kann damit nicht umgehen. In diesem Fall bietet sich das folgende Work-Around an:
if (DROPDOWN_2.getSelectedValue()!= "(ALL_MEMBERS)"){ APPLICATION.setVariableValue("CIT_PIX_VAR_0FISCYEAR_M_E_O", DROPDOWN_2.getSelectedValue().substring(2,6)); } else { //nichts }
Wenn der Wert, der aus dem Dropdown kommt nicht (ALL_MEMBERS)
heißt (also ein Jahr), wird dieser an die Variable weitergegeben. Ansonsten passiert nichts.
Bei der Geschäftperiode gilt es noch mehr zu tricksen. Da müssen wir die Reihenfolge umkehren und mit einem Punkt verketten.
if (DROPDOWN_1.getSelectedValue()!= "(ALL_MEMBERS)"){ APPLICATION.setVariableValueExt("0P_FISCPER", DROPDOWN_1.getSelectedValue().substring(6,9)+"."+DROPDOWN_1.getSelectedValue().substring(2,6)); } else { //nichts }
Ihre User beklagen sich über langsame Berichte?
- In meinem Newsletter lernen Sie, wie Sie Abhilfe schaffen.
- Entdecken Sie die Möglichkeiten der Performanceoptimierung.
- Praktische Anleitungen ermöglichen Ihnen schnelle Erfolge bei der Optimierung von SAP Systemen.
- Viele Tipps und Tricks zu SAP BI Themen.
- Holen Sie die maximale Performance aus Ihrem SAP BI!
- Bei der Anmeldung zu meinem Newsletter erhalten Sie das Buch „High Performance SAP BI“ als Willkommensgeschenk.
Falls Ihnen dieser Beitrag weitergeholfen hat, wäre es eine sehr nette Anerkennung meiner Arbeit wenn Sie z.B. Ihre Bücher über Amazon bestellen würden. Wenn Sie ein Produkt kaufen, erhalte ich dafür eine Provision. Für Sie ändert sich am Preis des Produktes gar nichts. Ich möchte mich an dieser Stelle jetzt schon für Ihre Unterstützung bedanken.
Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!