DEV Community

Valter Zanchetti Filho
Valter Zanchetti Filho

Posted on

Passando valores com vírgulas entre páginas usando o Link Builder no Oracle APEX

No primeiro ano de carreira, um problema que me rendeu um pouco de dor de cabeça foi o fato de que eu precisava passar vários valores de itens de uma página para outra através de um link. Isso sempre havia funcionado de forma bem consistente, até que certo dia começou se comportar de forma estranha numa página específica. A única diferença entre essa página e as páginas que funcionavam era o fato de que essa página estava passando valores com vírgula. Comecei a pesquisar e vi várias opções que na época pareciam um pouco complexas. Continuei a pesquisa até encontrar algo fácil. Vamos direto ao resultado para salvar o seu tempo.

O problema:

Exemplo:

Tenho essa content row abaixo (que poderia ser também uma linha de um Interactive Report, Grid ou qualquer outro compontente).

Veja que o título dela contem palavras separadas com vírgula. O mesmo ocorre na barra de progresso, que também tem um valor com vírgula.

No botão de ações tenho um link criar uma nova linha baseada nesta. Esse link leva para a página de cadastro com os campos pré-preenchidos baseados no conteúdo da atual linha. O que seria normal fazermos neste caso é exatamente o que está no screenshot abaixo, informando o destino e o valor correspondente:

Porém, se fizermos assim, quando clicarmos no link gerado pelo LINK BUILDER termos um dos seguintes comportamentos:

  1. Erro ao renderizar a página porque um dos itens está retornando um valor inválido

  2. A página vai renderizar mas os valores estarão sendo passados para os campos errados, de forma embaralhada.

  3. A página vai renderizar mas os valores que tinham vírgula irão perder o conteúdo após a vírgula.

A solução:

O caminho mais rápido e prático para fazer isso é utilizar a contrabarra (\) antes e depois do item que estamos passando através do link builder, assim como mostrado no exemplo abaixo:

Isso acontece porque quando passamos os valores dos itens através do link builder, o APEX irá separar eles por vírgula para passar para a próxima página. É por isso que ele se perde quando passamos um valor com vírgula.

A “\” serve justamente como se fosse colocar o valor entre aspas no Link Builder, mostrando que a vírgula faz parte da expressão.

É, fácil assim. Pode testar que vai funcionar e a dor de cabeça vai acabar.

Depois de testar, lembre de comentar aqui embaixo a sua experiência.

Top comments (0)