gpt4 book ai didi

java - birt 报告中的嵌套循环

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:43:31 24 4
gpt4 key购买 nike

我正在使用 Eclipse Birt 从 JSON 文件生成报告。

我的 JSON 文件如下所示:

{  
"cells":[
{
"type":"basic.Sensor",
"custom":{
"identifier":[
{
"name":"Name1",
"URI":"Value1"

},
{
"name":"Name4",
"URI":"Value4"
}
],
"classifier":[
{
"name":"Name2",
"URI":"Value2"
}
],
"output":[
{
"name":"Name3",
"URI":"Value3"
}
],

},
"image":{
"width":50,
"height":50,
"xlink:href":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAABEJAAARCQBQGfEVAAAABl0RVh0U29mdHdhcmUAd3Vi8f+k/EREURQtsda2Or/+nFLqP6T5Ecdi0aJFL85msz2Qxyf4JIumMAx/ClmWt23GmL1kO54CXANAVH+WiN4Sx7EoNVkU3Z41BDHMeXAxjvOxNr7RJjzHX7S/jAflwBxkJr/RwiOpWZ883Nzd+Wpld7tkBr/SJr7ZHZbHZeuVweSnPfniocMAWYwcGBafH0OoPamFGAaY4ZBZjmmFGAaY4ZBZjmmFGAaY4ZBZjmmFGAaY7/B94QnX08zxKLAAAAAElFTkSuQmCC"
}
}
},
{
"type":"basic.Sensor",

"custom":{
"identifier":[
{
"name":"Name1",
"URI":"Value1"

},
{
"name":"Name4",
"URI":"Value4"
}
],
"classifier":[
{
"name":"Name2",
"URI":"Value2"
}
],
"output":[
{
"name":"Name3",
"URI":"Value3"
}
],

},

"image":{
"width":50,
"height":50,
"xlink:href":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9igAQAAAgAIoAEAAAIACKABAAACAAigAQAAAgAIoAEAAAIACKABAAACAAigAQAAAgAIoAEAAAIADqhvprADeSsau00l5NAAAAAElFTkSuQmCC"
}
}
},
{
"type":"basic.Platform",

"custom":{
"identifier":[
{
"name":"Name1",
"URI":"Value1"

}
],
"classifier":[
{
"name":"Name2",
"URI":"Value2"
}
],
"output":[
{
"name":"Name3",
"URI":"Value3"
}
],

"image":{
"width":50,
"height":50,
"xlink:href":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAA6TH0jqtg6U8EsCdnm3SpevSK7Pb85xABEMBuLAn2hxjRve7SFzYEaB/HhytLQ4ABRwCWBPvBKnRk6U8EkBeOD9f7iwAGHAGEYEmwDxLvzNKfCCDP8NGLQd3lY7D0JwI4kmlwfHhX6dTSXxsRAAHsWR7aUjc7uM5Wg=="
}
}
}
]
}

我有 3 个单元格,每个单元格包含 1 个图像、1 个名称、1 个类型和 3 个表格,这是我到目前为止所做的:enter image description here

我正在努力做的是一个嵌套循环,我希望我的 JSON 中的每个对象(Cell)都有一个这样编号的段落:

  • 2.x 组件单元格的名称:
    • 图片
    • 输出表
    • 标识符表
    • 分类器表

所以要做到这一点,我需要迭代每个单元格,然后迭代每个表输出、标识符和分类器,我不知道我该怎么做,一个嵌套循环。就像一个代表单元格数量的列表,它包含 3 个表,一个图像,一个名称。

**编辑:**这是数据集的open方法

// Grab the JSON file and place it in a string
fisTargetFile = new FileInputStream(new File("C:/Users/Sample Reports/moe.json"));
input = IOUtils.toString(fisTargetFile, "UTF-8");

// Store the contents in a variable
jsonData = input;

// Convert the String to a JSON object
myJSONObject = eval( '(' + jsonData + ' )' );

// Get the length of the object
len = myJSONObject.cells.length;

// Counter
count = 0;

获取方法:

if(count < len) {
var name = myJSONObject.cells[count].attrs.text["text"];
var type = myJSONObject.cells[count].type;
var icon =myJSONObject.cells[count].attrs.image["xlink:href"];



icon = icon.split(",");

icon= icon[1];
imageDataBytes = icon;

row["name"] = name;
row["type"] = type;
row["icon"] = Base64ToBlob.toBytes(icon);



Logger.getAnonymousLogger().info( row["icon"]);
count++;
return true;
}

return false;

最佳答案

您想使用嵌套表,有一个很好的教程展示了如何将嵌套表链接到外部表:请 watch carefully this demo首先,特别看看子表是如何通过数据集参数链接到外表的。

当然,您的案例更具挑战性,因为您需要使用脚本数据集和多个子表来执行此操作。我已经做了类似的事情,你必须为每个子表创建一个脚本数据集。要点是:

  • 在每个子数据集的“参数”部分,创建一个输入参数并将其命名为例如“systemID”
  • 通过“拖放”外部表中的每个数据集来创建您的子表
  • 在每个子表的“绑定(bind)”部分,将参数“systemID”链接到外表的ID字段
  • 在子数据集的“打开”事件中,使用此表达式访问参数值:inputParams["systemID"] 因此您可以过滤“myJSONObject ”。
  • 确保“myJSONObject一次性初始化很重要,否则如果在每次迭代时对其进行评估,性能可能会显着降低。例如在报告的“初始化”事件中对其进行评估。

就是这样,这并不容易,但这些要素应该有助于完成这份报告。

关于java - birt 报告中的嵌套循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30442424/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com