如何在Web资源中检索注释并使用弹出窗口显示它 - crm 2011

时间:2012-10-01 07:06:14

标签: c# c#-4.0 dynamics-crm dynamics-crm-2011

如何使用html web资源在弹出窗口中显示实体中存在的注释。我的要求是在弹出窗口中显示实体中存在的注释,在弹出窗口中,用户应该能够删除,上传注释并将其转换为pdf(如果需要)。你能否提出一个最好的方法来实现这个目标。

function retann() {
//debugger;

var serverUrl = Xrm.Page.context.getServerUrl();

var GUIDvalue = Xrm.Page.data.entity.getId();

// Creating the Odata Endpoint
var oDataPath = "http://url/organization/XRMServices/2011/OrganizationData.svc/";
var retrieveReq = new XMLHttpRequest();
var Odata = oDataPath + "/AnnotationSet?$select=DocumentBody,FileName,MimeType,ObjectId&$filter=ObjectId/Id eq guid'" + GUIDvalue + "'";
retrieveReq.open("GET", Odata, false);
retrieveReq.setRequestHeader("Accept", "application/json");
retrieveReq.setRequestHeader("Content-Type", "application/json; charset=utf-8");
retrieveReq.onreadystatechange = function () { retrieveReqCallBack(this); };
retrieveReq.send(); 
}


function retrieveReqCallBack(retrieveReq) {
if (retrieveReq.readyState == 4 /* complete */) {

//debugger;

    var retrieved = this.parent.JSON.parse(retrieveReq.responseText).d;

    var message = "";
    var fun_var =
    "<script type=text/javascript>" +
    "function result_value()" +
    "{" +
    "var rad_val;" +
    "for (var i=0; i < document.orderform.test.length; ++i){if (document.orderform.test[i].checked){rad_val = document.orderform.test[i].value;}}" +
    "if(rad_val==null || rad_val=='')" +
    "{" +
    "window.top.opener.Xrm.Page.data.entity.attributes.get('new_radiovalue').setValue('0');" +
     "}" +
    "else" +
    "{" +
    "window.top.opener.Xrm.Page.data.entity.attributes.get('new_radiovalue').setValue(rad_val);" +
    "}" +
     " window.top.opener.Xrm.Page.data.entity.attributes.get('new_fireplugin').setValue(1);" +
     "window.top.opener.Xrm.Page.data.entity.save();" +
    "this.window.close();" +
    "}" +
    "function result_value1()" +
    "{" +
    "var rad_val1;" +
    "for (var i=0; i < document.orderform.test.length; ++i){if (document.orderform.test[i].checked){rad_val1 = document.orderform.test[i].value;}}" +
    "if(rad_val1==null || rad_val1=='')" +
    "{" +
    "window.top.opener.Xrm.Page.data.entity.attributes.get('new_radiovalue').setValue('0');" +
     "}" +
    "else" +
    "{" +
    "window.top.opener.Xrm.Page.data.entity.attributes.get('new_radiovalue').setValue(rad_val1);" +
    "}" +
     " window.top.opener.Xrm.Page.data.entity.attributes.get('new_delete').setValue(1);" +
     "window.top.opener.Xrm.Page.data.entity.save();" +
    "this.window.close();" +
    "}" +
    "</script>";

    var n = retrieved.results.length;
    for (var i = 0; i < retrieved.results.length; i++) {
        message += " <input type='radio' name='test' value=' " + i + "' />" + retrieved.results[i].FileName + "<br />";
    }
    myWindow = window.open('', '', 'width=500,height=150,left=250,top=250,scrollbars=yes,resizable=yes,directories=yes');
    myWindow.document.write(fun_var + "<body bgcolor=GhostWhite style='font-family:verdana;font-size:11px;'><form name='orderform' style='font-family:verdana;font-size:11px;'>" + message + "</br><center ><input type='button' onclick='result_value()' style='font-family:verdana;font-size:11px;' value='Convert To PDF'/></center>" + "</form>");
    myWindow.focus();

}
}


function SetField() {
var AddressType = Xrm.Page.data.entity.attributes.get("new_radiovalue");
AddressType.setValue("");
}


function save_form() {

// var MainPhone = Xrm.Page.data.entity.attributes.get("new_name").getValue(); 
//Xrm.Page.data.entity.attributes.get("new_name").setValue(MainPhone+"."); 
Xrm.Page.data.entity.save();

}

retrieveReqCallBack(this)函数显示带有annoatation的弹出窗口。使用上面的代码我可以将doc转换为pdf。因为我想添加多个功能,如上传,删除和转换为pdf。如果存在注释,则弹出窗口应具有上载选项,如果存在注释,则必须显示删除并转换为pdf按钮。

1 个答案:

答案 0 :(得分:0)

我发现这是我问题的解决方案, 您需要使用javascript创建自定义Web资源(html)以将数据从子网格中拉出,解析行,通过REST或SOAP查询crm数据以查看是否存在注释,然后放置图标“回形针”允许用户上传该记录的附件。