【问题标题】:pass parameter to scripted datasource from another dataset将参数从另一个数据集传递到脚本数据源
【发布时间】:2013-08-08 10:47:05
【问题描述】:

如何将参数从数据集行值传递给通过脚本数据源访问的 java 函数?

我有一个解密加密字符串的 java 类

class Decryptor{
public String decrypt(text)
{
.
.
StandardPBEStringEncryptor textEncryptor = new StandardPBEStringEncryptor();
return textEncryptor.decrypt(text);
}
}

我将它导入到我的 birt 报告中,如下所示: 我创建了一个名为 dsCode 的数据集,其中包含“code”列;

open:
sessionUtil = new  Packages.com.reports.server.generator.data.SessionUtil();
sessionUtil.openCurrentSession();
c = new Decryptor();
textDecrpt = c.decrypt("O6pas1t9NyY9bmAtjvX2NA==");

fetch;
row["code"] = textDecrpt ;
return true;

这工作正常。但是我想将一个值从另一个数据集行值(dsCustomerIfdo 的加密代码列)传递给解密函数。我该怎么做呢?我将 dsCode 作为子报表的数据源,并将名为 pmCode 的参数添加到 dsCode 并使用“数据集参数绑定”将值传递给它 并制作了这样的脚本

textDecrpt = c.decrypt(params["pmCode"]);

这给了我一个未定义文件的错误结尾。 如何在 javascript 中访问数据集行值?还是将数据集的行值传递给脚本函数?

这不行

  var dset = reportContext.getDesignHandle().findDataSet("dsCustomerInfo");
   textDecrpt = c.decrypt(dset.getRow("encryptedCode").value);

谢谢

【问题讨论】:

    标签: javascript birt params


    【解决方案1】:

    我没有像我最初尝试的那样使用另一个数据集来解决它。刚刚使用了 dsCusotmerInfo,添加了一个名为 decryptedCode 的计算列,并在其上添加了 fetch 脚本。这会解密所有客户的所有代码。

    sessionUtil = new  Packages.com.reports.server.generator.data.SessionUtil();
    sessionUtil.openCurrentSession();
    c = new Decryptor();
    row["decryptedCode"] = c.decrypt(row["encryptedCode"]);
    return true;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多