Вы можете легко сделать это с помощью обработчиков событий Java. Любое событие в процессе генерации может быть изменено либо с помощью JavaScript (хранящегося в самом дизайне отчета), либо с помощью POJO, когда требуется более сложная обработка.
Добавьте TextItem в свой отчет. Это будет предполагаемое место назначения вашего блока текста. Вы можете добавлять другие типы элементов управления и взаимодействовать с ними таким же образом, TextItem, кажется, имеет смысл для этого конкретного вопроса. Добавьте к текстовому элементу все, что хотите, мы все равно переопределим значение из POJO.
Теперь создайте POJO, реализующий интерфейс TextItemEventAdapter
(он должен быть в вашем дистрибутиве BIRT). Затем вы можете выбрать, к какому событию привязать ваш POJO. onCreate, вероятно, имеет наибольший смысл. Для этого реализуйте метод onCreate
из интерфейса.
/* (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());
}
В приведенном выше фрагменте метод getText()
- это еще один метод вашего класса, который создает ваш текстовый блок. Реализуйте здесь свою бизнес-логику.
После создания класса вам необходимо привязать его к элементу управления текстовым элементом отчета. В отчете выберите текстовый элемент. В разделе «Свойства» найдите «Обработчик событий». Здесь вы можете добавить свой POJO в качестве обработчика событий для элемента управления. Когда элемент управления отрисован, ваш POJO теперь предоставит текст.
Чтобы упростить разработку, разместите свой проект Java и проект BIRT в одной рабочей области. Это позволит отчету и POJO видеть друг друга, обеспечивая тестирование и отладку внутри Eclipse.
Вот еще много дополнительных сведений о событиях отчетов и обработке событий: http://www.eclipse.org/birt/phoenix/deploy/reportScripting.php
Удачи!
person
MystikSpiral
schedule
07.10.2010