Comment définir une source de données pour un rapport BIRT par programmation?
J'ai un rapport BIRT qui se connecte à notre base de données de test. Dans l'environnement productif, je tiens à fournir une source de données qui est fourni par le conteneur via jndi.
Comment pourrais-je définir la source de données par programme pour le rapport?
...
IReportRunnable design = birtEngine.openReportDesign ( new File ( properties.getProperty ( "reportPath" ), report + ".rptdesign" ).getAbsolutePath () );
IRunAndRenderTask task = birtEngine.createRunAndRenderTask ( design );
PDFRenderOption options = new PDFRenderOption ();
options.setOutputFormat ( PDFRenderOption.OUTPUT_FORMAT_PDF );
options.setOutputStream ( out );
task.setRenderOption ( options );
for ( Entry<String, Object> entry : parameters.entrySet () )
{
task.setParameterValue ( entry.getKey (), entry.getValue () );
}
task.run ();
task.close ();
...
Je suppose que je dois modifier le design
mais d'un autre côté task
a une méthode setDataSource
mais qui ressemble un peu je l'aurais pour la fourniture de certains des éléments du dom xml.
Vous devez vous connecter pour publier un commentaire.
Regarder code suivant vous pouvez obtenir de l'aide dans la fourniture de la source de données lors de l'exécution.
Pour mes besoins, il fonctionne très bien.
Je l'ai obtenu à partir d'un site ne me souviens pas.
Vous pouvez créer un Paramètre de Rapport pour la base de données de la chaîne de connexion.
Ensuite, définissez la JNDI URL de la Source de Données -> Propriété de Liaison -> JNDI URL: params["Base de données"].valeur
(Où "Base de données" est le nom du paramètre de rapport)
Seulement la source de données au moment de l'exécution va être problématique parce que l'ensemble de données est lié à une source de données unique et de vos commandes sur le rapport sont liés à un ensemble de données spécifique. Cette hiérarchie serait assez collante pour essayer de le construire vous-même chaque fois que le rapport s'exécute.
Vous pouvez paramétrer tous les aspects de la définition de Source de Données de faire votre conception portable à travers tous les environnements. Lors de la modification de votre Source de Données, regardez la Propriété de Liaison de regroupement sur le côté gauche. Cela devrait vous donner suffisamment de souplesse pour faire de votre source de données de plus de portable. Vous pouvez spécifier les paramètres d'exécution pour les éléments de l'URL JDBC ou au moment de l'exécution JNDI profil.
Espère que cette aide.
J'aime Adams approche.
Voici comment nous procédons:
Ici, "lisa" est-il le nom de la source de données nous aimerions changer lors de l'exécution.
L'obtenir... de retour de la fonction, les valeurs nécessaires à la "production" de l'exécution.
Cela a fonctionné pour moi. J'ai eu du contexte et de contexte a obtenu la source de données et passé la connexion à Birt report comme ci-dessous