[摘 要] 本文介紹在VB編程平臺上實現一種財務報表所見即所得打印技術及實現該技術的兩種編程方法,研究了兩種編程方法的特點及其適應性。
[關鍵詞] VB ;報表程序;ActiveReports
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2010 . 14 . 004
[中圖分類號]F270.7;TP311.1 [文獻標識碼]A [文章編號]1673 - 0194(2010)14- 0011- 02
所見即所得報表打印技術,是財務管理軟件的必備功能,也是管理軟件開發技術追求的一種風格。如微軟公司的辦公軟件Microsoft Excel的打印工具,就是大家所熟悉的。但把Microsoft Excel的打印工具移植到其他管理軟件上的技術復雜,不容易實現。本文提出以VB為編程平臺,以Microsoft Office Web Components組件為管理軟件前臺界面,以第三方控件ActiveReports為打印工具,實現一種類似Microsoft Excel的打印工具風格的財務報表打印技術,并分析實現該技術的兩種編程方法的特點,并對其進行比較。
1 技術平臺
該所見即所得報表打印技術的開發環境是VB 6.0,前臺控件是Spreadsheet電子表格,后臺打印控件是ActiveReports,底層數據庫采用Microsoft Access,以ADO為數據庫接口技術。
1.1技術界面
該所見即所得報表打印技術的前臺界面如圖1所示。
該界面外觀可調,表格的列寬、行高可任意調整,并能對任一列數據進行排序、篩選。
該所見即所得報表打印技術的后臺打印工具界面如圖2所示。
該打印工具的打印參數可調,如打印份數、頁面大小、橫打或豎打等可自行設置,顯示界面可放大縮小,一鍵式打印操作。
1.2兩種方法
實現該技術的關鍵是,怎樣把前臺界面的數據及其關系傳遞到打印工具界面。根據前臺界面數據及其關系的來源不同,本例采用兩種方法把前臺界面的數據及其關系傳遞到后臺打印工具界面。
第一種方法:前臺界面的數據及其關系來自底層數據庫MicrosoftAccess的,通過ADO從數據庫取出數據后,同時往前臺界面和打印工具界面輸送。這種方法可靠性高,前臺界面和打印工具界面都是重現數據庫的數據及其關系,數據及其關系不容易出錯,技術成熟。
第二種方法:前臺界面的數據來自人機接口(通常是手工輸入),則需要把前臺界面的數據及其關系往打印工具界面輸送,這種方法不如第一種方法的可靠性高。需要將數據與數據關系同時往打印工具輸送,并且要一一對應,缺一不可,數據或數據關系其中之一發生錯誤,都會導致失敗,因此這種方法比較煩瑣 。
2 相關代碼
2.1底層數據庫與前臺表格連接代碼
Dim Con As ADODB.Connection
Dim Rs As ADODB.Recordset
Set Con = New ADODB.Connection
Con.ConnectionString = _
\"Provider=Microsoft.Jet.OLEDB.4.0 ;\" _
\"data source = \" App.Path \"\\db1.mdb\"
Con.Open
Set Rs = Con.Execute(\"select zhaiyao,shuliang,jine,zengjian from \" TableName \" Where\" FieldName \" = '\" FieldVaLue \"'\")
Dim i As Integer
Dim h As Integer
h = 1
Do
For i = 0 To Rs.Fields.Count - 1
Spreadsheet1.Cells(h,1).Offset(1,i).Value=Rs.Fields(i).Value
Next i
Rs.MoveNext
If Rs.EOF = True Then
Exit Do
End If
h = h + 1
Loop
2.2底層數據庫與后臺打印工具數據連接代碼
Dim Con As ADODB.Connection
Dim Rs As ADODB.Recordset
Set Con = New ADODB.Connection
Con.ConnectionString = _
\"Provider=Microsoft.Jet.OLEDB.4.0 ;\" _
\"data source = \" App.Path \"\\db1.mdb\"
Con.Open
Set Rs = Con.Execute(\"select zhaiyao,shuliang,jine,zengjian from \" TableName \"\")
rptZH.DataControl1.Recordset = Rs
2.3 前臺表格與后臺打印工具數據連接代碼
rptSheBeiQingChe.Field2.DataValue= Spreadsheet1.
Range(\"B2\").Text
3 結束語
本文介紹并實現的所見即所得財務報表打印技術,所有編程元素均取自微軟公司對市場公開的技術,代碼簡單,界面簡潔,功能全面,適應性強,而且可以根據需求靈活調整,充分滿足不同財務報表打印要求。在筆者開發的若干財務軟件中使用,是成功的。
主要參考文獻
[1][美]Henry E Korth,S Sudarshan.數據庫系統概念[M].原書第4版.楊冬青,譯.北京:機械工業出版社,2003.
[2][美]David M Kroenke.數據庫處理——基礎、設計與實現[M].第7版. 施伯樂,譯.北京:電子工業出版社,2003.
[3][美]Wayne Freeze.Visual Basic數據庫編程寶典[M] .尹喆,譯.北京:電子工業出版社,2001.