第九章 BIRT嵌套报表以及参数的传递

BIRT报表目录 打算近期出版一本全面介绍BIRT使用的书籍,能够帮助大家全面了解BIRT的方方面面,用丰富的案例和源码,例子,诠释这个报表设计工具,展现工具,开源框架,扩展框架的种种优点特性。 初稿内容如下,书写正在进行中~ 欢迎大家光临我的主页:http://blog.youkuaiyun.com/birtbird~ BIRT的世界-BIRT技术漫谈 目录 第一章 BIRT简介 3 1.1 BIR 阅读详情

9.1 表内的嵌套

我们新建报表MasterDetailOneReport_A.rptdesign,空白模板,示例数据库,sql选择查询数据集。

新建数据集Orders:

select *

from orders

新建数据集SingleOrderDetail

select *

from orderdetails

where ordernumber = ?

数据集参数默认值为10101。

新建静态文本报表参数ordernumber,默认值:10101

在报表编辑器中插入2行5列的表,在第一行分别拖入Orders数据集中如下的数据列:

合并第二行的前四列,在第五列中插入一个1行5列的表,分别拖入SingleOrderDetail的数据集:


作适当的美化,布局,最终如下:


选中表,编辑数据集绑定:


绑定数据集SingleOrderDetail参数至row["ORDERNUMBER"]


这样就完成了一个内嵌的报表,预览如下:


9.2 表外的嵌套

同上例子,我们新建报表MasterDetailOneReport_B.rptdesign,空白模板,示例数据库,sql选择查询数据集。

新建数据集Orders:

select *

from orders

新建数据集SingleOrderDetail

select *

from orderdetails

where ordernumber = ?

数据集参数默认值为10101。

新建静态文本报表参数ordernumber,默认值:10101

我们插入两个2行1列的网格:

第一个网格,第一行插入文本:

这个案例用于描述怎么从一个数据项,外嵌产生另一个报表,传入一个参数,方法如下:

reportContext.setGlobalVariable("ordernum", dataSetRow["ORDERNUMBER"]); 

dataSetRow["ORDERNUMBER"]

第二行插入一个1行5列的表,分别拖入Orders数据集的数据列:


其中ordernumber数据项用的表达式生成器,输入

reportContext.setGlobalVariable("ordernum", dataSetRow["ORDERNUMBER"]); 

dataSetRow["ORDERNUMBER"]


第二个网格,第一行输入文本:

这个表格用于从环境标量中获取参数,用于表的数据集的参数,方法如下:

reportContext.getGlobalVariable("ordernum");

第二行插入1行5列的表,分别拖入SingleOrderDetail数据集的数据列:


编辑表的绑定:


输入表达式生成器文本:reportContext.getGlobalVariable("ordernum");


预览,效果如下:


9.3 参数的传递

一、第一种方法:

1、在jsp的URL里面添加所要传递的参数:

http://localhost:8080/birt-web/frameset?__report=test.rptdesign&sample=parameter

2、在报表当中添加同名报表参数sample,数据集带有占位符参数,然后可以添加data set参数关联到报表参数sample,这样data set参数就可以得到从jsp页面传递过来的参数从而作为查询条件。

二、第二种方法:

1、在jsp的URL里面添加所要传递的参数:

http://localhost:8080/birt-web/frameset?__report=test.rptdesign&id=3

2、在报表当中添加同名报表参数id 

3、点击 Date Sets,在点中间的"Script"标签,选择BeforeOpen,写上

var id = params["id"].value;

if(id!=null){

this.queryText=this.queryText+" where id='"+id+"'";

}

三、第三种方法:

BIRT VIEWER本身虽然支持在里面书写java code,但不宜用于request setParameter,getParameter,或者session的方法,但提供了一个接口在jsp或者servelet中通过AppContextKey和AppContextValue键值对来传递,BIRT viewer能自动识别出。

Map<String, String> map=new HashMap<String, String>();

String name=request.getParameter("name");

String stime =request.getParameter("stime ");

String age=request.getParameter("age");

String sex=request.getParameter("sex");

HashMap appContext = new HashMap( );

appContext.put("stime",stime);

appContext.put("name",name);

appContext.put("age",age);

