La syntaxe Basic des fonctions personnalisées est très semblable à celle des fonctions Visual Basic.
Function nom [(argList)] [As type]
[instructions]
[nom=expression]
[Exit Function]
...
End Function
Obligatoire. Il s'agit du nom de la fonction. Ce nom doit être identique à celui attribué à la fonction lors de sa création. Il ne peut pas commencer par un chiffre, ni contenir des espaces ou des signes de ponctuation (sauf le caractère de soulignement). D'autre part, il ne peut pas être identique à un mot clé, que ce soit dans la syntaxe Basic ou Crystal.
Facultatif. Représente le type de données de la valeur renvoyée par la fonction. Il peut s'agir d'un type Crystal Reports simple (Nombre, Devise, Chaîne, Booléen, Date, Heure ou Date/heure) ou d'une plage (plage de nombres, plage de devises, plage de chaînes, plage de dates, plage d'heures ou plage de valeurs de type date/heure). Si le type de la valeur de retour n'est pas spécifié, il est déduit du type de l'expression affectée à name (saisie implicite).
Remarque Si vous souhaitez une valeur de retour de type tableau, vous devez utiliser la saisie implicite dans la mesure où il n'existe pas de notation explicite à cet effet.
Affectez à nom une expression qui spécifie la valeur renvoyée par la fonction. Si le type de valeur est précisé, expression est facultatif ; dans le cas contraire, vous devez obligatoirement l'indiquer pour permettre à Crystal Reports de savoir le type de retour de la fonction via la saisie implicite.
L'instruction Exit Function force Crystal Reports à quitter immédiatement la fonction. Vous pouvez utiliser cette instruction autant de fois que vous le souhaitez et n'importe où dans le corps de la fonction.
Remarque Les seules instructions qui peuvent figurer avant le début de la fonction ou après la fin de la déclaration de la fonction sont les commentaires (précédés d'une apostrophe ou du mot clé Rem).
[Facultatif] nomVar [()] As typeVar [=valeurDéfaut]
Facultatif. Indique que l'argument peut être omis lorsque la fonction personnalisée est appelée. Si un argument est facultatif, tous les arguments suivants doivent être également facultatifs. Si vous fournissez une valeur pour un argument facultatif, vous devez spécifier tous les arguments précédents.
Obligatoire. Spécifie le nom de la variable qui représente l'argument.
Facultatif. S'il est spécifié, cet argument indique que l'argument est une variable de type tableau.
Obligatoire. Indique le type de données de la variable représentant l'argument. Il peut s'agir de l'un des sept types simples ou des six types de plages mentionnés ci-dessus dans la description de listeArg. Si les parenthèses sont indiquées, le type de valeur est un tableau dont les éléments sont de type typeVar.
Obligatoire pour les arguments facultatifs. valeurDéfaut est une constante ou une expression constante, c'est-à-dire une expression qui ne contient pas de variables et peut être simplifiée en valeur constante au moment de la compilation. Si aucun argument facultatif n'est spécifié et que la fonction est appelée, c'est la valeur par défaut de cet argument qui est utilisée.
Remarque Contrairement à ce qui se passe en Visual Basic, si un argument est facultatif, vous devez fournir une valeur par défaut.
Tous les arguments sont passés par valeur. En Visual Basic, les arguments sont passés soit par valeur ou par référence ; par défaut, ils sont passés par référence. Toutefois, les fonctions personnalisées ne prennent pas en charge les arguments de référence.
Règles de syntaxe des fonctions personnalisées | Evaluation des fonctions personnalisées