none
IFrame 中显示activities的问题 RRS feed

  • 问题

  • function GetFrameSource(tabSet)
    {
    if (crmForm.ObjectId != null)
    {
    var oId = crmForm.ObjectId;
    var oType = crmForm.ObjectTypeCode;
    var security = crmFormSubmit.crmFormSubmitSecurity.value;
    return "areas.aspx?oId=" + oId + "&oType=" + oType + "&security=" + security + "&tabSet=" + tabSet;
    }
    else
    {
    return "about:blank";
    }
    }
    crmForm.all.IFRAME_HistoryFrame.src = GetFrameSource("areaActivityHistory");

    我测试了一个这样的代码,是显示activities history的。因为history里面是显示之前历史的activity,而activities里面是显示未来将来activity。
    但是我现在想把这段代码改成显示activities显示未来的。

    请朋友看一下这段代码,怎么修改。
    2009年5月7日 12:18

答案

  • Hi,

    我最近有2篇关于IFrame的文章,可以参考:
    CRM 4.0 IFrame: Show Advanced Find Result View
    CRM 4.0 IFrame: Show Entity's Associated View


    就你的问题回答:

    navActivities 是 Activity
    navActivityHistory 是 History

    用这段代码:

    var navId = "navActivities";
    
    if(document.getElementById(navId) != null)
    {
      var tmp = document.getElementById(navId).onclick.toString();
      tmp = tmp.substring(tmp.indexOf("'")+1, tmp.indexOf(";"));
      var loadArea = tmp.substring(0, tmp.indexOf("'"));
      var roleOrd =  (tmp.indexOf("roleOrd") == -1) ? -1 : tmp.substring( tmp.indexOf("roleOrd"), tmp.lastIndexOf("'")).replace("\\x3d", "=");
      crmForm.all.IFRAME_view.src = (roleOrd == -1) ? GetFrameSrc(loadArea) : GetFrameSrc(loadArea) + "&" + roleOrd;
    }
    
    function GetFrameSrc(tabSet)
    {
      if (crmForm.ObjectId != null)
      {
        var id = crmForm.ObjectId;
        var type = crmForm.ObjectTypeCode;
        var security = crmFormSubmit.crmFormSubmitSecurity.value;
        var pathname = document.location.pathname;
        var patharea = pathname.substring(0, pathname.indexOf("edit.aspx")) + "areas.aspx?";
    
        return (patharea + "oId=" + id + "&oType=" + type + "&security=" + security + "&tabSet=" + tabSet);
      }
      else
      {
        return "about:blank";
      }
    }

    Cheers,
    Jim
    Jim Wang - MVP Dynamics CRM - http://jianwang.blogspot.com , http://mscrm.cn
    2009年5月7日 15:58
    版主

全部回复

  • Hi,

    我最近有2篇关于IFrame的文章,可以参考:
    CRM 4.0 IFrame: Show Advanced Find Result View
    CRM 4.0 IFrame: Show Entity's Associated View


    就你的问题回答:

    navActivities 是 Activity
    navActivityHistory 是 History

    用这段代码:

    var navId = "navActivities";
    
    if(document.getElementById(navId) != null)
    {
      var tmp = document.getElementById(navId).onclick.toString();
      tmp = tmp.substring(tmp.indexOf("'")+1, tmp.indexOf(";"));
      var loadArea = tmp.substring(0, tmp.indexOf("'"));
      var roleOrd =  (tmp.indexOf("roleOrd") == -1) ? -1 : tmp.substring( tmp.indexOf("roleOrd"), tmp.lastIndexOf("'")).replace("\\x3d", "=");
      crmForm.all.IFRAME_view.src = (roleOrd == -1) ? GetFrameSrc(loadArea) : GetFrameSrc(loadArea) + "&" + roleOrd;
    }
    
    function GetFrameSrc(tabSet)
    {
      if (crmForm.ObjectId != null)
      {
        var id = crmForm.ObjectId;
        var type = crmForm.ObjectTypeCode;
        var security = crmFormSubmit.crmFormSubmitSecurity.value;
        var pathname = document.location.pathname;
        var patharea = pathname.substring(0, pathname.indexOf("edit.aspx")) + "areas.aspx?";
    
        return (patharea + "oId=" + id + "&oType=" + type + "&security=" + security + "&tabSet=" + tabSet);
      }
      else
      {
        return "about:blank";
      }
    }

    Cheers,
    Jim
    Jim Wang - MVP Dynamics CRM - http://jianwang.blogspot.com , http://mscrm.cn
    2009年5月7日 15:58
    版主
  • Jim Wang, 您好

    您的这段代码可以显示,解决了我的问题。不过我想知道为什么显示Activities和ActivityHistory的代码区别这么大?我原以为仅仅是一句代码的区别。
    请问一下您有没有关于这种在IFrame里调用其他模块显示的文章。代码里面的一些固有参数在哪里能找到?我希望能学到方法,以后类似的问题我就可以自己尝试编写代码了。
    2009年5月11日 8:21
  • 我给出的这段代码适应于1:N和N:N的关系,包装成函数,容易调用。
    这些URL的参数可以通过Fiddler来得到。

    Cheers,
    Jim

    Jim Wang - MVP Dynamics CRM - http://jianwang.blogspot.com , http://mscrm.cn
    2009年5月12日 9:26
    版主