Marcin S.

Marcin S. BI Consultant, ETL
developer

Temat: Parametr typu number jako opcjonalny w commandzie - jak...

Mam raport na commandzie, w ktorym jeden z parametrow typu Number jest opcjonalny, wielowartosciowy.

Na ta chwile nie mam parametru w samym SELECT tylko w Selection Formula:

if HasValue ({?ParametrID}) then {Command.PoleID} = {?ParametrID}
else True

Dziala i nie ma problemu.

Na koncu raportu w podsumowaniu wyswietlam podane 'z palca' przez usera wartosci parametrow. Do wyswietlenia wartosci mojego parametru mam formule sprawdzajaca/wyswietlajaca wartosci po przecinku:

NumberVar ParametrID;
StringVar OutputNum;
if HasValue ({?ParametrID} then
(
For ParamID:=1 to count({?ParametrID}) do
(
OutputNum:= OutputNum+ toText({?ParametrID}[ParamID], 0, '') + ', '
);
left(OutputNum, len(OutputNum)-2);
)
else ''

Raport sie wygeneruje bez problemu jezeli podam przynajmniej jedna wartosc dla {?ParametrID} lub kiedy nie podam wartosci.

Natomiast pytanie:
1. jak obsluzyc 'opcjonalnosc' parametru i uniknac w/w bledu w przypadku nie podania wartosci jezeli wrzuce go do SELECTa (Commanda) w warunku WHERE ?
w duzym uproszczeniu: ...and PoleID in {?ParametrID}
Marcin S.

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

Temat: Parametr typu number jako opcjonalny w commandzie - jak...

Proponuję w takim przypadku zastosować starą poczciwą metodę, którą stosowałem zanim pojawiły się parametry opcjonalne w Crystal Reports.

Ustalamy sobie jakąś wartość parametru, która będzie "udawała" null, np. * (gwiazdka)

W warunku wpisujemy:

SELECT * FROM table1 WHERE {?ParametrID}="*" OR PoleID in {?ParametrID}
Marcin S.

Marcin S. BI Consultant, ETL
developer

Temat: Parametr typu number jako opcjonalny w commandzie - jak...

dzieki, sprawdze, ale czy "*" bedzie poprawne dla parametru typu number ?
Marcin S.

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

Temat: Parametr typu number jako opcjonalny w commandzie - jak...

Oczywiście, że nie, więc dla number najczęściej przyjmuje się 0.

Następna dyskusja:

Zalinkowane pole jako parametr




Wyślij zaproszenie do