FoxPro/Visual FoxPro - Cargar datos desde Web

 
Vista:

Cargar datos desde Web

Publicado por Juan Carlos Lopez Lopez (128 intervenciones) el 09/01/2013 15:21:19
Saludos a la Comunidad Foxera,

Compañeros, hace poco vi un software que se conecta con una pagina web de Sunat, donde el software este solicita datos de un proveedor, y este automaticamente lo jala al software llenado algunos textbox, existe alguna herramienta que haga esto.


Saludos cordiales,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Cargar datos desde Web

Publicado por fitocava (1 intervención) el 22/02/2013 16:21:41
LOCAL XRUC AS String
XRUC = "RUC A CONSULTAR"

LOCAL oErr as Exception
LOCAL cStr as Character
LOCAL SW AS Boolean
SW = .T.
TRY
LOCAL loXmlHttp AS Microsoft.XMLHTTP,;
lcURL as String,;
lcHTML as String,;
lcTexto as String,;
lcFile as String

loXmlHttp = CREATEOBJECT("Microsoft.XMLHTTP")
lcURL = "http://www.sunat.gob.pe/w/wapS01Alias?ruc="+XRUC
loXmlHttp.open("POST" , lcURL, .F.)
loXmlHttp.send


DO While loXmlHttp.readyState<>4 OR loXmlHttp.status <>200
ENDDO

lcHTML = loXmlHttp.Responsetext
lcTexto = CHRTRAN(ALLTRIM(lcHTML),CHR(10),"")
*/Para los delimitadores
lcTexto = STRTRAN(lcTexto, "N&#xFA;mero Ruc. </b> " + xRUC + " -","RazonSocial:")
lcTexto = STRTRAN(lcTexto, "Estado.</b>","Estado:")
lcTexto = STRTRAN(lcTexto, "Agente Retenci&#xF3;n IGV.</strong>","ARIGV:")
lcTexto = STRTRAN(lcTexto, "Direcci&#xF3;n.</b><br/>","Direccion:")
lcTexto = STRTRAN(lcTexto, "Situaci&#xF3;n.<b> ","Situacion:")
lcTexto = STRTRAN(lcTexto, "Tel&#xE9;fono(s).</b><br/>","Telefono:")
lcTexto = STRTRAN(lcTexto, "Dependencia.","Dependencia:")
lcTexto = STRTRAN(lcTexto, "Tipo.</b><br/> ","TipoPer:")
lcTexto = STRTRAN(lcTexto, "DNI</b> : ","DNI:")
lcTexto = STRTRAN(lcTexto, "Fecha Nacimiento.</b> ","FechNac:")
lcTexto = STRTRAN(lcTexto, SPACE(05),SPACE(01))
lcTexto = STRTRAN(lcTexto, SPACE(04),SPACE(01))
lcTexto = STRTRAN(lcTexto, SPACE(03),SPACE(01))
lcTexto = STRTRAN(lcTexto, SPACE(02),SPACE(01))
lcTexto = STRTRAN(lcTexto, CHR(09),"")

*** RAZON SOCIAL ***
PosIni = AT("RazonSocial:", lcTexto)+12
PosFin = AT("<br/></small>", lcTexto)-(AT("RazonSocial:", lcTexto)+12)
xRazSocial = SUBSTR(lcTexto,PosIni,PosFin)

xRazSocial = STRTRAN(xRazSocial,"&#209;","Ñ")
xRazSocial = STRTRAN(xRazSocial , "&#xD1;", "Ñ")
xRazSocial = STRTRAN(xRazSocial , "&#193;", "Á")
xRazSocial = STRTRAN(xRazSocial , "&#201;", "É")
xRazSocial = STRTRAN(xRazSocial , "&#205;", "Í")
xRazSocial = STRTRAN(xRazSocial , "&#211;", "Ó")
xRazSocial = STRTRAN(xRazSocial , "&#218;", "Ú")
xRazSocial = STRTRAN(xRazSocial , "&#xC1;", "Á")
xRazSocial = STRTRAN(xRazSocial , "&#xC9;", "É")
xRazSocial = STRTRAN(xRazSocial , "&#xCD;", "Í")
xRazSocial = STRTRAN(xRazSocial , "&#xD3;", "Ó")
xRazSocial = STRTRAN(xRazSocial , "&#xDA;", "Ú")

lcFile= "Datos_Contribuyente.txt"
STRTOFILE(xRazSocial+CHR(13)+CHR(10), lcFile)

