首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

怎样把一个列分成两排显示解决方案

2012-02-25 
怎样把一个列分成两排显示有一个表 tb_wp ,存放物品名称 wpmc现在需要打印出来物品列表 ,一列打印的太浪费

怎样把一个列分成两排显示
有一个表 tb_wp ,存放物品名称 wpmc

现在需要打印出来物品列表 ,一列打印的太浪费,所以想分两列打印

类似这样的效果,每列显示25个

序号物品序号物品
1aaa262sdf
2aa27sdf
3131281sdf
4112293sdf
5sdf30dfdf
6sdf31458



25sdfsd501212 

--------------

或者这样的也可以

序号物品序号物品
1aaa22sdf
3aa4sdf
513161sdf
711283sdf



49sdfsd501212 


-----------------

求各位达人给指条明路,我只想到一个笨办法

生成一个四列的数据窗口,插入25条空行,然后依次把数据填里面,但是感觉这个方法有点笨。


请各位达人给我指一条更好的方法

[解决办法]
用N_up格式的数据窗口试试
[解决办法]
n_up类型
[解决办法]
--如果你的序号连续

select max(case (序号 - 1) %2 when 0 then 序号) 序号1,
max(case (序号 - 1) %2 when 0 then 物品) 物品1,
max(case (序号 - 1) %2 when 1 then 序号) 序号2,
max(case (序号 - 1) %2 when 1 then 物品) 物品2
from tb group by (序号 - 1) / 2

--如果你的序号不连续
select max(case (px - 1) %2 when 0 then 序号) 序号1,
max(case (px - 1) %2 when 0 then 物品) 物品1,
max(case (px - 1) %2 when 1 then 序号) 序号2,
max(case (px - 1) %2 when 1 then 物品) 物品2
from (select t.* , px = (select count(1) from tb where 序号 < t.序号) + 1 from tb t) m
group by (px - 1) / 2

--如果sql 2005或oracle。
select max(case (px - 1) %2 when 0 then 序号) 序号1,
max(case (px - 1) %2 when 0 then 物品) 物品1,
max(case (px - 1) %2 when 1 then 序号) 序号2,
max(case (px - 1) %2 when 1 then 物品) 物品2
from (select t.* , row_number() over(order by 序号) px from tb t) m
group by (px - 1) / 2

 
对上述语句做成动态窗口,或是做成动态窗口后,再把数据导入到一个你已经做成报表的数据窗口中去.
[解决办法]
学习 。。。。。。。
[解决办法]
学习 。。。。。。。
[解决办法]
学习了....

热点排行