Freigeben über


Festlegen der Reihenfolge von Datensätzen zur Laufzeit

Mit dem SET ORDER-Befehl können Sie die Hauptindexdatei bzw. den Hauptindexschlüssel festlegen. Eine Tabelle kann mehrere Indexdateien gleichzeitig geöffnet haben. Sie bestimmen jedoch die Reihenfolge, in der die Datensätze einer Tabelle angezeigt werden oder auf sie zugegriffen wird, indem Sie eine Einfachindexdatei (IDX) (die Hauptindexdatei) oder den Namen aus einer Mehrfachindexdatei (CDX) (den Hauptindextag) als Hauptindex festlegen. Bestimmte Befehle, wie SEEK, suchen mit Hilfe des Hauptindextags nach Datensätzen. Zum Ausführen von Abfragen ist der SET ORDER-Befehl nicht erforderlich.

Interaktives Festlegen der Reihenfolge von Datensätzen in einem Formular

Sie können den SET ORDER-Befehl zur Laufzeit verwenden, um die Reihenfolge von Datensätzen in einem Formular zu ändern. Beispielsweise möchten Sie es den Benutzern Ihrer Anwendung ermöglichen, die Datensätze in einem Datenraster-Steuerelement neu anzuordnen, indem sie auf die Kopfzeile der Spalte klicken, nach der sortiert werden soll.

So sortieren Sie die Datensätze in einem Datenraster-Steuerelement nach Spalten

  1. Erstellen Sie ein Formular mit einem Datenraster-Steuerelement.
  2. Stellen Sie die ColumnCount-Eigenschaft des Datenraster-Steuerelements auf die Anzahl der Felder ein, die dort angezeigt werden sollen.
  3. Fügen Sie im Click-Ereignis für die Kopfzeile jeder Spalte des Datenrasters Code hinzu, der:
    • für die Reihenfolge der Datensätze einen auf der Spalte basierenden Indexschlüssel festlegt
    • das Formular aktualisiert

Wenn Sie beispielsweise in der Datenbank Testdata ein auf der Tabelle Customer basierendes Formular mit einem Datenraster-Steuerelement erstellt haben, das die vier Spalten company, contact, postal_code und phone enthält, würde das Datenraster-Steuerelement zunächst alphabetisch sortiert angezeigt, weil die Datensätze in dieser Tabelle alphabetisch eingegeben wurden.

Dann könnten Sie es dem Benutzer ermöglichen, sich das Datenraster-Steuerelement nach contact oder postal_code sortiert anzusehen, indem Sie in das Click-Ereignis jeder Spaltenkopfzeile den folgenden Code einfügen:

Beispiel für den Ereigniscode, um die Datensätze in einem Datenraster-Steuerelement durch Klicken auf die Spaltenkopfzeile zu sortieren

Code Kommentar
SET ORDER TO company
GO TOP
THISFORM.Refresh
Code des Click-Ereignisses in der Kopfzeile Company. Das Datenraster-Steuerelement wird anhand des Indexschlüssels company neu sortiert und das Formular zur Anzeige der neuen Reihenfolge aktualisiert.
SET ORDER TO contact
GO TOP
THISFORM.Refresh
Code des Click-Ereignisses in der Kopfzeile Contact. Das Datenraster-Steuerelement wird anhand des Indexschlüssels contact neu sortiert und das Formular zur Anzeige der neuen Reihenfolge aktualisiert.
SET ORDER TO
postalcode
GO TOP
THISFORM.Refresh
Code des Click-Ereignisses in der Kopfzeile Postal_Code. Das Datenraster-Steuerelement wird anhand des Indexschlüssels postalcode neu sortiert und das Formular zur Anzeige der neuen Reihenfolge aktualisiert.
  Da ein Sortieren nach der Telefonnummer in dieser Anwendung nicht von Bedeutung ist, geben Sie keinen Code für das Click-Ereignis in der Kopfzeile Phone ein.

In diesem Beispiel wird das Datenraster alphabetisch nach Firmen sortiert angezeigt. Wenn der Benutzer dann auf die Kopfzeile der Spalte Contact klickt, zeigt Visual FoxPro die Datensätze im Datenraster-Steuerelement in alphabetischer Reihenfolge nach den Namen der Kontaktpersonen sortiert an.

Wenn der Benutzer auf die Spaltenkopfzeile Postal_code klickt, wird das Datenraster-Steuerelement nach Postleitzahlen neu sortiert angezeigt.

Da es in dieser Beispielanwendung nicht unbedingt erforderlich ist, Kontaktpersonen nach Telefonnummern zu sortieren, wird in das Click-Ereignis für die Spaltenkopfzeile phone kein SET ORDER-Code eingefügt. Wenn der Benutzer daher auf die Spaltenkopfzeile Phone klickt, ändert sich die Datenrasteranzeige nicht.

Siehe auch

Erstellen mehrerer Indizes | Verwenden anderer Indextypen | Arbeiten mit Datensätzen | SET ORDER | Datenraster-Steuerelement (Grid) ColumnCount | Click-Ereignis | Löschen eines Indexes | Erstellen eines Indexes | Ordnen nach mehreren Feldern | Indexerstellung für Tabellen