Прогресс 4GL In-line функции / Многострочный оператор - PullRequest
0 голосов
/ 01 марта 2019

Описание:

Я пишу / редактирую механизм запросов LinqToProgress.До сих пор простые функции в рамках прогресса легко реплицируются, такие как "A" >= "B" или Lookup(A, B) > 1, простые однострочные вкладки, которые дают логические условия.Однако для реализации более продвинутых функций или пользовательских функций мне нужно будет иметь возможность писать многострочные операторы, которые можно подключать к условиям, а это означает, что встроенная функция должна давать логический результат, когда вы используете DISP ( myFunc ) в ABL ScratchPad (ИспользованиеEclipse) или аналогичные программы.

Проблема:

Мне нужно преобразовать код между //Start Here и //End Here во встроенный логический результат.

DEF VAR i AS INT NO-UNDO.
DEF VAR LIST  AS CHAR NO-UNDO INIT "one,two,three,four".
DEF VAR LIST2 AS CHAR NO-UNDO INIT  "one,three,five". 

DISP(
        // Start Here
        DO i=1 TO NUM-ENTRIES(LIST):
        IF LOOKUP(ENTRY(i, LIST),LIST2) > 0 THEN RETURN TRUE.
        END.
        RETURN FALSE.
        // End Here
     )

В настоящее время код выдает ошибку.White space after colon ends statement. Я пытался найти решения для многострочных операторов / встроенных функций, но пока ничего не нашел.

Ограничения:

  • Все написанное должно содержаться в функции Disp.
  • Я не могу использовать ранее созданные функции.

1 Ответ

0 голосов
/ 01 марта 2019

Вы должны представить метод или функцию, которая содержит ваш блок кода.ABL не поддерживает операторы и блоки как выражения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...