Como estruturar dados para desempenho

Opções de vínculo de dados para desempenho

No caso de formulários vinculados a fontes de dados, é possível associar um elemento de dados a um objeto de formulário, como um campo ou subformulário. Essa associação é chamada de vínculo de dados. É possível escolher objetos que diminuem ou aumentam de tamanho dependendo do volume de dados exibidos.

Muitas definições de vínculo de dados podem gerar os mesmos resultados quando um formulário é renderizado. No entanto, quanto mais óbvio for o relacionamento entre o objeto de formulário e os respectivos elementos de dados, mais eficiente será o processamento do vínculo de dados pelo Forms

O diagrama a seguir mostra um exemplo de vínculo de campo em que dois objetos de campo no formulário estão vinculados a elementos de dados. O vínculo é ambíguo porque existem várias instâncias dos objetos de campo e seus respectivos dados. É necessário mais processamento para criar correspondência entre a enésima ocorrência de cada objeto e a enésima ocorrência dos dados correspondentes durante a renderização do formulário.

Visualizar gráfico inteiro
Vínculos de campo (número e quantidade)

O diagrama a seguir mostra o uso de vínculos de subformulário para agrupar objetos e, desse modo, simplificar o processamento para renderizar o formulário. O subformulário está vinculado ao grupo repetitivo nos dados, eliminando o vínculo ambíguo. O vínculo é avaliado para o primeiro grupo e não precisa ser reavaliado para as repetições subsequentes.

Visualizar gráfico inteiro
A.
Vínculos de campo (número e quantidade)

B.
Vínculo de subformulário

É possível usar subformulários para agrupar e organizar objetos sem vincular o subformulário a um elemento de dados. Para que o Forms não procure um elemento de dados do subformulário ao mesclar dados, altere o tipo de vínculo de dados do subformulário do valor padrão Normal para Nenhum.

Avaliação da estrutura de dados para desempenho

A exibição seletiva de campos é uma forma de demonstrar como a estrutura de dados afeta o desempenho.

Vamos supor que queremos exibir uma mensagem apenas se o valor do elemento de dados amountOwed for maior que zero. Uma abordagem é usar um script para examinar o valor de amountOwed e alterar a propriedade show/hide do campo de mensagem, dependendo do valor do elemento de dados.

Outra opção é vincular os dados a um subformulário. Vincular dados a um subformulário é mais eficiente do que vincular dados a um campo, embora os dois métodos gerem o mesmo resultado. Aqui, adicionamos o elemento status à estrutura de dados e o vinculamos a um subformulário. O subformulário inclui o campo da mensagem e o campo amountOwed. Com a contagem mínima do subformulário definida como zero, a mensagem só será exibida se existir o elemento status.

No contexto dos dados, a decisão de acrescentar o nó de status ao arquivo de dados deverá ser tomada durante a geração somente se o valor for maior que 0. Essa técnica move a lógica para determinar se é necessário um subformulário no projeto de contexto de dados.