ABAP Select data from SAP table PBRNFTAXCALC 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 PBRNFTAXCALC 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 PBRNFTAXCALC. 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 PBRNFTAXCALC 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_PBRNFTAXCALC TYPE STANDARD TABLE OF PBRNFTAXCALC,
      WA_PBRNFTAXCALC TYPE PBRNFTAXCALC,
      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: <PBRNFTAXCALC> TYPE PBRNFTAXCALC.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM PBRNFTAXCALC
*  INTO TABLE @DATA(IT_PBRNFTAXCALC2).
*--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_PBRNFTAXCALC INDEX 1 INTO DATA(WA_PBRNFTAXCALC2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_PBRNFTAXCALC ASSIGNING <PBRNFTAXCALC>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<PBRNFTAXCALC>-MANDT = 1.
<PBRNFTAXCALC>-BR_NOTAFISCAL = 1.
<PBRNFTAXCALC>-BR_NOTAFISCALITEM = 1.
<PBRNFTAXCALC>-BR_TAXTYPE = 1.
<PBRNFTAXCALC>-ORIGINALTAXGROUP = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_PBRNFTAXCALC-COMPANYCODE, sy-vline,
WA_PBRNFTAXCALC-BUSINESSPLACE, sy-vline,
WA_PBRNFTAXCALC-BR_PAYMENTFORM, sy-vline,
WA_PBRNFTAXCALC-BR_NFISSUEDATE, sy-vline,
WA_PBRNFTAXCALC-BR_NFSERIES, sy-vline,
WA_PBRNFTAXCALC-BR_NFPARTNERTYPE, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PBRNFTAXCALC 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_PBRNFTAXCALC 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_PBRNFTAXCALC INTO WA_PBRNFTAXCALC. *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 ALPHA, internal->external for field BR_NFPARTNER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PBRNFTAXCALC-BR_NFPARTNER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PBRNFTAXCALC-BR_NFPARTNER.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

*Conversion exit CUNIT, internal->external for field BR_NFITMFXDMKTTARIFFUNIT4DCMLS CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_PBRNFTAXCALC-BR_NFITMFXDMKTTARIFFUNIT4DCMLS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PBRNFTAXCALC-BR_NFITMFXDMKTTARIFFUNIT4DCMLS.
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_PBRNFTAXCALC_STR,
MANDT TYPE STRING,
BR_NOTAFISCAL TYPE STRING,
BR_NOTAFISCALITEM TYPE STRING,
BR_TAXTYPE TYPE STRING,
ORIGINALTAXGROUP TYPE STRING,
COMPANYCODE TYPE STRING,
BUSINESSPLACE TYPE STRING,
BR_PAYMENTFORM TYPE STRING,
BR_NFISSUEDATE TYPE STRING,
BR_NFSERIES TYPE STRING,
BR_NFPARTNERTYPE TYPE STRING,
PARTNERFIELDLENGTH TYPE STRING,
BR_NFPARTNER TYPE STRING,
LICENSEPLATE TYPE STRING,
BR_NFENUMBER TYPE STRING,
BR_NFISSUEDBY TYPE STRING,
BR_NFSITUATIONCODE TYPE STRING,
BR_NFTYPE TYPE STRING,
BR_NFDOCUMENTTYPE TYPE STRING,
BR_NFMODEL TYPE STRING,
BR_NFDIRECTION TYPE STRING,
BR_ISNFE TYPE STRING,
BR_NFPARTNERREGIONCODE TYPE STRING,
BR_NFISCANCELED TYPE STRING,
BR_CTEJURISDICTIONCODEORIGIN TYPE STRING,
BR_CTEJURISDICTIONCODEDEST TYPE STRING,
FREIGHTPAYER TYPE STRING,
BR_NFPARTNERTAXJURISDICTION TYPE STRING,
BR_NFCANCELLATIONDATE TYPE STRING,
BR_NFSHIPPINGUNITBRAND TYPE STRING,
BR_NFSVERIFICATIONCODE TYPE STRING,
BR_NFSUBSERIES TYPE STRING,
SUPPLIERINVOICE TYPE STRING,
BR_NFSNUMBER TYPE STRING,
BR_NFPARTNERSTATETAXNUMBER TYPE STRING,
BR_NFISMUNICIPAL TYPE STRING,
BR_NFHASSERVICEITEM TYPE STRING,
SALESDOCUMENTCURRENCY TYPE STRING,
HEADERWEIGHTUNIT TYPE STRING,
INCOTERMSCLASSIFICATION TYPE STRING,
BR_NFPARTNERMUNICIPALTAXNUMBER TYPE STRING,
BR_NFREFERENCEDOCUMENT TYPE STRING,
BR_NFPOSTINGDATE TYPE STRING,
CREATIONDATE TYPE STRING,
CREATEDBYUSER TYPE STRING,
BR_NFISCREATEDMANUALLY TYPE STRING,
BR_NFPARTNERFUNCTION TYPE STRING,
ACCOUNTINGDOCUMENT TYPE STRING,
BR_NFISCONTINGENCY TYPE STRING,
BR_CTEDOCUMENTTYPE TYPE STRING,
BR_CTESERVICETYPE TYPE STRING,
PAYMENTTERMS TYPE STRING,
BR_NFARRIVALORDEPARTUREDATE TYPE STRING,
BR_NFPARTNERNAME1 TYPE STRING,
BR_NFPARTNERDISTRICTNAME TYPE STRING,
BR_NFPARTNERCITYNAME TYPE STRING,
BR_NFPARTNERPOSTALCODE TYPE STRING,
BR_NFPARTNERSTREETNAME TYPE STRING,
BUSINESSPARTNERHOUSENUMBER TYPE STRING,
BPHSNMBRSUPLMNTTXT TYPE STRING,
PHONENUMBER TYPE STRING,
MATERIALOLDID TYPE STRING,
MATERIAL TYPE STRING,
MATERIALNAME TYPE STRING,
BR_NFISPHYSICALMVTOFMATERIAL TYPE STRING,
BR_ICMSTAXSITUATION TYPE STRING,
BR_CFOPCODE TYPE STRING,
BR_IPITAXSITUATION TYPE STRING,
BR_PISTAXSITUATION TYPE STRING,
BR_COFINSTAXSITUATION TYPE STRING,
GLACCOUNT TYPE STRING,
BR_MATERIALUSAGE TYPE STRING,
VALUATIONTYPE TYPE STRING,
BR_NFEXTERNALITEMNUMBER TYPE STRING,
BR_NFISSERVICEITEM TYPE STRING,
BR_ICMSTAXLAW TYPE STRING,
BR_IPITAXLAW TYPE STRING,
BR_MATERIALORIGIN TYPE STRING,
BR_COFINSTAXLAW TYPE STRING,
BR_PISTAXLAW TYPE STRING,
QUANTITYINBASEUNIT TYPE STRING,
BR_NFITEMTYPE TYPE STRING,
BR_IPICONTROLSEALCODE TYPE STRING,
BR_IPICONTROLSEALQUANTITYVALUE TYPE STRING,
BR_ICMSBASEDETN TYPE STRING,
PURCHASEORDER TYPE STRING,
PURCHASEORDERITEM TYPE STRING,
NFHEADERTOTALAMOUNT TYPE STRING,
NETPRICEAMOUNT TYPE STRING,
BR_NFTOTALAMOUNT TYPE STRING,
BR_NFTOTALAMOUNTWITHTAXES TYPE STRING,
BR_NFVALUEAMOUNTWITHTAXES TYPE STRING,
NETVALUEAMOUNT TYPE STRING,
BR_NFDISCOUNTAMOUNTWITHTAXES TYPE STRING,
BR_NFFREIGHTAMOUNTWITHTAXES TYPE STRING,
BR_NFINSURANCEAMOUNTWITHTAXES TYPE STRING,
BR_NFNETOTHEREXPENSESAMOUNT TYPE STRING,
BR_EXEMPTEDICMSAMOUNT TYPE STRING,
NCMCODE TYPE STRING,
BR_NFSOURCEDOCUMENTNUMBER TYPE STRING,
BR_NFSOURCEDOCUMENTTYPE TYPE STRING,
BR_NFSOURCEDOCUMENTITEM TYPE STRING,
PLANT TYPE STRING,
BATCH TYPE STRING,
BR_ISSTAXSITUATION TYPE STRING,
BR_ISSTAXLAW TYPE STRING,
BR_NFITEMISSTATISTICAL TYPE STRING,
BR_REFERENCENFNUMBER TYPE STRING,
BR_REFERENCENFITEM TYPE STRING,
BR_NFPRICEAMOUNTWITHTAXES TYPE STRING,
COSTCENTER TYPE STRING,
BR_NBSCODE TYPE STRING,
BASEUNIT TYPE STRING,
TAXGROUP TYPE STRING,
BR_NFITEMORIGINALBASEAMOUNT TYPE STRING,
BR_ORIGLNFITEMEXCLBASEAMOUNT TYPE STRING,
BR_ORIGLNFITEMOTHERBASEAMOUNT TYPE STRING,
BR_ORIGINALNFITEMTAXRATE TYPE STRING,
BR_NFITEMORIGINALTAXAMOUNT TYPE STRING,
BR_NFITEMTAXBASEPCT1 TYPE STRING,
BR_NFITEMTAXBASEPCT2 TYPE STRING,
BR_NFITEMISSTATISTICALTAX TYPE STRING,
BR_NFITEMHASFIXEDMKTTARIFF TYPE STRING,
BR_NFITEMFIXEDMKTTARIFFBASEQTY TYPE STRING,
BR_NFITEMFIXEDMARKETTARIFFUNIT TYPE STRING,
BR_NFITEMWHLDGCOLLECTIONCODE TYPE STRING,
BR_NFITEMFIXEDMKTTARIFFTAXRATE TYPE STRING,
BR_NFITEMFIXEDMKTTARIFFQTY TYPE STRING,
BR_NFITMFXDMKTTARIFFUNIT4DCMLS TYPE STRING,
BR_NFITEMHASWITHHOLDINGTAX TYPE STRING,
BR_NFSSERVICETYPEINCOMING TYPE STRING,
BR_NFSSERVICETYPEOUTGOING TYPE STRING,
TAXJURISDICTION TYPE STRING,
BR_UFTAXJURISDICTION TYPE STRING,
BR_NFISTAXINNETAMOUNT TYPE STRING,
BR_ICMSISINCLUDEDINAMOUNT TYPE STRING,
NFITEMEXCLUDEDBASEAMOUNT TYPE STRING,
NFITEMOTHERBASEAMOUNT TYPE STRING,
NFITEMBASEAMOUNT TYPE STRING,
BR_IPIREDUCTIONTAXAMOUNT TYPE STRING,
BR_ICMSREDUCTIONTAXAMOUNT TYPE STRING,
BR_TAXISISSQN TYPE STRING,
NFITEMTAXRATE TYPE STRING,
NFITEMTAXAMOUNT TYPE STRING,
BR_ICMSPARTILHASUBDIVISIONCODE TYPE STRING,
BR_ISSQNTAXBASEAMOUNT TYPE STRING,
BR_ISSQNTAXRATE TYPE STRING,
BR_ISSQNTAXAMOUNT TYPE STRING,
BR_ISSQNTAXEXCLUDEDBASEAMOUNT TYPE STRING,
BR_ISSQNTAXOTHERBASEAMOUNT TYPE STRING,
BR_ICMSTAXBASEAMOUNT TYPE STRING,
BR_ICMSTAXRATE TYPE STRING,
BR_ICMSTAXAMOUNT TYPE STRING,
BR_ICMSTAXEXCLUDEDBASEAMOUNT TYPE STRING,
BR_ICMSTAXOTHERBASEAMOUNT TYPE STRING,
BR_ICMSSTTAXBASEAMOUNT TYPE STRING,
BR_ICMSSTTAXRATE TYPE STRING,
BR_ICMSSTTAXAMOUNT TYPE STRING,
BR_ICMSSTTAXEXCLUDEDBASEAMOUNT TYPE STRING,
BR_ICMSSTTAXOTHERBASEAMOUNT TYPE STRING,
BR_IPITAXBASEAMOUNT TYPE STRING,
BR_IPITAXRATE TYPE STRING,
BR_IPITAXAMOUNT TYPE STRING,
BR_IPITAXEXCLUDEDBASEAMOUNT TYPE STRING,
BR_IPITAXOTHERBASEAMOUNT TYPE STRING,
BR_PISTAXBASEAMOUNT TYPE STRING,
BR_APPLIEDPISTAXAMOUNT TYPE STRING,
BR_PISTAXAMOUNT TYPE STRING,
BR_PISTAXEXCLUDEDBASEAMOUNT TYPE STRING,
BR_PISTAXOTHERBASEAMOUNT TYPE STRING,
BR_PISTAXISFISCALTARIFF TYPE STRING,
BR_PISTXFISCALTARIFFBASEAMOUNT TYPE STRING,
BR_PISSTTAXBASEAMOUNT TYPE STRING,
BR_PISSTTAXRATE TYPE STRING,
BR_PISSTTAXAMOUNT TYPE STRING,
BR_PISSTTAXEXCLUDEDBASEAMOUNT TYPE STRING,
BR_PISSTTAXOTHERBASEAMOUNT TYPE STRING,
BR_PISSTTAXISFISCALTARIFF TYPE STRING,
BR_PISSTTXFSCLTARIFFBASEAMOUNT TYPE STRING,
BR_COFINSTAXBASEAMOUNT TYPE STRING,
BR_APPLIEDCOFINSTAXAMOUNT TYPE STRING,
BR_COFINSTAXAMOUNT TYPE STRING,
BR_COFINSTAXEXCLUDEDBASEAMOUNT TYPE STRING,
BR_COFINSTAXOTHERBASEAMOUNT TYPE STRING,
BR_COFINSTAXISFISCALTARIFF TYPE STRING,
BR_COFINSTXFSCLTRIFBASEAMOUNT TYPE STRING,
BR_COFINSSTTAXBASEAMOUNT TYPE STRING,
BR_COFINSSTTAXRATE TYPE STRING,
BR_COFINSSTTAXAMOUNT TYPE STRING,
BR_COFINSSTTAXEXCLDBASEAMOUNT TYPE STRING,
BR_COFINSSTTAXOTHERBASEAMOUNT TYPE STRING,
BR_COFINSSTTAXISFISCALTARIFF TYPE STRING,
BR_COFINSSTTXFSCLTRIFBASEAMT TYPE STRING,
BR_IRRFTAXBASEAMOUNT TYPE STRING,
BR_IRRFTAXAMOUNT TYPE STRING,
BR_DIFALTAXBASEAMOUNT TYPE STRING,
BR_DIFALTAXRATE TYPE STRING,
BR_DIFALTAXAMOUNT TYPE STRING,
BR_DIFALTAXEXCLUDEDBASEAMOUNT TYPE STRING,
BR_DIFALTAXOTHERBASEAMOUNT TYPE STRING,
BR_DIFALTAXISFISCALTARIFF TYPE STRING,
BR_DIFALTXFSCLTARIFFBASEAMOUNT TYPE STRING,
BR_ORIGINALICMSSTTAXAMOUNT TYPE STRING,
BR_ORIGINALIPITAXAMOUNT TYPE STRING,
BR_ORIGINALICMSTAXAMOUNT TYPE STRING,
BR_ORIGINALPISTAXAMOUNT TYPE STRING,
BR_ORIGINALCOFINSTAXAMOUNT TYPE STRING,
BR_ORIGINALFCPONICMSTAXAMOUNT TYPE STRING,
BR_ORIGLFCPONICMSSTTAXAMOUNT TYPE STRING,
BR_ICMSORIGINTAXBASEAMOUNT TYPE STRING,
BR_ICMSORIGINTAXRATE TYPE STRING,
BR_ICMSORIGINTAXAMOUNT TYPE STRING,
BR_ICMSDESTINATIONTXBASEAMOUNT TYPE STRING,
BR_ICMSDESTINATIONTAXRATE TYPE STRING,
BR_ICMSDESTINATIONTAXAMOUNT TYPE STRING,
BR_FCPONICMSTAXBASEAMOUNT TYPE STRING,
BR_FCPONICMSTAXRATE TYPE STRING,
BR_FCPONICMSTAXAMOUNT TYPE STRING,
BR_FCPONICMSSTTAXBASEAMOUNT TYPE STRING,
BR_FCPONICMSSTTAXRATE TYPE STRING,
BR_FCPONICMSSTTAXAMOUNT TYPE STRING,
IMPORTTAXAMOUNT TYPE STRING,
BR_ICMSSTSTATISTICALTAXAMOUNT TYPE STRING,
BR_IPISTATISTICALTAXAMOUNT TYPE STRING,
BR_ICZGTAXAMOUNT TYPE STRING,
BR_PISISINCLUDEDINAMOUNT TYPE STRING,
BR_COFINSISINCLUDEDINAMOUNT TYPE STRING,END OF T_EKKO_STR. DATA: WA_PBRNFTAXCALC_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_PBRNFTAXCALC_STR-MANDT sy-vline
WA_PBRNFTAXCALC_STR-BR_NOTAFISCAL sy-vline
WA_PBRNFTAXCALC_STR-BR_NOTAFISCALITEM sy-vline
WA_PBRNFTAXCALC_STR-BR_TAXTYPE sy-vline
WA_PBRNFTAXCALC_STR-ORIGINALTAXGROUP sy-vline
WA_PBRNFTAXCALC_STR-COMPANYCODE sy-vline
WA_PBRNFTAXCALC_STR-BUSINESSPLACE sy-vline
WA_PBRNFTAXCALC_STR-BR_PAYMENTFORM sy-vline
WA_PBRNFTAXCALC_STR-BR_NFISSUEDATE sy-vline
WA_PBRNFTAXCALC_STR-BR_NFSERIES sy-vline
WA_PBRNFTAXCALC_STR-BR_NFPARTNERTYPE sy-vline
WA_PBRNFTAXCALC_STR-PARTNERFIELDLENGTH sy-vline
WA_PBRNFTAXCALC_STR-BR_NFPARTNER sy-vline
WA_PBRNFTAXCALC_STR-LICENSEPLATE sy-vline
WA_PBRNFTAXCALC_STR-BR_NFENUMBER sy-vline
WA_PBRNFTAXCALC_STR-BR_NFISSUEDBY sy-vline
WA_PBRNFTAXCALC_STR-BR_NFSITUATIONCODE sy-vline
WA_PBRNFTAXCALC_STR-BR_NFTYPE sy-vline
WA_PBRNFTAXCALC_STR-BR_NFDOCUMENTTYPE sy-vline
WA_PBRNFTAXCALC_STR-BR_NFMODEL sy-vline
WA_PBRNFTAXCALC_STR-BR_NFDIRECTION sy-vline
WA_PBRNFTAXCALC_STR-BR_ISNFE sy-vline
WA_PBRNFTAXCALC_STR-BR_NFPARTNERREGIONCODE sy-vline
WA_PBRNFTAXCALC_STR-BR_NFISCANCELED sy-vline
WA_PBRNFTAXCALC_STR-BR_CTEJURISDICTIONCODEORIGIN sy-vline
WA_PBRNFTAXCALC_STR-BR_CTEJURISDICTIONCODEDEST sy-vline
WA_PBRNFTAXCALC_STR-FREIGHTPAYER sy-vline
WA_PBRNFTAXCALC_STR-BR_NFPARTNERTAXJURISDICTION sy-vline
WA_PBRNFTAXCALC_STR-BR_NFCANCELLATIONDATE sy-vline
WA_PBRNFTAXCALC_STR-BR_NFSHIPPINGUNITBRAND sy-vline
WA_PBRNFTAXCALC_STR-BR_NFSVERIFICATIONCODE sy-vline
WA_PBRNFTAXCALC_STR-BR_NFSUBSERIES sy-vline
WA_PBRNFTAXCALC_STR-SUPPLIERINVOICE sy-vline
WA_PBRNFTAXCALC_STR-BR_NFSNUMBER sy-vline
WA_PBRNFTAXCALC_STR-BR_NFPARTNERSTATETAXNUMBER sy-vline
WA_PBRNFTAXCALC_STR-BR_NFISMUNICIPAL sy-vline
WA_PBRNFTAXCALC_STR-BR_NFHASSERVICEITEM sy-vline
WA_PBRNFTAXCALC_STR-SALESDOCUMENTCURRENCY sy-vline
WA_PBRNFTAXCALC_STR-HEADERWEIGHTUNIT sy-vline
WA_PBRNFTAXCALC_STR-INCOTERMSCLASSIFICATION sy-vline
WA_PBRNFTAXCALC_STR-BR_NFPARTNERMUNICIPALTAXNUMBER sy-vline
WA_PBRNFTAXCALC_STR-BR_NFREFERENCEDOCUMENT sy-vline
WA_PBRNFTAXCALC_STR-BR_NFPOSTINGDATE sy-vline
WA_PBRNFTAXCALC_STR-CREATIONDATE sy-vline
WA_PBRNFTAXCALC_STR-CREATEDBYUSER sy-vline
WA_PBRNFTAXCALC_STR-BR_NFISCREATEDMANUALLY sy-vline
WA_PBRNFTAXCALC_STR-BR_NFPARTNERFUNCTION sy-vline
WA_PBRNFTAXCALC_STR-ACCOUNTINGDOCUMENT sy-vline
WA_PBRNFTAXCALC_STR-BR_NFISCONTINGENCY sy-vline
WA_PBRNFTAXCALC_STR-BR_CTEDOCUMENTTYPE sy-vline
WA_PBRNFTAXCALC_STR-BR_CTESERVICETYPE sy-vline
WA_PBRNFTAXCALC_STR-PAYMENTTERMS sy-vline
WA_PBRNFTAXCALC_STR-BR_NFARRIVALORDEPARTUREDATE sy-vline
WA_PBRNFTAXCALC_STR-BR_NFPARTNERNAME1 sy-vline
WA_PBRNFTAXCALC_STR-BR_NFPARTNERDISTRICTNAME sy-vline
WA_PBRNFTAXCALC_STR-BR_NFPARTNERCITYNAME sy-vline
WA_PBRNFTAXCALC_STR-BR_NFPARTNERPOSTALCODE sy-vline
WA_PBRNFTAXCALC_STR-BR_NFPARTNERSTREETNAME sy-vline
WA_PBRNFTAXCALC_STR-BUSINESSPARTNERHOUSENUMBER sy-vline
WA_PBRNFTAXCALC_STR-BPHSNMBRSUPLMNTTXT sy-vline
WA_PBRNFTAXCALC_STR-PHONENUMBER sy-vline
WA_PBRNFTAXCALC_STR-MATERIALOLDID sy-vline
WA_PBRNFTAXCALC_STR-MATERIAL sy-vline
WA_PBRNFTAXCALC_STR-MATERIALNAME sy-vline
WA_PBRNFTAXCALC_STR-BR_NFISPHYSICALMVTOFMATERIAL sy-vline
WA_PBRNFTAXCALC_STR-BR_ICMSTAXSITUATION sy-vline
WA_PBRNFTAXCALC_STR-BR_CFOPCODE sy-vline
WA_PBRNFTAXCALC_STR-BR_IPITAXSITUATION sy-vline
WA_PBRNFTAXCALC_STR-BR_PISTAXSITUATION sy-vline
WA_PBRNFTAXCALC_STR-BR_COFINSTAXSITUATION sy-vline
WA_PBRNFTAXCALC_STR-GLACCOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_MATERIALUSAGE sy-vline
WA_PBRNFTAXCALC_STR-VALUATIONTYPE sy-vline
WA_PBRNFTAXCALC_STR-BR_NFEXTERNALITEMNUMBER sy-vline
WA_PBRNFTAXCALC_STR-BR_NFISSERVICEITEM sy-vline
WA_PBRNFTAXCALC_STR-BR_ICMSTAXLAW sy-vline
WA_PBRNFTAXCALC_STR-BR_IPITAXLAW sy-vline
WA_PBRNFTAXCALC_STR-BR_MATERIALORIGIN sy-vline
WA_PBRNFTAXCALC_STR-BR_COFINSTAXLAW sy-vline
WA_PBRNFTAXCALC_STR-BR_PISTAXLAW sy-vline
WA_PBRNFTAXCALC_STR-QUANTITYINBASEUNIT sy-vline
WA_PBRNFTAXCALC_STR-BR_NFITEMTYPE sy-vline
WA_PBRNFTAXCALC_STR-BR_IPICONTROLSEALCODE sy-vline
WA_PBRNFTAXCALC_STR-BR_IPICONTROLSEALQUANTITYVALUE sy-vline
WA_PBRNFTAXCALC_STR-BR_ICMSBASEDETN sy-vline
WA_PBRNFTAXCALC_STR-PURCHASEORDER sy-vline
WA_PBRNFTAXCALC_STR-PURCHASEORDERITEM sy-vline
WA_PBRNFTAXCALC_STR-NFHEADERTOTALAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-NETPRICEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_NFTOTALAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_NFTOTALAMOUNTWITHTAXES sy-vline
WA_PBRNFTAXCALC_STR-BR_NFVALUEAMOUNTWITHTAXES sy-vline
WA_PBRNFTAXCALC_STR-NETVALUEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_NFDISCOUNTAMOUNTWITHTAXES sy-vline
WA_PBRNFTAXCALC_STR-BR_NFFREIGHTAMOUNTWITHTAXES sy-vline
WA_PBRNFTAXCALC_STR-BR_NFINSURANCEAMOUNTWITHTAXES sy-vline
WA_PBRNFTAXCALC_STR-BR_NFNETOTHEREXPENSESAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_EXEMPTEDICMSAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-NCMCODE sy-vline
WA_PBRNFTAXCALC_STR-BR_NFSOURCEDOCUMENTNUMBER sy-vline
WA_PBRNFTAXCALC_STR-BR_NFSOURCEDOCUMENTTYPE sy-vline
WA_PBRNFTAXCALC_STR-BR_NFSOURCEDOCUMENTITEM sy-vline
WA_PBRNFTAXCALC_STR-PLANT sy-vline
WA_PBRNFTAXCALC_STR-BATCH sy-vline
WA_PBRNFTAXCALC_STR-BR_ISSTAXSITUATION sy-vline
WA_PBRNFTAXCALC_STR-BR_ISSTAXLAW sy-vline
WA_PBRNFTAXCALC_STR-BR_NFITEMISSTATISTICAL sy-vline
WA_PBRNFTAXCALC_STR-BR_REFERENCENFNUMBER sy-vline
WA_PBRNFTAXCALC_STR-BR_REFERENCENFITEM sy-vline
WA_PBRNFTAXCALC_STR-BR_NFPRICEAMOUNTWITHTAXES sy-vline
WA_PBRNFTAXCALC_STR-COSTCENTER sy-vline
WA_PBRNFTAXCALC_STR-BR_NBSCODE sy-vline
WA_PBRNFTAXCALC_STR-BASEUNIT sy-vline
WA_PBRNFTAXCALC_STR-TAXGROUP sy-vline
WA_PBRNFTAXCALC_STR-BR_NFITEMORIGINALBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ORIGLNFITEMEXCLBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ORIGLNFITEMOTHERBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ORIGINALNFITEMTAXRATE sy-vline
WA_PBRNFTAXCALC_STR-BR_NFITEMORIGINALTAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_NFITEMTAXBASEPCT1 sy-vline
WA_PBRNFTAXCALC_STR-BR_NFITEMTAXBASEPCT2 sy-vline
WA_PBRNFTAXCALC_STR-BR_NFITEMISSTATISTICALTAX sy-vline
WA_PBRNFTAXCALC_STR-BR_NFITEMHASFIXEDMKTTARIFF sy-vline
WA_PBRNFTAXCALC_STR-BR_NFITEMFIXEDMKTTARIFFBASEQTY sy-vline
WA_PBRNFTAXCALC_STR-BR_NFITEMFIXEDMARKETTARIFFUNIT sy-vline
WA_PBRNFTAXCALC_STR-BR_NFITEMWHLDGCOLLECTIONCODE sy-vline
WA_PBRNFTAXCALC_STR-BR_NFITEMFIXEDMKTTARIFFTAXRATE sy-vline
WA_PBRNFTAXCALC_STR-BR_NFITEMFIXEDMKTTARIFFQTY sy-vline
WA_PBRNFTAXCALC_STR-BR_NFITMFXDMKTTARIFFUNIT4DCMLS sy-vline
WA_PBRNFTAXCALC_STR-BR_NFITEMHASWITHHOLDINGTAX sy-vline
WA_PBRNFTAXCALC_STR-BR_NFSSERVICETYPEINCOMING sy-vline
WA_PBRNFTAXCALC_STR-BR_NFSSERVICETYPEOUTGOING sy-vline
WA_PBRNFTAXCALC_STR-TAXJURISDICTION sy-vline
WA_PBRNFTAXCALC_STR-BR_UFTAXJURISDICTION sy-vline
WA_PBRNFTAXCALC_STR-BR_NFISTAXINNETAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ICMSISINCLUDEDINAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-NFITEMEXCLUDEDBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-NFITEMOTHERBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-NFITEMBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_IPIREDUCTIONTAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ICMSREDUCTIONTAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_TAXISISSQN sy-vline
WA_PBRNFTAXCALC_STR-NFITEMTAXRATE sy-vline
WA_PBRNFTAXCALC_STR-NFITEMTAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ICMSPARTILHASUBDIVISIONCODE sy-vline
WA_PBRNFTAXCALC_STR-BR_ISSQNTAXBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ISSQNTAXRATE sy-vline
WA_PBRNFTAXCALC_STR-BR_ISSQNTAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ISSQNTAXEXCLUDEDBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ISSQNTAXOTHERBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ICMSTAXBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ICMSTAXRATE sy-vline
WA_PBRNFTAXCALC_STR-BR_ICMSTAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ICMSTAXEXCLUDEDBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ICMSTAXOTHERBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ICMSSTTAXBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ICMSSTTAXRATE sy-vline
WA_PBRNFTAXCALC_STR-BR_ICMSSTTAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ICMSSTTAXEXCLUDEDBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ICMSSTTAXOTHERBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_IPITAXBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_IPITAXRATE sy-vline
WA_PBRNFTAXCALC_STR-BR_IPITAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_IPITAXEXCLUDEDBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_IPITAXOTHERBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_PISTAXBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_APPLIEDPISTAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_PISTAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_PISTAXEXCLUDEDBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_PISTAXOTHERBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_PISTAXISFISCALTARIFF sy-vline
WA_PBRNFTAXCALC_STR-BR_PISTXFISCALTARIFFBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_PISSTTAXBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_PISSTTAXRATE sy-vline
WA_PBRNFTAXCALC_STR-BR_PISSTTAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_PISSTTAXEXCLUDEDBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_PISSTTAXOTHERBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_PISSTTAXISFISCALTARIFF sy-vline
WA_PBRNFTAXCALC_STR-BR_PISSTTXFSCLTARIFFBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_COFINSTAXBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_APPLIEDCOFINSTAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_COFINSTAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_COFINSTAXEXCLUDEDBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_COFINSTAXOTHERBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_COFINSTAXISFISCALTARIFF sy-vline
WA_PBRNFTAXCALC_STR-BR_COFINSTXFSCLTRIFBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_COFINSSTTAXBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_COFINSSTTAXRATE sy-vline
WA_PBRNFTAXCALC_STR-BR_COFINSSTTAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_COFINSSTTAXEXCLDBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_COFINSSTTAXOTHERBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_COFINSSTTAXISFISCALTARIFF sy-vline
WA_PBRNFTAXCALC_STR-BR_COFINSSTTXFSCLTRIFBASEAMT sy-vline
WA_PBRNFTAXCALC_STR-BR_IRRFTAXBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_IRRFTAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_DIFALTAXBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_DIFALTAXRATE sy-vline
WA_PBRNFTAXCALC_STR-BR_DIFALTAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_DIFALTAXEXCLUDEDBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_DIFALTAXOTHERBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_DIFALTAXISFISCALTARIFF sy-vline
WA_PBRNFTAXCALC_STR-BR_DIFALTXFSCLTARIFFBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ORIGINALICMSSTTAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ORIGINALIPITAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ORIGINALICMSTAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ORIGINALPISTAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ORIGINALCOFINSTAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ORIGINALFCPONICMSTAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ORIGLFCPONICMSSTTAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ICMSORIGINTAXBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ICMSORIGINTAXRATE sy-vline
WA_PBRNFTAXCALC_STR-BR_ICMSORIGINTAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ICMSDESTINATIONTXBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ICMSDESTINATIONTAXRATE sy-vline
WA_PBRNFTAXCALC_STR-BR_ICMSDESTINATIONTAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_FCPONICMSTAXBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_FCPONICMSTAXRATE sy-vline
WA_PBRNFTAXCALC_STR-BR_FCPONICMSTAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_FCPONICMSSTTAXBASEAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_FCPONICMSSTTAXRATE sy-vline
WA_PBRNFTAXCALC_STR-BR_FCPONICMSSTTAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-IMPORTTAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ICMSSTSTATISTICALTAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_IPISTATISTICALTAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_ICZGTAXAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_PISISINCLUDEDINAMOUNT sy-vline
WA_PBRNFTAXCALC_STR-BR_COFINSISINCLUDEDINAMOUNT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.