Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Enviar variables a una pagina y recoger los resultados (https://www.clubdelphi.com/foros/showthread.php?t=91076)

darkamerico 06-11-2016 03:38:09

Enviar variables a una pagina y recoger los resultados
 
Saludos amigos, existe una aplicacion en excel que realiza la consulta del nombre de una persona ingresando su numero de DNI (Documento Nacional de Identidad en Peru), esta muy interesante la posibilidad de integrar esta funcionalidad en Delphi. La macro del archivo excel no tiene clave, pueden descargarlo desde aqui: http://www.mediafire.com/file/esvqqm...ro-simple.xlsm.

Agradecería:o mucho las sugerencias.


Atte.

Americo

Neftali [Germán.Estévez] 07-11-2016 10:06:19

Lo normal sería, que ya que tienes acceso a la macro, la coloques aquí.

darkamerico 07-11-2016 22:08:53

Gracias por la Observacion
 
Cita:

Empezado por Neftali (Mensaje 510492)
Lo normal sería, que ya que tienes acceso a la macro, la coloques aquí.

Código:

Option Private Module
Option Explicit

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Autor: Gustavo Adolfo Sebastiani Cépeda
' Email: Gustavo@excelnegocios.com
' Web: www.excelnegocios.com
' Si tomas parte de este código o lo utilizas, por favor no olvides colocar la fuente.
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Sub ConsultaDNI()
'Esto es para controlar los errores
On Error Resume Next

'declaramos las variables a utilizar
Dim IE As Object
Dim Nombres, consulta As Object
Dim Rpta As String
Dim Dni As String

'Esto es para evitar que aparescan alerta de mensajes
With Application
.DisplayAlerts = False
End With


'limpiamos el campo donde se obtendrán los nombres antes de empezar
Range("d7:g8").ClearContents

'Celda que contendrá el n° de DNI | le damos formato de 8 digitos
Dni = Format(Range("E5").Text, "00000000")

'evitamos que el dni contenga letras
If Not IsNumeric(Dni) Then
MsgBox "Solo se permite el ingreso de valores numéricos", vbCritical, "ERROR"
Exit Sub
End If


'Este es un mensaje en la barra de estado que indica que se está realizando la consulta.
Application.StatusBar = "Consultando ... "

'creamos el objeto para realizar la conexión a internet
Set IE = CreateObject("InternetExplorer.Application")

'Navegamos en la web
IE.Navigate "http://votoinformado.pe/voto/miembro_mesa.aspx"

'Creamos un bucle para esperar que la web cargue por completo.
Do Until IE.ReadyState = READYSTATE_COMPLETE
        DoEvents
        Loop
       
'Desde Excel enviamos el número de RUC
IE.Document.all.Item("txtCongrDNI").Value = Dni

'Hacemos clic en el boton consultar
Set consulta = IE.Document.getElementbyId("btnCongrDNI")
consulta.Click

'Volvemos a esperar que la web cargue por completo
 Do Until IE.ReadyState = READYSTATE_COMPLETE
        DoEvents
        Loop
       
 
'Esperamos unos segundos para evitar que el servidor nos cancele.
Application.Wait (Now + TimeValue("0:00:03"))

''Extraemos el nombre del DNI consultado
Set Nombres = IE.Document.getElementbyId("lblNombres")
Rpta = Nombres.InnerText
'
'Si el valor consultado es vacío entonces alertamos con este aviso, caso contrario obtenemos el nombre de la persona.
If Rpta = "" Then
Range("D7").Value = "El DNI ingresado no existe ó no se realizó la consulta."
Else
Range("D7").Value = Rpta
End If
     
     

'Para que la consulta en la web no se vea, el valor debe ser Falso
IE.Visible = False
'
''Cerramos la conexión
IE.Quit

'Con esto limpiamos la variable.
Set IE = Nothing

'Regresamos a la normalidad
With Application
.DisplayAlerts = True
End With

'Con este mensaje indicamos que la consulta fue realizada.
Application.StatusBar = "Consulta realizada."

End Sub


Neftali [Germán.Estévez] 08-11-2016 08:27:23

Mejor.
Bueno, pues ahí ya tienes la web. Si te fijas en el código, puedes ver este enlace:
http://votoinformado.pe/voto/miembro_mesa.aspx

Si por ejemplo, en esa web introduces el DNI: 23232323
Obtendrás datos de un usuario.

Utilizando las Indy, deberías poder realizar la petición a esa web, para obtener resultados.

Revisa los siguientes hilos:
https://www.clubdelphi.com/foros/showthread.php?t=87576
https://www.clubdelphi.com/foros/showthread.php?t=79369
https://www.clubdelphi.com/foros/showthread.php?t=58841

(si buscas encontrarás más...)


La franja horaria es GMT +2. Ahora son las 03:24:29.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi