2012-05-14 41 views

回答

8

要从功能区按钮运行报告,您需要创建一个带有从您的按钮调用的函数的js文件。

您需要4两件事:

  1. rdlName - RDL文件名。
  2. reportGuid报告的GUID。
  3. entityGuid =您运行报表的实体GUID。
  4. entityType =实体对象类型代码。

这里是例子。

function printOutOnClick() { 
    // This function generates a Print out 
    var rdlName = "SomeReport.rdl"; 
    var reportGuid = "9A984A27-34E5-E011-B68F-005056AC478A"; 
    var entityGuid = Xrm.Page.data.entity.getId();//Here I am getting Entity GUID it from it's form 
    var entityType = "4214"; 
    var link = serverUrl + "/" + organizationName + "/crmreports/viewer/viewer.aspx?action=run&context=records&helpID=" + rdlName + "&id={" + reportGuid + "}&records=" + entityGuid + "&recordstype=" + entityType; 
    openStdDlg(link, null, 800, 600, true, false, null); 
} 

openStdDlg()是围绕window.open包装()MS Dynamics CRM中使用它自己,所以做一

将它添加到你需要在这个岗位How to start a Dialog from Application Ribbon (CRM 2011)做这样一个功能区按钮除了你需要调用报告而不是对话框。

+0

谢谢Grigory!这是一个非常有用的片段,我真的想知道如何在js上点击打印!按钮没问题,我已经添加了一些并为它们创建了js函数。 – MademoiselleLenore

+0

只要小心使用openStdDlg ...技术上说,我不相信这个功能是可以使用的。 – GotDibbs

1

在RDL名称后,Guid应该是RecordGuid而非EntityGuid

+0

感谢您的关注。 – Grigory

+1

这是非常有用的,但我对使用entityType 4214感到困惑。根据Msoft这是一个服务约会。 OP询问有关报道......我知道你的片段只是一个样本。但是我无法找到报告的实体类型......是否意味着它可以被删除? – GPGVM