FastReport.Net 常用功能总汇

 

一.常用控件

文本框:输入文字或表达式

表格:设置表格的行列数,输入数字或表达式

子报表:放置子报表后,系统会自动增加一个页面,你可以在此页面上设计需要的报表。系统在打印处理时,先按主报表打印,当碰到子报表时会自动转入子报表的页面进       行打印处理,完成后继续执行主报表打印的工作,所以我们又称之为嵌套报表。

复选框:根据布尔表达式是否为ture来显示是否 √(如性别男女)

条形码:绑定扫描码(如静滴单),一般Type为Code128

交叉表:Matrix

页面设置:设置纸张大小及页边距

边框设置:设置是否显示上下左右边框以及边框线条的设置

边框宽度:下拉三角可以选择边框宽度设置

二.常用报表栏

报表标题区(ReportTitle):仅在第一页显示在纸张的上部。一般用于打印报表的标题等信息。

报表合计(ReprotSummary):仅显示在所有数据的最后末尾。一般用于打印统计信息等。

页眉(PageHeader):显示在每页的最上部。通过设置你可以让它置于报表抬头之上或者之下。一般用于打印页眉信息等。

数据区(data):绑定数据源显示数据。

数据首(Header):显示在所有数据源的最上部,仅打印一次。一般用于显示相关摘要信息,与页眉的区别是当该页无数据时,数据首的内容不显示且仅显示一次。

数据尾(Footer):显示在所有数据源的最下部,仅打印一次。一般用于显示所有数据的合计信息。

栏首(ColumnHeader):显示在每页数据源的上部,它在每页均显示。因此一般用于打印数据源字段的栏目信息。

栏尾(ColumnHeader):显示在每页数据源的下部,它在每页均显示。一般可用于统计显示每页数据的页合计信息。

分组页眉(GroupHeader):用于显示分组数据,在每一个分组开始显示。

分组页脚(GroupFooter):与群组首一一对应。一般用于显示分组数据的统计信息。

页脚(PageFooter):显示在每页的最底部。一般用于打印页序等信息。

三.常用功能

1.添加报表栏

将光标置于“设置报表拦”弹出“段编辑器”,再选择添加或删除段。

添加段的时候要注意:

1)选择添加段的位置,如想添加子数据区,则选中要添加父数据区,点击添加“数据区”即可,如图所示:

2)若添加的数据区与原数据区平级,任选段(除数据区外),点击添加“数据区”即可,如图所示:

2.添加数据源

选择菜单栏的“数据”,在下拉框中选中“选择数据源”,弹出“选择报表数据”框,里面会列出已经传出的数据源,勾选需要的数据源,点击确定,此时界面右边“数据”列表中即显示当前所选中的数据源,选中数据源,右键选择“查看数据”,即可显示当前数据源中所含有的数据:

3.添加系统变量

对于部分变量可能取自当前系统,如时间,页码,序号等,此时选择系统变量中相应的变量即可,如图:

4.添加汇总

对于一些报表,需要在数据尾添加合计行,此时需要手动添加合计,弹出汇总项编辑器,再在汇总项编辑器中添加汇总数据源。

在汇总名称一栏可以自命名一个合计名称;

在“数据列或公式”中可以选择汇总的数据源;

在“计算段中每一列”可以选择参与汇总的数据区;

在“计算满足下面条件的行”中可以做过滤,在写total时会出现计算某种类型的和,比如计算总人次分在职和退休之和,此时在写total时就需要写限制条件进行过滤。如[Table1.GRXZ]=="1";如图:

5.添加过滤、排序、分组

双击数据区,弹出“编辑数据段”,可以进行数据源的选择、排序、过滤。如图:

四.常用属性

1.页面设置

用于显示总的页数(TotalPages),例如:页脚显示 第1页/共20页。系统第一遍扫描报表时计算出TotalPages,然后第二遍实际 生成报表。如果不使用Double pass,则TotalPages返回0,所以必须设置report的属性doublepass为true;

设置方法:点击报表树,单击报表树最顶端图标,点击属性,选择doublepass为true;也可直接在属性框中选择report,进行相关属性设置!如图:

2.打印设置

