這時候,就要求我們把這些數據綁定到我們的AR模版上了。AR2.0支持如下數據源:
DataSet
DataTable
DataView
IListSource
綁定數據源的代碼如下:
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(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://www.cnblogs.com/Files/batoosai/SimpleExample2.rar
下一節說一下數據的分列和換頁(比如有2個班級學生的話,每頁顯示一個班級的學生)
環境:VB2003+AR2.0