Formulários Dinâmicos
De DTI Wiki
Tabela de conteúdo |
Objetivo
Este projeto tem por objetivo disponibilizar a criação de formulários de preenchimento dinâmico. Ocorre de que em alguns projetos/solicitações é necessária a criação de um formulário simples de preenchimento para ser disponibilizado tanto na internet como na intranet. Com isto foi criado este projeto para que estes formulários básicos e sem muitos controles possam
ser criados e gerenciados pelos próprios usuários com o auxílio do suporte da DTI.
Considera-se porém que alguns controles não são possíveis neste formulário devido ao desconhecimento da identificação(ID) de cada campo por estes serem criados dinamicamente.
Peculiaridades
As tabelas, FRMTIPOCAMPO, FRMVALIDACAO, serão de responsabilidade da DTI, ou seja, quando da necessidade de um novo dado a ser incluído, dependerá de um usuário da DTI para que não sejam inseridos/alterados dados incorretos.
Caso este formulário seja chamado da intranet será necessário o usuário estar autenticado, caso seja na internet não será solicitado autenticação.
Projeto
O usuário poderá criar formulários de preenchimento e estes chamados de qualquer lugar da internet ou intranet, poderão ainda ser referenciados por outros formulários ou apenas disponibilizados individualmente, porém cabe salientar que estes formulários são para dados adicionais(sem muito controle).
Para que possa ser utilizado este projeto, o usuário deverá criar um formulário onde deverá informar alguns dados (Título, Descrição, Usuário responsável, Data início, Data fim, Tipo de acesso, Logo). Ainda é possível controlar a geração de versões de cada formulário. Abaixo estão descritas as tabelas e comentários de cada campo.
Após o cadastro do formulário, o usuário precisará inserir os campos a serem disponibilizados no formulário para preenchimento do usuário. Neste momento deverá informar os dados (Nome exibição, Utilização, Cod tipo campo, Cod aba, Ordem, Obrigatório, Quantidade, Ajuda, Data início, Data fim). Ainda é possível controlar a geração de versões de cada campo(aqui houve um questionamento se não ficará muito complexo para o retorno dos dados, sugestão: cada alteração num campo, gerar nova versão do formulário como um todo).
No momento da inserção dos campos alguns dados serão advindos de outra.
Detalhamento MER
Este documento visa apresentar o modelo entidade relacionamento modelado para o sistema de formulários,descrevendo suas tabelas e atributos bem como o proposito destes.
* Indica os campos que necessitam de atenção, sendo estes campos importantes no contexto da aplicação.
FRMTIPOCAMPO
Tabela criada para armazenar os tipos de campos que estarão disponíveis para uso nos formulários.
Exemplo : texto longo,texto curto,data,checkBox,radioButton,imagem estática , etc .
CODTIPOCAMPO | Identificador único da tabela,gerado automaticamente através de sequence. |
NOME | Atributo com o nome do campo,utilizado para exibição. |
DESCRICAO | Descrição opcional, podendo ser utilizado para informar como e ou onde o campo pode ser utilizado,qual a finalidade do mesmo. |
FRMFORMULARIO
Tabela criada para armazenar os formulários, um formulário poderá ser composto por vários campos.Estes formulários serão montados no sistema de Formulários Dinâmicos e ficarão disponíveis para utilização em outros sistemas mediante adaptação de integração do sistema terceiro para o de formulários dinâmicos.
CODFORMULARIO | Identificador da tabela gerado automaticamente por sequence,atributo que juntamente com VERSAOFORM servirá para identificar tal formulário como único. |
VERSAOFORM | Juntamente com CODFORMULARIO compõem o identificador da tabela, atributo que identificará qual é a versão do formulário.No momento em que um novo formulário for criado ele terá o seu identificador "CODFORMULARIO" incrementado, a sua versão inicial será 1. A versão do formulário será modificada no momento em que o usuário utilizar a opção de copiar o formulário, ao executar esta ação será gerado um novo formulário idêntico ao copiado,porém uma versão diferente. |
TITULO | Atributo que corresponde ao titulo do formulário,usado como referência para a utilização do formulário. |
DESCRICAO | Atributo utilizado para inserir informações adicionais sobre a utilização deste formulário, bem como observações sobre o mesmo. |
* USUARIORESP | Armazena o usuário que criou o formulário este será o responsável,dono do formulário podendo alem de alterar a estrutura do formulário dar permissões de acesso para outros usuários realizarem o mesmo. Armazenado automaticamente após a criação do formulário. |
*DATAINI | Atributo que identifica a partir de qual data o formulário estará disponível para visualização e preenchimento do usuário. |
*DATAFIM | Opcionalmente armazenado para mostrar até que data o formulário estará disponível para visualização e preenchimento. |
*TIPOACESSO | Guarda a informação sobre qual o tipo de usuários que irão acessar este formulário, podendo ser utilizadores com acesso a intranet ou sem acesso a intranet.(AJUSTAR APÓS DEFINICAO) |
LOGO | Armazena uma imagem que poderá ser inserida para exibição no formulário. |
* ACAO | Identifica quais são as ações que estarão disponíveis na manipulação dos dados formulário define se o usuário poderá Adicionar Dados (D),Alterar Dados (A),Exluir Dados(E),Não fazer nada(N). |
FRMABA
Tabela que armazena as abas cadastradas para um formulário.
Para facilitar a navegação e preenchimento dos campos em um formulário ele pode ser utilizado abas,quando utilizado os campos estarão disposto em "páginas" agrupados por assuntos em comum.
CODFORMULARIO | Um dos atributos chave composta.Identifica a qual formulário que será vinculado. |
VERSAOFORM | Um dos atributos chave composta, guarda qual é a versão do formulário selecionado,obtido da frmformulario. |
*TITULO | Texto que será exibido na aba para sua identificação. |
DESCRICAO | Texto opcional para inserir alguma informação a respeito, por exemplo da utilização desta aba. |
FRMACESSO
Tabela que armazena os usuários que terão acesso a determinado formulário, bem como suas permissões na manipulação da estrutura do formulário.
CODFORMULARIO | Um dos atributos chave composta, guarda qual é o formulário que o usuário terá acesso,obtido da frmformulario. |
VERSAOFORM | Um dos atributos chave composta, guarda qual é a versão do formulário escolhido acima que o usuário terá acesso,obtido da frmformulario. |
MATRICULA | Um dos atributos chave que compõem a chave composta indica qual será o usuário que terá acesso ao formulário referenciado,matricula obtida de RHDESENV.EMPREGADO. |
TIPOPERMISSAO | Atributo que indica quais são as permissões que o usuário terá sob o formulário.
* Alterar (A): Possibilita a opção de alterar a estrutura do formulário. |
FRMCAMPO
Tabela que representa os campos de um formulário,armazena as informações sobre os campos que o formulário possui.
CODFORMULARIO | Identifica a qual formulário o campo pertence.Um dos atributos que será utilizado como chave composta desta tabela,será obtido da frmformulario. |
VERSAOFORM | Um dos atributos chave composta, guarda qual é a versão do formulário escolhido,será obtido da frmformulario. |
CODCAMPO | Um dos atributos que compõem a chave composta,identificador do campo. Gerado automaticamente por sequence. |
VERSAOCAMPO | Um dos atributos que compõem a chave composta,representa qual a versão do campo que está sendo criada. |
NOMEEXIBICAO | Identifica o nome descritivo do campo,texto que será exibido para se referir ao campo. |
UTILIZACAO | Utilizado opcionalmente para que seja informado por exemplo qual deve ser a finalidade deste campo, por qual motivo foi criado. |
CODTIPOCAMPO | Atributo chave estrangeira, armazena qual o tipo deste campo,será buscado os dados da tabela FRMTIPOCAMPO. |
*CODABA | Para facilitar a navegação e preenchimento dos campos de um formulário pode ser utilizado abas, quando utilizado os campos estarão disposto em "páginas" agrupados por assuntos em comum. Este atributo armazena opcionalmente o código da aba em que este campo será exibido no formulário. |
*ORDEM | Guarda qual será a ordem de exibição deste campo dentro de formulário, quando mais baixo o valor antes o campo será mostrado. |
OBRIGATORIO | Guarda a informação se este campo será ou não de preenchimento obrigatório. |
*QUANTIDADE | * Em caso de campos texto servirá para delimitar a quantidade máxima de caracteres que podem ser digitados. * Em caso de campos do tipo checkbox funcionará para definir o máximo de opções que podem ser selecionadas. * Caso o campo for do tipo arquivo defini a quantidade máxima de arquivos que podem ser enviados como resposta. |
AJUDA | Atributo que deverá ser utilizado para ajudar o usuário no preenchimento do campo,informações aqui registradas serão visíveis ao o usuário, ao passar o mouse sobre o ícone "?" por exemplo. |
*DATAINI | Informa a partir de qual data este campo estará disponível para visualização e preenchimento no formulário. |
DATAFIM | Opcionalmente utilizado para informar até que data o campo estará disponível para visualização e preenchimento no formulário. |
FRMITEMCAMPO
Tabela responsável por armazenar informação a respeito da existência de outros campos associado a um determinado campo,por exemplo,podemos ter um campo do tipo rádio com várias opção,este campo irá guardar quais são estas opções.
*Quando temos um campo do tipo "radioButton" poderá ocorrer situações onde exista diversas opções,a possibilidade de associar uma opção a um campo, por exemplo, digamos que tenhamos dentre as opção que uma delas seja "OUTROS", ao selecionar esta opção abra um campos texto para o usuário digitar a resposta dele.
CODFORMULARIO | Um dos atributos que compõem a chave composta identifica a qual formulário este item pertence.Será obtido da frmformulario. |
VERSAOFORM | Um dos atributos que compõem a chave composta guarda qual é a versão do formulário que está sendo utilizado, será obtido da frmformulario. |
CODCAMPO | Um dos atributos que compõem a chave composta armazena qual é o campo que possui itens.Será buscado da tabela FRMCAMPO. |
VERSAOCAMPO | Um dos atributos que compõem a chave composta da tabela armazena qual é a versão do campo associada.Será buscado da tabela FRMCAMPO. |
CODITEMCAMPO | Um dos atributos que compõem a chave composta da tabela.Identificador do item , o valor para este campo é gerado por sequence. |
NOMEEXIBICAO | Representa o texto que será exibido acima do campo. |
FRMRESPITEMCAMPO
Tabela responsável por armazenar a resposta dos campos que possuem itens.Será salvo nesta tabela, por exemplo o value do radio selecionado ("O") referente a opção outros, o conteúdo do campo texto será armazenado em uma das tabelas de resposta do campo.Podendo ser FRMRESARQUIVO,FRMRESPTEXTO.
CODFORMULARIO | Um dos atributos que compõem a chave composta identifica a qual formulário a reposta pertence.Será obtido da frmformulario. |
VERSAOFORM | Um dos atributos que compõem a chave composta guarda qual é a versão do formulário utilizada, será obtido da frmformulario. |
CODCAMPO | Um dos atributos que compõem a chave composta armazena qual o campo respondido.Será buscado da tabela FRMCAMPO. |
VERSAOCAMPO | Um dos atributos que compõem a chave composta da tabela armazena qual é a versão do campo associada.Será buscado da tabela FRMCAMPO. |
CODITEMCAMPO | Um dos atributos que compõem a chave composta da tabela.Identificador do item respondido, referencia a tabela itemcampo. |
CHAVERESP | Utilizado para registrar quem está respondendo o campo. Ficará a cargo do sistema terceiro definir qual será o identificador utilizado para diferenciar os usuários, caso o mesmo deseje saber quem está respondendo tal questão. Se o sistema terceiro não necessitar da identificação de quem respondeu o campo será gerado um número sequencial sem vinculo com usuários. |
FRMRESPTEXTO
Tabela responsável por armazenar as respostas digitadas nos campos do tipo texto.
CODFORMULARIO | Um dos atributos que compõem a chave composta identifica a qual formulário esta resposta pertence. Código do formulário que será obtido da frmformulario.. |
VERSAOFORM | Um dos atributos que compõem a chave composta,guarda qual é a versão do formulário utilizada, será obtido da frmformulario. |
CODCAMPO | Um dos atributos que compõem a chave composta, armazena qual o campo respondido.Será buscado da tabela FRMCAMPO. |
VERSAOCAMPO | Um dos atributos que compõem a chave composta da tabela,armazena qual é a versão do campo associada.Será buscado da tabela FRMCAMPO. |
CHAVERESP | Utilizado para registrar quem está respondendo o campo. Ficará a cargo do sistema terceiro definir qual será o identificador utilizado para diferenciar os usuários, caso o mesmo deseje saber quem está respondendo tal questão. Se o sistema terceiro não necessitar da identificação de quem respondeu o campo será gerado um número sequencial sem vinculo com usuários. |
RESPTXTCURTO | Conteúdo da resposta.A resposta ficará armazenada neste campo caso a quantidade de caracteres da resposta seja inferior ou igual a 4000. |
RESPTXTLONGO | Conteúdo da resposta.A resposta ficará armazenada neste campo caso a quantidade de caracteres da resposta seja maior que 4000. |
FRMCAMPOIMAGEM
Existem casos em que o usuário deseja mostrar imagens estáticas no formulário, somente para visualização, esta armazenará esta imagem para um campo do formulário.
CODFORMULARIO | Um dos atributos que compõem a chave composta, identifica a qual formulário a validação está associada.Obtido de frmformulario |
VERSAOFORM | Um dos atributos que compõem a chave composta, refere-se a qual versão do formulário a versão está associada.Obtido da frmformulario. |
CODCAMPO | Um dos atributos que compõem a chave composta,identifica a qual campo do formulário que possuirá imagem. |
VERSAOCAMPO | Um dos atributos que compõem a chave composta refere-se a qual versão do campos possui a imagem.Obtido de frmcampo. |
CODVALIDACAO | Atributo que compõem a chave composta se refere a qual validação o registro esta associado. Obtido de FRMVALIDACAO. |
ARQUIVO | Guarda a imagem que esta vinculada ao campo. |
FRMRESPARQUIVO
Tabela responsável por armazenar as respostas que possuem arquivos, imagens.
CODFORMULARIO | Um dos atributos que compõem a chave composta, identifica qual formulário a resposta pertence. Código do formulário que será obtido de frmformulario. |
VERSAOFORM | Um dos atributos que compõem a chave composta guarda qual é a versão do formulário utilizado, será obtido da frmformulario. |
CODCAMPO | Um dos atributos que compõem a chave composta, armazena qual o campo respondido.Será buscado da tabela FRMCAMPO. |
CHAVERESP | Utilizado para registrar quem está respondendo o campo. Ficará a cargo do sistema terceiro definir qual será o identificador utilizado para diferenciar os usuários, caso o mesmo deseje saber quem está respondendo tal questão. Se o sistema terceiro não necessitar da identificação de quem respondeu o campo será gerado um número sequencial sem vinculo com usuários. |
ARQUIVO | Resposta dada para o campo na forma de arquivo, podendo ser qualquer tipo de arquivo desde que não exceda o tamanho de 16 mb . |
NOMEARQUIVO | Nome do arquivo escolhido para ser utilizado como resposta a um determinado campo do tipo file. |
FRMTPVALIDACAOTPCAMPO
Armazena quais os tipos de validações disponíveis para um determinado campo.
CODTIPOCAMPO | Campo que armazena qual será o tipo do campo que possuirá a validação.Chave primária que referencia a tabela frmtipocampo. |
CODTIPOVALIDACAO | Campo que armazena qual será o tipo de validação que o campo possuirá. |
FRMTIPOVALIDACAO
Tabela responsável por armazenar os tipos de validações para os campos, armazena as chamadas das funções que estarão previamente cadastradas em um arquivo mantido pelo DTI. Estas funções podem ser em JavaScript ou PHP.
NOME | Nome dado para a validação, será usado como referencia descritiva. |
DESCRICAO | Informação opcional sobre a utilização,por exemplo oque faz,como faz para que serve a validação. |
MENSAGEM | Texto informativo que será mostrado ao usuário conforme a regra de validação da função. |
NOMEPHP | Nome da função PHP que será chamada para realizar a validação dos valores. |
NOMEJS | Nome da função JavaScript que será chamada para realizar a validação dos valores. |
CONFIGPARAM | Armazena o valor da configuração do parâmetro que indica se a função de validação usará ou não a passagem de parâmetros, passando por exemplo o valor a ser comparado.Este atributo poderá assumir os seguintes valores : S(Sim) : Obriga a passagem de parâmetro para a função N(Não) : Não é permitida a passagem de parâmetro para a função de validação O(Opcional) : A passagem de parâmetro torna-se opcional, dependendo da situação o mesmo poderá ou não ser passado,de acordo com a necessidade do usuário. |
Tabela responsável por armazenar a associação entre uma validação e um determinado campo pertencente a um formulário.
CODFORMULARIO | Um dos atributos que compõem a chave composta, identifica a qual formulário a validação está associada.Obtido de frmformulario |
VERSAOFORM | Um dos atributos que compõem a chave composta, refere-se a qual versão do formulário a versão está associada.Obtido da frmformulario. |
CODCAMPO | Um dos atributos que compõem a chave composta,identifica a qual campo do formulário a validação pertence. Obtido de frmcampo. |
VERSAOCAMPO | Um dos atributos que compõem a chave composta refere-se a qual versão do campo a validação pertence. Obtido de frmcampo. |
CODVALIDACAO | Atributo que compõem a chave composta se refere a qual validação o registro esta associado. Obtido de FRMVALIDACAO. |
CODTIPOVALIDACAO | Atributo que registra qual será o tipo de validação utilizada para validar o campo. |
ORDEM | Representa em que sequencia a validação deverá ser executada, quanto menor o valor primeiro a validação será executada. |
VALORPARAM | Atributo que armazena qual será o valor a ser utilizado como parâmetro para a função seja ela PHP ou JAVASCRIPT cadastrada na tabela FRMTIPOVALIDACAO.Por exemplo:Diga-se que o valor do atributo parâmetro para o campo idade por exemplo seja 78, e que tenhamos uma validação de idade vinculada a este campo.A função de validação irá comparar o conteúdo digitado no campo com o valor do parametro. |
Ações pensadas e não implementadas:
As ações descritas abaixo foram pensadas/questionadas na construção do projeto, porém devido a intenção de não criarmos algo muito complexo ou ainda possibilidade de não ser utilizado, pensou-se no simples e, com a colaboração de todos, irmos construindo algo mais complexo.
-> Cadastros de máscaras a serem utilizadas nos campos; Cabe salientar que algumas já estão contempladas no sistema, como por exemplo: máscaras de data, valores, etc...;
-> Possibilidade de ter subitens em item de campo,por exemplo, ao selecionar um radio abrir várias caixas de texto para preenchimento destes campos;
-> Validações entre dois campos de um mesmo formulário,por exemplo, comparar se o campo de Data Inicial é maior que o campo de Data Final;