考慮下面的例子。 preferencesDoc作爲無效傳入。它在這個函數中的賦值被忽略,並且它在該集合之後什麼都沒有。 tmpDoc設置正常。這兩項任務是相同的,所以這不是一個觀點問題。 preferencesDoc的賦值被阻塞,顯然是因爲它是一個參數。沒有錯誤,並且按鍵查找工作正常,這通過成功分配tmpDoc來證明。如何在LotusScript函數中設置文檔參數?
Function test(preferencesDoc As NotesDocument)
If preferencesDoc Is Nothing then
Set preferencesDoc=docLookupView.getDocumentByKey("GENERAL_PREFERENCES", True)
End if
Dim tmpDoc As NotesDocument
Set tmpDoc=docLookupView.getDocumentByKey("GENERAL_PREFERENCES", True)
End Function
有人可以解釋這裏發生了什麼,以及如何去解決它?
澄清。
很高興看到人們在創意中鑿空。但是,您必須意識到這個功能只是爲了說明我的問題。這是一個簡單的方法,可以幫助我溝通問題,而不是我真實代碼的一部分。請繼續留在問題上。
同樣,如果preferencesDoc作爲任何內容傳入,則函數中的「修復」分配完全被忽略。 Tode似乎在某種程度上。當我傳入preferenceDoc時,我可以將其重新分配給不同的文檔。
回答
call test(Nothing) // will not work
---
Dim doc as NotesDocument
call test(doc) // will work
從Tode重要聲明:如果您通過 「無」 爲參數,那麼它會留下什麼。如果你傳遞一個未初始化的NotesDocument,那麼它將被初始化。
託德和克努特都提到了這一點,我認爲裏奇暗示着同樣的事情。謝謝。我相信克努特是第一個,所以我會信任他。
我一直在Notes中編碼的所有年份,這是我第一次遇到這個問題。每天學習一些東西。 :)
是的,但只要你通過「沒有」,你不能再賦予任何其他值給該變量,它會停留「沒有」...... –
我明白,傳遞的參數是一個NotesDocument,它尚未設置,這就是爲什麼「Nothing」在我的例子 –
克努特,謝謝。一般首選項是一個單一的文件,這將是一個替代,但我有我的真實功能簽名其他文檔參數,所以我真的需要弄清楚參數正在發生什麼。 – jacekn