Foxtable(狐表)用户栏目专家坐堂 → 如何实现任务栏页面任务 当不存在窗体名称时 就不可选,反之就打开对应窗体!


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

主题:如何实现任务栏页面任务 当不存在窗体名称时 就不可选,反之就打开对应窗体!

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
如何实现任务栏页面任务 当不存在窗体名称时 就不可选,反之就打开对应窗体!  发帖心情 Post By:2020/4/18 22:25:00 [只看该作者]

窗体采用了代码动态生成任务栏页面和名称  

Dim str As String = ""
For Each frm As WinForm.Form In forms
    str &= frm.Name & "|"
    Select Case e.Link.Name
        Case e.Link.Name
            Dim lsts As New List(Of String)
            lsts= DataTables("党员发展流程").getvalues("对应窗体名称","子任务='" & e.Link.Name & "'")
            For Each s1 As String In lsts
                If s1.Length>0 Then
                    If str.Contains(s1)=True  Then
                        Forms("" & s1 & "").open
                    End If
                End If
            Next
    End Select
Next
上述代码实现了 遍历当前项目所有窗体名称,如果党员发展流程表中对应任务名称有  窗体名称  点击e.Link.Name对应就打开这个窗体   反之就不做动作

想改进一下,当不存在对应窗体名称的窗体时,想实现e.Link.Name连接不可选,怎么写代码呢?

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


加好友 发短信
等级:小狐 帖子:368 积分:2816 威望:0 精华:0 注册:2015/4/12 12:13:00
  发帖心情 Post By:2020/4/18 23:48:00 [只看该作者]

Dim str As String = ""
For Each frm As WinForm.Form In forms
    str &= frm.Name & "|"
next


            Dim lsts As New List(Of String)
            lsts= DataTables("党员发展流程").getvalues("对应窗体名称","子任务='" & e.Link.Name & "'")
            For Each s1 As String In lsts
                If s1.Length>0 Then
                    If str.Contains(s1)=True  Then
                        Forms("" & s1 & "").open
else 
e.Link.Visible = false
                    End If
                End If
            Next


[此贴子已经被作者于2020/4/18 23:49:43编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(dj68301367)Dim str As String = ""For Each...  发帖心情 Post By:2020/4/18 23:57:00 [只看该作者]

谢谢  不是不让他显示哦  是想没有对应窗体名称的  任务名称  不再有下划线超链接的效果  也就是鼠标点击不要有动作

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

在这个基础上改进一下:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=148926

动态生成任务页面和任务内容的代码如下:
With Forms("窗口1").Controls("TopicBar1").Pages
    Dim lsts As New List(Of String)
    lsts= DataTables("党员发展流程").getvalues("任务名称")
    For Each s As String In lsts
        Dim lsts2 As New List(Of String)
        lsts2= DataTables("党员发展流程").getvalues("具体任务","任务名称='" & s & "'")
        For Each s1 As String In lsts2
            Dim p = .Add(s1,s1,"")
            Dim lsts1 As New List(Of String())
            lsts1= DataTables("党员发展流程").getvalues("子任务|对应窗体名称","任务名称='" & s & "'and 具体任务='" & s1 & "'")
            For Each s2 As String() In lsts1
if s2(1) > ""  then
                p.Links.Add(s2(0) & "|" & s2(1), s2(0))
else
dim lk = p.Links.Add(s2(0), s2(0))
lk.enabled = false
endif
            Next
        Next
    Next
End With

 回到顶部