江西做酸辣粉到哪里学:FineReport帮助文档——制作经验分享

来源:百度文库 编辑:偶看新闻 时间:2024/05/09 08:25:52
目  录
1.. 文档说明.. 4
2.. 阅读对象.. 4
3.. 概要.. 44. 安装... 5
5.报表模板制作.. 5
6. 填报模板制作.. 24
文档修改记录
修改时间
修改人
修改说明
审核人
改动后版本号
2010-9-22
韩远磊
创建文档
V1.0.0
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