PageSourceSearch

https://web.rosknroll.fi/rosknroll/js/dhtmlxSuite/sources/dhtmlxGrid/codebase/ext/dhtmlxgrid_export.js

js rosknroll.fi collected 2026-09-26 03:00:16 UTC 9,526 bytes, 264 lines download raw bytes

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, "&amp;");
211		str = str.replace(/"/g, "&quot;");
212		str = str.replace(/'/g, "&apos;");
213		str = str.replace(/</g, "&lt;");
214		str = str.replace(/>/g, "&gt;");
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.