以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  用户点击跳转主窗口(有多个主窗口),如何判断面对当前用户当前的主窗口的名字啊?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=120394)

--  作者:guosheng
--  发布时间:2018/6/14 10:25:00
--  用户点击跳转主窗口(有多个主窗口),如何判断面对当前用户当前的主窗口的名字啊?
用户点击跳转主窗口(有多个主窗口),如何判断面对当前用户当前的主窗口的名字啊?目的是为了,找到当前主窗口的名字,然后关闭当前的主窗口。
[此贴子已经被作者于2018/6/14 10:27:19编辑过]

--  作者:有点甜
--  发布时间:2018/6/14 10:37:00
--  

截图或者实例说明你的问题。

 

用一个变量,记录上传显示的主窗口。


--  作者:guosheng
--  发布时间:2018/6/14 11:25:00
--  
1、做了个刷新按钮
MainTable=Tables("公司基本信息表")
forms("欢迎窗口").open
DataTables("计划执行情况表").LoadFilter = "开始时间 =\'"& rq &"\'"
DataTables("计划执行情况表").Load
2、单击刷新按钮后出现的问题
点击刷新时,若用户已经打开了 某个主窗口A(含有经过筛选后的“计划执行情况表”的表控件);此时回到主窗口A,表控件的筛选功能失效;只有再点击一次进入主窗口A,表控件的筛选功能才会有效。

所以我就想,用户点击刷新的时候,找到目前的主窗口,关闭它,应该就不会出现2 的情况了吧。
该怎么定义一个变量,记录当前的主窗口名字啊?

--  作者:有点甜
--  发布时间:2018/6/14 11:28:00
--  

记录筛选条件,刷新后重新设置,如

 

Dim str As String = Tables("窗口表").filter

 

DataTables("计划执行情况表").LoadFilter = "开始时间 =\'"& rq &"\'"
DataTables("计划执行情况表").Load

 

Tables("窗口表").filter = str


--  作者:guosheng
--  发布时间:2018/6/14 12:04:00
--  
有多个主窗口对应的同一个主表的副本表,所以记录当前主窗口的表控件的筛选条件,不太可能吧。
估计得将用户打开的主窗口重新载入才能可以吧(或者把用户目前的主窗口关闭掉)。
[此贴子已经被作者于2018/6/14 12:08:30编辑过]

--  作者:有点甜
--  发布时间:2018/6/14 12:13:00
--  
以下是引用guosheng在2018/6/14 12:04:00的发言:
有多个主窗口对应的同一个主表的副本表,所以记录当前主窗口的表控件的筛选条件,不太可能吧。

 

循环每一个table记录

 

Dim dic As new Dictionary(Of String, String)
For Each t As Table In Tables
    If t.DataTable.name = "表A" Then
        dic.Add(t.name, t.filter)
    End If
Next

For Each key As String In dic.keys
    msgbox(key & " " & dic(key))
Next


--  作者:guosheng
--  发布时间:2018/6/14 13:12:00
--  
还得麻烦老师:输出的 dic(key)是当前表控件的筛选条件,但是key输出内容是主表的名字,而不是副本表(窗口名_表名)的名字。该怎么key显示真实的副本表的名字啊?
[此贴子已经被作者于2018/6/14 13:16:02编辑过]

--  作者:有点甜
--  发布时间:2018/6/14 14:37:00
--  
以下是引用guosheng在2018/6/14 13:12:00的发言:
还得麻烦老师:输出的 dic(key)是当前表控件的筛选条件,但是key输出内容是主表的名字,而不是副本表(窗口名_表名)的名字。该怎么key显示真实的副本表的名字啊?
[此贴子已经被作者于2018/6/14 13:16:02编辑过]

 

不,可,能。key就是对应表的名字,包括窗口表。

 

如果自己不会做,上传一个例子上来说明。


--  作者:guosheng
--  发布时间:2018/6/14 17:43:00
--  
老师的解决方案没问题。  能否只找到当前主窗口所在的表,执行filter的条件。  如果把所有符合条件的表都找到,都执行一遍filter,是不是效率不高啊?
--  作者:有点甜
--  发布时间:2018/6/14 17:50:00
--  
以下是引用guosheng在2018/6/14 17:43:00的发言:
老师的解决方案没问题。  能否只找到当前主窗口所在的表,执行filter的条件。  如果把所有符合条件的表都找到,都执行一遍filter,是不是效率不高啊?

 

这种处理没问题。

 

你datatable都重新load了,那么相关的table(副本表)都会受到影响的,不单是当前窗口table,所有显示的相关表都要重新设置filter

[此贴子已经被作者于2018/6/14 17:50:05编辑过]