Method and system in an electronic spreadsheet for handling graphical objects referring to working ranges of cells in a copy/cut and paste operation

A system and method of copying and pasting a source range of cells onto a destination range of cells in a spreadsheet. The source range includes at least one working range of cells and at least one fastening range of cells that include graphical objects. The source range of cells and any graphical objects whose associated fastening range of cells is included therein are copied onto the destination range of cells. When the cell identifications are relative rather than absolute, means for identifying the working range of cells within the source range of cells are replaced by means for identifying the copied working range of cells within the destination range of cells.

FIELD OF THE INVENTION

The present invention relates to the field of information processing by digital computers, and more particularly to a method and system, in an electronic spreadsheet, for handling graphical objects referring to working ranges of cells in a copy-and-paste or a cut-and-paste operation.

BACKGROUND

Before computers, numerical analyses, particularly financial ones, were usually prepared on an accountant's columnar pad or spreadsheet, with pencil and calculator in hand. By organizing data into columns and rows, spreadsheets afford the rapid assimilation of information by a reader. The task of preparing a spreadsheet on paper, however, is laborious. The process tends to be very slow, as each entry must be tediously calculated and entered into the spreadsheet. Since all calculations are the responsibility of the preparer, manually prepared spreadsheets are also prone to errors. Hence, preparation of spreadsheets by hand is slow, tedious, and unreliable.

With the advent of microcomputers, a solution was forthcoming in the form of “electronic spreadsheets.” Better known simply as “spreadsheets,” these software programs provide a computerised replacement for the traditional financial modeling tools: the accountant's columnar pad, pencil, and calculator. In some regards, spreadsheet programs are to those tools as word processors are to typewriters. Spreadsheets offer dramatic improvements in ease of creating, editing, and using financial models.

A typical spreadsheet program configures the memory of a computer to resemble the column/row or grid format of an accountant's columnar pad, thus providing a visible calculator. Because this “pad” exists dynamically in the computer's memory, however, it differs from paper pads in several important ways. Locations in the electronic spreadsheet, for example, must be communicated to the computer in a format which it can understand. A common scheme for accomplishing this is to assign a number to each row in a spreadsheet, a letter to each column, and another letter to each sheet (or page) of the spreadsheet. To reference a location at column A and row 1 of the second page (i.e., the upper-left hand corner), for example, the user types in “B:A1”. In this manner, the spreadsheet defines an addressable storage location or “cell” at each intersection of a row with a column within a given page.

Data entry into an electronic spreadsheet occurs in much the same manner that information would be entered on an accountant's pad. After a screen cursor is positioned at a desired location, the user can enter alphanumeric information. Besides holding text and numeric information, however, spreadsheet cells can store special instructions or “formulas” specifying calculations to be performed on the numbers stored in spreadsheet cells. Such spreadsheet cells can also be defined and named as a range, as long as they are arranged as a contiguous set of cells. A typical example of such a named range simply corresponds to a regular table found in an accountant's pad. In this fashion, range names can serve as variables in an equation, thereby allowing precise mathematical relationships to be defined between cells. The structure and operation of a spreadsheet program, including advanced functions such as functions and macros, are documented in the technical, trade, and patent literature.

Electronic spreadsheets offer many advantages over their paper counterparts. For one, electronic spreadsheets are much larger (i.e., hold more information) than their paper counterparts; electronic spreadsheets having thousands or even millions of cells are not uncommon. Spreadsheet programs also allow users to perform “what-if” scenarios. After a set of computational relationships has been entered into a worksheet, by using imbedded formulas for instance, the spread of information may be recalculated using different sets of assumptions, with the results of each recalculation appearing almost instantaneously. Performing this operation manually, with paper and pencil, would require recalculating every relationship in the model with each change made. Thus, electronic spreadsheet systems were invented to solve “what-if” problems, that is, changing an input and seeing what happens to an output.

For this purpose, electronic spreadsheets systems include different means helping the user both to modify inputs and to visualize the resulting effect.

In the former case, user defined push-buttons with associated software or pieces of code are typical examples of built-in tools available within conventional electronic spreadsheets for manipulating individual cells or ranges of cells.

In the later case, user defined charts are typical examples of built-in tools available within conventional electronic spreadsheets for seeing the resulting effect of an input change. Indeed a chart makes relationships among numbers easy to see because it turns numbers into shapes (lines, bars, slices of a pie), and the shapes can then be compared with one another.

The ranges of cells, whether they include one or several cells, typically constitute the basic objects handled by and associated with both push-buttons and charts. In the following, such ranges of cells will be referred to as “working ranges” Objects like push-buttons and charts can be “fastened” to the range of cells they overlay on the spreadsheet user computer display. In the following, such ranges will be referred to as the “fastening ranges”.

When a fastening range is copied/cut and pasted within a conventional electronic spreadsheet, the objects that are included are also copied/cut and pasted, so that the resulting pasted range contains the same objects as the original fastening range. Therefore, the pasted range is also a fastening range. Any object within the pasted fastening range owns the same attributes as the corresponding original object does. This does not normally present a problem for most of the object attributes (for instance, a pie chart is expected to be copied/cut and pasted into a pie chart, not a bar chart).

Nevertheless, some limitations exist in conventional electronic spreadsheets for the working range attribute. Indeed, with conventional electronic spreadsheets, the working ranges associated with a copied/cut and pasted object are exactly the same as the ones associated with the original object. This is not the normally expected result if the working range is included in, or equal to, the fastening range: in this case, the working range is expected to be treated as a regular relative range, so that the copied/cut and pasted working range occupies within the copied/cut and pasted fastening range the same relative position as the original working range within the original fastening range.

As the spreadsheet user inappropriately expects that the copied/cut and pasted working range is included in the copied/cut and pasted fastening range, he or she may erroneously interpret the result of a change within the copied/cut and pasted working range. This problem is particularly severe in the case of a cut and paste operation, as the cut and pasted objects within a cut and pasted fastening range are associated with working ranges which have been cut and which are thus emptied. In the case of a chart object, the resulting shape (line, bar, slice of a pie) is simply absent. The present invention offers a user-friendly solution to this problem by giving to the electronic spreadsheet user the choice between a conventional copy/cut and paste operation and an enhanced copy/cut and paste operation where working ranges within fastening ranges are treated as relative ranges.

SUMMARY

The present invention is directed to a method and system, in an electronic spreadsheet, for handling graphical objects referring to working ranges of cells in a copy-and-paste or a cut-and-paste operation.

More particularly the present invention discloses a system and method of copying and pasting a source range of cells onto a destination range of cells in a multi-dimensional spreadsheet comprising a plurality of cells identified by a cell address along each dimension, a range of cells comprising one or more cells, said source range of cells comprising one or more working ranges of cells, and one or more fastening ranges of cells in which one or more graphical objects are represented, said one or more graphical objects being associated with the one or more working ranges of cells.

The method comprises the steps of:selecting a source range of cells;selecting a destination range of cells;copying onto the selected destination range of cells, the selected source range of cells with any graphical object whose fastening range of cells is included in the source range of cells; and
for each graphical object whose fastening range of cells is copied onto the destination range of cells and for each working range of cells associated with the graphical object:replacing means for identifying the working range of cells within the source range of cells with means for identifying the copied working range of cells within the destination range of cells if the identifying means are not absolute, wherein the means for identifying are preferably a name or an address.

DETAILED DESCRIPTION

System Hardware

As shown inFIG. 1A, the present invention may be embodied on a computer system100comprising a central processor101, a main memory102, an input/output controller103, a keyboard104, a pointing device105(e.g., mouse, track ball, pen device, or the like), a display device106, and a mass storage107(e.g., hard disk). Additional input/output devices, such as a printing device108, may be included in the system100as desired. As illustrated, the various components of the system100communicate through a system bus110or similar architecture. In a preferred embodiment, the computer system100includes an IBM-compatible personal computer, which is available from several vendors (including International Business Machine—IBM Corporation of Armonk, N.Y.).

