?? modprint.bas
字號:
Attribute VB_Name = "modPrint"
Public nID As Long
Public cJE As Currency, cFK As Currency
Public sCard As String, sSite As String, sUser As String
Public Condata As String, Constr As String
Public Sub Main()
'沒有參數(shù)時為空
If Command = "" Then
MsgBox "沒有數(shù)據(jù),無法打印! ", vbInformation, "提示:By Yusilong."
Else
Constr = ";UID=;PWD=BXS3s44yiA"
Condata = App.Path & "\SystemData.dat"
StartPrint Command
End If
'顯示打印對話框
PrintForm.Show 1
End Sub
Public Sub StartPrint(strCommand As String)
Dim lLengther As Integer
Dim StartNO As Integer, EndNO As Integer
Dim StartJE As Integer, EndJE As Integer
Dim StartFK As Integer, EndFK As Integer
Dim StartST As Integer, ENDST As Integer
Dim StartUS As Integer, EndUS As Integer
strCommand = strCommand
lLengther = Len(strCommand)
StartNO = InStr(4, strCommand, "NO=", vbTextCompare)
StartJE = InStr(StartNO + 3, strCommand, "JE=", vbTextCompare)
StartFK = InStr(StartJE + 3, strCommand, "FK=", vbTextCompare)
StartST = InStr(StartFK + 3, strCommand, "ST=", vbTextCompare)
StartUS = InStr(StartST + 3, strCommand, "US=", vbTextCompare)
'賦值
nID = Val(Mid(strCommand, 4, StartNO - 3))
cJE = Val(Mid(strCommand, StartJE + 3, StartFK - StartJE - 3))
cFK = Val(Mid(strCommand, StartFK + 3, StartST - StartFK - 3))
sCard = Mid(strCommand, StartNO + 3, StartJE - StartNO - 3)
sSite = Mid(strCommand, StartST + 3, StartUS - StartST - 3)
sUser = Mid(strCommand, StartUS + 3, lLengther - StartUS)
End Sub
Public Sub PrintSheet()
On Error Resume Next
'打印格式
Dim bExit As Boolean
Dim DB As Database, EF As Recordset
Set DB = OpenDatabase(Condata, False, False, Constr)
Set EF = DB.OpenRecordset("Select * From tmpSell Where 座位='" & sSite & "'", dbOpenSnapshot)
Dim lPaperCountS As Integer, lPaperCount As Integer
Dim lCurrent As Integer
If EF.BOF And EF.EOF Then '沒有記錄時 退出
EF.Close
DB.Close
Exit Sub
Else
lPaperCount = 0
Do While Not EF.EOF
lPaperCount = lPaperCount + 1
EF.MoveNext
Loop
EF.MoveFirst
End If
'計算總頁數(shù)
lPaperCountS = lPaperCount / 15
If (lPaperCount Mod 15) <> 0 Then '正除時不加0
lPaperCountS = lPaperCountS + 1
End If
If lPaperCountS = 0 Then
lPaperCountS = lPaperCountS + 1
End If
Dim x As Integer
Dim sPN As String
Dim cDJ As String
Dim lSL As String
Dim cJE As String
Dim H As Integer
'開始打印
For x = 1 To lPaperCountS
' Set EF = DB.OpenRecordset("Select * From tmpSell Where 座位='" & sSite & "'", dbOpenSnapshot)
Printer.Print ""
Printer.Print ""
Printer.FontSize = 12
Printer.FontName = "宋體"
Printer.FontBold = True
Printer.CurrentX = 0
Printer.CurrentY = 2100
'打印頭
Printer.Print " " & Format(Date, "Long Date") & " " & sSite
'打印菜單
Printer.CurrentY = 3180
H = 1
If x = 1 Then
EF.MoveFirst
Else
EF.MoveFirst
EF.Move ((x - 1) * 15)
End If
'打印所有菜單
Do While Not EF.EOF
sPN = "": cDJ = 0: lSL = 0: cJE = 0 '清空
If EF.EOF Then
bExit = True
Exit For '退出
End If
If H > 15 Then
Exit Do
End If
If Not IsNull(EF.Fields("名稱")) Then '不為空時
sPN = EF.Fields("名稱")
End If
If Not IsNull(EF.Fields("單價")) Then '不為空時
cDJ = Trim(Str(EF.Fields("單價")))
End If
If Not IsNull(EF.Fields("數(shù)量")) Then '不為空時
lSL = Trim(Str(EF.Fields("數(shù)量")))
End If
If Not IsNull(EF.Fields("金額")) Then '不為空時
cJE = Trim(Str(EF.Fields("金額")))
End If
Printer.CurrentY = 2800 + (H * 300)
Printer.Print " " & sPN
Printer.CurrentY = 2800 + (H * 300)
Printer.CurrentX = 2000
Printer.Print cDJ
Printer.CurrentY = 2800 + (H * 300)
Printer.CurrentX = 3000
Printer.Print lSL
Printer.CurrentY = 2800 + (H * 300)
Printer.CurrentX = 4200
Printer.Print cJE
H = H + 1
EF.MoveNext
Loop
Printer.CurrentY = 8100
Printer.CurrentX = 1500
Printer.Print " " & sUser
Printer.CurrentY = 8100
Printer.CurrentX = 4700
Printer.Print cFK & "元" '打印合計付款
'彈出紙
Printer.EndDoc
'等待完畢繼續(xù)
'If MsgBox("繼續(xù)打印!(是/否)? ", vbInformation + vbYesNo, "提示:By Yusilong.") = vbNo Then
' bExit = True
'End If
If bExit = True Then '無記錄時退出
Exit For
End If
'EF.Close
Next
EF.Close
DB.Close
'打印完成
End Sub
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -