首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 企业软件 > 行业软件 >

VB打印表格与报表中设定显示时间

2012-09-21 
VB打印报表与报表中设定显示时间在做机房收费系统中学习到使用报表,首先得问题是报表是什么?报表有什么作

VB打印报表与报表中设定显示时间

      在做机房收费系统中学习到使用报表,首先得问题是报表是什么?报表有什么作用?

 

      报表:是企业管理的基本措施和途径,是企业的基本业务要求,报表可以帮助企业访问、格式化数据,并把数据信息以可靠和安全的方式呈现给使用者。深入洞察企业运营状况,是企业发展的强大驱动力。

 

      报表在未来的公司中发挥着越来越重要的作用,做机房收费系统首次接触到报表的制作,里面包含了报表的基本原理与内容,自己下载下来报表生成器之后先先试一番,感觉它虽然制作简单但是功能很强大、很好玩。在vb、报表、数据库三者相连的学习中重要知识点如下:

 

                   报表在vb中的声明

在vb中需要声明(周结账单为例):

Option ExplicitPrivate WithEvents objWeekliyBill As grproLibCtl.GridppReport '声明objWeekliyBill对象

 

     Withevents是什么意思呢?什么声明呢?

如下:Dim Withevents 对象变量 As 类名

这种用法是加载该类的事件,Withevents 之后就能在代码编辑窗看到该类的事件了(如果有的话)。
因为类不像控件,双击控件就可以进入事件编辑。

使用 WithEvents 变量时,应该注意下面这些限制条件:   
1.WithEvents变量不能是派生对象变量。也就是说,不能把它声明为As  Object—当声明该变量时必须指定类名。    
2.不能把 WithEvents 变量声明为As  New。必须明确地创建事件源对象,并将它赋给WithEvents变量。

如:

Private Sub Form_Load()        dtpBeginDate.Value = Date    dtpEndDate.Value = Date        Set objWeekliyBill = New grproLibCtl.GridppReport '创建事件源事件



3.不能在标准模块中声明 WithEvents 变量。只能在类模块、窗体模块以及其它定义类的模块中声明。
不能创建WithEvents 变量数组。

 

                              显示选定时间

在机房收费系统中有个周结账单中需要显示选定时间,如何实现的呢?

在报表主对象插入参数,右击--插入-参数,如有下方图:

 

VB打印表格与报表中设定显示时间

在模板中插入综合文字框如图:

VB打印表格与报表中设定显示时间

需要在vb中写入的程序:

Private Sub Form_Load()        dtpBeginDate.Value = Date    dtpEndDate.Value = Date        Set objWeekliyBill = New grproLibCtl.GridppReport '创建事件源事件        objWeekliyBill.LoadFromFile (App.Path & "\weekliybill.grf")    objWeekliyBill.DetailGrid.Recordset.ConnectionString = "FileDSN=room_charge_new.dsn;uid=sa;pwd=123456"    grdWeekliyBill.Report = objWeekliyBill        grdWeekliyBill.Start        objWeekliyBill.ParameterByName("BeginDate").Value = Format(dtpBeginDate.Value, "yyyy-mm-dd") '显示开始时间        objWeekliyBill.ParameterByName("EndDate").Value = Format(dtpEndDate.Value, "yyyy-mm-dd") '显示结束时间            End Sub


最终显示的结果

VB打印表格与报表中设定显示时间

 

               报表刷新

'报表的刷新Private Sub cmdRefresh_Click()    Dim strSQL As String    Dim strMsg As String        Dim objRsWeekliyBill As ADODB.Recordset    Dim objRsDaliyBill As ADODB.Recordset        If dtpBeginDate.Value > dtpEndDate.Value Then '条件限制        MsgBox "终止日期不能小于起始日期!", vbOKOnly + vbExclamation, "警告"        Exit Sub    End If            '日期的选定    strSQL = "select * from CheckDay_Info where checkdate>='" & dtpBeginDate.Value & "'" & " and checkdate<='" & dtpEndDate.Value & "'"    Set objRsDaliyBill = ExecuteSQL(strSQL, strMsg)        strSQL = "select * from CheckWeek_Info"    Set objRsWeekliyBill = ExecuteSQL(strSQL, strMsg)    Do While objRsWeekliyBill.EOF = False        objRsWeekliyBill.Delete        objRsWeekliyBill.MoveNext    Loop            '更新到日结表中    Do While objRsDaliyBill.EOF = False '判断是否有数据        With objRsWeekliyBill            .AddNew            .Fields(0) = objRsDaliyBill.Fields(0)            .Fields(1) = objRsDaliyBill.Fields(1)            .Fields(2) = objRsDaliyBill.Fields(2)            .Fields(3) = objRsDaliyBill.Fields(3)            .Fields(4) = objRsDaliyBill.Fields(4)            .Fields(5) = objRsDaliyBill.Fields(5)            .Update            objRsDaliyBill.MoveNext        End With    Loop                                            grdWeekliyBill.Refresh  '刷新    objWeekliyBill.ParameterByName("BeginDate").Value = dtpBeginDate.Value    objWeekliyBill.ParameterByName("EndDate").Value = dtpEndDate.Value                End Sub


 

打印报表

Private Sub cmdPrint_Click()    objWeekliyBill.[Print] (True)    End Sub


打印预览

Private Sub cmdPreView_Click()    objWeekliyBill.PrintPreview (True)    End Sub


        学习是个不断重复、积累、发掘的过程,这个过程可能短时间看不到明显的效果,但当我们暮然回首时会发现自己成长很多、收获很多,加油!

2楼chenfanglincfl昨天 20:24
提前学习
1楼zhanglianhai555昨天 15:27
顶@@!!

热点排行