使用查询表达式(C#)检索CRM 2011中视图中的筛选条件

使用查询表达式(C#)检索CRM 2011中视图中的筛选条件,c#,dynamics-crm-2011,dynamics-crm-online,C#,Dynamics Crm 2011,Dynamics Crm Online,我正在开发一个类似于CRM 2011上的查找视图的windows窗体。 为此,我做了以下工作 1) 在datagirdview中显示(商机实体的)相关记录 2) 还有一个dropdownlist,它绑定到视图(View.Name),允许用户选择视图,我打算根据该视图更改datagrid视图上的过滤器 我被以下内容所困扰。我能够使用以下代码检索“Opportunity”实体的视图 ConditionExpression condition1 = new ConditionExpression()

我正在开发一个类似于CRM 2011上的查找视图的windows窗体。 为此,我做了以下工作 1) 在datagirdview中显示(商机实体的)相关记录 2) 还有一个dropdownlist,它绑定到视图(View.Name),允许用户选择视图,我打算根据该视图更改datagrid视图上的过滤器

我被以下内容所困扰。我能够使用以下代码检索“Opportunity”实体的视图

ConditionExpression condition1 = new ConditionExpression()
                    {
                        AttributeName = "querytype",
                        Operator = ConditionOperator.Equal,
                        Values = { 0 }
                    };
                    ConditionExpression condition2 = new ConditionExpression()
                    {
                        AttributeName = "returnedtypecode",
                        Operator = ConditionOperator.Equal,
                        Values = { Opportunity.EntityTypeCode }
                    };
                    FilterExpression filter = new FilterExpression();
                    filter.Conditions.Add(condition1);
                    filter.Conditions.Add(condition2);

                    QueryExpression queryToRetrieveViews = new QueryExpression
                    {
                        ColumnSet = new ColumnSet("savedqueryid", "name", "querytype", "isdefault", "returnedtypecode", "isquickfindquery"),
                        EntityName = SavedQuery.EntityLogicalName,
                        Criteria = filter
                    };
                    RetrieveMultipleRequest retrieveSavedViewsRequest = new RetrieveMultipleRequest { Query = queryToRetrieveViews };

                    RetrieveMultipleResponse retrieveSavedViewsResponse = (RetrieveMultipleResponse)crm.Execute(retrieveSavedViewsRequest);

                    DataCollection<Entity> savedViews = retrieveSavedViewsResponse.EntityCollection.Entities;

                    foreach (Entity ent in savedViews){...}
ConditionExpression condition1=newconditionexpression()
{
AttributeName=“querytype”,
运算符=条件运算符。相等,
值={0}
};
ConditionExpression condition2=新的ConditionExpression()
{
AttributeName=“returnedtypecode”,
运算符=条件运算符。相等,
值={Opportunity.EntityTypeCode}
};
FilterExpression filter=新的FilterExpression();
filter.Conditions.Add(条件1);
filter.Conditions.Add(条件2);
QueryExpression queryToRetrieveViews=新建QueryExpression
{
ColumnSet=新列集(“savedqueryid”、“name”、“querytype”、“isdefault”、“returnedtypecode”、“isquickfindquery”),
EntityName=SavedQuery.EntityLogicalName,
标准=过滤器
};
RetrieveMultipleRequestRetrieveSavedViewRequest=新的RetrieveMultipleRequest{Query=queryToRetrieveViews};
RetrieveMultipleResponse RetrieveSavedViewResponse=(RetrieveMultipleResponse)crm.Execute(RetrieveSavedViewRequest);
DataCollection savedViews=RetrieveSavedViewResponse.EntityCollection.Entities;
foreach(SavedView中的实体ent){…}
我快速查看了一下,但找不到具有CRM中存在的筛选条件的属性。我的意思是,我想看的是这样的话,例如,对于开放机会,过滤器将是“statecode=0”。
是否可以获取关联的筛选器-抱歉,关联过滤器我指的是视图的过滤器

您可以根据您想要的任何属性进行过滤,因此我不确定您所指的关联过滤器是什么意思。如果你指的是实际视图的过滤器,你将找不到它。视图存储在XML中,因此您必须检索保存视图的FetchXML并解析XML以查看其筛选器。

很抱歉,我不够清楚,是的,我指的是保存视图的筛选器。谢谢!!标记为答案。很抱歉刚刚这么做了。我认为一切都一样。:)我的无知:D