jasper ireport

jasper ireport

读取一个模板然后处理



package  report;


import  java.sql.CallableStatement;
import  java.sql.Connection;
import  java.sql.DriverManager;
import  java.sql.PreparedStatement;

import  net.sf.jasperreports.engine.JasperFillManager;  

import  java.sql.ResultSet;
import  java.sql.SQLException;
import  java.sql.Statement;
import  java.util.HashMap;

import  net.sf.jasperreports.engine.JRException;
import  net.sf.jasperreports.engine.JRResultSetDataSource;
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.util.JRLoader;

import  oracle.jdbc.driver.OracleTypes;


public   class  Main {
        
    
private  String driverName  =   " oracle.jdbc.driver.OracleDriver " ;   
    
private  String url  =   " jdbc:oracle:thin:@127.0.0.1:1521:itmp " ;   
    
private  String userName  =   " itmp " ;   
    
private  String userPwd  =   " itmp " ;   
    
    
public  String selectSQL(String selectSQL) {   
        Connection conn 
=   null ;   
        Statement st 
=   null ;   
        ResultSet rs 
=   null ;   
        
//  用来存放查询的结果   
        StringBuffer sb  =   new  StringBuffer();   
        
try  {   
            
//  加载驱动   
            Class.forName(driverName);   
            
//  创建连接   
            conn  =  DriverManager.getConnection(url, userName, userPwd);   
            
//  创建Statement   
            st  =  conn.createStatement();   
            
//  执行sql语句,得到查询结果   
            rs  =  st.executeQuery(selectSQL);   
                                    
            
            
/*
            // 输出查询结果   
            int cloNum = rs.getMetaData().getColumnCount();   
            sb.append("<tr class=\"th\">");   
            for (int i = 0; i < cloNum; i++) {   
                sb.append("<td>");   
                sb.append(rs.getMetaData().getColumnName(i + 1));   
                sb.append("</td>");   
            }   
            sb.append("</tr>");   
            while (rs.next()) {   
                sb.append("<tr>");   
                for (int i = 0; i < cloNum; i++) {   
                    sb.append("<td>");   
                    sb.append(rs.getString(i + 1));   
                    sb.append("</td>");   
                }   
                sb.append("</tr>");   
            }   
            // 关闭资源  
       
             
*/  
            rs.close();   
            st.close();   
            conn.close();   
  
        } 
catch  (Exception ex) {   
            
//  输出错误信息   
            ex.printStackTrace();   
        } 
finally  {   
            
//  finally子句总是会执行(就算发生错误),这样可以保证资源的绝对关闭   
             try  {   
                
if  (rs  !=   null )   
                    rs.close();   
            } 
catch  (SQLException e) {   
                e.printStackTrace();   
            }   
            
try  {   
                
if  (st  !=   null )   
                    st.close();   
            } 
catch  (SQLException e) {   
                e.printStackTrace();   
            }   
            
try  {   
                
if  (conn  !=   null )   
                    conn.close();   
            } 
catch  (SQLException e) {   
                e.printStackTrace();   
            }   
  
        }   
        
return  sb.toString();   
    }   

    
    
public   void  report(){
          Connection conn 
=   null ;   
          CallableStatement stmt 
=   null ;   
          ResultSet rs 
=   null ;   
          
//  用来存放查询的结果   
          StringBuffer sb  =   new  StringBuffer();   
         String  exchgcode 
= " SH " ;
        String stkcode 
=   " 600000 " ;
          
          
try  {   
              
              
              
          
              
//  加载驱动   
              Class.forName(driverName);   
              
//  创建连接   
              conn  =  DriverManager.getConnection(url, userName, userPwd);   
              
//  创建Statement   
              
            String sql 
=    "  call sp_gethq2 (? ,? ,? ) " ;
           
            stmt 
=  conn.prepareCall(sql);

              stmt.setString(
1 , exchgcode);
               stmt.setString(
2 , stkcode );
 
               
              stmt.registerOutParameter(
3 , OracleTypes.CURSOR);

              
// stmt.registerOutParameter(3, OracleTypes.VARCHAR);
              
// stmt.registerOutParameter(4, OracleTypes.VARCHAR);

              stmt.execute();
              
/*
              String errorcode = "";
              errorcode = (String) stmt.getObject(3);
              String errormsg = "";
              errormsg = (String) stmt.getObject(4);
            
*/
                rs 
=  (ResultSet) stmt.getObject( 3 );
                
                
                JRResultSetDataSource result 
=    
                   
new  JRResultSetDataSource( rs );  
//               create JasperReport from .jasper  
                
              JasperReport  jasperReport 
=  JasperCompileManager.compileReport(
              
" c:/report1.jrxml " );

                            
/*
                JasperReport jasperReport =   
                   (JasperReport) JRLoader.loadObject("reports/Location.jasper"); 
                
*/
                
                
                JasperPrint jasperPrint 
=    
                   JasperFillManager.fillReport( jasperReport, 
new  HashMap(), result );  
                
              JasperExportManager.exportReportToHtmlFile( jasperPrint, 
" c:/simple_report1.html " );
                
                

          } 
catch  (Exception ex) {   
              
//  输出错误信息   
              ex.printStackTrace();   
          } 
finally  {   
              
//  finally子句总是会执行(就算发生错误),这样可以保证资源的绝对关闭   
               try  {   
                  
if  (rs  !=   null )   
                      rs.close();   
              } 
catch  (SQLException e) {   
                  e.printStackTrace();   
              }   
              
try  {   
                  
if  (stmt  !=   null )   
                      stmt.close();   
              } 
catch  (SQLException e) {   
                  e.printStackTrace();   
              }   
              
try  {   
                  
if  (conn  !=   null )   
                      conn.close();   
              } 
catch  (SQLException e) {   
                  e.printStackTrace();   
              }   
    
          }   
      
        
    }
    
    
public   void  report(){
        Connection conn 
=   null ;   
        CallableStatement stmt 
=   null ;   
        ResultSet rs 
=   null ;   
        
//  用来存放查询的结果   
        StringBuffer sb  =   new  StringBuffer();   
       String  exchgcode 
= " SH " ;
      String stkcode 
=   " 600000 " ;
        
        
try  {   
            
            
            
        
            
//  加载驱动   
            Class.forName(driverName);   
            
//  创建连接   
            conn  =  DriverManager.getConnection(url, userName, userPwd);   
            
//  创建Statement   
            
          String sql 
=    "  call sp_gethq2 (? ,? ,? ) " ;
         
          stmt 
=  conn.prepareCall(sql);

            stmt.setString(
1 , exchgcode);
             stmt.setString(
2 , stkcode );

             
            stmt.registerOutParameter(
3 , OracleTypes.CURSOR);

            
// stmt.registerOutParameter(3, OracleTypes.VARCHAR);
            
// stmt.registerOutParameter(4, OracleTypes.VARCHAR);

            stmt.execute();
            
/*
            String errorcode = "";
            errorcode = (String) stmt.getObject(3);
            String errormsg = "";
            errormsg = (String) stmt.getObject(4);
          
*/
              rs 
=  (ResultSet) stmt.getObject( 3 );
              
              
              JRResultSetDataSource result 
=    
                 
new  JRResultSetDataSource( rs );  
//             create JasperReport from .jasper  
              
            JasperReport  jasperReport 
=  JasperCompileManager.compileReport(
              
" c:/report1.jrxml " );

                          
/*
              JasperReport jasperReport =   
                 (JasperReport) JRLoader.loadObject("reports/Location.jasper"); 
              
*/
              
              
              JasperPrint jasperPrint 
=    
                 JasperFillManager.fillReport( jasperReport, 
new  HashMap(), result );  
              
            JasperExportManager.exportReportToHtmlFile( jasperPrint, 
" c:/simple_report1.html " );
              
              

        } 
catch  (Exception ex) {   
            
//  输出错误信息   
            ex.printStackTrace();   
        } 
finally  {   
            
//  finally子句总是会执行(就算发生错误),这样可以保证资源的绝对关闭   
             try  {   
                
if  (rs  !=   null )   
                    rs.close();   
            } 
catch  (SQLException e) {   
                e.printStackTrace();   
            }   
            
try  {   
                
if  (stmt  !=   null )   
                    stmt.close();   
            } 
catch  (SQLException e) {   
                e.printStackTrace();   
            }   
            
try  {   
                
if  (conn  !=   null )   
                    conn.close();   
            } 
catch  (SQLException e) {   
                e.printStackTrace();   
            }   
  
        }   
    
      
  }
  
    
public   void  html()  throws  JRException
    {
        
long  start  =  System.currentTimeMillis();
        JasperExportManager.exportReportToHtmlFile(
" build/reports/TableReport.jrprint " );
        System.err.println(
" HTML creation time :  "   +  (System.currentTimeMillis()  -  start));
    }
    
    
    
    
public   static   void  main(String []args ){
        
        
new  Main().report() ;
        
        
    }
    
}









<? xml version="1.0" encoding="UTF-8" ?>
< jasperReport  xmlns ="http://jasperreports.sourceforge.net/jasperreports"  xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation ="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd"  name ="report1"  pageWidth ="842"  pageHeight ="595"  orientation ="Landscape"  columnWidth ="802"  leftMargin ="20"  rightMargin ="20"  topMargin ="20"  bottomMargin ="20" >
    
< property  name ="ireport.zoom"  value ="1.0" />
    
< property  name ="ireport.x"  value ="0" />
    
< property  name ="ireport.y"  value ="0" />
    
< style  name ="Title"  forecolor ="#FFFFFF"  fontName ="Times New Roman"  fontSize ="50"  isBold ="false"  pdfFontName ="Times-Bold" />
    
< style  name ="SubTitle"  forecolor ="#CCCCCC"  fontName ="Times New Roman"  fontSize ="18"  isBold ="false"  pdfFontName ="Times-Roman" />
    
< style  name ="Column header"  forecolor ="#666666"  fontName ="Times New Roman"  fontSize ="14"  isBold ="true"  pdfFontName ="Times-Roman" />
    
< style  name ="Detail"  mode ="Transparent"  fontName ="Times New Roman"  pdfFontName ="Times-Roman" />
    
< style  name ="Row"  mode ="Transparent"  fontName ="Times New Roman"  pdfFontName ="Times-Roman" >
        
