WWW.DISS.SELUK.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА
(Авторефераты, диссертации, методички, учебные программы, монографии)

 

Pages:     | 1 |   ...   | 8 | 9 || 11 | 12 |   ...   | 13 |

«Руководство пользователя SAP Crystal Reports 2013 Содержание 1 Общие сведения о SAP Crystal Reports 2013....................................... 19 1.1 О программе Crystal Reports.. ...»

-- [ Страница 10 ] --

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

Не перетаскивайте параметр в отчет, если у вас будет формула условного форматирования или формула выбора, ссылающаяся на него. Если вы выбрали для параметра вариант Изменяемый или Только для чтения на Панели параметров, то при использовании параметра в формуле он будет автоматически активирован на панели.

Теперь параметр появится на Панели параметров.

21.12.10Чтобы добавить параметр в сохраненную формулу выбора данных 1. В меню Отчет укажите на пункт Выбор эксперта и щелкните Сохранить данные.

Откроется диалоговое окно Выбор поля.

2. Выделите поле, на котором будет основан выбор записей, и нажмите кнопку ОК.

Откроется Мастер выбора 3. Используйте выпадающие списки для ввода критерия выбора для указанного поля.

4. Из смежного раскрывающегося списка выберите параметр и нажмите кнопку ОК.

Если ссылка на данный параметр устанавливается впервые, отобразится диалоговое окно Ввод значений.

5. Выберите исходные значения и нажмите кнопку ОК.

Crystal Reports немедленно отфильтрует данные отчета в соответствии с критериями выбора.

Руководство пользователя SAP Crystal Reports 21.12.11 Добавление динамических группировок с использованием полей параметров Можно настроить отчет таким образом, чтобы пользователи могли изменять представление группировки отчета без обновления информации из базы данных. Например, можно перейти от группировки отчета по клиентам к представлению группировки по регионам, или разместить позиции отчета по порядку.

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

21.12.11.1 Для добавления динамических группировок с использованием полей параметров 1. Создайте отчет, используя пример базы данных – Xtreme.mdb, и в разделе "Сведения" слева направо разместите следующие поля:

{Customer.Customer Name} {Customer.Country} {Orders.Order Amount} 2. Создайте новое поле параметра и назовите его Группировать по.

3. Выберите Строка в списке Тип.

4. Добавьте следующие значения параметра:

5. В списке "Отобразить" на "Панели просмотра" выберите Редактируемый и нажмите ОК.

6. Создайте новое поле формулы и назовите его Поле группы.

7. Введите следующую формулу в текстовое поле Формула.

If {?GroupBy} = 'Customer' then {Customer.Customer Name} Else if {?GroupBy} = 'Country' then {Customer.Country} Else if {?GroupBy} = 'Order' then ToText({Orders.Order ID}) Формулы Crystal Reports не разрешают возвращать различные типы данных по заданному условию.

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

8. Сохраните формулу и закройте Мастер формул.

9. В окне инструмента Мастер групп выберите формулу Поле группы в качестве поля для группировки и © 2014 SAP AG или аффилированная компания SAP. Все права Руководство пользователя SAP Crystal Reports 10. Определите необходимый формат полей и разделов.

Теперь пользователи могут настраивать представление группировок отчета, изменяя значения параметра Группировать по на Панели параметров.

Изменение значений параметров не влечет за собой обновление базы данных, если параметр не является параметром данных.

Связанные сведения Параметры данных и параметры, отличные от параметров данных [стр. 465] Руководство пользователя SAP Crystal Reports 22 Вложенные отчеты 22.1 Что такое подотчет?

Вложенный отчет – это отчет в отчете. Процесс создания вложенного отчета схож с процессом создания обычного отчета. Вложенный отчет обладает большинством характеристик отчета, включая собственные критерии выбора записей. Отличие подотчета от первичного отчета заключается в том, что подотчет:

вставляется в первичный отчет в виде объекта; он не может существовать автономно (хотя подотчет можно сохранить как первичный отчет);

можно вставить в любой раздел отчета так, что подотчет будет целиком отображаться в этом разделе;

не может содержать другой вложенный отчет;

не имеет разделов "Верхний колонтитул страницы" и "Нижний колонтитул страницы".

Подотчет, как правило, используется в следующих случаях:

Для объединения несвязанных отчетов в один отчет. См. раздел Объединение несвязанных отчетов при помощи подотчетов [стр. 510].

Для сочетания данных, которые нельзя связать другим способом. См. раздел Использование подотчетов с несвязываемыми данными [стр. 511].

Для различных представлений одних и тех же данных в одном отчете. См. раздел Различные представления одних данных в отчете [стр. 514].

Для установления поисков "один-ко-многим" из поля, не проиндексированного по полю поиска.

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

22.1.1 Несвязанные подотчеты в сравнении со связанными 22.1.1.1 Несвязанные вложенные отчеты Несвязанные вложенные отчеты являются автономными; их данные никаким образом не сочетаются с данными основного отчета.

';

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

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство пользователя SAP Crystal Reports 22.1.1.2 Связанные вложенные отчеты Связанные вложенные отчеты представляют собой полную противоположность несвязанным отчетам. Их данные сочетаются между собой. Программа устанавливает соответствие между данными такого вложенного отчета и данными основного отчета. При создании основного отчета с информацией о клиентах и вложенного отчета с информацией о заказах и установлении связи между этими отчетами программа создает вложенный отчет для каждого клиента и включает в него все заказы этого клиента.

22.1.1.3 Связи базы данных в сравнении с вложенными отчетами при связях "один-ко-многим" Когда две таблицы в отчете находятся в отношениях "один-ко-многим", программа извлекает данные поразному в зависимости от следующих факторов:

источник данных;

индексация;

критерии выбора записей;

создаете ли вы один отчет на основе связанных таблиц или первичный отчет, содержащий подотчет.

Когда перед вами стоит выбор использовать подотчет или связанные таблицы, необходимо знать результат того или иного выбора. Эти вопросы подробно освещены в разделе Рекомендации по повышению производительности при использовании связей "один-ко-многим" [стр. 535].

Как правило, при наличии проиндексированных таблиц, связанных проиндексированных полей или ограничивающих диапазон критериев выбора записей на основе проиндексированных полей программа считывает то же количество записей независимо от того, связываете ли вы таблицы в одном отчете или используете подотчеты. Так как каждый подотчет запускается как отдельный отчет, связанные таблицы отличаются большей производительностью. См. раздел Индексированные таблицы [стр. 517].

22.1.2 Как работает связь подотчета При установлении связи между вложенным отчетом и основным отчетом программа создает связь при помощи поля параметра.

При выборе поля связи вложенного отчета программа создает:

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

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

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

Вы создаете отчет с данными о клиентах и вложенный отчет с данными о заказах, а затем связываете эти два отчета при помощи поля "Идентификационный номер клиента".

Руководство пользователя SAP Crystal Reports При запуске отчета программа находит первую необходимую запись о клиенте и передает значение идентификационного номера клиента из этой записи полю параметра во вложенном отчете.

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

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

Затем программа запускает вложенный отчет, содержащий только записи о заказах второго клиента.

Данный процесс продолжается до тех пор, пока отчет не будет готов.

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

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

Введенное в поле значение будет использовано программой для запуска подотчета.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство пользователя SAP Crystal Reports 22.2 Вставка подотчетов 1. В меню Вставка выберите пункт Подотчет.

Вместо этого можно нажать кнопку "Вставить подотчет" на панели инструментов "Инструменты Отобразится диалоговое окно "Вставить подотчет".

2. Чтобы выбрать существующий подотчет, нажмите Выбрать существующий отчет и введите имя. Если имя неизвестно, нажмите кнопку Обзор и найдите отчет в отобразившемся окне.



Чтобы создать новый подотчет, нажмите "Создать подотчет с помощью мастера отчетов" и введите имя; затем нажмите кнопку "Мастер отчетов". Информацию об использовании мастера для создания отчета см. в разделе Создание отчета [стр. 72].

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

4. Нажмите кнопку ОК.

Отобразится рамка объекта.

5. Переместите рамку в нужное место отчета и щелкните один раз мышью, чтобы вставить ее.

Программа создаст вкладку "Проект подотчета" с именем подотчета. Чтобы отредактировать отчет, щелкните вкладку проекта и внесите необходимые изменения.

6. Щелкните вкладку Предварительный просмотр, чтобы просмотреть отчет.

7. Если вы выбрали Подотчет по запросу (подобно гиперссылке), щелкните вкладку предварительного просмотра подотчета, чтобы просмотреть подотчет.

На этой вкладке отображается имя подотчета.

Руководство пользователя SAP Crystal Reports Использование подотчетов по запросу повышает производительность отчетов, содержащих подотчеты.

Информацию о создании пользовательской надписи для вкладки "Предварительный просмотр подотчета" см. в разделе Добавление заголовков в подотчеты по запросу [стр. 513].

22.2.1 Предварительный просмотр подотчетов Иногда требуется просмотреть подотчет отдельно, а не как часть главного отчета. Например, может потребоваться просмотреть подотчет, чтобы проанализировать данные для определенного набора значений параметра.

22.2.1.1 Чтобы выполнить предварительный просмотр подотчета 1. Щелкните вкладку проекта подотчета.

На этой вкладке отображается имя подотчета.

2. На стандартной панели инструментов нажмите Просмотр перед печатью.

Отобразится окно предварительного просмотра выбранного подотчета.

22.2.2 Сохранение подотчета в качестве первичного отчета Можно предпочесть сохранить подотчет в качестве первичного отчета в целях распространения информации различным получателям. Например, первичный отчет, содержащий подотчет, может использоваться для встреч акционеров в конце финансового года; однако данные подотчета используются ежедневно менеджерами. В таких случаях предпочтительнее сохранить подотчет в качестве первичного отчета.

22.2.2.1 Чтобы сохранить подотчет в качестве первичного отчета 1. На вкладке "Проект" щелкните правой кнопкой мыши подотчет и выберите в контекстном меню команду Сохранить подотчет как.

Откроется диалоговое окно "Сохранить как".

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство пользователя SAP Crystal Reports 2. Перейдите к соответствующему каталогу в диалоговом окне "Сохранить как".

3. Введите новое имя для подотчета.

4. Нажмите кнопку Сохранить.

Программа сохранит подотчет в качестве первичного отчета, чтобы вы могли открыть его отдельно при необходимости.

