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中注释可 ...
随机推荐
- python3--json序列化
# Auther: Aaron Fan # 把数据存入到一个文件中 # json格式的数据几乎可以通用语任何编程语言,但是仅仅只是简单的格式转换# 比如:字典.列表.元组.字符串这些,像函数.类就不可 ...
- Photo3
Story: 这是一个简朴的家,有用旧了的风扇,木制的桌子,桌子上放了未完成的功课,还有一只正在睡觉的猫.阳光从窗户照进来,微风轻轻的吹着.想象你是坐在窗边吹风的小女孩,你的眼睛正眺望着不远处的风景, ...
- response乱码和request乱码
response乱码 一.浏览器乱码 原因是:浏览器显示编码和文件的数据编码不一致 浏览器显示编码 response.setCharacterEncoding("utf-8"); ...
- 一起做RGB-D SLAM (5)
第五讲 Visual Odometry (视觉里程计) 2016.11 更新 把原文的SIFT替换成了ORB,这样你可以在没有nonfree模块下使用本程序了. 去掉了cv::cv2Eigen函数,因 ...
- auth复习和BBS项目的登录(1)
auth复习 auth组件 验证:authenticate(request,username='andy',password='123) 登录:login(request,user) 注销:login ...
- es-文档版本号,操作类型,分片选择
一.版本号: 在es中每个文档都有一个版本号,默认情况下,版本号都是随着每次对该文档的修改或者删除自增的,当然你也可以自己指定.有了这个文档号,我们可以像mysql 乐观锁一样,用来进行控制字我们文档 ...
- OSG图形设备接口GraphicsContext
1.图形设备与相机 在Camera类的成员函数中,setGraphicContext()函数的工作是设置相机对应的图形设备对象,换句话说,下面要介绍的GraphicsContext类就是图形设备对象的 ...
- hadoop理解
Hadoop的主核心有2部分: 1,HDFS 2, MapReduce 首先: HDFS HDFS(Hadoop Distributed File System,Hadoop分布式文件系统),它是一个 ...
- python-字符串-技巧
1.删除字符串末尾空白:rstrip函数 test1 = "This is a test " print(test1.rstrip()) 但是这种删除只是暂时的,如果想永久删除,则 ...
- Mac上phantomjs装了不能用的解决
下了,装了.然后整这句命令: phantomjs --version 直接报错.. 查了半天的官方文档,居然连个毛线都么找到.终于...墨迹到了一个方法,就抱着试一试的心态在terminal里输入了这 ...