US20140164429A1 - Persisting instance-level report customizations - Google Patents

Persisting instance-level report customizations Download PDF

Info

Publication number
US20140164429A1
US20140164429A1 US14/182,133 US201414182133A US2014164429A1 US 20140164429 A1 US20140164429 A1 US 20140164429A1 US 201414182133 A US201414182133 A US 201414182133A US 2014164429 A1 US2014164429 A1 US 2014164429A1
Authority
US
United States
Prior art keywords
report
original
query
customization
computing device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US14/182,133
Inventor
Robert A. Meyers
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Priority to US14/182,133 priority Critical patent/US20140164429A1/en
Publication of US20140164429A1 publication Critical patent/US20140164429A1/en
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC reassignment MICROSOFT TECHNOLOGY LICENSING, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MICROSOFT CORPORATION
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC reassignment MICROSOFT TECHNOLOGY LICENSING, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MICROSOFT CORPORATION
Assigned to MICROSOFT CORPORATION reassignment MICROSOFT CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MEYERS, ROBERT A.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • G06F17/30424
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/197Version control

Definitions

  • Input is received from a user to run an original report.
  • An original query associated with the original report is executed against a data store.
  • the original report is displayed to the user.
  • At least one instance-level customization is received from the user to customize the instance data of the original report.
  • the instance-level customizations that the user makes to the customized report are tracked in a manner that allows a history of changes from the original report to the customized report to be determined.
  • the customized report is generated in subsequent executions of the report.
  • the instance-level changes the user made to the report can be audited to allow users to see the changes made to the original report.
  • FIG. 1 is a diagrammatic view of a computer system of one implementation.
  • FIG. 2 is a diagrammatic view of a report builder application of one implementation operating on the computer system of FIG. 1 .
  • FIG. 3 is a high-level process flow diagram for one implementation of the system of FIG. 1 .
  • FIG. 4 is a process flow diagram for one implementation of the system of FIG. 1 illustrating the stages involved in customizing a report by annotating the original query.
  • FIG. 5 is a process flow diagram for one implementation of the system of FIG. 1 illustrating the stages involved in customizing a report by creating a wrapper query.
  • FIG. 6 is a process flow diagram for one implementation of the system of FIG. 1 illustrating the stages involved in allowing a user to customize a particular field in a report.
  • FIG. 7 is a process flow diagram for one implementation of the system of FIG. 1 illustrating the stages involved in allowing a user to change the position of an instance within a group of instances in a report.
  • FIG. 8 is a process flow diagram for one implementation of the system of FIG. 1 illustrating the stages involved in allowing a user to create an ad-hoc grouping of items in a report.
  • FIG. 9 is a process flow diagram for one implementation of the system of FIG. 1 illustrating the stages involved in allowing a user to collapse multiple instances into a single instance in a report.
  • FIG. 10 is a process flow diagram for one implementation of the system of FIG. 1 illustrating the stages involved in allowing a user to audit changes made to a report.
  • FIG. 11 is a simulated screen for one implementation of the system of FIG. 1 that illustrates a report viewer that visually indicates a user has modified the report.
  • the system may be described in the general context as a report builder application, but the system also serves other purposes in addition to these.
  • one or more of the techniques described herein can be implemented as features within a program such as MICROSOFT® SQL Server Report Builder, or from any other type of program or service that allows a user to create and/or manipulate reports.
  • an exemplary computer system to use for implementing one or more parts of the system includes a computing device, such as computing device 100 .
  • computing device 100 In its most basic configuration, computing device 100 typically includes at least one processing unit 102 and memory 104 .
  • memory 104 may be volatile (such as RAM), non-volatile (such as ROM, flash memory, etc.) or some combination of the two.
  • This most basic configuration is illustrated in FIG. 1 by dashed line 106 .
  • device 100 may also have additional features/functionality.
  • device 100 may also include additional storage (removable and/or non-removable) including, but not limited to, magnetic or optical disks or tape.
  • additional storage is illustrated in FIG. 1 by removable storage 108 and non-removable storage 110 .
  • Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
  • Memory 104 , removable storage 108 and non-removable storage 110 are all examples of computer storage media.
  • Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by device 100 . Any such computer storage media may be part of device 100 .
  • Computing device 100 includes one or more communication connections 114 that allow computing device 100 to communicate with other computers/applications 115 .
  • Device 100 may also have input device(s) 112 such as keyboard, mouse, pen, voice input device, touch input device, etc.
  • Output device(s) 111 such as a display, speakers, printer, etc. may also be included. These devices are well known in the art and need not be discussed at length here.
  • computing device 100 includes report builder application 200 . Report builder application 200 will be described in further detail in FIG. 2 .
  • Report builder application 200 is one of the application programs that reside on computing device 100 .
  • report builder application 200 can alternatively or additionally be embodied as computer-executable instructions on one or more computers and/or in different variations than shown on FIG. 1 .
  • one or more parts of report builder application 200 can be part of system memory 104 , on other computers, applications, and/or devices 115 , or other such variations as would occur to one in the computer software art.
  • Report builder application 200 includes program logic 204 , which is responsible for carrying out some or all of the techniques described herein.
  • Program logic 204 includes logic for allowing a user to create and execute a report 206 ; logic for displaying a report to the user in an original format 208 ; logic for allowing a user to make instance-level customizations to a report 210 ; logic for tracking instance-level customizations a user makes to the report (e.g.
  • program logic 204 is operable to be called programmatically from another program, such as using a single call to a procedure in program logic 204 .
  • FIG. 3 is a high level process flow diagram for report builder application 200 .
  • the process of FIG. 3 is at least partially implemented in the operating logic of computing device 100 .
  • the procedure begins at start point 240 with the user creating an original report designed to answer a particular question (without customizations) and selecting an option to run the report (stage 242 ).
  • the system receives the user input, executes the original query against data store, and generates report (stage 244 ).
  • the system displays the report to the user (stage 246 ).
  • the user customizes the report and the system receives the user customizations (stage 248 ).
  • the system tracks changes the user makes to the report so the report with the customizations can be recreated and the series of changes can be audited (stage 250 ).
  • the system creates a modified query for the changes (e.g. persists the modifications) (stage 251 ).
  • the user selects an option to run the report again (stage 252 ).
  • the system generates the report in the modified format (stage 254 ).
  • the modified report is displayed to the user (stage 255 ).
  • the process ends at end point 256 .
  • FIG. 4 illustrates one implementation of a more detailed process for customizing a report by annotating the original query.
  • the process of FIG. 4 is at least partially implemented in the operating logic of computing device 100 .
  • the procedure begins at start point 260 with system generating an original query to retrieve data for a report created by a user (or programmatically) (stage 262 ).
  • the system displays the report to the user (stage 263 ).
  • the system receives changes from the user to customize an instance of the report and tracks the instance-level changes (stage 264 ).
  • the system revises the original query with the instance-level customizations so the customizations will be displayed in subsequent runs of the report (stage 266 ).
  • the system annotates (e.g.
  • the revised query so the changes to the original query can be audited by users (stage 267 ).
  • the revised query is executed and used to generate the report in the customized format (stage 268 ). The process ends at end point 269 .
  • FIG. 5 illustrates one implementation of the stages involved in customizing a report by creating a wrapper query.
  • the process of FIG. 5 is at least partially implemented in the operating logic of computing device 100 .
  • the procedure begins at start point 270 with the system generating an original query (e.g. in XML, stored procedure, or other format) to retrieve data for a report created by a user (or programmatically) (stage 272 ).
  • the system displays the report to the user (stage 273 ).
  • the system receives changes from the user to customize an instance of the report and tracks the instance-level changes (stage 274 ).
  • the system creates a wrapper query (e.g.
  • stage 276 Upon receiving a request to run the report again, the original query and the wrapper query are executed and used to generate the report in the customized format (stage 278 ). The process ends at end point 280 .
  • FIG. 6 illustrates the process for allowing a user to customize a particular field in a report in one implementation in more detail.
  • the process of FIG. 6 is at least partially implemented in the operating logic of computing device 100 .
  • the procedure begins at start point 300 with receiving a request from a user to change the value of a particular field in a report (e.g. “ABC Company” to “ABC”) (stage 302 ).
  • the original report query is modified (e.g. same query or wrapper) by replacing the affected field (e.g. company name) with a custom formula that returns the modified value for the particular instances and the original value for all other instances (stage 304 ).
  • the modified query is used to generate subsequent versions of the report that includes the changes to the value of the particular field (stage 306 ).
  • the process ends at end point 308 .
  • FIG. 7 is a process flow diagram for one implementation that illustrates allowing a user to change the position of an instance within a group of instances in a report.
  • the process of FIG. 7 is at least partially implemented in the operating logic of computing device 100 .
  • the procedure begins at start point 320 with receiving a request from a user to change the position of an instance within a group of instances sorted by one or more fields (e.g. move “ZYX Corp.” to the top of the list) (stage 322 ).
  • the original report query is modified by inserting a new sort field before any existing sort fields, the new field having a custom formula that produces the revised sort order (stage 324 ).
  • the modified query is used to generate subsequent versions of the report that includes the changes to the sort order of the instance groups (stage 326 ).
  • the process ends at end point 328 .
  • FIG. 8 is a process flow diagram for one implementation that illustrates allowing a user to create an ad-hoc grouping of items in a report.
  • the process of FIG. 8 is at least partially implemented in the operating logic of computing device 100 .
  • the procedure begins at start point 340 with receiving a request from a user to create and ad-hoc grouping of items (stage 342 ).
  • the original report query is modified by inserting a new group whose grouping expression is a formula (stage 344 ).
  • stage 344 is a non-limiting example of an ad-hoc grouping:
  • the modified query is used to generate subsequent versions of the report that includes the ad-hoc groupings of the items (stage 346 ).
  • the process ends at end point 348 .
  • FIG. 9 is a process flow diagram for one implementation that illustrates allowing a user to collapse multiple instances into a single instance in a report.
  • the process of FIG. 9 is at least partially implemented in the operating logic of computing device 100 .
  • the procedure begins at start point 360 with receiving a request from a user to collapse multiple instances into a single instance (e.g. “WA” and “OR” into “Northwest”) (stage 362 ).
  • the original report query is modified by wrapping the grouping expression of the affected group in a custom formula that returns the new value for each value being combined and the original value for others (stage 364 ).
  • custom formulas are created to summarize any other data displayed for the collapsed instances (stage 365 ).
  • the modified query is used to generate subsequent versions of the report that includes the collapsed instances (stage 366 ).
  • the process ends at end point 368 .
  • FIG. 10 is a process flow diagram for one implementation that illustrates allowing a user to audit changes made to a report.
  • the process of FIG. 10 is at least partially implemented in the operating logic of computing device 100 .
  • the procedure begins at start point 380 with the system tracking instance-level changes made to a report by a user (stage 382 ).
  • the system receives a request from a user to audit the report to see what changes were made to the report from the original version (stage 384 ).
  • the system displays some or all of the changes to the user (e.g.
  • stage 386 in a graphical format, in a query format with annotations describing the changes, the original query and/or the wrapper query showing changes, with a tooltip or other visual indicator to show an area was changed, etc.
  • stage 386 in a query format with annotations describing the changes, the original query and/or the wrapper query showing changes, with a tooltip or other visual indicator to show an area was changed, etc.
  • FIG. 11 a simulated screen is shown to illustrate a user interface of a report builder that shows using tooltips to indicate instance-level customizations a user made to a particular report.
  • This screen can be displayed to users on output device(s) 111 . Furthermore, this screen can receive input from users from input device(s) 112 .
  • the screen has a tooltip 400 to indicate that a row was deleted by the user in the instance-level version of the report. Tooltips can also be used to show that rows were changed, collapsed, and/or otherwise modified.
  • a method for persisting instance-level report customizations comprises the steps of: receiving input from a user to run an original report; executing an original query associated with the original report against a data store; displaying the original report to the user; receiving at least one instance-level customization from the user to customize an instance of original data displayed in the original report; tracking the at least one instance-level customization that the user makes to the customized report in a manner that allows a history of changes from the original report to the customized report to be determined; and generating the customized report in a subsequent run of the original report.
  • the tracking step may comprise: revising the original query to implement the at least one instance-level customization; and annotating the original query so the at least one instance-level customization made to the original query can be audited.
  • the tracking step may comprise: generating a wrapper query that can be executed after the original query to take the original data from the original query and further manipulate the original data to achieve the at least one instance-level customization.
  • the at least one instance-level customization may include changing a value of a particular field for a particular one or more instances in the original report.
  • the customization may be persisted using a custom formula that returns the changed value for the particular field for the particular one or more instances and returns an original value for the particular field for all remaining records.
  • the at least one instance-level customization may include changing a position of an instance within a group of instances sorted by one or more fields.
  • the customization may be persisted using a new sort field that has a custom formula that produces the changed position of the instance.
  • the at least one instance-level customization may include creating an ad-hoc grouping of items.
  • the ad-hoc grouping of items may be achieved by inserting a new group whose grouping expression is a formula.
  • the at least one instance-level customization may include collapsing multiple instances into a single instance.
  • the customization may be persisted by wrapping a grouping expression of an affected group into a custom formula that returns a new value for each value in the affected group being combined and an original value for all other values in the affected group.
  • a computer-readable medium has computer-executable instructions for causing a computer to perform the steps of the method.
  • a computer-readable medium has computer-executable instructions for causing a computer to perform steps comprising: provide a user with an ability to make one or more instance-level customizations in a report; track the one or more instance-level customizations the user makes to the report; generate the report in a modified format that includes the one or more instance-level customizations on subsequent runs of the report; and provide a feature to allow the user to audit the report to see how an original version of the report was modified by the one or more instance-level customizations.
  • the one or more instance-level customizations may be tracked by updating an original query for the report with the one or more instance-level changes and a corresponding one or more annotations to describe what changed.
  • the one or more instance-level customizations may be tracked by creating a wrapper query for the report to further filter an original query result set to achieve the one or more instance-level customizations.
  • a method for auditing changes made to an instance of a report comprises the steps of: tracking one or more instance-level changes a user makes to a report; receiving a request from a user to audit the report to see what changes were made to the report from an original version of the report; and displaying at least a portion of the one or more instance-level changes to the user.
  • the displaying step may comprise: displaying a modified query with annotations describing the one or more instance-level changes.
  • the displaying step may comprise: displaying a wrapper query that was used to generate the report with the one or more instance-level customizations.
  • the displaying step may comprise: displaying a visual indicator near a particular field in a user interface of a reporting application to indicate visually that the particular field was changed.
  • a computer-readable medium has computer-executable instructions for causing a computer to perform the steps recited in the method.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Various technologies and techniques are disclosed for persisting instance-level report customizations. Input is received from a user to run an original report. An original query associated with the original report is executed against a data store. The original report is displayed to the user. At least one instance-level customization is received from the user to customize an instance of the original report. The instance-level customizations that the user makes to the customized report are tracked in a manner that allows a history of changes from the original report to the customized report to be determined. The customized report is generated in subsequent executions of the report. The instance-level changes the user made to the report can be audited to allow users to see the changes made to the original report.

Description

    CROSS-REFERENCE TO RELATED APPLICATION(S)
  • This application is a continuation of allowed U.S. application Ser. No. 11/413,227, filed on Apr. 28, 2006, which is incorporated by reference herein in its entirety.
  • BACKGROUND
  • When creating a report, it is common in certain scenarios for the user to desire to customize the actual instance data returned by the report. These customizations include renaming items/editing values, re-ordering items, creating ad-hoc groupings of items, and collapsing multiple items into a single item. While making such changes manually is fairly straightforward in a spreadsheet or similar application, such an approach can be difficult to repeat, reverse, and audit. With some reporting applications, the user is also able to make such changes to the data, but the changes cannot be audited and are lost the next time the report is run.
  • SUMMARY
  • Various technologies and techniques are disclosed for persisting instance-level report customizations. Input is received from a user to run an original report. An original query associated with the original report is executed against a data store. The original report is displayed to the user. At least one instance-level customization is received from the user to customize the instance data of the original report. The instance-level customizations that the user makes to the customized report are tracked in a manner that allows a history of changes from the original report to the customized report to be determined. The customized report is generated in subsequent executions of the report. The instance-level changes the user made to the report can be audited to allow users to see the changes made to the original report.
  • This Summary was provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a diagrammatic view of a computer system of one implementation.
  • FIG. 2 is a diagrammatic view of a report builder application of one implementation operating on the computer system of FIG. 1.
  • FIG. 3 is a high-level process flow diagram for one implementation of the system of FIG. 1.
  • FIG. 4 is a process flow diagram for one implementation of the system of FIG. 1 illustrating the stages involved in customizing a report by annotating the original query.
  • FIG. 5 is a process flow diagram for one implementation of the system of FIG. 1 illustrating the stages involved in customizing a report by creating a wrapper query.
  • FIG. 6 is a process flow diagram for one implementation of the system of FIG. 1 illustrating the stages involved in allowing a user to customize a particular field in a report.
  • FIG. 7 is a process flow diagram for one implementation of the system of FIG. 1 illustrating the stages involved in allowing a user to change the position of an instance within a group of instances in a report.
  • FIG. 8 is a process flow diagram for one implementation of the system of FIG. 1 illustrating the stages involved in allowing a user to create an ad-hoc grouping of items in a report.
  • FIG. 9 is a process flow diagram for one implementation of the system of FIG. 1 illustrating the stages involved in allowing a user to collapse multiple instances into a single instance in a report.
  • FIG. 10 is a process flow diagram for one implementation of the system of FIG. 1 illustrating the stages involved in allowing a user to audit changes made to a report.
  • FIG. 11 is a simulated screen for one implementation of the system of FIG. 1 that illustrates a report viewer that visually indicates a user has modified the report.
  • DETAILED DESCRIPTION
  • For the purposes of promoting an understanding of the principles of the invention, reference will now be made to the embodiments illustrated in the drawings and specific language will be used to describe the same. It will nevertheless be understood that no limitation of the scope is thereby intended. Any alterations and further modifications in the described embodiments, and any further applications of the principles as described herein are contemplated as would normally occur to one skilled in the art.
  • The system may be described in the general context as a report builder application, but the system also serves other purposes in addition to these. In one implementation, one or more of the techniques described herein can be implemented as features within a program such as MICROSOFT® SQL Server Report Builder, or from any other type of program or service that allows a user to create and/or manipulate reports.
  • As shown in FIG. 1, an exemplary computer system to use for implementing one or more parts of the system includes a computing device, such as computing device 100. In its most basic configuration, computing device 100 typically includes at least one processing unit 102 and memory 104. Depending on the exact configuration and type of computing device, memory 104 may be volatile (such as RAM), non-volatile (such as ROM, flash memory, etc.) or some combination of the two. This most basic configuration is illustrated in FIG. 1 by dashed line 106.
  • Additionally, device 100 may also have additional features/functionality. For example, device 100 may also include additional storage (removable and/or non-removable) including, but not limited to, magnetic or optical disks or tape. Such additional storage is illustrated in FIG. 1 by removable storage 108 and non-removable storage 110. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Memory 104, removable storage 108 and non-removable storage 110 are all examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by device 100. Any such computer storage media may be part of device 100.
  • Computing device 100 includes one or more communication connections 114 that allow computing device 100 to communicate with other computers/applications 115. Device 100 may also have input device(s) 112 such as keyboard, mouse, pen, voice input device, touch input device, etc. Output device(s) 111 such as a display, speakers, printer, etc. may also be included. These devices are well known in the art and need not be discussed at length here. In one implementation, computing device 100 includes report builder application 200. Report builder application 200 will be described in further detail in FIG. 2.
  • Turning now to FIG. 2 with continued reference to FIG. 1, a report builder application 200 operating on computing device 100 is illustrated. Report builder application 200 is one of the application programs that reside on computing device 100. However, it will be understood that report builder application 200 can alternatively or additionally be embodied as computer-executable instructions on one or more computers and/or in different variations than shown on FIG. 1. Alternatively or additionally, one or more parts of report builder application 200 can be part of system memory 104, on other computers, applications, and/or devices 115, or other such variations as would occur to one in the computer software art.
  • Report builder application 200 includes program logic 204, which is responsible for carrying out some or all of the techniques described herein. Program logic 204 includes logic for allowing a user to create and execute a report 206; logic for displaying a report to the user in an original format 208; logic for allowing a user to make instance-level customizations to a report 210; logic for tracking instance-level customizations a user makes to the report (e.g. by modifying and annotating the original query or by creating a wrapper query) 212; logic for generating the report in the modified format in subsequent executions of the report 214; logic for displaying a report to the user in the modified format 216; logic for allowing a user to audit the report to see the original version and/or the customizations 218; and other logic for operating the application 220. In one implementation, program logic 204 is operable to be called programmatically from another program, such as using a single call to a procedure in program logic 204.
  • Turning now to FIGS. 3-10 with continued reference to FIGS. 1-2, the stages for implementing one or more implementations of report builder application 200 are described in further detail. FIG. 3 is a high level process flow diagram for report builder application 200. In one form, the process of FIG. 3 is at least partially implemented in the operating logic of computing device 100.
  • The procedure begins at start point 240 with the user creating an original report designed to answer a particular question (without customizations) and selecting an option to run the report (stage 242). The system receives the user input, executes the original query against data store, and generates report (stage 244). The system displays the report to the user (stage 246). The user customizes the report and the system receives the user customizations (stage 248). The system tracks changes the user makes to the report so the report with the customizations can be recreated and the series of changes can be audited (stage 250). The system creates a modified query for the changes (e.g. persists the modifications) (stage 251). The user (same or different user) selects an option to run the report again (stage 252). The system generates the report in the modified format (stage 254). The modified report is displayed to the user (stage 255). The process ends at end point 256.
  • FIG. 4 illustrates one implementation of a more detailed process for customizing a report by annotating the original query. In one form, the process of FIG. 4 is at least partially implemented in the operating logic of computing device 100. The procedure begins at start point 260 with system generating an original query to retrieve data for a report created by a user (or programmatically) (stage 262). The system displays the report to the user (stage 263). The system receives changes from the user to customize an instance of the report and tracks the instance-level changes (stage 264). The system revises the original query with the instance-level customizations so the customizations will be displayed in subsequent runs of the report (stage 266). The system annotates (e.g. comments or otherwise documents) the revised query so the changes to the original query can be audited by users (stage 267). Upon receiving a request to run the report again, the revised query is executed and used to generate the report in the customized format (stage 268). The process ends at end point 269.
  • FIG. 5 illustrates one implementation of the stages involved in customizing a report by creating a wrapper query. In one form, the process of FIG. 5 is at least partially implemented in the operating logic of computing device 100. The procedure begins at start point 270 with the system generating an original query (e.g. in XML, stored procedure, or other format) to retrieve data for a report created by a user (or programmatically) (stage 272). The system displays the report to the user (stage 273). The system receives changes from the user to customize an instance of the report and tracks the instance-level changes (stage 274). The system creates a wrapper query (e.g. in XML stored procedure, or other format) that takes the data from the original query and further manipulates the data to achieve the instance-level customizations so the customizations will be displayed in subsequent runs of the report (stage 276). Upon receiving a request to run the report again, the original query and the wrapper query are executed and used to generate the report in the customized format (stage 278). The process ends at end point 280.
  • FIG. 6 illustrates the process for allowing a user to customize a particular field in a report in one implementation in more detail. In one form, the process of FIG. 6 is at least partially implemented in the operating logic of computing device 100. The procedure begins at start point 300 with receiving a request from a user to change the value of a particular field in a report (e.g. “ABC Company” to “ABC”) (stage 302). The original report query is modified (e.g. same query or wrapper) by replacing the affected field (e.g. company name) with a custom formula that returns the modified value for the particular instances and the original value for all other instances (stage 304). The modified query is used to generate subsequent versions of the report that includes the changes to the value of the particular field (stage 306). The process ends at end point 308.
  • FIG. 7 is a process flow diagram for one implementation that illustrates allowing a user to change the position of an instance within a group of instances in a report. In one form, the process of FIG. 7 is at least partially implemented in the operating logic of computing device 100. The procedure begins at start point 320 with receiving a request from a user to change the position of an instance within a group of instances sorted by one or more fields (e.g. move “ZYX Corp.” to the top of the list) (stage 322). The original report query is modified by inserting a new sort field before any existing sort fields, the new field having a custom formula that produces the revised sort order (stage 324).
  • Let's take a look at a non-limiting hypothetical example of how this could work. Given an instance Q immediately following the new position of ZYX Corp., the new sort field has a custom formula that returns one of three values:
      • 1=the instance is not ZYX Corp. and would normally be sorted before Q (based on the remaining sort fields).
      • 2=the instance is ZYX Corp.
      • 3=the instance is not ZYX Corp. and would normally be sorted at or after Q.
  • The modified query is used to generate subsequent versions of the report that includes the changes to the sort order of the instance groups (stage 326). The process ends at end point 328.
  • FIG. 8 is a process flow diagram for one implementation that illustrates allowing a user to create an ad-hoc grouping of items in a report. In one form, the process of FIG. 8 is at least partially implemented in the operating logic of computing device 100. The procedure begins at start point 340 with receiving a request from a user to create and ad-hoc grouping of items (stage 342). The original report query is modified by inserting a new group whose grouping expression is a formula (stage 344). Here is a non-limiting example of an ad-hoc grouping:
      • SWITCH(IN(<InstanceRef>, {Key1, Key2, Key3}), “Group1”, IN(<InstanceRef>, {Key4,Key5}, “Group2”, . . . )
  • The modified query is used to generate subsequent versions of the report that includes the ad-hoc groupings of the items (stage 346). The process ends at end point 348.
  • FIG. 9 is a process flow diagram for one implementation that illustrates allowing a user to collapse multiple instances into a single instance in a report. In one form, the process of FIG. 9 is at least partially implemented in the operating logic of computing device 100. The procedure begins at start point 360 with receiving a request from a user to collapse multiple instances into a single instance (e.g. “WA” and “OR” into “Northwest”) (stage 362). The original report query is modified by wrapping the grouping expression of the affected group in a custom formula that returns the new value for each value being combined and the original value for others (stage 364). In addition, custom formulas are created to summarize any other data displayed for the collapsed instances (stage 365). The modified query is used to generate subsequent versions of the report that includes the collapsed instances (stage 366). The process ends at end point 368.
  • FIG. 10 is a process flow diagram for one implementation that illustrates allowing a user to audit changes made to a report. In one form, the process of FIG. 10 is at least partially implemented in the operating logic of computing device 100. The procedure begins at start point 380 with the system tracking instance-level changes made to a report by a user (stage 382). The system receives a request from a user to audit the report to see what changes were made to the report from the original version (stage 384). The system displays some or all of the changes to the user (e.g. in a graphical format, in a query format with annotations describing the changes, the original query and/or the wrapper query showing changes, with a tooltip or other visual indicator to show an area was changed, etc.) (stage 386). The process ends at end point 388.
  • Turning now to FIG. 11, a simulated screen is shown to illustrate a user interface of a report builder that shows using tooltips to indicate instance-level customizations a user made to a particular report. This screen can be displayed to users on output device(s) 111. Furthermore, this screen can receive input from users from input device(s) 112. The screen has a tooltip 400 to indicate that a row was deleted by the user in the instance-level version of the report. Tooltips can also be used to show that rows were changed, collapsed, and/or otherwise modified.
  • Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims. All equivalents, changes, and modifications that come within the spirit of the implementations as described herein and/or by the following claims are desired to be protected.
  • For example, a person of ordinary skill in the computer software art will recognize that the client and/or server arrangements, user interface screen content, and/or data layouts as described in the examples discussed herein could be organized differently on one or more computers to include fewer or additional options or features than as portrayed in the examples.
  • In an embodiment, a method for persisting instance-level report customizations comprises the steps of: receiving input from a user to run an original report; executing an original query associated with the original report against a data store; displaying the original report to the user; receiving at least one instance-level customization from the user to customize an instance of original data displayed in the original report; tracking the at least one instance-level customization that the user makes to the customized report in a manner that allows a history of changes from the original report to the customized report to be determined; and generating the customized report in a subsequent run of the original report.
  • In the method, the tracking step may comprise: revising the original query to implement the at least one instance-level customization; and annotating the original query so the at least one instance-level customization made to the original query can be audited.
  • In the method, the tracking step may comprise: generating a wrapper query that can be executed after the original query to take the original data from the original query and further manipulate the original data to achieve the at least one instance-level customization.
  • In the method, the at least one instance-level customization may include changing a value of a particular field for a particular one or more instances in the original report.
  • In the method, the customization may be persisted using a custom formula that returns the changed value for the particular field for the particular one or more instances and returns an original value for the particular field for all remaining records.
  • In the method, the at least one instance-level customization may include changing a position of an instance within a group of instances sorted by one or more fields.
  • In the method, the customization may be persisted using a new sort field that has a custom formula that produces the changed position of the instance.
  • In the method, the at least one instance-level customization may include creating an ad-hoc grouping of items.
  • In the method, the ad-hoc grouping of items may be achieved by inserting a new group whose grouping expression is a formula.
  • In the method, the at least one instance-level customization may include collapsing multiple instances into a single instance.
  • In the method, the customization may be persisted by wrapping a grouping expression of an affected group into a custom formula that returns a new value for each value in the affected group being combined and an original value for all other values in the affected group.
  • In an embodiment, a computer-readable medium has computer-executable instructions for causing a computer to perform the steps of the method.
  • In an embodiment, a computer-readable medium has computer-executable instructions for causing a computer to perform steps comprising: provide a user with an ability to make one or more instance-level customizations in a report; track the one or more instance-level customizations the user makes to the report; generate the report in a modified format that includes the one or more instance-level customizations on subsequent runs of the report; and provide a feature to allow the user to audit the report to see how an original version of the report was modified by the one or more instance-level customizations.
  • According to the computer-readable medium, the one or more instance-level customizations may be tracked by updating an original query for the report with the one or more instance-level changes and a corresponding one or more annotations to describe what changed.
  • According to the computer-readable medium, the one or more instance-level customizations may be tracked by creating a wrapper query for the report to further filter an original query result set to achieve the one or more instance-level customizations.
  • In an embodiment, a method for auditing changes made to an instance of a report comprises the steps of: tracking one or more instance-level changes a user makes to a report; receiving a request from a user to audit the report to see what changes were made to the report from an original version of the report; and displaying at least a portion of the one or more instance-level changes to the user.
  • In the method, the displaying step may comprise: displaying a modified query with annotations describing the one or more instance-level changes.
  • In the method, the displaying step may comprise: displaying a wrapper query that was used to generate the report with the one or more instance-level customizations.
  • In the method, the displaying step may comprise: displaying a visual indicator near a particular field in a user interface of a reporting application to indicate visually that the particular field was changed.
  • In an embodiment, a computer-readable medium has computer-executable instructions for causing a computer to perform the steps recited in the method.

Claims (32)

What is claimed is:
1. A method for persisting report customizations comprising:
receiving at least one customization to customize an instance of original data of an original report that was generated by executing a first query against a data store, the at least one customization including a change to a value of a field in the original report;
tracking the at least one customization in a manner that allows a history of changes from the original report to be determined; and
generating at least one query configured to achieve the at least one customization in a customized report that is a customized version of the original report.
2. The method of claim 1, further comprising:
maintaining the at least one query for subsequent execution against the data store to generate the customized report.
3. The method of claim 1, further comprising:
enabling the user to audit changes made to the original report due to the at least one customization at least by displaying the changes made to the original report with annotations describing the changes.
4. The method of claim 1, wherein said generating comprises:
modifying the first query to implement the at least one customization.
5. The method of claim 1, wherein said generating comprises:
generating a second query that can be executed after the first query to take the original data from the first query and further manipulate the original data to achieve the at least one customization.
6. The method of claim 1, said receiving comprises:
receiving a changed value of a particular field for a particular one or more instances of the field in the original report;
receiving a change to a position of an instance of original data within a group of instances of original data sorted by one or more fields;
receiving an ad-hoc grouping of items; or
receiving a collapsing of multiple instances of original data into a single instance.
7. The method of claim 6, wherein the customization is persisted using a new sort field that has a custom formula that produces the changed position of the instance.
8. The method of claim 6, wherein the ad-hoc grouping of items is achieved by inserting a new group whose grouping expression is a formula.
9. The method of claim 6, wherein the customization is persisted by wrapping a grouping expression of an affected group into a custom formula that returns a new value for each value in the affected group being combined and an original value for all other values in the affected group.
10. The method of claim 1, further comprising:
displaying the at least one customization in a user interface.
11. The method of claim 1, further comprising:
displaying the generated at least one query in a user interface.
12. The method of claim 1, further comprising:
displaying the history of changes in a user interface.
13. The method of claim 1, wherein said displaying comprises:
displaying a visual indicator in association with a particular field in a user interface of a reporting application to indicate that the particular field was changed.
14. A computing device, comprising:
at least one processing unit; and
memory that stores computer readable instructions, the at least one processing unit configured to execute the computer readable instructions to enable the computing device to:
enable a user to make one or more customizations in a report generated by executing an original query on a data store;
track the at least one customization;
generate at least one query configured to achieve the at least one customization in a customized report that is a customized version of the original report; and
maintain the at least one query for subsequent execution against the data store to generate the customized report.
15. The computing device of claim 14, wherein the at least one processing unit is configured to execute the computer readable instructions to enable the computing device to:
enable the user to audit changes made to the original report due to the at least one customization at least by displaying the changes made to the original report with annotations describing the changes.
16. The computing device of claim 14, wherein to generate the at least one query, the at least one processing unit is configured to execute the computer readable instructions to enable the computing device to:
modify the original query to implement the at least one customization.
17. The computing device of claim 14, wherein to generate the at least one query, the at least one processing unit is configured to execute the computer readable instructions to enable the computing device to:
generate a second query that can be executed after the original query to take original data from the original query and further manipulate the original data to achieve the at least one customization.
18. The computing device of claim 14, wherein to enable a user to make one or more customizations in the report, the at least one processing unit is configured to execute the computer readable instructions to enable the computing device to:
receive a changed value of a particular field for a particular one or more instances of the field in the original report;
receive a change to a position of an instance of original data within a group of instances of original data sorted by one or more fields;
receive an ad-hoc grouping of items; or
receive a collapsing of multiple instances of original data into a single instance.
19. The computing device of claim 14, wherein the at least one processing unit is configured to execute the computer readable instructions to enable the computing device to:
display the at least one customization in a user interface.
20. The computing device of claim 14, wherein to display the at least one customization in a user interface, the at least one processing unit is configured to execute the computer readable instructions to enable the computing device to:
display a visual indicator in association with a particular field in a user interface of a reporting application to indicate that the particular field was changed.
21. The computing device of claim 14, wherein the generated at least one query is displayed in a user interface.
22. The computing device of claim 14, wherein a history of tracked customizations is displayed in a user interface.
23. The computing device of claim 14, wherein the at least one customization includes a change to a value of a field in the original report.
24. A computer storage medium that stores computer-executable instructions for causing a computer to perform acts, comprising:
enabling a user to make one or more customizations in a report generated by executing an original query on a data store;
tracking the at least one customization;
generating at least one query configured to achieve the at least one customization in a customized report that is a customized version of the original report; and
maintaining the at least one query for subsequent execution against the data store to generate the customized report.
25. The computer storage medium of claim 24, wherein said generating comprises:
modifying the original query to implement the at least one customization.
26. The computer storage medium of claim 24, wherein said generating comprises:
generating a second query that can be executed after the original query to take original data from the original query and further manipulate the original data to achieve the at least one customization.
27. The computer storage medium of claim 24, the acts further comprising:
displaying the at least one customization in a user interface.
28. The computer storage medium of claim 24, the acts further comprising:
displaying the generated at least one query in a user interface.
29. The computer storage medium of claim 24, the acts further comprising:
displaying a history of tracked customizations in a user interface.
30. The computer storage medium of claim 24, wherein said displaying comprises:
displaying a visual indicator in association with a particular field in a user interface of a reporting application to indicate that the particular field was changed.
31. The computer storage medium of claim 24, wherein the at least one customization includes a change to a value of a field in the original report.
32. The computer storage medium of claim 24, the acts further comprising:
enabling the user to audit changes made to the original report due to the at least one customization at least by displaying the changes made to the original report with annotations describing the changes.
US14/182,133 2006-04-28 2014-02-17 Persisting instance-level report customizations Abandoned US20140164429A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/182,133 US20140164429A1 (en) 2006-04-28 2014-02-17 Persisting instance-level report customizations

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/413,227 US8656272B2 (en) 2006-04-28 2006-04-28 Persisting instance-level report customizations
US14/182,133 US20140164429A1 (en) 2006-04-28 2014-02-17 Persisting instance-level report customizations

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US11/413,227 Continuation US8656272B2 (en) 2006-04-28 2006-04-28 Persisting instance-level report customizations

Publications (1)

Publication Number Publication Date
US20140164429A1 true US20140164429A1 (en) 2014-06-12

Family

ID=38649721

Family Applications (2)

Application Number Title Priority Date Filing Date
US11/413,227 Active 2030-05-28 US8656272B2 (en) 2006-04-28 2006-04-28 Persisting instance-level report customizations
US14/182,133 Abandoned US20140164429A1 (en) 2006-04-28 2014-02-17 Persisting instance-level report customizations

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US11/413,227 Active 2030-05-28 US8656272B2 (en) 2006-04-28 2006-04-28 Persisting instance-level report customizations

Country Status (1)

Country Link
US (2) US8656272B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210374109A1 (en) * 2013-03-15 2021-12-02 Factual, Inc. Apparatus, systems, and methods for batch and realtime data processing

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9037959B2 (en) * 2008-09-30 2015-05-19 Apple Inc. Formula display and search in a spreadsheet
US8204850B1 (en) * 2009-06-04 2012-06-19 Workday, Inc. Contextual report definition creator

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6698013B1 (en) * 2000-10-04 2004-02-24 Mintaka Technology Group Real time monitoring system for tracking and documenting changes made by programmer's during maintenance or development of computer readable code on a line by line basis and/or by point of focus
US20050091256A1 (en) * 2003-10-24 2005-04-28 Balaji Rathakrishnan SQL language extensions for modifying collection-valued and scalar valued columns in a single statement

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5426781A (en) * 1992-04-30 1995-06-20 International Business Machines Corporation Computerized report-based interactive database query interface
US5303146A (en) * 1993-03-11 1994-04-12 Borland International, Inc. System and methods for improved scenario management in an electronic spreadsheet
US6490620B1 (en) 1997-09-26 2002-12-03 Worldcom, Inc. Integrated proxy interface for web based broadband telecommunications management
US6195653B1 (en) 1997-10-14 2001-02-27 International Business Machines Corporation System and method for selectively preparing customized reports of query explain data
CA2264321A1 (en) 1999-03-02 2000-09-02 Cognos Incorporated Method and apparatus for generating reports
GB9925741D0 (en) * 1999-10-30 1999-12-29 Ibm Interaction with database reports
US7188100B2 (en) 2000-02-25 2007-03-06 Joseph De Bellis Search-on-the-fly report generator
US20020194186A1 (en) 2001-03-27 2002-12-19 Foundation Software, Inc. Report design and data manipulation system and method of operation
US7409398B1 (en) * 2002-05-15 2008-08-05 Sparta Systems, Inc. Techniques for providing audit trails of configuration changes
US20040117731A1 (en) * 2002-09-27 2004-06-17 Sergey Blyashov Automated report building system
US20040158563A1 (en) 2003-02-12 2004-08-12 Microsoft Corporation Use of data mapping to drive document contents and distribution settings
US20050114308A1 (en) 2003-11-24 2005-05-26 International Business Machines Corporation User customizable reporting
GB0403059D0 (en) * 2004-02-12 2004-03-17 Cluster Seven Ltd Xigence version 1.0
US20050253874A1 (en) 2004-05-13 2005-11-17 Microsoft Corporation Report customization and viewer
WO2006028920A2 (en) * 2004-09-01 2006-03-16 Ubmatrix, Inc. Method and system for automatic audit trail
US8745483B2 (en) * 2004-10-07 2014-06-03 International Business Machines Corporation Methods, systems and computer program products for facilitating visualization of interrelationships in a spreadsheet
US8438140B2 (en) * 2004-12-23 2013-05-07 Business Objects Software Ltd. Apparatus and method for generating reports from versioned data
US9734139B2 (en) * 2005-02-14 2017-08-15 Cluster Seven Limited Auditing and tracking changes of data and code in spreadsheets and other documents
US20070055688A1 (en) * 2005-09-08 2007-03-08 International Business Machines Corporation Automatic report generation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6698013B1 (en) * 2000-10-04 2004-02-24 Mintaka Technology Group Real time monitoring system for tracking and documenting changes made by programmer's during maintenance or development of computer readable code on a line by line basis and/or by point of focus
US20050091256A1 (en) * 2003-10-24 2005-04-28 Balaji Rathakrishnan SQL language extensions for modifying collection-valued and scalar valued columns in a single statement

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Simon, "Excel 2000 in a Nutshell", O'Reilly Media, 8/24/2000, p103-104,125-126 (4 pages) *
Simon, “Excel 2000 in a Nutshell", O'Reilly Media, 8/24/2000, 5 pages *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210374109A1 (en) * 2013-03-15 2021-12-02 Factual, Inc. Apparatus, systems, and methods for batch and realtime data processing
US11762818B2 (en) 2013-03-15 2023-09-19 Foursquare Labs, Inc. Apparatus, systems, and methods for analyzing movements of target entities

Also Published As

Publication number Publication date
US20070256006A1 (en) 2007-11-01
US8656272B2 (en) 2014-02-18

Similar Documents

Publication Publication Date Title
US9785907B2 (en) Supplemental system for business intelligence systems
US9996566B2 (en) Visual design system for generating a visual data structure associated with a semantic composition based on a hierarchy of components
US7827478B2 (en) Dynamic generation of form pages for accessing a database
Atkinson et al. Flexible deep modeling with melanee
US7721205B2 (en) Integration of composite objects in host applications
US8756567B2 (en) Profile based version comparison
US9524279B2 (en) Help document animated visualization
US9075787B2 (en) Defining a reusable spreadsheet-function by extracting the function from a complex calculation in a spreadsheet document
US20060271390A1 (en) Integrated system, tools, and methods for designing automated business process applications
WO2009006063A2 (en) Automatic designation of xbrl taxonomy tags
KR20110091544A (en) Visualizing relationships between data elements
US20140136958A1 (en) Relating to distributed access infrastructure for a database
US20090259933A1 (en) System for Displaying an Annotated Programming File
US8387010B2 (en) Automatic software configuring system
US9110873B2 (en) Platform-independent data application description language
US20110078201A1 (en) Ragged and unbalanced hierarchy management and visualization
US8732615B2 (en) Unified interface for display and modification of data arrays
US20110138339A1 (en) Smart tree navigation
US20220083523A1 (en) Visual design system for generating a visual data structure associated with a semantic composition based on a hierarchy of components
US7409642B2 (en) Method and system for applying user interface elements to data
EP3486798A1 (en) Reporting and data governance management
US20140164429A1 (en) Persisting instance-level report customizations
US20140130008A1 (en) Generating information models
US20060053106A1 (en) Use of generated SQL for evaluation of decision point rules in a workflow system
US20020180789A1 (en) Framework for developing web-based and email-based collaborative programs

Legal Events

Date Code Title Description
AS Assignment

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034747/0417

Effective date: 20141014

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:039025/0454

Effective date: 20141014

AS Assignment

Owner name: MICROSOFT CORPORATION, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MEYERS, ROBERT A.;REEL/FRAME:040900/0414

Effective date: 20111003

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION