Criando datawindows dinamicamente

Geralmente criamos os dataobjects com antecedência mas, por uma razão ou por outra, podemos precisar de criar um dataobject dinamicamente. Neste post, mostro como criar um a partir de uma query. O processo é todo bem simples e fácil de ser gerenciado mas, dependendo do tamanho da query, pode afetar a performance do sistema.

O que estou chamando de dataobject é o que chamamos comumente de DataWindow, mas ele é o objeto que atribuímos na propriedade dataobject (dw_1.dataobject = “dw_xxx”), ou seja, este procedimento funcionará tanto para Datawindows quanto para Datastores.

 

Para realizar esta implementação, você vai precisar das seguintes coisas: Objeto transaction valido e conectado, uma consulta (query) e um controle Datawindow. Neste exemplo, vamos utilizar o SQLCA e o dw_1.

 

Primeiro, vamos criar a query:

 

O próximo passo é criar a sintaxe da datawindow a partir desta consulta:

O segundo argumento da função SyntaxFromSQL indica os estilos que serão aplicados na datawindow que vamos criar. Você pode utilizar a ferramenta Datawindow Syntax para criar algo mais personalizado ou copiar de uma datawindow existente. Outro ponto importante é o terceiro argumento, que indica qual erro ocorreu.

 

O último passo é criar a datawindow a partir desta sintaxe que geramos:

Esta função cria o objeto datawindow em sí. Ele também possui um argumento que armazena a mensagem de erro, caso exista alguma. Se tudo deu certo, você ainda precisará associar um objeto transaction nesta datawindow.

Abaixo está o exemplo completo, incluindo os tratamentos de erro.

 

Espero ter ajudado.

The following two tabs change content below.
Breno RdV
Ex-Psicólogo, com quase uma década de experiência em Recursos Humanos e Gestão de Pessoas, atual desenvolvedor e Analista de Sistemas, trabalhando com PowerBuilder, C#, PowerShell e expandindo horizontes para Python, Xamarin, PHP, Angular e (por que não?) Unity.

Comments

comments

Posted in Dev, PowerBuilder and tagged , , , , , , , .