彩票走势图

汽车业务管理系统(VBMS)使用FastReport设计报表(一)

原创|其它|编辑:郝浩|2012-08-31 15:39:49.000|阅读 571 次

概述:学习报表设计前应当首先弄清楚VBMS系统与FastReport报表设计之间的关系。报表设计的目的是将VBMS数据库(Firebird1.5)中的数据按照需要的视图方式显示、统计出来,并且可以打印、导出。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

在VBMS中使用FastReport设计报表应该掌握以下知识:

1、 熟悉SQL语言,为设计报表准备数据源。
2、 掌握VBMS的数据结构,可参考相关资料。
3、 掌握FastReport报表的设计使用方法。

体系结构

学习报表设计前应当首先弄清楚VBMS系统与FastReport报表设计之间的关系。报表设计的目的是将VBMS数据库(Firebird1.5)中的数据按照需要的视图方式显示、统计出来,并且可以打印、导出。

VBMS数据库与VBMS管理系统以及FastReport报表设计之间的关系是:

Firebird数据库系统是报表的数据源,它存储着客户的业务数据。但该数据的存储方式并不一定是客户希望直接看到的。

VBMS管理系统是中间层,它负责连接Firebird数据库和FastReport报表系统,将数据库信息(例如数据库的位置)传入到报表系统中供设计报表时使用。

FastReport报表系统是报表设计的主体,它负责接收或创建数据源,通过设计报表完成需要的功能。因此在VBMS管理系统的打印模块中存在两种数据源:一种是VBMS系统数据源,即在各模块中将设计好的数据源传入到打印模块中。优点是无须用户干预使用方便,缺点是不够灵活,更改数据源需要升级程序。例如各类单据的打印报表采用的就是系统数据源。另一种是自行设计数据源,功能强大但对用户的要求较高。例如报表中心中的各类报表。

设计步骤

完成一张报表的设计主要包括以下几个步骤:

1、确定报表的需求,查阅VBMS关于数据库结构的文档,确认该需求的所有内容在VBMS中均有数据字段记录(即VBMS必须记录了相关数据,否则报表设计无从谈起)。

2、根据报表的需求,确定报表应该显示的模式。例如:是简单报表、主从报表或是分组报表等等。因为这涉及的自定义数据源时SQL语言的构成方式。

3、利用数据库工具(例如:IBExpert),使用SQL语言尝试获取报表希望的数据集。这里有可能不能通过SQL语言一步到位获取到希望的结果,但你仍可能通过FastReport报表系统对数据集进行二次加工。

4、在FastReport报表中自定义数据源(通过上步获取的SQL语句),利用报表系统中提供的各种控件构造出希望的报表格式。

5、 对于设计好的报表进行测试。

基本概念及操作

基本概念

最主要的概念是FastReport报表的组成方式和控件主要用途,它一般包括以下方面:

*页面(Page) --- 默认为Page1

与我们现实中使用的纸张相似。但它不仅仅指的是一张纸,而是用于我们设计报表的容器。打印出来可以是一张纸也可以是多张。页面(Page)可以有多个(你可以新增页面New Page),即可以有多个报表容器。利用这一点,你可以设计出复合报表(Composite Report)。

利用页面设置可以定义大小、方向、边界、打印方式、分栏等参数。这里不再详述,只特别强调分栏的作用。你可以将页面分成多栏,这样打印时数据将按照从上到下,再从左往右的方式显示。这就是我们通常说的分栏报表(Splite Report)。

*区域(Band)

FastReport将整个页面划分成若干个区域。而每个区域有着各自不同的功能,这些功能由FastReport自动加载。一个页面中可以没有区域,也可以只有其中的某些区域,这根据报表的需求而定。放置在页面中的区域有范围,落入区域范围内的控件(例如:TextObject)才具有区域的功能。

重要的区域包括:

#报表抬头(ReportTitle)

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

#报表合计(ReprotSummary)

仅显示在所有数据的最后末尾。一般用于打印统计信息等。

#页首(PageHeader)

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

#页脚(PageFooter)

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

#主数据(MasterData)

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

数据区域还有明细数据(DetailData)等,一共支持6阶数据。利用明细数据可以设计出主从报表、主-细-子细报表等。例如:各类单据的打印报表就是由单据头(主数据)和单据体(明细数据)共同完成的。

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

#头(Header)

显示在所有数据源的最上部,仅打印一次。一般用于显示相关摘要信息。

#尾(Footer)

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

#栏首(ColumnHeader)

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

#栏尾(ColumnHeader)

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

#群组首(GroupHeader)

用于显示分组数据,在每一个分组开始显示。一般可用于显示分组索引数据。例如:将商品档案按商品分类分组显示,在群组首你可以显示商品分类名称。利用群组首可以设计出分组报表,关键是数据源必须按分组索引的字段排序才能达到分组的效果。群组首可以有多个,即可以嵌套使用。

另外,可以设置让分组索引数据在报表预览时显示在左侧的树型列表框(OutLine)中。

#群组尾(GroupFooter)

与群组首一一对应。一般用于显示分组数据的统计信息。

#子(Child)

是一个独立的区域。你可以设置子区域隶属于上述区域中的任何一个。在打印时,打印完父区域后,子区域将会跟随打印。一般可用于打印装饰线、调整高度或者打印子报表(SubReport)。

#重叠(overlay)

该区域内包含的内容将从页的开始位置计算打印,而不受其他功能区域的影响。一般用于无法在其他功能区域打印的内容的显示。

*对话框(DialogPage)

你可以通过设计对话框完成对数据源进行动态控制的目的,这也是设计复杂报表的重要手段。

对话框主要通过各种输入数据控件来接受客户的查询请求,因此可以学习几种主要的控件。

#标签(Label Control) --- 用于显示文字信息。使用Caption属性修改文字信息。
#文本编辑框(Edit Control) --- 用于接收用户录入的文字信息。使用Text属性修改文字信息。
#按钮(Button Control) --- 一般用于确定和取消。使用Caption属性修改文字信息。
#多选框(CheckBox Control) --- 用于用户对条件的选择。使用Checked属性确定是否。
#单选框(RadioButton Control) --- 用于用户对条件的单一选择。使用Checked属性确定是否。
#下拉框(ComboBox Control) --- 用于用户对多个数据列表的选择。使用Text属性修改当前文字信息,使用Items属性填充列表信息。
#时间框(DateEdit Control) --- 用于用户对时间的选择。利用Date属性改变时间。

*文本对象(Text Object)

这是FastReport报表中使用最频繁的控件。可用它完成如下主要功能:

1. 显示一般文字信息 --- 直接录入即可。
2. 显示数据字段信息 --- 一般格式:[数据源."字段名称"]。
3. 显示变量内容 --- 一般格式:[<变量名>]。
4. 显示装饰线等。

文本对象可以进行文字对齐、格式转化、文本着色、字体改变、画边框线等许多功能,这与MicrosoftWord中的操作有诸多相同特征。因此这里不再一一赘述。

《在文本对象中引用数据字段或者变量需要用中括号包含,而且引用变量名时还需要用尖括号包含,这样系统就知道这是一个变量名称而不是其他什么。》

*子报表(Subreport Object)

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

设计子报表与主报表基本上相同,唯一的区别是有些功能区域不能在子报表中实现,例如:报表抬头、群组。

*交叉报表(DB cross-tab)

又称动态报表,即可以实现横向和纵向都不能确定时的报表。该报表的实现需要数据源按一定规格组织数据方能实现。

*数据感知控件(FIB Query)

利用该控件进行数据源的设计,可以完成设计SQL语句、测试结果、字段别名等工作。

《在FIBQuery控件的SQL属性对话框中有一个QueryBuilder工具。利用该工具你可以查看到目前数据库中所有的数据表以及数据字段信息。并且可以在工具中利用向导功能(Model)可以更好的完成SQL语句的编制工作,并可以测试结果(Result)。不过这里列出的仅是数据表(Table),还有视图(View)没有列出。如果需要使用视图或存储过程(Procedure)可以查阅相关资料,FIBQuery同样支持视图和过程。

在FieldAlias属性中,你还可以将所有数据字段名称修改成中文名称。

在Master属性中,你可以定义本数据源隶属于另外哪一个数据源(即受哪一个数据源控制)。

如果你在数据源的SQL语句中定义了变量,那么在Params属性中,你可以设置这些变量的类型和值。》

FastReport报表系统中还包含了一些其他控件,这些控件大部分是用于装饰报表的,比较容易理解,使用起来也比较简单,这里也不再说明了。

基本操作

FastReport中的操作与MicrosoftWord中的操作非常相似,不再详述。下面仅对一些常用功能及操作技巧进行提示。

*热键

Arrow --- 在Object之间移动
Del --- 删除一个Object
Enter --- 调出选择的Object的编辑器
Shift+Arrow --- 改变Object的尺寸大小
Ctrl+Arrow --- 移动Object的位置
Alt+Arrow --- 移动选择的Object到相邻的Object的旁边并且对齐

*鼠标

Left button --- 选择、移动一个Object,对于多选的一组Object,可以拖动右下角的红点同时改变所选的Object的尺寸大小
Right button --- 调出右键菜单
Shift+left button --- 多选Object
Ctrl+left button --- 按住Ctrl键不放用鼠标左键可以拖出一个虚线矩形框,释放鼠标按钮可以将该矩形框内所有Object选中,然后使用left button将选中的Object移动到所需位置
Alt+left button --- 如果针对Text Object使用,将可以直接编辑内容,无需弹出编辑窗

汽车业务管理系统(VBMS)使用FastReport设计报表(二)


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:网络转载

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP