页面树结构
转至元数据结尾
转至元数据起始

(本文档仅供参考)

需求说明

 

   由于电子表格删除行的功能,只能是基于主键单元格去进行删除,在其他非主键单元格右键删除行是无法找到对应的记录的,

           而在有的情况下,希望可以点击其他的单元格可以实现删除一整行数据,那么这个时候可以通过以下宏代码来实现。





注意:

1、该代码不能与点击任一单元格添加数据的宏(电子表格回写点击任一单元格插入整行放在一起,需要分别创建2个宏,否则可能会出现数据无法正常删除的问题。

2、该代码实现的删除宏使用时,是通过单元格的右键菜单命令执行的。

3、添加行的宏和删除行的宏不能兼容,需要根据实际应用场景进行调整。



设置方法

  1. 在电子表格设计器(Microsoft Office Excel)中,创建 回写电子表格。
  2. 在浏览器的资源定制节点下,选中电子表格,右键选择 编辑宏 进入报表宏界面。
  3. 在报表宏界面新建客户端模块,在弹出的新建模块对话框中,选择对象为 spreadsheetReport、事件为onRenderReport,并把下面宏代码复制到代码编辑区域。


宏类型

宏类型

对象

事件

ClientSide

spreadsheetReport

onRenderReport

function main(spreadsheetReport) {
    //debugger;
    var spreadsheetReportWriteBack = spreadsheetReport.spreadsheetReportWriteBack;
    
    spreadsheetReportWriteBack.doInsertRowClick_old = spreadsheetReportWriteBack.doInsertRowClick;
    spreadsheetReportWriteBack.doInsertRowClick = function(e) {
        var currentEditingPosition = this.currentEditingPosition;
        var idx = currentEditingPosition.indexOf(':') + 1;
        this.currentEditingPosition = currentEditingPosition.substring(0, idx) + 1; //这个1是表示第二列的意思,从0开始计数
        //若报表中第一个字段放置在C列,则应该+2,若第一个字段放置在D列,则应该+3
        spreadsheetReportWriteBack.doInsertRowClick_old(e);
    }
    //debugger;
    spreadsheetReportWriteBack.doRemoveRowClick_old = spreadsheetReportWriteBack.doRemoveRowClick;
    spreadsheetReportWriteBack.doRemoveRowClick = function(e) {
        var currentEditingPosition = this.currentEditingPosition;
        var idx = currentEditingPosition.indexOf(':') + 1;
        this.currentEditingPosition = currentEditingPosition.substring(0, idx) + 1; //这个1是表示第二列的意思,从0开始计数
        //若报表中第一个字段放置在C列,则应该+2,若第一个字段放置在D列,则应该+3
        spreadsheetReportWriteBack.doRemoveRowClick_old(e);
    }
}

Viewtracker License Missing

There is a problem with the license of the Viewtracker addon. Please check if you have a valid license.

授权码细节

  • 无标签

评论

  1. 王明星 发表:

    右键删除,不是使用回写按钮栏的删除按钮