Автоматическое размещение полей в сводной таблице данных
Иллюстрации
Показать всеИзобретение относится к способам формирования сводных таблиц в интерфейсе прикладных программ. Технический результат заключается в упрощении интерфейса при создании сводной таблицы. Графический интерфейс пользователя, предназначенный для формирования сводной таблицы данных, включает в себя область, включающую в себя множество полей, и сводную таблицу данных. После выбора поля для включения его в сводную таблицу данных интерфейс пользователя запрограммирован так, что он анализирует это поле и автоматически размещает это поле в сводной таблице данных. 3 н. и 11 з.п. ф-лы, 1 табл., 28 ил.
Реферат
УРОВЕНЬ ТЕХНИКИ
Сводные таблицы данных можно использовать для анализа больших количеств данных. Один пример сводной таблицы данных представляет собой сводные таблицы PIVOTTABLE - динамические представления, которые можно генерировать с использованием программного обеспечения электронных таблиц EXCEL компании Microsoft Corporation. Сводная таблица данных представляет собой эффективный способ отображения и сведения данных, содержащихся в базе данных, или которые находятся в листинге данных электронной таблицы. Пользователь может выбрать поля данных для включения в пределах страницы, ряда, колонки или области данных в сводной таблице данных и может выбрать параметры, такие как сумма, степень изменения, величина подсчета и среднеквадратичное отклонение, для отображения в выбранных полях данных. Данные, находящиеся в базе данных, которые можно запрашивать из программы электронной таблицы, или данные в электронной таблице, включая списки, можно анализировать в сводной таблице данных.
Хотя сводная таблица данных разработана таким образом, что данные можно анализировать эффективно и интуитивно, создание самой сводной таблицы данных может представлять собой проблему для неопытных пользователей. Например, некоторые программы предоставляют вспомогательные функции автоматической подсказки, которые помогают пользователю при создании сводной таблицы данных. Хотя такие вспомогательные функции автоматической подсказки могут быть полезными при создании исходной сводной таблицы данных, такие вспомогательные функции автоматической подсказки трудно использовать для модификации отображения после ее формирования. Другие программы позволяют пользователям применять операцию "перетащить и оставить" для переноса требуемых полей несредственно в сводную таблицу данных. Хотя эти программы обеспечивают для пользователя большую гибкость, при создании отображения, они могут быть менее интуитивно понятными для новичка
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Данный раздел "Сущность изобретения" предназначен для представления в упрощенной форме выбранных концепций, которые дополнительно описаны ниже в разделе "Подробное описание изобретения". Данный раздел "Сущность изобретения" не предназначен для идентификации ключевых свойств или существенных свойств заявленного предмета изобретения, и в нем не приведено определение объема заявленного предмета изобретения.
В соответствии с одним аспектом, графический интерфейс пользователя, предназначенный для формирования сводной таблицы данных, включает в себя область, включающую в себя множество полей, и сводную таблицу данных. При выборе поля, которое должно быть включено в сводную таблицу данных, интерфейс пользователя запрограммирован так, что он анализирует это поле и автоматически размещает это поле в сводной таблице данных.
В соответствии с другим аспектом, в компьютерной системе, имеющей графический интерфейс пользователя для сводной таблицы данных, способ включает в себя: обеспечивают возможность выбора поля из множества полей; анализируют выбранное поле с использованием семантики; выбирают область в сводной таблице данных для размещения поля; и добавляют поле к области сводной таблицы данных.
В соответствии с другим аспектом, считываемый компьютером носитель содержит выполняемые компьютером инструкции, предназначенные для выполнения этапов, включающих в себя: обеспечивают возможность выбора поля из множества полей; анализируют выбранное поле с использованием семантики; выбирают область в сводной таблице данных для размещения поля; и добавляют поле к области сводной таблицы данных.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Ниже приведена ссылка на прилагаемые чертежи, которые не обязательно вычерчены в масштабе, и на которых:
на фиг.1 иллюстрируется примерная вычислительная система общего назначения;
на фиг.2 иллюстрируется примерный лист программы электронной таблицы;
на фиг.3 иллюстрируется примерная сводная таблица данных и область задач программы электронной таблицы;
на фиг.4 иллюстрируется пример области задач по фиг.3;
на фиг.5 иллюстрируется другой пример области задач;
на фиг.6 иллюстрируется пример меню, предназначенного для замены поля в области компоновки области задач;
на фиг.7 иллюстрируется пример способа размещения поля в области компоновки области задач по фиг.4;
на фиг.8 иллюстрируется пример сводной таблицы данных и область задач по фиг.3 с полем, добавленным к таблице;
на фиг.9 иллюстрируется пример сводной таблицы данных и область задач по фиг.3 с множеством полей, добавленных к таблице;
на фиг.10 иллюстрируется пример сводной таблицы данных и область задач по фиг.9 с полем, компоновка которого была изменена в соответствии с таблицей;
на фиг.11 иллюстрируется другая примерная область задач;
на фиг.12 иллюстрируется пример меню для модификации компоновки области задач по фиг.11;
на фиг.13 иллюстрируется пример области задач по фиг.11 с другой компоновкой;
на фиг.14 иллюстрируется пример области задач по фиг.11 с другой компоновкой;
на фиг.15 иллюстрируется пример области задач по фиг.11 с другой компоновкой;
на фиг.16 иллюстрируется пример области задач по фиг.11 с другой компоновкой;
на фиг.17 иллюстрируется примерный способ размещения поля в области компоновки области задач по фиг.4;
на фиг.18 иллюстрируется другой пример способа размещения поля в области компоновки области задач по фиг.4;
на фиг.19 иллюстрируется еще один пример способа размещения поля в области компоновки области задач по фиг.4;
на фиг.20 иллюстрируется пример фильтрации области задач;
на фиг.21 иллюстрируется пример области ручного фильтра для другой фильтрации области задач;
на фиг.22 иллюстрируется пример вспомогательного раскрывающегося меню для фильтрации области задач по фиг.20;
на фиг.23 иллюстрируется другой пример вспомогательного раскрывающегося меню для фильтрации области задач по фиг.20;
на фиг.24 иллюстрируется пример диалогового окна для фильтрации области задач по фиг.20;
на фиг.25 иллюстрируется другой пример фильтрации области задач;
на фиг.26 иллюстрируется пример вспомогательного раскрывающегося меню для фильтрации области задачи по фиг.25;
на фиг.27 иллюстрируется другой пример области задач;
на фиг.28 иллюстрируется пример вспомогательной информации по инструментам для области задач по фиг.27.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Варианты воплощения будут более полно описаны ниже со ссылкой на прилагаемые чертежи. Раскрытые здесь варианты воплощения представляют собой примеры, и их не следует рассматривать как ограничение; скорее эти варианты воплощения предусмотрены для того, чтобы сделать данное раскрытие исчерпывающим и завершенным. Одинаковыми номерами ссылочных позиций обозначены одинаковые элементы на всех чертежах.
Описанные здесь варианты воплощения относятся к сводным таблицам данных, используемым для анализа данных в компьютерной системе.
Рассмотрим теперь фиг.1, на которой иллюстрируется пример компьютерной системы 100. Компьютерная система 100, иллюстрируемая на фиг.1, может принимать различные формы, такие как, например, настольный компьютер, переносной компьютер и карманный компьютер. Кроме того, хотя здесь иллюстрируется компьютерная система 100, системы и способы, раскрытые здесь, могут быть также воплощены в других альтернативных компьютерных системах.
Система 100 включает в себя модуль 102 процессора, системное запоминающее устройство 104 и системную шину 106, которая соединяет различные системные компоненты, включая системное запоминающее устройство 104 с модулем 102 процессора. Системная шина 106 может представлять собой любую из нескольких типов структур шины, включающих в себя шину памяти, периферийную шину и локальную шину, с использованием любой из различных архитектур шины. Системное запоминающее устройство включает в себя постоянное запоминающее устройство (ПЗУ) 108 и оперативное запоминающее устройство (ОЗУ) 110. Базовая система ввода/вывода 112 (BIOS, БСВВ), которая содержит основные процедуры, помогающие передавать информацию между элементами в компьютерной системе 100, сохранена в ПЗУ 108.
Компьютерная система 100 дополнительно включает в себя привод 112 жесткого диска, предназначенный для считывания с и записи на жесткий диск, привод 114 магнитного диска, предназначенный для считывания с или записи на съемный магнитный диск 116, и привод 118 оптического диска, предназначенный для считывания с или записи на съемный оптический диск 119, такой как CD-ROM, DVD или другой оптический носитель. Привод 112 жесткого диска, привод 114 магнитного диска и привод 118 оптического диска соединены с системной шиной 106 с помощью интерфейса 120 привода жесткого диска, интерфейса 122 привода магнитного диска и интерфейса 124 привода оптического диска, соответственно. Эти приводы и другие ассоциированные считываемые компьютером носители обеспечивают энергонезависимый накопитель считываемых компьютером инструкций, структур данных, программ и других данных для компьютерной системы 100.
Хотя в примере описанной здесь оперативной среды может использоваться жесткий диск 112, съемный магнитный диск 116 и съемный оптический диск 119, другие типы считываемых компьютером носителей информации, которые позволяют сохранять данные, могут использоваться в примере системы 100. Примеры этих других типов считываемых компьютером носителей информации, которые можно использовать в примере оперативной среды, включают в себя магнитные кассеты, карты памяти типа флэш, цифровые видеодиски, картриджи Бернулли, оперативные запоминающие устройства (ОЗУ) и постоянные запоминающие устройства (ПЗУ).
Ряд программных модулей могут быть сохранены на жестком диске 112, магнитном диске 116, оптическом диске 119, в ПЗУ 108 или в ОЗУ 110, включающих в себя операционную систему 126, одну или больше прикладных программ 128, других программных модулей 130 и данных 132 программ.
Пользователь может вводить команды и информацию в компьютерную систему 100 через такие устройства ввода, как, например, клавиатура 134, мышь 136 или другое устройство - указатель. Примеры других устройств ввода включают в себя панель инструментов, меню, сенсорный экран, микрофон, джойстик, игровой планшет, ручку, спутниковую антенну и сканер. Эти и другие устройства ввода часто соединены с модулем 102 обработки через интерфейс 140 последовательного порта, который соединен с системной шиной 106. Однако такие устройства ввода также могут быть соединены с помощью других интерфейсов, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB, УПШ). Дисплей 142 LCD (ЖКД, жидкокристаллический дисплей) или устройства дисплея другого типа также соединен с системной шиной 106 через интерфейс; такой как видеоадаптер 144. В дополнение к дисплею 142, компьютерные системы могут обычно включать в себя другие периферийные выходные устройства (не показаны), такие как громкоговорители и принтеры.
Компьютерная система 100 может работать в сетевой среде, с использованием логических соединений, с одним или больше удаленными компьютерами, такими как удаленный компьютер 146. Удаленный компьютер 146 может представлять собой компьютерную систему, сервер, маршрутизатор, сетевой ПК, равнозначное сетевое устройство или другой общий узел сети и обычно включают в себя множество или все элементы, описанные выше в отношении компьютерной системы 100. Сетевые соединения включают в себя локальную сеть (LAN, ЛВС) 148 и глобальную вычислительную сеть (WAN, ГВС) 150. Такие сетевые среды часть используются в офисах, компьютерных сетях предприятия, интранет и Интернет.
При использования в сетевой среде ЛВС компьютерная система 100 подключена к локальной сети 148 через сетевой интерфейс или адаптер 152. При использовании в сетевой среде ГВС компьютерная система 100 обычно включает в себя модем 154 или другое средство установления связи с другой глобальной вычислительной сетью 150, такой как Интернет. Модем 154, который может быть внутренним или внешним, подключен к системной шине 106 через интерфейс 140 последовательного порта. В сетевой среде программные модули, описанные в отношении компьютерной системы 100 или ее частей, могут быть сохранены в удаленном запоминающем устройстве. Следует понимать, что показанные сетевые соединения представляют собой примеры, и можно использовать другие средства установления каналов передачи данных между компьютерами.
Описанные здесь варианты воплощения могут быть воплощены как логические операции в компьютерной системе. Логические операции могут быть воплощены, (1) как последовательность воплощенных в компьютере этапов или программных модулей, работающих в компьютерной системе, и (2) как взаимно соединенные логические или аппаратные модули, работающие в компьютерной системе. Такой вариант воплощения представляет собой предмет выбора, который зависит от требований к рабочим характеристикам конкретной компьютерной системы. В соответствии с этим, логические операции, составляющие описанные здесь варианты воплощения, относятся к операциям, этапам или модулям. Для специалиста в данной области техники будет понятно, что эти операции, этапы и модули могут быть воплощены в виде программных средств, встроенного программного обеспечения, в цифровых логических схемах специального назначения и с использованием любой их комбинации, без выхода за пределы сущности и объема настоящего изобретения, которые представлены в приложенной формуле изобретения. Такие программные средства, встроенные программные средства или аналогичная последовательность компьютерных инструкций могут быть кодированы и сохранены в считаемом компьютером накопителе информации и также могут быть кодированы в пределах сигнала несущей волны для передачи данных между компьютерными устройствами.
Рассмотрим теперь фиг.2, на которой представлен пример программы 200. В одном примере программа 200 представляет собой программу электронной таблицы Microsoft EXCEL, работающую в компьютерной системе, такой как компьютерная система 100, описанная выше. Программа 200 включает в себя электронную таблицу 205 с примером списка данных 210. Пользователь может создать сводную таблицу данных по данным 210.
Например, рассмотрим фиг.3, на которой представлен пример интерфейса 302 пользователя программы 200. Интерфейс 302 пользователя включает в себя исходную сводную таблицу 320 данных (сводная таблица 320 данных показано чистой на фиг.3). Сводная таблица 320 данных может быть создана из данных, полученных из различных источников. В одном примере, показанном на фиг.3, сводная таблица 320 данных может быть создана из данных одной или больше баз данных, как более подробно описано ниже. В других вариантах воплощения сводная таблица 320 данных может быть создана из данных электронной таблицы, таких как данные 210, показанные на фиг.2.
Интерфейс 302 пользователя программы 200 также включает в себя пример области 450 задач, которую можно использовать для формирования и модификации сводной таблицы 320 данных. Например, область 450 задач включает в себя список полей из данных 210. Пользователь может выбрать и детектировать поля из области 450 задач для создания сводной таблицы 320 данных, как более подробно описано ниже.
I. Область задач
Рассмотрим теперь фиг.4, на которой показан пример области 450 задач. Область 450 задач, в общем, включает в себя область 452 поля и область 454 компоновки. Область 450 задач используется для создания и модификации сводной таблицы 320 данных, как более подробно описано ниже.
Область 452 поля включает в себя список 453 каждого поля в данной базе данных или электронной таблице (например, электронной таблице 205, показанной на описанной выше фиг.2). Полоса 451 прокрутки предусмотрена, поскольку список 453 полей длиннее, чем место, предоставляемое областью 452 поля. В некоторых вариантах воплощения размеры области 452 поля (а также области 454 компоновки) могут быть изменены пользователем. Каждое поле в списке 453 включает в себя экранную кнопку рядом с полем. Например, поле "прибыль" области включает в себя экранную кнопку 460, расположенную рядом с названием поля. Когда поле в списке 453 добавляют в область 454 компоновки, как описано ниже, отмечается экранная кнопка, связанная с этим полем. Например, отмечается экранная кнопка 460 для поля "прибыль", поскольку она была добавлена в область 454 компоновки.
Область 454 компоновки включает в себя множество зон, которые представляют аспекты сводной таблицы 320 данных, которую формируют, используя область 450 задач. Например, область 454 компоновки включает в себя зону 455 ряда, зону 456 колонки, зону 457 значений и зону 458 фильтра. Зона 455 ряда образует метки рядов для получающейся сводной таблицы 320 данных. Зона 456 колонки определяет метку колонки для сводной таблицы 320 данных. Зона 457 значений идентифицирует данные, которые сводят (например, совокупность, вариацию и т.д.) в сводной таблице 320 данных. Зона 458 фильтра позволяет выбирать фильтрацию, которую применяют ко всем другим полям в других зонах 455, 456, 457 (например, поле может быть размещено в зоне 458 фильтра, и один или больше элементов, ассоциированных с этим полем, можно выбрать для формирования фильтра, для представления только этих пунктов для всех других полей в области 454 компоновки, которые ассоциированы с элементом (элементами), выбранным для этого поля в зоне 458 фильтра).
Одно или больше полей из области 452 поля добавляют в одну или больше зон области 454 компоновки для формирования и модификации сводной таблицы 320 данных. В представленном примере пользователь может "отметить мышью", "перетянуть" и "сбросить" поле из списка 453 области 452 поля в одну из зон области 454 компоновки, для добавления поля к сводной таблице 320 данных.
Например, как показано на фиг.5, пользователь может колебаться в отношении определенного поля, включенного в область 452 поля, такого как поле 466 "распродажа в магазине". Поскольку пользователь колеблется в отношении этого поля, пользователю представляется курсор 472 в виде перекрестия, который обозначает, что пользователь может отметить мышью и потянуть выбранное поле из области 452 поля в одну из зон 454 компоновки. После того как пользователь выбирает это поле, курсор 472 в виде перекрестия возвращается к нормальному виду курсора, и поле 466 "распродажа в магазине" можно "перетянуть" и "сбросить" в зону 457 значений, как показано. Поле можно аналогично удалить из области 454 компоновки, путем выбора и перетягивания этого поля из области 454 компоновки.
В другом примере пользователь может отмечать экранную кнопку, связанную с определенным полем, в области 452 поля, для добавления этого поля в область 454 компоновки. Например, если пользователь выбирает экранную кнопку 460, связанную с полем "прибыль", показанную в области 450 задач из фиг.4, это поле может быть добавлено в зону 457 значений, как поле 462 "прибыль". Как более подробно описано ниже, программа 200 может быть запрограммирована для анализа и размещения выбранного поля в соответствующей зоне области 454 компоновки. Пользователь может аналогично отменить выбор отмеченного поля для удаления этого поля из области 454 компоновки. Например, если пользователь убирает выбор экранной кнопки 460, поле 462 "прибыль" будет удалено из области 454 компоновки.
В необязательном примере, если пользователь отмечает мышью заданное поле, для выбора этого поля, без перетягивания этого поля в одну из зон, представляющих собой зону 454 сброса, для пользователя может быть представлено меню (например, аналогичное меню 482, показанному на фиг.6), которое позволяет пользователю выбрать, в какую зону требуется поместить данное поле.
На фиг.7 показан пример способа 500, предназначенного для добавления поля из области 452 поля в зону области 454 компоновки. Во время операции 501, пользователь выбирает область, представленную в виде списка в области 452 поля, чтобы добавить ее к области 454 компоновки. Во время операции 502 определяется, выбрал ли пользователь экранную кнопку, связанную с определенным полем. Если пользователь выбрал экранную кнопку, управление переходит к операции 503, и программа 200 может автоматически определять, какую зону области 454 компоновки поместить в выбранное поле. Затем, во время операции 507 поле добавляется к соответствующей зоне области 454 компоновки.
Если во время операции 502 определяется, что пользователь не выбрал экранную кнопку, управление переходит к операции 504. Во время операции 504 определяется, выбрал ли пользователь, "перетянул" ли и "сбросил", поле в одну из зон области 454 компоновки. Если пользователь "сбросил" поле в одну из зон области 454 компоновки, управление переходит к операции 507, и это поле добавляется к зоне.
Если во время операции 504 определяется, что пользователь не "перетянул" и не "сбросил" поле, в необязательном варианте воплощения, управление переходит к операции 505, поскольку пользователь выбрал поле без выбора экранной кнопки или "перетягивания/сброса" этого поля в зону области 454 компоновки. Во время операции 505, программа 200 представляет пользователю меню, которое позволяет пользователю выбрать зону, которую требуется добавить к полю. Затем, во время операции 506, пользователь выбирает требуемую зону. Во время операции 507, поле добавляют к зоне.
После добавления поля к зоне области 454 компоновки, управление переходит к операции 509 и программа 200 обновляет сводную таблицу 320 данных соответствующим образом, как описано ниже.
Рассмотрим снова фиг.4, на которой после того, как поле, такое как поле "прибыль", из области 452 поля будет добавлено к одной из зон области 454 компоновки, экранная кнопка (например, экранная кнопка 460), ассоциированная с этим полем в области 452 поля проверяется, обозначает ли она, что это поле представляет собой часть сводной таблицы 320 данных. Кроме того, шрифт метки поля, ассоциированного с полем в области 452 поля, становится полужирным. Аналогично, когда поле еще не было введено как часть сводной таблицы 320 данных (или было удалено из нее), экранная кнопка, связанная с этим полем, остается без отметки, и это поле представлено с нормальным, а не полужирным шрифтом. Также можно использовать другие способы обозначения полей, которые представляют собой часть сводной таблицы 320 данных.
По мере того как поля добавляют в область 454 компоновки области 450 задач и удаляют из нее, получаемая в результате сводная таблица 320 данных модифицируется соответствующим образом. Например, для пользователя первоначально представляют область 450 задач, которое включает в себя область 452 поля, как показано на фиг.3. На фиг.8, когда пользователь добавляет поле "прибыль" в зону 457 значений области 454 компоновки, сумма данных, связанных с полем "прибыль", автоматически добавляется к сводной таблице 320 данных. На фиг.9 показано, что пользователь может добавлять дополнительные поля (например, "Среднее значение продаж", "Клиенты", "Пол") к зонам области 454 компоновки, и сводную таблицу 320 данных обновляют таким образом, чтобы она включала в себя данные, относящиеся к добавляемым полям.
Рассмотрим фиг.10, пользователь также может перемещать поля из одной зоны в другую зону в области 454 компоновки области 450 задач, и сводная таблица 320 данных обновляется соответствующим образом. Например, пользователь может перемещать поле "Пол" из зоны 456 колонки в зону 455 ряда, и сводная таблица 320 данных автоматически обновляется соответствующим образом, чтобы отразить это изменение. Пользователь также может перемещать поля в пределах заданной зоны 455, 456, 457, 458 для изменения порядка, в котором эти поля отображаются в сводной таблице 320 данных. Например, пользователь может перемещать поле "Пол", выше поля "Клиент" в зоне 455 ряда, в результате чего поле "Пол" будет показано перед полем "Клиент" в сводной таблице 320 данных.
Рассмотрим фиг.6, в одном примере, если пользователь отмечает мышью и высвобождает поле, такое как поле 481 "Категория продукта", расположенное в поле области 454 компоновки, без перетягивания этого поля, пользователю представляется меню 482, которое позволяет пользователю манипулировать с размещением поля в пределах области 454 компоновки. Например, меню 482 позволяет пользователю изменять положение поля в пределах заданной зоны (то есть "переместиться вверх", "переместиться вниз", "переместиться в начало", "переместиться в конец"), перемещать поле между зонами (то есть "перейти к отметкам, расположенным в ряд", "перейти к значениям", "перейти к отметкам колонок", "перейти к фильтру отчета") и удалять поле из области 454 компоновки (то есть "Удалить поле"). Только те варианты, которые доступны для конкретного поля, представляются в меню 482 активного выбора (например, метка "перейти к меткам ряда" показана как неактивная в данном примере, поскольку поле 481 уже находится в зоне 455 ряда).
На фиг.4 показано, что область 450 задач также включает в себя экранную кнопку 469 обновления вручную. Когда выбирают экранную кнопку 469, полученная в результате сводная таблица 320 данных не будет автоматически обновляться, когда поле добавляют, изменяют его компоновку и удаляют из области 454 компоновки области 450 задач. Например, если пользователь выбирает экранную кнопку 469 обновления вручную, и затем добавляет это поле в зону 455 ряда области 454 компоновки, при этом сводная таблица 320 данных не обновляется автоматически, для отражения вновь добавленного поля. Вместо этого обновление происходит после того, как пользователь выбирает кнопку 471 обновления вручную, которая становится активной, после того, как будет выполнено изменение и можно будет выполнить обновление вручную. Обновление вручную можно использовать для повышения эффективности при работе с большим количеством данных, для которых требуется существенное время для поиска и продолжительная обработка для формирования сводной таблицы 320 данных. Таким образом, требуемые поля и фильтрация могут быть выбраны перед формированием или пересмотром сводной таблицы 320 данных, которое происходит после выбора кнопки 471 обновления вручную, в результате чего повышается эффективность.
На фиг.11 поля, показанные в области 452 поля, представляют поля данных типа "обработки анализа в режиме онлайн" (OLAP, ОАРО). В отличие от этого, поля, показанные в области 452 поля на фиг.5, не являются полями типа OLAP, и их иногда называют реляционными полями). OLAP представляет собой категорию инструментов, которая обеспечивает анализ данных, сохраненных в базе данных. Инструменты OLAP позволяют пользователям анализировать разные размеры многоразмерных данных. Поля данных OLAP расположены в виде иерархической структуры с множеством уровней. Например, поле "Сведения о фактических распродажах 1991 года" включает в себя подполя, "Распродажа в магазине", "Штучная продажа" и "Стоимость в магазине". Доступ к подполям может осуществляться путем отметки индикатора 556 детализации (знак +/- плюс/минус) для раскрытия и сворачивания подполей. Данные OLAP можно расположить в разных размерностях в соответствии с иерархиями и мерами.
В показанном варианте воплощения каждое поле, представленное в области 452 поля, включает в себя множество компонентов. Поле может быть выделено путем перемещения указателя мыши по полю или отметки мышью поля. Например, каждое поле, такое как поле "Продукт", показанное на фиг.11, включает в себя области 558 и 559 выбора, которые позволяют пользователю выбирать и перетягивать это поле. Каждое поле также включает в себя экранную кнопку 560, которую можно использовать для добавления/удаления поля из сводной таблицы 320 данных. Кроме того, каждое поле данных типа OLAP может включать в себя индикатор 556 детализации, который используется для раскрытия и сворачивания подполей, связанных с этим полем. Кроме того, каждое поле включает в себя раскрывающуюся область 562, используемую для доступа к опциям фильтрации, как дополнительно описано ниже.
Рассмотрим снова фиг.4, на которой область 450 задач также включает в себя управление 470, которое позволяет пользователю модифицировать компоновку области 450 задачи. Например, пользователь может выбрать управление 470 для доступа к меню 572 компоновки, как показано на фиг.12. Меню 572 компоновки используется для компоновки областей 452 и 454. Например, если пользователь выберет "Поля и компоновка располагаются друг над другом" 573 в управлении 470, область 452 поля устанавливается над областью 454 компоновки в области 450 задач для формирования единой интегрированной области, как показано на фиг.4. Если пользователь выбирает "Поля и компоновка расположены рядом друг с другом" 574 с помощью экранной кнопки 470, область 452 располагается вдоль боковой области 454 компоновки в области 450 задач, формируя одну объединенную область, как показано на фиг.13. Если пользователь выбирает "Только поля" 575 с помощью управления 470, область 452 поля будет показана изолированной, как на фиг.14. Если пользователь выбирает "Только компоновка 2 на 2" 576 в управлении 470, область 454 компоновки будет показана изолированной с зонами 455, 456, 457, 458, расположенными в квадрате размером 2×2, как показано на фиг.15. Если пользователь выбирает "Только компоновка 1 на 4" 577 он выполняет управление 470, при этом область 454 компоновки показана изолированной с зонами 455, 456, 457, 458, расположенными в квадрате размером 1×4, как показано на фиг.16.
В примере, показанном на фиг.5, поля в области 452 поля представлены в алфавитном порядке. Чтобы список включал данные типа OLAP, такие как показаны на фиг.4, вначале представлены меры, и размерности показаны в алфавитном порядке после этого. В представленных примерах папки размерности представлены в развернутой форме, при этом все другие поля показаны в сжатой форме. Другие конфигурации также можно использовать.
II. Автоматическое размещение поля в области компоновки
Рассмотрим снова фиг.4, если пользователь выбирает поле, отмечая экранную кнопку, связанную с этим полем, программа 200 запрограммирована так, что она автоматически размещает выбранное поле в одной из зон области 454 компоновки, как описано ниже.
Обычно поля численного типа добавляют к зоне 457 значений, поля нечисленного типа добавляют к зоне 455 ряда области 454 компоновки. Например, поля численного типа (например, цифры, обозначающие продажи в денежном выражении) обычно объединяют и, поэтому, размещают в зоне 457 значений, в то время как поля нечисленного типа (например, название продукта) обычно используют как метки ряда и, поэтому, автоматически размещают в зоне 455 ряда.
Рассмотрим теперь фиг.17, на которой представлен примерный способ 600 автоматического добавления выбранного поля к одной из зон области 454 компоновки. При выполнении операции 601, пользователь выбирает поле в области 452 поля, используя, например, экранную кнопку, связанную с этим полем. Затем, при выполнении операции 602, определяют, является ли это поле полем численного типа. Если поле представляет собой поле численного типа, управление передают в операцию 603 и это поле добавляют к зоне 457 значений для объединения. Если во время операции 602 определяется, что поле не является полем численного типа, управление передают в операцию 604 и это поле передают в зону 455 ряда.
В некоторых вариантах воплощения поле численного типа может быть дополнительно проанализировано прежде, чем оно будет добавлено в поле зоны 457 значений, для определения, является ли другое размещение в области 454 компоновки более соответствующим. Например, поле, включающее в себя множество значений почтового индекса является полем численного типа, но обычно требуется размещать такое поле в зоне 455 ряда, а не в зоне 457 значений. По этой причине поля численного типа дополнительно анализируют в некоторых вариантах воплощения, используя семантические характеристики данных для идентификации требуемого размещения в области 454 компоновки.
В одном варианте воплощения используют справочную таблицу, такую как таблица 1, приведенная ниже, для идентификации полей численного типа, которые добавляют к зоне 455 ряда, вместо зоны 457 значений.
Таблица 1 | ||
FieldTypeString (Строка типа поля) | Минимальное значение | Максимальное значение |
"почтовый индекс" | ||
"год" | ||
"квартал" | 1 | 4 |
"qtr" (квартал) | 1 | 4 |
"месяц" | 1 | 12 |
"неделя" | 1 | 52 |
"день" | 1 | 31 |
"идентификатор" | ||
"номер" | ||
"номер социального страхования" | ||
"ssn" (номер социального страхования) | ||
"номер телефона" | ||
"дата" |
В таблице 1, колонка "FieldTypeString" (Строка типа поля) включает в себя текстовые строки, которые сравнивают с заголовком выбранного поля, как более подробно описано ниже. В представленном примере заголовок для выбранного поля сравнивают с каждой строкой в колонке FieldTypeString таблицы 1, для идентификации каких-либо не соответствий, не чувствительных к регистру (заглавных или строчных букв).
Если будет найдено соответствие между текстовой строкой в колонке FieldTypeString и заголовком выбранного поля, численные элементы в этом поле дополнительно анализируют, используя значения в колонках "MinValue" и "MaxValue" (Минимальное значение и Максимальное значение) таблицы 1. Значение колонки MinValue определяет минимальное значение любого из элементов заданного типа FieldTypeString. Значение в колонке MaxValue определяет максимальное значение любого из элементов заданного типа FieldTypeString. Если MinValue не определено в таблице 1 для конкретного типа FieldTypeString, определяют, являются ли численные элементы целыми числами, не превышающими MaxValue. Если MaxValue не определено для конкретного типа FieldTypeString, определяют, являются ли численные элементы целыми числами, превышающими MinValue. Если не определено ни MinValue, ни MaxValue для конкретного типа FieldTypeString, определяют, являются ли численные элементы целыми числами.
Например, если выбранное поле включает в себя заголовок "месяц", таблица 1 анализирует и идентифицирует соответствие со значением FieldTypeString "месяц". Затем численные значения, ассоциированные в этим полем, анализируют для определения, попадают ли численные значения в пределы между минимальным и максимальным значениями "1" и "12" (представляют месяцы от января до декабря). В одном варианте выполнения проверяют все численные элементы для этого поля. В других вариантах выполнения, например, когда имеется значительно большее количество численных элементов, проверяют только выборку численных элементов, сравнивая их с минимальным и максимальным значениями в таблице 1. Если все значения попадают в пределы между минимальным и максимальным значениями, тогда это поле добавляют к зону 455 ряда, вместо зоны 457 значений, как дополнительно описано ниже.
Текстовые строки и минимальные, и максимальные значения, показанные в таблице 1, представляют собой только примеры, и можно использовать другие строки и значения. Например, текстовые строки и минимальные/максимальные значения могут быть модифицированы в зависимости от географического местоположения, в котором генерируют данные (например, значения номера телефона могут различаться в зависимости от географического местоположения). В других вариантах выполнения могут использоваться разные типы семантической проверки. Например, количество цифр численных элементов можно анализировать в дополнение к или вместо проверки фактических значений численных элементов. Например, если заголовок поля соответствует текстовой строке "почтовый индекс" (то есть почтовые индексы), количество цифр для этих численных элементов в этом поле можно анализировать, проверяя, составляет ли количество цифр минимум пять цифр (например, "90210" включает в себя пять цифр) и максимум десять цифр (например, "90210-1052" включает в себя десять цифр).
На фиг.18 показан примерный способ 610 автоматического размещения выбранного поля в области 454 компоновки. Способ 610 аналогичен способу 600, описанному выше, за исключением того, что дополнительно анализируют поля численного типа. При выполнении операции 611, пользователь выбирает поле в области 452 поля, используя, например, экранную кнопку, связанную с этим полем. Затем, в ходе операции 612, определяется, является ли это поле полем численного типа. Если поле не является полем численного типа, у