首页 > 其他分享 >sap.fe.templates.ListReport.ExtensionAPI 的使用场合介绍

sap.fe.templates.ListReport.ExtensionAPI 的使用场合介绍

时间:2023-12-02 19:45:42浏览次数:53  
标签:templates fe Report ExtensionAPI sap ListReport

SAP Fiori Elements是一种用于快速开发SAP Fiori应用程序的框架,它通过提供预定义的UI元素和模板,简化了开发过程。其中,sap.fe.templates.ListReport.ExtensionAPI是SAP Fiori Elements框架中的一个重要组件,用于扩展List Report应用程序的功能。

SAP Fiori Elements概述

在深入探讨sap.fe.templates.ListReport.ExtensionAPI之前,让我们先了解一下SAP Fiori Elements的基本概念。SAP Fiori Elements提供了一种基于元数据的开发模型,开发人员只需配置元数据,而无需编写大量的代码。这使得开发过程更加高效,减少了开发人员的工作量。

List Report是SAP Fiori Elements中的一个常见模板,用于显示和操作数据列表。List Report页面通常包括一个数据表格,支持搜索、排序和过滤等功能。然而,有时业务需求可能超出了预定义的功能,这就需要使用sap.fe.templates.ListReport.ExtensionAPI进行扩展。

sap.fe.templates.ListReport.ExtensionAPI的使用场合

sap.fe.templates.ListReport.ExtensionAPI主要用于对List Report页面进行定制和扩展。以下是一些使用场景的示例:

  1. 添加自定义字段:

    • 场景:你的业务需要在List Report中显示额外的字段,而这些字段不在默认的元数据中。
    • 解决方案:使用ExtensionAPI可以轻松地向List Report中添加自定义字段,通过简单的配置,将新字段集成到UI中。
  2. 修改过滤条件:

    • 场景:默认的过滤条件不满足业务需求,需要根据特定规则修改过滤逻辑。
    • 解决方案:通过ExtensionAPI可以定制过滤条件,根据业务规则修改默认的过滤行为,以满足实际需求。
  3. 自定义行为按钮:

    • 场景:需要在List Report中添加自定义按钮,触发特定的业务逻辑。
    • 解决方案:ExtensionAPI支持在List Report页面上添加自定义按钮,通过配置指定按钮的行为,实现特定的业务操作。
  4. 定制表格行为:

    • 场景:需要对表格中的行进行特殊处理,例如弹出窗口或导航到其他页面。
    • 解决方案:使用ExtensionAPI可以定制表格行为,通过配置指定行为规则,实现对行的定制操作。

sap.fe.templates.ListReport.ExtensionAPI的详细使用说明

下面是一个使用 sap.fe.templates.ListReport.ExtensionAPI 的例子。

假设我们的 List Report 需要有一个按钮,点击它可以导出当前显示的数据到 Excel 文件。首先,我们需要在我们的 List Report 页面的 manifest.json 文件中,添加一个自定义的 action。代码如下:

"sap.ui5": {
  "extends": {
    "fullScreen": "sap.fe.templates.ListReport",
    "extensionAPI": "sap.fe.templates.ListReport.ExtensionAPI"
  },
  "models": {
    "@i18n": {
      "type": "sap.ui.model.resource.ResourceModel",
      "settings": {
        "bundleName": "my.app.i18n.i18n"
      }
    },
    "": {
      "dataSource": "mainService",
      "settings": {
        "defaultBindingMode": "TwoWay",
        "defaultCountMode": "Inline",
        "preload": true
      }
    }
  },
  "actions": {
    "exportToExcel": {
      "text": "{@i18n>ExportToExcel}",
      "press": ".handlers.onExportToExcel"
    }
  }
}

然后,我们需要在我们的 controller.js 文件中,实现导出到 Excel 的功能。代码如下:

