<?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: loop does not read all records... in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/loop-does-not-read-all-records/m-p/1173852#M123849</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes, I have sorted t_account and t_pohistory by ebeln. I have pasted again the code. Hope you could help me guys. Again, the problem is for example I put in PO number &lt;/P&gt;&lt;P&gt;450000027 up to 450000051 in the selection screen only 450000029 up to 450000051 is shown but the PO amount of 450000050 and 450000051 is not shown . &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM process_with_budat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DELETE t_pohistory WHERE hist_type &amp;lt;&amp;gt; 'A'&lt;/P&gt;&lt;P&gt;                       AND hist_type &amp;lt;&amp;gt; 'E'&lt;/P&gt;&lt;P&gt;                       AND hist_type &amp;lt;&amp;gt; 'Q'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  sort t_account by ebeln.&lt;/P&gt;&lt;P&gt;  sort t_pohistory by ebeln.&lt;/P&gt;&lt;P&gt;  LOOP AT t_account.&lt;/P&gt;&lt;P&gt;*AVH&lt;/P&gt;&lt;P&gt;     on change of t_account-ebeln.&lt;/P&gt;&lt;P&gt;      CLEAR v_netwr.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE netwr FROM ekpo INTO v_netwr&lt;/P&gt;&lt;P&gt;              WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;P&gt;                AND ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;        t_amount-netwr = v_netwr.&lt;/P&gt;&lt;P&gt;     endon.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DELETE it_dtl WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;P&gt;                    AND psphi IS initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DELETE t_ekpo WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;P&gt;                    AND ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   DELETE t_pohistory WHERE ebeln   = t_account-ebeln&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                        AND po_item = t_account-po_item.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t_proj-ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE psphi FROM prps INTO t_proj-psphi&lt;/P&gt;&lt;P&gt;          WHERE posid = t_account-wbs_elem_e.&lt;/P&gt;&lt;P&gt;    CHECK sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    LOOP AT t_pohistory WHERE po_item = t_account-po_item&lt;/P&gt;&lt;P&gt;                          AND ebeln   = t_account-ebeln.&lt;/P&gt;&lt;P&gt;      t_amount-ebeln = t_account-ebeln.&lt;/P&gt;&lt;P&gt;      t_amount-psphi = t_proj-psphi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      on change of t_account-ebeln.&lt;/P&gt;&lt;P&gt;      CLEAR v_netwr.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE netwr FROM ekpo INTO v_netwr&lt;/P&gt;&lt;P&gt;              WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;P&gt;                AND ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;        t_amount-netwr = v_netwr.&lt;/P&gt;&lt;P&gt;      ENDON.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ON CHANGE OF t_pohistory-po_item.&lt;/P&gt;&lt;P&gt;        CLEAR v_netwr.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE netwr FROM ekpo INTO v_netwr&lt;/P&gt;&lt;P&gt;              WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;P&gt;                AND ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;        t_amount-netwr = v_netwr.&lt;/P&gt;&lt;P&gt;      ENDON.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF v_ebeln IS INITIAL AND v_ebelp IS INITIAL.&lt;/P&gt;&lt;P&gt;        CLEAR v_netwr.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE netwr FROM ekpo INTO v_netwr&lt;/P&gt;&lt;P&gt;              WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;P&gt;                AND ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;        t_amount-netwr = v_netwr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        v_ebeln = t_account-ebeln.&lt;/P&gt;&lt;P&gt;        v_ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSEIF v_ebeln &amp;lt;&amp;gt; t_account-ebeln AND&lt;/P&gt;&lt;P&gt;             v_ebelp &amp;lt;&amp;gt; t_account-po_item.&lt;/P&gt;&lt;P&gt;        CLEAR v_netwr.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE netwr FROM ekpo INTO v_netwr&lt;/P&gt;&lt;P&gt;              WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;P&gt;                AND ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;        t_amount-netwr = v_netwr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        v_ebeln = t_account-ebeln.&lt;/P&gt;&lt;P&gt;        v_ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSEIF v_ebeln = t_account-ebeln AND&lt;/P&gt;&lt;P&gt;             v_ebelp &amp;lt;&amp;gt; t_account-po_item.&lt;/P&gt;&lt;P&gt;        CLEAR v_netwr.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE netwr FROM ekpo INTO v_netwr&lt;/P&gt;&lt;P&gt;              WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;P&gt;                AND ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;        t_amount-netwr = v_netwr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        v_ebeln = t_account-ebeln.&lt;/P&gt;&lt;P&gt;        v_ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CHECK NOT t_amount-psphi IS INITIAL.&lt;/P&gt;&lt;P&gt;      if t_pohistory-pstng_date LE pa_augdt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IF t_pohistory-pstng_date IN so_augdt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF t_pohistory-db_cr_ind = 'H'.&lt;/P&gt;&lt;P&gt;          t_pohistory-val_loccur = - t_pohistory-val_loccur.&lt;/P&gt;&lt;P&gt;          t_pohistory-val_forcur = - t_pohistory-val_forcur.&lt;/P&gt;&lt;P&gt;          t_pohistory-cl_val_loc = - t_pohistory-cl_val_loc.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF t_pohistory-hist_type = 'A'.&lt;/P&gt;&lt;P&gt;          IF t_pohistory-currency &amp;lt;&amp;gt; 'PHP'.&lt;/P&gt;&lt;P&gt;            t_amount-dpamt = t_amount-dpamt + t_pohistory-val_forcur.&lt;/P&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;            t_amount-dpamt = t_amount-dpamt + t_pohistory-val_loccur.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ELSEIF t_pohistory-hist_type = 'E'.&lt;/P&gt;&lt;P&gt;          IF t_pohistory-currency &amp;lt;&amp;gt; 'PHP'.&lt;/P&gt;&lt;P&gt;            t_amount-gramt = t_amount-gramt + t_pohistory-val_forcur.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;            t_amount-gramt = t_amount-gramt + t_pohistory-val_loccur.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ELSEIF t_pohistory-hist_type = 'Q'.&lt;/P&gt;&lt;P&gt;          IF t_pohistory-currency &amp;lt;&amp;gt; 'PHP'.&lt;/P&gt;&lt;P&gt;            t_amount-iramt = t_amount-iramt + t_pohistory-val_forcur.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;            t_amount-iramt = t_amount-iramt + t_pohistory-val_loccur.&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;        IF t_pohistory-currency &amp;lt;&amp;gt; 'PHP'.&lt;/P&gt;&lt;P&gt;          IF t_pohistory-val_loccur = 0 OR&lt;/P&gt;&lt;P&gt;             t_pohistory-val_forcur = 0.&lt;/P&gt;&lt;P&gt;            t_amount-tramt = t_amount-iramt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           t_amount-tramt = t_amount-dpamt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;            t_amount-tramt = t_amount-iramt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           t_amount-tramt = ( t_pohistory-cl_val_loc /&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                            ( t_pohistory-val_loccur /&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                              t_pohistory-val_forcur ) ) +&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                              t_amount-dpamt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          t_amount-tramt = t_amount-iramt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         t_amount-tramt = t_pohistory-cl_val_loc + t_amount-dpamt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF NOT t_pohistory-cl_val_loc IS INITIAL.&lt;/P&gt;&lt;P&gt;          CONCATENATE t_pohistory-mat_doc t_pohistory-doc_year&lt;/P&gt;&lt;P&gt;                INTO bkpf-awkey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         SELECT SINGLE * FROM bkpf&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               WHERE awkey = bkpf-awkey.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*AVH - removed wrbtr and dmbtr from selection&lt;/P&gt;&lt;P&gt;          SELECT augdt augbl shkzg FROM bsak&lt;/P&gt;&lt;P&gt;                INTO (bsak-augdt,bsak-augbl,bsak-shkzg)&lt;/P&gt;&lt;P&gt;                WHERE bukrs = bkpf-bukrs&lt;/P&gt;&lt;P&gt;                  AND gjahr = bkpf-gjahr&lt;/P&gt;&lt;P&gt;                  AND belnr = bkpf-belnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*AVH&lt;/P&gt;&lt;P&gt;            if not bsak-augbl is initial.&lt;/P&gt;&lt;P&gt;              select belnr gjahr from bsak&lt;/P&gt;&lt;P&gt;               into (bsak-belnr, bsak-gjahr)&lt;/P&gt;&lt;P&gt;                where bukrs = bkpf-bukrs&lt;/P&gt;&lt;P&gt;                 and belnr = bkpf-belnr&lt;/P&gt;&lt;P&gt;                 and gjahr = bkpf-gjahr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                select awkey from bkpf&lt;/P&gt;&lt;P&gt;                 into v_bkpf_aw&lt;/P&gt;&lt;P&gt;                 where bukrs = 'GLOB'&lt;/P&gt;&lt;P&gt;                   and belnr = bsak-belnr&lt;/P&gt;&lt;P&gt;                   and gjahr = bsak-gjahr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                  w_len = strlen( v_bkpf_aw ).&lt;/P&gt;&lt;P&gt;                  w_off = w_len - 4.&lt;/P&gt;&lt;P&gt;                  v_awkey_1 = v_bkpf_aw+0(10).&lt;/P&gt;&lt;P&gt;                  v_awkey_2 = v_bkpf_aw+w_off(4).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                  select single dmbtr wrbtr from ekbe&lt;/P&gt;&lt;P&gt;                    into (ekbe-dmbtr, ekbe-wrbtr)&lt;/P&gt;&lt;P&gt;                   where belnr = v_awkey_1&lt;/P&gt;&lt;P&gt;                     and gjahr = v_awkey_2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*AVH - Changed all bsak-wrbtr to ekbe-wrbtr and dmbtr to ekbe-dmbtr.&lt;/P&gt;&lt;P&gt;                  IF bsak-shkzg = 'H'.&lt;/P&gt;&lt;P&gt;                    ekbe-dmbtr = - ekbe-dmbtr.&lt;/P&gt;&lt;P&gt;                    ekbe-wrbtr = - ekbe-wrbtr.&lt;/P&gt;&lt;P&gt;                  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                  IF t_pohistory-currency &amp;lt;&amp;gt; 'PHP'.&lt;/P&gt;&lt;P&gt;                    IF bsak-augdt GT pa_augdt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             IF bsak-augdt IN so_augdt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                      t_amount-tramt = t_amount-tramt + ekbe-wrbtr.&lt;/P&gt;&lt;P&gt;                    ENDIF.&lt;/P&gt;&lt;P&gt;                  ELSE.&lt;/P&gt;&lt;P&gt;                    IF bsak-augdt GT pa_augdt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             IF bsak-augdt IN so_augdt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                      t_amount-tramt = t_amount-tramt + ekbe-dmbtr.&lt;/P&gt;&lt;P&gt;                    ENDIF.&lt;/P&gt;&lt;P&gt;                  ENDIF.&lt;/P&gt;&lt;P&gt;                endselect.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               endselect.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              endselect.&lt;/P&gt;&lt;P&gt;            endif.&lt;/P&gt;&lt;P&gt;          ENDSELECT.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF t_account-distr_perc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          t_amount-dpamt = ( t_account-distr_perc *&lt;/P&gt;&lt;P&gt;                             t_amount-dpamt ) / 100.&lt;/P&gt;&lt;P&gt;          t_amount-gramt = ( t_account-distr_perc *&lt;/P&gt;&lt;P&gt;                             t_amount-gramt ) / 100.&lt;/P&gt;&lt;P&gt;          t_amount-iramt = ( t_account-distr_perc *&lt;/P&gt;&lt;P&gt;                             t_amount-iramt ) / 100.&lt;/P&gt;&lt;P&gt;          t_amount-tramt = ( t_account-distr_perc *&lt;/P&gt;&lt;P&gt;                             t_amount-tramt ) / 100.&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;      IF t_amount-tramt &amp;lt; 0.&lt;/P&gt;&lt;P&gt;        t_amount-tramt = 0.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      t_amount-tramt = t_amount-iramt.&lt;/P&gt;&lt;P&gt;      t_amount-blamt = t_amount-netwr - t_amount-tramt.&lt;/P&gt;&lt;P&gt;      COLLECT t_amount. CLEAR t_amount.&lt;/P&gt;&lt;P&gt;      APPEND t_proj.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      CLEAR v_netwr.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE netwr FROM ekpo INTO v_netwr&lt;/P&gt;&lt;P&gt;            WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;P&gt;              AND ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;      t_amount-ebeln = t_account-ebeln.&lt;/P&gt;&lt;P&gt;      t_amount-psphi = t_proj-psphi.&lt;/P&gt;&lt;P&gt;      t_amount-tramt = t_amount-iramt.&lt;/P&gt;&lt;P&gt;      t_amount-blamt = t_amount-netwr - t_amount-tramt.&lt;/P&gt;&lt;P&gt;      COLLECT t_amount. CLEAR t_amount.&lt;/P&gt;&lt;P&gt;      APPEND t_proj.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*part 2&lt;/P&gt;&lt;P&gt;  CHECK NOT t_ekpo[] IS INITIAL.&lt;/P&gt;&lt;P&gt;  LOOP AT t_ekpo.&lt;/P&gt;&lt;P&gt;    LOOP AT t_pohistory WHERE po_item = t_ekpo-ebelp&lt;/P&gt;&lt;P&gt;                          AND ebeln   = t_ekpo-ebeln.&lt;/P&gt;&lt;P&gt;      t_amount-ebeln = t_ekpo-ebeln.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ON CHANGE OF t_pohistory-po_item.&lt;/P&gt;&lt;P&gt;        CLEAR v_netwr.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE netwr FROM ekpo INTO v_netwr&lt;/P&gt;&lt;P&gt;              WHERE ebeln = t_ekpo-ebeln&lt;/P&gt;&lt;P&gt;                AND ebelp = t_ekpo-ebelp.&lt;/P&gt;&lt;P&gt;        t_amount-netwr = v_netwr.&lt;/P&gt;&lt;P&gt;      ENDON.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF t_pohistory-pstng_date LE pa_augdt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IF t_pohistory-pstng_date IN so_augdt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF t_pohistory-db_cr_ind = 'H'.&lt;/P&gt;&lt;P&gt;          t_pohistory-val_loccur = - t_pohistory-val_loccur.&lt;/P&gt;&lt;P&gt;          t_pohistory-val_forcur = - t_pohistory-val_forcur.&lt;/P&gt;&lt;P&gt;          t_pohistory-cl_val_loc = - t_pohistory-cl_val_loc.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF t_pohistory-hist_type = 'A'.&lt;/P&gt;&lt;P&gt;          IF t_pohistory-currency &amp;lt;&amp;gt; 'PHP'.&lt;/P&gt;&lt;P&gt;            t_amount-dpamt = t_amount-dpamt + t_pohistory-val_forcur.&lt;/P&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;            t_amount-dpamt = t_amount-dpamt + t_pohistory-val_loccur.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ELSEIF t_pohistory-hist_type = 'E'.&lt;/P&gt;&lt;P&gt;          IF t_pohistory-currency &amp;lt;&amp;gt; 'PHP'.&lt;/P&gt;&lt;P&gt;            t_amount-gramt = t_amount-gramt + t_pohistory-val_forcur.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;            t_amount-gramt = t_amount-gramt + t_pohistory-val_loccur.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ELSEIF t_pohistory-hist_type = 'Q'.&lt;/P&gt;&lt;P&gt;          IF t_pohistory-currency &amp;lt;&amp;gt; 'PHP'.&lt;/P&gt;&lt;P&gt;            t_amount-iramt = t_amount-iramt + t_pohistory-val_forcur.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;            t_amount-iramt = t_amount-iramt + t_pohistory-val_loccur.&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;        IF t_pohistory-currency &amp;lt;&amp;gt; 'PHP'.&lt;/P&gt;&lt;P&gt;          IF t_pohistory-val_loccur = 0 OR&lt;/P&gt;&lt;P&gt;             t_pohistory-val_forcur = 0.&lt;/P&gt;&lt;P&gt;            t_amount-tramt = t_amount-iramt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           t_amount-tramt = t_amount-dpamt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;            t_amount-tramt = t_amount-iramt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           t_amount-tramt = ( t_pohistory-cl_val_loc /&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                            ( t_pohistory-val_loccur /&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                              t_pohistory-val_forcur ) ) +&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                              t_amount-dpamt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          t_amount-tramt = t_amount-iramt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         t_amount-tramt = t_pohistory-cl_val_loc + t_amount-dpamt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF NOT t_pohistory-cl_val_loc IS INITIAL.&lt;/P&gt;&lt;P&gt;          CONCATENATE t_pohistory-mat_doc t_pohistory-doc_year&lt;/P&gt;&lt;P&gt;                INTO bkpf-awkey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         SELECT SINGLE * FROM bkpf&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               WHERE awkey = bkpf-awkey.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          SELECT augdt augbl shkzg  FROM bsak&lt;/P&gt;&lt;P&gt;                INTO (bsak-augdt,bsak-augbl,bsak-shkzg)&lt;/P&gt;&lt;P&gt;                WHERE bukrs = bkpf-bukrs&lt;/P&gt;&lt;P&gt;                  AND gjahr = bkpf-gjahr&lt;/P&gt;&lt;P&gt;                  AND belnr = bkpf-belnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*AVH - removed wrbtr from selection/start of insertion&lt;/P&gt;&lt;P&gt;            if not bsak-augbl is initial.&lt;/P&gt;&lt;P&gt;              select belnr gjahr from bsak&lt;/P&gt;&lt;P&gt;               into (bsak-belnr, bsak-gjahr)&lt;/P&gt;&lt;P&gt;               where bukrs = bkpf-bukrs&lt;/P&gt;&lt;P&gt;                 and belnr = bkpf-belnr&lt;/P&gt;&lt;P&gt;                 and gjahr = bkpf-gjahr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                select awkey from bkpf&lt;/P&gt;&lt;P&gt;                 into v_bkpf_aw&lt;/P&gt;&lt;P&gt;                 where bukrs = 'GLOB'&lt;/P&gt;&lt;P&gt;                   and belnr = bsak-belnr&lt;/P&gt;&lt;P&gt;                   and gjahr = bsak-gjahr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                  w_len = strlen( v_bkpf_aw ).&lt;/P&gt;&lt;P&gt;                  w_off = w_len - 4.&lt;/P&gt;&lt;P&gt;                  v_awkey_1 = v_bkpf_aw+0(10).&lt;/P&gt;&lt;P&gt;                  v_awkey_2 = v_bkpf_aw+w_off(4).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                  select dmbtr wrbtr from ekbe&lt;/P&gt;&lt;P&gt;                    into (ekbe-dmbtr, ekbe-wrbtr)&lt;/P&gt;&lt;P&gt;                   where belnr = v_awkey_1&lt;/P&gt;&lt;P&gt;                     and gjahr = v_awkey_2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*AVH - Changed all bsak-wrbtr to ekbe-wrbtr and dmbtr to ekbe-dmbtr.&lt;/P&gt;&lt;P&gt;                    IF bsak-shkzg = 'H'.&lt;/P&gt;&lt;P&gt;                      bsak-dmbtr = - ekbe-dmbtr. "bsak&lt;/P&gt;&lt;P&gt;                      ekbe-wrbtr = - ekbe-wrbtr. "bsak&lt;/P&gt;&lt;P&gt;                    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                    IF t_pohistory-currency &amp;lt;&amp;gt; 'PHP'.&lt;/P&gt;&lt;P&gt;                      IF bsak-augdt GT pa_augdt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             IF bsak-augdt IN so_augdt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                     t_amount-tramt = t_amount-tramt + ekbe-wrbtr. "bsak&lt;/P&gt;&lt;P&gt;                      ENDIF.&lt;/P&gt;&lt;P&gt;                    ELSE.&lt;/P&gt;&lt;P&gt;                      IF bsak-augdt GT pa_augdt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             IF bsak-augdt IN so_augdt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                     t_amount-tramt = t_amount-tramt + ekbe-dmbtr. "bsak&lt;/P&gt;&lt;P&gt;                      ENDIF.&lt;/P&gt;&lt;P&gt;                    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         ENDSELECT.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                  endselect.&lt;/P&gt;&lt;P&gt;                endselect.&lt;/P&gt;&lt;P&gt;              endselect.&lt;/P&gt;&lt;P&gt;            endif.&lt;/P&gt;&lt;P&gt;          endselect.&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;      IF t_amount-tramt &amp;lt; 0.&lt;/P&gt;&lt;P&gt;        t_amount-tramt = 0.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      t_amount-tramt = t_amount-iramt.&lt;/P&gt;&lt;P&gt;      t_amount-blamt = t_amount-netwr - t_amount-tramt.&lt;/P&gt;&lt;P&gt;      COLLECT t_amount. CLEAR t_amount.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      CLEAR v_netwr.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE netwr FROM ekpo INTO v_netwr&lt;/P&gt;&lt;P&gt;            WHERE ebeln = t_ekpo-ebeln&lt;/P&gt;&lt;P&gt;              AND ebelp = t_ekpo-ebelp.&lt;/P&gt;&lt;P&gt;      t_amount-ebeln = t_ekpo-ebeln.&lt;/P&gt;&lt;P&gt;      t_amount-netwr = v_netwr.&lt;/P&gt;&lt;P&gt;      t_amount-blamt = t_amount-netwr - t_amount-tramt.&lt;/P&gt;&lt;P&gt;      COLLECT t_amount. CLEAR t_amount.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " process_with_budat&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 28 Feb 2006 01:56:09 GMT</pubDate>
    <dc:creator>aris_hidalgo</dc:creator>
    <dc:date>2006-02-28T01:56:09Z</dc:date>
    <item>
      <title>loop does not read all records...</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/loop-does-not-read-all-records/m-p/1173848#M123845</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello experts,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am currently trying to figure out a certain code because when I debug it it does not loop through all the records. For example, on the selection screen I put in PO number 4540000027 up to 4540000051. So when I debug it PO numbers 4540000050 and 4540000051 does not go through the loop so when the report output shows these 2 PO's doesnt have PO amount which they get in ekpo-netwr. I checked ekpo and they have both have values. This also happens when I try to show all PO and some of the PO in the report doesnt have an amount which when I check on the table, they have an amount. The field which holds the values of a certain PO is t_amount-netwr.I have pasted below the code which I am currently modifying. Help would really be appreciated. Thanks guys and take care!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT t_account.&lt;/P&gt;&lt;P&gt;*AVH&lt;/P&gt;&lt;P&gt;    on change of t_account-ebeln.&lt;/P&gt;&lt;P&gt;      CLEAR v_netwr.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE netwr FROM ekpo INTO v_netwr&lt;/P&gt;&lt;P&gt;              WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;P&gt;                AND ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;        t_amount-netwr = v_netwr.&lt;/P&gt;&lt;P&gt;      ENDON.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DELETE it_dtl WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;P&gt;                    AND psphi IS initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DELETE t_ekpo WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;P&gt;                    AND ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   DELETE t_pohistory WHERE ebeln   = t_account-ebeln&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                        AND po_item = t_account-po_item.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t_proj-ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE psphi FROM prps INTO t_proj-psphi&lt;/P&gt;&lt;P&gt;          WHERE posid = t_account-wbs_elem_e.&lt;/P&gt;&lt;P&gt;    CHECK sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    LOOP AT t_pohistory WHERE po_item = t_account-po_item&lt;/P&gt;&lt;P&gt;                          AND ebeln   = t_account-ebeln.&lt;/P&gt;&lt;P&gt;      t_amount-ebeln = t_account-ebeln.&lt;/P&gt;&lt;P&gt;      t_amount-psphi = t_proj-psphi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     AT NEW po_item.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CLEAR v_netwr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     SELECT SINGLE netwr FROM ekpo INTO v_netwr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             AND ebelp = t_account-po_item.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     t_amount-netwr = v_netwr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDAT.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      on change of t_account-ebeln.&lt;/P&gt;&lt;P&gt;      CLEAR v_netwr.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE netwr FROM ekpo INTO v_netwr&lt;/P&gt;&lt;P&gt;              WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;P&gt;                AND ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;        t_amount-netwr = v_netwr.&lt;/P&gt;&lt;P&gt;      ENDON.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ON CHANGE OF t_pohistory-po_item.&lt;/P&gt;&lt;P&gt;        CLEAR v_netwr.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE netwr FROM ekpo INTO v_netwr&lt;/P&gt;&lt;P&gt;              WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;P&gt;                AND ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;        t_amount-netwr = v_netwr.&lt;/P&gt;&lt;P&gt;      ENDON.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF v_ebeln IS INITIAL AND v_ebelp IS INITIAL.&lt;/P&gt;&lt;P&gt;        CLEAR v_netwr.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE netwr FROM ekpo INTO v_netwr&lt;/P&gt;&lt;P&gt;              WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;P&gt;                AND ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;        t_amount-netwr = v_netwr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        v_ebeln = t_account-ebeln.&lt;/P&gt;&lt;P&gt;        v_ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSEIF v_ebeln &amp;lt;&amp;gt; t_account-ebeln AND&lt;/P&gt;&lt;P&gt;             v_ebelp &amp;lt;&amp;gt; t_account-po_item.&lt;/P&gt;&lt;P&gt;        CLEAR v_netwr.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE netwr FROM ekpo INTO v_netwr&lt;/P&gt;&lt;P&gt;              WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;P&gt;                AND ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;        t_amount-netwr = v_netwr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        v_ebeln = t_account-ebeln.&lt;/P&gt;&lt;P&gt;        v_ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSEIF v_ebeln = t_account-ebeln AND&lt;/P&gt;&lt;P&gt;             v_ebelp &amp;lt;&amp;gt; t_account-po_item.&lt;/P&gt;&lt;P&gt;        CLEAR v_netwr.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE netwr FROM ekpo INTO v_netwr&lt;/P&gt;&lt;P&gt;              WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;P&gt;                AND ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;        t_amount-netwr = v_netwr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        v_ebeln = t_account-ebeln.&lt;/P&gt;&lt;P&gt;        v_ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      elseif v_netwr is initial or t_amount-netwr is initial.&lt;/P&gt;&lt;P&gt;       CLEAR v_netwr.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE netwr FROM ekpo INTO v_netwr&lt;/P&gt;&lt;P&gt;              WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;P&gt;                AND ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;        t_amount-netwr = v_netwr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        v_ebeln = t_account-ebeln.&lt;/P&gt;&lt;P&gt;        v_ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Feb 2006 01:27:36 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/loop-does-not-read-all-records/m-p/1173848#M123845</guid>
      <dc:creator>aris_hidalgo</dc:creator>
      <dc:date>2006-02-28T01:27:36Z</dc:date>
    </item>
    <item>
      <title>Re: loop does not read all records...</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/loop-does-not-read-all-records/m-p/1173849#M123846</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;I guess you have not posted complete code.&lt;/P&gt;&lt;P&gt;First question - why don't you use Control Break statements instead of ON CHANGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Second question - for second loop (T_POHISTORY), already you are having condition of po item and po no, then why do you have ON CHANGE again?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Feb 2006 01:35:55 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/loop-does-not-read-all-records/m-p/1173849#M123846</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-02-28T01:35:55Z</dc:date>
    </item>
    <item>
      <title>Re: loop does not read all records...</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/loop-does-not-read-all-records/m-p/1173850#M123847</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi viyalab&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Does the internal table t_account have this PO's.?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;did you sort the internal table?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;No need of ON change in the loop at t_pohistory becoz it will loop only for one ebeln and ebelp which is your where condition&amp;lt;/b&amp;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;regards&lt;/P&gt;&lt;P&gt;kishore&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: Harikishore Sreenivasulu&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Feb 2006 01:38:34 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/loop-does-not-read-all-records/m-p/1173850#M123847</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-02-28T01:38:34Z</dc:date>
    </item>
    <item>
      <title>Re: loop does not read all records...</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/loop-does-not-read-all-records/m-p/1173851#M123848</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;You should NOT use Control Breaks inside a LOOP that is opened with a WHERE clause. It will not give you the correct results. You will have to change the second loop in your code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Suresh Datti&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Feb 2006 01:52:55 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/loop-does-not-read-all-records/m-p/1173851#M123848</guid>
      <dc:creator>suresh_datti</dc:creator>
      <dc:date>2006-02-28T01:52:55Z</dc:date>
    </item>
    <item>
      <title>Re: loop does not read all records...</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/loop-does-not-read-all-records/m-p/1173852#M123849</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes, I have sorted t_account and t_pohistory by ebeln. I have pasted again the code. Hope you could help me guys. Again, the problem is for example I put in PO number &lt;/P&gt;&lt;P&gt;450000027 up to 450000051 in the selection screen only 450000029 up to 450000051 is shown but the PO amount of 450000050 and 450000051 is not shown . &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM process_with_budat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DELETE t_pohistory WHERE hist_type &amp;lt;&amp;gt; 'A'&lt;/P&gt;&lt;P&gt;                       AND hist_type &amp;lt;&amp;gt; 'E'&lt;/P&gt;&lt;P&gt;                       AND hist_type &amp;lt;&amp;gt; 'Q'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  sort t_account by ebeln.&lt;/P&gt;&lt;P&gt;  sort t_pohistory by ebeln.&lt;/P&gt;&lt;P&gt;  LOOP AT t_account.&lt;/P&gt;&lt;P&gt;*AVH&lt;/P&gt;&lt;P&gt;     on change of t_account-ebeln.&lt;/P&gt;&lt;P&gt;      CLEAR v_netwr.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE netwr FROM ekpo INTO v_netwr&lt;/P&gt;&lt;P&gt;              WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;P&gt;                AND ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;        t_amount-netwr = v_netwr.&lt;/P&gt;&lt;P&gt;     endon.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DELETE it_dtl WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;P&gt;                    AND psphi IS initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DELETE t_ekpo WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;P&gt;                    AND ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   DELETE t_pohistory WHERE ebeln   = t_account-ebeln&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                        AND po_item = t_account-po_item.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t_proj-ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE psphi FROM prps INTO t_proj-psphi&lt;/P&gt;&lt;P&gt;          WHERE posid = t_account-wbs_elem_e.&lt;/P&gt;&lt;P&gt;    CHECK sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    LOOP AT t_pohistory WHERE po_item = t_account-po_item&lt;/P&gt;&lt;P&gt;                          AND ebeln   = t_account-ebeln.&lt;/P&gt;&lt;P&gt;      t_amount-ebeln = t_account-ebeln.&lt;/P&gt;&lt;P&gt;      t_amount-psphi = t_proj-psphi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      on change of t_account-ebeln.&lt;/P&gt;&lt;P&gt;      CLEAR v_netwr.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE netwr FROM ekpo INTO v_netwr&lt;/P&gt;&lt;P&gt;              WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;P&gt;                AND ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;        t_amount-netwr = v_netwr.&lt;/P&gt;&lt;P&gt;      ENDON.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ON CHANGE OF t_pohistory-po_item.&lt;/P&gt;&lt;P&gt;        CLEAR v_netwr.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE netwr FROM ekpo INTO v_netwr&lt;/P&gt;&lt;P&gt;              WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;P&gt;                AND ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;        t_amount-netwr = v_netwr.&lt;/P&gt;&lt;P&gt;      ENDON.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF v_ebeln IS INITIAL AND v_ebelp IS INITIAL.&lt;/P&gt;&lt;P&gt;        CLEAR v_netwr.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE netwr FROM ekpo INTO v_netwr&lt;/P&gt;&lt;P&gt;              WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;P&gt;                AND ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;        t_amount-netwr = v_netwr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        v_ebeln = t_account-ebeln.&lt;/P&gt;&lt;P&gt;        v_ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSEIF v_ebeln &amp;lt;&amp;gt; t_account-ebeln AND&lt;/P&gt;&lt;P&gt;             v_ebelp &amp;lt;&amp;gt; t_account-po_item.&lt;/P&gt;&lt;P&gt;        CLEAR v_netwr.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE netwr FROM ekpo INTO v_netwr&lt;/P&gt;&lt;P&gt;              WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;P&gt;                AND ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;        t_amount-netwr = v_netwr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        v_ebeln = t_account-ebeln.&lt;/P&gt;&lt;P&gt;        v_ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSEIF v_ebeln = t_account-ebeln AND&lt;/P&gt;&lt;P&gt;             v_ebelp &amp;lt;&amp;gt; t_account-po_item.&lt;/P&gt;&lt;P&gt;        CLEAR v_netwr.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE netwr FROM ekpo INTO v_netwr&lt;/P&gt;&lt;P&gt;              WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;P&gt;                AND ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;        t_amount-netwr = v_netwr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        v_ebeln = t_account-ebeln.&lt;/P&gt;&lt;P&gt;        v_ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CHECK NOT t_amount-psphi IS INITIAL.&lt;/P&gt;&lt;P&gt;      if t_pohistory-pstng_date LE pa_augdt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IF t_pohistory-pstng_date IN so_augdt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF t_pohistory-db_cr_ind = 'H'.&lt;/P&gt;&lt;P&gt;          t_pohistory-val_loccur = - t_pohistory-val_loccur.&lt;/P&gt;&lt;P&gt;          t_pohistory-val_forcur = - t_pohistory-val_forcur.&lt;/P&gt;&lt;P&gt;          t_pohistory-cl_val_loc = - t_pohistory-cl_val_loc.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF t_pohistory-hist_type = 'A'.&lt;/P&gt;&lt;P&gt;          IF t_pohistory-currency &amp;lt;&amp;gt; 'PHP'.&lt;/P&gt;&lt;P&gt;            t_amount-dpamt = t_amount-dpamt + t_pohistory-val_forcur.&lt;/P&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;            t_amount-dpamt = t_amount-dpamt + t_pohistory-val_loccur.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ELSEIF t_pohistory-hist_type = 'E'.&lt;/P&gt;&lt;P&gt;          IF t_pohistory-currency &amp;lt;&amp;gt; 'PHP'.&lt;/P&gt;&lt;P&gt;            t_amount-gramt = t_amount-gramt + t_pohistory-val_forcur.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;            t_amount-gramt = t_amount-gramt + t_pohistory-val_loccur.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ELSEIF t_pohistory-hist_type = 'Q'.&lt;/P&gt;&lt;P&gt;          IF t_pohistory-currency &amp;lt;&amp;gt; 'PHP'.&lt;/P&gt;&lt;P&gt;            t_amount-iramt = t_amount-iramt + t_pohistory-val_forcur.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;            t_amount-iramt = t_amount-iramt + t_pohistory-val_loccur.&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;        IF t_pohistory-currency &amp;lt;&amp;gt; 'PHP'.&lt;/P&gt;&lt;P&gt;          IF t_pohistory-val_loccur = 0 OR&lt;/P&gt;&lt;P&gt;             t_pohistory-val_forcur = 0.&lt;/P&gt;&lt;P&gt;            t_amount-tramt = t_amount-iramt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           t_amount-tramt = t_amount-dpamt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;            t_amount-tramt = t_amount-iramt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           t_amount-tramt = ( t_pohistory-cl_val_loc /&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                            ( t_pohistory-val_loccur /&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                              t_pohistory-val_forcur ) ) +&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                              t_amount-dpamt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          t_amount-tramt = t_amount-iramt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         t_amount-tramt = t_pohistory-cl_val_loc + t_amount-dpamt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF NOT t_pohistory-cl_val_loc IS INITIAL.&lt;/P&gt;&lt;P&gt;          CONCATENATE t_pohistory-mat_doc t_pohistory-doc_year&lt;/P&gt;&lt;P&gt;                INTO bkpf-awkey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         SELECT SINGLE * FROM bkpf&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               WHERE awkey = bkpf-awkey.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*AVH - removed wrbtr and dmbtr from selection&lt;/P&gt;&lt;P&gt;          SELECT augdt augbl shkzg FROM bsak&lt;/P&gt;&lt;P&gt;                INTO (bsak-augdt,bsak-augbl,bsak-shkzg)&lt;/P&gt;&lt;P&gt;                WHERE bukrs = bkpf-bukrs&lt;/P&gt;&lt;P&gt;                  AND gjahr = bkpf-gjahr&lt;/P&gt;&lt;P&gt;                  AND belnr = bkpf-belnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*AVH&lt;/P&gt;&lt;P&gt;            if not bsak-augbl is initial.&lt;/P&gt;&lt;P&gt;              select belnr gjahr from bsak&lt;/P&gt;&lt;P&gt;               into (bsak-belnr, bsak-gjahr)&lt;/P&gt;&lt;P&gt;                where bukrs = bkpf-bukrs&lt;/P&gt;&lt;P&gt;                 and belnr = bkpf-belnr&lt;/P&gt;&lt;P&gt;                 and gjahr = bkpf-gjahr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                select awkey from bkpf&lt;/P&gt;&lt;P&gt;                 into v_bkpf_aw&lt;/P&gt;&lt;P&gt;                 where bukrs = 'GLOB'&lt;/P&gt;&lt;P&gt;                   and belnr = bsak-belnr&lt;/P&gt;&lt;P&gt;                   and gjahr = bsak-gjahr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                  w_len = strlen( v_bkpf_aw ).&lt;/P&gt;&lt;P&gt;                  w_off = w_len - 4.&lt;/P&gt;&lt;P&gt;                  v_awkey_1 = v_bkpf_aw+0(10).&lt;/P&gt;&lt;P&gt;                  v_awkey_2 = v_bkpf_aw+w_off(4).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                  select single dmbtr wrbtr from ekbe&lt;/P&gt;&lt;P&gt;                    into (ekbe-dmbtr, ekbe-wrbtr)&lt;/P&gt;&lt;P&gt;                   where belnr = v_awkey_1&lt;/P&gt;&lt;P&gt;                     and gjahr = v_awkey_2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*AVH - Changed all bsak-wrbtr to ekbe-wrbtr and dmbtr to ekbe-dmbtr.&lt;/P&gt;&lt;P&gt;                  IF bsak-shkzg = 'H'.&lt;/P&gt;&lt;P&gt;                    ekbe-dmbtr = - ekbe-dmbtr.&lt;/P&gt;&lt;P&gt;                    ekbe-wrbtr = - ekbe-wrbtr.&lt;/P&gt;&lt;P&gt;                  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                  IF t_pohistory-currency &amp;lt;&amp;gt; 'PHP'.&lt;/P&gt;&lt;P&gt;                    IF bsak-augdt GT pa_augdt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             IF bsak-augdt IN so_augdt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                      t_amount-tramt = t_amount-tramt + ekbe-wrbtr.&lt;/P&gt;&lt;P&gt;                    ENDIF.&lt;/P&gt;&lt;P&gt;                  ELSE.&lt;/P&gt;&lt;P&gt;                    IF bsak-augdt GT pa_augdt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             IF bsak-augdt IN so_augdt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                      t_amount-tramt = t_amount-tramt + ekbe-dmbtr.&lt;/P&gt;&lt;P&gt;                    ENDIF.&lt;/P&gt;&lt;P&gt;                  ENDIF.&lt;/P&gt;&lt;P&gt;                endselect.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               endselect.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              endselect.&lt;/P&gt;&lt;P&gt;            endif.&lt;/P&gt;&lt;P&gt;          ENDSELECT.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF t_account-distr_perc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          t_amount-dpamt = ( t_account-distr_perc *&lt;/P&gt;&lt;P&gt;                             t_amount-dpamt ) / 100.&lt;/P&gt;&lt;P&gt;          t_amount-gramt = ( t_account-distr_perc *&lt;/P&gt;&lt;P&gt;                             t_amount-gramt ) / 100.&lt;/P&gt;&lt;P&gt;          t_amount-iramt = ( t_account-distr_perc *&lt;/P&gt;&lt;P&gt;                             t_amount-iramt ) / 100.&lt;/P&gt;&lt;P&gt;          t_amount-tramt = ( t_account-distr_perc *&lt;/P&gt;&lt;P&gt;                             t_amount-tramt ) / 100.&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;      IF t_amount-tramt &amp;lt; 0.&lt;/P&gt;&lt;P&gt;        t_amount-tramt = 0.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      t_amount-tramt = t_amount-iramt.&lt;/P&gt;&lt;P&gt;      t_amount-blamt = t_amount-netwr - t_amount-tramt.&lt;/P&gt;&lt;P&gt;      COLLECT t_amount. CLEAR t_amount.&lt;/P&gt;&lt;P&gt;      APPEND t_proj.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      CLEAR v_netwr.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE netwr FROM ekpo INTO v_netwr&lt;/P&gt;&lt;P&gt;            WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;P&gt;              AND ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;      t_amount-ebeln = t_account-ebeln.&lt;/P&gt;&lt;P&gt;      t_amount-psphi = t_proj-psphi.&lt;/P&gt;&lt;P&gt;      t_amount-tramt = t_amount-iramt.&lt;/P&gt;&lt;P&gt;      t_amount-blamt = t_amount-netwr - t_amount-tramt.&lt;/P&gt;&lt;P&gt;      COLLECT t_amount. CLEAR t_amount.&lt;/P&gt;&lt;P&gt;      APPEND t_proj.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*part 2&lt;/P&gt;&lt;P&gt;  CHECK NOT t_ekpo[] IS INITIAL.&lt;/P&gt;&lt;P&gt;  LOOP AT t_ekpo.&lt;/P&gt;&lt;P&gt;    LOOP AT t_pohistory WHERE po_item = t_ekpo-ebelp&lt;/P&gt;&lt;P&gt;                          AND ebeln   = t_ekpo-ebeln.&lt;/P&gt;&lt;P&gt;      t_amount-ebeln = t_ekpo-ebeln.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ON CHANGE OF t_pohistory-po_item.&lt;/P&gt;&lt;P&gt;        CLEAR v_netwr.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE netwr FROM ekpo INTO v_netwr&lt;/P&gt;&lt;P&gt;              WHERE ebeln = t_ekpo-ebeln&lt;/P&gt;&lt;P&gt;                AND ebelp = t_ekpo-ebelp.&lt;/P&gt;&lt;P&gt;        t_amount-netwr = v_netwr.&lt;/P&gt;&lt;P&gt;      ENDON.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF t_pohistory-pstng_date LE pa_augdt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IF t_pohistory-pstng_date IN so_augdt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF t_pohistory-db_cr_ind = 'H'.&lt;/P&gt;&lt;P&gt;          t_pohistory-val_loccur = - t_pohistory-val_loccur.&lt;/P&gt;&lt;P&gt;          t_pohistory-val_forcur = - t_pohistory-val_forcur.&lt;/P&gt;&lt;P&gt;          t_pohistory-cl_val_loc = - t_pohistory-cl_val_loc.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF t_pohistory-hist_type = 'A'.&lt;/P&gt;&lt;P&gt;          IF t_pohistory-currency &amp;lt;&amp;gt; 'PHP'.&lt;/P&gt;&lt;P&gt;            t_amount-dpamt = t_amount-dpamt + t_pohistory-val_forcur.&lt;/P&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;            t_amount-dpamt = t_amount-dpamt + t_pohistory-val_loccur.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ELSEIF t_pohistory-hist_type = 'E'.&lt;/P&gt;&lt;P&gt;          IF t_pohistory-currency &amp;lt;&amp;gt; 'PHP'.&lt;/P&gt;&lt;P&gt;            t_amount-gramt = t_amount-gramt + t_pohistory-val_forcur.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;            t_amount-gramt = t_amount-gramt + t_pohistory-val_loccur.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ELSEIF t_pohistory-hist_type = 'Q'.&lt;/P&gt;&lt;P&gt;          IF t_pohistory-currency &amp;lt;&amp;gt; 'PHP'.&lt;/P&gt;&lt;P&gt;            t_amount-iramt = t_amount-iramt + t_pohistory-val_forcur.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;            t_amount-iramt = t_amount-iramt + t_pohistory-val_loccur.&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;        IF t_pohistory-currency &amp;lt;&amp;gt; 'PHP'.&lt;/P&gt;&lt;P&gt;          IF t_pohistory-val_loccur = 0 OR&lt;/P&gt;&lt;P&gt;             t_pohistory-val_forcur = 0.&lt;/P&gt;&lt;P&gt;            t_amount-tramt = t_amount-iramt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           t_amount-tramt = t_amount-dpamt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;            t_amount-tramt = t_amount-iramt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           t_amount-tramt = ( t_pohistory-cl_val_loc /&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                            ( t_pohistory-val_loccur /&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                              t_pohistory-val_forcur ) ) +&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                              t_amount-dpamt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          t_amount-tramt = t_amount-iramt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         t_amount-tramt = t_pohistory-cl_val_loc + t_amount-dpamt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF NOT t_pohistory-cl_val_loc IS INITIAL.&lt;/P&gt;&lt;P&gt;          CONCATENATE t_pohistory-mat_doc t_pohistory-doc_year&lt;/P&gt;&lt;P&gt;                INTO bkpf-awkey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         SELECT SINGLE * FROM bkpf&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               WHERE awkey = bkpf-awkey.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          SELECT augdt augbl shkzg  FROM bsak&lt;/P&gt;&lt;P&gt;                INTO (bsak-augdt,bsak-augbl,bsak-shkzg)&lt;/P&gt;&lt;P&gt;                WHERE bukrs = bkpf-bukrs&lt;/P&gt;&lt;P&gt;                  AND gjahr = bkpf-gjahr&lt;/P&gt;&lt;P&gt;                  AND belnr = bkpf-belnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*AVH - removed wrbtr from selection/start of insertion&lt;/P&gt;&lt;P&gt;            if not bsak-augbl is initial.&lt;/P&gt;&lt;P&gt;              select belnr gjahr from bsak&lt;/P&gt;&lt;P&gt;               into (bsak-belnr, bsak-gjahr)&lt;/P&gt;&lt;P&gt;               where bukrs = bkpf-bukrs&lt;/P&gt;&lt;P&gt;                 and belnr = bkpf-belnr&lt;/P&gt;&lt;P&gt;                 and gjahr = bkpf-gjahr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                select awkey from bkpf&lt;/P&gt;&lt;P&gt;                 into v_bkpf_aw&lt;/P&gt;&lt;P&gt;                 where bukrs = 'GLOB'&lt;/P&gt;&lt;P&gt;                   and belnr = bsak-belnr&lt;/P&gt;&lt;P&gt;                   and gjahr = bsak-gjahr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                  w_len = strlen( v_bkpf_aw ).&lt;/P&gt;&lt;P&gt;                  w_off = w_len - 4.&lt;/P&gt;&lt;P&gt;                  v_awkey_1 = v_bkpf_aw+0(10).&lt;/P&gt;&lt;P&gt;                  v_awkey_2 = v_bkpf_aw+w_off(4).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                  select dmbtr wrbtr from ekbe&lt;/P&gt;&lt;P&gt;                    into (ekbe-dmbtr, ekbe-wrbtr)&lt;/P&gt;&lt;P&gt;                   where belnr = v_awkey_1&lt;/P&gt;&lt;P&gt;                     and gjahr = v_awkey_2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*AVH - Changed all bsak-wrbtr to ekbe-wrbtr and dmbtr to ekbe-dmbtr.&lt;/P&gt;&lt;P&gt;                    IF bsak-shkzg = 'H'.&lt;/P&gt;&lt;P&gt;                      bsak-dmbtr = - ekbe-dmbtr. "bsak&lt;/P&gt;&lt;P&gt;                      ekbe-wrbtr = - ekbe-wrbtr. "bsak&lt;/P&gt;&lt;P&gt;                    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                    IF t_pohistory-currency &amp;lt;&amp;gt; 'PHP'.&lt;/P&gt;&lt;P&gt;                      IF bsak-augdt GT pa_augdt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             IF bsak-augdt IN so_augdt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                     t_amount-tramt = t_amount-tramt + ekbe-wrbtr. "bsak&lt;/P&gt;&lt;P&gt;                      ENDIF.&lt;/P&gt;&lt;P&gt;                    ELSE.&lt;/P&gt;&lt;P&gt;                      IF bsak-augdt GT pa_augdt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             IF bsak-augdt IN so_augdt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                     t_amount-tramt = t_amount-tramt + ekbe-dmbtr. "bsak&lt;/P&gt;&lt;P&gt;                      ENDIF.&lt;/P&gt;&lt;P&gt;                    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         ENDSELECT.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                  endselect.&lt;/P&gt;&lt;P&gt;                endselect.&lt;/P&gt;&lt;P&gt;              endselect.&lt;/P&gt;&lt;P&gt;            endif.&lt;/P&gt;&lt;P&gt;          endselect.&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;      IF t_amount-tramt &amp;lt; 0.&lt;/P&gt;&lt;P&gt;        t_amount-tramt = 0.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      t_amount-tramt = t_amount-iramt.&lt;/P&gt;&lt;P&gt;      t_amount-blamt = t_amount-netwr - t_amount-tramt.&lt;/P&gt;&lt;P&gt;      COLLECT t_amount. CLEAR t_amount.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      CLEAR v_netwr.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE netwr FROM ekpo INTO v_netwr&lt;/P&gt;&lt;P&gt;            WHERE ebeln = t_ekpo-ebeln&lt;/P&gt;&lt;P&gt;              AND ebelp = t_ekpo-ebelp.&lt;/P&gt;&lt;P&gt;      t_amount-ebeln = t_ekpo-ebeln.&lt;/P&gt;&lt;P&gt;      t_amount-netwr = v_netwr.&lt;/P&gt;&lt;P&gt;      t_amount-blamt = t_amount-netwr - t_amount-tramt.&lt;/P&gt;&lt;P&gt;      COLLECT t_amount. CLEAR t_amount.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " process_with_budat&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Feb 2006 01:56:09 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/loop-does-not-read-all-records/m-p/1173852#M123849</guid>
      <dc:creator>aris_hidalgo</dc:creator>
      <dc:date>2006-02-28T01:56:09Z</dc:date>
    </item>
    <item>
      <title>Re: loop does not read all records...</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/loop-does-not-read-all-records/m-p/1173853#M123850</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;In intial block you are already populating V_NETWR, then why this repeats again?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;on change of t_account-ebeln.&lt;/P&gt;&lt;P&gt;CLEAR v_netwr.&lt;/P&gt;&lt;P&gt;SELECT SINGLE netwr FROM ekpo INTO v_netwr&lt;/P&gt;&lt;P&gt;WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;P&gt;AND ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;t_amount-netwr = v_netwr.&lt;/P&gt;&lt;P&gt;ENDON.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ON CHANGE OF t_pohistory-po_item.&lt;/P&gt;&lt;P&gt;CLEAR v_netwr.&lt;/P&gt;&lt;P&gt;SELECT SINGLE netwr FROM ekpo INTO v_netwr&lt;/P&gt;&lt;P&gt;WHERE ebeln = t_account-ebeln&lt;/P&gt;&lt;P&gt;AND ebelp = t_account-po_item.&lt;/P&gt;&lt;P&gt;t_amount-netwr = v_netwr.&lt;/P&gt;&lt;P&gt;ENDON.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You are getting data from BSAK based upon BKPF but this select is commented so the data will not get populated correctly.&lt;/P&gt;&lt;P&gt;Also avoid usage of SELECT - ENDSELECT. This will affect the performance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Try first analysing this code and then start replacing it with simple ABAP code.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Feb 2006 02:11:28 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/loop-does-not-read-all-records/m-p/1173853#M123850</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-02-28T02:11:28Z</dc:date>
    </item>
  </channel>
</rss>

