⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 modprint.bas

📁 餐饮茶馆管理系统
💻 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()
   
  '没有参数时为空
   If Command = "" Then
      MsgBox "没有数据,无法打印!   ", 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
         
    '计算总页数
     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("数量")) Then   '不为空时
        lSL = Trim(Str(EF.Fields("数量")))
     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
    '等待完毕继续
     'If MsgBox("继续打印!(是/否)?    ", 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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -