2011-05-18 142 views
2

主要关心的是我的查询在SQL中运行平稳,并且还在表数据集查询预览中运行。我的意思是在表数据集查询数据预览它显示从我的数据库表2记录。表工具显示一条较少的数据库记录

请查看屏幕截图enter image description here

也找到Jrxml文件。

<?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="report2" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" 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="table"> 
     <box> 
      <pen lineWidth="1.0" lineColor="#000000"/> 
     </box> 
    </style> 
    <style name="table_TH" mode="Opaque" backcolor="#F0F8FF"> 
     <box> 
      <pen lineWidth="0.5" lineColor="#000000"/> 
     </box> 
    </style> 
    <style name="table_CH" mode="Opaque" backcolor="#BFE1FF"> 
     <box> 
      <pen lineWidth="0.5" lineColor="#000000"/> 
     </box> 
    </style> 
    <style name="table_TD" mode="Opaque" backcolor="#FFFFFF"> 
     <box> 
      <pen lineWidth="0.5" lineColor="#000000"/> 
     </box> 
    </style> 
    <subDataset name="Table Dataset 1"> 
     <queryString> 
      <![CDATA[select lname, fname from test1 
order by fname]]> 
     </queryString> 
     <field name="lname" class="java.lang.String"/> 
     <field name="fname" class="java.lang.String"/> 
    </subDataset> 
    <subDataset name="New Dataset 1"> 
     <queryString language="SQL"> 
      <![CDATA[select lname, fname from test1 
order by fname]]> 
     </queryString> 
     <field name="lname" class="java.lang.String"/> 
     <field name="fname" class="java.lang.String"/> 
    </subDataset> 
    <queryString> 
     <![CDATA[select lname, fname from test1 
order by fname]]> 
    </queryString> 
    <field name="lname" class="java.lang.String"/> 
    <field name="fname" class="java.lang.String"/> 
    <background> 
     <band splitType="Stretch"/> 
    </background> 
    <title> 
     <band height="79" splitType="Stretch"/> 
    </title> 
    <pageHeader> 
     <band height="35" splitType="Stretch"/> 
    </pageHeader> 
    <columnHeader> 
     <band height="61" splitType="Stretch"> 
      <staticText> 
       <reportElement x="100" y="41" width="102" height="20"/> 
       <textElement/> 
       <text><![CDATA[lname]]></text> 
      </staticText> 
      <staticText> 
       <reportElement x="202" y="41" width="147" height="20"/> 
       <textElement/> 
       <text><![CDATA[fname]]></text> 
      </staticText> 
     </band> 
    </columnHeader> 
    <detail> 
     <band height="125" splitType="Stretch"> 
      <componentElement> 
       <reportElement key="table" style="table" x="100" y="0" width="360" height="86"/> 
       <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="Table Dataset 1"> 
         <dataSourceExpression><![CDATA[$P{REPORT_DATA_SOURCE}]]></dataSourceExpression> 
        </datasetRun> 
        <jr:column width="90"> 
         <jr:detailCell style="table_TD" height="20" rowSpan="1"> 
          <textField> 
           <reportElement x="0" y="0" width="90" height="20"/> 
           <textElement/> 
           <textFieldExpression class="java.lang.String"><![CDATA[$F{lname}]]></textFieldExpression> 
          </textField> 
         </jr:detailCell> 
        </jr:column> 
        <jr:column width="90"> 
         <jr:detailCell style="table_TD" height="20" rowSpan="1"> 
          <textField> 
           <reportElement x="0" y="0" width="90" height="20"/> 
           <textElement/> 
           <textFieldExpression class="java.lang.String"><![CDATA[$F{fname}]]></textFieldExpression> 
          </textField> 
         </jr:detailCell> 
        </jr:column> 
       </jr:table> 
      </componentElement> 
     </band> 
    </detail> 
    <columnFooter> 
     <band height="45" splitType="Stretch"/> 
    </columnFooter> 
    <pageFooter> 
     <band height="54" splitType="Stretch"/> 
    </pageFooter> 
    <summary> 
     <band height="42" splitType="Stretch"/> 
    </summary> 
</jasperReport> 

但在PDF报表输出只有1纪录是去年1 ​​

回答

0

也许你应该使用<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>代替<dataSourceExpression><![CDATA[$P{REPORT_DATA_SOURCE}]]></dataSourceExpression>

+0

你测试了吗? – Rob 2012-11-13 15:23:54

3

这是通过使用JRBeanCollectionDataSource时,发生在我身上。我知道一个事实,即所有的数据都在那里,但表格工具不断丢失第一行。 它看起来像主报告执行的集合或东西“的.next()”,则报表(又名表)不断与其他数据会

不管怎么说,我解决它传递$ P { REPORT_DATA_SOURCE} .cloneDataSource()作为表的dataSource表达式。然后它看起来像是从一个全新的数据源开始,并且可以迭代所有的项目,所以它工作。 我不知道你使用的是什么数据源,但你必须找出一种方法,在使用子报表之前将光标移动到数据的开头。

所以,总结起来,我做这在我的JRXML文件: <dataSourceExpression><![CDATA[$P{REPORT_DATA_SOURCE}.cloneDataSource()]]></dataSourceExpression>

但仅仅是因为我用的是JRBeanCollectionDataSource

+0

cloneDataSource适用于我:)。谢谢。 – user1972796 2013-02-14 07:27:35

+0

cloneDataSource在显示表格中的所有行方面适用于我,但不知何故,表格本身被绘制的次数与行数一样多! – user1972796 2013-02-14 07:34:41

1

完全同样的问题kawda和完全一样的行为比user1972796:多表而不是一个,但在一个表中正确的行数。

问题接缝出现在主报告不超过任何迭代,并通过$ P {} REPORT_DATA_SOURCE

的解释报表已经投入了详细乐队和引用的主数据源的情况下(和解决方案)接缝是这一个:http://community.jaspersoft.com/wiki/why-first-record-missing-my-subreport

+0

您可以直接在您的答案中添加该链接的相关文本/代码块吗? – rene 2014-01-01 19:39:21