Foxtable(狐表)用户栏目专家坐堂 → 会计科目新增排序问题(已解决)


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

主题:会计科目新增排序问题(已解决)

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


加好友 发短信
等级:三尾狐 帖子:715 积分:8574 威望:0 精华:0 注册:2011/11/13 15:49:00
会计科目新增排序问题(已解决)  发帖心情 Post By:2013/9/23 16:05:00 [只看该作者]

在CaseStudy目录下的文件:会计科目.Table的示例中,假如我要增加一个会计科目:"101200,新增科目",展示结果如下:

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

 

我想实现新增科目自动按编码顺序进行排序列印,应放到第一位,即101201前面,而不是每次增加都放在在末位,需要改哪里?

[此贴子已经被作者于2013-9-23 18:06:13编辑过]

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


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

1.手动移动到指定位置再生成
2.把根据Datatable生成改为根据Table生成 这样你先排序 再生成就可以了.

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


加好友 发短信
等级:三尾狐 帖子:715 积分:8574 威望:0 精华:0 注册:2011/11/13 15:49:00
  发帖心情 Post By:2013/9/23 16:21:00 [只看该作者]

Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim nd As WinForm.TreeNode
Dim dt As DataTable = DataTables("会计科目")
tr.StopRedraw()
tr.Nodes.Clear
tr.Nodes.Add("全部")
For Each dr As DataRow In dt.datarows
    If dr.IsNull("科目代码") = False AndAlso dr("科目代码").Length = 4 Then
        nd = tr.Nodes.Add(dr("科目代码"),dr("科目代码") & " " & dr("科目名称"))
        Functions.Execute("AddChildren",nd,dt)
    End If
Next
tr.ResumeRedraw()

 

就这一段码,没有Tables控件.


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


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

请认真看我2楼的回复,和Table控件无关.

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


加好友 发短信
等级:三尾狐 帖子:715 积分:8574 威望:0 精华:0 注册:2011/11/13 15:49:00
  发帖心情 Post By:2013/9/23 16:37:00 [只看该作者]

我是新学的,没能看明白.

 


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

这个是使用了内部函数,不是用树型产生的.


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


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

Dim dt As DataTable = DataTables("会计科目")
tr.StopRedraw()
tr.Nodes.Clear
tr.Nodes.Add("全部")
For Each dr As DataRow In dt.datarows
    If dr.IsNull("科目代码") = False AndAlso dr("科目代码").Length = 4 Then
        nd = tr.Nodes.Add(dr("科目代码"),dr("科目代码") & " " & dr("科目名称"))
        Functions.Execute("AddChildren",nd,dt)
    End If
Next

看到些了吗? 包括内部函数内的, 改为 table  和 rows  row

然后你把table 排序一下,就可以按照你想要的顺序生成了.

新手建议还是先慢慢看帮助吧.

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/9/23 17:08:00 [只看该作者]

不用排序也行,我给你完整的答案,AddChidren这个函数的代码改为:

 

Dim nd As WinForm.TreeNode = args(0)
Dim dt As DataTable = args(1)
For Each dr As DataRow In dt.Select("","科目代码")
    Dim km As String = dr("科目代码")
    If km.StartsWith(nd.name) AndAlso km.Length = nd.Name.Length + 2 Then
         Dim cd As Winform.TreeNode = nd.Nodes.Add(km,km & " " & dr("科目名称"))
        Functions.Execute("AddChildren",cd,dt)
    End If
Next

 

 

窗口1的AfterLoad事件代码改为:

 

Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim nd As WinForm.TreeNode
Dim dt As DataTable = DataTables("会计科目")
tr.StopRedraw()
tr.Nodes.Clear
tr.Nodes.Add("全部")
For Each dr As DataRow In dt.Select("","科目代码")
    If dr.IsNull("科目代码") = False AndAlso dr("科目代码").Length = 4 Then
        nd = tr.Nodes.Add(dr("科目代码"),dr("科目代码") & " " & dr("科目名称"))
        Functions.Execute("AddChildren",nd,dt)
    End If
Next
tr.ResumeRedraw()

[此贴子已经被作者于2013-9-23 17:08:22编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/9/23 17:13:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目50.table


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


加好友 发短信
等级:三尾狐 帖子:715 积分:8574 威望:0 精华:0 注册:2011/11/13 15:49:00
  发帖心情 Post By:2013/9/23 18:05:00 [只看该作者]

受教了,说句心里话,我很喜欢这个论坛.因为我这个新手的学习过程,是先看了几遍,但就是没有理解,然后就尝试着做项目,项目中要用到的功能,我就在这个论坛里找答案,然后,确实没找到,再上例子问老师.这样一个过程,我发现我喜欢上了狐表,有很多新的东西让我在这个论坛中找到了方法.

当然,象BIN老师所说的一样,新手是要看帮助,一个个地理会,但对于没有学过任何编程语言的人来讲,看帮助有时候真的就是理解不了.狐表有一点就是好,就是说你要实现什么样的功能,直接把代码复制过来应用就可以,说句心里话,我自己把有我需要用到的代码都整理在一边,要用这个功能的时候,就粘过去,至于这代码的逻辑意思,确实有些可以看懂,有些还是似懂非懂.

但是有一点,我在这里找到了我的乐趣,看到了我学习的兴趣.谢谢两位老师了!

 回到顶部