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

时间:2013-03-11 18:31:30

标签: lotus-notes lotus-formula

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

以下是该方案: 我有一个带有两个框架的框架集:'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 :(得分:0)

首先,我建议确保您的视图框始终称为“NotesView”。如果你这样做,你的兼容性问题就会少得多。

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

第三,我发现不需要@UpdateFormulaContext行。这就是我在ViewClose中所拥有的......

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

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