Marcin
S.
BI Consultant, ETL
developer
Temat: Cross Tab lub inne rozwiazanie
Witam,'biznes' wymyslil sobie raport z policzonymi rekordami (child-ach) wg tzw. Priorytetow (1,2,3,4,5 - 1 jako najwazniejszy). W kolumnie ma znajdowac sie Kraj (z rekordu nadrzednego - parenta), ktorego rekord dotyczy, natomiast w wierszach Kategorie i Podkategoriie okreslone na rekordach (child-ach).
W Cross-Tabie wyglada to tak:
- columns: Kraj (kraj jest pobierany z rodzica - parenta), wartosci z widoku; Priorytet - dotyczy child-a
- rows: Kategoria; Podkategoria (dotyczy child-a)
- summarized fields: distinctCount rec.id (id rekordu - child)
W efekcie dostaje cos takiego:
Kraj
Total | Priorytet1 | Priorytet2 | Priorytet3
Kategoria1 | Podkategoria1 | 4 | 1 | 2 | 1
...
Co oznacza w sumie 4 rekordy w tej kategorii i podkategorii z rozbiciem na priorytety. Jezeli w Kategorii1/Podkategorii1 nie wystepuje rekord z jednym z Priorytetow, wowczas kolumny, np. Priorytet2 nie bedzie na raporcie. Natomiast jezeli w nastepnej Kategorii2/Podkategorii2 wystapi rekord z okreslonym Priorytetem2, to dla Kategorii1/Podkategorii1 w tej kolumnie bedzie 0 .
Biznes jest zainteresowany tylko pierwszymi trzema poziomami priorytetow oraz pokolorowaniem pol z wartosciami dla kazdego priorytetu. Problem w tym ze kiedy w 'Format Field' probuje przypisac kolor dla tla pola (lub kolor czcionki), wowczas wszystkie priorytety maja jeden kolor. Formule dla zmiany koloru ustawiam na polu, po ktorym sumuje/zliczam czyli distinctCount rec.id (id rekordu - child):
if {Widok_Priorytet_wartosc} like 'Priorytet1'
then crRed
else if {Widok_Priorytet_wartosc} like 'Priorytet2'
then crYellow
else if {Widok_Priorytet_wartosc} like 'Priorytet3'
then crAqua
else crNoColor
Bede wdzieczny za sugestie, pomoc.
Pozdrawiam