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:
COBOL Código:
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 webBrowserCom usage object reference COM. *> será usado para referenciar o objeto WebBrowser1
01 document usage object reference COM. *> representa o documento HTML carregado no WebBrowser1
01 parentWindow usage object reference COM. *> representa o topo da hierarquia DOM do HTML
Primeiro, carregamos a página Web no objeto WebBrowser1:
COBOL Código:
INVOKE WebBrowser1 "Navigate" USING "http://www.100coolthings.net/Portals/3/GoogleMapsAPI.html"
Segundo, precisamos converter um objeto POWER para o tipo COM:
COBOL Código:
CALL "POWERCONVTOCOM" USING WebBrowser1 returning webBrowserCom
Em seguida obtemos o objeto que representa o HTML carregado
COBOL Código:
invoke webBrowserCom "GET-Document" returning document
Agora obtemos o objeto que representa o topo da hierarquia DOM do HTML carregado no WebBrowser1:
COBOL Código:
invoke document "GET-parentWindow" returning parentWindow
A partir deste momento podemos executar QUALQUER Javascript que exista na página:
COBOL Código:
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:
Java Código:
// findLocation is called by PowerCobol to look for a location based in the passed address
function findLocation(address) {
document.forms[0].q.value = address;
showLocation();
}
Se quisermos obter um valor de retorno, podemos declarar o INVOKE da seguinte forma:
COBOL Código:
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
Marcadores