Поскольку таблицы не связаны, вам придется выполнить некоторые манипуляции с данными, чтобы получить вывод параллельной диаграммы, который вы ищете.Вы можете создать временную таблицу «line», которая содержит четыре поля, которые вы хотите отобразить в каждой выходной строке.Просмотрите каждую из таблиц, добавив данные записи в каждую строку.Затем просмотрите таблицу временных строк и выведите данные строки.
DEFINE VARIABLE linecnt AS INTEGER NO-UNDO.
DEFINE TEMP-TABLE ttLine
FIELD linenum AS INTEGER
FIELD tbl1col1 AS CHARACTER
FIELD tbl1col2 AS CHARACTER
FIELD tbl2col1 AS CHARACTER
FIELD tbl2col2 AS CHARACTER
INDEX Idx1 IS PRIMARY linenum.
linecnt = 1. /* Initialize the line counter. */
/* Go thru table-1, creating a ttLine for each record. */
FOR EACH table-1 NO-LOCK:
CREATE ttLine.
ASSIGN
ttLine.linenum = linecnt
ttLine.tbl1col1 = table-1.col1
ttLine.tbl1col2 = table-1.col2
linecnt = linecnt + 1.
END.
linecnt = 1. /* Reset the line counter. */
/* Go thru table-2, adding data to ttLine and creating new records if necessary. */
FOR EACH table-2 NO-LOCK:
FIND FIRST ttLine WHERE ttLine.linenum = linecnt NO-ERROR.
IF NOT AVAILABLE(ttLine) THEN
DO:
CREATE ttLine.
ttLine.linenum = linecnt.
END.
ASSIGN
ttLine.tbl2col1 = table-2.col1
ttLine.tbl2col2 = table-2.col2
linecnt = linecnt + 1.
END.
/* Go thru ttLine, output data. */
OUTPUT TO VALUE("output.txt").
PUT UNFORMATTED
"---------- Table 1 --------- ---------- Table 2 --------"
SKIP.
FOR EACH ttLine:
PUT UNFORMATTED
"|" +
STRING(ttLine.tbl1col1, "X(12)") + " " + STRING(ttLine.tbl1col2, "X(12)") +
" | |" +
STRING(ttLine.tbl2col1, "X(12)") + " " + STRING(ttLine.tbl2col2, "X(12)") +
"|"
SKIP.
END.
OUTPUT CLOSE.
В приведенном выше примере вы получите искомый результат.Он также будет обрабатывать ситуации, когда у вас нет одинакового количества записей в каждой таблице.Это оставит пустые места, где нет данных.