Histórico da Página
Informações | ||||||
---|---|---|---|---|---|---|
| ||||||
|
Agora que já conhecemos a lista de todos os cadastros metadados disponíveis no produto Logix, é preciso detalhar algumas características e dicas de uso em casa um dos cadastros para obter o melhor aproveitamento das funcionalidades disponíveis.
Cadastro de Tabelas e Colunas (FRM1007)
- Toda tabela deve OBRIGATORIAMENTE possuir chave primária. Para isso basta sinalizar toda coluna que pertence a chave primária na coluna "Chave primária".
- É ideal que toda tabela criada no banco Logix para armazenar informações que podem ser visualizadas ou gerenciadas por formulários metadado, pesquisa relacional ou relatórios sejam devidamente registradas no programa FRM1007 (Cadastro de tabelas e colunas), registrando chave primária e chaves estrangeiras que são muito importantes no uso da ferramenta Pesquisa Relacional.
- Existem duas maneiras de especificar a chave primária de uma determinada tabela:
- Acionando diretamente o cadastro de índices de tabelas (FRM0014).
- A partir do Cadastro de tabelas e colunas (FRM0007), acionar o botão "Chave Primária".
O nome físico da chave primária será PK_<nome da tabela>.
A ordem das colunas na chave primária será igual a ordem das colunas na tabela.
Informações | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||
Para colunas do tipo DATETIME, atente para a definição do valor a ser informado para o TAMANHO e PRECISÃO da coluna, pois indica o formato. Uma coluna do tipo DATETIME é definida com um qualificador inicial e um qualificador final. Um qualificador é reconhecido como YEAR, MONTH, DAY, HOUR, MINUTE, SECOND ou FRACTION. Neste caso, no cadastro FRM1007, a informação que define o TAMANHO da coluna, será reconhecida como "Qualificador inicial" e a PRECISÃO será reconhecida como "Qualificador final" para colunas do tipo DATETIME. O valor do qualificador a ser informado no cadastro da coluna DATETIME será respeitando a legenda abaixo:
Exemplo: Para uma coluna DATETIME YEAR TO SECOND, deve-se cadastrar o TAMANHO como 1 (YEAR) e a PRECISÃO como 6 (SECOND) Para a coluna Versão pode-se tomar como referência a versão do produto Logix, pois os dados de versão consideram Versão, Release e Modificação, sendo todos valores numéricos. Para a coluna Módulo, escolha o módulo usando a lista disponível de módulos Logix a que a tabela está ligada. A coluna Componente permite definir qual componente gráfico será utilizado para representar uma determinada coluna.
Para colunas que possuem cadastro de Legenda, será utilizada a regra para criação de campos com legenda. Mais informações veja o item Cadastro de Legendas para Colunas de Tabelas (FRM1013). |
Cadastro de Índices de Tabelas (FRM1014)
- Ao cadastrar chave primária ou índices para uma tabela no programa FRM1014 que é acionado a partir do botão "Chave Primária" ou "Índices" do cadastro de tabelas (FRM1007), preste atenção ao selecionar o tipo correto do índice que pode ser: Chave Primária, Índice Único ou Índice Duplicado.
- A ordem das colunas na chave primária pode ser diferente da ordem das colunas na tabela do banco de dados.
Cadastro de Relacionamentos (Referências) de Tabelas (FRM1006)
Os formulários de cadastro realizam consistências de integridade referencial de acordo com as referências de tabela cadastradas no metadado.
Pode ser definida uma ordem das colunas na chave estrangeira diferente da ordem das colunas na tabela no banco de dados.
É importante definir a ordem das colunas para referências físicas, pois alguns bancos de dados requerem que a ordem das colunas na chave estrangeira sejam a mesma ordem da pesquisa.
Cadastro de Legendas para Colunas de Tabelas (FRM1013)
Campo | Obrigatório | Descrição |
---|---|---|
Valor | SIM | Valor Valor do item da legenda ou valor para satisfazer a condição.
|
Tipo | SIM | Tipo da legenda (TEXTO, IMAGEM ou CHECKBOX). |
Descrição | SIM | Descrição para cada valor contido no domínio. |
Imagem | NÃO | Imagem a ser utilizada para representar cada valor contido no domínio (somente para componentes tipo GRID) |
Condição | NÃO | Operador, função ou macro (CHECKED ou UNCHECKED) para satisfazer o item da legenda. |
Ordem | SIM | Ordem dos itens da legenda |
- A partir do cadastro de legendas, o metadado é capaz de escolher o melhor componente para representar um determinado campo de tabela, onde:
- Até 3 opções será utilizado um componente RADIOGROUP
- Mais de 3 posições é utilizado um componente COMBOBOX
- Para campos booleanos, deve ser utilizado o tipo de legenda CHECKBOX e neste caso:
- Para identificar o valor “marcado”, deve ser utilizada a macro CHECKED no campo de condição
- Para identificar o valor “desmarcado”, deve ser utilizada a macro UNCHECKED no campo de condição
Cadastro de Formulários de Zoom (FRM1008)
- O Cadastro de Zoom facilita a consulta e também cadastro de registros encontrados em outros formulários ou de uma lista extensa de registros.
A execução de um zoom a partir do acionamento de uma lupa que é exibida na lateral direita de um campo de um formulário em execução se assemelha a uma lista abaixo, podendo ser de seleção simples ou multi-seleção:
Cadastro de Barra de Ferramentas (FRM1001)
- Todo programa deve possuir uma toolbar, onde são definidas as opções padrões de cada formulário (incluir, modificar, consultar, excluir, etc.) e/ou opções específicas.
- Registre as operações de cada formulário conforme necessidade e tipo do formulário (Formulário de cadastro ou Formulário de Parâmetros)
- Operações padrões são executadas automaticamente pelo metadado. Já as operações específicas basta que o nome da operação informado seja diferente de uma das operações padrões do metadado, que já será considerada uma operação "não padrão" e todo o processamento deverá ser implementado pelo desenvolvedor.
Cadastro de Formulários de Cadastro (FRM1002)
- Antes de cadastrar um novo formulário, deve-se cadastrar a sua respectiva barra de ferramentas através da opção Barra Ferramentas
- As funções definidas para os eventos BEFORE <ação> ou AFTER <ação> são funções desenvolvidas em linguagem 4GL.
Informações referente a alguns campos do cadastro de colunas de formulário CRUD:
Campo | Descrição | |
---|---|---|
Formulário | Before Load | Função 4GL que será executada antes da abertura do programa, caso esta função retorne FALSE, a abertura do programa será cancelada. |
After Load | Função 4GL que será executada depois da abertura do programa, caso esta função retorne FALSE, a abertura do programa será cancelada. | |
Barra de Ferramentas | Nome da Barra de Ferramentas previamente cadastrada para o formulário no programa FRM1001. | |
Tabelas do | Alias | Alias da tabela que compõe o formulário (utilizado apenas quando a mesma tabela é cadastrada mais de uma vez no formulário). |
Modelo | Modelo da tabela no formulário. | |
Posição Record 4GL | Posição do parâmetro da RECORD ou do ARRAY de RECORD da tabela quando este for enviado para o metadado. | |
Cardinalidade | Cardinalidade da tabela em relação as outras tabelas informadas no formulá-rio. Quando for N..0, não será preciso incluir registro nesta tabela e quando for N..1, será necessário incluir pelo menos um registro. | |
Linhas visíveis | Quantidade de linhas que serão apresentadas no formulário para tabelas do tipo DETAIL e MASTER-DETAIL. | |
Before Row | Função 4GL que será executada antes de trocar de linha numa grid. | |
After Row | Função 4GL que será executada após trocar de linha numa grid. | |
Before Insert Row | Função 4GL que será executada antes de incluir uma linha na grid. | |
After Insert Row | Função 4GL que será executada após a inclusão de uma linha na grid. | |
Before Delete Row | Função 4GL que será executada antes de excluir uma linha da grid. | |
After Delete Row | Função 4GL que será executada após excluir uma linha da grid. | |
Pesquisa? | Indica se na tabela informada será feita consulta. | |
Modifica? | Indica se na tabela informada será feita alteração. | |
Exclui? | Indica se na tabela informada será feita exclusão. | |
Inclui? | Indica se na tabela informada será feita inclusão. | |
Componentes do Formulário | Campo Mestre | Indica se o componente será um campo mestre (apenas para tabelas do tipo MASTER-DETAIL). |
Filtro de pesquisa | Indica se será possível filtrar a pesquisa por pelo componente. | |
Listar | Indica se o componente será exibido na opção Listar do formulário de cadastro. | |
Exibe descrição | Indica se será exibida a descrição (label) do componente no formulário. | |
Quebra Linha | Indica se o componente quebra linha, ou seja, aparecerá ao lado do compo-nente anterior ou na ordem correta do grupo de componentes. | |
Máscara | Máscara do componente do componente (se for nulo, será usado a do cadastro de tabela). | |
Imagem (Grid) | Nome da imagem que será apresentada quando o componente for exibido em uma grid. | |
Texto (Grid) | Texto que será apresentado quando o componente for exibido em uma grid. | |
Propriedades | Propriedade do componente de edição. Para mais informações de como registrar informações neste campo acesse o tópico Propriedades em Características Gerais - Metadados Logix | |
Propriedades (Grid) | Propriedade da coluna da grid. | |
Relacionado | Indica se o componente tem relação de outro componente informado no formulário. | |
Tabela Relacionada | Tabela que será utilizada de relação. | |
Alias Relacionado | Alias da tabela que será utilizada como relação (se houver). | |
Coluna Relacionada | Coluna que será utilizada de relação. | |
Zoom | Nome do zoom do componente, previamente cadastrado no programa FRM1008. | |
Before Zoom | Função 4GL que será executada antes da abertura do zoom do componente. | |
After Zoom | Função 4GL que será executada após a abertura do zoom do componente. | |
Before Field | Função 4GL que será executada quando o componente ganhar foco. | |
Valid | Função 4GL responsável por validar o componente. Se o retorno da função for FALSE, o foco permanecerá no componente de edição. | |
After Field | Função 4GL que será executada quando o componente perder o foco. | |
Agrupamento de componentes | Tabela | Nome da tabela da coluna a partir de qual deve considerar um novo grupo de componentes. |
Alias | Nome do alias da tabela da coluna a partir de qual deve considerar um novo grupo de componentes. | |
Coluna | Nome da coluna a partir de qual deve considerar um novo grupo de componentes. | |
Tipo | Indica o tipo do grupo de componentes. Para mais informações de como registrar informação neste campo acesse o tópico Grupo de Componentes - Características Gerais - Metadados Logix | |
Título | Título que aparecerá no formulário caso o grupo de componentes for Painel com título ou folder. | |
Arranjo | Quantidade de colunas que terá o componente para a organização dos cam-pos e descrições. | |
Expansível | Indica se o grupo de componentes irá expandir de acordo com o tamanho da tela. |
Informações | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
Para evitar falhas de conversão de formatos de colunas do tipo DATETIME no formulário:
Para colunas que tiverem o Componente definido como AUTO, irá assumir o Componente definido no cadastro da Tabela (FRM1007) e caso este também não esteja informado irá assumir o padrão abaixo:
Para colunas que possuem cadastro de Legenda, será utilizada a regra para criação de campos com legenda. Mais informações veja o item Cadastro de Legendas para Colunas de Tabelas (FRM1013). Para exibir a descrição de campos de tabelas relacionadas, sem a necessidade de criar coluna virtual no formulário CRUD, o que obriga o desenvolvedor implementar no código fonte toda a carga de dados de colunas virtuais com este objetivo, é possível fazer o relacionamento no formulário de tabelas pela chave estrangeira desligando as operações de INSERT, DELETE e UPDATE e apenas será preciso setar a propriedade ENABLE_VALID_NOT_NULL da tabela relacionada para FALSE no evento AFTER_LOAD do formulário, para evitar mensagem de obrigatoriedade de valor para o campo de descrição destas tabelas relacionadas, nas operações de INSERT e UPDATE de registros do formulário. Exemplo: CALL _ADVPL_set_property(m_form_reference,"ENABLE_VALID_NOT_NULL",FALSE,"<nome_tabela_relacionada>") |
- Atualmente existem 3 tipos de formulários de cadastro:
- MESTRE
- DETALHE
- MESTRE-DETALHE
Toda tabela definida como DETALHE será apresentada sempre no formato de GRID e tabela MESTRE é apresentada com campos lado a lado.
Formulário tipo Mestre
Formulário para cadastro de tabela no formato de campos lado a lado.
Formulário tipo Detalhe
Formulário para cadastro de tabela no formato de um GRID.
Formulário tipo Mestre-Detalhe
Formulário para cadastro de uma mais tabelas onde uma parte dos campos fica disponível lado a lado (campos marcados como MESTRE) e outra parte de campos são disponibilizados em formato GRID.
É possível definir formulários tipo MESTRE-DETALHE da mesma tabela de duas formas:
- Incluindo no formulário uma tabela do tipo MESTRE-DETALHE e especificando os campos MESTRE.
- Incluindo no formulário a mesma tabela duas vezes, porém, uma do tipo MESTRE e outra do tipo DETALHE e especificando a relação das duas tabelas e informando uma ALIAS para diferenciá-las entre si.
- Definir a relação dos campos entre as duas tabelas / alias:
Para especificar os campos MESTRE de uma tabela MESTRE-DETALHE deve-se sinalizar as colunas que serão MESTRE na aba 3-Componentes coluna "Campo Mestre"
Quando usar formulário com tabela do tipo MESTRE-DETALHE?
- Regra de negócio com poucas validações, especialmente nos campos MESTRE
- Construção simplificada do formulário
- Mais complicado para manipular informações dos campos MESTRE
Quando usar formulário com duas tabelas, uma do tipo MESTRE e outra do tipo DETALHE?
- Regra de negócio com validações complexas, como validações nos campos MESTRE, integridade referencial, etc.
- Formulário mais elaborado
- Facilidade para manipular informações dos campos MESTRE
Cadastro de Formulários de Parâmetros (FRM1003)
- Antes de cadastrar um novo formulário, deve-se cadastrar a sua respectiva barra de ferramentas através da opção Barra Ferramentas
- As funções definidas para os eventos BEFORE <ação> ou AFTER <ação> são funções desenvolvidas em linguagem 4GL.
- O formulário de parâmetro possui uma funcionalidade de campo chamada Multivalorado, que permite informar uma lista de valores para o mesmo componente, disponibilizando uma lista para o usuário preencher todos os valores a serem considerados no processamento.
Informações referente a alguns campos do cadastro de colunas de formulário de parâmetros:
Campo | Descrição |
---|---|
Mostra descrição | Indica se será exibida a descrição do componente no formulário. |
Quebra Linha | Indica se o componente quebra linha, ou seja, aparecerá ao lado do componente anterior ou na ordem correta do grupo de componentes. |
Multivalorado | Indica se o componente é multivalorado, ou seja, para o mesmo componente posso inserir vários registros. |
Associação | Nome da associação do multivalorado, todos os campos com o mesmo nome de associação estarão no mesmo multivalorado. |
Before Multivalorado | Função 4GL disparada antes da abertura da tela do multivalorado, caso esta função retorne FALSE, a abertura do multivalorado será cancelada. |
After Multivalorado | Função 4GL disparada após o fechamento da tela de multivalorado. |
Campo Avançado | Indica se o campo será visível na tela principal ou somente na tela secundária. |
Chave primária | Indica se será feita a consistência de chave primária para a coluna. |
Máscara | Máscara do componente do componente (se for nulo, será usado a do cadastro de tabela). |
Máscara (Grid) | Máscara do componente quando esta for apresentada em uma grid. |
Imagem (Grid) | Nome da imagem que será apresentada quando o componente for exibido em uma grid. |
Texto (Grid) | Texto que será apresentado quando o componente for exibido em uma grid. |
Propriedades | Propriedade do componente de edição. Para mais informações de como registrar informações neste campo acesse o tópico Propriedades em Características Gerais - Metadados Logix |
Propriedades (Grid) | Propriedade da coluna da grid. |
Cadastro de Colunas Virtuais de Formulário (FRM1009)
- No formulário de colunas virtuais serão cadastrados os campos inexistentes nas tabelas do metadado ou campos inexistentes nas tabelas utilizadas no formulário de Cadastro (FRM1002) ou formulário de Parâmetros (FRM1003) ou formulário de Zoom (FRM1008).
- Utilizado principalmente para campos de descrição em formulários de cadastro, que muitas vezes não exige realmente usar coluna virtual.
- Para colunas virtuais configuradas com o tipo DATETIME atente para a configuração do TAMANHO e PRECISÃO que determina o qualificador inicial e final do formato do DATETIME. Para mais detalhes acesse as dicas do item Cadastro de Tabelas e Colunas (FRM1007).
Cadastro de Legendas de Colunas Virtuais de Formulário (FRM1016)
O processo de cadastro de legenda para colunas virtuais de formulário segue o mesmo processo de cadastro de Legendas para Colunas de Tabelas (FRM1013), considerando apenas que neste caso são colunas virtuais de um formulário de cadastro (FRM1002) ou formulário de parâmetros (FRM1003) ou formulário de Zoom (FRM1008).
Para o campo Imagem, informe o nome de uma imagem (.png) que esteja disponível no Repositório de Objetos (Imagem precisa estar compilada no RPO).
O campo Condição define uma condição para apresentação da legenda. Este campo é muito usado para legenda de campo do tipo CHECKBOX e o valor informado é CHECKED ou UNCHECKED.
O campo Valor é o valor que será usado para atribuir para a coluna do formulário que é considerado para atribuir para o valor da variável associada ao componente do campo de tela.