Руководство пользователя по многострочным слоям

advertisement
Руководство пользователя по многострочным слоям
Многострочный слой – это слой, полученный из другого слоя (назовем его главным) путем
добавления дополнительных полей. Это значит что многострочный слой содержит ровно
такое же количество записей, что и главный слой, из которого он получен. Поэтому
добавление и удаление записей из многострочного слоя невозможно. Если все же необходимо
добавить или удалить записи, то делать это нужно только через главный слой.
Чтобы сделать определение и назначение многострочных слоев более понятным, приведем
пример применения многострочного слоя. Пусть есть главный слой под названием
«Сотрудники», в котором хранятся данные о сотрудниках организации. Он содержит
следующие поля: Ф.И.О., табельный номер, номер паспорта. Ключем является поле
табельный номер. До некоторого времени этих данных вполне хватает. Но настает момент,
когда требуется добавить для каждого сотрудника данные о его окладе и количестве часов,
отрабатываемых им за месяц. Наиболее типичным решением было бы просто добавить эти
поля в главный слой. Но по некоторым причинам это решение может быть нежелательным
или даже невозможным. Например, этот слой может находиться не в таблице LayerData или
LayerCalc, а в собственной таблице, добавление полей в которую потребует изменения базы
данных. Именно в таком случае и следует применить технологию многострочных слоев.
Теперь рассмотрим способ описания многострочного слоя.
1. В первую очередь нужно добавить в многострочный слой поле или набор полей,
являющихся ключом в главном слое. Имена таких полей не обязательно должно быть
равными именам соответствующих полей главного слоя, однако их типы должны быть
одинаковыми. Роль этих полей – ключ, а в качестве формулы необходимо прописать
строку следующего вида:
ВзятьИз("<АлиасГлавногоСлоя>","<ИмяКлючевогоПоляВГлавномСлое>",
"<ИмяПоляВМногосточномСлое>=<ИмяПоляВГлавномСлое>",да)
Как правило это поле следует делать нередактируемым.
То есть если в нашем примере в главном слое было одно ключевое поле типа Целое
под названием ТабельныйНомер, то и в многострочном слое должно быть целое поле
под названием, например, ТабНомер, с ролью «Ключ». В качестве формулы укажем
ВзятьИз("Сотрудники","ТабельныйНомер","ТабНомер=ТабельныйНомер",да). В поле
«Редактируемость» ставим «Только для чтения».
2. Добавляем в многострочный слой те неключевые поля главного слоя, которые нам
нужны. Имя поля, тип поля и формулу задаем так же, как и в предыдущем случае.
Роль поля – вычислимый параметр. В нашем примере можно добавить поле ФИО
(номер паспорта не является очень важной информацией и его можно не добавлять).
Создаем в многострочном слое поле под названием ФИО, Имя поля в БД зададим
ФИО, а роль поля – вычислимый параметр. В качестве формулы укажем
ВзятьИз("Сотрудники","ФИО","ТабНомер=ТабНомер",да).
3. Добавляем в многострочный слой дополнительные поля, то есть именно те, ради
которых он и создавался. Они добавляются как обычные поля – параметры, без
указания формул. В примере добавим поля целочисленные поля Оклад и
КоличествоЧасовВМесяц с ролью Параметр.
В результате получаем работающий многострочный слой! Если открыть его на интерфейсе
«Данные линейно», можно увидеть следующее:
-
в многострочный слой «подтянулись» все записи главного слоя;
-
кнопки добавления и удаления записей заблокированы;
-
редактировать можно только дополнительно добавленные поля;
Download