Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Oracle Apex:abordagem passo a passo para criar botões de opção em relatório interativo


Você pode usar um link de coluna para selecionar o registro e navegar para outra página ou um botão de opção e um botão/link de página para fazer isso. Demonstrarei ambos usando um relatório simples na tabela DEPT.

Método 1:botão de opção

Para o botão de opção, podemos adicionar uma coluna adicional ao relatório usando o apex_item.radiogroup função para criar um botão de rádio cujo valor é o DEPTNO:



Por padrão, o HTML do radiogroup será escapado por motivos de segurança, o que não é o que você deseja, mas ilustra bem o que está fazendo:



Podemos corrigir isso alterando a propriedade da coluna para "Coluna de relatório padrão":



Agora vemos:



Clicar no botão de opção em qualquer linha a seleciona e desmarca os botões em outras linhas.

Para navegar para outra página com a linha selecionada, precisamos de um botão para enviar a página com uma solicitação especial:





Quando clicado, esse botão enviará a página com um valor de solicitação de "SELECT" (o nome do botão que eu escolhi). Assim, podemos escrever um processo de página ao enviar para disparar quando a solicitação for "SELECT", descobrir qual botão de opção foi selecionado (se houver) e salvar o DEPTNO selecionado em um item oculto chamado P34_DEPTNO. Descobrimos qual botão observando o array APEX apex_application.g_f01 que escolhemos passando 1 como o primeiro parâmetro para 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;

Então podemos definir uma ramificação que navega para a nova página se (a) request ='SELECT' e (b) P34_DEPTNO não for nulo.



E é isso. Bastante trabalho, mas se for esse o requisito que o fará.

Método 2:link de coluna

A maneira mais simples é dispensar os botões de opção e apenas transformar uma das colunas do relatório em um link:



Isso transforma a coluna (eu escolhi DNAME) em um link que navega para a nova página levando o valor DEPTNO selecionado com ela:



É isso! Nenhum item oculto, nenhum botão, nenhum processo de página, nenhuma ramificação...