以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  导航问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=117839)

--  作者:nxqtxwz
--  发布时间:2018/4/19 17:41:00
--  导航问题

老师,下面红色代码为什么不执行呢?绿色的代码显示错误,是不是必须要写成兰色哪样呢。目的是想选择了“任教学科”就把任教学科这一列的“语文”筛选出来。

 

 

Select Case e.Page.Name
    Case  "职工信息"
        Select Case e.Link.Name
            Case "任教学科"
             With  Tables("职工信息总表").Filter = "[任教学科] = \'语文\'"
              
 \' With CurrentTable
                \'    Dim r As Integer
                 \'   r = .Find("语文", 0, 0, False, False, True)
                  \'  If r > - 1 Then \'如果找到符合条件的行
                   \'     .Position = r \'则选择该行
                    \'End If
                End With
                            
                \' With Forms("信息")
                \'   .Open()
                \' .Controls("导航").Value = .Controls("党建工作").Text
         \'End With
            \' Functions.Execute("Subtotal")
           \' MainTable = Tables("职工信息总表")

       Case "框架模式"
            With Forms("信息")
                .Open()
                .Controls("TextBox1").Value = .Controls("框架模式").Text


--  作者:有点甜
--  发布时间:2018/4/19 18:11:00
--  

改成这样测试

 

msgbox(e.page.name)

msgbox(e.page.text)

Select Case e.Page.Text
    Case  "职工信息"

msgbox(e.link.Name)

msgbox(e.link.Text)
        Select Case e.Link.Text

 


--  作者:nxqtxwz
--  发布时间:2018/4/19 19:58:00
--  

我改成了下面这样(红色部分),依然实现不了我的目的啊?是不是必须要做一个窗口,在窗口中绑定相应的表呢?

 

baseMainform.SuspendLayout
Dim tbp As WinForm.TopicBar = e.Form.Controls("导航")
For Each pg As WinForm.TopicPage In tbp.Pages
    For Each lnk As WinForm.TopicLink In pg.Links
        lnk.Text = lnk.Text.Trim("←")
    Next
Next
e.Link.Text = e.Link.Text & "←"
MarkCell = False
For Each frm As Winform.Form In Forms
    If frm.Opened AndAlso frm.FormStyle = FormStyleEnum.独立 Then
        frm.Close()
    End If
Next
Tables("职工信息总表").CloseRecordGrid()
msgbox(e.page.name)
msgbox(e.page.text)
Select Case e.Page.Text
    Case  "职工信息"
        msgbox(e.link.Name)
        msgbox(e.link.Text)
        Select Case e.Link.Text
            Case "任教学科"
                With  Tables("职工信息总表").Filter = "[任教学科] = \'语文\'"
                End With
            Case "合并模式"
                With Tables("合并模式")
                    .MergeMode = MergeModeEnum.Standard
                    .MergeCols.Clear()
                    .MergeCols.Add("国家")
                    .MergeCols.Add("金属")
                    .MergeSort = "国家,金属"
                    .AllowMerge = True
                End With
                Forms("合并模式").Open()
                MainTable = Tables("合并模式")
            Case "多层表头"


--  作者:有点甜
--  发布时间:2018/4/19 20:15:00
--  

msgbox分别弹出什么,是用name还是text?

 

不会调试请上传实例说明


--  作者:nxqtxwz
--  发布时间:2018/4/19 20:26:00
--  
弹出两次职工信息,后又弹出两次任教学科,后一次任教学科带箭头。
--  作者:有点甜
--  发布时间:2018/4/19 20:33:00
--  

Select Case e.Link.Text

 

改成

 

Select Case e.Link.Name


--  作者:nxqtxwz
--  发布时间:2018/4/19 20:40:00
--  

老师,我改成了Select Case e.Link.Name,可是没有反应,也就是说

With  Tables("职工信息总表").Filter = "[任教学科] = \'语文\'"
               \' With CurrentTable
                \'    Dim r As Integer
                 \'   r = .Find("语文", 0, 0, False, False, True)
                  \'  If r > - 1 Then \'如果找到符合条件的行
                   \'     .Position = r \'则选择该行
                    \'End If
                End With

这一段代码不执行。并没有把“任教学科”这一列是“语文”的所有记录行筛选出来。


--  作者:有点甜
--  发布时间:2018/4/19 21:08:00
--  
加入代码 msgbox(e.Link.Name) 看弹出什么
--  作者:nxqtxwz
--  发布时间:2018/4/19 21:14:00
--  
老师,弹出“任教学科”。
--  作者:有点甜
--  发布时间:2018/4/19 21:20:00
--  
以下是引用nxqtxwz在2018/4/19 21:14:00的发言:
老师,弹出“任教学科”。

 

那这句代码绝对执行了

 

        Select Case e.Link.Name
            Case "任教学科"

                 msgbox("执行了")

                 Tables("职工信息总表").Filter = "[任教学科] = \'语文\'"