DE19842688A1 - Standard-Benutzerschnittstellen-Steuerung für einen Datenanbieter - Google Patents

Standard-Benutzerschnittstellen-Steuerung für einen Datenanbieter

Info

Publication number
DE19842688A1
DE19842688A1 DE19842688A DE19842688A DE19842688A1 DE 19842688 A1 DE19842688 A1 DE 19842688A1 DE 19842688 A DE19842688 A DE 19842688A DE 19842688 A DE19842688 A DE 19842688A DE 19842688 A1 DE19842688 A1 DE 19842688A1
Authority
DE
Germany
Prior art keywords
data
filter
data provider
user
provider
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.)
Granted
Application number
DE19842688A
Other languages
English (en)
Other versions
DE19842688B4 (de
Inventor
David De Vorchik
Oshoma Momoh
Timothy Allen Satalich
Richard S Jun Turner
Lauren Beth Gallagher
Wayne G Scott
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of DE19842688A1 publication Critical patent/DE19842688A1/de
Application granted granted Critical
Publication of DE19842688B4 publication Critical patent/DE19842688B4/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2428Query predicate definition using graphical user interfaces, including menus and forms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2425Iterative querying; Query formulation based on the results of a preceding query
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Description

Die vorliegende Erfindung betrifft Techniken zum Richten von Anfragen (Queries) an Datenanbieter und zum Zurückgeben der Ergebnisse in einer standardisierten Form.
Computernutzer werden häufig mit einer überwältigenden In­ formationsmenge konfrontiert, wenn sie versuchen, einen Com­ puter zu benutzen. Ein Datenanbieter (Datenprovider), wie eine Internet-Suchmaschine (Internet Search Engine), kann als Reaktion auf eine einfache Abfrage Tausende von "Tre­ ffern" zurückliefern. Ein Datenanbieter für ein e-mail-Ar­ chiv kann Hunderte von Nachrichten anzeigen, die man durchblättern muß, um eine einzelne Nachricht zu finden. Ein Dateiverzeichnisbaum eines Computers kann in verwirrenden Schichten Zehntausende von Dokumenten auflisten. Fig. 1A zeigt ein Computersystem mit einer eigenen Schnittstelle 200, 202, 204, 206, 208 für jeden Datenanbieter 210, 212, 214, 216, 218.
Um die Schwierigkeit beim Zugreifen auf diese Information noch zu erhöhen, verwenden die Datenanbieter keine normierte Benutzerschnittstelle oder Benutzeroberfläche (User Inter­ face). Anstatt sich mit einer vielseitigen Benutzerschnitt­ stelle vertraut zu machen, muß sich ein Benutzer an ver­ schiedene Benutzerschnittstellen gewöhnen, eine zeitauf­ wendige und frustrierende Aufgabe.
Das Fehlen einer standardisierten Benutzerschnittstelle er­ zeugt zusätzliche Arbeit für Softwareentwickler, die für jeden Datenanbieter eine andere Schnittstelle konzipieren müssen. In einer Windows-Umgebung muß ein Softwareentwickler z. B. ein neues Steuermodul oder Steuerfenster mit unter­ schiedlichen Tabulatoren, Tasten und einer neuen Gesamtkon­ figuration entwerfen, um die Anforderungen jedes Datenanbie­ ters zu erfüllen.
Vorhandene Benutzerschnittstellen erlauben die Filterung von Datensätzen gestützt auf mehrere Attribute auf einmal. Al­ lein aus der Betrachtung einer Benutzeroberfläche ist es jedoch nicht immer offensichtlich, wie dies zu geschehen hat. Eine Benutzerschnittstelle kann z. B. eine präzise Fil­ terung unter Verwendung mehrerer Attribute eines Datensatzes nur dann unterstützten, wenn der Benutzer fortgeschrittene Kenntnisse über die Eigenschaften oder die Abfragesprache des Datensatzes hat. Keine standardisierte Benutzerschnitt­ stelle erlaubt eine präzise Filterung eines Datensatzes im Hinblick auf mehrere Attribute auf intuitive Weise.
Eine Benutzerschnittstelle kann sogar noch präzisere Anfra­ gen an einen Datensatz richten, wenn für jeden Abfrageterm mehrere Vergleichsverfahren oder -modi unterstützt werden. Die AutoFilter-Funktion von Microsoft Exel 97 unterstützt z. B. mehrere Vergleichsmodi für einen Abfrageterm. AutoFilter erlaubt es dem Benutzer zu spezifizieren, wie der Abfrageterm mit dem Datensatz verglichen werden soll. Ein Nachteil der AutoFilter-Funktion ist, daß der Benutzer den Vergleichsmodus in einer Dialogbox spezifiziert, die von der Hauptbenutzeroberfläche getrennt ist.
Benutzer geben häufig iterrative, verknüpfte Abfragen aus, wenn sie versuchen, nach und nach enorme Datenmengen auf managebare Mengen herunterzufiltern. Ein Benutzer, der eine einfache Abfrage an eine Internet-Suchmaschine ausgibt, kann als Antwort z. B. Tausende von "Treffern" empfangen. Der Be­ nutzer kann dann eine engere Abfrage ausgeben, um eine Un­ tergruppe innerhalb dieser Antworten zu finden. Die enger gefaßte Abfrage ist üblicher Weise die ursprüngliche Anfrage plus ein weiterer Term.
Wenn die modifizierte Abfrage mit dem gesamten Datensatz anstelle des verringerten Datensatzes, der abhängig von der ersten Abfrage zurückgegeben wurde, durchgeführt wird, ent­ stehen enorme Redundanzen. Eine geringere Redundanz ergibt sich, wenn der gesamte Satz der Abfrageterme statt nur die Änderungen der Abfrageterme zwischen der Benutzerschnitt­ stelle und dem Datenanbieter weitergegeben werden. Diese Redundanzen führen zu einer wenig ansprechenden optischen Rückkoppelung auf einer Benutzeroberfläche und zu einer langsamen Ansprechzeit bei der Filterung eines Datensatzes.
Anstatt zu zeigen, daß ein Datensatz abhängig von der Ein­ gabe weitere Kriterien "schrumpft", senden die meisten exi­ stierenden Benutzerschnittstellen eine Abfrage erst dann los, wenn ein Benutzer explizit angegeben hat, daß die For­ mulierung der Abfrage abgeschlossen ist. Ein Benutzer muß z. B. eine Abfrage tippen und dann <ENTER< drücken, um die Abfrage abzusenden. Der Nachteil dieses Verfahrens ist, daß der optische Eindruck bei der Betrachtung des schrumpfenden Datensatzes, während die Eingaben eingegeben werden, verlo­ ren geht.
Einige der vorhandenen Benutzerschnittstellen filtern daher nach jedem Tastenanschlag, der zu einer Texteingabe gehört. Viele Anwendungen haben z. B. Hilfe-Indices, die mit der Ein­ gabe jedes Tastenanschlages durchlaufen werden. Wenn der Benutzer Hilfe mit der "Anzeige" braucht, tippt der Benutzer "a" und der Index springt zu "a". Wenn der Benutzer "n" tippt, springt der Index zu "an" usw. Der Nachteil dieses Verfahrens ist, daß das Filtersystem bei der Filterung gro­ ßer Datensätze manchmal überfordert ist; darunter leiden die Ansprechgeschwindigkeit und die optische Darstellung.
Ein weiterer Nachteil vorhandener Benutzerschnittstellen ist, daß sie eine nicht textorientierte Filterung von Daten­ sätzen nicht unterstützen. Vielmehr werden die Datensätze abhängig von willkürlichen Textmustern oder präzisen Text­ werten sortiert, selbst wenn der Benutzer nach einer Farbe, einem Piktogramm, einer Bitabbildung oder einem Klang in einem Datensatz sucht.
Die bevorzugte Ausführungsform der vorliegenden Erfindung überwindet die Nachteile des Standes der Technik und sieht eine standardisierte Benutzerschnittstelle vor, über die ein Benutzer wirksam und intuitiv mit einem ihm nicht vertrauten Datenanbieter interagieren kann.
Insbesondere sieht die Erfindung ein Verfahren zum Standar­ disierung der Filterung von Daten gemäß Anspruch 1, ein Ver­ fahren zum Anzeigen eines Steuerelementes zum Filtern von Daten auf einer Anzeigeeinrichtung gemäß Anspruch 12, ein Computerspeichermedium gemäß Anspruch 17, ein Computerbe­ triebssystem gemäß Anspruch 24, ein Verfahren zum Abfragen eines Datenanbieters gemäß Anspruch 26 und ein Verfahren zum Formulieren einer Anfrage an einen Datenanbieter gemäß An­ spruch 29 bzw. Anspruch 34 vor.
Die bevorzugte Ausführungsform der vorliegenden Erfindung sieht ein Anfangssteuermodul bzw. ein Anfangssteuerfenster (Header Control) vor, das es einem Benutzer ermöglicht, einen unvertrauten Datensatz intuitiv und wirksam zu fil­ tern. Das Anfangssteuermodul und seine enthaltene standar­ disierte Benutzerschnittstelle vereinfachen die Aufgaben für Benutzer und Softwareentwickler. Die Benutzer müssen sich nicht mehr mit einer Vielzahl von Benutzerschnittstellen vertraut machen. Die Softwareentwickler müssen nicht mehr für jeden Datenanbieter neue eine neue Benutzerschnittstelle entwerfen. Statt dessen können die Softwareentwickler ein Minimum an Information über den Datenanbieter und den Daten­ satz an die standardisierte Benutzerschnittstelle liefern.
Bei der beschriebenen Ausführungsform erscheint die standar­ disierte Benutzerschnittstelle als ein "QuickFilter"-An­ fangssteuerfenster in einer Windows-Umgebung. Die standar­ disierte Benutzerschnittstelle umfaßt eine Kennung, ein Fil­ ter und eine PullDown-Menü-Taste für jedes Attribut eines Datensatzes, der von einem entsprechenden spaltenförmigen "Listendarstellungs"-Steuerfenster bzw. -modul angezeigt wird. Die PullDown-Menü-Taste kann betätigt werden, um ein Menü anzuzeigen, dessen Elemente zu Attributen des Datensat­ zes gehören. Das Steuermodul steht mit einem Datenanbieter über einer Gruppe aus Anwendungsprogrammier-Schnittstellen (API; Application Programming Interfaces) in Verbindung, die im Betriebssystem des Computers enthalten sind.
Über diese APIs sendet der Datenanbieter die Anfangssteuer-Daten­ sätze und die PullDown-Menü-Information, die dann als Teil der üblichen Benutzeroberfläche in der Anfangssteuer­ oberfläche angezeigt werden. Das Anfangssteuermodul benach­ richtigt den Datenanbieter über Änderungen der Filter in dem Steuerfenster. Das Anfangssteuermodul benachrichtigt den Datenanbieter auch über jede Auswahl, die mit der PullDown-Menü-Information getroffen wurde, welche von dem Datenan­ bieter geliefert wird.
Der Datenanbieter filtert den Datensatz abhängig von Filter­ änderungen und Auswahlinformation, die er von dem Anfangs­ steuermodul empfängt. Jeder Datenanbieter bestimmt abhängig von der von dem Anfangssteuermodul empfangenen Information, wie ein Datensatz gefiltert werden soll. Wenn der Datensatz gefiltert ist, sendet: der Datenanbieter ihn zurück an das Listendarstellungs-Steuerfenster, in dem er angezeigt wird.
Das Anfangssteuermodul ist so konzipiert, daß es intuitiv und leicht zu gebrauchen ist. Es ermöglicht präzise, in­ tuitive Abfragen durch Positionieren einer Kennung und eines Filters für jedes der Attribute eines Datensatzes über dem angezeigten Attribut des Datensatzes. Wenn die Filter von dem Benutzer verändert werden, wird der Datensatz von dem Datenanbieter gefiltert und in dem Listendarstellungs-Steuer­ fenster neu angezeigt, wodurch sich mit dem Empfang von Filterabfragewerten der optische Effekt einer Schrump­ fung des Datensatzes ergibt.
Das Anfangssteuermodul erreicht diesen optischen "Schrumpf"-Effekt durch Senden von Filteränderungsnachrichten, ohne daß der Benutzer dies explizit veranlassen muß. Um zu verhin­ dern, daß die Filterabfragen hinterherhinken und den vor­ teilhaften Schrumpfeffekt verderben, bestimmt ein Filter­ zeitgeber - der von dem Datenanbieter eingestellt wird -, wie oft Filteranfragen gesendet werden. Wenn die Filterung und Neuanzeige eines Datensatzes schnell erfolgen kann, kann der Datensatz nach jedem eingegebenen Tastenanschlag gefil­ tert werden. Wenn die Filterung und Neuanzeige eines Daten­ zeigers jedoch längere Zeit benötigt, kann der Filterzeitge­ ber auf eine längere Zeitspanne eingestellt werden, um das Ansprechverhalten der Anzeige zu berücksichtigen, damit sich nicht durch einen zu häufigen Neuaufbau des Bildes eine Funktionsverschlechterung ergibt.
Bei der beschriebenen Ausführungsform zeigen die PullDown-Menüs Information über Vergleichsmodi an, gemäß denen ein Filter für ein Attribut mit dem Datensatz verglichen werden kann. Die Anzeige dieser Information in einem PullDown-Menü in der Nähe des Attributs, für das die Information relevant ist, trägt zur intuitiven Benutzbarkeit der standardisierten Benutzerschnittstelle bei.
Bei einer anderen Ausführungsform zeigt das PullDown-Menü benutzerspezifische Steuerelemente an (oder startet ein zweites Fenster, um benutzer- oder kundenspezifische Steuerelemente anzuzeigen), welche von dem Datenanbieter geliefert werden. Die benutzerspezifischen Steuerelemente erlauben es dem Benutzer, nicht textorientierte Filtereinga­ ben einzugeben, die zum Filtern eines Datensatzes mit nicht textorientierten Attributen verwendet werden. Ein benutzer­ spezifisches Steuerelement kann z. B. eine Farbpalette sein, auf der ein Benutzer eine Farbe auswählt, die dann zum Fil­ tern eines Datensatzes nach Farben verwendet wird.
Die obigen sowie weitere Merkmale und Vorteile der vorlie­ genden Erfindung ergeben sich deutlicher aus der folgenden detaillierten Beschreibung bevorzugter Ausführungsformen mit Bezug auf die Zeichnungen. In den Figuren zeigt:
Fig. 1A ein Diagramm eines Computersystems mit bekan­ nten Benutzerschnittstellen zum Zugreifen auf unterschiedliche Datenbanken;
Fig. 1B zeigt ein Blockschaltbild eines Computersystems mit einer Benutzerschnittstelle gemäß einer Ausführungsform der vorliegenden Erfindung zum Zugreifen auf verschiedene Datenbanken;
Fig. 2 zeigt ein Blockdiagramm eines Computersystems, das als eine Betriebsumgebung für eine Ausfüh­ rungsform der Erfindung dient;
Fig. 3 zeigt ein Steuerfenster, das (1) eine Listen­ darstellungs-Steueroberfläche mit einem Raum für einen Datensatz und (2) eine Anfangssteu­ eroberfläche mit Kennungen für die Attribute des Datensatzes, PullDown-Menü-Tasten und Fil­ tern für die Attribute enthält;
Fig. 4 zeigt das Steuerfenster der Fig. 3 zum Anzei­ gen eines Datensatzes, der aus Zeilen mit Da­ tenobjekten besteht, die in Attributspalten be­ schrieben sind;
Fig. 5 zeigt das Steuerfenster der Fig. 4 mit einer betätigten PullDown-Menü-Taste und einem Pull-Down-Menü, das nach dem Wiedergewinnen der In­ formation über den Vergleichsmodus von einem Datenanbieter angezeigt wird;
Fig. 6 zeigt das Steuerfenster der Fig. 4, nachdem der Datensatz nach dem Typ "MS" mit dem Ver­ gleichsmodus "Beginne mit" gefiltert wurde;
Fig. 7 zeigt das Steuerfenster der Fig. 4, nachdem der Datensatz nach dem Typ "Word" mit dem Ver­ gleichsmodus "Ende mit" gefiltert wurde;
Fig. 8 zeigt das Steuerfenster der Fig. 4, nachdem der Datensatz nach dem Typ "MS" mit dem Ver­ gleichsmudus "Beginne mit" und nach dem Datum "97" mit dem Vergleichsmodus "Jahr" gefiltert wurde;
Fig. 9A zeigt das Steuerfenster der Fig. 4, nachdem der Datensatz nach dem Typ "MS Wor" mit dem Vergleichsmodus "Beginne mit" gefiltert wurde, wobei der Filtervorgang nach Ablauf des Filter­ zeitgebers gestartet wurde;
Fig. 9B zeigt das Steuerfenster der Fig. 9A, nachdem der Datensatz nach dem Typ "MS Work" mit dem Vergleichsmodus "Beginne mit" gefiltert wurde, wobei der Filterprozeß gestartet wurde, nachdem der Benutzer <Enter< gedrückt hat;
Fig. 10 zeigt ein Steuerfenster mit einem Datensatz, der aus Heimen und einem kundenspezifischen Steuermenü aufgebaut ist, das einen Bereich für die Eingabe von Filterwerten und einen Bereich für die Eingabe des Vergleichsmodus umfaßt;
Fig. 11 zeigt das Steuerfenster der Fig. 4 mit einem Menü enthaltend eine Liste mit eindeutigen Wer­ ten, das die eindeutigen Werte der Spalten an­ zeigt, über denen es liegt, und das verwendet wird, um Filtereingangswerte zu erhalten;
Fig. 12 ist ein Flußdiagramm, das ein Verfahren gemäß einer Ausführungsform der Erfindung darstellt;
Fig. 13 ist ein Flußdiagramm, das die Reaktionen dar­ stellt, welche das Anfangssteuermodul unter verschiedenen Umständen macht;
Fig. 14 ist die Darstellung eines Steuerfensters, das ein sekundäres "Kalender"-Fenster gestartet hat, nachdem das "modifizierte" PullDown-Menü aktiviert wurde;
Fig. 15 ist ähnlich der Fig. 14, zeigt jedoch eine Auswahl eines Bereichs von Daten in dem sekun­ dären "Kalender"-Fenster; und
Fig. 16 zeigt ein weiteres sekundäres Fenster, das durch Aktivieren des "modifizierten" PullDown-Menüs gestartet werden kann, wobei dieses Fen­ ster die Auswahl eines "modifizierten" Attribu­ tes um ein bestimmtes Datum herum ermöglicht.
Die Erfindung wird nun in bezug auf ein Verfahren und eine Vorrichtung zum Vorsehen einer standardisierten Benutzer­ schnittstelle (SUI; Standard User Interface) für einen willkürlichen Datenanbieter oder Datenprovider erläutert. Durch die Verwendung der SUI kann ein Benutzer präzise An­ fragen an einen ihm unvertrauten Datenanbieter stellen und eine prompte Antwort erhalten. Die Pünktlichkeit der Antwort variiert, um die Effizienz bei der Bearbeitung der Anfragen und die optische Wirkung der kontinuierlichen Anzeige von aktualisierten Zwischenergebnissen einer Anfrage zu ma­ ximieren. Bei der gezeigten Ausführungsform wird die Stan­ dardisierung der SUI erreicht, indem eine Reihe von Anwen­ dungsprogrammierschnittstellen (API; Application Programming Interfaces) von der SUI und den Datenanbietern übernommen werden.
Betriebsumgebung der vorliegenden Erfindung
Fig. 2 und die folgende Erläuterung sollen einen kurzen allgemeinen Überblick über eine geeignete Rechenumgebung bieten, in der die Erfindung realisiert werden kann. Während die Erfindung zusätzlich im Zusammenhang mit von einem Rech­ ner ausführbaren Befehlen eines Computerprogramms, das auf einem Personal Computer läuft, beschrieben ist, wird der Fachmann erkennen, daß die Erfindung auch in Kombination mit anderen Programmodulen realisiert werden kann.
Programmodule umfassen im allgemeinen Routinen, Programme, Komponenten, Datenstrukturen etc., die bestimmte Aufgaben ausführen oder bestimmte abstrakte Datentypen realisieren. Der Fachmann wird ferner verstehen, daß die Erfindung auch in anderen Rechnersystemkonfigurationen angewendet werden kann, einschließlich handgehaltene Geräte, Multiprozessor­ systeme, mikroprossergestützte oder programmierte Verbrau­ cherelektronik, Minicomputer, Mainframecomputer und derglei­ chen. Die Erfindung kann auch in verteilten Rechenumgebungen eingesetzt werden, in der Aufgaben von dezentralen Verarbei­ tungseinrichtungen ausgeführt werden, die über ein Daten­ übertragungsnetz miteinander verbunden sind. In einer ver­ teilten Rechenumgebung können die Programmodule sowohl in zentralen als auch in entfernten dezentralen Speicherein­ richtungen liegen.
Fig. 2 zeigt ein Beispiel eines Rechnersystems, das als eine Betriebsumgebung für die Erfindung dient. Das Rechner­ system umfaßt einen Personal Computer 120 mit einer Verar­ beitungseinheit 121, einem Systemspeicher 122 und einem Sy­ stembus 123, der die verschiedenen Systemkomponenten ein­ schließlich des Systemspeichers mit der Verarbeitungseinheit 121 verbindet. Der Systembus kann eine von verschiedenen Arten von Busstrukturen aufweisen, einschließlich einen Speicherbus oder eine Speicher-Steuereinrichtung, einen Pe­ ripheriebus oder einen lokalen Bus mit einer von vielen ver­ schiedenen Busarchitekturen, wie PCI, VESA, Microchannel (MCA), ISA und EISA, um nur einige zu nennen.
Der Systemspeicher umfaßt einen Festspeicher (ROM) 124 und einen Arbeitsspeicher (RAM) 125. Ein Basis-Ein-Ausgabesystem (BIOS), das die Grundroutinen enthält, die bei der Übertra­ gung von Information zwischen den Elementen innerhalb des Personal Computers 120 helfen, z. B. während des Hochfahrens, ist im ROM 124 gespeichert.
Der Personal Computer 120 umfaßt ferner ein Festplattenlauf­ werk 127, ein Magnetplattenlaufwerk 128, z. B. zum Lesen von und Schreiben auf eine entfernbare Platte 129, und ein opti­ sches Plattenlaufwerk 130, z. B. zum Lesen einer CD-ROM 131 oder zum Lesen von und Schreiben auf ein optisches Medium. Das Festplattenlaufwerk 127, das Magnetplattenlaufwerk 128 und das optische Plattenlaufwerk 130 sind über eine Fest­ plattenlaufwerk-Schnittstelle 132, eine Magnetplattenlauf­ werk-Schnittstelle 133 bzw. eine optische Laufwerkschnitt­ stelle 134 mit dem Systembus 123 verbunden. Die Laufwerke und ihre zugehörigen computerlesbaren Medien bilden einen nichtflüchtigen Speicher für Daten, Datenstrukturen, von einem Computer ausführbare Befehle (Programmcode, wie dyna­ mische Bibliotheken und ausführbare Dateien) etc. für den Personal Computer 120.
Obwohl oben eine Festplatte, eine entfernbare Magnetplatte und eine CD beschrieben sind, können als computerlesbare Medien auch andere Arten von Medien verwendet werden, die von einem Computer lesbar sind, wie Magnetkassetten, Blitz­ speicher-Karten (Flash-Speicherkarten), digitale Bildplat­ ten, Bernoulli-Kassetten und dergleichen.
In den Laufwerken und dem RAM 125 können eine Reihe von Pro­ grammodulen gespeichert sein, einschließlich eines Be­ triebssystems 135 (z. B. Windows NT, Windows 95, MS-DOS etc.), ein oder mehrere Anwendungsprogramme 136, andere Pro­ grammodule 137 und Programmdaten 138.
Ein Benutzer kann Befehle und Informationen in den Personal Computer 120 über eine Tastatur 140 und eine Lenkvorrich­ tung, wie eine Maus 142, eingeben. Andere Eingabeeinrichtun­ gen (nicht gezeigt) können ein Mikrophon, einen Joystick, ein Spielpad, eine Satellitenschüssel, einen Scanner oder dergleichen umfassen. Diese und anderer Eingabevorrichtungen sind mit der Verarbeitungseinheit 121 häufig über eine se­ rielle Portschnittstelle 146 verbunden, die mit dem System­ bus gekoppelt ist, sie können jedoch auch über andere Schnittstellen angeschlossen sein, wie einen parallelen Port, einen Gameport, oder einen universellen, seriellen Bus (USB).
Ein Monitor 147 oder eine andere Art Anzeigeeinrichtung ist ebenfalls über eine Schnittstelle mit dem Systembus 123 ver­ bunden, z. B. über einen Videoadapter 148. Zusätzlich zu dem Monitor weisen Personal Computer üblicherweise weitere Peri­ pherieausgabegeräte (nicht gezeigt) auf, wie Lautsprecher und Drucker.
Der Personal Computer 120 kann in einer vernetzten Umgebung arbeiten, die logische Verbindungen zu einem oder mehreren entfernten Computern nutzt, z. B. zu dem entfernten Computer 149. Der entfernte Computer 149 kann ein Server, eine Leit­ wegsteuereinrichtung (Router), ein gleichrangiges Gerät oder ein anderer üblicher Netzknoten sein, und er umfaßt übli­ cherweise viele oder alle der oben in bezug auf den Personal Computer 120 beschriebenen Elemente, obwohl in Fig. 1 nur eine Speichervorrichtung 150 gezeigt ist. Die in Fig. 1 gezeigten logischen Verbindungen umfassen ein lokal es Netz (LAN) 151 und ein Fernnetz (WAN) 152. Solche Netzumgebungen sind in Büros, unternehmensweiten Computernetzen, Intranet­ zen und dem Internet allgemein üblich.
Wenn der Personal Computer 120 in einer LAN-Netzumgebung eingesetzt wird, ist er mit dem lokalen Netz 151 über eine Netzschnittstelle oder einen Adapter 153 verbunden. Wenn er in einer WAN-Netzumgebung eingesetzt wird, umfaßt der Perso­ nal Computer 120 üblicherweise ein Modem 154 oder ein ande­ res Mittel zum Aufbauen von Datenübertragungsverbindungen über das Fernnetz 152, wie das Internet. Das Modem 154, das in oder außerhalb des Computers liegen kann, ist mit dem Systembus 123 über die serielle Portschnittstelle 146 ver­ bunden.
In einer Netzumgebung können Programmodule, die in bezug auf den Personal Computer 120 dargestellt sind, oder deren Teile in der entfernten Speichervorrichtung gespeichert sein. Man wird verstehen, daß die gezeigten Netzverbindungen lediglich Beispiele sind und daß auch andere Mittel zum Einrichten eines Übertragungsweges zwischen den Computern eingesetzt werden können.
Anfangssteuermodul und Standardbenutzerschnittstelle
Fig. 1B und 3-13 zeigen die Funktionen des Anfangssteuer­ moduls (header control) und des Listendarstellungs-Steuer­ moduls (list view control), welche die Standardbenutzer­ schnittstelle (SUI) einer Ausführungsform der vorliegenden Erfindung bilden. Die Fig. 1B und 3-8 zeigen die Ar­ beitsweise des Anfangssteuermoduls und der SUI insgesamt, während die Fig. 9A und 9B zeigen, wie der Filterzeitge­ ber für eine Textfiltereingabe innerhalb der SUI arbeitet. Fig. 10 und 11 zeigen alternative Ausführungsformen der vorliegenden Erfindung, welche benutzerspezifische Steuerme­ nüs bzw. Listen mit eindeutigen Werten verwenden. Die Fig. 12 und 13 sind Flußdiagramme, welche den Betrieb des gezeigten Systems allgemeiner beschreiben.
Fig. 1B zeigt ein Beispiel einer SUI gemäß der vorliegenden Erfindung. Im Gegensatz zu den mehreren Benutzerschnittstel­ len, die bei den Verfahren des Standes der Technik zum Zu­ greifen auf mehrere Datenanbieter 210, 212, 214, 216, 218 benötigt werden, sieht die vorliegende Erfindung eine ein­ zige SUI 220 vor, um auf mehrere Datenanbieter zuzugreifen.
Die gezeigte SUI 220 kann auf jeden Datenanbieter zugreifen, der gemäß den unten erläuterten APIs konzipiert ist. Die SUI kann z. B. dazu verwendet werden, über einen Dateimanager 202 auf einen Dateiverzeichnisbaum 212 zuzugreifen, indem sie die unten erläuterten APIs verwendet. Dieselbe SUI kann dazu verwendet werden, auf ein elektronisches Arbeitsblatt (spread sheet) 216, das Internet 214, e-mail-Archive 218 zuzugreifen.
Die SUI 220 hat sowohl für die Benutzer von Computersystemen als auch für die Softwareentwickler Vorteile. Der Benutzer muß nicht mehr verschiedene Abfragesprachen lernen oder sich merken, wie er mit verschiedenen Schnittstellen bzw. Ober­ flächen umgeht, um auf verschiedene Datenanbieter zuzugrei­ fen. Die Softwareentwickler müssen nicht mehr für die ver­ schiedenen Datenanbieter spezifische Benutzerschnittstellen entwerfen. Statt dessen können die Softwareentwickler mit den Funktionen der SUI arbeiten.
Fig. 3 zeigt ein Steuerfenster, das die SUI 220 enthält, nachdem das Steuermodul/Steuerfenster von dem Benutzer ges­ tartet wurde. Die in Fig. 3 gezeigte SUI ist Teil eines selbständigen (stand alone) Steuermoduls. Bei einer anderen Ausführungsform ist die SUI Teil eines anderen Abfragesteu­ ermoduls.
Das Steuerfenster 222 umfaßt einen Bereich 310 für die An­ zeige eines Datensatzes (einschließlich Spalten 350, 352, 354, 356 für Attribute), von Kennungen 320, 322, 324, 326 für die Attribute des Datensatzes, von Filtern 330, 332, 334, 336 für die Attribute des Datensatzes und von Tasten eines PullDown-Menüs 340, 342, 344, 346 in der Nähe der Ken­ nungen für die Attribute. Die Anzahl der Attribute und die Kennungen der Attribute sind bekannt, wenn das Steuerfenster gestartet wird. Bei einer anderen Ausführungsformen werden die Anzahl der Attribute und die Kennungen für die Attribute aus dem in dem Steuerfenster angezeigten Datensatz abgelei­ tet. In jedem Fall können die Anzahl der Spalten und die Kennungen für die Attribute abhängig von dem Datensatz vari­ ieren.
Bei der gezeigten Ausführungsform wird das Anfangssteuerfen­ ster unabhängig von dem Listendarstellungs-Steuerfenster gestartet. Das bedeutet, daß das Anfangssteuerfenster sicht­ bar werden kann, bevor ein Datensatz angezeigt wird, wie in Fig. 3 gezeigt. Bei einer anderen Ausführungsform wird der Datensatz innerhalb des Listendarstellungs-Steuerfensters angezeigt, sobald das Anfangssteuerfenster gestartet wird. Der Datenanbieter liefert den Datensatz sowie die in den PullDown-Menüs enthaltene Information, welche aktiviert wer­ den, indem die Tasten des PullDown-Menüs in dem Anfangs­ steuerfenster gedrückt werden.
Wie der Fachmann verstehen wird, kann die präzise Konfigura­ tion des Bereiches für den Datensatz, der Kennungen, der Filter und PullDown-Menü-Tasten nach Wunsch modifiziert wer­ den.
Fig. 4 zeigt das Steuerfenster der Fig. 3, in dem ein Da­ tensatz angezeigt ist. Der Datensatz umfaßt Zeilen 360 mit Datenobjekten und Spalten 370 mit Attributen, welche diese Datenobjekte beschreiben. Obwohl der in Fig. 4 gezeigte Datensatz aus Anwendungsdokumenten zusammengesetzt ist, die durch ihren Namen, Typ, Pfad und ihr Datum beschrieben sind, können auch andere Datensätze verwendet werden. Die Daten­ sätze können z. B. w.w.w.-Seiten (w.w.w. = World Wide Web) umfassen, die Treffer einer Internet-Suchmaschine wieder­ geben, e-mail-Nachrichten, die in einem e-mail-Archiv ge­ speichert sind oder Daten in einem elektronischen Arbeits­ blatt. Der Datensatz wird von dem Datenanbieter geliefert. Das gezeigte Listendarstellungs-Steuerfenster kann einen Datensatz mit einer beliebigen Anzahl von Datenobjekten oder Datenattributen aufnehmen. Das gezeigte Anfangssteuerfenster kann ähnlich eine beliebige Anzahl von Datenattributen un­ terbringen.
Wie der Fachmann erkennen wird, kann die präzise Organisa­ tion des Datensatzes verändert werden, ohne die Funktions­ weise der gezeigten Ausführungsweise zu ändern. Die Zeilen des Datensatzes könnten z. B. Attribute enthalten, während die Spalten den Objekten entsprechen könnten.
Fig. 5 zeigt die SUI der Fig. 4, wobei eine Taste 342 des PullDown-Menüs gedrückt ist und von dem Anfangssteuerfenster ein PullDown-Menü 382 angezeigt wird. Das PullDown-Menü 382 zeigt die Vergleichsverfahren oder -modi an, mit denen der Filter 332 (Fig. 3) für die Attribute der Spalten 352 auf den Datensatz angewendet werden sollte. Es ist z. B. das PullDown-Menü für das Attribut "Typ" gezeigt. Durch Auswahl eines Vergleichsmodus kann ein Benutzer überprüfen, ob ir­ gendein Element des Datensatzes zu einem Typ gehört, der mit dem für das Attribut in den Filter 332 eingegebenen Term "beginnt", "endet", "(genau) gleich ist", oder "ungleich ist".
Der Datenanbieter liefert die in dem PullDown-Menü ange­ zeigte Information über den Vergleichsmodus. Diese Infor­ mation kann für jedes Attribut anders sein. In Fig. 5 hat der Benutzer den Vergleichsmodus "Beginnt mit" mit einem Cursor 390 einer Lenkvorrichtung ausgewählt. (Wie der Fach­ mann erkennen wird, können auch andere Eingabevorrichtungen verwendet werden, um einen Vergleichsmodus auszuwählen, ohne die Funktionsweise der gezeigten Ausführungsformen zu ver­ ändern.) Wenn der Benutzer für ein Attribut keinen Ver­ gleichsmodus auswählt, verwendet der Datenanbieter einen voreingestellten Vergleichsmodus, wenn er eine Abfrage aus­ führt.
Fig. 6 zeigt die SU:E der Fig. 4, nachdem der Benutzer eine Eingabe in den Typ-Filter 332 des Anfangssteuermoduls ein­ gegeben hat. Der Benutzer hat den Typ-Filter aktiviert, in­ dem er mit einer Lenkvorrichtung den Filter angeklickt hat. Bei Anklicken des Filters schaltet der Filter in den Edi­ tiermodus um. Der Benutzer hat "MS" eingetippt und <ENTER< gedrückt, um an den Datenanbieter eine Datenänderung zu übermitteln. Alternativ könnte der Benutzer die SUI mit der Lenkeinrichtung auch an irgendeiner anderen Stelle anklick­ en, um den Editiermodus zu verlassen.
Wenn der Benutzer den Editiermodus verläßt, wird die Filter­ änderung von dem Anfangssteuermodul an den Datenanbieter ge­ sendet. Der Datenanbieter filtert den Datensatz in Überein­ stimmung mit dem Typ-Filterterm "MS" und dem Vergleichsmodus "Beginne mit", der vom Benutzer ausgewählt sein kann oder der der voreingestellte Vergleichsmodus sein könnte. Der gefilterter Datensatz wurde vom Datenanbieter zurückgegeben und in dem Listendarstellungs-Steuerfenster angezeigt.
Obwohl ein Datenanbieter bestimmt, wie eine Abfrage mit dem eingegebenen Filter und dem Vergleichsmodus behandelt werden soll, ignoriert ein Datenanbieter normalerweise Filter, die von einem Benutzer nie verändert wurden. Mit anderen Worten, in der Voreinstellung sind Filter leer (oder auf andere Weise als inaktiv dargestellt) und werden bei der Filterung nicht verwendet.
Wie der Fachmann verstehen wird, können andere Verfahren zum Aktivieren und Verlassen der Filter für den Zweck der Edi­ tierung eingesetzt werden, ohne die Funktionsweise der ge­ zeigten Ausführungsformen zu verändern.
Fig. 7 zeigt die SUI der Fig. 4, nachdem der Benutzer den Typ-Vergleichsmodus "Ende mit" und den Typ-Filter "Word" ausgewählt hat. Der Datenanbieter hat den Datensatz abhängig von der Information über den Filter und das Verfahren, die an ihn übergeben wurde, gefiltert. Der gefilterte Datensatz wurde vom Datenanbieter zurückgegeben und in dem Listendar­ stellungs-Steuerfenster angezeigt.
Fig. 8 zeigt die SUI der Fig. 4, nachdem der Benutzer den Typ-Vergleichsmodus "Beginne mit", den Typ-Filter "MS", den Datums-Vergleichsmodus "Jahr" und den Datums-Filter "97" in­ nerhalb des Anfangssteuerfensters ausgewählt hat. Der Daten­ satz wird im Steuerfenster angezeigt, und die Filter werden im Anfangssteuerfenster angezeigt, nachdem der Datenanbieter den Datensatz mit all dieser Information gefiltert hat.
Der Datenanbieter ermittelt, wie die Filter und die ausge­ wählten Modi bei dem Datensatz angewendet werden sollten. In Fig. 8 hat der Datenanbieter Datenobjekte gefiltert, die mit "MS" beginnen UND aus dem Jahr "97" stammen. Alternativ könnte ein Datenanbieter Datenobjekte filtern, die mit "MS" beginnen ODER aus dem Jahr "97" stammen. Ein Datenanbieter kann die Filterterme und die ausgewählten Modi in jedem geeigneten Filteralgorithmus verwenden. Das Filterverfahren ist in dem Anfangssteuerfenster und dem Listendarstellungs-Steuer­ fenster der gezeigten Ausführungsform nicht sichtbar. Das Anfangssteuermodul sendet Änderungen des Filters und die Auswahl der Modi an den Datenanbieter (oder sein Schnitt­ stellenprogramm), und das Listendarstellungs-Steuermodul empfängt im Gegenzug die gefilterten Datensätze.
Obwohl Fig. 8 den Datensatz nach der Filterung abhängig von allen Termen der Abfrage zeigt, wie oben bemerkt, werden Veränderungen des Filters an den Datenanbieter gesendet, wenn der Benutzer den Editiermodus für einen bestimmten Fil­ ter verläßt. Die Auswahl des Vergleichsmodus wird an den Datenanbieter gesendet, sobald sie getroffen wurde. Wenn der Datenanbieter eine Veränderung des Filters oder eine Auswahl des Vergleichsmodus empfängt, filtert er den Datensatz ab­ hängig von den aktuellsten Termen der Abfrage. Bei der Ab­ frage der Fig. 8 würde der Datenanbieter mehrere Filter­ schritte durchgeführt haben, bevor er zu dem Filterergebnis gemäß dem Datensatz der Fig. 8 kommt.
Zeitgeber für textliche Veränderungen des Filters
Fig. 9A und 9B zeigen die SUI der Fig. 4, die mit einem Zeitgeber (Timer) für textliche Filteränderungen arbeitet. Wenn ein Benutzer einen Filter editiert, mißt der Zeitgeber die Zeit, die verstrichen ist, seitdem der Benutzer das letzte Mal Eingaben über die Tastatur gemacht hat. Wenn eine Tastatureingabe empfangen wird, wird sie von dem Anfangs­ steuermodul stapel- oder chargenweise verarbeitet, bis sie als eine Änderung des Filters an den Datenanbieter gesendet wird. Das Anfangssteuermodul sendet eine Charge der Eingaben automatisch, wenn der Benutzer den Editiermodus für den Fil­ ter verläßt. Wenn die Zeit, die verstrichen ist, seitdem zuletzt eine Eingabe über die Tastatur empfangen wurde (oder die Zeit, die verstrichen ist, seitdem zuletzt eine Anfrage an den Datenprovider gesendet wurde), über einem bestimmte Grenzwert liegt, werden die chargenweise verarbeiteten Tas­ tatureingaben an den Datenanbieter gesendet.
Mit Bezug auf die Fig. 9A sei angenommen, daß ein Benutzer des gezeigten Ausführungsbeispiels ein ungeübter Sekretär ist, und daß der Zeitgeber auf 2 Sekunden eingestellt ist. Der Benutzer möchte den Datensatz der Fig. 4 nach dem Typ "MS Works" filtern. Der Benutzer tippt "MS Wor", bevor er jedoch das "k" auf der Tastatur finden kann, läuft der Zeit­ geber ab, und der veränderte Typ "MS Wor" wird an den Daten­ anbieter gesendet. Der gemäß dem Typ "MS Wor" und dem Ver­ gleichsmodus "Beginne mit" (Voreinstellung) gefilterte Da­ tensatz wird zurückgegeben und angezeigt.
Mit Bezug auf Fig. 9B wir angenommen, daß der Benutzer dann das "k" findet und "ks" <ENTER< tippt. Das <ENTER< bewirkt, daß der Benutzer den Editiermodus verläßt, wodurch automa­ tisch die Veränderung des Filtertyps "ks" sofort an den Da­ tenanbieter gesendet wird, ohne daß der Ablauf des Zeitge­ bers abgewartet wird. . Der gemäß dem Typ "MS Works" und dem Vergleichsmodus "Beginne mit" (Voreinstellung) gefilterte Datensatz wird dann zurückgegeben und angezeigt.
Bei der gezeigten Ausführungsform wird der Zeitgeber jedes­ mal zurückgesetzt, nachdem ein Tastenanschlag empfangen wur­ de. Wenn der Zeitgeber auf 3 Sekunden eingestellt wird, be­ wirkt eine Pause von weniger als 3 Sekunden zwischen den Tastenanschlägen, daß die Tastenanschläge in einer einzigen Filteränderung als Charge zusammengefaßt werden und der Zeitgeber nach jedem Tastenanschlag zurückgesetzt wird. Eine Pause von 3 oder mehr Sekunden nach dem Empfang des letzten Tastenanschlags bewirkt, daß die als Charge zusammengefaßten Eingaben über die Tastatur als eine Filteränderung abge­ schickt werden.
Bei der gezeigten Ausführungsform der Erfindung wird der Zeitgeber von dem Datenanbieter eingestellt und kann verän­ dert werden. Wenn der Datenanbieter den Zeitgeber mit einer sehr kurzen Dauer einstellt, filtert der Datenanbieter nach der Eingabe jedes Tastenanschlags. In einem solchen Fall kann es dann, wenn der Filtervorgang des Datenanbieters län­ ger als das Tippen eines Tastenanschlags benötigt, gesche­ hen, daß der Datenanbieter in Filterabfragen versinkt, was die Neuanzeige der Datensätze verlangsamt und insbesondere zu einem langsamen optischen Ansprechverhalten führt, wenn der Benutzer durch Verlassen des Editiermodus die Filterope­ ration explizit startet.
Wenn der Zeitgeber andererseits auf eine lange Zeitdauer eingestellt ist, verliert die SUI die vorteilhafte optische Wirkung, daß der Datensatz "schrumpft", während der Benutzer auf der Tastatur tippt.
Der Datenanbieter stellt also den Zeitgeber so ein, daß ein Kompromiß zwischen dem Ansprechverhalten der SUI und der Leistungsverschlechterung durch den zu häufigen Neuaufbau des Datensatzes gefunden wird. Wenn der Datenanbieter stär­ ker oder weniger stark in Anspruch genommen wird, kann sich die optimale Zeit ändern. Wenn der Datenanbieter z. B. eine Internet-Suchmaschine ist, wird die Zeit während der Stoß­ zeiten den Internetzugang länger und während der Nebenzeiten für den Internetgebrauch kürzer sein.
Wie der Fachmann erkennen wird, kann der Zeitgeber auch wäh­ rend des Startens des Anfangssteuermoduls von diesem einge­ stellt werden, wenn es möglich ist, eine optimale Zeit für den Datenanbieter zu ermitteln, ohne die Funktionsweise der gezeigten Ausführungsform zu verändern.
Das benutzerspezifische Menü
Fig. 10 zeigt eine andere Ausführungsform für das Steuer­ modul/Steuerfenster und die SUI der vorliegenden Erfindung. Bei dieser Ausführungsform wird, wenn der Benutzer die Taste 342 des PullDown-Menüs aktiviert, ein benutzer- oder kun­ denspezifisches Steuermenü 402 angezeigt. Der Datenanbieter liefert das benutzerspezifische Steuerfenster 412, das in dem PullDown-Menü angezeigt wird. Bei einer anderen Ausfüh­ rungsform signalisiert der Datenanbieter dem Steuermodul, welches von mehreren benutzerspezifischen Steuerfenstern 412 in dem PullDown-Menü angezeigt werden soll. (Das Farbaus­ wahl-Steuerfenster 412 der Fig. 10 ist grau, weil eine an­ dere Farbgebung in Patentdokumenten nicht wiedergegeben wer­ den kann. In der Praxis würde die Farbauswahl jedoch ein zweidimensionales Spektrum von Farbwahlmöglichkeiten wieder­ geben.).
Der Benutzer interagiert mit dem benutzerspezifischen Steu­ erfenster 412, um (z. B. mit dem Cursor 390 einer Lenkvor­ richtung) nicht textorientierte Abfrageterme für das Attri­ but 352, zu dem das benutzerspezifische Steuerfenster ge­ hört, einzugeben. Diese nicht textorientieren Abfrageterme werden auf die gleiche Weise wie die Textfilter zum Filtern eines Datensatzes verwendet.
Ein Datensatz, nach dem gesucht wird, kann z. B. aus Autos bestehen, die ein örtlicher Autohändler im Lager hat und die auf einer Seite des World Wide Web enthalten sind. Ein At­ tribut jedes Autos ist die Farbe. Ein möglicher Käufer des Autos, der über ein begrenztes Vokabular zum Beschreiben der Farbe (weiß, gebrochenes Weiß, grün, grau etc.) verfügt, wäre im Nachteil, wenn er ein Auto mit einer gewünschten Farbe textorieniert sucht. Um die Unfähigkeit des Benutzers, den gesamten Bereich der Autofarben in textlichen Begriffen zu beschreiben, zu überwinden, und einen intuitiveren Filter zu realisieren, ermöglicht die gezeigte Ausführungsform ein benutzerspezifisches Steuerfenster 412 in der Form einer Farbpalette für Autofarben. Nach Vorgabe dieser Farbpalette wählt der Benutzer eine Farbe mit der Lenkvorrichtung aus. Die Auswahl wird wie eine Filteränderung an den Datenanbie­ ter weitergegeben. Der Datenanbieter filtert dann den Daten­ satz abhängig von der Farbauswahl als ein Filter.
Das benutzerspezifische Steuermenü zeigt Information über den Vergleichsmodus, die von dem Datenanbieter geliefert wird, in einem PullDown-Menü 382 neben dem benutzerspezifis­ chen Steuermenü 402 an. Wenn das benutzerspezifische Steuer­ modul 412 z. B. eine Farbpalette ist, könnten die Vergleichs­ modi "Liegt nahe bei" und "Ist nicht" angezeigt werden. Bei einer anderen Ausführungsform enthält das benutzerspezifi­ sche Steuermenü das benutzerspezifische Steuermodul, während die Information über den Vergleichsmodus in einem getrennten Menü dargestellt wird.
In noch einer anderen Ausführungsform kann das benutzerspe­ zifische Steuermodul die Form eines Nebenfensters annehmen, das bei Aktivierung eines Filter-PullDown-Menüs durch Aus­ wahl eines "benutzerspezifisch. . ."-Eintrags in dem PullDown-Menü gestartet wird.
Fig. 14 zeigt eine solche Anordnung, bei der ein sekundäres "Kalenderfenster" gestartet wird, wenn der Benutzer das "mo­ dified"-PullDown-Menü startet. Der Benutzer kann ein einzel­ nes Datum in dem Kalender anklicken, oder er kann, wie in Fig. 15 gezeigt, den Cursor mit der Lenkeinrichtung über mehrere Daten in dem Kalenderfenster ziehen. Im ersten Fall wird in das "modified"-Filterfeld ein einziges Datum einge­ geben; im letzteren Fall wird eine Reihe von Daten eingege­ ben.
Fig. 16 zeigt ein anderes Beispiels eines sekundären Fen­ sters, das gestartet werden kann, wenn ein Benutzer die Ta­ ste des "modified"-PullDown-Menüs aktiviert. Bei diesem Beispiel erlaubt das sekundäre Fenster es dem Benutzer, eine von mehreren Bedingungen auszuwählen, z. B. "Am", "Zwischen" oder "Ungefähr". Wenn der Benutzer "ungefähr" (around) aus­ wählt, wird ein Schiebesteuermodul aktiviert, das die Ein­ gabe eines Zeitbereichs um das spezifizierte Datum herum er­ möglicht, in dem die Filterkriterien erfüllt werden.
Wenn man sich wieder dem benutzerspezifischen Farbauswahl­ modul zuwendet, kann z. B. dann, wenn die Farbdaten bei dem Datenanbieter in quantitativer Form (z. B. RGB, YUV, etc.) gespeichert sind, die "liegt nahe bei"-Bedingung von solchen Farben als erfüllt angesehen werden, deren entsprechende Farbkomponenten numerisch innerhalb von z. B. 15% der Farb­ komponente der vom Benutzer ausgewählten Farbe liegen. (Bei einer anderen Ausführungsform können für verschiedene Farb­ komponenten unterschiedliche Prozentbereiche verwendet wer­ den, um die "Nähe" zu beurteilen, z. B. abhängig von der un­ terschiedlichen Empfindlichkeit des menschlichen Auges auf verschiedene Farben).
Obwohl dies in Fig. 10 nicht gezeigt ist, gibt es weitere Farbbeziehungen, die spezifiziert werden können, wie "hel­ ler als" und "dunkler als". Diese können beurteilt werden, indem z. B. die vom Benutzer ausgewählte Farbe in einen ent­ sprechenden Grauskalenwert umgewandelt wird, und dieser Wert mit entsprechenden Grauskalenwerten der bei einem Datenanb­ ieter gespeicherten Farben verglichen wird.
Liste eindeutiger Werte
Fig. 11 zeigt eine weitere Ausführungsform des Anfangssteu­ ermoduls und der SUI der Fig. 1. Bei dieser Ausführungsform wird, wenn der Benutzer die Taste 342 des PullDown-Menüs betätigt, ein Menü 422 mit einer Liste aus eindeutigen Wer­ ten angezeigt. Die Liste aus eindeutigen Werten zählt die eindeutigen Werte der Attribute auf, zu denen die Liste aus eindeutigen Werten gehört. Die Liste aus eindeutigen Werten der Fig. 11 zeigt z. B. "MS Word", MS Exel", "MS Works" und "Text" an - eine erschöpfende Liste aller Datentypen, die in dem Datenanbieter gespeichert sind.
Die Liste aus eindeutigen Werten, die in einem PullDown-Menü angezeigt wird, wird vom Benutzer dazu verwendet, mit der Lenkvorrichtung einen Wert auszuwählen. Diese Auswahl wird als eine Änderung des Filters an den Datenanbieter weiter­ gegeben, der dann die Auswahl dieses eindeutigen Wertes zum Filtern des Datensatzes verwendet.
Der Datenanbieter liefert die Liste aus eindeutigen Werten. Vor der Initialisierung des Inhalts des PullDown-Menüs ta­ stet der Datenanbieter den aktuellen Datensatz ab und ermit­ telt die eindeutigen Werte, die für ein gegebenes Attribut des Datensatzes vorhanden sind. Die eindeutigen Werte werden ähnlich wie die Vergleichsmodi zurückgegeben.
Wenn Filter für mehrere Attribute eingestellt sind, UND-ver­ knüpft der Datenanbieter diese Attribute, wenn er die Abfra­ gen ausführt, wie bereits erwähnt wurde. Die Liste aus ein­ deutigen Werten ermöglicht eine leistungsstarke Erweiterung dieses Grundprotokolls: Wenn der Benutzer mehrere verschie­ dene Werte in einer einzigen Attributliste aus eindeutigen Werten auswählt (z. B. durch Festhalten der Steuertaste wäh­ rend der Auswahl mehrerer Werte), werden diese bei der Ab­ frage des Datenanbieters ODER-verknüpft. Bei Testversuchen hat sich ergeben, daß diese Maßnahme eine stark intuitive Schnittstelle schafft.
Eingeschränkte Suche
Wie erwähnt, werden vom Benutzer häufig iterativ verknüpfte Abfragen ausgegeben, wenn er versucht, nach und nach große Datenmengen auf bewältigbare Mengen herunterzufiltern. Ein Benutzer, der eine einfache Anfrage an eine Internet-Suchma­ schine ausgibt, kann z. B. Tausende von "Treffern" als Ant­ wort empfangen. Der Benutzer kann dann eine engere Abfrage ausgeben, um innerhalb dieser Antworten eine Untermenge zu finden. Die engere Abfrage ist üblicherweise die ursprüng­ liche Abfrage plus (UND) ein anderer Term.
Es ergeben sich enorme Redundanzen, wenn die modifizierte Abfrage mit dem gesamten Datensatz anstelle des engeren Da­ tensatzes, der abhängig von der ersten Abfrage zurückgegeben wurde, ausgeführt wird. Diese Redundanz verschlechtert die optische Rückkoppelung auf der Benutzeroberfläche und ver­ langsamt die Ansprechzeit.
Bei der gezeigten Ausführungsform wird die Handhabung der eingeschränkten Filter den jeweiligen, abgefragten Datenan­ bietern überlassen. Wenn eine zweite Abfrage vorliegt, wel­ che die Ergebnisse einer unmittelbar vorhergehenden Abfrage weiter eingrenzt, können einige Datenanbieter die Suche neu durchführen. Andere, intelligentere Datenanbieter können die Ergebnisse der vorhergehenden Suche beibehalten und verfei­ nern, anstatt neu zu starten.
Abfragen als Objekte
In einigen Fällen ist es vorteilhaft, eine Abfrage anstelle nur der Abfrageergebnisse an einen Benutzer weiterzugeben (letztere können bald überholt und ferner sehr umfangreich sein). Bei der gezeigten Ausführungsform kann der Benutzer ein QuickFilter-Steuermodul an einen anderen Benutzer z. B. mittels e-mail übertragen. Dieser anderer Benutzer kann dann die übertragene Abfrage nach Bedarf zu gewünschter Zeit durchführen.
Cursorgesteuertes Blättern (Scrolling)
Manchmal sind die Filterkriterien so breit eingestellt, daß Hunderte von Datenobjekten (oder mehr) in dem Datenanbieter angezeigt werden müssen. Bei einer Ausführungsform werden alle Datenobjekte, welche die Filterkriterien erfüllen, für die Anzeige an das Listendarstellungs-Steuermodul weiterge­ geben, unabhängig von ihrer Anzahl. Bei einer anderen Aus­ führungsform wird eine begrenzte Anzahl von Objekten (z. B. zwei mal so viele, wie in dem Fenster angezeigt werden kön­ nen) übergeben. Dadurch kann etwas durch das Fenster geblät­ tert werden, ohne daß das System durch die übermäßigen Da­ tenübertragungen belastet würde. Wenn der Benutzer versucht, an dem letzten Eintrag im Fenster vorbeizublättern, kann der Datenanbieter angewiesen werden, zusätzliche Objekte zur Anzeige durch das Listendarstellungs-Steuermodul vorzusehen.
Sortierreihenfolge
Bei der gezeigten Ausführungsform wird die Sortierung der in der SUI dargestellten Objekte von dem Datenanbieter vorge­ nommen, der die Objekte sortiert an das Listendarstellungs-Steuer­ modul liefert. Bei anderen Ausführungsformen kann die Sortierung auf der SUI-Seite erfolgen.
Anfangssteuermodul und Anwendungsprogrammierschnittstellen
Wie erwähnt, kommuniziert das Anfangssteuermodul mit dem Datenanbieter und der übergeordneten Steuerung (oder dem Stammprogramm; Parent) über eine Gruppe APIs. Die APIs ar­ beiten im allgemeinen durch den Austausch von Nachrichten und Benachrichtigungen. Das Anfangssteuermodul sendet Be­ nachrichtigungen an die übergeordnete Steuerung und den Da­ tenanbieter durch die übergeordnete Steuerung. Das Anfangs­ steuermodul empfängt Nachrichten von der übergeordneten Steuerung und von dem Datenanbieter über die übergeordnete Steuerung.
Fig. 12 ist ein Ablaufdiagramm des Anfangssteuermoduls der gezeigten Ausführungsform auf einer hohen Ebene. Wie in Fig. 12 gezeigt, wird das Anfangssteuermodul von dem Benutzer in Gang gesetzt 500. An diesem Punkt werden der Steuerrah­ men, Kennungen, Filter und Tasten eines Pull-Down-Menüs an­ gezeigt. Gleichzeitig kann der Datensatz angezeigt werde, oder auch nicht, abhängig davon, ob auch das Listendarstel­ lungs-Steuermodul initialisiert wurde. Das Anfangssteuermo­ dul kann als ein unabhängiges (stand alone) Steuerfenster oder als Teil eines größeren Abfragefensters gestartet wer­ den. In jedem Fall verfügt das Anfangssteuermodul über eine übergeordnete Steuerung, über die es Nachrichten sendet und empfängt. Bei Verwendung in Verbindung mit Microsoft Windows wird die Anwendungsprogrammierschnittstelle (APT) Win32 Create Window verwendet.
Wenn das Anfangssteuermodul gemäß den Normen von Microsofts QuickFilter erzeugt wurde, ist das Steuermodul in Nachrich­ ten an das Steuermodul und Benachrichtigungen von dem Steuermodul als eine NM_QUICKFILTER oder QF_FILTER-Struktur beschrieben.
QF_FILTER
Diese Struktur wird als ein Teil der Nachrichten von dem Datenanbieter unter Einsatz einzelner Filter weitergegeben. Die Nachricht erlaubt es der übergeordneten Steuerung, die aktuellen Filterwerte für eine bestimmte Spalte einzustellen oder wiederzugewinnen.
Das Feld dwType gibt gestützt auf die Werte FILTER_TYPE_* an, welche der Filterwerte gültig sind. Wenn dwType gleich FILTER_TYPE_INT, dann ist das iFilter-Feld gültig. Wenn dwType gleich FILTER_TYPE_STRING, dann wird angenommen, daß pszFilter zu einem geeigneten Puffer zeigt, von dem aus die Filterdaten eingestellt, oder in den die Filterdaten zurück­ gegeben werden sollen. Wenn der Filter eingestellt wird, definiert cchFilter die maximale Editiergröße des Filters, und wenn die Filterdaten zurückgegeben werden, definiert es die Puffergröße, auf den pszFilter zeigt.
NM_QUICKFILTER
Wenn mit einer Benachrichtigung WM_NOTIFY Daten zur überge­ ordneten Steuerung des Anfangssteuermoduls zurückübertragen werden, gibt eine Struktur NM_QUICKFILTER an, welche Spalte der Gegenstand der Benachrichtigung ist. Alle Benachrichti­ gungen von dem Steuermodul QuickFilter haben diese Kopfzei­ len.
Das Feld NMHDR ist ein Standardteil einer Benachrichtigungs­ nachricht. iColumn gibt an, welche Spalte innerhalb der Kopfzeile Gegenstand der Nachricht ist.
Nach dem Starten warten das Anfangssteuermodul (520, Fig. 12) auf den Empfang von Nachrichten. Wenn das Steuermodul eine Nachricht empfängt, übersetzt es (540) die Nachricht, um zu bestimmen, wie abhängig von der Nachricht vorgegangen werden soll.
Nach der Übersetzung der Nachricht reagiert das Anfangssteu­ ermodul (560) auf die Nachricht, bevor es in den Wartezu­ stand (520) zurückgeht und auf die nächste Nachricht wartet. Eine von dem Steuermodul vorgenommene Aktion kann das Schließen des Steuerfensters (570), das Verschieben oder Verändern der Größe des Steuerfenster, das Verändern des Er­ scheinungsbildes des Steuerfensters oder das Senden einer Benachrichtigung an die übergeordnete Steuerung oder den Da­ tenanbieter über die übergeordnete Steuerung sein.
Viele Nachrichten sind Standardnachrichten zum Manipulieren eines Anfangssteuermoduls, und sie betreffen nicht speziell das Steuermodul der gezeigten Ausführungsform. Bei einer Ausführungsform in einer Windowsumgebung empfängt z. B. das Steuermodul der gezeigten Ausführungsform Win32 HDM-Nach­ richten von dem übergeordneten Steuerprogramm, die es anwei­ sen, die Spalten des Steuerfensters neu anzuordnen. Das Steuermodul empfängt auch andere übliche Win32-Nachrichten von der übergeordneten Steuerung, die es Anweisen, das Steuerfenster zu bewegen oder seine Größe zu verändern.
Das Anfangssteuermodul empfängt HDM-Nachrichten von dem Da­ tenanbieter über die übergeordnete Steuerung, welche den an­ gezeigten Datensatz als Teil der Standardbenutzerschnitt­ stelle vorsieht. Das Anfangssteuermodul empfängt ferner HMENU-Nachrichten von dem Datenanbieter über die übergeord­ nete Steuerung, welche die in den PullDown-Menüs angezeigte Information vorsehen.
Zusätzlich zu diesen Standardnachrichten empfängt das An­ fangssteuermodul weitere Nachrichten, die für die Steuerung der gezeigten Ausführungsform spezifisch sind. Diese Nach­ richten sind im folgenden Abschnitt beschrieben.
API-Nachrichten und Benachrichtigungen
Das gezeigte Anfangssteuermodul reagiert auf Nachrichten, welche es anweisen, einen Filter einzustellen, einen Filter zu holen, alle Filter zu zeigen/zu verbergen, die übergeord­ nete Steuerung, an die Benachrichtigungen gesendet werden, einzustellen, und die Dauer des Filterzeitgebers einzustel­ len.
Wenn das Anfangssteuermodul gemäß der QuickFilter-Norm von Microsoft konzipiert ist, sind die Nachrichten, welche das Steuermodul bei der Durchführung der obigen Funktionen leiten, wie folgt realisiert.
QFM_SETFILTER
Die übergeordnete Steuerung sendet diese Nachricht zum Ein­ stellen des Filterwertes für eine bestimmte Spalte. wParam enthält die Spalte, auf die der Filter gesetzt werden soll, wobei angenommen wird, daß der zuvor von HDM-SETITEM zu dem QuickFilter-Steuermodul hinzugefügt wurde. lParam enthält einen Zeiger zu einer QF_FILTER-Struktur.
Wenn der Filter ein Integer-Filter (FILTER_TYPE_INT) ist (ein Filter für ganzzahlige Werte), wird der Wert einfach im Speicher gespeichert. Wenn das Editiersteuermodul erzeugt wird, damit der Benutzer den Wert modifizieren kann, werden die entsprechenden Stylebits gesetzt, so daß der Benutzer nur Ziffern eingeben kann.
Wenn der Filter ein String-Filter (FILTER_TYPE_STRING) ist (ein Filter für Zeichenketten), wird eine Kopie des Strings (der Zeichenkette) hergestellt, der durch pszFilter aus­ gewiesen wird. Wenn der Wert des Strings editiert wird, wird cchFilter verwendet, um die Anzahl der Zeichen zu begrenzen, die ein Benutzer eingibt.
Nach erfolgreicher Beendigung gibt der Aufruf WAHR (TRUE) zurück.
QFM_GETFILTER
Die übergeordnete Steuerung sendet diese Nachricht, um den Filterwert aus einer bestimmten Spalte zu erhalten. wParam enthält die Spalte, aus der der Filter geholt werden soll. lParam enthält einen Zeiger zu einer QF_FILTER-Struktur.
Die Struktur wird gefüllt, so daß sie den aktuellen Filter­ inhalt und den Typ enthält. Es wird angenommen, daß der Da­ tenanbieter den Typ des Filters für eine bestimmte Spalte kennt und daß die QF_FILTER-Struktur einen gültigen Puffer­ zeiger und eine gültige Puffergröße enthält.
Wenn der Filter FILTER_TYPE_INT ist, wird der ganzzahlige Wert einfach in der Struktur gespeichert. Wenn der Filter FILTER_TYPE_STRING ist, wird der String in den von dem Da­ tenanbieter vorgesehenen Puffer kopiert, wenn dieser Puffer groß genug ist. Anderenfalls versagt der Aufruf.
Bei erfolgreicher Beendigung gibt der Aufruf WAHR (TRUE) zurück.
QFM_SHOWFILTER
In der Voreinstellung ist der Filterbalken des Steuerungs­ moduls sichtbar. Diese Nachricht ermöglicht es dem aufrufen­ den Programm, ihn gestützt auf den Wert in wParam darzu­ stellen oder zu verbergen. Wenn wParam nicht Null ist, wird der Filterbalken gezeigt, anderenfalls bleibt er verborgen.
Der Aufruf gibt des vorhergehenden Sichtbarkeitszustand des Filterbalkens zurück.
QFM_SETNOTIFYTARGET
Bei Verwendung des Anfangssteuermoduls QuickFilter zum Er­ setzen des Standard-Anfangssteuermoduls in einer Listendar­ stellung werden gemäß Voreinstellung Benachrichtigungen an ListView gesendet, da es das übergeordnete Steuerprogramm ist. QuickFilter kann spezifizieren, daß statt dessen Benach­ richtigungen an das Fenster gesendet werden, das in dem HWND von lParam beschrieben ist.
Bei erfolgreicher Beendigung gibt dieser Aufruf WAHR (TRUE) zurück.
QFM_SETCHANGETIMEOUT
Wenn ein Filter editiert wird, verarbeitet das Steuermodul QuickFilter die Editierung chargenweise und sendet eine ein­ zelne Benachrichtigung (QFN_CHANGE) nach einer vorgegebenen Ablaufzeit (timeout). Diese Nachricht erlaubt es einem Datenanbieter, die Ablauf zeit gegenüber der Voreinstellung zu verändern, wobei die Voreinstellung zweimal so lang wie die Ablaufzeit beim Doppelklick (double click time out) ist. lParam enthält die Zeit zum Einstellen des Filterzeitgebers in Millisekunden.
Nach erfolgreicher Beendigung gibt der Aufruf WAHR (TRUE) zurück.
Das gezeigte Anfangssteuermodul sendet auch Benachrichtigun­ gen, die einem Datenanbieter mitteilen, daß ein Filter ver­ ändert wurde, anfordern, daß der Datenanbieter ein PullDown-Menü zurückgibt, dem Datenanbieter mitteilen, daß ein Opera­ tor gewählt wurde, und der übergeordneten Steuerungen mit­ teilen, daß ein Filter gestartet oder fertig editiert wurde.
Wenn das Anfangssteuermodul gemäß den Normen des QuickFil­ ters von Microsoft konzipiert ist, werden diese Benachrich­ tigungen wie folgt realisiert.
QFN_CHANGE
Die Benachrichtigung QFN_CHANGE benachrichtigt die überge­ ordnete Steuerung des Anfangssteuermoduls davon, daß einer der Filter verändert wurde. Eine Struktur NM_QUICKFILTER wird als ein Parameter weitergegeben und enthält Informatio­ nen über sowohl das Steuermodul als auch die Spalte, die modifiziert wurde.
Benachrichtigungen QFN_CHANGE werden gesendet, nachdem der Filterzeitgeber abgelaufen ist, nachdem der Benutzer in dem Editiersteuerfenster <ENTER< gedrückt hat, oder nachdem der Benutzer einen Vergleichsmodus aus dem PullDown-Menü ausge­ wählt hat.
Der von dieser Nachricht zurückgegebene Wert wird ignoriert.
QFN_GETOPERATORMENU
Die Benachrichtigung QFN_GETOPERATORMENU wird gesendet, wenn der Filter das Vergleichsoperatormenü eine bestimmte Spalte anzeigen möchte. Eine Struktur NM_QUICKFILTER wird als ein Parameter übergeben und enthält Information über sowohl das Steuermodul als auch die Spalte für die Anzeige. Die überge­ ordnete Steuerung sollte bei Empfang dieser Nachricht ein HMENU zurückgeben, das dann angezeigt wird. Wenn der zurück­ gegebene Wert NULL ist, ignoriert der Aufruf das Operatorme­ nü für diese Spalte. Der zurückgegebene Wert aufgrund dieser Benachrichtigung ist entweder HMENU oder NULL.
QFN_OPERATORCHOSEN
Nachdem das Vergleichsoperatormenü angezeigt wurde und der Benutzer eine Auswahl getroffen hat, sendet das Steuermodul Quickfilter diese Benachrichtigung an die übergeordnete Steuerung, um diese über die Änderung zu informieren.
Der von dieser Nachricht zurückgegebene Wert wird ignoriert.
Die Benachrichtigung gibt eine Struktur NM_QFOPERATORCHOSEN als einen Parameter weiter. Nach dem Senden einer Benach­ richtigung QFN_GETOPERATORMENU ruft das Filtersteuermodul das TrackPopUpMenu auf, um das Ergebnis anzuzeigen. Der von diesem TrackPopUpMenu zurückgegebene Code wird unter Verwen­ dung von NM_QFOPERATORCHOSEN an die übergeordnete Steuerung weitergegeben.
NM_QFOPERATORCHOSEN besteht aus einer Kopfzeile NM_QUICKFIL- TER und einem Feld wID, das das Ergebnis des TrackPopUpMenu enthält, soweit angenommen wird, daß es nicht Null ist.
QFN_BEGINFILTEREDIT QFN_ENDFILTEREDIT
Diese beiden Benachrichtigungen werden dazu verwendet, die übergeordnete Steuerung zu informieren, wenn ein Filter edi­ tiert wird. Eine NM_QUICKFILTER-Struktur wird als einfacher Parameter weitergegeben und enthält die Identifikation der editierten Spalte.
Der von dieser Nachricht zurückgegebene Wert wird ignoriert.
Bei Ausführungsformen, die benutzerspezifische Steuermodule enthalten, wird ein Microsoft COM-Objekt verwendet, um eine Schnittstelle mit dem Namen IQFCustomFilter zu realisieren. Diese Schnittstelle interagiert zwischen dem Anfangssteuer­ modul QuickFilter und dem benutzerspezifischen Filter wie folgt:
HRESULT IQFCustomFilter::Edit (HWND hwndParent, POINT, ptHit, HWND* phWnd)
Wenn der Benutzer innerhalb des Filterbereichs anklickt, wird das Verfahren ::Edit aufgerufen, das die Relativkoordinaten X/Y (als einen Punkt) übergibt. Das Verfahren gibt ein HWND an den vorgesehenen Zeiger zurück. Wenn der Aufruf S_False zurückgibt oder ein Fehler auftritt, wird angenommen, das phWnd ungültig ist. Anderenfalls wird das Fenster angezeigt, so daß der Benutzer die Eigenschaft editieren kann.
HRESULT IQFCustomFilter::Render (HDC hDC, RECT rect, DWORD dwState)
Dieses Modul wird zum Anzeigen des Filters in dem Filterbal­ ken aufgerufen. Das ICustomFilter-Objekt ist verantwortlich für die Wiedergabe einer Darstellung der Daten, welche es enthält, in dem gegebenen HDC/Rechteck.
HRESULT IQFCustomFilter::GetOperatorMenu (HMENU* phMenu) HRESULT iQFCustomFilter::OperatorChosen (UINT uID)
Diese Module bilden direkt auf die Benachrichtigungen QFN_GETOPERATORMENU/QFN_SETOPERATOR ab, welche von dem Fil­ tersteuermodul an die übergeordnete Steuerung gesendet wer­ den. Wenn das ICustomFilter-Objekt aus dem ICustomFil­ ter::GetOperatorMenu E_NOTIMPL zurückgibt, wird die Stan­ dardbenachrichtigung ausgegeben. Ein QFN_OPERATORCHOSEN wird immer ausgegeben, damit die übergeordnete Steuerung die Identität (ID) des Operators speichern kann. Wenn das Opera­ tormenü zurückgegeben wird, wird zu dem spezifizierten Zei­ ger HMENU zurückgegeben. Wenn dies NULL ist, oder der Aufruf S_FALSE zurückgibt, wird er ignoriert.
QFM_DISMISSEDIT wParam = fRefresh lParam = 0
Wenn der benutzerspezifische Filtereditor den Zustand des Filters modifiziert hat, wird QFM_DISMISSEDIT gesendet, um die Beendigung anzuzeigen. fRefreh gibt an, ob das benut­ zerspezifische Filterobjekt im Filterbalken neu dargestellt werden sollte.
Wie der Fachmann verstehen wird, hängt die Funktionsweise der gezeigten Ausführungsform nicht von der Verwendung von Nachrichten und Benachrichtigungen ab, die exakt identisch mit den oben beschriebenen sind. Sie sind lediglich als Bei­ spiele ausgeführt.
Editiersteuermodul und Filterzeitgeber
Das Ablaufdiagramm der Fig. 13 zeigt die Funktionsweise des Editiersteuermoduls und des Filterzeitgeber, die bei der ge­ zeigten Ausführungsform eingesetzt werden.
Ein Editiersteuermodul wird in Gang gesetzt (600), wie oben beschrieben, wenn der Benutzer einen Filter anklickt und das Steuermodul sendet eine Benachrichtigung (QFN_BEGINFILTER-EDIT), um das Editieren des Filters zu beginnen. Die Ein­ gangscharge des Filters wird gelöscht (602). Anschließend wird der Filterzeitgeber auf den Wert, der von dem Datenan­ bieter angegeben wurde, zurückgesetzt (604). Das Editier­ steuermodul wird über den vom Benutzer angeklickten Filter gelegt. Nach dem Starten wartet das Editiersteuermodul auf Nachrichten, welche die Dauer des Filterzeitgebers verändern (620) oder das Editieren beenden (630), es wartet auf Tasta­ tureingaben (640), und es überwacht und aktualisiert den Filterzeitgeber (650).
Wenn das Editiersteuermodul eine Nachricht empfängt, welche den Filterzeitgeber verändert (QFN_SETTIMEOUT) (620), wird die Dauer des Filterzeitgebers abhängig von der Nachricht verändert, und der Zeitgeber wird zurückgesetzt (622).
Wenn das Editiersteuermodul eine Nachricht empfängt, die es anweist, das Editieren zu beenden (QFN_ENDFILTEREDIT) (630), schließt das Editiersteuermodul (632), und der Filter zeigt die Textkette an, die zuletzt in dem Editiersteuermodul mo­ difiziert wurde.
Wenn das Editiersteuermodul einen Tastenanschlag empfängt (640), wird der Filterzeitgeber auf den Wert zurückgesetzt (642), der von dem Datenanbieter spezifiziert wurde (QFM_SETTIMEOUT). Wenn ein Tastenanschlag <Enter< ist (670), hat der Benutzer explizit gefordert, daß der Datenanbieter eine Filteroperation beginnt. Wenn eine Charge/ein Stapel von Filterveränderungen vorliegen, werden diese Veränderun­ gen zu dem Datenanbieter gesendet (680) (QFN_CHANGE), bevor das Editiersteuermodul geschlossen wird. Wenn irgendeine andere Taste außer <Enter< gedrückt wird, wird der Tasten­ anschlag zu der Stapeldatei hinzugefügt (674), welche all die Filteränderungen enthält, die gemacht wurden, seitdem die letzte Charge Filteränderungen zu dem Datenanbieter ge­ sendet wurde (QFN_CHANGE). Der Zeitgeber wird neu initiali­ siert (676) und zeichnet die Zeit auf, die seit dem letzten Tastenanschlag verstrichen ist. Das Steuermodul wartet dann auf die nächste Eingabe.
Wenn das Eiditiersteuermodul wieder einen Tastenanschlag (640), noch eine Zeitablaufnachricht (620) oder ein Editier­ endesignal (630) empfängt, wird der Filterzeitgeber über­ prüft (650). Wenn der Filterzeitgeber abgelaufen ist (d. h., wenn die Zeit seit der letzten Eingabe eines Tastenanschlags durch den Benutzer größer oder gleich der Zeit ist, die von dem Datenanbieter eingestellt wurde) und der Filterstapel nicht leer ist, sendet die Steuerung eine Benachrichtigung über eine Filteränderung (QFN_CHANGE) (660) an den Datenanb­ ieter, wobei die Charge der Filteränderungen einen Parameter bildet (680). Das Steuermodul wartet dann auf die nächste Eingabe.
Wenn der Benutzer überhaupt keine Tastenanschläge gemacht hat oder keine Tastenanschläge eingegeben hat, seitdem die letzte Charge der Filteränderungen gesendet wurde, ist die Charge/der Stapel leer, die verstrichene Zeit ist Null, und das Steuermodul wartet auf die nächste Eingabe.
Wie der Fachmann erkennen wird, kann die genaue Reihenfolge der Schritte in dem Flußdiagramm der Fig. 13 auf viele Ar­ ten verändert werden, ohne die Funktionsweise der gezeigten Ausführungsform zu verändern.
Netzrealisierung
Ausführungsformen der vorliegenden Erfindung sind besonders nützlich beim Sichten von Ergebnissen aus Suchvorgängen im Internet. Bei solchen Ausführungsformen ist der Datenanbie­ ter üblicherweise ein entfernter Computer, der über eine Übertragungsverbindung mit dem Computer des Benutzers ver­ bunden ist. Beliebte Suchmaschinen, die als solche entfernte Computer dienen können, umfassen Excite, Lycos, HotBot und AltaVista.
Bei diesen Ausführungsformen wird die Datenübertragung zwi­ schen der graphischen Abfrage-Bildschirmoberfläche auf dem Computer des Benutzers und dem entfernten Datenanbieter üb­ licherweise nicht mit: den oben erläuterten APIs von Micro­ soft Windows durchgeführt werden. Statt dessen findet die Datenübertragung mit anderen Mitteln statt. Wenn das System in Java oder dergleichen realisiert ist, können Java-Benach­ richtigungen dazu verwendet werden, die Datenübertragung auszuführen. Bei anderen Ausführungsformen können HTTP-Ver­ bindungen verwendet werden.
Die Datenattribute mit denen die Internetobjekte gefiltert werden können, umfassen Datum, Größe, Bereich (Domain), Textauszug, etc.
Wie bei anderen netzgestützten Anwendungen sollte man sich mit den Problemen der Übertragungsverzögerung befassen. Bei einer bevorzugten Ausführungsform wird die Zeitkonstante für den Zeitgeber (der oben erläutert wurde) abhängig von der tatsächlichen Latenz zeit des Netzes (die mit bekannten Ver­ fahren gemessen werden kann) sowie von der momentanen Verar­ beitungsbelastung, unter der der Datenanbieter steht, adap­ tiv eingestellt werden.
Bei Verwendung von Java-Anwendungsprogrammen oder derglei­ chen kann ein Steuermodul wie das oben beschriebene verfaßt und in Web-Seiten eingebaut werden, wodurch die Standardi­ sierung dieser Schnittstelle vom Schreibtisch des Benutzers aus bis zu dem und durch das World Wide Web hindurch erwei­ tert wird.
Nach der Beschreibung der Grundsätze des Erfindungsgegen­ standes mit Bezug auf verschiedene Ausführungsbeispiele sollte deutlich geworden sein, daß die Technologie hinsicht­ lich der Anordnung und den Einzelheiten modifiziert werden kann, ohne diese Grundsätze zu verlassen.
Während bei dem Ausführungsbeispiel zwei getrennte Steuer­ strukturen verwendet wurden, um die Standardbenutzerschnit­ tstelle zu bilden (d. h. das QuickFilter-Anfangssteuermodul, das nichts über den Datensatz weiß, sondern nur Filter, Ken­ nungen, PullDown-Menüs, etc. kennt, und das Listendarstel­ lungs-Anzeigesteuermodul, das einfach den Datensatz dar­ stellt), kann bei anderen Ausführungsformen eine vereinheit­ lichte Struktur verwendet werden.
Während die Erfindung in Verbindung mit einer graphischen Benutzerschnittstelle erläutert wurde, ist das erfindungs­ gemäße Konzept nicht hierauf begrenzt. Die obigen Grundsätze können z. B. auch in textgestützten Schnittstellen vorteil­ haft eingesetzt werden (die z. B. in vielen Mainframe-Syste­ men üblich sind).
Während die Erfindung weiterhin in Verbindung mit einer ta­ bellenförmigen detaillierten Beschreibung jedes Datenobjekts in dem Listendarstellungs-Steuermodul dargestellt wurde, kann bei anderen Ausführungsformen eine einfachere pikto­ grammartige Darstellung eines Datenobjekts, das die spezifi­ zierten Filterkriterien erfüllt, gewählt werden.
Während ferner bei den erläuterten Ausführungsformen für jedes von mehreren Attributen Filterfelder verwendet wurden, kann bei anderen Ausführungsformen ein einziges Filterfeld verwendet werden, um mehrere Attribute abzusuchen. Bei einer solchen Ausführungsform umfaßt das Anfangssteuermodul ein allgemeines "Suchen nach"-Feld. In dieses Feld eingegebene Daten werden mit allen Attributen der Datenobjekte vergli­ chen. Ein Objekt mit einem Treffer (unabhängig davon, auf welches Attribut sich der Treffer bezieht) wird an die An­ zeige übergeben. Ein solches allgemeines "Suchen nach"-Feld kann zusätzlich zu den gezeigten spezifizierten Attributfel­ dern oder alternativ zu diesen verwendet werden. Ähnlich können einzelne Felder dazu verwendet werden, Untergruppen aller Attributfelder abzusuchen (z. B. Titel/Zusammenfassun­ gen/Author).
Im Hinblick auf die große Vielzahl möglicher Ausführungsfor­ men, bei denen die Grundsätze der Erfindung angewendet wer­ den können, sollte man erkennen, daß die detaillierten Aus­ führungsformen lediglich Beispiele sind und den Bereich der Erfindung nicht beschränken. Die Erfindung soll vielmehr all diese Variationen innerhalb des Bereichs der folgenden An­ sprüche sowie deren Äquivalente umfassen. Die in der vorste­ henden Beschreibung, den Ansprüchen und der Zeichnung offen­ barten Merkmale können sowohl einzeln als auch in beliebiger Kombination für die Verwirklichung der Erfindung in ihren verschiedenen Ausgestaltungen von Bedeutung sein.

Claims (34)

1. Verfahren zum standardisierten Filtern von Daten, die von einem beliebigen Datenanbieter stammen, in einem Rechnersy­ stem, mit folgenden Verfahrensschritten:
  • - Empfangen eines ersten Datensatzes von dem beliebigen Datenanbieter, wobei der erste Datensatz mehrere Datenobjekte und Attribute, die zu den Datenobjekten gehören, umfaßt;
  • - Anzeigen des ersten Datensatzes zusammen mit mehreren Kennungen und mehreren Filtern, wobei
    • - jede Kennung ein Attribut des ersten Datensatzes beschreibt; und
    • - jeder Filter einem Attribut des ersten Datensat­ zes zugeordnet ist;
  • - Empfangen von Filtereingaben für einen oder mehrere der Filter von einem Benutzer des Rechnersystems;
  • - Senden der Filtereingaben an den beliebigen Datenan­ bieter;
  • - Empfangen eines zweiten Datensatzes von dem beliebigen Datenanbieter, wobei der zweite Datensatz durch Fil­ terung des ersten Datensatzes abhängig von den Fil­ tereingaben abgeleitet wird; und
  • - Anzeigen des zweiten Datensatzes mit den mehreren Ken­ nungen und Filtern.
2. Verfahren nach Anspruch 1, bei dem die Datensätze, Kennungen und Filter in einem Steuerfenster angezeigt werden.
3. Verfahren nach Anspruch 2, bei dem
eine Abfrage-Benutzeroberfläche angezeigt wird, wobei das Steuerfenster innerhalb der Abfrage-Benutzeroberfläche ange­ zeigt wird; und
eine Abfrageeingabe von einem Benutzer des Rechnersystems empfangen wird, wobei die Abfrageeingabe dazu verwendet wird, den ersten Datensatz zu sortieren, bevor er angezeigt wird.
4. Verfahren nach einem der vorangehenden Ansprüche, bei dem der erste und der zweite Datensatz Zeilen/Spalten-Tabellen mit Datenobjekten sind, wobei jede Spalte eines der Attribu­ te darstellt und jede Zeile ein einzelnes Datenobjekt dar­ stellt.
5. Verfahren nach einem der vorangehenden Ansprüche, bei dem
die Zeit kontrolliert wird, die verstrichen ist, seitdem zuletzt eine Filtereingabe an den Datenanbieter übergeben wurde; und
eine neue Filtereingabe an den Datenanbieter gesendet wird, wenn die verstrichene Zeit ein vorgegebenes Schwellwertin­ tervall überschreitet oder wenn ein Benutzer die Übergabe explizit auslöst, je nachdem, was zuerst kommt.
6. Verfahren nach Anspruch 5, bei dem von dem beliebigen Daten­ anbieter das vorgegebene Schwellwertintervall empfangen wird, wobei die vorgegebene Schwellwertdauer so eingestellt wird, daß ein Kompromiß zwischen der Benutzer-Ansprech­ empfindlichkeit und der Zeit getroffen wird, die der beliebige Datenanbieter zum Filtern der Daten benötigt.
7. Verfahren nach einem der vorangehenden Ansprüche, bei dem wenigstens ein Filter eine Textkette umfaßt, wobei die Text­ kette innerhalb des Filters angezeigt wird, und bei dem Fil­ tereingabe ein Veränderung der Textkette in einem Filter oder mehreren Filtern ist.
8. Verfahren nach einem der vorangehenden Ansprüche, bei dem abhängig von einer vorgegebenen Anwendungsprogrammier­ schnittstelle Filterbefehle übertragen und Datensätze vor­ gesehen werden.
9. Verfahren nach Anspruch 8, bei dem die Anwendungsprogram­ mierschnittstelle Funktionen zum (a) Einstellen eines Fil­ ters, (b) Holen eines Filters, (c) Zeigen/Verbergen aller Filter, (d) Einstellen des Stammprogramms, an das Benach­ richtigungen gesendet werden, und (e) Einstellen der Dauer des Filterzeitgebers umfaßt; und bei dem die Anwendungspro­ grammierschnittstelle Funktionsaufrufe umfaßt, um (a) dem beliebigen Datenanbieter mitzuteilen, daß ein Filter verän­ dert wurde, (b) anzufordern, daß der beliebige Datenanbieter ein PullDown-Menü zurückgibt, (c) dem beliebigen Datenanbie­ ter mitzuteilen, daß ein Operator gewählt wurde, und (d) einem Stammprogramm mitzuteilen, daß ein Filter gestartet wurde oder fertig editiert ist.
10. Verfahren nach einem der vorangehenden Ansprüche, bei dem der beliebige Datenanbieter in dem Speicher des Rechnersys­ tems liegt.
11. Verfahren nach einem der Ansprüche 1 bis 9, bei dem der be­ liebige Datenanbieter in dem Speicher eines zweiten Rechner­ systems liegt, wobei das zweite Rechensystem in Verbindung mit dem zuerst genannten Rechnersystem ist.
12. Verfahren zum Anzeigen eines Steuermoduls, das zum Filtern von Daten in einem ersten Datensatz verwendet wird, auf ei­ ner Anzeigeeinrichtung in einem Rechnersystem, mit folgenden Verfahrensschritten:
  • - Empfangen eines ersten Datensatzes von einem beliebigen Datenanbieter, wobei der erste Datensatz mehrere Datenobjekte und mehrere Attribute, die zu den Datenob­ jekten gehören, umfaßt;
  • - Anzeigen des ersten Datensatzes in dem Steuermodul zusammen mit mehreren Kennungen, mehreren PullDown-Menü-Tasten und mehreren Filtern, wobei jede Kennung ein Attribut des ersten Datensatzes beschreibt, jede Kennung einem Satz Vergleichsmodi zugeordnet ist, jeder Filter einem Attribut des ersten Datensatzes zugeordnet ist, und wenigstens ein Filter eine Eingabe empfängt, die zum Modifizieren des ersten Datensatzes abhängig von dem Attribut, zu dem dieser Filter gehört, verwen­ det wird;
  • - abhängig von der Betätigung der PullDown-Menü-Taste, die einer Kennung am nächsten ist, Anzeigen eines PullDown-Menüs, dessen Inhalt von dem beliebigen Datenprovider vorgesehen wird;
  • - Empfangen einer Eingabe von dem Benutzer des Rechner­ systems abhängig von dem PullDown-Menü;
  • - Senden der Eingabe zu dem beliebigen Datenanbieter;
  • - Empfangen eines zweiten Datensatzes von dem beliebigen Datenanbieter, wobei der zweite Datensatz durch Sor­ tieren des ersten Datensatzes abhängig von der Eingabe abgeleitet wird; und
  • - Anzeigen des zweiten Datensatzes.
13. Verfahren nach Anspruch 12, bei dem wenigstens ein PullDown-Menü eine Auswahl für Vergleichsmodi für die Attribute um­ faßt, zu denen das PullDown-Menü gehört.
14. Verfahren nach Anspruch 12 oder 13, bei dem der Inhalt des PullDown-Menüs ein kundenspezifisches Steuermenü für die Attribute umfaßt, zu denen das PullDown-Menü gehört.
15. Verfahren nach einem der Ansprüche 12 bis 14, bei dem das PullDown-Menü ein eigenes Fenster startet.
16. Verfahren nach einem der Ansprüche 12 bis 15, bei dem der Inhalt des PullDown-Menüs eine Liste eindeutiger Werte für die Attribute umfaßt, zu denen das PullDown-Menü gehört.
17. Speichermedium für einen Rechner, auf dem Befehle gespei­ chert sind, die einen entsprechend der Befehle programmier­ ten Rechner veranlassen,
  • - abhängig von einer Benutzereingabe einen Filterbefehl an einen Datenanbieter aus zugeben;
  • - entsprechende Ergebnisse von dem Datenanbieter zu empfangen und diese anzuzeigen;
  • - Benutzereingaben anzunehmen und in einem Stapel zu speichern;
  • - den Benutzereingabestapel an den Datenanbieter weiter­ zugeben, wenn ein Zeitgeber abläuft, oder wenn der Benutzer ausdrücklich angibt, daß der Eingangsstapel weitergegeben werden soll; und
  • - modifizierte Ergebnisse von dem Datenanbieter zu empfangen und anzuzeigen.
18. Speichermedium nach Anspruch 17, bei dem die Befehle die entsprechend der Befehle programmierten Rechner veranlassen, den Zeitgeber zurückzusetzen, wenn der Benutzereingabestapel an den Datenanbieter weitergegeben wurde.
19. Speichermedium nach Anspruch 17 oder 18, bei dem die Befehle den entsprechend der Befehle programmierten Rechner veran­ lassen, den Zeitgeber zurückzusetzen, wenn eine Benutzerein­ gabe von dem Benutzer akzeptiert wurde.
20. Speichermedium nach einem der Ansprüche 17 bis 19, bei dem die Befehle den entsprechend der Befehle programmierten Rechner veranlassen, einen Zeitsteuerparameter von dem Da­ tenanbieter zu empfangen und den Zeitgeber abhängig von die­ sem Parameter einzustellen.
21. Speichermedium nach einem der Ansprüche 17 bis 20, bei dem der Filterbefehl einen ausführbaren Code umfaßt, der über eine Datenübertragungsverbindung zu einem entfernten Rechner gesandt wird, in dem der Datenanbieter realisiert ist.
22. Speichermedium nach einem der Ansprüche 17 bis 21, bei dem der Filterbefehl einen API-Aufruf umfaßt.
23. Speichermedium nach einem der Ansprüche 17 bis 22, bei dem die Befehle Teil eines Web-Browsers bilden.
24. Rechnerbetriebssystem, das von einem Computer ausführbare Befehle umfaßt, die auf einem Speichermedium gespeichert sind, wobei die Befehle Mittel zum Aufrufen eines generischen Filtersteuermoduls und Mittel für die Datenübertragung zwischen dem generischen Filtersteuermodul und einem beliebigen Datenanbieter vorsehen.
25. Betriebssystem nach Anspruch 24, bei dem die Mittel Nach­ richten und Aufrufe umfassen, deren Syntax mit QFN und QFM beginnt.
26. Verfahren zum Abfragen eines Datenanbieter mit folgenden Verfahrensschritten:
  • - Vorsehen einer standardisierten Benutzerschnittstelle, die in Verbindung mit mehreren verschiedenen Datenan­ bietern arbeiten kann;
  • - Formulieren erster Suchkriterien unter Verwendung der Benutzerschnittstelle;
  • - Übertragen von Daten in bezug auf die ersten Suchkri­ terien an einen Datenanbieter;
  • - Durchführen einer ersten Suche nach den Daten durch den Datenanbieter abhängig von den ersten Suchkriterien, um erste Ergebnisse zu erzeugen, und Liefern der Ergebnis­ se an die standardisierte Benutzerschnittstelle für deren Anzeige;
  • - Formulieren zweiter Suchkriterien unter Verwendung der Benutzerschnittstelle, wobei die zweiten Suchkriterien eine logische UND-Verknüpfung der ersten Suchkriterien mit zusätzlichen Suchkriterien umfassen;
  • - Übertragen von Daten in bezug auf die zweiten Suchkri­ terien zu dem Datenanbieter;
  • - Durchführen einer zweiten Suche nach den Daten durch den Datenanbieter abhängig von den Suchkriterien, um zweite Suchergebnisse zu erzeugen, und Liefern der Er­ gebnisse an die standardisierte Schnittstelle für deren Anzeige;
  • - wobei der Datenanbieter die zweite Suche durch Fil­ terung der ersten Suchergebnisse abhängig von den zusätzlichen Suchkriterien (iterrativ) oder durch Aus­ führen einer neuen Suche, welche die ersten und die zusätzlichen Suchkriterien umfaßt, durchführt, wobei dieselbe Benutzerschnittstelle abhängig von dem abge­ fragten Datenanbieter, zum Durchführen von sowohl iter­ rativen als auch neuen Suchen verwendet wird, wenn eine vorhergehende Suche verfeinert wird.
27. Verfahren zum Abfragen eines Datenanbieter mit folgenden Verfahrensschritten:
  • - Darstellen einer Abfragefilterschnittstelle;
  • - Darstellen von nicht textorientierten Textauswahlmit­ teln, mit denen ein nicht textorientiertes Textattribut ausgewählt werden kann; und
  • - Ausgeben von Suchkriterien an den Datenanbieter abhän­ gig von einem nicht textorientierten Attribut, das von einem Benutzer über die Auswahlmittel ausgewählt wurde;
  • - wobei die Auswahlmittel von dem Datenanbieter an die Abfragefilterschnittstelle geliefert und nicht aus einer Codierung innerhalb der Abfragefilterschnitt­ stelle erhalten werden.
28. Verfahren nach Anspruch 27, bei dem das Darstellen eine An­ zeige umfaßt, und die nicht textgebundenen Auswahlmittel die Darstellung einer graphischen Farbanzeige umfassen.
29. Verfahren zum Formulieren einer Anfrage an einen Datenanbie­ ter und zum Darstellen der Ergebnisse der Anfrage in einem Rechnersystem, das eine Benutzerschnittstelle mit einer An­ zeige und einer Benutzerschnittstellen-Auswahlvorrichtung umfaßt, mit folgenden Verfahrensschritten:
  • (a) Identifizieren einer Gruppe von Datenattributen, wel­ che dem Datenanbieter entsprechen;
  • (b) Darstellen der Attribute in ersten Feldern einer gra­ phischen Benutzerschnittstelle;
  • (c) Empfangen von Dateneingaben, welche einem oder mehre­ ren Attributen entsprechen, in zweiten Feldern, die neben den ersten Feldern liegen;
  • (d) Abfragen des Datenanbieters, um Datenobjekte zu iden­ tifizieren, welche Attribute haben, die zu den empfan­ genen Daten passen; und
  • (e) Darstellen der Ergebnisse der Anfrage in der Benutzer­ schnittstelle derart, daß die Attribute der identifi­ zierten Datenobjekte in Verbindung mit den zu diesen gehörenden ersten Feldern dargestellt werden.
30. Verfahren nach Anspruch 29, bei dem die Schritte (a) bis (d) in einem Anfangssteuerfenster durchgeführt werden, und der Schritt (e) in einem getrennten Anzeigesteuerfenster durch­ geführt wird.
31. Verfahren nach Anspruch 29 oder 30, bei dem
die ersten Felder in einer ersten Zeile angeordnet werden;
die zweiten Felder in einer zweiten Zeile unter der ersten Zeile angeordnet werden; und
die von der Abfrage identifizierten Objekte in aufeinander­ folgenden Zeilen unter der zweiten Zeile dargestellt werden.
32. Verfahren nach einem der Ansprüche 29 bis 31, bei dem in dem Identifikationsschritt die Gruppe aus Datenattributen von dem Datenanbieter geliefert und nicht aus einer Codierung innerhalb der graphischen Benutzerschnittstelle erhalten wird.
33. Verfahren nach einem der Ansprüche 29 bis 32, bei dem zwei oder mehr Abfrageanforderungen an den Datenanbieter ausgege­ ben werden, wenn in nur einem der zweiten Felder eine Daten­ eingabe empfangen wird, wobei die zweite Anforderung detail­ lierter ist als die erste Anforderung.
34. Verfahren zum Formulieren einer Anfrage an einen Datenanbie­ ter in einem computergestützten System, mit folgenden Ver­ fahrensschritten:
  • - Empfangen erster Filterkriterien von einer interak­ tiven Schnittstelle;
  • - Empfangen zweiter Filterkriterien von der interaktiven Schnittstelle;
  • - Abfragen des Datenanbieter, um Datenobjekte zu iden­ tifizieren, deren Attribute zu den ersten und den zweiten Filterkriterien passen, wobei eine logische UND-Verknüpfung der ersten und zweiten Filterkriterien ausgeführt wird;
  • - wobei wenigstens das erste der Filterkriterien mehrere Kriterien umfaßt, die aus einer Liste mit eindeutigen Werten ausgewählt werden, wobei die mehreren aus­ gewählten Kriterien logisch ODER-verknüpft werden, um die ersten Filterkriterien zu bilden.
DE19842688A 1997-09-21 1998-09-17 Verfahren zum Filtern von Daten, die von einem Datenanbieter stammen Expired - Lifetime DE19842688B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US938032 1997-09-21
US08/938,032 US6279016B1 (en) 1997-09-21 1997-09-21 Standardized filtering control techniques

Publications (2)

Publication Number Publication Date
DE19842688A1 true DE19842688A1 (de) 1999-03-25
DE19842688B4 DE19842688B4 (de) 2006-05-11

Family

ID=25470762

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19842688A Expired - Lifetime DE19842688B4 (de) 1997-09-21 1998-09-17 Verfahren zum Filtern von Daten, die von einem Datenanbieter stammen

Country Status (5)

Country Link
US (1) US6279016B1 (de)
JP (1) JP4326045B2 (de)
DE (1) DE19842688B4 (de)
FR (1) FR2768826B1 (de)
GB (1) GB2329492B (de)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19922793A1 (de) * 1999-05-18 2000-12-07 Siemens Health Services Gmbh & Medizinische Systemarchitektur
DE19933986A1 (de) * 1999-07-20 2001-01-25 Sonja Anderle Kommunikationssystem sowie ein hierzu geeignetes Verfahren zur Durchführung des Kommunikationssystems
DE19964077A1 (de) * 1999-10-07 2001-04-12 Dietz Gislinde Nicht löschbare Betriebssystemerweiterung für Computer und Internet-Zugangseinrichtungen

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5684985A (en) 1994-12-15 1997-11-04 Ufil Unified Data Technologies Ltd. Method and apparatus utilizing bond identifiers executed upon accessing of an endo-dynamic information node (EDIN)
US6745203B1 (en) * 1998-05-15 2004-06-01 E.Piphany, Inc. User interface for a distributed messaging framework
US6665687B1 (en) 1998-06-26 2003-12-16 Alexander James Burke Composite user interface and search system for internet and multimedia applications
US7269585B1 (en) * 1998-06-26 2007-09-11 Alexander James Burke User interface and search system for local and remote internet and other applications
US6539421B1 (en) 1999-09-24 2003-03-25 America Online, Inc. Messaging application user interface
GB2354851B (en) * 1999-10-01 2004-07-21 Ibm Web browser extension and method for processing data content of web pages
WO2001046887A1 (en) * 1999-12-23 2001-06-28 My-E-Surveys.Com, Llc System and methods for internet commerce and communication based on customer interaction and preferences
US6865302B2 (en) * 2000-03-16 2005-03-08 The Regents Of The University Of California Perception-based image retrieval
GB2363044A (en) * 2000-05-16 2001-12-05 Ibm Method and computer system for selecting and displaying graphic objects
US6782350B1 (en) 2001-04-27 2004-08-24 Blazent, Inc. Method and apparatus for managing resources
US20030065724A1 (en) * 2001-09-28 2003-04-03 Openwave Systems Inc. Managing messages in unified messaging systems
US20030229848A1 (en) * 2002-06-05 2003-12-11 Udo Arend Table filtering in a computer user interface
CA2398103A1 (en) * 2002-08-14 2004-02-14 March Networks Corporation Multi-dimensional table filtering system
GB2394154A (en) * 2002-09-07 2004-04-14 Anthony Robert Wicks Presenting information by displaying a list of items and attributes
US7493310B2 (en) * 2002-12-30 2009-02-17 Fisher-Rosemount Systems, Inc. Data visualization within an integrated asset data system for a process plant
US7941762B1 (en) * 2003-02-14 2011-05-10 Shoretel, Inc. Display of real time information for selected possibilities
US7240292B2 (en) 2003-04-17 2007-07-03 Microsoft Corporation Virtual address bar user interface control
US7823077B2 (en) 2003-03-24 2010-10-26 Microsoft Corporation System and method for user modification of metadata in a shell browser
US7421438B2 (en) 2004-04-29 2008-09-02 Microsoft Corporation Metadata editing control
US7712034B2 (en) 2003-03-24 2010-05-04 Microsoft Corporation System and method for shell browser
US7627552B2 (en) * 2003-03-27 2009-12-01 Microsoft Corporation System and method for filtering and organizing items based on common elements
US7769794B2 (en) * 2003-03-24 2010-08-03 Microsoft Corporation User interface for a file system shell
US7827561B2 (en) 2003-03-26 2010-11-02 Microsoft Corporation System and method for public consumption of communication events between arbitrary processes
US7890960B2 (en) 2003-03-26 2011-02-15 Microsoft Corporation Extensible user context system for delivery of notifications
US7650575B2 (en) 2003-03-27 2010-01-19 Microsoft Corporation Rich drag drop user interface
US7925682B2 (en) 2003-03-27 2011-04-12 Microsoft Corporation System and method utilizing virtual folders
US9081863B2 (en) 2005-06-03 2015-07-14 Adobe Systems Incorporated One-click segmentation definition
US7991732B2 (en) 2005-06-03 2011-08-02 Adobe Systems Incorporated Incrementally adding segmentation criteria to a data set
US8600963B2 (en) 2003-08-14 2013-12-03 Google Inc. System and method for presenting multiple sets of search results for a single query
US8024335B2 (en) 2004-05-03 2011-09-20 Microsoft Corporation System and method for dynamically generating a selectable search extension
US7181463B2 (en) 2003-10-24 2007-02-20 Microsoft Corporation System and method for managing data using static lists
US20050108654A1 (en) * 2003-11-13 2005-05-19 International Business Machines Corporation Method, system and program product for processing requests in a web application
US8091044B2 (en) * 2003-11-20 2012-01-03 International Business Machines Corporation Filtering the display of files in graphical interfaces
WO2005098667A1 (en) * 2004-04-08 2005-10-20 Nanak Pty Ltd Interactive data tunnel
US7694236B2 (en) 2004-04-23 2010-04-06 Microsoft Corporation Stack icons representing multiple objects
US7657846B2 (en) 2004-04-23 2010-02-02 Microsoft Corporation System and method for displaying stack icons
US7992103B2 (en) 2004-04-26 2011-08-02 Microsoft Corporation Scaling icons for representing files
US8707209B2 (en) 2004-04-29 2014-04-22 Microsoft Corporation Save preview representation of files being created
US20050246327A1 (en) * 2004-04-30 2005-11-03 Yeung Simon D User interfaces and methods of using the same
US8108430B2 (en) 2004-04-30 2012-01-31 Microsoft Corporation Carousel control for metadata navigation and assignment
US20050246650A1 (en) * 2004-04-30 2005-11-03 Yeung Simon D User interfaces for displaying content and methods of using the same
GB2417797B (en) * 2004-09-02 2009-05-13 Hewlett Packard Development Co A method and apparatus for managing storage used by a processor when processing instructions
US20060074879A1 (en) * 2004-09-30 2006-04-06 Microsoft Corporation Easy-to-use data context filtering
US7505965B2 (en) * 2005-01-27 2009-03-17 Microsoft Corporation Systems and methods for providing a user interface with an automatic search menu
US7882447B2 (en) * 2005-03-30 2011-02-01 Ebay Inc. Method and system to determine area on a user interface
US8490015B2 (en) 2005-04-15 2013-07-16 Microsoft Corporation Task dialog and programming interface for same
US7614016B2 (en) 2005-04-21 2009-11-03 Microsoft Corporation Multiple roots in navigation pane
US8195646B2 (en) 2005-04-22 2012-06-05 Microsoft Corporation Systems, methods, and user interfaces for storing, searching, navigating, and retrieving electronic information
US8522154B2 (en) 2005-04-22 2013-08-27 Microsoft Corporation Scenario specialization of file browser
US20060248109A1 (en) * 2005-04-29 2006-11-02 Microsoft Corporation Filtering a view of information presented by an application based on attributes previously used by a user
US20060294116A1 (en) * 2005-06-23 2006-12-28 Hay Michael C Search system that returns query results as files in a file system
US7665028B2 (en) 2005-07-13 2010-02-16 Microsoft Corporation Rich drag drop user interface
US8683334B2 (en) * 2005-08-19 2014-03-25 Intervoice Limited Partnership System and method for sharing access to service provider controls and subscriber profile data across multiple applications in a user interactive system
US20070043569A1 (en) * 2005-08-19 2007-02-22 Intervoice Limited Partnership System and method for inheritance of advertised functionality in a user interactive system
US7797636B2 (en) * 2005-08-19 2010-09-14 Joseph Carter System and method for administering pluggable user interactive system applications
US8095866B2 (en) 2005-09-09 2012-01-10 Microsoft Corporation Filtering user interface for a data summary table
US8601383B2 (en) 2005-09-09 2013-12-03 Microsoft Corporation User interface for creating a spreadsheet data summary table
US7627812B2 (en) 2005-10-27 2009-12-01 Microsoft Corporation Variable formatting of cells
US8099683B2 (en) * 2005-12-08 2012-01-17 International Business Machines Corporation Movement-based dynamic filtering of search results in a graphical user interface
US20070136683A1 (en) * 2005-12-14 2007-06-14 Alcatel Graphical user interface for generic listing of managed objects
US20070174228A1 (en) * 2006-01-17 2007-07-26 Microsoft Corporation Graphical representation of key performance indicators
US20090319957A1 (en) * 2006-01-30 2009-12-24 Mainstream Computing Pty Ltd Selection system
US7770100B2 (en) * 2006-02-27 2010-08-03 Microsoft Corporation Dynamic thresholds for conditional formats
US7996768B2 (en) * 2006-05-18 2011-08-09 International Business Machines Corporation Operations on document components filtered via text attributes
US7937426B2 (en) * 2006-06-30 2011-05-03 Mircosoft Corporation Interval generation for numeric data
US20080295007A1 (en) * 2007-05-24 2008-11-27 Microsoft Corporation Data Visualization
US7765220B2 (en) * 2007-05-24 2010-07-27 Microsoft Corporation Data relevance filtering
JP4968920B2 (ja) * 2007-06-05 2012-07-04 キヤノン株式会社 ジョブ管理装置、ジョブ管理方法及びプログラム
US8868620B2 (en) * 2007-06-08 2014-10-21 International Business Machines Corporation Techniques for composing data queries
JP4766038B2 (ja) * 2007-11-29 2011-09-07 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置の管理プログラム、画像処理装置の管理装置、および画像処理装置の管理方法
US20090228826A1 (en) * 2008-03-04 2009-09-10 Microsoft Corporation Group filtering of items in a view
US20100076948A1 (en) * 2008-09-09 2010-03-25 International Business Machines Corporation System and method for interfacing search request and corresponding search result
US20100107081A1 (en) * 2008-10-24 2010-04-29 Infocus Corporation Projection device image viewer user interface
CN101404009B (zh) * 2008-10-31 2012-01-25 金蝶软件(中国)有限公司 一种数据分类过滤方法、系统及设备
US10176162B2 (en) * 2009-02-27 2019-01-08 Blackberry Limited System and method for improved address entry
US10156961B1 (en) * 2013-09-24 2018-12-18 EMC IP Holding Company LLC Dynamically building a visualization filter
US9984114B2 (en) * 2014-06-02 2018-05-29 Microsoft Technology Licensing, Llc Filtering data in an enterprise system
US10185478B2 (en) 2014-09-24 2019-01-22 Sap Se Creating a filter for filtering a list of objects
US10055084B2 (en) * 2014-12-15 2018-08-21 International Business Machines Corporation Linking tag selections across multiple dashboards
US20170124161A1 (en) * 2015-11-02 2017-05-04 Ebay Inc. Presentation of digital data
CN113676547B (zh) * 2021-09-01 2023-04-07 北京字跳网络技术有限公司 数据处理方法、装置、存储介质和电子设备

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4653020A (en) * 1983-10-17 1987-03-24 International Business Machines Corporation Display of multiple data windows in a multi-tasking system
US5206949A (en) * 1986-09-19 1993-04-27 Nancy P. Cochran Database search and record retrieval system which continuously displays category names during scrolling and selection of individually displayed search terms
US5049881A (en) 1990-06-18 1991-09-17 Intersecting Concepts, Inc. Apparatus and method for very high data rate-compression incorporating lossless data compression and expansion utilizing a hashing technique
US5632022A (en) * 1991-11-13 1997-05-20 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Encyclopedia of software components
US5710899A (en) * 1991-12-06 1998-01-20 Lucent Technologies Inc. Interactive selectors for selecting subsets of a set of values
CA2077271C (en) 1991-12-13 1998-07-28 David J. Craft Method and apparatus for compressing data
US5426781A (en) * 1992-04-30 1995-06-20 International Business Machines Corporation Computerized report-based interactive database query interface
DE69418908T2 (de) * 1993-01-26 2000-01-20 Sun Microsystems Inc Verfahren und Gerät zum Informationsanschauen in einer Rechnerdatenbank
CA2127764A1 (en) * 1993-08-24 1995-02-25 Stephen Gregory Eick Displaying query results
US5563595A (en) 1993-12-23 1996-10-08 International Business Machines Corporation Method and apparatus for compressing data
US5809483A (en) * 1994-05-13 1998-09-15 Broka; S. William Online transaction processing system for bond trading
US5826076A (en) * 1994-05-13 1998-10-20 Liant Software Corporation Computer-based information access method and apparatus to permit SQL-based manipulation of programming language-specific data files
US5694546A (en) * 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
US5680563A (en) * 1994-07-25 1997-10-21 Object Technology Licensing Corporation Object-oriented operating system enhancement for filtering items in a window
JP2777698B2 (ja) * 1994-07-28 1998-07-23 日本アイ・ビー・エム株式会社 情報検索システム及び方法
US5682524A (en) * 1995-05-26 1997-10-28 Starfish Software, Inc. Databank system with methods for efficiently storing non-uniform data records
US5634053A (en) * 1995-08-29 1997-05-27 Hughes Aircraft Company Federated information management (FIM) system and method for providing data site filtering and translation for heterogeneous databases
US5758083A (en) * 1995-10-30 1998-05-26 Sun Microsystems, Inc. Method and system for sharing information between network managers
US5787411A (en) * 1996-03-20 1998-07-28 Microsoft Corporation Method and apparatus for database filter generation by display selection
US5845300A (en) 1996-06-05 1998-12-01 Microsoft Corporation Method and apparatus for suggesting completions for a partially entered data item based on previously-entered, associated data items
US5815703A (en) * 1996-06-28 1998-09-29 Microsoft Corporation Computer-based uniform data interface (UDI) method and system using an application programming interface (API)
US5982369A (en) * 1997-04-21 1999-11-09 Sony Corporation Method for displaying on a screen of a computer system images representing search results

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19922793A1 (de) * 1999-05-18 2000-12-07 Siemens Health Services Gmbh & Medizinische Systemarchitektur
DE19922793B4 (de) * 1999-05-18 2004-02-12 Siemens Ag Medizinisches Gerätesystem
DE19933986A1 (de) * 1999-07-20 2001-01-25 Sonja Anderle Kommunikationssystem sowie ein hierzu geeignetes Verfahren zur Durchführung des Kommunikationssystems
DE19964077A1 (de) * 1999-10-07 2001-04-12 Dietz Gislinde Nicht löschbare Betriebssystemerweiterung für Computer und Internet-Zugangseinrichtungen

Also Published As

Publication number Publication date
FR2768826A1 (fr) 1999-03-26
GB9815684D0 (en) 1998-09-16
GB2329492B (en) 2003-03-05
US6279016B1 (en) 2001-08-21
FR2768826B1 (fr) 2006-09-01
JP4326045B2 (ja) 2009-09-02
DE19842688B4 (de) 2006-05-11
GB2329492A (en) 1999-03-24
JPH11161685A (ja) 1999-06-18

Similar Documents

Publication Publication Date Title
DE19842688B4 (de) Verfahren zum Filtern von Daten, die von einem Datenanbieter stammen
DE69434096T2 (de) Verfahren und System, um mit einer graphischen Benutzerschnittstelle in einer Datenbank zu suchen
DE10135445B4 (de) Integriertes Verfahren für das Schaffen einer aktualisierbaren Netzabfrage
DE69733162T2 (de) Datenübertragungssystem
DE19632854B4 (de) Kontext-Identifizierer verwendendes System und Verfahren für eine individuelle Menüanpassung in einem Fenster
DE69837772T2 (de) Browser für hierarchische Strukturen
EP0910829B1 (de) Datenbanksystem
DE602005001787T2 (de) Vorrichtung und Verfahren zum Editieren von Druckdaten
DE60319229T2 (de) Verfahren und system zur erweiterung der api eines dateisystems
DE69628374T2 (de) Datenverwaltungssystem
DE69533193T2 (de) Paralleles verarbeitungssystem zum durchlaufen einer datenbank
DE19755798A1 (de) Verfahren und Vorrichtung für adaptive Computer-Directory- und File-Auswahl
DE4301766A1 (en) Double sided flip over electronic page on screen graphics - has paper containing calendar on one side turned over by cursor movement to allow option selection
DE602004003139T2 (de) System und verfahren für eine datentabelle zur verwaltung von einfügeoperationen in rekursiven skalierbaren vorlageninstanzen
DE19742804A1 (de) Computer-Verfahren und -Vorrichtung für interaktive Objektsteuerungen
DE19959765B4 (de) Datei-Editor für mehrere Datenuntermengen
DE3141571A1 (de) &#34;tischcomputer mit tasteneingabefeld&#34;
DE60319586T2 (de) Elektronisches wörterbuch mit beispielsätzen
DE10121791B4 (de) Verfahren und Vorrichtung für dynamische Web-Seitenanordnung
DE10151648B4 (de) Verfahren und Vorrichtung zum Erfassen und Speichern von während einer computerbasierten Sitzung gemachten Notizen
DE60300984T2 (de) Methode und Computersystem für die Optimierung eines Boolschen Ausdrucks für Anfragebearbeitung
DE60019996T2 (de) System zum Koordinieren von Dokumenten und Aufgaben für einen Rechner
DE60032403T2 (de) Speziell adaptierte Wiedergabe und Darstellung von Datenbankinformationen
DE602004003230T2 (de) System und Verfahren in einer Datentabelle zur Erzeugung von rekursiven skalierbaren Vorlageninstanzen
EP1159689A2 (de) Such- und navigationseinrichtung für hypertext-dokumente

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8364 No opposition during term of opposition
R082 Change of representative

Representative=s name: BOEHMERT & BOEHMERT ANWALTSPARTNERSCHAFT MBB -, DE

R081 Change of applicant/patentee

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, REDMOND, US

Free format text: FORMER OWNER: MICROSOFT CORP., REDMOND, WASH., US

Effective date: 20150126

R082 Change of representative

Representative=s name: BOEHMERT & BOEHMERT ANWALTSPARTNERSCHAFT MBB -, DE

Effective date: 20150126

R071 Expiry of right