Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Ayuda con codigo para checkbox

Estas en el tema de Ayuda con codigo para checkbox en el foro de Visual Basic clásico en Foros del Web. Utilizo 12 controles checkbox y el codigo realmente marea, alguien me puede ayudar a optimizarlo para no repetir tanta veces la misma linea de codigo ...
  #1 (permalink)  
Antiguo 13/05/2009, 19:51
 
Fecha de Ingreso: junio-2008
Mensajes: 343
Antigüedad: 15 años, 9 meses
Puntos: 4
Información Ayuda con codigo para checkbox

Utilizo 12 controles checkbox y el codigo realmente marea, alguien me puede ayudar a optimizarlo para no repetir tanta veces la misma linea de codigo

Código PHP:
If DataGrid1.Columns(3).Text "-1" Then Chkx Else Chkx 0
Form1
.chkClie.Value Chkx

If DataGrid1.Columns(4).Text "-1" Then Chkx Else Chkx 0
Form1
.chkProd.Value Chkx

If DataGrid1.Columns(5).Text "-1" Then Chkx Else Chkx 0
Form1
.chkProforma.Value Chkx

If DataGrid1.Columns(6).Text "-1" Then Chkx Else Chkx 0
Form1
.chkBoleta.Value Chkx

If DataGrid1.Columns(7).Text "-1" Then Chkx Else Chkx 0
Form1
.chkFactura.Value Chkx

If DataGrid1.Columns(8).Text "-1" Then Chkx Else Chkx 0
Form1
.chkEmp.Value Chkx

Form1
.Show 1 
  #2 (permalink)  
Antiguo 13/05/2009, 20:12
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Ayuda con codigo para checkbox

Lo más conveniente es que indexes los checkbox, así podrás recorrerlos con un bucle for y comparar con el valor de la columna del DataGrid.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 14/05/2009, 01:06
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 6 meses
Puntos: 32
Respuesta: Ayuda con codigo para checkbox

Primero lo que tienes que hacer es que a cada checkbox (chkClie,chkProd...) Tienes que ponerlo todos el mismo nombre, al hacer esto, llevará cada control un indice, de ahí que se indexa como te ha dicho David, quedando algo como: Check(0), Check(1)...

Y el código quedaría mas o menos asi.

Código:
Dim I as integer

For I=3 to 8
    If DataGrid1.Columns(I).Text = "-1" Then 
	Form1.check(I-3)=-1
    Else
	Form1.check(I-3)=0
    endif
Next
Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:38.