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

📄 frmcash.frm

📁 用vb写的饮食管理系统功能全面
💻 FRM
字号:
VERSION 5.00
Begin VB.Form frmCash 
   BorderStyle     =   3  'Fixed Dialog
   Caption         =   "付款平台"
   ClientHeight    =   4275
   ClientLeft      =   45
   ClientTop       =   330
   ClientWidth     =   6330
   Icon            =   "frmCash.frx":0000
   LinkTopic       =   "Form1"
   LockControls    =   -1  'True
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   4275
   ScaleWidth      =   6330
   ShowInTaskbar   =   0   'False
   StartUpPosition =   1  '所有者中心
   Begin VB.ComboBox cmbPayMethod 
      Height          =   300
      ItemData        =   "frmCash.frx":08CA
      Left            =   3405
      List            =   "frmCash.frx":08CC
      Style           =   2  'Dropdown List
      TabIndex        =   3
      Top             =   2310
      Width           =   1470
   End
   Begin VB.ComboBox cmbDZ 
      Height          =   300
      ItemData        =   "frmCash.frx":08CE
      Left            =   4125
      List            =   "frmCash.frx":08F3
      Style           =   2  'Dropdown List
      TabIndex        =   4
      Top             =   1545
      Visible         =   0   'False
      Width           =   750
   End
   Begin VB.TextBox txtZL 
      BackColor       =   &H00E0E0E0&
      Enabled         =   0   'False
      BeginProperty Font 
         Name            =   "Arial"
         Size            =   10.5
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H000000C0&
      Height          =   315
      IMEMode         =   3  'DISABLE
      Left            =   2025
      Locked          =   -1  'True
      TabIndex        =   2
      Top             =   2670
      Width           =   2850
   End
   Begin VB.TextBox txtSK 
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   10.5
         Charset         =   134
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   315
      IMEMode         =   3  'DISABLE
      Left            =   2025
      MaxLength       =   8
      TabIndex        =   1
      Top             =   2295
      Width           =   2850
   End
   Begin VB.TextBox txtFK 
      BackColor       =   &H00E0E0E0&
      BeginProperty Font 
         Name            =   "Arial"
         Size            =   10.5
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H00FF0000&
      Height          =   315
      IMEMode         =   3  'DISABLE
      Left            =   2025
      Locked          =   -1  'True
      TabIndex        =   5
      Top             =   1920
      Width           =   2850
   End
   Begin VB.TextBox txtJE 
      BackColor       =   &H00E0E0E0&
      BeginProperty Font 
         Name            =   "Arial"
         Size            =   10.5
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H00C00000&
      Height          =   315
      IMEMode         =   3  'DISABLE
      Left            =   2025
      Locked          =   -1  'True
      TabIndex        =   10
      Top             =   1170
      Width           =   2850
   End
   Begin VB.TextBox txtCardNO 
      Height          =   315
      IMEMode         =   3  'DISABLE
      Left            =   2025
      MaxLength       =   38
      PasswordChar    =   "*"
      TabIndex        =   0
      Top             =   1545
      Width           =   2850
   End
   Begin VB.Label Label2 
      AutoSize        =   -1  'True
      Caption         =   "找零:"
      Height          =   180
      Index           =   3
      Left            =   1425
      TabIndex        =   6
      Top             =   2745
      Width           =   540
   End
   Begin VB.Label Label2 
      AutoSize        =   -1  'True
      Caption         =   "收款:"
      Height          =   180
      Index           =   2
      Left            =   1425
      TabIndex        =   7
      Top             =   2355
      Width           =   540
   End
   Begin VB.Label Label2 
      AutoSize        =   -1  'True
      Caption         =   "实收金额:"
      Height          =   180
      Index           =   1
      Left            =   1065
      TabIndex        =   11
      Top             =   1980
      Width           =   900
   End
   Begin VB.Label Label2 
      AutoSize        =   -1  'True
      Caption         =   "消费合计:"
      Height          =   180
      Index           =   0
      Left            =   1050
      TabIndex        =   9
      Top             =   1230
      Width           =   900
   End
   Begin VB.Label Label1 
      AutoSize        =   -1  'True
      Caption         =   "卡号:"
      Height          =   180
      Left            =   1410
      TabIndex        =   8
      Top             =   1605
      Width           =   540
   End
End
Attribute VB_Name = "frmCash"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub cmbDZ_Click()

   'On Error Resume Next
   
   If txtCardNO.Text <> "" Then
      txtFK.Text = Val(txtJE.Text) * Val(cmbDZ.Text) / 100 '打折
      txtSK.SetFocus
   End If
   
End Sub

Private Sub cmbPayMethod_Change()
  
  SaveSetting App.EXEName, "Option", "PayMethod", cmbPayMethod.ListIndex

End Sub

Private Sub cmbPaymethod_Click()

  SaveSetting App.EXEName, "Option", "PayMethod", cmbPayMethod.ListIndex

End Sub

Private Sub cmdClose_Click()

  Unload Me
  
End Sub

