Область техники, к которой относится изобретение
Данное изобретение касается в общем области информационных систем. Более конкретно, данное изобретение касается параметризации данных.
Предшествующий уровень техники
Информационным системам часто требуется извлекать значения у пользователя так, чтобы доставлять соответствующую информацию пользователю в надлежащее время. В системах предоставления отчетов на основе запросов это может выполняться через параметризацию отчетов. Параметры обеспечивают возможность компоновать запросы на индивидуальной основе, основываясь на выборе пользователя. Однако обычные программные продукты предоставления отчетов обеспечивают только статический выбор параметров. Таким образом, зависимости данных генератором отчетов не используются, что ведет к неэффективным обработке и представлению данных и отчетов. Кроме того, обычные программные продукты предоставления отчетов обеспечивают неэффективное и недружественное воспроизведение последующих данных и выбираемых параметров для пользователя.
Например, фиг.2 представляет графическую схему алгоритма обычного способа обработки и формирования отчетов. На этапе 200 извлекается определение отчета, которое включает в себя перечень параметров и, если заданы, возможные значения для каждого параметра. Затем, на этапе 230, из перечня извлекается параметр, и на этапе 240 определяется, отмечен ли параметр как раскрывающийся (имеет множество возможных значений). Если это так, то на этапе 250 выбираются все возможные значения поля и предоставляются пользователю. Это может быть длинный громоздкий перечень значений. Затем на этапе 260 пользователю выдается приглашение выбрать значение из раскрывающегося перечня (перечней). Если на этапе 240 параметр не отмечен как раскрывающийся, то обработка переходит непосредственно к этапу 260, где пользователю выдается приглашение относительно значения (значений) (не из раскрывающегося перечня). Затем на этапе 270 определяется, остались ли какие-нибудь параметры в перечне с этапа 220. Если это так, то выполнение возвращается к этапу 230. После того как все параметры извлечены и использованы для выдачи приглашения пользователю выбрать значение (значения), на этапе 280 выполняется отчет. Следует отметить, что в этом обычном способе зависимости данных генератором отчетов не используются, и варианты выбора, представляемые пользователю, динамически не определены или не ограничены подмножеством на основании его предыдущих выбранных элементов.
В соответствии с этим существует необходимость обеспечить программу динамического предоставления отчетов, включающую в себя системы и способы, которые преодолевают проблемы предшествующего уровня техники и более точно и эффективно адаптируют доставку информации к потребностям пользователя. Желательно обеспечить каскадные параметры таким образом, чтобы выбираемый пользователем параметр зависел от более раннего выбора пользователя.
Краткое изложение сущности изобретения
Настоящее изобретение направлено на улучшенные системы и способы параметризации отчетов, в которых значения, введенные пользователем, и элементы, выбранные пользователем, собирают и подают в сервер отчетов, который компонует определенный в общем отчет на индивидуальной основе в соответствии со значениями, введенными пользователем, и элементами, выбранными пользователем.
В определении отчета объявляют упорядоченный набор параметров отчета, а затем это определение параметров используют для управления выдачей приглашений пользователю и выполнения отчета. Поскольку значения параметров собраны в порядке следования, извлеченное или заданное пользователем значение для одного параметра может использоваться для генерирования набора допустимых значений или значения по умолчанию для более позднего параметра в последовательности. Параметры представляют пользователю динамически. После того как значения для всех параметров извлечены или заданы, сервером отчетов формируется отчет.
Дополнительные признаки и преимущества изобретения станут очевидными из последующего подробного описания иллюстративных вариантов осуществления, которые представлены со ссылкой на прилагаемые чертежи.
Перечень фигур чертежей
Вышеизложенное краткое изложение, также как последующее подробное описание предпочтительных вариантов осуществления, будут лучше понятны при чтении совместно с прилагаемыми чертежами. С целью иллюстрирования изобретения на чертежах показаны примерные толкования изобретения; однако, изобретение не ограничено раскрытыми конкретными способами и средствами. На чертежах:
фиг.1 - блок-схема, показывающая иллюстративную вычислительную среду, в которой могут быть реализованы аспекты изобретения;
фиг.2 - графическая схема алгоритма обычного способа обработки и формирования отчета;
фиг.3 - высокоуровневая блок-схема иллюстративной системы в соответствии с настоящим изобретением;
фиг.4 - графическая схема алгоритма иллюстративного способа обработки и формирования отчета в соответствии с настоящим изобретением;
фиг.5 - схема иллюстративного определения отчета в соответствии с настоящим изобретением;
фиг.6 - древовидная схема, которая является полезной в описании того как иллюстративный элемент (элементы) управления предоставляется пользователю для каждого параметра отчета, ассоциированного с отчетом;
фиг.7 - древовидная схема, которая является полезной в описании того как инициализируется иллюстративный элемент управления и его значение по умолчанию для каждого параметра отчета, ассоциированного с отчетом; и
фиг.8 - древовидная схема, которая является полезной в описании того как иллюстративный элемент (элементы) управления предоставляется пользователю для каждого параметра отчета, ассоциированного с отчетом, на основании условий.
Подробное описание предпочтительных вариантов осуществления
Краткий обзор
Параметризованные отчеты обеспечивают гибкость, позволяя проектировщику отчетов задавать набор значений, которые могут обеспечиваться пользователем во время выполнения отчета. Данные преобразуются из базы данных в удобочитаемую форму, с информацией, которую пользователь желает видеть, и без других данных. Параметры используются, например, для ограничения данных или выделения данных. Параметры динамически представляются пользователю. Например, если пользователю выдается приглашение выбрать штат его местонахождения, и пользователь выбирает "Вашингтон", то следующие варианты выбора, которые предоставляются пользователю, ограничиваются городами в штате Вашингтон.
Иллюстративная вычислительная среда
Фиг.1 иллюстрирует пример подходящей среды 100 вычислительной системы, в которой может быть реализовано изобретение. Среда 100 вычислительной системы представляет только один пример подходящей вычислительной среды и не предназначена для наложения какого-либо ограничения на объем использования или функциональные возможности изобретения. Также вычислительную среду 100 не следует интерпретировать как имеющую какую-либо зависимость или требования, касающиеся какого-либо одного из компонентов или их комбинации, иллюстрируемых в примерной операционной среде 100.
Изобретение способно функционировать с многочисленными другими универсальными или специализированными средами или конфигурациями вычислительных систем. Примеры известных вычислительных систем, сред и/или конфигураций, которые могут быть подходящими для использования с изобретением, включают в себя, но не ограничены этим, персональные компьютеры, серверные компьютеры, карманные или портативные компьютерные устройства, мультипроцессорные системы, системы на основе микропроцессоров, телевизионные приставки, программируемую бытовую электронику, сетевые персональные компьютеры, миникомпьютеры, универсальные компьютеры, распределенные вычислительные среды, которые включают в себя любые из вышеупомянутых систем или устройств, и т.п.
Изобретение может быть описано в общем контексте машиноисполняемых команд, таких как программные модули, подлежащие выполнению компьютером. В общем, программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и т.д., которые выполняют конкретные задания или реализуют конкретные абстрактные типы данных. Изобретение также можно применять в распределенных вычислительных средах, где задания выполняются удаленными устройствами обработки, которые связаны через сеть связи или другую среду передачи данных. В распределенной вычислительной среде программные модули и другие данные могут быть расположены и в локальных, и в удаленных компьютерных устройствах хранения информации, включая запоминающие устройства.
Рассмотрим фиг.1, на которой иллюстративная система для реализации изобретения включает в себя вычислительное устройство общего назначения в форме компьютера 110. Компоненты компьютера 110 могут включать в себя, но не ограничены этим, процессор 120, системную память 130 и системную шину 121, которая соединяет различные компоненты системы, включая соединение системной памяти с процессором 120. Системная шина 121 может быть любой из нескольких типов шинных структур, включая шину памяти или контроллер памяти, периферийную шину и локальную шину, в которых использована любая из множества шинных архитектур. В качестве примера, а не ограничения, такие архитектуры включают в себя шину промышленной стандартной архитектуры (ISA), шину микроканальной архитектуры (MCA), шину расширенной промышленной стандартной архитектуры (EISA), локальную шину Ассоциации по стандартам видеоэлектроники (VESA) и шину межсоединения периферийных компонентов (PCI) (также известную как шина mezzanine).
Компьютер 110 обычно включает в себя ряд машиночитаемых носителей. Машиночитаемыми носителями могут быть любые имеющиеся в наличии носители, к которым компьютер 110 может осуществить доступ, и включают в себя как энергозависимые, так и энергонезависимые носители, как съемные, так и стационарные носители. В качестве примера, а не ограничения, машиночитаемые носители могут содержать компьютерные запоминающие устройства и среды передачи данных. Компьютерные запоминающие устройства включают в себя как энергозависимые, так и энергонезависимые, как съемные, так и стационарные носители, реализуемые с помощью любого способа или технологии хранения информации, такой как машиночитаемые команды, структуры данных, программные модули или другие данные. Компьютерные запоминающие устройства включают в себя, но не ограничены этим, оперативное запоминающее устройство (ОЗУ), постоянное запоминающее устройство (ПЗУ), электрически стираемое программируемое ПЗУ (ЭСППЗУ), флэш-память или память другой технологии, ПЗУ на компакт-диске (CD-ROM), цифровые универсальные диски (DVD) или другой накопитель на оптических дисках, магнитные кассеты, магнитную ленту, запоминающее устройство на магнитных дисках или другие магнитные устройства хранения данных, или любой другой носитель, который может использоваться для хранения требуемой информации и к которому компьютер 110 может осуществить доступ. Среды передачи данных обычно воплощают машиночитаемые команды, структуры данных, программные модули или другие данные в сигнале, модулированном данными, таким как сигнал несущей или другой механизм переноса данных, и включают в себя любые среды доставки информации. Термин "сигнал, модулированный данными" означает сигнал, который имеет одну или больше своих характеристик, устанавливаемых или изменяемых таким образом, чтобы кодировать информацию в сигнале. В качестве примера, а не ограничения, среды передачи данных включают в себя проводные среды передачи данных, такие как проводная сеть или прямое проводное соединение, и беспроводные среды передачи данных, такие как акустические, радиочастотные, инфракрасные и другие беспроводные среды. Комбинации любых из вышеупомянутых носителей также должны быть включены в диапазон машиночитаемых носителей.
Системная память 130 включает в себя компьютерные запоминающие устройства в форме энергозависимого и/или энергонезависимого запоминающего устройства типа ПЗУ 131 и ОЗУ 132. Базовая система 133 ввода/вывода (BIOS), содержащая основные процедуры, которые помогают передавать информацию между элементами в пределах компьютера 110, например, во время запуска, обычно хранится в ПЗУ 131. ОЗУ 132 обычно содержит данные и/или программные модули, к которым процессор 120 может осуществить непосредственный доступ и/или которые он обрабатывает в текущий момент. В качестве примера, а не ограничения, фиг.1 иллюстрирует операционную систему 134, прикладные программы 135, другие программные модули 136 и данные 137 программ.
Компьютер 110 может также включать в себя другие съемные/стационарные, энергозависимые/энергонезависимые компьютерные запоминающие устройства. Только в качестве примера фиг.1 иллюстрирует накопитель 141 на жестких магнитных дисках, который считывает со стационарных энергонезависимых магнитных носителей или записывает на них, дисковод 151 для магнитных дисков, который считывает со съемного энергонезависимого магнитного диска 152 или записывает на нем, и дисковод 155 для оптических дисков, который считывает со съемного энергонезависимого оптического диска 156, такого как CD-ROM или другой оптический носитель, или записывает на нем. Другие съемные/стационарные, энергозависимые/энергонезависимые компьютерные запоминающие устройства, которые можно использовать в иллюстративной операционной среде, включают в себя, но не ограничены этим, кассеты магнитной ленты, карты флэш-памяти, цифровые универсальные диски, цифровые видеоленты, твердотельное ОЗУ, твердотельное ПЗУ и т.п. Накопитель 141 на жестких магнитных дисках обычно подсоединен к системной шине 121 через интерфейс стационарного запоминающего устройства типа интерфейса 140, а дисковод 151 для магнитных дисков и дисковод 155 для оптических дисков обычно подсоединены к системной шине 121 посредством интерфейса съемного запоминающего устройства, типа интерфейса 150.
Дисководы и связанные с ними компьютерные запоминающие устройства, обсуждавшиеся выше и иллюстрируемые на фиг.1, обеспечивают хранение машиночитаемых команд, структур данных, программных модулей и других данных для компьютера 110. На фиг.1, например, накопитель 141 на жестких магнитных дисках иллюстрируется как хранящий операционную систему 144, прикладные программы 145, другие программные модули 146 и данные 147 программ. Следует отметить, что эти компоненты могут быть либо такими же, либо отличаться от операционной системы 134, прикладных программ 135, других программных модулей 136 и данных 137 программ. Операционной системе 144, прикладным программам 145, другим программным модулям 146 и данным 147 программ здесь присвоены отличающиеся ссылочные позиции для пояснения того, что, как минимум, они представляют собой другие экземпляры. Пользователь может вводить команды и информацию в компьютер 110 через устройства ввода данных типа клавиатуры 162 и координатно-указательного устройства 161, к которому обычно относятся мышь, шаровой манипулятор или сенсорный планшет. Другие устройства ввода данных (не показаны) могут включать в себя микрофон, джойстик, игровую клавиатуру, спутниковую параболическую антенну, сканер и т.п. Эти и другие устройства ввода данных часто подсоединяют к процессору 120 через интерфейс 160 пользовательского ввода, который соединен с системной шиной, но может быть связан с другими интерфейсными и шинными структурами, такими как типа параллельный порт, игровой порт или универсальная последовательная шина (USB). Монитор 191 или другой тип устройства отображения также связан с системной шиной 121 через интерфейс, такой как видеоинтерфейс 190. В дополнение к монитору, компьютеры также могут включать в себя другие периферийные устройства вывода, такие как громкоговорители 197 и принтер 196, которые могут быть подсоединены через интерфейс 195 вывода на периферийные устройства.
Компьютер 110 может работать в сетевом окружении, используя логические соединения с одним или более удаленными компьютерами, типа удаленного компьютера 180. Удаленным компьютером 180 может быть персональный компьютер, сервер, маршрутизатор, сетевой персональный компьютер, одноранговое устройство или другой общий сетевой узел, и обычно он включает в себя многие или все элементы, описанные выше относительно компьютера 110, хотя на фиг.1 показано только запоминающее устройство 181. Изображенные логические соединения включают в себя локальную сеть (ЛС, LAN) 171 и глобальную сеть (ГС, WAN) 173, но могут также содержать другие сети. Такие сетевые окружения являются обычными в офисах, компьютерных сетях в масштабах предприятия, интрасетях и сети Интернет.
При использовании в сетевом окружении ЛС компьютер 110 соединен с ЛС 171 через сетевой интерфейс или адаптер 170. При использовании в сетевом окружении ГС компьютер 110 обычно включает в себя модем 172 или другое средство для установления соединения через ГС 173, такую как Интернет. Модем 172, который может быть внутренним или внешним, можно подсоединять к системной шине 121 через интерфейс 160 пользовательского ввода или другой соответствующий механизм. В сетевом окружении программные модули, изображенные относительно компьютера 110, или их части могут храниться в удаленном запоминающем устройстве. В качестве примера, а не в качестве ограничения, фиг.1 иллюстрирует удаленные прикладные программы 185 как постоянно находящиеся в запоминающем устройстве 181. Должно быть понятно, что показанные сетевые соединения являются иллюстративными и можно использовать другой способ установления линии связи между компьютерами.
Иллюстративные архитектуры распределенных вычислений
В свете сближения вычислений на персональном компьютере и Интернет разрабатывались и разрабатываются в настоящее время различные архитектуры распределенных вычислений. Отдельные пользователи и пользователи предприятий, обеспечиваются интерфейсом, обеспечивающим прозрачное взаимодействие и возможность работы во «всемирной паутине» (Web), для приложений и вычислительных устройств, в результате чего вычислительные действия становятся все более ориентированными на Web-браузер или на сеть.
Например, платформа.NET компании MICROSOFT® включает в себя серверы, службы стандартных компоновочных блоков, такие как основанное на Web хранение данных, и загружаемое программное обеспечение устройств. Вообще говоря, платформа.NET обеспечивает (1) возможность заставить весь диапазон вычислительных устройств работать вместе и обновлять информацию пользователя автоматически и синхронно на всех из них, (2) усовершенствованную интерактивность web-сайтов, обеспечиваемую за счет более широкого использования расширяемой спецификации языка для создания web-страниц (XML) вместо языка гипертекстовой разметки (HTML), (3) интерактивные службы, которые обеспечивают настраиваемый на индивидуальной основе доступ и доставку продуктов и услуг пользователю и центральной отправной точки для управления различными приложениями, например такими как электронная почта или программное обеспечение типа Office.NET, (4) централизованное хранение данных, которое увеличит эффективность и простоту доступа к информации, а также синхронизацию информации между пользователями и устройствами, (5) способность объединять в одно целое различные средства передачи данных типа электронной почты, факсов и телефонов, (6) для разработчиков, возможность создавать модули многократного использования, благодаря чему увеличивается производительность и сокращается количество ошибок программирования, и (7) также множество других функциональных возможностей межплатформной интеграции.
В то время как здесь описаны иллюстративные варианты осуществления в связи с программным обеспечением, постоянно находящимся на вычислительном устройстве, одна или более частей изобретения также может быть осуществлена через операционную систему, интерфейс прикладного программирования (API) или посреднический объект между сопроцессором и запрашивающим объектом, так что службы можно реализовать, обеспечить или осуществить к ним доступ через все языки и службы.NET, а также в других архитектурах распределенных вычислений.
Иллюстративные варианты осуществления
В определении отчета объявляется упорядоченный набор параметров отчета, и затем это определение параметров используется для управления выдачей приглашений пользователю и выполнения отчета (определение отчета дополнительно описано ниже относительно фиг.5). Примерное определение параметра включает в себя: имя параметра, тип данных (string (строка), number (число), date (дата) и т.д.); набор допустимых значений или необязательный запрос, используемый для извлечения набора допустимых значений; значение по умолчанию или необязательный запрос, используемый для извлечения значения по умолчанию и для определения того, следует ли выдать пользователю приглашение относительно значения. Запросы на допустимые значения и значения по умолчанию могут быть произвольно сложными и по желанию определяться проектировщиком отчета.
Кроме того, запросы на допустимые значения и значения по умолчанию можно параметризировать с помощью значений из ранее заданных значений параметров.
Это обеспечивает значение, извлеченное или заданное пользователем для одного параметра, подлежащего использованию для формирования набора допустимых значений или значений по умолчанию для более позднего параметра в последовательности. После того как значения для всех параметров извлечены или заданы, сервер отчетов формирует отчет.
В качестве примера, предположим определение отчета с двумя параметрами, "Категория продукта" ("Product Category") и "Название продукта" ("Product Name"). Перечень категорий продуктов извлекается из базы данных, и пользователю выдается приглашение выбрать один пункт в этом перечне. Как только пользователь делает выбор, из базы данных извлекается перечень названий продуктов в пределах выбранной категории. Затем пользователь выбирает одно название продукта из перечня, и отчет выполняется, используя выбранный продукт.
В качестве другого иллюстративного сценария, включающего динамические перечни параметров и значения по умолчанию согласно настоящему изобретению, предположим, что существуют три параметра, определенных для отчета, "Область" ("Region"), "Штат" ("State") и "Город" ("City"). Интерфейс пользователя отображает три раскрывающихся перечня, используемых для ввода каждого параметра. Раскрывающийся параметр "Область" заполняется областями в Соединенных Штатах. Когда область выбрана (например, северо-западная), выполняется запрос к источнику данных, ассоциированному с параметром "Штат", используя область, которая была выбрана в раскрывающемся перечне "Область", в качестве параметра запроса. Раскрывающийся перечень "Штат" заполняется набором, являющимся результатом запроса с параметром. Когда в раскрывающемся перечне "Штат" сделан выбор (например, Вашингтон), выполняется запрос к источнику данных, ассоциированному с параметром "Город", используя в качестве параметра запроса штат, который был выбран в раскрывающемся перечне "Штат".
На фиг.3 представлена высокоуровневая блок-схема иллюстративной системы в соответствии с настоящим изобретением. Сервер 300 отчетов, содержащий процессор 310 отчетов и процессор 315 данных, взаимодействует с запрашивающим компьютером 320, как сформулировано выше. Сервер 300 отчетов осуществляет доступ к запоминающему устройству, такому как внешний источник 330 данных, на предмет различных значений и данных. В ответ на запрос на отчет, например, через запрашивающий компьютер 320 сервер 300 отчетов формирует отчет, как описано ниже. Также показано средство 325 для разработки/проектирования отчетов, которое используется для создания определений отчетов, как здесь описано.
Фиг.4 представляет графическую схему алгоритма иллюстративного способа обработки и формирования отчета в соответствии с настоящим изобретением. При этом рассматривается определение зависимостей в качестве этапа предварительной обработки. В частности, если значение по умолчанию и/или допустимые значения отдельного параметра отчета не могут быть оценены немедленно, определяется перечень их зависимостей. Это приводит к древовидной структуре, указывающей зависимости для ввода параметров. Например, предположим, что есть три параметра, определенных для отчета, Параметр 1, Параметр 2 и Параметр 3. Набор допустимых значений Параметра 2 основан на запросе, который использует значение Параметра 1. Значение по умолчанию Параметра 3 основано на запросе, который использует значение Параметра 1. Таким образом, когда метаданные (структурированные кодированные данные, описывающие другие данные) параметров извлечены для отчета, это будет указывать на то, что и Параметр 2, и Параметр 3 зависят от Параметра 1.
Сервер отчетов начинает обработку на этапе 400. На этапе 400 соответствующее описание отчета (например, описанное ниже, относительно фиг.5) извлекается из запоминающего устройства или формируется иным образом, причем оно включает в себя параметры, наборы данных и источники данных. Затем на этапе 410 оцениваются метаданные параметров. Эти метаданные содержат такую информацию как допустимые значения и значение по умолчанию параметров наряду с любыми значениями, которые обеспечил пользователь, как описано ниже.
Если на этапе 415 все параметры имеют значения, то на этапе 495 выполняется отчет. В противном случае, на этапе 420 для дальнейшей обработки выбираются параметры с неразрешенными зависимостями от других параметров. Параметры без каких-либо неразрешенных зависимостей обрабатываются с целью извлечения их допустимых значений и значений по умолчанию для воспроизведения приглашений для пользователя. Таким образом можно использовать значение, извлеченное или заданное пользователем для параметра, чтобы генерировать набор допустимых значений или значение по умолчанию для более поздних параметров в последовательности. Таким образом, набор допустимых значений и значение по умолчанию для параметра динамически предоставляются для пользователя, обеспечивая более эффективный и точный процесс.
На этапе 425 выбирается параметр, который не имеет каких-либо неразрешенных зависимостей. На этапе 430 определяется, имеется ли запрос на допустимые значения для параметра. Если это так, то допустимые значения извлекаются на этапе 435, используя внешний источник 450 данных. Таким образом, относительно приведенного выше примера, если параметр "штат" зависит от параметра "область", для которого пользователь предварительно выбрал "северо-западная", то допустимые значения, извлеченные на этапе 435, представляют собой штаты, находящиеся в северо-западной области Соединенных Штатов. Затем эти штаты будут предпочтительно предоставлены пользователю в раскрывающемся перечне, например, в качестве приглашения для выбора значений, которые нужно использовать во время формирования отчета.
Если же на этапе 430 нет запроса, заданного относительно допустимых значений, или после того как допустимые значения извлечены, на этапе 440 определяется, имеется ли запрос на значение по умолчанию. Если это так, то на этапе 445 из внешнего источника 450 данных извлекается значение по умолчанию. Если нет, или после того как значение по умолчанию извлечено, на этапе 460 определяется, имеются ли какие-либо оставшиеся с этапа 420 дополнительные параметры, которые не имеют неразрешенных зависимостей. Если же имеются оставшиеся дополнительные параметры, то на этапе 425 обработка продолжается со следующим параметром, подлежащим обработке.
После того как обработаны все параметры, которые не имеют каких-либо неразрешенных зависимостей, на этапе 470 пользователь делает запрос относительно значения (значений) (например, пользователь делает свой выбор из раскрывающихся перечней, обеспечиваемых в ответ на извлеченные допустимые значения и/или значения по умолчанию, например, согласно приведенному выше примеру, пользователь выбирает штат из штатов, представленных в раскрывающемся перечне штатов в северо-западной области), и обработка продолжается на этапе 410 с дополнительными параметрами, извлеченными и обрабатываемыми впоследствии, как сформулировано выше. Таким образом, пользователю представлен ряд раскрывающихся (или других типов) перечней, в которых он должен выделить значения, подлежащие использованию в последующем формировании отчета. Раскрывающиеся перечни представляют целевое подмножество всех вариантов выбора, и это подмножество содержит только предполагаемые ответы пользователю (например, если пользователь определил штаты в северо-западной области Соединенных Штатов, ему будет затем представлен только раскрывающийся перечень штатов в северо-западной области, а не перечень всех штатов в Соединенных Штатах; эти штаты в северо-западной области считаются целевым подмножеством всех вариантов выбора).
Фиг.5 представляет схему иллюстративного определения отчета в соответствии с настоящим изобретением. Отчет 500 в конечном счете содержит метаданные, такие как название, описание, автор и ширина и высота страницы. Отчет сформирован в соответствии с параметрами отчета 505 и наборами 540 данных, основанными на параметрах 570 запроса, дополнительно описанных ниже. Каждый параметр отчета может в необязательном порядке определять значение 510 по умолчанию и устанавливать допустимые значения 520. Значение 510 по умолчанию может быть либо определено через сохраненное постоянное значение 515, либо получено через ссылку 530 на набор данных. Точно так же допустимые значения 520 могут быть либо набором сохраненных постоянных значений 525 параметра, либо получены через ссылку 530 на набор данных.
Набор данных 540 формируется в соответствии с запросом 550 и моделью 560 данных. Запрос 550 включает в себя параметры 570 запроса наряду с моделью 560 данных, которая содержит различные поля 580. Ссылка 530 на набор данных содержит ссылки на поля в наборе данных. Значения этих полей используются в качестве значения по умолчанию (в случае определения значения по умолчанию посредством ссылки на набор данных) или в качестве пар «значение/метка» (в случае определения допустимых значений посредством ссылки на набор данных).
Параметры задаются в определении отчета. Типы параметров включают в себя параметры 505 отчета и параметры 570 запроса. Параметр 505 отчета представляет значение, обеспечиваемое для отчета 500 (или содержащееся в определении отчета), которое дает возможность отчету показать другой аспект данных. Параметр отчета обычно используется для обеспечения значений для запроса параметров. Дополнительные варианты использования параметров отчета включают в себя фильтрацию после запроса и изменение внешнего вида отчета в зависимости от выражений, используемых в отчете.
Параметр 570 запроса представляет значение, обеспечиваемое для запроса 550 или хранящейся процедуры в процессоре данных, который используется для возврата ее результатов. Возможности параметров запроса обычно определяются процессором данных (например, процессором 315 данных). Параметры запроса могут быть установлены на любое допустимое выражение, включая фиксированные значения или выражения, основанные на параметрах 505 отчета.
Параметры запроса предпочтительно передаются в процессор данных через интерфейсы API, которые поддерживает процессор данных. После того как выражение параметра запроса оценено, результат преобразуется в соответствующий тип данных и затем передается в процессор данных. Синтаксис параметра запроса предпочтительно зависит от используемого процессора данных. Например, сервер, работающий на основе языка структурированных запросов (SQL-сервер), может использовать символ вопросительного знака в операции SELECT (выбрать), например "SELECT * FROM EMPLOYEES WHERE LEVEL=?" (Выбрать из сотрудников, где уровень=?). Он также может использовать параметры, определяемые непосредственно в хранимой процедуре (например, "EXECUTE GetEmployee @EmployeeIDParm").
В таблице 1 показаны иллюстративные метаданные для параметров.
(Строка)
(булевый)
Фиг.6 представляет древовидную схему, которая является полезной в описании того, как иллюстративный элемент (элементы) управления представляется пользователю для каждого параметра отчета, ассоциированного с отчетом. Значение, основанное на запросе, определяется присутствием подэлемента зависимостей (Dependencies) в сочетании с отсутствием подэлемента значения (Value) в элементе параметра. Для подэлемента Value на этапе 600 определяется, основано ли его значение на запросе, жестко закодировано или не задано. Если значение основано на запросе, то помечается, что элемент управления основан на запросе, и отображается соответствующее сообщение, например, на этапе 605. Если значение жестко закодировано или не задано, то на этапе 610 определяется значение подэлемента типа (Type). Если тип представляет собой Boolean, то на этапе 615 обеспечиваются или отображаются иным образом индикаторы "истина" и "ложь" (например, в виде кнопок-переключателей). В противном случае, если тип представляет собой, например, DateTime, double (число с плавающей точкой двойной точности), integer (целое число) или String, то на этапе 620 определяется, обеспечены ли допустимые значения.
Если допустимые значения не обеспечены, то на этапе 625 определяется, обеспечен ли подэлемент зависимостей. Если нет, то если на этапе 640 имеется множество значений, то на этапе 655 предоставляется элемент управления, обеспечивающий редактирование множества строк. Если на этапе 640 множество значений не присутствует, то на этапе 650 предоставляется элемент управления, обеспечивающий редактирование одной строки. Если на этапе 625 присутствует подэлемент зависимостей, то на этапе 635 обеспечивается элемент управления в виде раскрывающегося перечня. Точно так же, если на этапе 620 обеспечиваются допустимые значения, то на этапе 630 обеспечивается элемент управления в виде раскрывающегося перечня. Относительно элемента управления в виде раскрывающегося перечня следует отметить, что если присутствует множество значений, то раскрывающийся перечень предпочтительно представляет множество вариантов выбора; в противном случае раскрывающийся перечень предпочтительно представляет единственный вариант выбора.
Фиг.7 представляет древовидную схему, которая является полезной в описании того, как инициализируется иллюстративный элемент управления и его значение по умолчанию для каждого параметра отчета, ассоциированного с отчетом. Элементы управления инициализируются, основываясь на ряде условий. Условия включают в себя следующие условия: существует ли перечень допустимых значений и значение, имеется ли допустимое значение и т.д. Следует отметить, что это дерево инициализации обычно применимо для параметров, которые не получены из запроса и не определены пользователем. На этапе 700 определяется, присутствует ли подэлемент ValidValues. Если нет, то на этапе 740 определяется подэлемент Value. Если значение подэлемента Value жестко закодировано, то это значение отображается на этапе 745. Если значение подэлемента Value не задано, то на этапе 750 определяется, представляет ли собой подэлемент Type тип DateTime. Если так, то на этапе 755 отображаются текущие дата и время; в противном случае на этапе 760 предоставляется пустая строка.
Если на этапе 700 присутствует подэлемент ValidValues, то на этапе 705 элемент управления заполняется допустимыми значениями. На этапе 710 извлекается значение подэлемента Value, и если значение не задано, то на этапе 715 предоставляется пустая строка. Если значение с этапа 710 жестко закодировано, то на этапе 720 определяется, находится ли это значение в предварительно определенном или в сформированном перечне элемента управления. Если это так, то на этапе 730 выбираются значение или значения; в противном случае на этапе 725 отображается пустая строка.
Когда выдается приглашение в отношении значения для параметра отчета, элемент управления (которым может быть элемент управления HTML, который используется для установки значения основан на ряде условий. Условия включают в себя следующие условия: откуда получено значение по умолчанию, тип данных параметра, является ли NULL (нуль) приемлемым значением, существует ли предварительно определенный перечень допустимых значений и т.д. Элемент (элементы) управления, который предоставлен пользователю для каждого параметра отчета, ассоциированного с отчетом, на основании этих условий предпочтительно сформирован так же, как сформулировано на фиг.6, начиная с этапа 610, как здесь описано.
Фиг.8 представляет древовидную схему, которая является полезной в описании того, как иллюстративный элемент (элементы) управления предоставляется пользователю для каждого параметра отчета, ассоциированного с отчетом, на основании условий. Элементы управления инициализируются на основании ряда условий. Условия включают в себя следующие условия: существует ли перечень допустимых значений и значение, имеется ли допустимое значение и т.д. Фиг.8 определяет, как инициализируется элемент управления и его значение по умолчанию для каждого параметра отчета, ассоциированного с отчетом, на основании этих условий. В некоторых случаях рассматривается, что значение подэлемента Value может быть NULL (нулевым).
На этапе 800 определяется, присутствует ли подэлемент ValidValues. Если подэлемент ValidValues не присутствует, то на этапе 850 определяется, присутствует ли подэлемент Value. Если подэлемент Value не присутствует, то на этапе 855 предоставляется пустая строка. Если подэлемент Value присутствует, то затем на этапе 860 определяется, является ли значение подэлемента Value жестко закодированным. Если это так, то затем на этапе 865 отображается значение. Если значение подэлемента Value не задано, то на этапе 870 определяется, представляет ли собой подэлемент Type тип DataTime. Если это так, то на этапе 875 отображаются текущие дата и время; в противном случае на этапе 880 предоставляется пустая строка.
Если на этапе 800 присутствует подэлемент ValidValues, то на этапе 805 элемент управления заполняется допустимыми значениями. На этапе 810 извлекается значение подэлемента Value, и если значение не присутствует, то на этапе 815 предоставляется пустое поле. Если значение с этапа 810 присутствует, то затем на этапе 820 определяется, является ли значение подэлемента Value жестко закодированным или не заданным. Если значение не задано, то на этапе 825 предоставляется пустая строка. Если значение подэлемента Value жестко закодировано, то на этапе 830 определяется, находится ли значение в предварительно определенном или сформированном перечне элемента управления. Если это так, то на этапе 840 выбираются значение или значения; в противном случае на этапе 835 отображается пустая строка.
Как упомянуто выше, хотя были описаны иллюстративные варианты осуществления настоящего изобретения в связи с различными вычислительными устройствами и сетевыми архитектурами, лежащие в основе концепции можно применять к любому вычислительному устройству или системе.
Различные методики, описанные здесь, можно реализовать в связи с аппаратными средствами или программным обеспечением или, где это подходит, в сочетании и с теми, и с другими. Таким образом, способы и устройство по настоящему изобретению или некоторые их аспекты или части могут принимать форму кода программы (то есть команд), воплощенного в материальных носителях, таких как гибкие диски, компакт-диски, жесткие диски или любой другой машиночитаемый носитель данных, причем, когда код программы загружается и выполняется машиной, например компьютером, машина становится устройством для применения изобретения. В случае выполнения кода программы на программируемых компьютерах вычислительное устройство будет в общем включать в себя процессор, запоминающее устройство, читаемое процессором (включая энергозависимую и энергонезависимую память и/или запоминающие элементы), по меньшей мере одно устройство ввода и по меньшей мере одно устройство вывода. Одна или более программ, которые могут использовать создание и/или выполнение аспектов моделей предметного программирования настоящего изобретения, например, с помощью использования API обработки данных и т.п., предпочтительно реализованы на процедурном или объектно-ориентированном языке программирования высокого уровня для осуществления связи с компьютерной системой. Однако при желании программа (программы) может быть реализована на языке ассемблера или машинном языке программирования. В любом случае язык может быть компилируемым или интерпретируемым языком и объединенным с аппаратными реализациями.
Способы и устройство по настоящему изобретению также могут быть осуществлены через обмен данными, воплощенный в форме кода программы, который передается по некоторой среде передачи данных, например по электрическим проводам или кабелям, через волоконно-оптические кабели или посредством любой другой формы передачи, причем, когда код программы принимается, загружается и выполняется машиной, такой как ЭСППЗУ, вентильная матрица, программируемое логическое устройство, клиентский компьютер и т.п., машина становится устройством для реализации изобретения. При реализации на универсальном процессоре код программы объединяется с процессором для обеспечения уникального устройства, которое работает с целью активизации функциональных возможностей настоящего изобретения. Помимо этого, любые способы хранения данных, используемые в связи с настоящим изобретением, могут представлять собой без исключений комбинацию аппаратных средств и программного обеспечения.
Хотя настоящее изобретение было описано в связи с предпочтительными вариантами осуществления по различным чертежам, должно быть понято, что можно использовать другие подобные варианты осуществления или можно делать видоизменения и дополнения к описанным вариантам осуществления для реализации той же функции настоящего изобретения, не отклоняясь от него. Поэтому настоящее изобретение не следует рассматривать как ограниченное каким-либо единственным вариантом осуществления, а напротив должно трактоваться во всей широте и объеме в соответствии с прилагаемой формулой изобретения.
Изобретение относится к области информационных технологий, в частности к способу ввода информации пользователем. Технический результат заключается в улучшении системы параметризации отчетов, достигается за счет способа выбора элементов пользователем, которые собирают и подают в сервер отчетов, который компонует определенный в общем отчет на индивидуальной основе в соответствии со значениями, введенными пользователем, и элементами, выбранными пользователем. Упорядоченный набор параметров отчета объявляют в определении отчета, и затем это определение параметров используют для управления выдачей приглашений пользователю и выполнения отчета. Поскольку значения параметров собраны в порядке следования, значение, извлеченное или заданное пользователем для одного параметра, может использоваться для формирования набора допустимых значений или значения по умолчанию более позднего параметра в последовательности. Параметризированные данные динамически представляют пользователю. После того как извлечены или заданы значения для всех параметров, сервер отчетов формирует отчет. 4 н. и 30 з.п. ф-лы, 8 ил.
(а) принимают определение отчета, имеющее упорядоченные наборы параметров,
(b) принимают множество значений для первого набора параметров одном из этих упорядоченных наборов,
(с) определяют набор зависимостей последующего уточняющего набора параметров и выбирают параметры, не имеющие неразрешенных зависимостей от других параметров, так, чтобы каждый выбираемый параметр в этом последующем наборе имел по меньшей мере одно допустимое значение или был зависимым от другого параметра, имеющего по меньшей мере одно допустимое значение,
(d) формируют для упомянутого последующего уточняющего набора параметров набор выбираемых значений, из которого пользователь может осуществлять выбор, причем данное формирование выполняют в качестве реакции на представление параметров, выбранных как не имеющие неразрешенных зависимостей, в качестве параметров запроса, которые передаются в опрашиваемую базу данных,
(е) принимают пользовательский выбор, идентифицирующий значение среди упомянутых выбираемых значений упомянутого набора, который был сформирован,
(f) повторяют этапы (а)-(е) до тех пор, пока не будут заданы все значения параметров для каждого набора параметров, и
(g) выполняют отчет на основе определения отчета, упомянутого множества принятых значений и значения, идентифицированного пользовательским выбором, после того как все значения параметров заданы для каждого набора параметров.
(а) прием определения отчета, имеющего упорядоченные наборы параметров,
(b) прием множества значений для первого набора параметров в одном из этих упорядоченных наборов,
(с) определение набора зависимостей последующего уточняющего набора параметров и осуществление выбора параметров, не имеющих неразрешенных зависимостей от других параметров, так, чтобы каждый выбираемый параметр в этом последующем наборе имел по меньшей мере одно допустимое значение или был зависимым от другого параметра, имеющего по меньшей мере одно допустимое значение, и формирование для упомянутого последующего уточняющего набора параметров набора выбираемых значений, из которого пользователь может осуществлять выбор, причем данное формирование выполняется в качестве реакции на представление параметров, выбранных как не имеющие неразрешенных зависимостей, в качестве параметров запроса,
(d) прием пользовательского выбора, идентифицирующего значение среди упомянутых выбираемых значений упомянутого набора, который был сформирован,
(е) повторение этапов (a)-(d) до тех пор, пока не будут заданы все значения параметров для каждого набора параметров, и
(f) выполнение отчета на основании определения отчета, упомянутого множества принятых значений и значения, идентифицированного пользовательским выбором, после того как все значения параметров заданы для каждого набора параметров.
сервер отчетов, подсоединенный к запоминающему устройству и содержащий процессор отчетов и процессор данных, который (а) принимает определение отчета, имеющее упорядоченные наборы параметров, (b) принимает множество значений для первого набора параметров в одном из этих упорядоченных наборов, (с) определяет набор зависимостей последующего уточняющего набора параметров и выбирают параметры, не имеющие неразрешенных зависимостей от других параметров, так, чтобы каждый выбираемый параметр в этом последующем наборе имел по меньшей мере одно допустимое значение или был зависимым от другого параметра, имеющего по меньшей мере одно допустимое значение, (d) формирует для упомянутого последующего уточняющего набора параметров набор выбираемых значений, из которого пользователь может осуществлять выбор, причем данное формирование выполняется в качестве реакции на представление параметров, выбранных как не имеющие неразрешенных зависимостей, в качестве параметров запроса, которые передаются в опрашиваемую базу данных, (е) принимает пользовательский выбор, идентифицирующий значение среди упомянутых выбираемых значений упомянутого набора, который был сформирован, (f) повторяет этапы (а)-(е) до тех пор, пока не будут заданы все значения параметров для каждого набора параметров, и (g) выполняет отчет на основе определения отчета, упомянутого множества принятых значений и значения, идентифицированного пользовательским выбором, после того как все значения параметров заданы для каждого набора параметров.
(а) принимают определение отчета, включающее в себя упорядоченный набор параметров, организованный так, что каждый последующий параметр данного упорядоченного набора дополнительно уточняет предыдущий параметр упомянутого упорядоченного набора,
(b) оценивают метаданные, идентифицирующие ассоциированные значения, включающие в себя допустимые значения и значения по умолчанию, которые ассоциированы с упомянутыми параметрами,
(с) идентифицируют один параметр из упомянутого упорядоченного набора, который не имеет ассоциированного с ним значения,
(d) определяют набор зависимостей упомянутого упорядоченного набора,
(е) выбирают из упомянутого упорядоченного набора параметров параметр, не имеющий неразрешенных зависимостей от других параметров, так, чтобы выбранный параметр имел по меньшей мере одно допустимое значение или был зависимым от другого параметра, имеющего по меньшей мере одно допустимое значение,
(f) предоставляют этот параметр, не имеющий неразрешенных зависимостей, в опрашиваемую базу данных в качестве параметра запроса,
(g) формируют набор выбираемых значений для упомянутого одного параметра, который не имеет ассоциированного с ним значения, причем данное формирование выполняют в качестве реакции на предоставление упомянутого параметра, не имеющего неразрешенных зависимостей, в качестве параметра запроса, при этом упомянутый один параметр, который не имеет ассоциированного с ним значения, зависит от упомянутого параметра, не имеющего неразрешенных зависимостей,
(h) отображают упомянутый набор выбираемых значений так, чтобы пользователь мог выбрать одно из этих выбираемых значений для ассоциирования с упомянутым одним параметром, который не имеет ассоциированного с ним значения.
СИСТЕМА ТЕСТИРОВАНИЯ "ТЕЛЕТЕСТИНГ" | 1998 |
|
RU2186423C2 |
US 5630069, 13.05.1997 | |||
СИСТЕМА ПИТАНИЯ КАРБЮРАТОРНОГО ДВИГАТЕЛЯ ВНУТРЕННЕГО СГОРАНИЯ | 1991 |
|
RU2006647C1 |
ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА ДЛЯ УПРАВЛЕНИЯ ДАННЫМИ И СПОСОБ ЭКСПЛУАТАЦИИ УПОМЯНУТОЙ СИСТЕМЫ | 1996 |
|
RU2191428C2 |
Авторы
Даты
2008-12-10—Публикация
2004-02-11—Подача