0

如何将参数从数据集行值传递给通过脚本数据源访问的 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);

谢谢

4

1 回答 1

0

我没有像我最初尝试的那样使用另一个数据集来解决它。刚刚使用了 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;
于 2013-08-08T13:00:14.490 回答