В Visual FoxPro для создания перекрестной
таблицы можно использоватьмастер Cross-Tab Wizard (Мастер построения перекрестных
таблиц). В появляющемся после запуска мастера диалоговом окне необходимо указать
исходную таблицу, которая может быть таблицей из базы данных или являтьсярезультатом
выборки данных из нескольких таблиц. Мастер на основе исходной таблицы создает
итоговую выборку, в которой группирует и сортирует данные по полям, используемым
в качестве строки и столбца перекрестной таблицы, а также вычисляет суммарное
Чтобы продемонстрировать возможности мастера по созданию перекрестнойтаблицы, воспользуемся таблицей Salegoods.
Для создания перекрестной таблицы с помощью мастера выполните следующие действия:
Замечание
Для запуска мастера по созданию перекрестной таблицы можно также в менюTools (Сервис) выбрать команду Wizard (Мастер), а затем — значение Query(Запрос). При этом открывается диалоговое окно Wizard Selection (Выбор мастера).
Рис. 10.4. Выбор исходной таблицы и полей
Рис. 10.5. Определение строк, столбцов и поля данных
Перенесите поле город в область Column (Колонка), поле код_товара —в область Row (Ряд) и поле сумма — в область Data (Данные). Послеэтого диалоговое окно будет выглядеть так, как показано на рис. 10.6.Нажмите кнопку Next (Далее) для перехода к следующему шагу.
Рис. 10.6. Диалоговое окно после определения строк,столбцов и поля данных
Таблица 10.1. Назначение группы переключателей Summaryдиалогового окна Cross-Tab Wizard Step 3
Переключатель | Назначение |
Sum (Сумма) | Итоговые значения равны сумме значений для каждой парыстрока/столбец |
Count (Количество) | Итоговые значения равны количеству значений для каждойпары строка/столбец |
Average (Среднее) | Итоговые значения равны среднему значению для каждойпары строка/столбец |
Мах (Наибольшее) | Итоговые значения равны наибольшему из всех значений длякаждой пары строка/столбец |
Min (Наименьшее) | Итоговые значения равны наименьшему из всех значенийдля каждой пары строка/столбец |
Установите опцию Sum.
Рис. 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 (Далее).
Выберите третий вариант и нажмите кнопку 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.