2013-01-22 27 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); 
        } 

       } 
      } 
     } 
    }