22.2.3 Обновление подотчетов Чтобы обеспечить максимальную актуальность подотчетов, их данные можно обновлять вручную. Однако подотчет можно и повторно импортировать автоматически при открытии основного отчета.

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

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

Можно задать глобальный повторный импорт для всех подотчетов или задать автоматический повторный импорт для отдельного подотчета.

22.2.3.1 Для обновления данных подотчета вручную выполните следующие действия:

Вы можете обновить данные подотчета в любое время.

1. На вкладке Проект щелкните подотчет правой кнопкой мыши.

2. Выберите команду Повторно импортировать подотчет в контекстном меню.

3. Нажмите Да, чтобы обновить данные подотчета.

22.2.3.2 Чтобы выполнить глобальное обновление подотчетов при открытии главного отчета 1. В меню Файл щелкните Параметры.

2. В диалоговом окне "Параметры" щелкните вкладку Создание отчетов.

3. Выберите опцию Повторно импортировать подотчет при открытии.

4. Нажмите кнопку ОК.

Любой подотчет будет обновлен при открытии и обновлении главного отчета.

Руководство пользователя SAP Crystal Reports 22.2.3.3 Чтобы обновить определенный подотчет при открытии главного отчета 1. В меню Формат выберите пункт Формат подотчета.

2. В диалоговом окне "Редактор формата" щелкните вкладку Подотчет.

3. Выберите опцию Повторный импорт при открытии.

Текущий подотчет будет обновлен при открытии и обновлении главного отчета.

22.3 Установление связи между подотчетом и данными основного отчета Данные вложенного отчета часто дополняют данные основного отчета. Например, данные о клиентах могут содержаться в основном отчете, а данные о заказах по каждому клиенту – во вложенном отчете.

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

Для этого необходимо указать поле, которое является общим для вложенного и основного отчетов. В диалоговом окне "Ссылки вложенного отчета" можно создать связь между двумя общими полями. Crystal Reports использует связь для установления соответствия между записями основного и вложенного отчетов. Связь обеспечивает размещение данных о заказах во вложенном отчете в той же строке, что и соответствующие данные о клиентах в основном отчете.

22.3.1 Чтобы установить связь между подотчетом и данными первичного отчета 1. При создании нового подотчета или импорте существующего отчета в виде подотчета выберите в меню Вставка пункт Подотчет. Выберите или создайте отчет и щелкните вкладку Связь.

- или Если вы уже вставили подотчет в первичный отчет, но не создали связь при настройке, перейдите в диалоговое окно "Связи подотчета", выбрав в меню "Правка" пункт "Связи подотчета".

Отобразится диалоговое окно "Связи подотчета".

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

4. Нажмите стрелку ">".

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

5. По желанию повторите шаги 3 и 4 для каждой дополнительной связи.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство пользователя SAP Crystal Reports 6. Используйте раздел Связь поля (который отображается только при выборе поля связи), чтобы установить связь для каждого поля связи:

В списке "Использовать поле параметра подотчета", выберите поле, которое нужно связать с Установите флажок в ячейке "Выбрать данные подотчета на основе поля" и в расположенном рядом раскрывающемся списке выберите поле, на основе которого будут организованы данные подотчета. Если не выбрать поле в указанном списке, данные подотчета будут организованы так, 7. Нажмите кнопку ОК.

При запуске отчета программа установит соответствие между данными первичного отчета и данными подотчета.

Тип поля "Содержащий отчет" определяет, какие поля подотчета будут видимы. Так как Конструктор отчетов считывает даты либо как строки, либо как даты, либо как поля даты/времени, тип поля параметра подотчета должен соответствовать типу поля, заданному в параметрах отчета в главном отчете для связываемого поля.

22.4 Установление связи между подотчетом и основным отчетом без изменения формулы выбора Для установления связи между вложенными и основными отчетами Crystal Reports использует поле параметра.

При связывании поля главного отчета, которое не является полем параметра, с полем вложенного отчета программа:

Автоматически создает поле параметра для создания связи.

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

Необходимость наличия поля параметра подразумевается. Эта ситуация называется "Подразумеваемая связь".

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

При связывании поля главного отчета с полем параметра, созданным во вложенном отчете, программа:

Проверяет указанную связь.

Не создает дополнительные поля параметров.

Не изменяет формулу выбора записи вложенного отчета.

Ситуация, при которой указывается связь, называется "Явная связь".

Руководство пользователя SAP Crystal Reports 22.4.1 Чтобы установить связь между вложенным отчетом и главным отчетом без изменения формулы выбора 1. Создайте поле параметра во вложенном отчете.

2. Свяжите поле главного отчета с данным полем параметра.

22.5 Объединение несвязанных отчетов при помощи подотчетов Иногда требуется объединить несвязанные отчеты в один отчет. Например, требуется создать отчет, предоставляющий данные о:

Продажах, сгруппированных по торговым представителям.

Продажах, сгруппированных по продуктам.

Так как в обоих отчетах отражены данные о продажах, между ними не существует реальной линейной зависимости.

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

Каждый из таких отчетов является автономным; данные одного отчета никаким образом не связаны с данными другого отчета. Это самая простая из опций работы с вложенными отчетами.

22.5.1 Объединение двух несвязанных отчетов 1. Создайте отчет, который будет отображаться первым в качестве первичного отчета.

2. Импортируйте существующий отчет для использования в качестве подотчета или создайте новый 3. Поместите подотчет в нижний колонтитул отчета и он будет отображаться непосредственно после первичного отчета.

22.5.2 Объединение трех или более несвязанных отчетов 1. Создайте отчет, который будет отображаться первым в качестве первичного отчета.

2. Импортируйте или создайте другие отчеты, которые необходимо использовать в качестве подотчетов.

3. Используйте мастер разделов для вставки достаточного количества нижних колонтитулов отчета для используемых подотчетов.

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

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство пользователя SAP Crystal Reports 4. В нижний колонтитул отчета А поместите подотчет, который будет отображаться непосредственно после первичного отчета. В нижний колонтитул отчета Б поместите подотчет, который будет отображаться следующим, и т.д.

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

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

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

22.6 Использование подотчетов с несвязываемыми данными Таблицы отчета можно связать при соблюдении следующих условий:

Оба поля связи являются полями базы данных.

Поля связи содержат схожие данные.

Поля связи имеют одинаковую длину.

Поле связи в таблице-адресате (таблице соответствия) проиндексировано (только для баз данных на При связывании таблиц редко возникают проблемы. Однако в некоторых случаях вы не можете сочетать данные из различных таблиц, так как эти данные не отвечают критериям связывания.

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

22.6.1 Создание связи с полем формулы или из него В некоторых случаях может потребоваться создать связь с полем формулы (вычисленным полем) или из него. Например, идентификационный номер сотрудника может состоять из 11 символов, два из которых являются кодом отдела, а остальные девять – номером социального страхования (например, ОК555347487).

Язык формулы позволяет легко извлечь номер социального страхования из этого поля:

{employee.EMPLOYEE ID} [-9 to -1] - или employee.EMPLOYEE ID} [3 to 12] Возвращаемым значением обеих формул в данном случае будет 555347487.

Руководство пользователя SAP Crystal Reports Так как возвращаемое значение является действительным номером социального страхования, тот факт, что оно происходит из формулы, не позволит использовать поле для связи с полем номера социального страхования из другой таблицы. Однако можно создавать отчеты на основе значений этих двух таблиц и сочетать эти значения при помощи вложенного отчета.

22.6.1.1 Создание связи с полем формулы или из него 1. Создайте первичный отчет, используя таблицу, включающую поле номера социального страхования.

2. Создайте (или импортируйте) подотчет, используя формулу, извлекающую номер социального страхования из поля идентификационного номера сотрудника (в данном случае {@EXTRACT}).

См. раздел Вставка подотчетов [стр. 505].

3. Вставьте подотчет в нужное место первичного отчета.

4. Установите связь подотчета с первичным отчетом, связав поле номера социального страхования в первичном отчете ({file.SSN}) с формулой, которая извлекает этот номер, в подотчете ({@EXTRACT}).

См. раздел Установление связи между подотчетом и основным отчетом без изменения формулы выбора 22.6.2 Связывание непроиндексированных таблиц При использовании баз данных на ПК (а не SQL или ODBC) поле связи в базе данных соответствия нужно проиндексировать, чтобы создать действующую связь. Невозможно связать таблицы в одном отчете, если эти две таблицы содержат связанные данные, но ни одна из них не проиндексирована на основе поля, которое используется в качестве поля связи, или если основная таблица проиндексирована, а таблица соответствия – нет. Для сочетания данных в обеих таблицах необходимо использовать вложенные отчеты.

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

Применяйте данный метод, только если у вас нет других возможностей.

22.6.2.1 Связывание непроиндексированных таблиц 1. Создайте первичный отчет.

2. Создайте (или импортируйте) подотчет и вставьте его в первичный отчет.

См. раздел Вставка подотчетов [стр. 505].

3. Используйте непроиндексированные поля (или проиндексированное поле первичной таблицы и непроиндексированное поле таблицы соответствия) для установления связи подотчета с первичным отчетом. См. раздел Установление связи между подотчетом и данными основного отчета [стр. 508].

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство пользователя SAP Crystal Reports 22.7 Создание подотчета по запросу Вложенные отчеты по запросу особенно полезны, когда нужно создать отчет, содержащий несколько вложенных отчетов. В таком случае можно сделать так, чтобы эти вложенные отчеты отображались в виде гиперссылок.

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

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

22.7.1 Создание вложенного отчета по запросу 1. Вставьте обычный подотчет в первичный отчет.

2. Нажмите кнопку Формат на панели инструментов "Инструменты мастера".

Появится диалоговое окно "Редактор формата".

3. Щелкните вкладку Подотчет и установите флажок в ячейке Подотчет по запросу.

4. Нажмите кнопку ОК.

22.8 Добавление заголовков в подотчеты по запросу Для дальнейшей организации отчета можно создать надписи для вкладки "Предварительный просмотр подотчета" и для рамки заполнителя подотчета по запросу.

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

Текстовая надпись вкладки заменяет надпись имени файла подотчета на вкладке "Предварительный просмотр".

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

Руководство пользователя SAP Crystal Reports 22.8.1 Чтобы добавить надпись 1. Выберите подотчет и нажмите кнопку Формат на панели инструментов "Инструменты мастера".

Появится диалоговое окно "Редактор формата".

