Oracle
 sql >> Database >  >> RDS >> Oracle

Confronto delle date utilizzando Dynamic Action su DatePicker Oracle Apex

Come menziona @ScottWe:stai cercando di applicare la logica PLSQL in HTML/javascript. La "Quando - Condizione" viene valutata in fase di esecuzione e quindi non è possibile utilizzare PLSQL lì. Tuttavia, l'aritmetica della data è un po' fastidiosa in javascript, quindi se non hai familiarità con essa, ecco un modo per eseguire il controllo (vale a dire, è la data inserita domani o meno).

Prendendo i miei indizi da questi:
Differenza di data in Javascript (ignorando l'ora)
JavaScript come ottenere la data di domani nel formato gg-mm-aa

Aggiungi questa funzione alla sezione javascript della pagina per variabili e funzioni globali:

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

Quindi nella condizione "Quando" dell'azione dinamica, usa un'espressione javascript con questo codice:

isTomorrow(this.triggeringElement)

Quindi le azioni vere corrispondenti si attiveranno solo quando la data è impostata su domani.