首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将birt数据集列拆分为多个行

如何将birt数据集列拆分为多个行
EN

Stack Overflow用户
提问于 2014-04-03 20:38:07
回答 2查看 2.3K关注 0票数 1

我的数据源有一列包含逗号分隔的数字列表。

我想要创建一个数据集,该数据集将这些数字转换为分组,以便在条形图中使用。

需求

  1. 数字将在0-17之间。
  2. 分组: 0-2,3-5,6-10,11-17
  3. X轴标签必须是分组。
  4. Y轴是包含分组的行的百分比。
    • 请注意,因为每一行都可以贡献到多个列,所以百分比可以加到> 100%。

你能提供的任何帮助都会很棒.我对BIRT很陌生,已经坚持了几天了

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-04 07:13:16

不确定我是否确切地理解了这些需求,但您的基本问题“将数据集列拆分为多个行”可以使用脚本数据集解决,也可以使用纯SQL解决(取决于您的DB)。

无论哪种方式,您都需要第二个数据集(例如,您的数据模型是主细节,而在布局中您将需要类似的内容)。

表/列表“主表绑定到主表/列表”绑定到详细数据

detail需要将主DS中逗号分隔的结果列作为"String“类型的输入参数。

使用脚本数据集进行此操作非常容易,您了解Javascript,并且了解了脚本数据集的工作方式:创建一个类型为myValues的报告变量"myValuesIndex“,其默认值为null,第二个报表变量为整数类型的”myValuesIndex“,默认值为0。

(注:这都是未经测试的!)

将dataset "detail“创建为一个脚本化的DS,其中一个类型为String的输入参数"csv”和一个类型字符串的输出参数"value“。

在脚本DS的开放事件中,代码:

代码语言:javascript
复制
  vars["myValues"] = this.getInputParameterValue("csv").split(",");
  vars["myValuesIndex"] = 0;

在fetch事件中,代码:

代码语言:javascript
复制
  var i = vars["myValuesIndex"];
  var len = vars["myValues"].length;
  if (i < len) {
    row["value"] = vars["myValues"][i];
    vars["myValuesIndex"] = i+1;
    return true;
  } else {
    return false;
  }

例如,对于csv = "1,2,3-4,foo“的主DS结果行,详细的DS将生成4行,其值= "1”值= "2“值= "3-4”值= "foo“。

使用Oracle DB,无需Javascript就可以完成这一任务。然后细节DS (具有与上面相同的输入参数)如下所示:

代码语言:javascript
复制
  select t.value as value from table(split(?)) t

有关拆分函数的定义,请参见RedFilter对Is there a function to split a string in PL/SQL?的答复

如果得到ORA-22813,则应更改原始定义。

代码语言:javascript
复制
  create or replace type split_tbl as table of varchar2(32767);

代码语言:javascript
复制
  create or replace type split_tbl as table of varchar2(4000);

正如在https://community.oracle.com/thread/2288603?tstart=0上提到的

使用regexp_substr在11g中使用纯SQL也是可能的(参见相同的页面)。

票数 1
EN

Stack Overflow用户

发布于 2019-02-21 10:43:06

在已编写脚本的数据集中创建参数。在将脚本数据集赋值给Table之后,我们必须通过dataset参数绑定传递或链接实际的数据集到脚本数据集参数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22848497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档