纵向分栏

【问题】

I would like to create a table that should be vertical orientation, that means each resultset row should filled from left to right..

Can i achieve this without using crosstab?

【回答】

横向分栏的功能可以先用集算器把数据准备好作为普通报表实现,代码简单易懂,如下所示:



A

1

=myDB1.query("select EId,Name,Dept from employee")

2

=create(${Col.((t=~,A1.fname().(~+string(t)))).conj().concat@c()})

3

>round(A1.len()/Col).run(A2.record(A1.m(to(Col*(~-1)+1,Col*~)).conj(~.array())))

Col 是报表参数,代表为分栏数。

A1:查询 employee 表

1png

A2:创建分栏后的表结构

2png

A3:将 A1 中的记录填入分栏后表中

3png

报表工具中可通过 JDBC 访问集算器脚本,像数据库一样使用,参考Java 如何调用 SPL 脚本