Credencial en Visual Studio 2012 – Visual Basic .NET - SQLSever - Crystal Report – Campos de formula



Hola a todos, hoy es Viernes 31 de mayo, jejeje que rápido se va el tiempo no creen, bueno en esta ocacion vamos a crear una simple credencial usando Crystal Report para Visual Studio 2012, para nuestra credencial debemos de crear un proyecto aplicación de Visual Basic, en el primero formulario vamos a diseñarlo asi:


Podemos obervar en la imagen anterior los labels, los campos de texto, un datagridview, 5 botones, y un pictureBox, ya que tenemos todo eso vamos a crear nuestra base de datos:
create database carnet;
use carnet;
create table alumnos(
matricula varchar(9) not null,/*030220159 año inicio plantel numero de alumno*/
nombres varchar(200) not null,
apellidos varchar(200) not null,
correo varchar(200),
telefono varchar(15),
direccion varchar(255),
tipo_sangre varchar(10),
carrera varchar(100) not null,
vencimiento datetime not null,
foto varchar(500),
primary key(matricula));

set dateformat dmy;

Una vez creada nuestra base de datos vamos a crear nuestra cadena de conexión a nuestra base de datos para ello nos vamos  PROYECTO, propiedades <nombre del proyecto>,CONFIGURACION, y creamos nuestra cadena de conexión así:





 El nombre que le di en mi caso fue conexión, ahora vamos a darle funcionalidad a nuestro programa, lo primero es que nos muestre los alumnos que ya se encuentra registrados, para ello nos vamos a valer del evento Load:

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        nuevo = False
        Bus = New SqlConnection
        Bus.ConnectionString = My.Settings.Conexion'uso de la cadena de conexion
        Dim oComando As New SqlCommand("SELECT * FROM alumnos", Bus) ' + Trim(TxtBoxMatricula.Text) + "'", Bus)
        ' crear DataReader
        Dim oDataReader As SqlDataReader
        Bus.Open()
        oDataReader = oComando.ExecuteReader() ' obtener DataReader ' recorrer filas
        DataGridView1.ColumnCount = 2
        DataGridView1.Columns(0).Width = 100
        DataGridView1.Columns(0).Name = "matricula"
        DataGridView1.Columns(1).Width = 100
        DataGridView1.Columns(1).Name = "nombres"
        While oDataReader.Read()
            'Me.TxtBoxNombres.AppendText(Trim(oDataReader("nombres")))
            'Me.TxtBoxApellidos.AppendText(Trim(oDataReader("apellidos")))
            'Me.TxtBoxCorreo.AppendText(Trim(oDataReader("correo")))
            'Me.TxtBoxTelefono.AppendText(Trim(oDataReader("telefono")))
            'Me.TxtBoxDireccion.AppendText(Trim(oDataReader("direccion")))
            DataGridView1.Rows.Add(Trim(oDataReader("matricula").ToString()), Trim(oDataReader("nombres").ToString()))
        End While
        oDataReader.Close()
        Bus.Close()

    End Sub

Recorda también que al principio de nuestro código debemos de importar:
Imports System.Data.SqlClient

También debemos de crear nuestras variables globales siguientes:
    Private oDataAdapter As SqlDataAdapter
    Private oDataSet As DataSet
    Private iPosicFilaActual As Integer
    Dim Bus As SqlConnection 'para buscar
    Dim nuevo As Boolean 'para crear un nuevo registro
    Dim dirimagen As String 'url de la imagen

Crearemos también una función que se encargue de limpiar nuestro campos de textos
    Private Sub limpiar()
        TxtBoxMatricula.Text = ""
        TxtBoxNombres.Text = ""
        TxtBoxApellidos.Text = ""
        TxtBoxCorreo.Text = ""
        TxtBoxTelefono.Text = ""
        TxtBoxDireccion.Text = ""
        TxtBoxSangre.Text = ""
        ComBoxCarrera.Text = ""
    End Sub

