BIRT编号为word作为计算列

时间:2009-11-06 06:44:49

标签: birt

我想问一下如何在BIRT中添加计算列来计算其单词表示的数字? (例如100到“一百”) 所以在我的数据集中,我可以有一个包含字符串

的列

我是BIRT的新人 希望我有一两个指针

3 个答案:

答案 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)

所以

您可能想看看Convert digits into words with JavaScript

那里真的很好。