Você está na página 1de 7

03/07/2019 Genexando...

: Junho 2011

mais Criar um blog Login

Página Inicial Reserva de Direitos O que é Genexando

quinta-feira, 23 de junho de 2011

Browser detect...
Aproveitando o embalo do Save As..., vamos avançar um pouco com Javascript +
Genexus, desta vez detectando o navegador que o usuário está utilizando.

A operação de detecção do browser não é muito importante no Genexus, visto que


a própria ferramenta já trata isso automaticamente.  Acontece que nossa
curiosidade nos leva a programar outros recursos disponíveis diretamente em
Javascript, e com isso, esbarramos na compatibilidade do navegador.

Javascript é a linguagem para programação no navegador, e entre seus recursos


temos a classe Navigator, que apresenta informações a respeito do browser.  A
tabela a seguir apresenta as informações retornadas por essa classe.

Opera navigator.appCodeName: Mozilla


navigator.appName: Opera
navigator.appVersion: 9.80 (Windows NT 6.1;
U; en)
navigator.cookieEnabled: true
navigator.platform: Win32
navigator.userAgent:  Opera/9.80 (Windows NT
6.1; U; en) Presto/2.8.131 Version/11.11
Chrom Browser CodeName: Mozilla
e Browser Name: Netscape
Browser Version: 5.0 (Windows NT 6.1; WOW64)
AppleWebKit/534.30 (KHTML, like Gecko)
Chrome/12.0.742.100 Safari/534.30
Cookies Enabled: true
Platform: Win32
User-agent header: Mozilla/5.0 (Windows NT 6.1;
WOW64) AppleWebKit/534.30 (KHTML, like Gecko)
Chrome/12.0.742.100 Safari/534.30
Interne Browser CodeName: Mozilla
Pesquisar
t Browser Name: Microsoft Internet Explorer
Explore Browser Version: 5.0 (compatible; MSIE 9.0; Windows Pesquisar
r NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR
2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729;
Arquivo do blog
Media Center PC 6.0; eMusic DLM/4; InfoPath.1;
.NET4.0C; .NET4.0E) ► 2017 (6)

Cookies Enabled: true
► 2016 (12)

Platform: Win32
User-agent header: Mozilla/5.0 (compatible; MSIE 9.0; ► 2015 (27)

Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET ► 2014 (11)



CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR ► 2013 (39)

3.0.30729; Media Center PC 6.0; eMusic DLM/4;
► 2012 (22)

InfoPath.1; .NET4.0C; .NET4.0E)
Firefox Browser CodeName: Mozilla ▼ 2011 (45)

Browser Name: Netscape ► Dezembro (1)



Browser Version: 5.0 (Windows) ► Novembro (4)

Cookies Enabled: true
► Outubro (8)

Platform: Win32
User-agent header: Mozilla/5.0 (Windows NT 6.1; ► Setembro (10)

WOW64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1 ► Agosto (4)


► Julho (3)

▼ Junho (4)

www.genexando.com/2011/06/ 1/7
03/07/2019 Genexando...: Junho 2011
Browser detect...
Para obter os valores é necessário programar o código a seguir no Genexus em um Save As...
controle Textblock, marcado com a propriedade HTML.
3 Anos, isso é incrivel!
Interfaces web na base do
fórceps!

► Maio (4)

► Abril (2)

► Março (2)

Detectando o Navegador
► Janeiro (3)

O processo de detecção em Genexus envolve a obtenção do valor do
► 2010 (25)

navigator.appName e seu tratamento dentro da área de Events do painel. Em
► 2009 (11)

outras palavras, obter via Javascript o tipo de browser e passar para o Genexus
tratar em sua área de código.
Assuntos Publicados
Para fazer isso, podemos programar, no Event Start um processo que carrega o
64 bits (5) abas (3) abobrinha (13)
tipo de navegador em uma variável, seria melhor colocar isso no Login do sistema,
abstract editor (5) android (3)
pois, desta forma teriamos o valor para futuras referencias dentro do sistema. aprender (2) backup (2) base trn (2)
Então, em nosso exemplo temos um WebPanel que realiza o login do usuário, e
uma variável chamada &NavTipo que fica com visible=0;
bitmap (1) blob (4) boas
práticas (26) bootstrap (2)
business components (5) c# (1) chave
(1) cloud (2) coleções (6) continuos
integration (1) csharp (8) css (4) data
provider (1) datas (1) debug (2)
desempenho (2) design (4) design
responsivo (5) dominios (4) drag e
drop (2) eletrônica (2) email (5)
encontro (2) entidades (1) enumerados (1)

erros (23) estilos (2) Ev3 (10)


eventos (6)excel (6) expressão
Um Textblock (tipo HTML) é usado para programarmos o código em Javascript que regular (3) external object (5)
fckeditor (2) for each (4) foreign key (1)
intercepta o navegador.
freestyle (1) GAM (10) GAM API (3)

GamHome (1) GamMenu (1) genexus


(23) Genexus 15 (1) global events (1)
google (1) grid (1) gug (2) Gx15 (2)
gxserver (3) gxtest (1) gxui (4) hash (1)
html (1) https (1) iis (6) image (2) imagens

Ao informar seu usuário e senha e em seguida pressionar-se o botão confirmar, o


(1) images (1) in (3) interfaces
sistema devolverá o tipo de browser que o usuário está utilizando. web (26) ios (1) IoT (1) java (2)
javascript (5) json (3) kb (4) kbs
grandes (2) live editing (1) login (2) mac
(2) matematica (1) mathml (1) menu (4)
modules (1) mysql (2) OAUTH (1) Open
source (1) owasp (9) palestra (1) parm
(1) pdf (1) pixel (1) pop3 (1) POST (1)

A programação Javascript + Genexus oferecem desafios bem interessantes e com postman (3) primary key (1) procedure (1)

certeza permite a construção de interfaces avançadas.  Se você não entendeu programação avançada
direito como funcionou a parte referente à gravação da variável Genexus, (26) qrcode (1) query (1) recursividade
recomendo ler um pouco a respeito do Javascript DOM. (1) relatório (1) report (1) resolution (1)
responsive table (5) rest (4) roles (1)
Boa programação! RSA (1) ruby (3) rwd (4)
segurança (19) session (4)
sistema operacional (4)
smartdevices (9) smooth (1) soap (1)
sql server (5) SSO (1) submit (1) tabela
estendida (3) Theme (1) tomcat (2)
Postado por Genexando às 11:23
user control (9) virtual
transação (1)
Reações:  engraçado (0) interessante (0) legal (0) machine (2) web components (1) web
service (7) webpanel (2) webservices (1)
3 comentários: Links para esta postagem
xcode (1) xml (4) xpz (1)
Marcadores: interfaces web, javascript

Postagens populares

=.+
Save As... Calma, não se trata de nenhum
palavrão, na verdade é uma frase
muito útil. Quem me ensinou isso

www.genexando.com/2011/06/ 2/7
03/07/2019 Genexando...: Junho 2011
Que tal abrir uma janela popup e em seguida realizar uma operação de salvar um foi o Daniel
Krueger, e veja
arquivo TXT, previamente carregado nessa janela. Numa dessas operações
como ele é um p...
automáticas que devemos fazer para agradar nossos usuários, tivemos essa
necessidade, visto que a operação exigia que um arquivo TXT fosse gerado no Gx e
em seguida armazenado no diretório local do usuário.
Browser detect...
Infelizmente esse modelo de programação, javascript, limitou a solução ao Aproveitando o
navegador Internet Explorer, e os demais não se deram muito bem com esse embalo do Save
recurso, creio que isso afeta um pouco a segurança, mas pelo menos alguma coisa. As..., vamos
avançar um pouco
com Javascript +
Genexus, desta vez detectando o
navegador que o usuário está
ut...

Criando um Menu
Recursivo
  (revisado)
Às vezes o mais
Para que o código funcione é necessário criar um WebPanel com um componente
complexo é
EmbPage e um Textblock, sendo que este último deve estar no formato HTML. resolvido com
coisas simples, na verdade me
parece que essa é uma regra da
natureza, pois quanto mais
complexa é ...

Sobre Blob e
Images
Carregar imagens
diretamente no
banco de dados é
uma operação
bastante interessante e prática
utilizando os tipos Image e Blob
no Genexus. P...

Como não render-


se ao Submit
Submit traduzido
para o português
significa submeter,
Duas variáveis são utilizadas para indicar o local onde o arquivo se encontra e submeter-se,
também para determinar um nome default para a criação no diretório local do ceder, sujeitar-se, render-se,
usuário. entregar-se, e não poderia haver
sinônim...

&NomeGravar    = "teste.txt"  // nome do arquivo a ser gravado Datetime


&LocalArquivo  = "teste.txt"   // local onde se encontra o arquivo a partir da raiz Manipular tipos de dados
do sistema Datetime é simples, ao contrário
do que parece, basta utilizar as
funções corretas. Genexus
O resultado é a apresentação do dialogo de salvamento do windows. possibilita a definiçã...

Bootstrap Navbar
Nosso artigo Menu
Recursivo foi o que
trouxe a maior
repercussão no
Genexando ao
longo dos anos, pois foram mais
de 12 mil visualizações de...

REST & SOAP


Temos ha algum
tempo dois
modelos de
conexão a
webservices
implementados no Genexus a sua
disposição para que inicie seus
projetos: SOAP (Si...

Parm & Json


O efeito é muito interessante, pena que não foi uma solução completa. Tem muita gente
que não é chegada
em queijo. Não
podemos negar
que é um super
Postado por Genexando às 08:44 alimento, e devido aos diversos
tipos existentes no mundo, pod...
Reações:  engraçado (0) interessante (0) legal (0)
Arquivos Excel no Genexus
Nenhum comentário: Links para esta postagem
Genexus possui recursos muito
Marcadores: interfaces web, javascript simples e interessantes que

www.genexando.com/2011/06/ 3/7
03/07/2019 Genexando...: Junho 2011
implementam um
'que' de aplicação
integrada, e que
podem ser
terça-feira, 14 de junho de 2011
utilizados e...

3 Anos, isso é incrivel!


Genexando no smartphone
Vejam que coisa impressionante, hoje fazem exatamente 3 anos da primeira
postagem no Blog Genexando, não sou nada ligado a datas mas fui conferir, e por
incrivel que pareça a primeira foi a três anos atras.

Refletindo um pouco acho que isso quer dizer:

1. Fiquei mais velho 3 anos, e nem vi passar, :(

2. Apesar de ter ficado 3 anos mais velho, ainda acho que programar computador é Atualizações:
legal, :)
Para facilitar seu acesso às
atualizações do Genexando
3. O Lula não é mais o presidente, :), mas a Dilma ficou, :(, pensando melhor, acho recomendamos que faça a inscrição
que não faria muita diferença, :) pela opção Amigos do Blog, isso
permitirá que as próximas
4. Acho que nenhum imposto novo foi criado nesses três anos, mas não tenho publicações sejam enviadas a você
certeza, :) diretamente em seu email, e desta
forma você ficará conectado as
5. O Didi ainda possui um programa na Tv, :), pensando melhor acho que todos os novidades do Blog.
apresentadores de programas da minha época de infância ainda estão com
programas na Tv (Didi, Hebe, Gugu, Xuxa), reparando melhor nisso, veja que todos
tem 4 letras, com excessão ao Ratinho. :)

