首页
/
每日頭條
/
職場
/
vb程序打印表格線
vb程序打印表格線
更新时间:2025-05-13 05:10:40

vb程序打印表格線?Public Sub PrintsalaryList1() ' Dim printer As Printer '初始化Printer對象,今天小編就來聊一聊關于vb程序打印表格線?接下來我們就一起去研究一下吧!

vb程序打印表格線(用VB編寫打印工資條程序)1

vb程序打印表格線

Public Sub PrintsalaryList1() ' Dim printer As Printer '初始化Printer對象

Dim PageHeader As Long '打印頁上部留空 Dim PageFooter As Long '打印頁下部留空 Dim PageLeft As Long '打印頁左部留空 Dim PageRight As Long '打印頁右部留空 Dim UseWidth As Long Dim UseHeight As Long Dim i, j, k, c, b As Integer Dim Word As String Dim StartX As Long Dim StartY As Long Dim StartyLine As Long '用來紀錄打印豎線的起點 Dim EndyLine As Long ' 用來紀錄打印豎線的末點 Dim strTitle As String Const w1 = 1.5, w2 = 2 '設置線與字段之間的距離 Const h = 14 '設置表格的高度 Dim v(40) As Variant '定義數組 将字段值導入 Dim N As Integer '用于記錄表的列數 Dim l1, l2, m, t As Variant '設置标題 strTitle = t1 N = Adodc1.Recordset.Fields.Count ' Dim strSubTitle As String ' strSubTitle = "Printer對象打印報表實例" '建立一個ADO數據連接 ' Dim DataConn As New ADODB.Connection ' Dim DataRec As New ADODB.Recordset ' Dim strSQL As String '若數據庫連接出錯,則轉向ConnectionERR ' On Error GoTo ConnectionERR ' '建立一個連接字串 ' '這個連接串可能根據數據庫配置的不同而不同 ' DataConn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;" ' DataConn.ConnectionString = DataConn.ConnectionString & "Persist Security Info=False;" ' DataConn.ConnectionString = DataConn.ConnectionString & "Initial Catalog=pubs;" ' DataConn.ConnectionString = DataConn.ConnectionString & "Data Source=land-net" ' '建立數據庫連接 ' DataConn.Open ' '若RecordSet建立出錯,則轉向RecordsetERR ' On Error GoTo RecordSetERR ' strSQL = "SELECT au_lname,au_fname,phone " ' '從表authors查詢 ' strSQL = strSQL & "FROM authors" ' DataRec.Open strSQL, DataConn ' On ERRor GoTo PrintERR '設置頁面參數 On Error GoTo PrintERR PageHeader = 5 PageFooter = 25 PageLeft = 20 PageRight = 20 With Printer .ScaleMode = 6 .ScaleLeft = 0 .ScaleTop = -5 '設置紙型 .PaperSize = psize .FontSize = fsize ' .ScaleWidth = 210 ' .ScaleHeight = 297 UseWidth = .ScaleWidth UseHeight = .ScaleHeight - 30 .CurrentX = 0 .CurrentY = 0 .DrawWidth = 1 .DrawStyle = 6 End With '打印數據和網格線 Dim yy As Variant yy = 0 c = 0 Do Until Adodc1.Recordset.EOF '将字段值導入到數組中去 For b = 0 To N - 1 v(b) = "" & Adodc1.Recordset.Fields(b).Value Next b ' '判斷是否該頁已打滿,若已滿,開始新的一頁 If Printer.CurrentY >= UseHeight Then '開始新的一頁 Printer.NewPage End If ' 設置打印頭的初始位置 With Printer .CurrentX = PageLeft .ScaleLeft .CurrentY = PageHeader yy ' StartyLine = .CurrentY End With '' 打印标題 With Printer .CurrentX = (UseWidth - .TextWidth(strTitle)) / 2 ' .CurrentY = PageHeader .ScaleTop End With Printer.Print strTitle ' 保存坐标y Dim x1, y1, x2, y2 As Variant y1 = PageHeader yy 1 ' '打印表格的第一條線 '注意:Line方法不能用在With ....End With塊裡 ' 确定字段的總寬度 m = 0 For i = 0 To N - 1 l1 = Printer.TextWidth(Trim(pp(i))) ' If v(i) = Null Then ' l2 = 0 ' Else l2 = Printer.TextWidth(Trim(v(i))) ' End If If l1 >= l2 Then m = m l1 2 * w1 Else: m = m l2 2 * w1 End If Next i ' 設置打印頭坐标 With Printer .CurrentX = (UseWidth m) / 2 .CurrentY = y1 5 End With Printer.Line -((UseWidth - m) / 2, Printer.CurrentY) y2 = Printer.CurrentY x2 = Printer.CurrentX ' '打印表頭 ' 打印第一條豎線 Printer.Line -(x2, y2 h / 2) '' 打印其他的字段和豎線 Dim p1, p2 As Variant p1 = x2 w1 p2 = y2 w2 l1 = 0 l2 = 0 For j = 0 To N - 1 Printer.CurrentX = p1 Printer.CurrentY = p2 l1 = Printer.TextWidth(Trim(pp(j))) l2 = Printer.TextWidth(Trim(v(j))) If l1 >= l2 Then p1 = p1 l1 2 * w1 Else p1 = p1 l2 2 * w1 End If Printer.Print pp(j) Printer.Line (p1 - w1, y2 h / 2)-(p1 - w1, y2) Next j ' 打印中間的橫線 Printer.Line (p1 - w1, y2 h / 2)-(x2, y2 h / 2) '' 打印字段數據 ' 打印第一條豎線 Printer.Line (x2, y2 h / 2)-(x2, y2 h) ' 打印其他的字段數值和豎線 p1 = x2 w1 p2 = y2 w2 h / 2 l1 = 0 l2 = 0 For k = 0 To N - 1 Printer.CurrentX = p1 Printer.CurrentY = p2 l1 = Printer.TextWidth(Trim(pp(k))) l2 = Printer.TextWidth(Trim(v(k))) If l1 >= l2 Then p1 = p1 l1 2 * w1 Else p1 = p1 l2 2 * w1 End If Printer.Print v(k) Printer.Line (p1 - w1, y2 h)-(p1 - w1, y2 h / 2) Next k ' 打印最後一條橫線 Printer.Line (p1 - w1, y2 h)-(x2, y2 h) Adodc1.Recordset.MoveNext c = c 1 yy = (Printer.ScaleHeight / 6) * (c Mod 6) Loop '結束打印 Printer.EndDoc Exit Sub 'ConnectionERR: ' '錯誤處理程序 ' MsgBox "數據庫連接錯誤," & Err.Description, vbCritical, "出錯" ' Exit Sub 'RecordSetERR: ' MsgBox "RecordSet生成錯誤," & Err.Description, vbCritical, "錯誤" ' Exit Sub PrintERR: MsgBox "打印錯誤," & Err.Description, vbCritical, "出錯" End Sub

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
西裝連衣裙太短搭什麼
西裝連衣裙太短搭什麼
話說,前幾天我出了個小差,參加了一個行業内的Conference。除了學到了很多相關知識,我還留心觀察來參加Conference的職場女精英們都穿了啥來體現DressforSuccess。西裝、套裝和連衣裙都是标配,大家都穿膩了,我也說膩了...
2025-05-13
橫店群演一年能掙多少
橫店群演一年能掙多少
新冠疫情給影視行業帶來的重創與挑戰,還在持續。5月7日,3個視頻平台(騰訊視頻、愛奇藝、優酷)和6家影視公司(正午陽光、華策影視、檸萌影業、慈文傳媒、耀客傳媒、新麗傳媒)聯合發布影視綜合行業自救行動倡議書。據不完全統計,疫情期間僅影視劇行業...
2025-05-13
江蘇淮安移動暖心服務
江蘇淮安移動暖心服務
消費日報網訊(蘇服)2022年春節将至,為保障春節期間用戶的通信質量,蘇州移動提前制定春節網絡保障方案,為春節期間網絡暢通做好充分準備。地鐵網絡保障網絡保障不停歇随着春運的開啟,蘇州旅遊景點、交通樞紐、熱點商超等客流量大幅增加,對此,蘇州移...
2025-05-13
面包包裝機操作工一般多少工資
面包包裝機操作工一般多少工資
戴上口罩,穿上防護工作服,走過消毒間……2月11日早上8時,一批年輕的“新”員工準時到浙江振德醫療用品股份有限公司的口罩生産線包裝車間“上班”了。這48名來自紹興市直機關黨員突擊隊和市公共事業集團青年突擊隊的成員,主要任務是和公司原有的一線...
2025-05-13
員工猝死頻發事件
員工猝死頻發事件
臨近五一假期,一張工作群内的截圖在網上不斷地發酵。董事長在群裡直接放話:我想打爆你們所有的人!自己買塊豆腐撞死吧接下來,董事長直接下達通知:五一全部加班!不服的,馬上炒掉。面對氣勢嚣張的董事長,沒有一個員工敢出聲。畢竟這位董事長也不是吓唬人...
2025-05-13
Copyright 2023-2025 - www.tftnews.com All Rights Reserved