广告
返回顶部
首页 > 资讯 > 后端开发 > Python >iReport使用教程(示例教程)
  • 887
分享到

iReport使用教程(示例教程)

2024-04-02 19:04:59 887人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

在使用ireport的过程中,因为各种功能都要百度,但是大家使用的例子又千差万别让人很苦恼,所以用一个简单例子贯穿的展示一下ireport的常见功能。 iReport简介 说到iRe

在使用ireport的过程中,因为各种功能都要百度,但是大家使用的例子又千差万别让人很苦恼,所以用一个简单例子贯穿的展示一下ireport的常见功能。

iReport简介

说到iReport不得不先介绍Jasperreport,Jasperreport是一个报表制作程序,用户需要按照它制定的规则编写 一个XML文件,然后得到用户需要输出的格式文件。它支持输出的文件格式包括pdf,html,XML,XLS,CVS等等。而iReport就是一个制 作Jasperreport的XML文件的可视化开发工具。只是一个UI。

我使用的是iReport 3.5.1,使用的示例数据表如图:

sales表:(人名、大致结构来自帆软电子文档,如有雷同,无意冒犯)


sellers表:


下面开始介绍:

报表结构

左边是view区,联系着主设计区中的各个band区域的数据,以及参数、变量等。中间是主设计区,通过拖拽控件面板可以在此区域进行设计,有三种模式:设计(Designer)、源码(Xml)、预览(Preview),设计模式是可视的,源码方式可以直接在上修改,预览是对设计好的报表样式进行预览,也是一个编译的过程;右边是控件面板和属性面板,可以在此使用控件和设置属性。
JasperReport有三个方式来保持数据:Field、Paramrter、Variables。
一般情况下,Field是用作保存从数据源取出来的数据,用法是
Parameter是用来占位—我们在设计时往往不知道具体的值,那么用一个参数来占住它们的位置,在执行时,从程序或者数据库中传递对应的参数过来,从而实现一个动态的过程,用法是
Variables是变量,可以将变量用于TextFild表达式中,也可以设置它的属性,使它具有一些功能,如求和,求平均数等,用法是

数据源
ireport提供很多种数据源的连接方式,
点上方的数据库标识就可以设置数据库,下方的数据标识用来写sql语句获取数据。

我们这里选择jdbc数据连接,Mysql连接语句,数据库名称是test

test一下是否连通,输入数据库密码以后,如果成功会出现提示:

示例
3.1 简单示例
首先连接数据库表sales:

点击ok,这时左侧view窗口的field区域就得到了取到的数据:

这时,在主设计区域拖拽静态文本控件:在column header区域添加列名,然后拖动左侧的field字段到detail域相应的列名下:

3.2 分组示例
有时候我们需要分组来观察数据,这时就需要group,我们以区域id来分组,需要注意的是,如果使用group分组,需要在一开始的sql语句中加上order by语句,否则ireport是不会自动分组的。

右键添加一个分组:

接下来会有一个向导,我们根据向导一步步操作:

然后下一步,完成。

3.3 子表方式分组查看
如果不想在sql语句中增加order by语句,那么可以使用子表的方式进行分组查看,例如我想在父报表master.jasper中查看子报表sub_report.jasper的信息,需要用到销售情况表sales和员工情况表sellers以及子报表控件和一个参数 area_id。
首先建立子表员工信息表sub_report.jasper,新建一个参数,作为连接两个表的桥梁:area_id,参数的属性设置如图

主要是要把parameter class设置成与数据库表中同样的类型以防出错。

然后为sub_report绑定数据库表,此时需要注意SQL语句中需要包含我们设定的参数 $P{area_id}

接下来,我们preview一下,这时需要给一个参数测试,假使我们给定1,结果如图:

这说明分组已经成功,我们下一步需要把子表与父表连接起来。
同样需要新建一个报表文件master.jasper,为方便查看,将区域名称拖入detail区域备用。

拖拽子表控件,根据向导完成子表属性设置
(1)选择已有子表,注意是选择编译后的文件,sub_report.jasper,而非sub_report.jrxml。如果先建父表,在这里选择创建子表,按照向导创建子表,流程如上。

(2)使用内建连接参数表达式

(3)设定参数值为本报表中已存在的field域中的$F{area_id}

(4)存储子表表达式,事实上,我将子表和父表已经放在同一个文件夹中所以不必使用绝对路径法,只需存储一个路径名称即可

完成,运行一下:

3.4 图表示例
3.4.1 饼图
针对 Pie图表类型,有三个表达式需要我们输入:Key,Value 和 Label。表达式 Key 允许你标识 Pie 图里的一块。如果 Key 的值出现重复, 那么 Label 和 Value的值会关联起来用来覆盖 Key 的值。一个 Key 值不能为 null。Value 的表达式值指定这个Key 的数字值。Label 表达式的值允许你为并图中每一块指定一个标签。这个表达式的值是可选的,同时默认值为 key=value
首先拖动图表控件,ireport支持多种图表,因为示例的数据比较简单,我们就只说饼图和柱状图。

放好饼图以后,右键chart data,设置图表属性

这里需要注意的是,value是用来表述你划分饼图关键词的值,本例中,我们根据售货员来销售的苹果汁来划分饼图,那么key就是售货员,他的“值”,也就是苹果销售量就是value,value一般要求是数字类型。


如果我们将label表达式换成$F{apple},就会是如下效果:

个人认为还是后者比较直观。

3.4.2 柱状图
过程和饼状图一样,效果如下:

显然更复杂的数据比较能体现到他的用处。

3.5交叉报表
有时候我们不仅需要纵向比较数据,也需要同时横向进行比较,这就用到了交叉报表。
交叉报表需要用到空间crosstab
我们新建一个报表文件CrosstabTest,统计一下不同区域苹果汁的销售情况,绑好数据表后,拖拽交叉报表控件,根据向导设置:
首先选择主报表数据集:

然后,设定行参数,我们选择区域id作为分组依据,group2暂时不用。

接下来是列参数,选择销售人员作为分组依据。

然后是主区数据,我们主要是看不同区域不同销售人员苹果汁的销售情况所以选择apple,由于是计数,fuction选择count即可。

 

最后是布局,crosstab控件会自动带行总数列总数,可自选。

完成:

不在该销售区域的会被标记为0.

此外,iReport还有获取当前时间,获取页数等小工具可供使用,这些工具都是基于TextField可以更改表达式进行定义。当模板文件编译后,可放至程序中使用,并进行参数传递。

这是我这一段对ireport的摸索,因为数据简单,很多问题还没有发掘出来,有错误和不足的地方欢迎一起讨论改正。

--结束END--

本文标题: iReport使用教程(示例教程)

