|
|
|||||||||||||||||||||||||||||
|
Упрощение баз данных с помощью Crystal DictionariesИсточник: Olap
Во многих случаях вам стоит лишь изучить Crystal Reports, и на этом простую часть процесса проектирования отчета можно считать законченной! Часто можно обнаружить, что преодоление запутанности базы данных предприятия обескураживает больше, чем изучение инструментария составления отчета на ее основе. Большие базы данных нередко содержат сотни таблиц, каждая из которых в свою очередь содержит большое число зашифрованных полей. Иногда кажется, что некоторые администраторы баз данных, стараясь гарантировать безопасность работы, создают понятные только им базы данных. Кроме того, довольно часто приходится сталкиваться с ситуациями, когда некоторые части базы данных недоступны для определенных средств просмотра и проектирования отчетов. Первое, что приходит в голову в качестве примера, это платежные ведомости и бухгалтерские приложения. Некоторые таблицы в базе данных могут быть необходимы одним пользователям и совершенно не нужны другим. Часто бывает необходимо ограничить доступ даже к отдельным полям. И последнее, но не менее важное. В базах данных часто содержатся не все данные, необходимые для подготовки отчета, или они представлены не в той форме, какая обычно требуется в вашей компании. Хотя каждый проектировщик отчетов, в принципе, может заново создавать одни и те же формулы для необходимого манипулирования данными, заранее разработанный общий шаблон, уже содержащий эти формулы, был бы чрезвычайно полезен. Итак, пройти недельный курс по схеме вашей базы данных, установить тщательно разработанные модели механизма защиты, разрешающие доступ к таблицам и полям только для санкционированных пользователей, и убедиться, что все используют одинаковые формулы - и это единственное предлагаемое решение? Конечно же, нет! В Crystal Reports Professional и Developer's Edition включен инструмент Crystal Dictionaries, с помощью которого можно создать словарь, или "meta-layer", что позволяет изолировать проектировщика отчетов от текущего размещения базы данных. Используя словарь вместо непосредственного связывания отчета с базой данных, разработчик отчета может получить для работы простой набор предопределенных полей. Внимание
Что же такое Crystal Dictionary?Структура базы данных, т.е. размещение таблиц и полей и связи между ними (что называется схемой базы данных), может быть очень сложной. Поэтому всегда был необходим инструмент, который мог бы дать упрощенное представление базы данных проектировщику сообщений или запросов, не желающему вдаваться в подробности относительно базы данных. Существует множество ситуаций, в которых приемлем ограниченный набор полей и заранее определенных формул, часто переименовываемых для облегчения понимания. По существу, в этой статье объясняется, что такое Crystal Dictionary. Используя словарь, пользователь, который обычно бывает напуган сложностью базы данных, может получить ее упрощенное представление и применить его для написания отчетов или запросов. В зависимости от области интересов пользователей, пользовательского уровня знакомства с базой данных и уровня "необходимого знания", ответственный за базу данных отдел может с помощью словаря представлять разным пользователям ее различные представления Словарь может совершенно отличаться от базы данных, на которой он основан: поля и таблицы могут быть переименованы, формулы определены заранее и включены таким образом, как если бы они были просто другими полями базы данных, и даже выборочные данные для быстрого просмотра и растровые изображения могут быть заранее загружены в словарь. Рассмотрим следующие два примера окна Field Explorer в Crystal Reports. Окно, изображенное на Рис. 1, появляется, когда отчет основан на нескольких фактических таблицах в базе данных. Рисунок 2 возникает, если отчет основан на словаре (файл для PC с расширением .DC5). Обратите внимание на уменьшенный набор полей на Рис.2, лучшую структуру иерархии полей, легкие для понимания имена полей (некоторые из них являются предварительно определенными формулами), и класс Dictionary Graphics, который содержит заранее загруженные графические изображения логотипов компании и "водяных знаков". Второй пример более предпочтителен для проектировщика отчетов и запросов, который незнаком с компоновкой гигантских баз данных, общими полями, необходимыми для объединения таблиц, и "замысловатыми" именами полей.
Рис. 1. Field Explorer для базы данных.
Инструмент Crystal Dictionaries является отдельной исполняемой программой, которая запускается непосредственно из группы программ Crystal Reports Tools. Нет необходимости запускать Crystal Reports, чтобы использовать Crystal Dictionaries. Главное окно Crystal Dictionaries появляется сразу после запуска, как показано на Рис. 3.
Создание Crystal DictionaryПри первом запуске Crystal Dictionaries вам предоставляются две опции возможного выбора: открыть существующий словарь или создать новый словарь. Чтобы создать новый словарь, нажмите кнопку New на панели инструментов или выберите File I New в раскрывающихся меню. Окно Dictionary Expert появится в области проектирования Crystal Dictionaries. Это диалоговое окно с закладками используется для всего процесса проектирования словаря.
Рис. 3. Окно Crystal Dictionaries. Dictionary Expert состоит из четырех главных закладок (дополнительная закладка Links возникает в качестве второй закладки при выборе более одной таблицы для словаря). Создание словаря в некоторой степени напоминает создание Crystal Report с использованием эксперта отчетов. Вы вводите информацию для каждой закладки и нажимаете кнопку Next, или отмечаете следующую по порядку закладку. После того как процесс завершается, файл со словарем сохраняется. Он может использоваться для создания отчета или запроса в Crystal Reports или Crystal SQL Designer. Закладка TablesКак показано на Рис. 4, закладка Tables является первой в Dictionary Expert. Здесь выбирают базу данных и таблицы, которые хотят использовать в своем словаре. Словарь может содержать таблицы из нескольких баз данных, а также несколько типов баз данных. Например, можно добавить таблицы из базы данных Microsoft Access
Рис. 4. Закладка Tables в Dictionary Expert. или dBASE для Windows, нажав кнопку Data File, а с помощью кнопки SQL/ODBC можно включить таблицы из базы данных Oracle или Informix. При нажатии на кнопку Data File появляется диалоговое окно File Open, в котором можно перемещаться на нужный диск или каталог, пока не будет найдена желаемая база данных PC-типа. После этого отметьте имя файла базы данных. Если база данных содержит много таблиц (как, например, база данных Microsoft Access), появится диалоговое окно Choose Tables, в котором можно выбрать таблицу, предназначенную для включения в словарь. Чтобы добавить таблицы из баз данных ODBC, нажмите кнопку SQL/ODBC. Если вы еще не вошли ни в одну базу данных, появляется диалоговое окно Log On Server.
Выберите базу данных, которую вы хотите использовать. Если база данных защищена, для ее использования необходимо ввести допустимое имя пользователя и пароль. Если вы успешно вошли в базу данных (или уже находитесь в базе данных ODBC), появляется диалоговое окно Choose SQL Table.
Добавьте таблицы к закладке Tables в Dictionary Expert, или дважды щелкнув по каждой таблице, которую надо добавить из списка SQL Tables, или, отметив таблицу и нажав кнопку Add (в диалоговом окне Choose SQL Table нельзя отметить несколько таблиц, используя клавишу ShiFT или CTRL, и выполняя щелчок). При необходимости добавления таблицы из другой базы данных ODBC, нажмите кнопку Log On Server в диалоговом окне Choose SQL Table и войдите в другую базу данных. Затем выберите в новой базе данных, доступной в диалоговом окне, таблицу или таблицы, которые вы хотите использовать. Закончив выбор таблиц, нажмите Done. Если, по ошибке, вы добавили слишком много таблиц к закладке Tables в Dictionary Expert, отметьте ненужную таблицу и нажмите или кнопку Delete, или клавишу del на клавиатуре. Можно также выбрать альтернативные индексные файлы для конкретной таблицы, отмечая таблицу и нажимая кнопку Index. Кнопки Alias и Location полезны, если местоположение базы данных или имена таблиц или полей в базе данных изменяются после сохранения словаря. Эти кнопки более подробно описаны ниже в этой статье.
Закладка LinksПри выборе нескольких таблиц (это происходит практически всегда при создании любого, даже умеренно сложного словаря), закладка Links появляется вслед за закладкой Tables. Эта закладка используется, чтобы связывать таблицы вместе на общих полях. Вы можете размещать окна таблиц, изменять их размеры и создавать связи, перемещая поля между таблицами. Если требуется удалить неверные связи, достаточно выбрать строку связи и нажать кнопку Delete или клавишу del. Чтобы изменить тип соединения для конкретной связи, отметьте ее и нажмите Options. Внимание
Закладка Links работает почти так же, как и Visual Linking Expert в Crystal Reports. Дополнительная информация по вопросам связывания и типов соединения и конкретные детали процедуры связывания таблиц на закладке Links будет представлена в статье "Создание отчетов", которая будет опубликована позднее. После того как вы правильно связали таблицы, нажмите Next или щелкните непосредственно по закладке View, чтобы добавить поля к словарю. Закладка ViewЗакладка View - это сердце Crystal Dictionaries. Именно здесь происходит реальная работа. На Рис. 5 показана закладка View. Основная идея использования закладки View заключается в том, чтобы перемещать только поля из левого списка базы данных в правый список представления, который вы хотите показать проектировщику отчета. Только эти поля будут доступны в отчете или запросе, созданном на основе словаря. Кроме такого ограничения полей, можно создавать формулы для манипулирования данными базы данных и затем добавлять эти предопределенные формулы в правый список представления. А чтобы словарь было легко читать и понимать, можно переименовать добавляемые к нему поля, а также, используя заголовки полей, создать собственные "псевдоимена" таблиц. Добавление полей Чтобы добавить поле базы данных к представлению словаря, отметьте одно или несколько полей в списке базы данных. Можно отметить несколько полей, используя клавиши CTRL и ShiFT, и выполняя щелчок. После этого, чтобы добавить выбранные поля, просто переместите их в список представления или
Рис. 5. Закладка View в Dictionary Expert. нажмите кнопку Add. Поля появятся в представлении словаря в том же порядке, как и в списке представления. Если вы хотите переупорядочить поля более логичным способом, просто отметьте поле, которое надо передвинуть, и переместите его в новое положение в списке представления. Вы можете также выбрать поле и передвинуть его, нажимая маленькую стрелку вверх или вниз над списком представления. Создание и добавление формулОдно из многих преимуществ использования Crystal Dictionaries заключается в возможности предварительно создавать формулы и включать их, как если бы они были обычными полями баз данных. При проектировании отчета ничто не указывает, что данные, полученные по формуле, не взяты прямо из базы данных. Это позволяет заранее создавать часто используемые формулы, освобождая от этой обязанности каждого отдельного проектировщика отчета. Чтобы создать новую формулу, нажмите кнопку New Formula. Дайте формуле значимое имя (хотя все еще сохраняется возможность переименовать ее в списке представления) и нажмите OK. При этом появляется диалоговое окно Edit Formula, в котором можно использовать тот же набор полей базы данных и встроенных функций.
Создайте формулу, как вы сделали бы это в Crystal Reports, и по окончании нажмите Accept. Созданная формула будет добавлена к отдельной секции, называющейся Formulas, внизу списка базы данных. После этого можно отметить формулу в базе данных и добавить ее к окну представления таким же образом, как вы добавили бы поле базы данных. Если вы хотите отредактировать или удалить существующую формулу, отметьте ее в списке базы данных и нажмите кнопку Edit или Del под списком базы данных. Добавление заголовков полейДругое преимущество при создании отчета на базе словаря заключается в том, что проектировщику не надо вручную выбирать конкретные базы данных или таблицы. Они уже определены в словаре. Однако, Field Explorer в Crystal Reports все же может отображать поля так, будто они содержатся в отдельных таблицах. Этой иерархией полей можно полностью управлять, используя Field Headings при создании словаря. Заголовок поля появляется в словаре как имя таблицы, хотя он не имеет никакого отношения к реальным таблицам базы данных. Можно использовать любое число заголовков полей по выбору (следует сохранить, по крайней мере, один, созданный по умолчанию). Чтобы создать заголовок поля, отметьте в списке представления то поле, над которым вы хотите поместить заголовок, и нажмите кнопку Heading. Диалоговое окно запросит имя заголовка поля. Наберите заголовок со значением, как, например, Customer Information, и нажмите OK. Заголовок добавится к списку представления над выбранным полем. При желании удалить заголовок, пометьте его и нажмите клавишу del.
Переименование полей и заголовковЕще одно большое преимущество использования словаря состоит в том, что можно давать более развернутые имена полям базы данных. Очень часто поля базы данных первоначально получают непонятные имена, нередко содержащие странные сокращения, исключительно прописные буквы, а также подчеркивания. Используя кнопку Alias, можно дать полям более развернутые имена, которые содержат пробелы и используют как прописные, так и строчные буквы. Отметьте в списке представления поле или заголовок поля, который надо переименовать, и нажмите кнопку Alias. Появится диалоговое окно с текущим именем поля. Наберите новое имя в диалоговом окне и нажмите OK. Вы увидите, как появится новое имя в списке представления. В действительности, можно переименовать заголовки полей или столбцов, даже не пользуясь кнопкой Alias. Для этого просто отметьте нужное поле или заголовок и начните набор на клавиатуре (или начните с клавиши возврата на одну позицию). Вы увидите, как меняется имя объекта по мере набора.
Добавление текста подсказкиМожно добавить всплывающую подсказку к заголовкам полей или отдельным полям представления. Если затем щелкнуть по полю и подождать одну-две секунды, текст введенной подсказки всплывет прямо над полем, как показано на следующей иллюстрации. Это позволяет добавить значащую информацию к полю или заголовку поля, чтобы облегчить проектировщикам создание отчетов с помощью словаря. Отметьте в списке представления поле, для которого вы хотите создать всплывающую подсказку, и нажмите кнопку Help Text. Появится диалоговое окно, в котором можно набрать подходящий текст подсказки. Закончив набор, нажмите OK. Для того чтобы позднее изменить текст подсказки, достаточно просто снова отметить это поле и нажать кнопку Help Text. При этом появится существующий текст, и вы сможете внести все необходимые изменения, после чего нажать кнопку OK.
Внимание
Закончив работу на закладке представления, можно сохранить файл словаря, нажав кнопку Save. Кроме того, вы можете добавить к файлу словаря растровую графику, нажав или Next или непосредственно закладку Graphic. Закладка GraphicЕсли у вас имеется стандартный логотип компании или другие файлы растровой графики, которые вы хотели бы сделать доступными для проектировщиков отчетов, можно добавить эти файлы к словарю на закладке Graphic, как показано на Рис. 6. Чтобы добавить в словарь ссылку на растровое изображение, нажмите кнопку Add. Появится диалоговое окно File Open, в котором можно переместиться в каталог, содержащий это изображение. В каталоге находится список поддерживаемых форматов графических файлов. Пометьте растровое изображение, которое вы хотите добавить к словарю, и нажмите OK. Имя файла, содержащего изображение, появится в списке словарных шаблонов. Затем при желании можно использовать кнопку Alias, чтобы дать изображению более выразительное имя.
Рис. 6. Закладка Graphic в Dictionary Expert. Если вы хотите удалить изображение из словаря, отметьте его в списке и нажмите кнопку Delete. При этом удаляется только ссылка на изображение в словаре - исходное растровое изображение остается в первоначальном местоположении. Если исходный графический файл будет позднее перемещен или получит новое имя, словарь не будет указывать на правильное местоположение - при попытке использовать словарную графику проектировщик отчета получит сообщение File Not Found. Эту ситуацию можно исправить, нажимая кнопку Location на закладке Graphic и выбирая новый адрес или имя файла для растрового изображения. Внимание
Закладка Sample DataКогда отчет или запрос создаются непосредственно на основе базы данных, в диалоговых окнах и всплывающих меню обычно есть функция Browse. Если вы отметите поле базы данных и затем выберете эту функцию, Crystal Reports или SQL Designer запросит базу данных и выдаст короткий список выборочных данных для этого поля. Закладка Sample Data, показанная на Рис. 7, позволяет управлять просмотром данных при использовании словаря. Это полезно, если человек, проектирующий отчет или запрос, не имеет реального доступа к базе данных в процессе работы, или если соединение осуществляется через медленный модем или канал интернет, что делает утомительным просмотр сведений, содержащихся в базе данных. Выборка просмотренных сведений для отмеченных полей может храниться прямо в словаре. Если вы решаете не хранить выборочные данные для поля, а пользователь их просматривает, Crystal Reports или SQL Designer идет дальше и обращается непосредственно к базе данных. Чтобы сохранить выборочные данные в словаре, сначала надо выбрать их в текущей базе данных. Отметьте поле, для которого вы хотите собрать данные, и нажмите кнопку Collect. При этом будет запрошена база данных, и однозначно определенные выборочные сведения будут собраны и размещены в списке Browsed Data на правой стороне закладки Sample Data. Затем можно просмотреть собранные данные и удалить то, что не требуется хранить. Можно также отметить часть данных и нажать кнопку Edit. Появится диалоговое окно, в котором можно изменить значение выборочных данных. Нельзя добавлять новые выборочные данные, можно только удалять или редактировать существующие данные. Собрав и отредактировав выборочные данные, вы увидите, что те же данные появляются в списке Browsed Data каждый раз, когда вы отмечаете это поле в списке полей. Чтобы перечитать базу данных и обновить выборку данных, нажмите кнопку Refresh. Снова будет сделан запрос базы данных, и все старые выборочные данные (включая те, что были модифицированы) будут отброшены и заменены новыми данными из базы данных. Если отмечено поле, для которого не собраны никакие выборочные данные, список Browsed Data будет пуст, и кнопка Collect будет разблокирована. Вы можете нажать Collect и добавить данные для поля. Внимание
Рис. 7. Закладка Sample Data в Dictionary Expert. Сохранение словаряЗаполнив, по крайней мере, закладки Tables и View, можно сохранить словарь в виде дискового файла. Нажмите кнопку Save в Dictionary Expert или на панели инструментов, или выберите File / Save или File / Save As в раскрывающихся меню. Если словарь уже был предварительно сохранен, кнопки и опция File / Save заменят старую версию словаря новой версией. Если вы сохраняете словарь в первый раз, или используете опцию File / Save As, откроется диалоговое окно File Open с просьбой набрать имя файла. Выберите диск и каталог, где вы хотите сохранить файл. Файл будет сохранен с расширением .DC5, показывающим, что это Crystal Dictionary.
Настройка опций Crystal DictionariesОпределяя местоположение открываемых или сохраняемых словарных файлов, можно выбрать устанавливаемые по умолчанию поведение Crystal Dictionaries и местоположения баз данных для PC и графических элементов. Можно также установить опции для записи в базах данных SQL. Выберите File I Options в раскрывающемся меню. При этом появится диалоговое окно Options, как показано на Рис. 8.
Рис. 8. Диалоговое окно Options. Вы можете установить диск и имя пути по умолчанию для трех типов файлов, используемых Crystal Dictionaries
Можно непосредственно вести имя диска и пути, или нажать кнопку Browse для перемещения в нужные положения. Нажатие кнопки SQL Options высвечивает диалоговое окно SQL Options, показанное на Рис. 9. Здесь можно установить поведение по умолчанию баз данных SQL и ODBC, которые вы добавляете в ваш словарь. Наконец, два контрольных блока внизу диалогового окна Options позволяют вам выбрать, показывать ли панель управления (называемую здесь "Button Bar") и строку текущего состояния. Завершив выбор опций, нажмите OK.
Рис. 9. Диалоговое окно SQL Options. Открытие существующего словаряЧтобы открыть существующий словарь, достаточно нажать кнопку Open на панели инструментов или выбрать File I Open в раскрывающемся меню. При этом появляется диалоговое окно File Open, в котором приведены все существующие словарные файлы в каталоге программ Crystal Reports. Переместитесь на нужный диск или каталог, чтобы найти существующий у вас словарь. Найдя словарь, отметьте его и нажмите OK. Словарь открывается в Dictionary Expert, чтобы вы могли при желании его модифицировать. Чтобы сохранить адаптированный словарный файл после того, как будут внесены любые необходимые изменения, нажмите кнопку Save на панели инструментов или File I Save в раскрывающемся меню.
Корректировка местоположения базы данныхКогда создается словарь, файл с расширением .DC5 указывает на определенное имя базы данных в определенном местоположении. На таблицы, используемые словарем, также ссылаются посредством имен. Если местоположение базы данных или имена таблиц или полей базы данных изменяются, необходимо изменить все основанные на них словари, для того чтобы указать на новое местоположение базы данных или на таблицы с новыми именами. Чтобы проверить, продолжает ли база данных существовать в исходном местоположении и с теми же именами таблиц и полей, с которыми она была создана, выберите File I Verify Dictionary в раскрывающемся меню. Если в базе данных не произошло изменений, влияющих на словарь, появится сообщение о том, что словарь не требует обновления. Однако, если таблицы больше не могут быть найдены на прежнем месте, появляется сообщение, что таблица не может быть найдена в исходном местоположении.
В этом случае необходимо изменить местоположение, на которое указывает таблица на закладке Tables. Нажмите кнопку Location на закладке Tables. При этом будет показано предыдущее местоположение таблицы. Оно появится или в диалоговом окне Choose SQL Table, если таблица словаря находится в базе данных ODBC, или в диалоговом окне Windows File, если это таблица из базы данных для PC. Выберите новое имя файла или имя таблицы, в котором содержится новое местоположение таблицы (если необходимо, используйте кнопку Log On Server в диалоговом окне Choose SQL Table) и нажмите OK. Теперь данные для таблицы будут извлекаться с нового места. Если вы хотите изменить имя, используемое словарем для ссылок на таблицу исходной базы данных, отметьте таблицу, которую надо изменить и нажмите кнопку Alias. Вам будет дана возможность изменить имя, т.е. создать псевдоним, с помощью которого Crystal Dictionaries ссылается на таблицу. Запомните, что он не имеет отношения к именам таблиц, которые, в конечном счете, появляются в представлении словаря. Любые заголовки полей, создаваемые на закладке View, будут определять псевдоимена таблиц, которые создают иерархию полей в текущем представлении словаря. Если местоположение таблицы не изменилось, но используемые в словаре поля были удалены, добавлены или переименованы, появляется сообщение, указывающее, что формат таблицы был изменен. Если нажать Yes, чтобы "привести словарь в порядок", имена полей на левой стороне закладки View будут обновлены в соответствии с изменениями в первоначальной базе данных.
Внимание
Использование словаря для создания отчета или запросаДействительные возможности Crystal Dictionaries становятся очевидны, когда приходит время создавать новый отчет с помощью Crystal Reports или новый запрос с помощью Crystal SQL Designer. При подготовке нового отчета с использованием эксперта отчетов или опции Blank Report, или при создании запроса с помощью Create SQL Expert, имеется возможность выбрать словарь в качестве источника данных для отчета. При выборе словаря появляется диалоговое окно File Open, в котором можно выбрать файл существующего словаря.
Переместитесь на диск и каталог, где находится нужный словарь, отметьте его и нажмите OK. Процесс создания отчета или запроса теперь будет происходить аналогично тому, как если бы вы вошли в базу данных, выбрали таблицы и должным образом связали их. Вы сможете сразу выбрать поля. Если словарь содержит растровую графику, и вы используете Field Explorer в программе Crystal Reports, вы также увидите класс Dictionary Graphic. Отметьте этот класс и добавьте любую нужную вам графику непосредственно в отчет путем перемещения, или нажав кнопку Insert To Report. Чтобы вставить графику из словаря, нет необходимости использовать кнопку Insert Graphic или опцию меню. Ниже даны несколько советов, о которых следует помнить при настройке Crystal Dictionaries для использования в вашей организации:
|
|