Emplacement des scripts
Chaque objet de l'Θtat peut avoir un script, visible dans l'Θditeur de l'objet (double-cliquez sur l'objet, ou appuyez sur ).Les bandes et les pages ont un script accessible par la propriΘtΘ OnBeforePrint.
Les scripts sont exΘcutΘs α chaque passe avant l'impression de l'objet.
Les scripts contenus dans la page de dialogue sont exΘcutΘs α l'ouverture de l'Θtat, avant l'impression.
L'interprΘteur de script
L'interprΘteur possΦde les caractΘristiques suivantes:- Chaque instruction se termine par un point-virgule.
- Chaque groupe d'instruction est encadrΘ par au moins un begin..end
- Les opΘrateurs suivants sont pris en charge: Affectation (:=), If..then..else, while..do, repeat..until, for..to..do, goto
- Utilisation de variables (non typΘes) et tableaux
- RΘfΘrence aux propriΘtΘs et mΘthodes des objets disponibles dans le rapport par la notation habituelle Objet.PropriΘtΘ ou objet.mΘthode
- Toutes les variables sont de type Variant. Il n'y a pas de dΘfinition de type et donc aucun contr⌠le sur le type des donnΘes. Attention donc lors de l'Θcriture des scripts α ne pas passer α une fonction numΘrique une variable vide ou contenant un texte.
- Toutes les variables sont Globales. Il n'y a pas de variable locale α un script.
- Il n'y a pas de type de donnΘe tel que class, record, set of, etc...
- Vous ne pouvez pas ajouter de procΘdures ou de fonctions.
- Il n'y a pas de condition de rupture de boucle (break, continue)
- Les tableaux ne peuvent avoir qu'une dimension.
Les variables
Il est inutile de spΘcifier un type de variable.Pour nommer les variables, utilisez les lettres, les chiffres et le caractΦre de soulignement
Exemple d'utilisation d'une variable pour stocker un rΘsultat:
SommeC effectue la somme du champ "CrΘdit". Note: Il est nΘcessaire d'initialiser cette variable dans le script de l'Θtat.
LastCurY stocke la position verticale du champ.
Vous pouvez aussi utiliser les variables systΦme et les variables dΘfinies dans le dictionnaire des donnΘes de l'Θtat. Si le nom d'une telle variable contient un caractΦre interdit, il faut placer ce nom entre crochets (comme les variables utilisΘe dans le texte des mΘmos).
RΘfΘrence aux donnΘes
Pour afficher les donnΘes d'une requΩte ou d'une table, utilisez la notation[Nom_de_la_page.Nom_de_table_ou_requΩte."Nom_du_champ"]
Utilisez le nom de la page s'il ne s'agit pas de la page o∙ se trouve le script.
Utilisez le nom de la table/requΩte s'il ne s'agit pas de celle liΘe α la bande ou se trouve l'objet portant le script.
Dans la plupart des cas, il est prΘfΘrable d'utiliser le nom complet. Ceci ne ralentit pas le gΘnΘrateur, et le rapport est plus clair α relire.
Tableaux
En plus des variables, vous pouvez utiliser des tableaux α une dimension dans vos scripts.Exemple:
Constantes
Les chaεnes doivent Ωtre placΘes entre guillemets. Attention α l'usage du double guillemet pour obtenir α l'impression un simple guillemet:Il existe quelques constantes systΦme: nom de couleur, styles de police de caractΦres, etc...
RΘfΘrence aux objets
Vous pouvez dans les scripts utiliser ou dΘfinir les propriΘtΘs d'un objet de l'Θtat:Utilisez le point (.) pour sΘparer la page (si besoin) , puis l'objet, et enfin la propriΘtΘ. Exemple: Memo1.Text
Quelques objets (par exemple les polices de caractΦres) demandent de combiner plusieurs propriΘtΘs:
Les objets de type multilignes (Les mΘmos, les chaεnes SQL...) peuvent faire rΘfΘrence α une ligne par son index:
On peut Θgalement utiliser les mΘthodes des types Pascal TStrings Add, Delete, Clear and Count:
La liste complΦte des propriΘtΘs et mΘthodes utilisables est ici. Notez que faire rΘfΘrence α une propriΘtΘ inexistante pour un objet est un moyen s√r de provoquer un message d'erreur empΩchant d'afficher l'Θtat. Soyez donc attentif lorsque vous Θcrivez vos scripts.
Appel des procΘdures et fonctions
La liste des procΘdures et fonctions intΘgrΘs α FastCompta est visible dans le gΘnΘrateur d'expression.Attention:
Modifier les objets durant l'exΘcution
Vous pouvez modifier α l'intΘrieur d'un script les propriΘtΘs d'un objet: taille, couleur, contenu, etc...Notez bien que si l'Θtat est simple-passe, vous ne pouvez pas modifier les objets dΘjα imprimΘs. Il est par exemple impossible de changer le titre d'un rapport depuis un script situΘ dans la bande de pied de page.
Pour autoriser ce type d'opΘration, cochez cette case dans les options de l'Θtat.
C'est le mΩme problΦme avec les sous-Θtats (Θtats multi-pages). Tous les objets sont rΘfΘrencΘs par un nom unique dans l'Θtat, mais seuls les objets par encore traitΘs sont modifiables.