DE69601151T2 - Interaktives sytem zum generieren von berichten und verfahren zu seinem betrieb - Google Patents

Interaktives sytem zum generieren von berichten und verfahren zu seinem betrieb

Info

Publication number
DE69601151T2
DE69601151T2 DE69601151T DE69601151T DE69601151T2 DE 69601151 T2 DE69601151 T2 DE 69601151T2 DE 69601151 T DE69601151 T DE 69601151T DE 69601151 T DE69601151 T DE 69601151T DE 69601151 T2 DE69601151 T2 DE 69601151T2
Authority
DE
Germany
Prior art keywords
worksheet
layout
cell
model
definition
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
DE69601151T
Other languages
English (en)
Other versions
DE69601151D1 (de
Inventor
Walter J. Jr. Richardson Tx 75082 Buehring
Brian M. Coppell Tx 75019 Kennedy
Lamott G. Dallas Tx 75238 Oren
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.)
I2 Technologies Inc
Original Assignee
I2 Technologies Inc
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 I2 Technologies Inc filed Critical I2 Technologies Inc
Publication of DE69601151D1 publication Critical patent/DE69601151D1/de
Application granted granted Critical
Publication of DE69601151T2 publication Critical patent/DE69601151T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • Economics (AREA)
  • General Physics & Mathematics (AREA)
  • Marketing (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • General Business, Economics & Management (AREA)
  • Operations Research (AREA)
  • Computational Linguistics (AREA)
  • Development Economics (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • User Interface Of Digital Computer (AREA)
  • Investigating Or Analysing Biological Materials (AREA)
  • Input From Keyboards Or The Like (AREA)

Description

    TECHNISCHES GEBIET DER ERFINDUNG
  • Diese Erfindung betrifft allgemein das Gebiet elektronischer Systeme und insbesondere ein interaktives Berichtserzeugungssystem und ein Betriebs-Verfahren.
  • HINTERGRUND DER ERFINDUNG
  • Konventionelle Planungssoftwareanwendungen werden in einer breiten Vielfalt von Industrien verwendet, um verschiedene Planungszwecke zu erfüllen. Diese Planungssoftwareanwendungen verwenden generell ein Modell der Umgebung des Benutzers, für welchen die Planung gewünscht wird. Im Herstellungs-Kontext kann Personal Planungssoftware einsetzen, um Lösungen für Probleme zu entwickeln und um in einem gegebenen Markt intelligent und kompetent zu reagieren. Es wird Planungssoftware benötigt, die durch Benutzer programmierbar ist, um die zu beantwortenden Fragen in einem für den Benutzer brauchbaren Format zu beantworten.
  • Der Produktivitätsanstieg der Herstellungsplanungssoftware kann durch die Möglichkeiten der Software selbst begrenzt sein. Konventionelle Planungssoftware kann außerstande sein, benötigte Berichte zu erzeugen, benötigte Analysen auszuführen, welche die benötigten Modifikationen eines Modells erlauben, oder das zu lösende Problem zu modellieren. Demzufolge haben Benutzer eingeschränkte Möglichkeiten, da viele hilfreiche Planungsaufgaben nicht vernünftig manuell ausgeführt werden können und die Planungssoftware nicht in der Lage ist, sie automatisch auszuführen.
  • Ein grundlegendes Bedürfnis von Fertigungspersonal ist es z.B., Kundenberichte zu erzeugen, welche gewünschte Informationen in Formaten, Begriffen und Einheiten angeben, die bei den täglichen Herstellungsvorgängen verwendet werden. Benutzer von Planungssoftware sollten nicht manuell eine große Menge von Daten durchsuchen müssen, um gewünschte Informationen zu finden und die gewünschte Analyse zu vervollständigen. Ebenso sollten Benutzer nicht Daten gedanklich von einem Einheitensystem in Einheiten umwandeln müssen, welche im Herstellungsbereich verwendet werden. Suchen, Sortieren, Filtern, Umwandeln und Übersetzen ist Arbeit, die bevorzugt von Planungssoftwareanwendungen handhabbar ist.
  • Der Programmiermechanismus, der von nichtprogrammierenden Anwendern am weitesten verbreitet verwendet wird, ist das konventionelle Spreadsheet wie bei LOTUS 1-2-3 und MICROSOFT EXCEL. Häufig entwickeln Planer, Einkäufer, Verkäufer und andere, mit inadequaten Planungssoftwareanwendugen konfrontierte anspruchsvolle Analysen und Berichte unter Verwendung konventioneller Spreadsheet-Tools.
  • Im Gegensatz zu konventionellen Planungssoftwareanwendungen ist es vorteilhaft, daß eine Planungssoftwareanwendung durch das Personal, das die Planungswerkzeuge benötigt, direkt programmierbar ist. Für einen Benutzer ist es problematisch, daß er zu einem örtlichen Systemunterstützer oder -programmierer oder zu dem Software-Vertreiber wechseln muß, um eine neue Analyse zu initiieren oder kleine Anpassungen vorzunehmen. Es ist ebenfalls problematisch, wenn ein Benutzer nicht in der Lage ist, mit unterschiedlichen Optionen und Möglichkeiten zu experimentieren, um eine Analyse von und eine Schnittstelle zu der modellierten Umgebung zu entwickeln, ob dies Herstellung, Distribution, Versorgung oder andere Planungsumgebungen sind. Es ist ebenfalls vorteilhaft, daß ein Benutzer in die Lage versetzt wird, eine Planungsanalyse durch eine direkte Interaktion mit einem Berichtssystem zu verwirklichen.
  • Das amerikanische Patent US-A-5,189,608 offenbart ein Finanzberichtssystem, bei welchem die Daten in einem vorbestimmten Format gespeichert sind und benutzerdefinierbare Berichte aus diesem Datensatz erzeugbar sind.
  • Das amerikanische Patent US-A-5,361,393 offenbart ein System zum Heraufladen von Daten von einem Terminal-Computer zu einem Host-Computer, wobei sie in einer Einzelzeilen-, Mehrfachspalten-Form innerhalb eines Spreadsheet geladen werden.
  • Das amerikanische Patent US-A-5,423,033 offenbart ein System zum Erzeugen eines sekundären Berichtes aus einem primären Bericht.
  • Die europäische Offenlegung EP-A-0,067,303 offenbart ein System zum Erzeugen von Berichten, in welchem eine Berichts-Schablone erzeugt und verwendet wird, um Kode zum Erzeugen eines mit der Schablone übereinstimmenden Berichtes zu erzeugen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Es ist ein Bedürfnis nach einem Berichts-Erzeugungssystem entstanden, das Programmierbarkeit, Modell-Unabhängigkeit und Interaktivität bereitstellt.
  • Erfindungsgemäß werden ein interaktives Berichtserzeugungssystem und ein Betriebs-Verfahren angegeben, die Nachteile und Probleme im wesentlichen beseitigen oder verringern, welche mit konventionellen Planungs- und Spreadsheet- Softwareanwendungen verbunden sind.
  • Die Erfindung ist entsprechend den Ansprüchen 1 (System) und 20 (Verfahren) definiert.
  • Bevorzugte Ausführungsformen der vorliegenden Erfindung ermöglichen einen interaktiven Zugriff auf ein Modell einer Benutzerumgebung durch Berichtsfunktionen, bei welchen die Funktionen parametrisiert und von dem Modell unabhängig sind. Die Zellen in einem Arbeitsblatt eines Berichtes haben "set"- Ausdrücke als Ergänzung zu "get"-Ausdrücken, so daß ein Bearbeiten der Zelle in Datenänderungen in dem Benutzermodell gegenüber einfachen Änderungen in der Zelle resultieren kann.
  • In bevorzugten Ausführungsformen der Erfindung weisen die von dem Arbeitsblatt und Modellzugriffsfunktionen zurückgegebenen Werte einen gut definierten Typ auf. Der Typ erlaubt Typ-sensitive Interaktion und Hilfe. Weiterhin erlaubt der Typ überlastete Funktionen, welche Funktionen mit dem gleichen Namen sind, welche unterschiedliche Typen von Argumenten benutzen und jeweils unterschiedliches Verhalten aufweisen können.
  • Ein bevorzugtes Merkmal der vorliegenden Erfindung ist die Bereitstellung unterschiedlicher Klassen von Arbeitsblättern in Berichten, wie normale (eine Zellenformel führt zu einem Wert) und wiederholende (eine Zellenformel wird in vielen Zellenwerten wiederholt) Arbeitsblätter.
  • Ein weiteres bevorzugtes Merkmal der vorliegenden Erfindung ist die Bereitstellung unterschiedlicher Klassen von Layouts, welche jeder Klasse von Arbeitsblättern in Berichten zugeordnet sind, sowie tabellenartige, Balkendiagramme, Gantt- Diagramme und Menü-Layouts. Weiterhin erlaubt die vorliegende Erfindung unterschiedliche Tabellen-Layouts und insbesondere das flexible Achsenkreuz- Layout für wiederholte Arbeitsblätter in Berichten.
  • Ein weiteres bevorzugtes Merkmal ist die Fähigkeit von Layouts, unterschiedliche Steuerungen für die Anzeige von und Interaktion mit den Zellen in dem Arbeitsblatt eines Berichtes zu verwenden. Beispiele der unterschiedlichen, bereitgestellten Steuerungen beinhalten unterschiedliche Klassen von Steuerungen zur Anzeige und Wechselwirkung einschließlich Text-, Einschub-, Gantt-Diagramm- und Balken- Diagramm-Steuerungen.
  • Ein weiteres bevorzugtes Merkmal der vorliegenden Erfindung ist die Leistungsfähigkeit einer grafischen Benutzerschnittstellen-(GUI)-Spezifikation in der Berichts- Spezifikation, wo Befehle für Steuerungen GUI-Ereignis-Handlern entsprechen, Steuerungen in Layouts entsprechen GUI-Widgets, Layouts in den Berichten entsprechen GUI-Fenstersegmenten, Menüs und Dialogboxen und ein Bericht entspricht einem GUI-Fenster.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Ein besseres Verständnis der vorliegenden Erfindung und deren Vorteile kann anhand der beigefügten Beschreibung in Verbindung mit den beigefügten Zeichnungen gewonnen werden, in welchen gleiche Bezugszeichen gleiche Merkmale bezeichnen. Dabei zeigen:
  • Fig. 1 ein Blockschaltbild eines Berichtserzeugungssystems, welches entsprechend den Lehren der vorliegenden Erfindung aufgebaut ist;
  • Fig. 2 eine Tabelle, welche Ausdrücke zeigt, die eine Liste und die Anzahl der Zellen verwenden, welche aus der Bewertung der Ausdrücke resultieren;
  • Fig. 3A, 3B, 3C und 3D Tabellen, welche die Beispiele von Listen und Bewertungen von Ausdrücken zeigen, die Funktionen von Listen sind;
  • Fig. 4A ein Abhängigkeitsdiagramm; und
  • Fig. 4B, 4C, 4D, 4E, 4F und 4 G Tabellen, welche Beispiele von Achsenkreuz-Layouts von Zellen zeigen, die aus der Bewertung von Ausdrücken resultieren.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG Berichtserzeugungssystem
  • Fig. 1 ist ein Blockschaltbild eines Berichtserzeugungssystems, das allgemein mit 10 bezeichnet ist und entsprechend den Lehren der vorliegenden Erfindung aufgebaut ist. Das Berichtserzeugungssystem 10 beinhaltet einen Kompilierer 12. Der Kompilierer 12 empfängt eine Berichtsdefinition 14 und Modellschnittstellenfunktionen 16. Die Berichtsdefinition 14 bezieht sich namentlich auf wenigstens eine Layout-Festlegung 18. Die Layout-Festlegung 18 bezieht sich namentlich auf eine Arbeitsblattdefinition 20 und wenigstens eine Steuerungsdefinition 22. Die Arbeitsblattdefinition 20 beinhaltet wenigstens eine Zellen- Definition 24, die wenigstens einen Ausdruck 26 beinhaltet. Es sollte wenigstens eine Steuerungsdefinition 22 vorhanden sein, die jeder Zelldefinition 24 zugeordnet ist, die für den Benutzer sichtbar ist. Eine Steuerungsdefinition kann Null oder mehr Zellendefinitionen zugeordnet sein und eine Zellendefinition kann Null oder mehr Steuerungsdefinitionen zugeordnet sein. Die Ausführungsform in Fig. 1 ist nicht vorgesehen und sollte auch nicht als Beschränkung des Umfangs der vorliegenden Erfindung betrachtet werden. Mehr als eine Berichtsdefinition 14 können die gleiche Layout-Definition 18 verwenden und mehr als eine Layout-Definition 18 können die gleiche Arbeitsblattdefinition 20 verwenden.
  • Der Kompilierer 12 erzeugt eine Berichtsschablone 28 aus einer Berichtsdefinition 14 und Modellschnittstellenfunktionen 16. Die Berichtsschablone 28 beinhaltet eine Layout-Schablone 30 für jede Layout-Definition 18 in der Berichtsdefinition 14. Die Layout-Schablone 30 beinhaltet eine Arbeitsblatt-Schablone 32 entsprechend der Arbeitsblattdefinition 20. Die Layout-Schablone 30 beinhaltet ebenfalls eine Steuerungs-Schablone 34 für jede Steuerungs-Definition 22 in der Berichts- Definition 14. Die Arbeitsblatt-Schablone 32 beinhaltet eine Zellen-Schablone 36 für jede Zellen-Definition 24 in der Berichts-Definition 14. Die Zellen-Schablone 36 beinhaltet einen Ausdruck 38 für jeden Ausdruck 26 in der Zelldefinition 24.
  • Eine Bewertungsvorrichtung 40 empfängt die Berichtsschablone 28 und Modellschnittstellenfunktionen 16. Die Bewertungsvorrichtung 40 greifte ebenfalls auf ein Benutzermodell 42 zu. Das Benutzermodell 42 umfaßt ein Modell einer Benutzer umgebung sowie einer Herstellungsumgebung. Die Bewertungsvorrichtung 40 erzeugt eine Berichts-Instanz 44. Die Berichts-Instanz 44 beinhaltet eine Layout- Instanz 46 entsprechend der Layout-Schablone 30. Die Layout-Instanz 46 beinhaltet eine Arbeitsplatz-Instanz 48 und eine Steuerungs-Instanz 50 entsprechend der Arbeitsplatz-Schablone 32 und der Steuerungs-Schablone 34. Die Arbeitsblatt- Instanz 48 beinhaltet wenigstens eine Zellen-Instanz 52 entsprechend einer Bewertung der Zellen-Schablone 36. Die Zellen-Instanz 52 beinhaltet einen Wert 54. Eine Erzeugungseinrichtung 56 ist an die Berichts-Instanz 44 gekoppelt. Die Erzeugungseinrichtung 56 erzeugt einen Bericht 58 und verwaltet eine Wechselwirkung mit dem Bericht 58.
  • In einer Ausführungsform der vorliegenden Erfindung umfaßt das Berichtserzeugungssystem 10 ein Computer-Softwaresystem, welches durch einen digitalen Mehrzweckcomputer ausgeführt wird. In dieser Ausführungsform hält eine Datenspeichervorrichtung 60 die Modell-Schnittstellenfunktionen 16 und ein Benutzermodell 42. Eine Datenspeichervorrichtung 62 hält die Berichtsdefinition 14, die Berichts-Schablone 28 und die Berichts-Instanz 44. Die Datenspeichervorrichtungen 60 und 62 können magnetische Speichervorrichtungen umfassen, Speichervorrichtungen oder andere solche Datenspeichervorrichtungen. Weiterhin können die Datenspeichervorrichtungen 60 und 62 getrennt sein oder Teile einer einzelnen Vorrichtung umfassen. Ein Ausführungsspeicher 64 hält den Kompilierer 12, die Bewertungsvorrichtung 40 und Anpassungsvorrichtung 56, so daß jede von einem Prozessor in dem digitalen Mehrzweckcomputer ausführbar ist. Der Ausführungsspeicher 64 enthält ebenfalls Modell-Schnittstellenfunktionen 16 zugeordnete, ausführbare Kodes. Der Ausführungsspeicher 64 kann eine Speichervorrichtung oder eine andere Datenspeichervorrichtung umfassen. Eine Anzeigevorrichtung 66 zeigt den Bericht 48 zur Betrachtung und Interaktion mit einem Benutzer des Berichtserzeugungssystems 10 an. Ein Drucker ist ein Beispiel einer Anzeigevorrichtung 66, die den Bericht anzeigen kann, jedoch keine Interaktion mit dem Bericht unterstützt.
  • Berichtserzeugungsmodell
  • Im Betrieb erzeugt der Kompilierer 12 eine Berichts-Schablone 28 aus der Berichtsdefinition 14 unter Verwendung der Modell-Schnittstellenfunktionen 16. Die Berichts-Schablone 28 wird für die Bewertungsvorrichtung 40 bereitgestellt. Die Bewertungsvorrichtung 40 erzeugt eine Berichtsinstanz 44 aus der Berichts- Schablone 28 unter Verwendung der Modell-Schnittstellenfunktionen 16 und der Daten von dem Benutzermodell 42. Die Berichtsinstanz 44 wird für eine Anpassungsvorrichtung 56 bereitgestellt. Die Anpassungsvorrichtung 56 erzeugt einen Bericht 58 aus der Berichtsinstanz 44 und verwaltet die Benutzer-Interaktion mit dem Bericht 58. In diesem Berichts-Erzeugungsmodus verarbeitet das Berichtserzeugungssystem 10 die Berichtsdefinition 14, um einen Bericht 58 zu erzeugen, welcher die gewünschte Berichtsinformation mit Daten aus dem Benutzermodell 42 anzeigt und Interaktion damit zuläßt.
  • Das Berichts-Erzeugungssystem 10 ist benutzerprogrammierbar, modellunabhängig und interaktiv. Die Modell-Unabhängigkeit entsteht aus der Tatsache, daß die Berichts-Definition 14 den gewünschten Bericht ungeachtet der in dem Benutzermodell 42 enthaltenen Datenwerte generisch definiert. Die Berichts-Definition 14 beinhaltet eine Layout-Definition 18 für jedes in dem Bericht 58 gewünschte Fenstersegment. Die Layout-Definition 18 beinhaltet eine Arbeitsblatt-Definition 20 und eine Steuerungs-Definition 22 für jedes unabhängig definierte Fensterelement, das in dem Fenstersegment in dem Bericht 58 gewünscht ist. Jedes Fensterelement zur Steuerung ist bestimmten, durch die Arbeitsblatt-Definition 20 definierten Zellen zugeordnet und zeigt sie an und stellt eine Interaktion damit bereit. Die Arbeitsblatt- Definition 20 definiert wenigstens eine Zellendefinition 24 mit wenigstens einem Ausdruck 26.
  • Der Kompilierer 12 empfängt eine Berichts-Definition 14 als Eingabe. Der Kompilierer 12 erzeugt eine entsprechende Berichtsschablone 28, welche zur Verwendung durch die Bewertungsvorrichtung 40 geeignet ist. Die Kompilierung einiger der in den Ausdrücken 26 verwendeten Funktionen sind durch Modell- Schnittstellenfunktionen 16 vorgegeben. Die resultierenden Ausdrücke 38 beziehen sich auf die entsprechende ausführbare Funktion in den Modell-Schnittstellenfunktionen 16 zur Verwendung durch die Bewertungsvorrichtung 40.
  • Die Bewertungsvorrichtung 40 empfängt eine Berichts-Schablone 28 als Eingabe. Die Bewertungsvorrichtung 40 greift auf Modell-Schnittstellenfunktionen 16 zu, um Funktions-Implementationen zu erhalten, um jeden Ausdruck 38 in der Berichts- Schablone 28 zu bewerten. Die Bewertungsvorrichtung 40 greift auf Daten in dem Benutzer-Modell 42 entsprechend der Funktionsimplementation beim Bewerten jedes Ausdrucks 38 zu. Die Bewertungsvorrichtung 40 erzeugt eine Berichts-Instanz 44, in welcher jede Zellen-Schablone 36 für eine oder mehrere Zellinstanzen 52 bewertet wurde, von denen jede einen Wert 54 aufweist. Der Wert 54 ist das Ergebnis des Bewertungsausdrucks 38 mit Daten aus dem Benutzermodell 42. Die Bewertungsvorrichtung 40 konvertiert ebenfalls jede Steuerungs-Schablone 34 in eine Steuerungs-Instanz 50, welche für die Verwendung durch die Erzeugungsvorrichtung 56 geeignet ist, um interaktive Steuerungen anzuzeigen, welche Zellen- Werte 54 reflektieren.
  • Die Erzeugungsvorrichtung 56 empfängt die Berichts-Instanz 44 als Eingangssignal. Die Erzeugungsvorrichtung 46 verarbeitet jede Steuerungsinstanz 50 und Arbeitsblatt-Instanz 48, welche jeder Layout-Instanz 46 zugeordnet ist, um den Bericht 58 zu erzeugen und anzuzeigen. Die Erzeugungsvorrichtung 56 kann ebenfalls die Interaktion mit dem erzeugten Bericht 58 im Fall elektronisch angepaßter Berichte verwalten. Der Bericht 58 enthält Daten aus dem Benutzermodell 16 entsprechend der durch die Berichts-Instanz 44 festgelegten, gewünschten Berichtsanalyse.
  • Interaktiver Modus
  • Das Berichtserzeugungssystem 10 kann für einen Benutzer interaktiv sein, nachdem ein Bericht 58 erzeugt und angezeigt ist. In diesem interaktiven Modus kann ein Benutzer mit dem Bericht 58 interagieren, um das Benutzermodell 42 zu modifizieren und die Berichts-Instanz 44 zu modifizieren. In einer Ausführungsform der vorliegenden Erfindung wird der Bericht 58 auf einer grafischen Benutzeroberfläche (GUI) angezeigt und eine Wechselwirkung wird durch Aktionen gesteuert, die ein Benutzer mit Steuerungen der GUI-Anzeige vornimmt.
  • Im interaktiven Modus stellt der Bericht 58 Informationen für die Erzeugungsvorrichtung 56 bereit, welche von einem Benutzer vorgenommene Aktionen beschreiben. Die Erzeugungsvorrichtung 56 nimmt entsprechende Änderungen in der Berichts-Instanz 44 vor, wie das Verändern des Wertes 54 für die Zellinstanz 52. Die Bewertungsvorrichtung 40 empfängt die Änderung für die Berichts-Instanz 44, greift auf die Berichts-Schablone 28 zu, falls erforderlich, und nimmt die geeigneten Änderungen der Datenwerte im Benutzermodell 42 vor. Die Bewertungsvorrichtung 40 bewertet die Berichts-Schablone 28 neu und regeneriert die Berichts-Instanz 44, wenn sich Werte anderer Zellen infolge einer Änderung von Datenwerten in dem Benutzermodell 42 ändern.
  • Die Modifikation des Benutzermodells 42 und der Berichts-Instanz 44 werden durch die Verwendung von "get"- und "set"-Ausdrücken für den Ausdruck 38 in der Zellen-Schablone 36 verwirklicht. Der "get"-Ausdruck informiert die Bewertungsvor richtung 40, welche Daten als Wert von einem Benutzermodell 42 zu erhalten sind, wenn ein Ausdruck 38 bewertet wird. Der "set"-Ausdruck informiert die Bewertungsvorrichtung 40 über eine geeignete Reaktion auf eine Änderung in dem Wert 54, welche von einem den Bericht 58 modifizierenden Benutzer interaktiv bewirkt wurde. Wenn der Wert 54 für die Zellen-Instanz 52 sich ändert, bestimmt die Bewertungsvorrichtung 40, ob Datenwerte in dem Benutzermodell 42 modifiziert werden. Beispielhaft kann eine erste Zelle einen Wert für eine Warteschlangenzeit geben, welche einer bestimmten Herstellungs-Ressource zugeordnet ist. Der der ersten Zelle zugeordnete "get"-Ausdruck kann die Bewertungsvorrichtung 40 informieren, welche Daten in der Warteschlangenzeit von dem Benutzermodell 42 erhalten werden. Der der ersten Zelle zugeordnete "set"-Ausdruck kann die Bewertungsvorrichtung 40 informieren, daß eine Änderung des Wertes der ersten Zelle in einer Veränderung der Daten in einem Benutzermodell 42 resultiert, damit der von dem Benutzer angegebene Warteschlangen-Zeitwert übereinstimmt. Eine zweite Zelle kann eine Summe der Warteschlangen-Zeit und einer der gleichen Ressource zugeordneten Wartezeit anzeigen. Ein dieser zweiten Zelle zugeordneter "get"-Ausdruck kann die Bewertungsvorrichtung 40 informieren, welche Daten von dem Benutzermodell 42 für die Warteschlangen-Zeit zu holen sind, und die Wartezeit und die Summe der zwei Werte. Der der zweiten Zelle zugeordnete "set"- Ausdruck kann die Bewertungsvorrichtung 40 informieren, daß eine Änderung in dem Wert der zweiten Zelle nur bei einer Änderung der Wartezeit in dem Benutzermodell 42 resultieren soll. Somit ändert die Bewertungsvorrichtung 40 die Daten in einem Benutzermodell 42 für die Wartezeit von 5 auf 10, wenn die Warteschlangen- Zeit 10 ist und die Wartezeit 5 ist und ein Benutzer den Wert der zweiten Zelle von 15 auf 20 ändert.
  • Das Berichtserzeugungssystem ist programmierbar, indem die Berichts-Definition 14 erzeugt und von einem Benutzer durch ein grafisches oder Text-Berichts- Werkzeug bereitgestellt wird. Die Berichts-Definition 14 bezieht sich auf eine oder mehrere Layout-Definitionen 18. Jede Layout-Definition 18 bezieht sich auf eine Arbeitsblatt-Definition 20 und besteht aus einer Anzahl von Steuerungs-Definitionen 22. Mehrere Berichts-Definitionen 14 können sich Layout-Definitionen 18 teilen. Eine Layout-Definition 18 kann sich Arbeitsblatt-Definitionen 20 teilen. Jede Arbeitsblatt-Definition 20 besteht aus einer oder mehreren Zellen-Definitionen 24, welche einen Ausdruck 26 beinhalten. Jede Steuerungs-Definition 22 ist Null oder mehr Zellen-Definitionen 24 der Arbeitsblatt-Definition 20 zugeordnet.
  • Die Berichts-Definition 14 wird von dem Kompilierer 12 in die Berichts-Schablone 28 kompiliert. Die Berichts-Schablone 28 hat eine mit der Berichts-Definition 14 vergleichbare Form und Struktur. Der Kompilierer 12 verwendet Modell-Schnittstellenfunktionenen 16, welche zum Zugriff auf das Benutzermodell 42 ausgebildet sind, um in Ausdrücken 38 plazierte Funktionsaufrufe zu definieren. Die Berichts- Schablone 28 wird unter Verwendung von Implementationen von Modell-Schnittstellenfunktionen 16 und Daten vom Benutzermodell 42 durch die Bewertungsvorrichtung 40 bewertet. Die Bewertungsvorrichtung 40 bewertet die Berichts- Schablone 28 zum Erzeugen der Berichts-Instanz 44. Die Berichts-Instanz 44 kann eine Anzahl von Anpassungen einschließlich On-Screen-grafischen Benutzeroberflächen (GUI's) oder Papier-Berichten ansteuern. Entsprechend den Lehren der vorliegenden Erfindung ist die Berichts-Instanz 44 nicht statisch. Durch Wechselwirkung eines Benutzers mit dem Bericht 58 arbeitet die Berichts-Instanz 44 als interaktives Werkzeug, welches einem Benutzer die Möglichkeit gibt, die Daten in dem Benutzermodell 42 zu beeinflussen und Werte in der Berichts-Instanz 44 zu ändern.
  • Wechselwirkung mit dem Benutzermodell
  • Das Berichtserzeugungssystem 10 stellt eine Wechselwirkung mit dem Benutzermodell 42 bereit. Das Benutzermodell 42 umfaßt einen Datenaufbau zum Unterstützen gewünschter Berichtsfunktionalität wie einer Herstellungsplanung. Ausdrücke 26 in der Berichts-Definition 14 unterstützen Funktionen zum Zugreifen auf Benutzer-sichtbare Daten in dem Benutzermodell 42. Diese Funktionen unterstützen weiterhin Holen und Einstellen von Werten in dem Benutzermodell 42, wie oben beschrieben. Bearbeiten einer Zelle in dem Bericht 58 kann zwei Wirkungen haben: Der Benutzer kann ändern, auf welchen Abschnitt des Benutzermodells 42 die Zelle zugreift, oder der Benutzer kann den Wert eines Datenfeldes in dem Benutzermodell 42 ändern, auf das zugegriffen wird, um den Zellen-Wert zu erzeugen.
  • Entsprechend den Lehren der vorliegenden Erfindung sind Funktions-Implementationen, die Informationen aus dem Benutzermodell 42 herausziehen, einem Typ zugeordnet, so daß der Datentyp (Menge, Zahl, Zeichenfolge, Pfadname etc. oder ein Benutzer-Modelltyp wie ein Vorgang, eine Ressource, ein Puffer etc.), welcher durch jede Funktion herausgezogen wird, bekannt und geprüft ist. Wenn z.B. eine Funktion erwartet, daß eine Menge übergeben wird, aber stattdessen ein Pfadname übergeben wird, wird der Aufruf dieser Funktion nicht kompiliert und der Kompilierer 12 gibt einen Fehler aus. Parameter werden zu Arbeitsblatt-Definitionen 20 ausgegeben, welche Modell unabhängig sind. Z.B. kann eine Arbeitsblatt-Definition 20 definiert sein, welche die Zuordnung der Anzeige von Feldern zu einer Ressource ohne Festlegen, welcher Ressource, bewirkt. Beim Aufrufen oder Initialisieren dieser Arbeitsblatt-Definition kann die gewünschte Ressource als ein Parameter übergeben werden. Parameter eines Arbeitsblattes oder Berichtes definieren, welche zusätzliche Information mit der Arbeitsblatt- oder Berichts-Schablone kombiniert werden müssen, so daß sie eine Arbeitsblatt- oder Berichts-Instanz werden kann.
  • Arbeitsblatt-Klassen
  • Die Arbeitsblatt-Instanz 48 ist eine Zusammenstellung von Zellen, die aus bewerteten Ausdrücken besteht. Die Zellen werden mit Zeile-Spalte bezeichnet, wie bei einem konventionellen Spreadsheet, sind aber nicht auf diese Benennung beschränkt, wie bei einem konventionellen Spreadsheet. Arbeitsblätter, in welchen Zellen definiert sind, können eine von mehreren unterschiedlichen Arbeitsblatt- Klassen aufweisen.
  • Eine Klasse von Arbeitsblättern erzeugt Zellen wie in einem traditionellen Spreadsheet, so daß für jede Zelle in der Arbeitsblatt-Definition 20 eine Zelle in der Arbeitsblatt-Instanz 48 erzeugt wird. Zellen werden in der gleichen Zeilen- und Spalten-Position erzeugt, wie die Zellen benannt sind.
  • Entsprechend den Lehren der vorliegenden Erfindung können andere Arbeitsblatt- Klassen definiert sein, die sich sehr von den Spreadsheet-Klassen unterscheiden. Z.B. kann eine Menü-Arbeitsblatt-Klasse Zellen erzeugen, so daß jede Zelle ein Menü-Eintrag miteinem Bezeichner, Mnemonic und Tastatur-Beschleuniger ist. Eine weitere Arbeitsblatt-Klasse ist ein replizierendes Arbeitsblatt, welches hunderte von Zellen bei der Initialisierung der Arbeitsblatt-Instanz 48 für jede Zelle in der Arbeitsblatt-Definition 20 erzeugen kann. In die Zellen werden abhängig von der Information in dem Datensatz eines Benutzermodells 42 repliziert.
  • Replizierendes Arbeitsblatt
  • Fig. 2 illustriert eine Tabelle, welche Ausdrücke verwendende Listen und die Anzahl von Zellen zeigt, welche bei der Bewertung der Listen-Ausdrücke resultieren. Ein Datentyp, der durch einen Arbeitsblatt-Ausdruck zurückgegeben werden kann, ist "Liste von Elementen den Typs V" oder "Typ-LISTE < V> ". Ein replizierendes Arbeitsblatt kann so bewertet werden, daß eine Zelle für jedes Element in einer durch einen einzelnen Zellenausdruck berechneten Liste für jedes Element initialisiert wird. Zellen, die eine Zelle verwenden, die eine Liste berechnen, erkennen eine Typen-Übereinstimmung der Typen der Elemente, die sich in der Liste befinden. Die gleiche Anzahl von Zellen, welche für eine Liste generiert werden, können für jeden Zellenausdruck erzeugt werden, der aus der Liste berechnet wird. Die Tabelle in Fig. 2 gibt Beispiele von Ausdrucks-verwendenden Listen an.
  • Eine Zelle, deren Ausdruck für Liste < V> bewertet wird, kann mit einer Zelle für jedes V in der Liste initialisiert werden. Die Anzahl der Zellen hängt von der Größe der Liste ab, welche wiederum von dem Benutzermodelldatensatz abhängt, auf welchen das Arbeitsblatt angewendet wird. Z.B. wird angenommen, daß eine Zelle A1, die auf das Modellfeld "Primzahlen" zugreift, eine Liste mit drei Zahlen zurückgibt, die Primzahlen sind: 2, 3 und 5. Eine Liste < T> wird auf gleiche Weise behandelt wie eine Liste < V> . Bei der Betrachtung gibt eine Zelle A2, die ein anderes Feld "Vokale" anspricht, eine Liste mit fünf Zeichen mit den Vokalen zurück: a, e, i, o und u.
  • Wie in Zeile drei in Fig. 2 gezeigt, kann ein Zellausdruck einen Wert von Typ S unter Verwendung der Zelle berechnen, welche die Liste < T> berechnet. Somit kann der Ausdruck die gleiche Anzahl von Zellen initialisieren wie Elemente in der Liste < T> . Die Beziehung zwischen mit T's initialisierten, entsprechenden Zellen, und die mit S's initialisiert sind, wird entsprechend den Lehren der vorliegenden Erfindung unterstützt. Die Zellen können z.B. in der gleichen Zeile oder Spalte angezeigt werden.
  • Wie in Zeile vier in Fig. 2 gezeigt, kann ein weiterer Zellen-Ausdruck einen Wert des Typs R berechnen, der ein T und V aus der Liste < T> und der Liste < V> verwendet. In diesem Fall kann ein R berechnet werden für jede Kombination von T und V, welche in der Liste < T> und der Liste < V> berechnet sind. Wenn die Liste < T> in zehn T's resultiert und die Liste < V> in sieben V's resultiert, werden 70 R's berechnet. Wiederum kann die Beziehung zwischen jedem R und dem T und dem V, aus welchem es berechnet wurde, beibehalten werden. Wenn z.B. die T's in Zeilen und die V's in Spalten sind, können die R's in dem Zeilen-Spalten- Schnittpunkt plaziert werden, welche zu dem T und V gehören, aus welchem jedes R berechnet wurde.
  • In Zeile fünf in Fig. 2 berechnet eine Zelle eine Liste < Q> für jedes T in der Liste < T> . In diesem Fall kann die Initialisierung der Zelle eine Zelle für jedes Q in jeder Liste < Q> beinhalten, welche aus jedem T in der Liste < T> berechnet ist. Wenn drei T's berechnet sind, kann z.B. das erste vier Q's ergeben, das nächste kann zwei Q's ergeben und das letzte kann fünf Q's ergeben. Dies sind elf Q's und jedes wird in einer getrennten Zelle initialisiert. Die Beziehung zwischen den Q's und den T's, aus welchen jedes Q berechnet wurde, kann beibehalten werden, wie oben erwähnt. Die Beziehung resultiert in einer Hierarchie, wo jedes Eltern-T mehrere Kinder-Q's aufweisen kann.
  • Ein Ausdruck kann eine Liste < P> aus einem T und einem V berechnen, welche jeweils aus der Liste < T> und der Liste < V> hervorgehen, wie in Zeile 6 in Fig. 2 gezeigt. Das Ergebnis kann eine Zelle für jedes P in jeder Liste < P> , welches aus jeder Kombination von T und V erzeugt wird, sein. D1 kann z.B. die nächste A1- Nummer von Buchstaben berechnen, welche dem Buchstaben in A2 folgen. Wenn A1 einen Wert 2 und A2 einen Wert "a" aufweist, ist die erzeugte Liste für D1 "b" und "c" (die zwei "a" folgenden Buchstaben). Wenn A1 einen Wert 5 und A2 einen Wert "u" aufweist, ist die Liste "v", "w", "x", "y", "z".
  • Schließlich kann in Fig. 2 eine Zelle eine Liste < N> berechnen, die sich auf sich selbst bezieht. Solch eine Zelle ist rekursiv. Eine Zelle A1 kann z.B. die Liste [Element] zurückgeben, die alle Elemente beinhaltet, die erforderlich sind, um ein bestimmtes Element zu bilden. Für jedes Element in dieser Liste kann man versuchen, die Liste [Element] zu finden, die zum Bilden dieses Elements benötigt wird. Durch Fortsetzen auf diese Weise kann der vollständige Baum aus Elementen, die in ein Element eingehen, erzeugt werden. Die "Rekursions"-Funktion unterstützt solche Selbst-referenzierenden Zellen. Die Anfangsliste wird zusammen mit einem zu bewertenden Ausdruck für jeden Lizenzierer der Rekursion übergeben, z.B. #.Kind.
  • Beispiele von auf Listen basierenden Zellen
  • Die Fig. 3A, 3B, 3C und 3D zeigen Beispiele von auf Listen basierenden initialisierten Zellen. In Fig. 3A beinhaltet die Liste A1 drei Elemente: 2, 3 und 5. Die Zelle B1 berechnet (A1 +3). Die Bewertung von B1 wird einmal für jedes Element in der Liste von A1 ausgeführt. Somit ist das Ergebnis für B1 drei Zellen mit den Werten 5, 6 und 8, wie gezeigt.
  • Fig. 3B zeigt basierend auf zwei Listen initialisierte Zellen. Die Zelle B2 berechnet A2, verknüpft mit einer Zeichenfolgen-Darstellung von A1. A2 ist eine Liste von Vokalen: a, e, i, o und u, und A1 ist eine Liste von Primzahlen: 2, 3 und 5. B2 konvertiert die Primzahl von A1 in eine Zeichenfolge und verknüpft die Vokale in A2. Der Ausdruck von B2 wird für jede Kombination von Elementen von A 1 und A2 neu bewertet. Somit werden fünfzehn Zellen initialisiert, wie in Fig. 3B gezeigt.
  • Fig. 3C zeigt eine aus einer Liste erzeugte Liste. Die Zelle C1 berechnet das nächste A1-Vielfache von A1. Für diesen Ausdruck ist A1 eine Zahl. Der Ausdruck von C1, der aus A1 bewertet wird, wird für jede Zahl in A1 neu bewertet. Das Ergebnis ist eine Liste von Zahlen für jeden aus A1 bewerteten C1. Wie in Fig. 3C gezeigt, werden zehn Zellen initialisiert.
  • Fig. 3D zeigt Zellen basierend auf einer zweiten Liste, die selbst auf einer ersten Liste basiert. C2 hat die gleiche Formel wie B2, ist aber aus C1 und A2 statt als B1 und A2 berechnet. C2 erzeugt eine Zelle für jede Kombination von A2 und C1.
  • Somit werden fünfzig Zellen für C2 initialisiert, wie in Fig. 3D gezeigt. Die Beispiele der Fig. 3A bis 3D sind nicht vorgesehen und sollen nicht als Beschränkung des Umfangs der vorliegenden Erfindung betrachtet werden.
  • Layout-Klassen
  • Ein Layout gibt an, wie in einem Arbeitsblatt initialisierte Zellen zur Präsentation für und Interaktion mit einem Benutzer angeordnet werden sollen. Dieses Arbeitsblatt kann viele Layouts aufweisen und jedes Layout kann die gleiche Information auf unterschiedliche Weise darstellen. Es können verschiedene Klassen von Layouts vorhanden sein. Ein Beispiel-Layout für replizierende Arbeitsblätter ist das Achsenkreuz-Layout, welches ermöglicht, daß die erzeugten Zellen hierarchisch auf zwei unterschiedlichen Achsen und in dem Schnittpunkt oder dem "Kreuz" organisiert werden. Dies erlaubt Zellen, welche aus vielen anderen Zellen berechnet sind, bedeutungsvoll angeordnet zu werden und die Beziehung zwischen den Zellen zu zeigen. Alternativ kann das gleiche replizierende Arbeitsblatt mit einem Balkendiagramm-Layout dargestellt sein, welches die Informationen als Balken in einem Histrogramm darstellt. Die Information kann in nebeneinander liegenden Balken, gestapelten Balken und verschachtelten Balken organisiert sein.
  • Achsenkreuz-Layout
  • Ein Achsenkreuz-Layout organisiert Zellen eines replizierenden Arbeitsblattes in drei Sektionen: Der X-Achse, der Y-Achse und dem Kreuz (dem Schnittpunkt der zwei Achsen). In einer Ausführungsform der vorliegenden Erfindung kann jede Zelle im Nullpunkt oder einer der Sektionen erscheinen.
  • Fig. 4A zeigt ein Abhängigkeitsdiagramm und die Fig. 4A, 4B, 4C, 4D, 4E, 4F und 4G stellen Beispiele von Achsenkreuz-Layouts dar. Eine Zelle auf der X- oder Y- Achse kann nicht auf einer anderen Achse erscheinen als jede Zelle, aus welcher sie berechnet ist. Daher können Zellen, die aus Zellen auf beiden Achsen berechnet sind, nur in dem Kreuz erscheinen. Auf einer Achse ist jede Zelle, welche mit anderen Zellen verschachtelt ist, abhängig von und verschachtelt mit jeder Zelle links von ihr. In dem Kreuz sind die Zellen mit jeder der Zellen auf der Achse verschachtelt aber nicht mit anderen Zellen in dem Kreuz verschachtelt. Die Elemente der Fig. 4A bis 4G basieren auf den Zellen und Ausdrücken, die als Beispiel in den Fig. 3A bis 3D verwendet wurden, wie oben beschrieben.
  • Fig. 4A zeigt ein Abhängigkeitsdiagramm. A1 und A2 sind unabhängig (nicht abhängig von anderen Zellen). B1 und C1 hängen von A1 ab. B2 hängt von A1 und A2 ab. C2 ist abhängig von A2 und C1 und ist somit indirekt abhängig von A1.
  • Fig. 4B zeigt ein Layout, wo die Y-Achse A1, B1 und C1 beinhaltet. Elemente auf der Y-Achse werden in Spalten angezeigt, während Elemente auf der X-Achse (in diesem Beispiel leer) in Zeilen angezeigt werden.
  • Fig. 4C zeigt ein Achsenkreuz-Layout, bei welchem die Y-Achse A1, B1 und C1 beinhaltet. Die X-Achse beinhaltet A2 und das Kreuz, wobei das Kreuz als B2 definiert ist. Somit sind die Elemente von A1, B1 und C1 in Spalten angeordnet und die Elemente von A2 in einer Zeile angeordnet. Die Zellen von B2 sind in dem Kreuz angeordnet, wie gezeigt.
  • Fig. 4D zeigt ein Achsenkreuz-Layout, bei welchem die Y-Achse A1, B1 und C1 beinhaltet und die X-Achse beinhaltet A2 und das Kreuz, wobei das Kreuz als C2 definiert ist. Vergleichbar mit Fig. 4C sind die Zellen A1, B1 und C2 in Spalten angeordnet und die Zellen von A2 sind in einer Zeile angeordnet. Die Zellen von C2 sind in dem Kreuz angeordnet, wie gezeigt.
  • Fig. 4E illustriert ein Achsenkreuz-Layout, bei welchem das Kreuz so definiert ist, daß es zwei Listen beinhaltet. In Fig. 4E ist die Y-Achse so definiert, daß sie C1 beinhaltet. Die X-Achse beinhaltet A2 und das Kreuz, wobei das Kreuz als B2 und C2 definiert ist. Bei diesem Layout ist für die X-Achse das Kreuz in A2 ver schachtelt. Somit sind die Zellen des Kreuzes unter den Zellen von A2 gruppiert. Wie gezeigt, sind die Zellen von C1 in einer Spalte angeordnet und die Zellen von A2 sind in einer Zeile angeordnet. Die Zellen des Kreuzes sind entsprechend B2 und C2 jedem Element von A2 angeordnet.
  • Fig. 4F ist vergleichbar mit Fig. 4E, mit der Ausnahme, daß die Verschachtelung der X-Achse verändert ist. In Fig. 4F ist die X-Achse definiert als das Kreuz und A2, wobei das Kreuz B2 und C2 beinhaltet. Die Y-Achse ist wiederum als C1 definiert. In Fig. 4F ist A2 innerhalb des Kreuzes verschachtelt. Somit sind die Zellen des Kreuzes entsprechend B2 und C2 getrennt, wie gezeigt.
  • Fig. 4G zeigt ein Beispiel der Gruppierung. In Fig. 4G ist das Layout so definiert, daß B1 und C1 unter A1 gruppiert sind. Für jeden Wert unter A1 sind sämtliche Titel der Gruppe verschachtelt. In diesem Fall sind die Titel B1 und C1 in Zeilen für jeden Wert von A1 verschachtelt. In einer zweiten Spalte sind die Werte der Gruppe mit und unter dem entsprechenden Gruppen-Titel verschachtelt. Somit werden die C1-Werte in Zeilen mit dem C1-Titel abgelegt. Abhängige Gruppen können ebenfalls definiert sein, welche verschachtelt sind wie Gruppen, aber keine Titelspalte anzeigen. Die Werte werden statt dessen abhängig davon angezeigt, welches unabhängige Gruppenelement in der gegenwärtigen Zeile angezeigt wird. Schließlich muß keine Zeile für den Wert oder Titel erzeugt werden, wenn ein Gruppenmitglied keine Werte hat.
  • Diagramm-Layout-Klassen
  • Es können eine Anzahl unterschiedlicher Layouts vorhanden sein, wie Balkendiagramme (Histogramme mit nebeneinander liegenden, gestapelten und überlappenden Balken), Tortendiagramme, Liniendiagramme und Gantt-Diagramme. Jedes Layout erlaubt die Anordnung und Anzeige der gleichen Zelleninformation aber in unterschiedlichen grafischen Formaten und mit unterschiedlichem interaktiven Verhalten.
  • Ein Balkendiagramm-Layout kann einem Benutzer erlauben, eine Reihe von Zellen festzulegen. Die erste Zelle auf der Achse ist die tiefste, die zweite befindet sich vor der ersten, usw. Eine Gruppe von Zellen dieser Achse zeigt an, daß diese Zellen sich in der gleichen Tiefe nebeneinander positioniert befinden. Die erste Zelle in der Gruppe ist die weitest-linke, die nächste ist rechts davon, usw. Eine Gruppe innerhalb einer Gruppe auf einer Achse kann anzeigen, daß diese Zellen die gleiche Tiefe und die gleiche Links-/Rechts-Position aufweisen, nebeneinander angeordnet und gestapelt sind. Die erste Zelle in der Gruppe innerhalb der Gruppe kann der Boden sein, die nächste befindet sich darauf, usw.
  • Dies ist ein möglicher Regelsatz für ein Balkendiagramm-Layout. Einige Ausführungsformen bieten eine größere Flexibilität, sind aber nicht so einfach. Andere können einfacher sein, sind aber nicht so funktional. Es ist vorteilhaft, verschiedene, unterschiedliche Balkendiagramm-Layouts anzugeben, die unterschiedliche Merkmale und Komplexität bieten.
  • Ein Achsen-Balkendiagramm-Layout kann eingestellt werden wie eine Achse des Achsenkreuz-Layouts und erlaubt eine willkürliche Verschachtelung der Achsen- Bezeichner und Einschließung der willkürlichen Information, so als wäre es eine Achse eines Achsenkreuzes. Effektiv wird die letzte oder die letzten paar Zellen in der Verschachtelung festgelegt, die Balken-Steuerung zu verwenden, darin resultierend, daß sie als Balken angezeigt werden.
  • Ein Mehrfachlinien-Liniendiagramm kann vergleichbar ausgeführt sein. Eine Achse eines Achsenkreuzes ist gegeben. Sämtliche Zellen, denen nicht eine der mehreren Linien-Steuerungen zugeordnet ist, werden wie ein Achsenkreuz angezeigt. Die Zellen, die vorgegeben sind, um eine Linien-Steuerung aufzuweisen, werden in dem Achsenkreuz nur durch eine Legenden-Anzeige ersetzt (die Form des Punktes, der für diese Linie verwendet wird) und die Daten werden als eine Linie gezeichnet.
  • Eine weitere Layout-Klasse ist ein Gantt-Diagramm. Eine Zelle ist festgelegt, um die Zeilen zu de-liniieren. Eine abhängige Zelle, die eine Liste berechnet, wird dann definiert, die die Blöcke und ihre Bezeichner für das Gantt-Diagramm erzeugt. Dann bilden zwei Zellen, die von der zweiten Zelle abhängig sind, die Anfangs- und End- Positionen jedes Blockes. Das Ergebnis ist eine generische Festlegung eines Gantt- Diagramms. Ein Gantt-Diagramm kann auf anderen Wegen festgelegt werden und weist verschiedene Merkmale, Dualität, Flexibilität und eine einfache Anwendung auf.
  • Eine weitere Layout-Klasse ist ein Menü-Layout. Das Menü-Layout stellt eine Reihe von Zellen mit "Knöpfen" oder Menüelementen bereit. Das Layout kann in einem Plattform- und Fenster-Systemkonformen Menü resultieren, daß das Look and Feel, die Mnemonic-Handhabung und Beschleunigungs-Handhabung beinhaltet, wie für diese Plattform geeignet. Tatsächlich können das Menü-Layout und die Steuerungen direkt in Menüs des ursprünglichen Fenster-Systems kompiliert werden, wenn das ursprüngliche Fenster-System Menü-Mechanismen bereitstellt und ergeben Effizienz und Konsistenz.
  • Steuerungen
  • Steuerungen sind einzelne Anzeigeelemente eines Layouts. Eine Torten-Scheibe kann z.B. in einem Tortendiagramm-Layout eine eigene Steuerung sein. Jeder Balken in einem Gantt-Diagramm-Layout kann eine einzelne Steuerung sein und jede Zelle eines Tabellen-Layouts kann eine unterschiedliche Steuerung enthalten. Eine Schieber-Steuerung kann in einer Zelle plaziert sein, wenn die Zelle numerisch ist. Ein Schieber bietet eine grafische Handhabung, die in einer Nut gleitet, welche mit dem Bereich möglicher Werte für die Zelle indexiert ist. Ein Benutzer kann den Wert der Zelle durch Verschieben der Handhabung unter Verwendung der Interaktion mit einer Maus oder einem anderen Eingabegerät ändern. Eine logisch bewertete Zelle kann eine Checkbox-Steuerung aufweisen, die markiert ist, wenn es wahr ist, und leer ist, wenn es falsch ist. Ein Ändern des Wertes wird verwirklicht durch Klicken mit der Maus auf die Box.
  • Jede Layout-Klasse bestimmt die Art von Steuerungen, die bedeutungsvoll sind. Einige Layouts benötigen keine unterschiedlichen Steuerungen, die zu selektieren sind. Je mehr Steuerungen von einem Layout akzeptiert werden, um so flexibler ist jedoch das Layout, da mehr Optionen verfügbar sind.
  • Beispielhaft wird das Liniendiagramm-Layout betrachtet. Es sind mehrere verschiedene Linien-Steuerungen vorhanden, die unterschiedliche Diagramme ergeben. Die Liniensteuerung nimmt "x" und "y", zeichnet einen Punkt an dieser Position und verbindet mit einer geraden Linie die vorherige Position mit dieser Position des neuen Punktes. Die Linienschritt-Steuerung nimmt ebenfalls ein "x" und "y" und zeichnet einen Punkt an dieser Position, verbindet sie aber mit dem vorherigen Punkt durch eine horizontale Zeichnung von dem vorherigen Punkt zu dem "x" des neuen Punktes und "y" des vorherigen Punktes und dann eine vertikale Zeichnung zu dem neuen Punkt. Die Linien-Steigungs-Steuerung nimmt einen dritten Wertzusätzlich zu "x" und "y": eine "Steigung". Sie zeichnet den Punkt bei "x" und "y" wie die anderen, aber zeichnet eine Linie von dem vorherigen Punkt mit einer Neigung "Steigung", bis sie das "x" des neuen Punktes erreicht, von diesem Punkt an zeichnet sie vertikal.
  • Als weiteres Beispiel ist eine Tortenscheiben-Steuerung allgemein nur in einem Tortendiagramm-Layout hilfreich und Tortendiagramm-Layouts können nur Tortenscheiben-Steuerungen zulassen. Einigelortenscheiben-Steuerungen können zulassen, daß Ränder gezogen werden, um den angezeigten Wert zu verändern. Andere Tortenscheiben-Steuerungen können erlauben, daß die Scheibe aus der Torte herausgezogen wird, um die Scheibe hervorzuheben. Andere Steuerungen können Text in der Scheibe anzeigen. Ebenso können Gantt-Diagramme nur Gantt- Balken-Steuerungen zulassen. Im Gegensatz dazu kann eine Text-Steuerung in vielen Layouts verwendbar sein. Einige Text-Steuerungen können erlauben, daß beliebiger Text eingefügt wird. Andere Text-Steuerungen können beschränken, welcher Text eingebbar ist oder können Validierungs-Regeln aufstellen. Zusätzlich zu dem durch eine Steuerung bereitgestellten Verhalten können zusätzliche Befehle zu einer Steuerung hinzugefügt werden, um für bestimmte Ereignisse einbezogen zu werden. Z.B. kann ein Befehl "Anzeigen eines Hilfemenüs" dem Ereignis "rechte Taste" für eine bestimmte Steuerung in einem gegebenen Layout zugeordnet werden.
  • Überblick
  • Das Berichts-Erzeugungssystem der vorliegenden Erfindung kann ein Software- System umfassen, welches auf einem digitalen Mehrzweckcomputer ausführbar ist. Allgemein arbeitet das Berichts-Erzeugungssystem in zwei Modi. Der erste Modus ist derjenige des Erzeugens eines Berichtes. In diesem Erzeugungsmodus verarbeitet das Berichtserzeugungssystem eine Berichtsdefinition durch Kompilieren derselben in eine Berichts-Schablone und Bewerten der Berichts-Schablone für eine Berichts- Instanz. Die Berichts-Instanz zeigt dann den Bericht einem Benutzer an. An diesem Punkt kann das Berichts-Erzeugungssystem in einen zweiten Modus eintreten.
  • Dieser zweite Modus ist ein interaktiver Modus. Ein Benutzer ist in der Lage, mit der Berichtsanzeige in einer Anzahl von Weisen zu interagieren. Der Bericht ist analog zu einer traditionellen GUI-Umgebung. Die Analogien sind wie folgt: GUI-Ereignis- Handler sind Befehle und Bindungen an Steuerungen; GUI-Widgets sind Steuerungen in Layouts; GUI-Fenster-Segmente sind Layouts; GUI-Menüs sind Layouts; GUI- Dialoge sind Layouts; und GUI-Fenster sind Berichte.
  • Ein Bericht ist ein Fenster, welches einem Benutzer Informationen anzeigt. Ein Benutzer, der einen Vorgang in einem Bericht ausführt, erzeugt ein Ereignis bei einer Steuerung. Die Steuerungen in den Layouts werden, sobald sie aktiviert sind, unterstützt. Ein Benutzer wird in die Lage versetzt, verschiedene Funktionen auszuführen, einschließlich der Bearbeitung der Werte in dem Bericht und Bearbeiten zugeordneter Werte in dem Benutzermodell. Der Benutzer interagiert mit dem Bericht basierend auf der grafischen Benutzeroberfläche.
  • Ein technischer Vorteil der vorliegenden Erfindung ist es, einen interaktiven Zugriff auf ein Modell einer Benutzerumgebung durch Berichtsfunktionen zu ermöglichen, wobei die Funktionen parametrisiert und von dem Modell unabhängig sind. Die in einem Arbeitsblatt eines Berichtes vorgesehenen Zellen, die "set"-Ausdrücke zusätzlich zu "get"-Ausdrücken aufweisen, erlauben, daß ein Bearbeiten der Zelle in Datenänderungen in dem Benutzermodell resultieren kann, gegenüber Änderungen, die einfach die Zelle verändern. Zusätzlich werden Berichtsinformationsarten verwendet, die identisch zu Informationsarten in dem Benutzermodell sind und typsensitive Ausdrücke, Funktionen, Menüs und Hilfe-Merkmale erlauben und unterstützen.
  • Ein weiterer technischer Vorteil der vorliegenden Erfindung ist die Bereitstellung unterschiedlicher Arbeitsblatt-Klassen in Berichten, wie ein Spreadsheet-Arbeitsblatt und ein replizierendes Arbeitsblatt.
  • Ein weiterer technischer Vorteil der vorliegenden Erfindung ist das Bereitstellen unterschiedlicher Layout-Klassen, welche jeder Arbeitsblatt-Klasse zugeordnet sind in Berichten wie Tabellen, Balken-Diagrammen, Gantt-Diagrammen, Torten- Diagrammen und Menü-Layouts. Weiterhin erlaubt die vorliegende Erfindung unterschiedliche Tabellen-Layouts und bietet insbesondere das flexible Achsenkreuz-Layout für replizierende Arbeitsblätter in Berichten.
  • Ein weiterer technischer Vorteil der vorliegenden Erfindung ist die Fähigkeit von Layouts, unterschiedliche Steuerungen für die Anzeige und Interaktion mit den Zellen in den Arbeitsblättern eines Berichtes zu verwenden. Gegebene Beispiele der unterschiedlichen Steuerungen beinhalten unterschiedliche Steuerungs-Klassen zur Anzeige und Interaktion mit Text-, Schieber-, Gantt-Diagramm- und Balken- Diagramm-Steuerungen.
  • Ein zusätzlicher technischer Vorteil der vorliegenden Erfindung ist die LeistungsfähigkeiteinergrafischenBenutzerschnittstellen-(GUI)-Spezifikation inderßerichts- Spezifikation, wo Steuerungen und Bindungen an Steuerungen GUI-Ereignis- Handlern gleichen, Steuerungen in Layouts gleichen GUI-Widgets, Layouts in Berichten gleichen GUI-Fenstersegmenten, Menüs und Dialogboxen, und ein Bericht gleicht einem GUI-Fenster.
  • Das Berichtserzeugungssystem der vorliegenden Erfindung stellt ein leistungsfähiges Berichtssystem bereit, welches einem Benutzer erlaubt, Berichte zu erzeugen, Daten zu analysieren und hypothetische Bewertungen eines Benutzermodells vorzunehmen.

Claims (20)

1. Computerimplementiertes, interaktives Berichts- Erzeugungssystem (10) mit:
einer Einrichtung zum Speichern einer Arbeitsblatt-Definition (20), wobei die Arbeitsblatt-Definition benannt und parametrisiert ist und mehrere Zellen-Definitionen umfaßt, von denen jede einen modell-unabhängigen Ausdruck festlegt;
einer Einrichtung zum Speichern eines Benutzermodells (42), das eine Benutzerumgebung modelliert;
einer Einrichtung zum Speichern mehrerer Modell-Schnittstellenfunktionen (16), welche dem Benutzermodell zugeordnet sind;
einem Compiler (12), welcher die Arbeitsblatt-Definition empfängt und die Modell- Schnittstellenfunktionen anspricht, wobei der Compiler weiterhin in der Lage ist:
basierend auf der Arbeitsblatt-Definition und den Modell-Schnittstellenfunktionen eine Arbeitsplatz-Schablone (32) mit mehreren Zellen-Schablonen (36) zu erzeugen, von denen jede einen modell-abhängigen Ausdruck (38) bestimmt; und
einen Bewerter (40), welcher die Arbeitsblatt-Schablone empfängt und die Modell- Schnittstellenfunktionen und das Benutzermodell anspricht, wobei der Bewerter weiterhin in der Lage ist:
die modell-abhängigen Ausdrücke in der Arbeitsblatt-Schablone unter Verwendung der Modell-Schnittstellenfunktionen und der Daten aus dem Benutzermodell zu bewerten, und
eine Arbeitsblatt-Instanz (48) mit mehreren Zellen-Instanzen (52) zu erzeugen, welche modell-spezifische Werte (54) bestimmen, wobei die modell-spezifischen Werte sich aus der Bewertung der modell-abhängigen Ausdrücke mit Daten aus dem Benutzermodell ergeben.
2. System nach Anspruch 1,
mit einer Wiedergabeeinrichtung (56), welche eine Layout-Instanz (46) empfängt und einem Benutzer Steuerungen visuell anzeigt, und wobei der Compiler weiterhin in der Lage ist:
eine Layout-Festlegung (18) zu empfangen, wobei die Layout-Festlegung benannt und parametrisiert ist und mehrere Steuerungs-Festlegungen (22) umfaßt, welche wobei die Ausgabeeinrichtung weiterhin in der Lage ist, die Layout-Schablone zu empfangen und eine Layout-Instanz zu erzeugen, welche ein genaues, relatives Layout von Steuerungsinstanzen bestimmt, wobei die Steuerungs-Instanzen eine präzise Anzeige von Arbeitsblatt-Werten festlegen;
die Layout-Definition, die Schablone und die Instanz einen Layout-Typ umfassen; und
die Steuerungen mehrere für den Layout-Typ geeignete Steuerungsarten umfassen.
3. System nach Anspruch 2,
bei welchem der Compiler und die Ausgabeeinrichtung in der Lage sind, einen von mehreren Arbeitsblatt-Typen einschließlich ein Replikations-Arbeitsblatt zu verarbeiten, bei welchem eine Zelle, die eine Liste von Werten bewertet, in replizierten Zellen in der Arbeitsblatt-Instanz bewertet wird, und eine Zelle, welche durch solche listen-bewerteten Zellen bewertet wird, ebenfalls replizierte Zellen bewertet, jeweils eine für jede replizierte Zelle, von welcher sie bewertet wird;
der Compiler weiterhin einen Achsenkreuz-Typ der Layout-Festlegung empfängt und eine Achsenkreuz-Layout-Schablone erzeugt;
die Bewertungseinrichtung Steuerungen darstellt, welche entlang jeder Achse entsprechend der Art, wie Zellen in der Arbeitsblatt-Schablone bewertet werden, verschachtelt und eine Layout-Instanz erzeugt, welche mehrdimensionale Daten anzeigen kann, welche in einer zweidimensionalen Tabelle verschachtelt sind; und
wobei die Ausgabeeinrichtung (56) in der Lage ist, die zweidimensionale Tabelle anzuzeigen.
4. System nach Anspruch 3,
bei welchem ein modell-unabhängiger und ein modell-abhängiger Ausdruck einen rekursiven Ausdruck umfassen, welcher einer Zelle erlaubt, eine Liste aus sich selbst zu erzeugen, resultierend in verschachtelten Replikationen, welche von jeder Replikation der gleichen Zelle erzeugt und fortgesetzt werden, bis die verschachtelten Replikationen in Listen von Null-Werten resultieren;
eine Tiefe der verschachtelten Bewertungen jeder Zelle für die Layout-Steuerungen verfügbar ist; und
ein Typ eines vorgesehenen Textes der Steuerung verfügbar ist, welcher in der Lage ist, einen angezeigten Text entsprechend der Tiefe der verschachtelten Bewertung, welche den Wert in der Steuerung erzeugt, einzurücken.
5. System nach Anspruch 2,
bei welchem der Compiler und die Bewertungseinrichtung einen von mehreren Arbeitsblatt-Typen einschließlich einem replizierenden Arbeitsblatt verarbeiten, für welches eine Zelle, die eine Liste von Werten bewertet, in replizierten Zellen in der Arbeitsblatt-Instanz bewertet wird, und eine Zelle, die aus solchen listen-bewerteten Zellen bewertet wird, ebenfalls in replizierte Zellen bewertet, wobei eine für jede replizierte Zelle, von welcher sie bewertet wird, verfügbar ist;
der Compiler weiterhin in der Lage ist, einen Achsen-Typ der Layout-Definition zu empfangen und eine Achsen-Layout-Schablone zu erzeugen;
die Bewertungseinrichtung weiterhin in der Lage ist, entlang einer Achse relativ entsprechend der Art, wie Zellen in der Arbeitsblatt-Schablone bewertet werden, Steuerungen verschachtelt und eine Layout-Instanz erzeugt, welche mehrdimensionale Daten anzeigen kann, welche in einer Reihe von Überschriften und Balken verschachtelt sind, wobei die Balken Seite an Seite positioniert, gestapelt und entsprechend der Verschachtelung der Arbeitsblatt-Bewertungen verschachtelt sind; und
die Ausgabeeinrichtung in der Lage ist, die Reihe aus Balken anzuzeigen.
6. System nach Anspruch 2, wobei:
der Compiler und die Bewertungseinrichtung eine der Arbeitsblatt-Arten einschließlich eines Replikations-Arbeitsblattes verarbeiten, für welches eine Zelle, die eine Liste von Werten bewertet, in replizierten Zellen in der Arbeitsblatt-Instanz bewertet wird, und eine Zelle, welche sich aus solchen listen-bewerteten Zellen ergibt, ebenfalls in replizierten Zellen ergibt, jeweils einer für jede replizierte Zelle, aus welcher sie sich ergibt;
wobei der Compiler weiterhin eine Übersicht der Layout-Festlegung empfängt und eine Übersichts-Layout-Schablone erzeugt;
die Bewertungseinrichtung weiterhin eine Layout-Instanz erzeugt, welche Übersichtsdaten anzeigen kann;
die Ausgabeeinrichtung die Layout-Instanz anzeigt;
die replizierten Zellen durch das Übersichts-Layout zusammengefaßt werden, um eine x-y-Position in einem zweidimensionalen Raum anzugeben und als Kästen gezeichnet werden; und
innerhalb anderer Zellen verschachtelte Zellen eine x-y-Position bestimmen, welche sich auf die Mutter bezieht, so daß das resultierende Netz das einer abgelegten, zweidimensionalen Übersicht aus Rechtecken ist.
7. System nach Anspruch 2, wobei:
der Compiler und die Bewertungseinrichtung eine von mehreren Arbeitsblatt-Arten einschließlich eines replizierenden Arbeitsblattes verarbeiten, für welches eine Zelle, die sich aus einer Liste von Werten ergibt, in replizierenden Zellen in der Arbeitsblatt-Instanz bewertet wird, und eine Zelle, die sich aus solchen listen-bewerteten Zellen ergibt, ebenfalls in replizierten Zellen ergibt, wobei eine für jede replizierte Zelle vorhanden ist, aus welcher sie sich ergibt;
der Compiler weiterhin einen Gantt-Typ einer Layout-Definition empfängt und eine Gantt-Layout-Schablone erzeugt;
die Bewertungseinrichtung weiterhin eine Layout-Instanz erzeugt, welche Gantt- Diagrammdaten anzeigen kann; und
die Ausgabeeinrichtung in der Lage ist, die Layout-Instanz anzuzeigen; und die replizierten Zellen in dem Gantt-Layout zusammengefaßt werden, um Anfangs- und Endpunkte der in Reihen eines Gantt-Diagramms verschachtelten Balken anzugeben.
8. System nach Anspruch 7, bei welchem die Ränder der Gantt-Balken zu einzustellenden Werten gezogen werden können.
9. System nach Anspruch 8, bei welchem definiert benannte Befehle zu Steuerungen eines besonderen Typs hinzugefügt werden und Steuerungen einem bestimmten Zellwert-Typ zugeordnet werden und die Befehle durch Benutzer-Eingriffe aufgerufen werden können, welche durch Ereignisdefinitionen festgelegt sind, die eine Befehlsausführung festlegen, wenn bestimmte Interaktionen auftreten.
10. System nach Anspruch 9, wobei:
ein Menü-Layout-Typ und Menü-Steuerungs-Typen, welche zusammen ausgebildet werden, um ein traditionelles Menüsystem festzulegen; und
der Compiler in einem ursprünglichen Fenster-Menüsystem einschließlich Mnemonic- und Beschleunigungstasten-Interaktionen, welche mit dem ursprünglichen Fenstersystem konsistent sind, übersetzt.
11. System nach Anspruch 10, bei welchem:
der Compiler weiterhin eine benannte parametrisierte Berichts-Definition empfängt und eine Berichts-Schablone erzeugt, wobei die Berichts-Definition mehrere Festlegungen von Layout-Definitionen unter Verwendung von Layout-Namen und Parameter-Ausdrücken für Layout-Parameter umfaßt;
die Bewertungseinrichtung weiterhin die Berichts-Schablone und einen Parameter- Ausdruck empfängt und eine Berichts-Instanz mit entsprechend einem Typ der Berichts-Definition, der Schablone und der Instanz angeordneten Layout-Instanzen empfängt; und
die Ausgabeeinrichtung weiterhin die Berichts-Instanz in einem Fenster eines ursprünglichen Fenstersystems anzeigt.
12. System nach einem der Ansprüche 2 bis 11, bei welchem der Compiler weiterhin einen ergänzenden Satz-Ausdruck für jede Zellendefinition der Arbeitsblatt-Festlegung empfängt; und
die Bewertungseinrichtung weiterhin eine Wechselwirkung jeder Steuerung zum Editieren der Zellenwerte der Arbeitsblatt-Instanz festlegt und das von dem Compiler in der Arbeitsblatt-Schablone durch den Satz-Ausdruck festgelegte, aufgezeichnete Benutzermodell verändert; und
die Ausgabeeinrichtung (56) weiterhin die Benutzer-Interaktion mit angezeigten Steuerungen unterstützt.
13. System nach einem der Ansprüche 1 bis 12 in der Form eines Computer-Softwaresystems.
14. System nach Anspruch 1, mit:
einem Ausführungsspeicher zum Speichern von ein Computer-Softwaresystem darstellenden Daten;
einer einen Bericht eines Benutzers des Computersystems darstellenden Anzeige; einem an die Datenspeichereinrichtung, den Datenspeicher, den Ausführungsspeicher und die Anzeige gekoppelten Prozessor, wobei der Prozessor das Computer-Softwaresystem ausführt.
15. System nach einem der vorstehenden Ansprüche, wobei:
der Compiler weiterhin einen Satz-Ausdruck für jede Zellen-Definition der Arbeitsblatt-Definition empfängt und den Satz-Ausdruck in der Arbeitsblatt- Schablone aufzeichnet; und
die Bewertungseinrichtung weiterhin Bearbeitungen der Werte der Arbeitsblatt- Instanz empfängt und das Benutzer-Modell verändert, wie durch den von dem Compiler in der Arbeitsplatz-Schablone aufgezeichneten Satz-Ausdruck festgelegt.
16. System nach einem der vorstehenden Ansprüche,
bei welchem der Compiler und die Bewertungseinrichtung eine von mehreren Arten von Arbeitsblatt-Typen einschließlich eines replizierten Arbeitsblattes verarbeiten, für welches:
eine Zelle, welche eine Liste von Werten bewertet, in replizierten Zellen in der Arbeitsblatt-Instanz bewertet wird,
und eine Zelle, welche sich aus solchen listen-bewerteten Zellen ergibt, ebenfalls in replizierten Zellen ergibt, wobei eine für jede replizierte Zelle vorhanden ist, aus welcher sie sich ergibt.
17. System nach Anspruch 16, bei welchem ein modell-unabhängiger und ein modell- abhängiger Ausdruck einen rekursiven Ausdruck umfassen, der einer Zelle erlaubt, eine Liste aus sich selbst zu erzeugen, resultierend in verschachtelten Replikationen, welche aus jeder Replikation der gleichen Zelle erzeugt werden, welches fortgesetzt wird, bis die verschachtelten Replikationen in Listen von Null-Werten resultieren.
18. System nach Anspruch 17,
bei welchem der Compiler einen zusätzlichen Satz-Ausdruck für jede Zellendefinition der Arbeitsblatt-Definition empfängt; und
die Bewertungseinrichtung Bearbeitungen der Werte der Arbeitsblatt-Instanz empfängt und das Benutzer-Modell verändert, wie durch einen von dem Compiler in der Arbeitsblatt-Schablone aufgezeichneten Satz-Ausdruck festgelegt.
19. System nach Anspruch 17,
mit einer Ausgabeeinrichtung (56) zum Empfangen der Layout-Instanz (46) und um einem Benutzer Steuerungen visuell anzuzeigen, und wobei:
der Compiler eine Layout-Definition (18) empfängt, wobei die Layout-Definition benannt und parametrisiert ist und mehrere Steuerungs-Definitionen (22) umfaßt, die eine Anzeige von Zellen-Werten festlegen, die Arbeitsblatt-Definition durch Namen spezifizieren und bestimmte Parameter-Ausdrücke zu der Arbeitsblatt- Definition übergeben, wobei der Compiler weiterhin eine Layout-Schablone (30) erzeugt, und wobei
die Bewertungseinrichtung weiterhin die Layout-Schablone empfängt und eine Layout-Instanz erzeugt, welche ein exaktes, zugehöriges Layout der Steuerungs- Instanzen festlegt, wobei die Steuerungs-Instanzen eine exakte Anzeige der Arbeitsblatt-Werte festlegen; wobei die Layout-Definition, die Schablone und die Instanz einen Layout-Typ umfassen; und
die Steuerungen mehrere für den Layout-Typ geeignete Steuerungstypen umfassen.
20. Verfahren zum Betreiben eines Computersystems zum Ermöglichen einer interaktiven Berichtserzeugung für einen Benutzer des Computersystems, mit:
Bereitstellen mehrerer Modell-Schnittstellen-Funktionen, welche einem Benutzer- Modell zugeordnet sind;
Bereitstellen eines benutzermodell-definierenden Datensatzes, welcher eine Benutzer-Umgebung beschreibt;
Bereitstellen einer Arbeitsblatt-Definition, wobei die Arbeitsblatt-Definition benannt und parametrisiert ist und mehrere Zellen-Definitionen umfaßt, von denen jede einen modell-abhängigen Ausdruck festlegt;
Empfangen der Arbeitsblatt-Definition und Ansprechen der Modell-Schnittstellen- Funktionen;
Erzeugen einer Arbeitsblatt-Schablone mit mehreren Zellen-Schablonen, von denen jede einen modell-abhängigen Ausdruck festlegt, basierend auf der Arbeitsblatt- Definition und den Modell-Schnittstellen-Funktionen;
Empfangen der Arbeitsblatt-Schablone und Ansprechen der Modell-Schnittstellen- Funktionen und des Benutzer-Modell-Datensatzes;
Bewerten der modell-abhängigen Ausdrücke in der Arbeitsblatt-Schablone, Verwenden der Modell-Schnittstellen-Funktionen und des Benutzermodell- Datensatzes;
Erzeugen einer Arbeitsblatt-Instanz mit mehreren Zellen-Instanzen, welche modellspezifische Werte definieren, wobei sich die modell-spezifischen Werte aus der Bewertung des modell-abhängigen Ausdruckes mit dem Benutzer-Modell-Datensatz ergeben; und
Anzeigen eines Berichtes für einen Benutzer basierend auf der Arbeitsblatt-Instanz.
DE69601151T 1995-06-16 1996-06-10 Interaktives sytem zum generieren von berichten und verfahren zu seinem betrieb Expired - Lifetime DE69601151T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/491,121 US5832532A (en) 1995-06-16 1995-06-16 Model-independent and interactive report generation system and method of operation
PCT/US1996/009908 WO1997000487A1 (en) 1995-06-16 1996-06-10 Interactive report generation system and method of operation

Publications (2)

Publication Number Publication Date
DE69601151D1 DE69601151D1 (de) 1999-01-28
DE69601151T2 true DE69601151T2 (de) 1999-08-12

Family

ID=23950879

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69601151T Expired - Lifetime DE69601151T2 (de) 1995-06-16 1996-06-10 Interaktives sytem zum generieren von berichten und verfahren zu seinem betrieb

Country Status (11)

Country Link
US (2) US5832532A (de)
EP (1) EP0776506B1 (de)
JP (1) JPH0962759A (de)
AT (1) ATE174704T1 (de)
AU (1) AU708311B2 (de)
BR (1) BR9608597A (de)
CA (1) CA2176524C (de)
DE (1) DE69601151T2 (de)
GB (1) GB2302424A (de)
TW (1) TW442755B (de)
WO (1) WO1997000487A1 (de)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6157934A (en) * 1995-10-24 2000-12-05 Ultimus, L.L.C. Method and apparatus for using distributed spreadsheets in a client/server architecture for workflow automation
GB2313933B (en) * 1996-06-07 2000-06-28 Edward Henry Mathews A method of assisting the conducting of a research project
US6006240A (en) * 1997-03-31 1999-12-21 Xerox Corporation Cell identification in table analysis
US5987481A (en) * 1997-07-01 1999-11-16 Microsoft Corporation Method and apparatus for using label references in spreadsheet formulas
US6947905B1 (en) * 1998-09-18 2005-09-20 I2 Technologies Us, Inc. System and method for displaying planning information associated with a supply chain
US6715130B1 (en) * 1998-10-05 2004-03-30 Lockheed Martin Corporation Software requirements metrics and evaluation process
US7308416B2 (en) * 1999-01-04 2007-12-11 International Business Machines Corporation Single level bill of material available to promise
US6651219B1 (en) 1999-01-11 2003-11-18 Multex Systems, Inc. System and method for generation of text reports
WO2000058891A1 (en) 1999-03-26 2000-10-05 The Retail Pipeline Integration Group, Inc. Method and system for determining time-phased sales forecasts and projected replenishment shipments in a supply chain
US7480623B1 (en) * 2000-03-25 2009-01-20 The Retail Pipeline Integration Group, Inc. Method and system for determining time-phased product sales forecasts and projected replenishment shipments for a retail store supply chain
US7200600B2 (en) * 2000-06-30 2007-04-03 Boris Gelfand Data cells, and a system and method for accessing data in a data cell
US6980869B1 (en) * 2000-11-20 2005-12-27 National Instruments Corporation System and method for user controllable PID autotuning and associated graphical user interface
US6937992B1 (en) * 2000-12-29 2005-08-30 Arrowstream, Inc. Transport vehicle capacity maximization logistics system and method of same
CA2337607A1 (en) * 2001-02-19 2002-08-19 Cognos Incorporated Business intelligence monitor
US6948133B2 (en) * 2001-03-23 2005-09-20 Siemens Medical Solutions Health Services Corporation System for dynamically configuring a user interface display
US6950831B2 (en) * 2001-03-23 2005-09-27 Siemens Medical Solutions Health Services Corporation Processing system for use with a user interface display
US20020194186A1 (en) * 2001-03-27 2002-12-19 Foundation Software, Inc. Report design and data manipulation system and method of operation
US6999193B2 (en) * 2001-03-29 2006-02-14 International Business Machines Corporation Computer generated report printing method and system
US6792145B2 (en) * 2001-04-20 2004-09-14 Robert W. Gay Pattern recognition process for text document interpretation
US7073133B2 (en) * 2001-05-16 2006-07-04 William Hughes Objects and methods for accessing a data source and enhancing an application
US7552066B1 (en) 2001-07-05 2009-06-23 The Retail Pipeline Integration Group, Inc. Method and system for retail store supply chain sales forecasting and replenishment shipment determination
US7251776B2 (en) * 2001-07-13 2007-07-31 Netview Technologies, Inc. System and method for efficiently and flexibly utilizing spreadsheet information
CH701481B1 (de) * 2001-09-25 2011-01-31 Roland Pulfer Prozessmanagement.
US20030187849A1 (en) * 2002-03-19 2003-10-02 Ocwen Technology Xchange, Inc. Management and reporting system and process for use with multiple disparate data bases
US20040107010A1 (en) * 2002-08-12 2004-06-03 King William A. Planning support system and method
US7370271B2 (en) * 2002-10-30 2008-05-06 Actuate Corporation Methods and apparatus for generating a spreadsheet report template
CH703081B1 (de) * 2003-03-19 2011-11-15 Roland Pulfer Analyse eines Modells eines komplexen Systems.
CH698890B1 (de) * 2003-03-19 2009-11-30 Roland Pulfer Modellierung eines komplexen Systems.
CH703073B1 (de) * 2003-03-19 2011-11-15 Roland Pulfer Vergleich von Modellen eines komplexen Systems.
US7305621B2 (en) * 2003-03-27 2007-12-04 Microsoft Corporation Defining a report based on data regions and including custom data in a report definition
US7331015B2 (en) * 2003-03-27 2008-02-12 Microsoft Corporation Defining a report based on data regions and including custom data in a report definition
US7707490B2 (en) * 2004-06-23 2010-04-27 Microsoft Corporation Systems and methods for flexible report designs including table, matrix and hybrid designs
US20060005112A1 (en) * 2004-07-02 2006-01-05 David Lilly System and method of report layout
US7818282B2 (en) * 2004-07-02 2010-10-19 International Business Machines Corporation System and method for the support of multilingual applications
US8904273B2 (en) * 2004-07-02 2014-12-02 International Business Machines Corporation System and method of format specification
US7333995B2 (en) * 2004-07-02 2008-02-19 Cognos, Incorporated Very large dataset representation system and method
US7991804B2 (en) * 2004-07-30 2011-08-02 Microsoft Corporation Method, system, and apparatus for exposing workbooks as data sources
US8578399B2 (en) 2004-07-30 2013-11-05 Microsoft Corporation Method, system, and apparatus for providing access to workbook models through remote function cells
US20060031821A1 (en) * 2004-08-04 2006-02-09 Rutter Budd J Ii Divided compiling program application functionality for software development
US7559023B2 (en) 2004-08-27 2009-07-07 Microsoft Corporation Systems and methods for declaratively controlling the visual state of items in a report
US20070074112A1 (en) * 2005-09-23 2007-03-29 Business Objects Apparatus and method for consolidating reporting formulas
US7966346B1 (en) * 2006-01-23 2011-06-21 Coverity, Inc. Updating groups of items
US8024650B2 (en) * 2006-03-31 2011-09-20 Microsoft Corporation Drilling on elements in arbitrary ad-hoc reports
US8484554B2 (en) * 2006-08-31 2013-07-09 Sap Ag Producing a chart
US20080082908A1 (en) * 2006-09-29 2008-04-03 Business Objects, S.A. Apparatus and method for data charting with adaptive learning
US8965922B2 (en) * 2007-10-30 2015-02-24 International Business Machines Corporation Intelligent content assistance
US8484560B2 (en) * 2009-04-24 2013-07-09 Apple Inc. Interactive sub-summaries in database applications
US20110004839A1 (en) * 2009-07-02 2011-01-06 Derek Cha User-customized computer display method
US20120016911A1 (en) * 2010-04-15 2012-01-19 Michael Schmidt Child impact statement reporting system
US9152740B1 (en) 2012-01-18 2015-10-06 Msc.Software Corporation Interactive simulation and solver for mechanical, fluid, and electro-mechanical systems
US9459859B2 (en) * 2014-01-31 2016-10-04 Dell Products L.P. Template derivation for configuration object management
US9710446B2 (en) * 2014-08-05 2017-07-18 Shahbaz Anwar Enhanced internally linked electronic paper format report generation system and process
US12061601B2 (en) * 2020-02-10 2024-08-13 Sigma Computing, Inc. Tracking errors in data set lineage

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE67303C (de) * G. E. CASSEL und F. A. KjELLIN in Stockholm Elektrolytische Gewinnung von metallischem Zink aus Zinkblende
US4209845A (en) * 1977-01-25 1980-06-24 International Business Machines Corporation File qualifying and sorting system
US4454576A (en) * 1981-05-18 1984-06-12 International Business Machines Corporation Report preparation
US4417322A (en) * 1981-06-16 1983-11-22 International Business Machines Corporation Report generation control system for text processing machines
US4611310A (en) * 1982-08-23 1986-09-09 Canevari Timber Co. Method and system for rearranging data records in accordance with keyfield values
US4611280A (en) * 1984-03-12 1986-09-09 At&T Bell Laboratories Sorting method
US4742467A (en) * 1984-05-04 1988-05-03 Analysts International Corporation Automated programming system for machine creation of applications program source code from non-procedural terminal input
NL8600028A (nl) * 1986-01-09 1987-08-03 Philips Nv Werkwijze en inrichting voor het sorteren van objekten die voorzien zijn van een parameter, volgens de waarde van deze parameter.
US4827423A (en) * 1987-01-20 1989-05-02 R. J. Reynolds Tobacco Company Computer integrated manufacturing system
US5189608A (en) * 1987-06-01 1993-02-23 Imrs Operations, Inc. Method and apparatus for storing and generating financial information employing user specified input and output formats
US5148370A (en) * 1987-06-17 1992-09-15 The Standard Oil Company Expert system and method for batch production scheduling and planning
JPH02178730A (ja) * 1988-12-28 1990-07-11 Toshiba Corp 分割法を用いた内部ソート方式
US5089970A (en) * 1989-10-05 1992-02-18 Combustion Engineering, Inc. Integrated manufacturing system
JPH03180963A (ja) * 1989-12-08 1991-08-06 Hitachi Ltd 計画作成支援システムおよびこれを基にしたスケジューリングシステム
US5233533A (en) * 1989-12-19 1993-08-03 Symmetrix, Inc. Scheduling method and apparatus
US5218700A (en) * 1990-01-30 1993-06-08 Allen Beechick Apparatus and method for sorting a list of items
JPH0469139A (ja) * 1990-07-10 1992-03-04 Fujitsu Ltd 分散生産拠点利用生産供給方式
JPH0825128B2 (ja) * 1990-07-10 1996-03-13 富士通株式会社 分散生産拠点による生産供給処理方式
US5216612A (en) * 1990-07-16 1993-06-01 R. J. Reynolds Tobacco Company Intelligent computer integrated maintenance system and method
US5280425A (en) * 1990-07-26 1994-01-18 Texas Instruments Incorporated Apparatus and method for production planning
US5293615A (en) * 1990-11-16 1994-03-08 Amada Carlos A Point and shoot interface for linking database records to spreadsheets whereby data of a record is automatically reformatted and loaded upon issuance of a recalculation command
US5369570A (en) * 1991-11-14 1994-11-29 Parad; Harvey A. Method and system for continuous integrated resource management
US5361393A (en) * 1992-01-28 1994-11-01 Prodigy Services Company Method for improving interactive-screen uploading of accounting data
US5426781A (en) * 1992-04-30 1995-06-20 International Business Machines Corporation Computerized report-based interactive database query interface
US5371675A (en) * 1992-06-03 1994-12-06 Lotus Development Corporation Spreadsheet program which implements alternative range references
US5600584A (en) * 1992-09-15 1997-02-04 Schlafly; Roger Interactive formula compiler and range estimator
US5423033A (en) * 1992-09-30 1995-06-06 Intuit, Inc. Report generation system and method
US5604854A (en) * 1994-04-22 1997-02-18 Borland International, Inc. System and methods for reformatting multi-dimensional spreadsheet information

Also Published As

Publication number Publication date
WO1997000487A1 (en) 1997-01-03
JPH0962759A (ja) 1997-03-07
DE69601151D1 (de) 1999-01-28
EP0776506B1 (de) 1998-12-16
CA2176524A1 (en) 1996-12-17
AU5599196A (en) 1997-01-02
CA2176524C (en) 2001-12-04
TW442755B (en) 2001-06-23
GB9611746D0 (en) 1996-08-07
US5937155A (en) 1999-08-10
AU708311B2 (en) 1999-07-29
ATE174704T1 (de) 1999-01-15
MX9710160A (es) 1998-07-31
EP0776506A1 (de) 1997-06-04
BR9608597A (pt) 1999-01-05
US5832532A (en) 1998-11-03
GB2302424A (en) 1997-01-15

Similar Documents

Publication Publication Date Title
DE69601151T2 (de) Interaktives sytem zum generieren von berichten und verfahren zu seinem betrieb
DE69902468T2 (de) Verfahren und vorrichtung zum bestimmen eines satzes von datenbankeintragungen
DE3855756T2 (de) Schnittstelle für Materialliste für CAD/CAM-Umgebung
DE60133343T2 (de) Verfahren und System in einem elektronischen Kalkulationsblatt für die Handhabung von benutzerdefinierten Optionen in einer Ausschneiden-Kopieren-Einfügen-Funktion
DE69031758T2 (de) Verfahren zur Organisation von und zum Zugriff auf Produkt beschreibenden Daten in Zusammenhang mit einem technischen Prozess
DE69129959T2 (de) Elektronisches Dokumentenaufbereitungssystem
DE69126795T2 (de) Dateienverwaltungssystem mit graphischer benutzerschnittstelle zum aufstellen von fragen
DE69329265T2 (de) Graphischer Datenbankzugriff
DE68919503T2 (de) Methode und System zur Darstellung einer Benutzeroberfläche auf einem Computerbildschirm.
DE69331025T2 (de) System und Verfahren für Rechnerschnittstellen
DE69600794T2 (de) Graphische entwicklungs- und verwaltungsumgebung für anwendungsprogramme
DE69429630T2 (de) System und verfahren zur bestimmung einer progress-struktur für das ausführen einer aufgabe
DE69626620T2 (de) Datenverarbeitung in Systemen, die eine visuelle Darstellung einer physischen Umgebung zeigen
DE69602622T2 (de) Graphischer browser
DE69308293T2 (de) Globales prozesssteuerungsinformationssystem und verfahren
DE69117331T2 (de) Elektronischer Tabellenkalkulator
DE69328522T2 (de) Verfahren und Vorrichtung zur Benutzung von Browsern für Sammlungen
DE19842688B4 (de) Verfahren zum Filtern von Daten, die von einem Datenanbieter stammen
DE69723489T2 (de) Verfahren und System zur Verwaltung von Bau- und Produktionsinformation
DE69434096T2 (de) Verfahren und System, um mit einer graphischen Benutzerschnittstelle in einer Datenbank zu suchen
DE69424586T2 (de) Verfahren und System zum formulieren interaktiver Abfragen
DE69413956T2 (de) Ein computerisiertes handbuch von prozessen
DE69329966T2 (de) Prozedurorientierte benutzerschnittstelle
DE10120869A1 (de) Verwendung eines Index für den Zugriff auf eine mehrdimensionale Subjektdatenbank
DE69223979T2 (de) Fuzzy-züruckgewinnungsgerät und verfahren dafür

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: DOERRIES FRANK-MOLNIA & POHLMAN, 80538 MUENCHEN

8328 Change in the person/name/address of the agent

Representative=s name: DF-MP, 80333 MUENCHEN

R082 Change of representative

Ref document number: 776506

Country of ref document: EP

Representative=s name: DF-MP, 80333 MUENCHEN, DE