Dynamics CRM 2011编程系列(37):调用表格的72般绝技

Dynamics CRM 2011编程系列(37):调用报表的72般绝技

    在之前的博文中已经介绍如何用Microsoft Reporting Service制作报表,以及如何将制作好的报表发布到Dynamics CRM 2011 系统中。那么本文就来聊聊怎样快捷的调用我们制作好的报表吧。

    正常情况下我们在Dynamics CRM 2011系统中浏览报表的步骤如下:

1.进入Dynamics CRM 2011系统

2.选择栏目“工作区”-->“报表”

3.找到我们需要浏览的报表

4.录入参数,并提交

5.显示结果

 

   很多时候我们希望能快捷的浏览某个报表,比如点击个按钮就能调用报表并显示对应的结果。假如要完成这个需求,我们必须简化正常情况下浏览报表的前4个步骤。这样看来我们将要实现的程序必须具备如下功能:

1.知道用户当前浏览什么报表

2.能模拟用户输入和提交操作

 

我们看个小例子吧:

涉及的实体

市场活动

涉及的报表

CampaignDetail(需了解该报表的详细情况,请参阅博文《Dynamics CRM 2011编程系列(34):报表的制作(一)》 )

 

操作步骤

Dynamics CRM 2011编程系列(37):调用表格的72般绝技

图1

Dynamics CRM 2011编程系列(37):调用表格的72般绝技

图2

Dynamics CRM 2011编程系列(37):调用表格的72般绝技

图3

Dynamics CRM 2011编程系列(37):调用表格的72般绝技

图4

Dynamics CRM 2011编程系列(37):调用表格的72般绝技

图5

Dynamics CRM 2011编程系列(37):调用表格的72般绝技

图6

Dynamics CRM 2011编程系列(37):调用表格的72般绝技

图7

Dynamics CRM 2011编程系列(37):调用表格的72般绝技

图8

Dynamics CRM 2011编程系列(37):调用表格的72般绝技

图9

Dynamics CRM 2011编程系列(37):调用表格的72般绝技

图10

Dynamics CRM 2011编程系列(37):调用表格的72般绝技

图11

Dynamics CRM 2011编程系列(37):调用表格的72般绝技

图12

 

使用到的代码

function form_onload_1()
{
    var navigate=document.getElementById("tab1Tab");
    navigate.attachEvent("onclick",loadCampaignDetailReport);
}

function loadCampaignDetailReport()
{
    var campaignId=Xrm.Page.data.entity.getId();
    var reportPanel=Xrm.Page.getControl("IFRAME_CampaignDetail").getObject().contentWindow.document.getElementById("resultFrame").contentWindow;
    var campaignIdInputDom=reportPanel.document.getElementById("reportViewer_ctl04_ctl04_txtValue");
    var submitButton=reportPanel.document.getElementById("reportViewer_ctl04_ctl00");
    campaignIdInputDom.value=campaignId;
    submitButton.click();


 

 

小结

用这种方法加载报表不过瘾,下篇博文将分享一个工具:该工具将彻底解决报表的加载问题。

 

1楼orapple20113天前 21:38
沙发
Re: ghostbear3天前 21:39
回复orapple2011n好快
Re: orapple20113天前 22:00
回复ghostbearn什么时候开始写关于portal的文章啊,等候中……
Re: ghostbear前天 10:42
回复orapple2011n快啦 :D