ireport中当使用connection方式获得数据源时如何构造sql语句的where条件。

本文探讨了在多级报表开发中如何实现父报表向子报表传递数据进行模糊查询的方法。介绍了两种方式:一是通过Java方法设置表达式,二是直接传递特定格式的数据。这两种方法都实现了子报表根据父报表提供的数据构建SQL查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在实际的多级报表项目开发中遇到了这样的问题。

  子报表要根据父报表传递过来的值构建sql语句的where条件,再次往数据库中查找数据。

 eg:

 父报表sql:

        SELECT 'XX类' species_name, 'A' species_id
        FROM dual
      UNION
      SELECT 'ZZ类' species_name, 'B' species_id FROM dual
      UNION
      SELECT 'YY类' species_name, 'C' species_id FROM dual

 一级子报表sql:

        select
      ts.species_id,
    from tb_supply_species ts,t_suppliers t
    where ts.supply_id=t.id and t.status=1
      and  ts.species_id like $P{speciesId}  GROUP BY  ts.species_id

父报表如何传递值给子报表见图:

 

  这里父报表变量$V{speciesIdVar}的

在ireport报表中expression是通过java方法得到一个表达式的。

如此便完成了模糊查询。

方法二:

 SELECT 'XX类' species_name, '%A%' species_id
        FROM dual
      UNION
      SELECT 'ZZ类' species_name, '%B%' species_id FROM dual
      UNION
      SELECT 'YY类' species_name, '%C%' species_id FROM dual

 

 直接传$F{species_id}给子报表即可。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值