Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Windows.Forms;
- using System.Data.SqlClient;
- using Microsoft.Office.Interop.Word;
- using System.Configuration;
- namespace FVH2011Secretaria
- {
- public partial class impresion : Form
- {
- public impresion()
- {
- InitializeComponent();
- }
- public static int parametroIdAlumno=1;
- public static string conectaraesto = ConfigurationManager.ConnectionStrings["FVH2011Secretaria.Properties.Settings.conexiongeneral"].ConnectionString;
- public static SqlConnection cadenaconexion = new SqlConnection(conectaraesto);
- private void impresion_Load(object sender, EventArgs e)
- {
- // TODO: This line of code loads data into the 'fvhDataSet.AlumnoCertificado' table. You can move, or remove it, as needed.
- this.alumnoCertificadoTableAdapter.Fill(this.fvhDataSet.AlumnoCertificado);
- }
- private void alumnoCertificadoBindingNavigatorSaveItem_Click(object sender, EventArgs e)
- {
- this.Validate();
- this.alumnoCertificadoBindingSource.EndEdit();
- this.tableAdapterManager.UpdateAll(this.fvhDataSet);
- }
- private void button1_Click(object sender, EventArgs e)
- {
- parametroIdAlumno = Convert.ToInt32(nombreAlumnoComboBox.SelectedValue);
- String stringresolucion = " ";
- string stringnombrealumno = " ";
- string stringnombrecarrera = " ";
- string stringnombregrado = " ";
- string stringnombrecolegio = " ";
- string stringdireccioncolegio = " ";
- string stringmatriculacodigo = " ";
- string stringlugarmatricula = " ";
- DateTime fecharesolucion = DateTime.Today;
- Boolean esmatricula = true;
- DateTime fechamatricula = DateTime.Today;
- DateTime fechacertificado = DateTime.Today;
- int numerogradosbasico = 0;
- int numerogradosdiversificado = 0;
- //Objeto del Tipo Word Application
- Microsoft.Office.Interop.Word.Application objWordApplication;
- //Objeto del Tipo Word Document
- Microsoft.Office.Interop.Word.Document objWordDocument;
- // Objeto para interactuar con el Interop
- Object oMissing = System.Reflection.Missing.Value;
- //Creamos una instancia de una Aplicación Word.
- objWordApplication = new Microsoft.Office.Interop.Word.Application();
- //A la aplicación Word, le añadimos un documento.
- objWordDocument = objWordApplication.Documents.Add(ref oMissing, ref oMissing, ref oMissing);
- //Activa el documento recien creado, para escribir en el
- objWordDocument.Activate();
- //con esto configuramos el interlineado exacto a 24 pto
- objWordApplication.Selection.ParagraphFormat.LineSpacingRule = WdLineSpacing.wdLineSpaceExactly;
- objWordApplication.Selection.ParagraphFormat.SpaceAfter = 0;
- objWordApplication.Selection.ParagraphFormat.LineSpacing = 24;
- //con esto configuramos el tamaño de pagina
- objWordApplication.Selection.PageSetup.PageHeight = 1008;
- objWordApplication.Selection.PageSetup.PageWidth = 612;
- //configuramos margenes
- objWordApplication.Selection.PageSetup.TopMargin = 235.275590551F;
- objWordApplication.Selection.PageSetup.LeftMargin = 116.220472441F;
- objWordApplication.Selection.PageSetup.RightMargin = 36.850393701F;
- objWordApplication.Selection.PageSetup.BottomMargin = 153.070866142F;
- //establecemos tamaño de letra y tipo de letra
- objWordApplication.Selection.Font.Name = "Arial Narrow";
- objWordApplication.Selection.Font.Size = 11;
- //definimos el justificado automatico del texto
- objWordApplication.Application.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphJustify;
- //ejecuto una consulta rapida para saber cuantos grados basicos y de diversificado se ingresaron
- cadenaconexion.Open();
- SqlCommand numerogrados = new SqlCommand("consultagrado", cadenaconexion);
- numerogrados.CommandType = CommandType.StoredProcedure;
- numerogrados.Parameters.AddWithValue("@IdAlumno", parametroIdAlumno);
- SqlDataReader numerogradosconsulta = numerogrados.ExecuteReader();
- while (numerogradosconsulta.Read())
- {
- if (Convert.ToInt32(numerogradosconsulta["IdGrado"]) < 4)
- {
- numerogradosbasico++;
- }
- else
- {
- numerogradosdiversificado++;
- }
- }
- if (cadenaconexion.State == ConnectionState.Open)
- {
- cadenaconexion.Close();
- }
- //generando cajetin
- cadenaconexion.Open();
- if (cadenaconexion.State == ConnectionState.Open)
- {
- SqlCommand comando = new SqlCommand("ConsultaAlumnoCarrera", cadenaconexion);
- comando.CommandType = CommandType.StoredProcedure;
- comando.Parameters.AddWithValue("@IdAlumno", parametroIdAlumno);
- comando.Parameters.AddWithValue("@IdGrado", 4);
- SqlDataReader cajetin = comando.ExecuteReader();
- while (cajetin.Read())
- {
- stringnombrealumno = Convert.ToString(cajetin["NombreAlumno"]);
- stringnombrecarrera = Convert.ToString(cajetin["nombrecarrera"]);
- stringresolucion = Convert.ToString(cajetin["resolucion"]);
- fecharesolucion = Convert.ToDateTime(cajetin["fecharesolucion"]);
- fechacertificado = Convert.ToDateTime(cajetin["fechacertificado"]);
- }
- objWordApplication.Selection.TypeText("La Infrascrita Secretaria del ");
- //abrimos BOLD
- objWordApplication.Selection.Font.Bold = 1;
- objWordApplication.Selection.TypeText("Colegio Pre-Universitario Friedrich \"Von Hayek\"");
- //cerramos BOLD
- objWordApplication.Selection.Font.Bold = 0;
- objWordApplication.Selection.TypeText(" de Quetzaltenango, de la República de Guatemala, Autorizado según Resolución No. ");
- objWordApplication.Selection.TypeText(stringresolucion);
- objWordApplication.Selection.TypeText(" de fecha ");
- objWordApplication.Selection.TypeText(Convert.ToString(fecharesolucion.Day) + "/" + Convert.ToString(fecharesolucion.Month) + "/" + Convert.ToString(fecharesolucion.Year));
- objWordApplication.Selection.TypeText(" CERTIFICA que para el efecto ha tenido a la vista el expediente de estudios y la documentación ");
- objWordApplication.Selection.TypeText("oficial que ampara los mismos, en donde consta que el(la) alumno(a): ");
- objWordApplication.Selection.Font.Bold = 1;
- objWordApplication.Selection.TypeText(stringnombrealumno);
- objWordApplication.Selection.Font.Bold = 0;
- objWordApplication.Selection.TypeText(" cursó y aprobó las asignaturas correspondientes a los ");
- objWordApplication.Selection.TypeText(diversos.conversiones.numeroaletra(numerogradosbasico));
- objWordApplication.Selection.TypeText(" Grados del Ciclo Básico de Cultura ");
- objWordApplication.Selection.TypeText("General y ");
- objWordApplication.Selection.TypeText(diversos.conversiones.numeroaletra(numerogradosdiversificado));
- objWordApplication.Selection.TypeText(" grados del ciclo de diversificado de la carrera de ");
- objWordApplication.Selection.Font.Bold = 1;
- objWordApplication.Selection.TypeText(stringnombrecarrera);
- objWordApplication.Selection.Font.Bold = 0;
- objWordApplication.Selection.TypeText(" habiendo obtenido las siguientes calificaciones: ");
- //Indicamos fin de bloque o parrafo.
- objWordApplication.Selection.TypeParagraph();
- objWordApplication.Selection.TypeText("Ciclo Básico de Cultura General:");
- //Indicamos fin de bloque o parrafo.
- objWordApplication.Selection.TypeParagraph();
- if (cadenaconexion.State == ConnectionState.Open)
- {
- cadenaconexion.Close();
- }
- }
- //generando los detalles del primer grado
- //lo hare con un ciclo asi que me falta agregarle un query
- //para consulta cuantos años estan ingresados ñañañañaña!
- SqlConnection cadenagrado = new SqlConnection(conectaraesto);
- cadenagrado.Open();
- if (cadenagrado.State == ConnectionState.Open)
- {
- SqlCommand comandogrados = new SqlCommand("ConsultaGrado", cadenagrado);
- comandogrados.CommandType = CommandType.StoredProcedure;
- comandogrados.Parameters.AddWithValue("@IdAlumno", parametroIdAlumno);
- SqlDataReader grados = comandogrados.ExecuteReader();
- while (grados.Read())
- {
- int parametrogrado=Convert.ToInt32 (grados["IdGrado"]);
- cadenaconexion.Open();
- int idtipocarrera = 0;
- if (cadenaconexion.State == ConnectionState.Open)
- {
- SqlCommand comandotemporal1 = new SqlCommand("EsSemestral", cadenaconexion);
- comandotemporal1.CommandType = CommandType.StoredProcedure;
- comandotemporal1.Parameters.AddWithValue("@IdAlumno", parametroIdAlumno);
- comandotemporal1.Parameters.AddWithValue("@IdGrado", parametrogrado);
- SqlDataReader semestre = comandotemporal1.ExecuteReader();
- while (semestre.Read())
- {
- idtipocarrera = Convert.ToInt32(semestre["IdTipoCarrera"]);
- stringnombregrado = Convert.ToString(semestre["nombregrado"]);
- stringnombrecolegio = Convert.ToString(semestre["nombrecolegio"]);
- stringdireccioncolegio = Convert.ToString(semestre["direccioncolegio"]);
- esmatricula = Convert.ToBoolean(semestre["esmatricula"]);
- if (esmatricula)
- {
- stringlugarmatricula = Convert.ToString(semestre["lugarmatricula"]);
- fechamatricula = Convert.ToDateTime(semestre["fechamatricula"]);
- }
- stringmatriculacodigo = Convert.ToString(semestre["matriculacodigo"]);
- }
- objWordApplication.Selection.Font.Bold = 1;
- objWordApplication.Selection.Font.Underline = WdUnderline.wdUnderlineSingle;
- objWordApplication.Selection.TypeText(stringnombregrado + ":");
- //Indicamos fin de bloque o parrafo.
- objWordApplication.Selection.TypeParagraph();
- //cerramos BOLD
- objWordApplication.Selection.Font.Bold = 0;
- objWordApplication.Selection.Font.Underline = WdUnderline.wdUnderlineNone;
- objWordApplication.Selection.TypeText("Cursado en ");
- objWordApplication.Selection.TypeText(stringnombrecolegio);
- objWordApplication.Selection.TypeText(" de ");
- objWordApplication.Selection.TypeText(stringdireccioncolegio);
- //agregar condicion de codigo o matricula
- if (esmatricula)
- {
- objWordApplication.Selection.TypeText(", con matrícula ");
- objWordApplication.Selection.TypeText(stringmatriculacodigo);
- objWordApplication.Selection.TypeText(", Extendida en ");
- objWordApplication.Selection.TypeText(stringlugarmatricula);
- objWordApplication.Selection.TypeText(", con fecha ");
- objWordApplication.Selection.TypeText(Convert.ToString(fechamatricula.Day) + "/" + Convert.ToString(fechamatricula.Month) + "/" + Convert.ToString(fechamatricula.Year));
- }
- else
- {
- objWordApplication.Selection.TypeText(", con código personal ");
- objWordApplication.Selection.TypeText(stringmatriculacodigo);
- }
- objWordApplication.Selection.TypeText(".");
- //Indicamos fin de bloque o parrafo.
- objWordApplication.Selection.TypeParagraph();
- }
- if (cadenaconexion.State == ConnectionState.Open)
- {
- cadenaconexion.Close();
- }
- //si el grado es anual
- if (idtipocarrera == 1)
- {
- cadenaconexion.Open();
- if (cadenaconexion.State == ConnectionState.Open)
- {
- SqlCommand comando = new SqlCommand("DetalleAnualCurso", cadenaconexion);
- comando.CommandType = CommandType.StoredProcedure;
- comando.Parameters.AddWithValue("@IdAlumno", parametroIdAlumno);
- comando.Parameters.AddWithValue("@IdGrado", parametrogrado);
- SqlDataReader cursos = comando.ExecuteReader();
- int contador = 1;
- //establesco donde se detendra el tab para que quede separado el nombre del curso
- //del valor de la no
- objWordApplication.Selection.ParagraphFormat.TabStops.Add(243.779527559F, WdTabAlignment.wdAlignTabLeft, WdTabLeader.wdTabLeaderSpaces);
- //agrego otro para separar valor de la nota y nota en letras
- objWordApplication.Selection.ParagraphFormat.TabStops.Add(262.204724409F, WdTabAlignment.wdAlignTabLeft, WdTabLeader.wdTabLeaderSpaces);
- //agrego otro para separar el valor en letras y el titulo de aprobado
- objWordApplication.Selection.ParagraphFormat.TabStops.Add(340.157480315F, WdTabAlignment.wdAlignTabLeft, WdTabLeader.wdTabLeaderSpaces);
- //y el ultimo para separar titulo aprobado de la fecha 396.850393701
- objWordApplication.Selection.ParagraphFormat.TabStops.Add(412F, WdTabAlignment.wdAlignTabLeft, WdTabLeader.wdTabLeaderSpaces);
- string nombrecurso = "";
- while (cursos.Read())
- {
- objWordApplication.Selection.TypeText(Convert.ToString(contador) + ". ");
- nombrecurso = Convert.ToString(cursos["nombrecurso"]);
- if (nombrecurso.Length > 40)
- {
- //cambiamos tamaño de letra para que se justifique
- objWordApplication.Selection.Font.Size = 9;
- objWordApplication.Selection.TypeText(nombrecurso);
- //restablecemos el tamaño
- objWordApplication.Selection.Font.Size = 11;
- }
- else
- {
- objWordApplication.Selection.TypeText(nombrecurso);
- }
- DateTime fecha;
- if (Convert.ToInt32(cursos["valornota"]) != 0)
- {
- objWordApplication.Selection.TypeText("\t" + Convert.ToString(cursos["valornota"]));
- objWordApplication.Selection.TypeText("\t" + Convert.ToString(cursos["valorletrasnota"]));
- objWordApplication.Selection.TypeText("\t" + "Aprobado");
- fecha = Convert.ToDateTime(cursos["fecha"]);
- objWordApplication.Selection.TypeText("\t" + Convert.ToString(fecha.Day) + "/" + Convert.ToString(fecha.Month) + "/" + Convert.ToString(fecha.Year));
- }
- //Indicamos fin de bloque o parrafo.
- objWordApplication.Selection.TypeParagraph();
- contador++;
- }
- if (cadenaconexion.State == ConnectionState.Open)
- {
- cadenaconexion.Close();
- }
- }
- }
- else
- {
- //si el grado es semestral
- cadenaconexion.Open();
- if (cadenaconexion.State == ConnectionState.Open)
- {
- SqlCommand comandosemestre= new SqlCommand("ConsultaSemestre",cadenaconexion);
- comandosemestre.CommandType=CommandType.StoredProcedure;
- comandosemestre.Parameters.AddWithValue("@IdAlumno",parametroIdAlumno);
- comandosemestre.Parameters.AddWithValue("@IdGrado",parametrogrado);
- SqlDataReader semestres = comandosemestre.ExecuteReader();
- while(semestres.Read())
- {
- //ciclicamente consulto detalles de los cursos de cada semestre
- //aplico subrayado y negrita
- objWordApplication.Selection.Font.Bold = 1;
- objWordApplication.Selection.Font.Underline = WdUnderline.wdUnderlineSingle;
- objWordApplication.Selection.TypeText(Convert.ToString(semestres["nombresemestre"])+":");
- //cerramos subrayado y negrita
- objWordApplication.Selection.Font.Bold = 0;
- objWordApplication.Selection.Font.Underline = WdUnderline.wdUnderlineNone;
- //fin de linea
- objWordApplication.Selection.TypeParagraph();
- //consultamos entonces los detalles de este semestre:
- int parametrosemestre = Convert.ToInt32(semestres["IdSemestre"]);
- SqlConnection cadenaconexion2 = new SqlConnection(conectaraesto);
- cadenaconexion2.Open();
- SqlCommand detallesemestre = new SqlCommand("DetalleSemestralCurso",cadenaconexion2);
- detallesemestre.CommandType = CommandType.StoredProcedure;
- detallesemestre.Parameters.AddWithValue("@Idalumno", parametroIdAlumno);
- detallesemestre.Parameters.AddWithValue("@IdGrado",parametrogrado);
- detallesemestre.Parameters.AddWithValue("@IdSemestre",parametrosemestre);
- SqlDataReader leerdetallesemestre = detallesemestre.ExecuteReader();
- int contador=1;
- objWordApplication.Selection.ParagraphFormat.TabStops.Add(243.779527559F, WdTabAlignment.wdAlignTabLeft, WdTabLeader.wdTabLeaderSpaces);
- //agrego otro para separar valor de la nota y nota en letras
- objWordApplication.Selection.ParagraphFormat.TabStops.Add(262.204724409F, WdTabAlignment.wdAlignTabLeft, WdTabLeader.wdTabLeaderSpaces);
- //agrego otro para separar el valor en letras y el titulo de aprobado
- objWordApplication.Selection.ParagraphFormat.TabStops.Add(340.157480315F, WdTabAlignment.wdAlignTabLeft, WdTabLeader.wdTabLeaderSpaces);
- //y el ultimo para separar titulo aprobado de la fecha 396.850393701
- objWordApplication.Selection.ParagraphFormat.TabStops.Add(412F, WdTabAlignment.wdAlignTabLeft, WdTabLeader.wdTabLeaderSpaces);
- //iniciamos con la escritura de cada curso
- string nombrecurso = "";
- while(leerdetallesemestre.Read())
- {
- objWordApplication.Selection.TypeText(Convert.ToString(contador) + ". ");
- nombrecurso=Convert.ToString(leerdetallesemestre["nombrecurso"]);
- if (nombrecurso.Length > 40)
- {
- //cambiamos tamaño de letra para que se justifique
- objWordApplication.Selection.Font.Size = 9;
- objWordApplication.Selection.TypeText(nombrecurso);
- //restablecemos el tamaño
- objWordApplication.Selection.Font.Size = 11;
- }
- else
- {
- objWordApplication.Selection.TypeText(nombrecurso);
- }
- DateTime fecha;
- if (Convert.ToInt32(leerdetallesemestre["valornota"]) != 0)
- {
- objWordApplication.Selection.TypeText("\t" + Convert.ToString(leerdetallesemestre["valornota"]));
- objWordApplication.Selection.TypeText("\t" + Convert.ToString(leerdetallesemestre["valorletrasnota"]));
- objWordApplication.Selection.TypeText("\t" + "Aprobado");
- fecha = Convert.ToDateTime(leerdetallesemestre["fecha"]);
- objWordApplication.Selection.TypeText("\t" + Convert.ToString(fecha.Day) + "/" + Convert.ToString(fecha.Month) + "/" + Convert.ToString(fecha.Year));
- }
- //Indicamos fin de bloque o parrafo.
- objWordApplication.Selection.TypeParagraph();
- contador++;
- }
- if (cadenaconexion2.State == ConnectionState.Open)
- {
- cadenaconexion2.Close();
- }
- }
- if (cadenaconexion.State == ConnectionState.Open)
- {
- cadenaconexion.Close();
- }
- }
- }
- }
- }
- if (cadenagrado.State == ConnectionState.Open)
- {
- cadenagrado.Close();
- }
- objWordApplication.Selection.TypeText("Y a solicitud de la parte interesada y para los usos legales que a la misma convengan, ");
- objWordApplication.Selection.TypeText("se extiende la presente en");
- objWordApplication.Selection.TypeText(" hojas de papel bond, con los sellos y firmas correspondientes en la ciudad de Quetzaltenango, a los ");
- objWordApplication.Selection.TypeText(diversos.conversiones.numeroaletrafecha(Convert.ToInt32(fechacertificado.Day))+" días del mes de ");
- objWordApplication.Selection.TypeText(fechacertificado.ToString("MMMM")+" de dos mil ");
- objWordApplication.Selection.TypeText(diversos.conversiones.numeroaletrafecha(Convert.ToInt32(fechacertificado.Year))+".");
- //2 enters
- objWordApplication.Selection.TypeText("\n\n");
- objWordApplication.Selection.TypeText("S.B. Leidy Villatoro Vo.Bo. P.E.M. Víctor Manuel Barrios Orozco\n");
- objWordApplication.Selection.TypeText(" Secretaria Director");
- //Hace visible la Aplicacion para que veas lo que se ha escrito
- objWordApplication.Visible = true;
- this.Close();
- }
- }
- }
Add Comment
Please, Sign In to add comment