SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
307
!
"
# # # # # # #$ ## # %# # # # #
# # # # # & # # &
# # ## # # # # # # #
É natural ao desenvolver, ter que resolver partes muito similares mas não exatamente iguais.
Por exemplo, se em uma Base de Conhecimento tem modelados os objetos da realidade Customer e Country,
apesar de ditos objetos serem bem diferentes, os “Work With Customers” e “Work With Countries”
respectivamente, possuem muitas coisas em comum: um grid no form, um conjunto de variáveis para utilizar
em filtros, opções de ordens da consulta, chamadas à transação correspondente para atualizar a base de
dados, etc..
Surgem então os Patterns, oferecendo a possibilidade de aplicar um padrão (pattern) às instâncias desejadas
de uma Base de Conhecimento, e gerar todos os objetos GeneXus necessários para implementar certa
funcionalidade, considerando seus dados específicos.
Seguindo com o exemplo mencionado inicialmente, é possível aplicar o padrão “Work With” na Base de
Conhecimento, de tal forma que partindo das transações “Customer” e “Country” (e caso se deseja outras), se
obtenha todo o desenvolvimento correspondente ao “Work With Customers” e “Work With Countries” para
ambiente web (telas vistosas que implementam as consultas, com ordens, filtros, chamadas às transações
correspondentes, e mais).
A tela Work With oferece:
• Consulta interativa
• Múltiplas ordens
• Filtros
• Chamada à Transação nos diferentes modos (insert, update, delete, display)
• Possibilidade de incluir chamadas próprias a objetos
• Link em cada linha do grid a tela ‘View’
A tela View mostra:
• A informação do registro selecionado no grid Work With
• Um tab control com:
• Um tab com a informação do registro
• Um tab para cada tabela subordinada a tabela base do registro no grid Work With.:
Para aplicar o pattern sem demoras, basta editar a instância (selector “Work With” da transação), marcar o
check box e gravar. Pronto! Com isso são criados automaticamente os objetos GeneXus que implementam o
pattern (em particular a tela de seleção e filtro e a tela de View que mostramos antes). Assim mesmo se
modificará a transação para que agora receba por parâmetro o modo (Insert, Update, Delete, Display) e o
país.
314
Uma vez gravada a instância, no folder view, abaixo o nome da transação, aparece o nome do pattern aplicado
a mesma (em nosso exemplo WorkWithCountry) e todos os objetos que GeneXus deve criar para implementar.
Em nosso caso serão criados 2 objetos de tipo Web Component, e 2 objetos de tipo Web Panel. São muitos
similares. A diferença é que um Web Component pode ser incluído dentro de outro objeto. No entraremos em
detalhes neste momento.
Ao aplicar o pattern Work With na Transação Country, será criado:
• Tela Work With:
• Terá um grid com os atributos CountryId e CountryName
• Poderá ordenar e filtrar por CountryName, por ser CountryName o atributo descriptor.
• Poderá chamar a transação nos diferentes modos
• Tela View: Mostrará dois tabs. O primeiro tab terá a informação do país selecionado, e o segundo terá a
informação dos clientes pertencentes a dito país (porque existe uma relação 1-N entre as transações Country e
Customer).
Caso não se queira visualizar o atributo CountryId no grid da tela Work With, basta editar suas propriedades a
partir do nó Attributes e colocar a propriedade Visible=False. Não pode ser eliminada porque é a chave
primária da transação Country.
São muitas as propriedades oferecidas nas instancias correspondentes ao padrão Work With, para
personalizar o comportamento dos objetos que serão gerados. Na continuação descrevemos algumas delas.
O nó Selection oferece as propriedades relacionadas a tela Work With que se gera para a instância. Seus sub-
nós são:
Modes (Ins, Upd, Del, Dis)
Este nó permite definir em quais modos se pode chamar a transação. As possibilidades e seus valores por
default são:
Insert: True
Update: True
Delete: True
Display: False
Na instância aparece <default> ao lado de cada uma das propriedades anteriores. Onde se configura este valor
por default? Veremos numas páginas mais adiante.
Para cada modo poderá especificar-se uma condição. São fornecidas as seguintes propriedades para esse
propósito: Insert Condition, Update Condition, Delete Condition, Display Condition.
Se define uma condição associada a um modo, a chamada para esse modo somente será habilitada a
avaliação da condição é verdadeira (Exemplo: CountryId=10).
Attributes
Este nó permite definir quais atributos desejam mostrar no grid (e para cada atributo, várias propriedades
podem ser personalizadas).
Orders
É possível oferecer ao usuário final várias ordens possíveis para ver o resultado da consulta (isto é, as linhas
mostrando os dados no grid). Utilizando o botão direito do mouse pode ser definida uma nova ordem (seu
nome e composição). Cada ordem pode estar composta por vários atributos (podendo indicar para cada um
deles se deseja ordem ascendente ou descendente). Um combobox será apresentado na tela WorkWith
oferecendo todas as possíveis ordens a serem selecionadas, para que o usuário final escolha e os dados
sejam apresentados no grid ordenados pelo mesmo.
Filter
Este nó permite definir condições de filtro, para que no grid sejam mostrados somente os registros que
cumpram com as mesmas.
Actions
O nó Actions permite incorporar ações próprias na tela WorkWith. Isto é, permite agregar botões (dentro ou
fora do grid) que chamem aos objetos indicados, com seus parâmetros correspondentes. O nó Actions não
está visible por default, estando posicionado no nó Selection e pressionando o botão direito do mouse, a
opção Add Actions é oferecida para ser agregada. Uma vez agregado este nó, estando posicionado sobre o
mesmo e pressionando o botão direito do mouse, se oferecerá a opção Add Action que permitirá agregar uma
ação com seu nome de ação, caption, objeto chamado, etc.
O nó View por sua vez, oferece as propriedades relacionadas a tela View gerada para a instância. Mostra toda
a informação de um registro, que foi selecionado no grid do WorkWith (a informação do registro é mostrada em
uma aba de um tab control, e além disso tem uma aba com um grid para cada tabela diretamente subordinada,
para mostrar a informação relacionada).
318
O atributo CountryId, diferente do CountryName, não pode ser eliminado do grid, isso porque é um atributo que
se envia a transação ‘Country’ quando o usuário deseja modificar ou eliminar o país mostrado numa linha do
grid do Work With.
319
Ao editar as propriedades estando posicionados no nó da instância que se mostra, podemos observar que
cada um dos modos que se pode chamar uma transação (para inserir, modificar, eliminar ou incluso mostrar)
estão listados como propriedades.
Podemos ver também que aparece uma propriedade Export que permite exportar os dados a uma planilha
excel.
Outra vez aqui podemos apreciar que cada uma das propriedades possui o valor <default> que ainda não
sabemos de onde é pego. Mas se queremos fixar um valor independente de qual seja o default, podemos
editar o combo box que apresentará três valores: <default>, ‘true’, ou ‘false’.
Fixamos o valor da propriedade Delete em ‘false’. Podemos ver em execução a repercussão. Não aprece no
grid a primeira coluna que contêm a imagem que permitia eliminar o país. Agora não se pode eliminar países a
partir dessa tela.
Observe também como desapareceu do grid o atributo CountryId. Ocultamos ele na página anterior.
321
Já havíamos definido o objeto BillingProcess para realizar o faturamento do mês de todos os clientes. Aqui
estamos agregando um botão fora do grid, que ao pressioná-lo chama outro objeto GeneXus que havíamos
criado anteriormente.
322
O nó View por sua parte, oferece as propriedades relacionadas a tela view que se gera para a instância.
Mostra toda a informação de um registro, que foi selecionado no grid do Work With (a informação do registro é
mostrada em uma aba de um tab control, e além disso tem uma aba com um grid para cada tabela diretamente
subordinada, para mostrar a informação relacionada).
323
Neste caso se não queremos que os atributos CustomerGender e CustomerStatus sejam vistas no grid em
execução, não necessitamos ocultá-los. Podemos diretamente eliminá-los.
324
Uma vez executado o passo a) e escolher ‘Filter’ aparecerá um novo nó Filter imediatamente depois do nó
Attributes, com 2 subnós: Attributes e Conditions.
Depois, no passo b), deverá posicionar-se no subnó Attributes e fazer botão direito, onde se oferece a
possibilidade de agregar um atributo de filtro. Ao editar as propriedades, você deverá pressionar o combro box
vai mostrar uma janela onde se ingressa o atributo (em nosso caso, CustomerName). Com isto se cria
automaticamente uma variável com o mesmo nome que o atributo &CustomerName, que será o control que
aparecerá em execução para que o usuário digite ali o filtro. Vejamos o passo seguinte...
325
O padrão WorkWith além de gerar objetos novos, também modifica as transações, para que sejam chamadas
pelos objetos gerados pelo pattern, agregando a regra parm, etc..
Relacionado a isto, cada instância contêm a propriedade UpdateTransaction, que oferece os seguintes
valores:
Do not update: A transação não será modificada (web form, regras e eventos serão mantidos).
Only rules and events: Somente as regras e eventos serão modificados, o web form não é modificado.
Apply WW Style: A primeira vez que o padrão é aplicado, o comportamento será o mesmo que se houvesse
selecionado o valor Create Default. A partir da segunda vez que o padrão é aplicado, não se modificará a data
área do form da transação (caso tenha sido personalizada com GeneXus e deseja manter), e se modificará o
style área, assim como os eventos e regras.
Create default: Regras, eventos e form da transação (tanto data área como style área) serão modificados. No
que diz respeito ao form, será como selecionar a opção Create default a partir do GeneXus.
O valor por default para esta propriedade é Apply WW Style.
Enquanto as propriedades AfterInsert, AfterUpdate e AfterDelete, permitem definir o comportamento depois
que se insere, modifica ou elimina um registro.
Os valores possíveis para cada uma delas são:
• Default
• Return to caller
• Go to View
• Go to Selection
Aqui estão centralizados os <default> para toda instancia. Podemos ver que o nó Template oferece algumas
propriedades que mencionamos na página anterior.
O tamanho da página dos grids do work with, que nas imagens anterior era de 3 (se mostravam em 3 linhas
por página do grid) se configura no nó Grid. O valor por default desta propriedade é Page.Rows. Isto é, o valor
do domínio enumerado Pages criado por GeneXus automaticamente ao aplicar o pattern na primeira vez. O
valor que tem Page é 10. Nós tínhamos alterado para 3 para que não fosse mostrado as imagens complestas.
O dinamismo mencionado se mantêm para todas as partes default dos objetos.
Todos os objetos gerados por Patterns estão baseados no esquema de Defaults de GeneXus. Cada parte
(Form, Regras, Eventos) de cada objeto é gerado como Default. Caso alguma parte do objeto tenha sido
modificada, esta deixa de ser Default.
Por exemplo, se modificar o web form de um WW (não fica como default), e se agrega um novo atributo na
TRN, não vai ser atualizado automaticamente o grid WW com esse atributo (ou seja, não será agregado dito
atributo).
A implementação baseada em Defaults permite ter dinamismo entre a Transação e o padrão
• Alterar propriedades na definição do padrão (Pattern setting)
• Alterações na instância (agregar um novo filtro)
• Alterações na Transação (agregar um novo atributo)
Se quiser voltar o dinamismo, deverá ter novamente as partes como default.
Para isto, se deve selecionar a partir do Menu Edit / Apply Default (a parte onde se tem aberto o objeto) ou
Apply Default (All parts), voltando o default de todas as partes que haviam sido modificadas.
14 patterns-curso gxxbr

Contenu connexe

En vedette

Evolução na Web
Evolução na WebEvolução na Web
Evolução na WebGeneXus
 
Wwp gxbr 2011_trad
Wwp gxbr 2011_tradWwp gxbr 2011_trad
Wwp gxbr 2011_tradGeneXus
 
GeneXus Server, Gerenciamento de Versões e Metodologia de Trabalho
GeneXus Server, Gerenciamento de Versões e Metodologia de TrabalhoGeneXus Server, Gerenciamento de Versões e Metodologia de Trabalho
GeneXus Server, Gerenciamento de Versões e Metodologia de TrabalhoGeneXus
 
Controlando Dispositivos Eletrônicos com Genexus
Controlando Dispositivos Eletrônicos com GenexusControlando Dispositivos Eletrônicos com Genexus
Controlando Dispositivos Eletrônicos com GenexusGeneXus
 
GeneXus 4 Students
GeneXus 4 StudentsGeneXus 4 Students
GeneXus 4 StudentsGeneXus
 

En vedette (9)

10 sd ts-curso-gxxbr
10 sd ts-curso-gxxbr10 sd ts-curso-gxxbr
10 sd ts-curso-gxxbr
 
20 pratico cursogxxbr
20 pratico cursogxxbr20 pratico cursogxxbr
20 pratico cursogxxbr
 
