System and method of chart data layout

Abstract
A chart data layout system and method of processing chart data in a report is provided. The chart data layout system comprises a query module for decomposing required data into required data queries, a chart layout module for rendering a chart based upon chart data received from the queries, a category module for displaying category aggregate information in a category location of a chart, and a series module for displaying series aggregate information in a series location of the chart. The method comprises the steps of decomposing required data into queries, retrieving queried data, rendering a chart based upon the queried data, rendering category information on a category label of the chart based upon queried data, and rendering series information on a series label of the chart based upon queried data.
Description

BRIEF DESCRIPTION OF THE DRAWINGS

These and other features of the invention will become more apparent from the following description in which reference is made to the appended drawings wherein:



FIG. 1 is a typical chart that shows revenue for years and location;



FIG. 2 shows in a component diagram an example of a chart data layout system, in accordance with an embodiment of the present invention;



FIG. 3 shows in a process flow diagram an example of a process of rendering chart data, in accordance with an embodiment of the chart data layout system;



FIG. 4 shows in a flowchart an example of a method of chart data layout processing, in accordance with an embodiment of the chart data layout system;



FIG. 5 shows in a component diagram an example of a chart layout, in accordance with an embodiment of the chart data layout system; and



FIG. 6 shows in a chart an example of combinations of the desired information into a single format.





DETAILED DESCRIPTION

Charts display information in a graphical manner. They are an effective means to display a large amount of information quickly to a business user. Common types are bar or column charts which show numerical information for category and series information. FIG. 1 is a typical chart that shows revenue for years and location. The data that is shown in this chart is illustrated in Table 1 below:














TABLE 1







Revenue
2004
2005
2006





















Americas
$15.41
$19.47
$24.33



Asia Pacific
$2.01
$6.54
$8.53



Central Europe
$10.21
$19.04
$21.42



Northern Europe
$3.34
$10.50
$11.89



Southern Europe
$3.78
$7.00
$8.10










Consider the case were the business users needs to see the revenue information in the about chart, but also needs to see total revenue for each year, the percentage of revenue each territory contributed to the total and the total revenue for all years and all regions. An example of how this is typically shown is included in FIG. 1. Table 2 shows the basic revenue information in a clear and easy to consume manner.













TABLE 2





Revenue
2004
2005
2006
Total for all years



















Americas
$15.41
$19.47
$24.33
$59.22


Asia Pacific
$2.01
$6.54
$8.53
$17.08


Central Europe
$10.21
$19.04
$21.42
$50.67


Northern Europe
$3.34
$10.50
$11.89
$25.72


Southern Europe
$3.78
$7.00
$8.10
$18.88


Total for all regions
$34.75
$62.56
$74.27
$171.58









The crosstab shows the overall total for all years and all regions. It also shows the totals for each year.











TABLE 3







Share of Total



















Americas
35%



Asia Pacific
10%



Central Europe
30%



Northern Europe
15%



Southern Europe
11%










This crosstab shows the portion of revenue that each provided.



FIG. 2 shows in a component diagram an example of a chart data layout system 100, in accordance with an embodiment of the present invention. The chart data layout system 100 (or rendering engine) comprises a query module 102 for decomposing required data into required data queries, a chart layout module 104 for rendering a chart based upon chart data received from the queries, a category module 106 for displaying category aggregate information in a category location of a chart, and a series module 108 for displaying series aggregate information in a series location of the chart.


Through the use of a report specification and a query engine, the chart data layout system 100 (or charting engine) can determine how to calculate the values that the author wants. For example, by placing a reference to Revenue in the chart title, the chart data layout system 100 understands this to mean total revenue. If a reference to Revenue is placed in the legend, the chart data layout system 100 understands this to mean total revenue for each item in the legend.


In addition to the fact that this type of information can be displayed in the chart, the simplicity with which this chart can be created is also part of the chart data layout system 100. FIG. 3 shows in a process flow diagram 150 an example of a process of rendering chart data, in accordance with an embodiment of the chart data layout system 100. Here a chart specification 152 is created by the actions of an author. Based on which values the author wishes to see and where, the actions are captured by the authoring tool (not shown). When the chart is run, the rendering engine (chart data layout system 100) interprets the specification and formulates one or more queries which are then sent to a query engine 154 for execution. The resulting data is then rendered into the chart at the appropriate location.



FIG. 4 shows in a flowchart an example of a method of chart data layout processing (200), in accordance with an embodiment of the chart data layout system 100. A report author specifies which aggregates are to appear in the category and series labels. Based on the report author specifications, the data required for the chart is decomposed into several queries (202). One query is used for the chart data, and one query is used for each aggregate to be displayed in the category and series labels. The query for the aggregates in the category label includes the category and the aggregate. The same is true for the series. Once the data has been retrieved (204), a rendering component takes the data from the chart and plots the chart as normal (206). The rendering component also takes the data from queries related to the category label and places the category data appropriately in the chart before the chart is finally rendered (208). Finally, the series component also takes the data from queries related to the series label and places the series data appropriately in the chart before the chart is finally rendered (210). Other steps may be added to the method (200), such as decomposing the chart into further queries for headers, footers, legends, titles and subtitles and rendering data retrieved from the further queries into their location on the chart as set out in the report specification.


The concept of adding information to category and series labels can also be expanded to other areas of the chart, including legends and labels. FIG. 6 shows an example of a chart layout 250 showing areas where information (including aggregates) can be added. The chart layout 250 comprises a body 252 optionally having a body title 254 and body sub-title 256, a legend 258 optionally having a title 260, a category label 262 optionally having a category title 264, and a series label 266 optionally having a series title 268. To supplement the information in the chart layout 250, aggregates may be inserted into the legend 258, category label 262 and series label 266. Additionally, headers and footers along with their titles can also be added to the chart layout 250.


A reports specification 152 defines the types of values that are to be placed in the chart layout areas. For example, a total could be placed in the title, an average could be placed in the footer and a percentage growth calculation could be placed in the series. As is appreciated, the report specification 152 includes references to an underlying metadata model, which in turn references a repository or database.


The query decomposition module 102 determines the additional queries (along with their definitions) that are to be executed in order to provide the correct information and in the correct area of the chart layout. The query module 102 uses the references to the metadata model, along with the location of the requested data in the chart to build the additional queries. Preferably, one query is created for each chart layout area.


The query engine 154 then runs the queries and fetches the data in a table format. The chart data layout system 100 uses the report specification 152 and the fetched data to determine where to render each number or value on the chart.


Advantageously, the chart data layout system 100 and method shows additional aggregate information on the chart. This is more compact and easier to read. It allows business users to quickly understand their data and make appropriate decisions. FIG. 5 shows in a chart an example of combinations of the desired information into a single format. Additional crosstab information can be rendered on a chart for consumption. Calculations unrelated to the chart data can be rendered on the chart. Advantageously, the report specification author does not have to work out the complex query logic to obtain the correct results as this is handled by the rendering engine.


The chart data layout system 100 and methods of the present invention may be implemented by any hardware, software or a combination of hardware and software having the above described functions. The software code, either in its entirety or a part thereof, may be stored in a computer readable memory. Further, a computer data signal representing the software code which may be embedded in a carrier wave may be transmitted via a communication network. Such a computer readable memory and a computer data signal and its carrier are also within the scope of the present invention, as well as the hardware, software and the combination thereof.


The present invention has been described with regard to one or more embodiments. However, it will be apparent to persons skilled in the art that a number of variations and modifications can be made without departing from the scope of the invention as defined in the claims.

Claims
  • 1. A chart data layout system for processing chart data in a report, the chart data layout system comprising: a query module for decomposing required data into required data queries;a chart layout module for rendering a chart based upon chart data received from the queries;a category module for displaying category aggregate information in a category location of the chart; anda series module for displaying series aggregate information in a series location of the chart.
  • 2. The chart data layout system as claimed in claim 1, further comprising a query engine for retrieving the required data.
  • 3. The chart data layout system as claimed in claim 1, further comprising a report specification for defining the chart data and locations to place the chart data on the chart.
  • 4. The chart data layout system as claimed in claim 1, further comprising one or more of: a title module for displaying title aggregate information in a title location of the chart;a subtitle module for displaying subtitle aggregate information in a subtitle location of the chart;a header module for displaying header aggregate information in a header location of the chart;a footer module for displaying footer aggregate information in a footer location of the chart;a legend module for displaying legend aggregate information in a legend location of the chart; anda legend title module for displaying legend title aggregate information in a legend title location of the chart.
  • 5. A method of processing chart data in a report, the method comprising steps of: decomposing required data into queries;retrieving queried data;rendering a chart based upon the queried data;rendering category information on a category label of the chart based upon queried data; andrendering series information on a series label of the chart based upon queried data.
  • 6. The method as claimed in claim 5, wherein the required data is decomposed into: a chart data query to obtain data used for the chart;one or more category data queries to obtain aggregates for inclusion in the category label of the chart; andone or more series data queries to obtain aggregates for inclusion in the series label of the chart.
  • 7. The method as claimed in claim 6, further comprising the step of rendering one or more of: a title of the chart;a subtitle of the chart;a legend of the chart;a legend title of the legend of the chart;a header of the chart; anda footer of the chart.
  • 8. The method as claimed in claim 7, wherein the required data is further decomposed into one or more of: a header query to obtain aggregates for inclusion in the header of the chart;a legend query to obtain aggregates for inclusion in the legend of the chart; anda footer query to obtain aggregates for inclusion in the footer of the chart.
  • 9. The method as claimed in claim 5, further comprising the step of receiving a report specification outlining aggregates that are to appear in the category and series labels of the chart.
  • 10. The method as claimed in claim 9, wherein the report specification further outlines aggregates that are to appear in the header, legend and footer of the chart.
  • 11. A memory containing computer executable instructions that can be read and executed by a computer for caring out a method of processing chart data in a report, the method comprising the steps of: decomposing required data into queries;retrieving queried data;rendering a chart based upon the queried data;rendering category information on a category label of the chart based upon queried data; andrendering series information on a series label of the chart based upon queried data.
  • 12. A carrier carrying a propagated signal containing computer executable instructions that can be read and executed by a computer, the computer executable instructions being used to execute a method of processing chart data in a report, the method comprising the steps of: decomposing required data into queries;retrieving queried data;rendering a chart based upon the queried data;rendering category information on a category label of the chart based upon queried data; andrendering series information on a series label of the chart based upon queried data.