【二开方案】如何在移动销售V5下单时商品列表、客户列表实现实时搜索
## 二开背景
移动销售5.0下单过程中需要选择商品加入购物车,需要选择客户,在商品列表和客户列表进行选择时如数据量庞大涉及搜索时,客户希望能够做到实时搜索,而不是像目前标准产品提供的商品搜索需要跳转到搜索面板页面进行搜索,如何才能做到呢?
![image.webp](/download/0100c8749e5320bb4b0c8d5007d4a37196dd.webp)
## 二开分析
平台提供的搜索框控件可以满足实时搜索需求,但是需要扩展表单将该控件加入到对应位置,需要在后端插件中编写获取搜索内容并重新加载列表等逻辑。
## 二开步骤
### 商品列表实现实时搜索
1. 扩展移动销售V5_商品(SAL_MobileProductV5)
2. 将原有搜索容器FSearchLayout隐藏,拖入工具箱中的搜索框控件
![image.webp](/download/0100f1ef4f2e8f034dee94962a296dafb8f0.webp)
3. 编写插件,继承Kingdee.K3.SCM.Mobile.Business.PlugIn.SaleMobileV5.MobProduct
4. 重写DataChanged事件,判断当前是否为搜索框的修改:e.Field.Key.EqualsIgnoreCase("xxx"),其中xxx表示你拖入的搜索框控件标识
5. 如是则执行既定商品列表筛选逻辑:将输入的搜索值加入筛选项并重新获取展示列表数据
6. 将该插件注册到插件列表并启用,取消启用默认插件
![image.webp](/download/010061ece6e5237b4d689c20261743d975e5.webp)
二开代码参考如下:
```
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Kingdee.BOS.Util;
using Kingdee.K3.Core.Mobile.Elements;
namespace YourNameSpace
{
public class YourClass : Kingdee.K3.SCM.Mobile.Business.PlugIn.SaleMobileV5.MobProduct
{
public override void DataChanged(DataChangedEventArgs e)
{
if (e.Field.Key.EqualsIgnoreCase("F_UNW_SearchField_qtr"))
{
var searchText = e.NewValue.ToString();
if (searchText == GetFilterValue(FilterType.Search, string.Empty))
return;
if (searchText.IsNullOrEmptyOrWhiteSpace())
{
FilterLabelItems.Remove(FilterType.Search);
}
else
{
FilterLabelItems[FilterType.Search] = new FilterLabelItem()
{
ControlKey = Convert.ToString(FilterType.Search),
Text = searchText,
Type = (int)FilterType.Search,
Value = searchText
};
}
FillEntryData();
}
}
}
}
```
### 客户列表实现实时搜索
1. 扩展移动销售V5_客户列表(SAL_MobileCustomerListV5)
2. 将原有搜索容器FSearchLayout及搜索按钮FLblSearch隐藏,拖入工具箱中的搜索框控件
3. 编写插件,继承Kingdee.K3.SCM.Mobile.Business.PlugIn.SaleMobileV5.MobCustomerList
4. 重写DataChanged事件,判断当前是否为搜索框的修改:e.Field.Key.EqualsIgnoreCase("xxx"),其中xxx表示你拖入的搜索框控件标识
5. 如是则赋值搜索内容并重新加载数据base.ResetDataWithUpdateView();
6. 将该插件注册到插件列表并启用,取消启用默认插件
二开代码参考如下:
```
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Kingdee.BOS.Util;
namespace YourNameSpace
{
public class YourClass: Kingdee.K3.SCM.Mobile.Business.PlugIn.SaleMobileV5.MobCustomerList
{
public override void DataChanged(DataChangedEventArgs e)
{
if (e.Field.Key.EqualsIgnoreCase("F_UNW_SearchField_re5"))
{
var searchText = e.NewValue.ToString();
if (base._searchStr == searchText)
{
return;
}
base._searchStr = searchText;
base.ResetDataWithUpdateView();
}
}
}
}
```
## 最终效果
商品列表:
![image.webp](/download/0100978652409f374788aacab11b7dc965d0.webp)
客户列表:
![image.webp](/download/01004b7c1e377dbf44feb4d68d400f522550.webp)
## 另请参阅
* [移动销售5.0常见问题整理](https://vip.kingdee.com/article/451423972165611008)
* [移动销售5.0取数逻辑](https://vip.kingdee.com/article/578942392359975424)
* [移动销售5.0、移动采购2.0中如何调整购物车的首次进入单据头的展示风格](https://vip.kingdee.com/article/530421447525412096)
【二开方案】如何在移动销售V5下单时商品列表、客户列表实现实时搜索
## 二开背景移动销售5.0下单过程中需要选择商品加入购物车,需要选择客户,在商品列表和客户列表进行选择时如数据量庞大涉及搜索时,客户...
点击下载文档
本文2024-09-23 03:54:43发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-161892.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章