잠시 동안 내 마지막 질문이되기를 바랍니다. Progress의 UI 기능에 대해 언급 할 것이별로 없다는 것을 알고 있지만 프레임에 표시 할 때 실제로 이상한 문제가있는 것 같습니다.테이블의 마지막 레코드 만 표시하는 프레임
DEF TEMP-TABLE tMainTable.
DEF TEMP-TABLE tPage LIKE tMainTable.
DEF VAR iCursor AS INT.
/* SOME INPUT DETECTION */
/* Moving the cursor */
FIND FIRST tMainTable WHERE tMainTable.UniqueId EQ iCursor.
DO i = 1 TO iMaxPageSize:
CREATE tPage.
BUFFER-COPY tMainTable TO tPage.
END.
/* DISPLAY */
FOR EACH tPage:
DISPLAY tPage.iNumber tPage.Name.
END.
이 프로그램의 기본입니다 : 여기
당신이 문제를 이해하는 데 도움이되는 몇 가지 의사 코드입니다. 이제 원하는 출력은 프레임을 표시하여 마지막 항목 바로 아래에서 끝납니다. 현재 기본 프레임을 사용하여 터미널 화면 맨 아래로 확장됩니다.프레임을 인스턴스화하고 사용할 수있는 모든 논리 옵션을 교환 할 때 원하는 크기로 가져올 수는 있지만 항목을 별도의 줄에 표시 할 수는 없습니다. 대신 TEMP-TABLE의 마지막 레코드를 보여주기 때문에 마지막 행을 덮어 쓰고 같은 행에 각 항목을 표시합니다.
"iMaxPageSize DOWN"으로 프레임을 인스턴스화하려고했지만 아무런 효과가 없습니다. 이 특정 옵션을 조금 더 자세히 읽은 후에는 여러 테이블의 특정 필드가 아닌 테이블의 여러 필드를 표시하는 데만 사용할 수있는 것처럼 보입니다.
희망이 있으니까,이 일에 정말로 도움이 필요합니다.
예, 저의 1500 라인 프로그램은 매우 거친 요약이었습니다. 반복 및 페이지 작성 코드가 완벽합니다. 프레임 디스플레이에 대한 도움이 필요합니다. 감사. –
다음을 사용하여 프레임 코드를 추가 : DEFINE FRAME f WITH DOWN 6./* tPage는 최대 6 */각 tPage의 FRAME f : DISPLAY/* 2 fields * /를가집니다. 종료. 출력은 항상 임시 테이블의 첫 번째 행에있는 마지막 레코드이며 그 밖의 것은 없습니다. –
기본적으로 다음 두 가지 질문 중 하나를 묻습니다. 1. 명시 적으로 인스턴스화하지 않고 프레임의 크기를 제어하는 방법이 있습니까? 또는 2. 명시 적으로 인스턴스화 된 프레임에 하나의 레코드 만 표시되는 이유는 무엇입니까 (테이블의 마지막 레코드). –