2012-05-14 139 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