【问题】
My question is: How can I prepare template which will receive various number of columns in such way, that if they won’t fit to page, next columns would be printed on a second page. For example
If I have 10 columns, but only 6 fit to the page 1, the rest would be visible on a page 2. Same functionality is available in Microsoft Excel.

【回答】
用存储过程可以拼成上面的结果集,但代码难度较大,这里可以选用集算器实现,在数据源阶段将 10 列 N 行的结果集拼成 5 列 N*2 行,再在每页开头补上列名。SPL 代码如下:
| A | |
| 1 | $select * from tb1 | 
| 2 | =create(c1,c2,c3,c4,c5) | 
| 3 | =A1.group((#-1)\6) | 
| 4 | =A3.run(A2.record(["column1","column2","column3","column4","column5"]| ~.conj([column1,column2,column3,column4,column5])|["column6","column7", "column8","column9","column10"]|~.conj([column6,column7,column8, column9,column10]))) | 
A1:执行 SQL,取出 10 列 N 行的数据。

A2:创建新的空二维表。

A3:将 A1 每隔 6 行分一组,# 表示行号,"\" 表示整除。

A4:循环 A3 的每组数据,每次向 A2 插入 14 行:前 5 列列名、前 5 列的 6 行、后 5 列列名,后 5 列的 6 行。~ 表示循环中的当前组。

报表工具中可通过 JDBC 访问集算器脚本,像数据库一样使用,参考Java 如何调用 SPL 脚本。
![[附源码]计算机毕业设计springboot万佳商城管理系统](https://img-blog.csdnimg.cn/a3ef5aa99c894abeaf42fad8b9b4521a.png)


![[附源码]Python计算机毕业设计SSM考勤系统设计(程序+LW)](https://img-blog.csdnimg.cn/4370b90f5b9e443c83b6b888c99da9d0.png)




![[附源码]计算机毕业设计springboot校园便携系统](https://img-blog.csdnimg.cn/b94325aac09d4a8fa39be1c05f538040.png)



![[附源码]Python计算机毕业设计Django家庭医生签约服务管理系统](https://img-blog.csdnimg.cn/262c76fe08224ac78668aa6052de5da8.png)

![时序数据库-6-[IoTDB]的数据模式](https://img-blog.csdnimg.cn/12a4b91874974f63b44bbc179000fc55.png)
![[附源码]计算机毕业设计JAVA校园期刊网络投稿系统](https://img-blog.csdnimg.cn/c8d304ba0f1247fb80e236c77d4ad29f.png)



