Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: eligioalmuedo en Enero 26, 2012, 11:24:31 am

Título: Leer un valor de un option de una web
Publicado por: eligioalmuedo en Enero 26, 2012, 11:24:31 am
Buenas. Se que esto es para unos pocos solo. Pero a ver si doy con el tema. Tengo una web con la que trabajo y necesitaria que mi aplicaion leyera el estado de un par de Option que tiene. Solo los tipicos de marcar "Si" o "No". Ya tengo experiencia en leer o modificar controles de las webs (texbox, botones, sumits, etc), pero nunca he tenido que leer el valor de un OptionButton. El codigo fuente de la web me tira el nombre del control:
Código: [Seleccionar]
function badFacturable(){
        var facBad0=document.fSAM.facBad[0].value;
        var facBad1=document.fSAM.facBad[1].value;
       if (facBad0 != null && facBad1 != null)
       {
           if ( document.fSAM.facBad[0].checked)
           {
               document.fSAM.facBad[0].disabled=false;
           }
           if (document.fSAM.facBad[1].checked)
           {
               document.fSAM.facBad[1].disabled=false;
           }
        }
   }

En él se ve claramente el nombre de ambos Options: facBad[0] y facBad[1]
El problema lo tengo al hacer referencia a él por codigo. He tratado de leer su valor de estas maneras:

Código: [Seleccionar]
ElValor = WebBrowser2.Document.fSAM.facBad[0].Value
ElValor = WebBrowser2.Document.fSAM.item("facBad[0]").Value

Pero me da error de 91 (La variable de objeto o la variable de bloque With no está establecida )
Estoy seguro que es por los corchetes, que no los admite, pero es asi como se llaman los controles. ¿Alguna idea?
Título: Re:Leer un valor de un option de una web
Publicado por: ssccaann43 en Enero 26, 2012, 12:18:23 pm
usa parentesis en vez de Corchetes a ver si funciona...! Presumo que debe ser una matriz de controles...!
Título: Re:Leer un valor de un option de una web
Publicado por: seba123neo en Enero 26, 2012, 04:12:58 pm
Hola, para obtener la propiedad de un radio button web, debes usar la propiedad Checked. por ejemplo:

Código: (vb) [Seleccionar]
MsgBox WebBrowser1.Document.All("sex")(1).Checked
para setearlo es lo mismo:

Código: (vb) [Seleccionar]
WebBrowser1.Document.All("sex")(1).Checked = True
ese "(1)" esta ahi porque cuando los controles son matriz de control en el formulario web, hace falta decirle cual de los option button es, a traves del indice, pero si no son matriz no hace falta.

el Value solo obtiene el texto del option button.

saludos.
Título: Re:Leer un valor de un option de una web
Publicado por: eligioalmuedo en Enero 26, 2012, 07:06:36 pm
Sabia que no me fallarias Seba. Eres una maquina, tio. Estoy en casa (23:05) y mañana mismo lo pruebo en el trabajo que es donde lo estoy montando y te comento el resultado. Te pido permiso para copiar tu solucion y postearla en otro foro donde tambien hice esta consulta con la idea de dejarle el camino llano a los que vengan por detras con un problema similar. Tambien eres miembro activo de ese foro, con lo cual todo queda en casa. Gracias y un saludo, compañero.
Título: Re:Leer un valor de un option de una web
Publicado por: eligioalmuedo en Enero 27, 2012, 04:02:56 am
Pues si. Finalmente funciona a la perfeccion.
Código: [Seleccionar]
If URL = "javascript:go(38)" And WebBrowser2.Document.fSAM.All("facBad")(0).Checked = False Then
    Cancel = True
    Unload MensajeAviso
    MensajeAviso.Show
    MensajeAviso.Label1 = "Se te ha olvidado marca [SI] en el facturable"
    Exit Sub
End If
Esto lo tengo en el evento WebBrowser2_BeforeNavigate2, para evitar el "olvido" humano de insertar el facturable.
Saludos y gracias Seba