首页 文章

@SetViewInfo - 清除过滤器时出现问题

提问于
浏览
1

我有一个让我难过的问题 . 我一直在寻找解决方案,但尚未找到合适的解决方案 . 我看到的解决方案引入了其他问题 .

这是场景:我有一个带有两个框架的框架集:'Navigator'和'Main' . 在“导航器”框架中,我显示一个名为“导航器”的表单 . 它包含一个轮廓,用于显示菜单 . 在“主”框中,我显示用户在导航器中选择的视图 . 所以这是一个非常传统的Notes客户端应用程序 .

我现在想在视图的顶部添加一个复选框(在操作栏中),允许用户按照他/她自己的名称过滤视图 . 我使用@SetViewInfo,这一切都很完美 .

问题是用户切换视图的时间 . 切换到不同视图时@SetViewInfo过滤器保持活动状态,因此经过一些搜索我发现了一些解决方案:

http://www-01.ibm.com/support/docview.wss?uid=swg21204481中IBM建议将以下代码放在QuerySave事件中:

@SetViewInfo([SetViewFilter]; temp ; 0 ;1)

当我切换视图或关闭视图时,我收到错误消息“无法执行指定的命令” .

http://www-10.lotus.com/ldd/bpmpblog.nsf/dx/using-setviewinfo-in-a-notes-client-application-to-create-a-user-specific-view中,Andre Guirard建议将以下代码放在QuerySave事件中:

@SetTargetFrame("frameName");
@UpdateFormulaContext;
@Command([OpenView]; @Subset(@ViewTitle; -1));
@SetViewInfo([SetViewFilter]; ""; "columnName"; 1)

我修改它以匹配我的框架名称和我视图中第一列的编程名称:

@SetTargetFrame("Main");
@UpdateFormulaContext;
@Command([OpenView]; @Subset(@ViewTitle; -1));
@SetViewInfo([SetViewFilter]; ""; "Adjuster"; 1)

在视图之间切换时,这非常有效 . 但是当我在这个特定的过滤视图中关闭应用程序时,应用程序会自动重新打开 . 无论在关闭视图时是否启用过滤器,都会发生这种情况 .

但是,当视图重新打开时,框架集不会重新加载,它只是左侧内置视图导航器的视图 . 我终于通过(在内置视图导航器中)选择另一个我过滤数据的视图 . 这解决了一段时间的问题,但随后它再次启动,并且过滤后的视图在导航器中处于活动状态 .

显然,正是OpenView命令导致了这一点,但如果我只删除该行,则会再次出现“无法执行指定的命令”错误 .

有什么建议/指点吗?我正在使用在Windows 7 Professional上运行的Notes 8.5.3 .

这个问题也可以在Notes developerWorks的IBM developerWorks论坛中找到:http://www-10.lotus.com/ldd/nd85forum.nsf/DateAllThreadedWeb/08c73910571306c485257b2b0061ef91

1 回答

  • 0

    首先,我建议确保您的视图框始终称为“NotesView” . 如果这样做,您将遇到更少的兼容性问题 .

    其次,我假设当你说你把它放在QuerySave事件中时你真的是指QueryClose事件?视图没有QuerySave事件 .

    第三,我发现不需要@UpdateFormulaContext行 . 这就是我在ViewClose中的看法......

    @SetTargetFrame("NotesView");
    @Command([OpenView]; @Subset(@ViewTitle; -1));
    @SetViewInfo([SetViewFilter]; ""; "<programmaticColumnName>"; 1)
    

    我可以在视图中关闭应用程序,没有任何问题 .

相关问题