转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件使用 >> 常用软件 >> 正文
PowerBuilder中数据窗口的精确         

PowerBuilder中数据窗口的精确

作者:闵涛 文章来源:闵涛的学习笔记 点击数:758 更新时间:2009/4/24 21:43:00
摘 要 本 文 详 细 介 绍 了PowerBuilder 中 数 据 窗 口 打 印 输 出 技 术, 并 给 出 了 一 个 通 用 的 数 据 窗 口 打 印 控 制 程 序。

  关 键 词 PowerBuilder DataWindow Print

1. 引 言

  自PowerBuild 4.0 问 世 以 来, 以 其 简 洁 高 效 的 集 成 开 发 环 境、 强 大 的 数 据 窗 口 技 术、( 几 乎) 无 所 不 能 的 数 据 库 访 问 能 力, 越 来 越 受 到 编 程 人 员 的 青 睐。 据Sybase 自 己 的 统 计, 目 前 全 球 有60 万 程 序 员 和 系 统 分 析 人 员 在 使 用 他 们 的Powerbuilder 和S-designer, 进 行 各 种 类 型 的 应 用 程 序 开 发。 最 新 发 布 的PowerBuilder 6.0 族 系 列 开 发 工 具, 直 接 支 持Active X 技 术、Server Push 技 术, 对 分 布 式 计 算 模 型 的 定 义 更 加 明 确, 实 现 更 为 简 便, 并 可 以 利 用 数 据 窗 口 直 接 生 成HTML 格 式 文 件, 等 等。 所 以,PowerBuilder 已 成 为C/S 模 式 应 用 和 基 于InterNet 模 式 应 用 的 主 要 开 发 工 具 之 一。

  数 据 窗 口(DataWindow) 是PowerBuilder 的 专 利, 也 是PowerBuilder 应 用 程 序 的 核 心 和 精 华 所 在.PowerBuilder 通 过 丰 富 的 属 性 和 函 数 来 控 制 数 据 窗 口 的 显 示 和 数 据 操 纵, 但 对 数 据 窗 口 的 打 印 支 持 似 乎 过 于 简 单, 只 有 一 个Print() 窗 口 函 数 和 一 个PrintDataWindow PowerScript 函 数, 并 且 这 两 个 函 数 的 功 能 几 乎 都 是 一 样, 都 只 简 单 地 将 选 定 数 据 窗 口 原 样 送 入 打 印 队 列, 本 身 不 具 备 页 面 控 制 功 能。 为 此 很 多 程 序 员 抱 怨 这 是PowerBuilder 的 一 个 缺 陷, 其 实,PowerBuilder 对 打 印 功 能 的 支 持 一 样 十 分 周 到 全 面, 只 不 过 应 用 场 合 不 同, 需 要 用 户 自 行 加 以 选 择。

  以 下 是 对PowerBuilder 打 印 控 制 功 能 的 详 尽 分 析, 并 介 绍 一 个 实 用 的 数 据 窗 口 页 面 控 制 程 序。

2. Powerbuilder 实 现 动 态 页 面 控 制 的 途 径

  PowerBuilder 数 据 窗 口 有 一 对 函 数Describe 和Modify, 用 于 动 态 描 述 和 修 改 数 据 窗 口 结 构, 与 其 它 相 关 函 数 结 合 可 以 完 成 动 态 生 成 数 据 窗 口、 任 意 改 变 数 据 窗 口 显 示 方 ? 修 改 打 印 属 性 等。 这 两 个 函 数 是 控 制 与 修 改 数 据 窗 口 的 核 心 函 数, 其 使 用 方 法 如 下:

  1) Describe 获 取 数 据 窗 口 特 定 属 性 值

  语 法:dwcontrol.Describe ( propertylist)

  参 数:dwcontrol 数 据 窗 口( 或datastore) 控 件 名。

  propertylist 用 字 符 串 表 示 的 数 据 窗 口 属 性。

  返 回 值: 返 回 一 个 表 示 属 性 的 字 符 串。

  数 据 窗 口 属 性 值 也 可 以 用dwcontrol.object.Datawindow.property 来 完 成 直 接 取 得。

  2) Modify 修 改 数 据 窗 口 特 定 属 性

  语 法:dwcontrol.Modify ( modstring )

  参 数:dwcontrol dwcontrol 数 据 窗 口( 或datastore) 控 件 名。

  modstring 用 字 符 串 表 示 的 数 据 窗 口 属 性。

  返 回 值: 如 果 函 数 执 行 成 功 返 回“1”。

  与Describe 类 似, 修 改 数 据 窗 口 属 性 可 以 用:

  dwcontrol.object.Datawindow.property = value 直 接 赋 值。

  3) 与 打 印 有 关 的 数 据 窗 口 属 性

  数 据 窗 口 属 性 中 与 打 印 有 关 的 有24 个, 其 中 实 现 打 印 页 面 控 制 的 几 个 属 性 是:

  Copies: 打 印 份 数。

  Filename: 如 果 不 为 空, 表 示 输 出 到 文 件 的 文 件 名。

  Orientation : 打 印 方 向1= 横 向,2= 纵 向

  Page.Range: 输 出 页 范 围, 要 打 印1,2, 和5 到10 页, 输 入: "1,2, 5-10"。 Page. RangeInclude: 本 次 打 印 范 围,0= 全 部,1= 偶 数 页,2= 奇 数 页。Paper.Size: 纸 张 大 小。

  Scale: 打 印 比 例。

  程 序 中 利 用Modify 函 数 设 置 好 这 些 属 性 后, 即 可 实 现 动 态 修 改 数 据 窗 口 的 目 的, 再 调 用datawindow.print() 函 数, 完 成 最 后 的 打 印 输 出。

一 个 通 用Datawindow 打 印 控 制 程 序

  将 数 据 窗 口 中 的 报 表 在 打 印 机 上 输 出 是PowerBuilder 应 用 程 序 开 发 过 程 中 必 不 可 少 的 功 能, 作 为 例 子, 这 里 提 供 一 个 使 用 上 述 方 法 研 制 的 通 用 打 印 控 制 窗 口, 用 以 替 代Prompt 属 性 所 提 供 的Print 窗 口, 实 现 汉 化 界 面, 并 且 可 被 自 行 修 改 扩 充。 为 了 书 写 简 单, 程 序 中 采 用 直 接 赋 值 的 方 式 修 改 属 性。

 

实 例 变 量:

datawindow dw_print

string printername , name ,port

窗 口open 事 件 脚 本:

dw_print = Message.PowerObjectParm

printername = dw_print.Object.Datawindow.Printer

name = left(printername,pos(printername,"on") -1)

port = right(printername,len(printername) - pos(printername,"on")-1)

plb_printername.additem(name,1)

st_portname.text = port

“ 设 置” 按 钮clicked 事 件 脚 本

Integer code

Code = printSetup()

If code =1 then

printername = dw_print.Object.Datawindow.Printer

name = left(printername,pos(printername,"on") -1)

port = right(printername,len(printername) - pos(printername,"on")-1)

plb_printername.additem(name,1)

st_portname.text = port

end if

打 印 范 围 组 中“ 全 部” 选 择 钮clicked 事 件 脚 本

dw_print.object.DataWindow.Print.Range =

sle_1.enabled = false

sle_2.enabled = false

sle_3.enabled = false

“ 页 数” 栏 后sle_2 单 行 文 本 编 辑 框Modified 事 件 脚 本

dw_print.object.DataWindow.Print.Page.Range = sle_1.text + "-" + sle_2.text

“ 自 定 义” 栏 后sle_3 单 行 文 本 编 辑 框Modified 事 件 脚 本

dw_print.object.DataWindow.Print.Page.Range = sle_3.text

打 印 份 数 组 中 份 数 单 行 文 本 编 辑 框Modified 事 件 脚 本

dw_print.Object.DataWindow.Print.Copies = integer(this.text)

“ 全 部” 选 择 钮Cliecked 事 件 脚 本

dw_print.Object.DataWindow.Print.Page.Rangeinclude =0

“ 奇 数” 选 择 钮Cliecked 事 件 脚 本

dw_print.Object.DataWindow.Print.Page.Rangeinclude =1

“ 偶 数” 选 择 钮Cliecked 事 件 脚 本

dw_print.Object.DataWindow.Print.Page.Rangeinclude =2

“ 确 认” 命 令 按 钮Clicked 事 件 脚 本

long job

if IsValid(dw_print) then

job = PrintOpen( )

PrintDataWindow(job, dw_print)

PrintClose(job)

close(parent)

end if

“ 取 消” 命 令 按 钮Clicked 事 件 脚 本

close(parent)

  窗 口 调 用 方 法: 在 其 它 带有 数 据 窗 口 的 窗 口 中, 使 用OpenWithParm(w_print_set,dwname) 即 可, 其 中w_print_set 为 本 窗 口 名,dwname 为 要 打印 的 数 据 窗 口。 该 程 序 是 一 个 通 用 打 印 控 制 程 序, 可 在 任 何 版 本 的PowerBuilder 应 用 中 使 用。


[办公软件]在sybase中插入图片、PDF、文本文件  [办公软件]安装Sybase ASE
[办公软件]linux指令大全(完整篇)  [办公软件]Linux新手入门常用命令大全
[办公软件]在RedHat Linux 9里安装gaim0.80  [办公软件]浅谈Linux 下Java 1.5 汉字方块问题解决方法
[办公软件]Linux程序员必读:中文化与GB18030标准  [办公软件]linux指令大全
[办公软件]制作Linux启动盘的四种方法  [办公软件]Linux文件系统的反删除方法
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · 办公软件  · 系统软件
    · 常用软件  · 聊天工具
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台