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。

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

4

1 回答 1

0

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

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

第三,我发现不需要 @UpdateFormulaContext 行。这就是我认为QueryClose ...

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

而且我可以在视图中关闭应用程序而不会出现任何问题。

于 2013-08-16T03:51:30.337 回答