JasperReports 动态报表【转载】

借花献佛 了,首先向原创致敬!
 

 jasperreports是一个用来开发报表的组件,通常和ireport来配合使用,可以快速的构建出漂亮的报表。但是ireport画出的报表模板过于死板,就是不支持动态的列。现在要自己实现一个报表模板,先参考ireport工具画出的模板,然后改改,用java代码自己实现一个。

       项目组目前就是这么做的,自己去写一个模板,一个横排的,一个竖排的,应为字段比较多,一般采用竖排的。我们项目组做动态报表没有用DynamicJasper这个开源的动态报表的组件,原因是我觉得他用起来也不太方便。还有就是时间的问题。

       做了两个模板,现在备份下来。首先是横排的模板

Java代码  收藏代码
  1. package cn.hzmc.dynamicreport.example7;  
  2.   
  3. import java.awt.Color;  
  4. import java.sql.Connection;  
  5. import java.sql.SQLException;  
  6. import java.text.SimpleDateFormat;  
  7. import java.util.Date;  
  8. import java.util.HashMap;  
  9. import java.util.Map;  
  10.   
  11. import net.sf.jasperreports.engine.JRAlignment;  
  12. import net.sf.jasperreports.engine.JRException;  
  13. import net.sf.jasperreports.engine.JRReport;  
  14. import net.sf.jasperreports.engine.JasperCompileManager;  
  15. import net.sf.jasperreports.engine.JasperExportManager;  
  16. import net.sf.jasperreports.engine.JasperFillManager;  
  17. import net.sf.jasperreports.engine.JasperPrint;  
  18. import net.sf.jasperreports.engine.JasperReport;  
  19. import net.sf.jasperreports.engine.base.JRBaseLine;  
  20. import net.sf.jasperreports.engine.base.JRBasePrintText;  
  21. import net.sf.jasperreports.engine.design.JRDesignBand;  
  22. import net.sf.jasperreports.engine.design.JRDesignExpression;  
  23. import net.sf.jasperreports.engine.design.JRDesignField;  
  24. import net.sf.jasperreports.engine.design.JRDesignLine;  
  25. import net.sf.jasperreports.engine.design.JRDesignQuery;  
  26. import net.sf.jasperreports.engine.design.JRDesignStaticText;  
  27. import net.sf.jasperreports.engine.design.JRDesignStyle;  
  28. import net.sf.jasperreports.engine.design.JRDesignTextField;  
  29. import net.sf.jasperreports.engine.design.JasperDesign;  
  30.   
  31. import com.capaa.pipe.config.ReadConfig;  
  32.   
  33. class Sample6 {  
  34.     @SuppressWarnings("deprecation")  
  35.     Sample6() throws Exception {  
  36.           
  37.         Connection connection = getConnection();  
  38.           
  39.         JasperDesign jasperDesign = new JasperDesign();  
  40.         JRDesignStyle normalStyle = setReportSytle(jasperDesign);  
  41.           
  42.         JRDesignQuery query = new JRDesignQuery();  
  43.         query.setText("select userid,name,age,sex,password,department from person");  
  44.         jasperDesign.setQuery(query);         
  45.         //addReportFiled(jasperDesign);  
  46.           
  47.         // Title  
  48.         JRDesignBand band = new JRDesignBand();  
  49.         band.setHeight(20);  
  50.         JRDesignStaticText staticText = new JRDesignStaticText();  
  51.           
  52.         staticText.setX(200);  
  53.         staticText.setY(0);  
  54.         staticText.setWidth(200);  
  55.         staticText.setHeight(15);  
  56.         staticText.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_RIGHT);  //设置文本的对齐方式  
  57.         staticText.setStyle(normalStyle);  
  58.         staticText.setText("杭州美创科技有限公司审计报表 ");  
  59.         band.addElement(staticText);          
  60.         JRDesignLine line = new JRDesignLine();       
  61.         line.setX(0);  
  62.         line.setY(19);  
  63.         line.setWidth(500);  
  64.         line.setHeight(1);  
  65.         line.setForecolor(new Color(0x99,0xFF,0xFF));  
  66.         band.addElement(line);  
  67.         jasperDesign.setTitle(band);  
  68.   
  69.         // Page header  
  70.         band = new JRDesignBand();  
  71.         //band.setHeight(20);  
  72.         band.setHeight(0);  
  73.         jasperDesign.setPageHeader(band);  
  74.   
  75.         // Column header  
  76.         band = new JRDesignBand();  
  77.         band.setHeight(20);  
  78.           
  79.          // 开始添加列字段  
  80.         String[] headers = {"USERID","NAME","AGE","SEX","PASSWORD","DEPARTMENT"};  
  81.         String[] alias = {"USERID","NAME","AGE","SEX","PASSWORD","DEPARTMENT"};  
  82.          int X = 80;  
  83.          int columnHeaderfontSize = 10;  
  84.          int fontSize = 8;  
  85.          int textHeight = 20;  
  86.          int textWidth = 80;  
  87.          int detailHeight = 20;  
  88.          JRDesignBand detail = new JRDesignBand();  
  89.          detail.setHeight(detailHeight);  
  90.         for(int i = 0;i<headers.length;i++){  
  91.             JRDesignStaticText jrstaticText = new JRDesignStaticText();    
  92.             jrstaticText.setText(headers[i]);   
  93.               
  94.             jrstaticText.setFontSize(columnHeaderfontSize);    
  95.             jrstaticText.setHeight(textHeight);    
  96.             jrstaticText.setWidth(textWidth);   
  97.             if(i==0){  
  98.                 X=0;  
  99.             }else{  
  100.                 X = 80;  
  101.             }  
  102.             jrstaticText.setX(X * i);    
  103.             jrstaticText.setPdfFontName("STSong-Light");    
  104.             jrstaticText.setPdfEmbedded(true);    
  105.             jrstaticText.setPdfEncoding("UniGB-UCS2-H");    
  106.             jrstaticText.setForecolor(Color.blue);  
  107.         //  jrstaticText.setStretchType((byte)0);  
  108.             band.addElement(jrstaticText);    
  109.               
  110.             // 定义字段,注册字段  
  111.             JRDesignField field = new JRDesignField();  
  112.             field.setName(alias[i]);  
  113.             field.setValueClass(String.class);  
  114.             jasperDesign.addField(field);  
  115.               
  116.             // add text fields for displaying fields  
  117.             JRDesignTextField textField = new JRDesignTextField();  
  118.             JRDesignExpression expression = new JRDesignExpression();  
  119.             expression.setText("$F{" + alias[i] + "}");  
  120.             expression.setValueClass(String.class);  
  121.             textField.setExpression(expression);  
  122.             textField.setFontSize(fontSize);  
  123.             textField.setHeight(textHeight);  
  124.             textField.setWidth(textWidth);  
  125.             textField.setX(X * i);  
  126.             textField.setPdfFontName("STSong-Light");   
  127.             textField.setPdfEmbedded(true);  
  128.             textField.setPdfEncoding("UniGB-UCS2-H");    
  129.             textField.setTextAlignment(JRBasePrintText.HORIZONTAL_ALIGN_CENTER);  
  130.             textField.setLeftBorder(JRBaseLine.PEN_1_POINT);  
  131.             textField.setTopBorder(JRBaseLine.PEN_1_POINT);  
  132.             textField.setRightBorder(JRBaseLine.PEN_1_POINT);  
  133.             textField.setBottomBorder(JRBaseLine.PEN_1_POINT);  
  134.             //textField.setForecolor(new Color(0x99,0xFF,0xFF));  
  135.             textField.setForecolor(Color.blue);  
  136.             textField.setStretchWithOverflow(true);  
  137.             detail.addElement(textField);  
  138.         }  
  139.            
  140.         jasperDesign.setColumnHeader(band);  
  141.           
  142.         //detail  
  143.   ((JRDesignSection)jasperDesign.getDetailSection()).addBand(detail);
  144.         
  145.           
  146.         // Column footer  
  147.         band = new JRDesignBand();  
  148.         band.setHeight(10);  
  149.         jasperDesign.setColumnFooter(band);  
  150.         // Page footer  
  151.         band = new JRDesignBand();  
  152.         band.setHeight(80);  
  153.           
  154.         staticText = new JRDesignStaticText();  
  155.         staticText.setX(0);   
  156.         staticText.setY(0);  
  157.         staticText.setWidth(100);  
  158.         staticText.setHeight(20);  
  159.         staticText.setPdfFontName("STSong-Light");     
  160.         staticText.setPdfEmbedded(true);     
  161.         staticText.setPdfEncoding("UniGB-UCS2-H");    
  162.         SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");  
  163.         staticText.setText(sdf.format(new Date()));  
  164.         band.addElement(staticText);  
  165.           
  166.           
  167.         JRDesignTextField textField = new JRDesignTextField();  
  168.         textField.setX(450);   
  169.         textField.setY(0);  
  170.         textField.setWidth(100);  
  171.         textField.setHeight(20);  
  172.         textField.setPdfFontName("STSong-Light");     
  173.         textField.setPdfEmbedded(true);     
  174.         textField.setPdfEncoding("UniGB-UCS2-H");    
  175.           
  176.         JRDesignExpression expression = new JRDesignExpression();  
  177.          expression = new JRDesignExpression();  
  178.          expression.setValueClass(java.lang.Integer.class);       
  179.          expression.setText("$V{PAGE_NUMBER}");  
  180.            
  181.         textField.setExpression(expression);  
  182.         band.addElement(textField);  
  183.         jasperDesign.setPageFooter(band);  
  184.           
  185.         System.out.println(expression.getText());  
  186.         // Summary  
  187.         band = new JRDesignBand();  
  188.         band.setHeight(0);  
  189.   
  190.         /* **************************************************************** */  
  191.         
  192.         jasperDesign.setSummary(band);  
  193.   
  194.         System.out.println("After Connection");  
  195.   
  196.         JasperReport jasperReport = JasperCompileManager  
  197.                 .compileReport(jasperDesign);  
  198.         Map parameters = new HashMap();  
  199.         System.out.println("After Parameter");  
  200.         JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,  
  201.                 parameters, connection);  
  202.         System.out.println("After Print");  
  203.           
  204.         JasperExportManager.exportReportToHtmlFile(jasperPrint, "D://test2.html");  
  205.         JasperExportManager.exportReportToPdfFile(jasperPrint, "D://test2.pdf");  
  206.         JasperExportManager.exportReportToXmlFile(jasperPrint, "D://test2.xml", false);  
  207.           
  208.         System.out.println("After Export");  
  209.   
  210.     }  
  211.   
  212.     private void addReportFiled(JasperDesign jasperDesign) throws JRException {  
  213.         JRDesignField field;  
  214.         field=new JRDesignField();  
  215.         field.setName("USERID");  
  216.         field.setValueClass(java.math.BigDecimal.class);  
  217.         jasperDesign.addField(field);  
  218.           
  219.         field = new JRDesignField();  
  220.         field.setName("NAME");  
  221.         field.setValueClass(java.lang.String.class);  
  222.         jasperDesign.addField(field);  
  223.           
  224.         field = new JRDesignField();  
  225.         field.setName("AGE");  
  226.         field.setValueClass(java.lang.String.class);  
  227.         jasperDesign.addField(field);  
  228.           
  229.         field = new JRDesignField();  
  230.         field.setName("SEX");  
  231.         field.setValueClass(java.lang.String.class);  
  232.         jasperDesign.addField(field);  
  233.           
  234.         field = new JRDesignField();  
  235.         field.setName("PASSWORD");  
  236.         field.setValueClass(java.lang.String.class);  
  237.         jasperDesign.addField(field);  
  238.           
  239.         field = new JRDesignField();  
  240.         field.setName("DEPARTMENT");  
  241.         field.setValueClass(java.lang.String.class);  
  242.         jasperDesign.addField(field);  
  243.     }  
  244.   
  245.     private JRDesignStyle setReportSytle(JasperDesign jasperDesign)  
  246.             throws JRException {  
  247.         jasperDesign.setName("SampleReport");  
  248.         jasperDesign.setPageWidth(595);  
  249.         jasperDesign.setPageHeight(842);  
  250.         jasperDesign.setColumnWidth(535);  
  251.         jasperDesign.setColumnSpacing(0);  
  252.           
  253.         jasperDesign.setLeftMargin(30);  
  254.         jasperDesign.setRightMargin(30);  
  255.         jasperDesign.setTopMargin(20);  
  256.         jasperDesign.setBottomMargin(20);  
  257.         // whenNoDataType="NoPages"  
  258.         jasperDesign.setWhenNoDataType(JRReport.WHEN_NO_DATA_TYPE_BLANK_PAGE);  
  259.         // isTitleNewPage="false"  
  260.         jasperDesign.setTitleNewPage(false);  
  261.         // isSummaryNewPage="false"  
  262.         jasperDesign.setSummaryNewPage(false);  
  263.     //  jasperDesign.setOrientation(JRReport.ORIENTATION_PORTRAIT);  
  264.     //  jasperDesign.setPrintOrder(JRReport.PRINT_ORDER_VERTICAL);  
  265.           
  266.         JRDesignStyle normalStyle = new JRDesignStyle();  
  267.         normalStyle.setName("Arial_Normal");  
  268.         normalStyle.setDefault(true);  
  269.         normalStyle.setFontName("Arial");  
  270.         normalStyle.setFontSize(12);  
  271.         normalStyle.setPdfFontName("STSong-Light");  
  272.         normalStyle.setPdfEncoding("UniGB-UCS2-H");  
  273.         normalStyle.setPdfEmbedded(true);  
  274.         jasperDesign.addStyle(normalStyle);  
  275.   
  276.         JRDesignStyle boldStyle = new JRDesignStyle();  
  277.         boldStyle.setName("Arial_Bold");  
  278.         boldStyle.setFontName("Arial");  
  279.         boldStyle.setFontSize(12);  
  280.         boldStyle.setBold(true);  
  281.         boldStyle.setPdfFontName("STSong-Light");  
  282.         boldStyle.setPdfEncoding("UniGB-UCS2-H");  
  283.         boldStyle.setPdfEmbedded(true);  
  284.         jasperDesign.addStyle(boldStyle);  
  285.   
  286.         JRDesignStyle italicStyle = new JRDesignStyle();  
  287.         italicStyle.setName("Arial_Italic");  
  288.         italicStyle.setFontName("Arial");  
  289.         italicStyle.setFontSize(12);  
  290.         italicStyle.setItalic(true);  
  291.         italicStyle.setPdfFontName("STSong-Light");  
  292.         italicStyle.setPdfEncoding("UniGB-UCS2-H");  
  293.         italicStyle.setPdfEmbedded(true);  
  294.         jasperDesign.addStyle(italicStyle);  
  295.         return normalStyle;  
  296.     }  
  297.   
  298.     private Connection getConnection() throws SQLException {  
  299.         Connection connection = ReadConfig.getProduceInstance().getDataSource()  
  300.                 .getConnection();  
  301.         return connection;  
  302.     }  
  303.   
  304. }  
  305.   
  306.     class Sample {  
  307.     public static void main(String args[]) throws Exception {  
  308.         Sample6 obj = new Sample6();  
  309.   
  310.     }  
  311.   
  312. }  

 然后是竖排的模板

