>> 本版精华贴    X++和MorphxX技术讨论区
搜一搜更多此类问题 
秋毫ERP咨询-微软Dynamics Ax Axapta Nav SL CRM论坛微软ERP Dynamics系列【本版最新】『Microsoft Dynamics Ax (Axapta) 开发』 → ax中汉字名称输入快速定位问题

您是本帖的第 178 个阅读者
树形 打印
标题:
ax中汉字名称输入快速定位问题
作 者
帖 子
laoheiya
帅哥哟,离线,有人找我吗?
等级:技术员
积分:43
现金:47
文章:3
门派:无门无派
注册:2010年6月11日
楼主
  点击这里发送电子邮件给laoheiya 访问laoheiya的主页

发贴心情
ax中汉字名称输入快速定位问题
发表于2010-7-15 22:43:37

ERP中,在录入、修改数据时,数据库中保存编码信息,而客户端显示相关编码的名称、简称等比较符合用户的使用习惯,例如下图:

图片

?? ? 此类问题的解决思路见《Micorsoft dynamics ax 2009 Development Cookbook》->Building?

Lookups-> Building a lookup based on record descirption。基本思路是用AX中的edit方法实现,

照着书中说的做就可实现。

?? ? 进一步的改进功能是如何快速定位到需要选择的客户信息。比如上例联想(北京)有限公司,用户只需要输入:lxbj...,lookup下拉框即可自动缩小范围,过滤出满足条件的汉字拼音首字节。

如下图:

?? ??图片

?? ? ?在快速定位输入框里面,只需要输入lxb就可以定位到需要选择的数据。

?? ? ?解决思路:

?? ? 1、在客户信息表中,增加拼音码字段,记录客户简称每个汉字的首字母。对客户名称录入、修改时,自动记录下拼音码,需要专门写个函数实现。

?? ? 2、用form代替默认lookup,见《Development Cookbook》->Building?Lookups->

Using a form for lookup building.

?? ? 3、form上增加个editstring输入框:

a.覆盖textChange()方法

public void textChange()

{

????super();

?? ?khxxb0_ds.executeQuery();

}

b.覆盖enter()方法

public void enter()

{

?? ?super();

?? ?this.setSelection(strlen(this.text()),strlen(this.text()));

}

这一步是必须的,要不输入框只能输入一个字母,再次输入会把上一次的覆盖掉。

c.datasource中覆盖executeQuery()

public void executeQuery()

{

?? ?str ?ls_input;

?? ?ls_input = input.valueStr();

?? ?ls_input = '*'+ ls_input + '*';

?? ?qbr.value(ls_input);

?? ?super();

}

?? ?以上步骤完成后,在输入框中,可根据客户简称汉字的首字母,自动缩小定位范围,快速选择

到需要的客户信息,此方法对数据量较大的编码表非常有用,可让用户非常快速的选择到需要的

信息。

ip地址已设置保密
2010-7-15 22:43:37

 1   1   1/1页      1    

粤ICP备06100540号 】 广告及业务联系】秋毫IT百科】
Copyright ©2006-2008 www.QiuHao.com地图1】【地图2】【地图3】【所有贴】【技术文集】 【秋毫ERP