webwork+jasperReport实践

 

webwork+jasperReport实践

所需jar

dist/jasperreports-X.jar

lib/commons-*.jar (all the commons - except maybe for commons-logging)

lib/itext-X.jar

lib/jdt-compiler.jar

xwork.xml中设置

  1. <action name="PaymentToPDF" class="fr.simatai.webwork.payment.PaymentToPDF">
  2.             <result name="success" type="jasper">
  3.                 <param name="location">/admin/payment/PaymentToPDF.jasper</param>
  4.                 <param name="dataSource">datalist</param>
  5.                 <param name="format">PDF</param>
  6.             </result>
  7. </action>

 

类的编写PaymentToPDFjava

  1. public class PaymentToPDF extends ActionSupport {
  2.     Log log = LogFactory.getLog(PaymentToPDF.class);
  3.     List datalist = new ArrayList();
  4.     String name;
  5.     Float taxRate;
  6.     getter..    
  7.     public String execute() throws Exception {
  8.         List paymentList = new ArrayList();
  9.         //这里是对数据获取的代码,一般是访问持久层
  10.         return SUCCESS;
  11.     }
  12.     //编译与调试,如果用iReport,我发现并能不直接拿出来用 main函数中编译
  13.     public static void main(String[] args) {
  14.             try {
  15.                 JasperCompileManager.compileReportToFile(
  16.                         "WebRoot//admin//payment//PaymentToPDF.jrxml",
  17.                         "WebRoot//admin//payment//PaymentToPDF.jasper");
  18.             } catch (Exception e) {
  19.                 e.printStackTrace();
  20.             }
  21.     }
  22. }

PaymentToPDF.jrxml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE jasperReport PUBLIC "-//JasperReports//DTD Report Design//EN"
  3. "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
  4. <jasperReport name="sample_report" pageWidth="595" pageHeight="842" columnWidth="515" columnSpacing="0" leftMargin="40" rightMargin="40" topMargin="50" bottomMargin="50">
  5. 定义字体
  6. <reportFont name="Arial_Normal" isDefault="true" fontName="Arial" size="12" pdfFontName="Helvetica" pdfEncoding="Cp1252" isPdfEmbedded="false"/>
  7. <reportFont name="Arial_Small" isDefault="true" fontName="Arial" size="8" pdfFontName="Helvetica" pdfEncoding="Cp1252" isPdfEmbedded="false"/>
  8. <reportFont name="Arial_Bold" isDefault="false" fontName="Arial" size="12" isBold="true" pdfFontName="Helvetica-Bold" pdfEncoding="Cp1252" isPdfEmbedded="false"/>
  9. <reportFont name="Arial_Italic" isDefault="false" fontName="Arial" size="12" isItalic="true" pdfFontName="Helvetica-Oblique" pdfEncoding="Cp1252" isPdfEmbedded="false"/>
  10. 定义参数
  11. <parameter name="name" class="java.lang.String"/>类中用getter方法取得
  12. <parameter name="taxRate" class="java.lang.Float"/>类中用getter方法取得
  13. 计算值
  14. <variable name="sumtotal" class="java.lang.Float" resetType="Page" calculation="Sum">
  15.      <variableExpression>$F{total}</variableExpression>
  16.      <initialValueExpression>new Float(0)</initialValueExpression>
  17.  </variable>
  18. <field name="balance" class="java.lang.Integer"/> datasource中定义一般是一个list对象,里面放的是entity bean
  19. <variable name="sumtotal" class="java.lang.Float" resetType="Page" calculation="Sum">
  20.      <variableExpression>$F{total}</variableExpression>
  21.      <initialValueExpression>new Float(0)</initialValueExpression>
  22.  </variable>
  23. <title>
  24.   <band height="0"/>
  25. </title>
  26. <pageHeader>
  27. <band height="155">
  28. 图片
  29. <image>
  30. <reportElement x="0" y="0" width="100" height="80"/>
  31. <imageExpression class="java.net.URL"><![CDATA[new URL("http://photo2:88/icon/file.gif")]]></imageExpression>   
  32. </image>
  33. <image>
  34. <reportElement x="50" y="0" width="199" height="125"/>
  35. <imageExpression class="java.lang.String"><![CDATA["F://data//wwwroot//simatai//icon//pdf.jpg"]]></imageExpression>   
  36. </image>
  37. <rectangle>
  38.        <reportElement  x="250" y="45" width="200" height="80"/>
  39.        <graphicElement stretchType="NoStretch" pen="1Point"/>
  40.    </rectangle>
  41.    <textField>
  42.     <reportElement x="250" y="45" width="200" height="15"/>
  43.     <textElement textAlignment="Left" >
  44.         <font reportFont="Arial_Bold" size="10"/>
  45.     </textElement>
  46.     <textFieldExpression class="java.lang.String"><![CDATA["    Adressée à :"]]></textFieldExpression>
  47.     </textField>
  48.     这儿放不重复的字段...  
  49. </band>
  50. </pageHeader>
  51. <columnHeader>
  52. <band height="160">
  53.    <textField>
  54.     <reportElement x="0" y="0" width="515" height="25"/>
  55.     <textElement textAlignment="Left"/>
  56.     <textFieldExpression class="java.lang.String">
  57.         "DATE ET HEURE DE LA TRANSACTION : LE "+$P{todayStr}
  58.     </textFieldExpression>
  59.     </textField>
  60. 这儿放不重复的字段及表格标题...  
  61. 定义静态文本
  62. <staticText>
  63.     <reportElement x="445" y="100" width="70" height="60" />
  64.     <textElement textAlignment="Center" verticalAlignment="Middle">
  65.         <font reportFont="Arial_Bold" size="8"/>
  66.     </textElement>
  67.     <text><![CDATA[Montant en Euros]]></text>
  68.     </staticText>
  69.      </band>
  70. </columnHeader>
  71. <detail>
  72. <band height="16">
  73.     画框
  74. <rectangle>
  75.        <reportElement x="0" y="5" width="515" height="15" backcolor="#666666"/>
  76.        <graphicElement stretchType="NoStretch" pen="2Point"/>
  77.    </rectangle>
  78. 动态文本
  79.     <textField>
  80.     <reportElement  x="0" y="0" width="165" height="15" />
  81.     <textElement>
  82.         <font reportFont="Arial_Small"/>
  83.     </textElement>
  84.     <textFieldExpression><![CDATA["    "+$F{description}]]></textFieldExpression>
  85.     </textField>
  86.   这儿放重复的字段及表格 
  87. </band>
  88. </detail>
  89. <columnFooter>
  90. <band height="81">
  91. 画线
  92.        <line>
  93.     <reportElement x="115" y="80" width="300" height="0"/>
  94.     <graphicElement stretchType="NoStretch"/>
  95.     </line>
  96. </band>
  97. </columnFooter>
  98. <pageFooter>
  99. <band height="0"/>
  100. </pageFooter>
  101. </jasperReport>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值