- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
vb报表分组
在VB中使用动态分组报表
????在使用VB自带的报表过程中,我遇到了处理动态分组报表的问题。一般要使用分组报表要在VB中建立一个DataEnvironment,并在其中建立数据库联接和命令对象,在命令对象中设置分组字段,最后将这些分组字段加入到报表中。但是这种方法只能适应静态的数据源,当遇到数据表中的字段不固定,或数据表不能预先知道的情况时,这种方法就无能为力了。经过查阅各种资料,发现我们可以通过使用Data Shaping来动态创建分组信息。下面就详细介绍一下如何动态创建分组信息,并应用于VB报表。
????要使用Data Shaping,程序必须使用ActiveX Data Object (ADO)连接数据库,解决问题的关键是使用Data Shaping的驱动程序代替通常使用的各种OLE DB的驱动程序,它的用法跟使用其它驱动程序类似,对于已有的数据访问代码不用作任何修改,只是简单的修改一下连接代码就可以支持Data Shaping了。具体做法如下:
?????? 将连接参数中的???
?????? Provider设置成MSDataShape 即
?????? ConnectionString? = Provider=MSDataShape;Data Provider=通常的驱动程序;Data Source=…;其它的参数
????然后就可以和平常一样进行数据连接和各种数据操作了。如此连接的数据源出了具有用普通方法的所有特性以外,同时具有了我们即将使用的Data Shaping功能,下面就可以建立自己的分组信息了:
?????? 将用于打开记录集的SQL语句写成如下形式:
?????? SHAPE {select 字段1, 字段2, 字段3,…, 字段n from 现有的表} AS 新的名称1
??????? COMPUTE新的名称1 AS新的名称2 BY 分组字段1, 分组字段2,…, 分组字段n
????上面的语句中,需要注意的是分组字段必须同时在Select 中出现,否则运行时将报错。用该SQL语句打开的记录集中包含若干个字段,它们是:新的名称2、分组字段1-n。在使用时,将打开的记录集rs作为报表的DataSource,在报表的分组部分可以直接且只能使用分组字段1-n以及各种统计函数,在正文中使用字段1-n时,应将对应编辑框的DataMenber设置为”新的名称2”,具体请参考以下语句
?????? MyReport.Sections(GroupHeader).Controls(Text1).DataField =”分组字段1”
?????? MyReport.Sections(GroupFooter).Controls(Function1).DataMember = 新的名称2
?????? MyReport.Sections(GroupFooter).Controls(Function1).DataField = 字段1
?????? MyReport.Sections(PageContent).Controls(Text2).DataMember = 新的名称2
?????? MyReport.Sections(PageContent).Controls(Text2).DataField =”字段1”
?????按照以上的方法就可以对带有分组的报表进行动态数据绑定了,这对于那些操作临时表的情况十分有用,因为临时表是无法用设计器设计分组的。
????关于Data Shaping的详细介绍可以去参考MSDN在线资源,在一般情况下我们可以用设计器去设计一个类似的结构,然后查看VB设计器生成的代码,这样就可以套用我们自己表了。
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim Sql, strSql As String
连接数据库(Access)
Set cn = New ADODB.Connection
With cn
.Provider = MSDataShape.1 一定要这句
.Open Data Provider=Microsoft.Jet.OLEDB.4.0 ; _
Data Source= App.Path \db1.mdb; _
Persist Security Info=False
End With
设置RptTextBox控件属性
分组标头,注意不要设置其DataMember属性
RptGroup.Sections(Section6).Controls(text1)
您可能关注的文档
最近下载
- 必修 中外历史纲要(上)第2课诸侯纷争与变法运动 课件(共24张PPT).pptx VIP
- 分析化学英文课件CH01 Introduction 0830.ppt VIP
- 【新】珠海市纳税百强企业名单(权威).docx VIP
- 某水厂反恐应急预案范本.pdf VIP
- 2025河南省红十字血液中心招聘合同制人员12人笔试备考题库及答案解析.docx VIP
- 道德经全文和译文.doc VIP
- 一种永磁同步电机旋变零位初始角自学习方法及系统.pdf VIP
- 2025年交管学法减分考试题库以及答案(160题完整版) .pdf VIP
- GB50068-2018建筑结构可靠性设计统一标准.doc VIP
- 化工单元过程及操作练习题(附答案).docx VIP
文档评论(0)