2017-09-23 76 views
1

的Java列表的第一个数据试图生成Java PDF时,不贾斯珀报告中显示不显示。碧玉表格第一行中的PDF

MY JRXML代码:

<?xml version="1.0" encoding="UTF-8"?> 
<!-- Created with Jaspersoft Studio version 6.4.0.final using JasperReports Library version 6.4.1 --> 
<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="subreport" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="4d180a2f-d30e-4c01-be4d-34208d1ab63f"> 
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/> 
    <style name="Table_TH" mode="Opaque" backcolor="#F0F8FF"> 
     <box> 
      <pen lineWidth="0.5" lineColor="#000000"/> 
      <topPen lineWidth="0.5" lineColor="#000000"/> 
      <leftPen lineWidth="0.5" lineColor="#000000"/> 
      <bottomPen lineWidth="0.5" lineColor="#000000"/> 
      <rightPen lineWidth="0.5" lineColor="#000000"/> 
     </box> 
    </style> 
    <style name="Table_CH" mode="Opaque" backcolor="#BFE1FF"> 
     <box> 
      <pen lineWidth="0.5" lineColor="#000000"/> 
      <topPen lineWidth="0.5" lineColor="#000000"/> 
      <leftPen lineWidth="0.5" lineColor="#000000"/> 
      <bottomPen lineWidth="0.5" lineColor="#000000"/> 
      <rightPen lineWidth="0.5" lineColor="#000000"/> 
     </box> 
    </style> 
    <style name="Table_TD" mode="Opaque" backcolor="#FFFFFF"> 
     <box> 
      <pen lineWidth="0.5" lineColor="#000000"/> 
      <topPen lineWidth="0.5" lineColor="#000000"/> 
      <leftPen lineWidth="0.5" lineColor="#000000"/> 
      <bottomPen lineWidth="0.5" lineColor="#000000"/> 
      <rightPen lineWidth="0.5" lineColor="#000000"/> 
     </box> 
    </style> 
    <subDataset name="dataset" uuid="5c388144-2819-47f9-b534-f7f6ba299c89"> 
     <field name="patient_pid" class="java.lang.String"/> 
     <field name="name" class="java.lang.String"/> 
     <field name="time" class="java.lang.String"/> 
     <field name="dov" class="java.lang.String"/> 

    </subDataset> 
    <parameter name="Image" class="java.io.InputStream"/> 
    <queryString> 
     <![CDATA[]]> 
    </queryString> 
    <field name="clinic_name" class="java.lang.String"/> 
    <background> 
     <band splitType="Stretch"/> 
    </background> 
    <title> 
     <band height="64" splitType="Stretch"> 
      <textField pattern="MMMMM dd, yyyy"> 
       <reportElement x="450" y="-1" width="100" height="24" uuid="4d7ac980-0ba0-4efe-9081-1434c588323b"/> 
       <textElement> 
        <font size="11"/> 
       </textElement> 
       <textFieldExpression><![CDATA[new java.util.Date()]]></textFieldExpression> 
      </textField> 
      <staticText> 
       <reportElement x="410" y="0" width="50" height="22" uuid="5c4e36e4-9f79-471f-a5c5-33cae773d289"/> 
       <textElement> 
        <font size="10"/> 
       </textElement> 
       <text><![CDATA[DATE :]]></text> 
      </staticText> 
      <line> 
       <reportElement x="-20" y="50" width="595" height="1" uuid="0447b856-de6a-4e34-9fbb-3154c2cde3c5"/> 
      </line> 
      <textField> 
       <reportElement x="180" y="10" width="200" height="30" uuid="2e998ea5-70a4-46a0-a627-b655546dd800"/> 
       <textElement textAlignment="Center" verticalAlignment="Middle"> 
        <font size="16" isBold="true"/> 
       </textElement> 
       <textFieldExpression><![CDATA[$F{clinic_name}]]></textFieldExpression> 
      </textField> 
      <image > 
       <reportElement x="5" y="5" width="40" height="40" uuid="e8b39492-2f94-4e0c-a970-3aafa03a3dc9"/> 
       <imageExpression class="java.io.InputStream"><![CDATA[$P{Image}]]></imageExpression> 
      </image> 
     </band> 
    </title> 
    <pageHeader> 
     <band height="37" splitType="Stretch"> 
      <staticText> 
       <reportElement x="199" y="0" width="164" height="30" uuid="cb55a61e-a4a4-40f5-a1de-e82e038ed4a1"/> 
       <textElement textAlignment="Center" verticalAlignment="Middle"> 
        <font size="14" isBold="true"/> 
       </textElement> 
       <text><![CDATA[Doctor Appointment]]></text> 
      </staticText> 
     </band> 
    </pageHeader> 
    <columnHeader> 
     <band splitType="Stretch"/> 
    </columnHeader> 
    <detail> 
     <band height="83" splitType="Stretch"> 
      <componentElement> 
       <reportElement x="3" y="11" width="550" height="60" uuid="c70d91e4-ae4e-44d3-926c-6a6627a502a7"> 
        <property name="com.jaspersoft.studio.layout" value="com.jaspersoft.studio.editor.layout.VerticalRowLayout"/> 
        <property name="com.jaspersoft.studio.table.style.table_header" value="Table_TH"/> 
        <property name="com.jaspersoft.studio.table.style.column_header" value="Table_CH"/> 
        <property name="com.jaspersoft.studio.table.style.detail" value="Table_TD"/> 
       </reportElement> 
       <jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd"> 
        <datasetRun subDataset="dataset" uuid="75bd3e83-975c-4719-b1de-d6f6f66d0256"> 
         <datasetParameter name="REPORT_DATA_SOURCE"> 
          <datasetParameterExpression><![CDATA[$P{REPORT_DATA_SOURCE}]]></datasetParameterExpression> 
         </datasetParameter> 
        </datasetRun> 
        <jr:column width="140" uuid="1c8bb7c9-c387-4905-95c0-e4afe5421355"> 
         <property name="com.jaspersoft.studio.components.table.model.column.name" value="Column1"/> 
         <jr:columnHeader style="Table_CH" height="30" rowSpan="1"> 
          <staticText> 
           <reportElement x="0" y="0" width="140" height="30" uuid="17b976bd-3434-4ab2-be8c-8d26c89c6f9b"/> 
           <textElement textAlignment="Center" verticalAlignment="Middle"/> 
           <text><![CDATA[Patient ID]]></text> 
          </staticText> 
         </jr:columnHeader> 
         <jr:detailCell style="Table_TD" height="30"> 
          <textField> 
           <reportElement x="0" y="0" width="140" height="30" uuid="96797125-43b3-4736-8ceb-1eb465f312ba"/> 
           <textElement textAlignment="Center" verticalAlignment="Middle"/> 
           <textFieldExpression><![CDATA[$F{patient_pid}]]></textFieldExpression> 
          </textField> 
         </jr:detailCell> 
        </jr:column> 
        <jr:column width="170" uuid="cc0ebf66-9463-490a-815c-016fc08a7a9a"> 
         <property name="com.jaspersoft.studio.components.table.model.column.name" value="Column2"/> 
         <jr:columnHeader style="Table_CH" height="30" rowSpan="1"> 
          <staticText> 
           <reportElement x="0" y="0" width="170" height="30" uuid="491a3bcd-0c94-4c94-a3be-3ffd3dc77e2d"/> 
           <textElement textAlignment="Center" verticalAlignment="Middle"/> 
           <text><![CDATA[Patient Name]]></text> 
          </staticText> 
         </jr:columnHeader> 
         <jr:detailCell style="Table_TD" height="30"> 
          <textField> 
           <reportElement x="0" y="0" width="170" height="30" uuid="437e030e-9494-4cca-9c18-5acdd62b13c9"/> 
           <textElement textAlignment="Center" verticalAlignment="Middle"/> 
           <textFieldExpression><![CDATA[$F{name}]]></textFieldExpression> 
          </textField> 
         </jr:detailCell> 
        </jr:column> 
        <jr:column width="120" uuid="67912108-963e-4d15-88a1-ff5a586e1e9f"> 
         <property name="com.jaspersoft.studio.components.table.model.column.name" value="Column3"/> 
         <jr:columnHeader style="Table_CH" height="30" rowSpan="1"> 
          <staticText> 
           <reportElement x="0" y="0" width="120" height="30" uuid="4e55d83d-7b00-43fe-8c9c-3e683f4ae4c2"/> 
           <textElement textAlignment="Center" verticalAlignment="Middle"/> 
           <text><![CDATA[Appointment Time]]></text> 
          </staticText> 
         </jr:columnHeader> 
         <jr:detailCell style="Table_TD" height="30"> 
          <textField> 
           <reportElement x="0" y="0" width="120" height="30" uuid="aa74391c-3274-49e3-9582-236d973dcc0a"/> 
           <textElement textAlignment="Center" verticalAlignment="Middle"/> 
           <textFieldExpression><![CDATA[$F{time}]]></textFieldExpression> 
          </textField> 
         </jr:detailCell> 
        </jr:column> 
        <jr:column width="120" uuid="fd70d834-7bfe-49cf-8757-ffd91af0c4e2"> 
         <property name="com.jaspersoft.studio.components.table.model.column.name" value="Column4"/> 
         <jr:columnHeader style="Table_CH" height="30" rowSpan="1"> 
          <staticText> 
           <reportElement x="0" y="0" width="120" height="30" uuid="ead684cb-872c-424c-aa55-d4e5f4e3da57"/> 
           <textElement textAlignment="Center" verticalAlignment="Middle"/> 
           <text><![CDATA[Visit Date]]></text> 
          </staticText> 
         </jr:columnHeader> 
         <jr:detailCell style="Table_TD" height="30"> 
          <textField> 
           <reportElement x="0" y="0" width="120" height="30" uuid="b923d0bf-2df9-442a-94bc-011413c4e7f1"/> 
           <textElement textAlignment="Center" verticalAlignment="Middle"/> 
           <textFieldExpression><![CDATA[$F{dov}]]></textFieldExpression> 
          </textField> 
         </jr:detailCell> 
        </jr:column> 
       </jr:table> 
      </componentElement> 

     </band> 
    </detail> 
    <columnFooter> 
     <band splitType="Stretch"/> 
    </columnFooter> 
    <pageFooter> 
     <band height="73" splitType="Stretch"/> 

    </pageFooter> 
    <summary> 
     <band height="42" splitType="Stretch"/> 
    </summary> 
</jasperReport> 

这是我的Java控制器代码:

@RequestMapping(value = ClinicRestURIConstants.APPOINTMENTREPORT, method = RequestMethod.GET) 
    public byte[] appointmentReport(HttpServletRequest request, HttpServletResponse response,@PathVariable Integer clinic_id,@PathVariable Integer branch_id,@PathVariable Integer doctor_id) 
      throws JRException,IOException,DocumentException,SAXException { 

     List<Appointment> appointmentList; 
     appointmentList = appointmentreportservice.appReport(clinic_id,branch_id,doctor_id); 

     String reportLocation ="E:\\ClinicManagementNew\\Clinic\\src\\main\\webapp\\static\\jrxml\\appointmentReport.jrxml"; 

     JasperReport jasperReport = JasperCompileManager.compileReport(reportLocation); 

     File image = new File("E:\\ClinicManagementNew\\Clinic\\src\\main\\webapp\\static\\img\\logo.png"); 
     FileInputStream path = new FileInputStream(image); 

     HashMap map = new HashMap(); 
     map.put("Image",path); 

     if (jasperReport != null) { 

      JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map, new JRBeanCollectionDataSource(appointmentList)); 
      response.setHeader("Content-disposition","inline; filename = Report.pdf"); 
      OutputStream outputStream = response.getOutputStream(); 

      JRPdfExporter exporter = new JRPdfExporter(); 
      exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 
      exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, outputStream); 
      exporter.exportReport(); 
     } 
     return null; 
    } 

这个Java列表返回两行,但仅有一行显示在pdf.How显示该pdf第一行。

请,任何人,帮我解决这个问题。提前致谢。

回答

0

在贾斯珀工作室

  • 创建一个名为类型net.sf.jasperreports.engine.data.JRBeanCollectionDataSource的 “MyDS” 参数。 enter image description here
  • 然后在表格数据集中选择“不要使用任何连接或数据源”,并选择之前的“MyDS”作为REPORT_DATAS_OURCE。 enter image description here

而且在Java代码中添加列表 “appointmentList” 作为参数。

map.put("MyDS",appointmentList);