<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Variant for dynamic selection in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/variant-for-dynamic-selection/m-p/3046646#M721193</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Look at the following Code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please find the sample using RS_CREATE_VARIANT (FM).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It make use of other FM also , just have a look .&lt;/P&gt;&lt;P&gt;Hope this may help you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT ZEXAMPLE.&lt;/P&gt;&lt;P&gt;DATA: JVARI_DESC LIKE VARID,&lt;/P&gt;&lt;P&gt;RC LIKE SY-SUBRC,&lt;/P&gt;&lt;P&gt;VARIANT_TEXT LIKE VARIT-VTEXT,&lt;/P&gt;&lt;P&gt;JVT LIKE VARIT OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;SELPA LIKE RSPARAMS OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;PARMS LIKE RSPARAMS OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;OBJS LIKE VANZ OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;PARAMETERS: P_VAR LIKE RSVAR-VARIANT. "NAME OF VARIANT&lt;/P&gt;&lt;P&gt;JVARI_DESC-REPORT = SY-REPID.&lt;/P&gt;&lt;P&gt;JVARI_DESC-VARIANT = P_VAR.&lt;/P&gt;&lt;P&gt;JVARI_DESC-ENAME = 'EXAMPLES'.&lt;/P&gt;&lt;P&gt;JVT-REPORT = SY-REPID.&lt;/P&gt;&lt;P&gt;JVT-VARIANT = P_VAR.&lt;/P&gt;&lt;P&gt;JVT-LANGU = SY-LANGU.&lt;/P&gt;&lt;P&gt;JVT-VTEXT = 'FUNCTION EXAMPLES'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APPEND JVT.&lt;/P&gt;&lt;P&gt;CLEAR SELPA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELPA-SIGN = 'I'.&lt;/P&gt;&lt;P&gt;SELPA-OPTION = 'EQ'.&lt;/P&gt;&lt;P&gt;SELPA-KIND = 'P'.&lt;/P&gt;&lt;P&gt;SELPA-SELNAME = 'P_VAR'.&lt;/P&gt;&lt;P&gt;SELPA-LOW = P_VAR.&lt;/P&gt;&lt;P&gt;APPEND SELPA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CHECK IF VARIANT EXISTS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RS_VARIANT_EXISTS'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;REPORT = JVARI_DESC-REPORT&lt;/P&gt;&lt;P&gt;VARIANT = P_VAR&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;R_C = RC&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;NOT_AUTHORIZED = 1&lt;/P&gt;&lt;P&gt;NO_REPORT = 2&lt;/P&gt;&lt;P&gt;REPORT_NOT_EXISTENT = 3&lt;/P&gt;&lt;P&gt;REPORT_NOT_SUPPLIED = 4&lt;/P&gt;&lt;P&gt;OTHERS = 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF RC = 0 AND SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DELETE OLD VARIANT&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RS_VARIANT_DELETE'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;REPORT = JVARI_DESC-REPORT&lt;/P&gt;&lt;P&gt;VARIANT = P_VAR&lt;/P&gt;&lt;P&gt;FLAG_CONFIRMSCREEN = 'X'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;NOT_AUTHORIZED = 1&lt;/P&gt;&lt;P&gt;NOT_EXECUTED = 2&lt;/P&gt;&lt;P&gt;NO_REPORT = 3&lt;/P&gt;&lt;P&gt;REPORT_NOT_EXISTENT = 4&lt;/P&gt;&lt;P&gt;REPORT_NOT_SUPPLIED = 5&lt;/P&gt;&lt;P&gt;VARIANT_LOCKED = 6&lt;/P&gt;&lt;P&gt;VARIANT_NOT_EXISTENT = 7&lt;/P&gt;&lt;P&gt;NO_CORR_INSERT = 8&lt;/P&gt;&lt;P&gt;VARIANT_PROTECTED = 9&lt;/P&gt;&lt;P&gt;OTHERS = 10.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;WRITE: 'UNABLE TO DELETE VARIANT:', P_VAR ,'STATUS=', SY-SUBRC.&lt;/P&gt;&lt;P&gt;EXIT.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;WRITE:/ P_VAR, 'DELETED'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;WRITE:/ P_VAR, 'DOES NOT EXIST'.&lt;/P&gt;&lt;P&gt;ENDIF. " ALREADY EXISTS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RS_CREATE_VARIANT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;CURR_REPORT = JVARI_DESC-REPORT&lt;/P&gt;&lt;P&gt;CURR_VARIANT = P_VAR&lt;/P&gt;&lt;P&gt;VARI_DESC = JVARI_DESC&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;VARI_CONTENTS = SELPA&lt;/P&gt;&lt;P&gt;VARI_TEXT = JVT&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;ILLEGAL_REPORT_OR_VARIANT = 1&lt;/P&gt;&lt;P&gt;ILLEGAL_VARIANTNAME = 2&lt;/P&gt;&lt;P&gt;NOT_AUTHORIZED = 3&lt;/P&gt;&lt;P&gt;NOT_EXECUTED = 4&lt;/P&gt;&lt;P&gt;REPORT_NOT_EXISTENT = 5&lt;/P&gt;&lt;P&gt;REPORT_NOT_SUPPLIED = 6&lt;/P&gt;&lt;P&gt;VARIANT_EXISTS = 7&lt;/P&gt;&lt;P&gt;VARIANT_LOCKED = 8&lt;/P&gt;&lt;P&gt;OTHERS = 9.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;WRITE:/ 'VARIANT', P_VAR, 'CREATED FOR PROGRAM', JVARI_DESC-REPORT.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;WRITE:/ 'VARIANT', P_VAR, 'NOT CREATED FOR PROGRAM', JVARI_DESC-REPORT.&lt;/P&gt;&lt;P&gt;EXIT.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RS_VARIANT_CONTENTS'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT = JVARI_DESC-REPORT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;VARIANT = P_VAR&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;VALUTAB = PARMS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OBJECTS = OBJS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;VARIANT_NON_EXISTENT = 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;VARIANT_OBSOLETE = 2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OTHERS = 3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE : / 'ERROR READING VARIANT CONTENTS.'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RS_VARIANT_TEXT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;LANGU = SY-LANGU&lt;/P&gt;&lt;P&gt;CURR_REPORT = JVARI_DESC-REPORT&lt;/P&gt;&lt;P&gt;VARIANT = P_VAR&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;V_TEXT = VARIANT_TEXT.&lt;/P&gt;&lt;P&gt;WRITE:/ 'VARIANT DESCRIPTION:', VARIANT_TEXT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT PARMS.&lt;/P&gt;&lt;P&gt;CHECK PARMS-LOW NE SPACE OR PARMS-HIGH NE SPACE.&lt;/P&gt;&lt;P&gt;READ TABLE OBJS WITH KEY NAME = PARMS-SELNAME.&lt;/P&gt;&lt;P&gt;WRITE : /2 PARMS-SELNAME, OBJS-TEXT,&lt;/P&gt;&lt;P&gt;45 PARMS-KIND,&lt;/P&gt;&lt;P&gt;PARMS-SIGN,&lt;/P&gt;&lt;P&gt;PARMS-OPTION,&lt;/P&gt;&lt;P&gt;PARMS-LOW,&lt;/P&gt;&lt;P&gt;PARMS-HIGH.&lt;/P&gt;&lt;P&gt;NEW-LINE.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;SKIP.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;some other approach....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This function module selects the Selection Screen contents&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;curr_report = sy-repid&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;selection_table = loc_int_tab&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;not_found = 1&lt;/P&gt;&lt;P&gt;no_report = 2&lt;/P&gt;&lt;P&gt;OTHERS = 3.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;MESSAGE i000 WITH 'Error in RS_REFRESH_FROM_SELECTOPTIONS'(029).&lt;/P&gt;&lt;P&gt;LEAVE LIST-PROCESSING.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Craete the variant VAR1&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL FUNCTION 'RS_CREATE_VARIANT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;curr_report = sy-repid&lt;/P&gt;&lt;P&gt;curr_variant = wf_variant&lt;/P&gt;&lt;P&gt;vari_desc = loc_varid&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;vari_contents = loc_int_tab&lt;/P&gt;&lt;P&gt;vari_text = loc_varit&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;illegal_report_or_variant = 1&lt;/P&gt;&lt;P&gt;illegal_variantname = 2&lt;/P&gt;&lt;P&gt;not_authorized = 3&lt;/P&gt;&lt;P&gt;not_executed = 4&lt;/P&gt;&lt;P&gt;report_not_existent = 5&lt;/P&gt;&lt;P&gt;report_not_supplied = 6&lt;/P&gt;&lt;P&gt;variant_exists = 7&lt;/P&gt;&lt;P&gt;variant_locked = 8&lt;/P&gt;&lt;P&gt;OTHERS = 9.&lt;/P&gt;&lt;P&gt;IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;MESSAGE i000 WITH 'Error while creating dynamic variant'(028).&lt;/P&gt;&lt;P&gt;LEAVE LIST-PROCESSING.&lt;/P&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;or&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please try the following steps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. Enter the values in the selection screen&lt;/P&gt;&lt;P&gt;2. Save the variant using the SAVE button&lt;/P&gt;&lt;P&gt;3. In the next screen for the date variable (for example) select the 'Selection variable' checkbox (L) and click on the button 'Selection variable' in the toolbar.&lt;/P&gt;&lt;P&gt;4. Now you will see this variable in the next screen with 3 types of buttons. Click on the middle button (ie. D - Dynamic date calculation).&lt;/P&gt;&lt;P&gt;5. Click on the down arrow button and select the option 'Current Date'.&lt;/P&gt;&lt;P&gt;6. Save the variant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward if helpful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Harini.S&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 08 Nov 2007 12:05:59 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-11-08T12:05:59Z</dc:date>
    <item>
      <title>Variant for dynamic selection</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/variant-for-dynamic-selection/m-p/3046645#M721192</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could anyone help me how to save a variant for dynamic selection&lt;/P&gt;&lt;P&gt;in the subscreen.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;keerthi.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Nov 2007 11:05:55 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/variant-for-dynamic-selection/m-p/3046645#M721192</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-11-08T11:05:55Z</dc:date>
    </item>
    <item>
      <title>Re: Variant for dynamic selection</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/variant-for-dynamic-selection/m-p/3046646#M721193</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Look at the following Code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please find the sample using RS_CREATE_VARIANT (FM).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It make use of other FM also , just have a look .&lt;/P&gt;&lt;P&gt;Hope this may help you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT ZEXAMPLE.&lt;/P&gt;&lt;P&gt;DATA: JVARI_DESC LIKE VARID,&lt;/P&gt;&lt;P&gt;RC LIKE SY-SUBRC,&lt;/P&gt;&lt;P&gt;VARIANT_TEXT LIKE VARIT-VTEXT,&lt;/P&gt;&lt;P&gt;JVT LIKE VARIT OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;SELPA LIKE RSPARAMS OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;PARMS LIKE RSPARAMS OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;OBJS LIKE VANZ OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;PARAMETERS: P_VAR LIKE RSVAR-VARIANT. "NAME OF VARIANT&lt;/P&gt;&lt;P&gt;JVARI_DESC-REPORT = SY-REPID.&lt;/P&gt;&lt;P&gt;JVARI_DESC-VARIANT = P_VAR.&lt;/P&gt;&lt;P&gt;JVARI_DESC-ENAME = 'EXAMPLES'.&lt;/P&gt;&lt;P&gt;JVT-REPORT = SY-REPID.&lt;/P&gt;&lt;P&gt;JVT-VARIANT = P_VAR.&lt;/P&gt;&lt;P&gt;JVT-LANGU = SY-LANGU.&lt;/P&gt;&lt;P&gt;JVT-VTEXT = 'FUNCTION EXAMPLES'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APPEND JVT.&lt;/P&gt;&lt;P&gt;CLEAR SELPA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELPA-SIGN = 'I'.&lt;/P&gt;&lt;P&gt;SELPA-OPTION = 'EQ'.&lt;/P&gt;&lt;P&gt;SELPA-KIND = 'P'.&lt;/P&gt;&lt;P&gt;SELPA-SELNAME = 'P_VAR'.&lt;/P&gt;&lt;P&gt;SELPA-LOW = P_VAR.&lt;/P&gt;&lt;P&gt;APPEND SELPA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CHECK IF VARIANT EXISTS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RS_VARIANT_EXISTS'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;REPORT = JVARI_DESC-REPORT&lt;/P&gt;&lt;P&gt;VARIANT = P_VAR&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;R_C = RC&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;NOT_AUTHORIZED = 1&lt;/P&gt;&lt;P&gt;NO_REPORT = 2&lt;/P&gt;&lt;P&gt;REPORT_NOT_EXISTENT = 3&lt;/P&gt;&lt;P&gt;REPORT_NOT_SUPPLIED = 4&lt;/P&gt;&lt;P&gt;OTHERS = 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF RC = 0 AND SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DELETE OLD VARIANT&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RS_VARIANT_DELETE'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;REPORT = JVARI_DESC-REPORT&lt;/P&gt;&lt;P&gt;VARIANT = P_VAR&lt;/P&gt;&lt;P&gt;FLAG_CONFIRMSCREEN = 'X'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;NOT_AUTHORIZED = 1&lt;/P&gt;&lt;P&gt;NOT_EXECUTED = 2&lt;/P&gt;&lt;P&gt;NO_REPORT = 3&lt;/P&gt;&lt;P&gt;REPORT_NOT_EXISTENT = 4&lt;/P&gt;&lt;P&gt;REPORT_NOT_SUPPLIED = 5&lt;/P&gt;&lt;P&gt;VARIANT_LOCKED = 6&lt;/P&gt;&lt;P&gt;VARIANT_NOT_EXISTENT = 7&lt;/P&gt;&lt;P&gt;NO_CORR_INSERT = 8&lt;/P&gt;&lt;P&gt;VARIANT_PROTECTED = 9&lt;/P&gt;&lt;P&gt;OTHERS = 10.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;WRITE: 'UNABLE TO DELETE VARIANT:', P_VAR ,'STATUS=', SY-SUBRC.&lt;/P&gt;&lt;P&gt;EXIT.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;WRITE:/ P_VAR, 'DELETED'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;WRITE:/ P_VAR, 'DOES NOT EXIST'.&lt;/P&gt;&lt;P&gt;ENDIF. " ALREADY EXISTS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RS_CREATE_VARIANT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;CURR_REPORT = JVARI_DESC-REPORT&lt;/P&gt;&lt;P&gt;CURR_VARIANT = P_VAR&lt;/P&gt;&lt;P&gt;VARI_DESC = JVARI_DESC&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;VARI_CONTENTS = SELPA&lt;/P&gt;&lt;P&gt;VARI_TEXT = JVT&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;ILLEGAL_REPORT_OR_VARIANT = 1&lt;/P&gt;&lt;P&gt;ILLEGAL_VARIANTNAME = 2&lt;/P&gt;&lt;P&gt;NOT_AUTHORIZED = 3&lt;/P&gt;&lt;P&gt;NOT_EXECUTED = 4&lt;/P&gt;&lt;P&gt;REPORT_NOT_EXISTENT = 5&lt;/P&gt;&lt;P&gt;REPORT_NOT_SUPPLIED = 6&lt;/P&gt;&lt;P&gt;VARIANT_EXISTS = 7&lt;/P&gt;&lt;P&gt;VARIANT_LOCKED = 8&lt;/P&gt;&lt;P&gt;OTHERS = 9.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;WRITE:/ 'VARIANT', P_VAR, 'CREATED FOR PROGRAM', JVARI_DESC-REPORT.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;WRITE:/ 'VARIANT', P_VAR, 'NOT CREATED FOR PROGRAM', JVARI_DESC-REPORT.&lt;/P&gt;&lt;P&gt;EXIT.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RS_VARIANT_CONTENTS'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT = JVARI_DESC-REPORT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;VARIANT = P_VAR&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;VALUTAB = PARMS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OBJECTS = OBJS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;VARIANT_NON_EXISTENT = 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;VARIANT_OBSOLETE = 2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OTHERS = 3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE : / 'ERROR READING VARIANT CONTENTS.'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RS_VARIANT_TEXT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;LANGU = SY-LANGU&lt;/P&gt;&lt;P&gt;CURR_REPORT = JVARI_DESC-REPORT&lt;/P&gt;&lt;P&gt;VARIANT = P_VAR&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;V_TEXT = VARIANT_TEXT.&lt;/P&gt;&lt;P&gt;WRITE:/ 'VARIANT DESCRIPTION:', VARIANT_TEXT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT PARMS.&lt;/P&gt;&lt;P&gt;CHECK PARMS-LOW NE SPACE OR PARMS-HIGH NE SPACE.&lt;/P&gt;&lt;P&gt;READ TABLE OBJS WITH KEY NAME = PARMS-SELNAME.&lt;/P&gt;&lt;P&gt;WRITE : /2 PARMS-SELNAME, OBJS-TEXT,&lt;/P&gt;&lt;P&gt;45 PARMS-KIND,&lt;/P&gt;&lt;P&gt;PARMS-SIGN,&lt;/P&gt;&lt;P&gt;PARMS-OPTION,&lt;/P&gt;&lt;P&gt;PARMS-LOW,&lt;/P&gt;&lt;P&gt;PARMS-HIGH.&lt;/P&gt;&lt;P&gt;NEW-LINE.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;SKIP.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;some other approach....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This function module selects the Selection Screen contents&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;curr_report = sy-repid&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;selection_table = loc_int_tab&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;not_found = 1&lt;/P&gt;&lt;P&gt;no_report = 2&lt;/P&gt;&lt;P&gt;OTHERS = 3.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;MESSAGE i000 WITH 'Error in RS_REFRESH_FROM_SELECTOPTIONS'(029).&lt;/P&gt;&lt;P&gt;LEAVE LIST-PROCESSING.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Craete the variant VAR1&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL FUNCTION 'RS_CREATE_VARIANT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;curr_report = sy-repid&lt;/P&gt;&lt;P&gt;curr_variant = wf_variant&lt;/P&gt;&lt;P&gt;vari_desc = loc_varid&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;vari_contents = loc_int_tab&lt;/P&gt;&lt;P&gt;vari_text = loc_varit&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;illegal_report_or_variant = 1&lt;/P&gt;&lt;P&gt;illegal_variantname = 2&lt;/P&gt;&lt;P&gt;not_authorized = 3&lt;/P&gt;&lt;P&gt;not_executed = 4&lt;/P&gt;&lt;P&gt;report_not_existent = 5&lt;/P&gt;&lt;P&gt;report_not_supplied = 6&lt;/P&gt;&lt;P&gt;variant_exists = 7&lt;/P&gt;&lt;P&gt;variant_locked = 8&lt;/P&gt;&lt;P&gt;OTHERS = 9.&lt;/P&gt;&lt;P&gt;IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;MESSAGE i000 WITH 'Error while creating dynamic variant'(028).&lt;/P&gt;&lt;P&gt;LEAVE LIST-PROCESSING.&lt;/P&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;or&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please try the following steps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. Enter the values in the selection screen&lt;/P&gt;&lt;P&gt;2. Save the variant using the SAVE button&lt;/P&gt;&lt;P&gt;3. In the next screen for the date variable (for example) select the 'Selection variable' checkbox (L) and click on the button 'Selection variable' in the toolbar.&lt;/P&gt;&lt;P&gt;4. Now you will see this variable in the next screen with 3 types of buttons. Click on the middle button (ie. D - Dynamic date calculation).&lt;/P&gt;&lt;P&gt;5. Click on the down arrow button and select the option 'Current Date'.&lt;/P&gt;&lt;P&gt;6. Save the variant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward if helpful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Harini.S&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Nov 2007 12:05:59 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/variant-for-dynamic-selection/m-p/3046646#M721193</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-11-08T12:05:59Z</dc:date>
    </item>
    <item>
      <title>Re: Variant for dynamic selection</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/variant-for-dynamic-selection/m-p/3046647#M721194</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The report output can contain up to 90 columns in the display with the wide array of display options.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The commonly used ALV functions used for this purpose are;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. REUSE_ALV_VARIANT_DEFAULT_GET&lt;/P&gt;&lt;P&gt;2. REUSE_ALV_VARIANT_F4&lt;/P&gt;&lt;P&gt;3. REUSE_ALV_VARIANT_EXISTENCE&lt;/P&gt;&lt;P&gt;4. REUSE_ALV_EVENTS_GET&lt;/P&gt;&lt;P&gt;5. REUSE_ALV_COMMENTARY_WRITE&lt;/P&gt;&lt;P&gt;6. REUSE_ALV_FIELDCATALOG_MERGE&lt;/P&gt;&lt;P&gt;7. REUSE_ALV_LIST_DISPLAY&lt;/P&gt;&lt;P&gt;8. REUSE_ALV_GRID_DISPLAY&lt;/P&gt;&lt;P&gt;9. REUSE_ALV_POPUP_TO_SELECT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Purpose of the above Functions are differ not all the functions are required in all the ALV Report.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But either no.7 or No.8 is there in the Program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How you call this function in your report?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After completion of all the data fetching from the database and append this data into an Internal Table. say I_ITAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then use follwing function module.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;I_CALLBACK_PROGRAM = 'Prog.name'&lt;/P&gt;&lt;P&gt;I_STRUCTURE_NAME = 'I_ITAB'&lt;/P&gt;&lt;P&gt;I_DEFAULT = 'X'&lt;/P&gt;&lt;P&gt;I_SAVE = 'A'&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;T_OUTTAB = I_ITAB.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;WRITE: 'SY-SUBRC: ', SY-SUBRC .&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM. " GET_FINAL_DATA&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The object F_IT_ALV has a field, the activity ACTVT, which can&lt;/P&gt;&lt;P&gt;contain four permitted values: 01, 02, 03 and 70. Each of the&lt;/P&gt;&lt;P&gt;activities 01, 02 and 70 controls the availability of particular&lt;/P&gt;&lt;P&gt;functions (in the menu and the toolbar) of the ALV line item list:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;a) 01: "Settings -&amp;gt; Display variant -&amp;gt; Save..."&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;b) 02: "Settings -&amp;gt; Display variant -&amp;gt; Current..." and&lt;/P&gt;&lt;P&gt;"Settings -&amp;gt; Display variant -&amp;gt; Current header rows "&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;c) 70: "Settings -&amp;gt; Display variant -&amp;gt; Administration..."&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Activity 03 corresponds to the minimum authorization, which is the&lt;/P&gt;&lt;P&gt;most restricted one: The user can only select layouts which have&lt;/P&gt;&lt;P&gt;been configured already. In particular, all of the other functions&lt;/P&gt;&lt;P&gt;named above are inactive with activity 03.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now if you want to permit a user to change the column selection and&lt;/P&gt;&lt;P&gt;the headers as well as to save the layout thus created, for example,&lt;/P&gt;&lt;P&gt;but if you do not want to permit the user to administrate the&lt;/P&gt;&lt;P&gt;layouts, you grant him or her the authorization for activities 01&lt;/P&gt;&lt;P&gt;and 02.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check this link it will be mosty usefull for u&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap-img.com/fu017.htm" target="test_blank"&gt;http://www.sap-img.com/fu017.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check this sample report&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; tables:     ekko.&lt;/P&gt;&lt;P&gt;type-pools: slis.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;types: begin of t_ekko,&lt;/P&gt;&lt;P&gt;ebeln type ekpo-ebeln,&lt;/P&gt;&lt;P&gt;ebelp type ekpo-ebelp,&lt;/P&gt;&lt;P&gt;statu type ekpo-statu,&lt;/P&gt;&lt;P&gt;aedat type ekpo-aedat,&lt;/P&gt;&lt;P&gt;matnr type ekpo-matnr,&lt;/P&gt;&lt;P&gt;menge type ekpo-menge,&lt;/P&gt;&lt;P&gt;meins type ekpo-meins,&lt;/P&gt;&lt;P&gt;netpr type ekpo-netpr,&lt;/P&gt;&lt;P&gt;peinh type ekpo-peinh,&lt;/P&gt;&lt;P&gt;line_color(4) type c, "Used to store row color&lt;/P&gt;&lt;P&gt;end of t_ekko.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;data: it_ekko type standard table of t_ekko initial size 0,&lt;/P&gt;&lt;P&gt;       wa_ekko type t_ekko.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*ALV data declarations&lt;/P&gt;&lt;P&gt;data: fieldcatalog type slis_t_fieldcat_alv with header line,&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      gd_tab_group type slis_t_sp_group_alv,&lt;/P&gt;&lt;P&gt;      gd_layout    type slis_layout_alv,&lt;/P&gt;&lt;P&gt;      gd_repid     like sy-repid.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Data declaration for EVENT and PRINT PARAMETER.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data: gt_events type slis_t_event,&lt;/P&gt;&lt;P&gt;       gd_prntparams type slis_print_alv.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data declaration for sorting.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data : it_sortcat   type slis_sortinfo_alv occurs 1,&lt;/P&gt;&lt;P&gt;       wa_sort like line of it_sortcat.&lt;/P&gt;&lt;P&gt;data :  i_list_comments type slis_t_listheader.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt;  perform data_retrieval.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; perform user_command.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform build_fieldcatalog.&lt;/P&gt;&lt;P&gt;  perform build_layout.&lt;/P&gt;&lt;P&gt;  perform build_events.&lt;/P&gt;&lt;P&gt;  perform build_print_params.&lt;/P&gt;&lt;P&gt;  perform build_sortcat.&lt;/P&gt;&lt;P&gt;  perform display_alv_report.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;end-of-selection.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*TOP-OF-PAGE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; PERFORM top-of-page.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;end-of-page.&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp;      Form  build_fieldcatalog&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------" /&gt;&lt;P&gt;form build_fieldcatalog.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'EBELN'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'Purchase Order'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 0.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 10.&lt;/P&gt;&lt;P&gt;  fieldcatalog-emphasize   = 'X'.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'EBELP'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'PO Item'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 1.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'STATU'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'Status'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 2.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'AEDAT'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'Item change date'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 3.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'MATNR'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'Material Number'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 4.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'MENGE'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'PO quantity'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 5.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum = 'X'.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'MEINS'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'Order Unit'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 6.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'NETPR'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'Net Price'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 7.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-datatype     = 'CURR'.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'PEINH'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'Price Unit'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 8.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;endform.                    " build_fieldcatalog&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp;      Form  build_layout&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------" /&gt;&lt;P&gt;form build_layout.&lt;/P&gt;&lt;P&gt;  gd_layout-no_input          = 'X'.&lt;/P&gt;&lt;P&gt;  gd_layout-colwidth_optimize = 'X'.&lt;/P&gt;&lt;P&gt;  gd_layout-totals_text       = 'Totals'(201).&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set layout field for row attributes(i.e. color)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  gd_layout-info_fieldname =      'LINE_COLOR'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; gd_layout-totals_only        = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; gd_layout-f2code            = 'DISP'.  "Sets fcode for&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*when double&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                        "click(press f2)*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; gd_layout-group_change_edit = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; gd_layout-header_text       = 'helllllo'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;endform.                    " build_layout&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp;      Form  data_retrieval&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------" /&gt;&lt;P&gt;form data_retrieval.&lt;/P&gt;&lt;P&gt;  data: ld_color(1) type c.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  select ebeln ebelp statu aedat matnr menge meins netpr&lt;/P&gt;&lt;P&gt;peinh from ekpo  into table it_ekko.&lt;/P&gt;&lt;P&gt;*Populate field with color attributes&lt;/P&gt;&lt;P&gt;  loop at it_ekko into wa_ekko.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate color variable with colour properties&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Char 1 = C (This is a color property)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Char 2 = 3 (Color codes: 1 - 7)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Char 3 = Intensified on/off ( 1 or 0 )&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Char 4 = Inverse display on/off ( 1 or 0 )&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          i.e. wa_ekko-line_color = 'C410'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    ld_color = ld_color + 1.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Only 7 colours so need to reset color value&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if ld_color = 8.&lt;/P&gt;&lt;P&gt;      ld_color = 1.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    concatenate 'C' ld_color '10' into wa_ekko-line_color.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;wa_ekko-line_color = 'C410'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    modify it_ekko from wa_ekko.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;endform.                    " data_retrieval&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp;      Form  display_alv_report&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------" /&gt;&lt;P&gt;form display_alv_report.&lt;/P&gt;&lt;P&gt;  gd_repid = sy-repid.&lt;/P&gt;&lt;P&gt;  call function 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt;       exporting&lt;/P&gt;&lt;P&gt;            i_callback_program       = gd_repid&lt;/P&gt;&lt;P&gt;            is_layout                = gd_layout&lt;/P&gt;&lt;P&gt;            i_callback_top_of_page   = 'TOP-OF-PAGE'&lt;/P&gt;&lt;P&gt;            i_callback_user_command  = 'USER_COMMAND'&lt;/P&gt;&lt;P&gt;            i_callback_pf_status_set = 'SET_PF_STATUS'&lt;/P&gt;&lt;P&gt;            it_event                 = gt_events&lt;/P&gt;&lt;P&gt;            is_print                 = gd_prntparams&lt;/P&gt;&lt;P&gt;            it_fieldcat              = fieldcatalog[]&lt;/P&gt;&lt;P&gt;            it_sort                 = it_sortcat&lt;/P&gt;&lt;P&gt;            i_save                   = 'X'&lt;/P&gt;&lt;P&gt;       tables&lt;/P&gt;&lt;P&gt;            t_outtab                 = it_ekko&lt;/P&gt;&lt;P&gt;       exceptions&lt;/P&gt;&lt;P&gt;            program_error            = 1&lt;/P&gt;&lt;P&gt;            others                   = 2.&lt;/P&gt;&lt;P&gt;  if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;endform.              " DISPLAY_ALV_REPORT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp;      Form  user_command&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp;      Form  top-of-page&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------" /&gt;&lt;P&gt;form top-of-page.&lt;/P&gt;&lt;P&gt;*ALV Header declarations&lt;/P&gt;&lt;P&gt;  data: t_header type slis_t_listheader,&lt;/P&gt;&lt;P&gt;        wa_header type slis_listheader,&lt;/P&gt;&lt;P&gt;        t_line like wa_header-info,&lt;/P&gt;&lt;P&gt;        ld_lines type i,&lt;/P&gt;&lt;P&gt;        ld_linesc(10) type c.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Title&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  wa_header-typ  = 'H'.&lt;/P&gt;&lt;P&gt;  wa_header-info = 'EKKO Table Report'.&lt;/P&gt;&lt;P&gt;  append wa_header to t_header.&lt;/P&gt;&lt;P&gt;  clear wa_header.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  wa_header-typ  = 'S'.&lt;/P&gt;&lt;P&gt;  wa_header-key = 'Date: '.&lt;/P&gt;&lt;P&gt;  concatenate  sy-datum+6(2) '.'&lt;/P&gt;&lt;P&gt;               sy-datum+4(2) '.'&lt;/P&gt;&lt;P&gt;   sy-datum(4) into wa_header-info."todays date&lt;/P&gt;&lt;P&gt;  append wa_header to t_header.&lt;/P&gt;&lt;P&gt;  clear: wa_header.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Total No. of Records Selected&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  describe table it_ekko lines ld_lines.&lt;/P&gt;&lt;P&gt;  ld_linesc = ld_lines.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  concatenate 'Total No. of Records Selected: ' ld_linesc&lt;/P&gt;&lt;P&gt;     into t_line separated by space.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  wa_header-typ  = 'A'.&lt;/P&gt;&lt;P&gt;  wa_header-info = t_line.&lt;/P&gt;&lt;P&gt;  append wa_header to t_header.&lt;/P&gt;&lt;P&gt;  clear: wa_header, t_line.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  call function 'REUSE_ALV_COMMENTARY_WRITE'&lt;/P&gt;&lt;P&gt;       exporting&lt;/P&gt;&lt;P&gt;       it_list_commentary = t_header&lt;/P&gt;&lt;P&gt;       i_logo             = 'GANESH_LOGO'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;endform.                    " top-of-page&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM user_command                                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      ........                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  R_UCOMM                                                       *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  RS_SELFIELD                                                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form user_command using r_ucomm like sy-ucomm&lt;/P&gt;&lt;P&gt;rs_selfield type slis_selfield.&lt;/P&gt;&lt;P&gt;  case r_ucomm.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    when '&amp;amp;IC1'.&lt;/P&gt;&lt;P&gt;      if rs_selfield-fieldname = 'EBELN'.&lt;/P&gt;&lt;P&gt;        read table it_ekko into wa_ekko index rs_selfield-tabindex.&lt;/P&gt;&lt;P&gt;        set parameter id 'BES' field wa_ekko-ebeln.&lt;/P&gt;&lt;P&gt;        call transaction 'ME23N' and skip first screen.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    when 'ULHAS'.&lt;/P&gt;&lt;P&gt;      if rs_selfield-fieldname = 'EBELN'.&lt;/P&gt;&lt;P&gt;        read table it_ekko into wa_ekko index rs_selfield-tabindex.&lt;/P&gt;&lt;P&gt;        set parameter id 'BES' field wa_ekko-ebeln.&lt;/P&gt;&lt;P&gt;        call transaction 'ME23N' and skip first screen.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  endcase.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM set_pf_status                                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      ........                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  RT_EXTAB                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form set_pf_status using rt_extab type slis_t_extab.&lt;/P&gt;&lt;P&gt;  set pf-status 'ZNEWSTATUS'.&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_events&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form build_events.&lt;/P&gt;&lt;P&gt;  data: ls_event type slis_alv_event.&lt;/P&gt;&lt;P&gt;  call function 'REUSE_ALV_EVENTS_GET'&lt;/P&gt;&lt;P&gt;   exporting&lt;/P&gt;&lt;P&gt;     i_list_type           = 0&lt;/P&gt;&lt;P&gt;   importing&lt;/P&gt;&lt;P&gt;     et_events             = gt_events[]&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  LIST_TYPE_WRONG       = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                = 2&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;  if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  read table gt_events with key name =  slis_ev_end_of_page&lt;/P&gt;&lt;P&gt;              into ls_event.&lt;/P&gt;&lt;P&gt;  if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    move 'END_OF_PAGE' to ls_event-form.&lt;/P&gt;&lt;P&gt;    append ls_event to gt_events.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  read table gt_events with key name =  slis_ev_end_of_list&lt;/P&gt;&lt;P&gt;              into ls_event.&lt;/P&gt;&lt;P&gt;  if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    move 'END_OF_LIST' to ls_event-form.&lt;/P&gt;&lt;P&gt;    append ls_event to gt_events.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;endform.                    " build_events&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_print_params&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form build_print_params.&lt;/P&gt;&lt;P&gt;  gd_prntparams-reserve_lines = '3'.   "Lines reserved for footer&lt;/P&gt;&lt;P&gt;  gd_prntparams-no_coverpage = 'X'.&lt;/P&gt;&lt;P&gt;endform.                    " build_print_params&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM END_OF_PAGE                                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      ........                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form end_of_page.&lt;/P&gt;&lt;P&gt;  data: listwidth type i,&lt;/P&gt;&lt;P&gt;  ld_pagepos(10) type c,&lt;/P&gt;&lt;P&gt;  ld_page(10)    type c.&lt;/P&gt;&lt;P&gt;  write: sy-uline(50).&lt;/P&gt;&lt;P&gt;  skip.  write:/40 'Page:', sy-pagno .&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM END_OF_LIST                                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      ........                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form end_of_list.&lt;/P&gt;&lt;P&gt;  data: listwidth type i,&lt;/P&gt;&lt;P&gt;  ld_pagepos(10) type c,&lt;/P&gt;&lt;P&gt;  ld_page(10)    type c.&lt;/P&gt;&lt;P&gt;  skip.  write:/40 'Page:', sy-pagno .&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_sortcat&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form build_sortcat.&lt;/P&gt;&lt;P&gt;wa_sort-spos      = 1.&lt;/P&gt;&lt;P&gt;wa_sort-fieldname = 'EBELN'.&lt;/P&gt;&lt;P&gt;append wa_sort to it_sortcat.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;wa_sort-spos      = 2.&lt;/P&gt;&lt;P&gt;wa_sort-fieldname = 'EBELP'.&lt;/P&gt;&lt;P&gt;append wa_sort to it_sortcat.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;endform.                    " build_sortcat&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;VARIT--&amp;gt; Variant texts&lt;/P&gt;&lt;P&gt;VARID--&amp;gt; Variant directory&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Using values from Table TVARVC is especially useful in background processing. You do not have to create a new variant for each minor change of values or repeatedly change an existing variant, since you only have to change the values stored in TVARVC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, note that every change of a value in Table TVARVC affects all variants using this particular variable.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check this link&lt;/P&gt;&lt;P&gt;&lt;A class="jive_macro jive_macro_message" href="https://community.sap.com/" __jive_macro_name="message" modifiedtitle="true" __default_attr="4155748"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Pavan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Nov 2007 12:35:34 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/variant-for-dynamic-selection/m-p/3046647#M721194</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-11-08T12:35:34Z</dc:date>
    </item>
  </channel>
</rss>

