简单地说:报表就是用图表、表格等格式来动态显示数据,用一个公式来表示的话,就是“报表 = 多样的格式 + 动态的数据”,报表可以说是企业管理的基本措施和途径,是企业的基本业务要求,可以说是企业运作所必须的。
要想在VB中使用报表,首先必须得安装一款报表的软件,在我做收费系统的时候,我用的是Grid++Report报表软件,然后打开VB——引用,找到图中的两个控件,添加之后,会显示两个新的部件,
打开Grid++Report报表设计器,插入——报表头、明细网格、报表尾,要想成功的用VB报表成功,接下来,分成两大主要部分:
1、数据库与报表的连接
在明细网格上有三个图标,
先点第一个,“数据库连接串与查询SQL”
创建数据库连接串——数据连接属性,选择“Microsoft OLE DB Provider for SQL Server”——下一步
做完以上步骤之后,点第2、3个图标,按顺序,“根据数据设置自动生成字段”——“根据字段自动生成列”
到这,数据库和报表的连接完成。
2、VB与报表的连接
通过代码将报表加载到VB中去,首先添加显示报表的控件,GRDisplayViewer1,接下来,就是写代码了!
Dim Report As New grproLibCtl.GridppReport '实例化报表
Private Sub Form_Load()
Dim strSQL As String
'当日没有汇总记录是不显示报表
strSQL = "select * from checkday_info where date = '" & Format(Date, "yyyy-mm-dd") & "'"
Set Report = New grproLibCtl.GridppReport '创建报表对象
Report.LoadFromFile (App.Path & "\ChargeCheckDay.grf") '加载模板
'建立数据连接
Report.DetailGrid.Recordset.ConnectionString = "Provider=SQLOLEDB.1;Password=123456;Persist Security Info=True;User ID=sa;Initial Catalog=charge_sys;Data Source=;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=;Workstation ID=;Use Encryption for Data=False;Tag with column collation when possible=False"
Report.DetailGrid.Recordset.QuerySQL = "select top 1 * from checkday_info order by date desc" '通过SELECT查询创建记录集
'查看表
GRDViewer.Report = Report
GRDViewer.Start
End Sub
报表的打印和打印预览:
Private Sub cmdPrint_Click() Report.[Print] (True) '打印 End Sub
Private Sub cmdPrePrint_Click() '因为报表对象的print方法名与VB内部定义有冲突,所以要用中括号括起来 Report.PrintPreview (True) '打印预览 End Sub
报表的刷新:
Private Sub cmdRefresh_Click() Report.DetailGrid.Recordset.QuerySQL = "select top 1 * from checkday_info order by date desc" GRDViewer.Refresh '刷新日结账单 End Sub