실제로 해결 방법을 맞춤 설정하지 않으면이 작업을 수행 할 수 없습니다. (내 지식에). 하지만 플러그인을로드 할 때마다 조건 필터를 변경할 수 있습니다. 이렇게하려면 새 엔터티 및 숫자 필드를 만들 수 있습니다. 대시 보드가로드 될 때마다 해당 엔티티의 값을 대체하여보기의 조건을 변경할 수 있습니다. 아래 스 니펫은 플러그인에서 도움이됩니다.
public void Execute(IServiceProvider serviceProvider)
{
// Obtain the execution context from the service provider.
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
if (context.Mode == 0 && context.Stage == 20 && context.MessageName.Equals("RetrieveMultiple"))
{
if (context.InputParameters.Contains("Query"))
{
if (context.InputParameters["Query"] is QueryExpression)
{
QueryExpression objQueryExpression = (QueryExpression)context.InputParameters["Query"];
if (objQueryExpression.EntityName == "account")
{
IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
ConditionExpression privateFlagCondition;
privateFlagCondition = new ConditionExpression()
{
AttributeName = "statustype",
Operator = ConditionOperator.Equal,
Values = { "1" }
};
FilterExpression newFilter = new FilterExpression()
{
FilterOperator = LogicalOperator.Or,
Conditions = { privateFlagCondition }
};
objQueryExpression.Criteria.AddFilter(newFilter);
}
}
}
}
}