二开案例.列表插件.列表强制按整单排序
【应用场景】
列表的过滤方案设置的排序字段,有时候并不能精确的区别开不同的单据(例如:日期字段),此时列表查询返回的数据集,可能会因为数据库查询引擎执行计划的差异,导致返回来的数据,同一张单据的多行数据会被打乱。
如果要整单的数据放在一起显示,那就需要将单据内码强制作为排序字段。
【案例演示】
销售出库单列表强制按整单排序。
【实现步骤】
<1>编写列表插件,代码如下。
using Kingdee.BOS.Core.List.PlugIn;
using Kingdee.BOS.Core.List.PlugIn.Args;
using Kingdee.BOS.Util;
using System.ComponentModel;
namespace Jac.XkDemo.BOS.Business.PlugIn
{
/// <summary>
/// 【列表插件】列表强制按整单排序
/// </summary>
[Description("【列表插件】列表强制按整单排序"), HotUpdate]
public class ListQuerySortByBillListPlugIn : AbstractListPlugIn
{
public override void PrepareFilterParameter(FilterArgs e)
{
base.PrepareFilterParameter(e);
// 获取主键字段,强制主键字段参与排序
var pkFieldName = this.View.BillBusinessInfo.GetForm().PkFieldName;
if (string.IsNullOrWhiteSpace(e.SortString))
{
e.SortString = pkFieldName;
return;
}
if (!e.SortString.Contains(pkFieldName))
{
e.SortString = string.Format("{0},{1}", e.SortString, pkFieldName);
}
}
}
}
<2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。
<3>BOSIDE扩展销售出库单,注册列表插件,保存元数据,开发完毕。
此方案也可以使用Python插件,如下图所示:
---------------------------------------------------------------------------------------------------------
【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696
二开案例.列表插件.列表强制按整单排序
本文2024-09-23 04:08:09发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-163364.html