这时候,就要求我们把这些数据绑定到我们的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() 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