Foxtable(狐表)用户栏目专家坐堂 → 目录树


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

主题:目录树

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


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

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



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


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

代码发不出,只能这样发。

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


加好友 发短信
等级:超级版主 帖子:106097 积分:539590 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/25 21:33:00 [只看该作者]

这个本来就是您的工作,当然是自己想,您开发软件,不是自己想让别人帮你想吗,这又是什么道理?要搞清楚,foxtable是一个开发平台,功能业务都是要用户自己去理清自己去开发的。我们提供的是技术支持,只是教用户怎么用好帮助文档,和学会使用foxtable的各种功能。我们既不参与用户的开发,也不提供写代码、调试和改问题服务,只能是引导用户学会判断和改正自己的问题。

我陆陆续续不断引导您学会怎么去调试代码,注意我一般在什么地方加msgbox调试代码,调试的时候提示框里会弹出什么内容帮助调试,然后根据调试结果的反馈如何去判断问题在哪里。

以87楼的调试代码为例,这个位置加提示框,绝对是可以弹出来的,运行点调试会先弹出三栏式账,然后弹出true。true对应的是msgbox(tr is nothing)里的tr is nothing,说明tr这个变量是空值。也就是没有行对应这个变量,那么后面代码再给这个变量赋值肯定就会出错的。

那么我们可以往前在看看,哪里给tr变量赋值的,为什么会没有值。具体代码应该是这段:

Dim tr As Row 定义一个变量,这时还没有值
If e.Form.DropTable IsNot Nothing Then '如果下拉窗口是从表中打开
    tr = e.Form.DropTable.Current '获取此表的当前行 很明显是窗口控件调用的,所以这里不会执行到
Else '如果下拉窗口是通过DropdownBox打开
    Dim nm As String = e.Form.DropDownBox.BindingField '获取绑定的字段
    If nm > "" Then
        nm = nm.Split(".")(0) '获取绑定的表名
        tr = Tables(nm).Current '获取此表的当前行 很明显窗口控件并没有绑定表格,所以这里也不会执行到
    Else
        If e.Node.DataRow IsNot Nothing 由于是手工使用代码递归生成的目录树,并没有绑定表格(不是通过BuildTreeCreateTreeGenerateTree方法生成不会百度表格:http://www.foxtable.com/webhelp/topics/2689.htm),所以目录树节点也不会有DataRow属性,因此这里的代码也不会执行
            e.Form.DropDownBox.Value = e.Node.DataRow("会计科目")
            e.Form.DropDownBox.CloseDropdown()
            Return
        End If
    End If
End If
因此上面这些代码最终都无法给tr变量赋值,tr就是一个空对象

再思考一下,窗口的控件既然没有绑定表格,下拉窗口里直接给控件赋值就行了吧,代码里还需要给表格赋值吗,也就是下面蓝色代码完全就是多余的
    Select Case e.Form.DropDownBox.Form.Name
        Case "三栏式账","三栏式数量金额账","多栏式明细账"
            Select Case e.Node.Level
                Case 0
                    tr("会计科目") = Vals(0)
                    e.Form.DropDownBox.Value = tr("会计科目")
                    e.Form.DropDownBox.CloseDropdown()
                Case 1
                    tr("会计科目") = Vals(0) & "-" & Vals(1).SubString(9,Vals(1).Length - 9)
                    e.Form.DropDownBox.Value = tr("会计科目")
                    e.Form.DropDownBox.CloseDropdown()
                Case 2

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


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

  我是通过选取科目表中的科目给下拉窗口赋值,不要蓝色部份的代码又怎知我要什么科目?前面都是铺垫,蓝色部份组合的内容才是我最终要的,
Select Case e.Form.DropDownBox.Form.Name
        Case "三栏式账","三栏式数量金额账","多栏式明细账"
            Select Case e.Node.Level
                Case 0
                    e.Form.DropDownBox.Value = Vals(0)
                Case 1
                    e.Form.DropDownBox.Value = Vals(0) & "-" & Vals(1).SubString(9,Vals(1).Length - 9)
                Case 2
是不是这样直接赋值?


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


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

  我边做边学的,常不得要领,这些都是我学习的习题。

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


加好友 发短信
等级:超级版主 帖子:106097 积分:539590 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/25 22:39:00 [只看该作者]

那就给控件赋值,是不是自己测试,有问题再说。

学习先学会看文档,看文档先不要看代码,先看文字说明;其次学会调试。如果一个软件开发总共需要10分钟,就是2分准备,3分开发,5分调试

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


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

可以了,我终于明白目录树点击字节怎么弄了。

 回到顶部
总数 107 1.. 上一页 2 3 4 5 6 7 8 9 10 11