在javascript中获取数据集中列的值

时间:2014-02-28 14:19:51

标签: birt

我想在我的图表中绘制动态垂直标记线。标记的位置在列ml_data中名为ml_position的数据集中可用。这是一个只有一行和一列的数据集。有没有办法在javascript中获得ml_position的价值?目前我有以下工作示例:

function beforeDrawMarkerLine(axis, markerLine, icsc)
{
    importPackage(Packages.org.eclipse.birt.chart.model.data.impl);
    importPackage(Packages.org.eclipse.birt.chart.model.component.impl);
    var ml_value = 20;
    markerLine.setValue(NumberDataElementImpl.create(ml_value)) ;
}

该值目前已修复(20)。我想将ml_position的值分配给ml_value

1 个答案:

答案 0 :(得分:7)

我的工作解决方案:

创建全局变量“mpos”并将图表放入简单表中,其中一行为一列。将具有ml_position的数据集分配给表。这对于在渲染图表之前执行数据集onFetch脚本非常重要。最后设置以下脚本:

数据集onFetch脚本:

reportContext.setPersistentGlobalVariable("mpos",row["ml_position"].toString());

图表onRender脚本:

function beforeDrawMarkerLine(axis, markerLine, icsc)
{
    importPackage(Packages.org.eclipse.birt.chart.model.data.impl);
    importPackage(Packages.org.eclipse.birt.chart.model.component.impl);
    var ci = icsc.getExternalContext().getScriptable().getPersistentGlobalVariable("mpos");
    markerLine.setValue(NumberDataElementImpl.create(ci)) ;
}