关于N-UP报表问题

smallroad 2005-09-22 12:18:04
请问各位高手:
我要做一个数据报表是N-UP格式如下:

房间1 大包 房间2 大包 房间3 大包

房间4 大包 房间5 大包

房间6 小包 房间7 小包 房间8 小包

房间9 小包

房间10 中包 房间11 中包 房间12 中包

房间13 中包 房间14 中包

请问以上格式如何实现?万分感谢!
...全文
205 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiangxj 2005-09-30
  • 打赏
  • 举报
回复
//dw_2:辅助用。 按1)包房2)房间排序
//dw_1:N-UP分三列

long i,j=0
ls_bf=dw_2.object.包房[1]
dw_1.reset()

for i=1 to dw_2.rowcount()
j=j+1
dw_1.insertrow(0)
if dw_2.object.包房[i]=ls_bf then
dw_1.object. .包房[j]=ls_bf
dw_1.object. .房间[j]= dw_2.object. .房间[i]
else
if mod(j,3)=1 then
ls_bf=dw_2.object.包房[i]
dw_1.object. .包房[j]=ls_bf
dw_1.object. .房间[j]= dw_2.object. .房间[i]
else
for k=1 to 3-mod(j-1,3)
j=j+1
dw_1.insertrow(0)
next
end if
end if
next
zdnest 2005-09-30
  • 打赏
  • 举报
回复
能不能取完数据以后,先判断每一类除三后余几,余1就增加2条,余2增加1条,然后再显示出来?
  • 打赏
  • 举报
回复
//我的每行排的六个 参考一下吧

//相同类别的记录压缩

long ll_temp, ll_currRow
int li_insert
string ls_newType

if dw_1.rowCount() < 1 then return

ls_newType = trim (dw_1.getItemString (1, "申请的准驾车型代号") )
ll_currRow = 2
do while ll_currRow <= dw_1.rowCount ()
if trim ( dw_1.getItemString (ll_currRow, "申请的准驾车型代号") ) = ls_newType then
dw_1.setItem (ll_currRow, "申请的准驾车型代号", '' )
else
//插入几个空行,新的类别排到下一行
ls_newType = trim ( dw_1.getItemString (ll_currRow, "申请的准驾车型代号") )
ll_temp = ll_currRow - 1
ll_temp = mod (ll_temp, 6)
ll_temp = 6 - ll_temp
ll_temp = mod (ll_temp, 6)
for li_insert = 1 to ll_temp step 1
ll_currRow = dw_1.insertRow (ll_currRow)
dw_1.setRow (ll_currRow)
ll_currRow ++
next
end if
ll_currRow ++
loop
  • 打赏
  • 举报
回复
我做个你这个很类似的

方法就是一行一行的扫描 发现类型不一样而且记录数被3除不余一的话就插入空行
smallroad 2005-09-29
  • 打赏
  • 举报
回复
期待高手们的参与
smallroad 2005-09-22
  • 打赏
  • 举报
回复
房间1 大包 房间2 大包 房间3 大包
房间4 大包 房间5 大包
房间6 小包 房间7 小包 房间8 小包
房间9 小包
房间10 中包 房间11 中包 房间12 中包
房间13 中包 房间14 中包

前面是包间名称,后面是包间类别,N-UP是3列,我想按包间类别分开显示。
hangzhou6274 2005-09-22
  • 打赏
  • 举报
回复
看不懂,看不出规律
hangzhou6274 2005-09-22
  • 打赏
  • 举报
回复
好的方法我也没有了.
具体的做法就是统计大包间的总数,然后/3,判断能否整除,如果不能就补充insert不够的记录,重复小包间,中包间,完成以后用N-UP数据窗口,先排序就可以了.你insert的时候房间编号不要插入,只要插入房间的类别就可以了,然后在数据窗口的房间类别上写判断 if (房间名称 = '' or isnull(房间名称),0,1)这样就可以达到你要得目的了
smallroad 2005-09-22
  • 打赏
  • 举报
回复
能不能说详细点?有没有被的好方法?
hangzhou6274 2005-09-22
  • 打赏
  • 举报
回复
没戏,我做不出来,除非用程序先处理好数据.比如:一行三列,如果不够就不满三列,这样你先用房间类别排序在检索就可以了.

1,079

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