4D v18

Gérer des expressions

Accueil

 
4D v18
Gérer des expressions

Gérer des expressions  


 

Les documents 4D Write Pro peuvent contenir des références à des expressions 4D dynamiques telles que des variables, des champs, des formules, des méthodes projet ou des commandes du langage. Des variables spécifiques telles que le numéro de page peuvent également être référencées (voir Insérer des expressions de page et de document ci-dessous).

Les expressions sont insérées dans 4D Write Pro à l'aide de la commande ST INSERER EXPRESSION. Elles peuvent être lues à l'aide de la commande ST Lire expression mais peuvent aussi être retournées via les commandes WP Lire texte et ST Lire texte brut

Les expressions autorisées (voir ci-dessous) sont évaluées au moment où elles sont insérées, lorsque les documents sont affichés, imprimés ou lorsque la commande ST CALCULER EXPRESSIONS est appelée. Elles deviennent des valeurs statiques si vous appelez la commande ST FIGER EXPRESSIONS (sauf pour les variables $wp_pageNumber et $wp_pageCount, voir ci-dessous).

Exemple  

Vous voulez remplacer la sélection dans une zone 4D Write Pro par le contenu d'une variable :

 C_TEXTE(nomComplet)
 nomComplet:="John Smith"
 Au cas ou
    :(Evenement formulaire code=Sur clic)
       ST INSERER EXPRESSION(myArea;"nomComplet";ST Début sélection;ST Fin sélection)
 Fin de cas

Pour des raisons de sécurité, l'évaluation de méthodes projet et de commandes 4D insérées dans les documents 4D Write Pro doit être sous le contrôle du développeur pour s'assurer qu'aucune expression inappropriée n'est utilisée et qu'aucune modification inattendue ou effet indésirable ne se produit dans la base. Cela vous évite d'exécuter des commandes telles que SUPPRIMER SELECTION ou des méthodes telles que "DeleteOrder".

Utilisez l'option de filtrage de 4D, définie au niveau de la base de données. Cette option se trouve dans la page Sécurité de la boîte de dialogue des Propriétés de la base :

Par défaut, dans 4D, la valeur de cette option est Activé pour tous, ce qui signifie que les commandes et méthodes doivent être explicitement autorisées ; dans le cas contraire, des messages d'erreur sont retournés. Vous pouvez désactiver ce filtrage partiellement (pour le Super Utilisateur et l'Administrateur) ou pour tous les utilisateurs. Cette option est utilisée dans toute la base et contrôle toutes les évaluations de formule utilisateur. Pour plus d'informations sur cette option, veuillez vous référer au manuel Mode Développement.

Lorsque cette option est activée :

  • les utilisateurs peuvent appeler uniquement des commandes "compatibles" avec les formules. La liste des commandes compatibles est affichée dans la zone de droite de l'éditeur de Formule :
  • les utilisateurs ne peuvent exécuter aucune méthode projet. Les méthodes projet que vous souhaitez autoriser dans les documents 4D Write Pro doivent être explicitement déclarées en utilisant la commande FIXER METHODES AUTORISEES.

Si une commande ou une méthode 4D "interdite" est trouvée durant l'évaluation d'une expression dans un document 4D Write Pro, la valeur est remplacée par "## Error # 48".

Exemple  

Vous insérez l'expression suivante dans votre document 4D Write Pro :

 ST INSERER EXPRESSION(*;"WriteProArea";"Gender")

Par défaut, si l'option de sécurité est cochée, la méthode Gender ne sera pas évaluée :

Si vous exécutez le code suivant :

 TABLEAU TEXTE(aTallow;1)
 aTallow{1}:="Gender"
 FIXER METHODES AUTORISEES(aTallow)

La méthode Gender retournera une valeur :

Ce filtrage n'était pas activé pour les documents 4D Write Pro dans les versions précédentes. Si vos documents 4D Write Pro référençaient des méthodes 4D, elles ne seront plus évaluées correctement une fois les documents convertis en 4D v16 ou plus. Des messages "## Error # 48" seront affichés à la place.
Dans ce cas, vous devrez ajouter les méthodes dans la liste des méthodes autorisées en utilisant la commande FIXER METHODES AUTORISEES.

Vous pouvez insérer des expressions spéciales relatives aux attributs de document ou aux attributs de page en utilisant la commande ST INSERER EXPRESSION.

ExpressionTypeDescription
$wp_titleTexteTitre défini dans l'attribut wk title
$wp_authorTexteAuteur défini dans l'attribut wk author
$wp_subjectTexteSujet défini dans l'attribut wk subject
$wp_companyTexteSociété définie dans l'attribut wk company
$wp_notesTexteNotes définies dans l'attribut wk notes
$wp_dateCreationDateDate de création définie dans l'attribut wk date creation
$wp_dateModifiedDateDate de modification définie dans l'attribut wk date modified
$wp_pageNumberEntier longNuméro de page tel que défini soit à partir du début du document (fonctionnement par défaut) soit à partir du début de la section. Cette expression est toujours dynamique, elle n'est pas affectée par la commande ST FIGER EXPRESSIONS.
$wp_pageCountEntier longNombre total de pages. Cette expression est toujours dynamique, elle n'est pas affectée par la commande ST FIGER EXPRESSIONS

Pour insérer une expression, vérifiez bien que le curseur se situe dans la zone appropriée (en-tête, pied ou corps du document) et appelez la commande ST INSERER EXPRESSION. Par exemple, pour insérer le numéro de page dans la zone de pied sélectionnée :

 ST INSERER EXPRESSION(*;"4DWPArea";"$wp_pageNumber")

La présentation du document ci-dessous peut être définie par exemple :

 

Les expressions de table et de champ insérées dans les documents 4D Write Pro prennent en charge la définition de structure virtuelle de la base. La structure virtuelle exposée dans les formules est définie à l'aide des commandes FIXER TITRES CHAMPS(...;*) et FIXER TITRES TABLES (...;*). 

Lorsqu'une structure virtuelle est définie, les références à des expressions contenant des champs affichent des noms virtuels lorsque le document 4D Write Pro montre les références et non les valeurs. Les commandes qui gèrent des références attendent et utilisent les noms réels ou les noms virtuels, comme suit :

CommandeUtilisation de la structure virtuelle
WP Lire texteRetourne les noms de structure virtuelle si l'option wk expressions as source est définie dans expressions.
ST Lire texte brutRetourne les noms de structure virtuelle si l'option ST 4D Expressions as sources est définie dans refMode.
ST Lire expressionNe prend pas en charge la structure virtuelle. Retourne toujours les noms réels de table/champ
ST INSERER EXPRESSIONNe prend pas en charge la structure virtuelle. Retourne toujours les noms réels de table/champ

Note : Lorsqu'un document est affiché dans le mode "afficher expressions", les références à des tables ou à des champs qui n'appartiennent pas à la structure virtuelle s'affichent avec le caractère "?", par exemple [VirtualTableName]? lorsque le champ n'est pas défini dans la structure virtuelle.



Voir aussi  


ST INSERER EXPRESSION
Utiliser les commandes du thème Texte multistyle

 
PROPRIÉTÉS 

Produit : 4D
Thème : Gérer des expressions
Nom intl. : Managing expressions

 
PAGE CONTENTS 
 
HISTORIQUE 

Créé : 4D v16
Modifié : 4D v17 R4

 
UTILISATION DE L'ARTICLE

4D Write Pro ( 4D v18)