pb8.0技术(2)

2020-04-16 10:33

为background color 属性设置条件表达式,根据条件的不同,设置不同的颜色。其中有工资小于150、工资在150到250、其它条件三种情况。如果用if语句编写,表达式如下所示:

if (salary <150,255,if(salary between 150 and 250,65286,16711680))

现在我们用case语句代替if语句,表达式如下所示:

CASE (salary when is < 150 then 255 when 150 to 250 then 65286 else 16711680)

预览数据窗口,如下图所示:

比较上面所写的两个表达式,可以看出用case语句所写的表达式更清晰,用户更容易读懂、接受。当条件越多时,使用case语句的优点越明显。

在数据窗口表达式中还可以使用Like、Between、Not Like、Not Between、 Not = 等运算符,下面再举一个例子来使用上面所述的运算符,使用的数据窗口仍是上面的数据窗口,只是取消上面所写的条件表达式。

举例如下:

在数据窗口工作区域选中菜单项Rows->Filter…,在Specify Filter对话框中输入如下表达式:

(author_code like '%2') and (salary between 100 and 200)

预览该数据窗口,执行结果如下图所示:

上例使用了like、between两个运算符,not like、not between等其它运算符的使用与上例类似,可以仿照上例使用。

数据窗口的异步检索方式

本篇文章来源与时代朝阳数据库(原晓通数据库)培训部PowerBuilder资料库。

当数据窗口要检索大量的数据或执行复杂的查询时,用户必须等待检索或查询结束后才能进行其它的工作,这样会浪费很多时间。为了提高系统运行效率,我们可将大量数据的数据窗口设置为异步检索方式,即系统在检索数据的同时用户可执行其它操作。下面举例说明其实现方法:

1. 创建包含一个数据窗口控制、一个命令按钮及一个单行编辑器的窗口对象w_async,如下图所示:

2. 以“auths”表中的部分列(author_code,name,sex)为数据源,创建一“freefrom”显示风格的数据窗口d_auths3,其中包含一个DB OLE对象,该对象对应于auths表中的“picture”列,如下图所示:

3. 将数据窗口d_auths3连接窗口w_async中的数据窗口控制dw_1上,如下图所示:

4. 在窗口w_async中的命令按钮“cb_1”的“clicked”事件中编写下面程序:

disconnect;

SQLCA.DBMS = \SQLCA.AutoCommit = False /*设置数据窗口异步检索*/

SQLCA.DBParm = \ connect;

settransobject(dw_1,sqlca) dw_1.retrieve()

5. 在窗口w_async中的数据窗口控制dw_1的“retrieveend”事件中编写下面程序:

disconnect;

SQLCA.DBMS = \SQLCA.AutoCommit = False

/*将数据窗口恢复为同步执行*/

SQLCA.DBParm = \connect;

6. 创建完毕,运行窗口“w_async”,单击窗口中的“检索”按钮,在数据窗口执行查询的期间,鼠标形状一直保持为箭头形状,用户可执行其它操作。例如,可在窗口中的单行编辑器内输入文字,如下图所示:

本技术的实现主要是通过设置事务对象的“dbparm”属性,设置事务对象“dbparm”属性的语法为:

.dbparm=”async=1”

其中“async=1”代表事务异步执行,“async=0”代表事务同步执行。

使数据窗口按行滚动

本篇文章来源与时代朝阳数据库(原晓通数据库)培训部PowerBuilder资料库。

通常情况下,单击数据窗口的纵向滚动条时,数据窗口缺省是以页为单位上下滚动的。这里介绍一种设置“tabular”、“grid”及“freefrom”显示风格的数据窗口以行为单位纵向滚动的方法。下面举例说明其实现方法:

1. 创建包含一个数据窗口控制的窗口对象w_rowscroll,如下图所示:

2. 为article表为数据源,创建一个grid显示风格的数据窗口d_article,并将其连接到窗口w_rowscroll中的数据窗口控制dw_1上,如下图所示:

3. 在窗口w_rowscroll的“open”事件中编写下面程序:

dw_1.settransobject(sqlca) dw_1.retrieve()

4. 在窗口w_rowscroll的数据窗口控制dw_1上的“other”事件中编写下面程序:

integer li_wordparm

li_wordparm = Message.WordParm if Message.Number = 277 then

if li_wordparm = 1 or li_wordparm = 3 then /*触发下一行或下一页事件*/

/*滚动到下一行,并将焦点置到那一行*/ dw_1.ScrollToRow( dw_1.GetRow() + 1) elseif li_wordparm = 0 or li_wordparm = 2 then /* 触发上一行或上一页事件*/

/*滚动到上一行,并将焦点置到那一行*/ dw_1.ScrollToRow(dw_1.GetRow() - 1) else RETURN end if

/* 使数据窗口不滚动*/ Message.Processed=TRUE end if

5. 编写完毕,运行窗口w_rowscroll,结果如下图所示:


pb8.0技术(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中国电信翼支付客户使用手册

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: