我有两个对话框列表字段Cutt_Start
和Cutt_End
,这两个字段都有以下示例选项: 1
二月| 2
三月| 3
...
十二月| 12
现在,我想要发生的是,当您在Cutt_Start
和Cutt_End
上选择March时,它会提示错误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 :(得分:2)
如前所述,存储的字段值是管道的右侧值。但是:这些字段总是文本字段!!!!
要进行计算,您需要将文本转换为数字......
_start := @TextToNumber( Cutt_Start );
_end := @TextToNumber( Cutt_End );
_res := _end - @Modulo(_start; 12)
@If( !@IsError(_res) &_res != 1; @Failure( "your message" ); @Success)
这将进入Cutt_end-字段的字段验证。
如果你需要LotusScript(将它放在QuerySave或字段的OnChange-Event中,那么代码将是:
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
此代码不包含任何错误处理程序。
正如其他评论中所提到的:这肯定不是正确的方法。如果cut_end总是必须在一个月之后,那么只需将其更改为计算并写为值:
@If(Cutt_Start = ""; ""; @Text(@Modulo(@TextToNumber( Cutt_Start ); 12) + 1))
然后你不需要进行检查......
答案 1 :(得分:0)
管道字符右侧的数字是字段的值。管道左侧的名称是显示给用户的名称。
因此,如果您只是测试数字是连续的,并为12月到1月添加特殊情况(1来自12之后),那么您应该得到您正在寻找的结果。
请注意,数字值仍为文本格式,因此您需要先将其强制转换为数字
If Cutt_End - Cutt_Start <> 1 Then Msgbox "Error!"
那就是说,如果Cutt_End必须始终在Cutt_Start之后的一个月,那为什么要有那个字段呢?只需计算该字段并让用户只选择开始月份。
答案 2 :(得分:0)
请检查以下内容并将您的代码放入onchange事件中。对于web和notes客户端,onchange功能行为是不同的。