viernes, 18 de mayo de 2012

Bloque Try.. Catch.. Finally


Try Catch Finally


Bueno, esta instrucción proporciona una manera de controlar algunos o todos los errores posibles que pueden ocurrir en un bloque de código determinado mientras estemos ejecutando nuestro formulario

 El siguiente bloque de código va dentro de la clase Load del formulario. Primero, se limpia el dataset (por si tiene algo…), luego se pone la instrucción Try para poder controlar los errores. En la lína 3, se le asigna a la variable daUsuarios la instancia de la clase SqlDataAdapter, de tal forma que le asignamos como parámetros la sentencia SQL y la conexión. En la línea 4, llenamos el DATASET por medio de daUsuarios. En la lína 5, se instancía el objeto SqlCommandBuilder para que ya podamos realizar INSERT, UPDATE y DELETE automáticos desde el DATASET.






la instrucción finally se ejecuta después de la instrucción catch, dado que la instrucción Try es errónea. Haremos que la instrucción try cierre la aplicación.

Finally

End

End try

Y se cierra el programa cuando aceptamos la venta del MSGBOX de la orden Catch (ya que pasaría automaticamente a ejecutar la orden finally, y no saldría ningun otro tipo de aviso antes de ejecutar la orden END.



Por ejemplo, una manera de corregir el fallo:

Try

Msgbox("Resultado de 5/0 = " & (5 / 0))

catch (MiExcepcion as Exception)

Msgbox(MiExcepcion.message)

Msgbox("Resultado de 5/0 = 0")

finally

Msgbox(“Intentelo de nuevo”)

 End Try



Primero, se ejecuta el código del bloque Try. Si se ejecuta sin error, el programa omite el bloque Catch y ejecuta el código del bloque Finally. Si se produce un error en el bloque Try, la ejecución salta inmediatamente al bloque Catch y se ejecuta el código que se encuentra allí; luego se ejecuta el código del bloque Finally.




Pasos para hacer un reporte de grafica


PASOS PARA HACER UN REPORTE DE GRAFICA
Reporte_Grafica/Clic derecho /Agregar/Windows form/Propiedades/name: Form1
Reporte_Grafica/Clic derecho /Agregar/Windows form/datos/Conjunto de datos:
Luego cuadro de herramientas/datatable:
Luego clic derecho en la tabla agregamos columna y escribimos femenino, agregamos otra columna escribimos masculino.
Nos vamos al formulario/cuadro de herramientas/dataset.
Cuadro de herramientas/Pegamos el control Bindingsource.
Propiedades/name:sexobindingsource.
Mostrar orígenes de datos/dsalumno/pegar al formulario.

Cuadro de herramientas/informe/pegamos al formulario reportviewer
Cuadro de herramientas/button/name:cmdagregar
En el botón Agregar vamos a programar el siguiente código:





Agregar un nuevo reporte.

Cuadro de herramientas/grafico.
En la siguiente imagen eliminamos el count que nos aparece y lo dejamos con el código que se visualiza, esto es porque no queremos un conteo ya que no tenemos una tabla que contegan una cantidad de sexos femenino ni masculino.

Clic en femenino de la parte de arriba/Propiedades de la serie/campos del valor: eliminamos el count. Hacemos lo mismo con masculino

Para colocar los números en dentro de la grafica nos vamos a  propiedades/label/usavalueaslabel/true.
Propiedades/Visible/ true.


Para terminar con una pequeña decoración si deseas, cuadro de herramientas/palette.
Ejecutamos f5 o el depurador.


Damos clic en el datagrid, y en la pleca que está en la parte de arriba dar clic,donde dice orígenes de datos seleccionar el dindingSource para hacer el enlace con ese bindingSource,y deshabilitamos todas las opciones menos habilitar edición.

viernes, 11 de mayo de 2012

Hojas de Estilos CSS


Hojas de Estilos

CSS es un lenguaje de estilos que es creado con el propósito para hacer que el aspecto de un documento electrónico sea bien diseñado en una forma ordenada de buena presentación.
El lenguaje html/xhtml se utiliza para marcar los contenidos, para designar los párrafos, titulo o lista de elementos, CSS te define lo que es el aspecto de todos los contenidos como ser el tamaño y tipo de letra, la tabulación etc.

Ejemplo de estilo para toda una pagina

Lo que haremos en este código son los estilos básicos y sencillos, el titulo, el tamaño y tipo de letra, color de texto, imagen de fondo en la página, tabla.

<html>
<title>Documento sin título</title>
<style type="text/css">
<!--
body,td,th {
            font-family: Palatino Linotype, Book Antiqua, Palatino, serif;
            font-size: 2em;
            color: #C06;
}
body {
            background-color: #039;
            background-image: url(file:///F|/blog_hojas estilo/ima/mioo.jpg);
}
-->
</style></head>
<body>
<p><strong><center><h1>Hojas de estilo </h1></center>
</strong></p>
<p>este codigo es tipo parrafo.</p>
<p>este que sigue es tipo lista:</p>
<li>lista1  </li>
<li>lista2  </li>
<li>lista3 </li>
<p>&nbsp;</p>

<table border="1">
<tr>
<th scope="col">tabla #1</th>
<th scope="col">tabla #2</th>
</tr>
</table>
</body>
</html>


Selectores
Hay que conocer los selectores de CSS. La declaración se utiliza para decir “que hay que hacer” y el selector es lo que dice “a quien hay que hacerlo”. La declaración de una regla sencilla puede indicar por ejemplo que el color de la letra debe de ser rojo, y el selector de esa regla sencilla indicar por ejemplo que los elementos a los que se aplica ese estilo son todos los párrafos de la página.
Hasta ahora hemos vistos selectores simples, que le aplican una serie de estilos a un ejemplo html, son los llamados selectores de etiqueta:
H1 { font-family: arial;
text-transform: capitalize;}
Selectores básicos:
Selectores de etiqueta
 Selectores de clases
 Selectores de ID
 Selectores de grupos

Para reducir el tamaño de las hojas de estilo, se pueden agrupar selectores en listas separándolos con una coma:
H1, H2, H3 { font-family: helvetica }
Análogamente, las declaraciones también pueden agruparse:
H1 {
  font-weight: bold;
  font-size: 12pt;
  line-height: 14pt;
  font-family: helvetica;
  font-variant: normal;
  font-style: normal;
}
Además, algunas propiedades tienen su propia sintaxis de agrupamiento:
H1 { font: bold 12pt/14pt helvetica }

Margenes


Para empezar, se añadirán márgenes a todos los elementos que los necesiten.
body { margin: 0; }
   #main { margin: 0 auto 0 auto; }
   h1 { margin: 0 0 1em 0; }
   .pullQuote { margin: auto 0 1em 1em; }
   p { margin: 0; }
   .attribution { margin: 0 0 1.5em 0; }

domingo, 15 de abril de 2012

Formulario en VB .NET






VB .NET
Pasos para hacer un formulario, Grafica, Reporte

Paso1 (Crear la tabla en la base de datos Access)
   1.    Creamos una tabla llamada Encuestaex.
   2.    Clic derecho/Vista diseño, crearemos la tabla como se visualiza en la siguiente imagen.



Paso 2 (Crear el proyecto)
   1.    Hacer un nuevo proyecto en este caso llamare a mi proyecto Encuesta.
   2.    Luego clic derecho en Encuesta/Agregar/Nuevo Carpeta “Formulario”.
Form1/clic derecho/cambiar nombre/frmEncuesta.

Paso 3 (Hacer el entorno ó Origen de datos)
   1.    Encuesta/clic derecho/Agregar/Control de Usuario/nombre
        = Entorno.
   3.    Menú/Clic en Ver/ Clic en Cuadro de Herramientas.
Menú/Clic en Ver/ Clic en Ventana de propiedades.
   4.    Cuadro de Herramientas/Datos/Elegir Elementos/Filtro: Oldb.
   5.    Luego hacemos clic en OledbConnection y OledbDataAdapter.
   6.    En oldbConnection/propiedades/Name/oConexión.
   7.    oldbConnection/Propiedades/ConnectionString/Agregar conexión.
   8.    En OledbDataAdapter/Propiedades/daEncuesta.
   9.    Clic derecho en daEncuesta/Configurar Adaptador de datos/Nueva Conexión/Cambiar/Archivo de base de datos/Aceptar.
  10.                      Examinar/Encuesta/Abrir/Aceptar.
  11.                      Siguiente/No/Siguiente/Generador de Consulta.
  12.                      Tablas/Encuesta/Agregar/Siguiente/Finalizar.






Otra forma de crear la conexion:
Menú/Datos/Agregar nuevo origen de datos
Clic en base de datos/siguiente
Clic en conjunto de datos/siguiente/Nueva conexión.
Clic en Cambiar/clic en Examinar/Aceptar
Clic en siguiente/clic en No/siguiente
Clic en tabla/finalizar.
    1.    Agregar tabla/Encuesta/Agregar/Datos/Conjunto de datos.
    2.    Encuesta/seleccionar todas las columnas/Aceptar. 
    3.    dataAdapter/propiedades/name/daEncuesta.
    4.    daEncuesta/Clic derecho/Propiedades.
  • Delete command/command text/delete from/Clic
 Intruccion Delete:
            Delete from Encuesta
           Where (idEncuesta=?)

  •  Update command/command text/Update from/Clic
Instruccion Update:
Update Encuesta
Where (idEncuesta=?)
Modificamos estas instrucciones ya que el delete y update pueden hacer cambios o eliminar todo los campos de un registro, ecepto el id ya que es autonumerico no se puede realizar nada sobre el.





Paso 4(Programar el Entorno)

  1.  Public Class entorno
    Public Shared Datos As New entorno
    Public Sub Conectar()
        If oConexion.State <> ConnectionState.Open Then
            oConexion.Open()
        End If
    End Sub
  2.  Public Function ObtenerDatos() As DataSet
        Dim ds As New DataSet
        Conectar()
        daEncuesta.Fill(ds, "encuestaex")
        oConexion.Close()
        Return ds
    End Function
  3.  Public Sub salvarencuesta(ByRef ds As DataSet)
        Conectar()
        daEncuesta.Update(ds)
        oConexion.Close()
    End Sub
    Private Sub entorno_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub oConexion_InfoMessage(ByVal sender As System.Object, ByVal e As System.Data.OleDb.OleDbInfoMessageEventArgs) Handles oConexion.InfoMessage

    End Sub
End Class

   1.    Hacemos la conexión, donde abriremos la oConexion.
   2.    Para Obtener los datos del dataSet, declaramos con Dim una variable que llamaremos ds donde aremos nuevo dataSet y conectaremos.
   3.    luego con el daEncuesta(DataAdapterEncuesta)lo que hacemos es llenar el dataset, en este caso llamado encuestaex cerramos la conexión.
Salvarencuesta, vamos a conectar los datos del dataset,donde el daEncuesta.Update(ds) nos modifica el dataset y cierramos  la conexión.

 
Paso 5(Colocar los controles al formulario)
1.    Nos vamos al formulario, luego a sus propiedades/text/Encuesta.
2.    Propiedades/starPosition/center screen.
3.    Luego Opciones de menú/Datos/Mostrar Orígenes de datos/dsEncuesta/encuestaex.
4.    Cambiaremos el idEncuesta/Clic en la fleca/Ninguno.
5.    Cambiaremos los demás controles ya que son de encuestas cerrada/Clic en la flecha/combobox.
6.    Cuadro de Herramientas/Binding Source/Name/EncuestaexBindingSource.
7.    Cuadro Herramientas/ErrorProvider/name/Err
8.    Cuadro de Herramientas/BindingNavigator/Name/EncuestaexBindingNavigator.
9.    Cuadro de Herramientas/Datos/DataSet/Aceptar.

Nota: Los campos en la tabla no pueden ir con espacios en blanco, ya que generara error.

Paso 7 (Programar el formulario)
      1.    Guardaremos los datos con el botón saveItem, Usaremos una condición (if) para el validar, donde mediante la condición sea verdadera se ejecutara los códigos 1, 2,3.
Luego el err es el que nos enviara una advertencia si faltara algún dato o sea incorrecto en el formulario cuando lo ejecutas.
       2.    Eliminaremos los datos ya almacenados con el botón deleteItem, lo que queremos entender en este código el msgboxStyle muestra los botones si y no cuando se ejecuta el msgbox.
   3.  Nuevo datos con el botón NewItem donde aplicamos los cambios pendientes con el EndEdit a el bindingsource luego agregaremos nuevos elementos al bingdingsource con el Addnew, luego obtenemos los indixes preestablecidos esto lo hacemos con el Selectindex.
Imports Encuesta_ex.entorno
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        DsEncuesta.Merge(Datos.ObtenerDatos, False)

    End Sub

    Private Sub EncuestaexBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EncuestaexBindingNavigatorSaveItem.Click
        If validar() = True Then
1.  EncuestaexBindingSource.EndEdit()
2.  Datos.salvarencuesta(DsEncuesta)
3.  DsEncuesta.AcceptChanges()
            MsgBox("Los datos se han almacenado correctamente", MsgBoxStyle.Information, "salvar")
            Pregunta1ComboBox.Focus()
        End If
    End Sub
    Private Function validar() As Boolean
        If Pregunta1ComboBox.Text = "" Then
            Err.SetError(Pregunta1ComboBox, "debe seleccionar una respuesta")
            Return False

        End If
        If Pregunta2ComboBox.Text = "" Then
            Err.SetError(Pregunta2ComboBox, "debe seleccionar una respuesta")
            Return False

        End If
        If Pregunta3ComboBox.Text = "" Then
            Err.SetError(Pregunta3ComboBox, "debe seleccionar una respuesta")
            Return False

        End If
        Return True
    End Function

    Private Sub EncuestaexBindingNavigator_RefreshItems(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EncuestaexBindingNavigator.RefreshItems

    End Sub

    Private Sub BindingNavigatorDeleteItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorDeleteItem.Click
        If MsgBox("Desea eliminar este registro", MsgBoxStyle.Question + MsgBoxStyle.YesNo, "Eliminar") = MsgBoxResult.Yes Then
EncuestaexBindingSource.EndEdit()
EncuestaexBindingSource.RemoveCurrent()
Datos.salvarencuesta(DsEncuesta)
DsEncuesta.AcceptChanges()
            MsgBox("El registro se ha eliminado de manera permanente", MsgBoxStyle.Information, "confirmado")
            Pregunta1ComboBox.Focus()

        End If
    End Sub

    Private Sub BindingNavigatorAddNewItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorAddNewItem.Click
        EncuestaexBindingSource.EndEdit()
        EncuestaexBindingSource.AddNew()
        Pregunta1ComboBox.Focus()
        Pregunta1ComboBox.SelectedIndex = -1
        Pregunta2ComboBox.SelectedIndex = -1
        Pregunta3ComboBox.SelectedIndex = -1
        Pregunta4ComboBox.SelectedIndex = -1
        Pregunta5ComboBox.SelectedIndex = -1
        Pregunta6ComboBox.SelectedIndex = -1
        Pregunta7ComboBox.SelectedIndex = -1
        Pregunta8ComboBox.SelectedIndex = -1
        Pregunta9ComboBox.SelectedIndex = -1
        Pregunta10ComboBox.SelectedIndex = -1
        Pregunta11ComboBox.SelectedIndex = -1
        Pregunta12ComboBox.SelectedIndex = -1

    End Sub
End Class


 
Pasos para crear la grafica
Paso 1
   1.    Clic derecho a mi proyecto/Agregar/Nuevo Elemento/Form/Nombre/Grafica
   2.    Cuadro de Herramientas/Datos/Chart.
   3.    Chart/Propiedades/name/oGrafico
   4.    Cuadro de Herramientas/Buton.
   5.    Buton/Propiedades/text Actualizar/Name cmdActualizar.



 
Pasos para hacer el Reporte

Paso 1

    1.    Clic derecho/Agregar/Nuevo Elemento/Elementos comunes/Reporting
    2.    Cuadros de Herramientas/Lista.
    3.    Cuadro de Herramientas/Cuadro de texto.


Código para la creación de mi reporte:
Colocamos un cuadro de herramientas, lo llamaremos «Expr», luego clic derecho/Propiedades de Cuadro de texto/General/Valor/fx.
Escribimos dentro de fx el siguiente código:
="Encuesta # " & Fields!Idencuesta.Value.ToString
  1. Hacemos los cuadro necesarios en mi caso son 12 cuadros de preguntas y cada una de ellas lleva 4 cuadros, pero antes de mis preguntas hice 2 cuadros como se los había mostrado anteriormente donde programamos uno de ellos.
  2. Luego de colocar los cuadros, en los cuadros a) y b) en todo el reporte se programaran, porque lo que queremos es visualizar los registros almacenados en la base de datos y tener cuales son las repuesta en el reporte.
  3.Lo que hacemos es dar clic derecho sobre el cuadro “a)”  seleccionamos propiedades de cuadro de texto/visibilidad/fx

  4. Ahora les mostrare como programar los cuadros a) y b), en este caso será una condición y es de la siguiente manera:
    =not(Fields!Pregunta1.Value="Si")


 
Paso2 (Crear el formulario de reporte)

   1.    Clic derecho encuestaex/Agregar/Nuevo Elemento/Nombre frmReporte.
   2.    Cuadro de Herramientas/Informe/ReportViewer.
   3.    Clic en la flecha del reporte/Elegir informe.
Public Class frmReporte

    Private Sub frmReporte_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'TODO: esta línea de código carga datos en la tabla 'dsEncuesta.encuestaex' Puede moverla o quitarla según sea necesario.
        Me.encuestaexTableAdapter.Fill(Me.dsEncuesta.encuestaex)

        Me.ReportViewer1.RefreshReport()
    End Sub
End Class



Nota: para ejecutar F5 o el botón de depuración.
Encuesta #13