程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> ActiveReports工作總結4——換頁打印

ActiveReports工作總結4——換頁打印

編輯:.NET實例教程

環境:

vs2005+ActiveReportsNet2

AR下載地址:ftp://FTP.datadynamics.com/

 

 
本節目標:

有如下數據源
<!--[if !vml]--><!--[endif]-->

最終希望打印成如下(按班級進行分頁):

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

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

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

 

 

 

 

1,先准備如下數據:

 

 

 

 

2,創建一個AR模版,大致布局與控件如下圖:

GroupHeader中放入一個TextBox:CurrentClass,該控件希望顯示當前頁打印的Class。DataFIEld邦定字段”Class”

Detail section 中放3個Textbox,分別邦定字段”Class”,”ID”和”Name”(修改他們的DataFIEld屬性)

PageFooter放2個TextBox,分別用來顯示當前page和總page.

 

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

 

3,在form的load事件中編寫如下代碼,把數據源傳給模版,並顯示模版:

 

4,運行程序,帳票將被打印出來。

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

 

 

5,恩,帳票還沒有按Class分頁,看過前面一篇換列的文章的話,應該很容易就想到怎麼換頁了。

ok,點中Groupheader1,修改如下屬性:

DataFIEld:改成Class,恩,我們是根據Class字段換頁的,一旦數據源中的Class發生了改變,馬上就強制換頁。

NewPage:改成Before(Before:A班變成B班之前換頁;After:A班變成B班之後換頁。用After的話,B班的第一條紀錄還是會打印在當前也,大家可以試試)

 

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

 

 

6,ok,御覽看看效果吧。

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

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

 

 

7,大致完成了,就PageFooter中的頁碼還沒完成

修改這2個textbox的屬性:

CurrentPage:

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


 

TotalPage:

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

 

這是AR的統計功能,比如可以對當前頁面上的人數做統計,對當前頁面上的金額作統計,這個後面再講。

 

這裡就用到了簡單的PageCount統計。

第一個Textbox把SummaryRunning設置成All,是指每打印一張page,就統計一下當前的page的sum

第二個Textbox設置成none,就是只統計到最後一頁的page的sum。

 

 

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
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved