1

关于 Jasper ReportServer 5.1 及其 DomEL(域表达式语言)的问题。

我有一个只有一张桌子的域。T是一个表,(日期日期,编号)是 Oracle 中的列及其类型。

因此,如果我尝试使用表达式在我的域中创建新的“计算字段”:

first_value(value) over (order by day)

出现错误消息:

Found 'over' after end of expression

我认为的主要原因是:

http://community.jaspersoft.com/documentation/sql-functions

引用:

您可以在 DomEL 表达式中使用 SQL 函数,但仅限于有限的情况:

• 数据库必须支持这些功能。有关可用功能及其语法,请参阅供应商文档。• 函数必须遵循逗号分隔参数的约定。例如,您可以使用 TRIM(person.name),但不能使用 TRIM('Jr' FROM person.name) • 返回值的类型必须适当,无论是在表达式中还是对于计算字段的类型。• SQL 上下文必须适合函数。例如,您不能在计算字段中使用 COUNT 等聚合函数,因为没有 GROUP BY 子句。 除了逗号分隔的参数模式,DomEL 验证不能强制执行这些标准。您必须确保任何 SQL 函数都满足这些条件,否则表达式在使用域创建报告时会导致错误。

我的问题是这种“强制执行”的结果吗?

如何使用 SQL 窗口函数构造计算字段?

Jasper 有什么方法可以实现 first_value/last_value/lead/lag 效果?

谢谢!

4

1 回答 1

0

这是绝对不可能的。很伤心。

于 2013-06-25T21:07:32.040 回答