
# 【问题概述】:如何在移动采购2.0各列表页的卡片中增加相应自定义数据展示?
场景:目前移动采购2.0提供的列表页,如申请单列表、订单列表、供应商列表等,列表卡片中提供的字段显示相对固定,客户希望在展示自定义字段,如何实现呢?
# 【问题分析】
该需求需要在对应表单中进行二开设计,且需要写代码实现。
# 【解决方案】二开步骤
1. 确定当前需要操作的表单及默认插件
* 移动采购V2_申请单列表 (PUR_MobReqOrderListV2)
* Kingdee.K3.SCM.Mobile.Business.PlugIn.PUR.Version2.MobReqList, Kingdee.K3.SCM.Mobile.Business.PlugIn
* 移动采购V2_申请单商品列表 (PUR_MobReqOrderProductV2)
* Kingdee.K3.SCM.Mobile.Business.PlugIn.PUR.Version2.MobReqProduct, Kingdee.K3.SCM.Mobile.Business.PlugIn
* 移动采购V2_采购订单列表 (Pur_MobPurchaseOrderListV2)
* Kingdee.K3.SCM.Mobile.Business.PlugIn.PUR.Version2.MobPurchaseOrderList, Kingdee.K3.SCM.Mobile.Business.PlugIn
* 移动采购V2_订单商品列表 (PUR_MobOrderProductV2)
* Kingdee.K3.SCM.Mobile.Business.PlugIn.PUR.Version2.MobPurProduct, Kingdee.K3.SCM.Mobile.Business.PlugIn
* 移动采购V2_供应商列表 (Pur_MobPurchaseSupplierListV2)
* Kingdee.K3.SCM.Mobile.Business.PlugIn.PUR.Version2.MobPurchaseSupplierList, Kingdee.K3.SCM.Mobile.Business.PlugIn
* 移动采购V2_收料通知单列表 (PUR_MobReceiveOrderListV2)
* Kingdee.K3.SCM.Mobile.Business.PlugIn.PUR.Version2.MobPurReceiveOrderList, Kingdee.K3.SCM.Mobile.Business.PlugIn
2. 扩展对应表单,在表单中找到移动列表控件,在其中相应位置增加文本字段,记下字段标识


3. 编写插件类,引用Kingdee.K3.SCM.Mobile.Business.PlugIn.PUR.Version2(项目引用组件Kingdee.K3.SCM.Mobile.Business.PlugIn.dll),继承对应默认插件
4. 重写相应触发重新加载列表的事件处理方法,调用父类的对应
方法后,获取数据赋值对应字段
5. 注册并启用该插件,取消启用默认插件

以 供应商列表“**展示供应商的第一个联系人的备注字段**” 为例,参考代码如下:
```
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Kingdee.BOS.Util;
using Kingdee.BOS.Mobile.PlugIn.Args;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.ServiceHelper;
namespace ClassLibrary1
{
public class YourPlugin : Kingdee.K3.SCM.Mobile.Business.PlugIn.PUR.Version2.MobPurchaseSupplierList
{
// 数据包创建完毕后
public override void AfterCreateNewData(EventArgs e)
{
base.AfterCreateNewData(e);
FillOtherData();
}
// 上拉翻页
public override void OnEntityPageChange(PageChangeEventArgs e)
{
base.OnEntityPageChange(e);
FillOtherData();
}
// 下拉刷新
public override void OnEntityRefresh(EntityRefreshEventArgs e)
{
base.OnEntityRefresh(e);
FillOtherData();
}
// 页签 常用、全部、收藏 被点击
public override void LabelClick(LabelClickEventArgs e)
{
base.LabelClick(e);
if (e.Key.EqualsIgnoreCase("FLblCommon") || e.Key.EqualsIgnoreCase("FLblAll") || e.Key.EqualsIgnoreCase("FLblFavor"))
{
FillOtherData();
}
}
// 搜索按钮被点击
public override void ButtonClick(ButtonClickEventArgs e)
{
base.ButtonClick(e);
if (e.Key.EqualsIgnoreCase("FBtnSearch"))
{
FillOtherData();
}
}
// 额外字段赋值
public void FillOtherData()
{
// 获取当前移动列表数据包
var entryList = thi