CODEBLOCK

Name

CODEBLOCK -- 

Function

<vData>             CLIP(<sFuncName>, [<Param1>, ..., <ParamN>)
TRUE || FALSE       COMPILEFILE(<sFileName>, <sFlags>, <@sError>)
<CodeBlock>         COMPILESTRING(<sString>, <@sError>)
bCurrentErrorHandlerERRORBLOCK([<bErrorHandler>])
LastBlockValue      EVAL(<bBlock>, [<BlockArg list>])
bFieldBlock         FIELDBLOCK(<cFieldName>)
bFieldWBlock        FIELDWBLOCK(<cFieldName>, <nWorkArea>)
<CodeBlock>         LOAD(<sFileName>)
<CodeBlock>         LOADBLOCK(<sFileName>)
bMemvarBlock        MEMVARBLOCK(<cMemvarName>)
<nTaskID>           START(<vTask>, [<vPar1>,,, <vParN>])

Description

Function CLIP()

 CLIP(<sFuncName>, [<Param1>, ..., <ParamN>) 	--> <vData>

CLIP() выполняет функцию с именем <sFuncName> и возвращает результат выполнения.

Function EVAL()

 EVAL(<блок кода>,[<список аргументов>]) --> значение последнего выражения

EVAL() является функцией обработки блока кода. Это наиболее мощное средство в системе xClipper для выполнения блоков кода. Блок кода является особым значением данных, которое относится к части компилированного кода программы. Для получения дополнительной информации по блокам кода читайте главу "Основные концепции".

Для выполнения блока кода нужно вызвать функцию EVAL(), передав ей блок кода и набор параметров. Параметры передаются блоку перед его выполнением. Блоки кода могут представлять собой последовательность выражений, разделенных запятыми. Когда блок кода выполняется, возвращаемым значением является значение последнего выражения в блоке.

Блок кода обычно компилируется при компиляции xClipper-программы. Однако бывают случаи, когда во время выполнения программы возникает необходимость компилировать блок кода из символьной строки. (Например, при использовании оператора (&)).

EVAL() часто используется для создания функций - итераторов. Это такие функции, которые применяют блок к каждому элементу структуры данных. AEVAL(), ASORT(), ASCAN() и DBEVAL() являются функциями - итераторами. AEVAL(), например, выполняет блок для каждого элемента в массиве.

Function FIELDBLOCK()

 FIELDBLOCK(<поле базы>)  --> блок кода

FIELDBLOCK() - функция баз данных, создающая блок кода, при выполнении которого функцией EVAL() с аргументом, значение аргумента присваивается <поле базы>. При выполнении без аргумента кодовый блок возвращает текущее значение <поле базы>.

Существование <поле базы> не требуется при создании блока кода, но необходима его доступность в текущей либо указанной алиасом рабочей области при вызове функции EVAL() для выполнения блока кода.

Function FIELDWBLOCK()

 FIELDWBLOCK(<имя поля>,<номер рабочей области>)  --> блок кода

FIELDWBLOCK() - функция баз данных, создающая блок кода, при выполнении которого функцией EVAL(), сначала выбирается рабочая область - <номер рабочей области>. Если аргумент блока кода был передан функцией EVAL(), то блок кода присваивает <поле базы> значение аргумента. При выполнении без аргумента, кодовый блок возвращает текущее значение <поле базы>.

Существование <поле базы> не требуется при создании блока кода, но необходима его доступность в указанной рабочей области при вызове функции EVAL() для выполнения блока кода.

Function MEMVARBLOCK()

 MEMVARBLOCK(<имя переменной памяти>)  --> блок кода

Блок кода, созданный функцией MEMVARBLOCK(), имеет два действия, зависящих от того, был ли передан аргумент блоку кода при его вычислении. Если блок кода вычислялся с аргументом, то он присваивает значение аргумента <имя переменной памяти>. Если вычислялся без аргумента, то кодовый блок возвращает значение <имя переменной памяти>.