系统中报表的使用

 

报表这块,由于比较生疏,都是自己从网上下载控件,然后看下载后的小例子,现学现卖的。

 下面是应用中的一个小模块:

Dim WithEvents Report As grproLibCtl.GridppReport ’‘声明report具有报表控件的事件

Private Sub cmdPrint_Click()  '打印报表
'因为报表对象的 Print 方法名与 VB 内部定义有冲突,所以要用中括号括起来   

 Report.[Print] (True)
End Sub

Private Sub cmdPrintPreview_Click()  '打印预览
    Report.PrintPreview (True)
End Sub

Private Sub Form_Load()

    Set Report = New grproLibCtl.GridppReport    '实例化一个报表
    '载入报表模板文件
    Report.LoadFromFile (App.Path & "\Checkweek.grf")

  ‘设置数据连接串

    Report.DetailGrid.Recordset.ConnectionString = "Provider=SQLOLEDB;Data Source=192.168.24.58;Initial CataLog=charge_my;UID=sa;PWD=123456"
   
    GRDisplayViewer1.Report = Report '查看报表
    GRDisplayViewer1.Start '显示报表
   
End Sub

'初始化,将DTPicker取得的时间转化成报表事件中字符串

'DTPicker是显示日期的控件

Private Sub Report_Initialize()
    Report.ParameterByName("BeginDate").AsString = Format(DTPicker1.Value, "yyyy-mm-dd")
    Report.ParameterByName("EndDate").AsString = Format(DTPicker2.Value, "yyyy-mm-dd")
End Sub

 

如果不用DTPicker控件的话,方法也可以

 

Dim withEvents Report As grproLibCtl.GridppReport   ‘声明report具有报表控件的事件

Dim starttime As Date

Dim endtime As Date

Private Sub cmdpreview_Click()

  Report.PrintPreview (True)   ‘报表预览

End Sub

Private Sub cmdprint_Click()

Report.[Print] (True)           ‘打印报表

End Sub

Private Sub cmdrefresh_Click()

Dataview.Stop                              ‘刷新报表

Set Report = New grproLibCtl.GridppReport      ‘实例化一个报表

Report.LoadFromFile (App.Path & "\Checkweek.grf")‘加载报表文件

Report.DetailGrid.Recordset.connectionstring = "filedsn=andy.dsn;UID=sa;pwd=123456"

‘建立连接,也可以在创建报表的时候

Report.DetailGrid.Recordset.QuerySQL = "select * from daily_account where daily_time between '" & starttime & "' and '" & endtime & "'"  ‘报表查看的内容

Dataview.Report = Report      ‘查看报表

Dataview.Start                ‘开始显示

End Sub

以上两种方法,其实相似的很,主要以掌握其实用为目的。

对于“dim withevents xx as adodb.recordset<br />”的理解:

其实这个声明,也没有什么难的。WithEvents 关键字,指定变量xx将用于处理对象的事件。可以通过提供类名来指定对象类型,该类是创建这个xx对象的类。<br />说明 xx 是一个用来响应由 ActiveX 对象触发的事件的对象变量。只有在类模块中才是合法的。使用 WithEvents,可以声明任意个所需的单变量,但不能使用 WithEvents 创建数组。New 和 WithEvents 不能一起使用。

posted on 2011-08-22 11:02  刘正权的博客  阅读(348)  评论(0编辑  收藏  举报