...
代码块 | ||||
---|---|---|---|---|
| ||||
function main(spreadsheetReport) { var list = spreadsheetReport.getExpandedPositions("B4"); //获取【删除】字样的所有单元格 for (var i = 0; i < list.length; i++) { var pos = spreadsheetReport.parseCellIndex(list[i]); var td = spreadsheetReport.getCell(pos[0], pos[1]); //获取单元格 td.style.cursor = "pointer"; //鼠标变手 td.toDeleteCell = pos[0]; td.onclick = function() { var modalWindow = jsloader.resolve("freequery.common.modalWindow"); //var flag = modalWindow.open("确认删除吗?", "警告", modalWindow.MB_YESNO | modalWindow.MB_ICONQUESTION) == modalWindow.ID_YES; var flag = confirm("确认删除吗?"); if (flag) { //实际上允许删除的单元格,在这个例子中是C4这个单元格,所以使用2作为列,从0 开始数,需要根据实际情况修改 spreadsheetReport.spreadsheetReportWriteBack.currentEditingPosition = this.toDeleteCell + ":2"; //调用删除 spreadsheetReport.spreadsheetReportWriteBack.doRemoveRowClick(); } } } } |
以上代码在操作删除后,还需要点击保存按钮,数据才能从数据库中删除,若不想再次点击保存按钮,可参考下面的宏代码,在宏代码中执行sql删除数据:
代码块 | ||||
---|---|---|---|---|
| ||||
function main(spreadsheetReport) {
var list = spreadsheetReport.getExpandedPositions("B4"); //获取【删除】字样的所有单元格
for (var i = 0; i < list.length; i++) {
var pos = spreadsheetReport.parseCellIndex(list[i]);
var td = spreadsheetReport.getCell(pos[0], pos[1]); //获取单元格
td.style.cursor = "pointer"; //鼠标变手
td.toDeleteCell = pos[0];
td.onclick = function() {
var modalWindow = jsloader.resolve("freequery.common.modalWindow");
//var flag = modalWindow.open("确认删除吗?", "警告", modalWindow.MB_YESNO | modalWindow.MB_ICONQUESTION) == modalWindow.ID_YES;
var flag = confirm("确认删除吗?");
if (flag) {
//实际上允许删除的单元格,在这个例子中是C4这个单元格,所以使用2作为列,从0 开始数,需要根据实际情况修改
spreadsheetReport.spreadsheetReportWriteBack.currentEditingPosition = this.toDeleteCell + ":2";
//调用删除
spreadsheetReport.spreadsheetReportWriteBack.doRemoveRowClick();
var util = jsloader.resolve("freequery.common.util");
var sectorID=spreadsheetReport.getCell(this.toDeleteCell, 2).innerText; //获取id
var ret = util.remoteInvoke("DataSourceService", "executeUpdate", ["DS.IACORE", "delete from LIUJ.SECTOR_INFO where SECTOR_ID='"+sectorID+"'"]); //执行删除数据的sql
if (ret.succeeded){
alert("删除成功");
} else {
alert("删除失败");
}
}
}
}
} |
4、在报表宏界面新建服务端模块。选择对象为spreadSheetReport、事件为onBeforeOutput、并把下面宏代码复制到代码编辑区域。
...