segunda-feira, 6 de agosto de 2012

Genexus SDT - Parte III

Nesta terceira parte sobre o assunto Genexus SDTs, iremos aprender um pouco sobre como apresentar os SDTs em Web Panels.

A Parte I - criação deste tipo de dado, e a Parte II - inserção de valores nos darão a base para esta continuidade.

Porém para ampliar a nossa percepção de utilidade deste tipo de dado (SDT), irei utilizar um novo exemplo, ao fim do nosso exercício iremos ter um formulário semelhante a este:

Genexus SDT


Primeiramente iremos criar o Objeto SDT, que será o nosso Grid da tela, semelhante a este:
Genexus X
Após iremos inserir as variáveis que iremos utilizar para desevolver este formulário:
Genexus Variables
OK, após adicionar as nossas variáveis, iremos criar a tela, neste exemplo foram inseridos 3 botões, Retornar para retornar para a página anterior, Avançar para avançar para a próxima página do formulário e Adicionar Linha para adicionarmos uma nova linha ao nosso Grid SDT.

Para inserirmos as variáveis SDTs na tela, na Toolbox clicamos em "Attribute/Variables" e arrastamos até a célula que desejamos. Ao arrastar, o Genexus irá abrir uma tela com os atributos e variáveis disponíveis, neste caso clicamos sobre a variável "SDT_Projeto", a variável principal do SDT criado.

Ao clicar sobre esta variável irá abrir a seguinte tela:
Os itens em azuis são aqueles que queremos inserir, clicamos em todos, o check box "ReadOnly" só iremos marcar quando desejamos deixar as variáveis como desabilitadas, e o checkbox "Free Style Grid" só será marcado caso desejamos substituir o Grid em linha pelo Grid Free Style.

Ao clicar em OK, o SDT será inserido na nossa WebPanel, agora podemos controlar a exclusão e adição de linhas ao nosso grid apresentado.

Para inserir o botão de excluir linha (primeiro a esquerda na imagem), clicamos com o botão direito sobre o Grid e após em "Columns..". Com a tela Arrange Columns aparecendo, iremos selecionar a opção "Add", e selecionar a nossa variável "excluir" (Bitmap). Após a adição da variável ao Grid, precisamos escrever os seguintes códigos:

Inserção de Imagem, Tooltip e um comando javascript de confirmação (este comando será executado ao clicar sobre a variável):

No evento Start:

Genexus SDT
Inserção do código de exclusão de linha.
Genexus X

Para finalizar precisamos inserir o código para o Grid iniciar default contendo uma linha, e a opção de adicionar novas.

Observação: os objetos WebPanels não recebem SDTs como parâmetro, para isto é necessário utilizar o método WebSession através dos comandos ToXML() e FromXML(), ou ToJson() e FromJson().

No evento Start:
Genexus X

Inserir nova linha ao Grid:


Para finalizar, procurem sempre salvar este SDT em sessões (WebSession) ao clicar nos botões "Avançar" e "Retornar".

2 comentários:

  1. Gracias amigo!!!! me solucionaste varias horas de renegar con esto.
    Saludos

    ResponderExcluir
  2. Por favor, como faço para inserir um prompt em uma grid com SDT em um webpanel?

    ResponderExcluir