【sap Fiori CDS -RAP 主明细显示】

主CDS view

bash 复制代码
@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'ZCSC_Carrier'
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.usageType:{
    serviceQuality: #X,
    sizeCategory: #S,
    dataClass: #MIXED
}

@UI.headerInfo: {
    typeName: 'Connection',
    typeNamePlural: 'Connection'
}
@UI.presentationVariant: [{
groupBy: [ 'AirportFromId' ],
sortOrder: [{by: 'AirportFromId'}]
}]
define view entity ZSC3_DV_CONNECTION
  as select from /dmo/connection as Connection
  association [1..*] to ZSC3_DV_FLIGHT_R as _Flight on  $projection.ConnectionId = _Flight.ConnectionId
                                                    and $projection.CarrierId    = _Flight.CarrierId
  association [1] to ZSC3_DV_CARRIER_R as _Carrier on $projection.CarrierId = _Carrier.CarrierId                                              
{
      @UI.facet: [{ purpose: #STANDARD, type: #IDENTIFICATION_REFERENCE, position:10, label: 'Connection Detail' },
      { id:'Flight', purpose: #STANDARD, type: #LINEITEM_REFERENCE, position:20, label: 'Flight Detail',targetElement: '_Flight' }]
      @UI.lineItem: [{ position: 10, importance: #HIGH, type: #STANDARD }]

      @UI.identification: [{ position: 10 , label: 'Carrier ID'}]
      @ObjectModel.text.association: '_Carrier'
  key carrier_id      as CarrierId,
      @UI.lineItem: [{ position: 20, importance: #HIGH, type: #STANDARD }]
      @UI.identification: [{ position: 20 }]
  key connection_id   as ConnectionId,
      @UI.selectionField: [{ position: 10, element: 'AirportFromId'}]
      @UI.lineItem: [{ position: 30, importance: #HIGH, type: #STANDARD }]
      @UI.identification: [{ position: 30 }]

      airport_from_id as AirportFromId,
      @UI.lineItem: [{ position: 40, importance: #HIGH, type: #STANDARD }]
      @UI.selectionField: [{ position: 20, element: 'AirportToId'}]
      @UI.identification: [{ position: 40 }]
      airport_to_id   as AirportToId,
      @UI.lineItem: [{ position: 50, importance: #HIGH, type: #STANDARD, label: 'Departure Time' }]
      @UI.identification: [{ position: 50 }]
      departure_time  as DepartureTime,
      @UI.lineItem: [{ position: 60, importance: #HIGH, type: #STANDARD, label: 'Arrival Time' }]
      @UI.identification: [{ position: 60 }]
      arrival_time    as ArrivalTime,
      //@Semantics.quantity.unitOfMeasure: 'DistanceUnit'
      @UI.identification: [{ position: 70 }]
      distance        as Distance,
      @UI.identification: [{ position: 80 }]
      distance_unit   as DistanceUnit,
      _Flight,
      _Carrier
}

Service

bash 复制代码
@EndUserText.label: 'SD_CONNECTION'
define service ZSC3_SD_CONNECTION {
  expose ZSC3_DV_CONNECTION;
  expose ZSC3_DV_FLIGHT_R;
  expose ZSC3_DV_CARRIER_R;
}

Binding

注意:需要发布

明细View

bash 复制代码
@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'DV_FLIGHT_R'
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.usageType:{
    serviceQuality: #X,
    sizeCategory: #S,
    dataClass: #MIXED
}
define view entity ZSC3_DV_FLIGHT_R as select from /dmo/flight 
association [1] to ZSC3_DV_CARRIER_R as _Carrier on $projection.CarrierId = _Carrier.CarrierId  
{
    @UI.lineItem: [{position: 10}]
    @ObjectModel.text.association: '_Carrier'
    key carrier_id as CarrierId,
     @UI.lineItem: [{position: 20}]
    key connection_id as ConnectionId,
     @UI.lineItem: [{position: 30}]
    key flight_date as FlightDate,
    @Semantics.amount.currencyCode: 'CurrencyCode'
     @UI.lineItem: [{position: 40}]
    price as Price,
     @UI.lineItem: [{position: 50}]
    currency_code as CurrencyCode,
     @UI.lineItem: [{position: 60}]
    plane_type_id as PlaneTypeId,
     @UI.lineItem: [{position: 70}]
    seats_max as SeatsMax,
     @UI.lineItem: [{position: 80}]
    seats_occupied as SeatsOccupied,
    _Carrier
}

文本View --ID 使用文本显示

bash 复制代码
@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'DV_CARRIER_R'
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.usageType:{
    serviceQuality: #X,
    sizeCategory: #S,
    dataClass: #MIXED
}
define view entity ZSC3_DV_CARRIER_R as select from /dmo/carrier
{
    key carrier_id as CarrierId,
    @Semantics.text: true
    name as Name,
    currency_code as CurrencyCode
}

效果

点Go,

点击需要的行进入明细,如下图

相关推荐
一直跑2 个月前
UKB数据库/RAP平台批量下载数据教程
数据库·rap·ukb
你好coder7 个月前
VSCode连接SAP ABAP开发环境
ide·vscode·编辑器·sap·abap·cds
聆听-往昔1 年前
SAP Webide系列(7)- 优化FreeStyle新建项目预设模板
前端·sap·开发工具·fiori·sap ui5·webide
SAP-nkGavin2 年前
SAPUI5基础知识24 - 如何向manifest.json中添加模型(小结)
sap·sapui5·fiori
SAP-nkGavin2 年前
SAPUI5基础知识18 - 自定义CSS和主题色
css·sap·sapui5·fiori
SAP-nkGavin2 年前
SAPUI5基础知识20 - 对话框和碎片(Dialogs and Fragments)
sap·sapui5·fiori
bigbearxyz2 年前
SPA Fiori开发实战课程(一)
javascript·sap·fiori
SAP-nkGavin2 年前
SAPUI5基础知识11 - 组件配置(Component)
sap·sapui5·fiori
SAP-nkGavin2 年前
SAPUI5基础知识12 - 应用程序描述符(manifest.json)
sap·sapui5·fiori·manifest.json