📄 frmarivdgen.frm
字号:
Cancel = True
End If
mCurColOldValue = Trim(Flex(FlexArivd).TextMatrix(Flex(FlexArivd).Row, Flex(FlexArivd).Col))
Select Case Flex(FlexArivd).ColKey(Col)
Case "ARIVDNQTY|ARIVDQTY", "ARIVDPRICE", "ARIVDAMT", "ARIVDBZ"
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|ARIVDNO" 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(FlexArivd), "ARIVDNQTY|ARIVDQTY,ARIVDAMT", Text(TxtTotalQty), Text(TxtTotalAmt), , , Flex(FlexArivd).ColIndex("SELECTFLG|ARIVDNO")
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(FlexArivd) Then
Exit Sub
End If
Select Case UCase(Flex(FlexArivd).ColKey(Flex(FlexArivd).Col))
Case "CWSMCODE"
mCodeType = UCase(Flex(FlexArivd).ColKey(Flex(FlexArivd).Col))
End Select
If mCodeType <> "" Then
mQueryValue = gPublicFunction.GetBmQueryValue(Me, mCodeType)
If mQueryValue <> "" Then
Flex(FlexArivd).TextMatrix(Flex(FlexArivd).Row, Flex(FlexArivd).Col) = mQueryValue
Flex(FlexArivd).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(FlexArivd).Editable = flexEDKbdMouse
'|^选择|^序号|^类型|<单据编号|<日期|<货物编码|<货物名称|<计量单位|>换算系数|>数量|>单价|>无税金额|>税额|>含税金额|<税码|<备注
Flex(FlexArivd).ColKey(1) = "SELECTFLG|ARIVDNO"
Flex(FlexArivd).ColKey(2) = "XSFHDNO"
Flex(FlexArivd).ColKey(3) = "XSFHDHTYPE"
Flex(FlexArivd).ColKey(4) = "XSFHDHDOCNO"
Flex(FlexArivd).ColKey(5) = "XSFHDHDAT"
Flex(FlexArivd).ColKey(6) = "HWBMCODE"
Flex(FlexArivd).ColKey(7) = "HWBMMC"
Flex(FlexArivd).ColKey(8) = "HWDWCODE"
Flex(FlexArivd).ColKey(9) = "ARIVD_HWDWCONV"
Flex(FlexArivd).ColKey(10) = "ARIVDQTY"
Flex(FlexArivd).ColKey(11) = "ARIVDOQTY|ARIVDQTY"
Flex(FlexArivd).ColKey(12) = "ARIVDNQTY|ARIVDQTY"
Flex(FlexArivd).ColKey(13) = "ARIVDPRICE"
Flex(FlexArivd).ColKey(14) = "ARIVDAMT"
Flex(FlexArivd).ColKey(15) = "CWSMCODE"
Flex(FlexArivd).ColKey(16) = "ARIVDBZ"
gPublicFunction.LoadFormSet Me, , , SBar(SbarArivd)
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(FlexArivd).Rows = 1
mSqlStr = "SELECT XsArNO,XsArTYPE=CASE WHEN XsArTYPE=1 THEN '销售发货' ELSE '销售退货' END,XsArDOCNO,XsArDAT,XsAr_HWBMCODE=COALESCE((SELECT HWBMCODE FROM HWBMREC WHERE HWBMNO=XsAr_HWBMNO),''),XsAr_HWBMMC=COALESCE((SELECT HWBMMC FROM HWBMREC WHERE HWBMNO=XsAr_HWBMNO),''),"
mSqlStr = mSqlStr & "XsAr_HWDWCODE=COALESCE((SELECT HWDWCODE FROM HWDWREC WHERE HWDWNO=XsAr_HWDWNO),''),XsAr_HWDWCONV,XsArQTY=CASE WHEN XsArTYPE=1 THEN 1 ELSE -1 END*XsArQTY,XsArOQTY,XsArNQTY=CASE WHEN XsArTYPE=1 THEN 1 ELSE -1 END*(XsArQTY-XsArOQTY),XsArPRICE,XsArAMT=CASE WHEN XsArTYPE=1 THEN 1 ELSE -1 END*ROUND((XsArQTY-XsArOQTY)*XsArPRICE,2),"
mSqlStr = mSqlStr & "XsAr_CWSMCODE=COALESCE((SELECT CWSMCODE FROM CWSMREC WHERE CWSMNO=XsAr_CWSMNO),''),XsArBZ"
mSqlStr = mSqlStr & " FROM XsArREC WHERE XsAr_KHNO=" & CStr(oArivdh.Arivdh_Khno) & " AND XsAr_CWBZNO=" & CStr(oArivdh.Arivdh_CwBzno) & " AND XsArQTY-XsArOQTY>0"
mSqlStr = mSqlStr & " ORDER BY XsArDOCNO,XsArNO"
Set mRs = New DbRs
mRs.FillbyDb mSqlStr
mRs.MoveFirst
Do While Not mRs.EOF
ItemStr = vbTab & "" & vbTab & mRs("XsArNO") & vbTab & mRs("XsArTYPE") & vbTab & mRs("XsArDOCNO") & vbTab & mRs("XsArDAT")
ItemStr = ItemStr & vbTab & mRs("XsAr_HWBMCODE") & vbTab & mRs("XsAr_HWBMMC") & vbTab & mRs("XsAr_HWDWCODE") & vbTab & mRs("XsAr_HWDWCONV")
ItemStr = ItemStr & vbTab & mRs("XsArQTY") & vbTab & mRs("XsArOQTY") & vbTab & mRs("XsArNQTY") & vbTab & mRs("XsArPRICE") & vbTab & mRs("XsArAMT")
ItemStr = ItemStr & vbTab & mRs("XsAr_CWSMCODE") & mRs("XsArBZ")
Flex(FlexArivd).AddItem ItemStr
mRs.MoveNext
Loop
gPublicFunction.SumFlexQtyAmt Flex(FlexArivd), "ARIVDNQTY|ARIVDQTY,ARIVDAMT", Text(TxtTotalQty), Text(TxtTotalAmt), , , Flex(FlexArivd).ColIndex("SELECTFLG|ARIVDNO")
Set mRs = Nothing
Exit Sub
Errorhandle:
Set mRs = Nothing
Err.Raise vbObjectError + 1, , Err.Description
End Sub
Private Sub SaveRecord()
Dim mArivd As Arivd
Dim mArivr As Arivr
Dim I As Integer
On Error GoTo Errorhandle
For I = 1 To Flex(FlexArivd).Rows - 1
If Trim(Flex(FlexArivd).TextMatrix(I, Flex(FlexArivd).ColIndex("SELECTFLG|ARIVDNO"))) <> "" Then
Set mArivd = New Arivd
Set mArivd.Arivdh = oArivdh
oArivdh.Arivds.Add mArivd, 0
mArivd.Arivd_HwBmCode = Trim(Flex(FlexArivd).TextMatrix(I, Flex(FlexArivd).ColIndex("HWBMCODE")))
mArivd.Arivd_HwDwCode = Trim(Flex(FlexArivd).TextMatrix(I, Flex(FlexArivd).ColIndex("HWDWCODE")))
mArivd.Arivd_HwDwConv = Val(Flex(FlexArivd).TextMatrix(I, Flex(FlexArivd).ColIndex("Arivd_HWDWCONV")))
mArivd.ArivdQty = Val(Flex(FlexArivd).TextMatrix(I, Flex(FlexArivd).ColIndex("ARIVDNQTY|ARIVDQTY")))
mArivd.ArivdPrice = Val(Flex(FlexArivd).TextMatrix(I, Flex(FlexArivd).ColIndex("ARIVDPRICE")))
mArivd.ArivdAmt = Val(Flex(FlexArivd).TextMatrix(I, Flex(FlexArivd).ColIndex("ARIVDAMT")))
oArivdh.ArivdhAmt = oArivdh.ArivdhAmt + mArivd.ArivdAmt
mArivd.Arivd_CwSmCode = Trim(Flex(FlexArivd).TextMatrix(I, Flex(FlexArivd).ColIndex("CWSMCODE")))
mArivd.ArivdBz = Trim(Flex(FlexArivd).TextMatrix(I, Flex(FlexArivd).ColIndex("ARIVDBZ")))
Set mArivr = New Arivr
Set mArivr.Arivd = mArivd
mArivd.Arivrs.Add mArivr, 0
mArivr.Arivr_XsArno = Val(Flex(FlexArivd).TextMatrix(I, Flex(FlexArivd).ColIndex("XSFHDNO")))
mArivr.ArivrQty = Val(Flex(FlexArivd).TextMatrix(I, Flex(FlexArivd).ColIndex("ARIVDNQTY|ARIVDQTY")))
End If
Next
oArivdh.Save
MsgBox "存盘成功!"
Unload Me
Exit Sub
Errorhandle:
For Each mArivd In oArivdh.Arivds
If mArivd.ArivdId = -1 Then
oArivdh.Arivds.Remove mArivd.ArivdKey, 0
End If
Next
Err.Raise vbObjectError + 1, , Err.Description
End Sub
Private Sub Form_Unload(Cancel As Integer)
On Error GoTo Errorhandle
Set oArivdh = 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(FlexArivd).Row
mCurCol = Flex(FlexArivd).Col
Select Case Flex(FlexArivd).ColKey(Flex(FlexArivd).Col)
Case "ARIVDNQTY|ARIVDQTY"
Flex(FlexArivd).TextMatrix(mCurRow, Flex(FlexArivd).ColIndex("ARIVDAMT")) = Round(Val(Flex(FlexArivd).TextMatrix(mCurRow, Flex(FlexArivd).ColIndex("ARIVDPRICE"))) * Val(Flex(FlexArivd).EditText), 2)
Case "ARIVDPRICE"
Flex(FlexArivd).TextMatrix(mCurRow, Flex(FlexArivd).ColIndex("ARIVDAMT")) = Round(Val(Flex(FlexArivd).TextMatrix(mCurRow, Flex(FlexArivd).ColIndex("ARIVDQTY"))) * Val(Flex(FlexArivd).EditText), 2)
End Select
If UCase(Flex(FlexArivd).ColKey(Flex(FlexArivd).Col)) = "ARIVDNQTY|ARIVDQTY" Or UCase(Flex(FlexArivd).ColKey(Flex(FlexArivd).Col)) = "ARIVDPRICE" Or UCase(Flex(FlexArivd).ColKey(Flex(FlexArivd).Col)) = "ARIVDAMT" Then
gPublicFunction.SumFlexQtyAmt Flex(FlexArivd), "ARIVDQTY,ARIVDAMT", Text(TxtTotalQty), Text(TxtTotalAmt), , , Flex(FlexArivd).ColIndex("SELECTFLG|ARIVDNO")
End If
Exit Sub
Errorhandle:
Flex(FlexArivd).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 + -