接到客户与伙伴反馈,批量操作时,要求个性化提示信息,目前平台一般给出提示如“单据编号XX操作XX成功or失败”
插件实现个性化提示方案:
首先在服务端插件OnPreparePropertys事件中加载需要显示的字段的key,否则操作对象不会加载这两个字段的值,并且在后续使用中,会出现中断,切记!
其次在客户端插件AfterDoOperation事件中处理提示信息
其中,客户端插件事件参数定义如下:
///
/// 表单操作执行后事件参数
///
public class AfterDoOperationEventArgs : EventArgs
{
///
/// 表单操作
///
public FormOperation Operation { get; set; }
///
/// 操作结果
///
public IOperationResult OperationResult { get; set; }
///
/// 构造函数
///
///
public AfterDoOperationEventArgs(FormOperation operation)
{
this.Operation = operation;
this.ExecuteResult = true;
}
///
/// 传入操作执行结果
///
///
///
public AfterDoOperationEventArgs(FormOperation operation,IOperationResult operationResult)
{
this.Operation = operation;
this.OperationResult = operationResult;
this.ExecuteResult = true;
}
///
/// 操作执行结果;默认成功(true)
///
public bool ExecuteResult { get; set; }
}
IOperationResult接口定义如下:
public interface IOperationResult : IInteractionResult
{
///
/// 是否成功
///
bool IsSuccess { get; set; }
///
/// 是否需要显示消息结果
///
bool IsShowMessage { get; set; }
///
/// 自定义消息处理窗口标识
///
///
/// 本结果对象会放在父项缓存区,其缓存键标识为:BOSConst.CST_KEY_OperationResultKey
///
string CustomMessageFormId { get; set; }
///
/// 自定义消息处理窗口其它参数控制
///
DynamicFormShowParameter CustomMessageFormParameter { get; }
///
/// 自定义消息模型,配合CustomMessageFormId=BOS_K3Displayer使用的
///
K3DisplayerModel CustomMessageModel { get; set; }
///
/// 校验失败结果集合,包括警告
///
List
///
/// 校验成功后,操作结果集合
///
OperateResultCollection OperateResult { get; set; }
///
/// 获得警告信息集合
///
///
List
///
/// 获得错误信息集合
///
///
List
///
/// 返回当前操作涉及的所有实体,被插件标记失败的实体将会自动从此集合中删除。
///
IEnumerable
IEnumerable
///
/// 函数返回值
///
object FuncResult { get; set; }
}
属性OperateResult是OperateResult类集合,具有Message可写属性,此属性记录操作提示信息
插件示例代码:
public overload void AfterDoOperation(AfterDoOperationEventArgs arg)
{
IOperationResult opResult = arg.OperationResult;
IEnumerable
foreach(OperateResult resultItem in opResult.OperateResult)
{
DynamicObject dy = dys.Where(o=>o["Id"] == resultItem.PKvalue).FirstOrDefault();
if(dy != null)
{
//修改提示信息
//如严谨处理,需要使用LoadKDString,不使用也暂时无妨
resultItem.Message = "凭证字"+dy["凭证字key"].ToStrint()+"—"+"凭证号"+dy["凭证号key"].ToStrint()+"的凭证删除";
}
}
}
至此,将原凭证删除操作提示“序号XX凭证删除成功”替换为“凭证字XX—凭证号XX的凭证删除成功”
推荐阅读