下拉数据窗口dddw问题,如何实现输入汉字拼音,然后在下拉数据窗口中找到汉字的记录

poemlake 2003-11-22 10:33:24
下拉数据窗口dddw问题,如何实现输入汉字拼音,然后在下拉数据窗口中找到汉字的记录
比如输入汉字拼音,然后,打开下拉数据窗口,找到此拼音的商品,点后添到字段中,类似于速达3000的功能
...全文
110 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
poemlake 2003-11-25
  • 打赏
  • 举报
回复
快乐白兔等各位朋友,以后有问题要多帮忙顶一下啊,我手平不高望各位兄弟多多帮忙
poemlake 2003-11-25
  • 打赏
  • 举报
回复
leafwy(leafwy) 兄
这是一个长字符串的表达式,合起来是一个大字符串,以每个加号为联接符,进行连接,你把加号去掉,把str_input这个字符串用一个值代替'hwl', 把ll_len用 ‘3’ 代替,就是这样的
原:
ll_filter= "mid(clmc_py,pos(clmc_py,'" + str_input + "')," +string(ll_len)+")='" + str_input + "'"
替换后:
ll_filter= "mid(clmc_py,pos(clmc_py,'hwl'),3)='hwl'
我再把它用加号连结分开,再看看

ll_filter= "mid(clmc_py,pos(clmc_py,'" + "hwl" + "')," + "3" +")='" + "hwl" + "'"
看明白了吧,如果实在不明白,上QQ,我讲给你听QQ 70237855
poemlake 2003-11-25
  • 打赏
  • 举报
回复
没有要看的就结分喽
946 2003-11-25
  • 打赏
  • 举报
回复
mk
poemlake 2003-11-24
  • 打赏
  • 举报
回复
上面的查询可实现模糊查询
lmby 2003-11-24
  • 打赏
  • 举报
回复
gx ^_^
leafwy 2003-11-24
  • 打赏
  • 举报
回复
ll_filter="mid(clmc_py,pos(clmc_py,'"+str_input+"')," +string(ll_len)+")='"+str_input+"'"
这句不是很清楚,请解释一下
poemlake 2003-11-24
  • 打赏
  • 举报
回复
各位朋友,本人用了3天的时间终于想出来怎么做了,有兴趣知道的朋友告诉我一声,等我晚上有空的时候,把源码发上来,我先说明原理,
在editchange事件中编find数据窗口查询语句对下拉数据窗口查询是对的,但是父数据窗口本身在edit事件中默认查找下拉数据窗口的display value例,而且查询方式只能是left(),不能模糊查询,就是说你在editchange事件中编的任何查询代码虽起到作用,但被其后执行的默认事件所改变结果,所以我在editchange事件中调用一个自定义的find查询语句的事件user_eidtchange,然后直接return不执行默认事件,结果就解决了上述的问题
ropriest 2003-11-24
  • 打赏
  • 举报
回复
呵呵,厉害!!
klbt 2003-11-24
  • 打赏
  • 举报
回复
祝贺楼主自力更生!
sky2311 2003-11-24
  • 打赏
  • 举报
回复
帮您顶一下
poemlake 2003-11-24
  • 打赏
  • 举报
回复
/*下拉数据窗口内容为
cl_id(商品编号),cl_mc(商品名称),clmc_py(材料名称拼音)
在editchanged事件中这样写
*/

//incl_id为材料入库商品编号,对应cl_id
if dwo.name='incl_id' then
this.postevent('user_editchanged')
return
end if

//user_editchanged为自定义事件

datawindowchild dddw_incl_id
string str_input
str_input=this.gettext()
this.getchild('incl_id',dddw_incl_id)
long ll_len,ll_found_row
string ll_filter
ll_len=len(str_input)
ll_filter="mid(clmc_py,pos(clmc_py,'"+str_input+"')," +string(ll_len)+")='"+str_input+"'"
ll_found_row=dddw_incl_id.find(ll_filter,1,dddw_incl_id.rowcount())
dddw_incl_id.SetRedraw(FALSE)
// dddw_incl_id.SelectRow(0, FALSE)
dddw_incl_id.scrolltorow(ll_found_row)

// dddw_incl_id.SelectRow(ll_found_row, TRUE)
dddw_incl_id.SetRedraw(TRUE)
return


bigtailwolf163 2003-11-24
  • 打赏
  • 举报
回复
我也遇到这样的情况,只是我另外画了个DW来过滤,然后把过滤得到的值再传给dddw所在的输入区域,其它的方法就没试过了。
flyerlxg 2003-11-24
  • 打赏
  • 举报
回复
帮您顶一下
poemlake 2003-11-24
  • 打赏
  • 举报
回复
我试了,问题是现在用下拉数据窗口实现,在下拉数据窗口中搜索,但结果不是想要的
klbt 2003-11-23
  • 打赏
  • 举报
回复
你需要在数据库表中建立一列:拼音码。
在editchanged事件中编码过滤,需要获取汉字拼音码函数。
poemlake 2003-11-23
  • 打赏
  • 举报
回复
没有人帮忙吗?
poemlake 2003-11-22
  • 打赏
  • 举报
回复
我想在下拉数据窗口中搜索,谁哪位做过?
TGWall 2003-11-22
  • 打赏
  • 举报
回复
对于这方面的问题,我平时是这样实现的:在定义商品的时候,由自定义的函数自动生成拼音码或五笔码,这样,在其他地方要操作某种商品的时候,只需要录入拼音码或五笔码就行了,比如三鲜面拼音码是sxm,五笔码是dqd。
poemlake 2003-11-22
  • 打赏
  • 举报
回复
我记得pfc中好象有些代码,不知道哪位用过。
加载更多回复(4)

1,108

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