皕杰技术社区

 找回密码
 立即加入

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 923|回复: 2

皕杰查询表单参数二次处理

[复制链接]
回帖奖励 10 金钱 回复本帖可获得 2 金钱奖励! 每人限 1 次
发表于 2019-5-13 17:59:36 | 显示全部楼层 |阅读模式
本帖最后由 bijetsupport02 于 2019-5-13 18:03 编辑

需求:
在皕杰查询表单中我选中一个值,怎么可以在点击查询的时候,对这个值进行处理返回另外一个参数的值。
解决方案:
1.用皕杰报表设计器设计一张报表。参数:货主地区 area 字符串类型;货主城市 city 字符串组类型。
数据集:
  1. ds1:select * from 订单 where  货主城市 in (?)
复制代码

  1. ds2:select distinct 货主地区 from 订单  where 货主地区  is not null
复制代码


2.设计皕杰报表查询表单

参数只设置货主地区,参数控件类型为下拉框,数据来源为数据集ds2。

3.皕杰报表提供了查询表单监听事件的接口:bios.report.api.events.QueryEventListener
参考文档-皕杰报表帮助文档-开发指南-javadoc-bios.report.api.events-QueryEventListener

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即加入

x
 楼主| 发表于 2019-5-13 18:00:27 | 显示全部楼层
4.根据文档编写查询表单监听实现类,实例代码如下:
  1. package bios.report.dev.examples.event;
  2. import bios.report.api.events.QueryEventListener;
  3. /**
  4. * 表单查询事件监听示例
  5. * 获取这个查询表单中某个参数的赋值
  6. * 然后计算出另一个参数的值并赋值
  7. */
  8. public class MyParamQueryListener extends QueryEventListener {
  9.         @Override
  10.         public void onQuery() {
  11.                 String area = getParamValue("area");//获取参数area的参数值
  12.                 String city=getCity(area);
  13.                 setParam("city", city);//参数 city赋值
  14.         }
  15.         //根据地区查询城市,并返回货主城市
  16.         private static String getCity(String area){
  17.                 String city="";
  18.                 if(area.equalsIgnoreCase("华北")) {
  19.                         city="北京,天津";
  20.                 }
  21.                 return city;
  22.         }
  23. }
复制代码

回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-13 18:02:47 | 显示全部楼层
5.设置这个实例报表的查询表单监听。在查询表单设计界面

点击上图中的红框内的按钮,弹出查询监听事件设置,设置查询表单监听实现类的路径

6.将这个报表集成到你的web应用中,并访问这个报表

7.如上图所示:货主地区选择华北,点击查询按钮,返回货主城市为北京和天津的数据。表明查询表单监听实现类的功能已实现。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即加入

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

QQ|小黑屋|手机版|皕杰软件 ( 京ICP备14050931号 )

GMT+8, 2024-4-19 18:35 , Processed in 1.153262 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表