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.setTextAlignment(JRBasePrintText.HORIZONTAL_ALIGN_CENTER);     
  107. //          jrstaticText.setLeftBorder(JRBaseLine.PEN_1_POINT);     
  108. //          jrstaticText.setTopBorder(JRBaseLine.PEN_1_POINT);     
  109. //          jrstaticText.setRightBorder(JRBaseLine.PEN_1_POINT);     
  110. //          jrstaticText.setBottomBorder(JRBaseLine.PEN_1_POINT);     
  111.             jrstaticText.setForecolor(Color.blue);   
  112.          //  jrstaticText.setStretchType((byte)0);   
  113.             band.addElement(jrstaticText);     
  114.                
  115.              // 定义字段,注册字段   
  116.             JRDesignField field =  new  JRDesignField();   
  117.             field.setName(alias[i]);   
  118.             field.setValueClass(String. class );   
  119.             jasperDesign.addField(field);   
  120.                
  121.              // add text fields for displaying fields   
  122.             JRDesignTextField textField =  new  JRDesignTextField();   
  123.             JRDesignExpression expression =  new  JRDesignExpression();   
  124.             expression.setText( "$F{"  + alias[i] +  "}" );   
  125.             expression.setValueClass(String. class );   
  126.             textField.setExpression(expression);   
  127.             textField.setFontSize(fontSize);   
  128.             textField.setHeight(textHeight);   
  129.             textField.setWidth(textWidth);   
  130.             textField.setX(X * 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.setLeftBorder(JRBaseLine.PEN_1_POINT);   
  136.             textField.setTopBorder(JRBaseLine.PEN_1_POINT);   
  137.             textField.setRightBorder(JRBaseLine.PEN_1_POINT);   
  138.             textField.setBottomBorder(JRBaseLine.PEN_1_POINT);   
  139.              //textField.setForecolor(new Color(0x99,0xFF,0xFF));   
  140.             textField.setForecolor(Color.blue);   
  141.             textField.setStretchWithOverflow( true );   
  142.             detail.addElement(textField);   
  143.         }   
  144.             
  145.         jasperDesign.setColumnHeader(band);   
  146.            
  147.          //detail   
  148.         jasperDesign.setDetail(detail);   
  149.            
  150.          // Column footer   
  151.         band =  new  JRDesignBand();   
  152.         band.setHeight( 10 );   
  153.         jasperDesign.setColumnFooter(band);   
  154.          // Page footer   
  155.         band =  new  JRDesignBand();   
  156.         band.setHeight( 80 );   
  157.            
  158.         staticText =  new  JRDesignStaticText();   
  159.         staticText.setX( 0 );    
  160.         staticText.setY( 0 );   
  161.         staticText.setWidth( 100 );   
  162.         staticText.setHeight( 20 );   
  163.         staticText.setPdfFontName( "STSong-Light" );      
  164.         staticText.setPdfEmbedded( true );      
  165.         staticText.setPdfEncoding( "UniGB-UCS2-H" );     
  166.         SimpleDateFormat sdf =  new  SimpleDateFormat( "yyyy/MM/dd" );   
  167.         staticText.setText(sdf.format( new  Date()));   
  168.         band.addElement(staticText);   
  169.            
  170.            
  171.         JRDesignTextField textField =  new  JRDesignTextField();   
  172.         textField.setX( 450 );    
  173.         textField.setY( 0 );   
  174.         textField.setWidth( 100 );   
  175.         textField.setHeight( 20 );   
  176.         textField.setPdfFontName( "STSong-Light" );      
  177.         textField.setPdfEmbedded( true );      
  178.         textField.setPdfEncoding( "UniGB-UCS2-H" );     
  179.            
  180.         JRDesignExpression expression =  new  JRDesignExpression();   
  181.          expression =  new  JRDesignExpression();   
  182.          expression.setValueClass(java.lang.Integer. class );        
  183.          expression.setText( "$V{PAGE_NUMBER}" );   
  184.             
  185.         textField.setExpression(expression);   
  186.         band.addElement(textField);   
  187.         jasperDesign.setPageFooter(band);   
  188.            
  189.         System.out.println(expression.getText());   
  190.          // Summary   
  191.         band =  new  JRDesignBand();   
  192.         band.setHeight( 0 );   
  193.   
  194.          /* **************************************************************** */   
  195.          /* Here My doubt */   
  196.          /*  
  197.          * JRDesignChart chart1 = new  
  198.          * JRDesignChart(null,JRChart.CHART_TYPE_LINE); chart1.setHeight(100);  
  199.          * chart1.setBorderColor(Color.red); chart1.setForecolor(Color.BLACK);  
  200.          * chart1.setWidth(200);  
  201.          */   
  202.   
  203.          // band.addElement(chart1);   
  204.         jasperDesign.setSummary(band);   
  205.   
  206.         System.out.println( "After Connection" );   
  207.   
  208.         JasperReport jasperReport = JasperCompileManager   
  209.                 .compileReport(jasperDesign);   
  210.         Map parameters =  new  HashMap();   
  211.         System.out.println( "After Parameter" );   
  212.         JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,   
  213.                 parameters, connection);   
  214.         System.out.println( "After Print" );   
  215.            
  216.         JasperExportManager.exportReportToHtmlFile(jasperPrint,  "D://test2.html" );   
  217.         JasperExportManager.exportReportToPdfFile(jasperPrint,  "D://test2.pdf" );   
  218.         JasperExportManager.exportReportToXmlFile(jasperPrint,  "D://test2.xml"false );   
  219.            
  220.         System.out.println( "After Export" );   
  221.   
  222.     }   
  223.   
  224.      private   void  addReportFiled(JasperDesign jasperDesign)  throws  JRException {   
  225.         JRDesignField field;   
  226.         field= new  JRDesignField();   
  227.         field.setName( "USERID" );   
  228.         field.setValueClass(java.math.BigDecimal. class );   
  229.         jasperDesign.addField(field);   
  230.            
  231.         field =  new  JRDesignField();   
  232.         field.setName( "NAME" );   
  233.         field.setValueClass(java.lang.String. class );   
  234.         jasperDesign.addField(field);   
  235.            
  236.         field =  new  JRDesignField();   
  237.         field.setName( "AGE" );   
  238.         field.setValueClass(java.lang.String. class );   
  239.         jasperDesign.addField(field);   
  240.            
  241.         field =  new  JRDesignField();   
  242.         field.setName( "SEX" );   
  243.         field.setValueClass(java.lang.String. class );   
  244.         jasperDesign.addField(field);   
  245.            
  246.         field =  new  JRDesignField();   
  247.         field.setName( "PASSWORD" );   
  248.         field.setValueClass(java.lang.String. class );   
  249.         jasperDesign.addField(field);   
  250.            
  251.         field =  new  JRDesignField();   
  252.         field.setName( "DEPARTMENT" );   
  253.         field.setValueClass(java.lang.String. class );   
  254.         jasperDesign.addField(field);   
  255.     }   
  256.   
  257.      private  JRDesignStyle setReportSytle(JasperDesign jasperDesign)   
  258.              throws  JRException {   
  259.         jasperDesign.setName( "SampleReport" );   
  260.         jasperDesign.setPageWidth( 595 );   
  261.         jasperDesign.setPageHeight( 842 );   
  262.         jasperDesign.setColumnWidth( 535 );   
  263.         jasperDesign.setColumnSpacing( 0 );   
  264.            
  265.         jasperDesign.setLeftMargin( 30 );   
  266.         jasperDesign.setRightMargin( 30 );   
  267.         jasperDesign.setTopMargin( 20 );   
  268.         jasperDesign.setBottomMargin( 20 );   
  269.          // whenNoDataType="NoPages"   
  270.         jasperDesign.setWhenNoDataType(JRReport.WHEN_NO_DATA_TYPE_BLANK_PAGE);   
  271.          // isTitleNewPage="false"   
  272.         jasperDesign.setTitleNewPage( false );   
  273.          // isSummaryNewPage="false"   
  274.         jasperDesign.setSummaryNewPage( false );   
  275.      //  jasperDesign.setOrientation(JRReport.ORIENTATION_PORTRAIT);   
  276.      //  jasperDesign.setPrintOrder(JRReport.PRINT_ORDER_VERTICAL);   
  277.            
  278.         JRDesignStyle normalStyle =  new  JRDesignStyle();   
  279.         normalStyle.setName( "Arial_Normal" );   
  280.         normalStyle.setDefault( true );   
  281.         normalStyle.setFontName( "Arial" );   
  282.         normalStyle.setFontSize( 12 );   
  283.         normalStyle.setPdfFontName( "STSong-Light" );   
  284.         normalStyle.setPdfEncoding( "UniGB-UCS2-H" );   
  285.         normalStyle.setPdfEmbedded( true );   
  286.         jasperDesign.addStyle(normalStyle);   
  287.   
  288.         JRDesignStyle boldStyle =  new  JRDesignStyle();   
  289.         boldStyle.setName( "Arial_Bold" );   
  290.         boldStyle.setFontName( "Arial" );   
  291.         boldStyle.setFontSize( 12 );   
  292.         boldStyle.setBold( true );   
  293.         boldStyle.setPdfFontName( "STSong-Light" );   
  294.         boldStyle.setPdfEncoding( "UniGB-UCS2-H" );   
  295.         boldStyle.setPdfEmbedded( true );   
  296.         jasperDesign.addStyle(boldStyle);   
  297.   
  298.         JRDesignStyle italicStyle =  new  JRDesignStyle();   
  299.         italicStyle.setName( "Arial_Italic" );   
  300.         italicStyle.setFontName( "Arial" );   
  301.         italicStyle.setFontSize( 12 );   
  302.         italicStyle.setItalic( true );   
  303.         italicStyle.setPdfFontName( "STSong-Light" );   
  304.         italicStyle.setPdfEncoding( "UniGB-UCS2-H" );   
  305.         italicStyle.setPdfEmbedded( true );   
  306.         jasperDesign.addStyle(italicStyle);   
  307.          return  normalStyle;   
  308.     }   
  309.   
  310.      private  Connection getConnection()  throws  SQLException {   
  311.         Connection connection = ReadConfig.getProduceInstance().getDataSource()   
  312.                 .getConnection();   
  313.          return  connection;   
  314.     }   
  315.   
  316. }   
  317.   
  318.      class  Sample {   
  319.      public   static   void  main(String args[])  throws  Exception {   
  320.         Sample6 obj =  new  Sample6();   
  321.   
  322.     }   
  323.   
  324. }  
package cn.hzmc.dynamicreport.example7;

import java.awt.Color;
import java.sql.Connection;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import net.sf.jasperreports.engine.JRAlignment;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRReport;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.base.JRBaseLine;
import net.sf.jasperreports.engine.base.JRBasePrintText;
import net.sf.jasperreports.engine.design.JRDesignBand;
import net.sf.jasperreports.engine.design.JRDesignExpression;
import net.sf.jasperreports.engine.design.JRDesignField;
import net.sf.jasperreports.engine.design.JRDesignLine;
import net.sf.jasperreports.engine.design.JRDesignQuery;
import net.sf.jasperreports.engine.design.JRDesignStaticText;
import net.sf.jasperreports.engine.design.JRDesignStyle;
import net.sf.jasperreports.engine.design.JRDesignTextField;
import net.sf.jasperreports.engine.design.JasperDesign;

import com.capaa.pipe.config.ReadConfig;

class Sample6 {
	@SuppressWarnings("deprecation")
	Sample6() throws Exception {
		
		Connection connection = getConnection();
		
		JasperDesign jasperDesign = new JasperDesign();
		JRDesignStyle normalStyle = setReportSytle(jasperDesign);
		
		JRDesignQuery query = new JRDesignQuery();
		query.setText("select userid,name,age,sex,password,department from person");
		jasperDesign.setQuery(query);		
		//addReportFiled(jasperDesign);
		
		// Title
		JRDesignBand band = new JRDesignBand();
		band.setHeight(20);
		JRDesignStaticText staticText = new JRDesignStaticText();
		
		staticText.setX(200);
		staticText.setY(0);
		staticText.setWidth(200);
		staticText.setHeight(15);
		staticText.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_RIGHT);  //设置文本的对齐方式
		staticText.setStyle(normalStyle);
		staticText.setText("杭州美创科技有限公司审计报表 ");
		band.addElement(staticText);		
		JRDesignLine line = new JRDesignLine();		
		line.setX(0);
		line.setY(19);
		line.setWidth(500);
		line.setHeight(1);
		line.setForecolor(new Color(0x99,0xFF,0xFF));
		band.addElement(line);
		jasperDesign.setTitle(band);

		// Page header
		band = new JRDesignBand();
		//band.setHeight(20);
		band.setHeight(0);
		jasperDesign.setPageHeader(band);

		// Column header
		band = new JRDesignBand();
		band.setHeight(20);
		
		 // 开始添加列字段
		String[] headers = {"USERID","NAME","AGE","SEX","PASSWORD","DEPARTMENT"};
		String[] alias = {"USERID","NAME","AGE","SEX","PASSWORD","DEPARTMENT"};
		 int X = 80;
		 int columnHeaderfontSize = 10;
		 int fontSize = 8;
		 int textHeight = 20;
		 int textWidth = 80;
		 int detailHeight = 20;
		 JRDesignBand detail = new JRDesignBand();
		 detail.setHeight(detailHeight);
		for(int i = 0;i<headers.length;i++){
			JRDesignStaticText jrstaticText = new JRDesignStaticText();  
			jrstaticText.setText(headers[i]); 
			
			jrstaticText.setFontSize(columnHeaderfontSize);  
			jrstaticText.setHeight(textHeight);  
			jrstaticText.setWidth(textWidth); 
			if(i==0){
				X=0;
			}else{
				X = 80;
			}
			jrstaticText.setX(X * i);  
			jrstaticText.setPdfFontName("STSong-Light");  
			jrstaticText.setPdfEmbedded(true);  
			jrstaticText.setPdfEncoding("UniGB-UCS2-H");  
//			jrstaticText.setTextAlignment(JRBasePrintText.HORIZONTAL_ALIGN_CENTER);  
//			jrstaticText.setLeftBorder(JRBaseLine.PEN_1_POINT);  
//			jrstaticText.setTopBorder(JRBaseLine.PEN_1_POINT);  
//			jrstaticText.setRightBorder(JRBaseLine.PEN_1_POINT);  
//			jrstaticText.setBottomBorder(JRBaseLine.PEN_1_POINT);  
			jrstaticText.setForecolor(Color.blue);
		//	jrstaticText.setStretchType((byte)0);
			band.addElement(jrstaticText);  
			
			// 定义字段,注册字段
			JRDesignField field = new JRDesignField();
			field.setName(alias[i]);
			field.setValueClass(String.class);
			jasperDesign.addField(field);
			
			// add text fields for displaying fields
			JRDesignTextField textField = new JRDesignTextField();
			JRDesignExpression expression = new JRDesignExpression();
			expression.setText("$F{" + alias[i] + "}");
			expression.setValueClass(String.class);
			textField.setExpression(expression);
			textField.setFontSize(fontSize);
			textField.setHeight(textHeight);
			textField.setWidth(textWidth);
			textField.setX(X * i);
			textField.setPdfFontName("STSong-Light"); 
			textField.setPdfEmbedded(true);
			textField.setPdfEncoding("UniGB-UCS2-H");  
			textField.setTextAlignment(JRBasePrintText.HORIZONTAL_ALIGN_CENTER);
			textField.setLeftBorder(JRBaseLine.PEN_1_POINT);
			textField.setTopBorder(JRBaseLine.PEN_1_POINT);
			textField.setRightBorder(JRBaseLine.PEN_1_POINT);
			textField.setBottomBorder(JRBaseLine.PEN_1_POINT);
			//textField.setForecolor(new Color(0x99,0xFF,0xFF));
			textField.setForecolor(Color.blue);
			textField.setStretchWithOverflow(true);
			detail.addElement(textField);
		}
		 
		jasperDesign.setColumnHeader(band);
		
		//detail
		jasperDesign.setDetail(detail);
		
		// Column footer
		band = new JRDesignBand();
		band.setHeight(10);
		jasperDesign.setColumnFooter(band);
		// Page footer
		band = new JRDesignBand();
		band.setHeight(80);
		
		staticText = new JRDesignStaticText();
		staticText.setX(0); 
		staticText.setY(0);
		staticText.setWidth(100);
		staticText.setHeight(20);
		staticText.setPdfFontName("STSong-Light");   
		staticText.setPdfEmbedded(true);   
		staticText.setPdfEncoding("UniGB-UCS2-H");  
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
		staticText.setText(sdf.format(new Date()));
		band.addElement(staticText);
		
		
		JRDesignTextField textField = new JRDesignTextField();
		textField.setX(450); 
		textField.setY(0);
		textField.setWidth(100);
		textField.setHeight(20);
		textField.setPdfFontName("STSong-Light");   
		textField.setPdfEmbedded(true);   
		textField.setPdfEncoding("UniGB-UCS2-H");  
		
		JRDesignExpression expression = new JRDesignExpression();
		 expression = new JRDesignExpression();
		 expression.setValueClass(java.lang.Integer.class);		
		 expression.setText("$V{PAGE_NUMBER}");
		 
		textField.setExpression(expression);
		band.addElement(textField);
		jasperDesign.setPageFooter(band);
		
		System.out.println(expression.getText());
		// Summary
		band = new JRDesignBand();
		band.setHeight(0);

		/* **************************************************************** */
		/* Here My doubt */
		/*
		 * JRDesignChart chart1 = new
		 * JRDesignChart(null,JRChart.CHART_TYPE_LINE); chart1.setHeight(100);
		 * chart1.setBorderColor(Color.red); chart1.setForecolor(Color.BLACK);
		 * chart1.setWidth(200);
		 */

		// band.addElement(chart1);
		jasperDesign.setSummary(band);

		System.out.println("After Connection");

		JasperReport jasperReport = JasperCompileManager
				.compileReport(jasperDesign);
		Map parameters = new HashMap();
		System.out.println("After Parameter");
		JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,
				parameters, connection);
		System.out.println("After Print");
		
		JasperExportManager.exportReportToHtmlFile(jasperPrint, "D://test2.html");
		JasperExportManager.exportReportToPdfFile(jasperPrint, "D://test2.pdf");
		JasperExportManager.exportReportToXmlFile(jasperPrint, "D://test2.xml", false);
		
		System.out.println("After Export");

	}

	private void addReportFiled(JasperDesign jasperDesign) throws JRException {
		JRDesignField field;
		field=new JRDesignField();
		field.setName("USERID");
		field.setValueClass(java.math.BigDecimal.class);
		jasperDesign.addField(field);
		
		field = new JRDesignField();
		field.setName("NAME");
		field.setValueClass(java.lang.String.class);
		jasperDesign.addField(field);
		
		field = new JRDesignField();
		field.setName("AGE");
		field.setValueClass(java.lang.String.class);
		jasperDesign.addField(field);
		
		field = new JRDesignField();
		field.setName("SEX");
		field.setValueClass(java.lang.String.class);
		jasperDesign.addField(field);
		
		field = new JRDesignField();
		field.setName("PASSWORD");
		field.setValueClass(java.lang.String.class);
		jasperDesign.addField(field);
		
		field = new JRDesignField();
		field.setName("DEPARTMENT");
		field.setValueClass(java.lang.String.class);
		jasperDesign.addField(field);
	}

	private JRDesignStyle setReportSytle(JasperDesign jasperDesign)
			throws JRException {
		jasperDesign.setName("SampleReport");
		jasperDesign.setPageWidth(595);
		jasperDesign.setPageHeight(842);
		jasperDesign.setColumnWidth(535);
		jasperDesign.setColumnSpacing(0);
		
		jasperDesign.setLeftMargin(30);
		jasperDesign.setRightMargin(30);
		jasperDesign.setTopMargin(20);
		jasperDesign.setBottomMargin(20);
		// whenNoDataType="NoPages"
		jasperDesign.setWhenNoDataType(JRReport.WHEN_NO_DATA_TYPE_BLANK_PAGE);
		// isTitleNewPage="false"
		jasperDesign.setTitleNewPage(false);
		// isSummaryNewPage="false"
		jasperDesign.setSummaryNewPage(false);
	//	jasperDesign.setOrientation(JRReport.ORIENTATION_PORTRAIT);
	//	jasperDesign.setPrintOrder(JRReport.PRINT_ORDER_VERTICAL);
		
		JRDesignStyle normalStyle = new JRDesignStyle();
		normalStyle.setName("Arial_Normal");
		normalStyle.setDefault(true);
		normalStyle.setFontName("Arial");
		normalStyle.setFontSize(12);
		normalStyle.setPdfFontName("STSong-Light");
		normalStyle.setPdfEncoding("UniGB-UCS2-H");
		normalStyle.setPdfEmbedded(true);
		jasperDesign.addStyle(normalStyle);

		JRDesignStyle boldStyle = new JRDesignStyle();
		boldStyle.setName("Arial_Bold");
		boldStyle.setFontName("Arial");
		boldStyle.setFontSize(12);
		boldStyle.setBold(true);
		boldStyle.setPdfFontName("STSong-Light");
		boldStyle.setPdfEncoding("UniGB-UCS2-H");
		boldStyle.setPdfEmbedded(true);
		jasperDesign.addStyle(boldStyle);

		JRDesignStyle italicStyle = new JRDesignStyle();
		italicStyle.setName("Arial_Italic");
		italicStyle.setFontName("Arial");
		italicStyle.setFontSize(12);
		italicStyle.setItalic(true);
		italicStyle.setPdfFontName("STSong-Light");
		italicStyle.setPdfEncoding("UniGB-UCS2-H");
		italicStyle.setPdfEmbedded(true);
		jasperDesign.addStyle(italicStyle);
		return normalStyle;
	}

	private Connection getConnection() throws SQLException {
		Connection connection = ReadConfig.getProduceInstance().getDataSource()
				.getConnection();
		return connection;
	}

}

	class Sample {
	public static void main(String args[]) throws Exception {
		Sample6 obj = new Sample6();

	}

}

 然后是竖排的模板

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.          //  jrstaticText.setTextAlignment(JRBasePrintText.HORIZONTAL_ALIGN_CENTER);     
  108.             jrstaticText.setTextAlignment(JRBasePrintText.HORIZONTAL_ALIGN_LEFT);     
  109.              /*jrstaticText.setLeftBorder(JRBaseLine.PEN_1_POINT);    
  110.             jrstaticText.setTopBorder(JRBaseLine.PEN_1_POINT);    
  111.             jrstaticText.setRightBorder(JRBaseLine.PEN_1_POINT);    
  112.             jrstaticText.setBottomBorder(JRBaseLine.PEN_1_POINT); */     
  113.             jrstaticText.setForecolor(Color.black);   
  114.          //  jrstaticText.setStretchType((byte)0);   
  115.          //  band.addElement(jrstaticText);     
  116.             detail.addElement(jrstaticText);   
  117.                
  118.              // 定义字段,注册字段   
  119.             JRDesignField field =  new  JRDesignField();   
  120.             field.setName(alias[i]);   
  121.             field.setValueClass(String. class );   
  122.             jasperDesign.addField(field);   
  123.                
  124.              // add text fields for displaying fields   
  125.             JRDesignTextField textField =  new  JRDesignTextField();   
  126.             JRDesignExpression expression =  new  JRDesignExpression();   
  127.             expression.setText( "$F{"  + alias[i] +  "}" );   
  128.             expression.setValueClass(String. class );   
  129.             textField.setExpression(expression);   
  130.             textField.setFontSize(fontSize);   
  131.             textField.setHeight(textHeight);   
  132.             textField.setWidth(textWidth);   
  133.             textField.setX(textWidth);   
  134.             textField.setY(Y*i);   
  135.             textField.setPdfFontName( "STSong-Light" );    
  136.             textField.setPdfEmbedded( true );   
  137.             textField.setPdfEncoding( "UniGB-UCS2-H" );     
  138.              //textField.setTextAlignment(JRBasePrintText.HORIZONTAL_ALIGN_CENTER);   
  139.             textField.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_LEFT);   
  140.              /*textField.setLeftBorder(JRBaseLine.PEN_1_POINT);  
  141.             textField.setTopBorder(JRBaseLine.PEN_1_POINT);  
  142.             textField.setRightBorder(JRBaseLine.PEN_1_POINT);  
  143.             textField.setBottomBorder(JRBaseLine.PEN_1_POINT);*/   
  144.              /*JRBaseLineBox baseLineBox = new JRBaseLineBox(textField);  
  145.             baseLineBox.getLeftPen().setLineColor(Color.black);  
  146.             baseLineBox.getLeftPen().setLineWidth(0);  
  147.             baseLineBox.getLeftPen().setLineStyle((byte)0);  
  148.             baseLineBox.getRightPen().setLineColor(Color.black);  
  149.             baseLineBox.getRightPen().setLineWidth(0);  
  150.             baseLineBox.getRightPen().setLineStyle((byte)0);  
  151.             baseLineBox.getTopPen().setLineColor(Color.black);  
  152.             baseLineBox.getTopPen().setLineWidth(0);  
  153.             baseLineBox.getTopPen().setLineStyle((byte)0);  
  154.             baseLineBox.getBottomPen().setLineColor(Color.black);  
  155.             baseLineBox.getBottomPen().setLineWidth(0);  
  156.             baseLineBox.getBottomPen().setLineStyle((byte)0);*/   
  157.                
  158.              //textField.setForecolor(new Color(0x99,0xFF,0xFF));   
  159.             textField.setForecolor(Color.black);   
  160.             textField.setStretchWithOverflow( true );   
  161.             detail.addElement(textField);   
  162.         }   
  163.             
  164.      //  jasperDesign.setColumnHeader(band);   
  165.            
  166.          //detail   
  167.         jasperDesign.setDetail(detail);   
  168.            
  169.          // Column footer   
  170.         band =  new  JRDesignBand();   
  171.         band.setHeight( 0 );   
  172.         jasperDesign.setColumnFooter(band);   
  173.          // Page footer   
  174.         band =  new  JRDesignBand();   
  175.         band.setHeight( 20 );   
  176.            
  177.         JRDesignLine line2 =  new  JRDesignLine();           
  178.         line2.setX( 0 );   
  179.         line2.setY(- 10 );   
  180.         line2.setWidth( 450 );   
  181.         line2.setHeight( 0 );   
  182.         line2.setForecolor( new  Color( 0x99 , 0xFF , 0xFF ));   
  183.         band.addElement(line2);   
  184.            
  185.         staticText =  new  JRDesignStaticText();   
  186.         staticText.setX( 0 );    
  187.         staticText.setY( 0 );   
  188.         staticText.setWidth( 100 );   
  189.         staticText.setHeight( 20 );   
  190.         staticText.setPdfFontName( "STSong-Light" );      
  191.         staticText.setPdfEmbedded( true );      
  192.         staticText.setPdfEncoding( "UniGB-UCS2-H" );     
  193.         SimpleDateFormat sdf =  new  SimpleDateFormat( "yyyy/MM/dd" );   
  194.         staticText.setText(sdf.format( new  Date()));   
  195.         band.addElement(staticText);   
  196.            
  197.            
  198.         JRDesignTextField textField =  new  JRDesignTextField();   
  199.         textField.setX( 450 );    
  200.         textField.setY( 0 );   
  201.         textField.setWidth( 100 );   
  202.         textField.setHeight( 20 );   
  203.         textField.setPdfFontName( "STSong-Light" );      
  204.         textField.setPdfEmbedded( true );      
  205.         textField.setPdfEncoding( "UniGB-UCS2-H" );     
  206.            
  207.         JRDesignExpression expression =  new  JRDesignExpression();   
  208.          expression =  new  JRDesignExpression();   
  209.          expression.setValueClass(java.lang.Integer. class );        
  210.          expression.setText( "$V{PAGE_NUMBER}" );   
  211.             
  212.         textField.setExpression(expression);   
  213.         band.addElement(textField);   
  214.         jasperDesign.setPageFooter(band);   
  215.            
  216.         System.out.println(expression.getText());   
  217.          // Summary   
  218.         band =  new  JRDesignBand();   
  219.         band.setHeight( 0 );   
  220.            
  221.         jasperDesign.setSummary(band);   
  222.   
  223.         System.out.println( "After Connection" );   
  224.   
  225.         JasperReport jasperReport = JasperCompileManager   
  226.                 .compileReport(jasperDesign);   
  227.         Map parameters =  new  HashMap();   
  228.         System.out.println( "After Parameter" );   
  229.         JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,   
  230.                 parameters, connection);   
  231.         System.out.println( "After Print" );   
  232.            
  233.         JasperExportManager.exportReportToHtmlFile(jasperPrint,  "D://test3.html" );   
  234.         JasperExportManager.exportReportToPdfFile(jasperPrint,  "D://test3.pdf" );   
  235.         JasperExportManager.exportReportToXmlFile(jasperPrint,  "D://test3.xml"false );   
  236.            
  237.         System.out.println( "After Export" );   
  238.   
  239.     }   
  240.   
  241.      private   void  addReportFiled(JasperDesign jasperDesign)  throws  JRException {   
  242.         JRDesignField field;   
  243.         field= new  JRDesignField();   
  244.         field.setName( "USERID" );   
  245.         field.setValueClass(java.math.BigDecimal. class );   
  246.         jasperDesign.addField(field);   
  247.            
  248.         field =  new  JRDesignField();   
  249.         field.setName( "NAME" );   
  250.         field.setValueClass(java.lang.String. class );   
  251.         jasperDesign.addField(field);   
  252.            
  253.         field =  new  JRDesignField();   
  254.         field.setName( "AGE" );   
  255.         field.setValueClass(java.lang.String. class );   
  256.         jasperDesign.addField(field);   
  257.            
  258.         field =  new  JRDesignField();   
  259.         field.setName( "SEX" );   
  260.         field.setValueClass(java.lang.String. class );   
  261.         jasperDesign.addField(field);   
  262.            
  263.         field =  new  JRDesignField();   
  264.         field.setName( "PASSWORD" );   
  265.         field.setValueClass(java.lang.String. class );   
  266.         jasperDesign.addField(field);   
  267.            
  268.         field =  new  JRDesignField();   
  269.         field.setName( "DEPARTMENT" );   
  270.         field.setValueClass(java.lang.String. class );   
  271.         jasperDesign.addField(field);   
  272.     }   
  273.   
  274.      private  JRDesignStyle setReportSytle(JasperDesign jasperDesign)   
  275.              throws  JRException {   
  276.         jasperDesign.setName( "SampleReport" );   
  277.         jasperDesign.setPageWidth( 595 );   
  278.         jasperDesign.setPageHeight( 842 );   
  279.         jasperDesign.setColumnWidth( 335 );   
  280.         jasperDesign.setColumnSpacing( 0 );   
  281.            
  282.         jasperDesign.setLeftMargin( 30 );   
  283.         jasperDesign.setRightMargin( 30 );   
  284.         jasperDesign.setTopMargin( 20 );   
  285.         jasperDesign.setBottomMargin( 20 );   
  286.          // whenNoDataType="NoPages"   
  287.         jasperDesign.setWhenNoDataType(JRReport.WHEN_NO_DATA_TYPE_BLANK_PAGE);   
  288.          // isTitleNewPage="false"   
  289.         jasperDesign.setTitleNewPage( false );   
  290.          // isSummaryNewPage="false"   
  291.         jasperDesign.setSummaryNewPage( false );   
  292.      //  jasperDesign.setOrientation(JRReport.ORIENTATION_PORTRAIT);   
  293.      //  jasperDesign.setPrintOrder(JRReport.PRINT_ORDER_VERTICAL);   
  294.            
  295.         JRDesignStyle normalStyle =  new  JRDesignStyle();   
  296.         normalStyle.setName( "Arial_Normal" );   
  297.         normalStyle.setDefault( true );   
  298.         normalStyle.setFontName( "Arial" );   
  299.         normalStyle.setFontSize( 12 );   
  300.         normalStyle.setPdfFontName( "STSong-Light" );   
  301.         normalStyle.setPdfEncoding( "UniGB-UCS2-H" );   
  302.         normalStyle.setPdfEmbedded( true );   
  303.         jasperDesign.addStyle(normalStyle);   
  304.   
  305.         JRDesignStyle boldStyle =  new  JRDesignStyle();   
  306.         boldStyle.setName( "Arial_Bold" );   
  307.         boldStyle.setFontName( "Arial" );   
  308.         boldStyle.setFontSize( 12 );   
  309.         boldStyle.setBold( true );   
  310.         boldStyle.setPdfFontName( "STSong-Light" );   
  311.         boldStyle.setPdfEncoding( "UniGB-UCS2-H" );   
  312.         boldStyle.setPdfEmbedded( true );   
  313.         jasperDesign.addStyle(boldStyle);   
  314.   
  315.         JRDesignStyle italicStyle =  new  JRDesignStyle();   
  316.         italicStyle.setName( "Arial_Italic" );   
  317.         italicStyle.setFontName( "Arial" );   
  318.         italicStyle.setFontSize( 12 );   
  319.         italicStyle.setItalic( true );   
  320.         italicStyle.setPdfFontName( "STSong-Light" );   
  321.         italicStyle.setPdfEncoding( "UniGB-UCS2-H" );   
  322.         italicStyle.setPdfEmbedded( true );   
  323.         jasperDesign.addStyle(italicStyle);   
  324.          return  normalStyle;   
  325.     }   
  326.   
  327.      private  Connection getConnection()  throws  SQLException {   
  328.         Connection connection = ReadConfig.getProduceInstance().getDataSource().getConnection();   
  329.          return  connection;   
  330.     }   
  331.   
  332. }   
  333.   
  334.      class  Vertical {   
  335.      public   static   void  main(String args[])  throws  Exception {   
  336.         Sample obj =  new  Sample();   
  337.   
  338.     }   
  339.   
  340. }  
