PB中判断该字段是否更改及原始值与当前值
来源:互联网 发布:户型优化设计合同 编辑:程序博客网 时间:2024/06/11 18:18
先解释一下这几个函数的意思:
dwcontrol.GetItemStatus ( row, column, Primary! )可以获取该缓冲区内指定单元的状态,当参数column为0时,表示读取整个列的修改状态。有以下状态。
NotModified! :指定单元的数据和原始数据相同,没有修改过。
DataModified!:指定单元的数据和原始数据不同,修改过。
New!:该数据行是新增加的,但还没有在该行上输入数据。
NewModified!:该数据行是新增加的,并且已经在该行上录入了数据。
这些修改标识都是由数据窗口自动维护的,一般情况下没有必要编写脚本修改这些标记,但并不是说就不能修改。PowerBuilder提供了函数SetItemStatus,它的语法是:
dwcontrol.SetItemStatus ( row, column, dwbuffer, status )
下面是使用GetItemStatus判断值是否被修改过的代码
- int li_i,li_colcount
- string ls_colname,ls_coltype
- dwItemStatus l_status
- li_colcount = long(dw_1.describe("DataWindow.Column.Count"))
- for li_i = 1 to li_colcount
- ls_colname = dw_1.describe('#' + string(li_i) + '.name')
- if lower(trim(ls_colname)) = 'p_sup_no' then exit
- next
- l_status = dw_1.GetItemStatus(dw_1.getrow(), li_i, Primary!)
- if l_status = DataModified! then
- messagebox('提示','供应商已经变更!')
- end if
接着介绍getitemstring,因为我这里供应商的字段是varchar类型的,所以只介绍这个,其它类型找相应的函数,如数值类型的用getitemnumber。在这个例子关键是第四个参数的指定,当为True时,取得原始值,False是取得当前值。语法如下:
dwcontrol.GetItemString( row, column {, dwbuffer, originalvalue } )
参数
dwcontrol:数据窗口控件名
row:long型,要得到数据值的单元所在的行
column:要得到数据值的单元所在的列,该列的数据类型必须是String类型。column参数可以是列号(integer类型),也可以是列名(string类型)。
dwbuffer:dwBuffer枚举类型,指示想得到数据窗口哪个缓冲区的值。有效取值为:
Primary! - 缺省值,得到主缓冲区中的数据(未被删除或过滤掉的数据)
Delete! - 得到删除缓冲区中的数据(从数据窗口中已经删除的数据)
Filter! - 得到过滤缓冲区中的数据(从数据窗口中已经过滤掉的数据)
originalvalue:boolean类型,指示要得到指定单元(由行/列值决定)的原始值还是当前值。有效取值为:
True:得到原始值(从数据库中检索出的初始值,该值不受当前修改的影响)
False:该参数的缺省值,表示函数将得到指定单元的当前值。
返回值String。函数执行成功时,返回指定单元的String型数据值;如果指定单元的数据值为NULL,则函数返回NULL;如果发生错误,函数返回空字符串("");如果任何参数的值为NULL,则GetItemString()函数返回NULL。
用该函数实现的代码为:
- long ll_row
- boolean lb_change_sup_no_flag
- ll_row = dw_1.getrow()
- if dw_1.getitemstring(ll_row,'p_sup_no',Primary!,true) <> &
- dw_1.getitemstring(ll_row,'p_sup_no',Primary!,false) then //原始值<>当前值
- lb_change_sup_no_flag = true //更改过供应商
- else
- lb_change_sup_no_flag = false //未更改过供应商
- end if
- PB中判断该字段是否更改及原始值与当前值
- PB中判断该字段是否更改及原始值与当前值
- PB中判断该字段是否更改及原始值与当前值
- PB判断数据窗口数据是否更改及原始值与当前值
- PB判断数据窗口数据是否更改及原始值与当前值
- 判断表中是否存在该字段,如果不存在则新增该字段
- SqlServer Update触发器判断某个字段的值是否已经更改
- 如何判断该字段是否为空
- oracal判断某字段值中是否包含某字符串
- 如何判断Oracle中某个字段的值是否重复
- JS 判断是否有当前字段
- 判断一个表中是否存在某个字段 及 判断数据库中是否有某个
- Ms SQL中 根据表名查询字段信息,根据表名和字段判断该字段是否存在
- 判断WPF中gridview中的数据是否为空,若为空则不显示该字段方法
- 同表两个字段二选一查询mysql中如何判断某一个字段是否存在某一个值
- 判断字段的值是否为空
- oracle 判断字段值是否为数字
- Protobuf-net判断字段是否有值
- 解决头文件相互包含问题的方法
- IE 下js里面new Date("2011-11-11") 出现nan的问题以及解决方法
- HDU 2795 Billboard(线段树)
- The Story of A Web Designer’s Life in 15 GIFs
- 苹果系统与微软系统的区别——系统大PK
- PB中判断该字段是否更改及原始值与当前值
- 对象的强、软、弱和虚引用
- 泛化误差,交叉验证和特征选择
- 黑马程序员_关于JAVA中栈和堆,以及由此引发的一些思考
- Java中的CopyOnWrite容器
- 19 个 Android 开发工具
- 单片机中的NOP指令
- 股市专用名词
- SecurityError: The operation is insecure.