文档详情

最新2018vb数据报表data report.doc

发布:2017-07-23约1.26万字共12页下载文档
文本预览下载声明
vb6中用data report做报表 我不是vb熟练工,最近刚刚用vb做完一个程序,其中控制部分没费太大周折,倒是报表部分颇让我费了一翻脑筋。在网上找了半天,也没找到关于vb6的 datareport的详细介绍,于是想借鉴前辈们的经验,用crystalreport或excel,感觉也不省劲,于是决定回头再去啃datareport,别说,还真让有所收获,下面就简单的介绍一下我的体会,希望对大家能有所帮助。   首先介绍一下data report对象的几个常用属性。一是datasource,用于设置一个数据源,通过该数据源,数据使用者被绑定到一个数据库;二是datamember,从datasource提供的几个数据成员中设置一个特定的数据成员;三是leftmargin、rightmargin、topmargin、bottommargin等,用于指定报表的左右上下的页边距;四是sections,即datareport的报表标头、页标头、细节、页脚注、报表脚注5个区域,如果加上分组(可以有多层分组),则增加一对区域,即分组标头、分组脚注。其中datasource一般是一个数据环境或是adodb.connection类型的变量,而datamember则对应数据环境中的command或是adodb.recordset类型的变量,推荐使用数据环境及command,页边界大家肯定都很清楚,下面我主要介绍以下sections,这也是datareport的精髓所在。   sections是一个集合,您可以为每一个section指定名称,也可以用其缺省的索引,从上到下依次为1、2…。每个section均有height和visible属性,您可以在一定条件下使一个section不可见。在section中可以放置各种报表控件,其中rptlabel、rptimage、rptshape和rptline可以放在任意的section中,用于输出各种文字、图形及表格线;rpttextbox只能放在细节中,一般用于绑定输出datamemeber提供的数据字段;rptfunction只能被放置在分组注脚中,用于输出使用各种内置函数计算出的合计、最大值、最小值、平均值、记数等等。上述报表控件中常用公共属性有用于控制位置及高度宽度的top、left、height、width和控制可见性的visible;其中rpttextbox还有datafield、datamember、dataformat及font属性;其他属性不再多说。   然后介绍一下我的使用经验。一是对想控制的报表控件按类型有规律的命名;二是用rptshape的矩形框做表格线框,比用rptline画框省事多了,只有斜线才使用rptline;三是报表标题及报表中的表头文字、日期及页码用rptlabel,其中caption属性支持转义字符,%d为长格式日期,%d为短格式日期,%p为总页数,%p为当前页码;四是对固定报表在设计窗口直接将报表控件摆放到位,对于活报表,应首先考虑报表最大的情形,将足够的控件分别放置在不同区域,位置大小可以不必深究,然后在报表输出前用vba代码对所有控件的属性进行调整,包括位置、高度、宽度、字体、对齐方式、显示格式、可见性等等,相应的对section也应根据情况调整其高度和可见性。 最后用一个实例模板来说明其使用方法。   连接数据库 with 数据环境.rscommand名 if .state = adstateopen then .close .source = sql语句 .open 打开想输出的数据库数据项以便输出 end with with 报表名  .datasource=数据环境  .datamember=command名 这两行也可固定设好而不必每次设置  设置页表头部分(rpttlabel…为报表控件名)  .sections(2).controls(rptlabelpage).caption = 共%p页第%p页  .sections(2).controls(rptlabeldate).caption = 打印日期:%d  .sections(3).controls(rptlabel1).left=…  …  设置细节部分(rptshapex、rpttextboxx为报表控件名)  .sections(3).controls(rptshape1).left=…  .sections(3).controls(rptshape1).top=…  .sections(3).controls(rptshape1).height=…  .sections(3).controls(rptshape1).width=…  .sections(3).controls(rp
显示全部
相似文档