Powerbuilder(pb)的datawindow(数据窗口)的各个缓冲区和状态是pb数据窗口的非常重要的,对这些概念的理解,将有助于我们认识pb数据窗口的优势。
基本概念
数据窗口的三个缓冲区:
Primary!
Delete!
Filter!


Getitemstatus(row,列名或者列号,缓冲区)
当要取整个行的状态时,列名或者列号用0表示
数据窗口中数据项状态
Notmodified!    从数据retrieve出来后没有改变过
Datamodified!    数据retrieve出来后有过改变
New!    数据窗口增加了一列但没有录入过数据,该列的状态就是new!
Newmodified!    数据窗口增加了一列,同时改列被录入了数据,该列的状态就是newmodified!
1、一个数据窗口dw_1,刚被retrieve出来后,结果如下:

编号   XX
001    Ccc
002    ddd
所有的行和数据项状态都是notmodified
用geitemstatus(行号,列名,primary!)取每一数据项状态
用getitemstatus(行号,0,primary!)去行状态
2、当我把Ccc改为AAA后,如下:

编号    XX
001     AAA
002    ddd
001,002,ddd三个格子所在的数据项状态仍旧是notmodified
AAA(原是Ccc)所在格子的数据项状态是datamodified
第一行(001,AAA)的行状态是datamodified
第二行(001,ddd)的行状态时notmodified
3、不保存,我把dw_1.insertrow(0)后,如下:

编号  XX
001  AAA
002 Ddd
第一行,第二行的状态参考前面第2点。
第三行状态就是new!
请用getitemstatus(3,0,primary!)取第三行状态
4、不保存,当把第三行数据填充后,如下


编号  XX
001   AAA
002  Ddd
003  FFF
第三行的状态将变为newmodified!
第三行的每一项将变为datamodified!
 

 

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