我用的是Grid++Report,相对VB自带的报表和Crystal Reports而言,这种方法是被普遍认为最简单的方法了。其实,利用Grid++Report方法,无疑是先制作一个报表的模版,然后利用VB,将报表模板引用过来,明白了这个道理,报表也就简单多了。在利用Grid++Report实现报表的问题时,遇到了很多的问题,例如如何在报表中显示系统当前的时间等等。
下面是关于日结账单中报表的代码,供大家参考,便于我们共同学习!
Private WithEvents Report As grproLibCtl.GridppReport '声明对象变量Report
Private Sub cmdPrint_Click() '打印报表
Report.[Print] (True)
'因为报表对象的print方法名与VB内部定义有冲突,所以要用中括号括起来
End Sub
Private Sub cmdPrintShow_Click() '打印预览
Report.PrintPreview (True)
End Sub
Private Sub Form_Load()
Dim strsql As String
Dim strMsg As String
Dim mrc As ADODB.Recordset
'创建报表对象
Set Report = New grproLibCtl.GridppReport
'载入报表模版文件
Report.LoadFromFile (App.Path & "\日结账单.grf ")
'设置数据连接串
Report.DetailGrid.Recordset.ConnectionString = ConnectString '数据源
'用来使GRDisplayViewer1报表查询器控件显示报表中的内容
GRDisplayViewer1.Report = Report
GRDisplayViewer1.Start
'报表中参数的设置
Report.ParameterByName("startdate").Value = Now '加载标题下面的当前时间
Report.ParameterByName("Datenow").Value = Now '加载制表时间
End Sub