Version 6.0.2
Sie können mit Interprozeß-, Prozeß- oder lokalen Mengen arbeiten. Weitere Informationen dazu finden Sie im Handbuch 4th Dimension Language Reference im Abschnitt Sets.
Prozeßmengen: Eine Prozeßmenge gilt nur für den Prozeß, der die Menge erzeugt hat. Sie wird bei Beginn der Methodenausführung aktiv und bleibt es, bis die Methode vollständig ausgeführt ist. Dann ist die Prozeßmenge gelöscht. Prozeßmengen benötigen keine spezielle Kennzeichnung im Namen. UserSet und LockedSet sind Mengen mit reservierten Namen.
Interprozeßmengen: Eine Interprozeßmenge gilt für alle Prozess auf der Arbeitsstation, welche diese Menge erzeugt hat. Ihr Name beginnt mit den Zeichen <> ( "kleiner als" gefolgt von "größer als").
Hinweis: Diese Schreibweise gilt für Windows und Macintosh. Auf Macintosh kann auch das Zeichen <> benutzt werden. Tippen Sie dazu bei gedrückter Umschalt- und Wahltaste den Buchstaben v ein.
Lokale Mengen/Client Mengen: Version 6 führt lokale bzw. Client Mengen ein. Ihr Name beginnt mit dem Dollarzeichen ($).
Interprozeß- und Prozeßmengen werden auf dem Server Rechner verwaltet, lokale Mengen auf den Client-Rechnern.
Hinweis: Sie verwenden normalerweise Interprozeß- und Prozeßmengen, da sie die Verwaltung in der Client/Server Architektur optimieren.
4D Server und Befehle für Mengen
Dieser Abschnitt beschreibt das Verhalten von Befehlen für Mengen in der Client/Server Architektur bei der Ausführung auf dem Client Rechner:
CREATE EMPTY SET
Eine leere Menge wird auf dem Server Rechner erstellt. Eine lokale Menge wird dann über das Netzwerk vom Server-Rechner auf den Client-Rechner kopiert. Interprozeß- oder Prozeßmengen bleiben auf dem Server-Rechner und werden auch dort gepflegt.
CREATE SET
Eine Menge wird auf dem Server Rechner erstellt. Eine lokale Menge wird dann über das Netzwerk vom Server-Rechner auf den Client-Rechner kopiert. Interprozeß- oder Prozeßmengen bleiben auf dem Server-Rechner und werden auch dort gepflegt.
USE SET
Eine lokale Menge wird zuerst vom Client-Rechner über das Netzwerk auf den Server-Rechner kopiert, und dann auf dem Server verwendet, um die Tabellenauswahl zu ändern. Interprozeß- oder Prozeßmengen werden lokal auf dem Server-Rechner verwendet, um die Tabellenauswahl zu ändern.
SAVE SET
Eine lokale Menge wird lokal auf dem Client-Rechner gesichert.
Interprozeß- oder Prozeßmengen werden zuerst über das Netzwerk vom Server-Rechner auf den Client-Rechner kopiert und dann lokal auf dem Client-Rechner gesichert.
LOAD SET
Eine lokale Menge wird von der Festplatte lokal auf den Client-Rechner geladen.
Interprozeß- oder Prozeßmengen werden zuerst von der Festplatte lokal auf den Client-Rechner geladen und dann über das Netzwerk vom Client-Rechner auf den Server-Rechner kopiert.
CLEAR SET
ADD TO SET
REMOVE FROM SET
Is in set
Records in set
Diese fünf Befehle greifen auf lokale Mengen zu, die lokal auf dem Client-Rechner liegen. Bei Interprozeß- oder Prozeßmengen wird über das Netzwerk eine Anfrage an den Server-Rechner gesendet, um die Information zu erhalten bzw. die Aktion auszuführen.
DIFFERENCE
INTERSECTION
UNION
Für diese drei Befehle müssen die dazugehörigen Mengenparameter auf demselben Rechner liegen. Folglich müssen entweder alle oder keiner davon lokale Mengen sein.
COPY SET
Mit COPY SET können Sie jede Menge in eine andere kopieren. Sie können zum Beispiel eine lokale Menge in eine Interprozeß- oder Prozeßmenge kopieren. Die Menge wird dann über das Netzwerk vom Client-Rechner auf den Server-Rechner kopiert.
4D Server und die Menge UserSet
4D Client erstellt die Menge UserSet als lokale Menge (auch wenn der Name nicht mit einem $-Zeichen beginnt), um das Erstellen der Menge zu optimieren. UserSet enthält die Datensätze, die der Anwender in einer mit den Befehlen MODIFY SELECTION oder DISPLAY SELECTION erzeugten Liste angeklickt hat.
Wollen Sie UserSet als Parameter für die Befehle DIFFERENCE, INTERSECTION oder UNION übergeben, wenn die anderen Parameter Interprozeß oder Prozeßmengen sind, müssen Sie UserSet (eine lokale Menge) zuerst in eine Interprozeß- oder Prozeßmenge kopieren, um diese Menge mit dem Befehl benutzen zu können.
Beispiel:
ALL RECORDS ([Tabelle])
` Laß den Benutzer einige Datensätze auswählen
MODIFY SELECTION ([Tabelle];*)
` Prüfe, ob der Benutzer einige Datensätze ausgewählt hat
If (Records in set("UserSet")>0)
` Suche die Datensätze, die auszuschließen sind
QUERY([Tabelle];[Tabelle]Flag#0)
` Erstelle eine Menge aus der sich ergebenden Auswahl
CREATE SET([Tabelle];"auszuschließen")
If (Application type = 4D Client)
` UserSet ist lokale Menge, kopiere sie in eine nicht-lokale Menge
COPY SET ("UserSet";"Benutzerauswahl") `
über das Netzwerk kopiert
` Rufe DIFFERENCE auf und übergebe 3 nicht-lokale Parameter vom Typ Menge
DIFFERENCE ("Benutzerauswahl";"auszuschließen";"Benutzerauswahl")
Else
` Rufe DIFFERENCE
DIFFERENCE ("UserSet";"auszuschließen";"Benutzerauswahl")
End if
CLEAR SET("auszuschließen")
USE SET("Benutzerauswahl")
CLEAR SET("Benutzerauswahl")
End if
Sie können die Operation auch mit folgendem Code ausführen:
ALL RECORDS ([Tabelle])
` Laß den Benutzer einige Datensätze auswählen
MODIFY SELECTION ([Tabelle];*)
` Prüfe, ob der Benutzer einige Datensätze ausgewählt hat
If (Records in set("UserSet")>0)
` Suche die Datensätze, die auszuschließen sind
QUERY([Tabelle];[Tabelle]Flag#0)
` Erstelle eine Menge aus der sich ergebenden Auswahl
CREATE SET([Tabelle];"auszuschließen")
If (Application type = 4D Client)
` UserSet ist lokale Menge, kopiere sie in eine nicht-lokale Menge
CREATE SET([Tabelle];"$auszuschließen") `
kopiere vom Server auf den Client
` Rufe DIFFERENCE auf und übergebe 3 nicht-lokale Parameter vom Typ Menge
DIFFERENCE ("UserSet";"$Auszuschließen";"UserSet")
Else
` Erstelle eine nicht lokale Menge aus der sich ergebenden Auswahl
CREATE SET([Tabelle];"auszuschließen")
` Rufe DIFFERENCE
DIFFERENCE ("UserSet";"auszuschließen";"Benutzerauswahl")
End if
CLEAR SET("$auszuschließen")
USE SET("UserSet") `
kopiere vom Client zum Server
End if
Im ersten Beispiel werden drei Mengen erstellt und eine über das Netzwerk kopiert. Im zweiten Beispiel werden zwei Mengen erstellt und zwei über das Netzwerk kopiert. Wählen Sie je nach Ihrem Bedarf eine ähnliche Programmierung.
4D Server und die Menge LockedSet
LockedSet ist eine Menge, die auf dem Server-Rechner erstellt und gepflegt wird.
Referenz
COPY SET, Einführung, Einführung in Mengen.