如何通过 BIRT API 设置参数并将其传递到 BIRT 报表设计器创建的 BIRT 报表?

2024-02-21

我创建了一个带有单个参数的简单报告。该参数在查询中使用,直接在报表设计器中执行时可以正常执行。顺便说一句,我没有在该报告中使用 JavaScript 或任何脚本。我看到有些人试图使用脚本和/或 JavaScript 传递参数来获取答案,但这不是我正在做的。我通过java传递所有参数。继续,在本报告中,我列出了活动/非活动项目。我传入“N”用于列出非活动项目,“Y”用于列出活动项目。当我尝试通过 API 传递参数时,无论我传递什么,我总是会得到一个活动项目列表。顺便说一句,“Y”是传入参数的默认值。(我正在覆盖中的默认值)下面的代码)我遇到的问题是报告似乎不想采用我设置的参数。是的,传入的变量中的值发生了变化,但报告没有反映该变化。我的代码如下。我尝试遵循此链接的建议以及如何设置参数。

http://www.eclipsezone.com/eclipse/forums/t67723.html http://www.eclipsezone.com/eclipse/forums/t67723.html

如果您转到链接,请转到#4 并查看要执行的任务列表。这就是我试图遵循的。我觉得我可能错过了一些东西。如果你能做到这一点,你能给我一些关于我所缺少的建议吗?非常感谢!

-Dale

    public class ReportGenerator {
        public static void main(String args[]) throws Exception{
        ReportGenerator rg = new ReportGenerator();
        rg.executeReport("N");
        }


        @SuppressWarnings({ "unchecked", "deprecation" })
        public void executeReport(String activeIndicator) throws EngineException {

        IReportEngine engine=null;
        EngineConfig config = null;

        try{
            config = new EngineConfig( );            
            config.setBIRTHome("C:\\birt-rcp-report-designer-3_7_2\\ReportEngine");
            config.setLogConfig("c:/temp/test", Level.FINEST);
            Platform.startup( config );
            IReportEngineFactory factory = (IReportEngineFactory) Platform.createFactoryObject( IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY );
            engine = factory.createReportEngine( config );        


            IReportRunnable reportDesign = null;
            reportDesign = engine.openReportDesign("C:\\workspace\\SimpleReport\\ReportTemplates\\ItemListingReport.rptdesign"); 
            IRunAndRenderTask task = engine.createRunAndRenderTask(reportDesign);
            IGetParameterDefinitionTask parameterDefinitionTask = engine.createGetParameterDefinitionTask(reportDesign);
            parameterDefinitionTask.evaluateDefaults();
            HashMap<String, String> params = parameterDefinitionTask.getDefaultValues();
            params.put("aIndicator", activeIndicator);
            parameterDefinitionTask.setParameterValues(params);

            ConnectionHelper connectionHelper = new ConnectionHelper();
            task.getAppContext().put("OdaJDBCDriverPassInConnection", connectionHelper.getConnection());

            PDFRenderOption options = new PDFRenderOption();
            options.setOutputFormat("pdf");
            options.setOutputFileName("C:\\workspace\\SimpleReport\\output\\itemListingReport.pdf");

            task.setRenderOption(options);

            task.run();
            task.close();
            engine.destroy();
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            Platform.shutdown();
        }
        }
    }

您需要在 IRunAndRenderTask 上设置参数:

IRunAndRenderTask task =
    engine.createRunAndRenderTask(reportRunnable);
Map< String, Object > birtParams = ...;
task.setParameterValues( birtParams );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过 BIRT API 设置参数并将其传递到 BIRT 报表设计器创建的 BIRT 报表? 的相关文章

