BIRT 报告参数不接受以 ',' 分隔的多个值

问题描述 投票:0回答:1

前端举报链接:

PharmacyItemDispnse_ByOffice.rptdesign&SDATE="+sdate+"&EDATE="+edate+"&OID="+oid+"&MEDID="+medy;

我从前端传递的值是这样的

前端报告链接:

PharmacyItemDispnse_ByOffice.rptdesign&SDATE=2024-01-08&EDATE=2024-01-08&OID=7&MEDID=253078,253077,253076

问题是 BIRT 不接受 MEDID 报告参数。MEDID 在 BIRT 中设置为字符串我确保 sql 查询包含“IN” 但我得到的错误是

Error:

 Cannot convert the parameter value 253076,253077,253078 at index 1 from the value type of class java.lang.String to the ODA type of 4. For input string: "253076,253077,253078" 
sql query added in Birt report Data set:

SELECT  
    ite.ITEM_PDT_ID,    
    ite.ITEM_NAME , 
    im.ITEM_CODE ,  
    ite.item_unit, 
    inv.OFFICE_ID,  
    od.OFFICE_NAME, 
    sum(ite.item_qtysold) total_dispensed 
    FROM
    ABC.invoice_item ite 
    INNER JOIN ECLINIC_KNG.invoice inv 
    ON ite.item_invoice_id = inv.invoice_id 
    LEFT JOIN ECLINIC_KNG.OFFICE_DETAILS od ON inv.OFFICE_ID = od.OFFICE_ID  
    LEFT  JOIN ECLINIC_KNG.ITEM_MASTER im ON ite.ITEM_PDT_ID =im.ITEM_ID 
    WHERE   inv.INV_STATUS = 'Closed' AND 
    inv.INV_CANCEL_STATUS = 'N' AND
    inv.office_id = ? AND 
    inv.invoice_date BETWEEN ? AND ?
    AND ite.ITEM_PDT_ID IN (?)
    GROUP BY ite.ITEM_PDT_ID,
    ite.ITEM_NAME,
    im.ITEM_CODE,
    ite.item_unit,
    inv.OFFICE_ID,
    od.OFFICE_NAME
sql report birt
1个回答
0
投票

AFAIK 构造

IN ?
通常不受 JDBC 支持。 或者更准确地说,它不会像人们想象的那样发挥作用。 绑定变量必须始终是标量值。

© www.soinside.com 2019 - 2024. All rights reserved.