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

📄

📁 VB开发的ERP系统
💻
📖 第 1 页 / 共 5 页
字号:
                Ydcommand.Visible = True
            Else
                Ydcommand.Visible = False
            End If
            Ydtext.Left = .CellLeft + .Left + Wbkpy
            Ydtext.Top = .CellTop + .Top + Wbkpy
            If Ydcommand.Visible Then
                If Sfblbzkd Then
                    Ydtext.Width = .CellWidth - Ydcommand.Width
                Else
                    Ydtext.Width = .CellWidth - Wbkpy1
                End If
            Else
                Ydtext.Width = .CellWidth - Wbkpy1
            End If
            Ydtext.Height = .CellHeight - Wbkpy1
            If GridInt(.Col, 2) <> 0 Then
                Ydtext.MaxLength = GridInt(.Col, 2)
            Else
                Ydtext.MaxLength = 3000
            End If
            ' 主要是Zdlrqnr = Trim(.Text)即将网格单元的内容赋予文本框,并且记录网格编辑之前的内容
            '为是否对该单元的内容进行字段有效判断加锁Yxxpdlock = False
            Call Wbkcl
            Ydtext.Visible = True
            Ydtext.SetFocus
        End If
        Dqtoprow = .TopRow
        Dqleftcol = .LeftCol
        
        '重置锁值
        Valilock = False
        Wbkbhlock = False
    End With
End Sub

Private Sub Lrsjhx()                                                   '文本框录入数据回写
    With WglrGrid
        If YdCombo.Visible Then .Text = Trim(YdCombo.Text)
        If Ydtext.Visible Then .Text = Trim(Ydtext.Text)
        
        '(如果字段录入内容发生变化,则打开有效性判断锁)
        If Zdlrqnr <> Trim(.Text) Then
            Yxxpdlock = False
            Hyxxpdlock = False
        End If
        '如果字段录入内容不为空则写数据行有效性标志
        If Len(Trim(.Text)) <> 0 Then
            Call Xyxhbz(.Row)
        End If
        '隐藏文本框,帮助按钮,列表组合框
        Call Ycwbk
    End With
End Sub

Private Sub Wbkcl()                                                 '文本框录入之前处理(根据实际情况)
    Dim xswbrr As String
    With WglrGrid
        Zdlrqnr = Trim(.Text)
        xswbrr = Trim(.Text)
        If GridBoolean(.Col, 3) Then   '列表框录入
            
            '填充列表框程序
            Call FillCombo(YdCombo, GridStr(.Col, 5), xswbrr, 0)
        Else
            Wbkbhlock = True
            
            '====以下为用户自定义
            Ydtext.Text = xswbrr
            '====以上为用户自定义
            
            Wbkbhlock = False
            Ydtext.SelStart = Len(Ydtext.Text)
        End If
    End With
End Sub

