Базы данных Visual Foxpro

         

Создание перекрестной таблицыс помощью мастера

В Visual FoxPro для создания перекрестной таблицы можно использоватьмастер Cross-Tab Wizard (Мастер построения перекрестных таблиц). В появляющемся после запуска мастера диалоговом окне необходимо указать исходную таблицу, которая может быть таблицей из базы данных или являтьсярезультатом выборки данных из нескольких таблиц. Мастер на основе исходной таблицы создает итоговую выборку, в которой группирует и сортирует данные по полям, используемым в качестве строки и столбца перекрестной таблицы, а также вычисляет суммарное


значение по заданному полюданных. Затем Visual FoxPro вызывает программу vfpxtab.prg, наименование которой хранится в системной переменной _GENXTAB.

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

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

  1. В меню File (Файл) выберите команду New (Новый).
  2. В диалоговом окне New (Новый) выберите тип создаваемого объектаQuery (Запрос) и нажмите кнопку Wizard (Мастер).
  3. Из диалогового окна Wizard Selection (Выбор мастера) запустите мастерсоздания перекрестной таблицы, выбрав Cross-Tab Wizard (Мастер построения перекрестных таблиц).

Замечание

Для запуска мастера по созданию перекрестной таблицы можно также в менюTools (Сервис) выбрать команду Wizard (Мастер), а затем — значение Query(Запрос). При этом открывается диалоговое окно Wizard Selection (Выбор мастера).

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

Рис. 10.4. Выбор исходной таблицы и полей

  1. На втором шаге в работе мастера (рис. 10.5) необходимо указать расположение полей в создаваемой перекрестной таблице. Вам предлагаетсяразместить поля таблицы в трех полях диалогового окна. Для перемещения полей используйте метод "перенести-и-оставить".

Рис. 10.5. Определение строк, столбцов и поля данных

Перенесите поле город в область Column (Колонка), поле код_товара —в область Row (Ряд) и поле сумма — в область Data (Данные). Послеэтого диалоговое окно будет выглядеть так, как показано на рис. 10.6.Нажмите кнопку Next (Далее) для перехода к следующему шагу.

Рис. 10.6. Диалоговое окно после определения строк,столбцов и поля данных

  1. В следующем диалоговом окне Cross-Tab Wizard (Мастер построения перекрестных таблиц) (рис. 10.7) содержится группа переключателей Summary(Итог), позволяющая вычислять групповые значения по полю (табл. 10.1).

Таблица 10.1. Назначение группы переключателей Summaryдиалогового окна Cross-Tab Wizard Step 3

Переключатель Назначение
Sum (Сумма) Итоговые значения равны сумме значений для каждой парыстрока/столбец
Count (Количество) Итоговые значения равны количеству значений для каждойпары строка/столбец
Average (Среднее) Итоговые значения равны среднему значению для каждойпары строка/столбец
Мах (Наибольшее) Итоговые значения равны наибольшему из всех значений длякаждой пары строка/столбец
Min (Наименьшее) Итоговые значения равны наименьшему из всех значенийдля каждой пары строка/столбец

Установите опцию Sum.

  1. На третьем шаге в работе мастера вы можете добавить столбец в создаваемую перекрестную таблицу, который будет содержать итоговое значение по каждой строке результирующей таблицы (см. рис. 10.7). Мастерпозволяет выбрать один из переключателей группы Subtotals (табл. 10.2).

Рис. 10.7. Определение типа группировки и итогового столбца

Таблица 10.2. Назначение группы переключателей Subtotalsдиалогового окна Cross-Tab Wizard Step 3

Переключатель Назначение
Sum of data (Сумма данных) Итоговые значения равны сумме значений длятекущей строки
Number of cells containingdata (Число ячеек, содержащих данные) Итоговые значения равны количеству ячеек, содержащих значения
Percentage of the table total (Процент от итоговой суммы) Итоговые значения равны сумме значений длятекущей строки, выраженной в процентах по отношению к итоговой сумме
None (Нет) Итоговый столбец не создается

Установите опцию Percentage of the table total (Процент от итоговой суммы). Для перехода к завершающей стадии создания перекрестной таблицы нажмите кнопку Next (Далее).

  1. На последнем шаге работы мастера (рис. 10.8) вы можете просмотретьрезультаты, нажав кнопку Preview (Просмотр). Воспользуйтесь этой возможностью и убедитесь, что правильно установили все параметры.
  2. Установите в завершающем окне мастера одну из опций, описанных втабл. 10.3.

Выберите третий вариант и нажмите кнопку Finish (Готово). Мастер завершит работу и откроет созданный запрос в окне конструктора. Просмотрите SQL-оператор. Для этого в меню Query (Запрос) выберите команду ViewSQL (Показать SQL).

Рис. 10.8. Завершающая стадия создания перекрестной таблицы

Таблица 10.3. Назначение переключателей диалогового окна Cross-Tab Wizard Step 4

Переключатель Назначение
Save cross-tab query (Сохранить перекрестную таблицу в запросе) Мастер сохраняет созданный запрос
Save and run cross-tab query (Сохранитьперекрестную таблицу в запросе и запустить) Мастер сохраняет созданный запроси запускает его на выполнение
Save cross-tab query and modify in theQuery Designer (Сохранить перекрестнуютаблицу и открыть для модификации в конструкторе запросов) Мастер сохраняет созданный запроси открывает его в окне конструкторазапросов

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

SELECT SaleGoods.Код_товара, SaleGoods .Город, SUM(SaleGoods.Сумма);

FROM 'SaleGoods.DBF' SaleGoods;

GROUP BY SaleGoods.Код_товара, SaleGoods.Город;

ORDER BY SaleGoods.Код_товара, SaleGoods.Город;

INTO CURSOR SYS(2015)

DO (_GENXTAB) WITH 'Query',.t.,.t.,.t.,;, ,.t.,0,.t.

BROWSE NOMODIFY

Результат запроса аналогичен приведенному на рис. 10.3.

 

Содержание раздела