# US 10,121,110 B2 · System, method and computer program product for progressive rendering of report results

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,121,110 B2
- Document ID: US10121110B2
- Status: Granted
- Kind: B2
- Application number: 13/306,905
- Filed: 2011-11-29
- Published: 2013-01-31
- Granted: 2018-11-06
- Earliest claimed: 2011-07-27
- Assignees: salesforce.com, inc.
- Applicants: Thomas J. Tobin; Vladislav Eroshin; Zuye Zheng; Patrick Louie; Jeremiah Lu; Arunkumaran Varadharajan
- Inventors: Thomas J. Tobin; Vladislav Eroshin; Zuye Zheng; Patrick Louie; Jeremiah Lu; Arunkumaran Varadharajan
- Web page: https://patentgrep.com/patent/US10121110B2

## CPC

- G06Q 10/06: Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06F 16/9577: {Optimising the visualization of content, e.g. distillation of HTML documents}
- G06F 40/166: Editing, e.g. inserting or deleting
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

In accordance with embodiments, there are provided mechanisms and methods for progressive rendering of report results. These mechanisms and methods for progressive rendering of report results can enable embodiments to render report results in portions as they are received. The ability of embodiments to render report results in portions as they are received can enable report results to be progressively rendered such that delay is avoided which would otherwise occur when rendering only in response to receipt of an entirety of the report results.

## Claims

### Claim 1

A non-transitory computer-readable medium having stored therein computer instructions capable of being executed to cause a computer system to perform operations comprising:
receiving, from an intermediate window created by a browser executing on a user device, a request for a report on data that is stored by the computer system;
determining one or more queries to be executed to generate a set of results for the report;
executing the one or more queries to generate the set of results for the report, wherein the set of results are capable of being presented as one or more records in a table;
processing the set of results to generate layout information that specifies width values for columns in the table, wherein the width values are obtained by determining, for each column in the table, a width value that indicates a greatest width of data values in that column;
apportioning the set of results into a plurality of portions that are stored in a memory of the computer system;
progressively sending portions of the plurality of portions to the intermediate window as the portions are generated by the computer system, wherein the portions include the layout information, which is usable by the browser to render the width of each column in the table according to the determined width value for that column, wherein the intermediate window is operable to progressively resend, to a display window created by the browser, the portions received from the computer system, and wherein the display window is operable to progressively display the portions, from the intermediate window as they are received, in the table; and
as particular portions of the plurality of portions are progressively sent from the computer system to the intermediate window, the computer system removing the particular portions from the memory.

### Claim 2 (depends on 1)

The medium of claim 1, wherein the request for the report is initiated by a user via a user interface of the browser.

### Claim 3 (depends on 1)

The medium of claim 1, wherein the report is a composite report that includes a plurality of related reports, wherein results, for a given one of the plurality of related reports, are generated by executing at least one of the one or more determined queries.

### Claim 4 (depends on 3)

The medium of claim 3, wherein the related reports are individual reports that are related via at least one common object used for generating the set of results.

### Claim 5 (depends on 1)

The medium of claim 1, wherein the set of results are grouped into a plurality of groups according to a grouping format.

### Claim 6 (depends on 5)

The medium of claim 5, wherein the set of results is apportioned according to the plurality of groups.

### Claim 7 (depends on 6)

The medium of claim 6, wherein each portion is one of the plurality of groups.

### Claim 8 (depends on 6)

The medium of claim 6, wherein each portion is a series of the plurality of groups that are of the same subject matter.

### Claim 9 (depends on 1)

The medium of claim 1, wherein the set of results includes rows in the table, and wherein the set of results is apportioned by a number of rows so that each portion includes the number of rows.

### Claim 10 (depends on 1)

The medium of claim 1, wherein the portions are written in a format of the browser prior to being sent to the intermediate window created by the browser.

### Claim 11

A method, comprising:
a computer system receiving, from an intermediate window created by a browser running on a user device, a request for a report on data stored by the computer system;
the computer system determining one or more queries to be executed to generate a set of results for the report;
the computer system executing the one or more queries to generate the set of results for the report, wherein the set of results are capable of being presented as one or more records in a table;
processing the set of results to generate layout information that specifies width values for columns in the table, wherein the width values are obtained by determining, for each column in the table, a width value that indicates a greatest width of data values in that column;
the computer system apportioning the set of results into a plurality of portions that are stored in a memory of a computer system; and
the computer system progressively sending portions of the plurality of portions to the intermediate window as the portions are generated by the computer system, wherein the portions include the layout information, which is usable by the browser to render the width of each column in the table according to the determined width value for that column, wherein the intermediate window is operable to progressively resend, to a display window created by the browser, the portions received from the computer system, and wherein the display window is operable to progressively display, the portions from the intermediate window as they are received, in the table; and
as particular portions of the plurality of portions are progressively sent from the computer system to the intermediate window, the computer system removing the particular portions from the memory.

### Claim 12 (depends on 11)

The method of claim 11, wherein the intermediate window is hidden from a user's view.

### Claim 13 (depends on 11)

The method of claim 11, wherein the intermediate window is an iframe.

### Claim 14 (depends on 11)

The method of claim 11, wherein the intermediate window and the display window are created by the browser prior to receiving the request for the report.

### Claim 15 (depends on 1)

The medium of claim 1, wherein the intermediate window is not visible to a user.