package cn.hzmc.dynamicreport.example8;

import java.awt.Color;
import java.sql.Connection;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import net.sf.jasperreports.engine.JRAlignment;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRReport;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.base.JRBaseLineBox;
import net.sf.jasperreports.engine.base.JRBasePrintText;
import net.sf.jasperreports.engine.design.JRDesignBand;
import net.sf.jasperreports.engine.design.JRDesignExpression;
import net.sf.jasperreports.engine.design.JRDesignField;
import net.sf.jasperreports.engine.design.JRDesignLine;
import net.sf.jasperreports.engine.design.JRDesignQuery;
import net.sf.jasperreports.engine.design.JRDesignStaticText;
import net.sf.jasperreports.engine.design.JRDesignStyle;
import net.sf.jasperreports.engine.design.JRDesignTextField;
import net.sf.jasperreports.engine.design.JasperDesign;

import com.capaa.pipe.config.ReadConfig;

class Sample {
	@SuppressWarnings("deprecation")
	Sample() throws Exception {
		
		Connection connection = getConnection();
		
		JasperDesign jasperDesign = new JasperDesign();
		JRDesignStyle normalStyle = setReportSytle(jasperDesign);
		
		JRDesignQuery query = new JRDesignQuery();
		query.setText("select userid,name,age,sex,password,department from person");
		jasperDesign.setQuery(query);		
		//addReportFiled(jasperDesign);
		
		// Title
		JRDesignBand band = new JRDesignBand();
		band.setHeight(20);
		JRDesignStaticText staticText = new JRDesignStaticText();
		
		staticText.setX(200);
		staticText.setY(0);
		staticText.setWidth(200);
		staticText.setHeight(15);
		staticText.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_RIGHT);  //设置文本的对齐方式
		staticText.setStyle(normalStyle);
		staticText.setText("杭州美创科技有限公司审计报表 ");
		band.addElement(staticText);		
		JRDesignLine line = new JRDesignLine();		
		line.setX(0);
		line.setY(19);
		line.setWidth(500);
		line.setHeight(1);
		line.setForecolor(new Color(0x99,0xFF,0xFF));
		band.addElement(line);
		jasperDesign.setTitle(band);

		// Page header
		band = new JRDesignBand();
		//band.setHeight(20);
		band.setHeight(0);
		jasperDesign.setPageHeader(band);

		// Column header
		band = new JRDesignBand();
		band.setHeight(0);
		jasperDesign.setColumnHeader(band);
		//detail
		
		 // 开始添加列字段
		String[] headers = {"USERID","NAME","AGE","SEX","PASSWORD","DEPARTMENT"};
		String[] alias = {"USERID","NAME","AGE","SEX","PASSWORD","DEPARTMENT"};
		 int Y = 20;
		 int columnHeaderfontSize = 10;
		 int fontSize = 8;
		 int textHeight = 19;
		 int textWidth = 180;
		 int detailHeight = 130;
		 JRDesignBand detail = new JRDesignBand();
		 detail.setHeight(detailHeight);
		 for(int i=0;i<headers.length;i++){
			 
		 }
		for(int i = 0;i<headers.length;i++){
			JRDesignStaticText jrstaticText = new JRDesignStaticText();  
			jrstaticText.setText(headers[i]); 
			
			jrstaticText.setFontSize(columnHeaderfontSize);  
			jrstaticText.setHeight(textHeight);  
			jrstaticText.setWidth(textWidth); 
			
			jrstaticText.setY(Y * i);  
			jrstaticText.setPdfFontName("STSong-Light");  
			jrstaticText.setPdfEmbedded(true);  
			jrstaticText.setPdfEncoding("UniGB-UCS2-H");  
		//	jrstaticText.setTextAlignment(JRBasePrintText.HORIZONTAL_ALIGN_CENTER);  
			jrstaticText.setTextAlignment(JRBasePrintText.HORIZONTAL_ALIGN_LEFT);  
			/*jrstaticText.setLeftBorder(JRBaseLine.PEN_1_POINT);  
			jrstaticText.setTopBorder(JRBaseLine.PEN_1_POINT);  
			jrstaticText.setRightBorder(JRBaseLine.PEN_1_POINT);  
			jrstaticText.setBottomBorder(JRBaseLine.PEN_1_POINT); */ 
			jrstaticText.setForecolor(Color.black);
		//	jrstaticText.setStretchType((byte)0);
		//	band.addElement(jrstaticText);  
			detail.addElement(jrstaticText);
			
			// 定义字段,注册字段
			JRDesignField field = new JRDesignField();
			field.setName(alias[i]);
			field.setValueClass(String.class);
			jasperDesign.addField(field);
			
			// add text fields for displaying fields
			JRDesignTextField textField = new JRDesignTextField();
			JRDesignExpression expression = new JRDesignExpression();
			expression.setText("$F{" + alias[i] + "}");
			expression.setValueClass(String.class);
			textField.setExpression(expression);
			textField.setFontSize(fontSize);
			textField.setHeight(textHeight);
			textField.setWidth(textWidth);
			textField.setX(textWidth);
			textField.setY(Y*i);
			textField.setPdfFontName("STSong-Light"); 
			textField.setPdfEmbedded(true);
			textField.setPdfEncoding("UniGB-UCS2-H");  
			//textField.setTextAlignment(JRBasePrintText.HORIZONTAL_ALIGN_CENTER);
			textField.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_LEFT);
			/*textField.setLeftBorder(JRBaseLine.PEN_1_POINT);
			textField.setTopBorder(JRBaseLine.PEN_1_POINT);
			textField.setRightBorder(JRBaseLine.PEN_1_POINT);
			textField.setBottomBorder(JRBaseLine.PEN_1_POINT);*/
			/*JRBaseLineBox baseLineBox = new JRBaseLineBox(textField);
			baseLineBox.getLeftPen().setLineColor(Color.black);
			baseLineBox.getLeftPen().setLineWidth(0);
			baseLineBox.getLeftPen().setLineStyle((byte)0);
			baseLineBox.getRightPen().setLineColor(Color.black);
			baseLineBox.getRightPen().setLineWidth(0);
			baseLineBox.getRightPen().setLineStyle((byte)0);
			baseLineBox.getTopPen().setLineColor(Color.black);
			baseLineBox.getTopPen().setLineWidth(0);
			baseLineBox.getTopPen().setLineStyle((byte)0);
			baseLineBox.getBottomPen().setLineColor(Color.black);
			baseLineBox.getBottomPen().setLineWidth(0);
			baseLineBox.getBottomPen().setLineStyle((byte)0);*/
			
			//textField.setForecolor(new Color(0x99,0xFF,0xFF));
			textField.setForecolor(Color.black);
			textField.setStretchWithOverflow(true);
			detail.addElement(textField);
		}
		 
	//	jasperDesign.setColumnHeader(band);
		
		//detail
		jasperDesign.setDetail(detail);
		
		// Column footer
		band = new JRDesignBand();
		band.setHeight(0);
		jasperDesign.setColumnFooter(band);
		// Page footer
		band = new JRDesignBand();
		band.setHeight(20);
		
		JRDesignLine line2 = new JRDesignLine();		
		line2.setX(0);
		line2.setY(-10);
		line2.setWidth(450);
		line2.setHeight(0);
		line2.setForecolor(new Color(0x99,0xFF,0xFF));
		band.addElement(line2);
		
		staticText = new JRDesignStaticText();
		staticText.setX(0); 
		staticText.setY(0);
		staticText.setWidth(100);
		staticText.setHeight(20);
		staticText.setPdfFontName("STSong-Light");   
		staticText.setPdfEmbedded(true);   
		staticText.setPdfEncoding("UniGB-UCS2-H");  
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
		staticText.setText(sdf.format(new Date()));
		band.addElement(staticText);
		
		
		JRDesignTextField textField = new JRDesignTextField();
		textField.setX(450); 
		textField.setY(0);
		textField.setWidth(100);
		textField.setHeight(20);
		textField.setPdfFontName("STSong-Light");   
		textField.setPdfEmbedded(true);   
		textField.setPdfEncoding("UniGB-UCS2-H");  
		
		JRDesignExpression expression = new JRDesignExpression();
		 expression = new JRDesignExpression();
		 expression.setValueClass(java.lang.Integer.class);		
		 expression.setText("$V{PAGE_NUMBER}");
		 
		textField.setExpression(expression);
		band.addElement(textField);
		jasperDesign.setPageFooter(band);
		
		System.out.println(expression.getText());
		// Summary
		band = new JRDesignBand();
		band.setHeight(0);
		
		jasperDesign.setSummary(band);

		System.out.println("After Connection");

		JasperReport jasperReport = JasperCompileManager
				.compileReport(jasperDesign);
		Map parameters = new HashMap();
		System.out.println("After Parameter");
		JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,
				parameters, connection);
		System.out.println("After Print");
		
		JasperExportManager.exportReportToHtmlFile(jasperPrint, "D://test3.html");
		JasperExportManager.exportReportToPdfFile(jasperPrint, "D://test3.pdf");
		JasperExportManager.exportReportToXmlFile(jasperPrint, "D://test3.xml", false);
		
		System.out.println("After Export");

	}

	private void addReportFiled(JasperDesign jasperDesign) throws JRException {
		JRDesignField field;
		field=new JRDesignField();
		field.setName("USERID");
		field.setValueClass(java.math.BigDecimal.class);
		jasperDesign.addField(field);
		
		field = new JRDesignField();
		field.setName("NAME");
		field.setValueClass(java.lang.String.class);
		jasperDesign.addField(field);
		
		field = new JRDesignField();
		field.setName("AGE");
		field.setValueClass(java.lang.String.class);
		jasperDesign.addField(field);
		
		field = new JRDesignField();
		field.setName("SEX");
		field.setValueClass(java.lang.String.class);
		jasperDesign.addField(field);
		
		field = new JRDesignField();
		field.setName("PASSWORD");
		field.setValueClass(java.lang.String.class);
		jasperDesign.addField(field);
		
		field = new JRDesignField();
		field.setName("DEPARTMENT");
		field.setValueClass(java.lang.String.class);
		jasperDesign.addField(field);
	}

	private JRDesignStyle setReportSytle(JasperDesign jasperDesign)
			throws JRException {
		jasperDesign.setName("SampleReport");
		jasperDesign.setPageWidth(595);
		jasperDesign.setPageHeight(842);
		jasperDesign.setColumnWidth(335);
		jasperDesign.setColumnSpacing(0);
		
		jasperDesign.setLeftMargin(30);
		jasperDesign.setRightMargin(30);
		jasperDesign.setTopMargin(20);
		jasperDesign.setBottomMargin(20);
		// whenNoDataType="NoPages"
		jasperDesign.setWhenNoDataType(JRReport.WHEN_NO_DATA_TYPE_BLANK_PAGE);
		// isTitleNewPage="false"
		jasperDesign.setTitleNewPage(false);
		// isSummaryNewPage="false"
		jasperDesign.setSummaryNewPage(false);
	//	jasperDesign.setOrientation(JRReport.ORIENTATION_PORTRAIT);
	//	jasperDesign.setPrintOrder(JRReport.PRINT_ORDER_VERTICAL);
		
		JRDesignStyle normalStyle = new JRDesignStyle();
		normalStyle.setName("Arial_Normal");
		normalStyle.setDefault(true);
		normalStyle.setFontName("Arial");
		normalStyle.setFontSize(12);
		normalStyle.setPdfFontName("STSong-Light");
		normalStyle.setPdfEncoding("UniGB-UCS2-H");
		normalStyle.setPdfEmbedded(true);
		jasperDesign.addStyle(normalStyle);

		JRDesignStyle boldStyle = new JRDesignStyle();
		boldStyle.setName("Arial_Bold");
		boldStyle.setFontName("Arial");
		boldStyle.setFontSize(12);
		boldStyle.setBold(true);
		boldStyle.setPdfFontName("STSong-Light");
		boldStyle.setPdfEncoding("UniGB-UCS2-H");
		boldStyle.setPdfEmbedded(true);
		jasperDesign.addStyle(boldStyle);

		JRDesignStyle italicStyle = new JRDesignStyle();
		italicStyle.setName("Arial_Italic");
		italicStyle.setFontName("Arial");
		italicStyle.setFontSize(12);
		italicStyle.setItalic(true);
		italicStyle.setPdfFontName("STSong-Light");
		italicStyle.setPdfEncoding("UniGB-UCS2-H");
		italicStyle.setPdfEmbedded(true);
		jasperDesign.addStyle(italicStyle);
		return normalStyle;
	}

	private Connection getConnection() throws SQLException {
		Connection connection = ReadConfig.getProduceInstance().getDataSource().getConnection();
		return connection;
	}

}

	class Vertical {
	public static void main(String args[]) throws Exception {
		Sample obj = new Sample();

	}

}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JasperReports 6 和 JasperReports 3.5 的报表设计器和引擎之间存在一些区别。以下是它们的主要区别: 1. 报表设计器:JasperReports 6 引入了新的报表设计器 Jaspersoft Studio,替代了 JasperReports 3.5 中使用的 iReport。Jaspersoft Studio 是一个基于 Eclipse 的报表设计器,提供了更多的功能和改进,包括可视化编辑器、图形化界面、更多的报表元素和组件等。 2. 功能增强:JasperReports 6 的报表设计器相对于 JasperReports 3.5 的 iReport,在功能和用户体验方面有所增强。例如,Jaspersoft Studio 提供了更丰富的报表元素、更灵活的数据绑定选项、更强大的样式编辑器等。 3. 报表引擎:JasperReports 6 引入了新的报表引擎,该引擎对于大规模报表生成和处理提供了更好的性能和稳定性。它还引入了一些新的特性和改进,例如增强的导出选项、更好的图表和图形支持、更高效的内存管理等。 4. 兼容性:JasperReports 6 的报表设计器和引擎与 JasperReports 3.5 不完全兼容。因此,如果你计划升级到 JasperReports 6,你可能需要更新你的报表模板和代码,以适应新的格式和 API。 需要注意的是,具体的区别和改进可能因具体版本而有所不同。建议查阅 JasperReports 的官方文档或迁移指南,以获取更详细的信息和具体的升级步骤。此外,升级之前建议进行充分的测试,以确保你的应用在新版本下能够正常工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值