/* * 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 puntocassa; import static net.sf.dynamicreports.report.builder.DynamicReports.*; import java.awt.Color; import java.awt.Cursor; import java.util.ArrayList; import net.sf.dynamicreports.jasper.builder.JasperReportBuilder; import net.sf.dynamicreports.jasper.constant.JasperProperty; import net.sf.dynamicreports.report.builder.column.TextColumnBuilder; import net.sf.dynamicreports.report.builder.style.StyleBuilder; import net.sf.dynamicreports.report.builder.subtotal.AggregationSubtotalBuilder; import net.sf.dynamicreports.report.constant.HorizontalAlignment; import net.sf.dynamicreports.report.constant.PageOrientation; import net.sf.dynamicreports.report.constant.PageType; import net.sf.dynamicreports.report.datasource.DRDataSource; import net.sf.dynamicreports.report.exception.DRException; import net.sf.jasperreports.engine.DefaultJasperReportsContext; import net.sf.jasperreports.engine.JRDataSource; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.view.JasperViewer; /** * * @author Marco */ public class JInternalReport extends javax.swing.JInternalFrame { MyApplication MyA=new MyApplication(); public String TitoloReport = "Regione Toscana - Punto Cassa "; String Ditta="Regione Toscana"; private StyleBuilder boldStyle; private TextColumnBuilder ColonnaPrezzi; public void CreaReport(String[] Col, String[] ColType, Object[][] data) { StyleBuilder boldStyle = stl.style().bold(); //scegliere il size del font StyleBuilder FontStyle = stl.style().setFontSize(7); StyleBuilder boldCenteredStyle = stl.style(boldStyle).setHorizontalAlignment(HorizontalAlignment.CENTER); StyleBuilder boldLeftStyle = stl.style(boldStyle).setHorizontalAlignment(HorizontalAlignment.LEFT); StyleBuilder columnTitleStyle = stl.style(boldCenteredStyle).setBorder(stl.pen1Point()).setBackgroundColor(Color.LIGHT_GRAY); ArrayList columns = new ArrayList(); TextColumnBuilder itemColumn= null; TextColumnBuilder itemPosizione= null; MyApplication MyA=new MyApplication(); for (int i = 0; i < Col.length; i++) { if (Col[i].toString().equalsIgnoreCase("Codice")) { } else { switch (ColType[i]) { case "text": TextColumnBuilder textColumn = col.column(Col[i].replace("_", " "), Col[i], type.stringType()); textColumn.setHorizontalAlignment(HorizontalAlignment.CENTER); columns.add(textColumn); break; case "integer": TextColumnBuilder integerColumn = col.column(Col[i].replace("_", " "), Col[i], type.integerType()); columns.add(integerColumn); if (Col[i].equalsIgnoreCase(MyA.reportColonnaGroupBy)){ itemPosizione=integerColumn; } break; case "boolean": //TextColumnBuilder booleanColumn = col.column(Col[i], Col[i].replace(" ", "_"), type.booleanType()); TextColumnBuilder booleanColumn = col.column(Col[i].replace("_", " "), Col[i], type.stringType()); booleanColumn.setHorizontalAlignment(HorizontalAlignment.CENTER); columns.add(booleanColumn); break; case "float": TextColumnBuilder floatColumn = col.column(Col[i].replace("_", " "), Col[i], type.floatType()); floatColumn.setPattern("#,##0.00"); columns.add(floatColumn); if (Col[i].equalsIgnoreCase(MyA.reportColonnaSomma)){ itemColumn=floatColumn; } ColonnaPrezzi=floatColumn; break; } } } //TextColumnBuilder unitPriceColumn = col.column("Unit price", "unitprice", type.bigDecimalType()); //price = unitPrice * quantity //TextColumnBuilder priceColumn = unitPriceColumn.multiply(quantityColumn).setTitle("Price"); //PercentageColumnBuilder pricePercColumn = col.percentageColumn("Price %", priceColumn); /*TextColumnBuilder rowNumberColumn = col.reportRowNumberColumn("No.") //sets the fixed width of a column, width = 2 * character width .setFixedColumns(2) .setHorizontalAlignment(HorizontalAlignment.CENTER);*/ try { JasperReportBuilder myReport; myReport = report() .setColumnTitleStyle(columnTitleStyle) .highlightDetailEvenRows() .subtotalsAtSummary(createSubtotal("Totale")) // .columns() //.columns(columns) // rowNumberColumn, textColumn, integerColumn, floatColumn) .title(cmp.text(Ditta).setStyle(boldLeftStyle),cmp.text(TitoloReport).setStyle(boldCenteredStyle),cmp.image("..\\risorse\\logoStampa.jpg").setDimension(50,50))//shows report title //.title(cmp.image("pictures\\logoStampa.jpg").setFixedHeight(50),cmp.text(Ditta).setStyle(boldLeftStyle),cmp.text(TitoloReport).setStyle(boldCenteredStyle))//shows report title .pageFooter(cmp.pageXofY().setStyle(boldCenteredStyle))//shows number of page at page footer //.setDataSource(createDataSource(Col,data))//set datasource .setPageFormat(PageType.A5, PageOrientation.LANDSCAPE) //.setPageMargin(margin(20)) //.groupBy(itemColumn) //assegna la grandezza del font al corpo del report .setColumnStyle(FontStyle) .setDataSource(createDataSource(Col,ColType, data)); for (int i = 0; i < columns.size(); i++) { columns.get(i).setStretchWithOverflow(true); columns.get(i).addProperty(JasperProperty.PRINT_KEEP_FULL_TEXT, "true"); Integer Pos=MyA.elencoColonneReport.indexOf(";" + i + "|"); if (Pos>=0){ Integer PosF=MyA.elencoColonneReport.indexOf(";",Pos+1); String T=MyA.elencoColonneReport.substring(Pos, PosF); String E[]=T.split("\\|"); columns.get(i).setFixedWidth(Integer.parseInt(E[1])); } myReport.columns(columns.get(i)); } // if (MyA.reportColonnaGroupBy.length()>0){ // myReport.groupBy(itemPosizione); // myReport.subtotalsAtSummary(sbt.sum(itemColumn)); // //myReport.subtotalsAtFirstGroupFooter(sbt.sum(itemPosizione),sbt.sum(itemColumn)); // } MyA.reportColonnaGroupBy="";MyA.elencoColonneReport=""; JasperPrint reportPrint = myReport.toJasperPrint(); JasperViewer reportViewer = new JasperViewer( DefaultJasperReportsContext.getInstance(), reportPrint, false, null, null ); reportViewer.setTitle(TitoloReport); reportViewer.setVisible(true); setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); } catch (DRException e) { setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); e.printStackTrace(); } } private AggregationSubtotalBuilder createSubtotal(String label) { boldStyle = stl.style().bold().setHorizontalAlignment(HorizontalAlignment.RIGHT); return sbt.sum(ColonnaPrezzi).setLabel(label).setLabelStyle(boldStyle); } private JRDataSource createDataSource(String[] Col,String[] ColType, Object[][] data) { //DRDataSource dataSource = new DRDataSource("item", "quantity", "unitprice"); //dataSource.add("Notebook", 1, new BigDecimal(500)); if (Col[0].toString().equalsIgnoreCase("Codice")) { String[] Col2=new String[Col.length-1]; for(int i=1;i//GEN-BEGIN:initComponents private void initComponents() { setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 400, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 300, Short.MAX_VALUE) ); pack(); }// //GEN-END:initComponents // Variables declaration - do not modify//GEN-BEGIN:variables // End of variables declaration//GEN-END:variables }