Loading

CDS标准视图:日期迁移视图 I_ShiftedCalendarDate

视图名称:I_ShiftedCalendarDate

视图类型:带参数的视图

时间期间偏移量单位(P_TimePeriodOffsetUnit):
D代表天
W代表周
M代表月
Q代表季
Y代表年

期间偏移量持续时间(P_TimePeriodOffsetDuration):
对应数量

** 视图代码:

点击查看代码
@AbapCatalog: {
    sqlViewName: 'IFISCALDATE',
    compiler.compareFilter: true,
    preserveKey: true
}
@Metadata: {
    ignorePropagatedAnnotations: true
}
@ObjectModel.usageType: {
    serviceQuality: #D,
    sizeCategory: #L,
    dataClass: #CUSTOMIZING
}
@ClientHandling: {
    algorithm: #SESSION_VARIABLE
}
@AccessControl: {
    authorizationCheck: #NOT_REQUIRED
}
@VDM: {
    viewType: #COMPOSITE
}
@EndUserText: {
    label: 'Shifted Calendar Date'
}
define view I_ShiftedCalendarDate
  with parameters
    P_TimePeriodOffsetDuration : fins_tper_offset_duratn,
    P_TimePeriodOffsetUnit     : fins_tperiod_offset_unit

  as select from I_CalendarDate
{
  key CalendarDate,

      @EndUserText.label: 'Shifted Calendar Date'
      cast(
        case $parameters.P_TimePeriodOffsetUnit
            when 'D' then dats_add_days   (CalendarDate, :P_TimePeriodOffsetDuration      ,'FAIL') // Day
            when 'W' then dats_add_days   (CalendarDate, :P_TimePeriodOffsetDuration*7    ,'FAIL') // Week
            when 'M' then dats_add_months (CalendarDate, :P_TimePeriodOffsetDuration      ,'FAIL') // Month
            when 'Q' then dats_add_months (CalendarDate, :P_TimePeriodOffsetDuration*3    ,'FAIL') // Quarter
            when 'Y' then dats_add_months (CalendarDate, :P_TimePeriodOffsetDuration*12   ,'FAIL') // Year
            else ''
        end as calendardate)  as ShiftedCalendarDate

视图结构

字段名称 技术名称
日历日期 CALENDARDATE
日历日期 SHIFTEDCALENDARDATE

举例:2024年12月7日10天后的日期


posted @ 2024-12-27 09:50  观兴  阅读(3)  评论(0编辑  收藏  举报