@lijiahong
2018-08-08T08:13:06.000000Z
字数 9551
阅读 492
未分类
添加复选框
function main(spreadsheetReport, isAjaxRefreshCallback) {var useralias = imports("bof.usermanager.UserService").getInstance().getCurrentUser().alias;var r = spreadsheetReport.getRowCount(); //获取电子表格总行数for (var i = 2; i < r; i++) {var td = spreadsheetReport.getCell(i, 10); //根据行列号获取单元格var img = document.createElement("input");img.type = "checkbox";img.value = spreadsheetReport.getCell(i, 4).innerText;//img.val2 = spreadsheetReport.getCell(i, 1).innerText;img.val2 = useralias;img.name = "deleteCheckbox";$(td).html(img);}var td = spreadsheetReport.getCell(1, 10); //根据行列号获取单元格var chx = document.createElement("input");chx.type = "checkbox";chx.name = "AllCheckbox";chx.onclick = function() {var objal = getByName("AllCheckbox");if (objal[0].checked) {var obj = getByName("deleteCheckbox");for (k in obj) {obj[k].checked = true;}} else {var obj = getByName("deleteCheckbox");for (k in obj) {obj[k].checked = false;}}}td.appendChild(chx);}//兼容IE获取NAMEfunction getByName(Name) {var i=spreadsheetReport.elemSheetFrame.contentWindow.document.getElementsByTagName(Name);if (i > 0) {return i;} else {var aEle=spreadsheetReport.elemSheetFrame.contentWindow.document.getElementsByTagName('*');var arr = [];for (var i = 0; i < aEle.length; i++) {if (aEle[i].getAttribute("name") == Name) {arr.push(aEle[i])}}return arr;}}
数据处理
function main(spreadsheetReport, isAjaxRefreshCallback) {//将工具栏隐藏if (spreadsheetReport.elem_trToolbar) {spreadsheetReport.elem_trToolbar.style.display = "none";}//添加按钮的单元格(支持合并单元格)var bjtd = spreadsheetReport.getCell(0, 9); //通过坐标获取单元格//编辑按钮属性设置startbjtd.style.cursor = "pointer"; //鼠标变手var bjbt = document.createElement("input");bjbt.type = "button";bjbt.value = "编辑";//按钮名称bjbt.name = "edit";//按钮name,建议唯一性//编辑按钮相应事件startbjbt.onclick = function() {var y = 0;var obj = getByName("deleteCheckbox");for (var k in obj) {if (obj[k].checked) {y = y + 1;//累加选择数}}if (y === 0) {alert("未选择任何数据");}if (y > 1) {alert("选择数据太多了,只能选择一个");}if (y == 1) {for (var k in obj) {if (obj[k].checked) {console.log(obj[k].value);//控制台输出数据(可选)console.log(obj[k].val2);//控制台输出数据(可选)var bmmc = seccode(b32sec(obj[k].val2));//获取部门名称var rwbh = seccode(b32sec(obj[k].value));//获取任务编号var res = "I53c0f01901649173917317960164fd9549cc6d9b";//定义跳转资源ID//定义URLvar openUrls = "http://211.64.112.153/jxzg/vision/openresource.jsp?resid=I53c0f01901649173917317960164fdfbe9be7399" + "&bmmc=" + bmmc + "&rwbh=" + rwbh + "&res=" + res + "&showtoolbar=false&refresh=true";//定义打开的URL//弹出窗口var iWidth = 800; //弹出窗口的宽度;var iHeight = 700; //弹出窗口的高度;var windowObj = "newwindow";var isChrome = window.navigator.userAgent.indexOf("Chrome") !== -1;var iTop = (window.screen.availHeight - 30 - iHeight) / 2; //获得窗口的垂直位置;var iLeft = (window.screen.availWidth - 10 - iWidth) / 2; //获得窗口的水平位置;if (isChrome) {curPopupWindow = window.open(openUrls, windowObj, 'height=' + iHeight + ',width=' + iWidth + ',top=' + iTop + ',left=' + iLeft + ',edge=raised, center=yes, help=no,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no,status=no');} else {curPopupWindow = window.showModelessDialog(openUrls, windowObj, "status:false;dialogWidth:" + iWidth + "px;dialogHeight:" + iHeight + "px;dialogLeft:" + iLeft + "px;dialogTop:" + iTop + "px;edge:Raised; center: Yes; help: No; resizable: No; status: No;scroll:no;");}//弹出窗口}}}};//编辑按钮响应事件end//编辑按钮属性设置end//导入按钮属性设置startvar drbt = document.createElement("input");drbt.type = "button";drbt.value = "导入";drbt.name = "import";//导入按钮响应事件startdrbt.onclick = function() {//注释掉的这一段为自定义iframe打开方式,但是官方提供了较为方便的导入页面,但是灵活性差,故保留原来的。// var dialogFactory = jsloader.resolve("freequery.dialog.dialogFactory");// var dialogConfig = {// title: "任务数据导入",// size: dialogFactory.size.LARGE,// dialogType: "modeless",// fullName: "freequery.dialog.BaseDialogEx",// closeBeforeCallback: true// };// var data = {};// dialogFactory.showDialog(dialogConfig, data, doOnCloseDlg, this);// setTimeout(function() {// var url = 'http://211.64.112.153/jxzg/vision/openimportconfig.jsp?resid=I53c0f0190163ca3cca3cf95e0163dd3983be4b51';// openReport(url)//openReport方法在最后// },// 500);if (!dialogFactory) {var dialogFactory = jsloader.resolve("freequery.dialog.dialogFactory");}var dialogConfig = {};dialogConfig.title = "Excel导入";//定义iframe标题dialogConfig.size = dialogFactory.size.LARGE;dialogConfig.fullName = "smartbi.spreadsheetreport.OpenImportConfigDialog";var configs = new Array();var importConfig = new Object();importConfig.id = "I53c0f0190163ca3cca3cf95e0163dd3983be4b51";//定义导入资源ID //需要打开excel数据导入模板的IDconfigs.push(importConfig);dialogFactory.showDialog(dialogConfig, [configs], doOnCloseDlg, this);//doOnCloseDlg为iframe窗口销毁后执行的方法};//导入按钮响应事件end//导入按钮属性设置start//删除按钮属性设置startvar scbt = document.createElement("input");scbt.type = "button";scbt.value = "删除";scbt.name = "deleteCheckbox";//删除按钮响应事件startscbt.onclick = function() {var y = 0;var flag = confirm("确认删除选中数据吗?");//弹出提示框if (flag) {//点击确认之后执行var obj = getByName("deleteCheckbox");var z = 0;var x = 0;for (k in obj) {if (obj[k].checked) {x = x + 1;//统计选择个数y = 1;console.log(obj[k].value);//控制台输出数据(可选)console.log(obj[k].val2);//控制台输出数据(可选)var bmmc = obj[k].val2;var rwbh = obj[k].value;var modalWindow = jsloader.resolve("freequery.common.modalWindow");var util = jsloader.resolve("freequery.common.util");var ret = util.remoteInvoke("DataSourceService", "executeUpdate", ["DS.HXK", "DELETE FROM HXK.RWGLCGRWYLB WHERE CGBMMC='" + bmmc + "' AND CGRWBH='" + rwbh + "'"]); //执行删除数据的sqlif (!ret.succeeded) {z = z + 1;//统计删除成功数}}}if (y == 0) {alert("未选择任何数据");} else {if (z == 0) {alert("成功删除" + x + "条记录");spreadsheetReport.doRefresh();//报表刷新} else {alert("共选择" + z + "条记录," + "删除失败" + z + "条记录");spreadsheetReport.doRefresh();}}}}//删除按钮响应事件end//删除按钮属性设置end//导出按钮属性设置startvar dcbt = document.createElement("input");dcbt.type = "button";dcbt.value = "导出";dcbt.name = "outputbutton";//导出按钮响应事件startdcbt.onclick = function() {spreadsheetReport.doExportMenuCloseUp("EXCEL");//直接导出为excel}//导出按钮响应事件end//导出按钮属性设置end//添加按钮属性设置startvar tjbt = document.createElement("input");tjbt.type = "button";tjbt.value = "添加";tjbt.name = "insertbutton";//添加按钮相应事件starttjbt.onclick = function() {var useralias = imports("bof.usermanager.UserService").getInstance().getCurrentUser().alias;var bmmc = seccode(b32sec(useralias));var rwbh = seccode(b32sec("请输入任务编号"));var res = "I53c0f019016491739173179601651352535c7744";//定义URLvar openUrls = "http://211.64.112.153/jxzg/vision/openresource.jsp?resid=I53c0f01901649173917317960164fdfbe9be7399" + "&bmmc=" + bmmc + "&rwbh=" + rwbh + "&res=" + res + "&showtoolbar=false&refresh=true";//弹出窗口var iWidth = 800; //弹出窗口的宽度;var iHeight = 700; //弹出窗口的高度;var windowObj = "newwindow";var isChrome = window.navigator.userAgent.indexOf("Chrome") !== -1;var iTop = (window.screen.availHeight - 30 - iHeight) / 2; //获得窗口的垂直位置;var iLeft = (window.screen.availWidth - 10 - iWidth) / 2; //获得窗口的水平位置;if (isChrome) {curPopupWindow = window.open(openUrls, windowObj, 'height=' + iHeight + ',width=' + iWidth + ',top=' + iTop + ',left=' + iLeft + ',edge=raised, center=yes, help=no,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no,status=no');} else {curPopupWindow = window.showModelessDialog(openUrls, windowObj, "status:false;dialogWidth:" + iWidth + "px;dialogHeight:" + iHeight + "px;dialogLeft:" + iLeft + "px;dialogTop:" + iTop + "px;edge:Raised; center: Yes; help: No; resizable: No; status: No;scroll:no;");}}//添加按钮相应事件end//添加按钮属性设置end//刷新按钮属性设置startvar sxbt = document.createElement("input");sxbt.type = "button";sxbt.value = "刷新";sxbt.name = "Refreshbutton";sxbt.onclick = function() {spreadsheetReport.doRefresh();}//刷新按钮属性设置end//单元格中添加按钮事件,按照顺序分别为刷新,添加,编辑,删除,导入,导出bjtd.appendChild(sxbt);bjtd.appendChild(tjbt);bjtd.appendChild(bjbt);bjtd.appendChild(scbt);bjtd.appendChild(drbt);bjtd.appendChild(dcbt);}//转换方法startfunction seccode(s) {var len = s.length;var rs = "";for (var i = 0; i < len; i++) {var k = s.substring(i, i + 1);rs += (i == 0 ? "" : ",") + s.charCodeAt(i);}return rs;}function b32sec(str) {return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) {return String.fromCharCode('0x' + p1);}));}//转换方法end//兼容IE获取复选框namefunction getByName(Name) {var i=spreadsheetReport.elemSheetFrame.contentWindow.document.getElementsByTagName(Name);if (i > 0) {return i;} else {var aEle=spreadsheetReport.elemSheetFrame.contentWindow.document.getElementsByTagName('*');var arr = [];for (var i = 0; i < aEle.length; i++) {if (aEle[i].getAttribute("name") == Name) {arr.push(aEle[i])}}return arr;}}//iframe关闭相应事件方法function doOnCloseDlg() {spreadsheetReport.doRefresh();}//自定义iframe打开链接方法// function openReport(url) {// // 替换成你的目标资源的url// //var url = 'http://211.64.112.153/jxzg/vision/openimportconfig.jsp?resid=I53c0f0190163ca3cca3cf95e0163dd3983be4b51';// var domutils = jsloader.resolve('freequery.lang.domutils');// var elem = window.dialog.dialogBody;// var btnOK = window.dialog.btnOK;// var btnCancel = window.dialog.btnCancel;// btnOK.style.display = 'none'// btnCancel.value = '关闭(C)';// elem.innerHTML = '<iframe src="' + url + '" width="100%" height="100%" border="0" frameSpacing="0" frameBorder="0"></iframe>'// }
function main(spreadsheetReport, isAjaxRefreshCallback) {spreadsheetReport.initTableGrid();var B3List = spreadsheetReport.getExpandedPositions("C3"); //表格扩展字段起始位置var B3_Start = spreadsheetReport.parseCellIndex(B3List[0])[0]; //解析出行号var B3_End = spreadsheetReport.parseCellIndex(B3List[B3List.length - 1])[0];spreadsheetReport.addListener(spreadsheetReport.elemSheetFrame.contentWindow.document.body, "click",function(e) {var t = e.target;while (t && t.tagName != "TR") {t = t.parentNode;}if (!t) return;var _focusTR = this._focusTR;var startCol;var endCol;if (t.rowIndex >= B3_Start && t.rowIndex <= B3_End) {this._focusTR = t;startCol = 1; //表格起始列,从0开始计算endCol = 10; //表格终止列,从0开始计算}if (_focusTR) {var rowTd = this.tableGrid[_focusTR.rowIndex];for (var i = this._focusStartCol; i <= this._focusEndCol; i++) {rowTd[i].style.backgroundColor = rowTd[i]._originalBackgroundColor}}this._focusStartCol = startCol;this._focusEndCol = endCol;var rowTd = this.tableGrid[t.rowIndex];for (var i = startCol; i <= endCol; i++) {if (typeof rowTd[i]._originalBackgroundColor == "undefined") {rowTd[i]._originalBackgroundColor = rowTd[i].style.backgroundColor;}rowTd[i].style.backgroundColor = "#AEEEEE";//颜色}},spreadsheetReport, "sheetFrameBody");}