O uso de Fontes de Dados é suportado pelos campos do tipo "Caixa de Seleção", "Múltipla Seleção (checkbox)", "Múltipla Escolha (radio)", "Sugestão" e "Pesquisar e preencher".
Ao utilizar fontes de dados em um campo é necessário avaliar os impactos que essa fonte pode causar ao usuário final. Por exemplo, utilizar uma fonte de dados com milhões de registros em um campo "Caixa de Seleção" poderá acarretar em lentidão no acesso a tela de execução de tarefas e dificultará ao usuário final a busca pelo registro a ser selecionado. Já a mesma fonte de dados pode ser utilizada com um campo do tipo "Sugestão", pois esse campo não carrega todos os itens durante a abertura da tela de execução de tarefa e permite ao usuário final pesquisar o registro desejado.
De modo geral, a quantidade de itens retornados pela fonte de dados impactará na sua decisão de qual tipo de campo usar. A tabela abaixo traz a recomendação de qual campo utilizar baseado na quantidade de itens retornados pela fonte de dados:
| Múltipla Escolha (checkbox) | Múltipla Seleção (radio) | Caixa de seleção | Pesquisar e preencher | Sugestão |
---|
Até 10 itens | X | X | X | | |
De 10 a 100 itens | | | X | X | X |
Mais de 100 itens | | | | X | X |
Campo Múltipla escolha (checkbox)
O campo "Múltipla Escolha (checkbox)" é um campo simples, utilizado principalmente para mostrar poucos registros, rapidamente visíveis ao usuário. Seu diferencial é que mais de uma opção pode ser escolhida ao mesmo tempo.
A informação que o usuário vê (exemplo: o nome "David Marques") é o atributo "txt" da fonte de dados transformada. Caso tenha sido definido um atributo "cod" na fonte de dados transformada, é essa informação que será armazenada no banco de dados do Orquestra (por exemplo, o código 345, relativo a "David Marques").
Importante! Esse campo não pode ser usado em tabelas multivaloradas. |
Campo Múltipla seleção (radio)
O campo "Múltipla Seleção (checkbox)" é um campo simples, utilizado principalmente para mostrar poucos registros, rapidamente visíveis ao usuário.
A informação que o usuário vê (exemplo: o nome "David Marques") é o atributo "txt" da fonte de dados transformada. Caso tenha sido definido um atributo "cod" na fonte de dados transformada, é essa informação que será armazenada no banco de dados do Orquestra (por exemplo, o código 345, relativo a "David Marques").
Importante Esse campo não pode ser usado em tabelas multivaloradas. |
Campo Caixa de seleção
O campo caixa de seleção é bastante comum, simples de usar e indicado para uma quantidade intermediária de registros. Porém, se utilizado com uma fonte de dados com muitos registros, pode ser extremamente lento e prejudicial para a experiência do usuário.
A informação que o usuário vê (exemplo: o nome "David Marques") é o atributo "txt" da fonte de dados transformada. Caso tenha sido definido um atributo "cod" na fonte de dados transformada, é essa informação que será armazenada no banco de dados do Orquestra (por exemplo, o código 345, relativo a "David Marques").
Mapeamento de campos acessórios
Os campos do tipo "caixa de seleção" podem se beneficiar da ferramenta de mapeamento de campos acessórios. Caso a fonte de dados transformada possua atributos acessórios mapeados, outros campos do formulário poderão ser automaticamente preenchidos. Veja por exemplo a fonte de dados abaixo que possui, além do ID e nome da pessoa, outras informações, como idade, data de nascimento e CPF.
Caso, após ser selecionado um item na caixa de seleção, o sistema encontre campos de formulário cujos identificadores sejam iguais aos atributos do vetor "fields", esses campos serão automaticamente preenchidos. No exemplo abaixo, os campos Id, Nome, Idade, Nascimento e CPF são automaticamente preenchidos conforme a pessoa selecionada.
Campo especial para o nome
Como vimos acima, caso a fonte de dados transformada possua o atributo "cod", o banco de dados do Orquestra irá armazenar o código do item, e não o nome. Existem situações, entretanto, que desejamos armazenar, também, o nome visto e selecionado na caixa de seleção. Para isso, é possível criar um novo campo, do tipo "texto", que possua um identificador igual ao identificador da caixa de seleção, porém com o prefixo "nome". Por exemplo, se o identificador da caixa de seleção é "pessoa", o identificador do campo texto será "nomepessoa". Quando um item for selecionado na caixa de seleção, o campo "nomepessoa" será automaticamente populado com uma cópia do nome selecionado.
Campo Caixa de seleção encadeada
Caixa de seleção encadeada é um tipo especial de caixa de seleção cujos itens são definidos a partir da definição do valor de outro campo do formulário, seja outra caixa de seleção ou qualquer outro tipo de campo de formulário.
O exemplo clássico de caixa de seleção encadeada é a caixa de seleção de cidades, que é populada a partir da seleção de um item na caixa de seleção de Estados, anterior.
A criação e uso de caixas de seleção no Orquestra é feita de modo transparente e sem necessidade de programação. Para isso, basta criar uma fonte de dados normalmente no sistema. Essa fonte de dados deverá ter, obrigatoriamente, em sua definição, o uso de algum token de formulário, representando o vínculo com outro campo do formulário. Veja por exemplo a fonte de dados REST Json abaixo. Observe que na URL de definição do serviço é utilizado um token apontando para um campo do formulário cujo identificador é "id". Essa fonte de dados traz a lista de dependentes uma vez selecionada uma pessoa.
Na mesma configuração da fonte de dados, observe que ela está configurada para não executar caso algum token esteja vazio. Ou seja, no início do processo, quando ainda não foi selecionada uma pessoa e o campo de identificador "id" está vazio, a fonte de dados não será executada.
Após selecionar uma pessoa, entretanto, e ter o campo "id" preenchido, a caixa de seleção "dependente principal" automaticamente, sem nenhuma intervenção ou necessidade de programação, irá ser processada e populada com os dependentes da pessoa selecionada.
Campo Sugestão
O campo sugestão é indicado quando a fonte de dados pesquisada possui um volume intermediário ou grande de registros. Nesse campo, o usuário começa a digitar parte do nome a ser pesquisado e o sistema traz resultados intermediários e indicados para escolha.
A informação que o usuário vê e pesquisa (exemplo: o nome "Davi") deve ser parte do atributo "txt" da fonte de dados transformada. Ao clicar no resultado da pesquisa, o texto completo é salvo e é essa informação que é salva no banco de dados do Orquestra.
Filtro local X filtro na fonte de dados
Cada vez que o usuário digita uma letra, uma consulta é feita na fonte de dados. Idealmente, a sua fonte de dados deve ser a responsável principalmente por realizar o filtro pela parte do nome digitado. No exemplo acima, se eu digito "Davi", espera-se que a sua fonte de dados do seu sistema externo seja capaz de receber como parâmetro esse nome, realizar esse filtro e retornar somente a lista de pessoas cujo nome começa com "Davi".
Se a sua fonte de dados não recebe esse parâmetro, ela vai retornar várias vezes a mesma lista completa de registros. Nesse caso, o Orquestra ainda assim realiza um filtro local, mostrando somente os itens da fonte de dados cujo atributo "txt" é similar ao valor digitado. Essa opção, entretanto, é mais lenta e pode causar problemas de performance.
Mapeamento de campos acessórios
Os campos do tipo "sugestão" podem se beneficiar da ferramenta de mapeamento de campos acessórios. Caso a fonte de dados transformada possua atributos acessórios mapeados, outros campos do formulário poderão ser automaticamente preenchidos. Veja por exemplo a fonte de dados abaixo que possui, além do ID e nome da pessoa, outras informações, como idade, data de nascimento e CPF.
Caso, após ser selecionado um item no campo sugestão, o sistema encontre campos de formulário cujos identificadores sejam iguais aos atributos do vetor "fields", esses campos serão automaticamente preenchidos. No exemplo abaixo, os campos Id, Nome, Idade, Nascimento e CPF são automaticamente preenchidos conforme a pessoa selecionada.
Campo especial para o código
Como vimos acima, no caso de campo do tipo "Sugestão", somente o valor do atributo "txt" da fonte de dados transformada, que corresponde diretamente ao que o usuário digitou, é armazenado no banco de dados. Existem situações, entretanto, que desejamos armazenar, também, o código ou atributo "cod" do item selecionado. Para isso, é possível criar um novo campo, do tipo "texto", que possua um identificador igual ao identificador da caixa de seleção, porém com o prefixo "cod". Por exemplo, se o identificador da caixa de seleção é "pessoa", o identificador do campo texto será "codpessoa". Quando um item for selecionado na caixa de sugestão, o campo "codpessoa" será automaticamente populado com uma cópia do código selecionado.
Campo Pesquisar e preencher
O campo "pesquisar e preencher" é indicado quando a fonte de dados pesquisada possui um volume intermediário ou grande de registros, e os itens possuem um identificador ou código único conhecido e fundamental. Exemplo:
- CEP do endereço
- CPF da pessoa
- CNPJ da empresa
- Código único de identificação interno
Nesse cenário, o usuário deve preencher o valor total e completo da informação que quer pesquisar e clicar no botão "Pesquisar".
Máscara
O campo "Pesquisar e preencher" original não possui nenhuma máscara. Porém, dependendo do tipo de informação que você deseja pesquisar e do modo como o seu sistema externo armazena a informação, será necessário adicionar uma máscara para forçar o usuário a digitar a informação de uma determinada maneira.
Para isso, você deverá criar um novo tipo de campo.
Esse campo deverá possuir a máscara desejada e o campo original deverá ser "SEARCH_AND_FILL".
Filtro local X filtro na fonte de dados
Cada vez que o usuário clica no botão "Pesquisar", uma consulta é feita na fonte de dados. Idealmente, a sua fonte de dados deve ser a responsável principal por realizar o filtro pelo valor digitado. No exemplo acima, se eu digito "120.848.671-34", espera-se que a sua fonte de dados do seu sistema externo seja capaz de receber como parâmetro esse CPF, realizar esse filtro e retornar somente a pessoa cujo CPF seja igual ao digitado.
Se a sua fonte de dados não recebe esse parâmetro, ela vai retornar várias vezes a mesma lista completa de registros para o Orquestra. Nesse caso, o Orquestra ainda assim realiza um filtro local, mostrando somente os itens da fonte de dados cujo atributo "txt" é exatamente igual ao valor digitado. Essa opção, entretanto, é mais lenta e pode causar problemas de performance.
Observe, portanto, que para utilizar um campo "Pesquisar e preencher", o campo "Identificador do nodo de texto" deve trazer a informação exatamente igual a que se espera que o usuário irá digitar.
Mapeamento de campos acessórios
Os campos do tipo "pesquisar e preencher" podem se beneficiar da ferramenta de mapeamento de campos acessórios. Caso a fonte de dados transformada possua atributos acessórios mapeados, outros campos do formulário poderão ser automaticamente preenchidos. Veja por exemplo a fonte de dados abaixo que possui, além do ID e nome da pessoa, outras informações, como idade, nome e data de nascimento.
Caso, após ser selecionado um item no campo sugestão, o sistema encontre campos de formulário cujos identificadores sejam iguais aos atributos do vetor "fields", esses campos serão automaticamente preenchidos. No exemplo abaixo, os campos Id, Nome, Idade, Nascimento e CPF são automaticamente preenchidos conforme a pessoa selecionada.
Campo especial para o código
Como vimos acima, no caso de campo do tipo "Preencher e pesquisar", somente o valor do atributo "txt" da fonte de dados transformada, que corresponde diretamente ao que o usuário digitou, é armazenado no banco de dados. Existem situações, entretanto, que desejamos armazenar, também, o código ou atributo "cod" do item selecionado. Para isso, é possível criar um novo campo, do tipo "texto", que possua um identificador igual ao identificador do campo original, porém com o prefixo "cod". Por exemplo, se o identificador é "pessoa", o identificador do campo texto será "codpessoa". Quando um item for selecionado no campo de pesquisar e preencher, o campo "codpessoa" será automaticamente populado com uma cópia do código selecionado.
Campo Texto com fonte de dados
Campos do tipo "Texto", em determinadas condições, também podem possuir uma fonte de dados vinculada. Entretanto, seu uso e comportamento é bem atípico e especial.
Em geral, as fontes de dados vinculadas a campos do tipo "Texto" somente serão executadas em operações encadeadas, ou seja, disparadas a partir da modificação do valor de um outro campo do formulário.
Considere um campo do tipo texto que possui uma fonte de dados cujo função é "listar os nomes dos dependentes de uma determinada pessoa selecionada". Pela descrição, fica claro que essa fonte de dados deve possuir tokens apontando para algum outro campo do formulário, que efetivamente permite escolher a pessoa. Uma vez que a pessoa seja selecionada, a fonte de dados vinculada ao campo texto será preenchida e o campo texto preenchido com o valor retornado pela fonte de dados. Se a fonte de dados retornar mais de um registro, todos os registros serão concatenados separados por vírgula.
Veja o exemplo abaixo onde, a partir da caixa de seleção de "Pessoa", o campo texto "Nome dos dependentes" é populado com os nomes da pessoa selecionada.