DE602004003140T2 - System und verfahren in einer datentabelle zur verwaltung von löschoperationen in rekursiven skalierbaren vorlageninstanzen - Google Patents

System und verfahren in einer datentabelle zur verwaltung von löschoperationen in rekursiven skalierbaren vorlageninstanzen Download PDF

Info

Publication number
DE602004003140T2
DE602004003140T2 DE602004003140T DE602004003140T DE602004003140T2 DE 602004003140 T2 DE602004003140 T2 DE 602004003140T2 DE 602004003140 T DE602004003140 T DE 602004003140T DE 602004003140 T DE602004003140 T DE 602004003140T DE 602004003140 T2 DE602004003140 T2 DE 602004003140T2
Authority
DE
Germany
Prior art keywords
der
recursive
instance
scalable template
die
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
DE602004003140T
Other languages
English (en)
Other versions
DE602004003140D1 (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 DE602004003140D1 publication Critical patent/DE602004003140D1/de
Application granted granted Critical
Publication of DE602004003140T2 publication Critical patent/DE602004003140T2/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)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Sheet Holders (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Electron Beam Exposure (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 Löschoperationen in rekursiven skalierbaren Vorlageninstanzen.
  • Stand der Technik
  • Ein wesentlicher Nutzen von elektronischen Arbeitsblättern besteht darin, Daten in Spalten und Zeilen zu gliedern und gleichzeitig umständliche Berechnungen 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. empty the copied structured range of cells of the copied raw data while trying to keep the structure, format and generic contents,
    • 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.
  • Das Löschen eines Elements eines strukturierten Zellenbereichs ist eine fehleranfällige Operation. Tatsächlich können normale Funktionen elektronischer Arbeitsblätter wie zum Beispiel die Zeilenlöschfunktion den Inhalt von einigen benachbarten Elementen gefährden, was zu nichtaufgelösten Verweisen (#REF results) oder, noch schlimmer, zu falschen Formeln führen kann, die schwer zu erkennen sind. Die Lösung dieses Problems erfordert eine zusätzliche "Kontextintelligenz", die die Struktur des strukturierten Zellenbereichs, in dem der Löschvorgang des Elements stattfindet, berücksichtigt. Eine weitere Notwendigkeit ergibt sich, wenn der Benutzer die herkömmliche Löschfunktion ("Delete") aufruft, nachdem er eine Zelle oder eine Vielzahl von Zellen in dem Arbeitsblatt ausgewählt hat. Wenn die Auswahl zu einem strukturierten Zellenbereich gehört, birgt das Aufrufen der Löschfunktion über ein Menü oder durch Anklicken der Schaltfläche "Löschen" eine gewisse Unklarheit in Bezug auf die vom Benutzer gewünschte Operation. Diese Unklarheit kann nur dadurch beseitigt werden, dass man den bestimmten Bereich, der gelöscht werden soll, auswählt, was sich jedoch als sehr schwierig erweisen kann, insbesondere, wenn bearbeitete strukturierte Zellenbereiche an Größe und Komplexität zunehmen. Die Lösung dieses Problems erfordert eine zusätzliche "Kontextintelligenz", um diese Situation zu erkennen, die Struktur des strukturierten Zellenbereichs vorteilhaft zu nutzen und um dem Benutzer eine entsprechende Auswahl zu bieten.
  • 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 Löschen eines Objekts, das in einer Instanz einer Anordnung von strukturierten Zellenbereichen enthalten ist, ist eine fehleranfällige Operation. Neben dem vorstehend genannten Risiko, dass beim Löschen einzelner Zellen oder Zellenbereiche nichtaufgelöste Verweise erzeugt werden, sind die herkömmlichen Werkzeuge, die in Tabellenkalkulationsumgebungen zur Verfügung stehen, für den Benutzer des Tabellenkalkulationsprogramms nicht gerade hilfreich, wenn im Anschluss an die Auswahl eines Zellenbereichs in einer rekursiven Struktur ein Befehl zur Durchführung einer Löschoperation aufgerufen wird. Wenn ein solcher ausgewählter Zellenbereich zu einer Instanz einer Anordnung von strukturierten Zellenbereichen gehört, bleibt der Umfang der Löschoperation tatsächlich unklar: Soll der Inhalt der EIN-Felder, die zu dem ausgewählten Zellenbereich gehören, oder sollen die Elemente der Instanz des strukturierten Zellenbereichs, die sich mit dem ausgewählten Zellenbereich überlappen, oder die Instanzen der strukturierten Zellenbereiche, die sich mit dem ausgewählten Zellenbereich überlappen oder soll gar die ganze Instanz der Anordnung strukturierter Zellenbereiche, zu denen der ausgewählte Zellenbereich gehört, gelöscht werden? Um diese Unklarheit zu beseitigen, muss der Benutzer des Tabellenkalkulationsprogramms den betreffenden Zellenbereich vorsichtig und exakt festlegen und dann auswählen, damit die Löschoperation genau seinen Erfordernissen entspricht. Wenn die Anordnung der strukturierten Zellenbereiche groß und komplex wird, wird die vorstehend genannte Operation natürlich schwierig und fehleranfällig. Die Lösung dieses Problems erfordert eine zusätzliche "Kontextintelligenz", um diese Situation zu erkennen, die aus zwei Ebenen bestehende Struktur der Anordnung der strukturierten Zellenbereiche vorteilhaft zu nutzen und um dem Benutzer eine entsprechende Auswahl zu bieten. 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 Strukturdaten 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 dargelegt ist, betrifft die vorliegende Erfindung ein Verfahren, ein System und ein Programm in einer mehrdimensionalen elektronischen Datentabelle, die eine Vielzahl von Daten umfasst, vorzugsweise in einem Arbeitsblatt, zur Verwaltung von Löschoperationen 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 Löschbefehls, um ein zusammenhängendes Element oder eine Vielzahl von zusammenhängenden Elementen zu löschen, die in einer skalierbaren Vorlageninstanz einer rekursiven Elementinstanz ausgewählt wurden;
    • • Kennzeichnen:
    • • der skalierbaren Vorlageninstanz, in der das eine ausgewählte Element oder eine Vielzahl von ausgewählten Elementen gelöscht werden soll;
    • • des einen ausgewählten Elements oder der Vielzahl der ausgewählten Elemente in der skalierbaren Vorlageninstanz, das/die gelöscht werden soll;
    • • 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;
    • • Löschen des einen ausgewählten Elements oder einer Vielzahl von ausgewählten Elementen in der gekennzeichneten skalierbaren Vorlageninstanz; wobei alle verbleibenden Elemente der gekennzeichneten skalierbaren Vorlageninstanz zusammenhängend bleiben;
    • • 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 verbleibenden rekursiven Elementinstanzen der gekennzeichneten rekursiven skalierbaren Vorlageninstanz zusammenhängend bleiben.
  • In einer bestimmten Ausführungsform umfasst das Verfahren die folgenden weiteren Schritte:
    • • Feststellen eines Löschbefehls, um eine ausgewählte zusammenhängende rekursive Elementinstanz oder eine Vielzahl von ausgewählten zusammenhängenden rekursiven Elementinstanzen in einer rekursiven skalierbaren Vorlageninstanz zu löschen;
    • • Kennzeichnen:
    • • der rekursiven skalierbaren Vorlageninstanz, in der die eine rekursive Elementinstanz oder eine Vielzahl von rekursiven Elementinstanzen gelöscht werden soll;
    • • der einen rekursiven Elementinstanz oder der Vielzahl der rekursiven Elementinstanzen, die in der rekursiven skalierbaren Vorlageninstanz gelöscht werden soll;
    • • der rekursiven skalierbaren Vorlage, die zu der rekursiven skalierbaren Vorlageninstanz gehört;
    • • Löschen der einen ausgewählten zusammenhängenden rekursiven Elementinstanz oder einer Vielzahl von ausgewählten zusammenhängenden rekursiven Elementinstanzen in der rekursiven skalierbaren Vorlageninstanz; wobei alle verbleibenden rekursiven Elementinstanzen der gekennzeichneten rekursiven skalierbaren Vorlageninstanz zusammenhängend bleiben.
  • 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, 7E zeigen jeweils 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 Löschoperationen in STIs gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zeigt.
  • 15B ist ein Flussdiagramm, das ein bevorzugtes Verfahren zur Verwaltung von Löschoperationen 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 Löschoperationen in STIs.
  • 16C zeigt eine bevorzugte Benutzeroberfläche eines Tabellenkalkulationsprogramms gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung zur Verwaltung von Löschoperationen in RSTIs.
  • 17A zeigt die logische Struktur einer RSTI gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung.
  • 17B zeigt die logische Struktur einer RST gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung.
  • Die 18A und 18B stellen ein Flussdiagramm dar, das ein bevorzugtes Verfahren zur Erzeugung von RSTIs gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zeigt.
  • Die 19A, 19B, 19C, 19D, 19E und 19F 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).
  • 20A zeigt eine bevorzugte Benutzeroberfläche eines Tabellenkalkulationsprogramms gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung zur Erzeugung von RSTIs.
  • 20B zeigt eine bevorzugte Benutzeroberfläche eines Tabellenkalkulationsprogramms gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung zur Bearbeitung von REs.
  • 20C ist ein Flussdiagramm, das ein bevorzugtes Verfahren zur Bearbeitung von REs in RSTs gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zeigt.
  • 21A 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.
  • 21B 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.
    • • 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-Löschmanager"-Verfahren oder kurz STIDM-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 17A und 17B wird die vorliegende Erfindung anhand eines einfachen Beispiels einer solchen RST und RSTI veranschaulicht.
  • Zuerst Bezug nehmend auf 17B 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 17B ü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, die vorstehend beschrieben wurde und in 17A veranschaulicht ist, wird ein ähnlich rekursiv strukturierter Zellenbereich für jeden Kunden auf einem neuen Blatt 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 aller 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 17B 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 17A gezeigte RSTI erzeugt werden, wobei sich so die vielen Fehlerrisiken vermeiden lassen, während die Kosten für den Benutzer sehr begrenzt sind.
  • Ein Objekt aus einer RSTI löschen, eine RSTI löschen
  • Das Löschen eines Elements einer RSTI ist ebenfalls eine fehleranfällige Operation. Bei unserem Beispiel einer "NSP Customer Repository" muss sich der Benutzer eines Tabellenkalkulationsprogramms gegebenenfalls zum Beispiel mit der Pensionierung eines Mitarbeiters im Kundendienst-Team des Kunden oder des Entfernens einer vorhandenen, vom Kunden verwalteten Ressource oder dem Löschen eines doppelt erfassten Fehlers in einem Fehlerprotokoll befassen. Neben den Schwierigkeiten, die mit dem Löschen von vorhandenen Elementen in einer STI zwangsläufig verbunden sind, wie zuvor erörtert wurde, ist das Löschen von vorhandenen Informationsangaben in einer RST noch anspruchsvoller, da:
    • • gelöschte Objekte auf verschiedenen Strukturebenen festgelegt werden können. Zum Beispiel würde der Löschvorgang eines pensionierten Mitarbeiters des Kundendienst-Teams des Kunden oder eines doppelt erfassten Fehlers in einem Fehlerprotokoll darin bestehen, dass ein vorhandenes Element aus einer festgelegten STI (die STI "Support Team" beziehungsweise die STI "Problem Log") entfernt wird, wohingegen das Entfernen einer vorhandenen, vom Kunden verwalteten Ressource das Löschen eines STI-Paares "Resource Information" und "Problem Log" im Hauptteil 2003 der RSTI 2001 entsprechend der Struktur der zugehörigen RE 2056 erforderlich machen würde. Der Benutzer des Tabellenkalkulationsprogramms muss bei den Löschvorgängen daher vorsichtig vorgehen, da die Struktur der RSTI mit zwei Ebenen bei der Behebung eines möglichen Fehlers beibehalten werden muss.
  • Der sich aus dem Löschvorgang eines vorhandenen 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 Löschoperation in einer STI behandelt. Der letztere Fall lässt sich darstellen, wenn der Benutzer des Tabellenkalkulationsprogramms eine vorhandene, vom Kunden verwaltete Ressource oben im Hauptteil 2003 der RSTI 2001 entfernen muss. In diesem Fall müssen die obere STI "Resource Information" und die obere STI "Problem Log" 2034 aus der RSTI 2001 entfernt werden. Da die beiden entfernten STIs nicht unbedingt die gleiche Höhe haben, hat die Löschoperation zur Folge, das die beiden unteren vorhandenen STIs, die zum Hauptteil 2003 gehören, sehr wahrscheinlich nicht mehr waagerecht ausgerichtet sind und daher 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 eines Tabellenkalkulationsprogramms Folgendes ermöglicht:
    • • Auswählen des zu löschenden Gegenstands (des Zelleninhalts oder des STI-Elements oder des RE oder der ganzen RSTI) nach der automatischen Eingabeaufforderung, die ausgelöst wird, indem die herkömmliche Löschfunktion ("Delete") aufgerufen wird,
    • • Löschen des Inhalts von Eingabefeldern in ausgewählten Zellen in einer RSTI oder aber Löschen des Inhalts von Eingabefeldern in ausgewählten Elementen oder des Inhalts von Eingabefeldern in der ausgewählten STI oder Löschen aller ausgewählten Elemente oder der ausgewählten REs, während die Beschaffenheit der RSTI insgesamt unversehrt bleibt oder
    • • Löschen einer ganzen RSTI.
  • Die vorstehende Funktion wird als "RSTI-Löschmanager-Verfahren" ("RSTI Deletion Manager" method) oder kurz RSTIDM-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 17B 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 17B 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 17B 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 17A gezeigt. Diese RSTI hält sich an die RST 2051, wie in 17B 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 17A gezeigt und entspricht dem Bereich von Zellen, 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 Anzahl der Zeilen der 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 17A gezeigt und entspricht dem Bereich von Zellen, der die STIs umfasst, die die äußerste linke Position in der RSTI 2001 einnehmen. 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 17A 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 (Mod steht für "Modulo").
  • 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 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.
  • 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.
    • • 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" oder "NO" 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 19A 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 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.
  • C7. RST-Tabelle
  • Nun Bezug nehmend auf 19B 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 19D 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 19C 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 "REFERENZIERT" 2240, das gemäß 19C, 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∊FORi × 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 19D 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 19E 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 19F 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 17A 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 17A 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 17A 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 17A 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 17A 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 1 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:
    • 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 nach dem 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) andere(s) 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 sind 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 sind 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 20B 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 sind 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 sind 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-Instanziator" (beziehungsweise der Befehl "RST-Instanziator" 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 20A) 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 Benützer 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 sind 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 sind 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 sind 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 20B 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 sind 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 20B 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 dem Zeigegerät 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 Namens 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 21B beschriebenen Benutzerschnittstelle veranschaulichen, die das Dialogfeld 601 des RST-Editors zeigt, das auf dem Bildschirm 106 im Fenster der GUI 611 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, lediglich 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. Erstens 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 dem Zeigegerät 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 kleiner als oder gleich groß wie der im Textfeld "MAX" 609 angegebene 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 20A 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 Blatt 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 weigere 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: Entfernen von Elementen aus einer festgelegten STS
  • Die vierte Operation findet statt, wenn der Benutzer des Tabellenkalkulationsprogramms auf der Grundlage seiner eigenen Kriterien, die hier nicht ausführlich beschrieben werden, entscheidet, entweder ein paar Elemente aus einer festgelegten STI zu entfernen oder den Inhalt von ein paar Elementen in einer festgelegten STI zu löschen oder eine ganze festgelegte STI zu löschen oder gar einige Zellen oder Spalten oder Zeilen aus dem aktuellen Arbeitsblatt zu löschen. 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: Entfernen von Elementen aus einer festgelegten RSTI
  • Die fünfte Operation findet statt, wenn der Benutzer des Tabellenkalkulationsprogramms auf der Grundlage seiner eigenen Kriterien, die hier nicht ausführlich beschrieben werden, entscheidet, entweder eine ganze festgelegte RSTI zu löschen oder ein paar REs aus einer festgelegten RSTI zu entfernen oder ausgewählte Elemente in einer STI zu löschen, die in einer RSTI enthalten ist, oder den Inhalt aller Elemente in einer ausgewählten STI zu löschen, die in einer RSTI enthalten ist, oder den Inhalt von ausgewählten Elementen in einer STI zu löschen, die in einer RSTI enthalten ist, oder den Inhalt von ausgewählten Elementen zu löschen, die in dem gerade ausgewählten Zellenbereich enthalten sind, oder gar einige Zellen oder Spalten oder Zeilen aus dem aktuellen Arbeitsblatt zu löschen.
  • 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 Deletion 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 die folgenden beschränkt)
    • • funktionsspezifische Schaltflächen,
    • • Tastatur-Kurzbefehle,
    • • Menü- oder Untermenüeinträge, einen bestimmten ursprünglichen Befehl mit der Bezeichnung "RSTI Deletion Manager" auf, der das herkömmliche Mittel zum Löschen 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 Deletion Manager" mit denselben Mitteln aufgerufen, die in herkömmlichen elektronischen Arbeitsblättern zum Löschen des Inhalts einer einzelnen Zelle oder eines Zellenbereichs oder zum Entfernen von Zellen oder Zeilen oder Spalten in einem Arbeitsblatt zur Verfügung stehen, wie zum Beispiel folgende, jedoch nicht auf diese beschränkt:
    • • durch Drücken der Taste "Entfernen" auf der Tastatur 104 oder
    • • durch Anklicken eines Untermenüeintrags "Delete" ("Entfernen") 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 festgelegte RSTI umfasst.
  • Wenn dies nicht der Fall ist, übergibt der Befehl die Steuerung dem Befehl "STI Deletion Manager", um auf das Vorhandensein einer STI zu achten, die durch die Löschoperation 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 dies nicht der Fall ist, werden die herkömmlichen Löschprozeduren, die in einer Tabellenkalkulationsumgebung zur Verfügung stehen, aufgerufen, nachdem ein Löschmodus deaktiviert worden ist, der die auf dem aktuellen Arbeitsblatt vorhandene RSTI beschädigen würde. Wenn die gerade ausgewählte Zelle zum Beispiel zu einer Zeile (beziehungsweise zu einer Spalte) gehört, die von der auf dem aktuellen Arbeitsblatt vorhandenen RSTI belegt wird, wird der Zeilenlöschmodus (beziehungsweise der Spaltenlöschmodus) deaktiviert.
  • Wenn dies der Fall ist, wird die Löschoperation fortgesetzt, indem das Dialogfeld 1940 des RSTI Deletion Manager auf dem Bildschirm 106 angezeigt wird, wie in 16C gezeigt ist, das einige Informationen enthält, die sich auf die Löschoperation beziehen. Im Folgenden wird die RSTI, die in demselben Arbeitsblatt wie die gerade ausgewählte Zelle enthalten ist, als die aktuelle RSTI oder der Kürze halber als cRSTI bezeichnet.
  • Erstens wird der Name der RST, an die sich die cRSTI hält, in einem Bezeichnungsfeld 1950 angezeigt.
  • Zweitens werden die verschiedenen verfügbaren Löschmodi über eine Reihe von Optionsschaltflächen angegeben:
    • • Über die Optionsschaltfläche "delete IN fields in selected range" 1949 kann, wenn sie aktiviert wird, der Inhalt der EIN-Felder gelöscht werden, die in dem gerade ausgewählten Zellenbereich enthalten sind. Diese Optionsschaltfläche "delete IN fields in selected range" 1949 wird nur aktiviert, wenn sich der gerade ausgewählte Zellenbereich innerhalb der Begrenzungen einer STI befindet, die als Teil der cRSTI festgelegt wurde. Bezug nehmend auf 17A, die einen möglichen Aufbau einer cRSTI zeigt, wird die Optionsschaltfläche "delete IN fields in selected range" 1949 aktiviert, wenn der gerade ausgewählte Zellenbereich den Zellenbereichen 2018 oder 2019 oder 2020 oder 2021 entspricht, und deaktiviert, wenn der gerade ausgewählte Zellenbereich den Zellenbereichen 2022 oder 2023 oder 2024 oder 2025 entspricht.
    • • Über die Optionsschaltfläche "delete IN fields in selected elements of current STI" 1948 kann, wenn sie aktiviert wird, der Inhalt der EIN-Felder gelöscht werden, die in den gerade ausgewählten Elementen der STI enthalten sind, zu der die gerade ausgewählten Zellen gehören. Diese Optionsschaltfläche "delete IN fields in selected elements of current STI" 1948 wird nur aktiviert, wenn sich der gerade ausgewählte Zellenbereich innerhalb der Begrenzungen einer STI befindet, die als Teil der cRSTI festgelegt wurde. Bezug nehmend auf 17A, die einen möglichen Aufbau einer cRSTI zeigt, wird die Optionsschaltfläche "delete IN fields in selected elements of current STI" 1948 aktiviert, wenn der gerade ausgewählte Zellenbereich den Zellenbereichen 2018 oder 2019 oder 2020 oder 2021 entspricht, und deaktiviert, wenn der gerade ausgewählte Zellenbereich den Zellenbereichen 2022 oder 2023 oder 2024 oder 2025 entspricht.
    • • Über die Optionsschaltfläche "delete IN fields in current STI" 1947 kann, wenn sie aktiviert wird, der Inhalt aller EIN-Felder gelöscht werden, die in der STI enthalten sind, zu der die gerade ausgewählten Zellen gehören. Diese Optionsschaltfläche "delete IN fields in selected range" 1947 wird nur aktiviert, wenn sich die gerade ausgewählte Zelle innerhalb der Begrenzungen einer STI befindet, die als Teil der cRSTI festgelegt wurde. Bezug nehmend auf 17A, die einen möglichen Aufbau einer cRSTI zeigt, wird die Optionsschaltfläche "delete IN fields in current STI" 1947 aktiviert, wenn die gerade ausgewählte Zelle den Zellenbereichen 2018 oder 2019 oder 2020 oder 2021 oder 2023 oder 2025 entspricht, und deaktiviert, wenn die gerade ausgewählte Zelle den Zellenbereichen 2022 oder 2024 entspricht.
    • • Über die Optionsschaltfläche "delete selected elements in current STI" 1946 können, wenn sie aktiviert wird, die ausgewählten Elemente der STI gelöscht werden, zu der der gerade ausgewählte Zellenbereich gehört. Diese Optionsschaltfläche "delete selected elements in current STI" 1946 wird nur aktiviert, wenn sich der gerade ausgewählte Zellenbereich innerhalb des Hauptteils einer STI befindet, die als Teil der cRSTI festgelegt wurde. Bezug nehmend auf 17A, die einen möglichen Aufbau einer cRSTI zeigt, wird die Optionsschaltfläche "delete selected elements in current STI" 1946 aktiviert, wenn der gerade ausgewählte Zellenbereich den Zellenbereichen 2018 oder 2019 entspricht, und deaktiviert, wenn der gerade ausgewählte Zellenbereich den Zellenbereichen 2020 oder 2021 oder 2022 oder 2023 oder 2024 oder 2025 entspricht.
    • • Über die Optionsschaltfläche "delete STI(s) in current container" 1945 kann, wenn sie aktiviert wird, die eine STI oder die Vielzahl der STIs gelöscht werden, die zu der Behälterzeile gehören, zu der die gerade ausgewählten Zellen gehören. Diese Optionsschaltfläche "delete STI(s) in current container" 1945 wird nur aktiviert, wenn die gerade ausgewählte Zelle im Hauptteil der cRSTI enthalten ist. Bezug nehmend auf 17A, die einen möglichen Aufbau einer cRSTI zeigt, wird die Optionsschaltfläche "delete STI(s) in current container" 1945 aktiviert, wenn die gerade ausgewählte Zelle den Zellenbereichen 2018 oder 2019 oder 2022 oder 2023 entspricht, und deaktiviert, wenn die gerade ausgewählte Zelle den Zellenbereichen 2020 oder 2021 oder 2024 oder 2025 entspricht.
    • • Über die Optionsschaltfläche "delete RSTI (preserving comprised STI's)" 1944 kann der Zellenbereich cRSTI disqualifiziert werden, so dass er eine Gruppe von STIs wird, die aber nicht länger als eine RSTI behandelt wird. Diese Optionsschaltfläche "delete RSTI (preserving comprised STI's)" 1944 ist immer aktiviert, und sie stellt den Standardlöschmodus dar, wenn das Dialogfeld 1940 des RSTI Deletion Manager erstmalig angezeigt wird.
  • Wenn der Benutzer des Tabellenkalkulationsprogramms den Standardlöschmodus, der "delete RSTI (preserving comprised STI's)" lautet, oder einen zuvor geänderten Löschmodus ändern möchte, klickt er mit der Zeigeeinheit 105 auf eine der sechs Optionsschaltflächen, sofern diese aktiviert sind:
    • • "delete RSTI (preserving comprised STI's)" 1944 oder
    • • "delete RSTI (preserving comprised STI's)" 1945 oder
    • • "delete RSTI (preserving comprised STI's)" 1946 oder
    • • "delete RSTI (preserving comprised STI's)" 1947 oder
    • • "delete RSTI (preserving comprised STI's)" 1948 oder
    • • "delete RSTI (preserving comprised STI's)" 1949,
    von denen dann eine einzige einen schwarzen Punkt anzeigt, der den neu ausgewählten Löschmodus anzeigt. Der Versuch, mit der Zeigeeinheit 105 auf eine deaktivierte Optionsschaltfläche zu klicken, bleibt ohne Wirkung.
  • Drittens kann das Dialogfeld 1940 des RST Deletion Manager durch Anklicken der Schaltfläche "Cancel" 1943 oder der Schaltfläche 1941 zum Schließen des Fensters geschlossen werden, ohne dass eine weitere Maßnahme getroffen wird. Durch Anklicken von einer dieser beiden Schaltflächen 1941 und 1942 mit der Zeigeeinheit 105 wird das Dialogfeld 1940 des RST Deletion Manager geschlossen, und die RST-Löschoperation wird abgebrochen.
  • Viertens ist die Schaltfläche "Delete" 1942, wenn der Benutzer des Tabellenkalkulationsprogramms mit der Zeigeeinheit 105 auf sie klickt, der Auslöser, der den Vorgang des Löschens der RSTI startet. Diese Schaltfläche "Delete" 1942 ist immer aktiviert (was bedeutet, dass das Verfahren das Klickereignis mit der Zeigeeinheit auf dieser Schaltfläche "Delete" 1942 erkennt), da die Löschoperation immer möglich ist (zumindest im Standardmodus, der der Schaltfläche "delete RSTI (preserving comprised STI's)" 1944 entspricht. Die Löschoperation wird entsprechend dem vom Benutzer des Tabellenkalkulationsprogramms ausgewählten Löschmodus durchgeführt. Dies kann mit dem Diagramm von 17A veranschaulicht werden, in dem die cRSTI dem Zellenbereich 2001 entspricht.
    • • Wenn der Löschmodus der Optionsschaltfläche "delete RSTI (preserving comprised STI's)" 1944 und der gerade ausgewählte Zellenbereich dem Zellenbereich 2024 entspricht, besteht die Löschoperation darin, den Zellenbereich 2001 als eine RSTI zu dequalifizieren. Dennoch sind die STIs der Zusammenstellung von STIs, die die cRSTI bildeten, nach wie vor als STIs klassifiziert und können folglich von den zugehörigen Werkzeugen profitieren.
    • • Wenn der Löschmodus der Optionsschaltfläche "delete STI(s) in current container" 1945 und der gerade ausgewählte Zellenbereich dem Zellenbereich 2022 entspricht, besteht die Löschoperation darin, den Zeilenbehälter 2010 aus der cRSTI zu entfernen, so dass die cRSTI daraufhin nur 2 REs enthält, die auf die Behälterzeilen 2009 und 2008 abgebildet werden (während die RMEs 2012, 2011 und 2007 unberührt bleiben).
    • • Wenn der Löschmodus der Optionsschaltfläche "delete selected elements in current STI" 1946 und der gerade ausgewählte Zellenbereich dem Zellenbereich 2019 entspricht, besteht die Löschoperation darin, die Elemente, die dieselben Zeilen wie der gerade ausgewählte Zellenbereich 2019 belegen, aus der STI 2032 zu entfernen.
    • • Wenn der Löschmodus der Optionsschaltfläche "delete IN fields in current STI" 1947 und der gerade ausgewählte Zellenbereich dem Zellenbereich 2021 entspricht, besteht die Löschoperation darin, den Inhalt aller EIN-Felder zu löschen, die zur STI 2031 gehören.
    • • Wenn der Löschmodus der Optionsschaltfläche "delete IN fields in selected elements of current STI" 1948 und der gerade ausgewählte Zellenbereich dem Zellenbereich 2018 entspricht, besteht die Löschoperation darin, den Inhalt aller EIN-Felder zu löschen, die zu den Elementen der STI 2034 gehören, welche dieselben Zeilen wie der gerade ausgewählte Zellenbereich 2018 belegen.
    • • Wenn der Löschmodus der Optionsschaltfläche "delete IN fields in selected range" 1949 und der gerade ausgewählte Zellenbereich dem Zellenbereich 2020 entspricht, besteht die Löschoperation darin, den Inhalt aller EIN-Felder der STI 2030 zu löschen, die zu dem gerade ausgewählten Zellenbereich 2020 gehören.
  • Sobald die Löschoperation ausgeführt worden ist, wird das Dialogfeld 1940 des RSTI Deletion Manager geschlossen, wodurch die Ausführung des Befehls "RSTI Deletion Manager" beendet ist.
  • 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, 19A, 19B und 19C 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 das letzte Feld "Index" 2238 auf den Anfangswert 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 geringer als oder gleich groß 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 oder 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 sie "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 Parameter 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ührungsform 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 gleich groß 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 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 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ührungsform 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) 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 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 506 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, oder über ein anderes ähnliches Mittel 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ührungsform 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) 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) 729 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 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 19D 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ührungsform 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 "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 RSTDT-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 weitere 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 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_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 VERTICAL_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 VERTICAL_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_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 erfolgte 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 zur Erzeugung neuer Elemente in einer vorhandenen STI, das in der bevorzugten Ausführungsform der vorliegenden Erfindung zur Anwendung kommt, ist im Flussdiagramm 1800 von 15A zusammengefasst. Dieses Verfahren kann als Verarbeitung des Befehls "STI Deletion Manager" betrachtet werden.
    • • Im Schritt 1801 befindet sich das Verfahren in seinem standardmäßigen Zustand, in dem es auf ein Ereignis zum Starten des Prozesses wartet.
    • • Im Schritt 1802 wird der Befehl "STI Deletion Manager" 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.
  • Wenn der Befehl STI Deletion 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 1803 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 in jedem Datensatz 751 das Feld "Address" 752 aufgerufen wird, um festzustellen, ob die in diesem Feld angegebene Adresse des Zellenbereichs die Adresse der einzelnen gerade ausgewählten Zelle enthält. Wenn dies der Fall ist, ist die gerade ausgewählte Zelle in einer STI mit der Bezeichnung STDM_instance_range enthalten, und die Steuerung wird dem Schritt 1804 übergeben; andernfalls wird die Steuerung dem Schritt 1811 übergeben.
    • • Im Schritt 1804 wird zuerst der im Schritt 1803 gefundene Datensatz 751 abgerufen, um lokale Variablen aus seinen Feldern, die die STI "STDM_instance_range" beschreiben, zu der die gerade ausgewählte Zelle gehört, mit einem Anfangswert zu belegen: Die lokale Variable ST_name wird mit dem Wert des Feldes "ST" 753 initialisiert; die lokale Variable STDM_element wird mit dem Wert des Feldes "Element #" 754 initialisiert; die lokale Variable STDM_critical wird mit dem Wert des Feldes "Critical" 755 initialisiert; die lokale Variable STDM_header_size wird mit dem Wert des Feldes "Header Size" 756 initialisiert; die lokale Variable STDM_footer_size wird mit dem Wert des Feldes "Footer Size" 757 initialisiert. Dann wird die STT-Tabelle 720 mit Hilfe der lokalen Variablen ST_name ausgewertet, um den Datensatz 721 zu suchen, dessen Feld "Name" 722 mit dem Parameter ST_name übereinstimmt. Sobald dieser Datensatz 721 gefunden wurde, wird sein Feld "Min Element #" 725 als die lokale Variable STDM_min. gespeichert. Daraufhin wird eine weitere lokale Variable STDM_mode mit dem Wert DELETE_IN_FIELDS_IN_SELECTED_RANGE initialisiert. Dann wird die lokale Variable STDM_offset_height, die der Anzahl der Zeilen zwischen der oberen linken Zelle des Zellenbereichs STDM_instance_range und der gerade ausgewählten Zelle entspricht, mit der Position der gerade ausgewählten Zelle initialisiert. Daraufhin wird die Anzahl der Zeilen des gerade ausgewählten Zellenbereichs STDM_range von der lokalen Variablen STDM_height dargestellt.
    • • Im Schritt 1805 werden mehrere Tests durchgeführt, um die relative Position des gerade ausgewählten Zellenbereichs in Bezug auf die aktuelle STI "STDM_instance_range" festzustellen. Zunächst nimmt eine lokale Variable STDM_header_overlap den Wert 1 (eins) an, wenn der Wert der lokalen Variablen STDM_offset_height kleiner als der Wert der lokalen Variablen STDM_header_size ist; andernfalls nimmt die lokale Variable STDM_header_overlap den Wert 0 (null) an. Dann nimmt eine lokale Variable STDM_footer_overlap den Wert 1 (eins) an, wenn festgestellt wird, dass die Summe der Werte der lokalen Variablen STDM_offset_height und STDM_height größer als die Summe der Werte der lokalen Variablen STDM_header_size und STDM_element ist. Daraufhin nimmt eine lokale Variable STDM_body_overlap den Wert der folgenden Formel an: STDM_header_overlap × STDM_data1 + (1 – STDM_header_overlap) × STDM_data2, wobei STDM_data1 den Wert 1 (beziehungsweise 0) annimmt, wenn festgestellt wird, dass die Summe der Werte der lokalen Variablen STDM_offset_height und STDM_height größer als (beziehungsweise kleiner als oder gleich groß wie) der Wert der lokalen Variablen STDM_header_size ist; und wobei STDM_data2 den Wert 1 (beziehungsweise 0) annimmt, wenn festgestellt wird, dass der Wert der lokalen Variablen STDM_offset_height kleiner als (beziehungsweise größer als oder gleich groß wie) die Summe der Werte der lokalen Variablen STDM_header_size und STDM_element ist.
    • • Im Schritt 1806 wird die Anzahl der gelöschten Elemente ermittelt, um dann sicherzustellen, dass die verbleibende Anzahl der Elemente nicht zu klein ist, das heißt, dass sie den unteren Grenzwert STDM_min nicht unterschreitet. Diese Anzahl der gelöschten Elemente wird in der lokalen Variablen STDM_delete_element_# abgelegt, deren Wert durch die folgende Formel gegeben ist: STDM_body_overlap × (STDM_height – STDM_header_overlap × (STDM_header_size – STDM_offset_height) – STDM_footer_overlap × (STDM_offset_height + STDM_height – STDM_header_size – STDM_element)).
    • • Im Schritt 1807 wird eine erste lokale Variable STDM_too_small auf den Wert "YES" gesetzt, wenn festgestellt wird, dass die Summe der Werte der lokalen Variablen STDM_deleted_element_# und STDM_min größer als der Wert der lokalen Variablen STDM_element ist, andernfalls nimmt diese lokale Variable STDM_too_small den Wert "NO" an. Anschließend wird eine zweite lokale Variable STDM_outside_body auf den Wert "NO" gesetzt, wenn beide lokalen Variablen STDM_header_overlap und STDM_footer_overlap den Wert 0 (null) annehmen; andernfalls wird diese lokale Variable STDM_outside_body auf den Wert "YES" gesetzt.
    • • Im Schritt 1808 wird das Dialogfeld 1900 des ST-Löschmanagers (ST Delete Manager) auf dem Bildschirm 106 angezeigt. Das Kontrollkästchen "Critical" 1910 zeigt ein Häkchen an, wenn die lokale Variable STDM_critical den Wert "YES" annimmt; andernfalls (wenn sie den Wert "NO" annimmt) bleibt das Kontrollkästchen "Critical" 1910 leer. Das Bezeichnungsfeld 1911 wird mit dem Wert der lokalen Variablen ST_name initialisiert. In das Textfeld 1908 wird der Wert der lokalen Variablen STDM_height eingegeben. In das Textfeld 1907 wird der Wert der lokalen Variablen STDM_too_small eingegeben, und in das Bezeichnungsfeld 1904 wird der Wert der lokalen Variablen STDM_outside_body eingegeben. Die lokale Variable STDM_mode nimmt dann den entsprechenden Wert an:
    • • DELETE_IN_FIELDS_IN_SELECTED_RANGE oder
    • • DELETE_IN_FIELDS_IN_SELECTED_ROWS oder
    • • DELETE_SELECTED_ELEMENTS oder
    • • DELETE_SELECTED_INSTANCE, woraufhin nur eine der Optionsschaltflächen 1905 oder 1906 oder 1912 oder 1913 einen schwarzen Punkt anzeigt. Schließlich wird die Schaltfläche "Delete" 1903 deaktiviert, sobald eine der folgenden lokalen Variablen den Wert "YES" annimmt: STDM_too_high, STDM_outside_body, wenn die lokale Variable STDM_mode den gleichen Wert wie DELETE_SELECTED_ELEMENTS hat; andernfalls wird die Schaltfläche "Delete" 1903 aktiviert.
    • • Im Schritt 1809 wartet das Verfahren auf eine Benutzeraktion im Dialogfeld 1900 des ST-Löschmanagers. 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 1810 wird eine Benutzeraktion im Dialogfeld 1900 des ST-Löschmanagers festgestellt.
    • • Wenn die Benutzeraktion ein Klick auf die Schaltfläche "Delete" 1903 ist, wird die Steuerung dem Schritt 1824 übergeben;
    • • wenn die Benutzeraktion ein Klick auf den oberen Teil des Drehfelds 1909 ist, wird die Steuerung dem Schritt 1821 übergeben;
    • • wenn die Benutzeraktion ein Klick auf den unteren Teil des Drehfelds 1909 ist, wird die Steuerung dem Schritt 1820 übergeben;
    • • wenn die Benutzeraktion ein Klick auf das Kontrollkästchen "Critical" 1910 ist, wird die Steuerung dem Schritt 1822 übergeben;
    • • wenn die Benutzeraktion ein Klick auf eine der Optionsschaltflächen 1906 oder 1905 oder 1912 oder 1913 ist, wird die Steuerung dem Schritt 1823 übergeben;
    • • wenn die Benutzeraktion ein Klick auf die Schaltfläche "Cancel" 1902 oder auf die Schaltfläche 1901 zum Schließen des Fensters ist, wird die Steuerung dem Schritt 1830 übergeben.
    • • Im Schritt 1811 wird die lokale Variable STDM_mode auf den Wert "CONTENT_DELETE" als Anfangswert gesetzt. Daraufhin werden die Anzahl der Zeilen und die Anzahl der Spalten des gerade ausgewählten Zellenbereichs STDM_range von der lokalen Variablen STDM_height beziehungsweise von der lokalen Variablen STDM_width dargestellt. Anschließend wird der Zellenbereich STDM_right_range als der Zellenbereich ermittelt, der sich dieselben Zeilen mit STDM_range teilt und die Spalten belegt, die sich rechts von dem Zellenbereich STDM_range befinden. Dann wird der Zellenbereich STDM_bottom_range als der Zellenbereich ermittelt, der sich dieselben Spalten mit STDM_range teilt und die Zeilen belegt, die sich unterhalb der Zeilen von STDM_range befinden. Als Nächstes wird der Zellenbereich STDM_left_range als der Zellenbereich ermittelt, der sich dieselben Zeilen mit STDM_range teilt und die Spalten belegt, die sich links von dem Zellenbereich STDM_range befinden. Dann wird der Zellenbereich STDM_top_range als der Zellenbereich ermittelt, der sich dieselben Spalten mit STDM_range teilt und die Zeilen belegt, die sich oberhalb der Zeilen von STDM_range befinden.
    • • Im Schritt 1812 werden mehrere Tests durchgeführt, um die mögliche Auswirkung der Löschoperation, die entsprechend vier möglicher Löschmodi durchgeführt wird, auf eine bereits vorhandene STI oder auf bereits vorhandene Daten zu prüfen. 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_DELETE-Löschmodus geprüft.
    • • Wenn mindestens eine STI vorhanden ist, deren Feld "Critical" 755 den Wert "YES" hat und die den Zellenbereich teilweise überlappt, der aus den ganzen Zeilen besteht, in denen sich der gerade ausgewählte Zellenbereich STDM_range befindet, oder die in dem Zellenbereich enthalten ist, der aus den ganzen Zeilen besteht, in denen sich der gerade ausgewählte Zellenbereich STDM_range befindet, nimmt die lokale Prüfvariable STDM_horizontal_critical den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STDM_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 den ganzen Zeilen besteht, in denen sich der gerade ausgewählte Zellenbereich STDM_range befindet, oder die in dem Zellenbereich enthalten ist, der aus den ganzen Zeilen besteht, in denen sich der gerade ausgewählte Zellenbereich STDM_range befindet, nimmt die lokale Prüfvariable STDM_horizontal_other den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STDM_horizontal_other den Wert "NO" an.
    • • Wenn alle Zellen in dem Zellenbereich, der aus den ganzen Zeilen besteht, in denen sich der gerade ausgewählte Zellenbereich STDM_range befindet, leer sind (keine Daten enthalten), nimmt die lokale Prüfvariable STDM_horizontal_data den Wert "NO" an; andernfalls nimmt die lokale Prüfvariable STDM_horizontal_data den Wert "YES" an.
  • Als zweites wird der HORIZONTAL_DELETE_BY_RANGE-Löschmodus 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 STDM_range und STIM_bottom_range gebildet wird, oder die den Zellenbereich STDM_range teilweise überlappt oder darin enthalten ist, nimmt die lokale Prüfvariable STDM_horizontal_range_critical den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STDM_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 STDM_range und STDM_bottom_range gebildet wird, oder die den Zellenbereich STDM_range teilweise überlappt oder darin enthalten ist, nimmt die lokale Prüfvariable STDM_horizontal_range_other den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STDM_horizontal_range_other den Wert "NO" an.
    • • Wenn alle Zellen im Zellenbereich STDM_range leer sind (keine Daten enthalten), nimmt die lokale Prüfvariable STDM_horizontal_range_data den Wert "NO" an; andernfalls nimmt die lokale Prüfvariable STDM_horizontal_range_data den Wert "YES" an.
  • Als Drittes wird der VERTICAL_DELETE-Löschmodus geprüft.
    • • Wenn mindestens eine STI vorhanden ist, deren Feld "Critical" 755 den Wert "YES" hat und die den Zellenbereich teilweise überlappt, der aus den ganzen Spalten besteht, in denen sich der gerade ausgewählte Zellenbereich STDM_range befindet, oder die in dem Zellenbereich enthalten ist, der aus den ganzen Spalten besteht, in denen sich der gerade ausgewählte Zellenbereich STDM_range befindet, nimmt die lokale Prüfvariable STDM_vertical_critical den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STDM_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 den ganzen Spalten besteht, in denen sich der gerade ausgewählte Zellenbereich STDM_range befindet, oder die in dem Zellenbereich enthalten ist, der aus den ganzen Spalten besteht, in denen sich der gerade ausgewählte Zellenbereich STDM_range befindet, nimmt die lokale Prüfvariable STDM_vertical_other den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STDM_vertical_other den Wert "NO" an.
    • • Wenn alle Zellen in dem Zellenbereich, der aus den ganzen Spalten besteht, in denen sich der gerade ausgewählte Zellenbereich STDM_range befindet, leer sind (keine Daten enthalten), nimmt die lokale Prüfvariable STDM_vertical_data den Wert "NO" an; andernfalls nimmt die lokale Prüfvariable STDM_vertical_data den Wert "YES" an.
  • Als Viertes wird der VERTICAL_DELETE_BY_RANGE-Löschmodus 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 STDM_range und STDM_right_range gebildet wird, oder die den Zellenbereich STDM_range teilweise überlappt oder darin enthalten ist, nimmt die lokale Prüfvariable STDM_vertical_range_critical den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STDM_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 STDM_range und STDM_right_range gebildet wird, oder die den Zellenbereich STDM_range teilweise überlappt oder darin enthalten ist, nimmt die lokale Prüfvariable STDM_vertical_range_other den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STDM_vertical_range_other den Wert "NO" an.
    • • Wenn alle Zellen im Zellenbereich STDM_range leer sind (keine Daten enthalten), nimmt die lokale Prüfvariable STDM_vertical_range_data den Wert "NO" an; andernfalls nimmt die lokale Prüfvariable STDM_vertical_range_data den Wert "YES" an.
  • Als Fünftes wird der CONTENT_DELETE-Löschmodus geprüft.
    • • Wenn mindestens eine STI vorhanden ist, deren Feld "Critical" 755 den Wert "YES" hat und deren Schnittpunkt mit dem Zellenbereich STDM_range mindestens eine Element- oder Metaelement-Zelle enthält, die als "AUS"-Zelle angegeben ist, nimmt die lokale Prüfvariable STDM_content_critical den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STDM_content_critical den Wert "NO" an.
    • • Wenn mindestens eine STI vorhanden ist, deren Feld "Critical" 755 den Wert "NO" hat und deren Schnittpunkt mit dem Zellenbereich STDM_range mindestens eine Element- oder Metaelement-Zelle enthält, die als "AUS"-Zelle angegeben ist, nimmt die lokale Prüfvariable STDM_content_other den Wert "YES" an; andernfalls nimmt die lokale Prüfvariable STDM_content_other den Wert "NO" an.
    • • Wenn alle Zellen im Zellenbereich STDM_range leer sind (keine Daten enthalten), nimmt die lokale Prüfvariable STDM_content_data den Wert "NO" an; andernfalls nimmt die lokale Prüfvariable STDM_content_data den Wert "YES" an.
    • • Im Schritt 1813 wird ein Test durchgeführt, um zu prüfen, wie sich die Löschoperation entsprechend den Werten, die den folgenden lokalen Variablen während des Schritts 1812 zugewiesen wurden, auf eine vorhandene STI auswirkt:
    • • STIM_horizontal_critical,
    • • STDM_horizontal_other,
    • • STDM_horizontal_range_critical,
    • • STDM_horizontal_range_other,
    • • STDM_vertical_critical,
    • • STDM_vertical_other,
    • • STDM_vertical_range_critical,
    • • STDM_vertical_range_other,
    • • STDM_content_critical,
    • • STDM_content_other.
  • Wenn keine dieser lokalen Variablen den Wert "YES" annimmt, wird die Steuerung dem Schritt 1814 übergeben; andernfalls, wenn mindestens eine dieser lokalen Variablen den Wert "YES" annimmt, wird die Steuerung dem Schritt 1815 übergeben.
    • • Im Schritt 1814 wird das herkömmliche Löschverfahren, wie es in herkömmlichen Tabellenkalkulationsumgebungen festgelegt ist und verwendet wird, gestartet, und dann wird die Steuerung wieder dem ersten Schritt 1801 zur Verarbeitung eines künftigen STI-Deletion-Manager-Befehls übergeben.
    • • Im Schritt 1815 wird das Dialogfeld 1920 des ST-Löschmanagers auf dem Bildschirm 106 angezeigt. Das Bezeichnungsfeld 1929 wird mit dem reservierten Wert "None" initialisiert. In die 15 Bezeichnungsfelder 1924 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:
    • • STDM_content_critical,
    • • STDM_content_other,
    • • STDM_content_data,
    • • STDM_horizontal_critical,
    • • STDM_horizontal_other,
    • • STDM_horizontal_data,
    • • STDM_horizontal_range_critical,
    • • STDM_horizontal_range_other,
    • • STDM_horizontal_range_data,
    • • STDM_vertical_critical,
    • • STDM_vertical_other,
    • • STDM_vertical_data,
    • • STDM_vertical_range_critical,
    • • STDM_vertical_range_other,
    • • STDM_vertical_range_data.
  • Wenn die lokale Variable STDM_mode den jeweiligen Wert CONTENT_DELETE oder HORIZONTAL_DELETE oder HORIZONTAL_DELETE_BY_RANGE oder VERTICAL_DELETE oder VERTICAL_DELETE_BY_RANGE annimmt, zeigt nur die jeweilige Optionsschaltfläche 1930 oder 1928 oder 1927 oder 1925 einen schwarzen Punkt an.
  • Schließlich wird die Schaltfläche "Delete" 1923 deaktiviert, sobald eine der folgenden lokalen Variablen den Wert "YES" annimmt:
    • • STDM_content_critical (wird nur berücksichtigt, wenn die lokale Variable STDM_mode den Wert CONTENT_DELETE hat),
    • • STDM_horizontal_critical (wird nur berücksichtigt, wenn die lokale Variable STDM_mode den Wert HORIZONTAL_DELETE hat),
    • • STDM_vertical_critical (wird nur berücksichtigt, wenn die lokale Variable STDM_mode den Wert VERTICAL_DELETE hat),
    • • STDM_horizontal_range_critical (wird nur berücksichtigt, wenn die lokale Variable STDM_mode den Wert HORIZONTAL_DELETE_BY_RANGE hat),
    • • STDM_vertical_range_critical (wird nur berücksichtigt, wenn die lokale Variable STDM_mode den Wert VERTICAL_DELETE_BY_RANGE hat),
    andernfalls wird die Schaltfläche "Delete" 1923 aktiviert.
    • • Im Schritt 1816 wartet das Verfahren auf eine Benutzeraktion im Dialogfeld 1920 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 1817 wird eine Benutzeraktion im Dialogfeld 1920 des ST-Einfügemanagers festgestellt. Wenn die Benutzeraktion ein Klick auf die Schaltfläche "Delete" 1923 ist, wird die Steuerung dem Schritt 1819 übergeben; wenn die Benutzeraktion ein Klick auf eine der Schaltflächen 1930 oder 1928 oder 1927 oder 1926 oder 1925 ist, wird die Steuerung dem Schritt 1818 übergeben; wenn die Benutzeraktion ein Klick auf die Schaltfläche "Cancel" 1922 oder auf die Schaltfläche 1921 zum Schließen des Fensters ist, wird die Steuerung dem Schritt 1830 übergeben.
    • • Im Schritt 1818 nimmt die lokale Variable STI_mode den Wert CONTENT_DELETE oder HORIZONTAL_DELETE oder HORIZONTAL_DELETE_BY_RANGE oder VERTICAL_DELETE oder VERTICAL_DELETE_BY_RANGE an, wenn der Benutzer des Tabellenkalkulationsprogramms mit der Zeigeeinheit 105 auf die jeweilige Optionsschaltfläche 1930 oder 1928 oder 1927 oder 1926 oder 1925 geklickt hat. Dann wird die Steuerung dem Schritt 1815 übergeben.
    • • Im Schritt 1819 wird die STIT-Tabelle 750 aufgerufen, um jeden Datensatz 751 aus ihr zu entfernen, der einer STI entspricht, die durch die Löschoperation beschädigt wurde, was während des Schritts 1812 bei dem von der lokalen Variablen STDM_mode dargestellten Löschmodus festgestellt wurde. Daraufhin wird die STT-Tabelle 720 aktualisiert, um das erfolgte 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 1825 übergeben.
    • • Im Schritt 1820 wird der Wert der lokalen Variablen STDM_height um 1 (eins) verringert, solange ihr Wert absolut positiv bleibt. Nachdem die Verringerung vorgenommen wurde, wird der gerade ausgewählte Zellenbereich STDM_range verkleinert, indem die letzte Zeile aus der aktuellen Auswahl entfernt wird. Daraufhin wird die Steuerung dem Schritt 1805 übergeben.
    • • Im Schritt 1821 wird der Wert der lokalen Variablen STDM_height um 1 (eins) erhöht, solange ihr Wert kleiner als der Wert der lokalen Variablen STDM_element bleibt. Nachdem die Erhöhung vorgenommen wurde, wird der gerade ausgewählte Zellenbereich STDM_range vergrößert, indem zur aktuellen Auswahl eine neue Zeile unter der letzten Zeile eingefügt wird. Daraufhin wird die Steuerung dem Schritt 1805 übergeben.
    • • Im Schritt 1822 wird die lokale Variable STDM_critical aktualisiert, um zwischen den Werten "YES" und "NO" zu wechseln. Überdies wird im Kontrollkästchen "Critical" 1910 in Abhängigkeit davon, ob dieses Kontrollkästchen 1910 zuvor angehakt oder nicht angehakt war, ein Häkchen gesetzt beziehungsweise entfernt. Dann wird das Feld "Critical" 755 im Datensatz 751 der STIT-Tabelle 750, der im Schritt 1803 gefunden wurde, mit dem Wert der lokalen Variablen STDM_critical aktualisiert. Daraufhin wird die Steuerung dem Schritt 1805 übergeben.
    • • Im Schritt 1823 nimmt die lokale Variable STDM_mode den Wert "DELETE_IN_FIELDS_IN_SELECTED_RANGE" oder "DELETE_IN_FIELDS_IN_SELECTED_ROWS" oder "DELETE_SELECTED_ELEMENTS" oder "DELETE_SELECTED_INSTANCE" an, wenn der Benutzer des Tabellenkalkulationsprogramms mit der Zeigeeinheit 105 auf die jeweilige Optionsschaltfläche 1905 oder 1906 oder 1912 oder 1913 geklickt hat. Dann wird die Steuerung dem Schritt 1805 übergeben.
    • • Im Schritt 1824 wird ein Test durchgeführt, um den Wert der lokalen Variablen STDM_mode zu prüfen.
    • • Wenn festgestellt wird, dass dieser Wert "DELETE_IN_FIELDS_IN_SELECTED_RANGE" lautet, wird die Steuerung dem Schritt 1826 übergeben;
    • • wenn festgestellt wird, dass dieser Wert "DELETE_IN_FIELDS_IN_SELECTED_ROWS" lautet, wird die Steuerung dem Schritt 1827 übergeben;
    • • wenn festgestellt wird, dass dieser Wert "DELETE_SELECTED_ELEMENTS" lautet, wird die Steuerung dem Schritt 1828 übergeben;
    • • wenn festgestellt wird, dass dieser Wert "DELETE_SELECTED_INSTANCE" lautet, wird die Steuerung dem Schritt 1829 übergeben.
    • • Im Schritt 1825 wird ein Test durchgeführt, um den Wert der lokalen Variablen STDM_mode zu prüfen.
    • • Wenn festgestellt wird, dass dieser Wert HORIZONTAL_DELETE lautet, wird die Steuerung dem Schritt 1831 übergeben;
    • • wenn festgestellt wird, dass dieser Wert HORIZONTAL_DELETE_BY_RANGE lautet, wird die Steuerung dem Schritt 1833 übergeben;
    • • wenn festgestellt wird, dass dieser Wert VERTICAL_DELETE lautet, wird die Steuerung dem Schritt 1832 übergeben;
    • • wenn festgestellt wird, dass dieser Wert VERTICAL_DELETE_BY_RANGE lautet, wird die Steuerung dem Schritt 1834 übergeben;
    • • wenn festgestellt wird, dass dieser Wert "CONTENT_DELETE" lautet, wird die Steuerung dem Schritt 1837 übergeben.
    • • Im Schritt 1826 wird der Inhalt der "EIN"-Zellen, die zu dem gerade ausgewählten Zellenbereich STDM_range gehören, gelöscht. Dazu wird das Feld "ST" 753 des Datensatzes 751 der STIT-Tabelle 750, der im Schritt 1803 ermittelt wurde, aufgerufen, um einen Speicherzeiger auf die STDT-Tabelle 760 der ST zu erhalten, der für jedes Meta-Element und für jedes Element der STI das zugehörige EP angibt, welches wiederum anzeigt, welche Zellen "EIN"-Zellen und welche Zellen "AUS"-Zellen sind. Dann wird jede Zeile des Zellenbereichs STDM_range nacheinander ausgewählt, und für jede ausgewählte Zeile wird das entsprechende Element oder MEP aus der STDT-Tabelle 760 abgerufen, um festzustellen, welche Zellen "EIN"-Zellen sind. Dazu speichert eine temporäre lokale Variable STDM_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 STDM_out_fields den Wert (IN, IN, OUT, IN, OUT) an. Wenn der ausgewählte Zellenbereich bei demselben Beispiel nur die zweite, dritte und vierte Spalte der STI belegen würde, würde die erste Zelle ignoriert werden, da sie zwar eine "EIN"-Zelle ist, jedoch außerhalb der Begrenzungen des Zellenbereichs STDM_range liegt, so dass nur die zweite und die vierte Zelle berücksichtigt würden. Sobald die zum Zellenbereich STDM_range gehörenden "EIN"-Zellen festgestellt wurden, werden diese Zellen aktualisiert, indem ihr Inhalt gelöscht wird.
    • • Im Schritt 1827 wird der gerade ausgewählte Zellenbereich STDM_range aktualisiert, um seine Spalten auf die Spalten auszurichten, die von der STI "STDM_instance_range" belegt werden. Daraufhin wird die Steuerung dem Schritt 1826 übergeben.
    • • Im Schritt 1828 werden die Elemente, die zu den Zeilen des gerade ausgewählten Zellenbereichs STDM_range gehören, aus der aktuellen STI "STDM_instance_range" gelöscht. Dazu wird zuerst der Zellenbereich ausgewählt, der von denselben Spalten wie der Zellenbereich STDM_instance_range gebildet wird und dessen Zeilen sich zwischen der untersten Zeile des Zellenbereichs STDM_range (nicht enthalten) und der untersten Zeile des Zellenbereichs STDM_instance_range (enthalten) befinden. Dann wird dieser ausgewählte Zellenbereich zeilenweise nach oben bis zu der Stelle verschoben, an der seine oberste Zeile dieselbe Zeile wie die oberste Zeile des vorherigen Zellenbereichs STDM_range belegt. Bei jedem Schritt dieser Verschiebeoperation wird eine Zeile in dem Zellenbereich STDM_range entfernt, so dass am Ende alle Zeilen des Zellenbereichs STDM_range entfernt wurden. Daraufhin wird die Steuerung dem Schritt 1836 übergeben.
    • • Im Schritt 1829 wird der Zellenbereich, der der STI "STDM_instance_range" entspricht, ein gewöhnlicher Zellenbereich und verliert seine Eigenschaft einer STI. Zu diesem Zweck wird der Inhalt von allen Zellen dieses Zellenbereichs STDM_instance_range gelöscht, und dann erhält dieser ganze Zellenbereich die in der aktuellen Arbeitsblattdatei festgelegten Standard-Anzeigeattribute. Daraufhin wird die Steuerung dem Schritt 1835 übergeben.
    • • Im Schritt 1830 wird das Dialogfeld 1900 oder 1920 des ST-Löschmanagers geschlossen, so dass es vom Bildschirm 106 verschwindet. Schließlich wird die Steuerung wieder dem ersten Schritt 1801 zur Verarbeitung eines künftigen STI-Deletion-Manager-Befehls übergeben.
    • • Im Schritt 1831 wird der Zellenbereich STDM_range ausgewählt, so dass er der gerade ausgewählte Zellenbereich wird und Zeilen von STDM_height ausgewählt werden, und dann wird eine gewöhnliche Operation in Form von einem "Löschen einer Zeile" durchgeführt. Daraufhin wird die Steuerung dem Schritt 1830 übergeben.
    • • Im Schritt 1832 wird der Zellenbereich STDM_range ausgewählt, damit er der gerade ausgewählte Zellenbereich wird, so dass Zeilen von STDM_height ausgewählt werden, und daraufhin wird eine gewöhnliche Operation in Form von einem "Löschen einer Zeile" durchgeführt. Daraufhin wird die Steuerung dem Schritt 1830 übergeben.
    • • Im Schritt 1833 wird der Zellenbereich STDM_range ausgewählt, so dass er der gerade ausgewählte Zellenbereich wird und Zeilen von STDM_height ausgewählt werden, und dann wird eine gewöhnliche Operation in Form von einem "Löschen einer Zeile" durchgeführt. Daraufhin wird die Steuerung dem Schritt 1830 übergeben.
    • • Im Schritt 1834 wird der Zellenbereich STDM_range ausgewählt, so dass er der gerade ausgewählte Zellenbereich wird und Spalten von STDM_width ausgewählt werden, und anschließend wird eine gewöhnliche Operation in Form von einem "Löschen einer Spalte im ausgewählten Bereich" durchgeführt. Daraufhin wird die Steuerung dem Schritt 1830 übergeben.
    • • Im Schritt 1835 wird der im Schritt 1803 ermittelte Datensatz 751 aus der STIT-Tabelle 750 entfernt. Dann wird die STT-Tabelle 720 aktualisiert, um das erfolgte Entfernen dieser 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, bevor die Steuerung dem Schritt 1830 übergeben wird.
    • • Im Schritt 1836 wird die aktuelle STI mit der Bezeichnung STDM_instance_range aktualisiert, indem die "AUS"-Zellen in allen verbleibenden Elementen wiederhergestellt werden, um eine durch die Löschoperation des Elements verursachte Beschädigung zu vermeiden. 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 aktuelle STI mit der Bezeichnung "STDM_instance_range" hält. Daraufhin wird auf das Elementpaar 762 in dieser STDT-Tabelle 760 zugegriffen, um das EP abzurufen, welches in der lokalen Variablen STDM_profile abgelegt ist. Dann wird die EPT-Tabelle 710 ausgewertet, um einen Datensatz 711 zu ermitteln, dessen Feld "Name" 712 den gleichen Wert wie die lokale Variable STDM_profile hat. Sobald er gefunden wurde, wird über das Feld "Description Ptr" 714 auf eine Beschreibung des Elementprofils im Speicher zugegriffen, das angibt, welche Zellen "EIN"-Zellen und welche Zellen "AUS"-Zellen sind. Dazu speichert eine temporäre lokale Variable STDM_out_fields die relativen Positionen aller Zellen, die als "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 STDM_out_fields den Wert (IN, IN, OUT, IN, OUT) an. Dann wird jede "AUS"-Zelle des der Veranschaulichung dienenden Zellenbereichs (auf den das Feld "Description Ptr" 714 des Datensatzes 711 der EPT-Tabelle 710 zeigt, dessen Feld "Name" 712 den gleichen Wert wie die lokale Variable STDM_profile hat) einzeln kopiert und in die Zelle des obersten Elements der STI mit der Bezeichnung "STDM_instance_range" eingefügt, die denselben relativen Spaltenversatz in dem Element hat (wobei sie einer Position entspricht, die den Wert "OUT" in der lokalen Variablen STDM_out_fields hat). Als Nächstes wird das oberste Element der STI mit der Bezeichnung "STDM_instance_range" 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 STDM_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, so dass sie die erforderliche Anzahl von Zeilen unterhalb des obersten Elements enthält und sich über alle Elemente der STI mit der Bezeichnung STDM_instance_range erstreckt. Dann wird eine herkömmliche "Nach-unten-kopieren"-Operation durchgeführt, um den Inhalt der ersten Zeile in die darunter liegenden Zeilen zu kopieren, so dass alle "AUS"-Zellen der aktuellen STI "STDM_instance_range" einen korrekten Inhalt erhalten. Schließlich wird das Feld "Element #" 754 im Datensatz 751 der STIT-Tabelle 750, der im Schritt 1803 gefunden wurde, mit der Differenz der lokalen Variablen STDM_element und STDM_height aktualisiert. Abschließend wird die Steuerung dem Schritt 1830 übergeben.
    • • Im Schritt 1837 wird der Inhalt einer jeden Zelle, die in dem gerade ausgewählten Zellenbereich STDM_range enthalten ist, gelöscht. Daraufhin wird die Steuerung dem Schritt 1830 übergeben.
  • E8. RSTI-Löschmanager-Verfahren
  • Das Verfahren zum Löschen von Objekten in einer RSTI, das in der bevorzugten Ausführungsform der vorliegenden Erfindung zur Anwendung kommt, ist im Flussdiagramm 1840 von 15B zusammengefasst. Dieses Verfahren kann als Verarbeitung des Befehls "STI Deletion Manager" betrachtet werden.
    • • Im Schritt 1841 befindet sich das Verfahren in seinem standardmäßigen Zustand, in dem es auf ein Ereignis zum Starten des Prozesses wartet.
    • • Im Schritt 1842 wird der Befehl "RSTI Deletion Manager" 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 1843 werden einige lokale Variablen mit einem Anfangswert belegt:
    • • Die lokale Variable csr ("currently selected range" ("gerade ausgewählter Bereich")) ist ein Zellenbereich, der dem gerade ausgewählten Zellenbereich entspricht.
    • • 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 der Zellenbereich der lokalen Variablen csc belegt, wird die lokale Variable cRSTITr standardmäßig 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 rir 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, dessen Feld "Address" 2262 zu demselben Arbeitsblatt wie der Zellenbereich csc gehört.
    • • 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 17A 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 17A 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 cr ("container row" ("Behälterzeile")) entspricht, wenn die lokale Variable ccirb den Wert TRUE hat, dem Behälterzeilen-Zellenbereich, in dem sich die gerade ausgewählte Zelle csc befindet. Wenn die lokale Variable ccirb den Wert "void" hat, wird die lokale Variable cr standardmäßig ebenfalls auf den Wert "void" gesetzt. Bezug nehmend auf 17A nimmt die lokale Variable cr beispielsweise den Wert "void" an, wenn die lokale Variable csc einem der Zellenbereiche 2019 oder 2021 oder 2024 oder 2025 entspricht, und sie entspricht den jeweiligen Zellenbereichen 2008 oder 2009 oder 2010 oder 2011, wenn die lokale Variable csc einem der Zellenbereiche 2023 oder 2020 oder 2018 oder 2022 entspricht.
    • • Die lokale Variable csii ("current selection in instance" ("aktuelle Auswahl in der Instanz")) ist eine Boolesche Variable, die die Werte TRUE oder FALSE annimmt, wenn der ausgewählte Zellenbereich csr in einer STI enthalten ist beziehungsweise nicht darin enthalten ist. Bezug nehmend auf 17A nimmt die lokale Variable csii beispielsweise den Wert TRUE an, wenn die lokale Variable csr einem der Zellenbereiche 2018 oder 2019 oder 2020 oder 2021 entspricht, und den Wert FALSE, wenn die lokale Variable csr einem der Zellenbereiche 2022 oder 2023 oder 2024 oder 2025 entspricht.
    • • Die lokale Variable ccii ("current cell in instance" ("aktuelle Zelle in der Instanz")) ist eine Boolesche Variable, die die Werte TRUE oder FALSE annimmt, wenn die gerade ausgewählte Zelle csc in einer STI enthalten ist beziehungsweise nicht darin enthalten ist. Bezug nehmend auf 17A nimmt die lokale Variable ccii beispielsweise den Wert TRUE an, wenn die lokale Variable csc einem der Zellenbereiche 2018 oder 2019 oder 2020 oder 2021 oder 2023 oder 2025 entspricht, und den Wert FALSE, wenn die lokale Variable csc einem der Zellenbereiche 2022 oder 2024 entspricht.
    • • Die lokale Variable csib ("current selection in body" ("aktuelle Auswahl im Hauptteil")) ist eine Boolesche Variable, die die Werte TRUE oder FALSE annimmt, wenn der ausgewählte Zellenbereich csr im Hauptteil einer STI enthalten ist beziehungsweise nicht darin enthalten ist. Bezug nehmend auf 17A nimmt die lokale Variable csib beispielsweise den Wert TRUE an, wenn die lokale Variable csr einem der Zellenbereiche 2018 oder 2019 entspricht, und den Wert FALSE, wenn die lokale Variable csr einem der Zellenbereiche 2020 oder 2021 oder 2022 oder 2023 oder 2024 oder 2025 entspricht.
    • • Die lokale Variable RSTIDM_mode wird auf den Anfangswert "del_rec_inst" gesetzt.
    • • Im Schritt 1844 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 1845 übergeben; andernfalls wird die Steuerung dem Schritt 1846 übergeben.
    • • Im Schritt 1845 wird der Befehl "STI Deletion Manager" aufgerufen (als Unterroutine). Wenn dieser Befehl abgearbeitet ist und die Steuerung wieder dem aktuellen Prozess übergibt, wird die Steuerung dem ersten Schritt 1841 zur Verarbeitung eines künftigen RSTI-Deletion-Manager-Befehls übergeben.
    • • Im Schritt 1846 wird ein Test durchgeführt, um festzustellen, ob die Zelle, die von der lokalen Variablen csc dargestellt wird, ein Teil des Zellenbereichs ist, der von der lokalen Variablen rir dargestellt wird. Wenn dies der Fall ist, wird die Steuerung dem Schritt 1848 übergeben; andernfalls wird die Steuerung dem Schritt 1847 übergeben.
    • • Im Schritt 1847 wird das herkömmliche Löschverfahren, das in vorhandenen Tabellenkalkulationsumgebungen zur Verfügung steht, befolgt, nachdem ein Löschmodus, der den RSTI-Bereich rir beschädigen könnte, deaktiviert worden ist. Diese Löschmodi, die Beschädigungen verursachen, werden wie folgt gekennzeichnet:
    • • Wenn sich der Zellenbereich csr einige Zeilen mit dem Zellenbereich rir teilt, wird das herkömmliche Zeilenlöschverfahren deaktiviert.
    • • Wenn sich der Zellenbereich csr einige Spalten mit dem Zellenbereich rir teilt, wird das herkömmliche Spaltenlöschverfahren deaktiviert.
    • • Wenn sich der Zellenbereich csr einige Zellen mit dem Zellenbereich rir teilt, wird das herkömmliche Zelleninhalt-Löschverfahren deaktiviert.
  • Dann wird die Steuerung dem ersten Schritt 1841 zur Verarbeitung eines künftigen RSTI-Deletion-Manager-Befehls übergeben.
    • • Im Schritt 1848 wird das Dialogfeld 1940 des RSTI-Deletion-Managers entsprechend den Werten von einigen lokalen Variablen auf dem Bildschirm 106 angezeigt.
    • • In das Textfeld 1950 wird der Wert der lokalen Variablen RST_name eingegeben.
    • • Wenn die lokale Variable RSTIDM_mode den jeweiligen Wert "del_rec_inst" oder "del_cont" oder "del_elem" oder "del_inst IN" oder "del_elem_IN" oder "del_select_IN" annimmt, wird die Optionsschaltfläche 1944 oder 1945 oder 1946 oder 1947 oder 1948 oder 1949 mit einem schwarzen Punkt gefüllt, wohingegen die anderen Optionsschaltflächen, die zum Dialogfeld 1940 gehören, leer bleiben.
    • • Wenn die lokale Variable ccirb den Wert TRUE hat, wird die Optionsschaltfläche 1945 aktiviert, so dass jeder künftige Klick mit der Zeigeeinheit 105 auf diese Schaltfläche als ein gültiges Ereignis erkannt wird. Wenn die lokale variable ccirb den Wert FALSE hat, wird die Optionsschaltfläche 1945 deaktiviert, so dass jeder künftige Klick mit der Zeigeeinheit 105 auf diese Schaltfläche nicht als ein gültiges Ereignis erkannt wird.
    • • Wenn die lokale Variable csib den Wert TRUE hat, wird die Optionsschaltfläche 1946 aktiviert, so dass jeder künftige Klick mit der Zeigeeinheit 105 auf diese Schaltfläche als ein gültiges Ereignis erkannt wird. Wenn die lokale Variable csib den Wert FALSE hat, wird die Optionsschaltfläche 1946 deaktiviert, so dass jeder künftige Klick mit der Zeigeeinheit 105 auf diese Schaltfläche nicht als ein gültiges Ereignis erkannt wird.
    • • Wenn die lokale Variable csii den Wert TRUE hat, werden die Optionsschaltflächen 1948 und 1949 aktiviert, so dass jeder künftige Klick mit der Zeigeeinheit 105 auf diese Schaltflächen als ein gültiges Ereignis erkannt wird. Wenn die lokale Variable csii den Wert FALSE hat, werden die Optionsschaltflächen 1948 und 1949 deaktiviert, so dass jeder künftige Klick mit der Zeigeeinheit 105 auf diese Schaltflächen nicht als ein gültiges Ereignis erkannt wird.
    • • Wenn die lokale Variable ccii den Wert TRUE hat, wird die Optionsschaltfläche 1947 aktiviert, so dass jeder künftige Klick mit der Zeigeeinheit 105 auf diese Schaltfläche als ein gültiges Ereignis erkannt wird. Wenn die lokale Variable ccii den Wert FALSE hat, wird die Optionsschaltfläche 1947 deaktiviert, so dass jeder künftige Klick mit der Zeigeeinheit 105 auf diese Schaltfläche nicht als ein gültiges Ereignis erkannt wird.
    • • Im Schritt 1849 wartet das Verfahren auf eine Benutzeraktion im Dialogfeld 1940 des RSTI-Löschmanagers. 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 1850 wird eine Benutzeraktion im Dialogfeld 1940 des RSTI-Löschmanagers festgestellt.
    • • Wenn die Benutzeraktion ein Klick mit der Zeigeeinheit 105 auf eine der aktivierten Optionsschaltflächen 1944 oder 1945 oder 1946 oder 1947 oder 1948 oder 1949 ist, wird die Steuerung dem Schritt 1851 übergeben.
    • • Wenn die Benutzeraktion ein Klick mit der Zeigeeinheit 105 auf die Schaltfläche "Delete" 1942 ist, wird die Steuerung dem Schritt 1853 übergeben.
    • • Wenn die Benutzeraktion ein Klick mit der Zeigeeinheit 105 auf die Schaltfläche "Cancel" 1943 oder auf die Schaltfläche 1941 zum Schließen des Fensters ist, wird die Steuerung dem Schritt 1852 übergeben.
    • • Im Schritt 1851 wird die lokale Variable RSTIDM_mode entsprechend der aktivieren Optionsschaltfläche, auf die der Benutzer im Schritt 1850 geklickt hat, aktualisiert:
    • • Wenn der Benutzer die Optionsschaltfläche 1944 angeklickt hat, nimmt die lokale Variable RSTIDM_mode den Wert "del_rec_inst" an.
    • • Wenn der Benutzer die Optionsschaltfläche 1945 angeklickt hat, nimmt die lokale Variable RSTIDM_mode den Wert "del_cont" an.
    • • Wenn der Benutzer die Optionsschaltfläche 1946 angeklickt hat, nimmt die lokale Variable RSTIDM_mode den Wert "del_elem" an.
    • • Wenn der Benutzer die Optionsschaltfläche 1947 angeklickt hat, nimmt die lokale Variable RSTIDM_mode den Wert "del_inst_IN" an.
    • • Wenn der Benutzer die Optionsschaltfläche 1948 angeklickt hat, nimmt die lokale Variable RSTIDM_mode den Wert "del_elem_IN" an.
    • • Wenn der Benutzer die Optionsschaltfläche 1949 angeklickt hat, nimmt die lokale Variable RSTIDM_mode den Wert "del_select_IN" an.
  • Daraufhin wird die Steuerung dem Schritt 1848 übergeben.
    • • Im Schritt 1852 wird das Dialogfeld 1940 des RSTI-Löschmanagers auf dem Bildschirm 106 geschlossen, und daraufhin wird die Steuerung dem ersten Schritt 1841 zur Verarbeitung eines künftigen RSTI-Deletion-Manager-Befehls übergeben.
    • • Im Schritt 1853 wird ein Test durchgeführt, um zu prüfen, ob die lokale Variable RSTIDM_mode den Wert "del_rec_inst" annimmt. Wenn dies der Fall ist, wird die Steuerung dem Schritt 1854 übergeben; andernfalls wird die Steuerung dem Schritt 1855 übergeben.
    • • Im Schritt 1854 wird der aktuelle Datensatz cRSTITr 2261 der RSTI-Tabelle RSTIT 2260 aus dieser Tabelle RSTIT 2260 entfernt, und die zugehörige RSTI-Deskriptortabelle RSTIDT 2270, auf die das Feld "RSTIDT Ptr" 2265 des Datensatzes cRSTITr 2261 zeigt, wird gelöscht. 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 durch 2 (zwei) geteilt wird. Daraufhin wird die Steuerung dem Schritt 1852 übergeben.
    • • Im Schritt 1855 wird ein Test durchgeführt, um zu prüfen, ob die lokale variable RSTIDM_mode den Wert "del_cont" annimmt. Wenn dies der Fall ist, wird die Steuerung dem Schritt 1856 übergeben; andernfalls wird die Steuerung dem Schritt 1858 übergeben.
    • • Im Schritt 1856 wird die Behälterzeile cr aus dem aktuellen Arbeitsblatt gelöscht, indem die Zeilen, die sie belegt, gelöscht werden.
    • • Im Schritt 1857 wird die STIT-Tabelle 750 aktualisiert, indem alle Datensätze 751 entfernt werden, deren Feld "Address" 752 auf die Behälterzeile cr gezeigt hat. Die RSTIDT-Tabelle cRSTIDT 2270 wird dann aktualisiert, indem der Datensatz 2271 entfernt wird, der der gelöschten Behälterzeile cr entspricht. Daraufhin wird die Steuerung dem Schritt 1852 übergeben.
    • • Im Schritt 1858 wird ein Test durchgeführt, um zu prüfen, ob die lokale Variable RSTIDM_mode den Wert "del_elem" annimmt. Wenn dies der Fall ist, wird die Steuerung dem Schritt 1859 übergeben; andernfalls wird die Steuerung dem Schritt 1861 übergeben.
    • • Im Schritt 1859 werden die Elemente, die zu den Zeilen des gerade ausgewählten Zellenbereichs csr gehören, aus der STI ir entfernt. Dazu wird zuerst der Zellenbereich ausgewählt, der von denselben Spalten wie der Zellenbereich ir gebildet wird und dessen Zeilen sich zwischen der untersten Zeile des Zellenbereichs csr (nicht enthalten) und der untersten Zeile des Zellenbereichs ir (enthalten) befinden. Dann wird dieser ausgewählte Zellenbereich zeilenweise nach oben bis zu der Stelle verschoben, an der seine oberste Zeile dieselbe Zeile wie die oberste Zeile des vorherigen Zellenbereichs csr belegt. Bei jedem Schritt dieser Verschiebeoperation wird eine Zeile in dem Zellenbereich csr entfernt, so dass am Ende alle Zeilen des Zellenbereichs csr entfernt wurden. Wenn als Ergebnis dieser Entfernungsoperation des Elements im unteren Teil des Behälterzeilen-Zellenbereichs cr eine leere Zeile oder eine Vielzahl von leeren Zeilen zurückbleibt, wird diese leere Zeile beziehungsweise diese Vielzahl von leeren Zeilen entfernt.
    • • Im Schritt 1860 wird die STI ir aktualisiert, indem die "AUS"-Zellen in allen verbleibenden Elementen wiederhergestellt werden, um eine durch die Löschoperation des Elements verursachte Beschädigung zu vermeiden. Das folgende Verfahren ist gleich dem im Schritt 1836 des Befehls STI Deletion Manager beschriebenen Verfahren und wird hier nicht noch einmal beschrieben. Dann wird die STIT-Tabelle 750 geändert, indem der Datensatz 751 aktualisiert wird, der der STI ir entspricht. Das Feld "Address" 752 wird aktualisiert, damit es die neue Bereichsadresse von ir widerspiegelt, und das Feld "Element #" 754 wird aktualisiert, damit es die neue Anzahl der Elemente in der STI ir widerspiegelt. Anschließend wird die RSTIDT-Tabelle cRSTIDT 2270 aktualisiert, indem die Attribute, die der geänderten STI ir und (möglicherweise) der geänderten Behälterzeile cr entsprechen, im Datensatz 2271 geändert werden. In der Zelle 2280, die zu der STI ir gehört, wird das Attribut "STI_row" 2279 aktualisiert, damit es die neue Anzahl von Zeilen in der STI ir widerspiegelt, das Attribut "Container_row" 2281 wird aktualisiert, damit es die neue Anzahl der Behälterzeilen widerspiegelt, und das Attribut "Container_range" 2276 wird aktualisiert, damit es die neue Adresse des Behälters widerspiegelt, der die STI ir umfasst. Wenn am Ende des Schritts 1859 eine Zeile oder eine Vielzahl von Zeilen entfernt werden, werden auch die anderen Zellen 2280 desselben Datensatzes 2271 aktualisiert, indem die Attribute "Container_row" 2281 und "Container_range" 2276 in der gleichen Weise geändert werden. Daraufhin wird die Steuerung dem Schritt 1852 übergeben.
    • • Im Schritt 1861 wird ein Test durchgeführt, um zu prüfen, ob die lokale Variable RSTIDM_mode den Wert "del_elem_IN" annimmt. Wenn dies der Fall ist, wird die Steuerung dem Schritt 1862 übergeben; andernfalls wird die Steuerung dem Schritt 1863 übergeben.
    • • Im Schritt 1862 wird der gerade ausgewählte Zellenbereich csr aktualisiert, um seine Spalten auf die Spalten auszurichten, die von der STI ir belegt werden. Dann wird die Steuerung dem Schritt 1865 übergeben.
    • • Im Schritt 1863 wird ein Test durchgeführt, um zu prüfen, ob die lokale Variable RSTIDM_mode den Wert "del_inst_INt" annimmt. Wenn dies der Fall ist, wird die Steuerung dem Schritt 1864 übergeben; andernfalls wird die Steuerung dem Schritt 1865 übergeben.
    • • Im Schritt 1864 wird der gerade ausgewählte Zellenbereich csr gleich dem Zellenbereich ir der lokalen Variablen gesetzt, so dass ir der neue gerade ausgewählte Zellenbereich wird.
    • • Im Schritt 1865 wird der Inhalt der "EIN"-Zellen, die zu dem gerade ausgewählten Zellenbereich csr gehören, gelöscht. Das folgende Verfahren ist gleich dem im Schritt 1826 des Befehls STI Deletion Manager beschriebenen Verfahren und wird hier nicht noch einmal beschrieben. Daraufhin wird die Steuerung dem Schritt 1852 übergeben.
  • E9. 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 18A und 18B 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 "CreateSTI" 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 de Wert der lokalen Variablen Element# eingegeben. In das Feld "RSTIDT Ptr" 2265 wird der Wert der lokalen Variable 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.
  • E10. 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 20C 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) 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 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;
    • • 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ührungsform 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.
  • E11. 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 21A und 21B 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 (15)

  1. Verfahren in einer mehrdimensionalen elektronischen Datentabelle, die eine Vielzahl von Daten umfasst, wobei das Verfahren zur Verwaltung von Löschoperationen 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 Löschbefehls, um ein zusammenhängendes Element oder eine Vielzahl von zusammenhängenden Elementen zu löschen, die in einer skalierbaren Vorlageninstanz einer rekursiven Elementinstanz ausgewählt wurden; • Kennzeichnen: • der skalierbaren Vorlageninstanz, in der das eine ausgewählte Element oder eine Vielzahl von ausgewählten Elementen gelöscht werden soll; • des einen ausgewählten Elements oder der Vielzahl der ausgewählten Elemente in der skalierbaren Vorlageninstanz, das/die gelöscht werden soll; • 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; • Löschen des einen ausgewählten Elements oder einer Vielzahl von ausgewählten Elementen in der gekennzeichneten skalierbaren Vorlageninstanz; wobei alle verbleibenden Elemente der gekennzeichneten skalierbaren Vorlageninstanz zusammenhängend bleiben; • 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 verbleibenden rekursiven Elementinstanzen der gekennzeichneten rekursiven skalierbaren Vorlageninstanz zusammenhängend bleiben.
  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 Löschbefehls, um ein zusammenhängendes Element oder eine Vielzahl von zusammenhängenden Elementen zu löschen, die in einer skalierbaren Vorlageninstanz einer rekursiven Meta-Elementinstanz ausgewählt wurden; • Kennzeichnen: • der skalierbaren Vorlageninstanz, in der das eine ausgewählte Element oder eine Vielzahl von ausgewählten Elementen gelöscht werden soll; • des einen ausgewählten Elements oder der Vielzahl der ausgewählten Elemente in der skalierbaren Vorlageninstanz; • 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; • Löschen des einen ausgewählten Elements oder einer Vielzahl von ausgewählten Elementen in der gekennzeichneten skalierbaren Vorlageninstanz; wobei alle verbleibenden Elemente der gekennzeichneten skalierbaren Vorlageninstanz zusammenhängend bleiben; • Anpassen der Größe der gekennzeichneten rekursiven Meta-Elementinstanz entlang der ersten Dimension der Datentabelle entsprechend der Größe der größten skalierbaren Vorlageninstanz in der rekursiven Meta-Elementinstanz; wobei alle verbleibenden rekursiven Elementinstanzen und rekursiven Meta-Elementinstanzen der gekennzeichneten rekursiven skalierbaren Vorlageninstanz zusammenhängend bleiben.
  3. Verfahren nach einem der vorhergehenden Ansprüche, das die folgenden weiteren Schritte umfasst: • Feststellen eines Löschbefehls, um eine ausgewählte zusammenhängende rekursive Elementinstanz oder eine Vielzahl von ausgewählten zusammenhängenden rekursiven Elementinstanzen in einer rekursiven skalierbaren Vorlageninstanz zu löschen; • Kennzeichnen: • der rekursiven skalierbaren Vorlageninstanz, in der die eine rekursive Elementinstanz oder eine Vielzahl von rekursiven Elementinstanzen gelöscht werden soll; • der einen rekursiven Elementinstanz oder der Vielzahl der rekursiven Elementinstanzen, die in der rekursiven skalierbaren Vorlageninstanz gelöscht werden soll; • der rekursiven skalierbaren Vorlage, die zu der rekursiven skalierbaren Vorlageninstanz gehört; • Löschen der einen ausgewählten zusammenhängenden rekursiven Elementinstanz oder einer Vielzahl von ausgewählten zusammenhängenden rekursiven Elementinstanzen in der rekursiven skalierbaren Vorlageninstanz; wobei alle verbleibenden rekursiven Elementinstanzen der gekennzeichneten rekursiven skalierbaren Vorlageninstanz zusammenhängend bleiben.
  4. Verfahren nach einem der vorhergehenden Ansprüche, das die folgenden weiteren Schritte umfasst: • Verhindern der Löschoperation von einer rekursiven Meta-Elementinstanz oder von einer Vielzahl von rekursiven Meta-Elementinstanzen in einer rekursiven skalierbaren Vorlageninstanz.
  5. Verfahren nach einem der vorhergehenden Ansprüche, das die folgenden weiteren Schritte umfasst: • Feststellen eines Löschbefehls, um eine rekursive skalierbare Vorlageninstanz zu löschen; • Kennzeichnen der rekursiven skalierbaren Vorlageninstanz und der rekursiven skalierbaren Vorlage, die zu der rekursiven skalierbaren Vorlageninstanz gehört; • Löschen der rekursiven skalierbaren Vorlageninstanz.
  6. Verfahren nach einem der vorhergehenden Ansprüche, wobei in einer rekursiven skalierbaren Vorlageninstanz der Schritt des Löschens von einem zusammenhängenden Element oder von einer Vielzahl von zusammenhängenden Elementen in einer skalierbaren Vorlageninstanz oder des Löschens von einer zusammenhängenden rekursiven Elementinstanz oder von einer Vielzahl von zusammenhängenden rekursiven Elementinstanzen den folgenden weiteren Schritt umfasst: • Feststellen, ob diese Löschoperation 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.
  7. Verfahren nach dem vorhergehenden Anspruch, wobei der Schritt der Feststellung, ob die Löschoperation eine andere vorhandene rekursive skalierbare Vorlageninstanz in der Datentabelle beschädigt, den folgenden weiteren Schritt umfasst: • Abbrechen der Löschoperation, wenn die Löschoperation eine rekursive skalierbare Vorlageninstanz, die als eine kritische Instanz festgelegt ist, beschädigt.
  8. 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.
  9. Verfahren nach einem der vorhergehenden Ansprüche, wobei in einer rekursiven skalierbaren Vorlageninstanz der Schritt des Löschens von einem zusammenhängenden Element oder von einer Vielzahl von zusammenhängenden Elementen in einer skalierbaren Vorlageninstanz oder des Löschens von einer zusammenhängenden rekursiven Elementinstanz oder von einer Vielzahl von zusammenhängenden rekursiven Elementinstanzen den folgenden weiteren Schritt umfasst: • Feststellen, ob diese Löschoperation 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.
  10. Verfahren nach dem vorhergehenden Anspruch, wobei der Schritt der Feststellung, ob die Löschoperation eine andere vorhandene skalierbare Vorlageninstanz in der Datentabelle beschädigt, den folgenden weiteren Schritt umfasst: • Abbrechen der Löschoperation, wenn die Löschoperation eine skalierbare Vorlageninstanz, die als eine kritische Instanz festgelegt ist, beschädigt.
  11. 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.
  12. 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.
  13. Verfahren nach dem vorhergehenden Anspruch, wobei der Schritt des Löschens von einem ausgewählten Element oder von einer Vielzahl von ausgewählten Elementen in der gekennzeichneten skalierbaren Vorlageninstanz, wobei alle verbleibenden Elemente der gekennzeichneten skalierbaren Vorlageninstanz zusammenhängend bleiben, den folgenden weiteren Schritt umfasst: • Strukturieren einer jeden Ausgabezelle eines jeden verbleibenden Elements der skalierbaren Vorlageninstanz entsprechend dem in der skalierbaren Vorlage festgelegten Elementprofil; • Beibehalten des Inhalts einer jeden Eingabezelle eines jeden verbleibenden Elements in der skalierbaren Vorlageninstanz als unveränderten Inhalt.
  14. System, das ein Mittel umfasst, welches zur Durchführung der Schritte des Verfahrens nach einem der vorhergehenden Ansprüche ausgelegt ist.
  15. Rechnerprogramm, das Befehle zur Durchführung der Schritte des Verfahrens nach einem der Ansprüche 1 bis 13 umfasst, wenn das Rechnerprogramm ausgeführt wird.
DE602004003140T 2003-04-18 2004-02-27 System und verfahren in einer datentabelle zur verwaltung von löschoperationen in rekursiven skalierbaren vorlageninstanzen Expired - Lifetime DE602004003140T2 (de)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
DE602004003140D1 DE602004003140D1 (de) 2006-12-21
DE602004003140T2 true DE602004003140T2 (de) 2007-04-19

Family

ID=33186006

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004003140T Expired - Lifetime DE602004003140T2 (de) 2003-04-18 2004-02-27 System und verfahren in einer datentabelle zur verwaltung von löschoperationen in rekursiven skalierbaren vorlageninstanzen

Country Status (7)

Country Link
US (1) US7487436B2 (de)
EP (1) EP1618489B1 (de)
CN (1) CN100388271C (de)
AT (1) ATE344947T1 (de)
DE (1) DE602004003140T2 (de)
HK (1) HK1090722A1 (de)
WO (1) WO2004092978A2 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7631014B2 (en) * 2006-04-27 2009-12-08 International Business Machines Corporation Method and apparatus for fast deletion of physically clustered data
US20070288883A1 (en) * 2006-06-09 2007-12-13 International Business Machines Corporation Method for consolidated launching of multiple tasks
US7870536B2 (en) * 2006-06-15 2011-01-11 International Business Machines Corporation Computer implemented method and system for sharing resources among hierarchical containers of resources
US8302073B2 (en) * 2006-06-15 2012-10-30 International Business Machines Corporation Moving and copying dependencies along with source code
CN104217032B (zh) * 2014-09-28 2017-10-03 北京国双科技有限公司 数据库维度的处理方法及装置
TWI571811B (zh) * 2015-11-05 2017-02-21 財團法人資訊工業策進會 流程模型整合系統之變數定義更改裝置與方法
US20170220659A1 (en) * 2016-01-29 2017-08-03 Arista Networks, Inc. System and method of key range deletions

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
US20060206496A1 (en) 2006-09-14
US7487436B2 (en) 2009-02-03
EP1618489B1 (de) 2006-11-08
CN100388271C (zh) 2008-05-14
CN1774711A (zh) 2006-05-17
EP1618489A2 (de) 2006-01-25
ATE344947T1 (de) 2006-11-15
HK1090722A1 (en) 2006-12-29
WO2004092978A3 (en) 2005-08-18
DE602004003140D1 (de) 2006-12-21
WO2004092978A2 (en) 2004-10-28

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
DE10135445B4 (de) Integriertes Verfahren für das Schaffen einer aktualisierbaren Netzabfrage
DE60133343T2 (de) Verfahren und System in einem elektronischen Kalkulationsblatt für die Handhabung von benutzerdefinierten Optionen in einer Ausschneiden-Kopieren-Einfügen-Funktion
DE60308952T2 (de) Verfahren und System zur Anzeige und Verknüpfung von Gegenständen aus elektronischer Tinte mit erkanntem Text und Objekten
DE60319229T2 (de) Verfahren und system zur erweiterung der api eines dateisystems
DE4301766C2 (de) Verfahren zum Darstellen eines doppelseitigen, umwendbaren elektronischen Papiers
DE4216893C2 (de) Dateneingabeverfahren
DE60016772T2 (de) Verfahren und system für die publikation und revision von hierarchisch organisierten sätzen von statischen intranet- und internet-seiten
DE69723489T2 (de) Verfahren und System zur Verwaltung von Bau- und Produktionsinformation
EP1669852B1 (de) Verfahren und Computerprogramm zum Umwandeln eines Eingangs-Dokumentendatenstroms mit einem oder mehreren Dokumenten in eine strukturierte Datendatei
DE10101345A1 (de) Kombination aus aufgaben- und dateiorientierter Benutzerschnittstelle
DE10120869A1 (de) Verwendung eines Index für den Zugriff auf eine mehrdimensionale Subjektdatenbank
DE19959765B4 (de) Datei-Editor für mehrere Datenuntermengen
DE60203525T2 (de) Vorrichtung und verfahren in einer büroapplikation zur bereitstellung von inhaltsabhängiger hilfeinformation
DE202011110895U1 (de) Echtzeitsynchronisierte Bearbeitung von Dokumenten durch mehrere Benutzer für das Bloggen
DE69719641T2 (de) Ein Verfahren, um Informationen auf Bildschirmgeräten in verschiedenen Grössen zu präsentieren
DE3141571A1 (de) "tischcomputer mit tasteneingabefeld"
WO2010124853A2 (de) Verfahren zur erzeugung mindestens einer anwendungsbeschreibung
DE60310881T2 (de) Methode und Benutzerschnittstelle für das Bilden einer Darstellung von Daten mit Meta-morphing
DE102013203831A1 (de) Verfahren und System für ein Master-Seiten-basiertes integriertes Editieren und eine dynamische Layout-Aktivierung
DE602004003230T2 (de) System und Verfahren in einer Datentabelle zur Erzeugung von rekursiven skalierbaren Vorlageninstanzen
DE602004003140T2 (de) System und verfahren in einer datentabelle zur verwaltung von löschoperationen in rekursiven skalierbaren vorlageninstanzen
DE60019996T2 (de) System zum Koordinieren von Dokumenten und Aufgaben für einen Rechner

Legal Events

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