domingo, 15 de abril de 2012

Paso a Paso Grafica


Paso A Paso Grafico
Primero nos vamos a nuestro dataset ay crearemos otra tabla para enlazar las gráficas, daremos clic derecho en la parte limpia del dataset y damos 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
Aquí estamos declrarando la conexión del entorno para que pueda accedernos a la base de datos y declarando los comandos del 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


Dim cSQL As String = "Select Preg1, count(Preg1) as Total from Encuesta group by Preg1"

Aqui estamos declarando la instruccion SQL con la pregunta numero uno para la ejecucion de la grafica.
ahora la ejecutaremos para visualizar nuestra grafica. Damos Ctrl+f5.


Paso a Paso Reporte


Paso A Paso De REPORTE
Primero hacemos doble clic en el nombre del proyecto y le damos agregar nuevo elemento En Name:rptReporte.
Luego se 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:
Origen de datos: dstablas
Conjunto de datos  disponibles:  Encuesta
Nos fijaremos en la parte de campos que estén todos los componentes de la tabla y nos quedara asy:

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 y para que quede alineado y centrado nos vamos a la opción formato justificar Centro y hay mismo en en formato Centrar en el formulario Horizontalmente.
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.
Pegamos otro Cuadro de Texto, y le ponemos Sexo a la par pegamos otro Cuadro de Texto   y en el botoncito azul elegiremos sexo.
Pegamos otro Cuadro de Texto, y le ponemos Edad a la par pegamos otro Cuadro de Texto   y en el botoncito azul elegiremos Edad.
Pegamos otro Cuadro de Texto, y le ponemos lugar de trabajo la par pegamos otro Cuadro de Texto   y en el botoncito azul elegiremos lugar de trabajo.
Pegamos otro Cuadro de Texto, y pondremos la primera pregunta que es: 1.¿Hace uso permanente de la Internet de la Empresa? Ahora pegamos otro Cuadro de Texto, y a ese le pondremos a) y a la par de este cuadro de texto pondremos otro Cuadro de Texto, y le pondremos Si, a la par de si pondremos otro Cuadro de Texto, con b) y a la de este cuadro de texto pondremos otro , Cuadro de Texto,  con No.
Para poder identificar que pregunta esta seleccionada en nuestra base de datos programaremos los cuadros de texto a) lo seleccionamos y damos clic derecho y seleccionamos propiedad del cuadro de texto y ay elegiremos Visibilidad y seleccionamos  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").
Luego pegamos otro Cuadro de Texto,  el cual será la segunda pregunta que es 2. El acceso, navegación y consulta de la Internet se realizan de manera rápida y sencilla, lo que permite disponer de información oportuna. Y  haremos el mismo procedimiento d la primer pregunta lo único que cambiara es el código, y el la opción                                                               
a  a)     =not(Fields!Preg2.Value = "Si").
b b)      =not(Fields!Preg2.Value = "No").
Luego pegamos otro Cuadro de Texto,  el cual será la tercer  pregunta que es 3.¿La Internet le ha servido como una herramienta de trabajo que facilita el desarrollo de sus actividades y que dispone de información confiable? Y  haremos el mismo procedimiento d la primer pregunta lo único que cambiara es el código, y el la opción                                                                 
a  a)      =not(Fields!Preg3.Value = "Si").
b   b)      =not(Fields!Preg3.Value = "No").
Luego pegamos otro Cuadro de Texto,  el cual será la cuarta  pregunta que es 4. La información contenida se encuentra ordenada de manera tal que facilita su búsqueda e identificación inmediata. Y  haremos el mismo procedimiento d la primer pregunta lo único que cambiara es el código, y el la opción                                                               
a  a)      =not(Fields!Preg4.Value = "Si").
b  b)      =not(Fields!Preg4.Value = "No").
Luego pegamos otro Cuadro de Texto,  el cual será la quinta pregunta que es  5. Sabe usted a quien recurrir para solicitar información no disponible o bien apoyo técnico en caso de fallas.  Y  haremos el mismo procedimiento d la primer pregunta lo único que cambiara es el código, y el la opción                                                                
a  a)      =not(Fields!Preg5.Value = "Si").
b   b)      =not(Fields!Preg5.Value = "No").
Luego pegamos otro Cuadro de Texto,  el cual será la sexta pregunta que es 6. Sus solicitudes de información o atención a fallas técnicas han sido atendidas de manera eficiente. Y  haremos el mismo procedimiento d la primer pregunta lo único que cambiara es el código, y el la opción                                                               
a  a)      =not(Fields!Preg6.Value = "Si").
b  b)      =not(Fields!Preg6.Value = "No").
Una ves terminada la estructura del reporte quedara de la siguente manera:
Ahora damos clic derecho en el nombre de proyecto y damos agregar nuevo Windows fom, asemos este paso para enlazar nuestro reporte a un ReportViewer una vez hecho  el Windows form en el cuadro de herramienta nos vamos a la pestaña informe y pegamos el ReportViewer y en la opción de una flechita que son la tareas de reporViewer damo clic en acoplar al contenido primario  en elegir informe y ay elegiremos el rptReporte: Encuesta.rptReporte.rdlc
Ahora daremos doble clic en reporViewer y ay poblaremos el dataset pondremos el siguiente código: 
dstablas.Merge(Datos.ObtenerDatos, False)
Me.ReportViewer1.RefreshReport()
                                               
