dw中输入字符时自动查询补充(仿EXCEL的自动补足字符),该怎么处理
dw中输入字符时自动查询补充(仿EXCEL的自动补足字符)
想仿excel中的自动在输入字符后,查询本列的所有历史记录,补足后续字符
例如: 产品名称
热水器
电单车
电视机
冰箱
办公桌
-------------------以上是历史已存在数据
当新增行,输入“电视”字符时,自动在输入的“电视”字符后补足“机”字符,并且高亮选择“机”字,如果不是想要的字符可以继续输入替换。
现在初步用editchanged事件,只能对单个英文、数字字符输入时提取data值时还算可以正常提取到输入的字符值,但如果我用中文输入法,输入词组(如‘电视’2字直接拼写出来),直接按空格键输入这个编辑字段时,发现data返回值提取的是第1个字符,这样使得我无法正常进行后续的查询,希望有朋友指点一二。
用的pb11,郁闷中……
------解决方案--------------------
那是因为输入内容时是写在控件上面,只有回车后才能写入控件中!
可以做个函数,在editchanged事件中用 post 方法来调用这它!
------解决方案--------------------
代码如下:(需要定义一个实例变量string is_prior_txt)
想仿excel中的自动在输入字符后,查询本列的所有历史记录,补足后续字符
例如: 产品名称
热水器
电单车
电视机
冰箱
办公桌
-------------------以上是历史已存在数据
当新增行,输入“电视”字符时,自动在输入的“电视”字符后补足“机”字符,并且高亮选择“机”字,如果不是想要的字符可以继续输入替换。
现在初步用editchanged事件,只能对单个英文、数字字符输入时提取data值时还算可以正常提取到输入的字符值,但如果我用中文输入法,输入词组(如‘电视’2字直接拼写出来),直接按空格键输入这个编辑字段时,发现data返回值提取的是第1个字符,这样使得我无法正常进行后续的查询,希望有朋友指点一二。
用的pb11,郁闷中……
------解决方案--------------------
那是因为输入内容时是写在控件上面,只有回车后才能写入控件中!
可以做个函数,在editchanged事件中用 post 方法来调用这它!
------解决方案--------------------
代码如下:(需要定义一个实例变量string is_prior_txt)
- C/C++ code
string ls_findexp, ls_data, ls_col_nam long ll_row ls_col_nam = dwo.name if lower(left(this.describe(ls_col_nam + ".ColType"), 4)) = 'char' then if len(data) > 0 then // else is_prior_txt = data return end if if len(is_prior_txt) >= len(data) then is_prior_txt = data return elseif pos(data, "'") > 0 then // //elseif pos(data, '"') > 0 then // elseif pos(data, '~~') > 0 then // else ls_findexp = "(left(" + ls_col_nam + "," + string(len(data)) + ") = '" + data + "') and " ls_findexp += "(getrow() <> " + string(row) + ")" ll_row = this.find(ls_findexp, this.rowcount(), 1) if ll_row > 0 then ls_data = this.getitemstring(ll_row, ls_col_nam) this.post function settext(ls_data) this.post function selecttext(len(data) + 1, len(ls_data)) end if end if is_prior_txt = data end if