Objekte sind wieder im Kommen und demonstrieren weiterhin ihre Nützlichkeit, um Ihr Leben als Entwickler zu erleichtern.
Die Verwendung von Zeitwerten (oder Dauerwerten) innerhalb von Objekten ist jetzt reibungsloser und intuitiver. Ab 4D v17 werden Zeiten innerhalb von Objekten in Sekunden angegeben – und nicht mehr in Millisekunden!
Dies war bisher für die Benutzer nicht sichtbar, weil OB SET und OB Get mit der Konstante is time verwendet werden musste, so dass die Konvertierungen automatisch vorgenommen wurden.
OB SET ($myObject; "myTime";$time;is time)
$time :=OB Get ($myObject; "myTime";is time)
Jetzt ist diese Konstante nicht mehr zwingend erforderlich. Der obige Code kann gekürzt werden, aber noch wichtiger ist, dass auch die Objektnotation verwendet werden kann!
$myObject.myTime:=$time
$time :=$myObject.myTime
ZEIT IN ANDEREN KONTEXTEN
ABFRAGE VON OBJEKTFELDERN
- Von nun an werden bei der Abfrage eines Objektfeldes mit QUERY BY ATTRIBUTEwerden Vergleiche zwischen Zahlen- und Zeitwerten in Sekunden statt in Millisekunden durchgeführt.
Hier sind zwei Beispiele, die das gleiche Ergebnis liefern:
QUERY BY ATTRIBUTE([Table_1];[Table_1]z;"time";"=";?12:00:00?)
QUERY BY ATTRIBUTE([Table_1];[Table_1]z;"time";"=";12*60*60)
WEB AREA
- Beim Aufruf von JavaScript in einem Webbereich wird die Konvertierung von und nach einer Zeit in Sekunden statt in Millisekunden durchgeführt:
- WA JavaScript auswerten
- WA JAVASCRIPTFUNKTION AUSFÜHREN
- $4d-Brücke
KOMPATIBILITÄT KANN EINFACH GEWARTET WERDEN
Falls für bestehende Datenbanken erforderlich, kann diese Standardeinstellung mit dem SET DATABASE PARAMETER Befehl und dem Selektor Times inside objects geändert werden.
Es gibt zwei verfügbare Werte für diese option:
- Times in milliseconds
- Times in seconds
Dieser Datenbankparameter wird auf die Datenbank selbst angewendet, nicht nur auf den aktuellen Prozess. Um die Kompatibilität zu erhalten oder den Migrationsprozess zu unterstützen, kann dieser Befehl während des On Startup Database Method.