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

合集下载

PB数据窗口技巧问答

PB数据窗口技巧问答

PB数据窗口技巧问答数据窗口是PowerBuilder中用于显示、获取和更新数据库表格的对象之一、在使用数据窗口进行数据操作的过程中,有一些技巧和常见问题需要注意和解决。

以下是对数据窗口技巧和问答的详细介绍。

1.如何在数据窗口中添加一个新的数据库表格?可以通过以下步骤在数据窗口中添加一个新的数据库表格:(2) 选择“Insert”菜单,然后选择“Tables”子菜单。

(3)在弹出的对话框中选择要添加的数据库表格,然后点击“OK”按钮。

2.如何在数据窗口中显示特定的数据列?可以通过以下步骤在数据窗口中显示特定的数据列:(2) 在画布区域中右键点击并选择“Insert”菜单,然后选择“Columns”子菜单。

(3)在弹出的对话框中选择要显示的数据列,然后点击“OK”按钮。

3.如何在数据窗口中设置筛选条件?可以通过以下步骤在数据窗口中设置筛选条件:(2) 在画布区域中右键点击并选择“Filter”菜单。

(3)在弹出的对话框中输入要设置的筛选条件,然后点击“OK”按钮。

4.如何在数据窗口中设置排序条件?可以通过以下步骤在数据窗口中设置排序条件:(2) 在画布区域中右键点击并选择“Sort”菜单。

(3)在弹出的对话框中选择要设置的排序条件,然后点击“OK”按钮。

5.如何在数据窗口中添加计算列?可以通过以下步骤在数据窗口中添加计算列:(3)在弹出的对话框中输入计算列的表达式和名称,然后点击“OK”按钮。

6.如何在数据窗口中设置格式化?可以通过以下步骤在数据窗口中设置格式化:(2)在画布区域中选择要设置格式化的数据列。

(3) 在属性窗口中选择“Format”选项卡,然后选择要应用的格式化类型和样式。

7.如何在数据窗口中执行增、删、改操作?可以通过以下步骤在数据窗口中执行增、删、改操作:(1) 在数据窗口画布区域中右键点击并选择“Insert”菜单,然后选择“Rows”子菜单来添加新的行。

(2) 在数据窗口画布区域中右键点击并选择“Delete”菜单来删除选定的行。

PB窗口之间传递多参数的方法

PB窗口之间传递多参数的方法

接下来在打开窗口w_2的open事件中,获取结构信息:
lstr_para lstr_Getpara
lstr_Getpara = message.powerobjectparm
sle_1.Text = lstr_Getpara.id
sle_2.Text = lstr_
PowerObject(PB对象,包括用户自定义的结构数据类型) Message.PowerObjectParm
String(字符串) Message.StringParm
sle_3.Text = lstr_Getpara.sex
sle_4.Text = lstr_Getpara.loca
其中,lstr_Getpara为用户自定义结构数据类型,是值传送的。
方法二
首先创建一个类用户对象
uo_para
在该用户对象中将你需要传递的各种参数申明成实例变量,例如:
lstr_ = "独孤求败"
lstr_Tranpara.sex = "男"
lstr_Tranpara.loca = "广东深圳"
openwithparm(w_2,lstr_Tranpara)
public:
string id
string name
string sex
string loca
在调用脚本中(本例使用才菜单clicked中),使用如下代码:
uo_para uo_Tranpara
uo_Tranpara = create uo_para
uo_Tranpara.id = "00000001"

PowerBuilder中数据窗口使用技巧

PowerBuilder中数据窗口使用技巧

PowerBuilder中数据窗口使用技巧PowerBuilder中数据窗口使用技巧PowerBuilder(以下简称PB)是一个非常优秀的数据库前端开发工具,其数据窗口(DataWindow)控件充分体现了PB与数据库系统的紧密结合,堪称前端工具的典范。

本文介绍了使用PB设计数据窗口的一些小窍门,希望能对使用PB的开发者有所帮助。

一、校验表达式(Validation Expression)的设置校验表达式是PB 提供的一个优良特性。