2. Щелкните вкладку Подотчет.

3. Можно ввести либо надпись подотчета по запросу, либо надпись для вкладки предварительного просмотра, щелкнув мышью соответствующую кнопку Формула и открыв мастер формул.

4. Введите формулу в текстовое поле Формула.

Пример формулы с использованием синтаксиса Crystal:

"More Information About " + {Customer.Customer Name} Пример формулы с использованием синтаксиса Basic:

formula = "More Information About" + {Customer.Customer Name} При использовании базы данных Xtreme.mdb в качестве примера эти формулы выдали бы такую надпись, как "Дополнительная информация о Pathfinders" или "Дополнительная информация о Rockshocks for Jocks".

5. Нажмите Проверить, чтобы выявить ошибки в формуле. Если программа обнаружит ошибку, отобразится сообщение с описанием ошибки.

6. После устранения ошибок нажмите Сохранить и закрыть.

7. Нажмите кнопку ОК, чтобы вернуться в отчет.

Формула текста вкладки вычисляется только при развертке подотчета. При предварительном просмотре подотчета отдельно от первичного отчета формула вычислена не будет.

22.9 Различные представления одних данных в отчете Вложенные отчеты можно использовать для различных представлений данных в основном отчете.

Например, можно отобразить итоговые значения в верхней части отчета, а сведения в нижней.

Это можно сделать несколькими способами. Двумя самыми простыми способами являются:

Создание итогового отчета в качестве основного отчета, а отчета, содержащего сведения, в качестве вложенного отчета. В данном случае вложенный отчет, содержащий сведения, будет размещен в разделе нижнего колонтитула отчета.

Создание отчета, содержащего сведения, в качестве основного отчета, а итогового отчета в качестве вложенного отчета. В данном случае итоговый отчет будет размещен в разделе верхнего колонтитула © 2014 SAP AG или аффилированная компания SAP. Все права Руководство пользователя SAP Crystal Reports Используйте соответствующие поля связи для установления связи с отчетом и сочетания данных.

Руководство пользователя SAP Crystal Reports 23 Общие сведения о базах данных 23.1 Общие сведения о базах данных Несмотря на существование сотен систем управления базами данных (СУБД), Crystal Reports после подключения к файлам баз данных позволяет устранить различия между ними. Процесс работы с файлами, таблицами, полями и записями баз данных в основном один и тот же и не зависит от типа данных, к которым осуществляется доступ.

В данном разделе рассматриваются некоторые принципы и задачи, общие для работы с файлами баз данных. Использование псевдонимов баз данных, обнаружение перемещенных или переименованных файлов баз данных, работа с индексированными таблицами, а также связывание таблиц и субъектов – эти задачи являются общими для любого, кто проектирует отчеты в Crystal Reports. Раздел Использование SQL и баз данных SQL [стр. 519] особенно важен для тех, кто работает с базами данных SQL и другими форматами данных, доступ к которым осуществляется с помощью ODBC.

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

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

Часто данные из двух различных таблиц могут быть связаны по общему полю. Например, в таблице "Клиенты" может быть "Код клиента" для каждого клиента, а в таблице "Заказы" может быть указано значение "Код клиента" для каждого клиента, разместившего заказ, что указывает на связь между таблицами. Две таблицы можно связать по общему полю. См. раздел Связывание таблиц [стр. 533].

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство пользователя SAP Crystal Reports На схеме ниже показано, как могут быть связаны две таблицы:

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

Некоторые приложения СУБД не поддерживают индексированные таблицы. Чтобы узнать, поддерживает ли СУБД индексы и как их создать, обратитесь к документации по СУБД. Если в документации по СУБД индексированные таблицы не упоминаются, СУБД может их не поддерживать, и таблицы следует связывать по общим полям. Вкладка "Связи" Мастера баз данных также может помочь в определении наличия индексов в таблицах.

Руководство пользователя SAP Crystal Reports Индексы организуют записи в таблице реляционной базы данных так, чтобы их можно было быстрее найти.

Например, предположим, что есть таблица со следующими данными:

Сведения в данной таблице организованы по полю "№ заказа". Это подходит для случая, когда поиск данных в таблице производится по номерам заказов. Однако что если необходимо найти сведения по определенному клиенту?

Скажем, необходимо найти все заказы, сделанные компанией "Sierra Bicycle Group". Система базы данных должна начать поиск с номера первого заказа в списке и проверять, совпадает ли имя клиента с запросом.

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

Вместо этого для таблицы можно создать индекс по полю "Клиент". Такой индекс может выглядеть следующим образом:

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство пользователя SAP Crystal Reports В данном индексе данные организованы по клиенту, а не по номерам заказов. Кроме того, следует отметить, что во втором столбце фактически содержатся указатели на определенные номера заказов в исходной таблице. При использовании данного индекса система базы данных может искать только сведения в столбце "Клиент", пока не найдет нужного клиента, "Sierra Bicycle Group".

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

Преимуществом этого хорошо организованного поиска по таблице базы данных в соответствии с индексом является скорость. Использование индексов ускоряет получение данных и генерацию отчетов – важные факторы при создании отчетов с использованием больших файлов баз данных.

23.2 Использование SQL и баз данных SQL Пожалуй, наиболее популярные и обладающие наиболее широкими возможностями форматы баз данных и приложения СУБД основаны на языке SQL. Обычно базы данных SQL работают с использованием сетевой архитектуры клиент-сервер. SQL-сервер создает, хранит и обрабатывает файлы баз данных, таблицы, поля и записи, а интерфейс SQL-клиента позволяет пользователям не только проектировать файлы баз данных и работать с ними, но также извлекать полезные данные для каждодневной работы.

23.2.1 Что такое SQL?

SQL – это язык запросов, предназначенный для организации, управления, разработки и выполнения запросов в реляционных базах данных по компьютерным сетям. SQL – это общий язык в информатике и отрасли управления информацией. Язык стандартизирован Американским национальным институтом по стандартизации (ANSI) и Международной организацией по стандартизации (ISO). Это означает, что определенные функции должны присутствовать в любой версии языка SQL, выпускаемой производителем программного обеспечения, чтобы эта версия могла официально называться языком SQL. Большое количество поставщиков программного обеспечения добавляют в свои версии языка SQL расширенные функции в целях улучшения языка и привлечения клиентов, но при этом они должны соблюдать исходные стандарты, установленные ANSI и ISO.

SQL – это не совсем компьютерный язык. Его нельзя использовать для создания автономных компьютерных приложений или операционных систем. SQL часто называют субъязыком, поскольку его Руководство пользователя SAP Crystal Reports можно использовать в других языках или приложениях. Главным образом целью языка SQL является работа с реляционными базами данных.

Синтаксис языка SQL построен на системе отправки выражений SQL серверу баз данных SQL. Каждое выражение – это запрос на выполнение операции базы данных (например, создание файла базы данных, добавление таблиц и полей в базу данных, добавление записей в таблицы или получение данных из баз данных). SQL-сервер анализирует выражение SQL и выполняет требуемую операцию. Например, если выражение представляет собой запрос данных, сервер собирает данные и возвращает их клиентскому компьютеру для просмотра пользователем.

SQL-запрос – это выражение SQL, специально предназначенное для запроса данных в одной или нескольких базах данных SQL. Некоторые SQL-приложения требуют ввода SQL-запроса непосредственно с помощью текстового редактора, тогда как в других есть графические пользовательские интерфейсы, которые позволяют осуществлять процесс запроса в базе данных SQL. В последнем случае приложение должно создать выражение SQL на основании вводимых пользователем сведений. Это выражение фактически является SQL-запросом, и именно он используется для запроса данных. Приложение Crystal Reports относится к обеим категориям SQL-совместимых приложений.

23.2.1.1 Архитектура клиент-сервер Одной из самых важных функций приложений СУБД SQL является их возможность эффективного использования клиент-серверной сетевой архитектуры.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство пользователя SAP Crystal Reports Сеть с простой структурой состоит из одного или нескольких серверов, представляющих собой единое хранилище, в котором все пользователи могут получать данные и приложения. Многие серверы сети также обеспечивают безопасность сети, такие автоматизированные службы, как резервное копирование данных и контроль сетевых ресурсов для оптимизации обслуживания всех рабочих станций сети. Из-за высоких требований к вычислительной мощности сервера сети компьютер, используемый в качестве сервера сети, часто является мощным, может иметь несколько процессоров, жестких дисков и приводов чтения компакт-дисков.

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

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

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

Серверные приложения не следует путать с компьютерами-серверами. И те и другие часто называются серверами. При этом серверное приложение находится на сервере сети, используя его вычислительные Руководство пользователя SAP Crystal Reports мощности и возможности операционной системы компьютера-сервера, тогда как сервер сети – это физический компьютер, с которым клиенты сети соединены посредством кабелей или других устройств.

23.2.2 СУБД SQL Система управления базами данных SQL – это распространенный пример клиент-серверного пакета программного обеспечения. Стандартные СУБД SQL включают приложение SQL-сервера, которое выполняет фактическую работу по созданию и работе с базами данных и данными, которые в них содержатся. СУБД также включает не менее одного набора программного обеспечения (одного рабочего места) SQL-клиента, которое подключается к SQL-серверу по сети. Обычно программное обеспечение SQL-клиента состоит как минимум из редактора выражений SQL, который можно использовать для написания и выполнения выражений SQL, а также базового коммуникационного уровня, который работает с приложением SQL-сервера по сети.

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

23.2.2.1 Хранимые процедуры В дополнение к общим атрибутам реляционных баз данных (таблицам, полям, записям и так далее) многие СУБД SQL поддерживают хранимые процедуры. Хранимая процедура – это SQL-программа составленная из одного или нескольких операторов SQL. Хранимую процедуру можно использовать для определения SQL-запроса, который можно использовать многократно. Кроме того, в хранимой процедуре можно определить переменные, условные выражения и переменные аргументы, благодаря чему перед выполнением процедуры ей необходимо передать какие-либо данные.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство пользователя SAP Crystal Reports Поскольку хранимые процедуры могут возвращать результирующее множество, при выполнении они могут передавать определенный набор данных. Фактически Crystal Reports позволяет выполнять в базе данных SQL хранимые процедуры и использовать для проектирования отчета возвращаемые данные. Если хранимая процедура должна запрашивать у пользователя данные, на которых будет основан запрос, Crystal Reports предложит ввести эти данные при выборе хранимой процедуры для отчета.

23.2.2.1.1 Выбор хранимой процедуры SQL 1. Выберите команду Параметры в меню Файл.

Откроется диалоговое окно "Параметры".

2. Откройте вкладку База данных и проверьте, чтобы был установлен флажок Хранимые процедуры.

Когда этот флажок установлен, при входе в базу данных SQL автоматически будут отображаться все доступные хранимые процедуры.

3. Кроме того, при желании можно указать параметры Имя таблицы КАК и Владелец КАК.

Параметр "Имя таблицы КАК" основан на операторе "SQL LIKE". Этот параметр позволяет указывать типы имен таблиц, которые должны отображаться в диалоговом окне "Выбрать таблицу SQL". В качестве подстановочных символов для этой функции можно использовать символ подчеркивания (_) и знак процента (%). Символ подчеркивания обозначает любой одиночный символ, а знак процента – строку символов. Например, DAV_ соответствует только имени DAVE, тогда как DAV% соответствует и DAVE, и DAVID. Имя таблицы КАК C% отображает только таблицы с именем, начинающимся буквой C.

Параметр "Владелец КАК" также основан на операторе SQL LIKE. Он позволяет выбрать владельца (или создателя или псевдоним) таблицы, а не само имя таблицы. Например, "Owner LIKE C%" отображает только таблицы, имя владельца которых начинается буквой С.

Дополнительную информацию по оператору SQL LIKE см. в документации по SQL.

4. Чтобы выйти из диалогового окна "Параметры", нажмите кнопку ОК.

5. На начальной странице щелкните пункт Пустой отчет.

6. Найдите и выберите источник данных SQL-сервер, содержащий хранимую процедуру, который требуется использовать.

7. Чтобы перейти к диалоговому окну "Информация о соединении", нажмите кнопку Далее.

8. Введите необходимые данные для входа.

Руководство пользователя SAP Crystal Reports Вы также можете подключиться к источнику данных SQL путем установки флажка Интегрированная защита. При использовании этой функции не требуется идентификатор пользователя или пароль, но необходимо, чтобы на сервере была включена функция аутентификации базы данных. Обратитесь к администратору базы данных для получения сведений о включении и настройке этой функции.

9. Нажмите кнопку Готово.

23.2.2.1.2 Изменение параметра в хранимой процедуре 1. Выделите хранимую процедуру SQL в папке "Хранимые процедуры" и щелкните стрелку ">", чтобы добавить ее в список Выбранные таблицы.

Откроется диалоговое окно "Введите значения параметров".

2. Выделите параметр в списке Поля параметров.

3. Назначьте значение, введя его в поле Дискретное значение, и нажмите кнопку ОК.

Снова откроется Мастер баз данных.

4. Нажмите кнопку ОК и создайте отчет с помощью полей хранимой процедуры.

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

23.2.3 Использование SQL в Crystal Reports При подключении к базе данных SQL Crystal Reports выступает в качестве приложения SQL-клиента, подключаясь к SQL-серверу по сети.

При проектировании отчета, использующего данные SQL, Crystal Reports создает SQL-запрос. Этот запрос можно увидеть, выбрав команду "Показать SQL-запрос" в меню "База данных".

Этот SQL-запрос является представлением выражения SQL, которое Crystal Reports отправляет SQLсерверу. Преобразуя как можно большую часть схемы отчета в SQL-запрос, Crystal Reports может передать большую часть обработки отчета серверу. Вместо просмотра всей базы данных для поиска запрошенных данных Crystal Reports позволяет выполнить эту работу серверу и вернуть значительно меньший объем данных, уменьшая время и ресурсы, которые пользовательский компьютер должен тратить для создания отчета.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство пользователя SAP Crystal Reports 23.2.4 Язык SQL Поскольку для доступа к клиент-серверным базам данных с помощью ODBC Crystal Reports использует язык SQL, процесс генерации отчета можно лучше понять, если разобраться в некоторых из используемых SQL-операторах (командах):

23.2.4.1 SELECT Оператор SELECT указывает на получение определенных элементов данных из таблиц базы данных.

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

SELECT

TABLEA.'CUSTNAME', TABLEA.'STATE' 23.2.4.2 DISTINCT При использовании оператора DISTINCT запрос извлекает только уникальные (несовпадающие) наборы данных. Вследствие этого строка результатов извлекается только один раз. С помощью оператора DISTINCT можно модифицировать предшествующий оператор SELECT:

SELECT DISTINCT

TABLEA.'CUSTNAME', TABLEA.'STATE' 23.2.4.3 FROM Оператор FROM указывает источники полей баз данных, указанных в операторе SELECT. Оператор FROM перечисляет фактические таблицы базы данных, в которых находятся поля и записи, содержащие запрашиваемые данные. За оператором FROM, генерируемым Crystal Reports, следует имя каждой таблицы с псевдонимом, который она использует для определения таблицы в отчете. В следующем примере показано использование оператора FROM с оператором SELECT:

SELECT

TABLEA.'CUSTNAME', TABLEA.'STATE' FROM 'TABLEA' TABLEA Руководство пользователя SAP Crystal Reports 23.2.4.4 WHERE Оператор WHERE выполняет две задачи:

Задает критерий отбора записей.

Указывает способ объединения таблиц базы данных.

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

SELECT

MYTABLE.'SALESPERSON', MYTABLE.'SALESTOTAL' MYTABLE.'SALESTOTAL' < 10000. Когда оператор WHERE используется для определения способа связывания двух таблиц, между именами двух таблиц находится SQL -оператор объединения. См. раздел Варианты связывания [стр. 543].

Ниже приведен пример использования оператора WHERE для объединения двух таблиц:

SELECT

CUSTOMER.'CUST_ID', CUSTOMER.'CUST_NAME', 'CUSTOMER' CUSTOMER, CUSTOMER.'CUST_ID' = ORDERS.'CUST_ID' 23.2.4.5 ORDER BY Оператор ORDER BY указывает на то, что извлекаемые записи базы данных должны быть отсортированы по значениям в определенном поле. Если этот оператор не используется, программа извлекает записи в том порядке, в котором они присутствуют в исходной базе данных. Если после оператора ORDER BY указать более одного поля, программа сортирует записи по значениям в поле, указанном первым, затем, в пределах этого порядка сортировки, программа сортирует записи по значениям в поле, указанном вторым, и так далее. В приведенном ниже выражении SQL используется оператор ORDER BY:

SELECT

MYTABLE.'COMPANY',

ORDER BY

MYTABLE.'STATE' ASC, MYTABLE.'CITY' ASC ASC указывает на то, что значения в поле сортируются в возрастающем порядке, а не в убывающем (DESC). В возрастающем порядке буквы сортируются от A до Z, а числа – от 0 до 9.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство пользователя SAP Crystal Reports 23.2.4.6 GROUP BY Оператор GROUP BY извлекает набор итоговых данных. Вместо извлечения самих данных GROUP BY группирует данные и подводит итог по каждой группе с помощью SQL-функции агрегирования. Сервер возвращает Crystal Reports для каждой группы только итоговые данные.

Пример.

SELECT

MYTABLE.'STATE', MYTABLE.'ZIPCODE', SUM (MYTABLE.'SALES') FROM 'MYTABLE' MYTABLE

GROUP BY

MYTABLE.'STATE', MYTABLE.'ZIPCODE' 23.2.5 Определение команды SQL Если используемая база данных поддерживает такой язык запросов, как SQL, то можно написать собственную команду, которая будет представлена в Crystal Reports в виде объекта "Таблица". Это обеспечивает пользователям базы данных полное управление обработкой данных, которая передается серверу базы данных. Пользователь, имеющий опыт работы с базами данных и языком SQL, может написать хорошо оптимизированную, которая существенно сократит набор данных, возвращаемых с сервера.

Написать собственную команду можно с помощью узла "Добавить команду" в Эксперте базы данных, по которой создается виртуальная таблица, представляющая результаты обработки команды. После создания команды ее можно сохранить в репозитории SAP BusinessObjects Enterprise, чтобы ее могли использовать другие пользователи.

При использовании виртуальной таблицы, созданной в качестве команды, или когда используется команда из репозитория SAP BusinessObjects Enterprise,Crystal Reports не изменяет синтаксис выражения SQL, передаваемого серверу (то есть кавычки и управляющие символы не добавляются автоматически). Это поведение также применяется к параметрам, которые используются в командах. Поэтому необходимо добавлять кавычки и управляющие символы, необходимые для драйвера базы данных.

Некоторые из собственных драйверов баз данных Crystal Reports не поддерживают функцию "Добавить команду":

Сервер Sybase Интерактивный сервер Informix Публикация "Добавить" восприимчива к атакам инжекции SQL.

На многих веб-страницах инжекция SQL используется для занесения параметров пользователя в SQLзапрос к связанной базе данных. Например, при входе на веб-страницу производится инжекция SQL в Руководство пользователя SAP Crystal Reports базу данных для аутентификации имени пользователя и пароля. В поля "Имя пользователя" и "Пароль" взломщиком может быть занесено значение, которое негативно повлияет на SQL-запрос к связанной базе данных.

23.2.5.1 Создание объекта команды 1. В Мастере баз данных разверните папку Создать новое соединение и в подпапках перейдите к своему источнику данных.

2. При необходимости выполните вход в источник данных.

3. Под источником данных дважды щелкните узел Добавить команду.

4. В диалоговом окне Добавление команды в отчет введите соответствующий запрос или команду для открытого источника данных.

SELECT

Customer.`Customer ID`, Customer.`Customer Name`, Customer.`Last Year's Sales`, Customer.`Country`, Orders.`Order Amount`, Customer Customer INNER JOIN Orders Orders ON Customer.`Customer ID` = Orders.`Customer ID` (Customer.`Country` = 'USA' OR Customer.`Country` = 'Canada') AND Customer.`Last Year's Sales` < 10000.

ORDER BY

Использование двойных или одинарных кавычек (и другого синтаксиса SQL) определяется драйвером базы данных, используемым отчетом. При этом в ходе создания необходимо вручную добавить кавычки и другие элементы синтаксиса.

5. Также для команды можно создать параметр, щелкнув пункт Создать и введя данные в диалоговое окно Параметр команды Дополнительную информацию о создании параметров см. в разделе Создание параметра для объекта 6. Нажмите кнопку ОК.

