类excel报表开发工具FineReport教程之服务器性能优化:集群

合集下载

类excel报表开发工具FineReport教程之服务器性能优化:并发数

类excel报表开发工具FineReport教程之服务器性能优化:并发数

类excel报表开发工具FineReport教程之服务器性能优化:并发数报表工程总是和用户系统集成在一起,当服务器性能吃紧时,占用服务器资源的可能是报表引擎,服务器下的其他应用程序。

因此,减少任何一方对服务器资源的占用,都可以缓解压力。

当报表引擎已经没有优化余地时,如果服务器资源依旧吃紧,可以进一步对服务器整体进行优化,如优化服务器连接数等。

报表并发控制模板结果缓存与共享1.问题描述对报表进行访问时,若模板的数据很大,每次访问都会从服务器端重新读取数据,这样就加大了服务器的压力并且导致访问报表的速度变慢,为此可以设置模板缓存,使访问过模板后再次访问该模板时直接从缓存中读取而不需要从服务器端重新读取以此来减小服务器的压力以及提高报表的访问速度。

1.1读取模板缓存数据的条件必须是相同模板如该模板有参数则必须输入的参数值是相同的,即模板的展现结果是相同的。

2.原理下面我们以一个例子看下原理客户端A访问服务器上的报表设计模板,从数据库中读取,生成想要的模板结果文件,缓存到某处,并传回客户端。

而客户B访问服务器此模板时,若返回的结果与客户端A访问放回的结果相同,于是不从数据库中的读取,直接去拿A缓存的那些文件,然后传回客户端。

由此可以看出从缓存取模板结果远快于从数据库中读取数据。

3.设置方法可以对单个模板进行缓存设置,可以对所有模板进行缓存设置,下面我们分别看下设置方法。

3.1单个模板的缓存设置缓存设置在访问报表的路径后加&__cache__=true,表示该报表启用缓存,如:http://localhost:8075/WebReport/ReportServer?reportlet=GettingStarted.cpt &__cache__=true。

注:只有在访问模板的url后加__cache__=true,才会生成缓存数据,并且也只有在url 后加__cache__=true时,才会从缓存中读取数据。

类excel报表开发工具FineReport教程之

类excel报表开发工具FineReport教程之

类excel报表开发工具FineReport教程之Tomcat服务器Tomcat服务器部署1.描述tomcat是免费且性能相对稳定的web应用服务器,在许多中小型企业中很受欢迎。

FR支持的tomcat版本:tomcat5.0以上版本FR支持的JDK版本:JDK1.4或以上版本注意事项:所有版本tomcat部署步骤基本相同,jdk版本需要与操作系统对应,如32位的系统对应只能使用32位的jdk。

建议:建议使用解压版tomcat和jdk注:7.1.1版本不支持jdk1.4版本,需要jdk1.5以上版本。

2.部署步骤以下示例环境为Win7+tomcat7+jdk1.7,其他版本步骤相同。

2.1独立部署独立部署就是将FineReport应用集成到新的Web工程把FineReport_7.1安装目录下的WebReport文件拷贝到%Tomcat_HOME%/webapps/下:应用名WebReport可以根据需要改变,如可以改为“FineReport”。

2.2嵌入式部署嵌入式部署将FineReport应用集成到已有的Web工程在此使用%Tomcat_HOME%\webapps\目录下的tomcat自带的examples工程: 复制目录将%FineReport_HOME%\WebReport\WEB-INF目录下面的classes,lib,reportlets,resources四个目录复制到%Tomcat_HOME% \webapps\examples\WEB-INF下。

注意:%FineReport_HOME%\WebReport\WEB-INF\classes文件夹下面可能会放置一些网络报表的class文件,在和您的工程集成时并无冲突。

有关网络报表的介绍,可以在二次开发文档中找到。

整合web.xml文件tomcat集成只需要在已有工程的web.xml中添加相应的servlet与servlet-mapping 子元素。

FineReport关于tomcat集群部署的方案

FineReport关于tomcat集群部署的方案

FineReport关于tomcat集群部署的方案多台服务器集群后,配置权限、数据连接、模板、定时调度等,只能每台服务器一个个配置,不会自动同步到所有服务器。

针对上述情况,在FineReport中提供新集群部署插件,将xml配置文件、finedb/logdb 数据(定时任务、报表目录管理、批量导入、统计信息)的修改都对主机生效。

其他辅机的信息读取也都从主机读取,保证了数据同步。

实现了灾备,即主机当即后,次主机会上位接替主机的工作,保证系统正常运作。

同时还增加了集群灾备之文件同步,会将主机的finedb、xml、模板、jar包、插件等等备份到其他节点的应用上。

支持可以手动同步和自动同步。

插件介绍设计器插件、服务器插件安装好之后,新集群部署,有主机、次主机、辅机之分,配置文件都从主机读取,辅机只能用作计算引擎分担压力,有点事当改配置文件的时候,不需要每个节点都去修改,直接改主机即可。

分布式集群分布式集群文件系统:每台计算机各自提供自己的存储空间,并各自协调管理所有计算机节点中的文件。

这里测试修改主机的报表管理目录树平台标题,然后可以看到辅机会同步修改的配置。

其中报表管理目录树存在finedb中,平台样式的平台标题存在fsconfig.xml中。

•环境准备设置tomcat1、tomcat2、tomcat3集群,tomcat1为主机,tomcat2为辅机,tomcat3为次主机,tomcat集群。

WebReport工程分别放在tomcat下的webapps文件夹里配置文件集群配置完成之后,修改将配置包resource文件夹下的cluster.xml打开,如果没有这个文件的话,就新建一个,基本内容如下:PublicURL是集群默认跳转地址,比如集群时对外地址是自定义端口的,ip:8888/WebReport/ReportServer?op=fs我们并不能获取到这个8888端口,因此这里需要填写实际的ip:端口号,如果这段省略不写,默认跳转80端口。

