2012-11-23 13 views
6

के लिए खाली रिपोर्ट मैं समस्याओं का सामना कर रहा हूँ रिपोर्ट सारांश पैनल में टेबल घटक बनाने के दौरान डेटा स्रोत के रूप मेंXML का उपयोग पता चलता है, अंतिम रिपोर्ट एक मात्र रिक्त पंक्ति को दर्शाता है।तालिका घटक XML डेटा स्रोत

नीचे मेरी एक्सएमएल डेटा ProjectXML.xml

<testsuites> 
    <testsuite name="testsuite1"/> 
    <testsuite name="testsuite2"/> 
    <testsuite name="testsuite3"/> 
</testsuites> 

नीचे नामित स्रोत मेरी .jrxml फ़ाइल का नाम है है report12.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="report12" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="bb749013-793e-4a97-a43a-08d89a11ce20"> 
    <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="#3300CC"/> 
     </box> 
    </style> 
    <style name="table_TH" mode="Opaque" backcolor="#F0F8FF"> 
     <box> 
      <pen lineWidth="0.5" lineColor="#3300CC"/> 
     </box> 
    </style> 
    <style name="table_CH" mode="Opaque" backcolor="#BFE1FF"> 
     <box> 
      <pen lineWidth="0.5" lineColor="#3300CC"/> 
     </box> 
    </style> 
    <style name="table_TD" mode="Opaque" backcolor="#FFFFFF"> 
     <box> 
      <pen lineWidth="0.5" lineColor="#3300CC"/> 
     </box> 
     <conditionalStyle> 
      <conditionExpression><![CDATA[new Boolean($V{REPORT_COUNT}.intValue()%2==0)]]></conditionExpression> 
      <style backcolor="#EFF7FF"/> 
     </conditionalStyle> 
    </style> 
    <subDataset name="tableDataSet" uuid="44f57638-9650-43f7-9a45-b12c6144c112"> 
     <queryString language="xPath"> 
      <![CDATA[/testsuites/testsuite]]> 
     </queryString> 
     <field name="name" class="java.lang.String"> 
      <fieldDescription><![CDATA[@name]]></fieldDescription> 
     </field> 
    </subDataset> 
    <queryString language="xPath"> 
     <![CDATA[/testsuites/testsuite]]> 
    </queryString> 
    <field name="name" class="java.lang.String"> 
     <fieldDescription><![CDATA[@name]]></fieldDescription> 
    </field> 
    <summary> 
     <band height="238" splitType="Stretch"> 
      <componentElement> 
       <reportElement uuid="59f049a5-d77e-480c-a1ee-46987630290d" key="table" style="table" x="0" y="0" width="555" height="238"/> 
       <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="tableDataSet" uuid="6d3ecced-ba97-49c1-aec9-7f5903748fa5"> 
         <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression> 
        </datasetRun> 
        <jr:column uuid="ed4b1e17-dcec-4ed6-9f1f-efb543f240b7" width="90"> 
         <jr:columnHeader style="table_CH" height="30"> 
          <staticText> 
           <reportElement uuid="e2772a76-f9da-4438-8aa3-78cee739bdaf" x="0" y="0" width="90" height="30"/> 
           <textElement/> 
           <text><![CDATA[name]]></text> 
          </staticText> 
         </jr:columnHeader> 
         <jr:detailCell style="table_TD" height="20"> 
          <textField> 
           <reportElement uuid="d496fc00-bab8-4b85-bb8d-c75c1cfc3dc4" x="0" y="0" width="90" height="20"/> 
           <textElement/> 
           <textFieldExpression><![CDATA[$F{name}]]></textFieldExpression> 
          </textField> 
         </jr:detailCell> 
        </jr:column> 
       </jr:table> 
      </componentElement> 
     </band> 
    </summary> 
</jasperReport> 

नीचे की स्क्रीन शॉट है रिक्त पूर्वावलोकन का रिक्त पूर्वावलोकन 12.jrxml

इस पर किसी भी मदद के लिए

report12 Preview

उन्नत धन्यवाद TestSuite नाम के साथ पूर्ण तालिका प्राप्त करने के लिए।

+0

से काम करता है @ माइकल बहुत खेद actuall y मेरी पिछली पोस्टों ने मेरे मुद्दों को हल किया लेकिन मुझे नहीं पता था कि उत्तरों को कैसे स्वीकार किया जाए ... या इसके संबंधित महत्व ... इसलिए चेक बॉक्स का चयन करना याद आया ... इसके लिए खेद है .. अब मैं दिए गए लिंक से गुजर चुका हूं एलेक्स द्वारा ... और यह पता चला कि यह कैसे करना है .. इसलिए उन सभी उत्तरों को स्वीकार कर लिया जिन्होंने मुझे पहले मदद की ... धन्यवाद एलेक्स और माइकल। – Som

+0

मेरे लिए यह बहुत महत्वपूर्ण है ..क्या कोई इस पर मदद कर सकता है ... – Som

+0

@ uday035 मैं * iReport 4.5.0 और 4.8.0 * के साथ इस "बग" (मुझे लगता है कि यह है) को पुन: पेश करने में सक्षम था। यह एक ज्ञात समस्या है - आप [टेबल घटक और एक्सएमएल डेटासोर्स] देख सकते हैं (http://community.jaspersoft.com/questions/540959/table-component-and-xml- डेटासोर्स) और [एक्सएमएल डेटासोर्स के साथ तालिका तत्वों का उपयोग करके] (http://community.jaspersoft.com/questions/534913/using-table-elements-xml- डेटासोर्स) http://community.jaspersoft.com पर पोस्ट। आप एक ही परिणाम प्राप्त करने के लिए * विवरण * बैंड का उपयोग करने का प्रयास कर सकते हैं - यह काम –

उत्तर

5

मुझे एक "हैक" मिला है और बहुत अच्छी विधि नहीं है, लेकिन यह काम कर रही है।

आप मुख्य (रिपोर्ट) डेटासेट जोड़ सकते हैं और इसे तालिका घटक में उपयोग कर सकते हैं।

<?xml version="1.0" encoding="UTF-8"?> 
<jasperReport .. whenNoDataType="AllSectionsNoDetail" ..> 
    <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="tbDS"> 
     <queryString language="xPath"> 
      <![CDATA[/testsuites/testsuite]]> 
     </queryString> 
     <field name="name" class="java.lang.String"> 
      <fieldDescription><![CDATA[@name]]></fieldDescription> 
     </field> 
    </subDataset> 
    <queryString language="xPath"> 
     <![CDATA[/testsuites/testsuite]]> 
    </queryString> 
    <field name="name" class="java.lang.String"> 
     <fieldDescription><![CDATA[@name]]></fieldDescription> 
    </field> 
    <summary> 
     <band height="98" splitType="Stretch"> 
      <componentElement> 
       <reportElement key="table" style="table" x="76" y="33" width="360" height="50"/> 
       <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="tbDS"> 
         <dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JRXmlDataSource)$P{REPORT_DATA_SOURCE}).dataSource("/testsuites/testsuite")]]></dataSourceExpression> 
        </datasetRun> 
        <jr:column width="90"> 
         <jr:columnHeader style="table_CH" height="30"> 
          <staticText> 
           <reportElement x="0" y="0" width="90" height="30"/> 
           <textElement/> 
           <text><![CDATA[name]]></text> 
          </staticText> 
         </jr:columnHeader> 
         <jr:detailCell style="table_TD" height="20"> 
          <textField> 
           <reportElement x="0" y="0" width="90" height="20"/> 
           <textElement/> 
           <textFieldExpression><![CDATA[$F{name}]]></textFieldExpression> 
          </textField> 
         </jr:detailCell> 
        </jr:column> 
       </jr:table> 
      </componentElement> 
     </band> 
    </summary> 
</jasperReport> 

इस नमूने में मैं टेबल के डेटा स्रोत की स्थापना के लिए ((net.sf.jasperreports.engine.data.JRXmlDataSource)$P{REPORT_DATA_SOURCE}).dataSource("/testsuites/testsuite") अभिव्यक्ति का उपयोग किया है।

परिणाम होगा:

The resulted report via iReport preview


एक और तरीका डिजाइन आप चाहते हैं पाने के लिए - (टेबल घटक का उपयोग किए बिना) विस्तार बैंड का प्रयोग है।


मुझे लगता है कि स्थिति आप वर्णित एक JasperReports इंजन के बग का पता लगाता है।

मैं http://community.jaspersoft.com स्थल पर समान पदों मिल गया है: Table component and XML datasource और using table elements with xml datasource

+0

हां एलेक्स है, आपका दिया गया एक्सएमएल एक आकर्षण की तरह काम करता है .. इसके बाद इसे .... लेकिन अगर मैं बस तो सारांश बैंड रिक्त दिखाता है और विवरण बैंड पहली पंक्ति को छोड़कर तालिका रिकॉर्ड दिखाता है .. – Som

+0

हालांकि इन सभी के लिए .. लगातार संगतता कठिनाइयों को एक्सएमएल को डेटा स्रोत के रूप में रखने का सामना करना पड़ा जैस्पर रिपोर्ट desgining मैं MySQL को पृष्ठभूमि के रूप में रखने के लिए स्थानांतरित करता हूं और XML तालिका को उपयुक्त तालिका प्रारूप में रखता हूं .. फिर रिपोर्ट डिज़ाइन के लिए उस डेटाबेस का उपयोग करता है .. यह जीवन को बहुत आसान बनाता है .. :) .. धन्यवाद एक टन एलेक्स .. इस के साथ मदद के लिए ... – Som

+0

@ uday035 आपका स्वागत है :) –

1

मैं कनेक्शन/डेटा स्रोत अभिव्यक्ति से अधिक ड्रॉपडाउन सूची पर, iReport, चयन तालिका संपादित करें डेटा स्रोत पर एक समाधान पाया चयन

डेटा स्रोत उपयोग expresion

new net.sf.jasperreports.engine.JREmptyDataSource(1) 

और यह जावा एप्लिकेशन

+0

क्या आप इसे थोड़ा बेहतर प्रारूपित कर सकते हैं? यह वास्तव में भ्रमित है। –

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