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

📄 frmscbcdgen.frm

📁 制造业产供销与往来系统源码,包括进销存及全部控件!
💻 FRM
📖 第 1 页 / 共 2 页
字号:
Const TxtTotal_ScdQty = 1
Const TxtTotal_ScdWQty = 2
Const TxtTotal_ScBcdQty = 3
Const TxtTotal_ScBcdAmt = 4

Dim mCurColOldValue As String

Dim oScBcdh As ScBcdh

Public Property Set ScBcdh(vScBcdh As ScBcdh)
   Set oScBcdh = vScBcdh
End Property

Private Sub Command_Click(Index As Integer)
On Error GoTo ErrorHandle

   Select Case Index
   Case CmdSave
         SaveRecord
   Case CmdExit
         Unload Me
   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 Trim(Flex(FlexScBcd).TextMatrix(Row, Flex(FlexScBcd).ColIndex("SELECTFLG|ScBcdNO"))) = "" Then
      Cancel = True
   End If

   mCurColOldValue = Trim(Flex(FlexScBcd).TextMatrix(Flex(FlexScBcd).Row, Flex(FlexScBcd).Col))

   Select Case Flex(FlexScBcd).ColKey(Col)
         
   Case "HWCKMC", "SCBCD_HWDWCONV", "SCBCDQTY", "SCBCDPRICE", "SCBCDAMT", "SCBCDBZ", "SCBCD_HWDMCODE"
         
   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|SCBCDNO" 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(FlexScBcd), "SCDQTY,SCDWQTY,SCBCDQTY,SCBCDAMT", Text(TxtTotal_ScdQty), Text(TxtTotal_ScdWQty), Text(TxtTotal_ScBcdQty), Text(TxtTotal_ScBcdAmt), Flex(FlexScBcd).ColIndex("SELECTFLG|ScBcdNO")
   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(FlexScBcd) Then
      Exit Sub
   End If
      
   Select Case UCase(Flex(FlexScBcd).ColKey(Flex(FlexScBcd).Col))
   Case "HWDWCODE", "HWCKMC"
         mCodeType = UCase(Flex(FlexScBcd).ColKey(Flex(FlexScBcd).Col))
   End Select
   
   If mCodeType <> "" Then
      mQueryValue = gPublicFunction.GetBmQueryValue(Me, mCodeType)
      If mQueryValue <> "" Then
         Flex(FlexScBcd).TextMatrix(Flex(FlexScBcd).Row, Flex(FlexScBcd).Col) = mQueryValue
         Flex(FlexScBcd).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(FlexScBcd).Editable = flexEDKbdMouse
    
   Flex(FlexScBcd).ColKey(1) = "SELECTFLG|SCBCDNO"
   Flex(FlexScBcd).ColKey(2) = "SCDNO"
   Flex(FlexScBcd).ColKey(3) = "SCDDOCNO"
   Flex(FlexScBcd).ColKey(4) = "SCDDAT"
   Flex(FlexScBcd).ColKey(5) = "HWBMCODE"
   Flex(FlexScBcd).ColKey(6) = "HWBMMC"
   Flex(FlexScBcd).ColKey(7) = "HWDWCODE"
   Flex(FlexScBcd).ColKey(8) = "SCBCD_HWDWCONV"
   Flex(FlexScBcd).ColKey(9) = "HWCKMC"
   Flex(FlexScBcd).ColKey(10) = "SCDQTY"
   Flex(FlexScBcd).ColKey(11) = "SCDWQTY"
   Flex(FlexScBcd).ColKey(12) = "SCBCDQTY"
   Flex(FlexScBcd).ColKey(13) = "SCBCDPRICE"
   Flex(FlexScBcd).ColKey(14) = "SCBCDAMT"
   Flex(FlexScBcd).ColKey(15) = "SCBCDBZ"
      
   gPublicFunction.LoadFormSet Me, , , SBar(SbarScBcd)
   
   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(FlexScBcd).Rows = 1
   
   mSqlStr = "SELECT SCDDOCNO,SCDDAT,ScdNO,Scd_HWBMCODE=COALESCE((SELECT HWBMCODE FROM HWBMREC WHERE HWBMNO=Scd_HWBMNO),''),Scd_HWBMMC=COALESCE((SELECT HWBMMC FROM HWBMREC WHERE HWBMNO=Scd_HWBMNO),''),"
   mSqlStr = mSqlStr & "Scd_HWDWCODE=COALESCE((SELECT HWDWCODE FROM HWDWREC WHERE HWDWNO=Scd_HWDWNO),''),Scd_HWDWCONV,ScdQTY,ScdWQty,ScdBZ"
   mSqlStr = mSqlStr & " FROM SCDREC WHERE SCD_PSBMNO=" & CStr(oScBcdh.ScBcdh_PsBmno) & " AND ScdQTY-ScdWQty>0"
   mSqlStr = mSqlStr & " ORDER BY SCDDOCNO"
   
   Set mRs = New DbRs
   mRs.FillbyDb mSqlStr
   mRs.MoveFirst
   
   Do While Not mRs.EOF
      Itemstr = vbTab & "" & vbTab & mRs("ScdNO") & vbTab & mRs("SCDDOCNO") & vbTab & mRs("SCDDAT")
      Itemstr = Itemstr & vbTab & mRs("Scd_HWBMCODE") & vbTab & mRs("Scd_HWBMMC") & vbTab & mRs("Scd_HWDWCODE") & vbTab & mRs("Scd_HWDWCONV")
      Itemstr = Itemstr & vbTab & "" & vbTab & mRs("ScdQTY") & vbTab & mRs("ScdWQty") & vbTab & mRs("ScdQTY") - mRs("ScdWQty") & vbTab & "" & vbTab & "" & vbTab & mRs("ScdBZ")
      Flex(FlexScBcd).AddItem Itemstr
      mRs.MoveNext
   Loop
   
   gPublicFunction.SumFlexQtyAmt Flex(FlexScBcd), "SCDQTY,SCDWQTY,SCBCDQTY,SCBCDAMT", Text(TxtTotal_ScdQty), Text(TxtTotal_ScdWQty), Text(TxtTotal_ScBcdQty), Text(TxtTotal_ScBcdAmt), Flex(FlexScBcd).ColIndex("SELECTFLG|ScBcdNO")
   
   Set mRs = Nothing

