报表设计教程Word文档格式.docx

上传人:b****5 文档编号:8413979 上传时间:2023-05-11 格式:DOCX 页数:23 大小:1.54MB
下载 相关 举报
报表设计教程Word文档格式.docx_第1页
第1页 / 共23页
报表设计教程Word文档格式.docx_第2页
第2页 / 共23页
报表设计教程Word文档格式.docx_第3页
第3页 / 共23页
报表设计教程Word文档格式.docx_第4页
第4页 / 共23页
报表设计教程Word文档格式.docx_第5页
第5页 / 共23页
报表设计教程Word文档格式.docx_第6页
第6页 / 共23页
报表设计教程Word文档格式.docx_第7页
第7页 / 共23页
报表设计教程Word文档格式.docx_第8页
第8页 / 共23页
报表设计教程Word文档格式.docx_第9页
第9页 / 共23页
报表设计教程Word文档格式.docx_第10页
第10页 / 共23页
报表设计教程Word文档格式.docx_第11页
第11页 / 共23页
报表设计教程Word文档格式.docx_第12页
第12页 / 共23页
报表设计教程Word文档格式.docx_第13页
第13页 / 共23页
报表设计教程Word文档格式.docx_第14页
第14页 / 共23页
报表设计教程Word文档格式.docx_第15页
第15页 / 共23页
报表设计教程Word文档格式.docx_第16页
第16页 / 共23页
报表设计教程Word文档格式.docx_第17页
第17页 / 共23页
报表设计教程Word文档格式.docx_第18页
第18页 / 共23页
报表设计教程Word文档格式.docx_第19页
第19页 / 共23页
报表设计教程Word文档格式.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

报表设计教程Word文档格式.docx

《报表设计教程Word文档格式.docx》由会员分享,可在线阅读,更多相关《报表设计教程Word文档格式.docx(23页珍藏版)》请在冰点文库上搜索。

报表设计教程Word文档格式.docx

缩放

文本编辑

格式刷

“Band”对象在设计页中添加一Band,在其设置区用户可以添加定义,依照band类型设置组件。

“Text”对象,用于显示文本,在其组件范围显示一行或多行文本信息。

“图形”组件用于显示“BMP”“JPG”“ICO”“WMF”“EMF”格式文件

“制图”组件将数据通过不同的图例进行可视化形象化显示,如:

饼形显示、柱形显示、曲线等。

“检查框”组件通过“√”或“×

”显示两型数据。

“OLE”组件用于通过“OLE”组件显示其他系统组件的数据。

“Richtext”组件显示“RTF”格式的文本数据文件。

“SubReport”组件用于在基础报表上添加一个另外的报表页。

“Systemtext”显示几种信息(例如:

日期、时间、页码等),还有像计算数据之和等。

用于绘制不同的几何图形:

直线、斜线、矩形、圆形、椭圆、三角形、菱形等。

“Barcode”组件在面板上显示不同的条形码。

Text说明

这是FastReport报表中使用最频繁的控件。

可用它完成如下主要功能:

1.显示一般文字信息---直接录入即可。

2.显示数据字段信息---一般格式:

[数据源.”字段名称”]。

3.显示变量内容---一般格式:

[<

变量名>

]。

4.显示装饰线等。

Tips:

band说明

FastReport将整个页面划分成若干个区域。

而每个区域有着各自不同的功能,这些功能由FastReport自动加载。

一个页面中可以没有区域,也可以只有其中的某些区域,这根据报表的需求而定。

放置在页面中的区域有范围,落入区域范围内的控件(例如:

TextObject)才具有区域的功能。

重要的区域包括:

#报表抬头(ReportTitle)

仅在第一页显示在纸张的上部。

一般用于打印报表的标题等信息。

#报表合计(ReprotSummary)

仅显示在所有数据的最后末尾。

一般用于打印统计信息等。

#页首(PageHeader)

显示在每页的最上部。

通过设置你可以让它置于报表抬头之上或者之下。

一般用于打印页眉信息等。

#页脚(PageFooter)

显示在每页的最底部。

一般用于打印页序等信息。

#主数据(MasterData)

用于显示数据源的数据,是最重要的区域。

在该区域中可以定义连接哪一个数据源,那么该数据源的数据将会按顺序依次将记录打印出。

数据区域还有明细数据(DetailData)等,一共支持6阶数据。

利用明细数据可以设计出主从报表、主-细-子细报表等。

例如:

各类单据的打印报表就是由单据头(主数据)和单据体(明细数据)共同完成的。

在打印时,明细一级的数据是受上一级主数据的控制,因此需要进行相关设置。

#头(Header)

显示在所有数据源的最上部,仅打印一次。

一般用于显示相关摘要信息。

#尾(Footer)

显示在所有数据源的最下部,仅打印一次。

一般用于显示所有数据的合计信息。

#栏首(ColumnHeader)

显示在每页数据源的上部,它在每页均显示。

因此一般用于打印数据源字段的栏目信息。

#栏尾(ColumnHeader)

显示在每页数据源的下部,它在每页均显示。

一般可用于统计显示每页数据的合计信息。

#群组首(GroupHeader)

用于显示分组数据,在每一个分组开始显示。

一般可用于显示分组索引数据。

将商品档案按商品分类分组显示,在群组首你可以显示商品分类名称。

利用群组首可以设计出分组报表,关键是数据源必须按分组索引的字段排序才能达到分组的效果。

群组首可以有多个,即可以嵌套使用。

#群组尾(GroupFooter)

与群组首一一对应。

一般用于显示分组数据的统计信息。

#子(Child)

是一个独立的区域。

你可以设置子区域隶属于上述区域中的任何一个。

在打印时,打印完父区域后,子区域将会跟随打印。

一般可用于打印子报表(SubReport)。

#重叠(overlay)

该区域内包含的内容将从页的开始位置计算打印,而不受其他功能区域的影响。

一般用于无法在其他功能区域打印的内容的显示。

2-2.首先根据票据样式设置格式大小,在菜单栏中点击文件,选择页面设置,然后自定义选择页面设置的大小(图2-2,以西药处方笺示例)

图2-2

(1)第一个页面上,可以设置纸面大小,和纸面方向,还有页面边距,在纸张来源的下拉框中选择第一页和其他页打印机的状态

(2)第二页设置分栏显示报表栏数、栏距和位置。

当前设置在设计器中显示。

“打印至前一页”允许用户打印报表,从上一页的空白处开始。

这个选项可用在一个报表有多个模板组成或批量打印时。

“伸展至打印区”选项打印奇页面时左右边界可以交换。

“不限页高”“不限页宽”选项根据多个数据报表增加页数,这样可以看到一个大型报表数据代替多个报表页面。

“在设计模式使用大的纸张高度”选项增加页面高度。

2-3.然后在菜单栏点击报表,选择数据,勾选对应的数据集(图2-3)

图2-3

如果需要设置处方固定到某台打印机上打印,可以选择菜单栏-报表-选项,勾选上对应的共享打印机,这样处方就会自动从某台指定打印机打印出来。

2-4.一般的报表由报表抬头、页首、页脚(或者栏首、栏尾,或者头、尾)、主项数据组成。

首先在工具栏中点击“新报表”按钮,则生成报表模板,在上面已经有三个Bands,“ReportTile”,“Masterdata”,“Pagefooter”。

先把“ReportTile”删掉,选中后按del键,或从右键菜单中选择删除。

现在添加一个新的Band(“Pageheader”),点击

按钮,从下拉条中选择“页首”,我们看到一个新的band添加到报表设计器中。

点击

按钮,在报表页面上希望显示的地方,点击鼠标按键,则在相应位置生成一个组件,文本编辑器立即出现。

(图2-4)

图2-4

在文本编辑器中直接输入文字,预览即可显示所输入的文字。

2-5.继续在页头中点击添加文本框,将样式中需要显示的内容添加到相应的位置。

第一中方法是通过点击

增加文本框,在弹出的文本编辑器中选择文本-abc,就进入到数据树中,选中相应字段双击并保存,字段就会出现在文本编辑器中。

(图2-5)

图2-5

第二种方法是直接用鼠标左键从数据树中选定某个字段,直接将字段拖动到相应位置。

2-6.设置好页头显示的内容后就要设置打印处方明细内容,也就是设置如何打印数据库表中的数据。

数据库表就是有多个行(记录),每个行又有多个列(字段)组成的数据集合。

打印这种类型的数据,FastReport使用了特殊的Band(DataBand)。

这是一些名称带有“第XX阶数据”特征。

为了打印整个表单或部分字段,需要添加这种类型的band(s),连接到数据库表单,并添加相关组件连接上要打印的数据库表单的字段。

当FastReport生成这些bands时,他重复打印生成这种band,如同表单的记录数。

如果打印输出页面已经没有了剩余空间,报表系统会自动增加一个新的页面用于打印输出报表。

首先增加一个DataBand,这里只需要增加一个主数据(masterdata),选择主数据要打印的数据库表,然后将相应的字段拖进主数据中。

(图2-6,图2-7)

图2-6

图2-7

2-7.一张处方写完后,医生一般以一根斜线或者直接书写“以下空白”来表示该处方已经写完。

在报表设计中,我们需要用到一个特殊的band-栏尾(栏尾显示在每页数据源的下部,它在每页均显示).在栏尾中使用

来画一条斜线,这样当处方内容打印完毕之后,就会打印这根斜线,用以表示该张已经完毕。

(图2-7)

图2-8

2-8.处方内容打印完毕之后,根据处方书写规定,在每页的底部都必须要有以下内容:

医师签名或者加盖专用签章,药品金额以及审核、调配,核对、发药药师签名或者加盖专用签章,这个歌就必须添加一个band-pagefooter(页尾).将页尾组件拖到报表设计工作区,将相应字段拉取.(图2-9)

图2-9

图2-10

2-9.通过以上的步骤设计,一张完整的处方就设计好了。

效果如下(图2-11)

图2-11

三.报表设计的优化

3-1.格式化输出结果

报表虽然设计完成了,但是还有很多地方需要改进优化。

就诊日期显示的时间太长,一般只需要年月日就行,药品金额需要保留两位小数。

这个可以通过在文版编辑器中来实现。

进入文版编辑器,点击格式,然后选择日期时间,并选择所需要设置的格式,也可以在格式字串直接输入想显示的样式。

(图3-1)

图3-1

图3-2

图3-3

图3-4

3-2.分组打印:

所谓分组报表,就是按某一个字段进行分组显示,该字段具有相同的值的数据记录将被归类显示在一起.要达到分组的目的,其中一个关键是该数据集必须按分组条件排序,即SQL语句中一定要有ORDERBY这样的排序语句,而排序字段就是分组的字段。

处方药品一般会有同组的,如图3-5所示,两个药品是同一组药品,需要将用法合并在一起打印。

FastReport中有两个特殊的Band——群组首和群组尾。

为这两个Band制定条件条件,当这个Band数据发生变化时就会打印一次。

这样就可以用数据集中的分组字段作为条件,当分组不一样的时候用法才会打印出来,这样就可以实现同组的药品用法可以合并在一起。

首先创建一个群组首,选择处方内容的分组作为群组的分隔字段。

(当处方内容比较多,一页不能打印完全时候,有必要勾选保持与群组在一起以及换页,这样报表当发现没有足够的空间显示组内容时,就会添加新的一页开始显示)

图3-5

图3-6

3-3.图片的使用

处方上要显示医生电子签名,可以使用

组件来显示。

拖入一个组件,然后再对象查看器中找到属性,在dataset中找到对应的数据表,然后在datafield中找到对应的签名字段。

(图3-7)

图3-7

图3-8

3-4.条件显示

(1)控制是否打印:

年龄在12岁以下儿童的处方必须含有体重,但是对于12岁以上,处方上则不需要显示这个内容。

我们可以通过声明一个事件,通过visible的条件去控制该组件是否显示。

首先选中该组件,在对象查看器的事件中找到onbeforeprint,双击,在代码页中会自动出现事件的代码,然后书写控制的代码,当年龄大于12岁时,预览打印这个字段就不会显示。

图3-9

图3-10

通过这样的设置,当年龄大于12岁的时候体重这个组件就不会显示。

图3-11

(2)调整显示内容:

数据表提供的字段显示不符合要求,这个时候就必须使用代码去调整显示的内容,先声明事件然后书写代码,这样可以显示你需要看到的字段内容。

(图3-12)

图3-12

图3-13

(3)换页:

控制每页打印的行数:

对相应的databand声明一个事件,在代码中控制。

(图3-14)

图3-14

图3-15

(4)排序:

不同客户对格式的需要不同,很多时候需要先对数据集再次排序才好实现(比如分组打印).使用方法,在格式设置的代码页里的最后一对begin和end间加入下面的语句,表示把“住院病人发药汇总单-单体”这个数据集结果再按BCD02字段升序排列:

begin

QuerySortEx('

住院病人发药汇总单-单体'

'

BCD02'

DESC'

);

end.

3-5.subreport:

有时一些复杂的报表结构中,需要报表的特殊位置显示特殊的数据。

通过FastReport的Band可以创建这些报表。

创建子报表可以使用

插入这种组件后,就会在设计器中添加一个新的页面,它连接着这个子报表组件。

镶嵌式报表就像一系列的多页报表系统。

唯一不同的就是嵌套报表显示在基础报表中特殊的位置,而不是在他的后面。

当输出报表时,当FastReport系统遇到“SubReport”组件,FastReport引擎输出关联的设计页,然后输出报表的其他部分。

还可以在子报表窗面上添加子报表,增加嵌套层数.设计子报表与主报表基本上相同,唯一的区别是有些功能区域不能在子报表中实现。

在我们系统中,在发票收据打印中比较常用,因为发票有分联的,必须在每一联都要打印相同的内容,这样就必须用到子报表.(图3-16)

图3-16

图3-17

图3-18

预览效果如图3-19

3-19

3-6:

函数变量

(1)金额大小写转换:

在发票上需要显示大写的金额,可以直接调用函数CurrToRMB将金额字段转换.(图3-20)

图3-20

图3-21

如果遇到套打的发票,即需要固定各个字段打印位置,只需要显示金额的数值,就有必要通过代码来控制,先在代码中声明几个变量,通过变量去显示各个位数的数值.代码如下:

var

m,m1,m2,m3,m4,m5,m6,m7:

value;

procedureMemo12OnBeforePrint(Sender:

TfrxComponent);

m1:

=copy(m,length(m)-1,2);

end;

