Справка по программе "Механический баланс"

(см. также  Учебник по программе Механический баланс )
[на уровень вверх]


Содержание
  Окна и меню программы и возможности работы с ними
  Программирование на встроенном языке, функции и процедуры
  index



 
 
 

Окна и меню программы и возможности работы с ними

 Главное меню
 Окно "База данных"
 Окно "Таблица"
 Окно "Свойства таблицы"
 Окно "Текст запроса"
 Окно "Шаблон отчета"
 Окно "Шаблон просмотра"
 Окно "Отчет"

 на уровень вверх (Содержание справки)


Главное меню

 Меню - Файл
 Меню - Бухгалтерия
 далее (Окно "База данных")
 на уровень вверх (Окна и меню программы)


Меню - Файл

 Меню - Файл - Новый
 Меню - Файл - Открыть
 Меню - Файл - Закрыть
 Меню - Файл - Печать
 Меню - Файл - Предварительный просмотр
 Меню - Файл - Параметры печати
 Меню - Файл - Установки
 Меню - Файл - Сохранить установки
 Меню - Файл - список открывавшихся ранее файлов
 Меню - Файл - Выход
 на уровень вверх (Главное меню)


Меню - Файл - Новый

Эта команда предназначена для создания нового файла базы данных.
Необходимо указать имя файла и его местоположение.
Эта же команда может быть вызвана кнопкой на панели инструментов.

Программа всегда работает только с одной базой, так что текущая база будет закрыта.

После исполнения команды открывается окно "База данных"( перейти )

на уровень вверх (Меню-Файл)


Меню - Файл - Открыть

Команда предназначена для открытия существующего файла базы данных.
Необходимо выбрать файл из предложенного списка, при необходимости можно выбрать его местоположение на компьютере.
Эта же команда может быть вызвана кнопкой на панели инструментов.

Программа всегда работает только с одной базой, так что текущая база будет закрыта.

После исполнения команды открывается окно "База данных"( перейти )

на уровень вверх (Меню-Файл)


Меню - Файл - Закрыть

Команда предназначена для закрытия текущей базы данных.
Поскольку поддерживается соответствие между данными в памяти и на диске, то специально сохранять базу не требуется.
Если в каких-то окнах остались несохраненные данные, то о сохранении этих данных будет задан вопрос. При этом можно будет отменить закрытие базы.

Базу также можно закрыть, если закрыть окно "База данных"( перейти ), нажав на крести в его правом верхнем углу.

на уровень вверх (Меню-Файл)


Меню - Файл - Печать

Команда предназначена для печати документа. При вызове команды выбрасывается стандартный диалог, в котором можно выбрать принтер, на который производится печать, номера страниц, которые предполагается распечатать и другие параметры.

Команда доступна, только когда в списке открытых окон программы выбрано окно с отчетом. Окна с отчетом могут формироваться при выполнении запросов.

на уровень вверх (Меню-Файл)


Меню - Файл - Предварительный просмотр

Команда предназначена для предварительного просмотра документа, предназначенного для печати. При вызове команды открывается окно, в котором можно просмотреть все страницы документа и отправить его на печать.

Команда доступна, только когда в списке открытых окон программы выбрано окно с отчетом. Окна с отчетом могут формироваться при выполнении запросов.

на уровень вверх (Меню-Файл)


Меню - Файл - Параметры печати

Команда предназначена для настройки печати. Можно выбрать тип принтера и его свойства, тип бумаги, тип подачи, ориентацию печати на листе.

на уровень вверх (Меню-Файл)


Меню - Файл - Установки

Команда предназначена для задания различных параметров программы, не зависящих от текущей базы данных.
К ним относятся:
    Параметры для формирования стандартных отчетов программы (размер, шрифт)
    Шрифты, используемые в интерфейсе программы
    Параметры справочной системы
Для сохранения измененных параметров необходимо выбрать пункт "Файл - Сохранить установки"(перейти )

на уровень вверх (Меню-Файл)


Меню - Файл - Сохранить установки

Команда предназначена для сохранения измененных параметров программы.
Установки сохраняютя  в реестре Windows.

на уровень вверх (Меню-Файл)


Меню - Файл - список открывавшихся ранее файлов

При выборе файла базы из списка в меню "Файл" открывается база данных, то есть производятся те же самые действия, как после выбора файла в меню "Файл - Открыть"
Программа всегда работает только с одной базой, так что текущая база будет закрыта.
Файлы добавляютя в список автоматически.

на уровень вверх (Меню-Файл)


Меню - Файл - Выход

Команда предназначена для выхода из программы.
Поскольку поддерживается соответствие между данными в памяти и на диске, то специально сохранять базу не требуется.
Если в каких-то окнах остались несохраненные данные, то о сохранении этих данных будет задан вопрос. При этом можно будет отменить выход из программы.

Эта команда эквивалентна стандартному для Windows способу закрытия программы, когда нажимают на крестик в правом верхнем углу.

на уровень вверх (Меню-Файл)


Меню - Бухгалтерия

В меню "Бухгалтерия" собраны команды для обработки бухгалтерской информации в открытой базе.

Меню - Бухгалтерия - Проверка плана счетов
Меню - Бухгалтерия - Отчет по проводкам
Меню - Бухгалтерия - Отчет по оборотам
Меню - Бухгалтерия - Главная книга
Меню - Бухгалтерия - Остатки
Меню - Бухгалтерия - Пересчитать остатки
Меню - Бухгалтерия - Изменить дату остатков
на уровень вверх (Главное меню)


Меню - Бухгалтерия - Проверка плана счетов

Чтобы анализ бухгалтерской информации был корректным, не должно быть ошибок в заголовках проводок и план счетов должен быть корректным, то есть не может быть, что:
    - два счета не совпадают ни по одному ключу
    - два субсчета не совпадают ни по одному ключу

Для выявления этих ошибок предусмотрена команда "Проверка плана счетов". При исполнении команды происходит анализ базы, и, если выявлена ошибка, выбрасывается диалог с диагностикой.

на уровень вверх (Меню - Бухгалтерия)


Меню - Бухгалтерия - Отчет по проводкам

Команда формирует документ со списком проводок за заданный период по заданному счету. Возможна разноска сумм по заданному ключу корреспондирующего счета.

на уровень вверх (Меню - Бухгалтерия)


Меню - Бухгалтерия - Отчет по оборотам

Команда формирует документ с подсчитанными оборотами за заданный период по заданному счету. Возможна детализация оборотов в разрезе заданного ключа аналитики и разноска сумм оборотов по заданному ключу корреспондирующего счета.

на уровень вверх (Меню - Бухгалтерия)


Меню - Бухгалтерия - Главная книга

Команда формирует документ с подсчитанными оборотами за заданный период по заданному счету. Возможна детализация оборотов по ключу корреспондирующего счета.

Команда аналогична отчету по оборотам, когда в нем не задана детализация по ключу аналитики, только в отчете по оборотам корреспондирующие счета перечисляются слева направо в таблице, а в главной книге - сверху вниз.

на уровень вверх (Меню - Бухгалтерия)


Меню - Бухгалтерия - Остатки

В базе, помимо таблиц, может храниться специальная информация, описывающая остатки на счетах на некоторую дату. Эта информация может использоваться в отчетах и функциях подсчета остатков по заданному счету на заданную дату. Информация об остатках хранится как таблица из названия счета, суммы остатка и, возможно, количества, если по счету удобно вести количественный учет. При необходимости ввести данные в эту таблицу необходимо указать фильтр счета, по которому предстоит редактировать, и затем откроется специальное окно - "Остатки".

на уровень вверх (Меню - Бухгалтерия)


Меню - Бухгалтерия - Пересчитать остатки

Команда предусмотрена для очистки базы от устаревшей информации. При исполнении команды удаляются все записи в таблицах, которым соответствует дата проводки меньше заданной, а внутренняя таблица остатков обновляется так, что в ней хранятся пересчитанные остатки на заданную дату.

на уровень вверх (Меню - Бухгалтерия)


Меню - Бухгалтерия - Изменить дату остатков

Команда изменяет дату, которой соответствуют остатки во внутренней таблице, без какого-либо пересчета.

на уровень вверх (Меню - Бухгалтерия)


Окно "База данных"

Окно открывается при открытии базы в меню "Файл" ( перейти ). Оно может быть открыто также при щелчке на файл базы данных в проводнике Windows или перетаскиванием иконки файла базы данных в программу или при запуске программы с аргументом - именем файла базы данных. В программе открыто всегда только одно окно "База данных", так что при открытии новой базы предыдущая база закрывается. Окно также может быть закрыто, как обычно, нажатием на крестик в правом верхнем углу или через меню "Файл". При закрытии этого окна все открытые окна в программе также закрываются. Если в каких-то окнах остались несохраненные данные, то о сохранении этих данных будет задан вопрос. При этом можно будет отменить закрытие базы.

В окне представлены списки таблиц и запросов из текущей базы. При этом таблицы разбиты на два раздела: "Списки" и "Проводки". Таким образом, существуют три независимых списка: "Списки" и "Проводки" - это списоки таблиц, "Запросы" - это список запросов. Переключаться между этими списками можно, нажимая соответствующие ярлыки в верхней части окна.

Список запросов представлен в виде дерева, то есть в нем, кроме запросов, представлены папки, содержащие запросы. Открыть папку можно,
как обычно, сделав на ней двойной щелчок мышью. Папки и запросы различаются иконками.

Для проведения какого-либо действия с элементами этих списков (например, чтобы иметь возможность редактировать текст запроса) надо требуемый элемент выбрать, то есть нажать на него мышью. Выбранный элемент выделяется синим цветом.

Если сделать двойной щелчок на таблицу, то она откроется (то есть появится новое окно "таблицы" (перейти ) ). Если сделать двойной щелчок на запрос, то он запустится на выполнение.

В этом окне можно изменять имена таблиц и запросов. Для этого нужно выбрать требуемый элемент и опять нажать мышью на его имя, или нажать F2. После этого можно менять имя. После изменения имени нужно нажать "Enter" либо нажать мышью где-либо снаружи от рамки, в которой происходит редактирование.

Специально сохранять изменения в этом окне не надо, поскольку поддерживается соответствие между содержимым окна и содержимым файла базы.

Меню - База
далее (Окно "Таблица")
на уровень вверх (Окна и меню программы)


Меню - База

В этом меню собраны команды для проведения операций над элементами окна "База данных", то есть над глобальными элементами базы данных.

Меню - База - Создать таблицу / запрос
Меню - База - Создать папку
Меню - База - Открыть/выполнить
Меню - База - Переименовать
Меню - База - Удалить
Меню - База - Свойства таблицы
Меню - База - Текст запроса
Меню - База - Шаблон отчета
Меню - База - Шаблон просмотра
Меню - База - Экспорт
Меню - База - Импорт
на уровень вверх (Окно "База данных")


Меню - База - Создать таблицу / запрос

Команда предназначена для создания новой таблицы или запроса. Что именно будет создаваться, зависит от того, какой список открыт в окне "База данных".

После выполнения команды в текущем списке появлятся новый элемент с именем "-------", которое сразу же можно редактировать. При этом новый запрос добавляется в текущую открытую папку.

Новый элемент не имеет никаких свойств, для их задания необходимо выбрать другие команды меню "База".

на уровень вверх (Меню - База)


Меню - База - Создать папку

Команда создает в списке запросов новую папку с именем "-------", которое сразу же можно редактировать. Новая папка создается в текущей открытой папке. Папка изначально пустая. Чтобы добавить в нее новые объекты, нужно ее выбрать и выполнить команду "Создать запрос" или "Создать папку". (Если бы в при этом в выбранной папке уже были элементы, то новые элементы добавлялись бы на уровень выше)

на уровень вверх (Меню - База)


Меню - База - Открыть/выполнить

При выборе этой команды, если был открыт список таблиц, то выбранная таблица открывается (то есть открываеися новое окно "Таблицы"  ( перейти ) ), а если был открыт список запросов, то выбранный запрос выполняется. Команда эквивалентна двойному щелчку мыши на выбранном элементе.

на уровень вверх (Меню - База)


Меню - База - Переименовать

При выборе этой команды появляется возможность изменить имя выбранного элемента (таблицы или запроса, а так же папки). После изменения имени нужно нажать "Enter" либо нажать мышью где-либо снаружи от рамки, в которой происходит редактирование. Все изменения сохраняются автоматически. Команда эквивалента нажатию F2 при выбранном элементе.

на уровень вверх (Меню - База)


Меню - База - Удалить

Команда предназначена для удаления элементов из списка в окне "база данных", то есть глобальных элементов базы. Команда удаляет выбранный в окне "База данных" элемент - таблицу или запрос, а так же папку (папка удаляется, только если она пустая). При выполнении команды задается вопрос о подтверждении, после этого элемент удаляется из базы со всеми своими свойствами. Из таблицы предварительно удаляются все записи. Если другие таблицы ссылались на ту, которую удалили, то удаляются все поля-ссылки вместе с записями этих полей.
Все окна, связанные с данным элементом (Свойства таблицы, Текст запроса, Шаблон отчета, Шаблон просмотра), закрываются без предупреждения.

на уровень вверх (Меню - База)


Меню - База - Свойства таблицы

Эта команда позволяет изменять свойства выбранной таблицы, то есть поля, проводки( для таблиц-проводок), а так же вид просмотра таблицы в других таблицах и значения по умолчанию для полей. Все эти свойства можно менять в специальном окне - "Свойства таблицы" (перейти ), которое открывается при исполнении данной команды. Если, однако, выбранная таблица открыта на редактирование, то изменение ее свойств становится невозможным - сначала нужно закрать окно редактирования таблицы.

на уровень вверх (Меню - База)


Меню - База - Текст запроса

Эта команда позволяет изменять текст выбранного запроса, то есть специальный текст, который на встроенном в программу алгоритмическом языке программирования кодирует, что происходит при исполнении запроса. Текст запроса можно менять в специальном окне "Текст запроса", которое открывается при исполнении данной команды.

на уровень вверх (Меню - База)


Меню - База - Шаблон отчета

При исполнении запроса могут формироваться документы для печати. Вид этих документов, то есть шрифтовые характеристики, тексты, а так же местоположение и формат данных из базы можно менять в специальном окне - "Редактирование шаблона отчета". Отчет формируется на основе данных, которые определяются в запросе, так что можно сказать, что это приложение к тексту запроса. Однако внешний вид документов можно менять, редактируя шаблон отчета и не меняя текста запроса. Так или иначе, шаблон отчета является одним из свойств запроса (необязательным), и для редактирования шаблона отчета для текущего запроса необходимо выполнить команду "Шаблон отчета".

на уровень вверх (Меню - База)


Меню - База - Шаблон просмотра

При исполнении запроса могут открываться окна для редактирования таблиц из базы. При этом в запросе можно задать, какие именно поля будут редактироваться, и другие характеристики редактирования таблицы. Свойства запроса, относящеиеся к редактированию таблицы, можно менять в окне "Шаблон просмотра". При выполнении команды "Шаблон просмотра" открывается окно "Шаблон просмотра" для выбранного
запроса. Поскольку шаблон просмотра, кроме запроса, связан с таблицей, которую нужно редактировать, то, если шаблон просмотра не был ранее задан для данного запроса, то сначала в специальном диалоге надо выбрать таблицу, для которой этот шаблон предназначен.

на уровень вверх (Меню - База)


Меню - База - Экспорт

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

Запрос экспортируется вместе с текстом, шаблоном отчета(если есть) и шаблоном просмотра(если есть)

на уровень вверх (Меню - База)


Меню - База - Импорт

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

Запрос импортируется вместе с текстом, шаблоном отчета(если есть) и шаблоном просмотра(если есть)

на уровень вверх (Меню - База)


Окно "Таблица"

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

В окне "Таблица" можно производить ввод данных в открытую таблицу базы. Окно представлят собой таблицу записей, которую можно прокручивать вверх-вниз. Эта таблица подразделяется на столбцы. По таблице можно перемещаться курсором или мышью, при этом текущая ячейка выделяется синим цветом.

Чтобы изменить содержание текущей ячейки, надо либо нажать Enter, либо нажать на текущую ячейку мышью. Тип ячейки соответствует типу текущего поля в таблице базы и может быть числом, датой, строкой и ссылкой. От этого типа зависит, как можно редактировать содержание ячейки. Строки, числа и даты вводятся с клавиатуры. В ячейку типа "число" могут быть введены только цифры и точка. В ячейку типа "дата" должна вводится дата в формате день . месяц . год. В ячейку типа "строка" может быть введен любой текст,  длина строки в любой таблице ограничена 32767 символами.

Ячейка типа "ссылка" выглядит как текст, но ее содержание можно только выбирать из списка. При ее изменении выбрасывается диалог,
в котором предложен список возможных значений. Следует выбрать из этого списка одно и нажать "OK" ( или Enter ). Чтобы было легче искать значение в этом списке, в верхнем поле диалога можно ввести букву или буквы, при этом выделяется первый элемент списка, который начинаетса с этих букв.

Для окончания режима редактирования других ячеек нужно нажать Enter либо нажать мышью где-либо вне окна редактирования. По окончании режима редактирования содержимое ячейки автоматически сохраняется, специально сохранять таблицу не надо.

Запись можно добавить клавишей Ins либо кнопкой на панели инструментов либо через меню. Удалить запись можно через меню либо кнопкой на панели инструментов; при этом удаляется запись, на которой находится выделенная ячейка.

 Меню - Записи
 Меню - Столбец
 далее (Окно "Свойства таблицы")
  на уровень вверх (Окна и меню программы)


Меню - Записи

В этом меню собраны команды для работы с записями таблицы.

 Меню - Записи - Добавить запись
 Меню - Записи - Редактировать запись
 Меню - Записи - Удалить запись
 Меню - Записи - Удалить со всеми ссылками
 Меню - Записи - Удалить все записи с неверными ссылками
 на уровень вверх (Окно "Таблица")


Меню - Записи - Добавить запись

В конец таблицы добавляется новая запись.
Эта команда меню эквивалентна кнопке на панели инструментов и нажатию клавиши Ins.

 на уровень вверх (Меню - Записи)


Меню - Записи - Редактировать запись

Включается режим редактирования текущей ячейки таблицы.
Эта команда меню эквивалентна нажатию мыши, нажатию клавиши Enter и кнопке на панели инструментов.

 на уровень вверх (Меню - Записи)


Меню - Записи - Удалить запись

Команда предназначена для удаления записи, на которой находится текущая ячейка. Перед удалением записи задается вопрос для подтверждения намерения удалить запись.

При удалении записи следует иметь в виду, что на текущую запись могут быть ссылки из других таблиц. При удалении записи эти ссылки останутся "подвешенными". Это не приведет к ошибке программы, но может запутать данные.

Команда "Удалить запись" эквивалентна нажатию кнопки на панели инструментов.

 см. Удалить со всеми ссылками
 см. Удалить все записи с неверными ссылками
 на уровень вверх (Меню - Записи)


Меню - Записи - Удалить со всеми ссылками

Команда удаляет текущую запись в таблице и все те записи в других таблицах, которые ссылаются на эту запись.

 см. Удалить запись
 на уровень вверх (Меню - Записи)


Меню - Записи - Удалить все записи с неверными ссылками

Если в таблице содержаться поля типа "ссылка", и если та запись, на которую ссылалась ячейка типа "ссылка", была удалена, то на месте этой ссылки будет текст "ссылка на несуществующую запись". Для удаления всех записей с таким текстом предусмотрена команда "Удалить все записи с неверными ссылками". Эта команда может использоваться, например, для восстановления неправильно измененных данных в базе.

 см. Удалить запись
 на уровень вверх (Меню - Записи)


Меню - Столбец

В этом меню собраны команды для анализа данных текущего столбца таблицы. Эти команды никак не изменяют базы, а просто выбразывают диалог с результатом анализа. Тип анализа соответствует названию пункта меню:
    Сумма - сумма всех чисел в текущем столбце
    Количество - количество записей
    Максимум - максимальное из чисел текущего столбца
    Минимум - минимальное из чисел текущего столбца
    Среднее арифметическое - среднее арифметическое чисел в текущем столбце (то есть сумма, деленая на количество).

Команда "Пересчитать зависимые" предусмотрена на случай, когда поля других таблиц зависят от текущего поля через значения по умолчанию, и данные в текущем столбце были изменены. Команда выполняет пересчет всех зависимых таким образом записей в других таблицах.

 на уровень вверх (Окно "Таблица")


Окно "Свойства таблицы"

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

В верхней части окна находятся ярлыки для переключения между списком полей, списком значений по умолчанию и списком свойств проводки. Ниже находится активный список. Выше списка свойств проводки еще имеются ярлыки для выбора текущей проводки. В нижней части окна расположено поле, где можно ввести вид просмотра таблицы.

Каждый из списков представляет собой таблицу, в первом столбце которой находятся значения свойств, а в остальных - описания (ключи). Можно мышью или курсором выделить значение свойства, тогда выделенное значение будет обозначено синим цветом. Значение выделенного свойства можно изменить, если нажать мышью на выделенное свойство или нажать F2 на выделенном свойстве или через меню. После окончания внесения изменений надо нажать Enter или нажать мышью где-либо вне окна редактирования. Если свойство не определено, то на месте его значения будет стоять текст пусто.

Меню - Свойства таблицы
далее (Окно "Текст запроса")
на уровень вверх (Окна и меню программы)


Меню - Свойства таблицы

Меню - Свойства таблицы - Сохранить
Меню - Свойства таблицы - Редактировать
Меню - Свойства таблицы - Добавить поле
Меню - Свойства таблицы - Удалить поле
Меню - Свойства таблицы - Добавить проводку
Меню - Свойства таблицы - Удалить проводку
Меню - Свойства таблицы - Справочник полей
Меню - Свойства таблицы - Справочник счетов
Меню - Свойства таблицы - Тестировать вид просмотра
Меню - Свойства таблицы - Тестировать значение по умолчанию
Меню - Свойства таблицы - Тестировать проводку
на уровень вверх (Окно "Свойства таблицы")


Меню - Свойства таблицы - Сохранить

