Module
Contents
Index 🔎︎

# Данные

На вкладке Данные определены свойства формы, относящиеся к базе данных, связанной с этой формой.

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

Доступ к этой команде

Откройте контекстное меню выбранного элемента формы, перейдите на вкладку Форма - Данные

Откройте панель инструментов "Элементы управления" или "Конструктор форм", щёлкните значок Форма, откройте вкладку Данные

## Анализ команд SQL

Определение необходимости анализа выражения SQL средствами LibreOffice. При выборе варианта "Да" можно нажать кнопку ... рядом с полем списка Содержимое. Откроется окно для графического создания запроса к базе данных. При закрытии этого окна инструкция SQL для созданного запроса вставляется в поле со списком Содержимое.

## Источник данных

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

## Основные поля

При создании подчинённой формы введите поле данных главной формы, отвечающее за синхронизацию между главной и подчинённой формами. Чтобы ввести несколько значений, одновременно нажимайте клавиши SHIFT и ВВОД после каждой строки ввода.

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

См. следующий пример.

Таблица базы данных, на которой основана форма, - пользовательская база данных "Customer", в которой каждому клиенту присвоен уникальный номер в поле данных "Cust_ID". Клиентские заказы регистрируются в другой таблице базы данных. Чтобы отобразить заказы каждого пользователя после их ввода в форму, создайте подчинённую форму. В поле Основные поля введите поле данных из пользовательской базы данных, которое однозначно определяет пользователя, т.е. "Cust_ID". В поле Подчинённые поля введите имя переменной, зависящей от данных поля "Cust_ID", например, x.

В подчинённой форме должны отобразиться соответствующие данные из таблицы заказов ("Orders") для каждого кода клиента (Customer_ID -> x). Это возможно только в том случае, если каждый заказ в таблице заказов назначен только одному пользователю. Или можно воспользоваться другим полем "Customer_ID"; чтобы не перепутать это поле с одноименным полем из главной формы, оно названо "Customer_Number".

Теперь нужно сравнить "Customer_Number" из таблицы "Orders" с "Customer_ID" из таблицы "Customers" с помощью, например, переменной x из следующей инструкции SQL.

SELECT * FROM Orders WHERE Customer_Number =: x (чтобы показать все данные таблицы заказов в подчинённой форме)

или

SELECT Item FROM Orders WHERE Customer_Number =: x (чтобы показать в подчинённой форме только данные из поля "Item" таблицы заказов)

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

## Панель переходов

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

Параметр "Родительская форма" используется для подчинённых форм. Если для подчинённой формы выбран этот параметр, можно осуществлять переход по записям главной формы, если курсор находится в подчинённой форме. Подчинённая форма связана с родительской формой в отношении 1:1, поэтому переход всегда выполняется в родительской форме.

## Подчинённые поля

При создании подчинённой формы необходимо ввести переменную, в которой будут храниться возможные значения поля главной формы. Если подчинённая форма основана на запросе, введите переменную, определенную в запросе. При создании формы с помощью инструкции SQL, введенной в поле Источник данных, введите переменную из инструкции. Для переменной можно выбрать любое имя. Чтобы ввести несколько значений, нажмите сочетание клавиш SHIFT + ВВОД.

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

## Разрешить добавления

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

## Разрешить изменения

Определяет возможность изменения данных.

## Разрешить только добавление

Определяет, какие операции можно выполнять с данными формы: "Да" - только добавление новых данных, "Нет" - добавление и другие операции.

Если параметру Добавить только данные задано значение "Да", изменение или удаление данных невозможно.

## Разрешить удаление

Определяет возможность удаления данных.

## Содержимое

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

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

## Сортировка

Указывает условия сортировки данных в форме. Спецификация условий сортировки подчиняется правилам SQL, кроме раздела ORDER BY. Например, если в одном поле нужно расположить записи базы данных в порядке возрастания, а в другом - в порядке убывания, введите "Forename ASC", "Name DESC" (где "Forename" и "Name" - имена полей данных).

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

## Тип содержимого

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

Если выбрать вариант "Таблица" или "Запрос", форма будет ссылаться на таблицу или запрос, указанный в поле Содержимое. Если требуется создать новый запрос или подчинённую форму необходимо выбрать вариант "SQL". После этого можно ввести инструкцию для запроса SQL или для подчинённой формы в поле Содержимое списка на вкладке "Данные" в свойствах элемента управления.

## Фильтр

Введите требуемые условия фильтрации данных в форме. Спецификации фильтра следуют правилам SQL без использования выражения WHERE. Например, если требуется показать все записи с именем "Mike", введите в поле данных: Forename = 'Mike'. Кроме того, можно объединять условия: Forename = 'Mike' OR Forename = 'Peter'. Будут показаны все записи, удовлетворяющие любому из этих условий.

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

## Цикл

Определяет способ перехода с помощью клавиши TAB. Эта клавиша может использоваться для перемещения вперёд по форме. Если при этом удерживать клавишу SHIFT, переход будет выполняться в обратном направлении. Если после достижения последнего (или первого) поля снова нажать клавишу TAB, возможны различные варианты. Определите ключевой элемент управления при помощи следующих параметров:

Параметр | Значение
По умолчанию | Этот параметр автоматически определяет цикл, привязанный к ссылке на существующую базу данных. Если форма содержит ссылку на базу данных, клавиша TAB по умолчанию инициализирует изменение следующей или предыдущей записи на выходе из последнего поля (см. "Все записи"). При отсутствии ссылки на базу данных отображается следующая или предыдущая форма (см. "Текущая страница").
Все записи | Этот параметр относится только к формам базы данных и применяется для перехода по записям. При выходе из последнего поля формы с помощью клавиши TAB назначается новая текущая запись.
Активная запись | Этот параметр относится только к формам базы данных и применяется для перемещения внутри текущей записи. При выходе из последнего поля формы с помощью клавиши TAB назначается новая текущая запись.
Текущая страница | При выходе из последнего поля формы курсор перемещается в первое поле следующей формы. Это стандартная работа форм HTML, поэтому данный параметр особенно важен именно для них.

## Что такое подчинённая форма?

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

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

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

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

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

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

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