摘要:無論是金融系統(tǒng),還是單位內(nèi)部賬目管理系統(tǒng)以及高校的新生通知書管理系統(tǒng)等等都涉及到單據(jù)套打,目前極少有哪個(gè)開發(fā)工具集成此功能,對(duì)于單頁的套打較易處理,而連續(xù)單據(jù)的套打往往存在空白頁以及打印錯(cuò)位等問題,針對(duì)此類問題,我經(jīng)過大量的實(shí)驗(yàn),終于解決了此問題,現(xiàn)將核心代碼介紹給大家參考。
關(guān)鍵詞:連續(xù)紙張 單據(jù)套打
由于連續(xù)走紙式的單據(jù)套打涉及的領(lǐng)域較多,但其基本原理相同,因此我們這里以特快郵寄單據(jù)為例,向大家介紹此功能的實(shí)現(xiàn)過程。
1 開發(fā)環(huán)境
1.1 軟件環(huán)境 開發(fā)工具:Visual Basic 6.0;數(shù)據(jù)庫:Sql Server2000。
1.2 硬件環(huán)境 打印機(jī):具有連續(xù)走紙功能的針式打印機(jī)。
2 數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)庫名稱:DJP;數(shù)據(jù)表名稱:郵寄信息。
3 核心代碼
在VB環(huán)境下創(chuàng)建一個(gè)工程(單據(jù)套打.vbp),然后創(chuàng)建一個(gè)窗體(DataPrn.frm)和模塊文件(mk.bas)。
首先在模塊文件中定義如下對(duì)象、過程,以便在其他過程中調(diào)用,具體功能模塊如下:
3.1 數(shù)據(jù)庫操作 Public conn As New ADODB.Connection 數(shù)據(jù)庫連接對(duì)象
Sub conn_data() 數(shù)據(jù)庫連接過程
Set conn = New ADODB.Connection
conn.ConnectionString = \"driver={sql server};server=服務(wù)器IP;database=數(shù)據(jù)庫名;uid=sa;pwd=\"
conn.Open
End Sub
Sub DataCL (sql as string) 數(shù)據(jù)添加、修改、刪除操作
Conn. Execute(sql)
End Sub
3.2 單據(jù)套打 Private Sub prndata(Jname As String,Jphone As String, Jdw As String,Jdz As String,Jyzm As String,Sname As String,Sphone As String,Sdw As String,Sdz As String,Syzm As String)
Open \"LPT1\" For Output As #1
For i = 1 To 6
Print #1,Chr(13)
Next i
Print #1,Chr(27);\"IE\";Space(8) JnameSpace(16) Jphone Space(16) Sname Space(17) Sphone
Print #1,Chr(13)
Print #1,Chr(27);\"IE\";Space(16) Jdw Space(31) Sdw
Print #1,Chr(13)
Print #1,Chr(27);\"IE\";Space(8) Jdz Space(26) Sdz
Print #1,Chr(13):Print #1,Chr(13)
Print #1,Chr(27);\"IE\";Space(34) Jyzm Space(43) Syzm
For i =1 To 9
Print #1,Chr(13)
Next i
Print #1,Chr(27);\"IE\";Space(13) Jname
For i=1 To 6
Print #1,Chr(13)
Next i
Close #1
End Sub
3.3 打印輸出 在窗體(DataPrn.frm)上拖放一個(gè)按鈕,在按鈕的單擊事件中,定義如下語句,以實(shí)現(xiàn)打印郵寄信息表中的數(shù)據(jù)。
Private Sub Command1_Click()
Conn_data
Sql=”select * from 郵寄信息order by郵寄者單位”
Set Rs=new ADODB.RECORDSET:Rs.open sql,conn,3,1
Jname =”張飛”:Jphone=”13804381111”:Jdw=”松原職業(yè)技術(shù)學(xué)院”
Jdz=”松原市寧江區(qū)中山大街1號(hào)”:Jyzm=”138005”
Sname=rs(“考生”):Sphone=rs(“考生電話”):Sdw=rs(“考生單位”)
Sdz=rs(“考生地址”):Syzm=rs(“考生郵編”)
While not rs.eof
Prndata Jname,Jphone,Jdw,Jdz,Jyzm,Sname,Sphone,Sdw,Sdz,Syzm ):rs.movenext
wend
End Sub
上述即為實(shí)現(xiàn)單據(jù)連續(xù)套打的核心程序代碼,如果需要,結(jié)合自己稍加修改即可達(dá)到您的需求,同時(shí)懇請(qǐng)各位同仁批評(píng)指正,讓我們共發(fā)展、共提高!