Авторизация



Связывание таблиц

Оценить
(0 голоса)

Случаи, когда отчет формируется на основе единственной таблицы базы данных, бывают достаточно редко, обычно в отчете требуется использовать, по крайней мере, две, а чаще и большее количество таблиц, поскольку большинство современных реляционных баз данных являются нормализованными. Под нормализацией баз данных понимают разнесение повторяющейся информации по отдельным таблицам базы данных в целях эффективности и простоты обслуживания. Рассмотрим таблицу с именем Employee (Сотрудники), содержимое которой показано в табл. 15.1.

Хотя эта таблица представляет собой удобную среду для составления отчетов, поскольку выбирать более одной таблицы для распечатки списка сотрудников или платежных чеков не требуется, работать с такой таблицей намного труднее. Обратите внимание, что названия отделов в этой небольшой таблице повторяются по несколько раз. (А теперь представьте себе таблицу с такой структурой для компании, количество сотрудников которой насчитывает 50 ООО человек.) Такая таблица будет не только занимать большой объем пространства для хранения, но и в случае изменения названий отделов потребует немалых усилий на внесение этих изменений. Например, при изменении названия отдела “Information Technology” (“Отдел информационных технологий”) на “Information Systems” (“Отдел информационных систем”), во всей таблице Employee придется выполнить функцию поиска и замены, заменяя каждое вхождение старого названия отдела новым.

Сравните эту однотабличную структуру со средой базы данных, описанной в таблицах 15.2 и 15.3.

Связывание таблиц

Связывание таблиц

Здесь вы видите, что база данных была нормализована путем помещения информации об отделах в отдельную таблицу поиска. В такой среде таблица Employee использует гораздо меньше памяти, потому что для каждого сотрудника хранится только номер отдела, а не полное его название. Теперь в случае изменения названия отдела “Information Technology” во всей базе данных потребуется изменить всего лишь одну запись в таблице Department.

Вкладка Links диалогового окна эксперта Database Expert

Использование множества таблиц усложняет среду для составления отчета, поскольку для распечатки списка сотрудников или платежных чеков требуется больше, чем просто таблица Employee. В предыдущем примере необходимо было не только включить в отчет две таблицы, но также и связать их вместе по общему полю. Связывание таблиц (также известное как соединение таблиц) состоит в выборе общего поля или полей, которые позволяют второй таблице следовать за главной по мере считывания ее записей. Связать таблицы в Crystal Reports можно с помощью вкладки Links (Связи) диалогового окна эксперта Database Expert (рис. 15.9).

Вкладка Links в диалоговом окне эксперта Database Expert появляется тогда, когда первоначально при создании отчета выбираются две или больше таблиц, или когда в процессе последующей разработки отчета в окне эксперта баз данных добавляются дополнительные таблицы. Если необходимо поработать со связями базы данных, откройте диалоговое окно эксперта Database Expert, щелкнув на кнопке Database Expert в панели инструментов или выбрав в меню Database пункт Database Expert, и перейдите на вкладку Links.

Связывание таблиц

Можно свободно перемещать отдельные таблицы в пределах вкладки Links для просмотра их в другом порядке. Также можно изменять размер окна каждой таблицы, делая его больше, меньше, более узким или более широким. Для того чтобы Crystal Reports выполнил автоматическое упорядочение таблиц в соответствии с установленными для них связями, щелкните на кнопке Auto-Arrange (Автоматическое упорядочение).

Обычно при первом открытии вкладки Links диалогового окна Database Expert связи между таблицами уже выбраны. Наличие линий со стрелками, соединяющих поля в таблицах, свидетельствует о том, что таблицы на вкладке Links были автоматически связаны (автоматическое связывание таблиц рассматривается далее в этой главе). Можете удалить эти связи, если они установлены некорректно, или добавить новые связи самостоятельно.

Чтобы удалить связь, щелкните на линии, соединяющей две таблицы. Линия связи, а также соединяемые ею поля будут выделены. Щелкните на кнопке Delete Link (Удалить связь) или нажмите клавишу <DEL>. Если необходимо изменить параметры связи, такие как тип соединения (типы соединений рассматриваются далее в этой главе, в разделе “Типы соединений, типы связи и принудительное соединение”), или параметры связи множества таблиц, щелкните на кнопке Link Options (Параметры связи) или дважды щелкните на выделенной линии, либо же щелкните на линии правой кнопкой мыши и в появившемся контекстном меню выберите пункт Link Options.

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

Если Crystal Reports не обнаружит потенциальных проблем с вычерченной связью, просто появится линия и никаких сообщений не последует. Однако если обнаружена потенциальная проблема, такая как, например, несовместимость типов полей, будет выдано предупреждающее сообщение, и связь создана не будет (рис. 15.10).

Связывание таблиц

 

Значение индексных стрелок
Порядок связей
Работает ли функция автоматического связывания Crystal Reports?
Выбор типа соединения и типа связи на вкладке Links диалогового окна эксперта Database Expert
Принудительное соединение в Crystal Report

Добавить комментарий


Защитный код
Обновить