当前位置: 首页 > news >正文

iReport+jasperreport创建子表的几种方式(1)

在制作报表的过程中,子表是必不可少的,今天就研究了一下制作子表的几种方式

一、连接数据库创建子表

以MySQL为例

我的数据源数据库中的表


1)iReport 创建父表

这个就是创建一个新的表格,不过记得数据源要选择mySQL ,其他的数据库数据源也一样的。

2)创建好之后,我们来创建子表,在组件面板找到拖动到父表当中的任意一个地方,我是放到detail里面的

它会产生一个向导

一路next下去,只是在最后一项选择use empty datasource,不过选其他的也行,待会我们还要修改

3)说一下原理:这种方式就是利用每张报表都有的Parameters属性,在iReport4.6中,点击子报表在右侧属性栏的最下面有两个属性


一个是Parameters属性,他可以用来向子表传递数据接下来我会说到,第二个是Return Values很明显这个可以用来将子表的数据返回,这个有时间再说。

下面子表属性进行设置:

有两个属性需要注意,一个是Subreport Expression用来指出子表的路径,这个新建之后一边不需要修改


另外一个是connect type,这个要选择Use a connectionexpress 创建子表时候选择默认值,就是父连接,这个现在不是重点,不过在之后的方式中,这个是很有用的

下面是重点

设置点击Parameters打开这样一个窗口,点击add之后

这就是你自定义Parameters的地方,名字可以随便取,我的是如下设置:名字是id我要传递给子表的是数据库的ID字段,到此,我们对于主表这边的设置结束

4)下面设置子表这里有一个关键点,就是在子表左边栏Parameters属性这边要新建一个Parameters,右键-》新建名字要和上面我们创建的一样而字段的类型要和从主表传递过来的字段一样:我定义的是id同时在我的数据库中定义的ID字段是String类型的,所以是以下设置注意,Default Value Expection一定要设置为“”字符,不然会报错,折腾了我好几个小时


这个设置好之后打开数据连接窗口最左边的小按钮,打开后使用select语句不过要使用我们自定义的字段,如下图,

你会发现出现了一些属性字段选择添加,就OK啦


我的字段和子表设置


下面是预览结果


OK,创建子表的第一种方式就是这样,如果有需要留邮箱,我把源码发过去,希望能共同学习

回家了,明天继续写


相关文章:

  • iReport连接Mysql创建图表报表
  • iReport+jasperreport创建子表的几种方式(2)
  • Jasperreports导出PDF、web上html的几个实用连接
  • 关于Unity3D中的UnitySendMessage方法的使用!!!
  • Unity3D如何读取保存XML,以及用U3D内置方式保存文件
  • unity3D调用外接摄像头,保存图片、不使用截屏方式
  • Unity3D中Find的用法
  • Unity3D中世界坐标转换到NGUI坐标
  • Window8.1+VS2013+Python+cocos2d-x-3.2
  • Java环境配置好之后,cnd窗口Java可以执行,但是Javac不能执行
  • cocos2d-x import org.cocos2dx.lib cannot be resolved
  • C#字符串处理:裁剪,替换,移除
  • NGUI 创建自定义按钮并添加按钮响应
  • Metaio中关于镜像问题
  • Unity3D+Arduino控制LED灯泡
  • php的引用
  • [ JavaScript ] 数据结构与算法 —— 链表
  • Android交互
  • Facebook AccountKit 接入的坑点
  • Invalidate和postInvalidate的区别
  • Java超时控制的实现
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • Material Design
  • MQ框架的比较
  • node.js
  • php ci框架整合银盛支付
  • 从重复到重用
  • 对象管理器(defineProperty)学习笔记
  • 基于HAProxy的高性能缓存服务器nuster
  • 王永庆:技术创新改变教育未来
  • 我是如何设计 Upload 上传组件的
  • linux 淘宝开源监控工具tsar
  • 数据库巡检项
  • #define用法
  • (02)vite环境变量配置
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (转)C#调用WebService 基础
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .md即markdown文件的基本常用编写语法
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .Net Core与存储过程(一)
  • .NET命令行(CLI)常用命令
  • .Net小白的大学四年,内含面经
  • /etc/shadow字段详解
  • ;号自动换行
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思
  • @Transaction注解失效的几种场景(附有示例代码)
  • [ vulhub漏洞复现篇 ] JBOSS AS 4.x以下反序列化远程代码执行漏洞CVE-2017-7504
  • [2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序
  • [BZOJ] 3262: 陌上花开
  • [C/C++]数据结构 循环队列
  • [CISCN 2019华东南]Web11