Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado 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:
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:
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?
-
usa parentesis en vez de Corchetes a ver si funciona...! Presumo que debe ser una matriz de controles...!
-
Hola, para obtener la propiedad de un radio button web, debes usar la propiedad Checked. por ejemplo:
MsgBox WebBrowser1.Document.All("sex")(1).Checked
para setearlo es lo mismo:
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.
-
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.
-
Pues si. Finalmente funciona a la perfeccion.
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 IfEsto lo tengo en el evento WebBrowser2_BeforeNavigate2, para evitar el "olvido" humano de insertar el facturable.
Saludos y gracias Seba