报表打印问题*********紧急!在线等待!****如果分数不够,只要帮我解决了,可以加分!
我的工资报表共有28个字段,其中6个字段暂时不显示(即宽度为0),我想将这些字段都打印在一张纸上,我选的是A4横打,打印预览显示正确,但打印出来的报表却往往是残缺不全(只显示一部分字段,却字段内容也只有几条),而当我选的是A4竖打时,打印出来的报表是正确的。
是不是PB打印报表对列字段个数有限制?如果有,具体如何?如果不是那又是什么原因?
问题点数:50、回复次数:13Top
1 楼zyqherozyqhero(永远的中华英雄男儿)回复于 2002-09-19 09:10:05 得分 10
可能是打印设置不对。如如打印方向设置、纸张边距等等问题。请看下面的例子:w_sheet.dw_1.Modify("datawindow.print.orientation=1")
w_sheet.dw_1.Modify("datawindow.print.paper.size=12")
w_sheet.dw_1.Modify("datawindow.print.margin.bottom=100")
w_sheet.dw_1.Modify("datawindow.print.margin.left=500")
w_sheet.dw_1.Modify("datawindow.print.margin.top=100")
w_sheet.dw_1.print()
如果还有问题请回信给我:zyqhero@elong.comTop
2 楼wantwater(非常年代)回复于 2002-09-19 09:16:14 得分 5
将你要打的字段的宽度设为你表中的宽度,然后再试试吧!Top
3 楼LittleDot88(小不点)回复于 2002-09-19 09:38:55 得分 0
To: zyqherozyqhero
纸张边距:我是在DW中设置好的,打印方向设置则是调用pb的打印函数:printsetup()Top
4 楼LittleDot88(小不点)回复于 2002-09-19 09:44:28 得分 0
To: zyqherozyqhero
而且其他报表打印都没问题,惟独工资报表Top
5 楼fjzjr(阿如)回复于 2002-09-19 09:47:56 得分 3
打印机设置可能有问题。Top
6 楼winnerjoanna(白雪)回复于 2002-09-19 10:54:11 得分 2
数据窗口是grid风格的吗Top
7 楼LittleDot88(小不点)回复于 2002-09-19 10:57:59 得分 0
是的Top
8 楼vvyjp(喻继鹏)回复于 2002-09-19 14:53:49 得分 5
打印机设置可能有问题,改程序是改不了的,可以装上随机的驱动程序,设置走纸方式,及页边距。。。。。。Top
9 楼zqllyh(学习Stupid As Pig中...)回复于 2002-09-19 15:28:22 得分 10
如果数据窗口设置好了属性用
dw_1.print()
不要用下面这种方式
long job
job = PrintOpen( )
PrintDataWindow(job, dw_1)
PrintClose(job)
要不在打印之前让操作员设置好打印机。
Top
10 楼LittleDot88(小不点)回复于 2002-09-20 08:09:07 得分 0
我用的就是:dw_1.print()Top
11 楼bravebarbarian(野蛮人)回复于 2002-09-20 08:37:03 得分 13
print_parms print_parm
string parm_value,parm_type,parm_filter
int parm_num,i,n
parm parm_arr[]
any realparm_arr[]
print_parm = message.powerobjectparm
dw_print.dataobject = print_parm.parm_dw
dw_print.settransobject(sqlca)
parm_arr[1] = print_parm.parm1
parm_arr[2] = print_parm.parm2
parm_arr[3] = print_parm.parm3
parm_arr[4] = print_parm.parm4
parm_arr[5] = print_parm.parm5
parm_num = message.number
parm_filter = print_parm.parm_filter
for i = 1 to parm_num
parm_type = parm_arr[i].parm_type
parm_value = parm_arr[i].parm_value
realparm_arr[i] = typeconvert(parm_type,parm_value)
next
CHOOSE CASE parm_num
CASE - 2
n = dw_print.retrieve(parm_arr[2].parm_value)
dw_print.object.st_title.text=parm_arr[1].parm_value
dw_print.object.st_unit.text=dw_print.object.st_unit.text+parm_arr[3].parm_value
dw_print.object.st_date.text=parm_arr[4].parm_value
CASE - 1
n = dw_print.retrieve(parm_arr[2].parm_value)
dw_print.object.st_title.text=parm_arr[1].parm_value
// dw_print.object.st_unit.text=dw_print.object.st_unit.text+parm_arr[3].parm_value
// dw_print.object.st_date.text=parm_arr[4].parm_value
CASE 0
n = dw_print.retrieve()
CASE 1
n = dw_print.retrieve(realparm_arr[1])
CASE 2
n = dw_print.retrieve(realparm_arr[1],realparm_arr[2])
//dw_print.retrieve()
CASE 3
n = dw_print.retrieve( realparm_arr[1],realparm_arr[2],realparm_arr[3])
CASE 4
n = dw_print.retrieve( realparm_arr[1],realparm_arr[2],realparm_arr[3],realparm_arr[4])
END CHOOSE
//dw_print.settransobject(sqlca)
dw_print.setfilter(parm_filter)
dw_print.filter()
dw_print.modify("datawindow.print.preview=Yes")
dw_print.modify("datawindow.print.preview.rulers=Yes")
if print_parm.parm_dir='1' then
cbx_orientation.checked=true
cbx_orientation.triggerevent(Clicked!)
else
cbx_orientation.checked=false
cbx_orientation.triggerevent(Clicked!)
end if
dw_print.object.datawindow.print.documentName=message.stringparm
dw_print.setfocus()
//this.cbx_printpreview.checked=true
//this.cbx_ruler.checked=true
bFirstTime=true
这是个通用打印程序中open事件中的内容。自己看吧。Top
12 楼LittleDot88(小不点)回复于 2002-09-25 09:47:44 得分 0
好象字段一多横向打印就不行了Top
13 楼booksfount(books)回复于 2002-09-25 10:08:59 得分 2
不管横向纵向,纸张都是竖着放,你是不是横向打印时,纸张也横向放了?Top