Illustrated inFIG. 1B, a computer software system150is provided for directing the operation of the computer system100. Software system150, which is stored in system memory102and on mass storage107, includes a kernel or operating system151and a shell or interface153. One or more application programs, such as application software152, may be “loaded” (i.e., transferred from storage107into memory102) for execution by the system100. The system100receives user commands and data through user interface153; these inputs may then be acted upon by the system100in accordance with instructions from operating module151and/or application module152. The interface153, which is preferably a graphical user interface (GUI), also serves to display results, whereupon the user may supply additional inputs or terminate the session. In a preferred embodiment, operating system151and interface153are Microsoft Win95, available from Microsoft Corporation of Redmond, Wash. Application module152, on the other hand, includes a spreadsheet notebook of the present invention as described in further detail herein below.

Interface

The following description focuses on preferred embodiments of the present invention, which are embodied in spreadsheet applications operative in the Microsoft Win95 environment. The present invention, however, is not limited to any particular application or any particular environment. Instead, those skilled in the art will find that the system and methods of the present invention may be advantageously applied to a variety of system and application software, including database management systems, word processors, and the like. Moreover, the present invention may be embodied on a variety of different platforms, including Macintosh, UNIX, NextStep, and the like. Therefore, the description of the exemplary embodiments which follows is for purposes of illustration and not limitation.

Referring now toFIG. 1C, the system100includes a windowing interface or workspace160. Window160may be a rectangular, graphical user interface (GUI) for display on screen106; additional windowing elements may be displayed in various sizes and formats (e.g., tiled or cascaded), as desired. At the top of window160is a menu bar170with a plurality of user-command choices, each of which may invoke additional submenus and software tools for use with application objects. Window160includes a client area180for displaying and manipulating screen objects, such as graphic object181and text object182. In essence, the client area is a workspace or viewport for the user to interact with data objects which reside within the computer system100.

Windowing interface160includes a screen cursor or pointer185for selecting and otherwise invoking screen objects of interest. In response to user movement signals from the pointing device105, the cursor185floats (i.e., freely moves) across the screen106to a desired screen location. During or after cursor movement, the user may generate user-event signals (e.g., mouse button “clicks” and “drags”) for selecting and manipulating objects, as is known in the art. For example, Window160may be closed, re-sized, or scrolled by “clicking” (selecting) screen components172,174/5, and177/8, respectively.

In a preferred embodiment, screen cursor185is controlled with a mouse device. Single-button, double-button, or triple-button mouse devices are available from a variety of vendors, including Apple Computer of Cupertino, Calif., Microsoft Corporation of Redmond, Wash., and Logitech Corporation of Fremont, Calif., respectively. More preferably, screen cursor control device105is a two-button mouse device, including both right and left “mouse buttons.”

Programming techniques and operations for mouse devices are well documented in the programming and hardware literature; see e.g.,Microsoft Mouse Programmers Reference, Microsoft Press, 1989. The general construction and operation of a GUI event-driven system, such as Windows, is also known in the art: see, e.g., Petzold, C.,Programming Windows, Second Edition, Microsoft Press, 1990.

B. Preferred Interface

Shown inFIG. 2A, a spreadsheet notebook interface of the present invention will now be described. The spreadsheet notebook or workbook of the present invention includes a notebook workspace200for receiving, processing, and presenting information, including alphanumeric as well as graphic information. Notebook workspace200includes a menu bar210, a toolbar220, a current cell indicator230, an input line231, a status line240, and a notebook window250. The menu bar210displays and invokes, in response to user inputs, a main level of user commands. Menu210also invokes additional pull down menus, as is known in windowing applications. Input line231accepts user commands and information for the entry and editing of cell contents, which may include data, formulas, macros, and the like. Indicator230displays an address for the current cursor (i.e., active cell) position, or the address or name of a selected named range (i.e. active selection). At the status line240, system100displays information about the current state of the workbook; for example, a “READY” indicator means that the system is ready for the user to select another task to be performed.

The toolbar220, shown in further detail inFIG. 2B, comprises a row or palette of tools which provide a quick way for the user to choose commonly-used menu commands or properties. In an exemplary embodiment, toolbar220includes file manipulation buttons221, printing buttons222, an undo button223, cut, copy, and paste buttons224, information pop-up window buttons tool225, a named range selection button226, a style copy button227, a column re-sizing button228, and a sum button229. The functions of these buttons are suggested by their names. For instance, buttons224cut, copy, and paste data and objects to and from Windows' clipboard. The same actions are also available as corresponding commands in the Edit menu (available from menu bar210).

The notebook, which provides an interface for entering and displaying information of interest, includes a plurality of spreadsheet pages. Each page may include conventional windowing features and operations, such as moving, re-sizing, and deleting. In a preferred embodiment, the notebook includes 256 spreadsheet pages, all of which are saved as a single disk file on the mass storage107. Workspace200may display one or more notebooks, each sized and positioned (e.g., tiled, overlapping, and the like) according to user-specified constraints.

Each spreadsheet page of a notebook includes a two-dimensional spread. Page A from the notebook200, for example, includes a grid in row and column format, such as row 3 and column F. At each row/column intersection, a box or cell (e.g., cell C4) is provided for entering, processing, and displaying information in a conventional manner. Each cell is addressable, with a selector being provided for indicating a currently active one (i.e., the cell that is currently selected).

As shown inFIGS. 2C-D, individual notebook pages are identified by page identifiers260, preferably located along one edge of a notebook. In a preferred embodiment, each page identifier is in the form of a tab member (e.g., members261a,262a,263a) situated along a top edge of the notebook. Each tab member may include representative indicia, such as textual or graphic labels, including user selected titles representing the contents of corresponding pages. InFIG. 2C, the tab members260are set to their respective default names. For example, the first three tab members (members261a,262a,263a) are respectively set to A, B, and C. Tab members are typically given descriptive names provided by the user, however. As shown inFIG. 2D, for example, the first three tab members have now been set to “Contents” (tab member261b), “Summary” (tab member262b), and “Jan” (tab member263b). In a similar manner, the remaining tabs are set to subsequent months of the year. In this manner, the user associates the page identifiers with familiar tabs from an ordinary paper notebook. Thus, the user already knows how to select a page or spread of interest: simply select the tab corresponding to the page (as one would do when selecting a page from a paper notebook).

In addition to aiding in the selection of an appropriate page of information, the user-customizable page identifiers aid in the entry of spreadsheet named range addresses. For example, when entering a formula referring to a named range of cells on another page, the user may simply use the descriptive page name in the named range address, thus making it easier for the user to understand the relationship of the cell(s) or information being referenced.

A general description of the features and operation of the spreadsheet notebook interface may be found in Quattro Pro for Windows (Getting Started, User's Guide and Building Spreadsheet Applications), available from Borland International.

Range Dependent Objects in a Copy/Cut and Paste Operation

Conventional electronic spreadsheets include built-in means allowing spreadsheet users to easily apply changes to ranges of cells and to easily represent the resulting effects on other ranges of cells. Typical examples of such means are push-button objects, with their associated macros or scripts, and chart objects. These objects are linked to two different types of ranges of cells: the so-called “Working Ranges of Cells” and the so-called “Fastening Ranges of Cells”.

This is illustrated in the example ofFIG. 4Ashowing a portion of the display device106where a range of cells representing the trigonometric function Y=10*sin(X/10) is represented by a chart. This range of cell401, delimited by a solid line, identified by its address C5. . . D24, and named as “TRIGOTABLE”, contains two columns: the left one contains a set of values Xifor the X variable and the right one contains the set of corresponding values Yi=10*sin(Xi/10). On the right side of the range of cells401, the spreadsheet user has defined a chart402showing a plot of the trigonometric function Y=10*SIN(X/10) for the sample values represented by the range of cells401. Above the left column of the range of cells401, the spreadsheet user has defined a push-button403entitled “Sort by X” whose effect is to sort the range of cell401by the X values. Above the right column of the range of cells401, the spreadsheet user has defined a push-button404entitled “Sort by Y” whose effect is to sort the range of cell401by the Y values. This effect is shown inFIG. 4B, where the named range “TRIGOTABLE”411has been sorted by the rightmost column, so that the resulting chart412shows a different curve than the one shown in the chart402ofFIG. 4A.Working Ranges of Cells (WROC)The push-button objects403and404and the chart object402illustrated in the example ofFIG. 4Aare all associated with the range of cells401. Indeed the two push-button objects403and404allow sorting of the range of cells401, and the chart object402gives a graphical representation of a function Y=10*SIN(x/10) whose sample values constitute the range of cells401. For each of these three objects402,403and404, the range of cells401will be referred to as a “Working Range of Cells” or WROC. More generally, any range of cells handled by a graphical object in an electronic spreadsheet will be referred to as a “Working Range of Cells” or WRoC associated to this object. Within an object oriented software engineering environment, this can be formally specified through the definition of a specific object property associated with the object representing a push-button or a chart.Fastening Ranges of Cells (FRoC)In conventional electronic spreadsheets, objects like push-buttons or charts can be fasten to a range of cells. When such graphical objects are created, they fasten by default to the range of cells delimited by their top left and bottom right corners. An object fastened in this way can move and change size with the cells behind it. For example they can move and change their size when columns and rows are either inserted or deleted, or when the column widths or the row heights are changed. The range of cells to which such an object is fastened will be referred to as the “Fastening Range of Cells” or FRoC. In the example ofFIG. 4A, the push-button object403is fasten to the FRoC made of a single cell with address A:C3; the push-button object404is fasten to the FRoC made of a single cell with address A:D; the chart object402is fasten to the FRoC with address A:E3. . . A:I24.How are WRoC treated when FRoC are copied/cut and pasted?Consider a typical case, which is illustrated byFIG. 4C. Here is shown the result of a copy and paste operation where the spreadsheet user has first selected a range of cells405with address A:B2. . . A:J25(this range of cells405is delimited by a double line border), then copied this range of cells405to the clipboard, then selected another range of cells425with address A:L2. . . A:T25, and finally performed a paste operation. This results in copying and pasting the content of all the cells from range of cells405onto the range of cells425, copying and pasting all the cell display attributes from range of cells405onto the range of cells425, and copying and pasting the graphical objects from range of cells405onto the range of cells425. The result of this operation is that the range of cells425contains a range of cells421with the same values as the original range of cells401, a pair of push-buttons423and424, and a chart object422. The graphical objects422,423and424own the same attributes as the original graphical objects402,403, and404. Unfortunately, they are all associated with the original WRoC401instead of being associated with its copied and pasted version, that is the range of cells421. In short, a range of cells405containing one FRoC and one WRoC associated with the same graphical object, is copied and pasted onto another range of cells425. This copied and pasted range of cells425contains a copied and pasted version of the original object, with the associated FRoC belonging to the copied and pasted range of cells425, whereas the associated WRoC still corresponds to the original WRoC. This situation cannot be perceived as normal: any click on the push-button423or424will sort the range of cells401instead of the range of cell421. A similar problem appears with the graph object422: any change in the values of the range of cells421will not be reflected in the graph object422, which instead reflects the values found in the range of cells401.The above problem becomes even more severe in the case of a cut and paste operation. This is reflected inFIG. 4Dshowing the result of a cut and paste operation applied to the same objects as the ones involved in the copy and paste operation whose effect is shown inFIG. 4C. Within the range of cells435created by the cut and paste operation, the graph object432does not show any curve, as its associated WRoC corresponds to the WRoC of the original object which has been cut and which is thus empty. Within the same range of cells435, any click on the push-button objects433and434results in execution errors, as the associated macro or script instructions manipulate ranges which have disappeared. Finally any change in the values of the range of cells431will not be reflected in the graph object432.

The present invention offer a user-friendly solution to these problems by enabling the electronic spreadsheet user to select a new mode of copy/cut and paste operation of a range of cells by which the WRoC associated with the copied/cut and pasted version of a graphical object is equal to the copied/cut and pasted version of the WRoC associated with the original graphical object, when this graphical object has a FRoC and a WRoC which are included in the copied/cut and pasted range of cells. In the following, the corresponding new Paste method will be referred to as the “Comprehensive Paste” method.

The decision to perform a copy/cut and paste operation according to the Comprehensive Paste method between a source range of cells and a destination range of cells belongs to the spreadsheet user. When this operation occurs, a common repository associated with each graphical object like a push-button or a graph, called the “WRoC Table” is used to record the data required by this operation. This WRoC Table is preferably saved on a non volatile memory (typically but not necessary as part of the spreadsheet disk file on the mass storage107) and is preferably associated with a method of the graphical object, when object oriented software engineering techniques are used.

Referring now toFIG. 6, the WRoC Table600associated with a given graphical object corresponds to a simple logical structure made of several records601, each of which corresponds to a WRoC associated with this graphical object. Each record includes two fields:The “WRoC”602field is used for identifying uniquely the working range of cells within the spreadsheet. For instance, the Source Range may correspond to the conventional address structure Sheet:RowColumn . . . Sheet:RowColumn associated to every range of cells (For example D:E10 . . . D:G20 with D as Sheet name, E and G as Row name/number, 10 and 20 as Column name/number). This field may include one or several occurrences of the “$” character to identify a relative address, or an absolute address, or the absolute coordinates within a mixed address.The “Reference Type”603field is used for identifying whether the WRoC is referenced as a relative address or as an absolute address or even as a mixed address. This field603can respectively take the valuesRELATIVE, orABSOLUTE, orMIXED, if the number of “$” characters in the field602is found equal to zero, or is found equal to the number of address coordinates, or is found less than the number of address coordinates and strictly positive.

The management of this table is itself conventional and straight forward. Any range of cells, once explicitly or implicitly declared as a working range of cells associated with a given graphical object by the electronic spreadsheet user, results in the introduction of a new record601within the WRoC Table associated with the same graphical object. The various means used for explicitly or implicitly specifying if a given range of cells is a WRoC associated with a graphical object are implementation dependent and are therefore not considered as part of the present invention.

In contrast to the just-described conventional tools, the present invention provides a more powerful, user-friendly, and interactive approach for handling WRoC during a cut/copy and paste operation, in a form of a so-called “Comprehensive Paste” method.

In a preferred embodiment, the present invention may be used in two steps:1. The first step occurs when the spreadsheet user decides whether a given range of cells should be cut or copied to memory (the underlying memory space being known as the clipboard).The user first selects the relevant range of cells by using the pointing device105or the keyboard104and then invokes the conventional commands called “copy” or “Cut” using conventional means available in a spreadsheet environment, such as (but not limited to) dedicated push-buttons, keyboard entry short cuts, and menu or sub-menu entries.At completion of one of these two conventional commands, the selected range of cells, as well as any fastened graphical object it contains, have been copied by conventional internal routines of spreadsheet program into the memory102of the computer system.2. The second step occurs when the spreadsheet user decides to take advantage of the present invention while the content of the clipboard is pasted onto a given destination range of cells.The spreadsheet user first selects the relevant destination ranges of cells by using conventional means, such as (but not limited to) the pointing device105or the keyboard104.Then the spreadsheet user invokes an original specific command called “Comprehensive_Paste” using conventional means available in spreadsheet environment, such as (but not limited to) dedicated push-buttons, keyboard entry short cuts, and menu or sub-menu entries. In a preferred embodiment of the present invention, the Comprehensive_Paste command is invoked by clicking with the pointing device105first on the conventional “Paste Special” menu entry301within the conventional “Edit” menu300, as shown inFIG. 3A, then on a specific check box311“Comprehensive Paste” introduced within the conventional “Paste Special” dialogue box310, as shown inFIG. 3B, and then on the “OK” push-button312available within this same dialog box “Paste Special”310.
D. Comprehensive_Paste Method

The method for handling WRoC during a paste operation to take advantage of the present invention may be split into two parts, which are summarised in flowchart500ofFIG. 5Aand in flowchart510ofFIG. 5B. The first part of the method may be seen as the pre-processing of the “Comprehensive Paste” command, and the second part of the method may be seen as the processing of the “Comprehensive Paste” command.

The first part of the method comprises the following steps:At step501, the method is in its default state, waiting for an event to initiate the process.At step502, the “Comprehensive_Paste” command is detected, as a result of an user action. This action may be for instance a specific combination of key on the keyboard104, or the click of the pointing device105on a specific button, or any other similar means not further specified here.At step503, a Boolean variable named “Comprehensive_Flag” is set to the valueTRUE.At step504, an improved version of the conventional Paste command is invoked. The execution of the conventional Paste command involves different conventional sub-processes, one of which takes care of pasting any graphical object whose FRoC is included in the last cut or copied range of cells. This conventional sub-process will be referred to as the “Graphical_Object_Paste” sub-process. The improved version of the conventional Paste command differs from the conventional Paste command by replacing the “Graphical_Object_Paste” sub-process by another sub-process referred to as the “Comprehensive_Graphical_Object_Paste”. The description of this sub-process is given in the flowchart510ofFIG. 5B.At step505, the Boolean variable named “Comprehensive_Flag” is set to the valueFALSE. Then control returns to the initial step501for handling any new command initiated by the electronic spreadsheet user.

The second part of the method corresponds to a modified version of the conventional sub-process “Graphical_Object_Paste” in charge of pasting any graphical object whose FRoC is found included in the last cut or copied range of cells. This new version is known as the “Comprehensive_Graphical_Object_Paste” and comprises the following steps:At step511, the method is in its default state, waiting for an event to initiate the process.At step512, the “Comprehensive_Graphical_Object_Paste” command is detected, typically as a result of an invocation as part of the step504previously described.At step513, the parameters of the “Comprehensive_Graphical_Object_Pastel” command are retrieved:Source_Range identifying the source range of cells involved in the current copy/cut and paste operation;Dest_Range identifying the destination range of cells involved in the current copy/cut and paste operation,Source_Graphical_Object identifying the graphical object (whose FRoC is included in Source_Range) handled by the process, andSource_WRoC_Table identifying the WRoC table associated to the object Source_Graphical_Object.At step514, the conventional process Graphical_Object_Paste is followed to create the copied/cut and pasted version of the Source_Graphical_Object. The resulting graphical object, referred to as Dest_Graphical_Object, has a FRoC with the same relative address within the Dest_Range range of cells as the relative address of the FRoC of Source_Graphical_Object within the Source_Range range of cells. In other words, the address offset between the FROC of Dest_Graphical_Object and the FRoC of Source_Graphical_Object is equal to the address offset between Dest_Range and Source_Range.At step515, a test is performed to check if the Source_WRoC_Table is empty. If it is empty, then control is given back to the initial step511, for handling any new command invocation. Otherwise, control is given to the step516.At step516, a WRoC table is created and associated with the graphical object Dest_Graphical_Object. This graphical object, referred to as Dest_WRoC_Table, has the same size as the Source_WRoC_Table, that is contains as many records as structure601, as illustrated inFIG. 6.At step517, the WRoC table Source_WRoC_Table is copied onto the WRoC table Dest_WRoC_Table.At step518, the first record601of the Dest_WRoC_Table is set as the current record of Dest_WRoC_Table.At step519, a test is performed on the current record of Dest_WRoC_Table to determine if the WRoC field602is included in the Source_Range range of cells, and if the Reference Type field603is found different fromABSOLUTE. If this is the case, then control is given to step520. Otherwise control is given to step521.At step520, the WRoC field602of the current record of the Dest_WRoC_Table is replaced by its copied/cut and pasted version within the Dest_Range range of cells. In other words, the relative offset of the WRoC field602within the Source_Range range of cells at the beginning of the step520is equal to the relative offset of the WRoC field602within the Dest_Range range of cells at the end of the step520.At step521, a test is performed to determine if the current record601of the Dest_WRoC_Table is the last record601of Dest_WRoC_Table. If it is the last record, then control is given back to the initial step511, for handling any new command invocation. Otherwise, control is given to the step522.At step522, the next record601of the Dest_WRoC_Table following the current record601becomes the new current record601of the Dest_WRoC_Table. Then control is given to the step519for continuing with the records601of the Dest_WRoC_Table.

The Comprehensive_Paste method and system according to the present invention may also be used advantageously in environments where elements of information are organized as multi-dimensional tables having more than three dimensions.

The Comprehensive_Paste method and system according to the present invention may be used advantageously also in those situations where a given source range of cells is cut/copied and pasted onto multiple destination ranges of cells.

While the invention has been particularly shown and described with reference to a preferred embodiment, it will be understood that various changes in form and detail may be made therein without departing from the spirit and scope of the invention.