Java代码  收藏代码
  1. package cn.hzmc.dynamicreport.example8;  
  2.   
  3. import java.awt.Color;  
  4. import java.sql.Connection;  
  5. import java.sql.SQLException;  
  6. import java.text.SimpleDateFormat;  
  7. import java.util.Date;  
  8. import java.util.HashMap;  
  9. import java.util.Map;  
  10.   
  11. import net.sf.jasperreports.engine.JRAlignment;  
  12. import net.sf.jasperreports.engine.JRException;  
  13. import net.sf.jasperreports.engine.JRReport;  
  14. import net.sf.jasperreports.engine.JasperCompileManager;  
  15. import net.sf.jasperreports.engine.JasperExportManager;  
  16. import net.sf.jasperreports.engine.JasperFillManager;  
  17. import net.sf.jasperreports.engine.JasperPrint;  
  18. import net.sf.jasperreports.engine.JasperReport;  
  19. import net.sf.jasperreports.engine.base.JRBaseLineBox;  
  20. import net.sf.jasperreports.engine.base.JRBasePrintText;  
  21. import net.sf.jasperreports.engine.design.JRDesignBand;  
  22. import net.sf.jasperreports.engine.design.JRDesignExpression;  
  23. import net.sf.jasperreports.engine.design.JRDesignField;  
  24. import net.sf.jasperreports.engine.design.JRDesignLine;  
  25. import net.sf.jasperreports.engine.design.JRDesignQuery;  
  26. import net.sf.jasperreports.engine.design.JRDesignStaticText;  
  27. import net.sf.jasperreports.engine.design.JRDesignStyle;  
  28. import net.sf.jasperreports.engine.design.JRDesignTextField;  
  29. import net.sf.jasperreports.engine.design.JasperDesign;  
  30.   
  31. import com.capaa.pipe.config.ReadConfig;  
  32.   
  33. class Sample {  
  34.     @SuppressWarnings("deprecation")  
  35.     Sample() throws Exception {  
  36.           
  37.         Connection connection = getConnection();  
  38.           
  39.         JasperDesign jasperDesign = new JasperDesign();  
  40.         JRDesignStyle normalStyle = setReportSytle(jasperDesign);  
  41.           
  42.         JRDesignQuery query = new JRDesignQuery();  
  43.         query.setText("select userid,name,age,sex,password,department from person");  
  44.         jasperDesign.setQuery(query);         
  45.         //addReportFiled(jasperDesign);  
  46.           
  47.         // Title  
  48.         JRDesignBand band = new JRDesignBand();  
  49.         band.setHeight(20);  
  50.         JRDesignStaticText staticText = new JRDesignStaticText();  
  51.           
  52.         staticText.setX(200);  
  53.         staticText.setY(0);  
  54.         staticText.setWidth(200);  
  55.         staticText.setHeight(15);  
  56.         staticText.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_RIGHT);  //设置文本的对齐方式  
  57.         staticText.setStyle(normalStyle);  
  58.         staticText.setText("杭州美创科技有限公司审计报表 ");  
  59.         band.addElement(staticText);          
  60.         JRDesignLine line = new JRDesignLine();       
  61.         line.setX(0);  
  62.         line.setY(19);  
  63.         line.setWidth(500);  
  64.         line.setHeight(1);  
  65.         line.setForecolor(new Color(0x99,0xFF,0xFF));  
  66.         band.addElement(line);  
  67.         jasperDesign.setTitle(band);  
  68.   
  69.         // Page header  
  70.         band = new JRDesignBand();  
  71.         //band.setHeight(20);  
  72.         band.setHeight(0);  
  73.         jasperDesign.setPageHeader(band);  
  74.   
  75.         // Column header  
  76.         band = new JRDesignBand();  
  77.         band.setHeight(0);  
  78.         jasperDesign.setColumnHeader(band);  
  79.         //detail  
  80.           
  81.          // 开始添加列字段  
  82.         String[] headers = {"USERID","NAME","AGE","SEX","PASSWORD","DEPARTMENT"};  
  83.         String[] alias = {"USERID","NAME","AGE","SEX","PASSWORD","DEPARTMENT"};  
  84.          int Y = 20;  
  85.          int columnHeaderfontSize = 10;  
  86.          int fontSize = 8;  
  87.          int textHeight = 19;  
  88.          int textWidth = 180;  
  89.          int detailHeight = 130;  
  90.          JRDesignBand detail = new JRDesignBand();  
  91.          detail.setHeight(detailHeight);  
  92.          for(int i=0;i<headers.length;i++){  
  93.                
  94.          }  
  95.         for(int i = 0;i<headers.length;i++){  
  96.             JRDesignStaticText jrstaticText = new JRDesignStaticText();    
  97.             jrstaticText.setText(headers[i]);   
  98.               
  99.             jrstaticText.setFontSize(columnHeaderfontSize);    
  100.             jrstaticText.setHeight(textHeight);    
  101.             jrstaticText.setWidth(textWidth);   
  102.               
  103.             jrstaticText.setY(Y * i);    
  104.             jrstaticText.setPdfFontName("STSong-Light");    
  105.             jrstaticText.setPdfEmbedded(true);    
  106.             jrstaticText.setPdfEncoding("UniGB-UCS2-H");    
  107.          
  108.             jrstaticText.setTextAlignment(JRBasePrintText.HORIZONTAL_ALIGN_LEFT);    
  109.          
  110.             jrstaticText.setForecolor(Color.black);  
  111.      
  112.             detail.addElement(jrstaticText);  
  113.               
  114.             // 定义字段,注册字段  
  115.             JRDesignField field = new JRDesignField();  
  116.             field.setName(alias[i]);  
  117.             field.setValueClass(String.class);  
  118.             jasperDesign.addField(field);  
  119.               
  120.             // add text fields for displaying fields  
  121.             JRDesignTextField textField = new JRDesignTextField();  
  122.             JRDesignExpression expression = new JRDesignExpression();  
  123.             expression.setText("$F{" + alias[i] + "}");  
  124.             expression.setValueClass(String.class);  
  125.             textField.setExpression(expression);  
  126.             textField.setFontSize(fontSize);  
  127.             textField.setHeight(textHeight);  
  128.             textField.setWidth(textWidth);  
  129.             textField.setX(textWidth);  
  130.             textField.setY(Y*i);  
  131.             textField.setPdfFontName("STSong-Light");   
  132.             textField.setPdfEmbedded(true);  
  133.             textField.setPdfEncoding("UniGB-UCS2-H");    
  134.             //textField.setTextAlignment(JRBasePrintText.HORIZONTAL_ALIGN_CENTER);  
  135.             textField.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_LEFT);  
  136.            
  137.             textField.setForecolor(Color.black);  
  138.             textField.setStretchWithOverflow(true);  
  139.             detail.addElement(textField);  
  140.         }  
  141.            
  142.     //  jasperDesign.setColumnHeader(band);  
  143.           
  144.         //detail  
  145.        // jasperDesign.setDetail(detail);  
  146.        
  147.   ((JRDesignSection)jasperDesign.getDetailSection()).addBand(detail);
  148.    
  149.         // Column footer  
  150.         band = new JRDesignBand();  
  151.         band.setHeight(0);  
  152.         jasperDesign.setColumnFooter(band);  
  153.         // Page footer  
  154.         band = new JRDesignBand();  
  155.         band.setHeight(20);  
  156.           
  157.         JRDesignLine line2 = new JRDesignLine();          
  158.         line2.setX(0);  
  159.         line2.setY(-10);  
  160.         line2.setWidth(450);  
  161.         line2.setHeight(0);  
  162.         line2.setForecolor(new Color(0x99,0xFF,0xFF));  
  163.         band.addElement(line2);  
  164.           
  165.         staticText = new JRDesignStaticText();  
  166.         staticText.setX(0);   
  167.         staticText.setY(0);  
  168.         staticText.setWidth(100);  
  169.         staticText.setHeight(20);  
  170.         staticText.setPdfFontName("STSong-Light");     
  171.         staticText.setPdfEmbedded(true);     
  172.         staticText.setPdfEncoding("UniGB-UCS2-H");    
  173.         SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");  
  174.         staticText.setText(sdf.format(new Date()));  
  175.         band.addElement(staticText);  
  176.           
  177.           
  178.         JRDesignTextField textField = new JRDesignTextField();  
  179.         textField.setX(450);   
  180.         textField.setY(0);  
  181.         textField.setWidth(100);  
  182.         textField.setHeight(20);  
  183.         textField.setPdfFontName("STSong-Light");     
  184.         textField.setPdfEmbedded(true);     
  185.         textField.setPdfEncoding("UniGB-UCS2-H");    
  186.           
  187.         JRDesignExpression expression = new JRDesignExpression();  
  188.          expression = new JRDesignExpression();  
  189.          expression.setValueClass(java.lang.Integer.class);       
  190.          expression.setText("$V{PAGE_NUMBER}");  
  191.            
  192.         textField.setExpression(expression);  
  193.         band.addElement(textField);  
  194.         jasperDesign.setPageFooter(band);  
  195.           
  196.         System.out.println(expression.getText());  
  197.         // Summary  
  198.         band = new JRDesignBand();  
  199.         band.setHeight(0);  
  200.           
  201.         jasperDesign.setSummary(band);  
  202.   
  203.         System.out.println("After Connection");  
  204.   
  205.         JasperReport jasperReport = JasperCompileManager  
  206.                 .compileReport(jasperDesign);  
  207.         Map parameters = new HashMap();  
  208.         System.out.println("After Parameter");  
  209.         JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,  
  210.                 parameters, connection);  
  211.         System.out.println("After Print");  
  212.           
  213.         JasperExportManager.exportReportToHtmlFile(jasperPrint, "D://test3.html");  
  214.         JasperExportManager.exportReportToPdfFile(jasperPrint, "D://test3.pdf");  
  215.         JasperExportManager.exportReportToXmlFile(jasperPrint, "D://test3.xml", false);  
  216.           
  217.         System.out.println("After Export");  
  218.   
  219.     }  
  220.   
  221.     private void addReportFiled(JasperDesign jasperDesign) throws JRException {  
  222.         JRDesignField field;  
  223.         field=new JRDesignField();  
  224.         field.setName("USERID");  
  225.         field.setValueClass(java.math.BigDecimal.class);  
  226.         jasperDesign.addField(field);  
  227.           
  228.         field = new JRDesignField();  
  229.         field.setName("NAME");  
  230.         field.setValueClass(java.lang.String.class);  
  231.         jasperDesign.addField(field);  
  232.           
  233.         field = new JRDesignField();  
  234.         field.setName("AGE");  
  235.         field.setValueClass(java.lang.String.class);  
  236.         jasperDesign.addField(field);  
  237.           
  238.         field = new JRDesignField();  
  239.         field.setName("SEX");  
  240.         field.setValueClass(java.lang.String.class);  
  241.         jasperDesign.addField(field);  
  242.           
  243.         field = new JRDesignField();  
  244.         field.setName("PASSWORD");  
  245.         field.setValueClass(java.lang.String.class);  
  246.         jasperDesign.addField(field);  
  247.           
  248.         field = new JRDesignField();  
  249.         field.setName("DEPARTMENT");  
  250.         field.setValueClass(java.lang.String.class);  
  251.         jasperDesign.addField(field);  
  252.     }  
  253.   
  254.     private JRDesignStyle setReportSytle(JasperDesign jasperDesign)  
  255.             throws JRException {  
  256.         jasperDesign.setName("SampleReport");  
  257.         jasperDesign.setPageWidth(595);  
  258.         jasperDesign.setPageHeight(842);  
  259.         jasperDesign.setColumnWidth(335);  
  260.         jasperDesign.setColumnSpacing(0);  
  261.           
  262.         jasperDesign.setLeftMargin(30);  
  263.         jasperDesign.setRightMargin(30);  
  264.         jasperDesign.setTopMargin(20);  
  265.         jasperDesign.setBottomMargin(20);  
  266.         // whenNoDataType="NoPages"  
  267.         jasperDesign.setWhenNoDataType(JRReport.WHEN_NO_DATA_TYPE_BLANK_PAGE);  
  268.         // isTitleNewPage="false"  
  269.         jasperDesign.setTitleNewPage(false);  
  270.         // isSummaryNewPage="false"  
  271.         jasperDesign.setSummaryNewPage(false);  
  272.     //  jasperDesign.setOrientation(JRReport.ORIENTATION_PORTRAIT);  
  273.     //  jasperDesign.setPrintOrder(JRReport.PRINT_ORDER_VERTICAL);  
  274.           
  275.         JRDesignStyle normalStyle = new JRDesignStyle();  
  276.         normalStyle.setName("Arial_Normal");  
  277.         normalStyle.setDefault(true);  
  278.         normalStyle.setFontName("Arial");  
  279.         normalStyle.setFontSize(12);  
  280.         normalStyle.setPdfFontName("STSong-Light");  
  281.         normalStyle.setPdfEncoding("UniGB-UCS2-H");  
  282.         normalStyle.setPdfEmbedded(true);  
  283.         jasperDesign.addStyle(normalStyle);  
  284.   
  285.         JRDesignStyle boldStyle = new JRDesignStyle();  
  286.         boldStyle.setName("Arial_Bold");  
  287.         boldStyle.setFontName("Arial");  
  288.         boldStyle.setFontSize(12);  
  289.         boldStyle.setBold(true);  
  290.         boldStyle.setPdfFontName("STSong-Light");  
  291.         boldStyle.setPdfEncoding("UniGB-UCS2-H");  
  292.         boldStyle.setPdfEmbedded(true);  
  293.         jasperDesign.addStyle(boldStyle);  
  294.   
  295.         JRDesignStyle italicStyle = new JRDesignStyle();  
  296.         italicStyle.setName("Arial_Italic");  
  297.         italicStyle.setFontName("Arial");  
  298.         italicStyle.setFontSize(12);  
  299.         italicStyle.setItalic(true);  
  300.         italicStyle.setPdfFontName("STSong-Light");  
  301.         italicStyle.setPdfEncoding("UniGB-UCS2-H");  
  302.         italicStyle.setPdfEmbedded(true);  
  303.         jasperDesign.addStyle(italicStyle);  
  304.         return normalStyle;  
  305.     }  
  306.   
  307.     private Connection getConnection() throws SQLException {  
  308.         Connection connection = ReadConfig.getProduceInstance().getDataSource().getConnection();  
  309.         return connection;  
  310.     }  
  311.   
  312. }  
  313.   
  314.     class Vertical {  
  315.     public static void main(String args[]) throws Exception {  
  316.         Sample obj = new Sample();  
  317.   
  318.     }  
  319.   
  320. }  
posted @ 2015-05-11 16:30  疯子110  阅读(396)  评论(0)    收藏  举报