FineReport帮助文档(Version:1.0.0)郑州华粮科技股份有限公司地址:郑州市郑东新区商务内环路28号中储粮大厦(450046)Tel:(86-0371)68085977Fax:(86-0371)Website:文档说明.........................................错误!未定义书签。2.阅读对象.........................................错误!未定义书签。3.概要...............................................错误!未定义书签。4.安装..........................................................错误!未定义书签。5.报表模板制作..................................错误!未定义书签。6.填报模板制作...................................错误!未定义书签。文档修改记录修改时间修改人修改说明审核人改动后版本号2010-9-22韩远磊创建文档V1.0.01.文档说明为了让报表做起来更加方便,更快速。2.阅读对象公司从事j2ee软件开发的相关人员。3.概要1.FineReport是一款集数据展示(报表),数据查询(参数)和数据录入(填报)功能于一身,用来辅助开发基于BS软件系统的工具软件。2.FineReport由设计模板的设计器和解析模板的服务器组成:①设计器:FineReport设计器的界面简单易用,熟悉MicrosoftExcel的用户不需任何额外学习成本。一般用户也能在阅读FineReport提供的帮助文档后快速掌握设计器的使用。②服务器:FineReport服务器主要用来读取和解析设计器制作好的模板,并将模板转换成html页面,方便用户通过IE,Firefox等浏览器查看,修改和打印数据。同时FineReport服务器内置了强大的缓存机制,集群机制,支持超大数据量的运算,支持大数量用户的并发处理,并创新性采用flash技术完美支持零客户端精确打印。3.安装从FineReport官方网站下载可执行的自解压安装包,安装过程中有安装选项可以让用户根据需要选择要安装的部分,按照步骤安装就可以了;如果您曾经安装过其他版本的FineReport请卸载后再运行安装程序4.列表报表的制作①在报表设计之前,首先要添加报表所展示的数据的来源,当然这些来源并一定是数据库,也可以是程序数据源,文本数据源等②在服务器下的定义数据连接,建立要连接的数据库③新建报表增加数据集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*FROMCUSTOMER,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校验•在functionfun(){}函数中写入如下JS语句:•varstart=this.options.form.getWidgetByName(begintime).getValue();•varend=this.options.form.getWidgetByName(endtime).getValue();•if(start==){•alert(错误,开始时间不能为空);•returnfalse;•};•if(end==){•alert(错误,结束时间不能为空);•returnfalse;•};•if(startend){•alert(错误,开始时间不能大于结束时间);•returnfalse;•}13.Web属性1.标题2.页面预览设置5.填报报表的制作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.输入为数字,存数据库乘以10005.完成填报报表----路径与列表报表区别在于多了op=write