【机房收费系统】周结账单报表实现

本文档介绍了如何实现周结账单报表,相对于日结账单,周结账单涉及参数添加及按日期时间段查询数据库。通过添加文本格式参数、设置参数表达式以及在代码中处理数据源来完成报表制作。最后,作者分享了自我学习报表操作的过程和感悟。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   【背景】

在上一篇介绍了日结账单报表的实现,而周结账单报表相对于日结账单报表的实现比较复杂,因为它涉及到参数的添加,并且要根据两个日期里的时间段查询数据库里的数据并把数据显示在报表里,这个时候报表的实现需要我们用代码实现。首先我们看一下实现成功的报表。

   


【制作过程】


1、添加参数(如何添加新的报表,为报表添加数据源已在上篇介绍了,在这里就不重复了)。在这里需要注意的是,所有的参数都选这文本格式。

                              

          


2、给报表添加参数,拖拽至报表里的合适位置即可。

          


3、为报表里添加好的参数添加表达式,选中参数在右击弹出框里选中表达式即可。在表达式里选择,参数类型即可。步骤如下。

    

      

      


4、代码部分

这个时候报表的制作也算是告一段落,直接在窗体添加报表,注意不要选择数据源,数据源用代码添加,下面是代码部分。

     

Imports Microsoft.Reporting.WinForms
Imports System
Public Class CheckWeekUI

    Private Sub CheckWeekUI_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Me.ReportViewer1.RefreshReport()
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        '终止日期不能小于起始日期
        If DTP2.Value < DTP1.Value Then
            MsgBox("终止日期不能小于起始日期")
            DTP2.Focus()
            Exit Sub
        End If
        '  Dim check As New Model.CheckEntity
        Dim strStartDate As String = DTP1.Value.Date.ToString()
        Dim strEndDate As String = DTP2.Value.Date.ToString()
        Dim dt As New DataTable
        Dim checkBll As New BLL.CheckBLL
        dt = checkBll.SelectCheck(strStartDate, strEndDate)

        If dt.Rows.Count > 0 Then
            '定义报表数据源
            Dim rptDataSource As New ReportDataSource
            '数据源的名称
            rptDataSource.Name = "DataSetWeek"
            rptDataSource.Value = dt
            '说明reportview承载的报表名
            ReportViewer1.LocalReport.ReportEmbeddedResource = "Jifang.UI.CheckWeekReport.rdlc"
            '设置三个参数的值
            Dim StartDate As ReportParameter = New ReportParameter("startTime", strStartDate)
            ReportViewer1.LocalReport.SetParameters(New ReportParameter() {StartDate})
            Dim EndDate As ReportParameter = New ReportParameter("endTime", strEndDate)
            ReportViewer1.LocalReport.SetParameters(New ReportParameter() {EndDate})
            Dim userID As ReportParameter = New ReportParameter("UserID", LoginUI.txtUserName.Text.Trim())
            ReportViewer1.LocalReport.SetParameters(New ReportParameter() {userID})
            '清空Reportview的数据源
            ReportViewer1.LocalReport.DataSources.Clear()
            '加载Reportview的数据源
            ReportViewer1.LocalReport.DataSources.Add(rptDataSource)
            '刷新Reportview
            Me.ReportViewer1.RefreshReport()
        Else
            MsgBox("这段时间内没有您要的查询内容,请重新选择时间!")
            Exit Sub
        End If

    End Sub
End Class
  这个时候就算是完成了,可以运行检测了。Good lock!

     【小结】

  报表的操作,我从不懂,到现在的还算是懂得一些运用,从中也看了不少同学的博客,也问了一些同学,当我问到思思的时候,思思说这个还是你自己去了解吧,我怪她对我太恨,可是没有她对我的“恨”,我也不会从中懂得那么多,还是感谢思思对我的恨啊,不然我也不会去看大量的博客,从中寻找我要的信息,从中学到不少内容。事还是自己的,得自己去想办法解决,这样才会收获更多。

     

   

评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值