Tema: [Aporte] Google Maps localización
Ver Mensaje Individual
  #5
Antiguo 2 de septiembre de 2015, 13:23
IDENTIFICATION DIVISION
Eslopes
Guru de OO COBOL
ENVIRONMENT DIVISION
Avatar de Eslopes
DATA DIVISION
Forero desde (Registrado)agosto 2015
Brasil
Última Actividad11.05.2019 21:19
PROCEDURE DIVISION
PostsPosts: 66
Ha dicho GraciasEnviado: 17
Ha recibido agradecimientosRecibido: 29
Mejores respuestasSoluiones: 2
ReputaciónReputación: 7
Eslopes is on a distinguished road Eslopes is on a distinguished road Eslopes is on a distinguished road
Predeterminado

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 no ha iniciado sesión   Responder Con Cita