Evolução na Web
Evolução na WebEvolução na Web
Evolução na Web
 
06 it-curso gxxbr
06 it-curso gxxbr06 it-curso gxxbr
06 it-curso gxxbr
 
Wwp gxbr 2011_trad
Wwp gxbr 2011_tradWwp gxbr 2011_trad
Wwp gxbr 2011_trad
 
13 subtipos-curso gxxbr
13 subtipos-curso gxxbr13 subtipos-curso gxxbr
13 subtipos-curso gxxbr
 
GeneXus Server, Gerenciamento de Versões e Metodologia de Trabalho
GeneXus Server, Gerenciamento de Versões e Metodologia de TrabalhoGeneXus Server, Gerenciamento de Versões e Metodologia de Trabalho
GeneXus Server, Gerenciamento de Versões e Metodologia de Trabalho
 
Controlando Dispositivos Eletrônicos com Genexus
Controlando Dispositivos Eletrônicos com GenexusControlando Dispositivos Eletrônicos com Genexus
Controlando Dispositivos Eletrônicos com Genexus
 
GeneXus 4 Students
GeneXus 4 StudentsGeneXus 4 Students
GeneXus 4 Students
 

Similaire à 14 patterns-curso gxxbr

Manual do call center Elastix Português
Manual do call center Elastix PortuguêsManual do call center Elastix Português
Manual do call center Elastix PortuguêsAnderson Gouveia
 
Desenvolvimento Delphi
Desenvolvimento DelphiDesenvolvimento Delphi
Desenvolvimento Delphihildebertomelo
 
Aula 05 banco de dados em asp.net (site do administrador - alterar e excluir)
Aula 05   banco de dados em asp.net (site do administrador - alterar e excluir)Aula 05   banco de dados em asp.net (site do administrador - alterar e excluir)
Aula 05 banco de dados em asp.net (site do administrador - alterar e excluir)Gabriel Bugano
 
Slide 06 adicionando produtos e mostrando produto selecionado
Slide 06    adicionando produtos e mostrando produto selecionadoSlide 06    adicionando produtos e mostrando produto selecionado
Slide 06 adicionando produtos e mostrando produto selecionadoRaniere de Lima
 
Ado vb dot net 2010
Ado vb dot net 2010Ado vb dot net 2010
Ado vb dot net 2010marcos0512
 
Passo a-passo-pedidos
Passo a-passo-pedidosPasso a-passo-pedidos
Passo a-passo-pedidosDiego Alves
 
ODI Series - Importar Arquivos Texto para Tabelas
ODI Series - Importar Arquivos Texto para TabelasODI Series - Importar Arquivos Texto para Tabelas
ODI Series - Importar Arquivos Texto para TabelasCaio Lima
 
Projeto de Máquina de Cálculo de Folha de Pagamento Orientado a Objeto
Projeto de Máquina de Cálculo de Folha de Pagamento Orientado a ObjetoProjeto de Máquina de Cálculo de Folha de Pagamento Orientado a Objeto
Projeto de Máquina de Cálculo de Folha de Pagamento Orientado a ObjetoMarcos Tito de Pardo Marques
 
Aula 15 e 16 - Navegação - Activities e Fragments.pptx.pdf
Aula 15 e 16 - Navegação - Activities e Fragments.pptx.pdfAula 15 e 16 - Navegação - Activities e Fragments.pptx.pdf
Aula 15 e 16 - Navegação - Activities e Fragments.pptx.pdfnosbisantos
 
Documentao Projeto Android - Intent
Documentao Projeto Android - IntentDocumentao Projeto Android - Intent
Documentao Projeto Android - Intentcunhagronomia
 
Cadastro de clientes em c#
Cadastro de clientes em c#Cadastro de clientes em c#
Cadastro de clientes em c#André Luiz
 
Cadastro de clientes em java no netbeans
Cadastro de clientes em java no netbeansCadastro de clientes em java no netbeans
Cadastro de clientes em java no netbeansLaurindo Carinhas
 
Apostila de programação visual netbeans
Apostila de programação visual   netbeansApostila de programação visual   netbeans
Apostila de programação visual netbeansPaulo Carvalho
 
Apostil ade programação visual netbeans
Apostil ade programação visual   netbeansApostil ade programação visual   netbeans
Apostil ade programação visual netbeansPaulo Carvalho
 
Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07
Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07
Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07Magic Software Brasil
 

Similaire à 14 patterns-curso gxxbr (20)

16 gx flow-curso-gxxbr
16 gx flow-curso-gxxbr16 gx flow-curso-gxxbr
16 gx flow-curso-gxxbr
 
12 db atualizacao-curso-gxxbr
12 db atualizacao-curso-gxxbr12 db atualizacao-curso-gxxbr
12 db atualizacao-curso-gxxbr
 
11 data providers-cursogxxbr
11 data providers-cursogxxbr11 data providers-cursogxxbr
11 data providers-cursogxxbr
 
Manual do call center Elastix Português
Manual do call center Elastix PortuguêsManual do call center Elastix Português
Manual do call center Elastix Português
 
Desenvolvimento Delphi
Desenvolvimento DelphiDesenvolvimento Delphi
Desenvolvimento Delphi
 
Aula 05 banco de dados em asp.net (site do administrador - alterar e excluir)
Aula 05   banco de dados em asp.net (site do administrador - alterar e excluir)Aula 05   banco de dados em asp.net (site do administrador - alterar e excluir)
Aula 05 banco de dados em asp.net (site do administrador - alterar e excluir)
 
Slide 06 adicionando produtos e mostrando produto selecionado
Slide 06    adicionando produtos e mostrando produto selecionadoSlide 06    adicionando produtos e mostrando produto selecionado
Slide 06 adicionando produtos e mostrando produto selecionado
 
Ado vb dot net 2010
Ado vb dot net 2010Ado vb dot net 2010
Ado vb dot net 2010
 
Passo a-passo-pedidos
Passo a-passo-pedidosPasso a-passo-pedidos
Passo a-passo-pedidos
 
ODI Series - Importar Arquivos Texto para Tabelas
ODI Series - Importar Arquivos Texto para TabelasODI Series - Importar Arquivos Texto para Tabelas
ODI Series - Importar Arquivos Texto para Tabelas
 
Apostila de Power BI - Aula 1.pdf
Apostila de Power BI - Aula 1.pdfApostila de Power BI - Aula 1.pdf
Apostila de Power BI - Aula 1.pdf
 
Projeto de Máquina de Cálculo de Folha de Pagamento Orientado a Objeto
Projeto de Máquina de Cálculo de Folha de Pagamento Orientado a ObjetoProjeto de Máquina de Cálculo de Folha de Pagamento Orientado a Objeto
Projeto de Máquina de Cálculo de Folha de Pagamento Orientado a Objeto
 
Aula 15 e 16 - Navegação - Activities e Fragments.pptx.pdf
Aula 15 e 16 - Navegação - Activities e Fragments.pptx.pdfAula 15 e 16 - Navegação - Activities e Fragments.pptx.pdf
Aula 15 e 16 - Navegação - Activities e Fragments.pptx.pdf
 
CURSO JAVA 02
CURSO JAVA 02CURSO JAVA 02
CURSO JAVA 02
 
Documentao Projeto Android - Intent
Documentao Projeto Android - IntentDocumentao Projeto Android - Intent
Documentao Projeto Android - Intent
 
Cadastro de clientes em c#
Cadastro de clientes em c#Cadastro de clientes em c#
Cadastro de clientes em c#
 
Cadastro de clientes em java no netbeans
Cadastro de clientes em java no netbeansCadastro de clientes em java no netbeans
Cadastro de clientes em java no netbeans
 
Apostila de programação visual netbeans
Apostila de programação visual   netbeansApostila de programação visual   netbeans
Apostila de programação visual netbeans
 
Apostil ade programação visual netbeans
Apostil ade programação visual   netbeansApostil ade programação visual   netbeans
Apostil ade programação visual netbeans
 
Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07
Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07
Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07
 

Plus de Cristiano Rafael Steffens

CONVOLUTIONAL NEURAL NETWORKS: The workhorse of image and video
CONVOLUTIONAL NEURAL NETWORKS: The workhorse of image and videoCONVOLUTIONAL NEURAL NETWORKS: The workhorse of image and video
CONVOLUTIONAL NEURAL NETWORKS: The workhorse of image and videoCristiano Rafael Steffens
 
A pipelined approach to deal with image distortion in computer vision - BRACI...
A pipelined approach to deal with image distortion in computer vision - BRACI...A pipelined approach to deal with image distortion in computer vision - BRACI...
A pipelined approach to deal with image distortion in computer vision - BRACI...Cristiano Rafael Steffens
 
A CNN BASED MODEL TO RESTORE ILL EXPOSED IMAGES
A CNN BASED MODEL TO RESTORE ILL EXPOSED IMAGESA CNN BASED MODEL TO RESTORE ILL EXPOSED IMAGES
A CNN BASED MODEL TO RESTORE ILL EXPOSED IMAGESCristiano Rafael Steffens
 
