Páginas filhas
  • Cadastros - Metadados Logix - LGX


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.


DICAS


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:

QualificadorValor
YEAR1
MONTH

2

DAY3
HOUR

4

MINUTE5
SECOND6
FRACTION7

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.
Quando o Componente não for informado, e no formulário onde esta coluna for usada, o componente estiver definido como AUTO, o metadado assumirá um componente de forma automática baseado no tipo de dado da coluna, onde:

Tipo de dadoComponnente
SMALLINT, INTEGER ou SERIALLNumericField (Sem casas decimais)
DECIMAL

LNumericField (com casas decimais)

DATELDateField
DATETIME

LDateTimeField

CHAR ou VARCHAR (até 100 caracteres)LTextField
CHAR ou VARCHAR (acima de 100 caracteres)LTextArea

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)



CampoObrigatórioDescrição
ValorSIM

Valor do item da legenda ou valor para satisfazer a condição.

(informação) Em caso de valor nulo registre o conteúdo com o texto NIL.

TipoSIM

Tipo da legenda (TEXTO, IMAGEM ou CHECKBOX).

DescriçãoSIM

Descrição para cada valor contido no domínio.

ImagemNÃO

Imagem a ser utilizada para representar cada valor contido no domínio (somente para componentes tipo GRID)

CondiçãoNÃO

Operador, função ou macro (CHECKED ou UNCHECKED) para satisfazer o item da legenda.

OrdemSIM

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:


CampoDescrição


Formulário

Before LoadFunção 4GL que será executada antes da abertura do programa, caso esta função retorne FALSE, a abertura do programa será cancelada.
After LoadFunção 4GL que será executada depois da abertura do programa, caso esta função retorne FALSE, a abertura do programa será cancelada.
Barra de FerramentasNome da Barra de Ferramentas previamente cadastrada para o formulário no programa FRM1001.







 

Tabelas

do
Formulário

AliasAlias da tabela que compõe o formulário (utilizado apenas quando a mesma tabela é cadastrada mais de uma vez no formulário).
ModeloModelo da tabela no formulário.
Posição Record 4GLPosição do parâmetro da RECORD ou do ARRAY de RECORD da tabela quando este for enviado para o metadado.
CardinalidadeCardinalidade 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íveisQuantidade de linhas que serão apresentadas no formulário para tabelas do tipo DETAIL e MASTER-DETAIL.
Before RowFunção 4GL que será executada antes de trocar de linha numa grid.
After RowFunção 4GL que será executada após trocar de linha numa grid.
Before Insert RowFunção 4GL que será executada antes de incluir uma linha na grid.
After Insert RowFunção 4GL que será executada após a inclusão de uma linha na grid.
Before Delete RowFunção 4GL que será executada antes de excluir uma linha da grid.
After Delete RowFunçã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 MestreIndica se o componente será um campo mestre (apenas para tabelas do tipo MASTER-DETAIL).
Filtro de pesquisaIndica se será possível filtrar a pesquisa por pelo componente.
ListarIndica se o componente será exibido na opção Listar do formulário de cadastro.
Exibe descriçãoIndica se será exibida a descrição (label) do componente no formulário.
Quebra LinhaIndica se o componente quebra linha, ou seja, aparecerá ao lado do compo-nente anterior ou na ordem correta do grupo de componentes.
MáscaraMá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.
PropriedadesPropriedade do componente de edição.
Para mais informações de como registrar informações neste campo acesse o tópico Propriedades em Caracter&iacute;sticas Gerais - Metadados Logix 
Propriedades (Grid)

Propriedade da coluna da grid.
Para mais informações de como registrar informações neste campo acesse o tópico Propriedades em Caracter&iacute;sticas Gerais - Metadados Logix 

RelacionadoIndica se o componente tem relação de outro componente informado no formulário.
Tabela RelacionadaTabela que será utilizada de relação.
Alias RelacionadoAlias da tabela que será utilizada como relação (se houver).
Coluna RelacionadaColuna que será utilizada de relação.
ZoomNome do zoom do componente, previamente cadastrado no programa FRM1008.
Before ZoomFunção 4GL que será executada antes da abertura do zoom do componente.
After ZoomFunção 4GL que será executada após a abertura do zoom do componente.
Before FieldFunção 4GL que será executada quando o componente ganhar foco.
ValidFunçã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 FieldFunção 4GL que será executada quando o componente perder o foco.



Agrupamento

de

componentes

TabelaNome da tabela da coluna a partir de qual deve considerar um novo grupo de componentes.
AliasNome do alias da tabela da coluna a partir de qual deve considerar um novo grupo de componentes.
ColunaNome 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ítuloTítulo que aparecerá no formulário caso o grupo de componentes for Painel com título ou folder.
ArranjoQuantidade de colunas que terá o componente para a organização dos cam-pos e descrições.
ExpansívelIndica se o grupo de componentes irá expandir de acordo com o tamanho da tela.

DICAS


Para evitar falhas de conversão de formatos de colunas do tipo DATETIME no formulário:

  • Para colunas onde o componente for LDATETIME ou AUTO, quando no cadastro da tabela/coluna (FRM1007) estiver registrado com tipo DATETIME ou componente LDATETIME, atente para que seja definida a propriedade RANGE
    na aba COMPONENTES e coluna PROPRIEDADES como {'RANGE','YEAR','SECOND'}.
  • Para colunas do tipo DATETIME que sejam de uma tabela do formulário definida como tipo DETALHE, também deverá definir a configuração  {'RANGE','YEAR','SECOND'} na coluna PROPRIEDADES (GRID) da aba COMPONENTES, pois será preciso recuperar a definição do formato do DATETIME para apresentar o valor corretamente a partir do botão LISTAR que apresenta um GRID com a lista de registros do cadastro.



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:

Tipo de dadoComponnente
SMALLINT, INTEGER ou SERIALLNumericField (Sem casas decimais)
DECIMAL

LNumericField (com casas decimais)

DATELDateField
DATETIME

LDateTimeField

CHAR ou VARCHAR (até 100 caracteres)LTextField
CHAR ou VARCHAR (acima de 100 caracteres)LTextArea

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

      (seleção) 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:

CampoDescrição
Mostra descriçãoIndica se será exibida a descrição do componente no formulário.
Quebra LinhaIndica se o componente quebra linha, ou seja, aparecerá ao lado do componente anterior ou na ordem correta do grupo de componentes.
MultivaloradoIndica se o componente é multivalorado, ou seja, para o mesmo componente posso inserir vários registros.
AssociaçãoNome da associação do multivalorado, todos os campos com o mesmo nome de associação estarão no mesmo multivalorado.
Before MultivaloradoFunção 4GL disparada antes da abertura da tela do multivalorado, caso esta função retorne FALSE, a abertura do multivalorado será cancelada.
After MultivaloradoFunção 4GL disparada após o fechamento da tela de multivalorado.
Campo AvançadoIndica se o campo será visível na tela principal ou somente na tela secundária.
Chave primáriaIndica se será feita a consistência de chave primária para a coluna.
MáscaraMá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.
PropriedadesPropriedade 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.
Para mais informações de como registrar informações neste campo acesse o tópico Propriedades em Características Gerais - Metadados Logix 



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.





  • Sem rótulos