📄 frmxsfhdargen.frm
字号:
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 Trim(Flex(FlexXsFhdAr).TextMatrix(Row, Flex(FlexXsFhdAr).ColIndex("SELECTFLG|XsFhdArNO"))) = "" Then
Cancel = True
End If
mCurColOldValue = Trim(Flex(FlexXsFhdAr).TextMatrix(Flex(FlexXsFhdAr).Row, Flex(FlexXsFhdAr).Col))
Select Case Flex(FlexXsFhdAr).ColKey(Col)
Case "HWCKMC", "XSFHDAR_HWDWCONV", "XSFHDARQTY", "XSFHDARPRICE", "XSFHDARAMT", "XSFHDARBZ"
Case "XSFHDAR_HWDMCODE"
Case "CWSMCODE"
Case Else
Cancel = True
End Select
Exit Sub
Errorhandle:
MsgBox Err.Description
End Sub
Private Sub Flex_Click(Index As Integer)
On Error GoTo Errorhandle
If Flex(Index).Row = 0 Then
Exit Sub
End If
If Flex(Index).ColKey(Flex(Index).Col) = "SELECTFLG|XSFHDARNO" Then
If Flex(Index).TextMatrix(Flex(Index).Row, Flex(Index).Col) <> "" Then
Flex(Index).TextMatrix(Flex(Index).Row, Flex(Index).Col) = ""
Else
Flex(Index).TextMatrix(Flex(Index).Row, Flex(Index).Col) = "√"
End If
gPublicFunction.SumFlexQtyAmt Flex(FlexXsFhdAr), "XSFHDARQTY,XSFHDARAMT", Text(TxtTotalQty), Text(TxtTotalAmt), , , Flex(FlexXsFhdAr).ColIndex("SELECTFLG|XSFHDARNO")
End If
Exit Sub
Errorhandle:
MsgBox Err.Description
End Sub
Private Sub Flex_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
On Error GoTo Errorhandle
gPublicFunction.FlexKeyDown Flex(Index), KeyCode
Exit Sub
Errorhandle:
MsgBox Err.Description
End Sub
Private Sub Flex_KeyDownEdit(Index As Integer, ByVal Row As Long, ByVal Col As Long, KeyCode As Integer, ByVal Shift As Integer)
On Error GoTo Errorhandle
gPublicFunction.FlexKeyDown Flex(Index), KeyCode
Exit Sub
Errorhandle:
MsgBox Err.Description
End Sub
Private Sub Flex_KeyPressEdit(Index As Integer, ByVal Row As Long, ByVal Col As Long, KeyAscii As Integer)
On Error GoTo Errorhandle
gPublicFunction.FlexInputCheck Me, Flex(Index), KeyAscii
Exit Sub
Errorhandle:
MsgBox Err.Description
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
On Error GoTo Errorhandle
Select Case KeyCode
Case vbKeyF2
ShowBmQuery
End Select
Exit Sub
Errorhandle:
MsgBox Err.Description
End Sub
Private Sub ShowBmQuery()
Dim mCodeType As String
Dim mQueryValue As String
On Error GoTo Errorhandle
If Not Me.ActiveControl Is Flex(FlexXsFhdAr) Then
Exit Sub
End If
Select Case UCase(Flex(FlexXsFhdAr).ColKey(Flex(FlexXsFhdAr).Col))
Case "HWDWCODE", "HWCKMC", "CWSMCODE"
mCodeType = UCase(Flex(FlexXsFhdAr).ColKey(Flex(FlexXsFhdAr).Col))
End Select
If mCodeType <> "" Then
mQueryValue = gPublicFunction.GetBmQueryValue(Me, mCodeType)
If mQueryValue <> "" Then
Flex(FlexXsFhdAr).TextMatrix(Flex(FlexXsFhdAr).Row, Flex(FlexXsFhdAr).Col) = mQueryValue
Flex(FlexXsFhdAr).EditCell
SetControlToFlex
End If
End If
Exit Sub
Errorhandle:
Err.Raise vbObjectError + 1, , Err.Description
End Sub
Private Sub Form_Load()
On Error GoTo Errorhandle
Flex(FlexXsFhdAr).Editable = flexEDKbdMouse
'|^选择|>订单序号|<采购单号|<采购日期|<货物编码|<货物名称|<计量单位|>换算系数|<仓库|>订单数量|>未到货数量|>收货数量|>单价|>金额|>其它费用|>总金额|<税码|<备注
Flex(FlexXsFhdAr).ColKey(1) = "SELECTFLG|XSFHDARNO"
Flex(FlexXsFhdAr).ColKey(2) = "XSSODNO"
Flex(FlexXsFhdAr).ColKey(3) = "XSSODHDOCNO"
Flex(FlexXsFhdAr).ColKey(4) = "XSSODHDAT"
Flex(FlexXsFhdAr).ColKey(5) = "HWBMCODE"
Flex(FlexXsFhdAr).ColKey(6) = "HWBMMC"
Flex(FlexXsFhdAr).ColKey(7) = "HWDWCODE"
Flex(FlexXsFhdAr).ColKey(8) = "XSFHDAR_HWDWCONV"
Flex(FlexXsFhdAr).ColKey(9) = "HWCKMC"
Flex(FlexXsFhdAr).ColKey(10) = "XSSODQTY"
Flex(FlexXsFhdAr).ColKey(11) = "XSSODNQTY|XSSODQTY"
Flex(FlexXsFhdAr).ColKey(12) = "XSFHDARQTY"
Flex(FlexXsFhdAr).ColKey(13) = "XSFHDARPRICE"
Flex(FlexXsFhdAr).ColKey(14) = "XSFHDARAMT"
Flex(FlexXsFhdAr).ColKey(15) = "CWSMCODE"
Flex(FlexXsFhdAr).ColKey(16) = "XSFHDARBZ"
gPublicFunction.LoadFormSet Me, , , SBar(SbarXsFhdAr)
LoadDataIntoGrid
Exit Sub
Errorhandle:
MsgBox Err.Description
End Sub
Private Sub LoadDataIntoGrid()
Dim ItemStr As String
Dim mSqlStr As String
Dim mRs As DbRs
On Error GoTo Errorhandle
Flex(FlexXsFhdAr).Rows = 1
mSqlStr = "SELECT XSSODHDOCNO,XSSODHDAT,XSSODNO,XSSOD_HWBMCODE=COALESCE((SELECT HWBMCODE FROM HWBMREC WHERE HWBMNO=XSSOD_HWBMNO),''),XSSOD_HWBMMC=COALESCE((SELECT HWBMMC FROM HWBMREC WHERE HWBMNO=XSSOD_HWBMNO),''),"
mSqlStr = mSqlStr & "XSSOD_HWDWCODE=COALESCE((SELECT HWDWCODE FROM HWDWREC WHERE HWDWNO=XSSOD_HWDWNO),''),XSSOD_HWDWCONV,XSSODQTY,XSSODNQTY=XSSODQTY-XSSODOQTY,XSSODPRICE,XSSODAMT=ROUND((XSSODQTY-XSSODOQTY)*XSSODPRICE,2),"
mSqlStr = mSqlStr & "XSSOD_CWSMCODE=COALESCE((SELECT CWSMCODE FROM CWSMREC WHERE CWSMNO=XSSOD_CWSMNO),''),XSSODBZ"
mSqlStr = mSqlStr & " FROM XSSODHREC,XSSODREC WHERE XSSODH_KHNO=" & CStr(oXsFhdArh.XsFhdArh_Khno) & " AND XSSODH_CWBZNO=" & CStr(oXsFhdArh.XsFhdArh_CwBzno) & " AND XSSOD_XSSODHNO=XSSODHNO AND XSSODQTY-XSSODOQTY>0"
mSqlStr = mSqlStr & " ORDER BY XSSODHDOCNO,XSSODNO"
Set mRs = New DbRs
mRs.FillbyDb mSqlStr
mRs.MoveFirst
Do While Not mRs.EOF
ItemStr = vbTab & "" & vbTab & mRs("XSSODNO") & vbTab & mRs("XSSODHDOCNO") & vbTab & mRs("XSSODHDAT")
ItemStr = ItemStr & vbTab & mRs("XSSOD_HWBMCODE") & vbTab & mRs("XSSOD_HWBMMC") & vbTab & mRs("XSSOD_HWDWCODE") & vbTab & mRs("XSSOD_HWDWCONV")
ItemStr = ItemStr & vbTab & "" & vbTab & mRs("XSSODQTY") & vbTab & mRs("XSSODNQTY") & vbTab & mRs("XSSODNQTY") & vbTab & mRs("XSSODPRICE") & vbTab & mRs("XSSODAMT")
ItemStr = ItemStr & vbTab & mRs("XSSOD_CWSMCODE") & mRs("XSSODBZ")
Flex(FlexXsFhdAr).AddItem ItemStr
mRs.MoveNext
Loop
gPublicFunction.SumFlexQtyAmt Flex(FlexXsFhdAr), "XSFHDARQTY,XsFhdArAMT,XsFhdArQAMT,XsFhdArTAMT", Text(TxtTotalQty), Text(TxtTotalAmt), , , Flex(FlexXsFhdAr).ColIndex("SELECTFLG|XSFHDARNO")
Set mRs = Nothing
Exit Sub
Errorhandle:
Set mRs = Nothing
Err.Raise vbObjectError + 1, , Err.Description
End Sub
Private Sub SaveRecord()
Dim mXsFhdAr As XsFhdAr
Dim I As Integer
On Error GoTo Errorhandle
For I = 1 To Flex(FlexXsFhdAr).Rows - 1
If Trim(Flex(FlexXsFhdAr).TextMatrix(I, Flex(FlexXsFhdAr).ColIndex("SELECTFLG|XSFHDARNO"))) <> "" Then
Set mXsFhdAr = New XsFhdAr
Set mXsFhdAr.XsFhdArh = oXsFhdArh
oXsFhdArh.XsFhdArs.Add mXsFhdAr, 0
mXsFhdAr.XsFhdAr_XSSODno = Val(Flex(FlexXsFhdAr).TextMatrix(I, Flex(FlexXsFhdAr).ColIndex("XSSODNO")))
mXsFhdAr.XsFhdAr_HwDwCode = Trim(Flex(FlexXsFhdAr).TextMatrix(I, Flex(FlexXsFhdAr).ColIndex("HWDWCODE")))
mXsFhdAr.XsFhdAr_HwDwConv = Val(Flex(FlexXsFhdAr).TextMatrix(I, Flex(FlexXsFhdAr).ColIndex("XSFHDAR_HWDWCONV")))
mXsFhdAr.XsFhdAr_HwCkMc = Trim(Flex(FlexXsFhdAr).TextMatrix(I, Flex(FlexXsFhdAr).ColIndex("HWCKMC")))
mXsFhdAr.XsFhdArQty = Val(Flex(FlexXsFhdAr).TextMatrix(I, Flex(FlexXsFhdAr).ColIndex("XSFHDARQTY")))
mXsFhdAr.XsFhdArPrice = Val(Flex(FlexXsFhdAr).TextMatrix(I, Flex(FlexXsFhdAr).ColIndex("XSFHDARPRICE")))
mXsFhdAr.XsFhdArAmt = Val(Flex(FlexXsFhdAr).TextMatrix(I, Flex(FlexXsFhdAr).ColIndex("XSFHDARAMT")))
mXsFhdAr.XsFhdAr_CwSmCode = Trim(Flex(FlexXsFhdAr).TextMatrix(I, Flex(FlexXsFhdAr).ColIndex("CWSMCODE")))
mXsFhdAr.XsFhdArBz = Trim(Flex(FlexXsFhdAr).TextMatrix(I, Flex(FlexXsFhdAr).ColIndex("XSFHDARBZ")))
End If
Next
oXsFhdArh.Save
MsgBox "存盘成功!"
Unload Me
Exit Sub
Errorhandle:
For Each mXsFhdAr In oXsFhdArh.XsFhdArs
If mXsFhdAr.XsFhdArId = -1 Then
oXsFhdArh.XsFhdArs.Remove mXsFhdAr.XsFhdArKey, 0
End If
Next
Err.Raise vbObjectError + 1, , Err.Description
End Sub
Private Sub Form_Unload(Cancel As Integer)
On Error GoTo Errorhandle
Set oXsFhdArh = Nothing
gPublicFunction.SaveFormSet Me
Exit Sub
Errorhandle:
MsgBox Err.Description
End Sub
Private Sub Text_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
On Error GoTo Errorhandle
gPublicFunction.FormKeyDown Me, KeyCode, Shift, Text(Index)
Exit Sub
Errorhandle:
MsgBox Err.Description
End Sub
Private Sub Text_KeyPress(Index As Integer, KeyAscii As Integer)
On Error GoTo Errorhandle
gPublicFunction.InputCheck Me, Text(Index), KeyAscii
Exit Sub
Errorhandle:
MsgBox Err.Description
End Sub
Private Sub SetControlToFlex()
Dim mCurRow As Integer
Dim mCurCol As Integer
On Error GoTo Errorhandle
mCurRow = Flex(FlexXsFhdAr).Row
mCurCol = Flex(FlexXsFhdAr).Col
Select Case Flex(FlexXsFhdAr).ColKey(Flex(FlexXsFhdAr).Col)
Case "XSFHDARQTY"
Flex(FlexXsFhdAr).TextMatrix(mCurRow, Flex(FlexXsFhdAr).ColIndex("XSFHDARAMT")) = Round(Val(Flex(FlexXsFhdAr).TextMatrix(mCurRow, Flex(FlexXsFhdAr).ColIndex("XSFHDARPRICE"))) * Val(Flex(FlexXsFhdAr).EditText), 2)
Case "XSFHDARPRICE"
Flex(FlexXsFhdAr).TextMatrix(mCurRow, Flex(FlexXsFhdAr).ColIndex("XSFHDARAMT")) = Round(Val(Flex(FlexXsFhdAr).TextMatrix(mCurRow, Flex(FlexXsFhdAr).ColIndex("XSFHDARQTY"))) * Val(Flex(FlexXsFhdAr).EditText), 2)
End Select
If UCase(Flex(FlexXsFhdAr).ColKey(Flex(FlexXsFhdAr).Col)) = "XSFHDARQTY" Or UCase(Flex(FlexXsFhdAr).ColKey(Flex(FlexXsFhdAr).Col)) = "XSFHDARPRICE" Or UCase(Flex(FlexXsFhdAr).ColKey(Flex(FlexXsFhdAr).Col)) = "XSFHDARAMT" Then
gPublicFunction.SumFlexQtyAmt Flex(FlexXsFhdAr), "XSFHDARQTY,XSFHDARAMT", Text(TxtTotalQty), Text(TxtTotalAmt), , , Flex(FlexXsFhdAr).ColIndex("SELECTFLG|XSFHDARNO")
End If
Exit Sub
Errorhandle:
Flex(FlexXsFhdAr).TextMatrix(mCurRow, mCurCol) = mCurColOldValue
Err.Raise vbObjectError + 1, , Err.Description
End Sub
Private Sub Form_Resize()
On Error GoTo Errorhandle
gPublicFunction.ResizeForm Me
Exit Sub
Errorhandle:
MsgBox Err.Description
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -