DE602004003139T2 - System und verfahren für eine datentabelle zur verwaltung von einfügeoperationen in rekursiven skalierbaren vorlageninstanzen - Google Patents

System und verfahren für eine datentabelle zur verwaltung von einfügeoperationen in rekursiven skalierbaren vorlageninstanzen Download PDF

Info

Publication number
DE602004003139T2
DE602004003139T2 DE602004003139T DE602004003139T DE602004003139T2 DE 602004003139 T2 DE602004003139 T2 DE 602004003139T2 DE 602004003139 T DE602004003139 T DE 602004003139T DE 602004003139 T DE602004003139 T DE 602004003139T DE 602004003139 T2 DE602004003139 T2 DE 602004003139T2
Authority
DE
Germany
Prior art keywords
recursive
der
instance
die
scalable template
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE602004003139T
Other languages
English (en)
Other versions
DE602004003139D1 (de
Inventor
Jean-Jacques Aureglia
Frederic Bauchot
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE602004003139D1 publication Critical patent/DE602004003139D1/de
Application granted granted Critical
Publication of DE602004003139T2 publication Critical patent/DE602004003139T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Control Of Heat Treatment Processes (AREA)
  • Document Processing Apparatus (AREA)

Description

  • Technisches Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft das Gebiet der Verarbeitung von Daten mittels digitaler Rechner und insbesondere ein Verfahren und ein System in einer Datentabelle, vorzugsweise einem elektronischen Arbeitsblatt, zur Verwaltung von Einfügeoperationen in rekursiven skalierbaren Vorlageninstanzen.
  • Stand der Technik
  • Ein wesentlicher Nutzen von elektronischen Arbeitsblättern besteht darin, Daten in Spalten und Zeilen zu gliedern und umständliche Berechnungen gleichzeitig zu automatisieren. Ein typisches, alltägliches und nützliches Beispiel für eine solche Gruppe von Daten, die in Spalten und Zeilen gegliedert sind, ist ein Bereich von Zellen. Selbst wenn man einen Bereich von Zellen in Tabellenkalkulationsumgebungen formal und streng definiert, ist er ausreichend flexibel, so dass Daten entweder in einen einzelnen Zellenbereich oder in eine aus mehreren Zellenbereichen bestehende Gruppe aufgenommen werden können. Zellenbereiche sind daher recht nützliche Objekte. Ein Zellenbereich kann als eine ganze Dateneinheit (entity) festgelegt und verarbeitet werden. Er kann zum Beispiel von einer Stelle an eine andere Stelle in dem Arbeitsblatt oder aus einer Arbeitsblattdatei in eine andere Arbeitsblattdatei kopiert werden. Zellenbereiche werden in Anwendungen, die auf dem Gebiet der Tabellenkalkulation entwickelt werden, in großem Umfang verwendet. Meistens werden die Zellenbereiche einer bestimmten Struktur entsprechend angeordnet und werden so zu strukturierten Zellenbereichen. Der Inhalt einer jeden Zelle wird in einem Element festgelegt, wobei ein Element als eine Zeile eines strukturierten Zellenbereichs definiert ist, und anschließend wird dieselbe Art von Element mit einer bestimmten Häufigkeit wiederholt, um eine veränderliche Anzahl von Informationsteilen zu speichern/zu verarbeiten. Meistens werden mehrere Instanzen von ähnlich strukturierten Zellenbereichen verwendet. In dem aktuellen Kontext, in dem eigentlich kein anderes Werkzeug zur Verfügung steht, werden Instanzen von solch ähnlich strukturierten Zellenbereichen häufig mittels der Operationen "Ausschneiden/kopieren und einfügen" erzeugt. Um die wachsenden Datenmengen auf hohem Niveau verständlich zu halten, muss der Mensch diese Daten ordnen beziehungsweise strukturieren. Dabei wird häufig das hierarchische Modell verwendet, weil es verschachtelte Strukturen zulässt. Ein typisches und bekanntes Beispiel für eine solche hierarchische Struktur ist der Verzeichnisbaum von Rechner-Betriebssystemen wie zum Beispiel DOS oder Microsoft Windows. Das Stammverzeichnis kann Dateien und/oder mehrere Verzeichnisse enthalten, die selbst Dateien und/oder mehrere Verzeichnisse enthalten können, welche wiederum selbst Dateien und/oder mehrere Verzeichnisse enthalten können usw. Rekursivität hilft bei der Strukturierung der Daten und trägt dazu bei, die Daten verständlich zu halten. Dieses Erfordernis der Rekursivität gilt auch für strukturierte Bereiche von Zellen in Tabellenkalkulationsumgebungen. Wenn mehrere Instanzen von strukturierten Bereichen von Zellen festgelegt und in einer Datei eines Tabellenkalkulationsprogramms verwendet werden, werden sie oftmals selbst nach einer ganz bestimmten Anordnung mit Überstrukturen oder einer "Anordnung von strukturierten Zellenbereichen" ("array of structured ranges of cells") strukturiert, die aus einer Datei in andere Dateien eines Tabellenkalkulationsprogramms oder sogar innerhalb derselben Datei eines Tabellenkalkulationsprogramms kopiert werden kann. Innerhalb einer solchen Anordnung von strukturierten Zellenbereichen findet man gewöhnlich mehrere strukturierte Zellenbereiche, die dieselbe Zwischen-Überstruktur übernehmen, und auch einige andere strukturierte Zellenbereiche, die andere Zwischen-Überstrukturen übernehmen. Die Anordnung der strukturierten Zellenbereiche kann dann als eine Gruppe von zusammengefassten Zwischen-Überstrukturen von strukturierten Zellenbereichen betrachtet werden. In dem aktuellen Kontext von herkömmlichen Tabellenkalkulationsprogrammen werden Instanzen von solchen Anordnungen von strukturierten Zellenbereichen häufig mittels der Operationen "Ausschneiden/kopieren und einfügen" erzeugt.
  • Das Erzeugen einer neuen Instanz eines strukturierten Zellenbereichs ist schwierig und umständlich, insbesondere, weil ein herkömmlicher Zellenbereich starken Einschränkungen unterliegt:
    • • (i) Informationen über die Struktur (wie beispielsweise die Anzahl der Spalten, die Anzahl der Zeilen), Informationen über die Formatierung (wie beispielsweise den Schriftarttyp, die Farbe oder Ränder) und inhaltliche Informationen (wie beispielsweise Formeln oder Rohdaten oder informative Daten) werden gemischt,
    • • (ii) die Größe des Zellenbereichs wird in einem bestimmten Augenblick festgelegt.
  • Wenn der Benutzer eines Tabellenkalkulationsprogramms einen anderen Zellenbereich mit einer genau gleichen Struktur erzeugen möchte, muss er folglich mehrere Operationen hintereinander durchführen. Er muss:
    • 1. einen bereits vorhandenen strukturierten Zellenbereich kopieren und einfügen,
    • 2. zwischen Bereichen, die Rohdaten oder informative Daten, und Bereichen, die einen allgemeingültigen Inhalt wie zum Beispiel Formeln enthalten, unterscheiden,
    • 3. die kopierten Rohdaten aus den kopierten strukturierten Zellenbereichen löschen und gleichzeitig versuchen, die Struktur, das Format und den allgemeingültigen Inhalt beizubehalten,
    • 4. die Größe des strukturierten kopierten Zellenbereichs an seine neuen Erfordernisse anpassen
    • 5. und schließlich den Bereich der Rohdaten mit Standardwerten füllen, um die nachfolgende Dateneingabe zu vereinfachen.
  • Außerdem muss der Benutzer vor dem Kopieren und Einfügen eines strukturierten Zellenbereichs den Platz für den kopierten strukturierten Zellenbereich vorbereiten, wobei das Risiko besteht, dass bereits vorhandene Daten an der Zielposition überschrieben werden und daher verloren gehen. Diese Abfolge der Operationen wird schnell umständlich, langwierig und fehleranfällig, insbesondere, wenn bearbeitete strukturierte Zellenbereiche größer und komplexer werden.
  • Das Aktualisieren eines strukturierten Zellenbereichs ist häufig ebenfalls schwierig, umständlich und fehleranfällig. Zu solchen Aktualisierungsoperationen gehören das Hinzufügen von neuen Elementen und die Durchführung von Änderungen an vorhandenen Elementen. Es gibt mehrere Arten von Änderungen, die in einer Tabellenkalkulationsumgebung vorgenommen werden können, ohne dass ein bestimmtes Problem auftritt. Dies gilt jedoch nicht für bestimmte Änderungen wie zum Beispiel für Einfügeoperationen. Wenn beispielsweise über eine herkömmliche Funktion wie das Verfahren zum Einfügen von Zellen in ein elektronisches Arbeitsblatt eine Zeile hinzugefügt wird, ist die erzeugte Zeile leer. Dies bedeutet, dass der Wert für jede Zelle eines jeden Elements eingegeben werden muss. Die Eingabe von Daten oder die Durchführung von Kopieren-und-Einfügen-Operationen stellt für den Benutzer einen beträchtlichen Arbeitsaufwand dar, obgleich der Inhalt eines jeden Elements bis zu einem gewissen Grad bekannt ist, und sollte entsprechend der allgemeinen Struktur der strukturierten Zellenbereiche erfolgen. Überdies können normale Funktionen elektronischer Arbeitsblätter wie zum Beispiel die Zeileneinfügefunktion den Inhalt von einigen benachbarten Elementen gefährden. Ein gutes Beispiel für eine Einfügeoperation, die benachbarte Elemente gefährdet, ist das Einfügen einer Zeile über eine Formel wie zum Beispiel C16 + B17, oder allgemeiner ausgedrückt (Cn – 1) + (Bn), in einen Zellenbereich, in dem auf jeder Zeile eine Zelle, wie zum Beispiel C17, oder allgemeiner ausgedrückt (Cn), auf eine Zelle in der vorhergehenden Zeile zeigt. Nachdem zwischen die Zeilen 16 und 17 eine Zeile eingefügt worden ist, lautet die Formel in der Zelle C18 jetzt C16 + B18 anstelle der allgemeingültigen Formel C17 + B18, oder, allgemeiner ausgedrückt, nachdem zwischen die Zellen (n – 1) und (n) eine Zeile eingefügt worden ist, lautet die Formel in der Zelle (Cn + 1) nun (Cn – 1) + (Bn + 1) anstelle der allgemeingültigen Formel (Cn) + (Bn + 1). Als zweites Beispiel gibt es Fälle, in denen Änderungen im gesamten strukturierten Zellenbereich einheitlich durchgeführt werden müssen. Derzeit kann dies mit bestimmten Kopieren-und-Einfügen-Operationen durchgeführt werden, die genau auf den Bereich, der geändert werden soll, angewendet werden. Jedoch kann sich dies als sehr schwierig erweisen, insbesondere, wenn bearbeitete strukturierte Zellenbereiche größer und komplexer werden.
  • Wenn nach einem rekursiven Schema vorgegangen wird, ist das Erzeugen einer neuen Instanz von einer Anordnung von strukturierten Zellenbereichen sogar noch schwieriger und umständlicher, insbesondere, weil eine Anordnung von strukturierten Zellenbereichen eine Struktur mit zwei Ebenen bedingt.
    • • Auf der unteren Ebene muss eine aus mehreren und sogar verschiedenen Instanzen von strukturierten Zellenbereichen bestehende Gruppe erzeugt werden. Wie zuvor erwähnt wurde, ist diese Operation aufgrund der Einschränkungen, denen herkömmliche Zellenbereiche unterliegen, selbst schwierig, umständlich und fehleranfällig.
    • • Auf der höheren Ebene würde die Erzeugung einer Instanz einer Anordnung von strukturierten Zellenbereichen voraussetzen, dass der Benutzer des Tabellenkalkulationsprogramms mehrere Operationen durchführt:
    • 1. Kennzeichnen einer vorhandenen Instanz einer Anordnung von strukturierten Zellenbereichen, die als Referenz zur Erzeugung der neuen Instanz verwendet wird.
    • 2. Vorbereiten des Platzes an der Zielposition, um die neue Instanz aufzunehmen, wobei das Risiko besteht, dass bereits vorhandene Daten möglicherweise überschrieben werden und dadurch verloren gehen.
    • 3. Kopieren der Referenzinstanz der Anordnung von strukturierten Zellenbereichen und Einfügen der Referenzinstanz an der Zielposition.
    • 4. Anpassen der Struktur der neu erzeugten Instanz einer Anordnung von strukturierten Zellenbereichen an die neuen Erfordernisse des Benutzers, indem eine oder mehrere Zwischen-Überstrukturen von Instanzen von strukturierten Zellenbereichen entweder gelöscht oder in die Anordnung eingefügt werden.
    • 5. Löschen des Inhalts einer jeden Instanz von strukturierten Zellenbereichen, die in der Anordnung enthalten ist.
    • 6. Zu guter Letzt Auffüllen einer jeden Instanz von strukturierten Zellenbereichen mit den entsprechenden Standardwerten.
  • Das Aktualisieren einer Anordnung von strukturierten Zellenbereichen ist häufig ebenfalls schwierig, umständlich und fehleranfällig. Tatsächlich kann eine solche Aktualisierung entweder die Aufnahme neuer Objekte in die Anordnung der strukturierten Zellenbereiche oder aber die Änderung von vorhandenen Objekten in der Anordnung der strukturierten Zellenbereiche beinhalten. Die erste Schwierigkeit besteht darin, festzustellen, ob der Benutzer einen vorhandenen strukturierten Zellenbereich, der in der Anordnung der strukturierten Zellenbereiche enthalten ist, ändern möchte (zum Beispiel, indem er eine Zeile zu einem vorhandenen strukturierten Zellenbereich hinzufügt) oder ob er die Anordnung der strukturierten Zellenbereiche ändern möchte (zum Beispiel, indem er eine Zwischen-Überstruktur hinzufügt). Im ersten Fall ist eine solche Änderung, wie wir sie bereits gesehen haben, an sich schon eine riskante Operation. Im zweiten Fall wird die Schwierigkeit der Operation noch durch die Datenmenge und die zu bearbeitende Hierarchie der Strukturen erhöht. Die in einer Tabellenkalkulationsumgebung zur Verfügung stehenden herkömmlichen Werkzeuge unterstützen den Benutzer nicht im Umgang mit diesen Alternativen, so dass sich ein Fehler, der dem Benutzer während dieser Abfolge von Operationen möglicherweise unterläuft, nur schwer und umständlich beheben lässt.
  • Die US-Patentschrift 5 033 009 mit dem Titel "System for generating worksheet files for electronic spreadsheets" von Steven J. Dubnoff, 3. März 1989, ist ein interessantes Schriftstück nach dem Stand der Technik. Diese Erfindung entwickelt die Vorstellung von Struktudaten und veränderlichen Daten, die eingebunden werden können, um eine Arbeitsblattdatei über einen Arbeitsblattdatei-Generator zu erzeugen. Jedoch weist diese Erfindung viele Einschränkungen auf, aufgrund derer sie die Reihe von Problemen, die vorstehend erwähnt wurden, und im Einzelnen folgende nicht lösen kann:
    • • Sie zielt darauf ab, aus einem Satz von zwei Eingabedateien ein neues elektronisches Ausgabearbeitsblatt zu erzeugen, während jedoch in einer Anwendungsumgebung eines Benutzers ein Bedarf besteht, in einer vorhandenen Datei eines Tabellenkalkulationsprogramms, mit der der Benutzer vertraut ist, neue Dateneinheiten zu erzeugen und zu bearbeiten.
    • • Mit Ausnahme des gewöhnlichen Werkzeugs. eines Tabellenkalkulationsprogramms enthält sie keinen Mechanismus, der die direkte Aktualisierung des Ausgabearbeitsblatts ermöglicht.
    • • Sie enthält keine Funktion, mit der sich in derselben Arbeitsblattdatei eine veränderliche Anzahl von unterschiedlichen Strukturen und eine veränderliche Anzahl von Instanzen einer jeden dieser Struktur bearbeiten lässt. Der Abstufungsgrad ist auf die Arbeitsblattdatei beschränkt, während der erforderliche Abstufungsgrad ein strukturierter Zellenbereich ist.
    • • Die so genannte "Dateiformat-Spezifikation" mischt in Wirklichkeit Strukturinformationen (wie zum Beispiel die Anzahl und die relative Position der Spalten und Zeilen), Präsentationsinformationen (wie zum Beispiel Schriftart, Farbe, Hintergrund usw.), und inhaltliche Informationen (wie zum Beispiel Formeln usw.).
  • Die Patentanmeldung WO 03/014987 mit dem Titel "System and method in a spreadsheet for exporting-importing the content of input cells from a scalable template instance to another", International Business Machines Corporation, veröffentlicht am 20. Februar 2003, beschreibt skalierbare Vorlagen, mit denen sich erweiterbare tabellarische Strukturen in Arbeitsblättern erzeugen lassen, jedoch sind diese Vorlagen nicht rekursiv, d.h., sie können nicht verschachtelt werden, um komplizierte hierarchische Strukturen in einem Arbeitsblatt zu erzeugen, die bearbeitet werden können.
  • Zusammenfassung der Erfindung
  • Wie in den unabhängigen Ansprüchen angegeben ist, bezieht sich die vorliegende Erfindung auf mehrdimensionale elektronische Datentabellen, vorzugsweise elektronische Arbeitsblätter, die eine Vielzahl von Daten umfassen, und insbesondere auf ein Verfahren, ein System und ein Programm zur Verwaltung von Einfügeoperationen in einer rekursiven skalierbaren Vorlageninstanz; wobei eine rekursive skalierbare Vorlageninstanz eine veränderliche Anzahl von zusammenhängenden rekursiven Elementinstanzen umfasst, die geordnet und entlang einer ersten Dimension einer Datentabelle ausgerichtet und entsprechend einer rekursiven skalierbaren Vorlage strukturiert werden; wobei die rekursive skalierbare Vorlage ein rekursives Element umfasst, das eine skalierbare Vorlage oder eine Vielzahl von skalierbaren Vorlagen enthält; wobei jede rekursive Elementinstanz eine veränderliche Größe entlang der ersten Dimension der Datentabelle und eine gleiche Größe entlang einer zweiten Dimension der Datentabelle hat; wobei eine rekursive Elementinstanz eine skalierbare Vorlageninstanz oder eine Vielzahl von skalierbaren Vorlageninstanzen umfasst; wobei jede skalierbare Vorlageninstanz einer jeden rekursiven Elementinstanz entlang der ersten Dimension der Datentabelle ausgerichtet wird; wobei jede skalierbare Vorlageninstanz in jeder rekursiven Elementinstanz entlang einer zweiten Dimension der Datentabelle ausgerichtet wird; wobei eine skalierbare Vorlageninstanz eine veränderliche Anzahl von Elementen umfasst, die entsprechend einer skalierbaren Vorlage strukturiert werden; wobei ein Element als ein Bereich von Daten festgelegt wird; wobei ein Bereich von Daten ein Datum oder eine Vielzahl von Daten umfasst. Das Verfahren umfasst die folgenden Schritte:
    • • Feststellen eines Einfügebefehls, um ein zusammenhängendes Element oder eine Vielzahl von zusammenhängenden Elementen nach oder vor einem ausgewählten Element in eine skalierbare Vorlageninstanz einer rekursiven Elementinstanz einzufügen;
    • • Kennzeichnen:
    • • der skalierbaren Vorlageninstanz, in die das eine Element oder eine Vielzahl von Elementen eingefügt werden soll;
    • • des ausgewählten Elements in der skalierbaren Vorlageninstanz, nach oder vor dem das eine Element oder eine Vielzahl von Elementen eingefügt werden muss;
    • • der skalierbaren Vorlage, die zu der skalierbaren Vorlageninstanz gehört;
    • • Kennzeichnen:
    • • der rekursiven skalierbaren Vorlageninstanz und der rekursiven Elementinstanz, die die gekennzeichnete skalierbare Vorlageninstanz umfasst;
    • • Einfügen von einem Element oder von einer Vielzahl von Elementen in die gekennzeichnete skalierbare Vorlageninstanz nach oder vor dem ausgewählten Element, welches/welche entsprechend der skalierbaren Vorlage, die zu der skalierbaren Vorlageninstanz gehört, strukturiert wird;
    • • Anpassen der Größe der gekennzeichneten rekursiven Elementinstanz entlang der ersten Dimension der Datentabelle entsprechend der Größe der größten skalierbaren Vorlageninstanz in der rekursiven Elementinstanz, wobei alle rekursiven Elementinstanzen der gekennzeichneten rekursiven skalierbaren Vorlageninstanz zusammenhängend bleiben, ohne einander zu überlappen.
  • In einer bestimmten Ausführungsform umfasst das Verfahren die folgenden weiteren Schritte:
    • • Feststellen eines Einfügebefehls, um eine zusammenhängende rekursive Elementinstanz oder eine Vielzahl von zusammenhängenden rekursiven Elementinstanzen in eine rekursive skalierbare Vorlangeninstanz nach oder vor einer ausgewählten rekursiven Elementinstanz einzufügen;
    • • Kennzeichnen:
    • • der rekursiven skalierbaren Vorlageninstanz, in die die eine rekursive Elementinstanz oder eine Vielzahl von rekursiven Elementinstanzen eingefügt werden soll;
    • • der ausgewählten rekursiven Elementinstanz in der rekursiven skalierbaren Vorlageninstanz, nach oder vor der die eine rekursive Elementinstanz oder eine Vielzahl von rekursiven Elementinstanzen eingefügt werden muss;
    • • der rekursiven skalierbaren Vorlage, die zu der rekursiven skalierbaren Vorlageninstanz gehört;
    • • Einfügen von einer zusammenhängenden rekursiven Elementinstanz oder von einer Vielzahl von zusammenhängenden rekursiven Elementinstanzen in die rekursive skalierbare Vorlageninstanz nach oder vor der ausgewählten rekursiven Elementinstanz;
    • • entlang der ersten Dimension der Datentabelle Ausrichten der einen eingefügten rekursiven Elementinstanz oder der Vielzahl der eingefügten rekursiven Elementinstanzen auf die bereits vorhandene rekursive Elementinstanz oder die Vielzahl der bereits vorhandenen rekursiven Elementinstanzen; wobei die eine eingefügte rekursive Elementinstanz oder die Vielzahl der eingefügten rekursiven Elementinstanzen gleich groß wie die entlang der zweiten Dimension der Datentabelle bereits vorhandene rekursive Elementinstanz oder die Vielzahl der bereits vorhandenen rekursiven Elementinstanzen ist;
    • • Strukturieren einer jeden eingefügten rekursiven Elementinstanz entsprechend dem rekursiven Element, das für die gekennzeichnete rekursive skalierbare Vorlage festgelegt wurde.
  • Weitere Ausführungsformen der Erfindung sind in den beigefügten abhängigen Ansprüchen dargelegt.
  • Akronyme
  • Die folgenden Akronyme werden der Kürze halber verwendet:
    • • EF steht für "Element Format" (Elementformat).
    • • EP steht für "Element Profile" (Elementprofil).
    • • MEF steht für "Meta-element Format" ("Meta-Elementformat").
    • • MEP steht für "Meta-element Profile" ("Meta-Elementprofil").
    • • RE steht für "Recursive Element" (rekursives Element).
    • • RME steht für "Recursive Meta-Element" (rekursives Meta-Element).
    • • RST steht für "Recursive Scalable Template" (rekursive skalierbare Vorlage).
    • • RSTI steht für "Recursive Scalable Template Instance" (rekursive skalierbare Vorlageninstanz).
    • • ST steht für "Scalable Template" (skalierbare Vorlage).
    • • STI steht für "Scalable Template Interface" (skalierbare Vorlagenschnittstelle).
  • Kurze Beschreibung der Zeichnungen
  • 1A ist eine schematische Darstellung eines Rechnersystems, in dem die vorliegende Erfindung realisiert werden kann.
  • 1B ist eine schematische Darstellung eines Software-Systems, das ein Betriebssystem, eine Anwendungssoftware und eine Benutzeroberfläche enthält, um die vorliegende Erfindung auszuführen.
  • 2 zeigt eine bevorzugte Benutzeroberfläche eines Tabellenkalkulationsprogramms gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung zur Verwaltung von RSTs.
  • 3 zeigt eine bevorzugte Benutzeroberfläche eines Tabellenkalkulationsprogramms gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung zur Bearbeitung von EFs.
  • 4 zeigt eine bevorzugte Benutzeroberfläche eines Tabellenkalkulationsprogramms gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung zur Bearbeitung von EPs.
  • 5 zeigt eine bevorzugte Benutzeroberfläche eines Tabellenkalkulationsprogramms gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung zur Bearbeitung von STS.
  • 6 zeigt eine bevorzugte Benutzeroberfläche eines Tabellenkalkulationsprogramms gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung zur Bearbeitung von RSTs.
  • Die 7A, 7B, 7C, 7D beziehungsweise 7E zeigen die Struktur der EF-Tabelle (EFT), der EP-Tabelle (EPT), der ST-Tabelle (STT), einer ST-Deskriptortabelle (STDT) und der STI-Tabelle (STIT) gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung.
  • 7F ist eine grafische Darstellung der Beziehungen, die zwischen den Tabellen EFT, EPT, STT, STDT, STIT, RET, RSTT, RSTDT, RSTIT und RSTIDT gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung hergestellt werden.
  • 8 ist ein Flussdiagramm, das ein bevorzugtes Verfahren zur Verwaltung von RST-Objekten gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zeigt.
  • 9 ist ein Flussdiagramm, das ein bevorzugtes Verfahren zur Bearbeitung von EFs und MEFs gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zeigt.
  • 10 ist ein Flussdiagramm, das ein bevorzugtes Verfahren zur Bearbeitung von EPs und MEPs gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zeigt.
  • 11 ist ein Flussdiagramm, das ein bevorzugtes Verfahren zur Bearbeitung einer ST gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zeigt.
  • 12 ist ein Flussdiagramm, das ein bevorzugtes Verfahren zur Bearbeitung einer RST gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zeigt.
  • 13A zeigt eine bevorzugte Benutzeroberfläche eines Tabellenkalkulationsprogramms gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung zur Erzeugung von STIs.
  • 13B zeigt die Instanziierung einer ST gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung.
  • 14A ist ein Flussdiagramm, das ein bevorzugtes Verfahren zur Instanziierung einer ST gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zeigt.
  • 14B ist ein Flussdiagramm, das ein bevorzugtes Verfahren zur Erzeugung einer STI gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zeigt.
  • 15A ist ein Flussdiagramm, das ein bevorzugtes Verfahren zur Verwaltung von Einfügeoperationen in STIs gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zeigt.
  • 15B ist ein Flussdiagramm, das ein bevorzugtes Verfahren zur Erzeugung von Elementen in einer STI gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zeigt.
  • 15C ist ein Flussdiagramm, das ein bevorzugtes Verfahren zur Verwaltung von Einfügeoperationen in RSTIs gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zeigt.
  • Die 16A und 16B zeigen jeweils eine bevorzugte Benutzeroberfläche eines Tabellenkalkulationsprogramms gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung zur Verwaltung von Einfügeoperationen in STIs.
  • Die 17A und 17B zeigen die verschiedenen Arten von STI-Einfügeoperationen gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung.
  • 18A zeigt die logische Struktur einer RSTI gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung.
  • 18B zeigt die logische Struktur einer RST gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung.
  • Die 19A und 19B stellen ein Flussdiagramm dar, das ein bevorzugtes Verfahren zur Erzeugung von RSTIs gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zeigt.
  • Die 20A, 20B, 20C, 20D, 20E und 20F zeigen jeweils die Struktur der RE-Tabelle (RET), der RST-Tabelle (RSTT), der RST-Manager-Tabelle (RSTMT), einer RST-Deskriptortabelle (RSTDT), der RSTI-Tabelle (RSTIT) und einer RSTI-Deskriptortabelle (RSTIDT).
  • 21A zeigt eine bevorzugte Benutzeroberfläche eines Tabellenkalkulationsprogramms gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung zur Erzeugung von RSTIs.
  • 21B zeigt eine bevorzugte Benutzeroberfläche eines Tabellenkalkulationsprogramms gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung zur Bearbeitung von REs.
  • 21C ist ein Flussdiagramm, das ein bevorzugtes Verfahren zur Bearbeitung von REs in RSTs gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zeigt.
  • 22A ist ein Flussdiagramm, das ein bevorzugtes Verfahren zur Berechnung der Anzahl der Zeilen, die in einer STI enthalten sind, gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung veranschaulicht.
  • 22B ist ein Flussdiagramm, das ein bevorzugtes Verfahren zur Berechnung der Anzahl der Spalten, die in einer STI enthalten sind, gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung veranschaulicht.
  • Ausführliche Beschreibung der bevorzugten Ausführungsform
  • SYSTEM-HARDWARE: Wie in 1A gezeigt ist, kann die vorliegende Erfindung auf einem Rechnersystem 100 realisiert werden, das einen Zentralprozessor 101, einen Hauptspeicher 102, eine Eingabe/Ausgabe-Steuereinheit 103, eine Tastatur 104, eine Zeigeeinheit 105 (z.B. eine Maus, eine Rollkugel, eine Stifteinheit oder dergleichen), einen Bildschirm 106 und einen Massenspeicher 107 (z.B. eine Festplatte) umfasst. Auf Wunsch können zusätzliche Eingabe-/Ausgabeeinheiten wie zum Beispiel eine Druckeinheit 108 in dem System 100 enthalten sein. Wie gezeigt ist, tauschen die verschiedenen Komponenten des Systems 100 über einen Systembus 110 oder eine ähnliche Architektur Daten aus. In einer bevorzugten Ausführungsform enthält das Rechnersystem 100 einen IBM-kompatiblen Personal Computer, der von mehreren Lieferanten (einschließlich der International Business Machines – IBM Corporation mit Sitz in Armonk, N.Y.) bezogen werden kann.
  • In 1B ist ein Rechner-Softwaresystem 150 gezeigt, das bereitgestellt ist, um den Betrieb des Rechnersystems 100 zu steuern. Das Softwaresystem 150, das im Systemspeicher 102 und auf dem Plattenspeicher 107 gespeichert ist, enthält einen Kern oder ein Betriebssystem 151 und eine Shell oder eine Schnittstelle 153. Ein oder mehrere Anwendungsprogramme wie zum Beispiel die Anwendungssoftware 152 können zur Ausführung durch das System 100 "geladen" (d.h. vom Plattenspeicher 107 in den Systemspeicher übertragen) werden. Das System 100 empfängt über die Benutzerschnittstelle 153 Befehle und Daten vom Benutzer; diese Eingaben können dann vom System 100 entsprechend Befehlen vom Betriebsmodul 151 und/oder vom Anwendungsmodul 152 bearbeitet werden. Die Schnittstelle 153, bei der es sich vorzugsweise um eine grafische Benutzeroberfläche (GUI) handelt, dient auch zur Anzeige von Ergebnissen, woraufhin der Benutzer weitere Eingaben machen oder die Sitzung beenden kann. In einer bevorzugten Ausführungsform sind das Betriebssystem 151 und die Schnittstelle 153 vom Typ Microsoft Win95, die von der Microsoft Corporation mit Sitz in Redmond, Washington, USA, erhältlich sind. Das Anwendungsmodul 152 enthält andererseits ein Arbeitsblatt-Notizbuch der vorliegenden Erfindung, das hier nachstehend ausführlich beschrieben wird.
  • SCHNITTSTELLE: Die folgenden Beschreibungen konzentrieren sich auf die derzeit bevorzugten Ausführungsformen der vorliegenden Erfindung, welche die in der internationalen Patentanmeldung PCT/EP 02/09483 (IBM-Aktenzeichen FR9 2001 0029) mit dem Titel "System and method in an electronic spreadsheet for exporting-importing the content of input cells from a scalable template instance to another" von Aureglia u.a. beschriebenen Benutzerschnittstellen realisieren.
  • VERWALTUNG VON REKURSIVEN SKALIERBAREN VORLAGEN
  • A. Einführung
  • Das Konzept von skalierbaren Vorlagen (STs)
  • Herkömmliche elektronische Arbeitsblätter enthalten ein integriertes Mittel, das es den Benutzern eines Tabellenkalkulationsprogramms ermöglicht, Daten ohne Weiteres in Spalten und Zeilen zu gliedern, während es gleichzeitig umständliche Berechnungen automatisiert. Diese Gruppe von gegliederten Daten kann entweder in einen einzelnen Zellenbereich oder in einen aus mehreren Zellenbereichen bestehende Gruppe aufgenommen werden. Der Zellenbereich ist ein ziemlich nützliches und in einer Tabellenkalkulationsumgebung in großem Umfang verwendetes Objekt. Er kann als eine ganze Dateneinheit festgelegt und verarbeitet werden. Gemäß der in der internationalen Patentanmeldung PCT/EP 02/09483 (IBM-Aktenzeichen FR9 2001 0029) beschriebenen Erfindung gibt es Systeme und Verfahren, die dem Benutzer eines Tabellenkalkulationsprogramms Folgendes ermöglichen:
    • • Festlegen einer Struktur für einen Zellenbereich, die Folgendes enthält:
    • • (i) einen optionalen Kopfzeilenteil, der aus einem oder mehreren Meta-Elementen besteht;
    • • (ii) einen zwingend notwendigen Hauptteil, der aus einem oder mehreren Elementen besteht;
    • • (iii) einen optionalen Fußzeilenteil, der aus einem oder mehreren Meta-Elementen besteht. Die Struktur eines jeden Meta-Elements des Kopfzeilenteils kann in Bezug auf die Attribute von einem MEF und in Bezug auf den Inhalt von einem MEP festgelegt werden. Die Struktur von allen Elementen des Hauptteils kann in Bezug auf die Attribute von einem EF und in Bezug auf den Inhalt von einem EP festgelegt werden. Die Struktur eines jeden Meta-Elements des Fußzeilenteils kann in Bezug auf die Attribute von einem MEF und in Bezug auf den Inhalt von einem MEP festgelegt werden. Diese Struktur wird als ST bezeichnet. Zusammenfassend kann gesagt werden, dass die ST eine Struktur festlegt, indem sie die Anzahl der Fehler angibt, indem sie sich auf ein aus EF und EP bestehendes Paar bezieht, das alle Elemente des Hauptteils festlegt, und indem sie sich optional auf ein oder mehrere aus MEF und MEP bestehende Paare bezieht, die jedes Meta-Element des Kopfzeilenteils oder des Fußzeilenteils festlegen.
    • • Verwalten von STs und darunter festgelegten Objekten, die als EFs, EPs, MEFs und MEPs bezeichnet werden.
    • • Erzeugen oder Aktualisieren von EFs, MEFs.
    • • Erzeugen oder Aktualisieren von EPS, MEPs.
    • • Erzeugen oder Aktualisieren einer ST.
    • • Erzeugen einer STI, die sich an eine festgelegte ST hält.
    • • Einfügen von einem Element oder von einer Vielzahl von Elementen in eine STI.
    • • Entfernen von einem Element oder von einer Vielzahl von Elementen aus einer STI.
  • Der vorstehende Satz von Funktionen wird von einem Satz von Werkzeugen unterstützt:
    • • dem "RST-Manager"-Verfahren oder kurz RSTM-Verfahren;
    • • dem "EF-Editor"-Verfahren oder kurz EFE-Verfahren;
    • • dem "EP-Editor"-Verfahren oder kurz EPE-Verfahren;
    • • dem "ST-Editor"-Verfahren oder kurz STE-Verfahren;
    • • dem "ST-Instanziator"-Verfahren oder kurz STI-Verfahren;
    • • dem "STI-Einfügemanager°-verfahren oder kurz STIIM-Verfahren.
  • Das Konzept von rekursiven skalierbaren Vorlagen (RSTs)
  • Nachdem das Konzept von STs und STIs vorgestellt wurde, lässt sich das Konzept von RSTs und RSTIs nun leichter verstehen. Tatsächlich kann eine RST als eine Struktur mit zwei Ebenen betrachtet werden. Die höchste Ebene ist logisch gleichwertig mit der Struktur einer ST, einer Gruppe aus einem strukturierten RE und strukturierten RMEs, die logisch auf ein Element und auf Meta-Elemente abgebildet werden kann. Die Rekursivität einer RST tritt auf der unteren Strukturebene in Erscheinung, weil das RE und die RMEs Objekte sind, die selbst STIs enthalten (anstelle herkömmlicher Zellen eines Arbeitsblatts, wie es der Fall bei Elementen und Meta-Elementen ist). Anders ausgedrückt, eine RST ist eine in Schichten unterteilte Struktur von STs. Wenn eine RST instanziiert wird, lässt sich die Struktur der sich daraus ergebenden RSTI mit deren Gemeinsamkeiten beschreiben. Auf einer höheren Ebene stellt eine RSTI eine Struktur dar, die logisch gleichwertig mit der Struktur einer STI ist, jedoch nicht aus einzelnen Zellen, sondern aus Behälterbereichen (container ranges) gebildet wird. In einem jeden Behälterbereich gibt es eine Struktur einer unteren Ebene in Form von STIs. Folglich kann eine RSTI als eine STI betrachtet werden, die selbst STIs anstelle von herkömmlichen Zellen enthält. Ein solches Objekt wurde daher zuerst unter der Bezeichnung einer "Anordnung von strukturierten Zellenbereichen" eingeführt. Nun Bezug nehmend auf die 18A und 18B wird die vorliegende Erfindung anhand eines einfachen Beispiels einer solchen RST und RSTI veranschaulicht. Zuerst Bezug nehmend auf 18B legt die RST 2051 mit der Bezeichnung "RST_customer" die Struktur fest, an die sich ein Netzwerkdiensteanbieter hält, um all die verschiedenen Daten zu erfassen, die einem Kunden entsprechen, der Netzwerkdienste in Anspruch nimmt. Diese RST ist um eine Struktur aufgebaut, die Folgendes umfasst:
    • • einen Kopfzeilenteil 2052, in dem die Kundendaten (wie zum Beispiel Firmenname, Adresse, Branche, Vertragsablauf usw.) entsprechend der Struktur einer ST mit der Bezeichnung "ST_cust_data" erfasst werden, in dem die Ansprechpartner des Kunden (wie zum Beispiel der Geschäftsführer (CEO), der Leiter der Informationstechnologie (CIO), der Leiter der Finanzabteilung (CFO), leitende Angestellte usw.) entsprechend der Struktur einer ST mit der Bezeichnung "ST_contacts" erfasst werden, in dem die vertraglich festgelegten Dienstgütevereinbarungen entsprechend der Struktur einer ST mit der Bezeichnung "ST_SLA" erfasst werden und in dem das Kundendienst-Team (wie zum Beispiel der Ansprechpartner in der Übergangsphase (transition manager), der Ansprechpartner bei Fragen zur Lieferung/Bereitstellung (delivery manager) der Ansprechpartner bei auftretenden Problemen (solution manager) usw.) entsprechend der Struktur einer ST mit der Bezeichnung "ST_support_team" erfasst werden;
    • • einen Hauptteil 2053, in dem für jede Kundenressource, für die der Diensteanbieter Dienste erbringt, die zur Verwaltung dieser Ressource erforderlichen Daten (wie zum Beispiel Standort, IP-Adresse, Konfiguration, Datei usw.) entsprechend der Struktur einer ST mit der Bezeichnung "ST_res_info" erfasst werden und in dem für dieselbe Ressource das aktuelle Fehlerprotokoll entsprechend der Struktur einer ST mit der Bezeichnung "ST_pb_log" aufgezeichnet wird;
    • • einen Fußzeilenteil 2054, in dem der Abrechnungsstatus für diesen Kunden entsprechend der Struktur einer ST mit der Bezeichnung "ST_billing" und in dem die Fehlerstatistiken für die vom Kunden verwalteten Ressourcen entsprechend der Struktur einer ST mit der Bezeichnung "ST_stats" erfasst werden.
  • Nun Bezug nehmend auf 18B übernimmt die RSTI 2001 die Struktur der RST 2051 "RST_customer". Tatsächlich ist sie auch um eine Struktur aufgebaut, die einen Kopfzeilenteil 2002, einen Hauptteil 2003 und einen Fußzeilenteil 2004 umfasst. Der Kopfzeilenteil 2002 enthält vier STIs, die selbst entsprechend der Struktur des RST-Kopfzeilenteils 2052 aufgebaut sind und die Strukturen der STs "ST_cust_data", "ST_contacts", "ST_SLA" und "ST_support_team" übernehmen. Der Hauptteil 2003 setzt sich aus drei verschiedenen Datensätzen 2010, 2009 und 2008 zusammen, von denen jeder entsprechend der Struktur des RST- Hauptteils 2053 aufgebaut ist, der zwei STIs umfasst, welche die Strukturen der STs "ST_res_info" und "ST_cpb_log" übernehmen. Schließlich enthält der Fußzeilenteil 2004 zwei STIs, die selbst entsprechend der Struktur des RST-Fußzeilenteils 2054 aufgebaut sind und die Strukturen der STs "ST_billing" und "ST_stats" übernehmen. Häufig werden auch mehrere Instanzen von ähnlich rekursiv strukturierten Zellenbereichen verwendet. Im Rahmen der Logik unseres Beispiels, das vorstehend beschrieben wurde und in 18A veranschaulicht ist, wird ein ähnlich rekursiv strukturierter Zellenbereich für jeden Kunden auf einem neuen Arbeitsblatt erzeugt. In dem aktuellen Kontext einer Tabellenkalkulationsumgebung, in der eigentlich kein anderes Werkzeug zur Verfügung steht, werden Instanzen von solch ähnlich rekursiv strukturieren Zellenbereichen häufig mittels der Operationen "Ausschneiden/kopieren und einfügen" erzeugt. Wir haben bereits die Einschränkungen von herkömmlichen Werkzeugen zur Erzeugung von STIs beschrieben. Die Erzeugung einer RSTI ist aufgrund der Struktur mit zwei Ebenen, die eine RSTI aufweist, noch schwieriger und fehleranfälliger. Tatsächlich besteht die zusätzliche Schwierigkeit, die bei der Bearbeitung von solchen rekursiven Objekten auftritt, darin, die Strukturebene festzustellen, auf der eine bestimmte Operation (zum Beispiel das Kopieren und Einfügen eines rekursiven Objekts, das Kennzeichnen von Bereichen, die Rohdaten oder strukturspezifische Daten enthalten, in einem rekursiven Objekt, das Anpassen der Größe eines rekursiven Objekts, das Löschen des Inhalts von bestimmten Feldern in einem rekursiven Objekt, das Beheben eines Fehlers, der durch vorherige Operationen, welche auf ein rekursives Objekt angewendet wurden, verursacht wurde, und das Eingeben von Standardwerten in bestimmte Felder in einem rekursiven Objekt) stattfinden soll. Außerdem muss der Benutzer den Platz für den kopierten rekursiv strukturierten Zellenbereich an der Zielposition vorbereiten, bevor die Kopieren-und-Einfügen-Operation an dem rekursiv strukturierten Zellenbereich stattfindet, wobei das Risiko besteht, dass, wenn dies nicht geschieht, die bereits vorhandenen Daten an dieser Stelle überschrieben werden und folglich verloren gehen. Die Abfolge der Operationen, die vorstehend beschrieben wurde, wird schnell umständlich, langwierig und fehleranfällig, vor allem, weil der Benutzer bei Verwendung von herkömmlichen Werkzeugen bei der Größe und Komplexität von rekursiv strukturierten Zellenbereichen schnell an seine Grenzen stößt. In einer bevorzugten Ausführungsform der vorliegenden Erfindung wird eine benutzerfreundliche Lösung für diese Probleme vorgeschlagen, indem man dem Benutzer eines Tabellenkalkulationsprogramms Folgendes ermöglicht:
    • • Festlegen einer Überstruktur für einen Zellenbereich, die Folgendes enthält:
    • • (i) einen optionalen Kopfzeilenteil, der aus einem oder mehreren RMEs besteht;
    • • (ii) einen zwingend notwendigen Hauptteil, der aus einem RE besteht;
    • • (iii) einen optionalen Fußzeilenteil, der aus einem oder mehreren RMEs besteht. Die Struktur eines jeden RME des Kopfzeilenteils wird als eine geordnete Zusammenstellung von Überstruktur-Feldern festgelegt, von denen jedes einer ST entspricht. Die Struktur von allen REs des Hauptteils wird als eine geordnete Zusammenstellung von Überstruktur-Feldern festgelegt, von denen jedes einer ST entspricht. Die Struktur eines jeden RME des Fußzeilenteils wird als eine geordnete Zusammenstellung von Überstruktur-Feldern festgelegt, von denen jedes einer ST entspricht. Diese Überstruktur wird als eine RST bezeichnet. Zusammenfassend kann gesagt werden, dass die RST eine Überstruktur festlegt, indem sie die Anzahl der Fehler angibt, indem sie sich auf ein RE bezieht, das den Hauptteil festlegt, und indem sie sich optional auf ein oder mehrere RMEs bezieht, die den Kopfzeilenteil und/oder den Fußzeilenteil festlegen.
    • • Verwalten von RSTS und darunter festgelegten Objekten, die als REs und RMEs bezeichnet werden.
    • • Erzeugen oder Aktualisieren von REs.
    • • Erzeugen oder Aktualisieren von RMEs.
    • • Erzeugen oder Aktualisieren einer RST.
    • • Erzeugen einer RSTI, die sich an eine festgelegte RST hält.
  • Der vorstehende Satz von Funktionen wird von einem Satz von Werkzeugen unterstützt:
    • • dem "RST-Manager"-Verfahren oder kurz RSTM-Verfahren;
    • • dem "RE-Editor"-Verfahren oder kurz REE-Verfahren;
    • • dem "RST-Editor"-Verfahren oder kurz RSTE-Verfahren;
    • • dem "RST-Instanziator"-Verfahren oder kurz RSTI-Verfahren.
  • Dieser Satz von Funktionen wird in den folgenden Abschnitten wesentlich ausführlicher behandelt.
  • In unserem Beispiel wird eine RST erzeugt, um die allgemeingültige Struktur der "NSP Customer Repository" (NSP-Kundendatenarchiv) festzulegen und auf diese Weise die Erzeugung von mehreren Instanzen des "NSP Customer Repository" zu vereinfachen. Nun Bezug nehmend auf 18B dient die RST, die die Struktur der "NSP Customer Repository" festlegt, zu Folgendem:
    • • (i) Sie gibt die Anzahl der Überstruktur-Felder, (2) in unserem Beispiel, an.
    • • (ii) Sie legt den Kopfzeilenteil 2052 des "NSP Customer Repository" durch die folgenden Schritte fest:
    • • Festlegen der Struktur einer ersten ST, "ST_cust_data", und einer zweiten ST, "ST_contacts".
    • • Festlegen der Struktur eines ersten RME 2058, das die beiden vorherigen STs umfasst.
    • • Festlegen der Struktur einer drittem ST, "ST_SLA", und einer vierten ST, "ST_support_team".
    • • Festlegen der Struktur eines zweiten RME 2057, das die beiden vorherigen STs umfasst.
    • • (iii) Sie legt den Hauptteil 2053 des "NSP Customer Repository" durch die folgenden Schritte fest:
    • • Festlegen der Struktur einer fünften ST, "ST_res_info", und einer sechsten ST, "ST_pb_log".
    • • Festlegen der Struktur eines RE 2056, das die beiden vorherigen STs umfasst.
    • • (iv) Sie legt den Fußzeilenteil 2054 des "NSP Customer Repository" durch die folgenden Schritte fest:
    • • Festlegen der Struktur einer ersten ST, "ST_billing", und einer zweiten ST, "ST_stats".
    • • Festlegen der Struktur eines RME 2055, das die beiden vorherigen STs umfasst.
  • Aus der vorstehenden RST 2051 können eine oder mehrere RSTIs wie zum Beispiel die in 18A gezeigte RSTI erzeugt werden, wobei sich dies mit äußerst geringem Aufwand für den Benutzer bewerkstelligen lässt und somit die vielen Fehlerrisiken vermieden werden.
  • Ein Objekt in eine RSTI einfügen
  • Anhand der Lösung, die vorstehend kurz beschrieben wurde und in den folgenden Abschnitten genau dargelegt wird, kann der Benutzer des Tabellenkalkulationsprogramms nun eine Überstruktur für einen Zellenbereich in einer RST festlegen und eine RSTI erzeugen, die die in der RST festgelegte Überstruktur übernimmt und eine bestimmte Anzahl von RES umfasst, die selbst strukturierte Zellenbereiche einer unteren Ebene umfassen, welche die Struktur von STs übernehmen. In unserem Beispiel der "NSP Customer Repository" würde die neu erzeugte RSTI üblicherweise in der in 18A gezeigten Form erscheinen. Sobald dieser Erzeugungsvorgang abgeschlossen ist, kann der Benutzer Daten in die RSTI eingeben und sich dabei sofort die vorher festgelegte strukturierte Instanz zunutze machen, die die erforderlichen Bereiche zur Erfassung von allen benötigten kundenbezogenen Daten bereitstellt, und diese RSTI als Teil einer Arbeitsblattdatei zur weiteren Verwendung nach Bedarf speichern. In unserem Beispiel, und nun Bezug nehmend auf 18A, würde der Benutzer:
    • • (i) die vier STIs ("Customer Data" (Kundendaten), "Customer Contacts" (Kundenkontakte), "Service Level Agreement" (Dienstgütevereinbarung) und "Support team" (Kundendienst-Team)) ausfüllen, die im Kopfzeilenteil 2002 enthalten sind, um den Kunden, den Vertrag und das Kundendienst-Team für den Kunden zu klassifizieren.
    • • (ii) die drei Paare von STIs ("Resource Information" (Ressourcen-Daten) and "Problem Log" (Fehlerprotokoll)) ausfüllen, die im Hauptteil 2003 enthalten sind, um drei vom Kunden verwalteten Ressourcen zu klassifizieren, die unter den Umfang der vertraglich festgelegten Dienste fallen.
    • • (iii) zwei STIs ("Billing" ("Abrechnung") und "Problem Stats" ("Fehlerstatistiken")) ausfüllen, die im Fußzeilenteil 2004 enthalten sind, um die Maßnahmen in Bezug auf die Abrechnung/Fakturierung und die Dienstgüteebenen für den Kunden zu klassifizieren.
  • Sobald die Daten eingegeben wurden, enthält die RSTI Daten und Ergebnisse, wie in 18A gezeigt ist. Jedoch muss der Benutzer die RSTI schnell aktualisieren, zum Beispiel, um neue Informationsangaben einzufügen. Bei unserem Beispiel einer "NSP Customer Repository" muss sich der Benutzer eines Tabellenkalkulationsprogramms gegebenenfalls zum Beispiel mit der Aufnahme eines neuen Mitarbeiters in das Kundendienst-Team des Kunden oder der Aufnahme einer neuen vom Kunden verwalteten Ressource oder der Aufnahme eines neuen Fehlers in ein Fehlerprotokoll befassen. Neben den Schwierigkeiten, die mit dem Einfügen von neuen Elementen in eine STI zwangsläufig verbunden sind, wie zuvor erörtert wurde, ist das Einfügen von neuen Informationsangaben in eine RST noch anspruchsvoller, weil:
    • • eingefügte Objekte auf verschiedenen Strukturebenen festgelegt werden können. Zum Beispiel würde die Aufnahme eines neuen Mitarbeiters in das Kundendienst-Team des Kunden oder die Aufnahme eines neuen Fehlers in ein Fehlerprotokoll darin bestehen, dass ein neues Element in eine festgelegte STI (die STI "Support Team" beziehungsweise die STI "Problem Log") eingefügt wird, wohingegen die Aufnahme einer neuen vom Kunden verwalteten Ressource das Einfügen eines STI-Paares "Resource Information" und "Problem Log" in den Hauptteil 2003 der RSTI 2001 entsprechend der Struktur der zugehörigen RE 2056 erforderlich machen würde. Der Benutzer muss bei den Einfügeoperationen vorsichtig vorgehen, da die Struktur der RSTI mit zwei Ebenen bei der Behebung eines möglichen Fehlers beibehalten werden muss.
    • • Der sich aus der Aufnahme eines Objekts ergebende Nebeneffekt kann sich entweder auf der unteren Strukturebene der RSTI nachteilig auswirken (zum Beispiel, indem er eine als Teil der RSTI festgelegte STI beschädigt) oder auch auf der höheren Strukturebene, indem er den Aufbau der verschiedenen STIs, die die RSTI bilden, beschädigt. Der erstere Fall wurde bereits bei der Beschreibung der Einfügeoperation in eine STI behandelt. Der letztere Fall lässt sich darstellen, wenn der Benutzer des Tabellenkalkulationsprogramms oben im Hauptteil 2003 der RSTI 2001 eine neue vom Kunden verwaltete Ressource einfügen muss. In diesem Fall muss eine neue STI "Resource Information" zwischen die STI "Service Level Agreements" und die oben befindliche STI "Resource Information" eingefügt werden, und eine neue STI "Problem Log" muss zwischen die STI "Support Team" und die oben befindliche STI "Problem Log" eingefügt werden. Da die beiden neu eingefügten STIs nicht unbedingt die gleiche Höhe haben und auch nicht gleich hoch wie die untere Zeile der oberen STIs "Service Level Agreements" und "Support Team" sind, ist das Ergebnis der Einfügeoperation, dass die beiden oben vorhandenen STIs, die zum Hauptteil 2003 gehören, sehr wahrscheinlich nicht mehr waagerecht ausgerichtet sind und folglich die Überstruktur der RSTI 2001 beschädigen.
  • In einer bevorzugten Ausführungsform der vorliegenden Erfindung wird eine benutzerfreundliche Lösung für diese Probleme vorgeschlagen, indem man dem Benutzer des Tabellenkalkulationsprogramms gestattet, eine vorhandene RSTI zu ändern, indem er neue REs in die RSTI einfügt oder neue Elemente in einen ausgewählten STI-Bestandteil der RSTI einfügt, während die Unversehrtheit aller REs und der darunter liegenden STI-Elemente der RSTI sichergestellt wird. Die vorstehende Funktion wird als "RSTI-Einfügemanager-Verfahren" ("RSTI Insertion Manager" method) oder kurz RSTIIM-Verfahren bezeichnet und in den folgenden Abschnitten wesentlich ausführlicher beschrieben.
  • B. Konzepte und Vokabular
  • Dieser Abschnitt hat den Zweck, sowohl bestimmte Konzepte (mit zugehörigen Objekten) als auch ein bestimmtes Vokabular, das unter dem Umfang der vorliegenden Erfindung festgelegt ist, zu formalisieren. In den folgenden Beschreibungen wird davon ausgegangen, dass elektronische Arbeitsblätter zwei Dimensionen (2D) haben, so dass Tabellen und Strukturen in einer zweidimensionalen Umgebung beschrieben werden können. Überdies wird davon ausgegangen, dass Tabellen senkrecht aufgebaut werden, so dass sich die Tabellenüberschriften ganz oben in der Tabelle und nicht links in der Tabelle befinden. Dadurch lässt sich die Beschreibung der verschiedenen ursprünglichen Konzepte, Objekte und Verfahren, die Teil der vorliegenden Erfindung sind, wesentlich klarer gestalten, doch schränkt dies den Umfang der Erfindung in keiner Weise ein. Anders ausgedrückt, die nachfolgende Beschreibung kann auf eine Umgebung mit zweidimensionalen Tabellen, die waagerecht aufgebaut werden, oder aber auf dreidimensionale Tabellen verallgemeinert werden.
  • B1. Einführende Definitionen
  • Strukturierter Zellenbereich (Structured Range of Cells): Ein strukturierter Zellenbereich ist ein Bereich von Zellen, der eine bestimmte Art einer Struktur übernimmt, die die Daten in Zeilen und Spalten gliedert. Spalten legen Felder fest, die darauf ausgelegt sind, in jeder Zeile dieselbe Art von Information zu enthalten. Zeilen legen Datensätze (oder Elemente) fest.
  • Tabelle: Der Begriff "Tabelle" dient zur Bezeichnung eines strukturierten Zellenbereichs.
  • Feld: Ein Feld ist eine bezeichnete Spalte in einer Datenbank oder Tabelle, die für jeden Datensatz (oder für jedes Element) dieselbe Art von Information enthält. Eine Kundentabelle kann zum Beispiel Felder mit den Bezeichnungen "Name", "Adresse" und "Telefonnummer" enthalten.
  • Durch Vergrößerung bezieht sich ein bestimmtes Feld in einem bestimmten Datensatz (oder Element) auf die Zelle, die sich am Schnittpunkt des Datensatzes (oder Elements) und des bestimmten Feldes (bezeichnete Spalte) befindet.
  • Die vorstehenden Definitionen gelten für eine zweidimensionale Umgebung, in der Spalten Felder und Zeilen Datensätze festlegen. Sie können in eine zweidimensionale Umgebung umgesetzt werden, in der Zeilen Felder und Spalten Datensätze festlegen. Sie können auch in eine dreidimensionale Umgebung umgesetzt werden, in der beispielsweise einzelne Arbeitsblätter Datensätze festlegen.
  • EIN-/AUS-Zelle: Eine Zelle wird als eine "EIN"-Zelle angegeben, wenn davon ausgegangen wird, dass sie zur Aufnahme von Daten, die vom Benutzer bereitgestellt werden, verwendet wird. Eine Zelle wird als eine "AUS"-Zelle angegeben, wenn davon ausgegangen wird, dass sie zur Erzeugung von Daten (die man im Allgemeinen durch Formeln erhält, deren Argumente sich direkt oder indirekt auf "EIN"-Zellen beziehen) verwendet wird.
  • B2. Objekt-Definitionen
  • Die folgenden Objekte werden definiert, damit sich die Erfindung leichter verstehen lässt.
  • Elementformat: Ein Elementformat (EF) ist ein Objekt eines Arbeitsblatts, das die Struktur eines Elements in einem zweidimensionalen oder einem dreidimensionalen Zellenbereich in Bezug auf Formatattribute festlegt:
    • • Hintergrundattribute (Farbe, Hintergrundschema usw. ...),
    • • Ausrichtungsattribute (waagerecht, senkrecht, Zeilenumbruch, spaltenübergreifende Ausrichtung usw. ...),
    • • Schriftartattribute (Größe, Farbe, usw. ...),
    • • Zeilenattribute (Typ, Farbe, usw. ...),
    • • Schutz des Feldes
    • • sowie beliebige andere herkömmliche Formatattribute.
  • Meta-Elementformat: Ein Meta-Elementformat (MEF) ist ein Objekt eines Arbeitsblatts, das die Struktur eines Meta-Elements in einem zweidimensionalen oder einem dreidimensionalen Zellenbereich in Bezug auf Formatattribute festlegt:
    • • Hintergrundattribute (Farbe, Hintergrundschema usw. ...),
    • • Ausrichtungsattribute (waagerecht, senkrecht, Zeilenumbruch, Zusammenfassen von Zellen, usw. ...),
    • • Schriftartattribute (Größe, Farbe, usw. ...),
    • • Zeilenattribute (Typ, Farbe, usw. ...),
    • • Schutz des Feldes
    • • sowie beliebige andere herkömmliche Formatattribute.
  • Elementprofil: Ein Elementprofil (EP) ist ein Objekt eines Arbeitsblatts, das die Struktur eines Elements in einem zweidimensionalen oder einem dreidimensionalen Zellenbereich in Bezug auf den Inhalt und die Bestimmung festlegt:
    • • Formeln für Felder, die aus Daten berechnet werden sollen, die in anderen Feldern desselben Elements oder in anderen Feldern eines anderen Elements oder Meta-Elements derselben STI oder selbst in anderen Feldern außerhalb der STI enthalten sind.
    • • Standardwerte von Feldern, welche zum Zeitpunkt der Erzeugung des Elements zuzuweisen sind.
    • • Bestimmung der Zellen (Dateneingabe für "EIN"-Zellen oder Daten, die für "AUS"-Zellen erzeugt werden).
  • Meta-Elementprofil: Ein Meta-Elementprofil (MEP) ist ein Objekt eines Arbeitsblatts, das die Struktur eines Meta-Elements in einem zweidimensionalen oder einem dreidimensionalen Zellenbereich in Bezug auf den Inhalt und die Bestimmung festlegt:
    • • Formeln für Zellen, die aus Daten berechnet werden sollen, die in anderen Zellen desselben Elements oder in anderen Zellen eines anderen Elements oder Meta-Elements derselben STI oder selbst in anderen Zellen außerhalb der STI enthalten sind.
    • • Standardwerte von Zellen, welche zum Zeitpunkt der Erzeugung des Meta-Elements zuzuweisen sind.
    • • Bestimmung der Zellen (Dateneingabe für "EIN"-Zellen oder Daten, die für "AUS"-Zellen erzeugt werden).
  • Skalierbare Vorlage (wird auch als "Vorlage" oder "ST" bezeichnet): Eine ST ist ein Objekt eines Arbeitsblatts, das die Struktur eines zweidimensionalen oder dreidimensionalen Zellenbereichs in Bezug auf die Anordnung von {Element + Meta- Elemente} festlegt. Das Wort "skalierbar" bezieht sich auf die Fähigkeit der ST, eine bestimmte Struktur für Zellenbereiche veränderlicher Größe (die z.B. von einem Mindestwert bis zu einem Höchstwert reichen) festzulegen. Die ST legt eine Struktur fest, indem sie:
    • • die Anzahl der Felder angibt,
    • • sich auf ein aus EF und/oder EP bestehendes Paar bezieht, das jedes Element des Hauptteils festlegt, und
    • • sich optional auf ein oder mehrere aus MEFs und/oder MEPs bestehende Paare bezieht.
  • In einer zweidimensionalen Umgebung befinden sich diese MEFs/MEPs entweder über dem EF/EP, das den "Kopfzeilen"-Teil der ST bildet, oder unter dem EF/EP, das den "Fußzeilen"-Teil der ST bildet. Der "Kopfzeilen"-Teil der ST oder aber der "Fußzeilen"-Teil der ST oder beide können leer sein. Wenn die Verweise auf das Element und das Meta-Element nur von EPs und MEPs gebildet werden, verfügt die ST nur über Inhalt-Informationen und kann folglich als skalierbare profilierte Vorlage (Scalable Profiled Template) bezeichnet werden. Wenn die Verweise auf das Element und das Meta-Element nur von EFs und MEFs gebildet werden, verfügt die ST nur über Format-Informationen und kann folglich als skalierbare formatierte Vorlage (Scalable Formatted Template) bezeichnet werden. Wenn die Verweise auf das Element und das Meta-Element von einer beliebigen Kombination aus EPs und EFs gebildet werden, verfügt die ST sowohl über Profil- als auch über Format-Informationen und kann folglich als skalierbare profilierte und formatierte Vorlage (Scalable Profiled & Formatted Template) bezeichnet werden.
  • Skalierbare Vorlageninstanz (wird auch als "Instanz" oder "skalierbare Instanz" oder "STI" bezeichnet): Eine STI ist ein Objekt eines Arbeitsblatts, das die Struktur einer festgelegten ST übernimmt: einer skalierbaren formatierten Vorlage oder einer skalierbaren profilierten Vorlage oder einer skalierbaren profilierten und formatierten Vorlage. Eine STI kann als ein Erbobjekt einer ST betrachtet werden. Sie enthält eine veränderliche Anzahl von Elementen (mindestens eines), die in jedem Feld Daten enthalten, der Elternstruktur entsprechen und den "Hauptteil" darstellen, sowie optional zusätzlich ein oder mehrere Meta-Elemente, die von der ST festgelegt werden und den "Kopfzeilen"-Teil und den "Fußzeilen"-Teil der STI bilden.
  • Element: Ein Element ist ein Objekt eines Arbeitsblatts, das zu einer STI gehört und aus grundlegenden Feldern besteht, die entweder ein EF oder ein EP oder ein Paar (EF, EP) übernehmen, das in der Elternstruktur (skalierbare formatierte Vorlage oder skalierbare profilierte Vorlage beziehungsweise skalierbare profilierte und formatierte Vorlage) vorhanden ist. Ohne Beschränkung der Allgemeingültigkeit wird davon ausgegangen, dass ein Element immer ein Paar (EF, EP) übernimmt, wobei entweder das EF oder das EP auf ein ungültiges Objekt reduziert werden kann.
  • Meta-Element: Ein Meta-Element ist ein Objekt eines Arbeitsblatts, das zu einer STI gehört und aus grundlegenden Zellen besteht, die entweder ein MEF oder ein MEP oder ein Paar (MEF, MEP) übernehmen. Ohne Beschränkung der Allgemeingültigkeit wird davon ausgegangen, dass ein Meta-Element immer ein Paar (MEF, MEP) übernimmt, wobei entweder das MEF oder das MEP auf ein ungültiges Objekt reduziert werden kann.
  • Rekursives Element: Ein rekursives Element (RE) ist ein Objekt eines Arbeitsblatts, das zu einer RST gehört, den Hauptteil der RST bildet und aus grundlegenden Feldern besteht, die zur Erfassung der Namen von STs verwendet werden. Ein RE hat eine ähnliche Struktur wie ein Element, wird aber nicht als ein Bereich von Zellen, sondern als ein Bereich von STIs instanziiert.
  • Beispiel: Das RE der RST 2051, das in 18B gezeigt ist, entspricht der Struktur 2056, die den Hauptteil 2053 dieser RST bildet, und besteht aus zwei Feldern, die den jeweiligen Namen der STs, "ST_res_info" und "ST_pb_log"", enthalten.
  • Rekursives Meta-Element: Ein rekursives Meta-Element (RME) ist ein Objekt eines Arbeitsblatts, das zu einer RST gehört, die zum Kopfzeilenteil und/oder zum Fußzeilenteil der RST gehört, und aus grundlegenden Feldern besteht, die zur Erfassung der Namen von STs verwendet werden. Ein RME hat eine ähnliche Struktur wie ein Meta-Element, wird aber nicht als ein Bereich von Zellen, sondern als ein Bereich von STIs instanziiert.
  • Beispiel: Ein RME der RST 2051, das in 18B gezeigt ist, entspricht der Struktur 2058, die zum Kopfzeilenteil 2052 dieser RST gehört, und besteht aus zwei Feldern, die den jeweiligen Namen der STs, "ST_cust_data" und "ST_contacts", enthalten.
  • Rekursive skalierbare Vorlage (wird auch als "Rekursive Vorlage" oder "RST" bezeichnet): Eine RST ist ein Objekt eines Arbeitsblatts, das die Überstruktur eines zweidimensionalen oder dreidimensionalen Zellenbereichs in Bezug auf die Anordnung von {RE + RMEs} festlegt. Das Wort "skalierbar" bezieht sich auf die Fähigkeit der RST, eine bestimmte Überstruktur für Zellenbereiche veränderlicher Größe (die z.B. von einem Mindestwert bis zu einem Höchstwert reichen) festzulegen. Die RST legt eine Überstruktur fest, indem sie:
    • • die Anzahl der Felder angibt,
    • • sich auf ein RE bezieht, das den Hauptteil der RST festlegt, und
    • • sich optional auf ein oder mehrere RMEs bezieht.
  • In einer zweidimensionalen Umgebung befinden sich diese RMEs entweder über dem RE, das den "Kopfzeilen"-Teil der RST bildet, oder unter dem RE, das den "Fußzeilen"-Teil der RST bildet. Der "Kopfzeilen"-Teil der RST oder aber der "Fußzeilen"-Teil der RST oder beide können leer sein.
  • Beispiel: Eine RST 2051 ist in 18B gezeigt. Sie setzt sich aus einem Kopfzeilenteil 2052, einem Hauptteil 2053 und einem Fußzeilenteil 2054 zusammen. Der Kopfzeilenteil umfasst zwei RMEs 2058 und 2057, die jeweils zwei Felder haben, welche den jeweiligen Namen der STs, "ST_cust_data", "ST_contacts" beziehungsweise "ST_SLA", "ST_support_team", enthalten. Der Hauptteil umfasst ein RE 2056 mit zwei Feldern, die den jeweiligen Namen der STs, "ST_res_info", "ST_pb_log", enthalten. Der Fußzeilenteil umfasst ein RME 2055 mit zwei Feldern, die den jeweiligen Namen der STs, "ST_billing", "ST_stats", enthalten.
  • Rekursive skalierbare Vorlageninstanz (wird auch als "rekursive Instanz" oder "rekursive skalierbare Instanz" oder "RSTI" bezeichnet): Eine RSTI ist ein Objekt eines Arbeitsblatts, das die Struktur einer festgelegten RST übernimmt: Eine RSTI kann als ein Erbobjekt einer RST betrachtet werden. Sie enthält eine veränderliche Anzahl von Behälterzeilen (mindestens eine), die eine STI oder eine Vielzahl von STIs enthalten, der Elternstruktur des RE entsprechen und den "Hauptteil" darstellen, sowie optional eine oder mehrere weitere Behälterzeilen, die eine STI oder eine Vielzahl von STIs enthalten, der Elternstruktur des RME entsprechen und den "Kopfzeilen"-Teil und den "Fußzeilen"-Teil der RSTI bilden.
  • Beispiel: Eine RSTI 2001 ist in 18A gezeigt. Diese RSTI hält sich an die RST 2051, wie in 18B gezeigt ist. Sie setzt sich aus einem Kopfzeilenteil 2002, einem Hauptteil 2003 und einem Fußzeilenteil 2004 zusammen. Der Kopfzeilenteil umfasst zwei Behälterzeilen 2012 und 2011. Der Hauptteil umfasst drei Behälterzeilen 2010, 2009 und 2008. Der Fußzeilenteil umfasst eine Behälterzeile 2007. Jede Behälterzeile enthält zwei Behälterbereiche wie beispielsweise den Behälterbereich 2014, der als Schnittpunkt der obersten Behälterzeile 2012 und der rechten Behälterspalte 2005 betrachtet werden kann. Jeder Behälterbereich enthält eine STI, die die Struktur der ST übernimmt, die als Teil des RE- oder des RME-Bestandteils der RST 2051 festgelegt wurde. Die STI 2034 beispielsweise, die sich am Behälterbereichs-Schnittpunkt der Behälterzeile 2010 und der Behälterspalte 2005 befindet, übernimmt die Struktur der ST mit der Bezeichnung "ST_pb_log", die im RME 2056 der RST 2051 festgelegt ist, und setzt sich selbst aus einem Kopfzeilenteil 2015, einem Hauptteil 2016 und einem Fußzeilenteil 2017 zusammen.
  • Behälterzeilen (container rows): Eine Behälterzeile ist ein Objekt eines Arbeitsblatts, das zu einer RSTI gehört und dem Zellenbereich entspricht, der die STIs enthält, welche entsprechend der Festlegung eines RE- oder RME-Teils der RST strukturiert sind, an die sich die RSTI hält. Die Anzahl der Zeilen einer Behälterzeile ist gleich der Anzahl der Zeilen der höchsten STI, die sie enthält. Eine Behälterzeile kann auch als eine rekursive Elementinstanz bezeichnet werden. Eine Behälterzeile in einer RSTI kann als eine gleichwertige Entsprechung eines Elements in einer STI betrachtet werden.
  • Beispiel: Die Behälterzeile 2012 ist in 18A gezeigt und entspricht dem Zellenbereich, der die STIs 2032 und 2013 umfasst, die in der RSTI 2001 festgelegt sind. Die Anzahl der Zeilen dieser Behälterzeile ist gleich der Anzahl der Zeilen der STI 2032, die höher als die STI 2013 ist.
  • Behälterspalten (container columns): Eine Behälterspalte ist ein Objekt eines Arbeitsblatts, das zu einer RSTI gehört und dem Zellenbereich entspricht, der die STIs enthält, welche dieselbe Position der Überstruktur in den Behälterzeilen der RSTI belegen. Die Anzahl der Spalten einer Behälterspalte ist gleich der Anzahl der Spalten der breitesten STI, die sie enthält.
  • Beispiel: Die Behälterzeile 2006 ist in 18A gezeigt und entspricht dem Zellenbereich, der die STIs umfasst, die die äußerste linke Position in der RSTI 2001 belegen. Die Anzahl der Spalten dieser Behälterspalte ist gleich der Anzahl der Spalten der STI 2030, die die breiteste STI auf der linken Seite der RSTI 2001 ist.
  • Behälterbereiche (container ranges): Ein Behälterbereich ist ein Objekt eines Arbeitsblatts, das zu einer RSTI gehört und dem Schnittpunkt von einer Behälterzeile und einer Behälterspalte entspricht. Jeder Behälterbereich enthält eine einzige STI, die die oberste und äußerste linke Ecke belegt. Eine Behälterzeile in einer RSTI kann als eine gleichwertige Entsprechung einer einzelnen Zelle in einer STI betrachtet werden.
  • Beispiel: Der Behälterbereich 2014 ist in 18A gezeigt und entspricht dem Schnittpunkt der Behälterzeile 2012 und der Behälterspalte 2005, die beide zur RSTI 2001 gehören. Dieser Behälterbereich 2014 enthält die STI 2013.
  • B3. Notationen
  • Die folgende Notation: Πi∊S ai entspricht der Multiplikation der Terme ai, wobei der Index i zur Gruppe S gehört. Die folgende Notation: LCM({ai})i∊S entspricht dem kleinsten gemeinsamen Multiplikator der Terme ai, wobei der Index i zur Gruppe S gehört. Wenn S aus einem einzigen Element a besteht, ist LCM({ai})Πi∊S gleich a. Die folgende Notation: a Mod b entspricht dem Restwert der Division von a durch b.
  • C. Zur Verwaltung von RST-Objekten verwendete Tabellen
  • Wie im vorhergehenden Abschnitt einleitend beschrieben wurde, arbeitet die bevorzugte Ausführungsform der vorliegenden Erfindung mit verschiedenen Arten von Objekten zur Verwaltung von RSTs. Diese Objekte werden in verschiedenen Datenarchiven abgelegt, so dass mit den verschiedenen Verfahren, die Teil der bevorzugten Ausführungsform der vorliegenden Erfindung sind, auf sie zugegriffen werden kann und diese Objekte aktualisiert werden können. Diese Datenarchive werden als Tabellen bezeichnet:
    • • die EF-Tabelle oder kurz EFT,
    • • die EP-Tabelle oder kurz EPT,
    • • die ST-Tabelle oder kurz STT,
    • • die ST-Deskriptortabelle oder kurz STDT,
    • • die ST-Instanziatortabelle oder kurz STIT,
    • • die RE-Tabelle oder kurz RET,
    • • die RST-Tabelle oder kurz RSTT,
    • • die RST-Manager-Tabelle oder kurz RSTMT,
    • • die RST-Deskriptortabelle oder kurz RSTDT,
    • • die RSTI-Tabelle oder kurz RSTIT,
    • • die RSTI-Deskriptortabelle oder kurz RSTIDT.
  • Die Tabellen EFT, EPT, STT, STDT, STIT, RET, RSTT, RSTDT, RSTIT, und RSTIDT werden als Teil der Arbeitsblatt-Festplattendatei im Massenspeicher 107 gespeichert, wohingegen die RSTMT-Tabelle im Hauptspeicher 102 zwischengespeichert und die RSTEIT-Tabelle in Export-Import-Arbeitsblattdateien abgelegt werden.
  • C1. EF-Tabelle
  • Nun Bezug nehmend auf 7A entspricht die EFT-Tabelle 700 einer einfachen logischen Struktur, die aus mehreren Datensätzen 701 besteht, von denen jeder einem EF oder einem MEF gemäß der vorliegenden Erfindung entspricht. Jeder Datensatz enthält sechs Felder:
    • • Das Feld "Name" 702 wird zur Erfassung einer Zeichenfolge verwendet, die das von dem aktuellen Datensatz 701 beschriebene EF oder MEF eindeutig ausweist.
    • • Das Feld "Last Change Date" 703 wird zur Erfassung des Datums der letzten Aktualisierung des von dem aktuellen Datensatz 701 beschriebenen EF oder MEF verwendet.
    • • Das Feld "Description Ptr" 704 ist ein Verweis, der auf den Speicherplatz zeigt, an dem ein der Veranschaulichung dienender Zellenbereich abgelegt wird, der das von dem aktuellen Datensatz 701 beschriebene EF oder MEF zeigt. Dieser Speicherplatz kann sich entweder im Massenspeicher 107 oder im Hauptspeicher 102 oder in einem anderen herkömmlichen Archiv-Speichermittel befinden.
    • • Das Feld "Row #" 705 wird zur Erfassung der Anzahl der Zeilen verwendet, die in dem von dem aktuellen Datensatz 701 beschriebenen EF oder MEF vorhanden sind. Dieses Feld ist für dreidimensionale STs von Bedeutung, bei denen Elemente oder MEFs zweidimensionalen Strukturen entsprechen. In der bevorzugten Ausführungsform der vorliegenden Erfindung, bei der von zweidimensionalen STs ausgegangen wird, wird in dieses Feld immer der Wert 1 eingegeben.
    • • Das Feld "Column #" 706 wird zur Erfassung der Anzahl der Spalten verwendet, die in dem von dem aktuellen Datensatz 701 beschriebenen EF oder MEF vorhanden sind.
    • • Das Feld "Type" 707 wird zur Erfassung von verschiedenen Attributen verwendet, die zu dem EF oder dem MEF gehören, das von dem aktuellen Datensatz 701 beschrieben wird: Dies sind das "META"-Attribut 708, das angibt, ob der aktuelle Datensatz 701 ein EF oder ein MEF (mit den jeweiligen Werten "NEIN" und "JA") beschreibt, und das Attribut "REFERENCED" 709, das mittels eigens dafür vorgesehener Teilfelder (709a, 709b, 709c, 709d and 709e) die Verweisbeziehungen zu anderen Objekten angibt. Diese Teilfelder werden als Teil der Beschreibung des Attributs "REFERENCED" 2240 beschrieben. Zur Codierung dieser verschiedenen Attribute in diesem Feld "Type" können herkömmliche Verfahren zur Anwendung kommen, wie zum Beispiel die Durchführung von bitweisen Exklusiv-ODER-(XOR-)Operationen mit vorher festgelegten Bitmustern, aber jedes andere herkömmliche Mittel könnte stattdessen ebenfalls verwendet werden.
  • C2. EP-Tabelle
  • Nun Bezug nehmend auf 7B entspricht die EPT-Tabelle 710 einer einfachen logischen Struktur, die aus mehreren Datensätzen 711 besteht, von denen jeder einem EP oder einem MEP gemäß der vorliegenden Erfindung entspricht. Jeder Datensatz enthält sechs Felder:
    • • Das Feld "Name" 712 wird zur Erfassung einer Zeichenfolge verwendet, die das von dem aktuellen Datensatz 711 beschriebene EF oder MEP eindeutig ausweist.
    • • Das Feld "Last Change Date" 713 wird zur Erfassung des Datums der letzten Aktualisierung des von dem aktuellen Datensatz 711 beschriebenen EP oder MEP verwendet.
    • • Das Feld "Description Ptr" 714 ist ein Verweis, der auf den Speicherplatz zeigt, an dem ein der Veranschaulichung dienender Zellenbereich abgelegt wird, der das von dem aktuellen Datensatz 711 beschriebene EP oder MEP zeigt. Dieser Speicherplatz kann sich entweder im Massenspeicher 107 oder im Hauptspeicher 102 oder in einem anderen herkömmlichen Archiv-Speichermittel befinden, ohne vom Wesen der vorliegenden Erfindung abzuweichen.
    • • Das Feld "Row #" 715 wird zur Erfassung der Anzahl der Zeilen verwendet, die in dem von dem aktuellen Datensatz 711 beschriebenen EP oder MEP vorhanden sind. Dieses Feld ist für dreidimensionale STs von Bedeutung, bei denen Elemente oder MEPS zweidimensionalen Strukturen entsprechen. In der bevorzugten Ausführungsform der vorliegenden Erfindung, bei der von zweidimensionalen STs ausgegangen wird, wird in dieses Feld immer der Wert 1 eingegeben.
    • • Das Feld "Column #" 716 wird zur Erfassung der Anzahl der Spalten verwendet, die in dem von dem aktuellen Datensatz 711 beschriebenen EP oder MEP vorhanden sind.
    • • Das Feld "Type" 717 wird zur Erfassung von verschiedenen Attributen verwendet, die zu dem EP oder dem MEP gehören, das von dem aktuellen Datensatz 711 beschrieben wird: Dies sind das "META"-Attribut 718, das angibt, ob der aktuelle Datensatz 701 ein EP oder ein MEP (mit den jeweiligen Werten "NEIN" und "JA") beschreibt, und das Attribut "REFERENCED" 719, das mittels eigens dafür vorgesehener Teilfelder (719a, 719b, 719c, 719d and 719e) die Beziehungen zu anderen Objekten angibt. Diese Teilfelder werden als Teil der Beschreibung des Attributs "REFERENCED" 2240 beschrieben. Zur Codierung dieser verschiedenen Attribute in diesem Feld "Type" können herkömmliche Verfahren zur Anwendung kommen, wie zum Beispiel die Durchführung von bitweisen Exklusiv-ODER-(XOR-)Operationen mit vorher festgelegten Bitmustern, aber jedes andere herkömmliche Mittel könnte stattdessen ebenfalls verwendet werden.
  • C3. ST-Tabelle
  • Nun Bezug nehmend auf 7C entspricht die STT-Tabelle 720 einer einfachen logischen Struktur, die aus mehreren Datensätzen 721 besteht, von denen jeder einer ST gemäß der vorliegenden Erfindung entspricht. Jeder Datensatz enthält sechs Felder:
    • • Das Feld "Name" 722 wird zur Erfassung einer Zeichenfolge verwendet, die die von dem aktuellen Datensatz 721 beschriebene ST eindeutig ausweist.
    • • Das Feld "Last Change Date" 723 wird zur Erfassung des Datums der letzten Aktualisierung der von dem aktuellen Datensatz 721 beschriebenen ST verwendet.
    • • Das Feld "Description Ptr" 724 ist ein Verweis, der auf den Speicherplatz zeigt, an dem eine Beschreibung der von dem aktuellen Datensatz 721 beschriebenen ST abgelegt wird. Dieser Speicherplatz kann sich entweder im Massenspeicher 107 oder im Hauptspeicher 102 oder in einem anderen herkömmlichen Archiv-Speichermittel befinden. Diese Beschreibung ist entsprechend der in 7D gezeigten STDT-Tabelle 760 aufgebaut, bei der es sich um eine geordnete Liste von Namenspaaren handelt, wobei jedes Paar aus dem Namen eines Elements oder MEFs und aus dem Namen eines Elements oder MEPs gebildet wird.
    • • Das Feld "Min Element #" 725 wird zur Erfassung der Mindestzahl von Elementen verwendet, die in jeder STI vorgefunden werden, welche sich an die von dem aktuellen Datensatz 721 beschriebene ST hält.
    • • Das Feld "Max Element #" 726 wird zur Erfassung der Höchstzahl von Elementen verwendet, die in jeder STI vorgefunden werden, welche sich an die von dem aktuellen Datensatz 721 beschriebene ST hält.
    • • Das Feld "Typ" 727 wird zur Erfassung von verschiedenen Attributen verwendet, die zu der von dem aktuellen Datensatz 721 beschriebenen ST gehören: Dies sind das "META"-Attribut 728, das immer den Wert "NEIN" annimmt, und das Attribut "REFERENCED" 729, das mittels eigens dafür vorgesehener Teilfelder (729a, 729b, 729c, 729d und 729e) die Beziehungen zu anderen Objekten angibt. Diese Teilfelder werden als Teil der Beschreibung des Attributs "REFERENCED" 2240 beschrieben. Zur Codierung dieser verschiedenen Attribute in diesem Feld "Type" können herkömmliche Verfahren zur Anwendung kommen, wie zum Beispiel die Durchführung von bitweisen Exklusiv-ODER-(XOR-)Operationen mit vorher festgelegten Bitmustern, aber jedes andere herkömmliche Mittel könnte stattdessen ebenfalls verwendet werden.
  • C4. ST-Deskriptortabelle
  • Nun Bezug nehmend auf 7D entspricht die STDT-Tabelle 760 einer einfachen logischen Struktur, die aus mehreren Paaren besteht, welche aus einem Element oder MEF 765 und aus einem Element oder MEP 764 gebildet werden. Diese Struktur wird in drei Teilgruppen gegliedert:
    • • Den optionalen ST-"Kopfzeilen"-Teil 767, der aus einer veränderlichen Anzahl (möglicherweise null) von Paaren wie beispielsweise dem obersten Paar 761 besteht. Jedes dieser Paare wird von einem MEF (Spalte 765) und einem MEP (Spalte 764) gebildet.
    • • Den zwingend notwendigen "Haupt"-Teil 762, der aus einem einzigen Paar besteht, das von einem EF (Spalte 765) und einem EP (Spalte 764) gebildet wird.
    • • Den optionalen ST-"Fußzeilen"-Teil 766, der aus einer veränderlichen Anzahl (möglicherweise null) von Paaren wie dem untersten Paar 763 besteht. Jedes dieser Paare wird von einem MEF (Spalte 765) und einem MEP (Spalte 764) gebildet.
  • C5. ST-Instanziatortabelle
  • Nun Bezug nehmend auf 7E entspricht die STIT-Tabelle 750 einer einfachen logischen Struktur, die aus mehreren Datensätzen 751 besteht, von denen jeder einer STI gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung entspricht. Jeder Datensatz enthält sechs Felder:
    • • Das Feld "Address" 752 wird zum Auffinden der von dem aktuellen Datensatz 751 beschriebenen STI verwendet: Sein Wert entspricht der herkömmlichen Zeichenfolge, die zur Erfassung der Adresse eines beliebigen Zellenbereichs verwendet wird.
    • • Das Feld "ST" 753 wird zur Erfassung des Namens der ST verwendet, an die sich die von dem aktuellen Datensatz 751 beschriebene STI hält.
    • • Das Feld "Element #" 754 wird zur Erfassung der Anzahl der Elemente in der von dem aktuellen Datensatz 751 beschriebenen STI verwendet.
    • • Das Feld "Critical" 755 dient zur Erfassung, ob die von dem aktuellen Datensatz 751 beschriebene STI als kritisch betrachtet wird. Sein Inhalt kann die Werte "YES" ("JA") oder "NO" ("NEIN") annehmen.
    • • Das Feld "Header Size" 756 wird zur Erfassung der Anzahl der Meta-Elemente verwendet, die den Kopfzeilenteil der von dem aktuellen Datensatz 751 beschriebenen STI bilden.
    • • Das Feld "Footer Size" 757 wird zur Erfassung der Anzahl der Meta-Elemente verwendet, die den Fußzeilenteil der von dem aktuellen Datensatz 751 beschriebenen STI bilden.
  • C6. RE-Tabelle
  • Nun Bezug nehmend auf 20A entspricht die RET-Tabelle 2210 einer einfachen logischen Struktur, die aus mehreren Datensätzen 2211 besteht, von denen jeder einem RE oder einem RME gemäß der vorliegenden Erfindung entspricht. Jeder Datensatz enthält sechs Felder:
    • • Das Feld "Name" 2212 wird zur Erfassung einer Zeichenfolge verwendet, die das von dem aktuellen Datensatz 2211 beschriebene RE oder RME eindeutig ausweist.
    • • Das Feld "Last Change Date" 2213 wird zur Erfassung des Datums der letzten Aktualisierung des von dem aktuellen Datensatz 2211 beschriebenen RE oder RME verwendet.
    • • Das Feld "Description Ptr" 2214 ist ein Verweis, der auf den Speicherplatz zeigt, an dem ein der Veranschaulichung dienender Zellenbereich abgelegt wird, der das von dem aktuellen Datensatz 2211 beschriebene RE oder RME zeigt. Dieser Speicherplatz kann sich entweder im Massenspeicher 107 oder im Hauptspeicher 102 oder in einem anderen herkömmlichen Archiv-Speichermittel befinden.
    • • Das Feld "Row #" 2215 wird zur Erfassung der Anzahl der Zeilen verwendet, die in dem von dem aktuellen Datensatz 2211 beschriebenen RE oder RME vorhanden sind. Dieses Feld ist für dreidimensionale RSTs von Bedeutung, bei denen REs oder RMEs zweidimensionalen Strukturen entsprechen. In der bevorzugten Ausführungsform der vorliegenden Erfindung, bei der von zweidimensionalen RSTs ausgegangen wird, wird in dieses Feld immer der Wert 1 eingegeben.
    • • Das Feld "Column #" 2216 wird zur Erfassung der Anzahl der Spalten verwendet, die in dem von dem aktuellen Datensatz 2211 beschriebenen RE oder RME vorhanden sind.
    • • Das Feld "Type" 2217 wird zur Erfassung von verschiedenen Attributen verwendet, die zu dem RE oder dem RME gehören, das von dem aktuellen Datensatz 2211 beschrieben wird: Dies sind das "META"-Attribut 2218, das angibt, ob der aktuelle Datensatz 2211 ein RE oder ein RME (mit den jeweiligen Werten "NO" and "YES") beschreibt, und das Attribut "REFERENCED" 2219, das mittels eigens dafür vorgesehener Teilfelder (2219a, 2219b, 2219c, 2219d und 2219e) die Beziehungen zu anderen Objekten angibt. Diese Teilfelder werden als Teil der Beschreibung des Attributs "REFERENCED" 2240 beschrieben. Zur Codierung dieser verschiedenen Attribute in diesem Feld "Type" können herkömmliche Verfahren zur Anwendung kommen, wie zum Beispiel die Durchführung von bitweisen Exklusiv-ODER-(XOR-)Operationen mit vorher festgelegten Bitmustern, aber jedes andere herkömmliche Mittel könnte stattdessen ebenfalls verwendet werden.
  • C7. RST-Tabelle
  • Nun Bezug nehmend auf 20B entspricht die RSTT-Tabelle 2220 einer einfachen logischen Struktur, die aus mehreren Datensätzen 2221 besteht, von denen jeder einer RST gemäß der vorliegenden Erfindung entspricht. Jeder Datensatz enthält sechs Felder:
    • • Das Feld "Name" 2222 wird zur Erfassung einer Zeichenfolge verwendet, die die von dem aktuellen Datensatz 2221 beschriebene RST eindeutig ausweist.
    • • Das Feld "Last Change Date" 2223 wird zur Erfassung des Datums der letzten Aktualisierung der von dem aktuellen Datensatz 2221 beschriebenen RST verwendet.
    • • Das Feld "Description Ptr" 2224 ist ein Verweis, der auf den Speicherplatz zeigt, an dem eine Beschreibung der von dem aktuellen Datensatz 2221 beschriebenen RST abgelegt wird. Dieser Speicherplatz kann sich entweder im Massenspeicher 107 oder im Hauptspeicher 102 oder in einem anderen herkömmlichen Archiv-Speichermittel befinden. Diese Beschreibung ist entsprechend der RSTDT-Tabelle 2250 aufgebaut, die in 20D gezeigt ist, das heißt, als eine geordnete Liste von Namen von RMEs oder REs.
    • • Das Feld "Min Element #" 2225 wird zur Erfassung der Mindestzahl von REs verwendet, die in jeder RSTI vorgefunden werden, welche sich an die von dem aktuellen Datensatz 2221 beschriebene RST hält.
    • • Das Feld "Max Element #" 2226 wird zur Erfassung der Höchstzahl von REs verwendet, die in jeder RSTI vorgefunden werden, welche sich an die von dem aktuellen Datensatz 2221 beschriebene RST hält.
    • • Das Feld "Type" 2227 wird zur Erfassung von verschiedenen Attributen verwendet, die zu der von dem aktuellen Datensatz 2221 beschriebenen RST gehören: Dies sind das "META"-Attribut 2228, das immer den Wert "NO" annimmt, und das Attribut "REFERENCED" 2229, das mittels eigens dafür vorgesehener Teilfelder (2229a, 2229b, 2229c, 2229d und 2229e) die Beziehungen zu anderen Objekten angibt. Diese Teilfelder werden als Teil der Beschreibung des Attributs "REFERENCED" 2240 beschrieben. Zur Codierung dieser verschiedenen Attribute in diesem Feld "Type" können herkömmliche Verfahren zur Anwendung kommen, wie zum Beispiel die Durchführung von bitweisen Exklusiv-ODER-(XOR-)Operationen mit vorher festgelegten Bitmustern, aber jedes andere herkömmliche Mittel könnte stattdessen ebenfalls verwendet werden.
  • C8. RST-Manager-Tabelle
  • Nun Bezug nehmend auf 20C entspricht die RSTMT-Tabelle 2230 gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung einer einfachen logischen Struktur, die aus mehreren Datensätzen 2231 besteht, von denen jeder einem von der RST-Verwaltungseinheit (RST-Manager) verwalteten Objekt entspricht. Jeder Datensatz enthält sieben Felder:
    • • Das Feld "Name" 2232 wird zur Erfassung einer Zeichenfolge verwendet, die das von dem aktuellen Datensatz 2231 beschriebene Objekt eindeutig ausweist.
    • • Das Feld "Last Change Date" 2233 wird zur Erfassung des Datums der letzten Aktualisierung des von dem aktuellen Datensatz 2231 beschriebenen Objekts verwendet.
    • • Das Feld "Description Ptr" 2234 ist ein Verweis, der auf den Speicherplatz zeigt, an dem eine Beschreibung des von dem aktuellen Datensatz 2231 beschriebenen Objekts abgelegt ist. Dieser Speicherplatz kann sich entweder im Massenspeicher 107 oder im Hauptspeicher 102 oder in einem anderen herkömmlichen Archiv-Speichermittel befinden.
    • • Das Feld "Info Field 1" 2235 wird zur Erfassung einer ersten Informationsangabe verwendet, die zu dem von dem aktuellen Datensatz 2231 beschriebenen Objekt gehört.
    • • Das Feld "Info Field 2" 2236 wird zur Erfassung einer zweiten Informationsangabe verwendet, die zu dem von dem aktuellen Datensatz 2231 beschriebenen Objekt gehört.
    • • Das Feld "Type" 2237 wird zur Erfassung von verschiedenen Attributen verwendet, die zu dem von dem aktuellen Datensatz 2231 beschriebenen Objekt gehören, wie zum Beispiel:
    • • dem Attribut "META" 2239, das zuvor für die ähnlichen "Type"-Felder 707, 717, 727, 777, 2217 und 2227 beschrieben wurde, sowie zwei weitere Attribute:
    • • dem Attribut "REFERENCED" 2240, das gemäß 20C, die ein Beispiel einer RSTMT-Tabelle 2230 zeigt, aus 5 (fünf) Teilfeldern gebildet wird:
    • • dem Teilfeld "OWN REFERENCE" (oder kurz "OR") 2240a. Dieses Teilfeld ist eine eindeutige Primzahl, die zum Zeitpunkt der Erzeugung des von dem Datensatz 2231 beschriebenen Objekts zugewiesen wird. Diese Primzahl wird nur freigegeben, wenn das von dem Datensatz 2231 beschriebene Objekt gelöscht wird.
    • • dem Teilfeld "FILIATION REFERENCE" (oder kurz "FR") 2240b. Dieses Teilfeld wird entsprechend der folgenden Formel berechnet, wobei die Gruppe F der Gruppe von Objekten entspricht, die das von dem Datensatz 2231 beschriebene Objekt bilden: FR = Πi∊F ORi × LCM({FRi})i∊F Die vorstehende Formel ermöglicht die dynamische Verknüpfung des von dem Datensatz 2231 beschriebenen Objekts mit den Objekten, aus denen es besteht, da sich jedwede Änderung am Wert von einem der Faktoren ORi oder FRi automatisch in FR niederschlägt. Wenn die Gruppe F leer ist (zum Beispiel, wenn das von dem Datensatz 2231 beschriebene Objekt ein EP oder ein MEP oder ein EF oder ein MEF ist), wird das Teilfeld FR standardmäßig auf den Wert 1 (eins) gesetzt.
    • • dem Teilfeld "INSTANCE REFERENCE" (oder kurz "IR") 2240c. Dieses Teilfeld wird zum Zeitpunkt der Erzeugung des von dem Datensatz 2231 beschriebenen Objekts auf den Anfangswert 1 (eins) gesetzt. Anschließend wird dieses Teilfeld jedes Mal, wenn eine neue Instanz erzeugt wird, die sich an dieses Objekt hält, mit 2 (zwei) multipliziert, und jedes Mal, wenn eine vorhandene Instanz gelöscht wird, die sich an dieses Objekt hält, durch 2 (zwei) geteilt.
    • • dem Teilfeld "REFERENCED OBJECT" (oder kurz "RO") 2240d. Dieses Teilfeld ist eine Boolesche Variable, die angibt, ob das von dem Datensatz 2231 beschriebene Objekt an der Definition eines anderen Objekts beteiligt ist. Zum Beispiel können ein EF oder ein MEF oder ein EP oder ein MEP an der Definition einer ST mitwirken. Ebenso kann eine ST an der Definition eines RE mitwirken, das selbst an der Definition einer RST mitwirken kann. Dieses Teilfeld wird entsprechend der folgenden Formel berechnet, wobei die Gruppe P in der Hierarchie der RST-Objekte der Gruppe von Objekten entspricht, deren Typ den Typ des von dem Datensatz 2231 beschriebenen Objekts übernimmt: RO = "YES" wenn LCM({FRi})i∊P Mod OR = 0; andernfalls ist RO = "NO".Die vorstehende Formel ermöglicht die dynamische Verknüpfung des von dem Datensatz 2231 beschriebenen Objekts mit den Objekten, die zu der Gruppe P gehören, da sich jedwede Änderung am Wert von einem der Faktoren FRi automatisch in RO niederschlägt. Wenn das von dem Datensatz 2231 beschriebene Objekt ein EF oder ein MEF oder ein EP oder ein MEP ist, entspricht die Gruppe P der Gruppe der STs. Wenn das von dem Datensatz 2231 beschriebene Objekt eine ST ist, entspricht die Gruppe P der Gruppe der REs. Wenn das von dem Datensatz 2231 beschriebene Objekt ein RE ist, entspricht die Gruppe P der Gruppe der RSTs. Wenn das von dem Datensatz 2231 beschriebene Objekt eine RST ist, ist die Gruppe P leer (wobei der Anfang der Hierarchie erreicht ist), so dass das Teilfeld RO standardmäßig auf den Wert "NO" gesetzt wird.
    • • dem Teilfeld "SELECTED CHILDREN" (oder kurz "SC") 2240e. Dieses Teilfeld ist eine Boolesche Variable, die angibt, ob das von dem Datensatz 2231 beschriebene Objekt an der Definition eines ausgewählten Objekts beteiligt ist. Dieses Teilfeld wird entsprechend der folgenden Formel berechnet, wobei die Gruppe S der Gruppe der ausgewählten Objekte entspricht (bei denen das Attribut "SELECTED" 2242 den Wert "YES" hat) SC = "YES" wenn LCM({FRi})i∊S Mod OR = 0 "OR" object ∊ S; andernfalls ist SC = "NO".Die vorstehende Formel ermöglicht die dynamische Verknüpfung des von dem Datensatz 2231 beschriebenen Objekts mit den ausgewählten Objekten (die zur Gruppe S gehören), da sich jedwede Änderung am Wert von einem der Faktoren FRi oder in der Gruppe S automatisch in SC niederschlägt. Die anderen Attribute "REFERENCED" 709, 719, 729, 780, 2219 und 2229, die in den Tabellen EFT 700, EPT 710, STT 720, RSTEIT 770, RET 2210 und RSTT 2220 festgelegt sind, beruhen auf derselben Gruppe der fünf Teilfelder.
    • • dem Attribut "SELECTED" 2242, das anzeigt, ob das zugehörige Objekt von dem Benutzer des Tabellenkalkulationsprogramms im Dialogfeld 2300 des RST-Managers ausgewählt wurde oder nicht ausgewählt wurde (mit den jeweiligen Werten "YES" und "NO"), und auch
    • • dem Attribut "NATURE" 2241, das anzeigt, ob das Objekt ein (M)EF oder ein (M)EP oder eine ST oder ein R(M)E oder eine RST ist (mit den jeweiligen Werten "FORMAT" ("FORMAT") oder "PROFILE" ("PROFIL") oder "TEMPLATE" ("VORLAGE") oder "RECELEMENT" ("REKURSIVES ELEMENT") oder "RECTEMPLATE" ("REKURSIVE VORLAGE")).
  • Zur Codierung dieser verschiedenen Attribute in diesem Feld "Type" 2237 können herkömmliche Verfahren zur Anwendung kommen, wie zum Beispiel die Durchführung von bitweisen Exklusiv-ODER-(XOR-)Operationen mit vorher festgelegten Bitmustern, aber jedes andere herkömmliche Mittel könnte stattdessen ebenfalls verwendet werden.
    • • Das Feld "Index" 2238 wird zur Sortierung der RSTMT-Tabelle verwendet, wobei dieser Vorgang vom RST-Manager-Verfahren durchgeführt wird.
  • C9. RST-Deskriptortabelle
  • Nun Bezug nehmend auf 20D entspricht die RSTDT-Tabelle 2250 einer einfachen logischen Struktur, die aus mehreren Namen von REs oder RMEs 2254 besteht. Diese Struktur wird in drei Teilgruppen gegliedert:
    • • Den optionalen RST-"Kopfzeilen"-Teil 2256, der aus einer veränderlichen Anzahl (möglicherweise null) von RME-Namen wie dem obersten Namen 2251 besteht.
    • • Den zwingend notwendigen "Haupt"-Teil 2252, der aus einem einzigen RE-Namen besteht.
    • • Den optionalen RST-"Fußzeilen"-Teil 2255, der aus einer veränderlichen Anzahl (möglicherweise null) von RME-Namen wie dem untersten Namen 2253 besteht.
  • C10. RSTI-Tabelle
  • Nun Bezug nehmend auf 20E entspricht die RSTIT-Tabelle 2260 einer einfachen logischen Struktur, die aus mehreren Datensätzen 2261 besteht, von denen jeder einer RSTI gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung entspricht. Jeder Datensatz enthält sechs Felder:
    • • Das Feld "Address" 2262 wird zum Auffinden der von dem aktuellen Datensatz 2261 beschriebenen RSTI verwendet: Sein Wert entspricht der herkömmlichen Zeichenfolge, die zur Erfassung der Adresse eines beliebigen Zellenbereichs verwendet wird.
    • • Das Feld "ST" 2263 wird zur Erfassung des Namens der RST verwendet, an die sich die von dem aktuellen Datensatz 2261 beschriebene RSTI hält.
    • • Das Feld "Element #," 2264 wird zur Erfassung der Anzahl der REs in der von dem aktuellen Datensatz 2261 beschriebenen RSTI verwendet.
    • • Das Feld "Critical" 2265 dient zur Erfassung, ob die von dem aktuellen Datensatz 2261 beschriebene RSTI als kritisch betrachtet wird. Sein Inhalt kann die Werte "YES" oder "NO" annehmen.
    • • Das Feld "Header Size" 2266 wird zur Erfassung der Anzahl der RMEs verwendet, die den Kopfzeilenteil der von dem aktuellen Datensatz 2261 beschriebenen RSTI bilden.
    • • Das Feld "Footer Size" 2267 wird zur Erfassung der Anzahl der RMEs verwendet, die den Fußzeilenteil der von dem aktuellen Datensatz 2261 beschriebenen RSTI bilden.
  • C11. RSTI-Deskriptortabelle
  • Nun Bezug nehmend auf 20F entspricht die RSTIDT-Tabelle 2270 einer einfachen logischen Struktur, die aus mehreren Datensätzen 2271 besteht, von denen jeder aus mehreren Zellen 2272 besteht, von denen jede einem STI-Bestandteil der RSTI gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung entspricht. Die RSTIT-Tabelle 2270 wird auf die Struktur der zugehörigen RSTI abgebildet, wobei ein oberer Kopfzeilenteil 2275 (der möglicherweise leer ist) aus einem oder mehreren Datensätzen 2271 gebildet wird, wobei ein mittlerer Hauptteil 2274 aus einem oder mehreren Datensätzen 2271 gebildet wird, und wobei ein unterer Fußzeilenteil 2273 (der möglicherweise leer ist) aus einem oder mehreren Datensätzen 2271 gebildet wird. Jeder Datensatz 2271 umfasst eine einzelne Zelle oder eine Vielzahl von einzelnen Zellen 2272, deren Anzahl der Anzahl der STIs je RE entspricht. Jeder Datensatz 2272 enthält sieben Felder, die einen STI-Bestandteil der RSTI kennzeichnen:
    • • Das Feld "container_range" 2276 wird zur Erfassung der Adresse des Behälterbereichs verwendet, in dem die von dem Datensatz 2272 beschriebene STI untergebracht ist. Bezug nehmend auf 18A erfasst dieses Feld die Adresse des Behälters 2014 (Schnittpunkt der Behälterzeile 2012 und der Behälterspalte 2005), wenn der Datensatz 2272 die STI 2013 beschreibt.
    • • Das Feld "container_col" 2277 wird zur Erfassung der Anzahl der Spalten des Behälterbereichs verwendet, in dem die von dem Datensatz 2272 beschriebene STI untergebracht ist. Bezug nehmend auf 18A erfasst dieses Feld die Spaltenanzahl 2028, wenn der Datensatz 2272 die STI 2013 beschreibt.
    • • Das Feld "STI_col" 2278 wird zur Erfassung der Anzahl der Spalten der von dem Datensatz 2272 beschriebenen STI verwendet. Bezug nehmend auf 18A erfasst dieses Feld die Spaltenanzahl 2026, wenn der Datensatz 2272 die STI 2013 beschreibt.
    • • Das Feld "STI_row" 2279 wird zur Erfassung der Anzahl der Zeilen der von dem Datensatz 2272 beschriebenen STI verwendet. Bezug nehmend auf 18A erfasst dieses Feld die Zeilenanzahl 2027, wenn der Datensatz 2272 die STI 2013 beschreibt.
    • • Das Feld "ST_name" 2280 wird zur Erfassung des Namens der ST verwendet, an die sich die von dem Datensatz 2272 beschriebene STI hält.
    • • Das Feld "container_row" 2281 wird zur Erfassung der Anzahl der Zeilen des Behälterbereichs verwendet, in dem die von dem Datensatz 2272 beschriebene STI untergebracht ist. Bezug nehmend auf 18A erfasst dieses Feld die Zeilenanzahl 2029, wenn der Datensatz 2272 die STI 2013 beschreibt.
    • • Das Feld "STIT_rec_ptr" 2282 wird verwendet, um in der STIT-Tabelle 750 auf den Datensatz 751 zu zeigen, der die von dem Datensatz 2272 beschriebene STI beschreibt.
  • C12. Beziehungen zwischen Tabellen
  • Nun Bezug nehmend auf 7F sind einige zuvor vorgestellte Tabellen RSTIT 2260, RSTIDT 2270, RSTT 2220, RSTDT 2250, RET 2210, STIT 750, STT 720, STDT 760, EFT 700 und EPT 710 zusammen gezeigt, um die Beziehungen aufzuzeigen, die zwischen diesen Tabellen und entweder einer RSTI 730 oder einer STI 797 hergestellt werden. In dieser Übersicht stellt ein durchgehender fetter Pfeil eine auf einem Zeiger beruhende Beziehung zu einer Tabelle oder einem Datensatz dar, ein gestrichelter fetter Pfeil stellt eine auf einer Adresse beruhende Beziehung zu einem Zellenbereich dar, ein durchgehender nichtfetter Pfeil stellt eine auf einem Namen beruhende Beziehung zu einem Objekt dar, und ein gestrichelter nichtfetter Pfeil stellt eine auf einer Größe beruhende Beziehung zu einem Objekt dar. In 7F sind die auf einem Zeiger, einer Adresse und einem Namen beruhenden Beziehungen durch einen in einen Kreis eingeschlossenen Index entsprechend der folgenden Reihenfolge gekennzeichnet:
    • • Beginnend mit einer STI 797, die aus den drei Teilen "STI Header", "STI Body" und "STI Footer" besteht, wird eine erste auf einer Adresse beruhende Beziehung j zwischen dieser STI 797 und einem Datensatz 751 der STIT-Tabelle 750 hergestellt.
    • • Eine zweite auf einem Namen beruhende Beziehung k wird dann zwischen diesem Datensatz 751 und einem Datensatz 721 der STT-Tabelle 720 hergestellt. Dieser Datensatz 721 entspricht der ST, an die sich die STI 797 hält.
    • • Eine dritte auf einem Zeiger beruhende Beziehung l wird zwischen diesem Datensatz 721 und einer STDT-Tabelle 760 hergestellt, die die Struktur der ST beschreibt. Jeder Datensatz der STDT-Tabelle 760 entspricht einem aus einem Element- oder einem MEF-Namen und aus einem Element- oder einem MEP-Namen bestehenden Paar.
    • • Eine vierte auf einem Namen beruhende Beziehung m wird zwischen dem Element- oder MEF-Namen und einem Datensatz 701 der EFT-Tabelle 700 hergestellt.
    • • Eine fünfte auf einem Namen beruhende Beziehung n wird zwischen dem Element- oder MEP-Namen und einem Datensatz 711 der EPT-Tabelle 710 hergestellt.
    • • Eine sechste auf einem Zeiger beruhende Beziehung o wird zwischen dem Datensatz 701 und einem der Veranschaulichung dienenden Zellenbereich 798, der die Formatattribute angibt, hergestellt.
    • • Eine siebte auf einem Zeiger beruhende Beziehung p wird zwischen dem Datensatz 711 und einem der Veranschaulichung dienenden Zellenbereich 799, der den Profilinhalt angibt, hergestellt.
    • • Nun mit einer RSTI 730 beginnend, die aus den drei Teilen "RSTI Header", "RST Body" und "RSTI Footer" besteht, wird eine achte auf einer Adresse beruhende Beziehung q zwischen dieser RSTI 730 und einem Datensatz 2261 der RSTIT-Tabelle 2260 hergestellt.
    • • Eine neunte auf einem Zeiger beruhende Beziehung r wird zwischen diesem Datensatz 2261 und einer RSTIDT-Tabelle 2270 hergestellt, die die Struktur der RSTI 730 beschreibt. Jede Zelle 2272 der RSTIDT-Tabelle 2270 umfasst mehrere Felder 2276, 2277, 2278, 2279, 2280, 2281 und 2282, die zu einem bestimmten STI-Bestandteil (wie zum Beispiel zur STI 797) der RSTI 730 gehören.
    • • Eine zehnte auf einer Adresse beruhende Beziehung s wird folglich zwischen dem Feld 2276 der Zelle 2272 der RSTIDT- Tabelle 2270 und dem Behälterbereich hergestellt, der die STI 797 umfasst.
    • • Eine elfte auf einem Zeiger beruhende Beziehung jj wird ebenfalls zwischen dem Feld 2282 der Zelle 2272 der RSTIDT-Tabelle 2270 und dem Datensatz 751 der STIT-Tabelle 750, die der STI 797 entspricht, hergestellt.
    • • Eine zwölfte auf einem Namen beruhende Beziehung jk wird dann zwischen dem Datensatz 2261 und einem Datensatz 2221 der RSTT-Tabelle 2220 hergestellt. Dieser Datensatz 2221 entspricht der RST, an die sich die RSTI 730 hält.
    • • Eine dreizehnte auf einem Zeiger beruhende Beziehung jl wird zwischen diesem Datensatz 2221 und einer RSTDT-Tabelle 2250 hergestellt, die die Struktur der RST beschreibt. Jeder Datensatz der RSTDT-Tabelle 2250 entspricht einem RE oder einem RME.
    • • Eine vierzehnte auf einem Namen beruhende Beziehung jm wird zwischen dem RE- oder RME-Namen und einem Datensatz 2211 der RET-Tabelle 2210 hergestellt.
    • • Eine fünfzehnte auf einem Zeiger beruhende Beziehung jn wird zwischen dem Datensatz 2211 und einem RE-Deskriptor-Zellenbereich 731 hergestellt, der die Namen von STs enthält.
    • • Eine sechzehnte auf einem Namen beruhende Beziehung jo wird zwischen dem RE-Deskriptor-Zellenbereich 731 und einem Datensatz 721 der STT-Tabelle 720 hergestellt.
    • • Eine ähnliche siebzehnte auf einem Namen beruhende Beziehung jp wird zwischen der Zelle 2272 der RSTIDT-Tabelle 2270 und einem Datensatz 721 der STT-Tabelle 720 hergestellt.
  • D. Szenarien
  • Im Gegensatz zu soeben beschriebenen herkömmlichen Werkzeugen sieht die bevorzugte Ausführungsform der vorliegenden Erfindung einen leistungsfähigeren, benutzerfreundlicheren und interaktiven Ansatz zur Festlegung und Verwaltung von STs in Form von einer Reihe von Verfahren vor. In einer bevorzugten Ausführungsform kommt die vorliegende Erfindung in einem Szenario zur Anwendung, das sich als eine Folge von Operationen darstellt:
  • • 1. Erste Operation: Erzeugen einer STI oder einer RSTI
  • Die erste Operation findet statt, wenn der Benutzer des Tabellenkalkulationsprogramms auf der Grundlage von bestimmten Kriterien, die hier nicht ausführlich beschrieben werden, entscheidet, entweder eine STI zu erzeugen, die die Struktur einer ST übernimmt, oder eine RSTI zu erzeugen, die die Struktur einer RST übernimmt. In einer bevorzugten Ausführungsform der vorliegenden Erfindung umfasst diese Operation die folgenden Schritte:
    • • a. RST Manager: Über ein herkömmliches Mittel, das in einer Tabellenkalkulationsumgebung zur Verfügung steht, wie zum Beispiel der Zeigeeinheit 105 oder der Tastatur 104, jedoch nicht auf diese beschränkt, ruft der Benutzer des Tabellenkalkulationsprogramms zuerst einen ganz bestimmten ursprünglichen Befehl mit der Bezeichnung "RST Manager" auf, um über eine eigens dafür vorgesehene Benutzerschnittstelle ein(e) beliebige(s) vorhandene(s) EF oder MEF oder EP oder MEP oder RE oder RME oder ST oder RST darzustellen. Dieser RST-Manager bietet verschiedene Alternativen zur weiteren Verwaltung dieser Dateneinheiten. Dies lässt sich mit der in 2 gezeigten Benutzerschnittstelle veranschaulichen, die das Dialogfeld 200 des RST-Managers so zeigt, wie es auf dem Bildschirm 106 erscheint. In diesem Dialogfeld 200 des RST-Managers kann der Benutzer bereits definierte Objekte (EFs, MEFs, EPs, MEPs, REs, RMEs, STs und RSTs) in den "Listenfeldern" 213, 214 und 202 darstellen, in denen jeweils die Namen der Objekte, der jeweilige Typ der Objekte und das Datum ihrer letzten Aktualisierung angegeben werden. Wenn eine große Anzahl von Objekten definiert worden ist, kann der Benutzer zwischen ihnen navigieren, indem er mit der Zeigeeinheit 105 in der Schiebeleiste 203 entweder nach oben oder nach unten klickt, so dass sich die in den Listenfeldern 213, 214 und 202 angezeigten Objekte zwischen dem obersten Objekt und dem untersten Objekt hin- und herbewegen. In einer bevorzugten Ausführungsform der vorliegenden Erfindung wurden die Objekte nachdem Datum ihrer letzten Aktualisierung sortiert, aber jedes andere Sortierschema könnte ebenfalls verwendet werden. Der Benutzer kann dann mehrere Aktionen durchführen. Der Benutzer kann mit der Zeigeeinheit 105 auf ein Kontrollkästchen klicken, das sich links im Dialogfeld 200 des RST-Managers befindet, wie zum Beispiel das Kontrollkästchen 212, um das Objekt, dessen Name im Listenfeld 213 rechts des angeklickten Kontrollkästchens angezeigt wird, entweder auszuwählen oder abzuwählen. Ein oder mehrere Objekte können ausgewählt oder abgewählt werden. Eine mit der Blätterfunktion getroffene Auswahl wird selbstverständlich an den Kontrollkästchen angezeigt. Sobald eine Auswahl vorgenommen wurde, kann der Benutzer mit der Zeigeeinheit 105 auf die Schaltfläche "Delete" ("Löschen") 207 klicken, wenn er alle ausgewählten Objekte aus den Listenfeldern 213, 214 und 202 entfernen möchte. Wenn sich kein weiteres Objekt (weder ST oder STI noch RE oder RME oder RST oder RSTI) auf mindestens eines dieser Objekte bezieht, werden sie sofort gelöscht, so dass sie nicht mehr in den Listenfeldern 213, 214 und 202 erscheinen. Wenn sich noch mindestens ein e) anderes) ST oder STI oder RE oder RME oder RST oder RSTI auf mindestens eines der ausgewählten Objekte bezieht, wird ein herkömmliches Dialogfeld auf dem Bildschirm 106 angezeigt, um den Benutzer erstens auf diese Situation aufmerksam zu machen und um ihn zweitens aufzufordern, die Löschoperation entweder abzubrechen oder aber zu bestätigen. Wenn sich der Benutzer dafür entscheidet, die Operation abzubrechen, wird keine Maßnahme ergriffen, andernfalls werden die ausgewählten Objekte sofort gelöscht, so dass sie nicht mehr in den Listenfeldern 213, 214 und 202 erscheinen. Alternativ dazu kann der Benutzer mit der Zeigeeinheit 105 auf die Schaltfläche "Edit" ("Bearbeiten") 211 klicken, wenn er das ausgewählte Objekt bearbeiten möchte, von dem angenommen wird, dass es unverwechselbar ist. Wenn zuvor kein Objekt oder aber mehrere Objekte ausgewählt wurden, was im Dialogfeld 200 des RST-Managers durch das Nichtvorhandensein eines Häkchens beziehungsweise durch das Vorhandensein von mehreren Häkchen (sichtbar oder nicht sichtbar) in den auf der linken Seite befindlichen Kontrollkästchen wie beispielsweise dem Kontrollkästchen 212 angezeigt wird, wird dem Benutzer über ein herkömmliches Mittel wie zum Beispiel Dialogfenster, Meldungen in der Statusleiste oder über irgendein anderes ähnliches herkömmliches Mittel, das stattdessen verwendet werden kann, eine Warnmeldung auf dem Bildschirm 106 angezeigt. Wenn zuvor ein einzelnes Objekt ausgewählt wurde, was durch das Vorhandensein eines einzelnen Häkchens (sichtbar oder nicht sichtbar) in einem auf der linken Seite befindlichen Kontrollkästchen wie beispielsweise dem Kontrollkästchen 212 angezeigt wird, wird das Dialogfeld 200 des RST-Managers zunächst geschlossen, und anschließend wird unter Berücksichtigung der Art dieses einzelnen ausgewählten Objekts das zu öffnende neue Dialogfeld bestimmt. Wenn das ausgewählte Objekt ein EF oder ein MEF war, wird der Befehl "EF Editor" ausgegeben, so dass das EF-Editor-Verfahren die Steuerung übernimmt, indem es zuerst das Dialogfeld 301 des EF-Editors auf dem Bildschirm 106 anzeigt, wie in 3 gezeigt ist. Die folgenden Schritte dieses Szenario-Falls werden in einem nachfolgenden Abschnitt ausführlich beschrieben. Wenn das ausgewählte Objekt ein EP oder ein MEP war, wird der Befehl "EP Editor" ausgegeben, so dass das EP-Editor-Verfahren die Steuerung übernimmt, indem es zuerst das Dialogfeld 401 des EP-Editors auf dem Bildschirm 106 anzeigt, wie in 4 gezeigt ist. Die folgenden Schritte dieses Szenario-Falls werden in einem nachfolgenden Abschnitt ausführlich beschrieben. Wenn das ausgewählte Objekt ein RE oder ein RME war, wird der Befehl "RE Editor" ausgegeben, so dass das RE-Editor-Verfahren die Steuerung übernimmt, indem es zuerst das Dialogfeld 2321 des RE-Editors auf dem Bildschirm 106 anzeigt, wie in 21B gezeigt ist. Die folgenden Schritte dieses Szenario-Falls werden in einem nachfolgenden Abschnitt ausführlich beschrieben. Wenn das ausgewählte Objekt eine ST war, wird der Befehl "ST Editor" ausgegeben, so dass das ST-Editor-Verfahren die Steuerung übernimmt, indem es zuerst das Dialogfeld 501 des ST-Editors auf dem Bildschirm 106 anzeigt, wie in 5 gezeigt ist. Die folgenden Schritte dieses Szenario-Falls werden in einem nachfolgenden Abschnitt ausführlich beschrieben. Wenn das ausgewählte Objekt eine RST war, wird der Befehl "RST Editor" ausgegeben, so dass das RST-Editor-Verfahren die Steuerung übernimmt, indem es zuerst das Dialogfeld 601 des RST-Editors auf dem Bildschirm 106 anzeigt, wie in 6 gezeigt ist. Die folgenden Schritte dieses Szenario-Falls werden in einem nachfolgenden Abschnitt ausführlich beschrieben. Alternativ dazu kann der Benutzer mit der Zeigeeinheit 105 auf die Schaltfläche "Instanciate" ("Instanziieren) 204 klicken, wenn er entweder eine STI oder eine RSTI erzeugen möchte, die das ausgewählte Objekt übernimmt, von dem angenommen wird, dass es unverwechselbar ist und eine ST beziehungsweise eine RST ist. Wenn zuvor kein Objekt oder aber mehrere Objekte ausgewählt wurden, was im Dialogfeld 200 des RST-Managers durch das Nichtvorhandensein eines Häkchens beziehungsweise durch das Vorhandensein von mehreren Häkchen (sichtbar oder nicht sichtbar) in den auf der linken Seite befindlichen Kontrollkästchen wie beispielsweise dem Kontrollkästchen 212 angezeigt wird, wird dem Benutzer über ein herkömmliches Mittel wie zum Beispiel Dialogfenster, Meldungen in der Statusleiste oder über irgendein anderes ähnliches herkömmliches Mittel, das stattdessen verwendet werden kann, eine Warnmeldung auf dem Bildschirm 106 angezeigt. Wenn zuvor ein einzelnes Objekt ausgewählt wurde, was durch das Vorhandensein eines einzelnen Häkchens (sichtbar oder nicht sichtbar) in einem auf der linken Seite befindlichen Kontrollkästchen wie beispielsweise dem Kontrollkästchen 212 angezeigt wird, prüft das Verfahren, ob dieses Objekt eine ST oder eine RST ist. Wenn dies nicht der Fall ist, wird dem Benutzer über ein herkömmliches Mittel wie zum Beispiel Dialogfenster, Meldungen in der Statusleiste oder über irgendein anderes ähnliches herkömmliches Mittel, das stattdessen verwendet werden kann, eine Warnmeldung auf dem Bildschirm 106 angezeigt. Wenn zuvor ein einzelnes ST-Objekt (beziehungsweise ein RST-Objekt) ausgewählt wurde, wird das Dialogfenster 200 des RST-Managers zunächst geschlossen, und anschließend wird der Befehl "ST Instanciator" (beziehungsweise der Befehl "RST Instanciator") ausgegeben, so dass das ST- Instanziator-Verfahren (beziehungsweise das RST-Instanziator-Verfahren) die Steuerung übernimmt, indem es zuerst das Dialogfeld 1300 des ST-Instanziators (beziehungsweise das Dialogfeld 2300 des RST-Instanziators) auf dem Bildschirm 106 anzeigt, wie in 13A (beziehungsweise 21A) gezeigt ist. Die folgenden Schritte dieses Szenario-Falls werden in nachfolgenden Abschnitten ausführlich beschrieben. Alternativ dazu kann der Benutzer mit der Zeigeeinheit 105 auf die Schaltfläche "Export" 206 klicken, wenn er eine nichtleere Gruppe von Objekten aus der aktuellen Arbeitsblattdatei in eine andere Arbeitsblattdatei exportieren möchte. Wenn das Kontrollkästchen "Including child objects (for Export)" (Einschließlich Kindobjekte (für Export)) 220 mit einem Häkchen versehen ist, profitieren alle Kindobjekte der ausgewählten Objekte ebenfalls von der Exportoperation, selbst wenn diese Kindobjekte nicht über die auf der linken Seite befindlichen Kontrollkästchen wie zum Beispiel das Kontrollkästchen 212 ausgewählt wurden. Wenn zuvor kein Objekt ausgewählt wurde, was im Dialogfeld 200 des RST-Managers durch das Nichtvorhandensein eines Häkchens (sichtbar oder nicht sichtbar) in den auf der linken Seite befindlichen Kontrollkästchen wie beispielsweise dem Kontrollkästchen 212 angezeigt wird, wird dem Benutzer über ein herkömmliches Mittel wie zum Beispiel Dialogfenster, Meldungen in der Statusleiste oder über irgendein anderes ähnliches herkömmliches Mittel, das stattdessen verwendet werden kann, eine Warnmeldung auf dem Bildschirm 106 angezeigt. Wenn zuvor ein Objekt oder mehrere Objekte ausgewählt wurden, was durch das Vorhandensein von mindestens einem Häkchen (sichtbar oder nicht sichtbar) in einem auf der linken Seite befindlichen Kontrollkästchen wie beispielsweise dem Kontrollkästchen 212 angezeigt wird, wird das Dialogfeld 200 des RST-Managers zunächst geschlossen, und anschließend wird ein bestimmter Befehl "RST Export Manager" ausgegeben, so dass ein eigens dafür vorgesehenes Verfahren, das in der vorliegenden Erfindung nicht beschrieben wird, die Steuerung übernimmt, um die Exportoperation durchzuführen. Alternativ dazu kann der Benutzer mit der Zeigeeinheit 105 auf die Schaltfläche "Import" 205 klicken, wenn er ein oder mehrere Objekte aus einer anderen Arbeitsblattdatei in die aktuelle Arbeitsblattdatei importieren möchte. Zunächst wird das Dialogfeld 200 des RST-Managers geschlossen, und anschließend wird ein bestimmter Befehl "RST Import Manager" ausgegeben, so dass ein eigens dafür vorgesehenes Verfahren, das in der vorliegenden Erfindung nicht beschrieben wird, die Steuerung übernimmt, um die Importoperation durchzuführen. Alternativ kann der Benutzer mit der Zeigeeinheit 105 auf eine der fünf Optionsschaltflächen 217 "Format ("Format")", 209 "Profile" ("Profil"), 216 "Template" ("Vorlage"), 218 "RE", 219 "Recursive Template" ("Rekursive Vorlage), auf der unteren linken Seite des Dialogfelds 200 des RST-Managers klicken, wenn er angeben möchte, welche Art von neuem Objekt anschließend erzeugt werden soll. Da im Dialogfeld 200 des RST-Managers fünf Optionsschaltflächen zur Verfügung stehen, kann der Benutzer wahlweise entweder ein EF oder ein EP oder ein RE oder eine ST oder eine RST als den Typ des neuen Objekts angeben, das anschließend erzeugt werden soll. Alternativ kann der Benutzer mit der Zeigeeinheit 105 auf das Kontrollkästchen 208 mit der Bezeichnung "From current selection" ("Aus aktueller Auswahl") klicken, wenn er angeben möchte, ob das nächste Objekt, das anschließend erzeugt werden soll, aus dem Zellenbereich abgeleitet werden soll, der gerade in der Arbeitsblattdatei ausgewählt wurde. Alternativ dazu kann der Benutzer mit der Zeigeeinheit 105 auf die Schaltfläche "Create New" 210 klicken, wenn er ein neues Objekt erzeugen möchte, dessen Typ zuvor mit Hilfe der drei Optionsschaltflächen wie zum Beispiel der Folgenden angegeben wurde:
    • • der Optionsschaltfläche "Profile" 209 oder
    • • der Optionsschaltfläche "Format" 217 oder
    • • der Optionsschaltfläche "Template" 216 oder
    • • der Optionsschaltfläche "RE" 218 oder
    • • der Optionsschaltfläche "Recursive Template" 219. Wenn keine dieser fünf Optionsschaltflächen eine zuvor getroffene Benutzerauswahl widerspiegelt, was im Dialogfeld 200 des RST-Managers durch das Nichtvorhandensein eines Punktes in einer dieser fünf Optionsschaltflächen 209, 216, 217, 218 und 219 angezeigt wird, wird dem Benutzer über ein herkömmliches Mittel wie zum Beispiel Dialogfenster, Meldungen in der Statusleiste oder über irgendein anderes ähnliches herkömmliches Mittel, das stattdessen verwendet werden kann, eine Warnmeldung auf dem Bildschirm 106 angezeigt. Wenn eine diese fünf Optionsschaltflächen 209, 216, 217, 218 und 219 eine zuvor getroffene Benutzerauswahl widerspiegelt, wird zunächst das Dialogfeld 200 des RST-Managers geschlossen, und anschließend wird unter Berücksichtigung der einzelnen ausgewählten Optionsschaltfläche das zu öffnende neue Dialogfeld bestimmt. Wenn die Optionsschaltfläche "Format" 217 eine Auswahl widerspiegelt, wird der Befehl "EF Editor" ausgegeben, so dass das EF-Editor-Verfahren die Steuerung übernimmt, indem es zuerst das Dialogfeld 301 des EF-Editors auf dem Bildschirm 106 anzeigt, wie in 3 gezeigt ist. Die folgenden Schritte dieses Szenario-Falls werden in einem nachfolgenden Abschnitt ausführlich beschrieben. Wenn die Optionsschaltfläche "Profile" 209 eine Auswahl widerspiegelt, wird der Befehl "EP Editor" ausgegeben, so dass das EP-Editor-Verfahren die Steuerung übernimmt, indem es zuerst das Dialogfeld 401 des EP-Editors auf dem Bildschirm 106 anzeigt, wie in 4 gezeigt ist. Die folgenden Schritte dieses Szenario-Falls werden in einem nachfolgenden Abschnitt ausführlich beschrieben. Wenn die Optionsschaltfläche "Template" 216 eine Auswahl widerspiegelt, wird der Befehl "ST Editor" ausgegeben, so dass das ST-Editor-Verfahren die Steuerung übernimmt, indem es zuerst das Dialogfeld 501 des ST-Editors auf dem Bildschirm 106 anzeigt, wie in 5 gezeigt ist. Die folgenden Schritte dieses Szenario-Falls werden in einem nachfolgenden Abschnitt ausführlich beschrieben. Wenn die Optionsschaltfläche "RE" 218 eine Auswahl widerspiegelt, wird der Befehl "RE Editor" ausgegeben, so dass das RE-Editor-Verfahren die Steuerung übernimmt, indem es zuerst das Dialogfeld 2321 des RE-Editors auf dem Bildschirm 106 anzeigt, wie in 21B gezeigt ist. Die folgenden Schritte dieses Szenario-Falls werden in einem nachfolgenden Abschnitt ausführlich beschrieben. Wenn die Optionsschaltfläche "Recursive Template" 219 eine Auswahl widerspiegelt, wird der Befehl "RST Editor" ausgegeben, so dass das RST-Editor-Verfahren die Steuerung übernimmt, indem es zuerst das Dialogfeld 601 des RST-Editors auf dem Bildschirm 106 anzeigt, wie in 6 gezeigt ist. Die folgenden Schritte dieses Szenario-Falls werden in einem nachfolgenden Abschnitt ausführlich beschrieben. Schließlich kann der Benutzer mit der Zeigeeinheit 105 auf die Schaltfläche "Done" 201 oder auf die Schaltfläche 215 zum Schließen des Fensters klicken, wenn er das RST-Manager-Verfahren beenden möchte. Dies bewirkt, dass das Dialogfeld 200 des RST-Managers auf dem Bildschirm 106 geschlossen wird.
    • • b. EF Editor: Gemäß dem vorherigen Szenario, das das RST-Manager-Verfahren zeigt, kann der Benutzer des Tabellenkalkulationsprogramms dann über ein herkömmliches Mittel, das in einer Tabellenkalkulationsumgebung zur Verfügung steht, wie zum Beispiel die Zeigeeinheit 105 oder die Tastatur 104, jedoch nicht auf diese beschränkt, einen bestimmten ursprünglichen Befehl mit der Bezeichnung "EF Editor" aufrufen, um entweder ein neues EF oder ein neues MEF zu erzeugen oder um ein vorhandenes EF oder ein vorhandenes MEF zu aktualisieren. Das entsprechende Szenario ist in der internationalen Patentanmeldung PCT/EP 02/09483 (IBM-Aktenzeichen FR9 2001 0029) mit dem Titel "System and method in an electronic spreadsheet for exporting-importing the content of input cells from a scalable template instance to another" von Aureglia u.a. beschrieben.
    • • c. EP Editor: Gemäß dem vorherigen Szenario, das das RST-Manager-Verfahren zeigt, kann der Benutzer des Tabellenkalkulationsprogramms dann über ein herkömmliches Mittel, das in einer Tabellenkalkulationsumgebung zur Verfügung steht, wie zum Beispiel die Zeigeeinheit 105 oder die Tastatur 104, jedoch nicht auf diese beschränkt, einen bestimmten ursprünglichen Befehl mit der Bezeichnung "EP Editor" aufrufen, um entweder ein neues EP oder ein neues MEP zu erzeugen oder um ein vorhandenes EP oder ein vorhandenes MEP zu aktualisieren. Das entsprechende Szenario ist in der internationalen Patentanmeldung PCT/EP 02/09483 (IBM-Aktenzeichen FR9 2001 0029) mit dem Titel "System and method in an electronic spreadsheet for exporting-importing the content of input cells from a scalable template instance to another" von Aureglia u.a. beschrieben.
    • • d. RE Editor: Gemäß dem vorherigen Szenario, das das RST-Manager-Verfahren zeigt, kann der Benutzer des Tabellenkalkulationsprogramms dann über ein herkömmliches Mittel, das in einer Tabellenkalkulationsumgebung zur Verfügung steht, wie zum Beispiel die Zeigeeinheit 105 oder die Tastatur 104, jedoch nicht auf diese beschränkt, einen bestimmten ursprünglichen Befehl mit der Bezeichnung "RE Editor" aufrufen, um entweder ein neues RE oder ein neues RME zu erzeugen oder um ein vorhandenes RE oder ein vorhandenes RME zu aktualisieren. Dies lässt sich anhand der mit Verweis auf 21B beschriebenen Benutzerschnittstelle veranschaulichen, die das Dialogfeld 2321 des RE-Editors zeigt, das auf dem Bildschirm 106 im Fenster der grafischen Benutzeroberfläche (GUI) der Tabellenkalkulations-Büroanwendung angezeigt wird. Wenn das Dialogfeld 2321 des RE-Editors auf dem Bildschirm 106 angezeigt wird, enthält es einige Informationsangaben. Erstens wird die Art des bearbeiteten Objekts durch ein Paar Optionsschaltflächen 2330 und 2331 angezeigt, die angeben, ob es sich bei dem Objekt um ein RE oder ein RME handelt. Der Benutzer des Tabellenkalkulationsprogramms kann mit der Zeigeeinheit 105 auf eine dieser beiden Optionsschaltflächen 2330 und 2331 klicken, um zwischen der Definition eines RE und der Definition eines RME zu wechseln. Zweitens wird die Anzahl der Felder in dem bearbeiteten Objekt im Textfeld 2326 angegeben. Wenn ein neues RE oder RME erzeugt wird (wobei der Benutzer des Tabellenkalkulationsprogramms zuvor mit der Zeigeeinheit 105 auf die Optionsschaltfläche 218 geklickt hat, um sie mit einem Punkt zu versehen, und auf die Schaltfläche 210, die alle im Dialogfeld 200 des RST-Managers enthalten sind, wie in 2 gezeigt ist), entspricht der vom Textfeld 2326 angezeigte Wert einem Standardwert, der in einer bevorzugten Ausführungsform der vorliegenden Erfindung auf 3 gesetzt wird. Wenn ein vorhandenes RE oder RME bearbeitet wird, entspricht der vom Textfeld 2326 angezeigte Wert der Anzahl der Felder, die zuvor für dieses Objekt festgelegt wurden. In allen Fällen kann der Benutzer des Tabellenkalkulationsprogramms den im Textfeld 2326 angezeigten Wert ändern, indem er mit der Zeigeeinheit 105 auf die Seite des Drehfelds 2327 für die aufsteigende oder aber die absteigende Reihenfolge klickt, so dass der Wert (innerhalb vorher festgelegter Grenzwerte) erhöht oder verringert werden kann. Drittens wird der Name des bearbeiteten RE oder RME im Bezeichnungsfeld 2324 angezeigt. Wenn ein vorhandenes RE oder RME bearbeitet wird, entspricht der vom Bezeichnungsfeld 2324 angezeigte Name dem Namen, der diesem Objekt zuvor zugewiesen wurde. Wenn ein neues RE oder RME erzeugt wird, entspricht der im Bezeichnungsfeld 2324 angezeigte Name einem Standardwert, der in einer bevorzugten Ausführungsform der vorliegenden Erfindung die Form "New XX" hat, wobei XX ein Zähler ist, der die Unverwechselbarkeit des zugewiesenen Namen gewährleistet. Viertens werden die STs, die das bearbeitete RE oder RME bilden, gemeinsam von den Textfeldern 2335 und 2334 angegeben. Das Textfeld 2335 gibt einen Platz in einer Feldrangfolge an, der üblicherweise den Wert 1 für das äußerste linke Feld des bearbeiteten RE oder RME hat und der für das äußerste rechte Feld des bearbeiteten RE oder RME den Wert annimmt, der auch im Textfeld 2326 angezeigt wird. Das Textfeld 2334 gibt den Namen der ST für das Feld an, dessen Rang vom Textfeld 2335 angegeben wird. Das Dialogfeld 2321 des RE-Editors enthält mehrere Grafikobjekte, die es dem Benutzer des Tabellenkalkulationsprogramms ermöglichen, bestimmte Maßnahmen zu ergreifen. Erstens kann der Benutzer des Tabellenkalkulationsprogramms dem gerade bearbeiteten RE oder RME einen neuen Namen zuweisen. Er verwendet zu diesem Zweck ein herkömmliches Mittel wie zum Beispiel die Tastatur 104, um im Textfeld 2325 den neuen Namen anzugeben, den das bearbeitete RE oder RME erhalten soll. Anschließend klickt er mit der Zeigeeinheit 105 auf die Schaltfläche "Save As" 2332. Wenn der festgelegte, im Textfeld 2325 eingegebene Name bereits einem vorhandenen Objekt zugewiesen worden war oder kein gültiger Name ist, wird dem Benutzer über ein herkömmliches Mittel wie zum Beispiel Dialogfenster, Meldungen in der Statusleiste oder über irgendein anderes ähnliches herkömmliches Mittel, das stattdessen verwendet werden kann, eine Warnmeldung auf dem Bildschirm 106 angezeigt. Diese Warnmeldung setzt den Benutzer des Tabellenkalkulationsprogramms von dieser Situation in Kenntnis und fordert ihn anschließend zur Bestätigung auf. Daraufhin wird der Inhalt des Textfeldes 2325 gelöscht, ohne dass eine weitere Maßnahme ergriffen wird. Wenn der im Textfeld 2325 eingegebene festgelegte Name noch keinem vorhandenen Objekt zugewiesen wurde und ein gültiger Name ist, wird der Inhalt des Textfeldes 2325 gelöscht, und das bearbeitete Objekt wird in der Arbeitsblattdatei unter dem neuen Namen gespeichert, der wiederum im Bezeichnungsfeld 2324 angezeigt wird. Zweitens kann der Benutzer des Tabellenkalkulationsprogramms die aktuelle Definition des bearbeiteten Objekts in der Arbeitsblattdatei speichern, indem er mit der Zeigeeinheit 105 auf die Schaltfläche "Save" 2333 klickt. Durch dieses Ereignis wird geprüft, ob bereits von einer vorhandenen RST auf das aktualisierte RE oder RME verwiesen wird. Wenn dies nicht der Fall ist, wird die aktualisierte Definition des RE oder RME in der Arbeitsblattdatei gespeichert. Wenn dies der Fall ist, wird dem Benutzer über ein herkömmliches Mittel wie zum Beispiel Dialogfenster, Meldungen in der Statusleiste oder über irgendein anderes ähnliches herkömmliches Mittel, das stattdessen verwendet werden kann, eine Warnmeldung auf dem Bildschirm 106 angezeigt. Diese Warnmeldung setzt den Benutzer des Tabellenkalkulationsprogramms von dieser Situation in Kenntnis und fordert ihn anschließend auf, die Operation entweder abzubrechen oder fortzusetzen. Im ersten Fall wird die aktualisierte Definition des RE oder des RME nicht gespeichert, wohingegen sie im zweiten Fall in der Arbeitsblattdatei gespeichert wird. Drittens kann der Benutzer des Tabellenkalkulationsprogramms die Definition der STs ändern, die das bearbeitete RE oder RME bilden. Zu diesem Zweck navigiert er zuerst in den Feldern des bearbeiteten Objekts, indem er mit der Zeigeeinheit 105 auf das Drehfeld 2329 klickt, um den Rang des Feldes entweder zu verringern oder zu erhöhen, was im Textfeld 2335 angezeigt wird, und wobei der Name der ST des Feldes im Textfeld 2334 angezeigt wird. Der Wert, den der Rang des Feldes annimmt, wird in einem Werteintervall gehalten, dessen unterer Grenzwert von dem Wert 1 (eins) und dessen oberer Grenzwert von dem Wert des Textfelds 2326 gebildet wird. Dann kann der Benutzer des Tabellenkalkulationsprogramms den Namen der ST für das Feld aktualisieren, dessen Rang im Textfeld 2335 angezeigt wird, indem er mit der Zeigeeinheit 105 auf das Drehfeld 2328 klickt, um einen verfügbaren Namen für die ST auszuwählen. Schließlich kann der Benutzer mit der Zeigeeinheit 105 auf die Schaltfläche "Done" 2323 oder auf die Schaltfläche 2322 zum Schließen des Fensters klicken, wenn er das RE-Editor-verfahren beenden möchte. Dies bewirkt, dass das Dialogfeld 2321 des RE-Editors auf dem Bildschirm 106 geschlossen wird.
    • • e. ST Editor: Gemäß dem vorherigen Szenario, das das RST-Manager-Verfahren zeigt, kann der Benutzer des Tabellenkalkulationsprogramms dann über ein herkömmliches Mittel, das in einer Tabellenkalkulationsumgebung zur Verfügung steht, wie zum Beispiel die Zeigeeinheit 105 oder die Tastatur 104, jedoch nicht auf diese beschränkt, einen bestimmten ursprünglichen Befehl mit der Bezeichnung "ST Editor" aufrufen, um entweder eine neue ST zu erzeugen oder um eine vorhandene ST zu aktualisieren. Das entsprechende Szenario ist in der internationalen Patentanmeldung PCT/EP 02/09483 (IBM-Aktenzeichen FR9 2001 0029) mit dem Titel "System and method in an electronic spreadsheet for exporting-importing the content of input cells from a scalable template instance to another" von Aureglia u.a. beschrieben.
    • • f. RST Editor: Gemäß dem vorherigen Szenario, das das RST-Manager-Verfahren zeigt, kann der Benutzer des Tabellenkalkulationsprogramms dann über ein herkömmliches Mittel, das in einer Tabellenkalkulationsumgebung zur Verfügung steht, wie zum Beispiel die Zeigeeinheit 105 oder die Tastatur 104, jedoch nicht auf diese beschränkt, einen bestimmten ursprünglichen Befehl mit der Bezeichnung "RST Editor" aufrufen, um entweder eine neue RST zu erzeugen oder um eine vorhandene RST zu aktualisieren. Dies lässt sich anhand der mit Verweis auf 6 beschriebenen Benutzerschnittstelle veranschaulichen, die das Dialogfeld 601 des RST-Editors zeigt, das auf dem Bildschirm 106 im Fenster 611 der GUI der Tabellenkalkulations-Büroanwendung angezeigt wird. Wenn das Dialogfeld 601 des RST-Editors auf dem Bildschirm 106 angezeigt wird, wird das aktuelle Arbeitsblatt in einer bevorzugten Ausführungsform der vorliegenden Erfindung zu einem funktionsspezifischen Arbeitsblatt mit der Bezeichnung "Editor Space" 615. Im Arbeitsblatt "Editor Space" 615 erscheint die zu bearbeitende RST als ein Bereich von Zellen 614 in der oberen linken Ecke, wobei sich die oberste linke Zelle an der Adresse B2 befindet. Obgleich die bearbeitete RST einem gewöhnlichen Zellenbereich 614 in einem Arbeitsblatt entspricht, können herkömmliche Werkzeuge, die in Tabellenkalkulationsumgebungen zur Verfügung stehen, nicht zur Aktualisierung dieses Zellenbereichs 614 verwendet werden. Der Benutzer des Tabellenkalkulationsprogramms kann in dem Zellenbereich 614, der die RST darstellt, nur navigieren und entweder Zeilen in den Zellenbereich 614, der die RST darstellt, einfügen oder Zeilen darin löschen, indem er eigens dafür vorgesehene Mittel verwendet, die Teil des Dialogfelds 601 des RST-Editors sind. Die Funktion zum Einfügen von Zeilen oder zum Löschen von Zeilen im Arbeitsblatt "Editor Space" 615 ist deaktiviert. Überdies ist das Arbeitsblatt "Editor Space" 615 schreibgeschützt, um zu verhindern, dass der Benutzer die Einstellungen der REs oder der RMEs, die als Teil der vom Zellenbereich 614 dargestellten RST festgelegt wurden, versehentlich ändert. Wenn das Dialogfeld 601 des RST-Editors auf dem Bildschirm 106 angezeigt wird, enthält es einige Informationsangaben, die sich entweder auf die ganze RST, die vom Zellenbereich 614 dargestellt wird, oder auf das RE oder RME beziehen, auf das die Zelle zeigt, die gerade in eben diesem Zellenbereich 614 ausgewählt wurde. Zuerst wird das RE oder das RME, auf das die Zelle zeigt, die gerade ausgewählt wurde, im Kombinationsfeld "RE" 610 angezeigt. Indem er mit der Zeigeeinheit 105 auf den Pfeil klickt, der sich rechts von diesem Kombinationsfeld "RE" 610 befindet, kann der Benutzer des Tabellenkalkulationsprogramms die Liste der definierten REs und RMEs anzeigen und in dieser Liste navigieren und dann das gewünschte RE oder RME auswählen, wobei seine Wahl in der Zeile angezeigt wird, in der sich die gerade im Zellenbereich 614 ausgewählte Zelle befindet. Wenn der Benutzer des Tabellenkalkulationsprogramms die ausgewählte Zelle im Zellenbereich 614 ändert, indem er mit der Zeigeeinheit 105 auf die Schaltfläche "Up" 619 oder auf die Schaltfläche "Down" 616 klickt, wird der im Kombinationsfeld 610 angezeigte Name aktualisiert, um den Namen des RE oder des RME anzugeben, das der neu ausgewählten Zeile entspricht. Wenn der Benutzer des Tabellenkalkulationsprogramms entweder in den Kopfzeilenteil oder in den Fußzeilenteil der RST ein neues RME einfügen möchte, muss er mit der Zeigeeinheit 105 lediglich auf die Schaltfläche "Add" 617 klicken, um an der gewünschten Stelle über der letzten Position der gerade ausgewählten Zelle eine neue Zeile in den Zellenbereich 614 einzufügen. Dann wird der Zellenbereich 614 aktualisiert, wobei eine neue Zeile im Fenster 611 angezeigt wird. Anschließend wird das Dialogfeld 601 des RST-Editors aktualisiert, indem der Name, der dem eingefügten RME standardmäßig zugewiesen wird, im Kombinationsfeld 610 angezeigt wird. Wenn der Benutzer des Tabellenkalkulationsprogramms ein RME entweder aus dem Kopfzeilenteil oder aus dem Fußzeilenteil der RST entfernen möchte, muss er mit der Zeigeeinheit 105 lediglich auf die Schaltfläche "Delete" 618 klicken, um an der gewünschten Stelle die entsprechende Zeile im Zellenbereich 614 zu entfernen. Dann wird die gerade ausgewählte Zelle im Zellenbereich 614 die Zelle, die zu der Zeile gehört, welche das unverwechselbare, in der RST festgelegte RE darstellt, und das Dialogfeld 601 des RST-Editors wird aktualisiert, indem es den Namen des unverwechselbaren, in der RST festgelegten REs im Kombinationsfeld 610 anzeigt. Zweitens wird die Mindestzahl der REs, die in einer RSTI zulässig sind, welche sich an die bearbeitete RST hält, im Textfeld "MIN" 606 angegeben. Ebenso wird die Höchstzahl der REs, die in einer RSTI zulässig sind, welche die bearbeitete RST übernimmt, im Textfeld "MAX" 609 angegeben. Wenn eine neue RST erzeugt wird (wobei der Benutzer des Tabellenkalkulationsprogramms zuvor mit der Zeigeeinheit 105 auf die Optionsschaltfläche 219 geklickt hat, um sie mit einem Punkt zu versehen, und auf die Schaltfläche 210, die alle im Dialogfeld 200 des RST-Managers enthalten sind, wie in 2 gezeigt ist), entspricht der vom Textfeld "MIN" 606 angezeigte Wert einem Standardwert, der in einer bevorzugten Ausführungsform der vorliegenden Erfindung auf 1 gesetzt wird, und der vom Textfeld "MAX" 609 angezeigte Wert entspricht einem Standardwert, der in einer bevorzugten Ausführungsform der vorliegenden Erfindung auf 16 gesetzt wird. Wenn eine vorhandene RST bearbeitet wird, entsprechen die von den Textfeldern 606 und 609 angezeigten Werte der Mindest- beziehungsweise der Höchstzahl der REs, die in einer RSTI, welche sich an die gerade bearbeitete RST hält, zulässig sind, wobei diese Werte zuvor vom Benutzer des Tabellenkalkulationsprogramms festgelegt wurden. In allen Fällen kann der Benutzer des Tabellenkalkulationsprogramms die im Textfeld "MIN" 606 oder im Textfeld "MAX" 609 angezeigten Werte ändern, indem er mit der Zeigeeinheit 105 auf die Seite des Drehfelds 607 für die aufsteigende oder aber die absteigende Reihenfolge beziehungsweise auf die Seite des Drehfelds 608 für die aufsteigende oder die absteigende Reihenfolge klickt, so dass die Werte (innerhalb vorher festgelegter Grenzwerte) erhöht oder verringert werden können, während gleichzeitig sichergestellt wird, dass der im Textfeld "MIN" 606 angegebene Wert geringer als der oder gleich dem im Textfeld "MAX" 609 angegebene(n) Wert bleibt. Falls eine vorhandene RSTI, welche sich an die aktualisierte RST hält, eine Anzahl von Elementen aufweist, die außerhalb des neuen "MIN"-"MAX"-Intervalls liegt, bleibt diese RSTI von der Aktualisierung der RST unberührt, aber jeder künftige Hinzufüge- oder Löschvorgang von REs erfolgt entsprechend der neuen Festlegung des "MIN"-"MAX"-Intervalls. Drittens wird der Name der bearbeiteten RST im Bezeichnungsfeld 604 angezeigt. Wenn eine vorhandene RST bearbeitet wird, entspricht der vom Bezeichnungsfeld 604 angezeigte Name dem Namen, der diesem Objekt zuvor zugewiesen wurde. Wenn eine neue RST erzeugt wird, entspricht der im Bezeichnungsfeld 604 angezeigte Name einem Standardwert, der in einer bevorzugten Ausführungsform der vorliegenden Erfindung die Form "New XX" hat, wobei XX ein Zähler ist, der die Unverwechselbarkeit des zugewiesenen Namens gewährleistet. Das Dialogfeld 601 des RST-Editors umfasst mehrere Grafikobjekte, die es dem Benutzer des Tabellenkalkulationsprogramms ermöglichen, bestimmte Maßnahmen zu ergreifen. Erstens kann der Benutzer des Tabellenkalkulationsprogramms der gerade bearbeiteten RST einen neuen Namen zuweisen, wenn diese RST derzeit aus REs und RMEs besteht, die alle die gleiche Anzahl von Feldern haben. Tatsächlich wird in diesem Fall die Schaltfläche "Save As" 612 aktiviert, so dass jeder Klick mit der Zeigeeinheit 105 auf diese Schaltfläche als ein gültiges Ereignis erkannt wird. Der Benutzer des Tabellenkalkulationsprogramms verwendet zuerst ein herkömmliches Mittel wie zum Beispiel die Tastatur 104, um im Textfeld 605 den neuen Namen anzugeben, den die bearbeitete RST erhalten soll. Anschließend klickt er mit der Zeigeeinheit 105 auf die Schaltfläche "Save As" 612. Wenn der festgelegte, im Textfeld 605 eingegebene Name bereits einem vorhandenen Objekt zugewiesen worden war oder kein gültiger Name ist, wird dem Benutzer über ein herkömmliches Mittel wie zum Beispiel Dialogfenster, Meldungen in der Statusleiste oder über irgendein anderes ähnliches herkömmliches Mittel, das stattdessen verwendet werden kann, eine Warnmeldung auf dem Bildschirm 106 angezeigt. Diese Warnmeldung setzt den Benutzer des Tabellenkalkulationsprogramms von dieser Situation in Kenntnis und fordert ihn anschließend zur Bestätigung auf. Daraufhin wird der Inhalt des Textfeldes 605 gelöscht, ohne dass eine weitere Maßnahme ergriffen wird. Wenn der im Textfeld 605 eingegebene festgelegte Name noch keinem vorhandenen Objekt zugewiesen wurde und ein gültiger Name ist, wird der Inhalt des Textfeldes 605 gelöscht, und die bearbeitete RST wird in der Arbeitsblattdatei unter dem neuen Namen gespeichert, der wiederum im Bezeichnungsfeld 604 angezeigt wird. Zweitens kann der Benutzer des Tabellenkalkulationsprogramms in der Arbeitsblattdatei die aktuelle Definition der bearbeiteten RST speichern, wenn diese RST derzeit aus REs und RMEs besteht, die alle die gleiche Anzahl von Feldern haben. Tatsächlich wird in diesem Fall die Schaltfläche "Save" 613 aktiviert, so dass jeder Klick mit der Zeigeeinheit 105 auf diese Schaltfläche als ein gültiges Ereignis erkannt wird. Dieses Ereignis hat zur Folge, dass geprüft wird, ob auf die aktualisierte RST bereits von einer vorhandenen RSTI verwiesen wird. Wenn dies nicht der Fall ist, wird die aktualisierte Definition der RST in der Arbeitsblattdatei gespeichert. Wenn dies der Fall ist, wird dem Benutzer über ein herkömmliches Mittel wie zum Beispiel Dialogfenster, Meldungen in der Statusleiste oder über irgendein anderes ähnliches herkömmliches Mittel, das stattdessen verwendet werden kann, eine Warnmeldung auf dem Bildschirm 106 angezeigt. Diese Warnmeldung setzt den Benutzer des Tabellenkalkulationsprogramms von dieser Situation in Kenntnis und fordert ihn anschließend auf, die Operation entweder abzubrechen oder fortzusetzen. Im ersten Fall wird die aktualisierte Definition der RST nicht gespeichert, wohingegen sie im zweiten Fall in der Arbeitsblattdatei gespeichert wird. Schließlich kann der Benutzer mit der Zeigeeinheit 105 auf die Schaltfläche "Done" 603 oder auf die Schaltfläche 602 zum Schließen des Fensters klicken, wenn er das RST-Editor-Verfahren beenden möchte. Dies bewirkt, dass das Dialogfeld 601 des RST-Editors auf dem Bildschirm 106 geschlossen und zu dem Arbeitsblatt zurückgekehrt wird, das aktiv war, als der Befehl "RST Editor" zuerst aufgerufen wurde.
    • • g. ST Instanciator: Gemäß dem vorherigen Szenario, das das RST-Manager-Verfahren zeigt, kann der Benutzer des Tabellenkalkulationsprogramms dann über ein herkömmliches Mittel, das in einer Tabellenkalkulationsumgebung zur Verfügung steht, wie zum Beispiel die Zeigeeinheit 105 oder die Tastatur 104, jedoch nicht auf diese beschränkt, einen bestimmten ursprünglichen Befehl mit der Bezeichnung "ST Instanciator" aufrufen, um eine STI zu erzeugen, die sich an eine ausgewählte ST hält und sich entsprechend der gerade ausgewählten Zelle auffinden lässt. Das entsprechende Szenario ist in der internationalen Patentanmeldung PCT/EP 02/09483 (IBM-Aktenzeichen FR9 2001 0029) mit dem Titel "System and method in an electronic spreadsheet for exporting-importing the content of input cells from a scalable template instance to another" von Aureglia u.a. beschrieben.
    • • h. RST Instanciator: Gemäß dem vorherigen Szenario, das das RST-Manager-Verfahren zeigt, kann der Benutzer des Tabellenkalkulationsprogramms dann über ein herkömmliches Mittel, das in einer Tabellenkalkulationsumgebung zur Verfügung steht, wie zum Beispiel die Zeigeeinheit 105 oder die Tastatur 104, jedoch nicht auf diese beschränkt, einen bestimmten ursprünglichen Befehl mit der Bezeichnung "RST Instanciator" aufrufen, um eine RSTI zu erzeugen, die sich an eine ausgewählte RST hält und sich entsprechend der gerade ausgewählten Zelle auffinden lässt. Dies lässt sich anhand der mit Verweis auf 21A beschriebenen Benutzerschnittstelle veranschaulichen, die das Dialogfeld 2300 des RST-Instanziators zeigt, das auf dem Bildschirm 106 angezeigt wird. Wenn das Dialogfeld 2300 des RST-Instanziators auf dem Bildschirm 106 angezeigt wird, bleibt das aktuelle Arbeitsblatt nach wie vor aktiv, so dass der Benutzer des Tabellenkalkulationsprogramms die darauf befindlichen Daten darstellen kann. Das Dialogfeld 2300 des RST-Instanziators enthält einige Informationsangaben, die sich auf die Instanziierungsoperation beziehen. Erstens wird der Name der RST, die sich an die zu erzeugende RSTI hält, in einem Bezeichnungsfeld 2302 angezeigt. Zweitens wird die Anzahl der REs, die zum Zeitpunkt der Erzeugung der RSTI vorhanden sein sollen, in einem Textfeld 2311 angezeigt. Diese Anzahl hat einen Standardwert, der gleich der Mindestzahl an REs ist, welche bei der Definition der RST, die sich an die zu erzeugende RSTI hält, angegeben wurde. Wenn der Benutzer des Tabellenkalkulationsprogramms eine RSTI mit einer anderen Anzahl von REs erzeugen möchte, muss er mit der Zeigeeinheit 105 auf die obere oder untere Seite des Drehfeldes 2303 klicken, um die Anzahl der REs entweder zu erhöhen oder zu verringern. Diese Anzahl von REs verändert sich innerhalb eines Bereichs, der durch die Mindest- und die Höchstzahl an REs begrenzt ist, welche jeweils bei der Definition der RST angegeben wurden (Felder: "Min Element #" 2225 und "Max Element #" 2226 in einem Datensatz 2221 der RSTT-Tabelle 2220, bei dem der Eintrag in seinem Feld "Name" 2222 mit dem Namen übereinstimmt, der im Bezeichnungsfeld 2302 angegeben wird), und diese Anzahl wird nach einer möglichen Aktualisierung im Textfeld 2311 angezeigt. Drittens kann das Dialogfeld 2300 des RST-Instanziators durch Anklicken der Schaltfläche "Cancel" 2308 oder der Schaltfläche 2301 zum Schließen des Fensters geschlossen werden, ohne dass eine weitere Maßnahme getroffen wird. Durch Anklicken von einer dieser beiden Schaltflächen 2301 und 2308 mit der Zeigeeinheit 105 wird das Dialogfeld 2300 des RST-Instanziators geschlossen, und die RST-Instanziierungsoperation wird abgebrochen. Viertens ist die Schaltfläche "Create Instance" 2310, wenn sie zuerst aktiviert und anschließend vom Benutzer des Tabellenkalkulationsprogramms mit der Zeigeeinheit 105 angeklickt wird, der Auslöser, der den Vorgang der Instanziierung der RST startet. Diese Schaltfläche "Create Instance" 2310 wird aktiviert (was bedeutet, dass das Verfahren das Klickereignis mit der Zeigeeinheit 105 auf diese Schaltfläche "Create Instance" 2310 erkennt), wenn die Instanziierungsoperation möglich ist. Ob diese Instanziierung der RST möglich ist, hängt von verschiedenen Faktoren ab: der Position der gerade ausgewählten Zelle in dem aktuellen Arbeitsblatt des Tabellenkalkulationsprogramms, der Größe der zu erzeugenden RSTI, dem Vorhandensein einer STI, die zu demselben Arbeitsblatt wie die gerade ausgewählte Zelle gehört. Ob es möglich ist, eine neue RSTI mit der im Textfeld 2303 angegebenen Größe zu erzeugen, welche sich an eine RST hält, deren Name von dem Bezeichnungsfeld 2302 angegeben wird, dessen linke obere Ecke sich in der gerade ausgewählten Zelle befindet, wird von mehreren Bezeichnungsfeldern angegeben, die die Werte "YES" oder "NO" annehmen und Teil des Dialogfelds 2300 des RST-Instanziators sind: dem Bezeichnungsfeld 2304, das anzeigt, ob die neue RSTI zu breit ist oder nicht zu breit ist, dem Bezeichnungsfeld 2305, das anzeigt, ob die neue RSTI zu hoch oder nicht zu hoch ist, dem Bezeichnungsfeld 2306, das anzeigt, ob eine vorhandene STI bereits auf dem Arbeitsblatt festgelegt ist, das die gerade ausgewählte Zelle enthält, und dem Bezeichnungsfeld 2307, das anzeigt, ob die Erzeugung der neuen RSTI zum Verlust von vorhandenen Daten führen kann, die in einer oder mehreren Zellen des Arbeitsblatts enthalten sind. Sobald das Bezeichnungsfeld 2304 oder das Bezeichnungsfeld 2305 oder das Bezeichnungsfeld 2306 den Wert "YES" annehmen, wird die Erzeugung der RSTI als unmöglich angesehen, so dass die Schaltfläche "Create Instance" 2310 deaktiviert wird. Wenn in diesen drei Bezeichnungsfeldern der Wert "NO" angezeigt wird, ist die Instanziierungsoperation möglich, so dass die Schaltfläche "Create Instance" 2310 aktiviert wird. Wenn der Benutzer des Tabellenkalkulationsprogramms mit der Zeigeeinheit 105 auf diese Schaltfläche klickt, wird die Instanziierungsoperation durchgeführt, und daraufhin wird das Dialogfeld 2300 des RST-Instanziators geschlossen. Fünftens ist die Schaltfläche "Create instance in a new sheet"" 2309, wenn sie zuerst aktiviert und anschließend vom Benutzer des Tabellenkalkulationsprogramms mit der Zeigeeinheit 105 angeklickt wird, ein alternativer Auslöser, der den Vorgang der Instanziierung der RST startet, jedoch auf einem Arbeitsblatt, das als Teil dieser Instanziierungsoperation erzeugt wird. In einer bevorzugten Ausführungsform der vorliegenden Erfindung wird das neue Arbeitsblatt nach dem Arbeitsblatt erzeugt, welches die gerade ausgewählte Zelle enthält. Jede andere Position auf dem Arbeitsblatt könnte stattdessen ebenfalls verwendet werden. Diese Schaltfläche "Create instance in a new sheet" 2309 wird aktiviert (was bedeutet, dass das Verfahren das Klickereignis mit der Zeigeeinheit 105 auf diese Schaltfläche "Create instance in a new sheet" 2309 erkennt), wenn die Instanziierungsoperation auf einem neuen Arbeitsblatt möglich ist. Ob diese Instanziierung der RST auf einem neuen Arbeitsblatt möglich ist, hängt von der Größe der zu erzeugenden RSTI ab. Ob es möglich ist, eine neue RSTI auf einem neuen Arbeitsblatt mit der im Textfeld 2303 angegebenen Größe zu erzeugen, welche sich an eine RST hält, deren Name von dem Bezeichnungsfeld 2302 angegeben wird, wird von mehreren Bezeichnungsfeldern angegeben, die die Werte "YES" oder "NO" annehmen und Teil des Dialogfelds 2300 des RST-Instanziators sind: dem Bezeichnungsfeld 2304, das anzeigt, ob die neue RSTI zu breit ist oder nicht zu breit ist, und dem Bezeichnungsfeld 2305, das anzeigt, ob die neue RSTI zu hoch ist oder nicht zu hoch ist. Sobald das Bezeichnungsfeld 2304 oder das Bezeichnungsfeld 2305 den Wert "YES" annehmen, wird die Erzeugung der RSTI auf einem neuen Arbeitsblatt als unmöglich angesehen, so dass die Schaltfläche "Create instance in a new sheet" 2309 deaktiviert wird. Wenn in diesen beiden Bezeichnungsfeldern der Wert "NO" angezeigt wird, ist die Instanziierungsoperation auf einem neuen Arbeitsblatt möglich, so dass die Schaltfläche "Create instance in a new sheet" 2309 aktiviert wird. Wenn der Benutzer des Tabellenkalkulationsprogramms mit der Zeigeeinheit 105 auf diese Schaltfläche klickt, wird die Instanziierungsoperation auf einem neuen Arbeitsblatt durchgeführt, und daraufhin wird das Dialogfeld 2300 des RST-Instanziators geschlossen.
  • • 2. Zweite Operation: Einfügen von neuen Elementen in eine festgelegte STI
  • Die zweite Operation findet statt, wenn der Benutzer des Tabellenkalkulationsprogramms auf der Grundlage seiner eigenen Kriterien, die hier nicht ausführlich beschrieben werden, entscheidet, neue Elemente in eine festgelegte STI einzufügen. Das entsprechende Szenario ist in der internationalen Patentanmeldung PCT/EP 02/09483 (IBM-Aktenzeichen FR9 2001 0029) mit dem Titel "System and method in an electronic spreadsheet for exporting-importing the content of input cells from a scalable template instance to another" von Aureglia u.a. beschrieben.
  • • 3. Dritte Operation: Einfügen von neuen Elementen in eine festgelegte RSTI
    • • Die dritte Operation findet statt, wenn der Benutzer des Tabellenkalkulationsprogramms auf der Grundlage seiner eigenen Kriterien, die hier nicht ausführlich beschrieben werden, entscheidet, neue Elemente in eine festgelegte RSTI einzufügen. In einer bevorzugten Ausführungsform der vorliegenden Erfindung umfasst diese Operation die folgenden Schritte:
    • • a. Der Benutzer des Tabellenkalkulationsprogramms wählt zuerst mit einem herkömmlichen Mittel wie beispielsweise der Zeigeeinheit 105 oder der Tastatur 104, jedoch nicht auf diese beschränkt, einen Zellenbereich seiner Wahl aus.
    • • b. RSTI Insertion Manager: Dann ruft der Benutzer des Tabellenkalkulationsprogramms über ein herkömmliches Mittel, das in einer Tabellenkalkulationsumgebung zur Verfügung steht, wie zum Beispiel (jedoch nicht auf diese beschränkt) funktionsspezifische Schaltflächen, Tastatur-Kurzbefehle, Menü- oder Untermenüeinträge, einen bestimmten ursprünglichen Befehl mit der Bezeichnung "RSTI Insertion Manager" auf, der das herkömmliche Mittel zum Einfügen von Zellen oder Zeilen in ein Arbeitsblatt um zusätzliche Funktionen ergänzt. In einer bevorzugten Ausführungsform der vorliegenden Erfindung wird der Befehl "RSTI Insertion Manager" mit denselben Mitteln aufgerufen, die in herkömmlichen elektronischen Arbeitsblättern zum Einfügen eines Zellenbereichs in ein Arbeitsblatt zur Verfügung stehen, wie zum Beispiel, jedoch nicht auf diese beschränkt, durch Anklicken eines Untermenüeintrags "Insert" des Menüeintrags "Range" mit der Zeigeeinheit 105 oder durch Drücken der Taste "Ctrl +" auf der Tastatur 104. Wenn der Befehl aufgerufen wird, wird zuerst ein Test durchgeführt, um festzustellen, ob die gerade ausgewählte Zelle zu einem Arbeitsblatt gehört, das eine vorhandene RSTI umfasst.
  • Wenn dies nicht der Fall ist, übergibt der Befehl die Steuerung dem Befehl "STI Insertion Manager", um auf das Vorhandensein einer STI zu achten, die durch die Einfügeoperation möglicherweise beeinträchtigt wird.
  • Wenn dies der Fall ist, wird ein zweiter Test durchgeführt, um festzustellen, ob die gerade ausgewählte Zelle in der auf dem aktuellen Arbeitsblatt vorhandenen RSTI enthalten ist.
  • Wenn nicht, werden die herkömmlichen Einfügeprozeduren, die in einer Tabellenkalkulationsumgebung zur Verfügung stehen, aufgerufen, nachdem ein Einfügemodus deaktiviert worden ist, der die auf dem aktuellen Arbeitsblatt vorhandene RSTI beschädigen würde. Wenn die gerade ausgewählte Zelle zu einer Zeile (beziehungsweise zu einer Spalte) gehört, die von der auf dem aktuellen Arbeitsblatt vorhandenen RSTI belegt wird, wird der Zeileneinfügemodus (beziehungsweise der Spalteneinfügemodus) deaktiviert.
  • Wenn dies der Fall ist, haben verschiedene Situationen ein unterschiedliches Verhalten des Befehls "RSTI Insertion Manager" zur Folge. Im Folgenden wird die auf dem aktuellen Arbeitsblatt vorhandene RSTI als die aktuelle RSTI oder der Kürze halber als cRSTI bezeichnet. Wenn die gerade ausgewählte Zelle überdies ebenfalls zu einer STI gehört, wird diese STI als die aktuelle STI oder der Kürze halber als cSTI bezeichnet.
  • Erstens würde die Einfügeoperation, wenn sie durchgeführt würde, die cRSTI beschädigen, wenn die gerade ausgewählte Zelle nicht im Hauptteil der cRSTI enthalten ist oder wenn die cRSTI bereits die Höchstzahl an REs erreicht hat und wenn die gerade ausgewählte Zelle nicht zum Hauptteil einer STI gehört. Folglich wird der Benutzer des Tabellenkalkulationsprogramms über ein herkömmliches Mittel zur Angabe aufgefordert, ob er die Einfügeoperation abbrechen oder aber fortsetzen möchte. Im ersten Fall geschieht nichts, da die Einfügeoperation abgebrochen wird. Im zweiten Fall wird die cRSTI nicht mehr als RSTI angegeben, und anschließend übergibt der Befehl die Steuerung dem Befehl "STI Insertion Manager", um auf das Vorhandensein einer STI zu achten, die durch die Einfügeoperation möglicherweise beeinträchtigt wird.
  • Zweitens besteht die Einfügeoperation im Einfügen von einer Anzahl von neuen Elementen in die cSTI, die der Anzahl der Zeilen des gerade ausgewählten Zellenbereichs entspricht, wenn die gerade ausgewählte Zeile nicht im Hauptteil der cRSTI enthalten ist oder wenn die cRSTI bereits die Höchstzahl an REs erreicht hat und wenn die gerade ausgewählte Zelle zum Hauptteil einer STI gehört, wobei jedoch die Struktur der RST, die die cRSTI übernimmt, erhalten bleibt. Wenn die Anzahl der freien Zeilen in dem Behälterbereich, der die cSTI enthält, höher ist als die Anzahl der neuen Elemente, die in die cSTI eingefügt werden sollen, wird die Elementeinfügeoperation in der cSTI durchgeführt, ohne den Behälterbereich, der die cSTI enthält, zu berühren. Wenn die Anzahl der freien Zeilen in dem Behälterbereich, der die cSTI enthält, geringer ist als die Anzahl der neuen Elemente, die in die cSTI eingefügt werden sollen, wird dieser Behälterbereich ebenso wie die anderen Behälterbereiche, die dieselbe Behälterzeile belegen, zuerst erweitert, indem neue Zeilen eingefügt werden, so dass die sich ergebende Anzahl von freien Zeilen in der cSTI das anschließende Einfügen der neuen Elemente in die cSTI ermöglicht, ohne die Struktur der RST, die die RSTI übernimmt, zu zerstören. In beiden Fällen erhält die cSTI neue Elemente, während die Anzahl der REs in der cRSTI unverändert bleibt.
  • Drittens besteht die Einfügeoperation im Einfügen eines neuen RE in die cRSTI, wenn die gerade ausgewählte Zelle im Hauptteil der cRSTI enthalten ist und die cRSTI noch nicht die Höchstzahl an REs erreicht hat und wenn die gerade ausgewählte Zelle nicht zum Hauptteil einer STI gehört. Entsprechend der Struktur der RST, die die cRSTI übernimmt, hat diese Aufnahme eines neuen RE zur Folge, dass eine STI je ST eingefügt wird, welche zur Definition des RE gehört. Jede dieser STIs ist in einem Behälterbereich enthalten, der zu einer Behälterzeile gehört, die zuerst als Teil der cRSTI erzeugt wird.
  • Viertens kann die Einfügeoperation nach zwei verschiedenen Arten vonstatten gehen, wenn die gerade ausgewählte Zelle im Hauptteil der cRSTI enthalten ist und die cRSTI noch nicht die Höchstzahl an REs erreicht hat und wenn die gerade ausgewählte Zelle zum Hauptteil einer STI gehört. Eine erste Möglichkeit, die dem zweiten vorstehend beschriebenen Fall entspricht, besteht darin, eine der Anzahl der Zeilen des gerade ausgewählten Zellenbereichs entsprechende Anzahl von neuen Elementen in die cSTI einzufügen, wobei jedoch die Struktur der RST, die die cRSTI übernimmt, erhalten bleibt. Eine zweite Möglichkeit, die dem dritten vorstehend beschriebenen Fall entspricht, besteht darin, ein neues RE in die cRSTI einzufügen. Um zwischen diesen beiden Möglichkeiten zu unterscheiden, wird der Benutzer des Tabellenkalkulationsprogramms über ein herkömmliches Mittel aufgefordert, den Einfügemodus anzugeben, nach dem er vorgehen möchte. Sobald der Benutzer des Tabellenkalkulationsprogramms seine Wahl angegeben hat, wird die Einfügeoperation in der vorstehend beschriebenen Weise durchgeführt, indem entweder eine der Anzahl der Zeilen des gerade ausgewählten Zellenbereichs entsprechende Anzahl von neuen Elementen eingefügt oder indem ein neues RE in die cRSTI eingefügt wird.
  • Nun Bezug nehmend auf 18A können die vier Fälle, die vorstehend beschrieben wurden, entsprechend der Position der gerade ausgewählten Zelle in der cRSTI 2001 veranschaulicht werden. Wenn die gerade ausgewählte Zelle dem Zellenbereich 2018 oder 2023 entspricht, wird der Benutzer des Tabellenkalkulationsprogramms zur Angabe aufgefordert, ob er neue Elemente in die STI 2034 oder 2033 einfügen möchte oder ob er ein neues RE unter der Behälterzeile 2010 oder 2008 einfügen möchte. Wenn die gerade ausgewählte Zelle dem Zellenbereich 2022 oder 2020 entspricht, hat die Einfügeoperation zur Folge, dass unter der Behälterzeile 2010 oder 2009 ein neues RE erzeugt wird. Wenn die gerade ausgewählte Zelle dem Zellenbereich 2021 oder 2025 oder 2019 entspricht, hat die Einfügeoperation zur Folge, dass in der STI 2031 oder 2013 oder 2032 ein neues Element erzeugt wird. Wenn die gerade ausgewählte Zelle dem Zellenbereich 2024 entspricht, wird der Benutzer des Tabellenkalkulationsprogramms zur Angabe aufgefordert, ob er die Einfügeoperation abbrechen oder sie um den Preis fortsetzen möchte, dass das rekursive Wesen der cRSTI zerstört wird.
  • E. VERFAHREN
  • E1. RST-Manager-Verfahren
  • Das Verfahren zur Verwaltung von EFS, MEFs, EPs, MEPs, STs, REs und RSTs, das in der bevorzugten Ausführungsform der vorliegenden Erfindung verwendet wird, ist im Flussdiagramm 800 von 8 zusammengefasst. Dieses Verfahren kann als Verarbeitung des Befehls "RST Manager" betrachtet werden.
    • • Im Schritt 801 befindet sich das Verfahren in seinem standardmäßigen Zustand, in dem es auf ein Ereignis zum Starten des Prozesses wartet.
    • • Im Schritt 802 wird der Befehl "RST Manager" als Ergebnis einer Benutzeraktion festgestellt. Diese Aktion kann beispielsweise Folgende sein:
    • • eine bestimmte Tastenkombination auf der Tastatur 104 oder
    • • das Anklicken einer bestimmten Schaltfläche mit der Zeigeeinheit 105 oder
    • • ein anderes ähnliches Mittel, das hier nicht näher angegeben wird.
    • • Im Schritt 803 werden einige lokale Variablen mit einem Anfangswert belegt:
    • • die lokale Variable RSTM_select wird auf den Wert 0 (null) gesetzt,
    • • die lokale Variable RSTM_new wird auf den Wert "NONE" gesetzt,
    • • die lokale Variable RSTM_range wird auf den Wert "NO" gesetzt,
    • • die lokale Variable RSTM_index wird auf den Wert 1 (eins) gesetzt, und
    • • die lokale Variable RSTM_child wird auf den Wert "NO" gesetzt.
    • • Im Schritt 804 werden die fünf Tabellen EFT 700, EPT 710, STT 720, RET 2210 und RSTT 2220 ausgewertet, um die Tabelle RSTMT 2230 abzuleiten. Für jeden einzelnen Datensatz 701 oder 711 oder 721 oder 2211 oder 2221, der in einer dieser fünf Tabellen vorgefunden wird, wird ein neuer Datensatz 2231 in der RSTMT-Tabelle 2230 angelegt.
  • Nun Bezug nehmend auf die 7A, 7B, 7C, 20A, 20B und 20C wird dies ausgeführt, indem alle im Datensatz 701 festgelegten Felder (das Feld "Name" 702, das Feld "Last Change Date" 703, das Feld "Description Ptr" 704, das Feld "Row #" 705, das Feld "Column #" 706 und das Feld "Type" 707) oder alle im Datensatz 711 festgelegten Felder (das Feld "Name" 712, das Feld "Last Change Date" 713, das Feld "Description Ptr" 714, das Feld "Row #" 715, das Feld "Column #" 716 und das Feld "Type" 717) oder alle im Datensatz 721 festgelegten Felder (das Feld "Name" 722, das Feld "Last Change Date" 723, das Feld "Description Ptr" 724, das Feld "Min Element #" 725, das Feld "Max Element #" 726 und das Feld "Type" 727) oder alle im Datensatz 2211 festgelegten Felder (das Feld "Name" 2212, das Feld "Last Change Date" 2213, das Feld "Description Ptr" 2214, das Feld "Row #" 2215, das Feld "Column #" 2216 und das Feld "Type" 2217) oder alle im Datensatz 2221 festgelegten Felder (das Feld "Name" 2222, das Feld "Last Change Date" 2223, das Feld "Description Ptr" 2224, das Feld "Min Element #" 2225, das Feld "Max Element #" 2226 und das Feld "Type" 2227) hintereinander in die entsprechenden Felder des Datensatzes 2231 (das Feld "Name" 2232, das Feld "Last Change Date" 2233, das Feld "Description Ptr" 2234, das Feld "Info Field 1" 2235, das Feld "Info Field 2" 2236 und das Feld "Type" 2237) kopiert werden, im Feld "Type" 2237 dann das Attribut "SELECTED" 2242 auf "NO" und das Attribut "NATURE" 2241 auf die Werte "FORMAT" oder "PROFILE" oder "TEMPLATE" oder "RECELEMENT" oder "RECTEMPLATE" gesetzt werden, wenn der Datensatz 2231 aus einem Datensatz 701 oder 711 oder 721 oder 2211 oder 2221 kopiert wurde, und indem anschließend der Anfangswert des letzten Feldes "Index" 2238 auf den Wert eines Zählers gesetzt wird, dessen Zählstand sich bei jedem neuen Datensatz erhöht und der mit dem Wert 1 (eins) beginnt.
    • • Im Schritt 805 wird das Dialogfeld 200 des RST-Managers auf dem Bildschirm 106 angezeigt.
    • • Die Information "Name", die ganz oben im Listenfeld 213 erscheint, entspricht dem Feld "Name" 2232 des Datensatzes 2231 in der RSTMT-Tabelle 2230, dessen Feld "Index" 2238 den gleichen Wert wie die lokale Variable RSTM_index hat. Informationen unterhalb von "Name" in diesem Listenfeld 213 entsprechen dem Feld "Name" 2232 der folgenden Datensätze 2231 der RSTMT-Tabelle 2230.
    • • Die Information "Type", die ganz oben im Listenfeld 214 erscheint, wird vom Feld "Type" 2237 (Attribute "NATURE" 2241 und "META" 2239) des Datensatzes 2231 in der RSTMT-Tabelle 2230 abgeleitet, dessen Feld "Index" 2238 den gleichen Wert wie die lokale Variable RSTM_index hat. Informationen unterhalb von "Type" in diesem Listenfeld 213 werden vom Feld "Type" 2237 (Attribute "NATURE" 2241 und "META" 2239) der folgenden Datensätze 2231 der RSTMT-Tabelle 2230 abgeleitet.
    • • Die Information "Modified", die ganz oben im Listenfeld 202 erscheint, entspricht dem Feld "Last Change Date" 2233 des Datensatzes 2231 in der RSTMT-Tabelle 2230, dessen Feld "Index" 2238 den gleichen Wert wie die lokale Variable RSTM_index hat. Informationen unterhalb von "Modified" in diesem Listenfeld 213 entsprechen dem Feld "Last Change Date" 2233 der folgenden Datensätze 2231 der RSTMT-Tabelle 2230.
    • • Das Kontrollkästchen 212 wird angehakt, wenn das Attribut SELECTED" 2242 des Felds "Type" 2237 des Datensatzes 2231 in der RSTMT-Tabelle 2230, dessen Feld "Index" 2238 den gleichen Wert wie die lokale Variable RSTM_index hat, auf "YES" gesetzt ist. Die darunter befindlichen Kontrollkästchen links des Listenfeldes 213 werden ebenfalls vom Feld "Type" 2237 (Attribut "SELECTED" 2242) der folgenden Datensätze 2231 der RSTMT-Tabelle 2230 abgeleitet.
    • • Die Optionsschaltfläche "Format" 217 ist nur dann mit einem schwarzen Punkt gekennzeichnet, wenn die lokale Variable RSTM_new den Wert "FORMAT" hat. Die Optionsschaltfläche "Profile" 209 ist nur dann mit einem schwarzen Punkt gekennzeichnet, wenn die lokale Variable RSTM_new den Wert "PROFILE" hat. Die Optionsschaltfläche "Template" 216 ist nur dann mit einem schwarzen Punkt gekennzeichnet, wenn die lokale Variable RSTM_new den Wert "TEMPLATE" hat. Die Optionsschaltfläche "RE" 218 ist nur dann mit einem schwarzen Punkt gekennzeichnet, wenn die lokale Variable RSTM_new den Wert "RECELEMENT" hat. Die Optionsschaltfläche "Recursive Template" 219 ist nur dann mit einem schwarzen Punkt gekennzeichnet, wenn die lokale Variable RSTM_new den Wert "RECTEMPLATE" hat.
    • • Das Kontrollkästchen "From current selection" 208 ist nur dann angehakt, wenn die lokale Variable RSTM_range den Wert "YES" hat.
    • • Das Kontrollkästchen "Including child objects (for Export)" 220 ist nur dann angehakt, wenn die lokale Variable RSTM_child den Wert "YES" hat.
    • • Im Schritt 806 wartet das Verfahren auf eine Benutzeraktion im Dialogfeld 200 des RST-Managers. Eine solche Benutzeraktion ist üblicherweise das Ergebnis eines Klicks mit der Zeigeeinheit 105, wobei dieser Auslöser jedoch auch andere ähnliche Formen annehmen kann wie zum Beispiel, jedoch nicht auf diese beschränkt, eine bestimmte Tastenkombination auf der Tastatur 104 oder irgendein anderes ähnliches Mittel, das hier nicht näher angegeben wird.
    • • Im Schritt 807 wird eine Benutzeraktion im Dialogfeld 200 des RST-Managers festgestellt.
    • • Wenn die Benutzeraktion ein Klick auf die Schaltfläche "Delete" 207 ist, wird die Steuerung dem Schritt 808 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Import" 205 ist, wird die Steuerung dem Schritt 810 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Done" 201 oder auf die Schaltfläche 215 zum Schließen des Fensters ist, wird die Steuerung dem Schritt 834 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Export" 206 ist, wird die Steuerung dem Schritt 811 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die horizontale Bildlaufleiste 203, entweder für die Aufwärts- oder die Abwärtsrichtung, ist, wird die Steuerung dem Schritt 814 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Optionsschaltflächen "Format" 217 oder "Profile" 209 oder "Template" 216 oder "RE" 218 oder "Recursive Template" 219 ist, wird die Steuerung dem Schritt 815 übergeben;
    • • wenn die Benutzeraktion ein Klick auf das Kontrollkästchen "From current selection" 208 ist, wird die Steuerung dem Schritt 816 übergeben;
    • • wenn die Benutzeraktion ein Klick auf das Kontrollkästchen "Including child objects (for Export)" 220 ist, wird die Steuerung dem Schritt 841 übergeben;
    • • wenn die Benutzeraktion ein Klick auf ein ganz oben befindliches Kontrollkästchen wie zum Beispiel das Kontrollkästchen 212 ist, wird die Steuerung dem Schritt 817 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Instanciate" 204 ist, wird die Steuerung dem Schritt 830 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Edit" 211 ist, wird die Steuerung dem Schritt 824 übergeben, und
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Create New" 210 ist, wird die Steuerung dem Schritt 818 übergeben.
    • • Im Schritt 808 wird ein Test an jedem der Datensätze 2231 der RSTMT-Tabelle 2230 durchgeführt, bei dem das Attribut "SELECTED" 2242 mit dem Teilfeld "REFERENCED OBJECT" (RO) 2240d in dessen Feld "Type" 2237 den Wert "YES" hat oder das Teilfeld "INSTANCE REFERENCE" (IR) 2240c einen Wert größer als 1 (eins) hat (bei diesem Test wird festgestellt, ob es Objekte gibt, die sich auf eines der ausgewählten Objekte beziehen, oder ob es Instanzen gibt, die eines der ausgewählten Objekte übernehmen).
    • • Wenn dies der Fall ist, wird die Steuerung dem Schritt 835 übergeben (was bedeutet, dass von einer ST oder einer STI oder einem RE oder einer RST oder einer RSTI auf mindestens einen zuvor ausgewählten Datensatz 2231 der RSTMT-Tabelle 2230 verwiesen wurde);
    • • andernfalls wird die Steuerung dem Schritt 809 übergeben.
    • • Im Schritt 809 wird der jeweilige Datensatz 701, 711, 721, 2211 und 2221 aus der EFT-Tabelle 700, der EPT-Tabelle 710, der STT-Tabelle 720, der RET-Tabelle 2210 und der RSTT-Tabelle 2220 entfernt, wenn das entsprechende jeweilige Feld "Name" 702, 712, 722, 2212 und 2222 mit dem Feld "Name" 2232 eines Datensatzes 2231 der RSTMT-Tabelle 2230 übereinstimmt, bei dem das Attribut "SELECTED" 2242 seines Feldes "Type" 2237 den Wert "YES" hat, was sich aus dem Schritt 817 ergibt. Anschließend wird die lokale Variable RSTM_select auf den Wert 0 (null) zurückgesetzt. Dann wird die Steuerung dem Schritt 804 übergeben, um die RSTMT-Tabelle 2230 neu zu erstellen.
    • • Im Schritt 810 wird der Befehl "RST Import Manager" ausgegeben, und daraufhin wird die Steuerung dem Schritt 834 übergeben.
    • • Im Schritt 811 wird ein Test durchgeführt, um festzustellen, ob die lokale Variable RSTM_select den Wert 0 (null) hat.
    • • Wenn dies der Fall ist, wird die Steuerung dem Schritt 813 übergeben;
    • • andernfalls wird die Steuerung dem Schritt 812 übergeben.
    • • Im Schritt 812 wird der Befehl "RST Export Manager" ausgegeben, und daraufhin wird die Steuerung dem Schritt 834 übergeben.
    • • Im Schritt 813 wird eine Warnmeldung ausgegeben, um den Benutzer darauf aufmerksam zu machen, dass mindestens ein Objekt ausgewählt werden muss, bevor die Schaltfläche "Export" 206 angeklickt wird. Dies kann üblicherweise geschehen, indem auf dem Bildschirm 106 eine Warnmeldung in einem Dialogfenster oder in einem Bereich der Statuszeile angezeigt wird, aber ein anderes ähnliches Mittel könnte stattdessen ebenfalls verwendet werden. Sobald der Benutzer diesen Hinweis über ein herkömmliches Mittel wie zum Beispiel einen Klick mit der Zeigeeinheit 105 auf eine Schaltfläche "OK", die in einem Dialogfenster mit einer Warnmeldung vorhanden ist, oder über ein anderes ähnliches Mittel bestätigt hat, wird die Steuerung dem Schritt 805 übergeben.
    • • Im Schritt 814 wird der Wert der lokalen Variablen RSTM_index entsprechend der von der Zeigeeinheit 105 in der horizontalen Bildlaufleiste 203 vorgegebenen Richtung (nach oben oder nach unten) entweder um 1 (eins) erhöht oder verringert, und dies, solange ihr Wert positiv und kleiner als oder gleichgroß wie die Anzahl der Datensätze 2231 bleibt, die in der RSTMT-Tabelle 2230 festgelegt wurden. Dann wird die Steuerung dem Schritt 805 übergeben.
    • • Im Schritt 815 wird die lokale Variable RSTM_new aktualisiert, um die vom Benutzer mit der Zeigeeinheit 105 angeklickte Optionsschaltfläche widerzuspiegeln.
    • • Wenn der Benutzer die Optionsschaltfläche "Format" 217 angeklickt hat, nimmt die lokale Variable RSTM_new den Wert "FORMAT" an.
    • • Wenn der Benutzer die Optionsschaltfläche "Profile" 209 angeklickt hat, nimmt die lokale Variable RSTM_new den Wert "PROFILE" an.
    • • Wenn der Benutzer die Optionsschaltfläche "Template" 216 angeklickt hat, nimmt die lokale Variable RSTM_new den Wert "TEMPLATE" an.
    • • Wenn der Benutzer die Optionsschaltfläche "RE" 218 angeklickt hat, nimmt die lokale Variable RSTM_new den Wert "RECELEMENT" an.
    • • Wenn der Benutzer die Optionsschaltfläche "Recursive Template" 219 angeklickt hat, nimmt die lokale Variable RSTM_new den Wert "RECTEMPLATE" an.
  • Daraufhin wird die Steuerung dem Schritt 805 übergeben.
    • • Im Schritt 816 wird die lokale Variable RSTM_range aktualisiert, so dass ihr Wert zwischen "YES" und "NO" wechselt. Überdies wird in dem Kontrollkästchen 206 in Abhängigkeit davon, ob dieses Kontrollkästchen 206 zuvor angehakt beziehungsweise nicht angehakt war, ein Häkchen gesetzt beziehungsweise entfernt. Dann wird die Steuerung dem Schritt 805 übergeben.
    • • Im Schritt 817 aktualisiert das Verfahren den Wert des Feldes "Type" 2237 des Datensatzes 2231 in der RSTMT-Tabelle 2230, dessen Feld "Name" 2232 einen der Zeichenfolge im Listenfeld 213 entsprechenden Eintrag aufweist, welches sich unmittelbar rechts des Kontrollkästchens befindet, auf das der Benutzer soeben geklickt hat.
  • Wenn der vorherige Wert des Attributs "SELECTED" 2242 dieses Felds "Type" 2237 den Wert "YES" hatte, besteht die Aktualisierung des Wertes darin, dieses Attribut "SELECTED" 2242 auf "NO" zu setzen, und umgekehrt, wenn der vorherige Wert des Attributs "SELECTED" 2242 "NO" lautete, besteht die Aktualisierung des Wertes darin, dieses Attribut "SELECTED" 2242 auf "YES" zu setzen.
  • Im ersten Fall wird der Wert der lokalen Variablen RSTM_select um 1 verringert, und im zweiten Fall wird der Wert der lokalen Variablen RSTM_select um 1 erhöht.
  • Im ersten Fall wird außerdem das Häkchen, das zuvor in dem Kontrollkästchen vorhanden war, auf das der Benutzer soeben geklickt hat, aus diesem Kontrollkästchen entfernt, und im zweiten Fall wird in dem Kontrollkästchen, auf das der Benutzer soeben geklickt hat, ein Häkchen angezeigt. Daraufhin wird die Steuerung dem Schritt 805 übergeben.
    • • Im Schritt 818 wird ein Test durchgeführt, um festzustellen, ob die lokale Variable RSTM_new den Wert "NONE" hat. Wenn dies der Fall ist, wird die Steuerung dem Schritt 819 übergeben; andernfalls wird die Steuerung dem Schritt 820 übergeben.
    • • Im Schritt 819 wird eine Warnmeldung ausgegeben, um den Benutzer darauf aufmerksam zu machen, dass mindestens eine Option (die Optionsschaltfläche "Format" 217 oder die Optionsschaltfläche "Profile" 209 oder die Optionsschaltfläche "Template" 216 oder die Optionsschaltfläche "RE" 218 oder die Optionsschaltfläche "Recursive Template" 219) ausgewählt werden muss, bevor die Schaltfläche "Create New" 210 angeklickt wird. Dies kann üblicherweise geschehen, indem auf dem Bildschirm 106 eine Warnmeldung in einem Dialogfenster oder in einem Bereich der Statuszeile angezeigt wird, aber ein anderes ähnliches Mittel könnte stattdessen ebenfalls verwendet werden. Sobald der Benutzer diesen Hinweis über ein herkömmliches Mittel wie zum Beispiel einen Klick mit der Zeigeeinheit 105 auf eine Schaltfläche "OK", die in einem Dialogfenster mit einer Warnmeldung vorhanden ist, oder über ein anderes ähnliches Mittel bestätigt hat, wird die Steuerung dem Schritt 805 übergeben.
    • • Im Schritt 820 wird ein Test durchgeführt, um festzustellen, welchen Wert die lokale Variable RSTM_new angenommen hat.
    • • Wenn festgestellt wird, dass ihr Wert "FORMAT" lautet, wird die Steuerung dem Schritt 821 übergeben;
    • • wenn festgestellt wird, dass ihr Wert "PROFILE" lautet, wird die Steuerung dem Schritt 822 übergeben;
    • • wenn festgestellt wird, dass ihr Wert "TEMPLATE" lautet, wird die Steuerung dem Schritt 823 übergeben;
    • • wenn festgestellt wird, dass ihr Wert "RECELEMENT" lautet, wird die Steuerung dem Schritt 836 übergeben;
    • • wenn festgestellt wird, dass ihr Wert "RECTEMPLATE" lautet, wird die Steuerung dem Schritt 837 übergeben.
    • • Im Schritt 821 wird der Befehl "EF Editor" ausgegeben, wobei zwei Parameter ("NEW"; RSTM_range) übergeben werden, und anschließend wird die Steuerung dem Schritt 834 übergeben.
    • • Im Schritt 822 wird der Befehl "EP Editor" ausgegeben, wobei zwei Parameter ("NEW"; RSTM_range) übergeben werden, und anschließend wird die Steuerung dem Schritt 834 übergeben.
    • • Im Schritt 823 wird der Befehl "ST Editor" ausgegeben, wobei ein Parameter ("NEW") übergeben wird, und anschließend wird die Steuerung dem Schritt 834 übergeben.
    • • Im Schritt 824 wird ein Test durchgeführt, um festzustellen, ob die lokale Variable RSTM_select den Wert 1 (eins) hat. Wenn dies der Fall ist, wird die Steuerung dem Schritt 825 übergeben; andernfalls wird die Steuerung dem Schritt 829 übergeben.
    • • Im Schritt 825 wird ein Test durchgeführt, um die Art des ausgewählten Objekts festzustellen, die vom Attribut "NATURE" 2241 des Feldes "Type" 2237 des entsprechenden Datensatzes 2231 der RSTMT-Tabelle 2230 angegeben wird.
    • • Wenn festgestellt wird, dass sie "FORMAT" lautet, wird die Steuerung dem Schritt 826 übergeben;
    • • wenn festgestellt wird, dass sie "PROFILE" lautet, wird die Steuerung dem Schritt 827 übergeben;
    • • wenn festgestellt wird, dass sie "TEMPLATE" lautet, wird die Steuerung dem Schritt 828 übergeben;
    • • wenn festgestellt wird, dass sie "RECELEMENT" lautet, wird die Steuerung dem Schritt 838 übergeben;
    • • wenn festgestellt wird, dass sie "RECTEMPLATE" lautet, wird die Steuerung dem Schritt 839 übergeben.
    • • Im Schritt 826 wird der Befehl "EP Editor" ausgegeben, wobei ein Parameter übergeben wird, der gleich dem Feld "Name" 2232 des unverwechselbaren Datensatzes 2231 der RSTMT-Tabelle 2230 ist, bei dem das Attribut "SELECTED" 2242 von dessen Feld "Type" 2237 den Wert "YES" hat, und anschließend wird die Steuerung dem Schritt 834 übergeben.
    • • Im Schritt 827 wird der Befehl "EF Editor" ausgegeben, wobei ein Parameter übergeben wird, der gleich dem Feld "Name" 2232 des unverwechselbaren Datensatzes 2231 der RSTMT-Tabelle 2230 ist, bei dem das Attribut "SELECTED" 2242 von dessen Feld "Type" 2237 den Wert "YES" hat, und anschließend wird die Steuerung dem Schritt 834 übergeben.
    • • Im Schritt 828 wird der Befehl "ST Editor" ausgegeben, wobei ein Parameter übergeben wird, der gleich dem Feld "Name" 2232 des unverwechselbaren Datensatzes 2231 der RSTMT-Tabelle 2230 ist, bei dem das Attribut "SELECTED" 2242 von dessen Feld "Type" 2237 den Wert "YES" hat, und anschließend wird die Steuerung dem Schritt 834 übergeben.
    • • Im Schritt 829 wird eine Warnmeldung ausgegeben, um den Benutzer darauf aufmerksam zu machen, dass im Dialogfeld des ST-Managers (über die Kontrollkästchen wie zum Beispiel dem Kontrollkästchen 212) ein einzelnes Objekt ausgewählt werden muss, bevor die Schaltfläche "Edit" 211 oder die Schaltfläche "Instanciate" 204 angeklickt wird. Dies kann üblicherweise geschehen, indem auf dem Bildschirm 106 eine Warnmeldung in einem Dialogfenster oder in einem Bereich der Statuszeile angezeigt wird, aber ein anderes ähnliches Mittel könnte stattdessen ebenfalls verwendet werden. Sobald der Benutzer diesen Hinweis über ein herkömmliches Mittel wie zum Beispiel einen Klick mit der Zeigeeinheit 105 auf eine Schaltfläche "OK", die in einem Dialogfenster mit einer Warnmeldung vorhanden ist, oder über ein anderes ähnliches Mittel bestätigt hat, wird die Steuerung dem Schritt 805 übergeben.
    • • Im Schritt 830 wird ein Test durchgeführt, um festzustellen, ob die lokale Variable RSTM_select den Wert 1 (eins) hat. Wenn dies der Fall ist, wird die Steuerung dem Schritt 831 übergeben; andernfalls wird die Steuerung dem Schritt 829 übergeben.
    • • Im Schritt 831 wird ein Test durchgeführt, um die Art des ausgewählten Objekts festzustellen, die vom Attribut "NATURE" 2241 des Feldes "Type" 2237 des entsprechenden Datensatzes 2231 der RSTMT-Tabelle 2230 angegeben wird.
    • • Wenn festgestellt wird, dass sie "TEMPLATE" lautet, wird die Steuerung dem Schritt 832 übergeben;
    • • wenn festgestellt wird, dass sie "RECTEMPLATE" lautet, wird die Steuerung dem Schritt 840 übergeben;
    • • andernfalls wird die Steuerung dem Schritt 833 übergeben.
    • • Im Schritt 832 wird der Befehl "ST Instanciator" ausgegeben, wobei ein Parameter übergeben wird, der gleich dem Feld "Name" 2232 des unverwechselbaren Datensatzes 2231 der RSTMT-Tabelle 2230 ist, bei dem das Attribut "SELECTED" 2242 von dessen Feld "Type" 2237 den Wert "YES" hat, und anschließend wird die Steuerung dem Schritt 834 übergeben.
    • • Im Schritt 833 wird eine Warnmeldung ausgegeben, um den Benutzer darauf aufmerksam zu machen, dass im Dialogfeld des RST-Managers (über die Kontrollkästchen wie zum Beispiel dem Kontrollkästchen 212) ein einzelnes ST-Objekt oder ein einzelnes RST-Objekt ausgewählt werden muss, bevor die Schaltfläche "Instanciate" 204 angeklickt wird. Dies kann üblicherweise geschehen, indem auf dem Bildschirm 106 eine Warnmeldung in einem Dialogfenster oder in einem Bereich der Statuszeile angezeigt wird, aber ein anderes ähnliches Mittel könnte stattdessen ebenfalls verwendet werden. Sobald der Benutzer diesen Hinweis über ein herkömmliches Mittel wie zum Beispiel einen Klick mit der Zeigeeinheit 105 auf eine Schaltfläche "OK", die in einem Dialogfenster mit einer Warnmeldung vorhanden ist, oder über ein anderes ähnliches Mittel bestätigt hat, wird die Steuerung dem Schritt 805 übergeben.
    • • Im Schritt 834 wird das Dialogfeld 200 des RST-Managers geschlossen, so dass es vom Bildschirm 106 verschwindet, und daraufhin wird die Steuerung dem ersten Schritt 801 zur Verarbeitung eines künftigen RST-Manager-Befehls übergeben.
    • • Im Schritt 835 wird eine Warnmeldung ausgegeben, um den Benutzer darauf aufmerksam zu machen, dass ein anderes Objekt auf mindestens ein ausgewähltes Objekt, das gelöscht werden soll, verweist. Dies kann üblicherweise geschehen, indem auf dem Bildschirm 106 eine Warnmeldung in einem Dialogfenster oder in einem Bereich der Statuszeile angezeigt wird, aber ein anderes ähnliches Mittel könnte stattdessen ebenfalls verwendet werden. Dann wird der Benutzer aufgefordert, die aktuelle Löschoperation ("Delete") entweder abzubrechen oder fortzusetzen. Dies kann üblicherweise geschehen, indem auf dem Bildschirm 106 eine Aufforderungsmeldung in einem Dialogfenster angezeigt wird, aber ein anderes ähnliches Mittel könnte stattdessen ebenfalls verwendet werden. Sobald der Benutzer über ein herkömmliches Mittel wie zum Beispiel einen Klick mit der Zeigeeinheit 105 auf eine Schaltfläche "Cancel" oder "Continue", die in einem Dialogfenster mit einer Aufforderungsmeldung vorhanden ist, oder über ein anderes ähnliches Mittel seine Wahl getroffen hat, wird die Steuerung dem Schritt 805 übergeben, wenn sich der Benutzer des Tabellenkalkulationsprogramms entscheidet, die Löschoperation ("Delete") abzubrechen, oder dem Schritt 809, wenn sich der Benutzer des Tabellenkalkulationsprogramms entscheidet, die Löschoperation fortzusetzen.
    • • Im Schritt 836 wird der Befehl "RE Editor" ausgegeben, wobei ein Parameter ("NEW") übergeben wird, und anschließend wird die Steuerung dem Schritt 834 übergeben.
    • • Im Schritt 837 wird der Befehl "RST Editor" ausgegeben, wobei ein Parameter ("NEW") übergeben wird, und anschließend wird die Steuerung dem Schritt 834 übergeben.
    • • Im Schritt 838 wird der Befehl "RE Editor" ausgegeben, wobei ein Parameter übergeben wird, der gleich dem Feld "Name" 2232 des unverwechselbaren Datensatzes 2231 der RSTMT-Tabelle 2230 ist, bei dem das Attribut "SELECTED" 2242 von dessen Feld "Type" 2237 den Wert "YES" hat, und anschließend wird die Steuerung dem Schritt 834 übergeben.
    • • Im Schritt 839 wird der Befehl "RST Editor" ausgegeben, wobei ein Parameter übergeben wird, der gleich dem Feld "Name" 2232 des unverwechselbaren Datensatzes 2231 der RSTMT-Tabelle 2230 ist, bei dem das Attribut "SELECTED" 2242 von dessen Feld "Type" 2237 den Wert "YES" hat, und anschließend wird die Steuerung dem Schritt 834 übergeben.
    • • Im Schritt 840 wird der Befehl "RST Instanciator" ausgegeben, wobei ein Parameter übergeben wird, der gleich dem Feld "Name" 2232 des unverwechselbaren Datensatzes 2231 der RSTMT-Tabelle 2230 ist, bei dem das Attribut "SELECTED" 2242 von dessen Feld "Type" 2237 den Wert "YES" hat, und anschließend wird die Steuerung dem Schritt 834 übergeben.
    • • Im Schritt 841 wird der Wert der lokalen Variablen RSTM_child aktualisiert, indem die Werte "YES" und "NO" ausgetauscht werden. Daraufhin wird die Steuerung dem Schritt 805 übergeben.
  • E2. EF-Editor-Verfahren
  • Das Verfahren zur Erzeugung oder Aktualisierung von EFs oder MEFs, das in der bevorzugten Ausführungsform der vorliegenden Erfindung verwendet wird, ist im Flussdiagramm 900 von 9 zusammengefasst. Dieses Verfahren kann als Verarbeitung des Befehls "EF Editor" betrachtet werden.
    • • Im Schritt 901 befindet sich das Verfahren in seinem standardmäßigen Zustand, in dem es auf ein Ereignis zum Starten des Prozesses wartet.
    • • Im Schritt 902 wird der Befehl "EF Editor" als Ergebnis einer Benutzeraktion festgestellt. Diese Aktion kann beispielsweise Folgende sein:
    • • eine bestimmte Tastenkombination auf der Tastatur 104 oder • das Anklicken einer bestimmten Schaltfläche mit der Zeigeeinheit 105 oder
    • • ein anderes ähnliches Mittel, das hier nicht näher angegeben wird.
    • • Im Schritt 903 werden die Parameter des Befehls abgerufen. Sie entsprechen:
    • • einem ersten zwingend notwendigen Parameter EFE_name, der entweder einen reservierten Wert "NEW" oder einen anderen Wert annehmen kann, welcher dem Namen einer Zeichenfolge entspricht, der im Feld "Name" 2232 eines Datensatzes 2231 in der RSTMT-Tabelle 2230 vorgefunden wird, und
    • • einem zweiten optionalen Parameter EFE_range, der nur zwei vorher festgelegte Werte, "YES" und "NO", annehmen kann. Dieser zweite optionale Parameter muss vorhanden sein, wenn der Wert des ersten zwingend notwendigen Parameters anders als "NEW" lautet.
  • Diese beiden Parameter werden als lokale Variablen abgelegt.
    • • Im Schritt 904 werden einige lokale Variablen mit einem Anfangswert belegt: Die lokale Variable EFE_meta wird auf den Wert "NO" gesetzt, und die lokale variable EFE_size wird auf den Wert 8 (acht) gesetzt.
    • • Im Schritt 905 wird ein Test durchgeführt, um festzustellen, welchen Wert die lokale Variable EFE_name angenommen hat. Wenn festgestellt wird, dass ihr Wert "NEW" lautet, wird die Steuerung dem Schritt 909 übergeben; andernfalls wird die Steuerung dem Schritt 906 übergeben.
    • • Im Schritt 906 wird die EFT-Tabelle 700 nach einem Datensatz 701 durchsucht, bei dem der Wert im Feld "Name" 702 gleich dem von der lokalen Variablen EFE_name angenommenen Wert ist. Wenn ein solcher Datensatz gefunden wird, wird die Steuerung dem Schritt 908 übergeben; andernfalls wird die Steuerung dem Schritt 907 übergeben.
    • • Im Schritt 907 wird eine Ausnahmebedingungs-Behandlungsroutine aufgerufen, um diese "Should-not-occur"-Bedingung zu behandeln. Eine solche Operation hängt von der Ausführungsart ab und kann verschiedene Formen wie zum Beispiel die Anzeige eines Dialogfensters mit einer Fehlermeldung auf dem Bildschirm 106 annehmen. Daraufhin wird die Steuerung dem Schritt 925 übergeben.
    • • Im Schritt 908
    • • wird die lokale Variable EFE_meta entsprechend dem Wert des Attributs "META" 708 im Feld "Type" 707 des Datensatzes 701, der im Schritt 906 gefunden wurde, auf den Wert "YES" oder "NO" gesetzt,
    • • wird die lokale Variable EFE_size auf den Wert gesetzt, der im Feld "Column #" 706 des im Schritt 906 gefundenen Datensatzes 701 vorgefunden wird, und
    • • wird der Speicherplatz, auf den das Feld "Description Ptr" 704 des im Schritt 906 gefundenen Datensatzes 701 zeigt, in die Zwischenablage kopiert.
  • Daraufhin wird die Steuerung dem Schritt 912 übergeben.
    • • Im Schritt 909 wird entsprechend einer Namensfolge, die in einer bevorzugten Ausführungsform der vorliegenden Erfindung die Form "New XX" hat, ein neuer Name für das neu erzeugte EF oder MEF festgelegt, wobei XX einem Zählerwert entspricht, der in Bezug auf alle Namen, die zuvor festgelegt und in den Feldern "Name" 702, 712, 722, 2212 und 2222 erfasst wurden, welche sich in den jeweiligen Datensätzen 701, 711, 721, 2211 und 2221 der jeweiligen Tabellen EFT 700, EPT 710, STT 720, RET 2210 und RSST 2220 befinden, die Unverwechselbarkeit des Namens sicherstellt. Ein anderes ähnliches herkömmliches Mittel könnte stattdessen ebenfalls verwendet werden, solange die Unverwechselbarkeit des neu erzeugten Namens sichergestellt wird.
  • Dann wird der neue Name in der lokalen Variablen EFE_name abgelegt. Anschließend wird im Hauptspeicher 102 Speicherbereich zugeordnet, um später den der Veranschaulichung dienenden Zellenbereich für das EF oder das MEF abzulegen. Dieser zugeordnete Speicherbereich ist ein Teil des Speicherbereichs, der der gerade geöffneten Datei des Tabellenkalkulationsprogramms entspricht.
  • Als Nächstes wird in der EFT-Tabelle 700 ein neuer Datensatz 701 angelegt, und dieser neue Datensatz 701 wird wie folgt initialisiert:
    • • Das Feld "Name" 702 wird auf den Wert der lokalen Variablen EFE_name gesetzt;
    • • das Feld "Last Change Date" 703 wird auf die Systemzeitreferenz gesetzt, die dem Zentralprozessor 101 bekannt ist;
    • • das Feld "Description Ptr" 704 wird auf den Speicherplatz gesetzt, der soeben zugeordnet wurde;
    • • das Feld "Row #" 705 wird auf den Wert 1 gesetzt (da die STs in der bevorzugten Ausführungsform der vorliegenden Erfindung in einer zweidimensionalen Umgebung verwaltet werden, würde dieses Feld die Anzahl der Zeilen enthalten, die für das erzeugte EF oder MEF in einer dreidimensionalen Umgebung festgelegt wurden);
    • • das Feld "Column #" 706 wird auf den Wert der lokalen Variablen EFE_size gesetzt; und
    • • das Feld "Type" 707 wird wie folgt gesetzt: Das Attribut "META" 708 wird auf den Wert der lokalen Variablen EFE_meta gesetzt, und das Attribut "REFERENCED" 709 wird wie folgt initialisiert:
    • • Das Teilfeld "OWN REFERENCE" (OR) 709a wird mit einer Primzahl initialisiert, die noch keinem anderen OR-Teilfeld 709a oder 719a oder 729a oder 780a oder 2219a oder 2229a oder 2240a zugewiesen wurde. Verschiedene herkömmliche Verfahren, die hier nicht näher beschrieben werden, können zur Feststellung einer Primzahl angewendet werden.
    • • Das Teilfeld "FILIATION REFERENCE" (FR) 709b wird auf den Anfangswert 1 (eins) gesetzt.
    • • Das Teilfeld "INSTANCE REFERENCE" (IR) 709c wird auf den Anfangswert 1 (eins) gesetzt.
    • • Das Teilfeld "REFERENCED OBJECT" (RO) 709d wird mit der folgenden Formel initialisiert, wobei die Gruppe P der Gruppe der STs entspricht: RO = "YES" wenn LCM({FRi})i∊P Mod OR = 0; andernfalls ist RO = "NO".
    • • Das Teilfeld "SELECTED CHILDREN" (SC) 709e wird mit der folgenden Formel initialisiert, wobei die Gruppe S der Gruppe der ausgewählten Objekte entspricht (deren Attribut "SELECTED" 2242 in der RSTMT-Tabelle 2230 den Wert "YES" hat). SC = "YES" wenn LCM({FRi})i∊S Mod OR = 0 "OR" EFE_name ∊ S; andernfalls ist SC = "NO".
  • Daraufhin wird die Steuerung dem Schritt 910 übergeben.
    • • Im Schritt 910 wird ein Test durchgeführt, um festzustellen, welchen Wert die lokale Variable EFE_range angenommen hat. Wenn festgestellt wird, dass ihr Wert "YES" lautet, wird die Steuerung dem Schritt 911 übergeben; andernfalls wird die Steuerung dem Schritt 912 übergeben.
    • • Im Schritt 911 wird der gerade ausgewählte Zellenbereich in die Zwischenablage kopiert, und die lokale Variable EFE_size wird auf einen Wert gesetzt, der gleich der Anzahl der Spalten des ausgewählten Bereichs ist.
    • • Im Schritt 912 wird das Arbeitsblatt "Editor Space" 315 zum aktuellen Arbeitsblatt gemacht, und der Inhalt der Zwischenablage wird in dieses leere Arbeitsblatt an einer festen Zellenadresse 314 (Adresse B2 in einer bevorzugten Ausführungsform der vorliegenden Erfindung, wie in 3 gezeigt ist) eingefügt, so dass der Benutzer das EF oder das MEF auf dem Bildschirm 106 darstellen kann.
    • • Im Schritt 913 wird das Dialogfeld 301 des EF-Editors auf dem Bildschirm 106 angezeigt.
    • • Das Bezeichnungsfeld 304 wird mit dem Wert der lokalen Variablen EFE_name initialisiert.
    • • Die obere (beziehungsweise untere) Optionsschaltfläche 310 wird mit einem schwarzen Punkt gekennzeichnet, wenn festgestellt wird, dass die lokale variable EFE_meta den Wert "NO" (beziehungsweise "YES") hat.
    • • In das Textfeld 306 wird der Wert der lokalen Variablen EFE_size eingegeben.
    • • Die Schaltflächen "Save" 312 und "Save & Refresh" 308 werden aktiviert, wenn festgestellt wird, dass die lokale Variable EFE_size den gleichen Wert wie das Feld "Column #" 706 des aktuellen Datensatzes 701 hat, oder wenn festgestellt wird, dass das Teilfeld "REFERENCED OBJECT" (RO) 709d des Attributs "REFERENCED" 709 im Feld "Type" 707 desselben Datensatzes 701 den Wert "NO" hat, so dass jeder künftige Klick mit der Zeigeeinheit 105 auf eine dieser beiden Schaltflächen "Save" 312 und "Save & Refresh" 308 als ein gültiges Ereignis erkannt wird.
    • • Die Schaltflächen "Save" 312 und "Save & Refresh" 308 werden andernfalls deaktiviert (wenn festgestellt wird, dass die lokale Variable EFE_size nicht den gleichen Wert wie das Feld "Column #" 706 des aktuellen Datensatzes 701 hat, und wenn festgestellt wird, dass das Teilfeld "REFERENCED OBJECT" (RO) 709d des Attributs "REFERENCED" 709 im Feld "Type" 707 desselben Datensatzes 701 den Wert "YES" hat), so dass jeder künftige Klick mit der Zeigeeinheit 105 auf eine dieser beiden Schaltflächen "Save" 312 und "Save & Refresh" 308 nicht als ein gültiges Ereignis erkannt wird.
    • • Im Schritt 914 wartet das Verfahren auf eine Benutzeraktion im Dialogfeld 301 des EF-Editors. Eine solche Benutzeraktion ist üblicherweise das Ergebnis eines Klicks mit der Zeigeeinheit 105, wobei dieser Auslöser jedoch auch andere ähnliche Formen annehmen kann wie zum Beispiel, jedoch nicht auf diese beschränkt, eine bestimmte Tastenkombination auf der Tastatur 104 oder irgendein anderes ähnliches Mittel, das hier nicht näher angegeben wird.
    • • Im Schritt 915 wird eine Benutzeraktion im Dialogfeld 301 des EF-Editors festgestellt.
    • • Wenn die Benutzeraktion ein Klick auf die Schaltfläche "Save & Refresh" 308 ist, wird die Steuerung dem Schritt 916 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Save" 312 ist, wird die Steuerung dem Schritt 917 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Save As" 311 ist, wird die Steuerung dem Schritt 918 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Clear" 309 ist, wird die Steuerung dem Schritt 919 übergeben;
    • • wenn die Benutzeraktion ein Klick auf das Drehfeld 307 ist, wird die Steuerung dem Schritt 920 übergeben;
    • • wenn die Benutzeraktion ein Klick auf eine der beiden Optionsschaltflächen 310 ist, wird die Steuerung dem Schritt 921 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Done" 303 oder auf die Schaltfläche 302 zum Schließen des Fensters ist, wird die Steuerung dem Schritt 925 übergeben.
    • • Im Schritt 916 wird die EFT-Tabelle 700 aktualisiert und als Teil der Datei des Tabellenkalkulationsprogramms gespeichert, indem der Datensatz 701 aufgefrischt wird, dessen Feld "Name" 702 den gleichen Wert wie die lokale Variable EFE_name hat. Dazu werden
    • • das Feld "Last Change Date" 703 auf die Systemzeitreferenz gesetzt, die dem Zentralprozessor 101 bekannt ist;
    • • das Feld "Column #" 706 auf den Wert der lokalen Variablen EFE_size gesetzt; und
    • • das Feld "Type" 707 wie folgt gesetzt: Das Attribut "META" 708 wird auf den Wert der lokalen Variablen EFE_meta gesetzt.
  • Darüber hinaus wird der Zellenbereich 314, der auf dem Arbeitsblatt "Editor Space" 315 die aktuelle Definition des EF oder des MEF darstellt, an den Speicherplatz kopiert, auf den das Feld "Description Ptr" 704 zeigt. Anschließend wird die Steuerung dem Schritt 922 übergeben.
    • • Im Schritt 917 wird die EFT-Tabelle 700 aktualisiert und als Teil der Datei des Tabellenkalkulationsprogramms gespeichert, indem der Datensatz 701 aufgefrischt wird, dessen Feld "Name" 702 den gleichen Wert wie die lokale Variable EFE_name hat. Dazu werden
    • • das Feld "Last Change Date" 703 auf die Systemzeitreferenz gesetzt, die dem Zentralprozessor 101 bekannt ist;
    • • das Feld "Column #" 706 auf den Wert der lokalen Variablen EFE_size gesetzt; und
    • • das Feld "Type" 707 wie folgt gesetzt: Das Attribut "META" 708 wird auf den Wert der lokalen Variablen EFE_meta gesetzt.
  • Darüber hinaus wird der Zellenbereich 314, der auf dem Arbeitsblatt "Editor Space" 315 die aktuelle Definition des EF oder des MEF darstellt, an den Speicherplatz kopiert, auf den das Feld "Description Ptr" 704 zeigt. Anschließend wird die Steuerung dem Schritt 913 übergeben.
    • • Im Schritt 918 wird ein Test an dem im Textfeld 305 vorgefundenen Wert durchgeführt, um festzustellen, ob er einem gültigen neuen Namen entspricht. Die entsprechenden Kriterien sind von der Ausführungsart abhängig und können verschiedene Formen annehmen, solange es sich bei dem neu vorgeschlagenen Namen im Hinblick auf alle bereits festgelegten und in den Feldern "Name" 702, 712, 722, 2212 und 2222 erfassten Namen um eine eindeutige Zeichenfolge handelt. Wenn die Gültigkeit und die Unverwechselbarkeit nachgewiesen sind, wird die Steuerung dem Schritt 923 übergeben; andernfalls wird sie dem Schritt 924 übergeben.
    • • Im Schritt 919 werden die Standardattribute, die gerade in der Tabellenkalkulationsumgebung festgelegt wurden, auf das Arbeitsblatt "Editor Space" 315 angewendet, so dass die angezeigte Darstellung des EF oder des MEF dieselben Standardattribute erhält. Daraufhin wird die Steuerung dem Schritt 913 übergeben.
    • • Im Schritt 920 wird der Wert der lokalen Variablen EFE_size entsprechend der von der Zeigeeinheit 105 auf dem Drehfeld 307 vorgegebenen Richtung (nach oben oder nach unten) entweder um 1 (eins) erhöht oder verringert, und dies, solange ihr Wert positiv und kleiner als oder gleichgroß wie ein oberer Grenzwert bleibt, der in einer bevorzugten Ausführungsform der vorliegenden Erfindung auf 254 gesetzt wird. Daraufhin wird die Steuerung dem Schritt 913 übergeben.
    • • Im Schritt 921 wird die lokale Variable EFE_meta aktualisiert, so dass ihr Wert auf "YES" (beziehungsweise "NO") gesetzt wird, wenn die untere (beziehungsweise die obere) Optionsschaltfläche 310 angeklickt wurde. Daraufhin wird die Steuerung dem Schritt 913 übergeben.
    • • Im Schritt 922 wird der Befehl "ST Refresh Manager" mit den folgenden Parametern ausgegeben: EFE_name, "FORMAT", anschließend wird die Steuerung dem Schritt 913 übergeben.
    • • Im Schritt 923 wird im Hauptspeicher 102 Speicherbereich zugeordnet, um später den der Veranschaulichung dienenden Zellenbereich für das EF oder das MEF abzulegen. Dieser zugeordnete Speicherbereich ist ein Teil des Speicherbereichs, der der gerade geöffneten Datei des Tabellenkalkulationsprogramms entspricht. Dann wird in der EFT-Tabelle 700 ein neuer Datensatz 701 angelegt, der als Teil der Datei des Tabellenkalkulationsprogramms gespeichert wird, und dieser neue Datensatz 701 wird wie folgt initialisiert:
    • • Das Feld "Name" 702 wird auf den im Textfeld 305 vorgefundenen und im Schritt 918 für gültig erklärten Wert gesetzt, wobei der Eintrag in diesem Feld 702 dann der neue Wert der lokalen Variablen EFE_name wird;
    • • das Feld "Last Change Date" 703 wird auf die Systemzeitreferenz gesetzt, die dem Zentralprozessor 101 bekannt ist;
    • • das Feld "Description Ptr" 704 wird auf den Speicherplatz gesetzt, der soeben zugeordnet wurde;
    • • das Feld "Row #" 705 wird auf den Wert 1 gesetzt (da die STs in der bevorzugten Ausführungsform der vorliegenden Erfindung in einer zweidimensionalen Umgebung verwaltet werden, würde dieses Feld die Anzahl der Zeilen enthalten die für das erzeugte EF oder MEF in einer dreidimensionalen Umgebung festgelegt wurden);
    • • das Feld "Column #" 706 wird auf den Wert der lokalen Variablen EFE_size gesetzt; und
    • • das Feld "Type" 707 wie folgt gesetzt: Das Attribut "META" 708 wird auf den Wert der lokalen Variablen EFE_meta gesetzt, und das Attribut "REFERENCED" 709 wird wie folgt initialisiert:
    • • Das Teilfeld "OWN REFERENCE" (OR) 709a wird mit einer Primzahl initialisiert, die noch keinem anderen OR-Teilfeld 709a oder 719a oder 729a oder 780a oder 2219a oder 2229a oder 2240a zugewiesen wurde. Verschiedene herkömmliche Verfahren, die hier nicht näher beschrieben werden, können zur Feststellung einer Primzahl angewendet werden.
    • • Das Teilfeld "FILIATION REFERENCE" (FR) 709b wird auf den Anfangswert 1 (eins) gesetzt.
    • • Das Teilfeld "INSTANCE REFERENCE" (IR) 709c wird auf den Anfangswert 1 (eins) gesetzt.
    • • Das Teilfeld "REFERENCED OBJECT" (RO) 709d wird mit der folgenden Formel initialisiert, wobei die Gruppe P der Gruppe der STs entspricht: RO = "YES" wenn LCM({FRi})i∊P Mod OR = 0; andernfalls ist RO = "NO".
    • • Das Teilfeld "SELECTED CHILDREN" (SC) 709e wird mit der folgenden Formel initialisiert, wobei die Gruppe S der Gruppe der ausgewählten Objekte entspricht (deren Attribut SELECTED" 2242 in der RSTMT-Tabelle 2230 den Wert "YES" hat). SC = "YES" wenn LCM({FRi})i∊S Mod OR = 0 #OR# EFE_name ∊ S, andernfalls ist SC = "NO".
  • Daraufhin wird die Steuerung dem Schritt 913 übergeben.
    • • Im Schritt 924 wird eine Warnmeldung ausgegeben, um den Benutzer darauf aufmerksam zu machen, dass im Textfeld 305 ein gültiger und eindeutiger Name angegeben werden muss, bevor die Schaltfläche "Save As" 311 angeklickt wird. Dies kann üblicherweise geschehen, indem auf dem Bildschirm 106 eine Warnmeldung in einem Dialogfenster oder in einem Bereich der Statuszeile angezeigt wird, aber ein anderes ähnliches Mittel könnte stattdessen ebenfalls verwendet werden. Sobald der Benutzer diesen Hinweis über ein herkömmliches Mittel wie zum Beispiel einen Klick mit der Zeigeeinheit 105 auf eine Schaltfläche "OK", die in einem Dialogfenster mit einer Warnmeldung vorhanden ist, oder über ein anderes ähnliches Mittel bestätigt hat, wird die Steuerung dem Schritt 913 übergeben.
    • • Im Schritt 925 wird das Dialogfeld 501 des EF-Editors geschlossen, so dass es vom Bildschirm 106 verschwindet, dann wird das Arbeitsblatt "Editor Space" 515 aus dem angezeigten Fenster entfernt und durch das ursprüngliche Arbeitsblatt ersetzt, das zu dem Zeitpunkt vorhanden war, zu dem der EF-Editor aufgerufen wurde. Schließlich wird die Steuerung wieder dem ersten Schritt 901 zur Verarbeitung eines künftigen EF-Editor-Befehls übergeben.
  • E3. EP-Editor-Verfahren
  • Das Verfahren zur Erzeugung oder Aktualisierung von EPs oder MEFs, das in der bevorzugten Ausführungsform der vorliegenden Erfindung verwendet wird, ist im Flussdiagramm 1000 von 10 zusammengefasst. Dieses Verfahren kann als Verarbeitung des Befehls "EP Editor" betrachtet werden.
    • • Im Schritt 1001 befindet sich das Verfahren in seinem standardmäßigen Zustand, in dem es auf ein Ereignis zum Starten des Prozesses wartet.
    • • Im Schritt 1002 wird der Befehl "EP Editor" als Ergebnis einer Benutzeraktion festgestellt. Diese Aktion kann beispielsweise Folgende sein:
    • • eine bestimmte Tastenkombination auf der Tastatur 104 oder
    • • das Anklicken einer bestimmten Schaltfläche mit der Zeigeeinheit 105 oder
    • • ein anderes ähnliches Mittel, das hier nicht näher angegeben wird.
    • • Im Schritt 1003 werden die Parameter des Befehls abgerufen. Sie entsprechen:
    • • einem ersten zwingend notwendigen Parameter EPE_name, der entweder einen reservierten Wert "NEW" oder einen anderen Wert annehmen kann, welcher dem Namen einer Zeichenfolge entspricht, der im Feld "Name" 2232 eines Datensatzes 2231 in der RSTMT-Tabelle 2230 vorgefunden wird, und
    • • einem zweiten optionalen Parameter EPE_range, der nur zwei vorher festgelegte Werte, "YES" und "NO", annehmen kann. Dieser zweite optionale Parameter muss vorhanden sein, wenn der Wert des ersten zwingend notwendigen Parameter anders als "NEW" lautet.
  • Diese beiden Parameter werden als lokale Variablen abgelegt.
    • • Im Schritt 1004 werden einige lokale Variablen mit einem Anfangswert belegt: Die lokale Variable EPE_meta wird auf den Wert "NO" gesetzt, und die lokale Variable EPE_size wird auf den Wert 8 (acht) gesetzt.
    • • Im Schritt 1005 wird ein Test durchgeführt, um festzustellen, welchen Wert die lokale Variable EPE_name angenommen hat. Wenn festgestellt wird, dass ihr Wert "NEW" lautet, wird die Steuerung dem Schritt 1009 übergeben; andernfalls wird die Steuerung dem Schritt 1006 übergeben.
    • • Im Schritt 1006 wird die EPT-Tabelle 710 nach einem Datensatz 711 durchsucht, bei dem der Wert im Feld "Name" 712 gleich dem von der lokalen Variablen EPE_name angenommenen Wert ist. Wenn ein solcher Datensatz gefunden wird, wird die Steuerung dem Schritt 1008 übergeben; andernfalls wird die Steuerung dem Schritt 1007 übergeben.
    • • Im Schritt 1007 wird eine Ausnahmebedingungs-Behandlungsroutine aufgerufen, um diese "Should-not-occur"-Bedingung zu behandeln. Eine solche Operation hängt von der Ausführungsart ab und kann verschiedene Formen wie zum Beispiel die Anzeige eines Dialogfensters mit einer Fehlermeldung auf dem Bildschirm 106 annehmen. Daraufhin wird die Steuerung dem Schritt 1025 übergeben.
    • • Im Schritt 1008
    • • wird die lokale Variable EPE_meta entsprechend dem Wert des Attributs "META" 718 im Feld "Type" 717 des Datensatzes 711, der im Schritt 1006 gefunden wurde, auf den Wert "YES" oder "NO" gesetzt,
    • • wird die lokale Variable EPE_size auf den Wert gesetzt, der im Feld "Column #" 716 des im Schritt 1006 gefundenen Datensatzes 711 vorgefunden wird, und
    • • wird der Speicherplatz, auf den das Feld "Description Ptr" 714 des im Schritt 1006 gefundenen Datensatzes 711 zeigt, in die Zwischenablage und in die lokale Variable EPE_Desc kopiert.
  • Daraufhin wird die Steuerung dem Schritt 1012 übergeben.
    • • Im Schritt 1009 wird entsprechend einer Namensfolge, die in einer bevorzugten Ausführungsform der vorliegenden Erfindung die Form "New XX" hat, ein neuer Name für das neu erzeugte EP oder MEP festgelegt, wobei XX einem Zählerwert entspricht, der in Bezug auf alle Namen, die zuvor festgelegt und in den Feldern "Name" 702, 712, 722, 2212 und 2222 erfasst wurden, welche sich in den jeweiligen Datensätzen 701, 711, 721, 2211 und 2221 der jeweiligen Tabellen EFT 700, EPT 710, STT 720, RET 2210 und RSST 2220 befinden, die Unverwechselbarkeit des Namens sicherstellt. Ein anderes ähnliches herkömmliches Mittel könnte stattdessen ebenfalls verwendet werden, solange die Unverwechselbarkeit des neu erzeugten Namens sichergestellt wird.
  • Dann wird der neue Name in der lokalen Variablen EPE_name abgelegt.
  • Anschließend wird im Hauptspeicher 102 Speicherbereich zugeordnet, um später den der Veranschaulichung dienenden Zellenbereich für das EP oder das MEP abzulegen. Dieser zugeordnete Speicherbereich ist ein Teil des Speicherbereichs, der der gerade geöffneten Datei des Tabellenkalkulationsprogramms entspricht. Als Nächstes wird in der EPT-Tabelle 710 ein neuer Datensatz 711 angelegt, und dieser neue Datensatz 711 wird wie folgt initialisiert:
    • • Das Feld "Name" 712 wird auf den Wert der lokalen Variablen EPE_name gesetzt;
    • • das Feld "Last Change Date" 713 wird auf die Systemzeitreferenz gesetzt, die dem Zentralprozessor 101 bekannt ist;
    • • das Feld "Description Ptr" 714 wird auf den Speicherplatz gesetzt, der soeben zugeordnet wurde;
    • • das Feld "Row #" 715 wird auf den Wert 1 gesetzt (da die STs in der bevorzugten Ausführungsform der vorliegenden Erfindung in einer zweidimensionalen Umgebung verwaltet werden, würde dieses Feld die Anzahl der Zeilen enthalten, die für das erzeugte EP oder MEP in einer dreidimensionalen Umgebung festgelegt wurden);
    • • das Feld "Column #" 716 wird auf den Wert der lokalen Variablen EPE_size gesetzt; und
    • • das Feld "Type" 717 wird wie folgt gesetzt: Das Attribut "META" 718 wird auf den Wert der lokalen Variablen EPE_meta gesetzt, und das Attribut "REFERENCED" 719 wird wie folgt initialisiert:
    • • Das Teilfeld "OWN REFERENCE" (OR) 719a wird mit einer Primzahl initialisiert, die noch keinem anderen OR-Teilfeld 709a oder 719a oder 729a oder 780a oder 2219a oder 2229a oder 2240a zugewiesen wurde. Verschiedene herkömmliche Verfahren, die hier nicht näher beschrieben werden, können zur Feststellung einer Primzahl angewendet werden.
    • • Das Teilfeld "FILIATION REFERENCE" (FR) 719b wird auf den Anfangswert 1 (eins) gesetzt.
    • • Das Teilfeld "INSTANCE REFERENCE" (IR) 719c wird auf den Anfangswert 1 (eins) gesetzt.
    • • Das Teilfeld "REFERENCED OBJECT" (RO) 719d wird mit der folgenden Formel initialisiert, wobei die Gruppe P der Gruppe der STs entspricht: RO = "YES" wenn LCM({FRi})i∊P Mod OR = 0; andernfalls ist RO = "NO".
    • • Das Teilfeld "SELECTED CHILDREN" (SC) 719e wird mit der folgenden Formel initialisiert, wobei die Gruppe S der Gruppe der ausgewählten Objekte entspricht (deren Attribut "SELECTED" 2242 in der RSTMT-Tabelle 2230 den Wert "YES" hat). SC = "YES" wenn LCM({FRi})i∊S Mod OR = 0 "OR" EPE_name ∊ S; andernfalls ist SC = "NO".
  • Daraufhin wird die Steuerung dem Schritt 1010 übergeben.
    • • Im Schritt 1010 wird ein Test durchgeführt, um festzustellen, welchen Wert die lokale Variable EPE_range angenommen hat. Wenn festgestellt wird, dass ihr Wert "YES" lautet, wird die Steuerung dem Schritt 1011 übergeben; andernfalls wird die Steuerung dem Schritt 1012 übergeben.
    • • Im Schritt 1011 wird der gerade ausgewählte Zellenbereich in die Zwischenablage kopiert, und die lokale Variable EPE_size wird auf einen Wert gesetzt, der gleich der Anzahl der Spalten des ausgewählten Bereichs ist.
    • • Im Schritt 1012 wird das Arbeitsblatt "Editor Space" 315 zum aktuellen Arbeitsblatt gemacht, und der Inhalt der Zwischenablage wird in dieses leere Arbeitsblatt an einer festen Zellenadresse 314 (Adresse B2 in einer bevorzugten Ausführungsform der vorliegenden Erfindung, wie in 3 gezeigt ist) eingefügt, so dass der Benutzer das EP oder das MEP auf dem Bildschirm 106 darstellen kann.
    • • Im Schritt 1013 wird das Dialogfeld 401 des EP-Editors auf dem Bildschirm 106 angezeigt.
    • • Das Bezeichnungsfeld 404 wird mit dem Wert der lokalen Variablen EPE_name initialisiert. Die obere (beziehungsweise untere) Optionsschaltfläche 410 wird mit einem schwarzen Punkt gekennzeichnet, wenn festgestellt wird, dass die lokale Variable EPE_meta den Wert "NO" (beziehungsweise "YES") hat.
    • • In das Textfeld 406 wird der Wert der lokalen Variablen EPE_size eingegeben.
    • • Die Schaltflächen "Save" 412 und "Save & Refresh" 408 werden aktiviert, wenn festgestellt wird, dass die lokale Variable EPE_size den gleichen Wert wie das Feld "Column #" 716 des aktuellen Datensatzes 711 hat, oder wenn festgestellt wird, dass das Teilfeld "REFERENCED OBJECT" (RO) 719d des Attributs "REFERENCED" 719 im Feld "Type" 717 desselben Datensatzes 711 den Wert "NO" hat, so dass jeder künftige Klick mit der Zeigeeinheit 105 auf eine dieser beiden Schaltflächen "Save" 412 und "Save & Refresh" 408 als ein gültiges Ereignis erkannt wird. Die Schaltflächen "Save" 412 und "Save & Refresh" 408 werden andernfalls deaktiviert (wenn festgestellt wird, dass die lokale Variable EPE_size nicht den gleichen Wert wie das Feld "Column #" 716 des aktuellen Datensatzes 711 hat, und wenn festgestellt wird, dass das Teilfeld "REFERENCED OBJECT" (RO) 719d des Attributs "REFERENCED" 719 im Feld "Type" 717 desselben Datensatzes 711 den Wert "YES" hat), so dass jeder künftige Klick mit der Zeigeeinheit 105 auf eine dieser beiden Schaltflächen "Save" 412 und "Save & Refresh" 408 nicht als ein Ereignis erkannt wird.
    • • Im Schritt 1014 wartet das Verfahren auf eine Benutzeraktion im Dialogfeld 401 des EP-Editors. Eine solche Benutzeraktion ist üblicherweise das Ergebnis eines Klicks mit der Zeigeeinheit 105, wobei dieser Auslöser jedoch auch andere ähnliche Formen annehmen kann wie zum Beispiel, jedoch nicht auf diese beschränkt, eine bestimmte Tastenkombination auf der Tastatur 104 oder irgendein anderes ähnliches Mittel, das hier nicht näher angegeben wird.
    • • Im Schritt 1015 wird eine Benutzeraktion im Dialogfeld 401 des EP-Editors festgestellt.
    • • Wenn die Benutzeraktion ein Klick auf die Schaltfläche "Save & Refresh" 408 ist, wird die Steuerung dem Schritt 1016 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Save" 412 ist, wird die Steuerung dem Schritt 1017 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Save As" 411 ist, wird die Steuerung dem Schritt 1018 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Clear" 409 ist, wird die Steuerung dem Schritt 1019 übergeben;
    • • wenn die Benutzeraktion ein Klick auf das Drehfeld 407 ist, wird die Steuerung dem Schritt 1020 übergeben;
    • • wenn die Benutzeraktion ein Klick auf eine der beiden Optionsschaltflächen 410 ist, wird die Steuerung dem Schritt 1021 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Done" 403 oder auf die Schaltfläche 402 zum Schließen des Fensters ist, wird die Steuerung dem Schritt 1025 übergeben.
    • • Im Schritt 1016 wird die EPT-Tabelle 710 aktualisiert und als Teil der Datei des Tabellenkalkulationsprogramms gespeichert, indem der Datensatz 711 aufgefrischt wird, dessen Feld "Name" 712 den gleichen Wert wie die lokale Variable EPE_name hat. Dazu werden
    • • das Feld "Last Change Date" 713 auf die Systemzeitreferenz gesetzt, die dem Zentralprozessor 101 bekannt ist;
    • • das Feld "Column #" 716 auf den Wert der lokalen Variablen EPE_size gesetzt; und
    • • das Feld "Type" 717 wie folgt gesetzt: Das Attribut "META" 718 wird auf den Wert der lokalen Variablen EPE_meta gesetzt.
  • Darüber hinaus wird der Zellenbereich 414, der auf dem Arbeitsblatt "Editor Space" 415 die aktuelle Definition des EP oder des MEP darstellt, an den Speicherplatz kopiert, auf den das Feld "Description Ptr" 714 zeigt. Anschließend wird die Steuerung dem Schritt 1022 übergeben.
    • • Im Schritt 1017 wird die EPT-Tabelle 710 aktualisiert und als Teil der Datei des Tabellenkalkulationsprogramms gespeichert, indem der Datensatz 711 aufgefrischt wird, dessen Feld "Name" 712 den gleichen Wert wie die lokale Variable EPE_name hat. Dazu werden
    • • das Feld "Last Change Date" 713 auf die Systemzeitreferenz gesetzt, die dem Zentralprozessor 101 bekannt ist;
    • • das Feld "Column #" 716 auf den Wert der lokalen Variablen EPE_size gesetzt; und
    • • das Feld "Type" 717 wie folgt gesetzt: Das Attribut "META" 718 wird auf den Wert der lokalen Variablen EPE_meta gesetzt.
  • Darüber hinaus wird der Zellenbereich 414, der auf dem Arbeitsblatt "Editor Space" 415 die aktuelle Definition des EP oder des MEP darstellt, an den Speicherplatz kopiert, auf den das Feld "Description Ptr" 714 zeigt.
  • Dann wird die lokale Variable EPE_desc mit der aktuellen Beschreibung des EP oder des MEP aktualisiert, die an dem Speicherplatz abgelegt ist, auf den das Feld "Description Ptr" 714 zeigt, und die Steuerung wird dem Schritt 1013 übergeben.
    • • Im Schritt 1018 wird ein Test an dem im Textfeld 405 vorgefundenen Wert durchgeführt, um festzustellen, ob dieser Wert einem gültigen neuen Namen entspricht. Die entsprechenden Kriterien sind von der Ausführungsart abhängig und können verschiedene Formen annehmen, solange es sich bei dem neu vorgeschlagenen Namen im Hinblick auf alle bereits festgelegten und in den Feldern "Name" 702, 712, 722, 2212 und 2222 erfassten Namen um eine eindeutige Zeichenfolge handelt. Wenn die Gültigkeit und die Unverwechselbarkeit nachgewiesen sind, wird die Steuerung dem Schritt 1023 übergeben; andernfalls wird sie dem Schritt 1024 übergeben.
    • • Im Schritt 1019 werden die Standardattribute, die gerade in der Tabellenkalkulationsumgebung festgelegt wurden, auf das Arbeitsblatt "Editor Space" 415 angewendet, so dass die angezeigte Darstellung des EP oder des MEP dieselben Standardattribute erhält. Daraufhin wird die Steuerung dem Schritt 1013 übergeben.
    • • Im Schritt 1020 wird der Wert der lokalen Variablen EPE_size entsprechend der von der Zeigeeinheit 105 auf dem Drehfeld 407 vorgegebenen Richtung (nach oben oder nach unten) entweder um 1 (eins) erhöht oder verringert, und dies, solange ihr Wert positiv und kleiner als oder gleichgroß wie ein oberer Grenzwert bleibt, der in einer bevorzugten Ausführungsform der vorliegenden Erfindung auf 254 gesetzt wird. Daraufhin wird die Steuerung dem Schritt 1013 übergeben.
    • • Im Schritt 1021 wird die lokale Variable EPE_meta aktualisiert, so dass ihr Wert auf "YES" (beziehungsweise "NO") gesetzt wird, wenn die untere (beziehungsweise die obere) Optionsschaltfläche 410 angeklickt wurde. Daraufhin wird die Steuerung dem Schritt 1013 übergeben.
    • • Im Schritt 1022 wird der Befehl "ST Refresh Manager" mit den folgenden Parametern ausgegeben: EPE_name, "PROFILE" und EPE_desc. Dann wird die lokale Variable EPE_desc mit der aktuellen Beschreibung des EP oder des MEP aktualisiert, die an dem Speicherplatz abgelegt ist, auf den das Feld "Description Ptr" 714 zeigt, und daraufhin wird die Steuerung dem Schritt 1013 übergeben.
    • • Im Schritt 1023 wird im Hauptspeicher 102 Speicherbereich zugeordnet, um später den der Veranschaulichung dienenden Zellenbereich für das EP oder das MEP abzulegen. Dieser zugeordnete Speicherbereich ist ein Teil des Speicherbereichs, der der gerade geöffneten Datei des Tabellenkalkulationsprogramms entspricht. Dann wird in der EPT-Tabelle 710 ein neuer Datensatz 711 angelegt, der als Teil der Datei des Tabellenkalkulationsprogramms gespeichert wird, und dieser neue Datensatz 711 wird wie folgt initialisiert:
    • • Das Feld "Name" 712 wird auf den im Textfeld 405 vorgefundenen und im Schritt 1018 für gültig erklärten Wert gesetzt, wobei der Eintrag in diesem Feld 712 dann der neue Wert der lokalen Variablen EPE_name wird;
    • • das Feld "Last Change Date" 713 wird auf die Systemzeitreferenz gesetzt, die dem Zentralprozessor 101 bekannt ist;
    • • das Feld "Description Ptr" 714 wird auf den Speicherplatz gesetzt, der soeben zugeordnet wurde;
    • • das Feld "Row #" 715 wird auf den Wert 1 gesetzt (da die STs in der bevorzugten Ausführungsform der vorliegenden Erfindung in einer zweidimensionalen Umgebung verwaltet werden, würde dieses Feld die Anzahl der Zeilen enthalten, die für das erzeugte EP oder MEP in einer dreidimensionalen Umgebung festgelegt wurden);
    • • das Feld "Column #" 716 wird auf den Wert der lokalen Variablen EPE_size gesetzt;
    • • das Feld "Type" 717 wird wie folgt gesetzt: Das Attribut "META" 718 wird auf den Wert der lokalen Variablen EPE_meta gesetzt, und das Attribut "REFERENCED" 719 wird wie folgt initialisiert:
    • • Das Teilfeld "OWN REFERENCE" (OR) 719a wird mit einer Primzahl initialisiert, die noch keinem anderen OR-Teilfeld 709a oder 719a oder 729a oder 780a oder 2219a oder 2229a oder 2240a zugewiesen wurde. Verschiedene herkömmliche Verfahren, die hier nicht näher beschrieben werden, können zur Feststellung einer Primzahl angewendet werden.
    • • Das Teilfeld "FILIATION REFERENCE" (FR) 719b wird auf den Anfangswert 1 (eins) gesetzt.
    • • Das Teilfeld "INSTANCE REFERENCE" (IR) 719c wird auf den Anfangswert 1 (eins) gesetzt.
    • • Das Teilfeld "REFERENCED OBJECT" (RO) 719d wird mit der folgenden Formel initialisiert, wobei die Gruppe P der Gruppe der STs entspricht: RO = "YES" wenn LCM({FRi})i∊P Mod OR = 0; andernfalls ist RO = "NO".
    • • Das Teilfeld "SELECTED CHILDREN" (SC) 719 wird mit der folgenden Formel initialisiert, wobei die Gruppe S der Gruppe der ausgewählten Objekte entspricht (deren Attribut "SELECTED" 2242 in der RSTMT-Tabelle 2230 den Wert "YES" hat). SC = "YES" wenn LCM({FRi})i∊S Mod OR = 0 "OR" EPE_name ∊ S; andernfalls ist SC = "NO".
  • Daraufhin wird die Steuerung dem Schritt 1013 übergeben.
    • • Im Schritt 1024 wird eine Warnmeldung ausgegeben, um den Benutzer darauf aufmerksam zu machen, dass im Textfeld 405 ein gültiger und eindeutiger Name angegeben werden muss, bevor die Schaltfläche "Save As" 411 angeklickt wird. Dies kann üblicherweise geschehen, indem auf dem Bildschirm 106 eine Warnmeldung in einem Dialogfenster oder in einem Bereich der Statuszeile angezeigt wird, aber ein anderes ähnliches Mittel könnte stattdessen ebenfalls verwendet werden. Sobald der Benutzer diesen Hinweis über ein herkömmliches Mittel wie zum Beispiel einen Klick mit der Zeigeeinheit 105 auf eine Schaltfläche "OK", die in einem Dialogfenster mit einer Warnmeldung vorhanden ist, oder über ein anderes ähnliches Mittel bestätigt hat, wird die Steuerung dem Schritt 1013 übergeben.
    • • Im Schritt 1025 wird das Dialogfeld 401 des EP-Editors geschlossen, so dass es vom Bildschirm 106 verschwindet, dann wird das Arbeitsblatt "Editor Space" 415 aus dem angezeigten Fenster entfernt und durch das ursprüngliche Arbeitsblatt ersetzt, das zu dem Zeitpunkt vorhanden war, zu dem der EP-Editor aufgerufen wurde. Schließlich wird die Steuerung wieder dem ersten Schritt 1001 zur Verarbeitung eines künftigen EP-Editor-Befehls übergeben.
  • E4. ST-Editor-Verfahren
  • Das Verfahren zur Erzeugung oder Aktualisierung von STs, das in der bevorzugten Ausführungsform der vorliegenden Erfindung verwendet wird, ist im Flussdiagramm 1100 von 11 zusammengefasst. Dieses Verfahren kann als Verarbeitung des Befehls "ST Editor" betrachtet werden.
    • • Im Schritt 1101 befindet sich das Verfahren in seinem standardmäßigen Zustand, in dem es auf ein Ereignis zum Starten des Prozesses wartet.
    • • Im Schritt 1102 wird der Befehl "ST Editor" als Ergebnis einer Benutzeraktion festgestellt. Diese Aktion kann beispielsweise Folgende sein:
    • • eine bestimmte Tastenkombination auf der Tastatur 104 oder
    • • das Anklicken einer bestimmten Schaltfläche mit der Zeigeeinheit 105 oder
    • • ein anderes ähnliches Mittel, das hier nicht näher angegeben wird.
    • • Im Schritt 1103 wird der Parameter des Befehls abgerufen. Er entspricht einem zwingend notwendigen Parameter STE_name, der entweder einen reservierten Wert "NEW" oder einen anderen Wert annehmen kann, welcher dem Namen einer Zeichenfolge entspricht, der im Feld "Name" 2232 eines Datensatzes 2231 in der RSTMT-Tabelle 2230 vorgefunden wird. Dieser Parameter wird als eine lokale Variable abgelegt.
    • • Im Schritt 1104 werden einige lokale Variablen mit einem Anfangswert belegt: Die lokale Variable STE_min wird auf den Standardwert 1 (eins) gesetzt, und die lokale Variable STE_max wird auf den Standardwert 255 gesetzt.
    • • Im Schritt 1105 wird ein Test durchgeführt, um festzustellen, welchen Wert die lokale Variable STE_name angenommen hat. Wenn festgestellt wird, dass ihr Wert "NEW" lautet, wird die Steuerung dem Schritt 1109 übergeben; andernfalls wird die Steuerung dem Schritt 1106 übergeben.
    • • Im Schritt 1106 wird die STT-Tabelle 720 nach einem Datensatz 721 durchsucht, bei dem der Wert im Feld "Name" 722 gleich dem von der lokalen Variablen STE_name angenommenen Wert ist. Wenn ein solcher Datensatz gefunden wird, wird die Steuerung dem Schritt 1108 übergeben; andernfalls wird die Steuerung dem Schritt 1107 übergeben.
    • • Im Schritt 1107 wird eine Ausnahmebedingungs-Behandlungsroutine aufgerufen, um diese "Should-not-occur"-Bedingung zu behandeln. Eine solche Operation hängt von der Ausführungsart ab und kann verschiedene Formen wie zum Beispiel die Anzeige eines Dialogfensters mit einer Fehlermeldung auf dem Bildschirm 106 annehmen. Daraufhin wird die Steuerung dem Schritt 1128 übergeben.
    • • Im Schritt 1108 wird die lokale Variable STE_min auf den Wert gesetzt, der im Feld "Min Element #" 725 des im Schritt 1106 gefundenen Datensatzes 721 vorgefunden wird, wird die lokale Variable STE_max auf den Wert gesetzt, der im Feld "Max Element #" 726 des im Schritt 1106 gefundenen Datensatzes 721 vorgefunden wird.
  • Dann wird der Speicherplatz, auf den das Feld "Description Ptr" 724 des im Schritt 1106 gefundenen Datensatzes 721 zeigt, (an dem die Beschreibung der ST entsprechend der in 7D gezeigten STDT-Tabelle 760 abgelegt ist) in einen Arbeitspufferspeicher kopiert, der sich wiederum an dieselbe STDT-Tabelle 760 hält.
  • Mit dieser Struktur wird dann in der Zwischenablage im Hauptspeicher 102 ein Bereich von Zellen eines Arbeitsblatts erzeugt, der die Definition der ST darstellt, die in den Arbeitspufferspeicher kopiert wurde. Diese Gestaltung wird erreicht, indem in die Zwischenablage im Hauptspeicher 102 eine geordnete Folge von Zellenbereichen geladen wird, von denen jeder nacheinander die Definition des EF (Spalte 765) und die Definition des EP (Spalte 764) übernimmt, die einem jedem aus dem EF-Namen und dem EP-Namen bestehenden Paar entspricht, wobei mit dem ersten Paar 761 begonnen und der Prozess bis zum letzten Paar 763 fortgesetzt wird. Dann wird die Steuerung dem Schritt 1110 übergeben.
    • • Im Schritt 1109 wird entsprechend einer Namensfolge, die in einer bevorzugten Ausführungsform der vorliegenden Erfindung die Form "New XX" hat, ein neuer Name für die neu erzeugte ST festgelegt, wobei XX einem Zählerwert entspricht, der in Bezug auf alle Namen, die zuvor festgelegt und in den Feldern "Name" 702, 712, 722, 2212 und 2222 erfasst wurden, welche sich in den jeweiligen Datensätzen 701, 711, 721, 2211 und 2221 der jeweiligen Tabellen EFT 700, EPT 710, STT 720, RET 2210 und RSST 2220 befinden, die Unverwechselbarkeit des Namens sicherstellt. Ein anderes ähnliches herkömmliches Mittel könnte stattdessen ebenfalls verwendet werden, solange die Unverwechselbarkeit des neu erzeugten Namens sichergestellt wird. Dann wird der neue Name in der lokalen Variablen STE_name abgelegt. Anschließend wird im Hauptspeicher 102 Speicherbereich zugeordnet, um später den der Veranschaulichung dienenden Zellenbereich für die neue ST abzulegen. Dieser zugeordnete Speicherbereich ist ein Teil des Speicherbereichs, der der gerade geöffneten Datei des Tabellenkalkulationsprogramms entspricht und der sich an die in 7D gezeigte STDT-Tabelle 760 hält. Als Nächstes wird in der STT-Tabelle 720 ein neuer Datensatz 721 angelegt, und dieser neue Datensatz 721 wird wie folgt initialisiert:
    • • Das Feld "Name" 722 wird auf den Wert der lokalen Variablen STE_name gesetzt;
    • • das Feld "Last Change Date" 723 wird auf die Systemzeitreferenz gesetzt, die dem Zentralprozessor 101 bekannt ist;
    • • das Feld "Description Ptr" 724 wird auf den Speicherplatz gesetzt, der soeben zugeordnet wurde;
    • • das Feld "Min Element #" 725 wird auf den Wert der lokalen Variablen STE_min gesetzt;
    • • das Feld "Max Element #" 726 wird auf den Wert der lokalen Variablen STE_max gesetzt; und
    • • das Feld "Type" 727 wird wie folgt gesetzt: Das Attribut "META" 728 wird auf "NO" gesetzt, und das Attribut "REFERENCED" 729 wird wie folgt initialisiert:
    • • Das Teilfeld "OWN REFERENCE" (OR) 729a wird mit einer Primzahl initialisiert, die noch keinem anderen OR-Teilfeld 709a oder 719a oder 729a oder 780a oder 2219a oder 2229a oder 2240a zugewiesen wurde. Verschiedene herkömmliche Verfahren, die hier nicht näher beschrieben werden, können zur Feststellung einer Primzahl angewendet werden.
    • • Das Teilfeld "FILIATION REFERENCE" (FR) 729b wird entsprechend der folgenden Formel initialisiert, wobei die Gruppe F der Gruppe von EFs, MEFs, EPs und MEPs entspricht, die gemäß der im Feld "Description Ptr" 724 erfassten Struktur die neue ST bildet: FR = Πi∊F ORi × LCM({FRi})i∊F
    • • Das Teilfeld "INSTANCE REFERENCE" (IR) 729c wird auf den Anfangswert 1 (eins) gesetzt.
    • • Das Teilfeld "REFERENCED OBJECT" (RO) 729d wird mit der folgenden Formel initialisiert, wobei die Gruppe P der Gruppe der REs und RMEs entspricht: RO = "YES" wenn LCM({FRi})i∊P Mod OR = 0; andernfalls ist RO = "NO".Das Teilfeld "SELECTED CHILDREN" (SC) 729e wird mit der folgenden Formel initialisiert, wobei die Gruppe S der Gruppe der ausgewählten Objekte entspricht (deren Attribut "SELECTED" 2242 in der RSTMT-Tabelle 2230 den Wert "YES" hat). SC = "YES" wenn LCM({FRi})i∊S Mod OR = 0 "OR" STE_name ∊ S; andernfalls ist SC = "NO".
  • Dann wird im Hauptspeicher 102 ein Arbeitspufferspeicherbereich zugeordnet and mit einer standardmäßigen Beschreibung einer ST initialisiert, die einem einzelnen aus einem standardmäßigen EF und einem standardmäßigen EP bestehenden Paar 762 entspricht. Mit dieser standardmäßigen Beschreibung einer ST wird dann in der Zwischenablage im Hauptspeicher 102 ein Bereich von Zellen eines Arbeitsblatts erzeugt, der die neue ST darstellt. Diese Gestaltung wird in der Weise erreicht, die am Ende des Schritts 1108 erklärt ist. Daraufhin wird die Steuerung dem Schritt 1110 übergeben.
    • • Im Schritt 1110 wird das Arbeitsblatt "Editor Space" 515 zum aktuellen Arbeitsblatt gemacht, und dieses Arbeitsblatt wird in den Schreibschutzmodus versetzt, währenddessen die normale Funktion zum Einfügen und Löschen von Zeilen deaktiviert ist. Daraufhin wird die oberste linke Zelle des Zellenbereichs 514 ausgewählt. Dann wird die lokale Variable STE_format mit dem Namen des EF oder des MEF belegt, welcher der Zeile entspricht, in der sich die Zelle befindet, die gerade in dem Zellenbereich 514 ausgewählt wurde. Schließlich wird die lokale Variable STE_profile mit dem Namen des EP oder des MEP belegt, welcher der Zeile entspricht, in der sich die Zelle befindet, die gerade in dem Zellenbereich 514 ausgewählt wurde.
    • • Im Schritt 1111 wird das Dialogfeld 501 des ST-Editors auf dem Bildschirm 106 angezeigt.
    • • Das Bezeichnungsfeld 504 wird mit dem Wert der lokalen Variablen STE_name initialisiert.
    • • In das Textfeld 50b wird der Wert der lokalen Variablen STE_min eingegeben,
    • • In das Textfeld 509 wird der Wert der lokalen Variablen STE_max eingegeben.
    • • In das Kombinationsfeld 511 wird der Wert der lokalen Variablen STE_format eingegeben.
    • • In das Kombinationsfeld 510 wird der Wert der lokalen Variablen STE_profile eingegeben.
  • Anschließend wird der Zellenbereich 514 entsprechend der Beschreibung aktualisiert, die in der Speicherzwischenablage abgelegt ist: Der Inhalt der Zwischenablage wird in dieses leere Arbeitsblatt an einer festen Zellenadresse 514 (Adresse B2 in einer bevorzugten Ausführungsform der vorliegenden Erfindung, wie in 5 gezeigt ist) eingefügt, so dass der Benutzer die ST auf dem Bildschirm 106 im Fenster 500 darstellen kann. Dann wird ein Test durchgeführt, um zu prüfen, ob alle EFs, EPs, MEFs und MEPs, die zur Definition der ST beitragen, welche vom Zellenbereich 514 dargestellt wird, die gleiche Anzahl von Feldern haben. Wenn dies der Fall ist, werden die beiden Schaltflächen "Save" 513 und Save As" 512 aktiviert, so dass der Klick mit der Zeigeeinheit 105 auf eine dieser beiden Schaltflächen als ein gültiges Ereignis erkannt wird. Andernfalls werden die beiden Schaltflächen "Save" 513 und Save As" 512 deaktiviert, so dass der Klick mit der Zeigeeinheit 105 auf eine dieser beiden Schaltflächen nicht als ein gültiges Ereignis erkannt wird.
    • • Im Schritt 1112 wartet das Verfahren auf eine Benutzeraktion im Dialogfeld 501 des ST-Editors. Eine solche Benutzeraktion ist üblicherweise das Ergebnis eines Klicks mit der Zeigeeinheit 105, wobei dieser Auslöser jedoch auch andere ähnliche Formen annehmen kann wie zum Beispiel, jedoch nicht auf diese beschränkt, eine bestimmte Tastenkombination auf der Tastatur 104 oder irgendein anderes ähnliches Mittel, das hier nicht näher angegeben wird.
    • • Im Schritt 1113 wird eine Benutzeraktion im Dialogfeld 501 des ST-Editors festgestellt.
    • • Wenn die Benutzeraktion ein Klick auf die Schaltfläche "Save" 513 ist, wird die Steuerung dem Schritt 1116 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Save As" 512 ist, wird die Steuerung dem Schritt 1119 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Add" 517 ist, wird die Steuerung dem Schritt 1124 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Delete" 518 ist, wird die Steuerung dem Schritt 1125 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Up" 519 oder auf die Schaltfläche "Down" 520 ist, wird die Steuerung dem Schritt 1126 übergeben;
    • • wenn die Benutzeraktion eine Aktualisierung des Kombinationsfelds 511 ist, wird die Steuerung dem Schritt 1114 übergeben;
    • • wenn die Benutzeraktion eine Aktualisierung des Kombinationsfelds 510 ist, wird die Steuerung dem Schritt 1115 übergeben;
    • • wenn die Benutzeraktion ein Klick auf das Drehfeld 507 ist, wird die Steuerung dem Schritt 1122 übergeben;
    • • wenn die Benutzeraktion ein Klick auf das Drehfeld 508 ist, wird die Steuerung dem Schritt 1123 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Done" 503 oder auf die Schaltfläche 502 zum Schließen des Fensters ist, wird die Steuerung dem Schritt 1128 übergeben.
    • • Im Schritt 1114 wird die Beschreibung der ST im Arbeitspufferspeicher aktualisiert, indem die bisherige Spezifikation des EF oder des MEF, die dem Element oder dem Metaelement entspricht, das von der gerade ausgewählten Zelle in dem Zellenbereich 514 dargestellt wird, durch den Namen des EF oder des MEF ersetzt wird, der im Textfeld 511 vorgefunden wird. Dann wird auch die lokale Variable STE_format auf den im Textfeld 511 enthaltenen Namen gesetzt. Daraufhin wird die Steuerung dem Schritt 1111 übergeben.
    • • Im Schritt 1115 wird die Beschreibung der ST im Arbeitspufferspeicher aktualisiert, indem die bisherige Spezifikation des EP oder des MEP, die dem Element oder dem Metaelement entspricht, das von der gerade ausgewählten Zelle in dem Zellenbereich 514 dargestellt wird, durch den Namen des EP oder des MEP ersetzt wird, der im Textfeld 510 vorgefunden wird. Dann wird auch die lokale Variable STE_profile auf den im Textfeld 510 enthaltenen Namen gesetzt. Daraufhin wird die Steuerung dem Schritt 1111 übergeben.
    • • Im Schritt 1116 wird ein Test durchgeführt, um zu prüfen, ob auf die gerade bearbeitete ST bereits von einem vorhandenen RE oder RME verwiesen wird oder ob sie bereits als eine STI instanziiert wurde. Dazu wird das Attribut "REFERENCED" 729 im Feld "Type" 727 des Datensatzes 721 in der STT-Tabelle 720, dessen Feld "Name" 722 den gleichen Wert wie die lokale Variable STE_name hat, geprüft. Wenn der Wert des Teilfelds "REFERENCED OBJECT" (RO) 729d "NO" lautet, und wenn der Wert des Teilfelds "INSTANCE REFERENCE" (IR) 729c "1" (eins) lautet, wird die Steuerung dem Schritt 1117 übergeben; andernfalls wird sie dem Schritt 1118 übergeben.
    • • Im Schritt 1117 wird die STT-Tabelle 720 aktualisiert, indem der Datensatz 721 aufgefrischt wird, dessen Feld "Name" 722 den gleichen Wert wie die lokale Variable STE_name hat. Dazu werden
    • • das Feld "Last Change Date" 723 auf die Systemzeitreferenz gesetzt, die dem Zentralprozessor 101 bekannt ist;
    • • das Feld "Min Element #" 725 auf den Wert der lokalen Variablen STE_min gesetzt;
    • • das Feld "Max Element #" 726 auf den Wert der lokalen Variablen STE_max gesetzt.
    • • Die aktuelle im Arbeitspufferspeicher abgelegte Beschreibung der ST, die vom Zellenbereich 514 dargestellt wird und die sich an die STDT-Tabelle 760 hält, wird an den Speicherplatz kopiert, auf den das Feld "Description Ptr" 724 zeigt.
    • • Das Feld "Type" 727 wird aktualisiert, da das Teilfeld "FILIATION REFERENCE" (FR) 729b des Attributs "REFERENCED" 729 dank seiner Definitionsformel, die von der Gruppe der EFs, MEFs, EPs und MEPs abhängt, welche zu der STDT-Tabelle 760 gehören, auf die das Feld "Description Ptr" 724 zeigt, automatisch aktualisiert wird.
    • • Bei jedem Namen eines EF oder eines MEF, der in der Spalte 765 dieser STDT-Tabelle 760 vorkommt, wird die EFT-Tabelle 700 in den entsprechenden Datensätzen 701, deren Feld "Name" 702 mit dem Namen dieses Elements oder dieses MEF übereinstimmt, automatisch aktualisiert, da das Teilfeld "REFERENCED OBJECT" (RO) 709d (im Attribut "REFERENCED" 709) entsprechend seiner Definitionsformel neu berechnet wird.
    • • Bei jedem Namen eines EP oder eines MEP, der in der Spalte 764 dieser STDT-Tabelle 760 vorkommt, wird die EPT-Tabelle 710 in den entsprechenden Datensätzen 711, deren Feld "Name" 712 mit dem Namen dieses Elements oder dieses MEP übereinstimmt, automatisch aktualisiert, da das Teilfeld "REFERENCED OBJECT" (RO) 719d (im Attribut "REFERENCED" 719) entsprechend seiner Definitionsformel neu berechnet wird. Daraufhin wird die Steuerung dem Schritt 1111 übergeben.
    • • Im Schritt 1118 wird eine Warnmeldung ausgegeben, um den Benutzer darauf aufmerksam zu machen, dass bereits von einem RE oder einem RME auf die bearbeitete ST verwiesen wird oder dass sie bereits als eine vorhandene STI instanziiert wurde. Dies kann üblicherweise geschehen, indem auf dem Bildschirm 106 eine Warnmeldung in einem Dialogfenster oder in einem Bereich der Statuszeile angezeigt wird, aber ein anderes ähnliches Mittel könnte stattdessen ebenfalls verwendet werden. Dann wird der Benutzer aufgefordert, die aktuelle Speicheroperation ("Save") entweder abzubrechen oder fortzusetzen. Dies kann üblicherweise geschehen, indem auf dem Bildschirm 106 eine Aufforderungsmeldung in einem Dialogfenster angezeigt wird, aber ein anderes ähnliches Mittel könnte stattdessen ebenfalls verwendet werden. Sobald der Benutzer über ein herkömmliches Mittel wie zum Beispiel einen Klick mit der Zeigeeinheit 105 auf eine Schaltfläche "Cancel" oder "Continue", die in einem Dialogfenster mit einer Aufforderungsmeldung vorhanden ist, seine Wahl getroffen hat, wird die Steuerung dem Schritt 1111 übergeben, wenn sich der Benutzer des Tabellenkalkulationsprogramms entscheidet, die Operation abzubrechen, oder dem Schritt 1117, wenn sich der Benutzer des Tabellenkalkulationsprogramms entscheidet, die Operation fortzusetzen.
    • • Im Schritt 1119 wird ein Test an dem im Textfeld 505 vorgefundenen Wert durchgeführt, um festzustellen, ob er einem gültigen neuen Namen entspricht. Die entsprechenden Kriterien sind von der Ausführungsart abhängig und können verschiedene Formen annehmen, solange es sich bei dem neu vorgeschlagenen Namen im Hinblick auf alle bereits festgelegten und in den Feldern "Name" 702, 712, 722, 2212 und 2222 erfassten Namen um eine eindeutige Zeichenfolge handelt. Wenn die Gültigkeit und die Unverwechselbarkeit nachgewiesen sind, wird die Steuerung dem Schritt 1120 übergeben; andernfalls wird sie dem Schritt 1121 übergeben. Im Schritt 1120 wird im Hauptspeicher 102 Speicherbereich zugeordnet, um später den Deskriptor der ST abzulegen. Dieser zugeordnete Speicherbereich ist ein Teil des Speicherbereichs, der der gerade geöffneten Datei des Tabellenkalkulationsprogramms entspricht. Als Nächstes wird in der STT-Tabelle 720 ein neuer Datensatz 721 angelegt, und dieser neue Datensatz 721 wird wie folgt initialisiert:
    • • Das Feld "Name" 722 wird auf den im Textfeld 505 vorgefundenen und im Schritt 1119 für gültig erklärten Wert gesetzt, wobei der Eintrag in diesem Feld 722 dann der neue Wert der lokalen variablen STE_name wird;
    • • das Feld "Last Change Date" 723 wird auf die Systemzeitreferenz gesetzt, die dem Zentralprozessor 101 bekannt ist;
    • • das Feld "Description Ptr" 724 wird auf den Speicherplatz gesetzt, der soeben zugeordnet wurde;
    • • das Feld "Min Element #" 725 wird auf den Wert der lokalen Variablen STE_min gesetzt;
    • • das Feld "Max Element #" 726 wird auf den Wert der lokalen Variablen STE_max gesetzt;
    • • die aktuelle im Arbeitspufferspeicher abgelegte Beschreibung der ST, die vom Zellenbereich 514 dargestellt wird und die sich an die STDT-Tabelle 760 hält, wird an den Speicherplatz kopiert, auf den das Feld "Description Ptr" 724 zeigt.
    • • Das Feld "Type" 727 wird wie folgt gesetzt: Das Attribut "META" 728 wird auf "NO" gesetzt, und das Attribut "REFERENCED" 729 wird wie folgt initialisiert:
    • • Das Teilfeld "OWN REFERENCE" (OR) 729a wird mit einer Primzahl initialisiert, die noch keinem anderen OR-Teilfeld 709a oder 719a oder 729a oder 780a oder 2219a oder 2229a oder 2240a zugewiesen wurde. Verschiedene herkömmliche Verfahren, die hier nicht näher beschrieben werden, können zur Feststellung einer Primzahl angewendet werden.
    • • Das Teilfeld "FILIATION REFERENCE" (FR) 729b wird entsprechend der folgenden Formel initialisiert, wobei die Gruppe F der Gruppe von EFs, MEFs, EPs und MEPs entspricht, die gemäß der im Feld "Description Ptr" 724 erfassten Struktur die neue ST bildet: FR = Πi∊F ORi × LCM({FRi})i∊F
    • • Das Teilfeld "INSTANCE REFERENCE" (IR) 7290 wird auf den Anfangswert 1 (eins) gesetzt.
    • • Das Teilfeld "REFERENCED OBJECT" (RO) 729d wird mit der folgenden Formel initialisiert, wobei die Gruppe P der Gruppe der REs und RMEs entspricht: RO = "YES" wenn LCM({FRi})i∊P Mod OR = 0; andernfalls ist RO = "NO".
    • • Das Teilfeld "SELECTED CHILDREN" (SC) 729e wird mit der folgenden Formel initialisiert, wobei die Gruppe S der Gruppe der ausgewählten Objekte entspricht (deren Attribut "SELECTED" 2242 in der RSTMT-Tabelle 2230 den Wert "YES" hat). SC = "YES" wenn LCM({FRi})i∊S Mod OR = 0 "OR" STE_name ∊ S; andernfalls ist SC = "NO".
    • • Bei jedem Namen eines EF oder eines MEF, der in der Spalte 765 dieser STDT-Tabelle 760 vorkommt, wird die EFT-Tabelle 700 in den entsprechenden Datensätzen 701, deren Feld "Name" 702 mit dem Namen dieses Elements oder dieses MEF übereinstimmt, automatisch aktualisiert, da das Teilfeld "REFERENCED OBJECT" (RO) 709d (im Attribut "REFERENCED" 709) entsprechend seiner Definitionsformel neu berechnet wird.
    • • Bei jedem Namen eines EP oder eines MEP, der in der Spalte 764 dieser STDT-Tabelle 760 vorkommt, wird die EPT-Tabelle 710 in den entsprechenden Datensätzen 711, deren Feld "Name" 712 mit dem Namen dieses Elements oder dieses MEP übereinstimmt, automatisch aktualisiert, da das Teilfeld "REFERENCED OBJECT" (RO) 719d (im Attribut "REFERENCED" 719) entsprechend seiner Definitionsformel neu berechnet wird.
  • Daraufhin wird die Steuerung dem Schritt 1111 übergeben.
    • • Im Schritt 1121 wird eine Warnmeldung ausgegeben, um den Benutzer darauf aufmerksam zu machen, dass im Textfeld 505 ein gültiger und eindeutiger Name angegeben werden muss, bevor die Schaltfläche "Save As" 512 angeklickt wird. Dies kann üblicherweise geschehen, indem auf dem Bildschirm 106 eine Warnmeldung in einem Dialogfenster oder in einem Bereich der Statuszeile angezeigt wird, aber ein anderes ähnliches Mittel könnte stattdessen ebenfalls verwendet werden. Sobald der Benutzer diesen Hinweis über ein herkömmliches Mittel wie zum Beispiel einen Klick mit der Zeigeeinheit 105 auf eine Schaltfläche "OK", die in einem Dialogfenster mit einer Warnmeldung vorhanden ist, oder über ein anderes ähnliches Mittel bestätigt hat, wird die Steuerung dem Schritt 1111 übergeben.
    • • Im Schritt 1122 wird der Wert der lokalen Variablen STE_min entsprechend der von der Zeigeeinheit 105 auf dem Drehfeld 507 vorgegebenen Richtung (nach oben oder nach unten) entweder um 1 (eins) erhöht oder verringert, und dies, solange ihr Wert positiv und kleiner als oder gleichgroß wie ein oberer Grenzwert, der in einer bevorzugten Ausführungsform der vorliegenden Erfindung auf 254 gesetzt wird, sowie gleichgroß wie der Wert bleibt, der im Textfeld 509 angezeigt wird. Daraufhin wird die Steuerung dem Schritt 1111 übergeben.
    • • Im Schritt 1123 wird der Wert der lokalen Variablen STE_max entsprechend der von der Zeigeeinheit 105 auf dem Drehfeld 508 vorgegebenen Richtung (nach oben oder nach unten) entweder um 1 (eins) erhöht oder verringert, und dies, solange ihr Wert positiv, größer als der im Textfeld 506 angezeigte Wert und kleiner als oder gleichgroß wie ein oberer Grenzwert bleibt, der in einer bevorzugten Ausführungsform der Erfindung auf 254 gesetzt wird. Daraufhin wird die Steuerung dem Schritt 1111 übergeben.
    • • Im Schritt 1124 wird in den Zellenbereich 514, der die bearbeitete ST darstellt, über der Zeile, in der sich die zuletzt ausgewählte Zelle zuvor befand, eine neue Zeile eingefügt.
    • • Daraufhin wird die äußerste linke Zelle ausgewählt, die sich in der neuen Zeile im Zellenbereich 514 befindet. Dann wird die Definition der ST im Arbeitspufferspeicher aktualisiert, indem ein neues Meta-Element eingefügt wird, das wie die anderen von einem Paar (MEF 765, MEP 764) beschrieben wird, welches standardmäßig aus einem standardmäßigen MEF und einem standardmäßigen MEP besteht, die ebenfalls der lokalen Variablen STE_format beziehungsweise der lokalen Variablen STE_profile zugeordnet werden. Überdies wird die aktuelle im Arbeitspufferspeicher abgelegte Beschreibung der ST, die vom Zellenbereich 514 dargestellt wird und die sich an die STDT-Tabelle 760 hält, an den Speicherplatz kopiert, auf den das Feld "Description Ptr" 724 zeigt. Dann wird die Steuerung dem Schritt 1111 übergeben.
    • • Im Schritt 1123 wird der Wert der lokalen Variablen STE_max entsprechend der von der Zeigeeinheit 105 auf dem Drehfeld 508 vorgegebenen Richtung (nach oben oder nach unten) entweder um 1 (eins) erhöht oder verringert, solange ihr Wert positiv, größer als der im Textfeld 506 angezeigte Wert und geringer als ein oberer Grenzwert oder gleich einem oberen Grenzwert bleibt, der in einer bevorzugten Ausführungsform der vorliegenden Erfindung auf 254 gesetzt wird. Daraufhin wird die Steuerung dem Schritt 1111 übergeben.
    • • Im Schritt 1124 wird in den Zellenbereich 514, der die bearbeitete ST darstellt, über der Zeile, in der sich zuvor die zuletzt ausgewählte Zelle befand, eine neue Zeile eingefügt.
  • Daraufhin wird die äußerste linke Zelle ausgewählt, die sich in der neuen Zeile im Zellenbereich 514 befindet. Dann wird die Definition der ST im Arbeitspufferspeicher aktualisiert, indem ein neues Meta-Element eingefügt wird, das wie die anderen von einem Paar (MEF 765, MEP 764) beschrieben wird, welches standardmäßig aus einem standardmäßigen MEF und einem standardmäßigen MEP besteht, die ebenfalls der lokalen Variablen STE_format beziehungsweise der lokalen variablen STE_profile zugeordnet werden. Überdies wird die aktuelle im Arbeitspufferspeicher abgelegte Beschreibung der ST, die vom Zellenbereich 514 dargestellt wird und die sich an die STDT-Tabelle 760 hält, an den Speicherplatz kopiert, auf den das Feld "Description Ptr" 724 zeigt. Dann wird die Steuerung dem Schritt 1111 übergeben.
    • • Im Schritt 1125 wird die Zeile, die die ausgewählte Zelle enthält, aus dem Zellenbereich 514 entfernt. Dann wird die äußerste linke Zelle ausgewählt, die sich im Zellenbereich 514 in der Zeile befindet, welche das in der bearbeiteten ST festgelegte Element darstellt. Anschließend wird die Definition der ST aktualisiert, indem das gelöschte Meta-Element entfernt wird, das von einem Paar (MEF, MEP) beschrieben wurde. Überdies wird die aktuelle im Arbeitspufferspeicher abgelegte Beschreibung der ST, die vom Zellenbereich 514 dargestellt wird und die sich an die STDT-Tabelle 760 hält, an den Speicherplatz kopiert, auf den das Feld "Description Ptr" 724 zeigt. Dann wird die Steuerung dem Schritt 1127 übergeben.
    • • Im Schritt 1126 wird die aktuelle Zelle im Arbeitsblatt "Editor Space" 515 nach oben beziehungsweise nach unten verschoben, wenn der Benutzer des Tabellenkalkulationsprogramms mit der Zeigeeinheit 105 auf die Schaltfläche "Up" 519 oder auf die Schaltfläche "Down" 520 geklickt hat, und auch, wenn die aktuelle Zelle durch diese Bewegung nicht aus dem Zellenbereich 514, der die ST darstellt, geschoben wird.
    • • Im Schritt 1127 werden die lokalen Variablen STE_format und STE_profile auf den Namen des EF oder des MEF beziehungsweise auf den Namen des EP oder des MEP gesetzt, der dem Element oder dem Meta-Element entspricht, das von der gerade ausgewählten Zelle in dem Zellenbereich 514 dargestellt wird. Daraufhin wird die Steuerung dem Schritt 1111 übergeben.
    • • Im Schritt 1128 wird das Dialogfeld 501 des ST-Editors geschlossen, so dass es vom Bildschirm 106 verschwindet, dann wird das Arbeitsblatt "Editor Space" 515 aus dem angezeigten Fenster entfernt und durch das ursprüngliche Arbeitsblatt ersetzt, das zu dem Zeitpunkt vorhanden war, zu dem der EP-Editor aufgerufen wurde. Alle Mittel, die während der Anzeige des Arbeitsblatts "Editor Space" 515 vorübergehend deaktiviert wurden, werden nun wieder aktiviert. Schließlich wird die Steuerung wieder dem ersten Schritt 1101 zur Verarbeitung eines künftigen ST-Editor-Befehls übergeben.
  • E5. RST-Editor-Verfahren
  • Das Verfahren zur Erzeugung oder Aktualisierung von RSTs, das in der bevorzugten Ausführungsform der vorliegenden Erfindung verwendet wird, ist im Flussdiagramm 1230 von 12 zusammengefasst. Dieses Verfahren kann als Verarbeitung des Befehls "RST Editor" betrachtet werden.
    • • Im Schritt 1231 befindet sich das Verfahren in seinem standardmäßigen Zustand, in dem es auf ein Ereignis zum Starten des Prozesses wartet.
    • • Im Schritt 1232 wird der Befehl "RST Editor" als Ergebnis einer Benutzeraktion festgestellt. Diese Aktion kann beispielsweise Folgende sein:
    • • eine bestimmte Tastenkombination auf der Tastatur 104 oder
    • • das Anklicken einer bestimmten Schaltfläche mit der Zeigeeinheit 105 oder
    • • ein anderes ähnliches Mittel, das hier nicht näher angegeben wird.
    • • Im Schritt 1233 wird der Parameter des Befehls abgerufen. Er entspricht einem zwingend notwendigen Parameter RSTE_name, der entweder einen reservierten Wert "NEW" oder einen anderen Wert annehmen kann, welcher dem Namen einer Zeichenfolge entspricht, der im Feld "Name" 2232 eines Datensatzes 2231 in der RSTMT-Tabelle 2230 vorgefunden wird. Dieser Parameter wird als eine lokale variable abgelegt.
    • • Im Schritt 1234 werden einige lokale Variablen mit einem Anfangswert belegt: Die lokale Variable RSTE_min wird auf den Standardwert 1 (eins) gesetzt, und die lokale Variable RSTE_max wird auf den Standardwert 16 gesetzt.
    • • Im Schritt 1235 wird ein Test durchgeführt, um festzustellen, welchen Wert die lokale Variable RSTE_name angenommen hat. Wenn festgestellt wird, dass ihr Wert "NEW" lautet, wird die Steuerung dem Schritt 1239 übergeben; andernfalls wird die Steuerung dem Schritt 1236 übergeben.
    • • Im Schritt 1236 wird die RSTT-Tabelle 2220 nach einem Datensatz 2221 durchsucht, bei dem der Wert im Feld "Name" 2222 gleich dem von der lokalen Variablen RSTE_name angenommenen Wert ist. Wenn ein solcher Datensatz gefunden wird, wird die Steuerung dem Schritt 1238 übergeben; andernfalls wird die Steuerung dem Schritt 1237 übergeben.
    • • Im Schritt 1237 wird eine Ausnahmebedingungs-Behandlungsroutine aufgerufen, um diese "Should-not-occur"-Bedingung zu behandeln. Eine solche Operation hängt von der Ausführungsart ab und kann verschiedene Formen wie zum Beispiel die Anzeige eines Dialogfensters mit einer Fehlermeldung auf dem Bildschirm 106 annehmen. Dann wird die Steuerung dem ersten Schritt 1231 zur Verarbeitung eines künftigen RST-Editor-Befehls übergeben.
    • • Im Schritt 1238 wird die lokale Variable RSTE_min auf den Wert gesetzt, der im Feld "Min Element #" 2225 des im Schritt 1236 gefundenen Datensatzes 2221 vorgefunden wird, wird die lokale Variable RSTE_max auf den Wert gesetzt, der im Feld "Max Element #" 2226 des im Schritt 1236 gefundenen Datensatzes 2221 vorgefunden wird.
  • Dann wird der Speicherplatz, auf den das Feld "Description Ptr" 2224 des im Schritt 1236 gefundenen Datensatzes 2221 zeigt, (an dem die Beschreibung der RST entsprechend der in 20D gezeigten RSTDT-Tabelle 2250 abgelegt ist) in einen Arbeitspufferspeicher kopiert, der sich wiederum an dieselbe RSTDT-Tabelle 2250 hält.
  • Mit dieser Struktur wird dann in der Zwischenablage im Hauptspeicher 102 ein Bereich von Zellen eines Arbeitsblatts erzeugt, der die Definition der RST darstellt, die in den Arbeitspufferspeicher kopiert wurde, wobei jede Zelle in Folge Namen von REs oder von RMEs entspricht, wobei mit dem ersten Namen 2251 begonnen und dies bis zum letzten Namen 2253 fortgesetzt wird. Dann wird die Steuerung dem Schritt 1240 übergeben.
    • Im Schritt 1239 wird entsprechend einer Namensfolge, die in einer bevorzugten Ausführungsform der vorliegenden Erfindung die Form "New XX" hat, ein neuer Name für die neu erzeugte RST festgelegt, wobei XX einem Zählerwert entspricht, der in Bezug auf alle Namen, die zuvor festgelegt und in den Feldern "Name" 702, 712, 722, 2212 und 2222 erfasst wurden, welche sich in den jeweiligen Datensätzen 701, 711, 721, 2211 und 2221 der jeweiligen Tabellen EFT 700, EPT 710, STT 720, RET 2210 und RSST 2220 befinden, die Unverwechselbarkeit des Namens sicherstellt. Ein anderes ähnliches herkömmliches Mittel könnte stattdessen ebenfalls verwendet werden, solange die Unverwechselbarkeit des neu erzeugten Namens sichergestellt wird. Dann wird der neue Name in der lokalen Variablen RSTE_name abgelegt. Anschließend wird im Hauptspeicher 102 Speicherbereich zugeordnet, um später den der Veranschaulichung dienenden Zellenbereich für die neue RST abzulegen. Dieser zugeordnete Speicherbereich ist ein Teil des Speicherbereichs, der der gerade geöffneten Datei des Tabellenkalkulationsprogramms entspricht, und er hält sich an die in 20D gezeigte RSTDT-Tabelle 2250. Als Nächstes wird in der RSTT-Tabelle 2221 ein neuer Datensatz 2221 angelegt, und dieser neue Datensatz 2221 wird wie folgt initialisiert:
    • • Das Feld "Name" 2222 wird auf den Wert der lokalen Variablen RSTE_name gesetzt;
    • • das Feld "Last Change Date" 2223 wird auf die Systemzeitreferenz gesetzt, die dem Zentralprozessor 101 bekannt ist;
    • • das Feld "Description Ptr" 2224 wird auf den Speicherplatz gesetzt, der soeben zugeordnet wurde;
    • • das Feld "Min Element #" 2225 wird auf den Wert der lokalen Variablen RSTE_min gesetzt;
    • • das Feld "Max Element #" 2226 wird auf den Wert der lokalen Variablen RSTE_max gesetzt;
    • • das Feld "Type" 2227 wird wie folgt gesetzt: Das Attribut "META" 2228 wird auf "NO" gesetzt, und das Attribut "REFERENCED" 2229 wird wie folgt initialisiert:
    • • Das Teilfeld "OWN REFERENCE" (OR) 2229a wird mit einer Primzahl initialisiert, die noch keinem anderen OR-Teilfeld 709a oder 719a oder 729a oder 780a oder 2219a oder 2229a oder 2240a zugewiesen wurde. Verschiedene herkömmliche Verfahren, die hier nicht näher beschrieben werden, können zur Feststellung einer Primzahl angewendet werden.
    • • Das Teilfeld "FILIATION REFERENCE" (FR) 2229b wird entsprechend der folgenden Formel initialisiert, wobei die Gruppe F der Gruppe von REs und RMEs entspricht, die gemäß der im Feld "Description Ptr" 2224 erfassten Struktur die neue RST bildet: FR = Πi∊F ORi × LCM({FRi})i∊F
    • • Das Teilfeld "INSTANCE REFERENCE" (IR) 2229c wird auf den Anfangswert 1 (eins) gesetzt.
    • • Das Teilfeld "REFERENCED OBJECT" (RO) 2229d wird auf den Anfangswert "NO" gesetzt.
    • • Das Teilfeld "SELECTED CHILDREN" (SC) 2229e wird mit der folgenden Formel initialisiert, wobei die Gruppe S der Gruppe der ausgewählten Objekte entspricht (deren Attribut "SELECTED" 2242 in der RSTMT-Tabelle 2230 den Wert "YES" hat). SC = "YES" wenn LCM({FRi})i∊S Mod OR = 0 #OR# RSTE_name ∊ S; andernfalls ist SC = "NO".
  • Dann wird im Hauptspeicher 102 ein Arbeitspufferspeicherbereich zugeordnet und mit einer standardmäßigen Beschreibung einer RST initialisiert, die einem RE 2252 entspricht. Mit dieser standardmäßigen Beschreibung einer RST wird dann in der Zwischenablage im Hauptspeicher 102 ein Bereich von Zellen eines Arbeitsblatts erzeugt, der die neue RST darstellt. Diese Gestaltung wird in der Weise erreicht, die am Ende des Schritts 1238 erklärt ist. Dann wird die Steuerung dem Schritt 1240 übergeben.
    • • Im Schritt 1240 wird das Arbeitsblatt "Editor Space" 615 zum aktuellen Arbeitsblatt gemacht, und dieses Arbeitsblatt wird in den Schreibschutzmodus versetzt, währenddessen die normale Funktion zum Einfügen und Löschen von Zeilen deaktiviert ist. Daraufhin wird die oberste linke Zelle des Zellenbereichs 614 ausgewählt. Dann wird die lokale Variable RE_name mit dem Namen des RE belegt, welcher der Zeile entspricht, in der sich die Zelle befindet, die gerade in dem Zellenbereich 614 ausgewählt wurde.
    • • Im Schritt 1241 wird das Dialogfeld 601 des RST-Editors auf dem Bildschirm 106 angezeigt.
    • • Das Bezeichnungsfeld 604 wird mit dem Wert der lokalen Variablen RSTE_name initialisiert.
    • • In das Textfeld 606 wird der Wert der lokalen Variablen RSTE_min eingegeben.
    • • In das Textfeld 609 wird der Wert der lokalen Variablen RSTE_max eingegeben.
    • • In das Kombinationsfeld 610 wird der Wert der lokalen variablen RE_name eingegeben.
  • Anschließend wird der Zellenbereich 614 entsprechend der Beschreibung aktualisiert, die in der Speicherzwischenablage abgelegt ist: Der Inhalt der Zwischenablage wird in dieses leere Arbeitsblatt an einer festen Zellenadresse 614 (Adresse B2 in einer bevorzugten Ausführungsform der vorliegenden Erfindung, wie in 6 gezeigt ist) eingefügt, so dass der Benutzer die ST im Fenster 611 auf dem Bildschirm 106 darstellen kann.
  • Dann wird ein Test durchgeführt, um zu prüfen, ob alle REs und RMEs, die zur Definition der RST beitragen, welche vom Zellenbereich 614 dargestellt wird, die gleiche Anzahl von Feldern haben. Wenn dies der Fall ist, werden die beiden Schaltflächen "Save" 613 und Save As" 612 aktiviert, so dass der Klick mit der Zeigeeinheit 105 auf eine dieser beiden Schaltflächen als ein gültiges Ereignis erkannt wird. Andernfalls werden die beiden Schaltflächen "Save" 613 und Save As" 612 deaktiviert, so dass der Klick mit der Zeigeeinheit 105 auf eine dieser beiden Schaltflächen nicht als ein gültiges Ereignis erkannt wird.
    • • Im Schritt 1242 wartet das Verfahren auf eine Benutzeraktion im Dialogfeld 601 des RST-Editors. Eine solche Benutzeraktion ist üblicherweise das Ergebnis eines Klicks mit der Zeigeeinheit 105, wobei dieser Auslöser jedoch auch andere ähnliche Formen annehmen kann wie zum Beispiel, jedoch nicht auf diese beschränkt, eine bestimmte Tastenkombination auf der Tastatur 104 oder irgendein anderes ähnliches Mittel, das hier nicht näher angegeben wird.
    • • Im Schritt 1243 wird eine Benutzeraktion im Dialogfeld 601 des RST-Editors festgestellt.
    • • Wenn die Benutzeraktion ein Klick auf die Schaltfläche "Save" 613 ist, wird die Steuerung dem Schritt 1246 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Save As" 612 ist, wird die Steuerung dem Schritt 1249 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Add" 617 ist, wird die Steuerung dem Schritt 1254 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Delete" 618 ist, wird die Steuerung dem Schritt 1255 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Up" 619 oder auf die Schaltfläche "Down" 616 ist, wird die Steuerung dem Schritt 1256 übergeben;
    • • wenn die Benutzeraktion eine Aktualisierung des Kombinationsfelds 610 ist, wird die Steuerung dem Schritt 1244 übergeben;
    • • wenn die Benutzeraktion ein Klick auf das Drehfeld 607 ist, wird die Steuerung dem Schritt 1252 übergeben;
    • • wenn die Benutzeraktion ein Klick auf das Drehfeld 608 ist, wird die Steuerung dem Schritt 1253 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Done" 603 oder auf die Schaltfläche 602 zum Schließen des Fensters ist, wird die Steuerung dem Schritt 1258 übergeben.
    • • Im Schritt 1244 wird die Beschreibung der ST im Arbeitspufferspeicher aktualisiert, indem der bisherige Name des RE oder des RME, der dem RE oder dem RME entspricht, das von der gerade ausgewählten Zelle in dem Zellenbereich 614 dargestellt wird, durch den Namen des RE oder des RME ersetzt wird, der im Kombinationsfeld 610 vorgefunden wird. Dann wird die Steuerung dem Schritt 1241 übergeben.
    • • Im Schritt 1246 wird ein Test durchgeführt, um zu prüfen, ob auf die gerade bearbeitete RST bereits von einer vorhandenen RSTI verwiesen wird. Dazu wird der Wert des Attributs "REFERENCED" 2229 im Feld "Type" 2227 des Datensatzes 2221 in der RSTT-Tabelle 2220, dessen Feld "Name" 2222 den gleichen Wert wie die lokale Variable RSTE_name hat, geprüft. Wenn der Wert des Teilfelds "INSTANCE REFERENCE" (IR) 2229c "1" (eins) lautet, wird die Steuerung dem Schritt 1247 übergeben; andernfalls wird die Steuerung dem Schritt 1248 übergeben.
    • • Im Schritt 1247 wird die RSTT-Tabelle 2220 aktualisiert, indem der Datensatz 2221 aufgefrischt wird, dessen Feld "Name" 2222 den gleichen Wert wie die lokale Variable RSTE_name hat. Dazu werden
    • • das Feld "Last Change Date" 2223 auf die Systemzeitreferenz gesetzt, die dem Zentralprozessor 101 bekannt ist;
    • • das Feld "Min Element #" 2225 auf den Wert der lokalen Variablen RSTE_min gesetzt;
    • • das Feld "Max Element #" 2226 auf den Wert der lokalen Variablen RSTE_max gesetzt.
    • • Die aktuelle im Arbeitspufferspeicher abgelegte Beschreibung der RST, die vom Zellenbereich 614 dargestellt wird und die sich an die RSTDT-Tabelle 2250 hält, wird an den Speicherplatz kopiert, auf den das Feld "Description Ptr" 2224 zeigt.
    • • Das Feld "Type" 2227 wird aktualisiert, da das Teilfeld "FILIATION REFERENCE" (FR) 2229b des Attributs "REFERENCED" 2229 dank seiner Definitionsformel, die von der Gruppe der REs und RMEs abhängt, welche zu der RSTDT-Tabelle 2250 gehören, auf die das Feld "Description Ptr" 2224 zeigt, automatisch aktualisiert wird.
    • • Bei jedem Namen eines RE oder eines RME, der in der Spalte 2254 dieser RSTDT-Tabelle 2250 vorkommt, wird die RET-Tabelle 2210 in dem entsprechenden Datensatz 2211, dessen Feld "Name" 2212 mit dem Namen dieses RE oder dieses RME übereinstimmt, automatisch aktualisiert, da das Teilfeld "REFERENCED OBJECT" (RO) 2219d (im Attribut "REFERENCED" 2219) entsprechend seiner Definitionsformel neu berechnet wird.
    • • Im Schritt 1248 wird eine Warnmeldung ausgegeben, um den Benutzer darauf aufmerksam zu machen, dass die bearbeitete RST bereits als eine RSTI instanziiert wurde. Dies kann üblicherweise geschehen, indem auf dem Bildschirm 106 eine Warnmeldung in einem Dialogfenster oder in einem Bereich der Statuszeile angezeigt wird, aber ein anderes ähnliches Mittel könnte stattdessen ebenfalls verwendet werden. Dann wird der Benutzer aufgefordert, die aktuelle Speicheroperation ("Save") entweder abzubrechen oder fortzusetzen. Dies kann üblicherweise geschehen, indem auf dem Bildschirm 106 eine Aufforderungsmeldung in einem Dialogfenster angezeigt wird, aber ein anderes ähnliches Mittel könnte stattdessen ebenfalls verwendet werden. Sobald der Benutzer über ein herkömmliches Mittel wie zum Beispiel einen Klick mit der Zeigeeinheit 105 auf eine Schaltfläche "Cancel" oder "Continue", die in einem Dialogfenster mit einer Aufforderungsmeldung vorhanden ist, oder über ein anderes ähnliches Mittel seine Wahl getroffen hat, wird die Steuerung dem Schritt 1241 übergeben, wenn sich der Benutzer des Tabellenkalkulationsprogramms entscheidet, die Operation abzubrechen, oder dem Schritt 1247, wenn sich der Benutzer des Tabellenkalkulationsprogramms entscheidet, die Operation fortzusetzen.
    • • Im Schritt 1249 wird ein Test an dem im Textfeld 605 vorgefundenen Wert durchgeführt, um festzustellen, ob er einem gültigen neuen Namen entspricht. Die entsprechenden Kriterien sind von der Ausführungsart abhängig und können verschiedene Formen annehmen, solange es sich bei dem neu vorgeschlagenen Namen im Hinblick auf alle bereits festgelegten und in den Feldern "Name" 702, 712, 722, 2212 und 2222 erfassten Namen um eine eindeutige Zeichenfolge handelt. Wenn die Gültigkeit und die Unverwechselbarkeit nachgewiesen sind, wird die Steuerung dem Schritt 1250 übergeben; andernfalls wird sie dem Schritt 1251 übergeben.
    • • Im Schritt 1250 wird im Hauptspeicher 102 Speicherbereich zugeordnet, um später den Deskriptor der RST abzulegen. Dieser zugeordnete Speicherbereich ist ein Teil des Speicherbereichs, der der gerade geöffneten Datei des Tabellenkalkulationsprogramms entspricht. Als Nächstes wird in der RSTT-Tabelle 2221 ein neuer Datensatz 2221 angelegt, und dieser neue Datensatz 2221 wird wie folgt initialisiert:
    • • Das Feld "Name" 2222 wird auf den im Textfeld 605 vorgefundenen und im Schritt 1249 für gültig erklärten Wert gesetzt, wobei der Eintrag in diesem Feld 2222 dann der neue Wert der lokalen Variablen RSTE_name wird;
    • • das Feld "Last Change Date" 2223 wird auf die Systemzeitreferenz gesetzt, die dem Zentralprozessor 101 bekannt ist;
    • • das Feld "Description Ptr" 2224 wird auf den Speicherplatz gesetzt, der soeben zugeordnet wurde;
    • • das Feld "Min Element #" 2225 wird auf den Wert der lokalen Variablen RSTE_min gesetzt;
    • • das Feld "Max Element #" 2226 wird auf den Wert der lokalen Variablen RSTE_max gesetzt; und
    • • das Feld "Type" 2227 wird wie folgt gesetzt: Das Attribut "META" 2228 wird auf "NO" gesetzt, und das Attribut "REFERENSED" 2229 wird wie folgt initialisiert
    • • Das Teilfeld "OWN REFERENCE" (OR) 2229a wird mit einer Primzahl initialisiert, die noch keinem anderen OR-Teilfeld 709a oder 719a oder 729a oder 780a oder 2219a oder 2229a oder 2240a zugewiesen wurde. Verschiedene herkömmliche Verfahren, die hier nicht näher beschrieben werden, können zur Feststellung einer Primzahl angewendet werden.
    • • Das Teilfeld "FILIATION REFERENCE" (FR) 2229b wird entsprechend der folgenden Formel initialisiert, wobei die Gruppe F der Gruppe von REs und RMEs entspricht, die gemäß der im Feld "Description Ptr" 2224 erfassten Struktur die neue RST bildet: FR = Πi∊F ORi × LCM({FRi})i∊F
    • • Das Teilfeld "INSTANCE REFERENCE" (IR) 2229c wird auf den Anfangswert 1 (eins) gesetzt.
    • • Das Teilfeld "REFERENCED OBJECT" (RO) 2229d wird auf den Anfangswert "NO" gesetzt.
    • • Das Teilfeld "SELECTED CHILDREN" (SC) 2229e wird mit der folgenden Formel initialisiert, wobei die Gruppe S der Gruppe der ausgewählten Objekte entspricht (deren Attribut "SELECTED" 2242 in der RSTMT-Tabelle 2230 den Wert "YES" hat). SC = "YES" wenn LCM({FRi})i∊S Mod OR = 0 "OR" RSTE_name ∊ S; andernfalls ist SC = "NO".
    • • Die aktuelle im Arbeitspufferspeicher abgelegte Beschreibung der RST, die vom Zellenbereich 614 dargestellt wird und die sich an die RSTDT-Tabelle 2250 hält, wird an den Speicherplatz kopiert, auf den das Feld "Description Ptr" 2224 zeigt.
    • • Bei jedem Namen eines RE oder eines RME, der in der Spalte 2254 dieser RSTDT-Tabelle 2250 vorkommt, wird die RET-Tabelle 2210 in dem entsprechenden Datensatz 2211, dessen Feld "Name" 2212 mit dem Namen dieses RE oder dieses RME übereinstimmt, automatisch aktualisiert, da das Teilfeld "REFERENCED OBJECT" (RO) 2229d (im Attribut "REFERENCED" 2219) entsprechend seiner Definitionsformel neu berechnet wird.
    • • Im Schritt 1251 wird eine Warnmeldung ausgegeben, um den Benutzer darauf aufmerksam zu machen, dass im Textfeld 605 ein gültiger und eindeutiger Name angegeben werden muss, bevor die Schaltfläche "Save As" 612 angeklickt wird. Dies kann üblicherweise geschehen, indem auf dem Bildschirm 106 eine Warnmeldung in einem Dialogfenster oder in einem Bereich der Statuszeile angezeigt wird, aber ein anderes ähnliches Mittel könnte stattdessen ebenfalls verwendet werden. Sobald der Benutzer diesen Hinweis über ein herkömmliches Mittel wie zum Beispiel einen Klick mit der Zeigeeinheit 105 auf eine Schaltfläche "OK", die in einem Dialogfenster mit einer Warnmeldung vorhanden ist, oder über ein anderes ähnliches Mittel bestätigt hat, wird die Steuerung dem Schritt 1241 übergeben.
    • • Im Schritt 1252 wird der Wert der lokalen Variablen RSTE_min entsprechend der von der Zeigeeinheit 105 auf dem Drehfeld 607 vorgegebenen Richtung (nach oben oder nach unten) entweder um 1 (eins) erhöht oder verringert, und dies, solange ihr Wert positiv und kleiner als oder gleichgroß wie ein oberer Grenzwert, der in einer bevorzugten Ausführungsform der vorliegenden Erfindung auf 254 gesetzt wird, sowie gleichgroß wie der Wert bleibt, der im Textfeld 609 angezeigt wird. Daraufhin wird die Steuerung dem Schritt 1241 übergeben.
    • • Im Schritt 1253 wird der Wert der lokalen Variablen RSTE_max entsprechend der von der Zeigeeinheit 105 auf dem Drehfeld 608 vorgegebenen Richtung (nach oben oder nach unten) entweder um 1 (eins) erhöht oder verringert, und dies, solange ihr Wert positiv, größer als der im Textfeld 606 angezeigte Wert und kleiner als oder gleichgroß wie ein oberer Grenzwert bleibt, der in einer bevorzugten Ausführungsform der vorliegenden Erfindung auf 254 gesetzt wird. Daraufhin wird die Steuerung dem Schritt 1241 übergeben.
    • • Im Schritt 1254 wird in den Zellenbereich 614, der die bearbeitete RST darstellt, über der Zeile, in der sich zuvor die zuletzt ausgewählte Zelle befand, eine neue Zeile eingefügt.
  • Daraufhin wird die äußerste linke Zelle ausgewählt, die sich in der neuen Zeile im Zellenbereich 614 befindet. Dann wird die Definition der RST im Arbeitspufferspeicher aktualisiert, indem ein neues RME eingefügt wird, das wie die anderen mit einem Namen bezeichnet wird, der auch der lokalen variablen RE_name zugewiesen wird. Überdies wird die aktuelle im Arbeitspufferspeicher abgelegte Beschreibung der RST, die vom Zellenbereich 614 dargestellt wird und die sich an die RSTDT-Tabelle 2250 hält, an den Speicherplatz kopiert, auf den das Feld "Description Ptr" 2224 zeigt. Dann wird die Steuerung dem Schritt 1241 übergeben.
    • • Im Schritt 1255 wird die Zeile, die die ausgewählte Zelle enthält, aus dem Zellenbereich 614 entfernt, so dass das nächste RE oder Meta-Element ausgewählt wird. Anschließend wird die Definition der RST aktualisiert, indem das gelöschte, durch seinen Namen ausgewiesene RME entfernt wird. Überdies wird die aktuelle im Arbeitspufferspeicher abgelegte Beschreibung der RST, die vom Zellenbereich 614 dargestellt wird und die sich an die RSTDT-Tabelle 2250 hält, an den Speicherplatz kopiert, auf den das Feld "Description Ptr" 2224 zeigt. Dann wird die Steuerung dem Schritt 1257 übergeben.
    • • Im Schritt 1256 wird die aktuelle Zelle im Arbeitsblatt "Editor Space" 615 nach oben beziehungsweise nach unten verschoben, wenn der Benutzer des Tabellenkalkulationsprogramms mit der Zeigeeinheit 105 auf die Schaltfläche "Up" 619 oder auf die Schaltfläche "Down" 616 geklickt hat, und auch, wenn die aktuelle Zelle durch diese Bewegung nicht aus dem Zellenbereich 614, der die RST darstellt, geschoben wird.
    • • Im Schritt 1257 wird die lokale Variable RE_name auf den Namen des RE oder des RME gesetzt, das entweder dem RE oder dem RME entspricht, welches von der gerade ausgewählten Zelle im Zellenbereich 614 ausgewiesen wird. Dann wird die Steuerung dem Schritt 1241 übergeben.
    • • Im Schritt 1258 wird das Dialogfeld 601 des RST-Editors geschlossen, so dass es vom Bildschirm 106 verschwindet, dann wird das Arbeitsblatt "Editor Space" 615 aus dem angezeigten Fenster entfernt und durch das ursprüngliche Arbeitsblatt ersetzt, das zu dem Zeitpunkt vorhanden war, zu dem der RST-Editor aufgerufen wurde. Alle Mittel, die während der Anzeige des Arbeitsblatts "Editor Space" 615 vorübergehend deaktiviert wurden, werden nun wieder aktiviert. Schließlich wird die Steuerung wieder dem ersten Schritt 1231 zur Verarbeitung eines künftigen RST-Editor-Befehls übergeben.
  • E6. ST-Instanziator-Verfahren
  • Das Verfahren zur Erzeugung einer STI, die sich an eine festgelegte ST hält, das in der bevorzugten Ausführungsform der vorliegenden Erfindung verwendet wird, ist im Flussdiagramm 1400 von 14A und 14B zusammengefasst, wobei Letzteres der Routine "CreateSTI" entspricht. Dieses Verfahren kann als Verarbeitung des Befehls "ST Instanciator" betrachtet werden.
    • • Im Schritt 1401 befindet sich das Verfahren in seinem standardmäßigen Zustand, in dem es auf ein Ereignis zum Starten des Prozesses wartet.
    • • Im Schritt 1402 wird der Befehl "ST Instanciator" als Ergebnis einer Benutzeraktion festgestellt. Diese Aktion kann beispielsweise eine bestimmte Tastenkombination auf der Tastatur 104 oder der Klick der Zeigeeinheit 105 auf eine bestimmte Schaltfläche oder ein anderes ähnliches Mittel sein, das hier nicht näher angegeben wird.
    • • Im Schritt 1403 wird ein Test durchgeführt, um zu prüfen, ob die gerade ausgewählte Zelle in einem Arbeitsblatt enthalten ist, auf dem eine RSTI vorhanden ist. Dieser Test kann durchgeführt werden, indem die RSTIT-Tabelle 2260 ausgewertet wird, um einen Datensatz 2261 zu ermitteln, dessen Feld "Address" 2262 demselben Arbeitsblatt wie die gerade ausgewählte Zelle entspricht. Wenn dies der Fall ist, wird die Steuerung dem Schritt 1404 übergeben; andernfalls wird die Steuerung dem Schritt 1405 übergeben.
    • • Im Schritt 1404 wird eine Warnmeldung ausgegeben, um den Benutzer darauf aufmerksam zu machen, dass eine STI nicht eigens auf einem Arbeitsblatt erzeugt werden kann, auf dem bereits eine RSTI vorhanden ist. Dies kann üblicherweise geschehen, indem auf dem Bildschirm 106 eine Warnmeldung in einem Dialogfenster oder in einem Bereich der Statuszeile angezeigt wird, aber ein anderes ähnliches Mittel könnte stattdessen ebenfalls verwendet werden. Sobald der Benutzer diesen Hinweis über ein herkömmliches Mittel wie zum Beispiel einen Klick mit der Zeigeeinheit 105 auf eine Schaltfläche "OK", die in einem Dialogfenster mit einer Warnmeldung vorhanden ist, oder über ein anderes ähnliches Mittel bestätigt hat, wird die Steuerung dem Schritt 1401 übergeben.
    • • Im Schritt 1405 wird zuerst der Befehlsparameter ST_name abgerufen: Er entspricht dem Namen der ST, an die sich die zu erzeugende STI halten wird. Dieser Parameter ST_name dient zur Auswertung der STT-Tabelle 720, um den Datensatz 721 zu finden, dessen Feld "Name" 722 mit dem Parameter ST_name übereinstimmt. Sobald dieser Datensatz 721 gefunden wurde, werden seine Felder "Min Element #" 725 und "Max Element #" 726 als die lokalen Variablen STI_min beziehungsweise STI_max. gespeichert. Über sein Feld "Description Ptr" 724 wird dann entsprechend der in Bezug genommenen STDT-Tabelle 760 die Anzahl der Meta-Elemente, die in der ST festgelegt sind, und die Anzahl der Zellen, die in jedem Element oder Meta-Element der ST festgelegt sind, ermittelt. Die erste Anzahl wird in einer lokalen Variablen STI_meta abgelegt, und die zweite Anzahl wird in einer lokalen Variablen STI_width 1325 (die die Anzahl der Spalten der künftigen STI darstellt) abgelegt.
  • Anschließend wird eine weitere lokale Variable STI_element mit dem von STI_min angenommenen Wert initialisiert.
  • Dann wird eine weitere lokale Variable STI_critical auf den Standardwert "YES" gesetzt.
  • Dann wird noch eine lokale Variable STI_sheet_width 1321 mit der Gesamtzahl der Spalten in dem aktuellen Arbeitsblatt 1320 initialisiert.
  • Dann wird eine weitere lokale Variable STI_sheet_height 1322 mit der Gesamtzahl der Zeilen in dem aktuellen Arbeitsblatt 1320 initialisiert.
  • Anschließend wird noch eine weitere lokale Variable STI_mode auf den Wert "OVERLAY" als Anfangswert gesetzt.
    • • Im Schritt 1406 werden zuerst einige andere lokale Variablen erzeugt oder aktualisiert. Die Position der gerade ausgewählten Zelle 1327 wird zunächst von den lokalen Variablen STI_offset_width 1323 und STI_offset_height 1324 dargestellt, die der Anzahl der Spalten beziehungsweise der Anzahl der Zeilen zwischen der obersten linken Zelle des aktuellen Arbeitsblatts 1320 und der gerade ausgewählten Zelle 1327 entsprechen.
  • Dann wird die Anzahl der Zeilen der künftigen STI von der lokalen Variablen STI_height 1326 dargestellt, die als die Summe der lokalen Variablen STI_meta und STI_element berechnet wird.
  • Als Zweites werden bestimmte Arbeitsbereiche von Zellen durch die Auswertung ihrer Adressen ermittelt.
  • Der Zellenbereich STI_range 1328, der der künftigen STI entspricht, wird zuerst als der Zellenbereich ermittelt, bei dem die gerade ausgewählte Zelle 1327 die oberste linke Zelle ist und dessen Anzahl von Zeilen und Spalten STI_height 1326 beziehungsweise STI_width 1325 entspricht.
  • Dann wird der Zellenbereich STI_horizontal_flushed_range 1330 als der Zellenbereich ermittelt, der sich dieselben Zeilen mit STI_range 1328 teilt und die äußersten rechten Spalten von STI_width 1325 im aktuellen Arbeitsblatt 1320 belegt.
  • Anschließend wird der Zellenbereich STI_horizontal_kept_range 1329 als der Zellenbereich ermittelt, der sich dieselben Zeilen mit STI_range 1328 teilt und die Spalten belegt, die sich zwischen den Spalten von STI_range 1328 und STI_horizontal_flushed_range 1330 befinden.
  • Dann wird der Zellenbereich STI_vertical_flushed_range 1332 als der Zellenbereich ermittelt, der sich dieselben Spalten mit STI_range 1328 teilt und die unteren Spalten von STI_height 1326 im aktuellen Arbeitsblatt 1320 belegt.
  • Anschließend wird der Zellenbereich STI_verticall_kept_range 1331 als der Zellenbereich ermittelt, der sich dieselben Spalten mit STI_range 1328 teilt und die Zeilen belegt, die sich zwischen den Zeilen von STI_range 1328 und STI_verticall_flushed_range 1332 befinden.
    • • Im Schritt 1407 werden zwei Summen gebildet, um zu prüfen, ob die künftige STI in die Begrenzungen des aktuellen Arbeitsblatts 1320 passt.
    • • Wenn festgestellt wird, dass die Summe der lokalen Variablen STI_offset_width 1323 und STI_width 1325 größer als der Wert der lokalen Variablen STI_sheet_width 1321 ist, wird eine lokale Variable STI_too_wide auf "YES" und andernfalls auf "NO" gesetzt.
    • • Wenn festgestellt wird, dass die Summe der lokalen Variablen STI_offset_height 1324 und STI_height 1326 größer als der Wert der lokalen Variablen STI_sheet_height 1322 ist, wird eine lokale Variable STI_too_high auf "YES" und andernfalls auf "NO" gesetzt.
    • • Im Schritt 1408 werden mehrere Tests durchgeführt, um zu bewerten, wie sich die Erzeugung der künftigen STI entsprechend den fünf möglichen Instanziierungsmodi möglicherweise auf eine bereits vorhandene STI oder bereits vorhandene Daten auswirkt. Diese Tests erfordern die Auswertung der STIT-Tabelle 750 und den Aufruf eines jeden Datensatzes 751, um die Adresse (Feld "Address" 752) und die Bedeutung (Feld "Critical" 755) einer jeden bereits festgelegten STI in Erfahrung zu bringen. Bei diesen Tests wird geprüft, ob sich entweder zwei bestimmte Zellenbereiche teilweise überlappen (was bedeutet, dass es in dem ersten Zellenbereich mindestens eine Zelle gibt, die zu dem zweiten Zellenbereich gehört, und mindestens eine Zelle, die nicht zu dem zweiten Zellenbereich gehört) oder ob ein erster bestimmter Zellenbereich in einem zweiten bestimmten Zellenbereich enthalten ist (was bedeutet, dass jede Zelle, die zu dem ersten Zellenbereich gehört, auch zu dem zweiten Zellenbereich gehört). Verschiedene herkömmliche Verfahren zum Vergleich von Bereichen können zur Anwendung kommen, um entweder eine teilweise Überlappung von Bereichen oder das Enthaltensein eines Bereichs in einem anderen zu prüfen; diese Verfahren werden in der bevorzugten Ausführungsform der vorliegenden Erfindung nicht beschrieben.
  • Zuerst wird der OVERLAY-Instanziierungsmodus geprüft.
    • • Wenn mindestens eine STI vorhanden ist, deren Feld "Critical" 755 den Wert "YES" hat und die den Zellenbereich STI_range 1328 teilweise überlappt, nimmt die lokale Prüfvariable STI_overlay_critical den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STI_overlay_critical den Wert "NO" an.
    • • Wenn mindestens eine STI vorhanden ist, deren Feld "Critical" 755 den Wert "NO" hat und die den Zellenbereich STI_range 1328 teilweise überlappt, nimmt die lokale Prüfvariable STI_overlay_other den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STI_overlay_other den Wert "NO" an.
    • • Wenn alle Zellen im Zellenbereich STI_range 1328 leer sind (keine Daten enthalten), nimmt die lokale Prüfvariable STI_overlay_data den Wert "NO" an; andernfalls nimmt die lokale Prüfvariable STI_overlay_data den Wert "YES" an.
  • Als Zweites wird der HORIZONTAL_INSERT-Instanziierungsmodus geprüft.
    • • Wenn mindestens eine STI vorhanden ist, deren Feld "Critical" 755 den Wert "YES" hat und die den Zellenbereich teilweise überlappt, der aus der ganzen Zeile besteht, in der sich die gerade ausgewählte Zelle 1327 befindet, oder die den Zellenbereich teilweise überlappt, der von den letzten unteren Zeilen von STI_height 1326 gebildet wird, oder die in dem Zellenbereich enthalten ist, der von den letzten unteren Zeilen von STI_height 1326 gebildet wird, nimmt die lokale Prüfvariable STI_horizontal_critical den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STI_horizontal_critical den Wert "NO" an.
    • • Wenn mindestens eine STI vorhanden ist, deren Feld "Critical" 755 den Wert "NO" hat und die den Zellenbereich teilweise überlappt, der aus der ganzen Zeile besteht, in der sich die gerade ausgewählte Zelle 1327 befindet, oder die den Zellenbereich teilweise überlappt, der von den letzten unteren Zeilen von STI_height 1326 gebildet wird, oder die in dem Zellenbereich enthalten ist, der von den letzten unteren Zeilen von STI_height 1326 gebildet wird, nimmt die lokale Prüfvariable STI_horizontal_other den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STI_horizontal_other den Wert "NO" an.
    • • Wenn alle Zellen in dem Zellenbereich, der von den letzten unteren Zeilen von STI_height 1326 gebildet wird, leer sind (keine Daten enthalten), nimmt die lokale Prüfvariable STI_horizontal_data den Wert "NO" an; andernfalls nimmt die lokale Prüfvariable STI_horizontal_data den Wert "YES" an.
  • Als Drittes wird der HORIZONTAL INSERT_BY_RANGE-Instanziierungsmodus geprüft.
    • • Wenn mindestens eine STI vorhanden ist, deren Feld "Critical" 755 den Wert "YES" hat und die den Zellenbereich teilweise überlappt, der durch die Verknüpfung der beiden Zellenbereiche STI_range 1328 und STI_vertical_kept_range 1331 gebildet wird, oder die den Zellenbereich STI_vertical_flushed_range 1332 teilweise überlappt oder die in dem Zellenbereich STI_vertical_flushed_range 1332 enthalten ist, nimmt die lokale Prüfvariable STI_horizontal_range_critical den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STI_horizontal_range_critical den Wert "NO" an.
    • • Wenn mindestens eine STI vorhanden ist, deren Feld "Critical" 755 den Wert "NO" hat und die den Zellenbereich teilweise überlappt, der durch die Verknüpfung der beiden Zellenbereiche STI_range 1323 und STI_vertical_kept_range 1331 gebildet wird, oder die den Zellenbereich STI_vertical_flushed_range 1332 teilweise überlappt oder die in dem Zellenbereich STI_vertical_flushed_range 1332 enthalten ist, nimmt die lokale Prüfvariable STI_horizontal_range_other den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STI_horizontal_range_other den Wert "NO" an.
    • • Wenn alle Zellen im Zellenbereich STI_vertical_flushed_range 1332 leer sind (keine Daten enthalten), nimmt die lokale Prüfvariable STI_horizontal_range_data den Wert "NO" an; andernfalls nimmt die lokale Prüfvariable STI_horizontal_range_data den Wert "YES" an.
  • Als Viertes wird der VERTIKAL_INSERT-Instanziierungsmodus geprüft.
    • • Wenn mindestens eine STI vorhanden ist, deren Feld "Critical" 755 den Wert "YES" hat und die den Zellenbereich teilweise überlappt, der aus der ganzen Spalte besteht, in der sich die gerade ausgewählte Zelle 1327 befindet, oder die den Zellenbereich teilweise überlappt, der von den letzten rechten Spalten von STI_width 1325 gebildet wird, oder die in dem Zellenbereich enthalten ist, der von den letzten rechten Spalten von STI_width 1325 gebildet wird, nimmt die lokale Prüfvariable STI_vertical_critical den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STI_vertical_critical den Wert "NO" an.
    • • Wenn mindestens eine STI vorhanden ist, deren Feld "Critical" 755 den Wert "NO" hat und die den Zellenbereich teilweise überlappt, der aus der ganzen Spalte besteht, in der sich die gerade ausgewählte Zelle 1327 befindet, oder die den Zellenbereich teilweise überlappt, der von den letzten rechten Spalten von STI_width 1325 gebildet wird, oder die in dem Zellenbereich enthalten ist, der von den letzten rechten Spalten von STI_width 1325 gebildet wird, nimmt die lokale Prüfvariable STI_vertical_other den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STI_vertical_other den Wert "NO" an.
    • • Wenn alle Zellen in dem Zellenbereich, der von den letzten rechten Spalten von STI_width 1325 gebildet wird, leer sind (keine Daten enthalten), nimmt die lokale Prüfvariable STI_vertical_data den Wert "NO" an; andernfalls nimmt die lokale Prüfvariable STI_vertical_data den Wert "YES" an.
  • Als Fünftes wird der VERTIKAL_INSERT-Instanziierungsmodus geprüft.
    • • Wenn mindestens eine STI vorhanden ist, deren Feld "Critical" 755 den Wert "YES" hat und die den Zellenbereich teilweise überlappt, der durch die Verknüpfung der beiden Zellenbereiche STI_range 1328 und STI_horizontal_kept_range 1329 gebildet wird, oder die den Zellenbereich STI_horizontal_flushed_range 1330 teilweise überlappt oder die in dem Zellenbereich STI_horizontal_flushed_range 1330 enthalten ist, nimmt die lokale Prüfvariable STI_vertical_range_critical den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STI_vertical_range_critical den Wert "NO" an. • Wenn mindestens eine STI vorhanden ist, deren Feld "Critical" 755 den Wert "NO" hat und die den Zellenbereich teilweise überlappt, der durch die Verknüpfung der beiden Zellenbereiche STI_range 1328 und STI_horizontal_kept_range 1329 gebildet wird, oder die den Zellenbereich STI_horizontal_flushed_range 1330 teilweise überlappt oder die in dem Zellenbereich STI_horizontal_flushed_range 1330 enthalten ist, nimmt die lokale Prüfvariable STI_vertical_range_other den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STI_vertical_range_other den Wert "NO" an.
    • • Wenn alle Zellen im Zellenbereich STI_horizontal_flushed_range 1330 leer sind (keine Daten enthalten), nimmt die lokale Prüfvariable STI_vertical_range_data den Wert "NO" an; andernfalls nimmt die lokale Prüfvariable STI_vertical_range_data den wert "YES" an.
    • • Im Schritt 1409 wird das Dialogfeld 1300 des ST-Instanziators auf dem Bildschirm 106 angezeigt. Das Kontrollkästchen "Critical" 1314 zeigt ein Häkchen an, wenn die lokale Variable STI_critical den Wert "YES" annimmt; andernfalls (wenn sie den Wert "NO" annimmt) bleibt das Kontrollkästchen "Critical" 1314 leer. Das Bezeichnungsfeld 1315 wird mit dem Wert der lokalen Variablen ST_name initialisiert. In das Textfeld 1312 wird der Wert der lokalen Variablen STI_element eingegeben. In das Bezeichnungsfeld 1311 wird der Wert der lokalen Variablen STI_too_wide eingegeben, und in das Bezeichnungsfeld 1310 wird der Wert der. lokalen Variablen STI_too_high eingegeben. In die 15 Bezeichnungsfelder 1304 werden Zeile für Zeile die Werte der folgenden lokalen Variablen in der folgenden Reihenfolge eingegeben, wobei mit der obersten Zeile begonnen und von links nach rechts fortgefahren wird: STI_overlay_critical, STI_overlay_other, STI_overlay_data, STI_horizontal_critical, STI_horizontal_other, STI_horizontal_data, STI_horizontal_range_critical, STI_horizontal_range_other, STI_horizontal_range_data, STI_vertical_critical, STI_vertical_other, STI_vertical_data, STI_vertical_range_critical, STI_vertical_range_other, STI_vertical_range_data. Wenn die lokale Variable STI_mode den jeweiligen Wert OVERLAY oder HORIZONTAL_INSERT oder HORIZONTAL_INSERT_BY_RANGE Oder VERTICAL_INSERT oder VERTICAL_INSERT_BY_RANGE annimmt, zeigt nur die jeweilige Optionsschaltfläche "Overlay" 1309 oder "Horizontal Insert" 1308 oder "Horizontal Insert by Range" 1307 oder "Vertical Insert" 1306 oder "Vertical Insert by Range" 1305 einen schwarzen Punkt an. Schließlich wird die Schaltfläche "Create" 1303 deaktiviert, sobald eine der folgenden lokalen Variablen den Wert "YES" annimmt: STI_too_wide, STI_too_high, STI_overlay_critical (wird nur berücksichtigt, wenn die lokale Variable STI_mode den Wert OVERLAY hat), STI_horizontal_critical (wird nur berücksichtigt, wenn die lokale Variable STI_mode den Wert HORIZONTAL_INSERT hat), STI_vertical_critical (wird nur berücksichtigt, wenn die lokale Variable STI_mode den Wert VERTICAL_INSERT hat), STI_horizontal_range_critical (wird nur berücksichtigt, wenn die lokale Variable STI_mode den Wert HORIZONTAL_INSERT_BY_RANGE hat), STI_vertical_range_critical (wird nur berücksichtigt, wenn die lokale Variable STI_mode den Wert VERTICAL_INSERT_BY_RANGE hat); andernfalls wird die Schaltfläche "Create" 1303 aktiviert.
    • • Im Schritt 1410 wartet das Verfahren auf eine Benutzeraktion im Dialogfeld 1300 des ST-Instanziators oder auf eine Änderung der gerade ausgewählten Zelle. Eine solche Benutzeraktion ist üblicherweise das Ergebnis eines Klicks mit der Zeigeeinheit 105, wobei dieser Auslöser jedoch auch andere ähnliche Formen annehmen kann wie zum Beispiel, jedoch nicht auf diese beschränkt, eine bestimmte Tastenkombination auf der Tastatur 104 oder irgendein anderes ähnliches Mittel, das hier nicht näher angegeben wird.
    • • Im Schritt 1411 wird eine Benutzeraktion im Dialogfeld 1300 des ST-Instanziators oder eine Änderung der gerade ausgewählten Zelle festgestellt.
    • • Wenn die Benutzeraktion ein Klick auf die Schaltfläche "Create" 1303 ist, wird die Steuerung dem Schritt 1416 übergeben;
    • • wenn die Benutzeraktion ein Klick auf den oberen Teil des Drehfelds 1313 ist, wird die Steuerung dem Schritt 1415 übergeben;
    • • wenn die Benutzeraktion ein Klick auf den unteren Teil des Drehfelds 1313 ist, wird die Steuerung dem Schritt 1414 übergeben;
    • • wenn die Benutzeraktion ein Klick auf das Kontrollkästchen "Critical" 1314 ist, wird die Steuerung dem Schritt 1413 übergeben;
    • • wenn die Benutzeraktion ein Klick auf eine der Optionsschaltflächen 1309 oder 1308 oder 1307 oder 1306 oder 1305 ist, wird die Steuerung dem Schritt 1412 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Cancel" 1302 oder auf die Schaltfläche 1301 zum Schließen des Fensters ist, wird die Steuerung dem Schritt 1418 übergeben;
    • • wenn die Benutzeraktion eine Änderung der Position der gerade ausgewählten Zelle ist, wird die Steuerung dem Schritt 1406 übergeben.
    • • Im Schritt 1412 nimmt die lokale Variable STI_mode den Wert OVERLAY oder HORIZONTAL_INSERT oder HORIZONTAL_INSERT_BY_RANGE oder VERTICAL_INSERT oder VERTICAL_INSERT_BY_RANGE an, Wenn der Benutzer des Tabellenkalkulationsprogramms mit der Zeigeeinheit 105 auf die jeweilige Optionsschaltfläche 1309 oder 1308 oder 1307 oder 1306 oder 1305 geklickt hat. Dann wird die Steuerung dem Schritt 1406 übergeben.
    • • Im Schritt 1413 wird die lokale Variable STI_critical aktualisiert, um zwischen den Werten "YES" und "NO" zu wechseln. Daraufhin wird die Steuerung dem Schritt 1406 übergeben.
    • • Im Schritt 1414 wird der Wert der lokalen Variablen STI_element um 1 (eins) verringert, solange ihr Wert größer als der Wert oder gleich dem Wert der lokalen Variablen STI_min bleibt. Dann wird die Steuerung dem Schritt 1406 übergeben.
    • • Im Schritt 1415 wird der Wert der lokalen Variablen STI_element um 1 (eins) erhöht, solange ihr Wert geringer als der Wert oder gleich dem Wert der lokalen Variablen STI_max bleibt. Dann wird die Steuerung dem Schritt 1406 übergeben.
    • • Im Schritt 1416 wird die STIT-Tabelle 750 aufgerufen, um jeden Datensatz 751 aus ihr zu entfernen, der einer STI entspricht, die durch das Einfügen der neuen Instanz beschädigt wurde, was während des Schritts 1408 bei dem von der lokalen Variablen STI_mode dargestellten Einfügemodus festgestellt wurde. Daraufhin wird die STT-Tabelle 720 aktualisiert, um das Entfernen einer jeden STI widerzuspiegeln. Für jede entfernte STI wird das Feld INSTANCE REFERENCE (IR) 729c des Attributs "REFERENCED" 729 des Datensatzes 721, dessen Feld "Name" 722 den gleichen Wert wie das Feld "ST" 753 des Datensatzes 751 der STIT-Tabelle 750 hat, die der entfernten STI entspricht, durch 2 (zwei) geteilt.
    • • Im Schritt 1417 wird die Routine "CreateSTI" aufgerufen.
    • • Im Schritt 1418 wird das Dialogfeld 1300 des ST-Instanziators geschlossen, so dass es vom Bildschirm 106 verschwindet. Schließlich wird die Steuerung wieder dem ersten Schritt 1401 zur Verarbeitung eines künftigen ST-Instanciator-Befehls übergeben.
  • Die folgenden Schritte, die alle Teil von 14B sind, entsprechen der Ausführung der Routine CreateSTI, wie sie in der bevorzugten Ausführungsform der vorliegenden Erfindung verwendet wird.
    • • Im Schritt 1419 wird ein neuer Datensatz 751 in die STIT-Tabelle 750 eingefügt. In diesem Datensatz 751 wird das Feld "Address" 752 mit der Adresse des Zellenbereichs STI_range 1328 initialisiert, das Feld "ST" 753 wird mit dem Wert der lokalen Variablen ST_name initialisiert, das Feld "Element #" 754 wird mit dem Wert der lokalen Variablen STI_element initialisiert, das Feld "Critical" 755 wird mit dem Wert der lokalen Variablen STI_critical initialisiert, das Feld "Header Size" 756 wird mit der Anzahl der Meta-Elemente initialisiert, die den Kopfzeilenteil der neuen STI bilden (wobei diese Anzahl gleich der Anzahl der Paare im Kopfzeilenteil 767 der STDT-Tabelle 760 ist, die zu der ST gehört, an die sich die neue STI hält), und das Feld "Footer Size" 757 wird mit der Anzahl der Meta-Elemente initialisiert, die den Fußzeilenteil der neuen STI bilden (wobei diese Anzahl gleich der Anzahl der Paare im Fußzeilenteil 766 der STDT-Tabelle 760 ist, die zu der ST gehört, an die sich die neue STI hält). Dann wird die STT-Tabelle 720 durchsucht, um den Datensatz 721 zu ermitteln, dessen Feld "Name" den gleichen Wert wie die lokale Variable STE_name hat. Sobald er gefunden wurde, wird das Attribut "REFERENCED" 729 im Feld "Type" 727 dieses Datensatzes 721 aktualisiert, indem das Teilfeld INSTANCE REFERENCE" 729c mit 2 (zwei) multipliziert wird.
    • • Im Schritt 1420 wird ein Test durchgeführt, um den Wert der lokalen Variablen STE_mode zu prüfen.
    • • Wenn festgestellt wird, dass dieser Wert OVERLAY lautet, wird die Steuerung dem Schritt 1425 übergeben,
    • • wenn festgestellt wird, dass dieser Wert HORIZONTAL_INSERT lautet, wird die Steuerung dem Schritt 1424 übergeben,
    • • wenn festgestellt wird, dass dieser Wert HORIZONTAL_INSERT_BY_RANGE lautet, wird die Steuerung dem Schritt 1422 übergeben,
    • • wenn festgestellt wird, dass dieser Wert VERTICAL_INSERT lautet, wird die Steuerung dem Schritt 1423 übergeben,
    • • wenn festgestellt wird, dass dieser Wert VERTICAL_INSERT_BY_RANGE lautet, wird die Steuerung dem Schritt 1421 übergeben.
    • • Im Schritt 1421 wird der Zellenbereich STI_range 1328 ausgewählt, so dass er der gerade ausgewählte Zellenbereich wird, wobei die gerade ausgewählte Zelle an ihrer früheren Position 1327 verbleibt, und dann wird eine gewöhnliche Operation in Form von einem "Einfügen einer Spalte in den ausgewählten Bereich" durchgeführt. Daraufhin wird die Steuerung dem Schritt 1425 übergeben.
    • • Im Schritt 1422 wird der Zellenbereich STI_range 1328 ausgewählt, so dass er der gerade ausgewählte Zellenbereich wird, wobei die gerade ausgewählte Zelle an ihrer früheren Position 1327 verbleibt, und dann wird eine gewöhnliche Operation in Form von einem "Einfügen einer Zeile in den ausgewählten Bereich" durchgeführt. Daraufhin wird die Steuerung dem Schritt 1425 übergeben.
    • • Im Schritt 1423 wird der Zellenbereich STI_range 1328 ausgewählt, so dass er der gerade ausgewählte Zellenbereich wird, wobei die gerade ausgewählte Zelle an ihrer früheren Position 1327 verbleibt, und dann wird eine gewöhnliche Operation in Form von einem "Einfügen einer Spalte" durchgeführt. Daraufhin wird die Steuerung dem Schritt 1425 übergeben.
    • • Im Schritt 1424 wird der Zellenbereich STI_range 1328 ausgewählt, so dass er der gerade ausgewählte Zellenbereich wird, wobei die gerade ausgewählte Zelle an ihrer früheren Position 1327 verbleibt, und dann wird eine gewöhnliche Operation in Form von einem "Einfügen einer Zeile" durchgeführt. Daraufhin wird die Steuerung dem Schritt 1425 übergeben.
    • • Im Schritt 1425 wird eine lokale Variable STI_index mit dem von der lokalen Variablen STI_element angenommenen Wert initialisiert. Dann wird die STT-Tabelle 720 ausgewertet, um den Datensatz 721 zu ermitteln, dessen Feld "Name" 722 den gleichen Wert wie die lokale Variable ST_name hat. Aus diesem Datensatz 721 wird der Inhalt des Feldes "Description Ptr" 724 abgerufen, der es ermöglicht, die STDT-Tabelle 760 im Speicher aufzufinden, welche zu der ST gehört, an die sich die zu erzeugende neue STI halten wird. Dann wird das erste aus einem Element- oder MEF-Namen und einem Element- oder MEP-Namen bestehende Paar 761, das in dieser STDT-Tabelle 760 gefunden wird, zum aktuellen Namenspaar bestimmt: (EF- oder MEF-Name, EP- oder MEP-Name).
    • • Im Schritt 1426 wird die EPT-Tabelle 710 ausgewertet, um den Datensatz 711 zu finden, dessen Feld "Name" 712 gleich dem EP- oder MEP-Namen in dem aktuellen Paar ist. Sobald dieser Datensatz 711 gefunden wurde, wird der Inhalt seines Feldes "Description Ptr" 714 abgerufen, um den Zellenbereich im Speicher aufzufinden, der das EP oder MEP darstellt. Diese Beschreibung des EP oder des MEP wird nur als Wert kopiert und in die gerade ausgewählte Zelle eingefügt, so dass die entsprechende Zeile im Bereich STI_range die Anfangswerte des EP oder des MEP erhält. Dann wird die EFT-Tabelle 700 ausgewertet, um den Datensatz 701 zu finden, dessen Feld "Name" 702 gleich dem EF- oder MEF-Namen in dem aktuellen Paar ist. Sobald dieser Datensatz 701 gefunden wurde, wird der Inhalt seines Feldes "Description Ptr" 704 abgerufen, um den Zellenbereich im Speicher aufzufinden, der das EF oder MEF darstellt. Diese Beschreibung des EF oder des MEF wird nur als Attribut kopiert und in die gerade ausgewählte Zelle eingefügt, so dass die entsprechende Zeile im Bereich STI_range die Attribute des EF oder des MEF erhält.
    • • Im Schritt 1427 wird ein Test durchgeführt, um zu prüfen, ob das aktuelle Paar (EF- oder MEF-Name, EP- oder MEP-Name) einem Element oder einem Meta-Element entspricht. Im ersten Fall wird die Steuerung dem Schritt 1428 übergeben, und im zweiten Fall wird die Steuerung dem Schritt 1429 übergeben.
    • • Im Schritt 1428 wird der Wert der lokalen Variablen STI_index um 1 (eins) verringert. Daraufhin wird die Steuerung dem Schritt 1430 übergeben.
    • • Im Schritt 1429 wird ein Test durchgeführt, um zu prüfen, ob das aktuelle Paar (EF- oder MEF-Name, EP- oder MEP-Name) das letzte Paar 763 in der STDT-Tabelle 760 ist. Wenn ja, wird die Ausführung der Routine CreateSTI beendet, indem die Steuerung wieder dem Aufrufenden der Routine übergeben wird, andernfalls wird die Steuerung dem Schritt 1431 übergeben.
    • • Im Schritt 1430 wird ein Test durchgeführt, um zu prüfen, ob die lokale Variable STI_index den Wert 0 (null) hat. Wenn dies der Fall ist, wird die Steuerung dem Schritt 1429 übergeben; andernfalls wird die Steuerung dem Schritt 1432 übergeben.
    • • Im Schritt 1431 wird das Namenspaar (EF- oder MEF-Name, EP- oder MEP-Name), das auf das aktuelle Paar in der STDT-Tabelle 760 folgt, das aktuelle Namenspaar.
    • • Im Schritt 1432 wird die gerade ausgewählte Zelle um eine Zeile nach unten verschoben. Daraufhin wird die Steuerung dem Schritt 1426 übergeben.
  • E7. STI-Einfügemanager-Verfahren
  • Das Verfahren zum Ändern einer vorhandenen STI durch das Einfügen von neuen Elementen, das in der bevorzugten Ausführungsform der vorliegenden Erfindung zur Anwendung kommt, ist im Flussdiagramm 1500 von 15A zusammengefasst. Dieses Verfahren kann als Verarbeitung des Befehls "STI Insertion Manager" betrachtet werden.
    • • Im Schritt 1501 befindet sich das Verfahren in seinem standardmäßigen Zustand, in dem es auf ein Ereignis zum Starten des Prozesses wartet.
    • • Im Schritt 1502 wird der Befehl "STI Insertion Manager" als Ergebnis einer Benutzeraktion festgestellt. Diese Aktion kann beispielsweise Folgende sein:
    • • eine bestimmte Tastenkombination auf der Tastatur 104 oder
    • • das Anklicken einer bestimmten Schaltfläche oder eines bestimmten Menü- oder Untermenüeintrags mit der Zeigeeinheit 105 oder
    • • ein anderes ähnliches Mittel, das hier nicht näher angegeben wird.
  • Wenn der Befehl STI Insertion Manager festgestellt wird, entspricht die aktuelle Arbeitsblatt-Auswahl einem Zellenbereich, der möglicherweise auf eine einzige Zelle verringert wurde und als der gerade ausgewählte Zellenbereich bezeichnet wird, welcher die gerade ausgewählte Zelle umfasst. Wenn diese gerade ausgewählte Zelle nicht die oberste linke Zelle in dem gerade ausgewählten Zellenbereich ist, wird die oberste linke Zelle des gerade ausgewählten Zellenbereichs die gerade ausgewählte Zelle.
    • • Im Schritt 1503 wird ein Test durchgeführt, um zu prüfen, ob sich die gerade ausgewählte Zelle in einer vorhandenen STI befindet. Dieser Test wird durchgeführt, indem die STIT-Tabelle 750 ausgewertet und das Feld "Address" 752 in jedem Datensatz 751 aufgerufen wird, um festzustellen, ob die Adresse des Zellenbereichs, die in diesem Feld angegeben ist, die Adresse der einzelnen gerade ausgewählten Zelle 1707 beinhaltet. Wenn ja, ist die gerade ausgewählte Zelle 1707 in einer STI mit der Bezeichnung STIM_instance_range 1713 enthalten, und die Steuerung wird dem Schritt 1504 übergeben; andernfalls wird die Steuerung dem Schritt 1513 übergeben.
    • • Im Schritt 1504 wird zuerst der im Schritt 1503 gefundene Datensatz 751 abgerufen, um lokale Variablen aus seinen Feldern, die die STI "STIM_instance_range 1713" beschreiben, mit einem Anfangswert zu belegen:
    • • Die lokale variable ST_name wird mit dem Wert des Feldes "ST" 753 initialisiert;
    • • die lokale Variable STIM_element wird mit dem Wert des Feldes "Element #" 754 initialisiert;
    • • die lokale Variable STIM_critical wird mit dem Wert des Feldes "Critical" 755 initialisiert;
    • • die lokale variable STIM_header_size wird mit dem Wert des Feldes "Header Size" 756 initialisiert;
    • • die lokale Variable STIM_footer_size wird mit dem Wert des Feldes "Footer Size" 757 initialisiert.
  • Dann wird die lokale Variable ST_name zur Auswertung der STT-Tabelle 720 verwendet, um den Datensatz 721 zu finden, dessen Feld "Name" 722 mit dem Parameter ST_name übereinstimmt.
  • Sobald dieser Datensatz 721 gefunden wurde, wird sein Feld "Max Element #" 726 als die lokale Variable STIM_max im Speicher abgelegt. Daraufhin wird eine weitere lokale Variable STIM_sheet_width 1701 mit der Gesamtzahl der Spalten in dem aktuellen Arbeitsblatt 1700 initialisiert. Dann wird noch eine lokale Variable STIM_sheet_height 1702 mit der Gesamtzahl der Zeilen in dem aktuellen Arbeitsblatt 1700 initialisiert. Anschließend wird noch eine weitere lokale Variable STIM_mode mit dem Wert HORIZONTAL_INSERT initialisiert. Dann wird die lokale Variable STIM_range_offset_height 1709, die der Anzahl der Zeilen zwischen der obersten linken Zelle des aktuellen Arbeitsblatts 1700 und der gerade ausgewählten Zelle 1707 entspricht, mit der Position der gerade ausgewählten Zelle 1707 initialisiert. Daraufhin wird die Anzahl der Zeilen des gerade ausgewählten Zellenbereichs STIM_range 1708 von der lokalen Variablen STIM_height 1706 dargestellt. Dann wird die Position der obersten linken Zelle des Zellenbereichs STIM_instance_range 1713 zuerst von den lokalen Variablen STIM_offset_width 1703 und STIM_offset_height 1704 dargestellt, die der Anzahl der Spalten beziehungsweise der Anzahl der Zeilen zwischen der obersten linken Zelle des aktuellen Arbeitsblatts 1320 und der obersten linken Zelle des Zellenbereichs STIM_instance_range 1713 entsprechen. Anschließend wird der Zellenbereich STIM_vertical_flushed_range 1712 als der Zellenbereich festgelegt, der sich dieselben Spalten mit STIM_instance_range 1713 teilt und die unteren Spalten von STIM_height 1706 des aktuellen Arbeitsblatts 1700 belegt. Als Nächstes wird der Zellenbereich STIM_vertical_kept_range 1711 als der Zellenbereich festgelegt, der sich dieselben Spalten mit STIM_instance_range 1713 teilt und die Zeilen belegt, die sich zwischen den Zeilen von STIM_instance_range 1713 und den Zeilen von STIM_vertical_flushed_range 1712 befinden.
    • Im Schritt 1505 wird ein Test durchgeführt, um zu prüfen, ob sich die gerade ausgewählte Zelle 1707 entweder im Kopfzeilenteil oder im Fußzeilenteil der aktuellen STI oder in einem Element der aktuellen STI befindet. Wenn die Summe der lokalen Variablen STIM_offset_height 1704 und STIM_header_size geringer als der Wert oder gleich dem Wert der lokalen Variablen STIM_range_offset_height 1709 ist und wenn der Wert der lokalen Variablen STIM_range_offset_height 1709 geringer als die Summe oder gleich der Summe der lokalen Variablen STIM_offset_height 1704, STIM_header_size und STIM_element ist, befindet sich die gerade ausgewählte Zelle 1707 außerhalb des Kopfzeilen- und des Fußzeilenteils der aktuellen STI, und die Steuerung wird dem Schritt 1508 übergeben; andernfalls wird die Steuerung dem Schritt 1506 übergeben.
    • • Im Schritt 1506 wird eine Warnmeldung ausgegeben, um den Benutzer darauf aufmerksam zu machen, dass die aktuelle STI möglicherweise beschädigt wird, wenn die Einfügeoperation fortgesetzt wird. Dies kann üblicherweise geschehen, indem auf dem Bildschirm 106 eine Warnmeldung in einem Dialogfenster oder in einem Bereich der Statuszeile angezeigt wird, aber ein anderes ähnliches Mittel könnte stattdessen ebenfalls verwendet werden. Dann wird der Benutzer aufgefordert, die aktuelle Einfügeoperation ("Insertion") entweder abzubrechen oder fortzusetzen. Dies kann üblicherweise geschehen, indem auf dem Bildschirm 106 eine Aufforderungsmeldung in einem Dialogfenster angezeigt wird, aber ein anderes ähnliches Mittel könnte stattdessen ebenfalls verwendet werden. Sobald der Benutzer über ein herkömmliches Mittel wie zum Beispiel einen Klick mit der Zeigeeinheit 105 auf eine Schaltfläche "Cancel" oder "Continue", die in einem Dialogfenster mit einer Aufforderungsmeldung vorhanden ist, oder über ein anderes ähnliches Mittel seine Wahl getroffen hat, wird die Steuerung dem Schritt 1501 übergeben, wenn sich der Benutzer des Tabellenkalkulationsprogramms entscheidet, die Operation abzubrechen, oder dem Schritt 1507, wenn sich der Benutzer des Tabellenkalkulationsprogramms entscheidet, die Operation fortzusetzen.
    • • Im Schritt 1507 wird die STIT-Tabelle 750 aufgerufen, um den Datensatz 751 aus ihr zu entfernen, der der aktuellen STI entspricht, die im Schritt 1503 ermittelt wurde und die gerade ausgewählte Zelle 1707 enthält. Dann wird die STT-Tabelle 720 aktualisiert, um das Entfernen der STI widerzuspiegeln. Das Feld INSTANCE REFERENCE (IR) 729c des Attributs "REFERENCED" 729 des Datensatzes 721, dessen Feld "Name" 722 den gleichen Wert wie das Feld "ST" 753 des Datensatzes 751 der STIT-Tabelle 750 hat, die der entfernten STI entspricht, wird durch 2 (zwei) geteilt.
    • • Im Schritt 1508 werden zwei Summen gebildet, um zu prüfen, ob das in die aktuelle STI Eingefügte in die Begrenzungen des aktuellen Arbeitsblatts 1700 passt und die maximale Größe der STI nicht überschreitet.
    • • Wenn festgestellt wird, dass die Summe der lokalen Variablen STIM_height 1706 und STIM_element größer als der Wert der lokalen Variablen STIM_max ist, wird eine lokale Variable STIM_too_high auf "YES" gesetzt; andernfalls wird sie auf "NO" gesetzt.
    • • Wenn festgestellt wird, dass die Summe der lokalen Variablen STIM_offset_height 1704 und STIM_header_size und STIM_element und STIM_footer_size und STIM_height 1706 größer als der Wert der lokalen Variablen STIM_sheet_height 1702 ist, wird eine lokale Variable STIM_too_high auf "YES" gesetzt; andernfalls wird sie auf "NO" gesetzt.
    • • Im Schritt 1509 werden mehrere Tests durchgeführt, um zu bewerten, wie sich die Einfügeoperation entsprechend zweier möglicher Einfügemodi möglicherweise auf eine bereits vorhandene STI oder bereits vorhandene Daten auswirkt. Diese Tests erfordern die Auswertung der STIT-Tabelle 750 und den Aufruf eines jeden Datensatzes 751, um die Adresse (Feld "Address" 752) und die Bedeutung (Feld "Critical" 755) einer jeden bereits festgelegten STI in Erfahrung zu bringen. Bei diesen Tests wird geprüft, ob sich entweder zwei bestimmte Zellenbereiche teilweise überlappen (was bedeutet, dass es in dem ersten Zellenbereich mindestens eine Zelle gibt, die zu dem zweiten Zellenbereich gehört, und mindestens eine Zelle, die nicht zu dem zweiten Zellenbereich gehört) oder ob ein erster bestimmter Zellenbereich in einem zweiten bestimmten Zellenbereich enthalten ist (was bedeutet, dass jede Zelle, die zu dem ersten Zellenbereich gehört, auch zu dem zweiten Zellenbereich gehört). Verschiedene herkömmliche Verfahren zum Vergleich von Bereichen können zur Anwendung kommen, um entweder eine teilweise Überlappung von Bereichen oder das Enthaltensein eines Bereichs in einem anderen zu prüfen; diese Verfahren werden in der bevorzugten Ausführungsform der vorliegenden Erfindung nicht beschrieben.
  • Als Erstes wird der HORIZONTAL_INSERT-Instanziierungsmodus geprüft.
    • • Wenn mindestens eine STI vorhanden ist, deren Feld "Critical" 755 den Wert "YES" hat und die den Zellenbereich teilweise überlappt, der aus der ganzen Zeile besteht, in der sich die gerade ausgewählte Zelle 1707 befindet, oder die den Zellenbereich teilweise überlappt, der von den letzten unteren Zeilen von STIM_height 1706 gebildet wird, oder die in dem Zellenbereich enthalten ist, der von den letzten unteren Zeilen von STIM_height 1706 gebildet wird, nimmt die lokale Prüfvariable STIM_horizontal_critical den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STIM_horizontal_critical den Wert "NO" an.
    • • Wenn mindestens eine STI vorhanden ist, deren Feld "Critical" 755 den Wert "NO" hat und die den Zellenbereich teilweise überlappt, der aus der ganzen Zeile besteht, in der sich die gerade ausgewählte Zelle 1707 befindet, oder die den Zellenbereich teilweise überlappt, der von den letzten unteren Zeilen von STIM_height 1706 gebildet wird, oder die in dem Zellenbereich enthalten ist, der von den letzten unteren Zeilen von STIM_height 1706 gebildet wird, nimmt die lokale Prüfvariable STIM_horizontal_other den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STIM_horizontal_other den Wert "NO" an.
    • • Wenn alle Zellen in dem Zellenbereich, der von den letzten unteren Zeilen von STIM_height 1706 gebildet wird, leer sind (keine Daten enthalten), nimmt die lokale Prüfvariable STIM_horizontal_data den Wert "NO" an; andernfalls nimmt die lokale Prüfvariable STIM_horizontal_data den Wert "YES" an.
  • Als Zweites wird der HORIZONTAL_INSERT_BY_RANGE-Instanziierungsmodus geprüft.
    • • Wenn mindestens eine STI vorhanden ist, deren Feld "Critical" 755 den Wert "YES" hat und die den Zellenbereich teilweise überlappt, der durch die Verknüpfung des Zellenbereichs STIM_vertical_kept_range 1711 mit dem Zellenbereich, der vom Zellenbereich STIM_instance_range 1713 abgeleitet wird, gebildet wird, indem die Zeilen über der gerade ausgewählten Zelle 1707 entfernt werden, oder die den Zellenbereich STIM_vertical_flushed_range 1712 teilweise überlappt oder die in dem Zellenbereich STIM_vertical_flushed_range 1712 enthalten ist, nimmt die lokale Prüfvariable STIM_horizontal_range_critical den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STIM_horizontal_range_critical den Wert "NO" an.
    • • Wenn mindestens eine STI vorhanden ist, deren Feld "Critical" 755 den Wert "NO" hat und die den Zellenbereich teilweise überlappt, der durch die Verknüpfung des Zellenbereichs STIM_vertical_kept_range 1711 mit dem Zellenbereich, der vom Zellenbereich STIM_instance_range 1713 abgeleitet wird, gebildet wird, indem die Zeilen übe der gerade ausgewählten Zelle 1707 entfernt werden, oder die den Zellenbereich STIM_vertical_flushed_range 1712 teilweise überlappt oder die in dem Zellenbereich STIM_vertical_flushed_range 1712 enthalten ist, nimmt die lokale Prüfvariable STIM_horizontal_range_other den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STIM_horizontal_range_other den Wert "NO" an.
    • • Wenn alle Zellen im Zellenbereich STIM_vertical_flushed_range 1712 leer sind (keine Daten enthalten), nimmt die lokale Prüfvariable STIM_horizontal_range_data den Wert "NO" an; andernfalls nimmt die lokale Prüfvariable STIM_horizontal_range_data den Wert "YES" an.
    • • Im Schritt 1510 wird das Dialogfeld 1600 des ST-Einfügemanagers auf dem Bildschirm 106 angezeigt. Das Kontrollkästchen "Critical" 1610 zeigt ein Häkchen an, wenn die lokale Variable STIM_critical den Wert "YES" annimmt; andernfalls (wenn sie den Wert "NO" annimmt) bleibt das Kontrollkästchen "Critical" 1610 leer. Das Bezeichnungsfeld 1611 wird mit dem Wert der lokalen Variablen ST_name initialisiert. In das Textfeld 1608 wird der Wert der lokalen Variablen STIM_height 1706 eingegeben. In das Bezeichnungsfeld 1607 wird der Wert der lokalen Variablen STIM_too_high eingegeben. In die 6 Bezeichnungsfelder 1604 werden Zeile für Zeile die Werte der folgenden lokalen Variablen in der folgenden Reihenfolge eingegeben, wobei mit der obersten Zeile begonnen und von links nach rechts fortgefahren wird:
    • • STIM_horizontal_critical,
    • • STIM_horizontal_other,
    • • STIM_horizontal_data,
    • • STIM_horizontal_range_critical,
    • • STIM_horizontal_range_other,
    • • STIM_horizontal_range_data.
  • Wenn die lokale Variable STIM_mode den jeweiligen Wert HORIZONTAL_INSERT Oder HORIZONTAL_INSERT_BY_RANGE annimmt, zeigt nur die jeweilige Optionsschaltfläche 1606 oder 1605 einen schwarzen Punkt an. Schließlich wird die Schaltfläche "Insert" 1603 deaktiviert, sobald eine der folgenden lokalen Variablen den Wert "YES" annimmt: STIM_too_high, STIM_horizontal_critical (wird nur berücksichtigt, wenn die lokale Variable STIM_mode den Wert HORIZONTAL_INSERT hat), STIM_horizontal_range_critical (wird nur berücksichtigt, wenn die lokale Variable STIM_mode den Wert HORIZONTAL_INSERT_BY_RANGE hat); andernfalls wird die Schaltfläche "Insert" 1603 aktiviert.
    • • Im Schritt 1511 wartet das Verfahren auf eine Benutzeraktion im Dialogfeld 1600 des ST-Einfügemanagers. Eine solche Benutzeraktion ist üblicherweise das Ergebnis eines Klicks mit der Zeigeeinheit 105, wobei dieser Auslöser jedoch auch andere ähnliche Formen annehmen kann wie zum Beispiel, jedoch nicht auf diese beschränkt, eine bestimmte Tastenkombination auf der Tastatur 104 oder irgendein anderes ähnliches Mittel, das hier nicht näher angegeben wird.
    • • Im Schritt 1512 wird eine Benutzeraktion im Dialogfeld 1600 des ST-Einfügemanagers festgestellt.
    • • Wenn die Benutzeraktion ein Klick auf die Schaltfläche "Insert" 1603 ist, wird die Steuerung dem Schritt 1525 übergeben;
    • • wenn die Benutzeraktion ein Klick auf den oberen Teil des Drehfelds 1609 ist, wird die Steuerung dem Schritt 1522 übergeben;
    • • wenn die Benutzeraktion ein Klick auf den unteren Teil des Drehfelds 1609 ist, wird die Steuerung dem Schritt 1541 übergeben;
    • • wenn die Benutzeraktion ein Klick auf das Kontrollkästchen "Critical" 1610 ist, wird die Steuerung dem Schritt 1523 übergeben;
    • • wenn die Benutzeraktion ein Klick auf eine der Optionsschaltflächen 1606 oder 1605 ist, wird die Steuerung dem Schritt 1524 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Cancel" 1602 oder auf die Schaltfläche 1601 zum Schließen des Fensters ist, wird die Steuerung dem Schritt 1521 übergeben.
    • • Im Schritt 1513 wird die lokale Variable STIM_sheet_width 1741 (siehe 17B) mit der Gesamtzahl der Spalten in dem aktuellen Arbeitsblatt 1740 initialisiert. Dann wird eine weitere lokale Variable STIM_sheet_height 1742 mit der Gesamtzahl der Zeilen in dem aktuellen Arbeitsblatt 1740 initialisiert. Anschließend wird noch eine weitere lokale Variable STIM_mode mit dem Wert HORIZONTAL_INSERT initialisiert. Dann wird die Anzahl der Zeilen und der Spalten des gerade ausgewählten Zellenbereichs STIM_range 1748 von den lokalen Variablen STIM_height 1746 beziehungsweise STIM_width 1745 dargestellt. Daraufhin wird die Position der gerade ausgewählten Zelle 1747 zuerst von den lokalen Variablen STIM_offset_width 1743 und STIM_offset_height 1744 dargestellt, die der Anzahl der Spalten beziehungsweise der Anzahl der Zeilen zwischen der obersten linken Zelle des aktuellen Arbeitsblatts 1740 und der gerade ausgewählten Zelle 1747 entsprechen. Anschließend wird der Zellenbereich STIM_vertical_flushed_range 1752 als der Zellenbereich festgelegt, der sich dieselben Spalten mit STIM_Tange 1748 teilt und die unteren Spalten von STIM_height 1746 des aktuellen Arbeitsblatts 1740 belegt. Als Nächstes wird der Zellenbereich STIM_vertical_kept_range 1751 als der Zellenbereich festgelegt, der sich dieselben Spalten mit STIM_range 1748 teilt und die Zeilen belegt, die sich zwischen den Zeilen von STIM_range 1743 und den Zeilen von STIM_vertical_flushed_range 1752 befinden. Dann wird der Zellenbereich STIM_horizontal_flushed_range 1750 als der Zellenbereich festgelegt, der sich dieselben Zeilen mit STIM_range 1748 teilt und die äußersten rechten Spalten von STIM_width 1745 des aktuellen Arbeitsblatts 1740 belegt. Daraufhin wird der Zellenbereich STIM_horizontal_kept_range 1749 als der Zellenbereich festgelegt, der sich dieselben Zeilen mit STIM_range 1748 teilt und die Spalten belegt, die sich zwischen den Spalten von STIM_range 1748 und den Spalten von STIM_horizontal_flushed_range 1750 befinden.
    • • Im Schritt 1514 werden mehrere Tests durchgeführt, um zu bewerten, wie sich die Einfügeoperation entsprechend vier möglicher Einfügemodi möglicherweise auf eine bereits vorhandene STI oder bereits vorhandene Daten auswirkt. Diese Tests erfordern die Auswertung der STIT-Tabelle 750 und den Aufruf eines jeden Datensatzes 751, um die Adresse (Feld "Address" 752) und die Bedeutung (Feld "Critical" 755) einer jeden bereits festgelegten STI in Erfahrung zu bringen. Bei diesen Tests wird geprüft, ob sich entweder zwei bestimmte Zellenbereiche teilweise überlappen (was bedeutet, dass es in dem ersten Zellenbereich mindestens eine Zelle gibt, die zu dem zweiten Zellenbereich gehört, und mindestens eine Zelle, die nicht zu dem zweiten Zellenbereich gehört) oder ob ein erster bestimmter Zellenbereich in einem zweiten bestimmten Zellenbereich enthalten ist (was bedeutet, dass jede Zelle, die zu dem ersten Zellenbereich gehört, auch zu dem zweiten Zellenbereich gehört). Verschiedene herkömmliche Verfahren zum Vergleich von Bereichen können zur Anwendung kommen, um entweder eine teilweise Überlappung von Bereichen oder das Enthaltensein eines Bereichs in einem anderen zu prüfen; diese Verfahren werden in der bevorzugten Ausführungsform der vorliegenden Erfindung nicht beschrieben.
  • Als Erstes wird der VERTIKAL_INSERT-Einfügemodus geprüft.
    • • Wenn mindestens eine STI vorhanden ist, deren Feld "Critical" 755 den Wert "YES" hat und die den Zellenbereich teilweise überlappt, der aus der ganzen Zeile besteht, in der sich die gerade ausgewählte Zelle 1747 befindet, oder die den Zellenbereich teilweise überlappt, der von den letzten unteren Zeilen von STIM_height 1746 gebildet wird, oder die in dem Zellenbereich enthalten ist, der von den letzten unteren Zeilen von STIM_height 1746 gebildet wird, nimmt die lokale Prüfvariable STIM_horizontal_critical den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STIM_horizontal_critical den Wert "NO" an.
    • • Wenn mindestens eine STI vorhanden ist, deren Feld "Critical" 755 den Wert "NO" hat und die den Zellenbereich teilweise überlappt, der aus der ganzen Zeile besteht, in der sich die gerade ausgewählte Zelle 1747 befindet, oder die den Zellenbereich teilweise überlappt, der von den letzten unteren Zeilen von STIM_height 1746 gebildet wird, oder die in dem Zellenbereich enthalten ist, der von den letzten unteren Zeilen von STIM_height 1746 gebildet wird, nimmt die lokale Prüfvariable STIM_horizontal_other den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STIM_horizontal_other den Wert "NO" an.
    • • Wenn alle Zellen in dem Zellenbereich, der von den letzten unteren Zeilen von STIM_height 1746 gebildet wird, leer sind (keine Daten enthalten), nimmt die lokale Prüfvariable STIM_horizontal_data den Wert "NO" an; andernfalls nimmt die lokale Prüfvariable STIM_horizontal_data den Wert "YES" an.
  • Als Zweites wird der VERTIKAL_INSERT_BY_RANGE-Einfügemodus geprüft.
    • • Wenn mindestens eine STI vorhanden ist, deren Feld "Critical" 755 den Wert "YES" hat und die den Zellenbereich teilweise überlappt, der durch die Verknüpfung der beiden Zellenbereiche STIM_range 1748 und STIM_vertical_kept_range 1751 gebildet wird, oder die den Zellenbereich STIM_vertical_flushed_range 1752 teilweise überlappt oder die in dem Zellenbereich STIM_vertical_flushed_range 1752 enthalten ist, nimmt die lokale Prüfvariable STIM_horizontal_range_critical den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STIM_horizontal_range_critical den Wert "NO" an.
    • • Wenn mindestens eine STI vorhanden ist, deren Feld "Critical" 755 den Wert "NO" hat und die den Zellenbereich teilweise überlappt, der durch die Verknüpfung der beiden Zellenbereiche STIM_range 1748 und STIM_vertical_kept_range 1751 gebildet wird, oder die den Zellenbereich STIM_vertical_flushed_range 1752 teilweise überlappt oder die in dem Zellenbereich STIM_vertical_flushed_range 1752 enthalten ist, nimmt die lokale Prüfvariable STIM_horizontal_range_other den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STIM_horizontal_range_other den Wert "NO" an.
    • • Wenn alle Zellen im Zellenbereich STIM_vertical_flushed_range 1752 leer sind (keine Daten enthalten), nimmt die lokale Prüfvariable STIM_horizontal_range_data den Wert "NO" an; andernfalls nimmt die lokale Prüfvariable STIM_horizontal_range_data den Wert "YES" an.
  • Als Drittes wird der VERTIKAL_INSERT-Einfügemodus geprüft.
    • • Wenn mindestens eine STI vorhanden ist, deren Feld "Critical" 755 den Wert "YES" hat und die den Zellenbereich teilweise überlappt, der aus der ganzen Spalte besteht, in der sich die gerade ausgewählte Zelle 1747 befindet, oder die den Zellenbereich teilweise überlappt, der von den letzten rechten Spalten von STIM_width 1745 gebildet wird, oder die in dem Zellenbereich enthalten ist, der von den letzten rechten Spalten von STIM_width 1745 gebildet wird, nimmt die lokale Prüfvariable STIM_vertical_critical den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STIM_vertical_critical den Wert "NO" an.
    • • Wenn mindestens eine STI vorhanden ist, deren Feld "Critical" 755 den Wert "NO" hat und die den Zellenbereich teilweise überlappt, der aus der ganzen Spalte besteht, in der sich die gerade ausgewählte Zelle 1747 befindet, oder die den Zellenbereich teilweise überlappt, der von den letzten rechten Spalten von STIM_width 1745 gebildet wird, oder die in dem Zellenbereich enthalten ist, der von den letzten rechten Spalten von STIM_width 1745 gebildet wird, nimmt die lokale Prüfvariable STIM_vertical_other den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STIM_vertical_other den Wert "NO" an.
    • • Wenn alle Zellen in dem Zellenbereich, der von den letzten rechten Spalten von STIM_width 1745 gebildet wird, leer sind (keine Daten enthalten), nimmt die lokale Prüfvariable STIM_vertical_data den Wert "NO" an; andernfalls nimmt die lokale Prüfvariable STIM_vertical_data den Wert "YES" an.
  • Als Viertes wird der VERTICAL_INSERT_BY_RANGE-Einfügemodus geprüft.
    • • Wenn mindestens eine STI vorhanden ist, deren Feld "Critical" 755 den Wert "YES" hat und die den Zellenbereich teilweise überlappt, der durch die Verknüpfung der beiden Zellenbereiche STIM_range 1748 und STIM_horizontal_kept_range 1749 gebildet wird, oder die den Zellenbereich STIM_horizontal_flushed_range 1750 teilweise überlappt oder die in dem Zellenbereich STIM_horizontal_flushed_range 1750 enthalten ist, nimmt die lokale Prüfvariable STIM_vertical_range_critical den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STIM_vertical_range_critical den Wert "NO" an.
    • • Wenn mindestens eine STI vorhanden ist, deren Feld "Critical" 755 den Wert "NO" hat und die den Zellenbereich teilweise überlappt, der durch die Verknüpfung der beiden Zellenbereiche STIM_range 1748 und STIM_horizontal_kept_range 1749 gebildet wird, oder die den Zellenbereich STIM_horizontal_flushed_range 1750 teilweise überlappt oder die in dem Zellenbereich STIM_horizontal_flushed_range 1750 enthalten ist, nimmt die lokale Prüfvariable STIM_vertical_range_other den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STIM_vertical_range_other den Wert "NO" an.
    • • Wenn alle Zellen im Zellenbereich STIM_horizontal_flushed_range 1750 leer sind (keine Daten enthalten), nimmt die lokale Prüfvariable STIM_vertical_range_data den Wert "NO" an; andernfalls nimmt die lokale Prüfvariable STIM_vertical_range_data den Wert "YES" an.
    • • Im Schritt 1515 wird ein Test durchgeführt, um zu prüfen, wie sich die Einfügeoperation entsprechend den Werten, die den folgenden lokalen Variablen während des Schritts 1514 zugewiesen wurden, auf eine vorhandene STI auswirkt:
    • • STIM_horizontal_critical,
    • • STIM_horizontal_other,
    • • STIM_horizontal_range_critical,
    • • STIM_horizontal_range_other,
    • • STIM_vertical_critical,
    • • STIM_vertical_other,
    • • STIM_vertical_range_critical,
    • • STIM_vertical_range_other.
  • Wenn keine dieser lokalen Variablen den Wert "YES" annimmt, wird die Steuerung dem Schritt 1516 übergeben; andernfalls, wenn mindestens eine dieser lokalen Variablen den Wert "YES" annimmt, wird die Steuerung dem Schritt 1517 übergeben.
    • • Im Schritt 1516 wird das herkömmliche Einfügeverfahren, wie es in herkömmlichen Tabellenkalkulationsumgebungen festgelegt ist und verwendet wird, gestartet, und dann wird die Steuerung wieder dem ersten Schritt 1501 zur Verarbeitung eines künftigen STI-Insertion-Manager-Befehls übergeben.
    • • Im Schritt 1517 wird das Dialogfeld 1620 des ST-Einfügemanagers auf dem Bildschirm 106 angezeigt. Das Bezeichnungsfeld 1629 wird mit dem reservierten Wert "None" initialisiert. In die 12 Bezeichnungsfelder 1624 werden Zeile für Zeile die Werte der folgenden lokalen Variablen in der folgenden Reihenfolge eingegeben, wobei mit der obersten Zeile begonnen und von links nach rechts fortgefahren wird:
    • • STIM_horizontal_critical,
    • • STIM_horizontal_other,
    • • STIM_horizontal_data,
    • • STIM_horizontal_range_critical,
    • • STIM_horizontal_range_other,
    • • STIM_horizontal_range_data,
    • • STIM_vertical_critical,
    • • STIM_vertical_other,
    • • STIM_vertical_data,
    • • STIM_vertical_range_critical,
    • • STIM_vertical_range_other,
    • • STIM_vertical_range_data.
  • Wenn die lokale Variable STIM_mode den jeweiligen Wert HORIZONTAL_INSERT Oder HORIZONTAL_INSERT_BY_RANGE Oder VERTICAL_INSERT oder VERTICAL_INSERT_BY_RANGE annimmt, zeigt nur die jeweilige Optionsschaltfläche 1628 oder 1627 oder 1626 oder 1625 einen schwarzen Punkt an.
  • Schließlich wird die Schaltfläche "Insert" 1623 deaktiviert, sobald eine der folgenden lokalen Variablen den Wert "YES" annimmt: STIM_horizontal_critical (wird nur berücksichtigt, wenn die lokale Variable STIM_mode den Wert HORIZONTAL_INSERT hat), STIM_vertical_critical (wird nur berücksichtigt, wenn die lokale Variable STIM_mode den Wert VERTICAL_INSERT hat), STIM_horizontal_range_critical (wird nur berücksichtigt, wenn die lokale Variable STIM_mode den Wert VERTICAL_INSERT_BY_RANGE hat), STIM_vertical_range_critical (wird nur berücksichtigt, wenn die lokale Variable STIM_mode den Wert VERTICAL_INSERT_BY_RANGE hat), andernfalls wird die Schaltfläche "Insert" 1623 aktiviert.
    • • Im Schritt 1518 wartet das Verfahren auf eine Benutzeraktion im Dialogfeld des ST-Einfügemanagers 1620. Eine solche Benutzeraktion ist üblicherweise das Ergebnis eines Klicks mit der Zeigeeinheit 105, wobei dieser Auslöser jedoch auch andere ähnliche Formen annehmen kann wie zum Beispiel, jedoch nicht auf diese beschränkt, eine bestimmte Tastenkombination auf der Tastatur 104 oder irgendein anderes ähnliches Mittel, das hier nicht näher angegeben wird.
    • • Im Schritt 1519 wird eine Benutzeraktion im Dialogfeld 1620 des ST-Einfügemanagers festgestellt.
    • • Wenn die Benutzeraktion ein Klick auf die Schaltfläche "Insert" 1623 ist, wird die Steuerung dem Schritt 1526 übergeben;
    • • wenn die Benutzeraktion ein Klick auf eine der Optionsschaltflächen 1628 oder 1627 oder 1626 oder 1625 ist, wird die Steuerung dem Schritt 1520 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Cancel" 1622 oder auf die Schaltfläche 1621 zum Schließen des Fensters ist, wird die Steuerung dem Schritt 1521 übergeben.
    • • Im Schritt 1520 nimmt die lokale Variable STIM_mode den Wert HORIZONTAL_INSERT oder VERTICAL_INSERT_BY_RANGE oder VERTICAL_INSERT oder VERTICAL_INSERT_BY_RANGE an, Wenn der Benutzer des Tabellenkalkulationsprogramms mit der Zeigeeinheit 105 auf die jeweilige Optionsschaltfläche 1628 oder 1627 oder 1626 oder 1625 geklickt hat. Dann wird die Steuerung dem Schritt 1517 übergeben.
    • • Im Schritt 1521 wird das Dialogfeld 1600 oder 1620 des ST-Einfügemanagers geschlossen, so dass es vom Bildschirm 106 verschwindet. Schließlich wird die Steuerung wieder dem ersten Schritt 1501 zur Verarbeitung eines künftigen ST-Insertion-Manager-Befehls übergeben.
    • • Im Schritt 1522 wird der Wert der lokalen Variablen STIM_height 1706 um 1 (eins) erhöht, solange die Summe aus ihrem Wert und dem Wert der lokalen Variablen STIM_element geringer als der Wert oder gleich dem Wert der lokalen Variablen STIM_max bleibt. Wenn die Erhöhung vorgenommen wurde, wird der gerade ausgewählte Zellenbereich STIM_range 1708 vergrößert, indem die aktuelle Auswahl um eine neue Zeile erweitert wird, die unter der letzten Zeile eingefügt wird. Daraufhin wird die Steuerung dem Schritt 1508 übergeben.
    • • Im Schritt 1523 wird die lokale Variable STIM_critical aktualisiert, um zwischen den Werten "YES" und "NO" zu wechseln. Dann wird das Feld "Critical" 755 im Datensatz 751 der STIT-Tabelle 750, das im Schritt 1503 gefunden wurde, mit dem Wert der lokalen Variablen STIM_critical aktualisiert. Daraufhin wird die Steuerung dem Schritt 1508 übergeben.
    • • Im Schritt 1524 nimmt die lokale Variable STIM_mode den Wert HORIZONTAL_INSERT oder HORIZONTAL_INSERT_BY_RANGE an, Wenn der Benutzer des Tabellenkalkulationsprogramms mit der Zeigeeinheit 105 auf die jeweilige Optionsschaltfläche 1606 oder 1605 geklickt hat. Dann wird die Steuerung dem Schritt 1508 übergeben.
    • • Im Schritt 1525 wird die STIT-Tabelle 750 aufgerufen, um jeden Datensatz 751 aus ihr zu entfernen, der einer STI entspricht, die durch das Einfügen der neuen Zeilen beschädigt wurde, was während des Schritts 1509 bei dem von der lokalen Variablen STIM_mode dargestellten Einfügemodus festgestellt wurde. Daraufhin wird die STT-Tabelle 720 aktualisiert, um das Entfernen einer jeden STI widerzuspiegeln. Für jede entfernte STI wird das Feld INSTANCE REFERENCE (IR) 729c des Attributs "REFERENCED" 729 des Datensatzes 721, dessen Feld "Name" 722 den gleichen Wert wie das Feld "ST" 753 des Datensatzes 751 der STIT-Tabelle 750 hat, die der entfernten STI entspricht, durch 2 (zwei) geteilt. Daraufhin wird die Steuerung dem Schritt 1527 übergeben.
    • • Im Schritt 1526 wird die STIT-Tabelle 750 aufgerufen, um jeden Datensatz 751 aus ihr zu entfernen, der einer STI entspricht, die durch das Einfügen der neuen Zeilen beschädigt wurde, was während des Schritts 1514 bei dem von der lokalen Variablen STIM_mode dargestellten Einfügemodus festgestellt wurde. Daraufhin wird die STT- Tabelle 720 aktualisiert, um das Entfernen einer jeden STI widerzuspiegeln. Für jede entfernte STI wird das Feld INSTANCE REFERENCE (IR) 729c des Attributs "REFERENCED" 729 des Datensatzes 721, dessen Feld "Name" 722 den gleichen Wert wie das Feld "ST" 753 des Datensatzes 751 der STIT-Tabelle 750 hat, die der entfernten STI entspricht, durch 2 (zwei) geteilt. Daraufhin wird die Steuerung dem Schritt 1528 übergeben.
    • • Im Schritt 1527 wird ein Test durchgeführt, um den Wert der lokalen Variablen STIM_mode zu prüfen. Wenn festgestellt wird, dass dieser Wert HORIZONTAL_INSERT lautet, wird die Steuerung dem Schritt 1529 übergeben, wenn festgestellt wird, dass dieser Wert HORIZONTAL_INSERT_BY_RANGE lautet, wird die Steuerung dem Schritt 1530 übergeben.
    • • Im Schritt 1528 wird ein Test durchgeführt, um den Wert der lokalen Variablen STIM_mode zu prüfen.
    • • Wenn festgestellt wird, dass dieser Wert HORIZONTAL_INSERT lautet, wird die Steuerung dem Schritt 1531 übergeben;
    • • wenn festgestellt wird, dass dieser Wert HORIZONTAL_INSERT_BY_RANGE lautet, wird die Steuerung dem Schritt 1533 übergeben;
    • • wenn festgestellt wird, dass dieser Wert VERTICAL_INSERT lautet, wird die Steuerung dem Schritt 1532 übergeben;
    • • wenn festgestellt wird, dass dieser Wert VERTICAL_INSERT_BY_RANGE lautet, wird die Steuerung dem Schritt 1534 übergeben.
    • • Im Schritt 1529 wird der Zellenbereich STIM_range 1708 ausgewählt, so dass er der gerade ausgewählte Zellenbereich wird, wobei die gerade ausgewählte Zelle an ihrer früheren Position 1747 verbleibt, und dann wird eine gewöhnliche Operation in Form von einem "Einfügen einer Zeile" durchgeführt. Daraufhin wird die Steuerung dem Schritt 1535 übergeben.
    • • Im Schritt 1530 wird der Zellenbereich STIM_range_col_fit 1721 ausgewählt, so dass er der gerade ausgewählte Zellenbereich wird, wobei die gerade ausgewählte Zelle an die Position 1736 verschoben wird, die dem Schnittpunkt der äußersten linken Spalte des Zellenbereichs STIM_instance_range 1713 mit der Zeile entspricht, in der sich zuvor die gerade ausgewählte Zelle 1707 befand, und dann wird eine gewöhnliche Operation in Form von einem "Einfügen einer Zeile in den ausgewählten Bereich" durchgeführt. Daraufhin wird die Steuerung dem Schritt 1535 übergeben.
    • • Im Schritt 1531 wird der Zellenbereich STIM_range 1748 ausgewählt, so dass er der gerade ausgewählte Zellenbereich wird, wobei die gerade ausgewählte Zelle an ihrer früheren Position 1747 verbleibt, und dann wird eine gewöhnliche Operation in Form von einem "Einfügen einer Zeile" durchgeführt. Daraufhin wird die Steuerung dem Schritt 1521 übergeben.
    • • Im Schritt 1532 wird der Zellenbereich STIM_range 1748 ausgewählt, so dass er der gerade ausgewählte Zellenbereich wird, wobei die gerade ausgewählte Zelle an ihrer früheren Position 1747 verbleibt, und dann wird eine gewöhnliche Operation in Form von einem "Einfügen einer Spalte" durchgeführt. Daraufhin wird die Steuerung dem Schritt 1521 übergeben.
    • • Im Schritt 1533 wird der Zellenbereich STIM_range 1748 ausgewählt, so dass er der gerade ausgewählte Zellenbereich wird, wobei die gerade ausgewählte Zelle an ihrer früheren Position 1747 verbleibt, und dann wird eine gewöhnliche Operation in Form von einem "Einfügen einer Zeile in den ausgewählten Bereich" durchgeführt. Daraufhin wird die Steuerung dem Schritt 1521 übergeben.
    • • Im Schritt 1534 wird der Zellenbereich STIM_range 1748 ausgewählt, so dass er der gerade ausgewählte Zellenbereich wird, wobei die gerade ausgewählte Zelle an ihrer früheren Position 1747 verbleibt, und dann wird eine gewöhnliche Operation in Form von einem "Einfügen einer Spalte in den ausgewählten Bereich" durchgeführt. Daraufhin wird die Steuerung dem Schritt 1521 übergeben.
    • • Im Schritt 1535 wird der Befehl "Create Instance Element" aufgerufen, wobei die Parameter auf die lokalen Variablen ST_name, STIM_instance_range und STIM_height gesetzt werden. Daraufhin wird die Steuerung dem Schritt 1521 übergeben.
    • • Im Schritt 1541 wird der Wert der lokalen Variablen STIM_height 1706 um (eins) verringert, solange ihr Wert absolut positiv bleibt. Nachdem die Verringerung vorgenommen wurde, wird der gerade ausgewählte Zellenbereich STIM_range 1708 verkleinert, indem die letzte Zeile aus der aktuellen Auswahl entfernt wird. Daraufhin wird die Steuerung dem Schritt 1508 übergeben.
  • E8. Verfahren zur Erzeugung eines Instanzelements
  • sDas Verfahren zur Erzeugung neuer Elemente in einer vorhandenen STI, das in der bevorzugten Ausführungsform der vorliegenden Erfindung zur Anwendung kommt, ist im Flussdiagramm 1550 von 15B zusammengefasst. Dieses Verfahren kann als Verarbeitung des Befehls "Create Instance Element" betrachtet werden.
    • • Im Schritt 1551 befindet sich das Verfahren in seinem standardmäßigen Zustand, in dem es auf einen Aufruf des Befehls Create Instance Element wartet.
    • • Im Schritt 1552 wird ein Aufruf des Befehls Create Instance Element festgestellt, wobei die Parameter in den lokalen Variablen ST_name, STI_range und Nbr abgelegt werden.
    • • Im Schritt 1533 wird die STT-Tabelle 720 ausgewertet, um den Datensatz 721 zu ermitteln, dessen Feld "Name" 722 den gleichen Wert wie die lokale Variable ST_name hat. Aus diesem Datensatz 721 wird der Inhalt des Feldes "Description Ptr" 724 abgerufen, der es ermöglicht, die STDT-Tabelle 760 im Speicher aufzufinden, welche zu der ST gehört, an die sich die aktuelle STI hält. Dann wird das aus dem EF-Namen und dem EP-Namen bestehende Elementpaar 762, das in dieser STDT-Tabelle 760 gefunden wird, zum aktuellen Namenspaar bestimmt: (EF-Name, EP-Name). Dann wird die lokale Variable Nbr in einer zweiten lokalen Variablen Nbr2 abgelegt.
    • • Im Schritt 1554 wird die EPT-Tabelle 710 ausgewertet, um den Datensatz 711 zu finden, dessen Feld "Name" 712 gleich dem EP-Namen in dem aktuellen Paar ist. Sobald dieser Datensatz 711 gefunden wurde, wird der Inhalt seines Feldes "Description Ptr" 714 abgerufen, um den Zellenbereich im Speicher aufzufinden, der das EP darstellt. Diese Beschreibung des EP wird nur als Wert kopiert und in die gerade ausgewählte Zelle eingefügt, so dass die entsprechende Zeile die Anfangswerte des EP erhält. Dann wird die EFT-Tabelle 700 ausgewertet, um den Datensatz 701 zu finden, dessen Feld "Name" 702 gleich dem EF-Namen in dem aktuellen Paar ist. Sobald dieser Datensatz 701 gefunden wurde, wird der Inhalt seines Feldes "Description Ptr" 704 abgerufen, um den Zellenbereich im Speicher aufzufinden, der das EF darstellt. Diese Beschreibung des EF wird nur als Attribut kopiert und in die gerade ausgewählte Zelle eingefügt, so dass die entsprechende Zeile die Attribute des EF erhält.
    • • Im Schritt 1555 wird der Wert der lokalen Variablen Nbr um 1 (eins) verringert.
    • • Im Schritt 1556 wird ein Test durchgeführt, um zu prüfen, ob die lokale Variable Nbr den Wert 0 (null hat. Wenn dies der Fall ist, wird die Steuerung dem Schritt 1558 übergeben; andernfalls wird die Steuerung dem Schritt 1557 übergeben.
    • • Im Schritt 1557 wird die gerade ausgewählte Zelle um eine Zeile nach unten verschoben. Daraufhin wird die Steuerung dem Schritt 1554 übergeben.
    • • Im Schritt 1558 wird die aktuelle STI mit der Bezeichnung STI_range aktualisiert, indem die "AUS"-Zellen in allen Elementen wiederhergestellt werden, um eine durch die Einfügeoperation verursachte Beschädigung zu vermeiden. Dazu wird mit dem im Schritt 1553 im Paar 762 gefundenen EP-Namen der Datensatz 711 in der EPT-Tabelle 710 ermittelt, dessen Feld "Name" 712 mit diesem EP-Namen übereinstimmt. Dann wird mit Hilfe des Feldes "Description Ptr" 714 dieses Datensatzes 711 der das EP darstellende Zellenbereich aus dem Speicher abgerufen, der die EP-Zellen angibt, die als "AUS"-Zellen aufgeführt sind (und in einer bevorzugten Ausführungsform der vorliegenden Erfindung erfasst werden, indem das Zellschutzmodus-Attribut auf "cell protected from changes" ("vor Änderungen geschützte Zelle") gesetzt wird. Dazu speichert eine temporäre lokale Variable STIM_out_fields die relativen Positionen aller Zellen, die als "EIN"- und "AUS"-Zellen angegeben sind, als eine geordnete Gruppe von IN- oder OUT-Werten. In einem aus 5 Zellen bestehenden EP beispielsweise, bei dem nur die dritte und die fünfte Zelle "AUS"-Zellen sind, nimmt diese lokale Variable STIM_out_fields den Wert (IN, IN, OUT, IN, OUT) an. Dann wird die oberste Zeile des eingefügten Zellenbereichs als der gerade ausgewählte Zellenbereich ausgewählt. Anschließend wird jede Zelle in dieser Auswahl einzeln abgewählt, wenn sie einer Position entspricht, die in der lokalen Variablen STIM_out_fields den Wert "IN" hat. In dieser Auswahl wird die äußerste linke Zelle als die gerade ausgewählte Zelle festgelegt. In dieser Phase entspricht die aktuelle Auswahl der Gruppe aller "AUS"-Zellen. Daraufhin wird die aktuelle Auswahl erweitert, indem die erforderliche Anzahl von Zeilen über der aktuellen Zeile eingefügt wird, so dass sie sich über alle Elemente erstreckt, die sich zwischen dem obersten Element der STI und dem obersten Element der eingefügten neuen Elemente befinden. Dann wird eine herkömmliche "Nach-oben-kopieren"-Operation durchgeführt, um die "AUS"-Zellen der letzten Zeile der aktuellen Auswahl in die darüber liegenden "AUS"-Zellen zu kopieren. Daraufhin wird die aktuelle Auswahl erweitert, indem die erforderliche Anzahl von Zeilen unter der letzten Zeile eingefügt wird, so dass sie sich über alle Elemente erstreckt, die sich in der STI befinden. Dann wird eine herkömmliche "Nach-unten-kopieren"-Operation durchgeführt, um die "AUS"-Zellen der letzten Zeile der aktuellen Auswahl in die darunter liegenden "AUS"-Zellen zu kopieren, so dass schließlich alle "AUS"-Zellen der aktuellen STI einen korrekten Inhalt erhalten. Als Letztes wird das Feld "Element #" 754 im Datensatz 751 der STIT-Tabelle 750, dessen Feld "Address" 752 den gleichen Wert wie die lokale Variable STI_range hat, um den Wert der lokalen Variablen Nbr2 erhöht. Abschließend wird die Steuerung dem Schritt 1521 übergeben.
    • • Im Schritt 1559 wird die Steuerung wieder dem Verfahren übergeben, das den Befehl "Create Instance Element" aufgerufen hat.
  • E9. RSTI-Einfügemanager-Verfahren
  • Das Verfahren zum Ändern einer vorhandenen RSTI durch das Einfügen von neuen Elementen, das in der bevorzugten Ausführungsform der vorliegenden Erfindung zur Anwendung kommt, ist im Flussdiagramm 1560 von 15C zusammengefasst. Dieses Verfahren kann als Verarbeitung des Befehls "RSTI Insertion Manager" betrachtet werden.
    • • Im Schritt 1561 befindet sich das Verfahren in seinem standardmäßigen Zustand, in dem es auf ein Ereignis zum Starten des Prozesses wartet.
    • • Im Schritt 1562 wird der Befehl "RSTI Insertion Manager" als Ergebnis einer Benutzeraktion festgestellt. Diese Aktion kann beispielsweise Folgende sein:
    • • eine bestimmte Tastenkombination auf der Tastatur 104 oder
    • • das Anklicken einer bestimmten Schaltfläche oder eines bestimmten Menü- oder Untermenüeintrags mit der Zeigeeinheit 105 oder
    • • ein anderes ähnliches Mittel, das hier nicht näher angegeben wird.
  • Wenn der Befehl RSTI Insertion Manager festgestellt wird, entspricht die aktuelle Arbeitsblatt-Auswahl einem Zellenbereich, der möglicherweise auf eine einzige Zelle verringert wurde und als der gerade ausgewählte Zellenbereich bezeichnet wird, welcher die gerade ausgewählte Zelle umfasst. Wenn diese gerade ausgewählte Zelle nicht die oberste linke Zelle in dem gerade ausgewählten Zellenbereich ist, wird die oberste linke Zelle des gerade ausgewählten Zellenbereichs die gerade ausgewählte Zelle.
    • • Im Schritt 1563 werden einige lokale Variablen mit einem Anfangswert belegt:
    • • Die lokale Variable csr ("currently selected range" ("gerade ausgewählter Bereich")) ist der Zellenbereich, der dem gerade ausgewählten Zellenbereich entspricht.
    • • Die lokale Variable csrr ("currently selected range rows" ("gerade ausgewählte Bereichszeilen")) ist die Anzahl der Zeilen, die die lokale Variable csr umfasst.
    • • Die lokale Variable csc ("currently selected cell" ("gerade ausgewählte Zelle")) ist die einzelne Zelle, der der gerade ausgewählten Zelle entspricht.
    • • Die lokale Variable cRSTITr ("current RSTIT record" ("aktueller RSTIT-Datensatz)) entspricht, sofern vorhanden, dem Datensatz 2261 der RSTIT-Tabelle 2260, dessen Feld "Address" 2262 zu demselben Arbeitsblatt wie der Zellenbereich der lokalen Variablen csc gehört. Wenn die RSTIT-Tabelle 2260 keinen Datensatz 2261 enthält, dessen Feld "Address" 2262 dasselbe Arbeitsblatt wie die lokale Variable csc belegt, wird die lokale Variable cRSTITr standardmäßig auf den Wert "void" gesetzt.
    • • Die lokale Variable rihs ("recursive instance header size" ("Größe der Kopfzeile der rekursiven Instanz")) entspricht, wenn die lokale Variable cRSTITr nicht den Wert "void" hat, dem Wert des Feldes "Header Size" 2266 des Datensatzes cRSTITr 2261 der RSTIT-Tabelle 2260. Wenn die lokale Variable cRSTITr den Wert "void" hat, wird die lokale Variable rihs standardmäßig ebenfalls auf den Wert "void" gesetzt.
    • • Die lokale Variable rifs ("recursive instance footer size" ("Größe der Fußzeile der rekursiven Instanz")) entspricht, wenn die lokale Variable cRSTITr nicht den Wert "void" hat, dem Wert des Feldes "Footer Size" 2267 des Datensatzes cRSTITr 2261 der RSTIT-Tabeelle 2260. Wenn die lokale Variable cRSTITr den Wert "void" hat, wird die lokale Variable rifs standardmäßig ebenfalls auf den Wert "void" gesetzt.
    • • Die lokale Variable rir ("recursive instance range" ("Bereich der rekursiven Instanz")) ist der Zellenbereich 2001, dessen Adresse vom Feld "Address" 2262 des cRSTITr-Datensatzes 2261 angegeben wird, wenn sie ungleich "void" ist. Wenn die lokale Variable cRSTITr den Wert "void" annimmt, wird die lokale Variable rir standardmäßig ebenfalls auf den Wert "void" gesetzt.
    • • Die lokale Variable cRSTIDT ("current RSTIDT" ("aktuelle RSTIDT")) ist die RSTIDT-Tabelle 2270, auf die das Feld "RSTIDT Ptr" 2265 des cRSTITr-Datensatzes 2261 zeigt, wenn sie ungleich "void" ist. Wenn die lokale Variable cRSTITr den Wert "void" annimmt, wird die lokale Variable cRSTIDT standardmäßig ebenfalls auf den Wert "void" gesetzt.
    • • Wenn die lokale Variable cRSTITr ungleich "void" ist, wird die lokale Variable RST_name mit dem Namen der RST initialisiert, an die sich RSTI rir hält. Dieser Name wird vom Feld "RST" 2263 des Datensatzes cRSTITr 2261 der RSTIT-Tabelle 2260 angegeben. Wenn die lokale Variable cRSTITr gleich "void" ist, wird die lokale Variable RST_name standardmäßig ebenfalls auf den Wert "void" gesetzt.
    • • Wenn die lokale variable cRSTITr ungleich "void" ist, nimmt die lokale Variable mrer ("Maximum RE reached" ("Maximales RE erreicht")) den Wert TRUE an, wenn das Feld "Element#" 2264 des cRSTITr-Datensatzes 2261 den gleichen Wert wie das Feld "Max Element#" 2226 des Datensatzes 2221 hat, dessen Feld "Name" 2222 den gleichen Wert wie die lokale Variable RST_name hat. Wenn die lokale Variable cRSTITr ungleich "void" ist, nimmt die lokale Variable mrer den Wert FALSE an, wenn der Wert des Feldes "Element#" 2264 des cRSTITr-Datensatzes 2261 einen geringeren Wert als der Wert des Feldes "Max Element#" 2226 des Datensatzes 2221 hat, dessen Feld "Name" 2222 den gleichen Wert wie die lokale Variable RST_name hat. Wenn die lokale variable cRSTITr gleich "void" ist, wird die lokale Variable mrer standardmäßig ebenfalls auf den Wert "void" gesetzt.
    • • Die lokale Variable ir ("instance range" ("Instanzbereich")) ist ein Zellenbereich, der, sofern vorhanden, der STI entspricht, die die gerade ausgewählte Zelle csc enthält. Wenn die gerade ausgewählte Zelle csc nicht zu einer STI gehört, nimmt die lokale Variable ir einen auf "void" gesetzten Standardwert an. Die Initialisierung dieser lokalen Variablen ir wird festgelegt, indem die Adresse der lokalen Variablen csc mit dem Feld "Address" 752 eines jeden Datensatzes 751 der STIT Tabelle 750 verglichen wird. Bezug nehmend auf 18A nimmt die lokale Variable ir beispielsweise den Wert "void" an, wenn die lokale Variable csc einem der Zellenbereiche 2024 oder 2022 entspricht, und die lokale variable ir entspricht den jeweiligen Zellenbereichen 2034 oder 2032 oder 2030 oder 2031 oder 2033 oder 2013, wenn die lokale Variable csc einem der Zellenbereiche 2018 oder 2019 oder 2020 oder 2021 oder 2023 oder 2025 entspricht.
    • • Die lokale Variable ccirb ("current cell in recursive body" ("aktuelle Zelle im rekursiven Hauptteil")) ist eine Boolesche Variable, die die Werte TRUE oder FALSE annimmt, wenn sich die gerade ausgewählte Zelle csc im Hauptteil 2003 des rir-Zellenbereichs 2001 befindet beziehungsweise sich dort nicht befindet. Bezug nehmend auf 18A nimmt die lokale Variable ccirb beispielsweise den Wert TRUE an, wenn die lokale Variable csc einem der Zellenbereiche 2018 oder 2020 oder 2022 oder 2023 entspricht, und den Wert FALSE, wenn die lokale Variable csc einem der Zellenbereiche 2019 oder 2021 oder 2024 oder 2025 entspricht.
    • • Die lokale Variable cRSTIDTc ("current RSTIDT cell" ("aktuelle RSTIDT-Zelle")) ist, wenn sie ungleich "void" ist, die Zelle 2272 der cRSTIDT-Tabelle 2270, deren Feld "Container_range" 2276 einer Adresse entspricht, die die lokale Variable csc umfasst. Wenn die lokale Variable cRSTIDT den Wert "void" annimmt, wird die lokale Variable cRSTIDTc standardmäßig ebenfalls auf den Wert "void" gesetzt.
    • • Die lokale Variable cRSTIDTr ("current RSTIDT record" ("aktueller RSTIDT-Datensatz")) ist, wenn sie ungleich "void ist, der Datensatz 2271 der cRSTIDT-Tabelle 2270, der die cRSTIDTc-Zelle 2272 umfasst. Wenn die lokale Variable cRSTIDT den Wert "void" annimmt, wird die lokale Variable cRSTIDTr standardmäßig ebenfalls auf den Wert "void" gesetzt.
    • • Die lokale Variable croc ("container range of cells" ("Behälter-Zellenbereich")) entspricht, wenn die lokale Variable cRSTIDTc ungleich "VOID" ist, dem Wert des Feldes "Container_range" 2276 der cRSTIDTc-Zelle 2272. Wenn die lokale Variable cRSTIDTc den Wert "void" hat, wird die lokale Variable croc standardmäßig ebenfalls auf den Wert "void" gesetzt.
    • • Die lokale Variable crocc ("container range of cells colums" ("Behälterbereich der Spalten der Zellen")) entspricht, wenn die lokale Variable cRSTIDTc ungleich "VOID" ist, dem Wert des Feldes "Container_col" 2277 der cRSTIDTc-Zelle 2272. Wenn die lokale Variable cRSTIDTc den Wert "void" hat, wird die lokale Variable crocc standardmäßig ebenfalls auf den Wert "void" gesetzt.
    • • Die lokale Variable crocr ("container range of cells rows" ("Behälterbereich der Zeilen der Zellen")) entspricht, wenn die lokale Variable cRSTIDTc ungleich VOID" ist, dem Wert des Feldes "Container_row" 2281 der cRSTIDTc-Zelle 2272. Wenn die lokale Variable cRSTIDTc den Wert "void" hat, wird die lokale Variable crocr standardmäßig ebenfalls auf den Wert "void" gesetzt.
    • • Die lokale Variable STIr ("STI rows" ("STI-Zeilen")) entspricht, wenn die lokale Variable cRSTIDTc ungleich "VOID" ist, dem Wert des Feldes "STI_row" 2279 der cRSTIDTc-Zelle 2272. Wenn die lokale Variable cRSTIDTc den Wert "void" hat, wird die lokale Variable STIr standardmäßig ebenfalls auf den Wert "void" gesetzt.
    • • Die lokale Variable STn ("ST_name" ("ST-Name")) entspricht, wenn die lokale Variable cRSTIDTc ungleich "VOID" ist, dem Wert des Feldes "ST_name" 2280 der cRSTIDTc-Zelle 2272. Wenn die lokale Variable cRSTIDTc den Wert "void" hat, wird die lokale Variable STn standardmäßig ebenfalls auf den Wert "void" gesetzt.
    • • Die lokale Variable ccie ("current cell in element" ("aktuelle Zelle im Element")) ist eine Boolesche Variable, die die Werte TRUE oder FALSE annimmt, wenn die gerade ausgewählte Zelle csc im Hauptteil der lokalen variablen ir enthalten ist beziehungsweise nicht darin enthalten ist, wenn diese ungleich "void" ist. Wenn die lokale Variable ir gleich "void" ist, nimmt die lokale Variable ccie den Wert FALSE an. Bezug nehmend auf 18A nimmt die lokale Variable ccii beispielsweise den Wert TRUE an, wenn die lokale Variable csc einem der Zellenbereiche 2018 oder 2019 oder 2021 oder 2023 oder 2025 entspricht, und den Wert FALSE, wenn die lokale variable csc einem der Zellenbereiche 2020 oder 2022 oder 2024 entspricht.
    • • Im Schritt 1564 wird ein Test durchgeführt, um festzustellen, ob die lokale variable rir den Wert "void" hat. Wenn dies der Fall ist, wird die Steuerung dem Schritt 1565 übergeben; andernfalls wird die Steuerung dem Schritt 1566 übergeben.
    • • Im Schritt 1565 wird der Befehl "STI Insertion Manager" aufgerufen (als Unterroutine). Wenn dieser Befehl abgearbeitet ist und die Steuerung wieder dem aktuellen Prozess übergibt, wird die Steuerung dem ersten Schritt 1561 zur Verarbeitung eines künftigen RSTI-Insertion-Manager-Befehls übergeben.
    • • Im Schritt 1566 wird ein Test durchgeführt, um festzustellen, ob der Zellenbereich, der von der lokalen Variablen csc dargestellt wird, in dem Zellenbereich enthalten ist, der von der lokalen Variable rir dargestellt wird. Wenn dies der Fall ist, wird die Steuerung dem Schritt 1568 übergeben; andernfalls wird die Steuerung dem Schritt 1567 übergeben.
    • • Im Schritt 1567 wird das herkömmliche Einfügeverfahren, das in vorhandenen Tabellenkalkulationsumgebungen zur Verfügung steht, befolgt, nachdem ein Einfügemodus, der den RSTI-Bereich rir beschädigen könnte, deaktiviert worden ist. Diese beschädigenden Einfügemodi werden wie folgt gekennzeichnet:
    • • Wenn sich der Zellenbereich csr einige Zeilen mit dem Zellenbereich rir teilt, wird das herkömmliche Zeileneinfügeverfahren deaktiviert.
    • • Wenn sich der Zellenbereich csr einige Spalten mit dem Zellenbereich rir teilt, wird das herkömmliche Spalteneinfügeverfahren deaktiviert.
  • Dann wird die Steuerung dem ersten Schritt 1561 zur Verarbeitung eines künftigen RSTI-Insertion-Manager-Befehls übergeben.
    • • Im Schritt 1568 wird ein Test durchgeführt, um festzustellen, ob die lokale Variable ccirb den Wert TRUE und die lokale Variable mrer den Wert ELSE annimmt. Wenn dies der Fall ist, wird die Steuerung dem Schritt 1569 übergeben; andernfalls wird die Steuerung dem Schritt 1570 übergeben.
    • • Im Schritt 1569 wird ein Test durchgeführt, um festzustellen, ob die lokale Variable ccie den Wert TRUE annimmt. Wenn dies der Fall ist, wird die Steuerung dem Schritt 1580 übergeben; andernfalls wird die Steuerung dem Schritt 1581 übergeben.
    • • Im Schritt 1570 wird ein Test durchgeführt, um festzustellen, ob die lokale variable ccie den Wert TRUE annimmt. Wenn ja, wird die Steuerung dem Schritt 1573 übergeben; andernfalls wird die Steuerung dem Schritt 1571 übergeben.
    • • Im Schritt 1571 wird eine Warnmeldung ausgegeben, um den Benutzer darauf aufmerksam zu machen, dass die aktuelle RSTI beschädigt wird, wenn die Einfügeoperation fortgesetzt wird. Dies kann üblicherweise geschehen, indem auf dem Bildschirm 106 eine Warnmeldung in einem Dialogfenster oder in einem Bereich der Statuszeile angezeigt wird, aber ein anderes ähnliches Mittel könnte stattdessen ebenfalls verwendet werden. Dann wird der Benutzer aufgefordert, die aktuelle Einfügeoperation ("Insertion") entweder abzubrechen oder fortzusetzen (wodurch die RSTI rir zerstört wird). Dies kann üblicherweise geschehen, indem auf dem Bildschirm 106 eine Aufforderungsmeldung in einem Dialogfenster angezeigt wird, aber ein anderes ähnliches Mittel könnte stattdessen ebenfalls verwendet werden. Sobald der Benutzer über ein herkömmliches Mittel wie zum Beispiel einen Klick mit der Zeigeeinheit 105 auf eine Schaltfläche "Cancel" oder "Continue", die in einem Dialogfenster mit einer Aufforderungsmeldung vorhanden ist, oder über ein anderes ähnliches Mittel seine Wahl getroffen hat, wird die Steuerung dem Schritt 1561 übergeben, wenn sich der Benutzer des Tabellenkalkulationsprogramms entscheidet, die Operation abzubrechen, oder dem Schritt 1572, wenn sich der Benutzer des Tabellenkalkulationsprogramms entscheidet, die Operation fortzusetzen.
    • • Im Schritt 1572 wird der Datensatz cRSTITr 2261 aus der RSTIT-Tabelle 2260 entfernt. Dann wird die Steuerung dem Schritt 1565 übergeben.
    • • Im Schritt 1573 wird ein Test durchgeführt, um festzustellen, ob der Wert der lokalen Variablen csrr geringer als der Unterschied oder gleich dem Unterschied zwischen der lokalen Variablen crocr und der lokalen Variablen STIr ist. Wenn dies der Fall ist, wird die Steuerung dem Schritt 1576 übergeben; andernfalls wird die Steuerung dem Schritt 1574 übergeben.
    • • Im Schritt 1574 wird eine Anzahl von Zeilen, die gleich csrr – crocr + STIr ist, unter dem Zellenbereich eingefügt, der der lokalen Variablen croc entspricht, so dass der aktuelle Behälter mit genügend neuen Zeilen erweitert wird und die Einfügeoperation folglich gestattet werden kann, ohne die Struktur der RSTI rir zu zerstören.
    • • Im Schritt 1575 wird der Datensatz cRSTIDTr 2271 aktualisiert, so dass die neue Größe der Behälterzeile (die im vorherigen Schritt 1574 erweitert wurde), in den Feldern "Container_row" 2281 und "Container_range" 2276 in jeder Zelle 2272, die in diesem Datensatz cRSTIDTr 2271 enthalten ist, wiedergegeben werden kann.
    • • Im Schritt 1576 werden die Elemente und die Meta-Elemente des von der lokalen Variablen ir dargestellten Zellenbereichs, die sich unter der Zelle befinden, die von der lokalen Variablen csc dargestellt wird, um eine Anzahl von Zeilen nach unten verschoben, die gleich der lokalen Variablen csrr ist. Diese verschobenen Elemente und Meta-Elemente bleiben in ihrem Behälter-Zellenbereich, da bereits genügend Platz vorhanden war (was im Schritt 1573 geprüft wurde) oder der erforderliche Platz eingefügt worden ist (was im Zeileneinfügeschritt 1574 stattgefunden hat).
    • • Im Schritt 1577 wird die äußerste linke Zelle, die in dem Zellenbereich enthalten ist, welcher von der lokalen Variablen ir dargestellt wird, und sich in der Zeile unter der Zelle befindet, die von der lokalen Variablen Variable csc dargestellt wird, ausgewählt.
    • • Im Schritt 1578 wird der Befehl "Create Instance Element" aufgerufen, wobei die Parameter auf die lokalen Variablen STn, ir und csrr gesetzt werden. Wenn dieser Befehl abgearbeitet ist und die Steuerung wieder dem aktuellen Prozess übergibt, wird die Steuerung dem Schritt 1579 übergeben.
    • • Im Schritt 1579 wird die Zelle cRSTIDTc 2272 aktualisiert, so dass die neue Größe der STI, die von der lokalen Variablen ir dargestellt wird, im Feld "STI_row" 2279 wiedergegeben wird. Dann wird die Steuerung dem ersten Schritt 1561 zur Verarbeitung eines künftigen RSTI-Insertion-Manager-Befehls übergeben.
    • • Im Schritt 1580 wird eine Aufforderungsmeldung ausgegeben, um den Benutzer darüber zu informieren, dass die aktuelle RSTI erweitert werden kann, indem entweder neue Elemente in die aktuelle STI eingefügt werden, welche von der lokalen Variablen ir dargestellt wird, oder indem eine neue RE in die RSTI eingefügt wird, die von der lokalen Variablen rir dargestellt wird. Dies kann üblicherweise geschehen, indem auf dem Bildschirm 106 ein Hinweis in einem Dialogfenster oder in einem Bereich der Statuszeile angezeigt wird, aber ein anderes ähnliches Mittel könnte stattdessen ebenfalls verwendet werden. Der Benutzer wird dann aufgefordert, entweder eine Element-Einfügeoperation in die STI anzugeben, die von der lokalen Variablen ir dargestellt wird, oder eine RE-Einfügeoperation in die RSTI anzugeben, die von der lokalen Variablen rir dargestellt wird. Dies kann üblicherweise geschehen, indem auf dem Bildschirm 106 eine Aufforderungsmeldung in einem Dialogfenster angezeigt wird, aber ein anderes ähnliches Mittel könnte stattdessen ebenfalls verwendet werden. Sobald der Benutzer über ein herkömmliches Mittel wie zum Beispiel einen Klick mit der Zeigeeinheit 105 auf eine Schaltfläche "Element" oder "RE", die in einem Dialogfenster mit einer Aufforderungsmeldung vorhanden ist, oder über ein anderes ähnliches Mittel seine Wahl getroffen hat, wird die Steuerung dem Schritt 1573 übergeben, wenn sich der Benutzer des Tabellenkalkulationsprogramms entscheidet, ein Element in die STI einzufügen, die von der lokalen Variablen ir dargestellt wird, oder dem Schritt 1581, wenn sich der Benutzer des Tabellenkalkulationsprogramms entscheidet, ein RE in die RSTI einzufügen, die von der lokalen Variablen rir dargestellt wird.
    • • Im Schritt 1581 wird eine Anzahl von Zeilen, die gleich dem Wert der lokalen Variablen crocc ist, unter den Zellenbereich eingefügt, der von der lokalen Variablen croc dargestellt wird.
    • • Im Schritt 1582 wird ein neuer Datensatz nRSTIDTr 2271 unter dem Datensatz cRSTIDTr in der cRSTIDT-Tabelle 2270 angelegt.
    • • Im Schritt 1583 wird der Datensatz cRSTIDTr kopiert und in den neuen Datensatz nRSTIDTr 2271 eingefügt.
    • • Im Schritt 1584 wird der Inhalt des Feldes "STIT_rec_ptr" 2282 in jeder Zelle 2272 des Datensatzes nRSTIDTr 2271 gelöscht.
    • • Im Schritt 1585 wird das Feld "Container_range" 2276 in jeder Zelle 2272 des Datensatzes nRSTIDTr 2271 aktualisiert, um die Adresse des zugehörigen Behälterbereichs wiederzugeben.
    • • Im Schritt 1586 wird die lokale Variable nRSTIDTc 2272 auf den Wert der ersten (äußersten linken) Zelle des Datensatzes nRSTIDTr 2271 gesetzt. Dann wird die lokale Variable curr_cell auf den Wert der obersten linken Zelle des Zellenbereichs gesetzt, dessen Adresse im Feld "Container_range" 2276 der Zelle nRSTIDTC 2272 angegeben ist.
    • • Im Schritt 1587 wird die lokale Variable STI_range auf den Wert des Feldes "Container_range" 2276 der Zelle nRSTIDTc 2272 gesetzt. Die lokale Variable ST_name wird auf den Wert des Feldes "ST_name" 2280 der Zelle nRSTIDTc 2272 gesetzt. Die lokale Variable STI_element wird auf den Wert des Feldes "Element#" 754 des Datensatzes 751 in der STIT-Tabelle 750 gesetzt, auf den das Feld "STIT_rec_ptr" 2282 der Zelle nRSTIDTc 2272 zeigt.
    • • Im Schritt 1588 wird die Routine "CreateSTI" aufgerufen.
    • • Im Schritt 1589 wird das Feld "STIT_rec_ptr" 2282 der Zelle nRSTIDTc 2272 aktualisiert, damit es auf den neuen Datensatz 751 der STIT-Tabelle 750 zeigt, der als Teil der Routine "CreateSTI" angelegt wurde (siehe Schritt 1419). Dann wird das Feld "STI_row" 2279 der Zelle nRSTIDTc 2272 aktualisiert, damit es die Anzahl der Zeilen, die in der erzeugten STI enthalten sind, widerspiegelt.
    • • Im Schritt 1590 wird ein Test durchgeführt, um festzustellen, ob die Zelle nRSTIDTc 2272 die letzte (äußerste rechte) Zelle des Datensatzes nRSTIDTr 2271 ist. Wenn ja, wird die Steuerung dem Schritt 1592 übergeben; andernfalls wird die Steuerung dem Schritt 1591 übergeben.
    • • Im Schritt 1591 wird die Zelle, die von der lokalen Variablen curr_cell dargestellt wird, um eine Anzahl von Spalten nach rechts verschoben, die gleich dem Wert des Feldes "Container_col" 2277 der Zelle nRSTIDTc 2272 ist. Dann wird die Zelle, die sich rechts von der Zelle nRSTIDTc befindet, die neue Zelle nRSTIDTc 2272. Daraufhin wird die Steuerung dem Schritt 1587 übergeben.
    • • Im Schritt 1592 wird der Datensatz cRSTITr 2261 aktualisiert, um die erhöhte Anzahl der REs, die in der RSTI enthalten sind, welche von der lokalen Variablen rir dargestellt wird, im Feld "Element#" 2264 widerzuspiegeln. Dann wird die Steuerung dem ersten Schritt 1561 zur Verarbeitung eines künftigen RSTI-Insertion-Manager-Befehls übergeben.
  • E10. RST-Instanziator-Verfahren
  • Das Verfahren zur Instanziierung einer RST, das in der bevorzugten Ausführungsform der vorliegenden Erfindung zur Anwendung kommt, ist im Flussdiagramm 2100 von 19A und 19B zusammengefasst. Dieses Verfahren kann als Verarbeitung des Befehls "ST Instanciator" betrachtet werden.
    • • Im Schritt 2101 befindet sich das Verfahren in seinem standardmäßigen Zustand, in dem es auf ein Ereignis zum Starten des Prozesses wartet.
    • • Im Schritt 2102 wird der Befehl "RST Instanciator" als Ergebnis einer Benutzeraktion festgestellt. Diese Aktion kann beispielsweise eine bestimmte Tastenkombination auf der Tastatur 104 oder der Klick der Zeigeeinheit 105 auf eine bestimmte Schaltfläche oder ein anderes ähnliches Mittel sein, das hier nicht näher angegeben wird.
    • • Im Schritt 2103 werden der Befehlsparameter abgerufen und einige lokale Variablen mit einem Anfangswert belegt:
    • • Der Befehlsparameter wird in der Variablen RST_Name abgelegt.
    • • Die lokale Variable Element# wird auf den Anfangswert 0 (null) gesetzt.
    • • Die lokale Variable too_wide wird auf den Standardwert FALSE gesetzt.
    • • Die lokale Variable too_high wird auf den Standardwert FALSE gesetzt.
    • • Die lokale Variable Max_col wird mit der Höchstzahl der verfügbaren Spalten auf einem Arbeitsblatt initialisiert.
    • • Die lokale Variable Max_row wird mit der Höchstzahl der verfügbaren Zeilen auf einem Arbeitsblatt initialisiert.
    • • Die lokale Variable STI_present wird auf den Standardwert FALSE als Anfangswert gesetzt.
    • • Die lokale Variable RSTI_busy wird auf den Standardwert FALSE als Anfangswert gesetzt.
    • • Die lokale Variable RSTI_top_left_cell wird als die gerade ausgewählte Zelle initialisiert.
    • • Im Schritt 2104 wird die RSTT-Tabelle 2220 ausgewertet, um den Datensatz 2221 (der von der lokalen Variablen Curr_RSTT_rec ausgewiesen wird) zu ermitteln, dessen Feld "Name" 2222 den gleichen Wert wie der Befehlsparameter RST_Name hat. Dann wird die lokale Variable RSTI_E# auf den Wert des Feldes "Min Element #" 2225 dieses Datensatzes Curr_RSTT_rec 2221 gesetzt.
    • • Im Schritt 2105 wird die lokale Variable Curr_RSTDT gleich der RSTDT-Tabelle 2250 gesetzt, auf die das Feld "Description Ptr" 2224 des Datensatzes Curr_RSTT_rec 2221 zeigt. Dann wird die lokale Variable Curr_RSTDT_rec gleich dem ersten einzelligen Datensatz 2251 der Tabelle Curr_RSTDT 2250 gesetzt. Anschließend wird die lokale Variable Curr_RET_rec gleich dem Datensatz 2211 der RET-Tabelle 2210 gesetzt, dessen Feld "Name" 2212 den gleichen Wert wie die lokale Variable Curr_RSTDT_rec hat. Dann wird die lokale Variable Curr_RED_RoC gleich dem Zellenbereich gesetzt, auf den das Feld "Description Ptr" 2214 des Datensatzes Curr_RET_rec 2211 zeigt.
    • • Im Schritt 2106 wird eine RSTIDT-Tabelle 2270 in den Speicher geladen und durch die lokale Variable Curr_RSTIDT benannt. Diese Tabelle hat eine Anzahl von Zeilen, die gleich der Anzahl der Zeilen der Tabelle Curr_RSTDT 2250 ist, die um den Wert der lokalen Variablen RSTI_E# erhöht und um 1 (eins) verringert wird. Diese Tabelle hat eine Anzahl von Spalten, die gleich der Anzahl der Spalten des Zellenbereichs Curr_RED_RoC ist. Dann wird die lokale Variable Curr_RSTIDT_rec als der erste Datensatz 2271 der Tabelle Curr_RSTIDT 2270 initialisiert.
    • • Im Schritt 2107 wird die lokale Variable Curr_RSTIDT_cell als die erste Zelle 2280 des Datensatzes Curr_RSTIDT_rec 2271 initialisiert. Dann wird die lokale Variable Curr_REC_Roc_cell als die erste Zelle des Zellenbereichs Curr_REC_RoC initialisiert.
    • • Im Schritt 2108 wird das Feld "STI_col" 2278 der lokalen Variablen Curr_RSTIDT_cell 2280 auf den von der Funktion STI_col zurückgelieferten Wert gesetzt, wenn diese mit dem eindeutigen Parameter aufgerufen wird, der gleich dem Wert der lokalen Variablen Curr_RET_RoC_cell ist. Dann wird das Feld "STI_row" 2279 der lokalen Variablen Curr_RSTIDT_cell 2280 auf den von der Funktion STI_row zurückgelieferten Wert gesetzt, wenn diese mit den beiden Parametern aufgerufen wird, die gleich dem Wert der lokalen Variablen Curr_RET_RoC_cell beziehungsweise 0 (null) sind. Anschließend wird das Feld "ST_Name" 2280 der lokalen Variablen Curr_RSTIDT_cell 2280 auf den Wert der lokalen Variablen Curr_RET_RoC_cell gesetzt.
    • • Im Schritt 2109 wird ein Test durchgeführt, um zu prüfen, ob die von der lokalen Variablen Curr_RSTIDT_cell 2280 dargestellte Zelle die letzte Zelle des von der lokalen Variablen Curr_RSTIDT_rec 2271 dargestellten Datensatzes ist. Wenn ja, wird die Steuerung dem Schritt 2111 übergeben; andernfalls wird die Steuerung dem Schritt 2110 übergeben.
    • • Im Schritt 2110 wird die Zelle, die sich rechts von der Zelle befindet, die von der lokalen Variablen Curr_RSTIDT_cell 2280 dargestellt wird, die neue Zelle Curr_RSTIDT_cell 2280. Dann wird die Zelle, die sich rechts von der Zelle befindet, die von der lokalen Variablen Curr_RET_RoC_cell dargestellt wird, die neue Zelle Curr_RET_RoC_cell. Daraufhin wird die Steuerung dem Schritt 2108 übergeben.
    • • Im Schritt 2111 wird ein Test durchgeführt, um zu prüfen, ob der von der lokalen Variablen Curr_RET_rec 2211 dargestellte Datensatz ein RE beschreibt. Dies kann festgestellt werden, indem geprüft wird, ob das Attribut "META" 2218 des Feldes "Type" 2217 des Datensatzes Curr_RET_rec 2211 den Wert "NO" hat. Wenn dies der Fall ist, wird die Steuerung dem Schritt 2112 übergeben; andernfalls wird die Steuerung dem Schritt 2114 übergeben.
    • • Im Schritt 2112 wird der Wert der lokalen Variablen Element# um 1 (eins) erhöht.
    • • Im Schritt 2113 wird ein Test durchgeführt, um festzustellen, ob die lokale Variable Element# den gleichen Wert wie die lokale Variable RSTI_E# hat. Wenn dies der Fall ist, wird die Steuerung dem Schritt 2114 übergeben; andernfalls wird die Steuerung dem Schritt 2115 übergeben.
    • • Im Schritt 2114 wird ein Test durchgeführt, um zu prüfen, ob die von der lokalen Variablen Curr_RSTIDT_cell 2280 dargestellte Zelle die letzte Zelle des von der lokalen Variablen Curr_RSTIDT_rec 2271 dargestellten Datensatzes ist. Wenn ja, wird die Steuerung dem Schritt 2116 übergeben; andernfalls wird die Steuerung dem Schritt 2117 übergeben.
    • • Im Schritt 2115 wird der Datensatz, der auf den Datensatz Curr_RSTIDT_rec 2271 in der Tabelle Curr_RSTIDT 2270 folgt, der neue Datensatz Curr_RSTIDT_rec 2271. Dann wird die Steuerung dem Schritt 2107 übergeben.
    • • Im Schritt 2116 wird der Datensatz, der auf den Datensatz Curr_RSTDT_rec in der Tabelle Curr_RSTDT 2250 folgt, der neue Datensatz Curr_RSTDT_rec. Daraufhin wird die Steuerung dem Schritt 2115 übergeben.
    • • Im Schritt 2117 wird das Attribut "container_row" 2281 bei jeder Zelle Curr_RSTIDT_cell 2280, die zu der Tabelle Curr_RSTIDT 2270 gehört, auf den Höchstwert des Attributs "STI_row" 2279 der Zellen Same_row_cell gesetzt, die sich in der Tabelle Curr_RSTIDT 2270 in derselben Zeile wie Curr_RSTIDT_cell befinden. Dann wird das Attribut "container_col" 2277 bei jeder Zelle Curr_RSTIDT_cell 2280, die zu der Tabelle Curr_RSTIDT 2270 gehört, auf den Höchstwert des Attributs "STI_col" 2278 der Zellen Same_col_cell gesetzt, die sich in der Tabelle Curr_RSTIDT 2270 in derselben Spalte wie Curr_RSTIDT_cell befinden.
    • • Im Schritt 2118 wird die lokale Variable RSTI_col auf die Summe der Attribute "container_col" 2277 der Zellen gesetzt, die zu der ersten Zeile der Tabelle Curr_RSTIDT 2270 gehören Dann wird die lokale Variable RSTI_row auf die Summe der Attribute "container_row" 2281 der Zellen gesetzt, die zu der ersten Spalte der Tabelle Curr_RSTIDT 2270 gehören.
    • • Im Schritt 2119 wird ein Test durchgeführt, um festzustellen, ob die Summe aus der lokalen Variablen RSTI_col und dem Spaltenindex der einzelnen Zelle RSTI_top_left_cell, der um 1 (eins) verringert wurde, absolut größer als der Wert der lokalen Variablen Max_col ist. Wenn ja, wird die Steuerung dem Schritt 2120 übergeben; andernfalls wird die Steuerung dem Schritt 2121 übergeben.
    • • Im Schritt 2120 wird die lokale Variable too_wide auf den Wert TRUE gesetzt.
    • • Im Schritt 2121 wird ein Test durchgeführt, um festzustellen, ob die Summe aus der lokalen Variablen RSTI_row und dem Zeilenindex der einzelnen Zelle RSTI_top_left_cell, der um 1 (eins) verringert wurde, absolut größer als der Wert der lokalen variablen Max_row ist. Wenn dies der Fall ist, wird die Steuerung dem Schritt 2122 übergeben; andernfalls wird die Steuerung dem Schritt 2123 übergeben.
    • • Im Schritt 2122 wird die lokale Variable too_high auf den Wert TRUE gesetzt.
    • • Im Schritt 2123 wird ein Test durchgeführt, um festzustellen, ob auf demselben Arbeitsblatt, auf dem sich die einzelne Zelle RSTI_top_left_cell befindet, auch eine STI vorhanden ist. Dieser Test lässt sich einfach durchführen, indem die STIT-Tabelle 750 ausgewertet wird, um einen Datensatz 751 zu ermitteln, dessen Feld "Address" 752 auf dasselbe Arbeitsblatt wie die einzelne Zelle RSTI_top_left_cell zeigt. Wenn dies der Fall ist, wird die Steuerung dem Schritt 2124 übergeben; andernfalls wird die Steuerung dem Schritt 2125 übergeben.
    • • Im Schritt 2124 wird die lokale Variable STI_present auf den Wert TRUE gesetzt.
    • • Im Schritt 2125 wird die lokale Variable RSTI_range als der Zellenbereich initialisiert, bei dem die Zelle RSTI_top_left_cell die oberste linke Zelle ist und bei dem mehrere Zeilen den Wert der lokalen Variablen RSTI_row und mehrere Spalten den Wert der lokalen Variablen RSTI_col haben.
    • • Im Schritt 2126 wird ein Test durchgeführt, um zu prüfen, ob in dem Zellenbereich RSTI_range Daten vorhanden sind. Wenn dies der Fall ist, wird die Steuerung dem Schritt 2127 übergeben; andernfalls wird die Steuerung dem Schritt 2128 übergeben.
    • • Im Schritt 2127 wird die lokale Variable RSTI_busy auf den Wert TRUE gesetzt.
    • • Im Schritt 2128 wird das Dialogfeld 2300 des RST-Instanziators auf dem Bildschirm 106 angezeigt. In diesem Dialogfeld 2300 werden in das Textfeld 2302 der Wert der lokalen Variablen RST_name, in das Textfeld 2311 der Wert der lokalen Variablen RSTI_E#, in das Textfeld 2304 der Wert der lokalen Variablen too_wide, in das Textfeld 2305 der Wert der lokalen Variablen too_high, in das Textfeld 2306 der Wert der lokalen Variablen STI_present und in das Textfeld 2307 der Wert der lokalen Variablen RSTI_busy eingegeben. Die Schaltfläche "Create Instance" 2310 wird nur aktiviert, wenn die drei lokalen Variablen too_wide, too_high und STI_present denselben Wert, FALSE, annehmen. Die Schaltfläche "Create instance in a new sheet" 2309 wird nur aktiviert, wenn die beiden lokalen Variablen too_wide und too_high denselben Wert, FALSE, annehmen.
    • • Im Schritt 2129 wartet das Verfahren auf eine Benutzeraktion im Dialogfeld 2300 des RST-Instanziators. Eine solche Benutzeraktion ist üblicherweise das Ergebnis eines Klicks mit der Zeigeeinheit 105, wobei dieser Auslöser jedoch auch andere ähnliche Formen annehmen kann wie zum Beispiel, jedoch nicht auf diese beschränkt, eine bestimmte Tastenkombination auf der Tastatur 104 oder irgendein anderes ähnliches Mittel, das hier nicht näher angegeben wird.
    • • Im Schritt 2130 wird eine Benutzeraktion im Dialogfeld 2300 des RST-Instanziators festgestellt.
    • • Wenn die Benutzeraktion ein Klick mit der Zeigeeinheit 105 auf einen Aufwärtspfeil ("Up") des Drehfelds 2303 ist, wird die Steuerung dem Schritt 2133 übergeben.
    • • Wenn die Benutzeraktion ein Klick mit der Zeigeeinheit 105 auf einen Abwärtspfeil ("Down") des Drehfelds 2303 ist, wird die Steuerung dem Schritt 2134 übergeben.
    • • Wenn die Benutzeraktion ein Klick mit der Zeigeeinheit 105 auf die Schaltfläche "Create instance" 2310 ist, wird die Steuerung dem Schritt 2138 übergeben.
    • • Wenn die Benutzeraktion ein Klick mit der Zeigeeinheit 105 auf die Schaltfläche "Create instance in a new sheet" 2309 ist, wird die Steuerung dem Schritt 2136 übergeben.
    • • Wenn die Benutzeraktion ein Klick mit der Zeigeeinheit 105 auf die Schaltfläche "Cancel" 2308 oder auf die Schaltfläche 2301 zum Schließen des Fensters ist, wird die Steuerung dem Schritt 2131 übergeben.
    • • Im Schritt 2131 wird der Zellenbereich Curr_RSTIDT aus dem Speicher abgerufen.
    • • Im Schritt 2132 wird das Dialogfeld 2300 des RST-Instanziators auf dem Bildschirm 106 geschlossen, und daraufhin wird die Steuerung wieder dem ersten Schritt 2101 zur Verarbeitung eines künftigen RST-Instanciator-Befehls übergeben.
    • • Im Schritt 2133 wird der Wert der lokalen Variablen RSTI_E# um 1 (eins) erhöht.
    • • Im Schritt 2134 wird der Wert der lokalen Variablen RSTI_E# um 1 (eins) verringert.
    • • Im Schritt 2135 wird der Zellenbereich Curr_RSTIDT aus dem Speicher abgerufen, und dann wird die Steuerung dem Schritt 2105 übergeben.
    • • Im Schritt 2136 wird ein neues Arbeitsblatt angelegt, für das der Name curr_sheet vergeben wird.
    • • Im Schritt 2137 wird die oberste linke Zelle des Arbeitsblatts curr_sheet die neue einzelne Zelle RSTI_top_left_cell.
    • • Im Schritt 2138 wird die lokale Variable STI_mode auf den Wert "OVERLAY" als Anfangswert gesetzt. Dann wird die lokale Variable STI_critical auf den Anfangswert "YES" gesetzt. Anschließend wird die lokale Variable Curr_RSTIDT_rec als der erste Datensatz 2271 der Tabelle Curr_RSTIDT 2270 initialisiert. Dann wird die lokale Variable Curr_RSTIDT_cell als die erste Zelle 2280 des Datensatzes Curr_RSTIDT_rec 2271 initialisiert. Danach wird die lokale Variable Curr_cell auf den Wert von RSTI_top_left_cell als Anfangswert gesetzt.
    • • Im Schritt 2139 wird das Attribut "container_range" 2276 der lokalen Variablen Curr_RSTIDT_cell 2280 als der Zellenbereich initialisiert, bei dem die einzelne Zelle Curr_cell die oberste linke Zelle ist und bei dem mehrere Zeilen den Wert des Attributs "container_row" 2281 und mehrere Spalten den Wert des Attributs "container_col" 2277 haben.
    • • Im Schritt 2140 wird die lokale Variable STI_range auf den Wert des Attributs "container_range" 2276 der lokalen Variablen Curr_RSTIDT_cell 2280 gesetzt. Dann wird die lokale Variable ST_name auf den Wert des Attributs "ST_name" 2280 der lokalen Variablen Curr_RSTIDT_cell 2280 gesetzt. Daraufhin wird die lokale Variable STI_element auf den Wert des Feldes "Min. Element#" 2225 des Datensatzes 721 der STT-Tabelle 720 gesetzt, dessen Feld "Name" 722 den gleichen Wert wie ST Name hat.
    • • Im Schritt 2141 wird der Befehl "CreateSTT" aufgerufen (als Unterroutine). Wenn dieser Befehl abgearbeitet ist und die Steuerung wieder dem aktuellen Prozess übergibt, wird die Steuerung dem nächsten Schritt 2142 übergeben.
    • • Im Schritt 2142 wird das Attribut "STIT_rec_ptr" 2282 der lokalen Variablen Curr_RSTIDT_cell 2280 so gesetzt, dass es auf den STIT-Datensatz 751 zeigt, der soeben im vorherigen Schritt 2141 angelegt wurde.
    • • Im Schritt 2143 wird ein Test durchgeführt, um zu prüfen, ob die von der lokalen variablen Curr_RSTIDT_cell 2280 dargestellte Zelle die letzte Zelle des von der lokalen Variablen Curr_RSTIDT_rec 2271 dargestellten Datensatzes ist. Wenn ja, wird die Steuerung dem Schritt 2143 übergeben; andernfalls wird die Steuerung dem Schritt 2144 übergeben.
    • • Im Schritt 2144 wird die einzelne Zelle curr_cell um eine Anzahl von Spalten nach rechts verschoben, die gleich dem Wert des Attributs "container_col" 2277 der lokalen Variablen Curr_RSTIDT_cell 2280 ist. Dann wird die Zelle, die sich rechts von der einzelnen Zelle Curr_RSTIDT_cell 2280 befindet, die neue Zelle Curr_RSTIDT_cell 2280.
    • • Im Schritt 2145 wird ein Test durchgeführt, um zu prüfen, ob der von der lokalen Variablen Curr_RSTIDT_rec 2271 dargestellte Datensatz der letzte Datensatz des von der lokalen Variablen Curr_RSTIDT 2270 dargestellten Datensatzes ist. Wenn ja, wird die Steuerung dem Schritt 2147 übergeben; andernfalls wird die Steuerung dem Schritt 2146 übergeben.
    • • Im Schritt 2146 wird die einzelne Zelle RSTI_top_left_cell um eine Anzahl von Zeilen nach unten verschoben, die gleich dem Wert des Attributs "container_row" 2281 der lokalen Variablen Curr_RSTIDT_cell 2280 ist. Dann wird die einzelne Zelle curr_cell auf den Wert der einzelnen Zelle RST_top_left_cell gesetzt. Dann wird der Datensatz 2271, der auf den Datensatz Curr_RSTIDT_rec in der Tabelle Curr_RSTIDT 2270 folgt, der neue Datensatz Curr_RSTIDT_rec 2271. Daraufhin wird die erste Zelle des Datensatzes Curr_RSTIDT_rec 2271 die neue einzelne Zelle Curr_RSTIDT_cell 2280.
    • • Im Schritt 2147 wird ein neuer Datensatz 2261 in der RSTIT-Tabelle 2260 angelegt, um die soeben erzeugte RSTI zu beschreiben. In das Feld "Address" 2262 wird die Adresse des Zellenbereichs rir 2001 eingegeben. In das Feld "RST" 2263 wird der Wert der lokalen Variablen RST Name eingegeben. In das Feld "Element #" 2264 wird der Wert der lokalen Variablen Element# eingegeben. In das Feld "RSTIDT Ptr" 2265 wird der Wert der lokalen Variablen Curr_RSTIDT eingegeben. In das Feld "Header Size" 2266 wird die Zeilenanzahl der Behälterzeilen eingegeben, die die RSTI-Kopfzeile 2002 bilden. In das Feld "Footer Size" 2267 wird die Zeilenanzahl der Behälterzeilen eingegeben, die die RSTI-Fußzeile 2004 bilden. Dann wird die RSTT-Tabelle 2220 durchsucht, um den Datensatz 2221 zu ermitteln, dessen Feld "Name" 2222 den gleichen Wert wie die lokale Variable RST_name hat. Sobald er gefunden wurde, wird das Attribut "REFERENCED" 2229 im Feld "Type" 2227 dieses Datensatzes 2221 aktualisiert, indem das Teilfeld "INSTANCE REFERENCE" 2229c mit 2 (zwei) multipliziert wird. Daraufhin wird die Steuerung dem Schritt 2132 übergeben.
  • E11. RE-Editor-Verfahren
  • Das Verfahren zur Erzeugung oder Aktualisierung von REs oder Meta-Elementen, das in der bevorzugten Ausführungsform der vorliegenden Erfindung zur Anwendung kommt, ist im Flussdiagramm 2340 von 21C zusammengefasst. Dieses Verfahren kann als Verarbeitung des Befehls "RE Editor" betrachtet werden.
    • • Im Schritt 2341 befindet sich das Verfahren in seinem standardmäßigen Zustand, in dem es auf ein Ereignis zum Starten des Prozesses wartet.
    • • Im Schritt 2342 wird der Befehl "RE Editor" als Ergebnis einer Benutzeraktion festgestellt. Diese Aktion kann beispielsweise Folgende sein:
    • • eine bestimmte Tastenkombination auf der Tastatur 104 oder
    • • das Anklicken einer bestimmten Schaltfläche mit der Zeigeeinheit 105 oder
    • • ein anderes ähnliches Mittel, das hier nicht näher angegeben wird.
    • • Im Schritt 2343 wird der Parameter des Befehls abgerufen. Er entspricht einem zwingend notwendigen Parameter RE_name, der entweder einen reservierten Wert "NEW" oder einen anderen Wert annehmen kann, welcher dem Namen einer Zeichenfolge entspricht, der im Feld "Name" 2232 eines Datensatzes 2231 in der RSTMT-Tabelle 2230 vorgefunden wird. Dieser Parameter wird als eine lokale Variable abgelegt.
    • • Im Schritt 2344 werden einige lokale Variablen mit einem Anfangswert belegt: Die lokale Variable RE_meta wird auf den Wert "NO" gesetzt, die lokale variable RE_size wird auf den Wert 3 (drei) gesetzt, und die lokale Variable RE_rank wird auf den Wert 1 (eins) gesetzt.
    • • Im Schritt 2345 wird ein Test durchgeführt, um festzustellen, welchen Wert die lokale Variable RE_name angenommen hat. Wenn festgestellt wird, dass ihr Wert "NEW" lautet, wird die Steuerung dem Schritt 2349 übergeben; andernfalls wird die Steuerung dem Schritt 2346 übergeben.
    • • Im Schritt 2346 wird die RET-Tabelle 2210 nach einem Datensatz 2211 durchsucht, bei dem der Wert im Feld "Name" 2212 gleich dem von der lokalen Variablen RE_name angenommenen Wert ist. Wenn ein solcher Datensatz gefunden wird, wird die Steuerung dem Schritt 2348 übergeben; andernfalls wird die Steuerung dem Schritt 2347 übergeben.
    • • Im Schritt 2347 wird eine Ausnahmebedingungs-Behandlungsroutine aufgerufen, um diese "Should-not-occur"-Bedingung zu behandeln. Eine solche Operation hängt von der Ausführungsart ab und kann verschiedene Formen wie zum Beispiel die Anzeige eines Dialogfensters mit einer Fehlermeldung auf dem Bildschirm 106 annehmen. Daraufhin wird die Steuerung dem Schritt 2341 übergeben.
    • • Im Schritt 2348 wird die lokale Variable RE_meta entsprechend dem Wert des Attributs "META" 2218 im Feld "Type" 2217 des Datensatzes 2211, der im Schritt 2346 gefunden wurde, auf den Wert "YES" oder "NO" gesetzt,
    • • wird die lokale Variable RE_size auf den Wert gesetzt, der im Feld "Column #" 2216 des im Schritt 2346 gefundenen Datensatzes 2211 vorgefunden wird, und
    • • wird der Speicherplatz, auf den das Feld "Description Ptr" 2214 des im Schritt 2346 gefundenen Datensatzes 2211 zeigt, in einen Zwischenpufferspeicher kopiert, der als die lokale Variable RE_buffer abgelegt wird.
  • Daraufhin wird die Steuerung dem Schritt 2350 übergeben.
    • • Im Schritt 2349 wird entsprechend einer Namensfolge, die in einer bevorzugten Ausführungsform der vorliegenden Erfindung die Form "New XX" hat, ein neuer Name für das neu erzeugte RE festgelegt, wobei XX einem Zählerwert entspricht, der in Bezug auf alle Namen, die zuvor festgelegt und in den Feldern "Name" 702, 712, 722, 2212 und 2222 erfasst wurden, welche sich in den jeweiligen Datensätzen 701, 711, 721, 2211 und 2221 der jeweiligen Tabellen EFT 700, EPT 710, STT 720, RET 2210 und RSST 2220 befinden, die Unverwechselbarkeit des Namens sicherstellt. Ein anderes ähnliches herkömmliches Mittel könnte stattdessen ebenfalls verwendet werden, solange die Unverwechselbarkeit des neu erzeugten Namens sichergestellt wird. Dann wird der neue Name in der lokalen Variablen RE_name abgelegt. Anschließend wird im Hauptspeicher 102 Speicherbereich zugeordnet, um später den der Veranschaulichung dienenden Zellenbereich für das RE oder das RME abzulegen. Dieser zugeordnete Speicherbereich, der als die lokale Variable RE_buffer erfasst wird, ist ein Teil des Speicherbereichs, der der gerade geöffneten Datei des Tabellenkalkulationsprogramms entspricht. Als Nächstes wird in der RET-Tabelle 2210 ein neuer Datensatz 2211 angelegt, und dieser neue Datensatz 2211 wird wie folgt initialisiert:
    • • Das Feld "Name" 2212 wird auf den Wert der lokalen Variablen RE_name gesetzt;
    • • das Feld "Last Change Date" 2213 wird auf die Systemzeitreferenz gesetzt, die dem Zentralprozessor 101 bekannt ist;
    • • das Feld "Description Ptr" 2214 wird auf den Speicherplatz RE_buffer gesetzt, der soeben zugeordnet wurde;
    • • das Feld "Row #" 2215 wird auf den Wert 1 gesetzt (da die RSTs in der bevorzugten Ausführungsform der vorliegenden Erfindung in einer zweidimensionalen Umgebung verwaltet werden, würde dieses Feld die Anzahl der Zeilen enthalten, die für das erzeugte RE in einer dreidimensionalen Umgebung festgelegt wurden);
    • • das Feld "Column #" 2216 wird auf den Wert der lokalen Variablen RE_size gesetzt;
    • • das Feld "Type" 2217 wird wie folgt gesetzt: Das Attribut "META" 2218 wird auf den Wert der lokalen Variablen RE_meta gesetzt, und das Attribut "REFERENCED" 2219 wird wie folgt initialisiert:
    • • Das Teilfeld "OWN REFERENCE" (OR) 2219a wird mit einer Primzahl initialisiert, die noch keinem anderen OR-Teilfeld 709a oder 719a oder 729a oder 780a oder 2219a oder 2229a oder 2240a zugewiesen wurde. Verschiedene herkömmliche Verfahren, die hier nicht näher beschrieben werden, können zur Feststellung einer Primzahl angewendet werden.
    • • Das Teilfeld "FILIATION REFERENCE" (FR) 2219 wird entsprechend der folgenden Formel initialisiert, wobei die Gruppe F der Gruppe von STs entspricht, die gemäß der im Feld "Description Ptr" 2214 erfassten Struktur das neue RE oder Meta-Element bildet: FR = Πi∊F ORi × LCM({FRi})i∊F
    • • Das Teilfeld "INSTANCE REFERENCE" (IR) 2219c wird auf den Anfangswert 1 (eins) gesetzt.
    • • Das Teilfeld "REFERENCED OBJECT" (RO) 2219d wird mit der folgenden Formel initialisiert, wobei die Gruppe P der Gruppe der RSTs entspricht: RO = "YES" wenn LCM({FRi})i∊P Mod OR = 0; andernfalls ist RO = "NO".
    • • Das Teilfeld "SELECTED CHILDREN" (SC) 2219 wird mit der folgenden Formel initialisiert, wobei die Gruppe S der Gruppe der ausgewählten Objekte entspricht (deren Attribut "SELECTED" 2242 in der RSTMT-Tabelle 2230 den Wert "YES" hat). SC = "YES" wenn LCM({FRi})i∊S Mod OR = 0 "OR" RSTE_name ∊ S; andernfalls ist SC = "NO".
  • Daraufhin wird die Steuerung dem Schritt 2350 übergeben.
    • • Im Schritt 2350 wird das Dialogfeld 2321 des RE-Editors auf dem Bildschirm 106 angezeigt.
    • • Das Bezeichnungsfeld 2324 wird mit dem Wert der lokalen Variablen RE_name initialisiert.
    • • Die obere Optionsschaltfläche 2331 (beziehungsweise die untere Optionsschaltfläche 2330) wird mit einem schwarzen Punkt gekennzeichnet, wenn festgestellt wird, dass die lokale Variable RE_meta den Wert "NO" (beziehungsweise "YES") hat.
    • • In das Textfeld 2326 wird der Wert der lokalen Variablen RE_size eingegeben.
    • • Die Schaltfläche "Save" 2333 wird aktiviert, wenn festgestellt wird, dass die lokale Variable RE_size den gleichen Wert wie das Feld "Column #" 2216 des aktuellen Datensatzes 2211 hat, oder wenn festgestellt wird, dass das Teilfeld "REFERENCED OBJECT" (RO) 2219d des Attributs "REFERENCED" 2219 im Feld "Type" 2217 desselben Datensatzes 2211 den Wert "NO" hat, so dass jeder künftige Klick mit der Zeigeeinheit 105 auf diese Schaltfläche "Save" 2333 als ein gültiges Ereignis erkannt wird.
    • • Andernfalls wird die Schaltfläche "Save" 2333 deaktiviert (wenn festgestellt wird, dass die lokale Variable RE_size nicht den gleichen Wert wie das Feld "Column #" 2216 des aktuellen Datensatzes 2211 hat, und wenn festgestellt wird, dass das Teilfeld "REFERENCED OBJECT" (RO) 2219d des Attributs "REFERENCED" 2219 im Feld "Type" 2217 desselben Datensatzes 2211 den Wert "YES" hat), so dass jeder künftige Klick mit der Zeigeeinheit 105 auf diese Schaltfläche "Save" 2333 nicht als ein Ereignis erkannt wird.
    • • Das Textfeld 2335 wird mit dem Wert der lokalen Variablen RE_rank initialisiert.
    • • Das Listenfeld 2334 wird mit dem Inhalt der Zelle initialisiert, die zu RE_buffer gehört und deren Versatz (Offset) gleich dem Wert von RE_rank ist. Die Liste der Namen, die in diesem Listenfeld 2334 verfügbar sind (durch Klick auf das Drehfeld 2328), setzt sich aus den Namen der STs zusammen, die in der STT-Tabelle 720 erfasst werden.
    • • Im Schritt 2351 wartet das Verfahren auf eine Benutzeraktion im Dialogfeld 2321 des RE-Editors. Eine solche Benutzeraktion ist üblicherweise das Ergebnis eines Klicks mit der Zeigeeinheit 105, wobei dieser Auslöser jedoch auch andere ähnliche Formen annehmen kann wie zum Beispiel, jedoch nicht auf diese beschränkt, eine bestimmte Tastenkombination auf der Tastatur 104 oder irgendein anderes ähnliches Mittel, das hier nicht näher angegeben wird.
    • • Im Schritt 2352 wird eine Benutzeraktion im Dialogfeld 2321 des RE-Editors festgestellt.
    • • Wenn die Benutzeraktion ein Klick auf das Drehfeld 2328 ist, um den Namen einer ST auszuwählen, wird die Steuerung dem Schritt 2353 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Save" 2333 ist, wird die Steuerung dem Schritt 2354 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Save As" 2332 ist, wird die Steuerung dem Schritt 2355 übergeben;
    • • wenn die Benutzeraktion ein Klick auf das Drehfeld 2329 ist, wird die Steuerung dem Schritt 2358 übergeben;
    • • wenn die Benutzeraktion ein Klick auf das Drehfeld 2327 ist, wird die Steuerung dem Schritt 2359 übergeben;
    • • wenn die Benutzeraktion ein Klick auf eine der beiden Optionsschaltflächen 2330 oder 2331 ist, wird die Steuerung dem Schritt 2360 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Done" 2323 oder auf die Schaltfläche 2322 zum Schließen des Fensters ist, wird die Steuerung dem Schritt 2361 übergeben.
    • • Im Schritt 2353 wird die lokale Variable RE_buffer aktualisiert, indem der Inhalt der Zelle, deren Versatz gleich dem Wert der lokalen Variablen RE_rank ist, gleich dem Inhalt des Listenfeldes 2334 gesetzt wird. Daraufhin wird die Steuerung dem Schritt 2350 übergeben.
    • • Im Schritt 2354 wird die RET-Tabelle 2210 aktualisiert und als Teil der Datei des Tabellenkalkulationsprogramms gespeichert, indem der Datensatz 2211 aufgefrischt wird, dessen Feld "Name" 2212 den gleichen Wert wie die lokale Variable RE_name hat. Dazu werden
    • • das Feld "Last Change Date" 2213 auf die Systemzeitreferenz gesetzt, die dem Zentralprozessor 101 bekannt ist;
    • • das Feld "Column #" 2216 auf den Wert der lokalen Variablen RE_size gesetzt; und
    • • das Feld "Type" 2217 wie folgt gesetzt: Das Attribut "META" 2218 wird auf den Wert der lokalen Variablen RE_meta gesetzt.
  • Darüber hinaus wird der Zellenbereich RE_buffer, der die aktuelle Definition des RE oder des Meta-Elements darstellt, an den Speicherplatz kopiert, auf den das Feld "Description Ptr" 2214 zeigt. Anschließend wird die Steuerung dem Schritt 2350 übergeben.
    • • Im Schritt 2355 wird ein Test an dem im Textfeld 2325 vorgefundenen Wert durchgeführt, um festzustellen, ob er einem gültigen neuen Namen entspricht. Die entsprechenden Kriterien sind von der Ausführungsart abhängig und können verschiedene Formen annehmen, solange es sich bei dem neu vorgeschlagenen Namen im Hinblick auf alle bereits festgelegten und in den Feldern "Name" 702, 712, 722, 2212 und 2222 erfassten Namen um eine eindeutige Zeichenfolge handelt. Wenn die Gültigkeit und die Unverwechselbarkeit nachgewiesen sind, wird die Steuerung dem Schritt 2356 übergeben; andernfalls wird sie dem Schritt 2357 übergeben.
    • • Im Schritt 2356 wird im Hauptspeicher 102 Speicherbereich zugeordnet, um später den der Veranschaulichung dienenden Zellenbereich für das EF oder das MEF abzulegen. Dieser zugeordnete Speicherbereich ist ein Teil des Speicherbereichs, der der gerade geöffneten Datei des Tabellenkalkulationsprogramms entspricht. Dann wird in der RET-Tabelle 2210 ein neuer Datensatz 2211 angelegt, der als Teil der Datei des Tabellenkalkulationsprogramms gespeichert wird, und dieser neue Datensatz 2211 wird wie folgt initialisiert:
    • • Das Feld "Name" 2212 wird auf den im Textfeld 2325 vorgefundenen und im Schritt 2355 für gültig erklärten Wert gesetzt;
    • • das Feld "Last Change Date" 2213 wird auf die Systemzeitreferenz gesetzt, die dem Zentralprozessor 101 bekannt ist;
    • • das Feld "Description Ptr" 2214 wird auf den Speicherplatz RE_buffer gesetzt, der soeben zugeordnet wurde;
    • • das Feld "Row #" 2215 wird auf den Wert 1 gesetzt (da die RSTs in der bevorzugten Ausführungsform der vorliegenden Erfindung in einer zweidimensionalen Umgebung verwaltet werden, würde dieses Feld die Anzahl der Zeilen enthalten, die für das erzeugte RE in einer dreidimensionalen Umgebung festgelegt wurden);
    • • das Feld "Column #" 2216 wird auf den Wert der lokalen Variablen RE_size gesetzt;
    • • das Feld "Type" 2217 wird wie folgt gesetzt: Das Attribut "META" 2218 wird auf den Wert der lokalen Variablen RE_meta gesetzt, und das Attribut "REFERENCED" 2219 wird wie folgt initialisiert:
    • • Das Teilfeld "OWN REFERENCE" (OR) 2219a wird mit einer Primzahl initialisiert, die noch keinem anderen Teilfeld 709a oder 719a oder 729a oder 780a oder 2219a oder 2229a oder 2240a zugewiesen wurde. Verschiedene herkömmliche Verfahren, die hier nicht näher beschrieben werden, können zur Feststellung einer Primzahl angewendet werden. Das Teilfeld "FILIATION REFERENCE" (FR) 2219b wird
    • • entsprechend der folgenden Formel initialisiert, wobei die Gruppe F der Gruppe von STs entspricht, die gemäß der im Feld "Description Ptr" 2214 erfassten Struktur das neue RE oder Meta-Element bildet: FR = Πi∊F ORi × LCM({FRi})i∊F
    • • Das Teilfeld "INSTANCE REFERENCE" (IR) 2219c wird auf den Anfangswert 1 (eins) gesetzt.
    • • Das Teilfeld "REFERENCED OBJECT" (RO) 2219d wird mit der folgenden Formel initialisiert, wobei die Gruppe P der Gruppe der RSTs entspricht: RO = "YES" wenn LCM({FRi}i∊P Mod OR = 0; andernfalls ist RO = "NO".
    • • Das Teilfeld "SELECTED CHILDREN" (SC) 2219e wird mit der folgenden Formel initialisiert, wobei die Gruppe S der Gruppe der ausgewählten Objekte entspricht (deren Attribut SELECTED" 2242 in der RSTMT-Tabelle 2230 den Wert "YES" hat). SC = "YES" wenn LCM({FRi})i∊S Mod OR = 0 #OR# RSTE_name ∊ S; andernfalls ist SC = "NO".
  • Daraufhin wird die Steuerung dem Schritt 2350 übergeben.
    • • Im Schritt 2357 wird eine Warnmeldung ausgegeben, um den Benutzer darauf aufmerksam zu machen, dass im Textfeld 2325 ein gültiger und eindeutiger Name angegeben werden muss, bevor die Schaltfläche "Save As" 2332 angeklickt wird. Dies kann üblicherweise geschehen, indem auf dem Bildschirm 106 eine Warnmeldung in einem Dialogfenster oder in einem Bereich der Statuszeile angezeigt wird, aber ein anderes ähnliches Mittel könnte stattdessen ebenfalls verwendet werden. Sobald der Benutzer diesen Hinweis über ein herkömmliches Mittel wie zum Beispiel einen Klick mit der Zeigeeinheit 105 auf eine Schaltfläche "OK", die in einem Dialogfenster mit einer Warnmeldung vorhanden ist, oder über ein anderes ähnliches Mittel bestätigt hat, wird die Steuerung dem Schritt 2350 übergeben.
    • • Im Schritt 2358 wird der Wert der lokalen Variablen RE_rank um 1 (eins) verringert, solange er absolut positiv bleibt, wenn der Benutzer mit der Zeigeeinheit 106 auf die Seite des Drehfelds 2329 mit dem Abwärtspfeil geklickt hat, und der Wert der lokalen Variablen RE_rank wird um 1 (eins) erhöht, solange er geringer als der Wert oder gleich dem Wert der lokalen Variablen RE_size bleibt, wenn der Benutzer mit der Zeigeeinheit 106 auf die Seite des Drehfelds 2329 mit dem Aufwärtspfeil geklickt hat. Dann wird die Steuerung dem Schritt 2350 übergeben.
    • • Im Schritt 2359 wird der Wert der lokalen Variablen RE_size entsprechend der von der Zeigeeinheit 105 auf dem Drehfeld 2327 vorgegebenen Richtung (nach oben oder nach unten) entweder um 1 (eins) erhöht oder verringert, und dies, solange ihr Wert positiv und kleiner als oder gleichgroß wie ein oberer Grenzwert bleibt, der in einer bevorzugten Ausführungsform der vorliegenden Erfindung auf 254 gesetzt wird. Daraufhin wird die Steuerung dem Schritt 2350 übergeben.
    • • Im Schritt 2360 wird die lokale Variable RE_meta aktualisiert, so dass ihr Wert auf "YES" (beziehungsweise "NO") gesetzt wird, wenn die untere Optionsschaltfläche 2330 (beziehungsweise die obere Optionsschaltfläche 2331) angeklickt wurde. Daraufhin wird die Steuerung dem Schritt 2350 übergeben.
    • • Im Schritt 2361 wird das Dialogfeld 2321 des RE-Editors geschlossen, so dass es vom Bildschirm 106 verschwindet. Schließlich wird die Steuerung wieder dem ersten Schritt 2341 zur Verarbeitung eines künftigen RE-Editor-Befehls übergeben.
  • E12. STI-Spalten-/Zeilenzählverfahren
  • Das Verfahren zum Zählen der Anzahl der Spalten oder Zeilen in einer STI, das in der bevorzugten Ausführungsform der vorliegenden Erfindung zur Anwendung kommt, ist in den Flussdiagrammen 2400 und 2420 von 22A und 22B zusammengefasst. Diese Verfahren können als Verarbeitung der Funktionen STI_Row und STI_Col betrachtet werden.
    • • Im Schritt 2401 befindet sich das erste Verfahren in seinem standardmäßigen Zustand, in dem es auf einen Aufruf der Funktion STI_Row wartet.
    • • Im Schritt 2402 wird der Aufruf der Funktion STI_Row als Ergebnis einer Benutzeraktion festgestellt. Die Funktion wird mit zwei Parametern mit der Bezeichnung ST_Name und STI Element aufgerufen.
    • • Im Schritt 2403 wird der erste Datensatz 721 der STT-Tabelle 720 als Curr_Record festgelegt.
    • • Im Schritt 2404 werden die Felder "Name" 722, "Min Element#" 725 und "Max Element#" 726 des Datensatzes Curr_Record 721 jeweils als die lokalen Variablen Curr_Name, Curr_Min und Curr_Max festgelegt.
    • • Im Schritt 2405 wird ein Test durchgeführt, um zu prüfen, ob der Wert der lokalen Variablen Curr_Name gleich dem Wert des Funktionsparameters ST Name ist. Wenn dies der Fall ist, wird die Steuerung dem Schritt 2409 übergeben; andernfalls wird die Steuerung dem Schritt 2406 übergeben.
    • • Im Schritt 2406 wird ein Test durchgeführt, um zu prüfen, ob der Datensatz Curr_Record 721 der letzte Datensatz der STT-Tabelle 720 ist. Wenn ja, wird die Steuerung dem Schritt 2408 übergeben; andernfalls wird die Steuerung dem Schritt 2407 übergeben.
    • • Im Schritt 2407 wird der Datensatz, der auf den Datensatz Curr_Record in der STT-Tabelle 720 folgt, der neue Datensatz Curr_Record 721. Daraufhin wird die Steuerung dem Schritt 2404 übergeben.
    • • Im Schritt 2408 wird die lokale Variable STI_Row auf den Wert 0 (null) gesetzt. Daraufhin wird die Steuerung dem Schritt 2412 übergeben.
    • • Im Schritt 2409 wird der Zellenbereich, auf den das Feld "Description Ptr" 724 des Datensatzes Curr_Record 721 zeigt, als STDT_address festgelegt.
    • • Im Schritt 2410 wird die lokale Variable Element_Nbr auf den Wert des Eingabeparameters STI_Element gesetzt, dessen oberer Grenzwert die lokale Variable Curr_Max und dessen unterer Grenzwert die lokale Variable Curr_Min bildet.
    • • Im Schritt 2411 wird die lokale Variable STI_row auf die Anzahl der Zeilen des Zellenbereichs STDT_address gesetzt, um den Wert der lokalen Variablen STI_Element erhöht und um 1 (eins) verringert.
    • • Im Schritt 2412 wird die Ausführung der Funktion STI_Row beendet, wenn die Steuerung wieder dem Aufrufenden der Funktion übergeben wird.
    • • Im Schritt 2421 befindet sich das zweite Verfahren in seinem standardmäßigen Zustand, in dem es auf einen Aufruf der Funktion STI_Col wartet.
    • • Im Schritt 2422 wird der Aufruf der Funktion STI_Col als Ergebnis einer Benutzeraktion festgestellt. Die Funktion wird mit einem Parameter mit der Bezeichnung ST_Name aufgerufen.
    • • Im Schritt 2423 wird der erste Datensatz 721 der STT-Tabelle 720 als Curr_Record festgelegt.
    • • Im Schritt 2424 wird das Feld "Name" 722 des Datensatzes Curr_Record 721 als die lokale Variable Curr_Name festgelegt.
    • • Im Schritt 2425 wird ein Test durchgeführt, um zu prüfen, ob der Wert der lokalen Variablen Curr_Name gleich dem Wert des Funktionsparameters ST_Name ist. Wenn dies der Fall ist, wird die Steuerung dem Schritt 2429 übergeben; andernfalls wird die Steuerung dem Schritt 2426 übergeben.
    • • Im Schritt 2426 wird ein Test durchgeführt, um zu prüfen, ob der Datensatz Curr_Record 721 der letzte Datensatz der STT-Tabelle 720 ist. Wenn ja, wird die Steuerung dem Schritt 2428 übergeben; andernfalls wird die Steuerung dem Schritt 2427 übergeben.
    • • Im Schritt 2427 wird der Datensatz, der auf den Datensatz Curr_Record in der STT-Tabelle 720 folgt, der neue Datensatz Curr_Record 721. Daraufhin wird die Steuerung dem Schritt 2424 übergeben.
    • • Im Schritt 2428 wird die lokale Variable STI_Row auf den Wert 0 (null) gesetzt. Daraufhin wird die Steuerung dem Schritt 2431 übergeben.
    • • Im Schritt 2429 wird der Zellenbereich, auf den das Feld "Description Ptr" 724 des Datensatzes Curr_Record 721 zeigt, als STDT_address festgelegt.
    • • Im Schritt 2430 wird die lokale Variable STI_col auf die Anzahl der Spalten des Zellenbereichs STDT_address gesetzt.
    • • Im Schritt 2431 wird die Ausführung der Funktion STI_Col beendet, wenn die Steuerung wieder dem Aufrufenden der Funktion übergeben wird.
  • ALTERNATIVE AUSFÜHRUNGSFORMEN
  • Die Verfahren und die Systeme gemäß der vorliegenden Erfindung können vorteilhaft in Umgebungen eingesetzt werden, in denen Datenelemente als senkrecht strukturierte zweidimensionale Tabellen organisiert werden. Die Verfahren und die Systeme gemäß der vorliegenden Erfindung können vorteilhaft in Umgebungen eingesetzt werden, in denen Datenelemente als mehrdimensionale Tabellen, die mehr als zwei Dimensionen haben, organisiert werden. Zwar wurde die Erfindung insbesondere mit Bezug auf eine bevorzugte Ausführungsform gezeigt und beschrieben, doch versteht es sich, dass verschiedene Änderungen an der Form und an den Einzelheiten der bevorzugten Ausführungsform vorgenommen werden können, ohne vom Umfang der Erfindung abzuweichen.

Claims (13)

  1. Verfahren in einer mehrdimensionalen elektronischen Datentabelle, die eine Vielzahl von Daten umfasst, wobei das Verfahren zur Verwaltung von Einfügeoperationen in einer rekursiven skalierbaren Vorlageninstanz dient; wobei eine rekursive skalierbare Vorlageninstanz eine veränderliche Anzahl von zusammenhängenden rekursiven Elementinstanzen umfasst, die geordnet und entlang einer ersten Dimension der Datentabelle ausgerichtet und entsprechend einer rekursiven skalierbaren Vorlage strukturiert werden; wobei die rekursive skalierbare Vorlage ein rekursives Element umfasst, das eine skalierbare Vorlage oder eine Vielzahl von skalierbaren Vorlagen enthält; wobei jede rekursive Elementinstanz eine veränderliche Größe entlang der ersten Dimension der Datentabelle und eine gleiche Größe entlang einer zweiten Dimension der Datentabelle hat; wobei eine rekursive Elementinstanz eine skalierbare Vorlageninstanz oder eine Vielzahl von skalierbaren Vorlageninstanzen umfasst; wobei jede skalierbare Vorlageninstanz einer jeden rekursiven Elementinstanz entlang der ersten Dimension der Datentabelle ausgerichtet wird; wobei jede skalierbare Vorlageninstanz in jeder rekursiven Elementinstanz entlang einer zweiten Dimension der Datentabelle ausgerichtet wird; wobei eine skalierbare Vorlageninstanz eine veränderliche Anzahl von Elementen umfasst, die entsprechend einer skalierbaren Vorlage strukturiert werden; wobei ein Element als ein Bereich von Daten festgelegt wird; wobei ein Bereich von Daten ein Datum oder eine Vielzahl von Daten umfasst, wobei das Verfahren die folgenden Schritte umfasst: • Feststellen eines Einfügebefehls, um ein zusammenhängendes Element oder eine Vielzahl von zusammenhängenden Elementen nach oder vor einem ausgewählten Element in eine skalierbare Vorlageninstanz einer rekursiven Elementinstanz einzufügen; • Kennzeichnen: • der skalierbaren Vorlageninstanz, in die das eine Element oder eine Vielzahl von Elementen eingefügt werden soll; • des ausgewählten Elements in der skalierbaren Vorlageninstanz, nach oder vor dem das eine Element oder eine Vielzahl von Elementen eingefügt werden muss; • der skalierbaren Vorlage, die zu der skalierbaren Vorlageninstanz gehört; • Kennzeichnen: • der rekursiven skalierbaren Vorlageninstanz und der rekursiven Elementinstanz, die die gekennzeichnete skalierbare Vorlageninstanz umfasst; • Einfügen von einem Element oder von einer Vielzahl von Elementen in die gekennzeichnete skalierbare Vorlageninstanz nach oder vor dem ausgewählten Element, welches/welche entsprechend der skalierbaren Vorlage, die zu der skalierbaren Vorlageninstanz gehört, strukturiert wird; • Anpassen der Größe der gekennzeichneten rekursiven Elementinstanz entlang der ersten Dimension der Datentabelle entsprechend der Größe der größten skalierbaren Vorlageninstanz in der rekursiven Elementinstanz, wobei alle rekursiven Elementinstanzen der gekennzeichneten rekursiven skalierbaren Vorlageninstanz zusammenhängend bleiben, ohne einander zu überlappen.
  2. Verfahren nach dem vorhergehenden Anspruch, wobei die rekursive skalierbare Vorlageninstanz des Weiteren einen Kopfzeilenteil und/oder einen Fußzeilenteil umfasst; wobei der Kopfzeilenteil der rekursiven skalierbaren Vorlage eine vorher festgelegte Anzahl von rekursiven Meta-Elementen umfasst; wobei der Fußzeilenteil der skalierbaren Vorlage eine vorher festgelegte Anzahl von rekursiven Meta-Elementen umfasst; wobei ein rekursives Meta-Element eine skalierbare Vorlage oder eine Vielzahl von skalierbaren Vorlagen umfasst; wobei das Verfahren die folgenden weiteren Schritte umfasst: • Feststellen eines Einfügebefehls, um ein zusammenhängendes Element oder eine Vielzahl von zusammenhängenden Elementen nach oder vor einem ausgewählten Element in eine skalierbare Vorlageninstanz einer rekursiven Meta-Elementinstanz einzufügen; • Kennzeichnen: • der skalierbaren Vorlageninstanz, in die das eine Element oder eine Vielzahl von Elementen eingefügt werden soll; • des ausgewählten Elements in der skalierbaren Vorlageninstanz, nach oder vor dem das eine Element oder eine Vielzahl von Elementen eingefügt werden muss; • der skalierbaren Vorlage, die zu der skalierbaren Vorlageninstanz gehört; • Kennzeichnen: • der rekursiven skalierbaren Vorlageninstanz und der rekursiven Meta-Elementinstanz, die die gekennzeichnete skalierbare Vorlageninstanz umfasst; • Einfügen von einem Element oder von einer Vielzahl von Elementen in die gekennzeichnete skalierbare Vorlageninstanz nach oder vor dem ausgewählten Element, welches/welche entsprechend der skalierbaren Vorlage, die zu der skalierbaren Vorlageninstanz gehört, strukturiert wird; • Anpassen der Größe der gekennzeichneten rekursiven Meta-Elementinstanz entlang der ersten Dimension der Datentabelle entsprechend der Größe der größten skalierbaren Vorlageninstanz der rekursiven Meta-Elementinstanz, wobei alle rekursiven Elementinstanzen und alle rekursiven Meta-Elementinstanzen der gekennzeichneten rekursiven skalierbaren Vorlageninstanz zusammenhängend bleiben, ohne einander zu überlappen.
  3. Verfahren nach einem der vorhergehenden Ansprüche, das die folgenden weiteren Schritte umfasst: • Feststellen eines Einfügebefehls, um eine zusammenhängende rekursive Elementinstanz oder eine Vielzahl von zusammenhängenden rekursiven Elementinstanzen in eine rekursive skalierbare Vorlangeninstanz nach oder vor einer ausgewählten rekursiven Elementinstanz einzufügen; • Kennzeichnen: • der rekursiven skalierbaren Vorlageninstanz, in die die eine rekursive Elementinstanz oder eine Vielzahl von rekursiven Elementinstanzen eingefügt werden soll; • der ausgewählten rekursiven Elementinstanz in der rekursiven skalierbaren Vorlageninstanz, nach oder vor der die eine rekursive Elementinstanz oder eine Vielzahl von rekursiven Elementinstanzen eingefügt werden muss; • der rekursiven skalierbaren Vorlage, die zu der rekursiven skalierbaren Vorlageninstanz gehört; • Einfügen von einer zusammenhängenden rekursiven Elementinstanz oder von einer Vielzahl von zusammenhängenden rekursiven Elementinstanzen in die rekursive skalierbare Vorlageninstanz nach oder vor der ausgewählten rekursiven Elementinstanz; • entlang der ersten Dimension der Datentabelle Ausrichten der einen eingefügten rekursiven Elementinstanz oder der Vielzahl der eingefügten rekursiven Elementinstanzen auf die bereits vorhandene rekursive Elementinstanz oder die Vielzahl der bereits vorhandenen rekursiven Elementinstanzen; wobei die eine eingefügte rekursive Elementinstanz oder die Vielzahl der eingefügten rekursiven Elementinstanzen gleich groß wie die entlang der zweiten Dimension der Datentabelle bereits vorhandene rekursive Elementinstanz oder die Vielzahl der bereits vorhandenen rekursiven Elementinstanzen ist; • Strukturieren einer jeden eingefügten rekursiven Elementinstanz entsprechend dem rekursiven Element, das für die gekennzeichnete rekursive skalierbare Vorlage festgelegt wurde.
  4. Verfahren nach dem vorhergehenden Anspruch, das die folgenden weiteren Schritte umfasst: • Ausrichten einer jeden skalierbaren Vorlageninstanz einer jeden eingefügten rekursiven Elementinstanz entlang der ersten Dimension der Datentabelle; • innerhalb einer jeden eingefügten rekursiven Elementinstanz Ausrichten einer jeden skalierbaren Vorlageninstanz entlang der zweiten Dimension der Datentabelle.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei in einer rekursiven skalierbaren Vorlageninstanz der Schritt des Einfügens von einem zusammenhängenden Element oder von einer Vielzahl von zusammenhängenden Elementen in eine skalierbare Vorlageninstanz oder des Einfügens von einer zusammenhängenden rekursiven Elementinstanz oder von einer Vielzahl von zusammenhängenden rekursiven Elementinstanzen den folgenden weiteren Schritt umfasst: • Feststellen, ob diese Einfügeoperation eine andere vorhandene rekursive skalierbare Vorlageninstanz in der Datentabelle beschädigt, wobei eine rekursive skalierbare Vorlageninstanz beschädigt ist, wenn die rekursiven Elementinstanzen nicht mehr entsprechend der zugehörigen rekursiven skalierbaren Vorlage strukturiert sind.
  6. Verfahren nach dem vorhergehenden Anspruch, wobei der Schritt der Feststellung, ob die Einfügeoperation eine andere vorhandene rekursive skalierbare Vorlageninstanz in der Datentabelle beschädigt, den folgenden weiteren Schritt umfasst: • Abbrechen der Einfügeoperation, wenn die Einfügeoperation eine rekursive skalierbare Vorlageninstanz, die als eine kritische Instanz festgelegt ist, beschädigt.
  7. verfahren nach dem vorhergehenden Anspruch, das für jede rekursive skalierbare Vorlageninstanz den folgenden Schritt umfasst: • Festlegen einer jeden der einen rekursiven skalierbaren Vorlageninstanz oder der Vielzahl der rekursiven skalierbaren Vorlageninstanzen als eine kritische Instanz oder als eine unkritische Instanz.
  8. Verfahren nach einem der vorhergehenden Ansprüche, wobei in einer rekursiven skalierbaren Vorlageninstanz der Schritt des Einfügens von einem zusammenhängenden Element oder von einer Vielzahl von zusammenhängenden Elementen in eine skalierbare Vorlageninstanz oder des Einfügens von einer zusammenhängenden rekursiven Elementinstanz oder von einer Vielzahl von zusammenhängenden rekursiven Elementinstanzen den folgenden weiteren Schritt umfasst: • Feststellen, ob diese Einfügeoperation eine andere vorhandene skalierbare Vorlageninstanz in der Datentabelle beschädigt, wobei eine skalierbare Vorlageninstanz beschädigt ist, wenn die Elemente nicht mehr entsprechend der zugehörigen skalierbaren Vorlage strukturiert sind.
  9. Verfahren nach dem vorhergehenden Anspruch, wobei der Schritt der Feststellung, ob die Einfügeoperation eine andere vorhandene skalierbare Vorlageninstanz in der Datentabelle beschädigt, den folgenden weiteren Schritt umfasst: • Abbrechen der Einfügeoperation, wenn die Einfügeoperation eine skalierbare Vorlageninstanz, die als eine kritische Instanz festgelegt ist, beschädigt.
  10. Verfahren nach einem der vorhergehenden Ansprüche, wobei die mehrdimensionale elektronische Datentabelle ein elektronisches Arbeitsblatt ist, das eine Vielzahl von Zellen umfasst, die entlang einer jeden Dimension durch eine Zellenadresse gekennzeichnet sind.
  11. Verfahren nach dem vorhergehenden Anspruch, wobei eine skalierbare Vorlageninstanz eine veränderliche Anzahl von zusammenhängenden Elementen gleicher Größe umfasst, die geordnet und entlang einer bestimmten Dimension eines Arbeitsblatts ausgerichtet und entsprechend einer skalierbaren Vorlage strukturiert werden; wobei ein Element als ein Bereich von Zellen festgelegt wird; wobei die skalierbare Vorlage ein Elementformat und/oder ein Elementprofil umfasst; wobei ein Elementformat für jede Zelle in jedem Element ein Formatattribut oder eine Vielzahl von Formatattributen festlegt; wobei ein Elementprofil für jede Zelle in jedem Element einen Zelleninhalt und ein Zellenziel festlegt; wobei das Zellenziel angibt, ob die Zelle eine Eingabezelle zur Aufnahme eines Eintrags oder eine Ausgabezelle zur Erzeugung eines Ergebnisses ist.
  12. System, das ein Mittel umfasst, welches zur Durchführung der Schritte des Verfahrens nach einem der vorhergehenden Ansprüche ausgelegt ist.
  13. Rechnerprogramm, das Befehle zur Durchführung der Schritte des Verfahrens nach einem der Ansprüche 1 bis 11 umfasst, wenn das Rechnerprogramm ausgeführt wird.
DE602004003139T 2003-04-18 2004-02-27 System und verfahren für eine datentabelle zur verwaltung von einfügeoperationen in rekursiven skalierbaren vorlageninstanzen Expired - Lifetime DE602004003139T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP03368038 2003-04-18
EP03368038 2003-04-18
PCT/EP2004/003034 WO2004092974A2 (en) 2003-04-18 2004-02-27 System and method in a data table for managing insertion operations in recursive scalable template instances

Publications (2)

Publication Number Publication Date
DE602004003139D1 DE602004003139D1 (de) 2006-12-21
DE602004003139T2 true DE602004003139T2 (de) 2007-04-19

Family

ID=33186005

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004003139T Expired - Lifetime DE602004003139T2 (de) 2003-04-18 2004-02-27 System und verfahren für eine datentabelle zur verwaltung von einfügeoperationen in rekursiven skalierbaren vorlageninstanzen

Country Status (6)

Country Link
US (1) US7487437B2 (de)
EP (1) EP1618488B1 (de)
CN (1) CN100378723C (de)
AT (1) ATE344946T1 (de)
DE (1) DE602004003139T2 (de)
WO (1) WO2004092974A2 (de)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7941542B2 (en) * 2002-09-06 2011-05-10 Oracle International Corporation Methods and apparatus for maintaining application execution over an intermittent network connection
US7912899B2 (en) * 2002-09-06 2011-03-22 Oracle International Corporation Method for selectively sending a notification to an instant messaging device
US7412481B2 (en) 2002-09-16 2008-08-12 Oracle International Corporation Method and apparatus for distributed rule evaluation in a near real-time business intelligence system
US8255454B2 (en) * 2002-09-06 2012-08-28 Oracle International Corporation Method and apparatus for a multiplexed active data window in a near real-time business intelligence system
US7899879B2 (en) 2002-09-06 2011-03-01 Oracle International Corporation Method and apparatus for a report cache in a near real-time business intelligence system
US7945846B2 (en) 2002-09-06 2011-05-17 Oracle International Corporation Application-specific personalization for data display
US8165993B2 (en) * 2002-09-06 2012-04-24 Oracle International Corporation Business intelligence system with interface that provides for immediate user action
US7668917B2 (en) * 2002-09-16 2010-02-23 Oracle International Corporation Method and apparatus for ensuring accountability in the examination of a set of data elements by a user
US7401158B2 (en) * 2002-09-16 2008-07-15 Oracle International Corporation Apparatus and method for instant messaging collaboration
US7904823B2 (en) * 2003-03-17 2011-03-08 Oracle International Corporation Transparent windows methods and apparatus therefor
US8621385B2 (en) 2004-05-21 2013-12-31 Sap Ag System and method for controlling a display of data
CA2614059C (en) * 2005-03-11 2014-11-04 Orangescape Technologies Limited A system and method of defining a hierarchical datamodel and related computation and instruction rules using spreadsheet like user interface
US20070050471A1 (en) * 2005-08-31 2007-03-01 Microsoft Corporation Portable Remoting Component With A Scaleable Feature Set
US8286089B2 (en) * 2005-12-30 2012-10-09 Research In Motion Limited Representing new messages on a communication device
US7965275B1 (en) * 2006-01-13 2011-06-21 Intuit Inc. User interface for lenient exception feedback
US20090049375A1 (en) * 2007-08-18 2009-02-19 Talario, Llc Selective processing of information from a digital copy of a document for data entry
US20100198823A1 (en) * 2009-02-05 2010-08-05 Tsoukalas Kathleen J Systems and methods to automatically generate enhanced information associated with a selected web table
US8707156B2 (en) * 2009-04-02 2014-04-22 Business Objects, S.A. Render engine for spreadsheet
US9275031B2 (en) * 2009-10-09 2016-03-01 Microsoft Technology Licensing, Llc Data analysis expressions
KR101704531B1 (ko) * 2010-04-22 2017-02-08 삼성전자주식회사 휴대 단말기의 텍스트 정보 표시 방법 및 장치
US20130117650A1 (en) * 2011-03-29 2013-05-09 C. James MacLennan Generating reproducible reports used in predictive modeling actions
US10073824B1 (en) * 2013-11-06 2018-09-11 Apttex Corporation Method for building a spreadsheet template with dynamic data transfer capabilities to a remote application
US10067928B1 (en) * 2013-11-06 2018-09-04 Apttex Corporation. Creating a spreadsheet template for generating an end user spreadsheet with dynamic cell dimensions retrieved from a remote application
US10789542B2 (en) * 2015-06-05 2020-09-29 Apple Inc. System and method for predicting changes in network quality
US11488727B2 (en) * 2018-10-30 2022-11-01 LogicMatter, Inc. Immutable system of records for IoT/control systems for compliance

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5033009A (en) 1989-03-03 1991-07-16 Dubnoff Steven J System for generating worksheet files for electronic spreadsheets
US5272628A (en) 1990-04-16 1993-12-21 Microsoft Corporation Method and system for aggregating tables having dissimilar formats
US5613131A (en) 1993-01-29 1997-03-18 Microsoft Corporation Auto-formatting of tables in a spreadsheet program
FR2721728B1 (fr) 1994-06-28 1996-07-26 Bull Sa Procédé et dispositif de génération automatique de feuilles de calcul.
US5754858A (en) 1996-05-01 1998-05-19 Microsoft Corporation Customizable application project generation process and system
JP3058129B2 (ja) * 1997-07-04 2000-07-04 日本電気株式会社 データ計算装置及びプログラムを記録した機械読み取り可能な記録媒体
US7089256B2 (en) * 2000-07-11 2006-08-08 Knowledge Dynamics, Inc. Universal data editor
US7051276B1 (en) * 2000-09-27 2006-05-23 Microsoft Corporation View templates for HTML source documents
US6988241B1 (en) * 2000-10-16 2006-01-17 International Business Machines Corporation Client side, web-based spreadsheet
US7415664B2 (en) * 2001-08-09 2008-08-19 International Business Machines Corporation System and method in a spreadsheet for exporting-importing the content of input cells from a scalable template instance to another
US7246311B2 (en) * 2003-07-17 2007-07-17 Microsoft Corporation System and methods for facilitating adaptive grid-based document layout

Also Published As

Publication number Publication date
DE602004003139D1 (de) 2006-12-21
US20070016849A1 (en) 2007-01-18
EP1618488B1 (de) 2006-11-08
CN1774712A (zh) 2006-05-17
EP1618488A2 (de) 2006-01-25
WO2004092974A2 (en) 2004-10-28
WO2004092974A3 (en) 2005-08-18
US7487437B2 (en) 2009-02-03
CN100378723C (zh) 2008-04-02
ATE344946T1 (de) 2006-11-15

Similar Documents

Publication Publication Date Title
DE602004003139T2 (de) System und verfahren für eine datentabelle zur verwaltung von einfügeoperationen in rekursiven skalierbaren vorlageninstanzen
DE60008498T2 (de) Verfahren und System zum Addieren und Löschen von Elementen in einem Bereich von mit Namen versehenen Zellen entsprechend verschiedener Methoden in einem elektronischen Kalkulationsblatt
DE19842688B4 (de) Verfahren zum Filtern von Daten, die von einem Datenanbieter stammen
DE60319229T2 (de) Verfahren und system zur erweiterung der api eines dateisystems
DE60133343T2 (de) Verfahren und System in einem elektronischen Kalkulationsblatt für die Handhabung von benutzerdefinierten Optionen in einer Ausschneiden-Kopieren-Einfügen-Funktion
DE10135445B4 (de) Integriertes Verfahren für das Schaffen einer aktualisierbaren Netzabfrage
DE60308952T2 (de) Verfahren und System zur Anzeige und Verknüpfung von Gegenständen aus elektronischer Tinte mit erkanntem Text und Objekten
DE60016772T2 (de) Verfahren und system für die publikation und revision von hierarchisch organisierten sätzen von statischen intranet- und internet-seiten
US7581189B2 (en) Dynamically generating a database report during a report building process
DE69723489T2 (de) Verfahren und System zur Verwaltung von Bau- und Produktionsinformation
US8230322B2 (en) Electronic spreadsheet for displaying and/or hiding a range of cells
DE69837772T2 (de) Browser für hierarchische Strukturen
US20090100325A1 (en) System and method in an electronic spreadsheet for copying and pasting displayed elements of a range of cells
DE10120869A1 (de) Verwendung eines Index für den Zugriff auf eine mehrdimensionale Subjektdatenbank
US20030188257A1 (en) System and method in an electronic spreadsheet for displaying and/or hiding range of cells
DE60203525T2 (de) Vorrichtung und verfahren in einer büroapplikation zur bereitstellung von inhaltsabhängiger hilfeinformation
DE19959765B4 (de) Datei-Editor für mehrere Datenuntermengen
DE10150387A1 (de) CAD-Datenmodell mit Entwurfsnotizen
US7743316B2 (en) Method and system for hiding sensitive data in an electronic spreadsheet environment
DE69719641T2 (de) Ein Verfahren, um Informationen auf Bildschirmgeräten in verschiedenen Grössen zu präsentieren
DE602004003230T2 (de) System und Verfahren in einer Datentabelle zur Erzeugung von rekursiven skalierbaren Vorlageninstanzen
DE102013203831A1 (de) Verfahren und System für ein Master-Seiten-basiertes integriertes Editieren und eine dynamische Layout-Aktivierung
DE60019996T2 (de) System zum Koordinieren von Dokumenten und Aufgaben für einen Rechner
DE602004003140T2 (de) System und verfahren in einer datentabelle zur verwaltung von löschoperationen in rekursiven skalierbaren vorlageninstanzen
US20030188258A1 (en) System and method in an electronic spreadsheet for displaying and/or hiding range of cells

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)