前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于PowerBuilder的搜索

PowerBuilder教程,PowerBuilder案例:在PB 中 巧 用 下 拉 数 据 窗 口,PowerBuilder源码,PowerBuilder代码,PowerBuilder源码下载,PowerBuilder实例,PowerBuilder安全漏洞, 新闻报价汽车商家技术软件 驱动     本站短域名:珠江路.cn、zjlu.net 电脑 数码 办公 网络 汽车 招聘 经销商 产品论坛 团购 购物街 首页 新闻 报价库 经销商 驱动下载 软件下载 游戏 学院 三大件 主板 显卡 显示器 装机推荐 周周IT团 手机 DC/DV GPS 笔记本 平板电脑 学院首页 软件应用 编程开发 创意设计 ASP ASP.NET PHP JSP SQL MYSQL Java VB 您的位置:学院 >> 编程开发 >> PowerBuilder >> 在PB 中 巧 用 下 拉 数 据 窗 口 在PB 中 巧 用 下 拉 数 据 窗 口 ---- PowerBuilder 作 为 目 前 比 较 流 行 的 一 种 开 发 工 具, 有 其 独 到 之 处, 那 就 是 数 据 窗 口(DataWindow)。 可 以 说, 数 据 窗 口 是PowerBuilder 的 核 心, 在 对 数 据 库 的 开 发 过 程 中, 无 论 是 录 入、 查 询、 统 计 还 是 报 表, 都 离 不 开 数 据 窗 口。 但 是, 除 了 数 据 窗 口,PB 还 提 供 了 下 拉 数 据 窗 口(DropDown DataWindow), 下 拉 数 据 窗 口 的 使 用, 使 数 据 窗 口 更 灵 活, 更 方 便, 下 面 举 例 介 绍 在 数 据 窗 口 中 使 用 下 拉 数 据 窗 口 的 一 些 技 巧。 ---- 在 用 数 据 窗 口 作 数 据 录 入 时, 经 常 用 到 代 码 录 入, 即 对 经 常 输 入 的 某 些 值 设 置 代 码, 录 入 时 直 接 录 入 代 码 即 可。 例 如, 有 两 个 表, 主 表main_table 和 代 码 表code_table, 结 构 如 下: main_table 字段名 类型 长度 描述 id integer 标识号 name char 8 姓名 sex char 4 性别 city Varchar 30 城市 unit Varchar 40 单位 ---- 下 面, 详 细 讨 论 如 何 使 用 下 拉 数 据 窗 口: 一、 静 态 设 计 下 拉 数 据 窗 口 ---- 首 先 对 主 表 和 代 码 表 设 计 两 个 数 据 窗 口dw_main 和dw_code, 其 中dw_main 包 括 字 段id,name,sex,city 和unit;dw_code 包 括 字 段code 和data。 假 设unit 字 段 有 几 个 常 用 值 可 使 用 代 码 录 入, 则 在 设 计dw_main 时, 用 鼠 标 右 键 点 击 字 段unit, 在 下 拉 菜 单 中 选 择Properties...( 属 性), 则 系 统 会 弹 出unit 列 的 属 性 对 话 框, 在 其 中 选 择Edit( 编 辑) 项, 并 在Style( 风 格) 下 拉 列 表 框 中 选 择DropDownDW 项, 然 后 在 下 面 的Options( 选 项) 框 中 作 具 体 的 选 项 配 置: 在DataWindow 下 拉 框 中 选 择 已 设 计 好 的 代 码 数 据 窗 口dw_code 作 为 下 拉 数 据 窗 口; 在DisplayColumn( 显 示 列) 下 拉 框 中 选 择code 字 段; 在Data Column( 数 据 列) 下 拉 框 中 选 择data 字 段 , 这 表 示 显 示 的 是code 字 段 的 内 容, 而 实 际 存 于 表main_table 中 的 是data 字 段 的 内 容。 至 此, 数 据 窗 口 设 计 完 毕。 ---- 设 计 完 数 据 窗 口 后, 需 要 建 立 一 个 数 据 录 入 的 窗 口(window), 名 字 为w_input, 在 窗 口w_input 上 建 立 一 个 数 据 窗 口 的 控 件dw_1, 其 属 性DataWindow Object Name 为dw_main。 并 在w_input 的open 事 件 中 写 入 下 列 语 句: dw_1.SetTransObject(SQLCA) dw_1.Retrieve() ---- 这 样, 在 执 行 此 窗 口 时, 在unit 字 段 上 就 会 出 现 一 个 下 拉 列 表 框, 列 出 了 表code_table 中 所 有 的 内 容, 用 户 可 以 用 鼠 标 选 择 录 入。 二、 动 态 改 变SQL 语 句 ---- 在 上 面 的 例 子 中, 如 果 表main_table 中 的 字 段city 也 需 要 代 码 录 入, 则 还 需 为city 字 段 新 建 一 个 表, 这 样 很 麻 烦, 因 为 有 几 个 字 段 需 要 代 码, 就 须 有 几 个 表 与 之 对 应。 我 们 可 利 用 下 拉 数 据 窗 口 的 一 些 特 点 减 少 麻 烦。 对 此, 可 以 相 应 地 修 改 表code_table 的 结 构, 加 一 个 字 段field(char(30)), 以 存 储 需 要 代 码 的 字 段 名, 这 样, 就 可 利 用SQL 语 句 对 之 进 行 检 索, 以 得 到 某 字 段 的 所 有 代 码。 具 体 实 现 如 下: 重 新 设 计 数 据 窗 口dw_code, 把field 字 段 加 上 并 使 它 不 可 见( 因 为 用 户 不 需 要 见 到 该 字 段 的 内 容), 数 据 窗 口dw_main 和 窗 口w_input 的 设 置 如 上, 只 是 在 数 据 窗 口dw_1 中 需 要 进 行 一 些 编 程, 具 体 是 在ItemFocusChanged 事 件 中, 加 入 如 下 的 代 码: String ls_sql Integer rtncode DataWindowChild field_child //dwo为该事件的参数, 其name属性的值表示获得焦点的字段名 Choose Case lower(dwo.name) Case 'city' //city字段获得焦点 //获得city字段下拉数据窗口的句柄 rtncode = dw_1.GetChild("city",field_child) If rtncode = -1 Then MessageBox( "Error", "Not a DataWindowChild") //设置事务对象 field_child.SetTransObject(SQLCA) //获得下拉数据窗口的SQL语句 ls_sql = field_child.GetSQLSelect() //重新设置SQL语句,加上Where条件 ls_sql = ls_sql + " Where field = '" + dwo.name + "'" field_child.SetSQLSelect(ls_sql) //取得满足条件的数据 field_child.Retrieve() Case 'unit' //unit字段获得焦点 //获得unit字段下拉数据窗口的句柄 rtncode = dw_1.GetChild("unit",field_child) ......(此处编程同上一样) End Choose 三、 动 态 设 置 取 值 参 数 ---- 上 例 中, 是 采 用 动 态 改 变SQL 语 句 实 现 的, 其 实, 下 拉 数 据 窗 口 有 一 种 更 简 单 的 方 法 就 是 设 置 取 值 参 数(Retrieval Arguments) 但 这 种 方 法 适 合 从 固 定 表 中 取 数 据, 如 果 是 从 动 态 表( 即 表 名 不 固 定) 中 取 数 据, 则 只 能 通 过 改 变SQL 语 句 来 实 现。 ---- 修 改 数 据 窗 口dw_code, 在 图 形 方 式 下, 选 择Design 菜 单 下 的Retrieval Arguments..., 设 置 取 值 参 数 的 类 型 为String, 名 字 可 任 取, 假 设 为field_data, 然 后 在 窗 口 下 面 的Where 标 签 中 选 择Column 为"code_table.field",Operator 为" =",Value 为 取 值 参 数 的 值:field_data( 变 量 名 前 加 冒 号 表 示 该 变 量 的 值), 至 此, 取 值 参 数 设 置 完 毕。 同 上 例, 也 需 要 在 窗 口w_input 中 的 数 据 窗 口 控 件dw_1 中 的ItemFocusChanged 事 件 中 进 行 如 下 的 编 程: Integer rtncode DataWindowChild field_child //dwo为该事件的参数, 其name属性的值表示获得焦点的字段名 Choose Case lower(dwo.name) Case 'city' //city字段获得焦点 //获得city字段下拉数据窗口的句柄 rtncode = dw_1.GetChild("city",field_child) If rtncode = -1 Then MessageBox ( "Error", "Not a DataWindowChild") //设置事务对象 field_child.SetTransObject(SQLCA) ---- // 利 用 取 值 参 数 取 得 满 足 条 件 的 数 据, 如 果 没 有 数 据, 则 插 入 一 空 记 录,// 否 则 系 统 会 提 示 一 个 英 文 对 话 框, 要 求 输 入 取 值 参 数 的 值。 If field_child.Retrieve(dwo.name) Case 'unit' //unit字段获得焦点 //获得unit字段下拉数据窗口的句柄 rtncode = dw_1.GetChild("unit",field_child) ......(此处编程同上一样) End Choose ---- 至 此, 已 介 绍 了 使 用 下 拉 数 据 窗 口 的 一 些 技 巧, 希 望 能 给 读 者 提 供 一 些 帮 助。 百度中 在PB 中 巧 用 下 拉 数 据 窗 口 相关内容 Google搜索中 在PB 中 巧 用 下 拉 数 据 窗 口 相关内容 雅虎中 在PB 中 巧 用 下 拉 数 据 窗 口 相关内容 Sogou搜索中 在PB 中 巧 用 下 拉 数 据 窗 口 相关内容 技术文章快速查找 栏目导航 软件应用 ·操作系统 ·杀毒防黑 ·应用软件 ·聊天软件 ·网络软件 Web开发 ·ASP ·JavaScript ·CGI ·JSP ·VbScript ·Web服务器 ·PHP ·XML 开发语言 ·VB ·VC ·ASP.NET ·Java ·C/C++ ·Delphi 数据库开发 ·MySQL ·SQL/Access ·PowerBuilder ·Oracle ·DB2 网站设计 ·Flash ·Dreamweaver ·HTML/CSS ·Fireworks ·FrontPage 平面设计 ·Photoshop ·CorelDraw ·AutoCAD ·FreeHand ·Illustrator ·3DsMAX 媒体动画 ·Director ·Authorware ·Maya ·视频处理 相关文章 在PB中应用灵活多样的排序 PB修改数据库表结构的技巧二则 深入了解PowerBuilder的数据窗口 PowerBuilder数据窗口中按钮的封装 数据库系统在面向对象分析设计中的应用 经验点滴 如何在POWER BUILDER中使用WINSOCK控件 在PowerBuilder中实现数据库的实时过滤 产品库推荐 ·笔记本 ·平板电脑 ·上网本 ·数码相机 ·手机 ·GPS ·DV摄像机 ·MP3 ·MP4 ·CPU/硬盘/内存 ·音箱 ·主板 ·键鼠套装 ·显卡 ·显示器 ·打印机 ·投影机 ·路由器 Copyright 2011 www.zhujiangroad.com All Rights Reserved. 珠江路在线版权所有 苏ICP备05016148号 关于我们 |  广告服务 |  付款方式 |  南京地图 | 南京公交查询 | 南京火车时刻表 | 万能搜索