日期:2014-05-18  浏览次数:20380 次

[讨论散分]打印时实现特殊分页功能
/*
有表数据如下(数据不包含中文说明部分)。
要求:
          打印时候特殊分页,分页的结构是按原来的表编号次序,编号1对应打印第1页第1行,编号2对应打印第2页第1行
编号3对应打印第3页第1行...打完最后一页,再从第1页第2行开始打印。。。效果如下:

已知表的列数据为:表ID,编号,   OdID,
未知表的列数据为:序号
怎么样写个存储过程,实现这样的分页。
(提示:以下是61条数据,已经知道一页纸张可以打印6行数据,可以不用考虑列OdID,只要能算出如下的序号数据即可实现。)

我想了1天多,已经想到一个的解决方法,但还希望有朋友帮忙找更方便的方法,顺便放分,呵呵。大家一起想办法。星期1后我会贴出自己的写法。

第1行:
表ID         编号       OdID           序号
--------------------------
16070   1   1   1             ---第1页第1行
16071   2   2   7             ---第2页第1行
16072   3   3   13   ---第3页第1行
16073   4   4   19   ---第4页第1行
16074   5   5   25   ---....
16075   6   6   31
16076   7   1   37
16077   8   2   43
16078   9   3   49
16079   10   4   55
16080   11   5   61   ---第11页第1行
第2行:
16081   12   6   2   ---第1页第2行
16082   13   1   8   ---第2页第2行
16083   14   2   14   ---第3页第2行
16084   15   3   20  
16085   16   4   26  
16086   17   5   32  
16087   18   6   38  
16088   19   1   44  
16089   20   2   50
16090   21   3   56   ---第10页第2行
第3行:
16091   22   4   3
16092   23   5   9
16093   24   6   15
16094   25   1   21
16095   26   2   27
16096   27   3   33
16097   28   4   39
16098   29   5   45
16099   30   6   51
16100   31   1   57
第4行:
16101   32   2   4
16102   33   3   10
16103   34   4   16
16104   35   5   22
16105   36   6   28
16106   37   1   34
16107   38   2   40
16108   39   3   46
16109   40   4   52
16110   41   5   58
第5行:
16111   42   6   5
16112   43   1   11
16113   44   2   17
16114   45   3   23
16115   46   4   29
16116   47   5   35
16117   48   6   41
16118   49   1   47
16119   50   2   53
16120   51   3   59
第6行:
16121   52   4   6   ---第1页第6行
16122   53   5   12   ---第2页第6行
16123   54   6   18   ---第3页第6行
16124   55   1   24
16125   56   2   30
16126   57   3   36
16127   58   4   42
16128   59   5   48
16129   60   6   54  
16130   61   1   60   ---第10页第6行
*/

------解决方案--------------------
sql实现困难
------解决方案--------------------
需要通过临时表来实现