sql >> Base de Datos >  >> RDS >> Oracle

Comparación de fechas mediante Dynamic Action en DatePicker Oracle Apex

Como menciona @ScottWe:está intentando aplicar la lógica PLSQL en HTML/javascript. La 'Condición cuando' se evalúa en tiempo de ejecución y, por lo tanto, no puede usar PLSQL allí. (es decir, si la fecha ingresada es mañana o no).

Tomando mis pistas de estos:
Diferencia de fecha en Javascript (ignorando la hora del día)
JavaScript cómo obtener la fecha de mañana en formato dd-mm-aa

Agregue esta función a la sección de javascript de la página para funciones y variables globales:

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

Luego, en su condición de acción dinámica 'Cuándo', use una expresión de javascript con este código:

isTomorrow(this.triggeringElement)

Luego, las acciones verdaderas correspondientes solo se activarán cuando la fecha se establezca para mañana.