26 个解决方案
#1
up
#2
dw_1.object.original.columnname[rowno]
#3
刚才写错了,
dw_1.object.columnname.original[rowno]
columnname为字段的名称
rowno为行号
这个值为初始,未做改动的值
dw_1.object.columnname.original[rowno]
columnname为字段的名称
rowno为行号
这个值为初始,未做改动的值
#4
谢谢回答!只是不知道怎么用?要得到未编辑之前该字段的值容易,现在的问题是当不想保存时,在焦点转移后如何将该字段值还原到修改之前的值?
#5
lostfocus事件中写代码,还原回来不行吗?
#6
不能够在lostfocus中写,因为在该数据窗口内字段间焦点的转移时就要提示保存,而lostfocus好象是整个数据窗口失去焦点时才触发?
#7
sorry,错了
应该在Itemfocuschanged事件中可以吧
应该在Itemfocuschanged事件中可以吧
#8
Itemfocuschanged也达不到效果
#9
为什么不行,你的messagebox不是在这个事件中吗?
根据它的返回值,就可以接下来写代码,还原了啊
根据它的返回值,就可以接下来写代码,还原了啊
#10
return 2就还原了
#11
To:唐朝
试过return 2,但不灵! :(, 各位能不能帮测试一下,谢谢了!
试过return 2,但不灵! :(, 各位能不能帮测试一下,谢谢了!
#12
取到原来值,然后setitem()回去自动保存下呢
#13
那是你代码中强行付值了,所以不能返回,你用massagebox判断的时候用itemcheng的dwo.name和data来判断,不行就return2 行就return0
#14
同意使用强制赋值的方法,在进行录入之前首先记录内容,如果要还愿就强制赋值。
也可以用 ItemChanged event (DataWindows)
这是 sybase的文档
Set the return code to affect the outcome of the event:
0 (Default) Accept the data value
1 Reject the data value and do not allow focus to change
2 Reject the data value but allow the focus to change
For information on setting the return code in a particular environment, see "About return values for DataWindow events".
也可以用 ItemChanged event (DataWindows)
这是 sybase的文档
Set the return code to affect the outcome of the event:
0 (Default) Accept the data value
1 Reject the data value and do not allow focus to change
2 Reject the data value but allow the focus to change
For information on setting the return code in a particular environment, see "About return values for DataWindow events".
#15
我试过了可以的,
学习
学习
#16
我知道问题的关键了,是因为在写上面这些之前用了accepttext(),但是不用accepttext()好象又不行?各位再试一试在前面加上的accepttext()的情况,结果会不同的
#17
在itemchanged事件中return 1就可以了,其中不能用accepttext()
#18
这样,当用户选择了要保存时再用accepttext(),否则先不accepttext()。不这样的话自然return不回去。
#19
PB的数窗表达式中不允许两个like用and连接,它认为这样的表达式不合法。如果必须用两个like就得用sql语句的方式了。
如果用那两个值作判断,最稳妥的办法是先将这两个值分别取到存放在两个变量中,然后用组合字符串的方式构造setfilter()里的表达式语句,这样就可以避免两个like用and连接的情况,比用sql语句的方式简单些
如果用那两个值作判断,最稳妥的办法是先将这两个值分别取到存放在两个变量中,然后用组合字符串的方式构造setfilter()里的表达式语句,这样就可以避免两个like用and连接的情况,比用sql语句的方式简单些
#20
对不起,贴错地方了~:P
#21
但是,假如该字段原来的内容是空的,然后运行时输入一些值再将焦点转移,如果不用accepttext()的话,好象它不会提示?
我是用GetItemStatus来获得它的状态的
我是用GetItemStatus来获得它的状态的
#22
不会啊,Itemchanged事件中是明确不能用accepttext()的,否则就会出怪问题。
#23
而且你想要他提示什么,
如果你要在焦点跳转后,回复原值就return 2
如果你要在焦点跳转后,回复原值就return 2
#24
你直接在Itemchanged()事件下写messagebox('','')试下,原来空白输入内容后焦点转移时它一定会提示的。
一般只在保存前、删除前,或需要提取当前值用于计算、判断时才会使用accepttext()。并且一般都要紧贴于保存、删除、取值的代码之前放置。当未确定保存时不用它是完全没有问题的。只要内容改变并移开焦点,必然触发这一事件。
一般只在保存前、删除前,或需要提取当前值用于计算、判断时才会使用accepttext()。并且一般都要紧贴于保存、删除、取值的代码之前放置。当未确定保存时不用它是完全没有问题的。只要内容改变并移开焦点,必然触发这一事件。
#25
在数据窗口的itemchanged事件中加入类似如下代码:
ll_rt=messagebox("提示", "确实将第" + string(row) +"行工时" + string(this.getitemdecimal(row, "gs", primary!, true)) +"修改为" +data +"吗?", information!, yesno!, 2)
if ll_rt = 1 then
return 0 //确实修改
else
return 2 //不修改
end if
ll_rt=messagebox("提示", "确实将第" + string(row) +"行工时" + string(this.getitemdecimal(row, "gs", primary!, true)) +"修改为" +data +"吗?", information!, yesno!, 2)
if ll_rt = 1 then
return 0 //确实修改
else
return 2 //不修改
end if
#26
不会别人用这种办法都行,就你不行吧?
#1
up
#2
dw_1.object.original.columnname[rowno]
#3
刚才写错了,
dw_1.object.columnname.original[rowno]
columnname为字段的名称
rowno为行号
这个值为初始,未做改动的值
dw_1.object.columnname.original[rowno]
columnname为字段的名称
rowno为行号
这个值为初始,未做改动的值
#4
谢谢回答!只是不知道怎么用?要得到未编辑之前该字段的值容易,现在的问题是当不想保存时,在焦点转移后如何将该字段值还原到修改之前的值?
#5
lostfocus事件中写代码,还原回来不行吗?
#6
不能够在lostfocus中写,因为在该数据窗口内字段间焦点的转移时就要提示保存,而lostfocus好象是整个数据窗口失去焦点时才触发?
#7
sorry,错了
应该在Itemfocuschanged事件中可以吧
应该在Itemfocuschanged事件中可以吧
#8
Itemfocuschanged也达不到效果
#9
为什么不行,你的messagebox不是在这个事件中吗?
根据它的返回值,就可以接下来写代码,还原了啊
根据它的返回值,就可以接下来写代码,还原了啊
#10
return 2就还原了
#11
To:唐朝
试过return 2,但不灵! :(, 各位能不能帮测试一下,谢谢了!
试过return 2,但不灵! :(, 各位能不能帮测试一下,谢谢了!
#12
取到原来值,然后setitem()回去自动保存下呢
#13
那是你代码中强行付值了,所以不能返回,你用massagebox判断的时候用itemcheng的dwo.name和data来判断,不行就return2 行就return0
#14
同意使用强制赋值的方法,在进行录入之前首先记录内容,如果要还愿就强制赋值。
也可以用 ItemChanged event (DataWindows)
这是 sybase的文档
Set the return code to affect the outcome of the event:
0 (Default) Accept the data value
1 Reject the data value and do not allow focus to change
2 Reject the data value but allow the focus to change
For information on setting the return code in a particular environment, see "About return values for DataWindow events".
也可以用 ItemChanged event (DataWindows)
这是 sybase的文档
Set the return code to affect the outcome of the event:
0 (Default) Accept the data value
1 Reject the data value and do not allow focus to change
2 Reject the data value but allow the focus to change
For information on setting the return code in a particular environment, see "About return values for DataWindow events".
#15
我试过了可以的,
学习
学习
#16
我知道问题的关键了,是因为在写上面这些之前用了accepttext(),但是不用accepttext()好象又不行?各位再试一试在前面加上的accepttext()的情况,结果会不同的
#17
在itemchanged事件中return 1就可以了,其中不能用accepttext()
#18
这样,当用户选择了要保存时再用accepttext(),否则先不accepttext()。不这样的话自然return不回去。
#19
PB的数窗表达式中不允许两个like用and连接,它认为这样的表达式不合法。如果必须用两个like就得用sql语句的方式了。
如果用那两个值作判断,最稳妥的办法是先将这两个值分别取到存放在两个变量中,然后用组合字符串的方式构造setfilter()里的表达式语句,这样就可以避免两个like用and连接的情况,比用sql语句的方式简单些
如果用那两个值作判断,最稳妥的办法是先将这两个值分别取到存放在两个变量中,然后用组合字符串的方式构造setfilter()里的表达式语句,这样就可以避免两个like用and连接的情况,比用sql语句的方式简单些
#20
对不起,贴错地方了~:P
#21
但是,假如该字段原来的内容是空的,然后运行时输入一些值再将焦点转移,如果不用accepttext()的话,好象它不会提示?
我是用GetItemStatus来获得它的状态的
我是用GetItemStatus来获得它的状态的
#22
不会啊,Itemchanged事件中是明确不能用accepttext()的,否则就会出怪问题。
#23
而且你想要他提示什么,
如果你要在焦点跳转后,回复原值就return 2
如果你要在焦点跳转后,回复原值就return 2
#24
你直接在Itemchanged()事件下写messagebox('','')试下,原来空白输入内容后焦点转移时它一定会提示的。
一般只在保存前、删除前,或需要提取当前值用于计算、判断时才会使用accepttext()。并且一般都要紧贴于保存、删除、取值的代码之前放置。当未确定保存时不用它是完全没有问题的。只要内容改变并移开焦点,必然触发这一事件。
一般只在保存前、删除前,或需要提取当前值用于计算、判断时才会使用accepttext()。并且一般都要紧贴于保存、删除、取值的代码之前放置。当未确定保存时不用它是完全没有问题的。只要内容改变并移开焦点,必然触发这一事件。
#25
在数据窗口的itemchanged事件中加入类似如下代码:
ll_rt=messagebox("提示", "确实将第" + string(row) +"行工时" + string(this.getitemdecimal(row, "gs", primary!, true)) +"修改为" +data +"吗?", information!, yesno!, 2)
if ll_rt = 1 then
return 0 //确实修改
else
return 2 //不修改
end if
ll_rt=messagebox("提示", "确实将第" + string(row) +"行工时" + string(this.getitemdecimal(row, "gs", primary!, true)) +"修改为" +data +"吗?", information!, yesno!, 2)
if ll_rt = 1 then
return 0 //确实修改
else
return 2 //不修改
end if
#26
不会别人用这种办法都行,就你不行吧?