Działanie na zmiennych z pozycji Lumira Designer

 

Jeśli naszym źródłem danych jest zapytanie BEX (Business Explorer) ze zmienną, która jest gotowa do wprowadzenia (tzw. input ready), możemy zmieniać jej wartość korzystając z różnych dostępnych narzędzi po stronie Lumira Designer.

 

Domyślnie Lumira Designer reaguje w następujący sposób na zmienną w użytym zapytaniu:

  •  Jeśli zmienna jest opcjonalna i ma ustawioną wartość domyślną, aplikacja podczas uruchomienia ustawia jej wartość jako tą domyślną
  •  Jeśli zmienna jest opcjonalnanie ma ustawionej wartości domyślnej, aplikacja podczas uruchomienia ustawia jej wartość jako pustą
  •  Jeśli zmienna nie jest opcjonalna i ma ustawioną wartość domyślną, aplikacja podczas uruchomienia ustawia jej wartość jako tą domyślną
  •  Jeśli zmienna nie jest opcjonalna i nie ma ustawionej wartości domyślnej, aplikacja podczas uruchomienia pyta się o jej wartość (tzw. prompts on startup).

 

 

Te zachowania możemy zmienić korzystając z okienka właściwości naszej aplikacji, w dziale Prompts (w Outline zaznaczamy naszą aplikację, a następnie przechodzimy do okna Properties).

 

 

 

Z najważniejszych opcji:

Merge Prompts – włączenie tej opcji powoduje, w przypadku kiedy w projekcie posiadamy kilka zapytań korzystających tej samej zmiennej, że nasza aplikacja traktuje ją jako jeden prompt.

Force Prompts on Startup – włączenie tej opcji powoduje pojawienie się okienka pytającego o wartości zmiennych przy każdym uruchomieniu aplikacji, niezależnie od wcześniej wspomnianych ustawień.

 

Na zmienne możemy także wpływać korzystając ze skryptów, np. tworząc przycisk wywołujący okno służące do ich wypełniania (poniżej kod dla przycisku):

 

APPLICATION.openPromptDialog(500, 300);

 

Gdzie 500 i 300 to szerokość i wysokość okienka.

 

Możemy także wypełniać je ręcznie, bez wiedzy użytkownika końcowego, korzystając ze skryptów oddziałujących na źródła danych:

 

                DS_1.setVariableValueExt("NAD_TEST_DZIAL", "");

 

Gdzie:

NAD_TEST_DZIAL – techniczna nazwa zmiennej

”” – wartość, którą wypełniamy zmienną (w naszym przypadku jest pusta, co np. w przypadku filtru opartego na zmiennej spowoduje wyświetlenie wszystkich elementów)

 

Uwaga!

Domyślnie opcja Merge Prompts aplikacji ustawiona jest na True, dzięki czemu zmiana wartości jednej zmiennej w skrypcie spowoduje zamianę wartości tej zmiennej we wszystkich innych źródłach danych w aplikacji.

 

Uwaga x2!

W zależności od rodzaju zmiennej należy korzystać z funkcji setVariableValueExt lub setVariableValue (w dokumentacji wszystkie możliwe użycia są świetnie opisane).

 

Ciekawostka!

Jeśli zmienna przyjmuje jako swoją wartość zakres elementów, możemy go również ustalić korzystając ze skryptów. Robi się to w następujący sposób:

 

                "od - do"

 

Gdzie od i do to odpowiednie wartości, przykładowo:

 

var range = "08.2016 - 12.2016";

DS_1.setVariableValueExt("NAD_TEST_ZAKRES", range);

 

Zmienna filtrująca nasze dane na zakres czasu przyjmie teraz wartości od sierpnia do grudnia 2016 roku.