...
代码块 | ||||
---|---|---|---|---|
| ||||
function main(spreadsheetReport, editingCellPosition) { var row = editingCellPosition.row; var col = editingCellPosition.column; //执行sql,获取序号 var newIdValue = getSqlResult(); //为新增的一行序号单元格赋值 //判断当前编辑的是否是"序号"所在的列,从0开始,所以B列的列序号是1 if(col==1){ spreadsheetReport.spreadsheetReportWriteBack.setWriteBackCellData(row + 1, col + 0, newIdValue, newIdValue);//此方法必须保证该单元格设置了填报属性 } }; /** * 执行SQL语句,获取结果集 */ function getSqlResult() { var util = jsloader.resolve("freequery.common.util"); var ret = util.remoteInvoke("DataSourceService","execute",["DS.资源库_业务库","select max(f_ContactID) + 1 as t from contacts", 1000,true,false]); if (ret.succeeded && ret.result) { var data = ret.result.data; return data[0][0].value; } }; |
若是生成的uuid,不希望来源于数据库,可以通过Java方式获取到,如下:
代码块 | ||
---|---|---|
| ||
function main(spreadsheetReport, editingCellPosition) {
var row = editingCellPosition.row;
var col = editingCellPosition.column;
//执行sql,获取序号
var newIdValue = getUuid();
//为新增的一行序号单元格赋值
//判断当前编辑的是否是"序号"所在的列,从0开始,所以B列的列序号是1
if(col==1){
spreadsheetReport.spreadsheetReportWriteBack.setWriteBackCellData(row + 1, col + 0, newIdValue, newIdValue);
}
};
/**
* 执行SQL语句,获取结果集
*/
function getUuid() {
var s = [];
var hexDigits = "0123456789abcdef";
for (var i = 0; i < 36; i++) {
s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
}
s[14] = "4";
s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1);
s[8] = s[13] = s[18] = s[23] = "-";
var uuid = s.join("");
return uuid;
}; |
关键对象总结
将数据值插入到到指定位置的回写单元格中:
setWriteBackCellData(row, column, value, displayValue);根据事件参数,获取到当前在编辑单元格的位置:editingCellPosition: {row, column}。
- 通过 SQL 语句获取插入值,请参考:宏代码中如何执行SQL语句。
...