|
|
Programmation avancée : utilisation de sous fonctions et programmation objetPrincipe généralUn objectif majeure de Storga est que les applications déployées restent facilement compréhensibles par un tiers. Pour cela, plusieurs contraintes ont été imposées, dont la principale est qu'un programme de calcul, à l'intérieur d'un formulaire, ne peut pas définir de fonctions. En effet, avec un langage de programmation, dès que l'on dispose de la notion de fonction, la complexité du code que l'on peut produire progressivement est sans limite. Cependant, dans certains cas, on désire isoler un code un peu complexe, ou éviter un gigantesque 'if eif eif eif else' pour traiter de multiples cas. Dans Storga, cela se fait en définissant une ou plusieurs fonctions sous la forme de formulaires. L'intérêt de définir une fonction sous forme d'un formulaire est de permette un test facile du code, en remplissant les champs, et en utilisant le bouton. L'inconvénient est que cela n'est efficace ni en termes de vitesse d'exécution, ni de consommation mémoire, donc cela reste à réserver à quelques cas très spécifiques, et ne doit pas être utilisé pour écrire des applications toujours plus complexes en Storga. Exemple simple d'isolation d'un code un peu complexeVoici un petit exemple d'isolation d'un code un peu complexe. L'utilisation de cette fonction s'effectue via l'instruction 'new_form' à laquelle on ajoute simplement l'option 'virtual' pour indiquer que le formulaire que l'on veut créer ne servira qu'à effectuer du calcul et non à stocker pérennement des données. new_form code_ou_nom_du_formulaire_function virtual Remarquez que l'on a utilisé 'run_form' et non 'compute_form' car 'run_form' effectue le calcul immédiatement, avant de continuer l'exécution du programme en cours, alors que 'compute_form' enregistre qu'il faudra recalculer le formulaire à la suite de l'exécution du programme en cours. Utilisation pour appliquer la bonne règleIl s'agit là d'une ébauche de programmation objet. new_form (lookup_form_id état_qui_liste_les_règles champ_code_règle règle_a_appliquer) virtual La fonction 'lookup_form_id' vous a permis de trouver le code du formulaire implémentant la règle souhaitée. |