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:
me parecio interesante .. amigo pero tendra un blogs en java
ResponderEliminarHola que tal, jeje lamentablemente no amigo, te lo debo!!.
EliminarSaludos!!!