1. 程式人生 > >【Stimulsoft Reports Java教程】報表渲染過程的事件

【Stimulsoft Reports Java教程】報表渲染過程的事件

下載Stimulsoft Reports Java最新版本

此示例專案顯示如何為報表呈現事件新增和使用處理程式。

首先,建立JFrame並設定必要的選項。

public static void main(final String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            try {
                JFrame frame = new JFrame();
                frame.add(new RenderProcess(frame));
                frame.setSize(FRAME_SIZE);
                frame.setLocationRelativeTo(null);
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setVisible(true);
            } catch (Throwable e) {
                StiExceptionProvider.show(e, null);
            }
        }
    });
}

例如,我們使用SimpleList報表。載入此報表模板並將Demo資料庫新增到報表物件。

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);

為了演示報表呈現時事件的呼叫順序,我們將新增幾個處理程式。每個處理程式將在應用程式表單的文字區域中新增文字。

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);
    }
});

示例程式碼的結果如下圖所示:

Stimulsoft

檢視原文,下載示例