程序网络报表中获取request中的值

编辑
  • 文档创建者:印然
  • 浏览次数:5286次
  • 编辑次数:17次
  • 最近更新:Kevin-s 于 2019-06-23
  • 1. 描述

    我们定义的程序网络报表也可以包含参数,Web 浏览器访问网络报表时,如何给它传递参数值呢?

    一般处理是访问网络报表的路径后跟上参数值,当报表参数有几十个甚至更多时,就会以列表、数组等方式传递给程序,如http://localhost:8075/webroot/decision/view/report?viewlet=com.fr.demo.URLParameterDemo&地区=华北

    然后在程序中获得该请求中的参数$地区的值,赋值给报表参数$地区,展示对应的报表。

    我们以读取 Parameter.cpt 模板,转为带参程序网络报表,然后访问时传递参数为例。


    2. 实现原理

    2.1 创建程序网络报表

    新建类 URLParameterDemo,继承 com.fr.web.Reportlet 抽象类,读取 Parameter.cpt 模板保存为 WorkBook 对象,最终返回该 WorkBook。

    提取 Request 中保存的参数并传值


    2.2 提取 Request 中的参数

    1)获取外部传来的参数

    String countryValue = reportletRequest.getParameter("地区").toString();

    2)提取报表参数组,由于原模板只有一个参数地区,因此直接取 index 为 0 的参数,并将外部传入的值赋给该参数

    Parameter[] ps = wbTpl.getParameters();    
    ps[0].setValue(countryValue);


    3. 实现步骤

    3.1 完整代码如下:

    https://git.fanruan.com/demo/example/src/release/10.0/src/main/java/com/fr/demo/URLParameterDemo.java


    3.2 编译生成类文件

    在 JAVA 开发平台中会自动编译,在此不再详述。

    将生成的 URLParameterDemo.class 类放至应用%FR_HOME%\webroot\WEB-INF\classes\com\fr\demo下。


    3.3 发布并预览

    启动报表服务器,在浏览器中访问该网络报表,并传递参数值,路径如下所示:http://localhost:8075/webroot/decision/view/report?viewlet=com.fr.demo.URLParameterDemo&地区=华北

    便可以看到结果,如下图所示:



    附件列表


    主题: 二次开发
    标签: 暂无标签 编辑/添加标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]