Что такое перекрестная таблица
Что такое перекрестная таблица
ГЛАВА 10
Перекрестные таблицы и диаграммы
В Visual FoxPro имеются мощные средства анализа большого объема информации, хранящегося в базе данных в одной или нескольких таблицах —диаграммы и перекрестные таблицы.
Отображение данных в виде диаграмм и графиков позволяет решать самыеразные задачи. Основное достоинство такого представления — наглядность.На диаграммах хорошо просматриваются тенденции к изменению, различные соотношения, прирост, взаимосвязь различных процессов и т. д.
Но, как правило, таблицы не подготовлены для создания диаграмм. Данныев них представлены в виде нескольких составляющих, расположенных вбольшом количестве записей. Диаграмма, построенная для такой таблицы,будет иметь вид, который трудно использовать для анализа. Поэтому, прежде чем строить диаграмму, информацию необходимо преобразовать к виду,наиболее приемлемому для построения диаграмм. Для этого в Visual FoxProиспользуются перекрестные таблицы и итоговые запросы.
В Visual FoxPro для построения диаграмм используется Microsoft Graph.Помимо этого, для построения диаграмм из подготовленных в Visual FoxProданных вы можете использовать Microsoft Excel и другие электронные таблицы, имеющиеся в среде Windows.
Перекрестная таблица в Visual FoxPro имеет вид, похожий на электроннуютаблицу. Но, в отличие от последней, вам не нужно вручную заполнять каждую ячейку таблицы, предварительно определив ее значение. Visual FoxProавтоматически разбивает данные на группы в соответствии с одним или несколькими факторами и выполняет итоговые вычисления над данными,включенными в группу. После чего информация, полученная в результатегрупповых вычислений, сортируется и заносится в перекрестную таблицу.Например, используя перекрестную таблицу, вы можете определить, сколько клиентов фирмы проживает в том или ином районе города или как распределяются между ними проданные товары. Очевидно, что каждый клиентможет покупать один и тот же товар несколько раз. Получить такие сведения без создания перекрестной таблицы достаточно трудно.
При работе с Visual FoxPro вы можете использовать одномерные и многомерные перекрестные таблицы. Для создания простейших одномерных перекрестных таблиц применяйте обычный итоговый запрос. Для построениядвумерных и более сложных перекрестных таблиц в Visual FoxPro используется мастер создания перекрестных таблиц Cross-Tab Wizard (Мастер построения перекрестных таблиц).
Прежде чем приступить непосредственно к созданию перекрестной таблицы, вы должны определить, какой тип перекрестных таблиц в наибольшейстепени подходит к выполнению текущей задачи.
Перекрестное соединение
Перекрестное соединение — это тип объединения, который возвращает декартово произведение строк из таблиц в соединении. Иными словами, он объединяет каждую строку из первой таблицы с каждой строкой из второй таблицы.
В этой статье показано, как выполнить перекрестное соединение в Power Query с помощью практического примера.
Примеры входных и выходных таблиц
В этом примере исходными таблицами образца являются:
Product: таблица со всеми общими продуктами, которые продаются.
Цвета: таблица со всеми вариациями продуктов, как цвета, которые можно использовать в инвентаризации.
Целью является выполнение операции перекрестного объединения с этими двумя таблицами для создания списка всех уникальных продуктов, которые можно использовать в инвентаризации, как показано в следующей таблице. Эта операция необходима, поскольку таблица Product содержит только универсальное название продукта и не предоставляет уровень детализации, необходимый для просмотра вариантов продукта (например, цвет).
Выполнить перекрестное соединение
Имена запросов можно проверить в области Параметры запроса в правой части экрана или на панели запросы в левой части окна.
После нажатия кнопки ОК вы сможете создать таблицу со всеми возможными сочетаниями продуктов и цветов.
Создание перекрестных таблиц и диаграмм.
Диаграммы являются одним из наиболее мощных и наглядных средств, предназначенных для отображения данных из таблиц в виде графиков. Представление информации в виде диаграмм наиболее удобно для анализа сравнительных характеристик, тенденций изменения данных и т.д.
Перекрестная таблица – это таблица, в которой информация группируется в соответствии со значениями одного или нескольких полей и фактически приводится к виду, аналогичному электронной таблице.
Создание перекрестных таблиц.
Перекрестная таблица имеет преимущество перед электронной таблицей. Visual FoxPro автоматически разбивает данные на группы в соответствии с одним или несколькими факторами и выполняет групповые вычисления над данными, включенными в одну группу. После чего информация, полученная в результате групповых вычислений, сортируется и заносится в перекрестную таблицу.
Для создания простейших одномерных перекрестных таблиц можно использовать обычный итоговый запрос. Для построения двумерных и более сложных перекрестных таблиц в Visual FoxPro используется мастер создания перекрестных таблиц (Cross-Tab Wizard). С помощью этих средств можно не только просматривать и печатать построенную таблицу, но и сохранять ее в виде электронной таблицы.
При работе с Visual FoxPro можно использовать одномерные и многомерные перекрестные таблицы. Прежде чем приступить непосредственно к созданию перекрестной таблицы, необходимо определить, какой из типов перекрестных таблиц в наибольшей степени подходит к выполнению текущей задачи.
Двумерные перекрестные таблицы.
Двумерная перекрестная таблица группирует информацию по двум факторам. Например, имеется таблица с данными о продажи автомобилей по месяцам:
Таблица 1. Фрагмент таблицы с данными о продажи автомобилей
Понятно, что при большом ассортименте автомобилей и достаточно длительном периоде анализа такая табличная форма неудобна для рассмотрения, хотя в ней содержится вся необходимая информация. В данном случае наиболее оптимальной является двумерная перекрестная таблица, в которой данные должны быть сгруппированы по месяцам и маркам автомобилей.
Таблица 2. Фрагмент перекрестной таблицы по данным о продаже автомобилей.
Как видно из примера, перекрестная таблица представляет собой более мощное и удобное средство, позволяющее максимально упростить задачу анализа данных из таблиц. Перекрестную таблицу можно расширить, добавив итоговую информацию по строкам и столбцам. В этом случае данные приобретут большую наглядность, занимая при этом гораздо меньше места на носителе, чем исходная таблица (Если исходная таблица содержит данные о продаже 10 марок автомобилей за три года, то она будет содержать 3*12*10=360 строк, что вряд ли поместится даже на четырех страницах. Перекрестная таблица при этом будет состоять из 10 столбцов и 36 строк, что уже вполне приемлемо для восприятия).
Использование мастера для создания двумерной перекрестной таблицы.
Рассмотрим создание перекрестной таблицы в интерактивном режиме с помощью мастера Cross-Tab Wizard. Мастеру необходимо указать исходную таблицу, которая может быть таблицей из базы данных или являться результатом выборки данных из нескольких таблиц. Предварительно мастер на основе исходной таблицы создает итоговую выборку, в которой группирует и сортирует данные по полям, используемым в качестве строки и столбца перекрестной таблицы, а также вычисляет суммарное значение по заданному полю данных. Затем вызывается программа, наименование которой хранится в системной переменной _GENXTAB. В Visual FoxPro такой программой является VFPXTAB.PRG. (В качестве построителя перекрестных таблиц можно указывать программу пользователя. Для этого необходимо соответствующим образом изменить значение переменной _GENXTAB.).
Учитывая, что в качестве источника данных мастеру построения перекрестных таблиц можно указать только одну таблицу или представление данных, а также то, что необходимая для анализа информация хранится зачастую во многих таблицах, перед построением перекрестной таблицы следует создать либо таблицу-источник посредством запроса, либо – представление данных, содержащее необходимые данные.
Для демонстрации возможностей мастера построения перекрестных таблиц необходимо создать вначале источник данных, в качестве которого используем представление данных, содержащее выборку из таблиц OrdSaled, OrdSalem и Goods. Для этого необходимо:
1. Создать представление данных.
2. Добавить в него таблицы OrdSaled, OrdSalem и Goods.
3. В качестве результирующих полей выбрать номер заказа и название товара. Также необходимо создать вычисляемое поле Summa, в котором должна храниться сумма, на какую заказан каждый товар (рис. 1).
4. Сохранить представление данных в базе данных под именем test_view.
Если все создано нормально, то в базе данных появится представление данных, содержащее в себе информацию о проданных товарах по каждому заказу и о сумме, на которую был заказан каждый товар (рис. 2). Обратите внимание, что после просмотра представления данных оно остается открытым в сессии данных, хотя окно просмотра и закрыто. Также остаются открытыми и все используемые в представлении таблицы. Все внесенные изменения в эти таблицы не будут отражены в представлении, до тех пор, пока представление не будет закрыто и повторно открыто. Для закрытия представления можно воспользоваться окном
«Data Session» (рис. 3), которое вызывается кнопкой на панели инструментов, или использовать команду CLOSE TABLES в командном окне.
Рис. 1 Окно конструктора представлений данных при создании представления Test _ view
Рис. 2 Окно просмотра результатов представления данных Test _ View
Рис. 3 Окно Data Session c открытым представлением Test _ view
Для создания перекрестной таблицы необходимо выполнить следующие действия:
1. Выбрать команду Tools | Wizards | Query. Далее из окна диалога «Wizard Selection» запустить мастер создания перекрестных таблиц Cross-Tab Wizard.
2. Сначала требуется выбрать исходное представление данных Test_view и три поля, которые будут использоваться в качестве строки, столбца и поля данных перекрестной таблицы (рис. 4). Для перехода к следующему этапу необходимо нажать кнопку Next.
Рис.4 Окно выбора исходной таблицы и полей
3. В следующем окне диалога (рис. 5) необходимо указать:
IcdOrder – в качестве поля, значения которого будут отображаться в наименованиях столбцов
CnmGoods – в качестве поля, значения которого будут отображаться в наименованиях строк
Summa – в качестве поля, по которому будут группироваться значения
Рис. 5 Определение строк, столбцов и поля данных
Для этого нужно перенести поле icdOrder в область «Column», поле cnmGoods – в «Row» и поле Summa – в «Data». Перенос следует осуществлять перемещением мышью при нажатой левой кнопке. Для этого щелкните левой кнопкой мыши на названии поля и не отпускайте кнопку. Затем поместите указатель в необходимое поле и только после этого отпустите кнопку мыши. После этого окно диалога будет выглядеть как на рис. 6. Для перехода к следующему шагу необходимо нажать кнопку Next.
Рис. 6 Окно диалога после определения строк, столбцов и поля данных
4. Visual FoxPro при вычислении групповых значений по полю данных позволяет использовать следующие типы группировок, которые можно выбрать в окне диалога «Cross-Tab Wizard» (рис. 7).
Тип группировки
Назначение
Итоговые значения равны сумме значений для каждой пары строка/столбец
Итоговые значения равны количеству значений для каждой пары строка/столбец
Итоговые значения равны количеству записей для каждой пары строка/столбец
Итоговые значения равны наименьшему из всех значений для каждой пары строка/столбец
Итоговые значения равны наибольшему из всех значений для каждой пары строка/столбец
Установите опцию Sum.
В этом же окне диалога можно добавить столбец, который будет содержать итоговое значение по каждой строке результирующей таблицы (рис. 7). Мастер позволяет выбрать следующие типы группировок:
Тип группировки
Назначение
Итоговые значения равны сумме значений для текущей строки
Number of cells containing data
Итоговые значения равны количеству ячеек, содержащих значения
Percentage of table total
Итоговые значения равны сумме значений для текущей строки, выраженной в процентах по отношению к итоговой сумме
Итоговый столбец не создается
На данном этапе установите опцию Percentage of table total. Для перехода к следующему этапу необходимо нажать клавишу Next.
5. На завершающей стадии (рис.8) можно предварительно просмотреть результаты работы, воспользовавшись кнопкой Preview. Если результаты работы удовлетворительны, необходимо выбрать один из вариантов завершения создания перекрестной
Значение
Назначение
Сохраняет созданный запрос
Save and run cross-tab query
Сохраняет созданный запрос и запускает его на выполнение
Save cross-tab query and modify in the Query Designer
Сохраняет созданный запрос и открывает его в окне конструктора запросов
Запрос, созданный при помощи мастера, содержит конструкцию для выборки данных, используемых при построении перекрестной таблицы, вызов программы, формирующей ее, и команду просмотра в режиме таблицы BROWSE:
SELECT Test_view.cnmgoods, Test_view.icdorder, SUM(Test_view.summa);
GROUP BY Test_view.cnmgoods, Test_view.icdorder;
ORDER BY Test_view.cnmgoods, Test_view.icdorder;
INTO CURSOR SYS(2015)
DO (_GENXTAB) WITH ‘Query’,.t. t. t. t.,2,.f.
Рис. 7 Определение типа группировки и итогового столбца
Рис. 8 Завершающая стадия создания перекрестной таблицы
Обратите внимание, что мастер построения перекрестных таблиц сохраняет результат своей работы в виде запроса. При этом сам запрос в проект не добавляется. Для включения его в проект необходимо воспользоваться кнопкой Add в окне конструктора проекта. После этого можно просмотреть текст самого запроса и изменить некоторые параметры, которые не устраивают разработчика. Используя полученный текст SQL такого запроса можно легко формировать перекрестные таблицы программно, не прибегая к помощи мастера построения перекрестных таблиц.
В качестве средства визуального анализа можно использовать графическую интерпретацию табличной информации в виде диаграмм. Такой подход позволяет обнаружить скрытые закономерности в данных и сделать выводы, которые неочевидны при просмотре таблиц с данными.
Для представления одной и той же информации можно использовать диаграммы различных типов. При этом очень большое значение имеет правильный выбор типа диаграммы. Как и всякое статистическое средство, оно может привести к ложным выводам в случае неправильного выбора типа диаграммы.
В Visual FoxPro для построения диаграмм используется отдельная программа Microsoft Graph, в которую передаются данные с помощью механизма обмена данными между приложениями Windows. Для передачи данных можно использовать мастер по построению диаграмм, который выбирается при создании нового запроса, или вызвать приложение WZGRAPH.APP.
Использование мастера предоставляет возможность создания диаграммы в интерактивном режиме. При создании законченного приложения может потребоваться механизм создания диаграммы, не требующий от пользователя активных действий. В этом случае необходимо использовать функции Visual FoxPro, которые позволяют передавать данные и команды для построения диаграммы другим приложениям Windows (Microsoft Graph, Microsoft Excel и другим) с помощью механизма OLE.
Для построения диаграммы предварительно необходимо привести данные к виду электронной таблицы, а затем передать их в Microsoft Graph. Одним из вариантов источника данных для диаграммы может служить перекрестная таблица.
Мастеру создания диаграмм необходимо указать исходную таблицу, которая может быть таблицей из базы данных или являться результатом выборки данных из нескольких таблиц. Вначале мастер на основе исходной таблицы и выбранных полей создает выборку, в которую выбирает из исходной таблицы указанные поля. Затем вызывается приложение, наименование которого хранится в системной переменной _GENGRAPH. В Visual FoxPro таким приложением по умолчанию является WZGRAPH.APP. Данное приложение передает в Microsoft Graph выбранные данные и создает диаграмму указанного типа.
Для создания диаграммы необходимо выполнить следующие действия:
1. Выполнить команду Tools | Wizards | Query. Далее из окна диалога «Wizard Selection» запустить мастер создания диаграмм Graph Wizard.
2. Вначале необходимо выбрать исходную таблицу и поля, которые будут использоваться при создании диаграммы (рис. 9). В некоторых случаях можно ограничить количество выбираемых полей, так как при большом количестве полей диаграмма получается трудно анализируемой и недостаточно наглядной. Для перехода к следующему шагу необходимо нажать кнопку Next.
3. В окне диалога (рис. 10) необходимо указать поля, используемые в качестве рядов данных и категорий. Категории указываются в поле Axis, а ряды данных – в поле Data series. Указание производится перетаскиванием мышью соответствующих полей. После завершения указания данных необходимо нажать кнопку Next для перехода к следующему этапу.
4. При создании диаграммы можно указать тип создаваемой диаграммы. Это производится на третьем шаге мастера построения диаграмм, нажатием на кнопку с соответствующим изображением. В зависимости от указанных данных некоторые типы диаграмм могут быть недоступны. В этом случае соответствующие им кнопки выделятся серым цветом и блокируются на нажатие. Для перехода к следующей стадии необходимо нажать кнопку Next.
5. На завершающей стадии можно задать заголовок диаграммы, установить флажок добавления в диаграмму легенды и предварительно просмотреть результат работы, используя кнопку Preview
(рис. 11). Если результат работы удовлетворителен, то возможны два варианта завершения работы:
Save graph to a table
Сохраняет созданную диаграмму в таблице, содержащей поле типа General
Save and create query with graph
Сохраняет созданный запрос и открывает его в окне конструктора запросов
В случае сохранения диаграммы в виде запроса можно отредактировать требуемые параметры и в любой момент запустить запрос на исполнение. При этом перед построением диаграммы пользователю придется повторить в интерактивном режиме все шаги построения диаграммы при помощи мастера, кроме первого.
Обратите внимание, что не во всех версиях Visual FoxPro корректно поддерживается сохранение диаграммы в таблице (при неправильной регистрации OLE-сервера), а также не всегда правильно распознается кодировка символов в легенде диаграммы для русского языка. Все необходимые настройки можно произвести непосредственно в программе Microsoft Graph.
Другой возможностью отображения данных в виде диаграмм является использование электронных таблиц. Они содержат множество разнообразных типов диаграмм, позволяют настраивать формат отображения данных, заголовок диаграммы, надписи осей, параметры сетки, шрифт, формат выводимых значений и т.п.
Рис. 9 Выбор исходной таблицы и полей
Рис. 10 Окно определения категорий и рядов данных
Рис. 11 Окно завершающей стадии создания диаграммы
1. Создайте перекрестную таблицу, содержащую данные по заказчикам и общим сумма заказанных товаров во всех заказах. Имена заказчиков должны отображаться в верхней строке таблицы, а названия товаров – в левом столбце. Общая сумма по заказанным товарам должна располагаться в области данных. Таблица должна содержать итоговый столбец.
2. Поменяйте местами заказчиков и товары в предыдущем задании. Отметьте разницу в результатах анализа, который можно провести на основании итогового столбца.
3. Создайте две перекрестных таблиц по заказам в разрезе количества заказанных товаров и сумм заказанных товаров. На основании них проведите анализ и отметьте результат о спросе на различные товары.
4. Создайте перекрестную таблицу по фирмам заказчиков в разрезе общих сумм заказанных товаров. Выявите и отметьте, какая фирма, какие товары предпочитает и какими партиями производит заказы (поштучно, мелкий опт, крупный опт).
Примечание: результирующие перекрестные таблицы должны быть предоставлены вместе с отчетом в твердой копии. Если таблица получается большой, допускается ее сокращение, но не более чем до 8 столбцов и 6 строк.
5. По всем построенным перекрестным таблицам постройте диаграммы произвольного типа (тип необходимо выбрать самим, руководствуясь стремлением к наибольшей наглядности и удобства для анализа).
6. Отметьте закономерности и иные выводы, которые можно сделать при рассмотрении диаграмм и которые достаточно трудно заметить при анализе табличной формы представления результата.
Перекрестная таблица
Перекрестная таблица — таблица с двумя входами, состоящая из столбцов и строк. Ее называют также сводной или многомерной таблицей.
Самым полезным ее качеством является возможность структурировать, суммировать и отображать большие объемы данных. С помощью перекрестных таблиц также можно определять наличие связи между переменной строки и столбца. Также в перекрестной таблице можно отображать промежуточные итоги для столбцов и общий итог для столбцов, строк или целой меры.
Совет. Чтобы выполнить сортировку, достаточно щелкнуть непосредственно заголовок столбца или строки в визуализации перекрестной таблицы.
При сортировке перекрестной таблицы работа всегда выполняется с последним узлом иерархии. Например, если перекрестная таблица содержит данные продаж для разных фруктов и овощей, как в примере ниже, и если щелкнуть конечный узел «Яблоки», только значения ячеек в иерархии «Фрукт >> Яблоки» будут участвовать в сортировке. Нельзя сортировать всю категорию «Фрукты», если отображаются вложенные категории.
Пример.
Далее приведена перекрестная таблица, в которой представлены показатели продаж разных сортов фруктов и овощей.
Те же данные, приведенные в обычной таблице, занимают намного больше места, при этом анализировать их также намного сложнее.
При настройке анализа с помощью TIBCO Spotfire Professional можно также настроить перекрестную таблицу для показа изображений в метках осей:
Что такое перекрестная таблица
В Visual FoxPro имеются мощные средства анализа большого объема информации, хранящегося в базе данных в одной или нескольких таблицах —диаграммы и перекрестные таблицы.
Отображение данных в виде диаграмм и графиков позволяет решать самыеразные задачи. Основное достоинство такого представления — наглядность.На диаграммах хорошо просматриваются тенденции к изменению, различные соотношения, прирост, взаимосвязь различных процессов и т. д.
Но, как правило, таблицы не подготовлены для создания диаграмм. Данныев них представлены в виде нескольких составляющих, расположенных вбольшом количестве записей. Диаграмма, построенная для такой таблицы,будет иметь вид, который трудно использовать для анализа. Поэтому, прежде чем строить диаграмму, информацию необходимо преобразовать к виду,наиболее приемлемому для построения диаграмм. Для этого в Visual FoxProиспользуются перекрестные таблицы и итоговые запросы.
В Visual FoxPro для построения диаграмм используется Microsoft Graph.Помимо этого, для построения диаграмм из подготовленных в Visual FoxProданных вы можете использовать Microsoft Excel и другие электронные таблицы, имеющиеся в среде Windows.
Перекрестная таблица в Visual FoxPro имеет вид, похожий на электроннуютаблицу. Но, в отличие от последней, вам не нужно вручную заполнять каждую ячейку таблицы, предварительно определив ее значение. Visual FoxProавтоматически разбивает данные на группы в соответствии с одним или несколькими факторами и выполняет итоговые вычисления над данными,включенными в группу. После чего информация, полученная в результатегрупповых вычислений, сортируется и заносится в перекрестную таблицу.Например, используя перекрестную таблицу, вы можете определить, сколько клиентов фирмы проживает в том или ином районе города или как распределяются между ними проданные товары. Очевидно, что каждый клиентможет покупать один и тот же товар несколько раз. Получить такие сведения без создания перекрестной таблицы достаточно трудно.
При работе с Visual FoxPro вы можете использовать одномерные и многомерные перекрестные таблицы. Для создания простейших одномерных перекрестных таблиц применяйте обычный итоговый запрос. Для построениядвумерных и более сложных перекрестных таблиц в Visual FoxPro используется мастер создания перекрестных таблиц Cross-Tab Wizard (Мастер построения перекрестных таблиц).
Прежде чем приступить непосредственно к созданию перекрестной таблицы, вы должны определить, какой тип перекрестных таблиц в наибольшейстепени подходит к выполнению текущей задачи.
Простейшим типом перекрестной таблицы является одномерная перекрестная таблица, используемая для анализа распределения данных одного типа по одному фактору.
Рис. 10.1. Одномерная перекрестная таблица
Рассмотрим создание перекрестной таблицы, отображающей распределениеклиентов по городам (рис. 10.1). Исходная информация содержится в таблице Customer.
Информация в двумерных перекрестных таблицах группируется по двумфакторам. Примером такой таблицы является Saiegoods, представленная нарис. 10.2. Она содержит сведения о стоимости проданных товаров по городам. Данная таблица была получена из таблиц customer, ordsaiem иordsaied с помощью многотабличного запроса. Для наглядности результирующим полям запроса присвоены русскоязычные названия.
SELECT Customer.cCity AS Город, Ordsaied.icdGoods AS Код_товара,;
FROM Sales!Customer INNER JOIN Sales!Ordsaiem;
INNER JOIN Sales!Ordsaied ;
ON Ordsaiem.icdOrder = Ordsaied.icdOrder ;
ON Customer.icdCustomer = Ordsaiem.icdCustomer;
GROUP BY Customer.cCity, Ordsaied.icdGoods;
INTO TABLE saleGoods.dbf
В таблице, представленной на рис. 10.2, отображается вся необходимая информация о продажах товаров, однако более удобным для анализа являетсяпредставление этой информации в виде перекрестной таблицы. На рис. 10.3представлена двумерная перекрестная таблица, созданная на основе таблицы Saiegoods.
Рис. 10.2. Таблица Salegoods
Рис. 10.3. Двумерная перекрестная таблица
Числа в ячейках таблицы соответствуют стоимости проданного товара длякаждой пары уникальных значений «код товара/город». Значения поля, содержащего наименование города, расположены в верхней строке таблицы, азначения поля, обозначающего код проданного товара, — в левом столбцетаблицы. Сохраните таблицу с именем salereg. Ее можно будет использовать при создании трехмерных диаграмм.
В Visual FoxPro для создания перекрестной таблицы можно использоватьмастер Cross-Tab Wizard (Мастер построения перекрестных таблиц). В появляющемся после запуска мастера диалоговом окне необходимо указать исходную таблицу, которая может быть таблицей из базы данных или являтьсярезультатом выборки данных из нескольких таблиц. Мастер на основе исходной таблицы создает итоговую выборку, в которой группирует и сортирует данные по полям, используемым в качестве строки и столбца перекрестной таблицы, а также вычисляет суммарное значение по заданному полюданных. Затем Visual FoxPro вызывает программу vfpxtab.prg, наименование которой хранится в системной переменной _GENXTAB.
Чтобы продемонстрировать возможности мастера по созданию перекрестнойтаблицы, воспользуемся таблицей 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 (Просмотр):
FROM ‘SaleGoods.DBF’ SaleGoods;
GROUP BY SaleGoods.Код_товара, SaleGoods.Город;
ORDER BY SaleGoods.Код_товара, SaleGoods.Город;
INTO CURSOR SYS(2015)
Результат запроса аналогичен приведенному на рис. 10.3.
Мастер перекрестных таблиц использует в своей работе программуVFPXTAB.PRG. Эту программу вы можете вызывать из ваших программ,предварительно подготовив и открыв в текущей области требуемую таблицу.
Для работы программы, создающей перекрестную таблицу, необходимо определить используемые в ней параметры (табл. 10.4).
Таблица 10.4. Параметры программы, создающей перекрестные таблицы
Порядковыйномерпараметра | Назначение | Значениепо умолчанию |
1 | Имя выходного файла или курсора | xtab.dbf |
2 | Признак создания только курсора | True |
3 | Признак закрытия исходной таблицы при выходе изпрограммы | True |
4 | Признак отображения индикатора работы программы | True |
5 | Номер поля, являющегося строкой перекрестнойтаблицы | 1 |
6 | Номер поля, являющегося столбцом перекрестнойтаблицы | 2 |
7 | Номер поля, являющегося полем данных перекрестной таблицы | 3 |
8 | Признак формирования итогового поля | False |
9 | Тип вычисления итогового поля (0 — сумма, 1 — количество, 2 — доля от итогового значения в процентах) |
Воспользуемся программой VFPXTAB.PRG для представления итоговогообъема продаж товара по месяцам в виде перекрестной таблицы.
После размещения в программе всех необходимых команд она будетиметь вид, представленный на рис. 10.9.
Рис. 10.9. Завершающая стадия создания перекрестной таблицы
Рис. 10.10. Итоговые ежемесячные объемы продаж товаров
При создании выборки вы можете для определения имени месяца вместо егономера использовать подготовленную заранее функцию. Однако в этом случаепри упорядочении выборки по месяцам в перекрестной таблице названия месяцев будут расположены в алфавитном, а не в хронологическом порядке.
Созданную в Visual FoxPro перекрестную таблицу вы можете использовать впрограммах управления электронными таблицами, таких как Microsoft Excel,Lotus 1-2-3 и т. д. Для этого вы должны ее экспортировать в формат той электронной таблицы, в которой будет осуществляться дальнейшая обработка.
Для экспорта данных предназначена команда Export (Экспорт) из меню virtual(Файл). В результате выполнения этой команды открывается диалоговое окно Export (Экспорт) (рис. 10.11), в котором вы должны указать исходнуютаблицу, задать формат данных, имя выходного файла, а затем нажать кнопку ОК.
Рис. 10.11. Диалоговое окно Export
Для визуального анализа данных, хранящихся в таблицах Visual FoxPro, выможете использовать диаграммы.
В распоряжение разработчика Visual FoxPro предоставляет двенадцать типовдиаграмм. Вам необходимо правильно определиться с ее типом, т. к. одну иту же информацию можно представить с помощью диаграмм разных типов.
Для построения диаграмм в Visual FoxPro используется программа MicrosoftGraph, данные в которую передаются с помощью мастера построения диаграмм или с использованием приложения WZGRAPH.APP.
Для построения диаграммы воспользуемся одномерной перекрестной таблицей CNTCUST, отображающей распределение клиентов по городам. О нейупоминалось в начале данной главы.
На первом шаге создания диаграммы с помощью мастера указывается таблица, для которой строится диаграмма. Это может быть таблица из базыданных или выборка из нескольких таблиц. После выбора полей, используемых при создании диаграммы, вызывается приложение WZGRAPH.APP.Это приложение передает выбранные данные в Microsoft Graph и на их основе создается диаграмма указанного вами типа.
Рассмотрим создание диаграммы с помощью мастера более подробно.
Если исходная таблица содержит много полей, вы можете ограничить количество выбираемых полей, т. к. при большом количестве полей диаграмма получается недостаточно наглядной и ее трудно анализировать.
Рис. 10.12. Выбор исходной таблицы и полей
Завершив выбор полей, нажмите кнопку Next (Далее).5. В следующем диалоговом окне мастера (рис. 10.13) выполните действия:
Для этого перенесите поле город исходной таблицы в область Axis (Ось),а поле количество — в область Data Series (Ряд данных) диалогового окна. Затем нажмите кнопку Next (Далее).
Рис. 10.13. Определение категории и рядов данных
Рис. 10.14. Определение типа диаграммы
Таблица 10.5. Назначение переключателей диалогового окна Graph Wizard Step 4
Переключатель | Назначение |
Save graph to a form (Сохранитьдиаграмму в форме) | Сохраняет созданную диаграмму в форме |
Save graph to a table (Сохранитьдиаграмму в таблице) | Сохраняет созданную диаграмму в таблице,содержащей поле типа General |
Create a query that produces thegraph (Сохранить и создать длядиаграммы запрос) | Сохраняет созданный запрос и открывает егов окне конструктора запросов |
Выберите третий вариант и нажмите Finish (Готово). Мастер сохранит запрос с заданным именем и откроет окно конструктора с созданным запросом. Тело запроса содержит конструкцию SELECT и команду вызоваприложения создания диаграммы.
Рис. 10.15. Завершающая стадия создания диаграммы
Диаграмма сохранена в форме. Вы можете открыть форму, изменить типдиаграммы или отформатировать ее элементы. Для подробного ознакомления с этими возможностями обратитесь к справочной системе MicrosoftGraph или руководству пользователя.
Чтобы перейти в режим редактирования диаграммы, выделите диаграмму ивыберите из контекстного меню команду Chart Object (Объект «диаграмма»),а затем команду Edit (Правка). Теперь вы можете приступить к изменениюее параметров.
Рис. 10.16. Диаграмма распределения клиентов по городам
Рис. 10.17. Круговая диаграмма распределения клиентов по городам
В режиме редактирования можно настраивать самые разнообразные параметры диаграммы: формат отображения данных, заголовок диаграммы, надписиосей, параметры сетки, шрифт, формат выводимых значений и т. п.
Созданная нами диаграмма является одномерной. Для исходной таблицы выможете также построить круговую диаграмму, которая позволяет увидетьотносительный вклад каждой из величин в итоговое значение (рис. 10.17).Каждому элементу данных на диаграмме соответствует сектор круга, а суммарному значению — весь круг.
Таблица CNTCUST содержит всего одно числовое поле, поэтому диаграмма,показанная на рис. 10.17, представляет собой простейшую диаграмму. Дляпостроения более сложной диаграммы обратимся к перекрестной таблице SALEREG.
Рис. 10.18. Трехмерная диаграмма,построенная для таблицы SALEREG
Для создания диаграммы выполните следующие действия:
Созданная диаграмма будет иметь вид, представленный на рис. 10.18.