一.报表设计的准备工作报表是企业管理的基本措施和途径,是企业的基本业务要求,也是实施BI战略的基础。
报表可以帮助企业访问、格式化数据,并把数据信息以可靠和安全的方式呈现给使用者。
简单来说,报表就是用表格,图表等格式来显示动态数据,报表=多样的格式+动态的数据.,也就是对已有的数据动态的设置打印的位置.1-1.在做格式设计之前,首先获取需要制作的报表格式,然后进入系统,在需要进行设计的打印界面选择进入格式设计器.(图1-1 )图 1-11-2.如果此处报表格式为空,则需要进入报表管理,找到相应的数据集并添加格式,这样才能开始进行格式设置.(如图1-2)图 1-21-3.添加格式选择为默认格式,并选择类型为用户,然后右键启用格式,就可以在相应票据打印界面看到新建的格式.(图1-3)图 1-3二.报表设计Healthone报表设计的一般流程是:1.设置报表页面属性2.获取所需数据源3.依次添加ReportTitle、PageHeader、MastData、PageFooter等组件。
4.设置MastData连接的数据源(双击MastData区域)5.在ReportTitle中添加文本对象,录入报表名称。
6.在PageHeader中添加若干文本对象,录入字段中文名称。
7.在MastData中添加若干文本对象,并连接该文本对象至对应数据字段。
(可以从下拉框中选取)8.在PageFooter中添加文本对象(或录入页码-使用FastReport中的系统变量 [Page])2-1.healthone的格式设计是使用fastreport.进入格式设计器(图2-1)图2-11 菜单栏2 工具栏 3报表页标签 4 对象工具栏 5 报表设计器工作区 6 标尺 7 状态栏 8 报表树 9 数据树 10对象查看器Tips:对象工具栏说明::对象选择,标准模式下,选中对象,鼠标箭头方向改变组件大小。
:单击图标,托动报表窗口:缩放 :文本编辑:格式刷234568910:“Band”对象在设计页中添加一Band,在其设置区用户可以添加定义,依照band类型设置组件。
:“Text”对象,用于显示文本,在其组件范围显示一行或多行文本信息。
:“图形”组件用于显示“BMP”“JPG”“ICO”“WMF”“EMF”格式文件:“制图”组件将数据通过不同的图例进行可视化形象化显示,如:饼形显示、柱形显示、曲线等。
:“检查框”组件通过“√”或“×”显示两型数据。
:“OLE”组件用于通过“OLE”组件显示其他系统组件的数据。
“Rich text”组件显示“RTF”格式的文本数据文件。
“SubReport”组件用于在基础报表上添加一个另外的报表页。
:“System text”显示几种信息(例如:日期、时间、页码等),还有像计算数据之和等。
:用于绘制不同的几何图形::直线、斜线、矩形、圆形、椭圆、三角形、菱形等。
:“Barcode”组件在面板上显示不同的条形码。
Tips: 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,“Report Tile”,“Master data”,“Page footer”。
先把“Report Tile”删掉,选中后按del键,或从右键菜单中选择删除。
现在添加一个新的Band(“Page header”),点击按钮,从下拉条中选择“页首”,我们看到一个新的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-72-7.一张处方写完后,医生一般以一根斜线或者直接书写“以下空白”来表示该处方已经写完。
在报表设计中,我们需要用到一个特殊的band-栏尾(栏尾显示在每页数据源的下部,它在每页均显示).在栏尾中使用来画一条斜线,这样当处方内容打印完毕之后,就会打印这根斜线,用以表示该张已经完毕。
(图2-7)图2-7图2-82-8.处方内容打印完毕之后,根据处方书写规定,在每页的底部都必须要有以下内容:医师签名或者加盖专用签章,药品金额以及审核、调配,核对、发药药师签名或者加盖专用签章,这个歌就必须添加一个band-pagefooter(页尾).将页尾组件拖到报表设计工作区,将相应字段拉取.(图2-9)图2-9图2-102-9.通过以上的步骤设计,一张完整的处方就设计好了。
效果如下(图2-11)图2-11三.报表设计的优化3-1. 格式化输出结果报表虽然设计完成了,但是还有很多地方需要改进优化。
就诊日期显示的时间太长,一般只需要年月日就行,药品金额需要保留两位小数。
这个可以通过在文版编辑器中来实现。
进入文版编辑器,点击格式,然后选择日期时间,并选择所需要设置的格式,也可以在格式字串直接输入想显示的样式。
(图3-1)图3-1图3-2图3-3图3-43-2. 分组打印:所谓分组报表,就是按某一个字段进行分组显示,该字段具有相同的值的数据记录将被归类显示在一起.要达到分组的目的,其中一个关键是该数据集必须按分组条件排序,即SQL语句中一定要有ORDER BY这样的排序语句,而排序字段就是分组的字段。