Make your own free website on Tripod.com
 

SAP ABAP Programming, Functional and Basis Components Books


Question : Subject : Dynamic structure

hello everyone,

does anyone know if it's possible to declare a dynamic structure?
my program receives a record-field of 1000, and I need to overlay this record with a structure that needs to be dynamic.
any advice is welcome.

Kind regards,
 

Reply : Subject : Dynamic structure

Hi,

if your structure changes from one defined structure to another one, you can try this:
ASSIGN yourfield CASTING TYPE yourstructure
or CREATE DATA yourdata TYPE yourstructure.
If your structure has to be really dynamic - like ALV - you can use the class CL_ALV_TABLE_CREATE.

Hope this helps,
 

Reply : Subject : Dynamic structure

It has to be really dynamic.

can you tell me how to use this class?
I've never programmed object-oriented ABAP before,
and don't know much about it...

Is there documentation, help files?

thx in advance,
 

Reply : Subject : Dynamic structure

Hi,

try this example:

=====================================

REPORT zmaschl_create_data_dynamic .

TYPE-POOLS: slis.

DATA: it_fcat TYPE slis_t_fieldcat_alv,
      is_fcat LIKE LINE OF it_fcat.
DATA: it_fieldcat TYPE lvc_t_fcat,
      is_fieldcat LIKE LINE OF it_fieldcat.
DATA: new_table TYPE REF TO data.
DATA: new_line  TYPE REF TO data.
FIELD-SYMBOLS: <l_table> TYPE ANY TABLE,
               <l_line>  TYPE ANY,
               <l_field> TYPE ANY.

* Build fieldcat
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
       EXPORTING
           i_structure_name = 'SYST'
       CHANGING
           ct_fieldcat      = it_fcat[].
   LOOP AT it_fcat INTO is_fcat WHERE NOT reptext_ddic IS initial.
        MOVE-CORRESPONDING is_fcat TO is_fieldcat.
        is_fieldcat-fieldname = is_fcat-fieldname.
        is_fieldcat-ref_field = is_fcat-fieldname.
        is_fieldcat-ref_table = is_fcat-ref_tabname.
        APPEND is_fieldcat TO it_fieldcat.
   ENDLOOP.

* Create a new Table
CALL METHOD cl_alv_table_create=>create_dynamic_table
       EXPORTING
        it_fieldcatalog = it_fieldcat
       IMPORTING
        ep_table        = new_table.

* Create a new Line with the same structure of the table.
ASSIGN new_table->* TO <l_table>.
CREATE DATA new_line LIKE LINE OF <l_table>.
ASSIGN new_line->* TO <l_line>.

* Test it...
   DO 30 TIMES.
      ASSIGN COMPONENT 'SUBRC' OF STRUCTURE <l_line> TO <l_field>.
      <l_field> = sy-index.
      INSERT <l_line> INTO TABLE <l_table>.
   ENDDO.

   LOOP AT <l_table> ASSIGNING <l_line>.
      ASSIGN COMPONENT 'SUBRC' OF STRUCTURE <l_line> TO <l_field>.
      WRITE <l_field>.
   ENDLOOP.
 

Reply : Subject : Dynamic structure

perfect,

thank you,

Return to :-
SAP Hints and Tips on Configuration and ABAP/4 Programming