以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  希望在科目代码单元格上显示科目完整名称  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=196443)

--  作者:keli0917
--  发布时间:2025/4/27 20:02:00
--  希望在科目代码单元格上显示科目完整名称

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20250427195443.png
图片点击可在新窗口打开查看

会计科目如上面示例,科目级数可能大于3级。
在凭证中录入科目代码后,希望可以显示完整的科目名称。
比如录入100201后,显示银行存款-招商银行华强北支行,而不是只显示招商银行华强北支行

--  作者:keli0917
--  发布时间:2025/4/27 20:33:00
--  

If e.Col.Name = "FAcctID" Then

    If e.Row.Isnull("FAcctID") = False Then

        Dim strs1() As String={"4","6","8"}

        Dim i1 As Integer = CStr(e.Row("FAcctID")).Length

        \'msgbox(dr("FAcctID").SubString(0,i1))

        Dim ids As String

        For k As Integer = 0 To i1/2-2

            Dim cmd As New SQLCommand

            Dim dt As DataTable

            cmd.C

            cmd.Comma1ndText = "SE1LECT * From {GLACCT} Where [FACCTID] = \'" & CStr(e.Row("FAcctID")).SubString(0,strs1(k)) & "\'"

            dt = cmd.ExecuteReader

            If dt.DataRows.Count > 0 Then

                ids = ids & "-\'" & dt.DataRows(0)("FAcctName") & "\'"

            Else

                ids = Nothing

            End If

        Next

        e.Text = ids.Trim("-")

    End If

End If

 


--  作者:有点蓝
--  发布时间:2025/4/27 20:38:00
--  
drawcell事件

If e.Col.name = "科目名称" Then
    Dim s As String = e.Row("科目名称")
    Dim code As String = e.Row("科目代码")
    If code.length > 4 Then
        Dim dr As DataRow = e.Table.DataTable.find("科目代码=\'" & Left(code, code.length - 2) & "\'")
        Do While dr IsNot Nothing
            s = dr("科目名称") & "-" & s
            code = dr("科目代码")
            If code.length > 4 Then
                dr = e.Table.DataTable.find("科目代码=\'" & Left(code, code.length - 2) & "\'")
            End If
        Loop
e.text = s
    End If
End If