Llenar Formulario Web y recorrer tabla html desde fox
Discussion:
Llenar Formulario Web y recorrer tabla html desde fox
(demasiado antiguo para responder)
Luis Alberto Turbi Mella
2012-11-07 21:48:22 UTC
Permalink
Raw Message
Saludos colegas:


Estoy rellenando informacion de login en una web, luego hago click en link y paso ana pagina donde digito un rango de fecha y esta me despleiga una tabla de varias columnas,

con nombre de archivos para descargar, hasta ese punto voy bien.


El problema es que no puedo hacer referencia a esa tabla por codigo, para hacer un una especie de "SCAN / EndScan" e ir descargando los archivos.


Los script de la pagina lo maneja javascript. He utilizado tanto el control ActiveX browser como el objeto COM InternetExplorer.application, pero no he podido avanzar o hacer el bucle recorreindo la tabla html.


Cuando el usuario hace click en la celda del nombre del archivo, llama el motodo download pasando como parametro el IDCliente y el nombre del archivo contenido en esa celda.


Espero cualquier ayuda. copio el codigo para referencia:


Atte,

Luis Alberto Turbi Republica Dominicana



Private nForma
nForma = 0
Release oExplorer
If Type("oExplorer") # 'O'
Public oExplorer As InternetExplorer.Application
oExplorer=Createobject("InternetExplorer.Application")
oExplorer.navigate2("https://Mipagina.com/")
ObjTexto ='Cargando.'
Do While oExplorer.busy
Wait Window ObjTexto Time(0.1)
ObjTexto= ObjTexto+'.'
Enddo
Endif
Set Step On
cDia = Padl(Alltrim(Str(Day(Date()))),2,"0")
cMes = Padl(Alltrim(Str(Month(Date()))),2,"0")
cAno = Alltrim(Str(Year(Date())))
cFecha = cMes+"/"+cDia+"/"+cAno
oExplorer.Visible =.T.
*oExplorer.Path = fullpath(CURDIR())
oExplorer.FullScreen
oExplorer.Document.Forms(nForma).Userid.Value="USUARIO"
oExplorer.Document.Forms(nForma).Password.Value="PassWord"
oExplorer.Document.Forms(nForma).ClientID.Value="IDCliente"
oExplorer.Document.Forms(nForma).submit()
Enviando_Wait()
oExplorer.Document.Forms(nForma).action = "ActiveFilesQuery.jsp"
oExplorer.Document.Forms(nForma).submit()
Enviando_Wait()
oExplorer.Document.Forms(nForma).FromDate.Value = cFecha
oExplorer.Document.Forms(nForma).ToDate.Value = cFecha
* oExplorer.document.forms(nForma).Location.value = "c:\work"
oExplorer.Document.Forms(nForma).submit()
Enviando_Wait()
*!* Store "" To cColeccion
*!* For Each loLink In oExplorer.Document.Tables
*!* cColeccion = cColeccion + loLink.Table
*!* Endfo
oExplorer.Document.Forms(nForma).DwldClientID.Value = 'ClienteID'
oExplorer.Document.Forms(nForma).DwldFileName.Value = 'Archivo.txt'
*oExplorer.Document.Forms(nForma).Download('ClienteID','ArchivoTXT')
oExplorer.Document.Forms(nForma).action = "/tally/DownloadFile.do"
oExplorer.Document.Forms(nForma).submit()

Set Step On
* =Salir()


***********************
Procedure Enviando_Wait
***********************
texto ='Enviando.'
Do While oExplorer.busy
Wait Window texto Time(0.1)
texto= texto + '.'
Enddo
Endproc


********************
Procedure salir
******************
oExplorer.Document.Forms(nForma).action = "/tally/Logout.do"
oExplorer.Document.Forms(nForma).submit()
Enviando_Wait()
Release oExplorer
Return
Luis Alberto Turbi Mella
2012-11-12 14:09:46 UTC
Permalink
Raw Message
Saludos amigos, como buen programador foxpro, utilice artificios y resolvi el "bucle por la tabla", jejeje


Ahora el problema es evitar que IE me despleigue el cuadro de dialogo o ventana popupr "guardar archivo", debe ser guardado en disco de forma automatica.


He congiurado IE en el Menu Herrameintas, opciones, y de todas formas me sale la ventana.


Alguna sugerencia?


Le anexo el segmento de codigo para ilustrar


Set Step On
Strtofile(oExplorer.Document.Body.InnerHTML,"InnerHTML.htm")
Set Step On
Store "" To cArchivo
lcXML=Filetostr("InnerHTML.htm")
** Cantidad de archivos a descargar
nRepite = Occurs("javascript:Download('cID',",lcXML)


For i= 1 To nRepite
cArchivo = Substr(lcXML,At("javascript:Download('cID',",lcXML)+30,8)
oExplorer.Document.Forms(nForma).DwldClientID.Value = 'cID'
oExplorer.Document.Forms(nForma).DwldFileName.Value = cArchivo && 'A3101724'
oExplorer.Document.Forms(nForma).action = "/tally/DownloadFile.do"
oExplorer.Document.Forms(nForma).submit()

* elimino la cadena con el nonmbre del archivo anterior
cElimina = "javascript:Download('cID', '"+cArchivo+"'"
lcXML= Strtran(lcXML,cElimina)
Endfor

Loading...