机房收费系统 Part Five——认识新同学报表

    报表顾名思义就是向上级汇报情况的表格,当会计的天天和它打交道,虽然本人差一丢丢没考下会计证吧,但是对它还是有一些些了解的~

    随着信息时代的不断发展呢,会计都变成电算化的了,我们报表也不能落后了,我们可以利用报表设计器来实现数据与格式的分离,这样使用报表的人可以只修改数据,或者只修改格式了。在我的机房收费系统的结账环节就认识了这位新同学——报表。我们可以用它来总结一时间段内的收支情况,结账之后,把汇总的内容记录到CheckDay _Info表中,然后show给查账的人看的。

    VB、报表设计器、SQL Server数据库这三个对象怎么连接才能生成报表呢,下面我们就一步步的来分析:

(注:以下操作发生在结账之后,即CheckDay_Info表中已存在账单)

 

    一、SQL Server数据库与报表设计器的连接

 

           ①打开Grid++Report设计器,新建向导

           ②创建数据库连接,设置数据连接属性

机房收费系统 Part Five——认识新同学报表_第1张图片

 

           ③输入服务器名称要填写你的IP地址,记得要选择允许保存密码,否则就会报出下面的错误,我看了半天才知道是这个原因。。测试成功之后,在查询SQL中输入你的查询语句:SELECT * FROM CheckDay_Info

机房收费系统 Part Five——认识新同学报表_第2张图片

 

机房收费系统 Part Five——认识新同学报表_第3张图片

 

          ④定义存储报表明细记录的字段。

机房收费系统 Part Five——认识新同学报表_第4张图片

 

          ⑤定义明细网格中显示的列。

机房收费系统 Part Five——认识新同学报表_第5张图片

 

      到这里,我们报表的雏形就出来了。

 

机房收费系统 Part Five——认识新同学报表_第6张图片

 

     ⑥报表中参数的设置,以MakeNow参数设置为例。插入参数,修改参数的名称为MakeNow,数值类型设置为日期时间。在报表中插入一个综合文字框,输入参数名到[# #]这个里面,如:[#MakeNow#]。

 

机房收费系统 Part Five——认识新同学报表_第7张图片

 

             这样数据库与报表设计器的连接就实现了,把报表模板保存一下就行了。

 

   二、VB与报表的连接——报表控件

 

    ①首先你需要将grdes50.dll和gregn50.dll控件注册,添加Grid++Report Designer5.0 和Grid++Report Engine5.0部件,将GRDisplayViewer画到窗体里。下面的代码就可以加载账单了。其中那个MakeNow就是我们在设计报表时的参数,在这里我们赋给它时间。

<span style="font-family:KaiTi_GB2312;font-size:18px;"><strong>    TxtSQL = "select * from CheckDay_Info where date = '" & Format(Date, "yyyy-mm-dd") & "' "  '选出当天的账单
    Set Report = New grproLibCtl.GridppReport           '实例化报表对象

    Report.LoadFromFile App.Path & "\checkday.grf"    '加载报表模板
    Report.DetailGrid.Recordset.ConnectionString = "provider=sqloledb;server=192.168.24.230;database=AZZ_Charge;uid=sa;pwd=123456;"
    '连接到数据库
    TxtSQL = "select top 1 * from checkday_info order by date desc"
    '选出数据
    Report.DetailGrid.Recordset.QuerySQL = TxtSQL
    '查看报表
    Report.ParameterByName("Date").AsDateTime = Format(Date, "yyyy-mm-dd")
    Report.ParameterByName("MakeNow").AsDateTime = Format(Now, "yyyy-mm-dd hh:mm:ss")

    GRDisplayViewer1.Report = Report
    ' 设置报表查询显示器控件的关联报表对象
    GRDisplayViewer1.Start
    '启动报表运行
</strong></span>


       

      ②刷新日结账单,将最新的数据重新加载一次。

 

<span style="font-family:KaiTi_GB2312;font-size:18px;"><strong>Private Sub CmdSX_Click()     '刷新日结账单

    Report.DetailGrid.Recordset.QuerySQL = "SELECT TOP 1 * FROM CheckDay_Info ORDER BY Date DESC"  '按照降序排列,ASC是按照升序排列
    Report.ParameterByName("Date").AsString = Format(Date, "yyyy-mm-dd")
    Report.ParameterByName("MakeNow").AsDateTime = Format(Now, "yyyy-mm-dd hh:mm:ss")

    GRDisplayViewer1.Refresh
    
End Sub
</strong></span>

        

       ③打印预览

 

<span style="font-family:KaiTi_GB2312;font-size:18px;"><strong>Private Sub CmdShowPrint_Click()
    Report.PrintPreview (True)    '打印预览
End Sub
</strong></span>


       

       ④打印

 

<span style="font-family:KaiTi_GB2312;font-size:18px;"><strong>Private Sub CmdPrint_Click()     '打印
      Report.[Print] (True)
    
End Sub
</strong></span>

        在这里的Print要用中括号括起来,这里是为了与VB中的Print方法区别开。

         

       小结:

    对于报表的学习要先站在巨人的肩膀上,怎么体现的呢,那就是先用师姐给的模板,,当我发现参数没有办法设置的时候,我就会去想设计自己的报表模板。

 

     

 


 

你可能感兴趣的:(机房收费系统 Part Five——认识新同学报表)