< conditionalStyle >
            
< conditionExpression > <![CDATA[ $V{REPORT_COUNT}%2 == 0 ]]> </ conditionExpression >
            
< style  mode ="Opaque"  backcolor ="#F0EFEF" />
        
</ conditionalStyle >
    
</ style >
    
< field  name ="EXCHGCODE_"  class ="java.lang.String" />
    
< field  name ="STKCODE_"  class ="java.lang.String" />
    
< field  name ="ZJCJ_"  class ="java.math.BigDecimal" />
    
< background >
        
< band  splitType ="Stretch" />
    
</ background >
    
< title >
        
< band  height ="102"  splitType ="Stretch" >
            
< frame >
                
< reportElement  mode ="Opaque"  x ="0"  y ="70"  width ="721"  height ="32"  forecolor ="#000000"  backcolor ="#CC0000" />
                
< textField  pattern ="EEEEE dd MMMMM yyyy" >
                    
< reportElement  x ="458"  y ="12"  width ="239"  height ="20"  forecolor ="#FFFFFF" />
                    
< textElement  textAlignment ="Right" >
                        
< font  size ="12" />
                    
</ textElement >
                    
< textFieldExpression  class ="java.util.Date" > <![CDATA[ new java.util.Date() ]]> </ textFieldExpression >
                
</ textField >
            
</ frame >
        
</ band >
    
</ title >
    
< pageHeader >
        
< band  splitType ="Stretch" />
    
</ pageHeader >
    
< columnHeader >
        
< band  height ="18"  splitType ="Stretch" >
            
< staticText >
                
< reportElement  style ="Column header"  x ="0"  y ="0"  width ="36"  height ="18"  forecolor ="#000000" />
                
< textElement >
                    
< font  isBold ="false" />
                
</ textElement >
                
< text > <![CDATA[ EXCHGCODE_ ]]> </ text >
            
</ staticText >
            
< staticText >
                
< reportElement  style ="Column header"  x ="53"  y ="0"  width ="34"  height ="18"  forecolor ="#000000" />
                
< textElement >
                    
< font  isBold ="false" />
                
</ textElement >
                
< text > <![CDATA[ STKCODE_ ]]> </ text >
            
</ staticText >
            
< staticText >
                
< reportElement  style ="Column header"  x ="113"  y ="0"  width ="34"  height ="18"  forecolor ="#000000" />
                
< textElement >
                    
< font  isBold ="false" />
                
</ textElement >
                
< text > <![CDATA[ ZJCJ_ ]]> </ text >
            
</ staticText >
        
</ band >
    
</ columnHeader >
    
< detail >
        
< band  height ="46"  splitType ="Stretch" >
            
< frame >
                
< reportElement  style ="Row"  mode ="Opaque"  x ="5"  y ="9"  width ="797"  height ="37" />
                
< box >
                    
< topPen  lineWidth ="1.0"  lineStyle ="Solid" />
                    
< leftPen  lineWidth ="1.0"  lineStyle ="Solid" />
                    
< bottomPen  lineWidth ="1.0"  lineStyle ="Solid" />
                    
< rightPen  lineWidth ="1.0"  lineStyle ="Solid" />
                
</ box >
                
< textField  isStretchWithOverflow ="true" >
                    
