2012-05-01 7 views
9

मेरे पास मेरे आईआरपोर्ट में एक टेबल है, जिसमें स्वाभाविक रूप से इसका डेटासेट है और मेरे पास एक चर है, जिसे तालिका के डेटासेट में परिभाषित और प्रारंभ किया गया है, एक मान लौटाता है (जो निश्चित रूप से तालिका के दायरे में होता है, इसके बाहर नहीं) जिसे मैं उपयोग करना चाहता हूं मेरी मुख्य रिपोर्ट में जो टेबल रखती है।iReport में तालिका के डेटा स्रोत से मुख्य रिपोर्ट में मूल्य कैसे वापस करें?

मैं यह या कोई विकल्प कैसे कर सकता हूं?

उत्तर

1

यह उचित लगता है ... लेकिन मुझे यकीन नहीं है कि यह संभव है या नहीं। यह एक उपयोगी वृद्धि अनुरोध हो सकता है।

एक विकल्प एक सब्रेपोर्ट का उपयोग करना है। सबरेपोर्ट में तालिका में संभव कुछ भी संभव है। सबरेपोर्ट्स में रिटर्न वैल्यू होते हैं, और इससे आपको अपनी आवश्यक जानकारी वापस ले जाने दिया जाएगा।

+1

उत्तर के लिए धन्यवाद mdahlman। जैसा कि आपने उद्धृत किया है 'iReport IDE विकास-टीम के लिए यह एक उपयोगी वृद्धि अनुरोध हो सकता है। और निश्चित रूप से, एक उप-रिपोर्ट मूल्यों को अपनी मुख्य रिपोर्ट में वापस कर सकती है; जो भी एक तरीका है। लेकिन मैं कामना करता हूं कि तालिका से मूल्यों को मुख्य रिपोर्ट में वापस करने का कोई तरीका हो सकता है? कृपया, अगर किसी के पास पूछे जाने वाले सामानों पर कोई और विचार है? – yayayokoho3

0

आप किसी तालिका के डेटासेट से मुख्य रिपोर्ट में एक चर वापस नहीं कर पाएंगे, जबकि इसके विपरीत संभव है। Mdahlman द्वारा एक वैकल्पिक सुझाव दिया जा सकता है। इसके बजाय उप-रिपोर्ट का उपयोग करें।

10

यदि आप तालिका डेटासेट से कुछ डेटा प्राप्त करना चाहते हैं, तो आप वास्तव में ऐसा कर सकते हैं। मुझे यह हासिल करने के लिए एक गंदे चाल मिली।

  1. बनाएं मुख्य रिपोर्ट में प्रकार java.util.Map का VARIABLE variableMapName और यह प्रकार java.util.Map की अभिव्यक्ति new java.util.HashMap()

  2. बनाएं पैरामीटर parameterMapName साथ तालिका में डेटासेट भीतर का उपयोग कर मुख्य रिपोर्ट से चर के साथ

  3. लिंक डाटासेट पैरामीटर प्रारंभ "तालिका डेटासेट संपादित करें -> पैरामीटर्स -> जोड़ें -> $ पी {पैरामीटर मैपनाम} = $ वी {variableMapName}" (तालिका में दायाँ क्लिक करें मुख्य रिपोर्ट टेम्पलेट)

  4. तालिका डेटासोर्स में java.lang.String प्रकार putResult बनायें। इस चर इच्छा के लिए अभिव्यक्ति की तरह दिखता है इस

$P{parameterMapName}.put("KEY", $F{fieldYouWantReturn}) + $P{parameterMapName}.put("KEY2", $F{otherFieldYouWantReturn})

अब आप $V{variableMapName}.get("KEY")

का उपयोग कर यह वास्तव में एक गंदा हैक है द्वारा मुख्य रिपोर्ट में तालिका डेटा स्रोत से डेटा का उपयोग करने की क्षमता है, लेकिन कभी-कभी आपके पास कुछ करने का कोई और तरीका नहीं है। धन्यवाद!

+2

इस समाधान का प्रयास किया और काम नहीं किया। टेबल निर्माण –

