做了很长一段时间的机房收费系统,感觉有几大难点,着实查了好多的资料才可以让功能得以实现!下面就来讲一下我认为的一个难点————报表的建立以及和vb的链接。
以建立周结账单为例:
首先:我用的是,5.0的。
插入----报表头。然后插入----静态框,在静态框中输入文字(或者在右侧属性栏中写入文字和设置字体)。如下图
然后插入你用到的参数,和明细网络在周汇总表中如下:
然后选择:报表-------明细数据库查询。点击创建数据库连接串与查询SQL按钮,弹出下图,然后按步骤操作:
这就是完成以后的报表!
其次插入------综合文字框。写入建表时间。在周汇总表里是写入“从[#DateStart#]到[#DateEnd#]”,因为要显示两端时间之间的时间。如下图
这里可以选允许保存密码!
然后会显示下图,但是图中的那个查询SQL语句必须自己写,而且不能加双引号:
最后,选择编辑-----根据明细查询SQL生成字段;和编辑-----根据字段生成表格列,就完成了下图
根据我的观察,这个明细网格中的列应该和数据库里的周结表中的列是一样的!也就是这个报表把数据库表中的数据可视化了!真的是一款很方便的软件!
下面咱们再谈谈怎么让vb和报表连接。
首先在加载窗体时写下如下代码:
'定义控件属性
DTPicker1.Value = Date
DTPicker2.Value = Date
Dim txtsql As String
Dim msgtext As String
txtsql = "select * from Weekstatement_Info where date >= '" & DTPicker1.Value & "'" & " and date <= '" & DTPicker2.Value & "'"
Set Report = New grproLibCtl.GridppReport '实例化模板
Report.LoadFromFile (App.Path & "\周汇总报表.grf")
Report.DetailGrid.Recordset.ConnectionString = "FileDSN=Mycharge.dsn;UID=sa;PWD=123456" '创建连接
Report.DetailGrid.Recordset.QuerySQL = txtsql '利用txtsql语句查询
GRDisplayViewer1.Report = Report
GRDisplayViewer1.Start
其实还有一种连接方法,我用于日结报表和vb的连接了,代码如下:
Dim txtsql As String
Dim msgtext As String
txtsql = "select * from Daystatement_Info where date = '" & Format(Date, "yyyy-mm-dd") & "'"
Set Report = New grproLibCtl.GridppReport '实例化模板
Report.LoadFromFile App.Path & "\日汇报表.grf" '加载报表模板
Report.DetailGrid.Recordset.ConnectionString = ConnectString() '连接数据源
Report.DetailGrid.Recordset.QuerySQL = txtsql '通过select查询创建记录集
GRDisplayViewer1.Report = Report
GRDisplayViewer1.Start
但是在连接之前得先声明一段代码用于定义事件接口
Dim WithEvents Report As grproLibCtl.GridppReport
这样vb和报表的链接就写好了!
怎么样?是不是很简单!接下来的难点我们大家就好好加油吧!