Показать сообщение отдельно
Старый 04.04.2008, 11:42   #1  
Lithium is offline
Lithium
Участник
 
20 / 10 (1) +
Регистрация: 17.07.2007
Сорри, из VS код плохо копируется Вот так лучше:

X++:
Guid GUID = new Guid(p_guid);
            QueryExpression query = new QueryExpression();
            query.EntityName = EntityName.incident.ToString();
            ColumnSet cols = new ColumnSet();
                      
            cols.Attributes = new string[] { "ticketnumber", "title","createdon","statecode" 
};
            OrderExpression order = new OrderExpression();
            order.OrderType = OrderType.Descending;
            order.AttributeName = "createdon";
            query.ColumnSet = cols;
            query.Orders = new OrderExpression[] { order };
            query.Criteria = new FilterExpression();
            ConditionExpression exp = new ConditionExpression();
            exp.AttributeName = "customerid";
            exp.Operator = ConditionOperator.Equal;
            exp.Values = new object[] { GUID.ToString() };
            query.Criteria.Conditions = new ConditionExpression[] { exp };
            LinkEntity le = new LinkEntity();
            le.LinkFromEntityName = EntityName.incident.ToString();
            le.LinkFromAttributeName = "incidentid";
            le.LinkToEntityName = EntityName.incidentresolution.ToString();
            le.LinkToAttributeName = "incidentid";
            le.JoinOperator = JoinOperator.LeftOuter;
            query.LinkEntities = new LinkEntity[] { le };/**/

            BusinessEntityCollection returned = srv.RetrieveMultiple(query);
            if (returned.BusinessEntities.Length > 0)
            {
                Incident[] p = new Incident[returned.BusinessEntities.Length];
                int i = 0;
                foreach (BusinessEntity be in returned.BusinessEntities)
                {
                    incident inc = (incident)be;
                    p[i].Code = inc.ticketnumber;
                    p[i].Date = inc.createdon.date;
                    if (inc.title != null)
                        p[i].Title = inc.title;
                    else p[i].Title = "отсутствует";
                    if (inc.statecode.ToString() != null)
                        p[i].Status = inc.statecode.Value.ToString();
                    else p[i].Status = "не определен";
                    i++;
                }
                return p;
            }
            else
            {
                Incident ic;
                ic.Code = "";
                ic.Date = "";
                ic.Status = "";
                ic.Title = "нет обращений";
                return new Incident[] { ic };
            }