Foxtable(狐表)用户栏目专家坐堂 → [求助]菜单展现问题


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

主题:[求助]菜单展现问题

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


加好友 发短信
等级:二尾狐 帖子:537 积分:4465 威望:0 精华:0 注册:2014/11/26 15:23:00
[求助]菜单展现问题  发帖心情 Post By:2019/5/10 10:59:00 [只看该作者]

遇到一个菜单问题,无法循环判断并且剔除不想显示的菜单了。或者有更好的展现方式,谢谢版主!

 

 


图片点击可在新窗口打开查看此主题相关图片如下:pic_2019-05-10_10-49-17.jpg
图片点击可在新窗口打开查看

这是菜单表,我添加了一个列:菜单子项,用来在tv中展现,而不要在上方ribbon菜单中体现,但是如下图,ribbon会有,我循环判断出错,不知道怎么办,或者版主有更好的办法:

 


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

之前的代码如下:

 

If RibbonTabs.Count > 5 Then
    Return
Else
   
   
    Dim drs As List(Of DataRow)
    drs = DataTables("菜单表").Select("[功能区] Like '*'","OrderID")
   
    For Each dr As DataRow In drs
        Dim tab As New RibbonMenu.Tab(dr("功能区"))
        If not RibbonTabs.Contains(dr("功能区")) Then
            tab.Text = dr("功能区")
            RibbonTabs.Add(tab)
        End If
    Next
   
    For Each dr As DataRow In drs
        Dim rg As New RibbonMenu.group(dr("功能组"))
        If not RibbonTabs(dr("功能区")).groups.Contains(dr("功能组")) Then
            rg.Text = dr("功能组")
            RibbonTabs(dr("功能区")).Groups.Add(rg)
        End If
    Next
   
    For Each dr As DataRow In drs
        If dr("项类型") = "RibbonMenu.Separator" Then
            Dim rb As new RibbonMenu.Separator(dr("功能项"))
            RibbonTabs(dr("功能区")).Groups(dr("功能组")).Items.Add(rb)
        Else
            Dim itm As RibbonMenu.RibbonItem
            For Each itm In RibbonTabs("功能区").Groups("功能组").Items
                If Typeof itm Is RibbonMenu.Button Then
                    If itm.Text <> dr("功能项") Then
                        Dim rb As New RibbonMenu.Button(dr("功能项"))
                        rb.Text = dr("功能项")
                        rb.LargeImage = GetImage(ProjectPath & "Images\" & dr("图标"))
                        rb.TextImageRelation = TextImageRelationEnum.ImageAboveText
                        RibbonTabs(dr("功能区")).Groups(dr("功能组")).Items.Add(rb)
                    End If
                End If
            Next
           
           
           
        End If
    Next
   
   
End If

 

 

 

窗体中的代码:

'动态生成目录树
Dim gnq As String = RibbonTabs.SelectedTab.Name
Functions.Execute("ChangeTV",e.Form,gnq)

 

ChangeTV代码:

'动态切换树
Dim tv1 As WinForm.TreeView = Args(0).Controls("TreeView1")
tv1.BuildTree("菜单表","功能项|功能子项","功能区 = '"& Args(1) &"'","OrderID ASC")
tv1.ExpandAll()


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/10 11:25:00 [只看该作者]

这个代码改一下

 

drs = DataTables("菜单表").Select("[功能区] Like '*' and 功能子项 is null","OrderID")


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


加好友 发短信
等级:二尾狐 帖子:537 积分:4465 威望:0 精华:0 注册:2014/11/26 15:23:00
  发帖心情 Post By:2019/5/10 11:28:00 [只看该作者]

可以了,总觉得自己好傻好傻的

 回到顶部