Microsoft Dynamics CRM 4.0 里account实体里面的左侧导航栏按钮在isv里是不能写javascript函数所以如果要连接需要传递参数的报表就有问题。
我想一个办法在account里的onload里面写一个段代码就能改变这种情况。
1.在account里的onload里写入如下代码。
var CRM_FORM_TYPE_CREATE = 1; var CRM_FORM_TYPE_UPDATE = 2; var navId="navTransactionsItem" if(crmForm.FormType ==CRM_FORM_TYPE_CREATE) { //debugger; displayLeftNavItem('客户交易信息', false); } else if(crmForm.FormType == CRM_FORM_TYPE_UPDATE ) { if(document.getElementById(navId) != null) { var navElement = document.getElementById(navId); if(navElement!=null ) { var accountcode = crmForm.all.accountnumber.DataValue; //debugger; if(accountcode!=null) { var url= 'https://crmtest.msfunds.com.cn/ReportServer/Pages/ReportViewer.aspx?%2fMSHF-DEV_MSCRM%2f%e5%ae%a2%e6%88%b7%e4%ba%a4%e6%98%93%e6%b5%81%e6%b0%b4&rs:Command=Render&CUSTID='+accountcode; navElement.onclick = function LoadAreaOverride() { openIsvWin(url, false, -1, '') } } else { setLeftNavItemState('客户交易信息', true); } } } }
注意:openIsvWin 这个javascript函数是CRM 4.0 特有全局函数,任何地方都可用,就是它让报表再点击左侧栏按钮时加载报表,setLeftNavItemState displayLeftNavItem 这两个函数是我自己定义的用来显示隐藏和启用禁用左侧栏按钮。
实现效果如图: