12156

ПРИЛОЖЕНИЯ С НЕСКОЛЬКИМИ СВЯЗАННЫМИ ТАБЛИЦАМИ

Лекция

Информатика, кибернетика и программирование

ПРИЛОЖЕНИЯ С НЕСКОЛЬКИМИ СВЯЗАННЫМИ ТАБЛИЦАМИ Рассмотрим принципы построения приложения с несколькими связанными друг с другом таблицами. 8.1 Связь головной и вспомогательной таблиц Две таблицы могут быть связаны друг с другом по ключу. Одна из этих связанных табл...

Русский

2013-04-24

31.5 KB

3 чел.

ПРИЛОЖЕНИЯ С НЕСКОЛЬКИМИ СВЯЗАННЫМИ ТАБЛИЦАМИ

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

8.1 Связь головной и вспомогательной таблиц

Две таблицы могут быть связаны друг с другом по ключу. Одна из этих связанных таблиц является головной (master), а другая – вспомогательной, детализирующей (detail).

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

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

  1.  вначале временно разрываем связь с базой данных в комплекте, связанном со вспомогательной таблицей;
  2.  далее в свойстве MasterSource компонента Table2, настроенного на вспомогательную таблицу, устанавливаем имя головной таблицы;
  3.  щелкнув на свойстве MasterFields, открываем окно редактора связей полей (Field Link Designer). В нем слева в окне Detail Fields расположены имена полей вспомогательной таблицы, но только те, по которым таблица индексирована. Именно поэтому надо индексировать таблицу так, чтобы индекс включал ключевое поле связи. Справа в окне Master Fields расположены поля головной таблицы. В одном и в другом окне необходимо выделить ключевое поле и зафиксировать действия щелчком на кнопке Add. При наличии составного ключа операцию необходимо повторить для всех полей ключа. Завершить работу с редактором связей полей можно по щелчку на кнопке OK.

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

8.2 Поля просмотра (lookup fields)

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

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

После того, как новое поле определено, в группе радиокнопок Field type необходимо нажать кнопку Lookup и в выпадающем списке Key Fields выбрать ключевое поле (или поля) в таблице, в которой создается новое поле. Это то поле или поля, по которому надо будет связываться с другой таблицей. В  выпадающем списке Lookup Keys необходимо выбрать ключевое поле (или поля) просматриваемой таблицы. А затем, в выпадающем списке Result Field выбрать просматриваемое поле.

Остается только задать для нового поля в Инспекторе объектов свойства, необходимые для осуществления связи с таблицей (DisplayLabel, DisplayValues). При этом, значения таких полей, как FieldKind, KeyValues, LookupDataset, LookupKeyField и LookupResultField  будут определены автоматически.

Еще одно свойство поля просмотра LookupCache определяет, будут ли значения просматриваемого поля кэшироваться, или просмотр будет осуществляться при каждом изменении текущей записи. Если просматриваемая таблица (та, из которой берутся данные) не изменяется или изменяется редко, лучше задать LookupCache = true. Это существенно сократит затраты времени на просмотр, который будет осуществляться не в таблице, а в кэше, который загружается один раз при открытии базы данных. Но если в процессе работы просматриваемая таблица изменяется, а LookupCache = true, то результат просмотра может быть неверным. В этих случаях надо вызывать метод RefreshLookupLis, чтобы обновить хранящийся список.

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

Поля просмотра имеют одну интересную особенность. Дело в том, что для них предусмотрены специальные компоненты: DBLooupListBox и DBLookupComboBox – список и выпадающий список. Если вы поместите на форму один из этих компонентов, установите у него свойство DataSource, соответствующее таблице, имеющей поля просмотра, а в свойстве DataField выберите одно из полей просмотра, то значения просматриваемого поля сразу отобразятся в списке. При этом не надо заботиться о загрузке в список значений, как это приходится делать со списками DBListBox и DBComboBox.


 

А также другие работы, которые могут Вас заинтересовать

79722. Понятие гражданства и подданства. Категории физических лиц по их отношению к гражданству, их правовой статус 79 KB
  Гражданство - устойчивая правовая связь человека с государством, выражающаяся в совокупности их взаимных прав, обязанностей и ответственности, основанная на признании и уважении достоинства, основных прав и свобод человека.
79723. Понятие правового статуса личности и его структура. Основные международные документы о правах человек и их содержание 89.5 KB
  Правовой статус (положение) человека - это совокупность его прав и обязанностей. Права и обязанности закрепляются многочисленными законами и иными нормативно-правовыми актами, но особое значение в определении правового статуса личности имеет конституция государства.
79724. Понятие социальной нормы. Право и мораль. Право и другие социальные нормы 162 KB
  Право и другие социальные нормы. Значение любой нормы состоит в том что она указывает на те границы пределы в которых существует то или иное явление или объект сохраняя при этом свое качество и не утрачивая своей сущности.
79725. Теории происхождения права (основные направления учения о праве) 80 KB
  Некоторые из теорий происхождения права носят аналогичные названия теориям происхождения государств: теологическая, естественно-правовая, теория насилия, марксистская.
79726. Право и государство, их соотношение и взаимодействие. Понятие источников (форм) права 58 KB
  Какое выражение вам кажется более правильным: «Где общество, там и право» или «Где государство, там и право?». Сделаем вывод, что право существует далеко не во всяком обществе, в то время как ни одно государство не может существовать без установленных им правовых норм
79727. Реализация продукции 86 KB
  Реализация продукции Учет реализации продукции по мере оплаты Учет реализации продукции по мере отгрузкиУчет реализации по договору мены Учет реализации продукции ниже себестоимости Реализация продукции осуществляется в соответствии с заключенными с покупателями договорами в которых указан ассортимент срок отгрузки количество и качество продукции цена форма расчетов. Целью отражения хозяйственных операций по реализации продукции на счетах бухгалтерского учета является выявление финансового результата от реализации продукции. Расчет...
79728. Розничная торговля 63.5 KB
  Розничная торговля Поступление товаров на предприятие розничной торговли Бухгалтерский учет скидок на предприятии розничной торговлиСинтетический и аналитический учет реализации в розницу Расчет торговой наценки Учет продажи населению товаров в кредит Поступление товаров на предприятие розничной торговли Учет товаров разрешается вести по покупным или продажным ценам. Так как в розничной торговле нет возможности вести учет по конкретному ассортименту и количеству проданного товара то целесообразно применять способ учета товаров по...
79729. Учет валютных операций 113 KB
  В соответствии с ПБУ 3 95 валютные операции отражаются в учете в двух оценках: в валюте расчетов; в рублях. Технически это достигается разными способами: составлением двух комплектов учетных регистров один в валюте другой в рублях; указанием каждой суммы дробью: в числителе указывается валюта а в знаменателе рубли и др. Пересчет иностранной валюты в рубли осуществляется на основании соответствующих валютных курсов: официального котируемого Центральным банком Российской Федерации валютных бирж коммерческих банков и др....
79730. Учет долгосрочных и краткосрочных финансовых вложений 100.5 KB
  Учет долгосрочных и краткосрочных финансовых вложений Понятие ценных бумаг Приобретение ценных бумаг Доведение покупной стоимости до номинала Увеличение размера уставного капитала АО в связи с увеличением номинальной стоимости акций Резервы под обесценение вложений в ценные бумаги Доходы по ценным бумагам Учет реализации погашение выбытие Учет операций с векселями 1. Понятие ценных бумаг В соответствии с действующим законодательством ценная бумага это документ удостоверяющий при соблюдении установленной формы и обязательных...