Visão Geral
Existem 3 formas de implementar ações que o usuário pode efetuar em uma Consulta, associadas à linha selecionada:
- Adicionar um link à uma coluna (podendo ou não associar um ícone).
- Adicionar uma ação na barra de botões da Consulta.
- Hospedar a Consulta dentro de um Objeto Formulário, e usar os recursos do Formulário.
Essas abordagem funcionam muito bem na maioria dos casos, mas em algumas situações, acabamos enfrentando as seguintes dificuldades:
- Poluição Visual: Conforme o número de ações que o usuário pode executar aumenta, o visual vai ficando cada vez mais poluído.
- Código Duplicado: Quando uma empresa que não é a proprietária do Objeto precisa adicionar uma ação personalizada, ela precisa duplicar o Objeto, apenas para adicionar a nova opção, gerando mais um Objeto para dar manutenção.
Solução
Para resolver os dois problemas citados a cima, serão necessárias duas soluções diferentes:
- Overflow Menu: Recurso que ofereça uma visualização mais compacta das opções excedentes para a linha da Grid (
⋮mais opções). - Extensibilidade: Recurso que permita que um desenvolvedor adicione opções personalizadas em uma Consulta sem precisar editar o Objeto.
Adicionando “Overflow Menus” na Consulta
Deve ser criada uma interface visual para o desenvolvedor adicionar “Overflow Menus” na Consulta com saída em Grid (demais formatos da Consulta não terão este recurso), seguindo o mesmo estilo de elementos como formatações condicionais e botões da barra de comandos.
Abaixo, um protótipo com a lista de itens de menu a esquerda e tela de edição à direita.
| Elemento | Descrição |
|---|---|
| Nome do Menu | Nome que será exibido no menu ⋮ mais opções |
| Ícone | Ícone para o item do menu (opcional) |
| Texto de Ajuda | Texto que aparece no balão de ajuda, quando o usuário passa o mouse por cima (ToolTip) |
| Mostrar apenas quando atender a condição | Habilita ou desabilita o uso de uma condição para mostrar o menu. |
| Alvo da Janela | Objeto que será aberto ao clicar no menu. |
| Aba Parâmetros | Passagem de parâmetros do Objeto alvo. |
| Aba Configurações | Configurações do Objeto alvo. |
Estendendo os “Overflow Menus” da Consulta
Para permitir que outras empresas (que não são proprietárias do Objeto) consigam adicionar opções personalizadas nos menus, sem editar a Consulta (o que necessitaria duplicar o Objeto), vamos criar uma rotina completamente nova, chamada “Extensibilidade de Objetos”.
Essa nova tela, deve solicitar que o desenvolvedor selecione um Objeto, e com base no tipo dele, apresentar a interface de extensibilidade correspondente.
No caso da Consulta, deve exibir a mesma interface de “Overflow Menus” usada na tela de manutenção da Consulta, mas gravar em tabelas completamente separadas.
Segurança
As opções de “Overflow Menu”, tanto as naturais do Objeto quanto as personalizadas via extensibilidade, devem estar sujeitas as mesmas regras de permissões de campos aplicadas aos parâmetros e colunas da Consulta, por Usuário e por Grupo de Usuários.