Vamos ahora con el botón agregar nuevo alumno:
    Private Sub Button_Add_Click(sender As Object, e As EventArgs) Handles Button_Add.Click
        If nuevo = False Then
            limpiar()
            nuevo = True
            Me.Button_Add.BackgroundImage = Global.Carnet.My.Resources.Resources._16736781_disk_green_glossy_icon_on_white_background1
        Else
            Bus = New SqlConnection
            Bus.ConnectionString = My.Settings.Conexion
            oDataAdapter = New SqlDataAdapter("INSERT INTO alumnos " &
                                              "VALUES('" + TxtBoxMatricula.Text + "','" + TxtBoxNombres.Text + "','" + TxtBoxApellidos.Text + "','" + TxtBoxCorreo.Text + "','" + TxtBoxTelefono.Text + "','" + TxtBoxDireccion.Text + "','" + TxtBoxSangre.Text + "','" + ComBoxCarrera.Text + "','" + DateTimePVenci.Value.ToShortDateString() + "','" + dirimagen + "')", Bus)
            Dim oCommandBuild As SqlCommandBuilder = New SqlCommandBuilder(oDataAdapter)
            oDataSet = New DataSet
            Bus.Open()
            oDataAdapter.Fill(oDataSet, "alumnos")
            MsgBox("Alumnos actualizado correctamente")
            Bus.Close()
            nuevo = False
            Me.Button_Add.BackgroundImage = Global.Carnet.My.Resources.Resources._18732984_set_van_bewerking_knoppen_voor_het_web_illustratie___copia
        End If
    End Sub

Vamos ahora a Buscar un alumno:
    Private Sub Button_Buscar_Click(sender As Object, e As EventArgs) Handles Button_Buscar.Click
        If TxtBoxMatricula.Text <> "" Then
            limpiar()
            Bus = New SqlConnection
            Bus.ConnectionString = My.Settings.Conexion
            oDataAdapter = New SqlDataAdapter("SELECT * FROM alumnos WHERE matricula ='" & Trim(TxtBoxMatricula.Text) & "'", Bus)
            Dim oCommandBuild As SqlCommandBuilder = New SqlCommandBuilder(oDataAdapter)
            oDataSet = New DataSet
            Bus.Open()
            oDataAdapter.Fill(oDataSet, "alumnos")
            Bus.Close()
            Dim oDataRow As DataRow
            MessageBox.Show(oDataSet.Tables("alumnos").Rows.Count().ToString())
            If (oDataSet.Tables("alumnos").Rows.Count() <> 0) Then
                oDataRow = oDataSet.Tables("alumnos").Rows(0)
                TxtBoxNombres.Text = oDataRow("nombres")
                TxtBoxApellidos.Text = oDataRow("apellidos")
                TxtBoxCorreo.Text = oDataRow("correo")
                TxtBoxTelefono.Text = oDataRow("telefono")
                TxtBoxDireccion.Text = oDataRow("direccion")
                TxtBoxSangre.Text = oDataRow("tipo_sangre")
                ComBoxCarrera.Text = oDataRow("carrera")
                PictureBox1.ImageLocation = "imagenes\" & oDataRow("foto")
                DateTimePVenci.Value = oDataRow("vencimiento")
            Else
                MessageBox.Show("No hay ningun registro con esa matricula", "Carnet")
            End If
        End If
    End Sub

Si damos clic en nuestro picture nos da la opción a elegir nuestra imagen, en este caso debemos de tener guardada la imagen en nuestra carpeta imagen y además recortada.
    Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click
        Dim abrir As DialogResult
        DialogoAbrir.Title = "Elige la imagen"
        DialogoAbrir.Filter = "Archivo JPG|*.jpg|Archivo PNG|*.png"
        abrir = DialogoAbrir.ShowDialog()
        If abrir = Windows.Forms.DialogResult.OK Then
            'dirimagen = DialogoAbrir.FileName 'Obtiene la ruta
            dirimagen = DialogoAbrir.SafeFileName 'Obtiene solo el nombre del archivo
            PictureBox1.ImageLocation = "imagenes\" & dirimagen
            MessageBox.Show(dirimagen)
        End If
    End Sub

Ahora vamos a crear nuestro reporte, para ello añadimos uno, PROYECTO, AGREGAR COMPONENTE,REPORTING, CrystalReports, le ponemos un nombre, y lo empezamos a diseñar.
-del lado izquierdo del IDE tenemos la opción Cuadro de herramientas, elegimos ab para nuestros textos, y los otros objetos para la línea y el cuadro.
-en el mismo lado  damos en explorador de campos aquí vamos a crear nuestros campos de formula, damos CLIC DERECHO, NUEVO, NOMBRE y listo. Se abrirá una ventana como esta:

Aquí seguiremos añadiendo las demás formulas hasta terminarlas, ya después con un clic los arrastramos a nuestro campos de texto que ya antes debimos haber añadido a nuestro informe, por lo que este debe de quedar mas o menos asi:


Ahora añadiremos otro formulario e insertaremos un  CrystalReporViewer a este, y lo cerramos, nos vamos a nuestro botón mostrar reporte y de aquí llamaremos el formulario anterior y mostraremos el reporte, para ello nuestro código debe de quedar asi:
    Private Sub Button_Generar_Click(sender As Object, e As EventArgs) Handles Button_Generar.Click
        Dim inser As New Credencial()
        inser.DataDefinition.FormulaFields("matricula").Text = "'" & TxtBoxMatricula.Text & "'"
        inser.DataDefinition.FormulaFields("escuela").Text = "'" & "JoshybaCorpStudents" & "'"
        inser.DataDefinition.FormulaFields("director").Text = "'" & "Ing. Jose Israel Gomez Rodriguez" & "'"
        inser.DataDefinition.FormulaFields("empresa").Text = "'" & "JoshybaCorp" & "'"
        inser.DataDefinition.FormulaFields("nombres").Text = "'" & TxtBoxNombres.Text & "'"
        inser.DataDefinition.FormulaFields("apellidos").Text = "'" & TxtBoxApellidos.Text & "'"
        inser.DataDefinition.FormulaFields("correo").Text = "'" & TxtBoxCorreo.Text & "'"
        inser.DataDefinition.FormulaFields("tel").Text = "'" & TxtBoxTelefono.Text & "'"
        inser.DataDefinition.FormulaFields("dir").Text = "'" & TxtBoxDireccion.Text & "'"
        inser.DataDefinition.FormulaFields("sangre").Text = "'" & TxtBoxSangre.Text & "'"
        inser.DataDefinition.FormulaFields("carrera").Text = "'" & ComBoxCarrera.Text & "'"
        inser.DataDefinition.FormulaFields("img").Text = "'" & "imagenes\" & PictureBox1.ImageLocation & "'"
        inser.DataDefinition.FormulaFields("fecha").Text = "'" & DateTimePVenci.Value.ToString() & "'"
        limpiar()
        Imprimir.CrystalReportViewer1.ReportSource = inser
        Imprimir.CrystalReportViewer1.RefreshReport()
        Imprimir.ShowDialog()
    End Sub

Y con eso tenemos lo básico, usando SQLServer y CrystalReport, y mandamos información manual a nuestro reporte, en este poryecto falta las consultas UPDATE Y DELETE, pero en la próxima entrega estarán.

Muy bien eso es todo por hoy aquí les dejo el proyecto para que lo descarguen y lo prueben, recuerden que esta desarrollado en el IDE 2012, por lo que una versión anterior no podrá abrirla.





Visita mis otras paginas:

Comentarios

  1. me parecio interesante .. amigo pero tendra un blogs en java

    ResponderEliminar
    Respuestas
    1. Hola que tal, jeje lamentablemente no amigo, te lo debo!!.
      Saludos!!!

      Eliminar

Publicar un comentario

Entradas populares de este blog

Juego del ahorcado en C# (C Sharp)

RompeCabezas - Juego 1 - VC# 2012

Escribiendo en los TextField de un Pdf con Visual Basic y iTextSharp