当前位置: 代码迷 >> PB >> 报表有关问题~
  详细解决方案

报表有关问题~

热度:71   发布时间:2016-04-29 09:58:04.0
报表问题~急、急、急!!!!
我现在要做这样的一个报表: 

日期              车号 净重    司秤员   日期    车号 净重  司秤员
2007-01-01     001       200kg       王明      2007-01-01     001       200kg      王明  

也就是说在一张纸上显示两个字段完全相同的报表,报表的行数是固定的,(16行)报表的填充过程是先填满左面报表的16行,再填充右面报表的16行,我该怎么实现它,哪位高手能帮我一下,我将不胜感激!!!!

备注:我用的是PB9.0   的tabular的external风格做的

------解决方案--------------------
用N-UP应该可以解决这个问题的!
------解决方案--------------------
不用写代码,你新建个dw选N-UP的就知道了。
------解决方案--------------------
dw_1.object.车号[i] = ls_value

dw_1.setitemstring(i, "车号 ",ls_value)
------解决方案--------------------
大致是这个意思,没有经过测试,需用到两个数据窗口,其中dw_read用于记取数据,dw_disp用于显示:

long ll_row

for ll_row = 1 to dw_read.RowCount()
dw_disp.InsertRow(0)
next
//假设前半部分放在左边
long ll_row2 = 1
for ll_row = 1 to dw_read.RowCount()/2 + Mod(dw_read.RowCount(),2)
ls_value1 = dw_read.GetItemString(ll_row,1)
ls_value2 = dw_read.GetItemString(ll_row,2)
//取其它字段的值......
dw_disp.SetItem(ll_row2,1,ls_value1)
dw_disp.SetItem(ll_row2,2,ls_value2)
//其它字段的赋值......
ll_row2 += 2
next

//假设后半部分放在右边
ll_row2 = 2
for ll_row = dw_read.RowCount()/2 + Mod(dw_read.RowCount(),2) to dw_read.RowCount()
ls_value1 = dw_read.GetItemString(ll_row,1)
ls_value2 = dw_read.GetItemString(ll_row,2)
//取其它字段的值......
dw_disp.SetItem(ll_row2,1,ls_value1)
dw_disp.SetItem(ll_row2,2,ls_value2)
//其它字段的赋值......
ll_row2 += 2
next
  相关解决方案