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

📄 +

📁 VB开发的ERP系统
💻
📖 第 1 页 / 共 4 页
字号:
    Szzls = CxbbGrid.Cols - 1
    
    '调 入 网 格 2
    GridCode1 = "Xs_M_ReturnMoneyHX"
    Call BzWgcsh(CxbbGrid1, GridCode1, GridInf1(), GridBoolean1(), GridInt1(), GridStr1())
    
    Qslz1 = GridInf1(1)
    Sjhgd1 = GridInf1(2)
    Szzls1 = CxbbGrid1.Cols - 1
    
    '对网格进行特殊设置
    CxbbGrid.Editable = True
    CxbbGrid1.Editable = True
    
    Timer1.Enabled = True
    
    With Xs_M_ReturnMoneyList.CxbbGrid
        Custom.Tag = Trim(.TextMatrix(.Row, 1))                                 '客户编码
        Custom.Text = Trim(.TextMatrix(.Row, Sydz("005", GridStr(), Szzls)))    '部门名称
    End With
    
End Sub

Private Sub Form_Unload(Cancel As Integer)                                '窗体卸载
   '卸载条件窗体
    Unload Me
End Sub
Private Sub SzToolbar_ButtonClick(ByVal Button As MSComctlLib.Button)
    Select Case Button.Key
        Case "qbxz"                                          '全 选
            Call Sub_SelectAll
        Case "qbqx"                                          '全 消
            Call Sub_AbandonAll
        Case "hx"                                            '手工核销
            Call Sub_SaveData
        Case "sx"                                            '刷 新
            Call Timer1_Timer
        Case "bz"                                            '帮 助
            Call F1bz
        Case "fh"                                            '退 出
            Unload Me
   End Select
End Sub
Private Sub Timer1_Timer()
    Timer1.Enabled = False
    Xt_Wait.Show
    Xt_Wait.Refresh
   
    '加快显示速度
    CxbbGrid.Redraw = False
    
    Call Sub_Query1      '发货单
    Call Sub_Query2      '回款
    
    CxbbGrid.Redraw = True
        
    Xt_Wait.Hide
End Sub
Private Sub Sub_Query1()                                        '生成查询结果(发货单)
    Dim Rec_Query As New ADODB.Recordset        '查询结果动态集
    Dim Sqlstr As String                        '查询字符串
    Dim Coljsq As Long                          '网格列计数器
    Dim Jsqte As Integer                        '临时动态计数器
    
    '以下为自定义部分[
    Str_QueryCondi = " where (billtype=1 or consignflag=1 and (kdflag=0 or receiveflag=1)) and checker <>'' and settleallflag=0 and Cuscode='" & Xs_M_ReturnMoneyList.CustomCode & "'"
    
    '生成应收款查询结果
    Sqlstr = "SELECT * From xs_v_consignbill " & Str_QueryCondi & " ORDER BY makedate,consignbillmainid,consignbillsubid"
    Set Rec_Query = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
    With Rec_Query
        CxbbGrid.Rows = CxbbGrid.FixedRows
        CxbbGrid.Rows = CxbbGrid.FixedRows + .RecordCount + 1
        Jsqte = CxbbGrid.FixedRows
        Do While Not .EOF
            If Jsqte >= CxbbGrid.Rows Then
                CxbbGrid.AddItem ""
            End If
            CxbbGrid.TextMatrix(Jsqte, 0) = Trim(.Fields("consignbillmainid"))          '发货单或退货单ID
            CxbbGrid.TextMatrix(Jsqte, Sydz("001", GridStr(), Szzls)) = Jsqte - CxbbGrid.FixedRows + 1              '行值
            CxbbGrid.TextMatrix(Jsqte, Sydz("002", GridStr(), Szzls)) = False                                       '选中
            CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) = Format(.Fields("MakeDate"), "yyyy-mm-dd")   '单据日期
            CxbbGrid.TextMatrix(Jsqte, Sydz("004", GridStr(), Szzls)) = Trim(.Fields("consigncode") & "")           '单据号
            CxbbGrid.TextMatrix(Jsqte, Sydz("005", GridStr(), Szzls)) = Trim(.Fields("whname") & "")                '货物名称
            CxbbGrid.TextMatrix(Jsqte, 1) = Trim(.Fields("warecode") & "")                                          '货物编码
            CxbbGrid.TextMatrix(Jsqte, Sydz("006", GridStr(), Szzls)) = Val(.Fields("capitalwhole") & "")           '金额
            CxbbGrid.TextMatrix(Jsqte, Sydz("007", GridStr(), Szzls)) = Val(.Fields("capitalwhole") & "") - Val(.Fields("capreturnmoney") & "")     '未核销金额
            CxbbGrid.TextMatrix(Jsqte, Sydz("008", GridStr(), Szzls)) = ""                                          '本次核销金额
            CxbbGrid.TextMatrix(Jsqte, Sydz("009", GridStr(), Szzls)) = False                                       '是否销尽
            CxbbGrid.RowHeight(Jsqte) = Sjhgd
            Jsqte = Jsqte + 1
            .MoveNext
        Loop
        CxbbGrid.RowHeight(Jsqte) = Sjhgd
        CxbbGrid.TextMatrix(Jsqte, Sydz("001", GridStr(), Szzls)) = "合计"
    End With
    ']以上为用户自定义部分
