已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
动态报表:动态意即变化,动态报表也就是指可以变化的报表。说得更具体一些:也就是报表开发者为报表最终用户提供的报表是可配置的,是可以进行个性化调整的,一个动态报表相当于一个设计合理的报表模型,不同的报表用户可以配置出他们最想要的运行方式。当然动态报表的变化要讲究一定的规律,提供给最终用户的操作界面是非常直观,非常容易操作的。目前收集到的动态报表实现方法及其工具Grid+ReportGrid+Report 是一款高性能的报表开发工具,特别适用于信息管理系统,如ERP、进销存、财务等软件的报表开发。针对票据套打进行了专门实现,也是实现票据打印的好工具。Grid+Report是完全可编程的报表工具,是制作动态报表的最佳选择。针对中国式报表的特点进行了很多专门的设计,是为开发中国式报表量身定做的一款报表工具。适用范围广:C#.NET、VB、VC、Delphi、C+Builder、中文编程易语言等一切支持 COM 的开发工具。功能强大:实现普通格式报表、表格报表、多层表头、票据套打、交叉表等各种报表非常简便;报表完全可编程定义,非常适合开发通用软件中的动态报表。Grid+Report是一款高性能的报表组件(构件/控件),特别适用于管理信息系统(如ERP、进销存、财务等)的报表开发。提供一个具有超强数据展现能力的数据网格(DataGrid)部件,制作各种表格报表非常简便;运行时可通过事件响应使报表与用户交互;针对票据套打进行了专门实现;总之Grid+Report 是制作动态报表的最佳选择。提供可视化报表设计器,设计报表快速简单。 Grid+Report除了提供打印功能外,还提供报表的查询显示功能,即如各种数据网格(DataGrid)控件一样显示数据,让报表的查询显示与打印一次实现,既提高开发效率又保持数据的一致性,这也是Grid+Report与其它报表构件的最大区别。Grid+Report适用于所有支持COM的开发平台,为易语言、Visual Basic、Visual C+、Delphi、C+Builder编写了大量例程。采用VC+COM+ATL+WTL开发,运行性能高,重新发布简单、发布文件小且不依赖任何运行时库。特 点报表的屏幕查询显示、打印、打印预览与数据导出功能集中一体化实现。 非常易于动态编程定义报表:其它报表构件通过在明细节上排列一个个显示部件框来输出明细记录的数据,要通过编程来定义明细节上的部件框非常复杂,有的甚至是不可能的。 Grid+Report 将明细节的功能集中实现在明细网格中,通过对列的动态定义从而实现整个报表的动态变化。轻量级的:Grid+Report 不依赖其它任何动态库,再次发布 Grid+Report 只需两个动态连接库(DLL)。实现票据套打非常简便:对票据套打进行了专门的实现。提供了多种报表元素自动布局方式,使报表元素的布局适应运行时刻的环境变化。运行时打印生成对纸张有适应能力,即使不以设计时纸张进行打印也可以得到输出布局合理的报表。独立的报表设计器构件,实现运行时修改与设计报表的功能。为 Delphi、C+Builder 编写专门的包装类,象使用 VCL 构件一样使用 Grid+Report。使用 Grid+Report 的常用方式作为整个报表系统的整体解决方案的实现工具。首先利用 Grid+Report 的屏幕查询显示功能将报表在屏幕上显示出来,然后利用 Grid+Report 的打印与打印预览功能实现打印与打印预览。实现查询、打印与打印预览的统一实现,减少重复工作,并且能够保持数据一致性。 只使用Grid+Report 的打印与打印预览功能,象其它报表构件一样使用。 只利用 Grid+Report 的屏幕查询显示功能,Grid+Report 就像是一个具有超强数据展现功能的数据网格(DataGrid)控件, Grid+Report 可以对数据进行分组、统计、分析、显示等功能,通过对用户交互事件的处理达到与用户的互动。 用 Grid+Report 进行票据的套打,Grid+Report 对套打进行了专门的实现,使得套打位置的对齐特别便捷。 利用Grid+Report的数据导出功能,将应用程序中的数据导出到Excel、html、Text、CSV 等格式文件。Grid+Report目前市场上的工具都为收费的,参考资料不太多。JasperReport是一个强大、灵活的报表生成工具,能够展示丰富的页面内容,并将之转换为pdf,html,xls,csv或者xml格式,该库完全用java写成,可以用于在各种java应用程序,包括j2ee,web应用程序中生成动态内容。主要的目的是以一种简单而灵活的方式来帮助创建导向的页面。用JasperReport进行报表开发的过程如下:Jasperreport的报表生成过程,如下图。报表数据源报表模板填充如上图所示。报表模板有两种制作方式:1)利用ireport图形编辑工具,iReport是报表编辑图形工具,编辑完成后输出jrxml文件(XML格式), 生成jasper文件(以.jasper结尾);2)直接利用java代码编译生成jasper文件(以.jasper结尾)。最终要使用的是编译后的*.jasper文件。JasperReports组织根据在一个xml文件中定义的报表设计通过JDBC来接受来自一个关系数据库中的数据,为了以数据来填充报表,报表设计必须首先被编译。描述报表设计的xml文件的编译通过执行dori.jasper.engine.JasperManager类暴露的compileRepot()方法。通过编译,报表设计被装载入一个报表设计对象中,然后系列化并存储在硬盘上。当应用程序想以数据来填充特定的报表设计时会使用这个已经系列化的对象。 为了填充一个报表设计,可以使用由dori.jasper.engine.JasperManager类暴露的fileReportXXX()方法。此方法接受作为参数的报表设计对象,或者描述特定报表设计对象的文件,在一个系列化的格式中和一个从其中接受数据填充报表的数据库JDBC连接。 JasperReports主要类: dori.jasper.engine.JasperCopmileManagerdori.jasper.engine.JasperFillManagerdori.jasper.engine.JasperPrintManagerdori.jasper.engine.JasperExportManager这些类表现JasperReports引擎的正面,他们有各种静态方法简化API功能的访问并用来编译一个XML报表设计、填充报表、打印或者输出pdf,html,xml文件。dori.jasper.view.JasperViewer这个可用来观察产生的报表Dori.jasper.view.JasperDesignViewer这个可以观察报表设计2、编译报表设计报表设计由一个具有在jasperreport.dtd文件中定义的结构的xml文件来表现。为了根据这样的报表设计来产生报表,需要编译它。编译可通过使用由dori.jasper.engine.JasperCompileManager类暴露的compileReportXXX()方法来完成。当编译一个报表设计时,引擎会创建一个包括所有报表表达式的java类文件,这个类是使用java编译器编译并在结果.jasper文件中存储字节码。默认情况下,JaspeReports使用目前jvm类路径来编译报表文件并以目前工作目录作为产生文件的临时存放位置。为了定制报表编译过程,JasperReports允许通过提供一个值给系统属性pile.class.pathL来覆盖默认行为,这将被用报表类编译的类路径,赋一个值给系统属性pile.temp,这个将被用来临时目录xml验证默认是打开的,可通过设定系统属pilation.xml.validation为false来关闭。如果你想使用一个不同的java编译器,就可以使pile系统属性来提供编译器程序的名字。3、观察报表设计报表设计可通过使用dori.jasper.view.JasperDesignViewer应用程序来查看。在气main()方法中,它接收那些包括报表设计的文件的名字来查看。可以使xml文件或编译过的报表设计。4、填充报表一个编译 过的报表设计可通过调用dori.jasper.engine.JasperFillManager类的fillReportXXX()方法来产生报表。5、观看报表产生的报表可以通过使用dori.jasper.view.JasperViewer应用来查看。在其main()方法中它接受包括报表的文件的名字来观察。6、打印报表产生的报表可使用dori.jasper.engine.JasperPrintManager类暴露的静态方法printReport(),printPage()或者printPages()来打印。7、导出到pdf,html或者xml格式在已经填充一个报表后,我们可以通过使用dori.jasper.engine.JasperExportManager类exportReportxxx()方法来以pdf,html,xml格式导出它。三、技术指南简述 1、报表设计 一个报表设计描述一个被JasperReport引擎用来分发动态内容到打印机,到屏幕或者到web的模板。存储在数据库中的数据根据报表设计被组织达到准备到打印,页面导向文档。报表设计是在xml文件中定义并且必有一个特别的结构。此结构是在一个由JasperReports引擎一起提供的dtd文件中声明的。然后比编译xml文件,为了在后面的报表填充操作中使用他们。 为了创建一个简单的报表设计,我们不得不编辑一个xml文件,但是繁琐的xml标记和功能api在提供强大动态及可扩展开发的同事也带来了超强的复杂性,这就需要有个简单的报表设计工具,IReport就是为此而诞生的。虽然用IReport可视化工具可能会损失一些动态生成报表的灵活性,但是大多数情况下,我们只需要静态的设计框架和动态的装填数据而很少需要动态的报表框架,所以和我们所获得的方便相比,这些小小的损失简直可以忽略不计了。当然如果确实需要,且看到下面的东西你不晕的话,自己动手确实可以获得所需的灵活性。报表的动态对象: 1、参数 参数是传入到报表填充操作的对象引用,参数可以用sql查询 2、数据源 JasperReports使用了一个叫JRDataSource的借口来支持各种来兴的数据源 3、字段 报表字段代表从数据源映射数据到报表产生程序的唯一途径 4、表达式 表达式是JasperReports的强大特点,它们可被声明的报表变量使用来执行各种计算。 5、变量 报表变量时一个表达式开始时建立的特殊的对象。 6、报表区 在建立一个报表设计时,需要定义报表区的内容和布局。报表设计的整个结基于一下报表区:表头文字,title只在第一页出现。:报表的一些公共要素,比如页码,创建时间,创建人等。:放置列的名称,非列数据:每个表的内容可能需要根据某个属性进行划分显示内容和计算内容,比如希望以月份为单位每组分开显示销售记录,那么就可以定义一个组(组的定义参考后文),groupHeader就是放置组说明或是组标志最好的地方。 :放置需要循环输出的数据:放置组的统计或者说明:放置列级别的统计值或者列的说明:放置页级别的统计值或者页的说明:需要对几页的统计值 7、组 组代表了在报表上组织数据的一个灵活的方式,当我们填充一个报表时,JasperReports引擎可字段检测组成表达式 和等是否完整。 8、字体和Unicode支持 可以用任何语言来创建你的报表。 9、Scriptlets Scriptlets是java代码序列,通过scirptlets,用户可以影响被报表变量存储的值。 10、子报表 子报表是报表产生工具的重要特征,它允许更复杂报表的创建并简化设计工作。IReport图形化的辅助工具,与JasperReport结合完成动态报表的开发。iReport是为JasperReport设计的强大的,直观的,易于使用的可视化报表设计器,采用纯Java开发。这个工具允许用户可视化编辑包含charts、图片、子报表等的复杂报表。iReport 还集成了JFreeChart图表制作包,允许用户可视化地编辑XML(JasperDesign)文件。用于打印的数据可以通过多种方式获取包括:JDBC, TableModels, JavaBeans, XML,Hibernate(支持HQL查询语言), CSV等。它支持多种输出格式包括:PDF,RTF,XML,XLS,CSV,HTM。BIRT1、BIRT (Business Intelligence and Reporting Tools), 是为 Web应用程序开发的基于 Eclipse 的开源报表系统,特别之处在于它是以 Java 和 J2EE 为基础。BIRT 有两个主要组件:基于 Eclipse 的报表设计器,以及部署到应用服务器上的运行时组件。2、BIRT优势:开源、可视化操作、显示与逻辑分离、强大的统计分析能力3、BIRT可以实现的报表格式:列表、图表、混合报表、交叉表、信件文档4、一份报表包括BIRT包含四个部分:数据、数据转换、业务逻辑、表现形式数据:数据库、Web 服务、Java 对象,这些都可以作为 BIRT 报表源。BIRT 的 ODA(Open Data Access) 框架允许任何人构建新的 UI 以及运行时支持任何类型的表格式数据,单一报表可包含从任意多个数据源获取数据。数据转换:报表通过对数据的分类、统计、过滤以及分组来适应用户需求。当然,数据库能实现这些功能,当遇到普通文件和 Java 对象时 BIRT 必须以 simple 数据源方式处理。BIRT 允许复杂的操作,比如总合分组、整体共计的百分比,等等。业务逻辑:真实世界的数据很少提供你理想的结构良好的报表。许多报表要求用具体逻辑把原始数据转换成用户的有用信息。如果该逻辑仅仅用于该报表,你可以用 BIRT 的 JavaScript 脚本支持。如果你的程序中已包含这些逻辑,你可以调用已有的 Java 代码。表现形式一旦数据准备好了,你可以在很大的范围内选择表现形式。表格、图表、文字等等都可以。单一数据集可以有多种方式表现,而单一报表可以表现多个数据集。数据定制报表通常为要表现的数据添加业务逻辑。BIRT 提供多个工具来完成这一操作: 栏位计算数据库为存储组织数据,但这些数据通常为结合表现层而预先整理好。栏位计算让你能定义基于业务逻辑的附加数据集栏位。这种逻辑是一个简单的语法、脚本或调用一个已有的 Java 逻辑。 输入以及输出参数许多数据源都支持参数:在查询时传入或传出数据的能力。比如,SQL Select 语句可包含输入参数。存储过程既有传入又有传出参数。 栏位元数据当数据源提供的名字是 unintuitive 的,你可以提供栏位别名。 过滤 有些数据源,尤其是 SQL,提供良好的内置过滤特性。然而,有些数据源(单纯的文件,应用程序对象)却没有提供过滤特性。另外,过滤器条件是定义在脚本或 Java 代码中的。你可把过滤器定义为报表的一部分,BIRT 引擎会自动调用它们。 脚本化数据集 有些报表需要访问专门或不常用的数据。你可以在 Java 或脚本创建访问,利用脚本化数据集可在报表中集成这些逻辑。条件格式化:有些报表有着固定的格式,其他的却需要条件格式化。例如,某报表列出了交易记录来表现不同的销售与利润之比。或者,一个客户服务报表要按照不同规则进行色彩显示。BIRT 提供多个条件格式化特性:条件可见度 你可以根据数据隐藏报表元素。在上述的交易报表中,你可以创建销售和交易收入两部分,接着隐藏报表指定记录中不需要的部分。 值映射 数据库数据通常使用代码值:M/F 代表男性或女性,1/2 代表销售和收入,等等。值映射让你定义一个从数据库值到显示值的映射。例如,我们可把值“1”对应到“Sale”,把“2”对应到“Return”。 加强 简单的标识可让你对特定报表套用样式。例如,在客户服务报表中,我们可以使用绿色表示上一的计划,红色表示下一计划。脚本BIRT 提供基于 JavaScript的脚本。JavaScript 经常作为客户端脚本语言,但是它也可以用于用于表达业务逻辑。特别的,JavaScript 能与你的现有 Java 逻辑进行良好集成,能非常轻松地从 BIRT 报表调用业务逻辑。 BIRT 提供从 JavaScript 对象访问报表对象模型(Report Object Model)的整套方案:同时表现报表设计和运行时的状况,允许报表的完全控制处理甚至最复杂的报表格式化工作。项目管理BIRT 集成了 Eclipse 项目管理特性来组织相关报表。BIRT 也可以与 Eclipse CVS 协作进行源码管理。BIRT 的 XML 报表设计格式让它能容易的比较两份报表,或者两个不同版本的相同报表,并跟踪变更。 样式 任何设计 web 页面的人都知道有时会反复使用相同的样式。CSS 允许 web 设计者从内容中提取样式信息,并复用样式。 BIRT 提供类似的特性。当然,BIRT 样式也是基于 CSS 的,这样使得网页应用开发人员能容易得设计 BIRT 表现形式。BIRT 样式可堆叠,允许你在一个地方设置样式后套用到所有报表或报表的一部分或单一报表中。 库 典型的应用中会包括许多有关联的报表。一个简单的客户应用将包括一个按照字母排序的客户列表、按照地理位置分类的客户群,为客户指定的销售代表,客户身份筛选等等。总之,用户不停的地变化报表以解决具体业务需要。这样一来,最终的报表应用将包含多组相关报表。相同的数据源、样式、业务逻辑、报表条目。将来的 BIRT 版本将包含组织这些共享资源的支持库。这些库可包含任何报表元素,比如样式、数据源、报表条目、脚本等等。国际化全世界都可以访问你的 web 应用程序。BIRT 为国际化和本地化提供良好的支持。 文本本地化 你可以建立一份把字符串自动变成用户本地语言显示的简单报表。所有的表单和报表文本都能以标准的 Java 本地化规则进行翻译。在运行时,BIRT 使用资源 key 找出文本的正确翻译。 本地化 BIRT 提供 locale-aware 格式化数据,意味着对于美国用户的日期数据可以以 mm/dd/yy 的格式出现,而欧洲用户则是 dd-mm-yy 格式。 动态格式化中文文本非常紧凑,德文有时又有点冗长,而英文正好是中等大小。BIRT 自动调整报表条目的大小来适合其中的内容,避免每次翻译都要进行报表测试。扩展性报表应用程序的范围是十分庞大的,BIRT 团队不能为每个应用提供很具体的特性。可利用 BIRT 脚本来扩展 BIRT,另外还可构建 BIRT 扩展插件到 BIRT 中。数据访问BIRT 提供 ODA(Open Data Access) 框架来支持自定义数据访问方法。数据访问的范围还包括一个获取数据的运行时组件。也包括构建自定义查询的自定义设计时 UI。例如,打包后的应用程序可以让 ODA 构建数据访问 UI 并运行在自己的数据模型中。输出格式BIRT 2.3.0 支持输出到 HTML,PDF,Excel、RTF(Rich Text Format)、SVG(Scalable Vector Graphic)、图像、等等。BIRT 在今后会提供更多输出格式。开发者还可利用 BIRT 引擎接口添加转换器以达到目的。FinereportFineReport报表软件是一款纯Java编写的企业级web报表软件工具。它能够全面支持主流的B/S架构以及传统的C/S架构,部署方式简单而灵活。FineReport提供了易用且高效率的报表设计方案,采用主流的数据双向扩展,真正无编码形式设计报表;强大的报表展示功能,并且提供完善的报表权限管理,报表调度管理。FineReport报表软件具有完备的报表填报功能,支持多级汇总填报。有了FineReport报表,在软件开发过程中,可以革命性的加快开发速度,提高软件的稳定性;在软件交付后,可以大大的降低维护难度,提高最终用户的满意度。开发出的软件可以做到随需应变。独特优势:报表设计器简单高效 类Excel的界面使用户不需任何额外学习成本,轻松的拖拽数据,就在一两分钟内完成报表制作。 报表展现随需而变 报表软件支持多数据源,无论数据源结构如何来源多少,客户都能按照自身需求,制作任意样式的报表模板。 报表表单零编码 零编码零客户端的表单方案,实现了业务人员自定义报表表单的梦想。FineReport作为主流java报表工具,虽然不像润乾报表那样疯狂在网络上发文章宣传,但在产品功能,性能和易用性方面积累,已经成为中国java报表技术领跑者。于是互联网上流行,“南帆软,北润乾”。来形容中国java报表市场的格局。 优点之一:类excel的java报表设计器首先中国报表更多是表的样式,所有用excel这种风格报表设计更加方便。然后FineReport不像其他报表只是从单元格命名,编辑区格子等形似excel。但FineReport汲取excel简单易用核心精神,成为编辑效率最高报表工具。 优点之二:纯java报表设计器无缝导入导出excel水晶报表,jasper报表虽然能导出excel,但是不能再编辑利用,而FineReport报表工具完全可以解决客户需要对导出Excel再编辑问题。导入excel后,可以直接利用已经编辑好报表样式,然后绑定数据,就能完成报表制作。 优点之三:支持多数据源报表 FineReport报表工具,不断能从同一个数据库取数展现在一张报表,而且能从不同数据库中取数展现在一张报表上。 优点之四:报表的处理行列对称以往纯java报表工具和非纯java报表工具对竖直方向的处理很能强,水平方向处理能力很弱,造成制作交叉报表非常麻烦,特别是要重复左表头,或者上表头是动态和静态结合的。FineReport报表对竖直方向处理和水平方向处理一样,彻底解决这个问题。 优点之五:自定义规则分组一般纯java报表工具和非纯java报表工具如果遇到需要把数据中存储年龄按照:0-15、15-40、40-100三个范围分组就无能为力,需要对数据预处理。然后穿给报表,FineReport就需要使用设计器就能搞定。 优点之六: 填报数据回填功能在传统报表工具中是没有的,但在中国市场是不必可少工具。这个也是FineReport报表工具打败国外报表工具有利的武器。 优点之七:Flash打印方案Java报表工具的主要打印方案Activex打印,pdf打印和Applet打印,都是伪BS打印,浏览器打印不能精确实现打印,FineReport报表独创的Flash打印出现彻底解决这些问题,并且实现报表跨浏览器打印。 其实总的讲,报表功能强大,性能稳定,报表制作效率高正是FineReport报表工具的核心。下面也要谈一谈java报表工具-FineReport的缺点: 缺点之一:FineReport定位基础报表工具。权限、用户、门户这类东西报表管理和应用功能,FineReport报表开发很少,认为应该由开发商或其他系统来实现的, 缺点之二:目前只提供CS的java报表设计器,不能做到BS的报表设计。 除此之外,FineReport报表目前不能要解析xml格式数据,需要使用java程序数据源。 价值评估:对于JAVA应用,FineReport应该说是功能比较全面、性能比较强的,而且其报表设计效率确实很有优势。如果对于大型的JAVA应用,应该说是最理想的java报表工具。控件的事件 在控件设置的事件编辑中,FineReport报表工具事件编辑共有七种触发事件:编辑前、编辑后、编辑结束、点击、初始化后、状态改变及回调。 其中编辑前、编辑结束只在表单填报时起作用。 编辑后、点击、初始化后、状态改变等在表单填报及参数界面上都可以使用。 1. 编辑前该事件是在填报时进入编辑状态后被触发简单例子1.1打开FineReport报表工具,新建一张空白报表,然后设计成如下格式 1.2设置报表填报属性,java报表,在此不做赘述,具体设置方法可参考填报专题相关章节1.3定义单元格填报属性将B2单元格控件类型设置为文本,并在B2控件中添加编辑前事件,在function fun()函数中添加一段JS代码: alert(事件编辑前触发);如下图所示控件的事件 在控件设置的事件编辑中,FineReport报表工具事件编辑共有七种触发事件:编辑前、编辑后、编辑结束、点击、初始化后、状态改变及回调。 其中编辑前、编辑结束只在表单填报时起作用。 编辑后、点击、初始化后、状态改变等在表单填报及参数界面上都可以使用。 1. 编辑前该事件是在填报时进入编辑状态后被触发简单例子1.1打开FineReport报表工具,新建一张空白报表,然后设计成如下格式 1.2设置报表填报属性,java报表,在此不做赘述,具体设置方法可参考填报专题相关章节1.3定义单元格填报属性将B2单元格控件类型设置为文本,并在B2控件中添加编辑前事件,在function fun()函数中添加一段JS代码: alert(事件编辑前触发);如下图所示1.4保存并填报点击设计器中的填报预览,进入填报的编辑状态,效果如下此时当光标移至姓名单元格进行编辑时,编辑前事件被触发。2. 编辑后该事件在表单填报及参数界面上都可以被触发。对于文本、数字控件,当输入任何字母或文字标点后触发;对于下拉框,复选框等控件,当选择下拉选项后被触发,具体设置方法类似于编辑前事件,在这不再赘述。3. 编辑结束该事件只有在填报确认单元格输入内容如键盘输入回车后才能被触发具体设置方法类似于编辑前事件,在这不再赘述。4. 点击该事件是在点击按钮,或点击下拉框、下拉树、下拉复选框等之后被触发简单例子4.1新建报表4.2使用默认的参数界面,如图4.3控件设置右击按钮控件,选择控件设置,打开控件设置面板,添加点击事件,在function fun()函数中添加一段JS代码: alert(点击我就触发该事件啦!); 如下图所示4.4保存并预览点击设计器中的分页预览,点击查询按钮,此时点击事件被触发,如下图5. 初始化后该事件是按钮控件所特有,在点击分页预览或填报预览后初始化界面时被触发简单例子5.1新建报表5.2使用默认的参数界面,如图5.3控件设置右击按钮控件,选择控件设置,打开控件设置面板,添加初始化后事件,在function fun()函数中添加一段JS代码: alert(初始化后就触发该事件啦!);如下图所示5.4保存并预览点击设计器中的分页预览,就可以看见如下图所示效果6. 状态改变该事件为单选按钮、复选框组控件所特有,在其状态改变时被触发简单例子 6.1定义报表参数p1,并设置其默认值为男6.2在参数界面上,定义参数p1的控件属性,如下图6.3添加事件右击p1的控件,选择控件设置,打开控件设置面板,添加状态改变事件,在function fun()函数中添加一段JS代码: alert(单选按钮的状态改变啦!);如下图所示6.4保存并预览点击设计器中的分页预览,单选按钮默认选中“男”,当点击“女”时就会触发状态改变事件,如下图7. 回调该事件为文件控件所特有,是在上传完文件之后触发该事件简单例子7.1新建报表,定义文件控件,如下图:7.2添加事件点击文件控件,打开控件设置面板,添加回调事件,在function fun()函数中添加一段JS代码: alert(回调事件触发啦!);如下图所示7.3保存并预览点击设计器中的填报预览,上传文件结束后,触发回调事件,如下图参数控件的取值与置数在使用web报表的参数界面中,最常见的就是获取参数的值进行运算或者将其作为另一个参数的判断依据,在FineReport报表工具网页脚本中,也提供了获取参数控件实际值,显示值并给参数置数的方法。/取当前控件的实际值var ParaValue = this.getValue();/通过参数控件名称来获取参数控件实际值var ParaValue = this.options.form.getWidgetByName(ParaName).getValue();/通过argumentsi获取当前参数控件显示值var DisplayedValue = arguments0;/通过控件A获取控件B的显示值var DisplayedValue = this.options.form.getWidgetByName(ParaName).options.items0.text;/获取某个参数控件,并给其置数(实际值)var Para = this.options.form.getWidgetByName(ParaName);Para.setValue(Value);实例:该实例通过添加参数控件的编辑后事件来实现用一个参数控制另一个参数,如用参数username来对state置数,web报表,username为下拉框自定义的几个用户名,state为单选按钮组表示状态1和2。当username有值时,state的状态置为1否则置为2。1. 模板设计1.1新建报表1.2定义参数在菜单栏中选择报表|报表参数,打开参数定义面板,定义参数state和username,如下图 1.3参数设计打开参数设计界面,参数控件布局如下 l username控件类型为下拉框,数据自定义,报表,如图 l state控件类型选择单选按钮组,数据也为自定义,如图 1.4添加事件在username的事件编辑中添加编辑后事件,JS代码如下var state= this.options.form.getWidgetByName(state);var username = this.options.form.getWidgetByName(username).getValue();if (!username) state.setValue(2);else state.setValue(1);该段代码是用来对state参数置数,当username为空时,!username为真,java报表,此时将state置数为2,否则当username有值时,将state置数为1,如图所示 2. 保存并预览点击设计器分页预览,当username有值是,state置为1 注意:state无法通过username置数为0,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年喀喇沁左翼蒙古族自治县面向社会公开招聘社区专职工作者15人备考题库及答案详解(名校卷)
- 客户信息管理标准化工具及系统
- 教育行业在线课程采购合同
- 勇气与责任的讨论议论文5篇范文
- 2025年电子商务专员实操考试试题及答案解析
- 2025乡村医生考试题库含答案
- 餐饮管理公司薪酬管理体系设计方案
- 2025特种作业煤矿安全作业题库附答案(综合题)
- 2024园林绿化作业人员通关题库附答案详解
- 2025年环境监测与污染防治知识考察试题及答案解析
- 《云南省上拉式外脚手架施工技术标准》
- 2025年团员入团试卷及答案
- 心理咨询室建设解决方案
- 多联机空调安装施工方案
- 期末押题秘籍01 必修1必背教材知识点-人教版高一《生物》上学期期末复习终极押题
- 2024年中国中信金融资产江西分公司招聘2人笔试备考题库完整参考答案详解
- 2024-2025学年上海市浦东区七年级(上)期中英语试卷
- 肿瘤心脏病学课件
- 项目管理教材
- 分布式光伏系统接入配电网的安全防护方案
- 23《月迹》 课件 统编版 小学语文五年级上册
评论
0/150
提交评论