CN109635258B - Non-collaborative filters in collaborative documents - Google Patents

Non-collaborative filters in collaborative documents Download PDF

Info

Publication number
CN109635258B
CN109635258B CN201811294207.9A CN201811294207A CN109635258B CN 109635258 B CN109635258 B CN 109635258B CN 201811294207 A CN201811294207 A CN 201811294207A CN 109635258 B CN109635258 B CN 109635258B
Authority
CN
China
Prior art keywords
user
filter
sheet
unfiltered
client computer
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.)
Active
Application number
CN201811294207.9A
Other languages
Chinese (zh)
Other versions
CN109635258A (en
Inventor
B.W.西蒙
M.特拉格特
Z.E.劳埃德
J.A.丹齐格
D.冈德拉姆
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.)
Google LLC
Original Assignee
Google LLC
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 US13/900,265 external-priority patent/US8943142B1/en
Priority claimed from US13/900,193 external-priority patent/US9361287B1/en
Priority claimed from US13/900,270 external-priority patent/US9298688B1/en
Application filed by Google LLC filed Critical Google LLC
Publication of CN109635258A publication Critical patent/CN109635258A/en
Application granted granted Critical
Publication of CN109635258B publication Critical patent/CN109635258B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Document Processing Apparatus (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

Systems and methods for viewing filters on collaborative spreadsheets stored on a cloud computing service include accessing a first sheet of spreadsheets stored on the cloud computing service from each of a plurality of client computers, wherein a plurality of filters are associated with the first sheet. A first client computer of the plurality of client computers receives a command from a first user to apply a first filter of the plurality of filters to a first sheet and applies the first filter to the first sheet on the first client computer. The filtered first worksheet is displayed to the first user and a second client computer of the plurality of client computers concurrently displays the unfiltered first worksheet.

Description

Non-collaborative filters in collaborative documents
The present application is a divisional application of an invention patent application having an application date of 2014, 21/5, application number of 201480021515.8 and an invention name of "non-collaborative filter in collaborative document".
Cross Reference to Related Applications
This application claims priority from U.S. patent application No. 13/900,193 filed on 5/22/2013, which is incorporated herein by reference in its entirety; priority of U.S. patent application No. 13/900,265 filed on 22.5.2013, incorporated herein by reference in its entirety; and us patent application No. 13/900,270 filed on 22/5/2013, which is hereby incorporated by reference in its entirety.
Technical Field
The application relates to a non-collaborative filter in a collaborative document.
Background
The cloud computing service provides a way for multiple people at multiple locations to collaborate on the same document. The cloud computing service stores a master copy of the document on one or more data servers, and the user accesses the document over a remote network, such as the internet. Documents that may be created, stored, and edited on a cloud computing service include word processing documents, presentation documents, and spreadsheets. When a user accesses a document stored on the cloud computing service, a local copy of the document is loaded on the client computer. Changes made to the document by the user are communicated to the cloud computing server for recordation. If two or more collaborators are editing the same document at the same time, the changes made by one user are also quickly propagated to other users.
The collaborative spreadsheet accessible on the cloud computing service may have many of the same functions as spreadsheets available on a stand-alone computer. Available functions may include using filters to alter how data is arranged and displayed. For example, a filter may be used to sort rows or columns of data in some manner, and may be used to hide certain rows or columns from view. Filters may be considered edits or variations to the worksheet, as may other variations such as cell entries and row/column insertions or deletions. When a user editing a collaborative spreadsheet applies a filter to the spreadsheet, the filter is also sent to other collaborators and applied to their copies of the spreadsheet. So that when the user applies the filter, the view of the collaborators' spreadsheets will automatically change. This may be a hindrance to other collaborators who are viewing the data affected by the filter. Furthermore, if two or more collaborators want to apply different filters that affect overlapping data sets, there is no way for the two collaborators to apply the desired filters without interfering with each other. Also, there is no way for collaborators of a spreadsheet to store multiple filters and apply the filters independently of each other.
Disclosure of Invention
One aspect described herein discloses a method for processing user actions on a collaborative spreadsheet, the method comprising: accessing, from each of the plurality of client computers, an unfiltered sheet of spreadsheets stored on the server for display on the first client computer, wherein a plurality of filters are associated with the unfiltered sheet, and wherein each filter of the plurality of filters is simultaneously selected by each client computer of the plurality of client computers; receiving, from a first client computer, a selection by a first user of a first filter of a plurality of filters to be applied to an unfiltered sheet of work, wherein the first filter was created by a second user on a second client computer; displaying the filtered sheet to a first user, wherein the filtered sheet is obtained by applying a first filter to the unfiltered sheet; receiving a user action input by a first user on a first client computer, wherein the user action references cells of an unfiltered sheet; sending the user action to a server; transforming the user action according to the first filter; and updating the display of the filtered worksheet based on the transformed user actions.
One aspect described herein discloses a method for receiving collaborator actions on a collaborative spreadsheet, the method comprising: accessing an unfiltered sheet of spreadsheets stored on the server for display on the first client computer, wherein a plurality of filters are associated with the unfiltered sheet, and wherein each filter of the plurality of filters is simultaneously selected by each client computer of the plurality of client computers; receiving, from a first client computer, a selection by a first user of a first filter of a plurality of filters to be applied to an unfiltered sheet of work, wherein the first filter was created by a second user on a second client computer; displaying the filtered sheet to a first user, wherein the filtered sheet is obtained by applying a first filter to the unfiltered sheet; receiving a collaborator action from the server, wherein the collaborator action references cells of the unfiltered sheet; transforming collaborator actions according to a first filter; and updating the display of the filtered worksheet based on the transformed collaborator actions.
One aspect described herein discloses a system for processing user actions on a collaborative spreadsheet, the system comprising: a first client computer configured to: communicating with a server hosting a cloud computing service over a communication connection; accessing an unfiltered sheet of spreadsheets stored on a server, wherein a plurality of filters are associated with the unfiltered sheet, and wherein each filter of the plurality of filters is simultaneously selected by each client computer of a plurality of client computers; receiving a selection by a first user of a first filter of a plurality of filters to be applied to an unfiltered sheet of work, wherein the first filter was created by a second user on a second client computer; displaying the filtered sheet to a first user, wherein the filtered sheet is obtained by applying a first filter to the unfiltered sheet; receiving a user action input by a first user on a client computer, wherein the user action references cells of an unfiltered sheet; sending the user action to a server; transforming the user action according to the first filter; and updating the display of the filtered worksheet based on the transformed user actions.
The systems and methods described herein provide a method for multiple collaborators to independently utilize filters for spreadsheets stored on a cloud computing service. The cloud computing service stores a spreadsheet file that may contain one or more worksheets of cells. The cloud computing service also stores several filters for each worksheet. Filters may be created and saved by any collaborator with write access to the spreadsheet. A filter may be an instruction to sort, hide, or otherwise arrange rows and cells in a display of a worksheet. A user on a client computer loads a local copy of a worksheet from a spreadsheet of a cloud computing service and its associated filters. The worksheet is displayed on a user interface at the client computer, such as on a web browser. Available filters may be displayed on the sidebar window. When the user selects a filter to be applied to the sheet, the filter is only applied to the local copy of the sheet and displayed to the user. Unlike normal editing of worksheets, filter selections are not communicated to other collaborators. The cloud computing service may track the filters currently being used by different collaborators, but the master copy of the stored worksheet is unaffected by the user selection of the filters. The user may set default filters for the worksheet, may remove all filters applied to the worksheet, and may create, edit, rename, copy, or delete filters. Edits or variations made by the user to the filtered worksheet may be stored by the client computer with reference to the unfiltered worksheet or the filtered worksheet. If the variant references an unfiltered worksheet, the variant may be sent directly to a cloud computing service for storage and to other collaborator client computers, which transform the variant according to any filters applied on the collaborator client computers prior to displaying the variant to the collaborator. If the variant references the filtered worksheets, they are transformed according to the inverse of the filter before being sent to the cloud computing service and the collaborator client computers. So that multiple collaborators can view multiple filters applied to the same worksheet at the same time.
One aspect described herein discloses a method for viewing filters on a collaborative spreadsheet stored on a cloud computing service. The method includes accessing, from each of a plurality of client computers, a first worksheet of spreadsheets stored on the cloud computing service, wherein a plurality of filters are associated with the first worksheet. The method further comprises the following steps: receiving, at a first client computer of the plurality of client computers, a command of a first user to apply a first filter of the plurality of filters to a first worksheet; and applying a first filter to the first worksheet on the first client computer. The method further includes displaying the filtered first worksheet to the first user, wherein a second client computer of the plurality of client computers concurrently displays the unfiltered first worksheet.
Another aspect described herein discloses a method for creating a filter for a collaborative spreadsheet stored on a cloud computing service. The method comprises the following steps: accessing, from each of a plurality of client computers, a first worksheet of spreadsheets stored on a cloud computing service; and creating a first filter on a first client computer of the plurality of client computers, wherein a user on the first client computer defines the first filter. The method further comprises the following steps: applying a first filter to a first worksheet on a first client computer, wherein a second client computer of the plurality of client computers concurrently displays the unfiltered first worksheet; and sending the first filter to the cloud computing service for storage and association with the first worksheet.
Another aspect described herein discloses a system for applying filters to a collaborative spreadsheet stored on a cloud computing service. The system includes a client computer configured to: communicate with a cloud computing service and a plurality of client computers over a network connection; and loading a first worksheet of the spreadsheet stored on the cloud computing service, wherein the plurality of filters are associated with the first worksheet. The client computer is further configured to: receiving a command from a user to apply a first filter of a plurality of filters to a first worksheet; applying a first filter to a first worksheet on a first client computer; and displaying the filtered first worksheet to the user, wherein a first client computer of the plurality of client computers concurrently displays the unfiltered first worksheet.
Another aspect described herein discloses a graphical user interface for viewing collaborative spreadsheets stored on a cloud computing service on a plurality of client computers. The graphical user interface on each client computer includes: an edit window showing a plurality of cells of a first worksheet of a collaborative spreadsheet stored on a cloud computing service; and a sidebar window within the edit window showing a plurality of filters selectable by the user, wherein the plurality of filters are stored on the server. The graphical user interface is further designed such that when a user on a first client computer of the plurality of client computers selects a first filter from the plurality of filters, the first filter is applied to the first worksheet and the filtered first worksheet is displayed in the edit window of the first client computer, wherein the edit window of a second client computer of the plurality of client computers displays the unfiltered first worksheet.
Drawings
The methods and systems may be better understood from the following illustrative description with reference to the drawings, in which:
FIG. 1 illustrates several client computers in communication with a cloud computing service storing one or more spreadsheets, according to embodiments as described herein;
fig. 2 illustrates a server implementing a cloud computing service in accordance with embodiments as described herein;
FIG. 3 illustrates a client computer for loading a spreadsheet stored on a cloud computing service in accordance with embodiments as described herein;
FIG. 4 illustrates a worksheet of a collaborative spreadsheet stored on a cloud computing service according to embodiments as described herein;
FIG. 5 illustrates filter options for a worksheet of a collaborative spreadsheet stored on a cloud computing service in accordance with embodiments as described herein;
FIG. 6 illustrates a filtered worksheet of a collaborative spreadsheet stored on a cloud computing service in accordance with embodiments as described herein;
FIG. 7 illustrates a sidebar window for applying a filter to a sheet of a collaborative spreadsheet stored on a cloud computing service in accordance with an embodiment as described herein;
FIG. 8 illustrates a diagram for handling collaborator variation for collaborative spreadsheets stored on a cloud computing service, according to an embodiment as described herein;
FIG. 9 illustrates another diagram for handling collaborator variation for collaborative spreadsheets stored on a cloud computing service, according to an embodiment as described herein;
FIG. 10 illustrates a method for viewing filters on a collaborative spreadsheet stored on a cloud computing service in accordance with embodiments as described herein;
FIG. 11 illustrates a method for creating filters for a collaborative spreadsheet stored on a cloud computing service in accordance with embodiments as described herein;
FIG. 12 illustrates a method for providing a filter for a collaborative spreadsheet stored on a server according to embodiments as described herein;
FIG. 13 illustrates a method for processing user actions with respect to a collaborative spreadsheet according to embodiments as described herein;
FIG. 14 illustrates a method for receiving collaborator actions on a collaborative spreadsheet according to an embodiment as described herein; and
FIG. 15 illustrates another method for processing user actions with respect to a collaborative spreadsheet according to embodiments as described herein.
Detailed Description
To provide an overall understanding of the systems and methods described herein, certain illustrative embodiments will now be described, including systems and methods for providing independent filter usage by collaborators on collaborative spreadsheets stored on a cloud computing service. However, it will be appreciated that the systems and methods described herein may be adapted and modified for the application being processed as appropriate, and that the systems and methods described herein may be employed in other suitable applications, and that such other additions and modifications do not depart from the scope thereof. In particular, a server, service, or system as used in this description may be a single computing device, or multiple computing devices working collectively and where storage of data and execution of functions are spread among the various computing devices.
Aspects of the systems and methods described herein relate to providing a plurality of collaborators with the ability to independently utilize filters for collaborative spreadsheets stored on a cloud computing service. The cloud computing service stores a spreadsheet file containing one or more worksheets of data. The cloud computing service also stores several filters for each worksheet. Filters may be created and saved by any collaborator through write access to the spreadsheet. A filter may be an instruction to sort or hide certain values from the display of the worksheet. A user on a client computer loads a local copy of a worksheet of a spreadsheet and its associated filters from a cloud computing service using a web browser. The filter is displayed on a filter interface within the web browser, such as on a sidebar window. When the user selects a filter to apply to the worksheet, the filter is only applied to the local copy of the worksheet and displayed to the user. Unlike normal editing of worksheets, filter selections are not communicated to other collaborators. So that each collaborator can independently select and view a different filter. The user may use the filter interface to set default filters for the worksheet, remove all filters applied to the worksheet, and create, edit, rename, copy, or delete filters. Edits or variations made by the user to the filtered worksheet may be stored by the client computer with reference to the unfiltered worksheet or the filtered worksheet. If the variant references an unfiltered worksheet, the variant may be sent directly to a cloud computing service for storage and to other collaborator client computers, which transform the variant according to any filters applied on the respective collaborator client computers prior to displaying the variant to the collaborators. If the variant references the filtered worksheets, they are transformed according to the inverse of the filter before being sent to the cloud computing service and the collaborator client computers.
First, a client server system in which several client computers can be connected to a cloud computing service is described. Fig. 1 shows a client server system 100 including a cloud computing service 102 and several client computers 104a to 104 d. The cloud computing service 102 may include one or more servers that collectively provide cloud computing services to a plurality of client computers. The cloud computing service 102 stores several files accessible by the client computers 104a-104d including the collaborative spreadsheet 106. Users may create, edit, copy, share, and delete files stored on cloud computing service 102. For example, client computers 104a-104d may simultaneously access spreadsheet 106 on cloud computing service 102 using a web browser. The cloud computing service 102 provides each client computer with a local copy of the spreadsheet 106 that the user on the client computer can view and edit. Edits (otherwise referred to as variations) made by the client computer 104a are automatically sent to the cloud computing service 102 and transmitted to the other client computers 104b-104 d. So that variations made by one collaborator are immediately seen by the other collaborators. The client computers 104a-104d may include desktop computers, laptop computers, tablets, smart phones, mobile electronic devices, or any other device that may be connected to the cloud computing service 102 through a remote network. The system 100 may include a number of client computers connected to the cloud computing service 102. The cloud computing service 102 and the client computers 104a-104d of the system 100 are connected by a remote network, such as the internet. The network connection may be facilitated by a local area network, a wide area network, an ethernet network, a fiber optic network, or any other wired or wireless connection.
A server for providing cloud computing services is now described in more detail. Server 200 in fig. 2 illustrates an example of a server for use in a cloud computing service. The cloud computing service may include several servers that collectively provide the cloud computing service. The server 200 includes a Central Processing Unit (CPU)202, a Read Only Memory (ROM)204, a Random Access Memory (RAM)206, a communication unit 208, a data store 210, and a bus 212. Server 200 may have additional components not illustrated in fig. 2. Bus 212 allows the various components of server 200 to communicate with one another. The communication unit 208 allows the server 200 to communicate with other devices such as several client computers. The data store 210 may store, among other things, files that can be accessed, viewed, or edited by several client computers. These files may include word processing files, presentation files, spreadsheets, or multimedia files. Each file in data store 210 may be associated with an Access Control List (ACL) that determines access rights (e.g., write access, read access, no access) of users attempting to view the file in data store 210. The user connects with the server 200 through the communication unit 208 to access files stored in the data store 210.
A client computer for accessing files stored on a cloud computing service is now described in more detail. The client computer 300 in fig. 3 includes a Central Processing Unit (CPU)302, a Read Only Memory (ROM)304, a Random Access Memory (RAM)306, an input/output interface 308, a web browser 310, and a bus 312. Client computer 300 may have additional components not illustrated in fig. 3. Bus 312 allows the various components of client computer 300 to communicate with one another. Input/output interface 308 allows client computer 300 to communicate with other devices, such as cloud computing services, and also includes devices for receiving user input and displaying output to a user. Among other things, web browser 310 is used to provide a user interface to view and edit files stored on the cloud computing service. The Web browser 310 also displays the variants made by other collaborators who can edit the same file as the user of the client computer 300. The cloud computing service may determine a layout of a user interface displayed on web browser 310 for accessing and viewing files.
The data store 210 in fig. 2 for files stored on the cloud computing service 200, the web browser 310 in fig. 3 for the client computer 300, and other data structures and software programs on the cloud computing service 200 and the client computer 300 may be implemented using non-transitory computer-readable media. Examples of suitable non-transitory computer readable media include all forms of non-volatile memory, media and memory devices, including by way of example: semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and readable, writable-once or re-writable CD-ROM and DVD-ROM disks.
The operation of the collaborative spreadsheet stored on the cloud computing service is now described. FIG. 4 illustrates a worksheet 400 of a collaborative spreadsheet stored on a cloud computing service. A collaborative spreadsheet is a spreadsheet file that may be accessed and edited by more than one user at the same time. The collaborative spreadsheet may contain one or more worksheets, where each worksheet contains a grid of cells. For example, worksheet 400 contains data in several cells, with data of the same type listed in column 402 and data associated with the same person arranged in row 404. Worksheet 400 may contain any amount of data arranged in any possible configuration and is not limited to the layout shown in FIG. 4. The data in worksheet 400 may be entered using client computers by one or more users connected to the cloud computing service as shown in FIG. 1. The user may have write access to the worksheet 400 or may have only read access in which the user may view but may not edit the data. An ACL associated with the collaborative spreadsheet may determine the access rights of a user attempting to access the spreadsheet.
The cloud computing service may provide a variety of functions to users for creating, manipulating, and displaying data on spreadsheets. One such function is called filtering. Filtering may involve sorting the data according to one or more criteria (e.g., alphabetically or numerically), and may involve hiding certain data values, rows, or columns from display. The filter may be stored as a data transformation model that maps or transforms the underlying data of the spreadsheet before it is displayed (e.g., a transformation that assigns cell data to a new cell for display on a screen). FIG. 5 illustrates an example of a filter menu for a worksheet 500 of a collaborative spreadsheet stored on a cloud computing service. Worksheet 500 includes a column heading, which includes "age" and "score". When the user opens the filter option, each column may display a drop down arrow 504. When the user selects the drop down arrow, a filter menu 502 for that column may be displayed. For example, when the filter drop down arrow for the "age" column is selected, the filter menu 502 appears and gives the user several ways to filter the data of the worksheet 502 using the criteria applied to the "age" column. The filter menu 502 includes a sort function 506 that can sort the rows of the worksheet 502 in a particular order. For example, if the user selects "sort from small to large," rows 1-6 may be sorted according to the number in the "age" column, such that the row with the smallest numerical age appears first and the row with the largest numerical age appears last. The filter menu 502 also allows the user to hide data using the data checkbox 512. The data checkbox 512 shows the data values for all records in the "age" column. When a data value is unselected, any rows containing that data value are hidden from display in the worksheet 500. The filter menu 502 may also provide a shortcut 508 for selecting or clearing the selection of all data values from the data checkboxes 512 and may provide a search box 510 for searching for a particular data value in the data checkbox list. The filter menu 502 may also provide "OK" and "cancel" buttons for applying filters or canceling applications. The filtering may also be applied not only to the columns but also to the selection of rows or cells. The user highlights the cell, row or column that the user wants to filter and then invokes the filter function. The filter menu 502 may include other data sorting and filtering options not shown in fig. 5.
An example of a filtered sheet in a collaborative spreadsheet is shown in FIG. 6. For example, the worksheet 400 of FIG. 4 is considered an unfiltered worksheet. The user selects the filter menu for the "age" column and sorts the ages from small to large and does not select the data checkbox for the data value "18". This filter will rank the rows of the worksheet 400 according to age and hide any rows where the age value is 18. The worksheet 600 in FIG. 6 shows the results of applying this filter to the unfiltered worksheet 400. As can be seen, the rows of the worksheet 600 are arranged such that the smallest age is at the forefront and the largest age is at the last. Also, because the age value associated with the name "tyrone" is 18, the entire row of "tyrone" entries is hidden from display in worksheet 600. By omitting the row number of the hidden row in the row counter, the worksheet 600 may indicate that the row has been hidden by the filter. For example, there is no row "5" in FIG. 6. By selecting the filter drop-down arrow for this column, the user can edit or cancel the filter on the "age" column. The user may also create another filter using the appropriate filter drop down arrow.
Typically, when a user editing a collaborative spreadsheet stored on a cloud computing service applies a filter to a worksheet, the filter is transmitted to the cloud computing service and any other collaborators who are also viewing the worksheet. So that only one filter can be applied to the worksheet at any one time and multiple collaborators cannot apply filters independently of each other. This can be problematic if multiple collaborators wish to filter overlapping data sets in different ways, as the worksheet will only display the most recent filters. Also, cloud computing services do not provide users with the ability to save multiple filters and allow multiple collaborators to independently select these saved filters.
The systems and methods of the present application provide collaborators with the ability to independently apply filters to worksheets of a collaborative spreadsheet. For each worksheet in the collaborative spreadsheet, the cloud computing service stores a plurality of filters associated with the worksheet. When a user on a client computer accesses a sheet of a collaborative spreadsheet, the cloud computing service provides a local copy of the sheet and a copy of a plurality of filters associated with the sheet to the client computer. Other collaborators accessing the collaborative spreadsheet also receive local copies of the worksheet and filters. When the user selects a filter to apply to the worksheet, the filter transforms the data on the local copy of the worksheet and displays the filtered worksheet to the user. Unlike normal variations, the user's selection of a filter is not communicated to other collaborators. So that the filter is not automatically applied to the worksheets displayed by the collaborator client computers. Each collaborator may independently apply different filters to the same worksheet of a collaborative spreadsheet stored on the cloud computing service. The user's selection of the filter may be communicated to the cloud computing service, or may not be communicated at all.
The client computer may use a web browser to display a collaborative spreadsheet stored on the cloud computing service. The cloud computing service provides a User Interface (UI) to be displayed on a web browser. The UI allows the user to view and edit worksheets of the collaborative spreadsheet, as well as invoke spreadsheet functions such as filtering. FIG. 7 illustrates an example of a UI 700 for displaying a worksheet of a collaborative spreadsheet. The UI 700 shows several cells of data arranged in rows marked with numbers and columns marked with letters. UI 700 includes a sidebar window 702 for applying filters to the worksheet. The sidebar window 702 shows a list of filters that may be applied to the worksheet. For example, filter 704 is a "no filter" option that, when selected, removes all filters from the display of the worksheet. The filter 706 named "over 20" may implement the filter described with respect to FIG. 6, i.e., the "age" column is ordered from small to large and any age value equal to 18 is removed from the display. The other filter 710 is named "filter 2". Each filter may have a drop down menu 708 from which it may be selected. Drop down menu 708 includes filter commands for copying filters, renaming filters, deleting filters, or having a selected filter as a default filter. The filters 704, 706, or 708 may be marked with a symbol, such as an asterisk, to indicate which filter is the default filter. The current filter for the forward worksheet application may be highlighted or bolded to indicate which filter is active. There is also a filter command 712 to create a new filter. Selecting the filter command 712 may generate a filter edit window similar to the filter menu 502 shown in FIG. 5 so that the user may define the filter. The user may create the filter without saving the filter, or may save and name the filter, in which case the filter will be added to the list of filters shown in the sidebar window 702. The sidebar window 702 may include other filter commands not shown in fig. 7. For example, the drop down menu 708 may have an option for making the filter private or public. If the filter is made private, no other collaborator can use the filter. The UI 700 may also provide a separate ordering function independent of the filter function. When a user sorts worksheet data using a sort function as opposed to a filter function, it may be considered a variant. Whereby the ordering commands are sent to the cloud computing service, as well as other collaborators, so that their data displays are automatically updated. If the user sorts the worksheet data using the filter function, the commands are not sent to other collaborators. In either option, as the cell values affected by the sort criteria change, the display of the worksheet may be automatically updated to reflect the new order.
The sidebar window 702 may appear when the user selects a filter option from a menu on the UI 700, or the sidebar window 702 may be invoked when the user edits the filter. The sidebar window 702 may open as long as there are active filters applied to the sheet, and when there are no active filters on the sheet, the sidebar window 702 may disappear. The sidebar window 702 may fade away when the user does not use the sidebar window for a period of time (such as a period of time after the user stops editing the filter). The sidebar window 702 may be minimized, triggered (toggle), or closed by the user, or the user may move the position of the sidebar window 702 within the UI 700. Closing the sidebar window 702 may remove all active filters from the display of the worksheet. Alternatively, the sidebar window 702 may remain open and may disappear only when the user deactivates all filters (i.e., selects the "no filter" option). The sidebar window 702 may appear only when the user selects the cells affected by the filter or edits the filter. There may be other actions by the user that may cause the sidebar window 702 to appear or disappear from the UI 700. The UI 700 may provide a help link with an explanation of how the sidebar window 702 operates. UI 700 may be implemented using any known web browser programming language, including HTML and JavaScript.
The filter model may be stored on the cloud computing service and client computers as a data structure with several defined attributes. For example, the filter model may include a unique identifier for the filter (such as an alphanumeric string) and a name given to the filter by the user. The filter model includes a range of cells over which the filter is applied. The filter model may also include a sorted row-ordered list in which rows of the unfiltered sheet are mapped to rows of the filtered sheet according to filter criteria. The filter model may also include a boolean list of hidden rows that indicates whether certain rows are to be hidden from view or remain visible. The filter model may also include a list of excluded data that tracks user selection of check box 512 in FIG. 5. The filter model may also include an identification of the user who created or last modified the filter. Other information not listed may also be included in the filter model. Each filter has an associated data structure, and when a worksheet of the collaborative spreadsheet is loaded, this data structure is sent from the cloud computing service to the client computer. Edits to the filters change the data structure and are communicated to the cloud computing service and other collaborators.
The user action entered into the sidebar window 702 may be communicated to the cloud computing service. For example, if a user creates or replicates a new filter for a worksheet, the client computer may create a filter model and send it to the cloud computing service for storage as a filter associated with the worksheet. If the user deletes a filter associated with the worksheet, the client computer may send a request to the cloud computing service to delete the corresponding primary copy of the filter. If the user edits or renames a filter, the client computer changes its stored filter model and sends the edited filter model to the cloud computing service, which will then update the master copy of the filter model. If the user sets the filter as the default filter, the client computer may send a request to the cloud computing service to set the master copy of the filter as the default filter. Any collaborators that subsequently access the worksheet from the cloud computing service will receive a copy of the unfiltered worksheet and the default filter will be automatically applied. If the user has write access to the spreadsheet (e.g., as determined by the ACL), the user can create, edit, or delete the filter. The cloud computing service may allow a user to use a filter if the user has read access to a spreadsheet, but may not allow the user to create, edit, or delete a filter. The user's creation, editing, or deletion of filters may be sent to the cloud computing service as well as other collaborators currently accessing the spreadsheet. So while rearranging data using the filter is not communicated to the collaborators, changes to the filter itself are communicated to the collaborators.
When applying filters to the worksheets of the collaborative spreadsheet, the cells may be referenced in two ways — referencing either the unfiltered worksheet or the filtered worksheet. For example, in the case where the "over 20" filter is applied in the UI 700, the name entry "Nick" appears in cell A4 when the filtered worksheet is referenced. However, when referring to the unfiltered sheet shown in FIG. 4, the name "nike" is actually in cell A2. A filter may be considered a mapping or transformation between cells of an unfiltered sheet and cells of a filtered sheet. The filtered worksheet is generated by applying a filter to the unfiltered worksheet and the filtered worksheet is displayed by the client computer. When a user enters edits or variations to a worksheet, the variations may reference cells of the unfiltered worksheet or may reference cells of the filtered worksheet. In addition, user presence information may be sent to other collaborators. For example, if the user highlights cells A1-A5, the user interface on the collaborator client computer may display that the user has highlighted those cells. The variant and user presence information may be collectively referred to as user actions. FIG. 8 illustrates a system for processing user actions for a collaborative spreadsheet, where user input is made with reference to an unfiltered worksheet. System 800 includes a cloud computing service 802 that stores a master copy of a collaborative spreadsheet 804. Collaboration spreadsheet 804 may include one or more worksheets, and each worksheet may be associated with one or more filters. Two client computers 806 and 812 connect to cloud computing service 802 to access collaborative spreadsheet 804. As each client computer accesses the collaboration spreadsheet, a local copy of the collaboration spreadsheet 804 is loaded onto each client computer, shown as local copies 810 and 816. The local copy includes a copy of at least one worksheet and associated filters for the worksheet.
A user on client computer 806 applies a filter 808 named "Filter 1" to its local copy 810 of the collaborative spreadsheet. The filter transforms the cells of the unfiltered sheet and rearranges the cells for display to the user. Likewise, the user on client computer 812 selects "filter 2," shown as filter transform 814, to apply to its local copy 816 of the collaborative spreadsheet. The selection of the filter by each client computer is not communicated to the other client computers and, thus, the selection of the filter by each user is not affected by the other users. Client computers 806 and 812 may send filter selection information to cloud computing service 802. The user on the client computer takes user action with respect to the local copies 810 and 816. The user actions are processed by the client computers and cloud computing service 802 depending on whether the user actions refer to unfiltered or filtered worksheets.
FIG. 8 illustrates an example of user action processing of a filtered spreadsheet when the user action references an unfiltered sheet. In this case, the local copies 810 and 816 stored on the client computer always store unfiltered copies of the worksheet, regardless of any filters 808 or 814 that the user may apply to the worksheet. The user initiates 818 his user action of referring to the cells of the unfiltered worksheet. Filters 808 and 814 are applied to the unfiltered local copies 810 and 816 only when the worksheet is displayed to the user. For example, assume that the filter rearranges the data in cell A1 of the worksheet into cell D5. When the user applies the filter to the worksheet, the filter does not alter the underlying local copy of the worksheet stored on the client computer. More specifically, the client computer computes a filtered version of the worksheet from the unfiltered local copy and displays the filtered worksheet. This filtered worksheet is stored in temporary memory and can be recalculated each time the worksheet on the display screen refreshes. Thus, while the client computer screen displays the data in cell D5, the local copy of the worksheet stores the data in cell A1. When the user enters a user action, its unfiltered local copy of the reference worksheet is stored. For example, when the user edits the content that the user sees as cell D5 on the display, the client computer actually mutates cell A1 in its local copy, instead of cell D5. Only when the display of the worksheet is then refreshed, the client computer applies the filter to the local copy and the mutation in cell D5 is displayed. Because the user actions are stored with reference to the unfiltered worksheet, the user actions can be sent directly to the cloud computing service and the collaborator client computers without any transformation. The cloud computing service records the user actions in the master copy of its worksheet and sends the user actions to all other collaborators currently accessing the worksheet. At the collaborator client computer, user actions are applied to the unfiltered local copy stored on the client computer. If the collaborator has applied a filter to the local copy, the user actions are transformed by the filter before being displayed on the screen of the collaborator client computer. For example, the collaborator may receive a mutation to cell A1 of the local copy on the collaborator client computer and update cell A1. If the collaborator uses a filter that transforms data in cell A1 to cell B3, the mutation is transformed by the filter and cell B3 on the collaborator's computer screen is updated.
The collaborative spreadsheet may have a calculation engine that calculates cell values. This engine is separate from the UI engine that displays the worksheets to the user. Calculations and formulas are affected when user actions refer to unfiltered worksheets, and the worksheets are filtered only when displayed. The calculations and formulas may use data found in one or more cells rearranged by the filter. When a formula or calculation is displayed on the screen, it may refer to the cells of the unfiltered worksheet, which itself has been rearranged. This can be confusing to the user's view. To address this issue, filters may also be applied to cell references in calculations and formulas. So that when the calculations and formulas are displayed on the screen, they refer to the cells of the filtered sheet, while the actual calculations or formulas stored in memory refer to the cells of the unfiltered sheet. The client computer may also limit the user's ability to create new formulas. For example, if a user highlights a contiguous set of cells in a filtered view of a worksheet to be used in a formula, the set of cells may not actually be contiguous in the unfiltered view. The client computer may not allow such an action.
In an alternative design, the user actions may reference cells of the filtered worksheet on the client computer. FIG. 9 illustrates an example of a mutated process on a filtered spreadsheet when a user action references the filtered worksheet. System 900 includes a cloud computing service 902 that stores a master copy of a collaborative spreadsheet 904. Collaboration spreadsheet 904 may include one or more worksheets, and each worksheet may be associated with one or more filters. Two client computers 906 and 912 connect to cloud computing service 902 to access collaborative spreadsheet 904. As each client computer accesses the collaborative spreadsheet, a local copy of the collaborative spreadsheet 904 is loaded onto each client computer, shown as local copies 910 and 916. The local copy includes a copy of at least one worksheet and associated filters for the worksheet. The user on client computer 906 applies "filter 1" to its local copy 910 of the collaborative spreadsheet. Likewise, the user on client computer 912 applies "Filter 2" to its local copy 916 of the collaborative spreadsheet.
In FIG. 9, the local copies 910 and 916 stored on the client computer are updated each time the user selects or changes a filter. Thus, unlike the case with FIG. 8, the filter changes the local copy of the worksheet, which is then displayed directly to the user. User variants on worksheets 918 refer to cells of the filtered worksheet. Such that when the user action is received by the client computer, the user action is applied to the filtered local copy of the worksheet and displayed directly to the user. However, before the user action is sent to the cloud computing service, the user action is transformed through an inverse of the filter such that the user action references the unfiltered worksheet. When a user on client computer 906 applies filter 1 to the worksheet, client computer 906 determines and stores the inverse of "filter 1" 908, which maps the cells of the filtered worksheet to the cells of the unfiltered worksheet. Likewise, client computer 912 determines and stores the inverse of "filter 2" 914. For example, the user mutation references cell D5 of the filtered local copy stored on the client computer, where the data in cell D5 corresponds to the data in cell A1 of the unfiltered sheet. Before the variant is sent to the cloud computing service, the variant is transformed according to the inverse of the filter such that the transformed variant references cell a 1. This user action is sent to the cloud computing service to be recorded in the unfiltered master copy of the worksheet. The cloud computing service also sends the user actions to other collaborators that are currently accessing the worksheet. At the collaborator client computer, the user actions are transformed by any filters used by the collaborators and then saved as a local copy on the client computer. For example, if a collaborator uses a filter that transforms data in cell A1 to cell B3, the variant is transformed by the filter and stored in cell B3, which is a local copy of the worksheet on the collaborator client computer. Formulas and calculations can also be transformed in the same way as user actions, so the cell references have logical meaning for each collaborator.
In another alternative design, the client computing service may track the filters currently being used by each collaborator. As in FIG. 9, the local copy of the worksheet may be changed by the filter, and the user actions stored with reference to the filtered worksheet. The client computer may send the user actions directly to the cloud computing service, which performs an inverse filter transformation to obtain the user actions that reference the unfiltered worksheet. The cloud computing service may also transform the user actions through filters used by the collaborators before sending the user actions to the collaborator client computers. So that the computation of the filter transforms and inverse transforms is done on the cloud computing service rather than the client computer, as compared to the case depicted in fig. 9. By tracking which filters the collaborators are using, the cloud computing service may also allow some collaborators to mirror the filters of each other, while allowing other collaborators to use the filters independently. For example, if user A and user B choose to mirror each other, any application of the filter by user A automatically updates user B's worksheet view. Another user C chooses to work independently, and so the worksheet view of user C is not affected by user A's choice of filters.
Various methods for creating, storing, and displaying filters for collaborative spreadsheets stored on a cloud computing service are now described. One method illustrated in FIG. 10 provides a method of viewing filters on a collaborative spreadsheet stored on a cloud computing service. The method 1000 includes accessing, from each of a plurality of client computers, a first worksheet of a spreadsheet stored on a cloud computing service, wherein a plurality of filters are associated with the first worksheet. The method further includes receiving, at a first client computer of the plurality of client computers, a command of a first user to apply a first filter of the plurality of filters to the first worksheet. The method further includes applying a first filter to the first worksheet on the first client computer and displaying the filtered first worksheet to the first user, wherein a second client computer of the plurality of client computers concurrently displays the unfiltered first worksheet. Method 1000 may be performed on any type of client computer that it may connect to a cloud computing service, such as the client computer described in fig. 3 or any desktop computer, laptop computer, tablet, smart phone, or such electronic device.
Illustrated at 1002, the method 1000 begins when a plurality of client computers access a first worksheet of a collaborative spreadsheet stored on a cloud computing service. A master copy of a spreadsheet stored on a cloud computing service contains one or more worksheets, wherein at least one worksheet is associated with a plurality of filters. As described above, the filter rearranges the display of data on the worksheet for the user, and may include sorting the data and removing certain data values from the view. The filters may be defined by the user and stored on the cloud computing service. Such as that illustrated in fig. 1, the cloud computing service allows users on multiple client computers to concurrently access a first worksheet. The spreadsheet may have an ACL that determines which users may access the spreadsheet and the level of access for each user. When a user on a client computer accesses a first worksheet, the cloud computing service sends a copy of the first worksheet and associated filters to the client computer. This copy is stored as a local copy on the client computer and displayed to the user (e.g., via a web browser). A user interface on the Web browser allows a user to view and edit worksheets. Edits or variations made by the user are recorded in the local copy of the worksheet and sent to the cloud computing service to be recorded in the master copy.
Illustrated at 1004, after the local copy of the first worksheet is loaded onto each client computer, the client computer receives commands from the user to apply the filters to the first worksheet. The cloud computing service provides a user interface, such as the user interface shown in FIG. 7, to the client computer for viewing and editing the first worksheet. The user interface includes a menu or sidebar window for the user to select a filter to be applied to the cell groups in the first sheet. The user highlights the set of cells that the user desires to filter and selects a filter from the plurality of filters associated with the first worksheet. Illustrated at 1006, the client computer then applies the selected filter to the first worksheet. As previously described in this application, the filter transforms the cell data stored in the local copy of the first worksheet. If the user has previously applied another filter to the first sheet, selection of the new filter causes the client computer to remove the previous filter and apply the new filter to the first sheet.
Illustrated at 1008, after the client computer applies the selected filter to the first worksheet, the filtered first worksheet is displayed to the user of the client computer. User selection of a filter on one client computer is not communicated to other client computers concurrently accessing the same worksheet. Thus, while a user on one client computer may apply a filter to a first sheet, a second client computer still displays an unfiltered sheet, or perhaps a sheet that is filtered based on the user's selection of another filter on the second client computer. The user selection of filters may be communicated to a cloud computing service, which may store what filters each user is currently using. However, the cloud computing service does not alter the master copy of the first worksheet and does not send filter selection information to other client computers. In this manner, method 1000 provides multiple concurrent collaborators with the ability to independently utilize filters on a collaborative spreadsheet stored on a cloud computing service.
Another method described herein provides a method of creating a filter for a collaborative spreadsheet stored on a cloud computing service. Method 1100 in fig. 11 includes accessing a first worksheet of spreadsheets stored on the cloud computing service from each of a plurality of client computers. The method further includes creating a first filter on a first client computer of the plurality of client computers, wherein a user on the first client computer defines the first filter. The method further comprises the following steps: applying a first filter to a first worksheet on a first client computer, wherein a second client computer of the plurality of client computers concurrently displays an unfiltered first worksheet; and sending the first filter to the cloud computing service for storage and association with the first worksheet. The method 1100 may be performed on any type of client computer that may be connected to the cloud computing service, such as the client computer described in fig. 3 or any desktop computer, laptop computer, tablet, smart phone, or such electronic device.
Illustrated at 1102, the method 1100 begins when a plurality of client computers access a first worksheet of a collaborative spreadsheet stored on a cloud computing service. A master copy of a spreadsheet stored on a cloud computing service contains one or more worksheets. One or more filters may be associated with each worksheet. Such as that illustrated in fig. 1, the cloud computing service allows users on multiple client computers to concurrently access a first worksheet. The spreadsheet may have an ACL that determines which users may access the spreadsheet and the level of access for each user. When a user on a client computer accesses a first worksheet, the cloud computing service sends a copy of the first worksheet and associated filters to the client computer. This copy is stored as a local copy on the client computer and displayed to the user (e.g., via a web browser). A user interface on the Web browser allows a user to view and edit worksheets. Edits or variations made by the user are recorded in the local copy of the worksheet and sent to the cloud computing service to be recorded in the master copy.
After the local copy of the first worksheet is loaded on the client computer, illustrated at 1104, the user on the first client computer creates a first filter for the first worksheet. The ability to create or edit filters for a spreadsheet may be limited by the ACL of the spreadsheet. For example, a user with write access may create or edit filters for worksheets, while a user with read access may use filters but may not create or edit them. As described above, the filter rearranges the display of data on the worksheet for the user, and may include sorting the data and removing certain data values from the view. The cloud computing service provides a user interface, such as the user interfaces shown in fig. 5 and 7, to the client computer for creating and editing filters for the first worksheet. This user interface may be displayed on a web browser executing on the client computer. For example, the user interface may include a menu or sidebar window for the user to create or edit the filter and apply it to the cell groups in the first sheet, such as the sidebar window shown in FIG. 7. When the user selects the option to create or edit a filter, a menu similar to menu 502 in FIG. 5 may appear. In this menu, the user defines a filter, such as defining a sort order or selecting certain data values to be displayed or removed from display.
Illustrated at 1106, after the user creates or edits the filter, the filter is applied to the first worksheet of the client computer. As previously described in this application, the filter transforms the cell data stored in the local copy of the first worksheet. The filtered worksheet is then displayed to the user. The created or edited filter is also sent to a cloud computing service where the filter is stored and associated with the first worksheet. The first worksheet may also have other filters associated therewith. Each user with appropriate access to the spreadsheet may create, edit, delete, rename or copy filters. When a user creates or edits a filter, the cloud computing service may send the created or updated filter to other client computers concurrently accessing the first worksheet, so other users may use the filter. When the user deletes the filter, the cloud computing service deletes the master copy of the filter and instructs the other client computers to also delete their filter copies. In this manner, method 1100 provides multiple concurrent collaborators with the ability to create or edit filters on a collaborative spreadsheet stored on a cloud computing service.
Another method described herein discloses a method of providing a filter for a collaborative spreadsheet stored on a server hosting a cloud computing service. The method 1200 in fig. 12 includes: storing a spreadsheet on a server, wherein the spreadsheet comprises a plurality of worksheets; and authorizing multiple client computers to concurrently access the spreadsheet. The method further comprises the following steps: receiving, from a plurality of client computers, a plurality of filters to be applied to a first sheet of a plurality of sheets; and storing a plurality of filters on the server, wherein the plurality of filters are associated with the first worksheet. The method further includes providing a plurality of filters to each of the plurality of client computers, wherein when a user on a first client computer of the plurality of client computers applies a first filter of the plurality of filters to the first worksheet, the display of the first worksheet on a second client computer of the plurality of client computers is independent of the filter application on the first client computer. Method 1200 may be performed on a server hosting a cloud computing service, such as the server described in fig. 2.
Illustrated at 1202, method 1200 begins when a spreadsheet is stored on a server hosting a cloud computing service. The spreadsheet has one or more worksheets, where each worksheet consists of several cells arranged in columns and rows. Such as that illustrated in fig. 1, a user on a client computer connects to a server to access a spreadsheet. The server provides a user interface for a user to view and edit a worksheet of the spreadsheet, such as a user interface displayed on a web browser executing on each client computer. Examples of user interfaces for spreadsheets are shown in fig. 4-7. The spreadsheet may have been created by a user on a client computer and saved on a server. Spreadsheets are collaborative, meaning that more than one user may edit a spreadsheet at the same time. The spreadsheet may be associated with an access control list for which the access level of each user to the spreadsheet is determined.
After the spreadsheet is stored on the server, the server authorizes one or more client computers to concurrently access the spreadsheet, illustrated at 1204. A user on a client computer may collaborate and edit spreadsheets concurrently. When a client computer connects to the server and requests access to the spreadsheet, the server may check whether the user is in the ACL of the spreadsheet. If the user is an authorized user, the server provides a copy of the spreadsheet to the client computer. The client computer stores this copy as a local copy on the client computer and displays it within the web browser. Thus, each client computer has a local copy of the spreadsheet while the server maintains a master copy. The variation made by one user is propagated to the server and other users so all collaborators have the most up-to-date copy of the spreadsheet.
Illustrated at 1206, after the client computer has been authorized to access the spreadsheet, the server receives from the one or more client computers a plurality of filters to be applied to a first sheet of the spreadsheet. A user on a client computer creates a filter using a user interface provided by a server. For example, the user may select the "create new filter" option 712 provided in the sidebar window 702 shown in FIG. 7. The user then defines the filter using a filter menu similar to menu 502 shown in FIG. 5. The filter may include commands to sort certain cells or hide certain cell values from view. Once the user defines the filter, it is saved on the client computer and sent to the server. The user may also use the user interface to edit filters, rename filters, copy filters, set filters as default filters, or delete filters. The access control list may determine which users may create, edit, or delete filters for the spreadsheet. Illustrated at 1208, the server receives filters created by various users and stores them. The server associates the filter with the first worksheet. If the user has edited or renamed a filter, the server saves the updated filter in place of the old filter. If the user has deleted the filter, the server deletes its copy of the filter. If the user sets the filter as the default filter, the server may set a flag for its copy of the filter.
After several filters for the first worksheet have been created and stored on the server, illustrated at 1210, the server provides the most recent multiple filters to each client computer. The server sends to each client computer any new filters, changes made to the filters by the user, or commands to delete the filters so that all collaborators have an up-to-date list of filters available for the first worksheet. Because each client computer maintains a separate local copy of the first worksheet, users can independently apply filters to their local copies of the first worksheet without affecting the display of the first worksheet on the other client computers. The application of the filter is not considered to be the same as the variation, which is automatically passed on to other collaborators. The user's selection of the filter may be communicated to the server, but the selection may not be communicated to the collaborator client computers. For example, two users may apply two different filters to the same dataset and not interfere with each other, or one user may apply a filter while the other user may still view an unfiltered version of the first worksheet. The server may provide the user with an option to mirror the filter selections of each other. For example, if user A and user B choose to mirror each other, any application of the filter by user A automatically updates the worksheet view for user B. Another user C chooses to work independently, and so the worksheet view of user C is not affected by user A's choice of filters. In this manner, method 1200 provides a method for a server hosting a cloud computing service to provide filters for collaborative spreadsheets.
Another method described herein discloses a method of processing user actions on a collaborative spreadsheet when the user actions reference an unfiltered sheet. The method 1300 shown in FIG. 13 includes accessing an unfiltered sheet of spreadsheets stored on a server for display on a client computer, wherein a plurality of filters are associated with the unfiltered sheet. The method further comprises the following steps: receiving a user selection of a first filter of a plurality of filters to be applied to an unfiltered sheet; and displaying the filtered sheet to the user, wherein the filtered sheet is obtained by applying the first filter to the unfiltered sheet. The method further comprises the following steps: receiving a user action input by a user on the client computer, wherein the user action references cells of the unfiltered sheet; sending the user action to a server; transforming the user action according to the first filter; and updating the display of the filtered worksheet based on the transformed user actions. Method 1300 may be performed on any type of client computer that it may connect to a cloud computing service, such as the client computer described in fig. 3 or any desktop computer, laptop computer, tablet, smart phone, or such electronic device.
Illustrated at 1302, the method 1300 begins when a client computer accesses an unfiltered sheet of spreadsheets stored on a server hosting the cloud computing service. The primary copy of the spreadsheet stored on the server contains one or more worksheets. One or more filters may be associated with each worksheet. As illustrated in FIG. 1, the server allows multiple users on the client computers to concurrently access the first worksheet. The spreadsheet may have an ACL that determines which users may access the spreadsheet and the level of access for each user. When a user on a client computer accesses a first worksheet, the cloud computing service sends a copy of the first worksheet and associated filters to the client computer. This copy is stored as a local copy on the client computer and displayed to the user (e.g., via a web browser). A user interface on the Web browser allows a user to view and edit worksheets, such as the user interfaces shown in FIGS. 4-7.
Illustrated at 1304, after the client computer accesses the unfiltered sheet from the server, the client computer receives a selection of a first filter to be applied to the unfiltered sheet. Such as illustrated in fig. 7, the user interface may include a sidebar window from which the user may select a filter to be applied to a data section in the unfiltered sheet. Illustrated at 1306, the client computer then applies the first filter to the unfiltered sheet and displays the resulting filtered sheet. The first filter is a mapping or transformation between cells of the unfiltered sheet and cells of the filtered sheet. For example, a first filter may map cell A1 of the unfiltered sheet to cell B2 of the filtered sheet, thus causing the display of cell B2 to display the data values of cell A1 when the first filter is applied. The local copy of the unfiltered sheet stored on the client computer is unaffected by the user's selection of the first filter. That is, the client computer does not overwrite the unfiltered sheet with the filtered sheet in memory. More specifically, the filtered worksheet is temporarily stored and displayed on the display screen of the client computer.
Illustrated at 1308, after displaying the filtered worksheet to the user, the client computer receives user actions entered by the user. The user action may be an edit or mutation or a user presentation activity (such as highlighting or selecting one or more cells). The user action references cells of the unfiltered sheet rather than the filtered sheet. For example, if the user changes the data value in cell A1 (which is mapped to cell B2 by the first filter), the user action references cell A1. The same is true in the case where the user selects cell a 1. Thereby changing cell a1 in the local copy of the unfiltered sheet stored on the client computer. This user action (unchanged) is sent to the server, illustrated at 1310. The server stores a primary copy of the first sheet unaffected by the user selection of the filter, so user actions can be applied directly to the primary copy of the first sheet. The server may then send the user action to any other collaborators that are also currently accessing the spreadsheet. Before displaying it, the collaborator client computers will transform the user actions according to any filters that have been applied to their local copies. Transformation of collaborator user actions is discussed with respect to FIG. 14.
Illustrated at 1312, the user action is also transformed according to the first filter on the client computer. After the user action is transformed according to the first filter, it references the cells of the filtered worksheet. So that the mutation to cell a1 is transformed into a mutation to cell B2. The filtered worksheet is updated with the transformed user actions, illustrated at 1314, and then displayed to the user. By maintaining unfiltered worksheets in memory and determining only the filtered worksheets when displayed to the user, the client computer can send user actions directly to the server without requiring changes to them. This allows the server and client computers to communicate user actions directly to each other without the need for an intermediate transformation layer to consider any filters applied by the user. In this manner, method 1300 provides a way to process user actions on a collaborative spreadsheet when the user actions reference an unfiltered sheet.
Another method described herein discloses a method of processing collaborator actions on a collaborative spreadsheet when the collaborator actions refer to an unfiltered sheet of work. The method 1400 illustrated in fig. 14 includes: accessing an unfiltered sheet of spreadsheets stored on the server for display on the client computer, wherein a plurality of filters are associated with the unfiltered sheet; and receiving a user selection of a first filter of the plurality of filters to be applied to the unfiltered sheet. The method further comprises the following steps: displaying the filtered worksheet to a user, wherein the filtered worksheet is obtained by applying a first filter to the unfiltered worksheet; and receiving a collaborator action from the server, wherein the collaborator action references cells of the unfiltered sheet. The method further comprises the following steps: transforming collaborator actions according to a first filter; and updating the display of the filtered worksheet based on the transformed collaborator actions. The method 1400 may be performed on any type of client computer that may connect to the cloud computing service, such as the client computer described in fig. 3 or any desktop computer, laptop computer, tablet, smart phone, or such electronic device.
Illustrated at 1402, the method 1400 begins when a client computer accesses an unfiltered sheet of spreadsheets stored on a server hosting a cloud computing service. The primary copy of the spreadsheet stored on the server contains one or more worksheets. One or more filters may be associated with each worksheet. As illustrated in FIG. 1, the server allows multiple users on the client computers to concurrently access the first worksheet. The spreadsheet may have an ACL that determines which users may access the spreadsheet and the level of access for each user. When a user on a client computer accesses a first worksheet, the cloud computing service sends a copy of the first worksheet and associated filters to the client computer. This copy is stored as a local copy on the client computer and displayed to the user (e.g., via a web browser). A user interface on the Web browser allows a user to view and edit worksheets, such as the user interfaces shown in FIGS. 4-7.
Illustrated at 1404, after the client computer accesses the unfiltered sheet from the server, the client computer receives a selection of a first filter to be applied to the unfiltered sheet. Such as illustrated in fig. 7, the user interface may include a sidebar window from which the user may select a filter to be applied to a data section in the unfiltered sheet. Illustrated at 1406, the client computer then applies a first filter to the unfiltered sheet and displays the resulting filtered sheet. The first filter is a mapping or transformation between cells of the unfiltered sheet and cells of the filtered sheet. For example, a first filter may map cell A1 of the unfiltered sheet to cell B2 of the filtered sheet, thus causing the display of cell B2 to display the data values of cell A1 when the first filter is applied. The local copy of the unfiltered sheet stored on the client computer is unaffected by the user's selection of the first filter. That is, the client computer does not overwrite the unfiltered sheet with the filtered sheet in memory. More specifically, the filtered worksheet is temporarily stored and displayed on the display screen of the client computer.
Illustrated at 1408, after displaying the filtered worksheet to the user, the client computer receives the collaborator actions from the server. The collaborator action may be a variation made to the first worksheet by the collaborator currently accessing the spreadsheet or a collaborator presentation activity (such as highlighting or selecting one or more cells). The collaborator action references cells of the unfiltered sheet of work rather than the filtered sheet of work. For example, if a collaborator changes the data value in cell A1 (which is mapped to cell B2 by a first filter on the client computer), the collaborator action received from the server references cell A1. The client computer applies the collaborator actions to the unfiltered sheet stored in memory. The server receives the collaborator action from the collaborator and applies it directly to the primary copy of the first worksheet stored by the server. The server then sends the variant to any other collaborators that are also currently accessing the spreadsheet.
Illustrated at 1410, after the client computer receives the collaborator actions, it transforms the collaborator actions according to the first filter. After the collaborator action is transformed according to the first filter, it references the cells of the filtered worksheet. So that the mutation to cell a1 is transformed into a mutation to cell B2. Illustrated at 1412, the filtered worksheet is updated by the transformed collaborator actions and then displayed to the user. For example, cell B2 on the display screen of the client computer may change to reflect the collaborator's variation. In the case of a collaborator presenting activity, the user interface on the web browser may show that the collaborator is currently highlighting cell B2. In this manner, method 1400 provides a way to process collaborator actions on a collaborative spreadsheet when the user actions reference an unfiltered sheet.
Another method described herein discloses a method of processing user actions on a collaborative spreadsheet when the user actions reference a filtered worksheet. The method 1500 illustrated in fig. 15 includes: accessing an unfiltered sheet of spreadsheets stored on the server for display on the client computer, wherein a plurality of filters are associated with the unfiltered sheet; and receiving a user selection of a first filter of the plurality of filters to be applied to the unfiltered sheet. The method further comprises the following steps: displaying the filtered worksheet to a user, wherein the filtered worksheet is obtained by applying a first filter to the unfiltered worksheet; and receiving a user action input by a user on the client computer, wherein the user action references cells of the filtered worksheet. The method further comprises the following steps: updating a display of the filtered worksheet based on the user action; transforming the user action according to an inverse of the first filter; and sending the transformed user action to the server. The method 1500 may be performed on any type of client computer that may be connected to the cloud computing service, such as the client computer described in fig. 3 or any desktop computer, laptop computer, tablet, smart phone, or such electronic device.
Illustrated at 1502, the method 1500 begins when a client computer accesses an unfiltered sheet of spreadsheets stored on a server hosting a cloud computing service. The primary copy of the spreadsheet stored on the server contains one or more worksheets. One or more filters may be associated with each worksheet. As illustrated in FIG. 1, the server allows multiple users on the client computers to concurrently access the first worksheet. The spreadsheet may have an ACL that determines which users may access the spreadsheet and the level of access for each user. When a user on a client computer accesses a first worksheet, the cloud computing service sends a copy of the first worksheet and associated filters to the client computer. This copy is stored as a local copy on the client computer and displayed to the user (e.g., via a web browser). A user interface on the Web browser allows a user to view and edit worksheets, such as the user interfaces shown in FIGS. 4-7.
Illustrated at 1504, after the client computer accesses the unfiltered sheet from the server, the client computer receives a selection of a first filter to be applied to the unfiltered sheet. Such as illustrated in fig. 7, the user interface may include a sidebar window from which the user may select a filter to be applied to a data section in the unfiltered sheet. Illustrated at 1406, the client computer then applies a first filter to the unfiltered sheet and displays the resulting filtered sheet. The first filter is a mapping or transformation between cells of the unfiltered sheet and cells of the filtered sheet. For example, a first filter may map cell A1 of the unfiltered sheet to cell B2 of the filtered sheet, thus causing the display of cell B2 to display the data values of cell A1 when the first filter is applied. In contrast to the case in method 1300 where the unfiltered sheet is not overwritten as a filtered sheet, the local copy of the unfiltered sheet stored on the client computer is overwritten as a filtered sheet.
Illustrated at 1508, after the filtered worksheet is displayed to the user, the client computer receives user actions entered by the user. The user action may be an edit or mutation or a user presentation activity (such as highlighting or selecting one or more cells). The user action references cells of the filtered sheet rather than the unfiltered sheet. For example, if the user changes the data value in unfiltered cell A1 (which is mapped to cell B2 by the first filter), the user action references cell B2. The same is true in the case where the user selects unfiltered cell a 1. Thereby changing cell B2 in the local copy of the first worksheet stored on the client computer. Illustrated at 1510, the filtered worksheet is updated directly by the user action and then displayed to the user.
Illustrated at 1512, the user action is also transformed according to an inverse of the first filter on the client computer. After the user action is transformed according to the inverse of the first filter, it references cells of the unfiltered sheet. So that the mutation to cell B2 of the filtered worksheet is transformed into a mutation to cell a1 of the unfiltered worksheet. This transformed user action is sent to the server, illustrated at 1514. The server stores a master copy of the first sheet unaffected by the user's selection of the filter, so user actions sent to the server should reference unfiltered sheets rather than cells of filtered sheets. Otherwise, the server will change the error cell in its primary copy. The server may then send the user action to any other collaborators that are also currently accessing the spreadsheet. Before displaying it, the collaborator client computers will transform the user actions according to any filters that have been applied to their local copies. Transformation of collaborator actions is discussed with respect to FIG. 14. By maintaining the filtered worksheet in memory, the client computer can display the user actions without any intermediate steps. This results in a faster display time than method 1300. However, before being sent to the server, the user actions are transformed according to the inverse of the filter to maintain consistency with the server copy of the first worksheet. In this manner, method 1500 provides a way to process user actions on a collaborative spreadsheet when the user actions reference the filtered worksheet.
In an alternative method to method 1500, the client computer may send the untransformed user action to the server along with information about which filter the client computer is currently using. The server may then transform the user action according to the inverse of the first filter. The user actions may then be stored in the server memory. The server may also transform the transformed user actions according to filters used by the collaborators before sending the user actions to the collaborators.
It should be understood that aspects of the systems and methods described herein may be implemented in many different forms of software, firmware, and hardware in the implementations illustrated in the figures. The actual software code or specialized control hardware used to implement aspects consistent with the principles of the systems and methods described herein is not limiting. Thus, the operation and behavior of the aspects of the systems and methods were described without reference to the specific software code-it being understood that one of ordinary skill in the art would be able to design software and control hardware to implement the aspects based on the description herein.
Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In some cases, multitasking and parallel processing may be advantageous.

Claims (26)

1. A method for processing user actions on a collaborative spreadsheet, the method comprising:
accessing, from each of a plurality of client computers, an unfiltered sheet of spreadsheets stored on a server for display on a first client computer, wherein a plurality of filters are associated with the unfiltered sheet, and wherein each filter of the plurality of filters is simultaneously selected by each client computer of the plurality of client computers;
receiving, from the first client computer, a selection by a first user of a first filter of the plurality of filters to be applied to the unfiltered sheet of work, wherein the first filter is created by a second user on a second client computer;
displaying a filtered sheet to the first user, wherein the filtered sheet is obtained by applying the first filter to the unfiltered sheet;
receiving a user action entered by the first user on the first client computer, wherein the user action references cells of the unfiltered sheet;
sending the user action to the server;
transforming the user action according to the first filter; and
updating a display of the filtered worksheet based on the transformed user actions.
2. The method of claim 1, wherein the first filter comprises commands for sorting one or more cells of an unfiltered sheet.
3. The method of claim 1, wherein the first filter comprises a command to hide one or more cells of an unfiltered sheet.
4. The method of claim 1, wherein accessing the unfiltered sheet comprises loading a copy of the unfiltered sheet and the plurality of filters onto the first client computer.
5. The method of claim 4, wherein displaying the filtered worksheet comprises transforming the unfiltered worksheet in accordance with the first filter.
6. The method of claim 1, wherein the filtered worksheet is displayed on a web browser executing on the first client computer.
7. The method of claim 6, wherein the web browser displays a user interface for the first user to input the user action.
8. The method of claim 1, wherein the user action is a cell variation.
9. The method of claim 1, wherein the user action is a cell presentation activity.
10. A method for receiving collaborator actions on a collaborative spreadsheet, the method comprising:
accessing an unfiltered sheet of spreadsheets stored on a server for display on a first client computer, wherein a plurality of filters are associated with the unfiltered sheet, and wherein each filter of the plurality of filters is simultaneously selected by each client computer of a plurality of client computers;
receiving, from the first client computer, a selection by a first user of a first filter of the plurality of filters to be applied to the unfiltered sheet of work, wherein the first filter is created by a second user on a second client computer;
displaying a filtered sheet to the first user, wherein the filtered sheet is obtained by applying the first filter to the unfiltered sheet;
receiving a collaborator action from the server, wherein the collaborator action references cells of the unfiltered sheet;
transforming the collaborator actions according to the first filter; and
updating a display of the filtered worksheet based on the transformed collaborator actions.
11. The method of claim 10, wherein the first filter comprises commands for sorting one or more cells of an unfiltered sheet.
12. The method of claim 10, wherein the first filter comprises a command to hide one or more cells of an unfiltered sheet.
13. The method of claim 10, wherein accessing the unfiltered sheet comprises loading a copy of the unfiltered sheet and the plurality of filters onto the first client computer.
14. The method of claim 13, wherein displaying the filtered worksheet comprises transforming the unfiltered worksheet in accordance with the first filter.
15. The method of claim 10, wherein the filtered worksheet is displayed on a web browser executing on the first client computer.
16. The method of claim 15, wherein the web browser displays a user interface for the first user to input the user action.
17. The method of claim 10, wherein the collaborator action is cell mutation.
18. The method of claim 10, wherein the collaborator action is a cell presentation activity.
19. The method of claim 10, further comprising updating the unfiltered sheet on the first client computer by the collaborator action.
20. A system for processing user actions on a collaborative spreadsheet, the system comprising:
a first client computer configured to:
communicating with a server hosting a cloud computing service over a communication connection;
accessing an unfiltered sheet of spreadsheets stored on the server, wherein a plurality of filters are associated with the unfiltered sheet, and wherein each filter of the plurality of filters is simultaneously selected by each client computer of a plurality of client computers;
receiving a selection by a first user of a first filter of the plurality of filters to be applied to the unfiltered sheet, wherein the first filter is created by a second user on a second client computer;
displaying a filtered sheet to the first user, wherein the filtered sheet is obtained by applying the first filter to the unfiltered sheet;
receiving a user action entered by the first user on the client computer, wherein the user action references cells of the unfiltered sheet;
sending the user action to the server;
transforming the user action according to the first filter; and
updating a display of the filtered worksheet based on the transformed user actions.
21. The system of claim 20, wherein the client computer is further configured to:
receiving a collaborator action from the server, wherein the collaborator action references cells of the unfiltered sheet;
transforming the collaborator actions according to the first filter; and
updating a display of the filtered worksheet based on the transformed collaborator actions.
22. The system of claim 20, wherein the first filter comprises commands for sorting one or more cells of an unfiltered sheet.
23. The system of claim 20, wherein the first filter comprises commands for hiding one or more cells of an unfiltered sheet.
24. The system of claim 20, wherein the client computer is further configured to: loading a copy of an unfiltered sheet and the plurality of filters onto the first client computer when the unfiltered sheet is accessed from the server.
25. The system of claim 20, wherein the first client computer has a web browser configured to display the filtered worksheet.
26. The system of claim 25, wherein the web browser displays a user interface for the first user to input the user action.
CN201811294207.9A 2013-05-22 2014-05-21 Non-collaborative filters in collaborative documents Active CN109635258B (en)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US13/900,265 US8943142B1 (en) 2013-05-22 2013-05-22 Non-collaborative filters in a collaborative document
US13/900,270 2013-05-22
US13/900,193 US9361287B1 (en) 2013-05-22 2013-05-22 Non-collaborative filters in a collaborative document
US13/900,270 US9298688B1 (en) 2013-05-22 2013-05-22 Non-collaborative filters in a collaborative document
US13/900,193 2013-05-22
US13/900,265 2013-05-22
CN201480021515.8A CN105122238B (en) 2013-05-22 2014-05-21 Non-cooperating filter in collaborative document

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201480021515.8A Division CN105122238B (en) 2013-05-22 2014-05-21 Non-cooperating filter in collaborative document

Publications (2)

Publication Number Publication Date
CN109635258A CN109635258A (en) 2019-04-16
CN109635258B true CN109635258B (en) 2020-03-06

Family

ID=51059555

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201811294207.9A Active CN109635258B (en) 2013-05-22 2014-05-21 Non-collaborative filters in collaborative documents
CN201480021515.8A Active CN105122238B (en) 2013-05-22 2014-05-21 Non-cooperating filter in collaborative document

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201480021515.8A Active CN105122238B (en) 2013-05-22 2014-05-21 Non-cooperating filter in collaborative document

Country Status (4)

Country Link
EP (1) EP3000055A4 (en)
CN (2) CN109635258B (en)
DE (1) DE202014010948U1 (en)
WO (1) WO2014190031A2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3472725A1 (en) * 2016-06-17 2019-04-24 Koninklijke Philips N.V. Data-guided filtering
US11726753B2 (en) 2016-12-03 2023-08-15 Thomas STACHURA Spreadsheet-based software application development
US10540153B2 (en) 2016-12-03 2020-01-21 Thomas STACHURA Spreadsheet-based software application development
US10216494B2 (en) 2016-12-03 2019-02-26 Thomas STACHURA Spreadsheet-based software application development
CN111819534A (en) * 2017-12-03 2020-10-23 托马斯·斯塔胡拉 Spreadsheet-based software application development
US20200372210A1 (en) * 2019-05-23 2020-11-26 Sigma Computing, Inc. Using lightweight references to present a worksheet

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101836198A (en) * 2007-10-25 2010-09-15 微软公司 The private views of data and local calculating during the live collaboration
US8108779B1 (en) * 2008-12-16 2012-01-31 Adobe Systems Incorporated Collaborative editing operations
US8255791B2 (en) * 2000-11-29 2012-08-28 Dov Koren Collaborative, flexible, interactive real-time displays

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6334124B1 (en) * 1997-10-06 2001-12-25 Ventro Corporation Techniques for improving index searches in a client-server environment
US20050114169A1 (en) * 2003-11-24 2005-05-26 Hazim Ansari Systems and methods for evaluating information to identify, and act upon, intellectual property issues
US7233951B1 (en) * 2004-02-18 2007-06-19 Microsoft Corporation Spreadsheet grid-like control for a web-based collaboration system
US7849395B2 (en) * 2004-12-15 2010-12-07 Microsoft Corporation Filter and sort by color
US7849090B2 (en) * 2005-03-30 2010-12-07 Primal Fusion Inc. System, method and computer program for faceted classification synthesis
US20110145689A1 (en) * 2005-09-09 2011-06-16 Microsoft Corporation Named object view over multiple files
US9942271B2 (en) * 2005-12-29 2018-04-10 Nextlabs, Inc. Information management system with two or more interactive enforcement points
US8266214B2 (en) * 2006-01-24 2012-09-11 Simulat, Inc. System and method for collaborative web-based multimedia layered platform with recording and selective playback of content
US7930646B2 (en) * 2007-10-19 2011-04-19 Microsoft Corporation Dynamically updated virtual list view
US8341163B2 (en) * 2008-06-17 2012-12-25 Microsoft Corporation Techniques for filter sharing
US9367530B2 (en) * 2011-01-21 2016-06-14 Jive Software Distributed document co-authoring and processing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8255791B2 (en) * 2000-11-29 2012-08-28 Dov Koren Collaborative, flexible, interactive real-time displays
CN101836198A (en) * 2007-10-25 2010-09-15 微软公司 The private views of data and local calculating during the live collaboration
US8108779B1 (en) * 2008-12-16 2012-01-31 Adobe Systems Incorporated Collaborative editing operations

Also Published As

Publication number Publication date
CN105122238A (en) 2015-12-02
WO2014190031A2 (en) 2014-11-27
DE202014010948U1 (en) 2017-01-27
CN109635258A (en) 2019-04-16
WO2014190031A3 (en) 2015-04-23
EP3000055A4 (en) 2017-05-17
EP3000055A2 (en) 2016-03-30
CN105122238B (en) 2018-11-27

Similar Documents

Publication Publication Date Title
US9635105B2 (en) Non-collaborative filters in a collaborative document
CN109635258B (en) Non-collaborative filters in collaborative documents
US10698594B2 (en) System for providing dynamic linked panels in user interface
AU2019246901B2 (en) Graphical user interface that simplifies user creation of custom calculations for data visualizations
US20210303561A1 (en) System for providing dynamic linked panels in user interface
US10719188B2 (en) Cached database and synchronization system for providing dynamic linked panels in user interface
US8621340B2 (en) Block properties and calculated columns in a spreadsheet application
US8943142B1 (en) Non-collaborative filters in a collaborative document
US20180189734A1 (en) Presenting project data managed by a content managemnet system
US10169401B1 (en) System and method for providing online data management services
KR101213798B1 (en) Complex data access
JP6078437B2 (en) Personal information anonymization system
US20170010869A1 (en) Multistage customizing of web-based application in a browser independent of platform and operating system
WO2017136296A1 (en) Configurable access to a document's revision history
US20150058363A1 (en) Cloud-based enterprise content management system
US9298688B1 (en) Non-collaborative filters in a collaborative document
US20210263956A1 (en) Linked element tracking in documents
US20180329616A1 (en) Adaptive metadata filters
DE112022000886T5 (en) DATA PROCESSING SYSTEM WITH MANIPULATION OF LOGICAL DATA RECORD GROUPS
US20200007644A1 (en) Dossier interface and distribution
Yu et al. Exploring the Dashboard
WO2004079484A2 (en) Non-hierarchical database

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant