[Crystalreport] 分頁~資料數~限定每頁細項顯示資料數

  • 38053
  • 0
  • 2010-07-23

環境 : VS2005 + DataSet + 內建CrystalReports
需求 : 在報表顯示時,要求每一頁顯示的資料數不可超過20筆。
公式 :
IIF (OnLastRecord ,false ,if RecordNumber mod 20 = 0 then true else false );

環境 : VS2005 + DataSet + 內建CrystalReports

需求 : 在報表顯示時,要求每一頁顯示的資料數不可超過20筆。

1 . 建立範例資料 :

1-1 . 在專案裡 --> 方案總管窗格 --> 新增項目 --> 加入 --> 資料集 (DataSet1) ,參考(圖一)

(圖一)

1-2 . 左鍵點2下剛剛新增加入的 DataSet1,

在其內 工具箱窗格 -->拉一個 DataTable --> 在DataTable1 右鍵加入 --> 資料行 (參考圖二)

(圖二)

1-3 . 建立資料 :

在 Form_Load 事件加入以下

 


Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim TempStr(2) As String
        Dim DS As New DataSet1
        Dim TempTable As Data.DataTable = DS.Tables(0)

        For ii As Integer = 0 To 45

            TempStr(0) = "資料數 : " & ii
            TempStr(1) = "欄位2"
            TempStr(2) = "欄位3"
            TempTable.Rows.Add(TempStr)

        Next

        Me.CrystalReport11.SetDataSource(DS)
        Me.CrystalReportViewer1.ReportSource = Me.CrystalReport11
    End Sub

End Class

2 . 報表設計階段 :

2-1 . 將 DataSet1 匯入報表 : 欄位總管窗格 --> 資料庫欄位 --> 資料庫專家 (參考圖三)

 

專案資料 --> ADO.NET資料集 --> CrystalReportsApp... --> DataSet1 ,加入至右方(選取的資料表) 

(圖三)

2-2 . 報表欄位設計畫面 : (參考圖四)

(圖四)

2-3 . 設定分頁公式 : 在細項區塊 --> 右鍵 --> 區段專家,對區段專家設定視窗右方 設定, 在之後分頁(F)

撰寫 CrystalReport 公式 (參考圖五,圖六)

(圖五)

(圖六)

2-4 . 公式解說 :

CrystalReport 函數運用 : 函數分類 --> 列印狀態 -->

OnLastRecord : 判斷目前資料是否顯示到最後一筆,並回傳 True 或是 False 。

 RecordNumber : 記錄目前顯示的資料數,由 1~~N。

函數分類 --> 程式捷徑 --> 

IIF (運算式,當運算為 True ,當運算式為 False ) 

函數分類 --> 運算子 -->

mod :

公式 :

 

 IIF (OnLastRecord ,false ,if RecordNumber mod 20 = 0 then true else false );

判斷當 OnLastRecord = True ,表示最後一筆資料,就停止分頁。

判斷當 OnLastRecord = False ,就去計算 目前資料數 RecordNumber mod 20 是否等於 0 。

等於 0 表示繼續分頁,不等於 0 表示不分頁。

3 . 執行結果 : (參考圖七)

4 . 以上請多指導 :

 

IIF (OnLastRecord ,false ,if RecordNumber mod 20 = 0 then true else false );


==================================================== 
有些事就該把它當作一種回憶...
一種放在記憶中任隨時間慢慢的侵蝕慢慢的隨風漂泊........
 ===================================================
~~~請支持 點部落 格,點點下方的廣告吧~~~