以文本方式查看主题 - 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
|