You are on page 1of 19

Archivos de Datos en C# y reportes con Crystal Report

Ing. Javier Alberto Manrique Quionez Pgina 1

Archivos de Datos en C# y reportes con Crystal Report

Crystel Report es un

ARCHIVOS DE DATOS Y REPORTES CON CRYSTAL REPORT

Ing. Javier Alberto Manrique Quionez Pgina 2

Archivos de Datos en C# y reportes con Crystal Report

FORMULARIO SISTEMA DE MANTENIMIENTO ABCM DE ALUMNOS NO ACTION

Ing. Javier Alberto Manrique Quionez Pgina 3

Archivos de Datos en C# y reportes con Crystal Report

FORMULARIO SISTEMA DE MANTENIMIENTO ABCM DE ALUMNOS ACTION INSERTAR - BUSCAR

FORMULARIO SISTEMA DE MANTENIMIENTO ABCM DE ALUMNOS ACTION INSERTAR - GUARDAR

Ing. Javier Alberto Manrique Quionez Pgina 4

Archivos de Datos en C# y reportes con Crystal Report

FORMULARIO SISTEMA DE MANTENIMIENTO ABCM DE ALUMNOS MODIFICAR - GUARDAR

FORMULARIO SISTEMA DE MANTENIMIENTO ABCM DE ALUMNOS MODIFICAR - CONFIRMAR Ing. Javier Alberto Manrique Quionez Pgina 5

Archivos de Datos en C# y reportes con Crystal Report

FORMULARIO SISTEMA DE MANTENIMIENTO ABCM DE ALUMNOS SELECCIN DE FILA

FORMULARIO SISTEMA DE MANTENIMIENTO ABCM DE ALUMNOS Ing. Javier Alberto Manrique Quionez Pgina 6

Archivos de Datos en C# y reportes con Crystal Report

ELIMINAR - CONFIRMAR

APLICACIN EN EL EXPLORADOR DE SOLUCIONES

Ing. Javier Alberto Manrique Quionez Pgina 7

Archivos de Datos en C# y reportes con Crystal Report

Ing. Javier Alberto Manrique Quionez Pgina 8

Archivos de Datos en C# y reportes con Crystal Report

Ing. Javier Alberto Manrique Quionez Pgina 9

Archivos de Datos en C# y reportes con Crystal Report

Ing. Javier Alberto Manrique Quionez Pgina 10

Archivos de Datos en C# y reportes con Crystal Report

CDIGO - Program
using System; using System .Collections .Generic; using System .Linq; using System .Windows .Forms; namespace ABCMyDAO { static class Program { [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new FormSistemaDeMenu()); } }

CDIGO Clase Alumno


