Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6642841
  • 博文数量: 915
  • 博客积分: 17977
  • 博客等级: 上将
  • 技术积分: 8846
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-26 09:59
个人简介

一个好老好老的老程序员了。

文章分类

全部博文(915)

文章存档

2022年(9)

2021年(13)

2020年(10)

2019年(40)

2018年(88)

2017年(130)

2015年(5)

2014年(12)

2013年(41)

2012年(36)

2011年(272)

2010年(1)

2009年(53)

2008年(65)

2007年(47)

2006年(81)

2005年(12)

分类:

2008-06-11 14:58:50

vs2005+ActiveReportsNet2

AR下载地址:

 

 
本节目标:

有如下数据源


最终希望打印成如下(按班级进行分页):

 

 

 

 

1,先准备如下数据:

 

 

 

 

2,创建一个AR模版,大致布局与控件如下图:

GroupHeader中放入一个TextBoxCurrentClass,该控件希望显示当前页打印的ClassDataField邦定字段”Class”

Detail section 中放3Textbox,分别邦定字段”Class”,”ID””Name”(修改他们的DataField属性)

PageFooter2TextBox,分别用来显示当前page和总page.

 

 

3,在formload事件中编写如下代码,把数据源传给模版,并显示模版:

 

4,运行程序,帐票将被打印出来。

 

 

5,恩,帐票还没有按Class分页,看过前面一篇换列的文章的话,应该很容易就想到怎么换页了。

ok,点中Groupheader1,修改如下属性:

DataField:改成Class,恩,我们是根据Class字段换页的,一旦数据源中的Class发生了改变,马上就强制换页。

NewPage:改成BeforeBeforeA班变成B班之前换页;AfterA班变成B班之后换页。用After的话,B班的第一条纪录还是会打印在当前也,大家可以试试)

 

 

 

6ok,御览看看效果吧。

 

 

7,大致完成了,PageFooter中的页码还没完成

修改这2textbox的属性:

CurrentPage:

 

TotalPage:

 

这是AR的统计功能,比如可以对当前页面上的人数做统计,对当前页面上的金额作统计,这个后面再讲。

 

这里就用到了简单的PageCount统计。

第一个TextboxSummaryRunning设置成All,是指每打印一张page,就统计一下当前的pagesum

第二个Textbox设置成none,就是只统计到最后一页的pagesum

 

 

8,最后的结果,目标达成了



 


    Private Sub Form1_Load(ByVal sender As ObjectByVal e As System.EventArgs) Handles Me.Load

        
Dim conn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb;Persist Security Info=False"

        
Dim cmd As String = "Select * from table1 order by ID"

        
Dim adapter As New OleDbDataAdapter(cmd, conn)

        
Dim ds As New DataSet

        adapter.Fill(ds)

 

        
Dim rpt As New rpt1

        rpt.DataSource 
= ds.Tables(0)

        rpt.Run()

 

        
Me.Viewer1.Document = rpt.Document

End Sub
 

阅读(4648) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~