以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 【分享】根据数据表用代码生成任务栏页面及任务内容,多大60个任务,怎么实现点对应的任务内容后,打开对应窗体名称的窗体(因数量达60以上,逐一绑定添加有点不现实)。 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=148926) |
-- 作者:李孝春 -- 发布时间:2020/4/18 20:57:00 -- 【分享】根据数据表用代码生成任务栏页面及任务内容,多大60个任务,怎么实现点对应的任务内容后,打开对应窗体名称的窗体(因数量达60以上,逐一绑定添加有点不现实)。 根据数据表用代码生成任务栏页面及任务内容,多大60个任务,怎么实现点对应的任务内容后,打开对应窗体名称的窗体(因数量达60以上,逐一绑定添加有点不现实)。 如:点击 审看递交程序 对应打开名称为 递交申请 的窗体 【党员发展流程】当前数据内容如下: 动态生成任务页面和任务内容的代码如下: 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 p.Links.Add(s2,s2) Next Next Next End With 任务栏组件 当前单击命令后连接 事件代码如下:(因对应流程节点较多达60个 每个节点对应一个窗体,如果按照如下代码写死的话,不便于后续维护,有没有办法实现代码动态对应窗体并单击后可以打开他们呢?) Select Case e.Link.Name Case "1.审看递交程序" Forms("递交申请").open …… End Select 经过调试,后改成如下代码: 便可直接代码动态读取对应窗体并进行显示。 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 [此贴子已经被作者于2020/4/18 22:02:01编辑过]
|
-- 作者:liufucan -- 发布时间:2020/4/18 22:25:00 -- For Each frm As WinForm.Form In forms str &= frm.Name & "|" next 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 感觉应该是这样吧 |
-- 作者:有点蓝 -- 发布时间:2020/4/19 21:40:00 -- 把窗口名作为子任务的名称 动态生成任务页面和任务内容的代码如下: 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 p.Links.Add(s2(0) & "|" & s2(1), s2(0)) Next Next Next End With 然后任务栏点击事件 dim ss() as string = e.Link.Name.split("|") if ss.length = 2 then Forms(ss(1) ).open end if
|