2009-06-23 2 views
0

나는 다음과 같은 데이터를, 할 수있는 벽옥 보고서를 가지고 :Jasper 보고서 : 두 개의 세부 섹션?

Item | Quantity | Color 
------+-----------+-------- 
A001 | 1   | Red 
A001 | 1   | Green 
B002 | 3   | Red 
B002 | 3   | Purple 

보고서는 품목/수량, 예를 들어,에 의해 그룹화 즉 아래 색상의 목록 항목 및 수량 제목을 보여줍니다 -

Item: A001, Qty: 1, Colors: Red,Green 
Item: B002, Qty: 3, Colors: Red,Purple 

는 지금은 이미 그룹이 재스퍼 보고서를 가지고있다.

이제이 그룹 아래에 항목의 수량과 동일한 수의 수평선 (누군가에게 글을 쓸 수있는)을 표시해야합니다. 예 : A001 그룹 아래에 나는 한 줄을 표시해야하고, B002 그룹 아래에 난과 같이, 세 줄을 표시해야합니다 내가 재스퍼 스크립트를보고 시도했습니다

Item A001, Qty 1, Colors Red, Green 
      _________________________ 

Item B002, Qty 3, Colors Red, Purple 
      _________________________ 
      _________________________ 
      _________________________ 

,하지만 그들은 단지 보고서를 조작 할 수있는 것 매개 변수/변수.

누구든지 내가 어떻게 할 수 있을지 생각하고 있습니까?

답변

0

OK, 결국이 작업은 세부 바닥 글 섹션에서 하위 데이터 집합과 크로스 탭을 사용하여 수행되었습니다. 훌륭하게 작동합니다 - 기여한 모든 분들께 감사드립니다 :)

0

음, 재미 있습니다.

이 소스 데이터 (MySQL의) 사용 :

create table items ( 
item varchar(4), 
quantity number, 
color varchar(10), 
); 

(삽입 데이터 ...)

create table numbers (i integer) 

(삽입 데이터를 0, 1을 여기

당신이 할 수있는 것입니다 , 2 .... MySQL 5.1에는 그것을 수행 할 수있는 프로 시저가 저장되어 있으며, 이전 버전은 그것을 채우기 위해 외부 스크립트가 필요합니다. 0에서 최대 수량까지 이동하십시오.

그러면 트릭은 올바른 종류의 쿼리를 만드는 것입니다. 나는 이것을 생각해 냈다 :

select i.*, n.i from 
(
select concat(i.item, ' ', i.quantity) as grouping, i.item, i.quantity,group_concat(distinct color) as colors 
from items i 
GROUP BY item, quantity 
) i 
cross join numbers n 
where quantity > n.i; 

예. 내 번호 테이블을 채우는, 그리고 귀하의 예를 들어 데이터 항목의 테이블을 채우는, 그리고 내가 할 쿼리를 실행하는 경우 : 재스퍼 보고서에서 다음

+----------+------+----------+------------+------+ 
| grouping | item | quantity | colors  | i | 
+----------+------+----------+------------+------+ 
| A001 1 | A001 |  1 | Red,Greem | 0 | 
| B002 3 | B002 |  3 | Red,Purple | 0 | 
| A001 1 | A001 |  1 | Red,Greem | 1 | 
| B002 3 | B002 |  3 | Red,Purple | 1 | 
| A001 1 | A001 |  1 | Red,Greem | 2 | 
| B002 3 | B002 |  3 | Red,Purple | 2 | 
| A001 1 | A001 |  1 | Red,Greem | 3 | 
| B002 3 | B002 |  3 | Red,Purple | 3 | 
+----------+------+----------+------------+------+ 

을, 트릭 작동 그룹/밴드를 만드는 것입니다 그의 열을 '그룹화', 넣어 당신의 제목 떨어져 : 다음

Item A001, Qty 1, Colors Red, Green 

그리고, 세부 구역에서 단지 세부에서 유일하게 같은 라인.

이렇게하면 원하는 보고서가 생성됩니다.

numbers 테이블은 약간 바보이지만 표준 데이터베이스웨어 하우징 기술입니다. 일부 데이터베이스 (예 : 오라클)에 영리한 재귀 프로 시저 또는 기타 필요없는 기능이 있다고 의심됩니다.

관련 문제