应用的背景:一个单据上的物料数量很多,需要根据物料的装箱情况,将多个装箱单的信息打印在一张纸上。
(1)制作需要打印的Freedom的DW;
(2)建一个Composite的DW,引入需要打印的DW;
(3)根据需要打印的份数,复制引入的DW;
(4)设定DW的参数;
(5)设定各个子DW的参数;
(6)编写程序调用。
下面是一页打印4张单据的例子:
(3)根据需要打印的份数,复制引入的DW;
(4)设定DW的参数;
(5)设定各个子DW的参数;
(6)编写程序调用。
下面是一页打印4张单据的例子:
u_report_structure luo_Parm
luo_Parm.is_object = dw_print.dataobject
IF dw_1.rowcount()>0 Then
luo_Parm.il_id = dw_1.getitemnumber(1,"dbid")
ELSE
return
END IF
long i
datastore lds_1
lds_1=create datastore
lds_1.dataobject="dw_bb"
lds_1.settransobject(sqlca)
lds_1.retrieve(luo_Parm.il_id)
for i= 1 to lds_1.rowcount() step 4
if mod(i, 4) = 1 then
luo_Parm.is_id = lds_1.getitemstring(i,"bh")
end if
if i+1 <= lds_1.rowcount() then
luo_Parm.is_id1 = lds_1.getitemstring(i+1,"bh")
end if
if i+2 <= lds_1.rowcount() then
luo_Parm.is_id2 = lds_1.getitemstring(i+2,"bh")
end if
if i+3 <= lds_1.rowcount() then
luo_Parm.is_id3 = lds_1.getitemstring(i+3,"bh")
end if
if lds_1.rowcount()<5 then
OpenWithParm(w_report_frame, luo_Parm)
else
dw_print.settransobject(sqlca)
dw_print.retrieve(luo_Parm.il_id,luo_Parm.is_id,luo_Parm.is_id1,luo_Parm.is_id2,luo_Parm.is_id3)
dw_print.print()
END IF
NEXT