为Dynamics CRM的Office附件注释定制个无需下载即可在线查看的功能
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingLuoYong.CRMOperation; {/// <summary>///Summary description for GetAnnotationDocument/// </summary>public classGetAnnotationDocument : IHttpHandler{public voidProcessRequest(HttpContext context){try{string AnnotationId = context.Request.QueryString["AnnotationId"];CRMAnnotationMgr annotationMgr= newCRMAnnotationMgr();if (!string.IsNullOrEmpty(AnnotationId)){var annotation = annotationMgr.GetAnnatationAttachementBody(newGuid(AnnotationId));context.Response.ContentType=annotation.MimeType;byte[] mybyte =Convert.FromBase64String(annotation.DocumentBody);context.Response.BinaryWrite(mybyte);context.Response.Flush();context.Response.End();}else{throw new Exception("AnnotationId没有提供!");}}catch(Exception ex){context.Response.ContentType= "text/plain";context.Response.Write("Error." +ex.Message);}}public boolIsReusable{get{return false;}}} }
<!DOCTYPE HTML> <html><head><title>微软MVP罗勇测试注释</title><styletype="text/css">table{border:1px solid #666666;border-collapse:collapse;}table thead th{padding:8px;border:1px solid #666666;background-color:#dedede;}table tbody td{border:1px solid #666666;padding:8px;background-color:#ffffff;}table thead tr th{font-family:Microsoft YaHei,SimSun,Tahoma,Arial;font-size:12px;font-weight:bold;color:#000000;}table tbody tr td{color:#444444;font-family:Microsoft YaHei,SimSun,Tahoma,Arial;font-size:12px;}.web_dialog_overlay{position:fixed;top:0;right:0;bottom:0;left:0;height:100%;width:100%;margin:0;padding:0;background:#000000;opacity:.15;filter:alpha(opacity=15);-moz-opacity:.15;z-index:101;display:none;}.web_dialog{display:none;position:fixed;width:400px;height:450px;top:50%;left:50%;margin-left:-190px;margin-top:-100px;background-color:#ffffff;border:1px solid #336699;padding:0px;z-index:102;font-family:Verdana;font-size:10pt;}.web_dialog_title{border-bottom:solid 2px #336699;background-color:#336699;padding:4px;color:White;font-weight:bold;height:20px;width:100%;}.align_right{text-align:right;}</style><scripttype="text/javascript"src="../../ClientGlobalContext.js.aspx"></script><scripttype="text/javascript"src="../common/jquery.min.js"></script><scripttype="text/javascript"src="../common/XrmServiceToolkit.min.js"></script><scripttype="text/javascript">Date.prototype.format= function(fmt) {varo={"M+":this.getMonth()+ 1,//月份"d+":this.getDate(),//日"h+":this.getHours(),//小时"m+":this.getMinutes(),//分"s+":this.getSeconds()//秒 };if(/(y+)/.test(fmt))fmt=fmt.replace(RegExp.$1, (this.getFullYear()+ "").substr(4 -RegExp.$1.length));for(varkino)if(newRegExp("(" +k+ ")").test(fmt))fmt=fmt.replace(RegExp.$1, (RegExp.$1.length== 1)?(o[k]) : (("00" +o[k]).substr(("" +o[k]).length)));returnfmt;}functionShowDialog(modal) {$("#overlay").show();$("#dialog").fadeIn(300);if(modal) {$("#overlay").unbind("click");}else{$("#overlay").click(function(e) {HideDialog();});}}functionHideDialog() {$("#overlay").hide();$("#dialog").fadeOut(300);}functionShowAttachmentByNoteId(NoteId, MimeType) {if(MimeType.indexOf("image")> -1) {XrmServiceToolkit.Rest.Retrieve(NoteId,"AnnotationSet","DocumentBody",null,function(result) {varDocumentBody=result.DocumentBody;varimg=$("<img />");img.attr("alt","Embedded Image");img.attr("src","data:" +MimeType+ ";base64," +DocumentBody);img.appendTo($("#dialog"));ShowDialog(true);},function(error) {alert(error.message);},true);}else if(MimeType.indexOf("officedocument.presentationml.presentation")> -1 ||MimeType.indexOf("officedocument.spreadsheetml.sheet")> -1 ||MimeType.indexOf("officedocument.wordprocessingml.document")> -1) {//office文档 window.open("https://view.officeapps.live.com/op/view.aspx?src=" +encodeURIComponent("http://mvpluoyong.azurewebsites.net/GetAnnotationDocument.ashx?AnnotationId=" +NoteId));}else if(MimeType.indexOf("pdf")> -1) {window.open("http://mvpluoyong.azurewebsites.net/GetAnnotationDocument.ashx?AnnotationId=" +encodeURIComponent(NoteId));}else{alert("暂时不支持MimeType=" +MimeType+ "类型附件的预览,敬请期待后续博文!");}}$(function() {varclientUrl=GetGlobalContext().getClientUrl();//var id = window.parent.Xrm.Page.data.entity.getId(); //这种方法可以获取表单中的很多信息,包括idvarmatch=RegExp('[?&]id=([^&]*)').exec(window.location.search);//这里是外接通过url传递id的值过来varid=match&&decodeURIComponent(match[1].replace(/\+/g,' '));match=RegExp('[?&]typename=([^&]*)').exec(window.location.search);vartypename=match&&decodeURIComponent(match[1].replace(/\+/g,' '));XrmServiceToolkit.Rest.RetrieveMultiple("AnnotationSet","?$select=AnnotationId,Subject,NoteText,MimeType,FileName,FileSize,IsDocument,CreatedOn,CreatedBy,ModifiedOn,ModifiedBy&$filter=ObjectTypeCode eq '" +typename+ "' and ObjectId/Id eq guid'" +id+ "'&$orderby=CreatedOn asc",function(results) {for(vari= 0; i<results.length; i++) {vartr=$("<tr></tr>");tr.appendTo($("#notestable tbody"));vartd=$("<td>" +(i+1)+ "</td>");td.appendTo(tr);td=$("<td>" +(results[i].Subject== null ? "": results[i].Subject)+ "</td>");td.appendTo(tr);td=$("<td><a href='" +clientUrl+ "/main.aspx?etn=annotation&pagetype=entityrecord&id=%7B" +results[i].AnnotationId+ "%7D' target='_blank'>" +results[i].NoteText+ "</a></td>");td.appendTo(tr);td=$("<td>" +results[i].CreatedBy.Name+ "</td>");td.appendTo(tr);td=$("<td>" +results[i].CreatedOn.format('yyyy-MM-ddThh:mm:ssZ')+ "</td>");td.appendTo(tr);td=$("<td>" +results[i].ModifiedBy.Name+ "</td>");td.appendTo(tr);td=$("<td>" +results[i].ModifiedOn.format('yyyy-MM-ddThh:mm:ssZ')+ "</td>");td.appendTo(tr);td=$("<td>" +(results[i].IsDocument? "是":"否")+ "</td>");td.appendTo(tr);td=$("<td>" +(results[i].FileName== null ? "": ("<a href='#' data-annotationid='" +results[i].AnnotationId+ "' data-mimetype='" +results[i].MimeType+ "'>" +results[i].FileName+ "</a>")+ "</td>"));td.find("a").click(function() {ShowAttachmentByNoteId($(this).attr("data-annotationid"),$(this).attr("data-mimetype"));});td.appendTo(tr);td=$("<td>" +(results[i].FileSize== null ? "": Math.round((results[i].FileSize)/1024)) + "</td>");td.appendTo(tr);}},function (error) {alert(error.message);},function () {},true);$("#dialogclosebtn").click(function (e) {HideDialog();e.preventDefault();});});</script></head><body><table id="notestable"><thead><tr><th>序号</th><th>注释标题</th><th>注释内容</th><th>创建人</th><th>创建时间</th><th>修改人</th><th>修改时间</th><th>是否包含附件</th><th>附件名称</th><th>附件大小(KB)</th></tr></thead><tbody></tbody></table><div id="overlay"class="web_dialog_overlay"></div><div id="dialog"class="web_dialog"><div class="web_dialog_title"><span id="dialogtitle"style="float:left;">附件内容预览</span><span id="dialogclosebtn"style="float:right;">关闭</span></div></div></body> </html>
转载于:https://www.cnblogs.com/luoyong0201/p/Dynamics_365_Note_File_Online_Preview_Function.html
为Dynamics CRM的Office附件注释定制个无需下载即可在线查看的功能相关推荐
- 实现Office文档的在线查看等功能
使用微软提供的Office Online平台只需要一个网址即可在线查看Xls,doc,PPT等文档 http://view.officeapps.live.com/op/view.aspx?src=要 ...
- java零碎要点010---Java实现office文档与pdf文档的在线预览功能
最近项目有个需求要java实现office文档与pdf文档的在线预览功能,刚刚接到的时候就觉得有点难,以自己的水平难以在三四天做完.压力略大.后面查找百度资料.以及在同事与网友的帮助下,四天多把它做完 ...
- java 预览word文档_Java实现office文档与pdf文档的在线预览功能
最近项目有个需求要java实现office文档与pdf文档的在线预览功能,刚刚接到的时候就觉得有点难,以自己的水平难以在三四天做完.压力略大.后面查找百度资料.以及在同事与网友的帮助下,四天多把它做完 ...
- 使用微软提供的Office Online实现Office文档的在线查看,编辑等功能
使用微软提供的Office Online平台只需要一个网址即可在线查看Xls,doc,PPT等文档 http://view.officeapps.live.com/op/view.aspx?src=要 ...
- 微软 Office Online 在线查看word,pdf, xls,ppt 文档
使用微软提供的Office Online平台只需要一个网址即可在线查看Xls,doc,PPT等文档 http://view.officeapps.live.com/op/view.aspx?src=要 ...
- Dynamics CRM 附件功能
Dynamics CRM 包含附件上传功能.打开该功能方式如下: 1.设置--->自定义项--->自动定义系统---->实体---->通信与协作--->勾选注释(包括附件 ...
- 定制Dynamics CRM标准导出功能:不能导出指定列的值
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复239或者20161203可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- Dynamics CRM命令栏定制基础知识及手动编辑customization.xml实例
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复166或者20151028可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 前面的博文:Dynamics C ...
- Microsoft Dynamics CRM 2013升级2015(二)正式安装升级 2015及 Reporting Extensions安装
Microsoft Dynamics CRM 2015 系统要求和所需技术 Microsoft Dynamics CRM(本地) 版本需要以下软件: ·Microsoft Windows Server ...
最新文章
- 你需要掌握的有关.NET DateTime类型的知识点和坑位 都在这里
- JavaEE笔记(五)
- AngularJS+RequireJS集成环境
- Escape字符总结
- minGW, cygwin, GnuWin32【C++的跨平台交叉编译问题】
- List中对象model的排序问题
- 中国成全球第二AI医疗交易国,上半年AI制药融资数等于去年全年 | 报告
- LInux 查看环境变量
- Idea 中的快捷键(mac)
- 十进制转换成二进制java_计算机为什么采用二进制?
- java 线程 寄存器 地址_Java高级进阶多线程学习之路(四)CPU与内存
- 最难数独的快速解法 - python
- 【工具】更新WPS全功能正版授权无广告版
- ASP.NET_各个币种之间的汇率转换(实时)使用Yahoo汇率。
- matlab 求拟合直线的斜率_如何用matlab求出图中各条直线的斜率
- MAC上自定义Office word快捷键
- 生物信息数据格式:fasta格式
- HTML+CSS+JQ实现图片轮播效果
- iOS仿写有妖气漫画、视频捕获框架、启动页广告页demo、多种动画效果等源码...
- Python学习笔记(八)爬虫基础(正则和编解码)
热门文章
- mac安装protobuf
- html中垂直线,如何在HTML中创建一条垂直线
- IDEA设置注释模板——类模板和方法模板(参数,返回值)
- #20 Python文件
- 电竞CSGO数据API接口 - 【即时指数】API调用示例代码
- suse linux 硬盘安装,SUSE硬盘安装小结
- webgl限制帧率_也聊webgl中的大场景性能优化
- C语言之fileno函数
- linux下crontab allow,【Python】Linux crontab定时任务配置方法(详解)
- 门诊患者正在流失?如何打造差异化服务,成功破局,留住患者?