|||||III USOO5590259A United States Patent 19 11 Patent Number: 5,590,259 Anderson et al. 45 Date of Patent: *Dec. 31, 1996
54) SYSTEMAND METHODS FOR IMPROVED 5,347,295 9/1994 Agulnick et al...... 345,156 SPREADSHEET INTERFACE WITH 5,416,895 5/1995 Anderson et al...... 395/148 USER-FAMILIAR OBJECTS FOREIGN PATENT DOCUMENTS 75) Inventors: Charles R. Anderson, Santa Cruz; 90310897 5/1991 European Pat. Off. . Robert W. Warfield, Aptos; Istvan 90123564 6/1991 European Pat. Off. . Cseri, Scotts Valley; Murray K. Low; 9012.5095 8/1991 European Pat. Off. . Weikuo Liaw, both of Santa Cruz; PCT/US911 Alan M. Bush, Menlo Park, all of 06461 3/1992 WIPO. Calif PCT/US911 08077 5/1992 WIPO : Assignee: Borland International, Inc., Scotts OTHER PUBLICATIONS Valley, Calif. Warfield et al, "Quattro Pro for Windows', PC Magazine, Notice: The term of this patent shall not extend vol. 11 No. 22, p. 136. Dec. 12, 1992. beyond the expiration date of Pat. No. Stinson, "Diversity Blossoms Amid the Rows and Col 5,416,895. umns", PC Magazine, vol. 11 No. 19, pp. 111-1170. Nov. 10, 1992. 2 Appl. No.: 440,184 Dreyfuss, "The Best of 1992', PC Magazine, vol. 12. No. 1, ir -- pp. 110 and 148. Jan. 12, 1993. 22 Fed: May 12, 1995 Anonymous, “Product of the year: a new approach', Info Related U.S. Application Data world, pp. 16-17. Apr. 26, 1993. Barton, "Quattro Pro for Windows: Both Evolutionary and (63) Continuation of Ser. No. 866,658, Apr. 8, 1992, Pat. No. Revolutionary", CPA Software News. Nov. 1992. 5,416,895. Miller, "New Spreadsheet Thinking", PC Magazine, pp. (51) int. Clar. G06F17/40 81-82. Nov. 10, 1992. 52) U.S. Cl...... 395/764; 395/938; 395/939; 395/344 (List continued on next page.) (58) Field of Search 2nn. - a a as a a a a 395/148-161, Primary Examiner Joseph H. Feild 395/600, 364/401-408; 34.5/24-25, 156 Attorney, Agent, or Fim John A. Smart; David N. Slone (56) References Cited 57) ABSTRACT U.S. PATENT DOCUMENTS An electronic spreadsheet system includes a notebook inter 5,021,973 6/1991 Hernandez et al...... 364,518 face having a plurality of notebook pages, each of which 5,033,009 7/1991 Dubnoff ...... 364,523 may contain a spread of information cells, or other desired 5,055,998 10/1991 Wright et al...... 364,200 page type (e.g., Graphs page). Methods are provided for 5,072,412 12/1991 Henderson, Jr. et al. " 35/5 rapidly accessing and processing information on the differ 5,093,9075,095,429 3/1992 HarrisHwong et et al. al...... 395/152... ent pages, including displayingdi a pluralitylurali of page identifiersf 5,21,499 6/1992 McCaskill et al...... 395/700 for selecting individual pages, and further including a pre 5,140,678 8/1992 Torres ...... 395/59 ferred syntax for referencing information. Additional meth 5,182,793 1/1993 Alexander et al...... 395/13 ods are provided for editing cells and blocks of cells. 5,231,577 7/1993 Koss...... - a a - 364t419 5,237,651 8/1993 Randall ...... 395/148 5,283,864 2/1994 Knowlton ...... 395/158 56 Claims, 35 Drawing Sheets
5,590,259 Page 2
OTHER PUBLICATIONS "Hyperpaper,” IBM Technical Disclosure Bulletin, vol. 33, Stinson, "Quattro Pro for Windows Shows Spreadsheet No. 9, Feb. 1991, pp. 283-384. Smarts', PC Magazine, pp. 37-39. Sep. 29, 1992. Scoville, "Quattro Pro for Windows', PC World, pp. Lotus Development Corporation, Lotus User's Guide: Lotus O2-105. Jul. 1992. 1-2-3 for Windows Release 1.0, 1991, pp. 37–46, 307-317, Delonas, "Spreadsheets Under Scrutiny', BYTE's Essential 159-172. Guide to Windows, pp. 70-80. 1992. Scoville et al., “The Windows Spreadsheet Challenge", PC Lucid 3-D Tutorial Guide, Ch. 16, 1987, pp. 1-18. World, pp. 146-164. Jan. 1993. Seymour, "No doubt about it, 1992 was The Year of Usabil Microsoft Excel User's Guide, 1990, pp. 76–79. ity", PC Week, p. 65. Dec. 21, 1992. Birkholz, "Die Datenbank in der Tabellenkalkulation,' Proceedings: Advanced Computer Technology, Reliable Sys CHIP Zeitschrift fur Mikrocomputer-Technik, No. 3, Mar. tems and Applications, 5th Annual European Computer 1991, pp. 450-454. Cakmakov, D. et al., “A Multimedia Cognitive-Based Sys Conf., CompEuro '91, May 13, 1991, Italy, pp. 282-286. tem. Model,” Advanced Computer Technology, Reliable Systems and Applications, 5th Annual European Computer The R-File: An Efficient Access Structure for Proximity Conference, Bologna, May 13-16, 1991, pp. 282-286. Queries, Feb. 1990, pp. 372-379. U.S. Patent Dec. 31, 1996 Sheet 1 of 35 5,590,259 100 04
KEYBOARD
105
PONTING DEVICE 106 102 DISPLAY DEVICE
107 103 MAN MASS MEMORY STORAGE
108 I/O CONTROLLER PRINTING DEVICE 10
CENTRAL PROCESSOR 110 FIG. A
150 153
15 APPLICATION SOFTWARE OPERATING SYSTEM
USER FIG. B U.S. Patent Dec. 31, 1996 Sheet 2 of 35 5,590,259
“Janopºdun[XO!L_/ Z8|| (10ETBOLXEL) U.S. Patent Dec. 31, 1996 Sheet 3 of 35 5,590,259
FIFTER]E]]|??
[75]
0 09:2 U.S. Patent Dec. 31, 1996
U.S. Patent Dec. 31, 1996 Sheet 6 of 35 5,590,259 260a
22.222s22s2 EG
273
WZZZZZZZSZZYZWXGraphs/EIG
272C 273
: 259 secreasonserers.------...... eas...... a
------as a -tria......
a one a a a so wo a a suss was as saw imminimum
- a a as a - irrirrir.
u wo so use an are vasoa aaaass a a sy imminimum - immuim minum.
a as a C- rare ------""" NAVIGATIONVERTICAL
HORIZONAL NAVIGATION FIG. 3C U.S. Patent Dec. 31, 1996 Sheet 7 of 35 5,590,259
Ni ZZ - 5
%
FIG. 4D
3 EZZ-442 FIG. 4E U.S. Patent Dec. 31, 1996 Sheet 8 of 35 5,590,259
U.S. Patent Dec. 31, 1996 Sheet 9 Of 35 5,590,259
| U.S. Patent Dec. 31, 1996 Sheet 10 of 35 5,590,259
ABSOLUTEREFERENCE TO ROW 1
loan Amt $202,300. ... 3.90% $1.628. 8.50% $1556 8.00% $1,484
8PMT(B$1A7:12.3012)
Loan Amt $202,300 2 ww.aaoonoooooooooosevenuaeoe3.00% an aw wow$1,528. ouvosavsKaaaas I - sesssss 8.50% $1556
saawasavovira as sussuspsgogs seudoanaauaosuvuous vonov navnessessess reseaass
souvenessagee essess baada estaussia pauauaneocoenopoutsouasaaaaassassia
498
wana aaws assasswo sausa vu wu assanaae.
as assessssseauvassa Loan Amt $150,000
3.99%. 1,207. 32.As REFER U.S. Patent Dec. 31, 1996 Sheet 11 of 35 5,590,259
0792
ØZZZZZZZZZZZZZ$$ZZZZZZZ$7,33,2,5,7,9
U.S. Patent Dec. 31, 1996 Sheet 12 of 35 5,590,259
S as 8 Na?s... Roberta Alfred Jerry Hurtado Mel Grant gg"Geni
Betty Rogers Joyce lupinetti Tom duenen glow2 e Azz ETH
FIG. 4M U.S. Patent Dec. 31, 1996 Sheet 13 of 35 5,590,259
0ZG (SEIINEdOHdXOOGEION) NOIIVOITddV)(SHIHE?OHd 0?9 ELIZ?J?GH]
|
t------+ 009 U.S. Patent Dec. 31, 1996 Sheet 14 of 35 5,590,259 515
ress-Redraw Clock Dis international Startup x) None {x Panel {x Standard {x International
{> AA1...B:B2 Show Status Bar
FIG. 5B
525
Recalc Settings Zoom Factor
Palette {Automatic <>Natural Display { Manual {x Column-wise <> Background {x Row-wise
of iterations:
FIG. 5C U.S. Patent Dec. 31, 1996 Sheet 15 of 35 5,590,259
535
Protection Page Nanne Line Color Conditional Color Label Alignment Displayzeros Default Width BOrders Grid Lines
FIG. 5D
Active Block
Numeric Format {x Fixed Fort {x Scientific Shading <> Currency
Alignment {x Comma Line Drawing <> General Protection {X +/- {x Percent
Text Color {XDate Data Entry input {x Time Row Height {x Text Column width {x Hidden Reveal Hide {X User defined
FIG. 5E U.S. Patent Dec. 31, 1996 Sheet 16 of 35 5,590,259
Numeric Format 601 a {x Fixed Enter number of decimal FOnt <> Scientific places .. 5 Shading & Currency Alignment {x Comma Line Drawing {X General Protection {x+/- {x Percent Text Color {x Date Data Entry input {> Time Row Height {X Text Column Width {x Hidden Reveal Hide <> User defined
620
Numeric Format Point Size
System Shading Terminal Symbol
Alignment Line Drawing Protection Bold Text Color Italics Data Entry input Underline Row Heighty Strikeout Column Width
Reveal Hide
FIG. 6B U.S. Patent Dec. 31, 1996 Sheet 17 of 35 5,590,259
625 Active block
Numeric Format Foreground Color Background Color Fort Shading S8. Alignment ZZZE Line Drawing Frotection EIE ESID. Text Color
Data Entry input intensity Row Height 0% Column Width
Reveal Hide
FIG. 6C
630
Numeric Format Fort Shading Alignment ...... Line Drawing <>General{x Left Protection {x Right Text Color & Center Data Entry input Row Height Column Width Reveal'Hide
FIG. 6D U.S. Patent Dec. 31, 1996 Sheet 18 of 35 5,590,259
635
Numeric Format For No Change Shading Alignment Line Drawing Protection Text Color Data Entry input Row Height Column Width Reveal Hide
Active Block
Numeric Format Cell Protection Font Shading & Protect
Line Drawing Protection Text Color Data Entry input Row Height Column Width
Reveal'Hide
FIG. 6F U.S. Patent Dec. 31, 1996 Sheet 19 of 35 5,590,259 645
Active Block
Numeric Format Font Color Palette Shading S8. Alignment ZZZE Line Drawing EIDE Protection E.I. Text Color Data Entry input Row Height Column Width Reveal'Hide
FIG. 6G
650
Active Block Numeric Format Fort Shading Alignment Data in ult Constraints Line Drawing Protection Text Color {x Dates Only Data Entry input Row Height Column Width Reveal Hide U.S. Patent Dec. 31, 1996 Sheet 20 of 35 5,590,259
655
Numeric Format
Fort Row Height: Shading 2. Alignment O otions Line Drawing <>Set Height 8> Points Protection {: Reset Height {X Inches
ext Color {x Centimeters Data Entry input Row Height Column Width
Reveal'Hide to
FIG. 6
Active Block Numeric Format Column width: Extra Characters O-4: FOnt Shading Alignment Options Unit Line Drawing <>Set Width $) Characters Protection {X Reset width {x Inches Text Color {X Auto Width { Centimeters Data Entry input Row Height Column Width Reveal'Hide
FIG. 6. U.S. Patent Dec. 31, 1996 Sheet 21 of 35 5,590,259
665
Numeric Format Fort Shading Alignment Line Drawing Protection Text Color Data EntryInput Row Height Column Width Rewa'Hide U.S. Patent Dec. 31, 1996 Sheet 22 of 35 5,590,259
09/. (SBLIMBdOH []
001 (SELINEdOxidSIXW-A) U.S. Patent Dec. 31, 1996 Sheet 23 of 35 5,590,259
715 Graph Window
Grid size Aspect Ratio Grid size fratio to the area of window O. : I - E): Snap to grid
Graph Type agery Fosition 3D Wiew 3D Options Box Style Fill Color Bkg Color FHStyle Border Color Graph Button
FIG. 7C U.S. Patent Dec. 31, 1996 Sheet 24 of 35 5,590,259
735
Y-Axis Properties
Tick Options
Highs
Text Color
Shadow Color Lowo
Text Fort increment 2 Show units Text Style Automatic No. of minors 1 Major Grid Style
FIG. 7D
745 X-Axis Properties
X-Axis Series
Tick Options Select range. Text Color ntees: B3, D3 S. . . v.
Shadow Color Text Font Text Style Major GridStyle
FIG. 7E U.S. Patent Dec. 31, 1996 Sheet 25 of 35 5,590,259
755
Area fill Properties FH color Skg Color EHESS FH Style SSSSSSÉEIHEI Border Color Sea 22 s Border Style
765 Bar Series Properties
Series Options Bar Width Data series Entrees.B4. D4
FCOO Label series D Bkg Color Fit Style Border Color
Border Style {x Secondary
<> Default W FIG.7G U.S. Patent Dec. 31, 1996 Sheet 26 of 35 5,590,259
775 Bar Series Properties
Series Options
Bar Width Data series Entrees.B6.DB
Fill Color Label series Bkg Color Fill Style Border Color Border Style
< Secondary {- Area <> Default W
FIG. 7H U.S. Patent 5,590,259
TEEWT
G28
EWWN ETEWIES)Wc] U.S. Patent Dec. 31, 1996 Sheet 28 of 35 5,590,259
*HIRVLIBHHS EEHSETEWLI 998
=T?VIÐwg BIGWIHOV@
098 ZZZZZZZZZZZZZZZZZZZZZZZZZ$22,2% 5,590,259
|—||—||—| HVEABHLINE:EWOONIHVEM-HOO-)[XVI]
EKONEHEHEH U.S. Patent Dec. 31, 1996 Sheet 30 of 35 5,590,259
PARSE REFERENCE 901 LOOP AL TOKENS
902 903 AJA1 CHECK IF YES RETURN NOTEBOos NOTEBOOK NO 904
905 AJGROUP NAME:A1 CHECK IF YES RETURN GROUP NAME GROUP
NO O6 907 AJA:A1...Bf YES RETURN t PAGE NO 908 909 IAJAf..B1 YES RETURN RANGE NO 910 91 AJAf YES RETURN CELL
NO 912 913 YES RETURN PER PRECEDENCE
(C)NO RETURN
FIG. 9A U.S. Patent Dec. 31, 1996 Sheet 31 of 35 5,590,259
DROP EDT
92
922
924
WHILE MOVE MOUSE BUTTON DOWN & (DRAG) DRAW BLOCK
NO DROP BLOCK (BUTTONUP)
RETURN
FIG. 9B U.S. Patent Dec. 31, 1996 Sheet 32 of 35 5,590,259 940
94
942
943 944 ABSOLUTE ADDRESS ABSOLUTE ADDRESS
YES
ABSOLUTE ADDRESS RELATIVE ADDRESS
(BUT LABELAS ABSOLUTE FOR FUTURE) 946 RELATIVE ADDRESS RELATIVE ADDRESS 947 MOVE BLOCK
RETURN
FIG. 9C U.S. Patent Dec. 31, 1996 Sheet 33 of 35 5,590,259 1001
ABSTRACT CLASS
RESPONDER ABSTRACT CLASS
1004
FIG 10B U.S. Patent Dec. 31, 1996 Sheet 34 of 35 5,590,259
PROPERTY 1050 INSPECTION
1051 GET USER EVENT (RT MOUSE CLICK) 1052 IDENTIFY OBJECT CLICKED ON; RETURN VIEW OR SURROGATE FOR INSPECTION 1053
1054a ACCESS PROPERTY LIST FOR OBJECT BUIS"GEF866,DYNAMICIAUTOMATIC: (GETPROPERTY METHOD) RADIO BUTTONS) OR SIMPLE CHECKBOX 1054 1054b PANE LOAD PROPERTY PRE-BUILT PANES INTO DIALOG (COMPLEX) PANE 1054C 1055 MENU-BASED USER EVENT LOOP (PICK LIST) (PROPERTY INSPECTION AND SETTING BY USER) 1056
UPDATE OBJECTS PROPERTY LIST FOR CHANGED PROPERTIES (SETPROPERTY METHOD)
RETURN
FIG 10C U.S. Patent Dec. 31, 1996 Sheet 35 of 35 5,590,259
1070 SETPROPERTY
107 TRANSLATE PROP STR (IF NECESSARY) 1072 CASE OF: -- ÖTHERWISE< RETURN FIG. OD 5,590,259 1. 2 SYSTEMAND METHODS FOR IMPROVED numbers stored in spreadsheet cells. In this fashion, cell SPREADSHEET INTERFACE WITH references can serve as variables in an equation, thereby USER-FAMILIAR OBJECTS allowing precise mathematical relationships to be defined between cells. The structure and operation of a spreadsheet The present application is a continuation of U.S. appli program, including advanced functions such as functions cation No. 07/866,658, filed Apr. 8, 1992, now U.S. Pat. No. and macros, are documented in the technical, trade, and 5,416,895, issued May 16, 1995. patent literature. For an overview, see e.g., Cobb, S., Using Ouattro Pro 2, Borland-Osborne/McGraw-Hill, 1990, and COPYRIGHT NOTICE LeBlond, G. and Cobb, D., Using 1-2-3, Que Corp., 1985. O The disclosures of each of the foregoing references are A portion of the disclosure of this patent document hereby incorporated by reference. contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile Electronic spreadsheets offer many advantages over their reproduction by anyone of the patent document or the patent paper counterparts. For one, electronic spreadsheets are much larger (i.e., hold more information) than their paper disclosure as it appears in the Patent and Trademark Office 5 counterparts; electronic spreadsheets having thousands or patent file or records, but otherwise reserves all copyright even millions of cells are not uncommon. Spreadsheet rights whatsoever. programs also allow users to perform "what if' scenarios. BACKGROUND OF THE INVENTION After a set of mathematical relationships has been entered into a worksheet, the spread of information can be recalcu The present invention relates generally to the field of 20 lated using different sets of assumptions, with the results of information processing by digital computers and, more each recalculation appearing almost instantaneously. Per particularly, to the processing and presentation of informa forming this operation manually, with paper and pencil, tion by program applications, particularly electronic spread would require recalculating every relationship in the model sheets. with each change made. Before computers, numerical analyses, particularly finan 25 While electronic spreadsheets offer significant productiv cial ones, were usually prepared on an accountant's colum ity gains in the task of complex data modeling, none has nar pad or spreadsheet, with pencil and calculator in hand. been as intuitive to use as ordinary paper and pencil By organizing data into columns and rows, spreadsheets objects already familiar to the user. Instead, the user must afford the rapid assimilation of information by a reader. The master many complex and arbitrary operations. To find the task of preparing a spreadsheet on paper, however, is not 30 proper command for a task at hand, for example, the user quite so fast. Instead, the process tends to be very slow, as must hunt through a complex menuing system, with the each entry must be tediously calculated and entered into the desired choice often buried under several menus. Even spreadsheet. Since all calculations are the responsibility of simple tasks can pose a significant challenge to the user. To the preparer, manually prepared spreadsheets are also prone change the punctuation format of a number in one prior art to errors. Hence, preparation of spreadsheets by hand is 35 spreadsheet, for example, the user must traverse several slow, tedious, and unreliable. nodes of a menu tree, carefully selecting among cryptic With the advent of microcomputers, a solution was forth menu choices along the way. A mistake at any one of the coming in the form of "electronic spreadsheets.” Better nodes can lead to harsh consequences, including the loss of known simply as "spreadsheets,' these software programs valuable data. provide a computerized replacement for the traditional 40 Finding this approach to be unworkable, many users financial modeling tools: the accountant's columnar pad, memorize frequently-needed commands instead. To accom pencil, and calculator. In some regards, spreadsheet pro plish the foregoing task, for example, the user would memo grams are to those tools what wordprocessors are to type rize the command: Worksheet Global Default Other Inter writers. Spreadsheets offer dramatic improvements in ease national. As one can only memorize just so many arbitrary of creating, editing, and using financial models. 45 commands, however, the user typically masters only a very A typical spreadsheet program configures the memory of small Subset of available commands and features. And a computer to resemble the column/row or grid format of an without constant practice, these commands tend to be accountant's columnar pad, thus providing a visible calcu quickly forgotten. Moreover, many useful and needed com lator for a user. Because this "pad' exists dynamically in the 50 mands are sufficiently hidden in layers of menus that they computer's memory, however, it differs from paper pads in are never discovered by the user. All told, the non-intuitive several important ways. Locations in the electronic spread interfaces of prior art spreadsheets have led to steep learning sheet, for example, must be communicated to the computer curves for users. Even after mastering a particular spread in a format which it can understand. A common scheme for sheet interface, the user typically only knows a fraction of accomplishing this is to assign a number to each row in a 55 available commands and features, most of which are easily spreadsheet, and a letter to each column. To reference a forgotten. location at column A and row 1 (i.e., the upper-lefthand Even with advances in computer and software technology, corner), for example, the user types in "A1'. In this manner, electronic spreadsheets have not necessarily become easier the spreadsheet defines an addressable storage location or to use. Instead, technological advances have been largely "cell' at each intersection of a row with a column. 60 employed to build more complex functions and modeling Data entry into an electronic spreadsheet occurs in much features into spreadsheets, often with more complicated the same manner that information would be entered on an menu trees, or worse yet, a staggering array of icons which accountant's pad. After a screen cursor is positioned at a leave the user even more bewildered. Thus, while prior art desired location, the user can enter alphanumeric informa spreadsheets have continued to increase in functionality, tion. Besides holding text and numeric information, how 65 they have also greatly increased in complexity for the user. ever, spreadsheet cells can store special instructions or Three dimensionality is one such example. Three-dimen "formulas' specifying calculations to be performed on the sional spreadsheets allow the user to create a worksheet 5,590,259 3 4 having cells arranged in a 3-D grid. In this manner, the user accordance with the present invention, includes receiving a can manipulate multi-dimensional ranges, i.e., Solid blocks request from the user for inspection of an object, accessing of cells. This feature has distinct advantages. For example, properties for the object; and displaying the properties to the the user can build a worksheet consisting of multiple two user. From the displayed properties, the user may alter the dimensional spreads, define 3-D ranges that span these characteristics of the object, as desired. spreads, and copy a range of rows and columns into each of BRIEF DESCRIPTION OF THE DRAWINGS many 2-D spreads at once. This feature eases difficult choirs, such as consolidation of multiple spreads. FIG. 1A is a block diagram of a computer system in which Despite its advantages, three-dimensionality, as presently the present invention may be embodied. implemented, is an advanced feature beyond the grasp of 10 FIG. 1B is a block diagram of a software system of the many spreadsheet users. This is not a necessary result of a present invention, which includes operating System, appli three-dimensional model per se but, instead, has resulted cation software, and user interface components. from poor implementations of the modcl in prior art spread FIG. 1C is bitmap screen shots illustrating the basic sheet programs. One popular implementation of the model architecture and functionality of a graphical user interface in in the prior art, for example, requires the user to manipulate 15 which the present invention may be embodied. each additional spread of a three-dimensional spreadsheet as FIG. 2A is a screen bitmap illustrating a spreadsheet a separate window in a graphical windowing environment. notebook of the present invention. This approach is far from intuitive, however. In particular, FIG. 2B is a bitmap of a tool bar component of the this approach requires the user to master actions which have spreadsheet of the present invention. no counterpart in everyday activities. While three-dimen 20 sional spreadsheets provide additional functionality, they FIG. 2C is a screen bitmap illustrating a notebook window serve to illustrate how non-intuitive implementations of new from the spreadsheet notebook of the present invention. technology greatly add to the complexity of the user inter FIGS. 2D-E are bitmaps illustrating page identifiers for face. rapidly accessing and manipulating individual pages of the What is needed is application software which maintains a 25 notebook of the present invention. highly intuitive interface. Moreover, the application should FIGS. 3A-C illustrate navigation (i.e., access of desired implement advanced features, such as three dimensionality, information) in the spreadsheet notebook of the present by employing interface objects which are familiar to the invention. user. In this manner, the user will not have to master an FIGS. 4A-E are screen bitmaps illustrating the selection elaborate and/or awkward environment but, instead, may 30 of information cells in the spreadsheet notebook of the rely upon his or her own common fund of knowledge. The present invention. present invention fulfills this and other needs. FIG. 4F is a screen bitmap illustrating the operation of grouping one or more desired pages in the spreadsheet SUMMARY OF THE INVENTION 35 notebook of the present invention. FIG. 4G is a screen bitmap illustrating drag-and-drop Application software, such as electronic spreadsheets, have found wide application in the processing and presen editing in the spreadsheet notebook of the present invention. tation of information. Despite their computational power, FIGS. 4H-J are a series of screen bitmaps illustrating the however, these programs require users to master complex model copy method of the present invention. interfaces, adopting abstract representation models which 40 FIG. 4K is a set of bitmaps illustrating the operation of are beyond the grasp of ordinary users. As a result, much of moving and copying a notebook page. the computational power of these applications goes un FIGS. 4L-M are screen bitmaps illustrating the presen utilized by end users. tation of information in a notebook of the present invention. The present invention, in contrast, provides system and FIG. 5A is a screen bitmap illustrating exemplary objects methods having a highly intuitive interface for users. More 45 of the spreadsheet notebook of the present invention. particularly, the present invention provides interface objects FIGS. 5B-E are bitmaps illustrating property inspectors which are familiar to the user. In an exemplary embodiment of the present invention, for the objects of FIG. 5A. of the present invention, an electronic spreadsheet system FIGS. 6A-K are bitmaps illustrating different states (and includes a notebook interface having a plurality of notebook 50 accompanying panes) for the property inspector of FIG. 5E, pages, each of which contains a spread of information cells, each state depending on a particular property of the object or other desired page type (e.g., Graphs page). being inspected. Methods are provided for rapidly accessing and process FIG. 7A is a screen bitmap illustrating a graph window of ing information on the different pages, including, for the present invention, with different graph objects available example, displaying a plurality of page identifiers for select 55 for property inspection. ing individual pages. Additional methods are provided for editing cells and blocks of cells. In this fashion, the spread FIGS. 7B-H are bitmaps illustrating exemplary property sheet notebook of the present invention provides a conve inspectors of the present invention for the graph objects of nient means for organizing and presenting information. FG, 7A, Moreover, the spreadsheet notebook of the present invention 60 FIG. 8A is a block diagram illustrating the structure and readily accommodates complex data (e.g., consolidation operation of a spreadsheet notebook of the present inven across multiple spreads); yet, at the same time provides the tion. user with a highly intuitive interface, one which employs FIGS. 8A-C illustrate the correspondence between a page interface objects which are familiar to the user. table data structure and pages which are displayed on the The present invention also includes system and methods 65 screen to the user. for conveniently inspecting and setting the properties of FIGS. 8D-F illustrate the referencing of information in object. A method for accessing an objects property, in the spreadsheet notebook of the present invention. 5,590,259 5 6 FIG. 9A is a flowchart illustrating a method of the present Microsoft Windows environment. The present invention, invention for interpreting information references. however, is not limited to any particular application or any FIG.9B is a flowchart illustrating a method of the present particular environment. Instead, those skilled in the art will find that the system and methods of the present invention invention for drag and drop editing. may be advantageously applied to a variety of system and FIG.9C is a flowchart illustrating a method of the present application Software, including database management sys invention for model copying. tems, wordprocessors, and the like. Moreover, the present FIG. 10A is a block diagram illustrating a system class invention may be embodied on a variety of different plat hierarchy of the present invention, which is employed for forms, including Macintosh, UNIX, NextStep, and the like. property inspection. 10 Therefore, the description of the exemplary embodiments FIG. 10B is a block diagram illustrating the correspon which follows is for purposes of illustration and not limi dence between a parent object and a child object, and their tation. respective property lists. Referring now to FIG. 1C, the system 100 includes a FIG. 10C is a flowchart illustrating a method for inspect windowing interface or workspace 160. Window 160 is a ing and setting properties of objects, in accordance with the 15 rectangular, graphical user interface (GUI) for display on present invention. screen 106; additional windowing elements may be dis FIG. 10D is a flowchart illustrating a set property method played in various sizes and formats (e.g., tiled or cascaded), of the present invention (substep from the method of FIG. as desired. At the top of window 160 is a menu bar 170 with 10C). a plurality of user-command choices, each of which may 20 invoke additional submenus and software tools for use with application objects. Window 160 includes a client area 180 DETALED DESCRIPTION OF A PREFERRED for displaying and manipulating screen objects, such as EMBODIMENT graphic object 181 and text object 182. In essence, the client System Hardware area is a workspace or viewport for the user to interact with 25 data objects which reside within the computer system 100. As shown in FIG. 1A, the present invention may be Windowing interface 160 includes a screen cursor or embodied on a computer system such as the system 100, pointer 185 for selecting and otherwise invoking screen which comprises a central processor 101, a main memory objects of interest. In response to user movement signals 102, an input/output controller 103, a keyboard 104, a from the pointing device 105, the cursor 185 floats (i.e., pointing device 105 (e.g., mouse, track ball, pen device, or 30 freely moves) across the screen 106 to a desired screen the like), a display device 106, and a mass storage 107 (e.g., location. During or after cursor movement, the user may hard disk). Additional input/output devices, such as a print generate user-event signals (e.g., mouse button "clicks' and ing device 108, may be included in the system 100 as "drags") for selecting and manipulating objects, as is known desired. As illustrated, the various components of the system in the art. For example, Window 160 may be closed, resized, 100 communicate through a system bus 110 or similar 35 or scrolled by "clicking' (selecting) screen components 172, architecture. In a preferred embodiment, the computer sys 174/5, and 177/8, respectively. tem 100 includes an IBM-compatible personal computer, In a preferred embodiment, screen cursor 185 is con which is available from several vendors (including IBM of trolled with a mouse device. Single-button, double-button, Armonk, N.Y.). or triple-button mouse devices are available from a variety Illustrated in FIG. 1B, a computer software system 150 is 40 of vendors, including Apple Computers of Cupertino, Calif., provided for directing the operation of the computer system Microsoft Corporation of Redmond, Wash., and Logitech 100. Software system 150, which is stored in system Corporation of Fremont, Calif., respectively. More prefer memory 102 and on disk memory 107, includes a kernel or ably, screen cursor control device 105 is a two-button mouse operating system 151 and a shell or interface 153. One or device, including both right and left "mouse buttons.” Pro more application programs, such as application software 45 gramming techniques and operations for mouse devices are 152, may be "loaded' (i.e., transferred from storage 107 into well documented in the programming and hardware litera memory 102) for execution by the system 100. The system ture; see e.g., Microsoft Mouse Programmer's Reference, 100 receives user commands and data through user interface Microsoft Press, 1989, the disclosure of which is hereby 153; these inputs may then be acted upon by the system 100 incorporated by reference. in accordance with instructions from operating module 151 50 B. Spreadsheet Notebooks and/or application module 152. The interface 153, which is In contrast to conventional applications, even those opera preferably a graphical user interface (GUI), also serves to tive in a windowing environment, the present invention display results, whereupon the user may supply additional includes user-familiar objects, i.e., paradigms of real-world inputs or terminate the session. In a preferred embodiment, objects which the user already knows how to use. In an operating system 151 is MS-DOS, and interface 153 is 55 exemplary embodiment, system 100 includes a spreadsheet Microsoft(E) Windows; both are available from Microsoft notebook interface, with such user-familiar objects as pages Corporation of Redmond, Wash. Application module 152, and tabs. In this manner, complexities of the system are on the other hand, includes a spreadsheet notebook of the hidden under ordinary, everyday object metaphors. By draw present invention (as described in further detail hereinbe ing upon skills which the user has already mastered, the low). 60 present invention provides a highly intuitive interface-one in which advanced features (e.g., three-dimensionality) are Interface: User-familiar Objects easily learned. A. Introduction 1. General interface The following description will focus on the presently 65 Shown in FIG. 2A, a spreadsheet notebook interface of preferred embodiments of the present invention, which are the present invention will now be described. The spreadsheet cmbodied in spreadsheet applications operative in the notebook or workbook of the present invention includes a 5,590,259 7 8 notebook workspace 200 for receiving, processing, and Each spreadsheet page of a notebook includes a 2-D presenting information, including alphanumeric as well as spread. For example, spreadsheet page 251 includes a grid in graphic information. Notebook workspace 200 includes a row and column format, such as row 252 (row 3) and column menu bar 210, a tool bar 220, a current cell indicator 230, an 255 (col. F). At each row/column intersection, a box or cell input line 231, a status line 240, and a notebook window (e.g., cell C4) is provided for entering, processing, and 250. The menu bar 210 displays and invokes, in response to displaying information in a conventional manner. Each cell user inputs, a main level of user commands. Menu 210 also is addressable, with a selector 253 being provided for invokes additional pulldown menus, as is known in win dowing applications. Input line 231 accepts user commands indicating a currently active one (i.e., the cell that is cur and information for the entry and editing of cell contents, rently selected). which may include data, formulas, macros, and the like. 10 As shown in FIGS. 2C-E, individual notebook pages are Indicator 230 displays an address for the current cursor (i.e., identified by page identifiers 260, preferably located along active cell) position. At the status line 240, system 100 one edge of the notebook 250. In a preferred embodiment, displays information about the current state of the work each page identifier is in the form of a tab member (e.g., book; for example, a "READY" indicator means that the members 261a, 262a, 263a) situated along a bottom edge of system is ready for the user to select another task to be 15 the notebook. Each tab member may include representative performed. indicia, such as textual or graphic labels, including user The tool bar 220, shown in further detail in FIG. 2B, Selected titles representing the contents of a corresponding Comprises a row or palette of tools which provide a quick page. In FIG. 2D, the tab members 260 are set to their way for the user to choose commonly-used menu commands respective default names. For example, the first three tab or properties. In an exemplary embodiment, tool bar 220 20 members (members 261a, 262a, 263a) are respectively set includes cut, copy, and paste buttons 221, a power button to A, B, and C. In a preferred embodiment, however, tab tool 222, a graph tool 223, alignment buttons 224, a style list members are typically given descriptive names provided by 225, font buttons 226, insert/delete buttons 227, a fit button the user. As shown in FIG.2E, for example, the first three tab 228, and action buttons 229. Buttons 221 cut, copy and paste members have now been set to "Contents' (tab member data and objects to and from Windows clipboard. The same 25 261b), "Summary” (tab member 262b), and “Jan' (tab actions are also available as corresponding commands in the Edit menu (available from menu bar 210). Tool 220 creates member 263b). In a similar manner, the remaining tabs are "powerbuttons' which allow a user to run spreadsheet set to Subsequent months of the year. In this manner, the user macros; in a specific embodiment, powerbuttons appear as associates the page identifiers with familiar tabs from an floating objects in a layer above spreadsheet cells. In a ordinary paper notebook. Thus, the user already knows how similar fashion, the graph tool 223 creates floating graphs 30 to select a page or spread of interest: simply select the tab that appear above spreadsheet cells. corresponding to the page (as one would do when selecting Other tools are available for formatting cells. Alignment a page from a paper notebook). buttons 224 place cell entries flush left, centered, or flush In addition to aiding in the selection of an appropriate right, as desired. The style list 225 specifies the style for the page of information, the user-customizable page identifiers active block and may be selected from a plurality of pre 35 aid in the entry of spreadsheet formulas. For example, when defined styles (e.g., normal, currency, fixed, percent, and the entering a formula referring to cells on another page, the like). The font buttons 226 effect font changes, including user may simply use the descriptive page name in the toggling bold and italic fonts, as well as increasing and formula itself (as described hereinbelow), thus making it decreasing font (point) size. The insert and delete buttons easier for the user to understand the relationship of the 227 permit the user to insert or delete blocks, rows, columns, 40 cell(s) or information being referenced. and pages (described in further detail hereinbelow), as 3. Navigation in a notebook desired. The fit button 228 allows the user to quickly tailor Referring now to FIGS. 3A-C, movement (i.e., location a column's width to match its widest cell entry. Action of desired information cells) within a spreadsheet notebook buttons 229 provide automated spreadsheet operations, 45 of the present invention is illustrated. To move to different including sorting and summing operations. For example, a pages in the notebook, the user simply selects the corre Sort button, when invoked, performs a sort on data in a sponding tab from tabs 260. To move to Page B, for currently active block. A sum button, on the other hand, example, the user selects (e.g., with keyboard 104 or point totals the values in any block of cells by generating an ing device 105) tab 262a; similarly, Page C is reached by GSUM function, just outside a selected range of blocks. 50 selecting tab 263a. Continuing the example, the user may 2. Notebook and pages return to Page A by selecting tab 261a. Thus instead of Notebook 250, shown in further detail in FIG. 2C, pro finding information by scrolling different parts of a large vides an interface for entering and displaying information of Spreadsheet, or by invoking multiple windows of a conven interest. The notebook 250 includes a plurality of spread tional three-dimensional spreadsheet, the present invention sheet pages, such as page 251 (Page A). Notebook 250 also 55 allows the user to simply and conveniently "flip through" includes a "Graphs page' for readily accessing all the graphs several pages of the notebook to rapidly locate information created for the notebook. Each page may include conven of interest. tional windowing features and operations, such as moving, Notebook 250 also includes supplemental tools for navi resizing, and deleting. In a preferred embodiment, the note gation between pages, including a tab scroller 271 and a book 250 includes 256 spreadsheet pages and one Graphs 60 fast-forward button 272. The tab scroller (shown in two page, all of which are saved as a single disk file on the mass different states: 271a and 271b) permits access to identifiers storage 107. In accordance with the present invention, for pages which are not currently visible on the screen workspace 200 may display one or more notebooks, each device 106. If a desired identifier or tab is not currently in sized and positioned (e.g., tiled, overlaping, and the like) view, the user simply activates the tab scroller 271 to reveal according to user-specified constraints. When a single note 65 additional tabs. The fast-forward button 272, on the other book is used, notebook 250 will typically occupy a majority hand, provides immediate access to the last pages of the of workspace 200. notebook, including the Graphs page. As shown in FIG. 3A 5,590,259 9 10 and B, after invoking the fast-forward button 272a, the page With group mode active, an activity in a page which is a identifiers for the last pages (e.g., tabs 261c, 262c, 263c, member of a group can also affect similarly situated cells of 265) are accessible. To switch back to the previously active the other pages of the group. For example, information spreadsheet page, the user may select or click the fast entered in a cell on one page of the group can also propagate forward button 272c again. For navigation within a spread to the same (relative) cell in other pages of the group; data sheet page, horizontal and vertical scrollbars 278, 259 are entry may be "drilled” (propagated) to other group pages by provided; general features and operations of basic scroller or concluding data entry, for example, with a "Ctrl-Enter' sliders are described in Windows user and programming keystroke (instead of a “Enter' command). For instance, an literature, including Microsoft's Windows Software Devel entry into cell C4 of Page. A may also conveniently and opment Kit. O automatically appearin cell C4 of pages B, C, D, E, F, G, H, I, J, and K, for an A-K grouping. Similarly, block or 4. Selections and aggregate operations within a notebook aggregate operations may propagate across member pages. The selection of desired information cells in the notebook For example, a block operation (e.g., Block Fill) for cells A1 of the present invention is now described. For selecting a to C4 in Page A in an A-D grouping would also operate (in plurality of information cells, both 2-D blocks (e.g., block 15 this case, fill information) in the same cells (i.e., from A1 to 254 of FIG. 2C) and 3-D blocks of cells may be defined. A C4) for Page B to Page D. 2-D block is a rectangular group of one or more cells and is identified by block coordinates, such as the cell addresses of Employing the user-specified page identifiers of the its upper-left and bottom-right corners. Similarly, a 3-D present invention, a simple nomenclature is available for block represents a solid block (e.g., cube) of cells. specifying these solid blocks of information. In a preferred 20 embodiment, a solid block is specified by: A 2-D block is specified by selecting, with mouse 105 or keyboard 104, opposing corners. In FIG. 2C, for example, < The property object, in turn, includes a type ID for the user indicates that he or she desires property inspection identifying the property and also includes a pointer to a for an object. In a preferred method of the invention, the user dialog for the property. An property object may be instan will right-mouse click on the object of interest (as set forth tiated from the following exemplary C-H class: 60 hereinabove). To inspect a spreadsheet cell, for example, the user would position the mouse cursor over the cell and click class EXPORT Property the right mouse button. In this instance, the notebook which contains that cell will receive (i.e., will be the recipient of) public: a right-mouse button down message. The event will be static DWORD dwPropFrr; 65 static char far conversionBuffer MAXPROPSTR, processed by routing the message to a RightMouseDown method. 5,590,259 21 22 In step 1052, the object which the user clicked on is Referring back to FIG. 7B, for example, inspector 715 identified by the RightMouseDown method. Specifically, the includes a snap-to-grid property. Instead of loading a pre method invokes a RouteMouseBvent method which returns constructed pane for this property, the method of the present the current view object (i.e., the object which the user has invention dynamically constructs an appropriate pane (in clicked on). This is accomplished as follows. Every view this case, a simple check box), as shown in substep 1054a. object contains a StartInspect method which returns an An automatic list, on the other hand, is typically a simple actual object for inspection. The object which appears on the group box (i.e., one having a plurality of radio buttons), screen to the user (i.e., view object) is not necessarily the which is preferably constructed dynamically, as shown by object which will be inspected. For example, it would be the inspector window 650 of FIG. 6H. In either case, the computationally too expensive to have each cell of a spread 10 method may build appropriate inspector dialog components sheet be its own object. Instead, the present invention on-the-fly by simply examining a particular property and cmbraces the notion of surrogate or imaginary objects which discerning its possible attributes. In a similar manner, "pick” may be inspected (using the properties of the screen or view lists of properties may be constructed and displayed, as object selected). In most instances, the StartInspect method shown in substep 1054c. A property pick list serves as an will return an object for inspection which is the same as the 15 index to other property lists or other functions, as desired. view object. In those instances where it is not feasible to By dynamically building inspectors for simpler properties, inspect an object which the user perceives on a screen, the method conserves system resources. Construction of the inspector window is completed by however, the method returns a surrogate object whose inserting dialog controls (e.g., “OK”, “CANCEL', and properties assume the attributes of the screen object. "HELP”) for operating the dialog. In addition, an example An additional example illustrates this point. When 20 window is displayed for indicating various changes to the inspecting a block of cells, for example, StartInspect returns properties of an object. This is accomplished by sending a a current block object which is a surrogate object, i.e., it does message to the inspected object setting forth the current not have a visible expression on the screen. Instead, it is a properties in the dialog, the inspected object returns an substitute object which assumes the characteristics neces example or sample object which may then be displayed in sary to allow inspection of the screen object of interest. In 25 the window. After changing a property, the dialog tab or this manner, it functions as a surrogate for the object which button (e.g., tab 601a of FIG. 6A) corresponding to that the user observes on the screen. If desired, objects may also property is updated (e.g., different font or screen color) for be blocked from inspection at this step (e.g., by setting indicating that a change has been entered. flags); in which case, the method terminates. At the conclu After constructing the property inspector dialog or win sion of step 1052, the object of interest, either actual or 30 dow, at step 1055 the method enters a user event loop where surrogate, is ready for inspection. the user inspects and sets various properties of the object by Next, the user interface for inspection is built by a DoUI accessing the property (through the screen button or tab) and method of the present invention. The method proceeds as setting a new attribute. At the conclusion of the user event follows. The first property record for the object is accessed (e.g., by selecting "OK" or "CANCEL'), the user event is in step 1053. Preferably, DoUI is a virtually defined method, 35 terminated. At step 1056, the property list for the object being with each object (class) designed to include method steps for inspected is updated for any changes which occurred to the accessing the property reword according to that object's own properties during the user event (of step 1055). This is particularities. The remaining property records for the object accomplished by calling a setProperty method, which con are also located (e.g., by traversing a list of records). ceptually loops through each pane which has changed and At step 1054, the dialog panes for each property are 40 loaded (e.g., into memory 102, if not already present) for use updates the property list, accordingly. By way of illustration, by a compound dialog box. As previously described, the the setProperty method may be defined as: dialog associated with each property is accessible from the property record (by a pointer to the dialog). At this point, an virtual BOOL set Property( LPSTR lipPropStr, LPSTR lpValueStr, empty property inspection window is displayed. Into the 45 PROPTYPE pt = 0 ); property inspection window, a corresponding pane for each property is loaded (substep 1054b), thus creating a display The method receives the name of a property, either passed hierarchy. Using a getProperty method, each property is as a text string (lppropStr) or as a handle (pt), and a value initially set to the attribute(s) contained in the retrieved for that property, typically passed as a text string (lpVal property record; the getProperty method operates essentially 50 ueStr). the reverse of a setProperty method, which is described in Referring now to FIG. 10D, the general steps of a set detail hereinbelow. An associated screen button or label is Property method 1070 are illustrated. In step 1071, the provided for rapidly accessing a desired pane in the inspec property text string is translated; alternatively, the property is referenced directly by passing a handle (i.e., integer or tor window, in much the same fashion as one accesses pages word value). At steps 1072-1073, the property is updated for in a notebook with tabs. In this manner, a property inspector 55 the property value passed (e.g., by a CASE statement is built from a dynamic list of properties (as opposed to a construct). If the property is not acted upon, it may be passed static list of properties which is determined beforehand), up the object's inheritance chain for action by an ancestor each of which may be rapidly accessed by the user. object, at step 1074. In this fashion, the values collected While the property list loaded into an inspector window from the various property panes are used by the method to for each object is dynamically constructed, the panes sup 60 set the properties within the object. porting each property may be pre-built. For example, the While the foregoing outlines the general steps or frame pane supporting a color palette, since it is complex in design, work for setProperty, the method is in fact defined as a will be built in advance. virtual method. Thus, each class of objects may assume However, the method of the present invention may responsibility for setting its own properties. For an Annotate dynamically build individual panes as well. Candidates for 65 object (i.e., screen objects found in Graph windows), for dynamic pane building include simple properties, especially example, an exemplary setProperty method may be con those which may have only a Boolean or yes/no value. structed as follows: 5,590,259 23 24 BOOL Annotate:setProperty ( LPSTR lpPropStr, LPSTR lpValueStr, PROPTYPE pt) { WORD w; if ((w = infopropIndex (lpPropStr, pt)) < annoEndProps) { if (info.ppFrops w.getType() > prop Compound) switch (w) { case annoFrame: getFrame (GlobalFrameProp.x, GlobalFrancPropy, GlobalFrameProp.w, GlobalFrameProp.h); break, if ((info.ppProps (w.getProp())->stringToValue (lpValueStr, pt)) { BOOL f = TRUE; switch (w) { case annoFrame: setFrame (GlobalFrameProp.x, GlobalFramePropy, GlobalFrameProp.w, GlobalFrameProp.h); break; case annoHidden: if (Global YesNoProp.index) hide (TRUE); else show (TRUE); break; case annoShow: if (Global YesNoProp.index) show (TRUE); else hide (TRUE); break; case annold; ot. Dialog) f := ((DialView *)pCW->getContentView())->setIdx (this, GlobalWordProp.w); else idx = GlobalWordProp.w; break, case annoAttach: flags.nochild = Global YesNoProp.index; break; case annoPosition: *(WORD *)&flags = (*(WORD *)&flags & -(vfPOSITION } wifLEFTREL wfTOPREL wfrCSHTREL wife)TTOMREL vfTOPTYPE vfRIGHTTYPE)); GlobalPositionProp. flags; flags.bottomType = flags.topType; flags.leftType = flags.rightType; break, } if (f) callConnection (lpFropStr, lpValucStr, pt); return f; else return FALSE, else return Tracker::setProperty (lpPropStr, lpValueStr, pt); As shown, the override method processes properties specific Alternatively, the user may undertake other activities, as for Annotate (e.g., change frame, ID, position, and the like). desired. In the event that a property is not identified, the property is 60 passed up the inheritance chain for appropriate processing In parent application No. 07/866,658, now U.S. Pat. No. (by a parent's setProperty method). In this manner, an 5,416,895, is a microfiche Appendix A containing CH individual object (e.g., an Annotate object) in the system is source code listings, which provide a description of the designed to know how to get (getProperty) and set (setProp invention suitable for use in a general purpose digital erty) its own properties. 65 computer system, such as an IBM-compatible personal After the update of step 1056, the method 1050 concludes. computer. A suitable compiler for compiling and linking At this point, the system is ready for another inspection. CH code is available from Borland International. 5,590,259 25 26 While the invention is described in some detail with by said system in response to changing said at least one specific reference to a single preferred embodiment and user-settable identifying character for the spreadsheet page certain alternatives, there is no intent to limit the invention identifier of said first spreadsheet page to a user-supplied to that particular embodiment or those specific alternatives. page name label, of changing the page identifier for the cell For example, the property inspection of the present inven reference of said particular formula to said user-supplied tion has been illustrated with mouse devices. Those skilled page name label. in the art, however, will appreciate that other input devices, 7. The method of claim 1, wherein said formula stores including trackballs, joysticks, light pens, and the like, may said cell reference to the cell on said different spreadsheet be employed. Moreover, the present invention may be page with a general format of: advantageously implemented in a variety of U platforms other than Windows, including Macintosh, X-Windows, 10