Optional Multi-Value parameter in BIRT -


i have birt report have 4 optional parameters. startdate; enddate; stringparam , listparam (multi-value parameter).

i followed "bluish" code on link how set parameter list of values in birt report?

and works if give either 1 or of value parameter. however, when leave parameter blank, got blank report (which incorrect result).

this query:

select f1,f2,f3,f4  f1 >= ?    -- startdate parameter  or f2 <= ?       -- endate paramter  or f4 = ?        -- stringparam  , ( f3 in (''/*?listparam*/) ) 

i did query on oracle db see parameter being passed query got 'null' value_string when leave parameters values blank.

any appreciated.

it sounds want search records on 1 3 of 4 criteria in parameters.

there couple ways this:

one way use like, , set default parameter value % wild card. when parameter runs returns values. aware can problematic if fields contain null.

or f4 ?   

so need use similar below return null values.

or (f4 null       or f4 ?) 

i prefer use "all" default parameter value, can see in second "and" see if parameter value all, if values producttypem1.category returned, if else looks entered valued in field producttypem1.category.

where producttypem1.active = 't'  , device2m1.istatus = 'in use'  , ( 'all' = ?    or producttypem1.category = ?) 

for work need 2 parameter entries, first all, second values other all.

enter image description here

i have 1 category parameter in report, second entry looks @ same parameter second time if parameter value not all

the way works. (expanded explanation request)

opening statement, , simple second criteria 'in use'

where producttypem1.active = 't'  , device2m1.istatus = 'in use' 

the third criteria 2 parts set in parenthesis or statement dividing 2 parts

 , ( 'all' = ?    or producttypem1.category = ?) 

if value of parameter all, first part of statement met, , query skips thing else in parenthesis. not have parameter in sql query @ all.

if value of parameter not all, first part of statement not met query looks parameter value in field producttypem1.category.

your final query this, though problematic in have default date of 'all', want use kind of date default value jan 1, 1900.

select f1,f2,f3,f4 f3 in (''/*?listparam*/)  , (  'all' = ?        or f1 >= ?)    -- startdate parameter , ( 'all' = ?        or f2 <= ?)       -- endate paramter , ( 'all' = ?        or f4 = ?)      -- stringparam 

Comments

Popular posts from this blog

python - TypeError: start must be a integer -

c# - DevExpress RepositoryItemComboBox BackColor property ignored -

django - Creating multiple model instances in DRF3 -