2016-04-06 9 views
0

姓と名義と請求書IDの値を取得しているレポートを作成しましたが、サブレポートを追加すると他の値は見出しを印刷しているだけです。私の問題を解決し、私に提案してください。サブレポートの詳細をGeneartingで発行しますか?

以下の画像が印刷されています。

メインレポートコード:

<?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="Usage Rport" pageWidth="595" pageHeight="842" columnWidth="595" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" > 
<property name="com.jasperassistant.designer.GridHeight" value="12"/> 
<property name="com.jasperassistant.designer.GridWidth" value="12"/> 
<property name="com.jasperassistant.designer.SnapToGrid" value="false"/> 
<property name="com.jasperassistant.designer.Grid" value="false"/> 
<property name="ireport.zoom" value="1.0"/> 
<property name="ireport.x" value="0"/> 
<property name="ireport.y" value="0"/> 
<import value="org.joda.time.DateTime"/> 
<parameter name="invoice_id" class="java.lang.Integer"/> 
<parameter name="entity_id" class="java.lang.Integer"/> 
<parameter name="entityPhoneCountryCode" class="java.lang.String"/> 
<parameter name="entityPhoneAreaCode" class="java.lang.String"/> 
<parameter name="entityPhoneContry" class="java.lang.String"/> 
<parameter name="invoiceDate" class="java.lang.String"/> 
<parameter name="invoiceDueDate" class="java.lang.String"/> 
<parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false"> 
    <defaultValueExpression><![CDATA["D:\\Ravi Workspace\\Openbrm\\open-brm-openbrm-2.0\\descriptors\\reports\\usage\\"]]></defaultValueExpression> 
</parameter> 
<queryString> 
    <![CDATA[select co.first_name,co.last_name,b.id as user_id from swiss_cdr_event e join order_process o join base_user b on b.id=e.user_id and e.order_id = o.order_id join contact co on e.user_id=co.user_id where o.invoice_id=$P{invoice_id} and b.entity_id=$P{entity_id} order by e.call_start_date asc;]]> 
</queryString> 
<field name="first_name" class="java.lang.String"/> 
<field name="last_name" class="java.lang.String"/> 
<field name="user_id" class="java.lang.Integer"/> 
<title> 
    <band height="20"/> 
</title> 
<pageHeader> 
    <band height="111"> 
     <textField> 
      <reportElement x="5" y="13" width="200" height="15" /> 
      <textElement> 
       <font size="10" isBold="true"/> 
      </textElement> 
      <textFieldExpression><![CDATA[$F{first_name}+" " +$F{last_name}]]></textFieldExpression> 
     </textField> 
     <staticText> 
      <reportElement x="185" y="13" width="140" height="15" /> 
      <textElement textAlignment="Left"> 
       <font isBold="true"/> 
      </textElement> 
      <text><![CDATA[Rechnungs-Nr. ]]></text> 
     </staticText> 
     <staticText> 
      <reportElement x="368" y="13" width="100" height="15" /> 
      <textElement> 
       <font isBold="true"/> 
      </textElement> 
      <text><![CDATA[Jahr/Monat]]></text> 
     </staticText> 
     <staticText> 
      <reportElement x="379" y="28" width="52" height="15" /> 
      <textElement> 
       <font isBold="true"/> 
      </textElement> 
      <text><![CDATA[datiert]]></text> 
     </staticText> 
     <textField> 
      <reportElement x="252" y="13" width="100" height="15" /> 
      <textElement> 
       <font isBold="true"/> 
      </textElement> 
      <textFieldExpression class="java.lang.Integer"><![CDATA[$P{invoice_id}]]></textFieldExpression> 
     </textField> 
     <subreport> 
      <reportElement x="434" y="28" width="119" height="18" /> 
      <subreportParameter name="invoiceId"> 
       <subreportParameterExpression><![CDATA[$P{invoice_id}]]></subreportParameterExpression> 
      </subreportParameter> 
      <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression> 
      <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "run-details.jasper"]]></subreportExpression> 
     </subreport> 
     <subreport> 
      <reportElement x="435" y="9" width="161" height="15" /> 
      <subreportParameter name="invoiceId"> 
       <subreportParameterExpression><![CDATA[$P{invoice_id}]]></subreportParameterExpression> 
      </subreportParameter> 
      <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression> 
      <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "invoice-period-31.jasper"]]></subreportExpression> 
     </subreport> 
     <staticText> 
      <reportElement x="185" y="28" width="100" height="15" /> 
      <textElement> 
       <font isBold="true"/> 
      </textElement> 
      <text><![CDATA[Gesprächsnachweis]]></text> 
     </staticText> 
     <subreport> 
      <reportElement x="6" y="57" width="590" height="43" /> 
      <subreportParameter name="invoiceId"> 
       <subreportParameterExpression><![CDATA[$P{invoice_id}]]></subreportParameterExpression> 
      </subreportParameter> 
      <subreportParameter name="entityId"> 
       <subreportParameterExpression><![CDATA[$P{entity_id}]]></subreportParameterExpression> 
      </subreportParameter> 
      <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression> 
      <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "usage-31-de-details.jasper"]]></subreportExpression> 
     </subreport> 
    </band> 
</pageHeader> 
<pageFooter> 
    <band height="33"> 
     <textField> 
      <reportElement x="195" y="15" width="80" height="15" /> 
      <textElement textAlignment="Right"/> 
      <textFieldExpression><![CDATA["Seite "+$V{PAGE_NUMBER}+" von "]]></textFieldExpression> 
     </textField> 
     <textField evaluationTime="Report"> 
      <reportElement x="275" y="15" width="40" height="15" /> 
      <textFieldExpression><![CDATA[" " + $V{PAGE_NUMBER}]]></textFieldExpression> 
     </textField> 
    </band> 
</pageFooter> 
<lastPageFooter> 
    <band height="33"> 
     <textField> 
      <reportElement x="205" y="18" width="80" height="15" /> 
      <textElement textAlignment="Right"/> 
      <textFieldExpression><![CDATA["Seite "+$V{PAGE_NUMBER}+" von "]]></textFieldExpression> 
     </textField> 
     <textField evaluationTime="Report"> 
      <reportElement x="285" y="18" width="40" height="15" /> 
      <textFieldExpression><![CDATA[" " + $V{PAGE_NUMBER}]]></textFieldExpression> 
     </textField> 
    </band> 
</lastPageFooter> 
<summary> 
    <band height="20"/> 
</summary> 

サブレポートコード:あなたのJRに探しとして

<?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="Usage Rport" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="595" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" > 
<property name="com.jasperassistant.designer.GridHeight" value="12"/> 
<property name="com.jasperassistant.designer.GridWidth" value="12"/> 
<property name="com.jasperassistant.designer.SnapToGrid" value="false"/> 
<property name="com.jasperassistant.designer.Grid" value="false"/> 
<import value="org.joda.time.DateTime"/> 
<parameter name="invoice_id" class="java.lang.Integer"/> 
<parameter name="entity_id" class="java.lang.Integer"/> 
<parameter name="entityCity" class="java.lang.String"/> 
<parameter name="customerCity" class="java.lang.String"/> 
<parameter name="entityPhoneCountryCode" class="java.lang.String"/> 
<parameter name="entityPhoneAreaCode" class="java.lang.String"/> 
<parameter name="entityPhoneContry" class="java.lang.String"/> 
<parameter name="invoiceDate" class="java.lang.String"/> 
<parameter name="invoiceDueDate" class="java.lang.String"/> 
<parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false"> 
    <defaultValueExpression><![CDATA["D:\\Ravi Workspace\\Openbrm\\open-brm-openbrm-2.0\\descriptors\\reports\\usage\\"]]></defaultValueExpression> 
