Foxtable(狐表)用户栏目专家坐堂 → [求助]目录树只显示中文不显示数字


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

主题:[求助]目录树只显示中文不显示数字

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


加好友 发短信
等级:三尾狐 帖子:660 积分:5180 威望:0 精华:0 注册:2019/7/26 12:54:00
[求助]目录树只显示中文不显示数字  发帖心情 Post By:2020/1/19 11:20:00 [只看该作者]

会计科目单元格下拉,第四列,想实现录入不含数字只有中文,求助,下面代码怎样修改

项目事件
AfterOpenProject
 
MainTable = Tables("凭证")
Tables("凭证").Cols("会计科目").DropForm = "科目表目录"
 
 
窗口与控件事件
科目表目录_DropDownOpened
 
Dim tr As WinForm.TreeView = e.Form.Controls("TreeView科目表")
Dim nd As WinForm.TreeNode
Dim dt As DataTable = DataTables("科目表")
tr.StopRedraw()
tr.Nodes.Clear
Dim gz As String = "424"
For Each dr As DataRow In dt.Select("","科目代码")
    If dr.IsNull("科目代码") = False AndAlso dr("科目代码").Length = val(gz(0)) Then
        'nd = tr.Nodes.Add(dr("科目代码"),dr("科目代码") & " " & dr("科目名称"))
        nd = tr.Nodes.Add(dr("科目代码"),dr("科目代码")  & dr("科目名称"))
        Functions.Execute("AddChildren",nd,dt,gz,1)
    End If
Next
tr.ResumeRedraw()
 
科目表目录_TreeView科目表_NodeMouseClick
 
Dim dr As DataRow = DataTables("科目表").find("科目代码='" & e.Node.name & "'") '获取生成此节点的DataRow
If dr IsNot Nothing Then
    e.Form.DropDownBox.Value = dr("科目代码") '这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
    e.Form.DropDownBox.CloseDropdown()
Tables("凭证").Current("科目名称") = dr("科目名称") 
Tables("凭证").Current("第四列") = e.Node.FullPath  '输出2列
End If
 
自定义函数
AddChildren
 
Dim nd As WinForm.TreeNode = args(0)
Dim dt As DataTable = args(1)
Dim gz As String = args(2)
Dim idx As Integer = args(3)
If idx < gz.Length Then
    For Each dr As DataRow In dt.Select("","科目代码") '按代码顺序添加
        Dim km As String = dr("科目代码")
        
        If km.StartsWith(nd.name) AndAlso km.Length = nd.Name.Length + val(gz(idx)) Then
            Dim sum As Integer = 0
            For i As Integer = 0 To gz.Length - 1
                sum += val(gz(i))
                If km.Length = sum  Then
                    'Dim cd As Winform.TreeNode = nd.Nodes.Add(km,km & " " & dr("科目名称"))
                    Dim cd As Winform.TreeNode = nd.Nodes.Add(km,km & dr("科目名称"))
                    Functions.Execute("AddChildren",cd,dt,gz,idx+1)
                    Exit For
                End If
            Next
        End If
    Next
End If
 



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


加好友 发短信
等级:三尾狐 帖子:660 积分:5180 威望:0 精华:0 注册:2019/7/26 12:54:00
  发帖心情 Post By:2020/1/19 11:21:00 [只看该作者]


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

群主,这个示意图,想要实现的效果
[此贴子已经被作者于2020/1/19 11:38:24编辑过]

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


加好友 发短信
等级:超级版主 帖子:106132 积分:539771 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/19 11:28:00 [只看该作者]

科目表目录_TreeView科目表_NodeMouseClick

Dim dr As DataRow = DataTables("科目表").find("科目代码='" & e.Node.name & "'") '获取生成此节点的DataRow
If dr IsNot Nothing Then
    e.Form.DropDownBox.Value = dr("科目代码") '这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
    e.Form.DropDownBox.CloseDropdown()
    Tables("凭证").Current("科目名称") = dr("科目名称")
    Dim pattern As String = "[^\u4e00-\u9fa5\\]"
    Tables("凭证").Current("第四列") = System.Text.RegularExpressions.Regex.Replace(e.Node.FullPath, pattern ,"")  '输出2列
End If

 回到顶部