*** ESTADO ***
PosIni = AT("Estado:", lcTexto)+7
PosFin = (AT("ARIGV", lcTexto)-32)-(AT("Estado:", lcTexto)+7)
xEst = SUBSTR(lcTexto,PosIni,PosFin)

STRTOFILE(xEst+CHR(13)+CHR(10) , lcFile,1)

*** AGENTE RETENEDOR IGV ***
PosIni = AT("ARIGV:", lcTexto)+18
PosFin = AT("ARIGV:", lcTexto)+20-(AT("ARIGV:", lcTexto)+18)
xAR = SUBSTR(lcTexto,PosIni,PosFin)

STRTOFILE(xAR+CHR(13)+CHR(10), lcFile,1)

*** DIRECCION ***
PosIni = AT("Direccion:", lcTexto)+10
PosFin = AT("</b></small><br/>", lcTexto)-38-(AT("Direccion:",lcTexto)+10)
xDir = SUBSTR(lcTexto,PosIni,PosFin)

xDir = STRTRAN(xDir, "&#209;", "Ñ")
xDir = STRTRAN(xDir, "&#xD1;", "Ñ")
xDir = STRTRAN(xDir, "&#193;", "Á")
xDir = STRTRAN(xDir, "&#201;", "É")
xDir = STRTRAN(xDir, "&#205;", "Í")
xDir = STRTRAN(xDir, "&#211;", "Ó")
xDir = STRTRAN(xDir, "&#218;", "Ú")
xDir = STRTRAN(xDir, "&#xC1;", "Á")
xDir = STRTRAN(xDir, "&#xC9;", "É")
xDir = STRTRAN(xDir, "&#xCD;", "Í")
xDir = STRTRAN(xDir, "&#xD3;", "Ó")
xDir = STRTRAN(xDir, "&#xDA;", "Ú")

STRTOFILE(xDir+CHR(13)+CHR(10), lcFile,1)

* This.parent.txtcliente.Value = ALLTRIM(xRazSocial)
* This.parent.txtdireccion.Value = xDir


*** SITUACION ***
PosIni = AT("Situacion:", lcTexto)+10
PosFin = AT("</b></small><br/>", lcTexto)-(AT("Situacion:", lcTexto)+10)
xCond = SUBSTR(lcTexto,PosIni,PosFin)
STRTOFILE(xCond+CHR(13)+CHR(10), lcFile,1)

*** TELEFONO ***
PosIni = AT("Telefono:", lcTexto)+9
PosFin = AT("Dependencia:", lcTexto)-25-(AT("Telefono:", lcTexto)+9)
xTelef = SUBSTR(lcTexto,PosIni,PosFin)
STRTOFILE(xTelef+CHR(13)+CHR(10), lcFile,1)

* ThisForm.nuevo.txtTe1moz.Value = xTelef

*** TIPO DE PERSONA ***
PosIni = AT("TipoPer:", lcTexto)+8
PosFin = AT("DNI:", lcTexto)-29-(AT("TipoPer:", lcTexto)+8)
xTipoPer = SUBSTR(lcTexto,PosIni,PosFin)
STRTOFILE(xTipoPer+CHR(13)+CHR(10), lcFile,1)

*** DNI ***
PosIni = AT("DNI:", lcTexto)+4
PosFin = AT("FechNac:", lcTexto)-25-(AT("DNI:", lcTexto)+4)
xDNI = SUBSTR(lcTexto,PosIni,PosFin)
STRTOFILE(xDNI+CHR(13)+CHR(10), lcFile,1)

*** FECHA DE NACIMIENTO ***
PosIni = AT("FechNac:", lcTexto)+8
PosFin = AT("FechNac:", lcTexto)+18-(AT("FechNac:", lcTexto)+8)
xFechNac = SUBSTR(lcTexto,PosIni,PosFin)
STRTOFILE(xFechNac, lcFile,1)


MODIFY FILE (lcFile)

RELEASE loXmlHttp

CATCH TO oErr
cStr = "Error:" + CRLF + CRLF + ;
"[ Error: ] " + STR(oErr.ErrorNo) + CRLF + ;
"[ Linea: ] " + STR(oErr.LineNo) + CRLF + ;
"[ Mensaje: ] " + oErr.Message + CRLF + ;
"[ Procedimiento: ] " + oErr.Procedure + CRLF + ;
"[ Detalles: ] " + oErr.Details + CRLF + ;
"[ StackLevel: ] " + STR(oErr.StackLevel) + CRLF + ;
"[ Instrucción: ] " + oErr.LineContents
MESSAGEBOX(cStr,4112,"Error...!!!")
SW = .F.
ENDTRY
IF SW = .F.
RETURN .F.
ENDIF
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar