Charts 在BIRT中,是否可以从汇总数据列创建图表?

Charts 在BIRT中,是否可以从汇总数据列创建图表?,charts,birt,summarization,Charts,Birt,Summarization,是否可以使用数据集中的汇总数据创建折线图 我的设想如下: 详细信息部分:每个单元格都是数据集中的一个输出字段 一月二月三月 项目1 R X R 项目2 X A R 项目3 R 页脚部分:在这里,我们使用count聚合元素和按值筛选来计算每个值每月的出现次数 总计: R 2 1 3 x110 A 0 1 0 我需要做的是添加一个图表,显示如下内容: 我得到的是: 在EXCEL中这非常简单,但我不知道如何在BIRT中实现 我想创建一个新的数据集,其中包含R、X和a的3个输出字段,每行的时间为一

是否可以使用数据集中的汇总数据创建折线图

我的设想如下: 详细信息部分:每个单元格都是数据集中的一个输出字段
一月二月三月

项目1 R X R

项目2 X A R

项目3 R

页脚部分:在这里,我们使用count聚合元素和按值筛选来计算每个值每月的出现次数
总计:
R 2 1 3

x110

A 0 1 0

我需要做的是添加一个图表,显示如下内容:

我得到的是:

在EXCEL中这非常简单,但我不知道如何在BIRT中实现

我想创建一个新的数据集,其中包含R、X和a的3个输出字段,每行的时间为一个月,因此我将有一个转置表,这样可以更轻松地绘制它。但我无法使用聚合字段来完成此操作,也无法找到如何使用主数据集中的输出字段来完成此操作

有什么想法吗?如果您需要源设计文件,我可以提供给您,但其中的逻辑可能很难理解

感谢您的帮助,并提前表示感谢


祝你有一个美好的2020年

首先,BIRT的经验法则:如果需要表外的聚合,请在表外创建它们。不要试图从外部访问表中的值。这是可能的,有时可能是唯一的解决方案,但它通常会弄乱整个报告,很难调试,甚至更难维护


合计

由于您的数据集看起来非常简单,并且您已经知道如何聚合以及聚合什么,因此您的第一个调用应该是数据集中的计算列:

在这里,您可以根据数据源使用该语言进行聚合。如果这是SQL,我想一个
COUNT
groupby
语句就可以了。 在此处创建图形所需的所有列

顺便说一句:计算列通常是BIRT中的银弹。我几乎在任何预计算或自定义字段创建中都使用它们

可视化

您没有提到用于图形的库,因此我假设您希望使用基本的BIRT图形。在x轴上显示月份的基本图表将完成您的工作。我只想在此补充一点,对于多个系列,您有两个选项: 您可以准备数据集,以便为图形提供每种类型的系列(图表示例中的一行),或者更简单:在计算列上使用可选的y系列分组(如前所述):

这样,图形将为您创建单独的系列。我希望这有帮助

如果您在一般情况下被基本的birt GRPAH所困扰,那么您可能需要考虑找到一个基于JavaScript的图形库,它可以完全满足您的需要并实现它。记住:您几乎可以将任何基于JavaScript的内容放入BIRT


最后一句话:为了您报告的最终用户,请使用多条形图。对于重叠的值,折线图是不可读的。

感谢Kekzpanda在这个问题上的帮助和时间

经过一段时间的努力,我终于找到了一个解决方案,通过使用javascript数组和一个额外的数据集,将我在表尾中的聚合“表”进行转换。以下是我为防止其他人遇到同样问题而采取的步骤:

例如,您需要转换一个包含10列和3条记录的表

  • 在报表初始化方法中,创建一个[10,3]维度的数组 //二维数组索引 var i=0; var j=0; //数组定义并使用“for”迭代初始化它 var matriz=新数组(10); 对于(i=0;i=array.length)返回(false);//完成数组中的每个项目后

    行[“A”]=矩阵[i][0]; 行[“B”]=矩阵[i][1]; 行[“C”]=矩阵[i][2]; i++;//将第一个索引增加1以移动到数组中的下一行

    返回(真)

  • 现在您有了带有转置数据的新数据集

  • 现在使用此数据集并绘制数据图,在图形设计中为数据集中的每个列创建不同的系列 希望这有帮助


    再见

    Kekzpanda,我正试图执行您提到的操作,但不幸的是,我使用的是IBM MAXIMO库,maximoDataSource对象中没有计算列。@Mauriciopolete我没有使用IBM MAXIMO,但请告诉我是否可以这样解决:创建联合数据集(右键单击数据集->新建联合数据集)。在左侧站点上使用从IBM Maximo库创建的数据集,在右侧使用相同的数据集(或者使用您创建的伪数据集,以便完全联接将产生与前面相同的数据集)。联合数据集应具有计算列选项。