📄 frmscbcdgen.frm
字号:
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 + -