我想问一下如何在BIRT中添加计算列来计算其单词表示的数字? (例如100到“一百”) 所以在我的数据集中,我可以有一个包含字符串
的列我是BIRT的新人 希望我有一两个指针
答案 0 :(得分:2)
我知道这是一个很老的帖子,但如果你仍然感兴趣,我就是这样做的:
添加包含将数字转换为文本表示的函数/方法的脚本或jar。要执行此操作,例如,请创建server-side-utilities.js文件,然后在“资源浏览器”选项卡中添加资源。然后,在报告本身的“属性编辑器”中,单击“资源”选项卡并添加该JS文件。
然后编辑JS文件以包含一个将数字转换为文本并保存的函数。然后在数据集对话框中添加一个计算列,命名它,将数据类型设置为字符串,并设置表达式以调用已定义的函数,并将相关列的值传递给函数,例如, convertNumberToText(row["NUMERIC_COL"])
。
convertNumberToText()
的部分实施可能是:
function convertNumberToText(number)
{
var text;
switch (number)
{
case 1:
{
text = "One";
break;
}
default: text = "Unsupported number";
}
return text;
}
答案 1 :(得分:0)
实际上,即使这个问题有一个公认的答案,我也会提供另一种解决方案。
在数据库中创建一个转换表:
number as_one as_first
------ ----------- ------------
1 one first
2 two second
99 ninety-nine ninety-ninth
只需使用查询(或子查询或隐式/显式连接)来检索您感兴趣的数字的文本值。
这大大简化了客户端上的代码,但代价是最小的存储空间和一些表设置。
答案 2 :(得分:0)