Árvore de páginas

Adição de Objetos Dinâmicos

Objetivo

Permitir a adição de objetos dinâmicos a um perfil de um programa.

ProgramaSO0701
Pré-Requisito

É pré-requisito para a execução dessa função:
Função Propriedades dos Objetos (SO0701)

Visão Geral

Por intermédio dessa função é possível criar novos objetos dinâmicos. É possível criar objetos para alterar a estética do programa (retângulos, textos), adicionar botões e objetos que armazenam valor (campo, caixa de seleção, caixa de checagem, etc.).

Para os objetos que armazenam valor, é possível adicionar:

  • novos Atributos (que são armazenados em uma tabela de extensão à tabela do programa, armazenado no banco repositório).
  • Atributos de consulta (é possível adicionar campos de tabelas existentes, desde que as mesmas tenham alguma relação com a tabela do programa, por intermédio da criação de uma ligação).
  • Atributos de tabelas específicas (é possível adicionar atributos de tabelas de bancos específicos do cliente, desde que o relacionamento entre a tabela do programa e a tabela de extensão seja um para um)

Descrição

Janela Adição de Objetos Dinâmicos

Esta tela é composta pela parte inferior da paleta de Propriedades e é utilizada para inserir objetos dinâmicos na tela a ser otimizada.

Nas tabelas a seguir estão descritos os elementos desta janela:

Nome Botão

Descrição

Cancela

Quando acionado, cancela a criação do objeto dinâmico selecionado anteriormente.

Botão

Esse botão pode ser utilizado para visualização de arquivos, execução de programas, exibição de páginas html e atalhos para nova mensagem eletrônica. Pode ainda ser relacionado a registros ou a um programa.

Retângulo

Esse objeto dinâmico pode ser utilizado para agrupar objetos de um mesmo assunto ou contexto. É utilizado para melhorar a estética e disposição dos objetos em uma tela.
Radio

Esse objeto dinâmico é utilizado quando se deve obter uma informação com possibilidades finitas. É utilizado geralmente quando existem poucas opções de escolha. Podem ser associados rótulos a valores internos.

Exemplo:

Exemplo:

Nome: intTipExec

Rótulo: Tipo de Execução

Lista Itens: On-line, 1, Batch, 2

Tipo de Dado: Inteiro

Formato: >9

Valor Inicial: 2

Caixa de Seleção

Objeto dinâmico utilizado quando é necessário obter uma informação com possibilidades finitas. É utilizado geralmente quando existem várias opções de escolha. Podem ser associados rótulos a valores internos.

Exemplo:

Exemplo:

Nome: desDiaSemana

Rótulo: Dia da Semana

Lista Itens: Segunda-feira, SG, Terça-feira, TE, Quarta-feira, QA, Quinta-feira, QI, Sexta-feira, SX, Sábado, SA, Domingo, DO

Tipo de Dado: Caracter

Formato: X(02)

Valor Inicial: SX

EditorObjeto dinâmico utilizado para informar textos com uma grande quantidade de caracteres, cuja visualização seria inviável em um objeto do tipo Campo. Deve ser utilizado para descrever observações, comentários e detalhamentos sobre um determinado contexto.
Campo

Objeto dinâmico utilizado para informar qualquer tipo de valor a ser armazenado, com infinitas possibilidades. Permite uma maior abertura para solicitação de informação ao usuário.

Exemplo:

Nome: datNascimento

Rótulo: Data Nascimento

Tipo de Dado: Data

Formato: 99/99/9999

Valor Inicial: today

TextoObjeto dinâmico utilizado para atribuir textos estáticos em um programa, auxiliando na definição e explicação da disposição de outros objetos. Pode ser utilizado juntamente com um retângulo (sobre um retângulo).
Caixa de Checagem

Objeto dinâmico utilizado para valores lógicos a serem armazenados.

Exemplo:

Nome: datNascimento

Rótulo: Data Nascimento

Tipo de Dado: Data

Formato: 99/99/9999

Valor Inicial: today

Importante 1:

Após selecionar o objeto dinâmico que se deseja criar, é necessário selecionar a posição na tela em que ele deve ser criado. É aconselhável criar os objetos não muito próximos das extremidades da tela, para que não ocorram erros de posicionamento do rótulo ou do próprio objeto na tela.

Depois de instanciado, o objeto pode ser reposicionado por meio de seu redimensionamento, reposicionamento (arrastar o objeto na tela) ou por meio das próprias propriedades do objeto (tamanho, largura, linha e coluna).

Para objetos dinâmicos, a frame onde o objeto dinâmico é instanciado é considerada o Objeto Pai do novo objeto.

Importante 2:

