jueves, 1 de septiembre de 2011

Validando controles en VB.NET



Recientemente tuve la necesidad de validar los datos de un formulario en VB.NET, si bien ya existen componentes propietarios que lo hacen automaticamente, en ocasiones tenemos la necesidad o la unica alternativa de utilizar los que Visual Studio trae incorporados, en este caso y para hacerlo de una forma mas sencilla lo haremos con un ciclo For Each.

Lo primero que debemos de hacer es especificar que componentes del formulario vamos a validar, para hacerlo, lo seleccionamos y establecemos su propiedad Tag = 1, de la siguiente manera:

TextBox1.Tag = 1


Lo segundo es establecer una etiqueta para saber a que componente nos referimos al validarlo, para esto podemos usar la propiedad AccessibleName, de la siguiente manera:

TextBox1.AccessibleName = “Pozo” ‘En este caso el componente guardara el nombre de un pozo


Y por ultimo, les dejo la funcion de validación:

Private Function ValidaDatos() As Boolean

Dim Ctl As Control
Dim x As Integer

For x = Me.Controls.Count – 1 To 0 Step -1

Ctl = Me.Controls.Item(x)

If TypeOf (Ctl) Is TextBox Then
Dim Control As TextBox = Ctl
If Control.Tag = 1 Then

If Control.Text.Trim = “” Then
MsgBox(“Debe de establecer el valor de: ” & Control.AccessibleName)
Control.BackColor = Color.Yellow
Control.Focus()
ValidaDatos = False
Exit Function
Else
Control.BackColor = Color.White
End If

End If
End If

If TypeOf (Ctl) Is ComboBox Then
Dim Control As ComboBox = Ctl
If Control.Tag = 1 Then

If Control.Text.Trim = “” Then
MsgBox(“Debe de establecer el valor de: ” & Control.AccessibleName)
Control.BackColor = Color.Yellow
Control.Focus()
ValidaDatos = False
Exit Function
Else
Control.BackColor = Color.White
End If

End If
End If

Next

ValidaDatos = True

End Function


Como pueden ver en la funcion recorremos los componentes del formulario de manera inversa, esto lo hice porque de alguna manera el orden de los componentes queda en orden inverso al realizado al momento de su creación, tambien vemos que primero validamos el tipo de componente (TextBox y ComboBox) y despues si es necesaria su validación, en este caso la unica validación es que el componente no este vacio, si lo esta le ponemos el fondo amarillo, caso contrario le ponemos el fondo blanco (Determinado).

Si bien el ejemplo es sencillo, con algunas modificaciones podemos validar varios escenarios, solo es cuestion de hechar a volar la imaginación.

Nota: El ejemplo esta hecho en Visual Studio 2008 con framework 3.5

Generando graficos por codigo en XtraChart

Pues viendo que no hay mucha información al respecto les dejo la manera de como generar gráficos mediante código en VB.NET 2008 con el componente XtraChart

Para esto debemos tener un formulario y un componente XtraChart al que llamaremos “cGrafico”

Primeramente importamos la referencia a XtraChart en el encabezado del formulario

Imports DevExpress.XtraCharts


Y aqui va el codigo:

‘Eliminamos las series del componente
cGrafico.Series.Clear()

‘Ponemos el titulo al grafico
cGrafico.Titles.Item(0).Text = Pozo_G

‘Declaramos una variable del tipo Series
Dim series2 As Series = New Series()

‘Agregamos la serie al componente
cGrafico.Series.Add(series2)

‘Cambiamos el tipo de grafico de la Serie al tipo Linea
series2.ChangeView(ViewType.Line)

‘Asignamos el nombre de la Serie
series2.Name = “Caudal”

‘Asignamos el nombre campo del argumento
series2.ArgumentDataMember = “Indice”
‘Asignamos el tipo de valor del Argumento
series2.ArgumentScaleType = ScaleType.Numerical

‘Asignamos del nombre del campo de los datos a graficar
series2.ValueDataMembers.AddRange(“caudal_gas”)
‘Asignamos el tipo de valor de los datos a graficar
series2.ValueScaleType = ScaleType.Numerical

‘Ocultamos las etiquetas de la serie
series2.Label.Visible = False

‘Cambiamos el color de la linea a Azul
CType(series2.View, LineSeriesView).Color = Color.Blue
‘Ocultamos los marcadores de la linea para que no se vea abultada
CType(series2.View, LineSeriesView).LineMarkerOptions.Visible = False
‘Ponemos el grueso de la linea a 1
CType(series2.View, LineSeriesView).LineStyle.Thickness = 1

‘Ponemos el titulo al eje de la Y, lo ponemos en azul y visible
CType(series2.View, LineSeriesView).AxisY.Title.Text = “Caudal (MMpcd)”
CType(series2.View, LineSeriesView).AxisY.Title.TextColor = Color.Blue
CType(series2.View, LineSeriesView).AxisY.Title.Visible = True

‘Asignamos los datos por medio de un DataTable a la Serie
series2.DataSource = m_Datos.Rs2DataTable(“Select * From v_Produccion_Oficial_Acumulado Where Pozo = ‘” & Pozo_G & “‘ Order By Fecha ASC”)


Y listo tenemos nuestra gráfica como vemos a continuación, como podemos ver, es sencillo y rápido.


miércoles, 26 de agosto de 2009

Jessica Biel, la celebridad mas peligrosa de la red


Pues McAfee ha puesto la alerta de las celebridades mas peligrosas de la red, y no es que sean hackers o algo asi, lo que pasa es que son las mas buscadas por los usuarios de internet y por supuesto algunas personas lo han notado, por lo que crean paginas con fotografias de las celebridades, las cuelgan en la red, las registran en los buscadores y mas de un incauto al entrar ya instalo Malware o cualquier otro bicho en su PC.

Ni modo raza, habra que tener cuidado al buscar información de su celebridad favorita, asi que ni modo, Jessica Biel, Beyonce y Jennifer Aniston, ya no las vere tanto, jejeje.

La vida en 5 botellas



Pues por ahi me mandaron esta imagen y pues parece la pura verdad para algunos, jeje, si alguien se identifica, ahi me avisa, jeje

lunes, 24 de agosto de 2009

Iconos gratis

Pues viendo el Blog de Kumail.H.T`s, veo que tiene un paquete gratis de Iconos, no se si ustedes no batallen, pero para mi esdificil encontrar imagenes de buena calidad y gratis para mis aplicaciones, asi que aqui les dejo el enlace al Blog para si estan interesados, lo descargen.



Descargar

Comenzando de nuevo

Pues por aqui andamos otra vez, igual a nadie le interesa, pero me hace ilusión escribir de nuevo, aunque estas palabras parescan sin sentido, hoy empiezo a retomar en mi tercer intento el tener mi blog, si ningun tema en especial, solo lo que se me vaya ocurriendo y pasando, lo interesante que vea, lea o escuche, asi que no esperen gran cosa (que tampoco salgo mucho), pero si llegan a ver algo que les interese, un comentario no estaria nada mal, jejeje, en fin, por aqui ando y haber que sale.

jueves, 11 de diciembre de 2008

Pano




Justo cuando se empieza a oír esto del Cloud Computing (eso de usar software en internet y no en el ordenador), que alguien se decidiera a inventar un ordenador sin CPU, ni memoria ni sistema operativo, era cuestión de tiempo. Ya tenemos aquí el Pano Zero Client.

El Pano Zero Client es un ordenador (o casi), que funciona trabajando con el sistema operativo y los programas instalados en un servidor o directamente en internet. Incorpora un puerto USB, entrada y salida de audio, conexión Ethernet y salida VGA. No necesita más. Con él, aparte de ahorrarte todos los problemas que supone el tener el software en el ordenador (virus, actualizaciones…), ahorra en electricidad, pues no consume prácticamente nada, solo 5 vatios, los que supone un 3% de lo que necesita un ordenador normal.

La idea no está nada mal, ahora solo hace falta ver en que situaciones puede resultar útil y si realmente tendrá la acogida necesaria, pues de momento solo se me ocurren tres o cuatro casos en los que sería útil, y no estoy del todo seguro si compensa el gasto (desconocido por el momento) y la integración de otro cacharro en el escritorio. Tiempo al tiempo.