但您是否觉得表达式的输入过于烦琐呢?一般而言,校验表达式的输入和修改要经历下面4步:1. 选取要编辑的列(Column);2. 按鼠标右键,选择"Properties",将弹出"Column Object"窗口;3. 在窗口中选择"V alidation"标签,输入所需的校验表达式;4. 输入完毕后,按"OK"按钮。

这种输入方式有两个缺点:1. 过于烦琐,每输入一个表达式都要经过4步。

这一点在每列的校验表达式都基本相同时尤其明显。

2. 无法统一查看和对比各列的校验表达式,不利于查错。

其实PB提供了一个更加灵活的,专门用于输入校验表达式的工具。

在编辑数据窗口时,选择"rows"菜单的"Column Specifications"项,将会弹出"Column Specifications"窗口。

在窗口中,可以直接设置每一列的校验表达式二、"选择工具"的使用在数据窗口中,有时需要修改所有列的颜色或字体,一般的操作都是一个一个选取。

其实PB提供了一个非常好的选择工具,用来选择数据窗口中的对象。

这个工具位于"Edit"菜单下的"Select"项中.选择工具一共有7个功能,其中前5个适合用热键直接操作选项功能三、多用户安全访问数据库的实现大多数情况下,您的应用程序将在网络环境下运行。

PB数据窗口绝对技巧

PB数据窗口绝对技巧

PB数据窗口绝对技巧PB数据窗口绝对技巧是指通过使用PowerBuilder开发环境的数据窗口对象实现高效数据处理的技巧。

数据窗口是PowerBuilder中最重要和最常用的对象之一,它可以用于显示和操作数据库中的数据。

下面将介绍一些PB数据窗口的绝对技巧。

1.使用绑定数据窗口:绑定数据窗口是将数据窗口与数据库表绑定在一起,这样可以方便地进行数据的读取、修改和保存操作。

使用绑定数据窗口可以避免手动编写SQL语句或存储过程,大大提高了开发效率。

2.优化数据窗口的性能:数据窗口的性能优化是开发过程中非常重要的一环。

可以通过以下方法来提高数据窗口的性能:-只选择需要的列:只选择需要的列可以减少网络传输的数据量,提高数据检索的速度。

-使用约束和过滤器:可以在数据窗口中使用约束和过滤器来限制返回结果集的大小,进一步提高性能。

-使用预检索:可以在打开数据窗口之前使用预检索功能,先将数据加载到缓存中,减少后续操作对数据库的访问次数。

3.自定义数据窗口的样式:可以通过数据窗口的属性和事件来自定义数据窗口的样式。

例如,可以设置列的显示格式、颜色和字体等属性,还可以通过事件来实现数据窗口的验证和计算逻辑。

4.使用数据窗口的分组功能:数据窗口的分组功能可以将数据按照指定的列进行分组,并对每个分组进行汇总计算。

这样可以方便地进行数据的统计和报表生成。

5.使用数据窗口的嵌套功能:数据窗口可以嵌套在其他数据窗口中,形成复杂的数据结构。

通过使用数据窗口的嵌套功能,可以实现多层次的数据展示和操作,提高用户体验和数据处理的灵活性。

6.使用数据窗口的插入和更新语句:数据窗口可以使用自动生成的插入和更新SQL语句来实现数据的插入和修改操作。

这样可以避免手动编写大量的SQL语句,简化开发过程。

7.使用数据窗口的事务处理:数据窗口的事务处理功能可以保证一系列的操作要么全部成功,要么全部失败。

可以通过使用数据窗口的事务处理功能来实现数据的批量插入和更新,提高数据处理的效率和数据的一致性。

PB开发过程中几个常见问题的解决方案

PB开发过程中几个常见问题的解决方案

PB开发过程中几个常见问题的解决方案第2l卷第5期2000年9月微计算机应用MICRoCoMPUTERAPPLICATIONSV01.21.No.5Sept.,2000PB开发过程中几个常见问题的解决方案宋铭(海军装备论证研究中心系统所北京100073)摘要:PowerBuilder开发过程中经常遇到‘些问题,如窗12I内控件尺寸位置的动态调整、下拉式数据窗口增量式录入、数据窗121多表更新等。

