Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comparer des dates à l'aide de l'action dynamique sur DatePicker Oracle Apex

Comme @ScottWe le mentionne :vous essayez d'appliquer la logique PLSQL en HTML/javascript. Le 'Quand - Condition' est évalué au moment de l'exécution et vous ne pouvez donc pas y utiliser PLSQL. L'arithmétique de la date est un peu ennuyeuse en javascript, donc si vous n'êtes pas familier avec cela, voici un moyen d'effectuer votre vérification (qui est, est la date saisie demain ou non).

En prenant mes indices à partir de ceux-ci :
Différence de date en Javascript (ignorant l'heure de la journée)
JavaScript comment obtenir la date de demain au format jj-mm-aa

Ajoutez cette fonction à la section javascript de la page pour les variables globales et les fonctions :

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;
}

Ensuite, dans votre condition d'action dynamique "Quand", utilisez une expression javascript avec ce code :

isTomorrow(this.triggeringElement)

Ensuite, les actions vraies correspondantes ne se déclencheront que lorsque la date est fixée à demain.