finereport 报表工具的使用与集成

finereport 报表工具的使用与集成

finereport 报表工具的使用与集成FineReport 是一款强大的报表工具,可以用于制作各种报表,包括表格、图表和交叉报表等。

以下是FineReport 报表工具的使用与集成方面的介绍:1.安装与使用:首先,用户需要下载FineReport 的安装包,并进行安装。

安装完成后,双击打开FineReport,进入软件界面。

在界面左侧的工具栏中,可以找到各类报表生成的功能,如表格报表、图表报表、交叉报表等。

用户可以根据需求选择相应的报表类型,然后在报表设计界面中对报表进行编辑和布局。

2.数据源:FineReport 支持多种数据源,包括数据库、Excel、CSV、TXT 等。

用户可以通过连接数据源,获取需要的数据。

在报表设计界面中,可以通过拖拽数据字段到指定位置,完成报表数据的展示。

3.模板制作:FineReport 提供了多种模板类型,如表格模板、图表模板、交叉报表模板等。

用户可以通过模板制作功能,快速生成符合需求的报表模板。

在模板制作过程中,可以自定义模板样式、数据展示方式等。

4.集成:FineReport 可以与多种主流服务器进行集成,如Tomcat、WebSphere 等。

通过集成,可以将FineReport 报表集成到其他系统中,实现数据的统一展示和管理。

同时,FineReport 还支持与其他系统的数据交换和共享,方便企业实现数据整合和业务协同。

5.安全控制:FineReport 提供了完善的安全控制功能,可以对报表数据进行加密、权限控制等操作,确保数据的安全性和完整性。

同时,FineReport 还支持多级权限管理,可以满足不同层级用户的报表使用需求。

6.运行与发布:在制作完成报表后,用户可以通过FineReport 的发布功能,将报表发布到指定的服务器上。

在发布过程中,可以设置报表的访问权限、访问地址等参数。

发布完成后,用户可以通过浏览器访问报表,进行数据的查看和分析。

总之,FineReport 报表工具是一款功能强大、操作简单的报表制作工具。

报表制作FineReport报表性能优化(1)

报表制作FineReport报表性能优化(1)

报表制作FineReport报表性能优化(1)1. 为何要性能优化您是否遇到访问一张报表时加载时间很长?或者频繁访问大数据量报表占用了过多的服务器内存而导致内存溢出?又或者过多的用户并发访问的时候服务器承受压力过大导致服务器崩溃?您是否有这样的感想,访问了一张复杂报表,数分钟后再次访问了同样的报表,却发现还需等待相同的时间才看到结果,这太不人性化!您是否因为频繁地出现请求超时而恼火?您是否......若您遇到了以上的种种情况,这说明您的报表系统需要进行性能优化,赶紧行动起来吧,让您的报表系统运行地更快更顺畅!2. 影响性能的因素以上种种性能缺陷是如何产生的呢?一般有如下几方面存在性能问题:2.1 报表取数一般来说,报表越复杂,所涉及到的后台数据库基础表也就越多。

除了格式简单的列表式报表需要在报表中显示超大的数据量外,大部分的报表是从几十万或者几百万的源数据中,筛选,运算返回几十条或几百条不等的数据结果。

如果取数使用的方法不恰当,报表取数时间就会过长,从而影响性能。

2.2 报表制作报表制作时往往会使用字段的关联、高亮、数据字典、公式计算等等报表内置的功能,如果这些功能使用的不正确,或者报表存在多余的设置,这样就会因为这些不必要的设置而增加计算时间,从而影响性能。

2.3 服务器性能FineReport作为纯JAVA软件,可以与J2EE的应用无缝集成,集成至服务器的报表就会继承服务器的资源。

服务器的虚拟内存、连接池的设置等等往往会导致很多性能问题。

3. FineReport如何优化性能针对影响性能的因素,FineReport有不同的优化方案。

如对SQL的优化,使用存储过程等优化取数过程;减少冗余单元格及不必要的设置从而加快报表计算时间;采用并发设置,缓存设置,集群等提高服务器性能等等。

言而简之,FineReport性能优化,主要包括两个方面:一、报表性能优化;二、服务器性能优化。

具体优化方法我们将在本章下面进行详细介绍。

报表展示工具FineReport实现Tomcat服务器集群

报表展示工具FineReport实现Tomcat服务器集群

刷新页面,如下图:
再次刷新,如下图:
多次刷新页面的 sessionID 看是同一个 ID,说明 session 是复制成功了。那么 session 中 的存储的东西呢,在输入框中分别输入 1、1,2、2,3、3 后,显示结果如下图:
4.2 节点插拔测试 ▪ 关闭 Tomcat 关闭 tomcat3,刷新页面,可以不断访问 tomcat1 和 tomcat2,再关闭 tomcat2,只能够
下 面 的 test 项 目 中 的 web.xml , 在 每 个 web.xml 的 <display-name> 节 点 后 添 加 新 的 节 点
<distributable/>。
在每个 test 项目文件夹下新建 test.jsp,内容如下: <%@ page contentType="text/html; charset=GBK" %> <%@ page import="java.util.*" %> <html><head><title>Cluster App Test</title></head> <body> Server Info: <% out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>");%> <%
前面已经将 tomcat 复制了三份,修改每一份中的 server.xml 配置,打开 conf/server.xml 文件,修改如下图:
▪ tomcat1:

报表管理FineReport报表性能优化(3)

报表管理FineReport报表性能优化(3)

报表管理FineReport报表性能优化(3)启用行引擎执行层式报表1. 问题描述这样一种报表:报表形式非常简单,只是简单的单数据源明细报表,但是数据量非常大,百万、千万甚至更多。

报表取数及计算时间相当长。

希望能够提高报表展示速度,对于用户来说,查询报表不会有滞后的感觉。

2. 解决方案2.1 解决方案对于单数据源明细报表,可以启用行引擎来执行报表,提高报表展示速度,优化用户体验。

2.2 原理普通报表:取出全部数据后再执行报表,最后返回整体的报表结果给浏览器,用户访问到看到结果的时间=报表取数时间+报表执行时间;行引擎报表:边取数边执行报表,执行到哪页用户就可以看到哪页,用户访问到看到结果的时间=首页数据读取时间+首页计算时间。

2.3 注意事项行引擎报表注重的是性能,由原理我们可以想象,对于行引擎报表,每页的计算必须是独立的,即报表不能有单元格关联的复杂运算,类似,为了提高行引擎报表的性能,FR舍弃了一些复杂的功能:行引擎报表只适用于单数据源、即单元格过滤不能使用,且必须是简单明细表,同时也不支持计算、条件属性等复杂报表功能。

3. 实现步骤我们以mysql数据库为例,将里面的S订单明细的数据用行式引擎显示,每页显示30行,设置如下:3.1 新建数据集数据集ds1:SELECT * FROM S订单明细。

3.2 模板主体设计如下图,将表中的列全部拖曳至模板主体中:3.3 行式引擎设置选择模板>报表引擎属性,勾选用行式的引擎来执行报表,再勾选下面的使用按页运算分段执行报表,每页记录数使用默认值30,如下图:3.4 效果查看点击分页预览,效果如下:行式引擎按页取数只适用于Oracle,mysql,hsql和sqlserver2008及以上数据库,其他数据库,如access,sqlserver2005等必须手动编写分页sql,才能实现按页取数,对于需要编写分页sql的数据库,请参考单数据源实现层式报表章节。

FineReport----报表模板入门教程1

FineReport----报表模板入门教程1

FineReport----报表模板⼊门教程1FineReport就⼀款类Excel操作界⾯的报表⼯具,通过拖拖拽拽简单实现报表制作,实现数据展⽰、数据查询、数据录⼊功能,并且⽀持图形多样化展⽰。

⼀、⼊门⼩例⼦1. 打开设计器启动FineReport设计器,弹出设计界⾯。

2. 连接数据源在设计报表前,⾸先要添加报表中需展⽰的数据来源,如安装设计器后⾃带的内置FRDemo数据库。

选择菜单服务器>定义数据连接,如下:3. 新建⼯作簿点击菜单⽂件>新建⼯作簿或者点击新建⼀张⼯作簿,来制作⼀张普通模板。

4. 添加数据集在制作报表前,先从数据源中取出这张报表所⽤的数据,如使⽤FRDemo中的销量表制作⼀张地区销量表。

在左侧模板数据集⾯板中,新建数据集ds1,SQL语句为:SELECT * FROM [销量],如下图所⽰:5.报表样式FineReport⼯具可以轻松快捷地制作出⼀张报表,如下图地区销量报表:6. 实现步骤6.1 设计表样式报表主设计界⾯是⼀个类似Excel的表格,⼀些基本的使⽤⽅式都与Excel类似,⽤户可以轻松的设计报表:可以对边框、字段,格式进⾏设置。

对销售进⾏求合,两种⽅式设置数据列1、双击弹开2、右上⾓对单元格设置7 预览⼆、⼩知识点1、单元格 1)1)数据展⽰时,单元格由⼀个变多个2)⽐如图中的灰⾊的⼩箭头向下,代表数据列展⽰时⼏下扩展3)设置横向 2)纵向时⽗格的扩展性要设置横向向,不然⽆法识别,因为默认他是纵向。

2、分组报表默认是分组。

3、⾃由报表4、交叉报表5、多源报表增加⼀个销售总额的数据集6、主⼦报表两个表进⾏关联⾦额计算:单价*数量*(1-折扣)序号,先设置左⽗格b7,然后进⾏编号。

7、动态格间运算1)⽐较B2[A2:1]:B2单元格对应A2单元格扩展出来的对应B2的值B2-B2[A2:1]:B2-B32)占⽐B2[!0]:B2扩展出来的所有值B2/SUM(B2[!0]):B2/B2和3)环⽐B2[A2:-1] :B2单元格对应A2扩展出来上⼀个单元格,对应B2的值&A2:A2扩展出来所有当前单元格值if(&A2>1,B2/B2[A2:-1],0),如A2值⼤于1 ,则B2/B14)逐层累计D2[B2:-1]:D2单元格对应B2扩展出来的上个单元格,对应D2的值D2[B2:-1]+C2,是D1+C25)跨层累计if(&B2>1,D2[B2:-1]+C2),D2[A2:-1,B2:!-1]+C2):如果B2=1,上⼀个年最后⼀个D2值加C26)条件,总额超过2500的⽉份个数先设置数据2500的数据,字休显⽰为红⾊A2=$A2:当年count(B2[!0]{A2=$A2 && C2>2500})8、条件属性1)设置新值2)隐藏⾏⾼$$$:当前值3)隔⾏设置颜⾊4)当值处于某个值的时显⽰红⾊9、超级链接1)链接⽹页 2)链接另个报表 3)弹出框(js)4)邮件等下⾯例⼦是根据条件链接到另个报表设置地区不同指向不同报表,要设置数据集条件,如下:select * from 销量 where 地区=‘${area}’设置area为参数,在数据库查询时,点击预览时可以选择area为华东,进⾏预览数据。

FineReport学习习题及答案

FineReport学习习题及答案

FineReport学习习题及答案FineReport 是一款功能强大、灵活易用的企业级报表工具。

它通过可视化的设计器和丰富的报表组件,使用户可以快速创建和定制各种类型的报表。

为了帮助大家更好地掌握FineReport 的使用,本文将提供一系列学习习题和相应的答案。

学习习题习题一:FineReport 的安装和配置1.FineReport 是基于哪种技术开发的?2.请列出 FineReport 的主要特点。

3.如何安装 FineReport?4.FineReport 的默认端口号是多少?习题二:FineReport 的设计器界面1.FineReport 的设计器界面由哪些主要部分组成?2.如何添加一个数据集到报表中?3.如何在报表中添加一个表格组件?4.请列出 FineReport 中常用的数据处理函数。

习题三:FineReport 的数据操作1.如何使用参数查询数据?2.如何进行数据排序和分组?3.如何添加数据过滤条件?4.如何进行数据透视分析?习题四:FineReport 的图表设计1.如何在 FineReport 中添加一个柱状图?2.如何设置图表的标题和副标题?3.如何调整图表的样式和颜色?4.如何使用动态数据生成图表?习题五:FineReport 的报表导出和发布1.如何将报表导出为 PDF 格式?2.如何将报表导出为 Excel 格式?3.如何将报表发布到 FineBI 平台?4.如何设置报表的权限和访问控制?答案习题一:FineReport 的安装和配置1.FineReport 是基于 Java 技术开发的。

2.FineReport 的主要特点包括:强大的报表设计器、丰富的报表组件、灵活的数据操作、多种报表导出格式、可扩展的插件机制等。

3.FineReport 的安装过程通常包括下载安装包、解压缩文件、设置环境变量等步骤。

具体步骤可以参考官方文档中的安装指南。

4.FineReport 的默认端口号是 37799。

FineReport65培训材料

FineReport65培训材料

•}
可整理ppt
30
可整理ppt
31
Web属性
• 标题 • 页面预览设置 • 引用css/js
绝对路 径../tradereport/common/js/My97DatePicker/WdatePicker.js
Css 也是一样
可整理ppt
32
填报报表的制作
• 新增内置SQL:打开报表|报表填报属性。点击 左上角的增加按钮,新增一个内置SQL,该项 目的名称可以自由定义。这里我们保留默认的 内置SQL1。
可整理ppt
19
可整理ppt
20
参数的设计
1.定义参数:如图
可整理ppt
21
2参数界面的设计
①右键选择控件设置
可整理ppt
22
只能输入数字类型
可整理ppt
23
下拉框 从数据库中查询得到数据填充
可整理ppt
24
写死的下拉框
可整理ppt
25
默认数据的指定
• 一般默认数据:SQL("LpDB","SELECT * FROM CUSTOMER",2,1)2列的1 行
①设计器: FineReport设计器的界面简单易用,熟悉Microsoft Excel的用户
不需任何额外学习成本。一般用户也能在阅读FineReport提供的帮助文档后快速 掌握设计器的使用。
②服务器: FineReport服务器主要用来读取和解析设计器制作好的模板, 并将模板转换成html页面,方便用户通过IE, Firefox等浏览器查看,修改和打印数 据。同时FineReport服务器内置了强大的缓存机制,集群机制,支持超大数据量 的运算,支持大数量用户的并发处理,并创新性采用flash技术完美支持零客户端 精确打印。

finereport原理

finereport原理

finereport原理Finereport原理1. 什么是Finereport?Finereport是一款强大的企业级报表设计与管理工具。

它提供了丰富的数据展示方式和灵活的报表设计能力,帮助用户轻松制作、管理和实时分析各类报表。

2. 数据源连接原理Finereport支持多种数据源连接,包括关系型数据库、NoSQL数据库、OLAP数据库等。

它通过ODBC、JDBC等标准协议与数据库进行连接,通过SQL语句或者特定的查询方式获取数据。

3. 报表设计原理Finereport采用了所见即所得的设计理念,用户可以通过拖拽组件的方式进行设计。

Finereport提供了丰富的报表组件,如表格、图表、交叉表等,用户可以根据需求选择合适的组件进行布局与展示。

4. 数据计算与转换原理在报表设计过程中,Finereport提供了灵活的数据计算与转换功能。

用户可以通过自定义脚本、公式等方式对数据进行处理和加工,实现各种复杂的计算、汇总和筛选需求。

5. 数据展示原理Finereport支持多种数据展示方式,包括表格、图表、交叉表等。

它通过数据驱动的方式,将查询结果动态展示在报表中。

用户可以通过配置参数等方式实现报表的交互式展示,提供更好的用户体验。

6. 报表管理与发布原理Finereport提供了完善的报表管理与发布功能。

用户可以通过权限管理、版本控制等方式对报表进行管理,确保报表的安全性和可靠性。

同时,用户可以将报表以多种格式(如PDF、Excel等)导出或发布到多种平台(如Web、移动端等)。

7. 平台与插件原理Finereport基于Java开发,采用B/S架构,支持跨平台部署。

它提供了灵活的插件机制,用户可以根据需要进行二次开发和扩展,实现更多个性化的功能和定制化需求。

结论通过以上对Finereport原理的简要介绍,我们可以了解到它作为一款强大的企业级报表工具,通过与各种数据源的连接,灵活的报表设计与管理,以及丰富的数据计算与展示功能,为用户提供了高效、灵活和个性化的报表制作与分析体验。

finereport复杂报表

finereport复杂报表

finereport复杂报表
Finereport是一款专业的报表设计与生成工具。

它提供了多种功能和工具,可以帮助用户设计和生成复杂的报表。

以下是Finereport 的一些特点和功能:
1. 强大的数据处理能力:Finereport可以对各种数据源进行连接和处理,包括数据库、Excel、CSV等。

