pb数据窗口:PB中协调多数据窗口数据操纵的一种解决思路方法

华侨大学计算机系 潘孝铭 徐丽莉  

1、问题提出
数据窗口是Power Builder中检索、表现和操纵数据对象如果个数据表列不多用单数据窗口操纵数据很易实现但在实际应用中数据表列数动辄几十甚至上百也并不少见这时用单数据窗口滚动显然不方便个自然想法是采用TABControl控件和TAB页在每个TAB页上放置个数据窗口Control控件每个数据窗口Control控件分门别类操纵数据表但随的而来问题是如何协调分布在这些数据窗口中录入或修改数据存储针对每个数据窗口发布个UPDATE不可行我们在实际开发中经过探索增加个后台数据窗口做中介解决了多数据窗口操纵数据问题

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

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

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

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

延伸阅读

最新评论

发表评论