Objetos Dinâmicos com Tabelas Existentes
Objetivo | Criar novos objetos de tela alimentados por campos de tabelas já existentes. |
Programa | SO0700 |
Visão Geral | No Otimizador de Telas é permitido criar objetos dinâmicos relacionados a tabelas do produto (apenas para consulta) ou uma tabela de um banco específico qualquer. Isto é feito por intermédio de uma ligação que seria a relação entre a tabela do programa e a tabela existente da qual se deseja buscar os dados. |
Ambiente de Desenvolvimento (SO0700)
Primeiro Passo (Inclusão do primeiro campo):
- Primeiramente abre-se o programa no ''Ambiente de Desenvolvimento'' (so0700) para que se possa otimizá-lo. Depois devem ser criados dois campos
|
- O primeiro campo é utilizado para visualizar a agencia padrão do banco, que está disponível na tabela "mgadm.banco". Como este é um campo para consulta, deve-se mudar a propriedade ''Tipo Atributo'' para ''Atributo'' ''Consulta'' e também entrar na janela ''Zoom Ligações''
|
- A janela aberta permite escolher uma ligação a ser utilizada pelo novo objeto criado. Para criar uma nova ligação pressionar o botão ''Criar Nova Ligação''
|
- Após pressionado o botão, é apresentada a janela de criação de ligações, para que se possa criar uma ligação que relacione a tabela "mgadm.cta-corrente" com a tabela “mgadm.banco” de onde se deseja buscar as informações.
|
- A informação desejada se encontra na tabela “mgadm.banco”, então é necessário selecionar o banco de dados mgadm, a tabela banco, e pressionar o botão para adicionar a tabela nas tabelas da ligação (nota se que a tabela “cta-corrente” já faz parte da ligação pois ela é a tabela da frame onde o objeto foi criado, ou seja, a tabela externa).
|
|
- O relacionamento no exemplo foi customizado e diz que para haver relacionamento entre as duas tabelas, o campo “cod-banco” da tabela “banco” deve ser igual ao campo “cod-banco” da tabela “cta-corrente”
|
- A codificação do relacionamento pode ser digitada ou então pode ser feita com o auxilio das listas de campos (por intermédio de duplo clique) e dos operadores. Também pode se criar filtros para a ligação. Neste exemplo foi criado um filtro dizendo que o registro da ligação só será valido se o campo “cod-frebaban” da tabela banco tiver um valor maior que “0” (zero).
|
- Deve se verificar também as opções da tabela da ligação. Esta ligação retornará apenas dois atributos que serão utilizados nos campos do programa. Então é interessante marcar a opção "Retorna Campos'' com o valor "Informados'' pois assim a ligação irá apenas trazer os dados necessários das tabelas (escolhidos na página atributos) quando ela for utilizada, fazendo com que a performance da busca de dados seja otimizada.
|
- Também se deve escolher se a ligação é do tipo ''Inner Join'' onde os registros da primeira tabela do relacionamento só serão trazidos se a codificação da página ''Relacionamento'' for satisfeita, ou então do tipo ''Outer Join'' onde os registros da primeira tabela do relacionamento são trazidos mesmo que a codificação da página ''Relacionamento'' não seja satisfeita.
|
- Em seguida na página Atributo deve-se escolher os atributos (campos) que serão utilizados por intermédio da janela “Atributos Query” . Nesta página também é possível excluir atributos que não são mais desejados na ligação.
|
- Na janela “Atributos Query”, devem ser selecionados os itens que serão incluídos na lista de atributos utilizados pela Ligação. No exemplo seleciona-se a tabela “mgadm.banco” na parte superior e pressiona-se o botão de inclusão com o atributo “ag-padrão” selecionado na lista “Atributos disponíveis”, depois o mesmo processo é realizado para a tabela “mgadm.cta-corrente” (externa) e com o atributo “ct-ipmf”
|
- Após confirmar a escolha na janela “Atributos Query”, os atributos são exibidos na página “Atributo” da janela de criação de ligações. No exemplo, é digitado o nome "banco" para a ligação e pressionandoo botão para salvá-la e fechar a janela, retornando assim para a janela “Zoom Ligações”.
|
- De volta a janela “Zoom Ligações” seleciona-se a ligação recém criada e fecha-se a janela confirmando a seleção no botão "Confirma"
|
- De volta ao ambiente de desenvolvimento, nota-se na paleta de propriedades que a propriedade “Ligação” tem o valor “banco” (o nome da ligação recém criada). Como já foi definida a ligação que será utilizada, deve-se também selecionar qual atributo da ligação será usado por aquele objeto. Isto pode ser feito pressionandoo botão ao lado da propriedade nome para executar a janela “Zoom Propriedade Nome”.
|
- Na janela “Zoom Propriedade Nome” seleciona-se o atributo "mgadm.banco.ag-padrao" e fecha-se a janela confirmando a seleção.
|
- Nota se que o objeto na tela do programa mudou. A criação deste objeto está concluída e ele está pronto para ser utilizado.
|
Segundo Passo (Inclusão do segundo campo):
- Após isso deve ser selecionado o segundo objeto para ser alterado.
|
- Este segundo objeto usa a mesma ligação “banco” e utiliza o atributo “mgadm.cta-corrente.ct-ipmf”. Então deve se alterar a propriedade “Tipo Atributo” para “Atributo Consulta”, pressionar o botão ao lado da
|
- propriedade “Ligação” para entrar na janela “Zoom Ligações” e selecionar a ligação “banco”.
|
- Depois deve-se pressionar o botão ao lado da propriedade nome para entrar na janela “Zoom Propriedade Nome” para que seja selecionado o atributo a ser utilizado (mgadm.cta-corrente.ct-ipmf).
|
- Para concluir todo o processo é apenas necessário salvar o perfil e começar a utilizá-lo
|
Considerações Gerais:
- O Otimizador de Telas também permite criar objetos de tabelas existentes que permitem tanto consulta como gravação de dados.
|
- Para criar este tipo de campo, a tabela relacionada ao objeto (de onde se deseja buscar os dados) precisa estar em um banco de dados que não faça parte do produto EMS.
|
- Usando o mesmo programa (cd1103) é apresentado abaixo um exemplo de atributo de tabelas existentes para gravação (exclusão e alteração).
|
- Basicamente a forma de criação é a mesma, primeiramente é criado um novo perfil para o programa e depois disso, um novo objeto do tipo campo (fill-in).
|
- Depois, é alterada a propriedade “Tipo Atributo” para “Atrib Tab Específica”. Após isso, deve-se pressionar o botão ao lado da propriedade ligação para executar a janela “Zoom Ligações”.
|
- Na janela de criação de ligações deve-se escolher na página “Tabela” a tabela de um banco especifico que será relacionada a tabela externa (mgadm.cta-corrente), no exemplo, é selecionada a tabela “cta-corrente-ext” do banco de dados “alpha”. Neste tipo de atributo só é possível relacionar duas tabelas: a externa (no caso “cta-corrente”) e a tabela de extensão (no caso “cta-corrente-ext”).
|
A página relacionamento tem um funcionamento um pouco diferenciado do que foi exemplificado acima. Basicamente deve se escolher os atributos que devem ser semelhantes para estabelecer um relacionamento entre as duas tabelas: a externa e a de extensão. No exemplo foi estabelecido um relacionamento dizendo que os valores dos campos “cod-banco”, “agencia” e “conta-corren” da tabela “cta-corrente-ext” devem ser iguais, respectivamente, aos campos “cod-banco”, “agencia” e “conta-corren” da tabela “cta-corrente” . |
- O funcionamento da página “Filtro” é desabilitado para este tipo de ligação e o das páginas “Opções” e “Atributo” são semelhantes aos exemplificados anteriormente. No exemplo foi escolhido o atributo “char1” da tabela “cta-corrente-ext” do banco “alpha” na janela “Atributos Query”. Depois foi digitado o nome “bancoext” para a ligação e a mesma foi salva, fechando a janela.
|
- De volta a janela “Zoom Ligações”, confirma-se a seleção da nova ligação criada. Nota-se que o tipo dela é “Tabela Extensão”, tipo válido para o objeto que está sendo criado.
|
- De volta ao ambiente de desenvolvimento, procede-se da mesma forma que já foi exemplificada, entra-se no “Zoom Propriedade Nome” para que se possa escolher o atributo “alpha.cta-corrente-ext.char1” retornado pela ligação “bancoext”.
|
- Para que o usuário possa se aprofundar mais nos conceitos de Ligação (query) é recomendado obter mais informações no manual do AppBuilder Help (Query Builder).
|