2010-05-06 4 views
1

하나의 A4 고정 레이아웃 페이지에 제품 (행)을 표시 할 테이블을 표시하려고합니다. 머리글/세부/바닥 글 구역이있는 표를 추가 할 수는 있지만 세부 구역 (예 : 150mm)의 최소 높이를 설정할 수는 없습니다. 세부 행에 150mm 높이를 설정하면 각 행의 높이가 150mm가됩니다. 반면에 각 행은 최소 높이를 갖기를 원합니다 (일부 열의 내용이 줄 바꿈되는 경우 여러 행에있을 수 있음). 오른쪽 세부 행 아래, 대신 페이지의 하단에 부착의 BIRT PDF 보고서 : 고정 테이블 heigth?

 +---------+--------+--------------+ 
Tbl Hdr | col1 | col2 | col3  | 
     +---------+--------+--------------+ 
Tbl Dtl | [val1] | [val2] | [val3]  | 
     +---------+--------+--------------+ 
     |         | <-should have a variable heigth 
     +---------+--------+--------------+ 
Tbl Ftr |   |  |  Total | 
     +---------+--------+--------------+ 

세트 세부 행에 있지 높이가 다음 바닥 글이 올 경우

.

나는 이것이 의미가 있기를 바란다. (그렇지 않다면 더 자세한 내용을 제공 할 수있다.) 도움을 주시면 대단히 감사하겠습니다.

답변

1

BIRT 보고서는 자동 레이아웃 엔진을 사용하여 현재 컨텍스트의 컨텐트를 최적화합니다. 이것은 디스플레이/화면에 관계없이 보고서를 가능한 한 잘 보이게하기 위해 고안되었습니다. 사실 보존하려는 바로 그 공간을 없애지 않으면 최소화하려고합니다.

두 번째 세부 행을 추가하는 것이 좋습니다. 그런 다음이 세부 행에 고정 된 높이를 지정하고 나머지 공백을 소비하게 할 수 있습니다. 또는 원하는 데이터를 렌더링하고 페이지의 맨 아래에 바인딩 할 두 번째 테이블을 마스터 페이지의 바닥 글에 배치하십시오. 이것은 페이지 유형 (글자, A4 등)에 관계없이 페이지의 맨 아래에 붙어있는 이점이 있습니다.

+0

감사를 생성 할 때이 시나리오를 많이에서 편리하게 될 수 있습니다

if(!lineDataSet.fetch()){ if(rowCount % 10 >0){ row["column1"] = ""; rowCount++; return(true); } return(false); } 

: 그런 다음, 다음에 if(!lineDataSet.fetch()) 문을 변경 . 나는 당신이 제안한 첫 번째 해결책을 찾아갔습니다. 또한 원하지 않는 페이지 나누기를 피하기 위해 고정 된 heigth 행을 3보다 큰 rownum (임의의 값 ...) 후에 만 ​​표시해야했습니다. 별로 좋은 해결책은 아니지만 더 이상이 시간을 보낼 수는 없습니다 ... 도움을 다시 한번 감사합니다. – kiwifrog

1

대안, 바닥 글을 가지고 때하는 것은 그것을 잘라하지 않습니다

내가 고정 행 높이가 고정 된 테이블의 크기를 원했던 고객이있다. 결국 10 개의 행이 표시되었습니다.

자동 포맷 극복하기 위해서 :

Initialize 스크립트의 변수 var rowCount = 0; reportContext.setGlobalVariable("rowCount",rowCount); 을 만듭니다.

가져 오기 스크립트에서 return(true); 바로 앞에 rowCount++;을 추가하십시오. 당신이 패드 밖으로 테이블에 가짜 데이터 (예를 들어, 실종 일자) 답변에 대한

관련 문제