Omezením tohoto řešení je skutečnost, že budoucí uživatel takto vytvořeného pohledu na data nutně uvidí právě 20 Top hodnot. Můžeme do filtru zadat i jiné číslo, ale setkal jsem se ovšem s případem, že zákazník chtěl počet řádků vě výběru – tedy hodnotu N – určovat sám – tedy dynamicky.
Řešením, které mně napadlo, je použití proměnné prezentace.
Jak si proměnnou prezentace zadefinujeme a naplníme, se pokusím popsat na následujícím příkladu, kdy jsem k tomu použil Dashboard Prompt (omezený na stránku).
Ukázkový standardní business model znázorňuje obvyklé vazby mezi faktovou tabulkou a dimenzemi.
Protože budeme potřebovat nějaký logický sloupec pro zadání hodnoty „N“, doplnil jsem do logické tabulky Facts logický sloupec N a vložil do něj hodnotu 1.
Tím se zajistila hodnota Data Type implicitně jako Int. Sloupec N jsem přidal do prezentační vrstvy.
Logický sloupec N nyní lze použít v dashboard promptu. Ověříme si konzistenci a repository uložíme.
Přihlásíme se do Answers a vytvoříme Dasboard prompt. Jeho význam omezíme na Page:
Do promptu přidáme sloupec N.
Vhodně zvolíme hodnotu sloupců Operator, Control, Default to (zvolil jsem Specific Value =1), Set Variable (variable jsem pojmenoval X01) a do kolonky Label napíšeme text: Select value of N in TopN. Default value is 1.
Prompt graficky dotvoříme:
Uložíme jej jako např. Page_prompt1.
Ještě připravíme vhodný dotaz. Nesmíme v něm zapomenout na sloupec Rank(Facts.Units), který udává pořadí řádku ve výběru a bude slouži jako filtr, protože uživatel si bude zadávat právě hodnotu počtu řádků. Nejvyšší pořadí pak bude vlastně udávat počet vrácených řádků.
Filtrovací podmínka pro sloupec Rank(Facts.Units) byla vytvořena takto:
Defaultní hodnota 1 slouží k tomu, aby se v případě, že není zadána žádná hodnota proměnné X01, zobrazil právě jediný řádek.
Dotaz uložíme jako Select01 a spolu s promptem umístíme na dashboard.
Výsledek by měl být následující:
1)Nezadáme-li do promptu žádnou hodnotu, implicitně se do filtru nastaví hodnota 1 a vybere se jediný řádek.
2) Naopak, zadáme-li např. hodnotu 17, pak se do proměnné prezentace (Presentation Variable) pojmenované X01 nastaví hodnota 17 a vybere se 17 řádků .
Takto si uživatel může výbírat libovolný počet Top N řádků.
Jiří Doubravský (PIKE ELECTRONIC)
Žádné komentáře:
Okomentovat