iReport+jasperReport之JDBC数据源

iReport画出来的报表可以满足我们大部分的需要,所以采用iReport 编辑jrxml文件是我们的首选啦!当然掌握jrxml文件的结构也是必须的。
        采用JDBC数据源必须有数据库支持啊!我们新建一个test表,其中有pid、name、sex、password、department、age字段,为了方便期间我们定义这些字段全部为String类型。
        在iReport中新建一报表,报表有title、pageHeader、columnHeader、detail、columnFooter、pageFooter、lastPageFooter、summary等部分,被成为Report section

title:顾名思义是指报表的标题哦,它会显示在报表的最上面,如果有多页只会出现在第一页的最上面。pageHeader:每页的标题,如果有多页每页的开始都会显示此部分内容。
columnHeader:显示报表的列头不经常使用。
detail:这个就不用说了吧!
有header就会出现footer啦!lastPageFooter只会出现在最后一页。summay会出现在每一页数据上,主要是为了展示一些统计信息,比如当前的时间,页数信息啦!

新建一parameter

此参数可作为报表的标题使用,我们在程序中动态的传递给报表。
    document structure---》parameter里找到reportTitle参数拖至title区域,右击编辑reportTitle域的属性,在font选项里找到Markup设置为HTML,TextField选项里设置Text Field Expreesion为

" < font  color ='blue'  size ='5'>"+$P{reportTitle}+"</font>"

下来就是设置报表的Field字段了,不需要我们一个个的新建那些字段啦!
选择Data--->Report Query在Report Query选项里选择Query Language为SQL,写入SqL语句

select   *   from  test  order   by  pid  DESC

这时所有的field会出现在下面(SQL是正确的)
关闭对话框在document structure---》field中就会出现我们需要的field,之后拖到相应的位置,关于怎么美化报表这个本人也不是很懂哦!
如果需要显示一下当前的页数信息也可以自己托动Variables里的PAGE_NUMBER完成页数的显示。完整的jrxml文件如下:

<? xml version="1.0" encoding="UTF-8"   ?>
<!--  Created with iReport - A designer for JasperReports  -->
<! DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd" >
< jasperReport
         
name ="Person"
         columnCount
="1"
         printOrder
="Vertical"
         orientation
="Portrait"
         pageWidth
="595"
         pageHeight
="842"
         columnWidth
="535"
         columnSpacing
="0"
         leftMargin
="30"
         rightMargin
="30"
         topMargin
="20"
         bottomMargin
="20"
         whenNoDataType
="NoPages"
         isTitleNewPage
="false"
         isSummaryNewPage
="false" >
    
< property  name ="ireport.scriptlethandling"  value ="0"   />
    
< property  name ="ireport.encoding"  value ="UTF-8"   />
    
< import  value ="java.util.*"   />
    
< import  value ="net.sf.jasperreports.engine.*"   />
    
< import  value ="net.sf.jasperreports.engine.data.*"   />

    
< parameter  name ="reportTitle"  isForPrompting ="true"  class ="java.lang.String" />
    
< queryString > <![CDATA[ select * from test order by pid DESC ]]> </ queryString >

    
< field  name ="pid"  class ="java.lang.String" />
    
< field  name ="name"  class ="java.lang.String" />
    
< field  name ="sex"  class ="java.lang.String" />
    
< field  name ="password"  class ="java.lang.String" />
    
< field  name ="department"  class ="java.lang.String" />
    
< field  name ="age"  class ="java.lang.String" />

        
< background >
            
< band  height ="6"   isSplitAllowed ="true"   >
            
</ band >
        
</ background >
        
< title >
            
< band  height ="29"   isSplitAllowed ="true"   >
                
< textField  isStretchWithOverflow ="false"  isBlankWhenNull ="false"  evaluationTime ="Now"  hyperlinkType ="None"   hyperlinkTarget ="Self"   >
                    
< reportElement
                        
x ="138"
                        y
="0"
                        width
="258"
                        height
="29"
                        key
="textField" />
                    
< box ></ box >
                    
< textElement  textAlignment ="Center"  verticalAlignment ="Middle"  markup ="html" >
                        
< font  pdfFontName ="Helvetica-Bold"  isBold ="true" />
                    
</ textElement >
                
< textFieldExpression    class ="java.lang.String" > <![CDATA[ "<font color='blue' size='5'>"+$P{reportTitle}+"</font>" ]]> </ textFieldExpression >
                
</ textField >
            
</ band >
        
</ title >
        
< pageHeader >
            
< band  height ="0"   isSplitAllowed ="true"   >
            
</ band >
        
</ pageHeader >
        
< columnHeader >
            
< band  height ="0"   isSplitAllowed ="true"   >
            
</ band >
        
</ columnHeader >
        
< detail >
            
< band  height ="22"   isSplitAllowed ="true"   >
                
< textField  isStretchWithOverflow ="false"  isBlankWhenNull ="false"  evaluationTime ="Now"  hyperlinkType ="None"   hyperlinkTarget ="Self"   >
                    
< reportElement
                        
x ="0"
                        y
="0"
                        width
="100"
                        height
="18"
                        key
="textField" />
                    
< box ></ box >
                    
< textElement  verticalAlignment ="Top" >
                        
< font />
                    
</ textElement >
                
< textFieldExpression    class ="java.lang.String" > <![CDATA[ $F{pid} ]]> </ textFieldExpression >
                
</ textField >
                
< textField  isStretchWithOverflow ="false"  isBlankWhenNull ="false"  evaluationTime ="Now"  hyperlinkType ="None"   hyperlinkTarget ="Self"   >
                    
< reportElement
                        
x ="100"
                        y
="0"
                        width
="93"
                        height
="18"
                        key
="textField" />
                    
< box ></ box >
                    
< textElement  verticalAlignment ="Top" >
                        
< font />
                    
</ textElement >
                
< textFieldExpression    class ="java.lang.String" > <![CDATA[ $F{name} ]]> </ textFieldExpression >
                
</ textField >
                
< textField  isStretchWithOverflow ="false"  isBlankWhenNull ="false"  evaluationTime ="Now"  hyperlinkType ="None"   hyperlinkTarget ="Self"   >
                    
< reportElement
                        
x ="193"
                        y
="0"
                        width
="58"
                        height
="18"
                        key
="textField" />
                    
< box ></ box >
                    
< textElement  verticalAlignment ="Top" >
                        
< font />
                    
</ textElement >
                
< textFieldExpression    class ="java.lang.String" > <![CDATA[ $F{sex} ]]> </ textFieldExpression >
                
</ textField >
                
< textField  isStretchWithOverflow ="false"  isBlankWhenNull ="false"  evaluationTime ="Now"  hyperlinkType ="None"   hyperlinkTarget ="Self"   >
                    
< reportElement
                        
x ="251"
                        y
="0"
                        width
="100"
                        height
="18"
                        key
="textField" />
                    
< box ></ box >
                    
< textElement  verticalAlignment ="Top" >
                        
< font />
                    
</ textElement >
                
< textFieldExpression    class ="java.lang.String" > <![CDATA[ $F{password} ]]> </ textFieldExpression >
                
</ textField >
                
< textField  isStretchWithOverflow ="false"  isBlankWhenNull ="false"  evaluationTime ="Now"  hyperlinkType ="None"   hyperlinkTarget ="Self"   >
                    
< reportElement
                        
x ="351"
                        y
="0"
                        width
="100"
                        height
="18"
                        key
="textField" />
                    
< box ></ box >
                    
< textElement  verticalAlignment ="Top" >
                        
< font />
                    
</ textElement >
                
< textFieldExpression    class ="java.lang.String" > <![CDATA[ $F{department} ]]> </ textFieldExpression >
                
</ textField >
                
< textField  isStretchWithOverflow ="false"  pattern =""  isBlankWhenNull ="false"  evaluationTime ="Now"  hyperlinkType ="None"   hyperlinkTarget ="Self"   >
                    
< reportElement
                        
x ="451"
                        y
="0"
                        width
="84"
                        height
="18"
                        key
="textField" />
                    
< box ></ box >
                    
< textElement  verticalAlignment ="Top" >
                        
< font />
                    
</ textElement >
                
< textFieldExpression    class ="java.lang.String" > <![CDATA[ $F{age} ]]> </ textFieldExpression >
                
</ textField >
                
< line  direction ="TopDown" >
                    
< reportElement
                        
x ="0"
                        y
="17"
                        width
="535"
                        height
="1"
                        key
="line-1" />
                    
< graphicElement  stretchType ="NoStretch" />
                
</ line >
            
</ band >
        
</ detail >
        
< columnFooter >
            
< band  height ="0"   isSplitAllowed ="true"   >
            
</ band >
        
</ columnFooter >
        
< pageFooter >
            
< band  height ="24"   isSplitAllowed ="true"   >
                
< textField  isStretchWithOverflow ="false"  isBlankWhenNull ="false"  evaluationTime ="Now"  hyperlinkType ="None"   hyperlinkTarget ="Self"   >
                    
< reportElement
                        
x ="387"
                        y
="5"
                        width
="22"
                        height
="18"
                        key
="textField" />
                    
< box ></ box >
                    
< textElement  textAlignment ="Center"  verticalAlignment ="Middle" >
                        
< font />
                    
</ textElement >
                
< textFieldExpression    class ="java.lang.Integer" > <![CDATA[ $V{PAGE_NUMBER} ]]> </ textFieldExpression >
                
</ textField >
                
< staticText >
                    
< reportElement
                        
x ="373"
                        y
="5"
                        width
="14"
                        height
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值