Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20.6
REGISTER CLIENT
|
REGISTER CLIENT ( ClientName {; Zeit}{; *} ) | ||||||||
Parameter | Typ | Beschreibung | ||||||
ClientName | String |
![]() |
Name der remote 4D Sitzung | |||||
Zeit | Lange Ganzzahl |
![]() |
***Wird ab Version 11.3 ignoriert*** | |||||
* | Operator |
![]() |
Lokaler Prozess | |||||
Der Befehl REGISTER CLIENT registriert ein remote 4D mit dem Namen ClientName auf 4D Server, so dass andere Clients oder evtl. 4D Server (über Servermethoden) über den Befehl EXECUTE ON CLIENT Methoden auf dieser Arbeitsstation ausführen können. Sobald ein remote 4D registriert ist, kann es eine oder mehrere Methoden für andere Clients ausführen.
Hinweise:
Mit diesem Befehl wird auf der Arbeitsstation ein Prozess mit Namen ClientName erstellt. Dieser Prozess lässt sich nur mit dem Befehl UNREGISTER CLIENT abbrechen.
Übergeben Sie den optionalen Parameter *, ist der erstellte Prozess lokal. 4D stellt dem Prozessnamen automatisch das Dollarzeichen ($) voran. Andernfalls ist der Prozess global.
Hinweis zur Kompatibilität: Seit Version 11.3 von 4D sind die Abläufe zur Server/Client Kommunikation optimiert. Der Server sendet jetzt die Ausführung der Anfragen nach Bedarf direkt an die registrierten Clients (Technologie "push"). Damit entfällt das vorige Prinzip, bei dem Clients in periodischen Abständen am Server angefragt haben. Ist der Parameter Zeit übergeben, wird er ignoriert.
Nach Ausführung von REGISTER CLIENT können Sie den Namen der Arbeitsstation nicht mehr unmittelbar ändern. Dazu müssen Sie erst den Befehl UNREGISTER CLIENT und dann den Befehl REGISTER CLIENT aufrufen.
Im folgenden Beispiel erstellen wir ein kleines Meldungssystem, so dass die Arbeitsstationen miteinander kommunizieren können.
1
`Vor Registrieren unter einem anderen Namen müssen Sie zuerst die
` Registrierung rückgängig machen
UNREGISTER CLIENT
Repeat
vPseudoName:=Request("Geben Sie Ihren Namen ein:";"Benutzer";"OK";"Abbrechen")
Until((OK=0)|(vPseudoName#""))
If(OK=0)
... ` Führe nichts aus
Else
REGISTER CLIENT(vPseudoName)
End if
2) Mit folgender Anweisung erhalten Sie eine Liste des registrierten remote 4D. Sie können es in die setzen:
PrClientList:=New process("4D Client Liste";32000;"Liste der registrierten Clients")
3) Mit der Methode 4D Client List finden Sie alle registrierten remote 4D wieder und solche, die Meldungen empfangen können:
If(Application type=4D Remote Mode)
` Nachfolgender Code ist nur im Client/Server-Betrieb gültig
$Ref:=Open window(100;100;300;400;-(Palette window+Has window title);"Liste der registrierten Clients")
Repeat
GET REGISTERED CLIENTS($ClientList;$ListeCharge)
`Finde die registrierten Clients wieder in $ClientList
ERASE WINDOW($Ref)
GOTO XY(0;0)
For($p;1;Size of array($ClientList))
MESSAGE($ClientList{$p}+Char(Carriage return))
End for
`Zeige jede Sekunde an
DELAY PROCES(Current process;60)
Until(False) ` Endlos-Schleife
End if
4) Mit folgender Methode senden Sie eine Meldung an einen anderen registrierten remote 4D. Sie ruft die Methode Display_Message auf (siehe unten).
$Address:=Request("Empfänger der Meldung:";"")
` Gib Namen der Personen aus dem Fenster ein,
` das die Datenbankmethode On Startup erstellt
If(OK#0)
$Message:=Request("Message:") ` Meldung
If(OK#0)
EXECUTE ON CLIENT($Address;"Zeige_Meldung";$Message) ` Sende Meldung
End if
End if
5) Hier die Methode Display_Message:
C_TEXT($1)
ALERT($1)
6) Mit dieser Methode ist eine Arbeitsstation für die anderen remote 4D nicht mehr sichtbar, sie erhält auch keine Meldungen mehr:
Wurde remote 4D korrekt registriert, hat die Systemvariable OK den Wert 1. Wurde remote 4D bereits registriert, führt der Befehl nichts aus, die Systemvariable OK hat den Wert 0 (Null).
Produkt: 4D
Thema: Prozesse
Nummer:
648
Geändert: 4D v11 SQL Release 3
4D Programmiersprache ( 4D v20)
4D Programmiersprache ( 4D v20.1)
4D Programmiersprache ( 4D v20.2)
4D Programmiersprache ( 4D v20.3)
4D Programmiersprache ( 4D v20.4)
4D Programmiersprache ( 4D v20.5)
4D Programmiersprache ( 4D v20.6)