appContext.put("sex",sex);

request.getSession().setAttribute( "AppContextKey","numberWhere");

request.getSession().setAttribute("AppContextValue", appContext);

request.getRequestDispatcher( "/frameset?__report=testreport.rptdesign").forward(request,response);

在report中用beforeOpen中取出即可:

var name=numberWhere.get("name");

var age=numberWhere.get("age");

var sex=numberWhere.get("sex");

说明:前两种,当传递中文参数的时候,可能会出现字符串长度超限,或者传递了encode之后的代码,这个时候需要进行如下的处理unescape(params["OrderNumber"].value):


如果参数中被添加了括号,则需要更复杂的处理,比如去掉前后方括号:

BirtStr.trim(unescape(params["trandate"].value).replace("[","").replace("]",""))

至于脚本的书写,后文再详细介绍。

第五章 BIRT文本类报表 5.1 基本的文本报表 我们构建一个报表ProductLinesAfter.rptdesign,使用示例数据库,空白模板,sql选择查询作为数据源,新建数据集Data Set: select * from CLASSICMODELS.PRODUCTLINES 查询数据源资源管理器,注意到表PRODUCTLINES中有一个字段HTMLDESCRIPTION是CLOB字段的: 存储内容为 阅读详情

相关推荐

精通BIRT:Eclipse商务智能报表工具开发实践指南

书籍正有清华大学出版社编辑出版发行中,敬请期待,目录如下:  第一章 BIRT简介 5 1.1 BIRT初识 5 1.2 BIRT安装 8 1.2.1 BIRT设计器的安装 8 1.2.2 BIRT运行时环境的安装 9 第二章 BIRT设计器概述及本地化支持 12 2.1 BIRT设计器概述 12 2.1.1 基本概念 12 2.1.2 基本视图 13 2.2 BIRT本地化之

BIRT的世界-BIRT技术漫谈 1万+

Birt API 实现动态参数列报表

效果简述:       根据你传入的参数,动态展现展示列。 例如传入参数:columnNames: "EMPLOYEENUMBER,FIRSTNAME,LASTNAME,EMAIL,OFFICECODE",则显示这五列。 见图 figure1     试验环境:        1:birt-report-designer-all-2_3_1 集成e

z1012890225的专栏 2207

birt 内嵌表格 循环外表和内表的数据

第 一步 准备数据 新建一个java 项目 通过自己写的java 文件传过来数据 整个项目结果如下 新建一张表 testloop2.rptdesign表 我的通过JavaScript 创建数据 源 数据集 点title 数据集 然后 右边的 然后在上面的选择open 然后 再选择fetch 上面就是 外表(title)的数据 然后准备内表的数据 uSet 同样点击uSet数据集 跟上面的一样的操作...

weixin_43153052的博客 947

Birt 报表参数的使用

序言 参数是 birt 提供的一种很重要的机制,在 birt 中,参数具有变量的作用,它为 birt 报表的生成提供了一种灵活强大的机制。本文基于 Birt 2.1.2 讲述 Birt 报表中一些重要的用法以及 birt 源码级的参数使用机理,为报表开发者以及报表应用程序开发者提供一个参考。 本文的示例是基于 Birt RCP designer 2.1.2 开发的,在阅读本文前,最好有 e

石羊博客专栏 9692

第十三章 BIRT报表引擎API及报表API

13.1报表引擎详解,API结构 BIRT包含几个引擎。一个引擎是一个提供一个特定领域的功能的一套Java API。例如,数据引擎包含管理数据的API,图表引擎包含生成一个图表的API。一般而言,BIRT包含四个引擎,报表设计引擎(design Engine),报表引擎(report engine),图表引擎(chat engine),数据引擎(data engine)。 a) 关于报表设

BIRT的世界-BIRT技术漫谈 1万+

当Kmer遇到多倍体:复杂基因组Survey分析中的避坑指南

本文针对小麦、棉花等多倍体及高杂合复杂基因组的Survey分析,深入解析了Kmer分布图解读中的常见陷阱。文章重点探讨了如何超越理想二倍体模型,利用Smudgeplot等工具准确判断基因组倍性,并提供了从参数优化、污染判断到结果验证的全流程实战指南,帮助研究者规避错误,获得更准确的基因组大小、杂合度等关键信息。

