domingo, 15 de abril de 2012

Como hacer un proyecto paso a paso


Hola a todos, en este blog les explicare como hacer el proyecto de Encuesta, lo primero después de abrir Visual Studio damos clic en Nuevo Proyecto y damos clic en Windows/aplicación de Windows form y le ponemos como nombre Encuesta.


Seguidamente damos clic derecho al proyecto Encuesta y damos clic en agregar/Nueva carpeta y en esa carpeta es donde vamos a guardar todos nuestros formularios.

Le cambiamos las propiedades:
Name: frmEncuesta
Text: Formulario de Encuesta

Damos clic derecho en Encuesta/Agregar/Control de Usuario
Nombre: Entorno

Clic en el menú ver/Cuadro de Herramientas
Clic derecho en Datos/Elegir Elementos


En filtro escribimos Oledb y seleccionamos OledbConnection y OledbDataAdapter
Después de eso añadimos al entorno OledbConnection y cambiamos la propiedad name y escribimos oConexion.

Después nos vamos a Datos/Agregar nuevo origen de Datos


Clic en Siguiente como lo muestra la imagen


Después de darle siguiente, agregamos una nueva conexión y como ven en la parte de arriba le damos en cambiar  damos clic donde dice Archivo de base de datos de Microsoft Access... y luego damos clic en examinar y buscamos la base de datos de Access. Después damos clic en Siguiente y Seleccionamos Tablas y finalizamos la conexión de orígenes de datos. Ojo, la base de datos guardémosla en una carpeta la cual le podemos llamar Encuesta_2012.

Ahora damos clic en DataAdapter y lo añadimos al Entorno de Datos
Seleccionamos la misma base de datos de Access/Siguiente/”No”/Siguiente
Damos clic en el generador de consultas y agregamos la tabla Encuesta.
Clic en el generador de consultas/Todas las columnas. Aceptar y Finalizar.


Cambiamos la propiedad text al OledbDataAdapter y le ponemos daEncuesta
Nos vamos a las propiedades, damos clic en DeleteCommand /CommandText
Y eliminamos todo lo que aparece en azul, solo dejamos IdPregunta  porque es el único campo que no se puede cambiar.

Lo mismo hacemos en UpdateCommand/CommandText y dejamos esto:
UPDATE       Encuesta
SET                Pregunta1 = ?, Pregunta2 = ?, Pregunta3 = ?, Pregunta4 = ?, Pregunta5 = ?, Pregunta6 = ?, Pregunta7 = ?, Pregunta8 = ?, Pregunta9 = ?, Pregunta10 = ?
WHERE        (IdPregunta = ?)

Aceptamos los cambios.

Después de todo esto, nos vamos al formulario “frmEncuesta” /Datos/Mostrar orígenes de datos, clic en la tabla Encuesta  y pasarla a modo detalles y a cada pregunta la cambiamos


Después de jalarlos cambiamos el Label de las preguntas y le ponemos las preguntas especificas y en cada Combobox le damos editar elementos y ponemos Si,No. Nos quedara algo así:


Listo, ya tenemos el diseño de nuestro Formulario Encuesta. Ahora nos vamos al Entorno de datos  y apretamos F7 y escribimos el sig. código


El nuevo entorno Datos nos dice que va estar asociada a toda la clase.
Después verificamos la descripción del estado de la conexión y la abrimos.
En la tercera parte creamos la función ObtenerDatos() la cual especifica que será especificado con tipo de datos DataSet.
Creamos y poblamos del Dataset llamando al data Adapter, daEncuesta y llenándolo con la tabla, cerramos la conexión.

Despues damos doble clic en el formulario, para llegar al evento load y agregamos el sig cod: EncuestaDataSet.Merge(Datos.ObtenerDatos, False)
Este código nos indica que al ejecutar el formulario nos traiga los datos.

Nos vamos al formulario y le damos clic en EncuestaBindingNavigator clic derecho/propiedades y cambiamos dos de ellas.
AddNewItem: Ponemos “Ninguno”
DeleteItem: Igual, “Ninguno”

Creamos un objeto llamado Set Error, el cual le cambiamos la propiedad text y le ponemos Err y en el evento load del formulario copiamos el código siguiente:




Este código nos especifica que si los campos están vacios tirará un mensaje al darle clic en el objeto Err y nos dirá que contestemos la pregunta a la cual no hallamos contestado.

Seguidamente nos vamos al botón Salvar, en la imagen del diskette y escribimos este 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

Nos indica que si validar es igual a verdadero, entonces se van a realizar los cambios correspondientes, osea que guardará o modificará ya que aceptará los cambios.

