4D v15

Geändertes Verhalten (global)

Home

 
4D v15
Geändertes Verhalten (global)

Geändertes Verhalten (global)    


 

In 4D v15 können Sie den Wert dem speziellen Feld "id_added_by_converter" selbst zuweisen. Dieses Feld wurde beim Konvertieren einer Anwendung aus einer Version älter als v11 automatisch von 4D hinzugefügt und der Wert wurde nur von 4D verwaltet. Deshalb mussten Entwickler überholte Befehle wie _o_CREATE SUBRECORD verwenden, um neue Datensätze in konvertierten Untertabellen hinzuzufügen.

Auf diese Weise können Sie Ihre alten Datenbanken mit Untertabellen nach und nach konvertieren: Sie können die spezielle Verknüpfung "Untertabelle Verknüpfung" beibehalten und verknüpfte Datensätze ändern oder hinzufügen, als ob sie normale Datensätze wären. Sind dann all Ihre Methoden aktualisiert, können Sie diese spezielle Verknüpfung durch eine reguläre Verknüpfung ersetzen, ohne Ihren Code zu verändern.

Sie können beispielsweise schreiben:

 CREATE RECORD([Employees])
 [Employees]Last Name:="Jones"
 CREATE RECORD([Employees_Children])
 [Employees_Children]First Name:="Natasha"
 [Employees_Children]Birthday:=!12/24/2013!
 [Employees_Children]id_added_by_converter:=4 //Typfehler in früheren Releases
 SAVE RECORD([Employees_Children])
 SAVE RECORD([Employees]

Dieser Code funktioniert für spezielle und reguläre Verknüpfungen gleichermaßen.

In 4D müssen Felder mit der Eigenschaft Einmalig indiziert werden. Ab 4D v15 können Sie einmalige Felder im Struktureditor nicht mehr ohne Index definieren. Das war in bisherigen Releases für Wartungszwecke noch möglich.

In 4D v15 wird für Bilder, die auf dem verwendeten Computer nicht darstellbar sind, ein Ersatzsymbol angezeigt. Die Endung des benutzten Bildformats wird darunter angezeigt:

Dieses Symbol wird beim Anzeigen von Bildern automatisch dargestellt:

Es gibt an, dass das Bild nicht angezeigt bzw. konvertiert werden kann -- es lässt sich aber speichern und ggf. auf anderen Rechnern anzeigen. Das ist z.B. bei PDF Bildern auf einer Windows Plattform und PICT-basierten Bildern auf einem 64-bit 4D Server auf OS X der Fall.

In Anwendungen, die mit 4D v15 erstellt wurden, wird die Methode automatisch in Unicode gesichert. In einer konvertierten Anwendung müssen Sie unter Datenbank-Eigenschaften > Kompatibilität die Option Sichere Methode in Unicode markieren.

Der 4D Methodeneditor verwendet ab Version 15, unabhängig von der 4D Version oder lokalen Systemeinstellung, standardmäßig internationale Formate:

  • In Zahlen müssen Dezimaltrenner in allen Versionen ein Punkt sein ("."), nicht Kommas (",") unabhängig von der Einstellung des Betriebssystems ("###,###,## 0.00")
  • Datumskonstanten müssen in allen Versionen das ISO Format (!YYYY-MM-DD!) verwenden
  • Befehls- und Konstantennamen müssen in Englisch sein (betrifft nur die französischen Versionen von 4D).

Achten Sie bei Anwendungen, die aus früheren Versionen konvertiert wurden, auf die Verwendung von Formeln, z.B. mit den Befehl EXECUTE FORMULA.

Diese Einstellung lässt sich im Dialogfenster 4D Einstellungen über neue Option Verwende regionale Systemeinstellungen auf der Seite Methoden deaktivieren:

Deployment: Da die Voreinstellung "Verwende regionale Systemeinstellungen" lokal für Ihren Rechner gilt, ist sie in doppelklickbaren Anwendungen nicht aktiv.

Für doppelklickbare Anwendungen gibt es dafür zwei Lösungen:

  • Lösung 1: Löschen Sie vor dem Erstellen der doppelklickbaren Endversion in der 4D Volume Desktop Applikation auf der obersten Ebene des Ordners Resources das Verzeichnis en.lproj.
  • Lösung 2: Bearbeiten Sie den Inhalt der 4D v15 Preferences Datei auf jedem lokalen Rechner und setzen Sie den Schlüssel "use_localized_language" auf "true".
Weitere Informationen dazu finden Sie im Abschnitt Englisch-Einstellungen im Methodeneditor des Upgrade Handbuchs.

Ab 4D v14 gibt auf einem Windows Rechner die Taste "Dezimaltrenner" des Nummernblocks für Felder vom Typ Zahl ein anderes Ergebnis als für Felder vom Typ Text:

  • Bis 4D v13: Unabhängig, ob ein Feld vom Typ Zahl oder Text ist, wird bei Drücken dieser Taste des Zahlenblocks der auf Systemebene definierte Dezimaltrenner eingefügt. (Die Definition muss aber VOR dem Starten von 4D erfolgen)
  • In 4D v14 und 4D v15: Für Felder vom Typ Zahl wird bei Drücken dieser Taste des Zahlenblocks der auf Systemebene definierte Dezimaltrenner eingefügt (keine Änderung). Für andere Feldtypen wird das dieser Taste zugewiesene Zeichen eingefügt, in der Regel ein Punkt (.) oder ein Komma (,).

Dieser Unterschied macht sich nur in Fällen bemerkbar, wo sich der Dezimaltrenner von dem dieser Taste zuwiesenen Zeichen unterscheidet. Das gilt z.B. für französische Systeme: Hier ist der Dezimaltrenner des Systems ein Komma, und der dem Nummernblock zugewiesene Dezimaltrenner ein Punkt.

Hinweis: Weitere Informationen zu Zahlenformaten in konvertierten Anwendungen finden Sie auch unter der Kompatibilitätsoption Verwende Punkt und Komma als Platzhalter in Zahlenformaten im Abschnitt Seite Kompatibilität.

Die Anzahl signifikanter Dezimalstellen beim Datentyp Zahl wurde verringert:

  • in bisherigen Versionen waren es 15 Stellen
  • In 4D v15 oder neuer sind es 13 Stellen

Diese Änderung betrifft nur die Konvertierung von Zahlen in Text, nicht die Art der internen Darstellung (Speichern) oder Rechenoperationen mit Zahlen. Die Genauigkeit bei Daten vom Typ Zahl wird nicht beeinträchtigt. Das soll Fälle, wo Operationen mit Daten vom Typ Zahl nicht korrekte Ergebnisse erzeugen, weitgehend eingrenzen.
Beispiel: Für folgende Fälle erhalten wir jetzt ein gültiges Ergebnis:

OperationErgebnis in 4D vor v14 R3Ergebnis ab 4D v14 R3
String(3216.36 - 3214.89)"1.47000000000025""1.47"
String(0.321636-0.321489)"0.000146999999999953""0.000147"

Im allgemeinen reichen 13 signifikante Stellen für Computer-Anwendungen aus, das verbessert auch die Bearbeitung solcher Zahlen. Verwendet Ihre 4D Anwendung mehr als 13 Stellen in Daten vom Typ Zahl, müssen Sie u.U. andere Datenformate, wie z.B. Text oder Lange Ganzzahl verwenden, z.B. für Seriennummern oder astronomische Messungen.
Mit dem Befehl SET REAL COMPARISON LEVEL lässt sich der standardmäßige Grad der Genauigkeit solcher Vergleiche in 4D verändern.

Da 4D Methoden jetzt in Unicode gespeichert werden, mussten wir die Darstellung von Zeigern in 4D Code verändern. Die Zeiger wurden optimiert und unterstützen auch zusätzliche Features, wie z.B. Elemente von 2D Arrays. Da es wichtig ist, die Kompatibität mit früher kompilierten Komponenten und Plug-Ins beizubehalten, wurde in der Programmiersprache ein neuer Datentyp Zeiger hinzugefügt, der von 4D transparent verwaltet wird.

Zwei Befehle sind davon betroffen:

  • RESOLVE POINTER gibt im vierten Parameter anstelle von 0 den Wert -1 für Zeiger auf Variablen und eindimensionale Arrays zurück.
  • Get pointer arbeitet jetzt anders:
    • Zeiger auf zweidimensionale Arrays, inkl. Verwenden von Ausdrücken, werden jetzt akzeptiert
    • Ungültige Namen für Variablen erzeugen jetzt den Fehler 77 ("Falscher Variablenname"). In bisherigen Releases wurden sie akzeptiert.
    • Zusätzliche Leerzeichen werden jetzt unterstützt

 
 

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Geändertes Verhalten (global)

 
GESCHICHTE 

 
ARTIKELVERWENDUNG

Konvertierung in 4D v15 ( 4D v15)