2010-08-10 14 views
8

मैं आईआरपोर्ट 3.5.0 का उपयोग कर रहा हूं और मेरा जावा जीडब्ल्यूटी एप्लिकेशन एक रिपोर्ट बनाने के लिए संकलित .jasper फ़ाइल का उपयोग करता है। मैं जावा एप्लिकेशन में डेटास्रोत बना रहा हूं और रिपोर्ट भरने के लिए fillReport() विधि का उपयोग कर रहा हूं। यह ठीक काम करता है, यह उन फ़ील्ड को भरता है जिन्हें मैंने .jrxml और जावा एप्लिकेशन में परिभाषित किया है।शून्य 'कुंजी' तर्क त्रुटि

हालांकि, मैं उन फ़ील्ड का उपयोग पाई चार्ट बनाने के लिए करना चाहता हूं, और यह काम नहीं करता है। मैं चार्ट के लिए अपने काम करने वाले फ़ील्ड को कुंजी और मूल्य अभिव्यक्ति के रूप में देता हूं, लेकिन जब मैं एप्लिकेशन चलाता हूं, तो यह त्रुटि java.lang.IllegalArgumentException: Null 'key' argument. देता है, मैं इसे हल नहीं कर सकता, भले ही मैं $V{PAGE_COUNT} को मुख्य अभिव्यक्ति के रूप में देता हूं, यह हमेशा एक ही 'शून्य कुंजी' देता है 'त्रुटि। मैं फँस गया हूँ। किसी भी मदद के लिए धन्यवाद।

+0

आपकी रिपोर्ट का कौन सा हिस्सा आपका चार्ट है? क्षेत्र शायद दायरे से बाहर है। – Gordon

+0

मैंने इसे संक्षेप में रखा, लेकिन जब मैंने विस्तार से कोशिश की तो यह वही त्रुटि दे दी। – Halo

+0

क्या आप विस्तार बैंड में फ़ील्ड प्रिंट कर सकते हैं? – Gordon

उत्तर

6

मुझे एक ही तरह का मुद्दा था। मूल रूप से जैस्पर रिपोर्ट में पाई चार्ट शून्य ऑब्जेक्ट से नफरत करता है। त्रुटि संदेश बहुत मदद नहीं करता है ...

चूंकि आप पहले से ही कुंजी अभिव्यक्ति की जांच कर चुके हैं, तो हर दूसरे तत्वों की जांच करें। मेरी त्रुटि लेबल अभिव्यक्ति में थी!

यदि आप अपने आवेदन को आईडीई में चला सकते हैं, तो "IllegalArgumentException" पर ब्रेकपॉइंट डालें। यह आपको रूट कारण खोजने में मदद करेगा। यह भी सुनिश्चित करें कि जब भी आप कोई परिवर्तन करते हैं तो रिपोर्ट jrxml को पुन: संकलित करती है।

एक और दृष्टिकोण एक उदाहरण के साथ शुरू करना होगा और इसे कम से कम अपनी आवश्यकता के अनुसार संशोधित करना होगा। आप जल्द ही अपराधी को मिलेगा!

वैसे, इसने सर्वर पर चलने के बाद से जीडब्ल्यूटी के साथ कुछ लेना देना नहीं है।

3

मैं iReport 3.0 के साथ समस्या का एक ही तरह का था मैं कुंजी अभिव्यक्ति और मूल्य अभिव्यक्ति पर शून्य मान के साथ काम करने सशर्त प्रयोग किया है:

($F{FIELDEXPRESSION}!=null?$F{FIELDEXPRESSION}:"") 

($F{FIELDVALUE}!=null?(new BigDecimal($F{FIELDVALUE})):(new BigDecimal("0"))) 
0

मैं एक ही समस्या थी। इसलिए अगर लूप को यह जांचने के लिए इस्तेमाल किया जाता है कि कॉलम में शून्य मूल्य है या नहीं, तो मैं ट्रैवर्सिंग कर रहा हूं।

if(result.get()==null) // result is where is stored my resultset output 
{ 
    dataset.setValue(count.get(j),"N/A","No Data Available");} // count refers to the number of null entries 
     else dataset.setValue(count.get(j),results.get(j),results.get(j)); 
    } 
0

चूंकि मैं टिप्पणी करने में असमर्थ हूं, यह एक पूर्ण समाधान नहीं हो सकता है। मैंने फ़ील्ड के डेटा प्रकारों की जांच करके मेरी समस्या का समाधान किया।

कहाँ मैं पहले था:

<field name="date" class="java.sql.Date"/> 

मैं करने के लिए बदल:

<field name="date" class="java.lang.String"/> 

क्योंकि मेरे क्षेत्र मेरे पूर्व दे देंगे: "जुला 15" (FYI करें जो मैं अपने प्रश्न में इसे बनाया) प्रारूप टाइप दिनांक जो java.sql.Date प्रकार नहीं हो सकता है।

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