+1

से पहले किए गए प्रिंट विधि से तालिका उत्पन्न होने के बाद putResult डेटा भेज देगा, यह अच्छी तरह से काम करता है। विचार देने के लिए धन्यवाद। – swemon

0

अब आप तालिका के डेटासेट से मुख्य रिपोर्ट में मूल्य वापस कर सकते हैं।

jasper studio 6.0.1,I पर तालिका के डेटासेट नामक एक संपत्ति मिली, इसके पास मूल्य वापस सेट हैं। लेकिन सेट में जाओ, मुझे लगता है कि "रिटर्न वैल्यू कॉन्फ़िगर करें" फ़ॉर्म गलत है, जेस्पर स्टूडियो "चर से परिवर्तनीय" के साथ गलत हो जाता है, स्ट्यूओ दो चर को उलट देता है। "वेरिएबल" तालिका का स्थानीय चर है, "टू वैल्यू" मुख्य रिपोर्ट वैरिएबल है। आपको स्रोत में मैनुअल्यूडिट करना होगा, और "incrementerFactoryClass=""".

मैं परीक्षण करता हूं, यह ठीक है। वापसी मूल्य मुख्य रिपोर्ट पर मुद्रित होता है।

अगला मेरे jrxml का एक टुकड़ा है।

<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"> 
 
\t \t \t \t \t <datasetRun subDataset="workscore" uuid="307278bc-db98-4de2-9b50-dea5dc69b496"> 
 
\t \t \t \t \t \t <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression> 
 
\t \t \t \t \t \t <returnValue fromVariable="returnscore" toVariable="workscore"/> 
 
\t \t \t \t \t </datasetRun>

0

मानचित्र के लिए टाइप करें यह मेज सेट मुख्य रिपोर्ट के किसी भी प्रकार से लौटने के मूल्य आराम के लिए संभव है संभव नहीं है।

हालांकि कोई उप-रिपोर्ट का उपयोग कर सकता है क्योंकि मूल्यों को वापस करने के विकल्प हैं। यदि संभव हो तो तालिका के स्थान पर उप-रिपोर्ट का उपयोग करने का प्रयास करें।

4

सही तरीका (Jasper रिपोर्ट v.5/v.6) एक घटक subDataset का उपयोग करने से मान वापस जाने के लिए, चर का उपयोग दोनों मुख्य रिपोर्ट में और subDataset पर चर निर्धारित करने के लिए है।

उदाहरण (वापसी मुख्य रिपोर्ट के लिए तालिका के रिकॉर्ड गिनती)

  1. मुख्य रिपोर्ट में एक चर

    <variable name="TABLE_COUNT" class="java.lang.Integer" resetType="None"> 
        <initialValueExpression><![CDATA[0]]></initialValueExpression> 
    </variable> 
    
  2. परिभाषित subdataset में एक चर (निर्माण चर में परिभाषित उदाहरण में $V{REPORT_COUNT} का उपयोग किया जाएगा)।

  3. datasetRun में संकेत मिलता है जो subDataset चर (fromVariable) जो मुख्य रिपोर्ट चर (toVariable)

    <datasetRun subDataset="tableData" uuid="fa5df3de-f4c5-4bfc-8274-bd064e8b81e6"> 
        <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression> 
        <returnValue fromVariable="REPORT_COUNT" toVariable="TABLE_COUNT"/> 
    </datasetRun> 
    

TABLE_COUNT चर फिर मुख्य रिपोर्ट में इस्तेमाल किया जा सकता करने के लिए वापस किया जाना चाहिए, बस याद सही evaluationTime

मूल्य प्रदर्शित करने के लिए (मुख्य रिपोर्ट में)

<textField evaluationTime="Report"> 
    <reportElement x="0" y="0" width="100" height="20" uuid="d67ddb3e-b0cc-4fae-9e05-f40eb0f7e059"/> 
    <textFieldExpression><![CDATA[$V{TABLE_COUNT}]]></textFieldExpression> 
</textField> 
+2

बहुत अच्छा जवाब :) –

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