js使用数据集问题,求指点

大佬们,我试了单元格里value('ds1-1', 5, 1)和js里的FR.remoteEvaluate("value('ds1-1', 5, 1)")结果不一致

我需要根据多个不同的条件,查询到累计5条数据,用js的FR.remoteEvaluate('value("ds1", 1)')查询到结果,然后放在参数面板上;

我输出了日志看到js里的ds1的结果和在单元格直接用value("ds1", 5,1)得到的不一样,也是我要的姓名,但是和8个ds的结果都不一样,

请问我该怎么使用

function fetchNamesFromDatasets() {

    var resultNames = [];

    var requiredNameCount = 5;

    var datasets = ["ds1-1", "ds1-2", "ds1-3", "ds1-4, "ds1-5", "ds1-6", "ds1-7", "ds1-8"];

    var currentDsIndex = 0;

    var columnName = 5; // 假定姓名列固定为第5列

    while (resultNames.length < requiredNameCount && currentDsIndex < datasets.length) {

       console.log("currentDsIndex="+currentDsIndex);

        var currentDs = datasets[currentDsIndex];

        console.log("currentDs="+currentDs);

        var datasetIsEmpty = FR.remoteEvaluate('ISNULL(value("' + currentDs + '", 1, 1))');

        

        if (!datasetIsEmpty) {

            var rowCountInDs = parseInt(FR.remoteEvaluate('COUNT(value("' + currentDs + '", 1))'));

            for (var rowIndex = 1; rowIndex <= rowCountInDs; rowIndex++) {

                var name = FR.remoteEvaluate('value("' + currentDs + '", ' + columnName + ', ' + rowIndex + ')');

                

                console.log("name="+name);

                console.log("rowIndex="+rowIndex);

                console.log("rowCountInDs="+rowCountInDs);

                // 确保姓名非空且未在结果中重复

                if (name !== null && name !== undefined && name.trim() !== '' && !resultNames.includes(name)) {

                    resultNames.push(name);

                    

                    // 检查是否已达到所需姓名数量

                    if (resultNames.length >= requiredNameCount) {

                        break;

                    }

                }

            }

        }

        currentDsIndex++;

    }

    

    return resultNames;

}

// 调用函数并处理返回的数据

var finalNames = fetchNamesFromDatasets();

console.log(finalNames);

// 假设这部分代码在一个可以访问form对象的上下文中

var form = this.options.form;

var labelname = form.getWidgetByName("finalNames");

labelname.setValue(finalNames.join(', ')); // 假设设置值时可能需要将数组转换为字符串

FineReport 安静的话匣子 发布于 2024-6-24 09:27 (编辑于 2024-6-24 10:31)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
安静的话匣子Lv4见习互助
发布于2024-6-24 10:45

打扰了, 原来是参数面板控件被赋值出问题了,我使用了常用参数,结果没把参数传递到部分参数

  • 0关注人数
  • 208浏览人数
  • 最后回答于:2024-6-24 10:45
    请选择关闭问题的原因
    确定 取消
    返回顶部