Foxtable(狐表)用户栏目专家坐堂 → 科目编码编码中科目类别的用户自定义


  共有4103人关注过本帖树形打印复制链接

主题:科目编码编码中科目类别的用户自定义

帅哥哟,离线,有人找我吗?
blsu33
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
科目编码编码中科目类别的用户自定义  发帖心情 Post By:2014/8/8 22:31:00 [只看该作者]

老师好,烦您看一下,修改的编码,执行有错误,劳烦您帮我改改,多谢。

 

科目目录树递归中数组的自定义问题

 

教材中实例“科目类别”是数组:Dim rts() As String = {"全部","资产","负债","权益","成本","损益"}

而实际工作中是经常变化的,有的公司是 {"全部","资产","负债","权益","生产成本","收入"","成本"。。。。}
}

 

我的构造是做了一个数据表(科目类别)来反映编码名称列内容“科目类型”,如下图:

 
此主题相关图片如下:科目类别.jpg
按此在新窗口浏览图片

 

将教材中实例Dim rts() As String = {"全部","资产","负债","权益","成本","损益"}

 

更换为下列代码:

Dim KMLX As new List(of String)
KMLX= DataTables("科目类别").GetValues("编码名称")
Dim rts() As String =KMLX.ToArray()

 


出现如下错误


此主题相关图片如下:错误.jpg
按此在新窗口浏览图片

 

 

全部代码如下,

Dim tr As WinForm.TreeView = e.Form.Controls("会计科目.TV")
Dim kmlX As new List(of String)
kmlX= DataTables("科目类别").GetValues("编码名称")
Dim rts() As String =kmlX.ToArray()‘
希望rts()引用数组KMLB
Dim nd As WinForm.TreeNode
Dim dt As DataTable = DataTables("会计科目")
tr.StopRedraw()
tr.Nodes.Clear
For Each rt As String In rts
    tr.Nodes.Add(rt)
Next
Dim gz As String = DataTables("分类编码方案").Find("基础档案名称 = '会计科目'")("编码规则")
For Each dr As DataRow In dt.Select("","编码规则")
    If dr.IsNull("编码规则") = False AndAlso dr("编码规则").Length = val(gz(0)) Then
        Dim i As Integer = CInt(dr("编码规则").Substring(0,1))
        nd = tr.Nodes(i).Nodes.Add(dr("编码规则"),dr("编码规则") & " " & dr("编码名称"))
        Functions.Execute("AddChildren",nd,dt,gz)
    End If
Next
tr.ResumeRedraw()

[此贴子已经被作者于2014-8-8 22:33:44编辑过]

 回到顶部
帅哥,在线噢!
y2287958
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:4752 积分:34568 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2014/8/9 6:56:00 [只看该作者]

试试这个:
Dim tr As WinForm.TreeView = e.Form.Controls("会计科目.TV")
Dim nd As WinForm.TreeNode
Dim dt As DataTable = DataTables("会计科目")
tr.StopRedraw()
tr.Nodes.Clear
For Each rt As String In  DataTables("科目类别").GetComboListString("编码名称").split("|")

    tr.Nodes.Add(rt)
Next
Dim gz As String = DataTables("分类编码方案").Find("基础档案名称 = '会计科目'")("编码规则")
For Each dr As DataRow In dt.Select("","编码规则")
    If dr.IsNull("编码规则") = False AndAlso dr("编码规则").Length = val(gz(0)) Then
        Dim i As Integer = CInt(dr("编码规则").Substring(0,1))
        nd = tr.Nodes(i).Nodes.Add(dr("编码规则"),dr("编码规则") & " " & dr("编码名称"))
        Functions.Execute("AddChildren",nd,dt,gz)
    End If
Next
tr.ResumeRedraw()

 回到顶部
帅哥哟,离线,有人找我吗?
blsu33
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2014/8/9 9:36:00 [只看该作者]

老师 还是有错误 


图片点击可在新窗口打开查看此主题相关图片如下:错误.jpg
图片点击可在新窗口打开查看

 

目录树的命令是下面的

是不是 有问题

 

Dim trv As WinForm.TreeView = e.Form.Controls("会计科目.TV")
If e.Node.Level = 0
    If  e.Node.Name = "全部" Then
        Tables("会计科目").Filter = ""
    Else
        Tables("会计科目").Filter =  "编码规则 Like '" & e.Node.Index & "%'"
    End If
Else
    Tables("会计科目").Filter = "编码规则 Like '" & e.Node.Name & "%'"
End If


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/8/9 9:39:00 [只看该作者]

 If dr.IsNull("编码规则") = False AndAlso dr("编码规则").Length = val(gz(0)) Then
        Dim i As Integer = CInt(dr("编码规则").Substring(0,1))

编码规则有空值吧

 回到顶部
帅哥哟,离线,有人找我吗?
blsu33
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2014/8/11 8:08:00 [只看该作者]

顶一个


 回到顶部
帅哥哟,离线,有人找我吗?
blsu33
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2014/8/11 8:45:00 [只看该作者]

还是有错误提示


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/11 9:09:00 [只看该作者]

 出错的例子发上来

 回到顶部
帅哥哟,离线,有人找我吗?
blsu33
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2014/8/11 21:31:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:科目类别.rar

  麻烦您了 有点甜老师

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/11 21:34:00 [只看该作者]

 怎么操作出错?

 回到顶部
帅哥哟,离线,有人找我吗?
blsu33
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2014/8/12 20:21:00 [只看该作者]

教材中实例“科目类别”是数组:Dim rts() As String = {"全部","资产","负债","权益","成本","损益"}

而实际工作中是经常变化的,有的公司是 {"全部","资产","负债","权益","生产成本","收入"","成本"。。。。}
}

 

我的构造是做了一个数据表(科目类别)来反映编码名称列内容“科目类型”,如下图:

 
此主题相关图片如下:科目类别.jpg
按此在新窗口浏览图片

 

将教材中实例Dim rts() As String = {"全部","资产","负债","权益","成本","损益"}

 

更换为下列代码:

Dim KMLX As new List(of String)
KMLX= DataTables("科目类别").GetValues("编码名称")
Dim rts() As String =KMLX.ToArray()

 


出现如下错误


此主题相关图片如下:错误.jpg
按此在新窗口浏览图片

 

 

全部代码如下,

Dim tr As WinForm.TreeView = e.Form.Controls("会计科目.TV")
Dim kmlX As new List(of String)
kmlX= DataTables("科目类别").GetValues("编码名称")
Dim rts() As String =kmlX.ToArray()‘
希望rts()引用数组KMLB
Dim nd As WinForm.TreeNode
Dim dt As DataTable = DataTables("会计科目")
tr.StopRedraw()
tr.Nodes.Clear
For Each rt As String In rts
    tr.Nodes.Add(rt)
Next
Dim gz As String = DataTables("分类编码方案").Find("基础档案名称 = '会计科目'")("编码规则")
For Each dr As DataRow In dt.Select("","编码规则")
    If dr.IsNull("编码规则") = False AndAlso dr("编码规则").Length = val(gz(0)) Then
        Dim i As Integer = CInt(dr("编码规则").Substring(0,1))
        nd = tr.Nodes(i).Nodes.Add(dr("编码规则"),dr("编码规则") & " " & dr("编码名称"))
        Functions.Execute("AddChildren",nd,dt,gz)
    End If
Next
tr.ResumeRedraw()


 回到顶部
总数 11 1 2 下一页