US7296232B1 - Calendar control for selection of time periods to filter data - Google Patents

Calendar control for selection of time periods to filter data Download PDF

Info

Publication number
US7296232B1
US7296232B1 US10/113,240 US11324002A US7296232B1 US 7296232 B1 US7296232 B1 US 7296232B1 US 11324002 A US11324002 A US 11324002A US 7296232 B1 US7296232 B1 US 7296232B1
Authority
US
United States
Prior art keywords
time periods
user interface
database
calendar
selection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related, expires
Application number
US10/113,240
Inventor
Brian Burdick
Abhijit Kundu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ServiceNow Inc
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Priority to US10/113,240 priority Critical patent/US7296232B1/en
Assigned to MICROSOFT CORPORATION reassignment MICROSOFT CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BURDICK, BRIAN, KUNDU, ABHIJIT
Application granted granted Critical
Publication of US7296232B1 publication Critical patent/US7296232B1/en
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC reassignment MICROSOFT TECHNOLOGY LICENSING, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MICROSOFT CORPORATION
Assigned to SERVICENOW, INC. reassignment SERVICENOW, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MICROSOFT TECHNOLOGY LICENSING, LLC
Assigned to SERVICENOW, INC. reassignment SERVICENOW, INC. CORRECTIVE ASSIGNMENT TO CORRECT THE RECORDAL TO REMOVE INADVERTENTLY RECOREDED PROPERTIES SHOWN IN ATTACHED SHEET PREVIOUSLY RECORDED AT REEL: 047681 FRAME: 0916. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Assignors: MICROSOFT TECHNOLOGY LICENSING, LLC
Adjusted expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/109Time management, e.g. calendars, reminders, meetings or time accounting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2315Optimistic concurrency control
    • G06F16/2322Optimistic concurrency control using timestamps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation

Definitions

  • the present invention relates to the field of data filtering.
  • this invention relates generally to filtering data with a calendar user interface.
  • Databases storing large amounts of data are difficult to navigate.
  • Some prior art database navigation techniques and data filtering techniques require large amounts of data to be downloaded.
  • a calendar user interface is desired to simplify the navigation and reduce the amount of data downloaded during filtering.
  • Some prior art calendar user interfaces for filtering data lack the ability to enable or disable a range of dates for user selection even though most operations are valid only for a specific time limit. Further, an entire month cannot be selected by a single user selection in some prior art calendar user interfaces. In these interfaces, a user needs to individually select each day in the month to select the entire month. Similarly, some prior art user interfaces accept an unlimited quantity of selections from the user for filtering data. A large quantity of selections returns a large data set, thereby defeating the filtering attempt.
  • calendar user interfaces require dates to be entered in a specific format. For example, some calendar user interfaces require date entry in the form MM/DD/YYYY while other calendar user interfaces require date entry in the form DD/MM/YYYY.
  • different calendar user interfaces may reference the months of the year by different names or abbreviations.
  • Calendar operations such as scheduling a job, an appointment, or automatically running a report each month with the same dates may need dates specified relative to a current date.
  • the prior art calendar user interfaces lack the capability to allow a user to specify relative dates. For example, these prior art user interfaces do not provide the user the ability to specify the first week of each month, the first month of each year, or the first day of each month.
  • the invention is directed to filtering data in a database with a calendar user interface.
  • the invention returns data associated with time periods selected by the user.
  • the calendar user interface provides options to the user to individually select a range or non-contiguous time periods and to specify time periods relative to a current time period where the relative time periods are internally converted to fixed time periods.
  • the invention internally converts all selected time periods into a common format before performing operations improving its adaptability.
  • the invention presents a user with a valid range of time periods prior to receiving any selections from the user.
  • the invention also limits the number of selections input by the user prior to filtering data to limit the amount of data retrieved from the database.
  • a method processes data stored in a database.
  • the method includes displaying a calendar user interface to a user.
  • the calendar user interface defines a plurality of time periods. At least one of the time periods has corresponding data stored in the database.
  • the method receives from the user at least one selection of a plurality of the time periods. The selection includes non-contiguous time periods.
  • the method updates the displayed calendar user interface in response to the received selection to indicate the selected time periods.
  • the method further retrieves the data associated with the selected time periods from the database in response to a user command for processing.
  • a method processes data stored in a database.
  • the method includes displaying a calendar user interface to a user.
  • the calendar user interface defines a plurality of time periods. At least one of the time periods has corresponding data stored in the database.
  • the method receives from the user at least one selection of a plurality of the time periods. The selection specifies the selected time periods relative to a current time period.
  • the method updates the displayed calendar user interface in response to the received selection to indicate the selected time periods.
  • the method further retrieves the data associated with the selected time periods from the database in response to a user command for processing.
  • a method processes data stored in a database in a computer system having a graphical user interface including a display and a user interface selection device.
  • the method includes receiving from a user at least one property value associated with a calendar user interface.
  • the calendar user interface defines a plurality of time periods. At least one of the time periods has corresponding data stored in the database.
  • the method displays the calendar user interface to a user on the display in accordance with the received property value.
  • the method receives from the user one or more selections corresponding to a plurality of the time periods via the user interface selection device.
  • the selections include non-contiguous time periods.
  • the method alters the calendar user interface on the display in response to the received selections to indicate the selected time periods.
  • the method receives an execution signal from the user via the user interface selection device and retrieves the data associated with the selected time periods from the database for processing in response to the received execution signal.
  • a method processes data stored in a database in a computer system having a graphical user interface including a display and a user interface selection device.
  • the method includes receiving from a user at least one property value associated with a calendar user interface.
  • the calendar user interface defines a plurality of time periods. At least one of the time periods has corresponding data stored in the database.
  • the method displays the calendar user interface to a user on the display in accordance with the received property value.
  • the method receives from the user one or more selections corresponding to a plurality of the time periods via the user interface selection device.
  • the user specifies the selected time periods relative to a current time period.
  • the method alters the calendar user interface on the display in response to the received selections to indicate the selected time periods.
  • the method receives an execution signal from the user via the user interface selection device and retrieves the data associated with the selected time periods from the database for processing in response to the received execution signal.
  • a computer-readable medium has computer-executable components for processing data stored in a database.
  • the components include a view component, an input component, a verification component, and an execution component.
  • the view component displays a calendar user interface to a user.
  • the calendar user interface defines a plurality of time periods. At least one of the time periods has corresponding data stored in the database.
  • the input component receives from the user at least one selection of a plurality of the time periods. The selection includes non-contiguous time periods and/or specifies the selected time periods relative to a current time period.
  • the verification component updates the displayed calendar user interface in response to the received selection to indicate the selected time periods.
  • the execution component retrieves the data associated with the selected time periods from the database for processing in response to a user command.
  • a computer-readable medium stores a data structure for processing data stored in a database.
  • the data structure includes a view field, an input field, a verification field, and an execution field.
  • the view field stores a calendar user interface for display to the user.
  • the calendar user interface represents a plurality of time periods. At least one of the time periods has corresponding data stored in the database.
  • the input field stores at least one selection of a plurality of the time periods. The selection is received from the user. The selection represents non-contiguous time periods and/or represents the selected time periods relative to a current time period.
  • the verification field stores updates to the calendar user interface stored in the view field. The updates are displayed in the calendar user interface in response to the selection received from the user and stored in the input field. The updates are displayed in the calendar user interface to indicate the selected time periods to the user.
  • the execution field stores the data associated with the selected time periods. The data is retrieved from the database for processing in response to a user command.
  • a display device has rendered thereon a calendar user interface.
  • the calendar user interface includes a selected range of time periods where at least one of the time periods has corresponding data stored in a database.
  • the calendar user interface also includes at least one selection of a plurality of time periods within the selected range of time periods where the selection includes non-contiguous time periods.
  • the calendar user interface also includes a user command for retrieving, from the database, the data associated with the selection for processing.
  • the invention may comprise various other methods and apparatuses.
  • FIG. 1A is an exemplary embodiment of a day selector user interface displaying selected, contiguous time periods.
  • FIG. 1B is an exemplary embodiment of a day selector user interface displaying selected, non-contiguous time periods.
  • FIG. 2A is an exemplary embodiment of a month selector user interface displaying selected, non-contiguous time periods.
  • FIG. 2B is an exemplary embodiment of a month selector user interface displaying selected, contiguous time periods.
  • FIG. 3 is an exemplary embodiment of a relative date selector user interface.
  • FIG. 4 is a flow chart of one embodiment of the invention illustrating a method for filtering data with a calendar user interface.
  • FIG. 5 is a flow chart of another embodiment of the invention illustrating a method for filtering data with a calendar user interface.
  • FIG. 6 is a block diagram of one embodiment of the invention illustrating an exemplary computer-readable medium on which the invention may be stored.
  • FIG. 7 is a block diagram of one embodiment of the invention illustrating one example of a suitable computing system environment on which the invention may be implemented.
  • Appendix A includes a list of exemplary events and exposed properties in the invention including implementation details.
  • the invention provides improved data navigation through a control for a calendar user interface (“the calendar UI”) to retrieve or filter a data set stored in a database.
  • the calendar UI a calendar user interface
  • the statistics for web page access are stored in a database and associated with a particular time period such as an hour, day, week, month, or year. Each datum in the database is associated with one or more dates.
  • the invention receives one or more date selections from the user via the calendar UI and returns a data set representative of the web page hits for the selected dates. By selecting dates via the calendar UI, the invention maintains the selections and retrieves the data set associated with the selections in response to a user command.
  • the data in the database could be any data associated with one or more dates including, but not limited to, web site access statistics, financial markets data, company reports, sales data, etc.
  • a computer system for processing the data executes software routines to provide the calendar UI of the invention.
  • the UI which is based on a hypertext markup language (HTML), presents options to the user to individually select one or more days (a range of days or non-contiguous days) or individually select one or more entire months (a range of months or non-contiguous months).
  • the calendar control provided by the UI also allows the user to specify a relative date range (or any other rolling interval) and it internally converts these relative dates to fixed dates. For example, the invention converts a date selection of “the last N days” to “day X to day Y.” Similarly, the invention converts a date selection of “the last N months” to “month X to month Y.”
  • the invention exposes properties of the software routines that are configurable by a software developer or other user.
  • the software routines of the invention include properties through which the valid date range can be specified and enabled for selection.
  • the calendar UI of the invention enables the user to easily select the grain of data returned by this query.
  • the invention also provides configurable properties to enable/disable tabs that provide selection for days/months or relative dates.
  • the invention exposes properties that can be used to specify the maximum number of days or months that can be allowed to be selected by the user. Any selections over the limit are not allowed. See Appendix A for a discussion of exemplary properties configurable by the software developer or other user.
  • FIGS. 1-3 illustrate aspects of an exemplary calendar UI.
  • the UI may display dates with various background colors to indicate different conditions although the present drawings are in black and white. For example, dates with a gray background are disabled, dates with a navy background are selected, and dates with an ivory background are unselected.
  • buttons along the bottom of each calendar UI read “ok,” “cancel,” and “help.”
  • Tabs along the top of each calendar UI read “daily,” “monthly,” and “relative,” reflecting the selector UIs available to the user. Examples of these selector UIs are in FIGS. 1-3 . When the user selects one of the tabs, the associated selector UI appears to the user on the display.
  • a display device such as monitor 188 described with reference to FIG. 7 renders a calendar user interface such as illustrated in FIGS. 1-3 .
  • the calendar user interface includes a selected range of time periods where at least one of the time periods has corresponding data stored in a database.
  • the calendar user interface also includes at least one selection of a plurality of time periods within the selected range of time periods where the selection includes non-contiguous time periods.
  • the calendar user interface also includes a user command for retrieving, from the database, the data associated with the selection for processing. In response to selection of a daily tab by the user, the calendar user interface displays each day in the selected range of time periods in the calendar user interface.
  • the calendar user interface In response to selection of a monthly tab by the user, the calendar user interface displays each month in the selected range of time periods in the calendar user interface. In response to selection of a relative tab by the user, the calendar user interface displays a selected number of days or months specified relative to a current time period.
  • FIGS. 1A and 1B exemplary embodiments of a day selector UI display selected time periods.
  • the calendar UIs for both FIG. 1A and FIG. 1B show all the days in May 2001 and June 2001, with May 1-26 and June 29-30 shown as disabled for selection as indicated by the crosshatch background of those dates.
  • May 27 through June 23 are unselected, while the contiguous date range June 24-28 has been selected as indicated by the crosshatch background of those dates.
  • the backgrounds of disabled dates and selected dates may be colors such as gray and navy, respectively.
  • FIG. 1B the non-contiguous dates of May 28 and May 30, June 4-6, June 13, June 20, June 22, and June 25 have been selected as indicated by the crosshatch background of those dates.
  • the remaining dates displayed in FIG. 1B are unselected.
  • exemplary embodiments of a month selector UI displays selected time periods.
  • the calendar UIs for both FIG. 2A and FIG. 2B show all the months in 2000 and 2001, with all of 2000 and June 2001 through December 2001 shown as disabled for selection as indicated by the crosshatch background of those months.
  • the non-contiguous months of February 2001 and May 2001 have been selected as indicated by the crosshatch background of those months.
  • the remaining months displayed in FIG. 2A are unselected.
  • the months January 2001 through March 2001 are unselected, while the contiguous date range April 2001 through May 2001 has been selected as indicated by the crosshatch background of those months.
  • the calendar UIs of FIGS. 1 and 2 allow specific selection of dates with the control key on a keyboard and allow range selection with the shift key or by mouse drag which are features included in some computer environments.
  • an exemplary embodiment of a relative date selector user interface displays date ranges for selection by the user.
  • the selection specifies the selected dates or time periods relative to a current date or time period.
  • the user can select the latest X days or the latest X months, where X is an integer.
  • a user can request to view data associated with the “latest” or “last” two days.
  • the terms “latest” and “last” are converted internally by the invention to a fixed date for generating a query to return the appropriate data set.
  • the user may specify dates relative to the current date when automatically running a report with the same date criteria but for different months.
  • the calendar UI of the invention is not limited to the exemplary UIs of FIGS. 1-3 .
  • the calendar UI of the invention is any UI that allows the user to select any number of any time periods to advantageously select the grain of the data to be processed as a function of the time period.
  • the time periods selectable by the user of the invention may include any time period including, but not limited to, years, months, days, hours, and minutes, and seconds.
  • a flow chart illustrates a method of the invention for processing data stored in a database where the stored data corresponds to one or more time periods.
  • a computer or other computing device executes software of the invention stored on a computer-readable medium to access the database.
  • the computer executes software routines of the invention to provide the calendar UI.
  • the database may be one or more databases local to the computer or remotely accessible by the computer via a network such as the Internet.
  • implementation of the software routines of the invention in various ways with various languages are within the scope of the invention.
  • the software routines may be implemented as discrete components, a single application program, object-oriented code, or as an HTML component.
  • a software routine of the invention receives at least one property value associated with the calendar UI from the user at 402 via a user interface selection device or other input device such as described with reference to FIG. 7 .
  • the calendar UI is displayed by a software routine of the invention to the user at 404 in accordance with the received property value via a display such as described with reference to FIG. 7 . If a software routine of the invention determines the property value to be invalid, the invention displays an error message to the user. See Appendix A for a list of exemplary events and exposed properties in the invention including implementation details.
  • the calendar UI defines one or more time periods.
  • the invention receives from the user at least one selection of a plurality of the time periods at 406 .
  • the invention disables further selection by the user if the quantity of selected time periods exceeds a threshold value to limit the amount of data retrieved or downloaded by the user.
  • the invention constrains the selection to implement cost control. For example, the invention limits the maximum quantity of dates that can be selected to avoid generating a query that will return the entire data set. Further, the invention may limit the maximum result set to be returned by the query. The user can specify these constraints via properties associated with the invention.
  • the selection may include non-contiguous or contiguous time periods.
  • the user can select a time period by specifying the time period relative to a current time period. For example, in FIG. 3 , the user can specify the latest X days or the latest X months, where X is an integer value.
  • the invention updates, alters, or otherwise changes the displayed calendar user interface at 408 in response to the received selection to indicate the selected time periods to the user.
  • updating the displayed calendar user interface includes modifying a color associated with the selected time periods in the calendar UI. For example, as in FIGS. 1-3 , the invention may change the background color of each selected date to indicate the selected status of the date.
  • the user After the user has completed date selection, the user sends an execution signal or otherwise issues a command to the invention at 410 to retrieve the data associated with the selected dates.
  • the invention may include an “OK” button which is selected by the user after completing date selection.
  • the invention retrieves the data associated with the selected time periods from the database at 412 in response to the user signal or command.
  • the invention is implemented in a computer system having a graphical user interface including a display and a user interface selection device or other input device.
  • a graphical user interface including a display and a user interface selection device or other input device.
  • One or more computer readable media have computer-executable instructions for performing the operations illustrated in FIG. 4 .
  • FIG. 5 a flow chart illustrates another aspect of the invention for filtering data with a calendar user interface. Expanding on FIG. 4 , FIG. 5 illustrates functionality of the invention allowing the user to select a granularity of the UI at 502 . In the exemplary flow chart of FIG. 5 , the granularity is a day, month, or relative date. In addition, FIG. 5 illustrates functionality of the invention allowing the user to enable multiple selections at 504 . If multiple selections are disabled, the user can select only a single contiguous date range at 506 . If multiple selections are enabled, the user can select multiple, non-contiguous date ranges at 508 .
  • a computer-readable medium 602 has computer-executable components for processing data stored in a database.
  • the data corresponds to one or more time periods.
  • the components include a view component 604 , an input component 606 , a verification component 608 , and an execution component 610 .
  • the computer executing the view component 604 displays a calendar user interface to a user.
  • the calendar user interface defines one or more time periods. Using conventional input devices, the user selects from the UI.
  • the input component 606 receives from the user at least one selection of a plurality of the time periods. The selection includes non-contiguous time periods. Alternatively, the selection specifies the selected time periods relative to a current time period.
  • the verification component 608 updates the displayed calendar user interface in response to the received selection to indicate the selected time periods.
  • the execution component 610 retrieves the data associated with the selected time periods from the database in response to a user command.
  • the window control of the invention is based on a hypertext markup language.
  • the control uses the popup object of any browser to display the actual control thus not actually consuming screen space by overlapping a window over existing text when it is activated and hiding itself as soon as the user changes the focus.
  • the popup objects are part of any standard browser installation so a user need not download any new component to enable the control except a component file embodying the invention which exposes the object model to the browser.
  • the invention is developed using Java as a language and exposing it as an applet that would run on any browser.
  • the data in the database is organized or aggregated into tables in another embodiment.
  • the invention dynamically generates a query based on the selected dates and submits the generated query to the appropriate database table.
  • the query returns the relevant data set.
  • the query is any relational database query (e.g., SQL) operating on any relational database.
  • SQL relational database query
  • the data is organized according to months.
  • an appropriate query is generated and sent to a daily data table. In the daily table, the data is organized according to days.
  • the computer-readable medium 602 stores a data structure for processing data stored in a database.
  • the data structure includes fields corresponding to the components illustrated in FIG. 6 . That is, a view field corresponds to the view component 604 , an input field corresponds to the input component 606 , a verification field corresponds to the verification component 608 , and an execution field corresponds to the execution component 610 .
  • the view field stores a calendar user interface for display to the user.
  • the calendar user interface represents a plurality of time periods where at least one of the time periods corresponds to data stored in the database.
  • the input field stores at least one selection received from the user of a plurality of the time periods.
  • the selection represents non-contiguous time periods and/or represents the selected time periods relative to a current time period.
  • the verification field stores updates to the calendar user interface stored in the view field. The updates are displayed in the calendar user interface in response to the selection received from the user and stored in the input field. The updates are displayed in the calendar user interface to indicate the selected time periods to the user.
  • the execution field stores the data associated with the selected time periods.
  • a computer associated with the user such as computer 130 (see FIG. 7 ) retrieves the data from the database for processing in response to a user command.
  • the user command may be the user selecting an “ok” button associated with the calendar user interface.
  • computer 130 retrieves data corresponding to statistics for web site access from the database and displays the retrieved data to the user.
  • FIG. 7 shows one example of a general purpose computing device in the form of a computer 130 .
  • a computer such as the computer 130 is suitable for use in the other figures illustrated and described herein.
  • Computer 130 has one or more processors or processing units 132 and a system memory 134 .
  • a system bus 136 couples various system components including the system memory 134 to the processors 132 .
  • the bus 136 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures.
  • such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as Mezzanine bus.
  • ISA Industry Standard Architecture
  • MCA Micro Channel Architecture
  • EISA Enhanced ISA
  • VESA Video Electronics Standards Association
  • PCI Peripheral Component Interconnect
  • the computer 130 typically has at least some form of computer readable media.
  • Computer readable media which include both volatile and nonvolatile media, removable and non-removable media, may be any available medium that can be accessed by computer 130 .
  • Computer readable media comprise computer storage media and communication media.
  • Computer storage media include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
  • computer storage media include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and that can be accessed by computer 130 .
  • Communication media typically embody computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and include any information delivery media. Those skilled in the art are familiar with the modulated data signal, which has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
  • Wired media such as a wired network or direct-wired connection
  • wireless media such as acoustic, RF, infrared, and other wireless media
  • communication media such as acoustic, RF, infrared, and other wireless media
  • the system memory 134 includes computer storage media in the form of removable and/or non-removable, volatile and/or nonvolatile memory.
  • system memory 134 includes read only memory (ROM) 138 and random access memory (RAM) 140 .
  • ROM read only memory
  • RAM random access memory
  • BIOS basic input/output system
  • RAM 140 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 132 .
  • FIG. 7 illustrates operating system 144 , application programs 146 , other program modules 148 , and program data 150 .
  • the computer 130 may also include other removable/non-removable, volatile/nonvolatile computer storage media.
  • FIG. 7 illustrates a hard disk drive 154 that reads from or writes to non-removable, nonvolatile magnetic media.
  • FIG. 7 also shows a magnetic disk drive 156 that reads from or writes to a removable, nonvolatile magnetic disk 158 , and an optical disk drive 160 that reads from or writes to a removable, nonvolatile optical disk 162 such as a CD-ROM or other optical media.
  • removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like.
  • the hard disk drive 154 , and magnetic disk drive 156 and optical disk drive 160 are typically connected to the system bus 136 by a non-volatile memory interface, such as interface 166 .
  • the drives or other mass storage devices and their associated computer storage media discussed above and illustrated in FIG. 7 provide storage of computer readable instructions, data structures, program modules and other data for the computer 130 .
  • hard disk drive 154 is illustrated as storing operating system 170 , application programs 172 , other program modules 174 , and program data 176 .
  • operating system 170 application programs 172 , other program modules 174 , and program data 176 .
  • these components can either be the same as or different from operating system 144 , application programs 146 , other program modules 148 , and program data 150 .
  • Operating system 170 , application programs 172 , other program modules 174 , and program data 176 are given different numbers here to illustrate that, at a minimum, they are different copies.
  • a user may enter commands and information into computer 130 through input devices or user interface selection devices such as a keyboard 180 and a pointing device 182 (e.g., a mouse, trackball, pen, or touch pad).
  • Other input devices may include a microphone, joystick, game pad, satellite dish, scanner, or the like.
  • processing unit 132 through a user input interface 184 that is coupled to system bus 136 , but may be connected by other interface and bus structures, such as a parallel port, game port, or a Universal Serial Bus (USB).
  • a monitor 188 or other type of display device is also connected to system bus 136 via an interface, such as a video interface 190 .
  • computers often include other peripheral output devices (not shown) such as a printer and speakers, which may be connected through an output peripheral interface (not shown).
  • the computer 130 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 194 .
  • the remote computer 194 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to computer 130 .
  • the logical connections depicted in FIG. 7 include a local area network (LAN) 196 and a wide area network (WAN) 198 , but may also include other networks.
  • LAN local area network
  • WAN wide area network
  • Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and global computer networks (e.g., the Internet).
  • computer 130 When used in a local area networking environment, computer 130 is connected to the LAN 196 through a network interface or adapter 186 . When used in a wide area networking environment, computer 130 typically includes a modem 178 or other means for establishing communications over the WAN 198 , such as the Internet.
  • the modem 178 which may be internal or external, is connected to system bus 136 via the user input interface 184 , or other appropriate mechanism.
  • program modules depicted relative to computer 130 may be stored in a remote memory storage device (not shown).
  • FIG. 7 illustrates remote application programs 192 as residing on the memory device. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
  • the data processors of computer 130 are programmed by means of instructions stored at different times in the various computer-readable storage media of the computer.
  • Programs and operating systems are typically distributed, for example, on floppy disks or CD-ROMs. From there, they are installed or loaded into the secondary memory of a computer. At execution, they are loaded at least partially into the computer's primary electronic memory.
  • the invention described herein includes these and other various types of computer-readable storage media when such media contain instructions or programs for implementing the steps described below in conjunction with a microprocessor or other data processor.
  • the invention also includes the computer itself when programmed according to the methods and techniques described herein.
  • the invention is operational with numerous other general purpose or special purpose computing system environments or configurations.
  • the computing system environment is not intended to suggest any limitation as to the scope of use or functionality of the invention.
  • the computing system environment should not be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment.
  • Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
  • the invention may be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices.
  • program modules include, but are not limited to, routines, programs, objects, components, and data structures that perform particular tasks or implement particular abstract data types.
  • the invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network.
  • program modules may be located in both local and remote computer storage media including memory storage devices.
  • computer 130 executes computer-executable instructions such as those illustrated in FIG. 6 to process data stored in a database.
  • computer 130 executes computer-executable instructions to receive from a user at least one property value associated with a calendar user interface.
  • the calendar user interface defines a plurality of time periods where at least one of the time periods has corresponding data stored in the database.
  • the computer-executable instructions display the calendar user interface to a user on the display in accordance with the received property value and receive from the user one or more selections corresponding to a plurality of the time periods via the user interface selection device.
  • the selections include non-contiguous time periods.
  • the user specifies the selected time periods relative to a current time period.
  • the computer-executable instructions alter the calendar user interface on the display to indicate the selected time periods.
  • the computer-executable instructions receive an execution signal from the user via the user interface selection device and retrieve the data associated with the selected time periods from the database for processing.
  • An exposed event entitled “Onchange” is a way for the consumer to determine whether the state of the calendar control has been changed by the user either selecting or unselecting any dates on the calendar control. On any of these operations, the control updates some of its exposed properties.
  • a software developer or other user can write an event handler to get the current state of properties like Value, Info, and Grain (see below). This event can also be further extended to do any custom action for the client based on the current values of these and other properties.
  • a write-only TypeAllowed method takes a series of name/value pairs separated by a semi-colon to identify which types of dates should be allowed in the calendar.
  • a typical value for this property may appear as the following.
  • the calendar internally uses the Name for identifying the current Grain of selection and uses the value to display as a text on the Calendar tab. Based on the TypeAllowed property, the calendar will either enable or disable the options to allow users to select days, months or relative dates.
  • a write-only Multiple property is a Boolean property that defines whether the user is allowed to select multiple dates. Some operations can be valid for a single date in which cases setting this property as false will prevent the user from any more selections. If the user selects another date, the previous selected date is removed from the selection and current selection is updated.
  • a write-only StartDate property takes a valid date which defines the starting date for the range of dates that should be enabled for user selection.
  • a write-only EndDate property takes a valid date which defines the ending date for the range of dates enabled for user selections.
  • a write-only StartMonth property takes a valid date defining the starting month for the range of months that should be enabled for user selection.
  • a write-only EndMonth property takes a valid date defining the ending month for the range of months that will be enabled for user selection.
  • a write-only MaxDays property defines the maximum number of days a user is allowed to select on the calendar.
  • the property value should be set based on the performance of the backend server. If the backend server is not able to handle large amounts of dates, this property should be set with a small number. For example, setting this property with “10” will allow the user to select a maximum of ten continuous or individual days.
  • a write-only MaxMonths property defines the maximum amount of months a user is allowed to select on the calendar. The property value should be set based on the performance of the backend server. If the backend server is not able to handle large amounts of dates, this property should be set with a small number. For example, setting this property with a value of “5” will allow the user to select a maximum of five continuous or individual months.
  • the exemplary calendar control exposes three properties which are readable and writeable by the software developer or other user to both set an initial list of selected dates as well to get the current list of dates selected via the calendar UI.
  • a read-write Value property is a set of dates separated by semicolon. Based on a Grain property value (see below), the calendar control will interpret the Value property value as a selected set of days or months.
  • a read-write Info property formats the current date selections and returns the current minimum date and the maximum month selected along with the grain in a descriptive format that can be displayed as informative text to the user.