using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ArchivoDeDatosConGUIyDAO { public class Alumno { private int alumno_id; private String apellidoNombre; private double evaluacionParcial1; private double evaluacionParcial2; private double promedioDeTrabajo; private double promedioFinal; public Alumno ( ) { this.alumno_id = 0; this.apellidoNombre = null; this.evaluacionParcial1 = 0; this.evaluacionParcial2 = 0; this.promedioDeTrabajo = 0; } public Alumno ( int alumno_id, String apellidoNombre, double evaluacionParcial1, double evaluacionParcial2, double promedioDeTrabajo, double promedioFinal ) { this.alumno_id = alumno_id; this.apellidoNombre = apellidoNombre; this.evaluacionParcial1 = evaluacionParcial1; this.evaluacionParcial2 = evaluacionParcial2; this.promedioDeTrabajo = promedioDeTrabajo; this.promedioFinal = promedioFinal; } public int getAlumno_id ( ) { return this.alumno_id; } public void setAlumno_id ( int alumno_id ) { this.alumno_id = alumno_id; } public String getApellidoNombre ( ) { return this.apellidoNombre; } public void setApellidoNombre ( String apellidoNombre ) { this.apellidoNombre = apellidoNombre; } public double getEvaluacionParcial1 ( ) { return this.evaluacionParcial1; }

Ing. Javier Alberto Manrique Quionez Pgina 11

Archivos de Datos en C# y reportes con Crystal Report


public void setEvaluacionParcial1 ( double evaluacionParcial1 ) { this.evaluacionParcial1 = evaluacionParcial1; } public double getEvaluacionParcial2 ( ) { return this.evaluacionParcial2; } public void setEvaluacionParcial2 ( double evaluacionParcial2 ) { this.evaluacionParcial2 = evaluacionParcial2; } public double getPromedioDeTrabajo ( ) { return promedioDeTrabajo; } public void setPromedioDeTrabajo ( double promedioDeTrabajo ) { this.promedioDeTrabajo = promedioDeTrabajo; } public double getPromedioFinal ( ) { return this.promedioFinal; } public void setPromedioFinal ( double promedioFinal ) { this.promedioFinal = promedioFinal; } public void setPromedioFinal ( ) { this.promedioFinal=(this.evaluacionParcial1+this.evaluacionParcial2+this.promedioDeTrabajo)/3; } public String toString ( ) { return apellidoNombre; } }

CDIGO Clase AlumnoDAO


using System; using System .Collections .Generic; using System .Linq; using System .Text; using System.IO; using System.Collections; namespace ABCMyDAO { public class AlumnoDAO { public Boolean insertarRegistro(Alumno oAlumno) { int posicion = numeroDeRegistro(); if(escribirRegistro(oAlumno, posicion)) { return true; } else { return false; } } public Alumno consultarRegistro(int busqueda) { Alumno oAlumno = new Alumno(); int posicion = buscarRegistro(busqueda); if(posicion != -99) { oAlumno = leerRegistro(oAlumno, posicion); return oAlumno; } else { return null; } } public Boolean modificarRegistro ( int busqueda, Alumno oAlumno )

Ing. Javier Alberto Manrique Quionez Pgina 12

Archivos de Datos en C# y reportes con Crystal Report


{ int posicion = buscarRegistro(busqueda); if ( posicion != -99 ) { if (escribirRegistro(oAlumno, posicion) ) { return true; } else { return false; } } else { return false; } } public Boolean eliminarRegistro(int busqueda) { Alumno oAlumno = new Alumno(); int posicion = buscarRegistro(busqueda); if(posicion != -99) { oAlumno = leerRegistro(oAlumno, posicion); oAlumno.setAlumno_id(0); if(escribirRegistro(oAlumno, posicion)) { return true; } else { return false; } } else { return false; } } public Boolean modificarRegistro ( int busqueda, Alumno oAlumno ) { Alumno oAlumno; String archivo = Properties.Settings.Default.nombreDeArchivo; int longitudDeRegistro = Properties.Settings.Default.longitudDeRegistro; FileStream fs = new FileStream(archivo, FileMode.OpenOrCreate, FileAccess.Read); BinaryReader br = new BinaryReader(fs); int encontrado = 0; int posicion = 0; int tamaoDelArchivo = numeroDeRegistro(); while ( (posicion < tamaoDelArchivo) && (encontrado == 0) ) { br.BaseStream.Seek(posicion*longitudDeRegistro,SeekOrigin.Begin); oAlumno=new Alumno(br.ReadInt32(),br.ReadString(),br.ReadDouble(),br.ReadDouble(),br.ReadDouble(),br.ReadDouble() ); if ( busqueda == oAlumno.getAlumno_id() ) { encontrado = 1; } else { posicion++; } } fs.Close(); br.Close(); if ( encontrado == 1 ) { return posicion; } else { return -99; } } public Alumno leerRegistro(Alumno oAlumno, int posicion) { String archivo = Properties.Settings.Default.nombreDeArchivo; int longitudDeRegistro = Properties.Settings.Default.longitudDeRegistro;

Ing. Javier Alberto Manrique Quionez Pgina 13

Archivos de Datos en C# y reportes con Crystal Report


FileStream fs = new FileStream(archivo, FileMode.OpenOrCreate, FileAccess.Read); BinaryReader br = new BinaryReader(fs); br.BaseStream.Seek(posicion*longitudDeRegistro, SeekOrigin.Begin); oAlumno=new Alumno(br.ReadInt32(), br.ReadString(), br.ReadDouble(), br.ReadDouble(), br.ReadDouble(), br.ReadDouble()); fs.Close(); br.Close(); return oAlumno; } public Boolean escribirRegistro ( Alumno oAlumno, int posicion ) { String archivo=Properties.Settings.Default.nombreDeArchivo; int longitudDeRegistro = Properties.Settings.Default.longitudDeRegistro; FileStream fs=new FileStream(archivo, FileMode.OpenOrCreate, FileAccess.ReadWrite); BinaryWriter bw = new BinaryWriter(fs); bw .BaseStream.Seek(posicion*longitudDeRegistro,SeekOrigin.Begin); bw.Write(oAlumno.getAlumno_id()); bw.Write(oAlumno.getApellidoNombre()); bw.Write(oAlumno.getEvaluacionParcial1()); bw.Write(oAlumno.getEvaluacionParcial2()); bw.Write(oAlumno.getPromedioDeTrabajo()); bw.Write(oAlumno.getPromedioFinal()); fs.Close(); bw.Close(); return true;

public List<Alumno> obtenerDatosEnList() { AlumnoDAO oAlumnoDAO = new AlumnoDAO(); String archivo = Properties.Settings.Default.nombreDeArchivo; int longitudDeRegistro = Properties.Settings.Default.longitudDeRegistro; List<Alumno> oListAlumno = new List<Alumno>(); FileStream fs = new FileStream(archivo, FileMode.OpenOrCreate, FileAccess.Read); BinaryReader br = new BinaryReader(fs); Alumno oAlumno; for (int posicion = 0; posicion < oAlumnoDAO.numeroDeRegistro(); posicion = posicion + 1) { br.BaseStream .Seek(posicion * longitudDeRegistro, SeekOrigin.Begin); oAlumno=new Alumno(br.ReadInt32(),br.ReadString(), br.ReadDouble(),br.ReadDouble(),br.ReadDouble(), br.ReadDouble()); oListAlumno.Add(oAlumno); } br.Close(); fs.Close(); return oListAlumno; }
public int numeroDeRegistro() { String archivo = Properties.Settings.Default.nombreDeArchivo; int longitudDeRegistro = Properties .Settings.Default.longitudDeRegistro; FileStream fs = new FileStream(archivo,FileMode.OpenOrCreate, FileAccess.Read); int n = (int) (Math.Ceiling((double) fs.Length / (double) longitudDeRegistro)); fs .Close(); return n; } }

Ing. Javier Alberto Manrique Quionez Pgina 14

Archivos de Datos en C# y reportes con Crystal Report

CDIGO Clase FormularioABCM


using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Windows.Forms; using System.Windows.Forms.Design; namespace ABCMyDAO { public partial class FormularioABCM : Form { private int action = ABCMAccion.NO_ACTION; public FormularioABCM() { InitializeComponent(); controladorDeEventosBotonesABCM(); formatearDataGridView(); actualizarDataGridViewAlumno(); } private void formatearDataGridView() { //Para especificar la fuente utilizada por las celdas de DataGridView dataGridViewAlumno.DefaultCellStyle.Font = new Font("Tahoma", 07);
// Para cambiar mediante programacin el estilo de borde de todo el control DataGridView

dataGridViewAlumno.BorderStyle = BorderStyle.Fixed3D;
// Para cambiar mediante programacin el color de la lnea de la cuadrcula

dataGridViewAlumno.GridColor = Color.Blue;
// Para indicar la forma de seleccin de las filas

dataGridViewAlumno.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
// Para especificar los colores de primer plano y de fondo de celdas // seleccionadas de DataGridView

dataGridViewAlumno.DefaultCellStyle.SelectionForeColor = Color.Black; dataGridViewAlumno.DefaultCellStyle.SelectionBackColor = Color.Aqua;


// Para establecer estilos de filas alternas mediante programacin

dataGridViewAlumno.RowsDefaultCellStyle.BackColor = Color.Pink; dataGridViewAlumno.AlternatingRowsDefaultCellStyle.BackColor = Color.Purple; // Para especificar la alineacin del texto de celdas de DataGridView dataGridViewAlumno.Columns["ColumnAlumno_id"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; dataGridViewAlumno.Columns["ColumnApellidoNombre"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft; dataGridViewAlumno.Columns["ColumnEvaluacionparcial1"].DefaultCellStyle.Alignme nt = DataGridViewContentAlignment.MiddleRight; dataGridViewAlumno.Columns["ColumnEvaluacionparcial2"].DefaultCellStyle.Alignme nt = DataGridViewContentAlignment.MiddleRight; dataGridViewAlumno.Columns["ColumnPromedioDetrabajo"].DefaultCellStyle.Alignme nt = DataGridViewContentAlignment.MiddleRight; dataGridViewAlumno.Columns["ColumnPromedioFinal"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;

Ing. Javier Alberto Manrique Quionez Pgina 15

Archivos de Datos en C# y reportes con Crystal Report


// Para especificar los colores de primer plano y de fondo de las celdas de DataGridView

dataGridViewAlumno.DefaultCellStyle.ForeColor = Color.Black; dataGridViewAlumno.DefaultCellStyle.BackColor = Color.Beige;

private Alumno getObjetoAlumno() { Alumno oAlumno = new Alumno(); oAlumno.setAlumno_id(int.Parse(textBoxAlumno_id.Text)); oAlumno.setApellidoNombre(textBoxApellidoNombre.Text); oAlumno.setEvaluacionParcial1(double.Parse(textBoxEvaluacionParcial1.Text)); oAlumno.setEvaluacionParcial2(double.Parse(textBoxEvaluacionParcial2.Text)); oAlumno.setPromedioDeTrabajo(double.Parse(textBoxPromedioDeTrabajo.Text)); return oAlumno; } private void setObjetoAlumno(Alumno oAlumno) { textBoxAlumno_id.Text = oAlumno.getAlumno_id() + ""; textBoxApellidoNombre.Text = oAlumno.getApellidoNombre() + ""; textBoxEvaluacionParcial1.Text = oAlumno.getEvaluacionParcial1() + ""; textBoxEvaluacionParcial2.Text = oAlumno.getEvaluacionParcial2() + ""; textBoxPromedioDeTrabajo.Text = oAlumno.getPromedioDeTrabajo() + ""; }
private void limpiarDataGridViewAlumno() { dataGridViewAlumno.Rows.Clear(); } private void actualizarDataGridViewAlumno() { limpiarDataGridViewAlumno(); AlumnoDAO oAlumnDAO = new AlumnoDAO(); List<Alumno> oListAlumno = oAlumnDAO.obtenerDatosEnList(); for (int posicion = 0; posicion < oListAlumno.Count; posicion=posicion+1) { if(oListAlumno[posicion].getAlumno_id()!=0) { dataGridViewAlumno.Rows.Add(oListAlumno[posicion].getAlumno_id(), oListAlumno[posicion], oListAlumno[posicion].getEvaluacionParcial1(), oListAlumno[posicion].getEvaluacionParcial2(), oListAlumno[posicion].getPromedioDeTrabajo(), oListAlumno[posicion].getPromedioFinal()); } } } private void dataGridViewAlumno_MouseClick(object sender, MouseEventArgs e) { if ((e.Clicks == 1) && (dataGridViewAlumno.RowCount>=1)) { int filaSeleccionada = dataGridViewAlumno.CurrentRow.Index; if (filaSeleccionada != -1) { Alumno oAlumnoSeleccionado = (Alumno) dataGridViewAlumno.Rows[filaSeleccionada].Cells[1].Value; setObjetoAlumno(oAlumnoSeleccionado); } } } private void habilitarBotonesABCM(
Boolean cBuscar, Boolean cNuevo, Boolean cGuardar, Boolean cEditar, Boolean cEliminar, Boolean cCancelar, Boolean cSalir)

{ buttonBuscar.Enabled = cBuscar; buttonNuevo.Enabled = cNuevo; buttonGuardar.Enabled = cGuardar; buttonModificar.Enabled = cEditar; buttonEliminar.Enabled = cEliminar; buttonCancelar.Enabled = cCancelar; buttonSalir.Enabled = cSalir; } public void limpiarCajasDeTexto() { textBoxAlumno_id.Text = "";

Ing. Javier Alberto Manrique Quionez Pgina 16

Archivos de Datos en C# y reportes con Crystal Report


textBoxApellidoNombre.Text = ""; textBoxEvaluacionParcial1.Text = ""; textBoxEvaluacionParcial2.Text = ""; textBoxPromedioDeTrabajo.Text = ""; } public void habilitarCajasDeTexto(Boolean editable) { textBoxApellidoNombre.Enabled = editable; textBoxEvaluacionParcial1.Enabled = editable; textBoxEvaluacionParcial2.Enabled = editable; textBoxPromedioDeTrabajo.Enabled = editable; } private void buttonNuevo_Click(object sender, EventArgs e) { dataGridViewAlumno.ClearSelection(); habilitarBotonesABCM(true, false, false, false, false, true, false); action = ABCMAccion.ACTION_INSERTAR; limpiarCajasDeTexto(); textBoxAlumno_id.Enabled = true; textBoxAlumno_id.Focus(); } private void buttonBuscar_Click(object sender, EventArgs e) { if ((textBoxAlumno_id.Text.Length) > 0) { Alumno oAlumno = new Alumno(); AlumnoDAO oAlumnoDAO = new AlumnoDAO(); int busqueda = 0; busqueda = int.Parse(textBoxAlumno_id.Text); oAlumno = oAlumnoDAO.consultarRegistro(busqueda); if (oAlumno == null) { textBoxAlumno_id.Enabled = false; habilitarCajasDeTexto(true); habilitarBotonesABCM(false, false, true, false, false, true, false); } else { MessageBox.Show("El registro ya existe ... !!!"); action = ABCMAccion.NO_ACTION; controladorDeEventosBotonesABCM(); } } else { MessageBox.Show("Ingrese el cdigo del un alumno... !!!"); textBoxAlumno_id.Focus(); } } private void buttonGuardar_Click(object sender, EventArgs e) { if (action == ABCMAccion.ACTION_INSERTAR) { if (MessageBox.Show("Desea guardarlo...?", "Confirme el guardado", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { AlumnoDAO oAlumnoDAO = new AlumnoDAO(); if (oAlumnoDAO.insertarRegistro(getObjetoAlumno())) { action = ABCMAccion.NO_ACTION; controladorDeEventosBotonesABCM(); actualizarDataGridViewAlumno(); buttonNuevo.Focus(); } else { MessageBox.Show("No se pude grabar el registro... !!!"); } } else { limpiarCajasDeTexto(); action = ABCMAccion.NO_ACTION; controladorDeEventosBotonesABCM(); }

Ing. Javier Alberto Manrique Quionez Pgina 17

Archivos de Datos en C# y reportes con Crystal Report


} else {

if (action == ABCMAccion.ACTION_MODIFICAR) { if (MessageBox.Show("Est seguro de guardar las modificaciones?", "Confirme el guardado", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { AlumnoDAO oAlumnoDAO = new AlumnoDAO(); Alumno oAlumno = new Alumno(); if (oAlumnoDAO.modificarRegistro(int.Parse(textBoxAlumno_id.Text), getObjetoAlumno()) ) { MessageBox.Show("Operacin exitosa ... !!!"); action = ABCMAccion.NO_ACTION; controladorDeEventosBotonesABCM(); actualizarDataGridViewAlumno(); } else { MessageBox.Show("No se pudo guardar el registro ...!!!"); } } } } }

private void buttonModificar_Click(object sender, EventArgs e) { if (dataGridViewAlumno.RowCount >= 1) { int filaSeleccionada = dataGridViewAlumno.CurrentRow.Index; if (filaSeleccionada != -1 && (textBoxAlumno_id.Text.Length) > 0) { textBoxApellidoNombre.Focus(); action = ABCMAccion.ACTION_MODIFICAR; controladorDeEventosBotonesABCM(); } else { MessageBox.Show("No se ha seleccionado un registro ...!!!"); } } else { MessageBox.Show("No existen registros ...!!!"); } } private void buttonCancelar_Click(object sender, EventArgs e) { action = ABCMAccion.NO_ACTION; controladorDeEventosBotonesABCM(); buttonNuevo.Focus(); } private void buttonSalir_Click(object sender, EventArgs e) { DialogResult dialogo = MessageBox.Show("Desea cerrar el formulario?", "Cuidado", MessageBoxButtons.YesNo); if (dialogo == DialogResult.Yes) { Dispose(); } } private void controladorDeEventosBotonesABCM() { if (action == ABCMAccion.NO_ACTION) { textBoxAlumno_id.Enabled = false; habilitarCajasDeTexto(false); habilitarBotonesABCM(true, true, false, true, true, false, true); buttonNuevo.Focus(); limpiarCajasDeTexto(); dataGridViewAlumno.ClearSelection(); } else { if (action == ABCMAccion.ACTION_INSERTAR) { limpiarCajasDeTexto(); textBoxAlumno_id.Enabled = true; habilitarBotonesABCM(true, false, true, false, true, true, false);

Ing. Javier Alberto Manrique Quionez Pgina 18

Archivos de Datos en C# y reportes con Crystal Report


} else { if (action == ABCMAccion.ACTION_MODIFICAR) { habilitarCajasDeTexto(true); habilitarBotonesABCM(false, false, true, false, false, true, false); textBoxAlumno_id.Enabled = false; } } } } private void buttonEliminar_Click(object sender, EventArgs e) { if (dataGridViewAlumno.RowCount>=1) { int filaSeleccionada = dataGridViewAlumno.CurrentRow.Index; if (filaSeleccionada != -1 && (textBoxAlumno_id.Text.Length) > 0) {if (MessageBox.Show("Est seguro de eliminar los datos?", "Confirme la eliminacin", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { AlumnoDAO oAlumnoDAO = new AlumnoDAO(); Alumno oAlumno = new Alumno(); int busqueda = int.Parse(textBoxAlumno_id.Text); oAlumno = oAlumnoDAO.consultarRegistro(busqueda); if (oAlumno != null) { if (oAlumnoDAO.eliminarRegistro(busqueda)) { MessageBox.Show("Se elimin el registro ...!!!");
action = ABCMAccion.NO_ACTION; controladorDeEventosBotonesABCM(); actualizarDataGridViewAlumno();

} else } else

{ MessageBox.Show("No }

se

pudo

eliminar

el

registro

...!!!" );

} else { MessageBox.Show("No se pudo eliminar el registro ...!!!"); action = ABCMAccion.NO_ACTION; controladorDeEventosBotonesABCM();

{ MessageBox.Show("No se pudo eliminar el registro ...!!!"); action = ABCMAccion.NO_ACTION; controladorDeEventosBotonesABCM(); }

} } else { MessageBox.Show("Se tiene que seleccionar un registro ...!!!"); } } else { MessageBox.Show("No existen registros ...!!!"); } } private void FormularioABCMyDAOyBD_FormClosing(object sender, FormClosingEventArgs e) { DialogResult dialogo = MessageBox.Show("Desea cerrar el formulario?", "Cuidado", MessageBoxButtons.YesNo); if (dialogo == DialogResult.No) { e.Cancel = true; } else { if (dialogo == DialogResult.No) { e.Cancel = false; } } } }

Ing. Javier Alberto Manrique Quionez Pgina 19

You might also like