转载自计算机世界日报 (文/刘荣芳)

   作为目前比较流行的数据库前端开发工具 PowerBuilder显着的一个特点就是其数据窗口(DataWindow)技术,利用此技术可生成各种复杂 报表,但在打印输出时为了打印出中国式特殊格式要求的报表时,需要编程实现,打印效果需要反复调整并打印输出,既效率低下,又浪费资源,如何让用户在打印报表前能预览报表打印效果呢?
  1、 在原窗口内实现预览
  最简单并且最常用 思路方法是在窗口内添加命令按钮“预览”,在其clicked事件中写入如下脚本:
if  this.text=”预览” then
dw_1.object.datawindow.print.preview = “yes”
this.text=”取消”
else
this.text=”预览”
dw_1.object.datawindow.print.preview = “no”
end if
  该思路方法适用于打印报表的格式和数据窗口的显示格式相同

  2、在预览窗口w_preview中实现预览

  在PB5.0带的例子Code Examples中有 窗口w_preview,用它可完成数据窗口的预览,它的技术要点是:将数据窗口的语法作为参数传递给w_preview 再在w_preview窗口中用dw.create()函数生成此数据窗口,其中数据用describe()函数取得 再用imporsstring()函数转入的依据中国人的习惯,将w_preview内英文提示全部改为中文,采用此窗口进行预览 好处是:预览 比例可随意调整,便于观察整体效果,在Code Examples中调用w_preview 过程非常复杂,它先调用一个自定义函数 然后在()函数中调用w_preview 下面介绍 种比较简单的调用思路方法并采用另 种获取预览数据 思路方法,在命令按钮“预览” clicked事件中写入如下脚本:(原脚本全部删除)
string ls_dwname//定义变量
用于存放数据窗口Control控件名
  isvalid(w_preview)
then  close(w_preview)
ls_dwname = dw_1.dataobject//取数据窗口Control控件名
//拷贝数据窗口内 数据到剪贴板
然后打开预览窗口w_preview
dw_1.saveas(“”,clipboard!,false)
openwithparm(w_preview,ls_dwname)

? 在w_preview open事件中写入脚本如下:
//介绍说明:用于单数据窗口 打印预览
// 规则:open(w_preview,)
//参数string parm为字符型变量
存放数据窗口控制名
//返回值:  无
//****************************
***********************************
//例如:
// string ls_dwname
// ls_dwname = dw_1.dataobject
// dw_1.saveas(“”,clipboad!,false)
// openwithparm(w_preview,ls_dwname)
//**********************************
*****************************
//获得数据窗口Control控件名
string ls_dwname
ls_dwname = message.string parm
dw_1.dataobject = ls_dwname
dw_1. transobject(sqlca)
dw_1.importclipboard() //导入预览数据
dw_1.object.datawindow.print.preview
= “yes”//置预览方式为true

  这种思路方法比较简单 充分利用了PB5.0现有资源 而且容易理解 但如果打印是通过复合式窗口(composite dw)来实现 其打印效果 预览采用以上思路方法就不行 数据无法传递 只能采用最基本 思路方法实现 平时复合式窗口是不可见 预览时将其可见即可 脚本如下:(dw_7为复合式数据窗口)

this.text=”预览”  then
  SetPointer(Hourglass!)
  dw_7.object.datawindow.print.preview = “yes”
  dw_7.visible = true
  this.text=”取消”

  this.text=”预览”
  dw_7.visible = false
end if

  以上思路方法在P200兼容机、Windows98平台上、PowerBuilder5.0上实现 完全可行

