2012-04-24 27 views
0
if((!submittedBy('button1')) && (!submittedBy('button2') 
{ 
    return true; 
} 
else 
{ 
    var IsL2UserTxt = sessionScope.get("IsL2User"); 

    if(IsL2UserTxt == "Yes") 
    { 
     //Bring the issue Date&Time 
     var start = getComponent("label_IssueDateDt").getValue(); 

     //Bring the Permenent Fix Target Date&Time 
     var end = this.getSubmittedValue(); 
     var dStart:NotesDateTime = session.createDateTime(start); 
     var dEnd:NotesDateTime = session.createDateTime(end); 

     if (!start) 
     { 
      return false; 
     } 
     else if (!end) 
     { 
      return false; 
     } 
     else 
     { 
      print("Start: "+start+", End: "+end+",DStart: "+dStart+", DEnd: "+dEnd+", Time Diff: "+dEnd.timeDifference(dStart)); 
      return (dEnd.timeDifference(dStart) > 0) 
     } 
    } 
    else 
    { 
     return true; 
    } 
} 

的顺序我在我的XPage两个Date时间戳editboxes,我写如上所示在我的第二日期时间戳(Permenent修复tartget日期&时间)编辑框一个validateExpression代码。这里需要验证以确定永久修复目标日期&时间应该大于发布日期&时间(dEnd.timeDifference(dStart)> 0)。的XPages(日期时间戳)的验证和评估

* 上面的代码工作在这种情况下,如果发行日期是24/04/2012上午11点16分51秒和permaenent修复目标日期&时间23/04/2012上午11点16分51秒。但是,如果我的永久修复程序失败,则失败目标日期&时间介于05/04/2012至12/04/2012之间。我认为日期时间格式存在问题,因为永久修复程序的提交值目标日期即将到来,例如2012-04-12T11:16:45 + 05:30。 *

那么是否有任何解决方案来格式化提交值的日期时间值,以避免上述问题。

有关xpages中验证评估顺序的一件事情。作为验证错误消息控件随机显示消息的顺序不正确。

寻找您的积极回应。

问候, 约杰什

回答

0
var doValidate = (submittedBy('button1') || submittedBy('button2')) && (sessionScope.get("IsL2User") == "Yes"); 
if (!doValidate) return true; 
var dtIssue = getComponent("label_IssueDateDt").getSubmittedValue(); 
var dtPermFix = this.getSubmittedValue(); 
if ((dtIssue == null) || (dtPermFix == null)) return false; 
var difference = I18n.parseDateXMI(dtPermFix) - I18n.parseDateXMI(dtIssue); 
return difference > 0; 
+0

由于getsubmitted值返回文本,问题已解决。我只是将该文本值转换为日期,如下所示:var endoldFixDateDt = getComponent(“Label_immediateFixDateDt”)。getSubmittedValue(); var endFixDateDt = @TextToTime(endoldFixDateDt); var dEndFixDateDt:NotesDateTime = session.createDateTime(endFixDateDt);感谢您的回复,我试了一下,它也在工作。问候,Yogesh – YOGI 2012-04-27 10:27:54

0
Use NotesDateTime(start.getDateOnly), NotesDateTime(end.getDateOnly) 

我们可以独自一人的日期。通过这种方式,我们可以轻松处理。 其他解决方案是,常见的JavaScript。将日期分为年,月和日。 通过这种方式不是一个更好的,但这也是解决方案。

一般来说,我们使用SSJS是出于安全原因。数据将是保密的。由于其他原因,尝试使用CSJS,你会感觉很酷。