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

📄 main_htgl_jhgl.frm

📁 用vb做的一套餐饮管理系统的,可以方便的实现餐饮行业的管理
💻 FRM
📖 第 1 页 / 共 3 页
字号:
  For i = 0 To rs1.RecordCount - 1
      jsr.AddItem (Trim(rs1.Fields("员工姓名")))
      rs1.MoveNext
  Next i
  If jsr.ListCount > 0 Then jsr.ListIndex = 0
  rs1.Close     '关闭表
  '打开"仓库信息表"
  rs2.Open "select 仓库名称 from 仓库信息表 group by 仓库名称", cnn, adOpenKeyset, adLockOptimistic
  '添加仓库列表
  If rs2.BOF = False Then rs2.MoveFirst
  For i = 0 To rs2.RecordCount - 1
      ck.AddItem (Trim(rs2.Fields("仓库名称")))
      rs2.MoveNext
  Next i
  If ck.ListCount > 0 Then ck.ListIndex = 0
  rs2.Close       '关闭表
  zk.text = "10": sl.text = "0"
  DataList1.Visible = False: rkrq.Enabled = False: ph.Enabled = False
  gys.Enabled = False: grid1.Visible = False
  Me.Caption = Me.Caption & "    " & frm_main.St1.Panels(3).text
End Sub
Private Sub Form_Load()
 MS1.Rows = 102: MS1.Cols = 8    '定义ms1表的总行数、总列数
 s = Array("450", "2400", "1200", "750", "1200", "900", "1200", "2700")
 y = Array("序号", "商品名称", "商品编号", "单位", "单价", "数量", "金额", "备注")
 For i = 0 To 7
  MS1.ColWidth(i) = s(i): MS1.TextMatrix(0, i) = y(i)
 Next i
  '设置固定行、列
 MS1.FixedRows = 1: MS1.FixedCols = 1
 '定义ms1表的列序号
 For i = 1 To 101
     MS1.TextMatrix(i, 0) = i
 Next i
 rkrq.text = Date     '设置进货日期
End Sub
Private Sub Form_Unload(Cancel As Integer)
 frm_main.Enabled = True
End Sub
Private Sub ck_KeyDown(KeyCode As Integer, Shift As Integer)
 If KeyCode = vbKeyReturn Then    '按回车键焦点到ms1表格的第一行第一列
  MS1.Row = 1: MS1.Col = 1
  Text1.Visible = True     'text1可见
  Text1.SetFocus     'text1获得焦点
 End If
End Sub
Private Sub gys_Change()
 DataList1.ReFill     'datalist1显示所有记录
 Adodc1.RecordSource = "select * from 供应商信息表 where 供应商全称 like '" + Trim(gys.text) + "'+ '%'or 简称 like '" + Trim(gys.text) + "'+ '%'"
 Adodc1.Refresh
 If Adodc1.Recordset.RecordCount > 0 And gys.text <> "" Then DataList1.Visible = True
End Sub
Private Sub gys_KeyDown(KeyCode As Integer, Shift As Integer)
  If KeyCode = vbKeyReturn Then     '按回车键DataList1不可见
     DataList1.Visible = False
     jsr.SetFocus
  End If
  If KeyCode = vbKeyPageDown Then     '按PageDown键,datalist1显示所有记录
     DataList1.ReFill
     DataList1.Visible = True
     DataList1.SetFocus
  End If