Private Function sjzdyxxpd(Dqpdwgh As Long, Dqpdwgl As Long)        '录入数据字段有效性判断,同时进行字段录入事后处理
    Dim Str_JudgeText As String  '临时有效性判断字段内容
    Dim Coljsq As Long           '临时列计数器
    
    With WglrGrid
        '非录入状态有效性为合法
        If Yxxpdlock Or .Row < .FixedRows Then
            sjzdyxxpd = True
            Exit Function
        End If
        Str_JudgeText = Trim(.TextMatrix(Dqpdwgh, Dqpdwgl))
    End With
    Select Case GridStr(Dqpdwgl, 1)
        '以下为自定义部分[
    Case "005"     '转帐性质
        If Len(Str_JudgeText) <> 0 Then
            If Str_JudgeText <> "转入" And Str_JudgeText <> "转出" Then
                Tsxx = "转帐方向必须选择“转入”或“转出”"
                GoTo Lrcwcl
            End If
        End If
    Case "001"          '凭证摘要(如用户录入编码正确,则自动调入摘要内容)
        If Len(Str_JudgeText) <> 0 Then
            Sqlstr = "SELECT * FROM Cwzz_Digest Where DigestCode='" & Str_JudgeText & "'"
            Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
            If Not RecTemp.EOF Then
                WglrGrid.TextMatrix(Dqpdwgh, Sydz("001", GridStr(), Szzls)) = Trim(RecTemp.Fields("DigestText"))
            End If
            '保存最后录入的一条凭证分录的摘要内容
            Str_Digest = WglrGrid.TextMatrix(Dqpdwgh, Sydz("001", GridStr(), Szzls))
        End If
    Case "002"
        If Len(Str_JudgeText) <> 0 Then
            Sqlstr = "Select Cwzz_AccCode.* ,ItemClassName FROM  Cwzz_AccCode " & _
            " LEFT OUTER JOIN Cwzz_ItemClass ON Cwzz_AccCode.ItemClassCode = Cwzz_ItemClass.ItemClassCode " & _
            " Where Ccode='" & Str_JudgeText & "' OR AssCode='" & Str_JudgeText & "'"
            '可以建外键,为何?
            Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
            With RecTemp
                If .EOF Then
                    Tsxx = "此科目不存在!"
                    GoTo Lrcwcl
                Else
                    If Not .Fields("EndFlag") Then
                        Tsxx = "此科目非末级科目!"
                        GoTo Lrcwcl
                    End If
                    If .Fields("StopFlag") Then
                        Tsxx = "此科目已停用"
                        GoTo Lrcwcl
                    End If
                    '如果此科目存在且改变过则执行下列操作
                    '1.显示科目编码,改变科目名称
                    WglrGrid.TextMatrix(Dqpdwgh, Sydz("002", GridStr(), Szzls)) = Trim(RecTemp.Fields("Ccode"))
                    WglrGrid.TextMatrix(Dqpdwgh, Sydz("003", GridStr(), Szzls)) = Trim(RecTemp.Fields("Cname"))
                    '                        WglrGrid.TextMatrix(Dqpdwgh, 9) = Trim(rectemp.Fields("ItemClassCode") & "")
                    '                        WglrGrid.TextMatrix(Dqpdwgh, 10) = Trim(rectemp.Fields("ItemClassName") & "")
                    Call Sub_Drfzhsx(Dqpdwgh, Str_JudgeText)
                End If
            End With
        Else
            For Jsqte = 1 To 12
                WglrGrid.TextMatrix(Dqpdwgh, Jsqte) = ""
            Next Jsqte
            WglrGrid.TextMatrix(Dqpdwgh, Sydz("003", GridStr(), Szzls)) = ""
        End If
    End Select
    '字段录入正确后为零字段清空
    Call Qkwlzd(Dqpdwgh, Dqpdwgl)
    sjzdyxxpd = True
    Yxxpdlock = True
    Exit Function
Lrcwcl:    '录入错误处理
    With WglrGrid
        Call Xtxxts(Tsxx, 0, 1)
        changelock = True
        .Select Dqpdwgh, Dqpdwgl
        If GridBoolean(.Col, 1) = True Then
            changelock = False
            Call xswbk
            sjzdyxxpd = False
        Else
            If Help_Bz_Col(.Col) = True And Lab_OperStatus.Caption = 3 Then
                Call Yd_Help_Show
            End If
        End If
    End With
    Exit Function
End Function

