我试图使用“IN”子句将一组值作为参数传递,以从 DW 获取报告。
问题是,当我将参数设置为“Array”或“Collection”时,Jaspersoft Studio预览屏幕上没有提示,并且我无法使用它。
第一次,我尝试将参数作为字符串传递,其中 $P{convenio} 是一个字符串,传递以完成“IN”:
//Select and joins here...
WHERE ("o"."status_operacao" IN ('EFETUADO', 'SUSPENSO'))
AND ("c"."codigo" IN ( $P{convenio}))
AND ("o"."codigo_produto" = 1)
Run Code Online (Sandbox Code Playgroud)
它不起作用,返回错误“missing EOF at ')'”,但没有关闭错误。
最后一个选项是使用 $X{},因此我将 de $P{convenio} 设置为数组/集合类型,并将查询如下所示:
//Select and joins here...
WHERE ("o"."status_operacao" IN ('EFETUADO', 'SUSPENSO'))
AND ($X{IN, "c"."codigo", convenio})
AND ("o"."codigo_produto" = 1)
Run Code Online (Sandbox Code Playgroud)
但现在参数没有提示,报告给我带来了一切。
自从梦想成为一名优秀的JS开发人员以来,我正在阅读一些Javascript内容。我有点知道如何使用基础知识来满足我的PHP需求,但是仍然存在一些疑问。
我看到了一些例子,并得到了:
function repeat(n, action) {
for (let i = 0; i < n; i++) {
action(i);
}
}
let labels = [];
repeat(5, i => {
labels.push(`Unit ${i + 1}`);
});
console.log(labels);Run Code Online (Sandbox Code Playgroud)
因此,如果需要,我可以使用它来重复一些基本功能。理解了,但是在另一种情况下,我可以使用相同的功能并使用不同的方法。
如果我想传递一个函数,为什么变量i变成计数器/迭代器?
我一直都在使用它,但仍然不知道它是如何工作的,因此在迫切需要时我无法使用它。