yhn45678901的博客 1008

第九章 BIRT嵌套报表以及参数的传递 .

9.1 表内的嵌套 我们新建报表MasterDetailOneReport_A.rptdesign,空白模板,示例数据库,sql选择查询数据集。 新建数据集Orders: select * from orders 新建数据集SingleOrderDetail select * from orderdetails where ordernumber = ? 数据集参数默认值为101

huazaichang的专栏 2146

【学习K230-例程46】GT6700-UVC摄像头

UVC模块提供了USB摄像头的检测、配置和图像采集功能,支持单摄像头操作。本实验通过开发板上的USB接口连接摄像头,将摄像头捕获到的画面显示在显示设备上。print(f"模式{i}: {mode.width}x{mode.height} {mode.format}@{mode.fps}fps")print(f"摄像头检测: {‘已连接’ if plugin else ‘未连接’}, 设备信息: {devinfo}")检测系统是否连接了USB摄像头(当前仅支持单个摄像头检测)。获取摄像头支持的所有视频模式。

GilgameshJSS的博客 807

精通BIRT:Eclipse商务智能报表工具开发实践指南 (1-16章的目录明细)

书籍正有清华大学出版社编辑出版发行中,敬请期待,目录如下:  第一章 BIRT简介 5 1.1 BIRT初识 5 1.2 BIRT安装 8 1.2.1 BIRT设计器的安装 8 1.2.2 BIRT运行时环境的安装 9 第二章 BIRT设计器概述及本地化支持 12 2.1 BIRT设计器概述 12 2.1.1 基本概念 12 2.1.2 基本视图 13 2.2 BIRT本地化之

The code world of freedom 1037

安全虚拟化SEV简单介绍

安全虚拟化SEV简单介绍什么是SEV什么是SVMSME介绍SEV介绍总结 什么是SEV SEV是由AMD提出的安全虚拟化Secure Encrypted Virtualization技术的英文首字母的缩写。简单来说就是主内存控制器具备了加密功能可以对虚拟机内存数据进行保护。在真正介绍SEV之前,我们首先要弄清楚两个关键的基本概念:SVM、SME。下面先简单了解一下SVM和SME。 什么是SVM S...

artine的专栏 6389

Sigrity Power Tree如何进行直流压降仿真分析操作指导

Sigrity Power Tree模式可以用于前仿真,在没有layout文件的情况下对电源进行直流压降仿真分析,用于评估原理图设计以及器件选型是否合理。Model:设置为Equal Current,设置为等电源模型,意思该负载每个电源pin都是等电流的。Current:设置每个负载的电流,U30为3A,U3-U6各为1A。Nominal Current:设置能够承载的最大电流,设置为10A。Upper/ Lower Tol:设置为压降范围为5%Output Current:设置输出电流为10A。

weixin_54787054的博客 732

BIRT-商业智能报表工具开发案例指南

打算近期出版一本全面介绍BIRT使用的书籍,能够帮助大家全面了解BIRT的方方面面,用丰富的案例和源码,例子,诠释这个报表设计工具,展现工具,开源框架,扩展框架的种种优点特性。 初稿内容如下,书写正在进行中~ 欢迎大家光临我的主页:http://blog.youkuaiyun.com/b...

chihengfu9559的博客 102

2026华为OD机试(JavaScript)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ

华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,JavaScript实现。

MISAYAONE的博客 8万+

Birt报表开发实践

  项目需要用报表,看了几个报表工具,似乎Myeclipse自带 Birt比较方便,自带导出分页,支持多种图形,简单报表基本只需要写sql,。。开始实践学习;    一、相关资料:  1、  MyEclipse8.6——BIRT报表开发学习,这篇文章看完了基本可以了解下Birt是个什么东西。  2、 http://blog.youkuaiyun.com/birtbird~(看了目录我继续写下去的欲...

brosnan2800 142

从 OPEN CURSOR 到 SELECT INTO TABLE:把 ABAP 数据读取的底层机制与性能差异讲透

