首页 > 代码库 > VB.Net之旅—报表的制作(RDLC)

VB.Net之旅—报表的制作(RDLC)

我们在这里以机房收费系统周结账单为例,讲解一下VS2008报表的制作

新建一个窗体,从工具箱中拖一个MicrosoftReportViewer控件到窗体中,点击MicrosoftReportViewer右边的小三角,然后选择设计新报表

 

选择已有数据源或添加新数据源

我们在这里添加数据源

选择已有连接或新建连接

我们在这里新建连接,测试连接成功后,选择确定

之后单击下一步,选择数据库对象,单击完成

选择新添加的数据源,选择下一步

 

选种左边字段,点击详细信息,点击下一步

 

点击下一步,对报表重命名,点击完成

我们进入报表设计窗体,窗体左侧会出现工具箱,数据源,我们还可以通过视图->工具栏,选择相应的报表菜单。

 

注意图中的每个小窗格都是文本框,我们可以自己手动输入要显示的文字,也可以根据需要右击单个文本框,选择表达式,

 

 

 

 

注意:选择函数的返回值和参数的设定数据类型必须一致,否则会出现:报表内部错误地提示

我们相应的定义endDate

 

 

设计好报表后,关闭设计报表窗口,通过右击ReportViewer1控件的小三角,选择报表来源,选择后,我们可以看到窗体下角的数据库连接控件

我们通过右击文本框选择表达式来给各个文本框赋值,并对报表进行布局(所见即所得)

 

我们需要通过使用向导配置数据集

 

 

 

我们通过添加或者配置已有的查询来得到自己想要的数据,然后通过查询生成器

 执行查询,输入参数,检验查询语句的正确性

 Private Sub btnQuery_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnQuery.Click
        begindate = beginDatePicker.Text.Trim
        enddate = endDatePicker.Text.Trim
 
        '报表参数,注意此处的字符串“”必须与报表中的参数一致,区分大小写,否则就会报错
        Dim params() As ReportParameter = {New ReportParameter("AdminName", admin.Name), _
                                           New ReportParameter("beginDate", begindate), _
                                           New ReportParameter("endDate", enddate), _
                                           New ReportParameter("Stime", Format(Now, "HH:mm:ss"))}
 
        '接受报表参数
        ReportViewer1.LocalReport.SetParameters(params)
 
 
        '利用我们之前利用设计器编辑的数据集中的查询语句,为我们的报表中加载数据,需要提供查询语句中的参数
        Me.T_WStatement_infoTableAdapter.FillWeek(Me.Room_Charge_SystemDataSet1.T_WStatement_info, begindate, enddate)
 
        Me.T_DStatement_infoTableAdapter.FillWeek(Me.Room_Charge_SystemDataSet.T_DStatement_info, begindate, enddate)
 
        Me.ReportViewer1.RefreshReport()
 
    End Sub



这次报表的制作可谓费时费力,之前看了一篇崔成龙师哥的博客,其中有"报表数据"一项,可以直接将参数拖到文本框中,可是师哥用的是VS2010啊,我用的VS2008呀,这其中版本有别,参数添加方式同样有别,现在才知道VS2008是通过右击文本框通过表达式添加参数的。呵呵,凡事不可钻牛角尖啊,费时费力还费感情。

VB.Net之旅—报表的制作(RDLC)