Java制作报表系统流程_finereport报表制作详细过程

2023-10-27

一般来说,一个完整的报表设计流程,大体分为如下几个步骤:

1:打开设计器

2:配置数据源

3:新建报表

4:配置私有数据源

5:报表设计

6:预览报表

7:发布报表

第一部分:配置数据源

打开报表设计器,在设计器最上方的菜单栏当中,选择服务器,在该下拉菜单当中选择公有的数据源管理器,弹出一个数据源管理器对话框。

点击该对话框左上角的增加数据源按钮来添加新的数据源。在这里我们为数据源命名为FRDemo。

用鼠标选中刚刚命名的数据源,右边显示对应的数据源属性编辑面板,共有五项属性:驱动,URL,用户名和密码,以及一个测试数据库连接按钮。

首先设置驱动器,在驱动项中选择 sun.jdbc.odbc.JdbcOdbcDriver,然后点击URL文本框旁边的…按钮,系统会根据选择的驱动自动显示对应的URL格式。

将jdbc:odbc:DatabaseName中的DatabaseName换成正在使用的数据库的名字:FRDemo,即jdbc:odbc:FRDemo。由于FRDemo并未设置用户名和密码,因此这两项属性留空。

点击测试连接按钮,系统弹出连接成功的消息框表明数据库连接成功。

如果您的数据库并非Microsoft Access数据库,请根据您原有数据源选择其数据源驱动器。因为URL是根据您的数据源类型来设定的,单击后面的按钮则生成URL的对应模本,如您的数据库是Mysql,那么在驱动程序框中选择“org.gjt.mm.mysql.Driver”,对应可以生成URL为 “jdbc:mysql://localhost/DatabaseName”, 将DataBaseName更换成您的数据库名字。下面依次填写您数据库的用户名和密码,如没有则留空。配置完成后选择下面的“测试链接”,如链接成功则可以进入下一个步骤。

如非本地数据源请将其中的 localhost换成数据库的IP;如在local后有“:”则将“:”后的数字改为对应的网络服务器端口即可。

第二部分:报表设计

报表设计的过程,可以分为如下几个步骤:

步骤一:新建报表

这一步,就是要选择新建报表的类型,该类型选择共分为三种,分组报表,自由报表。我们的报表设计主要是自由报表类型。因此在下面的报表设计器当中,我们无论选择哪种新建方式,选择的报表类型都可以是自由报表。

新建报表的第一种选择,是点击文件|新建报表,通过二级菜单来选择要新建的报表类型。

第二种途径是在工具栏当中,点击新建报表按钮右侧的下拉箭头,出现报表类型选择的列表。另外,还可以直接点击工具栏当中的新建按钮。

我们设计的主要报表类型是自由报表,因此,选择自由报表类型。打开报表设计界面。

步骤二:定义数据源

在选定了报表类型之后,我们需要将报表当中用到的数据进行定义,也就是从数据库当中找到我们在该张报表当中需要用到的数据表。关于公有数据源和私有数据源的详细区别,请参见配置数据源章节。

在上一个步骤当中,点击确定选定报表类型,系统会自动弹出一个私有数据源对话框。

点击左上角的添加按钮,新增一个数据源,会弹出一个定义名字的对话框,我们命名为ds1(这里ds是datasource的缩写),点击确定打开私有数据源的编辑页面。

在SQL文本框中,写入SQL语句“select * from sale”。点击文本框右侧的预览按钮,即可以看到数据库数据的预览。点击确定打开报表设计界面。

报表设计界面里面,在左侧的数据面板,私有数据源处,可以看到我们刚刚定义的私有数据源ds1。

步骤三:绑定数据列

首先,我们先来设置左侧的分组。将ds1中的字段Region字段拖拽到A3单元格中,保留其默认的设置,即数据纵向扩展,并且进行分组,合并相同内容的值。

将Manager字段拖拽到B3单元格中,同样保留其默认的设置,即数据纵向扩展,并且数据分组,即合并相同内容的值。

然后,我们来设置上方的分组。首先在数据源面板的最下方扩展方向中默认的设置从上到下更改为从左到右。

将ProType拖拽到C1单元格中,其设置为扩展方向是横向的,从左到右,数据是分组,即合并内容相同的值。

将Product字段拖拽到C2单元格中,由于我们在上一步操作已经设置了扩展方向为横向,所以B2单元格我们也保留默认的设置:横向扩展,数据合并内容相同的值。

最后,来添加交叉区域当中的汇总字段。首先在数据源面板当中,将扩展方向由从左到右更改为不扩展。然后下方的汇总当中,选择求和。

将Amount字段拖拽到C3单元格中,也就是对所有的销售量记录进行求和。

步骤四:汇总

完成了数据列绑定,我们来给报表添加汇总数据。

将A3和A4单元格进行合并,合并后的单元格根据FineReport的单元格命名规则,为A3。

在B4当中,写入文字“小计:”。

在C4当中,写入公式“=sum(C3)。由于我们已经合并了A3和A4单元格,所以这里C4就会跟随A4的分组进行合计。

注:这里合并单元格的作用,是使得C4当中的汇总单元格跟随A4的分组进行组内汇总。如果我们不合并单元格,则C4当中的汇总,就会显示在报表所有数据的下面,成为对所有数据的汇总。

步骤五:格式化报表

上一步当中,我们已经完成了报表主体的数据的设置。现在我们要给单元格添加边框,表头的斜线,以及文字居中等简单的格式化操作。

边框:首先我们先来选中从A1至C3这一片区域,点击工具栏中的按钮,在系统弹出的边框对话框中,添加内部和外部边框。

斜线:选中A1至B2共四个空白的单元格,点击工具栏中的按钮,合并单元格。右击该单元格,选择单元格元素,在二级菜单中,选择斜线。系统会弹出一个斜线编辑的对话框,在文本编辑框中写入我们在斜线当中要加入的内容:Products|Names,可以通过添加空格来调整文字的位置。

文字居中:用鼠标选中A1至B3整个报表所在的区域,在工具栏当中,点击,也就是文字居中按钮,将报表当中的数据全部居中显示。

最后,预览,即可以得到我们在开始展示的报表效果。该报表在示例当中存储的路径为“../WebReport/WEB-INF/reportlets/com/doc/cross.cpt。

第三部分:发布和浏览报表

在报表设计完成之后,我们将其保存在安装目录下的“../WebReport/WEB-INF/reportlets/com/..”目录下,例如我们刚刚设计的报表,其保存的路径和名称为“../WebReport/WEB-INF/reportlets/com/doc/cross.cpt”。这样就完成了报表在服务器上的部署。

