화면 처리 응용
본 장에서는 화면 입출력 기능의 응용에 대해 설명한다. 물리 화면에 대응하는 표준 논리 화면보다 크거나 작은 논리 화면의 구성이 가능하며, 이를 통해 단순히 데이터의 입출력만이 아니라 화면에 대한 조작을 할 수 있다.
1. LSDA
IPFOPN/IPFOVS를 처리할 때 논리 화면의 속성을 정의하는 파라미터인 LSDA(Logical Screen Data Area)를 통해 논리 화면의 속성을 정의할 수 있다. 이 파라미터를 생략한 경우에는 표준 논리 화면의 속성이 적용된다.
LSDA의 설정을 통해 다음과 같은 기능을 할 수 있다.
-
논리 화면을 물리 화면보다 크게 만들 수 있다.
-
화면 분할을 통해 화면의 레이아웃을 자유롭게 설계할 수 있다.
-
스크롤이 가능한 부분에 대해 화면상에 고정 영역을 설정할 수 있다.
-
화면 이동 폭을 자유롭게 설정할 수 있다.
LSDA에서 설정한 위와 같은 기능들은 IPFOPN/IPFOVS가 한번 호출되면 이후에 변경할 수 없으므로 신중하게 설정할 필요가 있다. LSDA로 설정하는 항목들은 다음의 12가지로 각 항목들은 LSDA에서 각각 2bytes의 영역을 차지한다.
항목 | 설명 |
---|---|
SIZE1 |
논리 화면의 행의 크기 |
SIZE2 |
논리 화면의 열의 크기 |
HARD1A |
하드웨어 표시 영역 (행의 시작 위치) |
HARD1B |
하드웨어 표시 영역 (행의 종료 위치) |
HARD2A |
하드웨어 표시 영역 (열의 시작 위치) |
HARD2B |
하드웨어 표시 영역 (열의 종료 위치) |
SCR1 |
화면 이동 폭 (행 방향) |
SCR2 |
화면 이동 폭 (열 방향) |
NOT1 |
화면 고정 영역 (행 위치) |
NOT2 |
화면 고정 영역 (열 위치) |
DISP1 |
물리 화면과의 차이 (행 방향) |
DISP2 |
물리 화면과의 차이 (열 방향) |
LSDA를 생략하지 않은 경우에는 논리 화면의 크기, 하드웨어 표시 영역은 반드시 지정해야 한다. 그 외의 경우 0을 지정하면 표준 화면과 같은 값으로 설정된다. |
2. 화면 분할
화면 분할은 물리 화면에 복수의 논리 화면을 출력하는 것이다. LSDA를 통해 각각의 화면 크기 속성을 정의할 수 있다.
3. 화면 이동(스크롤)
물리 화면의 크기에 대응하는 표준 논리 화면의 크기는 가로 최대 길이가 80, 세로 최대 길이가 24로 제한된다. 논리 화면의 크기를 물리 화면 크기보다 크게 설정한 경우, 표시 영역을 초과하는 부분은 화면에 한 번에 표시할 수 없다. IPF에서는 지정된 function key의 입력을 통해 논리 화면상의 출력 위치를 이동시킬 수 있다.