none
在一个opportunity关闭的时候获取所有investment总和 RRS feed

  • 问题

  • 大家好,
    opportunity和investment有1:N的关系,我想在用户选择close oppotunity的时候计算所有的investment的amount字段的总和,显示到close oppotunity的对话框中。
    请问应该如何实现呢。
    另外,我打开 sfa/opps/dlg_closeapp.aspx,发现这个就是close opportunity的窗体,我是否可以直接修改这个文件,添加一点c#的代码来实现我的上述需求呢?
    非常感谢各位。

    2010年1月24日 16:45

答案

  • 在plugin 下面 可以 访问mscrm提供的webservice的

    你通过当前的opportunityid去获取相应的investment列表就可以

    示例代码片断如下:
    CrmService service = new CrmService();
    service.Url = "http://<servername>:<port>/mscrmservices/2007/crmservice.asmx";
    service.CrmAuthenticationTokenValue = token;
    service.Credentials = System.Net.CredentialCache.DefaultCredentials;

    // Create the column set that indicates the fields to be retrieved.
    ColumnSet cols = new ColumnSet();

    // Set the properties of the column set.
    cols.Attributes = new string [] {"name", "accountid"};

    // Create the ConditionExpression.
    ConditionExpression condition = new ConditionExpression();

    // Set the condition for the retrieval to be when the city in the account's address is Sammamish.
    condition.AttributeName = "address1_city";
    condition.Operator = ConditionOperator.Like;
    condition.Values = new string [] {"Sammamish"};

    // 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.account.ToString();
    query.ColumnSet = cols;
    query.Criteria = filter;

    // Create the request object.
    RetrieveMultipleRequest retrieve = new RetrieveMultipleRequest();

    // Set the properties of the request object.
    retrieve.Query = query;
         
    // Execute the request.
    RetrieveMultipleResponse retrieved = (RetrieveMultipleResponse)service.Execute(retrieve); 


    Batistuta Cai-刀客 | 蔡敏生 | MS CRM MVP | Blog:http://caims.cnblogs.com
    2010年1月26日 6:58
    版主

全部回复

  • 急待各位高手答复。。。

    2010年1月25日 1:55
  • 不能直接修改源文件,你可以通过plugin 来加入 C#代码


    Batistuta Cai-刀客 | 蔡敏生 | MS CRM MVP | Blog:http://caims.cnblogs.com
    2010年1月25日 5:52
    版主
  • 多谢刀客的回复。
    但是应该如何实现呢,怎么取得investment的列表呢?

    2010年1月25日 7:12
  • 在plugin 下面 可以 访问mscrm提供的webservice的

    你通过当前的opportunityid去获取相应的investment列表就可以

    示例代码片断如下:
    CrmService service = new CrmService();
    service.Url = "http://<servername>:<port>/mscrmservices/2007/crmservice.asmx";
    service.CrmAuthenticationTokenValue = token;
    service.Credentials = System.Net.CredentialCache.DefaultCredentials;

    // Create the column set that indicates the fields to be retrieved.
    ColumnSet cols = new ColumnSet();

    // Set the properties of the column set.
    cols.Attributes = new string [] {"name", "accountid"};

    // Create the ConditionExpression.
    ConditionExpression condition = new ConditionExpression();

    // Set the condition for the retrieval to be when the city in the account's address is Sammamish.
    condition.AttributeName = "address1_city";
    condition.Operator = ConditionOperator.Like;
    condition.Values = new string [] {"Sammamish"};

    // 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.account.ToString();
    query.ColumnSet = cols;
    query.Criteria = filter;

    // Create the request object.
    RetrieveMultipleRequest retrieve = new RetrieveMultipleRequest();

    // Set the properties of the request object.
    retrieve.Query = query;
         
    // Execute the request.
    RetrieveMultipleResponse retrieved = (RetrieveMultipleResponse)service.Execute(retrieve); 


    Batistuta Cai-刀客 | 蔡敏生 | MS CRM MVP | Blog:http://caims.cnblogs.com
    2010年1月26日 6:58
    版主
  • 有关MSCRM二次开发你可以去下载sdk 最新版本已有部分是中文的了
    Batistuta Cai-刀客 | 蔡敏生 | MS CRM MVP | Blog:http://caims.cnblogs.com
    2010年1月26日 6:59
    版主
  • 有关MSCRM二次开发你可以去下载sdk 最新版本已有部分是中文的了
    Batistuta Cai-刀客 | 蔡敏生 | MS CRM MVP | Blog:http://caims.cnblogs.com
    2010年1月26日 6:59
    版主
  • 多谢版主的答复。。。
    同时万分感谢韩建兴老大的帮助,终于查出来第一个数据啦,感觉crm在向我招手了 ^^
    2010年1月26日 13:07