.NET重构(八):周结账单中,给报表添加参数

导读:进行完了日结报表的制作,大松一口气。不过,刚开始看着周结账单中的两个参数问题,也是愁了很久。不过,只要思想不滑坡,办法总比困难多。接下来,就写写我制作周结账单报表的过程。

一、添加参数

1,在日结账单中,报表已经是这个样子。

 

2,给报表添加参数。在报表数据中,右击参数,选择添加。

备注:有时候可能会没见着报表数据,打开视图,最下面选择报表数据。

 

3,设置参数属性。

注意:在选择数据类型时,有日期时间型,但这里我用的是文本。因为在实际应用中我只运用了日期,而如果将这边的参数类型设置为日期时间,那在U层的参数赋值就会有点小问题(后面会跟着时间,查询出错)。

4,添加文本框,将参数拖拽过去。如下图

5,为参数附表达式。右击文本框——表达式——常见函数——日期和时间:

 

到这里,参数的添加就完成了,接下来,就是在代码中的具体应用。

 

二、实际应用

查询两个日期间的数据不难,这里主要是说明U层中,关于报表的使用。

 

1,U层控件添加设置

 

2,代码实现

 

<span style="font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:24px;"> Private Sub btnQuery_Click(sender As Object, e As EventArgs) Handles btnQuery.Click

        '截止日期不能小于起始日期
        If DTP2.Value < DTP1.Value Then
            MsgBox("截止日期不能小于起始日期")
            DTP2.Focus()
            Exit Sub
        End If

        Dim strStartDate As String = DTP1.Value.Date.ToString()
        Dim strEndDate As String = DTP2.Value.Date.ToString()

        Dim listCheckInfo As New List(Of Model.CheckInfoM)
        Dim FCheck As New Facade.CheckOutFA
        listCheckInfo = FCheck.QueryByRDate(strStartDate, strEndDate)

        '填充报表
        '返回的泛型集合为0,则里边没有东西  
        If listCheckInfo.Count > 0 Then

            '定义报表数据源  
            Dim rptDataSource As New ReportDataSource
            '数据源的名称,也就是连接数据库时设置的数据集名称  
            rptDataSource.Name = "DataSet1"
            rptDataSource.Value = listCheckInfo
            '说明ReportViewer承载的报表名  
            ReportViewer1.LocalReport.ReportEmbeddedResource = "Charge.UI.ReportWeek.rdlc"
            '设置两个参数的值  
            Dim StartDate As ReportParameter = New ReportParameter("StartDate", strStartDate)
            ReportViewer1.LocalReport.SetParameters(New ReportParameter() {StartDate})

            Dim EndDate As ReportParameter = New ReportParameter("EndDate", strEndDate)
            ReportViewer1.LocalReport.SetParameters(New ReportParameter() {EndDate})
            '清空ReportViewer的数据源  
            ReportViewer1.LocalReport.DataSources.Clear()
            '加载ReportViewer的数据源为rptDataSource  
            ReportViewer1.LocalReport.DataSources.Add(rptDataSource)
            '刷新ReportViewer  
            Me.ReportViewer1.RefreshReport()

        Else
            MsgBox("这段时间内没有您要的查询内容,请重新选择时间!", MsgBoxStyle.Exclamation, "警告")
            Exit Sub

        End If


    End Sub
</span></span>

 

 

 

 

 

三、个人收获

 在周结账单中,只是添加了两个参数,但在刚开始的时候,还是让自己忙活了很久。好在后来终于是给解决了,在这途中,我觉得还是得相信自己的能力,有时候做着做着就烦了,就不想做。但,希望就在你前方。或许,再多查一个资料,再多问一个同学,更甚至是,自己再多憋一分钟,问题就能解决。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 20
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值