ConditionExpression condition2 = new ConditionExpression();
condition2.AttributeName = "accountcategorycode";
condition2.Operator = ConditionOperator.Equal;
condition2.Values.Add(0);
ConditionExpression condition3 = new ConditionExpression();
condition3.AttributeName = "name";
condition3.Operator = ConditionOperator.Like;
condition3.Values.Add("%" + txtKeyWord.Text.Trim() + "%");
ConditionExpression condition6 = new ConditionExpression();
condition6.AttributeName = "parentaccountid";
condition6.Operator = ConditionOperator.Null;
FilterExpression filter1 = new FilterExpression();
filter1.Conditions.Add(condition2);
if (txtKeyWord.Text.Trim().Length > 0)
{
filter1.Conditions.Add(condition3);
}
if (cbxaccount.Checked == true)
{
filter1.Conditions.Add(condition6);
}
FilterExpression filter2 = new FilterExpression(LogicalOperator.Or);
ConditionExpression condition4 = new ConditionExpression();
condition4.AttributeName = "crm_is_group";
condition4.Operator = ConditionOperator.Null;
ConditionExpression condition5 = new ConditionExpression();
condition5.AttributeName = "crm_is_group";
condition5.Operator = ConditionOperator.Equal;
condition5.Values.Add(100000001);
filter2.Conditions.Add(condition4);
filter2.Conditions.Add(condition5);
QueryExpression query = new QueryExpression("account");
query.ColumnSet.AddColumns("accountid", "name", "crm_cust_state", "crm_cust_certtype", "crm_cust_certno", "telephone1", "fax", "telephone3", "emailaddress1", "fax", "parentaccountid");
query.Criteria.AddFilter(filter1);
query.Criteria.AddFilter(filter2);
LinkEntity linkEntity = new LinkEntity("account", "crm_tradeaccount", "accountid", "crm_account", JoinOperator.Inner);
ConditionExpression conLink = new ConditionExpression();
conLink.AttributeName = "crm_distributor_netcode";
conLink.Operator=ConditionOperator.Equal;
conLink.Values.Add(_distributor_netcode);
linkEntity.LinkCriteria.AddCondition(conLink);
query.LinkEntities.Add(linkEntity);
query.Distinct = true;
query.AddOrder("name", OrderType.Ascending);
query.PageInfo = new PagingInfo();
query.PageInfo.Count = GridView1.PageSize;
query.PageInfo.PageNumber = (GridView1.PageIndex + 1);
query.PageInfo.PagingCookie = null;
query.PageInfo.ReturnTotalRecordCount = true;
Method method = new Method();//OrganizationServiceProxy或者IOrganizationService类型对象
EntityCollection entitys = method.RetrieveMultiple(query);