The invention relates to user interfaces for database interaction. More specifically, the invention relates to automatic methods for producing database selection screens.
Commercially-available databases are often designed to store arbitrary types and quantities of data, so that a single, flexible database engine can be used in many different applications. However, even within a relatively narrow field of endeavor (e.g. supply chain management or medical practice accounting), two different database users may have different requirements for effective integration of the database into their business operations. Such requirements are traditionally satisfied through database customization, where an engineer configures database operational parameters and writes software to adapt the database's capabilities to the business's needs.
Database customization can be expensive and time-consuming, and sometimes requires special training and experience to perform correctly. Therefore, some businesses must make do with a generic configuration and functionality, or with a system that has become outdated with respect to the business's present needs. Database systems and methods that can be configured and customized more flexibly (and by users with less special training) may be valuable to the businesses that use them.
Embodiments of the invention are illustrated by way of example and not by way of limitation in the figures of the accompanying drawings in which like references indicate similar elements. It should be noted that references to “an” or “one” embodiment in this disclosure are not necessarily to the same embodiment, and such references mean “at least one.”
Embodiments of the invention present a menu of related data fields in a database and accept a selection of a subset of the fields. Each selected field is associated with a matching style, and the selections and matching styles are saved as a dynamic selection screen definition. Later, the dynamic selection screen is displayed, and a user can enter values to parameterize a database search. Some embodiments can also produce dynamic selection screens from automatically-generated field and matching-style definitions.
Some matching styles may require additional information to configure a search. For example, when the “Range” matching style 150 is selected for searches on the “retail” field of the “price” table, a detail window 155 may be displayed to collect more information from the user. Some embodiments may collect general information about the selection screen as well, such as a title 160 to be displayed when the dynamic selection screen is invoked. Once the user makes his choices, the selection screen may be invoked immediately via the “Run” control 165, or saved for future use with the “Save” control 170.
The monochrome, limited resolution format of the accompanying figures is poorly suited to illustrating the powerful user interface an embodiment can present by using color and dynamic content on a contemporary computer display. However, the following descriptions of features offered by some embodiments are adequate to permit one of skill in the art to produce a dynamic selection screen interface according to an aspect of the invention. Like the simple “between” and “not between” choice presented in range detail screen 155, an embodiment can offer some or all of the following matching method modifiers: matching multiple separate values or ranges; retrieving default values for some fields from the database; selection of records that do not match the criteria (rather than those that do match); and loose or flexible matching (for example, case insensitive text matching). In addition, an embodiment can permit the user to make certain selection criteria mandatory (i.e. the query cannot be executed unless the criterion is specified). A first match field can be associated with a second match field, so that an entry in one field automatically updates the other field. As a simple example of this, in a minimum/maximum range field, entering a value into the minimum field that is larger than the currently-entered maximum value may cause the maximum value to be increased to the newly-entered value.
Next, a user's selections of a subset of the related database fields are accepted (310). Some systems can automatically produce selection screens for all of the related database fields, so embodiments may be particularly useful when the user only wants to parameterize a query on a proper subset (i.e. fewer than all) of the related database fields. An embodiment can use a graphical user interface (“GUI”) similar to that shown in
Some fields may be associated with more than one matching method to permit greater flexibility when the dynamic selection screen is used. For example, a numeric field might be associated with all of “minimum,” “maximum” and “range” match methods. This would permit the dynamic selection screen to control a wider range of searches.
Next, some (but not all) embodiments collect information to affect the presentation of the dynamic selection screen (320). For example, an embodiment may automatically produce a sample default selection screen like that shown in
Later, the saved dynamic selection screen is invoked or executed (340). For example, screens may be saved with, and selected by, a name or other identifier. When the screen is invoked, the system displays labels and query entry fields and accepts user input into those fields (350). When the user indicates that he is satisfied with the entries (for example, by activating a “Go” control 260), the user input is used to construct a parameterized database query (360). The query is executed (370) and any results are displayed to the user (380). Note that in some embodiments, the dynamic selection screen configuration is not saved. Instead, the configured screen is invoked immediately and used to parameterize a search.
Databases whose functionality can be customized using add-on software usually offer an Application Program Interface (“API”) that developers use to permit their software to control and/or interact with the database. An embodiment of the invention can include a code generator which automatically produces software based on the selected fields and matching methods. The software may be in “source code” form, suitable for further modification, or in a binary, “executable” form that can be interpreted or executed by a programmable processor.
An embodiment that stores user selections to describe a dynamic selection screen in a text-based format such as XML, may be able to accept XML selections created by other processes as well. For example, a first user can configure a dynamic selection screen as discussed above, and then send the XML description to a second user. The second user can invoke or execute the XML description through his database and perform the query designed by the first user. XML descriptions of dynamic selection screens may also be prepared by an automatic or autonomous process such as a computer program.
If the described dynamic selection screen will not produce a valid query (430), an error message may be displayed (440). Otherwise, a dynamic selection screen corresponding to the selected description is automatically displayed (450) and user entries into the query fields are accepted (460). A parameterized query is constructed based on the user's entries and then executed (470). Results of the query are then displayed (480).
An embodiment of the invention may be a machine-readable medium having stored thereon instructions which cause a programmable processor to perform operations as described above. In other embodiments, the operations might be performed by specific hardware components that contain hardwired logic. Those operations might alternatively be performed by any combination of programmed computer components and custom hardware components.
A machine-readable medium may include any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer), including but not limited to Compact Disc Read-Only Memory (CD-ROM), Read-Only Memory (ROM), Random Access Memory (RAM), and Erasable Programmable Read-Only Memory (EPROM).
The applications of the present invention have been described largely by reference to specific examples and in terms of particular allocations of functionality to certain hardware and/or software components. However, those of skill in the art will recognize that customized database selection screens can also be produced by software and hardware that distribute the functions of embodiments of this invention differently than herein described. Such variations and implementations are understood to be captured according to the following claims.