随机推荐

  • 如何根据最小样本量在 R 中对数据框进行子集化

    假设您有一个包含两个因素级别的数据框 如下所示 Factor1 Factor2 Value A 1 0 75 A 1 0 34 A 2 1 21 A 2 0 75 A 2 0 53 B 1 0 42 B 2 0 21 B 2 0 18 B
  • 尝试获取 Pinterest 访问令牌时出现错误

    我的问题类似到这个 https stackoverflow com questions 38070424 how to get an pinterest access token我已遵循尝试获取 Pinterest 访问令牌的每一步 htt
  • 我们如何使用 Spacy minibatch 和 GoldParse 来使用 BILUO 标记方案训练 NER 模型?

    我对 spacy ner 模型的输入数据位于BILUO标记方案 我希望使用相同的作为某些要求的一部分 当我尝试在没有小批量的情况下简单地训练模型时 它工作得很好 注释部分 但我无法弄清楚如何在这里使用 minibatch 和 GoldPar
  • 无法使用 Web Compiler 2015 编译嵌套的 less 文件

    好吧 当我为 Visual Studio 2015 安装 Web Essentials 2015 时 我感到非常惊讶 因为它不再包含 less 编译器 Web Essentials 2015 不再包含捆绑和缩小 JS CSS 和 HTML
  • 仅返回elasticsearch原生查询Java api中的特定字段

    我正在构建一个本机查询 但我只想返回某些字段 所有这些字段都保存在父字段中 我想我正在寻找相当于 REST API source 的 QueryBuilders 或 NativeSearchQueryBuilder 这是一个代码示例 Nat
  • 使用 HTML 在 MVC 中提交表单

    我有一个使用 MVC5 和 C 的 Web 应用程序 在此应用程序中 我有一个带有一个下拉列表和一个提交按钮的表单 如下所示
  • Weblogic 无法找到具有“正确”JNDI 名称的资源适配器进行绑定

    我正在尝试将消息驱动 bean 与 Weblogic 10 3 5 上的 Oracle JCA 文件适配器 包含在 SOA 套件中 绑定 这样当有任何 txt 文件移动到特定目录时我的 MDB 就能收到通知 启动支持 SOA 功能的 Web
  • 如何使用password_hash注册并登录

    我试图弄清楚如何在注册和登录系统上使用password hash 目前我正在使用这样的password hash来注册我的用户 pass POST Pass hashed password password hash pass PASSWO
  • Tomcat 活动线程堆积并导致服务器停顿

    我们的生产服务器 apache tomcat 7 0 6 遇到了这个问题 该服务器正在运行使用 MySQL 作为数据库的 Spring JPA Hibernate 应用程序 在此问题期间 服务器变得缓慢 在一分钟内变得无响应 活动 tomc
  • 上传一个sqlite文件

    我正在使用 AFNetworking 尝试上传文件 void uploadFile NSArray paths NSSearchPathForDirectoriesInDomains NSDocumentDirectory NSUserDo
  • Android短信通知问题

    我正在尝试学习 android 所以我正在制作一些应用程序来使用它 我现在正在做的一个问题 我正在尝试制作一个短信通知应用程序 但它总是在模拟器中强制关闭 这是我的代码 import android app Notification imp
  • 低级键盘挂钩

    我刚刚买了一个新键盘 我有兴趣准确跟踪键盘整个使用寿命期间我按下 敲击的次数 我只想记录 keyUp 因为我不关心重复 我一直在搜索最好的方法来做到这一点 但我什至不知道该采取什么方法 所以我在智能搜索方面遇到了困难 另外 我真正使用过的唯
  • 如何在不使用 Distinct 的情况下删除 SQL 查询中的重复项?

    下面的查询结果有重复 我的问题是如何摆脱subTaskName不使用重复distinct SELECT tasks priority SELECT tasks name FROM tasks WHERE tasks taskid 11377
  • Perl、LibXML 和模式

    我有一个示例 Perl 脚本 我试图根据模式加载和验证文件 它们询问各个节点 usr bin env perl use strict use warnings use XML LibXML my filename source xml my
  • 是否可以从 Visual Studio 复制代码并将格式化代码粘贴到 OneNote 中?

    有没有办法从 Visual Studio C 复制代码并将其粘贴到 OneNote 中 而不会丢失格式 我能够做到这一点 但前提是我从 VS 复制 粘贴到 Word 从 Word 复制 然后粘贴到 OneNote 这是一个默认情况下似乎被禁
  • 如何获取 java.util.Timer 中的剩余时间?

    如何获取 util Timer 中的剩余时间 我想要做的是添加一个进度条 显示计时器重新开始之前剩余的时间 这就是我到目前为止所得到的 int seconds 8 java util Timer timer new Timer timer
  • 如何使用 Selenium RC 运行 Google Chrome?

    我正在尝试使用 Selenium RC Nunit asp net 测试我的网站 我可以让我的测试在 Firefox Safari opera IE 8 中运行 但不能在 google chrome 中运行 我将其放入浏览器参数中 sele
  • 返回活动时如何运行代码

    在我的申请中 我有 3 项活动 第一个 我开始活动 2 的主要部分 从 2开始 我开始 3 同时完成 2 当我完成 3 时 我会自动回到 1 问题 从 3 返回到 1 时如何添加 运行代码 不确定这是否有意义 但我想做的是 当结束 3 并返
  • 通过 Dropbox 更新图库网页?

    我想知道以下情况和脚本是否可能 我希望有一个照片库 Javascript 网页 该网页将按最新添加到 Dropbox 文件夹的顺序显示 PHP 或 Python 也就是说 当有人向 Dropbox 文件夹添加图片时 网页上有一个脚本会检查
  • 如何通过 BIRT API 设置参数并将其传递到 BIRT 报表设计器创建的 BIRT 报表?

    我创建了一个带有单个参数的简单报告 该参数在查询中使用 直接在报表设计器中执行时可以正常执行 顺便说一句 我没有在该报告中使用 JavaScript 或任何脚本 我看到有些人试图使用脚本和 或 JavaScript 传递参数来获取答案 但这