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 に 2 つの Date Timestamp エディットボックスがあり、2 つ目の datetime stamp(Permenent Fix target Date&Time) エディットボックスに上記のように validateExpression コードを記述しました。ここでは、永続的な修正のターゲットの日付と時刻が発行の日付と時刻 ( dEnd.timeDifference(dStart) > 0 ) よりも大きくなるように、検証が必要です。

*上記のコードは、発行日が 24/04/2012 11:16:51 AM で、恒久的な修正ターゲットの日付と時刻が 23/04/2012 11:16:51 AM であるようなシナリオで機能します。しかし、永続的な修正のターゲットの日付と時刻が 2012 年 5 月 4 日から 2012 年 4 月 12 日の間にある場合、失敗します。永続的な修正ターゲットの日付の送信された値は、2012-04-12T11:16:45+05:30 のように来ているため、日付と時刻の形式に問題があると思います。*

上記の問題を回避するために、送信された値の日時値をフォーマットする解決策はありますか。

xpages での検証の評価の順序についてもう 1 つ..検証エラー メッセージ コントロールとして、適切な順序でメッセージをランダムに表示しません。

あなたの肯定的な反応を探しています。

よろしく、 ヨゲシュ

4

2 に答える 2

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;
于 2012-04-25T15:50:51.097 に答える
0
Use NotesDateTime(start.getDateOnly), NotesDateTime(end.getDateOnly)

日付だけを取得できます。このようにして、簡単に処理できます。他の解決策は、一般的なjavascriptです。日付を年、月、日に分割します。この方法は良い方法ではありませんが、これも解決策です。

通常、セキュリティ上の理由から SSJS を使用します。データは機密扱いとなります。何か他の理由で、CSJS を使用してみてください。

于 2012-05-04T04:46:37.837 に答える