Реляционные СУБД в Visual FoxPro 8

         

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

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

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

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

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

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

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

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



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

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

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

    Оставьте установленную по умолчанию опцию Sum.

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

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

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

    Итоговые значения равны сумме значений для текущей строки, выраженной в процентах по отношению к итоговой сумме
    None (Нет) Итоговый столбец не создается

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

  13. На последнем шаге работы мастера (рис. 10.8) вы можете просмотреть результаты, нажав кнопку Preview (Просмотр). Воспользуйтесь этой возможностью и убедитесь, что правильно установили все параметры.
  14. Рис. 10.8. Завершающая стадия создания перекрестной таблицы

  15. Установите в завершающем окне мастера одну из опций, описанных в табл. 10.3.

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

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

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

Запрос, созданный с помощью мастера, содержит конструкцию для выборки данных, вызов программы, формирующей перекрестную таблицу, и команду просмотра таблицы в режиме 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.,2,.t.

BROWSE NOMODIFY

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

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