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

Re: Internal table treatment

$
0
0

Hi,


Something like this


PROGRAM zjbtst4 .

 

CLASS zcl_pattern_range DEFINITION

  FINAL

  CREATE PRIVATE .

 

  PUBLIC SECTION.

    TYPES: rt_patterns TYPE RANGE OF string .

    TYPES: rs_pattern TYPE LINE OF rt_patterns .


    CLASS-METHODS get_instance

      RETURNING value(ro_instance) TYPE REF TO zcl_pattern_range.

 

    METHODS:

     get_exclude_rng

       RETURNING value(rt_exclude_patterns) TYPE rt_patterns ,

     get_include_rng

       RETURNING value(rt_include_patterns) TYPE rt_patterns .

 

  PROTECTED SECTION.

 

  PRIVATE SECTION.

    CLASS-DATA mo_instance TYPE REF TO zcl_pattern_range.

 

    METHODS get_range

        IMPORTING i_sign TYPE c

        RETURNING value(rt_patterns) TYPE rt_patterns .

 

ENDCLASS.                 

 

CLASS zcl_pattern_range IMPLEMENTATION.

 

  METHOD get_instance.

    IF mo_instance IS NOT BOUND .

      CREATE OBJECT mo_instance .

    ENDIF .

    ro_instance = mo_instance .

  ENDMETHOD.                   

 

  METHOD get_range.

    DATA: ls_pattern TYPE rs_pattern .

    DATA: l_number TYPE i .

 

    REFRESH rt_patterns .

    ls_pattern-sign = i_sign .

    ls_pattern-option = 'CP' .

    WHILE l_number LE 9 .

      ls_pattern-low = |{ l_number }| && '*' .

      APPEND ls_pattern TO rt_patterns .

      ADD 1 TO l_number.

    ENDWHILE .

  ENDMETHOD.                   

 

  METHOD get_exclude_rng .

    refresh rt_exclude_patterns .

    rt_exclude_patterns = me->get_range( 'E' ).

  ENDMETHOD .                  

 

  METHOD get_include_rng .

    refresh rt_include_patterns .

    rt_include_patterns = me->get_range( 'I' ).

  ENDMETHOD .                   

 

ENDCLASS.                  

 

TYPES: BEGIN OF ts_string,

        string TYPE string,

      END OF ts_string .

DATA: gs_string TYPE ts_string .

DATA: gt_string TYPE STANDARD TABLE OF ts_string .

 

START-OF-SELECTION .

 

  REFRESH gt_string .

 

  gs_string-string = 'a12344'. APPEND gs_string TO gt_string.

  gs_string-string = '1234vb'. APPEND gs_string TO gt_string.

  gs_string-string = 'c42456d44'. APPEND gs_string TO gt_string .

 

  DELETE gt_string WHERE

    string IN zcl_pattern_range=>get_instance( )->get_exclude_rng( ).

  BREAK-POINT .

 

  REFRESH gt_string .

 

  gs_string-string = 'a12344'. APPEND gs_string TO gt_string.

  gs_string-string = '1234vb'. APPEND gs_string TO gt_string.

  gs_string-string = 'c42456d44'. APPEND gs_string TO gt_string .

 

  DELETE gt_string WHERE

    string NOT IN zcl_pattern_range=>get_instance( )->get_include_rng( ).

  BREAK-POINT.

 

cheers,

Janis


Viewing all articles
Browse latest Browse all 8594

Trending Articles



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