Надеюсь, это будет мой последний вопрос на некоторое время. Я знаю, что особо нечего сказать о возможностях пользовательского интерфейса Progress, но у меня возникла очень странная проблема с отображением во фрейме.
Вот некоторый псевдокод, который поможет вам понять проблему:
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.
Это основы программы. Теперь желаемый вывод будет иметь FRAME, отображающий их, заканчивающийся прямо под последней записью. В настоящее время, используя FRAME по умолчанию, он масштабируется до нижней части экрана терминала.
Тем не менее, когда я создаю экземпляр FRAME и меняю местами все логические доступные параметры, я могу привести его к нужному размеру, но не могу заставить его отображать записи в отдельных строках. Вместо этого он выглядит так: отображает каждую запись в одной строке, перезаписывая последнюю, поскольку всегда показывает последнюю запись в TEMP-TABLE.
Я попытался создать экземпляр FRAME «WITH iMaxPageSize DOWN», но безрезультатно. После более подробного изучения этой конкретной опции, похоже, что она доступна только для отображения нескольких полей в таблице, а не определенных полей нескольких таблиц.
Надеюсь, это имело смысл, мне действительно нужна помощь с этим.