1

完全なカレンダーを使用して xpages アプリケーションを構築し、これまでのところカレンダーにデータを表示できました。ただし、送信されたフィールドのいずれかが空白のままになると、カレンダー ページが強制終了され、上記の例外エラーが返されます。送信されたフィールドに空白がない場合、カレンダーはうまく開きます。

フォームの検証を使用してすべてのフィールドが入力されていることを確認することでこの問題を解決できましたが、これによりユーザーが制限されるため、これを回避したいと考えています。

以下は、エラーを返すコードです。

try { 
  var calendarDate:NotesDateTime; 
  try{
    calDate:NotesDateTime = docEv.getItemValueDateTimeArray("MeetingDate").elementAt(0);//error coming from here when it is null
  }catch(e){
      print("Meeting date null error: " + e.toString());
      return calendarDate;
  }
  if(calDate != null){
      var today:NotesDateTime = session.createDateTime("Today");

      if (calDate != null && calDate.timeDifference(today) > 0) {
          try{
              var calDate:NotesDateTime = docEv.getItemValueDateTimeArray("MeetingDate").elementAt(0);
          } catch(e) {
              print("calendar error: " + e.toString());
          }
      }
   }
  }catch(e){
      print("Calendar error: " + e.toString());
      return calendarDate;
  }

また、try/catch を使用してページの強制終了を停止しようとしましたが、それもうまくいかないようです。

var calendarDate:NotesDateTime;が null であるかどうか、および null の場合は何もしないことを確認するために使用できるロジックはありますか?

どうもありがとう。

4

2 に答える 2

3

ドキュメントに、少なくとも 1 つの要素を持つアイテム「MeetingDate」があるかどうかをテストします。

var calDate:NotesDateTime;
if (!docEv.getItemValue("MeetingDate").isEmpty()) {
    calDate = docEv.getItemValueDateTimeArray("MeetingDate").elementAt(0);
    ...
}
于 2016-10-25T14:16:49.123 に答える
0

私は XPages を使用しませんが、elementAt メソッドを実行しようとするとエラーが発生するため、次のような方法で機能すると考えていました。

if (docEv.getItemValueDateTimeArray("MeetingDate") == null) {
   calDate:NotesDateTime = null;
} else {
   calDate:NotesDateTime = docEv.getItemValueDateTimeArray("MeetingDate").elementAt(0);
}
于 2016-10-25T14:12:01.763 に答える