Ahora ejecutaremos para ver como esta funcionando:





Paso A Paso Formularios



PASO A PASO
Formularios en  Microsoft visual estudio 2010
Empezaremos a crear una base de datos en Access
Creamos la base de datos en blanco y en el nombre le ponemos: Encuesta y la guardamos en una carpeta llamada Encuesta que la crearemos en nuestra memoria USB, le damos crear.
Después nos vamos a  ver ay elegimos Vista De Diseño, se nos abrirá una tabla la cual la nombraremos Encuesta  hay empezaremos a llenar nuestra base de datos con todos los campos de la encuesta a utilizar y esos campos son:
Nombre del Campo
Tipo de Dato
Descripcion
idEncuesta
Autonumerico

Nombre
Texto
Nombre del encuestado.
Sexo
Texto
Sexo del encuestado.
Edad
Numerico
Edad del encuestado.
Lugar de Trabajo
Texto
lugar de donde trabaja el encuestado
Preg1
Texto
¿Hace uso permanente de la Internet de la Empresa?
Preg2
Texto
¿El acceso, navegación y consulta de la Internet se realizan de manera rápida y sencilla, lo que permite disponer de información oportuna?
Preg3
Texto
¿La Internet le ha servido como una herramienta de trabajo que facilita el desarrollo de sus actividades y que dispone de información confiable?
Preg4
Texto
¿La información contenida se encuentra ordenada de manera tal que facilita su búsqueda e identificación inmediata?
Preg5
Texto
¿Sabe usted a quien recurrir para solicitar información no disponible o bien apoyo técnico en caso de fallas?
Preg6
Texto
¿Sus solicitudes de información o atención a fallas técnicas han sido atendidas de manera eficiente?






Nuestra vista de diseño quedara asi.
Luego nos vamos a ver Vista de Hoja De Datos y ahí llenaremos varios registros.
Una vez llenado nuestros registros guardaremos cambios para proceder a hacer el formulario en Microsoft Visual Studio 2010.
En Visual Studio nos vamos abrir un Nuevo Proyecto en la  aplicación Windows form en el nombre de el le pondremos: Encuesta




Aceptar,  una ves hecho el proyecto tenemos nuestro formulario pero en nuestro explorador de soluciones para poder tener un orden de cada formulario reporte e graficas haremos una carpeta que será nombrada: Formularios ya que esta carpeta nos permitirá almacenar cada formulario a realizar en nuestro proyecto.
Nos vamos a el explorador de soluciones y ay en nuestro nombre del proyecto que es Encuesta  damos click derecho Agregar Nueva  Carpeta, la nombraremos Formularios. Luego como nuestro form.1 había quedado de por fuera lo único que haremos es arrastrarlo a nuestra carpeta formularios y nos quedara


Una vez ordenadas nuestras carpeta  vamos hacer clic derecho en el nombre del proyecto y ay le damos agregar Control de usuarios 

Y en el nombre le pondremos: Entorno.
Ahora en el cuadro de herramientas seleccionamos DATOS y hay daremos clic derecho  elegir elementos:


Una vez elegido esa opción se nos aparecerá otra ventana y en Filtró pondremos: oledb


Hacemos esto porque tanto el oleDbConnection y el oleDbDataAdapter en nuestro entorno no lo tenemos como un objeto y si nosotros no hiciéramos este paso nos tocaría programar cada uno de estos dos objetos en cada código del formulario. Y  esta selección nos permite ahorrar líneas de código.
Luego aceptar se podrán fijar que en nuestro cuadro de herramientas en DATOS nos quedo de la siguiente manera:



Ya tenemos creados nuestros dos objetos  OleDbConnection y OleDbDataAdapter.
Ahora pegaremos al entorno nuestro  OleDbConnection lo pegamos porque tenemos que hacer una conexión directa a nuestra base de datos en Access.
A este objeto le cambiaremos la propiedad Name: oConexion.
También la propiedad ConectionStrim : hay procederemos hacer la conexión directa con la base de datos en Access, seleccionas esta opción y le damos Nueva Conexión, se nos aparecerá un cuadro así:






 A esta ventana le cambiaremos:  El origen de datos a:   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.


Ahora procederemos a pegar nuestro objeto oleDbDataAdapter, una vez pegado el objeto se nos aparecerá un cuadro Asistente de configuración del adaptador de datos y hay le damos Siguiente,  se nos aparecerá el siguiente cuadro:



Hay hacemos clic en NO, porque no queremos que se nos duplique una copia en nuestra base de datos y después tener errores que no sabremos donde encontrarnos.
Ahora procederemos a  la siguiente ventana donde tendremos que dar clic en el  Generador de Consultas, se nos mostrar una ventana así


Hay tendremos que agregar la tabla  Encuesta, una vez agregada,  damos clic en cerrar.
En el generador de consultas tenemos ya la tabla agregada en el cuadro que se nos aparecerá dentro del generador tenemos que marcar la opción que dice  Todas las Columnas.  


Y le daremos aceptar.
Luego le damos  Siguiente y Finalizar.
Al objeto oleDbDataAdapter le cambiaremos la propiedad Name: daEncuesta.
También en las propiedades de este objeto expandimos las opciones de DeleteCommand, y dentro de sus opciones escogeremos Commando text. Entonces se nos aparecerá el generador de consultas el cual hay tendremos que borrar código,  y borramos ese código porque estamos agregando modificando y eliminando información entonces borramos lo demás porque atreves del idEncuesta que quedara, solo por medio de ella podremos eliminar o modificar información porque es la clave principal. Nos quedara de la siguiente manera:








Luego daremos aceptar, se nos aparecerá la ventana siguiente:

Hay daremos clic en si porque atreves del código que borramos vamos a poder solo dejar al id encuesta como llave principal para poder ejecutar atreves de el varios cambios.
Ahora en las propiedades nos vamos a la opción de updatecommand y expandimos sus opciones hay seleccionaremos el CommandText aquí también borraremos codigo y el generador de consultas  nos quedara de la siguiente manera:


Damos clic en aceptar. Y le damos Si ala ventana Siguiente que se nos aparece.
Ahora en el objeto daEncuesta damos clic derecho y hay escogeremos la opción  Generar Conjuntos de Datos. Hay procederemos a crear nuestro dataset que por medio de el tenemos que poblar nuestra base de datos.
Se nos aparecerá el siguiente cuadro que es el generador de datos, hay solo cambiaremos la opción Nuevo: con el nombre dstablas con esto estamos nombrando a  nuestro dataset.
Y deshabilitaremos la opción Agregar este conjunto de datos al diseñador. Nos quedara de la siguiente manera:


Una vez creado todas estas opciones iremos a programar el entorno para ello damos F7,
Abajo del código  Public Class Entorno  Pondremos:
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



Y damos aceptar una vez creado nuestro dataset, procederemos  a crear nuestro formulario tomaremos los siguientes pasos:
Vamos a dar doble clic en el form1. Las propiedades que le cambiaremos al formulario son:
Text: Registro Encuesta.
EstatPosition: CenterScreen.
Ahora pegaremos nuestros botones que tenemos en nuestro dataset al formulario para ello nos iremos a la opción de la pestaña DATOS, seleccionamos Mostrar orígenes de datos, se nos abrirá una ventana el cual hay tenemos el contenido de nuestro dataSet.




Ahora tenemos expandida los campos de la tabla encuesta y como nuestras preguntas son de solo dos respuestas las cambiaremos a un Combo box,  y también el sexo lo cambiaremos.
Una vez cambiado los campos vamos a arrastrar los campos  desde el idEncuesta asta la pregunta número 6 al formulario.
Una vez  que hayamos pegamos pegado  todo lo del dataset a las preguntas le cambiaremos la propiedad text: en el nombre de cada pregunta que tenemos en nuestra base de datos y nos quedara de la siguiente manera:








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 vez teniendo la estructura de nuestro formulario procederemos a la implementación de los códigos para ello daremos clic derecho en el botón nuevo y en este caso como el botón esta deshabilitado lo habilitaremos y cuando damos el clic elegimos la opción  Enabled
Para empezar daremos doble clic en el formulario declareremos la valiable
Imports Encuesta.Entorno
Al inicio del formato de código de nuestro formulario osea que iria debajo de Public Class Form1

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