Private Sub cmdPay_Click()

  'On Error Resume Next
   '检验收款是否正确
    If Val(txtSK) = 0 Or Val(txtSK) < Val(txtFK) - 20 Then
       MsgBox "对不起,付款不正确,请检查后继续!    " & vbCrLf & vbCrLf & "    付款金额:" & txtFK & "元", vbInformation
       txtSK.SetFocus
       Exit Sub
     ElseIf MsgBox("确认入帐吗?(Y/N)   ", vbYesNo + vbInformation) = vbNo Then
       Exit Sub
    End If
        
    Dim DB As Database
    Set DB = OpenDatabase(ConData, False, False, Constr)
      
   
   '打印函数
    Call cmdPrint_Click
   '等待
      
  ' 事务处理
    DBEngine.BeginTrans
    Dim SellID As Recordset

    '获得最后消费号
    Set SellID = DB.OpenRecordset("SellCount", dbOpenDynaset)
      If SellID.EOF And SellID.BOF Then
         nLast = 1
       Else
         SellID.MoveLast
         nLast = SellID.Fields(0) + 1
      End If
      SellID.Close
             
    '给出最后时间与上台时间
    Dim EF As Recordset
    Dim sEXE As String
        Set EF = DB.OpenRecordset("tmpSell", dbOpenDynaset)
        Dim sTmp As String, sTime1 As Date, sTime2 As Date
        sTmp = "座位='" & Trim(frmCustomerForm.cmbSite.Text) & "'"
        EF.FindFirst sTmp
     If EF.NoMatch Then
        MsgBox "上台时间为当前时间?  ", vbInformation
        sTime1 = Format(Time(), "Short Time")
      Else
        sTime1 = EF.Fields("上台时间")
     End If
        sTmp = ""
        sTime2 = Format(Time(), "Short Time")  '下台时间
     EF.Close
     
    '消费单
    sTmp1 = "Insert into SellCount (SiteName,卡号,金额,日期,时间,ID,上台时间,下台时间,付款方式,消费总额) values('" & Trim(frmCustomerForm.cmbSite.Text) & "','" & CardNO & "'," & Val(txtFK.Text) & ",#" & Date & "#," & Val(Time()) & "," & nLast & ",#" & sTime1 & "#,#" & sTime2 & "#,'" & Trim(cmbPayMethod.Text) & "'," & Val(txtJE.Text) & ")"
    
    DB.Execute sTmp1
   
    Dim sSql1 As String, sSql2 As String, sSql3 As String

      sSql3 = "Update tmpSell Set ID=" & nLast & " Where 座位='" & Trim(frmCustomerForm.cmbSite.Text) & "'"
      DB.Execute sSql3
      
      '更新仓库
      Dim HG As Recordset
      Dim sTmpCode As String
          sTmp1 = ""
    
    Set EF = DB.OpenRecordset("Select * From tmpSell Where 座位='" & Trim(frmCustomerForm.cmbSite.Text) & "'", dbOpenDynaset)
    Set HG = DB.OpenRecordset("Select * From StoreList", dbOpenDynaset)
    Do While Not EF.EOF
       ' 减少库存记录,首先查找是否存在库存中,然后更新
         sTmpCode = EF.Fields(3).Value
         sTmp = "代码='" & sTmpCode & "'"
            HG.FindFirst sTmp
            If HG.NoMatch Then
               '播入记录
               sTmp1 = "Insert into StoreList Select Menutype,名称,单位,单价,金额,代码,数量 From tmpSell Where 代码='" & sTmpCode & "'"
               DB.Execute sTmp1
               sTmp1 = "Update StoreList Set 数量=-(数量),金额=-(金额) Where 代码='" & sTmpCode & "'"
             Else
               '更新记录
               sTmp1 = "Update StoreList Set 数量=数量-" & EF.Fields("数量") & ",金额=金额-" & EF.Fields("金额") & " Where 代码='" & sTmpCode & "'"
            End If
            DB.Execute sTmp1
      EF.MoveNext   '记录下翻
    Loop
    EF.Close
    HG.Close
      
    sSql1 = "Insert into SellList Select * From tmpSell Where 座位='" & Trim(frmCustomerForm.cmbSite.Text) & "'"
    DB.Execute sSql1
      
    sSql2 = "Delete * From tmpSell Where 座位='" & Trim(frmCustomerForm.cmbSite.Text) & "'"
    DB.Execute sSql2
                    
    DBEngine.CommitTrans
    DB.Close
    
   '清空
    frmCustomerForm.ConfigGrid2 Trim(frmCustomerForm.cmbSite.Text)
    
   '御载
    Unload Me
    Exit Sub
    
Err_:
    MsgBox "未知错误:" & vbCrLf & vbCrLf & err.Description, vbCritical, vbOKOnly

End Sub

