2015-04-23 51 views
0

我需要更改莲花注释对话框中嵌入视图的列的名称和公式。当对话框中的组合框值发生变化时,我需要更改此列名称和公式.i添加莲花脚本以更改组合框值更改的列名称和公式,并添加代码以重新打开该对话框。莲藕运行时设计更改

Dim w As New NotesUIWorkspace 
Dim view As NotesView 
Dim col As NotesViewColumn 
Set view = db.GetView("Test") 

For j= 0 To UBound(SboxColName) 
    Set col=view.Columns(j) 
    col.Title=SboxColName(j) 
    col.Formula=SboxColFormula(j) 
Next   

Call w.Viewrefresh() 

但视图列中的下一个开放没有更新,当我打开在设计视图和保存视图它只有更新。当我在设计师中打开此视图时,我可以看到该列在设计中已更新。 有什么办法让这个嵌入式视图列在运行时更新

+2

如果2个或更多的用户将运行代码同时同样的看法是什么? – 2015-04-23 07:28:15

+0

是的,我知道这是一个问题,当我们改变莲花笔记的设计元素。但我一直在想有没有任何解决方案,假设一个用户在一次更新设计 – Nijeesh

+0

您的用户是否有设计师访问数据库? – umeli

回答

0

在过去,我在服务器代理中使用此代码,工作正常。 我更改了列中的DateTime值,以着色行(复制列和更改公式)。 之后,我已发送命令重建数据库中的视图。

Set view = db.Getview(*viewName*) 

Set clm = view.Columns(3) 
Set Newclm = view.Copycolumn(clm, 5) 
Call view.Refresh() 
Newclm.Formula = {@If([} & Today & {] > @Date(DTContol); 255:0:0;-1 : -1 : -1 : -1 : -1 : -1)} 
Call view.Removecolumn(4) 

CommandText = {load updall } & db.Filepath & { -t } & view.Name & { -r} 
Call session.Sendconsolecommand(db.Server, CommandText) 

客户端:也许呼叫ws.Viewrefresh()将足以