Sunday, November 21, 2010

Quarter Validation when input is given date

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_accp   FOR  lv_buper  OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.



ranges: r_faedn   FOR dfkkop-faedn.




DATA: lv_year(4) TYPE n.
  CLEAR r_faedn.
  r_faedn-sign = 'I'.
  r_faedn-option = 'EQ'.
  CASE s_accp-low+4(2).
    WHEN '01' OR '02' OR '03'.
*      lv_year = s_accp-low(4).
*      lv_year = lv_year - 1.
*      CONCATENATE lv_year '1001'
*      INTO r_faedn-low.
*      CONCATENATE lv_year '1231'
*      INTO r_faedn-high.
      CONCATENATE s_accp-low(4)  '0101'
      INTO r_faedn-low.
      CONCATENATE s_accp-low(4) '0331'
      INTO r_faedn-high.
      APPEND r_faedn.
      CLEAR : r_faedn-low,
              r_faedn-high.
    WHEN '04' OR '05' OR '06'.
      CONCATENATE s_accp-low(4) '0401'
      INTO r_faedn-low.
      CONCATENATE s_accp-low(4) '0630'
      INTO r_faedn-high.
      APPEND r_faedn.
      CLEAR : r_faedn-low,
              r_faedn-high.
    WHEN '07' OR '08' OR '09'.
      CONCATENATE s_accp-low(4) '0701'
      INTO r_faedn-low.
      CONCATENATE s_accp-low(4) '0930'
      INTO r_faedn-high.
      APPEND r_faedn.
      CLEAR : r_faedn-low,
              r_faedn-high.
    WHEN '10' OR '11' OR '12'.
      CONCATENATE s_accp-low(4) '1001'
      INTO r_faedn-low.
      CONCATENATE s_accp-low(4) '1231'
      INTO r_faedn-high.
      APPEND r_faedn.
      CLEAR : r_faedn-low,
              r_faedn-high.
  ENDCASE.
  CASE s_accp-high+4(2).
    WHEN '01' OR '03' OR '05' OR '07' OR
         '08' OR '10' OR '12'.
      CONCATENATE s_accp-high(6) '31'
              INTO gv_sett_dt.
    WHEN '04' OR '06' OR '09' OR '11'.
      CONCATENATE s_accp-high(6) '30'
              INTO gv_sett_dt.
    WHEN '02'.
      CONCATENATE s_accp-high(6) '28'
              INTO gv_sett_dt.
  ENDCASE.

No comments:

Post a Comment