Les UFL (User Function Libraries, bibliothèques de fonctions utilisateur) peuvent être programmées dans un environnement Java.
Pour créer une fonction personnalisée, vous pouvez utiliser d'autres fonctions personnalisées ou des fonctions utilisateur Crystal Reports provenant d'une UFL. L'utilisation de fonctions personnalisées est particulièrement recommandée si vous souhaitez écrire une fonction simple mais réutilisable. En revanche, si vous souhaitez exploiter les services Web ou accéder à un fichier externe, utilisez une UFL. En effet, les UFL fonctionnent indépendamment du processus de conception des rapports. L'utilisation des UFL est également recommandée si vous souhaitez utiliser les classes Java existantes.
Remarque : Lorsqu'un rapport est créé à l'aide d'une fonction utilisateur, la bibliothèque dans laquelle se trouve cette fonction doit être incluse dans le package d'exécution.