Foxtable(狐表)用户栏目专家坐堂 → 我想做一个页面集合的通用会计科目目录树,结果没有目录树显示


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

主题:我想做一个页面集合的通用会计科目目录树,结果没有目录树显示

美女呀,离线,留言给我吧!
采菊东篱下
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
我想做一个页面集合的通用会计科目目录树,结果没有目录树显示  发帖心情 Post By:2021/3/14 10:31:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:小区车辆管理31402.foxdb

密码:888888

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

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


[此贴子已经被作者于2021/3/14 13:41:34编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2191 积分:18007 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2021/3/14 19:00:00 [只看该作者]

完全可以照搬帮助里的“递归函数生成会计科目目录树”
1、没有必要将资产、负债、所有者权益、损益四类财务科目分别设表
2、还没有定义函数--AddChildren,没有定义的函数是无法引用的
3、如果一定要分开,建议使用radiobutton,不用TabControl。
4、建议精简代码
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:小区车辆管理31402.zip



[此贴子已经被作者于2021/3/14 19:21:20编辑过]

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/3/14 19:12:00 [只看该作者]

不搬,我是会计,知道需要怎样的,很多ERP软件都这样设计,这样归类设计好用。

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


加好友 发短信
等级:九尾狐 帖子:2191 积分:18007 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2021/3/14 19:24:00 [只看该作者]

就算是归类,四大财务报表的科目可以一个数据库的表来定义,这样扩展性和维护性更好一些
包括编号、类型(资产、负债、所有的者权益、损益)、名称

另外,建议尽量少用窗口,你的窗口有点太多了,一个很小的功能也要使用窗口,不太合适。因为一个弹窗就表示用户要移动鼠标去关闭,体验不好。

如果一定要使用TabControl也可以,就是要为每个分页夹定义名称,你只定义了它们的标题(如资产、负债、……),并没有定义名称,这样是用不了。---注意标题和名称的区别
[此贴子已经被作者于2021/3/14 19:28:31编辑过]

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/3/14 20:01:00 [只看该作者]

四大会计科目方在一个数据表中不好查找,分类摆放最好,这个你不用多言,都说了我是专业会计,清楚知道需要怎样的功能,我要软件服务于人,不是人将就怎样写代码方便。
增加这么多窗口是因为有些表是隐藏的,不能在表中直接添加,要添加只能在弹窗中添加,我给每个页面写了名称了,还是报错:

图片点击可在新窗口打开查看此主题相关图片如下:0101.png
图片点击可在新窗口打开查看
Forms("会计科目").Controls("TabControl1").SelectedPage = e.sender.SelectedPage
If e.sender.SelectedPage.text = "资产类" Then
    Forms("会计科目").Controls("TabControl1").SelectedPage = Forms("会计科目").Controls("TabControl1").TabPages("资产类")
    Dim tr1 As WinForm.TreeView = e.Form.Controls("TreeView1")
    Dim nd1 As WinForm.TreeNode
    Dim dt1 As DataTable = DataTables("资产")
    tr1.StopRedraw()
    tr1.Nodes.Clear
    For Each dr1 As DataRow In dt1.Select("","科目代码")
        If dr1.IsNull("科目代码") = False AndAlso dr1("科目代码").Length = 4 Then
            Dim i1 As Integer = CInt(dr1("科目代码").Substring(0,1))
            nd1 = tr1.Nodes(i1).Nodes.Add(dr1("科目代码"),dr1("科目代码") & " " & dr1("科目名称"))
            Functions.Execute("AddChildren",nd1,dt1)
        End If
    Next
    tr1.ResumeRedraw()
ElseIf e.sender.SelectedPage.text = "负债类" Then
    Forms("会计科目").Controls("TabControl1").SelectedPage = Forms("会计科目").Controls("TabControl1").TabPages("负债类")
    Dim tr2 As WinForm.TreeView = e.Form.Controls("TreeView2")
    Dim nd2 As WinForm.TreeNode
    Dim dt2 As DataTable = DataTables("负债")
    tr2.StopRedraw()
    tr2.Nodes.Clear
    For Each dr2 As DataRow In dt2.Select("","科目代码")
        If dr2.IsNull("科目代码") = False AndAlso dr2("科目代码").Length = 4 Then
            Dim i2 As Integer = CInt(dr2("科目代码").Substring(0,1))
            nd2 = tr2.Nodes(i2).Nodes.Add(dr2("科目代码"),dr2("科目代码") & " " & dr2("科目名称"))
            Functions.Execute("AddChildren",nd2,dt2)
        End If
    Next
    tr2.ResumeRedraw()
ElseIf e.sender.SelectedPage.text = "所有者权益类" Then
    Forms("会计科目").Controls("TabControl1").SelectedPage = Forms("会计科目").Controls("TabControl1").TabPages("所有者权益类")
    Dim tr3 As WinForm.TreeView = e.Form.Controls("TreeView3")
    Dim nd3 As WinForm.TreeNode
    Dim dt3 As DataTable = DataTables("所有者权益")
    tr3.StopRedraw()
    tr3.Nodes.Clear
    For Each dr3 As DataRow In dt3.Select("","科目代码")
        If dr3.IsNull("科目代码") = False AndAlso dr3("科目代码").Length = 4 Then
            Dim i3 As Integer = CInt(dr3("科目代码").Substring(0,1))
            nd3 = tr3.Nodes(i3).Nodes.Add(dr3("科目代码"),dr3("科目代码") & " " & dr3("科目名称"))
            Functions.Execute("AddChildren",nd3,dt3)
        End If
    Next
    tr3.ResumeRedraw()
ElseIf e.sender.SelectedPage.text = "损益类" Then
    Forms("会计科目").Controls("TabControl1").SelectedPage = Forms("会计科目").Controls("TabControl1").TabPages("损益类")
    Dim tr4 As WinForm.TreeView = e.Form.Controls("TreeView3")
    Dim nd4 As WinForm.TreeNode
    Dim dt4 As DataTable = DataTables("损益")
    tr4.StopRedraw()
    tr4.Nodes.Clear
    For Each dr4 As DataRow In dt4.Select("","科目代码")
        If dr4.IsNull("科目代码") = False AndAlso dr4("科目代码").Length = 4 Then
            Dim i4 As Integer = CInt(dr4("科目代码").Substring(0,1))
            nd4 = tr4.Nodes(i4).Nodes.Add(dr4("科目代码"),dr4("科目代码") & " " & dr4("科目名称"))
            Functions.Execute("AddChildren",nd4,dt4)
        End If
    Next
    tr4.ResumeRedraw()
End If
[此贴子已经被作者于2021/3/14 21:05:59编辑过]

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/3/14 20:19:00 [只看该作者]

不要你这种形式,我们选会计科目一直都用这种分页形式选科目,这样好用,我现在设计的功能并非我真正要做的软件,它只是我学习的练手而已。

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


加好友 发短信
等级:九尾狐 帖子:2191 积分:18007 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2021/3/14 20:45:00 [只看该作者]

不必这么麻烦
在窗口中增加一个Button3,事件代码:
Dim tc As WinForm.TabControl = e.Form.Controls("TabControl1")

Dim dt As DataTable = DataTables(tc.SelectedPage.Name)

Dim tr As WinForm.TreeView = e.Form.Controls("TreeView" & (tc.SelectedIndex + 1))
Dim nd As WinForm.TreeNode

tr.StopRedraw()
tr.Nodes.Clear

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()


窗口的afterload代码
e.Form.Controls("Button3").PerformClick


TabControl的SelectedIndexChanged代码
e.Form.Controls("Button3").PerformClick


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



另外,如果4个树的节点双击事件如果完全一样,可以再增加一个button4,将4个树的节点事件放在一起维护 

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


加好友 发短信
等级:九尾狐 帖子:2191 积分:18007 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2021/3/14 20:54:00 [只看该作者]

另外,你的窗口的更新目录树只是在第一个分页夹中,但貌似它是要去更新负债的树,更新目录树和查找按钮所对应的界面是不对的
更新目录树和查找功能,是针对具体的树去更新和查找,你的按钮是更新全部的4个树、查找4个树的节点,这个应当是有问题的。

更新目录树按钮一般来说,没有必要,因为切换分页夹的时候,会重新构造树。如果真要更新,切换一下分页夹就行了。
[此贴子已经被作者于2021/3/14 20:56:22编辑过]

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/3/14 20:55:00 [只看该作者]

打不开你的文件图片点击可在新窗口打开查看

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


加好友 发短信
等级:九尾狐 帖子:2191 积分:18007 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2021/3/14 20:57:00 [只看该作者]

不是打开,是直接把窗口导入到你的项目里就行了。管理项目-窗口管理-会计科目-设计窗口-文件-从文件生成,选择传的窗口文件就可以了
[此贴子已经被作者于2021/3/14 20:58:18编辑过]

 回到顶部
总数 50 1 2 3 4 5 下一页