PB数据窗口常用函数方法

合集下载

pb的基本函数

pb的基本函数

pb的基本函数1、Open 两种格式:一个是带参数的还有一个是不带参数的不带参数的是不确定具体的数据类型的2、Opensheet() opensheet(指定窗口名,{指定要打开的窗口的类型},指定要放置的工作表的框架窗口名,所打开的窗口是在第几个菜单下生产默认值为倒数第二个,打开方式arrangeopen。

) 打开方式分为三种:cascade、layered、original。

Cascade:向右下方偏移。

默认值如果缺少的话Layered:最大化Original:与cascade相同。

只是打开的时候与原来的一样大3、Close4、Setfocus() 将焦点设置到指定控件上Objectname.setfocus() 如果objectname是列表框的话则控件将指向列表框的第一列表项上。

5、SelectText()返回该控件所选的文本。

返回值为long Singlelineeditname.selecttext(start,length)6、GetColumn()和GetColumnname()两个都没有返回值:第一个是返回当前列的列好,第二个则是返回当前列名7、Update()8、DeleteRow()Dwcontrol.deleteRow(row) row表示要删除的行数,当该值为0时则表示删除该行1、insert row 在数据窗口控件指定行前面插入一行dwcontrol.insertrow(row) scrolltorow():使新插入的行成为当前行。

2、ScrollT oRow() 使用方法:rtename .scrolltorow(row)Rtename超文本编辑框的名称。

如果row的值为0的话则就回滚到第一行,如果row的值大于超文本的行数则回滚到最后一行3、selectedColumn()返回插入点后第一个字符的位置rtename.selectedcolumn()4、setcloumn5、print() 以当前字体在打开的打印作业中打印一行或多行文本print(printjobnumber,{tabl},string{,tab2})tab1为文本开始打印的位置,以千分之一英寸为单位。

pb数据窗口,sum的用法

pb数据窗口,sum的用法

pb数据窗口,sum的用法
您提到的"pb 数据窗口" 和"sum 的用法" 可能涉及到不同的概念。

我将就两者分别进行简要说明:
1. Protobuf(Protocol Buffers)数据窗口:
- Protobuf 是一种轻量级的数据交换格式,由Google设计,用于结构化数据的序列化。

它通常用于在不同系统之间传递和存储数据。

Protobuf 使用`.proto` 文件定义数据结构,然后使用编译器生成与多种编程语言兼容的代码。

- "pb 数据窗口" 可能指的是使用Protobuf 序列化的数据的某个特定范围或窗口。

在这种情况下,您可能需要查看相应的`.proto` 文件,以了解数据结构的定义和如何在窗口内进行操作。

2. sum 函数的用法:
-sum 是一个常见的数学函数,用于计算一组数字的总和。

在编程语言和数据处理工具中,通常有内建的sum 函数,例如在Python、NumPy(用于科学计算的库)和SQL 等环境中。

例如,在Python中:
```python
numbers = [1, 2, 3, 4, 5]
total = sum(numbers)
print(total)
```
这将输出`15`,因为1+2+3+4+5 的和为15。

-如果您具体提到的"sum 的用法" 涉及到特定的上下文,例如在数据库查询中的SUM 操作,或者在某个编程框架中的使用方式,请提供更多上下文,以便我能够提供更具体的信息。

PB数据窗口及事件

PB数据窗口及事件

Pb数据窗口1、Pb数据窗口介绍(结合实例进行讲解):数据窗口控件对应到数据窗口对象显示数据。

数据窗口对象分为:常用的数据窗口类型:Composite 复合报表数据窗口Crosstab交叉报表数据窗口Freeform 自由模式数据窗口Graph 图形报表数据窗口Grid 网格数据窗口Group 分组数据窗口n-up 多列显示数据窗口分别举例说明各个数据窗口:杏林妙手中的体检报告中保护上述数据窗口类型。

2、数据窗口数据源类型介绍:Quick select、sql select、query、external、stored procedure 分别为:通过单表查询,通过多表查询,通过查询对象,通过自定义的字段,通过存储过程。

3、数据窗口控件常用函数介绍:Setredraw(boolean):设置是否自动刷新报表,true 自动刷新,false不自动刷新。

Describe(string):获取数据窗口指定对象的属性,string为数据窗口表达式。

例如:“t_1.text”等。

Modify(string):设置数据窗口指定对象的属性,和describe配合使用,string为数据窗口表达式。

例如“t_1.text=‟123‟”描述查找相关设置的方法。

Getitemstring(int,string)、Getitemstring(int,int):获取数据窗口指定行的字符串列的值,参数:行号,列名(或列值)。

Setitem (int,string,string)、Setitemstring(int,int,string):设置数据窗口指定行的字符串列的值,参数:行号,列名(或列值),设置值。

(还有获取其他数据类型的类似函数不做赘述!,还可以通过object.列名[行号] 来获取和设置指定行列的值)Deleterow(int):删除行指定行的操作,和循环配合使用的注意事项。

Insertrow(0):插入行,参数0表示在最后一行插入Rowcount():当前数据窗口的行数。

PB数据窗口常用函数方法

PB数据窗口常用函数方法

PB数据窗口常用函数方法1. Retrieve函数:用于从数据库中检索数据,可以通过设置检索条件过滤数据。

例如,dw_employee.Retrieve(将从数据库中检索出所有的员工数据。

2. Update函数:用于更新数据窗口中的数据到数据库中。

例如,dw_employee.Update(将更新数据窗口中的所有修改到数据库中。

3. Create功能:用于创建一个新的数据行。

例如,dw_employee.Create(将在数据窗口中新增一行空数据。

4. Modify功能:用于修改数据窗口中的数据。

例如,dw_employee.Modify(将允许用户进行修改操作。

5. InsertRow函数:用于在数据窗口中插入一行数据。

例如,dw_employee.InsertRow(1)将在第一行之前插入一行数据。

6. DeleteRow函数:用于删除数据窗口中的一行数据。

例如,dw_employee.DeleteRow(2)将删除第二行的数据。

7. SetItem函数:用于设置数据窗口中指定列的值。

例如,dw_employee.SetItem(1, "John")将设置第一列的值为"John"。

8. GetItem函数:用于获取数据窗口中指定列的值。

例如,string ls_name = dw_employee.GetItemString(1)将获取第一列的值并赋给ls_name变量。

9. GetRowCount函数:用于获取数据窗口中的行数。

例如,intli_rows = dw_employee.GetRowCount(将返回数据窗口中的行数。

10. GetColumnCount函数:用于获取数据窗口中的列数。

例如,int li_columns = dw_employee.GetColumnCount(将返回数据窗口中的列数。

11. GetRow函数:用于获取数据窗口中指定行的数据。

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函数Open()功能打开窗口。

该函数有两种语法格式:语法一、打开编程时已知数据类型的窗口对象;语法二、打开程序运行后才能确定数据类型的窗口对象。

下面分别予以介绍:语法一、打开编程时已知数据类型的窗口对象语法Open ( windowvar {, parent } )参数windowvar:要打开窗口的窗口名,可以使用窗口画笔定义的窗口对象名,也可以使用该窗口对象的某个变量。

Open()函数把打开窗口的引用放置到windowvar变量中parent:可选项,指定要打开窗口的父窗口,要打开窗口成为父窗口的子窗口,只有当要打开窗口需要成为某个窗口的子窗口时才需要指定该参数。

如果应用程序使用Open()函数打开某个子窗口或弹出窗口而又省略了该参数,那么当前活动窗口成为被打开窗口的父窗口返回值Integer。

函数执行成功时返回1,发生错误时返回-1。

如果任何参数的值为NULL,Open()函数返回NULL。

语法二、打开程序运行后才能确定数据类型的窗口对象语法Open ( windowvar, windowtype {, parent } )参数windowvar:指定窗口变量名,Open()函数把打开窗口的引用放置到该变量中windowtype:string类型,指定要打开窗口的数据类型,该参数指定的窗口数据类型必须与windowvar参数的类型相同或是windowvar类型的后继对象parent:可选项,指定要打开窗口的父窗口,要打开窗口成为父窗口的子窗口,只有当要打开窗口需要成为某个窗口的子窗口时才需要指定该参数。

如果应用程序使用Open()函数打开某个子窗口或弹出窗口而又省略了该参数,那么当前活动窗口成为被打开窗口的父窗口返回值Integer。

函数执行成功时返回1,发生错误时返回-1。

如果任何参数的值为NULL,Open()函数返回NULL。

DayName()功能得到指定日期是一周中的星期几(例如,Sunday, Monday...)。

PB数据窗口GetItemString函数详解

PB数据窗口GetItemString函数详解

PB数据窗口GetItemString函数详解GetItemString函数作用:从数据窗口或者DataStore 控件的指定缓冲区中获取指定单元的 String 类型的数据。

通过参数的设置,还可以获取指定单元的最初数据,也就是最初 Retrieve 或者最近 Update 成功之后的该单元的取值。

需要注意的是,该函数获取的是被数据窗口中字段接受的数据,是触发完AcceptT ext 之后列中的数据,是通过了校验规则的数据;当用户输入完内容尚未离开该单元时,数据尚未被该单元接受,这种情况下使用该函数是获取不到当前录入的内容的,这时需要使用函数 GetText 来获取。

这是 GetText 和 GetItemString 函数的区别。

类似的, GetItemNumber、GetItemDecimal 等系列函数还有很多,它们的用法都是类似的。

函数语法:语法格式一:string dwcontrol.GetItemString ( long row, integer column {, DWBuffer dwbuffer, boolean originalvalue } )语法格式二:string dwcontrol.GetItemString ( long row, string column {, DWBufferdwbuffer, boolean originalvalue } )z dwcontrol:要获取数据的数据窗口、DataStore 或者子数据窗口控件;z row:要获取哪行的数据,long 类型;z column:要获取数据的列,可以是列号,也可以是列名。

当采用列号时,一定要注意只有定义数据窗口的 SQL 语句中字段的顺序才能决定列号,列的显示位置不能决定列号。

该列的类型必须是字符类型,否则不能正确获取数据。

z dwbuffer:该参数是可选的。

用来指明在哪个数据缓冲区中获取数据。

PB之常用函数

PB之常用函数

Return1
//不允许关闭
EndChoose //用户所有的选择情况处理完毕
通过上面的脚本,可以为用户提供一个很健壮的数据处理窗口。即使直接关闭该窗口,在数据窗口中所做的数据修改也不会丢失,除非用户 自己想放弃。
另外,需要注意的是,在其他事件中调用或者触发(使用TriggerEvent函数、PostEvent函数或者是对象名称.Event 事件名称格式调用事 件)Close事件,都只是执行该事件中的脚本,并不真正关闭窗口。也就是说,应该区别事件和事件处理脚本,这两者虽然有很多的联系但 并不相同。 PB中的所有事件和事件处理脚本都是有区别的。
row:要设置数据的行,为long类型。
column:要设置数据的列,可以是string类型的列名称,也可以是integer类型的列号。
插入空行:insertrow(0) dw_name.insertrow(0) 通常配合插入行使用的是滚动行 dw_name.scrolltorow(dw_name.insertrow(0)) \\滚动到插入行 比如:int row
row = dw_1.insertrow(0)
//显示
dw_1.scrolltorow(row)
该函数有返回值,1,2,3对选择的按键。
基本写法事例: MessageBox('此处为标题,'此处为内容') 完整写法事例: if MessageBox('提示信息','是否删除?',&Question! ,OKCancel! , 1 ) = 1 then//选择确定 MessageBox('提示信息', '你选择了删除') else//选择取消
//使用

pb数据窗口,sum的用法

pb数据窗口,sum的用法

pb数据窗口,sum的用法
pb数据窗口是PowerBuilder开发工具中的一个重要控件,用于显示和编辑数据库中的数据。

它可以与数据库表格、查询或存储过程建
立连接,并根据提供的绑定(binding)规则显示数据,同时还允许用
户对数据进行增删改查的操作。

SUM函数是一种用于计算某一字段的总和的聚合函数。

在数据窗口中,SUM函数可以用于计算某一列的总和,并将结果显示在其他控件中,如一个文本框。

SUM函数的语法通常如下:
SUM(column_name)
其中,column_name为要计算总和的列名。

另外,在使用SUM函数时,还可以使用条件表达式来限制计算总
和的数据范围。

例如,可以使用WHERE子句来筛选出满足特定条件的
数据进行总和计算。

在拓展方面,除了基本的使用方式外,SUM函数还可以与其他函数一起使用,如COUNT函数、AVG函数等,以实现更复杂的计算需求。


外,可以通过设置数据窗口对象的属性来控制SUM函数的计算方式,如是否包含空值、是否进行四舍五入等。

总之,pb数据窗口是PowerBuilder中用于显示和编辑数据库数据的重要控件,SUM函数则是其提供的用于计算某一列总和的聚合函数,可以根据具体需求使用不同的拓展方式。

pb数据窗口,sum的用法 -回复

pb数据窗口,sum的用法 -回复

pb数据窗口,sum的用法-回复PB数据窗口,sum函数的用法PB (PowerBuilder)是一种用于开发Windows应用程序的集成开发环境(IDE)。

在PB中,数据窗口是一个重要的工具,用于显示和操作数据库的数据。

而sum函数在数据窗口中常用于计算某列的合计值。

本文将逐步介绍PB数据窗口的基本概念及sum函数的用法。

一、PB数据窗口的基本概念PB数据窗口是PB中用于显示和操作数据库数据的工具。

它可以与一或多个数据源相连接,允许用户对数据库进行查询、修改、插入和删除等操作。

数据窗口由列对象和行对象组成,每个列对象对应数据库中的一列,每个行对象对应数据库中的一行。

用户可以通过数据窗口的属性设置来定义数据的显示方式、编辑权限以及排序等。

二、sum函数的用法sum函数在数据窗口的列对象中常用于计算某列的合计值。

该函数的语法如下:sum([列名])其中,列名表示要计算合计值的列。

sum函数可以用于数值型列、日期型列以及字符型列。

对于数值型列,sum函数将列中的所有值相加;对于日期型列,sum函数将列中的所有日期相加;对于字符型列,sum函数将列中的所有字符串拼接在一起。

三、使用sum函数计算数值型列的合计值下面以一个例子来演示如何在数据窗口中使用sum函数计算数值型列的合计值。

假设我们有一个数据窗口包含一个数值型列Salary,我们希望计算该列中所有值的合计值。

1. 打开PB并创建一个新的数据窗口。

2. 在数据窗口中添加一个数值型列Salary。

3. 在数据窗口的代码窗口中,在打开事件中添加以下代码:sum(Salary) 计算Salary列的合计值4. 在数据窗口的设计视图中,选择合适的数据源并运行数据窗口。

5. 在运行时,数据窗口将自动计算Salary列的合计值,并将结果显示在数据窗口的底部。

四、使用sum函数计算日期型列的合计值类似地,sum函数也可以用于计算日期型列的合计值。

下面以一个例子来演示如何在数据窗口中使用sum函数计算日期型列的合计值。

PB窗口使用技巧

PB窗口使用技巧

[PB]-窗口使用技巧**在打开和关闭窗口时进行数据传递OpenWithParm(windowvar,parmeter{,parent})其中windowvar是要打开的窗口名称,可以是window画板中定义的窗口,也可以是脚本中定义的窗口变量;parameter是要传递的参数,只能是String,Numeric或者PowerObject类型,该参数根据类型保存在Message的成员变量中传递个要打开的窗口;parent是一个已经打开的窗口名称,该窗口要成为windowvar窗口的父窗口。

函数执行成功返回1,否则返回-1,如果有参数为null 则返回null。

对象Message是一个结构类型的全局变量,并有很多的成员变量。

在传递参数时三个成员变量用来读取传递的数据,它们是:Message.DoubleParm:用来传递Numeric类型的数据。

Message.PowerObjectParm:用来传递PowerObject对象类型的数据,象数据窗口、按键、列表框和拥护自定义的结构等都可以使用该变量进行传递。

Message.StringParm:用来传递String类型的数据。

当使用函数OpenWithParm打开窗口后,应该在进行其他操作之前首先读取传递过来的参数,以免其他操作修改Message中的成员变量。

CloseWithReturn(windowname,Returnvalue)其中,windowname是要关闭的窗口的名称,一般是脚本所在的窗口的名称;Returnvalue是要返回的数值,和上述函数OpenWithParm的完全相同。

函数正确执行返回1,否则返回-1,当有参数为null时则返回null。

*只要是response类型的窗口,使用该函数就能有效地传递参数;该窗口不一定非得是用OpenWithParm打开的。

在打开该response的窗口中可以读取传递过来的参数。

总之,使用CloseWithReturn函数时一定要注意,只有被关闭的窗口是response 类型才能有效地获取返回参数。

[生活]PB常用数据窗口函数

[生活]PB常用数据窗口函数

一、连接数据库连接数据库也就是指定事务对象。

PowerBuilder提供了两个函数:SetTrans()和SetTransObject()。

语法格式:dw_control.SetTrans(TransactionObject)dw_control.SetTransObject(TransactionObject)其中,dw_control是所使用的数据窗口控件,transactionObject是所要指定的事务对象。

这两个函数有一个重要的区别就是在使用SetTrans()函数时,用户不需做任何数据初始化或事务对象初始化工作。

用户只需要在这里填充一个事务对象,PB就会自动完成对该事物对象的初始化以及和数据库连接的工作。

而使用SetTransObject()函数时,用户必须首先把所用的事务对象连接到数据库上。

但是,这并不意味着SetTrans()函数比SetTransObject()函数更好,使用SetTrans()函数时,每调用一次函数必须连接一次数据库,因为这个函数在每个事务处理的末端都会执行Disconnect语句。

与此相反,使用SetTransObject()函数可以为数据库维持一个开放性的连接。

因此在一般情况下,为了提高效率,总是采用SetTransObject()函数。

这两个函数都是成功时返回1,发生错误时返回-1。

二、检索数据用于检索数据的函数只有一个,就是Retrieve()函数。

语法格式:dw_control.Retrieve()如果数据窗口控件上的数据窗口对象是有检索参数的,就要在这个函数调用时加上检索参数。

而且检索参数必须和数据窗口对象中定义顺序一致。

此函数返回一个长整型的数据,代表检索出来的数据行数。

如果发生错误,将返回-1。

三、更新数据当用户对数据窗口对象内的数据修改后,想把这些修改反映到数据库中去时,必须使用Update()函数。

语法格式:dw_control.Update()这个更新可能成功,也可能失败。

pb数据窗口控件的常用函数

pb数据窗口控件的常用函数

检索函数retrieve()setfilter() filter()setsort() sort()getsqlselect():用于获得当前数据窗口的数据来源的SQL表达式setsqlselect():设置当前数据窗口的数据来源*数据窗口控件的常用焦点控制函数*获取和设置有关数据项的值(GetItem族函数)GetItemDate(row,column):从数据窗口指定的行和列位置读取一个Date类型的值。

GetItemDateTime(row,column):从数据窗口指定的行和列位置读取一个DateTime类型的值。

GetItemDecimal(row,column):从数据窗口指定的行和列位置读取一个Decimal类型的值。

GetItemNumberl(row,column):从数据窗口指定的行和列位置读取数值类型(可以Decimal、Double、Integer、Long、Real等类型)的值。

GetItemString(row,column):从数据窗口指定的行和列位置读取一个String类型的值。

GetItemTime(row,column):从数据窗口指定的行和列位置读取一个Time类型的值。

*数据窗口中的数据行滚动Scroll(number):将数据窗口的当前编辑框控件从其所在列按指定的方式滚动到同一列的某一行上。

ScrollToRow():滚动数据窗口控件的显示至指定行row,函数改变当前行但不改变当前列。

ScrollNextRow():ScrollPriorRow():ScrollNextPage():ScrollPriorPage():*数据窗口中的数据行的插入和删除和更新InsertRow(Row):在数据窗口的主缓冲区插入一个新行,函数执行成功后,返回已插入行的行号;执行失败则返回-1。

DeleteRow(Row):在数据窗口的主缓冲区中删除指定行,函数执行成功后返回1;执行失败则返回-1。

PB数据窗口常用函数方法

PB数据窗口常用函数方法

PB数据窗口常用函数方法在PB(PowerBuilder)中,数据窗口是一种非常常用的控件,用于显示和处理数据。

以下是一些PB数据窗口常用的函数方法:1. SetItem(li_row, ls_column, ls_value): 可以用来设置指定行列位置的单元格的值。

2. GetItemString(li_row, ls_column): 返回指定行列位置的单元格的字符串值。

3. SetItemStatus(li_row, ls_column, lsb_update): 可以设置指定单元格的更新状态,lsb_update为TRUE表示有更新,FALSE表示没有更新。

5. Retrieve(: 用于从数据库中检索数据并在数据窗口中显示。

6. Modify("sql"): 可以修改数据窗口的检索SQL语句,并重新检索数据。

7. InsertRow(li_row): 插入一行数据。

8. DeleteRow(li_row): 删除指定行数据。

9. Update(: 保存对数据窗口中数据的修改到数据库。

10. ResetUpdate(: 取消对数据窗口中数据的修改。

11. Reset(: 清空数据窗口中的所有数据。

12. SelectRow(li_row, lsb_select): 可以选择或取消选择指定行。

13. SelectText(li_start, li_end): 可以选择指定行列范围的文本。

14. GetColumnName(li_column): 返回指定列索引的列名。

15. GetColumnCount(: 返回数据窗口中的列数。

16. GetRowCount(: 返回数据窗口的行数。

17. GetRow(: 返回当前选中行的索引。

18. Find("value"): 在数据窗口中查找指定值,并返回先找到的行索引。

19. FindNext("value"): 在数据窗口中继续查找指定值,并返回下一个找到的行索引。

pb常用函数

pb常用函数

pb常用函数弹出窗口:messagebox()基本写法:Messagebox('标题','内容')完整写法: MessageBox ( '标题','内容',图标,按键,默认值)设置焦点:setfocus()对象名.setfocussle_1.setfocus()用format菜单下的tab order命令可以修改焦点顺序。

把用户名和密码框分别设为10,20,确定按钮设为30就行了。

也可以用控件的setfocus()方法设置焦点。

触发事件:triggerevent()对象名.triggerevent()(1)函数作用:触发指定对象的指定事件,并且立即执行该事件中的脚本。

注意该函数和PostEvent的区别。

PostEvent不是立即执行,TriggerEvent 是立即执行触发事件的脚本。

(2)函数语法:objectname.TriggerEvent ( event{, word, long } )关闭窗口:Close()和CloseQuery()默认数据库链接变量:sqlcadw_name.settransobject(sqlca)链接数据库sqlca.sqlcode = 0 有数据\\ = 100 无数据链接数据库connect;一般用于程序open的时候,跟在数据库链接代码后面打开窗口:open( )open(win downame)关闭应用:halt close()halt closehalt 直接结束应用程序从ini配置文件中提取string数据profilestring('文件名,可以包含路径','主要字节','在主要字节下的关键字','如果找不到数据则返回的数据')断开链接disconnect;一般用于程序close的时候是否修改过:isrowmodified()if dw_1.modifiedcount()+dw_1.deletedcount()>0 then.......//数据窗口处于修改状态end if是否新增的:isrownew()数据窗口中的if函数if(true\false,'为true时返回的值','为false时返回的值',)如:if(isrownew(),'新',if(isrowmodified(),'改','旧'))插入空行:insertrow(0)dw_name.insertrow(0)通常配合插入行使用的是滚动行dw_name.scrolltorow(dw_name.insertrow(0)) \\滚动到插入行比如:int rowrow = dw_1.insertrow(0)//显示dw_1.scrolltorow(row)//使用dw_1.object.column[row]从数据窗口中提取数据:getitem( )dw_name.getitem\\string\date\......(row,'数据来源控件名')string dwcontrol.GetItemString ( long row,integer column {, DWBuffer dwbuffer, boolean originalvalue } )String dwcontrol.GetItemString ( long row, string column {,DWBuffer dwbuffer, boolean originalvalue } )getitem首先根据数据窗口不同的字段类型,有不同的函数。

pb常用函数

pb常用函数

弹出窗口:messagebox()基本写法:Messagebox('标题','内容')完整写法: MessageBox ( '标题','内容',图标,按键,默认值)设置焦点:setfocus()对象名.setfocussle_1.setfocus()用format菜单下的tab order命令可以修改焦点顺序。

把用户名和密码框分别设为10,20,确定按钮设为30就行了。

也可以用控件的setfocus()方法设置焦点。

触发事件:triggerevent()对象名.triggerevent()(1)函数作用:触发指定对象的指定事件,并且立即执行该事件中的脚本。

注意该函数和PostEvent的区别。

PostEvent不是立即执行,TriggerEvent是立即执行触发事件的脚本。

(2)函数语法:objectname.TriggerEvent ( event{, word, long } )关闭窗口:Close()和CloseQuery()默认数据库链接变量:sqlcadw_name.settransobject(sqlca)链接数据库sqlca.sqlcode = 0 有数据\\ = 100 无数据链接数据库connect;一般用于程序open的时候,跟在数据库链接代码后面打开窗口:open( )open(win downame)关闭应用:halt close()halt closehalt 直接结束应用程序从ini配置文件中提取string数据profilestring('文件名,可以包含路径','主要字节','在主要字节下的关键字','如果找不到数据则返回的数据')断开链接disconnect;一般用于程序close的时候是否修改过:isrowmodified()if dw_1.modifiedcount()+dw_1.deletedcount()>0 then.......//数据窗口处于修改状态end if是否新增的:isrownew()数据窗口中的if函数if(true\false,'为true时返回的值','为false时返回的值',)如:if(isrownew(),'新',if(isrowmodified(),'改','旧'))插入空行:insertrow(0)dw_name.insertrow(0)通常配合插入行使用的是滚动行dw_name.scrolltorow(dw_name.insertrow(0)) \\滚动到插入行比如:int rowrow = dw_1.insertrow(0)//显示dw_1.scrolltorow(row)//使用dw_1.object.column[row]从数据窗口中提取数据:getitem( )dw_name.getitem\\string\date\......(row,'数据来源控件名')string dwcontrol.GetItemString ( long row,integer column {, DWBuffer dwbuffer, boolean originalvalue } )String dwcontrol.GetItemString ( long row, string column {,DWBuffer dwbuffer, boolean originalvalue } )getitem首先根据数据窗口不同的字段类型,有不同的函数。

PB Datawindow函数大全

PB Datawindow函数大全

1 使DataWindow列只能追加不能修改如何使DataWindow中的数据只能追加新记录而不能修改,利用 Column 的 Protect 属性可以很方便的做到这一点,方法如下:将每一列的 Protect 属性设置为:If( IsRowNew(), 0, 1) )在 PowerScript 中可以动态修改 Protect 属性:dw_1.Modify("column_name_here.Protect='1~tIf(IsRowNew(),0,1)'")这样,DataWindow 中只有新追加的记录可修改,而其他记录是只读的。

2 如何在DataWindow中实现列的自动折行我们在PowerBuilder应用程序的开发过程中, 使用DataWindow时, 经常会遇到某列的数据太长, 不能同时全部显示的情况. 若采用自动水平滚动, 操作起来又不够简便. 下面介绍一种方法, 实现列数据多行显示, 即实现列数据的自动折行.具体步骤如下:1) 在DataWindow Painter中打开此DataWindow.2) 在需设定自动折行的列上双击鼠标, 弹开此列的属性窗口.3) 选择Position标签, 选中Autosize Height 多选框.4) 选择Edit标签, 不选中Auto Horz Scroll多选框.5) 单击OK按钮, 保存所做的修改.6) 点中Detail Band (即写有Detail的灰色长带), 单击鼠标右键, 选择Properties... 菜单项.7) 选中Autosize Height多选框.8) 单击OK按钮, 保存所做的修改.9) 保存此DataWindow.注意:连在一起的汉字(中间没有标点或空格分隔), 系统将认为是一个单词, 不会自动进行折行.3 在数据窗口中实现动画要实现动画,必须要有定时器,在数据窗口中已经有了一个定时器,双击数据窗口将弹出的对话框,在Timer Interval中定义大于零的值就有定时器(可以精确到毫秒),有了这个定时器就可以实现动画了。

pb数据窗口函数

pb数据窗口函数

AcceptText()功能:将“漂浮”在数据窗口控件上编辑框的内容放入到数据窗口控件的当前项中(主缓冲区中)。

在将数据放入到当前项之前,编辑框中的数据必须通过有效性规则检查。

语法:dwcontrol. AcceptText()参数:dwcontrol:数据窗口控件名。

返回值:Integer。

执行成功返回1,错误返回-1。

如果dwcontrol为Null,则AcceptText()返回Null。

用法:当用户在数据窗口偶中从一个项移动到另一个项时,数据窗口检查用户输入或修改数据项数据值的有效性并把这些数据放到数据窗口控件的主缓冲区。

如果修改了数据窗口的某个数据项后,并把输入焦点移动到同一个窗口的其他控件,那么数据窗口控件并没有把新修改的数据放入到数据窗口控件的主缓冲区,这些数据依然显示在数据窗口控件当前项上面的编辑框中。

这种情况下,使用AcceptText()函数把新修改的数据放入到数据窗口控件的主缓冲区中。

调用AcceptText()函数的典型地方是在用户自定义事件中,该事件可通过在数据窗口控件的LoseFocus事件处理程序中调用PostEvent()函数来触发。

AcceptText()函数还可能触发数据窗口控件的ItemChanged或ItemError事件。

注意:不要在数据窗口控件的ItemChanged事件处理程序中调用AcceptText()函数。

CanUndo()功能:检测最近的编辑操作能否被撤销。

语法:dwcontrol. CanUndo()参数:dwcontrol:数据窗口控件名。

返回值:Boolean。

如果最近一次操作被取消,该函数返回True,否则返回False。

如果dwcontrol 为Null,则CanUndo()返回Null。

CategoryConunt()功能:返回数据窗口控件指定统计图的数据类别数。

语法:dwcontrol. CategoryConunt(graphcontrol)参数:dwcontrol:数据窗口控件名。

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

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

PB获取或操作数据窗⼝语句的⽅法1、setsqlselect⽤法:ls_select=getsqlselect //通过getsqlselect取得当前数据窗⼝的查询语句ls_where=" " //给变量ls_where赋值,将所要添加的限定条件赋给此变量,但应考虑到select⼦句与where⼦句之前的空格dw_1.setsqlselect(ls_select+ls_where) //通过setsqlselect将⽣成的查询语句更新⾄数据窗⼝dw_1.event ue_retrieve()2、dw_1.modify⽤法:Old_Select=dw_1.Describe("DataWindow.Table.SQLSelect ")ls_select=getsqlselectls_where=" "dw_1.modify("DataWindow.Table.Select='" + ls_select+ls_where + " ' ")dw_1.settransobject(SQLCA)dw_1.retrieve()dw_1.object.DataWindow.Table.Select=Old_Select更新完后可⽤以下语句取出select语句查看并调试messagebox("",string(dw_1.Describe("DataWindow.Table.SQLSelect ")))⽹上有贴⼦说此语句只能更改DW查询语句中的where⼦句,暂未证实3、dw_1.object.DataWindow.Table.Select=" " ⽤法:此种⽤法与dw_1.modify()基本相同,只是使⽤dw_1.modify()时,在()中需要使⽤双引号把其中的DataWindow.Table.Select以及其后的变量引起来,需要考虑引号的对应关系问题,⽽此种⽤法则相对简单⼀些Old_Select=dw_1.Describe("DataWindow.Table.SQLSelect ")ls_select=" select …… from ……"ls_where=" ……"ls_having=" …… "ls_groupby=" …… "dw_1.object.DataWindow.Table.Select=ls_select+ls_where+ls_having+ls_groupbydw_1.settransobject(SQLCA)dw_1.retrieve()dw_1.object.DataWindow.Table.Select=Old_Select感觉此语句最为强⼤,⽤起来也顺⼿,我喜欢注意:在动态修改sql语句时,select段可以修改,但应确保select后⾯跟随的字段个数以及类型应与建⽴数据窗⼝时选择的字段个数和类型相同,否则报错。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
dwcontrol.SetItemStatus ( row, column, dwbuffer, status )
其中,row参数指定将要修改状态的行;column参数指定将要修改状态的列(可以是整型的列号,也可以是string类型的列名),当列号为0时表示要修改row指定的整行的状态;dwbuffer指定要修改哪个缓冲区(肯定不能是original),status为上面的四个取值中的一个,但不是任意的取值,因为有些状态不能用该函数设置成另外一种状态,必须是能够转换的状态。下面列出了能够转换的状态。
integer dwcontrol.SetColumn ( string column)
integer dwcontrol.SetColumn ( integer column)
设置当前行
integer dwcontrol.SetRow ( long row )
得到当前列
integer dwcontrol.GetColumn ( )
返回值:执行成功则返回1,发生错误则返回-1,如果dwcontrol为Null则返回Null
★AcceptText
语法:dwcontrol.AcceptText ( )
功能:该函数执行时,首先对当前编辑框中的内容进行对应字段的校验规则,能够通过校验规则,则保存在对应字段中,否则显示校验信息提示错误。需要执行该函数的原因是,当在某字段上的编辑框中输入内容而没有移动光标到别的字段上时,其他控件获得焦点,此时编辑框中的内容不能被保存到字段中,所以就应该在数据窗口失去焦点时执行该函数。
Next
dw_1.SetColumn("sex") //选中性别列,保证最后一个也要通过校验规则
★SetColumn、SetRow和GetColumn、GetRow和GetClickedColumn、GetClickedRow和GetColumnName
设置当前列
★Update
语法:dwcontrol.Update ( { accept {, resetflag } } )
功能:提交数据窗口或者datastore中的数据。如果accept为True,表示在提交数据之前自动执行AccpetText函数,否则不执行该函数,该参数缺省为True;如果resetflag为True,表示数据提交后自动清除修改标识,该参数缺省为True。
★GetItemStatus和SetItemStatus
使用函数dwcontrol.GetItemStatus ( row, column, Primary! )可以获取该缓冲区内指定单元的状态,当参数column为0时,表示读取整个行的修改状态。有以下状态。
NotModified! :指定单元的数据和原始数据相同,没有修改过。
★SetItem和SetText
函数SetItem的语法格式是:
dwconБайду номын сангаасrol.SetItem ( row, column, value )
各个参数的含义如下。
dwcontrol:数据窗口或datastore控件名称。
row:要设置的数据所在行。
column:要设置的数据所在的列。可以用整型列号,也可以用string型列名。
value:要设置的值,应该和要设置的列的类型一致。
函数正确执行则返回1,这时数据窗口中row行column列显示的数据是刚刚用该函数设定的数据,如果函数执行过程中发生错误则返回-1。注意,该函数执行时仅仅检查函数中指定数据的类型和字段的类型是否一致,不会进行有效性校验,包括在数据窗口中设置的校验规则、在ItemChanged事件中编写的校验规则、在ItemChanged调用的校验规则都不会执行。
★SetTransObject
语法:dwcontrol.SetTransObject ( transaction )
功能:给数据窗口或者datastore控件dwcontrol设置事务对象transaction,缺省事务对象是SQLCA。
返回值:成功设置事务对象则返回1,执行过程中发生了错误则返回-1,有任意参数为Null时返回Null。
★Retrieve
语法:dwcontrol.Retrieve ( {, argument, argument . . . } )
功能:使用数据窗口控件的当前事务对象检索数据库中的数据。如果数据窗口控件对应的数据窗口对象定义了检索参数,则应该在该函数中指定检索参数,参数的个数和数据窗口对象的检索变量个数相等,对应的数据类型相兼容。
DataModified!:指定单元的数据和原始数据不同,修改过。
New!:该数据行是新增加的,但还没有在该行上输入数据。
NewModified!:该数据行是新增加的,并且已经在该行上录入了数据。
这些修改标识都是由数据窗口自动维护的,一般情况下没有必要编写脚本修改这些标记,但并不是说就不能修改。PowerBuilder提供了函数SetItemStatus,它的语法是:
NotModified! Yes Yes Yes \
表中的Yes表示可以使用SetItemStatus进行该状态设置,No表示不会产生预期的状态,如果标明了某个特定的状态,则说明是新的状态,而不是期望的状态。例如,数据窗口dw_1的第1行第1列的当前状态为DataModified!,使用函数dw_1.SetItemStatus(1,1,New!)后,第1行第1列的状态改变为NewModified!。同样对于该数据窗口dw_1,如果使用函数dw_1.SetItemStatus(1,1,NotModified!),则会将其状态改变为NotModified!。当从一种状态不允许转变到另一种状态时,可以修改成其他一个中间状态,然后再进行一次转换。例如,要从new!改成NotModified,应该首先转换到DataModified!
返回值:返回数据窗口控件主缓存区(PrimaryBuffer)中的记录数,如果检索数据时发生错误则返回-1,如果任意参数为Null则返回Null
*该函数的参数和数据窗口对象定义的参数的顺序要相同,类型要兼容。个数不能少于数据窗口对象定义的参数,即可以等于和多于数据窗口对象定义的参数,多的参数忽略。
★DeletedCount
语法:dwcontrol.DeletedCount ( )
功能:获取数据窗口控件或者datastore控件dwcontrol中被删除的记录数。
返回值:返回long类型的已经被删除但还没有提交到数据库中的记录数,如果执行过程中发生了错误则返回-1,如果dwcontrol为Null则返回Null,如果没有删除过记录则返回0
★InsertRow
语法:dwcontrol.InsertRow ( row )
功能:在数据窗口dwcontrol的第row行前插入一行空白数据。当指定row为0时,表示在当前行之前插入一行空白数据。
返回值:返回插入的数据的行号,如果执行过程中发生错误则返回-1,如果任意参数为Null则返回Null
★SetFilter、Filter和Find
★RowsMove
它可以将数据从一个缓冲区移动到另外缓冲区中。该函数的语法是:
dwcontrol.RowsMove ( startrow, endrow, movebuffer, targetdw, beforerow, targetbuffer )
其中,dwcontrol是进行移动操作的源数据窗口;startrow和endrow是要移动数据的范围(包括这两个行号的数据);movebuffer指要从哪个缓存区移出数据,可以是Primary!、Delete!、Filter!;targetdw是目标数据窗口控件名称;beforerow表示在目标数据窗口的哪一行之前插入移入的数据,如果该数值比目标数据窗口的行数大,则在最后插入移入的数据;targetbuffer是目标缓存区,取值同movebuffer一样。
函数SetText的语法格式是:
integer dwcontrol.SetText ( string text )
功能是设置当前编辑框中的内容。注意,当编辑框离开当前单元时要进行有效性校验,如果校验数据正确,则当前字段接受该数据,否则触发ItemError事件。所以,可以使用该函数给带有校验规则的字段设置数据。
★DeleteRow
语法:dwcontrol.DeleteRow ( row )
功能:删除数据窗口dwcontrol中的第row行数据,如果row为0则表示删除当前行的数据。
返回值:执行成功则返回1,执行错误则返回-1,如果任意参数为Null则返回Null。
*该函数执行后只是将被删除的数据从数据窗口的主缓存区移放到Deleted缓冲区,在数据库中并没有真正删除数据,当正确执行了Update函数并且使用commit语句提交了事务后,才真正从数据库中删除该数据
EG:
int li_i
dw_1.SetColumn("name") //使name列成为当前列
For li_i = 1 To dw_1.RowCount()
dw_1.SetRow(li_i) //使第I行成为当前行
dw_1.SetText("屁") //向当前编辑框中写入内容
返回值:执行成功则返回1,执行过程中发生错误则返回-1,如果dwcontrol为Null则返回Null。
*该函数在数据窗口的ItemChanged事件中不起作用,因为项目改变是发生在接受编辑框中内容之后
★ModifiedCount
语法:dwcontrol.ModifiedCount ( )
功能:获取数据窗口或者Datastore中被修改过但还没有提交到数据库中的记录数。
相关文档
最新文档