2013-02-26 71 views
0

我的表單包含一個名爲:txt_number的數字字段,它是計算出來的,它是兩個可編輯數字字段的和:txt_no1txt_no2Lotus Notes - 實際元素和列表之前的元素之間的差異

所有txt_number字段被存儲在視圖(以能夠之前得到的元件),以這種方式:

@Unique (@DbLookup("" : "NoCache" ; @DbName ; "vwTest" ; field1+field2 ; 2)); 

「vwTest」有2列:第一被分類(FIELD1 + FIELD2 ),第二個有txt_number作爲其默認列值。

因此,我的主題問題列表爲"vwTest",其中包含第二列中的所有txt_number值。

假設保存的第一個文檔將有txt_number = 5。當一個新的文檔。被創建,並且txt_no1和txt_no2被計算,我們得到txt_number = 10

的形式有一個名爲txt_diff,我想獲得最後txt_number與實際之間的差異一個計算字段。(10 - 5 = 5

所以,如果那麼這將是另一種新形式txt_number = 50 =>txt_diff (在這個新創建的文檔)應該是50-10 = 40.

vwTest:field1 + field2 | txt_number

  • 列表項

       | 1 (=> on this doc, `txt_diff = 1`) 
           | 10 (=> on this doc, `txt_diff = 9`) 
           | 23 (=> on this doc, `txt_diff = 13`) 
        ....................... 
    

請,我需要你的幫助。謝謝!

+1

你的問題是什麼? – 2013-02-26 14:08:42

+1

我覺得這很混亂。你說的是兩個不同的東西:「txt_number ...是計算出來的,它是兩個可編輯的數字字段的總和」和「從視圖中取出的txt_number字段si,用這種方式:」。它顯然不能同時存在!更混亂:field1和field2是什麼?你在@DbLookup中使用它們,但是在你的問題的其他地方你不會提及它們。 (順便說一句:對於大多數Notes開發人員來說,前綴「txt_」用於文本字段,而不是數字字段。這也使您的問題變得混亂。) – 2013-02-26 17:52:11

+0

我編輯了我的問題,希望能夠清楚。 field1和field2都是窗體上的兩個可編輯字段。 – 2013-02-27 06:05:10

回答

0

它仍然有些混亂,但如果我理解你,你需要使用該視圖作爲參考來計算txt_diff。

在這種情況下,可以在事件QueryRecalc或QuerySave中放置一些代碼來進行計算。這是一個例子代碼:

(我被記憶的編碼,因此它可以有一些錯誤)

dim o_view as NotesView 
dim o_nav as NotesViewNavigator 
dim o_doc as NotesViewEntry 

set o_view = o_current_db.GetView("view_categorized_by_field1_field2") 
set o_nav = o_view.CreateViewNavFromCategory(field1+field2) 
set o_doc = o_nav.GetlastDocument '<== THIS IS YOUR DOCUMENT TO CALCULATE txt_diff 

'Do something more 

但是,除非你需要txt_diff實時,你可以創建一個代理做每X分鐘計算一次。這兩種解決方案都取決於您的應用需要什麼。

我希望這會有所幫助。