GRATUIT

Vos offres d'emploi informatique

Développeurs, chefs de projets, ingénieurs, informaticiens
Postez gratuitement vos offres d'emploi ici visibles par 4 000 000 de visiteurs uniques par mois

emploi.developpez.com

Developpez.com - 4D
X

Choisissez d'abord la catégorieensuite la rubrique :


Nouvelles commandes 4D Pack en 2004

Date de publication : Mai 2005

Par Jamras KOMONCHAROENSIRI (Technical Support 4D Inc.)
 

De nouvelles commandes sont apparues dans 4D Pack 2004. Trois d'entre elles sont implémentées pour donner plus de flexibilité aux développeurs 4D en gérant la structure de la base (table, champs, relations et objets par défaut). Cette note technique aborde ces nouvelles commandes et donnent quelques exemples sur la façon de les utiliser.

I. Résumé
II. Commande AP Add table and fields (4D 2004)
III. Commande AP Create relation (4D 2004.1)
IV. Commande AP Get templates (4D 2004.1)
V. Exemple d'utilisation des nouvelles commandes utilitaires 4D Pack
Partie 1 : Base HR Manager
Partie 2 : Base démo. NouvelleBase
VI. Conclusion
VII. Voir aussi
VIII. Base exemple


I. Résumé

Par le passé, la structure d'une base ne pouvait être construite que manuellement à partir du mode structure. Si vous vouliez créer une table ou des champs, ou un lien, vous deviez ouvrir le Mode Structure et pas à pas créer une table, ajouter les champs, et tracer les liens entre les tables. Bien sûr ce n'était pas vraiment un problème car c'était une partie de la phase de création. Mais vous pouviez aussi dupliquer une partie de la structure et la compléter.

Pour cela, le meilleur choix est 4D Insider. 4D Insider vous permet de copier les objets comme une table d'une base à une autre. Si vous souhaitez récupérer une structure autre que 4D, le seul choix possible était celui de le faire manuellement.

A partir de 4D 2004.1, vous pouvez créer une table et un lien par programmation grâce aux nouvelles commandes 4D Pack. Ces nouvelles commandes sont : AP Add Table and fields, AP Create relation. Une commande supplémentaire, AP Get templates permet de récupérer la liste des modèles de formulaires.

Examinons chacune de ces commandes pour avoir une meilleure idée de ce qu'elle peuvent apporter.


II. Commande AP Add table and fields (4D 2004)

La commande AP Add table and fields était initialement créée pour les utilisateurs du plug-in 4D ODBC Pro. Un bon exemple en est la base 4D Assimilator. Cette commande donne la possibilité de créer par programmation une table et ses champs à partir d'une source ODBC. Cette base vous est fournie à titre d'exemple.

Syntaxe :

AP Add table and fields (nomTable; tabNomsChamps; tabTypesChamps; tabLongChamps{; modèleListe{; modèleDétaillé}}) -> Entier long

Paramètre

Type

Description


nomTable


Chaîne


Nom de la table à créer

tabNomsChamps

Tab chaîne

Tableau de noms de champs

tabTypesChamps

Tab Entier long

Tableau de types de champs

tabLongChamps Tab Entier long Tableau de longueurs de champs alpha
 

 

(0 pour les champs non alpha)

modèleListe

Alpha

Modèle à utiliser pour le formulaire sortie courant

modèleDétaillé

Alpha

Modèle à utiliser pour le formulaire entrée courant

Résultat Entier long Numéro de la table créée



La commande crée autant de champs dans la table qu'il y a d'éléments dans le tableau tabNomChamps, tabTypeChamps et tabLongChamps. Les informations passées dans chaque élément sont utilisées pour créer les champs correspondants. Le premier élément de ces tableaux est utilisé pour le premier champ et ainsi de suite.

Si tout s'exécute correctement, la commande retourne le numéro de la table créée. Ce numéro, automatiquement assigné par 4D, correspond à la valeur retournée par l'expression Nombre de tables + 1.

Par exemple :

    TABLEAU ALPHA(31;$tabNomsChamps;4)

    TABLEAU ENTIER LONG($tabTypesChamps;4)
    TABLEAU ENTIER LONG($tabLongChamps;4)
    C_ENTIER LONG($NumTable)

    $tabNomsChamps{1}:="IDSociété"
    $tabNomsChamps{2}:="Nom"
    $tabNomsChamps{3}:="Prénom"
    $tabNomsChamps{4}:="Age"

    $tabTypesChamps{1}:=Est un champ alpha
    $tabTypesChamps{2}:=Est un champ alpha
    $tabTypesChamps{3}:=Est un champ alpha
    $tabTypesChamps{4}:=Est un entier long

    $tabLongChamps{1}:=5
    $tabLongChamps{2}:=20
    $tabLongChamps{3}:=20
    $tabLongChamps{4}:=0

    $NumTable:=AP Add table and fields ("Contacts";$tabNomsChamps;$tabTypesChamps;$tabLongChamps)