从操作系统的“开始菜单”找到FineReport的快速启动程序,启动“报表Web演示”。系统会启动自带的应用服务器,并且在IE浏览器中打开自带的报表演示页面。您可以在浏览中输入如下地址:http://localhost:8079/WebReport/ReportServer?reportlet=/com/doc/cross.cpt,即可以在浏览器中打开报表。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java制作报表系统流程_finereport报表制作详细过程 的相关文章

  • [SCOI2005]骑士精神【迭代加深+IDA*】

    题目链接 P2324 SCOI2005 骑士精神 首先 我们先讲讲几个基础知识 迭代加深 我们假设深度优先搜索 DFS 的最深搜索到Max depth 那么也就是说深度到达Max depth的时候不管满不满足答案都要返回了true or f
  • 【id:120】【25分】B. 虚拟电话(构造与析构)

    时间限制 1s 内存限制 128MB 题目描述 虚拟电话包含属性 电话号 状态 机主姓名 1 电话号是一个类 它包含号码和类型 其中号码是整数类型 类型用单个字母表示用户类别 A表示政府 B表示企业 C表示个人 类操作包括构造 属性的获取和
  • 【WiFi】WIFI芯片的研发

    目录 1 硬件设计 2 软件开发 3 集成和测试 4 认证和合规性 5 量产和供应链管理 6 总结说明 1 硬件设计 首先 您需要进行WiFi芯片的硬件设计 这包括选择适当的射频 RF 芯片 基带处理器 调制解调器等组件 并进行电路设计和布
  • Unity C# The type or namespace name could not be found 解决办法

    在使用Unity写脚本的时候有可能需要用到外部的库 这个时候如果直接用VS里的NuGet安装包 安装完之后可以运行 但是重启Unity之后就会出现 CS0246 C The type or namespace name could not
  • Numpy-基础数据结构

    Numpy是python中一个运行速度非常快的的数学库 主要用于数组计算 包含 一个强大的N维数组对象 ndarray 广播功能函数 线性代数 傅里叶变换 随机数生成等功能 接下来 我会系列介绍Numpy的知识点 包含其基础数据结构 通用函
  • 【OpenGL学习】光源

    光源 本节中 LearnOpenGL 教程中的标题为投光物 表示将光线投射到物体的光源 事实上这些投光物都可以称之为光源 包括平行光 点光源 聚光灯等 不同类型的光源可以给场景带来不同的光照效果 本节主要学习定向光 Directional
  • Tinymce富文本编辑器在vue项目中的使用;引入第三方插件和上传视频、图片等

    先放张效果图 第一步 安装依赖 npm install tinymce 5 0 12 第二步 在项目中的public文件夹中新建tinymce文件夹 因为我的项目是脚手架创建的 所以公共文件夹是public 在node modules中找到
  • chrome 安装axure 插件

    一般使用chrome查看axure原型文件时 会提示安装插件 但是又连不上google扩展安装 这里提供一个简便的方式安装 1 静态原型页面路径resources chrome axure chrome extension crx 找到文件
  • RTThread中HardFault_Handler分析

    以Cortex M3为例 RTThread在运行过程如果产生fault 会进人HardFault Handler中断 RTThread对HardFault Handler进行了重定义 HardFault Handler函数在context
  • vue2+three.js实现宇宙(进阶版)

    2023 9 12今天我学习了vue2 three js实现一个好看的动态效果 首先是安装 npm install three 相关代码如下
  • SSL是什么?SSL怎么用?

    SSL是什么 SSL Secure Sockets Layer 安全套接层 及其继任者传输层安全 Transport Layer Security TLS 是为网络通信提供安全及数据完整性的一种安全协议 如今被广泛使用 如网页 电子邮件 互
  • STM32F103基于HAL工程TIM4多通道PWM固定占空比输出

    STM32F103基于HAL工程TIM4多通道PWM固定占空比输出 在测试过程中发现配置的2路PWM总是只有一个固定的通道有输出 于是复用到其他引脚 输出波形有 确定是芯片引脚的问题 后面换了一块板测试 确定是芯片引脚确实有问题 刚开始一直
  • 史上最全Elasticsearch学习

    文章目录 Elasticsearch 一 Elasticsearch简介 安装 1 1 Elasticsearch是什么 1 2 全文搜索引擎 1 3 Elasticsearch的应用案例 1 4 Elasticsearch的下载 安装 运
  • python异常处理

    Python3 错误和异常 作为 Python 初学者 在刚学习 Python 编程时 经常会看到一些报错信息 在前面我们没有提及 这章节我们会专门介绍 Python 有两种错误很容易辨认 语法错误和异常 Python assert 断言
  • 【计算机科学与技术】信息论笔记(6):微分熵

    200803本篇是学习信息论的入门笔记 希望能与各位分享进步 这是第六章 微分熵 文章目录 6 微分熵 6 1 定义 6 2 连续随机变量的AEP 6 3 微分熵与离散的关系 6 4 联合微分熵与条件微分熵 6 5 相对熵与互信息 6 6
  • ubuntu 12.04安装jdk

    分类 LINUX 在安装之前 系统没有任何jdk软件 也就是说在终端执行 java version 将会输出如下内容 root haiyang Aspire java version 程序 java 已包含在下列软件包中 default j
  • 解决linux下图形界面卡死不能操作的问题

    由于linux系统bug很多 所以有时候用着用这就会发生图形界面卡死不能操作的情况 具体解决方法如下 1 按住ctrl alt f2 然后进入了一个黑色的shell界面 注 linux下共有六个虚拟控台 f2 f6 分别对应这不同的权限 2
  • 小程序仿微信支付键盘实现

    先上图 2 实现过程 键盘放在了vant weapp组件的弹窗框popup中 并且默认进入页面自动弹出键盘 index wxml
  • java -- Math、BigInteger、BigDecimal类和基本类型的包装类、正则表达式

    Math java lang Math 类包含用于执行基本数学运算的方法 如初等指数 对数 平方根和三角函数 类似这样的工具类 其所有方法均为静态方法 并且不会创建对象 调用起来非常简单 Math PI 静态常量 public static

随机推荐

  • AD器件飞出可视区域如何推拽回来

    步骤1 选择器件 步骤2 摆放器件 先说摆放器件 如下图 三个器件 加入我们需要摆放右侧的两个器件到指定区域 先选择要摆放的器件 操作如下 绘制需要摆放的区域 器件已经被移动过来了 完成 上述方法可以对大量器件进行整体移动 利用上述方法可以
  • 基于改进YOLO的玉米病害识别系统(部署教程&源码)

    1 研究背景与意义 近年来 农业科技的快速发展为农作物的种植和管理带来了许多便利 然而 农作物病害的防治仍然是一个全球性的挑战 玉米作为世界上最重要的粮食作物之一 受到了许多病害的威胁 如玉米灰斑病 玉米穗腐病等 这些病害不仅会导致玉米产量
  • IM群聊消息如此复杂,如何保证不丢不重?

    1 前言 群聊已经成为主流IM软件的基本功能 不管是QQ群 还是微信群 一个群友在群内发了一条消息 那么对于IM服务器来说需要保证 在线的群友能第一时间收到消息 离线的群友能在登陆后收到消息 由于 消息风暴扩散系数 的存在 概念详见 IM单
  • sas数字转日期格式_一个关于sas日期时间读入格式的问题

    方法一 直接使用SAS的PROC IMPORT 可以直接识别DATETIME格式 SAS版本9 2 PROC IMPORT OUT WORK T5 DATAFILE C temp csv DBMS CSV REPLACE GETNAMES
  • clickhouse优化最佳实践

    clickhouse在易企秀数据仓库项目中已投入使用两年 主要为内部用户提供快速查询和多维分析的能力 希望你在业务当中遇到的性能问题 在这里都能得到解决 Clickhouse堪称OLAP领域的黑马 最近发布的几个版本在多表关联分析上也有了极
  • 有什么事在Linux上顺理成章,在Windows就令人费解?

    Linux与Windows都是十分常见的电脑操作系统 相信大家对它们二者都有所了解 在我们的使用过程中 是否有遇到这种情况 在Linux上顺理成章 换到Windows上就令人费解 文章目录 一 介绍 2 1 Linux系统 1 2 Wind
  • c# 已知文件路径,遍历文件夹下的.lnk文件(其他类型的文件也可同样的方法操作)

    遍历文件夹下的 lnk文件 public static string ForeachFiles lnk string FilePath string files Directory GetFiles FilePath lnk SearchO
  • vue webpack3 升级webpack4

    vue webpack3 升级webpack4 据说webpack3 比webpack4 编译速度将近快了60 80 成功升级之后 于是来记录下 项目主要是vue 2 5 9 webpack 4 10 2 webpack dev sever
  • 支付宝支付回调

    1 支付宝回调地址设置在上一篇博客已经记录 地址 https blog csdn net qq 38669394 article details 106671410 2 支付宝回调方法 最主要两点 一个是如何接受参数 另一个是验签 这里需要
  • 软件工程师的衰落与程序员的崛起

    全文共4711字 预计学习时长14分钟 来源 cu manmanbuy 我周围大多数人都是软件工程师或计算机科学家 大多经验丰富且接受过严格的计算机科学教育 当然 这只能成就一个计算机科学 却不一定能成就编程 许多经验丰富的同事都痛惜年轻同
  • 用secureCRT串口工具发送hex字符串的方法

    最近工作中 遇到了需要在串口工具发送hex字符 直接在secureCRT的 交互窗口输入是不行的 我需要输入的hex字符串为 FEFE010601F9 解决方法如下 1 下载并安装winhex 下载地址 https www onlinedo
  • 怎么样使用Navicat for MySQL 导出mysql中的数据和将sql数据库文件导入到mysql数据库中

    很久没有使用navicat for mysql 了 一些基本的操作都遗忘 为避免下次再出现这种情况 先记下吧 将mysql数据文件导入到数据库中 1 在navicat 中创建一个mysql数据库链接 填写端口 用户名 密码 2 创建数据库
  • 《Hadoop权威指南》书摘-MapReduce概述

    转载请注明出处 独立博客 http wangnan tech 简书 http www jianshu com u 244399b1d776 知乎 https zhuanlan zhihu com c 121958856 MapReduce是
  • 技能树-网络爬虫-selenium

    文章目录 前言 一 selenium 二 selenium 测试用例 总结 前言 大家好 我是空空star 本篇给大家分享一下 技能树 网络爬虫 selenium 一 selenium Selenium是web自动化测试工具集 爬虫可以利用
  • Unity_获取当前点击物体的名字(获取名字

    获取当前点击物体的名字 返回一个string类型的值 EventSystem current currentSelectedGameObject name
  • Ant Design Blazor 发布 0.13.0,正式支持.NET 7!

    时隔3个月 Ant Design Blazor 发布新功能版本 0 13 0 并正式支持 NET 7 大家快去访问 antblazor com 体验吧 新增 NET 7 目标框架支持 2810 ElderJames 重构 Mentions
  • 问题:USART无法进入接收中断

    原因1 时钟TIM的超时配置不正确 时间太短 解决1 将时钟TIM超时时间加长 原因2 接收中断未使能 解决2 将接收中断ENABLE
  • Vue-移动端rem适配

    1 rem 使用 rem 单位可以让设计更加灵活 能够控制元素整体放大缩小 而不是固定大小 rem单位基于 html 元素字体大小 2 适配工具 lib flexible postcss px2rem exclude 3 lib flexi
  • Google Play 上架总结(二)Google账户关联详解

    近期 本人在 App 上架Google Play 过程中 频繁遇到账号被关联封禁 在踩过很多坑后 我觉得有必要总结一下 给其它朋友作为参考 一 Google 账户关联是指什么 账户关联是就是当Google开发者账号因为各种原因被封停了 此时
  • Java制作报表系统流程_finereport报表制作详细过程

    一般来说 一个完整的报表设计流程 大体分为如下几个步骤 1 打开设计器 2 配置数据源 3 新建报表 4 配置私有数据源 5 报表设计 6 预览报表 7 发布报表 第一部分 配置数据源 打开报表设计器 在设计器最上方的菜单栏当中 选择服务器