End Sub
Private Sub grid1_KeyDown(KeyCode As Integer, Shift As Integer)
 If KeyCode = vbKeyReturn Then
  With Adodc2.Recordset
  If .RecordCount > 0 Then     '判断是否有记录
   If .Fields("本级名称") <> "" Then
    '赋值给ms1表格
    If .Fields("本级名称") <> "" Then MS1.TextMatrix(MS1.Row, 1) = Trim(.Fields("本级名称"))
    If .Fields("商品编号") <> "" Then MS1.TextMatrix(MS1.Row, 2) = Trim(.Fields("商品编号"))
    If .Fields("单位") <> "" Then MS1.TextMatrix(MS1.Row, 3) = Trim(.Fields("单位"))
    If .Fields("单价") <> "" Then MS1.TextMatrix(MS1.Row, 4) = .Fields("单价")
    '赋值给text1
    Text1.text = MS1.text
    Text1.SetFocus
    MS1.Col = 5
    grid1.Visible = False
   Else
    MsgBox ("无数据选择!!!")
    grid1.Visible = False
    Text1.SetFocus
   End If
  End If
  End With
  Text1.SetFocus
 End If
 If KeyCode = vbKeyEscape Then    '按ESC键
  grid1.Visible = False     'grid1不可见
  Text1.SetFocus     'text1获得焦点
 End If
End Sub
Private Sub DataList1_KeyDown(KeyCode As Integer, Shift As Integer)
 If KeyCode = vbKeyReturn Then
  gys.text = Trim(DataList1.BoundText)
  DataList1.Visible = False
  gys.SetFocus
 End If
End Sub
Private Sub jsr_KeyDown(KeyCode As Integer, Shift As Integer)
 If KeyCode = vbKeyReturn Then ck.SetFocus     '按回车键ck获得焦点
End Sub
Private Sub MS1_Click()     '单击ms1表格
 If MS1.Row >= 1 And MS1.TextMatrix(MS1.Row - 1, 7) <> "" Then
  Text1.Visible = True
  Text1.SetFocus
 End If
End Sub
Private Sub MS1_entercell()    '确定text1在ms1表中的位置
 frm_main.Text1.text = "1"
 Call frm_main.entercell     '调用函数
End Sub
Private Sub MS1_RowColChange()     '格式化ms1表的第4列、第6列
 For i = 1 To 101
  If MS1.TextMatrix(i, 1) <> "" Then
   MS1.TextMatrix(MS1.Row, 4) = Format(MS1.TextMatrix(MS1.Row, 4), "#0.00")
   MS1.TextMatrix(MS1.Row, 6) = Val(MS1.TextMatrix(MS1.Row, 4)) * Val(MS1.TextMatrix(MS1.Row, 5))
   MS1.TextMatrix(MS1.Row, 6) = Format(MS1.TextMatrix(MS1.Row, 6), "#0.00")
  End If
 Next i
End Sub
Private Sub sf_Change()     '未付金额
 wf.text = Format((Val(yfje.text) - Val(sf.text)), "0.00")
End Sub
Private Sub sl_Change()     '应付金额
 yfje_exp
 wf.text = Format((Val(yfje.text) - Val(sf.text)), "0.00")
End Sub
Private Sub sl_KeyDown(KeyCode As Integer, Shift As Integer)
  If KeyCode = vbKeyReturn Then Combo1.SetFocus
End Sub
Private Sub zk_Change()     '应付金额
 yfje_exp
 wf.text = Format((Val(yfje.text) - Val(sf.text)), "0.00")
End Sub
Private Sub zk_KeyDown(KeyCode As Integer, Shift As Integer)
 If KeyCode = vbKeyReturn Then sl.SetFocus
End Sub
Private Sub hjje_Change()     '应付金额、未付金额
  yfje_exp
  wf.text = Format((Val(yfje.text) - Val(sf.text)), "0.00")
End Sub
Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer)
 If KeyCode = vbKeyReturn Then sf.SetFocus
End Sub
Private Sub sf_KeyDown(KeyCode As Integer, Shift As Integer)
 If KeyCode = vbKeyReturn Then Combc.SetFocus
