⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmarivdgen.frm

📁 制造业产供销与往来系统源码,包括进销存及全部控件!
💻 FRM
📖 第 1 页 / 共 2 页
字号:
      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 + -