Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 8573

Re: Insert missing dates in a date range

$
0
0

Thanks all.

 

I used the following to solve the problem:

 

LOOP AT gt_output_main INTO gw_output_main WHERE budat LE s_budat-high.

     gv_budat_difference = gw_output_main-budat - gv_budat_old.

 

*   get the table index

     gv_tabix = sy-tabix.

 

*   check for any missing dates gap at beginning the user date selection

     gv_budat_early_gap = gw_output_main-budat - s_budat-low.

     READ TABLE gt_output_main INTO gw_output_main3 WITH KEY budat = s_budat-low.

     IF sy-subrc <> 0.

       IF gv_budat_early_gap > 1.

         gv_budat_add_from = s_budat-low.

         DO gv_budat_early_gap TIMES.

*       add from s_budat-low

          

             gw_output_main2-budat = gv_budat_add_from.

             gw_output_main2-werks = p_werks.

          

             APPEND gw_output_main2 to gt_output_main.

             CLEAR gw_output_main2.

          

           add 1 to gv_budat_add_from.

         ENDDO.

         CLEAR gv_budat_add_from.

         CLEAR gv_budat_early_gap.

       ENDIF.

       CLEAR gw_output_main3.

     ENDIF.


*   check for any missing dates gap in between the user date selection

     IF gv_tabix > 1 AND gv_budat_difference > 1.

*     add missing dates gap

       gv_budat_add_from = gv_budat_old.

*     add until the date shown from zmm_ul_ps_ullage

       gv_budat_difference = gv_budat_difference - 1.

       DO gv_budat_difference TIMES.

 

         add 1 to gv_budat_add_from.

     

           gw_output_main2-budat = gv_budat_add_from.

           gw_output_main2-werks = p_werks.

         

           APPEND gw_output_main2 to gt_output_main.

           CLEAR gw_output_main2.

        

 

       ENDDO.

       CLEAR gv_budat_add_from.

 

     ENDIF.

 

     SORT gt_output_main by budat ASCENDING.

     gv_budat_old = gw_output_main-budat.

     CLEAR gw_output_main.

     CLEAR gv_budat_difference.

   ENDLOOP.




* check for any missing dates gap at the end of user date selection

   DESCRIBE TABLE gt_output_main LINES gv_budat_end.

 

   READ TABLE gt_output_main INTO gw_output_main INDEX gv_budat_end.

   IF gw_output_main-budat <> s_budat-high.

     gv_budat_difference = s_budat-high - gw_output_main-budat.

     gv_budat_add_from   = gw_output_main-budat.

     DO gv_budat_difference TIMES.

 

       add 1 to gv_budat_add_from.

      

         gw_output_main2-budat = gv_budat_add_from.

         gw_output_main2-werks = p_werks.

       

         APPEND gw_output_main2 to gt_output_main.

         CLEAR gw_output_main2.

      

     SORT gt_output_main by budat ASCENDING.

     ENDDO.

   CLEAR gv_budat_add_from.

   ENDIF.

   CLEAR gw_output_main.


Viewing all articles
Browse latest Browse all 8573

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>