2012-05-14 28 views

Trả lời

8

Để chạy báo cáo từ nút ruy băng, bạn cần tạo tệp js có chức năng bạn sẽ gọi từ nút của mình.

Bạn cần 4 điều:

  1. rdlName - tên tập tin rdl.
  2. reportGuid GUID của báo cáo.
  3. entityGuid = Thực thể GUID mà bạn chạy báo cáo.
  4. entityType = Entity Object Type Code.

Đây là ví dụ.

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() là wrapper xung quanh window.open() MS Dynamics CRM sử dụng nó chính nó, do đó, làm I.

Để thêm nó vào một nút ruy băng bạn cần phải làm như thế nào trong bài này How to start a Dialog from Application Ribbon (CRM 2011) ngoại trừ bạn cần phải gọi báo cáo thay vì một hộp thoại.

+0

Cảm ơn bạn Grigory! Đây là một đoạn rất hữu ích và tôi đã thực sự tự hỏi làm thế nào để in trên nhấp chuột trong js! Không có vấn đề gì đối với các nút, tôi đã thêm một vài và tạo các hàm js cho chúng. – MademoiselleLenore

+0

Chỉ cần cẩn thận với việc sử dụng openStdDlg ... về mặt kỹ thuật không được hỗ trợ để sử dụng chức năng đó mà tôi tin tưởng. – GotDibbs

1

Sau tên RDL, Hướng dẫn phải là RecordGuid chứ không phải EntityGuid

+0

Cảm ơn sự quan tâm của bạn. – Grigory

+1

Điều này rất hữu ích nhưng tôi đã nhầm lẫn về việc sử dụng entityType 4214. Theo Msoft là một cuộc hẹn dịch vụ. OP hỏi về các báo cáo ... Tôi biết đoạn trích của bạn chỉ là một mẫu. Nhưng tôi không thể tìm thấy một thực thể cho các báo cáo ... điều đó có nghĩa là nó có thể bị loại bỏ? – GPGVM

Các vấn đề liên quan