End Sub

Private Sub Sub_Query2()                                        '生成查询结果(回款)
    Dim Rec_Query As New ADODB.Recordset        '查询结果动态集
    Dim Sqlstr As String                        '查询字符串
    Dim Coljsq As Long                          '网格列计数器
    Dim Jsqte As Integer                        '临时动态计数器
   
    '以下为自定义部分[
    Str_QueryCondi = " where checker <>'' and capitalremainmoney<>0 and Cuscode='" & Xs_M_ReturnMoneyList.CustomCode & "'"
    
    '生成应收款查询结果
    Sqlstr = "SELECT * From Xs_V_ReturnMoney " & Str_QueryCondi & " ORDER BY makerdate,ReturnMoneyId"
    Set Rec_Query = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
    With Rec_Query
        CxbbGrid1.Rows = CxbbGrid1.FixedRows
        CxbbGrid1.Rows = CxbbGrid1.FixedRows + .RecordCount + 1
        Jsqte = CxbbGrid1.FixedRows
        Do While Not .EOF
            If Jsqte >= CxbbGrid1.Rows Then
                CxbbGrid1.AddItem ""
            End If
            CxbbGrid1.TextMatrix(Jsqte, 0) = Trim(.Fields("ReturnMoneyId"))          '发货单或退货单ID
            CxbbGrid1.TextMatrix(Jsqte, Sydz("001", GridStr(), Szzls)) = Jsqte - CxbbGrid1.FixedRows + 1                '行值
            CxbbGrid1.TextMatrix(Jsqte, Sydz("002", GridStr(), Szzls)) = False                                          '选中
            CxbbGrid1.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) = Format(.Fields("MakerDate"), "yyyy-mm-dd")     '单据日期
            CxbbGrid1.TextMatrix(Jsqte, Sydz("004", GridStr(), Szzls)) = Trim(.Fields("ReturnMoneyCode") & "")          '单据号
            CxbbGrid1.TextMatrix(Jsqte, Sydz("005", GridStr(), Szzls)) = Val(.Fields("CapitalReturnMoney") & "")        '金额
            CxbbGrid1.TextMatrix(Jsqte, Sydz("006", GridStr(), Szzls)) = Val(.Fields("CapitalRemainMoney") & "")        '未核销金额
            CxbbGrid1.TextMatrix(Jsqte, Sydz("007", GridStr(), Szzls)) = ""                                             '本次核销金额
            CxbbGrid1.RowHeight(Jsqte) = Sjhgd
            Jsqte = Jsqte + 1
            .MoveNext
        Loop
        CxbbGrid1.RowHeight(Jsqte) = Sjhgd
        CxbbGrid1.TextMatrix(Jsqte, Sydz("001", GridStr(), Szzls)) = "合计"
    End With
    ']以上为用户自定义部分
    
End Sub

'输入本次核销金额(网格1)
Private Sub CxbbGrid_BeforeEdit(ByVal Row As Long, ByVal Col As Long, Cancel As Boolean)
    With CxbbGrid
        If Not GridBoolean(.Col, 1) Or .Row < .FixedRows Or .Row = .Rows - 1 Then
            Cancel = True
        End If
        If GridInt(.Col, 2) <> 0 Then
            CxbbGrid.EditMaxLength = GridInt(.Col, 2)
        Else
            CxbbGrid.EditMaxLength = 3000
        End If
    End With
End Sub

