Przemysław Janczewski

Przemysław Janczewski Administrator
systemu IT

Temat: Parameter fields

Pytanie z typu ciekawe :)
Czy zawsze jeżeli mamy do wyboru parametr musimy go wybrać?
Przykład: w PF mamy selecta z nazwami klientów z ustawieniem na multi - oczywiście można wybrać wszystkie rekordy ale nie tędy droga.
Chodzi o to czy istnieje opcja żeby w momencie niewybrania niczego raport brał pod uwage wszystkie rekordy z zapytania?
Marcin S.

Marcin S. Programista, trener
i konsultant w
zakresie .NET/.NET
Cor...

Temat: Parameter fields

Tak, domyślnie działa w ten sposób, że trzeba wprowadzić jakiś parametr.

Ale od wersji CR 2008 wprowadzono tzw. parametry opcjonalne.

1. Trzeba zaznaczyć opcję Optional.

2. Następnie w formule filtrującej trzeba skorzystać z funkcji HasValue({parameter}), która sprawdza czy użytkownik wprowadził wartość.


if HasValue({parametr1}) then {table.pole} = {parametr} else true


Uwaga: nie mylić z funkcją IsNull, która dotyczy pól z bazy danych a nie parametrów.

W starszych wersjach trzeba zastosować trick.

W razie czego mogę opisać ;-)Marcin Sulecki edytował(a) ten post dnia 05.12.12 o godzinie 16:02
Przemysław Janczewski

Przemysław Janczewski Administrator
systemu IT

Temat: Parameter fields

Pod samym crystalem działa super gorzej po podpięciu do SAPa ale to juz coś :)
Marcin S.

Marcin S. Programista, trener
i konsultant w
zakresie .NET/.NET
Cor...

Temat: Parameter fields

Jeśli w SAP'ie to rozwiązanie nie zadziała to proponuję zastosować stary trick, który zadziała w dowolnej wersji Crystala.

1. Ustalamy jakąś wartość oznaczającą wszystkie wartości, np. *

2. W formule filtrującej (Record Selection Formula) wpisujemy:

if {parametr1}='*' then true else {table.pole} = {parametr}


Gotowe :)
Marcin S.

Marcin S. Programista, trener
i konsultant w
zakresie .NET/.NET
Cor...

Temat: Parameter fields

Dodam jeszcze, że w przypadku gdy korzystamy z drugiej metody to opcja Optional musi być wyłączona (false). Oczywiście ta opcja jest dopiero od wersji CR 2008. Użytkownicy starszych wersji nie muszą się tym przejmować.
Przemysław Janczewski

Przemysław Janczewski Administrator
systemu IT

Temat: Parameter fields

Działa ale dopiero w formie:
if {parametr1}="" then true else {table.pole} = {parametr}
Nie mam pojęcia dlaczego we wcześniejszej ciągle się "przewraca"



Wyślij zaproszenie do