大佬们,我试了单元格里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(', ')); // 假设设置值时可能需要将数组转换为字符串 |
最佳回答 |
||||
0
|
|