2

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

我是 BIRT 的新手,希望对我有一两个指点

4

3 回答 3

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;
}
于 2010-03-01T13:55:05.203 回答
0

实际上,即使这个问题有一个公认的答案,我也会提供另一种解决方案。

在数据库本身中创建一个转换表,如下所示:

number  as_one       as_first
------  -----------  ------------
     1  one          first
     2  two          second
    99  ninety-nine  ninety-ninth

并且只需使用查询(或子查询或隐式/显式连接)来检索您感兴趣的数字的文本值。

这大大简化了客户端上的代码,代价是最小的存储空间和一些表设置。

于 2010-03-19T02:17:47.403 回答
0

所以,

You may want to take a look at Convert digits into words with JavaScript.

Really good stuff there.

于 2020-10-22T19:02:14.367 回答