在皕杰查询表单中我选中一个值,怎么可以在点击查询的时候,对这个值进行处理返回另外一个参数的值。
解决方案:
1.用皕杰报表设计器设计一张报表。参数:货主地区 area 字符串类型;货主城市 city 字符串组类型。
数据集:
ds1:select * from 订单 where 货主城市 in (?)
参数选择为city
ds2:select distinct 货主地区 from 订单 where 货主地区 is not null
2.设计皕杰报表查询表单
参数只设置货主地区,参数控件类型为下拉框,数据来源为数据集ds2。
3.皕杰报表提供了查询Listener事件的接口:bios.report.api.events.QueryEventListener
参考文档-皕杰报表帮助文档-开发指南-javadoc-bios.report.api.events-QueryEventListener
4.根据文档编写查询表单Listener实现类,实例代码如下:
package bios.report.dev.examples.event;
import bios.report.api.events.QueryEventListener;
/**
*表单查询事件Listener示例
*获取这个查询表单中某个参数的赋值
*然后计算出另一个参数的值并赋值
*/
public class MyParamQueryListener extends QueryEventListener {
@Override
public void onQuery() {
String area = getParamValue("area");//获取参数area的参数值
String city=getCity(area);
setParam("city", city);//参数 city赋值
}
//根据地区查询城市,并返回货主城市
private static String getCity(String area){
String city="";
if(area.equalsIgnoreCase("华北")) {
city="北京,天津";
}
return city;
}
}
5.设置这个实例报表的查询表单Listener。在查询表单设计界面
点击上图中的红框内的按钮,弹出查询Listener事件设置,设置查询表单Listener实现类的路径
6.将这个报表集成到你的web应用中,并访问这个报表
7. 如上图所示:货主地区选择华北,点击查询按钮,返回货主城市为北京和天津的数据。表明查询表单Listener实现类的功能已实现。
网友评论