Будет выполнен возврат в Конструктор отчетов. В Проводнике полей в пункте "Поля базы данных" появится таблица "Команда" с указанными полями базы данных.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство пользователя SAP Crystal Reports Для создания виртуальной таблицы из команды ее необходимо выполнить один раз. Если у команды есть параметры, пользователю будет предложено ввести для них значения.

По умолчанию команда называется "Команда". Ее псевдоним можно изменить. Для этого ее нужно выбрать и нажать клавишу F2.

23.2.5.2 Изменение объекта команды 1. В области "Выбранные таблицы" Мастера баз данных выберите команду, которую требуется изменить.

2. Щелкните команду правой кнопкой мыши и выберите в контекстном меню пункт Редактировать команду.

Если команда хранится в репозитории BusinessObjects Enterprise, перед ее изменением необходимо отключиться. Дополнительную информацию см. в разделе Изменение объектов в репозитории [стр.

3. Внесите требуемые изменения в диалоговом окне Изменить команду и по завершении нажмите кнопку 23.2.5.3 Создание параметра для объекта команды При работе в диалоговом окне "Добавить команду в отчет" или "Изменить команду" можно создать поле параметра.

1. В области "Список параметров" соответствующего диалогового окна команды выберите пункт Создать.

2. В диалоговом окне "Параметр команды" введите в поля следующие данные:

Введите имя, по которому будет определяться параметр.

Введите текст, который программа должна отображать в подсказке.

Выберите тип данных поля параметра.

Введите значение, которое программа должна использовать, если не указывается новое значение.

Это необязательное действие.

Руководство пользователя SAP Crystal Reports 3. Нажмите кнопку ОК.

Параметр добавляется в список параметров. Его можно изменить или удалить после возврата в диалоговое окно "Изменить команду".

23.2.5.4 Добавление параметра в объект команды 1. Поместите курсор в текст запроса в то место, в которое необходимо вставить параметр.

2. Дважды щелкните имя параметра в Списке параметров.

Параметр добавляется на место курсора. Это должно выглядеть следующим образом:

Customer.`Country` = '{?CountryParam}' При создании команды необходимо вручную добавить кавычки и другие элементы синтаксиса.

Если необходимо изменить созданное поле параметра, перейдите в диалоговое окно "Проводник полей" и выберите его в узле "Поля параметров". Для получения дополнительных сведений см. раздел Поля параметров и подсказки [стр. 463].

23.3 Изменение источника данных При перемещении или переименовании файла базы данных Crystal Reports не сможет найти данные при следующем выводе отчета на печать. В другом случае отчет может быть создан на одном компьютере, на котором все файлы баз данных хранятся в определенном каталоге, затем отчет копируется или перемещается на другой компьютер, на котором эти же данные хранятся в другом каталоге. В любом из этих случаев необходимо будет проверить расположение файлов баз данных, к которым обращается отчет, и настроить указатели псевдонимов на новое расположение или имя базы данных.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство пользователя SAP Crystal Reports Команда "Проверить базу данных" в меню "База данных" просматривает указатели псевдонимов, хранящиеся в файле отчета, чтобы проверить нахождение файлов баз данных в указанных каталогах.

Если базы данных не найдены в указанном месте, программа указывает на наличие несоответствий.

Для изменения указателей псевдонимов, которые сохраняет Crystal Reports, служит команда "Установить местоположение источника данных" в меню "База данных". Эта команда обеспечивает простой способ определения нового имени или местоположения файлов баз данных. Кроме того, она автоматически преобразует драйвер базы данных для выбранного источника данных. Например, с помощью команды "Установить местоположение источника данных" можно автоматически преобразовать источник данных с прямым доступом в источник данных ODBC.

23.3.1 Чтобы изменить источник данных, выполните следующие действия 1. В меню База данных выберите команду Установить местоположение источника данных.

Откроется диалоговое окно "Установить местоположение". В его области "Текущий источник данных" отображаются таблицы базы данных, которые используются в отчете. Главный отчет показан как корневой узел.

2. В области "Текущий источник данных" выделите базу данных или таблицу, которую требуется заменить.

Если необходимо установить в качестве местоположения базы данных местоположение активного отчета, разверните узел отчета "Свойства" и щелкните правой кнопкой мыши поле "Имя базы данных". Выберите пункт "Редактировать", чтобы указать местоположение вручную, "Как у отчета", чтобы установить в качестве местоположения локальный диск или "Преобразовать в UNC", чтобы сделать местоположение сетевым диском.

Руководство пользователя SAP Crystal Reports 3. В области "Заменить на" выделите базу данных или таблицу, которую необходимо использовать вместо текущей.

4. Нажмите кнопку Обновить.

Эта кнопка доступна только в случае, когда выделены похожие элементы (то есть если в верхнем списке выделена таблица, в нижнем также необходимо выделить таблицу).

После нажатия кнопки "Обновить" сведения нового источника данных обновляются в списке "Текущий источник данных".

5. При необходимости повторите действия 2 – 4.

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

Для устранения данной проблемы в Конструкторе отчетов для обращения к таблицам и файлам базы данных используются псевдонимы. Псевдонимы – это указатели, внутренние устройства, которые указывают программе, где ей следует искать поле базы данных. В данном случае при изменении имени или расположения базы данных выполняется простое переназначение указателя. См. раздел Изменение источника данных [стр. 530]. Имя псевдонима не изменяется, поэтому формулы остаются неизменными.

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

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство пользователя SAP Crystal Reports При первом выборе таблицы или файла Конструктор отчетов автоматически назначает им имена псевдонимов по умолчанию. По умолчанию псевдоним совпадает с исходным именем таблицы. В базах данных, в которых таблица представляет собой отдельный файл (например, dBASE), используется имя файла базы данных без расширения. Например, при использовании файла базы данных dBASE "Компания.dbf" программа по умолчанию назначит файлу имя псевдонима "Компания". Для таблицы базы данных можно принять псевдоним по умолчанию или назначить новый.

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

23.5 Связывание таблиц Таблицы связываются таким образом, что записи из одной таблицы соответствуют связанным записям в другой таблице. Например, при активации таблиц "Заказы" и "Клиенты" они связываются таким образом, что каждый заказ (из таблицы Заказы) соответствовал сделавшему заказ клиенту (из таблицы Клиенты).

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

Руководство пользователя SAP Crystal Reports 23.5.1 Источник связи и приемник связи При связывании двух таблиц одна из них привязывается к другой. Таблица, из которой устанавливается связь, используется в качестве главной, в то время как таблица, с которой устанавливается связь, служит в качестве подчиненной таблицы, где главная таблица осуществляет поиск записей. В случае простой связи Конструктор отчетов проверяет первую запись в главной таблице и находит все соответствующие записи в подчиненной таблице. После того как для первой записи главной таблицы в подчиненной будут найдены все совпадения, в последней будет осуществляться поиск всех соответствующих строк для следующей записи главной таблицы.

23.5.2 Виды отношений, используемых при создании связей Когда записи из одной таблицы привязываются к другой, обычно записи относятся к одному из двух типов отношений: "один-к-одному" или "один-к-нескольким".

23.5.2.1 Отношения "один-к-одному" В отношении "один-к-одному" между записями в двух связанных таблицах для каждой записи в главной таблице есть только одна соответствующая запись в подчиненной таблице (соответствие устанавливается по полю связи). Например, в базе данных Xtreme.mdb таблица "Сотрудники" может быть связана с таблицей "Адреса сотрудников" по полю "Табельный номер сотрудника", которое есть в обеих таблицах.

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

23.5.2.2 Отношения "один-ко-многим" В случае отношения "один-к-нескольким" между записями в двух связанных таблицах, для каждой записи главной таблицы может быть более одной соответствующей записи в подчиненной таблице. Соответствие устанавливается по совпадению значений полей связи. Например, в базе данных Xtreme.mdb таблица "Клиенты" может быть связана с таблицей "Заказы" по полю "Идентификатор клиента", имеющемуся в обеих таблицах. Таблица "Клиенты" содержит информацию о каждом клиенте, который разместил заказ в компании. Таблица "Заказы" содержит информацию о заказах, размещенных клиентами. Поскольку клиенты могут разместить более одного заказа, в таблице "Заказы" может быть более одной записи для каждой записи клиента в таблице "Клиенты". Это пример отношения "одна-с-несколькими".

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство пользователя SAP Crystal Reports 23.5.3 Рекомендации по повышению производительности при использовании связей "один-ко-многим" Сведения, приведенные в данном разделе, направлены на повышение скорости обработки и снижение сетевого трафика при работе с отчетами. Здесь описаны оптимальные способы использования формул выборки и индексов при наличии связей "одна-с-несколькими", которые позволяют работать с отчетами более эффективно. Если не воспользоваться сведениями из данного раздела, то можно столкнуться с ситуациями, когда отчеты обрабатывают на десятки и даже тысячи записей больше, чем необходимо.

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

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

В таблице А содержится 26 записей (по одной на каждую букву английского алфавита).

В таблице Б содержится 2600 записей (по 100 записей на каждую запись из таблицы А).

В моделируемой ситуации необходимо создать отчет, который находит две определенные записи из таблицы А и 200 записей (100 + 100) из таблицы Б, которые соответствуют двум записям из таблицы А.

В самом благоприятном случае программе для выполнения задачи потребуется считать только около В самом неблагоприятном случае программе для выполнения задачи потребуется считать около Рекомендации по повышению производительности для файлов данных отличаются от рекомендаций для баз данных SQL. Файл данных, это любая база данных, не использующая SQL, доступ к которой осуществляется непосредственно из Crystal Reports. В целях данного раздела база данных SQL – это любая база данных, которая может принимать команды SQL непосредственно от Crystal Reports или посредством ODBC, а также база данных любого другого типа, к которой доступ осуществляется посредством ODBC.

Для лучшего понимания различий между базами данных с прямым доступом и источниками данных ODBC см. раздел интерактивной справки "Доступ к источникам данных".

23.5.3.1 Расширенные описания столбцов диаграммы В диаграммах производительности используются следующие столбцы:

Связывание или подотчет Отчет создается с использованием связанных баз данных, или выполняется вставка подотчета и его привязывание к данным из основного отчета?

Формула выбора Содержит ли основной отчет формулу выбора записей, которая устанавливает пределы диапазона по ключевому (индексному) полю таблицы А?

Руководство пользователя SAP Crystal Reports Индексирована ли таблица А по полю, которое предполагается использовать для сопоставления Индексирована ли таблица Б по полю, которое предполагается использовать для сопоставления Результаты из таблицы А Сколько записей должна считать программа из таблицы А для нахождения двух искомых записей?

Для каждого результата из таблицы А результаты в таблице Б Сколько записей должна считать программа из таблицы Б для нахождения двухсот искомых записей?

Общее количество считываемых записей Какое общее количество записей должна обработать программа для выполнения задачи?

Данные на компьютере © 2014 SAP AG или аффилированная компания SAP. Все права Руководство пользователя SAP Crystal Reports Данные SQL 23.5.4 Рекомендации по использованию файлов данных При работе с файлами данных связи "один-к-нескольким" могут возникать в случае связывания таблиц в одном отчете или при добавлении подотчета в отчет.

23.5.4.1 Связывание файлов данных При получении данных из связанных файлов данных в случаях отношений "один-к-нескольким" программа использует следующий процесс:

При наличии формулы выбора программа анализирует ее и все, что может, передает библиотеке DLL базы данных. Обычно это сведения по ограничению диапазона. Рассмотрим следующую формулу выбора записей:

{customer.REGION} in "CA" to "IL" AND Remainder ({customer.CUSTOMER ID},2)= В данной формуле часть перед оператором "and" содержит критерий выбора диапазона для поля "Регион". Регион должен по алфавиту находиться между "CA" и "IL". Программа передает это условие либо библиотеке DLL базы данных (для данных, которые находятся на компьютере), либо серверу (для данных SQL). См. раздел Выбор записи [стр. 130].

При этом вторая половина формулы выбора требует обработки, которая должна быть выполнена в Report Engine. В ней используется встроенная функция для обработки и оценки значения поля, ее не может выполнить библиотека DLL базы данных или сервер. Программа не передает это условие библиотеке DLL базы данных.

При наличии индекса в таблице А, и когда условие выбора ограничения диапазона основано на индексированном поле (в данном примере {customer.REGION}), программа переходит непосредственно к искомой записи в таблице А (первая запись "CA") и считывает ее.

Для этой записи программа находит первую соответствующую запись в таблице Б с помощью Руководство пользователя SAP Crystal Reports Программа передает эту объединенную запись (А + Б) обратно Конструктору отчетов, который проверяет запись на соответствие все формуле выбора.

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

Затем программа возвращается к таблице А и считывает следующую запись. Проверять запись на соответствие условию "CA" не требуется, поскольку поле индексированное и записи расположены в алфавитном порядке. Однако программа проверяет запись, чтобы узнать, не выходит ли она за пределы условия "IL" (например, следующая запись может быть для штата "Миссисипи" или "Теннеси"). Если запись попадает в указанный диапазон, программа снова начинает процесс сопоставления для этой записи.

Программа продолжает процесс до тех пор, пока не найдет все нужные записи таблицы А и соответствующие им записи из таблицы Б.

Чтобы найти две записи в таблице А и по 100 записей в таблице Б, соответствующих записям таблицы А, программа считывает 200 записей.

Если в таблице А отсутствует индекс, или если индекс есть, но условие выбора границ диапазона основано не на индексированном поле, программа считывает первую найденную запись.

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

Программа передает эту объединенную запись (А + Б) системе Report Engine, которая проверяет ее на соответствие всей формуле выбора.

Затем программа находит вторую соответствующую запись в таблице Б и передает эту объединенную запись обратно, затем третью запись и так далее до тех пор, пока не будут найдены, объединены и переданы обратно все записи в таблице Б, которые соответствуют первой записи в Затем программа переходит к следующей записи в таблице А и начинает процесс сравнения и Для нахождения двух записей в таблице А и 100 записей в таблице Б, соответствующих записям в таблице А, программа считывает 2600 записей.

23.5.4.2 Подотчеты и файлы данных Если основной отчет построен по таблице А, подотчет – на таблице Б, а записи связаны, то рекомендуется учитывать следующие моменты:

Количество подотчетов, запускаемое программой, определяется ситуацией индексом и формулой выбора в основном отчете:

Если таблица А индексирована, а в основном отчете есть формула выбора, передающая условия ограничения диапазона для индексированного поля, программа запускает два подотчета.

Если таблица А не индексирована или если она индексирована, но формула выбора не передает условия ограничения диапазона для индексированного поля, программа запускает 26 подотчетов.

Количество считываемых записей для каждого подотчета определяется ситуацией с индексом в Если в таблице Б есть индекс, при запуске подотчета программа считает только соответствующие Если в таблице Б нет индекса, при запуске подотчета программа всегда будет считывать все © 2014 SAP AG или аффилированная компания SAP. Все права Руководство пользователя SAP Crystal Reports 23.5.5 Рекомендации по использованию баз данных SQL Поскольку в случае данных SQL индексы не играют большой роли, основным моментом, который следует учитывать в случае связанных таблиц и подотчетов, является наличие формулы выбора в основном отчете, передающей границы диапазона в таблице А. См. раздел Связывание файлов данных [стр. 537].

23.5.5.1 Связанные таблицы SQL Если в формуле выбора есть условия ограничения диапазона, программа передает их серверу.

Если есть формула выбора, которая задает границы диапазона для таблицы А, сервер находит в таблице А записи, которые удовлетворяют критерию выбора (2), сопоставляет их с соответствующими записями из таблицы Б (100) и возвращает в систему Report Engine 200 объединенных записей.

Если формула выбора отсутствует, или если есть формула выбора, которая не задает границы диапазона для таблицы А, сервер сопоставляет все записи в таблице А (26) с соответствующими записями в таблице Б (100) и возвращает в систему Report Engine 2600 объединенных записей.

В обоих случаях система Report Engine применяет к объединенным записям формулу выбора целиком.

23.5.5.2 Подотчеты и базы данных SQL Если создается основной отчет с использованием таблицы А и вложенным отчет с использованием таблицы Б:

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

Количество записей, считываемых каждым вложенным отчетом, остается одинаковым независимо от наличия условия выбора границ диапазона в таблице А. Каждый вложенный отчет будет считывать в таблице Б только те записи, которые соответствуют каждой из записей, считанных в таблице А (100).

23.5.6 Моменты, которые касаются производительности всех отчетов 23.5.6.1 Момент При наличии файлов данных и баз данных SQL программа анализирует всю формулу выбора и передает все части критериев, которые она может преобразовать (передать), независимо от их местоположения в Руководство пользователя SAP Crystal Reports формуле. Таким образом, если формула находит критерий, который она может передать, а затем критерий, который не может передать, затем критерий, который может передать, она передает первую часть, пропускает вторую и передает третью.

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

В случае баз данных SQL программа передает серверу критерии, которые может передать, в форме оператора WHERE.

Несмотря на наличие исключений, как правило, программа может передать любую часть формулы выбора записей, которая сравнивает поле с константой. Обычно это означает, что она может передать любой тип критерия выбора записей, который можно настроить в мастере выбора (equal to, one of, less than, greater than, less than or equal, greater than or equal, between, starting with или like constant).

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

Случаи с оператором "AND" {customer.REGION} = "CA" and {customer.CUSTOMER ID}[3 to 5] = "777") В данном случае программа знает, что она может передать условие, которое стоит перед оператором "And", но не условие, которое следует за ним. Поскольку удовлетворять первому условию должны только те записи, которые будут удовлетворять второму условию, программа передает первое условие, определяет множество данных, которое ему удовлетворяет, а затем применяет второе условие только к отобранным данным. Правило для случаев с оператором "AND" заключается в том, что программа передает все условия, которые может.