Exit Sub
ErrorHandle:
   Set mRs = Nothing
   Err.Raise vbObjectError + 1, , Err.Description
End Sub

Private Sub SaveRecord()
   Dim mScBcd As ScBcd
   Dim I As Integer
On Error GoTo ErrorHandle
   
   For I = 1 To Flex(FlexScBcd).Rows - 1
      If Trim(Flex(FlexScBcd).TextMatrix(I, Flex(FlexScBcd).ColIndex("SELECTFLG|SCBCDNO"))) <> "" Then
         Set mScBcd = New ScBcd
         Set mScBcd.ScBcdh = oScBcdh
         oScBcdh.ScBcds.Add mScBcd, 0
         mScBcd.ScBcd_Scdno = Val(Flex(FlexScBcd).TextMatrix(I, Flex(FlexScBcd).ColIndex("SCDNO")))
         mScBcd.ScBcd_HwDwCode = Trim(Flex(FlexScBcd).TextMatrix(I, Flex(FlexScBcd).ColIndex("HWDWCODE")))
         mScBcd.ScBcd_HwDwConv = Val(Flex(FlexScBcd).TextMatrix(I, Flex(FlexScBcd).ColIndex("SCBCD_HWDWCONV")))
         mScBcd.ScBcd_HwCkMc = Trim(Flex(FlexScBcd).TextMatrix(I, Flex(FlexScBcd).ColIndex("HWCKMC")))
         mScBcd.ScBcdQty = Val(Flex(FlexScBcd).TextMatrix(I, Flex(FlexScBcd).ColIndex("SCBCDQTY")))
         mScBcd.ScBcdPrice = Val(Flex(FlexScBcd).TextMatrix(I, Flex(FlexScBcd).ColIndex("SCBCDPRICE")))
         mScBcd.ScBcdAmt = Val(Flex(FlexScBcd).TextMatrix(I, Flex(FlexScBcd).ColIndex("SCBCDAMT")))
         mScBcd.ScBcdBz = Trim(Flex(FlexScBcd).TextMatrix(I, Flex(FlexScBcd).ColIndex("SCBCDBZ")))
      End If
   Next
   
   oScBcdh.Save
   
   MsgBox "存盘成功!"
   
   Unload Me
   
Exit Sub
ErrorHandle:
   For Each mScBcd In oScBcdh.ScBcds
      If mScBcd.ScBcdId = -1 Then
         oScBcdh.ScBcds.Remove mScBcd.ScBcdKey, 0
      End If
   Next
   Err.Raise vbObjectError + 1, , Err.Description
End Sub

Private Sub Form_Unload(Cancel As Integer)
On Error GoTo ErrorHandle

   Set oScBcdh = 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(FlexScBcd).Row
   mCurCol = Flex(FlexScBcd).Col
   
   Select Case Flex(FlexScBcd).ColKey(Flex(FlexScBcd).Col)
   Case "SCBCDQTY"
         Flex(FlexScBcd).TextMatrix(mCurRow, Flex(FlexScBcd).ColIndex("SCBCDAMT")) = Round(Val(Flex(FlexScBcd).TextMatrix(mCurRow, Flex(FlexScBcd).ColIndex("SCBCDPRICE"))) * Val(Flex(FlexScBcd).EditText), 2)
         
   Case "SCBCDPRICE"
         Flex(FlexScBcd).TextMatrix(mCurRow, Flex(FlexScBcd).ColIndex("SCBCDAMT")) = Round(Val(Flex(FlexScBcd).TextMatrix(mCurRow, Flex(FlexScBcd).ColIndex("SCBCDQTY"))) * Val(Flex(FlexScBcd).EditText), 2)
   
   End Select
   
   If UCase(Flex(FlexScBcd).ColKey(Flex(FlexScBcd).Col)) = "SCBCDQTY" Or UCase(Flex(FlexScBcd).ColKey(Flex(FlexScBcd).Col)) = "SCBCDPRICE" Or UCase(Flex(FlexScBcd).ColKey(Flex(FlexScBcd).Col)) = "SCBCDAMT" Then
      gPublicFunction.SumFlexQtyAmt Flex(FlexScBcd), "SCDQTY,SCDWQTY,SCBCDQTY,SCBCDAMT", Text(TxtTotal_ScdQty), Text(TxtTotal_ScdWQty), Text(TxtTotal_ScBcdQty), Text(TxtTotal_ScBcdAmt), Flex(FlexScBcd).ColIndex("SELECTFLG|ScBcdNO")
   End If

Exit Sub
ErrorHandle:
   Flex(FlexScBcd).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 + -