Pero quería saber si ya tienes las lib de FW2407 con la actualización del webview2 para poder implementar esta solución en la app.

Gracias de antemano.
Pdta. las necesitamos en 32 y 64 bits

Code: Select all | Expand
#include "FiveWin.ch"
function consulta(cTerc)
local oWnd, cResult, oWebView
local cConsulta := space(0)
DEFAULT cTerc := "79760202"
cConsulta := "consultaDIAN( '"+cTerc+"' )"
TEXT INTO cResult
[ document.getElementById( 'vistaConsultaEstadoRUT:formConsultaEstadoRUT:primerNombre' ).innerHTML,
document.getElementById( 'vistaConsultaEstadoRUT:formConsultaEstadoRUT:otrosNombres' ).innerHTML,
document.getElementById( 'vistaConsultaEstadoRUT:formConsultaEstadoRUT:primerApellido' ).innerHTML,
document.getElementById( 'vistaConsultaEstadoRUT:formConsultaEstadoRUT:segundoApellido' ).innerHTML,
document.getElementById( 'vistaConsultaEstadoRUT:formConsultaEstadoRUT:estado' ).innerHTML,
document.getElementById( 'vistaConsultaEstadoRUT:formConsultaEstadoRUT:dv' ).innerHTML ]
ENDTEXT
DEFINE WINDOW oWnd TITLE "Usando DIAN desde un webview" SIZE 1050, 700
oWnd:Hide()
oWebView = TWebView2():New( oWnd )
oWebView:bOnNavigationCompleted = { | cUrl, hWebView | If( "sessionid" $ cUrl, oWebView:Eval( cResult ),) }
oWebView:Navigate( "https://muisca.dian.gov.co/WebRutMuisca/DefConsultaEstadoRUT.faces" )
oWebView:InjectJavascript( JavaScript() )
oWebView:bOnEval = { | cJson, hWebView | If( cJson != "null" .and. cJson != "{}", ( MsgInfo( cJson ), oWnd:End() ),) }
oWebView:Eval( )
ACTIVATE WINDOW oWnd CENTER ;
ON INIT oWnd:Hide() ;
ON RESIZE oWebView:SetSize( nWidth, nHeight )
oWebView:End()
return nil
function Javascript()
local cCode
TEXT INTO cCode
function consultaDIAN( numeroIdentificacion )
{
var inputNIT = document.getElementById('vistaConsultaEstadoRUT:formConsultaEstadoRUT:numNit');
if (inputNIT) {
inputNIT.value = numeroIdentificacion;
} else {
console.error('No se encontró el campo de entrada para el NIT');
return;
}
var botonBuscar = document.getElementById('vistaConsultaEstadoRUT:formConsultaEstadoRUT:btnBuscar');
if (botonBuscar) {
botonBuscar.click();
} else {
console.error('No se encontró el botón de búsqueda');
return;
}
}
ENDTEXT
return cCode
Code: Select all | Expand
Application
===========
Path and name: C:\cmplar_64\hymlyma.exe (64 bits)
Size: ********* bytes
Compiler version: xHarbour 1.3.1 Intl. (SimpLex) (Build 20240624)
FiveWin version: FWH 24.07
C compiler version: LLVM/Clang C 5.0.2 (64-bit)
Windows 8 64 Bits, version: 6.2, Build 9200
Time from start: 0 hours 0 mins 10 secs
Error occurred at: 02/10/2024, 14:59:07
Error description: Error BASE/1070 Error de argumento: ==
Args:
[ 1] = N 0
[ 2] = P 0x1C39685D0C8
Stack Calls
===========
Called from: .\source\classes\twebview2.prg => (b)WEBVIEW2_ONEVAL( 128 )
Called from: => ASCAN( 0 )
Called from: .\source\classes\twebview2.prg => WEBVIEW2_ONEVAL( 128 )
Called from: => WINRUN( 0 )
Called from: .\source\classes\window.prg => TMDIFRAME:ACTIVATE( 1117 )
Called from: .\PRG\R32_menu.prg => VTNAPRINCIPAL( 976 )
Called from: .\PRG\R32_menu.prg => MAIN( 123 )
System
======
Hardware memory: 32510 megs
Free System resources: 90 %
GDI resources: 90 %
User resources: 90 %
Windows total applications running: 1
1 ,
Variables in use
================
Procedure Type Value
==========================
(b)WEBVIEW2_ONEVAL
Param 1: O Class: TWEBVIEW2
Param 2: N 1
Local 1: N 0
Local 2: P 0x1C39685D0C8
Local 3: U
Local 4: U
ASCAN
Param 1: A Len: 1
Param 2: B {|| ... }
WEBVIEW2_ONEVAL
Param 1: C "null"
Param 2: P 0x1C39685D0C8
Local 1: U
Local 2: U
WINRUN
Param 1: N 132530
TMDIFRAME:ACTIVATE
Param 1: C "NORMAL"
Param 2: U
Param 3: U
Param 4: U
Param 5: U
Param 6: B {|| ... }
Param 7: B {|| ... }
Param 8: B {|| ... }
Param 9: U
Param 10: U
Param 11: U
Param 12: U
Param 13: U
Param 14: U
Param 15: U
Param 16: U
Param 17: B {|| ... }
Param 18: U
Param 19: U
Param 20: L .F.
Local 1: O Class: TMDIFRAME
Local 2: U
Local 3: U
VTNAPRINCIPAL
Local 1: C "Tahoma"
Local 2: N 12
Local 3: U
Local 4: U
Local 5: U
Local 6: O Class: TINI
Local 7: O Class: TTIMER
Local 8: O Class: TTIMER
MAIN
Local 1: U
Local 2: U
Local 3: U
Local 4: U
Code: Select all | Expand
// oWebView:Eval( )
Code: Select all | Expand
.../...
ON INIT ( oWnd:Hide(), oWebView:Eval() ) ;
Code: Select all | Expand
#include "FiveWin.ch"
static oWebView
function Main()
local oWnd, cResult
TEXT INTO cResult
[ document.getElementById( 'vistaConsultaEstadoRUT:formConsultaEstadoRUT:primerNombre' ).innerHTML,
document.getElementById( 'vistaConsultaEstadoRUT:formConsultaEstadoRUT:otrosNombres' ).innerHTML,
document.getElementById( 'vistaConsultaEstadoRUT:formConsultaEstadoRUT:primerApellido' ).innerHTML,
document.getElementById( 'vistaConsultaEstadoRUT:formConsultaEstadoRUT:segundoApellido' ).innerHTML,
document.getElementById( 'vistaConsultaEstadoRUT:formConsultaEstadoRUT:estado' ).innerHTML,
document.getElementById( 'vistaConsultaEstadoRUT:formConsultaEstadoRUT:dv' ).innerHTML ]
ENDTEXT
DEFINE WINDOW oWnd TITLE "Usando DIAN desde un webview" SIZE 1050, 700
oWnd:Hide()
oWebView = TWebView2():New( oWnd )
oWebView:bOnNavigationCompleted = { | cUrl, hWebView | If( "sessionid" $ cUrl, oWebView:Eval( cResult ),) }
oWebView:Navigate( "https://muisca.dian.gov.co/WebRutMuisca/DefConsultaEstadoRUT.faces" )
oWebView:InjectJavascript( JavaScript() )
// oWebView:OpenDevToolsWindow()
oWebView:bOnEval = { | cJson, hWebView | If( cJson != "null" .and. cJson != "{}", ( MsgInfo( cJson ), oWnd:End() ),) }
oWebView:Eval( "consultaDIAN( '79760202' )" )
ACTIVATE WINDOW oWnd CENTER ;
ON INIT oWnd:Hide() ;
ON RESIZE oWebView:SetSize( nWidth, nHeight )
oWebView:End()
return nil
function Javascript()
local cCode
TEXT INTO cCode
function consultaDIAN( numeroIdentificacion )
{
var inputNIT = document.getElementById('vistaConsultaEstadoRUT:formConsultaEstadoRUT:numNit');
if (inputNIT) {
inputNIT.value = numeroIdentificacion;
} else {
console.error('No se encontró el campo de entrada para el NIT');
return;
}
var botonBuscar = document.getElementById('vistaConsultaEstadoRUT:formConsultaEstadoRUT:btnBuscar');
if (botonBuscar) {
botonBuscar.click();
} else {
console.error('No se encontró el botón de búsqueda');
return;
}
}
ENDTEXT
return cCode
Code: Select all | Expand
Application
===========
Path and name: C:\fwh64_2409\samples\leandro6.exe (64 bits)
Size: 5,665,792 bytes
Compiler version: xHarbour 1.3.1 Intl. (SimpLex) (Build 20240624)
FiveWin version: FWH 24.07
C compiler version: LLVM/Clang C 5.0.2 (64-bit)
Windows 8 64 Bits, version: 6.2, Build 9200
Time from start: 0 hours 0 mins 0 secs
Error occurred at: 10/03/24, 16:43:33
Error description: Warning BASE/1005 Message not found: TWEBVIEW2:_BONNAVIGATIONCOMPLETED
Stack Calls
===========
Called from: source\rtl\tobject.prg => TWEBVIEW2:ERROR( 0 )
Called from: source\rtl\tobject.prg => TWEBVIEW2:MSGNOTFOUND( 0 )
Called from: source\rtl\tobject.prg => TWEBVIEW2:_BONNAVIGATIONCOMPLETED( 0 )
Called from: leandro6.prg => MAIN( 22 )
System
======
Hardware memory: 32510 megs
Free System resources: 90 %
GDI resources: 90 %
User resources: 90 %
Windows total applications running: 1
1 ,
Variables in use
================
Procedure Type Value
==========================
TWEBVIEW2:ERROR
Param 1: C "Message not found"
Param 2: C "TWEBVIEW2"
Param 3: C "_BONNAVIGATIONCOMPLETED"
Param 4: N 1005
Local 1: U
Local 2: O Class: TWEBVIEW2
Local 3: N 16
TWEBVIEW2:MSGNOTFOUND
Param 1: C "_BONNAVIGATIONCOMPLETED"
Param 2: O Class: TWEBVIEW2
TWEBVIEW2:_BONNAVIGATIONCOMPLETED
Param 1: B {|| ... }
MAIN
Local 1: O Class: TWINDOW
Local 2: C " [ document.getElementById( 'vistaConsultaEstadoRUT:formConsultaEstadoRUT:primerNombre' ).innerHTML, document.getElementById( 'vistaConsultaEstadoRUT:formConsultaEstadoRUT:otrosNombres' ).innerHTML, document.getElementById( 'vistaConsultaEstadoRUT:formConsultaEstadoRUT:primerApellido' ).innerHTML, document.getElementById( 'vistaConsultaEstadoRUT:formConsultaEstadoRUT:segundoApellido' ).innerHTML, document.getElementById( 'vistaConsultaEstadoRUT:formConsultaEstadoRUT:estado' ).innerHTML, document.getElementById( 'vistaConsultaEstadoRUT:formConsultaEstadoRUT:dv' ).innerHTML ]"
Linked RDDs
===========
DBF
DBFFPT
DBFBLOB
DBFCDX
DBFNTX
DataBases in use
================
Classes in use:
===============
1 ERROR
2 HASHENTRY
3 HBCLASS
4 HBOBJECT
5 TWINDOW
6 TBRUSH
7 TFONT
8 TREG32
9 TWEBVIEW2
Memory Analysis
===============
730 Static variables
Dynamic memory consume:
Actual Value: 0 bytes
Highest Value: 0 bytes
Amigo ya hice lo que mencionaste pero nada sigue devolviendo el mismo errorcnavarro wrote:Leandro, prueba a quitar estoy ponerlo en el ON INIT de la ventanaCode: Select all | Expand
// oWebView:Eval( )
Code: Select all | Expand
.../... ON INIT ( oWnd:Hide(), oWebView:Eval() ) ;
Antonio hicimos lo que mencionas y nos devolvió el siguiente resultado:Antonio Linares wrote:Leandro,
Además de lo que te comenta Cristobal, dos cosas:
1. después de oWebView = TWebView2():New( oWnd ) añade esta línea:
MsgInfo( oWebView:hWebView )
y mira a ver si tiene un handle válido o un cero
2. Cuando llamas a oWebView:Eval( ) no le pasas ningún código javascript a ejecutar ??? Eso es diferente. Tal vez eso afecte...
Code: Select all | Expand
#include "FiveWin.ch"
static oWebView
consultaDIAN()
function consultaDIAN()
local oWnd
DEFINE WINDOW oWnd TITLE "Usando DIAN desde un webview" SIZE 1050, 700
oWebView = TWebView2():New( oWnd )
oWebView:Navigate( "https://muisca.dian.gov.co/WebRutMuisca/DefConsultaEstadoRUT.faces" )
oWebView:InjectJavascript( Javascript() )
ACTIVATE WINDOW oWnd CENTER ON RESIZE oWebView:SetSize( nWidth, nHeight )
oWebView:End()
return nil
function Javascript()
local cCode
TEXT INTO cCode
function consultaDIAN()
{
var inputNIT = document.getElementById('vistaConsultaEstadoRUT:formConsultaEstadoRUT:numNit');
if (inputNIT) {
inputNIT.value = "79760202";
} else {
console.error('No se encontró el campo de entrada para el NIT');
return;
}
}
ENDTEXT
return cCode
Code: Select all | Expand
#include "FiveWin.ch"
static oWebView
consultaDIAN()
function consultaDIAN()
local oWnd
local cJavaScript := Javascript()
DEFINE WINDOW oWnd TITLE "Usando DIAN desde un webview" SIZE 1050, 700
oWebView = TWebView2():New( oWnd )
oWebView:Navigate( "https://muisca.dian.gov.co/WebRutMuisca/DefConsultaEstadoRUT.faces" )
oWebView:InjectJavascript( cJavaScript )
ACTIVATE WINDOW oWnd CENTER ON RESIZE oWebView:SetSize( nWidth, nHeight )
oWebView:End()
return nil
function Javascript()
local cCode
TEXT INTO cCode
var inputNIT = document.getElementById('vistaConsultaEstadoRUT:formConsultaEstadoRUT:numNit');
inputNIT.value = '79760202';
alert(inputNIT.value);
ENDTEXT
return cCode
Code: Select all | Expand
#include "FiveWin.ch"
static oWebView
function Main()
local oWnd
DEFINE WINDOW oWnd TITLE "Usando DIAN desde un webview" SIZE 1050, 700
oWebView = TWebView2():New( oWnd )
oWebView:Navigate( "https://muisca.dian.gov.co/WebRutMuisca/DefConsultaEstadoRUT.faces" )
oWebView:InjectJavascript( Javascript() )
// oWebView:Eval( "consultaDIAN()" )
ACTIVATE WINDOW oWnd CENTER ON RESIZE oWebView:SetSize( nWidth, nHeight )
oWebView:End()
return nil
function Javascript()
local cCode
TEXT INTO cCode
function consultaDIAN()
{
var inputNIT = document.getElementById('vistaConsultaEstadoRUT:formConsultaEstadoRUT:numNit');
if (inputNIT) {
inputNIT.value = "79760202";
} else {
console.error('No se encontró el campo de entrada para el NIT');
return;
}
alert( "aqui" );
}
ENDTEXT
return cCode
Code: Select all | Expand
...
...
...
Lines 58, Functions/Procedures 2, pCodes 144
xHarbour 1.3.1 Intl. (SimpLex) (Build 20240624)
Copyright 1999-2024, http://www.xharbour.org http://www.harbour-project.org/
Compiling '.\PRG\R64_fact.prg'...
Generating C source output to 'obj\R64_fact.c'...
Done.
Lines 39, Functions/Procedures 3, pCodes 186
bcc64.exe: warning: argument unused during compilation: '-Lc:\bcc770_64\LIB' [-Wunused-command-line-argument]
obj\R32_menu.c:
obj\R32_perm.c:
obj\Alyma.c:
obj\R32_bode.c:
obj\R32_cate.c:
obj\R32_ciud.c:
...
...
...
Code: Select all | Expand
...
...
...
if "%FWDIR%" == "" set FWDIR=C:\fwh64_2409
if "%HBDIR%" == "" set HBDIR=C:\xHar2407_64
rem if "%2" == "/b" set GT=gtwin
rem if not "%2" == "/b" set GT=gtgui
set GT=gtgui
ECHO Compiling...
set hdir=%HBDIR%
set hdirl=%hdir%\lib
set fwh=%FWDIR%
set bcdir=C:\bcc770_64
...
...
...
Code: Select all | Expand
-optim-
-ldflag+=-aa -n-
-Ic:\fwh64_2409\include
-Lc:\fwh64_2409\lib
Code: Select all | Expand
set bcc=bcc770_64
set path=c:\%bcc%\bin
set HB_USER_CFLAGS=-Ic:\%bcc%\INCLUDE\windows\crtl -Ic:\%bcc%\INCLUDE\windows\sdk -Lc:\%bcc%\LIB
set HB_USER_LDFLAGS=-Lc:\%bcc%\LIB;c:\%bcc%\LIB\psdk
c:\xHar2407_64\bin\hbmk2.exe xhbcmp.hbp -xhb -comp=bcc64
Code: Select all | Expand
Application
===========
Path and name: C:\cmplar_64\hymlyma.exe (64 bits)
Size: ********* bytes
Compiler version: xHarbour 1.3.1 Intl. (SimpLex) (Build 20240624)
FiveWin version: FWH 24.07
C compiler version: LLVM/Clang C 5.0.2 (64-bit)
Windows 8 64 Bits, version: 6.2, Build 9200
Time from start: 0 hours 0 mins 9 secs
Error occurred at: 05/10/2024, 10:08:03
Error description: Error BASE/1070 Error de argumento: ==
Args:
[ 1] = N 0
[ 2] = P 0x2345D41D818
Stack Calls
===========
Called from: .\source\classes\twebview2.prg => (b)WEBVIEW2_ONEVAL( 128 )
Called from: => ASCAN( 0 )
Called from: .\source\classes\twebview2.prg => WEBVIEW2_ONEVAL( 128 )
Called from: => WINRUN( 0 )
Called from: .\source\classes\window.prg => TMDIFRAME:ACTIVATE( 1117 )
Called from: .\PRG\R32_menu.prg => VTNAPRINCIPAL( 976 )
Called from: .\PRG\R32_menu.prg => MAIN( 123 )