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

📄 frmhzsite.frm

📁 星级酒店管理系统(附带系统自写控件源码)
💻 FRM
📖 第 1 页 / 共 4 页
字号:
                   sPN = "": cDW = "": cDJ = 0: lSL = 0: cJE = 0: sType = "": cJGF = "" '清空
                   If EF.EOF Then
                      bExit = True
                      Exit For  '退出
                   End If
                   If H > nPrintLine Then
                      Exit Do
                   End If
                    If Not IsNull(EF.Fields("DType")) Then   '不为空时
                       sType = EF.Fields("DType")
                    End If
                    If Not IsNull(EF.Fields("Name")) Then   '不为空时
                       sPN = EF.Fields("Name")
                    End If
                    If Not IsNull(EF.Fields("Price")) Then   '不为空时
                       cDJ = Trim(str(EF.Fields("Price")))
                    End If
                    If Not IsNull(EF.Fields("Quantys")) Then   '不为空时
                       lSL = Trim(str(EF.Fields("Quantys")))
                    End If
                    If Not IsNull(EF.Fields("Unit")) Then   '不为空时
                       cDW = EF.Fields("Unit")
                    End If
                    If Not IsNull(EF.Fields("JGFs")) Then   '不为空时
                       cJGF = Trim(str(EF.Fields("JGFs")))
                    End If
                    If Not IsNull(EF.Fields("Amoss")) Then   '不为空时
                       cJE = Trim(str(EF.Fields("Amoss")))
                    End If
                    Printer.Font = "宋体"
                    Printer.FontSize = 9
                    Printer.FontBold = False
                    If sType <> sType1 Then
                       sType1 = sType
                       Printer.CurrentX = 6 + XLeft
                       Printer.CurrentY = 43 + (H * 6) + XTop
                       Printer.Print "  " & sType
                    End If
                    Printer.CurrentX = 27 + XLeft
                    Printer.CurrentY = 43 + (H * 6) + XTop
                    Printer.Print "  " & sPN
                    Printer.CurrentY = 43 + (H * 6) + XTop
                    Printer.CurrentX = 65 + XLeft
                    Printer.Print cDW
                    Printer.CurrentY = 43 + (H * 6) + XTop
                    Printer.CurrentX = 75 + XLeft
                    Printer.Print cDJ
                    Printer.CurrentY = 43 + (H * 6) + XTop
                    Printer.CurrentX = 83 + XLeft
                    Printer.Print lSL
                    Printer.CurrentY = 43 + (H * 6) + XTop
                    Printer.CurrentX = 89 + XLeft
                    Printer.Print cJGF
                    Printer.CurrentY = 43 + (H * 6) + XTop
                    Printer.CurrentX = 98 + XLeft
                    Printer.Print cJE
                    H = H + 1
                    EF.MoveNext
             Loop
     '最后一页打印合计
        If x = lPaperCountS Then '最后一页
           Printer.FontSize = 9
           Printer.FontName = "黑体"
           Printer.FontBold = True
           Printer.CurrentY = 43 + ((H + 1) * 6) + XTop   '200 + xtop
           Printer.CurrentX = 8 + XLeft
           Printer.Print " 消费金额:" & curHJ & "元"
           Printer.CurrentY = 43 + ((H + 1) * 6) + XTop  '200 + xtop
           Printer.CurrentX = 45 + XLeft
           Printer.Print "包厢费:" & curPackage & "元"
           Printer.CurrentY = 43 + ((H + 1) * 6) + XTop
           Printer.CurrentX = 70 + XLeft
           Printer.Print "金额合计:" & CStr(curHJ + curPackage) & "元"
          '打印营业员
           Printer.CurrentY = 43 + ((H + 2) * 6) + XTop   '200 + xtop
           Printer.CurrentX = 8 + XLeft
           Printer.Print " 营业员:" & sWaiter
           If iDiscount <> 100 Then
              Printer.CurrentY = 43 + ((H + 2) * 6) + XTop
              Printer.CurrentX = 45 + XLeft
              Printer.Print iDiscount & "%折"
           End If
           Printer.CurrentY = 43 + ((H + 2) * 6) + XTop   '200 + xtop
           Printer.CurrentX = 70 + XLeft
           Printer.Print "应付金额:" & curSfPay & "元"
           
           Printer.CurrentY = 43 + ((H + 3) * 6) + XTop   '200 + xtop
           Printer.CurrentX = 8 + XLeft
           Printer.Print " 实收现金:" & curSfPay & "元"
           Printer.CurrentY = 43 + ((H + 3) * 6) + XTop  '200 + xtop
           Printer.CurrentX = 45 + XLeft
           Printer.Print "找零:0元"
           Printer.CurrentY = 43 + ((H + 3) * 6) + XTop   '200 + xtop
           Printer.CurrentX = 70 + XLeft
           Printer.Print "  操作员:" & sMyOperator
        End If
        '弹出纸
         Printer.EndDoc
         If bExit = True Then     '无记录时退出
            Exit For
         End If
    Next
    
     EF.Close
     DB.Close
     Set EF = Nothing
     Set DB = Nothing
     
     MsgBox "打印帐单完毕!   ", vbInformation
    '打印完成
    
     Exit Sub
PrintErr:
     MsgBox "对不起,打印错误:" & Err.Description & vbCrLf _
       & "请设置打印纸的大小为:长 21 厘米宽 11 厘米。   ", vbCritical
       
End Sub

Private Sub mnuSearch_Click()

  Call cmdSearch_Click
  
End Sub

Private Sub mnuView_Click()

  Call lstPro_DblClick
  
End Sub

'结帐后打印帐单
Public Sub AfterPrintSmallSheet(nID As Long)
     
    On Error GoTo PrintErr
     
    If nID = 0 Then
       MsgBox "消费单为空,不能打印?  ", vbInformation
       Exit Sub
    End If
    
    Dim sWaiter As String
   '首先给出当前桌的消费记录
    Dim iDiscount As Integer, iArrearage As Integer
    Dim curSfPay As Currency, curYinPay As Currency, curPackage As Currency, curHJ As Currency
    Dim sSQL As String, sMyGuestName As String, sMyGuestID As String, sMyOperator As String, sMysite As String
    Dim sMypaymethod As String
    Dim dMyDate As Date
   '当前座位,当前菜单中内容,每ID代表一桌消费
    sSQL = "Select Site.Site,Site.Date,Site.IsArrearage,Site.lHour,Site.lMinute,Site.CheckOutman,Site.MID," _
       & "tbdMember.Name,Site.JeAmo,Site.DCJE,Site.tmpStr,Site.SFAmo,Site.Waiter,Site.BXF,Site.Discount " _
       & " From Site Left Join tbdMember On Site.MID=tbdMember.ID  Where Site.ID=" & nID
        
    Dim DB As Connection, EF As Recordset
    Set DB = CreateObject("ADODB.Connection")
    Set EF = CreateObject("ADODB.Recordset")
        DB.Open Constr
        EF.Open sSQL, DB, adOpenStatic, adLockReadOnly, adCmdText
        If Not (EF.EOF And EF.BOF) Then
           sMysite = EF("Site")
           iArrearage = EF("IsArrearage")
           sMypaymethod = EF("tmpStr")
           If Not IsNull(EF("Date")) Then
              dMyDate = EF("Date")
            Else
              dMyDate = Date
           End If
           sWaiter = NullValue(EF("Waiter"))
          'ftDate.Text = EF("Date")
          'ftHour.Text = EF("lHour")
          'ftMinute.Text = EF("lMinute")
           sMyOperator = NullValue(EF("checkOutMan"))
           sMyGuestID = NullValue(EF("MID"))
           sMyGuestName = NullValue(EF("Name"))
           curHJ = EF("DCJE")                     '点菜金额
           curPackage = NullValue(EF("BXF"))      '包厢
           curSfPay = EF("SFAmo")                 '实付
           'ftWaiter.Text = NullValue(EF("Waiter"))
           iDiscount = EF("Discount")
       End If
       EF.Close
       Set EF = Nothing
       DB.Close
       Set DB = Nothing
        
    '打印格式
     Dim bExit As Boolean
     Dim sBB As String
     Set DB = CreateObject("ADODB.Connection")
         DB.Open Constr
         sBB = "Delete From prtCust"                              '清空所有数据
         DB.Execute sBB
     Set EF = CreateObject("ADODB.Recordset")
         EF.Open "SELECT DType AS DType, Name AS Name, Unit AS Unit, Price AS Price, Sum(Quanty) AS Quantys, Sum(JGF) AS JGFs, Sum(Amos) AS Amoss From Cust WHERE SheelID=" & nID & " GROUP BY DType, Name, Unit, Price", DB, adOpenStatic, adLockReadOnly, adCmdText
     Dim lPaperCountS As Integer, lPaperCount As Integer
     Dim lCurrent As Integer
         If EF.BOF And EF.EOF Then  '没有记录时 退出
            EF.Close
            Set EF = Nothing
            DB.Close
            Set DB = Nothing
            MsgBox "没有消费记录,不能打印。   ", vbExclamation
            Exit Sub
         End If
          Dim x As Integer
          Dim sPN As String
          Dim cDJ As String
          Dim lSL As String
          Dim cJE As String
          Dim cDW As String
          Dim H As Integer
          Dim cJGF As String
          Dim sType As String '类型
          Dim sType1 As String '类型
          
        '开始打印*************************************************************
          Printer.ScaleMode = 6 'mm
         '打印单位名称
          Printer.FontSize = 20
          Printer.FontName = "黑体"
          Printer.FontBold = True
          Printer.CurrentX = ((70 - (Printer.TextWidth(sUnit))) / 2)
          Printer.CurrentY = 15 + xSmallTop
         'NoTitle为不打印标题,客户可自行给出
         'NoTitle=1 Or -1
          If NoTitle = False Then
             Printer.Print sUnit
          End If
          Printer.FontSize = 9
          Printer.FontName = "黑体"
          Printer.FontBold = True
          Printer.CurrentX = xSmallLeft
          Printer.CurrentY = 26 + xSmallTop
          Printer.Print "单号:" & nID
          If iArrearage = 1 Then
            '打印挂帐
             Printer.CurrentX = 23 + xSmallLeft
             Printer.CurrentY = 26 + xSmallTop
             Printer.Print "挂帐"
           Else
             Printer.CurrentX = 23 + xSmallLeft
             Printer.CurrentY = 26 + xSmallTop
             Printer.Print "结帐:" & sMypaymethod
          End If
          Printer.CurrentX = 45 + xSmallLeft
          Printer.CurrentY = 26 + xSmallTop
          Printer.Print Format(dMyDate, "Long Date")
         '桌号
          Printer.CurrentX = xSmallLeft
          Printer.CurrentY = 32 + xSmallTop
          Printer.Print "营业员:" & sWaiter
         '会员信息
          If Trim(sMyGuestID) <> "" And Trim(sMyGuestName) <> "" Then
             Printer.CurrentX = 23 + xSmallLeft
             Printer.CurrentY = 32 + xSmallTop
             Printer.Print "会员:" & sMyGuestID
             Printer.CurrentX = 50 + xSmallLeft
             Printer.CurrentY = 32 + xSmallTop
             Printer.Print "姓名:" & sMyGuestName
          End If
          Printer.Line (xSmallLeft, 37 + xSmallTop)-(xSmallLeft + 70, 37 + xSmallTop), 2, BF
         '打印菜单标题
          'Printer.CurrentX = 8 + xSmallLeft
          'Printer.CurrentY = 40 + xSmallTop
          'Printer.FontBold = False
          'Printer.Font = "宋体"
          'Printer.Print "菜单类别    "
          Printer.CurrentX = xSmallLeft
          Printer.CurrentY = 39 + xSmallTop
          Printer.Print "菜  名  "
          Printer.CurrentX = 22 + xSmallLeft
          Printer.CurrentY = 39 + xSmallTop
          Printer.Print "单位"
          Printer.CurrentX = 29 + xSmallLeft
          Printer.CurrentY = 39 + xSmallTop
          Printer.Print "单价"
          Printer.CurrentX = 40 + xSmallLeft
          Printer.CurrentY = 39 + xSmallTop
          Printer.Print "数量"
          Printer.CurrentX = 49 + xSmallLeft
          Printer.CurrentY = 39 + xSmallTop
          Printer.Print "加工"
          Printer.CurrentX = 57 + xSmallLeft
          Printer.CurrentY = 39 + xSmallTop
          Printer.Print "金额"
         '-----------------------------------------
            '打印所有菜单
             Do While Not EF.EOF
                   sPN = "": cDW = "": cDJ = 0: lSL = 0: cJE = 0: sType = "": cJGF = "" '清空
                    If Not IsNull(EF.Fields("Name")) Then   '不为空时
                       sPN = EF.Fields("Name")
                    End If
                    If Not IsNull(EF.Fields("Price")) Then   '不为空时
                       cDJ = Trim(str(EF.Fields("Price")))
                    End If
                    If Not IsNull(EF.Fields("Quantys")) Then   '不为空时
                       lSL = Trim(str(EF.Fields("Quantys")))
                    End If
                    If Not IsNull(EF.Fields("Unit")) Then   '不为空时
                       cDW = EF.Fields("Unit")
                    End If
                    If Not IsNull(EF.Fields("JGFs")) Then   '不为空时
                       cJGF = Trim(str(EF.Fields("JGFs")))
                    End If
                    If Not IsNull(EF.Fields("Amoss")) Then   '不为空时
                       cJE = Trim(str(EF.Fields("Amoss")))
                    End If
                    Printer.Font = "宋体"
                    Printer.FontSize = 9
                    Printer.FontBold = False
                    'If sType <> sType1 Then
                    '   sType1 = sType
                    '   Printer.CurrentX = 6 + xSmallLeft
                    '   Printer.CurrentY = 43 + (H * 6) + xSmallTop
                    '   Printer.Print "  " & sType
                    'End If
                    Printer.CurrentX = xSmallLeft
                    Printer.CurrentY = 43 + (H * 6) + xSmallTop
                    Printer.Print sPN
                    Printer.CurrentX = 23 + xSmallLeft
                    Printer.CurrentY = 43 + (H * 6) + xSmallTop
                    Printer.Print cDW
                    Printer.CurrentX = 30 + xSmallLeft
                    Printer.CurrentY = 43 + (H * 6) + xSmallTop
                    Printer.Print cDJ
                    Printer.CurrentX = 41 + xSmallLeft
                    Printer.CurrentY = 43 + (H * 6) + xSmallTop
                    Printer.Print lSL
                    Printer.CurrentX = 51 + xSmallLeft
                    Printer.CurrentY = 43 + (H * 6) + xSmallTop
                    Printer.Print cJGF
                    Printer.CurrentX = 58 + xSmallLeft
                    Printer.CurrentY = 43 + (H * 6) + xSmallTop
                    Printer.Print cJE
                    H = H + 1
                    EF.MoveNext
             Loop
           Printer.FontSize = 9
           Printer.FontName = "黑体"
           Printer.FontBold = True
           Printer.CurrentX = xSmallLeft
           Printer.CurrentY = 43 + ((H) * 6) + xSmallTop    '200 + xsmalltop
           Printer.Print "消费:" & curHJ & "元"
           Printer.CurrentX = 25 + xSmallLeft
           Printer.CurrentY = 43 + ((H) * 6) + xSmallTop   '200 + xsmalltop
           Printer.Print "包厢费:" & curPackage & "元"
           Printer.CurrentX = 45 + xSmallLeft
           Printer.CurrentY = 43 + ((H) * 6) + xSmallTop
           Printer.Print "合计:" & CStr(curHJ + curPackage) & "元"
           If iDiscount <> 100 Then
              Printer.CurrentX = 25 + xSmallLeft
              Printer.CurrentY = 43 + ((H + 1) * 6) + xSmallTop
              Printer.Print iDiscount & "%折"
           End If
           Printer.CurrentX = 45 + xSmallLeft
           Printer.CurrentY = 43 + ((H + 1) * 6) + xSmallTop   '200 + xsmalltop
           Printer.Print "应付:" & curSfPay & "元"
           Printer.CurrentX = xSmallLeft
           Printer.CurrentY = 43 + ((H + 2) * 6) + xSmallTop   '200 + xsmalltop
           Printer.Print "实收:" & curSfPay & "元"
           Printer.CurrentX = 25 + xSmallLeft
           Printer.CurrentY = 43 + ((H + 2) * 6) + xSmallTop  '200 + xsmalltop
           Printer.Print "找零:0元"
           Printer.CurrentX = 45 + xSmallLeft
           Printer.CurrentY = 43 + ((H + 2) * 6) + xSmallTop   '200 + xsmalltop
           Printer.Print "收银:" & sMypaymethod
          '打印酒店联系电话与地址
           Printer.Font = "宋体"
           Printer.FontSize = "10"
           Printer.Line (xSmallLeft, 48 + ((H + 2) * 6) + xSmallTop)-(xSmallLeft + 70, 48 + ((H + 2) * 6) + xSmallTop), 2, BF
           Printer.Line (xSmallLeft, 49 + ((H + 2) * 6) + xSmallTop)-(xSmallLeft + 70, 49 + ((H + 2) * 6) + xSmallTop), 2, BF
           Printer.CurrentX = xSmallLeft
           Printer.CurrentY = 45 + ((H + 3) * 6) + xSmallTop   '200 + xsmalltop
           Printer.Print "电话:" & sCompanyTel
           Printer.CurrentX = xSmallLeft
           Printer.CurrentY = 45 + ((H + 4) * 6) + xSmallTop   '200 + xsmalltop
           Printer.Print "地址:" & sCompanyAdd
          '弹出纸
           Printer.EndDoc
    '打印结束***********************************************************************
     EF.Close
     DB.Close
     Set EF = Nothing
     Set DB = Nothing
     
     MsgBox "打印小单完毕!   ", vbInformation
    '打印完成
    
     Exit Sub
PrintErr:
     MsgBox "对不起,打印错误:" & Err.Description, vbCritical
       
End Sub

Private Sub PrintSmallSheet_Click()

  On Error GoTo PrintErr
 
  If lstPro.ListItems.Count = 0 Then
     MsgBox "单据为空,不能查看?  ", vbExclamation
     Exit Sub
  End If
  
  If lstPro.SelectedItem.Text = "" Then
     MsgBox "请选择任一单据后继续?  ", vbExclamation
     Exit Sub
  End If
  
  AfterPrintSmallSheet lstPro.SelectedItem.Text

 Exit Sub
PrintErr:
 MsgBox "对不起,打印单据错误:" & Err.Description, vbCritical

End Sub

⌨️ 快捷键说明

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