用户可以通过SQL查询、数据透视表、数据集等方式对数据进行处理和分析。

2. 灵活的报表设计:Finereport提供了丰富的报表设计功能,包括多种图表类型、数据透视表、交叉表、数据展示表等。

用户可以根据需要自由设计报表的布局和样式。

3. 多样化的数据展示方式:Finereport支持多种数据展示方式,包括表格、图表、地图、仪表盘等。

用户可以根据不同的数据类型和需求选择合适的展示方式。

4. 强大的数据分析和统计功能:Finereport提供了丰富的数据分析和统计功能,包括排序、筛选、分组、汇总、计算字段等。

用户可以通过这些功能对数据进行深入分析和统计。

5. 多种输出格式和方式:Finereport支持多种输出格式和方式,包括HTML、PDF、Excel、Word、图片、邮件等。

用户可以根据需要选择合适的输出方式。

Finereport是一款功能强大、灵活多样的报表设计与生成工具,可以帮助用户设计和生成复杂的报表,并提供丰富的数据分析和统计功能。

报表软件FineReport报表性能优化(5)

报表软件FineReport报表性能优化(5)

报表软件FineReport报表性能优化(5)修改缓存路径1. 问题描述若启用了磁盘缓存,默认的会在C:\Documents and Settings\Administrator\.FineReport80(windows XP下)下创建cache即缓存文件夹,一般呢,C盘的空间会很小,如保存在C盘会增加对C盘的压力,那么有没有方法让其保存到别的盘符下呢?win7及以上的系统:C:\User\用户名\.FineReport80linux系统:/usr/local/cachelinux/2. 解决方案通过修改%FR_HOME%\WebReport\WEB-INF\resources\目录下的cache.xml文件(报表管理平台中设置缓存,提交后会生成该文件,如果没有则新建),给Basic标签增加cacheDirectory属性,如将缓存文件保存在D:\Cache目录下,具体代码如下:注:Basic的cacheDirectory属性表示的就是缓存路径,另外一旦自定义缓存路径了,那么默认的缓存文件夹就会被自动删除。

按照上述的设置后,重启Web服务器,缓存文件将会保存在D盘Cache目录下,若没有Cache文件夹,会自动创建该文件夹;当web服务器关闭时,报表缓存会自动清除,即删除Cache文件夹的所有文件。

注:缓存路径一定要设置为某个独立的文件夹下,切忌与其他文件共用一个目录,如报表的缓存目录跟Web服务器工程的相同,则会删除web服务器工程下的内容。

优化调用Oracle存储过程1. 描述使用Oracle数据库,很多情况下会使用Oracle的存储过程作为数据集,实际情况下,当Oracle的表空间数据比较多【Oracle返回数据集的方式是存储包】,当在设计器中添加存储过程,会等待稍长一段时间。

这里Oracle中的表空间较多,而且数据较多,使用Oracle中的一个存储过程作为数据集,会出现等待时间较长的情况,如下图:当左侧存储过程显示出来以后,还要在搜索框输入存储过程名,又需要等待一段时间,如下图:2. 解决方案2.1 去掉显示Oracle所有表的配置点击文件>选项选择高级去掉展示Oracle所有表的选中状态。

报表软件FineReport报表性能优化(2)

报表软件FineReport报表性能优化(2)

报表软件FineReport报表性能优化(2)巧用参数注入1. 问题描述对于多数据集关联报表,当数据很大时报表的展现速度就会很慢,或通过写sql语句又很复杂。

为此FineReport提供一种,既可加快报表的展现速度,又不用编写复杂的sql语句的方案。

即使用动态参数注入功能。

2. 原理动态参数注入,是通过注入的值对数据库中的数据进行操作的,只是取对应的数据,所以会提高报表的性能。

3. 示例∙新建模板展现多个关联数据表的数据SQL语句,ds1:SELECT * FROM [订单]SQL语句,ds2:SELECT * FROM 订单明细∙报表样式传统做法:先定义多个数据集,然后在报表中设置过滤条件,或使用连接将多个数据表定义成一个sql,但这两种方案会产生的一系列问题(具体下面有介绍)。

而使用动态参数注入的功能可解决大数量报表展现的速度,下面对比看下这三种做法。

3.1 设置过滤此方法是定义两个数据集查询出所有数据,然后在报表中设置过滤条件。

分页预览query_like.cpt,从日志中可看出,是将第二个数据集中的数据全部取出了,如下所示:注:对于数据量大的报表,若将数据全部取出会降低报表的性能,因此会降低报表的展现速度。

3.2 定义sql若是采用将两个数据集定义成一个数据集,则SQL语句为:select a.订单ID,订购日期,到货日期,发货日期,产品ID,单价,数量,进价,折扣 from 订单 a,订单明细 b where a.订单ID=b.订单ID注:当数据集很多时,这样定义sql很麻烦,看了也觉得很复杂。

3.3 使用动态参数注入∙修改sql语句将上述模板中,数据集ds2的sql语句,修改成:SELECT * FROM [订单明细] where 订单ID =${orderid},并将参数orderid设置个默认值为订单ID中的一个值,如:10248。

∙参数注入设置双击原进行过滤的E2单元格,在弹出数据列对话框中,点击动态参数注入按钮,弹出动态参数注入对话框,然后点击插入:名字和值分别为数据集ds2的参数:orderid和数据集ds1对应数据列所在的单元格:A2,且同时删除过滤条件。

fineReport服务器配置

fineReport服务器配置

fineReport服务器配置FineReport是一款强大的企业级报表软件,它提供了丰富的功能和灵活的配置选项,帮助用户快速生成、分析和展示各类数据报表。

为了能够正常运行FineReport,合理的服务器配置是至关重要的。

本文将介绍FineReport服务器配置的相关内容,帮助您正确地配置服务器,提高FineReport的性能和稳定性。

一、硬件配置FineReport是一款功能强大的报表软件,对服务器的硬件配置要求相对较高。

以下是一些推荐的硬件配置要求:1. 处理器:建议采用多核的服务器CPU,处理器核心数越多,FineReport的并发处理能力就越强。

2. 内存:FineReport对内存的需求较大,建议至少配置8GB以上的内存。

如果有大量并发请求或者复杂的报表计算,可适当增加内存容量。

3. 存储:为了保证数据的高效读取和写入,建议使用高速的固态硬盘(SSD)或者RAID磁盘阵列。

4. 带宽:FineReport对网络带宽的要求较高,建议使用高速稳定的网络环境,以确保用户能够流畅地使用FineReport。

二、操作系统FineReport支持多种操作系统,包括Windows、Linux等。

根据您的实际需求和服务器环境,选择适合的操作系统。

1. Windows系统:FineReport对Windows的兼容性和稳定性较好,适用于小型和中型企业。

Windows Server 2012及以上版本是较好的选择。

2. Linux系统:FineReport对Linux的兼容性和稳定性也较好,适用于大型企业和高并发的场景。

常见的Linux发行版如CentOS、Ubuntu 等都可以使用。

三、数据库FineReport支持多种数据库,如MySQL、Oracle、SQL Server等。

根据您的实际需求和服务器环境,选择适合的数据库。

1. MySQL:MySQL是一款开源的关系型数据库,安装和配置较为简单,适用于小型和中型企业。

报表软件FineReport报表性能优化(4)

报表软件FineReport报表性能优化(4)

报表软件FineReport报表性能优化(4)多数据集实现层式报表1. 问题描述若报表使用的数据量是上百万条的话,觉得报表展现的速度慢,可以使用层式报表来提高报表展现速度。

但由层式报表章节可以得知,层式报表必须是单数据集,若是多数据集的模板且数据量又很大,想要提高报表的查询速度要如何实现呢?2. 实现思路在定义数据集时通过使用数据库本身的行序号或者使用数据库函数生成行序号(即行号)并且在where条件中通过页码参数使得行号在一定范围内显示,点击自定义的上一页下一页按钮时重新传入页码参数取出相应的数据。

注:SQL Server2000无法生成行号,因此需要定义存储过程实现分页查询,以下具体介绍Access实现分页的步骤,SQL Server2005以及Oracle数据库实现分页的步骤有一点区别,以下会详细介绍。

3. Access分页示例3.1 新建模板新建模板mutipage.cpt,为了加快展示速度,我们可以使用分页查询,获取每个产品的详细信息并计算产品对应的订单中的应付金额,因此添加数据集时查询SQL语句为select 产品.产品ID,产品名称, 供应商ID , 类别ID, 单位数量, 产品.单价, 产品.库存量, 产品.订购量,sum(应付金额) as 应付款项 from 产品,订单,订单明细 where 产品.产品ID=订单明细.产品ID and 订单明细.订单ID=订单.订单ID and 产品.产品ID between 10*(${page}-1)+1 and 10*${page} group by 产品.产品ID,产品名称, 供应商ID , 类别ID, 单位数量, 产品.单价, 产品.库存量, 产品.订购量 order by 产品.产品ID,设置参数page的默认值为1,首次看到的是第一页,只查询出第1~20条记录;若page参数为2时,查询出第21~40条记录,即第二页内容。

注:这边定义报表每页显示10条数据,即ds1的查询SQL一次只取10条数据,从而加快报表展示速度。

finereport操作手册

finereport操作手册

FineReport是一款功能强大的报表工具,广泛应用于企业级报表的制作和展示。

以下是FineReport的基本操作手册:
1.启动软件:打开FineReport Designer,你将看到一个直观的用户界面,包
括菜单栏、工具栏、画布区和属性面板。

2.新建报表:在菜单栏上,选择“文件”->“新建”,然后选择报表类型。

有多种类型的报表供你选择,包括表格、图表、交叉表等。

3.数据源配置:为你的报表配置数据源。

选择“数据”->“数据源”,然后
选择适合你数据源的类型,如数据库、Excel、API等。

4.报表设计:在画布区,你可以开始设计你的报表。

使用工具栏上的工具添
加控件、调整布局和格式化数据。

5.数据绑定:将数据源中的数据绑定到报表控件上。

在属性面板中,选择数
据集和相应的字段来绑定数据。

6.报表预览:完成设计后,你可以预览报表的效果。

点击工具栏上的“预
览”按钮或从菜单栏选择“预览”->“实时预览”。

7.导出和发布:当你满意报表的设计和效果时,可以选择导出为PDF、Excel
或其他格式,或发布到FineReport Server上进行共享和查看。

8.关闭软件:完成所有操作后,选择“文件”->“关闭”来关闭当前报表。

如果你想退出软件,选择“文件”->“退出”。

FineReport性能问题处理方法总结

FineReport性能问题处理方法总结

FineReport性能问题处理方法总结性能问题处理方案汇总性能问题主要分为两个方面:1、服务器内存溢出;2、预览时,整个报表加载速度慢或者控件加载时间长。

一、服务器内存溢出问题从我们的报表可以集成的服务器和客户那边比较常用的服务器环境来看,主要有Tomcat服务器、Weblogic服务器、WebSphere 服务器和JBoss服务器,就我平时处理性能问题遇到的服务器主要有tomcat服务器,暂时没遇到后面三种服务器内存溢出的问题,今后遇到了再加进来。

故我主要整理一下tomcat服务器内存溢出的处理方法,其他服务器的处理方法先借用文档中增加内存的方案:Weblogic服务器:/help/4/3/0/0/1.htmlWebSphere 服务器:/help/4/3/0/0/2.htmlJBoss服务器:http:///help/4/3/0/0/3.html顺便提一下,我们设计器的内置jetty服务器的内存也可以修改,但是一般不会去增加这个服务器的内存,修改的地方为安装目录下bin文件夹中的designer.bat文件中..\ jre\bin\java-Xms512m-Xmx1024m修改一下-Xmx后面的值即可。

下面详细介绍一下tomcat服务器内存溢出的原因以及一般处理方法。

(一)、tomcat内存溢出的原因tomcat内存设置不好的话很容易出现内存溢出,造成内存溢出的原因不同的话,处理方式也不同。

我遇到过的内存溢出的有三大方面:OutOfMemoryError:Javaheapspace(堆溢出)OutOfMemoryError:PermanentGenerationspace(内存的永久保存区域溢出)OutOfMemoryError:unabletocreatenewnativethread(无法创建新的线程)堆溢出:JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置。

类excel报表开发工具FineReport教程之服务器性能优化:内存

类excel报表开发工具FineReport教程之服务器性能优化:内存

类excel报表开发工具FineReport教程之服务器性能优化:内存JVM堆栈内存是决定应用服务器性能的关键指标,一般服务器默认的内存配置都比较小,在较大型的应用项目中,这点内存是不够的,因此需要进行查看与修改Web服务器内存大小,接下来就介绍服务器内存查看的方法以及不同服务器内存的修改方式。

各应用服务器的内存配置方法不尽相同,如下列出了常用服务器的JVM参数(-Xms,-Xmx)配置方法。

JVM参数定义:-Xms:初始化内存大小-Xmx:可以使用的最大内存服务器内存的查看如果您想要查看应用服务器的内存配置情况,可以启动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.描述在使用报表的过程中有时候会遇到内存溢出的问题,下面简单介绍我们报表的内存机制以及怎样释放内存。

2.内存机制2.1Java内存回收机制Java的内存垃圾回收(GC)机制是从程序的主要运行对象开始检查引用链,当遍历一遍后发现没有被引用的孤立对象就作为垃圾回收。

GC为了能够正确释放对象,必须监控每一个对象的运行状态。

包括对象的申请、引用、被引用、赋值等,GC都需要进行监控。

在Java中,这些无用的对象都由GC负责回收,同时java提供了函数可以访问GC,如运行GC的函数System.gc(),但是根据Java语言规范定义,该函数不保证JVM的垃圾收集器一定会执行。

Excel的性能优化方法解析

Excel的性能优化方法解析

Excel的性能优化方法解析随着信息技术的快速发展,Excel已经成为了我们日常工作中不可或缺的工具之一。

然而,随着数据量的增加和计算复杂度的提高,我们可能会遇到Excel运行缓慢的问题。

为了提高工作效率,我们需要掌握一些Excel的性能优化方法。

一、数据处理方面的优化1. 数据筛选:在处理大量数据时,我们可以使用Excel的数据筛选功能,通过设置筛选条件来快速定位和处理所需数据,避免了对整个数据表进行操作的低效率。

2. 数据透视表:数据透视表是Excel中非常强大的数据分析工具,它可以将大量数据进行快速汇总和分析。

在使用数据透视表时,我们可以合理选择需要汇总的字段,并设置合适的行列布局,以提高数据处理的效率。

3. 条件格式化:通过使用条件格式化功能,我们可以根据数据的特定条件来自动设置单元格的格式,如颜色、字体等。

这样可以使数据的呈现更加直观,同时也减少了手动设置格式的时间。

二、公式计算方面的优化1. 减少使用复杂公式:当我们在Excel中使用大量复杂的公式时,会导致计算时间变长。

因此,我们应该尽量减少使用复杂公式,可以将一些重复计算的公式提取出来,以减少计算量。

2. 使用数组公式:数组公式是Excel中一种强大的计算方式,可以一次性处理多个数据。

在使用数组公式时,我们可以通过按住Ctrl+Shift+Enter的方式输入公式,以告诉Excel这是一个数组公式。

这样可以提高计算速度,尤其是在处理大量数据时。

3. 使用索引与匹配函数:在处理大量数据时,我们经常需要根据某个条件来查找特定的值。

使用索引与匹配函数可以帮助我们快速定位到所需的值,而不需要使用复杂的嵌套公式。

三、工作表设置方面的优化1. 隐藏不需要显示的工作表:当一个Excel文件中包含多个工作表时,我们可以将不需要显示的工作表隐藏起来。

这样可以减少Excel的计算负担,提高运行速度。

2. 删除不需要的格式和对象:在Excel中,一些不必要的格式和对象会占用系统资源,导致Excel运行缓慢。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

类excel报表开发工具FineReport教程之服务器性能优化:集群服务器集群原理1.前述Windows集群同J2EE的集群不同,因为它是操作系统自带的集群支持,它没有J2EE 集群对java的web应用的良好支持,例如session粘滞。

所以对Windows集群,需要特别配置一下,以此来支持集群的功能。

2.原理均衡负载会根据情况,将外部请求分配给集群内的服务器处理。

当一个会话(Session)在A服务器上产生并开始,产生了一部分会话信息将保存到A服务器的内存中。

假如这次会话中的一次请求被均衡负载调度器分配到了B服务器去处理,那么问题就产生了,B服务器中的内存中并没有这个会话的信息,那么就会报查询超时(session time out)。

而我们通过配置文件的配置,会在集群的服务器间建立联系。

当B服务器收到请求,发现这个请求的会话不是自己产生的,那么它会根据请求中的信息,判断出这个会话是由哪台服务器产生。

