ActiveReports工作总结4——换页打印

环境:

vs2005+ActiveReportsNet2

AR下载地址:ftp://ftp.datadynamics.com/

 

 
本节目标:

有如下数据源
<!--[if !vml]--><!--[endif]-->

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

<!--[if !vml]--><!--[endif]-->

<!--[if !vml]--><!--[endif]-->

<!--[if !vml]--><!--[endif]-->

 

 

 

 

1,先准备如下数据:

 

 

 

 

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

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

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

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

 

<!--[if !vml]--><!--[endif]-->

 

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

 

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

<!--[if !vml]--><!--[endif]-->

 

 

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

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

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

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

 

<!--[if !vml]--><!--[endif]-->

 

 

6ok,御览看看效果吧。

<!--[if !vml]--><!--[endif]-->

<!--[if !vml]--><!--[endif]-->

 

 

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

修改这2textbox的属性:

CurrentPage:

<!--[if !vml]--><!--[endif]-->

 

TotalPage:

<!--[if !vml]--><!--[endif]-->

 

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

 

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

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

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

 

 

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

<!--[if !vml]--><!--[endif]-->



 

     Private   Sub  Form1_Load( ByVal  sender  As   Object ByVal  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
 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值