sql >> Database >  >> RDS >> Oracle

Oracle Apex:stapsgewijze benadering voor het maken van keuzerondjes in interactief rapport

U kunt ofwel een kolomlink gebruiken om het record te selecteren en naar een andere pagina te navigeren, of een keuzerondje en een paginaknop/link om dit te doen. Ik zal beide demonstreren met behulp van een eenvoudig rapport op de DEPT-tabel.

Methode 1:keuzerondje

Voor het keuzerondje kunnen we een extra kolom aan het rapport toevoegen met behulp van de apex_item.radiogroup functie om een ​​keuzerondje te maken waarvan de waarde DEPTNO is:

Standaard wordt de HTML van de radiogroep om veiligheidsredenen ontsnapt, wat niet is wat je wilt, maar het illustreert heel goed wat het doet:

We kunnen dat oplossen door de kolomeigenschap te wijzigen in "Standaard rapportkolom":

Nu zien we:

Als u op het keuzerondje op een rij klikt, wordt deze geselecteerd en worden de knoppen in andere rijen ongedaan gemaakt.

Om naar een andere pagina met de geselecteerde rij te navigeren, hebben we een knop nodig om de pagina met een speciaal verzoek in te dienen:

Wanneer erop wordt geklikt, verzendt die knop de pagina met een Verzoekwaarde van "SELECT" (de naam van de knop die ik heb gekozen). We kunnen dus een on-submit-paginaproces schrijven om te activeren wanneer het verzoek "SELECT" is, uitzoeken welk keuzerondje is geselecteerd (indien aanwezig) en de geselecteerde DEPTNO opslaan in een verborgen item met de naam P34_DEPTNO. We komen erachter welke knop door te kijken naar de APEX-array apex_application.g_f01 die we hebben gekozen door 1 . door te geven als de eerste parameter voor 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;

Dan kunnen we een branch definiëren die naar de nieuwe pagina navigeert als (a) request ='SELECT' en (b) P34_DEPTNO niet null is.

En dat is het. Best veel werk, maar als dat de vereiste is, is dat voldoende.

Methode 2:kolomlink

De eenvoudigere manier is om de keuzerondjes achterwege te laten en van een van de rapportkolommen een link te maken:

Dit verandert de kolom (ik koos voor DNAME) in een link die naar de nieuwe pagina navigeert en de geselecteerde DEPTNO-waarde meeneemt:

Dat is het! Geen verborgen item, geen knop, geen paginaproces, geen vertakking...



  1. procedure in mysql

  2. PostgreSQL age()-functie:verschillende/onverwachte resultaten bij het landen in een andere maand

  3. Verwijderde mysql-database herstellen

  4. Hoe schrijf ik UTF-8-tekens met bulk insert in SQL Server?