sql >> Databasteknik >  >> RDS >> Oracle

Jämföra datum med Dynamic Action på DatePicker Oracle Apex

Som @ScottWe nämner:du försöker tillämpa PLSQL-logik i HTML/javascript. "When - Condition" utvärderas vid körning och därför kan du inte använda PLSQL där. Datumräkningen är dock lite irriterande i javascript, så om du inte är bekant med det, här är ett sätt att utföra din kontroll (det vill säga är det angivna datumet imorgon eller inte).

Jag tar mina ledtrådar från dessa:
Datumskillnad i Javascript (ignorerar tid på dygnet)
JavaScript hur man får morgondagens datum i formatet dd-mm-åå

Lägg till den här funktionen i sidans javascript-sektion för globala variabler och funktioner:

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

Använd sedan ett javascript-uttryck med den här koden:

, i ditt villkor för dynamisk åtgärd "När".
isTomorrow(this.triggeringElement)

Då aktiveras motsvarande True Actions endast när datumet är satt till imorgon.




  1. Oracle Mutating Trigger

  2. oci_bind_by_name och to_date PHP/OCI/Oracle

  3. PDO FETCH_CLASS med sammanfogade tabeller

  4. Filtrera på ett alias i mysql