domingo, 15 de abril de 2012

Reporte

Paso A Paso Reporte
doble clic en el nombre del proyecto y le damos agregar nuevo elemento En Name:rptReporte.
nos aparecerá la hoja del reporte y empezaremos a pegando el objeto lista el cual este objeto nos servirá para hacer una conexión con el origen de datos que es el dstablas se nos abrirá una ventana donde tendremos que poner los siguientes datos:



Una ves hecho este paso procederemos a crear los componentes del reporte acomodamos la lista el cuadro que nos sale y lio acomodamos de acuerdo a lo largo ya ancho que sea nuestro informe.
Pegamos un Cuadro de Texto  y le pondremos  Reporte de Encuesta.
Luego pegamos otro Cuadro de Texto , y le ponemos Nombre y a la par de Nombre pegamos otro cuadro de texto y en cuando acercamos el puntero al cuadro se nos aparecerá un cuadriato azul ay daremos clic y elegiremos Nombre.
Y asi sicesivamente pegaremos lo demás cuando ya vayamos pegando las preguntas tendremos que poner debajo de ella otro cuadro text con la opción a) para el
Si y la opción b) para el el cuadro a) daremos clic derecho propiedades de cuadro de texto y en visibilidad elegimos la opcion Mostrar u ocultar en función en una expresión  ay daremos clic en símbolo que se nos da una vez dar clic ay pondremos el siguiente código =not(Fields!Preg1.Value = "Si").
Con la opción  b) aremos lo mismo que la opción a) y pondremos de código =not(Fields!Preg1.Value = "No")
Asy seguiremos con las demás preguntas solo cambiara el nombre de la pregunta que iremos a poner.
ahora una ves hecho esto nos vamos al nombre del proyecto agregar windows form y le ponemos reporte ay pegaremos el reportViver en la flechita elegimos acoplar al contenido primario y en elehir reporte elegimos el rptreporte  luego damos doble clic y ay pondremos: 
    dstablas.Merge(Datos.ObtenerDatos, False)
        Me.ReportViewer1.RefreshReport()

aqui estamos alimentando el data set duardamos cambios y lo ejecutaremos.

paso a paso formularios


Primero abrimos una base de dato en Access
Después de crear la base de datos en blanco le ponemos el nombre que en este caso seria sta
Lugo de eso nos vamos a la opción ver y escogemos vista de diseño de esa manera se abrirá una tabla a la cual le llamaremos Encuesta luego empezaremos a  llena lo que es nuestra base  de datos con todos los campos de la encuesta.
Nombre de campo
Tipo de datos
Descripcion
idEncuesta
Autonumerico

Nombre
Texto
Nombre del encuestado
Edad
Numero
Edad del encuestado
Sexo
Texto
Sexo del encustado
Curso
Texto
Curso en que esta el encuestado
Preg1
Texto
Te gusta el deporte
Preg2
Texto
Te gustan las clases de educación  física de tu colegio
Preg3
Texto
Practicas algún deporte por la tarde, fuera de clases
Preg4
Texto
Cambiarias la clase de educación física por hacer otra cosa
Preg5
Texto
Practica alguno de tus padres algún deporte
Preg6
Texto
Si pudieras elegir entre ir o no ir a la clase de educación física irías

De esta manera quedara nuestra vista de diseño
Luego nos vamos a la opción ver  hoja de Datos y de esa forma empezaremos a llenarla de registros.
Nos vamos a Visual Studio y abrimos un nuevo proyecto en Windows Form  y a este le pondremos Encuesta.
Nos vamos al explorador de soluciones y en nuestro nombre del proyecto  damos clic derecho Agregar Nueva  Carpeta, la nombraremos Formularios. Luego como nuestro primer formulario  lo   arrastramos a nuestra carpeta formularios y nos quedara almacenado.
Luego le damos clic derecho a nuestro proyecto y le damos agregar Control  de usuarios y de nombre le pondremos Entorno.
Después en el cuadro de herramientas seleccionamos Datos y ahí aremos clic derecho elegir elementos.


Luego de haber sido elegido se abrirá una ventana  y en filtro le ponemos Oledb. Y elegimos  oleDbConnection y el oleDbDataAdapter  Esto es porque en nuestro entorno no lo tenemos como un objeto esta selección nos permite ahorrar líneas de código.
Luego aceptar  en nuestro cuadro de herramientas en DATOS nos quedó


 
Después  pegmos el oledbconecction para hacer una conexión directa se puede decir así le pegaremos al entorno nuestro oledbconnection. Y a este objeto le cambiaremos el name y le pondremos oConexion.
También cambiamos el connectionStrim por una nueva conexión.


 
A esta ventana le cambiaremos: El origen de datos  Archivo de base de datos de Microsoft Access,  Aceptar.
Luego nos quedara una ventana donde tendremos  el nombre del archivo de la base de datos le damos Examinar: hay buscaremos  nuestra base de datos de Access ósea la base  Encuesta. Nos quedara de la siguiente manera,

 
luego si queremos saber si  nuestra conexión funcionara bien le damos clic a la opción Probar Conexión. Luego le damos Aceptar.
Después vamos a  pegar nuestro objeto oleDbDataAdapter, una vez pegado el objeto se nos aparecerá un cuadro Asistente de configuración del adaptador de datos y ahí le damos Siguiente,  se nos aparecerá el siguiente cuadro:
 Haremos clic en no, porque no queremos que se nos hagan varias  copias en nuestra base de datos y luego tendremos errores.

 
Ahora nos iremos a  la siguiente ventana donde tendremos que dar clic en el  Generador de Consultas, se nos mostrar una ventana.
Al objeto oleDbDataAdapter le cambiaremos la propiedad Name: daEncuesta.
La seleccionamos  deEncuesta y en la propiedad  DeleteCommand –Clic en command text   y hay borraremos el codigo y nos quedara asy:


Y damos aceptar y elegimos Si.
Luego en la propiedad  update la expandimos y damos clic en command text  hay tendremos que borrar código y nos quedara asy:

 
Luego aceptar en el siguiente ventana daremos Si.
Ahora en el oledbdataAdaptar le cambiamos el nombre y le ponemos daEncuesta luego damos clic hay y Generar conjunto de datos hay crearemos el data set se nos aparecerá el cuadro  y elegiremos las opciones del nombre del dataset y le ponemos dstablas y deshabilitamos la ultiima opción nos quedara asy:



Ahora pegaremos el objeto error: nos vamos al cuadro de herramientas en la pestana Componentes encontraremos el ErroProvider lo único que cambiaremos de este objeto es su propiedad name: err.
Una ves creados todo esto iremos a programar el entorno pondremos el siguiente código:
Public Shared Datos As New Entorno
Public Sub Conectar()
        If oConexion.State <> ConnectionState.Open Then
            oConexion.Open()
        End If
    End Sub
Public Function ObtenerDatos() As DataSet
        Dim ds As New DataSet
        Conectar()
        daEncuesta.Fill(ds, "Encuesta")
        oConexion.Close()
        Return ds
    End Function
Public Sub salvarencuesta(ByVal ds As DataSet)
        Conectar()
        daEncuesta.Update(ds)
        oConexion.Close()
    End Sub


 Nos vamos a nuestro formulario  y en el origen de datos vamos a arrastra todos los campos hacia el formulario y y la preguntas las cambiaremos a un combobox  una vez arrastrados los campos tendremos que programar los botones nuevo agregar y eliminar  en el botón nuevo daremos clic derecho y la opción enabled.
Para empezar daremos doble clic en el formulario declareremos la valiable
Imports Encuesta.Entorno
lo primero que haremos es programar el evento load del formulario para ello daremos doble clic en una parte limpia del formulario y se nos abrirá el evento load el cual hay pondremos:
Dstablas.Merge(Datos.ObtenerDatos, False)

Estamos poblando el data set y al mismo tiempo le estamos haciendo un llamado para poder obtener los datos.

Ahora procederemos aprogramar el el evento prívate fuction para declarar los campos que queremos que tengan un mensaje a la hora de ejecutarlo:
Emprezaremos declarando:
Private Function validar() As Boolean


If NombreTextBox.Text = "" Then
            err.SetError(NombreTextBox, "Por favor escriba el nombre del encuestado")
            Return False
        End If


If Val(EdadTextBox.Text) = 0 Then
            err.SetError(EdadTextBox, "por favor escriba la edad del encuestado")
            Return False
        End If


If Lugar_de_trabajoTextBox.Text = "" Then
            err.SetError(Lugar_de_trabajoTextBox, "por favor escriba el lugar de trabajo del encuestado")
            Return False
        End If


err.SetError(NombreTextBox, "")
err.SetError(EdadTextBox, "")
err.SetError(Lugar_de_trabajoTextBox, "")

        Return True
  
    End Function



Unas ves habilitadas el botón nuevo daremos doble clic sobre el y pegaremos el siguiente código:
If validar() = True Then
            EncuestaBindingSource.EndEdit()
            Datos.salvarencuesta(Dstablas)
            Dstablas.AcceptChanges()
            MsgBox("Los datos se han almacenado correctamente", MsgBoxStyle.Information, "Salvar")
        End If



En botón eliminar daremos doble clic y el código que ira hay es:
If MsgBox("Desea eliminar este registro", MsgBoxStyle.Question + MsgBoxStyle.YesNo, "Eliminar") Then
            EncuestaBindingSource.EndEdit()
            EncuestaBindingSource.RemoveCurrent()
            Datos.salvarencuesta(Dstablas)
            Dstablas.AcceptChanges()
            MsgBox("el registro se ha eliminado de manera permanentemente", MsgBoxStyle.Information, "confirmado")
            IdEncuestaTextBox.Focus()
        End If



En el botón Agregar pondremos:
EncuestaBindingSource.EndEdit()
        EncuestaBindingSource.AddNew()
        IdEncuestaTextBox.Focus()



Una vez programado todo este paso lo ejecutaremos para saber si nuestro código está funcionando damos ctrl+f5

Paso a Paso Gafico.
nos vamos a nuestro dataset ay crearemos otra tabla para enlazar las gráficas, daremos clic agregar tabla de datos y le ponemos como nombre: EncuestaGrafico en ese nombre damos clic derecho agregar columna y a esa le columna le llamaremos Categoría y esa es llave primero le daremos clic derecho agregar llave, luego clic derecho agregar columna y a esta le llamaremos Total, guardamos cambios.

Ahora damos clic derecho en el nombre del proyecto y damos agregar Windows form le ponemos en el nombre Grafico, en el origen de datos encontraremos la tabla que creamos en el dataset entonces esa tabla la arrastramos hacia el formulario y una vez que la arrastramos damos doble clic en ella y arriba de Public Class Grafico
Ponemos: Imports Encuesta.Entorno
  Imports System.Data.OleDb
Ahora nos vamos al formulario gráfico y borramos lo que está pegado hay y una ves borrado pegaremos un chart área para la representación de la gráfica, para ello nos vamos al cuadro de herramientas en la pestaña Datos elegimos el chartárea en la propiedad name le cambiaremos a: ografico.

Ahora pegaremos un botón en su propiedad name: cmdActualizar y en text: Actualizar.
Ahora damos clic en Actualizar y pondremos el código que alimentara la gráfica para desarrollar todos los registros que hay en la tabla de Access.

'crear la SQL-select para obtener los datos del rubro
        Dim cSQL As String = "Select Preg1, count(Preg1) as Total from Encuesta group by Preg1"
        Datos.Conectar()
        Dim comando As New OleDbCommand(cSQL, Datos.oConexion)
        Dim lector As OleDbDataReader = comando.ExecuteReader
        If lector.HasRows Then
            'Generar la grafica
            ografico.Series.Clear()
            ografico.Titles.Clear()
            ografico.DataBindTable(lector, "Preg1")
            ografico.Series(0).ChartType = DataVisualization.Charting.SeriesChartType.Pie
            ografico.Series(0).IsValueShownAsLabel = True
            ografico.Titles.Add("Hace uso permanente de la Internet de la Empresa")
        Else
            MsgBox("No se ha generado la grafica, porque no se encontro informacion " & " para crear la misma", MsgBoxStyle.Information, "sin datos")
        End If
    End Sub