Vous pouvez facilement le faire en utilisant des gestionnaires d'événements Java. Tout événement dans le processus de génération peut être modifié soit par JavaScript (stocké sur la conception du rapport lui-même) ou via un POJO lorsqu'un traitement plus complexe est nécessaire.
Ajoutez un TextItem à votre rapport. Ce sera la destination prévue pour votre bloc de texte. Vous pouvez ajouter d'autres types de contrôles et interagir avec eux de la même manière, TextItem semble avoir du sens pour cette question particulière. Ajoutez tout ce que vous voulez à l'article texte, nous allons surpasser la valeur du POJO de toute façon.
Créez maintenant un POJO qui implémente l'interface TextItemEventAdapter
(cela devrait être dans votre distribution BIRT). Vous pouvez ensuite choisir à quel événement lier votre POJO. OnCreate a probablement le plus de sens. Pour ce faire, implémentez la méthode onCreate
à partir de l'interface.
/* (non-Javadoc)
* @see org.eclipse.birt.report.engine.api.script.eventadapter.TextItemEventAdapter#onCreate(org.eclipse.birt.report.engine.api.script.instance.ITextItemInstance, org.eclipse.birt.report.engine.api.script.IReportContext)
*/
@Override
public void onCreate(ITextItemInstance text, IReportContext reportContext) {
super.onCreate(text, reportContext);
text.setText(getText());
}
Dans l'extrait ci-dessus, la méthode getText()
est une autre méthode de votre classe qui construit votre bloc de texte. Implémentez votre logique métier ici. Une fois la classe créée, vous devez la lier au contrôle d'élément de texte de l'état. Sur le rapport, sélectionnez l'élément de texte. Sous "Propriétés", recherchez "Event Handler". Ici, vous pouvez ajouter votre POJO en tant que gestionnaire d'événement pour le contrôle. Lorsque le contrôle est rendu, votre POJO va maintenant fournir le texte.
Pour faciliter le développement, ayez votre projet Java et votre projet BIRT dans le même espace de travail. Cela permettra au rapport et au POJO de se voir pour tester et déboguer dans Eclipse.
Voici beaucoup plus au sujet des événements de rapport et la gestion des événements: http://www.eclipse.org/birt/phoenix/deploy/reportScripting.php
Bonne chance!