FastReport.Net 常用功能总汇

.常用控件

 

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

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

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

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

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

              交叉表: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,里面很多功能都是可以供大家学习参考的。

转载于:https://www.cnblogs.com/zhanyi/p/5670507.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
fastreport快速上手手册 这个也是从别的地方下载的 目 录 入门 5 绪言 6 关于FASTREPORT的说明 6 FASTREPORT的历史 6 创建报表 7 数据 8 参数 8 窗体 9 处理 10 准备报表 10 举例:设计一个简单报表 11 FASTREPORT内核 14 DELPHI控件面板 15 “FastReport”页 15 “FRTools”页 17 TfrReport控件 17 TfrDBDataSet控件 20 TfrUserDataSet控件 21 FASTREPORT对象 21 “Text”对象 22 “Band”对象 26 “Image”对象 29 “SubReport”对象 30 “Line”对象 30 “CheckBox”对象 30 “RichText”对象 30 “OLE”对象 31 “Chart”对象 32 “Shape”对象 34 “Barcode”对象 34 “RichText 2.0”对象 35 创建报表 36 FastReport中的Bands 36 简单报表(列表) 39 主-从报表 40 主-细-子细报表 40 交叉报表 40 动态报表 41 bands分隔 42 分栏报表 43 带封面的报表 43 嵌套报表(子报表) 43 主-从-从报表 44 复合报表 44 包含BLOB字段报表 44 没有band的报表 44 分组报表 44 图表报表 45 设计器 46 设计器 47 使用控制键 47 使用鼠标 48 报表选项 48 页面选项 49 设计器选项 51 对象观察器 52 “插入数据字段”窗口 53 数据字典 53 表达式编辑器 58 工具栏 60 “标准”工具栏 60 “格式”工具栏 61 “边框”工具栏 62 “对齐”工具栏 62 程序设计 64 事件 65 TfrReport对象的其它事件 65 变量 66 扩展FASTREPORT函数 68 设计你自己的预览窗口 68 扩展函数列表 69 报表示例 71 报表示例 72 在报表中插入图表 72 运用OnManualBuild事件控制报表逻辑结构 74 运行时使用代码手工合成报表 76 打印可变栏数或未知栏数的报表 77 打印可变栏数和栏宽可变的报表 78 最终用户特性 80 介绍 81 对话框 81 对话框窗体控件 82 Label 83 Edit 83 Memo 84 Button 84 CheckBox 85 RadioButton 85 ListBox 86 ComboBox 86 输入信息到报表中 87 数据访问控件 88 FastReport数据感知控件简介 89 TfrBDELookupComboBox 89 TfrBDETable 89 TfrBDEQuery 92 TfrBDEDataBase 93 创建报表 94 简单的“表格式”报表 94 带参数的报表 95 TFRDATASTORAGE控件 96 连接到一个数据库 97 打开一个数据表 98 生成一个查询 99 字段编辑器 99 创建查询字段 100 查询参数编辑器 101 联接数据 101 参数对话框 102 参数对话框设计器 102 内置语言 103 脚本语言和对象 104 编写代码 105 对象修改 107 内置函数 107 对象的属性和方法 110 解释器的使用 119

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值