2012-12-12 5 views
14

में मुख्य रिपोर्ट से सबरेपोर्ट में पैरामीटर पास करना मेरे पास जैस्पर रिपोर्ट है जहां मैं रिपोर्ट को मुख्य रिपोर्ट से एक उप रिपोर्ट में पास कर रहा हूं। यह ठीक काम करता है। मेरे पास एक और है जहां मैं एक उप रिपोर्ट में एक ही पैरामीटर पास कर रहा हूं जिसमें एकाधिक सबप्रोर्ट्स हैं। जब मैं इसे में पूर्वावलोकन करता हूं तो Ireports इसके लिए सभी पृष्ठ रिक्त दिखाई देते हैं जिसका अर्थ है कि उप-उप रिपोर्ट कहलाती जा रही हैं लेकिन रिपोर्ट दिनांक पारित नहीं किया जा रहा है क्योंकि सभी उप-उप रिपोर्ट SQL रिपोर्ट रिपोर्ट पर सशर्त हैं। रिपोर्ट उप क्षेत्र को उप उप रिपोर्ट में कैसे प्राप्त किया जा सकता है? जब मैं उप-रिपोर्ट का पूर्वावलोकन करता हूं और रिपोर्ट में टाइप करता हूं तो सभी रिपोर्ट तिथियों की तारीख सभी चार पृष्ठों को सही डेटा के साथ पॉप्युलेट किया जाता है।जसपर

उत्तर

13

मेरा अनुमान है कि वे एक डिफ़ॉल्ट मान का उपयोग कर रहे हैं।

मुख्य रिपोर्ट में पैरामीटर के नाम मान लिया जाये कि TEST_DATE है और उप रिपोर्ट में नाम जोड़े जाने तो TEST_DATE2 है खोलने के बीच में निम्नलिखित और XML में subreport तत्वों को बंद:

<subreportParameter name="TEST_DATE2"> 
    <subreportParameterExpression><![CDATA[$P{TEST_DATE}]]></subreportParameterExpression> 
</subreportParameter> 

पूर्णता के लिए, यहां एक उदाहरण है जिसमें एक मुख्य रिपोर्ट और एक उप-रिपोर्ट है, जिसे SUBREPORT_DIR के मान को केवल उस स्थान पर बदलकर काम करना चाहिए जहां आपने उन्हें रखा है।

report1.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="report1" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="7e2bc622-d768-437e-8c33-fc777bc06f8c"> 
    <property name="ireport.zoom" value="1.0"/> 
    <property name="ireport.x" value="0"/> 
    <property name="ireport.y" value="0"/> 
    <parameter name="TEST_DATE" class="java.util.Date"/> 
    <parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false"> 
     <defaultValueExpression><![CDATA["C:\\Reports\\"]]></defaultValueExpression> 
    </parameter> 
    <pageHeader> 
     <band height="83" splitType="Stretch"> 
      <textField> 
       <reportElement uuid="4a2cf434-4473-48db-a89f-17a19d25cc4c" x="0" y="0" width="100" height="20"/> 
       <textElement/> 
       <textFieldExpression><![CDATA[$P{TEST_DATE}]]></textFieldExpression> 
      </textField> 
      <subreport> 
       <reportElement uuid="54c02e96-6d47-49db-9b9c-58e1dd153242" x="0" y="30" width="200" height="35"/> 
       <subreportParameter name="TEST_DATE2"> 
        <subreportParameterExpression><![CDATA[$P{TEST_DATE}]]></subreportParameterExpression> 
       </subreportParameter> 
       <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression> 
       <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "report1_subreport1.jasper"]]></subreportExpression> 
      </subreport> 
     </band> 
    </pageHeader> 
</jasperReport> 

report1_subreport1.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="report1_subreport1" language="groovy" pageWidth="200" pageHeight="35" whenNoDataType="AllSectionsNoDetail" columnWidth="200" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="3cedac90-63cb-43cb-9d0f-e401543e65dd"> 
    <property name="ireport.zoom" value="1.0"/> 
    <property name="ireport.x" value="0"/> 
    <property name="ireport.y" value="0"/> 
    <parameter name="TEST_DATE2" class="java.util.Date" isForPrompting="false"/> 
    <pageHeader> 
     <band height="35" splitType="Stretch"> 
      <textField> 
       <reportElement uuid="ca7f3da6-79f0-4d95-92db-6c5dbf777df9" x="0" y="15" width="100" height="20"/> 
       <textElement/> 
       <textFieldExpression><![CDATA[$P{TEST_DATE2}]]></textFieldExpression> 
      </textField> 
     </band> 
    </pageHeader> 
</jasperReport> 
23

subreports में पैरामीटर प्रदान करने के लिए नीचे दिए गए चरणों का पालन करें:

  1. मुख्य रिपोर्ट पैरामीटर बनाएं, इस तरह केके रूप में।
  2. ओपन उप रिपोर्ट और उसी नाम और उसी प्रकार के साथ पैरामीटर बनाएं।
  3. उप रिपोर्ट पर राइट क्लिक करें, चयन गुण
  4. मुख्य रिपोर्ट पर वापस जाएँ
  5. पैरामीटर चुनें
  6. पैरामीटर नाम एक ही पैरामीटर नाम

पैरामीटर के साथ उप रिपोर्ट के मुख्य रिपोर्ट से पैरामीटर जोड़ें मुख्य रिपोर्ट से सबरेपोर्ट में पारित किया गया है।

11

आप तो रिपोर्ट बनाने के लिए खोलने के iReport में मुख्य रिपोर्ट और Subreport का चयन करें और रिपोर्ट के property अनुभाग पर जाएँ iReport का उपयोग कर रहे हैं, तो Parameters संपत्ति पर क्लिक करें और Copy from master टैब पर क्लिक करें। वहां से आप उन पैरामीटर का चयन कर सकते हैं जिन्हें आप उप रिपोर्ट में पास करना चाहते हैं।

+0

वाह! यह वास्तव में काम किया! बहुत बहुत धन्यवाद – Gray

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^