【问题】
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 表
A2:创建分栏后的表结构
A3:将 A1 中的记录填入分栏后表中
报表工具中可通过 JDBC 访问集算器脚本,像数据库一样使用,参考Java 如何调用 SPL 脚本。