第十九章data report 报表生成器

Document Sample
第十九章data report 报表生成器 Powered By Docstoc
					         第十九章 data report 报表生成器
1.建立一个简单的报表
  例:为score01.mdb数据库的“成绩单”输出成报表。
  (ch19\练 习1.vbp)
  1)首先添加一个dataenvironment到工程中去,让
  connection连接到stock01.mdb。再添加一个command对象,
  选定数据表:股票行情表。
  2)添加一个data report到工程 中。一开始data report 的结
  构图如下:(含有五个区域,每一个区域是一个对象)
  3)利用属性窗口设置data report对象的属性:
      datasource=dataenvironment名
      datamember=command名
  4)从data environment之中拖动command对象到data report
      “细节”区域中。
5)在窗体上放置一个命令按钮,并且在命令按钮里
面输入如下代码:
datareport1.show
2.预览报表窗口的相关操作
3.修改报表
1)报表专用控件:
Rptlabel:显示静态文字
RpttextBox:显示数据记录的字段数据
下面是工具箱中可供data report使用控件。
Rptlabel:用来显示静态文字
RpttextBox:用来显示字段数据
Rptimage:用来显示静态图片
Rptline:用来绘制静态直线
Rptshape:用来绘制静态图形
RptFuntion :用来显示总计字段
2)报表各区域的角色
细节:datareport将这个区域视为重复性数据的显示区。如
果在这个区域放置了RptTextBox控件,则datareport就会根据
RptTextBox控件所设置的datafield属性,逐笔读取command对
象中的数据记录,然后一条一条显示出来。如果所放置的控
件是RptLabel,则只是将该控件重复地显示在这个报表上。


页标头:此区域会被data report用来显示每页的标头信息。
一般来说,用来显示字段的标题最为恰当。


页注脚:这个区域 会被 data report 用来显示每页的注脚信
息,其显示方式与“页标头”区域相同,唯一的差异是它会
被 显示在注脚的位置。
报表标头、报表注脚:在每一份报表被输出时,放
置在“报表标头”区域的控件,只会显示在报表“第
一页”的最前面,不像放置在“页标头”区域的控件
会显示在报表“每一页”的最前面,至于放置在“报
表注脚”区域的控件,则只哙 显示在报表“最后一页”
的最后面。
例:修改上一例中“股票行情表”的报表。

3)插入页数及日期
在上一例中,要在“报表标题”中插入日期,要在
“页标题”中插入页数。
步骤:在“报表标题”区域中右击,在快捷菜单中选
“插       入控件”/“报表标题”。则在“报表标
题”区域中出          现“i%”。
   在datareport_Initialize()事件中写下代码如下:
   DataReport1.Title = "股票行情表"
  在“报表标题”区域中右击选择“插入控件”/“当前
日期”
  在“页标题”区域中右击选择“插入控件”/“当前页
码”
4)如何将字段数据设置成靠右对齐。
    将rpttextbox中的alignment属性设为:
    rptjustifyright(=1)
5)如何设置数值字段的小数点位数
    将rpttextbox中的dataformat属性进行设置。
6)如何让字段数据自动换行
    有时候调整字段的宽度也是比较麻烦的,设置得
太长,会超出纸张的宽度,设置得太短,怕出现数据
被截断的现象,解决的办法是:将rpttextbox控件的
cangrow属性设置为true。凡超过右边区的数据,都会
自动换到下一行。
7)如何避免同一条数据记录被分开打印。
被分开打印,如果我们不想同一条记录被分开打印,则要将“细
节”对象的keeptogether属性设为true。
8)如何将“报表标头”设置成封面。
     只要将“报表标头”对象的forcepagebreak属性设置为“2-
rptpagebreakafter”既可。其作用是在“报表标头”之后强制分页。
     除了“报表档头”对象之外,其他区域对象也都含有
forcepagebreak属性,forcepagebreak几个属性值的意义如下:
     属性值                        意义
rptpagebreaknone(=0)           这个区域前后均不强制分页
rptpagebreakbefore(=1)         这个区域之前要强制分页
rptpagebreakafter(=2)          这个区域之后要强制分页
rptpagebreakbeforeandafter(=3) 这个区域前后均强制分页
9)如何调整个区域的高度
     不必设置任何属性,只要将鼠标移到区域的边界,按下鼠标
拖动即可。
10)如何设置报表的边界
就是要设置datareport对象的leftmargin(左边界)、
rightmargin(右边界)、topmargin(上边界)和
bottommargin(下边界)属性。这几个属性的单位twip,
而twip与厘米(或英寸)的换算公式为:
           1twip=1/1440英寸
           1twip=1/567厘米
4.建立层次式的报表
前面利用dataenvironment的分组统计功能,完成如下画面
如下:
例:为第十七章练习八添加具有层次型打印功能
(ch16\ex11.vbp)

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:5
posted:5/13/2012
language:
pages:9