以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  自动显示上级编号  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=101201)

--  作者:kaituozhe
--  发布时间:2017/5/26 15:47:00
--  自动显示上级编号
5001.01.01.02,这是会计科目的编号,各级编号的位数不一定统一,我想通过代码实现找到上级编号,这个科目编号的上级编号分别5001.01.01、5001.01、5001,怎么能够通过代码实现呢,比如当输入5001.01.01.02时,会在另一列自动上级编号为5001.01.01
--  作者:blsu33
--  发布时间:2017/5/26 16:15:00
--  
定义规则 有了规则 才能 找上级 需要用表定义规则,例如
编码规则表 
表名      字段名      编码规则 
会计科目  科目编码   4222

然后根据 编码规则的长度去一步步筛选
Dim dr As DataRow=DataTables("编码规则表").DataRows(0)
Dim str As String="5001.01.01.02"
Dim sum As Integer
For i As Integer = 0 To dr("编码规则").Length - 1
    sum += dr("编码规则").SubString(i,1)
        If str.length < sum Then
        Exit For
    Else
        Dim str2 As String=str.Replace(".","").SubString(0,sum)
        MessageBox.Show(“各级是:” & str2)
    End If
Next

--  作者:kaituozhe
--  发布时间:2017/5/26 17:13:00
--  
如果没有规则能否实现
--  作者:nothing
--  发布时间:2017/5/26 18:35:00
--  
有规则就按规则来,比如说用“.”作为标记,真的没有规则,在表中管理
--  作者:有点蓝
--  发布时间:2017/5/26 20:17:00
--  
Dim str As String="5001.01.01.02"
Dim arr() As String= str.Split(".")
str = ""
For i As Integer = 0 To arr.Length - 1
    str &= "." & arr(i)
    Output.Show("第" & i+1 & "级:" & str.TrimStart("."))
Next