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 domain; import abstractt.Table; import static domain.Movimiento.cargarMovimientosEntrada; import static gui.Splash.formatoDate; import static gui.Splash.formatoDateTime; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.text.ParseException; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import javax.imageio.ImageIO; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.filechooser.FileFilter; import org.apache.poi.hssf.record.CFRuleRecord; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFClientAnchor; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.HSSFColor; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.ClientAnchor; import org.apache.poi.ss.usermodel.ConditionalFormattingRule; import org.apache.poi.ss.usermodel.CreationHelper; import org.apache.poi.ss.usermodel.Drawing; import org.apache.poi.ss.usermodel.FontFormatting; import org.apache.poi.ss.usermodel.IndexedColors; import org.apache.poi.ss.usermodel.PatternFormatting; import org.apache.poi.ss.usermodel.Picture; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.SheetConditionalFormatting; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.util.IOUtils; import org.jfree.chart.JFreeChart; import org.jfree.ui.ExtensionFileFilter; import com.csvreader.CsvReader; import static domain.CorralAnimal.cargarAnimalesCorralCerrado; import static domain.CorralAnimal.cargarAnimalesCorral_; import static domain.Movimiento.cargarMovimientosSalida; import static gui.Desktop.manejadorBD; import static gui.Desktop.rancho; import static gui.Login.gs_mensaje; import static gui.Splash.formatoDateTime_11; import static gui.Splash.formatoDateTime_2; import org.apache.poi.hssf.util.HSSFRegionUtil; import org.apache.poi.ss.usermodel.CellStyle; public class Excel { private Animal animal; private Integer tipo; Integer Unidad = 275; // Integer id_corral; private JFrame parent; private String XLSFile; private Date fecha_ini; private Date fecha_fin; private Corral corral; private HSSFWorkbook wb; //private XSSFWorkbook wb; private JFreeChart grafica; private Sheet sheet; private Table t_tabla; private Table t_tabla2; private HSSFCellStyle styleCenter; private HSSFCellStyle styleRight; private HSSFCellStyle styleleft; private HSSFCellStyle styleBorderCompletoMedio; private HSSFCellStyle styleNameReport; private HSSFCellStyle styleDateReport; private HSSFCellStyle styleParamReport; private HSSFCellStyle styleTituloTabla; private HSSFCellStyle styleEtiquetaTabla; private HSSFCellStyle styleGananciaPeso; public static List<RegistroSesion> leerArchivoSesionCSV(String archivoSesion) { List<RegistroSesion> regSesion = new ArrayList<RegistroSesion>(); try { CsvReader reg_Sesion_import = new CsvReader(archivoSesion); reg_Sesion_import.readHeaders(); while (reg_Sesion_import.readRecord()) { String arete_visual = reg_Sesion_import.get("IDV"); Double peso; try { peso = Double.parseDouble(reg_Sesion_import.get("Peso")); } catch (NumberFormatException ex) { peso = Double.parseDouble(reg_Sesion_import.get("Peso") + ".00"); } Date fecha = null; try { fecha = formatoDateTime_2.parse(reg_Sesion_import.get(2) + " " + reg_Sesion_import.get(3)); } catch (ParseException ex) { Logger.getLogger(Excel.class.getName()).log(Level.SEVERE, null, ex); } String arete_electronico = reg_Sesion_import.get(4); regSesion.add(new RegistroSesion(arete_visual, peso, fecha, arete_electronico)); } reg_Sesion_import.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return regSesion; } public static void leerArchivoSesion(String archivoSesion) { List sheetData = new ArrayList(); FileInputStream fis = null; try { fis = new FileInputStream(archivoSesion); HSSFWorkbook workbook = new HSSFWorkbook(fis); HSSFSheet sheet = workbook.getSheetAt(0); Iterator rows = sheet.rowIterator(); while (rows.hasNext()) { HSSFRow row = (HSSFRow) rows.next(); Iterator cells = row.cellIterator(); List data = new ArrayList(); while (cells.hasNext()) { HSSFCell cell = (HSSFCell) cells.next(); data.add(cell); } sheetData.add(data); } } catch (FileNotFoundException ex) { Logger.getLogger(Excel.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(Excel.class.getName()).log(Level.SEVERE, null, ex); } finally { if (fis != null) { try { fis.close(); } catch (IOException ex) { Logger.getLogger(Excel.class.getName()).log(Level.SEVERE, null, ex); } } } showExelData(sheetData); } private static void showExelData(List sheetData) { // // Iterates the data and print it out to the console. // for (int i = 0; i < sheetData.size(); i++) { List list = (List) sheetData.get(i); for (int j = 0; j < list.size(); j++) { Cell cell = (Cell) list.get(j); if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) { System.out.print(cell.getNumericCellValue()); } else if (cell.getCellType() == Cell.CELL_TYPE_STRING) { System.out.print(cell.getRichStringCellValue()); } else if (cell.getCellType() == Cell.CELL_TYPE_BOOLEAN) { System.out.print(cell.getBooleanCellValue()); } if (j < list.size() - 1) { System.out.print(", "); } } System.out.println(""); } } public void styles() { /*ETIQUETA TABLA */ HSSFFont FontNormal = wb.createFont(); FontNormal.setFontName("Calibri"); FontNormal.setFontHeightInPoints((short) 8); FontNormal.setColor(HSSFColor.BLACK.index); styleCenter = wb.createCellStyle(); styleCenter.setAlignment(HSSFCellStyle.ALIGN_CENTER); styleCenter.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); styleCenter.setFont(FontNormal); styleRight = wb.createCellStyle(); styleRight.setAlignment(HSSFCellStyle.ALIGN_RIGHT); styleRight.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); styleRight.setFont(FontNormal); styleleft = wb.createCellStyle(); styleleft.setAlignment(HSSFCellStyle.ALIGN_LEFT); styleleft.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); styleleft.setFont(FontNormal); styleBorderCompletoMedio = wb.createCellStyle(); styleBorderCompletoMedio.setBorderBottom(HSSFCellStyle.BORDER_MEDIUM); styleBorderCompletoMedio.setBorderBottom(HSSFCellStyle.BORDER_MEDIUM); styleBorderCompletoMedio.setBorderRight(HSSFCellStyle.BORDER_MEDIUM); styleBorderCompletoMedio.setBorderLeft(HSSFCellStyle.BORDER_MEDIUM); /*Name REPORT*/ HSSFFont FontNameReport = wb.createFont(); FontNameReport.setFontName("Calibri"); FontNameReport.setFontHeightInPoints((short) 16); FontNameReport.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); FontNameReport.setColor(HSSFColor.BROWN.index); styleNameReport = wb.createCellStyle(); styleNameReport.setAlignment(HSSFCellStyle.ALIGN_CENTER); styleNameReport.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); styleNameReport.setFont(FontNameReport); /*DATE REPORT*/ HSSFFont FontDateReport = wb.createFont(); FontDateReport.setFontName("Calibri"); FontDateReport.setFontHeightInPoints((short) 8); FontDateReport.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); FontDateReport.setColor(HSSFColor.BLACK.index); styleDateReport = wb.createCellStyle(); styleDateReport.setAlignment(HSSFCellStyle.ALIGN_CENTER); styleDateReport.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); styleDateReport.setFont(FontDateReport); //Etiqueta parametro HSSFFont FontParametroReport = wb.createFont(); FontParametroReport.setFontName("Calibri"); FontParametroReport.setFontHeightInPoints((short) 8); FontParametroReport.setColor(HSSFColor.BLACK.index); styleParamReport = wb.createCellStyle(); styleParamReport.setAlignment(HSSFCellStyle.ALIGN_CENTER); styleParamReport.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); /*TITULO TABLA */ HSSFFont FontTituloTabla = wb.createFont(); FontDateReport.setFontName("Calibri"); FontDateReport.setFontHeightInPoints((short) 8); FontDateReport.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); FontDateReport.setColor(HSSFColor.BLACK.index); styleTituloTabla = wb.createCellStyle(); styleTituloTabla.setAlignment(HSSFCellStyle.ALIGN_LEFT); styleTituloTabla.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); styleTituloTabla.setFont(FontDateReport); /*ETIQUETA TABLA */ HSSFFont FontEtiquetaTabla = wb.createFont(); FontEtiquetaTabla.setFontName("Calibri"); FontEtiquetaTabla.setFontHeightInPoints((short) 8); FontEtiquetaTabla.setColor(HSSFColor.BLACK.index); styleEtiquetaTabla = wb.createCellStyle(); styleEtiquetaTabla.setAlignment(HSSFCellStyle.ALIGN_LEFT); styleEtiquetaTabla.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); styleEtiquetaTabla.setFont(FontEtiquetaTabla); /*ETIQUETA GANANCIA DE PESO */ HSSFFont FontGananciaPeso = wb.createFont(); FontGananciaPeso.setFontName("Calibri"); FontGananciaPeso.setFontHeightInPoints((short) 12); FontGananciaPeso.setColor(HSSFColor.BLACK.index); styleGananciaPeso = wb.createCellStyle(); styleGananciaPeso.setAlignment(HSSFCellStyle.ALIGN_LEFT); styleGananciaPeso.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); styleGananciaPeso.setFont(FontGananciaPeso); } public Cell agregarValor(Integer fila, Integer columna, String valor) { Row row = recuperarFila(fila); Cell cell = recuperarCelda(row, columna); cell.setCellValue(valor); return cell; } public void agregarValor(Integer fila, Integer columna, String valor, HSSFCellStyle style) { Cell cell; cell = agregarValor(fila, columna, valor); asignarEstilo(fila, columna, style); } public Cell agregarValor(Integer fila, Integer columna, Integer valor) { Row row = recuperarFila(fila); Cell cell = recuperarCelda(row, columna); cell.setCellValue(valor); return cell; } public void agregarValor(Integer fila, Integer columna, Integer valor, HSSFCellStyle style) { Cell cell; cell = agregarValor(fila, columna, valor); asignarEstilo(fila, columna, style); } public Cell agregarValor(Integer fila, Integer columna, Double valor) { Row row = recuperarFila(fila); Cell cell = recuperarCelda(row, columna); cell.setCellValue(valor); return cell; } public void agregarValor(Integer fila, Integer columna, Double valor, HSSFCellStyle style) { Cell cell; cell = agregarValor(fila, columna, valor); asignarEstilo(fila, columna, style); } public void asignarEstilo(Integer fila, Integer columna, HSSFCellStyle style) { Row row = recuperarFila(fila); Cell cell = recuperarCelda(row, columna); cell.setCellStyle(style); } public Row recuperarFila(Integer fila) { Row row; row = sheet.getRow(fila); if (row == null) { row = sheet.createRow(fila); } return row; } public Cell recuperarCelda(Row row, Integer columna) { Cell cell; cell = row.getCell(columna); if (cell == null) { cell = row.createCell(columna); } return cell; } public void bordes(String rango, short borde) { HSSFRegionUtil.setBorderTop(borde, CellRangeAddress.valueOf(rango), (HSSFSheet) sheet, wb); HSSFRegionUtil.setBorderLeft(borde, CellRangeAddress.valueOf(rango), (HSSFSheet) sheet, wb); HSSFRegionUtil.setBorderRight(borde, CellRangeAddress.valueOf(rango), (HSSFSheet) sheet, wb); HSSFRegionUtil.setBorderBottom(borde, CellRangeAddress.valueOf(rango), (HSSFSheet) sheet, wb); } public void relleno(String rango, short color_relleno, short color_letra) { SheetConditionalFormatting sheetCF = sheet.getSheetConditionalFormatting(); ConditionalFormattingRule rule1 = sheetCF .createConditionalFormattingRule(CFRuleRecord.ComparisonOperator.GT, "1000"); PatternFormatting fill1 = rule1.createPatternFormatting(); fill1.setFillBackgroundColor(color_relleno); fill1.setFillPattern(PatternFormatting.SOLID_FOREGROUND); FontFormatting font = rule1.createFontFormatting(); font.setFontStyle(false, true); font.setFontColorIndex(color_letra); CellRangeAddress[] regions = { CellRangeAddress.valueOf(rango) }; sheetCF.addConditionalFormatting(regions, rule1, rule1); } private void tamaoColumna(Integer columna, Integer tamao) { sheet.setColumnWidth(columna, tamao * Unidad); } private void combinarRango(String rango) { sheet.addMergedRegion(CellRangeAddress.valueOf(rango)); } public void graficar(short columna_inicial, Integer fila_inicial, short columna_final, Integer fila_final) { final BufferedImage buffer = grafica.createBufferedImage(600, 200); ByteArrayOutputStream img_bytes = new ByteArrayOutputStream(); try { ImageIO.write(buffer, "png", img_bytes); img_bytes.flush(); } catch (IOException ex) { Logger.getLogger(Excel.class.getName()).log(Level.SEVERE, null, ex); } HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 0, 0, (short) columna_inicial, fila_inicial, (short) columna_final, fila_final); int index = wb.addPicture(img_bytes.toByteArray(), HSSFWorkbook.PICTURE_TYPE_PNG); Drawing patriarch = sheet.createDrawingPatriarch(); patriarch.createPicture(anchor, index); /**/ /* Drawing drawing = sheet.createDrawingPatriarch(); XSSFClientAnchor anchor = new XSSFClientAnchor(0, 0, 0, 0, (short) 2, 6, (short) 9, 26); Chart chart = drawing.createChart(anchor); ChartLegend legend = chart.getOrCreateLegend(); legend.setPosition(LegendPosition.RIGHT); chart.getOrCreateLegend(); ScatterChartData data = chart.getChartDataFactory().createScatterChartData(); ValueAxis bottomAxis = chart.getChartAxisFactory().createValueAxis(AxisPosition.BOTTOM); ValueAxis leftAxis = chart.getChartAxisFactory().createValueAxis(AxisPosition.LEFT); leftAxis.setCrosses(AxisCrosses.AUTO_ZERO); ChartDataSource<String> xs = DataSources.fromStringCellRange(sheet, new CellRangeAddress(6, fila_final, 0, 0)); ChartDataSource<Number> ys1 = DataSources.fromNumericCellRange(sheet, new CellRangeAddress(6, fila_final, 1, 1)); //ChartDataSource<Number> ys2 = DataSources.fromNumericCellRange(sheet, new CellRangeAddress(2, 2, 0, NUM_OF_COLUMNS - 1)); data.addSerie(xs, ys1); //data.addSerie(xs, ys2); chart.plot(data, bottomAxis, leftAxis); */ } private void crearExcel() { FileOutputStream out; try { out = new FileOutputStream(XLSFile); wb.write(out); out.close(); Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL " + XLSFile); } catch (FileNotFoundException ex) { Logger.getLogger(Excel.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(Excel.class.getName()).log(Level.SEVERE, null, ex); } } private void cargarLogo() { cargarLogo1(0, 0, 0.22); } private void cargarLogo1(Integer fila, Integer columna, Double resize) { InputStream inputStream; try { inputStream = getClass().getResourceAsStream("/resources/logo tru-test.png");//Tru-Test.jpg"); byte[] bytes = IOUtils.toByteArray(inputStream); int pictureIdx = wb.addPicture(bytes, wb.PICTURE_TYPE_PNG); inputStream.close(); CreationHelper helper = wb.getCreationHelper(); Drawing drawing = sheet.createDrawingPatriarch(); ClientAnchor anchor = helper.createClientAnchor(); //set top-left corner for the image anchor.setCol1(columna); anchor.setRow1(fila); Picture pict = drawing.createPicture(anchor, pictureIdx); //Reset the image to the original size pict.resize(resize); } catch (FileNotFoundException ex) { Logger.getLogger(Excel.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(Excel.class.getName()).log(Level.SEVERE, null, ex); } } private void cargarLogo2(Integer fila, Integer columna, Double resize) { InputStream inputStream; try { inputStream = getClass().getResourceAsStream("/resources/LOGO.png");//Tru-Test.jpg"); byte[] bytes = IOUtils.toByteArray(inputStream); int pictureIdx = wb.addPicture(bytes, wb.PICTURE_TYPE_PNG); inputStream.close(); CreationHelper helper = wb.getCreationHelper(); Drawing drawing = sheet.createDrawingPatriarch(); ClientAnchor anchor = helper.createClientAnchor(); //set top-left corner for the image anchor.setCol1(columna); anchor.setRow1(fila); Picture pict = drawing.createPicture(anchor, pictureIdx); //Reset the image to the original size pict.resize(resize); } catch (FileNotFoundException ex) { Logger.getLogger(Excel.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(Excel.class.getName()).log(Level.SEVERE, null, ex); } } private boolean showOpenFileDialog() { JFileChooser fileChooser = new JFileChooser(); fileChooser.setDialogTitle("Specify a file to save"); FileFilter filter1 = new ExtensionFileFilter("XLS", "XLS"); fileChooser.setFileFilter(filter1); int userSelection = fileChooser.showSaveDialog(parent); if (userSelection == JFileChooser.APPROVE_OPTION) { File fileToSave = fileChooser.getSelectedFile(); XLSFile = fileToSave.getAbsolutePath() + ".xls"; System.out.println("Save as file: " + fileToSave.getAbsolutePath()); return true; } return false; } public void reporteSesiones(Table TTabla1, Table TTabla2, Integer ITipo, Date DFechaIni, Date DFechaFin, Animal AAnimal) { t_tabla = TTabla1; t_tabla2 = TTabla2; animal = AAnimal; tipo = ITipo; this.fecha_ini = DFechaIni; this.fecha_fin = DFechaFin; if (t_tabla.getRowCount() <= 0 && t_tabla2.getRowCount() <= 0) { JOptionPane.showMessageDialog(null, "No hay datos, para exportar", gs_mensaje, JOptionPane.INFORMATION_MESSAGE); return; } if (!showOpenFileDialog()) { return; } wb = new HSSFWorkbook(); sheet = wb.createSheet("REPORTE DE SESIONES"); styles(); reporteSesiones(); crearExcel(); } public void reporteSesionesPeso(Table TTabla1, Integer ITipo, Date DFechaIni, Date DFechaFin, Animal AAnimal) { t_tabla = TTabla1; animal = AAnimal; tipo = ITipo; this.fecha_ini = DFechaIni; this.fecha_fin = DFechaFin; if (t_tabla.getRowCount() <= 0) { JOptionPane.showMessageDialog(null, "No hay datos, para exportar", gs_mensaje, JOptionPane.INFORMATION_MESSAGE); return; } if (!showOpenFileDialog()) { return; } wb = new HSSFWorkbook(); sheet = wb.createSheet("REPORTE DE SESIONES POR PESO"); styles(); reporteSesionPeso(); crearExcel(); } public void reporteSesionPeso() { // cargarLogo(); sheet.addMergedRegion(CellRangeAddress.valueOf("A1:E1")); sheet.addMergedRegion(CellRangeAddress.valueOf("A2:E2")); sheet.addMergedRegion(CellRangeAddress.valueOf("A3:E4")); /*Name REPORT*/ HSSFFont FontNameReport = wb.createFont(); FontNameReport.setFontName("Calibri"); FontNameReport.setFontHeightInPoints((short) 11); FontNameReport.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); FontNameReport.setColor(HSSFColor.DARK_RED.index); HSSFCellStyle styleNameReport = wb.createCellStyle(); styleNameReport.setAlignment(HSSFCellStyle.ALIGN_CENTER); styleNameReport.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); styleNameReport.setFont(FontNameReport); Row row = sheet.createRow(0); Cell cell = row.createCell(0); cell.setCellValue("REPORTE DE SESIONES POR PESOS"); cell.setCellStyle(styleNameReport); /**/ /*DATE REPORT*/ HSSFFont FontDateReport = wb.createFont(); FontDateReport.setFontName("Calibri"); FontDateReport.setFontHeightInPoints((short) 10); FontDateReport.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); FontDateReport.setColor(HSSFColor.BLACK.index); HSSFCellStyle styleDateReport = wb.createCellStyle(); styleDateReport.setAlignment(HSSFCellStyle.ALIGN_CENTER); styleDateReport.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); styleDateReport.setFont(FontDateReport); row = sheet.createRow(1); cell = row.createCell(0); cell.setCellValue("FECHA DE REPORTE: " + formatoDateTime.format(new Date())); cell.setCellStyle(styleDateReport); /*Etiqueta parametro*/ HSSFFont FontParametroReport = wb.createFont(); FontParametroReport.setFontName("Calibri"); FontParametroReport.setFontHeightInPoints((short) 9); FontParametroReport.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL); FontParametroReport.setColor(HSSFColor.BLACK.index); HSSFCellStyle styleParamReport = wb.createCellStyle(); styleParamReport.setAlignment(HSSFCellStyle.ALIGN_CENTER); styleParamReport.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); styleParamReport.setFont(FontParametroReport); row = sheet.createRow(2); cell = row.createCell(0); String etiqueta_parametro = ""; switch (tipo) { case 1: etiqueta_parametro = "Sesion de dia " + formatoDate.format(fecha_ini); break; case 2: etiqueta_parametro = "Sesiones del " + formatoDate.format(fecha_ini) + " al " + formatoDate.format(fecha_fin); break; case 3: etiqueta_parametro = "Sesiones del animal " + animal.arete_visual; break; } cell.setCellValue(etiqueta_parametro); cell.setCellStyle(styleParamReport); /**/ sheet.createRow(5).createCell(0).setCellValue("Arete Visual"); sheet.getRow(5).createCell(1).setCellValue("Arete Electronico"); sheet.getRow(5).createCell(2).setCellValue("Fecha"); sheet.getRow(5).createCell(3).setCellValue("Peso"); sheet.getRow(5).createCell(4).setCellValue("Corral"); sheet.setColumnWidth(0, 16 * Unidad); sheet.setColumnWidth(1, 16 * Unidad); sheet.setColumnWidth(2, 16 * Unidad); sheet.setColumnWidth(3, 16 * Unidad); sheet.setColumnWidth(4, 16 * Unidad); SheetConditionalFormatting sheetCF = sheet.getSheetConditionalFormatting(); //Condition 1: Cell Value Is greater than 70 (Blue Fill) ConditionalFormattingRule rule1 = sheetCF .createConditionalFormattingRule(CFRuleRecord.ComparisonOperator.GT, "1000"); PatternFormatting fill1 = rule1.createPatternFormatting(); fill1.setFillBackgroundColor(IndexedColors.DARK_RED.index); fill1.setFillPattern(PatternFormatting.SOLID_FOREGROUND); //Condition 2: Cell Value Is less than 50 (Green Fill) ConditionalFormattingRule rule2 = sheetCF .createConditionalFormattingRule(CFRuleRecord.ComparisonOperator.LT, "50"); PatternFormatting fill2 = rule2.createPatternFormatting(); fill2.setFillBackgroundColor(IndexedColors.DARK_RED.index); fill2.setFillPattern(PatternFormatting.SOLID_FOREGROUND); FontFormatting font = rule1.createFontFormatting(); font.setFontStyle(false, true); font.setFontColorIndex(IndexedColors.WHITE.index); CellRangeAddress[] regions = { CellRangeAddress.valueOf("A6:E6") }; sheetCF.addConditionalFormatting(regions, rule1, rule2); Integer fila_inicial = 6; for (int i = 0; i < this.t_tabla.getRowCount(); i++) { sheet.createRow(fila_inicial + i).createCell(0).setCellValue(t_tabla.getValueAt(i, 1).toString()); sheet.getRow(fila_inicial + i).getCell(0).setCellStyle(styleCenter); for (int j = 1; j < 5; j++) { sheet.getRow(fila_inicial + i).createCell(j).setCellValue(t_tabla.getValueAt(i, j + 1).toString()); sheet.getRow(fila_inicial + i).getCell(j).setCellStyle(styleCenter); } sheet.getRow(fila_inicial + i).getCell(3) .setCellValue(Double.parseDouble(t_tabla.getValueAt(i, 4).toString())); sheet.getRow(fila_inicial + i).getCell(3).setCellStyle(styleRight); } cargarLogo(); } public void reporteSesionesMedicina(Table TTabla1, Integer ITipo, Date DFechaIni, Date DFechaFin, Animal AAnimal) { t_tabla = TTabla1; animal = AAnimal; tipo = ITipo; this.fecha_ini = DFechaIni; this.fecha_fin = DFechaFin; if (t_tabla.getRowCount() <= 0) { JOptionPane.showMessageDialog(null, "No hay datos, para exportar", gs_mensaje, JOptionPane.INFORMATION_MESSAGE); return; } if (!showOpenFileDialog()) { return; } wb = new HSSFWorkbook(); sheet = wb.createSheet("REPORTE DE SESIONES POR MEDICAMENTOS"); styles(); reporteSesionMedicina(); crearExcel(); } private void reporteSesionMedicina() { sheet.addMergedRegion(CellRangeAddress.valueOf("A1:I1")); sheet.addMergedRegion(CellRangeAddress.valueOf("A2:I2")); sheet.addMergedRegion(CellRangeAddress.valueOf("A3:I4")); /*Name REPORT*/ HSSFFont FontNameReport = wb.createFont(); FontNameReport.setFontName("Calibri"); FontNameReport.setFontHeightInPoints((short) 11); FontNameReport.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); FontNameReport.setColor(HSSFColor.DARK_RED.index); HSSFCellStyle styleNameReport = wb.createCellStyle(); styleNameReport.setAlignment(HSSFCellStyle.ALIGN_CENTER); styleNameReport.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); styleNameReport.setFont(FontNameReport); Row row = sheet.createRow(0); Cell cell = row.createCell(0); cell.setCellValue("REPORTE DE SESIONES POR MEDICAMENTOS"); cell.setCellStyle(styleNameReport); /**/ /*DATE REPORT*/ HSSFFont FontDateReport = wb.createFont(); FontDateReport.setFontName("Calibri"); FontDateReport.setFontHeightInPoints((short) 10); FontDateReport.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); FontDateReport.setColor(HSSFColor.BLACK.index); HSSFCellStyle styleDateReport = wb.createCellStyle(); styleDateReport.setAlignment(HSSFCellStyle.ALIGN_CENTER); styleDateReport.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); styleDateReport.setFont(FontDateReport); row = sheet.createRow(1); cell = row.createCell(0); cell.setCellValue("FECHA DE REPORTE: " + formatoDateTime.format(new Date())); cell.setCellStyle(styleDateReport); /*Etiqueta parametro*/ HSSFFont FontParametroReport = wb.createFont(); FontParametroReport.setFontName("Calibri"); FontParametroReport.setFontHeightInPoints((short) 9); FontParametroReport.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL); FontParametroReport.setColor(HSSFColor.BLACK.index); HSSFCellStyle styleParamReport = wb.createCellStyle(); styleParamReport.setAlignment(HSSFCellStyle.ALIGN_CENTER); styleParamReport.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); styleParamReport.setFont(FontParametroReport); row = sheet.createRow(2); cell = row.createCell(0); String etiqueta_parametro = ""; switch (tipo) { case 1: etiqueta_parametro = "Sesion de dia " + formatoDate.format(fecha_ini); break; case 2: etiqueta_parametro = "Sesiones del " + formatoDate.format(fecha_ini) + " al " + formatoDate.format(fecha_fin); break; case 3: etiqueta_parametro = "Sesiones del animal " + animal.arete_visual; break; } cell.setCellValue(etiqueta_parametro); cell.setCellStyle(styleParamReport); /**/ sheet.createRow(5).createCell(0).setCellValue("Arete Visual"); sheet.getRow(5).createCell(1).setCellValue("Arete Electronico"); sheet.getRow(5).createCell(2).setCellValue("Codigo"); sheet.getRow(5).createCell(3).setCellValue("Medicamento"); sheet.getRow(5).createCell(4).setCellValue("Fecha"); sheet.getRow(5).createCell(5).setCellValue("Corral"); sheet.getRow(5).createCell(6).setCellValue("Dosis"); sheet.getRow(5).createCell(7).setCellValue("Costo"); sheet.getRow(5).createCell(8).setCellValue("Importe"); sheet.setColumnWidth(0, 15 * Unidad); sheet.setColumnWidth(1, 20 * Unidad); sheet.setColumnWidth(2, 15 * Unidad); sheet.setColumnWidth(3, 20 * Unidad); sheet.setColumnWidth(4, 20 * Unidad); sheet.setColumnWidth(5, 20 * Unidad); sheet.setColumnWidth(6, 15 * Unidad); sheet.setColumnWidth(7, 15 * Unidad); sheet.setColumnWidth(8, 15 * Unidad); SheetConditionalFormatting sheetCF = sheet.getSheetConditionalFormatting(); //Condition 1: Cell Value Is greater than 70 (Blue Fill) ConditionalFormattingRule rule1 = sheetCF .createConditionalFormattingRule(CFRuleRecord.ComparisonOperator.GT, "1000"); PatternFormatting fill1 = rule1.createPatternFormatting(); fill1.setFillBackgroundColor(IndexedColors.DARK_RED.index); fill1.setFillPattern(PatternFormatting.SOLID_FOREGROUND); //Condition 2: Cell Value Is less than 50 (Green Fill) ConditionalFormattingRule rule2 = sheetCF .createConditionalFormattingRule(CFRuleRecord.ComparisonOperator.LT, "50"); PatternFormatting fill2 = rule2.createPatternFormatting(); fill2.setFillBackgroundColor(IndexedColors.DARK_RED.index); fill2.setFillPattern(PatternFormatting.SOLID_FOREGROUND); FontFormatting font = rule1.createFontFormatting(); font.setFontStyle(false, true); font.setFontColorIndex(IndexedColors.WHITE.index); CellRangeAddress[] regions = { CellRangeAddress.valueOf("A6:I6") }; sheetCF.addConditionalFormatting(regions, rule1, rule2); Integer fila_inicial = 6; for (int i = 0; i < this.t_tabla.getRowCount(); i++) { agregarValor(fila_inicial + i, 0, t_tabla.getValueAt(i, 1).toString(), styleCenter); for (int j = 0; j < 9; j++) { agregarValor(fila_inicial + i, j, t_tabla.getValueAt(i, j + 1).toString(), styleCenter); } } cargarLogo(); } private void reporteSesiones() { cargarLogo(); combinarRango("A1:N1"); combinarRango("A2:N2"); combinarRango("A3:N4"); agregarValor(0, 0, "REPORTE DE SESIONES", styleNameReport); agregarValor(1, 0, "FECHA DE REPORTE: " + formatoDateTime.format(new Date()), styleDateReport); String etiqueta_parametro = ""; switch (tipo) { case 1: etiqueta_parametro = "Sesion de dia " + formatoDate.format(fecha_ini); break; case 2: etiqueta_parametro = "Sesiones del " + formatoDate.format(fecha_ini) + " al " + formatoDate.format(fecha_fin); break; case 3: etiqueta_parametro = "Sesiones del animal " + animal.arete_visual; break; } agregarValor(2, 0, etiqueta_parametro, styleParamReport); agregarValor(5, 0, "Id Animal"); agregarValor(5, 1, "Arete Electronico"); agregarValor(5, 2, "Fecha"); agregarValor(5, 3, "Peso"); agregarValor(5, 4, "Corral"); agregarValor(5, 5, ""); agregarValor(5, 6, "Arete Visual"); agregarValor(5, 7, "Codigo"); agregarValor(5, 8, "Medicina"); agregarValor(5, 9, "Fecha"); agregarValor(5, 10, "Corral"); agregarValor(5, 11, "Dosis"); agregarValor(5, 12, "Costo"); agregarValor(5, 13, "Importe"); tamaoColumna(0, 13); tamaoColumna(1, 14); tamaoColumna(2, 12); tamaoColumna(3, 10); tamaoColumna(4, 14); tamaoColumna(5, 2); tamaoColumna(6, 14); tamaoColumna(7, 11); tamaoColumna(8, 14); tamaoColumna(9, 12); tamaoColumna(10, 14); tamaoColumna(11, 10); tamaoColumna(12, 10); tamaoColumna(13, 10); relleno("A6:N6", IndexedColors.DARK_RED.index, IndexedColors.WHITE.index); Integer fila_inicial = 6; for (int i = 0; i < this.t_tabla.getRowCount(); i++) { agregarValor(fila_inicial + i, 0, t_tabla.getValueAt(i, 1).toString(), styleCenter); for (int j = 1; j < 5; j++) { agregarValor(fila_inicial + i, j, t_tabla.getValueAt(i, j + 1).toString(), styleCenter); } agregarValor(fila_inicial + i, 3, t_tabla.getValueAt(i, 4).toString(), styleRight); } Integer columna = 6; for (int i = 0; i < this.t_tabla2.getRowCount(); i++) { for (int j = 0; j < 8; j++) { agregarValor(fila_inicial + i, columna + j, t_tabla2.getValueAt(i, j + 1).toString(), styleCenter); } } } public void reporteMuertes(Table TTabla, Integer ITipo, Date DFechaIni, Date DFechaFin, Animal AAnimal) { t_tabla = TTabla; animal = AAnimal; tipo = ITipo; this.fecha_ini = DFechaIni; this.fecha_fin = DFechaFin; if (t_tabla.getRowCount() <= 0) { JOptionPane.showMessageDialog(null, "No hay datos, para exportar", gs_mensaje, JOptionPane.INFORMATION_MESSAGE); return; } if (!showOpenFileDialog()) { return; } wb = new HSSFWorkbook(); sheet = wb.createSheet("REPORTE DE MUERTES"); styles(); reporteMuertes(); crearExcel(); } private void reporteMuertes() { cargarLogo(); combinarRango("A1:H1"); combinarRango("A2:H2"); combinarRango("A3:H4"); agregarValor(0, 0, "REPORTE DE MUERTES", styleNameReport); agregarValor(1, 0, "FECHA DE REPORTE: " + formatoDateTime.format(new Date()), styleDateReport); String etiqueta_parametro = ""; switch (tipo) { case 1: etiqueta_parametro = "Muertes de dia " + formatoDate.format(fecha_ini); break; case 2: etiqueta_parametro = "Muertes del " + formatoDate.format(fecha_ini) + " al " + formatoDate.format(fecha_fin); break; case 3: etiqueta_parametro = "Muertes de animal " + animal.arete_visual; break; } agregarValor(2, 0, etiqueta_parametro, styleParamReport); agregarValor(5, 0, "Arete Visual"); agregarValor(5, 1, "Fecha de Muerte"); agregarValor(5, 2, "Necropcia"); agregarValor(5, 3, "Dx de Muerte"); agregarValor(5, 4, "Dias Muerte"); agregarValor(5, 5, "Etapa Reproductiva"); tamaoColumna(0, 12); tamaoColumna(1, 16); tamaoColumna(2, 13); tamaoColumna(3, 15); tamaoColumna(4, 11); tamaoColumna(5, 18); relleno("A6:H6", IndexedColors.DARK_RED.index, IndexedColors.WHITE.index); Integer fila_inicial = 6; for (int i = 0; i < this.t_tabla.getRowCount(); i++) { agregarValor(fila_inicial + i, 0, t_tabla.getValueAt(i, 1).toString(), styleCenter); for (int j = 1; j < 6; j++) { agregarValor(fila_inicial + i, j, t_tabla.getValueAt(i, j + 1).toString(), styleCenter); } } } public void reporteTraspasos(Table aTabla, Integer tipo, Date fecha_ini, Date fecha_fin, Corral corral) { t_tabla = aTabla; if (t_tabla.getRowCount() <= 0) { JOptionPane.showMessageDialog(null, "No hay datos, para exportar", gs_mensaje, JOptionPane.INFORMATION_MESSAGE); return; } if (!showOpenFileDialog()) { return; } wb = new HSSFWorkbook(); sheet = wb.createSheet("REPORTE DE TRASPASOS"); styles(); reporteTraspasos(tipo, fecha_ini, fecha_fin, corral); crearExcel(); } private void reporteTraspasos(Integer tipo, Date fecha_ini, Date fecha_fin, Corral corral) { cargarLogo(); combinarRango("A1:E1"); combinarRango("A2:E2"); combinarRango("A3:E4"); agregarValor(0, 0, "REPORTE DE TRASPASOS", styleNameReport); agregarValor(1, 0, "FECHA DE REPORTE: " + formatoDateTime.format(new Date()), styleDateReport); String etiqueta_parametro = ""; switch (tipo) { case 1: etiqueta_parametro = "Todos los traspasos"; break; case 2: case 3: etiqueta_parametro = "Traspasos del da " + formatoDate.format(fecha_ini); break; // case 3: 4: // etiqueta_parametro = "Traspasos del da " + formatoDate.format(fecha_ini); // break; case 4: etiqueta_parametro = "Traspasos del da " + formatoDate.format(fecha_ini) + " al " + formatoDate.format(fecha_fin); break; } etiqueta_parametro += " del corral " + corral.nombre; // etiqueta_parametro = "Traspasos del dia " + formatoDate.format(fecha_ini); // if (tipo == 1) { // // etiqueta_parametro = "Todos los traspasos"; // } // if (tipo == 3) agregarValor(2, 0, etiqueta_parametro, styleParamReport); agregarValor(5, 0, "Arete Visual"); agregarValor(5, 1, "Arete Electronico"); agregarValor(5, 2, "Fecha de Movimiento"); agregarValor(5, 3, "Grupo Origen"); agregarValor(5, 4, "Grupo Destino"); tamaoColumna(0, 13); tamaoColumna(1, 16); tamaoColumna(2, 20); tamaoColumna(3, 27); tamaoColumna(4, 27); relleno("A6:E6", IndexedColors.DARK_RED.index, IndexedColors.WHITE.index); Integer fila_inicial = 6; for (int i = 0; i < this.t_tabla.getRowCount(); i++) { for (int j = 0; j < 5; j++) { agregarValor(fila_inicial + i, j, t_tabla.getValueAt(i, j + 1).toString(), styleCenter); } } } public void reporteAnimalesHospital(Table aTabla) { t_tabla = aTabla; if (t_tabla.getRowCount() <= 0) { JOptionPane.showMessageDialog(null, "No hay datos, para exportar", gs_mensaje, JOptionPane.INFORMATION_MESSAGE); return; } if (!showOpenFileDialog()) { return; } wb = new HSSFWorkbook(); sheet = wb.createSheet("REPORTE DE ANIMALES EN HOSPITAL"); styles(); reporteAnimalesHospital(); crearExcel(); } private void reporteAnimalesHospital() { cargarLogo(); combinarRango("A1:H1"); combinarRango("A2:H2"); combinarRango("A3:H4"); agregarValor(0, 0, "REPORTE DE ANIMALES EN HOSPITAL", styleNameReport); agregarValor(1, 0, "FECHA DE REPORTE: " + formatoDateTime.format(new Date()), styleDateReport); agregarValor(5, 0, "Arete Visual"); agregarValor(5, 1, "Fecha Entrada"); agregarValor(5, 2, "Dias en Hospital"); agregarValor(5, 3, "Causa Entrada"); agregarValor(5, 4, "Observaciones"); tamaoColumna(0, 13); tamaoColumna(1, 14); tamaoColumna(2, 15); tamaoColumna(3, 27); tamaoColumna(4, 14); relleno("A6:H6", IndexedColors.DARK_RED.index, IndexedColors.WHITE.index); Integer fila_inicial = 6; for (int i = 0; i < this.t_tabla.getRowCount(); i++) { for (int j = 0; j < 5; j++) { agregarValor(fila_inicial + i, j, t_tabla.getValueAt(i, j).toString(), styleCenter); } agregarValor(fila_inicial + i, 2, Integer.parseInt(t_tabla.getValueAt(i, 3).toString())); asignarEstilo(fila_inicial + i, 3, styleleft); asignarEstilo(fila_inicial + i, 4, styleleft); } } public void reporteHistoricoHospital(Table aTabla) { t_tabla = aTabla; if (t_tabla.getRowCount() <= 0) { JOptionPane.showMessageDialog(null, "No hay datos, para exportar", gs_mensaje, JOptionPane.INFORMATION_MESSAGE); return; } if (!showOpenFileDialog()) { return; } wb = new HSSFWorkbook(); sheet = wb.createSheet("REPORTE DE HISTORICO DE HOSPITAL"); styles(); Excel.this.reporteHistoricoHospital(); crearExcel(); } private void reporteHistoricoHospital() { cargarLogo(); combinarRango("A1:H1"); combinarRango("A2:H2"); //combinarRango("A3:H4"); agregarValor(0, 0, "REPORTE DE HISTORICO DE HOSPITAL", styleNameReport); agregarValor(1, 0, "FECHA DE REPORTE: " + formatoDateTime.format(new Date()), styleDateReport); agregarValor(5, 0, "Arete Visual"); agregarValor(5, 1, "Fecha Entrada"); agregarValor(5, 2, "Fecha de Salida"); agregarValor(5, 3, "Dias en Hospital"); agregarValor(5, 4, "Causa Entrada"); agregarValor(5, 5, "Observaciones"); tamaoColumna(0, 13); tamaoColumna(1, 14); tamaoColumna(2, 15); tamaoColumna(3, 15); tamaoColumna(4, 27); tamaoColumna(5, 14); tamaoColumna(6, 13); tamaoColumna(7, 11); tamaoColumna(8, 11); relleno("A6:H6", IndexedColors.DARK_RED.index, IndexedColors.WHITE.index); Integer fila_inicial = 6; for (int i = 0; i < this.t_tabla.getRowCount(); i++) { agregarValor(fila_inicial + i, 0, t_tabla.getValueAt(i, 1).toString(), styleCenter); // sheet.createRow(fila_inicial + i).createCell(0).setCellValue(t_tabla.getValueAt(i, 1).toString()); // sheet.getRow(fila_inicial + i).getCell(0).setCellStyle(styleCenter); for (int j = 1; j < 6; j++) { agregarValor(fila_inicial + i, j, t_tabla.getValueAt(i, j + 1).toString(), styleCenter); //sheet.getRow(fila_inicial + i).createCell(j).setCellValue(t_tabla.getValueAt(i, j + 1).toString()); //sheet.getRow(fila_inicial + i).getCell(j).setCellStyle(styleCenter); } agregarValor(fila_inicial + i, 3, Integer.parseInt(t_tabla.getValueAt(i, 4).toString())); asignarEstilo(fila_inicial + i, 3, styleleft); asignarEstilo(fila_inicial + i, 5, styleleft); //sheet.getRow(fila_inicial + i).getCell(3).setCellValue(Integer.parseInt(t_tabla.getValueAt(i, 4).toString())); //sheet.getRow(fila_inicial + i).getCell(4).setCellStyle(styleleft); //sheet.getRow(fila_inicial + i).getCell(5).setCellStyle(styleleft); } } public void reporteMedicinasAnimal(Table aTabla, Animal Aanimal, Double costo) { t_tabla = aTabla; animal = Aanimal; if (t_tabla.getRowCount() <= 0) { JOptionPane.showMessageDialog(null, "No hay datos, para exportar", gs_mensaje, JOptionPane.INFORMATION_MESSAGE); return; } if (!showOpenFileDialog()) { return; } wb = new HSSFWorkbook(); sheet = wb.createSheet("REPORTE DE MEDICINAS"); styles(); reporteMedicinaAnimal(costo); crearExcel(); } private void reporteMedicinaAnimal(Double costo) { cargarLogo(); combinarRango("A1:H1"); combinarRango("A2:H2"); combinarRango("A3:H4"); agregarValor(0, 0, "REPORTE DE MEDICINA ANIMAL ID: " + animal.arete_visual, styleNameReport); agregarValor(1, 0, "FECHA DE REPORTE: " + formatoDateTime.format(new Date()), styleDateReport); agregarValor(2, 0, "Costo Total en Medicinas: $ " + costo + " MXN", styleParamReport); agregarValor(5, 0, "Codigo"); agregarValor(5, 1, "Medicina"); agregarValor(5, 2, "Unidades"); agregarValor(5, 3, "Fecha"); agregarValor(5, 4, "Dosis"); agregarValor(5, 5, "Costo"); agregarValor(5, 6, "Importe"); tamaoColumna(0, 9); tamaoColumna(1, 26); tamaoColumna(2, 11); tamaoColumna(3, 12); tamaoColumna(4, 10); tamaoColumna(5, 10); tamaoColumna(6, 13); tamaoColumna(7, 11); tamaoColumna(8, 11); relleno("A6:H6", IndexedColors.DARK_RED.index, IndexedColors.WHITE.index); Integer fila_inicial = 6; for (int i = 0; i < this.t_tabla.getRowCount(); i++) { agregarValor(fila_inicial + i, 0, t_tabla.getValueAt(i, 1).toString(), styleCenter); //sheet.getRow(fila_inicial + i).getCell(0).setCellStyle(styleCenter); for (int j = 1; j < 7; j++) { agregarValor(fila_inicial + i, j, t_tabla.getValueAt(i, j + 1).toString(), styleCenter); } agregarValor(fila_inicial + i, 4, t_tabla.getValueAt(i, 5).toString(), styleRight); asignarEstilo(fila_inicial + i, 5, styleRight); asignarEstilo(fila_inicial + i, 6, styleRight); //sheet.getRow(fila_inicial + i).getCell(4).setCellStyle(styleRight); //sheet.getRow(fila_inicial + i).getCell(5).setCellStyle(styleRight); //sheet.getRow(fila_inicial + i).getCell(6).setCellStyle(styleRight); } } public void reporteAnimalGrafica(Table aTabla, JFreeChart Agrafica, Animal Aanimal) { t_tabla = aTabla; grafica = Agrafica; animal = Aanimal; if (t_tabla.getRowCount() <= 0) { System.out.println("No hay Datos"); JOptionPane.showMessageDialog(null, "No hay datos, para exportar", gs_mensaje, JOptionPane.INFORMATION_MESSAGE); return; } if (!showOpenFileDialog()) { return; } wb = new HSSFWorkbook(); sheet = wb.createSheet("REPORTE DE ANIMAL"); styles(); reporteAnimalGraficaCrear(); crearExcel(); } private void reporteAnimalGraficaCrear() { combinarRango("A3:E3"); combinarRango("A7:E7"); combinarRango("A9:B9"); //combinarRango("A10:B10"); combinarRango("C10:D10"); combinarRango("A32:B32"); combinarRango("D32:E32"); agregarValor(2, 0, "REPORTE DE ANIMAL", styleNameReport); agregarValor(6, 0, "GRAFICA DE GANANCIA DE PESO", styleCenter); agregarValor(8, 3, "FECHA DE REPORTE: ", styleRight); agregarValor(8, 4, formatoDateTime.format(new Date()), styleDateReport); agregarValor(8, 0, "PESOS", styleCenter); agregarValor(9, 0, "Fecha"); agregarValor(9, 1, "Peso"); relleno("A10", IndexedColors.DARK_RED.index, IndexedColors.WHITE.index); relleno("B10", IndexedColors.DARK_RED.index, IndexedColors.WHITE.index); agregarValor(31, 0, "DATOS INFORMATIVOS", styleCenter); relleno("A32:B32", IndexedColors.DARK_RED.index, IndexedColors.WHITE.index); agregarValor(32, 0, "IDE", this.styleleft); agregarValor(32, 1, animal.arete_electronico, this.styleCenter); agregarValor(33, 0, "IDV", this.styleleft); agregarValor(33, 1, animal.arete_visual, this.styleCenter); agregarValor(34, 0, "A. SIINIGA", this.styleleft); agregarValor(34, 1, animal.arete_siniiga, this.styleCenter); agregarValor(35, 0, "A. CAMPAA", this.styleleft); agregarValor(35, 1, animal.arete_campaa, this.styleCenter); agregarValor(36, 0, "CORRAL", this.styleleft); manejadorBD.consulta("SELECT c.nombre\n" + "FROM corral c, animal a, corral_animal ca\n" + "WHERE c.id_corral = ca.id_corral\n" + "AND a.id_animal = ca.id_animal\n" + "AND a.id_animal = '" + animal.id_animal + "';"); agregarValor(36, 1, manejadorBD.getValorString(0, 0), this.styleCenter); agregarValor(37, 0, "RAZA", this.styleleft); agregarValor(37, 1, animal.raza.descripcion, this.styleCenter); agregarValor(38, 0, "SEXO", this.styleleft); agregarValor(38, 1, animal.sexo.descripcion, this.styleCenter); agregarValor(39, 0, "PROVEEDOR", this.styleleft); manejadorBD.consulta("SELECT p.descripcion \n" + "FROM animal a, proveedor p\n" + "WHERE a.id_proveedor = p.id_proveedor\n" + "AND a.id_animal = '" + animal.id_animal + "';"); agregarValor(39, 1, manejadorBD.getValorString(0, 0), this.styleCenter); agregarValor(40, 0, "COMPRA", this.styleleft); agregarValor(40, 1, animal.compra, this.styleCenter); agregarValor(31, 3, "RENDIMIENTOS", styleCenter); relleno("D32:E32", IndexedColors.DARK_RED.index, IndexedColors.WHITE.index); agregarValor(32, 3, "GANANCIA DE PESO DIARIO", this.styleRight); manejadorBD.consulta("SELECT COALESCE(ROUND((MAX(peso) - MIN(peso)) / DATEDIFF(MAX(fecha), MIN(fecha)),2),0.00) \n" + "FROM movimiento m, detalle_movimiento d, rancho r \n" + "WHERE m.id_rancho = r.id_rancho\n" + "AND m.id_concepto = r.con_pesaje\n" + "AND ( m.id_rancho = d.id_rancho\n" + "AND m.id_concepto = d.id_concepto\n" + "AND m.id_movimiento = d.id_movimiento)" + "AND d.id_animal = '" + animal.id_animal + "';"); agregarValor(32, 4, manejadorBD.getValorString(0, 0) + " Kg/da", this.styleCenter); agregarValor(33, 3, "KILOS GANADOS", this.styleRight); manejadorBD.consulta("SELECT COALESCE((a.peso_actual - a.peso_compra),0.00) \n" + "FROM animal a \n" + "WHERE a.id_animal = '" + animal.id_animal + "';"); double aux = manejadorBD.getValorDouble(0, 0); agregarValor(33, 4, aux + " kg", this.styleCenter); agregarValor(34, 3, "GANANCIA EN PESOS", this.styleRight); manejadorBD.consulta("SELECT (COALESCE(c.precio_carne, 0.0) * " + aux + ")\n" + "FROM configuracion c;"); aux = manejadorBD.getValorDouble(0, 0); agregarValor(34, 4, "$ " + aux, this.styleCenter); agregarValor(35, 3, "GASTO EN MEDICAMENTOS", this.styleRight); manejadorBD.consulta("SELECT COALESCE(SUM(round(round(rm.costo_promedio,2) * ma.dosis,2)),0.00)\n" + "FROM medicina_animal ma, medicina m, unidades_de_medida um, rancho_medicina rm\n" + "WHERE ma.id_medicina = m.id_medicina AND m.id_unidad = um.id_unidad \n" + "AND rm.id_medicina = ma.id_medicina\n" + "AND ma.id_rancho = '" + rancho.id_rancho + "' \n" + "AND ma.id_animal = '" + animal.id_animal + "'\n" + "AND rm.id_rancho = '" + rancho.id_rancho + "';"); agregarValor(35, 4, "$ " + manejadorBD.getValorDouble(0, 0), this.styleCenter); agregarValor(36, 3, "KILOS DE ALIMENTO CONSUMIDO", this.styleRight); agregarValor(37, 3, "GASTO EN ALIMENTO", this.styleRight); agregarValor(38, 3, "D?AS EN EL CORRAL", this.styleRight); manejadorBD.consulta("SELECT DATEDIFF(NOW(),a.fecha_ingreso)\n" + "FROM animal a\n" + "WHERE a.id_animal = '" + animal.id_animal + "';"); agregarValor(38, 4, manejadorBD.getValorInt(0, 0) + " das", this.styleCenter); tamaoColumna(0, 15); tamaoColumna(1, 20); tamaoColumna(2, 0); tamaoColumna(3, 32); tamaoColumna(4, 13); Integer fila_inicial = 10; Double peso = 0.0; Date fecha = null; for (int i = 0; i < this.t_tabla.getRowCount(); i++) { peso = Double.parseDouble(t_tabla.getValueAt(i, 1).toString().substring(0, t_tabla.getValueAt(i, 1).toString().length() - 2)); try { fecha = formatoDate.parse(t_tabla.getValueAt(i, 0).toString().substring(0, 11)); } catch (ParseException ex) { Logger.getLogger(Excel.class .getName()).log(Level.SEVERE, null, ex); } agregarValor(fila_inicial + i, 0, formatoDate.format(fecha), styleCenter); //sheet.createRow(fila_inicial + i).createCell(0).setCellValue(formatoDate.format(fecha)); agregarValor(fila_inicial + i, 1, peso, styleRight); //sheet.getRow(fila_inicial + i).createCell(1).setCellValue(peso); // sheet.getRow(fila_inicial + i).getCell(0).setCellStyle(styleCenter); //sheet.getRow(fila_inicial + i).getCell(1).setCellStyle(styleRight); } graficar((short) 3, 9, (short) 5, 17); cargarLogo1(0, 4, 0.22); cargarLogo2(0, 0, 0.75); } public void reporteEntrada(Date afecha) { fecha_ini = afecha; t_tabla = cargarMovimientosEntrada(afecha); if (t_tabla.getRowCount() <= 0) { System.out.println("No hay Datos"); JOptionPane.showMessageDialog(null, "No hay datos, para exportar", gs_mensaje, JOptionPane.INFORMATION_MESSAGE); return; } if (!showOpenFileDialog()) { return; } wb = new HSSFWorkbook(); sheet = wb.createSheet("Reporte de Entrada"); styles(); reporteEntradaCrear(); crearExcel(); } private void reporteEntradaCrear() { cargarLogo(); combinarRango("A1:H1"); combinarRango("A2:H2"); combinarRango("A3:H4"); agregarValor(0, 0, "REPORTE DE ENTRADA", styleNameReport); agregarValor(1, 0, "FECHA DE REPORTE: " + formatoDateTime_11.format(new Date()), styleDateReport); agregarValor(2, 0, "Fecha de Entrada de Animales: " + formatoDate.format(this.fecha_ini), styleDateReport); agregarValor(5, 0, "Arete Visual"); agregarValor(5, 1, "Arete Electronico"); agregarValor(5, 2, "Corral"); agregarValor(5, 3, "Proveedor"); agregarValor(5, 4, "Fecha de Compra"); agregarValor(5, 5, "Arete Siniiga"); agregarValor(5, 6, "Arete Campaa"); agregarValor(5, 7, "Sexo"); agregarValor(5, 8, "Fecha de Manejo"); agregarValor(5, 9, "Numero de Lote"); agregarValor(5, 10, "Compra"); agregarValor(5, 11, "Peso Actual (Kg)"); agregarValor(5, 12, "Peso de Compra"); tamaoColumna(0, 10); tamaoColumna(1, 14); tamaoColumna(2, 18); tamaoColumna(3, 10); tamaoColumna(4, 18); tamaoColumna(5, 14); tamaoColumna(6, 15); // tamaoColumna(7, 16); tamaoColumna(7, 10); tamaoColumna(8, 18); tamaoColumna(9, 16); tamaoColumna(10, 13); tamaoColumna(11, 16); tamaoColumna(12, 16); relleno("A6:P6", IndexedColors.DARK_RED.index, IndexedColors.WHITE.index); Integer fila_inicial = 6; for (int i = 0; i < this.t_tabla.getRowCount(); i++) { agregarValor(fila_inicial + i, 0, t_tabla.getValueAt(i, 0).toString(), styleCenter); for (int j = 1; j < 13; j++) { agregarValor(fila_inicial + i, j, t_tabla.getValueAt(i, j).toString(), styleCenter); } asignarEstilo(fila_inicial + i, 11, styleRight); asignarEstilo(fila_inicial + i, 12, styleRight); } } public void reporteCorral(Corral aCorral, JFreeChart Agrafica) { corral = aCorral; grafica = Agrafica; t_tabla = cargarAnimalesCorral_(corral.id_corral); if (t_tabla.getRowCount() <= 0) { System.out.println("No hay Datos"); JOptionPane.showMessageDialog(null, "No hay datos, para exportar", gs_mensaje, JOptionPane.INFORMATION_MESSAGE); return; } if (!showOpenFileDialog()) { return; } wb = new HSSFWorkbook(); sheet = wb.createSheet("Reporte de Inventario"); sheet.setDisplayGridlines(false); styles(); reporteCorralCrear(); crearExcel(); } private void reporteCorralCrear() { Double total_kilos, peso_minimo, peso_maximo, peso_promedio, alimento_ingresado, peso_ganancia; Integer fila_encabezado = 18; //cargarLogo(); cargarLogo2(1, 0, 1.0); cargarLogo1(1, 11, 0.22); combinarRango("A1:M4"); //combinarRango("A2:M2"); //combinarRango("A3:M4"); agregarValor(0, 0, "REPORTE DE INVENTARIO", styleNameReport); /** * Tabla Datos informativos /* */ Integer fila_tablas = 7; combinarRango("A" + (fila_tablas + 1) + ":C" + (fila_tablas + 1)); relleno("A" + (fila_tablas + 1) + ":C" + (fila_tablas + 1), IndexedColors.DARK_RED.index, IndexedColors.WHITE.index); agregarValor(fila_tablas, 0, "DATOS INFORMATIVOS", styleTituloTabla); agregarValor(fila_tablas + 1, 0, "FECHA ELABORACIN", styleEtiquetaTabla); agregarValor(fila_tablas + 2, 0, "NOMBRE DEL CORRAL", styleEtiquetaTabla); agregarValor(fila_tablas + 3, 0, "TOTAL DE ALIMENTO INGRESADO", styleEtiquetaTabla); agregarValor(fila_tablas + 4, 0, "TOTAL KILOS INICIO DE CORRAL", styleEtiquetaTabla); agregarValor(fila_tablas + 5, 0, "TOTAL KILOS FINAL DE CORRAL", styleEtiquetaTabla); agregarValor(fila_tablas + 6, 0, "GANANCIA DE PESO DEL CORRAL", styleEtiquetaTabla); agregarValor(fila_tablas + 7, 0, "PESO MAXIMO", styleEtiquetaTabla); agregarValor(fila_tablas + 8, 0, "PESO MINIMO", styleEtiquetaTabla); agregarValor(fila_tablas + 9, 0, "PESO PROMEDIO", styleEtiquetaTabla); agregarValor(fila_tablas + 1, 2, formatoDateTime.format(new Date()), styleCenter); agregarValor(fila_tablas + 2, 2, corral.nombre, styleCenter); agregarValor(fila_tablas + 3, 2, new FormatoNumero(corral.alimento_ingresado.toString()).convierte(corral.alimento_ingresado), styleRight); agregarValor(fila_tablas + 4, 2, new FormatoNumero(corral.alimento_ingresado.toString()).convierte(corral.total_kilos_inicial), styleRight); agregarValor(fila_tablas + 5, 2, new FormatoNumero(corral.total_kilos.toString()).convierte(corral.total_kilos), styleRight); agregarValor(fila_tablas + 6, 2, new FormatoNumero(corral.peso_ganancia.toString()).convierte(corral.peso_ganancia), styleRight); agregarValor(fila_tablas + 7, 2, new FormatoNumero(corral.peso_maximo.toString()).convierte(corral.peso_maximo), styleRight); agregarValor(fila_tablas + 8, 2, new FormatoNumero(corral.peso_minimo.toString()).convierte(corral.peso_minimo), styleRight); agregarValor(fila_tablas + 9, 2, new FormatoNumero(corral.peso_promedio.toString()).convierte(corral.peso_promedio), styleRight); String rango; for (int i = fila_tablas + 2; i <= 17; i++) { rango = "A" + i + ":B" + i; combinarRango(rango); this.bordes(rango, CellStyle.BORDER_THIN); this.bordes("C" + i + ":C" + i, CellStyle.BORDER_THIN); } this.bordes("A" + (fila_tablas + 1) + ":C" + (fila_tablas + 1), CellStyle.BORDER_MEDIUM); this.bordes("A" + (fila_tablas + 1) + ":C" + (fila_tablas + 10), CellStyle.BORDER_MEDIUM); /** * Tabla Resultados y Rendimientos */ combinarRango("E" + (fila_tablas + 1) + ":H" + (fila_tablas + 1)); relleno("E" + (fila_tablas + 1) + ":H" + (fila_tablas + 1), IndexedColors.DARK_RED.index, IndexedColors.WHITE.index); agregarValor(fila_tablas, 4, "DATOS Y RENDIMIENTOS", styleTituloTabla); agregarValor(fila_tablas + 1, 4, "GANANCIA DE PESO X PRECIO DE CARNE", styleEtiquetaTabla); agregarValor(fila_tablas + 2, 4, "COSTO TOTAL DE MEDICAMENTOS INGRESADOS", styleEtiquetaTabla); agregarValor(fila_tablas + 3, 4, "COSTO TOTAL DE ALIMENTO INGRESADO", styleEtiquetaTabla); agregarValor(fila_tablas + 4, 4, "UTILIDAD IDEAL SIN GASTOS DE OPERACIN", styleEtiquetaTabla); agregarValor(fila_tablas + 5, 4, "SUELDOS", styleEtiquetaTabla); agregarValor(fila_tablas + 6, 4, "GASTOS FIJOS", styleEtiquetaTabla); agregarValor(fila_tablas + 7, 4, "GASTOS VARIOS", styleEtiquetaTabla); agregarValor(fila_tablas + 8, 4, "UTILIDAD FINAL", styleEtiquetaTabla); //agregarValor(14, 3, "PESO PROMEDIO", styleEtiquetaTabla); agregarValor(fila_tablas + 1, 7, new FormatoNumero(corral.ganancia_precio_carne.toString()).convierte(corral.ganancia_precio_carne), styleRight); agregarValor(fila_tablas + 2, 7, new FormatoNumero(corral.total_costo_medicina.toString()).convierte(corral.total_costo_medicina), styleRight); agregarValor(fila_tablas + 3, 7, new FormatoNumero(corral.costo_alimento.toString()).convierte(corral.costo_alimento), styleRight); agregarValor(fila_tablas + 4, 7, new FormatoNumero(corral.utilidad_s_gastos.toString()).convierte(corral.utilidad_s_gastos), styleRight); for (int i = fila_tablas + 2; i <= 17; i++) { rango = "E" + i + ":G" + i; combinarRango(rango); this.bordes(rango, CellStyle.BORDER_THIN); this.bordes("H" + i + ":H" + i, CellStyle.BORDER_THIN); } this.bordes("E" + (fila_tablas + 1) + ":H" + (fila_tablas + 1), CellStyle.BORDER_MEDIUM); this.bordes("E" + (fila_tablas + 1) + ":H" + (fila_tablas + 10), CellStyle.BORDER_MEDIUM); agregarValor(fila_encabezado, 0, "ID Visual", styleCenter); agregarValor(fila_encabezado, 1, "ID Electronico", styleCenter); agregarValor(fila_encabezado, 2, "Proveedor", styleCenter); //agregarValor(fila_encabezado, 2, "Corral"); agregarValor(fila_encabezado, 3, ""); // Espacio agregarValor(fila_encabezado, 4, "Ingres", styleCenter); agregarValor(fila_encabezado, 5, "ID Siniiga", styleCenter); agregarValor(fila_encabezado, 6, "ID Campaa", styleCenter); agregarValor(fila_encabezado, 7, "Sexo", styleCenter); agregarValor(fila_encabezado, 8, "Fecha Compra", styleCenter); agregarValor(fila_encabezado, 9, "# Lote", styleCenter); agregarValor(fila_encabezado, 10, "Compra", styleCenter); agregarValor(fila_encabezado, 11, "Peso Actual (Kg)", styleCenter); agregarValor(fila_encabezado, 12, "Peso de Compra", styleCenter); tamaoColumna(0, 9);//A tamaoColumna(1, 15);//B tamaoColumna(2, 14);//C tamaoColumna(3, 1);// Espacio D tamaoColumna(4, 13);//E tamaoColumna(5, 8);//F tamaoColumna(6, 10);//G tamaoColumna(7, 8);//H tamaoColumna(8, 8);//I tamaoColumna(9, 5);//J tamaoColumna(10, 7);//K tamaoColumna(11, 14);//L tamaoColumna(12, 10);//M relleno("A" + (fila_encabezado + 1) + ":N" + (fila_encabezado + 1), IndexedColors.DARK_RED.index, IndexedColors.WHITE.index); Integer fila_inicial = fila_encabezado + 1; Integer columna; for (int i = 0; i < this.t_tabla.getRowCount(); i++) { if (i % 2 > 0) { relleno("A" + (fila_encabezado + 2 + i) + ":N" + (fila_encabezado + 2 + i), IndexedColors.LIGHT_GREEN.index, IndexedColors.BLACK.index); } agregarValor(fila_inicial + i, 0, t_tabla.getValueAt(i, 0).toString(), styleCenter); agregarValor(fila_inicial + i, 3, ""); //sheet.getRow(fila_inicial + i).getCell(0).setCellStyle(bordes(cell.getCellStyle(), HSSFCellStyle.BORDER_THIN)); for (int j = 1; j < 12; j++) { /// System.out.println(i + "," + j); columna = j; if (j > 2) { columna = j + 1; } agregarValor(fila_inicial + i, columna, t_tabla.getValueAt(i, j).toString(), styleCenter); } asignarEstilo(fila_inicial + i, 11, styleRight); asignarEstilo(fila_inicial + i, 12, styleRight); } agregarValor(fila_tablas, 8, "GRAFICA DE GANANCIA DE PESO", styleCenter); relleno("I" + (fila_tablas + 1) + ":M" + (fila_tablas + 1), IndexedColors.DARK_RED.index, IndexedColors.WHITE.index); bordes("I" + (fila_tablas + 1) + ":M" + (fila_tablas + 1), CellStyle.BORDER_MEDIUM); bordes("I" + (fila_tablas + 2) + ":M" + (fila_tablas + 10), CellStyle.BORDER_MEDIUM); /** * GRAFICA /* */ combinarRango("I8:M8"); graficar((short) 8, 8, (short) 13, 17); } public void reporteSalida(Table aTabla) { t_tabla = aTabla; if (t_tabla.getRowCount() <= 0) { System.out.println("No hay Datos"); JOptionPane.showMessageDialog(null, "No hay datos, para exportar", gs_mensaje, JOptionPane.INFORMATION_MESSAGE); return; } if (!showOpenFileDialog()) { return; } wb = new HSSFWorkbook(); sheet = wb.createSheet("Reporte de Salidas"); styles(); reporteSalidaCrear(); crearExcel(); } public void reporteSalida(Date afecha) { fecha_ini = afecha; t_tabla = cargarMovimientosSalida(afecha); if (t_tabla.getRowCount() <= 0) { System.out.println("No hay Datos"); JOptionPane.showMessageDialog(null, "No hay datos, para exportar", gs_mensaje, JOptionPane.INFORMATION_MESSAGE); return; } if (!showOpenFileDialog()) { return; } wb = new HSSFWorkbook(); sheet = wb.createSheet("Reporte de Salidas"); styles(); reporteSalidaCrear(); crearExcel(); } public void reporteCorralCerrado(Corral aCorral, JFreeChart aGrafica) { corral = aCorral; grafica = aGrafica; t_tabla = cargarAnimalesCorralCerrado(corral.id_corral); if (t_tabla.getRowCount() <= 0) { System.out.println("No hay Datos"); JOptionPane.showMessageDialog(null, "No hay datos, para exportar", gs_mensaje, JOptionPane.INFORMATION_MESSAGE); return; } if (!showOpenFileDialog()) { return; } wb = new HSSFWorkbook(); sheet = wb.createSheet("Reporte de Cierre de Corral"); sheet.setDisplayGridlines(false); styles(); reporteCorralCerradoCrear(); crearExcel(); } private void reporteCorralCerradoCrear() { Integer fila_encabezado = 21; cargarLogo2(1, 0, 1.0); cargarLogo1(1, 11, 0.22); combinarRango("A1:M4"); agregarValor(0, 0, "REPORTE DE CIERRE DE CORRAL", styleNameReport); /* * Tabla Datos informativos */ Integer fila_tablas = 7; combinarRango("A" + (fila_tablas + 1) + ":C" + (fila_tablas + 1)); relleno("A" + (fila_tablas + 1) + ":C" + (fila_tablas + 1), IndexedColors.DARK_RED.index, IndexedColors.WHITE.index); agregarValor(fila_tablas, 0, "DATOS INFORMATIVOS", styleTituloTabla); agregarValor(fila_tablas + 1, 0, "NOMBRE DEL CORRAL", styleEtiquetaTabla); agregarValor(fila_tablas + 2, 0, "FECHA DE CIERRE", styleEtiquetaTabla); agregarValor(fila_tablas + 3, 0, "FECHA DE INICIO", styleEtiquetaTabla); agregarValor(fila_tablas + 4, 0, "D?AS CORRAL", styleEtiquetaTabla); agregarValor(fila_tablas + 5, 0, "NMERO DE ANIMALES", styleEtiquetaTabla); agregarValor(fila_tablas + 6, 0, "TOTAL KILOS INICIO", styleEtiquetaTabla); agregarValor(fila_tablas + 7, 0, "PROMEDIO DE KILOS INICIO", styleEtiquetaTabla); agregarValor(fila_tablas + 8, 0, "TOTAL KILOS CIERRE", styleEtiquetaTabla); agregarValor(fila_tablas + 9, 0, "PROMEDIO DE KILOS CIERRE", styleEtiquetaTabla); agregarValor(fila_tablas + 10, 0, "GANANCIA PROMEDIO DE PESO", styleEtiquetaTabla); agregarValor(fila_tablas + 11, 0, "PESO M?XIMO", styleEtiquetaTabla); agregarValor(fila_tablas + 12, 0, "PESO M?NIMO", styleEtiquetaTabla); agregarValor(fila_tablas + 1, 2, corral.nombre, styleCenter); agregarValor(fila_tablas + 2, 2, formatoDate.format(corral.fecha_cierre), styleCenter); agregarValor(fila_tablas + 3, 2, formatoDate.format(corral.fecha_inicio), styleRight); agregarValor(fila_tablas + 4, 2, new FormatoNumero(corral.dias_corral.toString()).convierte(corral.dias_corral), styleRight); agregarValor(fila_tablas + 5, 2, new FormatoNumero(corral.numero_anmales.toString()).convierte(corral.numero_anmales), styleRight); agregarValor(fila_tablas + 6, 2, new FormatoNumero(corral.total_kilos_inicial.toString()).convierte(corral.total_kilos_inicial), styleRight); agregarValor(fila_tablas + 7, 2, new FormatoNumero(String.valueOf(corral.total_kilos_inicial / corral.numero_anmales)).convierte(corral.total_kilos_inicial / corral.numero_anmales), styleRight); agregarValor(fila_tablas + 8, 2, new FormatoNumero(corral.total_kilos.toString()).convierte(corral.total_kilos), styleRight); agregarValor(fila_tablas + 9, 2, new FormatoNumero(corral.peso_promedio.toString()).convierte(corral.peso_promedio), styleRight); if (corral.total_kilos_inicial > corral.total_kilos) { relleno("C18", IndexedColors.RED.index, IndexedColors.WHITE.index); relleno("H12", IndexedColors.RED.index, IndexedColors.WHITE.index); } agregarValor(fila_tablas + 10, 2, new FormatoNumero(corral.ganancia_promedio.toString()).convierte(corral.ganancia_promedio), styleRight); agregarValor(fila_tablas + 11, 2, new FormatoNumero(corral.peso_maximo.toString()).convierte(corral.peso_maximo), styleRight); agregarValor(fila_tablas + 12, 2, new FormatoNumero(corral.peso_minimo.toString()).convierte(corral.peso_minimo), styleRight); String rango; for (int i = fila_tablas + 2; i <= 20; i++) { rango = "A" + i + ":B" + i; combinarRango(rango); this.bordes(rango, CellStyle.BORDER_THIN); this.bordes("C" + i + ":C" + i, CellStyle.BORDER_THIN); } this.bordes("A" + (fila_tablas + 1) + ":C" + (fila_tablas + 1), CellStyle.BORDER_MEDIUM); this.bordes("A" + (fila_tablas + 1) + ":C" + (fila_tablas + 13), CellStyle.BORDER_MEDIUM); /** * Tabla Resultados y Rendimientos */ combinarRango("E" + (fila_tablas + 1) + ":H" + (fila_tablas + 1)); relleno("E" + (fila_tablas + 1) + ":H" + (fila_tablas + 1), IndexedColors.DARK_RED.index, IndexedColors.WHITE.index); agregarValor(fila_tablas, 4, "DATOS Y RENDIMIENTOS", styleTituloTabla); agregarValor(fila_tablas + 1, 4, "TOTAL ALIMENTO INGRESADO", styleEtiquetaTabla); agregarValor(fila_tablas + 2, 4, "CONSUMO DIARIO PROMEDIO", styleEtiquetaTabla); agregarValor(fila_tablas + 3, 4, "CONVERSIN ALIMENTICIA", styleEtiquetaTabla); agregarValor(fila_tablas + 4, 4, "PROMEDIO DE PESO DE LA CANAL", styleEtiquetaTabla); agregarValor(fila_tablas + 5, 4, "PROMEDIO PESO CANAL CALIENTE", styleEtiquetaTabla); agregarValor(fila_tablas + 6, 4, "PROMEDIO PESO CANAL FR?O", styleEtiquetaTabla); agregarValor(fila_tablas + 7, 4, "PORCENTAJE DE MERMA", styleEtiquetaTabla); agregarValor(fila_tablas + 8, 4, "COSTO TOTAL DE MEDICAMENTOS INGRESADOS", styleEtiquetaTabla); agregarValor(fila_tablas + 9, 4, "PROMEDIO DE COSTO DE MEDICAMENTOS INGRESADOS", styleEtiquetaTabla); agregarValor(fila_tablas + 10, 4, "COSTO TOTAL DE TRANSPORTES", styleEtiquetaTabla); agregarValor(fila_tablas + 11, 4, "GASTOS DIRECTOS", styleEtiquetaTabla); agregarValor(fila_tablas + 12, 4, "GASTOS INDIRECTOS", styleEtiquetaTabla); agregarValor(fila_tablas + 1, 7, new FormatoNumero(corral.alimento_ingresado.toString()).convierte(corral.alimento_ingresado), styleRight); agregarValor(fila_tablas + 2, 7, new FormatoNumero(corral.promedio_alimento.toString()).convierte(corral.promedio_alimento), styleRight); agregarValor(fila_tablas + 3, 7, new FormatoNumero(corral.conversion_alimenticia.toString()).convierte(corral.conversion_alimenticia), styleRight); agregarValor(fila_tablas + 7, 7, new FormatoNumero(corral.merma.toString()).convierte(corral.merma), styleRight); agregarValor(fila_tablas + 8, 7, new FormatoNumero(corral.total_costo_medicina.toString()).convierte(corral.total_costo_medicina), styleRight); agregarValor(fila_tablas + 9, 7, new FormatoNumero(corral.medicina_promedio.toString()).convierte(corral.medicina_promedio), styleRight); agregarValor(fila_tablas + 10, 7, new FormatoNumero(corral.total_costo_flete.toString()).convierte(corral.total_costo_flete), styleRight); for (int i = fila_tablas + 2; i <= 20; i++) { rango = "E" + i + ":G" + i; combinarRango(rango); this.bordes(rango, CellStyle.BORDER_THIN); this.bordes("H" + i + ":H" + i, CellStyle.BORDER_THIN); } this.bordes("E" + (fila_tablas + 1) + ":H" + (fila_tablas + 1), CellStyle.BORDER_MEDIUM); this.bordes("E" + (fila_tablas + 1) + ":H" + (fila_tablas + 12), CellStyle.BORDER_MEDIUM); agregarValor(fila_encabezado, 0, "ID Visual", styleCenter); agregarValor(fila_encabezado, 1, "ID Electronico", styleCenter); agregarValor(fila_encabezado, 2, "Proveedor", styleCenter); //agregarValor(fila_encabezado, 2, "Corral"); agregarValor(fila_encabezado, 3, ""); // Espacio agregarValor(fila_encabezado, 4, "Ingreso", styleCenter); agregarValor(fila_encabezado, 5, "ID Siniiga", styleCenter); agregarValor(fila_encabezado, 6, "Peso en Recepcin", styleCenter); agregarValor(fila_encabezado, 7, "Sexo", styleCenter); agregarValor(fila_encabezado, 8, "Compra", styleCenter); agregarValor(fila_encabezado, 9, "# Lote", styleCenter); agregarValor(fila_encabezado, 10, "# Compra", styleCenter); agregarValor(fila_encabezado, 11, "Ultimo Peso(Kg)", styleCenter); agregarValor(fila_encabezado, 12, "Peso de Compra", styleCenter); tamaoColumna(0, 9);//A tamaoColumna(1, 15);//B tamaoColumna(2, 14);//C tamaoColumna(3, 1);// Espacio D tamaoColumna(4, 13);//E tamaoColumna(5, 8);//F tamaoColumna(6, 10);//G tamaoColumna(7, 8);//H tamaoColumna(8, 8);//I tamaoColumna(9, 5);//J tamaoColumna(10, 7);//K tamaoColumna(11, 14);//L tamaoColumna(12, 10);//M relleno("A" + (fila_encabezado + 1) + ":N" + (fila_encabezado + 1), IndexedColors.DARK_RED.index, IndexedColors.WHITE.index); Integer fila_inicial = fila_encabezado + 1; Integer columna; for (int i = 0; i < this.t_tabla.getRowCount(); i++) { if (i % 2 > 0) { relleno("A" + (fila_encabezado + 2 + i) + ":N" + (fila_encabezado + 2 + i), IndexedColors.LIGHT_GREEN.index, IndexedColors.BLACK.index); } agregarValor(fila_inicial + i, 0, t_tabla.getValueAt(i, 0).toString(), styleCenter); agregarValor(fila_inicial + i, 3, ""); //sheet.getRow(fila_inicial + i).getCell(0).setCellStyle(bordes(cell.getCellStyle(), HSSFCellStyle.BORDER_THIN)); for (int j = 1; j < 12; j++) { /// System.out.println(i + "," + j); columna = j; if (j > 2) { columna = j + 1; } agregarValor(fila_inicial + i, columna, t_tabla.getValueAt(i, j).toString(), styleCenter); } asignarEstilo(fila_inicial + i, 11, styleRight); asignarEstilo(fila_inicial + i, 12, styleRight); } agregarValor(fila_tablas, 8, "GRAFICA DE GANANCIA DE PESO", styleCenter); relleno("I" + (fila_tablas + 1) + ":M" + (fila_tablas + 1), IndexedColors.DARK_RED.index, IndexedColors.WHITE.index); bordes("I" + (fila_tablas + 1) + ":M" + (fila_tablas + 1), CellStyle.BORDER_MEDIUM); bordes("I" + (fila_tablas + 2) + ":M" + (fila_tablas + 10), CellStyle.BORDER_MEDIUM); /** * GRAFICA /* */ combinarRango("I8:M8"); graficar((short) 8, 8, (short) 13, 17); } private void reporteSalidaCrear() { cargarLogo(); combinarRango("A1:H1"); combinarRango("A2:H2"); combinarRango("A3:H4"); agregarValor(0, 0, "REPORTE DE SALIDA", styleNameReport); agregarValor(1, 0, "FECHA DE REPORTE: " + formatoDateTime.format(new Date()), styleDateReport); if (this.fecha_ini != null) { agregarValor(2, 0, "Fecha de Salida de Animales: " + formatoDate.format(this.fecha_ini), styleDateReport); } agregarValor(5, 0, "Arete Visual"); agregarValor(5, 1, "Arete Electronico"); agregarValor(5, 2, "Fecha de Movimiento"); agregarValor(5, 3, "Clase de Movimiento"); agregarValor(5, 4, "Numero de Pedido"); agregarValor(5, 5, "Grupo de Origen"); agregarValor(5, 6, "Peso (kg)"); tamaoColumna(0, 15); tamaoColumna(1, 21); tamaoColumna(2, 21); tamaoColumna(3, 21); tamaoColumna(4, 17); tamaoColumna(5, 18); tamaoColumna(6, 11); relleno("A6:H6", IndexedColors.DARK_RED.index, IndexedColors.WHITE.index); Integer fila_inicial = 6; for (int i = 0; i < this.t_tabla.getRowCount(); i++) { agregarValor(fila_inicial + i, 0, t_tabla.getValueAt(i, 1).toString()); agregarValor(fila_inicial + i, 1, t_tabla.getValueAt(i, 2).toString()); agregarValor(fila_inicial + i, 2, t_tabla.getValueAt(i, 4).toString()); agregarValor(fila_inicial + i, 3, t_tabla.getValueAt(i, 5).toString()); agregarValor(fila_inicial + i, 4, t_tabla.getValueAt(i, 6).toString()); agregarValor(fila_inicial + i, 5, t_tabla.getValueAt(i, 7).toString()); agregarValor(fila_inicial + i, 6, t_tabla.getValueAt(i, 8).toString()); asignarEstilo(fila_inicial + i, 0, styleCenter); asignarEstilo(fila_inicial + i, 1, styleCenter); asignarEstilo(fila_inicial + i, 2, styleCenter); asignarEstilo(fila_inicial + i, 3, styleCenter); asignarEstilo(fila_inicial + i, 7, styleRight); } } }