2013-01-24 232 views
1

我正在处理Lotusscript,在$ Inbox上放置一个操作菜单(从而从该设计派生任何文件夹)。这个操作菜单有几个项目,选择“隐藏动作,如果公式为真”。所有这些背后的逻辑完美地工作,但是现在我需要重新评估这些公式,如果用户在文件夹中执行某些操作(例如:如果由于设置了特定标志而导致操作被隐藏,并且该标志是改变,然后我想重新评估公式,以便现在显示该操作)。我似乎无法找到任何方式来重新加载文件夹或重新评估这些公式。有谁知道一种方法来做到这一点?刷新Lotus Notes文件夹

回答

2

对于NotesUIDocument有一个RefreshHideFormulas方法,但不适用于视图。您可以可能能够调用NotesUIWorkspace的ReloadWindow()方法,所以值得一试。

作为替代,触发调用@Command RefreshHideFormulas也可以为你工作的代理:

下面是一些代码(从http://ideajam.net/ideajam/p/ij.nsf/0/3BBA7E25A972ABD88625759600445A50?OpenDocument借用)

1)创建@Formula代理称为“RefreshActions ”代理列表触发用下面的代码:

@SetTargetFrame("YourFrame"); 
@UpdateFormulaContext; 
@Command([RefreshHideFormulas]); 

2)在您的LotusScript中,要插入一个‘刷新框架’的号召,补充一点:

Dim agent As NotesAgent 
Set agent = db.Getagent("RefreshActions") 
Call agent.Run() 
+0

它看起来应该可以工作,但目前我所得到的只是Lotus提供的非常有用的错误消息之一:“@Function在此上下文中无效”。 – Adrian

+0

确保代理已设置为“运行一次”(可使用@Commands) –

+0

谢谢。我会在星期一尝试一下,让你知道。 – Adrian

0

您可以在视图属性[i]选项卡中使用属性“评估每个文档更改的操作”。文档的每个选择(单击,箭头)都会触发重新评估操作的隐藏时间。也许它会在通过一些行动刷新视图之后起作用。