13.03.2008, 15:58 | #1 |
Участник
|
Как пощитать суму?
Доброе время суток.
Подскажите, пожалуйста как пощитать суму? Есть такая задача: в одном объекте Например, "Продукты", вводится цена за один продукт, например 100 руб. Затем создается еще один проукт и по нему тоже вводится цена за один продукт и так n-количество раз. Следущая задача: в другом объекте "Сума по продуктам" должна считаться сума по всем объектам "Продукты". Вот эту задачу я как раз и не знаю как реалезовать??? Т. е. Должно быть так: Sum(цена за один продукт) в объекте "Сума по продуктам"
__________________
Быть в курсе всего первым - значит быть Первым! |
|
14.03.2008, 07:56 | #2 |
CRM
|
Вы толком не описали задачу. Какова область применения, для чего это всё собственно, какие продукты учитывать: все или удовлетворяющие какому-то критерию?
По вашему вопросу ответ может быть следующий: X++: = 0;
= ; //получается с помощью RetrieveMultiple
foreach( in )
+= . ; |
|
14.03.2008, 11:01 | #3 |
Участник
|
Тоесть. Я хочу сделать так, как в в объекте заказ! Есть объект Заказ в нем есть общая сума по продуктам. Есть отдельный объект продукт в который вводится продукт, количество и его цена. После того как были добавлены продукты в заказ на главной форме сщитается сума по этим продуктам. По неким сообращениям объект заказ с продуктами не устраивает!
__________________
Быть в курсе всего первым - значит быть Первым! |
|
14.03.2008, 14:47 | #4 |
Учаснег
|
вариантов два:
Автоматический подсчет - пишите callout (об этих зверях много написано на форуме и SDK) По запросу пользователя(подобие кнопки на форме предложения "пересчитать") - пишите aspx страничку, выполняющую алгоритм. |
|
16.03.2008, 10:27 | #5 |
CRM
|
Согласен с IgorF
У вас долюна быть связка "Главный объект" (типа Заказ) - "Дочерний объект" (Продукты). Чтобы выбрать все продукты данного заказа пишешь Query (пример из SDK): X++: // Set up the CRM Service. CrmService service = new CrmService(); service.Credentials = System.Net.CredentialCache.DefaultCredentials; // Create the ColumnSet that indicates the fields to be retrieved. ColumnSet cols = new ColumnSet(); // Set the properties of the ColumnSet. cols.Attributes = new string [] {"название", "цена"}; // Create the ConditionExpression. ConditionExpression condition = new ConditionExpression(); // Set the condition for the retrieval to be when the city in the contact's address is Sammamish. condition.AttributeName = "заказId"; condition.Operator = ConditionOperator.Equal; condition.Values = new string [] {"id нужного заказа"}; // Create the FilterExpression. FilterExpression filter = new FilterExpression(); // Set the properties of the filter. filter.FilterOperator = LogicalOperator.And; filter.Conditions = new ConditionExpression[] {condition}; // Create the QueryExpression object. QueryExpression query = new QueryExpression(); // Set the properties of the QueryExpression object. query.EntityName = EntityName.contact.ToString(); query.ColumnSet = cols; query.Criteria = filter; // Retrieve the contacts. BusinessEntityCollection contacts = service.RetrieveMultiple(query); Найдя все товары данного заказа, проходишь их в цикле. А потом делаешь service.Update(заказ). Где-то так. |
|
16.03.2008, 14:49 | #6 |
Moderator
|
Лучше использовать базовый функционал. Чем вас не устраивают заказы?
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|