Параметры процедуры
Параметры процедуры предназначены для передачи данных внутрь или из процедуры. Параметры могут иметь как внешние, так и внутренние процедуры. Параметр – это значения встроенных типов данных ABL, таких как character, integer или handle. Параметры могут быть входящие (input), исходящие (output), а также гибридные (input-output), т. е. одновременно и входящие, и исходящие.
Описание параметров помещается в начале процедуры. Например, для внешней процедуры описание параметров помещается сразу после оператора обработки ошибок. Для внутренней процедуры – сразу после оператора procedure.
Синтаксис параметров процедуры:
define <parameter-use> parameter <parameter-name> as <data-type> [no-undo].
parameter-use
Ключевое слово, определяющее тип параметра: input, output или input-output.
parameter–name
Имя параметра. Рекомендуется подбирать такие имена для параметров, чтобы можно было легко понять для чего он используется. Хорошей практикой является использование символа «p» в качестве префикса имени параметра, что улучшает читаемость кода.
data–type
Любой допустимый тип данных для языка ABL.
В следующем примере внешней процедуры GetPO.p демонстрируется использование параметров:
/* *************************** Definitions ************************** */ block-level on error undo, throw. define input parameter pCustomerNumber as integer no-undo. define input-output parameter pPO as character no-undo. define output parameter pStatus as character no-undo. /* *************************** Main Block *************************** */ /* Для объединения строк используется оператор "+". Для конвертации целочисленного значения (pCustomerNumber) в строку используется встроенная функция string() */ pPO = pPO + string(pCustomerNumber) + "xx". pStatus = "PO Assigned". return.
Процедура принимает в качестве входящих параметров номер клиента и номер заказа, и использует эти данных для обновления номера заказа. Изменённое значение номера заказа возвращается вызывающей процедуру части приложения. Эта процедура также возвращает значение статуса. В основном блоке строковое значение присваивается input-output-параметру pPO. Строковое значение формируется с помощью оператора объединения “+” и встроенной функции string(). Встроенная функция string() используется для конвертации целочисленного значения входящего параметра pCustomerNumber в символьную строку. Поскольку параметр pPO является и входящим, и исходящим, то его значение возвращается вызывающему приложению. В завершение, исходящему параметру pStatus присваивается значение, которое также будет возвращено вызывающему приложению.