4D v15

Changement de comportement (global)

Accueil

 
4D v15
Changement de comportement (global)

Changement de comportement (global)    


 

Dans 4D v15, vous pouvez affecter la valeur du champ spécial "id_added_by_converter" ajouté automatiquement par 4D lors de la conversion d'une base de données depuis une version de 4D qui autorisait les sous-tables. Précédemment, cette valeur pouvait uniquement être affectée par 4D, ce qui obligeait les développeurs à utiliser des commandes obsolètes comme _o_CRÉER SOUS ENREGISTREMENT  pour pouvoir ajouter des enregistrements dans les sous-tables converties.

Avec cette nouvelle possibilité, vous pouvez conserver temporairement le lien spécial "Lien sous-table", tout en ajoutant ou en modifiant des enregistrements liés comme s'ils étaient standards. Une fois que toutes vos méthodes auront été mises à jour, vous pourrez ainsi remplacer le lien spécial par un lien normal sans changer votre code.  

Par exemple, vous pouvez désormais écrire :

 CREER ENREGISTREMENT([Employees])
 [Employees]Last Name:="Jones"
 CREER ENREGISTREMENT([Employees_Children])
 [Employees_Children]First Name:="Natacha"
 [Employees_Children]Birthday:=!12/24/2013!
 [Employees_Children]id_added_by_converter:=4 //Erreur de type dans les versions précédentes
 STOCKER ENREGISTREMENT([Employees_Children])
 STOCKER ENREGISTREMENT([Employees]

Ce code fonctionnera indifféremment avec un lien spécial ou standard.

Dans 4D, les champs ayant l'attribut Unique doivent être indexés. A compter de 4D v15, il n'est plus possible de définir dans l'éditeur de structure des champs avec l'attribut d'unicité s'ils n'ont pas d'index associé. Dans les versions précédentes, il restait possible d'obtenir cette configuration, pour des raisons de maintenance.

Dans 4D v15, une nouvelle icône est affichée pour les images stockées dans un format non disponible sur le poste. L'extension du format manquant est inscrite en bas de l'icône :

L'icône est automatiquement utilisée partout où l'image doit être affichée

Cette icône indique que l'image ne peut être ni affichée ni manipulée localement -- mais elle peut être stockée sans altération pour être affichée sur une autre machine. C'est le cas, par exemple, pour les images PDF sous Windows ou les images basées sur PICT avec un 4D Server 64-bits sous OS X.

Dans une base créée en 4D v15, les méthodes sont automatiquement en unicode. Dans une base convertie, il faut cocher l'option Enregistrer les méthodes en Unicode dans le dialogue "Compatibilité" des "Propriétés" de la base.

En 4D v15, l'éditeur de méthodes de 4D utilise par défaut le mode international "Anglais-US", quelle que soit la langue de l'application 4D ou les paramètres système locaux :

  • les réels doivent utiliser le format numérique générique avec le (".") en séparateur décimal (format "###,###,## 0.00") ;
  • les constantes de type date doivent utiliser le format ISO (!YYYY-MM-DD!) dans toutes les versions ;
  • les commandes et les constantes sont en anglais.

Dans les applications converties, attention à l'utilisation des formules comme avec la commande EXECUTER FORMULE.

Ce paramétrage peut être désactivé via la nouvelle option Utiliser langage français et paramètres régionaux système, page Méthodes/Options de la boîte de dialogues des Préférences de 4D :

Déploiement : comme la préférence Utiliser langage français et paramètres régionaux système est locale à la machine, elle n'est pas incluse dans les applications fusionnées.

Dans le contexte du déploiement d'applications fusionnées, pour utiliser les paramètres régionaux vous avez deux solutions :

  • Solutions 1 : supprimer le répertoire en.lproj situé au premier niveau du dossier Resources de l'application 4D Volume Desktop avant de générer l'application fusionnée finale.
  • Solutions 2 : Editer le contenu du fichier de préférences de 4D v15 sur chaque machine locale et fixer la clé "use_localized_language" à "true".
    Un exemple de code permettant d'effectuer cette opération vous est donné en annexe. Attention, après son exécution, il est nécessaire de redémarrer l'application 4D pour que la modification soit effective

Pour plus d'informations, reportez-vous à la section "Langage et paramètres Anglais-US pour les méthodes" du manuel Mise à jour de 4D v15.

Sur les PC-Windows, l'utilisation de la touche "séparateur décimal" du pavé numérique peut donner un résultat différent pour un champ de type numérique et pour un champ de type texte depuis 4D v14 :

  • jusqu'en 4D v13 : que le champ soit numérique ou texte, l'utilisation de cette touche du pavé numérique insérait le séparateur décimal défini au niveau du système (la définition devait être faite avant le lancement de 4D) ;
  • en 4D v14 et 4D v15 : pour les champs de type Réel, l'utilisation de cette touche du pavé numérique insère le séparateur décimal défini par le système (pas de changement). Pour les autres types de champs (texte notamment), l'utilisation de cette touche insère le caractère défini par le clavier, généralement le point (.) ou la virgule (,).

Cette différence est perceptible uniquement lorsque le séparateur décimal système est différent de celui représenté sur la touche. C'est le cas par exemple des systèmes français où le séparateur décimal système (virgule) n'est pas celui défini sur la touche du pavé numérique (point).

Note : Pour plus d'informations sur le formatage des numériques dans les bases converties, voir aussi l'option de compatibilité "Définir le point et la virgule comme caractères d'emplacement dans les formats numériques" dans la section Page Compatibilité.

  • dans les versions précédentes, ce nombre était de 15 chiffres
  • dans 4D v15 et suivantes, ce nombre passe à 13 chiffres

Cette modification concerne uniquement la conversion des réels en texte  la précision des réels et les opérations arithmétiques entre réels restent donc inchangées. Cette modification a pour but de limiter les cas où les résultats d'opérations sur les réels produisaient des résultats incorrects. On obtient donc des résultats valides dans les cas ci-dessous :

OpérationRésultat dans 4D avant v14R3Résultat dans 4D partir de 4D v14R3
Chaine(3216,36 - 3214,89)"1,47000000000025""1,47"
Chaine(0,321636-0,321489)"0,000146999999999953""0,000147"

La précision des réels est limité, donc si votre application doit utiliser 15 chiffres ou plus, plutôt que du réel, choisissez un autre format de stockage  comme du texte ou des entiers longs (pour des numéros de série ou des mesures astronomiques).
A noter que dans 4D, le degré de précision par défaut de ces comparaisons peut être modifié à l'aide de la commande FIXER NIVEAU COMPARAISON REEL.

Nous avons dû modifier la représentation des pointeurs dans le code de 4D suite au passage des méthodes en unicode. Les pointeurs ont été optimisés et bénéficient de nouvelles possibilités, comme celle de pointer sur des éléments de tableaux 2D ; il était important de maintenir la compatibilité avec les composants et plug-ins compilés, c'est pourquoi un nouveau type de pointeur, géré de manière transparente par 4D, a été ajouté dans le langage.

Deux commandes fonctionnent différemment :

  • RESOUDRE POINTEUR retourne désormais -1 au lieu de 0 en quatrième paramètre pour les pointeurs vers des variables ou des tableaux à une dimension
  • Pointeur vers fonctionne différemment :
    • Les pointeurs vers les tableaux à deux dimensions, y compris utilisant des expressions, sont désormais acceptés ;
    • Les noms invalides pour les variables génèrent désormais l'erreur 77 ("Nom de variable incorrect"). Dans les versions précédentes, ils étaient acceptés ;
    • Les espaces superflus ne sont désormais plus des erreurs.

 
 

 
PROPRIÉTÉS 

Produit : 4D
Thème : Changement de comportement (global)
Nom intl. : Changes in behavior (global)

 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

Conversion en 4D v15 ( 4D v15)