finereport

如何利用报表工具FineReport实现报表列的动态展示

会有一股神秘感。 提交于 2019-12-06 15:01:44
相信动态列的实现困扰了很多人,大数据量,多字段的加载将会非常耗时,数据又做不到真正的动态灵活。现有的方式都是通过变向的隐藏等方式来实现。 那该如何解决呢?这里分享帆软报表设计器FineReport的实现方案,结合实际工作中遇到的的相关内容。 我本地常用数据库是MYSQL,所以比较了解一点,所以实现方式也是基于mysql的。首先了解一下MySQL自带的information_schema数据库使用。 大家在安装或使用MYSQL时,会发现除了自己安装的数据库以外,还有一个 information_schema数据库。information_schema数据库是做什么用的呢,使用WordPress博客的朋友可能会想,是不是安装模板添加的数据库呀?看完本片文章后,你就会对information_schema数据库有所了解。 information_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式。什么是元数据呢?元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有些时候用于表述该信息的其他术语包括“数据词典”和“系统目录”。 在 MySQL中,把 information_schema 看作是一个数据库,确切说是信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等

报表性能优化方案之报表服务器优化基础讲解

◇◆丶佛笑我妖孽 提交于 2019-12-04 04:07:04
内存 JVM堆栈内存是决定应用服务器性能的关键指标,一般服务器默认的内存配置都比较小,在较大型的应用项目中,这点内存是不够的,因此需要进行查看与修改Web服务器内存大小,接下来就介绍服务器内存查看的方法以及不同服务器内存的修改方式。 各应用服务器的内存配置方法不尽相同,如下列出了常用服务器的JVM参数(-Xms,-Xmx)配置方法。 JVM参数定义: - Xms: 初始化内存大小 - Xmx: 可以使用的最大内存 以下示例工具:报表开发工具FineReport 服务器内存的查看 如果您想要查看应用服务器的内存配置情况,可以启动Web服务器,进入平台系统,URL地址为: http://localhost:8080/WebReport/ReportServer?op=fr_platform ,选择 管理系统>系统监控>系统状态>内存使用情况 ,即可查看到当前web服务器的内存使用情况,如下图: 注:如果用户购买了数据决策系统,那么URL地址可以输入 http://localhost:8075/WebReport/ReportServer?op=fs 其中: 空闲内存:204M是指可用剩余内存为:204M。 所有内存:247M是指当前调用的内存为:247M。 最大内存:494M是指可调用的最大内存为:494M。 FineReport 内存机制 1. 描述

报表性能优化方案之单数据集分页SQL实现层式报表

点点圈 提交于 2019-12-03 09:12:29
1、概述 我们知道,行式引擎按页取数只适用于Oracle,mysql,hsql和sqlserver2008及以上数据库,其他数据库,如access,sqlserver2005,sqlite等必须编写分页SQL。 下面以Access数据库为例介绍需要写分页SQL的数据库怎样利用行式的引擎实现层式报表。 解决方案提供工具:报表开发工具FineReport 2、解决思路 对于mysql这类可以直接使用行式的引擎实现层式报表的数据库来说,如果勾选了行式引擎,程序会自动生成分页sql,如,我新建了一个数据集ds1,来源于mysql数据库,基本sql语句为: SELECT * FROM 订单明细 如果不定义分页sql,勾选行式引擎选项,预览报表时,程序会将上面的sql语句转化为下面的语句来取一页的数据: SELECT COUNT(*)AS totalRowCount FROM (SELECT * FROM 订单明细) t 如果数据库是上面所说的access一类的无法直接生成分页sql的数据库,那么就需要编写分页SQL。 3、操作步骤 以FRDemo内置的sqlite为例,说明sqlite如何写分页查询。 注:sqlserver2005和sqlite操作步骤一样。 3.1新建数据集 新建数据集ds1:SELECT * FROM 订单明细。 3.2添加分页查询SQL语句

方法对头,报表模板维护其实很简单

我的梦境 提交于 2019-12-02 06:43:18
经常我们会遇到这样的一种情况,别人做的一张很复杂的报表模板,我们拿到后需要修改,但是却不知道该如何下手,不知道他原来在哪里写了什么东西 …… 一个一个查看十分的麻烦 …… 那么我们就可以利用 FineReport 提供的数据集插件来丰富我们的报表模板,方便维护。 先看个简单的例子:这个例子我只对模板的 JS 做维护,并且提供模板的备注功能,这样当我们做报表模板时,就可以把自己做这张模板时一些不容易理解的功能点备注下来,方便后面维护。 JS 的新建功能还没有做进来 …… 主要是还没想到合适的添加 JS 的方法 …… 当然还可以做很多我们自己想加入的维护工具,比如图表维护,单元格属性维护,等等。所有在设计器上能直接操作的部分我们在设计器里都是可以获取到的。 来源: oschina 链接: https://my.oschina.net/u/2365939/blog/479335

根据条件控制参数控件是否显示(可用)

安稳与你 提交于 2019-12-02 06:42:43
1、应用场景 在用报表工具FineReport设计报表时,使用参数控件时,有时我们希望部分参数控件在没满足条件时不显示,满足条件后再显示,如下图效果:只有前面的下拉框选择了内容之后,后一层下拉框控件才显示出来: 2、解决方案 首先将被控制的控件初始化为不可见或者不可用,然后在条件控件上增加编辑结束事件,通过js脚本设置被控制控件可见或可用,对应的js方法如下: setEnable(boolean):设置是否可用,true为可用,false为不可用; setVisible(boolean):设置是否可见,true为可见,false为不可见; 3、示例 打开模板%FR_HOME%\WebReport\WEB-INF\reportlets\doc\parameter\\MultiValue\MutiValue.cpt 我们用这个模板中的area作为条件控件,province作为被控控件来说明设置过程。 3.1初始化被控控件为不可见 点击province控件,选择属性表>基本属性将可见勾选掉,如下图: 3.2条件控件的事件设置 给area控件添加编辑后事件,调用JS方法将province控件设定为可见,具体的代码如下: 选择参数area的下拉框控件,选择属性表的事件面板,增加一个编辑后事件,如下图: 其中代码为: 1. var province=this.options.form

关于JS的编码转换问题

与世无争的帅哥 提交于 2019-12-01 16:36:58
在进行JS开发过程中,尤其是在开发报表时,报表已集成到Web页面中,通过在页面传递参数至报表中时,会发现有时某些参数值,传递到报表中是显示为问号或乱码等等一系列不能正常显示的情况。 这是由于浏览器和报表服务器的编码不同,字符多次进行编码转换时出现错误导致字符的显示出现乱码,尤其是中日韩文和特殊字符更容易出现乱码问题。 以开发报表软件FineReport为例,在给报表服务器发送请求之前,对URL或者只对URL里面的参数名字和参数值,进行cjkEncode的编码,该方式兼容了各种不同的字符集,如ISO8859-1、 UTF-8、 GBK、 ENU_JP,尤其对中日韩文的处理采取了统一的方案。 javascript中FineReport字符转换原理 在给报表服务器发送请求之前,对URL或者只对URL里面的参数名字和参数值,进行cjkEncode的编码。源码如下: function cjkEncode(text) { if (text == null) { return ""; } var newText = ""; for (var i = 0; i < text.length; i++) { var code = text.charCodeAt (i); if (code >= 128 || code == 91 || code == 93) {//91 is "[", 93 is "

将报表移动端集成到自有移动端app方法【IOS、Android】

孤街浪徒 提交于 2019-12-01 16:06:03
应用场景 用户有自己的app,希望把报表的移动端【本文中以FineReport移动端为例】功能集成到他们的app里面去,而不需要安装两个app。Android端和IOS端的集成接口是不一样的,下面我们分开详述如何实现。 IOS端集成App 1. 资源准备 准备好IOS端集成FineReport App的资源文件,包括自己的IOS工程、FineReport提供的资源包。 下载FineReport提供的集成资源包,解压至文件夹中,可以看到如下图所示的文件: 其中FRDemo和FRDemo_目录树是示例demo,说明文件夹中是使用说明,剩下的三个文件夹才是集成时需要依赖的资源包。 framework&bundle:里面包含了真机和模拟器集成时所需要的framework和bundle资源文件,图片资源(IFImages.xcassets); WeiXinSDK:微信的SDK; BaiduMap:百度地图的SDK FRDemo:集成示例,可以通过设置服务器地址,报表路径,加载报表,即直接通过URL访问报表; FRDemo_目录树:集成示例2,可以登录服务器,展示目录树,即通过发送用户名密码进行验证,验证成功之后直接显示FineReport的主页或者目录树。 2、资源导入 在自己的项目中导入资源文件framework&bundle\模拟器\FineResource.bundle

Web报表工具FineReport中JavaScript的使用

孤街浪徒 提交于 2019-12-01 16:05:47
报表软件 FineReport 采用的是 jQuery v1.9.2 框架, jQuery 是一个快速的,简洁的 JavaScript 库,能让用户更方便地处理 HTML documents 、 events ,实现动画效果,方便地为网站提供 AJAX 交互,并且它兼容各种浏览器( IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+ )。 FineReport 报表解析后最终成为一个 html 页面,因此可以使用 JS 对报表进行各种处理,可以选择使用 jQuery 框架的所有方法对报表进行操作。在此基础上, FineReport 还封装了很多内置的 JS 方法,这里我就先介绍 JS 的一些基本使用。 1. 如何使用 JS 1.1 报表模板中使用 JS 作用机理: 设计模板时可以给控件、工具栏按钮、整个报表添加 JS 事件,每个事件对应一个 function 。当报表转为 html 页面时会将这些 function 加到 html 的头部 head 。当事件被触发时如点击按钮时,或者导出打印报表时,对应的 function 就会被执行。 引入现成的 JS 文件: 单个模板引入外部 JS 文件:分页预览、填报预览或者数据分析旁的设置图标,然后点击引用 JavaScript ; 报表工程下所有模板统一引入外部 JS 文件:服务器 > 服务器配置 > 引用

如何获取url中的参数并传递给iframe中的报表

こ雲淡風輕ζ 提交于 2019-12-01 02:30:22
在使用报表软件时,用户系统左边一般有目录树,点击报表节点就会在右侧网页的iframe中显示出报表,同时点击的时候也会传递一些参数给网页,比如时间和用户信息等。如何使网页中的报表能够获取到传递过来的参数呢?以下用报表软件FineReport简单介绍一些。 具体实现过程 将报表生成页面时,给网页添加onload事件,首先获取url中的参数,然后嫁接到iframe的src上,或者通过获得的参数拼接处完整的报表url赋给iframe的src。 <html> <head> <title>FineReport Demo</title> <meta http-equiv="Content-Type" content="text/html; charset=GBK"> <script type="text/javascript" src="/WebReport/ReportServer?op=emb&resource=finereport.js"></script> <script type="text/javascript"> function autoLoad(){ //返回从问号 (?) 开始的 URL(查询部分) var paraString = location.search; //多个参数用&分隔,将参数字符串转为数组,使每个参数值存于一个数组元素中 var paras =

Linux下如何配置FineReport报表工程

好久不见. 提交于 2019-11-30 10:55:36
电脑操作系统 : linux 服务器: resin 报表工程 应用: FineReport 操作步棸: 一:安装 jdk 二:安装服务器,以 resin 为例 三:配置报表工程 一:安装 jdk 1. 首先在 相关官网 上下载 jdk 例如 jdk1.6, 名称为 jdk-6u2-linux-i586-rpm.bin 2. 通过 ftp 上传 jdk-6u2-linux-i586-rpm.bin 3. 通过命令给所有的用户添加可执行的权限 chmod a+x jdk-6u2-linux-i586-rpm.bin a : All ,即全部的用户,包含拥有者,所属群组以及其他用户 x :执行或切换权限,数字代号为 "1" 。 4. ./jdk-6u2-linux-i586-rpm.bin 会生成文件 jdk-6u2-linux-i586-rpm 同样给所有的用户添加可执行权 安装程序 rpm -ivh jdk-6u2-linux-i586-rpm 接受协议,按 enter 即可 5. 最后设置 path 与 classpath export JAVA_HOME=/usr/java/jdk1.6.0_02 6. 执行命令 java –version 如果出现 java version "1.6.0_02" 表示安装成功 二.安装 resin 服务器 准备工作:在 resin 官网下载