sap.ui.define([
  "sap/fe/core/controllerextensions/FlexibleColumnLayout",
  "sap/fe/core/controllerextensions/Routing",
  "sap/fe/core/controllerextensions/Transaction",
  "sap/fe/core/controllerextensions/State",
  "sap/fe/core/controllerextensions/EditFlow"
], function(FlexibleColumnLayout, Routing, Transaction, State, EditFlow) {
  "use strict";

  return sap.fe.core.controllerextensions.ExtensionAPI.extend("my.app.controllers.ListReport", {
    metadata: {
      methods: {
        "onExportToExcel": {}
      }
    },

    onInit: function() {
      this.extensionAPI = this.getControllerExtension(sap.fe.core.controllerextensions.ExtensionAPI);
    },

    onExportToExcel: function() {
      var oModel = this.getView().getModel();
      var oTable = this.extensionAPI.getTable();
      var aColumns = oTable.getColumns();
      var aData = oTable.getBinding("items").getContexts().map(function(oContext) {
        return oContext.getObject();
      });

      // 这里我们简化了导出到 Excel 的代码
      // 在实际的项目中,你需要使用适合的库,如 xlsx.js,来处理这一部分
      var sCSV = aColumns.join(",") + "\n" + aData.join("\n");
      var blob = new Blob([sCSV], {type: "text/csv;charset=utf-8;"});
      var link = document.createElement("a");
      link.href = URL.createObjectURL(blob);
      link.download = "data.csv";

标签:templates,fe,Report,ExtensionAPI,sap,ListReport
From: https://www.cnblogs.com/sap-jerry/p/17872105.html

相关文章

  • sap.suite.ui.generic.template.ListReport.extensionAPI.ExtensionAPI 的使用场合介
    首先让我们了解一下什么是sap.suite.ui.generic.template.ListReport.extensionAPI.ExtensionAPI。这是一个在SAPFioriElements中用于扩展ListReport应用的API。SAPFioriElements旨在提供一种简洁,高效且一致的用户体验,而不需要开发人员编写大量的前端代码。然而,有些情......
  • 1、ImportError: cannot import name 'soft_unicode' from 'markupsafe'解决;2、Import
    不知做了啥操作,spyder和jupyter同时打不开(我印象中啥也没做),出现闪了一下后没反应,不知道报错在哪里。1、先解决spyder的报错:ImportError:cannotimportname'soft_unicode'from'markupsafe'于是我打开Anaconda,找到Spyder点击launch,报错如下:Traceback(mostrecentcallla......
  • Vulkan/FrameBuffer
    帧缓冲(Framebuffer)代表由渲染管线进行渲染的一组图像。它们影响管线的最后几个阶段:深度模板测试,颜色混合,逻辑运算,多重采样等等。一个帧缓冲对象总是附着在一个渲染通道上并且可以用在多个具有相似模板编排的渲染通道中。调用vkCreateFramebuffer创建帧缓冲对象。在VkFramebuffer......
  • 雷池 WAF(SafeLine)异常处理:Web需要绑定动态口令,系统异常崩溃
    说明问题发生在2023年12月1日,突然发现安装的雷池WAFWeb需要重新绑定动态口令,但扫描二维码无法绑定。当即检查防护站点服务正常,PVEShell访问正常。查看Issues·chaitin/SafeLine·GitHub,发现已经有人提交了Bug。[Bug]从3.13开始雷池tengine就疯狂报错了,完全不......
  • prufer
    1.prufer序列中某个编号出现的次数就等于这个编号的节点在无根树中的度数$(d)-1$2.一棵$n$个节点的无根树唯一地对应了一个长度为$n-2$的数列,数列中的每个数都在$1$到$n$的范围内。3.n个点的无向完全图的生成树的计数:$n^{n-2}$,即n个点的有标号无根树的计数4.$n$个节点的度......
  • ArrayBuffer和Blob解析
    API介绍1、ArrayBuffer:用来表示通用的、固定长度的原始二进制数据缓冲区。它不能直接读写,只能通过视图(TypedArray视图和DataView视图)来读写,视图的作用是以指定格式解读二进制数据。2、TypedArray:一个TypedArray对象描述了底层二进制数据缓冲区的类数组视图3、DataView:DataVi......
  • Caffeine Cache缓存
    SpringBoot集成CaffeineCaffeine和SpringCache依赖,使用注解方法实现缓存依赖<!--提供SpringBoot中的缓存支持--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</......
  • CF1705E Mark and Professor Koro 题解
    题意:给定一个长度为$n$$(1\len\le2e5)$的序列,每次可以把两个相等的$a_i$和$a_j$合并为一个$a_i+1$。给定$q$$(1\leq\le2e5)$次修改,每次将$a_k$修改为$l$,求每次操作后合并到无法再合并时出现的最大数。其中,$1\lea_i\le2e5$。......
  • 基于AI的架构优化:创新数据集构造法提升Feature envy坏味道检测与重构准确率
    本文分享自华为云社区《华为云基于AI实现架构坏味道重构取得业界突破,相应文章已被软工顶会FSE2023收录》,作者:华为云软件分析Lab。基于AI技术实现架构坏味道检测与重构建议是当前业界比较流行的做法,但此做法往往存在一个通病,即训练数据集的质量问题,如何构建大规模、高质量的训练......
  • 关于解决vue报错"Problems loading reference 'https://schemastore.azurewebsites.ne
    打开setting时会看到有一条三角形的警告信息 看问题描述:无法从该网站加载解决方法:打开设置,找到扩展下的json项 设置之后可以在settings.json文件中看到新增加一项 "json.schemaDownload.enable":false可以直接在界面上设置: "json.schemaDownload.enable":false......