AR换页打印
vs2005+ActiveReportsNet2
AR下载地址:ftp://ftp.datadynamics.com/
本节目标:
有如下数据源
最终希望打印成如下(按班级进行分页):
1,先准备如下数据:
2,创建一个AR模版,大致布局与控件如下图:
GroupHeader中放入一个TextBox:CurrentClass,该控件希望显示当前页打印的Class。DataField邦定字段”Class”
Detail section 中放3个Textbox,分别邦定字段”Class”,”ID”和”Name”(修改他们的DataField属性)
PageFooter放2个TextBox,分别用来显示当前page和总page.
3,在form的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
4,运行程序,帐票将被打印出来。
5,恩,帐票还没有按Class分页,看过前面一篇换列的文章的话,应该很容易就想到怎么换页了。
ok,点中Groupheader1,修改如下属性:
DataField:改成Class,恩,我们是根据Class字段换页的,一旦数据源中的Class发生了改变,马上就强制换页。
NewPage:改成Before(Before:A班变成B班之前换页;After:A班变成B班之后换页。用After的话,B班的第一条纪录还是会打印在当前也,大家可以试试)
6,ok,御览看看效果吧。
7,大致完成了,就PageFooter中的页码还没完成
修改这2个textbox的属性:
CurrentPage:
TotalPage:
这是AR的统计功能,比如可以对当前页面上的人数做统计,对当前页面上的金额作统计,这个后面再讲。
这里就用到了简单的PageCount统计。
第一个Textbox把SummaryRunning设置成All,是指每打印一张page,就统计一下当前的page的sum
第二个Textbox设置成none,就是只统计到最后一页的page的sum。
8,最后的结果,目标达成了
本篇代码下载:https://files.cnblogs.com/batoosai/SimpleExample4.rar
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理