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

Oracle Apex:trin for trin tilgang til oprettelse af radioknapper i interaktiv rapport

Du kan enten bruge et kolonnelink til at vælge posten og navigere til en anden side, eller en alternativknap og en sideknap/link til at gøre det. Jeg vil demonstrere begge ved hjælp af en simpel rapport på DEPT-tabellen.

Metode 1:alternativknap

Til alternativknappen kan vi tilføje en ekstra kolonne til rapporten ved hjælp af apex_item.radiogroup funktion til at oprette en alternativknap, hvis værdi er DEPTNO:

Som standard vil radiogruppens HTML blive escaped af sikkerhedsmæssige årsager, hvilket ikke er, hvad du ønsker, men illustrerer, hvad den gør, ganske pænt:

Vi kan rette det ved at ændre kolonneegenskaben til "Standard rapportkolonne":

Nu ser vi:

Hvis du klikker på alternativknappen på en række, markeres den og fravælges knapperne på andre rækker.

For at navigere til en anden side med den valgte række har vi brug for en knap til at indsende siden med en særlig anmodning:

Når der klikkes på den, vil den knap sende siden med en anmodningsværdi på "SELECT" (det knapnavn, jeg valgte). Så vi kan skrive en on-submit-sideproces, der skal udløses, når anmodningen er "SELECT", finde ud af, hvilken radioknap der er blevet valgt (hvis nogen) og gemme den valgte DEPTNO til et skjult element kaldet sige P34_DEPTNO. Vi finder ud af hvilken knap ved at se på APEX-arrayet apex_application.g_f01 som vi valgte ved at sende 1 som den første parameter til 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;

Så kan vi definere en gren, der navigerer til den nye side, hvis (a) request ='SELECT' og (b) P34_DEPTNO ikke er null.

Og det er det. En hel del arbejde, men hvis det er kravet, vil det gøre det.

Metode 2:kolonnelink

Den nemmere måde er at undvære alternativknapperne og bare lave en af ​​rapportkolonnerne til et link:

Dette forvandler kolonnen (jeg valgte DNAME) til et link, der navigerer til den nye side og tager den valgte DEPTNO-værdi med sig:

Det er det! Intet skjult element, ingen knap, ingen sideproces, ingen gren...



  1. Forespørg postgres jsonb efter værdi uanset nøgler

  2. Sådan bruger du MySQL-brugervariabler med ADO.NET

  3. Antal rækker i Oracle SQL Select?

  4. MySQL-fejl - SQLSTATE [42000]:Syntaksfejl eller adgangsovertrædelse:1064