【问题标题】:Jasperreport without data source没有数据源的 Jasperreport
【发布时间】:2020-04-21 23:27:34
【问题描述】:

如何在没有数据源的情况下显示 jasperreport。该报告假设从 java 应用程序接收参数并显示它们。

【问题讨论】:

    标签: java jasper-reports


    【解决方案1】:

    我这样做的方法是仍然将所有文本字段等放入详细信息带中,然后使用 new JREmptyDataSource(1) 作为数据源。即:

    filledReport = JasperFillManager.fillReport(report, parameters, new JREmptyDataSource(1));
    

    将值1 传递给构造函数将在数据源中创建单个虚拟记录,因此详细信息带将仅打印一次。我更喜欢这种方法,因为它意味着报告模板更类似于普通报告模板。另一种方法是拥有一个完全空的数据源,然后将所有内容放入不同的区域(例如列标题)。

    【讨论】:

    • 谢谢伙计,这很好用!感谢您提供有关将整数传递给新 JREmptyDataSource() 的附加信息,我不知道您可以这样做。
    • 惊人的答案。
    【解决方案2】:

    您可以使用 Visualize.js 概念将 Jasper 报告从 Jasper 服务器调用到您的项目/网站。在这种情况下,您可以将参数从应用程序传递到 jasperreports 和显示它。

    http://community.jaspersoft.com/project/visualizejs

    包括 Visualize.js 文件

     <script src="http:/(Your Jasperserver Domain):8080/jasperserver-pro/bif/visualize.js"></script>
     <div id="container" class="fill"></div>
     <div id="overlay" class="fill">
     <div id="ajax-icon" class="fill">
     <i class="icon-spinner icon-spin icon-3x"></i>
     <p>Loading...</p>
    </div>
    </div>  
    

    Visualize.js 部分

    BIF.init({
    domain: 'http:/(Your Jasperserver Domain)/jasperserver-pro/',
    username: 'jasperadmin',
    password: 'jasperadmin',
    mods: ['reports']
    },function(Reports) {
    mReport = Reports.open({
    uri:'/public/Reports/Report1',
        container: document.getElementById('container'),
            inputParameters: {
            Id:'037e6b40-88e4-11e3-80d4-2673d3ec42cd',
            Range:100,
            ProfileId:'037des70-88e4-11e3-80d4-2673d3ec42cd',
            Theme:'test'
            },
       onReportFinished: function() {
            $('#overlay').hide();
        }
    });           
    });
    

    希望对你有帮助!!!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-10
      • 2013-03-02
      相关资源
      最近更新 更多