A dica a seguir exemplificará a utilização do componente Árvore para visualização de registros de uma entidade autorrelacional.
O formulário final terá o seguinte layout:
Este exemplo terá como base um formulário referente ao cadastro de Departamentos, um Componente Árvore que liste os funcionários Gerentes e seus respectivos funcionários. Implementando os recursos do componente, será associado ao Evento Ao clicar (clique sobre o nome do funcionário) a listagem dos projetos deles, selecionado em um Componente Texto Longo.
1º Passo : criar o formulário principal baseado na tabela sig_departamento:
2º Passo : inserir um componente Árvore no formulário e configurar:
Configure a Árvore da seguinte forma:
Para a Propriedade SQL, monte uma consulta que liste todos os nomes dos funcionários:
Select
sig_funcionario.fun_cod,
sig_funcionario.fun_nome,
sig_funcionario.fun_cod_gerente,
sig_funcionario.dep_cod
From
sig_funcionario
Para a Propriedade Campo Chave, aponte para o campo sig_funcionario.fun_cod da consulta;
Para a Propriedade Campo Lista, aponte para o campo sig_funcionario.fun_nome da consulta;
Para a Propriedade Campo pai, aponte para o campo sig_funcionario.fun_cod_gerente da consulta;
Para a Propriedade Parâmetros, relacione o formulário principal com a consulta definida em Propriedade SQL:
Com esses passos, configuramos a seleção de todos os registros da entidade de funcionários que se relacionam com o departamento atual.
3º Passo : inserir um componente Texto Longo no formulário
Na Propriedade Descrição, determine um rótulo para o componente. Como exemplo: Projetos determinados.
Na Propriedade Nome, indique Projetos (por exemplo).
4º Passo : criação dos fluxos
Fluxo para preencher o componente Texto Longo ao clicar no nome do funcionário. Inicialmente, definir dois Parâmetros de Entrada:
Criar Identificadores (variáveis) para o fluxo
Observação: O tamanho definido para a variável relação é uma estimativa de caracteres que irá receber.
Definir a relação de funcionários por projeto:
Gerar a seguinte consulta:
Select
sig_projeto.pro_nome
From
sig_trabalha_em Inner Join
sig_projeto On sig_trabalha_em.pro_cod = sig_projeto.pro_cod
Where
sig_trabalha_em.fun_cod = :func
Utilizar uma Decisão que persista na existência de registros na consulta:
Acumular os valores obtidos na consulta em uma variável do tipo Tabela:
Verificar o conteúdo do próximo registro da consulta para acúmulo na variável:
Caso não existam mais registros, atribuir ao componente Texto Longo o valor armazenado na variável:
Salve o fluxo para a camada Servidor (já que manipulamos dados da base).
Retornando ao formulário, atribua ao Evento Ao clicar do Componente Árvore, o fluxo criado.
Fluxo complementar para limpar o conteúdo do componente Texto Longo ao navegar. Criar um fluxo para a camada Servidor, que limpe o conteúdo do Componente Texto Longo: atribuir ao Evento Ao Navegar do formulário:
Salve o formulário e execute o projeto.
____________________________________________________________________________
Caso este tópico não tenha comentário satisfatório, envie e-mail para documentacao@softwell.com.br