sql >> Databasteknik >  >> RDS >> Oracle

Oracle Apex:steg för steg tillvägagångssätt för att skapa alternativknappar i interaktiv rapport

Du kan antingen använda en kolumnlänk för att välja posten och navigera till en annan sida, eller en alternativknapp och en sidknapp/länk för att göra det. Jag ska demonstrera båda med hjälp av en enkel rapport på DEPT-tabellen.

Metod 1:alternativknapp

För alternativknappen kan vi lägga till ytterligare en kolumn i rapporten med apex_item.radiogroup funktion för att skapa en alternativknapp vars värde är DEPTNO:

Som standard kommer HTML för radiogruppen att escapes av säkerhetsskäl, vilket inte är vad du vill men illustrerar vad den gör ganska bra:

Vi kan fixa det genom att ändra kolumnegenskapen till "Standardrapportkolumn":

Nu ser vi:

Om du klickar på alternativknappen på valfri rad markeras den och avmarkeras knapparna på andra rader.

För att navigera till en annan sida med den valda raden behöver vi en knapp för att skicka in sidan med en speciell begäran:

När du klickar på den kommer den knappen att skicka sidan med värdet "SELECT" (det knappnamn jag valde). Så vi kan skriva en process för att skicka in sidan som ska aktiveras när begäran är "SELECT", ta reda på vilken alternativknapp som har valts (om någon) och spara den valda DEPTNO till ett dolt objekt som heter säg P34_DEPTNO. Vi tar reda på vilken knapp genom att titta på APEX-matrisen apex_application.g_f01 som vi valde genom att skicka 1 som den första parametern till apex_item.radiogroup :

if apex_application.g_f01.count > 0 then
   -- Array has been populated i.e. user chose a value
   :p34_deptno := apex_application.g_f01(1);
else 
   -- Array has not been populated i.e. user did not choose a value
   :p34_deptno := null;
end if;

Sedan kan vi definiera en gren som navigerar till den nya sidan om (a) request ='SELECT' och (b) P34_DEPTNO inte är null.

Och det är allt. Ganska mycket arbete, men om det är kravet kommer det att göra det.

Metod 2:kolumnlänk

Det enklare sättet är att avstå från alternativknapparna och bara göra en av rapportkolumnerna till en länk:

Detta förvandlar kolumnen (jag valde DNAME) till en länk som navigerar till den nya sidan och tar det valda DEPTNO-värdet med sig:

Det är allt! Inget dolt objekt, ingen knapp, ingen sidprocess, ingen gren...



  1. Portera Oracle PL/SQL till Snowflake utan JavaScript

  2. Ranking i PHP och MySQL

  3. MySQL sorteringsordning efter matrisvärde

  4. EF6 + Postgres relation dbo.AspNetUsers existerar inte