1. Technical Field
The present disclosure relates to data visualization and more specifically to user interfaces for pivot views.
2. Related Art
Pivot views are defined on top of base tables, and operate to provide a summary or consolidated (e.g., sum, average, etc.) view of the data points in the base tables. For example, a base table may store the details of sales on a daily basis, while a pivot view may provide consolidated information such as aggregate sales by month, average sales per month or by sales person, etc., as is well known in the relevant arts. In addition, some of the pivot views may be based on a subset of the sales transactions (e.g., by region, duration, sales-person, or combination), normally by application of appropriate filters as is also well known in the relevant arts.
Pivot view may be provided associated with complex business intelligence software to simple Spreadsheets, as is also well known in the relevant arts. In general, users specify criteria (e.g., a condition to be satisfied) for selection of desired data points, the manner (monthly summary, average, etc.) in which such selected data points are to be consolidated/summarized, and the form (table/grid, chart, etc.) in which the resulting output is to be displayed.
It is generally desirable that user interfaces be convenient for users to use pivot views.
Example embodiments of the present disclosure will be described with reference to the accompanying drawings briefly described below.
In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. The drawing in which an element first appears is indicated by the leftmost digit(s) in the corresponding reference number.
An aspect of the present disclosure enables a user to specify a first pivot view as a publisher upon change of a criteria for selection of data points, and a second pivot view as a subscriber upon occurrence of the change. When an event representing a change of the criteria in the first view is detected, both the first view and the second view are updated reflecting the change in the selection criteria. In an embodiment, the change of criteria corresponds to a change in a filter common to both the views. Accordingly, a user may view the same or different set of data points according to respective axis of interest in the different views, and have the convenient view of changes to both the views as the filter is changed only in the first view.
According to another aspect of the present disclosure, the formation of elements of a pivot view is based on usage of GROUP BY and ROLLUP constructs. A first query containing a GROUP BY construct of all of the axis fields is executed on the base tables to identify rows with unique combinations of values. The columns of such identified rows are then examined to determine the set of relevant (detailed) axis values for that axis field (corresponding to the column in the base tables). A cell set is then defined with such axis values forming the (lower) column or (lower) row axis in the pivot grid. A second query contains a ROLLUP construct of all the row and column axis defined at the lowest level of hierarchy of the pivot grid, is executed on the base tables, in addition to the remaining axis fields of the view in a GROUP BY construct. Each position of the cell set is assigned one of the values from the output of the second query. The resulting data is displayed as a corresponding pivot view (grid or chart, in the disclosed embodiments).
According to yet another aspect, a user can modify the axis for a pivot chart, and an updated chart, corresponding to the modified axis, is displayed. In an embodiment, a user is provided the option of switching to grid view of the same data points on which the pivot chart is based. The column and row axis of the grid view are aligned with the X/Y-axes and filters of the pivot chart. The user is then permitted to manipulate (move, remove, slice/dice, etc.) the desired axes and filters of the pivot grid, and eventually switch back to the pivot chart view. The pivot chart view, including the changes caused by user manipulations, is thereafter immediately displayed.
The features described above can be implemented in combinations as well. For example, as the user manipulates the desired axes and filters of the pivot grid, the cell set and corresponding values can be formed using the GROUP BY and ROLLUP constructs, as described above.
Several aspects of the present disclosure are described below with reference to examples for illustration. However, one skilled in the relevant art will recognize that the disclosure can be practiced without one or more of the specific details or with other methods, components, materials and so forth. In other instances, well-known structures, materials, or operations are not shown in detail to avoid obscuring the features of the disclosure. Furthermore, the features/aspects described can be practiced in various combinations, though only some of the combinations are described herein for conciseness.
Network 120 provides connectivity between user systems 110A-110N and server system 150. Network 120 may be implemented using protocols such as Transmission Control Protocol (TCP) and/or Internet Protocol (IP), well known in the relevant arts. In general, in TCP/IP environments, an IP packet is used as a basic unit of transport, with the source address being set to the IP address assigned to the source system from which the packet originates and the destination address set to the IP address of the target system to which the packet is to be eventually delivered. An IP packet is said to be directed to a target system when the destination IP address of the packet is set to the IP address of the target system, such that the packet is eventually delivered to the target system by network 120. Network 120 may be implemented using any combination of wire-based or wireless mediums.
Data store 160 represents a non-volatile (persistent) storage facilitating storage and retrieval of data by applications executing in server system 150. For purpose of illustration, it is assumed that data store 160 has available thereon various data generated, for example, due to the execution of such applications processing user requests. Data store 160 may be implemented as a corresponding database server using relational database technologies and accordingly provide storage and retrieval of data using structured queries such as SQL (Structured Query Language).
Each of user systems 110A-110N represents a system such as a personal computer, workstation, mobile station, mobile phones, computing tablets, etc., used by users to generate (user) requests directed to applications executing in server system 150. The user requests may be generated using appropriate user interfaces (for example, web pages provided by applications executing in server system 150). Aspects of the present disclosure facilitate users to view data stored in data store 160 in pivot views, as described in sections below.
Server system 150 represents a server, such as a web/application server, executing applications capable of processing (user) requests received from users using one of user systems 110A-110N. The server system 150 sends the result of processing of the user requests to the requesting user system 110A. Data generated by such processing may be stored (as base data/tables) in data store 160 and be displayed to users at user systems 110A-110N.
Server system 150 provides a convenient user interface enabling users to view the base data in the form of pivot views. It may be appreciated that the same base data can be viewed in different pivot views. Aspects of the present disclosure provide convenient user interfaces while interacting with such pivot views based on the same base data. Accordingly the description is continued with respect to such pivot views in an example scenario.
Each view is shown with corresponding filters. A filter operates to set criteria, which potentially excludes some of the data points of base table 200. For example, assuming that location is set to California location, the graphical display below is thereafter limited to employees having location 217 set to California (while excluding employees of other locations). In other words, the Employee Count would (potentially) be correspondingly reduced for each bar, compared to the no-filter display of
Both the views (portion 250 and 260 of
In addition, some of the steps may be performed in a different sequence than that depicted below, as suited to the specific environment, as will be apparent to one skilled in the relevant arts. Many of such implementations are contemplated to be covered by several aspects of the present invention. The flow chart begins in step 301, in which control immediately passes to step 310.
In step 310, server system 150 enables a user to specify a first pivot view as a publisher upon change of a criteria for selection of data points. For example, with respect to
In step 320, server system 150 enables a user to specify a second view(260) as a subscriber upon occurrence of the change. The specification of a publisher-subscriber combination associated with an event (i.e., change in criteria based on the supervisor field) implies that a change occurring with respect to the publisher is propagated to the subscriber as well. The second view of
In step 330, server system 150 causes display of the first view(250) and the second view(260) based on same base tables and the corresponding data points of the tables. Both the views may be sent for display on a same page as depicted in
In step 340, server system 150 detects the occurrence of an event representing a change of the specified criteria in the first view(250). The criteria may be specified, for example, based on one of the filters shown in area 250, as also noted above. In the illustrative example, the event represents specification of some value for the Supervisor field by a user while interacting with the first pivot view of
In step 350, server system 150 selects data elements constrained by the changed criteria. In other words, compared to in
In step 360, server system 150 updates both the first view(250) and the second view(260) based on the selected data elements. In other words, the changes specified associated with a publisher are propagated to the corresponding subscribers. The flow chart ends in step 399.
While the flowchart is described as being performed by server system 150, it may be appreciated that some or all of the steps may be performed in user system 110 in alternative embodiments. For example, server system 150 may send a web page containing appropriate scripts (or programming logic), which causes such steps to be performed at user system 110.
The description is continued with respect to example user interfaces using which the above features can be implemented.
Message data field 510 represents a selection of the appropriate filter (e.g., using a drop-down list permitting selection of multiple items in the list), on which the event is sought to be triggered Multiple filters can be selected in the screen of
It may thus be appreciated that the user has enhanced convenience of selectively being able to automatically propagate changes in filters in one view to another view. In other words, in the absence of the specification similar to
The description is continued with respect to the details of server system 150 in an embodiment.
Network interface 910 provides electrical and protocol interfaces (e.g., network cards, network protocol stacks, etc.) to enable various blocks of server system 150 to communicate via network 120. In general, packets directed to server system 150 are examined for forwarding to the appropriate internal block/application. Similarly, network interface 910 sends packets directed to other external systems (upon receipt of the corresponding packets from the respective internal blocks of
Web server 920 provides a convenient front end interface using which users may interact with server system 150. Web server 920 receives requests from client system 110 and depending on the request, it propagates it further to one of the blocks of server system 150. Web server 920 may be implemented based on various web server products such as Oracle WebLogic, IBM WebSphere etc. servers, available in the marketplace. In an embodiment, web server 920 provides the interface by serving HTML web pages to user systems 110A-110N.
View configuration block 930 facilitates users to define/configure pivot views, in addition to the subscriber-publisher relationships (for example, using the interfaces described above). Definition of a pivot view entails specifying rows, columns and filters for the view. The user can also specify a base query/table on which pivot view is to be defined. The configured information is stored in view definition 940 (for operation), and also in data store 160. View definition 940 represents a buffer where pivot view definitions created using View configuration block 930 and the configured publisher-subscriber information, are stored temporarily.
Database handler block 960 provides interfaces, which are invocable by various blocks to store/retrieve data. Such storing/retrieval may be based on various SQL queries. As noted above, the data forming for pivot views, as well as configuration data defining the structure of pivot views (and the configured publisher-subscriber information) can be stored in data store 160.
View formation block 950 generates (or sends for display) a pivot view as per configurations (view definition) specified by a user and the corresponding base data/tables stored in data store 160. Multiple pivot views (potentially based on different base tables) may be sent for display, depending on user requests. In addition, when an indication of a change of filter is received for a pivot view, view formation block 950 may generate a fresh query to retrieve the corresponding data from data store 160, and refresh the pivot view to correspond to the newly retrieved data.
In addition, if such refreshed pivot view is shown to be configured as a publisher in relation to the specific field forming the basis for the changed filter, view formation block 950 identifies any pivot views configured as subscribers for the same field/filter. In the illustrative example of
In an embodiment, view formation block 950 notifies the subscriber (view 260) of the change (“publisher change”) sought by the publisher (here, Supervisor being set to a specific value in view 250). In response, view 260 sends a change request indicating the same change to its view, in addition to information on existing constraints. The existing constraints may include those filter values (“prior filter values”) that have been set in view 260 as of that time instance (e.g., department being set to some value causing data points to be reduced by that time instance already). Accordingly, view formation block 950 may issue a query with the combined constraints of the prior filter values and the publisher change. View 260 is updated based on the results of the query.
It may accordingly be appreciated that data points underlying views 250 and 260 can be different, though initially both may be instantiated with the same data points. For example, when the two views are instantiated, 200 of the 350 data points in the base table may be the basis for display of the two views. Thereafter, a user may set a filter in view 260 to cause the display to represent only 160 of the 200 data points. Assuming, the user sets the Supervisor filter in view 250 (publisher) to cause the corresponding display to be generated based on 180 data points, it may be appreciated that the Supervisor filter is further applied only on the 160 data points of view 260 to update the display there.
However, a simpler case is when both the views represent the same (e.g., 200 noted above) data points. In such a case also, the user can have different axes for the two views, and as filter is applied in one view, the effect in the second view is also conveniently observed for the same data points. While the features are described with respect to two views for conciseness, it may be appreciated that many subscribers (of corresponding views) may be configured, and the user may be able to view the changes effected in all such configured subscribers.
It may be appreciated that view formation block 950 generates SQL queries to data store 160, assuming data store 160 represents a relational database. Aspects of the present disclosure provide for efficient formation of pivot views (by view formation block 950) based on ‘Rollup’, ‘group by’ and ‘grouping’ SQL constructs. The constructs are briefly described below first.
A brief introduction of the three constructs is provided below. However, for further details of ROLLUP AND GROUP BY and other aspects of the present disclosure, the reader is referred to a documents entitled “Oracle® Database Data Warehousing Guide—11g Release 1 (11.1)” Number: B28313-02 from Oracle Corporation, available at the below URL:
http://docs.oracle.com/cd/B28359—01/server.111/b28313/aggreg.htm#autoId0
For further details of GROUPING construct and other aspects of the present disclosure, the reader is referred to a documents entitled “Oracle® Database SQL Language Reference 11g Release 1 (11.1)”, Number: B28286-06 from Oracle Corporation, available at the below URL:
GROUPING—http://docs.oracle.com/cd/B28359—01/server.111/b28286/functions064.htm
A Group By construct of a SQL query has the form.
group by Column-name1, Column-name2 . . .
In operation, assuming there are N columns specified in the group-by construct, the construct returns as many of the unique combination of N-tuples as are present in the base tables to which the query is applied. In a simple case of only one column being specified, the construct returns unique list of values in that column. In case two columns are specified, the construct returns unique pairs present in the underlying table, with first element belonging to the first column and the second element belonging to the second column.
A rollup construct takes an ordered list of (M) columns as parameters, and operates to return several (M+1) tuples, with the first M-elements corresponding to the M-columns, and the last element providing a sub-total for the corresponding M-element combination. The number of tuples returned may be viewed as being (M+1) levels, with each level having several tuples. In the first level, all unique combination of values present in M columns (and the respective totals) are included. In the second level, only the right most (last) column is set to ‘ALL’ (don't care) and (M−1) left most columns having unique values are included as respective tuples (with the aggregate value in the last column).
For each subsequent level, another column from the right is set to ‘ALL’, while including tuples with unique combination of values for the rest of the columns. The last (i.e., (M+1)st) level would include ‘ALL’ for all the M columns, to obtain a grand total for all applicable rows in the M-columns.
To understand the GROUPING construct, it should be appreciated that the ‘ALL’ may be represented by NULL, while there may be stored values which are also NULL. The GROUPING construct takes a column as a parameter, and indicates whether a value for that column represents ALL (say by 1) or it is a stored NULL value (say by 0).
The manner in which the above constructs are used to generate pivot views according to various aspects of the present disclosure, is described below with examples. For illustration, the table of
The pivot view is shown having grid and chart views, and different configurations being provided for both. For the Grid, the user is shown as having specified Status and Biller as filters, Bill type and invoice amount as Column Axis, and Bill To and Source as row axis. For the chart, Bill To is the X-axis and Inv Amount is the Y-axis. The eventual pivot view is shown in
In addition, some of the steps may be performed in a different sequence than that depicted below, as suited to the specific environment, as will be apparent to one skilled in the relevant arts. Many of such implementations are contemplated to be covered by several aspects of the present disclosure. The flow chart begins in step 1201, in which control immediately passes to step 1205.
In step 1205, a user specifies a corresponding set of axis fields and value fields, for each a pivot view of interest. When multiple axes are specified in a dimension (i.e., column or row for grid view, and X or Y axis for chart view), such multiple axes are viewed as being in a hierarchy, with one axis at the highest level and the remaining at lower levels.
In step 1210, view formation block 950 retrieves unique tuples for all axis fields by executing SQL query with GROUP BY on all the table columns corresponding to the axis fields. Thus, a mapping of each column of the table to the corresponding axis field may also be maintained within view definition 940, and view formation block 950 accordingly examines the corresponding data to first determine the specific column identifiers to be included in the SQL query.
In step 1220, view formation block 950 identifies a list of unique values (axis values) for each of the table columns (or corresponding axis fields) in the tuples retrieved in step 1210. As may be appreciated, these values are eventually used as axis values, for which corresponding detailed facts are displayed. It may be appreciated that multiple tuples of step 1210 may have the same value for an axis, and thus the duplicates are removed in forming the list for each axis. Such a feature is particularly important when the base tables can have a large number (e.g., of the order of millions) of records, and the GROUPBY operates to conveniently provide only a smaller subset of unique records, thereby reducing the number of records retrieved and processed in a random access memory (RAM).
In step 1230, view formation block 950 forms a cell set indicating the applicable combination of axis values for dimensions in a pivot view of interest. As may be appreciated, the number of combinations of interest would depend on the extent of detail indicated as being of interest, as illustrated with examples below. Some of the combination of values would not be of interest, assuming the user has chosen to not expand to the lowest level of detail in the pivot view.
In step 1240, view formation block 950 forms a second query with ROLLUP on axis fields at the lowest level of hierarchy in the corresponding dimensions, and GROUPING on all axis fields of the pivot view. The second query in addition specifies that the aggregation of the values (specified by the value field) is by the fact of interest. The output generated may be viewed as a table containing all possible aggregate values of interest.
In step 1250, view formation block 950 assigns individual values of the output of the second query to corresponding combination of the cell set. As the cell set indicates only the applicable facts of interest, the corresponding values may be selected from the output of the second query. In step 1260, view formation block 950 sends the pivot view thus formed, for display. The flow chart ends in step 1299 thereafter.
Though not expressly described with respect to
Thus, in accordance with the approach of
In addition, when a filter is added/removed, the corresponding condition is added to both the queries to constrain the data points applicable in the display of the pivot view. The features of the flowchart in some example implementations, are illustrated below.
From the above, it may be appreciated that two queries are generated for each pivot view. The queries respectively operate to retrieve:
Assuming
As may be appreciated, view formation block 950 includes all the axis fields in the GROUP BY clause (as well as select clause). All the axis fields are selected for further processing by view formation block 950.
As noted above, steps 1230 onwards are performed to correspond to each level of detail that a user may select while interacting with the pivot view. The steps are illustrated for a few use cases below.
For use case 1, it is assumed that there is no expansion on row or columns
The second query to retrieve the actual data (step 1240) is formed as:
As may be appreciated, the select clause contains the fact of interest (i.e., invoice amount), in addition to the three relevant axis fields. The GROUP BY clause also contains the three axis fields, except that ROLLUP is performed on the axis fields in the lowest level of hierarchy in each dimension (i.e., SOURCE in X/row, and BILL TYPE in Y/column). Implementation of filters typically entails additional clauses (where SQL clause), but are not shown for conciseness.
The table may be viewed as having three axis columns (1501-1503), a sum column (1504), and three grouping columns (1505-1507). Each grouping column corresponds to a corresponding axis column of the three axis columns. A value of 1 in the Grouping columns indicates that all or any value for the corresponding axis element is deemed to contribute to the Sum of the corresponding row. In other words, multiple rows from the base table would be considered with different values for the Axis (having 1 for grouping). On the other hand, a value of 0 in the Grouping column indicates that the corresponding value in the Axis column is specific. In such a case, only those rows from the base table having that specific value for the Axis column would contribute to the Sum value.
A blank value for an Axis Column may either correspond to a value of 1 in the corresponding Grouping Column, or the Axis column may itself have a blank value (in combination with a value of 0 in the corresponding Column).
For example, in the three rows extracted from the table of
The second row above indicates, Bill To and Source axis values are specific and Bill Type is ALL/don't care values. In other words, the sum there represents the additive effect of records matching the specific values of Bill To and Source, irrespective of Bill Type value.
The third row indicates that the Sum there is an aggregate value of invoice amount, when Bill To has a specific value equaling 1000.
For use case 2, it is assumed that the user expands one or more rows and/or columns, in particular, row 1801 of the table of
Additionally, as the “Bill Type” column is also expanded, causing the corresponding cell set values to be included. Examples of such entries include: [1000, All, AM], [1001, All, AM], [1002, All, AM], [1003, All, AM], [1011, All, AM], etc.
Since the Bill To is also expanded, for Bill To value 1002 with the “Bill Type” expanded is represented as follows in the cell set: [1002, SERVICE, AM], [1002, SERVICE, MSC], [1002, SERVICE, OM, [1002, SERVICE, PMC], etc.
For use case 3, it is assumed that the user has dragged the “Biller” field as a row axis, as depicted in
In this case as well, the first query to retrieve data remains the same.
The corresponding second query is:
Compared to the case of use cases 1 and 2, it may be appreciated that the second query BILLER (at lowest level) replacing the SOURCE for the ROLLUP corresponding to the row axis, and the BILLER is shown added to the SELECT clause. As a result, the detailed information at BILLER level is available to view formation block 950, which can be used to assign to corresponding cells of the applicable cell sets.
For use case 4, it is assumed that the user has dragged the “Status” field as a column axis, as depicted in
The principle of the query to be executed is explained similar to as use case 3. In particular, ROLLUP is shown applied on STATUS, instead of on BILL TYPE (for column/Y axis). STATUS is also added to the select clause.
Another aspect of the present disclosure enables users to modify (add or remove) axes of a pivot chart and the display is updated to reflect the modifications, as described below with examples.
An aspect of the present disclosure enables a user to modify the axes of a pivot chart, as described with examples in relation to
It may be appreciated that pivot chart of
It may be also observed that the pivot view of
It is similarly assumed that the same rows of the base tables forming the basis for display, are also used to provide the aggregate values shown displayed for columns 2801 (Prd Sales and Sales) and 2802 as well. In addition, both the pivot chart and pivot grid are shown as containing the same two filter fields (Region and Product).
When the user clicks on ‘Refresh Chart’ button, the modifications shown effected in FIGS. 28/29 are reflected in the pivot chart, as depicted in
In
The above user experience may be implemented by appropriate modifications to view formation block 950, the corresponding operation of which can be summarized as follows:
While the above example is provided to add only a single axis to a column, more axes can be added, some to the rows as well, as depicted in additional examples below. These features also are implemented by appropriate changes to view formation block 950.
It may be observed that the ‘Region’ on X-axis of the pivot chart is shown as row axis in the pivot grid of
Similarly, with respect to the column axis, the fact/value fields corresponding to Prd sales 3211, sales 3212 and unit cost 3213. Additional detail, by instance, for each of the column axes is shown, as being available.
It may be appreciated that there is additional hierarchical information shown in the grid view of
The user is now (with respect to
1. User drags Region and makes it a Filter. He selects a value “East Coast” for it;
2. User drags the Month on to the Row Axis; and
3. User drags all the Value/fact fields on to the filter area and selects the “Sales” value.
1. The Month field becomes the X axis.
2. The filters Instance, Region and Product are retained. The value selected for the Region filter is retained too.
3. The Value field selected as a filter, “Sales”, becomes the Y Axis.
Thus, there is an option for a user to bring up the grid from a chart only view. User can perform various actions like drag/drop and slicing/filtering of data to change the grid layout. Once the layout is satisfactory, the chart can be synchronized with the grid view.
Since the pivot chart can show only a maximum of two values on the X Axis (X Axis value and Series) and one value on the Y Axis (Selected “Value Field”), the mapping of various types when pivot grid is formed from pivot chart is shown below:
It may be appreciated that the Chart X axis and Series are plotted as grid row and column respectively. All other “axis fields” will be plotted on the axis based on what is defined on the Pivot Grid Model.
Furthermore, based on the displayed pivot grid, user can perform all the usual actions on the grid.
Once the grid layout is satisfactory, the user can synchronize the chart with the grid view. When the chart is refreshed, the reverse mapping is done as follows.
It may be further noted that since only one X Axis and series is available to be plotted on the chart in a chart-only mode, only the highest level “axis fields” on the row and column of the grid are plotted on the chart. The remaining “axis fields” are ignored and are not plotted on the chart.
In addition, the layout change on the grid which comes up is temporary in nature. They can only be used to synchronize the chart and are not saved anywhere in the data store 160. The Grid and Chart Filters are same and the selected values are synchronized too in the examples of above.
It should be appreciated that the respective features described above with Figure sets 3-8 (first set of techniques), 9-26 (second set) and 27-34 (third set) can be worked in various combinations, as will be apparent to one skilled in the relevant arts. For example, the GROUP BY and ROLLUP constructs of second set can be used for forming views of the publisher and subscriber of first set, and also for the chart/grid views of third set. Similarly, the ability to modify axis of chart of the third set may be applied to view 250 of
It should be further appreciated that the features described above can be implemented in various embodiments as a desired combination of one or more of hardware, executable modules, and firmware. The description is continued with respect to an embodiment in which various features are operative when the software instructions described above are executed.
Digital processing system 3500 may contain one or more processors such as a central processing unit (CPU) 3510, random access memory (RAM) 3520, secondary memory 3530, graphics controller 3560, display unit 3570, network interface 3580, and input interface 3590. All the components except display unit 3570 may communicate with each other over communication path 3550, which may contain several buses as is well known in the relevant arts. The components of
CPU 3510 may execute instructions stored in RAM 3520 to provide several features of the present disclosure described above. CPU 3510 may contain multiple processing units, with each processing unit potentially being designed for a specific task. Alternatively, CPU 3510 may contain only a single general-purpose processing unit.
RAM 3520 may receive instructions from secondary memory 3530 using communication path 3550. RAM 3520 is shown currently containing software instructions constituting shared environment 3525 and/or user programs 3526. Shared environment 3525 includes operating systems, device drivers, virtual machines, etc., which provide a (common) run time environment for execution of user programs 3526.
Graphics controller 3560 generates display signals (e.g., in RGB format) to display unit 3570 based on data/instructions received from CPU 3510. Display unit 3570 contains a display screen to display the images (e.g., those the display screens depicted above) defined by the display signals. Input interface 3590 may correspond to a keyboard and a pointing device (e.g., touch-pad, mouse) and may be used to provide inputs. Network interface 3580 provides connectivity to a network (e.g., using Internet Protocol), and may be used to communicate with other systems (such as those shown in
Secondary memory 3530 may contain hard drive 3535, flash memory 3536, and removable storage drive 3537. Secondary memory 3530 may store the data and software instructions (e.g., for performing the actions noted above with respect to various user interfaces and flow charts), which enable digital processing system 3500 to provide several features in accordance with the present disclosure.
Some or all of the data and instructions may be provided on removable storage unit 3540, and the data and instructions may be read and provided by removable storage drive 3537 to CPU 3510. Floppy drive, magnetic tape drive, CD-ROM drive, DVD Drive, Flash memory, removable memory chip (PCMCIA Card, EEPROM) are examples of such removable storage drive 3537.
Removable storage unit 3540 may be implemented using medium and storage format compatible with removable storage drive 3537 such that removable storage drive 3537 can read the data and instructions. Thus, removable storage unit 3540 includes a computer readable (storage) medium having stored therein computer software and/or data. However, the computer (or machine, in general) readable medium can be in other forms (e.g., non-removable, random access, etc.).
In this document, the term “computer program product” is used to generally refer to removable storage unit 3540 or hard disk installed in hard drive 3535. These computer program products are means for providing software to digital processing system 3500. CPU 3510 may retrieve the software instructions, and execute the instructions to provide various features of the present disclosure described above.
The term “storage media/medium” as used herein refers to any non-transitory media that store data and/or instructions that cause a machine to operate in a specific fashion. Such storage media may comprise non-volatile media and/or volatile media. Non-volatile media includes, for example, optical disks, magnetic disks, or solid-state drives, such as secondary memory 3530. Volatile media includes dynamic memory, such as RAM 3520. Common forms of storage media include, for example, a floppy disk, a flexible disk, hard disk, solid-state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip or cartridge.
Storage media is distinct from but may be used in conjunction with transmission media. Transmission media participates in transferring information between storage media. For example, transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 3550. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications.
Reference throughout this specification to “one embodiment”, “an embodiment”, or similar language means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present disclosure. Thus, appearances of the phrases “in one embodiment”, “in an embodiment” and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment.
Furthermore, the described features, structures, or characteristics of the disclosure may be combined in any suitable manner in one or more embodiments. In the above description, numerous specific details are provided such as examples of programming, software modules, user selections, network transactions, database queries, database structures, hardware modules, hardware circuits, hardware chips, etc., to provide a thorough understanding of embodiments of the disclosure.
While various embodiments of the present disclosure have been described above, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of the present disclosure should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.
It should be understood that the figures and/or screen shots illustrated in the attachments highlighting the functionality and advantages of the present disclosure are presented for example purposes only. The present disclosure is sufficiently flexible and configurable, such that it may be utilized in ways other than that shown in the accompanying figures.
Further, the purpose of the following Abstract is to enable the U.S. Patent and Trademark Office and the public generally, and especially the scientists, engineers and practitioners in the art who are not familiar with patent or legal terms or phraseology, to determine quickly from a cursory inspection the nature and essence of the technical disclosure of the application. The Abstract is not intended to be limiting as to the scope of the present disclosure in any way.
The present application is a non-provisional of and claims priority from co-pending U.S. provisional application No. 61/880,292; Entitled: “USER INTERFACE FOR PIVOT VIEWS”, Filed on: 20 Sep. 2013, first named inventor: Balaji Pattabhiraman, and is incorporated in its entirety into the present application.
Number | Date | Country | |
---|---|---|---|
61880292 | Sep 2013 | US |