pb11.2build8949 数据窗口dw limit问题
pb11.2的字符集合pb8等之前版本不同,在数据窗口的edit的limit出现如下问题
1、limit是生成数据窗口时根据数据库的字符型字段长度自动生成的,例如person_name varchar2(60) ,这个dw列就limit60
2、以前输60个英文字符或者30个汉字后,就再输不进去,现在输30汉字后还能继续输入,能输到60个汉字
3、当有汉字输入时,实际长度有可能超过了limit的限制,一但update就出错了,超长数据库不能接受更新。
请问有什么办法能让limit和原来低一样仍控制字节数而不是11.2版的控制字符数?
我现在没有好办法,只好自己在dw控件editchanged里写脚本处理,虽然可写在祖先对象中,但系统里有很多地方把这个事件代码屏蔽了,查找起来依然很费劲
有没有pb补丁或者pb什么设置可以达到目的或者有改动量比较小的做法?
谢谢
如果你也遇到同样问题但没解决,请帮顶,谢谢
我在editchanged处理如下:
string ls_name
long ll_limit,ll_datalen,ll_pos,ll_left
string ls_left,ls_right
ls_name=dwo.name
ll_limit=long(this.Describe(ls_name+".Edit.Limit"))
if ll_limit>0 then
ll_datalen= lena(data)
if ll_datalen>ll_limit then
ll_pos=this.position()
ls_right=mid(data,ll_pos,ll_datalen)
ls_left=left(data,ll_pos -1)
ll_left=len(ls_left)
do while lena(ls_left)>ll_limit -lena(ls_right) and ll_left>=0
ll_left=ll_left -1
ls_left=left(ls_left,ll_left)
ll_left=len(ls_left)
loop
ll_pos=len(ls_left)
this.setitem(row,ls_name,ls_left+ls_right)
this.selecttext(ll_pos+1,0)
return 1
end if