2014-07-07 3 views
0

하위 데이터 세트를 모두 사용하는 목적을 벗어나는 매우 문제가있는 동작이 발생했습니다.JasperReports bug with subDataset

난 그냥 하위 데이터를 선언 할 때마다 :

<subDataset name="dataset1" uuid="b8a31d7f-9906-4db0-ac81-155091b1817a"> 
     <parameter name="Parameter3" class="java.lang.String"> 
      <defaultValueExpression><![CDATA["SELECT country, count(*) AS number_of_sites FROM sites GROUP BY country ORDER BY number_of_sites DESC LIMIT 5"]]></defaultValueExpression> 
     </parameter> 
     <queryString> 
      <![CDATA[$P{Parameter3}]]> 
     </queryString> 
     <field name="country" class="java.lang.String"/> 
     <field name="number_of_sites" class="java.lang.Long"/> 
</subDataset> 

및 막대 그래프에서 사용 (정확하게하는 막대 그래프 또는 스택,하지만 중요하지 않습니다) :

  <categoryDataset> 
       <dataset> 
        <datasetRun subDataset="dataset1" uuid="0a388bb3-2e57-4880-9b48-27e0a2afd415"/> 
       </dataset> 
       <categorySeries> 
        <seriesExpression><![CDATA[$F{country}]]></seriesExpression> 
        <categoryExpression><![CDATA[$F{country}]]></categoryExpression> 
        <valueExpression><![CDATA[$F{number_of_sites}]]></valueExpression> 
        <labelExpression><![CDATA[$F{number_of_sites}.toString()]]></labelExpression> 
       </categorySeries> 
      </categoryDataset> 

난으로 빈 문서를 얻을 결과, 보고서 어댑터가 올바르게 작동하는지 100 % 확신합니다. 그래서이 실행하고 나는 추가로 중복 된 항목을 포함하는 몇 가지 이유에 필요한 결과를 얻을 수 있습니다 :이 JRXML에서 하위 데이터 블록 외부 어딘가에 추가

<parameter name="Parameter3" class="java.lang.String"> 
       <defaultValueExpression><![CDATA["SELECT country, count(*) AS number_of_sites FROM sites GROUP BY country ORDER BY number_of_sites DESC LIMIT 5"]]></defaultValueExpression> 
</parameter> 
<queryString> 
    <![CDATA[$P{Parameter3}]]> 
</queryString> 

합니다. 이것은 디자인에서 너무 많은 벽옥 버그 나 불일치가 발생하면서 필사적으로 나를 만듭니다. 기본 쿼리가 subDataset과 일치해야하는 경우 보고서 내부에서 멀티 쿼리의 목적을 무효화합니다. 제 경우에는 주요 보고서 쿼리가 필요하지 않습니다. 각각 자체 쿼리를 갖는 많은 하위 데이터 집합을 갖고 싶습니다.

보고서 연결로 아무 것도 바뀌지 않았습니다. 결과는 매개 변수화와 함께 기본 쿼리와 subDataset 쿼리가 일치 할 때만 나타납니다. 4 개의 구성 요소 중 하나라도 일치하지 않으면 보고서를 생성하지 못하거나 빈 문서를 반환합니다.

나는 uuids를 사용하여 경기를했는데, 이는 0 점이됩니다.

+0

"select 1"과 같은 것을 주 데이터 집합에 대한 쿼리로 사용하는 경우 작동합니까? 주 데이터 세트에 대한 쿼리가없는 경우 Jasper 보고서 환경에서 기본 보고서 용 밴드를 만들지 않을 것이라고 생각합니다. –

+0

정확합니다, 답변으로 게시하고 동의합니다. – Aubergine

답변

0

메인 데이터 세트에 대한 쿼리가없는 경우 Jasper 보고서 환경에서는 기본 보고서 용으로 밴드가 생성되지 않는다고 생각합니다.

예를 들어 쿼리에 "더미로 선택"과 같은 것을 시도 할 수 있습니다.

Jaspersoft Studio는 "One Empty Record"라는 데이터 소스를 옵션으로 제공합니다. 그것은 당신의 목적을 위해서도 유용 할 수 있습니다.