| Visão Geral | Otimização de ProgramasOs programas construídos a partir da tecnologia DDK GUI (Smarts) utilizam o conceito de Smarts Objects do Progress. Dessa forma, um programa é composto de vários outros Smarts Objects (programas). Não é possível movimentar objetos de um Smart Object para outro. Dessa forma, existem limitações para eventos de arrastar e movimentar objetos, entre outras propriedades. |
Para objetos dinâmicos, sempre é gravado internamente o nome do Objeto Pai, que é o nome da “frame” onde o objeto foi instanciado.
Para DDK GUI (Smarts) não é possível criar objetos dinâmicos que necessitam de tabela de extensão em frames que não possuem tabelas relacionadas. Por exemplo: frame do container – Smarts. Em alguns casos (principalmente em programas com folders) existe dificuldade no sentido de se verificar qual o tamanho da frame para instanciar o objeto na mesma). |
Não existem eventos disponíveis para tratar manipulação de registros nesses objetos (o rowid da tabela sempre é ?). |
Instanciar o objeto na frame correta. Para verificar o tamanho da frame, pode-se modificar a cor de fundo da frame. Dessa forma, é possível visualizar sua dimensão exata. |
Dica - Algumas frames (principalmente em programas que possuem páginas) não possuem toda a extensão aparente na tela. No programa cd0901, por exemplo, na página Saldo Inicial existem alguns campos e um espaço abaixo. Para verificar a dimensão exata da frame, é necessário selecionar o objeto frame dessa tela (pode ser selecionado no espaço entre os dois retângulos, ou redimensionar o retângulo para clicar na frame). Após selecionada, alterar a propriedade cor de fundo, para uma cor que permita a visualização de toda a extensão da frame.
Com a cor alterada, é possível verificar a real dimensão da frame. No espaço abaixo da frame não é possível adicionar objetos dinâmicos com atributos de extensão, pois aquela área em específico não trata a tabela relacionada do programa, impossibilitando criar tabela/atributo de extensão para a mesma. Ao tentar criar um objeto do tipo campo nesse espaço fora da frame, ocorre o seguinte erro: " |
Para os programas desenvolvidos em tecnologia DDK GUI (Smarts), a sincronização entre a tabela e a tabela de extensão (utilizada no tratamento de objetos dinâmicos que possuem atributo em tabela de extensão) no evento de eliminação de registro é feita no programa principal do procedimento.
Exemplo: Implantação de Documentos – CR0501
O novo atributo foi criado para o programa CR0501. Por ser um cadastro Pai x Filho, o cadastro Pai é efetuado por meio de outro programa – CR0501A. Dessa forma, é necessário criá-lo também no programa CR0501A (com as mesmas definições de dicionário de dados – nome, tipo de dado, formato etc).
O sincronismo entre a eliminação de um registro da tabela e da tabela de extensão é feito no programa principal – CR0501. O evento de eliminação faz parte do programa CR0501. Dessa forma, se o atributo fosse criado apenas no CR0501A (onde é feita a inserção de registros), quando fosse eliminado um registro da tabela ele não eliminaria o registro da tabela de extensão.
Essa é apenas uma das formas em que pode ocorrer erro de sincronia entre as tabelas. Veja mais detalhes na descrição da Função Sincronizador Banco Repositório (SO0707).
Para programas das tecnologias DDK GUI (Smarts) e DDK GUI 2000 (Thin) é possível adicionar objetos dinâmicos relacionados a browse. Para isso, basta adicionar um novo objeto na mesma frame em que se encontra o browse. Dessa forma, toda vez que um browse for manipulado (selecionar um registro, abertura de query) o objeto dinâmico é atualizado conforme o registro corrente. Para a utilização completa é necessário criar o objeto dinâmico no programa principal e nos programas de incluir/modificar.
Em algumas situações, é necessária uma coerência por parte do usuário Administrador para não modificar algumas propriedades em determinados programas.
Exemplo: