Ver Mensaje Individual
  #5
Antiguo 2 de septiembre de 2015, 13:23
Eslopes
Creador de
PowerRustCOBOL
Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por ámplios conocimientos en la materia Concurso: Tercer puesto: Ganador/a del Tercer puesto en un concurso - Issue reason: Juego  Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras 
Última Actividad 22.09.2026 01:37
Posts Posts: 360
Likes enviados Enviados: 29
Likes recibidos Recibidos: 159

Olá,

podemos levar a integração com o browser um passo adiante. Tenho um exemplo de integração com o GoogleMaps que permite a uma aplicação PowerCobol não apenas carregar o mapa num determinado endereço, mas executar funções Javascript, passando parâmetros e recebendo de volta valores das funções dentro do html

O exemplo está em inglês, mas é muito fácil de se entender.

GoogleMaps + Cobol


O segredo é a capacidade do Power de manipular objetos COM:

Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  01  webBrowserCom usage object reference COM.    *> será usado para referenciar o objeto WebBrowser1
  5.  01  document      usage object reference COM.         *> representa o documento HTML carregado no WebBrowser1
  6.  01  parentWindow  usage object reference COM.      *> representa o topo da hierarquia DOM do HTML

Primeiro, carregamos a página Web no objeto WebBrowser1:

Código COBOL:
  1. INVOKE WebBrowser1 "Navigate" USING "http://www.100coolthings.net/Portals/3/GoogleMapsAPI.html"

Segundo, precisamos converter um objeto POWER para o tipo COM:

Código COBOL:
  1.      CALL "POWERCONVTOCOM" USING WebBrowser1 returning webBrowserCom

Em seguida obtemos o objeto que representa o HTML carregado

Código COBOL:
  1.      invoke webBrowserCom "GET-Document" returning document

Agora obtemos o objeto que representa o topo da hierarquia DOM do HTML carregado no WebBrowser1:

Código COBOL:
  1.      invoke document      "GET-parentWindow"  returning parentWindow

A partir deste momento podemos executar QUALQUER Javascript que exista na página:

Código COBOL:
  1.      invoke parentWindow "execScript" using "findLocation('Colatina, ES, BR');" & x"00"

No caso a URL usada aponta para uma página HTML que contém o seguinte Javascript:

Código Java:
  1. // findLocation is called by PowerCobol to look for a location based in the passed address
  2.     function findLocation(address) {
  3.       document.forms[0].q.value = address;
  4.       showLocation();
  5.     }
Se quisermos obter um valor de retorno, podemos declarar o INVOKE da seguinte forma:

Código COBOL:
  1.      invoke parentWindow "execScript" using "findLocation('Colatina, ES, BR');" & x"00" RETURNING retorno

"retorno" seria uma variável PIC X(n).

Dá para usar jQuery, Mootols, montar telas em HTML5, usar componentes online ou offline (html local) etc , etc, etc...

Pensem nas possibilidades

Saludos, Emerson


eslopes, usa el resalto de sintaxis (sintax highlight buttons)

---------- Post added at 08:23 ---------- Previous post was at 08:06 ----------

Olá, agora entendi o que significa "usa el resalto de sintaxis (sintax highlight buttons)" rs...

Vou usar este recurso na próxima vez (antes eu achava que o forum fazia isto automaticamente, rs.

Saludos, Emerson
Eslopes is offline   Responder Con Cita