对于套打模板,样式在纸张上已经固定了(如处方笺、收费发票),只需要按照原定的样张将数据填充进去,在绘制的时候,需要用直尺良好尺寸,为了能够有一个更好的效果,一般把页面上已经存在不需要再打印出来的也画出来,但是需要设置属性“printable”为false:表示打印不显示,若想在预览的时候就不要看到那些不需要打印的,则需设置属性“Visible”为false:表示预览不显示。

3.格式设置

报表中有的数据需要按照规定的格式去显示,如需要把时间的格式改变一下,选中当前数据,右键单击,点击format(或在属性栏中选择 format),在弹出的选择格式框中选择需要的格式。若format中没有需要的格式,则需要在custom中自定义,比如我需要把时间设置为 2012-09-09 11:22:23,此时可以在custom中填时间显示格式:yyyy-MM-dd HH:mm:ss。注意有的需要显示上午还是 下午,表示上午下午的格式是tt,具体相关设置可以参照已存在的format进行编辑!如图:

4.显示设置

对于有些数据,名称较长,在行高固定的情况下,系统默认为自动换行,此时两者均不能完全显示不能完全显示,比如,此时按照客户的需求,若要求自动截断,则设置“WordWrap”为false(即不自动换行),若要求全部显示,则需要让该数据有按照单元格大小自动缩放功能,设置属性“AutoShrink”为fontsize或者fontwith。

5.边框设置

边框可以通过工具栏设置,此时设置边框是根据外界框的大小来显示,下边框的设置也可以通过设置下划线,此时下边框的长度是根据数据显示的长度来决定,还可以设置属性“underline”为true,此时也是根据边框的大小来显示的。

6.表格设置

1)表格的行列数:通过属性设置ColumnCount(列)和RowCount(行)设置。

2)合并/分割单元格:选中需要合并/分割的单元格,右键单击,选择“合并单元格”/“分割单元格”,如图:

3)插入行列:选中某行、某列,右键单击,选择需要插入的位置,如图:

五.常用代码

1.在文本编辑器中编写

Fastreport软件自身带了很多功能实现数据的转换,直接在编辑框中即可实现。

常用的功能有:

选择语句IFF;控制语句Switch;

截取字符串语句SubString,在text列表中选择SubString

截取时间语句Date&Time:

算数运算语句Mathematical:常用的有Abs(取绝对值)。

注意,在运用这些function的时候,在文本编辑器右下角会显示当前功能的用法规则,如图:

若当前数据类型不满足规则,则需要利用上面的转换语句,将其转换成与规则相符的数据类型,才能利用这些function,否则会报错。

2.在code区编写

有些数据的转换在编辑器中不能直接实现,需要在code区域编写代码。写代码之前需要定义到相应的事件上:选中需要写代码的数据所在的报表拦,在属性设置中点击,在事件中双击需要用到的事件,自动跳转到code区,且会出现一行代码,类似于private void GroupHeader1_BeforePrint(object sender, EventArgs e)

{

}

报表中常用事件有BeforePrint,AfterPrint。

3.常用代码

1)Data1.InitDataSource();//数据初始化,用于数据跑两遍

2)有的需要把年月日进行分离显示,此时需要选取时间并选择只显示时间的某部分,比如某个DateTime2类型的参数值为20120919,现需 要将其年月日分开,分别以__年__月__日显示,需要利用fastreport提供的功能进行分离,即1中的方法,但是注意此种方法只能用于数据类型为 datetime的数据;对于非datetime型的数据,可以写代码取位数或者进行强制转换,以string为例:

private void ColumnFooter1_BeforePrint(object sender, EventArgs e)

{

string  tbrq=  ((String)Report.GetColumnValue("Table1.TBRQ"));

if (!String.IsNullOrEmpty(tbrq))

{

Text9.Text = tbrq.Substring(0,4) + "年" + tbrq.Substring(4,2) + "月"+tbrq.Substring(6,2)+"日";

}//字符串型用SubString,Substring(0,4)表示从第0位开始,取出四位作为年。

3)小数位的控制:可以用format对所有数据的小数位进行控制,但只对于数值型的数据才有效,但是对于string型的则需要用语句进行实现,如:

