基础资料引用检查的使用

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

基础资料引用检查的使用

基础资料引用检查有2种功能:

1. 判断指定基础资料是否被其他单据(包括基础资料)引用。

2. 查询所有引用改基础资料的单据(包括基础资料)和内码。


功能1:参考物料元数据--删除操作--校验规则--检查当前基础资料是否被其他业务对象使用。

可以添加排除项,添加到排除项里的单据和字段不校验是否被引用。


功能2:在列表菜单中增加新的菜单,点击事件选择操作【基础资料引用检查】


可以再插件中直接调用以下函数

/// <summary>

///  检查某些基础资料被哪些单据引用,返回resultCount规定的结果数量;

///  出于性能考虑,如果单纯是判断是否被引用,请指定返回结果的个数,一般请填写1;

/// </summary>

/// <param name="ctx"></param>

/// <param name="baseDataFromId">基础资料唯一标识</param>

/// <param name="ids">需要检查的基础资料内码列表</param>

/// <param name="pkType">基础资料内码类型,可以通过form.GetPkFieldType()获得</param>

/// <param name="exceptItems">不需要检查的业务单据</param>

/// <param name="resultCount">返回结果条数</param>

/// <returns></returns>

public static List<BaseDataRefResult> CheckBaseDataRefInfo(Context ctx, string baseDataFromId,

    object[] ids, Type pkType, List<ObjectTypeRef> exceptItems = null, int resultCount = -1)


/// <summary>

/// 返回某些基础资料被哪些单据引用的详细结果。包括业务单据BillNo。

/// </summary>

/// <param name="ctx"></param>

/// <param name="baseDataFromId">基础资料唯一标识</param>

/// <param name="ids">需要检查的基础资料内码列表</param>

/// <param name="pkType">基础资料内码类型,可以通过form.GetPkFieldType()获得</param>

/// <param name="exceptItems">不需要检查的业务单据</param>

/// <param name="resultCount">返回结果条数</param>

/// <returns></returns>

public static List<BaseDataRefResult> GetBaseDataRefList(Context ctx, string baseDataFromId,

    object[] ids, Type pkType, List<ObjectTypeRef> exceptItems = null, int resultCount = -1)


//对于第五个参数exceptItems ,假设需检查物料是否被引用,单独调用时可以这样获取物料删除操作上配置的且无需检查的单据:

List<Kingdee.BOS.Core.Metadata.PreInsertData.DataType.ObjectTypeRef> exceptRefItem = null;

IMetaDataService service = Kingdee.BOS.App.ServiceHelper.GetService<IMetaDataService>();

FormMetadata formMetadata = (FormMetadata)service.Load(this.Context, "BD_MATERIAL");

var deleteOperate = (from p in formMetadata.BusinessInfo.GetForm().FormOperations

      where p.OperationId == Kingdee.BOS.Core.Metadata.FormElement.FormOperation.Operation_Delete 

      select p).ToArray();

if (deleteOperate.Length > 0)

{

    var refValidation = (from p in deleteOperate[0].Validations

                          where p is Kingdee.BOS.Core.Base.Validation.BaseDataRefValidator

                          select p).ToArray();

    if (refValidation.Length > 0)

     {

        Kingdee.BOS.Core.Base.Validation.BaseDataRefValidator baseDataRefValidator = refValidation[0] as Kingdee.BOS.Core.Base.Validation.BaseDataRefValidator;

       exceptRefItem = baseDataRefValidator.ExceptRefItem;

      }

}


基础资料引用检查的使用

基础资料引用检查有2种功能:1. 判断指定基础资料是否被其他单据(包括基础资料)引用。2. 查询所有引用改基础资料的单据(包括基础资料)和...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息