dynamics crm 365 附件上传图片并且显示。
参考了几篇博客做的:
新增websource文件(html):
<!DOCTYPE html>
<html>
<head>
<title>注释</title>
<style type="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;
} .align_right
{
text-align: right;
} </style>
<script type="text/javascript" src="../../_static/_common/scripts/jquery1.7.2.min.js"></script>
<script type="text/javascript" src="../../_static/_common/scripts/XrmServiceToolkit.min.js"></script>
<script type="text/javascript"> Date.prototype.format = function (fmt) {
var o = {
"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 (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ?
(o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
} function ShowAttachmentByNoteId(NoteId) {
XrmServiceToolkit.Rest.Retrieve(
NoteId,
"AnnotationSet",
"DocumentBody,MimeType",
null,
function (result) {
var DocumentBody = result.DocumentBody;
var MimeType = result.MimeType;
if (MimeType.indexOf("image") > -1) { //new method
initblock(DocumentBody,MimeType);
}
else {
alert('附件不是图片,目前无法提供查看!');
}
},
function (error) {
alert(error.message);
},
true
);
} function initblock(DocumentBody,MimeType)
{
if($("#overlay").length > 0) {
$("#overlay").empty();
} if($("#dialogImg").length > 0) {
$("#dialogImg").empty();
} var div = parent.document.createElement("div");
div.id = "overlay";
div.style.position="fixed";
div.style.top="0";
div.style.right="0";
div.style.bottom="0"; div.style.left="0"; div.style.height="100%";
div.style.width="100%";
div.style.margin="0";
div.style.padding="0";
div.style.background=" #000000";
div.style.opacity=".15";
div.style.filter=" alpha(opacity=15)";
div.style.display="none";
parent.document.body.appendChild(div); var divImg =parent.document.createElement("div");
divImg.id = "dialogImg";
divImg.style.display="none";
divImg.style.position="fixed";
divImg.style.width="250px";
divImg.style.height="280px";
divImg.style.top="20%";
divImg.style.left="20%";
divImg.style.right="20%";
divImg.style.bottom="20%";
divImg.style.marginLeft="-190px";
divImg.style.marginTop="-100px";
divImg.style.backgroundColor="#ffffff";
divImg.style.border="0px";
divImg.style.borderStyle="solid";
divImg.style.fontFamily="Verdana";
divImg.style.fontSize="10pt";
divImg.style.padding="0";
divImg.style.zIndex="102"; var table = parent.document.createElement("table");
table.style.width = "100%";
table.style.border = "0";
table.cellPadding = "2";
table.cellSpacing = "0";
var tr1 = parent.document.createElement("tr");
var td1 = parent.document.createElement("td");
td1.style.borderBottom="solid";
td1.style.border="0px";
td1.style.borderColor="#2a1d54";
td1.style.backgroundColor="#2a1d54";
td1.style.padding="4px";
td1.style.color="White";
td1.style.fontWeight="bold";
td1.innerText = "照片预览";
var td11 = parent.document.createElement("td");
td11.style.textAlign = "right"
td11.style.borderBottom = "solid";
td11.style.border = "1px";
td11.style.borderColor = "#2a1d54";
td11.style.backgroundColor = "#2a1d54";
td11.style.padding = "4px";
var a1 = parent.document.createElement("a");
a1.style.color = "White";
a1.style.fontWeight = "bold";
a1.innerText = "关闭";
a1.id = "btnCloseImg";
a1.href = "#";
a1.onclick = function (e) {
debugger;
$("#overlay",parent.document).hide();
$("#dialogImg",parent.document).fadeOut(300);
e.preventDefault();
}
td11.appendChild(a1);
tr1.appendChild(td1);
tr1.appendChild(td11);
var tr2 = parent.document.createElement("tr");
var td2 = parent.document.createElement("td");
td2.colSpan = "2"; var img = parent.document.createElement("img");
img.id = "img1";
td2.appendChild(img);
tr2.appendChild(td2);
table.appendChild(tr1);
table.appendChild(tr2);
divImg.appendChild(table);
parent.document.body.appendChild(divImg); $("#overlay",parent.document).show();
$("#dialogImg",parent.document).fadeIn(300);
$("#img1",parent.document).attr("alt", "Embedded Image");
$("#img1",parent.document).attr("src", "data:" + MimeType + ";base64," + DocumentBody);
$("#overlay",parent.document).unbind("click");
//e.preventDefault(); dragPanelMove();
} function dragPanelMove(){
var dialogImg = $("#dialogImg",parent.document);
dialogImg.mousedown(function(e){
//设置移动后的默认位置
var endx=0;
var endy=0; //获取div的初始位置,要注意的是需要转整型,因为获取到值带px
var left= parseInt(dialogImg.css("left"));
var top = parseInt(dialogImg.css("top")); //获取鼠标按下时的坐标,区别于下面的es.pageX,es.pageY
var downx=e.pageX;
var downy=e.pageY; //pageY的y要大写,必须大写!! // 鼠标按下时给div挂事件
dialogImg.bind("mousemove",function(es){ //es.pageX,es.pageY:获取鼠标移动后的坐标
var endx= es.pageX-downx+left; //计算div的最终位置
var endy=es.pageY-downy+top; //带上单位
dialogImg.css("left",endx+"px").css("top",endy+"px")
});
}) dialogImg.mouseup(function(){
//鼠标弹起时给div取消事件
dialogImg.unbind("mousemove")
}) } $(function () { var id = window.parent.Xrm.Page.data.entity.getId(); //这种方法可以获取表单中的很多信息,包括id XrmServiceToolkit.Rest.RetrieveMultiple(
"AnnotationSet", "?$select=AnnotationId,Subject,NoteText,MimeType,FileName,FileSize,IsDocument,CreatedOn,CreatedBy,ModifiedOn,ModifiedBy&$filter=ObjectId/Id eq guid'" + id + "'&$orderby=CreatedOn asc",
function (results) {
for (var i = 0; i < results.length; i++) {
var tr = $("<tr></tr>");
tr.appendTo($("#notestable tbody"));
var td = $("<td>" + (i+1) + "</td>");
td.appendTo(tr);
td = $("<td>" + (results[i].Subject == null ? "" : results[i].Subject) + "</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 + "'>" + results[i].FileName + "</a>") + "</td>"));
td.find("a").click(function() {
ShowAttachmentByNoteId($(this).attr("data-annotationid"));
});
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>附件大小(KB)</th>
</tr>
</thead>
<tbody>
</tbody>
</table> </body>
</html>
dynamics crm 365 附件上传图片并且显示。的更多相关文章
- Dynamics CRM 365 不用按钮工具,直接用js脚本控制按钮的显示隐藏
Dynamics CRM 365 不用按钮工具,直接用js脚本控制按钮的显示隐藏: try { // 转备案按钮 let transferSpecialRequestButton = parent.p ...
- Dynamics CRM邮件附件,你真的了解吗?
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复160或者20151014可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 听人问起怎么读取到一封邮件所有的 ...
- Dynamics CRM 在表单上显示更改历史记录(审核历史记录)
前言 虽然Dynamics CRM自带的审计很好,但是对于缺乏使用CRM经验的用户来说,自带的UCI界面实在是太隐藏了: 于是乎就出现了需求:想通过在表单上直接看到看审计历史记录: 在网上搜索了很多中 ...
- Dynamics CRM 365中结合注释和WebApi实现图片上传
首先需要在实体上使用注释,然后在窗体上引用WebResource. WebResource的代码: <!DOCTYPE html> <html> <head> &l ...
- Dynamics CRM 365常用js记录。
var entityname =window.parent.Xrm.Page.data.entity.getEntityName();//获取实体名称 var sampid = window.pare ...
- Dynamics CRM 2016/365 窗体中添加按钮
一.工具下载,及界面介绍 1.下载XrmToolBox工具(XrmToolBox for Microsoft Dynamics CRM/365 CE) 链接:https://www.xrmtoolbo ...
- Dynamics CRM中的注释(Note)及RollupRequest消息初探
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复161或者20151015可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 注释,这个实体的架构名称是Ann ...
- Dynamics CRM通过定制应用程序功能区为符合条件的实体表单增加按钮
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复167或者20151029可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 前面的博文都是为一个实体添加按钮 ...
- 为Dynamics CRM注释的图片附件做个预览功能
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复163或者20151017可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! Dynamics CRM中注释可 ...
随机推荐
- rest-framework-----url控制
一:自定义路由(原始方式) from django.conf.urls import url from app01 import views urlpatterns = [ url(r'^books/ ...
- Ubuntu14.04 下安装Vmware-Tools
1.切换到ubuntu 图形界面 startx , 点击虚拟机菜单栏-安装VMware Tools 2. 在Ubuntu系统中找到VMwareTools-9.2.2-893683.tar.gz ,右键 ...
- es学习-索引管理
1.创建索引 http://localhost:9200/suoyinguanli211/ 参数: { "settings":{ "index":{ ,分片数 ...
- js的常用方法
var Jade = {}; Jade.util = { addEvent: function (target, eventType, eventHandle, param) { //deal par ...
- ubuntu 14.04常见问题
1. 改root密码 sudo passwd root 2. 显示登录框 sudo gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf 添加 ...
- Grunt 与WebStrom 集成
为了不想使用命令行的方式开着grunt,打算将Grunt命令集成WebStrom 中 . 1.将配置好的Gruntfile文件放到项目的根目录下.. 2.File-setting-Extental T ...
- 测试驱动开发 VS 行为驱动开发
测试驱动开发(Test Driven Development,英文缩写TDD)是极限编程的一个重要组成部分,它的基本思想就是在开发功能代码之前,先编写测试代码.也就是说在明确要开发某个功能后,首先思考 ...
- Xshell 连接Linux虚拟机失败解决办法
当我们在VMWare上安装好Ubuntu虚拟机后,有时候会需要使用多个terminal窗口,但是在虚拟机中多个窗口互相切换查看不方便,这时候用物理机的xshell工具连接到虚拟机中去就显得很方便.直接 ...
- java反射的补充:桥接方法以及Spring中一些工具类
在上一篇博文中:http://www.cnblogs.com/guangshan/p/4660564.html 源码中有些地方用到了 this.bridgedMethod = BridgeMethod ...
- [Windows] IIS7.5 部署ISAPI
环境: OS:Windows Server 2008 R2 Enterprise sp1 64位 IIS:7.5 ISAPI: delphi xe 编译的webbroker isapi dll 3 ...