Команда предназначена для сохранения изменений в свойствах таблицы. Команда записывает все изменения в базу. Можно закрыть окно "Свойства таблицы" без сохранения изменений, если ответить отрицательно на вопрос о сохранении свойств.

Команда эквивалентна нажатию клавиш Ctrl-S.

на уровень вверх (Меню - Свойства таблицы)


Меню - Свойства таблицы - Редактировать

Команда позволяет изменить выделенное свойство.  После окончания внесения изменений надо нажать Enter или нажать мышью где-либо вне окна редактирования. Если свойство не определено, то на месте его значения будет стоять текст пусто.

Команда эквивалентна нажатию клавиши F2 или нажатию мыши на выделенном свойстве.

на уровень вверх (Меню - Свойства таблицы)


Меню - Свойства таблицы - Добавить поле

Команда добавляет поле в таблицу. Выбрасывается диалог и в нем нужно ввести имя поля и его тип. Если выбран тип "Ссылка", то нужно выбрать таблицу, на которую будет ссылаться поле.

Если в таблице уже были записи, то значение нового поля у всех записей будет неопределено.

При добавлении поля добавляется также соответствующая строка в список значений по умолчанию.

Команда доступна, только когда в окне "Свойства таблицы" выбран список полей (для этого надо нажать на ярлык "Поля")

на уровень вверх (Меню - Свойства таблицы)


Меню - Свойства таблицы - Удалить поле

Команда удаляет выделенное поле из таблицы. Перед удалением задается вопрос о подтверждении намерения удалить поле. Если в таблице были записи, то все значения ячеек в столбце, соответствующем выделенному полю, будут потеряны.

Удаление поля может привести к ошибке, если имя этого поля использовалось в выражениях языка запросов, шаблона просмотра или свойств таблицы.

При удалении поля удаляется также соответствующая строка в списке значений по умолчанию.

Команда доступна, только когда в окне "Свойства таблицы" выбран список полей (для этого надо нажать на ярлык "Поля")

на уровень вверх (Меню - Свойства таблицы)


Меню - Свойства таблицы - Добавить проводку

Команда добавляет новый шаблон проводки в список проводок таблицы. Выбрасывается диалог, в котором надо ввести имя для новой проводки. Это имя используется в ярлыках, которые позволяют переключаться между проводками, а так же для диагностики ошибок. После определения имени новая проводка с неопределенными значениями ключей добавляется в список проводок и в разделе "Проводки" окна "Свойства таблицы" появляется новый ярлык.

Команда эквивалентна нажатию клавиш Alt-Ins.

Команда доступна, только когда в окне "Свойства таблицы" выбран список проводок (для этого надо нажать на ярлык "Проводки").

на уровень вверх (Меню - Свойства таблицы)


Меню - Свойства таблицы - Удалить проводку

Команда удаляет текущий шаблон проводки из списка проводок таблицы. Перед удалением задается вопрос о подтверждении намерения удалить проводку.

Удаление шаблона проводки не может вызвыть ошибку в программе, однако влияет на результаты анализа бухгалтерской информации в базе.

Команда эквивалентна нажатию клавиш Alt-Del.

Команда доступна, только когда в окне "Свойства таблицы" выбран список проводок (для этого надо нажать на ярлык "Проводки").

на уровень вверх (Меню - Свойства таблицы)


Меню - Свойства таблицы - Справочник полей

Команда предназначена для облегчения программирования выражений, определяющих свойства таблицы, то есть значений по умолчанию, значений ключей шаблонов проводок и вида просмотра. Команда никак не меняет свойств таблицы.

Справка состоит в том, что выбрасывается диалог со списком полей таблицы с возможностью формирования выражения из дерева, которое образуют ссылочные поля. Если нажать в этом диалоге OK, то сформированное выражение будет занесено в буфер и может быть вставлено при редактировании любого текста с помощью клавиш Shift-Ins (или через меню).

на уровень вверх (Меню - Свойства таблицы)


Меню - Свойства таблицы - Справочник счетов

Команда предназначена для облегчения программирования выражений, определяющих счета дебета и кредита в шаблонах проводок. Команда никак не меняет свойств таблицы.

Справка состоит в том, что выбрасывается диалог со списком всех ключей и значений для счетов базы с возможностью формирования выражения для счета. Если нажать в этом диалоге OK, то сформированное выражение будет занесено в буфер и может быть вставлено при редактировании любого текста с помощью клавиш Shift-Ins (или через меню).

на уровень вверх (Меню - Свойства таблицы)


Меню - Свойства таблицы - Тестировать вид просмотра

Команда выполняет проверку выражения для вида просмотра, записаннного в нижней части таблицы, на синтаксическую корректность. Если обнаружена ошибка, то выбрасывается диалог с диагностикой ошибки и часть текста, вызвавшая ошибку, выделяется.

Свойства таблицы с некорректыми выражениями можно сохранить, и это не вызовет какого-либо предупреждения. Однако если у свойств таблицы есть ошибка в выражении для вида просмотра, то невозможно просматривать ссылки на эту таблицу в других таблицах.

см. также синтаксис вида просмотра
на уровень вверх (Меню - Свойства таблицы)


Меню - Свойства таблицы - Тестировать значение по умолчанию

Команда выполняет проверку выражения для выделенного значения по умолчанию на синтаксическую корректность. Если обнаружена ошибка, то выбрасывается диалог с диагностикой ошибки и часть текста, вызвавшая ошибку, выделяется.

Свойства таблицы с некорректыми выражениями можно сохранить, и это не вызовет какого-либо предупреждения. Однако если у свойств таблицы есть ошибка в выражении для значения по умолчанию, то всякий раз при открытии этой таблицы для изменеия ее записей будет выдаваться сообщение об ошибке, и значение по умолчанию для соответствующего поля не будет вычисляться.

Команда доступна, только когда в окне "Свойства таблицы" выбран список значений по умолчанию (для этого надо нажать на ярлык "Значения по умолчанию")

см. также синтаксис значения под умолчанию
на уровень вверх (Меню - Свойства таблицы)


Меню - Свойства таблицы - Тестировать проводку

Команда выполняет проверку выражения для выделенного значения ключа шаблона проводки на синтаксическую корректность. Если обнаружена ошибка, то выбрасывается диалог с диагностикой ошибки и часть текста, вызвавшая ошибку, выделяется.

Свойства таблицы с некорректыми выражениями можно сохранить, и это не вызовет какого-либо предупреждения. Однако если у свойств таблицы есть ошибка в шаблоне проводок, то всякий раз при извлечении бухгалтерской информации из базы будет выдаваться сообщение об ошибке, и проводки, определяемые ошибочным шаблоном, будут игнорироваться.

Ошибки в проводках могут возникнуть, даже если тест показал корректность всех выражений в шаблоне. Это возможно в случае, когда счета проводок в базе не согласованы, и в случае, когда значение поля, используемого в выражении, не определено для некоторой записи таблицы.

Команда доступна, только когда в окне "Свойства таблицы" выбран список проводок (для этого надо нажать на ярлык "Проводки"), и выбран какой-либо элемент в списке значений ключей текущей проводки.

см. также синтаксис задания счета (для ключей "дебет" и "кредит")
см. также синтаксис значения по умолчанию (он такой же, как для ключей "сумма", "количество" и "дата")
на уровень вверх (Меню - Свойства таблицы)


Окно "Текст запроса"

Окно "Текст запроса" открывается в меню "База - Текст запроса" ( перейти ). Оно предназначено для набора и изменения текста запросов. В окне можно редактировать текст, как в обычном текстовом редакторе. Это значит, что можно выделять блок текста, курсором с нажатием клавиши Shift, или мышью, и использовать команды "Копировать" (Ctrl-Ins),  "Вырезать" (Shift-Del) и "Вставить" (Shift-Ins).

В верхней части рамки окна расположены кнопки "Сохранить", "Компилировать", "Выполнить", "Справка", соответствующие командам меню "Запрос".

Меню - Запрос
далее (Окно "Шаблон отчета")
на уровень вверх (Окна и меню программы)


Меню - Запрос

В меню собраны команды для работы с текстом запроса.

Меню - Запрос - Сохранить
Меню - Запрос - Компилировать
Меню - Запрос - Выполнить
Меню - Запрос - Справочник полей
Меню - Запрос - Справочник счетов
на уровень вверх (Окно "Текст запроса")


Меню - Запрос - Сохранить

Команда сохраняет в базе текущий текст запроса. Можно закрыть окно "Текст запроса" без сохранения изменений, если ответить отрицательно на вопрос о сохранении изменений.

Команда аналогична нашатию клавищ Clrl-S и кнопке на рамке окна "Текст запроса".

на уровень вверх (Меню - Запрос)


Меню - Запрос - Компилировать

Команда предназначена для проверки текста запроса на синтаксическую корректность. При обнаружении ошибки будет выдана диагностика ошибки и часть текста, которая не была правильно понята компилятором запросов, будет выделена.

Если при компиляции ошибок не обнаружено, это не значит, что запрос гарантированно будет работать, так как ошибки могут появится и при исполнении.

Команда аналогична нажатию клавиш Alt-F9 и кнопке на рамке окна "Текст запроса".

см. также программирование на встроенном языке
на уровень вверх (Меню - Запрос)


Меню - Запрос - Выполнить

Команда пытается исполнить запрос в соответствии с введенным текстом. Если текст запроса синтаксически некорректный или произошла ошибка во время исполнения, будет выдана диагностика ошибки и часть текста, которая вызвала ошибку, будет выделена..

Сохраненный в базе запрос также можно выполнить из окна "База данных" ( перейти ), ести щелкнуть мышью на название запроса. При этом так же, если возникнет ошибка, то запрос не будет исполнятся и будет выдана диагностика ошибки.

Команда аналогична нажатию клавиш F9 и кнопке на рамке окна "Текст запроса".

см. также программирование на встроенном языке
на уровень вверх (Меню - Запрос)


Меню - Запрос - Справочник полей

Команда предназначена для облегчения программирования выражений, входящих в текст запроса. Справка состоит в том, что выбрасывается диалог со списком переменных запроса с возможностью выбора перемнной для формирования выражения. Если нажать в этом диалоге OK, то сформированное выражение будет занесено в буфер и может быть вставлено при редактировании любого текста с помощью клавиш Shift-Ins (или через меню). Если при вызове команды курсор находился на имени какой-либо существующей в базе таблицы, то в справке дополнительно будет список полей этой таблицы с деревом,  которое образуют ссылочные поля.

Команда аналогична кнопке на рамке запроса.

на уровень вверх (Меню - Запрос)


Меню - Запрос - Справочник счетов

Команда предназначена для облегчения записи названий счетов, которые могут использоваться при программировании функций извлечения бухгалтерской информации из базы.

Справка состоит в том, что выбрасывается диалог со списком всех ключей и значений для счетов базы с возможностью формирования выражения для счета. Если нажать в этом диалоге OK, то сформированное выражение будет занесено в буфер и может быть вставлено при редактировании любого текста с помощью клавиш Shift-Ins (или через меню).

на уровень вверх (Меню - Запрос)


Окно "Шаблон отчета"

