以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 会计科目,一般不用3开头的科目;怎么处理?应该怎么写好? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=101382) |
||||
-- 作者:yancheng -- 发布时间:2017/5/29 20:32:00 -- 会计科目,一般不用3开头的科目;怎么处理?应该怎么写好? 我现在在:用的,样例文件的,会计科目的文件,做的。 我把窗口口的:afterload:代码改了一下,如下: Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1") Dim rts() As String = {"全部","资产","负债","","权益","成本","损益"} 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 For Each dr As DataRow In dt.Select("", "科目代码") If dr.IsNull("科目代码") = False AndAlso dr("科目代码").Length = 4 Then Dim i As Integer = CInt(dr("科目代码").Substring(0,1)) nd = tr.Nodes(i).Nodes.Add(dr("科目代码"),dr("科目代码") & " " & dr("科目名称")) Functions.Execute("AddChildren1",nd,dt) End If tr.ResumeRedraw() [此贴子已经被作者于2017/5/29 20:32:41编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2017/5/31 9:28:00 -- 代码或者函数里忽略掉3开头的科目即可,没有必要增加一个空节点 For Each dr As DataRow In dt.Select("", "科目代码") If dr.IsNull("科目代码") = False AndAlso dr("科目代码").Length = 4 Then Dim i As Integer = CInt(dr("科目代码").Substring(0,1)) If i <> 3 Then nd = tr.Nodes(i).Nodes.Add(dr("科目代码"),dr("科目代码") & " " & dr("科目名称")) Functions.Execute("AddChildren1",nd,dt) End If End If Next |
||||
-- 作者:yancheng -- 发布时间:2017/5/31 11:23:00 -- Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1") Dim rts() As String = {"全部","资产","负债","权益","成本","损益"} 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 For Each dr As DataRow In dt.Select("", "科目代码") If dr.IsNull("科目代码") = False AndAlso dr("科目代码").Length = 4 Then Dim i As Integer = CInt(dr("科目代码").Substring(0,1)) If i <> 3 Then nd = tr.Nodes(i).Nodes.Add(dr("科目代码"),dr("科目代码") & " " & dr("科目名称")) 我会计科目里面没有3,但是这个tr.nodes(i)取的是科目表的:1.2.4.5.6;生成后,还是不对。 Functions.Execute("AddChildren1",nd,dt) End If End If Next tr.ResumeRedraw()
|
||||
-- 作者:有点色 -- 发布时间:2017/5/31 11:57:00 -- 我测试没问题,请用实例说明。
Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1") |
||||
-- 作者:yancheng -- 发布时间:2017/5/31 12:09:00 -- 嗯。红色这个加入,可以的。呵呵,只是,感觉是画一个足,再切掉。 Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1") Dim rts() As String = {"全部","资产","负债","","权益","成本","损益"} 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 For Each dr As DataRow In dt.Select("", "科目代码") If dr.IsNull("科目代码") = False AndAlso dr("科目代码").Length = 4 Then Dim i As Integer = CInt(dr("科目代码").Substring(0,1)) If i <> 3 Then nd = tr.Nodes(i).Nodes.Add(dr("科目代码"),dr("科目代码") & " " & dr("科目名称")) Functions.Execute("AddChildren1",nd,dt) End If End If Next tr.Nodes(3).Delete tr.ResumeRedraw() 红色的代码,它是,取的科目代码的第一个字:我的是取出来是:1.2.4.5.6(因为,会计科目:3开头的一般不用) 所以,1对应:资产,2,负债,3为空;4,权益,5.成本 ;6损益;
|
||||
-- 作者:有点色 -- 发布时间:2017/5/31 12:15:00 -- 4楼代码没问题,如果有问题,做实例发上来测试。 |
||||
-- 作者:yancheng -- 发布时间:2017/5/31 12:20:00 --
看:窗口2,有报错 会计科目表,我把3开口的删除了。加入了:6开头的;
[此贴子已经被作者于2017/5/31 12:23:41编辑过]
|
||||
-- 作者:有点色 -- 发布时间:2017/5/31 14:42:00 -- Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1") Dim rts() As String = {"全部","资产","负债","成本","损益","测试"} Dim ary() As Integer = {0, 1, 2, 4,5,6} 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 For Each dr As DataRow In dt.Select("", "科目代码") If dr.IsNull("科目代码") = False AndAlso dr("科目代码").Length = 4 Then Dim i As Integer = ary.indexof(ary, CInt(dr("科目代码").Substring(0,1))) If i >= 0 Then nd = tr.Nodes(i).Nodes.Add(dr("科目代码"),dr("科目代码") & " " & dr("科目名称")) Functions.Execute("AddChildren",nd,dt) End If End If Next tr.ResumeRedraw() |
||||
-- 作者:yancheng -- 发布时间:2017/5/31 15:00:00 -- 学习了,谢谢,色版。 写代码,逻辑与技术方法,同样重要呀。两样都得学。
|