Если все условия в случае с "AND" могут быть проверены на сервере или в библиотеке DLL базы данных, программа передает их все.

Случаи с оператором "OR" {customer.REGION} = "CA" or {customer.CUSTOMER ID}[3 to 5] = "777") В данном случае программа также знает, что она передать условие, которое стоит перед оператором "Or", но не условие, которое следует за ним. Поскольку есть записи, которые могут удовлетворять второму условию, при этом не удовлетворяя первому, передача первого условия не имеет смысла, поскольку будет получено неполное множество данных. Другими словами, даже если будут получены все данные, которые удовлетворяют первому условию, перед применением второго условия в Конструкторе отчетов необходимо будет извлечь из таблиц все данные. Таким образом, вместо повторения частей получаемых данных программа не передает ничего. Она получает все данные и выполняет обе проверки в Конструкторе отчетов. Правило для случаев с оператором "OR" заключается в том, что программа передает либо все условия проверки, либо ни одно из них.

Если все проверки в случае с "OR" можно проверить на сервере или в библиотеке DLL базы данных, программа передает их все.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство пользователя SAP Crystal Reports 23.5.6.2 Момент Чтобы убедиться в том, что для повышения производительности программа может использовать индекс в таблице А, проверьте следующее:

Наличие формулы выбора.

Наличие границ диапазона в формуле выбора по ключевому (индексированному) полю в таблице А.

В диалоговом окне "Параметры" выбран пункт "Использовать индексы".

23.5.6.3 Момент Если используемые поля таблицы 3 не индексированы, но есть индексированное поле, которое можно использовать в запросе выбора записей, используйте это поле. Например, предположим, что есть три продукта (продукт 1, продукт 2 и продукт 3) и необходимо узнать объемы продаж продукта 2 в США. По полю "Продукт" индекс отсутствует, но существует индекс по полю "Дата заказа". Поскольку известно, что продукт 2 не поставлялся до июля 1995 года, скорость можно повысить, ограничив отчет с помощью формулы выбора заказами, размещенными после июля 1995 года. В таком случае программа использует индекс "Дата заказа" для получения только заказов, сделанных начиная с июля 1995 года (небольшое подмножество все базы данных), а затем ищет в этом подмножестве, а не во всей базе данных, вхождения "продукт 2".

23.5.7 Вкладка "Связи" Мастера баз данных Вкладка "Связи" Мастера баз данных позволяют легко связывать две и более таблиц. Выберите в меню "База данных" пункт "Мастер баз данных", чтобы отобразить все текущие таблицы, а затем откройте вкладку "Связи", чтобы отобразить все имеющиеся связи.

Самый простой способ связывания таблиц базы данных заключается в выборе пункта "Связать автоматически" на вкладке "Связи" Мастера баз данных. В этом случае связи для таблиц будут выбраны автоматически на основании общих полей в таблицах или индексированных полей (если база данных поддерживает индексированные поля).

