2013-03-11 35 views
1

我有一個問題讓我難住。 我一直在尋找解決方案,但尚未找到工作。我看到的解決方案引入了其他問題。@SetViewInfo - 清除過濾器時出現問題

這裏是場景: 我有一個框架集有兩個框架:'導航'和'主'。 在「導航器」框架中,我顯示一個名爲「導航器」的窗體。它包含一個大綱,以顯示一個菜單。 在「主」框架中,我顯示用戶在導航器中選擇的視圖。 所以這是一個非常傳統的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安德烈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命令造成這種情況,但是如果我只刪除那一行,就會再次出現「Can not execute the specified command」錯誤。

任何建議/指針?我正在使用Windows 7 Professional上運行的Notes 8.5.3。

這個問題也可以在IBM developerWorks論壇Notes 8.5的發現: http://www-10.lotus.com/ldd/nd85forum.nsf/DateAllThreadedWeb/08c73910571306c485257b2b0061ef91

回答

0

第一件事,我會建議,以確保您的視圖幀總是被稱爲「爲NotesView」。如果你這樣做,你的兼容性問題會少得多。

其次,我認爲當你說你把它放在QuerySave事件中你真的指的是QueryClose事件?視圖沒有QuerySave事件。

第三,我發現@UpdateFormulaContext行是不需要的。這是我在我看來QueryClose ...

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

而且我可以關閉應用程序,而在視圖中沒有任何問題。