This sample project shows how to add and use the handlers for the report render events.

First, create the JFrame and set the necessary options:
public static void main(final String[] args) {
	SwingUtilities.invokeLater(new Runnable() {
		public void run() {
			try {
				JFrame frame = new JFrame();
				frame.add(new EventsOfTheReportRenderProcess(frame));
				frame.setSize(FRAME_SIZE);
				frame.setLocationRelativeTo(null);
				frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				frame.setVisible(true);
			} catch (Throwable e) {
				StiExceptionProvider.show(e, null);
			}
		}
	});
}

For example, we use the 'SimpleList' report. Load this report template and add a Demo database to the report object:
final StiReport report = StiSerializeManager.deserializeReport(new File("Reports", "SimpleList.mrt"));
StiXmlDatabase xmlDatabase = new StiXmlDatabase("Demo", "Data/" + "Demo.xsd", "Data/" + "Demo.xml");
report.getDictionary().getDatabases().add(xmlDatabase);

To demonstrate the call order of events at report rendering, we will add several handlers. Each handler will add the text in the text area on the application form:
report.handlerBeginRender.add(new StiEventHandlerListener() {
	public void invoke(StiEventObject myEvent) {
		appendText(beginRender);
	}
});

report.handlerRendering.add(new StiEventHandlerListener() {
	public void invoke(StiEventObject myEvent) {
		appendText(subProcessField1);
	}
});

report.handlerRendering.add(new StiEventHandlerListener() {
	public void invoke(StiEventObject myEvent) {
		appendText(subProcessField2);
	}
});

report.getPages().get(0).handlerBeginRender.add(new StiEventHandlerListener() {
	public void invoke(StiEventObject myEvent) {
		appendText(subProcessField3);
	}
});

report.getPages().get(0).handlerEndRender.add(new StiEventHandlerListener() {
	public void invoke(StiEventObject myEvent) {
		appendText(subProcessField4);
	}
});

report.handlerEndRender.add(new StiEventHandlerListener() {
	public void invoke(StiEventObject myEvent) {
		appendText(finishField);
	}
});

На скриншоте ниже Вы можете увидеть результат выполнения данного кода:

Using Events of the Report Render Process

Используя этот сайт, вы соглашаетесь на использование файлов Cookie для аналитики и персонализированного контента. Файлы Cookie хранят полезную информацию на вашем компьютере, чтобы помочь нам повысить эффективность и удобство использования. Для получения дополнительной информации, пожалуйста, прочтите Конфиденциальность и Использование Cookie.