23.5.8 Связывание индексированных таблиц При связывании таблиц баз данных с прямым доступом, связывание выполняется из главной таблицы с полем в подчиненной таблице. Поля связи в главной таблице может быть индексированным, а может и не быть. Поле связи в подчиненной таблице также может не быть индексированным, если для соединения не используется собственный драйвер.

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

Руководство пользователя SAP Crystal Reports Некоторые приложения СУБД позволяют преобразовывать в индексе значение поля в другой тип данных. Например, поле в таблице может быть числовым, а в индексе оно преобразуется в строку.

Однако если это поле выбирается для привязывания к другой таблице, необходимо привязываться к полю с исходным типом данных. Нельзя привязать строковое значение к числовому, которое было в индексе преобразовано в строковое.

Если выполняется связывание таблиц из двух различных источников данных ODBC (например, MS SQL Server и Oracle), для связывания таблиц можно использовать только строковые поля. Строковые поля хранятся в базах данных одинаковым образом, не зависящим от источника данных. При этом значения других типов могут храниться в различных источниках данных различным образом, поэтому в Crystal Reports нельзя связывать источники данных с использованием любых значений, отличных от строковых.

При связывании таблиц баз данных с прямым доступом с помощью собственных драйверов (не SQL) доступен только один тип объединения, левое внешнее.

23.5.8.1 Изменение индекса, используемого при связывании При использовании функции интеллектуального связывания для связывания таблиц по полю, которое входит в состав нескольких индексов (двух и более) Crystal Reports выбирает для связи один из индексов.

Этот индекс может быть, а может и не быть индексом, который требуется использовать. Удалите связь, созданную функцией интеллектуального связывания, и свяжите таблицы вручную. Дополнительную информацию см. в разделе Связывание нескольких таблиц [стр. 74].

Не все приложения СУБД поддерживают индексированные таблицы. Перед тем как пытаться выбрать поле для связывания, проверьте, использует ли база данных индексы. Чтобы узнать, может ли СУБД использовать индексы, а также как их создавать, см. документацию по СУБД.

23.5.9 Порядок обработки связей При наличии более одной связи приложению Crystal Reports необходимо знать порядок, в котором оно должно их обрабатывать. По умолчанию порядок обработки соответствует порядку отображения связей на вкладке "Связи". Для изменения порядка по умолчанию используйте кнопки со стрелками в диалоговом окне "Упорядочить связи".

Например, если из пробной базы данных Xtreme выбраны таблицы "Кредит", "Клиент", "Заказы" и "Сведения о заказах", на вкладке "Связи" таблицы связаны как указано ниже.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство пользователя SAP Crystal Reports В данном случае сначала будут обработаны связи между таблицами "Кредит" и "Клиент", затем между таблицами "Клиент" и "Заказы" и, наконец, между таблицами "Заказы" и "Сведения о заказах". В диалоговом окне "Упорядочить связи" отображается этот порядок по умолчанию. Иерархию обработки можно изменить требуемым образом.

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

23.5.10 Варианты связывания Crystal Reports позволяет указать тип объединения и тип связи, который необходимо использовать при связывании таблиц. Также в случае объединения можно принудительно использовать таблицы.

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

При связывании полей с помощью объединения индексированные поля не требуются.

Существуют следующие типы объединения:

Внутреннее объединение Руководство пользователя SAP Crystal Reports Левое внешнее объединение Правое внешнее объединение Полное внешнее объединение Существуют следующие варианты принудительного объединения:

Без принудительного Принудительная связь с таблицей-источником Принудительная связь с таблицей-приемником Принудительная связь с обеими таблицами Существуют следующие типы связей:

Связь "равно" [=] Связь "больше чем" [>] Связь "больше либо равно" [>=] Связь "меньше чем" [ Manager.'Salary' Руководство пользователя SAP Crystal Reports Это выражение SQL может получить данные, подобные приведенным ниже:

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

23.5.10.11Связь "больше либо равно" [>=] Результирующее множество, полученное посредством установления связи "больше либо равно", включает в себя все записи, у которых значение поля связи в главной таблице больше либо равно значению этого же поля в подчиненной таблице. Приведенный здесь пример идентичен примеру для объединения "больше чем", за исключением того, что в нем используется связь "больше либо равно":

SELECT SalesRep.'Last Name', SalesRep.'Salary', Manager.'Last Name', Manager.'Salary' FROM 'SalesRep' SalesRep, 'Manager' Manager WHERE SalesRep.'Salary' >= Manager.'Salary' С помощью этого выражения получаются данные, подобные приведенным ниже:

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство пользователя SAP Crystal Reports 23.5.10.12Связь "меньше чем" [ Программы > Business Explorer > Query Designer.

2. При появлении подсказки войдите в систему SAP BW.

3. На панели инструментов конструктора запросов Query Designer нажмите кнопку Новый запрос.

В диалоговом окне Новый запрос: выбрать InfoProvider отображаются области сведений InfoArea и поставщики сведений InfoProvider, доступные в системе.

4. Выберите объект InfoProvider, на котором должен быть основан запрос, и нажмите кнопку ОК.

5. Определите запрос, выбирая меры и характеристики в списке "Контрольные цифры" и "Измерения" и перетаскивая их в область "Столбцы".

При создании запроса для отчета рекомендуется разместить контрольные цифры в области столбцов конструктора запросов Query Designer, а характеристики – в области строк.

6. Щелкните Свойства запроса.

7. Щелкните вкладку Расширенные и убедитесь в том, что установлен флажок Разрешить внешний доступ к данному запросу.

Руководство пользователя SAP Crystal Reports Данный параметр разрешает другим программам, таким, как Crystal Reports, получать доступ к данному запросу.

8. Щелкните Сохранить запрос.

9. В диалоговом окне Сохранить запрос щелкните Роли и выберите роль, с которой необходимо сохранить запрос.

10. Введите Описание и Техническое имя для запроса и щелкните Сохранить.

Техническое имя должно уникальным образом обозначать запрос, то есть, среди объектов InfoProvider в BW это имя может встречаться только один раз. Техническое имя может состоять не более чем из символов и должно начинаться буквой.

Доступ к запросам BW для использования в качестве источников данных Crystal Reports можно получить двумя способами. Можно использовать панель инструментов "Инструменты SAP" в Crystal Reports или проводник базы данных в Crystal Reports.

24.1.3.1.1.2.3.1 Использование панели инструментов "Инструменты SAP" для выбора запроса MDX Для создания запросов для отчетов в данном разделе руководства используется панель инструментов "Инструменты SAP". Однако при создании новых запросов можно воспользоваться любым способом.

Перед отображением запроса в Проводнике базы данных необходимо настроить параметр “Разрешить внешний доступ к запросу” в свойствах запроса.

1. В меню SAP щелкните Создать новый отчет на основе запроса.

2. При появлении подсказки войдите в систему SAP BW.

В диалоговом окне Выбрать запрос для своего Crystal Report отображаются запросы, доступные в списках "Избранное", "Роли" и информационных областях в BW.

3. Выберите запрос с данными, которые необходимо вывести в отчете, и нажмите кнопку ОК.

Crystal Reports сгенерирует отчет, в котором запрос используется в качестве источника данных. Отчет откроется на вкладке Проект Crystal Reports. Теперь в отчет можно добавлять поля, заголовки, диаграммы и другие объекты.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство пользователя SAP Crystal Reports 24.1.3.1.1.2.3.2 Использование Эксперта базы данных для выбора запроса MDX 1. В меню Файл в Crystal Reports щелкните Создать, а затем – Пустой отчет.

Появляется Эксперт базы данных.

2. В области доступных источников данных разверните список Создать новое соединение, а затем – Запрос SAP BW MDX.

Открывается диалоговое окно Вход в систему SAP.

3. Выберите необходимую систему BW и щелкните Далее.

В следующем диалоговом окне Вход в систему SAP необходимо ввести учетные данные пользователя 4. Введите обычные учетные данные пользователя SAP в поля Клиент, Имя пользователя и Пароль, затем нажмите кнопку Далее.

Для настройки языка входа необходимо настроить предпочтительный формат для просмотра в Crystal Reports в меню Вид Предпочтительный языковой стандарт для просмотра.

В следующем диалоговом окне Вход в систему SAP содержится вопрос о необходимости создания файлов трассировки RFC.

5. Если необходимо, чтобы в библиотеке подключений SAP файлы трассировки создавались для всех соединений клиента или сервера (для устранения неполадок), установите флажок Создать файлы трассировки RFC.

6. Нажмите кнопку Готово.



Pages:     | 1 |   ...   | 8 | 9 || 11 | 12 |   ...   | 13 |
Похожие работы:

«ГБОУ СПО Прокопьевский политехнический техникум ПРОГРАММА УЧЕБНОЙ ДИСЦИПЛИНЫ Основы программирования и баз данных Прокопьевск 2012 1 Примерная программа учебной дисциплины разработана на основе Федерального государственного образовательного стандарта (далее – ФГОС) по специальности среднего профессионального образования (далее СПО) 230111 Компьютерные сети Организация-разработчик: ГБОУ СПО Прокопьевский политехнический техникум Разработчики: Чащина Е.А. 20_ г. Рег. № 2 СОДЕРЖАНИЕ 1.Паспорт...»

«Стратегии для развития и продовольственной безопасности в горных регионах Центральной Азии ДОКУМЕНТ 13: ЭКОТУРИЗМ В КЫРГЫЗСТАНЕ Казаков Данияр Международный Семинар Душанбе, Таджикистан 6-10 июня 2005 Краткий обзор Моя презентация затрагивает вопросы экологического туризма в Кыргызстане: состояние, проблемы и мое видение на разрешение этих проблем. Кыргызская Республика располагает уникальными туристическими ресурсами (природными, рекреационными, культурно-историческими, эстетическими,...»

«SC-CAMLR-XVIII НАУЧНЫЙ КОМИТЕТ ПО СОХРАНЕНИЮ МОРСКИХ ЖИВЫХ РЕСУРСОВ АНТАРКТИКИ ОТЧЕТ ВОСЕМНАДЦАТОГО СОВЕЩАНИЯ НАУЧНОГО КОМИТЕТА ХОБАРТ, АВСТРАЛИЯ 25 – 29 ОКТЯБРЯ 1999 г. CCAMLR PO Box 213 North Hobart 7002 Tasmania AUSTRALIA _ Телефон: 61 3 6231 0366 Телефакс: 61 3 6234 9965 Председатель Научного комитета E-mail: [email protected] ноябрь 1999 г. Веб-сайт: www.ccamlr.org _ Настоящий документ выпущен на официальных языках Комиссии: русском, английском, испанском и французском. Дополнительные...»

«НАУКА В ВУЗАХ: МАТЕМАТИКА, ФИЗИКА, ИНФОРМАТИКА ПРОБЛЕМЫ ВЫСШЕГО И СРЕДНЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ Тезисы докладов Международной научно-образовательной конференции 23 – 27 марта 2009 года Изд-во РУДН 2009 УДК 510.2 Издание осуществлено ББК 22.15 при финансовой поддержке Т 11 Российский фонд фундаментальных исследований по проекту №09-01- Тезисы докладов Международной научно-образовательной конференции Наука в вузах: математика, физика, информатика. Проблемы высшего и среднего...»

«Цели и задачи, решаемые при реализации рабочей программы Изучение географии в старшей школе на базовом уровне направлено на достижение следующих целей: усвоение системы географических знаний о целостном, многообразном и динамично изменяющемся мире, взаимосвязи природы, населения и хозяйства на всех территориальных уровнях, географических аспектах глобальных проблем человечества и путях их решения, методах изучения географического пространства, разнообразии его объектов и процессов; овладение...»

«ГЛАВА АДМИНИСТРАЦИИ КРАСНОДАРСКОГО КРАЯ ПОСТАНОВЛЕНИЕ от 3 сентября 2007 г. N 763 ОБ УТВЕРЖДЕНИИ ПОРЯДКА РАЗРАБОТКИ И РЕАЛИЗАЦИИ ДОЛГОСРОЧНЫХ КРАЕВЫХ ЦЕЛЕВЫХ ПРОГРАММ (в ред. Постановлений главы администрации Краснодарского края от 06.11.2007 N 1031, от 11.12.2007 N 1175, Постановлений главы администрации (губернатора) Краснодарского края от 19.05.2008 N 411, от 19.11.2008 N 1172, от 18.03.2009 N 202, от 30.07.2009 N 657, от 28.01.2010 N 41, от 28.04.2010 N 308, от 27.12.2010 N 1230, от...»

«РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ НЕФТИ И ГАЗА ИМЕНИ И.М. ГУБКИНА Факультет экономики и управления УТВЕРЖДАЮ Декан факультета экономики и управления, д.э.н., профессор Андреев А.Ф. 21 февраля 2012 г. ПРОГРАММА вступительных испытаний при поступлении в магистратуру по направлению 080200 Менеджмент Магистерские программы: • Управление проектами • Финансовый менеджмент • Управление персоналом • Международный бизнес • Управление инновационными процессами на предприятиях нефтегазовой...»

«Вольная душе: стихи, 1992, Анна Пепеляева, 5880980154, 9785880980154, Литера-Д, 1992 Опубликовано: 18th May 2009 Вольная душе: стихи СКАЧАТЬ http://bit.ly/1cAcRNo,,,,. Не факт ретроконверсия национального наследия индуктивно синхронизирует эмпирический продуктовый ассортимент конкуренцию. Анализ зарубежного опыта разнородно специфицирует pak-shot современные тенденции. Потребительский рынок, как принято считать вероятен. Ребрендинг специфицирует анализ зарубежного опыта на инсайдерскую...»

«МУНИЦИПАЛЬНОЕ БЮДЖЕТНОЕ ОБЩЕОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ БОЛЬШЕКАБАНСКАЯ СРЕДНЯЯ ОБЩЕОБРАЗОВАТЕЛЬНАЯ ШКОЛА Лаишевского муниципального района Республики Татарстан Рассмотрено Согласовано Утверждаю руководитель МО зам.директора по УВР и.о. дирекор МБОУ Большекабанская СОШ _ / Фильчева С.В. / /Фильчева С.В. / Нигматзянова Г.Ф./ Протокол № 1 от 28.08.2013 г Приказ № 103 от 29.08.13 г. РАБОЧАЯ ПРОГРАММА ПО ИСТОРИИ 8 КЛАСС ( УМК под редакцией Н.В.Загладина) МБОУ Большекабанская средняя...»

«АДМИНИСТРАЦИЯ СЕЛЬСКОГО ПОСЕЛЕНИЯ ВНУКОВСКОЕ ЛЕНИНСКОГО МУНИЦИПАЛЬНОГО РАЙОНА МОСКОВСКОЙ ОБЛАСТИ ПОСТАНОВЛЕНИЕ от 25.07.2011 № 40 Об утверждении муниципальной целевой Программы Энергосбережение в коммунальном комплексе муниципального образования сельское поселение Внуковское Ленинского муниципального района Московской области на 2012 2013 годы В соответствии с Федеральным законом от 06.10.2003 №131 ФЗ Об общих принципах организации местного самоуправления в Российской Федерации, статьей 179...»

«Министерство образования и науки Российской федерации ФГБОУ ВПО ИРКУТСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ Институт авиамашиностроения и транспорта Кафедра менеджмента и логистики на транспорте ОБРАЗОВАТЕЛЬНАЯ ПРОГРАММА ДИСЦИПЛИНЫ (рабочая учебная программа дисциплины) ТАМОЖЕННОЕ ДЕЛО Направление подготовки: 190700 Технология транспортных процессов Профиль подготовки: Организация перевозок и управление в единой транспортной системе Квалификация (степень): Бакалавр Форма обучения: Очная...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФГОУ БАЛТИЙСКИЙ ФЕДЕРАЛЬНЫЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИМЕНИ ИММАНУИЛА КАНТА Утверждаю: Ректор Ректор БФУ им.И.Канта А.П.Клемешев _20г. _ 201_ г. _ Номер внутривузовской Номер внутривузовской регистрации_ регистрации Основная образовательная программа высшего профессионального образования Направление подготовки 010400.68 Прикладная математика и информатика Магистерская программа Информационные системы в муниципальном и государственном...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ САНКТ-ПЕТЕРБУРГСКИЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ, МЕХАНИКИ И ОПТИКИ Аннотированный сборник научно-исследовательских выпускных квалификационных работ бакалавров НИУ ИТМО Санкт-Петербург OM1O Аннотированный сборник научно-исследовательских выпускных квалификационных работ бакалавров НИУ ИТМО / Главный редактор Начальник НИЧ Л.М. Студеникин. – СПб: НИУ ИТМО, OM1O. – 1T6 с. Сборник представляет итоги...»

«Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Пермский государственный национальный исследовательский университет Утверждено на заседании Ученого совета университета от 30.03.2011 №8 Основная образовательная программа высшего профессионального образования Направление подготовки 04.03.01 Химия Профиль Физическая химия Квалификация (степень) академический бакалавр, прикладной бакалавр...»

«МКДОУ Красноярский детский сад Берёзка ГОДОВОЙ ОТЧЁТ 2012-2013 учебный год дер.Краснояр 2013год В 2012-2013 учебном году дошкольное учреждение работало над реализацией следующих образовательных задач: -обеспечение охраны и здоровья детей; -развитие элементарных естественно-научных представлений у детей через организацию поисково-исследовательской деятельности; -компетентностный подход в социально-личностном развитии детей дошкольного возраста. Задачи, которые поставлены перед педагогами ДОУ,...»

«Пояснительная записка Программа дисциплины “Социология города” составлена в соответствии с ООП для специальности: 040201.65 “Социология”. Цель курса. Формирование теоретического мышления студентов, освоение ими фундаментальных теорий и методологии социологии города, приобретение научной эрудиции в данной области знаний, овладение навыками социологического исследования городских явлений и процессов современного общества. Задачи курса. В результате изучения курса студенты должны: 1. получить...»

«Экология речных бассейнов Министерство образования и наук и РФ Владимирский государственный университет им. А.Г. и Н.Г. Столетовых Московский государственный университет им. М.В. Ломоносова Администрация Владимирской области Российский фонд фундаментальных исследований ЭКОЛОГИЯ РЕЧНЫХ БАССЕЙНОВ Э Р Б’ 2013 7-я Международная научно-практическая конференция 9 – 11 октября 2013 г. ECOLOGY OF THE RIVER’S BASINS E R B’ 2013 VI International scientific conference Oсtober, 09 – 11, ПРОГРАММА...»

«РОССИЙСКАЯ ФЕДЕРАЦИЯ МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Институт математики и компьютерных наук Кафедра информационных систем И.Г. Семихина ПРОЕКТИРОВАНИЕ ИНФОРМАЦИОННЫХ СИСТЕМ Учебно-методический комплекс. Рабочая программа для студентов специальности 050708.65 Педагогика и методика начального образования с дополнительной специальностью Информатика очной...»

«Министерство образования и науки Российской Федерации Федеральное бюджетное государственное образовательное учреждение высшего профессионального образования Ивановский государственный энергетический университет имени В.И. Ленина Электромеханический факультет Кафедра электропривода и автоматизации промышленных установок Утверждаю Декан заочного факультета _ Н. И. Дюповкин 2012 г. РАБОЧАЯ ПРОГРАММА Дисциплина Монтаж и наладка электроприводов Направление подготовки дипломированного специалиста...»

«МИНИСТЕРСТВО СЕЛЬСКОГО ХОЗЯЙСТВА РОССИЙСКОЙ ФЕДЕРАЦИИ УЛЬЯНОВСКАЯ ГОСУДАРСТВЕННАЯ СЕЛЬСКОХОЗЯЙСТВЕННАЯ АКАДЕМИЯ ФАКУЛЬТЕТ ВЕТЕРИНАРНОЙ МЕДИЦИНЫ Кафедра микробиологии, вирусологии, эпизоотологии и ветеринарно-санитарной экспертизы УТВЕРЖДАЮ Проректор по учебной работе, доцент Декан факультета, профессор М.В. Постнова С.Н. Золотухин 15 сентября 2009 г. 15 сентября 2009 г. РАБОЧАЯ ПРОГРАММА ПО ДИСЦИПЛИНЕ КЛИНИЧЕСКАЯ МИКРОБИОЛОГИЯ ДЛЯ СТУДЕНТОВ ФАКУЛЬТЕТА ВЕТЕРИНАРНОЙ МЕДИЦИНЫ ПО СПЕЦИАЛЬНОСТИ...»






 
2014 www.av.disus.ru - «Бесплатная электронная библиотека - Авторефераты, Диссертации, Монографии, Программы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.