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!