0

사용자가 페이지 방향을 변경할 때 모든 열 머리글과 데이터 자동 맞춤이 새 페이지 너비가되도록 FastReport에서 보고서를 디자인하는 방법을 아는 사람이 있습니까? 거기에 앵커 메커니즘을 찾을 수 없었습니다. 아마도 런타임 중에 그걸 할 수 있을까요? 그런데 어떻게 든 페이지 방향 변경 이벤트를 잡아야합니다. 아무도 도와 줄 수 있니? 당신은 할 수Delphi의 FastReport 페이지 방향 변경

답변

2

나는 문제가 무엇인지 모르는 : 밴드 자성 기본적으로 테두리를 페이지에 추가하여 새 페이지 너비에 맞 춥니 다.

frxMemoview 개체를 새 페이지 크기에 따라 이동하고 크기를 조정하려면 보고서의 beforeprint 이벤트를 사용하여 보고서 구성 요소를 다시 계산하고 이동하거나 크기를 지정해야합니다.

보고서를 세로 또는 가로로 모두 인쇄 할 수있는 경우이를 생성하는 가장 쉬운 방법은 세로 레이아웃과 가로 레이아웃 일 수 있습니다. 보고서를로드하기 전에 프린터 셋업을 표시하고 방향에 따라 세로 또는 가로 레이아웃을로드 할 수 있습니다.

이것은 가장 깨끗한 방법이 아닐 수 있습니다. 보고서 런타임을 코드로 작성하는 것이 또 다른 옵션이며 보고서의 모든 구성 요소를 다시 계산하는 것도 또 다른 옵션입니다. 그러나 그들은 많은 코딩을 필요로하고 사용자가 "A4"대신 "Letter"를 선택하면 어떻게 될까요?

감사합니다, 네덜란드 012에있는 Teo FR 딜러.

+0

나 프로그래밍 방식으로 계산할 수 있습니다. 아마도 Page.Width 속성과 같은 것이 있을까요? 현재 페이지 형식을 찾을 때 사용할 수 있습니다. 그런데 어떻게 인쇄 설정 대화 상자를 호출 할 수 있습니까? Rave에서는 기본적으로 호출되지만 FR에는 이러한 대화 상자가 없습니다. 맞습니까? 사용자는 이미 보고서보기를 시작한 후에 페이지 방향을 변경할 수 있지만 페이지 방향 변경 이벤트를 잡아야합니다. 어떻게해야합니까? –

0

:

  • 각 TfrxMemoview의 정렬 속성을 사용하여 ...
  • 이 스크립트로 만들
0

코드에서 보고서 페이지 설정 (예 : 용지 정렬 또는 크기를 수정)을 수정해야하는 경우가 있습니다.

property Orientation: TPrinterOrientation default poPortrait; 

    property PaperWidth: Extended; 

    property PaperHeight: Extended; 

    property PaperSize: Integer; 

«를 PaperSize»속성 집합 종이 포맷 : TfrxReportPage 클래스는 페이지의 크기를 정의하는 다음과 같은 속성이 포함되어 있습니다. 이 값은 Windows.pas에 정의 된 표준 값 중 하나입니다 (예 : DMPAPER_A4). 이 속성의 값이 할당되면 FastReport는 자동으로«PaperWidth»및«PaperHeight»속성을 채 웁니다 (용지 크기 (밀리미터)). DMPAPER_USER (또는 256) 값을 형식으로 설정하면 사용자 지정 용지 크기가 설정됩니다. 이 경우«PaperWidth»및«PaperHeight»속성을 수동으로 채워야합니다.

파스칼 :

var 
Page: TfrxReportPage; 
{ the first report’s page has [1] index. [0] is the Data page. } 
Page := TfrxReportPage(frxReport1.Pages[1]); 
{ modify the size } 
Page.PaperSize := DMPAPER_A2; 
{ modify the paper orientation } 
Page.Orientation := poLandscape; 

C++ :

TfrxReportPage * Page; 
// the first report’s page has [1] index. [0] is the Data page. 
Page = (TfrxReportPage *)frxReport1.Pages[1]; 
// modify the size 
Page->PaperSize = DMPAPER_A2; 
// modify the paper orientation 
Page->Orientation = poLandscape; 
0

다음에 예를 나타냅니다

는 첫 페이지의 매개 변수를 수정하는 방법을 (우리가 이미 보고서가 있다고 가정한다)

BeginDoc 난 당신이 그것을 사용하여 속성을 액세스 할 수 있습니다 (frxPrincipal.FindObject('Page1') as TfrxReportPage).PaperSize := DMPAPER_A4;