报表分组:在VB中使用动态分组报表-vb教程



ss=MsoNormal style=\"MARGIN: 0cm 0cm 0pt\"> 在使用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语句写成如下形式:

prefix = o ns = \"urn:schemas-microsoft-com:office:office\" />

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设置为”新名称 prefix = st1 ns = \"urn:schemas-microsoft-com:office:smarttags\" />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设计器生成代码这样就可以套用我们自己表了




Tags:  vb.net教程 vb6.0教程 vb教程 报表分组

延伸阅读

最新评论

发表评论