Objetos dinâmicos em relatório - Não é possível criar objetos dinâmicos em relatórios. Os relatórios não estão relacionados a tabelas diretamente, impossibilitando a criação de objetos dinâmicos. Mesmo que o Usuário Administrador consiga criar objetos em ambiente de desenvolvimento, eles não são aplicados em ambiente de aplicação de otimização.


Janela Lista de Tabelas do Programa – Adição Objetos Dinâmicos

Esta tela é utilizada na seleção de qual tabela deve ser relacionada ao objeto dinâmico.

Na tabela a seguir estão descritos os elementos desta janela:


Nome Botão

Descrição

Confirma

Quando acionado, esse botão confirma a tabela selecionada.

Cancela

Quando acionado, esse botão cancela a tabela selecionada.


Importante 1:

Ao instanciar um objeto (que possui atributo relacionado) em uma frame que trata de mais de uma tabela internamente, é solicitado ao usuário que defina qual tabela dever ser relacionada ao novo objeto.

Por intermédio do browse é possível selecionar uma tabela entre todas as tabelas com as quais determinada frame possui relação. Ao informar a tabela, não é possível modificá-la. Para modificá-la, é necessário eliminar o objeto e criá-lo novamente.

É por meio desta tabela que será criado o relacionamento de extensão para  o novo objeto criado (para atributos SOR) ou será utilizada na criação de ligações.

Importante 2:


Propriedades mais importantes para criação de objetos dinâmicos


A listagem a seguir apresenta as principais propriedades utilizadas na criação de objetos dinâmicos.

Propriedades

Tipos de Objeto

Descrição

Tipo Atributo

Caixa Checagem

Caixa Seleção

Campo

Editor

Radio

Permite selecionar se a fonte de dados do objeto será o banco repositório (Atributo SOR), uma tabela do produto EMS para consulta (Atributo Consulta), ou então uma tabela de outro banco de dados qualquer (Atrib. Tab. Específica).

Importante:

Atributo SOR – caso não exista o atributo, o mesmo é criado no banco repositório MGSOR, na tabela de extensão da tabela do programa (todo o processo de criação do atributo no dicionário de dados ocorre automaticamente).

Atributo Consulta – utilizado para adicionar campos de uma tabela já existente para consulta. Campos desse tipo não podem ser habilitados. Para atributos Consulta é necessário criar uma ligação.

Atributos Tabela Específica – utilizado para adicionar campos de bancos de dados específico do cliente. Nesses casos, o SOP efetua o controle de inclusão e modificação de registros da tabela do banco específico. Para utilizar esse tipo de atributo, é necessário que a tabela específica tenha um relacionamento de extensão com a tabela do programa (ou seja, um para um). Essa relação deve ser informada na ligação do objeto.

Ligação

Caixa Checagem

Caixa Seleção

Campo

Editor

Radio

Permite informar, por intermédio do botão de zoom (veja a descrição da Função Ligação (SO0708)), a ligação dos objetos dinâmicos com extensão do tipo “Atributo Consulta” e “Atrib Tab Específica”.

NomeTodos

Identificação interna do objeto. É recomendável que a identificação pelo nome seja única para cada programa. Utilizar apenas caracteres do alfabeto (A-Z, a-z), dígitos (0-9), (_) e (-). Não deve-se utilizar espaços.


Exemplo:

nomUsuario, nome-usuario, nom_usuario, desEndereco01, des-endereco-01, des_endereco_01

No caso de objetos dinâmicos relacionados a atributos de extensão, que sejam novos e do tipo “SOR”, é aconselhável seguir as recomendações acima. Já no caso de atributos “SOR” já existentes ou então em atributos do tipo “Consulta” ou “Extensão”, é sempre recomendável utilizar o botão de zoom (veja a descrição da Função Ligação (SO0708)).

Quando o nome é escolhido por intermédio do zoom de nomes, as propriedades rótulo, tipo dado e formato são atualizadas automaticamente.

Rótulo

Botão

Caixa Checagem

Caixa Seleção

Campo

Editor

Radio

Contém a identificação externa do objeto. Por intermédio do rótulo é possível identificar um objeto na tela.

Botões podem utilizar rótulos ou imagens para identificação.

Tipo Dado

Caixa Checagem

Caixa Seleção

Campo Editor

Radio

Texto

Contém o tipo de dado de um objeto. Os tipos de dado normalmente podem ser: caracter, data, decimal, inteiro, lógico. Objetos do tipo “Editor” sempre são do tipo “caracter”. Objetos do tipo “Caixa Checagem” sempre são do tipo “lógico”.
Formato

Caixa Checagem

Caixa Seleção

Campo

Texto

Contém o texto que indica o formato do valor de um objeto. Por meio do formato é possível atribuir uma formatação ao objeto.
Lista Itens

Caixa Seleção

Radio

Contém a lista de rótulos e valores de um objeto do tipo radio ou caixa de seleção.


Exemplo:

“On-line, 1, Batch, 2”.

Veja mais informações na descrição da Função Lista Itens (SO0701C).

Valor Inicial

Caixa Checagem

Caixa Seleção

Campo

Editor

Radio

Texto

Contém o valor inicial de um determinado objeto, no caso de o mesmo conter um valor fixo, senão, contém as informações do programa de retorno externo que retornará o valor inicial. Essa propriedade pode ser utilizada na inicialização de objetos em adição de registros ou em relatórios (seleção e parâmetros) e também em situações onde se deseja que se aplique o valor inicial para os determinados objetos dinâmicos (caixa de checagem, caixa de seleção e radio), quando não existir um registro relacionado no Banco Repositório ou na ligação do objeto. Os valores iniciais devem ser de acordo com o tipo de dado. Em um radio com Lista Item “On-line, 1, Batch, 2”, o valor inicial deve ser 1 ou 2. Para atributos lógicos, o valor deve ser Yes ou No. Veja mais informações na descrição da Função Valor Inicial (SO0701M).
Tp ChamadaBotãoIndica o tipo de chamada de um botão. Essa propriedade deve ser utilizada juntamente com a propriedade “valor/campo”.
Valor/CampoBotãoContém o nome do atributo correspondente ou do programa a ser executado. Essa propriedade é utilizada juntamente com a propriedade “Tp Chamada”. Veja mais informações na descrição da Função Valor Campo (SO0701D).

Importante 3:

Eliminação de Objetos Dinâmicos

Para os objetos dinâmicos que foram inseridos em um determinado perfil de um programa, existe a possibilidade de eliminação desses objetos, por intermédio da tecla <delete>.

Para objetos pertencentes ao programa, a única funcionalidade semelhante disponível é a possibilidade de esconder / desabilitar objetos da tela.

Importante 4:

Objetos Dinâmicos relacionados a atributos

Para objetos dinâmicos relacionados a atributos (Radio, Caixa de Seleção, Editor, Campo, Caixa de Checagem) é muito importante definir a qual frame o objeto será instanciado. A partir da frame é identificada qual é a tabela interna que ela utiliza para criar as tabelas de extensão,. no caso de  atributos  do tipo “SOR” ou para criar as Ligações, no caso de atributos do tipo “Consulta” e “Extensão”.

Em alguns casos, uma frame pode tratar várias tabelas, sendo necessário a escolha da tabela desejada. Veja mais informações na descrição da Função Adição Objetos Dinâmicos.

Não é possível adicionar objetos dinâmicos relacionados a atributos de extensão em frames que não tratam tabelas.

A partir da criação de objetos dinâmicos relacionados a atributos de extensão (Atributos SOR), é possível adicionar novos campos a determinado cadastro, permitindo efetuar a customização do cadastro de acordo com as necessidades específicas do cliente.

Em casos em que um cadastro é composto por vários programas (um programa de inclusão, um de modificação, um de eliminação, um de consulta) torna-se necessário otimizar todos os programas envolvidos, criando os objetos com as propriedades “nome”, “rótulo”, “tipo de dado” e “formato” iguais no caso de atributos do tipo “SOR”, ou então utilizando a mesma ligação e o mesmo atributo da ligação  no caso de atributos do tipo “Consulta” ou “Extensão”. Dessa forma, o Otimizador de Telas reconhece que os vários objetos dinâmicos criados em vários programas tratam-se na verdade do mesmo atributo de extensão (nesses casos, pode-se utilizar o zoom de objetos para relacionar um objeto a outro já utilizado em um perfil). Veja mais informações da descrição da Função Nome (S00701I).

Para objetos dinâmicos relacionados a atributos, é efetuado o seguinte tratamento no ambiente de aplicação, conforme o tipo de atributo:

  • Atributo SOR: efetua o sincronismo na criação, modificação e eliminação de registros entre a tabela do programa e a tabela de extensão SOR gerada;
  • Atributo Consulta: efetua o sincronismo de valor do objeto para consulta, conforme o valor da tabela do programa.
  • Atributo Tabela Específica: efetua o sincronismo na criação e modificação de registros entre a tabela do programa e a tabela do banco de dados específico.

Veja mais detalhes na descrição da Função Aplicação de Otimizações.

Quando da criação de objetos dinâmicos do tipo Atributo SOR, é necessário, após criar o perfil, executar o programa de Gerador de Objetos Dinâmicos (veja a descrição da Função Gerador de Objetos Dinâmicos). Essa necessidade ocorre apenas para novos objetos dinâmicos criados (que exija uma nova tabela ou um novo atributo no banco repositório MGSOR) e deve ser efetuada antes de executar o ambiente de aplicação do perfil. Caso o atributo já tenha sido criado anteriormente no banco repositório, o mesmo já pode ser utilizado no ambiente de aplicação.