Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка№5 27.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.75 Mб
Скачать

5.5. Группировка данных

Группировка данных выполняется в том случае, если требуется организовать вложенность данных, например, напечатать список сотрудников по подразделениям. В этом случае сначала печатается список всех сотрудников одного подразделения затем второго, третьего и т. д. Для этого данные о сотрудниках надо сгруппировать по признаку принадлежности каждого сотрудника к тому или иному подразделению. Visual FoxPro будет просматривать все данные и сначала отбирать требуемые записи для первого подразделения, затем для второго и т. д. Нам необходимо заранее позаботиться об активизации соответствующего индекса (в нашем случае по коду подразделения) или подготовить данные в требуемой последовательности с помощью команды SELECT-SQL.

Выполнить группировку данных в отчете для их сортировки по какому-либо признаку позволяет команда Data Grouping меню Report. Допускается до 20 уровней группировки.

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

С каждой группой можно выполнить следующие операции:

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

  • Печать текста в верхних и нижних колонтитулах для отличия отдельных групп.

  • Переход на новую страницу перед началом печати каждой группы.

  • Установку номера страницы в начальное состояние при печати групп с новой страницы.

Для создания группы данных необходимо выполнить следующие действия:

  • В ыбрать команду Report Data Grouping. Появится диалоговое окно, приведенное на рис. 5.

Рис. 5. Определение условий группировки данных

  • Ввести групповое выражение, которое будет определять признак смены группы, в список Group expressions. С помощью расположенной справа кнопки можно вызвать Построитель выражений и сформировать групповое выражение.

  • Включить нужные опции в блоке Group properties .

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

Группировка данных может использоваться и с целью печати определенных данных на отдельных листах, например, при распечатке счетов или накладных, которые, как правило, распечатываются на основе данных, содержащихся в одной записи. В этом случае в качестве признака группировки данных необходимо использовать номер записи, а в окне Data Grouping установить флажок Start each group on a new page.

5.6. Использование переменных

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

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

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

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

С помощью переменных в отчете мы можем решать и довольно нетривиальные задачи. Например, для печати итоговых значений через каждые десять записей мы можем в диалоговом окне Report Variables создать переменную. Назовем ее nRec. Выберем в блоке Calculate тип выполняемых вычислений — Count (подсчет числа значений). В диалоговом окне Data Grouping укажем в качестве признака группировки: INT(nRec/10). В окне Конструктора отчетов появятся дополнительные полосы Group Header и Group Footer, в них мы можем разместить поля, для которых необходимо печатать итоговые значения.

Рис. 6. Задание переменной в отчете