网站建设| 数据库类| 图形图象| 程序设计| 现代办公| 操作系统| 考试认证| 网络技术| 软件工程| 电脑相关| 文学作品
网站开发| 网页制作| 操作系统| 图象图形| 考试认证| 数据库类| 程序设计| 硬件技术| 现代办公| 网络技术| 笑话频道
 
您的位置: 电脑书库首页-> 电脑文摘-> 数据库类-> PowerBuilder-> PB中协调多数据窗口数据操纵的一种解决方法

PB中协调多数据窗口数据操纵的一种解决方法
作者:佚名 来源:InterNet 加入时间:2005-1-31
相关文章
  • 如何在PB中制作特殊形状数据窗口或按钮
  • PB和EAServer共筑多层应用架构
  • PB中的数据窗口自动刷新技术
  • PB中读取地磅BCD解码
  • PB通过OLEObject使用Word
  • PB动态报表格式自由定义的实现
  • 为PB的TreeView实现同步选择
  • 如何用pb实现MSACCESS数据库的图片字段存取
  • 在PB中应用灵活多样的排序
  • 在PB中如何使用Microsoft Outlook发送邮件
  • 相关书籍:
    1、问题的提出
    数据窗口是Power Builder中检索、表现和操纵数据的对象。如果一个数据表的列不多,用单数据窗口操纵数据很易实现,但在实际应用中,数据表的列数动辄几十,甚至上百也并不少见,这时用单数据窗口滚动显然不方便,一个自然的想法是采用TAB控件和TAB页,在每个TAB页上放置一个数据窗口控件,每个数据窗口控件分门别类操纵数据表的列,但随之而来的问题是如何协调分布在这些数据窗口中录入或修改数据的存储,针对每个数据窗口发布一个UPDATE()函数的调用不可行。我们在实际开发中经过探索,增加一个后台的数据窗口做中介,解决了多数据窗口操纵数据的问题。

    2、协调多数据窗口数据操纵的一种解决方法
    基本思路是:在进行数据操纵的数据窗口控件之外,另外放置一个数据窗口控件,设置其不可见,并设其数据窗口对象为一个选择了数据表中所有列的数据窗口,其他数据窗口控件中录入或修改的数据实时地传送过来,对该控件的数据进行更新操作即可。
    不失一般性,下面以POWERBUILDER自带数据库psDemoDB.db中的customer表的数据录入为例来说明。
    Customer表有"id","fname","lname","address","city","state","zip","phone","company"九个列,其中"id"为integer类型,其余均为char类型。
    (1)创建数据窗口
    建立三个数据窗口d_1、d_2、d_3,数据窗口d_1选"id","fname","lname"三列,d_2中选"address","city","state"三列,d_3选"zip",""phone","company_name"三列。再建立数据窗口d_4,选中数据表中的所有列。
    (2)建TAB控件和TAB页
    建立一个TAB控件tab_1,建立三个TAB页tabpage_1、tabpage_2、tabpage_3。
    (3)建数据窗口控件
    在(2)中建的三个TAB页中分别放置dw_1、dw_2、dw_3三个数据窗口控件,设其数据窗口对象分别为d_1、d_2、d_3。
    另外,在窗口中放置一个数据窗口控件dw_4,不选其"visible"属性.
    (4)编写代码
    在tabb1.tab_page_1.dw_1的editchanged事件中编写代码如下:
    //代码由此开始
    //设置变量,id_value存放数据表中id列的值
    int i_m,i_n,id_value  
    string str_fname,str_lname
    //取dw_1当前的行数
    i_m=tab_1.tabpage_1.dw_1.getrow()  
    //取dw_4当前的行数
    i_n=dw_4.getrow()  

    //tab_1.tabpage_1.dw_1及dw_4接收浮在数据窗口控件表面的数据
    tab_1.tabpage_1.dw_1.accepttext()
    dw_4.accepttext()

    //取dw_1中的"id"列的值给变量id_value
    id_value=tab_1.tabpage_1.dw_1.getitemnumber(i_m,"id")  
    //将变量id_value的值赋给dw_4中"id"列  
    dw_4.setitem(i_n,"id",id_value)  

    //取dw_1中的"fname"列的值给变量str_fname
    str_fname=tab_1.tabpage_1.dw_1.getitemstring(i_m,"fname")  
    //将变量str_fname的值赋给dw_4中"fname"列
    dw_4.setitem(i_n,"fname",str_fname)  

    //取dw_1中的"lname"列的值给变量str_lname
    str_lname=tab_1.tabpage_1.dw_1.getitemstring(i_m,"lname")  
    //将变量str_lname的值赋给dw_4中"lname"列
    dw_4.setitem(i_n,"lname",str_lname)  
    //代码到此结束

    tab1.tab_page_2.dw_2、tab1.tab_page_3.dw_3的editchanged事件代码可比照tab1.tab_page_1.dw_1的editchanged事件代码编写,从略。
    程序在PB65和PB7中调试通过,程序运行时,无论新增数据,还是对dw_1、dw_2、dw_3中的数据列进行修改,数据都实时地传送给dw_4,只需对dw_4进行保存或更新操作,从而解决了多数据窗口数据操纵的协调问题。

    [文章录入员:nancy]

    相关文章
  • 如何在PB中制作特殊形状数据窗口或按钮
  • PB和EAServer共筑多层应用架构
  • PB中的数据窗口自动刷新技术
  • PB中读取地磅BCD解码
  • PB通过OLEObject使用Word
  • PB动态报表格式自由定义的实现
  • 为PB的TreeView实现同步选择
  • 如何用pb实现MSACCESS数据库的图片字段存取
  • 在PB中应用灵活多样的排序
  • 在PB中如何使用Microsoft Outlook发送邮件
  • 相关书籍:
    本站推荐内容

    近期主机类热搜关键词:
    美国服务器 美国服务器租用 海外服务器租用 国外服务器租用

    PowerBuilder
    ACCESS
    MS SQL
    MySQL
    Oracle
    Foxpro
    PowerBuilder
    Sybase
    其它
    电脑教程阅读排行
    ·浅析PowerBuilder下动...
    ·PowerBuilder连接Sy...
    ·用Powerbuilder开发W...
    ·在powerbuilder中向E...
    ·PB通过OLEObject使用W...
    ·PB中读取地磅BCD解码
    ·在PowerBuilder中操作...
    ·PB动态报表格式自由定义的实现
    ·PB开发Sybase数据库应用技...
    ·如何在PB中制作特殊形状数据窗口...