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

📄

📁 VB开发的ERP系统
💻
📖 第 1 页 / 共 5 页
字号:
            .Buttons("zh").Enabled = True       '增行
            .Buttons("sh").Enabled = True       '删行
            .Buttons("bc").Enabled = True       '保存
            .Buttons("fq").Enabled = True       '放弃
        End Select
    End With
End Sub

Private Sub xswbk()                       '在当前选中单元显示文本框,列表框,帮助按钮(通用)
    Dim Wbkpy As Integer, Wbkpy1 As Integer '文本框偏移量
    
    '如果单据操作状态为浏览状态则不能显示录入载体
    If Trim(Lab_OperStatus.Caption) = "1" Then Exit Sub
    
    '显示文本框前返回有效行列(解决滚动条问题)
    Call Xldqh
    Call Xldql
    
    '隐藏文本框,帮助按钮,列表组合框
    Call Ycwbk
    
    With WglrGrid
        Dqlrwgh = .Row
        Dqlrwgl = .col
        If Not GridBoolean(.col, 1) Or .Row < .FixedRows Then Exit Sub
        Wbkpy = 30
        Wbkpy1 = 15
        If GridBoolean(.col, 3) Then        '若是下拉列表录入
            YdCombo.Left = .CellLeft + .Left + Wbkpy
            YdCombo.Top = .CellTop + .Top + Wbkpy
            YdCombo.Width = .CellWidth - Wbkpy1
            Call Wbkcl                          '主要是在下拉列表框可用之前填充下拉列表框
            YdCombo.Visible = True
            YdCombo.SetFocus
            Ydcommand.Visible = False
            Ydtext.Visible = False
            Yd_Help.Visible = False
        Else
            If GridBoolean(.col, 2) Then        '是否提供帮助
                Ydcommand.Left = .Left + .CellLeft + .CellWidth - Ydcommand.Width + Wbkpy
                Ydcommand.Top = .Top + .CellTop + .CellHeight - Ydcommand.Height + Wbkpy
                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
            If Ydtext.Enabled Then 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
    Case "006"         '来源科目
        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 .Fields("StopFlag") Then
                        Tsxx = "此科目已停用"
                        GoTo Lrcwcl
                    End If
                End If
                '如果此科目存在且改变过则执行下列操作
                '1.显示科目编码,改变科目名称
                WglrGrid.TextMatrix(Dqpdwgh, Sydz("006", GridStr(), Szzls)) = Trim(RecTemp.Fields("Ccode"))
                WglrGrid.TextMatrix(Dqpdwgh, Sydz("007", GridStr(), Szzls)) = Trim(RecTemp.Fields("Cname"))
            End With
        Else
            '清除所有内容
            If GridStr(Dqpdwgl, 1) = "006" Then
                WglrGrid.TextMatrix(Dqpdwgh, Sydz("007", GridStr(), Szzls)) = ""
            End If
        End If
    Case "004"     '转帐方向
        If Len(Str_JudgeText) <> 0 Then
            If Str_JudgeText <> "借" And Str_JudgeText <> "贷" Then
                Tsxx = "转帐方向必须选择“借”或“贷”"
                GoTo Lrcwcl
            End If
        End If
    Case "008"     '来源数据项
        If Len(Str_JudgeText) <> 0 Then
            SqlStr = "Select * from Cwzz_Formula where  Formulacode='" & Str_JudgeText & "' OR FormulaName='" & Str_JudgeText & "'"
            Set RecTemp = Cw_DataEnvi.DataConnect.Execute(SqlStr)
            With RecTemp
                If .EOF Then
                    Tsxx = "此取数项目不存在!"
                    GoTo Lrcwcl
                End If
            End With
            '2.放置字段事后处理程序
            WglrGrid.TextMatrix(Dqpdwgh, 13) = RecTemp.Fields("FormulaCode")
            '以上为自定义部分]
        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

⌨️ 快捷键说明

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