1/* 2Product Name: dhtmlxSuite 3Version: 5.1.0 4Edition: Professional 5License: content of this file is covered by DHTMLX Commercial or Enterprise license. Usage without proper license is prohibited. To obtain it contact [email protected] 6Copyright UAB Dinamenta http://www.dhtmlx.com 7*/ 8 9dhtmlXGridObject.prototype.toPDF=function(url,mode,header,footer,rows,target){ 10 var save_sel = { 11 row: (this.getSelectedRowId()||"").split(this.delim), 12 col: this.getSelectedCellIndex() 13 }; 14 if (save_sel.row === null || save_sel.col === -1) 15 save_sel = false; 16 else { 17 if (save_sel.row){ 18 for (var i=0; i<save_sel.row.length; i++){ 19 if (save_sel.row[i]){ 20 var el = this.cells(save_sel.row[i], save_sel.col).cell; 21 el.parentNode.className = el.parentNode.className.replace(' rowselected', ''); 22 el.className = el.className.replace(' cellselected', ''); 23 save_sel.row[i] = el; 24 } 25 } 26 } else 27 save_sel = false; 28 } 29 mode = mode || "color"; 30 var full_color = mode == "full_color"; 31 var grid = this; 32 grid._asCDATA = true; 33 if (typeof(target) === 'undefined') 34 this.target = " target=\"_blank\""; 35 else 36 this.target = target; 37 38 eXcell_ch.prototype.getContent = function(){ 39 return this.getValue(); 40 }; 41 eXcell_ra.prototype.getContent = function(){ 42 return this.getValue(); 43 }; 44 function xml_top(profile) { 45 var spans = []; 46 for (var i=1; i<grid.hdr.rows.length; i++){ 47 spans[i]=[]; 48 for (var j=0; j<grid._cCount; j++){ 49 var cell = grid.hdr.rows[i].childNodes[j]; 50 if (!spans[i][j]) 51 spans[i][j]=[0,0]; 52 if (cell) 53 spans[i][cell._cellIndexS]=[cell.colSpan, cell.rowSpan]; 54 } 55 } 56 57 var xml = "<rows profile='"+profile+"'"; 58 if (header) 59 xml+=" header='"+header+"'"; 60 if (footer) 61 xml+=" footer='"+footer+"'"; 62 xml+="><head>"+grid._serialiseExportConfig(spans).replace(/^<head/,"<columns").replace(/head>$/,"columns>"); 63 for (var i=2; i < grid.hdr.rows.length; i++) { 64 var empty_cols = 0; 65 var row = grid.hdr.rows[i]; 66 var cxml=""; 67 for (var j=0; j < grid._cCount; j++) { 68 if ((grid._srClmn && !grid._srClmn[j]) || (grid._hrrar[j] && ( !grid._fake || j >= grid._fake.hdrLabels.length))) { 69 empty_cols++; 70 continue; 71 } 72 var s = spans[i][j]; 73 var rspan = (( s[0] && s[0] > 1 ) ? ' colspan="'+s[0]+'" ' : ""); 74 if (s[1] && s[1] > 1){ 75 rspan+=' rowspan="'+s[1]+'" '; 76 empty_cols = -1; 77 } 78 79 80 var val = ""; 81 //split mode 82 var frow = row; 83 if (grid._fake && j < grid._fake._cCount) 84 frow = grid._fake.hdr.rows[i]; 85 86 for (var k=0; k<frow.cells.length; k++){ 87 if (frow.cells[k]._cellIndexS==j) { 88 if (frow.cells[k].getElementsByTagName("SELECT").length) 89 val=""; 90 else 91 val = _isIE?frow.cells[k].innerText:frow.cells[k].textContent; 92 val=val.replace(/[ \n\r\t\xA0]+/," "); 93 break; 94 } 95 } 96 if (!val || val==" ") empty_cols++; 97 cxml+="<column"+rspan+"><![CDATA["+val+"]]></column>"; 98 }; 99 if (empty_cols != grid._cCount) 100 xml+="\n<columns>"+cxml+"</columns>"; 101 }; 102 xml+="</head>\n"; 103 xml+=xml_footer(); 104 return xml; 105 }; 106 107 function xml_body() { 108 var xml =[]; 109 if (rows) 110 for (var i=0; i<rows.length; i++) 111 xml.push(xml_row(grid.getRowIndex(rows[i]))); 112 else 113 for (var i=0; i<grid.getRowsNum(); i++) 114 xml.push(xml_row(i)); 115 return xml.join("\n"); 116 } 117 function xml_footer() { 118 var xml =["<foot>"]; 119 if (!grid.ftr) return ""; 120 for (var i=1; i < grid.ftr.rows.length; i++) { 121 xml.push("<columns>"); 122 var row = grid.ftr.rows[i]; 123 for (var j=0; j < grid._cCount; j++){ 124 if (grid._srClmn && !grid._srClmn[j]) continue; 125 if (grid._hrrar[j] && ( !grid._fake || j >= grid._fake.hdrLabels.length)) continue; 126 for (var k=0; k<row.cells.length; k++){ 127 var val = ""; 128 var span = "";
129 if (row.cells[k]._cellIndexS==j) { 130 val = _isIE?row.cells[k].innerText:row.cells[k].textContent; 131 val=val.replace(/[ \n\r\t\xA0]+/," "); 132 133 if (row.cells[k].colSpan && row.cells[k].colSpan!=1) 134 span = " colspan='"+row.cells[k].colSpan+"' "; 135 136 if (row.cells[k].rowSpan && row.cells[k].rowSpan!=1) 137 span = " rowspan='"+row.cells[k].rowSpan+"' "; 138 break; 139 } 140 } 141 xml.push("<column"+span+"><![CDATA["+val+"]]></column>"); 142 } 143 xml.push("</columns>"); 144 }; 145 xml.push("</foot>"); 146 return xml.join("\n"); 147 }; 148 function get_style(node, style){ 149 return (window.getComputedStyle?(window.getComputedStyle(node, null)[style]):(node.currentStyle?node.currentStyle[style]:null))||""; 150 }; 151 152 function xml_row(ind){ 153 if (!grid.rowsBuffer[ind]) return ""; 154 var r = grid.render_row(ind); 155 if (r.style.display=="none") return ""; 156 var level = grid.isTreeGrid() ? ' level="' + grid.getLevel(r.idd) + '"' : ''; 157 var xml = "<row" + level + ">"; 158 for (var i=0; i < grid._cCount; i++) { 159 if (((!grid._srClmn)||(grid._srClmn[i]))&&(!grid._hrrar[i] || ( grid._fake && i < grid._fake.hdrLabels.length))){ 160 var cell = grid.cells(r.idd, i); 161 if (full_color){ 162 var text_color = get_style(cell.cell,"color"); 163 var bg_color = get_style(cell.cell,"backgroundColor"); 164 var bold = get_style(cell.cell, "font-weight") || get_style(cell.cell, "fontWeight"); 165 var italic = get_style(cell.cell, "font-style") || get_style(cell.cell, "fontStyle"); 166 var align = get_style(cell.cell, "text-align") || get_style(cell.cell, "textAlign"); 167 var font = get_style(cell.cell, "font-family") || get_style(cell.cell, "fontFamily"); 168 if (bg_color == "transparent" || bg_color == "rgba(0, 0, 0, 0)") bg_color = "rgb(255,255,255)"; 169 xml+="<cell bgColor='"+bg_color+"' textColor='" + text_color + "' bold='" + bold + "' italic='" + italic + "' align='"+align+"' font='" + font + "'>"; 170 } else 171 xml+="<cell>"; 172 173 xml+="<![CDATA["+(cell.getContent?cell.getContent():cell.getTitle())+"]]></cell>"; 174 } 175 }; 176 return xml+"</row>"; 177 } 178 function xml_end(){ 179 var xml = "</rows>"; 180 return xml; 181 } 182 183 184 185 var d=document.createElement("div"); 186 d.style.display="none"; 187 document.body.appendChild(d); 188 var uid = "form_"+grid.uid(); 189 190 d.innerHTML = '<form id="'+uid+'" method="post" action="'+url+'" accept-charset="utf-8" enctype="application/x-www-form-urlencoded"' + this.target + '><input type="hidden" name="grid_xml" id="grid_xml"/> </form>'; 191 document.getElementById(uid).firstChild.value = encodeURIComponent(xml_top(mode).replace("\u2013", "-") + xml_body() + xml_end()); 192 document.getElementById(uid).submit(); 193 d.parentNode.removeChild(d); 194 195 196 grid = null; 197 198 if (save_sel && save_sel.row.length) { 199 for (var i = 0; i < save_sel.row.length; i++) { 200 save_sel.row[i].parentNode.className += ' rowselected'; 201 if (save_sel.row.length == 1) 202 save_sel.row[i].className += ' cellselected'; 203 } 204 }; 205 save_sel = null; 206}; 207dhtmlXGridObject.prototype._serialiseExportConfig=function(spans){ 208 function xmlentities(str) { 209 if (typeof(str)!=='string') return str; 210 str = str.replace(/&/g, "&"); 211 str = str.replace(/"/g, """); 212 str = str.replace(/'/g, "'"); 213 str = str.replace(/</g, "<"); 214 str = str.replace(/>/g, ">"); 215 return str; 216 } 217 218 var out = "<head>"; 219 220 for (var i = 0; i < this.hdr.rows[0].cells.length; i++){ 221 if (this._srClmn && !this._srClmn[i]) continue; 222 if (this._hrrar[i] && ( !this._fake || i >= this._fake.hdrLabels.length)) continue; 223 var sort = this.fldSort[i]; 224 if (sort == "cus"){ 225 sort = this._customSorts[i].toString(); 226 sort=sort.replace(/function[\ ]*/,"").replace(/\([^\f]*/,""); 227 } 228 var s = spans[1][i]; 229 var rpans = (( s[1] && s[1] > 1 ) ? ' rowspan="'+s[1]+'" ' : "")+(( s[0] && s[0] > 1 ) ? ' colspan="'+s[0]+'" ' : ""); 230 out+="<column "+rpans+" width='"+this.getColWidth(i)+"' align='"+this.cellAlign[i]+"' type='"+this.cellType[i] + "' hidden='" + ((this.isColumnHidden && this.isColumnHidden(i)) ? 'true' : 'false')
231 +"' sort='"+(sort||"na")+"' color='"+(this.columnColor[i]||"")+"'" 232 +(this.columnIds[i] 233 ? (" id='"+this.columnIds[i]+"'") 234 : "")+">"; 235 if (this._asCDATA) 236 out+="<![CDATA["+this.getColumnLabel(i)+"]]>"; 237 else 238 out+=this.getColumnLabel(i); 239 var z = this.combos[i]?this.getCombo(i):null; 240 241 if (z) 242 for (var j = 0; j < z.keys.length; j++)out+="<option value='"+xmlentities(z.keys[j])+"'><![CDATA["+z.values[j]+"]]></option>"; 243 out+="</column>"; 244 } 245 return out+="</head>"; 246}; 247if (window.eXcell_sub_row_grid) 248 window.eXcell_sub_row_grid.prototype.getContent=function(){ return ""; }; 249 250 251dhtmlXGridObject.prototype.toExcel = function(url,mode,header,footer,rows) { 252 if (!document.getElementById('ifr')) { 253 var ifr = document.createElement('iframe'); 254 ifr.style.display = 'none'; 255 ifr.setAttribute('name', 'dhx_export_iframe'); 256 ifr.setAttribute('src', ''); 257 ifr.setAttribute('id', 'dhx_export_iframe'); 258 document.body.appendChild(ifr); 259 } 260 261 var target = " target=\"dhx_export_iframe\""; 262 this.toPDF(url,mode,header,footer,rows,target); 263} 264
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.