W większości raportów w formułach stosujemy funkcje warunkowe.
Okazuje się, że Crystal Reports posiada wiele różnych konstrukcji warunkowych, które warto znać i dobierać do konkretnego przypadku.
Funkcja if-else-then
To podstawowa i najczęściej stosowana funkcja warunkowa w Crystal Reports.
Przykład:
Pamiętajcie, że typ formuły jest określany na podstawie pierwszej zwracanej wartości. W związku z tym nie możemy mieszać typów w jednej formule.
Przykład niepoprawny:
if {Orders Detail.Quantity} <> 0 then {Orders Detail.Quantity} else "nothing"
Taka formuła wyświetli błąd, gdyż Crystal spodziewa się wartości numerycznej na podstawie pierwszej pierwszej wartości. Zatem musimy dokonać jawnej konwersji typu.
Przykład poprawny:
If {Orders Detail.Quantity} <> 0 Then ToText({Orders Detail.Quantity}) Else "nothing"
Funkcje if-then-else można zagnieżdżać, ale lepiej zachować umiar.
Przykład:
Funkcja IIF
Bardzo podobną konstrukcją do if-else-then jest funkcja IIF i różni się tylko składnią.
Przykład:
Funkcja Switch
Funkcja switch umożliwia zastąpienie wielu zagnieżdżonych funkcji if-then-else jedną zgrabną konstrukcją. Dzięki temu nasza formuła stanie się bardziej czytelna i możemy uniknąć błędów.
Przykład
Funkcja select-case
To bardzo słabo udokumentowana funkcja (brak opisu w helpie) ale może bardzo uprościć nasze formuły.
Przykład:
Funkcja Choose
Jeszcze na koniec jedna ciekawa funkcja Choose, która na podstawie pierwszego argumentu, który musi być liczbą, zwraca określony element z listy. Oczywiście może być stosowana tylko w bardzo specyficznych sytuacjach.
Przykład
zwraca "środa".
Co ciekawe, można również zwracać zakresy danych.
Przykład
Okazuje się, że Crystal Reports posiada wiele różnych konstrukcji warunkowych, które warto znać i dobierać do konkretnego przypadku.
Funkcja if-else-then
To podstawowa i najczęściej stosowana funkcja warunkowa w Crystal Reports.
Przykład:
Pamiętajcie, że typ formuły jest określany na podstawie pierwszej zwracanej wartości. W związku z tym nie możemy mieszać typów w jednej formule.
Przykład niepoprawny:
if {Orders Detail.Quantity} <> 0 then {Orders Detail.Quantity} else "nothing"
Taka formuła wyświetli błąd, gdyż Crystal spodziewa się wartości numerycznej na podstawie pierwszej pierwszej wartości. Zatem musimy dokonać jawnej konwersji typu.
Przykład poprawny:
If {Orders Detail.Quantity} <> 0 Then ToText({Orders Detail.Quantity}) Else "nothing"
Funkcje if-then-else można zagnieżdżać, ale lepiej zachować umiar.
Przykład:
Funkcja IIF
Bardzo podobną konstrukcją do if-else-then jest funkcja IIF i różni się tylko składnią.
Przykład:
Funkcja Switch
Funkcja switch umożliwia zastąpienie wielu zagnieżdżonych funkcji if-then-else jedną zgrabną konstrukcją. Dzięki temu nasza formuła stanie się bardziej czytelna i możemy uniknąć błędów.
Przykład
Funkcja select-case
To bardzo słabo udokumentowana funkcja (brak opisu w helpie) ale może bardzo uprościć nasze formuły.
Przykład:
Funkcja Choose
Jeszcze na koniec jedna ciekawa funkcja Choose, która na podstawie pierwszego argumentu, który musi być liczbą, zwraca określony element z listy. Oczywiście może być stosowana tylko w bardzo specyficznych sytuacjach.
Przykład
zwraca "środa".
Co ciekawe, można również zwracać zakresy danych.
Przykład
Komentarze