MXPA97010160A - System of generation of interactive report and operating method - Google Patents

System of generation of interactive report and operating method

Info

Publication number
MXPA97010160A
MXPA97010160A MXPA/A/1997/010160A MX9710160A MXPA97010160A MX PA97010160 A MXPA97010160 A MX PA97010160A MX 9710160 A MX9710160 A MX 9710160A MX PA97010160 A MXPA97010160 A MX PA97010160A
Authority
MX
Mexico
Prior art keywords
model
worksheet
operable
cell
definition
Prior art date
Application number
MXPA/A/1997/010160A
Other languages
Spanish (es)
Other versions
MX9710160A (en
Inventor
M Kennedy Brian
G Oren Lamott
J Buehring Walter Jr
Original Assignee
I2 Technologies Inc
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
Priority claimed from US08/491,121 external-priority patent/US5832532A/en
Application filed by I2 Technologies Inc filed Critical I2 Technologies Inc
Publication of MX9710160A publication Critical patent/MX9710160A/en
Publication of MXPA97010160A publication Critical patent/MXPA97010160A/en

Links

Abstract

A computer program system is provided. The computer program system includes an operable compiler to receive a worksheet definition and to access a plurality of model interconnect functions. The definition of the worksheet is named and parameterized and comprises a plurality of coad cell definitions defining an independent expression of the model. The copier is further operable to generate a worksheet tempering comprising a plurality of cell tempers coda one defining a model dependent expression. An evaluator is operable to receive the worksheet model and a parameter expression. The evaluator is also suitable for accessing the plurality of model interconnection functions and a user model. The evaluator is operable to evaluate the parameter expression and the model dependent expressions in the worksheet model and is operable to generate a worksheet instance containing a plurality of cell instances defining mode specific values

Description

GENERATION OF INTERACTIVE REPORT GENERATION AND METHOD OF OPERATION TECHNICAL FIELD OF THE INVENTION This invention relates to the field of electronic systems, and more particularly to an interactive report generation system and an operating method.
BACKGROUND OF THE INVENTION The applications of conventional planning computer programs are expanded in a wide variety of industries to achieve various planning purposes. These planning computer program applications generally use a model of the user's environment for which planning is desired. In the context of manufacturing, staff can use the planning program to develop solutions to problems and to react and compete intelligently in a given market. The planning program is required to be programmed by the users to answer the questions that are required to answer in a form useful for the user.
The productivity impact of the manufacturing planning program can be limited by the capabilities of the program itself. The conventional planning program may be unable to generate necessary reports, carry out the required analysis, allow the necessary modifications to be made to a model, or model the required problems that are to be solved. Consequently, users have limited options because many planning tasks that help can not be reasonably done manually and the planning computer program is unable to do them automatically.
A fundamental need for manufacturing personnel, for example, is to generate order reports that display the desired information in formats, terms and units used in area manufacturing operations. Users of the planning program should not require to manually search a large amount of data to find the desired information and complete a desired analysis. Users should not require converting data mentally from a set of units to units used on the floor of the factory. All research, lottery, filtering, conversion and translation is work that is advantageous to be handled by the applications of the planning program.
The programming mechanism that is most widely used by non-professionals in programming is the conventional extended sheet, such as LOTUS 1-2-3 and the MICROSOFT EXCEL. Other planners, buyers, sales professionals and others are faced with inadequate planning program applications, sophisticated analysis development and reports using conventional spread sheet tools. ~ * - / Contrary to conventional planning program applications, it is advantageous that the planning program application be directly programmable by the staff that requires the planning tools. It is problematic for a user to be required to go to a local system maintainer or programmer or the program vendor to start a new analysis or to make small adjustments. It is also problematic if a user is unable to experiment with different options and possibilities in order to develop an analysis of and interconnection with the modeled environment whether it be manufacturing, distribution, supply or other planning environment. It is also advantageous for a user to be able to achieve planning analysis through direct interaction with the reporting system.
SYNTHESIS OF THE INVENTION A need has arisen for a report generation system that provides programmability, model independence and interactivity.
In accordance with the present invention, an interactive report generation system and method of operation are provided that essentially eliminate or reduce the disadvantages and problems associated with the "spread sheet" and conventional planning program applications. * * -. • j. "- '. According to one embodiment of the present invention, a computer program system is provided. The computer program system includes an operable compiler to receive a worksheet definition and to access a plurality of model interconnect functions. The definition of the worksheet is named and parameterized and comprises a plurality of cell definitions each defining a model-independent expression. The compiler is also operable to generate a template or worksheet model comprising a plurality of cell models each defining a model-dependent expression. An evaluator is operable to receive the work sheet model and a parameter expression. The evaluator is also operable to access the plurality of model interconnection functions and a user model. The evaluator is operable to evaluate the parameter expression and dependent expressions of the model in the worksheet template and is operable to generate a worksheet instance containing a plurality of cell instances defining model-specific values.
According to another embodiment of the present invention, there is provided an interactive report generation system that includes a compiler, an evaluator, a performer, and a plurality of interconnection functions: model. The compiler is opera ± > to receive -reports, plans, and definitions of worksheet, to have access to a plurality of model interconnection functions, and to generate a report model. The evaluator is operable to receive the report model, to access a plurality of model interconnection functions, to access a user model, and to generate a report instance. A supplier is operable to receive the report instance and to exhibit and allow interaction with the reporting instance.
A technical advantage of the present invention is that it allows interactive access to a model of a user environment through reporting functions in which the functions are parameterized and are independent of the model. The cells provided in the worksheet of a report have a "set" of expressions in addition to the "get" expressions so that editing the cell can result in changes to the data in the user model as opposed to the changes simply in the cell.
Another technical advantage of the present invention is that the values returned by the worksheet and the model access functions have a well-defined type. The type allows a sensitive type interaction and help. In addition, the type allows loaded functions which are functions with the same name that take different types of arguments and can have different behavior for each one.
An additional technical advantage of the present invention is the provision of different kinds of worksheets within reports such as normal worksheets (a cell formula results in a value) and duplicates (a cell formula is duplicated in many cell values).
A further technical advantage of the present invention is the provision of different kinds of plans associated with each class of worksheets in reports such as tabular, bar chart, Gañtt chart, and 'menu plans. In addition, the present invention allows for different tabular plans, and in particular, provides the flexible cross-axis plan for duplicating worksheets in reports.
An additional technical advantage is the ability of the plans to use different controls for the display and interaction with the cells in the worksheet of a report.
The reports of the different controls provided include different kinds of controls to display and interact with, including text, slides, Gantt schema and bar outline controls.
A further technical advantage of the present invention is that = force "disigns graphical user interface (GUI) description in the report description where the commands on controls equal the GUI event handlers, the controls in the plans match the GUI "widgets", the plans in the reports match the GUI window segments, the menus and the dialog boxes, and a report equal to a GUI window.
BRIEF DEFINITION OF THE DRAWINGS A more complete understanding of the present invention and the advantages thereof may be acquired with reference to the following definition taken in conjunction with the accompanying drawings in which like reference numerals indicate like characteristics and wherein: Figure 1 is a block diagram of a report generation system, constructed according to the teachings of the present invention; Figure 2 illustrates a table showing expressions using a list and the number of cells resulting from the evaluation of the expressions; Figures 3A, 3B, 3C and 3D illustrate the tables showing examples of lists and evaluations of expressions that are list functions; Figure 4A illustrates a dependency diagram; Y Figures 4B, 4C, 4D, 4E, 4F and 4G illustrate tables showing examples of transverse axis placements of cells resulting from evaluation of expressions.
DETAILED DEFINITION OF THE INVENTION Report Generation System - Figure 1 is a block diagram of a report generation system, indicated generally at number 10, constructed according to the teachings of the present invention. The report generation system 10 includes a compiler 12. The compiler 12 defines a report definition 14 and the interconnection functions of the model 16. The report definition 14 refers to at least one definition of an array 18 by name. definition of array 18 refers by name to a definition of worksheet 20 and at least to the definition of control 22. The definition of worksheet 20 includes at least one definition of cell 24 that includes at least one expression 26. There must be at least one control definition 22 associated with any definition of cell 24 that is visible to the user. A control definition may be associated with zero, or more cell definitions, and a cell definition may be associated with zero or more control definitions. The embodiment of Figure 1 is not intended and should not be considered as limiting the scope of the present invention. More than one report definition 14 can use the same definition of array 18, and more than one definition of array 18 can use the same definition of worksheet 20.
The compiler 12 generates a model or report template 28 of a report definition 14 and of the model interconnection functions 16. The report model 28 includes an array model 30 for each, definition of array 18 in the report definition 14. The arrangement model 30 includes a worksheet model 32 that corresponds to the definition of the worksheet 20. The arrangement model 30 also includes a control model 34 for each control definition 22 in the report definition 14. The worksheet model 32 includes a cell model 36 for each cell definition 24 in the report definition 14. The cell model 36 includes an expression 38 for each expression 26 in the cell definition 24.
An evaluator 46 receives a report model 28 and the model interconnection functions 16. The evaluator 40 also has access to a user model 42. The user model 42 comprises a model of a user environment such as a manufacturing environment . The evaluator 40 generates a report instance 44. the report instance 44 includes an array instance 46 which corresponds to the array model 30. The array instance 46 includes a worksheet instance 48 and a control instance 50 that correspond to the worksheet model 32 and to the control model 34. The worksheet instance 48 includes at least one instance of cell 52 corresponding to an evaluation of a cell model 36. The cell instance 52 includes a value 54. A supplier 56 is coupled to a report instance 44. The supplier 56 generates a report 58 and handles the interaction with report 58.
In one embodiment of the present invention, the report generation system 10 comprises a computer program system executed by a general purpose digital computer. In this embodiment, a data storage device 60 may be operated to contain the model 16 and user model 42 interconnect functions. A data storage device 62 is operable to contain the report definition 14, the report model 28 and the report instance 44. The data storage devices 60 and 62 may comprise magnetic storage devices, memory devices or other data storage devices. In addition, data storage devices 60 and 62 may be separated or may comprise parts of a single device. An execution memory 64 is operable to maintain the compiler 12, to the appraiser 40 and the supplier 56 so that each can be executed by a processor in the general purpose digital computer. The execution memory 64 is also operable to maintain the executable code associated with the model interconnect functions 16. The execution memory 64 may comprise a memory device or other data storage device. An display device 66 is operable to display the report 48 to be viewed and interacted by the user of the report generation system 10. A printer is an example of a display device 66 that can display the report but can not support an interaction with the report.
Report Generation Model In operation, the compiler 12 generates a report model 28 from the report definition 14 using the model 16 interconnection functions. The report model 28 is provided to the evaluator 40. The evaluator 40 generates the report instance 44 of the report model 28 using model 16 interconnection functions and data from user model 42. Report instance 44 is provided to supplier 56. Supplier 56 generates report 58 from report instance 44 y. annex the use-interaction with the report 58. In this report generation mode, the report generation system 10 processes the report definition 14 to produce the report 58 that exhibits and allows the interaction with the information incorporation data of the desired report from the user model 42.
The report generation system 10 is programmable by the user, independent of the interactive model. The independence of the model arises from the fact that the report definition 14 generally defines the desired report without relation to the data values contained in the user model 42. The definition of report 14 includes a definition of arrangement 18 for each segment desired window in report 58. The definition of array 18 includes a definition of worksheet 20 and a definition of control 22 for each window element defined independently desired in the window segment in report 58. Each window element for the control is associated with, exhibits and-provides interaction with the particular cells defined by the definition of worksheet 20. Said definition of worksheet 20 defines at least one definition of cell 24 having at least one expression 26 .
The compiler 12 receives a report definition 14 as an entry. The compiler 12 generates a corresponding report model 28 suitable for use by the evaluator 40. The compilation of some of the functions used in expressions 26 are as dictated by the interconnection functions of model 16. The resulting expressions 38 refer to the corresponding executable function in the model interconnection functions 16 for use by the evaluator 40.
The evaluator 40 receives the report model 28 as an entry. The evaluator 40 accesses the interconnection functions of model 16 to obtain the function implementations in order to evaluate each expression 38 in the report model 28. The evaluator 40 accesses the data in the user model 42 according to the function d ? implementation when evaluating each expression 38. The evaluator 40 generates the report instance 44 in which each cell model 36 has been evaluated to one or more instances of cell S2 each having a value of 54. The value 54 is the result of the evaluation of the expression 38 with the data of the user model 42. The evaluator 40 also converts each control model 34 into an appropriate control instance 50 for use by the supplier 56 to display the interactive controls reflecting the values of cell 54 .
The supplier 56 receives the report instance 44 as an entry. The supplier 56 processes each control instance 50 and the instance of worksheet 48 associated with each arrangement instance 46 to generate an exhibit report 58. The supplier 56 can also handle the interaction with the generated report 58 in the case of reports submitted electronically. Report 58 displays the data of the user model 16 according to the desired report analysis defined by the report instance 44.
Interactive mode The report generation system 10 can be interactive with respect to a user after the report 58 is generated and displayed. In this interactive mode, a user may interact with a report 58 to modify the user model 42 and to modify the report instance 44. In one embodiment of the present invention report 58 is displayed through the graphic user interconnect ( GUI) and the interaction is driven by the actions a user takes on the controls in the GUI display.
In an interactive mode, the report 58 provides information to the supplier 56 describing actions that must be taken by a user. The supplier 56 makes the corresponding changes in the report instance 44 such as a change of value 54 for each cell, 52. The evaluator 40 receives the changes to report the instance -44, accesses the report model 28 if necessary, and makes the appropriate changes to the data values in the user model 42. The evaluator 40 also reevaluates the report model 28, regenerating the report instance 44, if any values of other cells should be changed due to the change of values of data in the user model 42.
The modification of the user model 42 and of the report instance 44 is achieved through the use of the expressions "obtain" and "put" for the expression 38 in the cell model 36. The expression obtain informs the evaluator 40 what data to obtain as a value of the user model 42- when an expression 38 is evaluated. The expression of. "set or play" informs the evaluator 40 as to an appropriate response to a change in the value 54 caused interactively by a report modified by the user 58. When the value 54 for the cell instance 52 is changed, the evaluator 40 determines whether the data values within the user model 42 are modified. As an example, a first cell can give a value for a queue time associated with a particular manufacturing resource. To obtain the expression associated with the first cell so that it can inform the evaluator 40 what data to obtain for the queue time of the user model 42. The fixed expression associated with the first cell can inform the evaluator 40 that a change in the value of a- first cell should result in changing the data in the user model 42 to equalize the queue time value that has been entered by the user. A second cell can exhibit a sum of queue time and a wait time associated with the same resource. A "get" expression associated with this second cell can inform the evaluator 40 what data to obtain from the user model 42 for the queue time and the wait time and to add the two values. The fix expression associated with the second cell can inform the evaluator that a change in the value of the second cell should result only in a change in the wait time in the user model 42. Therefore, if the queue time out of 10, and the waiting time out of 5, and a user will change the value of the second cell from 15 to 20, the evaluator 40 could change the data in the user model 42 for the waiting time from 5 to 10 .: The report generation system 10 is programmable in the sense that the report definition 14 is created and supplied by a user such as - through a textual or graphic reporting tool. The definition of report 14 is defined to one or more definitions of arrangement 18.
Each definition of array refers to a definition of worksheet 20 and consists of a number of control definitions 22. Multiple report definitions 14 can share array definitions 18. Array definition 18 can share blade definitions 20. Each workbook definition 2Q consists of one or more cell definitions 24 which contain the expression 26. Each control definition 22 is associated with zero or more cell definitions 24 of the definition of the work sheet. work 20 The report definition 14 is compiled by the compiler 12 is a report template 28. The report template 28 has a structure and form similar to the report definition 14. The compiler 12 uses the interconnection functions of model 16 designed to access the user model 42 for defining the function calls placed in the expressions 38. The report model 28 is evaluated using implementations of the model 16 interconnection functions and the data of the user model 42 for the evaluator 40. The evaluator 40 evaluates the report model 28 to generate a report instance 44. The report instance 44 can drive a number of supplies including graphical user interconnections on screen (GUI's) or paper reports. According to the teachings of the present invention, report instance 44 is not static. Through the interaction of a user with the report 58, the report instance 44 operates as an interactive tool giving the user the ability to manipulate the data in the user model 42 and change the values in the report instance 4 = 4.
Interaction with the User Model The report generation system 10 provides interaction with the user model 42. The user model 42 comprises a data structure to support the desired report functionality such as manufacturing planning. The expressions 26 in the report definition 14 support the functions for accessing the visible data of the user in the user model 42. Those functions further support both obtaining and setting values in the user model 42, as described above. Editing a cell in report 58 can have two effects: the user can change which part of user model 42 accesses the cell, or can the user change the value of the ter data field? the user model -42 that is accessed to generate the cell value.
According to the teachings of the present invention, implementations of functions that pull information out of the user model 42 are associated with the type such as that type of data (amount, number, chord, path name, etc.) or a type of user model such as an operation, resource, buffer, etc.) taken out by each function is known and verified. For example, if a function expects a quantity to be passed, but instead a path name is passed to it, then the call to that function will not compile and compiler 12 can put an error. The? parameters are passed to the worksheet definitions 20 which are independent of the model. For example, a definition of worksheet 20 can be defined that will cause the display of fields related to a resource without specifying which resource. When that worksheet definition is called, the desired resource can be passed as a parameter. The parameters of a worksheet or report define what additional information should be combined with the worksheet or report model so that it can become a report instance or worksheet.
Classes of Work Hours Worksheet instance 48 is a collection of cells consisting of evaluated evaluations. The cells are named by a column-row as with a conventional scattered sheet, but not restricted by that appointment as in the conventional scattered sheets. The worksheets in which the cells are defined can be of different kinds of worksheets.
A class of worksheets produces cells as a traditional spreadsheet so that for each cell in the definition of worksheet 20 there is a cell generated in the instance of worksheet 48. The cells are generated in it row and column position that the cells are named. > According to the teachings of the present invention, other kinds of worksheet can be defined so that they are very different from the extended page class. For example, a menu worksheet class can produce cells such that each cell is a menu entry with a label, a mnemonic, a board accelerator. Another kind of worksheet is a duplicate worksheet which can generate hundreds of cells in the instantiation of the worksheet instance 48 for each cell in the definition of worksheet 20. The cells are duplicated depending on the information on the data sheet of the model, user 42 ^ Duplicating Work Schedule Figure 2 illustrates a table showing expressions using lists and the number of cells resulting in the evaluation of list expressions. A type of data that can be returned by a worksheet expression is a "List of elements of type V" or LIST type < V > "A duplicate worksheet can be evaluated in such a way that a cell will be instantiated for each element in a list computed by a single cell expression." Cells that use a cell that computes a list of a type that matches the type of cell. elements that are in the list The same number of cells generated for a list can be generated for each list expression that computes from the list.The table in figure 2 provides the examples of the expressions using the lists.
A cell whose expression evaluates to List < V > can be instantiated with only one cell for each V in the list. The number of cells will depend on the size of the list, which in turn will depend on the user model data set to which the worksheet is applied. For example, consider a cell to which you have access to the "main" field model by returning a list of three numbers that are major: 2, 3, and 5. A List < T > it is treated in the same way as the List < V > . Consider a cell A2 that accesses another field of "vowels" returning a list of five strings containing the vowels: a, e, i, o and u.
As shown in row three of Figure 2, a cell expression can compute a value of type S using the cell computing the List < T > . The used expression of type T, and can be re-evaluated for each T in the List < T > . Therefore, the expression can instantiate the same number of cells as the items in the List < T > . The relationship between the corresponding cells instantiated with T and mstanciada with S is maintained according to the teachings of the present invention. For example, the cells can be displayed in the same row or column.
As shown in row four of Figure 2, another cell expression can compute a value of type R using both a T and a V of the List < T > and from the List < V > . In this case, an R can be computed for each combination of T and V computed in the List < T > and in the List < V > . If the List < T > results in ten T, and the List < V > results in seven V, there will be 70 R computed. Again, the relationship between each R and the T and V of which it was computed can be maintained. For example, if the Ts are in rows and the Vs are in columns, then the Rs can be placed in the row-row intersection relative to the T and the V from which each R. was computed.
In row five of Figure 2 a cell computes a List < Q > of each T in the List < T > . In this case, the instantiation of the cell can include a cell for each Q in each List < Q > computed from each T in the List < T > . If three T were computed, then for example, the first can give four Q, the next can give two Q and the last can give five Q. There will be eleven Q and each can be instantiated in a separate cell. The relationship between the Q and the T of which each Q was computed can be maintained as mentioned above. This relationship results in a hierarchy, where each parent T can have several children Q.
An expression can compute a List < P > of both a T and a V, which come from the List < T > and from the List < V > , respectively, as shown in row six of Figure 2. The result may be one cell for each P in each List <. P > generated from each combination of T and V. For example, DI can compute the next number Al of letters that follow the letter in A2. Since Al has a value of 2 and A2 has a value of "a", the list generated for DI would be "b" and "c" (the 2 letters following "a"). Since Al has the value 5 and A2 has the value "u", the list "v", "", "x", "y", "z".
Finally, in Figure 2, a cell can compute a list < N > obtained by reference to itself. Such a cell is recursive. For example, an Al cell can return the List [Article] that includes all the Items required to construct a particular Article. For each Article in the list, we may require the List [Article] necessary to construct that Article, continuing in that form the three complete Articles that go to an Article may be generated. The "resource" function holds each cell of self-reference. The initial list is passed to the resource together with an expression that will be evaluated on each licensor, for example children.
Sample Cells Based on Lists Figures 3A, 3B, 3C and 3D illustrate the examples of the cells instantiated on lists. In Figure 3A, the list Al includes three elements: 2, 3, and 5. Cell Bl computes (Al + 3). The evaluation of Bl is carried out once for each element in the list of Al. Therefore, the result of Bl is of three cells having the values 5, 6 and 8, as shown.
Figure 3B illustrates the instantiated cells based on two lists. Cell B2 computes A2 concatenated with a string representation of Al. A2 is a list of vowels: a, 3, io, yu, and Al is a list of main numbers: 2, 3 and 5. B2 converts the main number of Al to a string and concatenate the vowel in A2. The expression of B2 is re-evaluated for each combination of elements of Al and A2. Therefore, there are fifteen cells instantiated as shown in Figure 3B.
Figure 3C illustrates a generated list of a list. Cell Cl computes the following Al multiples of Al.
For this expression, Al is a number. The expression of Cl evaluated from Al is reevaluated for each number in Al. The result is a list of numbers for each Cl evaluated from Al. As shown in figure 3C, ten cells are instantiatedJ Figure 3D illustrates the labels based on a second list that itself is based on a first list. C2 has the same formula as B2, but is computed from Cl and A2 rather than from Bl and A2. C2 generates a cell for each combination of A2 and Cl. Therefore, fifty cells are instantiated for C2 as shown in Figure 3D. The examples of Figures 3A to 3D are not attempted and should not be construed as limiting the scope of the present invention.
Classes of Arrangements An array specifies how the instantiated cells of a worksheet can be arranged for presentation to and for interaction with a user. Rifad worksheet can have many fixes, and each array can present the same information in a different way. There may be different kinds of arrangements. An example arrangement for duplicating worksheets is the cross-axis arrangement that allows the generated cells to be arranged hierarchically on two different axes and at the intersection, or on the cross. This allows the computed cells of multiple other cells to be arranged with a meaning showing the relationships between the cells.
Alternatively, the same duplicate worksheet can be presented with a bar chart arrangement representing the information as bars is a histogram. The information can be organized into side-by-side bars, stacked bars, and nested bars. • ''? Cross Shaft Arrangement * • '- "• A cross-axis arrangement organizes the cells of a duplicate worked sheet into three sections: the X axis, the Y axis, and the cross (the intersection of the two axes). In one embodiment of the present invention, each cell may appear in zero or one of the sections.
Figure 4A illustrates a dependency diagram and Figures 4A, 4B, 4C, 4D, 4E, 4F and 4G illustrate examples of axle crossover arrangements. A cell on the X or Y axis can not appear on a different axis than any cell from which it computes. Therefore, a cell that is computed of cells on both axes can only appear on the cross. On an axis, each cell nests within other cells on which it depends and nests within any cells to the left of it. On the cross, the cells nest inside any of the cells on the axis, but they do not nest inside other cells on the cross. The elements of Figures 4A to 4G are based on the cells and expressions used as examples of Figures 3A to 3D as described above.
Figure 4A illustrates a dependency diagram. Al and A2 are independent (they do not depend on other cells). Bl and Cl depend on Al. B2 depends on both Al and Aj2. C2 depends on A2 and Cl, and is therefore directly dependent on Al.
Figure 4B illustrates a placement where the Y axis includes Al, Bl and Cl. The elements on the Y axis are displayed in columns, where as elements on the X axis (empty in this example) would be displayed in rows.
Figure 4C illustrates a cross-axis arrangement where the Y axis includes Al, Bl and Cl. The X axis includes A2 and the cross, where the cross is defined as B2. Therefore, the elements of Al, Bl and Cl are arranged in columns, and the elements of A2 are arranged in a row. The cells of A2 are located at the junction, as shown.
Figure 4D illustrates a cross-axis arrangement where the Y axis includes Al, Bl and Cl and the X axis includes A2, and the cross, where the cross is defined as C2. Similar to Figure 4C, the cells of Al, Bl and Cl are located in columns, and the cells of A2 are located in a row. The cells of C2 are located at the junction, as shown.
Figure 4E illustrates a cross-axis arrangement where the cross is defined to include two lists. In the figure 4E, the Y axis is defined to include Cl. The X axis includes A2 and the cross, where the cross is defined as B2 and C2 \ l In this arrangement, for the X axis, the cross nests inside A2 A Therefore , the cells of the cross are grouped under the cells of A2.
As shown, the cells of Cl are arranged in a column, and the cells of A2 are arranged in a row. The cells of the cross are arranged according to B2 and C2 corresponding to each element of A2.
Figure 4F is similar to Figure 4E except that the nested X-axis is changed. In Figure 4F, the X axis is defined as the cross and A2, where the cross includes B2 and C2. The Y axis is again defined as Cl. In Figure 4F, A2 nests inside the cross. Therefore the cells of the cross are separated according to B2 and C2, as shown.
Figure 4G illustrates an example of grouping. In Figure 4G, the array is defined so that Bl and Cl are grouped under Al. For each value under Al, all the titles in the group will nest. In this case, the titles Bl and Cl nest in rows for each value of Al. In a second column, the values of the group nest with and under the corresponding group title. In this way, the Cl values are placed in the rows with the title Cl. Dependent groups can also be defined which nest similar groups, but do not display a column of titles. Rather, the values exhibit the display of dependent values on which the independent group member is displayed on the current row. Finally, if a group member does not have values, then it does not require generating rows for the value or the title.
Schema Arrangement Classes There may be a number of different arrangements such as bar schemes (histograms with overlapping and stacked bars and side by side), sandwich schemes, line schemes and Gantt schemes. Each arrangement allows the arrangement and display of the same cell information but in different graphic formats and with a different interactive behavior.
A bar schema arrangement can allow a user to specify a series of cells. The first cell on an axis is the deepest, the second is on the front of the first and more. A group of cells on that axis indicates that those cells are at the same depth, placed side by side. The first cell in the group is the furthest to the left, the next is to the right of the group, etc. A group within a group on an axis can indicate that those cells have the same depth and the same position from left to right, placed side by side and stacked. The first cell in the group within the group can be on the bottom, the next one is on top of it, etc.
This is a possible set of rules for each bar scheme arrangement. Some modalities provide more flexibility but are not so simple.1 Others may be simpler but not functional. It is advantageous to provide several different bar scheme arrangements that provide different characteristics and complexity.
For example, an array arrangement of the bar-axis can be placed as an axis of the cross-axis arrangement, allowing arbitrary nesting in the labels, of the axis, and the inclusion of the arbitrary information, just as if it were an axis of the cross-axis. Effectively, the last or few cells in the nest will be specified to use the bar control, resulting in them being displayed as bars.
A multi-line line scheme can be done similarly. An axis of the cross-axis is given. Any cells that are not given one of several line controls are displayed just like a cross-axis. Cells that are specified to have a line control are replaced at the axis junction with just one legend indicator (the shape of the tips used for that line) and the data is drawn as a line.
Another kind of arrangement is a Gantt scheme. A cell is specified to delineate the rows. Then a dependent cell is defined that computes a list that generates the blocks and their labels for the Gantt scheme. Then, two cells that are dependent on the second cell define the start and end positions of each block. The result is a generic specification of a Gantt scheme. A Gantt scheme can be specified in other ways, and given several characteristics, duality, flexibility, and ease of use.
An additional arrangement class is a menu arrangement. The menu arrangement provides a series of cells containing "buttons" or menu items. The arrangement can result in a platform and window system forming the menu that includes looking and feeling, mnemonic handling, and accelerator handling as appropriate for the platform. In fact, where the native window system provides menu mechanisms, the array and menu controls can be compiled directly into menus of the native window system, giving efficiency and consistency.
Controls The controls are individual display elements of an arrangement. For example, a slice of cake and a cake outline arrangement can be a separate control.
Each bar in a Gantt scheme arrangement can be a separate control, and each cell in a tabular array can contain a different control. A cursor control can be placed in a cell if the cell is numeric. The cursor provides a graphic handle that slides in an indexed slot with the range of possible values for the cell. A user can change the value of the cell by sliding the handle using the interaction with a mouse or other input device. A logical valued cell can have a check box control that is verified if it is true and empties if it is false. Changing the value is achieved by pressing the mouse on the box.
Each kind of arrangement determines the type of controls that are important. Some fixes may not need different controls to be selected. However, the more controls are accepted by an array, the more flexible the array is because more options are available.
For example, consider the line schema arrangement. There are several different line controls that give different schemes. The line control takes an "x" and a "y", draws a point in that position, and connects a straight line from the previous position to this new point position. The step-to-line control also takes an "x" and a "y" and draws a point in that position, but it connects to the previous point by drawing horizontally from the previous point to the "x" of the new point e "y" from the previous point / and then drawing vertically to the new point. Line-rate control takes a third value in addition to "x" and "y": a "rate". It draws the point at "x" and "y" like the other, but draws a line from the previous point with a tilt of "until" it reaches the "x" of the new point, at which point it draws vertically.
As another example, a cake slice control can generally be useful only in a cake scheme arrangement, and cake scheme arrangements can only allow cake slice controls. Some cake slice controls may allow the edges to be dragged in order to change the value displayed. Other cake slice controls may allow the slice to be pulled out of the cake in order to highlight the slice. Other controls can display the text in the slice. Similarly, Gantt schemes can only allow bar controls ^ Gantt. In contrast, a text control can be useable in many fixes. Some text controls can allow any text to be inserted. Other text controls can restrict what text can be entered or can invoke validation rules. In addition to the behaviors provided by a control, additional commands can be attached to a control to be invoked for particular events. For example, a "bring a help menu" command can be associated with a "right-click" event for a particular control in a given array.
General view . p The report generation system of the present invention may comprise a computer program system executable in a general purpose digital computer. In general, the report generation system operates in two modes. The first mode is that of generating a report. In this generation mode, the report generation system processes a report definition by compiling it into a template or report model and evaluating the report model to a report instance. The report instance is then made to display the report to a user. At this point, the report generation system can get into the second mode.
This second mode is an interactive mode. A user is enabled to interact with the report displayed in a number of ways. The report is analogous to a traditional GUI environment. The analogies are as follows: GUI event handlers are control commands and unions; GUI "idgets" are controls in arrays; the GUI window segments are arrays; the GUI menus are fixes; GUI dialogs are fixes; and the GUI windows are reports.
A report is a window displaying information to a user. A user who performs an action on a report constitutes an event about a control. The controls in the fixes, once activated, are served. A user is enabled to perform various functions including editing the values in the report and editing associated values in the user model. The user interacts with the report based on the graphical user interface.
A technical advantage of the present invention is that it allows an interactive access to a model of a user's environment through reporting functions in which the functions are parameterized and independent of the model. Cells provide a worksheet for a report that has "fixed" expressions in additions to "get" expressions so that editing the cell can result in changes to the data in the user model as opposed to changes simply in the cell. In addition, the types of report information are used that are identical to the types of information in the user model, supporting and allowing expressions of sensitive type, functions, menus and help features.
Another technical advantage of the present invention is the provision of different kinds of worksheets within reports such as a spread sheet worksheet and duplicate worksheets.
A further technical advantage of the present invention is the provision of different kinds of arrays associated with each class of worksheets in reports such as tabular, Gantt scheme barrat scheme, pie scheme, and menu arrangements. In addition, the present invention allows for different tabular arrays, and in particular provides the cross-axis array "flexible" to duplicate the worksheets in the reports.
A further technical advantage of the present invention is the ability of the arrays to use different controls for displaying and interacting with the cells in the worksheets of a report. Examples of the controls for displaying and interacting include text, cursor, the Gantt scheme, and the bar outline controls.
A further technical advantage of the present invention is the strength of a graphical user interconnect (GUI) specification in the report specification where the commands and unions over the controls equal the GUI event handlers, the controls in the arrays match to the "idgets" GUI, the fixes in the reports equal the GUI window segments, the menus and the dialog boxes, and a report equals a GUI window.
The report generation system of the present invention provides a powerful reporting system allowing a user to create reports, analyze data, and engage in hypothetical evaluations of a user model.
Although the present invention has been described in detail, it should be understood that various changes, substitutions and alterations may be made therein without departing from the spirit and scope of the invention as defined by the appended claims.

Claims (26)

R E I V I ND I C A C I O N S
1. A computer program system comprising: an operable compiler to receive a worksheet definition- and to access a plurality: of model interconnection functions, the definition of the worksheet being named and parameterized and comprising a plurality of cell definitions each defining an independent expression of the model, and the compiler is also operable to generate a worksheet model comprising a plurality of cell models, each defining an expression dependent on the model; Y an evaluator operable to receive the worksheet model and a parameter expression, the evaluator also operates to access the plurality of model interconnect functions and a user model, operable to evaluate the parameter expression and the model dependent expressions in the worksheet model, and operable to generate a worksheet instance containing a plurality of cell instances defining the model-specific values.
2. The computer program system as claimed in clause 1, characterized in that: the compiler is also operable to receive a fixed expression for each cell definition of the worksheet definition and to record the fixed expression in the model of worksheet; Y the evaluator is also operable to receive edits to the values of the worksheet instance and change the user model as specified by the fixed expression registered by the compiler in the worksheet model.
3. The computer program system as claimed in clause 1, characterized in that the compiler and the evaluator are operable to process one of a plurality of types of worked sheet including a duplicating worksheet for which a cell that evaluates a list of values is evaluated in duplicate cells in the worksheet instance, and a cell that evaluates from such list vain cells also evaluates in duplicate cells, one for each duplicate cell from which it is evaluated.
4. The computer program system as claimed in clause 3, characterized in that an independent expression of the model and dependent on the model comprises a resource expression that allows a cell to generate a list of itself, resulting in duplications nested generated from each duplication of the same cell, continuing until nested duplications result in lists of zero values. -
5. The computer program system as claimed in clause 4, characterized in that: the compiler is also operable to receive an additional fixed expression for each cell definition of the worksheet definition; Y the evaluator is also operable to receive edits to the values of the worksheet instance and to change the user model as specified by a fixed expression registered by the compiler in the worksheet model.
6. The computer program system as claimed in clause 1, characterized in that it further comprises a provider operable to receive the fix instance and to visually display controls for a user, and wherein: the compiler is also operable to receive an array definition, the array definition being named and parameterized and composed of a plurality of control definitions that specify the display of cell values, specifying the worksheet definition by name and passing expressions of specific parameters to the definition of the worksheet, and the compiler also operates to generate an array model; the evaluator is also operable to receive the array model and to generate an array instance by specifying a precise relative array of instance control the control instances by specifying an accurate display of the worksheet values; the definition of arrangement, the model and the instance comprise a type of arrangement; Y the controls comprise a plurality of control types appropriate for the type of arrangement.
7. The computer program system as claimed in clause 6, characterized in that: the compiler is also operable to receive an additional fixed expression for each cell definition of the worksheet definition; the evaluator is also operable to define the interaction of each control to edit cell values of the worksheet instance and change the "user" model as specified by the fixed expression registered by the compiler in the worksheet model; Y The supplier is - besides operable to sustain the interaction of the user with the controls displayed.
8. The computer program system as claimed in clause 6, characterized in that: the compiler and the evaluator are operable to process one of a plurality of worksheet types, including a duplicate worksheet for which a cell that evaluates a list of values is evaluated in duplicate cells in the worksheet instance , and a cell that evaluates such valued list cells also evaluates in duplicate cells, one for each duplicate cell from which it is evaluated; the compiler is also operable to receive a cross-axis type of array definition and generate a cross-axis array model; the evaluator is also operable to put nested controls along each relative axis according to how the cells were evaluated in the worksheet model and generate an array instance that can display nested multidimensional data within a two-dimensional table; Y the supplier is operable to display the two-dimensional table.
9. The computer program system as claimed in clause 8, characterized in that: an independent model and dependent model expression comprises a resource expression that allows a cell to generate a list of itself, resulting in nested duplications generated from each replication of the same cell, continuing until the nested duplications result in lists of zero values; a depth of nested evaluations of each cell are available for array controls; Y a type of indented text of controls is available which is operable to indent the displayed text according to the depth of the nested evaluation that produced the value in the control.
10. The computer program system as claimed in clause 9, characterized in that: the compiler is also operable to receive an additional fixed expression for each cell definition of the working sheet definition; the evaluator is also operable to define the interaction of each control to edit the cell values of the worksheet instance and change the user model as specified by a fixed expression registered by the compiler in the worksheet model; Y the supplier is also operable to sustain user interaction with the controls displayed.
11. The computer program system as claimed in clause 6, characterized in that: the compiler and the evaluator are operable to process one of a plurality of worksheet types, including a duplicate worksheet for each cell that evaluates a list of values is evaluated in duplicate cells in the worksheet instance, and a cell that evaluates such valued list cells also evaluates in duplicate cells, one for each duplicate cell from which it is evaluated; the compiler is also operable to receive a type of array definition axis bar and generate an array-axis array model; the evaluator is also operable to goner nested controls along an axis in relation to how the cells were evaluated in the worksheet model and to generate an array instance that can display nested multidimensional data in a row of headers and bars, bars placed side by side, stacked, and nested according to the nesting of worksheet evaluations; Y the supplier is operable to display the row of bars.
12. The computer program system as claimed in clause 11, characterized in that: the compiler is also operable to receive an additional fixed expression for each cell definition of the worksheet definition; Y the evaluator is also operable to define the interaction of each control to edit the cell values of the worksheet instance and change the user model as specified by the fixed expression registered by the compiler in the worksheet model; Y the supplier is also operable to sustain user interaction with the controls displayed.
13. The computer program system as claimed in clause 6, characterized in that: the compiler and the evaluator are operable to process one of a plurality of worksheet types including a duplicate worksheet for which a cell that evaluates a list of values is evaluated in duplicate cells in the worksheet instance, and a cell that evaluates such cells valued in the list also evaluates in duplicate cells, one for each duplicate cell from which it is evaluated; '[' '' 'the compiler is also operable to receive a map type of the array definition and generate a map array model; the evaluator is also operable to generate a fix instance that can display map data; the supplier is operable to display the fix instance; the duplicated cells are taken together by the map arrangement to indicate the position x-y in a two-dimensional space and are drawn as boxes; Y cells nested within other cells specify a position x-y that is relative to the parent so that the net result is that it is placed under a two-dimensional map of rectangles.
14. The computer program system as claimed in clause 6, characterized in that: the compiler and the evaluator are operable to process one of a plurality of worksheet types including a duplicate worksheet for which a cell that evaluates a list of values is evaluated in duplicate cells in the worksheet instance, and a cell that evaluates such cells valued in list, also evaluates in duplicate cells, one for each duplicate cell from which it is evaluated; the compiler is also operable to receive a Gantt type of array definition and generate a Gantt array model; the evaluator is also operable to generate a fix instance that can display some Gantt data; Y the supplier is operable to display the fix instance; Y the duplicate cells are taken together by the Gantt array to indicate the start and end points of the bars nested in rows of a Gantt chart.
15. The computer program system as claimed in clause 14, characterized in that the edges of the Gantt bars can be dragged to cause the values to be established.
16. The computer program system as claimed in clause 7, characterized in that the defined named commands are subjected to controls of a specific type and controls associated with a specific cell value type, and the commands are operable to be invoked by user interactions specified by event definitions by specifying a command carried out when the specified interactions occur.
17. The computer program system as claimed in clause 16, characterized in that: a type of menu arrangement and a type of menu control which are formed together to specify a traditional menu system; Y the compiler is operable to move into a native window system menu system including key mnemonic and accelerator interactions consistent with the native window system.
18. The computer program system as claimed in clause 6, characterized in that: the compiler is also operable to receive a named parameterized report definition and to generate a report model, the report definition is composed of a plurality of array definition specifications using array names and parameter expressions for array parameters; the evaluator is also operable to receive the report model and a parameter expression and to generate a report instance that includes the setup instances according to a type of report definition, model and instance; Y The supplier is also operable to display the report instance in a window of a native window system.
19. The computer program system as claimed in clause 18, characterized in that: the compiler is also operable to receive an additional fixed expression for each cell definition of the worksheet definition; Y the evaluator is also operable to define the interaction of each control to avoid the cell values of the worksheet instance and change the user model specified by the fixed expression registered by the compiler in the worksheet model; Y the supplier is also operable to sustain user interaction with the controls displayed.
20. The computer system to provide a user with a computer program system, comprising: an operable data storage device for storing data representing a user model data set and a plurality of model interconnect functions; an operable data memory for storing data representing a worksheet definition, and a worksheet model; an operable execution memory for storing data representing a computer system; an operable display to display a report to a user of the computer system; . go a processor coupled to the data storage device, the data memory, the execution memory and the display, the processor executes the computer program system, wherein the computer program system comprises; a compiler operable to receive the worksheet definition and to have access to the plurality of interconnection functions model, the working sheet definition being named and parameterized and comprising the plurality of cell definitions each defining an independent expression of the model, and the compiler is also operable to generate the worksheet model comprising a plurality of cell models each defining an expression dependent on the model; Y an evaluator operable to receive the worksheet model and a parameter expression and to access the plurality of model interconnection functions and the user model data set, the titrator is also operable to evaluate the parameter expression and the expressions Model dependent in the worksheet model and to generate a worksheet instance containing a plurality of cell instances defining model-specific values.
21. The computer system as claimed in clause 20, characterized in that: the compiler is also operable to receive a fixed expression for each cell definition of the worksheet definition and to record the fixed-expression in the worksheet model; and the evaluator is also operable to receive the editions to the values of the worksheet instance and change the user model as specified by the fixed expression registered by the compiler in the worksheet model. > >
22. The computer system as claimed in clause 20, characterized in that the compiler and the evaluator are operable to process one of a plurality of types of worksheets including a duplicating worksheet for which a cell that evaluates a list of values is evaluated in duplicate cells in the worksheet instance, and the cell that evaluates from such list evaluated cells also evaluates in duplicate cells, one for each duplicate cell from which it is evaluated.
23. The computer system as claimed in clause 20, characterized in that an expression independent of the model and a model-dependent one comprises a resource expression that allows a cell to generate a list of itself, resulting in nested duplications generated from each duplication of the same cell, continuing until the nested duplications result in lists of zero values.
24. The computer system as claimed in clause 23, characterized in that: the compiler is also operable - to receive an additional fixed expression for each cell definition of the worksheet definition; and JÍ ' the evaluator is also operable to receive new editions of the values of the worksheet instance and to change the user model as specified by a fixed expression registered by the compiler in the worksheet model.
25. The computer system as claimed in clause 23, further characterized in that it comprises a provider operable to receive the fix instance and to visually display controls to a user, and wherein: the compiler is further operable to receive an array definition, the array definition being named and parameterized and comprising a plurality of control definitions that specifically display cell values, specifying the worksheet definition by name and passing specific parameter expressions to the definition of the worksheet, and the compiler is also operable to generate an arrangement model; the evaluator is also .operable to receive the fix model and to generate a fix instance specifying a precise relative array of control instances, the control instances specifying an accurate fix of worksheet values. the definition of arrangement, model and instance comprises a type of arrangement; Y the controls comprise a plurality of control types appropriate for the type of arrangement.
26. A method for operating a computer system interactively to display a report to a user of the computer system, comprising: provide a plurality of model interconnect functions; provide a user model defining a data set describing a user environment; provide a definition of worksheet; receive the definition of worksheet and access the plurality of interconnection functions model, the definition of worksheet being named and parameterized and comprising a plurality of definitions of i cell each defining an independent expression of the model; generating a worksheet model comprising a plurality of cell models each defining a model-dependent expression; receive the worksheet model and a parameter expression and access the plurality of model interconnection functions and the user model data set; evaluate the parameter expression and the dependent expressions of the model in the worksheet model; Y generate a worksheet instance containing a plurality of cell instances defining model-specific values. SUMMARY A computer program system is provided. The computer program system includes an operable compiler to receive a worksheet definition and to access a plurality of model interconnect functions. The definition of the worksheet is named and parameterized and comprises a plurality of cell definitions each defining an independent expression of the model. The compiler is also operable to generate a worksheet tempering comprising a plurality of cell tempers each defining a model-dependent expression. An evaluator is operable to receive the worksheet model and a parameter expression. The evaluator is also operable to access the plurality of model interconnection functions and a user model. The evaluator is operable to evaluate the parameter expression and the model-dependent expressions in the worksheet model and is operable to generate a worksheet instance containing a plurality of cell instances defining model-specific values.
MXPA/A/1997/010160A 1995-06-16 1997-12-15 System of generation of interactive report and operating method MXPA97010160A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08491121 1995-06-16
US08/491,121 US5832532A (en) 1995-06-16 1995-06-16 Model-independent and interactive report generation system and method of operation

Publications (2)

Publication Number Publication Date
MX9710160A MX9710160A (en) 1998-07-31
MXPA97010160A true MXPA97010160A (en) 1998-11-09

Family

ID=

Similar Documents

Publication Publication Date Title
US5832532A (en) Model-independent and interactive report generation system and method of operation
Bias Interface-Walkthroughs: efficient collaborative testing
Bodart et al. A model-based approach to presentation: A continuum from task analysis to prototype
US5701400A (en) Method and apparatus for applying if-then-else rules to data sets in a relational data base and generating from the results of application of said rules a database of diagnostics linked to said data sets to aid executive analysis of financial data
US7761281B2 (en) System and method for performing compound computational experiments
Bertelsen et al. Activity theory
US5197120A (en) Methods and systems for generating parametric designs
EP1211624A2 (en) Methods and apparatus for automatically producing spreadsheet-based models
JP2002507030A (en) Method and computer device for automatically executing application software
WO2003098500A1 (en) Method and apparatus for automatically producing spreadsheet-based models
Bakke et al. A spreadsheet-based user interface for managing plural relationships in structured data
Chandrasekaran et al. Microcomputer based multiple criteria decision support system for strategic planning
MXPA97010160A (en) System of generation of interactive report and operating method
Kimura et al. Form/formula: a visual programming paradigm for user-definable user interfaces
Goldberg Automatic programming
Morgan A review of eight statistics software packages for general use
Pendergast et al. Supporting the group creation of formal and informal graphics during business process modeling
Ibrahim Diagrammatic representation of data types and data manipulations in a combined data-and control-flow language
O'Dell et al. The design and implementation of a visual user interface for a structured model management system
Ukelson et al. Case study: Using its style tools to implement IBM's CUA‐2 user interface style
Ziegler Direct manipulation techniques for the human-computer interface
Jensen Modeling with microcomputers for operations research
Kittle et al. ANNIE-IDE, a System for Developing Interactive User Interfaces for Environmental Models: Programmers Guide
Boulos A user interface for a programming environment
Greenlee From sketch to layout: using abstract descriptions and visual properties to generate page layouts