【问题标题】:How to add a dynamic marker to a BIRT chart如何向 BIRT 图表添加动态标记
【发布时间】:2015-08-06 22:41:30
【问题描述】:

我创建了一个带有图表的 BIRT 报告,该图表从 oracle 数据库中获取数据。 我把图表做好了。现在我需要在图表中添加 4-5 个标记。 可以更改的标记值也存储在数据库中。

我尝试了本文中提到的脚本,并进行了一些修改http://blogs.actuate.com/birt-chart-scripting-dynamic-markers/

function beforeGeneration(chart, icsc)
{ 
importPackage(Packages.org.eclipse.birt.chart.model.component.impl); 
importPackage(Packages.org.eclipse.birt.chart.model.data.impl); 
importPackage(Packages.org.eclipse.birt.chart.model.attribute); 
importPackage(Packages.org.eclipse.birt.chart.model.attribute.impl);

var chart = icsc.getChartInstance();
var yAxis = chart.getBaseAxes()[0];

var min_value = icsc.getExternalContext().getScriptable().getPersistentGlobalVariable("min_val");
var ok_value = icsc.getExternalContext().getScriptable().getPersistentGlobalVariable("ok_val");
var great_value = icsc.getExternalContext().getScriptable().getPersistentGlobalVariable("great_val");

min_ml = MarkerLineImpl.create(yAxis, NumberDataElementImpl.create(min_value));
min_ml.getLabel().getCaption().setValue("Minimum");
min_ml.getLineAttributes().getColor().set(255,0,0);

} 

它会生成一个标记,但位置错误。 似乎没有根据 x 轴值正确标记。

这个脚本可能有什么问题?

【问题讨论】:

    标签: charts birt


    【解决方案1】:

    我发现了脚本的问题。

    我尝试为 min_value 提供硬编码值,然后它起作用了。调试后发现X轴的数据格式是小数,与数据库取的整数格式值不匹配。

    在格式图表窗口中,我将轴数据格式更改为小数点为 0 的数字。然后它起作用了 :)

    猜你喜欢
    • 1970-01-01
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多