procedureMemo17OnBeforePrint(Sender:

m2:

=copy(m,length(m)-3,2);

procedureMemo18OnBeforePrint(Sender:

m3:

=copy(m,length(m)-5,2);

procedureMemo33OnBeforePrint(Sender:

m4:

=copy(m,length(m)-7,2);

procedureMemo34OnBeforePrint(Sender:

m5:

=copy(m,length(m)-9,2);

procedureMemo35OnBeforePrint(Sender:

m6:

=copy(m,length(m)-11,2);

procedureMemo36OnBeforePrint(Sender:

m7:

=copy(m,length(m)-13,2);

m:

='

零零零零零零零'

+CurrToCapsNum(<

结账单据."

结帐金额"

>

设置每个组件对应的事件,组件以[m1]等来标识.(图3-22)

图3-22

图3-23

(2)求和:

求和可直接调用sum函数对某个字段进行汇总求和.以药库进货单为例,需要对单据中的每页的药品金额进行汇总,而且需要在报表最好显示所有药品的汇总.这样我们会用到两个band-报表统计以及栏尾.栏尾(ColumnHeader)显示在每页数据源的下部,它在每页均显示,可用于统计显示每页数据的页合计信息.报表合计(ReprotSummary)仅显示在所有数据的最后末尾,可以用于打印统计信息.(图3-24)

图3-24

预览效果如下:

在最后一页中可以看到,本页合计是紧跟在打印的最后一行数据的后面,后面紧跟着的是报表的汇总统计.(如果将本页合计放在页尾的话,那么在最后一页,页面最底部是当前页的合计,而报表的汇总合计反而紧跟最后一行数据)图3-25

图3-25

(3)变量:

FastReport中的变量分为三种。

a.系统变量:

系统定义的一些与报表打印相关的变量,这里介绍几个常用的变量。

Date---系统当前日期Time---系统当前时间Line---当前行序号

TotalPages---总页数(必须设置两遍过程)Page---当前页码

Line#---也是当前行序号,但区别是在一个新的数据区域(Band)内该变量将重新计数。

---比如在图3-25中可以看到调用了页码和总页数的变量。

b.自定义变量:

Healthone设置的一些自定义的变量。

这里介绍一个发票格式中的变量--打印票据号。

在每个病人结账打印发票的时候,实际上发票号码并没有写入数据库中,而是在打印完毕之后收到打印机返回的信号才将发票号写入数据库,如果文本用票据号字段,那么

在打印的时候就无法将票据号打印出来,重打才会,所以这个时候就必须调用这个变量,保证在第一次预览打印的时候可以将票据号打印出来。

c.编程(Code)中使用的全局变量:

你可以在代码页的起始处定义一些需要的全局变量。

var

S:

string;

这里S就成了一个全局的字符型变量,你可以对它进行赋值、取值。

也可以在文本对象中引用它,格式为:

S>

在刚刚大写金额分开的设置中就使用了全局变量。

(图3-22)

3-7.打印模式选择:

进入格式设置,打开对象查看器;

选择frxReport1:

TfrxReport;

设置PrintOptions选项,设置PrintMode为需要的打印模式(pmScale–缩放打印,pmJoin–连接小页打印等),设置PrintOnSheet为你想最终打印的纸张大小,保存格式即可。

pmScale:

比如将A4大小的医嘱单格式缩放到16K纸张上打印,不用再调整格式布局了

pmJoin:

比如瓶签、输液卡等格式连接起来在A4纸张上打印,一张A4上打印多个

 

----这样可以实现病人输液卡从左到右依次打印的效果(图3-26)

图3-26

图3-27

3-8.主从报表:

主从报表的关键是需要关联主数据源和从数据源。

一般情况下数据源的SQL语句中一般有用于关联的关键字段(外键)。

已住院护士站病人清单为例,主项数据为病人信息,明细数据为病人费用明细,vaa07就是为病人费用明细的外键,病人费用明细通过vaa07与某一条主项数据关联。

Vaa07这个变量与主项数据病人信息中的主键vae01相同,这样系统就可以自动进行匹配,定义病人费用明细的属性Master等于病人信息,这样明细数据就被主项数据所控制.当打印需要vaa07这个变量的时候就会从病人信息中获得,当病人信息的vae01变化的时候,明细数据也会发生变化.(图3-28)

图3-28

图3-29

3-9.报表的导入导出:

格式的导入导出有两种方式:

第一种是在报表管理界面找到对应的数据集,添加格式,右键直接导入或者导出;

第二种是进入报表设计器,通过文件-保存(另存为)将格式导出保存,通过文件-打开选择对应报表导入。

在Healthone中要注意:

格式是分为本地格式和服务器格式的。

所谓本地格式就是保存在本地路径下,只供本机调用的格式,而服务器格式是所有客户端都调用的格式,一般当存在本地格式,(\HealthOne\Template\ReportForms)的时候,客户端只会调用本地的格式,不管服务器格式怎么变动都不会影响。

在格式设置中,保存就是保存为服务器格式,另存为就是另存到本地路径,但是当存在本地格式的时候,保存也是保存到本地格式上。

有些客户端需要特殊的需求,比如指定某台打印机打印的票据是医保类型的就可以这样设置,保存一个医保的本地格式,该台客户端打印的就只是医保的格式。

3-10.报表数据集:

一般打印格式的数据集都可以在报表管理中找到,进入数据参数配置就可以找到,但是有部分是直接调用脚本,然后通过一些处理形成数据集。

对于第一种,如果要修改报表数据集,添加修改某些字段,只要直接修改保存就行。

如果你打开的没有保存按钮,这说明这个报表是系统调用的,第一可以通过后台修改报表的属性,改为用户就可以保存;

第二是复制为报表附加配置,这样报表会增加一个附加配置,设置为默认的话,系统打印就会调用附加配置的信息。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2