Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Vergleichen von Datumsangaben mit Dynamic Action auf DatePicker Oracle Apex

Wie @ScottWe erwähnt:Sie versuchen, PLSQL-Logik in HTML/Javascript anzuwenden. Die 'When - Condition' wird zur Laufzeit ausgewertet und daher können Sie dort kein PLSQL verwenden. Die Datumsarithmetik ist in Javascript jedoch etwas nervig. Wenn Sie damit nicht vertraut sind, können Sie Ihre Überprüfung hier durchführen (das heißt, ist das eingegebene Datum morgen oder nicht).

Nehmen Sie meine Hinweise von diesen:
Datumsunterschied in Javascript (Tageszeit ignorieren)
JavaScript, wie man das morgige Datum im Format TT-MM-JJ erhält

Fügen Sie diese Funktion zum Javascript-Abschnitt der Seite für globale Variablen und Funktionen hinzu:

function isTomorrow(pDateItem){  
  function getTomorrow(){ 
    var tomorrow = new Date();
    tomorrow.setDate(tomorrow.getDate() + 1);
    return tomorrow;
  };

  function cutTime(pDate){
    return new Date(pDate.getFullYear(), pDate.getMonth(), pDate.getDate());
  };

  // check if pDateItem leads to a selection
  // check if it is a datepicker
  // check if a date has been selected
  if ( $(pDateItem).length 
       && $(pDateItem).data("datepicker")
       && $(pDateItem).datepicker("getDate") !== null 
     ) 
  {        
    var tomorrow = getTomorrow();
    var check = $(pDateItem).datepicker("getDate");
    var one = cutTime(check);
    var two = cutTime(tomorrow);

    return one.getDate() === two.getDate();
  };
  return false;
}

Verwenden Sie dann in Ihrer Bedingung „Wann“ für die dynamische Aktion einen Javascript-Ausdruck mit diesem Code:

isTomorrow(this.triggeringElement)

Dann werden die entsprechenden True Actions nur ausgelöst, wenn das Datum auf morgen eingestellt ist.