Private Sub cmdPrint_Click()

  'On Error Resume Next
  
  '打印模块
  Dim lRet As Long
  Dim bRet As Boolean
 
  bRet = ShellAndWait(App.Path & "\Printer.exe " & "ID=" & Trim(Str(nLast)) & "NO=" & Trim(txtCardNO.Text) & "JE=" & Trim(txtJE.Text) & "FK=" & Trim(txtFK.Text) & "ST=" & Trim(frmCustomerForm.cmbSite.Text) & "US=" & UserText, 1, lRet, "", App.Path)
 
 'Shell App.Path & "\Printer.exe " & "ID=" & Trim(Str(nLast)) & "NO=" & Trim(txtCardNO.Text) & "JE=" & Trim(txtJE.Text) & "FK=" & Trim(txtFK.Text) & "ST=" & Trim(frmCustomerForm.cmbSite.Text), vbNormalFocus
 'retVal = ShellExecute(Me.hwnd, "Open", strPrint, 0, 0, 1)
 
End Sub

Private Sub Form_Load()

    txtJE = cJE
    txtFK = cJE
    
    cmbDZ.ListIndex = Val(GetSetting(App.EXEName, "Option", "Acount", 10))
 
    CardNO = ""
    
    '配置付款方式
     ConfigPayMethod
   
End Sub

Private Sub Form_Unload(Cancel As Integer)
  
  SaveSetting App.EXEName, "Option", "Acount", cmbDZ.ListIndex

End Sub

Private Sub txtCardNO_Change()
  
  Dim TmpStr As String
  
   TmpStr = GetCardNO(Trim(txtCardNO))
 If TmpStr <> "" Then
    cmbDZ.Visible = True
    txtCardNO.Enabled = False
    txtFK = Val(txtJE) * Val(cmbDZ.Text) / 100
    txtSK = txtFK
    txtSK.SetFocus
 End If
  
End Sub

Private Sub txtCardNO_GotFocus()

  SetItFocus txtCardNO
  
End Sub

Private Sub txtCardNO_KeyDown(KeyCode As Integer, Shift As Integer)

  DirectFocus txtCardNO, txtSK, txtSK, txtSK, KeyCode
    
End Sub

Private Sub txtCardNO_KeyPress(KeyAscii As Integer)

  If KeyAscii = 8 Then Exit Sub
  
  If KeyAscii < 48 Or KeyAscii > 57 Then
     KeyAscii = 0
  End If
  
End Sub

Private Sub txtFK_Change()

  txtSK = txtFK
  
End Sub

Private Sub txtSK_Change()

  txtZL = Val(txtSK) - Val(txtFK)
  
End Sub

Private Sub txtSK_DblClick()

  txtSK = txtFK
  txtSK.SelStart = 0
  txtSK.SelLength = Len(txtSK)
  
End Sub

Private Sub txtSK_GotFocus()

  SetItFocus txtSK
  
End Sub

Private Sub txtSK_KeyDown(KeyCode As Integer, Shift As Integer)

  If KeyCode = 13 Then
     KeyCode = 0
  End If
  
 DirectFocus txtCardNO, cmdPay, txtCardNO, txtCardNO, KeyCode
  
End Sub

Private Sub txtSK_KeyPress(KeyAscii As Integer)
  
  If KeyAscii = 8 Then Exit Sub
  
  If (KeyAscii < 46 Or KeyAscii > 57) Or KeyAscii = 47 Then
     KeyAscii = 0
  End If
  
End Sub

Private Sub txtZL_KeyPress(KeyAscii As Integer)
  
  If KeyAscii = 13 Then
     cmdPay.SetFocus
     Exit Sub
  End If
  If KeyAscii = 8 Then
     Exit Sub
  End If
  If (KeyAscii < 46 Or KeyAscii > 57) And KeyAscii <> 47 Then
     KeyAscii = 0
  End If
  
End Sub

Private Function GetCardNO(sPM As String) As String

   'On Error GoTo Err_dj
   
   sPM = Trim(sPM)
   
   Dim DB As Database, EF As Recordset
    Set DB = OpenDatabase(ConData, False, False, Constr)
    
    Set EF = DB.OpenRecordset("Select * From Detail Where 卡号='" & sPM & "'", dbOpenDynaset)
        
        If EF.BOF And EF.EOF Then
           GetCardNO = ""
           CardNO = ""
         Else
           GetCardNO = sPM
           CardNO = sPM
        End If
         
    EF.Close
    DB.Close
      Exit Function
Err_dj:
 MsgBox "给出卡号错误!    " & vbCrLf & vbCrLf & err.Description, vbCritical
 
End Function

Private Sub ConfigPayMethod()

  Dim DB As Database, EF As Recordset, HH As Integer
  Set DB = OpenDatabase(ConData, False, False, Constr)
           
    Set EF = DB.OpenRecordset("Select * From PayType", dbOpenDynaset)
        HH = 1
        Do While Not EF.EOF()
          If Not IsNull(EF.Fields(1)) Then
             cmbPayMethod.AddItem EF.Fields(1).Value
          End If
          EF.MoveNext
          HH = HH + 1
        Loop
        
  EF.Close
  DB.Close
  
  If HH > 1 Then
     cmbPayMethod.ListIndex = GetSetting(App.EXEName, "Option", "PayMethod", 0)
     SaveSetting App.EXEName, "Option", "PayMethod", cmbPayMethod.ListIndex
  End If
 
End Sub

⌨️ 快捷键说明

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