| 第二十八讲 深入窗体 使用Modify函数动态改变数据窗口(一) | ||||
| 28.1 小 结 这些函数,事件只是很少的一部分,要进一步了解PB的数据窗口(控件),就要大量读取PB自带的Examples,学会使用PowerBuilder的Help。我们只要有了这个基础,利用PB进行数据库编程,就变得简单了。 28.2 用Modify函数动态必变数据窗口 改造d_customer数据窗口。 增加一个字符型的参数“Sname” 。 清空Where条件语句。 打开主窗口界面OPEN事件的Script画板 建立数据库连接 dw_browse.settransobject(sqlca) 打开取数控件(cb_retrieve)的script画板。 修改cb_retrieve中的Clicked事件。在此,我们将用Modify()函数实现数据窗口控件的“Dataobject”属性的变化。 string modify_sql,rc,sname 对老程序进行如下修改: int li_count modify_sql= 'SELECT "customer"."id", "customer"."fname","customer"."lname", "customer"."address","customer"."zip","customer"."company_name" FROM "customer" WHERE ( "customer"."id" >= :id1 ) AND ( "customer"."id" <= :id2 )' rc=dw_browse.modify("datawindow.table.select='"+modify_sql+"'") 在这里应该注意几个问题: 首先,字符串必须用引号:如果字符串内用了单引号,那么整个字符串应该用双引号,否则会出错的。 其次,这个Select语句中选出的字段名最好与事先作好的Datawindow选出的字段名相同。 第三,参数一致性问题。在d_customer数据窗口中定义的三个参数分别是:id1,id2和sname。注意在这个Select语句中的Where子句,我们用到了两个条件,对应着两个参数。它们是“:id1”和“:id2”。也就是说,在Modify()函数中的where子句用的参数应该在事先定义好之中。 以上三个问题是我们在用Modify函数时应该注意的,这样写出的程序就不易出错了。 Modify()函数的语法: dw_control.Modify ( modstring ),它只有一个字符串参数,可以是这个datawindow中的一个特定值。Modstring可以为: (1)改变数据窗口中所有对象(比如静态文本,字段)的颜色,文本值的表达式 (2)改变数据窗口的Update状态,改变数据窗口的表的表达式 更改数据窗口的Where子句的表达式 更改数据窗口的数据源的表达式 更改查询模式的表达式 更改取出仅仅需要的数据表达式 增加和减少数据窗口中的对象的表达式 |
||||