📄 frmkcpdd.frm
字号:
On Error GoTo Errorhandle
Select Case Index
Case CBxKcPdd_HwCkMc
If oKcPddh Is Nothing Then
Exit Sub
End If
If oKcPddh.HwCk.HwCkMc <> Trim(Combo(Index).Text) Then
oKcPddh.KcPddh_HwCkMc = Trim(Combo(Index).Text)
End If
End Select
Exit Sub
Errorhandle:
MsgBox Err.Description
End Sub
Private Sub Command_Click(Index As Integer)
On Error GoTo Errorhandle
Select Case Index
Case CmdAdd
AddRecord
Case CmdDel
Delrecord "KcPdd"
Case CmdDelh
Delrecord "KcPddH"
Case CmdSave
SaveRecord
End Select
Exit Sub
Errorhandle:
MsgBox Err.Description
End Sub
Private Sub Flex_AfterEdit(Index As Integer, ByVal Row As Long, ByVal Col As Long)
On Error GoTo Errorhandle
SetControlToFlex
Exit Sub
Errorhandle:
MsgBox Err.Description
End Sub
Private Sub Flex_BeforeEdit(Index As Integer, ByVal Row As Long, ByVal Col As Long, Cancel As Boolean)
On Error GoTo Errorhandle
If oKcPddh Is Nothing Then
Cancel = True
End If
Select Case Flex(FlexKcPdd).ColKey(Col)
Case "KCPDD_HWBMCODE"
Case "KCPDDQTY2", "KCPDD_HWPDRCMC", "KCPDDBZ"
If oKcPdd Is Nothing Then
Cancel = True
End If
Case Else
Cancel = True
End Select
Exit Sub
Errorhandle:
MsgBox Err.Description
End Sub
Private Sub Form_Load()
On Error GoTo Errorhandle
Flex(FlexKcPdd).Editable = flexEDKbdMouse
Flex(FlexKcPddh).ColKey(1) = "KCPDDHDOCNO"
Flex(FlexKcPddh).ColKey(2) = "KCPDDHDAT"
Flex(FlexKcPddh).ColKey(3) = "KCPDDH_HWCKMC"
Flex(FlexKcPdd).ColKey(1) = "KCPDD_HWBMCODE"
Flex(FlexKcPdd).ColKey(2) = "KCPDD_HWBMMC"
Flex(FlexKcPdd).ColKey(3) = "KCPDD_HWBMDW"
Flex(FlexKcPdd).ColKey(4) = "KCPDDQTY1"
Flex(FlexKcPdd).ColKey(5) = "KCPDDQTY2"
Flex(FlexKcPdd).ColKey(6) = "KCPDD_HWPDRCMC"
Flex(FlexKcPdd).ColKey(7) = "KCPDDBZ"
FillComboWithSql Me, Combo(CBxKcPdd_HwCkMc), "SELECT HwCkMc,HwCkNO FROM HwCkREC ORDER BY HwCkMc", "HWCKNO"
LoadDataIntoGrid "KcPddH"
Exit Sub
Errorhandle:
MsgBox Err.Description
End Sub
Private Sub LoadDataIntoGrid(Index As String)
Dim ItemStr As String
Dim mKcPddh As KcPddh
Dim mKcPdd As KcPdd
On Error GoTo Errorhandle
Select Case UCase(Index)
Case "KCPDDH"
Flex(FlexKcPddh).Rows = 1
Set oKcPddhs = New KcPddhs
oKcPddhs.Fillbydb
For Each mKcPddh In oKcPddhs
ItemStr = vbTab & mKcPddh.KcPddhDocno & vbTab & mKcPddh.KcPddhDat & vbTab & mKcPddh.HwCk.HwCkMc
Flex(FlexKcPddh).AddItem ItemStr
Flex(FlexKcPddh).RowData(Flex(FlexKcPddh).Rows - 1) = mKcPddh.KcPddhKey
Next
If Flex(FlexKcPddh).Rows > 1 Then
Flex(FlexKcPddh).Row = 1
Set oKcPddh = oKcPddhs(CStr(Flex(FlexKcPddh).RowData(1)))
SetValueToControl
Else
Set oKcPddh = Nothing
Clearcontrol
End If
Case "KCPDD"
Flex(FlexKcPdd).Rows = 1
Flex(FlexKcPdd).AddItem ""
oKcPddh.KcPdds.Fillbydb oKcPddh
For Each mKcPdd In oKcPddh.KcPdds
ItemStr = vbTab & mKcPdd.Hwbm.HwBmCode & vbTab & mKcPdd.Hwbm.HwBmMc & vbTab & mKcPdd.Hwbm.HwBmDw & vbTab & mKcPdd.KcPddQty1 & vbTab & mKcPdd.KcPddQty2 & vbTab & mKcPdd.HwPdRc.HwPdRcMc & vbTab & mKcPdd.KcPddBz
Flex(FlexKcPdd).AddItem ItemStr, Flex(FlexKcPdd).Rows - 1
Flex(FlexKcPdd).RowData(Flex(FlexKcPdd).Rows - 2) = mKcPdd.KcPddKey
Next
If Flex(FlexKcPdd).Rows > 2 Then
Flex(FlexKcPdd).Row = 1
Set oKcPdd = oKcPddh.KcPdds(CStr(Flex(FlexKcPdd).RowData(1)))
Else
Set oKcPdd = Nothing
End If
End Select
Exit Sub
Errorhandle:
Err.Raise vbObjectError + 1, , Err.Description
End Sub
Private Sub AddRecord()
On Error GoTo Errorhandle
Set oKcPddh = New KcPddh
Set oKcPdd = Nothing
Clearcontrol
Text(TxtKcPddDocno).SetFocus
Exit Sub
Errorhandle:
Err.Raise vbObjectError + 1, , Err.Description
End Sub
Private Sub Clearcontrol()
On Error GoTo Errorhandle
Text(TxtKcPddDocno).Text = ""
Text(DtpKcPddDat).Text = ""
Combo(CBxKcPdd_HwCkMc).Text = ""
Flex(FlexKcPdd).Rows = 1
Flex(FlexKcPdd).AddItem ""
Exit Sub
Errorhandle:
Err.Raise vbObjectError + 1, , Err.Description
End Sub
Private Sub SaveRecord()
On Error GoTo Errorhandle
SetValueToObject
If oKcPddh.KcPddhId = -1 Then
oKcPddhs.Add oKcPddh
ChgGrid "ADD"
Else
oKcPddh.Save
ChgGrid "CHG"
End If
Exit Sub
Errorhandle:
Err.Raise vbObjectError + 1, , Err.Description
End Sub
Private Sub SetValueToObject()
Dim mKcPdd As KcPdd
Dim I As Integer
On Error GoTo Errorhandle
oKcPddh.KcPddhDocno = Trim(Text(TxtKcPddDocno).Text)
oKcPddh.KcPddhDat = Dtp(DtpKcPddDat).Value
oKcPddh.KcPddh_HwCkMc = Trim(Combo(CBxKcPdd_HwCkMc).Text)
For I = 1 To Flex(FlexKcPdd).Rows - 2
Set mKcPdd = oKcPddh.KcPdds(CStr(Flex(FlexKcPdd).RowData(I)))
mKcPdd.KcPdd_HwBmCode = Trim(Flex(FlexKcPdd).TextMatrix(I, Flex(FlexKcPdd).ColIndex("KCPDD_HWBMCODE")))
mKcPdd.KcPddQty2 = Val(Flex(FlexKcPdd).TextMatrix(I, Flex(FlexKcPdd).ColIndex("KCPDDQTY2")))
mKcPdd.KcPdd_HwPdrcMc = Trim(Flex(FlexKcPdd).TextMatrix(I, Flex(FlexKcPdd).ColIndex("KCPDD_HWPDRCMC")))
mKcPdd.KcPddBz = Trim(Flex(FlexKcPdd).TextMatrix(I, Flex(FlexKcPdd).ColIndex("KCPDDBZ")))
Next
Exit Sub
Errorhandle:
Err.Raise vbObjectError + 1, , Err.Description
End Sub
Private Sub ChgGrid(RecordName As String)
Dim ItemStr As String
On Error GoTo Errorhandle
If RecordName = "ADD" Then
ItemStr = vbTab & oKcPddh.KcPddhDocno & vbTab & oKcPddh.KcPddhDat & vbTab & oKcPddh.HwCk.HwCkMc
Flex(FlexKcPddh).AddItem ItemStr
Flex(FlexKcPddh).RowData(Flex(FlexKcPddh).Rows - 1) = oKcPddh.KcPddhKey
Flex(FlexKcPddh).Row = Flex(FlexKcPddh).Rows - 1
Else
Flex(FlexKcPddh).TextMatrix(Flex(FlexKcPddh).Row, Flex(FlexKcPddh).ColIndex("KCPDDHDOCNO")) = oKcPddh.KcPddhDocno
Flex(FlexKcPddh).TextMatrix(Flex(FlexKcPddh).Row, Flex(FlexKcPddh).ColIndex("KCPDDHDAT")) = oKcPddh.KcPddhDat
Flex(FlexKcPddh).TextMatrix(Flex(FlexKcPddh).Row, Flex(FlexKcPddh).ColIndex("KCPDDH_HWCKMC")) = oKcPddh.HwCk.HwCkMc
End If
Exit Sub
Errorhandle:
Err.Raise vbObjectError + 1, , Err.Description
End Sub
Private Sub Delrecord(Index As String)
On Error GoTo Errorhandle
Select Case UCase(Index)
Case "KCPDDH"
If Flex(FlexKcPddh).Rows = 1 Then
Exit Sub
End If
If MsgBox("您真的要删除当前整张单据吗?", vbYesNo) = vbYes Then
oKcPddhs.Remove CStr(oKcPddh.KcPddhKey)
Flex(FlexKcPddh).RemoveItem Flex(FlexKcPddh).Row
If Flex(FlexKcPddh).Rows = 1 Then
Set oKcPdd = Nothing
Set oKcPddh = Nothing
Clearcontrol
Else
Set oKcPddh = oKcPddhs(CStr(Flex(FlexKcPddh).RowData(Flex(FlexKcPddh).Row)))
SetValueToControl
End If
End If
Case "KCPDD"
If Flex(FlexKcPdd).Row = Flex(FlexKcPdd).Rows - 1 Then
Exit Sub
End If
If MsgBox("您真的要删除单据当前行吗?", vbYesNo) = vbYes Then
oKcPddh.KcPdds.Remove CStr(oKcPdd.KcPddKey)
Flex(FlexKcPdd).RemoveItem Flex(FlexKcPdd).Row
If Flex(FlexKcPdd).Rows = 2 Then
Set oKcPdd = Nothing
Flex(FlexKcPddh).RemoveItem Flex(FlexKcPddh).Row
If Flex(FlexKcPddh).Rows = 1 Then
Set oKcPddh = Nothing
Else
Set oKcPddh = oKcPddhs(CStr(Flex(FlexKcPddh).RowData(Flex(FlexKcPddh).Row)))
SetValueToControl
End If
Else
If Flex(FlexKcPdd).Row = Flex(FlexKcPdd).Rows - 1 Then
Flex(FlexKcPdd).Row = Flex(FlexKcPdd).Row - 1
End If
Set oKcPdd = oKcPddh.KcPdds(CStr(Flex(FlexKcPdd).RowData(Flex(FlexKcPdd).Row)))
End If
End If
End Select
Exit Sub
Errorhandle:
Err.Raise vbObjectError + 1, , Err.Description
End Sub
Private Sub Flex_RowColChange(Index As Integer)
On Error GoTo Errorhandle
Select Case Index
Case FlexKcPddh
If Flex(FlexKcPddh).Rows > 1 Then
Set oKcPddh = oKcPddhs(CStr(Flex(FlexKcPddh).RowData(Flex(FlexKcPddh).Row)))
SetValueToControl
Else
Set oKcPddh = Nothing
Clearcontrol
End If
Case FlexKcPdd
If Flex(FlexKcPdd).Row <> Flex(FlexKcPdd).Rows - 1 Then
Set oKcPdd = oKcPddh.KcPdds(CStr(Flex(FlexKcPdd).RowData(Flex(FlexKcPdd).Row)))
Else
Set oKcPdd = Nothing
End If
End Select
Exit Sub
Errorhandle:
MsgBox Err.Description
End Sub
Private Sub SetValueToControl()
On Error GoTo Errorhandle
Text(TxtKcPddDocno).Text = oKcPddh.KcPddhDocno
Dtp(DtpKcPddDat).Value = oKcPddh.KcPddhDat
Combo(CBxKcPdd_HwCkMc).Text = oKcPddh.HwCk.HwCkMc
LoadDataIntoGrid "KcPdd"
Exit Sub
Errorhandle:
Err.Raise vbObjectError + 1, , Err.Description
End Sub
Private Sub Form_Unload(Cancel As Integer)
On Error GoTo Errorhandle
Set oKcPddhs = Nothing
Set oKcPddh = Nothing
Set oKcPdd = Nothing
Exit Sub
Errorhandle:
MsgBox Err.Description
End Sub
Private Sub SetControlToFlex()
Dim mCurCol As Integer
Dim mCurRow As Integer
On Error GoTo Errorhandle
mCurRow = Flex(FlexKcPdd).Row
mCurCol = Flex(FlexKcPdd).Col
Select Case Flex(FlexKcPdd).ColKey(Flex(FlexKcPdd).Col)
Case "KCPDD_HWBMCODE"
If oKcPdd Is Nothing Then
AddNewRecord
Else
oKcPdd.KcPdd_HwBmCode = Trim(Flex(FlexKcPdd).TextMatrix(mCurRow, mCurCol))
Flex(FlexKcPdd).TextMatrix(mCurRow, Flex(FlexKcPdd).ColIndex("KCPDD_HWBMMC")) = oKcPdd.Hwbm.HwBmMc
Flex(FlexKcPdd).TextMatrix(mCurRow, Flex(FlexKcPdd).ColIndex("KCPDD_HWBMDW")) = oKcPdd.Hwbm.HwBmDw
Flex(FlexKcPdd).TextMatrix(mCurRow, Flex(FlexKcPdd).ColIndex("KCPDDQTY1")) = oKcPdd.KcPddQty1
End If
Case "KCPDDQTY2"
If Not oKcPdd Is Nothing Then
oKcPdd.KcPddQty2 = Val(Flex(FlexKcPdd).TextMatrix(Flex(FlexKcPdd).Row, mCurCol))
End If
Case "KCPDD_HWPDRCMC"
If Not oKcPdd Is Nothing Then
oKcPdd.KcPdd_HwPdrcMc = Trim(Flex(FlexKcPdd).TextMatrix(Flex(FlexKcPdd).Row, mCurCol))
End If
Case "KCPDDBZ"
If Not oKcPdd Is Nothing Then
oKcPdd.KcPddBz = Trim(Flex(FlexKcPdd).TextMatrix(Flex(FlexKcPdd).Row, mCurCol))
End If
End Select
Exit Sub
Errorhandle:
Err.Raise vbObjectError + 1, , Err.Description
End Sub
Private Sub AddNewRecord()
Dim mCurRow As Integer
On Error GoTo Errorhandle
mCurRow = Flex(FlexKcPdd).Row
If Trim(Flex(FlexKcPdd).TextMatrix(mCurRow, Flex(FlexKcPdd).Col)) <> "" Then
Set oKcPdd = New KcPdd
Set oKcPdd.KcPddh = oKcPddh
oKcPdd.KcPdd_HwBmCode = Trim(Flex(FlexKcPdd).TextMatrix(mCurRow, Flex(FlexKcPdd).Col))
oKcPddh.KcPdds.Add oKcPdd, 0
Flex(FlexKcPdd).TextMatrix(mCurRow, Flex(FlexKcPdd).ColIndex("KCPDD_HWBMMC")) = oKcPdd.Hwbm.HwBmMc
Flex(FlexKcPdd).TextMatrix(mCurRow, Flex(FlexKcPdd).ColIndex("KCPDD_HWBMDW")) = oKcPdd.Hwbm.HwBmDw
Flex(FlexKcPdd).TextMatrix(mCurRow, Flex(FlexKcPdd).ColIndex("KCPDDQTY1")) = oKcPdd.KcPddQty1
Flex(FlexKcPdd).RowData(Flex(FlexKcPdd).Rows - 1) = oKcPdd.KcPddKey
Flex(FlexKcPdd).AddItem ""
End If
Exit Sub
Errorhandle:
Set oKcPdd = Nothing
Err.Raise vbObjectError + 1, , Err.Description
End Sub
Private Sub Form_Resize()
On Error GoTo Errorhandle
Resize_ALL Me
Exit Sub
Errorhandle:
MsgBox Err.Description
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -