急求打印时多出一个空白页的解决方法

newskysoft 2006-04-27 12:10:25
当使用复合DW时如果包含了一个newspaper=2的子报表,那么当子报表的最后一页有两栏时pb会多显示一个空白页(不存在隐藏列或某个object过宽的问题),比如总共10页会显示11页,但是如果最后一页只有一栏则正常显示。如果单独retrieve含newspaper的子报表则页数是正常的。

该问题只在pb9中存在,pb8正常,请兄弟们帮忙啊
...全文
1871 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
mzqfk 2006-08-15
  • 打赏
  • 举报
回复
记号!
2sword 2006-08-15
  • 打赏
  • 举报
回复
有个非常好的解决办法:


ls_dw=idw_data.dataobject //得到传来的数据窗口的报表
//在此要注意: width="2000" 很重要,这是保证不出现空白页的关键所在
ls_syntax='create report(band=detail dataobject="' +ls_dw + '" x="0" y="0" height="136" width="2000" border="0" height.autosize=yes criteria="" trail_footer = yes name=dw_1 visible="1" slideleft=yes slideup=directlyabove )'
tab_1.tp_1.dw_print.modify(ls_syntax) //制做窗口
tab_1.tp_1.dw_print.modify("datawindow.detail.height='150'")

tab_1.tp_1.dw_print.getchild("dw_1",state_child) //得到子报表
idw_data.sharedata(state_child) //共享数据
//得到详细部分的高度
//计算报表的实际宽度
this.event ue_set_width( )

tab_1.tp_1.dw_print.modify("datawindow.print.preview=yes datawindow.print.preview.rulers=yes")
this.title = is_docname
tab_1.tp_1.dw_print.modify("datawindow.print.documentname='" + is_docname + "'")
ddlb_pre.text = '100%'
em_font.Text = '100'


//ue_set_width( )的代码


//
//datawindowchild State_child_width //子报表的语法
long li_pos ,li_col=0 //语法中的位置和目标列
string Is_Object,Is_Obj //存储DW的语法的
long ll_width,I //I为计数器 //子表的宽度
blob blb_print

//tab_1.tp_1.dw_print.getchild("dw_1",State_child_width)

Is_Object=State_child.Describe("DataWindow.Objects")+'~t'
li_pos=pos(Is_Object,"~t")
do while li_pos > 0

Is_Obj=left(Is_Object,li_pos - 1) //得到当前对象
Is_Object=mid(Is_Object,li_pos + 1) //未参与计算的对象
li_pos=pos(Is_Object,"~t")
//读取详细列表
IF State_child.describe(Is_obj+".band")="detail" and &
State_child.describe( Is_Obj+".visible")="1" Then
// State_child.describe( Is_Obj+".type")="column" and &

ll_width+=long(State_child.describe( Is_Obj+".width"))
i+=170
END IF
loop
ll_width+=I
tab_1.tp_1.dw_print.modify("dw_1.width='" + string(ll_width) + "'")



princelily 2006-06-08
  • 打赏
  • 举报
回复
不知道大家是否经常关注PB的发展,其实关于打印复合型数据窗口时会出现多余空白页的问题,是sybase公司研发PB的时候一个bug,目前可能还没有很好的解决。
因为我原先参与的一个课题就是有关打印制式报表的,我的导师就因为看到PB对打印的不足而放弃用PB作打印模块,而是采用VC开发。这就是我的一点想法。
  • 打赏
  • 举报
回复
今天我也遇到和楼主同样问题了 我靠
复合DW,pb9
FrankLiang 2006-05-02
  • 打赏
  • 举报
回复
csdsjkk(),老兄,可否與大伙分享下?或傳到我的郵箱: frankcn@21cn.com
FrankLiang 2006-04-30
  • 打赏
  • 举报
回复
我也遇到同樣問題,有些打印機正常,有些不行。

隨便問個問題? 如何做一個窗口,讓各個窗口按打印後,在其實現預覽及邊辦設定?
zl1980 2006-04-30
  • 打赏
  • 举报
回复
有隐藏的字段超出了页面范围吧
csdsjkk 2006-04-30
  • 打赏
  • 举报
回复
以前写过一个打印预览窗口
可以设置行高,字体垂直居中,字号,标题位置,打印边距,调整复合dw中各dw的位置等
doodle 2006-04-28
  • 打赏
  • 举报
回复
不清楚,帮顶!
sxbxy 2006-04-28
  • 打赏
  • 举报
回复
应该是的报表设计本身有问题,估计是有一个东西超出打印的范围,你通过打印预览,调整一下,还有就是指定一下它的左右边距

609

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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