📄 main_htgl_jhgl.frm
字号:
End Sub
Private Sub MS1_entercell() '确定text1在ms1表中的位置
frm_main.Text1.text = "1"
Call 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)) '使用Val函数将字符串转换为数值型
MS1.TextMatrix(MS1.Row, 6) = Format(MS1.TextMatrix(MS1.Row, 6), "#0.00")
End If
Next i
End Sub
Private Sub MSFlexGrid1_Click()
End Sub
Private Sub sf_Change() '未付金额
wf.text = Format((Val(yfje.text) - Val(sf.text)), "0.00")
End Sub
Private Sub sf_LostFocus() '未设置实付金额
If sf.text = "" Then
sf.text = "0.00"
End If
End Sub
Private Sub sl_Change() '应付金额
yfje_exp
wf.text = Format((Val(yfje.text) - Val(sf.text)), "0.00") '使用Val函数将字符串转换为数值型
End Sub
Private Sub sl_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn Then Combo1.SetFocus
Call AcceptNumber(KeyCode)
End Sub
Private Sub sl_LostFocus() '未设置税率
If sl.text = "" Then
sl.text = 0
End If
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) '输入折扣
Call AcceptNumber(KeyCode)
If KeyCode = vbKeyReturn Then sl.SetFocus
End Sub
Private Sub hjje_Change() '应付金额、未付金额
'使用Format函数将数据格式为“0.00”格式
yfje_exp
wf.text = Format((Val(yfje.text) - Val(sf.text)), "0.00")
End Sub
Private Sub sf_KeyDown(KeyCode As Integer, Shift As Integer) '输入实付金额
If KeyCode = vbKeyReturn Then Combc.SetFocus
Call AcceptNumber(KeyCode)
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语句用来在一个单一对象或一个用户定义类型上执行一系列的语句。
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获得焦点
Text1.text = MS1.text '设置Text1中显示MS1中的信息
grid1.Visible = False '辅助列表项不可见
MS1.Col = 4 'MS1的焦点移到第四列
End If '结束If语句
End With '结束With语句块
End If '结束If语句
If MS1.Col = 7 Then '如果是第7列
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 '结束If语句
End If '结束If语句
End If '结束If语句
End If '结束If语句
If KeyCode = vbKeyUp Then '如果输入的是向上的方向键
If MS1.Row > 1 Then MS1.Row = MS1.Row - 1 '焦点移到上一行
End If '结束If语句
If KeyCode = vbKeyDown Then '如果输入的是向下的方向键
If MS1.Row < 99 Then MS1.Row = MS1.Row + 1 '焦点移到下一行
End If '结束If语句
If KeyCode = vbKeyLeft Then '如果输入的是向左的方向键
If Text1.text <> "" Then '如过文本框Text1的内容不为空
Text1.SelStart = 0 '设置文本框的起始点
Text1.SelLength = Len(Text1.text) '设置所选择的字符数
End If '结束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 '结束If语句
End If '结束If语句
End If '结束If语句
If KeyCode = vbKeyRight Then Call moveright '调用函数
If KeyCode = vbKeyPageDown Then '如果输入的是翻页键
If MS1.Col = 1 Then '如果是第一列
Sql = "select * from 商品基础信息表 where 商品级别<>'1级'" '查询商品信息
Call FunAdo(Adodc2, Sql) '调用ADO控件的执行函数
Adodc2.Refresh '刷新Adodc2的记录集
If Adodc2.Recordset.RecordCount > 0 Then '如果记录集不为空
grid1.Visible = True '显示辅助输入项
grid1.SetFocus '焦点移到辅助输入项上
End If '结束If语句
End If '结束If语句
End If '结束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的记录
Sql = "select * from 商品基础信息表 where (商品全称 like '" + Text1.text + "%')"
Call FunAdo(Adodc2, Sql)
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的宽度
Text1.Height = MS1.CellHeight '设置Text1的高度
Text1.Left = MS1.CellLeft + MS1.Left '设置Text1的左边距
Text1.Top = MS1.CellTop + MS1.Top '设置Text1的顶端边距
MS1.Enabled = True '设置MS1控件可用
rs2.Open "select * from 进货表 order by 票号", _
cnn, adOpenKeyset, adLockOptimistic '打开"进货表"
'创建进货票号
If rs2.RecordCount > 0 Then '如果rs2的记录集不为空
If Not rs2.EOF Then rs2.MoveLast 'rs2的指针移到文件尾
If rs2.Fields("票号") <> "" Then '如果字段票号不为空
lsph = Right(Trim(rs2.Fields("票号")), 4) + 1 '进货票号加1
ph.text = Date & "jhd" & Format(lsph, "0000") '格式化进货票号
End If '结束If语句
Else '如果记录集为空
ph.text = Date & "jhd" & "0001" '设置进货票号
End If '结束If语句
rs2.Close '关闭记录集
'设置控件可用或不可用状态
gys.Enabled = True '设置gys文本框可用
sf.Enabled = True '设置sf文本框可用
Combc.Enabled = True '设置Combc按钮可用
Comqx.Enabled = True '设置Comqx按钮可用
Comdj.Enabled = False '设置Comdj按钮不可用
Text1.Enabled = True '设置Text1文本框可用
sf.Enabled = True '设置sf文本框可用
gys.SetFocus '设置gys文本框获得焦点
'清空数据
For i = 1 To 100 '设置行的循环值
For j = 1 To 7 '设置列的循环值
MS1.TextMatrix(i, j) = "" '清空数据
Next j '变量j值加1
Next i '变量i值加1
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
gys.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
Comqx.Enabled = False: Combc.Enabled = False
gys.Enabled = False
DataList1.Visible = 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
Private Sub zk_LostFocus() '没有输入折扣设置默认值
If zk.text = "" Then
zk.text = 10
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -