使用数据立方体向下钻取的交互式 BIRT 饼图

Interactive BIRT Pie Chart with Drill down using Data Cube

我有 3 个级别类别,其中划分了许多项目。

就像在第 1 级中一样,我有一个饼图。如果我单击该图表的任何切片,它应该转到该特定切片类别的第 2 级,然后再次转到第 3 级。 一切都应该发生在同一个 饼图 .

例如..我有一个饼图显示了两类动物的数量..即哺乳动物和鸟类。如果我点击哺乳动物,它应该更改饼图以显示草食性和肉食性哺乳动物的数量。

在我的真实场景中,我通过查询创建了一个包含所有数据的数据集。 然后我制作了一个具有 3 个维度和一个测量计数的数据立方体。

我在饼图上显示了第 1 级,但我无法移动到下一级。我是 BIRT 的新手。 而且我不需要使用指向其他报告的超链接从一个报告跳转到另一个报告。一切都在同一份报告中发生。

我正在使用: 启用 BIRT Designer Professional 版本:4.4.0

这可以通过使用 drill-through 超链接来实现。 drill-through不一定跳转到另一个报表:肯定可以钻取到同一个报表,设置报表参数控制维度层级。

一个直接的解决方案是基于同一个数据立方体设计三个图表(每个级别一个),并利用报表参数只保留当前级别的图表。这允许优化每个级别的图表视图:更改标题、图例、图表类型、字体大小等。

有几种方法可以从报告参数中禁用/启用图表,最有效的方法是通过 beforeFactory 中的脚本将其删除,如下所示。访问 this topic

var design=reportContext.getDesignHandle();

if (params["level"].value!="1"){
    design.findElement("chartLevel1").drop();
}
if (params["level"].value!="2"){
    design.findElement("chartLevel2").drop();
}
if (params["level"].value!="3"){
    design.findElement("chartLevel3").drop();
}