📄 frmapivdgen.frm
字号:
If Trim(Flex(FlexApivd).TextMatrix(Row, Flex(FlexApivd).ColIndex("SELECTFLG|APIVDNO"))) = "" Then
Cancel = True
End If
mCurColOldValue = Trim(Flex(FlexApivd).TextMatrix(Flex(FlexApivd).Row, Flex(FlexApivd).Col))
Select Case Flex(FlexApivd).ColKey(Col)
Case "APIVDNQTY|APIVDQTY", "APIVDPRICE", "APIVDAMT", "APIVDBZ"
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|APIVDNO" 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(FlexApivd), "APIVDNQTY|APIVDQTY,APIVDAMT", Text(TxtTotalQty), Text(TxtTotalAmt), , , Flex(FlexApivd).ColIndex("SELECTFLG|APIVDNO")
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(FlexApivd) Then
Exit Sub
End If
Select Case UCase(Flex(FlexApivd).ColKey(Flex(FlexApivd).Col))
Case "CWSMCODE"
mCodeType = UCase(Flex(FlexApivd).ColKey(Flex(FlexApivd).Col))
End Select
If mCodeType <> "" Then
mQueryValue = gPublicFunction.GetBmQueryValue(Me, mCodeType)
If mQueryValue <> "" Then
Flex(FlexApivd).TextMatrix(Flex(FlexApivd).Row, Flex(FlexApivd).Col) = mQueryValue
Flex(FlexApivd).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(FlexApivd).Editable = flexEDKbdMouse
'|^选择|^序号|^类型|<单据编号|<日期|<货物编码|<货物名称|<计量单位|>换算系数|>数量|>单价|>无税金额|>税额|>含税金额|<税码|<备注
Flex(FlexApivd).ColKey(1) = "SELECTFLG|APIVDNO"
Flex(FlexApivd).ColKey(2) = "CGSHDNO"
Flex(FlexApivd).ColKey(3) = "CGSHDHTYPE"
Flex(FlexApivd).ColKey(4) = "CGSHDHDOCNO"
Flex(FlexApivd).ColKey(5) = "CGSHDHDAT"
Flex(FlexApivd).ColKey(6) = "HWBMCODE"
Flex(FlexApivd).ColKey(7) = "HWBMMC"
Flex(FlexApivd).ColKey(8) = "HWDWCODE"
Flex(FlexApivd).ColKey(9) = "APIVD_HWDWCONV"
Flex(FlexApivd).ColKey(10) = "APIVDQTY"
Flex(FlexApivd).ColKey(11) = "APIVDOQTY|APIVDQTY"
Flex(FlexApivd).ColKey(12) = "APIVDNQTY|APIVDQTY"
Flex(FlexApivd).ColKey(13) = "APIVDPRICE"
Flex(FlexApivd).ColKey(14) = "APIVDAMT"
Flex(FlexApivd).ColKey(15) = "CWSMCODE"
Flex(FlexApivd).ColKey(16) = "APIVDBZ"
gPublicFunction.LoadFormSet Me, , , SBar(SbarApivd)
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(FlexApivd).Rows = 1
mSqlStr = "SELECT CGAPNO,CGAPTYPE=CASE WHEN CGAPTYPE=1 THEN '采购收货' ELSE '采购退货' END,CGAPDOCNO,CGAPDAT,CGAP_HWBMCODE=COALESCE((SELECT HWBMCODE FROM HWBMREC WHERE HWBMNO=CGAP_HWBMNO),''),CGAP_HWBMMC=COALESCE((SELECT HWBMMC FROM HWBMREC WHERE HWBMNO=CGAP_HWBMNO),''),"
mSqlStr = mSqlStr & "CGAP_HWDWCODE=COALESCE((SELECT HWDWCODE FROM HWDWREC WHERE HWDWNO=CGAP_HWDWNO),''),CGAP_HWDWCONV,CGAPQTY=CASE WHEN CGAPTYPE=1 THEN 1 ELSE -1 END*CGAPQTY,CGAPOQTY,CGAPNQTY=CASE WHEN CGAPTYPE=1 THEN 1 ELSE -1 END*(CGAPQTY-CGAPOQTY),CGAPPRICE,CGAPAMT=CASE WHEN CGAPTYPE=1 THEN 1 ELSE -1 END*ROUND((CGAPQTY-CGAPOQTY)*CGAPPRICE,2),"
mSqlStr = mSqlStr & "CGAP_CWSMCODE=COALESCE((SELECT CWSMCODE FROM CWSMREC WHERE CWSMNO=CGAP_CWSMNO),''),CGAPBZ"
mSqlStr = mSqlStr & " FROM CGAPREC WHERE CGAP_KHNO=" & CStr(oApivdh.Apivdh_Khno) & " AND CGAP_CWBZNO=" & CStr(oApivdh.Apivdh_CwBzno) & " AND CGAPQTY-CGAPOQTY>0"
mSqlStr = mSqlStr & " ORDER BY CGAPDOCNO,CGAPNO"
Set mRs = New DbRs
mRs.FillbyDb mSqlStr
mRs.MoveFirst
Do While Not mRs.EOF
ItemStr = vbTab & "" & vbTab & mRs("CGAPNO") & vbTab & mRs("CGAPTYPE") & vbTab & mRs("CGAPDOCNO") & vbTab & mRs("CGAPDAT")
ItemStr = ItemStr & vbTab & mRs("CGAP_HWBMCODE") & vbTab & mRs("CGAP_HWBMMC") & vbTab & mRs("CGAP_HWDWCODE") & vbTab & mRs("CGAP_HWDWCONV")
ItemStr = ItemStr & vbTab & mRs("CGAPQTY") & vbTab & mRs("CGAPOQTY") & vbTab & mRs("CGAPNQTY") & vbTab & mRs("CGAPPRICE") & vbTab & mRs("CGAPAMT")
ItemStr = ItemStr & vbTab & mRs("CGAP_CWSMCODE") & mRs("CGAPBZ")
Flex(FlexApivd).AddItem ItemStr
mRs.MoveNext
Loop
gPublicFunction.SumFlexQtyAmt Flex(FlexApivd), "APIVDNQTY|APIVDQTY,APIVDAMT", Text(TxtTotalQty), Text(TxtTotalAmt), , , Flex(FlexApivd).ColIndex("SELECTFLG|APIVDNO")
Set mRs = Nothing
Exit Sub
Errorhandle:
Set mRs = Nothing
Err.Raise vbObjectError + 1, , Err.Description
End Sub
Private Sub SaveRecord()
Dim mApivd As Apivd
Dim mApivr As Apivr
Dim I As Integer
On Error GoTo Errorhandle
For I = 1 To Flex(FlexApivd).Rows - 1
If Trim(Flex(FlexApivd).TextMatrix(I, Flex(FlexApivd).ColIndex("SELECTFLG|APIVDNO"))) <> "" Then
Set mApivd = New Apivd
Set mApivd.Apivdh = oApivdh
oApivdh.Apivds.Add mApivd, 0
mApivd.Apivd_HwBmCode = Trim(Flex(FlexApivd).TextMatrix(I, Flex(FlexApivd).ColIndex("HWBMCODE")))
mApivd.Apivd_HwDwCode = Trim(Flex(FlexApivd).TextMatrix(I, Flex(FlexApivd).ColIndex("HWDWCODE")))
mApivd.Apivd_HwDwConv = Val(Flex(FlexApivd).TextMatrix(I, Flex(FlexApivd).ColIndex("APIVD_HWDWCONV")))
mApivd.ApivdQty = Val(Flex(FlexApivd).TextMatrix(I, Flex(FlexApivd).ColIndex("APIVDNQTY|APIVDQTY")))
mApivd.ApivdPrice = Val(Flex(FlexApivd).TextMatrix(I, Flex(FlexApivd).ColIndex("APIVDPRICE")))
mApivd.ApivdAmt = Val(Flex(FlexApivd).TextMatrix(I, Flex(FlexApivd).ColIndex("APIVDAMT")))
oApivdh.ApivdhAmt = oApivdh.ApivdhAmt + mApivd.ApivdAmt
mApivd.Apivd_CwSmCode = Trim(Flex(FlexApivd).TextMatrix(I, Flex(FlexApivd).ColIndex("CWSMCODE")))
mApivd.ApivdBz = Trim(Flex(FlexApivd).TextMatrix(I, Flex(FlexApivd).ColIndex("APIVDBZ")))
Set mApivr = New Apivr
Set mApivr.Apivd = mApivd
mApivd.Apivrs.Add mApivr, 0
mApivr.Apivr_CgApno = Val(Flex(FlexApivd).TextMatrix(I, Flex(FlexApivd).ColIndex("CGSHDNO")))
mApivr.ApivrQty = Val(Flex(FlexApivd).TextMatrix(I, Flex(FlexApivd).ColIndex("APIVDNQTY|APIVDQTY")))
End If
Next
oApivdh.Save
MsgBox "存盘成功!"
Unload Me
Exit Sub
Errorhandle:
For Each mApivd In oApivdh.Apivds
If mApivd.ApivdId = -1 Then
oApivdh.Apivds.Remove mApivd.ApivdKey, 0
End If
Next
Err.Raise vbObjectError + 1, , Err.Description
End Sub
Private Sub Form_Unload(Cancel As Integer)
On Error GoTo Errorhandle
Set oApivdh = 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(FlexApivd).Row
mCurCol = Flex(FlexApivd).Col
Select Case Flex(FlexApivd).ColKey(Flex(FlexApivd).Col)
Case "APIVDNQTY|APIVDQTY"
Flex(FlexApivd).TextMatrix(mCurRow, Flex(FlexApivd).ColIndex("APIVDAMT")) = Round(Val(Flex(FlexApivd).TextMatrix(mCurRow, Flex(FlexApivd).ColIndex("APIVDPRICE"))) * Val(Flex(FlexApivd).EditText), 2)
Case "APIVDPRICE"
Flex(FlexApivd).TextMatrix(mCurRow, Flex(FlexApivd).ColIndex("APIVDAMT")) = Round(Val(Flex(FlexApivd).TextMatrix(mCurRow, Flex(FlexApivd).ColIndex("APIVDQTY"))) * Val(Flex(FlexApivd).EditText), 2)
End Select
If UCase(Flex(FlexApivd).ColKey(Flex(FlexApivd).Col)) = "APIVDNQTY|APIVDQTY" Or UCase(Flex(FlexApivd).ColKey(Flex(FlexApivd).Col)) = "APIVDPRICE" Or UCase(Flex(FlexApivd).ColKey(Flex(FlexApivd).Col)) = "APIVDAMT" Then
gPublicFunction.SumFlexQtyAmt Flex(FlexApivd), "APIVDQTY,APIVDAMT", Text(TxtTotalQty), Text(TxtTotalAmt), , , Flex(FlexApivd).ColIndex("SELECTFLG|APIVDNO")
End If
Exit Sub
Errorhandle:
Flex(FlexApivd).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 + -