Can Exposure, Noise and Compression affect Image Recognition? An Assessment o...
Can Exposure, Noise and Compression affect Image Recognition? An Assessment o...Can Exposure, Noise and Compression affect Image Recognition? An Assessment o...
Can Exposure, Noise and Compression affect Image Recognition? An Assessment o...Cristiano Rafael Steffens
 
MODELAGEM DAS DINÂMICAS DA FORMAÇÃO DA GOTA E TRANSFERÊNCIA DE MASSA EM PROCE...
MODELAGEM DAS DINÂMICAS DA FORMAÇÃO DA GOTA E TRANSFERÊNCIA DE MASSA EM PROCE...MODELAGEM DAS DINÂMICAS DA FORMAÇÃO DA GOTA E TRANSFERÊNCIA DE MASSA EM PROCE...
MODELAGEM DAS DINÂMICAS DA FORMAÇÃO DA GOTA E TRANSFERÊNCIA DE MASSA EM PROCE...Cristiano Rafael Steffens
 
UMA ABORDAGEM COMPARATIVA ENTRE MICROCONTROLADORES: ARDUINO MEGA X ARDUINO DU...
UMA ABORDAGEM COMPARATIVA ENTRE MICROCONTROLADORES: ARDUINO MEGA X ARDUINO DU...UMA ABORDAGEM COMPARATIVA ENTRE MICROCONTROLADORES: ARDUINO MEGA X ARDUINO DU...
UMA ABORDAGEM COMPARATIVA ENTRE MICROCONTROLADORES: ARDUINO MEGA X ARDUINO DU...Cristiano Rafael Steffens
 
FPGA-based sensor integration and communication protocols for automated
FPGA-based sensor integration and communication protocols for automatedFPGA-based sensor integration and communication protocols for automated
FPGA-based sensor integration and communication protocols for automatedCristiano Rafael Steffens
 
Lars 2016 A Texture Driven Approach for Visible Spectrum Fire Detection
Lars 2016 A Texture Driven Approach for Visible Spectrum Fire DetectionLars 2016 A Texture Driven Approach for Visible Spectrum Fire Detection
Lars 2016 A Texture Driven Approach for Visible Spectrum Fire DetectionCristiano Rafael Steffens
 
ICRA 2016 - Interactive section Presentation
ICRA 2016 - Interactive section PresentationICRA 2016 - Interactive section Presentation
ICRA 2016 - Interactive section PresentationCristiano Rafael Steffens
 
Vision-Based System for Welding Groove Measurements for Robotic Welding Appli...
Vision-Based System for Welding Groove Measurements for Robotic Welding Appli...Vision-Based System for Welding Groove Measurements for Robotic Welding Appli...
Vision-Based System for Welding Groove Measurements for Robotic Welding Appli...Cristiano Rafael Steffens
 
Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Cristiano Rafael Steffens
 
Welding Groove Mapping: Image Acquisition and Processing on Shiny Surfaces - ...
Welding Groove Mapping: Image Acquisition and Processing on Shiny Surfaces - ...Welding Groove Mapping: Image Acquisition and Processing on Shiny Surfaces - ...
Welding Groove Mapping: Image Acquisition and Processing on Shiny Surfaces - ...Cristiano Rafael Steffens
 
Automated control module based on VBM for shipyard welding applications: Stud...
Automated control module based on VBM for shipyard welding applications: Stud...Automated control module based on VBM for shipyard welding applications: Stud...
Automated control module based on VBM for shipyard welding applications: Stud...Cristiano Rafael Steffens
 
An Unconstrained Dataset for Non-stationary Video Based Fire Detection
An Unconstrained Dataset for Non-stationary Video Based Fire DetectionAn Unconstrained Dataset for Non-stationary Video Based Fire Detection
An Unconstrained Dataset for Non-stationary Video Based Fire DetectionCristiano Rafael Steffens
 
Introdução ao processamento de imagens com OpenCV (cont)
Introdução ao processamento de imagens com OpenCV (cont)Introdução ao processamento de imagens com OpenCV (cont)
Introdução ao processamento de imagens com OpenCV (cont)Cristiano Rafael Steffens
 
Um Sistema De Detecção De Fogo Baseado Em Vídeo
Um Sistema De Detecção De Fogo Baseado Em VídeoUm Sistema De Detecção De Fogo Baseado Em Vídeo
Um Sistema De Detecção De Fogo Baseado Em VídeoCristiano Rafael Steffens
 
Um sistema de detecção de chamas utilizando RF e SVM (Short Version)
Um sistema de detecção de chamas utilizando RF e SVM (Short Version)Um sistema de detecção de chamas utilizando RF e SVM (Short Version)
Um sistema de detecção de chamas utilizando RF e SVM (Short Version)Cristiano Rafael Steffens
 

Plus de Cristiano Rafael Steffens (20)

CONVOLUTIONAL NEURAL NETWORKS: The workhorse of image and video
CONVOLUTIONAL NEURAL NETWORKS: The workhorse of image and videoCONVOLUTIONAL NEURAL NETWORKS: The workhorse of image and video
CONVOLUTIONAL NEURAL NETWORKS: The workhorse of image and video
 
A pipelined approach to deal with image distortion in computer vision - BRACI...
A pipelined approach to deal with image distortion in computer vision - BRACI...A pipelined approach to deal with image distortion in computer vision - BRACI...
A pipelined approach to deal with image distortion in computer vision - BRACI...
 
A CNN BASED MODEL TO RESTORE ILL EXPOSED IMAGES
A CNN BASED MODEL TO RESTORE ILL EXPOSED IMAGESA CNN BASED MODEL TO RESTORE ILL EXPOSED IMAGES
A CNN BASED MODEL TO RESTORE ILL EXPOSED IMAGES
 
Can Exposure, Noise and Compression affect Image Recognition? An Assessment o...
Can Exposure, Noise and Compression affect Image Recognition? An Assessment o...Can Exposure, Noise and Compression affect Image Recognition? An Assessment o...
Can Exposure, Noise and Compression affect Image Recognition? An Assessment o...
 
MODELAGEM DAS DINÂMICAS DA FORMAÇÃO DA GOTA E TRANSFERÊNCIA DE MASSA EM PROCE...
MODELAGEM DAS DINÂMICAS DA FORMAÇÃO DA GOTA E TRANSFERÊNCIA DE MASSA EM PROCE...MODELAGEM DAS DINÂMICAS DA FORMAÇÃO DA GOTA E TRANSFERÊNCIA DE MASSA EM PROCE...
MODELAGEM DAS DINÂMICAS DA FORMAÇÃO DA GOTA E TRANSFERÊNCIA DE MASSA EM PROCE...
 
UMA ABORDAGEM COMPARATIVA ENTRE MICROCONTROLADORES: ARDUINO MEGA X ARDUINO DU...
UMA ABORDAGEM COMPARATIVA ENTRE MICROCONTROLADORES: ARDUINO MEGA X ARDUINO DU...UMA ABORDAGEM COMPARATIVA ENTRE MICROCONTROLADORES: ARDUINO MEGA X ARDUINO DU...
UMA ABORDAGEM COMPARATIVA ENTRE MICROCONTROLADORES: ARDUINO MEGA X ARDUINO DU...
 
FPGA-based sensor integration and communication protocols for automated
FPGA-based sensor integration and communication protocols for automatedFPGA-based sensor integration and communication protocols for automated
FPGA-based sensor integration and communication protocols for automated
 
Lars 2016 A Texture Driven Approach for Visible Spectrum Fire Detection
Lars 2016 A Texture Driven Approach for Visible Spectrum Fire DetectionLars 2016 A Texture Driven Approach for Visible Spectrum Fire Detection
Lars 2016 A Texture Driven Approach for Visible Spectrum Fire Detection
 
Php Math and arrays
Php Math and arraysPhp Math and arrays
Php Math and arrays
 
ICRA 2016 - Interactive section Presentation
ICRA 2016 - Interactive section PresentationICRA 2016 - Interactive section Presentation
ICRA 2016 - Interactive section Presentation
 
Vision-Based System for Welding Groove Measurements for Robotic Welding Appli...
Vision-Based System for Welding Groove Measurements for Robotic Welding Appli...Vision-Based System for Welding Groove Measurements for Robotic Welding Appli...
Vision-Based System for Welding Groove Measurements for Robotic Welding Appli...
 
Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)
 
Welding Groove Mapping: Image Acquisition and Processing on Shiny Surfaces - ...
Welding Groove Mapping: Image Acquisition and Processing on Shiny Surfaces - ...Welding Groove Mapping: Image Acquisition and Processing on Shiny Surfaces - ...
Welding Groove Mapping: Image Acquisition and Processing on Shiny Surfaces - ...
 
Automated control module based on VBM for shipyard welding applications: Stud...
Automated control module based on VBM for shipyard welding applications: Stud...Automated control module based on VBM for shipyard welding applications: Stud...
Automated control module based on VBM for shipyard welding applications: Stud...
 
An Unconstrained Dataset for Non-stationary Video Based Fire Detection
An Unconstrained Dataset for Non-stationary Video Based Fire DetectionAn Unconstrained Dataset for Non-stationary Video Based Fire Detection
An Unconstrained Dataset for Non-stationary Video Based Fire Detection
 
Introdução ao processamento de imagens com OpenCV (cont)
Introdução ao processamento de imagens com OpenCV (cont)Introdução ao processamento de imagens com OpenCV (cont)
Introdução ao processamento de imagens com OpenCV (cont)
 
Introdução OpenCV (Pt-Br) com exemplos
Introdução OpenCV (Pt-Br) com exemplosIntrodução OpenCV (Pt-Br) com exemplos
Introdução OpenCV (Pt-Br) com exemplos
 
Um Sistema De Detecção De Fogo Baseado Em Vídeo
Um Sistema De Detecção De Fogo Baseado Em VídeoUm Sistema De Detecção De Fogo Baseado Em Vídeo
Um Sistema De Detecção De Fogo Baseado Em Vídeo
 
Um sistema de detecção de chamas utilizando RF e SVM (Short Version)
Um sistema de detecção de chamas utilizando RF e SVM (Short Version)Um sistema de detecção de chamas utilizando RF e SVM (Short Version)
Um sistema de detecção de chamas utilizando RF e SVM (Short Version)
 
G xserver curso-actualizgxxev1
G xserver curso-actualizgxxev1G xserver curso-actualizgxxev1
G xserver curso-actualizgxxev1
 

