Версия 1.02 (18.08.04)
Данный документ является приложением к "Руководству по программированию на языке Абрис 1". Здесь собраны описания примитивов языка Абрис 1.
Аксёнов А.В.
Содержание
Параметры | Описание |
---|---|
local-var-name |
Задает имя локальной переменной. Ожидается в позиции 1. |
numeric-expression |
Задает числовое выражение прибавляемое к значению локальной переменной. Ожидается в позиции 2. |
Описание
Присваивает результат сложения числа numeric-expression и числового значения локальной переменной local-var-name переменной local-var-name.
Ничего не возвращает.
Пример
Функция подсчитывает и возвращает количество строк в тексте txt:
<#FUNC LineCount=(PARAM txt; SCAN TEXT=(txt) AS=LINES INIT=(i=0) (ADD i 1); (i) ) >
См. также: Арифметические операции,
Параметры | Описание |
---|---|
source |
Задает исходное выражение строку для сравнения. Ожидается в позиции 1. |
pattern |
Задает образец для сравнения. Ожидается в позиции 2. |
[onmatch-action] |
Задает действие, выполняемое при успехе операции сравнения исходной строки с образцом. Ожидается в позиции 3. Опциональный. |
[default-action] |
Задает действие, выполняемое при неуспехе операции сравнения с образцами. Ожидается в позиции 4. Опциональный. |
Описание
Последовательно производит строковое сравнение 'больше' значения первого аргумента source со значением четных аргументов pattern. Если найден аргумент pattern, удовлетворяющий условию сравнения, выполняется единственное действие onmatch-action. В случае неуспеха операции сравнения, выполняется действие default-action.
Возвращает либо результат выполненного действия, если оно указано, либо непустое значение (символ 'пробел'), если указаны всего два аргумента и результат сравнения - истина, либо пусто.
Пример
Функция возвращает список только тех строк текста, которые начинаются с латинстких букв (A-Z).
<#FUNC AZList=(PARAM text; SCAN TEXT=(text) AS=LINES INIT=(res="") (AFT (str) "Z" "" (BEF (str) "A" "" (LOCALS res APP=(str)))); (res) ) >
См. также: Операции сравнения, Строчные операции,
Параметры | Описание |
---|---|
expression |
Задает выражения для операции логическое 'И'. |
Описание
Возвращает результат вычисления последнего аргумента expression, если результаты вычислений всех аргументов не пустые, в остальных случаях пусто.
Пример
Функция ShowItems возвращает в виде таблицы объекты класса.
<#FUNC msg1="У этого класса могут быть представители, но сейчас их нет." msg2=("Объекты этого класса - безымянные."\ "Доступ к ним организуется через другие (имеющие имена) объекты." ) msg3=("Объекты этого класса - подчиненные."\ "Доступ к ним организуется через другие (старшие) объекты." ) msg4=("У этого класса нет представителей."\ "<br>Это абстрактный класс, играющий роль общего предка для других классов," " и объединяющий группу общих свойств для своих потомков." ) ShowItems=(OR (AND (NEMPTY (ITEMS)) (ShowItemTable) ) (CAT "<B> " (OR (AND (ClassIsSUPER) (msg4) ) (AND (CLassIsDATA) (msg2) ) (AND(IS (Class_Categ_Name) VALUE) (msg2) ) (AND (NEMPTY "GENLK\GENLK") (msg3) ) (msg1) ) "</B>" ) ) >
См. также: Логические операции,
Параметры | Описание |
---|---|
local-var-name |
Задает имя локальной переменной. Ожидается в позиции 1. |
expression |
Задает выражение, добавляемое к текстовому значению локальной переменной. Ожидается в позиции 2. |
Описание
Дописывает в конец строкового значения переменной с именем local-var-name значение выражения expression, упакованное в строку (переводы строк заменены пробелами). Переменной local-var-name присваивает новое значение.
Обратный слэш ("\") выполняет роль символа перевода строки. Если отсутствует переменная с указанным именем, или значение переменной не присвоено, или указан только первый аргумент - не выполняет никаких действий.
Ничего не возвращает.
Пример
Добавляем к имени файла расширение ".bak".
<#APP dbName ".bak" >
См. также: Строчные операции,
Параметры | Описание |
---|---|
text |
Задает исходный текст для преобразования в литерал JScript. Ожидается в позиции 1. |
quote |
Задает строку (кавычку) для обрамления преобразованного в литерал JScript исходного текста. Ожидается в позиции 2. |
Описание
Преобразует исходную строку или текст в литерал JavaScript.
В исходной строке или тексте text, перед символами кавычка (''), апостроф ('), обратный слэш (\), табуляция, новая строка, перевод строки, вставляет символ обратный слэш (\). Затем, если указан второй аргумент quote, результат заключается в кавычки, состоящие из символов quote.
Возвращает полученную таким образом строку или текст.
Пример
Вызываем при наведении указателя мышки смену рисунка.
<img border=0 src='Img\img1.gif' onmouseover=<#ASLITERAL 'this.src = "Img\img2.gif";' "'"> onmouseout=<#ASLITERAL 'this.src = "Img\img1.gif";' "'"> >
См. также: Строчные операции,
Параметры | Описание |
---|---|
[[AN=]aspect-name] |
Задает исходный аспект именем. Без атрибута ожидается в позиции 1. По умолчанию используется текущий аспект. |
[A=aspect] |
Задает исходный аспект числовым идентификатором. По умолчанию используется текущий аспект. |
[O=object] |
Задает исходный объект числовым идентификатором. По умолчанию используется текущий объект. |
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
[TO=target-aspect-name] |
Задает целевой аспект именем. По умолчанию используется целевой аспект альтернативный исходному. Для многоместных аспектов объекта целевой аспект необходимо задавать явно. |
[ATAG=atag] |
Задает дополнительные атрибуты ссылки (A-тэга). Опциональный. |
[M=method] |
Задает метод, формирующий целевую страницу ссылки. По умолчанию (нет ни M ни ACT) принимается: M=_HOME если не указана БД (D=) или если БД указана, но не указан объект, то M=_ROOT, а если объект указан, то M=PAGE. |
[ACT=action] |
Задает действие, выполняемое при переходе по ссылке. По умолчанию формирует навигационный запрос. |
[NEAR=offset] |
Задает режим возврата ссылки на целевой объект для связи, определяемой по смещению относительно текущей связи в списке. Опциональный. |
[NEAR=FIRST] |
Задает режим возврата ссылки на первый объект в списке связей по целевому аспекту. Опциональный. |
[NEAR=LAST] |
Задает режим возврата ссылки на последний объект в списке связей по целевому аспекту. Опциональный. |
[NEAR=NEXT] |
Задает режим возврата ссылки на следующий объект в списке связей по целевому аспекту. Опциональный. |
[NEAR=PREV] |
Задает режим возврата ссылки на предыдущий объект в списке связей по целевому аспекту. Опциональный. |
[Custom=expression] |
Задает любые именованные параметры для передачи формирующему страницу методу (например, начальную позицию сегмента итераций и размер сегмента итераций: POS=segment-start NUM=segment-size). Опциональный. |
[[RET=]reference-image] |
Задает явно изображение ссылки. Без атрибута ожидается в позиции последнего аргумента. По умолчанию в качестве изображения ссылки устанавливается значение атрибута объекта. |
Описание
Формирует изображение/ссылку для значения бинарного аспекта объекта (значения атрибута), в общем виде:
<a href='ab://ab/[&D=dbname] [&O=object] [&A=aspect] [AN=aspect-name] [&TO=target-aspect-name] [&M=method] [&ACT=action] [&POS=segment-start] [&NUM=segment-size] [{&Custom=expression}*] ' [atag]> [ref-image] </a>
Значение атрибута 'href=' A-тега формируется следующим образом:
К URL - программы (ab://ab/) добавляются с аналогичными атрибутами все указанные именованные параметры, кроме RET и ATAG, а также значение первого безымянного аргумента и значения по умолчанию.
С атрибутом ATAG могут быть указаны дополнительные параметры -тега (name=, id=, frame=, title=, methods=, accesskey= ... ).
С атрибутом RET или без него последним аргументом, может быть явно указано изображение ссылки reference-image. В тело A-тега добавляется изображение ссылки ref-image - вычисленное значение reference-image. По умолчанию в качестве изображения ссылки ref-image устанавливается значение атрибута объекта. Внутри цикла FORASP значение атрибута определяется по очередной связи, вне цикла FORASP - по первой из имеющихся связей объекта по аспекту.
Исходный аспект может быть указан либо своим именем aspect-name с атрибутом AN, или без него, первым аргументом, либо с атрибутом A числовым идентификатором aspect. По умолчанию в качестве исходного используется текущий аспект.
Целевой аспект может быть указан своим именем target-aspect-name. Для многоместных аспектов объекта целевой аспект необходимо задавать явно с атрибутом TO. По умолчанию берется целевой аспект альтернативный исходному.
Объект может быть указан с атрибутом O числовым идентификатором object. По умолчанию используется текущий объект.
Если указана БД dbname, отличная от текущей, то необходимо явно указывать объект и аспект (исходный и целевой для многоместных аспектов). По умолчанию используется текущая БД.
Могут быть указаны также любые именованные параметры Custom=expression, которые будут включены в ссылку для передачи параметров обрабатывающему методу. В их числе могут быть NUM, POS, определяющие сегмент итераций по умолчанию в циклах обрабатывающего метода.
В случае успеха возвращает сформированный таким образом A-тег (изображение/ссылку), иначе пусто.
Если указан атрибут NEAR, то в зависимости от его значения возвращает:
Пример
Ученая степень Иванова И.И.
Ученая степень Иванова И.И.: <#FORDB D=((XBASE)"Test\AIS.ab")> <#ASP AN="уч-ст\ученая степень" O=(OBJ N="Иванов ИИ" C="Личность") TO="уч-ст\об-ты уч-ст"> <#/>
См. также: Просмотр и навигация по БД, Обращение к БД через HTML-ссылку,
Параметры | Описание |
---|---|
[[AN=]aspect-name] |
Задает исходный аспект именем. Без атрибута ожидается в позиции 1. По умолчанию используется текущий аспект. |
[A=aspect] |
Задает исходный аспект числовым идентификатором. По умолчанию используется текущий аспект. |
[[N=]object-name] |
Задает исходный объект именем. Без атрибута ожидается в позиции 2. По умолчанию используется текущий объект. |
[[C=]class-name] |
Задает исходный объект именем своего класса. Без атрибута ожидается в позиции 3. По умолчанию используется текущий объект. |
[O=object] |
Задает исходный объект числовым идентификатором. По умолчанию используется текущий объект. |
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
Описание
Формирует стандартное изображение аспекта объекта.
Стандартным изображением является, в зависимости от категории аспекта - либо HTML-таблица, либо список (через 'пробел') либо одиночное изображение объекта, которое является в свою очередь либо текстом значения объекта для объектов-значений или простейшей гиперссылкой на объект, для всех остальных классов.
Аспект может быть указан числовым идентификатором aspect или своим именем aspect-name, без атрибута AN ожидается в качестве первого аргумента. По умолчанию используется текущий аспект.
Объект может быть указан числовым идентификатором object или своим именем object-name и именем своего класса class-name, без атрибутов N,C, ожидается в качестве второго и третьего аргументов. По умолчанию используется текущий объект.
Если указана БД dbname, отличная от текущей, то необходимо явно указывать объект и аспект. По умолчанию используется текущая БД.
В случае успеха возвращает стандартное изображение аспекта объекта, иначе пусто.
Пример
Выводим текст с фамилией, именем, отчеством личности Иванов ИИ.
<#ASPECT AN="фио\ФИО" N="Иванов ИИ" C="Личность" D=((XBASE)"Test\AIS.ab") >
См. также: Просмотр и навигация по БД,
Параметры | Описание |
---|---|
[[AN=]aspect-name] |
Задает исходный аспект именем. Без атрибута ожидается в позиции 1. По умолчанию используется текущий аспект. |
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
Описание
Определяет по имени аспекта его числовой идентификатор.
Аспект должен быть указан своим именем aspect-name, без атрибута AN ожидается в качестве первого аргумента. По умолчанию используется текущий аспект.
Если указана БД dbname, отличная от текущей, необходимо явно указывать имя аспекта. По умолчанию используется текущая БД.
В случае успеха возвращает числовой идентификатор аспекта, иначе пусто (#0).
Пример
Выводим форму для редактирования ФИО Иванова ИИ HTML-редактором.
<#ON (OBJ "Иванов ИИ" "Личность") AN="фио\ФИО" D=((XBASE)"Test\AIS.ab") RET=(_HtmlEd(OBJ)(ASPID) 200 600) >
См. также: Просмотр и навигация по БД,
Параметры | Описание |
---|---|
[[AN=]aspect-name] |
Задает имя исходного аспекта. Без атрибута ожидается в позиции 1. Опциональный. По умолчанию используется текущий аспект. Альтернатива для 'A='. |
[A=aspect] |
Задает исходный аспект числовым идентификатором. Опциональный. По умолчанию используется текущий аспект. Альтернатива для 'AN='. |
[[N=]object-name] |
Задает имя исходного объекта. Без атрибута ожидается в позиции 2. Опциональный. По умолчанию используется текущий объект. Используется только совместно с 'C='. Альтернатива для 'O='. |
[[C=]class-name] |
Задает имя класса исходного объекта. Без атрибута ожидается в позиции 3. Опциональный. По умолчанию используется текущий объект. Используется только совместно с 'N='. Альтернатива для 'O='. |
[O=object] |
Задает исходный объект числовым идентификатором. Опциональный. По умолчанию используется текущий объект. Альтернатива для 'N=' 'C='. |
[D=]dbname] |
Задает путь к файлу БД. Опциональный. По умолчанию используется текущая БД. |
Описание
Вычисляет количество наличных связей по аспекту объекта.
Исходный аспект может быть указан либо именем аспекта, с атрибутом AN= или без него, первым аргументом, либо с атрибутом A= числовым идентификатором. По умолчанию используется текущий аспект.
Объект может быть указан либо именем объекта с атрибутом N=, или без него, вторым аргументом, и именем класса объекта с атрибутом C=, или без него, третьим аргументом, либо с атрибутом O= числовым идентификатором. По умолчанию используется текущий объект.
Если с атрибутом D= БД указана явно, то необходимо явно указывать объект и аспект. По умолчанию используется текущая БД.
Возвращает число наличных связей по аспекту объекта.
Пример:
Получаем количество увлечений Иванова ИИ.
<#asz=(ASPSIZE "увлечения" N="Иванов ИИ" C="Личность")>
Параметры | Описание |
---|---|
[[AN=]aspect-name] |
Задает исходный аспект именем. Без атрибута ожидается в позиции 1. По умолчанию используется текущий аспект. |
[A=aspect] |
Задает исходный аспект числовым идентификатором. По умолчанию используется текущий аспект. |
[[O=]object] |
Задает исходный объект числовым идентификатором. Без атрибута ожидается в позиции 2. По умолчанию используется текущий объект. |
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
[TO=target-aspect-name] |
Задает целевой аспект именем. По умолчанию используется целевой аспект альтернативный исходному. Для многоместных аспектов объекта целевой аспект необходимо задавать явно. |
[NEAR=offset] |
Задает режим возврата числового идентификатора целевого объекта Целевой объект находится по смещению к связи относительно текущей связи относительно текущей связи в списке. возвращает числового идентификатора целевого объекта первой связи. Опциональный. |
[NEAR=FIRST] |
Задает режим возврата числового идентификатора целевого объекта первой связи. Опциональный. |
[NEAR=LAST] |
Задает режим возврата числового идентификатора целевого объекта последней связи. Опциональный. |
[NEAR=NEXT] |
Задает режим возврата числового идентификатора целевого объекта следующей связи. Опциональный. |
[NEAR=PREV] |
Задает режим возврата числового идентификатора целевого объекта предыдующей связи. Опциональный. |
[NEAR=ISFIRST] |
Задает режим проверки позиции связи в списке связей по целевому аспекту. Опциональный. Возвращает непустое значение (пробел), если текущая связь - первая в цикле. |
[NEAR=ISLAST] |
Задает режим проверки позиции связи в списке связей по целевому аспекту. Опциональный. Возвращает непустое значение (пробел), если текущая связь - последняя в цикле. |
[NEAR=POS] |
Задает режим возврата позиции текущей связи в списке связей по целевому аспекту. Опциональный. |
[NEAR=TOTAL] |
Задает режим возврата количества связей в списке (Аналог ASPSIZE). Опциональный. |
Описание
По связи исходного аспекта с целевым аспектом определяется объект - значение атрибута заданного объекта.
Для бинарных аспектов по умолчанию используется целевой аспект, альтернативный заданному. Внутри цикла FORASP/FORLINE значение атрибута определяется по очередной связи, вне цикла - по первой из имеющихся связей объекта по аспекту.
Исходный аспект может быть указан числовым идентификатором aspect или своим именем aspect-name, без атрибута AN ожидается в качестве первого аргумента. По умолчанию используется текущий аспект.
Целевой аспект может быть указан своим именем target-aspect-name. Для многоместных аспектов объекта целевой аспект необходимо задавать явно с атрибутом TO. По умолчанию берется целевой аспект, альтернативный исходному.
Объект может быть указан числовым идентификатором object, без атрибута O ожидается в качестве второго аргумента. По умолчанию используется текущий объект.
Если указана БД dbname, отличная от текущей, то необходимо явно указывать объект и исходный аспект. По умолчанию используется текущая БД.
В случае успеха возвращает числовой идентификатор найденного объекта - значения аспекта, иначе пусто.
Если указан атрибут NEAR, то в зависимости от его значения выполняет одно из действий:
Пример
Функция Last возвращает id атрибута объекта последней связи в списке связей по аспекту объекта.
<#FUNC Last=(PARAM AN O; FORASP(AN) O=(O) (AT NEAR=LAST) ) Part=(PARAM O; AT(APartOf) O=(O)) >
См. также: Просмотр и навигация по БД,
Параметры | Описание |
---|---|
source |
Задает исходное выражение строку для сравнения. Ожидается в позиции 1. |
pattern |
Задает образец для сравнения. Ожидается в позиции 2. |
[onmatch-action] |
Задает действие, выполняемое при успехе операции сравнения исходной строки с образцом. Ожидается в позиции 3. Опциональный. |
[default-action] |
Задает действие, выполняемое при неуспехе операции сравнения с образцами. Ожидается в позиции 4. Опциональный. |
Описание
Последовательно производит строковое сравнение 'меньше' значения первого аргумента source со значением четных аргументов pattern. Если найден аргумент pattern, удовлетворяющий условию сравнения, выполняется единственное действие onmatch-action. В случае неуспеха операции сравнения, выполняется действие default-action.
Возвращает либо результат выполненного действия, если оно указано, либо непустое значение (символ 'пробел'), если указаны всего два аргумента и результат сравнения - истина, либо пусто.
Пример
Функция возвращает список всех строк исходного текста text, которые меньше строки patt.
<#FUNC ListBefore=(PARAM text patt; SCAN TEXT=(text) AS=LINES INIT=(res="") (BEF (VALUE) (patt) (LOCALS res APP=(str))); (res) ) >
См. также: Операции сравнения,
Описание
Внутри цикла, на последнем шаге, игнорируются все последующие содержимое.
Ничего не возвращает.
Пример
Функция возвращает список ссылок на объекты по указанному аспекту указанного объекта, обрамляемый при необходимости префиксом prefix (открывающий тэг), постфиксом postfix (закрывающий тэг), и разделенные текстом delim (по умолчанию запятая).
<#FUNC AspList=(PARAM AN O delim prefix postfix; PARAM O=(OBJ) delim=", "; FORALLOBJ(AN) O=(O) ((prefix) (REFER PAGE ATAG="title='Перейти'" (ASPECT NICKNAME|NAME)) (postfix) (BREAK) (delim)\ ) ) >
Параметры | Описание |
---|---|
expression |
Задает выражение для преобразования текста в строку. |
Описание
Преобразует текст значений аргументов в строки и соединяет их в единый текст. В значениях аргументов expression переводы строк заменяются на символ 'пробел'. Вместо запятых перед первым аргументом или между аргументами в текст результата подставляются символы перевода строки.
Возвращает полученный таким образом текст.
Пример
Функция возвращает относительный путь к файлу гифа с указанным именем.
<#FUNC FindImgFile=(CAT (OR(FILEEXIST((PATH TYPE=DBASE)"Img\"(1)".gif")&("Img\"(1)".gif")) (FILEEXIST((PATH TYPE=DBASE)(1)".gif")&((1)".gif")) (FILEEXIST((PATH TYPE=HOME)"Img\"(1)".gif")) ) ) >
См. также: Строчные операции,
Параметры | Описание |
---|---|
[[N=]object-name] |
Задает исходный объект именем Без атрибута ожидается в позиции 1. По умолчанию используется текущий объект |
[[C=]class-name] |
Задает исходный объект именем своего класса. Без атрибута ожидается в позиции 2. По умолчанию используется текущий объект. |
[O=object] |
Задает исходный объект числовым идентификатором. По умолчанию используется текущий объект. |
Описание
Определяет числовой идентификатор объекта - словаря (класса указанного объекта) текущей БД.
Объект может быть указан числовым идентификатором object либо своим именем object-name и именем своего класса class-name, без атрибутов N,C, ожидается в качестве первого и второго аргумента. По умолчанию используется текущий объект текущей БД.
В случае успеха возвращает числовой идентификатор объекта - словаря (класса указанного объекта), иначе пусто (#0).
Пример
Функция ClassName возвращает имя класса указанного или текущего объекта.
<#FUNC ClassName=(PARAM O; PARAM O=(OBJ); (NAME(CLASS O=(O))) ) >
См. также: Просмотр и навигация по БД,
Параметры | Описание |
---|---|
[D=dbname] |
Задает путь к файлу БД По умолчанию используется текущая БД |
[TYPE=NOSAVE] |
Задает режим закрытия БД без записи в ассоциированный с БД файл |
[TYPE=DELETE] |
Задает режим закрытия БД с последующим удалением файла БД. |
Описание
Закрывает БД dbname с возможным сохранением или удалением.
Без атрибута TYPE БД сохраняется в ассоциированном с БД файле.
В зависимости от значения атрибута TYPE:
По умолчанию сохраняет и закрывает текущую БД.
Ничего не возвращает.
Пример
Закрываем БД "MyDB.ab" и удаляем ассоциированный с БД файл.
<#CLOSE "MyDB.ab" TYPE=DELETE>
См. также: Операции со всей базой данных,
Параметры | Описание |
---|---|
[TYPE=ALL] |
Задает режим получения DDL-кода всей БД целиком (по умолчанию). |
[TYPE=DATA] |
Задает режим получения DDL-кода только данных. |
[TYPE=STRUCT] |
Задает режим получения DDL-кода только дескрипторов данных. |
[TYPE=OBJ] |
Задает режим получения DDL-кода только указанного объекта. |
[TYPE=CLA] |
Задает режим получения DDL-кода только объектов указанного класса. |
[TYPE=REL] |
Задает режим получения DDL-кода только связей указанного отношения. |
N=object-name |
Задает исходный объект именем. |
C=class-name |
Задает исходный объект именем своего класса. |
[O=object] |
Задает исходный объект числовым идентификатором. По умолчанию используется текущий объект. |
R=relation-name |
Задает имя отношения, для получения связей отношения. |
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
Описание
Возвращает текст на языке описания данных (DDL-код) содержимого БД dbname или текущей (по умолчанию) полностью или частично.
В зависимости от значения аргумента атрибута TYPE возвращается:
Пример
Загружаем в текущую БД DDL-код объектов класса "Личность" из БД "AIS.AB"
<#LOAD TEXT=(CODE D=((XBASE)"Test\AIS.AB") TYPE=CLA C="Личность" )>
См. также: Операции со всей базой данных,
Параметры | Описание |
---|---|
source |
Задает исходную строку для сравнения с образцом. Ожидается в позиции 1. |
pattern |
Задает образец для сравнения с исходной строкой. Ожидается в позиции 2. |
Описание
Сравнивает две строки c учетом регистра.
Возвращает результат сравнения в числовом виде:
Пример
Функция GtList1 возвращает список строк текста txt, строки которых больше указанной строки str (сравнение без учета регистра).
<#FUNC GtList1=(PARAM list str; SCAN TEXT=(list) AS=LINES INIT=(pos=1) (GT (COMP(VALUE)(str)) 0 (LIST res APP=(VALUE))); (res) ) >
См. также: Операции сравнения,
Параметры | Описание |
---|---|
source |
Задает исходную строку для сравнения с образцом. Ожидается в позиции 1. |
pattern |
Задает образец для сравнения с исходной строкой. Ожидается в позиции 2. |
Описание
Сравнивает две строки без учета регистра.
Возвращает результат сравнения в числовом виде:
Пример
Функция GtList2 возвращает список строк текста txt, строки которых больше указанной строки str (сравнение c учетом регистра).
<#FUNC GtList2=(PARAM list str; SCAN TEXT=(list) AS=LINES INIT=(pos=1) (GT (COMPIC(VALUE)(str)) 0 (LIST res APP=(VALUE))); (res) ) >
См. также: Операции сравнения,
Параметры | Описание |
---|---|
condition |
Задает условие. Ожидается в позиции 1. |
onmatch-action |
Задает действие на выполнение условия. Ожидается в позиции 2. |
default-action |
Задает действие на невыполнение всех условий. Ожидается в позиции последнего аргумента. |
Описание
Последовательно проверяет каждое из представленных условий condition. При выполнении одного из условий выполняется единственное действие onmatch-action. Если не выполняется ни одно из условий, выполняется действие по умолчанию default-action.
Возвращает результат выполненного действия.
Пример
Функция Save - сохраняет в указанный или текущий файл всю БД целиком или только указанный класс.
<#FUNC Save=(PARAM File Class; COND(Class) (COND(File)(SAVE FILE=(File) TYPE=CLA C=(Class)) (SAVE FILE=((PATH TYPE=DBASE)"AB\"(Class)".ab") TYPE=CLA C=(Class)) ) (COND(File)(SAVE FILE=(File)) (SAVE) ) ) >
См. также: Условные операторы,
Параметры | Описание |
---|---|
UPP=text |
Задает режим конвертирования букв текста в верхний регистр. |
LOW=text |
Задает режим конвертирования букв текста в нижний регистр. |
ARRANGE=text |
Задает режим конвертирования текста в упорядоченный по возрастанию список строк вида Name=Value без повторений. |
SORT=text |
Задает режим конвертирования текста в упорядоченный по возрастанию список строк без повторений. |
W2D=text |
Задает режим конвертирования символов текста из кодировки WIN(1251-Cyrillic) в кодировку DOS(866-Cyrillic). |
D2W=text |
Задает режим конвертирования символов текста из кодировки DOS(866-Cyrillic) в кодировку WIN(1251-Cyrillic). |
ENCODE=text |
Задает режим конвертирования текста. |
DECODE=text |
Задает режим конвертирования текста. |
NAMECHK=text |
Задает режим конвертирования текста. |
IDCHK=text |
Задает режим конвертирования текста в список строк соответствующих допустимым идентификаторам объектов. |
NAMEVER=text |
Задает режим конвертирования текста в список строк, соответствующих допустимым именам. |
MATCH=text |
Задает режим конвертирования текста в список строк соответствующих маске (шаблону). |
MASK=mask |
Задает маску (шаблон) для выявления строк текста соответствующих маске. |
Описание
В соответствии с атрибутом производит различные преобразования текста:
Возвращает результат преобразования текста.
Пример
Функция MaskList возвращает только строки исходного текста text соответствующие маске mask.
<#FUNC MaskList=(PARAM text mask; CONV MATCH=(text) MASK=(mask) ) >
См. также: Строчные операции,
Описание
Возвращает полный путь к файлу текущей БД, если с текущей БД ассоциирован файл, иначе пусто.
Пример
<#SET CurrDB=(DBASE)>
См. также: Просмотр и навигация по БД,
Параметры | Описание |
---|---|
[PROMPT=]prompt |
Задает текст вопроса пользователю в диалоге. Без атрибута ожидается в позиции 1. |
[YES=]positive-ansver |
Задает текст результата при положительном ответе на вопрос. Без атрибута ожидается в позиции 2. |
Описание
Выдает пользователю диалог с информационным сообщением prompt для подтверждения или отказа.
Возвращает в случае подтверждения пользователем positive-ansver или по умолчанию строку YES, иначе пусто.
Примечания:Параметры могут быть либо все позиционные, либо все ключевые.
Пример
<#COND (DIAL_ASK "Удалить текущую БД?") (CLOSE TYPE=DELETE) >
См. также: Диалоги с пользователем,
Параметры | Описание |
---|---|
[PROMPT=]prompt |
Задает текст вопроса пользователю в диалоге. Без атрибута ожидается в позиции 1. |
Описание
Выдает пользователю информационное сообщение.
Ничего не возвращает.
Пример
<#DIAL_INFO "ОШИБКА! Повторите ввод">
См. также: Диалоги с пользователем,
Параметры | Описание |
---|---|
[CAPT=]dialog-caption |
Задает заголовок диалога ввода. Без атрибута ожидается в позиции 1. |
[PROMPT=]prompt |
Задает текст вопроса пользователю в диалоге. Без атрибута ожидается в позиции 2. |
[INIT=]init-string |
Задает начальное значение для редактирования. Без атрибута ожидается в позиции 3. |
Описание
Выдает пользователю диалог ввода с заголовком caption подсказкой prompt и значением по умолчанию init-string.
Возвращает введенное пользователем значение. Если ввод отменен (кнопка [Cancel]), возвращается значение по умолчанию init-string.
Примечания:Параметры могут быть либо все позиционные, либо все ключевые.
Пример
<#DIAL_INPUT "Ввод имени" "Имя:" "">
См. также: Диалоги с пользователем,
Параметры | Описание |
---|---|
divided |
Задает числитель для операции деления. Ожидается в позиции 1. |
divider |
Задает знаменатель для операции деления. Ожидается в позиции 2. |
Описание
Производит деление числа divider на число devisor.
Отсутствующие аргументы и нечисловые значения указанных аргументов заменяются нулем (0).
Возвращает результат деления, если делитель не равен нулю, иначе - максимально допустимое положительное действительное число.
Пример
<#SET Len=(DIV (x) 2)>
См. также: Арифметические операции,
Параметры | Описание |
---|---|
action |
Задает одно из последовательности выражений для вычисления. |
Описание
Выполняет заданную последовательность действий.
Возвращает результат последнего действия.
Пример
Функция Menu возвращает ссылку с гифом.
<#FUNC Menu=(DO (PARAM mac gif bar hint tag) (t1=(r_body (gif) (bar) (hint))) ((tag) (COND (AND (IS(MACNAME)(mac))(IS(D)(DBASE) Y "" Y )(EQ(ENV O)(O))) (t1) (AND (O)(D)) (REFER M=(mac) D=(D) O=(O) ATAG=("title='"(hint)"'") (t1)) (O) (REFER M=(mac) O=(O) ATAG=("title='"(hint)"'") (t1)) (D) (REFER M=(mac) D=(D) ATAG=("title='"(hint)"'") (t1)) (REFER M=(mac) ATAG=("title='"(hint)"'") (t1)) ) ) ) >
Параметры | Описание |
---|---|
else-body |
Задает тело блока ИНАЧЕ внутри сложного тега. |
Описание
Отделяет блок else-body внутри IF, IFNOT.
Пример
<#IF (FILEEXIST "MyDB.ab")> <#LOAD "MyDB.ab"> <#ELSE> <#ERROR "Файл MyDB.ab отсутствует!"> </#>
См. также: Условные операторы,
Параметры | Описание |
---|---|
[[AN=]aspect-name] |
Задает исходный аспект именем. Без атрибута ожидается в позиции 1. По умолчанию используется текущий аспект. |
[A=aspect] |
Задает исходный аспект числовым идентификатором. По умолчанию используется текущий аспект. |
[[O=]object] |
Задает исходный объект числовым идентификатором. Без атрибута ожидается в позиции 2. По умолчанию используется текущий объект. |
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
Описание
Проверяет, имеет ли объект связи по аспекту.
Аспект может быть указан числовым идентификатором aspect или своим именем aspect-name, без атрибута AN ожидается в качестве первого аргумента. По умолчанию используется текущий аспект.
Объект может быть указан числовым идентификатором object, без атрибута O ожидается в качестве второго аргумента. По умолчанию используется текущий объект.
Если указана БД dbname, отличная от текущей, то необходимо явно указывать объект и аспект. По умолчанию используется текущая БД.
Возвращает непустое значение (символ 'пробел'), если указанный аспект объекта пустой (отсутствуют связи по аспекту объекта), иначе пусто.
Пример
Функция NodeType возвращает тип узла дерева.
<FUNC NodeType=(PARAM O;PARAM O=(OBJ); (COND(EMPTY(APartOf) O=(O)) "r" (COND(HelpIsLast(O))"l" "t")) ) >
См. также: Просмотр и навигация по БД,
Параметры | Описание |
---|---|
[[NUM=]index] |
Задает элемент массива позиционным индексом. Промежуточный. |
[[KEY=]name] |
Задает элемент массива именным индексом. Промежуточный. |
[[KEY=]{#|#L}] |
Возвращает размер списка в значении всего или указаного элемента массива. Опциональный. Ожидается последним параметром. |
[[KEY=]#C] |
Возвращает размер в байтах значения всего или указаного элемента массива. Опциональный. Ожидается последним параметром. |
[LINES=index] |
Возвращает размер списка в значении указаного позиционным индексом элемента массива. Опциональный. Ожидается последним параметром. |
[LINES=name] |
Возвращает размер списка в значении указаного именным индексом элемента массива. Опциональный. Ожидается последним параметром. |
[SIZE=index] |
Возвращает размер в байтах значения указаного позиционным индексом элемента массива. Опциональный. Ожидается последним параметром. |
[SIZE=name] |
Возвращает размер в байтах элемента массива, указаного именным индексом. Опциональный. Ожидается последним параметром. |
[HAS=name] |
Проверяет наличие элемента массива с указанным именным индексом. Опциональный. Ожидается последним параметром. |
[DEL=index] |
Удаляет элемент массива с указанным позиционным индексом. Опциональный. Ожидается последним параметром. |
[DEL=name] |
Удаляет элемент массива с указанным именным индексом. Опциональный. Ожидается последним параметром. |
[PUT=value] |
Присваивает новое значение переменной или указанному элементу массива. Опциональный. Ожидается последним параметром. |
[APP=value] |
Добавляет новое значение к значению переменной или указанного элемента массива. Опциональный. Ожидается последним параметром. |
Описание
Производит различные действия с массивом параметров вызова страницы.
Параметры вызова страницы передаются в командной строке запроса к БД сразу после указания URL через символ "&" парами вида name=value. При поступлении запроса к БД параметры вызова страницы пакуются в специальный массив. Операция ENV позволяет обращаться с параметрами вызова страницы как с обычным массивом. Для доступа к внутренней структуре значения параметров вызова используется цепочка индексных параметров.
Пример
<#FUNC aid=(ENV A) Ob1=(COND (Asp_Back(aid)) (OBJ) (ENV O)) Ob2=(COND (Asp_Back(aid)) (ENV O) (OBJ) ) Obj_Ref_Item=(COND (REFER) ((COND(Mode_Edit) (REFER ACT="_Delk2O" R=(NAME(Asp_Rel(aid))) O1=(Ob1) O2=(Ob2) (img1 gif=delete alt="Удалить СВЯЗЬ с этим объектом!"), " " ) ) (REFER) ) ) >
См. также: Операции с массивами,
Параметры | Описание |
---|---|
numeric-source |
Задает исходное число для операции сравнения с образцом Ожидается в позиции 1. |
numeric-pattern |
Задает образец число для операции сравнения с исходным числом. Ожидается в позиции 2. |
[onmatch-action] |
Задает действие, выполняющееся при совпадении исходного числа с образцом. Ожидается в позиции 3. Опциональный. |
[default-action] |
Задает действие, выполняющееся при несовпадении образцов с исходным числом. Ожидается в позиции последнего аргумента. Опциональный. |
Описание
Последовательно производит числовое сравнение 'равно' значения первого аргумента numberic-source со значением четных аргументов numberic-pattern. Нечисловые значения исходного выражения или образца заменяются нулем (0). Если найден аргумент numberic-pattern, удовлетворяющий условию сравнения, выполняется единственное действие onmatch-action. В случае неуспеха операции сравнения, выполняется действие default-action.
Возвращает либо результат выполненного действия, если оно указано, либо непустое значение (символ 'пробел'), если указаны всего два аргумента и результат сравнения - истина, либо пусто.
Пример
Функция ErrorText возвращает текст ошибки по ее номеру.
<#FUNC ErrorText=(PARAM errnum; EQ(errnum) 1 "Отсутствует идентификатор" 2 "Неверно задан идентификатор" 3 "Отсутствует описание" "Неизвестная ошибка" ) >
См. также: Операции сравнения,
Параметры | Описание |
---|---|
[[NUM=]index] |
Задает элемента массива позиционным индексом. Промежуточный. |
[[KEY=]name] |
Задает элемента массива именным индексом. Промежуточный. |
[[KEY=]{#|#L}] |
Задает режим возврата размера списка в значении всего или указанного элемента массива. Опциональный. Ожидается последним параметром. |
[[KEY=]#C] |
Возвращает размер в байтах в значении всего или указанного элемента массива. Опциональный. Ожидается последним параметром. |
[LINES=index] |
Возвращает размер списка в значении указанного позиционным индексом элемента массива. Опциональный. Ожидается последним параметром. |
[LINES=name] |
Возвращает размер списка в значении указанного именным индексом элемента массива. Опциональный. Ожидается последним параметром. |
[SIZE=index] |
Возвращает размер в байтах значения указанного позиционным индексом элемента массива. Опциональный. Ожидается последним параметром. |
[SIZE=name] |
Возвращает размер в байтах значения указанного именным индексом элемента массива. Опциональный. Ожидается последним параметром. |
[HAS=name] |
Проверяет наличие элемента массива с указанным именным индексом. Опциональный. Ожидается последним параметром. |
[DEL=index] |
Удаляет элемент массива с указанным позиционным индексом. Опциональный. Ожидается последним параметром. |
[DEL=name] |
Удаляет элемент массива с указанным именным индексом. Опциональный. Ожидается последним параметром. |
[PUT=value] |
Присваивает новое значение всему или указанному элементу массива. Опциональный. Ожидается последним параметром. |
[APP=value] |
Добавляет новое значение к значению всего или указанного элемента массива. Опциональный. Ожидается последним параметром. |
Описание
Производит различные действия с потоком ошибок в зависимости от параметров.
Передача и обработка ошибок, возникающих внутри макросов и функций осуществляется через специальный массив - поток ошибок. В отличие от глобальных переменных время жизни потока ошибок ограничено - перед началом формирования каждой страницы поток ошибок автоматически очищается. Операция ERROR позволяет обращаться с потоком ошибок как с обычным массивом.
Пример
<#ERROR PUT="Ошибка 1"> <#ERROR APP="Ошибка 2"> <#ERROR>
См. также: Операции с массивами,
Параметры | Описание |
---|---|
[PATH=]path |
Задает путь к файлу или папке либо команду операционной системы. Без атрибута ожидается в позиции 1. |
[[ARG=]parameters] |
Задает параметры вызова программы. Без атрибута ожидается в позиции 2. Опциональный. Дополнительный параметр для 'TYPE={OVER|DETACH|NOWAIT|WAIT}' |
[TYPE=START] |
Задает режим запуска программы либо документа. По умолчанию 'TYPE=START'. |
[TYPE=EXPLORE] |
Задает режим открытия директории для просмотра. По умолчанию 'TYPE=START'. |
[TYPE=PRINT] |
Задает режим вывода документа на печать. По умолчанию 'TYPE=START'. |
[TYPE=CMD] |
Задает режим запуска программы либо команды операционной системы. По умолчанию 'TYPE=START'. |
[TYPE=OVER] |
Задает режим запуска программы с указанными параметрами вместо себя. По умолчанию 'TYPE=START'. |
[TYPE=DETACH] |
Задает режим запуска программы с указанными параметрами в фоновом режиме. По умолчанию 'TYPE=START'. |
[TYPE=NOWAIT] |
Задает режим запуска программы с указанными параметрами в фоновом режиме без ожидания окончания ее выполнения. По умолчанию 'TYPE=START'. |
[TYPE=WAIT] |
Задает режим запуска программы с указанными параметрами с ожиданием окончания выполнения запущенной программы. По умолчанию 'TYPE=START'. |
Описание
Выполняет одно из действий в соответствии со значением атрибута TYPE.
По умолчанию TYPE=START. С атрибутом PATH или без него, первым аргументом, в зависимости от аргумента атрибута TYPE, ожидается path - это может быть команда ОС либо имя файла программы, документа или папки. Для аргументов атрибута 'TYPE={OVER | DETACH | NOWAIT | WAIT}' с атрибутом ARG или без него, вторым аргументом, могут быть указаны параметры parameters передаваемые программе при вызове - это строка в которой параметры должны быть разделены символами 'пробел', общая длина строки не должна превышать 260 символов.
Коды возможных ошибок:
Для поиска указанного файла path используется стандартный алгоритм ОС. Если в имени файла отсутствует расширение или точка, ищет точное имя файла. Если файл не найден, ищет файл сначала с расширением '.exe', потом '.com', затем '.bat'. Если же расширение имеется, ищет только точное имя файла. Если имеется точка без расширения, ищет только имя файла без расширения. Если в имени файла явно не указан путь, ищет сначала в директории откуда запущено текущее приложение (Абриаль), затем в текущей директории, затем в директории Windows \System, затем директории Windows, далее в директориях из списка переменной окружающей среды ОС 'PATH'.
За исключением TYPE=OVER, после запуска активизируется и показывается окно текущего приложения (Абриаль). Если окно минимизировано или максимизировано, восстанавливает к его первоначальному размеру и положению на экране.
Пример
Функция Print запускает печать документа.
<#FUNC Print=(PARAM File; EXEC (File) TYPE=PRINT; ) >
Параметры | Описание |
---|---|
[REC=file-id] |
Задает операцию открытия словарного файла и присваивает файлу указанный идентификатор для последующего обращения. |
[NDX=file-id] |
Задает операцию открытия индексного файла и присваивает файлу указанный идентификатор для последующего обращения. |
[LIST=file-id] |
Задает операцию открытия списочного файла присваивает файлу указанный идентификатор для последующего обращения. |
[APP=file-id] |
Задает операцию открытия файла для последовательной записи присваивает файлу указанный идентификатор для последующего обращения. |
[OUT=file-id] |
Задает операцию открытия файла для последовательной записи присваивает файлу указанный идентификатор для последующего обращения. |
[IN=file-id] |
Задает операцию открытия файла присваивает файлу указанный идентификатор для последующего обращения. |
[PATH=file-name] |
Задает путь к файлу для чтения/записи. Чтение и запись производятся в один файл. Используется для APP, OUT, IN, LIST, REC, NDX. Альтернатива для FROM, TO. |
[FROM=in-file-name] |
Задает путь к файлу для последовательного чтения. Операция чтения может производится для файла, отличного от указанного в TO файла, в который производится запись. Используется для IN, LIST, REC NDX. Альтернатива PATH. |
[TO=out-file-name] |
Задает путь к файлу для записи. Операция записи может производится для файла, отличного от указанного с атрибутом FROM файла, из которого производится чтение. Используется только совместно c APP, OUT, LIST, REC, NDX, LIST. Альтернатива PATH. |
[ALL=file-id] |
Возвращает текст файла, указанного идентификатором. |
[CLOSE=file-id] |
Закрывает файл с сохранением внесенных изменений в заранее заданный при открытии выходной файл. |
[END=file-id] |
Проверяет, достигнут ли конец файла (или нет файла) EOF. Возвращает 'истина' (не пусто) если достигнут конец файла. |
[ON=file-id] |
Проверяет нормальность чтения файла. Возвращает 'истина' (не пусто) если не достигнут конец файла и работает операция чтения. |
[GET=file-id] |
Получает очередную строчку из IN файла. |
[NUM=index] |
Задает элемент массива позиционным индексом для файлов памяти (только для REC, NDX, LIST - файлов). |
[KEY=name] |
Задает элемент массива именным индексом для файлов памяти (только для REC, NDX, LIST - файлов). |
[KEY=]{# | #L} |
Задает режим возврата количества записей в значении указанного элемента массива (только для REC, NDX, LIST - файлов). |
[KEY=]#C |
Задает режим возврата размера в байтах указанного элемента массива (только для REC, NDX, LIST - файлов). |
[LINES=file-id] |
Задает режим возврата количества строк файла. |
[LINES=name] |
Задает режим возврата количества записей для указанного именным индексом элемента массива (только для REC, NDX, LIST - файлов). |
[LINES=index] |
Задает режим возврата количества записей для указанного позиционным индексом элемента массива (только для REC, NDX, LIST - файлов). |
[SIZE=max-size] |
Задает размер REC-файла в байтах. По умолчанию 1600000. При превышении размера выдает диалог с предложением увеличить размер файла. Может быть указан только при открытии REC-файла. |
[SIZE=name] |
Задает режим возврата размера в байтах элемента массива указанного именным индексом. (только для REC, NDX, LIST - файлов) |
[SIZE=index] |
Задает режим возврата размера в байтах элемента массива указанного позиционным индексом. (только для REC, NDX, LIST - файлов) |
[HAS=name] |
Задает режим проверки наличия элемента массива с указанным именным индексом. (только для REC, NDX, LIST - файлов) |
[DEL=file-id] |
Задает режим удаления файла их списка открытых файлов без сохранения внесенных изменений. |
[DEL=index] |
Задает режим удаления элемента массива с указанным позиционным индексом. |
[DEL=name] |
Задает режим удаления элемента массива с указанным именным индексом. |
[PUT=value] |
Задает режим установки нового значения. |
[APP=value] |
Задает режим добавления нового значения. (только для REC, NDX, LIST - файлов). |
[SAVE=file-id] |
Задает идентификатор файла для записи внесенных изменений в выходной файл. Путь к выходному файлу должен быть указан при открытии атрибутами PATH или TO. |
[SAVETO=file-name] |
Задает путь к файлу для записи на диск REC, NDX, LIST - файлов (первым аргументом указывается идентификатор файла). |
Описание
Производит различние операции с текстовыми файлами в зависимости от указанных параметров.
Обращение к файлу организовано через идентификаторы файлов - любое допустимое уникальное имя переменной. Идентификатор файла в операции FILE доступен в любом макросе или функции подобно глобальной переменной с момента открытия файла до момента закрытия файла.
Любой операции доступа к файлу должна предшествовать операция открытия файла. Способ открытия файла определяет способ доступа к содержимому файла. Некоторые операции допустимы только при одном определенном способе открытия файла.
Операции открытия файла в общем виде:
1-3) открытие файла с произвольным доступом к содержимому для чтения и записи. Содержимое файла рассматривается как массив с именем идентификатора файла. Идентификатор файла и тип доступа к содержимому файла задается атрибутами:
Если предполагается, чтение и запись будут производиться в один и тот же файл, то путь к файлу может быть указан одним атрибутом PATH. Если же предполагается, что чтение будет производиться из одного файла, а запись изменений в другой, то пути к входному и выходному файлам могут быть указаны соответственно с атрибутами FROM и TO или в комбинациях: PATH, TO либо FROM, PATH.
Если путь не задан (не указаны атрибуты PATH, FROM, TO) с файлом можно работать в памяти как с обычным массивом, т.е открывается пустой файл, затем используется как временное хранилище и никуда не сохраняется в конце. Принципиальное отличие от переменной - необходимость открытия, где указывается тип файла. Практическое отличие - более эффективная работа с большими файлами в памяти.
4-5) - открытие файла с последовательным доступом только для записи (построчная запись). Содержимое файла рассматривается как текст, очередная операция записи дописывает порцию текста с новой строки в конец файла. Идентификатор файла задается атрибутами:
Выходной файл должен быть указан атрибутом PATH или TO.
6) - открытие файла с последовательным доступом только для чтения (построчное чтение). Идентификатор файла задается атрибутом IN. Входной файл должен быть указан атрибутом PATH или FROM.
Файлы, открытые с атрибутами REC, NDX, LIST рассматриваются как массивы. Для них допустимы операции с массивами использующиеся в GLOBALS, LOCALS ..), вместо имен переменных/массивов задаются идентификаторы файлов.
Все опрерации открытия файлов в случае успеха возвращают указанный идентификатор файла.
Операции чтения:
Операции записи:
Удаление элемента массива:
Сохранение файла:
Закрытие файла:
Получение информации об открытых файлах.
Информация об открытых файлах возвращается в виде структуры:
Другие:
Пример:
Разные действия с глобальными переменными и настройками.
<#FUNC // открыть Globs_Open=(FILE REC=Globs PATH=(Data_Path Globals ini) SIZE=400;) // получить указнанный именными индексами элемент Globs_Get=(FILE Globs KEY=(1) KEY=(2)) // получить значение Globs_Val=(FILE Globs KEY=(1) KEY=VAL) // сохранить Globs_Put=(FILE Globs KEY=(1) KEY=(2) PUT=(3)) // значение сохранить Globs_Put_Val=(Globs_Put(1) VAL (2);GLOBALS (1) PUT=(2);FILE SAVE=Globs) Globs_Name=(FILE Globs KEY=(1) KEY=NAME) // Наименование Globs_Size=(FILE Globs KEY=(1) KEY=SIZE) // ширина поля редактир-я Globs_Sav=(FILE Globs KEY=(1) KEY=SAV) // сохранять ли? Globs_Load=(/// загрузка в память сохраненных глобалов из файла Globs_Open; /// открыли файл глобалов SCAN KEYFILE=Globs ( // сканируем файл GLOBALS (KEY) PUT=(VALUE KEY=VAL); // сохраняем у всех элементов атрибут VAL (DBG&DIAL_INFO ("Берем Глобал=" (KEY) " со значением="(VALUE KEY=VAL) \ ,GLOBALS (KEY) ) ); ); ) Globs_Save=( // сохранение в файле сохраняемых глобалов и самого файла Globs_Open; SCAN TEXT=(GLOBALS) AS=REC ( val=VAlUE; COND (Globs_Sav(KEY)) // Если там есть такой элемент с непустым атрибутом SAV (Globs_Put_Val(KEY)(val)); // то сохраняем в нем ); FILE SAVE=Globs; // и наконец сохраняем сам файл ) Globs_New_Elem=( // создаем элемент с именем Key значением Val // названием Nam размером редакт-я Siz PARAM Key Val Nam Siz Sav; FILE Globs KEY=(Key) PUT=(REC NAME (Nam) VAL (Val) SIZE (Siz) SAV (Sav)); // то сохраняем в нем IF (Sav) // если есть признак сохранения - сохраняем за одно и сам файл (FILE SAVE=Globs; ) ) >
См. также: Операции с файлами, Операции с массивами,
Параметры | Описание |
---|---|
file-name |
Задает путь к файлу для добавления текста. Ожидается в позиции 1. |
appendix-text |
Задает добавляемый в конец указанного файла текст. Ожидается в позиции 2. |
Описание
Дописывает в конец файла file-name текст appendix-text.
В случае успеха возвращает имя файла без изменений, иначе пусто.
Пример
Дописываем текст файла "text.txt" в конец "result.txt", в случае неудачи генерируем ошибку.
<#IFNOT (FILEAPPEND "result.txt" (FILELOAD "text.txt"))> <#ERROR "Ошибка записи"> <#/>
См. также: Операции с файлами,
Параметры | Описание |
---|---|
file-name |
Задает путь к файлу для проверки существования файла. Ожидается в позиции 1. |
Описание
Проверяет наличие файла по указанному пути file-name.
Возвращает имя файла без изменений, если файл существует, иначе пусто.
Пример
Выводим сообщение об ошибке, если указанный файл отсутствует.
<#IFNOT (FILEEXIST (FileName))> <#ERROR (CAT "Ошибка! " (FileName) " отсутствует!")> <#/>
См. также: Операции с файлами,
Параметры | Описание |
---|---|
file-name |
Задает путь к файлу для получения текста файла. Ожидается в позиции 1. |
Описание
В случае успеха возвращает текст содержимого указанного текстового файла file-name, иначе пусто.
Пример
Переменной ftext присваиваем текст содержимого файла "Mytext.txt" из текущей директории.
<#SET ftext=(FILELOAD "Mytext.txt")>
См. также: Операции с файлами,
Параметры | Описание |
---|---|
file-name |
Задает путь к файлу для записи в него указанного текста. Ожидается в позиции 1. |
text |
Задает текст для записи в указанный файл. Ожидается в позиции 2. |
Описание
Создает текстовый файл с именем file-name, записывает в него указанный текст text.
В случае успеха возвращает имя файла без изменений, иначе пусто.
Пример
Функция BackUp создает резервную копию файла, который указан первым аргументом.
<#FUNC BackUp=(PARAM File; FILESAVE (PATH CHANGE=(File) TO=".bak") (FILELOAD (File))) >
См. также: Операции с файлами,
Параметры | Описание |
---|---|
source |
Задает исходную строку или текст для определения позиции первого вхождения указанной подстроки. Ожидается в позиции 1. |
substring |
Задает подстроку для определения позиции ее первого вхождения в исходную строку. Ожидается в позиции 2. |
Описание
Производит поиск первого вхождения подстроки substring в исходной строке source.
Возвращает номер позиции первого символа подстроки substring в исходной строке source, начиная с единицы, если вхождение найдено, иначе пусто (0).
Пример
Получаем позицию "." в строке (fname)
<#IF (pointpos=(FIND (fname) "."))> найдена "." в позиции <#pointpos> <#ELSE> "." отсутствует <#/>
См. также: Строчные операции,
Параметры | Описание |
---|---|
init-action |
Задает действие, выполняемое только перед первым шагом цикла. Ожидается в позиции 1. |
condition |
Задает условие выполнения очередного шага цикла. Ожидается в позиции 2. |
iteration |
Задает действие, выполняемое перед проверкой условия после очередного шага цикла. Ожидается в позиции 3. |
[body] |
Задает тело цикла внутри простого тэга - выражение, вычисляемое на каждом шаге цикла и добавляемое к результату предыдущих шагов. Ожидается в позиции 4 (последний аргумент). Опциональный. |
[complex-body] |
Задает тело цикла внутри сложного тэга - выражение, вычисляемое на каждом шаге цикла и добавляемое к результату предыдущих шагов. Опциональный. |
Описание
Выполняет тело цикла до тех пор, пока выполняется условие condition.
Аргументом init-action может быть указано выражение, которое выполняется только перед началом выполнения итераций.
Аргументом condition должно быть указано выражение, представляющее собой условие выполнения тела цикла.
Если в результате вычисления выражения condition возвращается пустое значение, очередная итерация не выполняется, цикл заканчивается.
Аргументом iteration может быть указано выражение, которое выполняется перед проверкой условия condition после очередного шага цикла.
Последним аргументом, тело цикла body может быть указано внутри простого тега в функциональном стиле.
Возвращает результат выражения init-action объединенный с вычисленным для каждой итерации телом цикла, если оно указано, внутри простого тега, затем внутри сложного тега.
Пример
Функция SortByNick упорядочивает по имени заголовка подразделы указанного раздела Part.
<#FUNC SortByNick=(PARAM Part; PARAM Part=(OBJ); List=(CONV SORT=(FORALLOBJ(AParts) O=(Part) ("Nick="(HelpTitle)" O1="(OBJ)\))); FOR(i=1 sz=(ASPSIZE(AParts)))(LE(i)(sz))(ADD i 1) (obj=(LOCALS List (i) "O1") dlk=(_DELK R=PartOf O1=(obj) O2=(Part)) lnk=(_LINK R=PartOf O1=(obj) O2=(Part)) ) ) >
См. также: Операторы цикла, Составные примитивы (операторы),
Параметры | Описание |
---|---|
[[N=]object-name] |
Задает исходный объект именем. Без атрибута ожидается в позиции 1. По умолчанию используется текущий объект. |
[[C=]class-name] |
Задает исходный объект именем класса. Без атрибута ожидается в позиции 2. По умолчанию используется текущий объект. |
[O=object] |
Задает исходный объект числовым идентификатором. По умолчанию используется текущий объект. |
[[RET=]body] |
Задает тело цикла внутри простого тэга - выражение, вычисляемое на каждом шаге цикла и добавляемое к результату предыдущих шагов. Без атрибута ожидается в позиции последнего аргумента. Опциональный. |
[complex-body] |
Задает тело цикла внутри сложного тэга - выражение, вычисляемое на каждом шаге цикла и добавляемое к результату предыдущих шагов. Опциональный. |
Описание
В теле цикла поочередно для каждого шага устанавливаются текущими все возможные аспекты объекта текущей БД, включая все наследованные, и в том числе от универсального класса TOBJ.
Объект может быть указан числовым идентификатором object или своим именем object-name и именем своего класса class-name, без атрибутов N,C, ожидается в качестве первого и второго аргументов. По умолчанию используется текущий объект текущей БД.
С атрибутом RET, или без него последним аргументом, тело цикла body может быть указано внутри простого тега в функциональном стиле.
В случае успеха возвращает объединенный результат вычислений для каждой итерации тела цикла, сначала внутри простого тега, затем внутри сложного тега.
Пример
Функция AspNames возвращает список имен аспектов указанного класса.
<#FUNC AspNames=(PARAM classname; FORALLASP N=(classname) C="CLASS" ((NAME)\) ) >
См. также: Операторы цикла, Составные примитивы (операторы),
Параметры | Описание |
---|---|
[[AN=]aspect-name] |
Задает исходный аспект именем. Без атрибута ожидается в позиции 1. По умолчанию используется текущий аспект. |
[A=aspect] |
Задает исходный аспект числовым идентификатором. По умолчанию используется текущий аспект. |
[N=object-name] |
Задает исходный объект именем. По умолчанию используется текущий объект. |
[C=class-name] |
Задает исходный объект именем класса. По умолчанию используется текущий объект. |
[O=object] |
Задает исходный объект числовым идентификатором. По умолчанию используется текущий объект. |
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
[TO=target-aspect-name] |
Задает целевой аспект именем. По умолчанию используется целевой аспект альтернативный исходному. Для многоместных аспектов объекта целевой аспект необходимо задавать явно. |
[POS=segment-start] |
Задает начало сегмента итераций Опциональный. |
[NUM=segment-size] |
Задает размер сегмента итераций. Опциональный. |
[INIT=initialization] |
Задает выражение вычисляющееся один раз перед циклом. Опциональный. |
[FROM=begin-condition] |
Задает выражение, которое вычисляется перед всеми шагами внутри интервала. Пока не станет истиной, интервал исполнения не начинается. Потом уже не вычисляется. Опциональный. |
[FROMOBJ=begin-obj] |
Задает числовой идентификатор целевого объекта в списке по аспекту, не достигнув которого, тело цикла не вычисляется. Опциональный. |
[IF=step-condition] |
Задает выражение, которое вычисляется непосредственно перед шагом. Если возвращает пусто шаг пропускается. Опциональный. |
[BY=step] |
Задает шаг цикла. Если BY=2, то исполняется только каждый второй в пределах интервала. Опциональный. |
[ITER=iteration] |
Задает выражение, которое вычисляется после шага, что возвращает безразлично. Опциональный. |
[UNTIL=until-condition] |
Задает выражение-условие, которое вычисляется после каждого шага. Если возвращает НЕ-пусто выход из цикла. Опциональный. |
[WHILE=while-condition] |
Задает выражение-условие, которое вычисляется перед шагом. Если возвращает пусто - выход из цикла. Опциональный. |
[[RET=]body] |
Задает тело цикла внутри простого тэга - выражение, вычисляемое на каждом шаге цикла и добавляемое к результату предыдущих шагов Без атрибута ожидается в позиции последнего аргумента. Опциональный. |
[complex-body] |
Задает тело цикла внутри сложного тэга - выражение, вычисляемое на каждом шаге цикла и добавляемое к результату предыдущих шагов Опциональный. |
Описание
Поочередно перебирает все связи указанного объекта по исходному аспекту. В теле цикла, внутри сегмента итераций, устанавливает текущим объект, участвующий в очередной связи по целевому аспекту. Для бинарных связей целевым аспектом является аспект, альтернативный исходному. Таким образом, в теле цикла поочередно для каждой связи итерации устанавливает текущими объекты - значения атрибута указанного объекта.
Итерации не начинаются (не вычисляется тело цикла), если:
Итерации заканчиваются, если:
Очередной шаг пропускается (тело цикла не вычисляется), если выражение, указанное с атрибутом IF принимает значение 'ложь' (пусто).
Сегмент итераций может быть задан с атрибутом POS позицией segment-start первой связи, начиная с единицы и, с атрибутом NUM, размером segment-size. По умолчанию POS=1 - сканирование начинается с первой наличной связи. По умолчанию NUM сканируются все наличные связи начиная с указанной в POS позиции.
Если с атрибутом BY=step указан шаг итераций, то внутри сегмента пропускаются step-1 связь (берется каждая step связь, начиная с POS)
С атрибутом INIT может быть указано выражение, которое вычисляется один раз перед началом цикла, вычисленное значение добавляется к общему результату оператора перед результатом вычислений тела цикла.
С атрибутом ITER может быть указано выражение, которое вычисляется на каждом шаге итераций, не влияет на результат оператора.
P>Целевой аспект может быть указан с атрибутом TO своим именем target-aspect-name. Если целевой аспект не указан, и по умолчанию, используется целевой аспект, альтернативный исходному. Для бинарных аспектов достаточно указать исходный аспект, для многоместных аспектов необходимо задавать целевой аспект.Объект может быть указан с атрибутом O числовым идентификатором object либо с атрибутом N своим именем object-name и с атрибутом C именем своего класса class-name. По умолчанию используется текущий объект.
Если с атрибутом D указана БД dbname, отличная от текущей, то необходимо явно указывать аспект и объект. По умолчанию используется текущая БД.
С атрибутом RET, или без него, последним аргументом, тело цикла body может быть указано внутри простого тега в функциональном стиле.
В случае успеха возвращает объединенный результат вычислений тела цикла на каждом шаге итераций, сначала внутри простого тега, затем внутри сложного тега.
Пример
Выводим список увлечений конкретной личности.
<#FORALLOBJ AN="увлеч\увлечения" N="Иванов ИИ" C="Личность" D=((XBASE)"Test\AIS.ab")> <#NAME> <#>
См. также: Операторы цикла, Составные примитивы (операторы),
Параметры | Описание |
---|---|
[[AN=]aspect-name] |
Задает исходный аспект именем. Без атрибута ожидается в позиции 1. По умолчанию используется текущий аспект. |
[A=aspect] |
Задает исходный аспект числовым идентификатором. По умолчанию используется текущий аспект. |
[N=object-name] |
Задает исходный объект именем. По умолчанию используется текущий объект. |
[C=class-name] |
Задает исходный объект именем класса. По умолчанию используется текущий объект. |
[O=object] |
Задает исходный объект числовым идентификатором. По умолчанию используется текущий объект. |
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
[POS=segment-start] |
Задает начало сегмента итераций. Опциональный. |
[NUM=segment-size] |
Задает размер сегмента итераций. Опциональный. |
[INIT=initialization] |
Задает выражение вычисляющееся один раз перед циклом. Опциональный. |
[FROM=begin-condition] |
Задает выражение, которое вычисляется перед всеми шагами внутри интервала. Пока не станет истиной, интервал исполнения не начинается. Потом уже не вычисляется. Опциональный. |
[FROMOBJ=begin-obj] |
Задает числовой идентификатор целевого объекта в списке по аспекту, не достигнув которого, тело цикла не вычисляется. Опциональный. |
[IF=step-condition] |
Задает выражение, которое вычисляется непосредственно перед шагом. Если возвращает пусто шаг пропускается. Опциональный. |
[BY=step] |
Задает шаг цикла. Если BY=2, то исполняется только каждый второй в пределах интервала. Опциональный. |
[ITER=iteration] |
Задает выражение, которое вычисляется после шага, что возвращает безразлично. Опциональный. |
[UNTIL=until-condition] |
Задает выражение-условие, которое вычисляется после каждого шага. Если возвращает НЕ-пусто выход из цикла. Опциональный. |
[WHILE=while-condition] |
Задает выражение-условие, которое вычисляется перед шагом. Если возвращает пусто - выход из цикла. Опциональный. |
[[RET=]body] |
Задает тело цикла внутри простого тэга - выражение, вычисляемое на каждом шаге цикла и добавляемое к результату предыдущих шагов Без атрибута ожидается в позиции последнего аргумента. Опциональный. |
[complex-body] |
Задает тело цикла внутри сложного тэга - выражение, вычисляемое на каждом шаге цикла и добавляемое к результату предыдущих шагов. Опциональный. |
Описание
Поочередно перебирает все связи указанного объекта по исходному аспекту. В теле цикла, для каждой связи внутри сегмента итераций устанавливает текущими указанные объект и исходный аспект.
Итерации не начинаются (не вычисляется тело цикла), если:
Итерации заканчиваются, если:
Очередной шаг пропускается (тело цикла не вычисляется), если выражение, указанное с атрибутом IF принимает значение 'ложь' (пусто).
Сегмент итераций может быть задан с атрибутом POS позицией segment-start первой связи, начиная с единицы и, с атрибутом NUM, размером segment-size. По умолчанию POS=1 - сканирование начинается с первой наличной связи. По умолчанию NUM сканируются все наличные связи начиная с указанной в POS позиции.
Если с атрибутом BY=step указан шаг итераций, то внутри сегмента пропускаются step-1 связь (берется каждая step связь, начиная с POS)
С атрибутом INIT может быть указано выражение, которое вычисляется один раз перед началом цикла, вычисленное значение добавляется к общему результату оператора перед результатом вычислений тела цикла.
С атрибутом ITER может быть указано выражение, которое вычисляется на каждом шаге итераций, не влияет на результат оператора.
Исходный аспект может быть указан числовым идентификатором aspect или своим именем aspect-name, без атрибута AN ожидается в качестве первого аргумента. По умолчанию в качестве исходного аспекта используется текущий.
Объект может быть указан с атрибутом O числовым идентификатором object либо с атрибутом N своим именем object-name и с атрибутом C именем своего класса class-name. По умолчанию используется текущий объект.
Если с атрибутом D=dbname указана БД, отличная от текущей, то необходимо явно указывать аспект и объект. По умолчанию используется текущая БД.
С атрибутом RET, или без него, последним аргументом, тело цикла body может быть указано внутри простого тега в функциональном стиле.
В случае успеха возвращает объединенный результат вычислений тела цикла на каждом шаге итераций, сначала внутри простого тега, затем внутри сложного тега.
Пример
<#FORASP AN="уч-ст\ученая степень" N="Иванов ИИ" C="Личность" D=((XBASE)"Test\AIS.ab")> <#NAME> (<#ASP AN="фио\ФИО" ТО="фио\ФИО для">) <#ASP AN="уч-зв\ученое звание" TO="уч-зв\об-ты уч-зв"> <#ASP TO="уч-ст\об-ты уч-ст"> <#ASP TO="уч-ст\область наук"> <#/>
См. также: Операторы цикла, Составные примитивы (операторы),
Параметры | Описание |
---|---|
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
[[RET=]body] |
Задает тело цикла внутри простого тэга - выражение, вычисляемое на каждом шаге цикла и добавляемое к результату предыдущих шагов. Без атрибута ожидается в позиции последнего аргумента. Опциональный. |
[complex-body] |
Задает тело цикла внутри сложного тэга - выражение, вычисляемое на каждом шаге цикла и добавляемое к результату предыдущих шагов. Опциональный. |
Описание
В теле цикла поочередно устанавливает текущими объекты - дескрипторы всех пользовательских классов БД dbname или текущей, по умолчанию.
С атрибутом RET, или без него последним аргументом, тело цикла body может быть указано внутри простого тега в функциональном стиле.
В случае успеха возвращает объединенный результат вычислений для каждой итерации тела цикла, если оно указано, сначала внутри простого тега, затем внутри сложного тега.
Пример
Выводим имена всех пользовательских классов БД "AIS.ab".
<#FORCLASSES D=((XBASE)"Test\AIS.ab") RET="<br>"> <#NAME> <#/>
См. также: Операторы цикла, Составные примитивы (операторы),
Параметры | Описание |
---|---|
[[RET=]body] |
Задает тело оператора внутри простого тэга - выражение, вычисляемое на каждом шаге цикла и добавляемое к результату предыдущих шагов. Без атрибута ожидается в позиции 2. Опциональный. |
[complex-body] |
Задает тело оператора внутри сложного тэга - выражение, вычисляемое на каждом шаге цикла и добавляемое к результату предыдущих шагов. Опциональный. |
Описание
В теле body устанавливает текущей указанную БД dbname.
С атрибутом RET, или без него последним аргументом, тело body может быть указано внутри простого тега в функциональном стиле.
В случае успеха возвращает объединенный результат вычисления тела body, если оно указано, внутри простого тега, затем внутри сложного тега.
Пример
<#FORDB D=(NewDB)> <#HS_Act F="NewHelp" New_N=(New_N) New_C="DeveloperMan" New_N1=(New_N1) New_N2=(New_N2)> <#_LINK AN=(APartOf) O1=(OBJ "AssocCreation" "DeveloperMan") O2=(RESULT)> <#/>
См. также: Составные примитивы (операторы),
Параметры | Описание |
---|---|
[[AN=]aspect-name] |
Задает исходный аспект именем. Без атрибута ожидается в позиции 1. По умолчанию используется текущий аспект. |
[A=aspect] |
Задает исходный аспект числовым идентификатором. По умолчанию используется текущий аспект. |
[N=object-name] |
Задает исходный объект именем. По умолчанию используется текущий объект. |
[C=class-name] |
Задает исходный объект именем класса. По умолчанию используется текущий объект. |
[O=object] |
Задает исходный объект числовым идентификатором. По умолчанию используется текущий объект. |
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
[TO=target-aspect-name] |
Задает целевой аспект именем. По умолчанию используется целевой аспект альтернативный исходному. Для многоместных аспектов объекта целевой аспект необходимо задавать явно. |
[POS=segment-start] |
Задает начало сегмента итераций Опциональный. |
[NUM=segment-size] |
Задает размер сегмента итераций. Опциональный. |
[INIT=initialization] |
Задает выражение вычисляющееся один раз перед циклом. Опциональный. |
[FROM=begin-condition] |
Задает выражение, которое вычисляется перед всеми шагами внутри интервала. Пока не станет истиной, интервал исполнения не начинается. Потом уже не вычисляется. Опциональный. |
[FROMOBJ=begin-obj] |
Задает числовой идентификатор целевого объекта в списке по аспекту, не достигнув которого, тело цикла не вычисляется. Опциональный. |
[IF=step-condition] |
Задает выражение, которое вычисляется непосредственно перед шагом. Если возвращает пусто шаг пропускается. Опциональный. |
[BY=step] |
Задает шаг цикла. Если BY=2, то исполняется только каждый второй в пределах интервала. Опциональный. |
[ITER=iteration] |
Задает выражение, которое вычисляется после шага, что возвращает безразлично. Опциональный. |
[UNTIL=until-condition] |
Задает выражение-условие, которое вычисляется после каждого шага. Если возвращает НЕ-пусто выход из цикла. Опциональный. |
[WHILE=while-condition] |
Задает выражение-условие, которое вычисляется перед шагом. Если возвращает пусто - выход из цикла. Опциональный. |
[[RET=]body] |
Задает тело цикла внутри простого тэга - выражение, вычисляемое на каждом шаге цикла и добавляемое к результату предыдущих шагов Без атрибута ожидается в позиции последнего аргумента. Опциональный. |
[complex-body] |
Задает тело цикла внутри сложного тэга - выражение, вычисляемое на каждом шаге цикла и добавляемое к результату предыдущих шагов Опциональный. |
Описание
Поочередно перебирает все связи указанного объекта по исходному аспекту. В теле цикла, внутри сегмента итераций, устанавливает текущим объект, участвующий в очередной связи по целевому аспекту. Для бинарных связей целевым аспектом является аспект, альтернативный исходному. Таким образом, в теле цикла поочередно для каждой связи итерации устанавливает текущими объекты - значения атрибута указанного объекта.
Итерации не начинаются (не вычисляется тело цикла), если:
Итерации заканчиваются, если:
Очередной шаг пропускается (тело цикла не вычисляется), если выражение, указанное с атрибутом IF принимает значение 'ложь' (пусто).
Сегмент итераций может быть задан с атрибутом POS позицией segment-start первой связи, начиная с единицы и, с атрибутом NUM, размером segment-size. По умолчанию POS=1 - сканирование начинается с первой наличной связи. По умолчанию NUM сканируются все наличные связи начиная с указанной в POS позиции.
Если с атрибутом BY=step указан шаг итераций, то внутри сегмента пропускаются step-1 связь (берется каждая step связь, начиная с POS)
С атрибутом INIT может быть указано выражение, которое вычисляется один раз перед началом цикла, вычисленное значение добавляется к общему результату оператора перед результатом вычислений тела цикла.
С атрибутом ITER может быть указано выражение, которое вычисляется на каждом шаге итераций, не влияет на результат оператора.
P>Целевой аспект может быть указан с атрибутом TO своим именем target-aspect-name. Если целевой аспект не указан, и по умолчанию, используется целевой аспект, альтернативный исходному. Для бинарных аспектов достаточно указать исходный аспект, для многоместных аспектов необходимо задавать целевой аспект.Объект может быть указан с атрибутом O числовым идентификатором object либо с атрибутом N своим именем object-name и с атрибутом C именем своего класса class-name. По умолчанию используется текущий объект.
Если с атрибутом D указана БД dbname, отличная от текущей, то необходимо явно указывать аспект и объект. По умолчанию используется текущая БД.
С атрибутом RET, или без него, последним аргументом, тело цикла body может быть указано внутри простого тега в функциональном стиле.
В случае успеха возвращает объединенный результат вычислений тела цикла на каждом шаге итераций, сначала внутри простого тега, затем внутри сложного тега.
Пример
Выводим список увлечений конкретной личности.
<#FOREACH AN="увлеч\увлечения" N="Иванов ИИ" C="Личность" D=((XBASE)"Test\AIS.ab")> <#NAME> <#>
Параметры | Описание |
---|---|
[[AN=]aspect-name] |
Задает исходный аспект именем. Без атрибута ожидается в позиции 1. По умолчанию используется текущий аспект. |
[A=aspect] |
Задает исходный аспект числовым идентификатором. По умолчанию используется текущий аспект. |
[N=object-name] |
Задает исходный объект именем. По умолчанию используется текущий объект. |
[C=class-name] |
Задает исходный объект именем класса. По умолчанию используется текущий объект. |
[O=object] |
Задает исходный объект числовым идентификатором. По умолчанию используется текущий объект. |
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
[POS=segment-start] |
Задает начало сегмента итераций. Опциональный. |
[NUM=segment-size] |
Задает размер сегмента итераций. Опциональный. |
[INIT=initialization] |
Задает выражение вычисляющееся один раз перед циклом. Опциональный. |
[FROM=begin-condition] |
Задает выражение, которое вычисляется перед всеми шагами внутри интервала. Пока не станет истиной, интервал исполнения не начинается. Потом уже не вычисляется. Опциональный. |
[FROMOBJ=begin-obj] |
Задает числовой идентификатор целевого объекта в списке по аспекту, не достигнув которого, тело цикла не вычисляется. Опциональный. |
[IF=step-condition] |
Задает выражение, которое вычисляется непосредственно перед шагом. Если возвращает пусто шаг пропускается. Опциональный. |
[BY=step-size] |
Задает шаг цикла. Если step-size=2, то исполняется только каждый второй в пределах интервала. Опциональный. |
[ITER=iteration] |
Задает выражение, которое вычисляется после шага, что возвращает безразлично. Опциональный. |
[UNTIL=until-condition] |
Задает выражение-условие, которое вычисляется после каждого шага. Если возвращает НЕ-пусто выход из цикла. Опциональный. |
[WHILE=while-condition] |
Задает выражение-условие, которое вычисляется перед шагом. Если возвращает пусто - выход из цикла. Опциональный. |
[[RET=]body] |
Задает тело цикла внутри простого тэга - выражение, вычисляемое на каждом шаге цикла и добавляемое к результату предыдущих шагов Без атрибута ожидается в позиции последнего аргумента. Опциональный. |
[complex-body] |
Задает тело цикла внутри сложного тэга - выражение, вычисляемое на каждом шаге цикла и добавляемое к результату предыдущих шагов. Опциональный. |
Описание
Поочередно перебирает все связи указанного объекта по исходному аспекту. В теле цикла, для каждой связи внутри сегмента итераций устанавливает текущими указанные объект и исходный аспект.
Итерации не начинаются (не вычисляется тело цикла), если:
Итерации заканчиваются, если:
Очередной шаг пропускается (тело цикла не вычисляется), если выражение, указанное с атрибутом IF принимает значение 'ложь' (пусто).
Сегмент итераций может быть задан с атрибутом POS позицией segment-start первой связи, начиная с единицы и, с атрибутом NUM, размером segment-size. По умолчанию POS=1 - сканирование начинается с первой наличной связи. По умолчанию NUM сканируются все наличные связи начиная с указанной в POS позиции.
Если с атрибутом BY=step указан шаг итераций, то внутри сегмента пропускаются step-1 связь (берется каждая step связь, начиная с POS)
С атрибутом INIT может быть указано выражение, которое вычисляется один раз перед началом цикла, вычисленное значение добавляется к общему результату оператора перед результатом вычислений тела цикла.
С атрибутом ITER может быть указано выражение, которое вычисляется на каждом шаге итераций, не влияет на результат оператора.
Исходный аспект может быть указан числовым идентификатором aspect или своим именем aspect-name, без атрибута AN ожидается в качестве первого аргумента. По умолчанию в качестве исходного аспекта используется текущий.
Объект может быть указан с атрибутом O числовым идентификатором object либо с атрибутом N своим именем object-name и с атрибутом C именем своего класса class-name. По умолчанию используется текущий объект.
Если с атрибутом D указана БД dbname, отличная от текущей, то необходимо явно указывать аспект и объект. По умолчанию используется текущая БД.
С атрибутом RET, или без него, последним аргументом, тело цикла body может быть указано внутри простого тега в функциональном стиле.
В случае успеха возвращает объединенный результат вычислений тела цикла на каждом шаге итераций, сначала внутри простого тега, затем внутри сложного тега.
Пример
<#FORASP AN="уч-ст\ученая степень" N="Иванов ИИ" C="Личность" D=((XBASE)"Test\AIS.ab")> <#NAME> (<#ASP AN="фио\ФИО" ТО="фио\ФИО для">) <#ASP AN="уч-зв\ученое звание" TO="уч-зв\об-ты уч-зв"> <#ASP TO="уч-ст\об-ты уч-ст"> <#ASP TO="уч-ст\область наук"> <#/>
См. также: Операторы цикла, Составные примитивы (операторы),
Параметры | Описание |
---|---|
[[AN=]aspect-name] |
Задает исходный аспект именем. Без атрибута ожидается в позиции 1. По умолчанию используется текущий аспект. |
[A=aspect] |
Задает исходный аспект числовым идентификатором. По умолчанию используется текущий аспект. |
[[N=]object-name] |
Задает исходный объект именем. Без атрибута ожидается в позиции 2. По умолчанию используется текущий объект. |
[[C=]class-name] |
Задает исходный объект именем класса. Без атрибута ожидается в позиции 3. По умолчанию используется текущий объект. |
[O=object] |
Задает исходный объект числовым идентификатором. По умолчанию используется текущий объект. |
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
[LABEL=label] |
Задает название кнопки подтверждения внесенных изменений. По умолчанию 'LABEL=OK'. |
[ROWS=rows] |
Задает количество строк в форме ввода для тэга 'TEXTAREA' (атрибут ROWS=rows). Опциональный. |
[COLS=cols] |
Задает количество столбцов в форме ввода для тэга 'TEXTAREA' (атрибут COLS=cols). По умолчанию IE устанавливает стандартную ширину. |
[SIZE=size] |
Задает количество столбцов в форме ввода для тэгов 'INPUT TYPE=TEXT' (атрибут SIZE=size)/'TEXTAREA' (атрибут COLS=size). По умолчанию IE устанавливает стандартную ширину. |
[OTHER=other] |
Задает другие атрибуты для тэгов 'INPUT TYPE=TEXT'/'TEXTAREA'. Опциональный. |
Описание
Генерирует форму редактирования значения аспекта заданного объекта с кнопкой подтверждения внесенных изменений, в общем виде:
<form name='Fobject_aspect' method='post'
action='ab://ab/D=dbname&O=object&A=aspect&M=method&POS=1'>
<input type='hidden' name='ACT ' value={'_EDIT' | '_TEXT'}>
<input type='hidden' name='O' value='object'> <input
type='hidden' name='A' value='aspect'>
{<input type='text'
name='_VAL' [size='size'] [other] value='value'> |
<textarea name='_VAL' [rows='rows'] [cols={'cols' |
'size'}] [other]> [value] </textarea>}
<input type='submit' value={'label' | 'OK!'}>
</form>
где: method-метод формирующий текущую страницу; value-значение аспекта объекта БД dbname.
По нажатию кнопки подтверждения, выполняется одно из действий _EDIT или _TEXT. Затем вызывается метод, формирующий текущую страницу (&M=method).
Если установлен аспект (текущий или указанный), выполняется действие (&ACT=) _EDIT _VAL=value, иначе выполняется действие (&ACT=)_TEXT _VAL=value.
Исходный аспект может быть указан числовым идентификатором aspect или своим именем aspect-name, без атрибута 'AN=' ожидается в качестве первого аргумента.
Объект может быть указан числовым идентификатором object или своим именем object-name и именем своего класса class-name, без атрибутов N,C, ожидается в качестве второго и третьего аргумента.
По умолчанию используется текущий аспект текущего объекта текущей БД.
Если указана БД dbname, отличная от текущей, необходимо явно указывать объект и аспект.
Если указаны ROWS или COLS, то формируется тег TEXTAREA для редактирования значения аспекта value с указанным количеством строк rows. <textarea name='_VAL' [rows='rows'] [cols={'cols' | 'size'}] [other]> [value] </textarea> Если rows отрицательный, либо нулевой, либо не указан, то по умолчанию rows=3 (три строки). Ширина области редактирования текста устанавливается либо в columns, если COLS указан, либо в size, если SIZE указан. По умолчанию IE устанавливает стандартную ширину.
Если не указаны атрибуты ROWS и COLS, генерирует однострочное поле ввода с шириной size, если SIZE указан. <input type='text' name='_VAL' [size='size'] [other] value='value'> По умолчанию IE устанавливает стандартную ширину. Другие параметры формы ввода задаются аргументом other. ('disabled','maxlength=').
Аргументом label устанавливается название кнопки подтверждения По умолчанию LABEL='OK!'.
В случае успеха возвращает сформированный тег FORM (форму редактирования значения атрибута), иначе пусто.
Пример
Выводим форму редактирования ученой степени для личности Иванов ИИ.
<br>Ученая степень: <#FORMEDIT AN="уч-ст\ученая степень" N="Иванов ИИ" C="Личность" D=((XBASE)"Test\AIS.ab") LABEL="Изменить">
См. также: Обращение к БД через HTML-форму,
Параметры | Описание |
---|---|
[[N=]object-name] |
Задает исходный объект именем. Без атрибута ожидается в позиции 1. По умолчанию используется текущий объект. |
[[C=]class-name] |
Задает исходный объект именем класса. Без атрибута ожидается в позиции 2. По умолчанию используется текущий объект. |
[O=object] |
Задает исходный объект числовым идентификатором. По умолчанию используется текущий объект. |
[[RET=]body] |
Задает тело цикла внутри простого тэга - выражение, вычисляемое на каждом шаге цикла и добавляемое к результату предыдущих шагов. Без атрибута ожидается в позиции последнего аргумента. Опциональный. |
[complex-body] |
Задает тело цикла внутри сложного тэга - выражение, вычисляемое на каждом шаге цикла и добавляемое к результату предыдущих шагов. Опциональный. |
Описание
В теле цикла поочередно устанавливает текущими все непустые аспекты объекта (имеющие хотя бы одну связь по аспекту объекта).
Объект может быть указан своим именем object-name и именем своего класса class-name, без атрибутов N,C, ожидается в качестве первого и второго аргументов. По умолчанию используется текущий объект текущей БД.
С атрибутом RET, или без него последним аргументом, тело цикла body может быть указано внутри простого тега в функциональном стиле.
В случае успеха возвращает объединенный результат вычислений на каждом шаге тела цикла, если оно указано, сначала внутри простого тега, затем внутри сложного тега.
Пример
<#FOROBJ (OBJ N="Иванов ИИ" C="Личность") D=((XBASE)"Test\AIS.ab")> <#FORNEMPASP RET="<br>"> <#NAME> <#/> </#>
См. также: Операторы цикла, Составные примитивы (операторы),
Параметры | Описание |
---|---|
[[O=]object] |
Задает исходный объект числовым идентификатором. Без атрибута ожидается в позиции 1. По умолчанию используется текущий объект. |
[AN=aspect-name] |
Задает исходный аспект именем. По умолчанию используется текущий аспект. |
[A=aspect] |
Задает исходный аспект числовым идентификатором. По умолчанию используется текущий аспект. |
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
[[RET=]body] |
Задает тело цикла внутри простого тэга - выражение, вычисляемое на каждом шаге цикла и добавляемое к результату предыдущих шагов. Без атрибута ожидается в позиции последнего аргумента. Опциональный. |
[complex-body] |
Задает тело цикла внутри сложного тэга - выражение, вычисляемое на каждом шаге цикла и добавляемое к результату предыдущих шагов. Опциональный. |
Описание
В теле оператора устанавливает текущим объект и аспект.
Если указана БД dbname, отличная от текущей, то необходимо явно указывать объект и аспект. По умолчанию используется текущая БД.
Объект может быть указан числовым идентификатором object, без атрибута O ожидается в качестве первого аргумента. По умолчанию используется текущий объект.
Аспект может быть указан числовым идентификатором aspect или своим именем aspect-name.
С атрибутом RET, или без него последним аргументом, тело body может быть указано внутри простого тега в функциональном стиле.
В случае успеха возвращает объединенный результат вычисленного тела оператора, если оно указано, сначала внутри простого тега, затем внутри сложного тега.
Пример
Выводим в виде таблицы свойства класса Names БД "MyDB.ab".
<#FOROBJ O=(OBJ N="Names" C="CLASS") D="MyDB.ab" RET="<hr>")> <#OBJFORM> <#/>
См. также: Составные примитивы (операторы),
Параметры | Описание |
---|---|
function-name |
Задает имя функции. Ожидается в позиции 1. |
function-body |
Задает тело функции. Ожидается в позиции 2. |
Описание
Объявляет функции с именем function-name и телом функции function-body.
Ничего не возвращает.
Пример
<#FUNC HelpTitle=(PARAM O;PARAM O=(OBJ);ASPECT(ATitle) O=(O)|(NAME(O))) HelpText=(PARAM O;PARAM O=(OBJ);ASPECT(AText) O=(O)) >
Параметры | Описание |
---|---|
numeric-source |
Задает исходное число для операции сравнения с образцом Ожидается в позиции 1. |
numeric-pattern |
Задает образец число для операции сравнения с исходным числом. Ожидается в позиции 2. |
[onmatch-action] |
Задает действие, выполняющееся при совпадении исходного числа с образцом. Ожидается в позиции 3. Опциональный. |
[default-action] |
Задает действие, выполняющееся при несовпадении образцов с исходным числом. Ожидается в позиции последнего аргумента. Опциональный. |
Описание
Последовательно производит числовое сравнение 'больше или равно' значения первого аргумента numberic-source со значением четных аргументов numberic-pattern. Нечисловые значения исходного выражения или образца заменяются нулем (0). Если найден аргумент numberic-pattern, удовлетворяющий условию сравнения, выполняется единственное действие onmatch-action. В случае неуспеха операции сравнения, выполняется действие default-action.
Возвращает либо результат выполненного действия, если оно указано, либо непустое значение (символ 'пробел'), если указаны всего два аргумента и результат сравнения - истина, либо пусто.
Пример
Функция WaterTemp возвращает словесное описание температуры воды.
<#FUNC WaterTemp=(PARAM t; (GE(t) 100 "кипяток" 80 "очень горячая" 50 "горячая" 30 "теплая" 0 "холодная" "лед" ) ) >
См. также: Операции сравнения,
Параметры | Описание |
---|---|
global-var-name |
Задает имя глобальной переменной для присваивания нового значения. Ожидается в позиции 1. |
value |
Задает новое значение, присваиваемое глобальной переменной. Ожидается в позиции 2. |
Описание
Присваивает глобальным переменным global-var-name вычисленного значения аргумента value. Аргумент value может быть выражением или константой.
Ничего не возвращает.
Пример
<#GLOB GLB_EditMode="Y" GLB_DB=(DBASE) >
Параметры | Описание |
---|---|
[[NUM=]index] |
Задает элемент глобального массива позиционным индексом. Опциональный. Промежуточный. |
[[KEY=]name] |
Задает элемент глобального массива именным индексом. Опциональный. Промежуточный. |
[[KEY=]{# | #L}] |
Возвращает размер списка указанного элемента массива. Опциональный. Ожидается последним параметром. |
[[KEY=]#C] |
Возвращает размер в байтах указанного элемента массива. Опциональный. Ожидается последним параметром. |
[LINES=index] |
Возвращает размер списка указанного позиционным индексом элемента массива. Опциональный. Ожидается последним параметром. |
[LINES=name] |
Возвращает размер списка указанного именным индексом элемента массива. Опциональный. Ожидается последним параметром. |
[SIZE=index] |
Возвращает размер в байтах указанного позиционным индексом элемента массива. Опциональный. Ожидается последним параметром. |
[SIZE=name] |
Возвращает размер в байтах указанного именным индексом элемента массива. Опциональный. Ожидается последним параметром. |
[HAS=name] |
Проверяет наличие элемента массива с указанным именным индексом. Опциональный. Ожидается последним параметром. |
[DEL=index] |
Удаляет элемент массива указанного позиционным индексом. Опциональный. Ожидается последним параметром. |
[DEL=name] |
Удаляет элемент массива указанного именным индексом. Опциональный. Ожидается последним параметром. |
[PUT=value] |
Присваивает новое значение указанному элементу массива. Опциональный. Ожидается последним параметром. |
[APP=value] |
Добавляет новое значение к значению указанного элемента массива. Опциональный. Ожидается последним параметром. |
Описание
В зависимости от параметров производит различные операции с глобальными переменными.
Глобальные переменные представляют собой элементы самого верхнего уровня массива глобальных переменных. где именам глобальных переменных соответствуют именные индексы, а значениям - значения глобальных переменных.
Для доступа к значению глобальной переменной или внутренней структуре переменной используется цепочка индексных параметров.
Пример
Выводим значения полей FIO из глобального массива GLB_Array
<#FOR(i=1)(LT(i)(N))(ADD i 1) ((i)". "(GLOBALS GLB_Array (i) KEY="FIO")" "\) >
См. также: Операции с массивами,
Параметры | Описание |
---|---|
numeric-source |
Задает исходное число для операции сравнения с образцом. Ожидается в позиции 1. |
numeric-pattern |
Задает образец число для операции сравнения с исходным числом. Ожидается в позиции 2. |
[onmatch-action] |
Задает действие, выполняющееся при совпадении исходного числа с образцом. Ожидается в позиции 3. Опциональный. |
[default-action] |
Задает действие, выполняющееся при несовпадении образцов с исходным числом. Ожидается в позиции последнего аргумента. Опциональный. |
Описание
Последовательно производит числовое сравнение 'больше' значения первого аргумента numberic-source со значением четных аргументов numberic-pattern. Нечисловые значения исходного выражения или образца заменяются нулем (0). Если найден аргумент numberic-pattern, удовлетворяющий условию сравнения, выполняется единственное действие onmatch-action. В случае неуспеха операции сравнения, выполняется действие default-action.
Возвращает либо результат выполненного действия, если оно указано, либо непустое значение (символ 'пробел'), если указаны всего два аргумента и результат сравнения - истина, либо пусто.
Пример
Функция iref возвращает в виде гифа ссылку на объект.
<#FUNC iref=(PARAM gif O hint;PARAM O=(OBJ); (GT(O) 0 (REFER PAGE O=(O) ATAG=("title='"(hint|HelpTitle(O))"'") (img(gif) ("alt='"(hint|HelpTitle(O))"' align='middle'")) ) (img(gif) "style='FILTER: alpha(opacity=40)' align='middle'") ) ) >
См. также: Операции сравнения,
Параметры | Описание |
---|---|
[[M=]method] |
Задает метод, формирующий целевую страницу ссылки. Без атрибута ожидается в позиции 1. По умолчанию (нет ни M ни ACT) принимается: M=_HOME если не указана БД (D=) или если БД указана, но не указан объект, то M=_ROOT, а если объект указан, то M=PAGE. |
[ACT=action] |
Задает действие, выполняемое при переходе по ссылке. По умолчанию формирует навигационный запрос. |
[N=object-name] |
Задает исходный объект именем. По умолчанию используется текущий объект. |
[C=class-name] |
Задает исходный объект именем своего класса. По умолчанию используется текущий объект. |
[O=object] |
Задает исходный объект числовым идентификатором. По умолчанию используется текущий объект. |
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
[ATAG=atag] |
Задает дополнительные атрибуты A-тэга. Опциональный. |
[Custom=expression] |
Задает любые именованные параметры для передачи формирующему страницу методу. (например, начальную позицию сегмента итераций и размер сегмента итераций: POS=segment-start NUM=size). Опциональный. |
[reference-image] |
Задает явно изображение ссылки внутри сложного тега. Опциональный. |
Описание
Формирует полную ссылку на объект БД или изображение его значения (A-тег), в общем виде:
<a href='ab://ab/[&D=dbname] [&O=object] [&N=object-name&C=class-name] [&M=method] [&ACT=action] [&POS=segment-start] [&NUM=size] [{¶meters}*] ' [atag] < [reference-image] </a>.
Значение атрибута 'href=' A-тега формируется аналогично URL/_HREF.
Могут быть указаны любые именованные параметры Custom=expression, которые будут включены в ссылку для передачи параметров обрабатывающему методу. В их числе могут быть NUM, POS, определяющие сегмент итераций по умолчанию в циклах обрабатывающего метода.
С атрибутом ATAG могут быть указаны дополнительные параметры A-тега. (name=, id=, frame=, title=, methods=, accesskey= ... ). По умолчанию формируется атрибут 'title=' A-тэга, дублирующий текст 'href=' ссылки.
Изображение ссылки reference-image внутри сложного тега вычисляется для указанного, или, по умолчанию, для текущего объекта.
Возвращает в случае успеха сформированный таким образом A-тег ( изображение/ссылку), иначе пусто.
Пример
Пункт меню для сохранения БД целиком.
<#HREF ACT="_SAVE" ATAG="title='Сохранение изменений внесённых в БД'"> Сохранить <#/>
См. также: Обращение к БД через HTML-ссылку, Составные примитивы (операторы),
Параметры | Описание |
---|---|
condition |
Задает выражение - условие. Ожидается в позиции 1. |
[then-body] |
Задает тело внутри простого тэга, выполняемое при непустом значении выражения в условии. Ожидается в позиции 2. Опциональный. |
[else-body] |
Задает тело внутри простого тэга, выполняемое при пустом значении выражения в условии. Ожидается в позиции 3. Опциональный. |
[complex-then-body] |
Задает тело внутри сложного тэга, выполняемое при непустом значении выражения в условии. Опциональный. |
[complex-else-body] |
Задает тело внутри сложного тэга, выполняемое при пустом значении выражения в условии. Опциональный. |
Описание
При выполнении условия (непустом значении первого аргумента) condition выполняет блок then-body, иначе выполняет блок else-body.
Тело then-body и else-body могут быть указаны вторым и третьим аргументами внутри простого тега.
Возвращает объединенный результат вычисления тела then-body либо else-body, сначала внутри простого тега, затем внутри сложного тега.
Пример
<#IF (FILEEXIST "MyDB.ab") (OPEN D="MyDB.ab")> <br>Текщая БД: <#DBASE> <#ELSE> <#ERROR "Файл не найден"> <#/>
См. также: Условные операторы, Составные примитивы (операторы),
Параметры | Описание |
---|---|
condition |
Задает выражение - условие. Ожидается в позиции 1. |
[then-body] |
Задает тело внутри простого тэга, выполняемое при пустом значении выражения в условии. Ожидается в позиции 2. Опциональный. |
[else-body] |
Задает тело внутри простого тэга, выполняемое при непустом значении выражения в условии. Ожидается в позиции 3. Опциональный. |
[complex-then-body] |
Задает тело внутри сложного тэга, выполняемое при пустом значении выражения в условии. Опциональный. |
[complex-else-body] |
Задает тело внутри сложного тэга, выполняемое при непустом значении выражения в условии. Опциональный. |
Описание
При невыполнении условия (пустом значении первого аргумента) condition выполняет блок then-body, иначе выполняет блок else-body.
Тело then-body и else-body могут быть указаны вторым и третьим аргументами внутри простого тега.
Возвращает объединенный результат вычисления тела then-body либо else-body, сначала внутри простого тега, затем внутри сложного тега.
Пример
Обработка результата
Функция DeLink_Result удаляет указанную связь. В случае неуспеха возвращает текст ошибки.
<#GLOB DeLink_Result=( IFNOT(_DELK D=(D) R=(R) O1=(O1) O2=(O2) ) ("Связь типа" (R) " между " (NAME(O1)) " и " (NAME(O2)) " не удалена/не найдена." ) ) >
См. также: Условные операторы, Составные примитивы (операторы),
Параметры | Описание |
---|---|
source |
Задает исходное выражение строку для сравнения. Ожидается в позиции 1. |
pattern |
Задает образец для сравнения. Ожидается в позиции 2. |
[onmatch-action] |
Задает действие, выполняемое при успехе операции сравнения исходной строки с образцом. Ожидается в позиции 3. Опциональный. |
[default-action] |
Задает действие, выполняемое при неуспехе операции сравнения с образцами. Ожидается в позиции последнего аргумента. Опциональный. |
Описание
Последовательно производит строковое сравнение 'равно' значения первого аргумента source со значением четных аргументов pattern. Если найден аргумент pattern, удовлетворяющий условию сравнения, выполняется единственное действие onmatch-action. В случае неуспеха операции сравнения, выполняется действие default-action.
Возвращает либо результат выполненного действия, если оно указано, либо непустое значение (символ 'пробел'), если указаны всего два аргумента и результат сравнения - истина, либо пусто.
Пример
Функция ModeEdit возвращает непусто ("Y"), если включен режим редактирования.
<#FUNC ModeEdit=(IS(GLB_Edit_Mode) "YES" "Y" "OK" "Y" ) >
См. также: Операции сравнения,
Описание
Получает имя ключа на очередном шаге внутри тела цикла SCAN при типе сканирования AS=REC и AS=NAMES.
Возвращает имя ключа, сканированное на очередном шаге цикла SCAN.
Пример
Функция Globs_Save cохраняет в файле глобальные переменные с непустым атрибутом "SAV" в значении переменной.
<#FUNC Globs_Save=( FILE REC=Globs PATH=(Globs_Path) SIZE=(GLOBALS #C); SCAN TEXT=(GLOBALS) AS=REC (COND(FILE Globs KEY=(KEY) KEY=SAV) //Если есть элемент с непустым атрибутом SAV (FILE Globs (KEY) VAL PUT=(VALUE)); // то сохраняем ); FILE CLOSE=Globs; ) >
Параметры | Описание |
---|---|
numeric-source |
Задает исходное число для операции сравнения с образцом. Ожидается в позиции 1. |
numeric-pattern |
Задает образец число для операции сравнения с исходным числом. Ожидается в позиции 2. |
[onmatch-action] |
Задает действие, выполняющееся при совпадении исходного числа с образцом. Ожидается в позиции 3. Опциональный. |
[default-action] |
Задает действие, выполняющееся при несовпадении образцов с исходным числом. Ожидается в позиции последнего аргумента. Опциональный. |
Описание
Последовательно производит числовое сравнение 'меньше или равно' значения первого аргумента numberic-source со значением четных аргументов numberic-pattern. Нечисловые значения исходного выражения или образца заменяются нулем (0). Если найден аргумент numberic-pattern, удовлетворяющий условию сравнения, выполняется единственное действие onmatch-action. В случае неуспеха операции сравнения, выполняется действие default-action.
Возвращает либо результат выполненного действия, если оно указано, либо непустое значение (символ 'пробел'), если указаны всего два аргумента и результат сравнения - истина, либо пусто.
Пример
Функция Time возвращает название времени суток.
<#FUNC Time=(PARAM hour; LE(hour) 4 "ночь" 6 "раннее утро" 11 "утро" 13 "полдень" 17 "день" 23 "вечер" "ночь" ) >
См. также: Операции сравнения,
Параметры | Описание |
---|---|
expression |
Задает исходную строку для получения ее длины. Ожидается в позиции 1. |
Описание
Возвращает длину строки expression.
Пример
Функция возвращает максимальную длину строки текста text.
<#FUNC TextWidth=(PARAM text; SCAN TEXT=(text) AS=LINES (len=(LEN(VALUE)) maxlen=(GT(len)(maxlen)(len)) ) (maxlen) ) >
См. также: Строчные операции,
Параметры | Описание |
---|---|
[[TEXT=]list-item] |
Задает очередной элемент формируемого списка. Текст указанного значения упаковывается в одноэлементный массив перед вставкой в формируемый список. Опциональный. |
[LIST=list] |
Задает готовый список для вставки в формируемый список. Опциональный. |
Описание
Создает списочный массив.
Очередным аргументом или атрибутом TEXT может быть указан очередной элемент формируемого списочного массива. Текст указанного значения упаковывается в одну строку и добавляется в список как один элемент массива.
Атрибутом LIST может быть задан другой списочный массив, который подключается в формируемый список без предварительной упаковки (1:1). Каждая строка текста указанного значения подключается как отдельный элемент списочного массива.
Возвращает собранный таким образом текст списочного массива.
Пример
<#SET text=(TEXT "Васин ВВ"\"Константинов КК"\"Гаврилов ГГ") list1=(LIST "Иванов ИИ" "Петров ПП") list2=(LIST "Сидоров СС" LIST=(list1)) list3=(LIST LIST=(list2) TEXT=(text)) >
См. также: Операции с массивами,
Параметры | Описание |
---|---|
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
FILE=file-name |
Задает путь к файлу содержащему DDL-код для загрузки. |
[SHOW=Y] |
Выводит диалог отображения процесса загрузки DDL-кода с кнопками остановки, продолжения и отмены загрузки. Опциональный. Дополнительный параметр для FILE. |
TEXT=ddl-code |
Задает текст DDL-кода для загрузки. |
Описание
Загружает текст кода DDL ddl-code или из файла file-name в БД dbname или, по умолчанию, в текущую.
С ключом SHOW=Y выводится окно, в котором отображается процесс загрузки в БД текста DDL-кода из указанного файла file-name и кнопками завершения приостановки и продолжения процесса загрузки. По завершению загрузки окно автоматически закрывается.
В случае успеха возвращает имя файла file-name без изменений, если текст кода DDL был загружен из файла, непустое значение (символ 'пробел'), если загружен текст кода ddl-code, иначе пусто.
Пример
Догружаем из файла "C:\Abrial\Bases\MyDataBase.ab" DDL-код в текущую БД, отображаем процесс загрузки.
<#LOAD FILE="C:\Abrial\Bases\MyDataBase.ab" SHOW=Y>
См. также: Операции со всей базой данных,
Параметры | Описание |
---|---|
[[NUM=]index] |
Задает элемента массива позиционным индексом. Опциональный. Промежуточный. |
[[KEY=]name] |
Задает элемент массива именным индексом. Опциональный. Промежуточный. |
[[KEY=]{#|#L}] |
Возвращает размера списка в значении массива или указанного элемента массива. Опциональный. Ожидается последним параметром. |
[[KEY=]#C] |
Возвращает размер в байтах значения массива или указанного элемента массива. Опциональный. Ожидается последним параметром. |
[LINES=index] |
Возвращает длину списка указанного позиционным индексом элемента массива. Опциональный. Ожидается последним параметром. |
[LINES=name] |
Возвращает длину списка указанного именным индексом элемента массива. Опциональный. Ожидается последним параметром. |
[SIZE=index] |
Возвращает размер в байтах значения указанного позиционным индексом элемента массива. Опциональный. Ожидается последним параметром. |
[SIZE=name] |
Возвращает размер в байтах значения указанного именным индексом элемента массива. Опциональный. Ожидается последним параметром. |
[HAS=name] |
Проверяет наличие элемента массива с указанным именным индексом. Опциональный. Ожидается последним параметром. |
[DEL=index] |
Удаляет элемент массива с указанным позиционным индексом. Опциональный. Ожидается последним параметром. |
[DEL=name] |
Удаляет элемент массива с указанным именным индексом. Опциональный. Ожидается последним параметром. |
[PUT=value] |
Присваивает новое значение массива или указанного элемента массива. Опциональный. Ожидается последним параметром. |
[APP=value] |
Добавляет новое значение к значению массива или указанного элемента массива. Опциональный. Ожидается последним параметром. |
Описание
Производит различные операции с локальными переменными в зависимости от указанных параметров.
Локальные переменные представляют собой элементы самого верхнего уровня массива локальных переменных. где именам локальных переменных соответствуют именные индексы, а значениям - значения локальных переменных.
Для доступа к значению локальной переменной или внутренней структуре переменной используется цепочка индексных параметров.
Пример
Функция упорядочивания подразделов хэлпа по заголовку.
<#FUNC SortByNick=(PARAM O; PARAM O=(OBJ); List=(CONV SORT=(FORALLOBJ(AParts) O=(O) ("Nick="(HelpTitle)" O1="(OBJ)\))); FOR(i=1 sz=(ASPSIZE(AParts) O=(O)))(LE(i)(sz))(ADD i 1) (nxtobj=(LOCALS List (i) "O1") dlkres=(_DELK R=PartOf O1=(nxtobj) O2=(O)) lnkres=(_LINK R=PartOf O1=(nxtobj) O2=(O)) ) (dlkres)&(lnkres) ) >
См. также: Операции с массивами,
Параметры | Описание |
---|---|
numeric-source |
Задает исходное число для операции сравнения с образцом. Ожидается в позиции 1. |
numeric-pattern |
Задает образец число для операции сравнения с исходным числом. Ожидается в позиции 2. |
onmatch-action |
Задает действие, выполняющееся при совпадении исходного числа с образцом Ожидается в позиции 3. |
default-action |
Задает действие, выполняющееся при несовпадении образцов с исходным числом. Ожидается в позиции последнего аргумента. |
Описание
Последовательно производит числовое сравнение 'меньше' значения первого аргумента numberic-source со значением четных аргументов numberic-pattern. Нечисловые значения исходного выражения или образца заменяются нулем (0). Если найден аргумент numberic-pattern, удовлетворяющий условию сравнения, выполняется единственное действие onmatch-action. В случае неуспеха операции сравнения, выполняется действие default-action.
Возвращает либо результат выполненного действия, если оно указано, либо непустое значение (символ 'пробел'), если указаны всего два аргумента и результат сравнения - истина, либо пусто.
Пример
Функция img1 выводит рисунок с заданными размерами.
<#FUNC img1=(PARAM iname h w; LT (h) 100 (h=100) 600 "" (h=600); LT (w) 200 (w=200) 800 "" (w=800); (img iname ("width="(w)" height="(h))) >
См. также: Операции сравнения,
Описание
Возвращает имя главного метода образующего текущую HTML-страницу.
Пример
<p>Текущуя HTML-страница формируется методом <#MACNAME></p>
См. также: Просмотр и навигация по БД,
Параметры | Описание |
---|---|
macro-name |
Задает имя макроса. Ожидается в позиции 1. |
[parameter-name[=value]] |
Задает параметры вызова макроса. Опциональный. Ожидается после имени макроса начиная с позиции 2. |
[macro-body] |
Задает тело макроса Опциональный. |
Описание
Задает в тексте тело макроса macro-body с именем macro-name.
Если после имени макроса указаны параметры, эти параметры обрабатываются сразу при входе в макрос как аргументы операции PARAM. Второй аргумент MACRO соответвует 1-му аргументу PARAM.
Ничего не возвращает.
Пример
Макрос с параметром 'COL' для формирования в виде таблицы списка имен всех классов текущей БД порциями по указанному в первом параметре (COL) количеству имен в строке.
<#MACRO ShowClasses COL> <table><#FORALLOBJ (ITEMS) N=CLASS C=CLASS> <tr> <#PORTION (COL)><td><#(NAME)><#/> <#/></table> <#/>
См. также: Составные примитивы (операторы),
Параметры | Описание |
---|---|
[AN=]aspect-name |
Задает аспект смежного объекта именем. Ожидается в позиции 1. Альтернатива 'A='. |
A=aspect-id |
Задает аспект смежного объекта числовым идентификатором. Ожидается в позиции 1. Альтернатива 'AN='. |
[N=object-name] |
Задает объект именем. Опциональный. По умолчанию используется текущий объект. Имеет смысл только вместе с атрибутом 'С='. Альтернатива 'O='. |
[C=class-name] |
Задает объект имя класса. Опциональный. По умолчанию используется текущий объект. Имеет смысл только вместе с атрибутом 'N='. Альтернатива 'O='. |
[O=object-id] |
Задает объект числовым идентификатором. Опциональный. По умолчанию используется текущий объект. Альтернатива 'N=','C='. |
POS=absolute-pos |
Задает новую абсолютную позицию связи в списочном аспекте. Опциональный. Если указанная новая позиция связи превышает количество наличных связей перемещает указанную связь в конец списка, если отрицательная либо 0 - в начало списка. Альтернатива 'STEP='. |
STEP=offset |
Задает смещение к новой позиции связи в списочном аспекте. Опциональный. Если вычисленная новая позиция связи превышает количество наличных связей перемещает указанную связь в конец списка, если отрицательная либо 0 - в начало списка. Альтернатива 'POS='. |
Описание
Перемещает для списочного отношения связь объекта заданного или текущего в аспекте смежного объекта на заданное абсолютно, либо смещением, место. Связь однозначно определяется объектом и аспектом.
Аспект может быть задан именем аспекта с атрибутом AN=, или без него первым аргументом, либо числовым идентификатором аспекта с атрибутом A=. Аспект должен быть НЕ списочным аспектом списочного отношения. (Если аспект aspect-name сам списочный, операция теряет смысл, т.к. в остальных аспектах перемещать вручную нельзя и неясно какой из них взять.)
Объект связи может быть задан либо именем объекта, с атрибутом N=, и именем класса объекта, с атрибутом C=, либо числовым идентификатором с атрибутом O=. По умолчанию используется текущий объект.
Новая позиция связи аспекта должна быть указана явно либо абсолютной позицией, с атрибутом POS=, либо смещением относительно текущей позиции, с атрибутом STEP=.
Если новая позиция связи POS= отрицательная или ноль (<=0) или превышает количество наличных связей по аспекту, связь перемещается на последнее место в списке.
Отрицательным значениям STEP= (задавать в кавычках!) соответствует перемещение на заданное число к началу списка, положительным - к концу. Если вычисленное значение новой позиции связи выходит за границы списка (<=0 либо превышает размер списка) то новой позицией связи будет граничное значение (первая либо поледняя в списке).
В случае успешного перемешения возвращает непустое значение (пробел).
Пример
Функции перемещения связей в списочном отношении.
<#FUNC MoveUp=(PARAM O;MOVE "PartOf\PartOf" O=(O) STEP="-1") MoveDown=(PARAM O;MOVE AN="PartOf" O=(O) STEP=1) MoveFirst=(PARAM O;MOVE A=(ASPID PartOf) O=(O) POS=1) MoveLast=(PARAM Name Class;MOVE PartOf N=(Name) C=(Class) POS=0) MovePos=(PARAM Pos O;MOVE "PartOf" O=(O) POS=(Pos)) >
Параметры | Описание |
---|---|
numeric-expression |
Задает числовые выражения для перемножения. |
Описание
Возвращает 1, если аргументы отсутствуют, если указан единственный аргумент, возвращает его значение, в остальных случаях возвращает результат умножения указанных чисел numeric-expression.
Пример
<#FUNC S=(MUL (1) (1) 3.14) >
См. также: Арифметические операции,
Параметры | Описание |
---|---|
source |
Задает исходное выражение строку для сравнения. Ожидается в позиции 1. |
pattern |
Задает образец для сравнения. Ожидается в позиции 2. |
[onmatch-action] |
Задает действие, выполняемое при успехе операции сравнения исходной строки с образцом. Ожидается в позиции 3. Опциональный. |
[default-action] |
Задает действие, выполняемое при неуспехе операции сравнения с образцами. Ожидается в позиции последнего аргумента. Опциональный. |
Описание
Последовательно производит строковое сравнение 'меньше или равно' значения первого аргумента source со значением четных аргументов pattern. Если найден аргумент pattern, удовлетворяющий условию сравнения, выполняется единственное действие onmatch-action. В случае неуспеха операции сравнения, выполняется действие default-action.
Возвращает либо результат выполненного действия, если оно указано, либо непустое значение (символ 'пробел'), если указаны всего два аргумента и результат сравнения - истина, либо пусто.
Пример
<#FUNC IsA=(PARAM str; NA(str) (s1) ((s0) " <= "(s1)) (s2) ((s0) " <= "(s2)) ) >
См. также: Операции сравнения,
Параметры | Описание |
---|---|
[[O=]object] |
Задает исходный объект числовым идентификатором. Без атрибута ожидается в позиции 1. По умолчанию используется текущий объект. |
Описание
Формирует для объекта текущей БД изображение.
Изображением может быть имя объекта для объектов-сущностей, либо значение для объектов-значений, либо индекс (числовой идентификатор с символом '#' вначале) для объектов-структур.
Объект может быть указан числовым идентификатором object.
По умолчанию используется текущий объект текущей БД.
В случае успеха возвращает полученное изображение, иначе пусто.
Пример
Функция ClassName возвращает имя класса объекта.
<#FUNC ClassName=(NAME(CLASS O=(1))) >
См. также: Просмотр и навигация по БД,
Параметры | Описание |
---|---|
source |
Задает исходное выражение строку для сравнения. Ожидается в позиции 1. |
pattern |
Задает образец для сравнения. Ожидается в позиции 2. |
[onmatch-action] |
Задает действие, выполняемое при успехе операции сравнения исходной строки с образцом. Ожидается в позиции 3. Опциональный. |
[default-action] |
Задает действие, выполняемое при неуспехе операции сравнения с образцами. Ожидается в позиции последнего аргумента. Опциональный. |
Описание
Последовательно производит строковое сравнение 'больше или равно' значения первого аргумента source со значением четных аргументов pattern. Если найден аргумент pattern, удовлетворяющий условию сравнения, выполняется единственное действие onmatch-action. В случае неуспеха операции сравнения, выполняется действие default-action.
Возвращает либо результат выполненного действия, если оно указано, либо непустое значение (символ 'пробел'), если указаны всего два аргумента и результат сравнения - истина, либо пусто.
Пример
<#NB (s0) (s1) ((s0) " >= "(s1)) (s2) ((s0) " >= "(s2))>
См. также: Операции сравнения,
Параметры | Описание |
---|---|
numeric-source |
Задает исходное число для операции сравнения с образцом. Ожидается в позиции 1. |
numeric-pattern |
Задает образец число для операции сравнения с исходным числом. Ожидается в позиции 2. |
[onmatch-action] |
Задает действие, выполняющееся при совпадении исходного числа с образцом Ожидается в позиции 3. Опциональный. |
[default-action] |
Задает действие, выполняющееся при несовпадении образцов с исходным числом. Ожидается в позиции последнего аргумента. Опциональный. |
Описание
Последовательно производит числовое сравнение 'не равно' значения первого аргумента numberic-source со значением четных аргументов numberic-pattern. Нечисловые значения исходного выражения или образца заменяются нулем (0). Если найден аргумент numberic-pattern, удовлетворяющий условию сравнения, выполняется единственное действие onmatch-action. В случае неуспеха операции сравнения, выполняется действие default-action.
Возвращает либо результат выполненного действия, если оно указано, либо непустое значение (символ 'пробел'), если указаны всего два аргумента и результат сравнения - истина, либо пусто.
Пример
<#NE (x0) (x1) ((x0) " >< "(x1)) (x2) ((x0) " >< "(x2))>
См. также: Операции сравнения,
Параметры | Описание |
---|---|
numeric-source |
Задает числовое выражение для замены знака значения выражения. Ожидается в позиции 1. |
Описание
Изменяет знак числа - умножает число numeric-expression на (-1). Нечисловой аргумент заменяет нулем (0).
Возвращает значение аргумента со знаком минус.
Пример
<#ADD y (NEG (x))>
См. также: Арифметические операции,
Параметры | Описание |
---|---|
[[AN=]aspect-name] |
Задает исходный аспект именем Без атрибута ожидается в позиции 1. По умолчанию используется текущий аспект. |
[A=aspect] |
Задает исходный аспект числовым идентификатором. По умолчанию используется текущий аспект. |
[[O=]object] |
Задает исходный объект числовым идентификатором. Без атрибута ожидается в позиции 2. По умолчанию используется текущий объект. |
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
Описание
Проверяет, имеет ли объект связи по аспекту.
Аспект может быть указан числовым идентификатором aspect или своим именем aspect-name, без атрибута AN ожидается в качестве первого аргумента. По умолчанию используется текущий аспект.
Объект может быть указан числовым идентификатором object, без атрибута O ожидается в качестве второго аргумента. По умолчанию используется текущий объект.
Если указана БД dbname, отличная от текущей, то необходимо явно указывать объект и аспект. По умолчанию используется текущая БД.
Возвращает непустое значение (символ 'пробел'), если аспект непустой (у объекта имеется как минимум одна связь по аспекту), иначе пусто.
Пример
Функция HelpPrev возвращает ид предыдущего хэлпа.
<FUNC HelpPrev=(PARAM O;PARAM O=(OBJ); part=(AT(APartOf) O=(O)); FORALLOBJ(AParts) O=(part) INIT=(prev=0) WHILE=(NE(OBJ)(O)(prev=(OBJ);"Y")); GT(prev) 0 (COND(NEMPTY(AParts) O=(prev)) (HelpLastChild(prev)) (prev)) (part) ) >
См. также: Просмотр и навигация по БД,
Параметры | Описание |
---|---|
D=dbname |
Задает путь к файлу БД. |
[PROTO=prototype] |
Задает путь к БД-прототипу. Опциональный. |
Описание
Создает новую БД с именем dbname.
Если с атрибутом PROTO указан файл-прототип БД prototype, то новая БД будет создана как копия БД-прототипа с именем dbname, иначе создается пустая БД.
В случае успеха возвращает имя БД dbname без изменений, иначе пусто.
Пример
Создаем новую БД ассоциированную с файлом "MyDB.am" в каталоге БД Abrial.
<#NEW D=(CAT (PATH TYPE=DBASE) "MyDB.am")>
См. также: Операции со всей базой данных,
Параметры | Описание |
---|---|
source |
Задает исходное выражение строку для сравнения. Ожидается в позиции 1. |
pattern |
Задает образец для сравнения. Ожидается в позиции 2. |
[onmatch-action] |
Задает действие, выполняемое при успехе операции сравнения исходной строки с образцом. Ожидается в позиции 3. Опциональный. |
[default-action] |
Задает действие, выполняемое при неуспехе операции сравнения с образцами. Ожидается в позиции последнего аргумента. Опциональный. |
Описание
Последовательно производит строковое сравнение 'не равно' значения первого аргумента source со значением четных аргументов pattern. Если найден аргумент pattern, удовлетворяющий условию сравнения, выполняется единственное действие onmatch-action. В случае неуспеха операции сравнения, выполняется действие default-action.
Возвращает либо результат выполненного действия, если оно указано, либо непустое значение (символ 'пробел'), если указаны всего два аргумента и результат сравнения - истина, либо пусто.
Пример
<#NI (s0) (s1) ((s0) " >< "(s1)) (s2) ((s0) " >< "(s2))>
См. также: Операции сравнения,
Параметры | Описание |
---|---|
expression |
Задает выражение для операции логическое 'НЕ'. Ожидается в позиции 1. |
Описание
Возвращает непустое значение (символ 'пробел') на пустое значение аргумента expression. На непустое значение аргумента - возвращает пусто.
Пример
Функция AppText добавляет в указанный файл указанный текст.
<#FUNC AppText=(PARAM fname text; COND(NOT(FILEEXIST(fname))) (FILESAVE(fname)(text)) (FILEAPPEND(fname)(text)) ) >
См. также: Логические операции,
Параметры | Описание |
---|---|
[[N=]object-name] |
Задает исходный объект именем. Без атрибута ожидается в позиции 1. По умолчанию используется текущий объект. |
[[C=]class-name] |
Задает исходный объект именем своего класса. Без атрибута ожидается в позиции 2. По умолчанию используется текущий объект. |
[O=object] |
Задает исходный объект числовым идентификатором. По умолчанию используется текущий объект. |
Описание
Получает числовой идентификатор объекта текущей БД по имени и имени класса.
Объект может быть указан числовым идентификатором object или своим именем object-name и именем своего класса class-name, без атрибутов N,C, ожидается в качестве первого и второго аргументов.
По умолчанию возвращает числовой идентификатор текущего объекта текущей БД.
Возвращает числовой идентификатор объекта текущей БД, (0) - для несуществующих объектов.
Пример
Функция db_Insert_In_Grp добавляет в указанную группу БД с указанным именем.
<#FUNC db_Insert_In_Grp=(PARAM N GN; _LINK R=InGroup O1=(OBJ N=(N) C=DBase) O2=(OBJ N=(GN) C=Grp) >
См. также: Просмотр и навигация по БД,
Параметры | Описание |
---|---|
[[N=]object-name] |
Задает исходный объект именем. Без атрибута ожидается в позиции 1. По умолчанию используется текущий объект. |
[[C=]class-name] |
Задает исходный объект именем своего класса. Без атрибута ожидается в позиции 2. По умолчанию используется текущий объект. |
[O=object] |
Задает исходный объект числовым идентификатором. По умолчанию используется текущий объект. |
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
Описание
Формирует в виде таблицы стандартное изображение объекта, в общем виде:
<table border=1> <tr align=center><th><a href='ab://ab/D=dbname'>[class-name]</a>[#object]</th><th>[object-name]</th></tr> {<tr><td><b><a href='ab://ab/D=dbname&O=aspect'>aspect-name</a>>/b></td> <td>{<a href='ab://ab/D=dbname&O=value'>value-image</a> }* </td></tr> }+ </table>
где: aspect - числовой идентификатор аспекта; aspect-name - имя аспекта; value - числовой идентификатор объекта - значения аспекта; value-image - изображение значения аспекта объекта.
Формируется таблица из двух столбцов. В заголовке первого столбца отображается ссылка на класс объекта и числовой идентификатор объекта. В заголовке второго столбца отображается имя объекта. В каждой строке таблицы в первом столбце отображается ссылка на аспект класса объекта, во втором столбце - ссылки на все значения аспекта объекта.
Объект может быть указан числовым идентификатором object или своим именем object-name и именем своего класса class-name, без атрибутов N,C, ожидается в качестве первого и второго аргументов. По умолчанию используется текущий объект.
Если указана БД dbname, отличная от текущей, то необходимо явно задавать объект. По умолчанию используется текущая БД.
В случае успеха возвращает сформированный таким образом тег TABLE (стандартное изображение объекта), иначе пусто.
Пример
<#OBJFORM N="Иванов ИИ" C="Личность">
См. также: Обращение к БД через HTML-форму,
Параметры | Описание |
---|---|
[[O=]object] |
Задает исходный объект числовым идентификатором. Без атрибута ожидается в позиции 1. По умолчанию используется текущий объект. |
[AN=aspect-name] |
Задает исходный аспект именем. По умолчанию используется текущий аспект. |
[A=aspect] |
Задает исходный аспект числовым идентификатором. По умолчанию используется текущий аспект. |
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
[[RET=]body] |
Задает тело цикла внутри простого тэга - выражение, вычисляемое на каждом шаге цикла и добавляемое к результату предыдущих шагов. Без атрибута ожидается в позиции последнего аргумента. Опциональный. |
Описание
В теле body устанавливает текущим объект и аспект.
Если указана БД dbname, отличная от текущей, то необходимо явно указывать объект и аспект. По умолчанию используется текущая БД.
Объект может быть указан числовым идентификатором object, без атрибута O ожидается в качестве первого аргумента. По умолчанию используется текущий объект.
Аспект может быть указан числовым идентификатором aspect или своим именем aspect-name.
С атрибутом RET, или без него последним аргументом, может быть указано тело body.
В случае успеха возвращает результат вычисленного тела body, иначе пусто.
Пример
Выводим в виде таблицы свойства класса Names БД "MyDB.ab".
<#ON (OBJ N="Names" C=CLASS) D="MyDB.ab" RET=(OBJFORM)>
Параметры | Описание |
---|---|
D=dbname |
Задает путь к файлу БД. |
Описание
Открывает БД с именем файла dbname.
Стандартными расширениями файла БД являются:
В случае успеха возвращает имя файла открытой БД, иначе пусто.
Пример
Открываем БД.
<#OPEN (CAT (PATH TYPE=DBASE) "MyDB.ab")>
См. также: Операции со всей базой данных,
Параметры | Описание |
---|---|
expression |
Задает выражения для операции логическое 'ИЛИ'. |
Описание
Возвращает вычисленное значение первого непустого аргумента, если таковой имеется среди указанных аргументов expression, иначе пусто.
Пример
Функция FindImgFile возвращает путь к файлу гифа.
<#FUNC FindImgFile=(CAT (OR(FILEEXIST((PATH TYPE=DBASE)"Img\"(1)".gif")&("Img\"(1)".gif")) (FILEEXIST((PATH TYPE=DBASE)(1)".gif")&((1)".gif")) (FILEEXIST((PATH TYPE=HOME)"Img\"(1)".gif")) ) ) >
См. также: Логические операции,
Параметры | Описание |
---|---|
local-var-name |
Задает имя локальной переменной для присваивания нового значения. Ожидается в позиции 1. |
[value] |
Задает новое значение присваиваемое локальной переменной. Ожидается в позиции 2. По умолчанию если локальной переменной внутри макроса/функции ранее не присвоено значения, присаивается значение параметра вызова макроса/функции в сответствующей позиции. |
Описание
Локальным переменным local-var-name, которым внутри макроса или функции не присвоены значения:
Если внутри макроса или функции перед вызовом PARAM было присвоено непустое значение переменным, указанным в PARAM, значения таких переменных не изменяются.
Ничего не возвращает.
Пример
Функция menuact возвращает ссылку на объект.
<#FUNC menuact=(PARAM mac gif bar hint tag;PARAM O=(OBJ); t1=(r_body (gif) (bar) (hint)); ((tag) (OR (AND (O) (D) (REFER ACT=(mac) D=(D) O=(O) ATAG=("title='"(hint)"'") (t1)) ) (AND (O) (REFER ACT=(mac) O=(O) ATAG=("title='"(hint)"'") (t1)) ) (AND (D) (REFER ACT=(mac) D=(D) ATAG=("title='"(hint)"'") (t1)) ) (REFER ACT=(mac) ATAG=("title='"(hint)"'") (t1)) ) ) ) >
Параметры | Описание |
---|---|
DIR=file-name |
Задает режим получения директории. |
DRIVE=file-name |
Задает режим получения имени диска. |
EXT=file-name |
Задает режим получения расширения. |
EXPAND=file-name |
Задает режим получения полного пути. |
NAME=file-name |
Задает режим получения имени файла без пути. |
PATH=file-name |
Задает режим получения директории. |
DLMAPP=file-name |
Задает режим добавления обратного слеша в конец. |
DLMCUT=file-name |
Задает режим удаления обратного слеша на конце. |
CHANGE=file-name |
Задает режим замены расширения файла. |
MATCH=file-name |
Задает режим поиска среди строк. |
TO=file-extension |
Задает новое расширение файла для режима замены расширения. |
MASK=mask |
Задает маску для режима поиска совпадений по маске. |
TYPE=CURR |
Задает режим получения текущей директории. |
TYPE=HOME |
Задает режим получения директории программы. |
TYPE=DBASE |
Задает режим получения директории текущей БД. |
TYPE=TEMP |
Задает режим получения директории /TEMP операционной системы. |
Описание
Выполняет операции над именами файлов в соответствии с указанным атрибутом.
Пример
Функция DeleteFile удаляет файл с именем fn.
<#FUNC DeleteFile=(PARAM fn; path=(PATH EXPAND=(fn)); COND(DIAL_ASK (CAT "Удалить файл: " (path) "?")) (EXEC TYPE=WAIT PATH="command.com" ARG=(CAT "/C del " (path) )) ) >
См. также: Строчные операции,
Параметры | Описание |
---|---|
rep-number |
Задает размер порции. Ожидается в позиции 1. |
[complex-body] |
Задает тело порции внутри сложного тега. Опциональный. |
Описание
Задает внутри цикла сегмент повтора complex-body заданное в rep-segment-size количество раз. Разделяет выдачу на порции заданного размера.
В цикле перебираются шаги объемлющего цикла и поочередно устанавливает контекст для них. При выходе из сегмента повтора выполняется завершение (и, если цикл еще не окончен - начало) объемлющего цикла.
Сегмент повтора всегда выполняется заданное число раз, даже тогда, когда объемлющий цикл оканчивается при неоконченном сегменте повтора. Таким образом, например, в HTML-таблицах формируется заданное число элементов, (строк, столбцов, ячеек), в том числе и не заполненных содержанием.
Возвращает объединенный результат вычислений тела порции.
Пример
Макрос ShowItemTable выводит в виде таблицы объекты класса порциями по 6 столбцов 10 строк.
<#MACRO ShowItemTable> <#SET pos=(OR (ENV POS) 1) seg=60> <#LT (pos) 1 (SET pos=1)> <#_pagebar1 p=(pos) n=(seg) a=(ITEMS)> <TABLE border=2 width=100%> <#FORALLOBJ (ITEMS) POS=(pos) NUM=(seg)> <TR> <#PORTION 6> <TD valign=top><TABLE> <#PORTION 10> <TR><TD> <#GT (OBJ) 0 (Obj_Ref_Item) " "> <#/> </TABLE></TD> <#/> </TR> <#/> </TABLE> <#/MACRO>
См. также: Составные примитивы (операторы),
Параметры | Описание |
---|---|
[name] |
Задает именной индекс очередного элемента ассоциативного массива. |
value |
Задает значение очередного элемента ассоциативного массива. |
[TEXT=text] |
Задает подключаемый текст. Строки текста пакуются в одноэлементный массив. Опциональный. |
[REC=expression] |
Задает подключаемую запись (текст, сформированный другим REC или другим способом в формате REC). Опциональный. |
Описание
Создает ассоциативный массив вида name1=value1 name2=value2 ...
Пара name value рассматривается как один элемент списочного массива. Четным аргументом ожидается именной индекс (ключ) очередного элемента массива. Нечетным аргументом ожидается значение для элемента массива, указанного именным индексом (четным аргументом). Текст значения упаковывается в одну строку и добавляется как один элемент массива Значением может быть произвольный текст, строки которого пакуются в одноэлементный массив перед подключением.
Атрибутом TEXT может быть указан сырой текст для включения в массив. Каждая строка текста подключается как один элемент массива и ожидается как пара name=value. Все символы от начала строки до первого встреченного знака "=" рассматриваются как именной индекс (ключ name), часть строки после знака "=" рассматривается как значение ключа (value).
Атрибутом REC может быть указан текст другого ассоциативного массива, подключаемый 1:1 в данной позиции.
Возвращает собранный таким образом текст ассоциативного массива.
Пример
<#Rec1=(REC Id (i) Name (NAME) Fio (ASPECT(AFio) Age (ASPECT(AAge))>
См. также: Операции с массивами,
Параметры | Описание |
---|---|
[[M=]method] |
Задает метод, формирующий целевую страницу ссылки. Без атрибута ожидается в позиции 1. По умолчанию (нет ни M ни ACT) принимается: M=_HOME если не указана БД (D=) или если БД указана, но не указан объект, то M=_ROOT, а если объект указан, то M=PAGE. |
[ACT=action] |
Задает действие, выполняемое при переходе по ссылке. По умолчанию формирует навигационный запрос. |
[N=object-name] |
Задает исходный объект именем. По умолчанию используется текущий объект. |
[C=class-name] |
Задает исходный объект именем своего класса. По умолчанию используется текущий объект. |
[O=object] |
Задает исходный объект числовым идентификатором. По умолчанию используется текущий объект. |
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
[ATAG=atag] |
Задает дополнительные атрибуты A-тэга. Опциональный. |
[Custom=expression] |
Задает любые именованные параметры для передачи формирующему страницу методу (например, начальную позицию сегмента итераций и размер сегмента итераций: POS=segment-start NUM=segment-size). Опциональный. |
[[RET=]reference-image] |
Задает явно изображение ссылки. Без атрибута ожидается в позиции последнего аргумента. Опциональный. |
Описание
Формирует полную ссылку на объект БД или изображение его значения (A-тег), в общем виде:
<a href='ab://ab/[&D=dbname] [&O=object] [&N=object-name&C=class-name] [&M=method] [&ACT=action] [{&Custom=expression}*] ' [atag] > [reference-image] </a>.
Значение атрибута 'href=' A-тега формируется аналогично URL/_HREF.
Могут быть указаны любые именованные параметры Custom=expression, которые будут включены в ссылку для передачи параметров обрабатывающему методу. В их числе могут быть NUM, POS, определяющие сегмент итераций по умолчанию в циклах обрабатывающего метода.
С атрибутом ATAG могут быть указаны дополнительные параметры A-тега. (name=, id=, frame=, title=, methods=, accesskey=, ... ).
С атрибутом RET или без него последним аргументом, может быть явно указано изображение ссылки reference-image.
Если ссылка внутренняя на значение в качестве изображения reference-image устанавливается значение указанного или текущего объекта БД.
Возвращает в случае успеха сформированный таким образом A-тег (изображение/ссылку), иначе пусто.
Пример
Функция menu возвращает ссылку с изображением.
<#FUNC r_body=(CAT (img (1) ("align='middle' alt='"(OR(3)(2))"'")) " " (2) "" ) menu=(DO (PARAM mac gif bar hint tag) (t1=(r_body (gif) (bar) (hint))) ((tag) (COND (AND (IS(MACNAME)(mac))(IS(D)(DBASE) Y "" Y )(EQ(ENV O)(O))) (t1) (AND (O)(D)) (REFER M=(mac) D=(D) O=(O) ATAG=("title='"(hint)"'") (t1)) (O) (REFER M=(mac) O=(O) ATAG=("title='"(hint)"'") (t1)) (D) (REFER M=(mac) D=(D) ATAG=("title='"(hint)"'") (t1)) (REFER M=(mac) ATAG=("title='"(hint)"'") (t1)) ) ) ) >
См. также: Обращение к БД через HTML-ссылку,
Параметры | Описание |
---|---|
comment |
Задает текст комментария. Ожидается в позиции 1. |
Описание
Пропускает текст comment, ничего не делает.
Пример
<#REM Это комментарий>
См. также: Комментарии,
Параметры | Описание |
---|---|
[[N=]object-name] |
Задает исходный объект именем. Без атрибута ожидается в позиции 1. По умолчанию используется текущий объект. |
[[C=]class-name] |
Задает исходный объект именем своего класса. Без атрибута ожидается в позиции 2. По умолчанию используется текущий объект. |
[O=object] |
Задает исходный объект числовым идентификатором. По умолчанию используется текущий объект. |
TO=new-name |
Задает новое имя для переименования указанного объекта. |
Описание
Присваивает указанному объекту-сущности текущей БД новое имя new-name.
Объект может быть указан числовым идентификатором object или своим именем object-name и именем своего класса class-name, без атрибутов N,C, ожидается в качестве первого и второго аргументов. По умолчанию присваивает новое имя текущему объекту, если текущий объект - сущность.
В случае успешного переименования возвращает непустое значение (символ "пробел"), иначе пусто.
Пример
<ON N="Иванов ИИ" C="Личность" D=((XBASE)"Test\AIS.ab") RET=(RENAME TO="Петров ПП") >
См. также: Операции изменяющие БД,
Параметры | Описание |
---|---|
[[NUM=]index] |
Задает элемент массива результатов глобального действия позиционным индексом. Опциональный. Промежуточный. |
[[KEY=]name] |
Задает элемент массива результатов глобального действия именным индексом. Опциональный. Промежуточный. |
[[KEY=]{#|#L}] |
Возвращает размер списка массива результатов глобального действия. Опциональный. Ожидается последним параметром. |
[[KEY=]#C] |
Возвращает размер в байтах массива результатов глобального действия. Опциональный. Ожидается последним параметром. |
[LINES=index] |
Возвращает размер списка в значении элемента массива, указанного позиционным индексом. Опциональный. Ожидается последним параметром. |
[LINES=name] |
Возвращает размер списка для значения элемента массива, указанного именным индексом. Опциональный. Ожидается последним параметром. |
[SIZE=index] |
Возвращает размер в байтах значения элемента массива, указанного позиционным индексом. Опциональный. Ожидается последним параметром. |
[SIZE=name] |
Возвращает размер в байтах значения элемента массива, указанного именным индексом. Опциональный. Ожидается последним параметром. |
[HAS=name] |
Проверяет наличие элемента массива с указанным именным индексом в массиве результатов глобального действия. Опциональный. Ожидается последним параметром. |
[DEL=index] |
Удаляет элемент массива результатов глобального действия, указаного позиционным индексом. Опциональный. Ожидается последним параметром. |
[DEL=name] |
Удаляет элемент массива результатов глобального действия, указаного именным индексом. Опциональный. Ожидается последним параметром. |
[PUT=value] |
Присваивает новое значение всему или указанному элементу массива. Опциональный. Ожидается последним параметром. |
[APP=value] |
Добавляет новое значение к результату глобального действия или указанному элементу массива результата глобального действия. Опциональный. Ожидается последним параметром. |
Описание
Производит различные действия с массивом результата глобального действия в зависимости от указанных параметров.
Результаты запросов-действий к БД (в командной строке запроса к БД указан атрибут ACT) помещаются в специальную переменную - результат глобального действия. В отличие от глобальных переменных время жизни результата глобального действия ограничено - перед началом формирования каждой страницы результат автоматически очищается, результат предыдущего запроса-действия также теряется.
Операция RESULT позволяет обращаться с результатом глобального действия как с обычным массивом. Для доступа к внутренней структуре результата глобального действия используется цепочка индексных параметров.
Пример
Если имеется результат глобального действия и в нем есть элемент FIO со значением Name выводим на экран.
<#AND (RESULT) (RESULT KEY=FIO HAS=(Name)) ("ФИО: "(RESULT KEY=FIO)) >
Параметры | Описание |
---|---|
[[POS=]segment-start] |
Задает начальную позицию сегмента итераций. Без атрибута ожидается в позиции 1. По умолчанию добавляет в ссылку параметр '&POS=1'. |
[[NUM=]segment-size] |
Задает размер сегмента итераций Без атрибута ожидается в позиции 2. По умолчанию ничего не добавляет в ссылку. |
Описание
Формирует ссылку на текущую страницу без обрамляющих тегов и без кавычек, добавляя или изменяя в ней параметры POS и NUM. В общем виде:
'ab://ab/D=dbname&O=object&M=method&POS=segment-start[&NUM=segment-size]'
где: dbname-полный путь к текущей БД; object-числовой идентификатор текущего объекта текущей БД; method-метод формирующий текущую страницу.
При переходе по ссылке с параметрами '&POS=' и '&NUM=', внутри метода method текущие установки POS и NUM заменяются на указанные в ссылке. Внутри метода POS и NUM сами по себе ничего не значат - просто переменные, но могут использоваться в циклах FORALLOBJ, FORASP/FORLINE для выделения сегмента. Это обстоятельство можно использовать для формирования с помощью единственного метода связанного списка страниц для листания длинных списков.
Если указан атрибут POS, в ссылку добавляет параметр '&POS=segment-start' со значением абсолютной позиции начала сегмента. Без атрибута POS, первым аргументом, ожидается относительное изменение текущей позиции. К текущей позиции прибавляется указанное смещение segment-start. В ссылку добавляет параметр '&POS=' с новым значением позиции начала сегмента.
С атрибутом NUM или без него, вторым аргументом, ожидается размер сегмента segment-size. В ссылку добавляется параметр '&NUM=segment-size'. По умолчанию вносит в ссылку параметр '&POS=1', параметр '&NUM=' не добавляется.
Возвращает сформированную таким образом ссылку на текущую страницу.
Пример
Форма ссылки на и удаления текущего объекта.
<#MACRO _delit> <FORM name=<#_frm_nam> action="<#ROOTREF>" method=post> <input type=hidden name=ACT> <input type=hidden name=O> <#REFER> <#_delbtn1> </FORM> <#/>
См. также: Обращение к БД через HTML-ссылку,
Параметры | Описание |
---|---|
[FILE=file-name] |
Задает имя файла для сохранения DDL-кода. По умолчанию DDL-код сохраняется в файл текущей или указанной БД. |
[TYPE=ALL] |
Задает режим сохранения DDL-кода всей БД целиком. По умолчанию 'TYPE=ALL'. |
[TYPE=DATA] |
Задает режим сохранения DDL-кода только данных. По умолчанию 'TYPE=ALL'. |
[TYPE=STRUCT] |
Задает режим сохранения DDL-кода только дескрипторов данных. По умолчанию 'TYPE=ALL'. |
[TYPE=OBJ] |
Задает режим сохранения DDL-кода только указанного объекта. По умолчанию 'TYPE=ALL'. |
[TYPE=CLA] |
Задает режим сохранения DDL-кода только объектов указанного класса. По умолчанию 'TYPE=ALL'. |
[TYPE=REL] |
Задает режим сохранения DDL-кода только связей указанного отношения. По умолчанию 'TYPE=ALL'. |
[N=object-name] |
Задает сохраняемый объект именем. Дополнительный параметр для 'TYPE=OBJ'. По умолчанию используется текущий объект. |
[C=class-name] |
Задает сохраняемый(ые) объект(ы) именем класса. Дополнительный параметр для 'TYPE=OBJ'/'TYPE=CLA'. По умолчанию используется текущий объект. |
[O=object] |
Задает сохраняемый объект числовым идентификатором. Дополнительный параметр для 'TYPE=OBJ'. По умолчанию используется текущий объект. |
R=relation-name |
Задает имя отношения сохраняемых связей. |
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
Описание
Сохраняет БД dbname в файл file-name полностью или частично.
В зависимости от значения атрибута TYPE сохраняется:
Если не указано имя БД dbname, по умолчанию используется текущая БД.
Без атрибута FILE по умолчанию используется имя файла, приписанного к текущей БД.
Стандартными расширениями файла БД являются:
В случае успеха возвращает имя файла сохраненной БД, иначе пусто.
Пример
Сохраняем структуру текущей БД в файл "c:/my/mydb.am".
<#SAVE FILE="c:\my\struct.ab" TYPE=STRUCT>
См. также: Операции со всей базой данных,
Параметры | Описание |
---|---|
[TEXT=]text |
Задает исходный текст для сканирования. |
FILE=file-id |
Пока не работает. (* Задает идентификатор IN-файла, содержащего исходный текст для сканирования.) |
FILELIST=file-id |
Пока не работает. (* Задает идентификатор LIST-файла, содержащего исходный текст для сканирования.) |
KEYFILE=file-id |
Задает идентификатор REC-файла, содержащего исходный текст для сканирования. |
[AS=WORDS] |
Задает режим сканирования исходного текста по словам с алфавитом WORDSABC. Все символы не входящие в алфавит WORDSABC между словами игнорируются. На каждом шаге итерации очередное слово кладется в VALUE. Опциональный. Используется по умолчанию. |
[AS=CHARS] |
Задает посимвольный режим сканирования исходного текста. На каждом шаге итерации очередной символ кладется в VALUE. Опциональный. По умолчанию AS=WORDS. |
[AS=LINES] |
Задает построчный режим сканирования исходного текста. На каждом шаге итерации очередная строка без изменений (1:1) кладется в VALUE. Опциональный. По умолчанию AS=WORDS. |
[AS=LIST] |
Задает построчный режим сканирования исходного текста. На каждом шаге итерации очередная строка распаковывается перед попаданием в VALUE. Опциональный. По умолчанию AS=WORDS. |
[AS=REC] |
Задает построчный в алфавитном порядке имен без повторов режим сканирования исходного текста. На каждом шаге итерации в KEY попадает очередное имя в VALUE - распакованное значение (структурно-распакованная строка после имени и знака "="). Опциональный. По умолчанию AS=WORDS. |
[AS=NAMES] |
Задает построчный в алфавитном порядке имен без повторов режим сканирования исходного текста. На каждом шаге итерации в KEY попадает очередное имя в VALUE - значение строки (строка 1:1, не распаковывается в текст). Опциональный. По умолчанию AS=WORDS. |
[AS=FORMS] |
Пока не реализовано. (* Задает режим сканирования элементов исходного текста совпадающих по образцу. Опциональный. По умолчанию AS=WORDS.) |
[VAR=local-var-name] |
Задает имя локальной переменной куда на шаге кладется очередное сканируемое значение. По умолчанию и вообще всегда результат кладется в VALUE. При сканировании типа AS=NAMES или AS=REC - результат кладется: в KEY - имя, в VALUE - значение. |
[DIV=local-var-name] |
Задает имя локальной переменной куда на шаге кладется очередной разделитель между сканируемыми значениями - последовательность символов не входящая в алфавит WORDSABC. Используется только для режима сканирования AS=WORDS |
[WORDSABC=alphabet] |
Задает строку с допустимыми символами алфавита в словах. Используется только для режима сканирования AS=WORDS. |
[POS=segment-start] |
Задает позицию символа текста (начиная с единицы) для начала сканирования. Все символы до указанной позиции пропускаются. Опциональный. По умолчанию сканирование начинается с первого символа (POS=1). |
[NUM=segment-size] |
Задает размер сегмента итераций (максимальное число итераций). После указанного числа сканирование снимается. Опциональный. По умолчанию сканируется до тех пор, пока не пройден весь текст. |
[INIT=initialization] |
Задает выражение, которое вычисляется один раз перед началом итераций. Опциональный. |
[FROM=begin-condition] |
Задает выражение, которое вычисляется перед всеми шагами внутри интервала. Пока не станет истиной, интервал исполнения не начинается. Потом уже не вычисляется. Опциональный. |
[IF=step-condition] |
Задает выражение, которое вычисляется непосредственно перед шагом. Если возвращает пусто шаг пропускается. Опциональный. |
[BY=step-size] |
Задает шаг цикла. Если step-size=2, то исполняется только каждый второй в пределах сегмента итераций, начиная с POS=start-pos. Опциональный. |
[ITER=iteration] |
Задает выражение, которое вычисляется после шага, что возвращает безразлично. Опциональный. |
[UNTIL=until-condition] |
Задает выражение-условие, которое вычисляется после каждого шага. Если возвращает НЕ-пусто выход из цикла. Опциональный. |
[WHILE=while-condition] |
Задает выражение-условие, которое вычисляется перед шагом. Если возвращает пусто - выход из цикла. Опциональный. |
[[RET=]body] |
Задает тело цикла внутри простого тега. Без атрибута ожидается в позиции последнего аргумента. Опциональный. |
[complex-body] |
Задает тело цикла внутри сложного тега. Опциональный. |
Сканирует исходный текст в соответствии с указанным режимом.
Исходный текст для сканирования может быть задан:
Режимы сканирования:
Итерации не начинаются (не вычисляется тело цикла), если:
Итерации заканчиваются, если:
Очередной шаг пропускается (тело цикла не вычисляется), если выражение, указанное с атрибутом IF принимает значение 'ложь' (пусто).
Сегмент итераций может быть задан с атрибутом POS позицией segment-start начала сегмента, начиная с единицы и, с атрибутом NUM, размером сегмента segment-size. По умолчанию POS=1 - сканирование начинается с первого элемента (символа, слова, строки, в зависимости от типа сканирования). По умолчанию NUM сканирование продолжается до конца текста, начиная с указанной атрибутом POS позиции.
Если с атрибутом BY=step указан шаг итераций, то внутри сегмента пропускаются step-1 шаг (тело вычисляется только на каждом step шаге, начиная с POS).
С атрибутом INIT может быть указано выражение, которое вычисляется один раз перед началом цикла, вычисленное значение добавляется к общему результату оператора перед результатом вычислений тела цикла.
С атрибутом ITER может быть указано выражение, которое вычисляется на каждом шаге итераций, не влияет на результат оператора.
На каждом шаге в теле цикла переменной с указанным в атрибуте VAR именем устанавливается очередное сканированное значение. По умолчанию очередное сканированное значение попадает в специальную переменную с именем VALUE. Для режима AS=WORDS с атрибутом DIV может быть указано имя переменной которой на очередном шаге будет установлено значение разделителя - пропущенных символов исходного текста (не входящих в алфавит). Для режимов AS=REC и AS=NAMES переменной KEY устанавливается значением имя очередного ключа.
Тело цикла может быть задано с атрибутом RET или без него, последним аргументом в функциональном стиле.
Возвращает объединенный результат вычислений тела цикла, если оно указано, сначала внутри простого тэга, затем внутри сложного тега.
Пример:
Функция Words_Link связывает текущую словоформу с лексемами.
<#FUNC Words_Link=( // si=(OBJ); SCAN TEXT=(FILE wf KEY=(CONV LOW=(NAME))) AS=LIST (_LINK R=prod O1=(_NITM N=(VALUE NUM=2) C=Lex) O2=(_NITM N=(VALUE NUM=1) C=Frm) O3=(si) ; ); ) >
См. также: Операторы цикла,
Параметры | Описание |
---|---|
local-var-name |
Задает имя локальной переменной для присваивания нового значения. Ожидается в позиции 1. |
value |
Задает новое значение присваиваемое локальной переменной. Ожидается в позиции 2. |
Описание
Объявляет локальные переменные с именами local-var-name, если они не объявлены ранее, и присваивает им значения value.
Ничего не возвращает.
Пример
<#SET path1="c:\my\mydb.am" y=1 x=(y*5/3) >
Параметры | Описание |
---|---|
numeric-source |
Задает исходное числовое выражение. Ожидается в позиции 1. |
subtrahend |
Задает числа, вычитаемые из исходного числа Ожидается в позиции 2. |
Описание
Возвращает результат вычитания из значения numeric-source значений subtrahend. Значения нечисловых аргументов заменяет нулем (0).
Пример
Результат: z=10-2-5=3
<#SET z=(SUB 10 2 5)>
См. также: Арифметические операции,
Параметры | Описание |
---|---|
source |
Задает исходную строку или текст. Ожидается в позиции 1. |
start |
Задает позицию первого символа подстроки начиная с единицы. Ожидается в позиции 2. |
length |
Задает длину подстроки. Ожидается в позиции 3. |
Описание
Извлекает подстроку исходного текста source в позиции strart (начиная с единицы) указанной длины length.
Переводы строк в исходном тексте заменяются пробелами (исходный текст пакуется в строку).
Возвращает извлеченную подстроку.
Пример
Результат: "our".
<#SUBSTR "Source string" 2 3>
См. также: Строчные операции,
Параметры | Описание |
---|---|
numeric-expression |
Задает числовые выражения для вычисления суммы. |
Описание
Возвращает сумму указанных аргументов numeric-expression. Значения нечисловых аргументов заменяет нулем (0). При отсутствии аргументов возвращает 0.
Пример
Возвращает результат x=x+y+5.
<#SET x=(SUM (x) (y) 5) >
См. также: Арифметические операции,
Параметры | Описание |
---|---|
expression |
Задает выражения для конкатенации в единый текст. |
Описание
Соединяет в единый текст значения указанных expression.
Обратный слэш ("\") выполняет роль символа новой строки. В отличие от CAT никак не изменяет сцепляемые строки, внутренние переводы строк сохраняются.
Возвращает полученный таким образом текст.
Пример
<#TEXT "Name:" (N1) " Age:" (A1) >
См. также: Строчные операции,
Параметры | Описание |
---|---|
[[M=]method] |
Задает метод, формирующий целевую страницу ссылки. Без атрибута ожидается в позиции 1. По умолчанию (нет ни M ни ACT) принимается: M=_HOME если не указана БД (D=) или если БД указана, но не указан объект, то M=_ROOT, а если объект указан, то M=PAGE. |
[ACT=action] |
Задает действие, выполняемое при переходе по ссылке. По умолчанию формирует навигационный запрос. |
[N=object-name] |
Задает исходный объект именем. По умолчанию используется текущий объект. |
[C=class-name] |
Задает исходный объект именем своего класса. По умолчанию используется текущий объект. |
[O=object] |
Задает исходный объект числовым идентификатором. По умолчанию используется текущий объект. |
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
[POS=segment-start] |
Задает начальную позицию сегмента итераций. Опциональный. |
[NUM=segment-size] |
Задает размер сегмента итераций. Опциональный. |
[Custom=expresiion] |
Задает любые именованные параметры для передачи формирующему страницу методу. Опциональный. |
Описание
Формирует ссылку на объект БД без обрамляющих тегов и без кавычек, в общем виде:
'ab://ab/[&D=dbname][&O=object] [&N=object-name&C=class-name] [&M=method] [&ACT=action] [&POS=segment-start] [&NUM=segment-size] [{&Custom=expression}*]'.
Если не указана БД, используется текущая, формируется внутренняя ссылка. В ссылке формируется параметр '&D=dbname', где dbname - полный путь к файлу текущей БД. Объект может быть указан числовым идентификатором object либо своим именем object-name и именем своего класса class-name. В ссылке формируются параметры: '&O=object[&N=object-name&C=class-name]'. По умолчанию формируется параметр '&O=' с числовым идентификатором текущего объекта.
Если явно указана БД dbname, формируется внешняя ссылка. В ссылке формируется параметр с указанным именем БД без изменений '&D=dbname'. Объект может быть указан только своим именем object-name и именем своего класса class-name. По имени и имени класса объекта определяется числовой идентификатор объекта object. В ссылке формируются параметры: '&O=object[&N=object-name&C=class-name]'. Если объект не указан, либо отсутствует, либо указан числовым идентификатором, идентификатор обнуляется ('&O=0').
С атрибутом M, или без него первым аргументом, может быть указан метод method формирующий страницу при переходе по ссылке.
Если с атрибутом ACT указано действие action, то при переходе по ссылке выполняется действие action, после выполнения которого вызывается метод формирующий текущую страницу.
Могут быть указаны также любые именованные параметры Custom=expression, которые будут включены в ссылку для передачи параметров обрабатывающему методу. В их числе могут быть NUM, POS, определяющие сегмент итераций по умолчанию в циклах обрабатывающего метода.
В случае успеха возвращает сформированную таким образом ссылку (значение атрибута 'href=' A-тэга).
Пример
Макрос Load формирует страничку с формой выбора загружаемого файла.
<#MACRO Load O=(OBJ)> <form action='<#URL ACT="HS_Act" F="Load">' method='post'> <table class='cItems'> <thead>Загрузка справочника.</thead> <tr><th>Файл:</th></tr> <tr><td> <input type='file' name='File'> </td></tr> <tr><td><input type='submit' value='Загрузить'></td></tr> </table> </form> <#/>
См. также: Обращение к БД через HTML-ссылку,
Параметры | Описание |
---|---|
library-name |
Задает имя библиотечного файла. Ожидается в позиции 1. |
Описание
Подключает библиотечный макрос с именем library-name.
В отличие от вызова метода/функции всx содержимое вызванного макроса обрабатывается на том же уровне, что и оператор USE. Все определения функций FUNC и макросов MACRO, встретившиеся внутри библиотечного макроса продолжают действовать и после выхода из макроса и из оператора USE.
Библиотечный макрос не ищется среди ранее определенных в тексте FUNC, MACRO, только в БД или на диске. Внутрь библиотечного макроса нельзя передать аргументы, как для функции. В порядке поиска макроса и использовании имени, подключение макроса эквивалентно вызову метода.
Имя библиотечного макроса library-name должно быть указано без пути и расширения. Вначале файл ищется в директории БД, потом в директории запуска программы, затем в директории программы. В каждой из них сначала берется поддиректория \tem\, потом сама директория. В каждой из указанных сначала ищется поддиректория с именем базы и с расширением '.tem', потом сама. В указанных директориях ищется сначала файл с именем library-name и расширением '.txt', затем, если не найден, с расширением '.htm'.
Возвращает результат вычисления библиотечного макроса. В случае успеха возвращает указанное имя library-name без изменений, иначе пусто.
Пример
<#USE MyLibrary>
Параметры | Описание |
---|---|
[[NUM=]index] |
Задает элемент массива сканированного значения позиционным индексом. Опциональный. Промежуточный. |
[[KEY=]name] |
Задает элемент массива сканированного значения именным индексом. Опциональный. Промежуточный. |
[[KEY=]{#|#L}] |
Возвращает размер списка сканированного значения. Опциональный. Ожидается последним параметром. |
[[KEY=]#C] |
Возвращает размер в байтах сканированного значения. Опциональный. Ожидается последним параметром. |
[LINES=index] |
Возвращает размер списка в значении элемента массива указанного позиционным индексом. Опциональный. Ожидается последним параметром. |
[LINES=name] |
Возвращает размер списка для значения элемента массива указанного именным индексом. Опциональный. Ожидается последним параметром. |
[SIZE=index] |
Возвращает размер в байтах значения элемента массива указанного позиционным индексом. Опциональный. Ожидается последним параметром. |
[SIZE=name] |
Возвращает размер в байтах значения элемента массива указанного именным индексом. Опциональный. Ожидается последним параметром. |
[HAS=name] |
Проверяет наличие элемента массива с указанным именным индексом в сканированном значении. Опциональный. Ожидается последним параметром. |
[DEL=index] |
Удаляет элемент массива сканированного значения, указаного позиционным индексом. Опциональный. Ожидается последним параметром. |
[DEL=name] |
Удаляет элемент массива сканированного значения, указаного именным индексом. Опциональный. Ожидается последним параметром. |
[PUT=value] |
Присваивает новое значение всему или указанному элементу массива сканированного значения. Опциональный. Ожидается последним параметром. |
[APP=value] |
Добавляет новое значение к результату глобального действия или указанному элементу массива сканированного значения. Опциональный. Ожидается последним параметром. |
Описание
В зависимости от указанных параметров производит различные действия с очередным значением, сканированным из текста.
Внутри тела цикла SCAN результат очередного шага сканирования помещаются в специальную переменную - сканированное значение. Для доступа к внутренней структуре сканированного значения используется цепочка индексных параметров.
Пример
<#FUNC // загрузка в память сохраненных глобалов из файла Globs_Load=(Globs_Open; /// открыли файл глобалов // сканируем файл SCAN KEYFILE=Globs ( // сохраняем у всех элементов атрибут VAL GLOBALS (KEY) PUT=(VALUE KEY=VAL) ); ) >
См. также: Операции с массивами,
Параметры | Описание |
---|---|
condition |
Задает условие выполнения очередного шага цикла. Ожидается в позиции первого аргумента. |
[body] |
Задает тело цикла внутри простого тэга - выражение, вычисляемое на каждом шаге цикла и добавляемое к результату предыдущих шагов. Ожидается в позиции последнего аргумента. Опциональный. |
[complex-body] |
Задает тело цикла внутри сложного тэга - выражение, вычисляемое на каждом шаге цикла и добавляемое к результату предыдущих шагов. Опциональный. |
Описание
Выполняет тело цикла body до тех пор, пока значение условия condition не пусто.
Последним аргументом, тело цикла body может быть указано внутри простого тега в функциональном стиле.
Возвращает объединенный результат вычислений на каждом шаге тела цикла body, сначала внутри простого тега, затем внутри сложного тега.
Пример
Выполняем 5 раз макрос Macro1.
<#SET cnt=0 Num=5> <#WHILE (LT (cnt) (Num))> <#Macro1> <#ADD cnt 1> <#/>
См. также: Операторы цикла, Составные примитивы (операторы),
Описание
Возвращает полный путь к директории программы (Абриаль) с обратным слэшем (символ '\') на конце.
Пример
Присваиваем переменной Root путь к к директории программы (Абриаль).
<#FUNC Root=(XBASE) MyFile=((XBASE)"My\Myfile.txt") >
Параметры | Описание |
---|---|
[comment] |
Задает исключаемый текст (комментарий) внутри простого тэга. Ожидается в позиции 1. Опциональный. |
[complex-comment] |
Задает исключаемый текст (комментарий) внутри сложного тэга. Опциональный. |
Описание
Предназначен для временного исключения блоков текста внутри сложных примитивов.
Ничего не возвращает.
Пример
Закомментировали весь блок FORDB, включая вложенные конструкции.
<#XXX FORDB D="MyDB.ab"> <#_NITM N="Иванов ИИ" C="Личность" > <#/>
См. также: Комментарии, Составные примитивы (операторы),
Параметры | Описание |
---|---|
[AN=aspect-name] |
Задает исходный аспект именем. По умолчанию используется текущий аспект. |
[A=aspect] |
Задает исходный аспект числовым идентификатором. По умолчанию используется текущий аспект. |
[O=object] |
Задает исходный объект числовым идентификатором. По умолчанию используется текущий объект. |
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
[TO=target-object] |
Задает целевой объект числовым идентификатором. По умолчанию создается новый целевой объект. |
Описание
Добавляет или изменяет бинарную связь аспекта объекта с целевым объектом. Создает новый целевой объект, если целевой объект не указан.
Исходный аспект может быть указан числовым идентификатором aspect либо своим именем aspect-name.
Объект и целевой объект могут быть указаны числовым идентификатором object и target-object.
Если указана БД dbname, отличная от текущей, то необходимо явно указывать объект и аспект. По умолчанию используется текущий аспект текущего объекта текущей БД.
В случае успеха возвращает числовой идентификатор указанного или созданного целевого объекта, иначе пусто.
Пример
Устанавливаем объект увлечения у конкретной личности.
<#FORDB D=((XBASE)"Test\AIS.ab")> <#_BLNK AN="увлеч\об-ты увлечен" O=(OBJ N="Иванов ИИ" C="Личность") TO=(_NITM N="охота" C="увлечения")> <#/>
См. также: Операции изменяющие БД, Энергичные примитивы,
Параметры | Описание |
---|---|
[[AN=]aspect-name] |
Задает исходный аспект именем. Без атрибута ожидается в позиции 1. По умолчанию используется текущий аспект. |
[A=aspect] |
Задает исходный аспект числовым идентификатором. По умолчанию используется текущий аспект. |
[O=object] |
Задает исходный объект числовым идентификатором. По умолчанию используется текущий объект. |
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
Описание
Удаляет аспект объекта. Если аспект держащий, то удаления не происходит.
Аспект может быть указан числовым идентификатором aspect или своим именем aspect-name. Без атрибута AN ожидается в качестве первого аргумента.
Объект может быть указан числовым идентификатором object.
Если указана БД dbname, отличная от текущей, то необходимо явно указывать аспект и объект. По умолчанию удаляется текущий аспект текущего объекта текущей БД.
В случае успеха возвращает непустое значение (символ 'пробел'), иначе пусто.
Пример
Устанавливаем отсутствие увлечений у конкретной личности.
<#FORDB D=((XBASE)"Test\AIS.ab")> <#_DELA AN="увлеч\об-ты увлечен" O=(OBJ N="Иванов ИИ" C="Личность")> <#/>
См. также: Операции изменяющие БД, Энергичные примитивы,
Параметры | Описание |
---|---|
[O=object] |
Задает исходный объект числовым идентификатором. По умолчанию используется текущий объект. |
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
Описание
Удаляет объект из БД.
Если указана БД dbname отличная от текущей, то необходимо явно указывать объект числовым идентификатором object. По умолчанию удаляется текущий объект текущей БД.
В случае успешного удаления возвращает непустое значение (символ 'пробел'), иначе пусто.
Пример
Удаляем конкретную личность из БД.
<#FORDB D=((XBASE)"Test\AIS.ab")> <#_DELI O=(OBJ N="охота" C="увлечения")> <#/>
См. также: Операции изменяющие БД, Энергичные примитивы,
Параметры | Описание |
---|---|
LK=link |
Задает связь числовым идентификатором. |
R=relation-name |
Задает связь числовым идентификатором отношения. |
RID=relation |
Задает связь числовым идентификатором отношения. |
AN=aspect-name |
Задает связь именем исходного аспекта. |
A=aspect |
Задает связь числовым идентификатором исходного аспекта. |
On=object |
Задает в соответствующем O1..On (n -размерность связи) слоте связи числовой идентификатор объекта - значения атрибута. |
Vn=aspect-value |
Задает в соответствующем V1..Vn (n -размерность связи) слоте связи значение атрибута. |
[D=dbname] |
Задает путь к файлу БД По умолчанию используется текущая БД. |
Описание
Удаляет из БД связь любой размерности, заданную либо числовым идентификатором связи, либо исходным аспектом или отношением и списком целевых объектов или значений.
Если указан аспект, и он держащий, то удаления не происходит.
Если не указана БД dbname, используется текущая.
Связь должна быть указана явно:
1) С атрибутом LK числовым идентификатором связи link;
2)
и списком числовых идентификаторов целевых объектов с атрибутом Oi, или значений с атрибутом Vi, где i=1,2,3...N, N-размерность связи.
В случае успеха возвращает числовой идентификатор удаленной связи, иначе пусто.
Пример
Удаляем связь "уч-ст".
<#FORDB D=((XBASE)"Test\AIS.ab")> <#_DELK R="уч-ст" O1=(OBJ N="Иванов ИИ" C="Личность") O2=(OBJ N="доктор" C="ученая степень") O3=(OBJ N="физ.-мат. наук" C="область наук")> <#/>
См. также: Операции изменяющие БД, Энергичные примитивы,
Параметры | Описание |
---|---|
_VAL=aspect-value |
Задает новое значение атрибута объекта. |
[AN=aspect-name] |
Задает исходный аспект именем. По умолчанию используется текущий аспект. |
[A=aspect] |
Задает исходный аспект числовым идентификатором. По умолчанию используется текущий аспект. |
[O=object] |
Задает исходный объект числовым идентификатором. По умолчанию используется текущий объект. |
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
Описание
Добавляет или изменяет на value значение атрибута объекта.
Аспект может быть указан числовым идентификатором aspect или своим именем aspect-name.
Объект может быть указан числовым идентификатором object.
Если указана БД dbname, отличная от текущей, то необходимо явно указывать объект и аспект.
По умолчанию используется текущий аспект текущего объекта текущей БД.
В случае успеха возвращает непустое значение (символ 'пробел'), иначе пусто.
Пример
Устанавливаем дату рождения личности.
<#ON O=(OBJ N="Иванов ИИ" С="Личность") AN="дата-рожд\дата рожд" D=((XBASE)"Test\AIS.ab") RET=(_EDIT _VAL= "25.04.1817") >
См. также: Операции изменяющие БД, Энергичные примитивы,
Параметры | Описание |
---|---|
[[M=]method] |
Задает метод, формирующий целевую страницу ссылки. Без атрибута ожидается в позиции 1. По умолчанию (нет ни M ни ACT) принимается: M=_HOME если не указана БД (D=) или если БД указана, но не указан объект, то M=_ROOT, а если объект указан, то M=PAGE. |
[ACT=action] |
Задает действие, выполняемое при переходе по ссылке. По умолчанию формирует навигационный запрос. |
[N=object-name] |
Задает исходный объект именем. По умолчанию используется текущий объект. |
[C=class-name] |
Задает исходный объект именем своего класса. По умолчанию используется текущий объект. |
[O=object] |
Задает исходный объект числовым идентификатором. По умолчанию используется текущий объект. |
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
[Custom=expression] |
Задает любые именованные параметры для передачи формирующему страницу методу (например, начальную позицию сегмента итераций и размер сегмента итераций: [NUM=segment-size [POS=segment-start). Опциональный. |
Описание
Формирует ссылку на объект БД без обрамляющих тегов и без кавычек, в общем виде:
'ab://ab/[&D=dbname][&O=object] [&N=object-name&C=class-name] [&M=method] [&ACT=action] [{&Custom=expression}*]'.
Если не указана БД, используется текущая, формируется внутренняя ссылка. В ссылке формируется параметр '&D=dbname', где dbname - полный путь к файлу текущей БД. Объект может быть указан числовым идентификатором object либо своим именем object-name и именем своего класса class-name. В ссылке формируются параметры: '&O=object[&N=object-name&C=class-name]'. По умолчанию формируется параметр '&O=' с числовым идентификатором текущего объекта.
Если явно указана БД dbname, формируется внешняя ссылка. В ссылке формируется параметр с указанным именем БД без изменений '&D=dbname'. Объект может быть указан только своим именем object-name и именем своего класса class-name. По имени и имени класса объекта определяется числовой идентификатор объекта object. В ссылке формируются параметры: '&O=object[&N=object-name&C=class-name]'. Если объект не указан, либо отсутствует, либо указан числовым идентификатором, идентификатор обнуляется ('&O=0').
С атрибутом M, или без него первым аргументом, может быть указан метод method формирующий страницу при переходе по ссылке.
Если с атрибутом ACT указано действие action, то при переходе по ссылке выполняется действие action, после выполнения которого вызывается метод формирующий текущую страницу.
Могут быть указаны также любые именованные параметры Custom=expression, которые будут включены в ссылку для передачи параметров обрабатывающему методу. В их числе могут быть NUM, POS, определяющие сегмент итераций по умолчанию в циклах обрабатывающего метода.
В случае успеха возвращает сформированную таким образом ссылку (значение атрибута 'href=' A-тэга).
Пример
Для атрибута 'action=' тэга FORM формируем ссылку-действие с параметрами.
<#MACRO RenObj O=(OBJ) SIZE=15> <form action='<#_HREF ACT="acts" O=(O) F="Ren">' method='post'> <input type='text' name='N' value='<#NAME O=(O)>' size='<#SIZE>'> <input type='submit' value='Переименовать'> </form> <#/>
См. также: Обращение к БД через HTML-ссылку,
Параметры | Описание |
---|---|
R=relation-name |
Задает связь числовым идентификатором отношения. |
RID=relation |
Задает связь числовым идентификатором отношения. |
AN=aspect-name |
Задает связь именем исходного аспекта. |
A=aspect |
Задает связь числовым идентификатором исходного аспекта. |
On=object |
Задает в соответствующем O1..On (n -размерность связи) слоте связи числовой идентификатор объекта - значения атрибута. |
Vn=aspect-value |
Задает в соответствующем V1..Vn (n -размерность связи) слоте связи значение атрибута. |
[D=dbname] |
Задает путь к файлу БД По умолчанию используется текущая БД. |
Описание
Создает или изменяет связь любой размерности.
Если не указана БД dbname, используется текущая.
Связь должна быть указана явно:
и списком целевых объектов с атрибутом Oi, или значений с атрибутом Vi, где i=1,2,3...N, N-размерность связи.
В случае успеха возвращает числовой идентификатор связи, иначе пусто.
Пример
Создаем связь "уч-ст".
<#FORDB D=((XBASE)"Test\AIS.ab")> <#_LINK R="уч-ст" O1=(OBJ N="Иванов ИИ" C="Личность") O2=(OBJ N="доктор" C="ученая степень") O3=(OBJ N="физ.-мат. наук" C="область наук")> <#/>
См. также: Операции изменяющие БД, Энергичные примитивы,
Параметры | Описание |
---|---|
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
FILE=file-name |
Задает путь к файлу, содержащему DDL-код для загрузки. |
[SHOW=Y] |
Выводит диалог отображения процесса загрузки DDL-кода с кнопками остановки, продолжения и отмены загрузки. Опциональный. Дополнительный параметр для FILE. |
TEXT=ddl-code |
Задает текст DDL-кода для загрузки. |
Описание
Загружает текст кода DDL ddl-code или из файла file-name в БД dbname или, по умолчанию, в текущую.
С ключом SHOW=Y выводится окно, в котором отображается процесс загрузки в БД текста DDL-кода из указанного файла file-name и кнопками завершения приостановки и продолжения процесса загрузки. По завершению загрузки окно автоматически закрывается.
В случае успеха возвращает имя файла file-name без изменений, если текст кода DDL был загружен из файла, непустое значение (символ 'пробел'), если загружен текст кода ddl-code, иначе пусто.
Пример
Догружаем из файла "MyDB.ab" DDL-код в текущую БД, отображаем процесс загрузки.
<#_LOAD FILE=((DBASE)"MyDB.ab") SHOW=Y>
См. также: Операции со всей базой данных,
Параметры | Описание |
---|---|
D=dbname |
Задает путь к файлу БД. |
[PROTO=prototype] |
Задает путь к БД-прототипу. Опциональный. |
Описание
Создает новую БД с именем dbname.
Если с атрибутом PROTO указан файл-прототип БД prototype, то новая БД будет создана как копия БД-прототипа с именем dbname, иначе создается пустая БД.
В случае успеха возвращает имя БД dbname без изменений, иначе пусто.
Пример
Создаем новую БД "New.ab" на основе БД-прототипа "AIS.ab".
<#_NEW D=((DBASE)"New.ab") PROTO=((XBASE)"Test\AIS.ab")>
См. также: Операции со всей базой данных,
Параметры | Описание |
---|---|
[N=object-name] |
Задает новый объект именем (для объектов-сущностей). По умолчанию создается безымянный объект указанного класса. |
C=class-name |
Задает новый объект именем своего класса (для объектов-сущностей). |
[O=object] |
Задает объект-словарь числовым идентификатором (словарь - объект содержащий образующий аспект для нового объекта). По умолчанию используется класс с указанным в С= именем. |
[AN=aspect-name] |
Задает исходный образующий аспект именем. По умолчанию используется текущий аспект. |
[A=aspect] |
Задает исходный образующий аспект числовым идентификатором. По умолчанию используется текущий аспект. |
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
Описание
Создает новый объект с именем object-name класса class-name или присваивает новое имя существующему объекту.
С атрибутом O числовым идентификатором object может быть указан объект-словарь. Объект-словарь есть старший объект для порождающей связи (словарь,содержащий имя). Для дескрипторов аспектов такими является дескриптор отношения, для сущностей этим словарем является их дескриптор класса. По умолчанию в качестве объекта-словаря используется текущий объект.
Образующий аспект может быть указан с атрибутом A числовым идентификатором aspect либо с атрибутом AN своим именем aspect-name. По умолчанию используется 'NAME/ITEMS'.
Если БД dbname указана явно, необходимо явно указывать объект-словарь. По умолчанию используется текущая БД.
В случае успеха возвращает идентификатор объекта - или нового или обнаруженного старого с таким именем, иначе пусто.
Пример
Добавляем увлечение к возможным увлечениям личностей.
<#_NITM N="шахматы" C="увлечения" O=(OBJ N="увлечения" C="CLASS") D=((XBASE)"Test\AIS.ab") >
См. также: Операции изменяющие БД, Энергичные примитивы,
Параметры | Описание |
---|---|
D=dbname |
Задает путь к файлу БД. |
Описание
Открывает БД с именем файла dbname.
Стандартными расширениями файла БД являются:
В случае успеха возвращает имя файла открытой БД, иначе пусто.
Пример
Открываем БД.
<#_OPEN D=((XBASE)"Test\AIS.ab">
См. также: Операции со всей базой данных,
Параметры | Описание |
---|---|
[FILE=file-name] |
Задает путь к файлу для сохранения. По умолчанию DDL-код сохраняется в файл текущей или указанной БД. |
[TYPE=ALL] |
Задает режим сохранения всей БД (по умолчанию). По умолчанию 'TYPE=ALL'. |
[TYPE=DATA] |
Задает режим сохранения только данных из БД. По умолчанию 'TYPE=ALL'. |
[TYPE=STRUCT] |
Задает режим сохранения только дескрипторов данных из БД. По умолчанию 'TYPE=ALL'. |
[TYPE=OBJ] |
Задает режим сохранения только указанного объекта. По умолчанию 'TYPE=ALL'. |
[TYPE=CLA] |
Задает режим сохранения только объектов указанного класса. По умолчанию 'TYPE=ALL'. |
[TYPE=REL] |
Задает режим сохранения только связей указанного отношения. По умолчанию 'TYPE=ALL'. |
[N=object-name] |
Задает сохраняемый объект именем Дополнительный параметр для 'TYPE=OBJ'. По умолчанию используется текущий объект. |
[C=class-name] |
Задает сохраняемый(ые) объект(ы) именем класса. Дополнительный параметр для 'TYPE=OBJ', 'TYPE=CLA'. По умолчанию используется текущий объект. |
[O=object] |
Задает сохраняемый объект числовым идентификатором. Дополнительный параметр для 'TYPE=OBJ'. По умолчанию используется текущий объект. |
R=relation-name |
Задает имя отношения сохраняемых связей. |
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
Описание
Сохраняет БД dbname в файл file-name полностью или частично.
В зависимости от значения атрибута TYPE сохраняется:
Если не указано имя БД dbname, по умолчанию используется текущая БД.
Без атрибута FILE по умолчанию используется имя файла, приписанного к текущей БД.
Стандартными расширениями файла БД являются:
В случае успеха возвращает имя файла сохраненной БД, иначе пусто.
Пример
Сохраняем из БД AIS.ab в файл "c:\my\structAIS.ab" только объекты - дескрипторы данных.
<#_SAVE D=((XBASE)"Test\AIS.ab") FILE="c:\my\structAIS.ab" TYPE=STRUCT >
См. также: Операции со всей базой данных,
Параметры | Описание |
---|---|
[[AN=]aspect-name] |
Задает исходный унарный аспект именем. Без атрибута ожидается в позиции 1. По умолчанию используется текущий аспект. |
[A=aspect] |
Задает исходный унарный аспект числовым идентификатором. По умолчанию используется текущий аспект. |
[O=object] |
Задает исходный объект числовым идентификатором. По умолчанию используется текущий объект. |
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
Описание
Создает унарную связь объекта, если она отсутствует, либо удаляет, если связь имеется.
Унарный аспект должен быть указан числовым идентификатором aspect или своим именем aspect-name, без атрибута AN ожидается в качестве первого аргумента. По умолчанию используется текущий аспект.
Объект может быть указан числовым идентификатором object. По умолчанию используется текущий объект.
Если указана БД dbname, отличная от текущей, то необходимо явно указывать объект и аспект. По умолчанию используется текущая БД.
В случае успеха возвращает непустое значение (символ 'пробел'), иначе пусто.
Пример
Устанавливаем признак нестандартности мышления для конкретной личности.
<#ON O=(OBJ N="Иванов ИИ" С="Личность") AN="нестанд-ть\нестандартность мышления" D=((XBASE)"Test\AIS.ab") RET=(COND (EMPTY) (_SWAP)) >
См. также: Операции изменяющие БД, Энергичные примитивы,
Параметры | Описание |
---|---|
_VAL=aspect-value |
Задает значение для объектов-значений либо новое имя для объектов-сущностей. |
[O=object] |
Задает исходный объект числовым идентификатором. По умолчанию используется текущий объект. |
[D=dbname] |
Задает путь к файлу БД. По умолчанию используется текущая БД. |
Описание
Устанавливает объекту object новое значение valueдля объектов-значений или имя для объектов-сущностей.
Новое значение (имя) value должно быть указано с атрибутом _VAL.
Объект может быть указан числовым идентификатором object. По умолчанию используется текущий объект.
Если указана БД dbname, отличная от текущей, то необходимо явно указывать объект. По умолчанию используется текущая БД.
В случае успеха возвращает непустое значение (символ 'пробел'), иначе пусто.
Пример
Устанавливаем дату рождения конкретной личности.
<#ON O=(OBJ N="Иванов ИИ" C="Личность") AN="дата-рожд\дата рожд" D=((XBASE)"Test\AIS.ab") RET=(_TEXT _VAL="25.04.1817" O=(AT)) >
См. также: Операции изменяющие БД, Энергичные примитивы,