pb打印:PB中打印预览的实现相关推荐

  1. 不同的电脑打印预览不同怎么解决_条码打印软件中标签预览正常打印无反应怎么解决...

    在使用条码打印软件制作标签时,有客户反馈,标签打印预览正常的,但是打印无反应,咨询是怎么回事?今天针对这个情况,可以参考以下方法进行解决. 一.预览正常情况下,打印没反应 (1)在条码打印软件中设计好 ...

  2. 谷歌浏览器打印不弹出预览直接打印机打印

    谷歌浏览器打印不弹出预览直接打印机打印 注意 --kiosk-printing前面有个空格 这个浏览器还是会弹出自带打印页,不过会马上消失的

  3. php DOS word在线预览,如何在 Zoho Docs 中在线预览文件

    文件预览 简介 预览让您可以概要了解您的长文档.视频或图册.通过预览让您可以一览文件中的内容. 关于 Zoho Docs 中的预览的以下信息将帮助您:使用预览工具栏. 编辑 MS Office 文件. ...

  4. 在Windows 7中的Windows Media Player 12中快速预览歌曲

    Do you ever wish you could quickly preview a song without having to play it? Today we look at a quic ...

  5. html中在线预览pdf文件之pdf在线预览插件

    html中在线预览pdf文件之pdf在线预览插件 最近遇到一个需求,要在html页面查看pdf生成的pdf文件! 翻来覆去找到两种办法 ,最后采用了jquery.media.js插件 方式一 将pdf ...

  6. html做在线预览pdf文件,html中在线预览pdf文件之pdf在线预览插件

    html中在线预览pdf文件之pdf在线预览插件 最近遇到一个需求,要在html页面查看pdf生成的pdf文件! 翻来覆去找到两种办法 ,最后采用了jquery.media.js插件 方式一 将pdf ...

  7. 如何在html中在线预览pdf文件?

    方法1:使用 jquery js 库 1.引入 jquery-3.1.1.min.js 和 jquery.media.js 两个js文件,下载保存到本地 下载连接:jquery-3.1.1.min.j ...

  8. PS设计稿如何在手机中快速预览?

    这是一个广告,不好意思浪费你一两分钟的时间看一下. Design Play设计稿预览这是一个很小众的软件,它有APP和插件组成使用,说实话,我在已经使用了四年ps情况下,才知道可以实时在手机中实时预览 ...

  9. 手机QQ访问时,html页面在QQ中自定义预览和自定义分享

    手机QQ访问时,html页面在QQ中自定义预览和自定义分享 有一天,产品说要做个自定义预览和分享功能,于是很快在微信上实现了,可是不知道在QQ上怎么实现,查看了很多网站,最后才找到了解决方案,于是想和 ...

  10. 如何在PR中调节预览视频的速度,及播放速度;

    坑 如何在PR中调节预览视频的速度,及播放速度: 解决方案如下:

最新文章

  1. 运行时权限框架YPermission开源
  2. 设置 HTTP HEADER 字段来提高 Web 安全性
  3. GMV突破1300亿,Lazada下一站去哪?
  4. 第四课-程序的循环结构
  5. MySQL 数据库热备的操作
  6. 学习笔记(33):Python网络编程并发编程-进程池线程池
  7. linux实时进程优先级rt,Linux实时性- PREEMPT_RT实时抢占实现
  8. php加速 PHP APC 浅析
  9. CF(427D-Match amp; Catch)后缀数组应用
  10. Cannot resolve com.oracle:ojdbc7:12.1.0.1
  11. 用计算机谈我还是从前那个少年,我还是从前那个少年是什么歌-我还是从前那个少年抖音歌曲介绍...
  12. 关闭appleid双重认证_如何查看并移除登陆过Apple ID的设备
  13. ios 保存图片到相册 崩溃_iOS保存图片到相册
  14. mysql热备工具_MySQL热备工具Xtrabackup
  15. web页超过2G以上大视频分片秒传方案
  16. 如何升级Windows 11正式版?四种方案都在这里了
  17. 妥善处理的九大面试送命题
  18. 一个 R 包带你挖掘宏基因组公共数据库
  19. 字符串分割、切片、替换、去除头尾指定字符
  20. lr不能直接转ps编辑_20 秒实现PS和LR互相切换使用,让照片管理与精修有更多的可能...

热门文章

  1. BEV和Transformer对无人驾驶硬件体系的巨大改变
  2. C# 中文GBK编码转化
  3. ffmpeg编译选项汇总
  4. 如何自学directx
  5. ubuntu20安装其他版本的make工具
  6. BAT高级架构师合力熬夜15天,肝出了这份PDF版《Android百大框架源码解析》,还不快快码住。。。
  7. socket.io搭建聊天室
  8. 占优策略名词解释_《曼昆经济学》名词解释——第17章 寡头
  9. 个人对java的认识_JAVA自学的个人看法
  10. 数字音频编辑器GoldWavev6.54免费版