OBI EE Filtrowanie po datach użycie zmiennych repozytorium predefiniowanych
Posted by Marek Gregor on 18th Grudzień 2009
Wpis ten potraktuję jako pomoc użytkownikom w mojej firmie ale można go też potraktować jako good practice.
So, go on….
Bardzo często filtrujemy po datach i bardzo dobrze po to są. Więc tworzymy mozolnie raport, robimy skomplikowane funkcje, przestawiamy to wszystko w tabelach przestawnych, robimy super kolorowe wykresy i… dodajemy filtr na daty tak aby pokazać wynik za poprzedni miesiąc czyli np filtrujemy jakies pole aby zawierało się w datach 2009-11-01 do 2009-11-30. Zapisujemy ten raport na pulpicie i już mamy gotowca którego możemy oglądać codziennie i cieszyć się dobrymi wynikami ale…. tylko przez miesiąc za miesiąc musimy wejść i przestawić datę i tak co miesiąc. Jeszcze gorzej jest gdy mamy raport filtrowany datą dzienną czyli załóżmy zawsze na wczoraj. Jakie jest rozwiązanie
1. Filtrować funkcją opartą na dacie (nie o tym ten topik ale pokażę) czyli np zamiast filtrować na sztywno w raporcie Data=’2009-11-16′ robimy filtr na funkcji która wygląda następująco:
Data=TIMESTAMPDIFF(SQL_TSI_DAY,Current_Date,1)
O funkcjach na datach zrobię osobny wpis
2. Użyć zmiennych przedefiniowanych przez administratora (czyli w VB Leasing przeze mnie
)
Otóż
Zrobiłem na potrzeby użytkowników szereg zmiennych tzw repozytorium które zwracają różne daty ustalane na podstawie bieżącej daty.
Oto lista tych zmiennych wraz z komentarzem i przykładem co zwróci taka zmienna zakładając że wykonana jest w dniu zrobienia tego wpisu tj w dniu: 2009-12-16
| Nazwa zmiennej | Opis | Przykład (dla dnia 2009-12-16) |
| varData1dago | wczorajsza data | 2009-12-15 |
| varData0mago | dzisiejsza data | 2009-12-16 |
| varData1mago | data miesiąc temu | 2009-11-16 |
| varData2mago | 2 miesiące temu | 2009-10-16 |
| varData3mago | 3 miesiące temu | 2009-09-16 |
| varData4mago | 4 miesiące temu | 2009-08-16 |
| varData5mago | 5 miesiące temu | 2009-07-16 |
| varData6mago | 6 miesiące temu | 2009-06-16 |
| varData12mago | 12 miesiące temu | 2008-12-16 |
| varFirstCurrent | pierwszy dzien bieżącego miesiąca | 2009-12-01 |
| varFirst1mago | pierwszy dzień 1 miesiąc temu | 2009-11-01 |
| varFirst2mago | pierwszy dzień 2 miesiąc temu | 2009-10-01 |
| varFirst3mago | pierwszy dzień 3 miesiąc temu | 2009-09-01 |
| varFirst4mago | pierwszy dzień 4 miesiąc temu | 2009-08-01 |
| varFirst5mago | pierwszy dzień 5 miesiąc temu | 2009-07-01 |
| varFirst6mago | pierwszy dzień 6 miesiąc temu | 2009-06-01 |
| varFirst12mago | pierwszy dzień 12 miesiąc temu | 2008-12-01 |
| varLastCurrent | ostatni dzien bieżącego miesiąca | 2009-12-31 |
| varLast1mago | ostatni dzień 1 miesiąc temu | 2009-11-30 |
| varLast2mago | ostatni dzień 2 miesiąc temu | 2009-10-31 |
| varLast3mago | ostatni dzień 3 miesiąc temu | 2009-09-30 |
| varLast4mago | ostatni dzień 4 miesiąc temu | 2009-08-31 |
| varLast5mago | ostatni dzień 5 miesiąc temu | 2009-07-31 |
| varLast6mago | ostatni dzień 6 miesiąc temu | 2009-06-30 |
| varLast12mago | ostatni dzień 12 miesiąc temu | 2008-12-31 |
| varRMcurrent | Rok miesiąć dzisiejszej daty | 2009-12 |
| varRM1mago | Rok miesiąć 1 miesiąc temu | 2009-11 |
| varRM2mago | Rok miesiąć 2 miesiące temu | 2009-10 |
| varRM3mago | Rok miesiąć 3 miesiące temu | 2009-09 |
| varRM6mago | Rok miesiąć 6 miesięcy temu | 2009-06 |
| varRM12mago | Rok miesiąć 12 miesięcy temu | 2008-12 |
| varRcurrent | bieżący rok | 2009 |
| varLastCurrent | ostatni dzień bieżącego roku | 2009-12-31 |
Tak więc użycie tak więc użycie takiej zmiennej i dynamiiczne filtrowanie danych będzie polegało na zastąpieniu statycznie wprowadzonej daty zmienną repozytorium.
Przykład:
Tworzymy raport z polem daty do filtrowania i filtrujemy

Wybieramy zmienną serwera

Wpisujemy zmienną z tabeli wyzej (na przykłądzie chce pokazac raport z dnia wczorajszego więc użyję zmiennej varData1dago)

i cieszymy się wynikiem

Dodano 2010-01-05
Dodałem jeszcze parę zmiennych do tego zestawu tj
tj zestaw zwracający daty od 13 do 24 miesięcy wstecz
varData13mago
varData14mago
varData15mago
varData16mago
varData17mago
varData18mago
varData19mago
varData20mago
varData20mago
varData20mago
varData20mago
Posted in Administracja, Answers, zmienne | No Comments »