Abstract

The invention is directed to filtering data in a database with a calendar user interface. The invention returns data associated with time periods selected by the user. In particular, the calendar user interface provides options to the user to individually select a range or non-contiguous time periods and to specify time periods relative to a current time period where the relative time periods are internally converted to fixed time periods.

Description

TECHNICAL FIELD
The present invention relates to the field of data filtering. In particular, this invention relates generally to filtering data with a calendar user interface.
BACKGROUND OF THE INVENTION
Databases storing large amounts of data (e.g., a terabyte of data) are difficult to navigate. Some prior art database navigation techniques and data filtering techniques require large amounts of data to be downloaded. For databases in which the data corresponds to one or more dates, a calendar user interface is desired to simplify the navigation and reduce the amount of data downloaded during filtering.
Some prior art calendar user interfaces for filtering data lack the ability to enable or disable a range of dates for user selection even though most operations are valid only for a specific time limit. Further, an entire month cannot be selected by a single user selection in some prior art calendar user interfaces. In these interfaces, a user needs to individually select each day in the month to select the entire month. Similarly, some prior art user interfaces accept an unlimited quantity of selections from the user for filtering data. A large quantity of selections returns a large data set, thereby defeating the filtering attempt.
Some prior art user interfaces require dates to be entered in a specific format. For example, some calendar user interfaces require date entry in the form MM/DD/YYYY while other calendar user interfaces require date entry in the form DD/MM/YYYY. In addition, different calendar user interfaces may reference the months of the year by different names or abbreviations.
Calendar operations such as scheduling a job, an appointment, or automatically running a report each month with the same dates may need dates specified relative to a current date. The prior art calendar user interfaces lack the capability to allow a user to specify relative dates. For example, these prior art user interfaces do not provide the user the ability to specify the first week of each month, the first month of each year, or the first day of each month.
Although some existing calendar user interfaces are based on a hypertext markup language (HTML), they fail to provide options to the user to individually select non-contiguous days, individually select entire months, or specify dates relatively and have the relative dates converted internally to fixed dates. In other words, the user is often forced to sift through unwanted data.
For these reasons, a system for filtering data using a calendar user interface is desired to address one or more of these and other disadvantages.
SUMMARY OF THE INVENTION
The invention is directed to filtering data in a database with a calendar user interface. The invention returns data associated with time periods selected by the user. In particular, the calendar user interface provides options to the user to individually select a range or non-contiguous time periods and to specify time periods relative to a current time period where the relative time periods are internally converted to fixed time periods. The invention internally converts all selected time periods into a common format before performing operations improving its adaptability. In addition, the invention presents a user with a valid range of time periods prior to receiving any selections from the user. The invention also limits the number of selections input by the user prior to filtering data to limit the amount of data retrieved from the database.
In accordance with one aspect of the invention, a method processes data stored in a database. The method includes displaying a calendar user interface to a user. The calendar user interface defines a plurality of time periods. At least one of the time periods has corresponding data stored in the database. The method receives from the user at least one selection of a plurality of the time periods. The selection includes non-contiguous time periods. The method updates the displayed calendar user interface in response to the received selection to indicate the selected time periods. The method further retrieves the data associated with the selected time periods from the database in response to a user command for processing.
In accordance with another aspect of the invention, a method processes data stored in a database. The method includes displaying a calendar user interface to a user. The calendar user interface defines a plurality of time periods. At least one of the time periods has corresponding data stored in the database. The method receives from the user at least one selection of a plurality of the time periods. The selection specifies the selected time periods relative to a current time period. The method updates the displayed calendar user interface in response to the received selection to indicate the selected time periods. The method further retrieves the data associated with the selected time periods from the database in response to a user command for processing.
In accordance with yet another aspect of the invention, a method processes data stored in a database in a computer system having a graphical user interface including a display and a user interface selection device. The method includes receiving from a user at least one property value associated with a calendar user interface. The calendar user interface defines a plurality of time periods. At least one of the time periods has corresponding data stored in the database. The method displays the calendar user interface to a user on the display in accordance with the received property value. Further, the method receives from the user one or more selections corresponding to a plurality of the time periods via the user interface selection device. The selections include non-contiguous time periods. The method alters the calendar user interface on the display in response to the received selections to indicate the selected time periods. The method receives an execution signal from the user via the user interface selection device and retrieves the data associated with the selected time periods from the database for processing in response to the received execution signal.
In accordance with yet another aspect of the invention, a method processes data stored in a database in a computer system having a graphical user interface including a display and a user interface selection device. The method includes receiving from a user at least one property value associated with a calendar user interface. The calendar user interface defines a plurality of time periods. At least one of the time periods has corresponding data stored in the database. The method displays the calendar user interface to a user on the display in accordance with the received property value. Further, the method receives from the user one or more selections corresponding to a plurality of the time periods via the user interface selection device. The user specifies the selected time periods relative to a current time period. The method alters the calendar user interface on the display in response to the received selections to indicate the selected time periods. The method receives an execution signal from the user via the user interface selection device and retrieves the data associated with the selected time periods from the database for processing in response to the received execution signal.
In accordance with yet another aspect of the invention, a computer-readable medium has computer-executable components for processing data stored in a database. The components include a view component, an input component, a verification component, and an execution component. The view component displays a calendar user interface to a user. The calendar user interface defines a plurality of time periods. At least one of the time periods has corresponding data stored in the database. The input component receives from the user at least one selection of a plurality of the time periods. The selection includes non-contiguous time periods and/or specifies the selected time periods relative to a current time period. The verification component updates the displayed calendar user interface in response to the received selection to indicate the selected time periods. The execution component retrieves the data associated with the selected time periods from the database for processing in response to a user command.
In accordance with yet another aspect of the invention, a computer-readable medium stores a data structure for processing data stored in a database. The data structure includes a view field, an input field, a verification field, and an execution field. The view field stores a calendar user interface for display to the user. The calendar user interface represents a plurality of time periods. At least one of the time periods has corresponding data stored in the database. The input field stores at least one selection of a plurality of the time periods. The selection is received from the user. The selection represents non-contiguous time periods and/or represents the selected time periods relative to a current time period. The verification field stores updates to the calendar user interface stored in the view field. The updates are displayed in the calendar user interface in response to the selection received from the user and stored in the input field. The updates are displayed in the calendar user interface to indicate the selected time periods to the user. The execution field stores the data associated with the selected time periods. The data is retrieved from the database for processing in response to a user command.
In accordance with yet another aspect of the invention, a display device has rendered thereon a calendar user interface. The calendar user interface includes a selected range of time periods where at least one of the time periods has corresponding data stored in a database. The calendar user interface also includes at least one selection of a plurality of time periods within the selected range of time periods where the selection includes non-contiguous time periods. The calendar user interface also includes a user command for retrieving, from the database, the data associated with the selection for processing.
Alternatively, the invention may comprise various other methods and apparatuses.
Other features will be in part apparent and in part pointed out hereinafter.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1A is an exemplary embodiment of a day selector user interface displaying selected, contiguous time periods.
FIG. 1B is an exemplary embodiment of a day selector user interface displaying selected, non-contiguous time periods.
FIG. 2A is an exemplary embodiment of a month selector user interface displaying selected, non-contiguous time periods.
FIG. 2B is an exemplary embodiment of a month selector user interface displaying selected, contiguous time periods.
FIG. 3 is an exemplary embodiment of a relative date selector user interface.
FIG. 4 is a flow chart of one embodiment of the invention illustrating a method for filtering data with a calendar user interface.
FIG. 5 is a flow chart of another embodiment of the invention illustrating a method for filtering data with a calendar user interface.
FIG. 6 is a block diagram of one embodiment of the invention illustrating an exemplary computer-readable medium on which the invention may be stored.
FIG. 7 is a block diagram of one embodiment of the invention illustrating one example of a suitable computing system environment on which the invention may be implemented.
Corresponding reference characters indicate corresponding parts throughout the drawings.
BRIEF DESCRIPTION OF THE APPENDIX
Appendix A includes a list of exemplary events and exposed properties in the invention including implementation details.
DETAILED DESCRIPTION OF THE INVENTION
The invention provides improved data navigation through a control for a calendar user interface (“the calendar UI”) to retrieve or filter a data set stored in a database. As an example, a user may wish to know how many hits a certain web page received on certain days. The statistics for web page access are stored in a database and associated with a particular time period such as an hour, day, week, month, or year. Each datum in the database is associated with one or more dates. The invention receives one or more date selections from the user via the calendar UI and returns a data set representative of the web page hits for the selected dates. By selecting dates via the calendar UI, the invention maintains the selections and retrieves the data set associated with the selections in response to a user command. Those skilled in the art will note that the data in the database could be any data associated with one or more dates including, but not limited to, web site access statistics, financial markets data, company reports, sales data, etc.
In one embodiment, a computer system for processing the data executes software routines to provide the calendar UI of the invention. The UI, which is based on a hypertext markup language (HTML), presents options to the user to individually select one or more days (a range of days or non-contiguous days) or individually select one or more entire months (a range of months or non-contiguous months). The calendar control provided by the UI also allows the user to specify a relative date range (or any other rolling interval) and it internally converts these relative dates to fixed dates. For example, the invention converts a date selection of “the last N days” to “day X to day Y.” Similarly, the invention converts a date selection of “the last N months” to “month X to month Y.”
The invention exposes properties of the software routines that are configurable by a software developer or other user. For example, the software routines of the invention include properties through which the valid date range can be specified and enabled for selection. In this manner, the calendar UI of the invention enables the user to easily select the grain of data returned by this query. The invention also provides configurable properties to enable/disable tabs that provide selection for days/months or relative dates. Moreover, the invention exposes properties that can be used to specify the maximum number of days or months that can be allowed to be selected by the user. Any selections over the limit are not allowed. See Appendix A for a discussion of exemplary properties configurable by the software developer or other user.
For example, FIGS. 1-3 illustrate aspects of an exemplary calendar UI. The UI may display dates with various background colors to indicate different conditions although the present drawings are in black and white. For example, dates with a gray background are disabled, dates with a navy background are selected, and dates with an ivory background are unselected. In each of FIGS. 1-3, buttons along the bottom of each calendar UI read “ok,” “cancel,” and “help.” Tabs along the top of each calendar UI read “daily,” “monthly,” and “relative,” reflecting the selector UIs available to the user. Examples of these selector UIs are in FIGS. 1-3. When the user selects one of the tabs, the associated selector UI appears to the user on the display.
In one embodiment, a display device such as monitor 188 described with reference to FIG. 7 renders a calendar user interface such as illustrated in FIGS. 1-3. The calendar user interface includes a selected range of time periods where at least one of the time periods has corresponding data stored in a database. The calendar user interface also includes at least one selection of a plurality of time periods within the selected range of time periods where the selection includes non-contiguous time periods. The calendar user interface also includes a user command for retrieving, from the database, the data associated with the selection for processing. In response to selection of a daily tab by the user, the calendar user interface displays each day in the selected range of time periods in the calendar user interface. In response to selection of a monthly tab by the user, the calendar user interface displays each month in the selected range of time periods in the calendar user interface. In response to selection of a relative tab by the user, the calendar user interface displays a selected number of days or months specified relative to a current time period.
Referring first to FIGS. 1A and 1B, exemplary embodiments of a day selector UI display selected time periods. The calendar UIs for both FIG. 1A and FIG. 1B show all the days in May 2001 and June 2001, with May 1-26 and June 29-30 shown as disabled for selection as indicated by the crosshatch background of those dates. In FIG. 1A, May 27 through June 23 are unselected, while the contiguous date range June 24-28 has been selected as indicated by the crosshatch background of those dates. In another embodiment, the backgrounds of disabled dates and selected dates may be colors such as gray and navy, respectively. In FIG. 1B, the non-contiguous dates of May 28 and May 30, June 4-6, June 13, June 20, June 22, and June 25 have been selected as indicated by the crosshatch background of those dates. The remaining dates displayed in FIG. 1B are unselected.
Referring next to FIGS. 2A and 2B, exemplary embodiments of a month selector UI displays selected time periods. The calendar UIs for both FIG. 2A and FIG. 2B show all the months in 2000 and 2001, with all of 2000 and June 2001 through December 2001 shown as disabled for selection as indicated by the crosshatch background of those months. In FIG. 2A, the non-contiguous months of February 2001 and May 2001 have been selected as indicated by the crosshatch background of those months. The remaining months displayed in FIG. 2A are unselected. In FIG. 2B, the months January 2001 through March 2001 are unselected, while the contiguous date range April 2001 through May 2001 has been selected as indicated by the crosshatch background of those months.
From a usability aspect, the calendar UIs of FIGS. 1 and 2 allow specific selection of dates with the control key on a keyboard and allow range selection with the shift key or by mouse drag which are features included in some computer environments.
Referring next to FIG. 3, an exemplary embodiment of a relative date selector user interface displays date ranges for selection by the user. The selection specifies the selected dates or time periods relative to a current date or time period. For example, the user can select the latest X days or the latest X months, where X is an integer. In a particular example, a user can request to view data associated with the “latest” or “last” two days. The terms “latest” and “last” are converted internally by the invention to a fixed date for generating a query to return the appropriate data set. The user may specify dates relative to the current date when automatically running a report with the same date criteria but for different months.
Those skilled in the art will note that the calendar UI of the invention is not limited to the exemplary UIs of FIGS. 1-3. In particular, the calendar UI of the invention is any UI that allows the user to select any number of any time periods to advantageously select the grain of the data to be processed as a function of the time period. In addition, those skilled in the art will note that the time periods selectable by the user of the invention may include any time period including, but not limited to, years, months, days, hours, and minutes, and seconds.
Referring next to FIG. 4, a flow chart illustrates a method of the invention for processing data stored in a database where the stored data corresponds to one or more time periods. A computer or other computing device executes software of the invention stored on a computer-readable medium to access the database. The computer executes software routines of the invention to provide the calendar UI. Those skilled in the art will note that the database may be one or more databases local to the computer or remotely accessible by the computer via a network such as the Internet. Those skilled in the art will also note that implementation of the software routines of the invention in various ways with various languages are within the scope of the invention. For example, the software routines may be implemented as discrete components, a single application program, object-oriented code, or as an HTML component.
A software routine of the invention receives at least one property value associated with the calendar UI from the user at 402 via a user interface selection device or other input device such as described with reference to FIG. 7. The calendar UI is displayed by a software routine of the invention to the user at 404 in accordance with the received property value via a display such as described with reference to FIG. 7. If a software routine of the invention determines the property value to be invalid, the invention displays an error message to the user. See Appendix A for a list of exemplary events and exposed properties in the invention including implementation details.
The calendar UI defines one or more time periods. The invention receives from the user at least one selection of a plurality of the time periods at 406. In one embodiment, the invention disables further selection by the user if the quantity of selected time periods exceeds a threshold value to limit the amount of data retrieved or downloaded by the user. In this embodiment, the invention constrains the selection to implement cost control. For example, the invention limits the maximum quantity of dates that can be selected to avoid generating a query that will return the entire data set. Further, the invention may limit the maximum result set to be returned by the query. The user can specify these constraints via properties associated with the invention.
The selection may include non-contiguous or contiguous time periods. In addition, the user can select a time period by specifying the time period relative to a current time period. For example, in FIG. 3, the user can specify the latest X days or the latest X months, where X is an integer value. The invention updates, alters, or otherwise changes the displayed calendar user interface at 408 in response to the received selection to indicate the selected time periods to the user. In one embodiment, updating the displayed calendar user interface includes modifying a color associated with the selected time periods in the calendar UI. For example, as in FIGS. 1-3, the invention may change the background color of each selected date to indicate the selected status of the date. After the user has completed date selection, the user sends an execution signal or otherwise issues a command to the invention at 410 to retrieve the data associated with the selected dates. For example, the invention may include an “OK” button which is selected by the user after completing date selection. The invention retrieves the data associated with the selected time periods from the database at 412 in response to the user signal or command.
In one embodiment, the invention is implemented in a computer system having a graphical user interface including a display and a user interface selection device or other input device. One or more computer readable media have computer-executable instructions for performing the operations illustrated in FIG. 4.
Referring next to FIG. 5, a flow chart illustrates another aspect of the invention for filtering data with a calendar user interface. Expanding on FIG. 4, FIG. 5 illustrates functionality of the invention allowing the user to select a granularity of the UI at 502. In the exemplary flow chart of FIG. 5, the granularity is a day, month, or relative date. In addition, FIG. 5 illustrates functionality of the invention allowing the user to enable multiple selections at 504. If multiple selections are disabled, the user can select only a single contiguous date range at 506. If multiple selections are enabled, the user can select multiple, non-contiguous date ranges at 508.
Referring next to FIG. 6, a computer-readable medium 602 has computer-executable components for processing data stored in a database. The data corresponds to one or more time periods. The components include a view component 604, an input component 606, a verification component 608, and an execution component 610. The computer executing the view component 604 displays a calendar user interface to a user. The calendar user interface defines one or more time periods. Using conventional input devices, the user selects from the UI. The input component 606 receives from the user at least one selection of a plurality of the time periods. The selection includes non-contiguous time periods. Alternatively, the selection specifies the selected time periods relative to a current time period. The verification component 608 updates the displayed calendar user interface in response to the received selection to indicate the selected time periods. The execution component 610 retrieves the data associated with the selected time periods from the database in response to a user command.
In one embodiment, the window control of the invention is based on a hypertext markup language. The control uses the popup object of any browser to display the actual control thus not actually consuming screen space by overlapping a window over existing text when it is activated and hiding itself as soon as the user changes the focus. The popup objects are part of any standard browser installation so a user need not download any new component to enable the control except a component file embodying the invention which exposes the object model to the browser. In another embodiment, the invention is developed using Java as a language and exposing it as an applet that would run on any browser.
The data in the database is organized or aggregated into tables in another embodiment. The invention dynamically generates a query based on the selected dates and submits the generated query to the appropriate database table. The query returns the relevant data set. The query is any relational database query (e.g., SQL) operating on any relational database. For example, if the user selects one or more entire months, an appropriate query is generated and sent to a monthly data table in the database. In the monthly data table, the data is organized according to months. In another example, if the user selects certain days within one or more months, an appropriate query is generated and sent to a daily data table. In the daily table, the data is organized according to days.
In an alternative embodiment of FIG. 6, the computer-readable medium 602 stores a data structure for processing data stored in a database. The data structure includes fields corresponding to the components illustrated in FIG. 6. That is, a view field corresponds to the view component 604, an input field corresponds to the input component 606, a verification field corresponds to the verification component 608, and an execution field corresponds to the execution component 610. The view field stores a calendar user interface for display to the user. The calendar user interface represents a plurality of time periods where at least one of the time periods corresponds to data stored in the database. The input field stores at least one selection received from the user of a plurality of the time periods. The selection represents non-contiguous time periods and/or represents the selected time periods relative to a current time period. The verification field stores updates to the calendar user interface stored in the view field. The updates are displayed in the calendar user interface in response to the selection received from the user and stored in the input field. The updates are displayed in the calendar user interface to indicate the selected time periods to the user. The execution field stores the data associated with the selected time periods. A computer associated with the user such as computer 130 (see FIG. 7) retrieves the data from the database for processing in response to a user command. For example, the user command may be the user selecting an “ok” button associated with the calendar user interface. In a further example, in response to the user command, computer 130 retrieves data corresponding to statistics for web site access from the database and displays the retrieved data to the user.
FIG. 7 shows one example of a general purpose computing device in the form of a computer 130. In one embodiment of the invention, a computer such as the computer 130 is suitable for use in the other figures illustrated and described herein. Computer 130 has one or more processors or processing units 132 and a system memory 134. In the illustrated embodiment, a system bus 136 couples various system components including the system memory 134 to the processors 132. The bus 136 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as Mezzanine bus.
The computer 130 typically has at least some form of computer readable media. Computer readable media, which include both volatile and nonvolatile media, removable and non-removable media, may be any available medium that can be accessed by computer 130. By way of example and not limitation, computer readable media comprise computer storage media and communication media. Computer storage media include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. For example, computer storage media include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and that can be accessed by computer 130. Communication media typically embody computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and include any information delivery media. Those skilled in the art are familiar with the modulated data signal, which has one or more of its characteristics set or changed in such a manner as to encode information in the signal. Wired media, such as a wired network or direct-wired connection, and wireless media, such as acoustic, RF, infrared, and other wireless media, are examples of communication media. Combinations of the any of the above are also included within the scope of computer readable media.
The system memory 134 includes computer storage media in the form of removable and/or non-removable, volatile and/or nonvolatile memory. In the illustrated embodiment, system memory 134 includes read only memory (ROM) 138 and random access memory (RAM) 140. A basic input/output system 142 (BIOS), containing the basic routines that help to transfer information between elements within computer 130, such as during start-up, is typically stored in ROM 138. RAM 140 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 132. By way of example, and not limitation, FIG. 7 illustrates operating system 144, application programs 146, other program modules 148, and program data 150.
The computer 130 may also include other removable/non-removable, volatile/nonvolatile computer storage media. For example, FIG. 7 illustrates a hard disk drive 154 that reads from or writes to non-removable, nonvolatile magnetic media. FIG. 7 also shows a magnetic disk drive 156 that reads from or writes to a removable, nonvolatile magnetic disk 158, and an optical disk drive 160 that reads from or writes to a removable, nonvolatile optical disk 162 such as a CD-ROM or other optical media. Other removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like. The hard disk drive 154, and magnetic disk drive 156 and optical disk drive 160 are typically connected to the system bus 136 by a non-volatile memory interface, such as interface 166.
The drives or other mass storage devices and their associated computer storage media discussed above and illustrated in FIG. 7, provide storage of computer readable instructions, data structures, program modules and other data for the computer 130. In FIG. 7, for example, hard disk drive 154 is illustrated as storing operating system 170, application programs 172, other program modules 174, and program data 176. Note that these components can either be the same as or different from operating system 144, application programs 146, other program modules 148, and program data 150. Operating system 170, application programs 172, other program modules 174, and program data 176 are given different numbers here to illustrate that, at a minimum, they are different copies.
A user may enter commands and information into computer 130 through input devices or user interface selection devices such as a keyboard 180 and a pointing device 182 (e.g., a mouse, trackball, pen, or touch pad). Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are connected to processing unit 132 through a user input interface 184 that is coupled to system bus 136, but may be connected by other interface and bus structures, such as a parallel port, game port, or a Universal Serial Bus (USB). A monitor 188 or other type of display device is also connected to system bus 136 via an interface, such as a video interface 190. In addition to the monitor 188, computers often include other peripheral output devices (not shown) such as a printer and speakers, which may be connected through an output peripheral interface (not shown).
The computer 130 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 194. The remote computer 194 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to computer 130. The logical connections depicted in FIG. 7 include a local area network (LAN) 196 and a wide area network (WAN) 198, but may also include other networks. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and global computer networks (e.g., the Internet).
When used in a local area networking environment, computer 130 is connected to the LAN 196 through a network interface or adapter 186. When used in a wide area networking environment, computer 130 typically includes a modem 178 or other means for establishing communications over the WAN 198, such as the Internet. The modem 178, which may be internal or external, is connected to system bus 136 via the user input interface 184, or other appropriate mechanism. In a networked environment, program modules depicted relative to computer 130, or portions thereof, may be stored in a remote memory storage device (not shown). By way of example, and not limitation, FIG. 7 illustrates remote application programs 192 as residing on the memory device. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
Generally, the data processors of computer 130 are programmed by means of instructions stored at different times in the various computer-readable storage media of the computer. Programs and operating systems are typically distributed, for example, on floppy disks or CD-ROMs. From there, they are installed or loaded into the secondary memory of a computer. At execution, they are loaded at least partially into the computer's primary electronic memory. The invention described herein includes these and other various types of computer-readable storage media when such media contain instructions or programs for implementing the steps described below in conjunction with a microprocessor or other data processor. The invention also includes the computer itself when programmed according to the methods and techniques described herein.
For purposes of illustration, programs and other executable program components, such as the operating system, are illustrated herein as discrete blocks. It is recognized, however, that such programs and components reside at various times in different storage components of the computer, and are executed by the data processor(s) of the computer.
Although described in connection with an exemplary computing system environment, including computer 130, the invention is operational with numerous other general purpose or special purpose computing system environments or configurations. The computing system environment is not intended to suggest any limitation as to the scope of use or functionality of the invention. Moreover, the computing system environment should not be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
The invention may be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices. Generally, program modules include, but are not limited to, routines, programs, objects, components, and data structures that perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
In operation, computer 130 executes computer-executable instructions such as those illustrated in FIG. 6 to process data stored in a database. In particular, computer 130 executes computer-executable instructions to receive from a user at least one property value associated with a calendar user interface. The calendar user interface defines a plurality of time periods where at least one of the time periods has corresponding data stored in the database. The computer-executable instructions display the calendar user interface to a user on the display in accordance with the received property value and receive from the user one or more selections corresponding to a plurality of the time periods via the user interface selection device. The selections include non-contiguous time periods. Alternatively, the user specifies the selected time periods relative to a current time period. In response to the received selections, the computer-executable instructions alter the calendar user interface on the display to indicate the selected time periods. The computer-executable instructions receive an execution signal from the user via the user interface selection device and retrieve the data associated with the selected time periods from the database for processing.
When introducing elements of the present invention or the embodiment(s) thereof, the articles “a,” “an,” “the,” and “said” are intended to mean that there are one or more of the elements. The terms “comprising,” “including,” and “having” are intended to be inclusive and mean that there may be additional elements other than the listed elements.
In view of the above, it will be seen that the several objects of the invention are achieved and other advantageous results attained.
As various changes could be made in the above products and methods without departing from the scope of the invention, it is intended that all matter contained in the above description and shown in the accompanying drawings shall be interpreted as illustrative and not in a limiting sense.
APPENDIX A
Details about exemplary events and exposed properties in the invention including implementation details are described in this Appendix A. An exposed event entitled “Onchange” is a way for the consumer to determine whether the state of the calendar control has been changed by the user either selecting or unselecting any dates on the calendar control. On any of these operations, the control updates some of its exposed properties. A software developer or other user can write an event handler to get the current state of properties like Value, Info, and Grain (see below). This event can also be further extended to do any custom action for the client based on the current values of these and other properties.
The exemplary calendar control of the invention exposes various methods. A write-only TypeAllowed method takes a series of name/value pairs separated by a semi-colon to identify which types of dates should be allowed in the calendar. A typical value for this property may appear as the following.
DAY=Daily;MONTH=Monthly;RELATIVE=Relative Dates
The calendar internally uses the Name for identifying the current Grain of selection and uses the value to display as a text on the Calendar tab. Based on the TypeAllowed property, the calendar will either enable or disable the options to allow users to select days, months or relative dates.
A write-only Multiple property is a Boolean property that defines whether the user is allowed to select multiple dates. Some operations can be valid for a single date in which cases setting this property as false will prevent the user from any more selections. If the user selects another date, the previous selected date is removed from the selection and current selection is updated. A write-only StartDate property takes a valid date which defines the starting date for the range of dates that should be enabled for user selection. A write-only EndDate property takes a valid date which defines the ending date for the range of dates enabled for user selections. A write-only StartMonth property takes a valid date defining the starting month for the range of months that should be enabled for user selection. A write-only EndMonth property takes a valid date defining the ending month for the range of months that will be enabled for user selection.
A write-only MaxDays property defines the maximum number of days a user is allowed to select on the calendar. The property value should be set based on the performance of the backend server. If the backend server is not able to handle large amounts of dates, this property should be set with a small number. For example, setting this property with “10” will allow the user to select a maximum of ten continuous or individual days. A write-only MaxMonths property defines the maximum amount of months a user is allowed to select on the calendar. The property value should be set based on the performance of the backend server. If the backend server is not able to handle large amounts of dates, this property should be set with a small number. For example, setting this property with a value of “5” will allow the user to select a maximum of five continuous or individual months.
The exemplary calendar control exposes three properties which are readable and writeable by the software developer or other user to both set an initial list of selected dates as well to get the current list of dates selected via the calendar UI. A read-write Value property is a set of dates separated by semicolon. Based on a Grain property value (see below), the calendar control will interpret the Value property value as a selected set of days or months. The read-write Grain property can be set with a value to identify whether the values set into the Value property are days or months. This value should match with the name specified in the value of the Typeallowed property. A mismatch will raise an error dialog from the calendar control. For example, if the TypeAllowed property has a value of “DAY=Daily;MONTH=Monthly” then Grain can have a value of “DAY” or “MONTH”.
A read-write Info property formats the current date selections and returns the current minimum date and the maximum month selected along with the grain in a descriptive format that can be displayed as informative text to the user.

Claims (27)

1. A method for processing data stored in a database associated with a server, said method comprising:
displaying a calendar user interface to a user, said calendar user interface defining a plurality of time periods, at least one of said time periods having data stored in the database corresponding thereto;
receiving from the user at least a first selection and a second selection of the plurality of time periods, said first selection comprising individually selected starting and ending times, said second selection comprising individually selected starting and ending times, wherein said first selection and said second selection are non-contiguous time periods;
modifying the selections as a function of the cumulative time;
enabling further selections if the cumulative time of the selected time periods does not exceed a maximum amount of time based on the server performance;
disabling further selections if the cumulative time of the selected time periods exceeds a maximum amount of time based on the server performance;
updating the displayed calendar user interface in response to the received selections to indicate the selected time periods;
generating a query based on the selected time periods in response to a user command; and
submitting the query to the database to retrieve non-calendar data associated with the selected time periods from the database for processing, wherein the database is aggregated into tables based on the selected time periods and wherein the generated query is submitted to the corresponding aggregated table of the database based on the selected time periods.
2. The method of claim 1, wherein at least one of the selections specifies the selected time periods relative to a current time period.
3. The method of claim 1, further comprising receiving at least one property value associated with the calendar user interface from a user, wherein displaying comprises displaying the calendar user interface in accordance with the received property value.
4. The method of claim 3, further comprising displaying an error message to the user if the property value is invalid.
5. The method of claim 1, wherein the calendar user interface is one or more of the following: a day selector user interface, a month selector user interface, and a relative date selector user interface.
6. The method of claim 1, wherein the time periods are selected from a group consisting of one or more months, weeks, days, or hours.
7. The method of claim 1, wherein updating the displayed calendar user interface comprises providing a visual indication to the user confirming the selections of the time periods.
8. The method of claim 7, wherein the visual indication comprises modifying a color associated with a display of the selected time periods.
9. The method of claim 1, wherein the non-calendar data corresponds to statistics for web site access.
10. One or more computer readable storage media having computer-executable instructions for performing the method recited in claim 1.
11. A method for processing data stored in a database, said database associated with a server, said method comprising:
displaying a calendar user interface to a user, said calendar user interface defining a plurality of time periods, at least one of said time periods having data stored in the database corresponding thereto;
receiving from the user at least one selection of a plurality of the time periods, said selection specifying the selected time periods relative to a current time period, wherein the selected time periods begin with the current time period or wherein the selected time periods end with the current time period, said selection representing individually selected non-contiguous time periods;
modifying the selections as a function of the cumulative time;
enabling further selections if the cumulative time of the selected time periods does not exceed a maximum amount of time based on the server performance;
disabling further selections if the cumulative time of the selected time periods exceeds a maximum amount of time based on the server performance;
updating the displayed calendar user interface in response to the received selection to indicate the selected time periods;
generating a query based on the selected time periods in response to a user command; and
submitting the query to the database to retrieve non-calendar data associated with the selected time periods from the database for processing, wherein the database is aggregated into tables based on the selected time periods and wherein the generated query is submitted to the corresponding aggregated table of the database based on the selected time periods.
12. The method of claim 11, wherein the time periods are selected from a group consisting of one or more months, weeks, days, or hours.
13. In a computer system having a graphical user interface including a display and a user interface selection device, a method for processing data stored in a database associated with a server, said method comprising:
receiving from a user at least one property value associated with a calendar user interface, said calendar user interface defining a plurality of time periods, at least one of said time periods having data stored in the database corresponding thereto;
displaying the calendar user interface to a user on the display in accordance with the received property value;
receiving from the user at least a first selection and a second selection corresponding to the plurality of time periods via the user interface selection device, said first selection comprising individually selected starting and ending times, wherein said first selection and said second selection are non-contiguous time periods;
modifying the selections as a function of the cumulative time;
enabling further selections if the cumulative time of the selected time periods does not exceed a maximum amount of time based on the server performance;
disabling further selections if the cumulative time of the selected time periods exceeds a maximum amount of time based on the server performance;
altering the calendar user interface on the display in response to the received selections to indicate the selected time periods;
receiving an execution signal from the user via the user interface selection device;
generating a query based on the selected time periods in response to execution signal; and
submitting the query to the database to retrieve non-calendar data associated with the selected time periods from the database for processing, wherein the database is aggregated into tables based on the selected time periods and wherein the generated query is submitted to the corresponding aggregated table of the database based on the selected time periods.
14. The method of claim 13, wherein at least one of the selections specifies the selected time periods relative to a current time period.
15. The method of claim 13, wherein the non-calendar data corresponds to statistics for web site access.
16. The method of claim 13, wherein the time periods are selected from a group consisting of one or more months, weeks, days, or hours.
17. One or more computer readable storage media having computer-executable instructions for performing the method recited in claim 13.
18. In a computer system having a graphical user interface including a display and a user interface selection device, a method for processing data stored in a database associated with a server, said method comprising:
receiving from a user at least one property value associated with a calendar user interface, said calendar user interface defining a plurality of time periods, at least one of said time periods having data stored in the database corresponding thereto;
displaying the calendar user interface to the user on the display in accordance with the received property value;
receiving from the user one or more selections corresponding to a plurality of the time periods via the user interface selection device, said selections specifying the selected time periods relative to a current time period, wherein the selected time periods begin with the current time period or wherein the selected time periods end with the current time period, said selections representing individually selected non-contiguous time periods;
modifying the selections as a function of the cumulative time;
enabling further selections if the cumulative time of the selected time periods does not exceed a maximum amount of time based on the server performance;
disabling further selections if the cumulative time of the selected time periods exceeds a maximum amount of time based on the server performance;
altering the calendar user interface on the display in response to the received selections to indicate the selected time periods;
receiving an execution signal from the user via the user interface selection device; and
generating a query based on the selected time periods in response to execution signal; and
submitting the query to the database to retrieve non-calendar data associated with the selected time periods from the database for processing, wherein the database is aggregated into tables based on the selected time periods and wherein the generated query is submitted to the corresponding aggregated table of the database based on the selected time periods.
19. The method of claim 18, wherein the time periods are selected from a group consisting of one or more months, weeks, days, or hours.
20. A computer-readable storage medium having computer-executable components for processing data stored in a database associated with a server, said components comprising:
a view component for displaying a calendar user interface to a user, said calendar user interface defining a plurality of time periods, at least one of said time periods having data stored in the database corresponding thereto;
an input component for receiving from the user at least one selection of a plurality of the time periods, said selection comprising at least one of the following: (1) individually selected non-contiguous time periods, and (2) selected time periods relative to a current time period, said input component excluding further selected time periods if the cumulative time of further selected time periods exceeds a maximum amount of time based on the server performance, said input component allowing further selected time periods if the cumulative time of further selected time periods does not exceed a maximum amount of time based on the server performance, wherein the selected time periods relative to a current time period begin with the current period or wherein the selected time periods relative to a current time period end with the current time period;
a verification component for updating the displayed calendar user interface in response to the received selection to indicate the selected time periods; and
an execution component for generating a query retrieving non-calendar data associated with the selected time periods from the database for processing in response to a user command, wherein the database is aggregated into tables based on the selected time periods and wherein the generated query is submitted to the corresponding aggregated table of the database based on the selected time periods.
21. The computer-readable storage medium of claim 20, wherein the time periods are selected from a group consisting of one or more months, weeks, days, or hours.
22. A computer-readable storage medium having stored thereon a data structure for processing data stored in a database associated with a server comprising:
a view field storing a calendar user interface for display to the user, said calendar user interface representing a plurality of time periods, at least one of said time periods having data stored in the database corresponding thereto;
an input field storing at least one selection of a plurality of the time periods, said selection received from the user, said selection representing at least one of the following: (1) individually selected non-contiguous time periods, and (2) selected time periods relative to a current time period, said selections being limited as a function of a maximum cumulative amount of time of the selected time periods based on the server performance, wherein the selected time periods relative to a current time period begin with the current period or wherein the selected time periods relative to a current time period end with the current time period;
a verification field storing updates to the calendar user interface stored in the view field, said updates displayed in the calendar user interface in response to the selection received from the user and stored in the input field, said updates displayed in the calendar user interface to indicate the selected time periods to the user; and
an execution field storing non-calendar data associated with the selected time periods, said non-calendar data returned from a query submitted to the database for processing, said query being generated in response to a user command, wherein the database is aggregated into tables based on the selected time periods and wherein the generated query is submitted to the corresponding aggregated table of the database based on the selected time periods.
23. The computer-readable storage medium of claim 22, wherein the data corresponds to statistics for web site access.
24. A display device having rendered thereon a calendar user interface, said calendar user interface comprising:
at least a first selected range of time periods and a second selected range of time periods, said first and second selected ranges having data stored in a database corresponding thereto, said database being associated with a server, wherein further selection of time periods is prevented if the cumulative time of the selected range of time periods exceeds a maximum amount of time based on expected performance capabilities of the server and further selection of time periods is allowed if the cumulative time of the selected range of time periods does not exceed a maximum amount of time based on expected performance capabilities of the server;
wherein the first selected range of time periods comprises individually selected starting and ending times, wherein the second selected range of time periods comprises individually selected starting and ending times, and wherein the first and the second selected ranges of time periods are non-contiguous time periods; and
a user command for generating a query to retrieve, from the database, non-calendar data associated with the at least one selection for processing, wherein the database is aggregated into tables based on the selected range of time periods and wherein the generated query is submitted to the corresponding aggregated table of the database based on the selected range of time periods.
25. The display device of claim 24, further comprising a daily tab for displaying each day in the selected ranges of time periods in the calendar user interface in response to selection of the daily tab by the user.
26. The display device of claim 24, further comprising a monthly tab for displaying each month in the selected ranges of time periods in the calendar user interface in response to selection of the monthly tab by the user.
27. The display device of claim 24, further comprising a relative tab for displaying a selected number of days or months specified relative to a current time period in response to selection of the relative tab by the user.
US10/113,240 2002-04-01 2002-04-01 Calendar control for selection of time periods to filter data Expired - Fee Related US7296232B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/113,240 US7296232B1 (en) 2002-04-01 2002-04-01 Calendar control for selection of time periods to filter data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/113,240 US7296232B1 (en) 2002-04-01 2002-04-01 Calendar control for selection of time periods to filter data

