zoukankan      html  css  js  c++  java
  • dynamics crm 365 附件上传图片并且显示。

    参考了几篇博客做的:

    新增websource文件(html):

      1 <!DOCTYPE html>
      2 <html>
      3  <head> 
      4   <title>注释</title> 
      5   <style type="text/css">
      6             table {
      7                 border:1px solid #666666;
      8                 border-collapse:collapse;
      9             }
     10             table thead th {
     11                  padding: 8px;
     12                     border:1px solid #666666;
     13                  background-color: #dedede;
     14             }
     15             
     16             table tbody td {
     17                 border: 1px solid  #666666;
     18              padding: 8px;
     19              background-color: #ffffff;
     20             }
     21             
     22             table thead tr th {
     23                 font-family:Microsoft YaHei,SimSun,Tahoma,Arial;
     24                 font-size:12px;
     25                 font-weight:bold;
     26                 color:#000000;
     27             }
     28             
     29             table tbody tr td {
     30                 color:#444444;
     31                 font-family:Microsoft YaHei,SimSun,Tahoma,Arial;
     32                 font-size:12px;
     33             }
     34             
     35             .align_right
     36             {
     37                text-align: right;
     38             }
     39 
     40         </style> 
     41   <script type="text/javascript" src="../../_static/_common/scripts/jquery1.7.2.min.js"></script> 
     42   <script type="text/javascript" src="../../_static/_common/scripts/XrmServiceToolkit.min.js"></script> 
     43   <script type="text/javascript">
     44     
     45             Date.prototype.format = function (fmt) {
     46                 var o = {
     47                     "M+": this.getMonth() + 1,//月份   
     48                     "d+": this.getDate(),//
     49                     "h+": this.getHours(),//小时   
     50                     "m+": this.getMinutes(),//
     51                     "s+": this.getSeconds()//
     52                 };
     53                 if (/(y+)/.test(fmt))
     54                     fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
     55                 for (var k in o)
     56                     if (new RegExp("(" + k + ")").test(fmt))
     57                         fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ?
     58                                  (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
     59                 return fmt;
     60             }
     61             
     62        
     63             
     64             function ShowAttachmentByNoteId(NoteId) {
     65                 XrmServiceToolkit.Rest.Retrieve(
     66                     NoteId,
     67                     "AnnotationSet",
     68                     "DocumentBody,MimeType",
     69                     null,
     70                     function (result) {
     71                         var DocumentBody = result.DocumentBody;
     72                         var MimeType = result.MimeType;
     73                         if (MimeType.indexOf("image") > -1) {
     74                      
     75                             
     76                             //new method
     77                             initblock(DocumentBody,MimeType);
     78                         }
     79                         else {
     80                             alert('附件不是图片,目前无法提供查看!');
     81                         }
     82                     },
     83                     function (error) {
     84                         alert(error.message);
     85                     },
     86                     true
     87                 );
     88             }
     89             
     90         function initblock(DocumentBody,MimeType)
     91         {
     92             if($("#overlay").length > 0) {
     93                  $("#overlay").empty();
     94               }  
     95               
     96               if($("#dialogImg").length > 0) {
     97                  $("#dialogImg").empty();
     98               }
     99               
    100             var div = parent.document.createElement("div");
    101             div.id = "overlay";
    102             div.style.position="fixed";
    103             div.style.top="0";
    104             div.style.right="0";
    105             div.style.bottom="0";
    106         
    107             div.style.left="0";
    108           
    109             div.style.height="100%";
    110             div.style.width="100%";
    111             div.style.margin="0";
    112             div.style.padding="0";
    113             div.style.background=" #000000";
    114             div.style.opacity=".15";
    115             div.style.filter=" alpha(opacity=15)";
    116             div.style.display="none";
    117             parent.document.body.appendChild(div);
    118  
    119             var divImg =parent.document.createElement("div");
    120             divImg.id = "dialogImg";
    121             divImg.style.display="none";
    122             divImg.style.position="fixed";
    123             divImg.style.width="250px";
    124             divImg.style.height="280px";
    125             divImg.style.top="20%";
    126             divImg.style.left="20%";
    127              divImg.style.right="20%";
    128             divImg.style.bottom="20%";
    129             divImg.style.marginLeft="-190px";
    130             divImg.style.marginTop="-100px";
    131             divImg.style.backgroundColor="#ffffff";
    132             divImg.style.border="0px";
    133             divImg.style.borderStyle="solid";
    134             divImg.style.fontFamily="Verdana";
    135             divImg.style.fontSize="10pt";
    136             divImg.style.padding="0";
    137             divImg.style.zIndex="102";
    138  
    139             var table = parent.document.createElement("table");
    140             table.style.width = "100%";
    141             table.style.border = "0";
    142             table.cellPadding = "2";
    143             table.cellSpacing = "0";
    144             var tr1 = parent.document.createElement("tr");
    145             var td1 = parent.document.createElement("td");
    146             td1.style.borderBottom="solid";
    147             td1.style.border="0px";
    148             td1.style.borderColor="#2a1d54";
    149             td1.style.backgroundColor="#2a1d54";
    150             td1.style.padding="4px";
    151             td1.style.color="White";
    152             td1.style.fontWeight="bold";
    153             td1.innerText = "照片预览";
    154             var td11 = parent.document.createElement("td");
    155             td11.style.textAlign = "right"
    156             td11.style.borderBottom = "solid";
    157             td11.style.border = "1px";
    158             td11.style.borderColor = "#2a1d54";
    159             td11.style.backgroundColor = "#2a1d54";
    160             td11.style.padding = "4px";
    161             var a1 = parent.document.createElement("a");
    162             a1.style.color = "White";
    163             a1.style.fontWeight = "bold";
    164             a1.innerText = "关闭";
    165             a1.id = "btnCloseImg";
    166             a1.href = "#";
    167             a1.onclick = function (e) {
    168                 debugger;
    169                 $("#overlay",parent.document).hide();
    170                 $("#dialogImg",parent.document).fadeOut(300);
    171                 e.preventDefault();
    172             }
    173             td11.appendChild(a1);
    174             tr1.appendChild(td1);
    175             tr1.appendChild(td11);
    176             var tr2 = parent.document.createElement("tr");
    177             var td2 = parent.document.createElement("td");
    178             td2.colSpan = "2";
    179             
    180             var img = parent.document.createElement("img");
    181             img.id = "img1";
    182             td2.appendChild(img);
    183             tr2.appendChild(td2);
    184             table.appendChild(tr1);
    185             table.appendChild(tr2);
    186             divImg.appendChild(table);
    187             parent.document.body.appendChild(divImg);
    188          
    189           
    190             
    191             $("#overlay",parent.document).show();
    192             $("#dialogImg",parent.document).fadeIn(300);
    193             $("#img1",parent.document).attr("alt", "Embedded Image");
    194             $("#img1",parent.document).attr("src", "data:" + MimeType + ";base64," + DocumentBody);
    195             $("#overlay",parent.document).unbind("click");
    196             //e.preventDefault();
    197             
    198     
    199               dragPanelMove();
    200         }
    201         
    202 
    203         
    204         function dragPanelMove(){
    205             var dialogImg = $("#dialogImg",parent.document);    
    206                dialogImg.mousedown(function(e){
    207                 //设置移动后的默认位置
    208                 var endx=0;
    209                 var endy=0;
    210              
    211                 //获取div的初始位置,要注意的是需要转整型,因为获取到值带px
    212                 var left= parseInt(dialogImg.css("left"));
    213                 var top = parseInt(dialogImg.css("top"));
    214              
    215                 //获取鼠标按下时的坐标,区别于下面的es.pageX,es.pageY
    216                 var downx=e.pageX;
    217                 var downy=e.pageY;   //pageY的y要大写,必须大写!!
    218              
    219                //  鼠标按下时给div挂事件
    220               dialogImg.bind("mousemove",function(es){
    221              
    222                 //es.pageX,es.pageY:获取鼠标移动后的坐标
    223                 var endx= es.pageX-downx+left;   //计算div的最终位置
    224                 var endy=es.pageY-downy+top;
    225              
    226                 //带上单位
    227                 dialogImg.css("left",endx+"px").css("top",endy+"px")  
    228               });  
    229              })
    230                
    231              
    232               dialogImg.mouseup(function(){
    233                 //鼠标弹起时给div取消事件
    234                 dialogImg.unbind("mousemove")
    235               })
    236 
    237         }
    238 
    239                     
    240             
    241             $(function () {
    242 
    243                 var id = window.parent.Xrm.Page.data.entity.getId(); //这种方法可以获取表单中的很多信息,包括id
    244              
    245                 XrmServiceToolkit.Rest.RetrieveMultiple(
    246                 "AnnotationSet",              "?$select=AnnotationId,Subject,NoteText,MimeType,FileName,FileSize,IsDocument,CreatedOn,CreatedBy,ModifiedOn,ModifiedBy&$filter=ObjectId/Id eq guid'" + id + "'&$orderby=CreatedOn asc",
    247                 function (results) {
    248                     for (var i = 0; i < results.length; i++) {
    249                         var tr = $("<tr></tr>");
    250                         tr.appendTo($("#notestable tbody"));
    251                         var td = $("<td>" + (i+1) + "</td>");
    252                         td.appendTo(tr);
    253                         td = $("<td>" + (results[i].Subject == null ? "" : results[i].Subject) + "</td>");
    254                         td.appendTo(tr);
    255                      
    256                      
    257                         td = $("<td>" + results[i].CreatedBy.Name + "</td>");
    258                         td.appendTo(tr);
    259                         td = $("<td>" + results[i].CreatedOn.format('yyyy-MM-ddThh:mm:ssZ') + "</td>");
    260                         td.appendTo(tr);
    261                         td = $("<td>" + results[i].ModifiedBy.Name + "</td>");
    262                         td.appendTo(tr);
    263                         td = $("<td>" + results[i].ModifiedOn.format('yyyy-MM-ddThh:mm:ssZ') + "</td>");
    264                         td.appendTo(tr);
    265                         td = $("<td>" + (results[i].IsDocument ? "" : "") + "</td>");
    266                         td.appendTo(tr);
    267                         td = $("<td>" + (results[i].FileName == null ? "" : ("<a href='#' data-annotationid='" + results[i].AnnotationId + "'>" + results[i].FileName + "</a>") + "</td>"));
    268                         td.find("a").click(function() {
    269                             ShowAttachmentByNoteId($(this).attr("data-annotationid"));
    270                         });
    271                         td.appendTo(tr);
    272                         td = $("<td>" + (results[i].FileSize == null ? "" : Math.round((results[i].FileSize)/1024)) + "</td>");
    273                         td.appendTo(tr);
    274                     }
    275                 },
    276                 function (error) {
    277                     alert(error.message);
    278                 },
    279                 function () {
    280                 },
    281                 true
    282                 );
    283                 $("#dialogclosebtn").click(function (e) {
    284                     HideDialog();
    285                     e.preventDefault();
    286                 });
    287             });
    288         </script> 
    289  </head> 
    290  <body> 
    291   <table id="notestable"> 
    292    <thead> 
    293     <tr> 
    294      <th>序号</th> 
    295      <th>注释标题</th> 
    296      <th>创建人</th> 
    297      <th>创建时间</th> 
    298      <th>修改人</th> 
    299      <th>修改时间</th> 
    300      <th>是否包含附件</th> 
    301      <th>附件名称</th> 
    302      <th>附件大小(KB)</th> 
    303     </tr> 
    304    </thead> 
    305    <tbody> 
    306    </tbody> 
    307   </table> 
    308  
    309  </body>
    310 </html>
  • 相关阅读:
    Leetcode1>数组中两数之和等于给定数
    Leetcode13>罗马数字转换为整数
    Leetcode7>Reverse Integer(逆转整数)
    Leetcode2>链表中对应位相加(进位)
    django south实现数据库同步
    linux系统关闭开启触摸鼠标
    新浪sae部署django1.4
    [USB]USB类代码备份[转]
    Discuz! Url 静态化 IIS6.0设置问题。
    ServU FTP Server 6.4.0.2注册码(注册密钥)
  • 原文地址:https://www.cnblogs.com/longdb/p/9488829.html
Copyright © 2011-2022 走看看