本帖最后由 Lynn.Dou 于 2025-3-20 14:00 编辑
您好,
点击预览按钮时会实时渲染一个预览页面,所以需要在每次点击预览页面后 获取最新的reportWorksheet 才能应用showZeros属性。
您可以通过重写reportSheetDataEntryPreview命令来实现需求,示例代码如下:
- let designerConfig = JSON.parse(JSON.stringify(GC.Spread.Sheets.Designer.DefaultConfig));
- // 获取 reportSheetDataEntryPreview 命令
- let command = GC.Spread.Sheets.Designer.getCommand("reportSheetDataEntryPreview");
- // // 保存原始的 execute 方法
- let oldExecute = command.execute;
- // 重写 execute 方法
- command.execute = function (context) {
- console.log("开始渲染"); // 在渲染开始前执行自定义逻辑
- //console.log(context);
- oldExecute.apply(this, arguments); // 调用原始的 execute 方法
- let spread = context.getWorkbook();
- let reportWorksheet = spread.getActiveSheetTab().reportWorksheet;
- reportWorksheet.options.showZeros = false;
- };
- // 将修改后的指令重新注册到 designerConfig 中
- designerConfig.commandMap = {
- reportSheetDataEntryPreview: command,
- };
- designer.setConfig(designerConfig);
复制代码 另外,考虑到“零值显示为空”在报表业务中的实际意义,已将此问题作为需求反馈至产品经理,比如是否在工具栏中直接增加此属性便于用户选择。(SJS-28724) |