Publications (1)

Publication Number Publication Date
US7296232B1 true US7296232B1 (en) 2007-11-13

Family

ID=38664723

Family Applications (1)

Application Number Title Priority Date Filing Date
US10/113,240 Expired - Fee Related US7296232B1 (en) 2002-04-01 2002-04-01 Calendar control for selection of time periods to filter data

Country Status (1)

Country Link
US (1) US7296232B1 (en)

Cited By (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040109025A1 (en) * 2002-08-28 2004-06-10 Jean-Marie Hullot Computer program comprising a plurality of calendars
US20050039142A1 (en) * 2002-09-09 2005-02-17 Julien Jalon Methods and apparatuses for controlling the appearance of a user interface
US20060265660A1 (en) * 2002-09-09 2006-11-23 Jean-Marie Hullot Method of managing a calendar and a computer system for implementing that method
US20080115075A1 (en) * 2006-11-09 2008-05-15 Ryan Corinne M Method and system for providing drag enabled date and/or time components
US20080189643A1 (en) * 2003-08-20 2008-08-07 David Sheldon Hooper Method and system for visualization and operation of multiple content filters
US20080218523A1 (en) * 2007-03-09 2008-09-11 Adobe Systems Incorporated System and method for navigation of display data
US20080244065A1 (en) * 2007-03-31 2008-10-02 Keith Peters Chronology display and feature for online presentations and web pages
US20080263471A1 (en) * 2003-08-20 2008-10-23 David Hooper Method and sytem for calendar-based image asset organization
US20090043749A1 (en) * 2007-08-06 2009-02-12 Garg Priyank S Extracting query intent from query logs
US20090043748A1 (en) * 2007-08-06 2009-02-12 Farzin Maghoul Estimating the date relevance of a query from query logs
US20090122652A1 (en) * 2003-10-29 2009-05-14 International Business Machines Corporation Apparatus and Method for Handling Calendar Dates in a Non-Calendar System Specific Manner
US20090210225A1 (en) * 2008-02-15 2009-08-20 Microsoft Corporation Supporting electronic task management systems via telephone
US20100013659A1 (en) * 2008-07-20 2010-01-21 Farrell Glenn H Compact visual indications of schedule saturation
US20100057513A1 (en) * 2008-08-26 2010-03-04 Mckesson Financial Holdings Limited Automatic appointment scheduler with hybrid timeline
US20100070294A1 (en) * 2008-09-15 2010-03-18 Mckesson Financial Holdings Limited Creating and communicating staffing assignments
US20100070894A1 (en) * 2008-09-16 2010-03-18 International Business Machines Corporation Federated calendar entry presence indicator
US20100235214A1 (en) * 2009-03-13 2010-09-16 Research In Motion Limited Method and computing device for processing a calendar database stored at a memory device
US20110161128A1 (en) * 2009-12-31 2011-06-30 Mckesson Financial Holdings Limited Scheduling and Assigning Units of Work
US7991637B1 (en) 2004-05-24 2011-08-02 Apple Inc. Freeform communication in calendaring system
US8166307B2 (en) 2003-12-10 2012-04-24 McAffee, Inc. Document registration
US8176049B2 (en) 2005-10-19 2012-05-08 Mcafee Inc. Attributes of captured objects in a capture system
US8205242B2 (en) 2008-07-10 2012-06-19 Mcafee, Inc. System and method for data mining and security policy management
US8271794B2 (en) 2003-12-10 2012-09-18 Mcafee, Inc. Verifying captured objects before presentation
US8301635B2 (en) 2003-12-10 2012-10-30 Mcafee, Inc. Tag data structure for maintaining relational data over captured objects
US8307206B2 (en) 2004-01-22 2012-11-06 Mcafee, Inc. Cryptographic policy enforcement
US8307007B2 (en) 2006-05-22 2012-11-06 Mcafee, Inc. Query generation for a capture system
US20130007645A1 (en) * 2011-06-30 2013-01-03 Microsoft Corporation Visual time filter control tool for data analysis applications
US8447722B1 (en) 2009-03-25 2013-05-21 Mcafee, Inc. System and method for data mining and security policy management
US8473442B1 (en) 2009-02-25 2013-06-25 Mcafee, Inc. System and method for intelligent state management
US8504537B2 (en) 2006-03-24 2013-08-06 Mcafee, Inc. Signature distribution in a document registration system
US8548170B2 (en) 2003-12-10 2013-10-01 Mcafee, Inc. Document de-registration
US8554774B2 (en) 2005-08-31 2013-10-08 Mcafee, Inc. System and method for word indexing in a capture system and querying thereof
US8560534B2 (en) * 2004-08-23 2013-10-15 Mcafee, Inc. Database for a capture system
US8656039B2 (en) 2003-12-10 2014-02-18 Mcafee, Inc. Rule parser
US8667121B2 (en) 2009-03-25 2014-03-04 Mcafee, Inc. System and method for managing data and policies
US8683035B2 (en) 2006-05-22 2014-03-25 Mcafee, Inc. Attributes of captured objects in a capture system
US8700561B2 (en) 2011-12-27 2014-04-15 Mcafee, Inc. System and method for providing data protection workflows in a network environment
US8706709B2 (en) 2009-01-15 2014-04-22 Mcafee, Inc. System and method for intelligent term grouping
US8730955B2 (en) 2005-08-12 2014-05-20 Mcafee, Inc. High speed packet capture
US8739072B1 (en) * 2013-03-07 2014-05-27 Visual BI Solutions Inc. Multi-selection widget for selecting multiple time periods at multiple levels within a time dimension hierarchy
US8751966B2 (en) 2010-04-22 2014-06-10 Microsoft Corporation Display of filtered data via ordered values
US8762386B2 (en) 2003-12-10 2014-06-24 Mcafee, Inc. Method and apparatus for data capture and analysis system
US20140207511A1 (en) * 2006-08-08 2014-07-24 Skadool, Inc. System and method for providing temporary and limited grants of calendar access
US8806615B2 (en) 2010-11-04 2014-08-12 Mcafee, Inc. System and method for protecting specified data combinations
US8850591B2 (en) 2009-01-13 2014-09-30 Mcafee, Inc. System and method for concept building
US9253154B2 (en) 2008-08-12 2016-02-02 Mcafee, Inc. Configuration management for a capture/registration system
US20160085424A1 (en) * 2014-09-22 2016-03-24 Samsung Electronics Co., Ltd. Method and apparatus for inputting object in electronic device
US20160124756A1 (en) * 2014-10-29 2016-05-05 Bank Of America Corporation Keyboard-accessible calendar for individual with disabilities
US20170103095A1 (en) * 2015-10-07 2017-04-13 Janine C.Y. HSU System of third party event selection for personal calendars
US20190012617A1 (en) * 2009-02-03 2019-01-10 Google Llc User Interface for Travel Planning
CN109656958A (en) * 2018-12-18 2019-04-19 北京小米移动软件有限公司 Data query method and system
US20200019292A1 (en) * 2016-09-30 2020-01-16 Sap Se Synchronized calendar and timeline adaptive user interface

Citations (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4187629A (en) * 1977-09-15 1980-02-12 Yamada-Graphics Corp. Perpetual and multi-year calendars
US5500938A (en) * 1994-03-07 1996-03-19 International Business Machines, Corporation Method and apparatus for directly selecting and signalling start and stop times in an electronic calendar
US5761646A (en) * 1992-01-21 1998-06-02 Borland International, Inc. Technique for assisting a user in setting attributes of selected screen objects by use of a preview display of a replica object
US5805444A (en) * 1996-05-22 1998-09-08 Bellsouth Corporation Method and system for providing a temporal interface for use in implementing a process
US5936625A (en) 1991-12-16 1999-08-10 International Business Machines Corp. Computerized calendar showing scheduled events which may be edited, magnified, or scrolled within a monthly view
US5960406A (en) * 1998-01-22 1999-09-28 Ecal, Corp. Scheduling system for use between users on the web
US6009398A (en) * 1997-04-18 1999-12-28 U S West, Inc. Calendar system with direct and telephony networked voice control interface
US6018343A (en) 1996-09-27 2000-01-25 Timecruiser Computing Corp. Web calendar architecture and uses thereof
US6111572A (en) * 1998-09-10 2000-08-29 International Business Machines Corporation Runtime locale-sensitive switching of calendars in a distributed computer enterprise environment
US6226577B1 (en) * 1999-07-08 2001-05-01 Hyundai Motor Company Method for searching trip log of vehicle
US6236396B1 (en) * 1992-05-27 2001-05-22 Apple Computer, Inc. Method and apparatus for controlling a scheduler
US6266295B1 (en) * 1998-01-07 2001-07-24 Microsoft Corporation System and method of displaying times corresponding to events on a calendar
US6295092B1 (en) * 1998-07-30 2001-09-25 Cbs Corporation System for analyzing television programs
US6322366B1 (en) * 1998-06-30 2001-11-27 Assessment Technology Inc. Instructional management system
US6323883B1 (en) 1995-08-28 2001-11-27 International Business Machines Corp. Method and apparatus of displaying a calendar
US20020013814A1 (en) * 2000-05-18 2002-01-31 Akira Koto Method of searching for persons using communication means
US20020016924A1 (en) * 2000-04-27 2002-02-07 Arun Shah Database security
US20020059258A1 (en) * 1999-01-21 2002-05-16 James F. Kirkpatrick Method and apparatus for retrieving and displaying consumer interest data from the internet
US6405123B1 (en) * 1999-12-21 2002-06-11 Televigation, Inc. Method and system for an efficient operating environment in a real-time navigation system
US20020099777A1 (en) * 2001-01-25 2002-07-25 Anoop Gupta Integrating collaborative messaging into an electronic mail program
US20020111935A1 (en) * 2000-11-14 2002-08-15 Terrell Jones System and method for processing travel data in a relational database
US20030036927A1 (en) * 2001-08-20 2003-02-20 Bowen Susan W. Healthcare information search system and user interface
US20030036941A1 (en) * 2001-08-17 2003-02-20 International Business Machines Corporation System and method for scheduling multiple meetings on an electronic calendar
US20030154116A1 (en) * 2002-01-04 2003-08-14 Lofton Jeffrey C. System and method for scheduling events on an internet based calendar
US20030156138A1 (en) * 2002-02-20 2003-08-21 Vronay David P. Calendar-based user interface system
US6658093B1 (en) * 1999-09-13 2003-12-02 Microstrategy, Incorporated System and method for real-time, personalized, dynamic, interactive voice services for travel availability information
US20040078252A1 (en) * 2002-10-16 2004-04-22 Daughtrey Rodney S. Flexible-date travel queries
US6811608B1 (en) * 1999-08-02 2004-11-02 Emerald Biostructures, Inc. Method and system for creating a crystallization results database
US6885734B1 (en) * 1999-09-13 2005-04-26 Microstrategy, Incorporated System and method for the creation and automatic deployment of personalized, dynamic and interactive inbound and outbound voice services, with real-time interactive voice database queries
US7051038B1 (en) * 2002-06-28 2006-05-23 Microsoft Corporation Method and system for a reporting information services architecture

Patent Citations (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4187629A (en) * 1977-09-15 1980-02-12 Yamada-Graphics Corp. Perpetual and multi-year calendars
US5936625A (en) 1991-12-16 1999-08-10 International Business Machines Corp. Computerized calendar showing scheduled events which may be edited, magnified, or scrolled within a monthly view
US5761646A (en) * 1992-01-21 1998-06-02 Borland International, Inc. Technique for assisting a user in setting attributes of selected screen objects by use of a preview display of a replica object
US6236396B1 (en) * 1992-05-27 2001-05-22 Apple Computer, Inc. Method and apparatus for controlling a scheduler
US5500938A (en) * 1994-03-07 1996-03-19 International Business Machines, Corporation Method and apparatus for directly selecting and signalling start and stop times in an electronic calendar
US6323883B1 (en) 1995-08-28 2001-11-27 International Business Machines Corp. Method and apparatus of displaying a calendar
US5805444A (en) * 1996-05-22 1998-09-08 Bellsouth Corporation Method and system for providing a temporal interface for use in implementing a process
US6018343A (en) 1996-09-27 2000-01-25 Timecruiser Computing Corp. Web calendar architecture and uses thereof
US6009398A (en) * 1997-04-18 1999-12-28 U S West, Inc. Calendar system with direct and telephony networked voice control interface
US6266295B1 (en) * 1998-01-07 2001-07-24 Microsoft Corporation System and method of displaying times corresponding to events on a calendar
US5960406A (en) * 1998-01-22 1999-09-28 Ecal, Corp. Scheduling system for use between users on the web
US6322366B1 (en) * 1998-06-30 2001-11-27 Assessment Technology Inc. Instructional management system
US6295092B1 (en) * 1998-07-30 2001-09-25 Cbs Corporation System for analyzing television programs
US6111572A (en) * 1998-09-10 2000-08-29 International Business Machines Corporation Runtime locale-sensitive switching of calendars in a distributed computer enterprise environment
US20020059258A1 (en) * 1999-01-21 2002-05-16 James F. Kirkpatrick Method and apparatus for retrieving and displaying consumer interest data from the internet
US6226577B1 (en) * 1999-07-08 2001-05-01 Hyundai Motor Company Method for searching trip log of vehicle
US6811608B1 (en) * 1999-08-02 2004-11-02 Emerald Biostructures, Inc. Method and system for creating a crystallization results database
US6658093B1 (en) * 1999-09-13 2003-12-02 Microstrategy, Incorporated System and method for real-time, personalized, dynamic, interactive voice services for travel availability information
US6885734B1 (en) * 1999-09-13 2005-04-26 Microstrategy, Incorporated System and method for the creation and automatic deployment of personalized, dynamic and interactive inbound and outbound voice services, with real-time interactive voice database queries
US6405123B1 (en) * 1999-12-21 2002-06-11 Televigation, Inc. Method and system for an efficient operating environment in a real-time navigation system
US20020016924A1 (en) * 2000-04-27 2002-02-07 Arun Shah Database security
US20020013814A1 (en) * 2000-05-18 2002-01-31 Akira Koto Method of searching for persons using communication means
US20020111935A1 (en) * 2000-11-14 2002-08-15 Terrell Jones System and method for processing travel data in a relational database
US20020099777A1 (en) * 2001-01-25 2002-07-25 Anoop Gupta Integrating collaborative messaging into an electronic mail program
US20030036941A1 (en) * 2001-08-17 2003-02-20 International Business Machines Corporation System and method for scheduling multiple meetings on an electronic calendar
US20030036927A1 (en) * 2001-08-20 2003-02-20 Bowen Susan W. Healthcare information search system and user interface
US20030154116A1 (en) * 2002-01-04 2003-08-14 Lofton Jeffrey C. System and method for scheduling events on an internet based calendar
US20030156138A1 (en) * 2002-02-20 2003-08-21 Vronay David P. Calendar-based user interface system
US7051038B1 (en) * 2002-06-28 2006-05-23 Microsoft Corporation Method and system for a reporting information services architecture
US20040078252A1 (en) * 2002-10-16 2004-04-22 Daughtrey Rodney S. Flexible-date travel queries

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Beard et a., "A Visual Calendar for Scheduling Group Meetings," Proceedings of the Conference on Computer-Supported Cooperative Work, 1990, pp. 279-290, ACM Press, New York, USA.
Carlis et al., "Interactive Visualization of Serial Periodic Data," Proceedings of the 11th Annual ACM Symposium on User Interface Software and Technology, 1998, pp. 29-38, ACM Press, New York, USA.
Mackinlay et al., "Developing Canendar Visualizers for the Information Visualizer," Proceedings of the ACM Symposium on User Interface Software and Technology, 1994, pp. 109-118, ACM Press, New York, USA.

Cited By (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7814055B2 (en) 2002-08-28 2010-10-12 Apple Inc. Method of managing a calendar and a computer system for implementing that method
US20040109025A1 (en) * 2002-08-28 2004-06-10 Jean-Marie Hullot Computer program comprising a plurality of calendars
US20050039142A1 (en) * 2002-09-09 2005-02-17 Julien Jalon Methods and apparatuses for controlling the appearance of a user interface
US20060265660A1 (en) * 2002-09-09 2006-11-23 Jean-Marie Hullot Method of managing a calendar and a computer system for implementing that method
US7487458B2 (en) 2002-09-09 2009-02-03 Apple Inc. Methods and apparatuses for controlling the appearance of a user interface
US7822713B2 (en) 2002-09-09 2010-10-26 Apple Inc. Method of managing a calendar and a computer system for implementing that method
US20080189643A1 (en) * 2003-08-20 2008-08-07 David Sheldon Hooper Method and system for visualization and operation of multiple content filters
US20080263471A1 (en) * 2003-08-20 2008-10-23 David Hooper Method and sytem for calendar-based image asset organization
US7856604B2 (en) 2003-08-20 2010-12-21 Acd Systems, Ltd. Method and system for visualization and operation of multiple content filters
US20090122652A1 (en) * 2003-10-29 2009-05-14 International Business Machines Corporation Apparatus and Method for Handling Calendar Dates in a Non-Calendar System Specific Manner
US7830751B2 (en) * 2003-10-29 2010-11-09 International Business Machines Corporation Apparatus and method for handling calendar dates in a non-calendar system specific manner
US8656039B2 (en) 2003-12-10 2014-02-18 Mcafee, Inc. Rule parser
US8166307B2 (en) 2003-12-10 2012-04-24 McAffee, Inc. Document registration
US8762386B2 (en) 2003-12-10 2014-06-24 Mcafee, Inc. Method and apparatus for data capture and analysis system
US8548170B2 (en) 2003-12-10 2013-10-01 Mcafee, Inc. Document de-registration
US8301635B2 (en) 2003-12-10 2012-10-30 Mcafee, Inc. Tag data structure for maintaining relational data over captured objects
US8271794B2 (en) 2003-12-10 2012-09-18 Mcafee, Inc. Verifying captured objects before presentation
US9092471B2 (en) 2003-12-10 2015-07-28 Mcafee, Inc. Rule parser
US9374225B2 (en) 2003-12-10 2016-06-21 Mcafee, Inc. Document de-registration
US8307206B2 (en) 2004-01-22 2012-11-06 Mcafee, Inc. Cryptographic policy enforcement
US8239234B2 (en) 2004-05-24 2012-08-07 Apple Inc. Freeform communication in calendaring system
US7991637B1 (en) 2004-05-24 2011-08-02 Apple Inc. Freeform communication in calendaring system
US8560534B2 (en) * 2004-08-23 2013-10-15 Mcafee, Inc. Database for a capture system
US8730955B2 (en) 2005-08-12 2014-05-20 Mcafee, Inc. High speed packet capture
US8554774B2 (en) 2005-08-31 2013-10-08 Mcafee, Inc. System and method for word indexing in a capture system and querying thereof
US8176049B2 (en) 2005-10-19 2012-05-08 Mcafee Inc. Attributes of captured objects in a capture system
US8463800B2 (en) 2005-10-19 2013-06-11 Mcafee, Inc. Attributes of captured objects in a capture system
US8504537B2 (en) 2006-03-24 2013-08-06 Mcafee, Inc. Signature distribution in a document registration system
US8307007B2 (en) 2006-05-22 2012-11-06 Mcafee, Inc. Query generation for a capture system
US8683035B2 (en) 2006-05-22 2014-03-25 Mcafee, Inc. Attributes of captured objects in a capture system
US9094338B2 (en) 2006-05-22 2015-07-28 Mcafee, Inc. Attributes of captured objects in a capture system
US20140207511A1 (en) * 2006-08-08 2014-07-24 Skadool, Inc. System and method for providing temporary and limited grants of calendar access
US20080115075A1 (en) * 2006-11-09 2008-05-15 Ryan Corinne M Method and system for providing drag enabled date and/or time components
US7750825B2 (en) * 2007-03-09 2010-07-06 Adobe Systems Incorporated System and method for navigation of display data
US20080218523A1 (en) * 2007-03-09 2008-09-11 Adobe Systems Incorporated System and method for navigation of display data
US8893011B2 (en) 2007-03-31 2014-11-18 Topix Llc Chronology display and feature for online presentations and webpages
US20080244065A1 (en) * 2007-03-31 2008-10-02 Keith Peters Chronology display and feature for online presentations and web pages
US8250474B2 (en) * 2007-03-31 2012-08-21 Topix Llc Chronology display and feature for online presentations and web pages
US20090043749A1 (en) * 2007-08-06 2009-02-12 Garg Priyank S Extracting query intent from query logs
US20090043748A1 (en) * 2007-08-06 2009-02-12 Farzin Maghoul Estimating the date relevance of a query from query logs
US7966341B2 (en) * 2007-08-06 2011-06-21 Yahoo! Inc. Estimating the date relevance of a query from query logs
US20090210225A1 (en) * 2008-02-15 2009-08-20 Microsoft Corporation Supporting electronic task management systems via telephone
US8205242B2 (en) 2008-07-10 2012-06-19 Mcafee, Inc. System and method for data mining and security policy management
US8601537B2 (en) 2008-07-10 2013-12-03 Mcafee, Inc. System and method for data mining and security policy management
US8635706B2 (en) 2008-07-10 2014-01-21 Mcafee, Inc. System and method for data mining and security policy management
US20100013659A1 (en) * 2008-07-20 2010-01-21 Farrell Glenn H Compact visual indications of schedule saturation
US10367786B2 (en) 2008-08-12 2019-07-30 Mcafee, Llc Configuration management for a capture/registration system
US9253154B2 (en) 2008-08-12 2016-02-02 Mcafee, Inc. Configuration management for a capture/registration system
US20100057513A1 (en) * 2008-08-26 2010-03-04 Mckesson Financial Holdings Limited Automatic appointment scheduler with hybrid timeline
US20100070294A1 (en) * 2008-09-15 2010-03-18 Mckesson Financial Holdings Limited Creating and communicating staffing assignments
US20100070894A1 (en) * 2008-09-16 2010-03-18 International Business Machines Corporation Federated calendar entry presence indicator
US8850591B2 (en) 2009-01-13 2014-09-30 Mcafee, Inc. System and method for concept building
US8706709B2 (en) 2009-01-15 2014-04-22 Mcafee, Inc. System and method for intelligent term grouping
US10796250B2 (en) * 2009-02-03 2020-10-06 Google Llc User interface for travel planning
US20190012617A1 (en) * 2009-02-03 2019-01-10 Google Llc User Interface for Travel Planning
US9195937B2 (en) 2009-02-25 2015-11-24 Mcafee, Inc. System and method for intelligent state management
US9602548B2 (en) 2009-02-25 2017-03-21 Mcafee, Inc. System and method for intelligent state management
US8473442B1 (en) 2009-02-25 2013-06-25 Mcafee, Inc. System and method for intelligent state management
US20100235214A1 (en) * 2009-03-13 2010-09-16 Research In Motion Limited Method and computing device for processing a calendar database stored at a memory device
US9313232B2 (en) 2009-03-25 2016-04-12 Mcafee, Inc. System and method for data mining and security policy management
US8667121B2 (en) 2009-03-25 2014-03-04 Mcafee, Inc. System and method for managing data and policies
US8447722B1 (en) 2009-03-25 2013-05-21 Mcafee, Inc. System and method for data mining and security policy management
US8918359B2 (en) 2009-03-25 2014-12-23 Mcafee, Inc. System and method for data mining and security policy management
US20110161128A1 (en) * 2009-12-31 2011-06-30 Mckesson Financial Holdings Limited Scheduling and Assigning Units of Work
US8751966B2 (en) 2010-04-22 2014-06-10 Microsoft Corporation Display of filtered data via ordered values
US11316848B2 (en) 2010-11-04 2022-04-26 Mcafee, Llc System and method for protecting specified data combinations
US8806615B2 (en) 2010-11-04 2014-08-12 Mcafee, Inc. System and method for protecting specified data combinations
US10666646B2 (en) 2010-11-04 2020-05-26 Mcafee, Llc System and method for protecting specified data combinations
US10313337B2 (en) 2010-11-04 2019-06-04 Mcafee, Llc System and method for protecting specified data combinations
US9794254B2 (en) 2010-11-04 2017-10-17 Mcafee, Inc. System and method for protecting specified data combinations
US20130007645A1 (en) * 2011-06-30 2013-01-03 Microsoft Corporation Visual time filter control tool for data analysis applications
US8700561B2 (en) 2011-12-27 2014-04-15 Mcafee, Inc. System and method for providing data protection workflows in a network environment
US9430564B2 (en) 2011-12-27 2016-08-30 Mcafee, Inc. System and method for providing data protection workflows in a network environment
US8739072B1 (en) * 2013-03-07 2014-05-27 Visual BI Solutions Inc. Multi-selection widget for selecting multiple time periods at multiple levels within a time dimension hierarchy
US8997022B1 (en) 2013-03-07 2015-03-31 Visual BI Solutions Inc. Multi-selection widget for selecting multiple time periods at multiple levels within a time dimension hierarchy
US20160085424A1 (en) * 2014-09-22 2016-03-24 Samsung Electronics Co., Ltd. Method and apparatus for inputting object in electronic device
US20160124756A1 (en) * 2014-10-29 2016-05-05 Bank Of America Corporation Keyboard-accessible calendar for individual with disabilities
US20170103095A1 (en) * 2015-10-07 2017-04-13 Janine C.Y. HSU System of third party event selection for personal calendars
US20200019292A1 (en) * 2016-09-30 2020-01-16 Sap Se Synchronized calendar and timeline adaptive user interface
US10942641B2 (en) * 2016-09-30 2021-03-09 Sap Se Synchronized calendar and timeline adaptive user interface
CN109656958A (en) * 2018-12-18 2019-04-19 北京小米移动软件有限公司 Data query method and system
CN109656958B (en) * 2018-12-18 2021-11-16 北京小米移动软件有限公司 Data query method and system

Similar Documents

Publication Publication Date Title
US7296232B1 (en) Calendar control for selection of time periods to filter data
AU2018202241B2 (en) A system and method for dialog customization
US5414838A (en) System for extracting historical market information with condition and attributed windows
US8682829B2 (en) Determining the occurrence of events using decision trees
US8606609B2 (en) Method and system for visually indicating project task durations are estimated using a single character
US7610258B2 (en) System and method for exposing a child list
US7979377B2 (en) Method and system of deploying server-based applications
US7506274B2 (en) System and method for interactively displaying multi-dimensional data
US6065012A (en) System and method for displaying and manipulating user-relevant data
US7302444B1 (en) System for designating grid-based database reports
US6278450B1 (en) System and method for customizing controls on a toolbar
US8365095B2 (en) System and method for assigning and scheduling activities
US20040041838A1 (en) Method and system for graphing data
US20100145985A1 (en) Document management apparatus, method, and program
US20030172082A1 (en) Method and system for accessing action item information
US7197696B1 (en) System, method and computer program product to populate data into spreadsheets and execute functions and programs within the same
US20050171934A1 (en) System and method for generating a parameterized query
US5905494A (en) Method and system within an object oriented programming environment for enhanced efficiency of entry of operator inputs utilizing a complex object
US20080162458A1 (en) Dynamic construction of selection screens
WO2001031427A1 (en) Method and system for automatically generating an application program based upon data characteristics
Eyth et al. EmisView: New Software for Visualizing and Quality Assuring Emission Modeling Data
JP2002215592A (en) Device and method for date and time determination and recording medium
Shoval Detailed Design of the Transactions and Class Methods
Sempf et al. Crystal Reports for. NET
WO2002029523A2 (en) System and process for management of changes and modifications in a process

Legal Events

Date Code Title Description
AS Assignment

Owner name: MICROSOFT CORPORATION, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BURDICK, BRIAN;KUNDU, ABHIJIT;REEL/FRAME:012759/0396

Effective date: 20020329

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034541/0477

Effective date: 20141014

FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: SERVICENOW, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT TECHNOLOGY LICENSING, LLC;REEL/FRAME:047681/0916

Effective date: 20181115

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

AS Assignment

Owner name: SERVICENOW, INC., CALIFORNIA

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE RECORDAL TO REMOVE INADVERTENTLY RECOREDED PROPERTIES SHOWN IN ATTACHED SHEET PREVIOUSLY RECORDED AT REEL: 047681 FRAME: 0916. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT;ASSIGNOR:MICROSOFT TECHNOLOGY LICENSING, LLC;REEL/FRAME:049797/0119

Effective date: 20181115

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20191113