<?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: NESTED LOOP IN ABAP in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/nested-loop-in-abap/m-p/2621423#M602054</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Try something like:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;report zlocal_jc_bom_hierarchy
 line-size 132.

data:
  begin of gs_hier,  "simulate a BOM hierarchy for demo
    level               like stpox-stufe, "level
    element             like stpox-idnrk, "BOM item
  end of gs_hier,
  gt_hier               like gs_hier occurs 0.

start-of-selection.
  perform gt_hier_fill.  "pretend we read from BOM db
  perform hierarchy.   "print it

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  hierarchy
*&amp;amp;---------------------------------------------------------------------*
form hierarchy.

  data:
    l_prev_level        like gs_hier-level,
    ls_hier_set         like gs_hier,
    lt_hier_set         like ls_hier_set occurs 10,
    ls_hier             like gs_hier.

  format reset.

*" print out hierarchy in rows
  loop at gt_hier into ls_hier.

    if ls_hier-level = 1. "new top element, start fresh
      if not lt_hier_set[] is initial. "not first loop
        perform print_set
          tables
            lt_hier_set.
      endif.
      clear: lt_hier_set, lt_hier_set[]." start afresh
      l_prev_level = 1.
    endif.

    if ls_hier-level &amp;lt; l_prev_level. "have stepped back up
      perform print_set
        tables
          lt_hier_set.
*" remove existing rows at this level and below
      delete lt_hier_set where level ge ls_hier-level.
    endif.
    append ls_hier to lt_hier_set.

    l_prev_level = ls_hier-level."remember previous loop

  endloop.

*" print last set
  if not lt_hier_set[] is initial. "not first loop
    perform print_set
      tables
        lt_hier_set.
  endif.

endform.                    "hierarchy

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  print_set
*&amp;amp;---------------------------------------------------------------------*
form print_set
  tables
    it_hier_set         structure gs_hier.
*
*" take a hierarchy subset and print it, or whatever...
*
  data:
    l_char130(130)      type c,
    ls_hier_set         like gs_hier,
    lt_hier_set         like ls_hier_set occurs 10.

  lt_hier_set[] = it_hier_set[].

  loop at lt_hier_set into ls_hier_set.
    concatenate l_char130 ls_hier_set-element
      into l_char130 separated by space.
  endloop.

  format reset.
  format color col_normal.
  write: /
    l_char130, at sy-linsz space.
  format reset.

endform.                    "print_set

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  gt_hier_fill
*&amp;amp;---------------------------------------------------------------------*
form gt_hier_fill.

  data:
    ls_hier             like gs_hier.

  clear: gt_hier, gt_hier[].
*
*" Simulate structure of for demo:
*"   Level1 Component1 Level2 comp1 Level3 comp1 Level4 comp1
*"   Level1 Component1 Level2 comp1 Level3 comp2 Level4 comp1
*"   Level1 Component2 Level2 comp2 Level3 comp1
*"   Level1 Component3
*:   Level1 Component4
*
  ls_hier-level   = 1.
  ls_hier-element = 'Lvl 1 Comp 1'.
  append ls_hier to gt_hier.

  ls_hier-level   = 2.
  ls_hier-element = 'Lvl 2 Comp 1'.
  append ls_hier to gt_hier.

  ls_hier-level   = 3.
  ls_hier-element = 'Lvl 3 Comp 1'.
  append ls_hier to gt_hier.

  ls_hier-level   = 4.
  ls_hier-element = 'Lvl 4 Comp 1'.
  append ls_hier to gt_hier.

  ls_hier-level   = 3.
  ls_hier-element = 'Lvl 3 Comp 2'.
  append ls_hier to gt_hier.

  ls_hier-level   = 4.
  ls_hier-element = 'Lvl 4 Comp 2'.
  append ls_hier to gt_hier.

  ls_hier-level   = 1.
  ls_hier-element = 'Lvl 1 Comp 2'.
  append ls_hier to gt_hier.

  ls_hier-level   = 2.
  ls_hier-element = 'Lvl 2 Comp 2'.
  append ls_hier to gt_hier.

  ls_hier-level   = 3.
  ls_hier-element = 'Lvl 3 Comp 2'.
  append ls_hier to gt_hier.

  ls_hier-level   = 1.
  ls_hier-element = 'Lvl 1 Comp 3'.
  append ls_hier to gt_hier.

  ls_hier-level   = 1.
  ls_hier-element = 'Lvl 1 Comp 4'.
  append ls_hier to gt_hier.

endform.                    "gt_hier_fill&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 30 Jul 2007 07:04:17 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-07-30T07:04:17Z</dc:date>
    <item>
      <title>NESTED LOOP IN ABAP</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/nested-loop-in-abap/m-p/2621422#M602053</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi experts&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; Can we print BOM components in the following form .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      Level1 Component1    Level2 comp1  Level3 comp1 Level4 comp1&lt;/P&gt;&lt;P&gt;      Level1 Component1    Level2 comp1  Level3 comp2 Level4 comp1&lt;/P&gt;&lt;P&gt;      Level1 Component2    Level2 comp2  Level3 comp1&lt;/P&gt;&lt;P&gt;      Level1 Component3&lt;/P&gt;&lt;P&gt;      Level1 Component4&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and can anyone give me the logic for printing this form.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Rajaram&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 30 Jul 2007 05:13:03 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/nested-loop-in-abap/m-p/2621422#M602053</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-30T05:13:03Z</dc:date>
    </item>
    <item>
      <title>Re: NESTED LOOP IN ABAP</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/nested-loop-in-abap/m-p/2621423#M602054</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Try something like:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;report zlocal_jc_bom_hierarchy
 line-size 132.

