Перед тем как выполнить (получить) Отчет или Этикетку, вам требуется определить необходимые Источники Данных, на основе которых построены указанные Отчеты. Далее, вам необходимо присоединить выбранные источники к рассматриваемым Отчетам, обеспечить выборку требуемой информации, фильтрацию только необходимых вам данных, порядок сортировки итоговых данных в Отчетах, уровни взаимосвязи нескольких групп данных между собой.

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

Управление Источниками Данных для Отчетов

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

Если ваш Отчет всегда выполняется на основе постоянных Источников Данных, то вы можете указать данные источники в объекте Отчета DataEnvironment, который существует для каждого стандартного Отчета. Сохранение рассматриваемого объекта DataEnvironment, его компонент (таблиц, индексов, соотношений) выполняется в дополнительных записях Отчета. Технологические шаги по уточнению характеристик объекта DataEnvironment для Отчета или Этикетки аналогичны технологии определения данного объекта при построении Форм. Дополнительную информацию смотрите в разделе: Как: Определить Среду Данных.

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

В представленной далее таблице приводятся различные Методы описания источников Данных для рассматриваемых Отчетов. Рекомендуется использовать наиболее подходящий вам способ определения требуемых Данных в Отчете.

Если: Используйте:

В отчете используются постоянные Источники Данных.

Таблицы или Представления Описываются в объекте: Data Environment.

-или-

Выполните команды выборки: DO <query> или SQL SELECT, которые размещаются в Коде события Init указанного Объекта DE рассматриваемого Отчета.

Дополнительно смотрите разделы: DO, команда, SELECT - SQL, команда, или Init, событие.

В Отчете требуются отдельные Наборы Данных (Таблицы).

Одна или несколько команд USE <table>, USE <view>, DO <query>, или оператор SQL SELECT в программном Коде события Click, или в другом подходящем месте вашей программы, перед выполнением команды REPORT / LABEL.

Дополнительно смотрите разделы: USE, команда или Click, событие.

NoteОбратите Внимание

Если вы не планируете использование Отчета с различными Источниками Данных, то требуемые Поля рекомендуется указавать совместно с соответствующими Алиасами (Таблиц данных). Если в качестве Источника Данных для Отчета используется Представление или Запрос, а результирующие Поля указаны вместе с Алиасом, но при выполнении Отчета указанный алиас может быть недоступен, или не открыт. В этом случае может возникнуть ошибочная ситуация типа: "Alias 'X' not found" (Алиас не найден) при попытке вычисления выражения, содержащего рассматриваемый алиас. Однако, в другом случае, если исходная Таблица Данных уже открыта, но в другой (не в текущей рабочей области), то есть Отчет выполняется на основе другой Таблицы, открытой в текущей Рабочей Области. В этом случае ошибочной ситуации не возникает, но в Отчете могут отображаться неверные данные, могут быть повторения и так далее.

Управление Сессиями Данных в Отчетах

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

Источники Данных для Отчета можно динамически определять в вашем Приложении до момента выполнения самого Отчета. Например, вы можете создать Форму, в которой отображается Таблица Клиентов. Когда пользователь нажимает кнопку Print (Печать), то выполняется Отчет, отображающий Информацию о выбранном Клиенте. В описанном сценарии используется построение Отчета, использующего общую Сессию Данных с указанной Формой.

Однако возможны варианты, или ситуации, когда вам требуется выполнить предварительную обработку Исходных Данных перед получением Отчета, независимо от Среды Данных пользовательской Формы. Например, в описанной выше Форме с данными о Клиенте можно предусмотреть кнопку (или опцию Меню)  Print a Sales Territory Summary (Печать Итогов Территориальных Продаж), с помощью которой получается Отчет о требуемых Результатах на основании Таблиц, которые не используются непосредственно в данной Форме. В соответствие с описанным сценарием, для получения указанного Отчета может быть использована приватная сессия данных, используемая только для рассматриваемого Отчета. После завершения Отчета среда данных Формы остается без изменения (а среда данных Отчета может быть закрыта).