ABAP数据库访问性能优化关键点 摘要:ABAP程序性能的核心在于数据读取方式的选择。本文分析了三种常见数据库访问方式的技术原理:显式游标(CURSOR)、SELECT-ENDSELECT循环和SELECT INTO TABLE。重点揭示了数据从数据库到应用服务器的传输机制,包括OPEN/REOPEN与FETCH操作、Array Fetch批量传输原理以及SAP游标缓存机制。通过VBAK表的性能测试数据对比,证明了不同场景下最优访问方式的选择依据:大数据量时显式游标性能优势明显,而SELECT INTO T

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 172

Altium Designer(AD)PCB拼版——两种方法教程

本文详细介绍了PCB拼版的设计要点与操作方法。主要内容包括:拼版目的(解决小尺寸夹持问题、提高利用率、降低成本)和三大连接方式(V-CUT、邮票孔、空心连接条)的特点与参数设置;工艺边设计规范(宽度、定位孔、Mark点等要求);拼版尺寸限制与常见错误检查;以及两种具体拼版操作方法(特殊粘贴和拼版阵列),并附有工艺边、定位孔、Mark点的绘制步骤示意图。同时提供了硬件工程师笔试面试相关资源链接。全文系统阐述了PCB拼版的核心技术和操作流程,为电子设计人员提供了实用指导。

XU157303764的博客 7601

BIRT-商务智能报表工具开发案例指南

BIRT 报表 脚本 开发 数据库 http://www.iteye.com/topic/1128694 打算近期出版一本全面介绍BIRT使用的书籍,能够帮助大家全面了解BIRT的方方面面,用丰富的案例和源码,例子,诠释这个报表设计工具,展现工具,开源框架,扩展框架的种种优点特性。 初稿内容如下,书写正在进行中~欢迎大家光临我的主页:http://blog.youkuaiyun.com/birt...

weixin_30795127的博客 139

高德地图API如何使用

通过以上步骤,您可以成功接入并使用高德地图API来为您的应用添加丰富的地图功能。

QQ_778132974的博客 4785

怎样在报表中添加文字水印

开源报表工具(比如 birt、ireport 等)基本上都得通过背景图变相实现水印,麻烦。 而商业报表工具大都提供便捷的配置方式,并且针对全局及单报表水印提供多方案,不过做法略有不同。 在报表模板内配置水印属性,各厂家大同小异。区别较大的是全局水印,有的要借助平台功能,也就是脱离它的平台就没法使用了。有的做法就比较灵活,提供水印设置的标签属性,可参考文章文字水印怎么做,只要发布报表采用一个通用页面就可以实现了。 另外,logo 图片也可以作为报表水印,可参考:Logo(图片)作为报表水印的解决方法 .

xiaohuihui_1992的博客 654

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

BIRT报表使用

BIRT是一个开源软件项目,它提供BIRT技术平台来创建数据可视化和报表,这些可视化和报表可以嵌入到丰富的客户端和Web应用程序中,尤其是那些基于Java和Java EE的应用程序。 内含下载地址

乱域葬魂 4167

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

第十二章 BIRT报表的部署与配置

12.1 报表的工作模式以及相应的部署和配置 虽然为了示例的需要,在前文的第二章讲过BIRT的配置,以及在文本类报表,网格报表,图表中用过birt jsp tag,也做过一些说明。但报表的工作模式,不仅仅包含这两种。实际上,BIRT有五种工作模式, 第一种是用jsp或者javascript访问url,这个url遵循特定的格式,例如url/frameset?__report=&__paranam

BIRT的世界-BIRT技术漫谈 1万+

第十三章 BIRT报表引擎API及报表API (续2)-利用BIRT设计引擎API生成报表

13.3 利用BIRT设计引擎API生成报表 前面我们在讲解BIRT报表工作模式的时候实现过一个简单的利用BIRT设计引擎API生成报表,在这一节我们详细讲解实现过程。 BIRT报表的设计引擎API是BIRT报表的核心,不论是任何形式的BIRT设计器(eclipse插件,osgi独立,standalone)还是任何形式的BIRT展示器(web viewer,用户自定义servlet viewe

huazaichang的专栏 1780
上一篇: 第八章 BIRT交叉报表
下一篇: 第十章 BIRT图表
freedom1993
博客等级 码龄12年 25粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值