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 这两个函数是我自己定义的用来显示隐藏和启用禁用左侧栏按钮。
实现效果如图: