0

如何使用 html Web 资源在弹出窗口中显示实体中存在的注释。我的要求是在弹出窗口中显示实体中存在的注释,并且在弹出窗口中用户应该能够删除、上传注释并将注释转换为 pdf(如果他愿意)。您能否建议在 crm 2011 中实现此目标的最佳方法。

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) 函数显示带有注释的弹出窗口。使用上面的代码,我可以将 doc 转换为 pdf。因为我想添加多种功能,例如上传、删除和转换为 pdf。如果存在注释,则弹出窗口应该有上传选项,如果存在注释,则它必须显示删除并转换为 pdf 按钮。

4

1 回答 1

0

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

于 2012-10-02T11:14:55.290 回答