Formula from string
Historique
| Release | Modifications | 
|---|---|
| 20 R3 | Prise en charge du paramètre context | 
| 17 R6 | Renommée : New formula from string -> Formula from string | 
| 17 R3 | Ajout | 
Formula from string*( formulaString : Text ) : 4D.Function
Formula from string( formulaString : Text ; context : Integer ) : 4D.Function
| Paramètres | Type | Description | |
|---|---|---|---|
| formulaString | Text | → | Formule texte à retourner comme objet | 
| context | Integer | → | sk execute in current database(par défaut) ousk execute in host database | 
| Résultat | 4D.Function | ← | Objet natif encapsulant la formule | 
Description
La commande Formula from string crée un objet 4D.Function basé sur formulaString et, éventuellement, context.  formulaString peut être simple comme une valeur unique ou complexe comme une méthode projet avec des paramètres.
Cette commande est similaire à Formula, à la différence qu'elle traite une formule textuelle et permet de définir un contexte d'exécution. Il est généralement recommandé d'utiliser la commande Formula, sauf si la formule originale a été exprimée sous forme de texte (par exemple, stockée en externe dans un fichier JSON), ou si vous souhaitez créer une formule dans une base de données hôte tout en appelant Formula from string à partir d'un composant. L'utilisation de la syntaxe avec tokens est fortement conseillée avec cette commande.
Le contenu des variables locales n'étant pas accessible par nom en mode compilé, il ne peut pas être utilisé dans la formulaString. Si vous tentez d'accéder à une variable locale avec
Formula from string, cela génèrera une erreur (-10737).
Si la formule est créée dans un composant, vous pouvez envisager d'utiliser le paramètre context . Par défaut, les formules étant exécutées dans le contexte dans lequel elles ont été créées, elles ne pourront pas appeler une variable, une fonction ou une méthode non partagée de la base de données hôte. Dans ce cas, vous pouvez passer la constante sk execute in host database au paramètre context pour exécuter l'objet 4D.Function dans le contexte de la base de données hôte. Les constantes suivantes sont disponibles :
| Constante | Type | Description | 
|---|---|---|
| sk execute in current database | Integer | (par défaut) La formule sera exécutée dans le contexte où elle a été créée | 
| sk execute in host database | Integer | La formule sera exécutée dans le contexte de la base de données de hôte | 
Exemple
Le code suivant permettra de créer un dialogue acceptant une formule dans un format texte :
 var $textFormula : Text
 var $f : 4D.Function
 $textFormula:=Request("Please type a formula")
 If(ok=1)
    $f:=Formula from string($textFormula)
    ALERT("Result = "+String($f.call()))
 End if
... et exécute la formule :
Voir également
Propriétés
| Numéro de commande | 1601 | 
| Thread safe | ✓ |