2013-06-30 68 views
0

我有兩個dialoglist領域Cutt_StartCutt_End,兩個領域的有例如選擇:一月| 1
二月| 2
March | 3
...
月| 12的Lotus Notes:比較兩個字段

現在,我想要發生的是,當您在Cutt_Start上選擇1月並在Cutt_End上選擇3月時,它應該會提示錯誤Month2 should be next to Month1。我試過這段代碼,但沒有任何反應。

If Cutt_Start = "January" & Cutt_End <> "February" Then 
    Msgbox "Month2 should be next to Month1" 
Else 
    Msgbox "January to February selected" 
End If 

你能幫我嗎?

+0

可否請您添加完整的腳本代碼?在哪種情況下你是否執行腳本?你如何初始化變量Cutt_Start和Cutt_End?或者你想直接從字段中讀取? –

+0

其實,這就是所有的腳本,我把它放在'Cutt_End'字段的'Exiting'事件中。 – drayl

+1

爲什麼不** **您**爲您的用戶計算下一個月的Cutt_Start而不是選擇它們?順便說一句,你上面的代碼是LotusScript,但不會工作,因爲你必須訪問字段每個NotesUIWorkspace ... NotesUIDocument ...文檔。但是,像Tode所建議的那樣,編寫一個公式並將其放入「輸入驗證」會容易得多。 –

回答

0

到管字符的右側的數字是字段的值。管道左側的名稱是顯示給用戶的名稱。

所以,如果你只是測試這些數字是連續的,和十二月添加一個特殊的情況下,以月(1說到12後),那麼你應該得到你正在尋找的結果。

注意,數值仍是文本格式,所以你需要將它轉換爲數值第一

If Cutt_End - Cutt_Start <> 1 Then Msgbox "Error!" 

這就是說,如果Cutt_End必須始終作爲1個月後Cutt_Start,那麼爲什麼有該領域呢?只需計算該字段並讓用戶選擇開始月份即可。

+0

我已經做了,但仍然沒有得到正確的輸出。就像它沒有讀取條件一樣,只是動作,只會提示msgbox。 – drayl

+0

你的例子是LotusScript,但你不能僅僅使用他們的字段名來訪問字段......這隻有在公式 –

2

如前所述,存儲的字段值是管道右側的值。但:這些領域總是文本字段!

做一個計算,您需要將文本轉換爲數字...

_start := @TextToNumber(Cutt_Start); 
_end := @TextToNumber(Cutt_End); 
_res := _end - @Modulo(_start; 12) 
@If([email protected](_res) &_res != 1; @Failure("your message"); @Success) 

這進入Cutt_end-字段的字段驗證。

如果需要的LotusScript(有它在QuerySave的或現場的的OnChange-事件,那麼代碼將是:

Option declare 
Dim ws as New NotosUiWorkspace 
Dim doc as NotesDocument 
Set doc = ws.CurrentDocument.Document 
If Cint(doc.Cutt_End) - CInt(doc.Cutt_Start) <> 1 then 
    messagebox "your Message" 
End if 

此代碼不包含任何errror處理器

。正如在其他意見中提到:這肯定是不這樣做的正確方法如果cut_end總是要在一個月後,然後只需將其更改爲計算並寫成值:

@If(Cutt_Start = ""; ""; @Text(@Modulo(@TextToNumber(Cutt_Start); 12) + 1)) 

然後您不需要進行檢查...

+0

中才可能實際上我已經完成了轉換的事情,我也試過你的代碼並將它放在字段驗證中,但仍然,沒有什麼事情發生。 – drayl

+0

只有在保存文檔或按F9後纔會看到錯誤信息。或者,您可以在字段Cutt_End上設置屬性「關鍵字更改時刷新字段」。然後在每次更改值後執行驗證公式。 –

+2

如果你想實現從12月到1月的「跳躍」,那麼寫第3行:'_res:= _end - @Modulo(_start; 12);' –

0

請檢查以下內容並將您的代碼放入onchange事件中。對於Web和Notes客戶端,onchange函數的行爲是不同的。

enter image description here

+0

對於對話框這個選項是沒有必要的。在字段屬性 –

+0

的第二個選項卡上啓用「值更改後刷新字段」就足夠了我不知道這是正確的方式。嘗試在輸入轉換事件中編寫代碼。希望它能工作... – Ramkumar