ActiveReports工作總結2——資料來源綁定

來源:互聯網
上載者:User

汗,很久沒更新blog了,寶寶剛出生,忙著帶孩子,工作也比較忙,實在是沒精力更新blog了·@_@

上次舉了一個很簡單的例子顯示一個簡單的AR模版,不過現實中,我們一般要求AR顯示一組特定資料,這些資料可能是一個資料表,也可能是一個數組。 
     
這時候,就要求我們把這些資料繫結到我們的AR模版上了。AR2.0支援如下資料來源:   
DataSet
DataTable
DataView
IListSource

綁定資料來源的代碼如下:

            '創建AR模版實例
            Dim rpt As New ARSimpleExample

            '指定數據源為mytable
            rpt.DataSource = mytable
            rpt.DataMember = mytable.TableName

            '顯示AR模版
            Me.Viewer1.Document = rpt.Document
            rpt.Run()

現在我們舉一個例子,假如我有一個Studeng表,結構如下:     
No       Name        
1          Tom 
2          John
3          Mary  

               
我要把他們顯示到AR模版中去,我們有如下工作要做:     
1,在我們的Form的frmShowAR_Load事件中,做一下綁定資料來源的操作(把mytable綁定到AR模版中去),代碼如下:   

    ''' -----------------------------------------------------------------------------
    ''' <summary>
    ''' form load事件
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks>
    ''' form load時,把AR模版裝載到Viewer容器中去
    ''' </remarks>
    ''' <history>
    '''     [TonyGong]    6/5/2006    Created
    ''' </history>
    ''' -----------------------------------------------------------------------------
    Private Sub frmShowAR_Load()Sub frmShowAR_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Try
            '創建一個talbe,格式如下:
            'No             Name
            '1              Tom
            '2              John
            '3              Mary
            Dim mytable As New DataTable
            mytable.Columns.Add("No")
            mytable.Columns.Add("Name")

            Dim myrow As DataRow
            myrow = mytable.NewRow()
            myrow("no") = "1"
            myrow("name") = "Tom"
            mytable.Rows.Add(myrow)

            myrow = mytable.NewRow()
            myrow("no") = "2"
            myrow("name") = "John"
            mytable.Rows.Add(myrow)

            myrow = mytable.NewRow()
            myrow("no") = "3"
            myrow("name") = "Mary"
            mytable.Rows.Add(myrow)



            '創建AR模版實例
            Dim rpt As New ARSimpleExample

            '指定數據源為mytable
            rpt.DataSource = mytable
            rpt.DataMember = mytable.TableName


            '顯示AR模版
            Me.Viewer1.Document = rpt.Document
            rpt.Run()

        Catch ex As Exception
            MessageBox.Show(ex.ToString)
        End Try

2,綁定好資料來源,AR模版就得到了mytable的所有值,然後是要把這些值顯示出來。
先要在AR模版上加幾個控制項用來顯示資料,

開啟我們的模版,在PageHeader中放入2個Lable控制項,用來顯示Title,把它們的Text屬性分別改成“”和“姓名”

然後在Detail中放入2個Textbox控制項,用來顯示學生的No和Name
關鍵的屬性是DataField,這裡要填入該TextBox要綁定的列,
  

3,ok,很簡單吧,以上2步設定好之後,就可以正常顯示了,按F5,效果如下: 

效果是出來了,不過稍微醜了一點,改一下布局(把PageHeader和Detail的高度改成正好放下控制項的高度),給每個控制項加上邊框(右擊控制項,選擇Format Border),改成如下:

再運行,樣子好看多了吧。

本節代碼下載:http://files.cnblogs.com/batoosai/SimpleExample2.rar

下一節說一下資料的分列和換頁(比如有2個班級學生的話,每頁顯示一個班級的學生)

環境:VB2003+AR2.0

c#的資料繫結,cure寫過一篇,
http://www.cnblogs.com/dahuzizyd/archive/2006/07/18/453690.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.