sql >> Databáze >  >> RDS >> Oracle

Oracle Apex:postupný přístup k vytváření přepínačů v interaktivní sestavě

K výběru záznamu a přechodu na jinou stránku můžete použít buď odkaz na sloupec, nebo k tomu přepínač a tlačítko/odkaz stránky. Obojí předvedu pomocí jednoduché zprávy na tabulce DEPT.

Metoda 1:přepínač

Pro přepínač můžeme do sestavy přidat další sloupec pomocí apex_item.radiogroup k vytvoření přepínače, jehož hodnota je DEPTNO:

Ve výchozím nastavení bude kód HTML radiogroup z bezpečnostních důvodů escapován, což není to, co chcete, ale docela pěkně ilustruje, co dělá:

Můžeme to opravit změnou vlastnosti sloupce na "Standardní sloupec přehledu":

Nyní vidíme:

Kliknutím na přepínač na libovolném řádku jej vyberete a zrušíte výběr tlačítek na jiných řádcích.

Pro přechod na jinou stránku s vybraným řádkem potřebujeme tlačítko pro odeslání stránky se speciálním požadavkem:

Po kliknutí na toto tlačítko odešlete stránku s hodnotou požadavku „SELECT“ (název tlačítka, který jsem zvolil). Můžeme tedy napsat proces on-submit stránky, který se spustí, když je požadavek "VYBRAT", zjistit, který přepínač byl vybrán (pokud existuje) a uložit vybrané DEPTNO do skryté položky s názvem P34_DEPTNO. Které tlačítko zjistíme pohledem na pole APEX apex_application.g_f01 který jsme vybrali předáním 1 jako první parametr 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;

Pak můžeme definovat větev, která přejde na novou stránku, pokud (a) request ='SELECT' a (b) P34_DEPTNO není null.

A to je vše. Docela hodně práce, ale pokud je to požadavek, udělá to.

Metoda 2:odkaz na sloupec

Jednodušší způsob je obejít se bez přepínacích tlačítek a jednoduše vytvořit odkaz z jednoho ze sloupců přehledu:

Tím se sloupec (vybral jsem DNAME) změní na odkaz, který přejde na novou stránku s vybranou hodnotou DEPTNO:

A je to! Žádná skrytá položka, žádné tlačítko, žádný proces stránky, žádná větev...



  1. MySQL objednává více směrů pomocí FIND_IN_SET

  2. Použitý typ tabulky nepodporuje FULLTEXTOVÉ indexy

  3. Jak mohu spočítat počet příspěvků?

  4. SQL postgres agregace/pivot dat po týdnech se součty