📄 frmxssod.frm
字号:
Const CmdDelh = 1
Const CmdSave = 3
Dim oXsSodhs As XsSodhs
Dim oXsSodh As XsSodh
Dim oXsSod As XsSod
Private Sub Command_Click(Index As Integer)
On Error GoTo Errorhandle
Select Case Index
Case CmdAdd
AddRecord
Case CmdDel
Delrecord "XSSOD"
Case CmdDelh
Delrecord "XSSODH"
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 oXsSodh Is Nothing Then
Cancel = True
End If
Select Case Flex(FlexXsSod).ColKey(Col)
Case "XSSOD_HWBMCODE"
Case "XSSODQTY", "XSSODPRICE", "XSSODDDAT", "XSSODBZ"
If oXsSod Is Nothing Then
Cancel = True
End If
End Select
Exit Sub
Errorhandle:
MsgBox Err.Description
End Sub
Private Sub Form_Load()
On Error GoTo Errorhandle
Flex(FlexXsSod).Editable = flexEDKbdMouse
Flex(FlexXsSodh).ColKey(1) = "XSSODHDOCNO"
Flex(FlexXsSodh).ColKey(2) = "XSSODHDAT"
Flex(FlexXsSodh).ColKey(3) = "XSSODH_KHCODE"
Flex(FlexXsSod).ColKey(1) = "XSSOD_HWBMCODE"
Flex(FlexXsSod).ColKey(2) = "XSSOD_HWBMMC"
Flex(FlexXsSod).ColKey(3) = "XSSOD_HWBMDW"
Flex(FlexXsSod).ColKey(4) = "XSSODQTY"
Flex(FlexXsSod).ColKey(5) = "XSSODPRICE"
Flex(FlexXsSod).ColKey(6) = "XSSODAMT"
Flex(FlexXsSod).ColKey(7) = "XSSODDDAT"
Flex(FlexXsSod).ColKey(8) = "XSSODBZ"
FillComboWithSql Me, Combo(CBxXsSod_KhCode), "SELECT KHCODE,KHNO FROM KHREC WHERE KHTYPE=1 ORDER BY KHCODE", "KHNO"
LoadDataIntoGrid "XSSODH"
Exit Sub
Errorhandle:
MsgBox Err.Description
End Sub
Private Sub LoadDataIntoGrid(Index As String)
Dim ItemStr As String
Dim mXsSodh As XsSodh
Dim mXsSod As XsSod
On Error GoTo Errorhandle
Select Case Index
Case "XSSODH"
Flex(FlexXsSodh).Rows = 1
Set oXsSodhs = New XsSodhs
oXsSodhs.Fillbydb
For Each mXsSodh In oXsSodhs
ItemStr = vbTab & mXsSodh.XsSodhDocno & vbTab & mXsSodh.XsSodhDat & vbTab & mXsSodh.Kh.KhCode
Flex(FlexXsSodh).AddItem ItemStr
Flex(FlexXsSodh).RowData(Flex(FlexXsSodh).Rows - 1) = mXsSodh.XsSodhKey
Next
If Flex(FlexXsSodh).Rows > 1 Then
Flex(FlexXsSodh).Row = 1
Set oXsSodh = oXsSodhs(CStr(Flex(FlexXsSodh).RowData(1)))
SetValueToControl
Else
Set oXsSodh = Nothing
Clearcontrol
End If
Case "XSSOD"
Flex(FlexXsSod).Rows = 1
Flex(FlexXsSod).AddItem ""
oXsSodh.XsSods.Fillbydb oXsSodh
For Each mXsSod In oXsSodh.XsSods
ItemStr = vbTab & mXsSod.Hwbm.HwBmCode & vbTab & mXsSod.Hwbm.HwBmMc & vbTab & mXsSod.Hwbm.HwBmDw & vbTab & mXsSod.XsSodQty & vbTab & mXsSod.XsSodPrice & vbTab & mXsSod.XsSodAmt & vbTab & mXsSod.XsSodDDat & mXsSod.XsSodBz
Flex(FlexXsSod).AddItem ItemStr, Flex(FlexXsSod).Rows - 1
Flex(FlexXsSod).RowData(Flex(FlexXsSod).Rows - 2) = mXsSod.XsSodKey
Next
If Flex(FlexXsSod).Rows > 2 Then
Flex(FlexXsSod).Row = 1
Set oXsSod = oXsSodh.XsSods(CStr(Flex(FlexXsSod).RowData(1)))
Else
Set oXsSod = Nothing
End If
End Select
Exit Sub
Errorhandle:
Err.Raise vbObjectError + 1, , Err.Description
End Sub
Private Sub AddRecord()
On Error GoTo Errorhandle
Set oXsSodh = New XsSodh
Set oXsSod = Nothing
Clearcontrol
Text(TxtXsSodDocno).SetFocus
Exit Sub
Errorhandle:
Err.Raise vbObjectError + 1, , Err.Description
End Sub
Private Sub Clearcontrol()
On Error GoTo Errorhandle
Text(TxtXsSodDocno).Text = ""
Text(DtpXsSodDat).Text = ""
Combo(CBxXsSod_KhCode).Text = ""
Flex(FlexXsSod).Rows = 1
Flex(FlexXsSod).AddItem ""
Exit Sub
Errorhandle:
Err.Raise vbObjectError + 1, , Err.Description
End Sub
Private Sub SaveRecord()
On Error GoTo Errorhandle
SetValueToObject
If oXsSodh.XsSodhId = -1 Then
oXsSodhs.Add oXsSodh
ChgGrid "ADD"
Else
oXsSodh.Save
ChgGrid "CHG"
End If
Exit Sub
Errorhandle:
Err.Raise vbObjectError + 1, , Err.Description
End Sub
Private Sub SetValueToObject()
Dim mXsSod As XsSod
Dim I As Integer
On Error GoTo Errorhandle
oXsSodh.XsSodhDocno = Trim(Text(TxtXsSodDocno).Text)
oXsSodh.XsSodhDat = Dtp(DtpXsSodDat).Value
oXsSodh.XsSodh_KhCode = Trim(Combo(CBxXsSod_KhCode).Text)
For I = 1 To Flex(FlexXsSod).Rows - 2
Set mXsSod = oXsSodh.XsSods(CStr(Flex(FlexXsSod).RowData(I)))
mXsSod.XsSod_HwBmCode = Trim(Flex(FlexXsSod).TextMatrix(I, Flex(FlexXsSod).ColIndex("XSSOD_HWBMCODE")))
mXsSod.XsSodQty = Val(Flex(FlexXsSod).TextMatrix(I, Flex(FlexXsSod).ColIndex("XSSODQTY")))
mXsSod.XsSodPrice = Val(Flex(FlexXsSod).TextMatrix(I, Flex(FlexXsSod).ColIndex("XSSODPRICE")))
mXsSod.XsSodDDat = Trim(Flex(FlexXsSod).TextMatrix(I, Flex(FlexXsSod).ColIndex("XSSODDDAT")))
mXsSod.XsSodBz = Trim(Flex(FlexXsSod).TextMatrix(I, Flex(FlexXsSod).ColIndex("XSSODBZ")))
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 & oXsSodh.XsSodhDocno & vbTab & oXsSodh.XsSodhDat & vbTab & oXsSodh.Kh.KhCode
Flex(FlexXsSodh).AddItem ItemStr
Flex(FlexXsSodh).RowData(Flex(FlexXsSodh).Rows - 1) = oXsSodh.XsSodhKey
Flex(FlexXsSodh).Row = Flex(FlexXsSodh).Rows - 1
Else
Flex(FlexXsSodh).TextMatrix(Flex(FlexXsSodh).Row, Flex(FlexXsSodh).ColIndex("XSSODHDOCNO")) = oXsSodh.XsSodhDocno
Flex(FlexXsSodh).TextMatrix(Flex(FlexXsSodh).Row, Flex(FlexXsSodh).ColIndex("XSSODHDAT")) = oXsSodh.XsSodhDat
Flex(FlexXsSodh).TextMatrix(Flex(FlexXsSodh).Row, Flex(FlexXsSodh).ColIndex("XSSODH_KHCODE")) = oXsSodh.Kh.KhCode
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 Index
Case "XSSODH"
If Flex(FlexXsSodh).Rows = 1 Then
Exit Sub
End If
If MsgBox("您真的要删除当前整张单据吗?", vbYesNo) = vbYes Then
oXsSodhs.Remove CStr(oXsSodh.XsSodhKey)
Flex(FlexXsSodh).RemoveItem Flex(FlexXsSodh).Row
If Flex(FlexXsSodh).Rows = 1 Then
Set oXsSod = Nothing
Set oXsSodh = Nothing
Clearcontrol
Else
Set oXsSodh = oXsSodhs(CStr(Flex(FlexXsSodh).RowData(Flex(FlexXsSodh).Row)))
SetValueToControl
End If
End If
Case "XSSOD"
If Flex(FlexXsSod).Row = Flex(FlexXsSod).Rows - 1 Then
Exit Sub
End If
If MsgBox("您真的要删除单据当前行吗?", vbYesNo) = vbYes Then
oXsSodh.XsSods.Remove CStr(oXsSod.XsSodKey)
Flex(FlexXsSod).RemoveItem Flex(FlexXsSod).Row
If Flex(FlexXsSod).Rows = 2 Then
Set oXsSod = Nothing
Flex(FlexXsSodh).RemoveItem Flex(FlexXsSodh).Row
If Flex(FlexXsSodh).Rows = 1 Then
Set oXsSodh = Nothing
Else
Set oXsSodh = oXsSodhs(CStr(Flex(FlexXsSodh).RowData(Flex(FlexXsSodh).Row)))
SetValueToControl
End If
Else
If Flex(FlexXsSod).Row = Flex(FlexXsSod).Rows - 1 Then
Flex(FlexXsSod).Row = Flex(FlexXsSod).Row - 1
End If
Set oXsSod = oXsSodh.XsSods(CStr(Flex(FlexXsSod).RowData(Flex(FlexXsSod).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 FlexXsSodh
If Flex(FlexXsSodh).Rows > 1 Then
Set oXsSodh = oXsSodhs(CStr(Flex(FlexXsSodh).RowData(Flex(FlexXsSodh).Row)))
SetValueToControl
Else
Set oXsSodh = Nothing
Clearcontrol
End If
Case FlexXsSod
If Flex(FlexXsSod).Row <> Flex(FlexXsSod).Rows - 1 Then
Set oXsSod = oXsSodh.XsSods(CStr(Flex(FlexXsSod).RowData(Flex(FlexXsSod).Row)))
Else
Set oXsSod = Nothing
End If
End Select
Exit Sub
Errorhandle:
MsgBox Err.Description
End Sub
Private Sub SetValueToControl()
On Error GoTo Errorhandle
Text(TxtXsSodDocno).Text = oXsSodh.XsSodhDocno
Dtp(DtpXsSodDat).Value = oXsSodh.XsSodhDat
Combo(CBxXsSod_KhCode).Text = oXsSodh.Kh.KhCode
LoadDataIntoGrid "XSSOD"
Exit Sub
Errorhandle:
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
Private Sub Form_Unload(Cancel As Integer)
On Error GoTo Errorhandle
Set oXsSodhs = Nothing
Set oXsSodh = Nothing
Set oXsSod = 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(FlexXsSod).Row
mCurCol = Flex(FlexXsSod).Col
Select Case Flex(FlexXsSod).ColKey(Flex(FlexXsSod).Col)
Case "XSSOD_HWBMCODE"
If oXsSod Is Nothing Then
AddNewRecord
Else
oXsSod.XsSod_HwBmCode = Trim(Flex(FlexXsSod).TextMatrix(mCurRow, mCurCol))
Flex(FlexXsSod).TextMatrix(mCurRow, Flex(FlexXsSod).ColIndex("XSSOD_HWBMMC")) = oXsSod.Hwbm.HwBmMc
Flex(FlexXsSod).TextMatrix(mCurRow, Flex(FlexXsSod).ColIndex("XSSOD_HWBMDW")) = oXsSod.Hwbm.HwBmDw
End If
Case "XSSODQTY"
If Not oXsSod Is Nothing Then
oXsSod.XsSodQty = Val(Flex(FlexXsSod).TextMatrix(Flex(FlexXsSod).Row, mCurCol))
Flex(FlexXsSod).TextMatrix(Flex(FlexXsSod).Row, Flex(FlexXsSod).ColIndex("XSSODAMT")) = oXsSod.XsSodAmt
End If
Case "XSSODPRICE"
If Not oXsSod Is Nothing Then
oXsSod.XsSodPrice = Val(Flex(FlexXsSod).TextMatrix(Flex(FlexXsSod).Row, mCurCol))
Flex(FlexXsSod).TextMatrix(Flex(FlexXsSod).Row, Flex(FlexXsSod).ColIndex("XSSODAMT")) = oXsSod.XsSodAmt
End If
Case "XSSODDAT"
If Not oXsSod Is Nothing Then
oXsSod.XsSodDDat = Trim(Flex(FlexXsSod).TextMatrix(Flex(FlexXsSod).Row, mCurCol))
End If
Case "XSSODBZ"
If Not oXsSod Is Nothing Then
oXsSod.XsSodBz = Trim(Flex(FlexXsSod).TextMatrix(Flex(FlexXsSod).Row, mCurCol))
End If
End Select
Exit Sub
Errorhandle:
'Flex(FlexXsSod).TextMatrix(mCurRow, mCurCol) = mCurColOldValue
Err.Raise vbObjectError + 1, , Err.Description
End Sub
Private Sub AddNewRecord()
Dim mCurRow As Integer
On Error GoTo Errorhandle
mCurRow = Flex(FlexXsSod).Row
If Trim(Flex(FlexXsSod).TextMatrix(mCurRow, Flex(FlexXsSod).Col)) <> "" Then
Set oXsSod = New XsSod
Set oXsSod.XsSodh = oXsSodh
oXsSod.XsSod_HwBmCode = Trim(Flex(FlexXsSod).TextMatrix(mCurRow, Flex(FlexXsSod).Col))
oXsSodh.XsSods.Add oXsSod, 0
Flex(FlexXsSod).TextMatrix(mCurRow, Flex(FlexXsSod).ColIndex("XSSOD_HWBMMC")) = oXsSod.Hwbm.HwBmMc
Flex(FlexXsSod).TextMatrix(mCurRow, Flex(FlexXsSod).ColIndex("XSSOD_HWBMDW")) = oXsSod.Hwbm.HwBmDw
Flex(FlexXsSod).RowData(Flex(FlexXsSod).Rows - 1) = oXsSod.XsSodKey
Flex(FlexXsSod).AddItem ""
End If
Exit Sub
Errorhandle:
Set oXsSod = Nothing
Err.Raise vbObjectError + 1, , Err.Description
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -