문제

답을 찾을 수 없는 초보자 질문입니다.

"시간" 열이 있는 여러 항목이 포함된 테이블이 포함된 보고서가 있습니다.같은 달의 모든 항목이 함께 그룹화되도록 항목을 시간별로 그룹화하고 싶습니다.

이렇게 하려면 "Time" 문자열(형식은 "17:22 19/07/09")에서 월/연도를 추출하고 이를 그룹화에 사용해야 합니다.나는 이 모든 것을 Java로 수행하는 방법을 알고 있으며 BIRT가 이를 수행하는 여러 가지 방법을 제공한다고 생각하지만 이를 수행하는 쉬운 방법을 찾지 못했습니다.

이에 대한 좋은 튜토리얼이 있다면 확인해 보고 싶습니다.

감사해요!!

도움이 되었습니까?

해결책

우리는 다음과 같이 했습니다.데이터 세트에 대한 SQL 쿼리에서는 두 가지를 모두 선택합니다(예:) "char(my_date,iso)" 그리고 "left(char(date,iso),7)" (을 위한 2009-01-05 그리고 2009-01 각각) 다음과 같습니다.

select
    left(char(my_date,iso),7) as isoyyyymm,
    char(my_date,iso) as isodate,
    otherfield as value
from tbl
order by my_date

그런 다음 보고서에서 테이블을 생성할 때 열 1은 isoyyyymm을 기반으로 하는 그룹화 열이어야 하며 테이블의 해당 열은 비어 있어야 합니다.

  • 제목,
  • 그룹 데이터 라인;그리고
  • 세부 데이터 라인.

따라서 디자이너에서는 다음과 같이 끝납니다.

+--------------------------------+-----------+-----------------+
| <Header row>                   | Date      | Value           |
+--------------------------------+-----------+-----------------+
| <Group header row (isoyyyymm)> |           |                 |
+--------------------------------+-----------+-----------------+
| <Detail row>                   | [isodate] | [value]         |
+--------------------------------+-----------+-----------------+
| <Group footer row (isoyyyymm)> |           | Total.sum(      |
|                                |           |   row["value"], |
|                                |           |   null,         |
|                                |           |  "Grp1")        |
+--------------------------------+-----------+-----------------+

보고서 테이블은 여전히 ​​월별로 그룹화되지만 표시되는 세부 정보 줄에는 모두 전체 날짜가 포함됩니다.

Date         Value
----------   -----

2009-01-01       7
2009-01-08       2
2009-01-15       1
2009-01-22       4
             -----
                14

2009-02-05       2
2009-02-12       0
2009-02-19       0
2009-02-26       1
             -----
                 5

~할 수 있다 그렇게 하고 싶다면 간격을 두고 그룹화하세요. 그러나 우리는 간단한 문자열을 사용할 수 있는 상황에 대해 가장 간단한 접근 방식을 선택했습니다.분명히 간격이 일주일(또는 간단한 문자열 분석으로 처리할 수 없는 다른 기간)인 경우 BIRT에 내장된 간격 그룹화를 사용해야 합니다.

(제 생각에는) 이에 대한 가장 좋은 튜토리얼은 187페이지(12장)에 있습니다. BIRT, 보고에 대한 현장 가이드.그거, 그리고 BIRT 통합 및 확장 진지한 BIRT 사용자에게는 필수품입니다.

이 첫 번째 작업은 모든 보고서 디자이너에게 절대적으로 중요합니다.두 번째에서는 임베디드 Java 및 Javascript, 보고서 개체 모델 및 BIRT의 기본 아키텍처와 같은 훨씬 더 고급 주제를 다룹니다.이는 보고서를 정말 훌륭하게 만들고 싶다면 필요합니다.

다른 팁

DateTime 구문 분석이 포함 된 보고서 매개 변수가 여기에 비트가 있습니까?

http://www.eclipse.org/birt/phoenix/deploy/viewerusage.php#parameters

이 정확한 일을하는 Birt Exchange Devshare에 대한 샘플 보고서가 있습니다. 정규 표현식 (필요한만큼 단순하거나 복잡한)을 제공하며 Regex의 일치를 사용하여 그룹을 만듭니다.

http://www.birt-exchange.org/devshare/designing-birt-reports/746-create-a-dynamic-group-by-xtracting-substring/#description

행운을 빕니다!

이것은 테이블 자체의 그룹 설정으로 수행 할 수 있습니다. 그룹을 만드는 방법은 설명되어 있습니다 http://www.eclipse.org/birt/phoenix/tutorial/basic/basic06.php (Btw., Google에서 'Birt Table Group'을 검색하는 것은 이것이 첫 번째 히트로 이것을 가장합니다). 이 경우 다음과 같이 할 수 있습니다.

  • State Group 헤더의 행 헤더를 마우스 오른쪽 버튼으로 클릭하면 컨텍스트 메뉴가 표시됩니다.
  • 컨텍스트 메뉴에서 삽입 그룹 → 아래를 선택하십시오. 그룹 세부 사항 대화 상자가 나타납니다.
  • 필드의 그룹에서 "시간"열을 선택하고 이름 필드에서 시간을 입력하십시오.
  • 간격 Combobox에서 'Month'를 선택하십시오
  • 확인을 클릭하십시오.

이것은 SQL 또는 JS Fiddling없이 그룹화 된 테이블을 만듭니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top