JasperReports를 처음 사용합니다. 기본적으로 기본 보고서에 하위 보고서를 넣고 싶습니다.
문제는 하위 보고서를 세부 정보 밴드에 넣었 기 때문에 여러 데이터가있는 데이터베이스를 쿼리 할 때 보고서를 pdf로 출력 할 때 하위 보고서가 항상 여러 번 반복된다는 것입니다. 연결된 데이터베이스에있는 데이터의 수에 관계없이 반복되지 않는 보고서를 원합니다.
나는 인터넷을 검색했고 해결책은
new Boolean($V{REPORT_COUNT}.intValue()==1)
하위 보고서 의 print when expression 특성에서 내 하위 보고서가 한 번만 인쇄되지만 하위 보고서가 표시된 후에도 여전히 일부 빈 페이지가 남아 있기 때문에 내 문제의 일부를 해결합니다.
그래서 나는 그것이 여전히 반복되고 있다고 가정하지만 내가 추가 한 표현 때문에 데이터를 인쇄하지 않습니다. 사람들은 디테일 밴드의 특성이 그런 식으로 작동해야하며 하위 보고서를 넣지 말아야한다고 말합니다. 디테일 밴드이지만 다른 밴드에 넣으면 다음 오류가 발생합니다.
Error filling print... Subreport overflowed on a band that does not support overflow.
위의 오류는 한 페이지 이상을 차지할 정도로 데이터가 많은 경우 발생합니다.
빈 페이지를 어떻게 제거합니까? 디테일 밴드에 넣지 말라고하면 어떻게해야하나요? 또는 어떤 해결책이 있습니까?
세부 정보 밴드는 기본 데이터 세트에있는 레코드 수만큼 생성됩니다 (최상위 쿼리로 채워짐).
하위 보고서를 세부 정보 밴드에 유지하려는 경우 (일반적으로) 다음 중 하나를 수행 할 수 있습니다.
$V{REPORT_COUNT}.intValue()==1
하위 보고서가 아닌 세부 정보 밴드에 직접 printWhen 식 ( )을 추가합니다 . 이것은 보고서 성능에 영향을 줄 수있는 추악한 해킹 일뿐입니다. 기본 쿼리는 여전히 사용하지 않는 많은 데이터를 반환하므로 다른 옵션을 고려해야합니다.하위 보고서를 세부 정보 밴드 밖으로 이동할 수있는 경우 제목 또는 요약 밴드와 같은 오버플로를 허용하는 밴드에 배치합니다. 그때:
<jasperReport>
태그에서) 에서 whenNoDataType = "AllSectionsNoDetail"을 설정 하여 Detail을 제외한 다른 모든 섹션이 생성되도록합니다.이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다