< reportElement  style ="Detail"  positionType ="Float"  x ="0"  y ="0"  width ="34"  height ="18" />
                    
< textElement >
                        
< font  size ="14" />
                    
</ textElement >
                    
< textFieldExpression  class ="java.lang.String" > <![CDATA[ $F{EXCHGCODE_} ]]> </ textFieldExpression >
                
</ textField >
                
< textField  isStretchWithOverflow ="true" >
                    
< reportElement  style ="Detail"  positionType ="Float"  x ="46"  y ="0"  width ="34"  height ="18" />
                    
< textElement >
                        
< font  size ="14" />
                    
</ textElement >
                    
< textFieldExpression  class ="java.lang.String" > <![CDATA[ $F{STKCODE_} ]]> </ textFieldExpression >
                
</ textField >
                
< textField  isStretchWithOverflow ="true" >
                    
< reportElement  style ="Detail"  positionType ="Float"  x ="106"  y ="0"  width ="34"  height ="18" />
                    
< textElement >
                        
< font  size ="14" />
                    
</ textElement >
                    
< textFieldExpression  class ="java.math.BigDecimal" > <![CDATA[ $F{ZJCJ_} ]]> </ textFieldExpression >
                
</ textField >
            
</ frame >
        
</ band >
    
</ detail >
    
< columnFooter >
        
< band  height ="22"  splitType ="Stretch" >
            
< line >
                
< reportElement  positionType ="FixRelativeToBottom"  x ="0"  y ="3"  width ="555"  height ="1" />
                
< graphicElement >
                    
< pen  lineWidth ="0.5"  lineColor ="#999999" />
                
</ graphicElement >
            
</ line >
        
</ band >
    
</ columnFooter >
    
< pageFooter >
        
< band  height ="25"  splitType ="Stretch" />
    
</ pageFooter >
    
< summary >
        
< band  splitType ="Stretch" />
    
</ summary >
</ jasperReport >

追求完美直接在 里面处理












<? xml version="1.0" encoding="UTF-8" ?>
< jasperReport  xmlns ="http://jasperreports.sourceforge.net/jasperreports"  xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation ="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd"  name ="report23"  language ="groovy"  pageWidth ="595"  pageHeight ="842"  columnWidth ="535"  leftMargin ="20"  rightMargin ="20"  topMargin ="20"  bottomMargin ="20" >
    
< property  name ="ireport.zoom"  value ="1.0" />
    
< property  name ="ireport.x"  value ="0" />
    
< property  name ="ireport.y"  value ="0" />
    
< style  name ="Title"  fontName ="Arial"  fontSize ="26"  isBold ="true"  pdfFontName ="Helvetica-Bold" />
    
< style  name ="SubTitle"  forecolor ="#666666"  fontName ="Arial"  fontSize ="18" />
    
< style  name ="Column header"  forecolor ="#666666"  fontName ="Arial"  fontSize ="12"  isBold ="true" />
    
< style  name ="Detail"  fontName ="Arial"  fontSize ="12" />
    
< parameter  name ="a"  class ="java.lang.String" />
    
< parameter  name ="b"  class ="java.lang.String" />
    
< parameter  name ="cursor"  class ="java.sql.ResultSet"  isForPrompting ="false" />
    
< queryString  language ="plsql" >
        
<![CDATA[ {call  sp_gethq2( $P{a} ,$P{b}  ,$P{cursor}  )} ]]>
    
</ queryString >
    
< field  name ="EXCHGCODE_"  class ="java.lang.String" />
    
< field  name ="STKCODE_"  class ="java.lang.String" />
    
< field  name ="ZJCJ_"  class ="java.math.BigDecimal" />
    
< background >
        
< band  splitType ="Stretch" />
    
</ background >
    
< title >
        
< band  height ="70"  splitType ="Stretch" >
            
< image >
                
< reportElement  x ="275"  y ="0"  width ="300"  height ="64" />
                
< imageExpression  class ="java.lang.String" > <![CDATA[ "leaf_banner_green.png" ]]> </ imageExpression >
            
</ image >
            
< staticText >
                
< reportElement  style ="Title"  x ="0"  y ="13"  width ="263"  height ="33" />
                
< textElement  verticalAlignment ="Middle" />
                
< text > <![CDATA[ Leaf Green Title ]]> </ text >
            
</ staticText >
            
< staticText >
                
< reportElement  style ="SubTitle"  x ="100"  y ="46"  width ="174"  height ="22" />
                
< textElement />
                
< text > <![CDATA[ Leaf Green SubTitle ]]> </ text >
            
</ staticText >
        
</ band >





你可能感兴趣的:(jasper ireport)