Дополнительную информацию смотрите в разделе: Как: Определить Сессию Данных для Отчета.

Управление выборками Записей Данных

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

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

В представленной далее таблице приводятся варианты выборки требуемых в Отчете Записей данных.

Если используется выборка с помощью: То рекомендуется Использовать:

Представление или Запрос

Построения Условия выборки в закладке Filter в окне Дизайнера Представлений / Запросов.

Смотрите дополнительно: Закладка Filter, Дизайнеры Представлений или Запросов.

Оператор SQL SELECT

WHERE или HAVING секции в команде SQL.

Смотрите дополнительно: SELECT - SQL, команда.

Дизайнер Отчета

Определение параметров в диалоговом боксе Опции Печати.

Смотрите дополнительно: Report and Label Print Options, диалоговый бокс.

Команда REPORT FORM

Scope, FOR, или WHILE, выражения для условий фильтрации.

Смотрите дополнительно: REPORT FORM, команда или Манипуляции с Полями и Записями.

Таблица Данных (.Dbf)

Индекс с Фильтром.

Смотрите дополнительно: INDEX, команда.

Управление существующими Отношениями между Записями Данных

При выполнении Отчетов или Этикеток выполняется вычисление требуемых данных, размещенных в различных Записях Таблицы, открытой в текущей рабочей области, при этом выполняется перемещение указателя Записей по отфильтрованным записям. При использовании Отношений между Таблицами данных или Представлениями, открытыми в текущей рабочей области и Таблицами из других рабочих областей вы получаете возможность использовать в отчетах данные из других Источников Данных или специфических вычисляемых Выражений. Вы можете определить Отношения между таблицами с помощью программного Кода, команды SET RELATION и/или SET SKIP, или использовать построение стандартного объекта Relation для Среды Данных Отчета ( объекта DataEnvironment).

При использовании Полей или вычисляемых выражений, которые открыты не в текущей Рабочей Области, рекомендуется использовать эти Поля вместе с префиксом (алиасом требуемой рабочей области). Смотрите дополнительно: Как: Create and Use Table Aliases.

NoteОбратите Внимание

Таблица или Представление, открытые в текущей рабочей области, на основе которой выполняются команды REPORT FORM или LABEL FORM обычно называются (Управляющим Алиасом) driving alias. Таблица или Представление, которые связаны Отношением с главной Таблицей и открытые не в текущей Рабочей Области обычно называются (Алиас Назначения) target aliases, в силу того, что данный алиас используется как дочерняя таблица в команде SET RELATION. Когда вы устанавливаете Отношения между Таблицами, вы можете получить более сложные Отчеты из представленных Данных, для одной Записи в Управляющем Алиасе может соответствовать несколько Записей в Алиасе Назначения (в соответствие с типом Отношения: один-ко-многим). Например, для каждого Счета может соответствовать несколько детальных строк из связанной, дочерней Таблицы. Дополнительную информацию по построению Отношений между таблицами Данных в Отчетах смотрите в разделе: Обработка Связанных Таблиц с помощью Нескольких Детальных Полос в Отчетах .

Управление порядком обработки (размещения) Записей

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

Например, если источником данных является Таблица, то вы можете определить требуемую сортировку данных с помощью соответствующего Индекса (или построить новый индекс), для Представления - можно использовать опции сортировки из объекта DataEnvironment рассматриваемого Отчета, или, для Запроса, как источника данных, можно использовать соответствующие опции Группировки данных. Для построения Индексов вы можете использовать фрагменты программного Кода, например команду INDEX, который размещается в соответствующем месте указанного объекта DataEnvironment. Если источником данных является Запрос или Представление, или обычный оператор SQL SELECT, то для сортировки данных  вы можете использовать соответствующую секцию ORDER BY.

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

См. также