FIXER TITRES TABLES

4D - Documentation   Français   English   German   4e Dimension, Commandes par thèmes   4e Dimension, Liste alphabétique des commandes   4e Dimension, Constantes par thèmes   Retour   Précédent   Suivant

version 2004.2 (Modifiée)


FIXER TITRES TABLES (titresTables; numTables{; *})

ParamètreTypeDescription
titresTablesTableau AlphaNoms des tables tels qu'ils doivent apparaître
numTablesTableau NumNuméros des tables
*Utiliser les noms personnalisés dans l'éditeur de
formules

Description

FIXER TITRES TABLES vous permet de masquer, renommer et réordonner les tables de votre base lorsqu'elles apparaissent dans les éditeurs standard de 4e Dimension, comme l'éditeur de recherches, en mode Utilisation ou Menus créés.

Cette commande vous permet également de modifier les libellés des tables apparaissant dans vos formulaires, si vous avez utilisé des libellés dynamiques. Pour plus d'informations sur l'insertion de libellés de tables et de champs dynamiques dans les formulaires, reportez-vous au manuel Mode Structure.

Les tableaux titresTables et numTables doivent être synchronisés. Dans le tableau titresTables, vous passez les noms des tables tels que vous voulez qu'ils apparaissent. Les tables s'afficheront dans l'ordre défini par ces tableaux. Dans chaque élément du tableau numTables, passez le numéro de la table qui correspond au nom, nouveau ou ancien, de la table, et ce dans le même numéro d'élément que dans le tableau titresTables.

Si vous voulez masquer une table, ne la mettez pas dans les tableaux. Vous avez, par exemple, une base comprenant les tables A, B et C, créées dans cet ordre. Vous voulez que ces tables apparaissent sous les noms X, Y et Z. De plus, vous ne voulez pas faire apparaître la table B. Enfin, vous voulez que les tables soient dans l'ordre Z et X. Pour cela, vous passez dans le paramètre titresTables un tableau à deux éléments, Z et X, et vous passez dans le paramètre numTables un tableau à deux éléments, 3 et 1.

Le paramètre facultatif * vous permet d'indiquer si les noms personnalisés définis à l'aide de cette commande peuvent être ou non utilisés dans les formules de 4D.

Par défaut, lorsque ce paramètre est omis, les formules exécutées dans 4D ne peuvent pas utiliser ces noms personnalisés ; il est nécessaire d'utiliser les noms de tables véritables.

Si le paramètre * est passé, les noms définis par cette commande peuvent être utilisés dans les formules exécutées par 4e Dimension. Attention dans ce cas, les noms personnalisés ne doivent pas contenir de caractères "interdits" par l'interpréteur du langage de 4D, tels que -?*! (pour plus d'informations, reportez-vous à la section "Nommer les objets du langage 4D").

Note : Au niveau de l'éditeur de formules, l'exécution de cette commande sans le paramètre * ne modifie pas les éventuels paramétrages effectués précédemment avec le paramètre * . Autrement dit, l'éditeur de formules affiche toujours le nom personnalisé défini via le dernier appel de la commande avec le paramètre *.

FIXER TITRES TABLES ne modifie pas la structure de votre base. Cette commande n'affecte que l'utilisation ultérieure des éditeurs standard de 4e Dimension et des formulaires comportant des libellés dynamiques. L'aire de validité de la commande FIXER TITRES TABLES est la session. L'avantage, en Client/Serveur, est que plusieurs postes 4D Client peuvent "voir" simultanément votre structure d'une manière différente. Vous pouvez appeler FIXER TITRES TABLES autant de fois que vous voulez.

La commande FIXER TITRES TABLES est utile dans les cas suivants :

Traduction dynamique de votre base.

Affichage des tables dans l'ordre et avec les noms que vous voulez, indépendamment de leur définition.

Affichage des tables d'une façon qui dépend de l'identité ou des privilèges d'un utilisateur.

ATTENTION : FIXER TITRES TABLES n'annule pas l'effet de la propriété Invisible d'une table. Si vous avez défini une table en tant qu'invisible au niveau de la structure, elle n'apparaîtra pas, même si elle est spécifiée dans FIXER TITRES TABLES.

Exemple

Vous développez une application 4D destinée au marché international. Vous avez donc besoin de prendre en compte les nécessités de traduction et de localisation. Pour les éditeurs standard de 4e Dimension qui apparaissent en mode Utilisation ou Menus créés et vos formulaires utilisant des libellés dynamiques, vous pouvez traiter cette question en utilisant une table [Traductions] et quelques méthodes pour créer et utiliser les traductions pour chaque langue que vous voulez.

Dans votre base, vous créez la table suivante :

Ensuite, créez la méthode projet traduire_TABLES_ET_CHAMPS ci-dessous. Cette méthode analyse la structure de votre base dans la table [Traductions] et crée les enregistrements correspondant à la langue passée comme paramètre.

     ` méthode projet traduire_TABLES_ET_CHAMPS
     ` traduire_TABLES_ET_CHAMPS ( Alpha )
     ` traduire_TABLES_ET_CHAMPS ( Langue )

   C_ALPHA(31;$1)
   C_ENTIER LONG($vlTable;$vlChamp)

   Boucle ($vlTable;1;Nombre de tables) ` Passer sur chaque table
         ` Vérifier s'il existe une traduction du nom de la table pour la langue spécifiée
      CHERCHER([Traductions];[Traductions]NomActuel=Nom de la table($vlTable);*) 
      CHERCHER([Traductions]; & ;[Traductions]Langue=$1)
      Si (Enregistrements trouves([Traductions])=0)
            ` Sinon, créer l'enregistrement
         CREER ENREGISTREMENT([Traductions])
         [Traductions]NomActuel:=Nom de la table($vlTable)
         [Traductions]Langue:=$1
            ` Le nom de la table traduit a besoin d'être saisi
         STOCKER ENREGISTREMENT([Traductions])
      Fin de si 
      Boucle ($vlChamp;1;Nombre de champs($vlTable))
            ` Vérifier s'il existe une traduction pour le nom du champ dans la langue spécifiée
         CHERCHER([Traductions];[Traductions]NomActuel=Nom du champ($vlTable;$vlChamp);*)
         CHERCHER([Traductions]; & ;[Traductions]Langue=$1)
         Si (Enregistrements trouves([Traductions])=0)
               ` Sinon, créer l'enregistrement
            CREER ENREGISTREMENT([Traductions])
            [Traductions]NomActuel:=Nom du champ($vlTable;$vlChamp)
            [Traductions]Langue:=$1
               ` Le nom du champ traduit a besoin d'être saisi
            STOCKER ENREGISTREMENT([Traductions])
         Fin de si 
      Fin de boucle 
   Fin de boucle 

Si maintenant vous exécutez la ligne suivante, vous pouvez créer autant d'enregistrements qu'il vous faut pour la traduction espagnole de vos tables et champs :

   traduire_TABLES_ET_CHAMPS ("Espagnol")

Une fois que cette ligne de code est appelée, vous pouvez saisir une traduction dans le champ [Traductions]NomTraduit pour chacun des nouveaux enregistrements.

Enfin, chaque fois que vous voulez afficher en espagnol les éditeurs standard de 4D ou les formulaires avec libellés dynamiques, vous exécutez la ligne suivante :

   TABLES_ET_CHAMPS_LOCALISES ("Espagnol")

La méthode projet TABLES_ET_CHAMPS_LOCALISES est la suivante :

      ` Méthode objet TABLES_ET_CHAMPS_LOCALISES
      ` TABLES_ET_CHAMPS_LOCALISES ( Alpha )
      ` TABLES_ET_CHAMPS_LOCALISES ( Langue )

   C_ALPHA(63;$1)
   C_ENTIER LONG($vlTable;$vlNumTable;$vlChamp;$vlNumChamp)

   $vlNumTable:=Nombre de tables  ` Obtenir le nombre de tables dans la base
   TABLEAU ALPHA(31;$asNomTable;$vlNumTable)  ` Initialiser les tableaux pour FIXER TITRES TABLES
   TABLEAU ENTIER($aiNuméroTable;$vlNumTable)
   Boucle ($vlTable;1;$vlNumTable)  ` Passer sur chaque table
      $asNomTable{$vlTable}:=Nom de la table($vlTable)  ` Obtenir le nom de la table
      $aiNuméroTable{$vlTable}:=$vlTable  ` Stocker le numéro de la table
      CHERCHER([Traductions];[Traductions]NomActuel=$asNomTable{$vlTable};*)  ` Chercher la traduction
      CHERCHER([Traductions]; & ;[Traductions]Langue=$1)
      Si (Enregistrements trouves([Traductions])>0)
         $asNomTable{$vlTable}:=[Traductions]NomTraduit  ` Si disponible, utiliser le nom localisé de la table
      Fin de si 
      $vlNumChamp:=Nombre de champs($vlTable)  ` Obtenir le nombre de champs dans la table
         ` Initialiser les tableaux pour FIXER TITRES CHAMPS
      TABLEAU ALPHA(31;$asNomChamp;$vlNumChamp) 
      TABLEAU ENTIER($asNumChamp;$vlNumChamp)
      Boucle ($vlChamp;1;$vlNumChamp)  ` Pour chaque champ
         $asNomChamp{$vlChamp}:=Nom du champ($vlTable;$vlChamp)  ` Obtenir le nom du champ
         $asNumChamp{$vlChamp}:=$vlChamp  ` Stocker le numéro du champ
         CHERCHER([Traductions];[Traductions]NomActuel=$asNomChamp{$vlChamp};*) 
            ` Chercher la traduction
         CHERCHER([Traductions]; & ;[Traductions]Langue=$1)
         Si (Enregistrements trouves([Traductions])>0)
            $asNomChamp{$vlChamp}:=[Traductions]NomTraduit  ` Si disponible, utiliser le nom traduit
         Fin de si 
      Fin de boucle 
      TRIER TABLEAU($asNomChamp;$asNumChamp;>)
      FIXER TITRES CHAMPS(Table($vlTable)->;$asNomChamp;$asNumChamp)
   Fin de boucle 
   TRIER TABLEAU($asNomTable;$aiNuméroTable;>)
   FIXER TITRES TABLES($asNomTable;$aiNuméroTable)

Notez que de nouvelles traductions peuvent être effectuées dans la base sans modification de code ni recompilation.

Référence

FIXER TITRES CHAMPS, Nom de la table, Nombre de tables.


4D - Documentation   Français   English   German   4e Dimension, Commandes par thèmes   4e Dimension, Liste alphabétique des commandes   4e Dimension, Constantes par thèmes   Retour   Précédent   Suivant