Foxtable(狐表)用户栏目专家坐堂 → [求助]动态生成多级菜单


  共有2067人关注过本帖平板打印复制链接

主题:[求助]动态生成多级菜单

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


加好友 发短信
等级:六尾狐 帖子:1311 积分:9528 威望:0 精华:0 注册:2015/6/30 8:46:00
[求助]动态生成多级菜单  发帖心情 Post By:2019/8/18 15:52:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:mic27-ma.png
图片点击可在新窗口打开查看
窗体代码

cmd.CommandText = "sele ct * from {菜单管理表} where 窗体名称 = '" & e.Form.Name & "'"
Dim csdt As DataTable = cmd.ExecuteReader
For Each cr As DataRow In csdt.DataRows
    If cr.IsNull("名称") = False Then
        If cr("层数") = 1 Then
            Dim mnu As Winform.Strip
            mnu = e.Form.Strips.Add(cr("名称"),cr("菜单ID"))
            Dim drs As List(of DataRow) = csdt.Select("父阶id =" & cr("ID"))
            If drs.Count > 0 Then
                Functions.Execute("增加菜单",mnu,csdt,cr("ID"),cr("层数"))
            End If
        End If
    End If
Next

 

递归代码.............问题在这里,不会调试了,请老师指点

Dim mnu As Winform.Strip
Dim itm As WinForm.StripItem
Dim csdt As DataTable = args(1)
If args(3) > 1 Then
    itm = args(0)
Else
    mnu = args(0)
End If
Dim drs As List(of DataRow) = csdt.Select("父阶id =" & args(2))
If drs IsNot Nothing Then
    For Each dr As DataRow In drs
        Dim drs1 As List(of DataRow) = csdt.Select("父阶id =" & dr("ID"))
        If drs1.Count > 0 Then
            If dr("层数") > 2 Then
                Functions.Execute("增加菜单",itm,csdt,dr("id"),dr("层数"))
            Else
                Functions.Execute("增加菜单",mnu,csdt,dr("id"),dr("层数"))
            End If
        Else
            If dr("层数") > 2 Then
                itm.Items.Add(dr("名称"),dr("标题"),dr("图标") ,dr("菜单ID"))
            Else
                mnu.Items.Add(dr("名称"),dr("标题"),dr("图标") ,dr("菜单ID"))
            End If
        End If
    Next
End If


 回到顶部