小编Vic*_*sto的帖子

如何在 Jaspersoft Studio 中传递数组/集合类型的参数并在查询中使用它?

我试图使用“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)

但现在参数没有提示,报告给我带来了一切。

jasper-reports jaspersoft-studio

2
推荐指数
1
解决办法
2万
查看次数

这种抽象重复是如何工作的?

自从梦想成为一名优秀的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变成计数器/迭代器?

我一直都在使用它,但仍然不知道它是如何工作的,因此在迫切需要时我无法使用它。

javascript function

2
推荐指数
1
解决办法
71
查看次数