Thomas Parry:
http://jasperforge.org/plugins/espforum/view.php?group_id=102&forumid=103&topicid=23795
Basically check that you have defined the report parameter type as a “Collection” or “array” (Java types).
The $X{} applies to the WHERE clause rather than the relationship clause on a JOIN.
Hi Tom,
Thanks very much for the link. Yeah, I get that it goes in the where clause - but that assumes that you have only one thing in the where.
I guess it would help to have the actual query - so here it is:
SELECT a.model_num, a.customer_internal_id,
isnull(b.customer_name,'UNKNOWN CUSTOMER') as customer_name,
a.rep_internal_id, ifnull(c.rep_name,'UNASSIGNED REP') as rep_name,
ifnull(e.area_name,'UNASSIGNED AREA') as area_name,
ifnull(f.region_name,'UNASSIGNED REGION') as region_name,
ifnull(g.territory_name,'UNASSIGNED TERRITORY') as territory_name,
ifnull(d.user_name,'UNASSIGNED USER')as user_name,
a.user_internal_id,
sum(a.fc_ship_qty) as fc_ship_qty, avg(a.fc_ship_price) as fc_ship_price,
sum(a.fc_ship_amt) as fc_ship_amt, sum(m.actual_ship_qty) as actual_ship_qty,
sum(m.actual_ship_amt) as actual_ship_amt, sum(a.fc_book_amt) as fc_book_amt,
sum(a.fc_book_qty) as fc_book_qty, sum(m.actual_backlog_qty) as actual_backlog_qty
FROM fc_data a
LEFT JOIN customer b ON (a.customer_internal_id = b.customer_internal_id)
LEFT JOIN rep c ON (a.rep_internal_id = c.rep_internal_id)
LEFT JOIN users d ON (a.user_internal_id = d.user_internal_id)
LEFT JOIN area e ON (d.area_id = e.area_id)
LEFT JOIN region f ON (d.region_id = f.region_id)
LEFT JOIN territory g ON (d.territory_id = g.territory_id)
LEFT JOIN actuals m ON (a.model_num = m.model_num AND a.customer_internal_id = m.customer_internal_id AND a.fc_date = m.fc_date)
WHERE a.tenant_id = $P{tenant_id} and (a.fc_date BETWEEN $P{dateStart} and $P{dateEnd})
and a.user_internal_id IN ($P{user_internal_id}) and a.is_aop_record <> 1
GROUP BY a.model_num, a.customer_internal_id, a.rep_internal_id, a.user_internal_id, b.customer_name,
c.rep_name, d.user_name, e.area_name, f.region_name, g.territory_name
ORDER BY e.area_name, f.region_name, g.territory_name, b.customer_name, a.model_num
The part that I’m trying to replace is the “a.user_internal_id IN ($P{user_internal_id})” part. I want to put multiple values into that - rather than a single value. If I try to just change that parameter to a collection (or array) - it barks out an error saying that data type is not valid in a query…
I really appreciate any help you could provide…