Amigos do Blog
Enfim, tantas coisas legais, algumas iguais, aconteceram nesses três anos, mas receba as atualizações no email
sabe de uma coisa, acho que valeu a pena.  Achava que não daria conta de
escrever alguns posts, mas foi uma experiência bem legal. Seguidores (181) Próxima

Valeu a força!

ps. a Xuxa não foi da minha época de infância, ok!, :(

Postado por Genexando às 20:45


Reações:  engraçado (1) interessante (0) legal (0)

3 comentários: Links para esta postagem

Marcadores: abobrinha

Seguir

segunda-feira, 13 de junho de 2011

Interfaces web na base do fórceps!


Você sabe o que é fórceps?  Calma, não é um novo acrônimo na informática, nem
mesmo significa alguma tecnologia nova relacionada a TI, ou mesmo um novo
modelo de roteador.

Durante muito tempo minhas interfaces web não respondiam de forma adequada,
e os valores apresentados não eram corretos, isto apesar de serem geradas sem
erros. Ou seja, construir uma interface gráfica web em Genexus parecia, de vez
em quando, um parto mal resolvido, não que eu saiba direito o que significa isso,
mesmo porque esse assunto é mais relacionado com as meninas, mas imagino
que deve doer pra caramba. 

Então, como dominar esse assunto e sofrer menos com as dores de parto, ou


pior, apelando para o fórceps, ou seja, vai meio que na marra! Abaixo apresento
meu manual para um parto sadio.

URL ou Formulário
Para responder essa pergunta é necessário primeiro entender como ocorre o
mecanismo de comunicação entre o cliente e o servidor no protocolo HTTP. Como
assim? Existem dois tipos de chamadas que podem acontecer entre um cliente a
um servidor web. Pelo endereço de URL ou via FORM.

www.genexando.com/2011/06/ 4/7
03/07/2019 Genexando...: Junho 2011
A chamada com URL acontece quando digitamos um um endereço válido no
navegador, como por exemplo: http://www.google.com, ou quando estamos em
um programa, ao selecionar uma opção no menu do sistema.

A chamada via FORM, por sua vez, ocorre quando preenchemos algum controle Edit
em um formulário na interface web e  em seguida pressionamos algum botão que
faz com que o controle seja enviado ao servidor, esse botão normalmente é do tipo
SUBMIT. A própria interface do Google possui um formulário, e ao pressionar o
botão Pesquisa Google, por exemplo, estamos realizando um acesso ao programa
do Google, através de uma chamada de Formulário.

Na nomenclatura oficial do WWW, a chamada via URL é denominada GET, e a via


Formulário é denominada POST, salvo os detalhes de configurações que podem ser
feitas, alterando um pouco isso.

GET

Sempre a primeira chamada a um programa acontece pela URL, e é denominada


GET.  Sua principal característica é a passagem de parâmetros, que acontece no
próprio ‘endereço’ do programa. Para isso usa-se uma interrogação (?) para separar
o nome do programa da lista de parâmetros. O GxTechnical, por exemplo, cria
chamadas com um montão de parâmetros separados por virgula (,).

http://www2.gxtechnical.com/portal/hgxpp001.aspx?
15,1,400,O,S,0,PAG;CONC;2;22;D;33688;1;PAG;,

Existem nessa chamada dois elementos fundamentais, o programa (ou script) que é


informado antes da interrogação,
http://www2.gxtechnical.com/portal/hgxpp001.aspx, e os parâmetros que
consiste na lista após a interrogação,
15,1,400,O,S,0,PAG;CONC;2;22;D;33688;1;PAG;,

POST

A chamada que acontece pelo envio de um formulário, é denominada POST, e têm


por característica principal a passagem de parâmetros de forma interna, ou
seja, os valores não são facilmente perceptíveis ao usuário, é como se ficassem
ocultos. Os dados são encapsulados (embutidos) no pacote enviado ao servidor.

Genexus

Genexus realiza ambos os processos de comunicação de forma automática. A


primeira chamada a um programa sempre acontece sempre no formato GET e, na
seqüência, após a manipulação de um formulário apresentado por este programa,
ocorrem chamadas POST, tanto nos objetos Transação quanto WebPanel.
Então vamos de fato aos eventos ‘Start’ e ‘Refresh’, que ocorrem na abertura da
Transação ou WebPanel. Qual a seqüência em que são executados e seus
significados, em função do tipo de chamada no servidor?

Chamada GET
É realizada na primeira chamada a um programa, e nesse caso, ocorre uma
seqüência simples de eventos até que a página seja completamente construída no
servidor e enviada ao usuário.

www.genexando.com/2011/06/ 5/7
03/07/2019 Genexando...: Junho 2011

Nesta chamada o servidor executa as ações programadas no evento Start, em


seguida as que se encontram no Refresh e finalmente para cada linha da tabela
referenciada na interface o evento Load.
Chamada POST
Esta é a chamada realizada quando o usuário provoca um evento na interface
previamente apresentada, por exemplo, quando pressiona o botão Confirmar, ou
quando seleciona uma linha com evento associado em um controle Grid.

Nessa chamada ocorrem duas ações antes do evento Refresh, sendo a primeira a
leitura de todas as variáveis que se encontram no formulário, ou seja, os
conteúdos fornecidos pelo usuário ficam conhecidos do programa, antes disso os
valores considerados são os definidos em Start.  Em seguida, após conhecer os
valores digitados, ocorre o Evento provocado pelo usuário, ou seja, se foi o botão
Confirmar, ocorrem às ações que foram programadas no evento Enter, e assim por
diante.

Finalmente, após essas duas ações terem sido consideradas inicia-se a carga da
database, ou seja, o evento Refresh e Load.

Podemos entender então que até o evento Refresh ser executado, as ações
anteriores diz respeito ao conhecimento dos valores default e informados pelo
usuário, consistindo em uma fase de definições.  E ainda que antes do Refresh, não
temos ainda a configuração exata que a interface deverá trabalhar, visto que os
valores manipulados ainda não foram totalmente conhecidos. 

Portanto, o melhor lugar para se pensar na construção da interface gráfica é o


evento Refresh, ao invés do evento Start.  O evento Load seria muito interessante
também, mas não se esqueça que se houver alguma tabela base associada à
interface, o evento se transforma em um for...each, ou seja, é executado mais de
uma vez. 

Então agora fica mais compreensível a sequencia do parto: 

1. Start possui apenas valores default.


2. Para construir uma interface que tenha um comportamento condizente com
a operação do usuário inicie a programação da mesma a partir do evento
Refresh.
3. Genexus não possui um evento posterior ao Load, isso poderia ser incluído
na ferramenta, vamos incluir na lista do Genexus dos Sonhos!
4. E por favor, quando o assunto tem mesmo a ver com nomes de criança, não
se inspire na novela das 8, no jogador de futebol da moda, ou em nomes
famosos, rs....

Conclusão

Bom, agora se voce de fato ficou interessado em assuntos relacionados a partos,


inclusive leu esse post achando que eu ia falar a respeito de contrações, dilatação,
cesariana, ..., recomendo um site na web: http://www.gestantes.net/ ou mesmo
http://www.amigasdoparto.com.br/.

     

Postado por Genexando às 08:00


Reações:  engraçado (0) interessante (0) legal (0)

Nenhum comentário: Links para esta postagem

Marcadores: eventos, interfaces web

Postagens mais recentes Página inicial Postagens mais antigas

Assinar: Postagens (Atom)

www.genexando.com/2011/06/ 6/7
03/07/2019 Genexando...: Junho 2011

Traduza

Selecione o idioma ▼

Caros amigos, para utilizar o conteúdo aqui apresentado, solicitamos a gentileza de contactar-nos. Tema Simples. Tecnologia do
Blogger.

www.genexando.com/2011/06/ 7/7