还是老问题,在pb8里实现打印的横向预览!再追加 68分!继续在线等待

boboxing2003 2003-05-01 04:44:57
我已经进行了如下的设置:
dw_1.object.datawindow.print.orientation=1
但无论orientation的值是0,1,或2,在打开rulers,preview属性时,
仍然见到的是纵向的预览,
怎样才能实现横向的预览?我想实现纸张横向预览,打印,求救!!这难道是pb的bug?


纵向预览的情况 横向预览的情况

(D列已经超过纸张范围) (我想实现的效果,D列在纸张边界之内)

列名A 列名B 列名C | 列名D 列名A 列名B 列名C 列名D |
| |
| |
| |

实现横向预览是为了容纳更多的列,可是当列过长是,怎样解决?当横向,纵向都朝过纸张大小时,翻页的功能也变的不正常了,怎样解决?
...全文
85 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cooltnt 2003-05-04
  • 打赏
  • 举报
回复
同意楼上。
顺便问一下,一颗星要多少专家分?
xirumin 2003-05-04
  • 打赏
  • 举报
回复
先设置,再预览
boboxing2003 2003-05-01
  • 打赏
  • 举报
回复
上面的程序没有解决我的问题呀,我要的不是设置打印,而是如何在打印预览中看到横向的效果!!
谢谢
bomber2001 2003-05-01
  • 打赏
  • 举报
回复
转载::
//eventue_initcontrols()
//设置窗口中各控件的初始值
st_printername.text=idw_toprint.object.
datawindow.printer//当前打印机名字
em_copies.text="1"//默认打印份数为1
rb_pagearrangeall.checked=true//默认范围为全部页
sle_pagearrange.enabled=false //页面范围编辑框无效
ddlb_printwhat.SelectItem(1)//默认为“所选页面”
//打印方向
integerli_temp
li_temp=integer(idw_toprint.object.datawindow.print.orientation)//取出设计时的方向
if li_temp=1 then//横向
rb_landscape.checked=true //选中
p_landscape.visible=true //图片显示
p_portrait.visible=false
elseif li_temp = 2 then //纵向
rb_portrait.checked=true
p_portrait.visible=true
p_landscape.visible=false
endif

//纸张类型
li_temp=integer(idw_toprint.object.
datawindow.print.Paper.Size) //设计时的纸张类型
ddlb_paper.SelectItem(li_temp+1) //列表框中选中

然后,在窗口的open事件中编写如下脚本:
//openevent
//要使用OpenWithParm()打开,参数中包含要打印的数据窗口。

idw_toprint=message.powerobjectparm
//从参数中取出要打印的数据窗口

this.eventue_initcontrols()//初始化窗口各控件

在无线按钮rb_pagearrangall的clicked事件中编写脚本如下:
sle_pagearrange.enabled=false
在无线按钮rb_pagearrangcurrent的clicked事件中编写脚本如下:
sle_pagearrange.enabled=false
在无线按钮rb_pagearrang的clicked事件中编写脚本如下:
sle_pagearrange.enabled=true//当此无线按钮选中时才可用

在命令按钮cb_printersetup中编写如下脚本:
//cb_printersetup
PrintSetup()//设置打印机
parent.eventue_initcontrols()

在无线按钮rb_portrait的clicked事件中编写如下脚本:
//纵向
p_landscape.visible=false
p_portrait.visible=true//显示纵向图片框
在无线按钮rb_landscape的clicked事件中编写如下脚本:
//横向
p_portrait.visible=false
p_landscape.visible=true

在命令按钮cb_cancel的clicked事件中编写如下脚本
//cb_cancel执行程序
CloseWithReturn(parent,2)//如果选择取消,返回2
在命令按钮cb_ok的clicked事件中编写如下脚本
//cb_ok执行程序
string str_temp
integer li_temp
long ll_row

//打印什么
li_temp=ddlb_printwhat.FindItem
(ddlb_printwhat.text,0)-1
idw_toprint.object.datawindow.
print.page.rangeinclude=li_temp

//打印范围
ifrb_pagearrangeall.checkedthen//全部页
str_temp=""
elseifrb_pagearrangecurrent.checkedthen//当前页
ll_row=idw_toprint.GetRow()
idw_toprint.object.datawindow.print.preview="Yes"
//设成预览模式
str_temp=idw_toprint.Describe("evaluate
('Page()',"+String(ll_row)+")")//计算页码
idw_toprint.object.datawindow.print.preview="No"
elseifrb_pagearrange.checkedthen//输入范围
str_temp=sle_pagearrange.text
endif
idw_toprint.object.datawindow.print.page.range=str_temp

//副本份数
iflen(em_copies.text)>0then
idw_toprint.object.datawindow.print.copies
=Integer(em_copies.text)
endif

//纸的方向
li_temp=0
if rb_landscape.checked then
li_temp=1
elseif rb_portrait.checked then
li_temp=2
endif
idw_toprint.object.datawindow.print.orientation=li_temp

//纸的尺寸
li_temp= ddlb_paper.FindItem(ddlb_paper.Text,0)
//第li_temp项
idw_toprint.object.datawindow.print.paper.size=li_temp

closewithreturn(parent,1)
bomber2001 2003-05-01
  • 打赏
  • 举报
回复
up
boboxing2003 2003-05-01
  • 打赏
  • 举报
回复
用户要横打或纵打,即便是预先定好宽度,可打印预览时,数据边上的蓝色边框总是纵向的,总有一些列跑到了另外一些页上?这样打印时不久打到两张纸上去了吗?
愉快的登山者 2003-05-01
  • 打赏
  • 举报
回复
pb的DATAWINDOW在打印格式设计上,很不灵活,需要将打印的报表,按纸张的格式事先设计好宽度.否则结果就可能乱.
预览之前将打印机的输出格式设为横向.

611

社区成员

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

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