Private Sub CxbbGrid_KeyPressEdit(ByVal Row As Long, ByVal Col As Long, KeyAscii As Integer)
    With CxbbGrid
        If Col = Sydz("008", GridStr(), Szzls) And CxbbGrid.Cell(flexcpBackColor, Row, Col) <> Ydtext.BackColor Then
            .TextMatrix(.Rows - 1, Col) = Val(.TextMatrix(.Rows - 1, Col)) - Val(.TextMatrix(.Row, Col))
            .CellBackColor = Ydtext.BackColor
            .EditText = ""
        End If
    End With
    Call Sub_Lrxszxz(CxbbGrid, KeyAscii)
End Sub

Private Sub CxbbGrid_ChangeEdit()
    With CxbbGrid
        Select Case GridInt(.Col, 1)
            Case 8
                Call Sub_Sjgskz(CxbbGrid, Xtjezws - Xtjexsws - 1, Xtjexsws)
            Case 9
                Call Sub_Sjgskz(CxbbGrid, Xtslzws - Xtslxsws - 1, Xtslxsws)
            Case 10
                Call Sub_Sjgskz(CxbbGrid, Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
            Case Else
                If GridInt(.Col, 3) <> 0 Or GridInt(.Col, 4) <> 0 Then
                    Call Sub_Sjgskz(CxbbGrid, GridInt(.Col, 3), GridInt(.Col, 4))
                End If
        End Select
    End With
End Sub

Private Sub CxbbGrid_AfterEdit(ByVal Row As Long, ByVal Col As Long)                                  '事后判断用户录入有效性
    With CxbbGrid
        Select Case Col
            Case Sydz("008", GridStr(), Szzls)
                .CellBackColor = &H0
                If Not Trim(.EditText) = "" Then
                    If Not IsNumeric(Trim(.TextMatrix(Row, Col))) Then
                        Tsxx = "数据格式有误!"
                        Call Xtxxts(Tsxx, 0, 4)
                        .TextMatrix(Row, Col) = ""
                        Exit Sub
                    End If
                End If
                If Val(.TextMatrix(Row, Sydz("007", GridStr(), Szzls))) < 0 Then
                    .TextMatrix(Row, Col) = -Abs(Val(.TextMatrix(Row, Col)))
                Else
                    .TextMatrix(Row, Col) = Abs(Val(.TextMatrix(Row, Col)))
                End If
                .TextMatrix(Row, Sydz("002", GridStr(), Szzls)) = True
                If Abs(.TextMatrix(Row, Col)) >= Abs(.TextMatrix(Row, Sydz("007", GridStr(), Szzls))) Then
                    .TextMatrix(Row, Col) = Val(.TextMatrix(Row, Sydz("007", GridStr(), Szzls)))
                    .TextMatrix(Row, Sydz("009", GridStr(), Szzls)) = True
                Else
                    .TextMatrix(Row, Sydz("009", GridStr(), Szzls)) = False
                End If
                If Val(.TextMatrix(Row, Col)) = 0 Then
                    .TextMatrix(Row, Sydz("002", GridStr(), Szzls)) = False
                    .TextMatrix(Row, Sydz("009", GridStr(), Szzls)) = False
                    .TextMatrix(Row, Sydz("008", GridStr(), Szzls)) = ""
                End If
                .TextMatrix(.Rows - 1, Col) = Val(.TextMatrix(.Rows - 1, Col)) + Val(.TextMatrix(Row, Col))
            Case Sydz("002", GridStr(), Szzls)
                If Val(.TextMatrix(Row, Sydz("008", GridStr(), Szzls))) = 0 Then
                    .TextMatrix(Row, Sydz("002", GridStr(), Szzls)) = False
                Else
                    .TextMatrix(Row, Sydz("002", GridStr(), Szzls)) = True
                End If
                .TextMatrix(.Rows - 1, Sydz("002", GridStr(), Szzls)) = False
            Case Sydz("009", GridStr(), Szzls)
                .TextMatrix(.Rows - 1, Sydz("009", GridStr(), Szzls)) = False
        End Select
    End With
End Sub

'输入本次核销金额(网格2)
Private Sub CxbbGrid1_BeforeEdit(ByVal Row As Long, ByVal Col As Long, Cancel As Boolean)
    With CxbbGrid1
        If Not GridBoolean1(.Col, 1) Or .Row < .FixedRows Or .Row = .Rows - 1 Then
            Cancel = True
        End If
        If GridInt1(.Col, 2) <> 0 Then
            CxbbGrid1.EditMaxLength = GridInt1(.Col, 2)
        Else
            CxbbGrid1.EditMaxLength = 3000
        End If
    End With
End Sub

Private Sub CxbbGrid1_KeyPressEdit(ByVal Row As Long, ByVal Col As Long, KeyAscii As Integer)
    With CxbbGrid1
        If Col = Sydz("007", GridStr(), Szzls) And .Cell(flexcpBackColor, Row, Col) <> Ydtext.BackColor Then
            .TextMatrix(.Rows - 1, Col) = Val(.TextMatrix(.Rows - 1, Col)) - Val(.TextMatrix(.Row, Col))
            .CellBackColor = Ydtext.BackColor
            .EditText = ""
        End If
    End With
    Call Sub_Lrxszxz(CxbbGrid1, KeyAscii)
End Sub

Private Sub CxbbGrid1_ChangeEdit()
    With CxbbGrid1
        Select Case GridInt1(.Col, 1)
            Case 8
                Call Sub_Sjgskz(CxbbGrid1, Xtjezws - Xtjexsws - 1, Xtjexsws)
            Case 9
                Call Sub_Sjgskz(CxbbGrid1, Xtslzws - Xtslxsws - 1, Xtslxsws)
            Case 10
                Call Sub_Sjgskz(CxbbGrid1, Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
            Case Else
                If GridInt1(.Col, 3) <> 0 Or GridInt1(.Col, 4) <> 0 Then
                    Call Sub_Sjgskz(CxbbGrid1, GridInt1(.Col, 3), GridInt1(.Col, 4))
                End If
        End Select
    End With
End Sub

Private Sub CxbbGrid1_AfterEdit(ByVal Row As Long, ByVal Col As Long)                                  '事后判断用户录入有效性
    With CxbbGrid1
        Select Case Col
            Case Sydz("007", GridStr(), Szzls)
                .CellBackColor = &H0
                If Not Trim(.EditText) = "" Then
                    If Not IsNumeric(Trim(.TextMatrix(Row, Col))) Then
                        Tsxx = "数据格式有误!"
                        Call Xtxxts(Tsxx, 0, 4)
                        .TextMatrix(Row, Col) = ""
                        Exit Sub
                    End If
                End If
                If Val(.TextMatrix(Row, Sydz("006", GridStr(), Szzls))) < 0 Then
                    .TextMatrix(Row, Col) = -Abs(Val(.TextMatrix(Row, Col)))
                Else
                    .TextMatrix(Row, Col) = Abs(Val(.TextMatrix(Row, Col)))
                End If
                .TextMatrix(Row, Sydz("002", GridStr(), Szzls)) = True
                If Abs(.TextMatrix(Row, Col)) >= Abs(.TextMatrix(Row, Sydz("006", GridStr(), Szzls))) Then
                    .TextMatrix(Row, Col) = Val(.TextMatrix(Row, Sydz("006", GridStr(), Szzls)))
                End If
                If Val(.TextMatrix(Row, Col)) = 0 Then
                    .TextMatrix(Row, Sydz("002", GridStr(), Szzls)) = False
                    .TextMatrix(Row, Sydz("007", GridStr(), Szzls)) = ""
                End If
                .TextMatrix(.Rows - 1, Col) = Val(.TextMatrix(.Rows - 1, Col)) + Val(.TextMatrix(Row, Col))
            Case Sydz("002", GridStr(), Szzls)
                If Val(.TextMatrix(Row, Sydz("007", GridStr(), Szzls))) = 0 Then
                    .TextMatrix(Row, Sydz("002", GridStr(), Szzls)) = False
                Else
                    .TextMatrix(Row, Sydz("002", GridStr(), Szzls)) = True
                End If
                .TextMatrix(.Rows - 1, Sydz("002", GridStr(), Szzls)) = False
        End Select
    End With
End Sub

'公用数值控制函数
Private Sub Sub_Lrxszxz(WglrGrid As VSFlexGrid, lrzfasc As Integer)                               '网格录入带有小数位及正负号数值字段
    If Not ((Chr(lrzfasc) >= "0" And Chr(lrzfasc) <= "9") Or (Chr(lrzfasc) = "." And InStr(1, WglrGrid.EditText, ".") = 0) Or lrzfasc = vbKeyBack Or (Chr(lrzfasc) = "-" And WglrGrid.EditSelStart = 0)) Then
        lrzfasc = 0
    End If
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -