Содержимое

# Данные

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

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

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

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

Откройте панель инструментов Дизайн формы, щёлкните по значку Свойства формы - вкладка Данные.

## Анализ команд 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 мс. Эта задержка позволяет быстро просмотреть записи главной формы. Если во время задержки перейти к следующей записи в главной форме, извлечение и отображение данных подчинённой формы не потребуется.

Пожалуйста, поддержите нас!