在我的自定义仪表板中,我想显示一个数据列表。当我使用 Advance Find 创建自定义视图时,我使用的是“next x days”过滤器。我可以从我的自定义字段中动态设置“X”吗?每行可以有不同的 X。
我可以使用 SQL Reporting Services 来做到这一点,但我更喜欢普通列表。有没有办法或者我必须使用报告?
谢谢你。
在我的自定义仪表板中,我想显示一个数据列表。当我使用 Advance Find 创建自定义视图时,我使用的是“next x days”过滤器。我可以从我的自定义字段中动态设置“X”吗?每行可以有不同的 X。
我可以使用 SQL Reporting Services 来做到这一点,但我更喜欢普通列表。有没有办法或者我必须使用报告?
谢谢你。
实际上,如果没有一些解决方法定制,看起来不可能做到这一点!(据我所知)。但是您可以在每次加载时使用插件更改条件过滤器。为此,您可以在其上创建一个新实体和一个数字字段。每次加载仪表板时,您都可以通过替换该实体的值来更改视图的条件。下面的代码片段可以帮助您使用插件:
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);
}
}
}
}
}