2016-12-01 68 views
1

在註釋中,我有一個表單(訂單),其中具有創建新表單(訂單行)的按鈕「Create new OrderLine」。訂單文件具有嵌入式設計視圖,可以獲取訂單文件。每個訂單行文檔都包含一個帶有訂單文檔ID的隱藏字段,以便您知道哪個訂單行與哪個訂單相關聯。對於Orderline也是如此,它有價格的嵌入式視圖。IBM Notes可編輯字段從父表單獲取數據

在訂單窗體中,我有兩個可編輯的文本字段:AdministrationNumber和DebtorNumber。

在OrderlineForm我只得到了debtorNumber

價格我叫費可編輯數字字段。

所以我這樣做的各種方式:

在形式的價格我已經把這個LotusScript代碼的PostOpen的:

If((Source.FieldGetText("AdministrationNumber") = "1") And (Source.FieldGetText("DebtorNumber") = "2")) Then 
    Call Source.FieldSetText("FeePercentage", "4.235") 
    Call Source.Refresh() 
End If 

但沒有奏效。

費的默認值我也試過這個公式代碼:

@If((AdministrationNumber="1") & (DebtorNumber= "2"); 
    "4,235"; 
     "0" 
) 

但也沒有任何用處..

是否有可能爲可編輯的字段來打開基於窗體時設置條件語句與父表單中的數據?

編輯

2種方式解決:

1.

當點擊 「添加新的訂單行」 按鈕whic是在訂貨表格中,我會調用一個函數在scriptlibrary,在這個函數中,我得到debnr和admnr的值,然後做條件語句。如果爲true,那麼設置FeePercentage

2.

在orderlline上添加了一個名爲admnr的新隱藏字段,它在單擊New Orderline按鈕時獲取administratorNr字段數據。該字段通過腳本庫中的函數進行設置。

在價格PostOpen的

最終子窗體工作的:與後端類而不是

Dim doc As NotesDocument 
Set doc = Source.Document 
If doc.admnra(0) = "1" And doc.debnr(0) = "2" Then 
    doc.FeePercentage = 4.235 
End If 

回答

2

工作:

Dim doc as NotesDocument 
Set doc = Source.Document 
If doc.AdministrationNumber(0) = "1" And doc.DebtorNumber(0) = "2" Then 
    doc.FeePercentage = 4.235 
End If 

它讓您輕鬆訪問到文檔中的所有領域。

+0

如何做,然後..因爲在訂單上,我有一個按鈕,打開價格orderline和價格子窗體。當用戶打開價格表格時,該費用也必須可見。 – YdB

+1

你是在談論形式「訂單」或關於不同形式的子形式嗎? –

+0

對不起,其實它是這樣的,「訂單」形式有一個嵌入式視圖,帶有命令行,還有一個叫做「添加新命令行」的按鈕,如果用戶點擊按鈕「添加新命令行」,則打開一個命令行文檔。在這種形式中,有一個名爲「價格」的子表單,其中有一個名爲「feePercentage」的字段,4.235必須在這裏是admnr = 1和debtornumer = 2(它來自訂單) – YdB

2

你說的「子表單」在Notes設計中有特殊含義,但它聽起來像是你所擁有的是OrderLine表單使用的稱爲「Order」的表單,稱爲「OrderLine」的表單和稱爲「Prices」的子表單?

在這種情況下,請確保OrderLine的「公式從選定文檔繼承值」表單屬性被選中。

如果該按鈕位於父窗體上(而不是查看訂單窗體嵌入),那麼您的默認公式應該這樣做。

P.S.您可能想要將默認公式更改爲

@If(
    (AdministrationNumber="1") & (DebtorNumber= "2"); 4235; 
    0 
) 

以便它返回一個數字而不是看起來像數字的文本。

+1

除了打開繼承,他還應該隱藏他的OrderLine表單上的AdministrationNumber和DebtorNumber字段。 –

+1

嗯......它沒有它,所以除非它有其他原因有用... ...?儘管OrderLine文檔可能是響應,但他應該計算顯示的AdministrationNumber和DebtorNumber字段,每個字段的公式爲@GetDocField(@Text($ REF); @ ThisName)',並且這將允許向後兼容的現有訂單行文檔以及更新(當OrderLine文檔被刷新時)如果訂單文檔的AdministrationNumber和DebtorNumber字段在OrderLine文檔第一次保存後發生更改。不過,這會讓他的表格稍微慢一些。 – JSmart523

+1

我相信你是對的。從很久很久以前,我都相信只有在子文檔的表單上有一個同名的實際字段時,才能繼承。我確信不止有幾次我被告知這不是真的 - 但很難忽視那些早期的第一印象。 –