14 patterns-curso gxxbr

  • 1. 307
  • 2. ! "
  • 3. # # # # # # #$ ## # %# # # # # # # # # # & # # &
  • 4. # # ## # # # # # # #
  • 5. É natural ao desenvolver, ter que resolver partes muito similares mas não exatamente iguais. Por exemplo, se em uma Base de Conhecimento tem modelados os objetos da realidade Customer e Country, apesar de ditos objetos serem bem diferentes, os “Work With Customers” e “Work With Countries” respectivamente, possuem muitas coisas em comum: um grid no form, um conjunto de variáveis para utilizar em filtros, opções de ordens da consulta, chamadas à transação correspondente para atualizar a base de dados, etc.. Surgem então os Patterns, oferecendo a possibilidade de aplicar um padrão (pattern) às instâncias desejadas de uma Base de Conhecimento, e gerar todos os objetos GeneXus necessários para implementar certa funcionalidade, considerando seus dados específicos. Seguindo com o exemplo mencionado inicialmente, é possível aplicar o padrão “Work With” na Base de Conhecimento, de tal forma que partindo das transações “Customer” e “Country” (e caso se deseja outras), se obtenha todo o desenvolvimento correspondente ao “Work With Customers” e “Work With Countries” para ambiente web (telas vistosas que implementam as consultas, com ordens, filtros, chamadas às transações correspondentes, e mais).
  • 6. A tela Work With oferece: • Consulta interativa • Múltiplas ordens • Filtros • Chamada à Transação nos diferentes modos (insert, update, delete, display) • Possibilidade de incluir chamadas próprias a objetos • Link em cada linha do grid a tela ‘View’ A tela View mostra: • A informação do registro selecionado no grid Work With • Um tab control com: • Um tab com a informação do registro • Um tab para cada tabela subordinada a tabela base do registro no grid Work With.:
  • 7. Para aplicar o pattern sem demoras, basta editar a instância (selector “Work With” da transação), marcar o check box e gravar. Pronto! Com isso são criados automaticamente os objetos GeneXus que implementam o pattern (em particular a tela de seleção e filtro e a tela de View que mostramos antes). Assim mesmo se modificará a transação para que agora receba por parâmetro o modo (Insert, Update, Delete, Display) e o país.
  • 8. 314 Uma vez gravada a instância, no folder view, abaixo o nome da transação, aparece o nome do pattern aplicado a mesma (em nosso exemplo WorkWithCountry) e todos os objetos que GeneXus deve criar para implementar. Em nosso caso serão criados 2 objetos de tipo Web Component, e 2 objetos de tipo Web Panel. São muitos similares. A diferença é que um Web Component pode ser incluído dentro de outro objeto. No entraremos em detalhes neste momento.
  • 9. Ao aplicar o pattern Work With na Transação Country, será criado: • Tela Work With: • Terá um grid com os atributos CountryId e CountryName • Poderá ordenar e filtrar por CountryName, por ser CountryName o atributo descriptor. • Poderá chamar a transação nos diferentes modos • Tela View: Mostrará dois tabs. O primeiro tab terá a informação do país selecionado, e o segundo terá a informação dos clientes pertencentes a dito país (porque existe uma relação 1-N entre as transações Country e Customer). Caso não se queira visualizar o atributo CountryId no grid da tela Work With, basta editar suas propriedades a partir do nó Attributes e colocar a propriedade Visible=False. Não pode ser eliminada porque é a chave primária da transação Country.
  • 10. São muitas as propriedades oferecidas nas instancias correspondentes ao padrão Work With, para personalizar o comportamento dos objetos que serão gerados. Na continuação descrevemos algumas delas. O nó Selection oferece as propriedades relacionadas a tela Work With que se gera para a instância. Seus sub- nós são: Modes (Ins, Upd, Del, Dis) Este nó permite definir em quais modos se pode chamar a transação. As possibilidades e seus valores por default são: Insert: True Update: True Delete: True Display: False Na instância aparece <default> ao lado de cada uma das propriedades anteriores. Onde se configura este valor por default? Veremos numas páginas mais adiante. Para cada modo poderá especificar-se uma condição. São fornecidas as seguintes propriedades para esse propósito: Insert Condition, Update Condition, Delete Condition, Display Condition. Se define uma condição associada a um modo, a chamada para esse modo somente será habilitada a avaliação da condição é verdadeira (Exemplo: CountryId=10).
  • 11. Attributes Este nó permite definir quais atributos desejam mostrar no grid (e para cada atributo, várias propriedades podem ser personalizadas). Orders É possível oferecer ao usuário final várias ordens possíveis para ver o resultado da consulta (isto é, as linhas mostrando os dados no grid). Utilizando o botão direito do mouse pode ser definida uma nova ordem (seu nome e composição). Cada ordem pode estar composta por vários atributos (podendo indicar para cada um deles se deseja ordem ascendente ou descendente). Um combobox será apresentado na tela WorkWith oferecendo todas as possíveis ordens a serem selecionadas, para que o usuário final escolha e os dados sejam apresentados no grid ordenados pelo mesmo. Filter Este nó permite definir condições de filtro, para que no grid sejam mostrados somente os registros que cumpram com as mesmas. Actions O nó Actions permite incorporar ações próprias na tela WorkWith. Isto é, permite agregar botões (dentro ou fora do grid) que chamem aos objetos indicados, com seus parâmetros correspondentes. O nó Actions não está visible por default, estando posicionado no nó Selection e pressionando o botão direito do mouse, a opção Add Actions é oferecida para ser agregada. Uma vez agregado este nó, estando posicionado sobre o mesmo e pressionando o botão direito do mouse, se oferecerá a opção Add Action que permitirá agregar uma ação com seu nome de ação, caption, objeto chamado, etc. O nó View por sua vez, oferece as propriedades relacionadas a tela View gerada para a instância. Mostra toda a informação de um registro, que foi selecionado no grid do WorkWith (a informação do registro é mostrada em uma aba de um tab control, e além disso tem uma aba com um grid para cada tabela diretamente subordinada, para mostrar a informação relacionada).
  • 12. 318 O atributo CountryId, diferente do CountryName, não pode ser eliminado do grid, isso porque é um atributo que se envia a transação ‘Country’ quando o usuário deseja modificar ou eliminar o país mostrado numa linha do grid do Work With.
  • 13. 319 Ao editar as propriedades estando posicionados no nó da instância que se mostra, podemos observar que cada um dos modos que se pode chamar uma transação (para inserir, modificar, eliminar ou incluso mostrar) estão listados como propriedades. Podemos ver também que aparece uma propriedade Export que permite exportar os dados a uma planilha excel. Outra vez aqui podemos apreciar que cada uma das propriedades possui o valor <default> que ainda não sabemos de onde é pego. Mas se queremos fixar um valor independente de qual seja o default, podemos editar o combo box que apresentará três valores: <default>, ‘true’, ou ‘false’. Fixamos o valor da propriedade Delete em ‘false’. Podemos ver em execução a repercussão. Não aprece no grid a primeira coluna que contêm a imagem que permitia eliminar o país. Agora não se pode eliminar países a partir dessa tela. Observe também como desapareceu do grid o atributo CountryId. Ocultamos ele na página anterior.
  • 14.
  • 15. 321 Já havíamos definido o objeto BillingProcess para realizar o faturamento do mês de todos os clientes. Aqui estamos agregando um botão fora do grid, que ao pressioná-lo chama outro objeto GeneXus que havíamos criado anteriormente.
  • 16. 322 O nó View por sua parte, oferece as propriedades relacionadas a tela view que se gera para a instância. Mostra toda a informação de um registro, que foi selecionado no grid do Work With (a informação do registro é mostrada em uma aba de um tab control, e além disso tem uma aba com um grid para cada tabela diretamente subordinada, para mostrar a informação relacionada).
  • 17. 323 Neste caso se não queremos que os atributos CustomerGender e CustomerStatus sejam vistas no grid em execução, não necessitamos ocultá-los. Podemos diretamente eliminá-los.
  • 18. 324 Uma vez executado o passo a) e escolher ‘Filter’ aparecerá um novo nó Filter imediatamente depois do nó Attributes, com 2 subnós: Attributes e Conditions. Depois, no passo b), deverá posicionar-se no subnó Attributes e fazer botão direito, onde se oferece a possibilidade de agregar um atributo de filtro. Ao editar as propriedades, você deverá pressionar o combro box vai mostrar uma janela onde se ingressa o atributo (em nosso caso, CustomerName). Com isto se cria automaticamente uma variável com o mesmo nome que o atributo &CustomerName, que será o control que aparecerá em execução para que o usuário digite ali o filtro. Vejamos o passo seguinte...
  • 19. 325
  • 20. O padrão WorkWith além de gerar objetos novos, também modifica as transações, para que sejam chamadas pelos objetos gerados pelo pattern, agregando a regra parm, etc.. Relacionado a isto, cada instância contêm a propriedade UpdateTransaction, que oferece os seguintes valores: Do not update: A transação não será modificada (web form, regras e eventos serão mantidos). Only rules and events: Somente as regras e eventos serão modificados, o web form não é modificado. Apply WW Style: A primeira vez que o padrão é aplicado, o comportamento será o mesmo que se houvesse selecionado o valor Create Default. A partir da segunda vez que o padrão é aplicado, não se modificará a data área do form da transação (caso tenha sido personalizada com GeneXus e deseja manter), e se modificará o style área, assim como os eventos e regras. Create default: Regras, eventos e form da transação (tanto data área como style área) serão modificados. No que diz respeito ao form, será como selecionar a opção Create default a partir do GeneXus. O valor por default para esta propriedade é Apply WW Style. Enquanto as propriedades AfterInsert, AfterUpdate e AfterDelete, permitem definir o comportamento depois que se insere, modifica ou elimina um registro. Os valores possíveis para cada uma delas são: • Default • Return to caller • Go to View • Go to Selection
  • 21. Aqui estão centralizados os <default> para toda instancia. Podemos ver que o nó Template oferece algumas propriedades que mencionamos na página anterior. O tamanho da página dos grids do work with, que nas imagens anterior era de 3 (se mostravam em 3 linhas por página do grid) se configura no nó Grid. O valor por default desta propriedade é Page.Rows. Isto é, o valor do domínio enumerado Pages criado por GeneXus automaticamente ao aplicar o pattern na primeira vez. O valor que tem Page é 10. Nós tínhamos alterado para 3 para que não fosse mostrado as imagens complestas.
  • 22. O dinamismo mencionado se mantêm para todas as partes default dos objetos. Todos os objetos gerados por Patterns estão baseados no esquema de Defaults de GeneXus. Cada parte (Form, Regras, Eventos) de cada objeto é gerado como Default. Caso alguma parte do objeto tenha sido modificada, esta deixa de ser Default. Por exemplo, se modificar o web form de um WW (não fica como default), e se agrega um novo atributo na TRN, não vai ser atualizado automaticamente o grid WW com esse atributo (ou seja, não será agregado dito atributo). A implementação baseada em Defaults permite ter dinamismo entre a Transação e o padrão • Alterar propriedades na definição do padrão (Pattern setting) • Alterações na instância (agregar um novo filtro) • Alterações na Transação (agregar um novo atributo) Se quiser voltar o dinamismo, deverá ter novamente as partes como default. Para isto, se deve selecionar a partir do Menu Edit / Apply Default (a parte onde se tem aberto o objeto) ou Apply Default (All parts), voltando o default de todas as partes que haviam sido modificadas.