2009-06-09 53 views
0

我擁有Lotus Notes應用程序,僅在主郵件中部署爲修改(新窗體,視圖和向其中一個「標準」視圖添加按鈕)模板(R7)。Lotus Notes如何使用公式語言從另一個表單獲取計算值

所有這些「新」形式和視圖依次從我的主應用程序模板繼承。

現在,要使這些表單正常工作,它必須有一個與客戶(不是最終用戶,而是組織)不同的字段。

我不想破壞我們模板的繼承,所以我們可以通過發送一個新模板來輕鬆更新應用程序。所以,我不能要求客戶端管理員打破這種特殊形式的繼承,因爲它會停止所有更新(或者他們必須手動完成)。

因此,假設我有MainAppForm,它有一個計算字段ClientCustomData。我想要另一種形式,它只有一個「默認」字段ClientCustomData。我可以打破第二種形式的繼承關係,因爲它沒有可能會改變的真正的設計元素,然後客戶端可以將這個默認值修改爲他們所需要的任何值,而不用擔心它會被覆蓋。

問題是 - 如何從MainAppForm我可以讀取其他形式的值?

或者 - 是否有一種方法可以將2個數據元素僅存儲在郵件模板(我不知道,共享文件或其他東西)中,所以每個用戶都可以使用它,並且MainAppForm可以獲取它們,而不需要從我們的模板中移除MainAppForm的繼承依賴項。

我甚至可以設想一個類庫,只是爲了返回這個函數(我不知道爲什麼這種方法會讓我感到氣味)。

任何最佳實踐或建議?

回答

2

我不知道如果我理解正確的話你querstion,但它聽起來像是你想有一個更大的形式,每個客戶端配置的一小部分。如果是這種情況,我認爲計算子表單可以做到這一點。

請考慮以下情形:您的應用程序隨附的子表單ClientCustomData僅包含客戶端設置的合理默認值。表格MainAppForm包括這個作爲計算子表單。然後,本地管理員可以禁用子表單上的繼承並更改自定義數據,而不影響MainAppForm上的繼承。

明顯的缺點是,一旦繼承被禁用,您不能自動更新ClientCustomData子窗體;儘可能保持這個子窗體小。如果您發現需要更多的客戶端自定義值,則可以始終以相同的方式添加其他子窗體。

1

首先澄清:在Lotus Notes中,您沒有從其他表單讀取的表單。表單只是UI對象。但是,您確實有藉助Forms創建的後端和前端文檔。

當您基於表單(例如,新電子郵件)創建新文檔時,您正在創建尚未保存的前端文檔。該文檔可以訪問其自身的其他部分,或者可以訪問已保存的任何後端文檔。

如果我正確地關注了您,您需要根據MainAppForm將每個客戶端/客戶的不同數據導入到文檔中。有幾種方法可以做到這一點。我的建議是使用數據庫配置文件,它們是特殊的文檔,可以通過Notes公式語言或LotusScript從數據庫中的任何位置輕鬆訪問。當然,您無法通過模板將這些文檔中的數據推送出去,但是如果您使用數據庫配置文件來存儲數據庫設置,則客戶端管理員可以設置一次選項,並且在模板更改時不會更改它們。

查看@SetProfileField和@GetProfileField函數。

+0

我是蓮花新手,仍然習慣於它的術語,所以也許我沒有說清楚。你能詳細闡述一下關於配置文件 - 看起來像是每個數據庫。我推送的所有更改都是通過郵件模板(R7),因此以用戶的郵件數據庫結尾。管理員如何將這些數據推送給所有用戶?數據是在他們的數據庫中存在任何客戶文檔之前所需要的,實際上,我的表單將負責根據這些數據創建/修改它。 – 2009-06-09 16:55:51

+0

我對範圍並不清楚,但我明白你的觀點。我發現關心的不是每個客戶端一個數據庫,而是每個客戶端一個模板,以及基於這些模板的任意數量的數據庫。是的,因爲這個檔案文件不是一個好選擇 – 2009-06-09 17:52:32

1

要回答我的問題(我仍然不知道,如果我是正確的思維方式的注意事項方面,但看起來很有希望):

我找到了「共享領域」。所以,我創建了2個帶有計算值的字段(我想要傳遞的值),並讓我的MainAppForm使用它們。安裝後,管理員將更改這些值並將其標記爲不使用模板進行刷新。

我會尊重Notes專家提供的任何優點和缺點。

感謝

+0

共享字段是一個很好的選擇。您也可以使用子窗體並將該子窗體放入MainAppForm中。 您也可以使用LotusScript腳本庫,但這涉及更多一點。 – 2009-06-09 17:54:19

相關問題