data:
  begin of gs_hier,  "simulate a BOM hierarchy for demo
    level               like stpox-stufe, "level
    element             like stpox-idnrk, "BOM item
  end of gs_hier,
  gt_hier               like gs_hier occurs 0.

start-of-selection.
  perform gt_hier_fill.  "pretend we read from BOM db
  perform hierarchy.   "print it

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  hierarchy
*&amp;amp;---------------------------------------------------------------------*
form hierarchy.

  data:
    l_prev_level        like gs_hier-level,
    ls_hier_set         like gs_hier,
    lt_hier_set         like ls_hier_set occurs 10,
    ls_hier             like gs_hier.

  format reset.

*" print out hierarchy in rows
  loop at gt_hier into ls_hier.

    if ls_hier-level = 1. "new top element, start fresh
      if not lt_hier_set[] is initial. "not first loop
        perform print_set
          tables
            lt_hier_set.
      endif.
      clear: lt_hier_set, lt_hier_set[]." start afresh
      l_prev_level = 1.
    endif.

    if ls_hier-level &amp;lt; l_prev_level. "have stepped back up
      perform print_set
        tables
          lt_hier_set.
*" remove existing rows at this level and below
      delete lt_hier_set where level ge ls_hier-level.
    endif.
    append ls_hier to lt_hier_set.

    l_prev_level = ls_hier-level."remember previous loop

  endloop.

*" print last set
  if not lt_hier_set[] is initial. "not first loop
    perform print_set
      tables
        lt_hier_set.
  endif.

endform.                    "hierarchy

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  print_set
*&amp;amp;---------------------------------------------------------------------*
form print_set
  tables
    it_hier_set         structure gs_hier.
*
*" take a hierarchy subset and print it, or whatever...
*
  data:
    l_char130(130)      type c,
    ls_hier_set         like gs_hier,
    lt_hier_set         like ls_hier_set occurs 10.

  lt_hier_set[] = it_hier_set[].

  loop at lt_hier_set into ls_hier_set.
    concatenate l_char130 ls_hier_set-element
      into l_char130 separated by space.
  endloop.

  format reset.
  format color col_normal.
  write: /
    l_char130, at sy-linsz space.
  format reset.

endform.                    "print_set

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  gt_hier_fill
*&amp;amp;---------------------------------------------------------------------*
form gt_hier_fill.

  data:
    ls_hier             like gs_hier.

  clear: gt_hier, gt_hier[].
*
*" Simulate structure of for demo:
*"   Level1 Component1 Level2 comp1 Level3 comp1 Level4 comp1
*"   Level1 Component1 Level2 comp1 Level3 comp2 Level4 comp1
*"   Level1 Component2 Level2 comp2 Level3 comp1
*"   Level1 Component3
*:   Level1 Component4
*
  ls_hier-level   = 1.
  ls_hier-element = 'Lvl 1 Comp 1'.
  append ls_hier to gt_hier.

  ls_hier-level   = 2.
  ls_hier-element = 'Lvl 2 Comp 1'.
  append ls_hier to gt_hier.

  ls_hier-level   = 3.
  ls_hier-element = 'Lvl 3 Comp 1'.
  append ls_hier to gt_hier.

  ls_hier-level   = 4.
  ls_hier-element = 'Lvl 4 Comp 1'.
  append ls_hier to gt_hier.

  ls_hier-level   = 3.
  ls_hier-element = 'Lvl 3 Comp 2'.
  append ls_hier to gt_hier.

  ls_hier-level   = 4.
  ls_hier-element = 'Lvl 4 Comp 2'.
  append ls_hier to gt_hier.

  ls_hier-level   = 1.
  ls_hier-element = 'Lvl 1 Comp 2'.
  append ls_hier to gt_hier.

  ls_hier-level   = 2.
  ls_hier-element = 'Lvl 2 Comp 2'.
  append ls_hier to gt_hier.

  ls_hier-level   = 3.
  ls_hier-element = 'Lvl 3 Comp 2'.
  append ls_hier to gt_hier.

  ls_hier-level   = 1.
  ls_hier-element = 'Lvl 1 Comp 3'.
  append ls_hier to gt_hier.

  ls_hier-level   = 1.
  ls_hier-element = 'Lvl 1 Comp 4'.
  append ls_hier to gt_hier.

endform.                    "gt_hier_fill&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 30 Jul 2007 07:04:17 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/nested-loop-in-abap/m-p/2621423#M602054</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-30T07:04:17Z</dc:date>
    </item>
  </channel>
</rss>

