ActiveReports工作总结2——数据源绑定

上次举了一个很简单的例子显示一个简单的AR模版,不过现实中,我们一般要求AR显示一组特定数据,这些数据可能是一个数据表,也可能是一个数组。 
     
这时候,就要求我们把这些数据绑定到我们的AR模版上了。AR3.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(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+AR3.0

c#的数据绑定,cure写过一篇,
http://www.cnblogs.com/dahuzizyd/archive/2006/07/18/453690.html

 
阅读更多
换一批

没有更多推荐了,返回首页