TRACK

Este blog nos permite seguir el track al primer proyecto que realizamos en Programacion con Herramientas Visuales, utilizando el lenguaje de C#

martes, 27 de septiembre de 2011

Cambiando las Propiedades de los forms

Esto se lo realizó para acordar con los requerimientos descritos por el Ingeniero, para esto se utilzaron las propiedades ya vistas en clases para realizar que una pantalla sea modal o no modal solo con el cambio en las propiedades, esto se lo realizó ya que no podemos editar la información de otro estudiante simultaneamente sin primero haber terminado la documentación del anterior.

De la misma manera ocurre con el Form Notas en el cuál debemos hacer lo mismo, es decir definir a esta pantalla como no modal y como ya se mencionó anteriormente esto se lo realizó de una manera sencilla y simple al momento de cambiar en la ventana de propiedades según se nos convenga, cabe recalacar también que esto ya fue visto en anteriores clases en el aula.

domingo, 25 de septiembre de 2011

Editando Informacion del Estudiante

PROBLEMA: Uno de los retos del proyecto fue la implementación del botón Guardar dentro del Form Información ya que estos datos almacenados como es "Nombre Preferido", "E-mail", "Teléfono", etc. Todos los datos de los estudiantes deben ser guardados en un nuevo archivo de extensión .txt con la nueva información agregada al alumno seleccionado.
La solución a este detalle fue la creación de un SaveFileDialog el cual debía tener al igual que al momento de leer nuestros archivos un filtro para que me escriba en el formato deseado en nuestro caso el archivo .txt, luego de la implementación del filtro.
A continuación verificamos que botón fue presionado con la ayuda del DialogResult y ya para la escritura de la nueva información utilizamos el objeto de la clase StreamWriter el cuál me permite escribir y para finalizar utilizamos el WriteLine que es un objeto de la clase StreamWriter que me escribe línea por línea.

A continuación el código implementado:

private void btnAceptar_Click(object sender, EventArgs e)
{
SaveFileDialog sfd = new SaveFileDialog();
// Se especifica las extensiones permitidas
sfd.Filter = "Text File|.txt";
// Vacia el nombre del nombre del txt de dialogo
sfd.FileName = String.Empty;
// Define la extension por default en .txt
sfd.DefaultExt = ".txt";

//Determina cual boton ha sido presionado
DialogResult result = sfd.ShowDialog();

//Si se presiona el boton guardar
if (result == DialogResult.OK)
{
//Se crea un objeto de la clase FileStream con el nombre File Name
FileStream fs = new FileStream(sfd.FileName,FileMode.Create);

// Se crea un objeto de la clase Stream Writer que escribe en el stream
StreamWriter wr = new StreamWriter(fs);

//Escriba el contenido de los text box en el stream linea por linea
wr.WriteLine("Nombre:"+txtNombre.Text);
wr.WriteLine("Nombre preferido:"+txtNombrePreferido.Text);
wr.WriteLine("E-mail:"+txtEmail.Text);
wr.WriteLine("Telefono"+txtTelefono.Text);
wr.WriteLine("Curso:"+cmbCurso.Text);
wr.WriteLine("Grupo:"+cmbGrupo.Text);

wr.Close();
}

}

Creación de un nuevo Form para ingreso de datos de los alumnos

Para la nueva creación del nuevo Form no sabíamos como relacionar los datos del estudiante con el nuevo Form de Información.

Este problema nos ayudó a resolverlo el Ing. Mejía con sus conocimenientos, este problema se solucionó cuando definimos o creamos un nuevo campo y una nueva propiedad en el primer Form el cuál nos ayudó a relacionar el primer form con el segundo y de esta manera poder relacionar a los alumnos con el form de Información.

Para la creación del Form Información se ocupó 2 combo box para Curso y Grupo y tres Text Box para Nombre, Nombre Preferido e E-mail.

Para las etiquetas de cada uno de los campos se creo con la ayuda de labels.

Este nuevo form además debe relacionarse con un nuevo form llamado Notas.

sábado, 24 de septiembre de 2011

Utilizando Parse para la conversion de Notas y Restricciones en Notas de los Estudiantes

PROBLEMA: El problemá típico que nos surgía en el momento de trabajar con el nuevo Form Notas, era que cuando estábamos implementando los métodos como es promedio, restricciones de las notas, era que como estamos trabajando con Strings había que ocupar para el cálculo de promedio la suma de las dos notas había que primero realizar una conversión que se lo realizó con Parse.
Con la ayuda del Documento enviado por el Ing. David Mejía (Manipulación de Archivos), este concepto del parse se lo entendió de mejor manera.

PROBLEMA: Otro Problema que se nos presentó era en cierta forma las restricciones y manipulación de eventos que encontramos en el Form Notas como es el caso de que la nota no puede ser mayor a "diez" en los sumo máximo puede llegar a ese valor, otra restricción la nota para llegar al supletorio, la nota para pasar el supletorio.
Fueron en su momento problemas que tuvimos que enfrentarlos, esto se solucionó al momento de implementar correctamente las restricciones con el código que se utiliza para realizar estas acciones como es el IF, ELSE, etc las cuáles son de conocimiento de todos nosostros.




Negrita

Impresión de los Datos de los Estudiantes

Otro de los grandes retos que nos enfrentamos en el proyecto era al momento de implementar el botón de impresión de los datos de los estudiantes. Como este tema no fue visto propiamente en clases fue muy importante la consulta de tutoriales de C#, ejemplos de como se imprime utilizando el código adecuado. A continuación se expone la resolucuión con código implementado a través de la ayuda de internet. Este foro fue de mucha ayuda.


Link: http://social.msdn.microsoft.com/Forums/es/repdeves/thread/80ef3234-7ec1-4abb-96fe-514bd5a26de1


CÓDIGO IMPLEMENTADO EN NUESTRO PROYECTO

[System.Runtime.InteropServices.DllImport("gdi32.dll")]
public static extern long BitBlt(IntPtr hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, int dwRop);
private Bitmap memImag;
private void CaptureScreen()
{
Graphics mygraph = this.CreateGraphics();
Size s = this.Size;
memImag = new Bitmap(s.Width, s.Height, mygraph);
Graphics memGraph = Graphics.FromImage(memImag);
IntPtr dc1 = mygraph.GetHdc();
IntPtr dc2 = memGraph.GetHdc();
BitBlt(dc2, 0, 0, this.ClientRectangle.Width, this.ClientRectangle.Height, dc1, 0, 0, 13369376);
mygraph.ReleaseHdc(dc1);
memGraph.ReleaseHdc(dc2);
}
private void printDocument1_PrintPage(System.Object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.DrawImage(memImag, 0, 0);
}
private void btnImprimir_Click(object sender, EventArgs e)
{
CaptureScreen();
printDocument1.Print();

}

jueves, 22 de septiembre de 2011

Lectura del Archivo Inicial .TXT

Para realizar la lectura del archivo inicial de la lista de alumos que debe ser un formato de archivo .txt, previo para hacer esto se implementó en el programa un filtro el cuál solo me permite leer archivos con el formato especificado, es decir que al momento de la búsqueda para abrir un archivo solo me va a buscar los archivos cuya extensión sea archivos .txt.

Para la lectura del fichero en sí se lo realiza mediante el objeto de la clase Stream como es el StreamReader el cual me va a ir leyendo línea por línea el listado de alumnos del archivo .txt

Agregar información a los alumnos

Buscando solución a los problemas presentados, se encontró una pagina web donde daba solución a ambos, permitiéndonos manejar la extensión de los archivos así como el despliegue en pantalla.

http://www.elguille.info/NET/dotnet/LeerFicheroTexto_asignarloControl.htm



Se busca ahora añadir información para cada alumno     

Problema: No se puede relacionar uno de los alumnos en el combo box para ingresar información nueva de cada uno, se trata de abrir un nuevo frame que nos permita agregar información y guardarla.

martes, 20 de septiembre de 2011

Inicio del proyecto

Se comenzó el proyecto creando un frame que pueda presentar una indicación sobre lo que hace el gestor de notas, así como un boton que nos permita seleccionar el archivo .txt donde esta el nombre de los estudiantes.

Problema: Se presenta un error al intentar usar la propiedad de filtros en el open file dialog, a pesar de que se siguen las convenciones para escribir las características del filtro

Al crear el frame se necesita manejar el ingreso a archivos de tipo .txt, y desplegarlos

Problema:  No se sabe como manejar el tipo de picturebox o lo que se necesite para poder observar la lista de alumnos del archivo.

Se creo el botón de salida del frame.