Окно "Шаблон отчета" открывается в меню "База - Шаблон отчета" ( перейти ). Оно предназначено для редактирования шаблона отчета, который может прилагаться к запросу. Поскольку отчеты предназначены для вывода на печать, то при редактировании шаблона отчета используются средства, обычные для редактирования печатных документов.

В окне представлено графическое представление будущего отчета, с той особенностью, что в окне обозначены границы полос, соответствующих отдельным блокам отчета. Полосы необходимы для того, чтобы печатать списки произвольной длины с разбиением на страницы.

Кроме границ полос, возможными элементами шаблона являются текст и прямоугольник (рамка). Если нажать мышью на любой элемент в режиме выбора элемента, то элемент будет выделен и можно будет менять его положение, размеры и свойства. Свойства элемента можно менять, если щелкнуть на него мышью в режиме выбора. Если элементы оказались наложены друг на друга, то выбирается верхний из них, и для того, чтобы выбрать необходимый элемент среди совпадающих, следует воспользоваться командами "Отчет - Переместить вверх" или "Отчет - Переместить вниз".

В левой части экрана располагается столбец с кнопками инструментов, соответствующими командам меню "Отчет".

Меню - Отчет
далее (Окно "Шаблон просмотра")
на уровень вверх (Окна и меню программы)


Меню - Отчет

В меню собраны команды для работы с шаблоном отчета.

Меню - Отчет - Сохранить
Меню - Отчет - Добавить полосу
Меню - Отчет - Добавить прямоугольник
Меню - Отчет - Добавить текст
Меню - Отчет - Выбрать элемент
Меню - Отчет - Переместить вверх
Меню - Отчет - Переместить вниз
Меню - Отчет - Удалить элемент
Меню - Отчет - Показать сетку
Меню - Отчет - Положить на сетку
Меню - Отчет - Свойства
на уровень вверх (Окно "Шаблон отчета")


Меню - Отчет - Сохранить

Команда сохраняет в базе текущий шаблон отчета. Можно закрыть окно "Шаблон отчета" без сохранения изменений, если ответить отрицательно на вопрос о сохранении изменений.

Команда аналогична нашатию клавищ Clrl-S.

на уровень вверх (Меню - Отчет)


Меню - Отчет - Добавить полосу

Команда включает режим добавления полосы. После этого нужно мышью указать положение полосы. Полосы можно добавлять только ниже уже добавленных, это указывает значек курсора.

Полоса может иметь следующий тип:
 
 
Тип Описание
Заголовок страницы Печатается сверху на кахдой странице
Заголовок отчета Печатается один раз на первой странице (Ниже заголовка страницы)
Шапка детализации Печатается на каждой странице, но ниже заголовка страницы и заголовка отчета
Полоса детализации Для определения этого типа полосы надо указать набор данных из запроса. Полоса будет печататься столько раз, сколько записей в наборе данных.
Низ страницы Печатается на каждой странице внизу
Низ детализации Печатается один раз в конце списка деталей.

Команда аналогична нажатию клавиш Alt-B и   кнопке на панели инструментов.

на уровень вверх (Меню - Отчет)


Меню - Отчет - Добавить прямоугольник

Команда включает режим добавления прямоугольника. После этого мышью нужно выбрать положение прямоугольника, внутри любой из добавленных полос.

Прямоугольники позволяют создавать рамки и линии в документе.

Команда аналогична нажатию клавиш Alt-R и   кнопке на панели инструментов.

на уровень вверх (Меню - Отчет)


Меню - Отчет - Добавить текст

Команда включает режим добавления текста. После этого мышью нужно выбрать положение текста, внутри любой из добавленных полос.

Добавленный текст может быть определен в сразу шаблоне отчета (статический текст) или при формировании отчета. В последнем случае в шаблоне отчета необходимо указать название переменной или поля набора данных, которое должно быть подставлено в определенное для этого текста положение. При редактировании шаблона вместо реального содержания текста показывается введеннное название переменной.

Кроме переменных и полей, текст может быть системной функцией, такой как номер страницы.

Команда аналогична нажатию клавиш Alt-T и   кнопке на панели инструментов.

на уровень вверх (Меню - Отчет)


Меню - Отчет - Выбрать элемент

Команда включает режим выбора элемента. Режим выбора элемента включается всякий раз после добавления любого элемента.

Команда аналогична нажатию клавиш Alt-S и   кнопке на панели инструментов.

на уровень вверх (Меню - Отчет)


Меню - Отчет - Переместить вверх

Команда перемещает выбранный элемент в списке элементов на первое место, так что в дальнейшем при выборе наложенных друг на друга элементов выбираться будет именно он

Команда доступна, только когда выбран какой-либо элемент (кроме полосы).

Команда аналогична нажатию клавиш Alt-U и   кнопке на панели инструментов.

на уровень вверх (Меню - Отчет)


Меню - Отчет - Переместить вниз

Команда перемещает выбранный элемент в списке элементов на последнее место, так что в дальнейшем при выборе наложенных друг на друга элементов он не будет выбираться.

Команда доступна, только когда выбран какой-либо элемент (кроме полосы).

Команда аналогична нажатию клавиш Alt-D и   кнопке на панели инструментов.

на уровень вверх (Меню - Отчет)


Меню - Отчет - Удалить элемент

Команда предназначена для удаления выбранного элемента. После подтверждения выбранный элемент удаляется.

Команда аналогична нажатию клавиши Del и кнопке на панели инструментов.

на уровень вверх (Меню - Отчет)


Меню - Отчет - Показать сетку

Команда включает или выключает режим показа сетки. Сетка существует в каждом шаблоне и предназначена для того, чтобы элементы (прямоугольники и текст) можно было легко выравнивать друг относительно друга. В режиме показа сетки в окно "Шаблон отчета" выглядит расчерченным на мелкие прямоугольники.

Шаг сетки можно установить в диалоге "Свойства" в разделе "Отчет".

Команда аналогична нажатию клавиши F4 и   кнопке на панели инструментов.

на уровень вверх (Меню - Отчет)


Меню - Отчет - Положить на  сетку

Команда включает или выключает режим выравнивания элементов относительно сетки. Сетка существует в каждом шаблоне и предназначена для того, чтобы элементы (прямоугольники и текст) можно было легко выравнивать друг относительно друга. В режиме выравнивания при изменении размеров элементоа, после того как мышь была отпущена, размеры элемента будут автоматически изменены так, чтобы они совпадали с ближайшими линиями сетки.

Шаг сетки можно установить в диалоге "Свойства" в разделе "Отчет".

Команда аналогична нажатию клавиши F5 и   кнопке на панели инструментов.

на уровень вверх (Меню - Отчет)


Меню - Отчет - Свойства

Команда вызывает диалог для задания свойств выделенного элемента.

Команда аналогична нажатию клавиш Alt-Enter и двойному щелчку мыши на выделенном элементе.

на уровень вверх (Меню - Отчет)


Окно "Шаблон просмотра"

Окно "Шаблон просмотра" открывается в меню "База - Шаблон просмотра" ( перейти ). Оно предназначено для редактирования шаблона просмотра таблицы, который может прилагаться к запросу. Шаблон просмотра всегда привязан к конкретной таблице. Имя этой таблицы указано в заголовке окна.

В окне представлен список, в первой колонке которого записаны значения выражений, определяющих шаблон просмотра, а во второй колонке - описания (ключи) для этих значений. Чтобы изменить значение, надо его выбрать и войти в режим редактирования (нажав на него мышью или нажав F2). Если значение не определено, на его месте стоит текст пусто.
 
Тип значения Синтаксис Комментарий
Видимые поля Список имен полей таблицы, которые видны при просмотре  
Сортировка перейти  
Условие отбора перейти  
Значение по умолчанию для поля перейти Могут использоваться переменные из запроса
Условие отбора для ссылочного поля перейти Имена полей должны быть заданы исходя из текущей записи
Условие сортировки для ссылочного поля перейти  
Вид просмотра для ссылочного поля перейти  

Меню - Шаблон
далее (Окно "Отчет")
на уровень вверх (Окна и меню программы)


Меню - Шаблон

В меню собраны команды для работы с шаблоном просмотра.

Меню - Шаблон - Сохранить
Меню - Шаблон - Выбрать таблицу
Меню - Шаблон - Справочник
на уровень вверх (Окно "Шаблон просмотра")


Меню - Шаблон - Сохранить

Команда сохраняет в базе текущий шаблон просмотра. Можно закрыть окно "Шаблон просмотра" без сохранения изменений, если ответить отрицательно на вопрос о сохранении изменений.

Команда аналогична нашатию клавищ Clrl-S.

на уровень вверх (Меню - Шаблон)


Меню - Шаблон - Выбрать таблицу

Каждый шаблон просмотра, кроме запроса, связан с некоторй таблицей. Эта таблица определяется, во-первых, сразу при создании шаблона просмотра, а во-вторых, ее можно изменить через меню "Выбрать таблицу". Однако при этом все выражения в шаблоне просмотра, которые были связаны с полями старой таблицы, пропадут.

на уровень вверх (Меню - Шаблон)


Меню - Шаблон - Справочник

Команда предназначена для облегчения программирования выражений в шаблоне просмотра. Справка состоит в том, что выбрасывается диалог со списком полей таблицы и переменных запроса с возможностью формирования выражения из дерева, которое образуют ссылочные поля. Если нажать в этом диалоге OK, то сформированное выражение будет занесено в буфер и может быть вставлено при редактировании любого текста с помощью клавиш Shift-Ins (или через меню).

на уровень вверх (Меню - Шаблон)


Окно "Отчет"

Окно "Отчет" открывается при исполнении запросов. Содержимое окна "Отчет" в этом случае определяется шаблоном отчета, прилагаемым к запросу. Окно "Отчет" может также открываться при формировании стандартных отчетов; тогда его свойства можно менять в меню "Файл - Установки" ( перейти ).

Содержимое окна "Отчет" можно распечатать. Для этого в меню "Файл" ( перейти ) надо воспользоваться командой "Печать", либо командой "Предварительный просмотр". Следует отметить, что в окне "Отчет" может быть представлен не весь документ, при больших объемах, а в режиме "Предварительный просмотр" или "Печать" документ формируется полностью, с разбивкой на страницы.

см. также редактирование шаблона отчета
на уровень вверх (Окна и меню программы)



 
 
 



 
 
 

Программирование на встроенном языке, функции и процедуры
 Синтаксис
 Переменные
 Выражения
 Список элементарных функций
 Организация интерфейса

 на уровень вверх (Содержание справки)



 
 
 

Синтаксис
 Синтаксис - Язык запросов
 Синтаксис - Значения по умолчанию
 Синтаксис - Задание счета
 Синтаксис - Задание условия отбора
 Синтаксис - Задание условия сортировки
 Синтаксис - Вид просмотра
  далее (Переменные)
  на уровень вверх (Программирование на встроенном языке)



 
 
 

Синтаксис - Язык запросов

Исходный текст запроса представляет собой набор инструкций, определяющих последовательность обработки данных. Инструкция — это есть набор лексем, следующих друг за другом в определенном порядке и, при необходимости, отделенных друг от друга разделительными символами. Разделительными являются следующие символы:
     символ табуляции;
     пробел;
     символы перевода строки.

Инструкции бывают 6-ти типов:
     условный переход; (перейти )
     цикл; (перейти )
     присвоение; (перейти )
     вызов SQL - оператора; (перейти )
     вызов процедуры; (перейти )
     комментарий (перейти )

Инструкции должны отделятся друг от друга разделительными символами.

  на уровень вверх (Синтаксис)



 
 
 

Синтаксис - Условный переход

Синтаксис условного перехода следующий:

if <логическое выражение> then {<инструкция>} [else {<инструкция>}] end_if

<логическое выражение> = <логическое выражение> and|or <логическое выражение>
                                                | not <логическое выражение>
                                                | (<логическое выражение>)
                                                | <сравнение>
                                                | {dsnext | dsprev} ( <переменная> )

<сравнение> = <выражение> > | < | <= | >= | == | != <выражение>

см. Присвоение (определение выражения)
на уровень вверх (Синтаксис языка запросов)



 
 
 

Синтаксис - Цикл

Синтаксис цикла следующий:

while <логическое выражение> do {<инструкция>} end_while

<логическое выражение> = <логическое выражение> and|or <логическое выражение>
                                                | not <логическое выражение>
                                                | (<логическое выражение>)
                                                | <сравнение>
                                                | {dsnext | dsprev} ( <переменная> )

<сравнение> = <выражение> > | < | <= | >= | == | != <выражение>

см. Присвоение (определение выражения)
на уровень вверх (Синтаксис языка запросов)



 
 
 

Синтаксис - Присвоение

Синтаксис присвоения следующий:

<переменная> | <поле> "=" <выражение>

<переменная> есть идентификатор, то есть последовательность символов A..Z, a..z, А..Я, а..я, 0..9 и символа _
(подчеркивание). Причем имя переменной не должно начинаться с цифры и не может является ключевым словом.

<поле> = <переменная>.<имя поля>

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

<выражение> = <выражение> + | - | * | / | ^  <выражение>
                                    | - <выражение>
                                    | (<выражение>)
                                    | <вызов функции>
                                    | <инструкция SELECT>

<вызов функции> = <ключевое слово>( {<выражение>|<переменная>} )

см. Инструкция SELECT (определение инструкции SELECT)
см. также Переменные - Присвоение
на уровень вверх (Синтаксис языка запросов)



 
 
 

Синтаксис - Инструкция SELECT

<инструкция SELECT> = select  * | { <имя_поля> | <выражение> [ as <имя поля>] }
  from {<имя_таблицы>}
  [where <логическое выражение>]
  [group by {<имя поля>}]
  [having <условие_отбора>]
  [order by {<имя поля>[ asc | desc]]

Тип <имя таблицы> соответствует имени таблицы базы данных. В нем могут присутствовать пробелы и знаки препинания, в таком случае имя таблицы должно заключаться в квадратные скобки, иначе можно записывать его, как обычный идентификатор.

Выражения в инструкции SELECT могут содержать имена полей без указания таблицы или набора данных, если это не приводит к противоречию.

см. Присвоение (определение выражения и имени поля)
см. Условный переход (определение логического выражения)
на уровень вверх (Синтаксис языка запросов)



 
 
 

Синтаксис - SQL-оператор

<SQL оператор> = <оператор INSERT> | <оператор DELETE> | <оператор UPDATE>

<оператор INSERT> = insert into <имя таблицы>  [ ( {<имя поля>} ) ] values ( { <выражение> } )
                    |  insert into <имя таблицы> <переменная>

<оператор DELETE> = delete from <имя_таблицы> where <логическое выражение>

<оператор UPDATE> = update * | { <имя_поля> | <выражение> [ as <имя поля>] }  from <имя_таблицы>  [where <логическое выражение>]

см. Присвоение (определение выражения и имени поля)
см. Условный переход (определение логического выражения)
см. Инструкция SELECT (определение имени таблицы)
на уровень вверх (Синтаксис языка запросов)



 
 
 

Синтаксис - Вызов процедуры

Синтаксис вызова процедуры следующий:

<вызов процедуры> = <ключевое слово> ( {<выражение>|<переменная>} )

см. Присвоение (определение выражения и переменной)
на уровень вверх (Синтаксис языка запросов)



 
 
 

Синтаксис - Комментарий

Коментарии в запросах начинаются с комбинации символов "//"(как в C++) и продолжаются до конца строки. В комментариях можно писать любой текст, он будет игнорироваться программой.

на уровень вверх (Синтаксис языка запросов)



 
 
 

Синтаксис - Значения по умолчанию

Чтобы задать значение по умолчанию в соответствующем месте (в свойствах таблицы или в шаблоне просмотра), необходимо определить
арифметическое выражение, которое может содержать поля текущей таблицы, поля таблиц, на которые ссылается текущая таблица, знаки операций, скобки “+ - * / ( )”, а также вызовы встроенных функций. При этом проверяется соответствие типов.

При задании значений по умолчанию формируется таблица зависимостей и при редактировании таблицы поля, зависящие от других
полей этой таблицы пересчитываются автоматически.

 см. также определение выражения в языке запросов
 см. также тестирование значение по умолчанию
  на уровень вверх (Синтаксис)



 
 
 

Синтаксис - Задание счета

Обозначение счёта, которое используется при определении проводки, включает в себя и сам номер счета, и его субсчета, и его аналитические
признаки. Оно состоит из списка характеристик типа “ключ=значение”. Ключ представляет собой слово, описывающее тип учета ( собственно
разбивка по счетам представляет собой также один из типов учета ), а значение - строку, характеризующую конкретное значение счета, субсчета
или аналитического признака; например, счет = "41", товар = "пленка" . Значение может быть либо постоянным ( тогда оно записывается в кавычках ), либо выражением, использующим поля таблицы.

 см. также тестирование проводки
  на уровень вверх (Синтаксис)



 
 
 

Синтаксис - Задание условия отбора

Чтобы задать условие отбора в шаблоне просмотра, необходимо определить логическое выражение, которое может содержать логические операции AND, OR, NOT, операции сравнения, переменные из запроса, поля текущей таблицы, поля таблиц, на которые ссылается текущая таблица, знаки арифметических операций, скобки “+ - * / ( )”, а также вызовы встроенных функций. При этом проверяется соответствие типов.

 см. также синтаксис значений по умолчанию
 см. также определение логического выражения в языке запросов
  на уровень вверх (Синтаксис)



 
 
 

Синтаксис - Задание условия сортировки

Условие сортировки в шаблоне просмотра должно представлять собой список полей, по которым производится сортировка. Поля в списке должны быть разделены запятыми. После поля может следовать ключевое слово ASC или DESC (сортировка, соответственно, по возрастанию или по убыванию).

Сортировать можно строки, числа и даты (но не ссылки).

 см. также синтаксис инструкции SELECT  в языке запросов
  на уровень вверх (Синтаксис)



 
 
 

Синтаксис - Вид просмотра

Каждая таблица, имеет вид просмотра, который иллюстрирует содержание каждой записи этой таблицы. Это необходимо для удобства работы со ссылочным типом в других таблицах.

Вид просмотра имеет очень простой и интуитивно понятный формат, а именно она состоит из комментариев, слова заключенные в кавычки, и имен полей после которых может следовать двоеточие и число, указывающих какое число символов из названия содержимого поля необходимо включить в вид просмотра. Эти два элемента разделяются запятыми и могут включаться в вид просмотра в любом порядке и в любом количестве, например:

таблица товары содержит поля: наименование, себестоимость , цена и для нее задан следующий вид просмотра:
"товар: ", наименование : 12, ", цена: ",цена
в результате для записи (компьютер-Р-133,887,999) при просмотре будет следующая строка:
товар: компьютер-Р-, цена: 999

 см. также тестирование вида просмотра
  на уровень вверх (Синтаксис)



 
 
 

Переменные

Переменные в языке запросов предназначены для хранения и использования различных данных во время исполнения запроса. Переменные, определенные в тексте запроса, могут использоваться в шаблоне отчета и шаблоне просмотра, которые приложены к этому запросу. Каждая переменная имеет имя, которое может состоять из символов 0..9, a..z, A..Z, а..я, А..Я и символа "_" (подчеркивание) и не должно начинаться с цифры. Язык запросов не различает регистров.

 Переменные - Типы переменных
 Переменные - Тип DATASET
 Переменные - Присвоение
 Переменные - Аргументы процедур
 далее (Выражения)
 на уровень вверх (Программирование на встроенном языке)



 
 
 

Переменные - Типы переменных

Типы переменных в языке запросов соответствуют типам полей в базе данных, это:

    NUMERIC   Число с плавающей точкой в пределах от -1.7E+308 до 1.7E+308
    STRING       Строка длинной не более 32767 символов
    DATE           Дата
    HANDLE     Специальный тип хранящий в себе ссылку на запись в базе данных.

Кроме того, имеются еще два типа:

    BOOLEAN  Логический тип, принимающий всего два значения TRUE или FALSE
    DATASET    Набор данных.

 см. Тип DATASET
 на уровень вверх (Переменные)



 
 
 

Переменные - Тип DATASET

Переменная типа DATASET представляет собой таблицу, которая имеет записи и поля. В отличии от таблицы базы данных переменная типа DATASET является временной таблицей в оперативной памяти и уничтожается после завершения выполнения запроса. Поля переменной типа DATASET имеют тип, как и поля в базе. В запросах можно использовать значения этих полей и присваивать им значения. Для этого после имени переменной типа DATASET через точку пишется имя поля. Каждая переменная типа DATASET имеет текущую запись, и когда производится операция с полем, то берется значение ячейки в текущей записи. Текущая запись может быть не определена или таблица может не иметь записей, то есть быть пустой - в этом случае при исполнении запроса будет сообщение об ошибке.
 

 на уровень вверх (Переменные)



 
 
 

Переменные - Присвоение

Для того чтобы определить переменную необходимо присвоить ей какое либо значение. Тип переменной может меняться на протяжении выполнения программы и определяется типом последнего присвоенного выражения. Если имя переменной стоящей слева от символа '=' встречается в запросе впервые, то после выполнения оператора переменная считается определенной, а также получает значение и тип выражения стоящего справа от символа '='. Если же имя переменная стоящая слева от символа '=' была определена ранее, то после выполнения
оператора старое значение переменной уничтожается и она получает значение и тип выражения стоящего справа от символа '='.
Все переменные, используемые в выражении стоящем справа от символа '=', должны быть определены ранее с помощью оператора присвоения.

Присваивать значения можно не только переменным, но и полям набора данных.

 см. Типы переменных
 см. также определение синтаксиса присвоения
 на уровень вверх (Переменные)



 
 
 

Переменные - Аргументы процедур

Значение переменной может меняться не только при присвоении ей значения при помощи оператора =. Существуют процедуры и функции, принимающие переменную как аргумент и тогда ее значение может в дальнейшем измениться. Переменная, однако, должна быть при этом уже определена.

К таким процедурам и функциям относятся процедуры и функции для изменения текущей записи в наборе данных, принимающие аргументом переменную типа DATASET; процедуры описания элементов формы, когда значение переменных меняется после показа формы; процедуры подсчета оборотов по счетам, когда значение переменных меняется после просмотра базы.

 на уровень вверх (Переменные)



 
 
 

Выражения

Выражения позволяют получать новые данные в запросе из уже определенных. Выражения являются основным средством выполнения многих операций. Выражение представляет комбинацию операторов, операндов и скобок,  дающую определенный результат.

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

Некоторые выражения дают логические результаты ИСТИНА или ЛОЖЬ, если в них используются операции сравнения.

Существуют следующие типы операторов:
унарный минус
арифметические операции (*, /, +, -,^)
операции сравнения (==, !=, <, >, <=, >=)
логические операции (AND, OR, NOT)

В качестве операнда может выступать константа, идентификатор переменной, поле в наборе данных, вызов функции либо выражение заключенное в круглые скобки. Константы бывают строковые и числовые. Числовая константа - это последовательность цифр, возможно, разделенная символом точка, для указания дробной части. Существует также ряд ключевых слов, обозначающих числовые константы. Строковая константа - это последовательность символов, заключенная в двойные кавычки. Вычисление выражений происходит, во-первых, в соответствии с порядком круглых скобок, во-вторых, в соответствии с приоритетом операторов, и, наконец, в соответствии с порядком следования операторов.

Операторы
Приоритет операторов
Вызов функции
Ключевые слова - константы
см. также определение синтаксиса выражения
далее (Список элементарных функций)
на уровень вверх (Программирование на встроенном языке)



 
 
 

Операторы

Ниже приведено описание всех операторов, которые можно использовать в выражениях:
 
 
 
Операция Тип левого операнда Тип правого операнда Тип результата Описание

(унарный минус)
нет NUMERIC NUMERIC Изменение знака числа на противоположный

(унарный плюс)
нет NUMERIC NUMERIC Оставляет число без изменений :-)
* NUMERIC NUMERIC NUMERIC Умножение двух чисел
/ NUMERIC NUMERIC NUMERIC Деление числа на число
+ NUMERIC NUMERIC NUMERIC Сложение двух чисел
+ STRING STRING STRING Склейка двух строк
+ DATE NUMERIC DATE Добавление к дате числа (т.е. увеличение даты на указанное количество дней)
- NUMERIC NUMERIC NUMERIC Разность двух чисел
- DATE NUMERIC DATE Вычитание из даты числа (т.е. уменьшение даты на указанное количество дней)
^ NUMERIC NUMERIC NUMERIC Возведение в степень
== NUMERIC 
STRING 
DATE 
BOOLEAN 
HANDLE
NUMERIC 
STRING 
DATE 
BOOLEAN 
HANDLE
BOOLEAN Равенство (типы левого и правого операндов должны совпадать)
!= NUMERIC, 
STRING, 
DATE, 
BOOLEAN, 
HANDLE
NUMERIC, 
STRING, 
DATE, 
BOOLEAN, 
HANDLE
BOOLEAN Не равенство (типы левого и правого операндов должны совпадать)
<,>,<=,>= NUMERIC, 
DATE
NUMERIC, 
DATE
BOOLEAN Соответствующее сравнение чисел, либо дат
AND BOOLEAN BOOLEAN BOOLEAN Логическое И
OR BOOLEAN BOOLEAN BOOLEAN Логическое ИЛИ
NOT нет BOOLEAN BOOLEAN Логическое отрицание

см. Приоритет операторов
см. также типы переменных
см. также список элементарных фунций
на уровень вверх (Выражения)



 
 
 

Приоритет операторов

Вычисление выражения происходит в соответствии с приоритетом операторов, т.е. сначала выполняется оператор с более высоким приоритетом, затем с более низким и т.д. Если необходимо изменить порядок вычисления, то оператор с более низким приоритетом следует заключить в круглые скобки.
Ниже перечислены операторы в порядке убывания приоритета:

-, + (унарные минус и плюс), NOT
^
*, /
+, -
<, >, <=, >=, ==, !=
AND
OR

см. Операторы
на уровень вверх (Выражения)



 
 
 

Вызов функции

В выражение в качестве операнда может входить вызов функции. Все функции в запросах являются встроенными. Ввызов функции записывается как ключевое слово - имя функции, затем в скобках должны следовать аргументы функции, разделенные запятыми. Количество аргументов и их типы зависят от вызываемой функции. Некоторые функции, если им передать меньше аргументов, чем возможно, считают остальные аргументы заданными по умолчанию. При этом, как правило, если тип аргумента - строка, то недостающая строка считается пустой, число, соответственно, нулем, дата - заведомо устаревшей.

Аргумент функции, в общем, может быть любым выражением, только бы его тип соответствовал требуемому функцией. Некоторые функции, впрочем, требуют в качестве аргумента переменную. Это используется в случае, когда функция изменяет передаваемую переменную.

на уровень вверх (Выражения)



 
 
 

Ключевые слова - константы

Существует ряд ключевых слов, обозначающих числовые константы. Это используется, например, когда аргумент функции является числом, но его назначение состоит в том, чтобы уточнить действия, которые должны быть выполнены функцией - в этом случае он может принимать только несколько возможных значений, и, чтобы не путаться, каждое из этих значений обозначено ключевым словом. Так же происходит, когда функция может возвращать только несколько возможных значений.

на уровень вверх (Выражения)



 
 
 

Список элементарных функций

Ниже приведен список всех встроенных функций языка запросов, предназначенных для работы с типами NUMERIC, DATE и STRING, которые никак не обращаются к базе и не создают каких-либо еще побочных эффектов.
 
 
Ключевое слово Описание
Abs Абсолютное значение числа
AllTrim Удаляет пробелы в начале и конце строки
Date Преобразование строки в дату
Day День месяца в заданной дате
DMY Построение даты по заданным дню, месяцу и году
Fix Целая часть числа
Int Целая часть числа
LastDateOfMonth Последняя дата месяца
Length Длина строки
Lower Перевод строки в нижний регистр
LTrim Удаляет пробелы в начале строки
Month Номер месяца в заданной дате
MonthName Имя заданного месяца
Now Текущая дата
Round Округление числа
RTrim Удаляет пробелы в конце строки
Str Преобразование числа или даты в строку
SubStr Выделение подстроки
SumInWords Запись числа прописью
Upper Перевод строки в верхний регистр
Val Преобразование строки в число
Year Номер года в заданной дате

см. также список операторов
далее (Организация интерфейса)
на уровень вверх (Программирование на встроенном языке)



 
 
 

Now Функция

DATE Now()

Возвращает дату установленную на часах компьютера.

Пример:
завтра = now() + 1

на уровень вверх (Список элементарных функций)



 
 
 

Val Функция

NUMERIC Val(STRING строка)

Преобразует строку состоящую из чисел в число типа NUMERIC.

Аргументы:
STRING строка
Обязательный аргумент строка является любым допустимым строковым выражением .

Дополнительные сведения:
Функция Val прекращает чтение строки на первом символе, который она не может распознать в качестве части числа.  Символы, которые часто рассматриваются в качестве частей числовых значений, типа знака доллара и запятых, не распознаются.

Примечание:
Функция Val распознает в качестве разделителя целой и дробной части только точку (.).

Пример:
Число = Val("1998") // Возвращает 1998.
Число = Val(" 1 99 8") // Возвращает 1.
Число = Val("19 and 98") // Возвращает 19.
Число = Val("19.98") // Возвращает 19.98.

на уровень вверх (Список элементарных функций)



 
 
 

Date, DMY Функции

DATE Date(STRING строка)
DATE DMY(NUMERIC день, NUMERIC месяц, NUMERIC год)

DATE —преобразует строку содержащую запись даты в определенном формате в переменную типа DATE.
DMY —преобразует три числа содержащих день, месяц и год в переменную типа DATE.

Аргументы:
STRING строка
Обязательный аргумент строка является любым допустимым строковым выражением .
NUMERIC день, месяц, год
Обязательные аргументы день, месяц, год  являются любыми допустимыми числовыми выражениями .

Примечание:
Функция Date распознает в качестве разделителей любые символы, кроме букв и цифр. Функция DMY не проверяет корректности задания аргументов.
 

Пример:
дата = Date("1/04/70") // Правильно.
дата = Date("1. 04.1970") // Правильно.
дата = Date("1 апреля 70") // Правильно.
дата = Date("1 апреля 1970") // Правильно.
дата = Date("45 апреля 1970") // Неправильно.
дата = Date("45 04 ") // Неправильно.
дата = Date("1 ялерпа 1970") // Неправильно.
дата = DMY(1, 4, 1970) // Результат <1 апреля 1970.>.
дата = DMY(32, 3, 1970) // Ошибка.
дата = DMY(1, 4, 70) // Результат <1 апреля 1970.>.

на уровень вверх (Список элементарных функций)



 
 
 

LastDateOfMonth Функция

DATE LastDateOfMonth(DATE дата)

Возвращает значение типа DATE, которое содержит последнее число месяца.

Аргументы:
DATE дата
Обязательный аргумент дата является любым допустимым выражением описания даты.

Дополнительные сведения:
Возвращаемое значение содержит не "само последнее число месяца", а дату содержащую последнее число месяца, т.е. LastDateOfMonth(Date("1 04 75")) вернет не 30, но дату "30 апреля 1975."

Пример:
Дата = Date("1 апреля 1975")
Дата = LastDateOfMonth(Дата)
Стока = Str(Дата) // Результат "30.04.75"
Дата = LastDateOfMonth(Date("1 февраля 1975"))
Стока = Str(Дата) // Результат "28.02.75"
Дата = LastDateOfMonth(Date("1 февраля 1996"))
Стока = Str(Дата) // Результат "29.02.96"

на уровень вверх (Список элементарных функций)



 
 
 

Int, Fix Функции

NUMERIC Int(NUMERIC число)
NUMERIC Fix(NUMERIC число)

Возвращают значение типа, совпадающего с типом аргумента, которое содержит целую часть числа.

Аргументы:
NUMERIC число
Обязательный аргумент число представляет значение типа NUMERIC или любое допустимое числовое выражение , подлежащее округлению.

Дополнительные сведения:
Обе функции Int и Fix отбрасывают дробную часть числа и возвращают целое значение.
Различие между функциями Int и Fix состоит в том, что для отрицательного значения аргумента число функция Int возвращает ближайшее отрицательное целое число, меньшее либо равное указанному, а Fix ближайшее отрицательное целое число, большее либо равное указанному.  Например, функция Int преобразует -8.4 в -9, а функция Fix преобразует -8,4 в -8.

Примечание:
Выражение Fix(число) эквивалентно следующему:
 Sgn(число) * Int(Abs(число))

Пример:
Число = Int(199.8) // Возвращает 199.
Число = Fix(199.2) // Возвращает 199.
Число = Int(-199.8) // Возвращает -200.
Число = Fix(-199.8) // Возвращает -199.
Число = Int(-199.2) // Возвращает -200.
Число = Fix(-199.2) // Возвращает -199.

на уровень вверх (Список элементарных функций)



 
 
 

Abs Функция

NUMERIC Abs(NUMERIC число)

Возвращает значение типа NUMERIC равное абсолютному значению указанного числа.

Аргументы:
NUMERIC число
Обязательный аргумент число имеет тип NUMERIC и может задаваться любым допустимым числовым выражением.

Дополнительные сведения:
Абсолютное значение числа это его величина с положительным знаком.  Например, оба выражения ABS(-1) и ABS(1) возвращают 1.

Пример:
число = Abs(19.98) // Возвращает 19.98.
число = Abs(-19.98) // Возвращает 19.98

на уровень вверх (Список элементарных функций)



 
 
 

LTrim, RTrim, AllTrim Функции

STRING LTrim(STRING строка)
STRING RTtim(STRING строка)
STRING AllTrim(STRING строка)

Возвращают значение типа STRING, содержащее копию строки, из которой удалены пробелы, находившиеся в начале строки (LTrim), в конце строки (RTrim) или в начале и конце строки (AllTrim).

Аргументы:
STRING строка
Обязательный аргумент строка является любым допустимым строковым выражением .

Пример:
строка = "  <-Trim->  " // Инициализирует строку.
строка_нов = LTrim(строка) // строка_нов = "<-Trim->  ".
строка_нов = RTrim(строка) // строка_нов = "  <-Trim->".
строка_нов = LTrim(RTrim(строка)) // строка_нов = "<-Trim->".
// Тот же результат можно получить с помощью одной функции AllTrim.
строка_нов = AllTrim(строка) // строка_нов = "<-Trim->".

на уровень вверх (Список элементарных функций)



 
 
 

Upper, Lower Функции

STRING Upper(STRING строка)
STRING Lower(STRING строка)

Возвращают значение типа STRING, содержащее копию строки, в котрой все символы переведены в верхний (Upper) или нижний (Lower) регистры.

Аргументы:
STRING строка
Обязательный аргумент строка является любым допустимым строковым выражением .

Пример:
строка = Upper("Дерево") // строка = "ДЕРЕВО"
строка = Lower( строка ) // строка = "дерево".

на уровень вверх (Список элементарных функций)



 
 
 

Day, Month, Year Функции

NUMERIC Day(DATE дата)
NUMERIC Month(DATE дата)
NUMERIC Year(DATE дата, NUMERIC формат = 0)

Возвращает день, месяц, год соответственно от передаваемой даты.

Аргументы:
DATE дата
Обязательный аргумент дата является любым допустимым выражением описания даты.
NUMERIC формат
Необязательный аргумент формат определяет, нужно ли отбрасывать от года первые две цифры (если формат не равен нулю, то нужно)

Пример:
дата = Date("1 апреля 1970")
день = Day(дата)  // день = 1
месяц = Month(дата) // месяц =4
год = Year(дата) // год = 1970
год = Year(дата, 1) // год = 70
год = Year(Date("1.1.2001"), 1) // год = 1

на уровень вверх (Список элементарных функций)



 
 
 

MonthName Функция

STRING MonthName(NUMERIC число)

Возвращает значение типа STRING, которое содержит название месяца в родительном падеже.

Аргументы:
NUMERIC число
Обязательный аргумент число представляет значение типа NUMERIC или любое допустимое числовое выражение , содержащее номер месяца.

Дополнительные сведения:
Диапазон изменения параметра число  от 1 до 12.

Пример:
Дата = Date("1 апреля 1975")
Строка = MonthName(Month(Дата)) // Результат "апреля"
Строка = MonthName(Month(DMY(1,2,1970))) // Результат "февраля"

на уровень вверх (Список элементарных функций)



 
 
 

Length Функция

NUMERIC Length(STRING строка)

Возвращает значение типа NUMERIC, содержащее число символов в строке.

Аргументы:
STRING строка
Обязательный аргумент строка является любым допустимым строковым выражением .

Пример:
строка = "Пример функции Length" // Инициализирует строку.
длина = Length(строка) // Возвращает 21.

на уровень вверх (Список элементарных функций)



 
 
 

Str Функция

STRING Str(NUMERIC число, NUMERIC формат = scNF_INT)
STRING Str(DATE дата, NUMERIC формат = scDF_SHORT)

Возвращает значение типа STRING, являющееся строковым представлением числа либо даты.

Аргументы:
NUMERIC число
Обязательный аргумент число имеет тип NUMERIC и может задаваться любым допустимым числовым выражением.
DATE дата
Обязательный аргумент дата является любым допустимым выражением описания даты.
NUMERIC формат
Необязательный аргумент число имеет тип NUMERIC и может определяться системной константой

Дополнительные сведения:
Список допустимых форматов для преобразования:
scNF_INT  ( =0)            Результат будет содержать запись числа округленного до целого.
scNF_FLOAT  (=1)       Результат будет содержать запись числа округленного до шести знаков после запятой.
scNF_CURENCY (=2)  Результат будет содержать запись числа округленного до двух знаков после запятой.
scDF_SHORT (=0)        Результат будет содержать запись даты в виде '01.04.98'
scDF_LONG (=1)          Результат будет содержать запись даты в виде '1 апреля 1998 г.'

Примечание:
В качестве допустимого десятичного разделителя функция Str воспринимает только точку (.). Вместо языковых констант можно использовать их численное представление.

Пример:
строка = Str(1998) //Возвращает "1998".
строка = Str(19.9856, scNF_INT) //Возвращает "20".
строка = Str(19.9875, scNF_CURENCY) // Возвращает "19.99".
строка = Str(19.9875, scNF_FLOAT) // Возвращает "19.987500".
строка = Str(-19.98) // Возвращает "-20".
дата = Now() // Пусть 1 апреля 1998.
дата = дата + 1
строка = Str(дата) // Возвращает "02.04.98".
строка = Str(дата,scDF_SHORT) // Возвращает "02.04.98".
строка = Str(дата,scDF_LONG) // Возвращает "2 апреля 1998 г.".

на уровень вверх (Список элементарных функций)



 
 
 

Round Функция

NUMERIC Round(NUMERIC число, NUMERIC позиция )

Осуществляет округление числа до указанной позиции.

Аргументы:
NUMERIC число
Обязательный аргумент число представляет значение типа NUMERIC или любое допустимое числовое выражение , подлежащее округлению.
NUMERIC позиция
Обязательный аргумент позиция представляет значение типа NUMERIC или любое допустимое числовое выражение , содержащее позицию округления.

Дополнительные сведения:
число    1 9 9 8 .  1 0 4
позиция -3 -2 -1 0  1 2 3
Округление осуществляется следующим образом: если позиция  = 0 то округление производится до целого, если -1 то до десятков, -2 до сотен и т.д., аналогично позиция = 1 до десятых, 2 до сотых и т.д.

Примечание:
Выражение Round(число, позиция) эквивалентно следующему:
Fix(число * 10^позиция) / 10^позиция

Пример:
Число = Round(199.8104,0) // Возвращает 200.
Число = Round(199.2104,0) // Возвращает 199.
Число = Round(-199.8104,-1) // Возвращает -200.
Число = Round(-199.8104,-2) // Возвращает -200.
Число = Round(-199.2104,1) // Возвращает -199.2.
Число = Round(-199.2154,2) // Возвращает -199.22

на уровень вверх (Список элементарных функций)



 
 
 

SumInWords Функция

STRING SumInWords(NUMERIC число, NUMERIC валюта = scCT_NONE, NUMERIC мелочь = scCT_DECNUMBERS)

Возвращает значение типа STRING, являющееся строковым представлением числа прописью.

Аргументы:
NUMERIC число
Обязательный аргумент число имеет тип NUMERIC и может задаваться любым допустимым числовым выражением.
NUMERIC валюта
Необязательный аргумент валюта имеет тип NUMERIC и может определяться системной константой.
NUMERIC мелочь
Необязательный аргумент число имеет тип NUMERIC и может определяться системной константой.

Дополнительные сведения:
Список допустимых форматов для преобразования:
scCT_NONE (=0)                Результат будет содержать запись округленного числа прописью.
scCT_RUBLE (=1)               Результат будет содержать запись числа прописью с указанием валюты(рубли, копейки).
scCT_DOLLAR (=2)            Результат будет содержать запись числа прописью с указанием валюты(доллары, центы).
scCT_DECNUMBERS (=0) Дробная часть(копейки, центы) записывается цифрами.
scCT_DECWORDS (=1)     Дробная часть(копейки, центы) записывается словами.

Примечание:
Вместо языковых констант можно использовать их численное представление

Пример:
строка = SumInWords(199.8, scCT_NONE) //Возвращает "Двести".
строка = SumInWords(19.98, scCT_RUBLE, scCT_DECNUMBERS) //Возвращает "Девятнадцать рублей 98 копеек".
строка = SumInWords(19.61, scCT_DOLLAR, scCT_DECNUMBERS) // Возвращает "Девятнадцать долларов 61 цент".
строка = SumInWords(19.75, scCT_RUBLE, scCT_DECWORDS) // Возвращает "Девятнадцать рублей семьдесят пять копеек".
строка = SumInWords(-19.75, scCT_DOLLAR, scCT_DECWORDS) // Возвращает "Минус девятнадцать долларов семьдесят пять центов".
строка = SumInWords(-197.5) //Возвращает "Минус сто девяносто семь ".
строка = SumInWords(19.98, scCT_RUBLE) //Возвращает " Девятнадцать рублей 98 копеек ".

на уровень вверх (Список элементарных функций)



 
 
 

SubStr Функция

STRING SubStr(STRING строка, NUMERIC начало, NUMERIC количество = 0)

Возвращает значение типа STRING, содержащее указанное число символов строки.

Аргументы:
STRING строка
Обязательный аргумент строка является любым допустимым строковым выражением .
NUMERIC начало
Обязательный аргумент число имеет тип NUMERIC и может задаваться любым допустимым числовым выражением. Определяет позицию, с которой начинается подстрока.
NUMERIC количество
Необязательный аргумент число имеет тип NUMERIC и может задаваться любым допустимым числовым выражением. Определяет длину подстроки

Примечание:
Если в качестве количества вырезаемых символов передать значение 0 или это количество превышает число символов, расположенных справа от позиции начало, то возвращаются все символы от позиции начало до конца строки..

Пример:
строка = "Пример функции SubStr" // Инициализирует строку.
первое_слово = SubStr(строка, 1, 6) // Возвращает "Пример".
последнее_слово = SubStr(строка, 16, 6) // Возвращает "SubStr".
слова = SubStr(строка, 8) // Возвращает "функции SubStr".
 
на уровень вверх (Список элементарных функций)


Управление последовательностью исполнения


Инструкция if ... then ... else

Инструкция if...then...else исполняет определенные инструкции или наборы инструкций в зависимости от значения условия. Допускаются многократно вложенные инструкции if...then..else, имеющие столько уровней вложения, сколько потребуется.

Исполнение инструкций при выполнении некоторого условия

Для исполнения нескольких строк программы при выполнении некоторого условия используется сокращенный синтаксис инструкции. Этот синтаксис не содержит ключевого слова else, как показано в следующем примере:

текущий_месяц = month( now() )
следующий_месяц = текущий_месяц + 1
if следующий_месяц > 12 then
    следующий_месяц = 1
end_if

