DevExpress使用dataset变量关联报表数据

来源:互联网 发布:陕甘回乱 左中堂知乎 编辑:程序博客网 时间:2024/05/18 15:06

这次的需求是希望使用DevExpress中的相关控件制作报表,而一般来说,不管是用微软自己的rdlc报表还是DevExpress,凡是涉及到数据绑定的环节基本上都是在讲如何直接连数据库然后做databinding,而我这次不需要从数据库中获取数据,而是内存中的一个dataset类型变量给报表传递数据,具体实现方法如下:

首先新建一个DevExpress的XtraReport,设计好报表样式,试验期间,只在报表中拖放了一个XrLabel控件,默认控件名称为XrLabel1,查看XtraReport的源代码,重新一下它的构造函数,实现带参数构造:

Public Class XtraReport1    ''' <summary>    ''' 重新构造函数    ''' </summary>    ''' <param name="ds">要传进来的dataset类型对象</param>    ''' <remarks></remarks>    Public Sub New(ByVal ds As DataSet)        InitializeComponent()   '必备的初始化控件过程        Me.DataSource = ds      '设置整个报表的数据源为传进来的ds参数        Me.XrLabel1.DataBindings.Add("Text", ds, "test")    '为报表中的控件添加数据绑定    End SubEnd Class

另外再新建一个winform,拖进去一个DevExpress的DocumentViewer控件和一个button,代码如下:

Public Class printForm    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click        Dim ds As New DataSet()        ds.Tables.Add("dt1")        ds.Tables("dt1").Columns.Add("test")        ds.Tables("dt1").Rows.Add({"tom"})        Dim x As New XtraReport1(ds)    '把ds对象传过去        Me.DocumentViewer1.DocumentSource = x   '设置DocumentViewer的文档源        x.CreateDocument()      '必须过程,否则不显示报表内容    End SubEnd Class

这样运行程序点击按钮后就可以看到预期的效果:在DocumentViewer中显示出来一个"tom"的报表~

0 0
原创粉丝点击