目 录 文档修改记录
1. 文档说明
为了让报表做起来更加方便,更快速。 2. 阅读对象
公司从事j2ee软件开发的相关人员。
3. 概要
1.FineReport是一款集数据展示(报表),数据查询(参数)和数据录入(填报)功能于一身,用来辅助开发基于BS软件系统的工具软件。 2. FineReport由设计模板的设计器和解析模板的服务器组成: ①设计器: FineReport设计器的界面简单易用,熟悉Microsoft Excel的用户不需任何额外学习成本。一般用户也能在阅读FineReport提供的帮助文档后快速掌握设计器的使用。 ②服务器: FineReport服务器主要用来读取和解析设计器制作好的模板,并将模板转换成html页面,方便用户通过IE, Firefox等浏览器查看,修改和打印数据。同时FineReport服务器内置了强大的缓存机制,集群机制,支持超大数据量的运算,支持大数量用户的并发处理,并创新性采用flash技术完美支持零客户端精确打印。 4. 安装
从FineReport官方网站下载可执行的自解压安装包,安装过程中有安装选项可以让用户根据需要选择要安装的部分,按照步骤安装就可以了;如果您曾经安装过其他版本的FineReport请卸载后再运行安装程序 5. 报表模板制作
① 在报表设计之前,首先要添加报表所展示的数据的来源,当然这些来源并一定是数据库,也可以是程序数据源,文本数据源等② 在服务器下的定义数据连接,建立要连接的数据库
③ 新建报表增加数据集1数据集的增加有两种方式: i. 服务器数据集:是针对整个系统的一个数据集,适用于每个报表
ii. 报表数据集:针对某一个报表的
④ 绑定数据列a) ⑤ 分页设置,单元格点击右键选中条件属性—分页—行后分页⑥ 样式的设计 1取消FineReport自带页面样式,选择用的按钮2指定页面设置 3右击单元格选择样式-指定单元格样式 ⑦ 显示值的设置1双击单元格选中高级2让数据除以1000显示 3根据原有数据通过sql查询显示 4自动补齐8位显示到表格 ⑧报表顶端加总数,有如下函数: a) count(ds1.select(colname))求总个数 b) count(ds1.group (colname))分组之后求个数 c) sum(ds1.select(colname))该列的总和 d) average(ds1.select(colname))平均值 ⑨ 列表数据显示,有如下函数a) ds1.select(colname)列表形式 b) ds1.group (colname))分组模式 c) ds1. sum (colname))汇总求和 d) ds1. average(colname)汇总平均值 e) ds1.max(colname)最大值 f) ds1.min(colname)最小值 g) 对应的界面是 数据设置:如图 ⑩ 参数的设计 1参数界面的设计 右键选择控件设置 2下拉框 从数据库中查询得到数据填充 3写死的下拉框 默认数据的指定 1一般默认数据:SQL("LpDB","SELECT * FROM CUSTOMER",2,1)2列的1行
2时间的默认– 在单元格中直接写 – =DATEDELTA($endDate, if(tointeger(WEEKDAY($endDate)) == 1, 0, 1 - WEEKDAY($endDate))) 显示当前日期所在星期的星期一 – =DATEDELTA($Date, if(tointeger(WEEKDAY($ endDate)) == 0, -7, 0 - WEEKDAY($Date))),返回的是查询日期所在周的第一天 – =DATEDELTA($Date, if(tointeger(WEEKDAY($Date)) == 0, 0, 7 - WEEKDAY($Date))),返回的是查询日期所在周的最后一天 – =DATE(YEAR(TODAY()),MONTH(TODAY())-1,1),返回的是当前时间上个月的第一天 – DATE(YEAR(TODAY()),MONTH(TODAY())-1,DAYSOFMONTH(MONTHDELTA(today(),-1))),返回的是当前日期上个月的最后一天
12.提交按钮 点击提交时的js校验 • 在function fun(){}函数中写入如下JS语句: • var start = this.options.form.getWidgetByName("begintime").getValue(); • var end = this.options.form.getWidgetByName("endtime").getValue(); • if( start == ""){ • alert("错误,开始时间不能为空"); • return false; • }; • if(end == ""){ • alert("错误,结束时间不能为空"); • return false; • }; • if( start > end){ • alert("错误,开始时间不能大于结束时间"); • return false; • }
13.Web属性 1.标题
2.页面预览设置
6. 填报模板制作
1.新增内置SQL:打开报表|报表填报属性。点击左上角的增加按钮,新增一个内置SQL,该项目的名称可以自由定义。这里我们保留默认的内置SQL1。 2.选择数据源:新增内置SQL之后,右侧会对应出现属性编辑面板。在最上方表区域,选择数据库为FRDemo,模式留空(模式即数据库的schema,一般与数据库相关,例如oracle当中就会显示用户列表。)表选择SALES_BASIC_FORM(在未完成本章操作时,该表当中无数据记录)。意即这个内置SQL中,用户填写了数据之后,指向的数据表即为这里选定的表。如下图 3.菜单报表中选中—报表填报属性 ,如图
4.操作步骤1.智能添加字段:点击右侧中间的智能添加字段,在跳出的对话框中,列出了 tb_Member_SpecialMaximum 表中所有的字段,并默认将所有选中。一般来说,我们在设置填报属性的时候,大多数的字段都可能会用到,如果不是所有字段都有数据回填进去,则将不需要的字段勾选掉即可
2.智能添加单元格:点击智能添加单元格,原本报表填报属性被隐藏,跳出单元格定义对话框,根据光标选中的格子依次将数据列和格子进行对应,无需手工输入。如下图
3改变单元格内容,以满足要求,如图1.显示值是名称,提交到数据库时是编号
2.输入的为0-8位数字提交到数据库时自动补齐8位
3.输入为数字,存数据库乘以1000
4.完成填报报表----路径与列表报表区别在于 多了op=write
|
|