텍스트 보고서 변수
텍스트 보고서 엔진은 보고서 생성 중 이벤트의 특정 세트를 인지합니다. 각 이벤트는 엔진에서 변수로 나타냅니다.
라이브러리에서 변수에 지정할 때 사용하는 동일한
도트 구문을 사용하여 일반 핸들러의 사용자 정의 함수를
이러한 변수에 지정할 수 있습니다. 예를 들어,
이름이 printPageTotals()인 함수가 있는 경우,
페이지 작업의 끝 표시 페이지가 인쇄되어야 할 때 함수가 모든 페이지에서 실행되도록
onPageTrailerListener 변수에
지정할 수 있습니다. 다음 샘플 코드가 지정을 표시합니다.
myReport.onPageTrailerListener = printPageTotals;
이러한 TextReportListener 변수 각각은 위임 유형입니다.
즉, 서명이 일치하는 함수(매개변수의 수와 유형이
동일함)를 이러한 변수 중 하나에 지정할 수 있습니다.
각 변수는 TextReportEvent 유형인
단일 인수를 사용합니다(TextReportEvent는 다른 EGL ExternalType 파트임). 대부분의 경우,
이 이벤트 유형의 세부사항에 집중할 필요가 없습니다.
다음 예제의 경우와 같이 함수를 선언하는 동시에 변수를
선언할 필요가 없습니다.
function printPageTotals(myEvent TextReportEvent in)
...
end
함수 내에서 myEvent를
참조할 필요가 없습니다. 예외 레코드(예외 핸들링 참조)와 같이,
TextReportEvent 매개변수가 보고서의 상태 및 함수 호출 이유에 대한 정보를
제공할 수 있습니다. 액세스할 수 있는
TextReportEvent 변수 내에 4개의 필드가 있습니다. 첫 번째 필드는
함수 호출 이유를 표시하는 값을 보유하고,
다른 3개의 필드는 첫 번째 필드와 비교할 상수 값을
포함합니다.
- state
- 함수의 호출을 트리거한 이벤트에 대한 정보를 포함하는 정수입니다. 이 변수는 다음 필드 중 하나로 설정됩니다(대부분 STATE_UNSPECIFIED).
- STATE_UNSPECIFIED
- 1과 동등한 정수 상수입니다. 상태 필드가 STATE_UNSPECIFIED 필드와 동등하면 함수가 호출된 이유에 대한 정보가 제공되지 않습니다.
- STATE_LASTROW
- 2와 동등한 정수 상수입니다. 상태 필드가 STATE_LASTROW 필드와 동등하면 마지막 행이 인쇄되었으므로 함수가 호출됩니다.
- STATE_FIRSTROW
- 3과 동등한 정수 상수입니다. 상태 필드가 STATE_FIRSTROW 필드와 동등하면 첫 번째 행이 인쇄될 것이므로 함수가 호출됩니다.
다음 코드는 state
필드 사용 예제를 제공하여 보고서 인쇄를 이제 시작한 특수한 경우를
허용합니다.
function beforeGroup (myEvent TextReportEvent in)
if ((currentReportRecord.customerName != previousReportRecord.customerName)||
(myEvent.state == myEvent.STATE_FIRSTROW))
printCustomerName(currentReportRecord);
endend
함수를 다음과 같은 변수에 지정할 수 있습니다.
- onFirstPageHeaderListener
- 첫 번째 페이지 머리글을 인쇄하는 함수를 가리킵니다. 첫 번째 페이지에 고유한 머리글이 없으면 이에 아무것도 지정하지 마십시오.
- onPageHeaderListener
- 페이지 머리글을 인쇄하는 함수를 가리킵니다. 첫 번째 페이지 머리글이 지정되지 않은 경우 이는 모든 페이지에 인쇄됩니다. 그렇지 않으면 두 번째 페이지부터 인쇄됩니다.
- onEveryRowListener
- 행 데이터를 인쇄하는 함수를 가리킵니다.
- onLastRowListener
- 마지막 행 이후 텍스트를 인쇄하는 함수를 가리킵니다. 이는 마지막 페이지의 맨 아래에서 작업의 끝 표시 페이지 이외에 보고서에 인쇄되는 마지막 항목입니다.
- onPageTrailerListener
- 작업의 끝 표시 페이지 텍스트를 인쇄하는 함수를 가리킵니다.
- onBeforeGroupListener
- 항상 onEveryRowListener 함수 직전에 호출됩니다. 이는 데이터의 그룹을 인쇄하기 전에 텍스트를 인쇄하는 메커니즘을 제공합니다.
- onAfterGroupListener
- onBeforeGroupListener 함수 직전에 호출됩니다(데이터의 첫 번째 행 제외). 이는 데이터의 그룹을 인쇄한 후 텍스트를 인쇄하는 메커니즘을 제공합니다. 또한 onLastRowListener 함수 직전에 호출됩니다.