Guest User

Untitled

a guest
Jan 12th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 26.23 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using System.Data.SqlClient;
  9. using Microsoft.Office.Interop.Word;
  10. using System.Configuration;
  11.  
  12.  
  13. namespace FVH2011Secretaria
  14. {
  15. public partial class impresion : Form
  16. {
  17. public impresion()
  18. {
  19. InitializeComponent();
  20. }
  21.  
  22. public static int parametroIdAlumno=1;
  23.  
  24.  
  25.  
  26. public static string conectaraesto = ConfigurationManager.ConnectionStrings["FVH2011Secretaria.Properties.Settings.conexiongeneral"].ConnectionString;
  27.  
  28.  
  29. public static SqlConnection cadenaconexion = new SqlConnection(conectaraesto);
  30.  
  31. private void impresion_Load(object sender, EventArgs e)
  32. {
  33. // TODO: This line of code loads data into the 'fvhDataSet.AlumnoCertificado' table. You can move, or remove it, as needed.
  34. this.alumnoCertificadoTableAdapter.Fill(this.fvhDataSet.AlumnoCertificado);
  35.  
  36. }
  37.  
  38. private void alumnoCertificadoBindingNavigatorSaveItem_Click(object sender, EventArgs e)
  39. {
  40. this.Validate();
  41. this.alumnoCertificadoBindingSource.EndEdit();
  42. this.tableAdapterManager.UpdateAll(this.fvhDataSet);
  43.  
  44. }
  45.  
  46. private void button1_Click(object sender, EventArgs e)
  47. {
  48. parametroIdAlumno = Convert.ToInt32(nombreAlumnoComboBox.SelectedValue);
  49. String stringresolucion = " ";
  50. string stringnombrealumno = " ";
  51. string stringnombrecarrera = " ";
  52. string stringnombregrado = " ";
  53. string stringnombrecolegio = " ";
  54. string stringdireccioncolegio = " ";
  55. string stringmatriculacodigo = " ";
  56. string stringlugarmatricula = " ";
  57. DateTime fecharesolucion = DateTime.Today;
  58. Boolean esmatricula = true;
  59. DateTime fechamatricula = DateTime.Today;
  60. DateTime fechacertificado = DateTime.Today;
  61. int numerogradosbasico = 0;
  62. int numerogradosdiversificado = 0;
  63.  
  64.  
  65.  
  66. //Objeto del Tipo Word Application
  67.  
  68. Microsoft.Office.Interop.Word.Application objWordApplication;
  69. //Objeto del Tipo Word Document
  70. Microsoft.Office.Interop.Word.Document objWordDocument;
  71. // Objeto para interactuar con el Interop
  72. Object oMissing = System.Reflection.Missing.Value;
  73.  
  74. //Creamos una instancia de una Aplicación Word.
  75. objWordApplication = new Microsoft.Office.Interop.Word.Application();
  76. //A la aplicación Word, le añadimos un documento.
  77. objWordDocument = objWordApplication.Documents.Add(ref oMissing, ref oMissing, ref oMissing);
  78.  
  79. //Activa el documento recien creado, para escribir en el
  80. objWordDocument.Activate();
  81.  
  82.  
  83. //con esto configuramos el interlineado exacto a 24 pto
  84. objWordApplication.Selection.ParagraphFormat.LineSpacingRule = WdLineSpacing.wdLineSpaceExactly;
  85. objWordApplication.Selection.ParagraphFormat.SpaceAfter = 0;
  86. objWordApplication.Selection.ParagraphFormat.LineSpacing = 24;
  87.  
  88.  
  89.  
  90. //con esto configuramos el tamaño de pagina
  91. objWordApplication.Selection.PageSetup.PageHeight = 1008;
  92. objWordApplication.Selection.PageSetup.PageWidth = 612;
  93.  
  94.  
  95. //configuramos margenes
  96. objWordApplication.Selection.PageSetup.TopMargin = 235.275590551F;
  97. objWordApplication.Selection.PageSetup.LeftMargin = 116.220472441F;
  98. objWordApplication.Selection.PageSetup.RightMargin = 36.850393701F;
  99. objWordApplication.Selection.PageSetup.BottomMargin = 153.070866142F;
  100.  
  101. //establecemos tamaño de letra y tipo de letra
  102. objWordApplication.Selection.Font.Name = "Arial Narrow";
  103. objWordApplication.Selection.Font.Size = 11;
  104.  
  105. //definimos el justificado automatico del texto
  106. objWordApplication.Application.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphJustify;
  107.  
  108. //ejecuto una consulta rapida para saber cuantos grados basicos y de diversificado se ingresaron
  109. cadenaconexion.Open();
  110. SqlCommand numerogrados = new SqlCommand("consultagrado", cadenaconexion);
  111. numerogrados.CommandType = CommandType.StoredProcedure;
  112. numerogrados.Parameters.AddWithValue("@IdAlumno", parametroIdAlumno);
  113. SqlDataReader numerogradosconsulta = numerogrados.ExecuteReader();
  114. while (numerogradosconsulta.Read())
  115. {
  116. if (Convert.ToInt32(numerogradosconsulta["IdGrado"]) < 4)
  117. {
  118. numerogradosbasico++;
  119.  
  120. }
  121. else
  122. {
  123. numerogradosdiversificado++;
  124.  
  125. }
  126.  
  127. }
  128.  
  129. if (cadenaconexion.State == ConnectionState.Open)
  130. {
  131. cadenaconexion.Close();
  132. }
  133.  
  134.  
  135.  
  136.  
  137.  
  138. //generando cajetin
  139. cadenaconexion.Open();
  140. if (cadenaconexion.State == ConnectionState.Open)
  141. {
  142.  
  143.  
  144. SqlCommand comando = new SqlCommand("ConsultaAlumnoCarrera", cadenaconexion);
  145. comando.CommandType = CommandType.StoredProcedure;
  146. comando.Parameters.AddWithValue("@IdAlumno", parametroIdAlumno);
  147. comando.Parameters.AddWithValue("@IdGrado", 4);
  148. SqlDataReader cajetin = comando.ExecuteReader();
  149. while (cajetin.Read())
  150. {
  151. stringnombrealumno = Convert.ToString(cajetin["NombreAlumno"]);
  152. stringnombrecarrera = Convert.ToString(cajetin["nombrecarrera"]);
  153. stringresolucion = Convert.ToString(cajetin["resolucion"]);
  154. fecharesolucion = Convert.ToDateTime(cajetin["fecharesolucion"]);
  155. fechacertificado = Convert.ToDateTime(cajetin["fechacertificado"]);
  156. }
  157.  
  158.  
  159. objWordApplication.Selection.TypeText("La Infrascrita Secretaria del ");
  160. //abrimos BOLD
  161. objWordApplication.Selection.Font.Bold = 1;
  162. objWordApplication.Selection.TypeText("Colegio Pre-Universitario Friedrich \"Von Hayek\"");
  163. //cerramos BOLD
  164. objWordApplication.Selection.Font.Bold = 0;
  165.  
  166.  
  167.  
  168. objWordApplication.Selection.TypeText(" de Quetzaltenango, de la República de Guatemala, Autorizado según Resolución No. ");
  169. objWordApplication.Selection.TypeText(stringresolucion);
  170. objWordApplication.Selection.TypeText(" de fecha ");
  171. objWordApplication.Selection.TypeText(Convert.ToString(fecharesolucion.Day) + "/" + Convert.ToString(fecharesolucion.Month) + "/" + Convert.ToString(fecharesolucion.Year));
  172. objWordApplication.Selection.TypeText(" CERTIFICA que para el efecto ha tenido a la vista el expediente de estudios y la documentación ");
  173. objWordApplication.Selection.TypeText("oficial que ampara los mismos, en donde consta que el(la) alumno(a): ");
  174. objWordApplication.Selection.Font.Bold = 1;
  175. objWordApplication.Selection.TypeText(stringnombrealumno);
  176. objWordApplication.Selection.Font.Bold = 0;
  177. objWordApplication.Selection.TypeText(" cursó y aprobó las asignaturas correspondientes a los ");
  178. objWordApplication.Selection.TypeText(diversos.conversiones.numeroaletra(numerogradosbasico));
  179. objWordApplication.Selection.TypeText(" Grados del Ciclo Básico de Cultura ");
  180. objWordApplication.Selection.TypeText("General y ");
  181. objWordApplication.Selection.TypeText(diversos.conversiones.numeroaletra(numerogradosdiversificado));
  182. objWordApplication.Selection.TypeText(" grados del ciclo de diversificado de la carrera de ");
  183. objWordApplication.Selection.Font.Bold = 1;
  184. objWordApplication.Selection.TypeText(stringnombrecarrera);
  185. objWordApplication.Selection.Font.Bold = 0;
  186. objWordApplication.Selection.TypeText(" habiendo obtenido las siguientes calificaciones: ");
  187. //Indicamos fin de bloque o parrafo.
  188. objWordApplication.Selection.TypeParagraph();
  189. objWordApplication.Selection.TypeText("Ciclo Básico de Cultura General:");
  190. //Indicamos fin de bloque o parrafo.
  191. objWordApplication.Selection.TypeParagraph();
  192.  
  193. if (cadenaconexion.State == ConnectionState.Open)
  194. {
  195. cadenaconexion.Close();
  196. }
  197.  
  198. }
  199.  
  200.  
  201. //generando los detalles del primer grado
  202. //lo hare con un ciclo asi que me falta agregarle un query
  203. //para consulta cuantos años estan ingresados ñañañañaña!
  204.  
  205.  
  206.  
  207. SqlConnection cadenagrado = new SqlConnection(conectaraesto);
  208. cadenagrado.Open();
  209. if (cadenagrado.State == ConnectionState.Open)
  210. {
  211. SqlCommand comandogrados = new SqlCommand("ConsultaGrado", cadenagrado);
  212. comandogrados.CommandType = CommandType.StoredProcedure;
  213. comandogrados.Parameters.AddWithValue("@IdAlumno", parametroIdAlumno);
  214. SqlDataReader grados = comandogrados.ExecuteReader();
  215. while (grados.Read())
  216. {
  217.  
  218. int parametrogrado=Convert.ToInt32 (grados["IdGrado"]);
  219. cadenaconexion.Open();
  220. int idtipocarrera = 0;
  221. if (cadenaconexion.State == ConnectionState.Open)
  222. {
  223. SqlCommand comandotemporal1 = new SqlCommand("EsSemestral", cadenaconexion);
  224. comandotemporal1.CommandType = CommandType.StoredProcedure;
  225. comandotemporal1.Parameters.AddWithValue("@IdAlumno", parametroIdAlumno);
  226. comandotemporal1.Parameters.AddWithValue("@IdGrado", parametrogrado);
  227. SqlDataReader semestre = comandotemporal1.ExecuteReader();
  228. while (semestre.Read())
  229. {
  230. idtipocarrera = Convert.ToInt32(semestre["IdTipoCarrera"]);
  231. stringnombregrado = Convert.ToString(semestre["nombregrado"]);
  232. stringnombrecolegio = Convert.ToString(semestre["nombrecolegio"]);
  233. stringdireccioncolegio = Convert.ToString(semestre["direccioncolegio"]);
  234. esmatricula = Convert.ToBoolean(semestre["esmatricula"]);
  235. if (esmatricula)
  236. {
  237. stringlugarmatricula = Convert.ToString(semestre["lugarmatricula"]);
  238. fechamatricula = Convert.ToDateTime(semestre["fechamatricula"]);
  239. }
  240. stringmatriculacodigo = Convert.ToString(semestre["matriculacodigo"]);
  241.  
  242. }
  243. objWordApplication.Selection.Font.Bold = 1;
  244. objWordApplication.Selection.Font.Underline = WdUnderline.wdUnderlineSingle;
  245. objWordApplication.Selection.TypeText(stringnombregrado + ":");
  246. //Indicamos fin de bloque o parrafo.
  247. objWordApplication.Selection.TypeParagraph();
  248. //cerramos BOLD
  249. objWordApplication.Selection.Font.Bold = 0;
  250. objWordApplication.Selection.Font.Underline = WdUnderline.wdUnderlineNone;
  251. objWordApplication.Selection.TypeText("Cursado en ");
  252. objWordApplication.Selection.TypeText(stringnombrecolegio);
  253. objWordApplication.Selection.TypeText(" de ");
  254. objWordApplication.Selection.TypeText(stringdireccioncolegio);
  255. //agregar condicion de codigo o matricula
  256.  
  257. if (esmatricula)
  258. {
  259. objWordApplication.Selection.TypeText(", con matrícula ");
  260. objWordApplication.Selection.TypeText(stringmatriculacodigo);
  261. objWordApplication.Selection.TypeText(", Extendida en ");
  262. objWordApplication.Selection.TypeText(stringlugarmatricula);
  263. objWordApplication.Selection.TypeText(", con fecha ");
  264. objWordApplication.Selection.TypeText(Convert.ToString(fechamatricula.Day) + "/" + Convert.ToString(fechamatricula.Month) + "/" + Convert.ToString(fechamatricula.Year));
  265.  
  266. }
  267. else
  268. {
  269. objWordApplication.Selection.TypeText(", con código personal ");
  270. objWordApplication.Selection.TypeText(stringmatriculacodigo);
  271.  
  272. }
  273.  
  274. objWordApplication.Selection.TypeText(".");
  275. //Indicamos fin de bloque o parrafo.
  276. objWordApplication.Selection.TypeParagraph();
  277.  
  278. }
  279. if (cadenaconexion.State == ConnectionState.Open)
  280. {
  281. cadenaconexion.Close();
  282. }
  283. //si el grado es anual
  284. if (idtipocarrera == 1)
  285. {
  286. cadenaconexion.Open();
  287. if (cadenaconexion.State == ConnectionState.Open)
  288. {
  289. SqlCommand comando = new SqlCommand("DetalleAnualCurso", cadenaconexion);
  290. comando.CommandType = CommandType.StoredProcedure;
  291. comando.Parameters.AddWithValue("@IdAlumno", parametroIdAlumno);
  292. comando.Parameters.AddWithValue("@IdGrado", parametrogrado);
  293. SqlDataReader cursos = comando.ExecuteReader();
  294. int contador = 1;
  295. //establesco donde se detendra el tab para que quede separado el nombre del curso
  296. //del valor de la no
  297. objWordApplication.Selection.ParagraphFormat.TabStops.Add(243.779527559F, WdTabAlignment.wdAlignTabLeft, WdTabLeader.wdTabLeaderSpaces);
  298. //agrego otro para separar valor de la nota y nota en letras
  299. objWordApplication.Selection.ParagraphFormat.TabStops.Add(262.204724409F, WdTabAlignment.wdAlignTabLeft, WdTabLeader.wdTabLeaderSpaces);
  300. //agrego otro para separar el valor en letras y el titulo de aprobado
  301. objWordApplication.Selection.ParagraphFormat.TabStops.Add(340.157480315F, WdTabAlignment.wdAlignTabLeft, WdTabLeader.wdTabLeaderSpaces);
  302. //y el ultimo para separar titulo aprobado de la fecha 396.850393701
  303. objWordApplication.Selection.ParagraphFormat.TabStops.Add(412F, WdTabAlignment.wdAlignTabLeft, WdTabLeader.wdTabLeaderSpaces);
  304. string nombrecurso = "";
  305. while (cursos.Read())
  306. {
  307.  
  308. objWordApplication.Selection.TypeText(Convert.ToString(contador) + ". ");
  309. nombrecurso = Convert.ToString(cursos["nombrecurso"]);
  310. if (nombrecurso.Length > 40)
  311. {
  312. //cambiamos tamaño de letra para que se justifique
  313. objWordApplication.Selection.Font.Size = 9;
  314. objWordApplication.Selection.TypeText(nombrecurso);
  315. //restablecemos el tamaño
  316. objWordApplication.Selection.Font.Size = 11;
  317. }
  318. else
  319. {
  320. objWordApplication.Selection.TypeText(nombrecurso);
  321.  
  322. }
  323.  
  324. DateTime fecha;
  325. if (Convert.ToInt32(cursos["valornota"]) != 0)
  326. {
  327. objWordApplication.Selection.TypeText("\t" + Convert.ToString(cursos["valornota"]));
  328. objWordApplication.Selection.TypeText("\t" + Convert.ToString(cursos["valorletrasnota"]));
  329. objWordApplication.Selection.TypeText("\t" + "Aprobado");
  330. fecha = Convert.ToDateTime(cursos["fecha"]);
  331. objWordApplication.Selection.TypeText("\t" + Convert.ToString(fecha.Day) + "/" + Convert.ToString(fecha.Month) + "/" + Convert.ToString(fecha.Year));
  332.  
  333. }
  334.  
  335. //Indicamos fin de bloque o parrafo.
  336. objWordApplication.Selection.TypeParagraph();
  337. contador++;
  338. }
  339.  
  340. if (cadenaconexion.State == ConnectionState.Open)
  341. {
  342. cadenaconexion.Close();
  343. }
  344. }
  345. }
  346. else
  347. {
  348. //si el grado es semestral
  349. cadenaconexion.Open();
  350. if (cadenaconexion.State == ConnectionState.Open)
  351. {
  352. SqlCommand comandosemestre= new SqlCommand("ConsultaSemestre",cadenaconexion);
  353. comandosemestre.CommandType=CommandType.StoredProcedure;
  354. comandosemestre.Parameters.AddWithValue("@IdAlumno",parametroIdAlumno);
  355. comandosemestre.Parameters.AddWithValue("@IdGrado",parametrogrado);
  356. SqlDataReader semestres = comandosemestre.ExecuteReader();
  357. while(semestres.Read())
  358. {
  359.  
  360. //ciclicamente consulto detalles de los cursos de cada semestre
  361. //aplico subrayado y negrita
  362. objWordApplication.Selection.Font.Bold = 1;
  363. objWordApplication.Selection.Font.Underline = WdUnderline.wdUnderlineSingle;
  364. objWordApplication.Selection.TypeText(Convert.ToString(semestres["nombresemestre"])+":");
  365. //cerramos subrayado y negrita
  366. objWordApplication.Selection.Font.Bold = 0;
  367. objWordApplication.Selection.Font.Underline = WdUnderline.wdUnderlineNone;
  368. //fin de linea
  369. objWordApplication.Selection.TypeParagraph();
  370. //consultamos entonces los detalles de este semestre:
  371. int parametrosemestre = Convert.ToInt32(semestres["IdSemestre"]);
  372. SqlConnection cadenaconexion2 = new SqlConnection(conectaraesto);
  373. cadenaconexion2.Open();
  374. SqlCommand detallesemestre = new SqlCommand("DetalleSemestralCurso",cadenaconexion2);
  375. detallesemestre.CommandType = CommandType.StoredProcedure;
  376.  
  377. detallesemestre.Parameters.AddWithValue("@Idalumno", parametroIdAlumno);
  378. detallesemestre.Parameters.AddWithValue("@IdGrado",parametrogrado);
  379. detallesemestre.Parameters.AddWithValue("@IdSemestre",parametrosemestre);
  380.  
  381.  
  382. SqlDataReader leerdetallesemestre = detallesemestre.ExecuteReader();
  383. int contador=1;
  384. objWordApplication.Selection.ParagraphFormat.TabStops.Add(243.779527559F, WdTabAlignment.wdAlignTabLeft, WdTabLeader.wdTabLeaderSpaces);
  385. //agrego otro para separar valor de la nota y nota en letras
  386. objWordApplication.Selection.ParagraphFormat.TabStops.Add(262.204724409F, WdTabAlignment.wdAlignTabLeft, WdTabLeader.wdTabLeaderSpaces);
  387. //agrego otro para separar el valor en letras y el titulo de aprobado
  388. objWordApplication.Selection.ParagraphFormat.TabStops.Add(340.157480315F, WdTabAlignment.wdAlignTabLeft, WdTabLeader.wdTabLeaderSpaces);
  389. //y el ultimo para separar titulo aprobado de la fecha 396.850393701
  390. objWordApplication.Selection.ParagraphFormat.TabStops.Add(412F, WdTabAlignment.wdAlignTabLeft, WdTabLeader.wdTabLeaderSpaces);
  391. //iniciamos con la escritura de cada curso
  392. string nombrecurso = "";
  393. while(leerdetallesemestre.Read())
  394. {
  395.  
  396. objWordApplication.Selection.TypeText(Convert.ToString(contador) + ". ");
  397. nombrecurso=Convert.ToString(leerdetallesemestre["nombrecurso"]);
  398. if (nombrecurso.Length > 40)
  399. {
  400. //cambiamos tamaño de letra para que se justifique
  401. objWordApplication.Selection.Font.Size = 9;
  402. objWordApplication.Selection.TypeText(nombrecurso);
  403. //restablecemos el tamaño
  404. objWordApplication.Selection.Font.Size = 11;
  405. }
  406. else
  407. {
  408. objWordApplication.Selection.TypeText(nombrecurso);
  409.  
  410. }
  411.  
  412. DateTime fecha;
  413. if (Convert.ToInt32(leerdetallesemestre["valornota"]) != 0)
  414. {
  415. objWordApplication.Selection.TypeText("\t" + Convert.ToString(leerdetallesemestre["valornota"]));
  416. objWordApplication.Selection.TypeText("\t" + Convert.ToString(leerdetallesemestre["valorletrasnota"]));
  417. objWordApplication.Selection.TypeText("\t" + "Aprobado");
  418. fecha = Convert.ToDateTime(leerdetallesemestre["fecha"]);
  419. objWordApplication.Selection.TypeText("\t" + Convert.ToString(fecha.Day) + "/" + Convert.ToString(fecha.Month) + "/" + Convert.ToString(fecha.Year));
  420.  
  421. }
  422. //Indicamos fin de bloque o parrafo.
  423. objWordApplication.Selection.TypeParagraph();
  424. contador++;
  425. }
  426. if (cadenaconexion2.State == ConnectionState.Open)
  427. {
  428. cadenaconexion2.Close();
  429. }
  430. }
  431.  
  432. if (cadenaconexion.State == ConnectionState.Open)
  433. {
  434. cadenaconexion.Close();
  435. }
  436. }
  437.  
  438.  
  439. }
  440.  
  441. }
  442.  
  443. }
  444. if (cadenagrado.State == ConnectionState.Open)
  445. {
  446. cadenagrado.Close();
  447. }
  448.  
  449.  
  450. objWordApplication.Selection.TypeText("Y a solicitud de la parte interesada y para los usos legales que a la misma convengan, ");
  451. objWordApplication.Selection.TypeText("se extiende la presente en");
  452. objWordApplication.Selection.TypeText(" hojas de papel bond, con los sellos y firmas correspondientes en la ciudad de Quetzaltenango, a los ");
  453. objWordApplication.Selection.TypeText(diversos.conversiones.numeroaletrafecha(Convert.ToInt32(fechacertificado.Day))+" días del mes de ");
  454. objWordApplication.Selection.TypeText(fechacertificado.ToString("MMMM")+" de dos mil ");
  455. objWordApplication.Selection.TypeText(diversos.conversiones.numeroaletrafecha(Convert.ToInt32(fechacertificado.Year))+".");
  456. //2 enters
  457. objWordApplication.Selection.TypeText("\n\n");
  458. objWordApplication.Selection.TypeText("S.B. Leidy Villatoro Vo.Bo. P.E.M. Víctor Manuel Barrios Orozco\n");
  459. objWordApplication.Selection.TypeText(" Secretaria Director");
  460.  
  461.  
  462.  
  463. //Hace visible la Aplicacion para que veas lo que se ha escrito
  464. objWordApplication.Visible = true;
  465. this.Close();
  466. }
  467.  
  468.  
  469.  
  470.  
  471. }
  472. }
Add Comment
Please, Sign In to add comment