接着它会将这个请求通过内网转发给相应的那台服务器去处理。

这样相当于就实现了J2EE 集群的会话粘滞的功能。

简单的说,会话粘滞就是保持一个会话中的多次交互都由一台集群中的服务器处理。

这样就不会再产生上述的问题。

3.前提集群的服务器间,需要有内网间通信的支持。

不同服务器上的报表应用必须是一致的。

Tomcat服务器集群1.环境准备Apache:Apache是http服务器,我们利用其对Tomcat进行负载均衡,下载地址/download.cgi#apache22,这里使用的版本是Apache HTTP Server2.0.64;Tomcat:Tomcat7.0.6;JK:JK是Tomcat提供给http服务器的插件,这里使用的版本是tomcat-connectors-1.2.37-windows-i386-httpd-2.0.x,下载地址/apache/tomcat/tomcat-connectors/jk/binaries/windows/;系统:win7。

2.软件安装2.1Apache下载完成之后,直接安装apache,安装完成之后,在浏览器中输入http://localhost/,能够看到下图则说明安装成功:2.2Tomcat解压下载好的tomcat压缩包,复制三分解压好的tomca文件夹,分别重命名为tomcat1,tomcat2,tomcat3。

3.配置过程3.1Apache配置修改∙修改httpd.conf我的Apache安装在C:\Program Files(x86)\Apache Group\Apache2,找到conf 目录下的httpd.conf,在文件的最后一行添加:1.include"C:\Program Files(x86)\Apache Group\Apache2\conf\mod_jk.conf"∙新建mod_jk.conf文件在conf目录下新建mod_jk.conf文件,内容如下:1.LoadModule jk_module modules/mod_jk.so2.JkWorkersFile conf/workers.properties3.JkMount/*.jsp controller注:第一行最后的文件名为jk的文件名,根据下载的jk的名字不同而不同。

第二行表示指定哪些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器名,第三行表示可以进行集群的文件类型,这里写*.jsp表示集群的文件只能是jsp 文件,如果不区分文件类型,则直接写成JkMount/*controller即可。

∙jk解压下载的jk文件,将里面的so文件复制到Apache安装目录的modules目录下,这里下载的jk文件名为mod_jk.so。

∙新建并编辑workers.properties文件在conf文件夹下新建workers.properties,内容如下:1.#server2.worker.list=controller3.#========tomcat1========4.worker.tomcat1.port=110095.worker.tomcat1.host=localhost6.worker.tomcat1.type=ajp137.worker.tomcat1.lbfactor=18.#========tomcat2========9.worker.tomcat2.port=1200910.worker.tomcat2.host=localhost11.worker.tomcat2.type=ajp1312.worker.tomcat2.lbfactor=113.#========tomcat3========14.worker.tomcat3.port=1300915.worker.tomcat3.host=localhost16.worker.tomcat3.type=ajp1317.worker.tomcat3.lbfactor=118.19.#========controller,负载均衡控制器========20.worker.controller.type=lb21.worker.controller.balanced_workers=tomcat1,tomcat2,tomcat322.worker.controller.sticky_session=false23.worker.controller.sticky_session_force=124.#worker.controller.sticky_session=1如果需要配置远程的tomcat服务器的话,只需要将worker.tomcat3.host=localhost 中的localhost改为远程服务器的IP地址即可。

本次配置都是本地的tomcat,并且在一台机器上,所以端口号都不相同,如果在不同服务器上,端口号则不需要更改。

3.2Tomcat配置前面已经将tomcat复制了三份,修改每一份中的server.xml配置,打开conf/server.xml文件,修改如下图:tomcat1:tomcat2:tomcat3:注:由于我这三个tomcat全是本地的,并且在一台服务器上,所以需要修改三种类型的端口号,如果是远程服务器,则只需要修改AJP13的connector的port,其他端口号不需要修改。

不论是本地服务器还是远程服务器,AJP13的connector的jvmRoute名称和workers.properties中配置都必须对应。

4.结果测试在tomcat下面的项目文件夹中修改web.xml,如这里使用test项目,则修改三个tomcat下面的test项目中的web.xml,在每个web.xml的<display-name>节点后添加新的节点<distributable/>。

在每个test项目文件夹下新建test.jsp,内容如下:1.<%@page contentType="text/html;charset=GBK"%>2.<%@page import="java.util.*"%>3.<html><head><title>Cluster App Test</title></head>4.<body>5.Server Info:6.<%7.out.println(request.getLocalAddr()+":"+request.getLocalPort()+"<br>");%>8.<%9.out.println("<br>ID"+session.getId()+"<br>");10.//如果有新的Session属性设置11.String dataName=request.getParameter("dataName");12.if(dataName!=null&&dataName.length()>0){13.String dataValue=request.getParameter("dataValue");14.session.setAttribute(dataName,dataValue);15.}16.out.println("<b>Session列表</b><br>");17.System.out.println("============================");18.Enumeration e=session.getAttributeNames();19.while(e.hasMoreElements()){20.String name=(String)e.nextElement();21.String value=session.getAttribute(name).toString();22.out.println(name+"="+value+"<br>");23.System.out.println(name+"="+value);24.}25.%>26.<form action="test.jsp"method="POST">27.名称:<input type=text size=20name="dataName">28.<br>29.值:<input type=text size=20name="dataValue">30.<br>31.<input type=submit>32.</form>33.</body>34.</html>4.1session测试项目部署好之后,启动三个tomcat以及Apache,启动顺序随意,然后再浏览器中输入http://localhost/test/test.jsp,结果如下图:刷新页面,如下图:再次刷新,如下图:多次刷新页面的sessionID看是同一个ID,说明session是复制成功了。

相关文档
最新文档