Le rapport LiveReport présente le concept de modèles pour l'objet LiveReports traditionnel. Les modèles permettent de configurer des blocs prédéfinis de code SQL qui peuvent être inclus ou exclus au moment de l'exécution en fonction de conditions prédéfinies. Ce concept se révèle particulièrement utile lors de l'installation d'applications de génération de rapports ad-hoc. Il est très important de pouvoir, de façon dynamique, ajouter ou supprimer des filtres de données ou de modifier les ensembles de données renvoyés dans une application de génération de rapports ad-hoc. Auparavant, seules les valeurs de données pouvaient être transmises au rapport LiveReport via l'URL. Il est impossible d'ajouter des clauses de filtrage, telles que AND NAME = 'test', une fois le rapport LiveReport créé. Si toutes les clauses de filtrage possibles sont ajoutées lors de la création initiale du rapport LiveReport, la requête SQL peut échouer jusqu'à ce que des valeurs correctes soient transmises pour chacune de ces clauses. Normalement, des caractères génériques devraient être transmis pour ces clauses afin que la requête SQL renvoie le bon nombre de résultats.

Première étape dans la résolution de ce problème, le paramètre de type InsertStr a contribué à satisfaire à cette exigence en permettant l'insertion de quantités variables de code SQL dans la source SQL. Le principal problème avec cette approche est que parfois, de grandes quantités de code SQL sont transmises via l'URL. En règle générale, dans cette approche, une clause SQL complète, par exemple AND Name = 'test', est transmise au rapport LiveReport.

La fonction de modèle permet de prédéfinir les clauses SQL facultatives dans le rapport LiveReport réel. Chaque modèle est configuré de telle sorte que seules les portions de données qui doivent être variables, par exemple = 'test', sont transmises dans l'URL. Chaque modèle peut être configuré de façon à ce qu'une condition prédéterminée soit remplie pour permettre son inclusion. Ces conditions sont décrites en détail dans ce document, mais en règle générale, l'inclusion de modèles dépend de si certaines variables sont réglées sur des « indicateurs » prédéterminés ou si un paramètre prédéfini est défini dans l'URL.

Par exemple, si l'on reprend l'exemple simple ci-dessus, un modèle prendrait la forme suivante : AND Name = %1. Si l'on suppose que %1 est un paramètre de type d'entrée de tupe utilisateur de type String, le modèle pourrait être configuré de façon à être inclus uniquement si %1 n'est pas défini sur une chaîne vide. Ainsi, le texte « AND Name = %1 » serait inclus uniquement dans la requête SQL si %1 était transmis avec une valeur non vide dans l'URL.

La fonction de modèle permet de créer des segments SQL qui peuvent être ajoutés, en option, à la requête SQL principale. Cette fonction offre beaucoup de nouvelles possibilités et facilite notamment la prise en charge d'applications dans lesquelles un nombre variable de clauses WHERE/AND peut être requis dans une requête.

Pour chaque modèle, il est possible de définir les conditions qui détermineront si la source SQL facultative est utilisée ou non. Cette opération s'effectue à l'aide de l'option Inclure IF ; pour plus d'informations, voir la ligne « Inclure IF » dans Champs du modèle SQL et Inclure IF. Chaque champ du modèle est expliqué ci-dessous. Notez que chaque modèle comprend une icône Afficher le comportement du modèle à l'extrême droite qui fournit une illustration du mode d'interprétation du modèle en fonction des paramètres actuels.

Ecran du modèle SQL

Figure 1-2 : Ecran du modèle SQL

D'autres modèles peuvent être créés à l'aide de l'icône du symbole plus. Vous pouvez supprimer des modèles en effaçant le texte d'une zone Source SQL et en enregistrant le rapport LiveReport.