</parameter> 
<queryString> 
    <![CDATA[select e.calling_number,e.duration,e.call_start_date,e.cost,e.destination_number,e.destination_descr,co.first_name,co.last_name,b.id as user_id from swiss_cdr_event e join order_process o join base_user b on b.id=e.user_id and e.order_id = o.order_id join contact co on e.user_id=co.user_id where o.invoice_id=$P{invoice_id} and b.entity_id=$P{entity_id} order by e.call_start_date asc;]]> 
</queryString> 
<field name="calling_number" class="java.lang.String"/> 
<field name="destination_number" class="java.lang.String"/> 
<field name="duration" class="java.lang.Integer"/> 
<field name="cost" class="java.math.BigDecimal"/> 
<field name="call_start_date" class="java.sql.Timestamp"/> 
<field name="destination_descr" class="java.lang.String"/> 
<field name="first_name" class="java.lang.String"/> 
<field name="last_name" class="java.lang.String"/> 
<field name="user_id" class="java.lang.Integer"/> 
<variable name="total" class="java.math.BigDecimal" calculation="Sum"> 
    <variableExpression><![CDATA[$F{cost}]]></variableExpression> 
</variable> 
<title> 
    <band height="111"/> 
</title> 
<columnHeader> 
    <band height="33"> 
     <staticText> 
      <reportElement x="12" y="10" width="62" height="15" /> 
      <textElement> 
       <font size="10" isBold="true"/> 
      </textElement> 
      <text><![CDATA[Datum/Uhrzeit]]></text> 
     </staticText> 
     <staticText> 
      <reportElement x="240" y="10" width="85" height="15" /> 
      <textElement> 
       <font size="10" isBold="true"/> 
      </textElement> 
      <text><![CDATA[Destination]]></text> 
     </staticText> 
     <staticText> 
      <reportElement x="450" y="10" width="42" height="15" /> 
      <textElement textAlignment="Left" verticalAlignment="Middle"> 
       <font size="10" isBold="true"/> 
      </textElement> 
      <text><![CDATA[Menge]]></text> 
     </staticText> 
     <staticText> 
      <reportElement x="90" y="10" width="62" height="15" /> 
      <text><![CDATA[Anruf von]]></text> 
     </staticText> 
     <staticText> 
      <reportElement x="163" y="10" width="49" height="14" /> 
      <text><![CDATA[Service]]></text> 
     </staticText> 
     <staticText> 
      <reportElement x="334" y="10" width="100" height="15" /> 
      <text><![CDATA[Rufnummer]]></text> 
     </staticText> 
     <staticText> 
      <reportElement x="514" y="10" width="47" height="15" /> 
      <text><![CDATA[Betrag]]></text> 
     </staticText> 
    </band> 
</columnHeader> 
<detail> 
    <band height="20"> 
     <textField> 
      <reportElement x="360" y="3" width="193" height="16" /> 
      <textElement textAlignment="Right" verticalAlignment="Middle"> 
       <font size="9"/> 
      </textElement> 
      <textFieldExpression><![CDATA[new DecimalFormat("#,##0.00").format($F{cost})]]></textFieldExpression> 
     </textField> 
     <textField> 
      <reportElement x="12" y="3" width="96" height="16" /> 
      <textElement> 
       <font size="9"/> 
      </textElement> 
      <textFieldExpression><![CDATA[new SimpleDateFormat("dd-MM-yyyy").format($F{call_start_date})]]></textFieldExpression> 
     </textField> 
     <textField> 
      <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="242" y="3" width="121" height="16" /> 
      <textElement> 
       <font size="9"/> 
      </textElement> 
      <textFieldExpression><![CDATA[$F{destination_descr}]]></textFieldExpression> 
     </textField> 
     <textField> 
      <reportElement x="60" y="3" width="96" height="16" /> 
      <textElement> 
       <font size="9"/> 
      </textElement> 
      <textFieldExpression><![CDATA[new SimpleDateFormat("HH:mm:ss").format($F{call_start_date})]]></textFieldExpression> 
     </textField> 
     <textField> 
      <reportElement x="450" y="4" width="100" height="16" /> 
      <textElement> 
       <font size="9"/> 
      </textElement> 
      <textFieldExpression class="java.lang.Integer"><![CDATA[$F{duration}]]></textFieldExpression> 
     </textField> 
     <subreport> 
      <reportElement x="302" y="0" width="129" height="20" /> 
      <subreportParameter name="invoiceId"> 
       <subreportParameterExpression><![CDATA[$P{invoice_id}]]></subreportParameterExpression> 
      </subreportParameter> 
      <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression> 
      <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "entity-details-31.jasper"]]></subreportExpression> 
     </subreport> 
     <textField> 
      <reportElement x="98" y="0" width="90" height="15" /> 
      <textFieldExpression><![CDATA[$P{entityCity}]]></textFieldExpression> 
     </textField> 
    </band> 
</detail> 
<summary> 
    <band height="80"> 
     <staticText> 
      <reportElement x="242" y="6" width="92" height="15" /> 
      <text><![CDATA[Total]]></text> 
     </staticText> 
     <textField> 
      <reportElement x="431" y="6" width="100" height="15" /> 
      <textElement textAlignment="Right"> 
       <font size="9" isBold="true"/> 
      </textElement> 
      <textFieldExpression><![CDATA[$V{total} == null ? "0.00" : new DecimalFormat ("#,##0.00").format($V{total})]]></textFieldExpression> 
     </textField> 
    </band> 
</summary> 

enter image description here

+0

「私の問題を解決してください」 - どういう意味ですか? –

+0

私は問題 –

+1

とb.entity_id = $ P {entity_id}を解決する方法を教えてください。デフォルトの表現はなく、このパラメータを渡したり、b.entity_id = nullでフィルタリングしたりしています。達成しようとしている? –

答えて

0

xml、またあなたのsub_reportに$ P {entity_id}を渡さなければなりません。現在、請求書ID $ P {invoice_id}のみを渡しています。あなたのサブレポートSQLが2つのパラメータ$ P {invoice_id}と$ P {entity_id}を処理しているので。渡していない場合は、デフォルト値またはnull(デフォルト値がない場合)を選択します。

サブレポートには、必要なバンドだけが含まれ、テキストフィールドが正しく配置されている必要があります。それ以外の場合は、Excelでダウンロードしようとすると問題が発生します。

サブレポートをクリックしてプロパティを選択すると、最初にイメージが表示されます。

enter image description here

今のプロパティのサブレポート]タブでパラメータをクリックします。 2番目の画像をご覧ください。

enter image description here

メインjrxmlで3つのサブレポートがあります。

1)ランdetails.jrxmlメインjrxmlで サブレポートパラメータマップ invoiceId:$ P {invoice_id}

2)請求書期間-31.jrxmlをメインjrxml で

サブレポートパラメータマップを$のP {で:invoiceId:メインjrxml invoiceIdで$ P {invoice_id}

3)使用-31ドdetails.jrxml

サブレポートパラメータマップvoice_id}

3つのサブレポートで見ることができます。パラメータ名は、invoice_idです。したがって、 に変更する必要があります。メインjrxmlのサブレポートパラメータマップ invoice_id:$ P {invoice_id}

また、3つのサブレポートがentity_idパラメータを処理しています。あなたはその価値を渡さなければなりません。メインjrxml invoice_idで 今 サブレポートパラメータマップします。$ P {} invoice_id ENTITY_IDます。$ P {} ENTITY_ID

私は別のサブレポートで使用されているもののパラメータ名を確認していません。

+0

サブレポートでもentity_idを使用しています。 –

+0

というクエリが表示されている場合は、メインのjrxmlのエンティティIDをサブレポート –

+0

に渡します。サブレポートにentity_idが必要です。 –

関連する問題