Une nouvelle table nommée "Contacts" est alors créée :

Pictures 0128x0137



La valeur retournée dans $NumTable sera le numéro de la table. Si la valeur retournée est 0, cela signifie qu'un ou plusieurs paramètres sont invalides.

Les deux derniers paramètres, modèleListe et modèleDétaillé sont optionnels. Ils peuvent être utilisés pour spécifier le modèle à utiliser pour construire les formulaires Entrée et Sortie.

La ligne de code suivante appliquera le modèle "XP" aux formulaires Entrée et Sortie :

$NumTable:=AP Add table and fields ("Contacts";$tabNomsChamps;$tabTypesChamps;$tabLongChamps;"XP";"XP")

Le nom du modèle spécifié doit faire partie de la liste des modèles proposée par l'assistant de création des formulaires :

Pictures 0475x0479
info Note : la commande supporte la création de tous les type de champs excepté des sous-tables.

III. Commande AP Create relation (4D 2004.1)

La commande AP Create relation vous permet de créer un lien entre deux tables. L'exécution de la commande est équivalente au lien tracé au niveau de la structure.

Syntaxe :

AP Create relation (numTableSource; numChampSource; numTableDest; numChampDest) -> Entier long

Paramètre Type Description
numTableSource Entier long Numéro de la table de départ du lien
numChampSource Entier long Numéro du champ de départ du lien
numTableDest Entier long Numéro de la table d'arrivée du lien
numChampDest Entier long Numéro du champ d'arrivée du lien
Résultat Entier long Code d'erreur (0=pas d'erreur)



Dans numTableSource et numChampSource, passez le numéro de la table et du champ sources, et dans numTableDest et numChampDest, passez le numéro de la table et du champ de destination.

Imaginons deux tables nommées [Contacts] et [Société]

Pictures 0348x0247



La commande AP Create relation peut être utilisée pour établir une relation entre ces tables : [Société] est la table 1 (table n° 1, table de destination) et [Contacts] est la table N (table n° 2, table source). Pour créer la relation, la commande sera :

    $erreur:=AP Create relation (2;1;1;1)

Pictures 0348x0247



Le lien est créé avec les propriétés standards :

Lien aller :
   - lien aller auto : décoché
   - liste des enregistrements liés : décoché
   - confirmation de création : coché

Lien retour :
   - lien retour auto : décoché
   - mise à jour auto dans les sous-formulaires : décoché

Les options du lien peuvent être contrôlées par programmation en utilisant les commandes 4D gérant les liens. Elles peuvent aussi être modifiées manuellement au niveau de la Structure.


IV. Commande AP Get templates (4D 2004.1)

Syntaxe :

AP Get templates (tabNomsModèles) -> Entier long

Paramètre Type Description
tabNomsModèles Tableau alpha Noms des modèles


Exemple :   

    C_ENTIER LONG($erreur)

    TABLEAU ALPHA(255;tabNomsModèles;0)

    $erreur:=AP Get templates (tabNomsModèles)



Basé sur la liste des modèles montrés dans l'image précédente, la commande AP Get templates récapitule dans un tableau les modèles :

Pictures 0401x0247



Ces informations seront disponibles lorsque vous souhaiterez afficher la liste des modèles de formulaires dans la fenêtre Formulaire Utilisateur, où l'utilisateur pourra faire une sélection.


V. Exemple d'utilisation des nouvelles commandes utilitaires 4D Pack

Un autre moyen d'utiliser avantageusement les nouvelles commandes utilitaires 4D Pack est fourni avec cette note technique dans un formulaire de la base de démo "HR Manager". La base de démonstration vous montre comment, par programmation, extraire la Structure d'une base et la recréer dans une nouvelle base. Elle se décline en deux parties :


Partie 1 : Base HR Manager

Cette base contient plusieurs tables et liens qui seront exportés dans un fichier XML. L'image ci-dessous est celle de la structure de la base :

Pictures 0663x0420



Au démarrage de la base, une fenêtre apparaît avec l'image de la structure (telle que ci-dessus). Cliquez simplement sur le bouton "Export de la structure dans un fichier XML" et la structure de la base sera stocké dans le fichier "Structure.xml" dans le dossier de la base. Vous pouvez examiner ce fichier avec un éditeur xml ou texte. En voici un extrait :

Pictures 0421x0371
info Note : Les procédures utilisées pour l'export de la structure vers un fichier xml utilisent seulement les commmandes 4D (pas celles de 4D Pack). Vous pouvez voir le code complet dans le dossier "XML export structure" (partie "Démarrage" de l'explorateur de la base de démo.).

Partie 2 : Base démo. NouvelleBase

Cette base contient un ensemble de procédures qui construirent la structure (avec 4D Pack), basée sur les informations contenues dans le fichier "Structure.xml". En Mode Utilisisation ou en Mode Structure, exécutez la méthode "cln_ImportStructure".

Une fois que toutes les tables et les relations sont créées, la fenêtre de structure affichera toutes les tables en haut à gauche, ce qui est normal. Une fois les tables déplacées, vous devriez voir la structure de la première base exemple, avec en plus une [Table1] qui a été créée par défaut dans la nouvelle base. Les numéros des tables rajoutées ont donc été incrémentés de 1.

info Note : les procédures qui concernent la création de la structure et l'analyse du document XML sont regroupées dans la partie Démarrage de l'Explorateur, dossier "XML Import structure".

VI. Conclusion

Cette note technique vous a donné un aperçu des nouvelles commandes utilitaires de 4D Pack. Elle met en avant les capacités de ces commandes pour créer des tables et établir les relation entre elles, par programmation. Des bases exemples vous sont fournies pour permettre une meilleure compréhension de la manière d'utiliser ces nouvelles commandes.


VII. Voir aussi

Commandes 4D Pack :



Commandes pour XML :



VIII. Base exemple

Téléchargez la base exemple :

base exemple

__________________________________________________
Copyright © 1985-2009 4D SA - Tous droits réservés
Tous les efforts ont été faits pour que le contenu de cette note technique présente le maximum de fiabilité possible.
Néanmoins, les différents éléments composant cette note technique, et le cas échéant, le code, sont fournis sans garantie d'aucune sorte. L'auteur et 4D S.A. déclinent donc toute responsabilité quant à l'utilisation qui pourrait être faite de ces éléments, tant à l'égard de leurs utilisateurs que des tiers.
Les informations contenues dans ce document peuvent faire l'objet de modifications sans préavis et ne sauraient en aucune manière engager 4D SA. La fourniture du logiciel décrit dans ce document est régie par un octroi de licence dont les termes sont précisés par ailleurs dans la licence électronique figurant sur le support du Logiciel et de la Documentation afférente. Le logiciel et sa documentation ne peuvent être utilisés, copiés ou reproduits sur quelque support que ce soit et de quelque manière que ce soit, que conformément aux termes de cette licence.
Aucune partie de ce document ne peut être reproduite ou recopiée de quelque manière que ce soit, électronique ou mécanique, y compris par photocopie, enregistrement, archivage ou tout autre procédé de stockage, de traitement et de récupération d'informations, pour d'autres buts que l'usage personnel de l'acheteur, et ce exclusivement aux conditions contractuelles, sans la permission explicite de 4D SA.
4D, 4D Calc, 4D Draw, 4D Write, 4D Insider, 4ème Dimension ®, 4D Server, 4D Compiler ainsi que les logos 4e Dimension, sont des marques enregistrées de 4D SA.
Windows,Windows NT,Win 32s et Microsoft sont des marques enregistrées de Microsoft Corporation.
Apple, Macintosh, Power Macintosh, LaserWriter, ImageWriter, QuickTime sont des marques enregistrées ou des noms commerciaux de Apple Computer,Inc.
Mac2Win Software Copyright © 1990-2002 est un produit de Altura Software,Inc.
4D Write contient des éléments de "MacLink Plus file translation", un produit de DataViz, Inc,55 Corporate drive,Trumbull,CT,USA.
XTND Copyright 1992-2002 © 4D SA. Tous droits réservés.
XTND Technology Copyright 1989-2002 © Claris Corporation.. Tous droits réservés ACROBAT © Copyright 1987-2002, Secret Commercial Adobe Systems Inc.Tous droits réservés. ACROBAT est une marque enregistrée d'Adobe Systems Inc.
Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.
__________________________________________________
 



Valid XHTML 1.1!Valid CSS!

Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.
Contacter le responsable de la rubrique 4D