Conversion en 4D 2004

| Martine Mourier | Yves Casquel | 4D s.a. |

Aide à la conversion vers 4D 2004 : nouveautés, changements de comportements, gestion de la migration, FAQ. ♪

- Titre : Conversion en 4D 2004

- Auteurs : Martine Mourier, Yves Casquel, 4D s.a.

- Parution : 1 juin 2006

- Mise à jour : 1 février 2007

- Licence : Copyright ® 2006 4D s.a. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- 1. Avant-propos

- 2. La conversion

- 2-1. Principes généraux

- 2-2. Avant de commencer

- 2-3. Éléments requis et outils à utiliser pour les conversions

- 2-4. Manipulation des Externes et plug-ins

- 2-5. Plug-ins de la version 5.5 à 2003

- 2-6. Conversion de très anciennes versions (version 4, 5...)

- 3. Manipulations à faire

- 3-1. Résolution des problèmes éventuels au niveau des données révélés par la conversion

- 3-2. Corruption de données

- 3-2-1. Utilisation de 4D Tools

- 3-2-2. Re-indexer le fichier de données

- 3-2-3. Charger et restocker les enregistrements

- 3-2-4. Exporter les données dans un nouveau fichier de données

- 3-2-5. Table d'adresses endommagée

- 3-3. Corruption de structure

- 3-4. Corruption de formulaires et d'objets

- 4. 4D 2004

- 4-1. Les fichiers structure et données : séparation "resource fork" et "data fork"

- 4-2. Nouvelle architecture et Système d'exploitation

- 4-3. Compatibilité des formats des plug-ins

- 4-4. Nouveaux dossiers

- 4-5. Nouvel emplacement du dossier des Préférences

- 4-6. Nouvelle architecture des plug-ins

- 4-7. Nouveaux emplacements

- 4-8. Nouveau dossier pour les plug-ins

- 4-9. Téléchargement des plug-ins en client/serveur

- 4-10. Priorité de lancement

- 4-11. Activation des licences

- 4-11-1. Activation connectée

- 4-11-2. Activation déconnectée

- 4-11-3. Activation d'urgence

- 4-11-4. Ajout des extensions

- 5. Bases converties : les compatibilités

- 5-1. Les compatibilités Structure

- 5-2. Les compatibilités Web

- 5-3. Barre de menus

- 5-4. Plateforme (Préférences et Formulaire)

- 5-5. Taille de la fenêtre du formulaire

- 5-6. Couleur de contraste système

- 5-7. Filtres ASCII

- 5-8. Les sous-tables (ou racines)

- 5-9. Conversion des plug-ins

- 6. Les intégrations

- 6-1. Fonctionnalités 4D Insider intégrées

- 6-2. Fonctionnalités 4D Customizer intégrées dans 4D

- 6-3. Fonctionnalités 4D Customizer intégrées dans les plug-ins

- 6-4. 4D BackUp intégré et ajout de nouvelles fonctionnalités

- 6-5. 4D ODBC intégré

- 6-6. Trois nouveaux plug-ins avec 4D 2004

- 6-7. Utilisateurs et Groupes

- 7. Les nouveaux comportements

- 7-1. Les éditeurs de formules

- 7-2. Harmonisation du fonctionnement des formulaires sortie...

- 7-3. Nouveautés concernant les Formulaires Sortie

- 7-4. Nouveaux événements liés aux listes

- 7-5. Nouvelles commandes liées aux listes

- 7-6. Commandes modifiées liées aux listes

- 7-7. Commandes modifiées pour la Saisie en liste

- 7-8. Nouveautés concernant les sous-formulaires

- 8. Quelques raccourcis-clavier essentiels

- 8-1. Raccourcis modifiés

- 8-2. Raccourcis ajoutés

- 8-3. Passage du Mode Menus créés au mode Utilisation

- 9. Nouvelles fonctionnalités 4D 2004

- 10. Nouveautés 2004.1

- 10-1. Nouvelle commande

- 10-2. Nouveaux paramètres

- 10-3. Nouveautés ListBox

- 10-4. Nouveauté 4D Tools

- 10-5. Nouveautés 4D Write

- 10-6. Nouveautés 4D View

- 10-7. Nouveautés 4D Pack (2004 et 2004.1)

- 10-8. Composant :

- 11. Nouveautés 2004.2

- 11-1. Commandes modifiées

- 11-2. Nouvelles commandes

- 11-3. Commandes renommées

- 11-4. Nouvel événement formulaire

- 11-5. Nouveauté 4D Tools

- 11-6. Nouveautés 4D Write

- 12. Nouveautés 2004.3

- 12-1. Nouveautés Module de sauvegarde

- 12-2. Nouveautés Langage

- 12-3. Commandes renommées

- 12-4. Commandes modifiées

- 12-5. Nouveautés 4D Write

- 13. Nouveautés 2004.4

- 13-1. Accès aux commandes

- 13-2. Dictionnaires personnalisés

- 13-4. Sauvegarde et restitution

- 13-5. Prise en charges des langues de droite à gauche sous Windows

- 13-6. Générateur d'applications

- 13-7. Commande modifiées

- 13-8. Nouvelle commande

- 13-9. 4D View

- 13-10. 4D Pack

- 14. Nouveautés 2004.5

- 14-1. ListBox

- 14-2. Commandes modifiées

- 14-3. Format de date

- 14-4. Module de sauvegarde

- 14-5. Divers

- 14-6. 4D Write

- 15. Questions-réponses

- 15-1. Rappel sur quelques notions fondamentales

- 15-2. Présentation des propriétés des sous-formulaires en version 2004 et de la compatibilité assurée par cette version

- 15-3. Pourquoi l'enregistrement courant n'est-il plus chargé lors de l'utilisation d'un formulaire liste si le mode de sélection choisi est : ligne unique ?

- 15-4. Pourquoi le rafraîchissement d'une fenêtre provoque le déchargement de l'enregistrement courant d'un formulaire affiché sous forme de liste ?

- 15-5. Pourquoi y a-t-il, dans certains cas, un enregistrement surligné automatiquement dans un formulaire affiché sous forme de liste lors d'un premier affichage ?

- 15-6. Pourquoi n'y a-t-il plus de partie blanche dans les formulaires affichés sous forme de liste ?

- 15-7. Pourquoi vaut-il mieux ne pas utiliser la propriété "double clic sur ligne vide" des formulaires listes et inclus qui ont été convertis en version 2004?

- 15-8. Comment ajouter des enregistrements d'une manière autre que par le double clic sur la partie blanche d'une liste en version 2004 ?

- 15-9. Quel mode de sélection est utilisé pour les formulaires affichés sous forme de liste lorsqu'ils sont convertis en version 2004.

- 15-10. Pourquoi, l'événement formulaire "sur clic" ne provoque-t-il pas systématiquement le chargement de l'enregistrement courant ?

- 15-11. Pourquoi, l'événement formulaire "Sur affichage corps" est-il appelé lors de l'affichage de lignes blanches ?

- 15-12. Pourquoi le triangle clignotant situé en haut à gauche d'un formulaire inclus lors de sa sélection n'existe plus ?

- 15-13. Pourquoi, certains objets (champs ou variables) n'apparaissent plus dans un formulaire affiché sous forme de liste en version 2004 ?

- 15-14. Pourquoi, le décor des formulaires affichés sous forme de liste, n'a plus la même apparence en version 2004 ?

- 15-15. Pourquoi la saisie en liste semble ne pas fonctionner ?

- 15-16. Comment permettre l'édition d'un champ ou variable dans un formulaire utilisé sous la forme de liste par programmation ?

- 15-17. Comment initialiser les variables d'une ligne qui passe en mode édition par programmation ou par une action de l'utilisateur ?

- 15-18. Comment maîtriser le surlignage dans les formulaires affichés sous forme de liste par programmation ?

- 15-19. Comment savoir si l'utilisateur a surligné un ou des enregistrements dans un formulaire affiché sous forme de liste par programmation ?

- 15-20. Quels sont les nouveaux événements principaux utilisables avec les formulaires sous forme de liste ?

- 15-21. Pourquoi, les formules fichier ne sont pas toujours appelées avec la version 2004 ?

1 - Avant-propos

Ce document est la compilation de divers documents publiés par 4D SA : notes techniques, tech-tips, documentation, etc.

La migration en 4D 2004 est, dans la très grande majorité des cas, très simple : copie, compactage, conversion.

Nous aborderons les conversions de bases anciennes, les éventuels problèmes rencontrés, les compatibilités, les modifications de comportements, les nouveautés.

Avec 4D 2004.2, tout est fait pour garder la compatibilité avec les anciens fonctionnements et ainsi vous évitez toute modification. Votre migration devrait donc se faire sans problèmes.

Pour les migrations très complexes, sachez que le Support technique de 4D SA propose des rendez-vous techniques personnalisés pour vous aider dans la conversion.

2 - La conversion

2-1 - Principes généraux

La mise à jour tourne autour de quelques principes :

• La mise à jour de versions récentes ne pose pas de problème

Par exemple, si vous utilisez une version 6.5.x de votre base et voulez la mettre à jour en version 2004, il est inutile de passer par les versions 6.7, 6.8, 2003 et enfin 2004. Vous convertissez directement votre base en 2004 et utilisez les étapes intermédiaires seulement si vous rencontrez des problèmes. Même si des fonctionnements ont changé, de nombreuses options de compatibilité sont mises en place pour vous éviter de tout modifier.

• Pour une version 5 ou antérieure

Utilisez une version intermédiaire comme la 6.5 ou 6.7. De celle-ci vous passez en 2003 ou 2004.

• Si vous mettez à jour et changez de plateforme

Procédez d'abord à la mise à jour sur la plateforme d'origine, et tout à fait en fin de processus, changez de plateforme.
Par exemple, si vous mettez à jour une base en version 5 sur Mac, en version 2004 sous Windows, mettez à jour la base en 2004 sur Mac et cela fait, passez la base sous Windows.

• Ne lancez pas des anciennes versions de 4D sur des machines avec des OS récents

Les anciennes versions comme les versions 4 et 5 ne sont évidemment pas faites pour fonctionner correctement sur des OS récents. Par exemple, lancer une version 4 sous OS9 ou plus peut entraîner des problèmes au niveau des données. Vous pouvez utiliser le tableau ci-dessous comme référence pour lancer une ancienne version :

Version 4D

Windows

Mac Os

4.x

N.A

8.6

5.0.x

N.A

8.6

5.5.x

Windows 95/98/Millenium/NT3.5/NT4.0

8.6

6.0.5

Windows 95/98/Millenium/NT4.0

8.6

6.0.6

Windows 95/98/Millenium/NT4.0

9.0

6.5

Windows 98/98SE//Millenium/NT4.0

9.0, 9.1

6.7

98SE/Millenium/NT4/2000/XP

9.0 à 9.2.2

6.8

98SE/Millenium/2000/XP

9.1, 9.2.2 à 10.2.2

2003

98/Millenium/2000/XP/2003

9.2.2, 10.2.8, 10.3.9

2003.7

2000/XPsp2/Serv2003

9.2.2(*)/10.2/10.2.8(**)

2004

2000sp4/XPsp1-sp2/Serv2003

10.2.8/10.3.5

2004.2

2000sp4/XPsp1-sp2/Serv2003sp1

10.2.8(**)/10.3.9/10.4.1

(*) CarbonLib 1.4 minimum
(**) avec QuickTime 6.5.2 minimum

Cette table ne donne pas toutes les compatibilités entre les versions et les OS (version OS certifiée), elle indique juste les compatibilités principales.

• Utilisez des versions de démonstration 4D monoposte pour mettre à jour vos bases

Il est inutile d'avoir une licence pour chaque version intermédiaire. La version démo est suffisante pour faire transiter une base par une version intermédiaire.

• Les différentes versions intermédiaires de 4D et de 4D Tools

Elles sont disponibles sur le site www.4D.fr ou sur les différents CD publiés par 4D SA comme les CD fournis dans le cadre du programme DevNet.

2-2 - Avant de commencer

• Faites toujours une conversion sur une copie de votre base

car une conversion est irréversible. Évitez de faire une simple copie de dossier à côté de votre base d'origine. Il est même conseillé d'utiliser un utilitaire de compression pour sauvegarder la base. Pour une raison simple : copier simplement la base dans un autre dossier n'est pas recommandé car le fichier Structure peut toujours pointer sur le fichier de données original et vous pouvez convertir le fichier de données original au lieu de la copie. Si la base est compressée, une version de travail du fichier de données sera ainsi toujours disponible.

• Compactez les données de votre base ancienne version

avant de la convertir, avec le 4D Tools (ou 4D Utils) correspondant à cette version.

2-3 - Éléments requis et outils à utiliser pour les conversions

Si vous mettez à jour à partir d'une version 4 ou 5, sous MacOS, vous devez avoir ResEdit si votre base utilisait des packages externes ou des routines externes.

• ResEdit

est une application MacOS 9 et tourne sous Classic.
Vous pouvez la télécharger à :
ftp://ftp.apple.com/developer/Tool_Chest/Developer_Utilities/ResEdit_2.1.3/ [ftp://ftp.apple.com/developer/Tool_Chest/Developer_Utilities/ResEdit_2.1.3/]

• 4D Transporter

est nécessaire pour transporter une base du Mac vers Windows pour les versions antérieures à 4D 2004.

• Structure en interprété

De plus, pour mettre à jour une base, vous devez posséder la structure en interprété et, si un système de mot de passe est mis en place, vous devez avoir le mot de passe Super_Utilisateur.

2-4 - Manipulation des Externes et plug-ins

Externes

Les plug-ins étaient des "packages externes" avant la version 5.5 de 4D. Si la base de données n'a jamais été mise à jour depuis cette version ou si elle est dans une version antérieure à la version 5.5, il peut y avoir des externes insérées dans la structure qui doivent être supprimées avant de faire la conversion.

Avant de convertir une base à partir de cette version en version actuelle ou intermédiaire, vous devez supprimer les routines externes et les modules 4D.

· Pour les modules 4D, les "Installeurs" des différentes externes vous permettent de supprimer leurs ressources respectives.
Si vous n'avez plus l'installeur pour le module, reportez-vous à la procédure de suppression avec ResEdit.

· Pour les routines externes, vous devez utiliser simplement "External Mover" ou ResEdit.

Note : si votre base a été transférée sous Windows et contient toujours des externes dans son fichier de ressource (extension .rsr), vous devez retransférer cette base sur un Mac et y supprimer les ressources.

Supprimer les externes

• Utilisation d'External Mover

Si vous avez l'intention d'utiliser External Mover, vérifiez bien que vous l'utilisez sur un système sur lequel il puisse fonctionner. External Mover n'a jamais été prévu pour fonctionner sous MacOS 9 ou plus, et ne devrait tout simplement pas se lancer sous cet OS.

External Mover s'utilise pour des bases en version 4, et External Mover Plus pour des bases jusqu'à la version 5.5. Ces outils étaient fournis sur les disquettes 4D.

External Mover Plus se lance sous MacOS 9. Pour ouvrir un fichier de structure avec External Mover Plus, maintenez la touche OPTION enfoncée avant de sélectionner le fichier de structure.

• Utilisation de ResEdit

Lorsque vous ouvrez la structure d'une base qui contient des externes, vous devriez trouver différents types de ressources. Les ressources installées dans la structure peuvent être : "4DND", "4DNX", "4DEX"; "4DPX", "4DTE", "4Dte", "4DTF", "FON#", "THM#" utilisées par les routines et packages externes. Toutes les ressources peuvent être supprimées de la structure. Vous pouvez garder les ressources de type PICT ou STR# qui se convertiront sans problèmes.

Important : avant d'ouvrir une base avec ResEdit, faites une copie de votre base et travaillez sur celle-ci.

2-5 - Plug-ins de la version 5.5 à 2003

De la version 5.5 à la version 2003, les plug-ins sont placés dans les dossiers Win4DX et Mac4DX.

Lorsque vous mettez à jour une base de données qui utilise des plug-ins, la mise à jour se fait séparément de la mise à jour de la structure et du fichier de données. En version 2004, l'architecture des plug-ins a été profondément modifiée. Voir la partie "Nouvelle architecture des plug-ins" ci-dessous, ainsi que l'addendum : 4D_2004_Mise_A_Jour.pdf

La mise à jour d'un plug-in consiste essentiellement à remplacer la version des plug-ins par la version courante. Si un plug-in a été utilisé de façon discontinue et ne fonctionne pas avec la version courante, vous perdrez ses fonctionnalités et vous devrez soit supprimer l'appel à ces commandes, ou si possible, recoder les fonctionnalités dans 4D ou dans un plug-in différent. Notez que vous ne pouvez pas compiler une base où un plug-in est manquant.

Avec les plug-ins, vous avez basiquement deux cas :

· Le plug-in est publié par 4D (4D Draw, 4D Write, etc) :
dans ce cas, vous devez simplement installer la dernière version du plug-in.
Certains plug-ins n'existent plus car leurs fonctionnalités ont été rajoutées à 4D et vous devez réécrire l'appel à ces routines en 4D natif.

· Le plug-in est un plug-in "tierces parties" :
dans ce cas, vous devez contacter l'éditeur du plug-in pour vérifier sa compatibilité.
De manière générale, les plug-ins créés pour la version 6.7 ou antérieures ne seront pas chargés par les versions 6.8 et postérieures.

2-6 - Conversion de très anciennes versions (version 4, 5...)

Les "TYPE" et "CREATOR" des différentes versions et leur modification éventuelle

Le principal problème avec les versions 4 ou 5 (excepté le problème des externes) est que la structure apparaîtra grisée dans le dialogue d'ouverture lorsque vous essayerez de l'ouvrir avec une version 6.5 ou postérieure. Ceci est dû à la différence des codes Type et Creator entre les différentes versions de 4D. Vous trouverez ci-dessous une liste de ces codes selon les différentes versions :

Version 4D

Type Structure

Creator Structure

Type Data

Creator Data

4.x

BAS3

4D03

data

4D03

5.0

BAS5

4D05

DAT5

4D05

6.5

BAS5

4D06

DAT5

4D06

6.7/6.8

BAS5

4D06

DAT5

4D06

2003

BAS5

4D06

DAT5

4D06

2004

BAS5

4D06

DAT5

4D06

Changer le code "Creator"

Le code "Creator" des anciennes bases doit correspondre au code de la version avec laquelle vous voulez l'ouvrir. Pour le changer, vous devez utiliser ResEdit.

Pour changer le code "Creator" :

1. lancez ResEdit

2. À partir du menu File, Sélectionnez "Get file/Folder info".

3. Sélectionnez le fichier de structure ou de données dont vous voulez changer le "Creator".
La fenêtre ci-dessous apparaît :

4. Pour convertir en version 6.5 ou 6.7 par exemple, nous changeons le type en "BAS5" et le Creator en "4D06" pour le fichier de structure.
Pour le fichier de données, le Type devient "DAT5" et le Creator devient "4D06".

5. Sauvegardez les modifications et quittez ResEdit.

Une fois que le Creator et le Type ont été changés pour les fichiers de données et de structure, vous pouvez ouvrir la base en utilisant la version démo. de 4D. Dans le cas présent, nous ouvrons la base avec une version 6.7, mais elle "crashe" à l'ouverture. Nous tentons alors une ouverture avec une version 6.5. Si c'est aussi problématique qu'avec une 6.7, nous essayons avec une version 6.0.6r8

Ouvrir une version 4 avec une version 6.5

1. Lancez une version 6.5 de 4D monoposte.

2. Sélectionnez le mode démo.

3. Ouvrez la base. Le dialogue de mise à jour de la structure vous est présenté.

4. Cliquez sur "Convertir".
Le dialogue de conversion des données vous est alors présenté :

Votre base est alors convertie en 6.5.

La conversion en 2004 ne devrait pas poser de problème.

Si le message "Cette base de données utilisait un ancien mode de compatibilité (ressource BBOX) qui n'est plus utilisé" apparaît, il s'agit d'une simple information. Vous pouvez valider et continuer la conversion.

La ressource BBOX était la "boîte de compatibilité" permettant de définir l'utilisation ou non des nouveaux fonctionnements de 4D en version 5 (APPELER SUR EVENEMENT, APPELER SUR PORT SERIE, OUVRIR TRANSACTION, verrouillage des sémaphores, flush des transactions, activation/désactivation).

3 - Manipulations à faire

• Travaillez toujours sur des copies ;

• Compactez vos données

avec le numéro de version de 4D Tools le plus élevé (pour la version de départ) ;

• Convertissez.

3-1 - Résolution des problèmes éventuels au niveau des données révélés par la conversion

Problèmes de corruption les plus fréquents

D'une manière générale, une conversion ne peut pas corrompre les données ou la structure mais peut mettre en lumière un problème préexistant à la conversion.

Les problèmes de corruption sont de deux types : corruption de données et corruption de structure. Les causes sont en général difficile à trouver.

3-2 - Corruption de données

Imaginons que nous ayons converti une ancienne base en 4D 6.5 et obtenu un message d'erreur. Le cas le plus fréquent de corruption de données après une conversion est indiqué par le dialogue précisant qu'un enregistrement ne peut être lu.

Cette alerte sera affichée pour chaque enregistrement corrompu. Cliquez OK à chaque fois. A ce stade, il faut utiliser 4D Util. "Vérifier les données" "Récupérer par analyse des marqueurs d'enregistrement" avec la version la plus récente de 4D Util. (dans notre cas, la 6.5 - les versions récentes de 4D Util. ou 4D Tools étant toujours les plus performantes). Si cette tentative échoue, essayez avec le 4D Util. de la version de départ et retentez la conversion.

En ouvrant la base avec 4D Util, vous obtenez le message suivant :
"Votre base semble sérieusement endommagée. Vous devez procéder à une récupération par tag. Mais auparavant vous devez sélectionner tous les segments de données, si vos données sont stockées dans plusieurs segments"

Si vous cliquez sur OK vous avez alors la possibilité de sélectionner les segments de données.

Les différentes étapes à utiliser sont :

• utilisation de 4D Tools ;

• réindexation du fichier de données ;

• re-stockage des enregistrements ;

• export des données dans un nouveau fichier de données.

3-2-1 - Utilisation de 4D Tools

4D Tools est un programme utilitaire fourni avec 4e Dimension. 4D Tools possède plusieurs fonctionnalités de diagnostic qui détectent et réparent les dommages survenus dans une base de données. En fonction du degré de corruption des données, 4D Tools pourra réparer.

Détecter et fixer les problèmes est une procédure simple :

1. Lancez 4D Tools avec le fichier de Structure de votre base.

2. Sélectionnez le fichier de données associé (endommagé).

3. Sélectionnez ensuite l'onglet "Maintenance".

Il y a trois options utilisées pour vérifier les données :

• "Vérifier tout",

• "Vérifier enregistrements...",

• "Vérifier index..."

Lorsque vous utilisez l'option "Vérifier tout", 4D Tools commence immédiatement à vérifier le fichier de données. Le programme vérifie l'intégrité de tous les enregistrements et de tous les index. Cette option est plus approfondie mais elle est aussi plus lente que les deux autres options.
Nous recommandons de choisir cette option pour une maintenance régulière de votre base de données, ou si 4D a détecté un problème dans votre base de données qu'il ne peut pas réparer.

Si une des options précédentes renvoie une erreur, l'étape suivante est la réparation du fichier de données.
Sélectionnez l'onglet "Réparation".

Il y a trois options utilisées pour réparer les données :

• "Réparer tout",

• "Réparer enregistrements..."

• "Réparer index..."

L'utilisation d'une option en particulier dépend des problèmes rencontrés.

La récupération par marqueurs d'enregistrements

Avant de procéder à la "Récupération par marqueurs d'enregistrements", vous devez avoir essayé de réindexer votre base de données et charger et restocker les enregistrements d'abord. Pour plus d'informations concernant la réindexation, allez à la partie "Ré-indexer le fichier de données" dans ce document si la réindexation ne suffit pas à fixer le problème, alors effectuez une "Récupération par marqueurs d'enregistrements".

Quand votre fichier de données est sérieusement endommagé et ne peut pas être réparé par les options de réparation rapide ou en ré-indexant votre base de données, utilisez l'option "Récupération par marqueurs d'enregistrements". Lorsque vous choisissez cette option, un nouveau data sera créé plutôt que de réparer l'ancien data... Ainsi, en utilisant cette option, vérifiez que vous avez suffisamment d'espace disque.

• Qu'est-ce que la récupération par marqueurs d'enregistrements ?

Les enregistrements de 4e Dimension ayant une longueur variable, pour les retrouver, il est nécessaire d'avoir stocké leur "adresse" dans une Table d'adresses. Ainsi, quand la table d'Adresses est affectée, 4D Tools utilise le marqueur stocké dans le "header" de chaque enregistrement. Ce marqueur est comme un résumé de l'enregistrement contenant les informations essentielles, qui peuvent être utilisées pour le retrouver dans la table d'adresses.

Après avoir saisi un nouveau nom de données, sélectionnez le bouton "Enregistrer" et 4D Tools commencera la récupération par marqueur d'enregistrements. Dans les cas sévères, où utiliser 4D Tools ne résout pas le problème, une approche plus agressive nécessite d'être utilisée.

3-2-2 - Re-indexer le fichier de données

Les différentes étapes pour réindexer le fichier de données sont :

1. Faire une copie du fichier de structure.

2. Ouvrez la copie de la structure avec un nouveau fichier de données.

3. Supprimez tous les liens et allez sur chaque table, et décochez tous les index,

4. Et refermez la base.

5. Relancez la structure dupliquée avec le fichier de données d'origine puis fermez la base de données.
Vous obtiendrez ainsi un fichier de données non indexé.

6. Lancez votre fichier de structure d'origine avec le fichier de données d'origine.
En faisant ceci, 4D réindexera votre fichier de données.

3-2-3 - Charger et restocker les enregistrements

Il peut arriver que vous lanciez votre base de données et que des recherches sur vos données provoquent un "crash". Si vous utilisez 4D Tools, celui-ci vous dit que votre base de données est OK. Que pouvez-vous faire ?

Une des façons la plus rapide et la plus efficace pour savoir si votre fichier de données est endommagé et savoir quels enregistrements sont à l'origine du problème est de charger chaque enregistrement et de le restocker. Quand un enregistrement est endommagé, le charger causera un comportement inattendu.

Il existe une méthode qui boucle sur tous les enregistrements de la base et vérifie si l'enregistement est corrompu. Cette méthode va créer un fichier d'historique à côté de la structure de la base. Le fichier "LogEnregistrements" vous indiquera tous les enregistrements qui ont été restockés avec succès. Cette méthode est disponible en accompagnement de la note technique "Récupération d'un fichier de données endommagé" (réf. 4D-200506-17-FR), à importer dans votre base pour l'utiliser (Mode Structure, Nouvelle Méthode, Menu Méthode, ligne Importer la méthode...).

3-2-4 - Exporter les données dans un nouveau fichier de données

Quand votre fichier de données est sévèrement endommagé et si utiliser les procédures précédentes n'est pas suffisant, la dernière solution est d'exporter toutes vos données dans un nouveau fichier. L'export peut prendre beaucoup de temps en fonction de la taille de vos données.

Lorsque vous exportez, il y a une "bonne" façon et une "mauvaise". Vous pourriez être tenté d'utiliser les commandes ENVOYER ENREGISTREMENT et RECEVOIR ENREGISTREMENT pour exporter et importer toutes vos données. Mais lorsque vous utilisez ces commandes, la plupart du temps, le problème présent dans l'enregistrement sera exporté puis réimporté, chaque enregistrement étant exporté comme une entité entière.

Vous pouvez utiliser l'import/export en standard dans 4D. Lorsque vous exportez vos données, vérifiez que vous le faites avec délimiteur Tabulation et en fichier texte ou XML. Vous pouvez exporter vos données en texte ou XML à partir du Mode Utilisation.

• Sélectionnez la ligne "Exporter..." dans le menu Fichier.

• Lorsque le dialogue d'export apparaît, choisissez la table et les champs que vous voulez exporter.

• Sélectionnez le format dans lequel vous voulez exporter.
Vous pouvez choisir d'exporter tous les enregistrements ou seulement la sélection.
Cliquez alors sur le bouton Export.

L'avantage de cette méthode est que, pour chaque champ, 4D convertit la valeur en texte. En faisant cela, si la valeur peut être convertie, la corruption est éliminée.

3-2-5 - Table d'adresses endommagée

En fonction de ce symptôme (index corrompu, crash en essayant d'accéder aux données...), la première chose à faire reste la même : vous devez lancer une Récupération par marqueurs d'enregistrements sur la base convertie.

Si la récupération par marqueurs d'enregistrements échoue ou ne permet pas de récupérer suffisamment d'enregistrements, vous devez revenir à la version antérieure de votre base et essayer une récupération par tag sur celle-ci, avant la conversion.

Nous vous recommandons cette étape de toute façon avant la conversion si vous n'avez pas la bonne version de l'OS correspondant à la version de 4D Tools (ou 4D Util).

Si la récupération par marqueur d'enregistrements ne fixe pas le problème, référez-vous à la note "Détecter des erreurs dans les index en cours d'utilisation (4D 2004)" (réf. 4D-200410-29-FR).

Note : gardez à l'esprit que si la mise à jour d'un fichier est une opération relativement simple et ne requiert pas une complète compatibilité avec l'OS sur lequel vous travaillez, les opérations plus complexes comme la récupération par marqueurs d'enregistrements nécessite elle une parfaite compatibilité avec l'OS.

3-3 - Corruption de structure

Les problèmes de corruption de structure apparaissent rarement lors d'une mise à jour. Pour vérifier si vous avez un problème avec la structure ou les données, créez simplement un nouveau fichier de données avec votre structure mise à jour. Si le problème persiste, c'est un problème de structure.

La version 6.5 (et ultérieures) de 4D Util (4D Tools) vous permet de réparer un fichier de structure. La réparation de votre fichier de structure avec 4D Util devra être votre première tentative pour fixer le problème. Notez que les capacités de 4D Util pour fixer les problèmes des bases augmentent à chaque nouvelle version, ainsi vérifiez bien que vous utilisez la dernière version de 4D Util (c'est-à-dire 2003.8 pour 2003 et 2004.5 pour 2004, au moment de la rédaction de ce document).

3-4 - Corruption de formulaires et d'objets

Occasionnellement, une base de données peut montrer des signes de corruption de formulaires ou d'objets de ce formulaire ; un formulaire ou un objet du formulaire peut ne pas s'afficher ou s'imprimer correctement. Ceci peut intervenir notamment pour des formulaires construits avec d'anciennes versions de 4D et jamais manipulés en structure par la suite.

La solution est dans ce cas de resauvegarder le formulaire en ajoutant un objet sur le formulaire, le fermer et le rouvrir et supprimer l'objet ajouté. Vous pouvez aussi sélectionner tous les objets du formulaire et les coller sur un nouveau formulaire.

Dans le cas d'une corruption d'objet, le simple fait de copier et de coller un objet dans le même formulaire redéfinit les objets.

Ceci n'est à faire que si vous n'avez pas la dernière version de 4D car la version de 4D Tools 2004.3 vous propose en option :
Structure, Répare les objets de la structure, Réparer-Régénérer tous les formulaires de la base.

4 - 4D 2004

4-1 - Les fichiers structure et données : séparation "resource fork" et "data fork"

Désormais toutes les bases 4D créées en 4D 2004, sous MacOS ou sous Windows, comportent 4 fichiers :

• mabase.4DB

• mabase.RSR

• mabase.4DD

• mabase.4DR

Les bases Mac converties en 4D 2004 resteront en deux fichiers : le fichier structure et le fichier .data.

Pour les passer en quatre fichiers, vous disposez de plusieurs solutions :

• En compactant le fichier de données et le fichier de structure avec 4D Tools 2004.3.

• En utilisant 4D Transporter (sous Classic uniquement)

• En utilisant le Terminal MacOS X :
mkdir …/Dossier_Win
cp MaBase Dossier_Win/Mabase.4DB
cp MaBase/..namedfork/rsrc Dossier_Win/MaBase.RSR
cp MaBase.data Dossier_Win/Mabase.4DD
cp MaBase.data/..namedfork/rsrc Dossier_Win/MaBase.4DR

4-2 - Nouvelle architecture et Système d'exploitation

• Intégration avec les systèmes nouvelle génération (Windows XP et Mac OS X)

• Prise en charge des spécificités d'interface

• Support du format Mach-0 sous Mac OS X

La gamme 2004 ne fonctionne pas sous :

• Mac OS 9

• Mac OS X en mode Classic

• Windows 98 SE

• Windows Millenium

4-3 - Compatibilité des formats des plug-ins

• Format Mach-O (Mach Object-file format)
Format des exécutables natifs sous MacOS X.

• "PEF" (Prefered Executable Format)
Format des exécutables natifs pour les systèmes Mac OS Power PC antérieurs à MacOS X.
Avec quelques adaptations, les "PEF" peuvent tourner sur MacOS X aussi bien que sur les systèmes anciens.

• Les "PEF"
Parfois appelés "CFM" car le Code Fragment Manager est le mécanisme utilisé pour la préparation et l'exécution de tels fichiers.

4-4 - Nouveaux dossiers

• Extras
sert à contenir les fichiers à copier sur le 4D Client (ressources, texte, pref., Bibliothèque d'objets…). Il doit être à côté de la structure. Il est copié sur le poste client dans :
· MacOSX : Library:ApplicationSupport:4D:NomdelaBase_192.168.xxx.xxx :Extras
· Windows 2000/XP : Documents and Setting\NomUtilisateur\Application Data\4D\NomdelaBase_adresse\Extras

• Licences
contient les fichiers de licences placés automatiquement lors de l'activation, ou par vous-même. Se trouve dans le dossier actif de 4D.
· MacOSX : Library:ApplicationSupport:4D:Licences
· Windows 2000/XP : Documents and Setting\AllUsers\Application Data\4D\Licences

• Macros
ce nouveau dossier contient les différentes macros que vous créez.

4-5 - Nouvel emplacement du dossier des Préférences

Dans 4e Dimension 2004.3, les emplacements de ces fichiers ont été unifiés. Ceci permet l'utilisation d'applications 4D sur des systèmes ou les dossiers de types "All Users" sont verrouillés.

Par défaut, ce sont désormais les suivants :

Windows 2000/XP

MacOSX

Toutes applications hormis 4D Client

Documents and settings\All Users\Application Data\4D -> Si le dossier All Users est verrouillé : Documents and settings\ NomUtilisateur \Application Data\4D

(Tous utilisateurs) Bibliothèque :Support aux applications : 4D -> Si le dossier Tous utilisateurs est verrouillé : (Dossier de l'utilisateur courant) :Bibliothèque :Support aux applications :4D

4D Client

Documents and settings\ NomUtilisateur \Application Data\4D

(Dossier de l'utilisateur courant) :Bibliothèque :Support aux applications :4D

L'emplacement du dossier 4D avant 4D 2004 :

· Toutes applications sauf 4D Client
Windows 2000/XP : Documents and settings\All Users\Applications Data\4D
MacOSX : [Tous utilisateurs]:Bibliothèque:Support aux applications:4D (tous utilisateurs)

· 4D Client :
Windows 2000/XP : Documents and settings\Nom Utilisateur\Applications Data\4D
MacOSX : [Dossier de l'utilisateur courant]:Bibliothèque:Support aux applications:4D

4-6 - Nouvelle architecture des plug-ins

Pour fonctionner, les plug-ins doivent être Carbon au format Mach-O ou Carbon au format CFM (Code Fragment Manager), ancienne librairie des plug-ins.

Les nouveaux plug-ins au format Mach-0 sont : 4D View, 4D Write, 4D Draw, 4D for OCI, 4D ODBC Pro, 4D Open for 4D, 4D Pack, 4D Internet Commands, 4D for MySQL, 4D for PostgreSQL, 4D for ADO.

Les plugins qui ne fonctionnent pas avec la gamme 4D 2004 sont : 4D Calc, 4D List, 4D ODBC (ancienne version).

4-7 - Nouveaux emplacements

On ne peut plus placer les plug-ins dans le dossier actif de 4D.

Ils se placent soit au niveau de la structure de la base, soit au niveau de l'application.

4-8 - Nouveau dossier pour les plug-ins

Ce nouveau dossier se nomme "PlugIns". Vous y placez toutes les formes de progiciels (packages) Mach-O ou CFM, les ".bundle", pouvant contenir à la fois les versions MacOS et Windows. Ce dossier peut co-exister avec les dossiers "Mac4DX" et "Win4DX" que l'on peut encore placer au niveau de la structure.

Particularités sous MacOS, l'installation des plug-ins peut être effectuée au niveau de l'application soit par copie des fichiers, soit, plus simplement via la section "Modules externes" de la boîte de dialogue Lire les informations

Dans ce contexte, un plug-in peut être installé mais désactivé.

4-9 - Téléchargement des plug-ins en client/serveur

Lors de la connexion d'un 4D Client à un 4D Server, les plug-ins installés sur le serveur sont rapatriés en local sur le poste client. En fonction de la configuration du serveur, les plug-ins téléchargés sont placés dans un dossier PlugIns et/ou Mac4DX/Win4DX sur le poste client, comme décrit ci-dessous :

Notes :
• Avec 4D Server 2004, la hiérarchie des éléments (dossiers et fichiers) placés dans le dossier de téléchargement est conservée et reconstituée sur les postes clients. Seuls les éléments correspondant à la plate-forme du poste client sont téléchargés.
• Des dossiers supplémentaires nommés Cache, Server et Database sont également créés sur les postes clients pour des besoins de fonctionnement internes à 4D Server.

Emplacement des dossiers téléchargés sur le poste client :

• Si les dossiers PlugIns et/ou Mac4DX/Win4DX sont installés sur le poste serveur au même niveau que la structure de la base :

· Mac OS X
[Disque] :Library :Support aux applications :4D :NomDeLaBase :PlugIns (et/ou Mac4DX ou Win4DX)

· Windows 2000 Windows XP
[Disque]\Documents and Settings\Nom de l'utilisateur\Application Data\4D\Nom de la Base\
PlugIns (et/ou Mac4DX ou Win4DX)

• Si le dossier PlugIns est installé sur le poste serveur au même niveau que l'application 4D Server

· Mac OS X
[Disque] :Library :Support aux applications :4D :NomDeLaBase :4D :PlugIns

· Windows 2000 Windows XP
[Disque] :\Documents and Settings\Nom de l'utilisateur\Application Data\4D\Nom de la Base\4D\PlugIns

4-10 - Priorité de lancement

• Même plug-in au niveau de la structure et de l'application

-> charge uniquement celui à côté de la structure

• Même plug-in dans le dossier Mac/Win4DX et PlugIns

-> message d'erreur (la base ne peut être lancée)

4-11 - Activation des licences

• Activation connectée

• Activation déconnectée

• Activation d'urgence

• Ajout des extensions

4-11-1 - Activation connectée

Dans 4e Dimension 2004, l'enregistrement des produits s'effectue essentiellement via Internet.

• Etape 1

Vous devez disposer d'une connexion Internet et d'un compte Email pour pouvoir vous enregistrer.
Vous créez un compte en ligne et recevez en réponse un e-mail à conserver précieusement.

• Etape 2

Saisissez le numéro de votre produit.
Le serveur vous renverra automatiquement un fichier de licences qui sera installé dans le dossier "Licences".
Un e-mail vous est renvoyé avec une copie du fichier de licence à utiliser en cas de perte du fichier installé automatiquement.

4-11-2 - Activation déconnectée

• Etape 1

Depuis la zone de dialogue "activation déconnectée", après avoir saisi votre numéro de produit et votre email, vous générez un fichier d'identification (Reg.txt). Ce fichier peut ensuite être placé sur une autre machine ayant accès à Internet.

• Etape 2

Vous vous connectez sur le site Web de 4D. Si vous ne possédez pas de compte, vous devez le créer. Enregistrez votre produit : le fichier "Reg.txt" vous sera demandé. En retour, vous recevez par E-mail un fichier de licence.

• Etape 3

Copiez ce fichier sur votre disque, et dans le dialogue "Activation déconnectée", choisissez l'étape 3 : "Intégrer le fichier reçu". Intégrez le fichier.

4-11-3 - Activation d'urgence

• Elle ne peut être utilisée qu'une seule fois avec un même numéro de produit,

• Seuls certains numéros de produit y ont accès,

• L'application est activée durant une période de 5 jours maximum

4-11-4 - Ajout des extensions

• Menu Aide : Mise à jour des licences.

• vous disposez aussi de la commande CHANGER LICENCE, qui fonctionne avec une base compilée.

Si vous avez acheté directement une application avec des extensions (par exemple 4D Server avec serveur Web), il n'est pas nécessaire d'ajouter de numéro d'expansion : dans ce cas les extensions sont incluses dans le numéro de produit principal.

Note : Vous pouvez visualiser le contenu du fichier de licence dans un navigateur.

5 - Bases converties : les compatibilités

Ces fonctionnalités de compatibilité ne sont présentes que pour permettre une compatibilité avec des fonctionnements utilisés dans d'anciennes versions. Les anciens fonctionnements ne sont évidemment plus préconisés. Certaines fonctionnalités de compatibilité ne sont présentes dans le dialogue de Préférences que pour des bases converties.

5-1 - Les compatibilités Structure

• Utiliser la méthode Début de la v5.x.x

Activation de l'appel à la procédure "Debut" pour les versions antérieures à 6.0.

Conseil : ne pas cocher l'option et copier le contenu dans la méthode base "Sur ouverture"

• Utiliser les Formules Fichiers de la v5.x.x

Les triggers ne sont exécutés que pour les formulaires "entrée" à la saisie d'un champ ou clic sur un bouton.

Conseil : ne pas cocher l'option et utiliser les Triggers.

• Les champs ne sont pas saisissables dans les dialogues

Cochée dans les bases converties et décochée pour les bases créées.

• Compatibilité 6.8 pour le rendu du texte

Permet de désactiver l'affichage 100% Quartz sous MacOSX. En 6.8, 4D, champs, variables texte et plug-ins étaient affichés en mode QuickDraw. (anti-aliasing, approche précise). Quartz est utilisé pour l'affichage uniquement (pas l'impression), sous MacOS 10.2 minimum et en plateforme "Thème Mac" uniquement.

• Boutons radio groupés par nom

Il n'y a plus d'obligation à faire commencer la variable bouton-radio par la même chaîne pour les associer. Il suffit désormais de simplement les grouper. Cette option n'existe que dans les bases converties. Elle est cochée par défaut. Les bases créées en 2004 utilisent le nouveau fonctionnement.

• Recharger le formulaire pour chaque enregistrement durant un IMPRIMER SELECTION

Cette option n'apparaît que pour les anciennes bases de données converties en version 2004. Elle est cochée par défaut.

Ce principe permettait de réinitialiser automatiquement tous les paramètres des objets que le développeur avait pu modifier par le langage dans l'événement formulaire Sur impression corps. Afin d'optimiser les performances, ce mécanisme a été supprimé dans 4e Dimension 2004.

Le développeur 4D doit désormais réinitialiser lui-même les paramètres qu'il souhaite dans la méthode formulaire - ce fonctionnement est identique à celui des formulaires listes avec l'événement Sur affichage corps. Vous pouvez toutefois conserver l'ancien mécanisme à l'aide de l'option "Recharger le formulaire pour chaque enregistrement durant un IMPRIMER SELECTION".

Les bases de données créées en version 2004 utilisent le nouveau mode.

• Transactions automatiques en saisie

Cette option n'apparaît que pour les anciennes bases de données converties en version 2004. Elle est décochée par défaut. Elle permettait de débuter automatiquement une transaction quand un formulaire de saisie était ouvert et possédait un formulaire inclus. Option conçue pour les utilisateurs de 4D First qui passaient en 4D. Cette option était déjà déconseillée en 2003.

5-2 - Les compatibilités Web

• Utiliser les commentaires 4DVAR au lieu des crochets

Dans les anciennes versions du serveur Web, on employait la syntaxe suivante :
[MaVar], solution propriétaire à remplacer par <!--4DVAR MaVar-->

• Utiliser nouveau référencement des contextes

Évite l'envoi de n° de contexte par le serveur web de 4D au navigateur pour chaque élément d'une page.

• Supprimer "/" sur les URL inconnues

Exemple :
http://127.0.0.1/Contacts/Ajouter retournait dans $1 : "Contacts/Ajouter" dans les versions précédentes.
En 4D 2004 toutes les URL débutent par "/" (sauf en cochant cette option…)

• Connexions persistantes

Si une page HTML comportait 10 images, cela entraînait auparavant 10+ 1 connexions en http 1.0. Cette option permet de maintenir une seule connexion.

5-3 - Barre de menus

Ancien mécanisme du menu Edition (option en 4D 2003)

Dans les bases de données créées avec des anciennes versions de 4e Dimension, une option supplémentaire "Ancien mécanisme du menu Edition", est disponible.

Cette option est cochée par défaut pour les barres de menus existantes.

Elle permet de conserver le fonctionnement précédent du menu Edition : lorsque cette option est cochée, 4e Dimension ajoute automatiquement un menu Edition à la barre de menus.

Dans ce cas, le menu est géré par le système et ne peut être modifié, contrairement à ce que l'on peut faire à partir de 4D 2003.

Exécutez sans valider :

Sélectionnez l'option "Exécuter sans valider" (facultatif).

Lorsque cette option est cochée, 4e Dimension ne provoquera pas la "validation" du champ dans lequel se trouve le curseur avant d'exécuter l'action standard associée.

Cette option est principalement destinée aux commandes du menu Edition.

Par défaut, 4e Dimension traite et "valide" le contenu d'un champ avant d'exécuter une action standard (via une commande de menu ou un raccourci-clavier), ce qui a pour effet de générer un événement formulaire Sur données modifiées.

Ce principe peut gêner le fonctionnement des commandes du type copier ou coller, car au moment de leur appel l'événement formulaire Sur données modifiées est généré de manière inopinée.

Dans ce cas, il est utile de cocher l'option "Exécuter sans valider".

5-4 - Plateforme (Préférences et Formulaire)

Dans le dialogue des préférences, cette zone n'apparaît que dans les bases de données converties.
Dans les précédentes versions de 4e Dimension, il était possible de "forcer" cette apparence au niveau de la base de données, des formulaires et/ou des objets - chaque niveau héritant par défaut du précédent.
Ce mécanisme est conservé pour des raisons de compatibilité.

Dans les bases de données créées avec 4e Dimension version 2004 et suivantes, l'interface est automatiquement choisie par 4e Dimension en fonction de la plate-forme courante.
Les formulaires et objets utilisés sont dessinés de manière native.
L'interface peut être paramétrée uniquement au niveau des formulaires ou des objets et seules deux options sont disponibles : Système et Impression pour les formulaires, Liée au formulaire pour les objets.

• Système

Quelle que soit la plate-forme définie au niveau du formulaire, l'objet est dessiné en fonction de la plate-forme d'exécution de l'application.

• Impression

Quelle que soit la plate-forme définie au niveau du formulaire, l'objet est dessiné d'une manière adaptée à l'impression.
Cette option est à utiliser si certains objets sur votre formulaire n'ont pas le rendu souhaité à l'impression.

• Liée au formulaire

L'interface de la plate-forme de l'objet est la même que celle sélectionnée pour le formulaire. L'interface de plate-forme est paramétrée dans les propriétés des formulaires.

Dans les bases de données converties depuis des versions précédentes de 4e Dimension, des options supplémentaires sont disponibles (Automatique, Mac OS 7, Windows 3.11, NT 3.51, Windows 95/98/2000, NT 4, Windows 95/98/2000, NT 4, Mac OS 9 et Thème Mac). Ces options correspondent à l'ancien mode de prise en charge de l'interface de plate-forme dans 4e Dimension et il est désormais déconseillé de l'utiliser. Il en est de même avec les commandes

Lire interface et FIXER INTERFACE, toutes deux conservées pour des questions de compatibilité qui fonctionnent dans les bases converties uniquement. Ces commandes sont ignorées dans les bases créées en 4D 2004, l'interface de plate-forme étant gérée automatiquement.

Dans les Préférences des bases converties, Il est fortement conseillé de sélectionner l'option Système afin de mettre en oeuvre ce fonctionnement. Les deux autres pop-up menus sont alors désactivés, le nouveau mécanisme est actif. À noter qu'il vous sera peut-être nécessaire de modifier la propriété "Plate-forme" de vos formulaires pour en tirer parti, en choisissant par exemple l'option Lié à la base.

• Lié à la base

L'interface du formulaire est la même que celle sélectionnée dans les Préférences.

5-5 - Taille de la fenêtre du formulaire

Taille de la fenêtre : Avec contraintes (bases converties en 4D 2004.2)

· non cochée : formulaire Redimensionnable sans bouger les objets (correspond à l'ancien fonctionnement "Redimensionnable" décoché)

· cochée : mode standard

• 4D 2004.0 : ajustement dynamique

La propriété "Ajustement dynamique" est disponible dans le thème "Taille du formulaire" pour les formulaires convertis depuis une version précédente de 4e Dimension, lorsque la propriété " Taille auto " est sélectionnée.

Dans les versions précédentes de 4e Dimension, lorsqu'un formulaire disposait de la propriété Taille auto, la taille du formulaire était calculée uniquement à l'ouverture du formulaire. Donc si des modifications étaient effectuées par la suite à l'aide de commandes du type DEPLACER OBJET, la taille du formulaire n'était pas mise à jour. L'option Ajustement dynamique faisait cette mise à jour (non cochée par défaut dans les bases converties).

• 4D 2004.2 : avec contraintes

Pour les formulaires des bases de données 2003. converties en 2004.2 : cette option permet de reproduire le fonctionnement de l'ancienne propriété de formulaire "Redimensionnable" : non cochée, (l'utilisateur redimensionne librement la fenêtre du formulaire mais les objets qu'elle contient ne sont ni redimensionnés ni déplacés). Les propriétés de taille mini/maxi ou fixe ainsi que les propriétés de redimensionnement des objets sont ignorées.

Ce fonctionnement correspond aux anciennes versions de 4e Dimension et ne doit être utilisé que par souci de compatibilité dans le cadre d'interfaces spécifiques.

Le choix de cette option vous évitera notamment la déformation des boutons dans le pied de page, lors d'un redimensionnement de la fenêtre.

Les bases 4D créées en version 2004 correspondent à l'option Redimensionnable.

5-6 - Couleur de contraste système

Une nouvelle option est apparue dans la liste des propriétés du formulaire : couleur de contraste système : la ou les lignes sélectionnées seront surlignées selon la couleur définie des les Préférences systèmes, Apparences (la couleur de contraste système n'a pas d'effet sur une image de fond).

Si l'option est décochée, la couleur de contraste est en inverse vidéo (fond noir et texte blanc).

5-7 - Filtres ASCII

Les filtres ASCII disponibles en mode Utilisation dans les versions précédentes sont maintenant accessibles dans les Préférences de 4D, Menu Web et panneau Options.

5-8 - Les sous-tables (ou racines)

Dans les anciennes versions il était possible d'avoir des racines imbriquées sur 5 niveaux. Désormais les racines (devenus "sous-tables" ne fonctionnent que sur un seul niveau. La visualisation et/ou modification ne peut pas être assurée au-delà.

5-9 - Conversion des plug-ins

4D Write

Après une migration de la version 6.x.x vers 2003 et 2004, les documents 4D Write enregistrés sur disque se retrouvent avec des paramètres d'impression qui ne correspondent plus : format US à 1440% par exemple au lieu de A4 à 100%. Si on diminue le pourcentage, on obtient un format bien trop petit. La faute incombe au Print record qui diffère de Mac OS 9 à Mac OS X.

Voici une méthode en version 4D 2004 qui substitue aux paramètres d'impression erronés de bons paramètres dans des documents 4D Write enregistrés sur disque.

1. C_BLOB(MonBlob)

2. MaZone:=WR Hors ecran

3. `stocker dans un blob un paramétrage par défaut tout frais

4. MonBlob:=WR Param impression vers BLOB (MaZone)

5. `ouvrir le document incriminé

6. WR OUVRIR DOCUMENT (MaZone)

7. bOK:=OK

8. Tant que (bOK=1)

9. `remplacer les paramètres

10. WR BLOB VERS PARAM IMPRESSION (MaZone;MonBlob;1)

11. WR SAUVER DOCUMENT (MaZone)

12. `et ainsi de suite

13. WR OUVRIR DOCUMENT (MaZone)

14. bOK:=OK

15. Fin tant que

16. WR DETRUIRE HORS ECRAN (MaZone)

Attention :
Le format des zones 4D Write a changé en 2004.2. Ce qui signifie que les documents Write stockés sur disque avec la version 2004.2 et supérieures ne pourront pas s'ouvrir avec les versions précédentes.

6 - Les intégrations

6-1 - Fonctionnalités 4D Insider intégrées

Dossiers de l'Explorateur et Groupes 4D Insider

4D 2004 vous permet de créer des Dossiers et sous-dossiers en mode Structure (Mode Démarrage de l'explorateur). Ces dossiers permettent de regrouper des Tables, Formulaires, Méthodes-projet que l'on peut organiser par fonctionnalité. Disponible en liste hiérarchique dans l'éditeur de méthodes Compatibles avec les Groupes 4D Insider, on peut les déplacer d'une base à l'autre.

Groupe 4D Insider

Dossier 4D

Tables

Tables

Formulaires

Formulaires

Méthode-Projets

Méthode-Projets

Barre de menu

Non visible

Enumération

Non visible

Feuille de style

Non visible

Format et filtre

Non visible

Messages d'aide

Non visible

Méthode base

Non visible

Ressources STR#

Non visible

Bibliothèque d'objets 4D et Librairies 4D Insider

Librairies 4D Insider

Bibliothèque d'objet

Fichier externe avec extension.4il

Fichier externe avec extension.4il

Tout objet pouvant figurer dans une base

Tout objet du formulaire avec propriétés et objets dépendants (énumérations, feuilles de style, formats, images, messages d'aide lié, ressources STR#, méthodes objets).

6-2 - Fonctionnalités 4D Customizer intégrées dans 4D

Fonctionnalités intégrées dans 4D au niveau du dialogue des Préférences de 4D :

• Script Manager

• Progression de l'impression

• Affichage de la fenêtre d'accueil

• Racccourcis clavier

• Ressource wedd

• Changement du n° de port de 4D Server

Script manager

Ressources TRIC (TRI pour tri et C pour comparaison)

• 4e Dimension : ressource TRIC ou à défaut TRI#

• Système : recherche et tri réalisés par le système (ignore la ressource TRIC)

• Allemand pour v2.2 n'est plus usité. Pour les anciennes versions de 4D sous des systèmes allemands

• Turc (présente pour pallier un bug du système turc)

• Calcul sur dates (farsi)

Concernant les langues, il existe deux systèmes : systèmes romans et systèmes de script manager.

La version 4D 2004.2 soutient un grand nombre de langues avec saisie et affichage multilingue (ex. : hongrois, tchèque, arabe sur un même formulaire, dans des champs ou variables différents) (Liste des propriétés : Configuration du clavier).

MaxOSX : 15 langues résidant dans le système d'exploitation (anglais, japonais, français, allemand, espagnol, italien, hollandais, suédois, danois, norvégien, finnois, chinois traditionnel, chinois simplifié, coréen et portugais).

Windows : pack multilingue appelé MUI (Multilingual User Interface) vendu par Microsoft (version professionnelle).

Ressource WEDD

La ressource WEDD permet de lier une structure à un fichier de données, ce qui n'autorise qu'un seul fichier data à être ouvert avec une structure qui comporte la même signature WEDD.

Avec 4D 2004, vous pouvez définir une signature WEDD pour le fichier de structure et de data via les Préférences de 4D (Base de données > Gestion de données).

Pour supprimer la signature WEDD, vous devez simplement supprimer la valeur entrée dans le champ "Signature WEDD" des Préférences.

Raccourcis clavier

Mode Utilisation

2003 (4D Custo)

2004 convertie

2004 (Préf. 4D)

Acceptation de saisie

Alt/Option Entrée

d°

Entrée

Annulation de saisie

Alt/Option Echapp

d°

Entrée

Ajout sous enregistrement

Entrée

d°

CTRL-CMD SHIFT /

4D Server : changement du n° de port

Le changement du n° de port se fait désormais dans les Préférences/Client-Serveur.

Taille de la pile

4D Customizer Plus permettait aussi de modifier la taille des piles pour le fonctionnement de 4D. Ces réglages ne sont plus nécessaires et sont donc supprimés. Les commandes telles que NOUVEAU PROCESS continuent d'accepter une taille de pile par souci de compatibilité.

Langue des commandes et système

On peut changer la langue de l'application de cette façon :

• MacOS

Dans le Package de 4D, dossier Contents :Ressources, vous devez avoir le dossier de la langue que vous souhaitez utiliser. Par défaut dans une version française, vous avez le dossier "French.lproj". Pour travailler en anglais, vous devez donc rajouter à cet endroit le dossier "English.lproj" (que vous récupérez dans un package 4D anglais). Ensuite, au niveau de l'application, faites "Lire les informations". Dans la section "Langues", choisissez la langue voulue.

• Windows

Vous pouvez prendre le fichier "4D.rsr" d'un 4D anglais pour le mettre à la place du "4D.rsr" français, et vous aurez ainsi un 4D anglais.

6-3 - Fonctionnalités 4D Customizer intégrées dans les plug-ins

4D Draw Nouveautés 2004.3

• Pour intégrer les fonctionnalités du 4D Customizer Plus :

· dr_FIXER OPTIONS GLOBALES
Localisation des modèles (serveur ou client)

· dr_FIXER PREFERENCES
Gestion des PICTS (image ou objets individuels)
Dialogue de sauvegarde

· Plus supportés : Suffixe de la fenêtre externe

• Nouveaux paramètres :

Dr_VERROUILLER ZONE(zone;mode{;modeBouton})

· ModeBouton  ->  Entier

0 : bouton si la zone est inférieure à 150 points de hauteur et 300 points de largeur
1 : toujours la zone

Dr_FIXER OPTIONS GLOBALES(écriture;lecture{;selection comme 4D{;activation grille
{;verrouillage horizontal {;verrouillage vertical}}}})

· Sélection comme 4D -> Entier
0 pas de changement
1 sélection de tous les objets touchés
2 sélection de tous les objets entourés

· Activation de la grille magnétique -> Entier
0 pas de changement
1 grille non activée
2 Grille activée

· Verrouillage horizontal -> chaine
lettre pour le verrouillage horizontal (par défaut : clic + h)

· Verrouillage vertical -> chaine
lettre pour le verrouillage vertical (par défaut : clic + v)

6-4 - 4D BackUp intégré et ajout de nouvelles fonctionnalités

Nouveautés :

• Algorithmes entièrement nouveaux

• Déclenchement automatique des sauvegardes et restitutions (structure, données, fichiers joints…)

• Définition de paramètres et options avec 4D, 4D Server, 4D Runtime Volume License

• Intégration automatique des opérations manquantes grâce au fichier d'historique

• Possibilité d'annulation multiniveau

• Compression et sécurité accrues des archives

• Accès programmé en XML

• La sauvegarde peut se faire de plusieurs façons :
· Mode Structure > Préférences > Sauvegarde
· Mode Utilisation > Menu Fichier > Ligne Sauvegarder
· Commande SAUVEGARDER :
appelle la Méthode Base Sur demarrage sauvegarde au début et appelle
la Méthode Base Sur arrêt sauvegarde à la fin.

Les commandes à votre disposition :

• SUR DEMARRAGE SAUVEGARDE

• SUR ARRET SAUVEGARDE

• SAUVEGARDER

• RESTITUER

• LIRE INFORMATION SAUVEGARDE(sélecteur;val1;val2)

• LIRE INFORMATION RESTITUTION(sélecteur;val1;val2)

Fichiers générés :

• NomBase[XXX1-0002].4BK : (2e segment de la première sauvegarde)

• Nomhistorique[XX12].4BL : 13e version de l'historique (commence à 0)

Divers :

• Taux de compression : si élevé, moins rapide mais prend moins de place

• Taux d'entrelacement : si élevé, plus de sécurité mais plus lent (les secteurs ne sont pas contigus

• Taux de redondance : si élevé, plus de sécurité mais plus lent (taille du fichier plus gros)

• Option de sauvegarde automatique à la création d'une base

• Option de restitution à l'ouverture d'une base.

Fichier d'historique :

• Création d'un nouveau fichier après chaque sauvegarde

• Stocke les ajouts, modifications, suppressions, transactions

• Historique analysable : Mode Utilisation > Fichier > Vérifier fichier historique (sur 4D Mono ou 4D Server)
Action, Table, Utilisateur, Date et Heure, Valeurs des champs

• Revenir en arrière : annule toutes opérations après la ligne sélectionnée

Automatisation des réparations :

• Autodiagnostic à l'ouverture

· Restitution

· Intégration de l'historique

· Démarrage de la base (selon options dans les préférences).

Remise en route automatique de 4D Server s'il est enregistré comme service

Restitution manuelle :

• Onglet Restituer à l'ouverture de la base (4D Mono et 4D Server)

• Commande RESTITUER

• Glissé-déposé du fichier de sauvegarde sur l'icône de l'application (toute appli. 4D)

Journal et fichier XML :

• Journal des sauvegardes.txt : Chemin d'accès, taille, contenu de l'archive…

• Fichier " Backup.xml " dans DossierBase:Préférences:Backup

6-5 - 4D ODBC intégré

Commandes haut niveau 4D ODBC

Il n'y a pas de compatiblité entre le plug-in 4D ODBC 2003 et 4D ODBC pro 2004.

Mais les fonctionnalités de base ODBC sont désormais intégrées dans 4D 2004.

• Intégrées dans tous les produits 4D 2004

• Pas de licence supplémentaire

• Import et export d'une source ODBC

• Accès à toute source ODBC via SQL

• ODBC 3.0 API

• Natif MacOS X

• Driver Manager inclus avec MS Windows et MacOS X

• Windows : quelques drivers inclus

• MacOS X : Pas de drivers inclus

• Drivers "Tierce partie" :
http://www.openlinksw.com/

• Documentation API ODBC :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbcodbc_api_reference.asp

• Composant "ODBC Framework" pour remplacer les commandes ODBC 2003 par les commandes 2004
(s'installe avec le plug-in ODBC PRO à partir du CD 4D Product Line 2004.2 ou par téléchargement).

6-6 - Trois nouveaux plug-ins avec 4D 2004

• 4D for MySQL

• 4D for PostgreSQL

• 4D for ADO

6-7 - Utilisateurs et Groupes

BLOB VERS UTILISATEURS (Blob Utilisateur)
UTILISATEURS VERS BLOB (Blob Utilisateur)

Seul l'administrateur a accès à cette commande.
Identique à la sauvegarde dans l'éditeur mais seulement fichier disque dans ce cas-là.

Note de compatibilité :
Les fichiers d'utilisateurs et groupes (extension .4UG) créés par la commande de menu "Enregistrer les groupes & utilisateurs..." dans 4e Dimension 2003 peuvent être chargés dans 4e Dimension 2004 via la séquence ci-dessus.

7 - Les nouveaux comportements

7-1 - Les éditeurs de formules

Les méthodes projets ne sont plus visibles dans les éditeurs de formules.

Vous devez expressément les autoriser avec la commande FIXER METHODES AUTORISEES, pour la session courante :

1. FIXER METHODES AUTORISEES (TabMéthodes)

2. LIRE METHODES AUTORISEES (TabMéthodes)

3. EDITER FORMULE(Table;Formule)

Exemple :

1. TABLEAU ALPHA(15;tabméthodes;2)

2. tabméthodes{1}:="Formule@"

3. tabméthodes{2}:="Total général"

4. FIXER METHODES AUTORISEES (tabméthodes)

6. $maFormule:=""

7. EDITER FORMULE ([Salaires];$maFormule)

8. Si (OK=1)

9. APPLIQUER A SELECTION([Salaires];EXECUTER($maFormule))

10. Fin de si

7-2 - Harmonisation du fonctionnement des formulaires sortie...

... en mode utilisation, en mode menus créés, des sous-formulaires.

Trois modes de sélection sur toutes les listes :

• Aucun
· Pas de définition du UserSet
· Pas de génération Sur nouvelle sélection

• Ligne unique
· Pas de définition du UserSet
· L'enregistrement devient l'enregistrement courant
· Flèche HAUT et BAS
· CTRL+CMD CLIC inverse la sélection
· Sur nouvelle sélection générée à chaque changement d'enregistrement courant

• Multiligne
· UserSet disponible
(attention : pour un sous-formulaire on récupère l'ensemble utilisateur avec la commande LIRE ENREGISTREMENTS MARQUES - voir ci-après).
· Un clic ne modifie pas l'enregistrement courant
· Flèche HAUT et BAS
· CTRL/CMD clic ou SHIFT clic pour la multisélection
· Sur nouvelle sélection générée à chaque changement d'enregistrement sélectionné
· Si paramètre SaisieListe à Vrai ou Saisissable en liste coché,
l'ajout et la modification s'effectuent en Liste, sinon en Page.

7-3 - Nouveautés concernant les Formulaires Sortie

• Plus de bouton "QUITTER LA LISTE "

• Tous types d'objets actifs : en entête, corps, rupture, pied de page

• Les actions standards "Ajouter sous-enregistrement" et "Modifier sous-enregistrement" fonctionnent désormais
aussi pour les formulaires sortie

7-4 - Nouveaux événements liés aux listes

• Sur chargement ligne :
au moment du passage en édition en Saisie en Liste

• Sur nouvelle selection :
modification de l'enregistrement courant ou modification de la sélection courante dans un formulaire
liste, un sous-formulaire ou une ListBox

7-5 - Nouvelles commandes liées aux listes

• LIRE ENREGISTREMENTS MARQUES ({Table;}Nom de l'ensemble)
· Nom de l'ensemble : ensemble dans lequel on recopie la sélection Utilisateur
· Peut s'utiliser dans plusieurs sous-formulaires puisqu'on indique le nom de la table.
· L'ensemble peut être Local/client, process ou interprocess

• DEFILER LIGNES ({*;}objet|Table{;Position{;*}})
· * objet sous formulaire (chaîne)
· * affiche la ligne en première position après défilement
· Permet de faire défiler les lignes d'un sous-formulaire ou d'un formulaire sortie via les commandes
MODIFIER SELECTION ou VISUALISER SELECTION
· Position est optionnel car s'il n'est pas indiqué, la commande se positionne sur le premier enregistrement
sélectionné

7-6 - Commandes modifiées liées aux listes

• ALLER DANS SELECTION ({Table;}Position)
· permet désormais de désélectionner tous les enregistrements d'une liste en passant Position à 0

• MARQUER ENREGISTREMENT({Table}{; Ensemble{;*})
· {Table} peut être la table d'un sous-formulaire
· Inactive le défilement automatique de la liste pour autoriser la gestion
personnalisée via DEFILER LIGNES

7-7 - Commandes modifiées pour la Saisie en liste

La saisie en liste est désormais disponible dans tous les types de listes d'enregistrements.

VISUALISER SELECTION ({Table}{;ModeSélection{;SaisieListe{;*{;*}}}})
MODIFIER SELECTION ({table}{;ModeSélection{;SaisieListe{;*{;*}}}})

· Mode sélection : 0 Pas de sélection, 1 sélection unique, 2 sélection multiple
· Saisie Liste : vrai ou faux (faux par défaut)

7-8 - Nouveautés concernant les sous-formulaires

• Barre de défilement horizontale

• Gestion du double-clic sur ligne
· Ne rien faire
· Modifier l'enregistrement
· Afficher l'enregistrement

• Double-clic sur ligne vide (bases converties uniquement)
· Ne rien faire
· Ajouter enregistrement (si Saisissable en liste : en Formulaire sortie sinon en Formulaire entrée)

• L'objet sous-formulaire est focusable

• Plus de triangle clignotant

Comparatif des propriétés du sous-formulaire sous 4D 2004 et versions précédentes :

Propriétés 4D des versions précédentes

Propriétés 4D de la version 2004

Saisissable

Saisissable et double cliquable

Focusable
Saisissable en liste
Mode de sélection
Double clic sur ligne
Double clic sur ligne vide

oui
oui
aucun
modifier enrg
ajouter enrg

Saisissable et non double cliquable

Focusable
Saisissable en liste
Mode de sélection
Double clic sur ligne
Double clic sur ligne vide

oui
oui
aucun
ne rien faire
ne rien faire

Sélectionnable

Sélectionnable et double cliquable

Focusable
Saisissable en liste
Mode de sélection ligne
Double clic sur ligne
Double clic sur ligne vide

non
non
unique
afficher enrg
ne rien faire

Sélectionnable et non double cliquable

Focusable
Saisissable en liste
Mode de sélection ligne
Double clic sur ligne
Double clic sur ligne vide

non
non
unique
ne rien faire
ne rien faire

Non modifiable

Focusable
Saisissable en liste
Mode de sélection
Double clic sur ligne
Double clic sur ligne vide

non
non
aucun
ne rien faire
ne rien faire

La propriété "Double-clic sur ligne vide" ne devrait apparaître que dans les bases converties, pour assurer la compatibilité avec les anciens fonctionnements. Propriété qu'il est déconseillé d'utiliser, conformément aux préconisations d'ergonomie de l'OS.

• Si le double-clic sur ligne vide ne doit plus permettre l'ajout, vous pouvez le gérer par :
· Soit par des boutons dans le formulaire principal
· Soit par des boutons dans l'en-tête et la zone de rupture du formulaire inclus
· Soit par des boutons dans le pied de page du formulaire principal

• L'enregistrement courant n'est plus chargé
Tout affichage ou rafraîchissement de l'affichage (ou prise de focus par un objet 4D sur le formulaire) provoqué par le système décharge l'enregistrement courant mais conserve le pointeur d'enregistrement courant :

SOLUTION :
utilisez la commande CHARGER ENREGISTREMENT

• L'événement "Sur affichage corps" est généré aussi pour les lignes vides
Ceci signifie qu'une variable sera affichée jusqu'en bas de la liste, ce qui n'était pas le cas auparavant.

SOLUTIONS :
(en faisant un test supplémentaire)

1. Si (Enregistrement charge([Table]))

2. …

3. Fin de si

Ou

1. $n:=Numero de ligne affichee

2. $p:=Enregistrements trouves ([Clients])

3. Si ($n>$p)

4. CHOIX VISIBLE (*;"Popup@";Faux)

5. Sinon

6. CHOIX VISIBLE (*;"Popup@";Vrai)

7. Fin de si

• Affichage des objets situés de l'en-tête à la zone de rupture

• Affichage des lignes vides

• Visibilité des objets en fonction de leur sélection

• Tous types d'objets actifs dans l'en-tête et en zone de rupture

• Déclenchement des événements formulaires

· Dans les versions inférieures à 4D 2004 :
Trigger
Méthode formulaire Sur affichage corps

· En 4D 2004 (bases créées ET converties)
(fonctionnement identique à un MODIFIER SELECTION ou VISUALISER SELECTION)
Méthode objet Sur entête
Méthode formulaire Sur entête
Méthode objet Sur affichage corps
Méthode formulaire Sur affichage corps

8 - Quelques raccourcis-clavier essentiels

• CTRL/CMD ,   explorateur

• CTRL/CMD ;   boîte à outils

• CTRL/CMD P   méthodes

• CTRL/CMD L   formulaires

• CTRL/CMD *   compilateur

Documentation PDF :
Raccourcis clavier 4D 2004

8-1 - Raccourcis modifiés

• CTRL-CLIC/CMD-CLIC
sur un formulaire permet désormais de sélectionner un objet dans un groupe (ou plan différent).
On retrouve l'ancien fonctionnement avec Menu contextuel: "Sélectionner objets de même type".

• CTRL ou COMMANDE ESP (Afficher la liste des tables ) devient :
Enregistrements -> Liste des tables
ou
CTRL/COMMANDE 0 (zéro)

• CTRL W ou COMMANDE W devient :
Fichier > Ecrire cache
ou
ALT CTRL/OPTION COMMANDE - MAJ S

• CTRL CLIC (curseur dans une liste) devient :
ALT/OPTION CLIC

8-2 - Raccourcis ajoutés

• ENTREE pour saisir dans une zone texte sur un formulaire et pour en valider la saisie.

• ALT CLIC pour passer sur un objet d'une autre page.

8-3 - Passage du Mode Menus créés au mode Utilisation

• MacOS : pas de changement en 2003.7 et 2004. Le raccourci reste "OPTION f" à partir du "splashscreen".

• Windows : l'ancien raccourci, ALT F4, sert désormais à quitter la base (fonctionnement standard).

Pour Passer en Mode Utilisation ou Mode Structure, il faut désormais utiliser :

· 4D 2003.7 et plus : ALT SHIFT CLIC DROIT
passage en mode Trace et rajouter une ligne avec action standard Structure ou Utilisation.

· 4D 2004 : ALT SHIFT CLIC DROIT
passage en mode utilisation

9 - Nouvelles fonctionnalités 4D 2004

Voir documentations :

Mise à jour 4D 2004 (PDF)

Mise à jour plugins 4D 2004 (PDF)

Voir chapitres suivants.

10 - Nouveautés 2004.1

• Pointeur sur les variables locales ;

• Nouvelle interface du dialogue d'ouverture, avec gestion des Favoris ;

• Autorisation de l'ouverture du fichier de structure en lecture (Mode Structure, dialogue Préférences/Application/Accès : ajout "Autoriser l'ouverture du fichier de structure en lecture seule") ;

• Envoi des fichiers et dossiers contenus dans le dossier EXTRAS du 4D Server aux 4D Clients ;

• Dans les zones de sous-formulaires, case à cocher dans la liste des propriétés permettant d'autoriser ou pas la suppression dans la zone avec les touches Suppr et Ret. Arrière ;

• Saisie prédictive dans l'éditeur de méthode avec "(" ou ";" ;

• Nouveau dialogue de licences accessible via Mise à jour des licences ou la commande CHANGER LICENCES ;

• Les documents ouverts en lecture SAX doivent impérativement être ouverts en lecture seule ;

• Nouveaux dictionnaires disponibles avec la commande CHANGER DICTIONNAIRE.

• Gestion des ressources en data fork

Documentation : Addendum 4D 2004.1 (PDF)

10-1 - Nouvelle commande

MONTRER SUR DISQUE (CheminAccès { ;*})

Affiche le dossier indiqué dans CheminAccès.

Si l'élément est un dossier, montre son contenu

10-2 - Nouveaux paramètres

• La fonction Dossier 4D admet désormais ces constantes en paramètre :
· Dossier 4D actif "Application Data\4D" ou "Applications Support:4D"
· Dossier "Extras"
· Dossier "Licences"
· Dossier base 4D client "NomBase_Adresse"

• FIXER VARIABLE ENVIRONNEMENT admet deux constantes supplémentaires :
· _4D_OPTION_CURRENT_DIRECTORY (Mac : chemin relatif)
· _4D_OPTION_HIDE_CONSOLE (Windows : cache la console)

• Lire parametre base et FIXER PARAMETRE BASE admettent de nouveaux paramètres :

· Lire parametre base ([Table];Numéro automatique table)
· FIXER PARAMETRE BASE ([Table];Numéro automatique table;EntierLong)
permet de lire/fixer le prochain numéro renvoyé par Numerotation automatique

· Lire parametre base ([Table];Enreg requêtes 4D Server)
· Lire parametre base ([Table];Enreg requêtes Web)
· Lire parametre base ([Table];Client Enreg requêtes Web)
· FIXER PARAMETRE BASE ([Table];Enreg requêtes 4D Server)
· FIXER PARAMETRE BASE ([Table];Enreg requêtes Web)
· FIXER PARAMETRE BASE ([Table];Client Enreg requêtes Web)
enregistre et lit les requêtes 4D Server, 4D Server Client ou Web

• Nouvelle constante "Est un texte" autorisée pour les envois par blob :
DECLARATION SOAP (Blob,Est un texte;Entrée_sortie)
permet de retourner des arguments SOAP d'une taille supérieure à 32Ko grâce aux BLObs

10-3 - Nouveautés ListBox

• DEFILER LIGNES (*;objet;position)
affiche la ligne de la listbox indiquée en Position en haut de la listbox

• Deux nouvelles constantes
· Lire information listbox (*;objet;Position barre def ver listbox)
· Lire information listbox (*;objet;Position barre def hor listbox)

• Les dates à nul apparaissent vides et non plus 00/00/00

• Affichage des cases à cocher 3 états dans la ListBox

• Synchronisation tableaux et ListBox

10-4 - Nouveauté 4D Tools

• Onglet Structure
case à cocher supplémentaire pour supprimer le code compilé au compactage de la structure.

10-5 - Nouveautés 4D Write

• WR APPELER SUR EVENEMENT et WR FIXER PROPRIETES ZONE, nouveaux paramètres :

WR APPELER SUR EVENEMENT (zone;wr sur minuteur;Méthode)
appelle la Méthode toutes les 60 secondes par défaut.

Délai à changer dans WR FIXER PROPRIETES ZONE (zone;wr fréquence minuteur;valeur)

10-6 - Nouveautés 4D View

• Impression partielle du document possible ;

• Nouveau dialogue "Propriétés avancées" disponible dans la liste des propriétés avec :
options affichage : saisie, sélection et glissé-déposé, triggers, divers, générateur automatique de code.

• Deux nouvelles commandes :
· PV Param impression vers blob (zone) -> blob
· PV BLOB VERS PARAM IMPRESSION (zone;blob)

10-7 - Nouveautés 4D Pack (2004 et 2004.1)

• AP Add Table and Fields (NomTable ;TableauNomChamp ;TableauTypeChamp ;TableauLongueurChamp)

• AP Get Templates (TableauNomModèles)

• AP Create relation (N°TableSource ;N°ChampSource ;N°TableDestination ;N°ChampDestination)

• AP Create method (NomMéthode ;TableauPropriétés ;BlobcontenantCode{;DossierExplorateur})

10-8 - Composant :

• Nom méthode courante
fonctionne désormais dans une méthode privée du composant.

11 - Nouveautés 2004.2

• Version certifiée MacOS 10.4 "Tiger"

• Modification de l'emplacement des fichiers de préférences

• Création automatique de nouveaux segments de données

• 4D Server MacOS et 4D Runtime MacOS :
maintien du cache en RAM
(pour éviter le déchargement en mémoire virtuelle, donc sur le disque dur, qui ralentirait l'application)

• Possibilité de tester l'exécution d'un formulaire en Mode Structure

• Liste des Propriétés sur un formulaire
Taille de la fenêtre : avec contraintes (bases converties en 4D 2004)

· non cochée : fenêtre redimensionnable sans bouger les objets
(correspond à l'ancien fonctionnement "redimensionnable")

· cochée : mode standard

• Glisser-déposer d'une ligne d'une ListBox vers un objet 4D et inversement

• Touche Majuscule pour les équivalents claviers associés à une ligne de menu.

• Prise en charge des alphabets non romans :
(arabe, chinois simplifié et traditionnel, croate, cyrillique, grec, hébreu, islandais, japonais, coréen,
roumain, thaïlandais, vietnamien pour la saisie, l'affichage et le traitement (tris)
(deux systèmes : systèmes romans et systèmes de script manager)

· 4D 2004.2 : soutien d'un grand nombre de langues avec saisie et affichage multilingue
(ex. : hongrois, tchèque, arabe sur un même formulaire, dans des champs ou variables différents)
(Liste des propriétés : Configuration du clavier)

· MaxOSX : 15 langues résidant dans le système d'exploitation
(anglais, japonais, français, allemand, espagnol, italien, hollandais, suédois, danois, norvégien, finnois,
chinois traditionnel, chinois simplifié, coréen et portugais)

· Windows : pack multilingue appelé MUI (Multilingual User Interface) vendu par Microsoft (version professionnelle).

• Saisie et affichage des données en fonction de la configuration du clavier
dans les champs, variables saisissables, listes hiérarchiques, listBox et comboBox.

Documentation : Addendum 4D 2004.2 (PDF)

11-1 - Commandes modifiées

• Position deposer :
admet désormais un paramètre : récupère le n° de colonne de la ListBox sur laquelle a eu lieu le déposer.

• PROPRIETES PLATE FORME :
nouveau paramètre Langue permettant de connaître la langue courante du système.

• FIXER PARAMETRE BASE, Lire parametre base :
nouvelle constante Précision affichage réels Sélecteur = 32

• FIXER TITRES CHAMPS, FIXER TITRES TABLES :
nouveau paramètre *

· Si passé, utilise la structure virtuelle dans l'éditeur de formules.
· Si omis, l'éditeur de formules n'utilise pas la structure virtuelle.

• LISTE IMPRIMANTES :
modification du 2e paramètre, permettant, sous MacOS, de retourner le nom personnalisé des imprimantes.

11-2 - Nouvelles commandes

• DOM Lire element XML parent

• DOM Lire element XML frere precedent

• DOM Lire dernier element XML enfant

11-3 - Commandes renommées

• DOM Lire premier element XML devient DOM Lire premier element XML enfant

• DOM Lire element XML suivant devient DOM Lire element XML frere suivant

11-4 - Nouvel événement formulaire

• Sur après modification :

déclenché dans toutes zones saisissables par un collé, coupé, effacé, annulé, déposé, saisie clavier et commande simulant une action de l'utilisateur.
(événement à utiliser à la place de Sur après frappe clavier, plus restrictif)

11-5 - Nouveauté 4D Tools

• Une nouvelle option est disponible :

Régénérer tous les formulaires de la base.

À utiliser pour les bases converties et avec formulaires endommagés (après copie de la base et compactage)

11-6 - Nouveautés 4D Write

• Amélioration de la conversion des documents 4D Write en HTML

• Nouvelles commandes d'impression
· WR Param impression vers blob
· WR BLOB VERS PARAM IMPRESSION
pour stocker et récupérer les paramètres d'impression, paramètres de configuration d'impression, ou les deux.

Attention !!
La structure des documents 4D Write 2004.2 change.
Ils ne pourront pas être rouverts avec une version 2004.1

12 - Nouveautés 2004.3

Documentation : Addendum 4D 2004.3 (PDF)

12-1 - Nouveautés Module de sauvegarde

Deux nouvelles commandes

• Nouveau fichier historique
-> Texte : chemin d'accès complet du fichier d'historique refermé

• INTEGRER FICHIER HISTORIQUE (Chemin d'accès)

Permettent de mettre en place un système de miroir logique (voir addendum 2004.3)

Nouvelle préférence de sauvegarde

• Dans les "Préférences/Sauvegarde", nouvelle case à cocher "Annuler l'opération au bout de XX tentatives".

Sauvegarde automatique

• Lorsque le fichier d'historique atteint la taille critique de 2 Go.

12-2 - Nouveautés Langage

Editeur de méthode

• Un nouveau raccourci
permet d'ouvrir directement une méthode projet dans une nouvelle fenêtre :
ALT DOUBLE CLIC (Windows) et OPTION DOUBLE CLIC (MacOS).

Taille de la pile des process

• Gestion modifiée en 2004.3.
Il est désormais préférable d'allouer 64 Ko à la pile de chaque process
(les 32 K étaient précédemment souvent dépassés, de façon automatique, par 4D).
Désormais 4D utilise strictement la taille indiquée.

12-3 - Commandes renommées

• MONTRER BARRES DEFILEMENT LISTBOX devient CHOIX VISIBLE BARRES DEFILEMENT

Cette commande étant utilisable avec les ListBox mais aussi les sous-formulaires et les zones de défilement

12-4 - Commandes modifiées

• FIXER PARAMETRE BASE ({Table ;} Enreg événements debogage ;valeur)
Enreg événements debogage ou 34
Valeur : 0 : ne pas enregistrer, 1 : enregistrer, 2 : mode détaillé

Génère un fichier "4DdebugLog.txt" (attention : ce fichier se remplit très vite).

• FIXER OPTION IMPRESSION (Option masquer progression ;valeur)
• LIRE OPTION IMPRESSION (Option masquer progression ;valeur)
Valeur : 0 : ne pas masquer, 1 : masquer.

Complète la case à cocher "Progression de l'impression" des Préférences.

12-5 - Nouveautés 4D Write

Compatibilité des documents

Le format de stockage interne des documents 4D Write ayant changé, vous ne pourrez plus ouvrir des documents 4D Write 2004.3 (ou 4D Write 2003.7) avec les versions antérieures de 4D Write.

Gestion des encadrements

• Meilleure gestion des encadrements des paragraphes :

· Changement du nom des constantes 43 et 44 de WR FIXER PROPRIETE TEXTE
wr encadrement haut (43) devient wr encadrement inter haut (un espace en + au-dessus et au-dessous)
wr encadrement bas (44) devient wr encadrement inter bas (un espace en + au-dessus et au-dessous)

· Nouvelles constantes :
wr encadrement haut (46) (un espace en + au-dessus)
wr encadrement bas (47) (un espace en + au-dessous)

Application du zoom à l'ouverture

• Nouvelle constante :

· WR FIXER PROPRIETE ZONE (zone ; wr utiliser valeur zoom stockée ; valeur)
Valeur : 1 pour utiliser la valeur stockée, 0 : pour revenir à 100 %

Suppression des tabulations

Un nouveau bouton "Tout supprimer" permet de supprimer toutes les tabulations de la zone de texte sélectionné. Ce bouton se situe dans la boîte de dialogue de gestion des tabulations.

13 - Nouveautés 2004.4

Documentation :
Addendum 4D 2004.4 (PDF)

Version certifiée MacIntel

13-1 - Accès aux commandes

• Accès total aux commandes et méthodes projet dans les formules

Mode Structure - Préférences - Application - Compatibilité :
"Toujours autoriser toutes les commandes et méthodes projet dans l'éditeur de formules".

Cette option est cochée par défaut dans les bases converties et a priorité sur la commande FIXER METHODES AUTORISEES

• Accès aux commandes et méthodes projet pour le Super-utilisateur et l'Administrateur

Mode Structure - Préférences - Application - Accès :
"Désactiver le filtrage des commandes et des méthodes projet dans l'éditeur de formules pour le Super Utilisateur et l'Administrateur"

Option cochée par défaut dans les bases créées en 4D 2004.4.

13-2 - Dictionnaires personnalisés

• Utilisation de dictionnaires personnalisés pour chaque langue principale (Anglais, Français, Espagnol, Allemand).

Pour cela il suffit d'ajouter un ou des fichiers (nom libre) avec une extension .txt dans le dossier de la langue en question :
· MacOS : (Package 4D) :Contents :4D extensions :Spellchek
· Windows : dossier de l'application\4D\4D Extensions\Spellchek\

• En Client-Server les dictionnaires doivent être installés sur chaque poste client.

• Les mots sont séparés par un retour chariot. Il faut fournir un jeu de dictionnaire par plate-forme.

13-4 - Sauvegarde et restitution

• Il est désormais possible d'intégrer successivement plusieurs sauvegardes d'historique. On ouvre l'archive de la base puis dans le dialogue d'ouverture on peut choisir un fichier d'historique courant (.4DL) et archivé (.4BL). En choisissant un .4BL valide 4D affiche à nouveau le dialogue d'ouverture jusqu'à ce qu'un .4D valide soit sélectionné ;

• Possibilité d'effectuer des sauvegardes sur le poste de la base miroir ;

• Possibilité pour les applications compilées avec 4D Runtime volume License d'obtenir le dialogue d'ouverture de 4D (touche ALT enfoncée sous Windows, ou OPTION sous Mac0S) pour restituer une archive.

13-5 - Prise en charges des langues de droite à gauche sous Windows

• Inversion du sens de lecture à l'intérieur des textes, des objets graphiques, positions des objets sur les formulaires, position des boutons des fenêtres (case de fermeture, etc), menus, etc.

• Case à cocher dans les Préférences/Base de données/Script Manager
"Inversion des objets en mode Menus Crées : oui/non/automatique"

• Case à cocher dans les Propriétés du formulaire "ne pas inverser les objets (Windows)" pour personnaliser l'option au niveau d'un formulaire.

• Inversion des images :
case à cocher dans Liste des Propriétés/Image "effet miroir" (Windows)
(uniquement en Menus Crées, sous Windows, si mode "Droite à gauche").

• Modification de commande : FIXER PARAMETRE BASE (voir 13.7)

• Nouvelle commande : LIRE PARAMETRE FORMULAIRE (voir 13.8)

13-6 - Générateur d'applications

• On peut forcer l'affichage du dialogue de connexion avec ALT (Windows) ou Option (Mac) lors du lancement de l'application cliente.

• On peut prédéfinir un chemin d'accès personnalisé (absolu ou relatif) pour le fichier de données.

13-7 - Commande modifiées

FIXER PARAMETRE BASE({Table ;}TCP_NODELAY/33 ; 0/1)
FIXER PARAMETRE BASE({Table ;}Numero du port client serveur/35 ; 19813/xxxxx)
FIXER PARAMETRE BASE({Table ;}Signature WEDD/36 ; chaine de 1 à 255 caractères)
FIXER PARAMETRE BASE({Table ;}Inversion des objets/37 ; 0/1/2)
0 mode désactivé, 1 mode automatique, 2 mode activé.

Commande DOM ECRIRE VALEUR ELEMENT XML
Notation Xpath désormais possible pour accéder à l'élément à définir.

APPELER SUR A PROPOS peut désormais être exécutée sur le poste serveur,
par l'intermédiaire de la méthode base Sur démarrage serveur, ou d'une procédure stockée.

13-8 - Nouvelle commande

LIRE PARAMETRE FORMULAIRE ({Table ;}formulaire ;selecteur ;valeur)
Selecteur : Objets non inversés
Valeur : 0 inversé, 1 non inversés

13-9 - 4D View

• Possibilité de désélection de cellules, lignes, colonnes.

• Possibilité de défilement d'une zone.

13-10 - 4D Pack

La commande AP Add table and fields retourne désormais un code différent en fonction de l'erreur rencontrée.

14 - Nouveautés 2004.5

Version certifiée MacIntel 10.4.8

Avec correction des problèmes d'arrondis et de troncatures rencontrés sur la plate-forme Mac OS X 10.4.8 Intel.

14-1 - ListBox

Nouvelle commande et commande modifiée

LIRE POSITION CELLULE LISTBOX ({*; }objet; colonne; ligne{; varCol})
retourne les numéros de la colonne et de la ligne correspondant à l'emplacement du dernier clic ou de la dernière action de sélection effectuée dans la list box désignée par * et objet.

SELECTIONNER LIGNE LISTBOX ({*; }objet; positionLigne{; action})
Permet de synchroniser la ListBox en utilisant des commandes 4D comme AJOUTER A TABLEAU.

14-2 - Commandes modifiées

• Dossier 4D
Dossier base (4)
Dossier base syntaxe unique (5)

• CHANGER DICTIONNAIRE
Nouveau dictionnaire :
· Dictionnaire norvégien

• Imprimer ligne
Autorise l'utilisation de plugin

• FIXER PARAMETRE BASE
Nouveaux sélecteurs :
· Numéro de port HTTPS 39 (4D Dimension, 4D Server)
· Client numéro de port HTTPS 40 (tous postes 4D Client utilisé comme serveur web)

• DOM creer element XML
• DOM chercher element XML
prise en charge de la notation XPath

14-3 - Format de date

• Nouvelle constante
ISO Date Heure

• Les formats d'affichage de date "Abrégé" et "Abrégé Jour Mois Année" ont été modifiés pour :
· Juin -> jun
· Juillet -> jul

14-4 - Module de sauvegarde

• Préférences/Sauvegarde/Stiliser le fichier d'historique :
se fera après la première sauvegarde

• Gestion de la taille du journal des sauvegardes
· Sauvegarde automatique à 10Mo
· Choix des informations stockées
· Arrêt de la sauvegarde sur le poste serveur (bouton ajouté)

14-5 - Divers

• Adresse IP des clients connectés au 4D Serveur
sont désormais affichés dans la fenêtre d'administration

• Suppression de l'option web "4DConnect"

14-6 - 4D Write

Depuis la version 2004.2, l'exportation était effectuée uniquement en HTML 4.0.
La version 2004.5 rétablit la possibilité d'exporter des documents au format HTML 3.2 car seule l'importation HTML 3 est prise en charge.

15 - Questions-réponses

Document publié également sur notre site web www.4D.fr, rédigé par Yves Casquel, Ingénieur Support Technique 4D SA et le Support Technique 4D SA.

La version 2004 a introduit une grande amélioration en matière de gestion des formulaires utilisés pour un affichage sous forme de liste. En effet cette version, contrairement aux versions précédentes, uniformise les différentes utilisations des formulaires de " sortie " pour un affichage sous la forme d'une liste.

Dans les versions précédentes, trois types de formulaires pouvaient être utilisés sous forme de liste :

• formulaire de sortie en mode utilisation : saisissable en liste

• formulaire de sortie utilisé avec les commandes : VISUALISER SELECTION et MODIFIER SELECTION : non saisissable en liste

• formulaire de sortie utilisé dans une table incluse : impossibilité d'utiliser la sélection de ligne (multisélection du mode utilisation)

Malheureusement, ces trois modes d'utilisation entraînaient une mise en œuvre ainsi que des choix d'utilisation différents.

La version 2004 uniformise le mode de fonctionnement des formulaires utilisés en mode liste dans les trois cas illustrés ci-dessus. Quelques différences , minimes, sont à souligner pour les sous-formulaires.

15-1 - Rappel sur quelques notions fondamentales

• Sélection courante

Lorsque vous effectuez des opérations sur des données, vous sélectionnez le groupe d'enregistrements avec lequel vous voulez travailler. Ce groupe d'enregistrements est appelé "sélection courante". La sélection courante peut contenir un, plusieurs ou tous les enregistrements d'une table. Chaque table dispose de sa propre sélection courante d'enregistrements.

• Enregistrement courant

Cas général : lorsque 4D établit une sélection courante, il charge en mémoire le premier enregistrement de la sélection. Cet enregistrement est appelé "Enregistrement courant". Dans certains cas particuliers, il peut arriver qu'il n'y ait pas d'enregistrement courant ou que l'enregistrement courant n'appartienne pas à la sélection courante. Dans d'autres cas, l'enregistrement courant, bien que défini, n'est pas chargé en mémoire - on parle alors de "pointeur d'enregistrement courant".

• Ligne surlignée utilisée dans les formulaires affichés sous forme de liste

Celle-ci correspond à l'enregistrement courant dans le cas de l'utilisation de formulaire affiché sous forme de liste dont la propriété "mode de sélection" (voir ci-dessous) est "ligne unique". Dans l'autre cas du mode de sélection dit "lignes multiples" (voir ci-dessous), l'enregistrement courant n'est pas affecté par l'action de surlignage d'un utilisateur ou par l'action de commandes du langage 4D qui permettent le surlignage.

15-2 - Présentation des propriétés des sous-formulaires en version 2004 et de la compatibilité assurée par cette version

Dans le cadre de bases converties, 4D propose une propriété de sous formulaire supplémentaire pour assurer la compatibilité des bases. Cette propriété n'apparaît plus lors de la création d'une base en version 2004.

Il s'agit de la propriété : double clic sur ligne vide.

Propriétés d'une base convertie en 2004

Propriétés d'une base créée en 2004

Il faut cependant être attentif sur la propriété "Double-clic sur ligne vide" des bases converties. En effet, il est déconseillé d'utiliser cette propriété pour permettre de rendre les applications conformes aux recommandations ergonomiques de chaque OS.

15-3 - Pourquoi l'enregistrement courant n'est-il plus chargé lors de l'utilisation d'un formulaire liste si le mode de sélection choisi est : ligne unique ?

Tout affichage ou rafraîchissement, de la fenêtre qui contient un formulaire affiché sous la forme d'une liste, provoqué par le système (OS), activera le mécanisme de déchargement de l'enregistrement courant mais conservera la position du pointeur d'enregistrement courant.

Ce nouveau principe impose l'utilisation de la commande CHARGER ENREGISTREMENT qui provoquera le chargement de l'enregistrement courant pour obtenir son contenu.

Dans certains cas, cette commande devra être placée dans l'événement formulaire "sur chargement" du formulaire principal.

15-4 - Pourquoi le rafraîchissement d'une fenêtre provoque le déchargement de l'enregistrement courant d'un formulaire affiché sous forme de liste ?

Le mécanisme de la prise de focus par un objet 4D provoque le rafraîchissement de la fenêtre de premier plan ce qui entraîne le déchargement de l'enregistrement courant dans les formulaires affichés sous forme de liste.

Ce nouveau principe obligera le développeur, dans certain cas, à utiliser la commande CHARGER ENREGISTREMENT.

Remarque :
un objet de type bouton peut être focusable.

15-5 - Pourquoi y a-t-il, dans certains cas, un enregistrement surligné automatiquement dans un formulaire affiché sous forme de liste lors d'un premier affichage ?

Ce phénomène dépend du choix du mode de sélection utilisé.

Si le mode de sélection choisi est :

• mode ligne unique

4D surligne automatiquement l'enregistrement courant du formulaire affiché sous forme de liste.
L'enregistrement courant n'est pas chargé.
Il est cependant possible d'utiliser la commande ALLER DANS SELECTION ([table] ;0) qui provoquera le déchargement de l'enregistrement courant ainsi que l'effacement du pointeur d'enregistrement courant.
Il n'y aura alors plus d'enregistrement surligné.

L'ensemble de ces commandes peuvent se situer dans l'événement formulaire Sur chargement.

Voir la question : "Comment maîtriser le surlignage dans les formulaires affichés sous forme de liste par programmation ?"

• mode multiligne

L'utilisation de ce mode de sélection ne provoque aucun surlignage de ligne de manière automatique lors du premier affichage du formulaire.
L'enregistrement courant est déchargé.
Les données de celui-ci ne sont donc pas disponibles dans l'événement formulaire Sur clic.

Remarques :
Ces modes de sélection sont paramétrables dans :
· Les commandes MODIFIER SELECTION et VISUALISER SELECTION à l'aide des nouvelles options.
· Les propriétés des formulaires inclus.

15-6 - Pourquoi n'y a-t-il plus de partie blanche dans les formulaires affichés sous forme de liste ?

Dans le cadre d'une volonté de rendre 4D (version 2004) conforme aux recommandations ergonomiques de chaque système (OS), le comportement des formulaires utilisés sous forme de liste a changé.

La version 2004 n'affiche cette partie vide de tout enregistrement que lorsque le nombre d'enregistrements est inférieur au nombre d'enregistrements affichables dans la fenêtre qui contient cette liste. Dans l'autre cas c'est le dernier enregistrement qui forme le bord inférieur de la fenêtre.

Remarque :
en version 2003 il s'agissait d'une partie blanche. La version 2004 traite cet emplacement comme une partie vide de tout enregistrement.

Les applications qui présentent des listes d'enregistrements, ne permettent pas d'actions utilisateur dans les parties vides (ou blanche) de la fenêtre si celle-ci n'est pas complètement utilisée pour l'affichage d'informations.

Dans les versions précédentes de 4D, il était possible d'effectuer un "double clic" dans cette partie blanche pour ajouter un enregistrement. Ce n'est plus le cas pour les formulaires qui sont créés en version 2004.

Les formulaires convertis suivent toujours le principe des versions précédentes sauf pour ceux dont les propriétés auraient été modifiées.

Remarque :
Ce principe ne permet plus la création d'enregistrement si l 'emplacement réservé à l'affichage de la liste est complet.

15-7 - Pourquoi vaut-il mieux ne pas utiliser la propriété "double clic sur ligne vide" des formulaires listes et inclus qui ont été convertis en version 2004?

Cette propriété a été ajoutée à la version 2004 afin d'assurer une compatibilité des versions précédentes. Cette propriété est seulement disponible pour des formulaires qui ont été convertis. Elle n'apparaît pas sur les formulaires créés en version 2004.

Il est conseillé, dans le cadre du respect de la nouvelle ergonomie de la version 2004, de ne pas utiliser cette propriété.

Si cette propriété est utilisée, elle ne permettra pas la création d'enregistrement si l 'emplacement réservé à l'affichage de la liste est complet.

15-8 - Comment ajouter des enregistrements d'une manière autre que par le double clic sur la partie blanche d'une liste en version 2004 ?

• L'association d'un bouton et d'une action automatique suivante : Ajouter sous enregistrement

Ce mécanisme existait dans les versions précédentes.
La version 2004 a apporté une possibilité supplémentaire : cette action automatique peut être utilisée dans les formulaires de sorties associés à la commande MODIFIER SELECTION ainsi que dans les formulaires de sortie utilisés comme inclus.

• L'association d'un bouton et d'une méthode-objet
Ce script contiendra la commande AJOUTER ENREGISTREMENT

Remarques :

l'emplacement de ces boutons utilisés dans un formulaire sous forme de liste est différent suivant le mode d'utilisation de ce formulaire :

- Cas d'un formulaire principal qui contient un formulaire inclus
Les boutons associés au formulaire inclus peuvent se situer dans le formulaire principal.

- Cas d'un formulaire inclus (nouveauté 2004)
Les boutons peuvent se situer dans les zones d'entête, de rupture.

- Cas d'un formulaire affiché sous forme de liste (non inclus)
Les boutons peuvent se situer dans les zones d'entête, de rupture ou de pied de page.

• L'association d'une ligne de menu et d'une méthode.
Cette méthode contiendra la commande CREER ENREGISTREMENT, ou toutes commandes susceptibles de changer la sélection du formulaire inclus.

• Utiliser le système de raccourci de touche situé dans les préférences comme le montre l'image ci-dessous :

Remarques :

Il est possible d'utiliser les actions automatiques et commandes suivantes :

· Supprimer sous enregistrement
· Modifier sous enregistrement
· MODIFIER ENREGISTREMENT
· SUPPRIMER ENREGISTREMENT

dans le cadre d'un des quatre principes évoqués ci-dessus.

15-9 - Quel mode de sélection est utilisé pour les formulaires affichés sous forme de liste lorsqu'ils sont convertis en version 2004.

Le tableau ci-dessous présente le modèle de conversion des formulaires affichés sous forme de liste liée à cette nouvelle propriété.

Conversion des modes d'utilisation 2003 en mode d'utilisation en 4D 2004 :

Mode d'utilisation du formulaire en version 2003

Mode de sélection en 4D 2004

Sous formulaire Saisissable
Double cliquable

Saisissable en liste
Double-clic sur ligne : Modifier enregistrement
Double-clic sur ligne vide : Ajouter enregisterment
Mode de sélection : aucun

Sous formulaire Non-modifiable

Non-saisissable en liste
Double-clic sur ligne : Ne rien faire
Double-clic sur ligne vide : Ne rien faire
Mode de sélection : aucun

Sous formulaire Sélectionnable
Double cliquable

Non-saisissable en liste
Double-clic sur ligne : Afficher enregistrement
Double-clic sur ligne vide : Ne rien faire
Mode de sélection : ligne unique

Formulaire liste utilisé avec les commandes suivantes :
MODIFIER SELECTION
VISUALISER SELECTION

Multiligne

Formulaire liste utilisé en mode utilisation

Multiligne

La version 2004 propose trois modes de sélection qui sont mis en œuvre dans les formulaires affichés sous forme de liste (inclus compris) qui permettent de sélectionner des enregistrements.

Voici ces trois modes :

• Ligne unique (sélection d'une seule ligne)
• Multilignes (sélection d'une ou plusieurs lignes)
• Aucun (aucune sélection possible)

La mise en place de ce nouveau mode de sélection permet :

• A l'utilisateur, grâce aux flèches de déplacement et combinaisons de touches telles que shift et touche ou à l'aide de la souris, de surligner un ou une suite d'enregistrements selon les propriétés du mode de sélection (ligne unique ou multiples) paramétrées par le développeur dans les formulaires utilisés sous forme de liste. L'utilisateur ne pourra effectuer aucun surlignage si la propriété : mode de sélection est paramétrée sur " aucun ".
• Au développeur de maîtriser ce mode par programmation.
Cette partie est traitée dans la question : "Comment maîtriser le surlignage dans les formulaires affichés sous forme de liste par programmation ?"

15-10 - Pourquoi, l'événement formulaire "sur clic" ne provoque-t-il pas systématiquement le chargement de l'enregistrement courant ?

Ce comportement se rencontre uniquement si le formulaire utilisé sous forme de liste est paramétré pour fonctionner avec les modes de sélection suivant :

· multiligne
· aucun

Dans le cas du mode de sélection "multiligne", le clic est uniquement réservé au surlignage ou à l'effacement du surlignage par action inverse.

Si le mode "aucun" est utilisé, aucune action n'est possible.

Ce comportement est donc lié au choix du mode de sélection.

Pour de plus ample information sur ce mode, veuillez vous reporter à la question : "Quel mode de sélection est utilisé pour les formulaires affichés sous forme de liste lorsqu'ils sont convertis en version 2004 ?"

15-11 - Pourquoi, l'événement formulaire "Sur affichage corps" est-il appelé lors de l'affichage de lignes blanches ?

L'événement formulaire Sur affichage corps est désormais activé lors de l'affichage de chaque ligne contenue dans la fenêtre que compose le formulaire affiché sous forme de liste.

Cela implique que cet événement est aussi généré lors de l'affichage de lignes vides. Celles-ci peuvent d'ailleurs aussi correspondre à des enregistrements détruits de la sélection (cas des modes client serveur ou multiprocess).

Il faut donc aménager le code en conséquence pour que l'affichage ou l'intégrité du formulaire affiché sous forme de liste ne soit pas perturbé.

Pour éviter d'exécuter du code qui perturberait l'affichage, il est conseillé d'utiliser ce principe :

Au cas ou
: (Evenement formulaire = sur affichage corps)
Si (Enregistrement charge)
code qui correspond à l'affichage des enregistrements
Sinon
action sur les lignes du formulaire affiché sous forme de liste qui ne possèdent pas d'enregistrements
Fin de si
Fin de cas

En version 2004, 4D affiche aussi les lignes vides (celles qui ne possèdent pas d'enregistrements associés) afin de respecter les recommandations ergonomiques de chaque système (OS).

15-12 - Pourquoi le triangle clignotant situé en haut à gauche d'un formulaire inclus lors de sa sélection n'existe plus ?

Dans le cadre d'une volonté de rendre 4D (version 2004) conforme aux recommandations ergonomiques de chaque système (OS), la représentation graphique de la prise du focus par les formulaires inclus a changé. C'est pour cette raison que le petit triangle noir des versions précédentes n'est plus utilisé.

La symbolisation de la prise de focus, en version 2004, suit maintenant les règles de l'OS utilisé. Il est cependant possible de simuler l'ancien mécanisme. Pour cela, il suffit de créer une image dans le formulaire, à côté du formulaire inclus, puis d'activer celle-ci grâce aux événements formulaires Sur gain focus et Sur perte focus de la méthode formulaire du formulaire qui accueille le formulaire inclus.

15-13 - Pourquoi, certains objets (champs ou variables) n'apparaissent plus dans un formulaire affiché sous forme de liste en version 2004 ?

Le mécanisme d'affichage des objets, en version 2004, a été optimisé. Cette optimisation entraîne une organisation plus fine des objets mais aussi plus efficace pour l'affichage.

Tout objet situé dans l'une des zones suivantes d'un formulaire affiché sous forme de liste :

· zone d'en-tête

· zone de corps

· zone de rupture

doit, obligatoirement faire partie intégrante de cette zone. Aucun chevauchement d'objet (au pixel près) sur l'un des taquets qui forment la limite de la zone de " corps " n'est admis sous peine d'une perturbation de l'affichage dû au fait de l'optimisation de celui-ci.

Dans le cadre d'une conversion, il sera prudent de vérifier les taquets des formulaires affichés sous forme de liste.

15-14 - Pourquoi, le décor des formulaires affichés sous forme de liste, n'a plus la même apparence en version 2004 ?

Le mécanisme d'affichage des objets, en version 2004, a été optimisé. Cette optimisation entraîne une organisation plus fine des objets mais aussi plus efficace pour l'affichage.

Tout objet, généralement d'ornement, dont la partie supérieure débute dans la zone d'en-tête et la partie inférieure se termine dans la zone de rupture est désormais dessiné en une seule fois, par extension de la hauteur de l'objet

15-15 - Pourquoi la saisie en liste semble ne pas fonctionner ?

La version 2004, dans le cadre de la mise en conformité avec les différents systèmes (OS), a uniformisé la gestion du clic.

• Un premier clic permet de sélectionner la ligne à éditer.
• Un second clic sur l'élément désiré permet de modifier cet élément. Un petit délai d'attente est généré entre le second clic et le passage en mode édition afin de déterminer s'il ne s'agissait pas d'un double clic.

Si le délai d'attente entre deux clics est très rapproché il s'agit d'un double clic sinon le clic est interprété comme simple clic.

15-16 - Comment permettre l'édition d'un champ ou variable dans un formulaire utilisé sous la forme de liste par programmation ?

Le langage propose la nouvelle commande EDITER ELEMENT.

Dans le cadre des formulaires inclus et des formulaires liste, la commande passe en édition le premier champ de la ligne spécifiée, dans l'ordre de saisie.

EDITER ELEMENT ({*;} "Nom du sous-formulaire"{; élément})
Elément : n° de la ligne en mode multilignes
Si rien n'est indiqué, s'applique à l'élément courant
Si pas d'élément courant, s'applique au premier élément de la liste.

L'utilisation de cette commande active les événements formulaire :
· Sur nouvelle selection
· Sur chargement ligne

Pour passer la liste ou le sous-formulaire en saisie, on peut aussi utiliser la commande :
· CHOIX SAISISSABLE([Table] ;Vrai)
· CHOIX SAISISSABLE(*;"Nom du Sousform";Vrai)

CHOIX SAISISSABLE fonctionne avec un sous-formulaire uniquement si elle se trouve dans la méthode formulaire du sous-formulaire.

15-17 - Comment initialiser les variables d'une ligne qui passe en mode édition par programmation ou par une action de l'utilisateur ?

La modification du mécanisme de l'événement formulaire , en version 2004, (voir la question : "Pourquoi, l'événement formulaire sur affichage corps est-il appelé lors de l'affichage de lignes blanches ?") a entraîné la création d'un nouvel événement :

Sur chargement ligne

Présentation du mécanisme de l'événement Sur chargement ligne

Cet événement est activé si le formulaire est saisissable sous forme de liste. Dans ce cas, il peut être provoqué :
- par l'action de l'utilisateur qui clique dans une zone saisissable qui passe en édition
- par la commande EDITER ELEMENT

Programmation associée à l'événement Sur chargement ligne

Il est possible d'initialiser les variables qui sont en relation avec l'enregistrement courant afin de présenter les bonnes valeurs au moment de l'édition. En effet, le mécanisme de l'événement formulaire Sur affichage corps met a jour les variables de chaque enregistrement en cours d'affichage. Ces valeurs peuvent ne pas correspondre aux valeurs de l'enregistrement courant qui passe en mode édition.

L'édition d'un enregistrement, dans un formulaire affiché sous forme de liste, qui possède des variables, rend quasiment obligatoire l'utilisation de cet événement.

15-18 - Comment maîtriser le surlignage dans les formulaires affichés sous forme de liste par programmation ?

Le langage permet de surligner un ou une suite d'enregistrements suivant le mode de sélection choisi dans les propriétés du formulaire.

Pour les formulaires utilisés comme formulaire inclus, il ne faut pas associer de relation entre le mécanisme de surlignage (enregistrement(s) sélectionné(s)) et le mécanisme de l'ensemble nommé "user set". Pour ce cas précis, l'ensemble "user set" n'est pas créé.

Le choix d'un mode implique une programmation différente.

- Le mode : ligne unique

Le surlignage d'un enregistrement peut être réalisé à l'aide de la commande du langage ALLER DANS SELECTION ou tous autres commandes qui permettent le déplacement de l'enregistrement courant ou du mécanisme des liens automatiques qui feront de l'enregistrement courant l'enregistrement surligné.

La nouvelle valeur acceptée, à partir de la version 2004.1 , par la commande :
ALLER DANS SELECTION (table ;0) (nouvelle valeur : zéro)
provoque le déchargement de l'enregistrement courant ainsi que l'effacement du pointeur d'enregistrement courant. Il n'y aura alors plus d'enregistrement surligné.

- Le mode : multilignes

Le surlignage d'un ou d'une suite d'enregistrements peut être réalisé à l'aide de la commande MARQUER ENREGISTREMENTS. Cette commande active automatiquement le mécanisme de marquage des enregistrements mais décharge l'enregistrement courant sans affecter sa position. Le pointeur d'enregistrement courant n'est pas déplacé.

Remarque :
Les deux modes de sélection, cités ci-dessus, sont paramétrables dans :
· Les commandes MODIFIER SELECTION et VISUALISER SELECTION à l'aide des nouvelles options
· Les propriétés des formulaires inclus

15-19 - Comment savoir si l'utilisateur a surligné un ou des enregistrements dans un formulaire affiché sous forme de liste par programmation ?

L'événement formulaire Sur nouvelle sélection permet de trouver, par programmation, les enregistrements surlignés.

Cet événement pourrait s'appeler "Sur nouvelle sélection utilisateur". Il est activé lorsque l'utilisateur surligne chaque enregistrement.

Suivant le mode de sélection choisi dans les propriétés du formulaire, la méthode de recherche n'est pas identique :

• Le mode : ligne unique

La fonction Numero dans selection permet d'obtenir la position de l'enregistrement surligné dans la sélection.

• Le mode : multilignes
La commande LIRE ENREGISTREMENTS MARQUES (nouveauté 2004) permet au développeur d'obtenir la liste des enregistrements marqués par l'utilisateur pour les formulaires affichés sous forme de liste. Cette commande n'est pas utilisable en mode ligne unique.

• Le mode : aucun
L'utilisateur ne peut pas surligner de ligne.
L'événement "Sur nouvelle sélection" est inactif.

Remarque :
Les trois modes de sélection, cités ci-dessus, sont paramétrables dans :
· Les commandes MODIFIER SELECTION et VISUALISER SELECTION à l'aide des nouvelles options
· Les propriétés des formulaires inclus

15-20 - Quels sont les nouveaux événements principaux utilisables avec les formulaires sous forme de liste ?

Dans les versions précédentes, les événements "clic" et "double clic" étaient souvent utilisés pour la gestion des enregistrements dans les formulaires inclus.

En version 2004 sont apparus deux nouveaux événements :

- Sur nouvelle selection

Modification de l'enregistrement courant ou modification de la sélection courante dans un formulaire liste, un sous-formulaire ou une ListBox

Veuillez vous reporter a la question :
"Comment savoir si l'utilisateur a surligné un ou des enregistrements dans un formulaire affiché sous forme de liste par programmation ?"

- Sur chargement ligne

Au moment du passage en édition en Saisie en Liste.

Veuillez vous reporter aux questions :
"Comment initialiser les variables d'un enregistrement qui passe en mode édition par programmation ou par une action de l'utilisateur ?"
"Comment permettre l'édition d'un champ ou variable dans un formulaire utilisé sous la forme de liste par programmation ?"

15-21 - Pourquoi, les formules fichier ne sont pas toujours appelées avec la version 2004 ?

Les formules-fichiers associées à une table dont un formulaire est utilisé comme sous formulaire ne sont plus appelées.

Ce mécanisme n'est pas appelé même si dans les préférences de la base, dans l'onglet Application, item Compatibilité, l'option "Utiliser les formules-fichiers de la V 5.x.x" est cochée.

Cependant ce mécanisme reste actif pour les formulaires utilisés avec les commandes VISUALISER SELECTION et MODIFIER SELECTION si l'option ci-dessus est activée.

Remarque :
Il faut signaler que ce mécanisme est totalement obsolète depuis la version 6.0 et qu'il est fortement conseillé, pour cette raison, d'utiliser le mécanisme des triggers.