<?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 problem in inner join in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-inner-join/m-p/2837748#M664529</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Gurus,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am developing profit centere wise collections so I am fetching the data from FAGLFLEXA Table  base on BSAD and BSID.&lt;/P&gt;&lt;P&gt;first I am fetdching the data from (BSAD FAGLEFLEXA inner join) and next&lt;/P&gt;&lt;P&gt;  (BSID FAGLEFLEXA inner join) &lt;/P&gt;&lt;P&gt;the problem is: one document ex: 600034095 is existed in BSAD and BSID this doment having  4 line items in FAGLFLEXA.&lt;/P&gt;&lt;P&gt;In first inner join itsm coming correct(4 line items). but in second inner join 8 line item s are coming.&lt;/P&gt;&lt;P&gt;how can I solve the problem.&lt;/P&gt;&lt;P&gt;the code  is below:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT a&lt;SUB&gt;kunnr a&lt;/SUB&gt;blart  a&lt;SUB&gt;rebzg  b&lt;/SUB&gt;docnr  b&lt;SUB&gt;docln  b&lt;/SUB&gt;prctr b&lt;SUB&gt;hsl  b&lt;/SUB&gt;drcrk  b~bschl&lt;/P&gt;&lt;P&gt;         b~racct&lt;/P&gt;&lt;P&gt;         INTO TABLE it_bsad&lt;/P&gt;&lt;P&gt;         FROM bsad AS A&lt;/P&gt;&lt;P&gt;         INNER JOIN faglflexa AS b&lt;/P&gt;&lt;P&gt;         ON b&lt;SUB&gt;docnr = a&lt;/SUB&gt;belnr&lt;/P&gt;&lt;P&gt;         WHERE a~bukrs IN s_bukrs&lt;/P&gt;&lt;P&gt;         AND a~budat IN s_budat&lt;/P&gt;&lt;P&gt;         AND  b~kokrs  = p_kokrs&lt;/P&gt;&lt;P&gt;         AND   b~rbusa  IN s_gsber&lt;/P&gt;&lt;P&gt;         AND B~prctr IN s_prctr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; SELECT a&lt;SUB&gt;kunnr   a&lt;/SUB&gt;blart a&lt;SUB&gt;rebzg   b&lt;/SUB&gt;docnr  b&lt;SUB&gt;docln  b&lt;/SUB&gt;prctr  b&lt;SUB&gt;hsl b&lt;/SUB&gt;drcrk b~bschl&lt;/P&gt;&lt;P&gt;         b~racct&lt;/P&gt;&lt;P&gt;         INTO TABLE it_bsid&lt;/P&gt;&lt;P&gt;         FROM bsid AS A&lt;/P&gt;&lt;P&gt;         INNER JOIN faglflexa AS b&lt;/P&gt;&lt;P&gt;         ON b&lt;SUB&gt;docnr = a&lt;/SUB&gt;belnr&lt;/P&gt;&lt;P&gt;         WHERE a~bukrs IN s_bukrs&lt;/P&gt;&lt;P&gt;         AND a~budat IN s_budat&lt;/P&gt;&lt;P&gt;         AND  b~kokrs  = p_kokrs&lt;/P&gt;&lt;P&gt;         AND   b~rbusa  IN s_gsber&lt;/P&gt;&lt;P&gt;         AND B~prctr IN s_prctr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please if any body know give me the answer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Shashikumar.G&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 22 Sep 2007 07:35:07 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-09-22T07:35:07Z</dc:date>
    <item>
      <title>problem in inner join</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-inner-join/m-p/2837748#M664529</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Gurus,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am developing profit centere wise collections so I am fetching the data from FAGLFLEXA Table  base on BSAD and BSID.&lt;/P&gt;&lt;P&gt;first I am fetdching the data from (BSAD FAGLEFLEXA inner join) and next&lt;/P&gt;&lt;P&gt;  (BSID FAGLEFLEXA inner join) &lt;/P&gt;&lt;P&gt;the problem is: one document ex: 600034095 is existed in BSAD and BSID this doment having  4 line items in FAGLFLEXA.&lt;/P&gt;&lt;P&gt;In first inner join itsm coming correct(4 line items). but in second inner join 8 line item s are coming.&lt;/P&gt;&lt;P&gt;how can I solve the problem.&lt;/P&gt;&lt;P&gt;the code  is below:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT a&lt;SUB&gt;kunnr a&lt;/SUB&gt;blart  a&lt;SUB&gt;rebzg  b&lt;/SUB&gt;docnr  b&lt;SUB&gt;docln  b&lt;/SUB&gt;prctr b&lt;SUB&gt;hsl  b&lt;/SUB&gt;drcrk  b~bschl&lt;/P&gt;&lt;P&gt;         b~racct&lt;/P&gt;&lt;P&gt;         INTO TABLE it_bsad&lt;/P&gt;&lt;P&gt;         FROM bsad AS A&lt;/P&gt;&lt;P&gt;         INNER JOIN faglflexa AS b&lt;/P&gt;&lt;P&gt;         ON b&lt;SUB&gt;docnr = a&lt;/SUB&gt;belnr&lt;/P&gt;&lt;P&gt;         WHERE a~bukrs IN s_bukrs&lt;/P&gt;&lt;P&gt;         AND a~budat IN s_budat&lt;/P&gt;&lt;P&gt;         AND  b~kokrs  = p_kokrs&lt;/P&gt;&lt;P&gt;         AND   b~rbusa  IN s_gsber&lt;/P&gt;&lt;P&gt;         AND B~prctr IN s_prctr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; SELECT a&lt;SUB&gt;kunnr   a&lt;/SUB&gt;blart a&lt;SUB&gt;rebzg   b&lt;/SUB&gt;docnr  b&lt;SUB&gt;docln  b&lt;/SUB&gt;prctr  b&lt;SUB&gt;hsl b&lt;/SUB&gt;drcrk b~bschl&lt;/P&gt;&lt;P&gt;         b~racct&lt;/P&gt;&lt;P&gt;         INTO TABLE it_bsid&lt;/P&gt;&lt;P&gt;         FROM bsid AS A&lt;/P&gt;&lt;P&gt;         INNER JOIN faglflexa AS b&lt;/P&gt;&lt;P&gt;         ON b&lt;SUB&gt;docnr = a&lt;/SUB&gt;belnr&lt;/P&gt;&lt;P&gt;         WHERE a~bukrs IN s_bukrs&lt;/P&gt;&lt;P&gt;         AND a~budat IN s_budat&lt;/P&gt;&lt;P&gt;         AND  b~kokrs  = p_kokrs&lt;/P&gt;&lt;P&gt;         AND   b~rbusa  IN s_gsber&lt;/P&gt;&lt;P&gt;         AND B~prctr IN s_prctr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please if any body know give me the answer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Shashikumar.G&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 22 Sep 2007 07:35:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-inner-join/m-p/2837748#M664529</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-22T07:35:07Z</dc:date>
    </item>
    <item>
      <title>Re: problem in inner join</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-inner-join/m-p/2837749#M664530</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 following code helps u.  Actually it's a programe which automatically creates the code if u give the inputs.  it's like a tool.  U  create zprograme and put this code . &lt;/P&gt;&lt;P&gt;&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; Report  ZJOINER                                                     *&lt;/P&gt;&lt;P&gt;*&amp;amp;                                                                     *&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;                                                                     *&lt;/P&gt;&lt;P&gt;*&amp;amp;                                                                     *&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;&lt;/P&gt;&lt;P&gt;REPORT  ZJOINER NO STANDARD PAGE HEADING LINE-SIZE 130.&lt;/P&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;LI level="1" type="ul"&gt;&lt;P&gt;                           ( o o )&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   &lt;EM&gt;----------------&lt;/EM&gt;&lt;DEL&gt;&lt;EM&gt;.oooO&lt;/EM&gt;&lt;/DEL&gt;(_)&lt;DEL&gt;Oooo.&lt;/DEL&gt;----------------&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   |  ZJOINER - Generates join-based SELECT statements   |&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   |        so you can spend more time on SDN &lt;SPAN __jive_emoticon_name="wink"&gt;&lt;/SPAN&gt;        |&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   |    Concept and code:         Dushyant Shetty        |&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   |                    .oooO                            |&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   |                    (   )   Oooo.           20070711 |&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   &lt;EM&gt;------------------&lt;/EM&gt;&lt;DEL&gt;&lt;EM&gt;-\ (&lt;/EM&gt;&lt;/DEL&gt;&lt;DEL&gt;(   )&lt;/DEL&gt;------------------&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                          \_)    ) /&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                (_/&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*REPORT  zjoiner NO STANDARD PAGE HEADING LINE-SIZE 130.&lt;/P&gt;&lt;P&gt;TYPE-POOLS: icon.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: flagpop,&lt;/P&gt;&lt;P&gt;      title LIKE sy-title VALUE 'Select the tables you wish to join',&lt;/P&gt;&lt;P&gt;      BEGIN OF watab,&lt;/P&gt;&lt;P&gt;      tno TYPE i,&lt;/P&gt;&lt;P&gt;      parent TYPE i,&lt;/P&gt;&lt;P&gt;      tabname TYPE dd02l-tabname,&lt;/P&gt;&lt;P&gt;      END OF watab,&lt;/P&gt;&lt;P&gt;      jtables LIKE TABLE OF watab,&lt;/P&gt;&lt;P&gt;      cur_field(25),&lt;/P&gt;&lt;P&gt;      b_sel(18) VALUE 'Select base table',&lt;/P&gt;&lt;P&gt;      b_rel(14) VALUE 'Related Tables',&lt;/P&gt;&lt;P&gt;      b_del(12) VALUE 'Delete Table',&lt;/P&gt;&lt;P&gt;      b_dis(18) VALUE 'Display Conditions'      ,&lt;/P&gt;&lt;P&gt;      b_fld(16)  VALUE 'Select Fields',&lt;/P&gt;&lt;P&gt;      b_exe(30) VALUE 'Generate SELECT statement!',&lt;/P&gt;&lt;P&gt;      b_cop(30) VALUE 'Copy Query to Clipboard...',&lt;/P&gt;&lt;P&gt;      b_hel(36) VALUE 'Click here for detailed instructions',&lt;/P&gt;&lt;P&gt;       BEGIN OF wa_joins,&lt;/P&gt;&lt;P&gt;       ltab TYPE dd02l-tabname,&lt;/P&gt;&lt;P&gt;       rtab TYPE dd02l-tabname,&lt;/P&gt;&lt;P&gt;       jtype,&lt;/P&gt;&lt;P&gt;       field1 TYPE dd03l-fieldname,&lt;/P&gt;&lt;P&gt;       field2 TYPE dd03l-fieldname,&lt;/P&gt;&lt;P&gt;       END OF wa_joins,&lt;/P&gt;&lt;P&gt;       it_joins LIKE TABLE OF wa_joins,&lt;/P&gt;&lt;P&gt;       BEGIN OF wa_av_fields,&lt;/P&gt;&lt;P&gt;       tabname TYPE dd02l-tabname,&lt;/P&gt;&lt;P&gt;       fieldname TYPE dd03l-fieldname,&lt;/P&gt;&lt;P&gt;       alias  TYPE dd03l-fieldname,&lt;/P&gt;&lt;P&gt;       text TYPE dd04t-scrtext_l,&lt;/P&gt;&lt;P&gt;       selected,&lt;/P&gt;&lt;P&gt;       pos TYPE i,&lt;/P&gt;&lt;P&gt;       END OF wa_av_fields,&lt;/P&gt;&lt;P&gt;       it_av_fields LIKE TABLE OF wa_av_fields,&lt;/P&gt;&lt;P&gt;       t_done(75) VALUE 'Click the cancel button    (F12) when done..',&lt;/P&gt;&lt;P&gt;       flagsel,&lt;/P&gt;&lt;P&gt;       qtext(72),&lt;/P&gt;&lt;P&gt;       qtab LIKE TABLE OF qtext,&lt;/P&gt;&lt;P&gt;       not_all.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Declarations for relationships&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ddtab_tabdef,&lt;/P&gt;&lt;P&gt;         dd02v LIKE dd02v,&lt;/P&gt;&lt;P&gt;         dd03p LIKE dd03p OCCURS 0,&lt;/P&gt;&lt;P&gt;         dd05m LIKE dd05m OCCURS 0,&lt;/P&gt;&lt;P&gt;         dd08v LIKE dd08v OCCURS 0,&lt;/P&gt;&lt;P&gt;       END OF ddtab_tabdef,&lt;/P&gt;&lt;P&gt;       ddtab_set TYPE ddtab_tabdef OCCURS 10.&lt;/P&gt;&lt;P&gt;DATA BEGIN OF ddtb.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE dd27p.&lt;/P&gt;&lt;P&gt;DATA: mark(1),&lt;/P&gt;&lt;P&gt;      mod(1).&lt;/P&gt;&lt;P&gt;DATA END OF ddtb.&lt;/P&gt;&lt;P&gt;DATA: ddtb_tab LIKE ddtb OCCURS 50 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: base_tabs TYPE ddtab_set.&lt;/P&gt;&lt;P&gt;DATA BEGIN OF itab1.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE dd26v.&lt;/P&gt;&lt;P&gt;DATA: mark(1).&lt;/P&gt;&lt;P&gt;DATA END OF itab1.&lt;/P&gt;&lt;P&gt;DATA: tc1_tab LIKE itab1 OCCURS 10 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA BEGIN OF itab2.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE dd28j.&lt;/P&gt;&lt;P&gt;DATA: mark(1).&lt;/P&gt;&lt;P&gt;DATA END OF itab2.&lt;/P&gt;&lt;P&gt;DATA: tc2_tab LIKE itab2 OCCURS 10 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA BEGIN OF itab3.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE dd28v.&lt;/P&gt;&lt;P&gt;DATA: mark(1).&lt;/P&gt;&lt;P&gt;DATA END OF itab3.&lt;/P&gt;&lt;P&gt;DATA: tc3_tab LIKE itab3 OCCURS 10 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: i TYPE i.&lt;/P&gt;&lt;P&gt;DATA subrc LIKE sy-subrc.&lt;/P&gt;&lt;P&gt;DATA: ddxx LIKE dd25v.&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;      CLASS lcl_type DEFINITION&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;*&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;P&gt;CLASS lcl_type DEFINITION.&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;    CLASS-METHODS get_type IMPORTING name TYPE string&lt;/P&gt;&lt;P&gt;             RETURNING value(ty) TYPE string.&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "lcl_type DEFINITION&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;      CLASS lcl_type IMPLEMENTATION&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;*&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;P&gt;CLASS lcl_type IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;  METHOD get_type.&lt;/P&gt;&lt;P&gt;    DATA: des TYPE REF TO cl_abap_elemdescr,&lt;/P&gt;&lt;P&gt;    df TYPE dfies.&lt;/P&gt;&lt;P&gt;    des ?= cl_abap_typedescr=&amp;gt;describe_by_name( name ).&lt;/P&gt;&lt;P&gt;    df = des-&amp;gt;get_ddic_field( ).&lt;/P&gt;&lt;P&gt;    ty = df-datatype.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "get_type&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "lcl_type IMPLEMENTATION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  SET BLANK LINES ON.&lt;/P&gt;&lt;P&gt;  sy-title = title.&lt;/P&gt;&lt;P&gt;  watab-tno = 1.&lt;/P&gt;&lt;P&gt;  APPEND watab TO jtables.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM list_tabs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT LINE-SELECTION.&lt;/P&gt;&lt;P&gt;  CASE sy-lsind.&lt;/P&gt;&lt;P&gt;    WHEN 1.&lt;/P&gt;&lt;P&gt;      GET CURSOR FIELD cur_field.&lt;/P&gt;&lt;P&gt;      CASE cur_field.&lt;/P&gt;&lt;P&gt;        WHEN 'ICON_SEARCH' OR 'B_SEL'.&lt;/P&gt;&lt;P&gt;          PERFORM value_help.&lt;/P&gt;&lt;P&gt;          PERFORM list_tabs.&lt;/P&gt;&lt;P&gt;          sy-lsind = 0.&lt;/P&gt;&lt;P&gt;        WHEN 'ICON_REFERENCE_LIST' OR 'B_REL'.&lt;/P&gt;&lt;P&gt;          CLEAR: ddtb, ddtb_tab[], base_tabs[], itab1, tc1_tab[],&lt;/P&gt;&lt;P&gt;                 itab2, tc2_tab[], itab3, tc3_tab[],&lt;/P&gt;&lt;P&gt;                 i, subrc, ddxx.&lt;/P&gt;&lt;P&gt;          tc1_tab-viewname = 'ZV_DUSTYPLANET'.&lt;/P&gt;&lt;P&gt;          tc1_tab-tabname = watab-tabname.&lt;/P&gt;&lt;P&gt;          tc1_tab-fortabname = watab-tabname.&lt;/P&gt;&lt;P&gt;          tc1_tab-mark = 'X'.&lt;/P&gt;&lt;P&gt;          APPEND tc1_tab.&lt;/P&gt;&lt;P&gt;          PERFORM v_list_joins.&lt;/P&gt;&lt;P&gt;          CLEAR qtab[].&lt;/P&gt;&lt;P&gt;          PERFORM list_tabs.&lt;/P&gt;&lt;P&gt;          sy-lsind = 0.&lt;/P&gt;&lt;P&gt;        WHEN 'ICON_DISPLAY' OR 'B_DIS'.&lt;/P&gt;&lt;P&gt;          CHECK watab-tno NE 1.&lt;/P&gt;&lt;P&gt;          PERFORM show_relationship.&lt;/P&gt;&lt;P&gt;        WHEN 'ICON_DELETE' OR 'B_DEL'.&lt;/P&gt;&lt;P&gt;          PERFORM confirm_delete.&lt;/P&gt;&lt;P&gt;          CLEAR qtab[].&lt;/P&gt;&lt;P&gt;          PERFORM del_table_and_joins USING watab-tno.&lt;/P&gt;&lt;P&gt;          PERFORM reorg_tables.&lt;/P&gt;&lt;P&gt;          PERFORM list_tabs.&lt;/P&gt;&lt;P&gt;          sy-lsind = 0.&lt;/P&gt;&lt;P&gt;        WHEN 'ICON_TERMINOLOGY' OR 'B_FLD'.&lt;/P&gt;&lt;P&gt;          CLEAR qtab[].&lt;/P&gt;&lt;P&gt;          WINDOW STARTING AT 10 10 ENDING AT 120 25.&lt;/P&gt;&lt;P&gt;          PERFORM select_fields.&lt;/P&gt;&lt;P&gt;        WHEN 'ICON_EXECUTE_OBJECT' OR 'B_EXE'.&lt;/P&gt;&lt;P&gt;          PERFORM check_fields.&lt;/P&gt;&lt;P&gt;          PERFORM gen_query.&lt;/P&gt;&lt;P&gt;          PERFORM list_tabs.&lt;/P&gt;&lt;P&gt;          sy-lsind = 0.&lt;/P&gt;&lt;P&gt;        WHEN 'ICON_SYSTEM_COPY' OR 'B_COP'.&lt;/P&gt;&lt;P&gt;          PERFORM copy_to_clipboard.&lt;/P&gt;&lt;P&gt;        WHEN 'ICON_SYSTEM_HELP' OR 'B_HEL'.&lt;/P&gt;&lt;P&gt;          PERFORM load_help.&lt;/P&gt;&lt;P&gt;      ENDCASE.&lt;/P&gt;&lt;P&gt;    WHEN 2.&lt;/P&gt;&lt;P&gt;      GET CURSOR FIELD cur_field.&lt;/P&gt;&lt;P&gt;      CASE cur_field.&lt;/P&gt;&lt;P&gt;        WHEN 'ICON_INSERT_ROW'.&lt;/P&gt;&lt;P&gt;          READ TABLE it_av_fields INTO wa_av_fields&lt;/P&gt;&lt;P&gt;                    WITH KEY tabname = wa_av_fields-tabname&lt;/P&gt;&lt;P&gt;                           fieldname = wa_av_fields-fieldname.&lt;/P&gt;&lt;P&gt;          PERFORM check_alias USING wa_av_fields.&lt;/P&gt;&lt;P&gt;          wa_av_fields-selected = 'X'.&lt;/P&gt;&lt;P&gt;          MODIFY it_av_fields&lt;/P&gt;&lt;P&gt;                    FROM wa_av_fields&lt;/P&gt;&lt;P&gt;                    TRANSPORTING selected alias&lt;/P&gt;&lt;P&gt;                     WHERE tabname = wa_av_fields-tabname&lt;/P&gt;&lt;P&gt;                         AND fieldname = wa_av_fields-fieldname.&lt;/P&gt;&lt;P&gt;          PERFORM select_fields.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          SCROLL LIST INDEX sy-lsind TO PAGE 1 LINE sy-staro.&lt;/P&gt;&lt;P&gt;          sy-lsind = 1.&lt;/P&gt;&lt;P&gt;        WHEN 'ICON_DELETE_ROW'.&lt;/P&gt;&lt;P&gt;          READ TABLE it_av_fields INTO wa_av_fields&lt;/P&gt;&lt;P&gt;                    WITH KEY tabname = wa_av_fields-tabname&lt;/P&gt;&lt;P&gt;                           fieldname = wa_av_fields-fieldname.&lt;/P&gt;&lt;P&gt;          CLEAR: wa_av_fields-selected,&lt;/P&gt;&lt;P&gt;                wa_av_fields-alias.&lt;/P&gt;&lt;P&gt;          MODIFY it_av_fields FROM wa_av_fields INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;          PERFORM select_fields.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          SCROLL LIST INDEX sy-lsind TO PAGE 1 LINE sy-staro.&lt;/P&gt;&lt;P&gt;          sy-lsind = 1.&lt;/P&gt;&lt;P&gt;        WHEN 'ICON_WORKFLOW_ACTIVITY'.&lt;/P&gt;&lt;P&gt;          PERFORM add_all_fields USING wa_av_fields-tabname.&lt;/P&gt;&lt;P&gt;          PERFORM select_fields.&lt;/P&gt;&lt;P&gt;          SCROLL LIST INDEX sy-lsind TO PAGE 1 LINE sy-staro.&lt;/P&gt;&lt;P&gt;          sy-lsind = 1.&lt;/P&gt;&lt;P&gt;      ENDCASE.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TOP-OF-PAGE.&lt;/P&gt;&lt;P&gt;  FORMAT COLOR COL_HEADING INTENSIFIED.&lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;P&gt;  WRITE: sy-vline,&lt;/P&gt;&lt;P&gt;           'Select the tables you wish to join',&lt;/P&gt;&lt;P&gt;           ' by clicking on the appropriate icons...',&lt;/P&gt;&lt;P&gt;           icon_system_help AS ICON HOTSPOT,&lt;/P&gt;&lt;P&gt;           b_hel COLOR COL_TOTAL INTENSIFIED HOTSPOT,&lt;/P&gt;&lt;P&gt;           icon_system_help AS ICON HOTSPOT,&lt;/P&gt;&lt;P&gt;         AT sy-linsz sy-vline.&lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TOP-OF-PAGE DURING LINE-SELECTION.&lt;/P&gt;&lt;P&gt;  IF flagpop IS INITIAL AND flagsel EQ 'X'.&lt;/P&gt;&lt;P&gt;    ULINE.&lt;/P&gt;&lt;P&gt;    WRITE: sy-vline,&lt;/P&gt;&lt;P&gt;           'Select the fields you wish to use from the list below',&lt;/P&gt;&lt;P&gt;           AT sy-linsz sy-vline.&lt;/P&gt;&lt;P&gt;    WRITE: sy-vline,&lt;/P&gt;&lt;P&gt;           (53) t_done  COLOR COL_TOTAL CENTERED,&lt;/P&gt;&lt;P&gt;           AT 31 icon_cancel COLOR COL_TOTAL AS ICON,&lt;/P&gt;&lt;P&gt;           AT sy-linsz sy-vline.&lt;/P&gt;&lt;P&gt;  ELSEIF cur_field EQ 'B_DIS' OR cur_field EQ 'ICON_DISPLAY'.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR COL_HEADING INTENSIFIED.&lt;/P&gt;&lt;P&gt;    ULINE.&lt;/P&gt;&lt;P&gt;    WRITE: sy-vline,&lt;/P&gt;&lt;P&gt;             'Join conditions',&lt;/P&gt;&lt;P&gt;           AT sy-linsz sy-vline.&lt;/P&gt;&lt;P&gt;    ULINE.&lt;/P&gt;&lt;P&gt;    CLEAR cur_field.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR COL_HEADING INTENSIFIED.&lt;/P&gt;&lt;P&gt;    ULINE.&lt;/P&gt;&lt;P&gt;    WRITE: sy-vline,&lt;/P&gt;&lt;P&gt;             'Select the tables you wish to join',&lt;/P&gt;&lt;P&gt;             ' by clicking on the appropriate icons...',&lt;/P&gt;&lt;P&gt;             icon_system_help AS ICON HOTSPOT,&lt;/P&gt;&lt;P&gt;           b_hel COLOR COL_TOTAL INTENSIFIED HOTSPOT,&lt;/P&gt;&lt;P&gt;           icon_system_help AS ICON HOTSPOT,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;           AT sy-linsz sy-vline.&lt;/P&gt;&lt;P&gt;    ULINE.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&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  value_help&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;P&gt;FORM value_help.&lt;/P&gt;&lt;P&gt;  DATA: old_tab TYPE dd02l-tabname,&lt;/P&gt;&lt;P&gt;   result VALUE '1', text(150).&lt;/P&gt;&lt;P&gt;  old_tab = watab-tabname.&lt;/P&gt;&lt;P&gt;  IF LINES( jtables ) &amp;gt; 1.&lt;/P&gt;&lt;P&gt;    CONCATENATE 'All tables and joins will be deleted...'&lt;/P&gt;&lt;P&gt;                 'Are you sure you want to select a new base table?'&lt;/P&gt;&lt;P&gt;                 INTO text SEPARATED BY space.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'POPUP_TO_CONFIRM'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        titlebar              = 'Warning...'&lt;/P&gt;&lt;P&gt;        text_question         = text&lt;/P&gt;&lt;P&gt;        display_cancel_button = space&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        answer                = result.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF result = '1'.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'F4_DD_TABLES'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        object             = watab-tabname&lt;/P&gt;&lt;P&gt;        suppress_selection = 'X'&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        RESULT             = watab-tabname.&lt;/P&gt;&lt;P&gt;    IF watab-tabname NE old_tab.&lt;/P&gt;&lt;P&gt;      CLEAR: jtables[], it_joins[], it_av_fields[].&lt;/P&gt;&lt;P&gt;      watab-tno = 1.&lt;/P&gt;&lt;P&gt;      APPEND watab TO jtables.&lt;/P&gt;&lt;P&gt;      PERFORM get_fields USING watab-tabname.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      MESSAGE 'Base table not changed...' TYPE 'S'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "value_help&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  list_tabs&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;P&gt;FORM list_tabs.&lt;/P&gt;&lt;P&gt;  LOOP AT jtables INTO watab.&lt;/P&gt;&lt;P&gt;    NEW-LINE.&lt;/P&gt;&lt;P&gt;    WRITE: sy-vline,&lt;/P&gt;&lt;P&gt;           (2) watab-tno,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           watab-tabname COLOR COL_NORMAL,&lt;/P&gt;&lt;P&gt;           sy-vline,&lt;/P&gt;&lt;P&gt;           60 sy-vline,&lt;/P&gt;&lt;P&gt;           icon_reference_list AS ICON HOTSPOT,&lt;/P&gt;&lt;P&gt;          b_rel COLOR COL_TOTAL INTENSIFIED HOTSPOT,&lt;/P&gt;&lt;P&gt;          sy-vline,&lt;/P&gt;&lt;P&gt;          icon_display AS ICON HOTSPOT,&lt;/P&gt;&lt;P&gt;          b_dis COLOR COL_GROUP INTENSIFIED HOTSPOT,&lt;/P&gt;&lt;P&gt;          sy-vline,&lt;/P&gt;&lt;P&gt;          icon_delete AS ICON HOTSPOT,&lt;/P&gt;&lt;P&gt;          b_del COLOR COL_NEGATIVE HOTSPOT,&lt;/P&gt;&lt;P&gt;          AT sy-linsz sy-vline.&lt;/P&gt;&lt;P&gt;    IF sy-tabix = 1.&lt;/P&gt;&lt;P&gt;      WRITE: 40   b_sel COLOR COL_KEY HOTSPOT.&lt;/P&gt;&lt;P&gt;      WRITE: 58   icon_search AS ICON HOTSPOT.&lt;/P&gt;&lt;P&gt;      WRITE: 82(22) space.&lt;/P&gt;&lt;P&gt;      IF watab-tabname IS INITIAL.&lt;/P&gt;&lt;P&gt;        WRITE: 61(19) space.&lt;/P&gt;&lt;P&gt;        WRITE: 105(20) space.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    HIDE: watab-tabname, watab-tno, watab-parent.&lt;/P&gt;&lt;P&gt;    CLEAR watab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;P&gt;  READ TABLE jtables INTO watab INDEX 1.&lt;/P&gt;&lt;P&gt;  IF watab-tabname IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    WRITE:sy-vline,&lt;/P&gt;&lt;P&gt;          icon_terminology AS ICON HOTSPOT,&lt;/P&gt;&lt;P&gt;          b_fld COLOR COL_KEY INTENSIFIED HOTSPOT,&lt;/P&gt;&lt;P&gt;          AT sy-linsz sy-vline.&lt;/P&gt;&lt;P&gt;    ULINE.&lt;/P&gt;&lt;P&gt;    WRITE:sy-vline,&lt;/P&gt;&lt;P&gt;           icon_execute_object AS ICON HOTSPOT,&lt;/P&gt;&lt;P&gt;           b_exe COLOR COL_KEY INTENSIFIED HOTSPOT,&lt;/P&gt;&lt;P&gt;           AT sy-linsz sy-vline.&lt;/P&gt;&lt;P&gt;    ULINE.&lt;/P&gt;&lt;P&gt;    IF qtab IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      FORMAT COLOR COL_TOTAL INTENSIFIED.&lt;/P&gt;&lt;P&gt;      ULINE.&lt;/P&gt;&lt;P&gt;      WRITE:sy-vline,&lt;/P&gt;&lt;P&gt;            (128) 'SELECT statement generated successfully!' CENTERED,&lt;/P&gt;&lt;P&gt;            AT sy-linsz sy-vline.&lt;/P&gt;&lt;P&gt;      ULINE.&lt;/P&gt;&lt;P&gt;      WRITE:sy-vline,&lt;/P&gt;&lt;P&gt;            50 icon_system_copy AS ICON HOTSPOT,&lt;/P&gt;&lt;P&gt;            b_cop HOTSPOT,&lt;/P&gt;&lt;P&gt;            AT sy-linsz sy-vline.&lt;/P&gt;&lt;P&gt;      ULINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      FORMAT COLOR COL_TOTAL INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;      LOOP AT qtab INTO qtext.&lt;/P&gt;&lt;P&gt;        WRITE:sy-vline,&lt;/P&gt;&lt;P&gt;              qtext,&lt;/P&gt;&lt;P&gt;              AT sy-linsz sy-vline.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;      ULINE.&lt;/P&gt;&lt;P&gt;      FORMAT RESET.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CLEAR watab.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "list_tabs&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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  v_list_joins&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;P&gt;FORM v_list_joins.&lt;/P&gt;&lt;P&gt;  DATA:    dd05m_out LIKE dd05m OCCURS 20 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;           dd08v_out LIKE dd08v OCCURS 10 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;           dd08v_ok  LIKE dd08v OCCURS 10,&lt;/P&gt;&lt;P&gt;           dd08v_no  LIKE dd08v OCCURS 10,&lt;/P&gt;&lt;P&gt;           dd08v_tab LIKE dd08v OCCURS 10 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;           basetabnames LIKE dd26v OCCURS 10 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  DATA:    BEGIN OF tab_joins OCCURS 10.&lt;/P&gt;&lt;P&gt;          INCLUDE STRUCTURE dd05m.&lt;/P&gt;&lt;P&gt;  DATA:        mark(1),&lt;/P&gt;&lt;P&gt;               sele(1),&lt;/P&gt;&lt;P&gt;               nofs(1),&lt;/P&gt;&lt;P&gt;             END OF tab_joins.&lt;/P&gt;&lt;P&gt;  PERFORM get_basetab_info(radvimnt)&lt;/P&gt;&lt;P&gt;   TABLES tc1_tab&lt;/P&gt;&lt;P&gt;          base_tabs&lt;/P&gt;&lt;P&gt;   USING 0 ddxx&lt;/P&gt;&lt;P&gt;   CHANGING subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR basetabnames[].&lt;/P&gt;&lt;P&gt;  LOOP AT tc1_tab INTO basetabnames&lt;/P&gt;&lt;P&gt;    WHERE mark = 'X'.&lt;/P&gt;&lt;P&gt;    APPEND basetabnames.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  ddxx-viewclass = 'D'.&lt;/P&gt;&lt;P&gt;  PERFORM get_all_frks(radvimnt)&lt;/P&gt;&lt;P&gt;     TABLES base_tabs&lt;/P&gt;&lt;P&gt;            basetabnames&lt;/P&gt;&lt;P&gt;            dd08v_out&lt;/P&gt;&lt;P&gt;            dd05m_out&lt;/P&gt;&lt;P&gt;     USING ddxx space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE dd08v_out LINES i.&lt;/P&gt;&lt;P&gt;  IF i = 0.&lt;/P&gt;&lt;P&gt;    READ TABLE basetabnames INDEX 1&lt;/P&gt;&lt;P&gt;    TRANSPORTING tabname.&lt;/P&gt;&lt;P&gt;    IF sy-tfill = 1.&lt;/P&gt;&lt;P&gt;      MESSAGE s315(e2) WITH basetabnames-tabname.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      MESSAGE s306(e2).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    dd08v_ok[] = dd08v_out[].&lt;/P&gt;&lt;P&gt;    CLEAR dd08v_no[].&lt;/P&gt;&lt;P&gt;    PERFORM v_list_fk_head&lt;/P&gt;&lt;P&gt;      TABLES basetabnames&lt;/P&gt;&lt;P&gt;             dd08v_ok&lt;/P&gt;&lt;P&gt;             dd08v_no&lt;/P&gt;&lt;P&gt;             dd05m_out.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "v_list_joins&lt;/P&gt;&lt;P&gt;&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  v_list_fk_head&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;BASETABNAMEtext&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;DD08V_OK   text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;DD08V_NO   text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;DD05M_OUT  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 v_list_fk_head&lt;/P&gt;&lt;P&gt;        TABLES basetabnames STRUCTURE dd26v&lt;/P&gt;&lt;P&gt;               dd08v_ok&lt;/P&gt;&lt;P&gt;               dd08v_no&lt;/P&gt;&lt;P&gt;               dd05m_out.&lt;/P&gt;&lt;P&gt;  DATA: tabnams LIKE dd02l-tabname OCCURS 10 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;        dd08v_tab LIKE dd08v OCCURS 10 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  DATA: BEGIN OF tab_joins OCCURS 10.&lt;/P&gt;&lt;P&gt;          INCLUDE STRUCTURE dd08v.&lt;/P&gt;&lt;P&gt;  DATA:        mark(1),&lt;/P&gt;&lt;P&gt;               sele(1),&lt;/P&gt;&lt;P&gt;        END OF tab_joins,&lt;/P&gt;&lt;P&gt;        ltab TYPE dd02l-tabname,&lt;/P&gt;&lt;P&gt;        old_tno TYPE i,&lt;/P&gt;&lt;P&gt;        wa_check LIKE watab,&lt;/P&gt;&lt;P&gt;        dup_tables LIKE RANGE OF watab-tabname,&lt;/P&gt;&lt;P&gt;        wa_dup LIKE LINE OF dup_tables.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT basetabnames.&lt;/P&gt;&lt;P&gt;    tabnams = basetabnames-tabname.&lt;/P&gt;&lt;P&gt;    APPEND tabnams.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  tab_joins[] = dd08v_ok[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'DD_LIST_TAB_RELATIONS'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      viewclass    = ddxx-viewclass&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      tab_names    = tabnams&lt;/P&gt;&lt;P&gt;      dd08v_ok     = tab_joins&lt;/P&gt;&lt;P&gt;      dd08v_no     = dd08v_no&lt;/P&gt;&lt;P&gt;      dd05m_tab    = dd05m_out&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      not_executed = 1&lt;/P&gt;&lt;P&gt;      OTHERS       = 2.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    CLEAR: dd08v_tab[].&lt;/P&gt;&lt;P&gt;    LOOP AT tab_joins&lt;/P&gt;&lt;P&gt;      WHERE mark = 'X'&lt;/P&gt;&lt;P&gt;      AND sele   = ' '.&lt;/P&gt;&lt;P&gt;      dd08v_tab = tab_joins.&lt;/P&gt;&lt;P&gt;      APPEND dd08v_tab.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM add_join_from_frk(radvimnt)&lt;/P&gt;&lt;P&gt;           TABLES base_tabs&lt;/P&gt;&lt;P&gt;                  tc1_tab                                   "dd26v_tab&lt;/P&gt;&lt;P&gt;                  tc2_tab                                   "dd28j_tab&lt;/P&gt;&lt;P&gt;                  tc3_tab                                   "dd28v_rest&lt;/P&gt;&lt;P&gt;                  dd08v_tab                                 "dd08v_tab&lt;/P&gt;&lt;P&gt;           USING ddxx&lt;/P&gt;&lt;P&gt;           CHANGING subrc.&lt;/P&gt;&lt;P&gt;      IF subrc = 4.&lt;/P&gt;&lt;P&gt;        MESSAGE s325(e2).&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        ltab = watab-tabname.&lt;/P&gt;&lt;P&gt;        old_tno = watab-tno.&lt;/P&gt;&lt;P&gt;        LOOP AT tc1_tab.&lt;/P&gt;&lt;P&gt;          IF sy-tabix NE 1.&lt;/P&gt;&lt;P&gt;            READ TABLE jtables INTO wa_check&lt;/P&gt;&lt;P&gt;              WITH KEY tabname = tc1_tab-tabname TRANSPORTING tabname.&lt;/P&gt;&lt;P&gt;            IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;              watab-parent = old_tno.&lt;/P&gt;&lt;P&gt;              ADD 1 TO watab-tno.&lt;/P&gt;&lt;P&gt;              watab-tabname = tc1_tab-tabname.&lt;/P&gt;&lt;P&gt;              APPEND watab TO jtables.&lt;/P&gt;&lt;P&gt;              PERFORM get_fields USING watab-tabname.&lt;/P&gt;&lt;P&gt;            ELSEIF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;              wa_dup-sign = 'I'.&lt;/P&gt;&lt;P&gt;              wa_dup-option = 'EQ'.&lt;/P&gt;&lt;P&gt;              wa_dup-low = wa_check-tabname.&lt;/P&gt;&lt;P&gt;              APPEND wa_dup TO dup_tables.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDLOOP.&lt;/P&gt;&lt;P&gt;        LOOP AT tc2_tab.&lt;/P&gt;&lt;P&gt;          CHECK dup_tables IS INITIAL OR&lt;/P&gt;&lt;P&gt;               ( tc2_tab-ltab NOT IN dup_tables AND&lt;/P&gt;&lt;P&gt;                tc2_tab-ltab NOT IN dup_tables ).&lt;/P&gt;&lt;P&gt;          wa_joins-ltab = tc2_tab-ltab.&lt;/P&gt;&lt;P&gt;          wa_joins-rtab = tc2_tab-rtab.&lt;/P&gt;&lt;P&gt;          wa_joins-field1 = tc2_tab-lfield.&lt;/P&gt;&lt;P&gt;          wa_joins-field2 = tc2_tab-rfield.&lt;/P&gt;&lt;P&gt;          APPEND wa_joins TO it_joins.&lt;/P&gt;&lt;P&gt;        ENDLOOP.&lt;/P&gt;&lt;P&gt;        PERFORM reorg_tables.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "v_list_fk_h&lt;/P&gt;&lt;P&gt;&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  tab_dupl&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;P&gt;FORM tab_dupl.&lt;/P&gt;&lt;P&gt;  DATA: checktab LIKE jtables,&lt;/P&gt;&lt;P&gt;        wa_check LIKE LINE OF checktab,&lt;/P&gt;&lt;P&gt;        wa_old LIKE wa_check,&lt;/P&gt;&lt;P&gt;       text(50).&lt;/P&gt;&lt;P&gt;  checktab = jtables.&lt;/P&gt;&lt;P&gt;  SORT checktab BY tabname.&lt;/P&gt;&lt;P&gt;  LOOP AT checktab INTO wa_check.&lt;/P&gt;&lt;P&gt;    IF wa_check-tabname IS NOT INITIAL&lt;/P&gt;&lt;P&gt;       AND wa_check-tabname = wa_old-tabname.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'Table ' wa_old-tabname ' has already been added'&lt;/P&gt;&lt;P&gt;                    INTO text SEPARATED BY space.&lt;/P&gt;&lt;P&gt;      MESSAGE text TYPE 'E'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    wa_old = wa_check.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "tab_dupl&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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  show_relationship&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;P&gt;FORM show_relationship.&lt;/P&gt;&lt;P&gt;  DATA: text(73),&lt;/P&gt;&lt;P&gt;        wapre LIKE watab.&lt;/P&gt;&lt;P&gt;  flagpop = 'X'.&lt;/P&gt;&lt;P&gt;  FORMAT COLOR COL_GROUP INTENSIFIED.&lt;/P&gt;&lt;P&gt;  NEW-PAGE.&lt;/P&gt;&lt;P&gt;  READ TABLE jtables INTO wapre WITH KEY tno = watab-parent.&lt;/P&gt;&lt;P&gt;  WINDOW STARTING AT 10 10 ENDING AT 100 15.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT it_joins INTO wa_joins&lt;/P&gt;&lt;P&gt;          WHERE&lt;/P&gt;&lt;P&gt;              ( rtab = watab-tabname AND ltab = wapre-tabname )&lt;/P&gt;&lt;P&gt;           OR ( ltab = watab-tabname AND rtab = wapre-tabname ).&lt;/P&gt;&lt;P&gt;    ULINE (75).&lt;/P&gt;&lt;P&gt;    CONCATENATE wa_joins-ltab '-'&lt;/P&gt;&lt;P&gt;              wa_joins-field1&lt;/P&gt;&lt;P&gt;              ` = `&lt;/P&gt;&lt;P&gt;              wa_joins-rtab '-'&lt;/P&gt;&lt;P&gt;              wa_joins-field1 INTO text.&lt;/P&gt;&lt;P&gt;    CONDENSE text.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WRITE:/ sy-vline,&lt;/P&gt;&lt;P&gt;            text,&lt;/P&gt;&lt;P&gt;          AT 75 sy-vline.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  ULINE (75).&lt;/P&gt;&lt;P&gt;  CLEAR flagpop.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "show_relationship&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  del_table_and_joins&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;P_TNO      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 del_table_and_joins USING p_tno TYPE i.&lt;/P&gt;&lt;P&gt;  DATA: wapre LIKE watab,&lt;/P&gt;&lt;P&gt;        wacurr LIKE watab,&lt;/P&gt;&lt;P&gt;        wachild LIKE watab.&lt;/P&gt;&lt;P&gt;  READ TABLE jtables INTO wacurr WITH KEY tno = p_tno.&lt;/P&gt;&lt;P&gt;  READ TABLE jtables INTO wapre WITH KEY tno = wacurr-parent.&lt;/P&gt;&lt;P&gt;  LOOP AT it_joins INTO wa_joins&lt;/P&gt;&lt;P&gt;          WHERE&lt;/P&gt;&lt;P&gt;              ( rtab = wacurr-tabname AND ltab = wapre-tabname )&lt;/P&gt;&lt;P&gt;           OR ( ltab = wacurr-tabname AND rtab = wapre-tabname ).&lt;/P&gt;&lt;P&gt;    DELETE TABLE it_joins FROM wa_joins.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  LOOP AT jtables INTO wachild WHERE parent = wacurr-tno.&lt;/P&gt;&lt;P&gt;    PERFORM del_table_and_joins USING wachild-tno.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  DELETE it_av_fields WHERE tabname = wacurr-tabname.&lt;/P&gt;&lt;P&gt;  DELETE TABLE jtables FROM wacurr.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "del_table_and_joins&lt;/P&gt;&lt;P&gt;&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  reorg_tables&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;P&gt;FORM reorg_tables.&lt;/P&gt;&lt;P&gt;  DATA: wa_curr LIKE LINE OF jtables.&lt;/P&gt;&lt;P&gt;  IF jtables IS INITIAL.&lt;/P&gt;&lt;P&gt;    wa_curr-tno = 1.&lt;/P&gt;&lt;P&gt;    APPEND wa_curr TO jtables.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    LOOP AT jtables INTO wa_curr.&lt;/P&gt;&lt;P&gt;      wa_curr-tno = sy-tabix.&lt;/P&gt;&lt;P&gt;      MODIFY TABLE jtables FROM wa_curr.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "reorg_tables&lt;/P&gt;&lt;P&gt;&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  confirm_delete&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;P&gt;FORM confirm_delete.&lt;/P&gt;&lt;P&gt;  DATA: text(150),result, wa_curr LIKE LINE OF jtables.&lt;/P&gt;&lt;P&gt;  READ TABLE jtables INTO wa_curr INDEX 1.&lt;/P&gt;&lt;P&gt;  IF wa_curr-tabname IS INITIAL.&lt;/P&gt;&lt;P&gt;    MESSAGE 'Nothing to delete...' TYPE 'E'.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    CONCATENATE 'Do you wish to delete the table' watab-tabname&lt;/P&gt;&lt;P&gt;                ', its dependent tables and their join conditions?'&lt;/P&gt;&lt;P&gt;                 INTO text SEPARATED BY space.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'POPUP_TO_CONFIRM'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        titlebar              = 'Warning...'&lt;/P&gt;&lt;P&gt;        text_question         = text&lt;/P&gt;&lt;P&gt;        display_cancel_button = space&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        answer                = result.&lt;/P&gt;&lt;P&gt;    IF result = '2'.&lt;/P&gt;&lt;P&gt;      MESSAGE 'Delete action cancelled by user...' TYPE 'E'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "confirm_delete&lt;/P&gt;&lt;P&gt;&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  get_fields&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;PTABNAME   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 get_fields USING ptabname TYPE dd02l-tabname.&lt;/P&gt;&lt;P&gt;  DATA: BEGIN OF wa_field,&lt;/P&gt;&lt;P&gt;        pos TYPE dd03l-position,&lt;/P&gt;&lt;P&gt;        fieldname TYPE dd03l-fieldname,&lt;/P&gt;&lt;P&gt;        text TYPE dd04t-scrtext_l,&lt;/P&gt;&lt;P&gt;        END OF wa_field,&lt;/P&gt;&lt;P&gt;        it_fields LIKE TABLE OF wa_field.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT dd03l&lt;SUB&gt;position dd03l&lt;/SUB&gt;fieldname dd04t~scrtext_l&lt;/P&gt;&lt;P&gt;        INTO TABLE it_fields&lt;/P&gt;&lt;P&gt;        FROM dd03l INNER JOIN dd04t&lt;/P&gt;&lt;P&gt;        ON dd03l&lt;SUB&gt;rollname = dd04t&lt;/SUB&gt;rollname&lt;/P&gt;&lt;P&gt;        WHERE dd03l~tabname = ptabname&lt;/P&gt;&lt;P&gt;          AND dd04t~ddlanguage = sy-langu&lt;/P&gt;&lt;P&gt;          AND dd03l~datatype NE 'CLNT'&lt;/P&gt;&lt;P&gt;        ORDER BY dd03l~position.&lt;/P&gt;&lt;P&gt;  wa_av_fields-tabname = ptabname.&lt;/P&gt;&lt;P&gt;  LOOP AT it_fields INTO wa_field.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING wa_field TO wa_av_fields.&lt;/P&gt;&lt;P&gt;    APPEND wa_av_fields TO it_av_fields.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "get_fields&lt;/P&gt;&lt;P&gt;&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  SELECT_FIELDS&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;P&gt;FORM select_fields.&lt;/P&gt;&lt;P&gt;  flagsel = 'X'.&lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;P&gt;  WRITE: sy-vline,&lt;/P&gt;&lt;P&gt;        (30) 'Available Fields' CENTERED,&lt;/P&gt;&lt;P&gt;        (2) space,&lt;/P&gt;&lt;P&gt;        sy-vline,&lt;/P&gt;&lt;P&gt;        (25) 'Description' CENTERED,&lt;/P&gt;&lt;P&gt;        sy-vline,&lt;/P&gt;&lt;P&gt;        (2) space,&lt;/P&gt;&lt;P&gt;        (30) 'Selected Fields' CENTERED,&lt;/P&gt;&lt;P&gt;        sy-vline,&lt;/P&gt;&lt;P&gt;        (14) 'Alias' CENTERED,&lt;/P&gt;&lt;P&gt;        AT sy-linsz sy-vline.&lt;/P&gt;&lt;P&gt;  FORMAT COLOR COL_TOTAL.&lt;/P&gt;&lt;P&gt;  LOOP AT it_av_fields INTO wa_av_fields.&lt;/P&gt;&lt;P&gt;    AT NEW tabname.&lt;/P&gt;&lt;P&gt;      FORMAT COLOR COL_GROUP INTENSIFIED.&lt;/P&gt;&lt;P&gt;      ULINE.&lt;/P&gt;&lt;P&gt;      WRITE: sy-vline,&lt;/P&gt;&lt;P&gt;             (60) wa_av_fields-tabname,&lt;/P&gt;&lt;P&gt;             34 icon_workflow_activity AS ICON HOTSPOT&lt;/P&gt;&lt;P&gt;              QUICKINFO 'Select All',&lt;/P&gt;&lt;P&gt;             AT sy-linsz sy-vline.&lt;/P&gt;&lt;P&gt;      HIDE wa_av_fields-tabname.&lt;/P&gt;&lt;P&gt;      ULINE.&lt;/P&gt;&lt;P&gt;      FORMAT COLOR COL_TOTAL.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;    IF wa_av_fields-selected IS INITIAL.&lt;/P&gt;&lt;P&gt;      WRITE: sy-vline,&lt;/P&gt;&lt;P&gt;             (30) wa_av_fields-fieldname,&lt;/P&gt;&lt;P&gt;             icon_insert_row AS ICON HOTSPOT,&lt;/P&gt;&lt;P&gt;             sy-vline,&lt;/P&gt;&lt;P&gt;             (25) wa_av_fields-text,&lt;/P&gt;&lt;P&gt;             sy-vline,&lt;/P&gt;&lt;P&gt;             (2) space,&lt;/P&gt;&lt;P&gt;             (30) space COLOR COL_KEY,&lt;/P&gt;&lt;P&gt;              sy-vline,&lt;/P&gt;&lt;P&gt;            (14) wa_av_fields-alias ,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;             AT sy-linsz sy-vline.&lt;/P&gt;&lt;P&gt;    ELSEIF wa_av_fields-alias IS INITIAL.&lt;/P&gt;&lt;P&gt;      WRITE: sy-vline,&lt;/P&gt;&lt;P&gt;             (30) space,&lt;/P&gt;&lt;P&gt;             (2) space,&lt;/P&gt;&lt;P&gt;             sy-vline,&lt;/P&gt;&lt;P&gt;             (25) wa_av_fields-text,&lt;/P&gt;&lt;P&gt;             sy-vline,&lt;/P&gt;&lt;P&gt;              icon_delete_row AS ICON HOTSPOT,&lt;/P&gt;&lt;P&gt;             (30) wa_av_fields-fieldname COLOR COL_KEY,&lt;/P&gt;&lt;P&gt;             sy-vline,&lt;/P&gt;&lt;P&gt;             (14) space,&lt;/P&gt;&lt;P&gt;        AT sy-linsz sy-vline.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      WRITE: sy-vline,&lt;/P&gt;&lt;P&gt;            (30) space,&lt;/P&gt;&lt;P&gt;            (2) space,&lt;/P&gt;&lt;P&gt;            sy-vline,&lt;/P&gt;&lt;P&gt;            (25) wa_av_fields-text,&lt;/P&gt;&lt;P&gt;            sy-vline,&lt;/P&gt;&lt;P&gt;             icon_delete_row AS ICON HOTSPOT,&lt;/P&gt;&lt;P&gt;            (30) wa_av_fields-fieldname COLOR COL_TOTAL INTENSIFIED,&lt;/P&gt;&lt;P&gt;            sy-vline,&lt;/P&gt;&lt;P&gt;            (14) wa_av_fields-alias COLOR COL_KEY,&lt;/P&gt;&lt;P&gt;            AT sy-linsz sy-vline.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    HIDE: wa_av_fields-tabname,&lt;/P&gt;&lt;P&gt;           wa_av_fields-fieldname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;P&gt;  CLEAR: flagsel, wa_av_fields.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "SELECT_FIELDS&lt;/P&gt;&lt;P&gt;&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  CHECK_ALIAS&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;P_WA       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 check_alias CHANGING p_wa LIKE wa_av_fields.&lt;/P&gt;&lt;P&gt;  DATA: wa_check LIKE p_wa,&lt;/P&gt;&lt;P&gt;  text1(50), text2(50), text3(30), result, subrc LIKE sy-subrc.&lt;/P&gt;&lt;P&gt;  READ TABLE it_av_fields INTO wa_check&lt;/P&gt;&lt;P&gt;            WITH KEY fieldname = p_wa-fieldname&lt;/P&gt;&lt;P&gt;                     alias = space&lt;/P&gt;&lt;P&gt;                     selected = 'X'.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    CONCATENATE wa_check-tabname '-' p_wa-fieldname&lt;/P&gt;&lt;P&gt;                INTO text1.&lt;/P&gt;&lt;P&gt;    text2 = 'already exists. Please enter an'.&lt;/P&gt;&lt;P&gt;    text3 = 'alias for this field...'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'POPUP_TO_GET_ONE_VALUE'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        textline1   = text1&lt;/P&gt;&lt;P&gt;        textline2   = text2&lt;/P&gt;&lt;P&gt;        textline3   = text3&lt;/P&gt;&lt;P&gt;        titel       = 'Alias needed !'&lt;/P&gt;&lt;P&gt;        valuelength = 14&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        answer      = result&lt;/P&gt;&lt;P&gt;        value1      = p_wa-alias.&lt;/P&gt;&lt;P&gt;    IF result = 'A'.&lt;/P&gt;&lt;P&gt;      MESSAGE 'Alias must be specified...' TYPE 'E' DISPLAY LIKE 'I'.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      READ TABLE it_av_fields INTO wa_check&lt;/P&gt;&lt;P&gt;            WITH KEY alias = p_wa-alias&lt;/P&gt;&lt;P&gt;                     selected = 'X'.&lt;/P&gt;&lt;P&gt;      READ TABLE it_av_fields INTO wa_check&lt;/P&gt;&lt;P&gt;               WITH KEY fieldname = p_wa-alias&lt;/P&gt;&lt;P&gt;                        selected = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0 OR subrc EQ 0.&lt;/P&gt;&lt;P&gt;        DO.&lt;/P&gt;&lt;P&gt;          CLEAR p_wa-alias.&lt;/P&gt;&lt;P&gt;          CALL FUNCTION 'POPUP_TO_GET_ONE_VALUE'&lt;/P&gt;&lt;P&gt;            EXPORTING&lt;/P&gt;&lt;P&gt;              textline1   = 'The alias you specified'&lt;/P&gt;&lt;P&gt;              textline2   = 'already exists!'&lt;/P&gt;&lt;P&gt;              textline3   = 'Please enter a new alias...'&lt;/P&gt;&lt;P&gt;              titel       = 'Alias needed !'&lt;/P&gt;&lt;P&gt;              valuelength = 14&lt;/P&gt;&lt;P&gt;            IMPORTING&lt;/P&gt;&lt;P&gt;              answer      = result&lt;/P&gt;&lt;P&gt;              value1      = p_wa-alias.&lt;/P&gt;&lt;P&gt;          IF result = 'A'.&lt;/P&gt;&lt;P&gt;         MESSAGE 'Alias must be specified...' TYPE 'E' DISPLAY LIKE 'I'.&lt;/P&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;            READ TABLE it_av_fields INTO wa_check&lt;/P&gt;&lt;P&gt;               WITH KEY alias = p_wa-alias&lt;/P&gt;&lt;P&gt;                        selected = 'X'.&lt;/P&gt;&lt;P&gt;            IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;              READ TABLE it_av_fields INTO wa_check&lt;/P&gt;&lt;P&gt;                 WITH KEY fieldname = p_wa-alias&lt;/P&gt;&lt;P&gt;                          selected = 'X'.&lt;/P&gt;&lt;P&gt;              IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;                EXIT.&lt;/P&gt;&lt;P&gt;              ENDIF.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDDO.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "CHECK_A&lt;/P&gt;&lt;P&gt;&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  gen_query&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;P&gt;FORM gen_query.&lt;/P&gt;&lt;P&gt;  DATA:fname TYPE string, it_av LIKE it_av_fields.&lt;/P&gt;&lt;P&gt;  CLEAR qtab[].&lt;/P&gt;&lt;P&gt;  it_av = it_av_fields.&lt;/P&gt;&lt;P&gt;  DELETE it_av WHERE selected = space.&lt;/P&gt;&lt;P&gt;  IF LINES( jtables ) EQ 1 AND it_joins IS INITIAL.&lt;/P&gt;&lt;P&gt;    APPEND 'SELECT' TO qtab.&lt;/P&gt;&lt;P&gt;    LOOP AT it_av INTO wa_av_fields.&lt;/P&gt;&lt;P&gt;      AT NEW tabname.&lt;/P&gt;&lt;P&gt;        CONCATENATE '****Fields from'&lt;/P&gt;&lt;P&gt;                    wa_av_fields-tabname&lt;/P&gt;&lt;P&gt;                 INTO qtext SEPARATED BY space.&lt;/P&gt;&lt;P&gt;        APPEND qtext TO qtab.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;      CONCATENATE `        ` wa_av_fields-fieldname INTO qtext.&lt;/P&gt;&lt;P&gt;      APPEND qtext TO qtab.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    APPEND '****Target' TO qtab.&lt;/P&gt;&lt;P&gt;    APPEND 'INTO [target] "replace with data object(s)'&lt;/P&gt;&lt;P&gt;         TO qtab.&lt;/P&gt;&lt;P&gt;    CONCATENATE 'FROM' wa_av_fields-tabname&lt;/P&gt;&lt;P&gt;                 INTO qtext SEPARATED BY space.&lt;/P&gt;&lt;P&gt;    APPEND qtext TO qtab.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    APPEND 'SELECT' TO qtab.&lt;/P&gt;&lt;P&gt;    LOOP AT it_av INTO wa_av_fields.&lt;/P&gt;&lt;P&gt;      AT NEW tabname.&lt;/P&gt;&lt;P&gt;        CONCATENATE '****Fields from'&lt;/P&gt;&lt;P&gt;                    wa_av_fields-tabname&lt;/P&gt;&lt;P&gt;                 INTO qtext SEPARATED BY space.&lt;/P&gt;&lt;P&gt;        APPEND qtext TO qtab.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;      CONCATENATE `        ` wa_av_fields-tabname&lt;/P&gt;&lt;P&gt;                  '~'&lt;/P&gt;&lt;P&gt;                  wa_av_fields-fieldname&lt;/P&gt;&lt;P&gt;                  INTO qtext.&lt;/P&gt;&lt;P&gt;      IF wa_av_fields-alias IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;        CONCATENATE qtext 'AS' wa_av_fields-alias&lt;/P&gt;&lt;P&gt;                     INTO qtext SEPARATED BY space.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      APPEND qtext TO qtab.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    APPEND '****Target' TO qtab.&lt;/P&gt;&lt;P&gt;    APPEND 'INTO [target] "replace with data object(s)'&lt;/P&gt;&lt;P&gt;         TO qtab.&lt;/P&gt;&lt;P&gt;    APPEND '****Inner joins' TO qtab.&lt;/P&gt;&lt;P&gt;    APPEND 'FROM' TO qtab.&lt;/P&gt;&lt;P&gt;    LOOP AT it_joins INTO wa_joins.&lt;/P&gt;&lt;P&gt;      AT NEW ltab.&lt;/P&gt;&lt;P&gt;        IF sy-tabix = 1.&lt;/P&gt;&lt;P&gt;          APPEND wa_joins-ltab TO qtab.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;      AT NEW rtab.&lt;/P&gt;&lt;P&gt;        CONCATENATE 'INNER JOIN' wa_joins-rtab 'ON'&lt;/P&gt;&lt;P&gt;          INTO qtext SEPARATED BY space.&lt;/P&gt;&lt;P&gt;        APPEND qtext TO qtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;      IF qtext(5) NE 'INNER'.&lt;/P&gt;&lt;P&gt;        CONCATENATE `          ` 'AND' INTO qtext.&lt;/P&gt;&lt;P&gt;        APPEND qtext TO qtab.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        CONCATENATE wa_joins-rtab '-' wa_joins-field2 INTO fname.&lt;/P&gt;&lt;P&gt;        IF lcl_type=&amp;gt;get_type( fname ) = 'CLNT'.&lt;/P&gt;&lt;P&gt;          CONTINUE.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      CONCATENATE `          ` wa_joins-ltab '~' wa_joins-field1 ` = `&lt;/P&gt;&lt;P&gt;                               wa_joins-rtab '~' wa_joins-field2&lt;/P&gt;&lt;P&gt;                   INTO qtext.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND qtext TO qtab.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "gen_query&lt;/P&gt;&lt;P&gt;&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  check_fields&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;P&gt;FORM check_fields.&lt;/P&gt;&lt;P&gt;  READ TABLE it_av_fields INTO wa_av_fields&lt;/P&gt;&lt;P&gt;   WITH KEY selected = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                   TRANSPORTING NO FIELDS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;    MESSAGE 'Select at least one field'&lt;/P&gt;&lt;P&gt;    TYPE 'E' DISPLAY LIKE 'I'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "check_fields&lt;/P&gt;&lt;P&gt;&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  add_all_fields&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;TNAME      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 add_all_fields USING tname LIKE wa_av_fields-tabname.&lt;/P&gt;&lt;P&gt;  DATA wa_fields LIKE wa_av_fields.&lt;/P&gt;&lt;P&gt;  DATA: wa_check LIKE wa_fields,&lt;/P&gt;&lt;P&gt;  text1(50), text2(50), text3(30), result, subrc LIKE sy-subrc.&lt;/P&gt;&lt;P&gt;  LOOP AT it_av_fields INTO wa_fields WHERE tabname = tname&lt;/P&gt;&lt;P&gt;                                        AND selected IS INITIAL.&lt;/P&gt;&lt;P&gt;    READ TABLE it_av_fields INTO wa_check&lt;/P&gt;&lt;P&gt;              WITH KEY fieldname = wa_fields-fieldname&lt;/P&gt;&lt;P&gt;                       alias = space&lt;/P&gt;&lt;P&gt;                       selected = 'X'.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      CONCATENATE wa_fields-fieldname 'already exists.'&lt;/P&gt;&lt;P&gt;                  INTO text1 SEPARATED BY space.&lt;/P&gt;&lt;P&gt;      text2 = 'Enter an alias. It can consist of'.&lt;/P&gt;&lt;P&gt;      text3 = 'only alphabets and digits...'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'POPUP_TO_GET_ONE_VALUE'&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          textline1   = text1&lt;/P&gt;&lt;P&gt;          textline2   = text2&lt;/P&gt;&lt;P&gt;          textline3   = text3&lt;/P&gt;&lt;P&gt;          titel       = 'Alias needed !'&lt;/P&gt;&lt;P&gt;          valuelength = 14&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          answer      = result&lt;/P&gt;&lt;P&gt;          value1      = wa_fields-alias.&lt;/P&gt;&lt;P&gt;      IF result = 'A'.&lt;/P&gt;&lt;P&gt;        MESSAGE 'Alias must be specified...' TYPE 'I'.&lt;/P&gt;&lt;P&gt;        CONTINUE.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        READ TABLE it_av_fields INTO wa_check&lt;/P&gt;&lt;P&gt;              WITH KEY alias = wa_fields-alias&lt;/P&gt;&lt;P&gt;                       selected = 'X'.&lt;/P&gt;&lt;P&gt;        subrc = sy-subrc.&lt;/P&gt;&lt;P&gt;        READ TABLE it_av_fields INTO wa_check&lt;/P&gt;&lt;P&gt;                 WITH KEY fieldname = wa_fields-alias&lt;/P&gt;&lt;P&gt;                          selected = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF sy-subrc EQ 0 OR subrc EQ 0.&lt;/P&gt;&lt;P&gt;          DO.&lt;/P&gt;&lt;P&gt;            CLEAR wa_fields-alias.&lt;/P&gt;&lt;P&gt;            CALL FUNCTION 'POPUP_TO_GET_ONE_VALUE'&lt;/P&gt;&lt;P&gt;              EXPORTING&lt;/P&gt;&lt;P&gt;                textline1   = 'The alias you specified'&lt;/P&gt;&lt;P&gt;                textline2   = 'already exists!'&lt;/P&gt;&lt;P&gt;                textline3   = 'Please enter a new alias...'&lt;/P&gt;&lt;P&gt;                titel       = 'Alias needed !'&lt;/P&gt;&lt;P&gt;                valuelength = 14&lt;/P&gt;&lt;P&gt;              IMPORTING&lt;/P&gt;&lt;P&gt;                answer      = result&lt;/P&gt;&lt;P&gt;                value1      = wa_fields-alias.&lt;/P&gt;&lt;P&gt;            IF result = 'A'.&lt;/P&gt;&lt;P&gt;              CALL FUNCTION 'POPUP_TO_CONFIRM'&lt;/P&gt;&lt;P&gt;                EXPORTING&lt;/P&gt;&lt;P&gt;                  titlebar      = 'Cancel Action?'&lt;/P&gt;&lt;P&gt;                  text_question = 'Stop adding fields?'&lt;/P&gt;&lt;P&gt;                  text_button_1 = 'Yes'&lt;/P&gt;&lt;P&gt;                  text_button_2 = 'No'&lt;/P&gt;&lt;P&gt;                IMPORTING&lt;/P&gt;&lt;P&gt;                  answer        = result.&lt;/P&gt;&lt;P&gt;              IF result = 1.&lt;/P&gt;&lt;P&gt;                EXIT.&lt;/P&gt;&lt;P&gt;              ELSE.&lt;/P&gt;&lt;P&gt;                CONTINUE.&lt;/P&gt;&lt;P&gt;              ENDIF.&lt;/P&gt;&lt;P&gt;            ELSE.&lt;/P&gt;&lt;P&gt;              READ TABLE it_av_fields INTO wa_check&lt;/P&gt;&lt;P&gt;                 WITH KEY alias = wa_fields-alias&lt;/P&gt;&lt;P&gt;                          selected = 'X'.&lt;/P&gt;&lt;P&gt;              IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;                READ TABLE it_av_fields INTO wa_check&lt;/P&gt;&lt;P&gt;                   WITH KEY fieldname = wa_fields-alias&lt;/P&gt;&lt;P&gt;                            selected = 'X'.&lt;/P&gt;&lt;P&gt;                IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;                  EXIT.&lt;/P&gt;&lt;P&gt;                ENDIF.&lt;/P&gt;&lt;P&gt;              ENDIF.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;          ENDDO.&lt;/P&gt;&lt;P&gt;          IF result = '1'.&lt;/P&gt;&lt;P&gt;            CLEAR result.&lt;/P&gt;&lt;P&gt;            EXIT.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    wa_fields-selected = 'X'.&lt;/P&gt;&lt;P&gt;    MODIFY it_av_fields&lt;/P&gt;&lt;P&gt;              FROM wa_fields&lt;/P&gt;&lt;P&gt;              TRANSPORTING selected alias&lt;/P&gt;&lt;P&gt;               WHERE tabname = wa_fields-tabname&lt;/P&gt;&lt;P&gt;                   AND fieldname = wa_fields-fieldname.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "add_all_fi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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  copy_to_clipboard&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;P&gt;FORM copy_to_clipboard.&lt;/P&gt;&lt;P&gt;  DATA: rc TYPE i.&lt;/P&gt;&lt;P&gt;  CALL METHOD cl_gui_frontend_services=&amp;gt;clipboard_export&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      data = qtab&lt;/P&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      rc   = rc.&lt;/P&gt;&lt;P&gt;  MESSAGE 'Query copied to clipboard!' TYPE 'I'.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "copy_to_clipboard&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM LOAD_HELP.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WS_EXECUTE'&lt;/P&gt;&lt;P&gt; EXPORTING&lt;/P&gt;&lt;P&gt; PROGRAM = '/people/dushyant.shetty/blog/2007/08/21/tool-for-abap-developers-easy-abap-open-sql-joins'&lt;/P&gt;&lt;P&gt;   EXCEPTIONS OTHERS = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&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;LI level="1" type="ul"&gt;&lt;P&gt;    /\  &lt;U&gt;`\                             /\ \&lt;/U&gt;_&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    \ \ \/\ \      __  __        ____   \ \ ,_\      __  __&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     \ \ \ \ \    /\ \/\ \      /',__\   \ \ \/     /\ \/\ \&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      \ \ \_\ \   \ \ \_\ \    /\__, `\   \ \ \_    \ \ \_\ \&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       \ \____/    \ \____/    \/\____/    \ \__\    \/`____ \&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        \/___/      \/___/      \/___/      \/__/     `/___/&amp;gt; \&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                                         /\___/&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                                         \/__/&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ____         ___                                            __&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;/\  &lt;U&gt;`\      /\&lt;/U&gt; \                                          /\ \__&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;\ \ \L\ \    \//\ \          __          ___          __    \ \ ,_\&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; \ \ ,__/      \ \ \       /'__`\      /' _ `\      /'__`\   \ \ \/&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  \ \ \/        \_\ \_    /\ \L\.\_    /\ \/\ \    /\  __/    \ \ \_&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   \ \_\        /\____\   \ \__/.\_\   \ \_\ \_\   \ \____\    \ \__\&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    \/_/        \/____/    \/__/\/_/    \/_/\/_/    \/____/     \___/&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward  points if useful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;(YUGANDHAR.P)&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Sep 2007 10:01:24 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-inner-join/m-p/2837749#M664530</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-24T10:01:24Z</dc:date>
    </item>
    <item>
      <title>Re: problem in inner join</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-inner-join/m-p/2837750#M664531</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;for the second join use this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select   docnr  docln  prctr  hsl  drcrk bschl&lt;/P&gt;&lt;P&gt;racct from bsid into corresponding fields of table it_bsid for all entries in table it_bsid &lt;/P&gt;&lt;P&gt; WHERE  docnr eq it_bsid-docnr and AND rbusa IN s_gsber&lt;/P&gt;&lt;P&gt;AND prctr IN s_prctr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it resolve your problem./&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;reward if useful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Amit Singla&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Sep 2007 10:39:53 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-inner-join/m-p/2837750#M664531</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-24T10:39:53Z</dc:date>
    </item>
  </channel>
</rss>

