Инструменты пользователя

Инструменты сайта


Боковая панель

Если вам не пришло письмо с регистрационными данными, проверьте папку «Спам»

Новости:

1 сентября
* Новая версия DataExpress



Обратная связь

Wiki-синтаксис
Как написать хорошую статью
Полигон

rukovodstvo_po_polzovaniu_dx:komponenty_formy_i_ix_svojstva:obekt:obekt

Объект

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

Несмотря на то, что вы видите в поле текст, фактически в базе хранится ссылка на запись связанной формы - ID записи. ID - это целое число.

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

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

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

Связь с формой

Связь с формой Это свойство связывает текущую форму с другой. Объект будет показывать в списке данные выбранной формы, а именно те поля, которые выбраны в Поле (основное поле) и Дополнительные поля в списке.

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

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

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

Если выбрана опция «Скрыть список», то ввод данных вручную в поле будет невозможен. Значения можно будет выбрать из справочника. Если скрыты и список, и кнопка, то в поле нельзя изменить значение вручную. Это может понадобиться, если между формами есть постоянная связь.

Опция «При наличии дерева в окне списка» как часто будет обновляться дерево, расположенное в окне списка. По умолчанию, дерево обновляется только при первом показе окна. Можно настроить, чтобы дерево обновлялось при каждом показе окна. Это имеет смысл, если дерево меняется часто или для объекта задан фильтр.

Управление списком с клавиатуры

С помощью клавиш можно управлять списком. Клавиши при активном поле:

Символ - включается фильтрация и открывается список с найденными записями;

Вниз - открыть список;

Esc - закрыть список или восстановить исходное значение, если список закрыт;

Enter - если список открыт, то выбрать выделенный элемент списка, или восстановить исходное значение, если список закрыт;

Shift-Enter - открыть справочник;

Клавиши при активном списке:

Enter - выбрать элемент;

Esc - закрыть список;

Символ, Влево, Вправо, Backspace, Delete, Tab - активировать поле, не закрывая список;

Вставить значение

Свойство "Вставить значение" Бывает возникает потребность вставить некоторые данные из справочника в поля для последующего редактирования. Например, это может быть цена, взятая из справочника товаров. У объекта есть свойство Вставить значения. Нужно сопоставить поля объекта с полями формы. Поля должны быть совместимыми друг с другом. Например, нельзя сопоставить число и текст.

Заполнить таблицу

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

Фильтр таблицы-источник

Это логическое выражение применяется к записям таблицы-источника. Если результат выражения «Истина», то запись копируется в целевую таблицу. Обращаться к полям родительской формы таблицы-источника нельзя.

Вставка значений по-умолчанию

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

objid('Сотрудники', 'Логин', user)
objid('Склады', 'Название', 'Склад № 1') 
objid('Склады', 'Название', 'Склад № 1')

Фильтр

Когда вы задаете источник списка для объекта, списка или заметки, может возникнуть необходимость как-то ограничить набор значений, выводимых списком. Для этого используется свойство «фильтр». Фильтр списка записывается в виде текста. Например:

[Статус]='Выдано' | [Статус]='Готово'

Помните, что несмотря на сходство с выражениями, фильтр составляется по следующим правилам. Сначала пишется поле формы-источника, затем операция сравнения (=, <>, < и т. д.), затем выражение. (Подробнее о выражениях можно узнать здесь.) Условия могут соединятся логическими операциями (И/ИЛИ). Им соответствуют символы: & и |. Вы можете использовать в выражениях поля, например:

[устройство]=[устройство] & [марка]=[марка]
[устройство]=[!устройство]

К обычным операциям сравнения для текстовых полей добавлено еще два: == (найти фрагмент текста) и # (найти, кроме фрагмента текста).

Если поле источника является объектом, то можно обратиться к полю объекта. Глубина вложений объектов не ограничена. Например:

[счет|закрыт]=0

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

[?клиент]=[заказчик] & [статус]='Готово'

Если [заказчик]=Null, то условие исключается из выражения.

Дополнительные операции сравнения и необязательные поля работают ТОЛЬКО в фильтрах списков и источников, в обычных выражениях они не применяются.

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

{[устройство]=[!устройство] | [устройство]=null} & {[марка]=[!марка] | [марка]=null}

Ошибки фильтра

В процессе анализа фильтра могут быть найдены следующие ошибки:

Ошибка Описание
Поле источника не найдено Программа не может найти указанное поле в форме-источнике. Проверьте правильность ввода имени поля.
Ожидается поле источника Ошибка возникает, когда не соблюдаются правила написания фильтра. Часто начинающие разработчики путают фильтр с обычным выражением и пишут слева от операции сравнения выражение (например, функцию), а должно быть поле формы-источника.
Неверная операция сравнения Допустимы следующие операции сравнения: = <> < ⇐ > >= == #.
Ожидается операция сравнения Не соблюден синтаксис написания фильтра. После поля источника программа ожидает операцию сравнения.
Выражение не распознано Выражение (справа от операции сравнения) содержит недопустимые символы.
Ошибка в выражении Выражение содержит какую-то ошибку (программа сообщает какую именно).
Тип поля формы-источника не совместим с типом результата вычисления выражения Убедитесь, что тип поля формы-источника совпадает с типом результата вычисления выражения. Например, ошибка возникнет, если попытаться сравнить поле «объект» с текстом.
Ожидается логическая операция Пропущена логическая операция между двумя условиями фильтра.
Ожидается символ { Пропущена одна или более фигурных скобок {. Ошибка возникает, когда число закрывающих фигурных скобок } больше чем открывающих.
Ожидается символ } Пропущена одна или более фигурных скобок }. Ошибка возникает, когда число открывающих фигурных скобок { больше чем закрывающих.
Недопустимое поле источника В качестве поля-источника нельзя использовать изображение, файл и поле объекта (компонент).
rukovodstvo_po_polzovaniu_dx/komponenty_formy_i_ix_svojstva/obekt/obekt.txt · Последние изменения: 2019/03/13 22:52 — 7bit