本文链接: https://www.lsjlt.com/news/155343.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • iReport使用教程(示例教程)
    在使用ireport的过程中,因为各种功能都要百度,但是大家使用的例子又千差万别让人很苦恼,所以用一个简单例子贯穿的展示一下ireport的常见功能。 iReport简介 说到iRe...
    99+
    2022-11-12
  • Ireport的安装与使用教程
    Ireport的安装及使用 一、 安装ireport 1.点击安装包,可以一直点击下一步,安装完成。 2.安装完成后,要在如下安装目录下添加ojdbc14.jar。 3.数据源的...
    99+
    2022-11-12
  • iReport简单使用方法图文教程
    iReport是一个能够创建复杂报表的开源项目,它100%使用Java语言编写,是目前全球最为流行的开源报表设计器,由于它丰富的图形界面,你能够很快的创建出任何一种你想要的报表。 i...
    99+
    2022-11-12
  • 非常全面的IReport的使用教程
    目录简介安装环境版本注意事项百度云下载地址基本操作 新建页面布局style样式中文支持必备比较常用的属性基础控件Break:分页符Ellipse、Round Rectang...
    99+
    2022-11-12
  • vue3CompositionAPI使用示例教程
    Vue3新增了Composition API。我们只需将实现某一功能的相关代码全部放进一个函数中,然后return需要对外暴露的对象。不同功能的代码都是一个个函数,最终在setup(...
    99+
    2022-12-21
    vue3 Composition API使用 vue3 Composition API
  • Kotlin函数使用示例教程
    目录我们先看看简单的函数我们写一个求和函数函数头函数体调用函数非常简单反编译Java源代码步骤接下来我们来看看匿名函数这是接口的声明我们先看看简单的函数 // 前面的文章我们了解到它...
    99+
    2022-11-13
  • tcpdump示例和教程
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、如何安装“tcpdump”二、如何使用 tcpdump 捕获数据包:过滤数据包以修复网络问题:如何使用...
    99+
    2023-09-15
    tcpdump 服务器 网络
  • Page Visibility API 教程示例
    目录一、简介二、document.visibilityState三、document.hidden四、visibilitychange 事件五、页面卸载一、简介 有时候,开发者需要知...
    99+
    2022-11-13
  • 使用Nest.js实现接口教程示例
    目录一.项目初始化二.核心文件介绍三.创建一个接口模块,处理请求四.看看cats模块有啥吧1.先看controller吧,请求方法都在这了2.你这地址有点单调啊,能不能接收query...
    99+
    2022-11-13
  • React Hooks使用startTransition与useTransition教程示例
    目录引言需求分析startTransition使用useTransition总结引言 今天带来的是react18版本推出的全新hooks:useTransition,它的使用范围主要...
    99+
    2023-01-10
    React Hooks startTransition useTransition React Hooks
  • python-docx的简单使用示例教程
    python-docx的简单使用 ''' 设置表格所有单元格的四个边为0.5磅,黑色,实线 可以使用返回值,也可以不使用 ''' def 设置表格网格线为黑色实线(table_obj...
    99+
    2023-05-18
    python-docx使用 python-docx
  • python高阶函数使用教程示例
    目录一、高阶函数函数定义函数名可作为返回值、也可作为参数(1)函数名作为参数(2)函数名作为返回值二、常用的高阶函数(1)map(function,iterable)(2)filte...
    99+
    2022-11-13
  • 路由vue-route的使用示例教程
    目录一、项目初始化二、路由配置规则三、声明式导航和编程式导航四、路由重定向五、嵌套路由总结六、路由参数动态匹配七、导航跳转时传递路由参数八、路由导航守卫一、项目初始化 二、路由配置...
    99+
    2022-12-22
    路由vue-route使用 vue-route路由使用 路由vue-route
  • Vue webpack的基本使用示例教程
    目录前端工程化 小白眼中的前端开发 vs 实际的前端开发 什么是前端工程化 前端工程化的解决方案webpack的基本使用  什么是webpac...
    99+
    2022-12-22
    Vue webpack的基本使用 Vue webpack使用
  • Shell教程的示例分析
    这篇文章主要为大家展示了“Shell教程的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Shell教程的示例分析”这篇文章吧。Shell 是一个用 C 语言编写的程序,它是用户...
    99+
    2023-06-05
  • iOS xcconfig编写示例教程
    目录引言注释include导入其他设置变量优先级(由高到低)引言 xcconfig文件的语法比较简单,每个配置文件都由一系列键值分配组成,这些键值分配具有以下语法: BUILD_SE...
    99+
    2022-11-13
  • Centos 安装 mysql5.7 示例教程
    创建mysql 用户组和用户 groupadd mysqluseradd -r -g mysql mysql 从官网下载 MySQL wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5...
    99+
    2023-08-19
    mysql 数据库 database
  • Ajax教程的示例分析
    今天就跟大家聊聊有关Ajax教程的示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 由于它的灵活性、优美以及快速...
    99+
    2022-10-19
  • react Scheduler 实现示例教程
    目录正文简单的css动画etTimeout来实现循环处理具体思路正文 最近在看react源码,react构建fiber树这一块逻辑还比较好理解,但是一旦涉及到任务调度相关的逻辑,看起...
    99+
    2022-11-13
  • Python defaultdict教程示例详解
    1. 概述 在我们使用Python中的dict时,常常需要判断某个关键字是否已经在dict中,如果不存在则初始化,存在则进行另外的操作。例如统计一篇文章中所有单词出现次数的代码,大...
    99+
    2023-01-11
    Python defaultdict教程 Python defaultdict
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作