以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何实现任务栏页面任务 当不存在窗体名称时 就不可选,反之就打开对应窗体! (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=148928) |
-- 作者:李孝春 -- 发布时间: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 -- 发布时间: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编辑过]
|
-- 作者:李孝春 -- 发布时间:2020/4/18 23:57:00 -- 回复:(dj68301367)Dim str As String = ""For Each... 谢谢 不是不让他显示哦 是想没有对应窗体名称的 任务名称 不再有下划线超链接的效果 也就是鼠标点击不要有动作 |
-- 作者:有点蓝 -- 发布时间: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 |