利用PB动态创建数据窗口

 我来答
青柠姑娘17
2022-10-31 · TA获得超过1.2万个赞
知道大有可为答主
回答量:6148
采纳率:100%
帮助的人:33万
展开全部

  利用PowerBuilder建立数据窗口时 用户通常不能自己选择数据来源和显示类型 如何让用户在应用程序中自己定义数据窗口的数据来源和显示类型呢?为了达到这个目的 我们必须在运行程序阶段根据用户自己的需求 动态地建立一个数据窗口

  在建立动态数据窗口之前 必须先得到数据窗口对象的语法 PB中为我们提供了SyntaxFromSQL( )函数 利用这个函数可以得到建立数据窗口的语法 SyntaxFromSQL()函数的基本格式如下

  事物对象 SyntaxFromSQL(数据来源字符串 显示类型字符串 错误字符串)

  下面是建立一个数据窗口对象语法的范例∶

  // 声明变量

  string ls_sql ls_present ls_err ls_syntax

  // 定义数据窗口的数据来源

  ls_sql = select emp_id from employee

  //定义数据窗口显示字符串

  ls_present = style(type=tabular)

  // 得到建立数据窗口对象语法

  // 如果错误发生 SyntaxFromSQL 返回一个空字符串

  ls_errls_syntax = SQLCA SyntaxFromSQL(ls_sql ls_present ls_err)

  利用 SyntaxFromSQL( )所建立的数据窗口对象是在运行阶段才建立的对象 并不会自动保存在PB的对象数据库 Library 中 为了以后可以重复使用这个数据窗口对象 可以利用 LibraryImport( )函数保存数据窗口对象

  在利用 SyntaxFromSQL( )函数建立一个数据窗口语法后 必须将它与窗口上的数据窗口控件结合 这个数据窗口控件必须已经存在于窗口中 要将数据窗口对象语法和一个已经存在的数据窗口控件结合 必须利用Create( )函数 下面是范例程序∶

  // 声明变量string ls_syntax ls_err

  ls_errdw_ Create(ls_syntax ls_err)

  dw_ SetTransobject(SQLCA)

  dw_ retrieve( )

  在上面程序中 ls_syntax是运行SyntaxFromSQL( )函数后所返回的字符串 除此之外 也可以利用LibraryExport( )函数从PB对象数据库中得到已经存在于PBL中的数据窗口对象语法 因为Create( )函数会破坏先前数据窗口与事物对象的结合 所以必须利用SetransObject( )函数重新结合事物对象给新的数据窗口对象 最后再运行Retrieve( )函数 从数据库中读取数据

  最后 我们需要利用SQL 语句字符串 动态创建一个新的数据窗口对象到一个数据窗口控件当中 虽然 在运行阶段并不能直接在窗口上建立一个数据窗口控件 但却可以利用用户对象建立一个与窗口上一样的数据窗口控件 在运行阶段时再动态打开这个用户对象 下面是动态建立数据窗口控件的步骤∶

  在用户对象画板内 建立一个标准数据窗口的用户类

  可以在这个控件中增加功能 程序 用户对象函数和用户自定义事件后 保存用户对象到对象数据库中

  利用 OpenUserObject( )函数建立一个数据窗口用户对象的复件 一般格式如下∶OpenUserObject(用户对象变量 {x坐标值 y坐标值}) 下面是在窗口上鼠标点击的坐标位置建立一个用户对象 u_dw的范例∶ OpenUserObject(u_dw Pointerx( ) Pointery( ))

  以上是建立一个动态数据窗口的基本步骤 感兴趣的朋友不妨一试

      编辑推荐

       ASP NET开发培训视频教程

lishixinzhi/Article/program/PB/201311/24609

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式