Pular para o conteúdo principal

 Lista Dinâmica

image148.png  

A Lista Dinâmica é um componente que permite ao usuário visualizar uma lista de dados proveniente de uma determinada tabela, que não é a tabela principal do formulário atual. Quando a informação é selecionada desta lista, o dado é gravado em um campo correspondente da tabela principal.

Podemos configurar a Lista Dinâmica para consultas e informações de tabelas existentes no sistema. Para isso, utilizamos as propriedades Campo, Descrição, SQL, Campo-Chave, Campo Lista e as demais propriedades, se assim for necessário.

Propriedades em comum:

PropriedadeDescriçãoTipoExemplo
AlturaDefine a altura do componente.Inteiro250
CódigoInforma o código gerado pelo Maker ao qual o componente/formulário foi associado. De forma geral, não interfere nas características do componente.Inteiro5
ContainerInforma em qual container o componente irá ser inserido.Indefinido-
DicaArmazena uma dica para o componente, o qual se torna acessível no modo de inserção ou alteração.Letras"Digite o CPF do cliente"
HabilitadoTorna o componente possível ser editado ou manipulado.LógicoSim
PosiçãoX e PosiçãoYO "X" determina a posição do componente em relação à esquerda do formulário, e o "Y" em relação ao topo.Inteiro100
TabulaçãoIndica a ordem de tabulação do componente em relação aos outros que compõem a aba do formulário na qual está posto. Essa ordem pode ser observada quando o usuário altera o estado do formulário/grade para o modo de inclusão ou edição e navega entre os componentes/campos usando a tecla Tab.Inteiro2
TabularSelecionando a opção Sim, quando o usuário estiver navegando entre os componentes, como foi descrito no item anterior, o componente receberá foco (observada a ordem de tabulação).LógicoSim
TamanhoAplicado a todos - determina a largura do componente ou formulário.Inteiro100
VisívelAplicada a todos os componentes, com exceção da Moldura e do objeto formulário - Selecionando a opção Sim, o componente aparece no formulário.LógicoSim
NomeAplicada a todos os componentes e para o objeto formulário - apresenta o nome do componente. O Maker sugere um nome diferente dos nomes dos componentes existentes no formulário para evitar que mais de um componente possua o mesmo nome.Letras"Tabela de Consumidores"
DescriçãoAplicada a todos os componentes exceto para os componentes Árvore, Grade, Moldura, Imagem e para o objeto formulário - É a legenda que aparece sobre o componente para identificar (resumidamente) qual a sua função. Observação: Ao selecionar um determinado campo o Maker irá sugerir uma descrição obtida no dicionários de dados, caso o usuário deseje deixar o campo da descrição em branco basta apagá-lo e clicar fora do componente.Letras"Insira aqui a idade do consumidor"

Propriedades específicas do componente Lista Dinâmica:

PropriedadeDescriçãoTipoExemplo
SQL FeriadoPermite fazer uma consulta SQL para mostrar os feriados.SQLSELECT * FROM tabela_feriados
Campo DataSeleciona o campo que vai receber a data do SQL Feriado.Data21/04/2020
Campo DescriçãoSeleciona o campo que vai conter a descrição do SQL Feriado.Letrasdata_feriado
SQL AtividadePermite fazer uma consulta SQL para mostrar as atividades agendadas.SQLSELECT * FROM tabela_atividades
Campo Data InícioSeleciona o campo que vai receber a data inicial do SQL Atividade.Letrasdata_inicio
Campo Data FimSeleciona o campo que vai receber a data final do SQL Atividade.Letrasdata_fim
Campo DescriçãoSeleciona o campo que vai receber a descrição do SQL Atividade.Letrasati_descricao
Exibir Números dos DiasExibe os números do dias em certas partes do calendário.LógicoSim
Botão Avançar Para Dia AtualAvança para o dia atual no Calendário.LógicoSim
Exibir Mês e Ano AtualExibe título do calendário, determinando mês e ano atual.LógicoSim
Destacar Horário ComercialDestaca no calendário, o horário de comercial. (Segunda à Sexta, das 9am - 5pm).LógicoSim
Modo de VisualizaçãoDefine o modo de visualização do calendário. - Mês: Visualização padrão de um calendário, exibindo todos itens do mês. - Semana: Visualização dos dias da semana. - Dia: Visualização das horas do dia. Observação: O usuário poderá alterar a visualização pela barra de navegação do calendário, essa propriedade define qual vai ser o modo de visualização inicial.ListaMês
Permitir Alterar Modo de VisualizaçãoPermite alterar o modo de visualização do calendário.LógicoSim
Menu de ContextoDefine se poderá ser aberto o Menu de Contexto no calendário ao pressionar o botão direito.LógicoSim
Permitir InclusãoPossibilita inserir dados na consulta SQL através do formulário que o mesmo está.LógicoSim

Eventos do componente Lista Dinâmica:

EventoDescriçãoParâmetro Automático
Ao ClicarExecuta ao clicar no componente.-
Ao EntrarExecuta ao entrar no componente.-
Ao ModificarExecuta o evento assim que o usuário efetua qualquer modificação no valor contido no componente e também quando navega entre os registros, desde que o valor contido no componente em um registro difira do valor contido no componente para qual o usuário navegar: o próximo registro ou o registro anterior.-
Ao preencher listaAplicado ao componente Lista Dinâmica - esta ação deve ser utilizada em conjunto com o método Executar Regra de negócio (tela Ações - usada para associar ações e fluxos aos componentes ou objeto formulário. Na propriedade Nome do método citado, deve ser selecionado um fluxo de ações que retorne uma lista com as opções que poderão ser selecionadas pelo usuário no componente. Após ter sido feita essa configuração, a configuração desenvolvida para as propriedades do componente SQL, CampoChave e CampoLista deverão ser desfeitas.Constante de controle interno, valor do filtro e tipo do filtro.
Ao pressionar teclaExecuta ao pressionar alguma tecla no componente.Tela Alt, Tecla Ctrl, Tecla Shift, Código da Tecla e Caracter da Tecla.
Ao receber dadosExecuta ao formulário ser carregado.-
Ao sairExecuta evento assim que o componente perde o foco.-

Observações:

  1. É comum utilizar a propriedade Formulário para indicar a origem da lista e a propriedades Subformulário, definindo SIM, para permitir a chamada da origem pelo clique no botão image127.gif (Exibir formulário de origem);

  2. O componente lista dinâmica possibilita a utilização de chave composta. Saiba como!

  3. O componente suporta Common Table Expression (CTE (recurso do MSSQL)) apenas para listagem de dados, não sendo possível realizar pesquisa nos registros. Caso deseje utilizar o filtro de pesquisa é necessário criar uma VIEW com o CTE e associar o SELECT desta VIEW ao componente.

  4. O componente suporta FUNCTIONS do banco de dados apenas para listagem de dados. Para demais funcionalidades, é necessário que seja criado uma VIEW no banco de dados e posteriormente, associar o SELECT desta view no componente.

A propriedade Campo definirá onde a informação selecionada será guardada. Colocamos o nome de um campo que esteja presente na consulta do SQL criada na tela principal.

A propriedade Descrição definirá o rótulo do campo no formulário.

A propriedade SQL determinará a consulta que proporcionará os dados para o campo. Nesta propriedade, abre-se uma janela para construirmos o código em SQL que será necessário para alimentar a lista apresentada na Lista Dinâmica. Esse SQL é particular desse componente, ou seja, só ocorrerá quando ele for solicitado.

A propriedade Campo Lista exibirá o conteúdo para o campo do formulário, e a propriedade Campo Chave refere-se ao campo que será o relacionamento lógico entre a tabela principal do formulário e a consulta para o campo.

image53.jpg

Imagem 1 - Interface do componente Lista dinamica.

O componente Lista Dinâmica possui algumas funcionalidades que são nativas em modo de execução.

  • Quando está editando um campo, em modo de inserção ou alteração, o componente possui controles para facilitar a busca de informações:

    • Os controles image128.gif (iniciando por), image129.gif (terminando por), image130.gif (igual a) e image131.gif (contendo), alternam-se ao receber um clique ou, quando combinamos com as teclas CTRL + <barra de espaço>, auxiliam para busca de contexto;

    • A Barra de Digitação corresponde ao espaço para entrada do contexto da busca;

    • O botão image132.gif (Localizar) executa a busca.

  • Quando se está editando um campo, em modo de inserção ou alteração, ao pressionar a tecla F5, o formulário declarado na Propriedade Formulário, é aberto. Observe que isso depende também da Propriedade Subformulário definida SIM.

  • Além das funcionalidades citadas, também é possível criar um formulário a partir da "Lista Dinâmica". Para isso, devem ser seguidos os seguintes passos:

  1. Insira o componente Lista Dinâmica no formulário;

  2. Com o duplo clique sobre a componente, abrirá a tela Assistente de Criação de Novo Formulário (nesta tela devem ser feitas as configurações necessárias para a criação do formulário);

  3. Salve o novo formulário criado, fechando-o em seguida.

Observação: Concluídos esses passos, as propriedades "Descrição", "SQL", "Campo Chave", "Campo Lista" e "Formulário" serão preenchidas automaticamente.

Todos os componentes possuem Propriedades e Eventos. Para conhecê-los clique aqui.

Atualização da Propriedade Permitir Inclusão

Conforme novidades do _Maker 5, a propriedade _Permitir Inclusão do componente Lista dinâmica recebeu atualizações. Com isso, surgue apartir das versões com o Framework Bootstrap 5 uma nova maneira de implementar alterações nesta funcionalidade. Agora através da propriedade chamada "Permitir Inclusão" no próprio componente no formulário é possível habilitar inclusões por meio da interface, buscando facilidade e praticidade no momento da construção dos projetos. Conforme exemplo abaixo:

Componente lista dinâmica atualização da propriedade

Imagem 2 - Interface do componente Lista dinamica ativando propriedade.

Sendo assim, para ativar a propriedade basta estar na lista dinâmica em questão e ativar caso necessário, conforme pode ser visto na imagem 4. Mas caso a sua versão seja Maker Studio Bootstrap, deve seguir o passo a passo abaixo para conseguir utiliza-la.

Propriedade avançada ListaDinamica:CODIGO:PermitirInclusao:

  • Disponível a partir da versão do Webrun Studio - Edição Bootstrap 1.2.0.68 esse recurso habilita a inclusão de dados diretamente no componente Lista Dinâmica. Para habilitar esse recurso é necessário na área de trabalho do Maker abrir Propriedades Avançadas e realizar a inserção da propriedade, onde o valor CODIGO deve ser substituido pelo código do componente que terá o recurso habilitado e inserir como argumento o valor true.

image54.jpg

Imagem 3 - Interface da Prorpriedade Avançada.

  • Após realizar os procedimentos acima, reinicie o servidor de aplicações e acesse o sistema, abra o formulário com a lista dinâmica e digite alguma informação que não exista na lista.

image55.jpg

Imagem 4 - Interface do componente Lista dinamica com prorpriedade a ativa.

Observações:

  1. Ao vincular dados ao componente Lista Dinâmica, os campos "Campo Chave" ou "Campo Lista" deverão ser marcados, pois caso a aba de navegação do formulário esteja hablitada um erro será apresentado.

  2. Definindo a lista dinâmica como Apenas Leitura pelo Modo Gerente (Webrun), o acesso ao formulário do componente sempre estará habilitado (para Inclusão, Alteração ou Exclusão).

  3. Uma vez utilizada uma concatenação (propriedade SQL) para o Campo Lista (propriedade) do componente Lista Dinâmica, não é possível utilizar o filtro de pesquisa disponibilizado pelo próprio componente (em um formulário no Webrun). Para funcionar corretamente, será necessário a definição de um alias para a concatenação e utilizar esse alias na propriedade Campo Lista.

  4. Tecla [Enter] - Aplica o filtro informado na lista dinâmica.

  5. Na tela de relatório o componente não suporta "UNION" na definição da consulta, caso seja necessário a utilização do recurso "UNION", é necessário definir uma "VIEW".