Private Function Sjhzyxxpd(ByVal Yxxpdh As Long) As Boolean                  '录入数据行有效性判断,同时进行行处理
    Dim Lrywlz As Long
    Dim RecTemp As New ADODB.Recordset     '临时使用动态集
    Dim Bln_AssVali As Boolean             '辅助核算错误
    Dim Bj As Boolean                       '辅助项有效性标志
    With WglrGrid
        
        '判断行是否为空和无效数据行清除
        If Yxxpdh > (.Rows - .FixedRows) Then Exit Function
        If .TextMatrix(Yxxpdh, 0) <> "*" Then
            Sjhzyxxpd = True
            Exit Function
        Else
            If pdhwk(Yxxpdh) And Yxxpdh + 1 <= .Rows - 1 Then
                If .TextMatrix(Yxxpdh + 1, 0) <> "*" Then
                    changelock = True
                    .RemoveItem Yxxpdh
                    If .Rows < Pmbcsjhs + .FixedRows + Fzxwghs + 1 Then
                        .AddItem ""
                        .RowHeight(.Rows - 1) = Sjhgd
                    End If
                    changelock = False
                    Sjhzyxxpd = True
                    Exit Function
                End If
            End If
        End If
        
        '行没有发生变化则不进行有效性判断
        If Hyxxpdlock Then
            Sjhzyxxpd = True
            Exit Function
        End If
        
        '以下为自定义部分[
        '1.放置行有效性判断程序
        
        '首先进行为空判断(固定不变)
        For Jsqte = Qslz To .Cols - 1
            If (GridInt(Jsqte, 5) = 1 And Len(Trim(.TextMatrix(Yxxpdh, Jsqte))) = 0) Or (GridInt(Jsqte, 5) = 2 And Val(Trim(.TextMatrix(Yxxpdh, Jsqte))) = 0) Then
                Tsxx = GridStr(Jsqte, 2)
                Lrywlz = Jsqte
                GoTo Lrcwcl
                Exit For
            End If
        Next Jsqte
        
        '判断辅助核算项目是否已填写,且有效
        If Trim(WglrGrid.TextMatrix(Yxxpdh, Sydz("002", GridStr(), Szzls))) <> "" Then
            Sqlstr = "Select * FROM Cwzz_AccCode Where Ccode='" & Trim(.TextMatrix(Yxxpdh, Sydz("002", GridStr(), Szzls))) & "'"
            Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
            Lrywlz = Sydz("002", GridStr(), Szzls)
            If Not RecTemp.EOF Then
                '部门核算则部门不能为空,且有效
                If RecTemp.Fields("DeptFlag") Then
                    If Len(Trim(WglrGrid.TextMatrix(Yxxpdh, 3))) = 0 Then
                        Tsxx = "该转帐科目需要部门核算,部门项不能为空"
                        Bln_AssVali = True
                        GoTo Lrcwcl
                    End If
                Else
                    .TextMatrix(Yxxpdh, 3) = ""
                    .TextMatrix(Yxxpdh, 4) = ""
                End If
                '客户单位核算则往来单位不能为空,且有效
                
                If RecTemp.Fields("CusFlag") Then
                    If Len(Trim(WglrGrid.TextMatrix(Yxxpdh, 5))) = 0 Then
                        Tsxx = "该转帐科目需要客户单位核算,客户单位项不能为空"
                        Bln_AssVali = True
                        GoTo Lrcwcl
                    End If
                Else
                    .TextMatrix(Yxxpdh, 5) = ""
                    .TextMatrix(Yxxpdh, 6) = ""
                End If
                '供应商单位核算则供应商单位不能为空
                If RecTemp.Fields("SupplierFlag") Then
                    If Len(Trim(WglrGrid.TextMatrix(Yxxpdh, 7))) = 0 Then
                        Tsxx = "该转帐科目需要供应商单位核算,供应商单位项不能为空"
                        Bln_AssVali = True
                        GoTo Lrcwcl
                    End If
                Else
                    .TextMatrix(Yxxpdh, 7) = ""
                    .TextMatrix(Yxxpdh, 8) = ""
                    
                End If
                
                '个人往来核算则个人项不能为空
                If RecTemp.Fields("PersonFlag") Then
                    If Len(Trim(WglrGrid.TextMatrix(Yxxpdh, 1))) = 0 Then
                        Tsxx = "该转帐科目需要个人往来核算,个人项不能为空"
                        Bln_AssVali = True
                        GoTo Lrcwcl
                    End If
                Else
                    .TextMatrix(Yxxpdh, 1) = ""
                    .TextMatrix(Yxxpdh, 2) = ""
                End If
                
                '项目核算则项目不能为空
                If RecTemp.Fields("ItemFlag") Then
                    If Len(Trim(WglrGrid.TextMatrix(Yxxpdh, 11))) = 0 Then
                        Tsxx = "该转帐科目需要项目核算,核算项目不能为空"
                        Bln_AssVali = True
                        GoTo Lrcwcl
                    End If
                Else
                    .TextMatrix(Yxxpdh, 11) = ""
                    .TextMatrix(Yxxpdh, 12) = ""
                    
                End If
            End If
        End If
        '2.放置行处理程序
        
        '以上为自定义部分]
    End With
    Sjhzyxxpd = True
    Hyxxpdlock = True
    Exit Function
Lrcwcl:      '录入错误处理
    With WglrGrid
        Call Xtxxts(Tsxx, 0, 1)
        
        changelock = True
        .Select Yxxpdh, Lrywlz
        changelock = False
        
        '[>>如果辅助核算出现错误则调用辅助核算功能
        If Bln_AssVali Then
            Call Sub_Drfzhsx(Yxxpdh, Trim(.TextMatrix(Yxxpdh, Sydz("002", GridStr(), Szzls))))
            '解决鼠标点击取消造成的换行
            changelock = True
            .Select Yxxpdh, Lrywlz
            changelock = False
            '<<]
        Else
            Call xswbk
        End If

⌨️ 快捷键说明

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