📄 main_htgl_chgl.frm
字号:
MSFlexGrid1.Col = 5
grid1.Visible = False
Else
MsgBox ("无数据选择!!!")
grid1.Visible = False
text1.SetFocus
End If
End If
text1.SetFocus
End If
If KeyCode = vbKeyEscape Then '按ESC键grid1不可见,text1获得焦点
grid1.Visible = False
text1.SetFocus
End If
End Sub
Private Sub jsr_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn Then ck.SetFocus
End Sub
Private Sub MSFlexGrid1_Click() '单击MSFlexGrid1表,text1表可见并获得焦点
If MSFlexGrid1.Row > 1 And MSFlexGrid1.TextMatrix(MSFlexGrid1.Row - 1, 7) <> "" Then
text1.Visible = True
text1.SetFocus
End If
If MSFlexGrid1.Row = 1 Then
text1.Visible = True
text1.SetFocus
End If
End Sub
Private Sub MSFlexGrid1_entercell() '确定text1在MSFlexGrid1表中的位置
Dim X As String, y As String, p As String
If MSFlexGrid1.CellWidth <= 0 Or MSFlexGrid1.CellHeight <= 0 Then Exit Sub
X = MSFlexGrid1.TextMatrix(MSFlexGrid1.FixedRows, MSFlexGrid1.Col)
y = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 0)
If y <> "" Then
If MSFlexGrid1.Col - MSFlexGrid1.LeftCol <= 3 Then
MSFlexGrid1.LeftCol = MSFlexGrid1.LeftCol + 1
End If
If MSFlexGrid1.CellWidth > 0 And MSFlexGrid1.CellHeight > 0 Then
text1.Width = MSFlexGrid1.CellWidth
text1.Height = MSFlexGrid1.CellHeight
text1.Left = MSFlexGrid1.CellLeft + MSFlexGrid1.Left
text1.Top = MSFlexGrid1.CellTop + MSFlexGrid1.Top
End If
X = MSFlexGrid1.TextMatrix(MSFlexGrid1.FixedRows, MSFlexGrid1.Col)
y = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 0)
p = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, MSFlexGrid1.Col)
text1.text = MSFlexGrid1.text
text1.SelStart = 0
text1.SelLength = Len(text1.text)
End If
End Sub
Private Sub MSFlexGrid1_RowColChange()
'格式化MSFlexGrid1表的第4列、第6列
For i = 1 To 101
If MSFlexGrid1.TextMatrix(i, 1) <> "" Then
MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 4) = Format(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 4), "#0.00")
MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 6) = Val(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 4)) * Val(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 5))
MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 6) = Format(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 6), "#0.00")
End If
Next i
End Sub
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
Dim ms1 As MSFlexGrid
Set ms1 = MSFlexGrid1
If KeyCode = vbKeyReturn Then
grid1.Visible = False
If MSFlexGrid1.Col = 1 Then
If Adodc1.Recordset.RecordCount > 0 Then
'赋值给MSFlexGrid1表格
If Adodc1.Recordset.Fields("本级名称") <> "" Then MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 1) = Trim(Adodc1.Recordset.Fields("本级名称"))
If Adodc1.Recordset.Fields("商品编号") <> "" Then MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 2) = Trim(Adodc1.Recordset.Fields("商品编号"))
If Adodc1.Recordset.Fields("单位") <> "" Then MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 3) = Trim(Adodc1.Recordset.Fields("单位"))
If Adodc1.Recordset.Fields("单价") <> "" Then MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 4) = Adodc1.Recordset.Fields("单价")
text1.SetFocus
text1.text = MSFlexGrid1.text
grid1.Visible = False
MSFlexGrid1.Col = 4
Else
End If
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
If text1.text <> "" Then
text1.SelStart = 0
text1.SelLength = Len(text1.text)
End If
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
If KeyCode = vbKeyPageDown Then
If ms1.Col = 1 Then
Adodc1.RecordSource = "select * from 商品基础信息表 where 商品基础信息表.商品级别='3级'"
Adodc1.Refresh
If Adodc1.Recordset.RecordCount > 0 Then
grid1.Visible = True
grid1.SetFocus
End If
End If
End If
End Sub
Private Sub Text1_Change()
MSFlexGrid1.text = text1.text '将text1的值赋给MSFlexGrid1
If MSFlexGrid1.Col = 1 Then
If text1.text = "" Then
grid1.Visible = False
Else
'筛选商品名称或简称符合text1的记录
Adodc1.RecordSource = "select * from 商品基础信息表 where (本级名称 like '" + text1.text + "'+ '%')or(本级简称 like '" + text1.text + "'+'%')and 商品基础信息表.商品级别='3级'"
Adodc1.Refresh
If Adodc1.Recordset.RecordCount > 0 Then
grid1.Visible = True
text1.SetFocus
End If
End If
End If
If MSFlexGrid1.Col = 2 Then
If MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 1) = "" Then
MsgBox ("无商品名称,请重新输入!!!")
MSFlexGrid1.Col = 1
End If
End If
If MSFlexGrid1.Col = 4 Then
'求金额
MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 6) = Val(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 4)) * Val(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 5))
End If
If MSFlexGrid1.Col = 5 Then
'求金额
MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 6) = Val(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 4)) * Val(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 5))
End If
Dim a As Single
Dim B As Single
Dim c As Single
For i = 1 To 101
If MSFlexGrid1.TextMatrix(i, 1) <> "" And MSFlexGrid1.TextMatrix(i, 5) <> "" Then
pz.text = i '品种数
a = Val(MSFlexGrid1.TextMatrix(i, 6)) + a '求合计金额
B = Val(MSFlexGrid1.TextMatrix(i, 5)) + B '求合计数量
End If
Next i
hjsl.text = B
hjje.text = Format(a, "0.00") '格式化合计金额
End Sub
Private Sub Comdj_Click()
'文本框的大小和位置等于MSFlexGrid1中网格的大小和位置
text1.Width = MSFlexGrid1.CellWidth
text1.Height = MSFlexGrid1.CellHeight
text1.Left = MSFlexGrid1.CellLeft + MSFlexGrid1.Left
text1.Top = MSFlexGrid1.CellTop + MSFlexGrid1.Top
MSFlexGrid1.Enabled = True
Dim lsph As Integer
Set rs2 = New ADODB.Recordset
'打开连接
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 & "chd" & Format(lsph, "0000")
End If
Else
ph.text = Date & "chd" & "0001"
End If
rs2.Close
'设置控件可用或不可用状态
Combc.Enabled = True
Comqx.Enabled = True
Comdj.Enabled = False
text1.Enabled = True
'清空MSFlexGrid1网格中的内容
For i = 1 To 100
For j = 1 To 7
MSFlexGrid1.TextMatrix(i, j) = ""
Next j
Next i
'清空文本框内容
pz.text = "0"
hjsl.text = "0"
hjje.text = "0"
jsr.SetFocus
End Sub
Private Sub Combc_Click()
Set rs3 = New ADODB.Recordset
rs3.Open "select * from 出货表", cnn, adOpenKeyset, adLockOptimistic
If MSFlexGrid1.TextMatrix(1, 1) <> "" And MSFlexGrid1.TextMatrix(1, 5) <> "" Then
For i = 1 To 100
If MSFlexGrid1.TextMatrix(i, 1) <> "" And MSFlexGrid1.TextMatrix(i, 5) <> "" Then
'添加新记录到"出货表"表中
rs3.AddNew
If MSFlexGrid1.TextMatrix(i, 1) <> "" Then rs3.Fields("商品名称") = Trim(MSFlexGrid1.TextMatrix(i, 1))
If MSFlexGrid1.TextMatrix(i, 2) <> "" Then rs3.Fields("商品编号") = Trim(MSFlexGrid1.TextMatrix(i, 2))
If MSFlexGrid1.TextMatrix(i, 3) <> "" Then rs3.Fields("单位") = Trim(MSFlexGrid1.TextMatrix(i, 3))
If MSFlexGrid1.TextMatrix(i, 4) <> "" Then rs3.Fields("单价") = Val(MSFlexGrid1.TextMatrix(i, 4))
If MSFlexGrid1.TextMatrix(i, 5) <> "" Then rs3.Fields("数量") = Val(MSFlexGrid1.TextMatrix(i, 5))
If MSFlexGrid1.TextMatrix(i, 6) <> "" Then rs3.Fields("金额") = Val(MSFlexGrid1.TextMatrix(i, 6))
If MSFlexGrid1.TextMatrix(i, 7) <> "" Then rs3.Fields("备注") = Trim(MSFlexGrid1.TextMatrix(i, 7))
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
'添加新记录到"出货历史单据表"中
Set rs4 = New ADODB.Recordset
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("经手人") = jsr.text
rs4.Fields("操作员") = frm_main.St1.Panels(3).text
rs4.Fields("日期") = Now
'更新数据库
rs4.Update
Set rs5 = New ADODB.Recordset
'筛选符合商品编号和仓库的记录
rs5.Open "select * from 库存信息表 where 商品编号='" & Trim(MSFlexGrid1.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(MSFlexGrid1.TextMatrix(i, 5)))
rs5.Fields("库存金额") = Val(rs5.Fields("库存数量")) * Val(rs5.Fields("进价"))
rs5.Update
End If
Else
'无记录,添加新记录到"库存信息表"表中
rs5.AddNew
If MSFlexGrid1.TextMatrix(i, 1) <> "" Then rs5.Fields("商品名称") = MSFlexGrid1.TextMatrix(i, 1)
If MSFlexGrid1.TextMatrix(i, 2) <> "" Then rs5.Fields("商品编号") = MSFlexGrid1.TextMatrix(i, 2)
If MSFlexGrid1.TextMatrix(i, 3) <> "" Then rs5.Fields("单位") = MSFlexGrid1.TextMatrix(i, 3)
If MSFlexGrid1.TextMatrix(i, 4) <> "" Then rs5.Fields("进价") = Val(MSFlexGrid1.TextMatrix(i, 4))
If MSFlexGrid1.TextMatrix(i, 5) <> "" Then rs5.Fields("库存数量") = Val(MSFlexGrid1.TextMatrix(i, 5))
If MSFlexGrid1.TextMatrix(i, 6) <> "" Then rs5.Fields("库存金额") = Val(MSFlexGrid1.TextMatrix(i, 6))
If ck.text <> "" Then rs5.Fields("仓库") = ck.text
rs5.Update
End If
End If
Next i
'关闭数据集对象
rs3.Close
rs4.Close
rs5.Close
'设置控件状态
Combc.Enabled = False
Comdj.Enabled = True
Comqx.Enabled = False
text1.Visible = False
MSFlexGrid1.Enabled = False
grid1.Visible = False
Else
MsgBox ("填写数据不完整,请核对,再保存")
MSFlexGrid1.Col = 1
MSFlexGrid1.Row = 1
grid1.Visible = False
End If
End Sub
Private Sub Comqx_Click() '取消操作
For i = 1 To 101
For j = 1 To 7
MSFlexGrid1.TextMatrix(i, j) = ""
Next j
Next i
MSFlexGrid1.Enabled = False
text1.Visible = False
pz.text = "0"
hjje.text = "0"
hjsl.text = "0"
Comdj.Enabled = True
Comdj.SetFocus
End Sub
Private Sub Comdy_Click() '打印出库单
DataE1.rsCommand7.Open "select * from 出货表 where 出货表.票号='" + Trim(ph.text) + "'order by 商品编号", cnn, adOpenKeyset, adLockOptimistic
DR1_chdy.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 + -