End Sub
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
 If KeyCode = vbKeyReturn Then
  grid1.Visible = False
  If MS1.Col = 1 Then
     With Adodc2.Recordset
     If .RecordCount > 0 Then
      '赋值给ms1表格
       If .Fields("本级名称") <> "" Then MS1.TextMatrix(MS1.Row, 1) = Trim(.Fields("本级名称"))
       If .Fields("商品编号") <> "" Then MS1.TextMatrix(MS1.Row, 2) = Trim(.Fields("商品编号"))
       If .Fields("单位") <> "" Then MS1.TextMatrix(MS1.Row, 3) = Trim(.Fields("单位"))
       If .Fields("单价") <> "" Then MS1.TextMatrix(MS1.Row, 4) = .Fields("单价")
       Text1.SetFocus
       Text1.text = MS1.text
       grid1.Visible = False
       MS1.Col = 4
     End If
     End With
  End If
  If MS1.Col = 7 Then
     MS1.Row = MS1.Row + 1
     MS1.Col = 1
   Else
     If MS1.Col + 1 <= MS1.Cols - 1 Then
        MS1.Col = MS1.Col + 1
      Else
        If MS1.Row + 1 <= MS1.Rows - 1 Then
           MS1.Row = MS1.Row + 1
           MS1.Col = 1
        End If
     End If
  End If
 End If
 If KeyCode = vbKeyUp Then
    If MS1.Row > 1 Then MS1.Row = MS1.Row - 1
 End If
 If KeyCode = vbKeyDown Then
    If MS1.Row < 99 Then MS1.Row = MS1.Row + 1
 End If
 If KeyCode = vbKeyLeft Then
    If Text1.text <> "" Then
     Text1.SelStart = 0
     Text1.SelLength = Len(Text1.text)
    End If
    If MS1.Col - 7 <= MS1.Cols + 1 Then
       MS1.Col = MS1.Col - 1
       If MS1.Col = 0 Then MS1.Col = 1
      Else
       If MS1.Row + 1 <= MS1.Row - 1 Then
          MS1.Row = MS1.Row + 1
          MS1.Col = 1
       End If
    End If
 End If
 If KeyCode = vbKeyRight Then Call frm_main.moveright     '调用函数
 If KeyCode = vbKeyPageDown Then
  If MS1.Col = 1 Then
   '查询商品信息
   Adodc2.RecordSource = "select * from 商品基础信息表 where 商品级别='3级'"
   Adodc2.Refresh
   If Adodc2.Recordset.RecordCount > 0 Then
      grid1.Visible = True
      grid1.SetFocus
   End If
  End If
 End If
End Sub
Private Sub Text1_Change()
  MS1.text = Text1.text     '赋值给ms1.text
  If MS1.Col = 1 Then
     If Text1.text = "" Then
        grid1.Visible = False
      Else
        '筛选商品名称或简称符合text1的记录
        Adodc2.RecordSource = "select * from 商品基础信息表 where (本级名称 like '" + Text1.text + "'+ '%')or(本级简称  like '" + Text1.text + "'+'%')and 商品基础信息表.商品级别='3级'"
        Adodc2.Refresh
        If Adodc2.Recordset.RecordCount > 0 Then
           grid1.Visible = True
           Text1.SetFocus
        End If
     End If
  End If
  If MS1.Col = 2 Then
     If MS1.TextMatrix(MS1.Row, 1) = "" Then
        MsgBox ("无商品名称,请重新输入!!!")
        MS1.Col = 1
     End If
  End If
  If MS1.Col = 4 Then MS1.TextMatrix(MS1.Row, 6) = Val(MS1.TextMatrix(MS1.Row, 4)) * Val(MS1.TextMatrix(MS1.Row, 5))
  If MS1.Col = 5 Then MS1.TextMatrix(MS1.Row, 6) = Val(MS1.TextMatrix(MS1.Row, 4)) * Val(MS1.TextMatrix(MS1.Row, 5))
  Dim a, B As Single
  For i = 1 To 101
      If MS1.TextMatrix(i, 1) <> "" And MS1.TextMatrix(i, 5) <> "" Then
      pz.text = i                                  '品种数
      a = Val(MS1.TextMatrix(i, 6)) + a   '求合计金额
      B = Val(MS1.TextMatrix(i, 5)) + B    '求合计数量
  End If
  Next i
  hjsl.text = B: hjje.text = Format(a, "0.00")
End Sub
Private Sub Comdj_Click()
  '文本框的大小和位置等于ms1中网格的大小和位置
  Text1.Width = MS1.CellWidth: Text1.Height = MS1.CellHeight
  Text1.Left = MS1.CellLeft + MS1.Left: Text1.Top = MS1.CellTop + MS1.Top
  MS1.Enabled = True
  '打开"进货表"
  rs2.Open "select * from 进货表 order by 票号", cnn, adOpenKeyset, adLockOptimistic
  '创建进货票号
 If rs2.RecordCount > 0 Then
     If Not rs2.EOF Then rs2.MoveLast
     If rs2.Fields("票号") <> "" Then
        lsph = Right(Trim(rs2.Fields("票号")), 4) + 1
        ph.text = Date & "jhd" & Format(lsph, "0000")
     End If
   Else
     ph.text = Date & "jhd" & "0001"
  End If
  rs2.Close
  '设置控件可用或不可用状态
  gys.Enabled = True: sf.Enabled = True: Combc.Enabled = True
  Comqx.Enabled = True: Comdj.Enabled = False: Text1.Enabled = True: sf.Enabled = True
  gys.SetFocus
  '清空数据
  For i = 1 To 100
  For j = 1 To 7
      MS1.TextMatrix(i, j) = ""
  Next j
  Next i
  gys.text = "": pz.text = "0": hjsl.text = "0": hjje.text = "0"
  sf.text = "0": wf.text = "0"
End Sub
Private Sub Combc_Click()
 If MS1.TextMatrix(1, 1) <> "" And MS1.TextMatrix(1, 5) <> "" Then
    For i = 1 To 100
     If MS1.TextMatrix(i, 1) <> "" And MS1.TextMatrix(i, 5) <> "" Then
     '添加新记录到"进货表"表中
      rs3.Open "select * from 进货表", cnn, adOpenKeyset, adLockOptimistic
      rs3.AddNew
      If MS1.TextMatrix(i, 1) <> "" Then rs3.Fields("商品名称") = Trim(MS1.TextMatrix(i, 1))
      If MS1.TextMatrix(i, 2) <> "" Then rs3.Fields("商品编号") = Trim(MS1.TextMatrix(i, 2))
      If MS1.TextMatrix(i, 3) <> "" Then rs3.Fields("单位") = Trim(MS1.TextMatrix(i, 3))
      If MS1.TextMatrix(i, 4) <> "" Then rs3.Fields("进价") = Val(MS1.TextMatrix(i, 4))
      If MS1.TextMatrix(i, 5) <> "" Then rs3.Fields("数量") = Val(MS1.TextMatrix(i, 5))
      If MS1.TextMatrix(i, 6) <> "" Then rs3.Fields("金额") = Val(MS1.TextMatrix(i, 6))
      If MS1.TextMatrix(i, 7) <> "" Then rs3.Fields("备注") = Trim(MS1.TextMatrix(i, 7))
      If gys.text <> "" Then rs3.Fields("供应商") = Trim(gys.text)
      If jsr.text <> "" Then rs3.Fields("操作员") = frm_main.St1.Panels(3).text
      If jsr.text <> "" Then rs3.Fields("经手人") = Trim(jsr.text)
      If rkrq.text <> "" Then rs3.Fields("日期") = Trim(rkrq.text)
      If ph.text <> "" Then rs3.Fields("票号") = Trim(ph.text)
      If ck.text <> "" Then rs3.Fields("仓库") = Trim(ck.text)
      rs3.Update
      rs3.Close
      '筛选符合商品编号和仓库的记录
      rs5.Open "select * from 库存信息表 where 商品编号='" & Trim(MS1.TextMatrix(i, 2)) & "'and 仓库='" & Trim(ck.text) & "'", cnn, adOpenKeyset, adLockOptimistic
      '判断是否有记录
      If rs5.RecordCount > 0 Then
       If rs5.Fields("商品名称") <> "" Then
       '有记录,更新库存数量、库存金额
        rs5.Fields("库存数量") = rs5.Fields("库存数量") + Trim(Val(MS1.TextMatrix(i, 5)))
        rs5.Fields("库存金额") = Val(rs5.Fields("库存数量")) * Val(rs5.Fields("进价"))
        rs5.Update
       End If
      Else
      '无记录,添加新记录到"库存信息表"表中
       rs5.AddNew
       If MS1.TextMatrix(i, 1) <> "" Then rs5.Fields("商品名称") = MS1.TextMatrix(i, 1)
       If MS1.TextMatrix(i, 2) <> "" Then rs5.Fields("商品编号") = MS1.TextMatrix(i, 2)
       If MS1.TextMatrix(i, 3) <> "" Then rs5.Fields("单位") = MS1.TextMatrix(i, 3)
       If MS1.TextMatrix(i, 4) <> "" Then rs5.Fields("进价") = Val(MS1.TextMatrix(i, 4))
       If MS1.TextMatrix(i, 5) <> "" Then rs5.Fields("库存数量") = Val(MS1.TextMatrix(i, 5))
       If MS1.TextMatrix(i, 6) <> "" Then rs5.Fields("库存金额") = Val(MS1.TextMatrix(i, 6))
       If ck.text <> "" Then rs5.Fields("仓库") = ck.text
       rs5.Update
      End If
      rs5.Close
     End If
    Next i
    '添加新记录到"进货单据临时表"中
    rs4.Open "select * from 进货单据临时表", cnn, adOpenKeyset, adLockOptimistic
    rs4.AddNew
    If ph.text <> "" Then rs4.Fields("进货票号") = Trim(ph.text)
    rs4.Fields("品种数") = pz.text
    rs4.Fields("数量") = Val(hjsl.text)
    rs4.Fields("金额") = Val(hjje.text)
    rs4.Fields("折扣") = zk.text
    rs4.Fields("税率") = Val(sl.text) / 100
    rs4.Fields("应付") = Val(yfje.text)
    rs4.Fields("实付") = Val(sf.text)
    rs4.Fields("未付") = Val(wf.text)
    rs4.Fields("经手人") = Trim(jsr.text)
    rs4.Fields("操作员") = frm_main.St1.Panels(3).text
    rs4.Fields("供应商全称") = Trim(gys.text)
    rs4.Fields("欠款日期") = Now
    rs4.Fields("付款方式") = Combo1.text
    If Val(wf.text) <= 0 Then rs4.Fields("是否结清") = "是" Else rs4.Fields("是否结清") = "否"
    rs4.Update     '更新数据库
    rs4.Close     '关闭数据集对象
   '设置控件状态
    Combc.Enabled = False: Comdj.Enabled = True: Comqx.Enabled = False
    Text1.Visible = False: MS1.Enabled = False: grid1.Visible = False
    DataList1.Visible = False: sf.Enabled = False
  Else
    MsgBox ("填写数据不完整,请核对,再保存")
    MS1.Col = 1: MS1.Row = 1
    grid1.Visible = False
 End If
End Sub
Private Sub Comqx_Click()     '取消操作
 For i = 1 To 101
 For j = 1 To 7
     MS1.TextMatrix(i, j) = ""
 Next j
 Next i
 MS1.Enabled = False: Text1.Visible = False: pz.text = "0"
 hjje.text = "0": hjsl.text = "0": sf.text = "0": wf.text = "0": gys.text = ""
 Comdj.Enabled = True: sf.Enabled = False
 Comdj.SetFocus
End Sub
Private Sub Comdy_Click()     '打印进货单
 DataE1.rsCommand6.Open "select * from 进货表 where 进货表.票号='" + Trim(ph.text) + "'order by 商品编号", cnn, adOpenKeyset, adLockOptimistic
 DR1_jhdy.Show
End Sub
Private Sub comend_Click()
 frm_main.Enabled = True
 Unload Me
End Sub

⌨️ 快捷键说明

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