viernes, 26 de abril de 2013

2 - Exit Variables (step_2): ultimo dia del mes


*======================================================================
** A partir de la referencia 1 obtiene el intervalo mes/año 1
*====================================================================

    WHEN 'V_CFPA'.
      CLEAR L_S_RANGE.
      CLEAR: L_MONTH_LOW, L_MONTH_HIGH, L_YEAR_LOW, L_YEAR_HIGH.
      LOOP AT i_t_var_range INTO loc_var_range WHERE vnam = '0P_FPER'.

        L_MONTH_LOW = '001'.
*L_MONTH_HIGH = LOC_VAR_RANGE-LOW+24(2).

        L_YEAR_LOW = LOC_VAR_RANGE-LOW+3(4).
*L_YEAR_HIGH = LOC_VAR_RANGE-LOW+20(4).

        CONCATENATE L_YEAR_LOW L_MONTH_LOW INTO L_S_RANGE-LOW.
*CONCATENATE L_YEAR_HIGH '0' L_MONTH_HIGH INTO L_S_RANGE-HIGH.
        L_S_RANGE-SIGN = 'I'.
        L_S_RANGE-OPT = 'E'.
        APPEND L_S_RANGE TO E_T_RANGE.
        EXIT.

      ENDLOOP.


    WHEN 'ZV_DUM'.
      CLEAR L_S_RANGE.

      data u_fecha type dats.

      LOOP AT i_t_var_range INTO loc_var_range WHERE vnam = '0PCALMON'.
        concatenate loc_var_range-low '01' into u_fecha.
      ENDLOOP.


      CALL FUNCTION 'SLS_MISC_GET_LAST_DAY_OF_MONTH'
        EXPORTING
          DAY_IN            = u_fecha
        IMPORTING
          LAST_DAY_OF_MONTH = u_fecha
        EXCEPTIONS
          DAY_IN_NOT_VALID  = 1
          OTHERS            = 2.


      L_S_RANGE-SIGN = 'I'.
      L_S_RANGE-OPT = 'EQ'.
      L_S_RANGE-LOW = u_fecha.
      APPEND L_S_RANGE TO E_T_RANGE.

No hay comentarios: