|
|
|
|
|
- Eléments du projet : champs, fenêtres, etc.
- Variables locales
- Compilation du code
- Code dynamique
ExécuteCode (Fonction) En anglais : ExecuteCode Exécute un code WLangage présent dans une chaîne de caractères. sTexte est une chaîne = "Texte"
ExécuteCode("Info(sTexte)")
sCodeAExécuter est une chaîne
xRésultatOpération est un numérique
sCodeAExécuter = [
MonCalcul est un numérique
MonCalcul = %1
RENVOYER MonCalcul
]
sCodeAExécuter = ChaîneConstruit(sCodeAExécuter, SAI_EXPRESSION)
xRésultatOpération = ExécuteCode(sCodeAExécuter)
Info("Le résultat de votre opération est : " + xRésultatOpération)
Syntaxe
<Résultat> = ExécuteCode(<Code> [, <Paramètres>])
<Résultat> : Tout type - Résultat du code si celui-ci contient une instruction RENVOYER,
- Rien dans le cas contraire. Dans ce cas, un message d'erreur peut apparaître par exemple lors de l'affectation du résultat dans une variable.
<Code> : Chaîne de caractères Code WLangage à exécuter. Remarque : Ce code peut contenir le code d'appel et de déclaration d'une procédure interne. <Paramètres> : Variable optionnelle de type CodeWLangageCompilation
Remarques Eléments du projet : champs, fenêtres, etc. Les éléments du projet ne sont pas connus dans le code dynamique. Il est nécessaire d'utiliser les syntaxes avec des chaînes de caractères. Exemple : - Code provoquant une erreur :
schaine est une chaîne
schaine = [
Ouvrefille(fen_table)
fen_table.afftable
]
ExécuteCode(schaine)
- Code correct :
schaine est une chaîne
schaine = [
Ouvrefille("fen_table")
x est une procédure
x = "fen_table.afftable"
x()
]
ExécuteCode(schaine)
Variables locales Les variables locales du traitement courant peuvent être utilisées directement dans le code à exécuter. Si le code compile sans erreur, le code est exécuté directement. Si le code ne compile pas, une erreur fatale est déclenchée. Compilation du code Le code est recompilé à chaque appel de la fonction ExécuteCode. Pour éviter la phase de recompilation, vous pouvez utiliser les fonctions Compile et Exécute. Code dynamique Les constantes ne peuvent pas être utilisées dans le code dynamique (définies avec le mot-clé CONSTANTE). Lors de l'utilisation de constantes dans un code, toutes les occurrences des constantes sont remplacées par leur valeur au moment de la compilation sous l'éditeur mais la correspondance entre le nom des constantes et leur valeur n'est pas "embarquée" dans l'application. Donc la compilation dynamique ne peut pas utiliser les constantes. Voici deux alternatives : 1 - Utiliser des variables à la place des constantes
CONSTANTE
CST_Nom = 1
FIN
devient par exemple
CST_Nom est un entier = 1
ou 2 - Dans la chaîne qui contient le code que l'on va compiler dynamiquement, au lieu de laisser le nom de la constante, on remplace le nom de la constante par sa valeur :
sCode est une chaîne
sCode=[
Info(CST_Nom)
]
sCode = Remplace(sCode, "CST_Nom", CST_Nom, MotComplet + SansCasse)
SI Compile("ProcDyn", sCode) <> "" ALORS
Erreur("Erreur de compilation de la procédure dynamique : ", ErreurInfo())
SINON
QUAND EXCEPTION DANS
ExécuteTraitement("ProcDyn", trtProcédure)
FAIRE
Erreur("Erreur d'exécution de la procédure dynamique : ", ExceptionInfo())
FIN
FIN
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|