Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package sipl.recursos; import com.itextpdf.text.Anchor; import com.itextpdf.text.BadElementException; import com.itextpdf.text.Chapter; import com.itextpdf.text.Chunk; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Element; import com.itextpdf.text.Font; import com.itextpdf.text.Image; import com.itextpdf.text.Paragraph; import com.itextpdf.text.Phrase; import com.itextpdf.text.Section; import com.itextpdf.text.pdf.PdfPCell; import com.itextpdf.text.pdf.PdfPTable; import com.itextpdf.text.pdf.PdfWriter; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.net.MalformedURLException; import java.sql.SQLException; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import sipl.db.Conexion; import sipl.db.danhoDAO; import sipl.db.materialDAO; import sipl.db.multaDAO; import sipl.db.prestamoDAO; import sipl.db.tipo_materialDAO; import sipl.db.usuarioDAO; import sipl.dominio.Danho; import sipl.dominio.Material; import sipl.dominio.Multa; import sipl.dominio.Prestamo; import sipl.dominio.Tipo_material; import sipl.dominio.Usuario; /** * * @author WM */ public class GenerarPDFGrafica { private final Conexion con = new Conexion(); private final materialDAO matDAO = new materialDAO(con); private final prestamoDAO preDAO = new prestamoDAO(con); private final tipo_materialDAO tipDAO = new tipo_materialDAO(con); private final multaDAO mulDAO = new multaDAO(con); private final danhoDAO danDAO = new danhoDAO(con); private final usuarioDAO usuDAO = new usuarioDAO(con); private String FILE = ""; private final Font catFont = new Font(Font.FontFamily.TIMES_ROMAN, 18, Font.BOLD); private final Font subFont = new Font(Font.FontFamily.TIMES_ROMAN, 16, Font.BOLD); private final Font smallBold = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD); private String Titulo = ""; private Usuario user; private String direc = ""; private String fecha1 = ""; private String fecha2 = ""; private String rango = ""; private String imgG = ""; public void generarPDF(String titulo, String imagen, Usuario usu, String dir, String Fecha1, String Fecha2, String Rango, String Filex) throws BadElementException, IOException { FILE = ""; Titulo = ""; direc = ""; fecha1 = ""; fecha2 = ""; rango = ""; imgG = ""; imgG = imagen; fecha1 = Fecha1; fecha2 = Fecha2; rango = Rango; user = usu; direc += dir; Titulo = titulo; FILE = Filex; try { Document document = new Document(); FileOutputStream file = new FileOutputStream(dir + "PDF//" + FILE); PdfWriter.getInstance(document, file); document.open(); document.setMargins(10, 10, 10, 10); addMetaData(document); addTitlePage(document); addContent(document); document.close(); } catch (FileNotFoundException | DocumentException e) { } try { con.Close_DB(); } catch (SQLException e) { System.out.print("No cerr"); } } private void addMetaData(Document document) { document.addTitle(Titulo); document.addSubject("Grfica"); document.addKeywords("Java, Grfica, PDF, iText"); document.addAuthor("Wilmar Gonzlez - Sandra Vera"); document.addCreator("SIPL"); } private void addTitlePage(Document document) throws DocumentException, MalformedURLException, BadElementException, IOException { Paragraph preface = new Paragraph(); addEmptyLine(preface, 1); preface.add(new Paragraph(Titulo, catFont)); addEmptyLine(preface, 1); preface.add(new Paragraph( "Reporte generado por: " + user.getNombre() + " " + user.getApellido() + ", " + new Date(), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ smallBold)); addEmptyLine(preface, 3); preface.add(new Paragraph("Este documento es creado a peticin del autor", smallBold)); addEmptyLine(preface, 6); Image img = Image.getInstance(direc + "img//logo_unab.jpg"); img.scaleAbsolute(70, 100); img.setAlignment(Image.ALIGN_CENTER); Chunk c = new Chunk(img, 0, 0); preface.add(c); document.add(preface); document.newPage(); Paragraph preface1 = new Paragraph(); preface1.add(new Paragraph("Grfica", smallBold)); addEmptyLine(preface1, 20); img = Image.getInstance(imgG); img.scaleAbsolute(400, 300); img.setAlignment(Image.ALIGN_CENTER); c = new Chunk(img, 0, 0); preface1.add(c); document.add(preface1); document.newPage(); } private void addContent(Document document) throws DocumentException { Anchor anchor = new Anchor(Titulo, catFont); anchor.setName(Titulo); Chapter catPart = new Chapter(new Paragraph(anchor), 1); Paragraph subPara = new Paragraph("", subFont); Section subCatPart = catPart.addSection(subPara); createTable(subCatPart); String p = Titulo.charAt(0) + ""; if (p.equals("M")) { subPara = new Paragraph("", subFont); subCatPart = catPart.addSection(subPara); createTable2(subCatPart); } document.add(catPart); } private void createTable(Section subCatPart) throws BadElementException { String p = Titulo.charAt(0) + ""; if (p.equals("P")) { ArrayList<Prestamo> prestamos = preDAO.getRangoFecha_prestamo(fecha1, fecha2); ArrayList<Material> materiales = matDAO.getMateriales(); if (rango.equals("Anho")) { int T[][] = new int[materiales.size()][2]; for (int i = 0; i < materiales.size(); i++) { T[i][0] = materiales.get(i).getCodigo(); T[i][1] = 0; } for (int i = 0; i < prestamos.size(); i++) { String[] P = prestamos.get(i).getMat().split(";"); for (String P1 : P) { for (int k = 0; k < materiales.size(); k++) { int c; if (T[k][0] == Integer.parseInt(P1)) { c = T[k][1]; c++; T[k][1] = c; k = materiales.size(); } } } } PdfPTable table = new PdfPTable(2); PdfPCell c1 = new PdfPCell(new Phrase("Categora Material")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Cantidad Material")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); table.setHeaderRows(1); if (prestamos.isEmpty()) { table.addCell("No hay prstamos en ese rango de fecha"); } else { ArrayList<Tipo_material> tm = tipDAO.getTipo_material(); int TM[][] = new int[tm.size()][2]; for (int i = 0; i < tm.size(); i++) { TM[i][0] = tm.get(i).getId(); TM[i][1] = 0; } for (int i = 0; i < T.length; i++) { int c; Material mat = matDAO.getMaterial(T[i][0]); for (int j = 0; j < TM.length; j++) { if (TM[j][0] == mat.getTipo_mat().getId()) { c = TM[j][1]; c += T[i][1]; TM[j][1] = c; j = tm.size(); } } } for (int i = 0; i < TM.length; i++) { if (TM[i][1] > 0) { Tipo_material tip = tipDAO.getTipo_material(TM[i][0]); table.addCell("" + tip.getNombre()); table.addCell("" + TM[i][1]); } } } table.addCell(""); table.addCell(""); table.addCell("Ao"); table.addCell("Cantidad Prstamos"); String[] f1 = fecha1.split("/"); int a = Integer.parseInt(f1[0]); String[] f2 = fecha2.split("/"); int b = Integer.parseInt(f2[0]); int dif = b - a; dif++; int tamY[][] = new int[dif][2]; for (int i = 0; i < dif; i++) { tamY[i][0] = a; a++; } for (int j = 0; j < dif; j++) { tamY[j][1] = 0; } for (int k = 0; k < prestamos.size(); k++) { int t = prestamos.get(k).getFecha_prestamo().get(Calendar.YEAR); for (int l = 0; l < dif; l++) { if (tamY[l][0] == t) { int cant = tamY[l][1]; cant++; tamY[l][1] = cant; } } } for (int i = 0; i < dif; i++) { if (tamY[i][1] > 0) { table.addCell("" + tamY[i][0]); table.addCell("" + tamY[i][1]); } } subCatPart.add(table); } else if (rango.equals("Mes")) { int T[][] = new int[materiales.size()][2]; for (int i = 0; i < materiales.size(); i++) { T[i][0] = materiales.get(i).getCodigo(); T[i][1] = 0; } for (int i = 0; i < prestamos.size(); i++) { String[] P = prestamos.get(i).getMat().split(";"); for (String P1 : P) { for (int k = 0; k < materiales.size(); k++) { int c; if (T[k][0] == Integer.parseInt(P1)) { c = T[k][1]; c++; T[k][1] = c; k = materiales.size(); } } } } PdfPTable table = new PdfPTable(2); PdfPCell c1 = new PdfPCell(new Phrase("Categora Material")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Cantidad Material")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); table.setHeaderRows(1); if (prestamos.isEmpty()) { table.addCell("No hay prstamos en ese rango de fecha"); } else { ArrayList<Tipo_material> tm = tipDAO.getTipo_material(); int TM[][] = new int[tm.size()][2]; for (int i = 0; i < tm.size(); i++) { TM[i][0] = tm.get(i).getId(); TM[i][1] = 0; } for (int i = 0; i < T.length; i++) { int c; Material mat = matDAO.getMaterial(T[i][0]); for (int j = 0; j < TM.length; j++) { if (TM[j][0] == mat.getTipo_mat().getId()) { c = TM[j][1]; c += T[i][1]; TM[j][1] = c; j = tm.size(); } } } for (int i = 0; i < TM.length; i++) { if (TM[i][1] > 0) { Tipo_material tip = tipDAO.getTipo_material(TM[i][0]); table.addCell("" + tip.getNombre()); table.addCell("" + TM[i][1]); } } } table.addCell(""); table.addCell(""); table.addCell("Mes"); table.addCell("Cantidad Prstamos"); String[] meses = { "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre" }; int tamY[][] = new int[12][2]; for (int i = 0; i < 12; i++) { tamY[i][0] = i; } for (int j = 0; j < 12; j++) { tamY[j][1] = 0; } for (int k = 0; k < prestamos.size(); k++) { int t = prestamos.get(k).getFecha_prestamo().get(Calendar.MONTH); for (int l = 0; l < 12; l++) { if (tamY[l][0] == t) { int cant = tamY[l][1]; cant++; tamY[l][1] = cant; } } } for (int i = 0; i < 12; i++) { if (tamY[i][1] > 0) { table.addCell("" + meses[i]); table.addCell("" + tamY[i][1]); } } subCatPart.add(table); } else if (rango.equals("Dia")) { int T[][] = new int[materiales.size()][2]; for (int i = 0; i < materiales.size(); i++) { T[i][0] = materiales.get(i).getCodigo(); T[i][1] = 0; } for (int i = 0; i < prestamos.size(); i++) { String[] P = prestamos.get(i).getMat().split(";"); for (String P1 : P) { for (int k = 0; k < materiales.size(); k++) { int c; if (T[k][0] == Integer.parseInt(P1)) { c = T[k][1]; c++; T[k][1] = c; k = materiales.size(); } } } } PdfPTable table = new PdfPTable(2); PdfPCell c1 = new PdfPCell(new Phrase("Categora Material")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Cantidad Material")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); table.setHeaderRows(1); if (prestamos.isEmpty()) { table.addCell("No hay prstamos en ese rango de fecha"); } else { ArrayList<Tipo_material> tm = tipDAO.getTipo_material(); int TM[][] = new int[tm.size()][2]; for (int i = 0; i < tm.size(); i++) { TM[i][0] = tm.get(i).getId(); TM[i][1] = 0; } for (int i = 0; i < T.length; i++) { int c; Material mat = matDAO.getMaterial(T[i][0]); for (int j = 0; j < TM.length; j++) { if (TM[j][0] == mat.getTipo_mat().getId()) { c = TM[j][1]; c += T[i][1]; TM[j][1] = c; j = tm.size(); } } } for (int i = 0; i < TM.length; i++) { if (TM[i][1] > 0) { Tipo_material tip = tipDAO.getTipo_material(TM[i][0]); table.addCell("" + tip.getNombre()); table.addCell("" + TM[i][1]); } } } table.addCell(""); table.addCell(""); table.addCell("Dia"); table.addCell("Cantidad Prstamos"); int tamY[][] = new int[32][2]; for (int i = 0; i < 32; i++) { tamY[i][0] = i; } for (int j = 0; j < 32; j++) { tamY[j][1] = 0; } for (int k = 0; k < prestamos.size(); k++) { int t = prestamos.get(k).getFecha_prestamo().get(Calendar.DAY_OF_MONTH); for (int l = 0; l < 32; l++) { if (tamY[l][0] == t) { int cant = tamY[l][1]; cant++; tamY[l][1] = cant; } } } for (int i = 0; i < 32; i++) { if (tamY[i][1] > 0) { table.addCell("" + i); table.addCell("" + tamY[i][1]); } } subCatPart.add(table); } else if (rango.equals("Hora")) { int T[][] = new int[materiales.size()][2]; for (int i = 0; i < materiales.size(); i++) { T[i][0] = materiales.get(i).getCodigo(); T[i][1] = 0; } for (int i = 0; i < prestamos.size(); i++) { String[] P = prestamos.get(i).getMat().split(";"); for (String P1 : P) { for (int k = 0; k < materiales.size(); k++) { int c; if (T[k][0] == Integer.parseInt(P1)) { c = T[k][1]; c++; T[k][1] = c; k = materiales.size(); } } } } PdfPTable table = new PdfPTable(2); PdfPCell c1 = new PdfPCell(new Phrase("Categora Material")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Cantidad Material")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); table.setHeaderRows(1); if (prestamos.isEmpty()) { table.addCell("No hay prstamos en ese rango de fecha"); } else { ArrayList<Tipo_material> tm = tipDAO.getTipo_material(); int TM[][] = new int[tm.size()][2]; for (int i = 0; i < tm.size(); i++) { TM[i][0] = tm.get(i).getId(); TM[i][1] = 0; } for (int i = 0; i < T.length; i++) { int c; Material mat = matDAO.getMaterial(T[i][0]); for (int j = 0; j < TM.length; j++) { if (TM[j][0] == mat.getTipo_mat().getId()) { c = TM[j][1]; c += T[i][1]; TM[j][1] = c; j = tm.size(); } } } for (int i = 0; i < TM.length; i++) { if (TM[i][1] > 0) { Tipo_material tip = tipDAO.getTipo_material(TM[i][0]); table.addCell("" + tip.getNombre()); table.addCell("" + TM[i][1]); } } } table.addCell(""); table.addCell(""); table.addCell("Hora"); table.addCell("Cantidad Prstamos"); int tamY[][] = new int[24][2]; for (int i = 0; i < 24; i++) { tamY[i][0] = i; } for (int j = 0; j < 24; j++) { tamY[j][1] = 0; } for (int k = 0; k < prestamos.size(); k++) { int t = prestamos.get(k).getFecha_prestamo().get(Calendar.HOUR_OF_DAY); for (int l = 0; l < 24; l++) { if (tamY[l][0] == t) { int cant = tamY[l][1]; cant++; tamY[l][1] = cant; } } } for (int i = 0; i < 24; i++) { if (tamY[i][1] > 0) { table.addCell("" + i); table.addCell("" + tamY[i][1]); } } subCatPart.add(table); } } else if (p.equals("M")) { ArrayList<Multa> multas = mulDAO.getRangoFecha_multa(fecha1, fecha2); if (rango.equals("Anho")) { PdfPTable table = new PdfPTable(2); PdfPCell c1 = new PdfPCell(new Phrase("Ao")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Cantidad Multas")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); table.setHeaderRows(1); if (multas.isEmpty()) { table.addCell("No hay multas en ese rango de fecha"); } else { String[] f1 = fecha1.split("/"); int a = Integer.parseInt(f1[0]); String[] f2 = fecha2.split("/"); int b = Integer.parseInt(f2[0]); int dif = b - a; dif++; int tamY[][] = new int[dif][2]; int u = a; for (int i = 0; i < dif; i++) { tamY[i][0] = u; u++; } for (int j = 0; j < dif; j++) { tamY[j][1] = 0; } for (int k = 0; k < multas.size(); k++) { int t = multas.get(k).getFecha_multa().get(Calendar.YEAR); for (int l = 0; l < dif; l++) { if (tamY[l][0] == t) { int cant = tamY[l][1]; cant++; tamY[l][1] = cant; } } } for (int i = 0; i < dif; i++) { if (tamY[i][1] > 0) { table.addCell("" + tamY[i][0]); table.addCell("" + tamY[i][1]); } } } subCatPart.add(table); } else if (rango.equals("Mes")) { PdfPTable table = new PdfPTable(2); PdfPCell c1 = new PdfPCell(new Phrase("Mes")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Cantidad Multas")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); table.setHeaderRows(1); if (multas.isEmpty()) { table.addCell("No hay multas en ese rango de fecha"); } else { String[] meses = { "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre" }; int tamY[][] = new int[12][2]; for (int i = 0; i < 12; i++) { tamY[i][0] = i; } for (int j = 0; j < 12; j++) { tamY[j][1] = 0; } for (int k = 0; k < multas.size(); k++) { int t = multas.get(k).getFecha_multa().get(Calendar.MONTH); for (int l = 0; l < 12; l++) { if (tamY[l][0] == t) { int cant = tamY[l][1]; cant++; tamY[l][1] = cant; } } } for (int i = 0; i < 12; i++) { if (tamY[i][1] > 0) { table.addCell("" + meses[i]); table.addCell("" + tamY[i][1]); } } } subCatPart.add(table); } else if (rango.equals("Dia")) { PdfPTable table = new PdfPTable(2); PdfPCell c1 = new PdfPCell(new Phrase("Da del mes")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Cantidad Multas")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); table.setHeaderRows(1); if (multas.isEmpty()) { table.addCell("No hay multas en ese rango de fecha"); } else { int tamY[][] = new int[32][2]; for (int i = 0; i < 32; i++) { tamY[i][0] = i; } for (int j = 0; j < 32; j++) { tamY[j][1] = 0; } for (int k = 0; k < multas.size(); k++) { int t = multas.get(k).getFecha_multa().get(Calendar.DAY_OF_MONTH); for (int l = 0; l < 32; l++) { if (tamY[l][0] == t) { int cant = tamY[l][1]; cant++; tamY[l][1] = cant; } } } for (int i = 0; i < 32; i++) { if (tamY[i][1] > 0) { table.addCell("" + i); table.addCell("" + tamY[i][1]); } } } subCatPart.add(table); } else if (rango.equals("Hora")) { PdfPTable table = new PdfPTable(2); PdfPCell c1 = new PdfPCell(new Phrase("Hora del da")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Cantidad Multas")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); table.setHeaderRows(1); if (multas.isEmpty()) { table.addCell("No hay multas en ese rango de fecha"); } else { int tamY[][] = new int[24][2]; for (int i = 0; i < 24; i++) { tamY[i][0] = i; } for (int j = 0; j < 24; j++) { tamY[j][1] = 0; } for (int k = 0; k < multas.size(); k++) { int t = multas.get(k).getFecha_multa().get(Calendar.HOUR_OF_DAY); for (int l = 0; l < 24; l++) { if (tamY[l][0] == t) { int cant = tamY[l][1]; cant++; tamY[l][1] = cant; } } } for (int i = 0; i < 24; i++) { if (tamY[i][1] > 0) { table.addCell("" + i); table.addCell("" + tamY[i][1]); } } } subCatPart.add(table); } } else if (p.equals("D")) { ArrayList<Danho> danhos = danDAO.getRangoFecha_danhos(fecha1, fecha2); ArrayList<Material> materiales = matDAO.getMateriales(); if (rango.equals("Anho")) { PdfPTable table = new PdfPTable(2); PdfPCell c1 = new PdfPCell(new Phrase("Categora Material")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Cantidad Material")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); table.setHeaderRows(1); if (danhos.isEmpty()) { table.addCell("No hay daos en ese rango de fecha"); } else { int T[][] = new int[materiales.size()][2]; for (int i = 0; i < materiales.size(); i++) { T[i][0] = materiales.get(i).getCodigo(); T[i][1] = 0; } for (int i = 0; i < danhos.size(); i++) { int P = danhos.get(i).getMat().getCodigo(); for (int k = 0; k < materiales.size(); k++) { int c = 0; if (T[k][0] == P) { c = T[k][1]; c++; T[k][1] = c; k = materiales.size(); } } } ArrayList<Tipo_material> tm = tipDAO.getTipo_material(); int TM[][] = new int[tm.size()][2]; for (int i = 0; i < tm.size(); i++) { TM[i][0] = tm.get(i).getId(); TM[i][1] = 0; } for (int i = 0; i < T.length; i++) { int c = 0; Material mat = matDAO.getMaterial(T[i][0]); for (int j = 0; j < TM.length; j++) { if (TM[j][0] == mat.getTipo_mat().getId()) { c = TM[j][1]; c += T[i][1]; TM[j][1] = c; j = tm.size(); } } } for (int i = 0; i < TM.length; i++) { if (TM[i][1] > 0) { Tipo_material tip = tipDAO.getTipo_material(TM[i][0]); table.addCell("" + tip.getNombre()); table.addCell("" + TM[i][1]); } } c1 = new PdfPCell(new Phrase("Ao")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Cantidad Daos")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); String[] f1 = fecha1.split("/"); int a = Integer.parseInt(f1[0]); String[] f2 = fecha2.split("/"); int b = Integer.parseInt(f2[0]); int dif = b - a; dif++; int tamY[][] = new int[dif][2]; int u = a; for (int i = 0; i < dif; i++) { tamY[i][0] = u; u++; } for (int j = 0; j < dif; j++) { tamY[j][1] = 0; } for (int k = 0; k < danhos.size(); k++) { int t = danhos.get(k).getFecha_d().get(Calendar.YEAR); for (int l = 0; l < dif; l++) { if (tamY[l][0] == t) { int cant = tamY[l][1]; cant++; tamY[l][1] = cant; } } } for (int i = 0; i < dif; i++) { if (tamY[i][1] > 0) { table.addCell("" + tamY[i][0]); table.addCell("" + tamY[i][1]); } } c1 = new PdfPCell(new Phrase("Estado")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Cantidad")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); int tipoD[] = new int[3]; for (int i = 0; i < 3; i++) { tipoD[i] = 0; } for (int k = 0; k < danhos.size(); k++) { int cont; if (danhos.get(k).getEstado() == 0) { cont = tipoD[0]; cont++; tipoD[0] = cont; } else if (danhos.get(k).getEstado() == 1) { cont = tipoD[1]; cont++; tipoD[1] = cont; } else if (danhos.get(k).getEstado() == 2) { cont = tipoD[2]; cont++; tipoD[2] = cont; } } table.addCell("Daado"); table.addCell("" + tipoD[0]); table.addCell("Reparado"); table.addCell("" + tipoD[1]); table.addCell("Dado de Baja"); table.addCell("" + tipoD[2]); } subCatPart.add(table); } else if (rango.equals("Mes")) { PdfPTable table = new PdfPTable(2); PdfPCell c1 = new PdfPCell(new Phrase("Categora Material")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Cantidad Material")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); table.setHeaderRows(1); if (danhos.isEmpty()) { table.addCell("No hay daos en ese rango de fecha"); } else { int T[][] = new int[materiales.size()][2]; for (int i = 0; i < materiales.size(); i++) { T[i][0] = materiales.get(i).getCodigo(); T[i][1] = 0; } for (int i = 0; i < danhos.size(); i++) { int P = danhos.get(i).getMat().getCodigo(); for (int k = 0; k < materiales.size(); k++) { int c = 0; if (T[k][0] == P) { c = T[k][1]; c++; T[k][1] = c; k = materiales.size(); } } } ArrayList<Tipo_material> tm = tipDAO.getTipo_material(); int TM[][] = new int[tm.size()][2]; for (int i = 0; i < tm.size(); i++) { TM[i][0] = tm.get(i).getId(); TM[i][1] = 0; } for (int i = 0; i < T.length; i++) { int c = 0; Material mat = matDAO.getMaterial(T[i][0]); for (int j = 0; j < TM.length; j++) { if (TM[j][0] == mat.getTipo_mat().getId()) { c = TM[j][1]; c += T[i][1]; TM[j][1] = c; j = tm.size(); } } } for (int i = 0; i < TM.length; i++) { if (TM[i][1] > 0) { Tipo_material tip = tipDAO.getTipo_material(TM[i][0]); table.addCell("" + tip.getNombre()); table.addCell("" + TM[i][1]); } } c1 = new PdfPCell(new Phrase("Mes")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Cantidad Daos")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); String[] meses = { "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre" }; int tamY[][] = new int[12][2]; for (int i = 0; i < 12; i++) { tamY[i][0] = i; } for (int j = 0; j < 12; j++) { tamY[j][1] = 0; } for (int k = 0; k < danhos.size(); k++) { int t = danhos.get(k).getFecha_d().get(Calendar.MONTH); for (int l = 0; l < 12; l++) { if (tamY[l][0] == t) { int cant = tamY[l][1]; cant++; tamY[l][1] = cant; } } } for (int i = 0; i < 12; i++) { if (tamY[i][1] > 0) { table.addCell("" + meses[i]); table.addCell("" + tamY[i][1]); } } c1 = new PdfPCell(new Phrase("Estado")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Cantidad")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); int tipoD[] = new int[3]; for (int i = 0; i < 3; i++) { tipoD[i] = 0; } for (int k = 0; k < danhos.size(); k++) { int cont; if (danhos.get(k).getEstado() == 0) { cont = tipoD[0]; cont++; tipoD[0] = cont; } else if (danhos.get(k).getEstado() == 1) { cont = tipoD[1]; cont++; tipoD[1] = cont; } else if (danhos.get(k).getEstado() == 2) { cont = tipoD[2]; cont++; tipoD[2] = cont; } } table.addCell("Daado"); table.addCell("" + tipoD[0]); table.addCell("Reparado"); table.addCell("" + tipoD[1]); table.addCell("Dado de Baja"); table.addCell("" + tipoD[2]); } subCatPart.add(table); } else if (rango.equals("Dia")) { PdfPTable table = new PdfPTable(2); PdfPCell c1 = new PdfPCell(new Phrase("Categora Material")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Cantidad Material")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); table.setHeaderRows(1); if (danhos.isEmpty()) { table.addCell("No hay daos en ese rango de fecha"); } else { int T[][] = new int[materiales.size()][2]; for (int i = 0; i < materiales.size(); i++) { T[i][0] = materiales.get(i).getCodigo(); T[i][1] = 0; } for (int i = 0; i < danhos.size(); i++) { int P = danhos.get(i).getMat().getCodigo(); for (int k = 0; k < materiales.size(); k++) { int c = 0; if (T[k][0] == P) { c = T[k][1]; c++; T[k][1] = c; k = materiales.size(); } } } ArrayList<Tipo_material> tm = tipDAO.getTipo_material(); int TM[][] = new int[tm.size()][2]; for (int i = 0; i < tm.size(); i++) { TM[i][0] = tm.get(i).getId(); TM[i][1] = 0; } for (int i = 0; i < T.length; i++) { int c = 0; Material mat = matDAO.getMaterial(T[i][0]); for (int j = 0; j < TM.length; j++) { if (TM[j][0] == mat.getTipo_mat().getId()) { c = TM[j][1]; c += T[i][1]; TM[j][1] = c; j = tm.size(); } } } for (int i = 0; i < TM.length; i++) { if (TM[i][1] > 0) { Tipo_material tip = tipDAO.getTipo_material(TM[i][0]); table.addCell("" + tip.getNombre()); table.addCell("" + TM[i][1]); } } c1 = new PdfPCell(new Phrase("Da del mes")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Cantidad Daos")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); int tamY[][] = new int[32][2]; for (int i = 0; i < 32; i++) { tamY[i][0] = i; } for (int j = 0; j < 32; j++) { tamY[j][1] = 0; } for (int k = 0; k < danhos.size(); k++) { int t = danhos.get(k).getFecha_d().get(Calendar.DAY_OF_MONTH); for (int l = 0; l < 32; l++) { if (tamY[l][0] == t) { int cant = tamY[l][1]; cant++; tamY[l][1] = cant; } } } for (int i = 0; i < 32; i++) { if (tamY[i][1] > 0) { table.addCell("" + i); table.addCell("" + tamY[i][1]); } } c1 = new PdfPCell(new Phrase("Estado")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Cantidad")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); int tipoD[] = new int[3]; for (int i = 0; i < 3; i++) { tipoD[i] = 0; } for (int k = 0; k < danhos.size(); k++) { int cont; if (danhos.get(k).getEstado() == 0) { cont = tipoD[0]; cont++; tipoD[0] = cont; } else if (danhos.get(k).getEstado() == 1) { cont = tipoD[1]; cont++; tipoD[1] = cont; } else if (danhos.get(k).getEstado() == 2) { cont = tipoD[2]; cont++; tipoD[2] = cont; } } table.addCell("Daado"); table.addCell("" + tipoD[0]); table.addCell("Reparado"); table.addCell("" + tipoD[1]); table.addCell("Dado de Baja"); table.addCell("" + tipoD[2]); } subCatPart.add(table); } else if (rango.equals("Hora")) { PdfPTable table = new PdfPTable(2); PdfPCell c1 = new PdfPCell(new Phrase("Categora Material")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Cantidad Material")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); table.setHeaderRows(1); if (danhos.isEmpty()) { table.addCell("No hay daos en ese rango de fecha"); } else { int T[][] = new int[materiales.size()][2]; for (int i = 0; i < materiales.size(); i++) { T[i][0] = materiales.get(i).getCodigo(); T[i][1] = 0; } for (int i = 0; i < danhos.size(); i++) { int P = danhos.get(i).getMat().getCodigo(); for (int k = 0; k < materiales.size(); k++) { int c = 0; if (T[k][0] == P) { c = T[k][1]; c++; T[k][1] = c; k = materiales.size(); } } } ArrayList<Tipo_material> tm = tipDAO.getTipo_material(); int TM[][] = new int[tm.size()][2]; for (int i = 0; i < tm.size(); i++) { TM[i][0] = tm.get(i).getId(); TM[i][1] = 0; } for (int i = 0; i < T.length; i++) { int c = 0; Material mat = matDAO.getMaterial(T[i][0]); for (int j = 0; j < TM.length; j++) { if (TM[j][0] == mat.getTipo_mat().getId()) { c = TM[j][1]; c += T[i][1]; TM[j][1] = c; j = tm.size(); } } } for (int i = 0; i < TM.length; i++) { if (TM[i][1] > 0) { Tipo_material tip = tipDAO.getTipo_material(TM[i][0]); table.addCell("" + tip.getNombre()); table.addCell("" + TM[i][1]); } } c1 = new PdfPCell(new Phrase("Hora del da")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Cantidad Daos")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); int tamY[][] = new int[24][2]; for (int i = 0; i < 24; i++) { tamY[i][0] = i; } for (int j = 0; j < 24; j++) { tamY[j][1] = 0; } for (int k = 0; k < danhos.size(); k++) { Calendar cy = danhos.get(k).getFecha_d(); int t = danhos.get(k).getFecha_d().get(Calendar.HOUR_OF_DAY); for (int l = 0; l < 24; l++) { if (tamY[l][0] == t) { int cant = tamY[l][1]; cant++; tamY[l][1] = cant; } } } for (int i = 0; i < 24; i++) { if (tamY[i][1] > 0) { table.addCell("" + i); table.addCell("" + tamY[i][1]); } } c1 = new PdfPCell(new Phrase("Estado")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Cantidad")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); int tipoD[] = new int[3]; for (int i = 0; i < 3; i++) { tipoD[i] = 0; } for (int k = 0; k < danhos.size(); k++) { int cont; if (danhos.get(k).getEstado() == 0) { cont = tipoD[0]; cont++; tipoD[0] = cont; } else if (danhos.get(k).getEstado() == 1) { cont = tipoD[1]; cont++; tipoD[1] = cont; } else if (danhos.get(k).getEstado() == 2) { cont = tipoD[2]; cont++; tipoD[2] = cont; } } table.addCell("Daado"); table.addCell("" + tipoD[0]); table.addCell("Reparado"); table.addCell("" + tipoD[1]); table.addCell("Dado de Baja"); table.addCell("" + tipoD[2]); } subCatPart.add(table); } } } private void createTable2(Section subCatPart) throws BadElementException { ArrayList<Multa> multas = mulDAO.getRangoFecha_multa(fecha1, fecha2); ArrayList<Usuario> usuarios = usuDAO.getUsuarios(); String codusuarios[] = new String[usuarios.size()]; int canMult[] = new int[usuarios.size()]; for (int i = 0; i < usuarios.size(); i++) { codusuarios[i] = usuarios.get(i).getCodigo(); canMult[i] = 0; } for (int i = 0; i < multas.size(); i++) { for (int j = 0; j < usuarios.size(); j++) { if (codusuarios[j].equals(multas.get(i).getUsu().getCodigo())) { canMult[j]++; j = usuarios.size(); } } } PdfPTable table = new PdfPTable(4); PdfPCell c1 = new PdfPCell(new Phrase("Usuario")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Nombre")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Apellidos")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Cantidad Multas")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); table.setHeaderRows(1); if (multas.isEmpty()) { table.addCell("No hay multas en ese rango de fecha"); } else { for (int i = 0; i < usuarios.size(); i++) { if (canMult[i] > 0) { Usuario usuario1 = usuDAO.getUsuario(codusuarios[i]); table.addCell("" + codusuarios[i]); table.addCell("" + usuario1.getNombre()); table.addCell("" + usuario1.getApellido()); table.addCell("" + canMult[i]); } } subCatPart.add(table); } } private static void addEmptyLine(Paragraph paragraph, int number) { for (int i = 0; i < number; i++) { paragraph.add(new Paragraph(" ")); } } }