本文针对这些问题,分别提出了通用解决方案。

关t词:PowerBuilder数据窗口动态调整增量式录人多表更新1窗口内控件尺寸、位置的动态调整PowerBuilder的窗口对象是应用程序的主要图形用户界面(GUl),窗121对象内可放置各种控件,使得应用程序具有很强的表现力。

本文以PowerBuilder6.5为例,阐述实现控件动态调整尺寸、位置的方法。

PowerBuilder的窗121对象有一个重要的属性Control[]数组,它存储了窗口内放置的所有控件(运行时动态建立的控件除外),数组类型为WindowObject。

WindowObject包含两个子类,其中类DragObjeet有x、Y、Width、Height属性,类DrawObjeet(包括椭圆、矩形、圆角矩形、线段控件)一般用于窗口的美化装饰。

窗口事件Resize有两个整型参数NewWidth、NewHeight,代表改变尺寸后的窗口宽度、高度,与窗口原高度、宽度比较,得到两个比例x—proportion、Y—propoi'tion,分别利用这两个比例,计算出控件的x、Y、Width、Height属性。

即实现了窗口内控件尺寸的动态调整。

具体方法如下(以下脚本未考虑类DrawObject)。

在窗口画板建立新窗口W—ancestor,定义以下实例变量:Private:∥为了创建高度封装的对象,禁止Inti,J//循环计数器、可拖动控件计数器该类的后代对以下窗口实例变lRealww,hh//窗口上次的宽度、高度量的访问DragObjecta口//可拖动控件数组在其0pen事件中编写以下脚本:∥将Control[]数组存入a口数组中j--UpperBound(Contr01)FORi—lTOJa[i]=Control[i]在Resize事件中编写以下脚本:Realx—proportion,Y—proportion//x、y方向调整比例本文于2000—02—23收到.2000033l收到修改稿NEXT∥将窗口初始宽度、高度存入变量WW、hhWW—this.Widthhh=this.Height∥防止被0除IFNewWidth=0orNewHeight一0THEN万方数据。

PB数据窗体技巧

PB数据窗体技巧

PB数据窗体技巧1.熟悉数据窗体控件:数据窗体有很多不同的控件类型,如文本框、下拉列表、单选按钮等。

熟悉掌握每种控件的特性和使用方法,可以根据需求选择最合适的控件。

2.使用自定义控件:除了内置的控件,PB还支持使用自定义控件。

开发人员可以根据需要自定义控件,并将其应用到数据窗体中。

这样可以更加灵活地满足实际需求。

3.使用动态数据窗体:动态数据窗体是一种可以在运行时根据需求动态生成的数据窗体。

使用动态数据窗体可以根据不同的条件动态地生成不同的数据窗体,提高开发效率和可维护性。

4.使用数据窗口对象:数据窗口对象是一种可以在多个数据窗体之间共享数据和功能的对象。

使用数据窗口对象可以避免重复编写相似的代码,提高代码的复用性。

5.使用数据窗体样式:PB支持使用数据窗体样式来定义数据窗体的外观和行为。

开发人员可以根据需要创建自定义的样式,并将其应用到数据窗体中。

这样可以提高应用程序的一致性和可维护性。

6.使用数据验证和格式化:PB提供了丰富的验证和格式化选项,可以对数据进行有效性检查和格式化。

开发人员可以使用这些选项来确保数据的完整性和一致性。

7.使用数据窗体事件:数据窗体有许多内置事件,开发人员可以通过编写事件脚本来处理特定的事件。

通过使用数据窗体事件,可以实现更复杂的逻辑和交互。

8.使用数据窗体功能:PB提供了许多有用的数据窗体功能,如排序、过滤、分组等。

开发人员可以灵活运用这些功能,为用户提供更好的数据浏览和操作体验。

9.使用数据窗体部件:数据窗体部件是一种可以以独立的方式封装和重用数据窗体中的功能和样式的对象。

使用数据窗体部件可以提高开发效率和代码的复用性。

10.使用数据窗体继承:PB支持使用继承来创建基于已有数据窗体的新数据窗体。

通过继承,可以在不改变原有数据窗体的基础上,添加、修改或删除功能,提高代码的可维护性和可扩展性。

11.使用事务处理:PB支持使用事务处理来确保数据的一致性和完整性。

开发人员可以通过开启和提交事务来控制数据的保存和取消操作。

PB获取或操作数据窗口语句的方法

PB获取或操作数据窗口语句的方法

PB获取或操作数据窗口语句的方法
PB(PowerBuilder)是一种用于构建企业级应用程序的集成开发环境(IDE),其中包含了用于操作数据窗口的语句和方法。

以下是获取或操
作数据窗口的一些常用语句和方法:
1.获取数据窗口控件对象:
dw_control = dw_ancestor.Object.dw_controlname
这种方法可以通过数据窗口对象的祖先对象获取数据窗口控件的引用,从而进行后续的操作。

2.设置数据源:
dw_control.SetTransObject(SQLCA)
这个方法会将数据窗口的数据源设置为指定的事务对象(通常是SQLCA对象)。

3.检索数据:
dw_control.Retrieve
这个方法会执行数据窗口的检索功能,从数据源中获取数据并显示在
数据窗口中。

4.更新数据:
dw_control.Update
这个方法会将数据窗口中修改的数据更新到数据库中。

5.取消修改:
dw_control.Reset
这个方法会取消对数据窗口的所有修改,恢复到最后一次检索或更新的状态。

6.设置过滤条件:
dw_control.SetFilter(filter_expression)
这个方法可以设置数据窗口的过滤条件,只显示满足条件的记录。

7.查找记录:
dw_control.Find(filter_expression)
这个方法可以在数据窗口中查找满足条件的记录,并将其选中。

以上是一些常用的获取或操作数据窗口语句和方法,使用这些语句和方法可以方便地对数据窗口进行管理和控制。

在PB中巧用下拉数据窗口

在PB中巧用下拉数据窗口

在PB中巧用下拉数据窗口PowerPB提供了下拉数据窗口(DropDown DataWindow),使数据窗口更灵活、更方便。

在用数据窗口进行数据录入时,经常要用到代码录入,即对经常输入的某些值设置代码,录入时直接录入代码即可。

例如,有两个表,主表main_table和代码表code_table,录入时主表中需要代码表中的数据,但不允许录入不在代码表中的数据。

下面介绍如何使用下拉数据窗口实现上述功能。

静态设计下拉数据窗口首先对主表和代码表设计两个数据窗口dw_main和dw_code,其中dw_main包括字段id、na me、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_inpu t上建立一个数据窗口的控件dw_1,其属性DataWindow Object Name设为dw_main,并在w_inpu t的open事件中写入下列语句:dw_1.SetTransObject(SQLCA)dw_1.Retrieve()这样,在执行此窗口时,在unit字段上就会出现一个下拉列表框,列出了表code_table中所有的内容,用户可以用鼠标选择录入。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PB中协调多数据窗口数据操纵的一种解决方法
1、问题的提出
数据窗口是PB中检索、表现和操纵数据的对象。

如果一个数据表的列不多,用单数据窗口操纵数据很易实现,但在实际应用中,数据表的列数动辄几十,甚至上百也并不少见,这时用单数据窗口滚动显然不方便,一个自然的想法是采用TAB控件和TAB页,在每个TAB页上放置一个数据窗口控件,每个数据窗口控件分门别类操纵数据表的列,但随之而来的问题是如何协调分布在这些数据窗口中录入或修改数据的存储,针对每个数据窗口发布一个UPDATE()函数的调用不可行。

我们在实际开发中经过探索,增加一个后台的数据窗口做中介,解决了多数据窗口操纵数据的问题。

2、协调多数据窗口数据操纵的一种解决方法
基本思路是:在进行数据操纵的数据窗口控件之外,另外放置一个数据窗口控件,设置其不可见,并设其数据窗口对象为一个选择了数据表中所有列的数据窗口,其他数据窗口控件中录入或修改的数据实时地传送过来,对该控件的数据进行更新操作即可。

不失一般性,下面以PB自带数据库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进行保存或更新操作,从而解决了多数据窗口数据操纵的协调问题。

相关文档
最新文档