Когда выражение, записанное между ключевыми словами if и then, имеет значение TRUE (истинно), выполняются инструкции, записанные между ключевыми словами then и end_if.

Исполнение одних инструкций, когда условие истинно, и других - когда ложно

Инструкция if...then...else используется также для задания двух блоков исполняемых инструкций: один блок выполняется, если условие имеет значение TRUE, а другой - если оно имеет значение FALSE.

следующий_месяц = month( now() )
следующий_год = year( now() )
if следующий_месяц == 12 then
    следующий_месяц = 1
    следующий_год = следующий_год + 1
else
    следующий_месяц = следующий_месяц + 1
end_if

То есть, если употребляется ключевое слово else, то, когда условие имеет значение FALSE, исполняется блок инстркций между ключевыми словами else и end_if


Организация интерфейса

Для организации элементарного интерфейса в языке запросов существует два способа. Первый — вызывать функции:
InputString
InputNumber
InputDate
InputDataSet.

Другой способ — использовать формы.
Форма —это диалоговое окно, в которое можно вставлять строки ввода и списки. Всякая форма имеет в себе две кнопки "ОК" и "Отмена". При нажатии кнопки "ОК" форма закрывается, все информация сохраняется в соответствующих переменных и выполнение запроса продолжается. При нажатии кнопки "Отмена" данные введенные в поля формы не сохраняются.

Для описания содержимого формы используются специальные процедуры описания элементов формы:
EditString
EditNumber
EditDate
ListSingle
ListMulti

Для активизации формы используется функция ShowForm .

Наконец, сообщения можно выдавать с помощью функции MessageBox

на уровень вверх (Программирование на встроенном языке)


Процедуры описания элементов форм

EditString(VAR STRING строка, STRING заголовок = "")
EditNumber(VAR NUMERIC число, STRING заголовок = "")
EditDate(VAR DATE дата, STRING заголовок = "")
ListSingle(VAR DATASET набор_данных, STRING заголовок = "")
ListMulti(VAR DATASET набор_данных, STRING заголовок = "")

Эти процедуры сложат для описания элементов предназначенных для ввода строки (EditString), числа (EditNumber), даты (EditDate), выбора одной строки из набора данных (ListSingle), выбора нескольких строки из набора данных (ListMulti). Переменной передаваемой в качестве первого параметра этих процедур необходимо заранее присвоить соответствующее значение, причем значение этой переменной изменится только после вызова функции ShowForm.

Аргументы:
STRING строка
Обязательный аргумент строка является строковой переменной.
NUMERIC число
Обязательный аргумент число является числовой переменной.
DATE дата
Обязательный аргумент дата является переменной типа DATE.
DATASET набор_данных
Обязательный аргумент набор_данных является переменной типа DATASET.
STRING заголовок
Необязательный аргумент заголовок является любым допустимым строковым выражением.

Пример:
ds_платеж = SELECT MAX(Номер) as Номер FROM Платежи
n_сумма_платежа = 0
d_дата_оплаты = Now()
s_тип_платежа = "Предоплата"
s_назначение_платежа = "За ..."
s_номер_платежа = Str(Val(ds_платеж.Номер) + 1, scNF_INT)
ds_организация = SELECT HANDLE AS [Список организаций] FROM Организации
EditNumber(n_сумма_платежа, "Укажите сумму сделки")
EditDate(d_дата_оплаты, "Укажите дату перечисления денег")
EditString(s_тип_платежа, "Укажите тип платежа")
EditString(s_назначение_платежа, "Укажите назначение платежа")
EditString(s_номер_платежа, "Исправьте номер платежа")
ListSingle(ds_организация, "Выберите организацию поставщика")
if ShowForm("Оплата поставщикам") == scBTN_CANCEL then Exit() end_if

на уровень вверх (Организация интерфейса)


InputString(Number, Date, DataSet) Функция

STRING InputString(STRING заголовок, STRING начальное_значение)
NUMERIC InputNumeric(STRING заголовок, NUMERIC начальное_значение)
DATE InputDate(STRING заголовок, DATE начальное_значение)
DATASET InputDataSet(STRING заголовок, DATASET начальное_значение)

Выводит на экран диалоговое окно, содержащее сообщение и поле ввода, устанавливает режим ожидания ввода текста пользователем или нажатия кнопки, а затем возвращает значение соответствующего типа, содержащее текст, введенный в поле.
 

Аргументы:
STRING заголовок
Обязательный аргумент заголовок является любым допустимым строковым выражением . Определяет заголовок окна сообщения
TYPE начальное_значение
Обязательный (для InputDataSet, для остальных необязательный) аргумент начальное_значение является любым допустимым выражением типа TYPE. Выражение, отображаемое в поле ввода как используемое по умолчанию, если пользователь не введет другую строку.
 

Дополнительные сведения:
Функция InputDataSet предоставляет возможность осуществить ручную выборку строк из переменной типа DATASET затем возвращает выбранные строки.

Пример:
Строка = InputString("Введите строку", "по умолчанию" )

на уровень вверх (Организация интерфейса)


ShowForm функция

NUMERIC ShowForm(STRING заголовок = "")

Эта функция выводит диалоговое окно содержащее элементы формы, описанные до ее вызова. Функция возвращает значение типа NUMERIC, которое может равняться scBTN_OK (1) или scBTN_CANCEL (2). После вызова этой функции все элементы формы уничтожаются. И для создания новой формы необходимо снова описывать элементы.

Аргументы:
STRING заголовок
Необязательный аргумент заголовок является любым допустимым строковым выражением.

Пример:
ds_платеж = SELECT MAX(Номер) as Номер FROM Платежи
n_сумма_платежа = 0
d_дата_оплаты = Now()
s_тип_платежа = "Предоплата"
s_назначение_платежа = "За ..."
s_номер_платежа = Str(Val(ds_платеж.Номер) + 1, scNF_INT)
ds_организация = SELECT HANDLE AS [Список организаций] FROM Организации
EditNumber(n_сумма_платежа, "Укажите сумму сделки")
EditDate(d_дата_оплаты, "Укажите дату перечисления денег")
EditString(s_тип_платежа, "Укажите тип платежа")
EditString(s_назначение_платежа, "Укажите назначение платежа")
EditString(s_номер_платежа, "Исправьте номер платежа")
ListSingle(ds_организация, "Выберите организацию поставщика")
if ShowForm("Оплата поставщикам") == scBTN_CANCEL then Exit() end_if

на уровень вверх (Организация интерфейса)


MessageBox Функция

NUMERIC MessageBox(STRING сообщение, STRING заголовок = "", NUMERIC тип = scMB_OK)

Выводит на экран диалоговое окно, содержащее сообщение, устанавливает режим ожидания нажатия кнопки пользователем, а затем возвращает значение типа NUMERIC, указывающее, какая кнопка была нажата.
 

Аргументы:
STRING сообщение
Обязательный аргумент. Строковое выражение, отображаемое как сообщение в диалоговом окне.
STRING заголовок
Необязательный аргумент. Строковое выражение, отображаемое в строке заголовка диалогового окна.
NUMERIC тип
Необязательный аргумент. Числовое выражение , представляющее сумму значений, которые указывают число и тип отображаемых кнопок, тип используемого значка. Значение по умолчанию этого аргумента равняется 0.

Дополнительные сведения:
Ниже перечислены допустимые значения аргумента тип:
scMB_OK (= 0)                                   Отображается только кнопка "OK".
scMB_OKCANCEL (=1)                    Отображаются кнопки "OK" и "Отмена" (Cancel).
scMB_YESNOCANCEL    (=3)          Отображаются кнопки "Да" (Yes), "Нет" (No) и "Отмена" (Cancel).
scMB_YESNO    (=4)                          Отображаются кнопки "Да" (Yes) и "Нет" (No).
scMB_ICONSTOP    (=16)                  Используется значок "Критическое сообщение".
scMB_ICONQUESTION    (=32)        Используется значок "Предупреждающий запрос".
scMB_ICONEXCLAMATION (=48)  Используется значок "Предупреждение".
scMB_ICONINFORMATION (=64)   Используется значок "Информационное сообщение".
Первая группа значений (0–5) указывает число и тип кнопок, отображаемых в окне диалога, вторая группа (16, 32, 48, 64) задает тип используемого значка,. При определении значения аргумента тип следует суммировать не более одного значения из каждой группы.
Возвращаемые значения:
scBTN_OK (=1)               OK
scBTN_CANCEL (=2)    Отмена (Cancel)
scBTN_YES   (=6)            Да (Yes)
scBTN_NO    (=7)            Нет (No)

Примечание:
Данные константы определены в языке DPL. Использование имен этих констант вместо их значений допускается в любом месте программы.

Пример:
nRet = MessageBox("Продолжить?","И что мы будем делать",scMB_YESNO + scMB_ICONQUESTION)
if nRet != scBTN_YES then
nRet = MessageBox("Завершаем! ","Вы этого хотели...")
Exit()
end_if
nRet = MessageBox("Продолжаем!","Вы этого хотели...")

на уровень вверх (Организация интерфейса)


Обмен данными с базой

При исполнении запросов можно считывать данные из таблиц базы и изменять данные в таблицах базы. Для считывания данных применяется инструкция SELECT, которая формирует значение типа DATASET. Это значение может быть присвоено переменной либо использовано как-то иначе. Для изменения данных применяются инструкции INSERT, DELETE и UPDATE.

Для выбора текущей записи в переменной типа DATASET используются функции DsSeek, DsPrev, DsNext и процедуры DsBegin и DsEnd (перейти). Для доступа к полям текущей записи в переменной типа DATASET нужно после имени переменной указать через точку имя поля.


Инструкция SELECT

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

SELECT список полей FROM имя таблицы
[WHERE условие отбора]
[GROUP BY группируемые поля]
[HAVING условие отбора]
[ORDER BY сортируемые поля]

Элементом списка полей может быть имя поля таблицы либо выражение из имен полей таблицы и переменных запроса либо статистическая функция от такого выражения. Для обращения к вычисленному таким образом полю в наборе данных после выражения следует поставить ключевое слово AS и имя поля в наборе данных.

Условие отбора должно представлять из себя логическое выражение с использованием полей таблицы. При отборе полей из таблицы перед группировкой используется условие WHERE; после группировки записи фильтруются с помощью условия HAVING.

При группировке объединяются все записи, у которых значения в группируемых полях совпадают. При этом ко всем полям, кроме производных от группируемых, должна быть применена статистическая функция:
        sum( NUMERIC поле ) - вычисляет сумму значений группируемых полей
        count( поле ) - подсчитывает количество записей
        min( NUMERIC поле ), max( NUMERIC поле ) - подсчитывают минимальное и максимальное из значений группируемых полей.
Статистические функции могут использоваться и без блока группировки. В таком случае они применяютя ко всем записям, так что в результате в наборе данных остается единственная запись.

При сортировке сначала записи сортируются по первому полю в списке сортируемых полей. Затем те записи, у которых значение первого поля совпадает, сортируются по второму полю, и так далее. Для указания порядка сортировки можно после названия поля в списке сортируемых полей поставить ключевое слово ASC (по возрастанию) или DESC (по убыванию). В отсутствии ключевого слова поле сортируется по возрастанию.