decimal sl= ((Decimal)Report.GetColumnValue("dtfee.Quantity");

Cell51.Text=sl.ToString("0.00");// "0.00"若不填则按照默认值显示,后面多少个零显示出来的数据即为有 多少个小数;对于数量,有时要求要求有小数时则显示小数,无小数时则显示整数,此时只需要将"0.00"改为"0.##"即可,##的个数也是可以自定义 的,表示显示的最多的小数位。

特殊功能汇总

一.打印中实现空表格填满剩余的空行,达到指定的行数。

1.单页显示指定行数

为了能让数据在未填满的前提下,该页也能显示指定的行数N,需要在数据区(data)添加子报表(child),且需要设置其属性最少数据行(CompleteToNRows)为N。

2.按照数据行数显示指定行数

按照1的设置,预览的时候会发现该操作只会控制首页满足条件,当数据的行数超过一页时,后面页均按照有多少数据显示多少行,此时需要写代码控制。

如:

private void PageHeader1_AfterPrint(object sender, EventArgs e)

{      if (Engine.FinalPass)

{

Child1.CompleteToNRows = ((Int32)Report.GetVariableValue("TotalPages")) * 20;

}//按照总页数*20来控制CompleteToNRows。

}

此时报表拦中的child区CompleteToNRows设置为1,如图:

二.本页合计和本期合计

1.本页合计

在每页均会显示,且统计当前页相关数据的和。此时勾选“打印后重置”项,再将合计项移到相应的位置即可。如图:

2.本期小计

在每页均会显示,但是指在数据的最后一页显示合计的数据,统计当前报表的所有数据和;需要写total来计算当前值,只是本期小计中打印后重置这个属性不勾选,由于本期小计只在最后一页显示数据,其他页面上数据区均为空,需要代码控制,例如:

private void ColumnFooter1_BeforePrint(object sender, EventArgs e)

{

if(((Int32)Report.GetVariableValue("Page"))!= ((Int32)Report.GetVariableValue("TotalPages")))//设置显示本期小计需要的条件,即当前页与总页数相 一致的时候,开始显示数据,否则为空。

三.交叉表的用法 (演示)

参照模板    收费员结账汇总报表.frx

注意交叉表的行列宽度不需设置,自动按照数据长短进行设置。

四.套打模板(演示)

参照模板   门诊挂号发票(套打).frx,处方笺(综合).frx

挂号发票的模板

注意,在周浦项目中,由于处方笺模板不一样,在医生工作站会根据选择调用不同的模板,此时是将几种不同的模板组合在一块,再根据标志调用相应的模板。

五.超链接模板(演示)

报表&单据导入

一. 单据导入

单据即由开发直接传入数据源,在模块中实现单据的绘制。

步骤:找到相对应的模块,点击打印,进入空白模板,再进行设计。对于已经绘制好的模板,可以直接导入,但注意,必须在本地把数据源清空,再导入,否则将会出现data区重复,导致命名出现异样,如data11。

有些模板即使清空数据源导入到模板,仍然会报错,则需要重新新建一个模板,再将原模板的东西复制进去即可。

相关联的表有:select * from Common.ReportTemplate

二.报表导入

报表即由存储过程实现,然后再对应到相应的存储过程,去存储过程中的数据。

步骤:报表管理à新建报表à填写相应的信息后保存(演示)à绘制模板

注意:填写信息时要绑定正确的存储过程,同时通过前台改变相应的界面显示效果。

添加数据源:选择sql,再选择相应的存储过程,确定即可,对于新建的模板,模板一栏不需要选择,若选择了则会调用以前存在的模板,同时改动的话也会影响以前的模板。

相关联的表有:

select * from Common.Report

select * from Common.ReportDataSource

select * from Common.ReportTemplate

select * from Common.ReportFolder

select * from Common.ReportParameter

说明:fastreport自身带有Demo,里面很多功能都是可以供大家学习参考的。

转: 尽己力,无愧于心 FastReport.Net 常用功能总汇的更多相关文章

  1. FastReport.Net 常用功能总汇

    一.常用控件 文本框:输入文字或表达式 表格:设置表格的行列数,输入数字或表达式 子报表:放置子报表后,系统会自动增加一个页面,你可以在此页面上设计需要的报表.系统在打印处理时,先按主报表打印,当碰到 ...

  2. WebStorm 常用功能的使用技巧分享

    WebStorm 是 JetBrain 公司开发的一款 JavaScript IDE,使用非常方便,可以使编写代码过程更加流畅. 本文在这里分享一些常用功能的使用技巧,希望能帮助大家更好的使用这款强大 ...

  3. AVA正则表达式4种常用功能

    正则表达式在字符串处理上有着强大的功能,sun在jdk1.4加入了对它的支持 下面简单的说下它的4种常用功能: 查询: String str="abc efg ABC";  Str ...

  4. [转]WebPack 常用功能介绍

    概述 Webpack是一款用户打包前端模块的工具.主要是用来打包在浏览器端使用的javascript的.同时也能转换.捆绑.打包其他的静态资源,包括css.image.font file.templa ...

  5. python3 字符串与列表常用功能

    一.字符串常用功能 1. capitalize(),将字符串的首字母变成大写,其余全部置为小写:如果字符串中有多个单词,也只是将第一个单词的首字母置为大写:例: >>> name = ...

  6. matlab进阶:常用功能的实现,常用函数的说明

    常用功能的实现 获取当前脚本所在目录 current_script_dir = fileparts(mfilename('fullpath')); % 结尾不带'/' 常用函数的说明 bsxfun m ...

  7. WebPack常用功能介绍

    概述 Webpack是一款用户打包前端模块的工具.主要是用来打包在浏览器端使用的javascript的.同时也能转换.捆绑.打包其他的静态资源,包括css.image.font file.templa ...

  8. JavaScript 常用功能总结

    小编吐血整理加上翻译,太辛苦了~求赞! 本文主要总结了JavaScript 常用功能总结,如一些常用的JS 对象,基本数据结构,功能函数等,还有一些常用的设计模式. 目录: 众所周知,JavaScri ...

  9. TeeChart控件的安装与常用 功能设置

    TeeChart控件的安装 TeeChart 7.0 With Source在Delphi 7.0中的安装 一.删除Delphi7自带TeeChart  1.Component -> insta ...

随机推荐

  1. 【转】 完美配置Tomcat的HTTPS

    Tomcat配置HTTPS的文章到处都有,过程也比较简单,随后文中会转一段过来. 但对于启用APR情况下报异常“java.lang.Exception: Connector attribute SSL ...

  2. UVA 10689 Yet another Number Sequence

    简单矩阵快速幂. if(m==1) MOD=10; if(m==2) MOD=100; if(m==3) MOD=1000; if(m==4) MOD=10000; 剩下的就是矩阵快速幂求斐波那契数列 ...

  3. MySQL show status命令参数

    Aborted_clients         由于客户没有正确关闭连接已经死掉,已经放弃的连接数量.   Aborted_connects 尝试已经失败的MySQL服务器的连接的次数.   Binl ...

  4. 微信小程序登录

    一. 小程序不支持cookie会话 1. 通过传递与检验3rd_session来保持会话 2. 3rd_session可以执行'`head -n 80 /dev/urandom | tr -dc A- ...

  5. js-权威指南学习笔记8

    第8章 函数 1.参数有形参和实参的区别,形参相当于函数中定义的变量,实参是在运行时的函数调用时传入的参数. 2.函数表达式可以包含名称,这在递归时很有用. 3.函数定义表达式特别适合用来定义那些只会 ...

  6. iOS MVVM 前世今生

    MVVM,Model-View-ViewModel,一个从 MVC 模式中进化而来的设计模式,最早于2005年被微软的 WPF 和 Silverlight 的架构师 John Gossman 提出.

  7. ZipFile和ZipInputSteam解压zip文件

    最近有个需求,要接受上穿的zip文件,解压后读取里面的文件(应该还有目录),提前储备一下需要的知识. 贴在博客上,有需要的可以参考. ZipInputStream解压文件: @Test public ...

  8. max-width

    #main { max-width: 600px; margin: 0 auto; } <div id="main"> Using max-width instead ...

  9. 安装MYSql Windows7下MySQL5.5.20免安装版的配置

    MySQL Windows安装包说明: 1.mysql-5.5.20-win32.msi:Windows 安装包,图形化的下一步下一步的安装. 2.mysql-5.5.20.zip,这个是window ...

  10. 利用phpcms-v9站群功能建立多个分站

    用一套CMS软件系统,做多个网站,统一管理,用户可以互通,这就是所谓的站群功能.这对于运营和维护都能节省很多时间,否则要同时调试和维护不同系统会非常吃力. 我在用PHPcms v9做了zhencms1 ...