Nos vamos al botón Eliminar la cual aparece un signo como una X  y escribimos el sig. Código:

    If MsgBox("Desea eliminar este registro", MsgBoxStyle.Question + MsgBoxStyle.YesNo, "Eliminar") = MsgBoxResult.Yes Then
            EncuestaBindingSource.EndEdit()
            EncuestaBindingSource.RemoveCurrent()
            Datos.salvarEncuesta(EncuestaDataSet)
            EncuestaDataSet.AcceptChanges()
            MsgBox("El registro se ha eliminado de manera permanente", MsgBoxStyle.Information, "Confirmado")
            Pregunta1ComboBox.Focus()
        End If
Este código nos indica que si al tirar la condición y el usuario da clic en sí, entonces eliminaremos los datos correspondientes al formulario el cual eliminará el registro en Access y nos dirigirá a la pregunta número 1 para volver a escribir otro registro.
Ahora sí, ya terminamos nuestro formulario, ahora seguiremos con la grafica.

La grafica es más sencilla.Creamos otro formulario y le cambiamos form1 y le ponemos frmGrafica.

Agregamos un objeto chartControl y lo pegamos al formulario, le cambiamos la propiedad
Name: oConexion
Asimismo pegamos un botón y le cambiamos la propiedad
Name:cmdActualizar
Text:Actualizar
Tal como lo vemos aquí 




Ahora hacemos doble clic al botón Actualizar y escribimos el siguiente código


1)   Sirve para importar los objetos oledbCommand,Connection y DataReader
2)   Aquí creamos la cadena y decimos hacia donde queremos apuntar en este caso apuntamos a mi tabla de Access que se encuentra en D:\Encuesta_2012\Encuesta.accdb
Accdb es la extensión de la tabla Encuesta.
3)   Creamos la instrucción SQL, en este caso estamos llamando a la pregunta1 porque queremos buscar el total se Si y No por cada pregunta, por eso haremos 10 graficas en el mismo formulario porque son 10 preguntas
4)   Creamos una conexión llamada oConexion llamando a la Cadena
5)   Creamos un Comando con OledbCommand y es el que Permite ejecutar la instrucción en el origen de datos.
6)   Creamos un Lector con OledbDataReader y permite visualizar lo que queremos

Asi limpiamos la grafica, agregamos titulo... y enlazamos la grafica



Ahora seguimos con el reporte
Nos vamos al proyecto Encuesta clic derecho/Agregar/Nuevo Elemento





Nos vamos al Menú Ver/Cuadro de herramientas
Buscamos el objeto Lista y lo pegamos al formulario, y nos aparecerá esto:


Dejamos el nombre como Dataset1, el origen de Datos va ser el dataset que tenemos
agregado en el proyecto, en este caso encuestaDataset y el conjunto de datos la tabla
Encuesta. Ojo, Arreglamos el cuadro de lista para que abarque el alto y el ancho de
La pagina, ya que es el Que le visualiza todo, quedará así.


Ahora creamos un cuadro de texto y le ponemos Ficha de Encuesta
Seleccionamos  Ficha de Encuesta y nos vamos al menú:
Formato/Alinear/Al Centro
Formato/Fuente/Negrita

Creamos otro cuadro de Texto, clic derecho/Expresion, ponemos:
(=”Encuesta #”  &) y seleccionamos
Categoria:Dataset1 Elemento: Todos Valores:IdPregunta

Esto ese para que nos salga el numero de la Encuesta. Así


Ahora escribimos la primer pregunta con un cuadro de texto y ponemos 4 cuadros
De textos más como aparece en esa imagen, las cuales serán
a)      Si
b)      No

Ahora damos clic derecho en el cuadro de texto “a)” y damos clic en Propiedades del cuadro de texto. Nos aparecerá una ventana como esta



Nos vamos a Relleno y le ponemos un color, después Damos clic en Visibilidad/mostrar u ocultar en función de una expresión y damos clic en  fx y escribimos el código que aparece ahí
=not(Fields!Pregunta1.Value="Si")

Este código es para que podamos visualizar la respuesta que el usuario da, por ejemplo si el usuario da clic en Si en la base de datos, ahí se va a visualizar la letra a).

Después nos vamos a  b) y hacemos lo mismo, nada más que el código será al revés

=not(Fields!Pregunta1.Value="No")
 
Y así hacemos con las demás preguntas, hasta que nos quede así:

Ahora sí, creamos otro formulario llamado frmReporte


Ahora nos vamos al cuadro de herramientas Informe/ReportViewer




Lo pegamos en el formulario y nos aparecerá lo siguiente:



En tareas del ReportViewer elegimos el informe que hicimos rptEncuesta.rdlc

Listoo!!! Hemos terminado el proyecto!