2013-01-22 3 views
0

내 맞춤 대시 보드에서 데이터 목록을 표시하고 싶습니다. 사전 찾기를 사용하여 사용자 지정보기를 만들 때 "다음 x 일"필터를 사용하고 있습니다. 사용자 정의 필드에서 'X'를 동적으로 설정할 수 있습니까? 각 행마다 다른 X가있을 수 있습니다.고급 찾기에서 '다음 x 일 필터'에 'X'를 동적으로 설정하십시오.

SQL Reporting Services를 사용하여이 작업을 수행 할 수 있지만 일반 목록을 선호합니다. 방법이 있습니까, 아니면 보고서를 사용해야합니까?

감사합니다.

답변

0

실제로 해결 방법을 맞춤 설정하지 않으면이 작업을 수행 할 수 없습니다. (내 지식에). 하지만 플러그인을로드 할 때마다 조건 필터를 변경할 수 있습니다. 이렇게하려면 새 엔터티 및 숫자 필드를 만들 수 있습니다. 대시 보드가로드 될 때마다 해당 엔티티의 값을 대체하여보기의 조건을 변경할 수 있습니다. 아래 스 니펫은 플러그인에서 도움이됩니다.

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); 
        } 

       } 
      } 
     } 
    }