Aller au contenu principal
Version: Next

Formula from string

Historique
ReleaseModifications
20 R3Prise en charge du paramètre context
17 R6Renommée : New formula from string -> Formula from string
17 R3Ajout

Formula from string( formulaString : Text ) : 4D.Function
Formula from string( formulaString : Text ; context : Longint ) : 4D.Function

ParamètresTypeDescription
formulaStringTextFormule texte à retourner comme objet
contextNumbersk execute in current database (par défaut) ou sk execute in host database
Résultat4D.FunctionObjet 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 aussi simple qu'une valeur unique ou complexe, comme une méthode projet avec des paramètres.

This command is similar to Formula, except that it handles a text-based formula and allows to define an execution context. 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 :

ConstanteTypeDescription
sk execute in current databaseInteger(par défaut) La formule sera exécutée dans le contexte où elle a été créée
sk execute in host databaseIntegerLa 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

Formula
Parse formula