ABAP Select data from SAP table CKML_S_REORG_ALV_ITEM into internal table

Get Example source ABAP code based on a different SAP table
  

Below is a number of ABAP code snippets to demonstrate how to select data from SAP CKML_S_REORG_ALV_ITEM table and store it within an internal table, including using the newer @DATA inline declaration methods. It also shows you various ways to process this data using ABAP work area, inline declaration or field symbols including executing all the relevant CONVERSION_EXIT routines specific to CKML_S_REORG_ALV_ITEM. See here for more generic Select statement tips.

Sometimes data within SAP is stored within the database table in a different format to what it is displayed to the user. These input/output conversation FM routines are what translates the data between the two formats.

There is also a full declaration of the CKML_S_REORG_ALV_ITEM table where each field has a char/string type for you to simply copy and paste. This allows you to use processing that is only available to these field types such as the CONCATENATE statement.

DATA: IT_CKML_S_REORG_ALV_ITEM TYPE STANDARD TABLE OF CKML_S_REORG_ALV_ITEM,
      WA_CKML_S_REORG_ALV_ITEM TYPE CKML_S_REORG_ALV_ITEM,
      GD_STR TYPE STRING.

DATA: lo_typedescr type REF TO cl_abap_typedescr.
DATA: lv_fieldname type fieldname.

FIELD-SYMBOLS: <FIELD> TYPE any.
FIELD-SYMBOLS: <CKML_S_REORG_ALV_ITEM> TYPE CKML_S_REORG_ALV_ITEM.

*Process all fields in table header/work area as string values
  PERFORM process_as_string_field_values CHANGING wa_CKML_S_REORG_ALV_ITEM.

SELECT *
*restrict ABAP select to first 10 rows
 UP TO 10 ROWS      
  FROM CKML_S_REORG_ALV_ITEM
  INTO TABLE IT_CKML_S_REORG_ALV_ITEM.

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM CKML_S_REORG_ALV_ITEM
*  INTO TABLE @DATA(IT_CKML_S_REORG_ALV_ITEM2).
*--Further methods of using ABAP code to  select data from SAP database tables

*You can also declare the header/work area using the in-line DATA declaration method
READ TABLE IT_CKML_S_REORG_ALV_ITEM INDEX 1 INTO DATA(WA_CKML_S_REORG_ALV_ITEM2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_CKML_S_REORG_ALV_ITEM ASSIGNING <CKML_S_REORG_ALV_ITEM>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<CKML_S_REORG_ALV_ITEM>-TABNAME = 1.
<CKML_S_REORG_ALV_ITEM>-KALNR = 1.
<CKML_S_REORG_ALV_ITEM>-BDATJ = 1.
<CKML_S_REORG_ALV_ITEM>-POPER = 1.
<CKML_S_REORG_ALV_ITEM>-UNTPER = 1.
ENDLOOP.

LOOP AT IT_CKML_S_REORG_ALV_ITEM INTO WA_CKML_S_REORG_ALV_ITEM.
*Write horizonal line to screen report.
  WRITE:/ sy-uline.

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_CKML_S_REORG_ALV_ITEM-KZ_ABGER, sy-vline,
WA_CKML_S_REORG_ALV_ITEM-XKONCHK, sy-vline,
WA_CKML_S_REORG_ALV_ITEM-STATUS, sy-vline,
WA_CKML_S_REORG_ALV_ITEM-MEINS, sy-vline,
WA_CKML_S_REORG_ALV_ITEM-SAPRL, sy-vline,
WA_CKML_S_REORG_ALV_ITEM-XERROR, sy-vline.
ENDLOOP. *Add any further fields from structure WA_CKML_S_REORG_ALV_ITEM you want to display... WRITE:/ sy-uline. * Aternatively use generic code to Write field values (and NAME) to screen report DO. ASSIGN COMPONENT sy-index OF STRUCTURE wa_CKML_S_REORG_ALV_ITEM TO <field>. IF sy-subrc <> 0. EXIT. ENDIF. WRITE:/ 'Field Value', <field>, sy-vline. gd_str = <field> . lo_typedescr ?= CL_ABAP_DATADESCR=>DESCRIBE_BY_DATA( <field> ). lv_fieldname = lo_typedescr->GET_RELATIVE_NAME( ). WRITE:/ 'Field Name', lv_fieldname. ENDDO. *Redo loop but convert all fields from internal to out value LOOP AT IT_CKML_S_REORG_ALV_ITEM INTO WA_CKML_S_REORG_ALV_ITEM. *Write horizonal line to screen report. WRITE:/ sy-uline. *Convert all fields to display/output versions using conversion routines PERFORM convert_all_field_values CHANGING wa_EKKO. ENDLOOP. *&---------------------------------------------------------------------* *& Form convert_all_field_values *&---------------------------------------------------------------------* FORM convert_all_field_values CHANGING p_EKKO LIKE wa_EKKO. DATA: ld_input(1000) TYPE c, ld_output(1000) TYPE C.

*Conversion exit GJAHR, internal->external for field BDATJ CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_CKML_S_REORG_ALV_ITEM-BDATJ IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CKML_S_REORG_ALV_ITEM-BDATJ.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field MEINS CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CKML_S_REORG_ALV_ITEM-MEINS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CKML_S_REORG_ALV_ITEM-MEINS.
WRITE:/ 'New Value:', ld_input.

*Conversion exit GJAHR, internal->external for field GJAHR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_CKML_S_REORG_ALV_ITEM-GJAHR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CKML_S_REORG_ALV_ITEM-GJAHR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field MEINH CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CKML_S_REORG_ALV_ITEM-MEINH IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CKML_S_REORG_ALV_ITEM-MEINH.
WRITE:/ 'New Value:', ld_input.

*Conversion exit MATN1, internal->external for field MATNR CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_CKML_S_REORG_ALV_ITEM-MATNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CKML_S_REORG_ALV_ITEM-MATNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field STLAL_PC CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CKML_S_REORG_ALV_ITEM-STLAL_PC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CKML_S_REORG_ALV_ITEM-STLAL_PC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field MEINS_PC CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CKML_S_REORG_ALV_ITEM-MEINS_PC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CKML_S_REORG_ALV_ITEM-MEINS_PC.
WRITE:/ 'New Value:', ld_input.
ENDFORM. *&---------------------------------------------------------------------* *& Form process_as_string_field_values *&---------------------------------------------------------------------* FORM process_as_string_field_values CHANGING p_EKKO LIKE wa_EKKO. TYPES: BEGIN OF T_CKML_S_REORG_ALV_ITEM_STR,
TABNAME TYPE STRING,
KALNR TYPE STRING,
BDATJ TYPE STRING,
POPER TYPE STRING,
UNTPER TYPE STRING,
KZ_ABGER TYPE STRING,
XKONCHK TYPE STRING,
STATUS TYPE STRING,
MEINS TYPE STRING,
SAPRL TYPE STRING,
XERROR TYPE STRING,
CD_OK TYPE STRING,
XNEWCCSNEXTMON TYPE STRING,
XMYMP TYPE STRING,
LBKUM TYPE STRING,
UMKUMO TYPE STRING,
ABKUMO TYPE STRING,
ZUKUMO TYPE STRING,
SZKUMO TYPE STRING,
VPKUMO TYPE STRING,
VNKUMO TYPE STRING,
EKKUMO TYPE STRING,
PBKUMO TYPE STRING,
PBPOPO TYPE STRING,
VPPOPO TYPE STRING,
UMKUMA TYPE STRING,
ZUKUMA TYPE STRING,
EKKUMA TYPE STRING,
PBKUMA TYPE STRING,
CURTP TYPE STRING,
PEINH TYPE STRING,
VPRSV TYPE STRING,
STPRS TYPE STRING,
PVPRS TYPE STRING,
WAERS TYPE STRING,
SALK3 TYPE STRING,
SALKV TYPE STRING,
ZUUMB_O TYPE STRING,
ABPRD_O TYPE STRING,
ABKDM_O TYPE STRING,
ZUPRD_O TYPE STRING,
ZUKDM_O TYPE STRING,
VPPRD_O TYPE STRING,
VPKDM_O TYPE STRING,
VPPBPRD_O TYPE STRING,
VPPBKDM_O TYPE STRING,
VNPRD_O TYPE STRING,
VNKDM_O TYPE STRING,
EKPRD_O TYPE STRING,
EKKDM_O TYPE STRING,
PBPRD_O TYPE STRING,
PBKDM_O TYPE STRING,
VNPRD_EA TYPE STRING,
VNKDM_EA TYPE STRING,
EBPRD_EA TYPE STRING,
EBKDM_EA TYPE STRING,
ZUUMB_A TYPE STRING,
ZUPRD_A TYPE STRING,
ZUKDM_A TYPE STRING,
EKPRD_A TYPE STRING,
EKKDM_A TYPE STRING,
PBPRD_A TYPE STRING,
PBKDM_A TYPE STRING,
ABPRD_MO TYPE STRING,
ABKDM_MO TYPE STRING,
ZUPRD_MO TYPE STRING,
ZUKDM_MO TYPE STRING,
VNPRD_MA TYPE STRING,
VNKDM_MA TYPE STRING,
EBPRD_MA TYPE STRING,
EBKDM_MA TYPE STRING,
ABSALK3 TYPE STRING,
ZUKDM_OST TYPE STRING,
EKKDM_OST TYPE STRING,
PBKDM_OST TYPE STRING,
VPKDM_OST TYPE STRING,
VPPBKDM_OST TYPE STRING,
VNKDM_OST TYPE STRING,
MARKUP_O TYPE STRING,
VKSAL TYPE STRING,
MGTYP TYPE STRING,
GJAHR TYPE STRING,
PERIO TYPE STRING,
KALNR_IN TYPE STRING,
KALNR_BAL TYPE STRING,
KALNR_OUT TYPE STRING,
OTYP_IN TYPE STRING,
OTYP_OUT TYPE STRING,
MEINH TYPE STRING,
OUT_MENGE TYPE STRING,
MISCH_VERH TYPE STRING,
BWKEY TYPE STRING,
WERKS TYPE STRING,
MATNR TYPE STRING,
BWTAR TYPE STRING,
LAST_PDAY TYPE STRING,
STLAN_PC TYPE STRING,
STLAL_PC TYPE STRING,
LOSGR_PC TYPE STRING,
ALDAT_PC TYPE STRING,
MEINS_PC TYPE STRING,
BWVAR_PC TYPE STRING,
BWDAT_PC TYPE STRING,
PLSCN_PC TYPE STRING,
STATISTIC_PC TYPE STRING,
KALNR_INMAT TYPE STRING,
KALNR_PRZ TYPE STRING,
OTYP_INMAT TYPE STRING,
OTYP_PRZ TYPE STRING,
IN_MENGE TYPE STRING,
IN_MENGE_FIX TYPE STRING,
TOGBTR TYPE STRING,
TOFBTR TYPE STRING,
TOGBTRD TYPE STRING,
TOE TYPE STRING,
BWSTRAT TYPE STRING,
NO_SETTLE TYPE STRING,
CATEG TYPE STRING,
PTYP TYPE STRING,
BVALT TYPE STRING,
ESTPRD TYPE STRING,
ESTKDM TYPE STRING,
MSTPRD TYPE STRING,
MSTKDM TYPE STRING,END OF T_EKKO_STR. DATA: WA_CKML_S_REORG_ALV_ITEM_STR type T_EKKO_STR. DATA: ld_text TYPE string. LOOP AT IT_EKKO INTO WA_EKKO. MOVE-CORRESPONDING wa_EKKO TO WA_EKKO_STR. CONCATENATE: sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-TABNAME sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-KALNR sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-BDATJ sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-POPER sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-UNTPER sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-KZ_ABGER sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-XKONCHK sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-STATUS sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-MEINS sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-SAPRL sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-XERROR sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-CD_OK sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-XNEWCCSNEXTMON sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-XMYMP sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-LBKUM sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-UMKUMO sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-ABKUMO sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-ZUKUMO sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-SZKUMO sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-VPKUMO sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-VNKUMO sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-EKKUMO sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-PBKUMO sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-PBPOPO sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-VPPOPO sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-UMKUMA sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-ZUKUMA sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-EKKUMA sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-PBKUMA sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-CURTP sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-PEINH sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-VPRSV sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-STPRS sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-PVPRS sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-WAERS sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-SALK3 sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-SALKV sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-ZUUMB_O sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-ABPRD_O sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-ABKDM_O sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-ZUPRD_O sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-ZUKDM_O sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-VPPRD_O sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-VPKDM_O sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-VPPBPRD_O sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-VPPBKDM_O sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-VNPRD_O sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-VNKDM_O sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-EKPRD_O sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-EKKDM_O sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-PBPRD_O sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-PBKDM_O sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-VNPRD_EA sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-VNKDM_EA sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-EBPRD_EA sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-EBKDM_EA sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-ZUUMB_A sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-ZUPRD_A sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-ZUKDM_A sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-EKPRD_A sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-EKKDM_A sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-PBPRD_A sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-PBKDM_A sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-ABPRD_MO sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-ABKDM_MO sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-ZUPRD_MO sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-ZUKDM_MO sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-VNPRD_MA sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-VNKDM_MA sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-EBPRD_MA sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-EBKDM_MA sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-ABSALK3 sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-ZUKDM_OST sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-EKKDM_OST sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-PBKDM_OST sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-VPKDM_OST sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-VPPBKDM_OST sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-VNKDM_OST sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-MARKUP_O sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-VKSAL sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-MGTYP sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-GJAHR sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-PERIO sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-KALNR_IN sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-KALNR_BAL sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-KALNR_OUT sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-OTYP_IN sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-OTYP_OUT sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-MEINH sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-OUT_MENGE sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-MISCH_VERH sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-BWKEY sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-WERKS sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-MATNR sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-BWTAR sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-LAST_PDAY sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-STLAN_PC sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-STLAL_PC sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-LOSGR_PC sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-ALDAT_PC sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-MEINS_PC sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-BWVAR_PC sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-BWDAT_PC sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-PLSCN_PC sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-STATISTIC_PC sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-KALNR_INMAT sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-KALNR_PRZ sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-OTYP_INMAT sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-OTYP_PRZ sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-IN_MENGE sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-IN_MENGE_FIX sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-TOGBTR sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-TOFBTR sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-TOGBTRD sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-TOE sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-BWSTRAT sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-NO_SETTLE sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-CATEG sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-PTYP sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-BVALT sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-ESTPRD sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-ESTKDM sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-MSTPRD sy-vline
WA_CKML_S_REORG_ALV_ITEM_STR-MSTKDM sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.