Estoy tratando de compilar un ejemplo que compartieron hace algunos meses para hacer consultas de RUC acá en Perú:
Code: Select all
* ------------------------------------------------------ *
* SISTEMA : *
* PRG : *
* CREADO : *
* ACTUALIZADO : *
* AUTOR : *
* COMENTARIOS : *
* ------------------------------------------------------ *
#include <minigui.ch>
FUNCTION MAIN
DEFINE WINDOW Win_1;
AT 0,0 ;
WIDTH 640 HEIGHT 460 ;
TITLE 'Consulta RUC' ;
ON INIT INISETS() ;
MAIN
DEFINE MAIN MENU
POPUP "&Operaciones"
ITEM '&1. Bajar captcha SUNAT' ACTION BajarCaptcha()
END POPUP
END MENU
END WINDOW
CENTER WINDOW Win_1
ACTIVATE WINDOW Win_1
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
* FUNCION...: INISETS
* COMENTARIO: INICIALIZA LOS SETEOS DEL SISTEMA.
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC INISETS
SET BELL Off
SET CONSOLE Off
SET CURSOR Off
SET DATE TO BRIT
SET DELETED On
SET DELIMITERS Off
SET ECHO Off
SET EPOCH TO 1990
SET MESSAGE TO 22 CENTER
SET SAFETY Off
SET SCOREBOARD Off
SET TALK Off
SET WRAP On
SETMODE(25,80)
ALTD(0)
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
Func BajarCaptcha
LOCAL cOrigen := "www.sunat.gob.pe/cl-ti-itmrcosruc/captcha?accion=image"
LOCAL cDestin := "c:\infofarma\tmp\ruc_capcha.jpg"
IF URLDownLoad( cOrigen , cDestin )
MsgInfo('Descarga exitosa')
ENDIF
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
Func BuscaInfoRUC(cRuc,cCapcha)
local r
local i
local s
local nPos
local cN
local cD
local xL := ''
local cF := "test.txt"
local cUrl := "http://www.sunat.gob.pe/cl-ti-itmrconsruc/jcrS00Alias?accion=consPorRuc&nroRuc="+cRuc+" &codigo="+cCapcha+" &tipdoc=1"
if empty(cRuc)
MsgStop("no ha ingresado RUC valido para consultar","Error")
else
URLDownLoad(cUrl, cF)
if file(cF)
r:=MemoRead(cF)
if at('El numero Ruc ingresado es invalido',r) > 0
Msgwait("El numero Ruc ingresado es invalido o no existe",,1)
else
Do while .t.
i:=At( CRLF, r )
If i=0
exit
Endif
s:=Left( r, i-1)
r:=Subs( r, i+2)
If (nP := at('Número Ruc.', s ) ) > 0
cN := substr(s, nP+16)
If (nP := at(trim(cRuc), cN ) ) > 0
cN := substr(cN, nP+14)
cN := strtran(cN,"<br/>","")
cN := strtran(cN,"</small>","")
cN := STRTRAN(cN,"Ñ", "Ñ")
cN := STRTRAN(cN,"Ñ", "Ñ")
cN := STRTRAN(cN,"Á", "Á")
cN := STRTRAN(cN,"É", "É")
cN := STRTRAN(cN,"Í", "Í")
cN := STRTRAN(cN,"Ó", "Ó")
cN := STRTRAN(cN,"Ú", "Ú")
cN := STRTRAN(cN,"Á", "Á")
cN := STRTRAN(cN,"É", "É")
cN := STRTRAN(cN,"Í", "Í")
cN := STRTRAN(cN,"Ó", "Ó")
cN := STRTRAN(cN,"Ú", "Ú")
endif
MsgInfo(cN) // muestro la informacion que me interesa
exit
Endif
Enddo
endif
endif
endif
return nil
function URLDownLoad(cUrl, cSaveAs)
if ! URLDownloadToFile( 0, cUrl, cSaveAs, 0, 0 ) == 0
retu.f.
endif
retu.t.
DLL32 FUNCTION URLDownloadToFile(pCaller AS LONG,szURL AS STRING, szFileName AS STRING, dwReserved AS LONG, lpfnCB AS LONG);
AS LONG PASCAL;
FROM "URLDownloadToFileA";
LIB "urlmon.dll" // <-- Linea 151
Les agradeceré su ayuda amigos.
Saludos cordiales,