我如何检测JasperViewer处理报告时间

时间:2013-03-27 03:56:36

标签: java process jasper-reports ireport reportviewer

我们知道jasper viewer需要很多时间来根据显示的数据处理报告。 我想处理它,给用户加载信息。 这是我的一步:

  1. 检查,正在查看过程中还是已完成。
  2. 如果正在处理,请创建JLabel并将文本设置为“正在加载报告...”
  3. 如果完成,请将文本设置为“”或null
  4. 指向1 ,我不知道如何检查查看器是否在生成过程中? 请帮我。谢谢:))

1 个答案:

答案 0 :(得分:0)

在另一个帖子中调用viewReport()。存储实例级别AtomicBoolean,并在报告完成后将其设置为false。在客户端检查方法中,定期检查此实例变量以检查报告是否已完成。

伪代码示例:

public void YourClass {

private AtomicBoolean reportRunning;

...

private void getReport() {

    new Thread() {

     reportRunning = new AtomicBoolean(true);
     JRViewer.viewReport();
     reportRunning.set(false);

    }.start();

}

// Call periodically and update UI    
private boolean clientCheck() {

    return reportRunning != null && reportRunning.get();

}