Desde o lançamento do uniPaaS 1.8 (em Junho/2009), com o advento do client RIA para Windows .NET, temos a possibilidade de incluir controles nativos da biblioteca .NET nas telas das aplicações uniPaaS (programas RIA).
Mais recentemente, com o lançamento do uniPaaS 2.0 (em Julho/2011) e o advento do Deployment Engine (runTime) para Windows .NET, este recurso se estendeu também aos programas On-Line e Batch.
Este é um recurso que muitos desenvolvedores já devem conhecer. Basta definir um campo do tipo .NET, associado à classe do controle desejado:
E depois colocar este campo na tela:
Está pronto!
Ao executar o programa, o controle estará disponível na tela, para o usuário final:
O único “senão” se dá por conta de que estes controles não são nativos do uniPaaS.
Por isso, a única opção para ler ou alterar seu conteúdo é a programação explícita, e isso exige um pouco mais de esforço por parte dos desenvolvedores.
Precisamos recorrer à função DNSet() para alterar as propriedades do objeto:
e utilizar Event Handlers para detectar alterações que ocorrem no conteúdo destes controles:
Com o lançamento do uniPaaS 2.1 (em Maio/2012), um novo recurso chamado .NET Binding foi disponibilizado, e permite-nos vincular controles .NET a campos uniPaaS. Tal qual fazemos com os controles nativos.
Veja como funciona:
Para usar este recurso, precisamos primeiramente definir um Modelo do tipo “GUIDisplay” (e não do tipo “Field”) para o controle .NET:
Com isso, duas novas propriedades são habilitadas no Modelo:
Value Property Name
É uma (de várias) propriedades do objeto .NET que utilizaremos para ler e alterar o conteúdo do controle.
Value Changed Event Name
É um (de vários) eventos do objeto .NET que utilizaremos para saber quando o seu conteúdo foi alterado.
NOTA: Estas propriedades só podem ser definidas via Modelo GUI Display.
Uma vez que temos o modelo definido, basta associarmos o controle .NET do formulário a ele:
e com isso, automaticamente a propriedade “Data” do controle se habilita para escolhermos um campo uniPaaS a vincular a este controle:
Pronto!
Agora, quando ocorre uma alteração no conteúdo do campo uniPaaS, a propriedade definida em “Value Property Name” é utilizada para alterar o conteúdo do controle.
E sempre que o controle disparar o evento definido em “Value Changed Event Name”, esta mesma propriedade é usada para ler o seu conteúdo e atualizar o campo uniPaaS.
Tudo isso automaticamente, sem necessidade de codificarmos explicitamente a sincronização entre os campos uniPaaS e os controles .NET!
E outro detalhe importante: agora os controles .NET nos formulários podem ser vinculados tanto a campos uniPaaS, quanto a campos .NET, como a ambos (simultaneamente):
Várias opções de sincronização entre os controles visuais e os dados dos programas estão disponíveis, agora no uniPaaS 2.1.
Manoel Frederico Silva
Product Manager & MAGIC Evangelist / Magic Software Brasil