domingo, 15 de abril de 2012

 Proyecto de Programación Paso a Paso
Para iniciar nuestra encuesta debemos a analizarla y plantear las soluciones para trabajar con nuestra encuesta y formulario
Analisis de la encuesta :
Ø La encuesta esta compuesta por :Edad,Sexo,Preg.1-Preg8
Ø Registrarse anonamente solo con la edad y el sexo

Solución de la Encuesta
1.     Cualquier persona que fuma puede responder esta encuesta.
2.     Su información quedara totalmente guardada en una base de datos.
A continuación se les mostrara la formación de pasos al hacer su formulario:



Ingresamos los campos con sus determinados tipos de datos para asi lograr un mejor orden.
Luego nos vamos a nuestro formulario en .NET
Y Creamos nuestro nuevo el formulario que nos servirá para diseñar nuestra encuesta.


Para mas rápido pegar nuestros comandos, nos vamos a las pestañas de arriba en datos y seleccionamos Mostrar orígenes de datos, después de crear nuestra base de datos saldrá nuestra tabla de datos de Access y de ahí solo cambiaremos lo que necesitamos de los botones de comando. Y Luego lo arrastramos al formulario.

Luego creamos un control de usuario con el nombre de entorno  y nos vamos a las propiedades de datos y clic derecho elegir elementos  y seleccionamos esas 2
Pegamos en el formulario el dataadapter y le cambiamos el nombre a cada uno.
 La conexión a oconexion y el dataadapter a daEncuesta y luego clic derecho en daEncuesta en configuración del dataapadter  y volvemos a establecer la conexión y usamos las instrucciones SQL seguimos en adelante y borramos lo que sale y la consultamos nuestra instrucción SQL y agregamos nuestra base de datos y la cerramos y seleccionamos todas las columnas


En ok luego saldrán las 4 instrucciones SQL y finalizar
Luego a las propiedades y  borramos solamente de la instrucción DELETE y UPDATE borramos después de WHERE después del AND empezamos a borrar todo.


Luego tenemos que programar nuestro entorno presionamos F7 este será su código:
Public Class entorno
    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

    Function obtener() As Object
        Throw New NotImplementedException
    End Function
End Class

Este código se refiere a obtener los datos almacenados en nuestra tabla de datos y abrimos una conexión que nos traiga los datos a través de un dataset y cerramos la conexión después a Salvar encuesta que abrimos la conexión para que nos actualice toda la información que esta en el ds y cerramos la conexión.


En nuestro formulario de encuesta después de tener el binding navigator y binding source. Seleccionando el binding navigator nos vamos a las propiedades  y en addnewitem lo colocamos en ninguno (none) igual en deleteitem ninguno (none)
Y lo programamos con dicho código:
Imports encuesta.entorno     (Nos trae la información almacenada desde nuestro entorno al formulario )
Public Class frmEncuesta
Private Sub frmEncuesta_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DsTablas.Merge(Datos.ObtenerDatos, False)
End Sub
Private Function Validar() As Boolean
If TxtEdad.Text = “” Then
Err.SetError(TxtEdad, “Por favor escriba su edad”)
Return False
End If
If cmbsexo.SelectedIndex = -1 Then
Err.SetError(cmbsexo, “Determine su sexo”)
Return False
End If
If cmbFumador.SelectedIndex = -1 Then
Err.SetError(cmbFumador, “Responda a ver si es fumador”)
Return False
End If
If cmbCharlas.SelectedIndex = -1 Then
Err.SetError(cmbCharlas, “Responda a ver si ha recibido charlas”)
Return False
End If
If cmbEfectos.SelectedIndex = -1 Then
Err.SetError(cmbEfectos, “Responda a ver si ha tenido efectos con el tabaco”)
Return False
End If
If cmbDonde.SelectedIndex = -1 Then
Err.SetError(cmbDonde, “Determine de donde es”)
Return False
End If
If cmbFamilia.SelectedIndex = -1 Then
Err.SetError(cmbFamilia, “Responda si hay familia suya que tambien fume”)
Return False
End If
If cmbRehabilitarse.SelectedIndex = -1 Then
Err.SetError(cmbRehabilitarse, “Determine si se ha rebalitado”)
Return False
End If
If cmbDia.SelectedIndex = -1 Then
Err.SetError(cmbDia, “Responda cuantas veces fuma al dia”)
Return False
End If
If cmbEnfermedades.SelectedIndex = -1 Then
Err.SetError(cmbEnfermedades, “Determine alguna enfermedad”)
Return False
End If
Err.SetError(TxtEdad, “”)
Err.SetError(cmbsexo, “”)
Err.SetError(cmbFumador, “”)
Err.SetError(cmbCharlas, “”)
Err.SetError(cmbEfectos, “”)
Err.SetError(cmbDonde, “”)
Err.SetError(cmbFamilia, “”)
Err.SetError(cmbRehabilitarse, “”)
Err.SetError(cmbEnfermedades, “”)
Return True
End Function
   
Private Sub EncuestaBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EncuestaBindingNavigatorSaveItem.Click
If Validar() = True Then
EncuestaBindingSource.EndEdit()
Datos.salvarencuesta(DsTablas)
DsTablas.AcceptChanges()
MsgBox(“Los datos han sido almacenados correctamente”, MsgBoxStyle.Information, “Salvar”)
End If
End Sub
Private Sub BindingNavigatorAddNewItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorAddNewItem.Click
EncuestaBindingSource.EndEdit()
EncuestaBindingSource.AddNew()
TxtEdad.Focus()
cmbsexo.SelectedIndex = -1
cmbFumador.SelectedIndex = -1
cmbCharlas.SelectedIndex = -1
cmbEfectos.SelectedIndex = -1
cmbDonde.SelectedIndex = -1
cmbFamilia.SelectedIndex = -1
cmbRehabilitarse.SelectedIndex = -1
cmbDia.SelectedIndex = -1
cmbEnfermedades.SelectedIndex = -1
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”) Then
EncuestaBindingSource.EndEdit()
EncuestaBindingSource.RemoveCurrent()
Datos.salvarencuesta(DsTablas)
DsTablas.AcceptChanges()
MsgBox(“el registro se ha eliminado de manera permanentemente”, MsgBoxStyle.Information, “confirmado”)
TxtEdad.Focus()
End If
End Sub
End Class

Haci queda almacenada la información que registramos y podemos modificarla o 
eliminarla pero todo queda guardado en la tabla de datos
Nos vamos a crear un nuevo formulario para nuestra grafica, nos vamos a la propiedad de Datos y pegamos un Chart y un TabControl para asignar las preguntas de dicha encuesta en pestañas de la grafica y un botón de comando que se llame Actualizar.
Y doble clic en nuestro botón de actualizar y su código:
Imports encuesta.entorno
Imports System.Data.OleDb
Public Class frmGrafico
Private Sub cmdActualizar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdActualizar.Click
oGrafico.Series.Clear()
Dim cSQL As String = “SELECT Preg1 as [Usted Fuma?], 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
oGrafico.DataBindTable(lector, “Usted Fuma?”)
Datos.oconexion.Close()
oGrafico.Titles.Add(“Usted Fuma?”)
End Sub

Así podemos ver a través de una grafica el porcentaje de cuantas personas que han respondido la encuesta todo eso queda almacenado para representarlo en las graficas.




Si tenemos más de 3 opciones en nuestro formulario saldrán igual varios porcentajes de dicho objeto
Por ejemplo: que diga la pregunta de donde eres?
*Honduras *Guatemala         *Panamá    *Costa Rica         *México
Saldrá nuestra grafica así:

Ahora trabajo de nuestro reporteClic derecho en la encuesta donde esta nuestro formulario el que esta en negrito clic derecho como si vamos a crear un Windows form en la parte izquierda buscamos Reporte y seleccionamos 2.asi

Y le damos el nombre de RptEncuesta y la agregamos
Para comenzar en las herramientas seleccionamos un List  después de agregarlo saldrá las propiedades del dataset

Donde le damos un nombre y en el Data Source saldrá nuestra tabla de datos y solo la seleccionamos y luego en ok. Estiramos nuestra lista y vamos pegando los cuadros de texto le damos un titulo como: “Ficha de Encuesta para Encuesta”
Luego pegamos otro cuadro de texto y en la parte de la esquina arriba de nuestro cuadro de texto seleccionamos el Id de nuestra ficha
Luego de Seleccionarlo le damos clic derecho y nos vamos a Expresion y borramos lo que hay y pegamos este código:
=”Encuesta #: “ &Fields!IdEncuesta.Value.ToString
Podemos borrarlo o solo añadirlo, porque a la hora de abrirlo en Expresion aparece  =Fields!IdEncuesta.Value
La podemos centrar y podemos darle negrita en la pestaña de arriba en Formato en Fuente y la seleccionamos.
Luego vamos pegando los demás cuadro texto según la tenemos  nuestra encuesta al final deberá quedar asi:
Luego al terminar nuestro reporte y para que a la hora ejecutarlo salga solo un inciso debemos programar en la expresión.
Por  ejemplo: La pregunta de la encuesta dice: ¿Ha salido de viaje alguna vez? La respuesta seria: a) SI b) NO. Y en el formulario se seleccionara la respuesta almacenada en nuestra tabla de Access o del formulario que anterior de la encuesta donde se almacenaran los datos.
Para programar nuestro inciso debemos darle clic derecho en las propiedades del cuadro de texto y seleccionamos Visibilidad y seleccionamos el 3 inciso que dice mostrar la base de una expresión.
Y le damos clic en la botoncito de F
Pegamos el código: =not(Fields!Preg1.Value="Si")
Creamos otro formulario, y nos vamos a la caja de herramientas de reporte y seleccionamos el ReportViewer, nos saldrá una pestañita y saldrá el nombre  del el reporte y la seleccionamos  automáticamente se añadirá un ds y un binding source y  cambiamos una propiedad en DOCK y seleccionamos el de en medio saldrá de nombre FILL se expandirá todo el reporteviewer.
Luego F7 y programamos nuestro formulario
Agregamos el imports encuesta.entorno para que nos devuelva la información almacenada en el entorno y dstablas para que lo que tenemos en nuestra tabla nos traiga los documentos almacenada por eso le damos obtenerdatos

Al final saldrá la información almacenada de nuestro reporte así finalizamos nuestro trabajo...!
GRACIAS POR TODO