Modify COBL-MATNR in tx. CN25

Hi experts,
i'm not sure if this is the correct forum for my question...
I have created a new step in an exsiting substitution (tx. OKC9). The requirement is, if a document has no material, then I have to fill the field COBL-MATNR with some values.
So i implemented a new perform U400 in modulpool ZRGGBS000 with the following code:
FORM u400.
  DATA: it_valores TYPE TABLE OF z0000demp WITH HEADER LINE.
  CLEAR it_valores.
  REFRESH it_valores.
  break dsc15.
  IF cobl-hkont = '629104' OR cobl-hkont = '629105' OR
     cobl-hkont = '629106' OR cobl-hkont = '629107' OR
     cobl-hkont = '629108'.
    CALL FUNCTION 'Z_GR_00_VALOR_PARAM'
      EXPORTING
        pe_ztppara       = 'V'
        pe_zcodpar       = '153'
      TABLES
        it_valores       = it_valores
      EXCEPTIONS
        param_not_found  = 1
        param_not_active = 2
        OTHERS           = 3.
    IF sy-subrc = 0.
      READ TABLE it_valores INDEX 1.
      IF sy-subrc = 0.
        cobl-matnr = it_valores-zvalorp.
      ENDIF.
    ENDIF.
  ELSEIF cobl-hkont = 'FX1264'.
    CALL FUNCTION 'Z_GR_00_VALOR_PARAM'
      EXPORTING
        pe_ztppara       = 'V'
        pe_zcodpar       = '154'
      TABLES
        it_valores       = it_valores
      EXCEPTIONS
        param_not_found  = 1
        param_not_active = 2
        OTHERS           = 3.
    IF sy-subrc = 0.
      READ TABLE it_valores INDEX 1.
      IF sy-subrc = 0.
        cobl-matnr = it_valores-zvalorp.
      ENDIF.
    ENDIF.
  ELSE.
  ENDIF.
ENDFORM.   
With this code, when running tx. FB01 the field MATNR is filled but when I run tx. CN25 the matnr is not getting filled.. Is there anything else I should do ??
Thanks in advance,
Regards,
Maria

Hi Michel
data : z_alv_stb like line of alv_stb.
data : l_tabix like sy-tabix.
   select single mara~brgew mara~ntgew mara~gewei mara~extwg
    mara~groes mara~zzpls mara~zzchariot mbew~stprs mbew~bwprs
    mbew~bwps1 mbew~vjbws mbew~bwprh mbew~bwph1 mbew~vjbwh
    inner join mbew on mara~matnr = mbew~matnr
    into corresponding fields of table i_z_alv_stb
    where mara~matnr = z_alv_stb-dobjt.
SORT i_z_alv_stb BY matnr.
LOOP AT alv_stb INTO z_alv_stb.
  l_tabix = sy-tabix.
READ TABLE i_z_alv_stb INTO  z_alv_stb WITH KEY matnr = z_alv_stb-dobjt BINARY SEARCH.
MODIFY alv_stb from z_alv_stb index l_tabix.
ENDLOOP.
Pushpraj

Similar Messages

  • Delete Duplicate entries in itab

    Dear Experts,
    My code is Below. my requirement is all the work area fields are modify comparing matnr.
    but i am use append duplicates entris allowed.only possible to modify.
    loop at it_ekpo into wa_ekpo.
    read table it_ekpo3 into wa_ekpo3 with key matnr = wa_ekpo-matnr.
    if sy-subrc = 0.
    wa_ekpo-matnr = wa_ekpo3-matnr.
    wa_ekpo-menge = wa_ekpo3-menge.---->count field
    modify it_ekpo from wa_ekpo.
    endif.
    endloop.
    sort it_ekpo.
    DELETE adjacent DUPLICATES FROM it_ekpo comparing matnr.
    (Duplicates entry is not working) so modify is changed.
    reference:   -
    >it_ekpo  in this way
    ebeln      matnr   menge    ecp
    10           lo45       1          iiii
    10           l045       1          uuy
    10           lo77       1          hhj
    13           li12.       1          jhjh     [mainly i join one itab ibn it_ekpo]
    reference------>it_ekpo3.
    ebeln      matnr     menge
    10           lo45        2
    10           lo77        1
    13           li12         1
    my final output is --->it_ekpo          in this way.
    ebeln      matnr   menge    ecp
    10           lo45       2          iiii
    10           lo77       1          hhj
    13           li12.       1          jhjh      
    <removed_by_moderator>
    regards,
    raj.
    Edited by: Julius Bussche on Dec 11, 2008 5:30 PM

    sort it_ekpo by matnr.
    not
    sort it_ekpo.

  • Exit o BADI for overhead planning

    Hi experts:
    I am trying to plan CO orders and posting an statistical item to cost center at tthe same time (value type '10' - statistical plan).
    I have thought that maybe it is possibe by programming in a exit or badi. I have been finding out sustitutions but the plan doesn't create an entry in COEP and the plan doesn`t pass by the document position substitution to modify COBL.
    Do you have any further idea to inform cost center plan in my CO order planning.
    Thanks in advance for your help.
    Best regards
       Jose
    Edited by: JosManuel Bas on Aug 3, 2011 12:28 PM

    Hi Jose
    Try exploring exit COOM0001... This is called during Overhead calculation...
    Am not sure whether it also works for Plan or not.. You can try that....
    You can find out related BADI/Enhancement spots as below with the help of ABAPer
    Go to se24 -> cl_exithandler-> go to method get_instance -> and put a break point at
    CALL METHOD cl_exithandler=>get_class_name_by_interface
    Here one of the parameters is exit_name .
    Once after you put the break point , execute the transaction and here in the parameter exit_name , you will be able to see all the available badi's .
    br, Ajay M

  • Doubt in updating database table

    hi all
    i want to modify values ztable from a internal table ....
    for eg : the ztable contains matnr and accept_qty
    matnr   qty
    mat01   
    mat02
    i need to modify qty of the table .. i am using where condition (ie modify where matnr = ) but where condition is not working for database tables .... how to proceed with this ..
    thanks
    lokesh

    hi,
    before that :- modify statemnt will modify a record if there is record having the same key like that of record in work area.
    if there is no record in itab with key of work area record, it will insert a new record in itab.
    look this sample code.
    *modify internal table
    loop at itab into wa.
    wa-field1 = data1.
    wa-field2 = data2.
    wa-field 3= data3.
    modify itab from wa transporting field1 field2 field3 where key_field = wa-keyfield. "there shuld not be any chang in key field.
    endloop.
    *now update database table
    *work area and data base structure shuld be same type
    if itab[] is not initial.
    modify ztable from table itab.
    endif.
    rgds
    anver
    if hlped pls mark points

  • Sales Commission poting to Cost Centers Through Sales Order

    Dear All
    I have a situation. My Client want to post commission on different Cost Centers for different materials on the processing of Sales Order.
    I mean when a sale order is processed the Commission will be expended in One GL but it should be posted to different Cost Centers for Different Materials
    Can any one please help me how i can configure this
    Regards
    Bilal Athar

    Hi,
    You can try to create a substitution in CO (OKC9) and to substitute cost centre based on material number - COBL-MATNR (grouped in sets).
    Regards,
    Eli

  • Substiture structure for COBL

    Hi All,
    I need to fill the field <b>ORDER</b> (COBL-AUFNR) of Accounting Document at runtime.
    I have created one Business Transaction Event which is basically a Function Module.
    In this function module,
    I am already using the Parameter under table tab of this FM as T_BSEGSUB Like BSEG_SUBST.
    It is used to write the following
      LOOP AT T_BSEGSUB.
         T_BSEGSUB-MATNR = G_T_MVGR4-MATNR.( it is internal table's field)
         MODIFY T_BSEGSUB.
      ENDLOOP.
    Now same as above logic, I want to imlement for COBL table.
    But when I am writing the parameter in Tables Tab of the Function mudule as
    T_COBL Like COBL.
    It is going to dump at runtime.
    Doubt is which substitute structure I should use for COBL, like BSEG_SUBST I am using for BSEG.
    Quick Help will be really appreciate.
    Regards,
    Rishi.

    close

  • Data not displayed in Z-table when material code (MATNR) entered in selection screen.

    Hi Experts,
    I have a Z-table for a gatepass report which was already created by another developer. This table has many fields including plant, year, material code field. (MATNR) etc
    Now the problem is in SE11, I run the table to display the entries, when I enter plant and year and execute many entries are displayed.properly including material codes(e.g.50008536). 
    But when I execute the same entering plant, year and material code(e.g.50008536) then this message is displayed. " No table entries found for specified key"
    The same thing happens if I am writing a select query in my report to get the data of any particular material code. My internal table is not filled with the data including that particular material code.
    Some more info :
    1. The material code field in the Z-table is assigned the standard material code Data element. i.e. MATNR
    2. Even if I enter '000000000050008536' as input it is still not working. it is automatically changed to '50008536' after executing.
    So please help me where the problem is? I have spent alot of time on this but not able to find the problem..
    Thanks,
    Vishal .

    Hi Vishal,
    Hope I understand  that table content does not starts with zero for material, reply me if i am wrong.
    Use this code before where condition.
    loop at so_matnr.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
       EXPORTING
         INPUT         = so_matnr-low
      IMPORTING
        OUTPUT        = so_matnr-low.
    if so_matnr-high is NOT INITIAL.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
       EXPORTING
         INPUT         = so_matnr-high
      IMPORTING
        OUTPUT        = so_matnr-high.
    endif.
    MODIFY  so_matnr.
    endloop.
    if table content is filled with zero use  FM conversion_exit_alpha_input
    Regards,
    Venkat.

  • Need help to modify a report written using Field-Groups Concept. - Part1

    Hello ABAP Experts,
    I need your help to modify the following report with following requirement as I have least knowledge
    about the field-group concept. Thats is the reason, I am pasting the whole code. As it is part of our
    production requirement. I really appreciate your help, If its sent modifying the code required.
    Modification required in the report.
    To allow the sales representatives to see billed shipments and open orders for the current month.
    1) Selection Screen Changes:
    u2022     Add selection by Sales group and Customer group
    u2022     Add sort by:     3. Ship-to / Material
    u2022     Add another selection box
    [ ] Open Orders and Shipments with the current month
    2)      For the new selection box, subtotal sales quantity and delivery quantity.
         If delivered, make the sales quantity zero in the subtotal
    Current report displays, in Selection Screen
    Sales org:
    Person Name:
    Material:
    Plant:
    Sales Office:
    Ship to Name:
    Ship to Number:
    Sorts Report by : 1. Person Name 2. Material
    Check Boxes : 1. Open Orders 2. Delayed Orders.
    report  zorder  LINE-SIZE 170
                      LINE-COUNT 58
                      MESSAGE-ID zv
                      NO STANDARD PAGE HEADING.
    TABLES:
    cdhdr,                                 "Change Doc Header
    cdpos,                                 "Change Doc Item
    kna1,                                  "Customer master
    likp,                                  "Delivery Header
    lips,                                  "Delivery Item
    *lips,                                 "Delivery Item
    zvbpa_lfa1,                            "Vendor Master
    makt,                                  "Material Desc
    t001w,                                 "Plant
    tvkbt,                                 "Sales Office
    tvko,                                  "Sales Organizations
    vbak,                                  "Sales Header
    vbap,                                  "Sales Item
    zvvbak,                                "Sales Hdr - Time calc
    vbup,                                  "Item status
    vbep,                                  "Sales Schedule Line
    vbfa,                                  "Flow documents
    vbpa,                                  "Partners
    vbrk,                                  "Billing Header
    vbrp.                                  "Billing Item
    SELECT-OPTIONS:
      s_vkorg FOR vbak-vkorg OBLIGATORY,
      s_ernam FOR vbak-ernam,
      s_matnr FOR vbap-matnr,
      s_werks FOR vbap-werks,
      s_vkbur FOR vbak-vkbur,
      s_name1 FOR kna1-name1,
      s_kunnr FOR kna1-kunnr.
    SELECTION-SCREEN ULINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(49) text-c20.
    PARAMETERS: p_sort TYPE n DEFAULT '1'.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 19(40) text-022.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 19(40) text-023.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 19(40) text-024.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN COMMENT 19(40) text-070.
    SELECTION-SCREEN ULINE.
    SELECTION-SCREEN BEGIN OF BLOCK b20 WITH FRAME.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS:p_open AS CHECKBOX DEFAULT 'X'.
    SELECTION-SCREEN COMMENT 5(48) text-072.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS:p_delay AS CHECKBOX DEFAULT 'X'.
    SELECTION-SCREEN COMMENT 5(48) text-073.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN END OF BLOCK b20.
    DATA:
    vbeln(11),                             "Document number
    cancel_dt TYPE d,                      "Cancellation Date
    BEGIN OF tabkey,                       "Tabkey
    mandant LIKE sy-mandt,
    vbeln LIKE vbap-vbeln,
    posnr LIKE vbap-posnr,
    END OF tabkey,
    name1_sp1 LIKE lfa1-name1,             "Sales Carrier Name
    name1_sp2 LIKE lfa1-name1,             "Delivery Carrier Name
    datum-1 TYPE d,                        "Current Dt Less 1
    datum-14 TYPE d,                       "Current Dt Less 14
    datum-90 TYPE d,                       "Current Dt Less 90
    rpt_hdr1(170),                         "Report Header 1
    rpt_hdr2(170),                         "Report Header 2
    rpt_hdr3(170),                         "Report Header 3
    cb_hdr1(170),                          "Control Break Header 1
    line_pos1 TYPE i,                      "Line Print Position HDR1
    line_pos2 TYPE i,                      "Line Print Position HDR2
    line_pos3 TYPE i,                      "Line Print Position DET2
    status,                                "Order Status
    open,                                  "Open Order
    delayed VALUE 'D',                     "Delayed Order
    v_comp(30).                            "Company Text Field
    DATA: v_flagh2.  " Flag for header 2 & 3
    DATA: ls_comwa LIKE vbco6. "Structure for flow information
    DATA: t_vbfa_tab TYPE STANDARD TABLE OF vbfa WITH HEADER LINE."Itab
    for flow information
    data: g_trans_id type vttk-tdlnr. "get transport id from flow
      information
      data  v_sales_org_cpimex type vkorg value  '3300'.
      FIELD-GROUPS:
      header,
      order.
      INSERT
      status                                 "Status
      vbak-vkbur                             "Sales Office
      vbak-ernam                             "Created By
      kna1-kunnr                             "Customer
      kna1-name1                             "Customer Name
      vbap-matnr                             "Material
      vbap-werks                             "Plant
      vbep-lddat                             "Load Dt
      vbap-vbeln                             "Sales Document
      INTO header.
      INSERT
      kna1-ort01                             "City
      kna1-regio                             "Region
      likp-traid                             "Transport ID
      lips-vbeln                             "Delivery Document
      lips-ntgew                             "Net Wt
      lips-gewei                             "Unit of Weight
      vbap-kwmeng                            "Order Qty
      vbap-vrkme                             "Sales Unit
      vbak-bstnk                             "Customer PO
      vbak-erdat                             "Sales Create Dt
      vbak-ihrez                             "PO Release
      vbak-vdatu                            "Req Delivery Dt
      vbak-vzeit                            "Req Delivery Time
      vbfa-vbeln                             "Goods issue doc
      vbrk-vbeln                             "Billing Document
      name1_sp1                              "Sales Carrier
      name1_sp2                              "Delivery Carrier
      INTO order.
    INITIALIZATION.
    AT SELECTION-SCREEN.
      IF NOT p_sort BETWEEN 1 AND 2.
        MESSAGE e022 WITH p_sort.
      ENDIF.
    * Report 1 or more of cancelled, delayed or open
      IF p_open IS INITIAL AND
         p_delay IS INITIAL.
        MESSAGE e023.
      ENDIF.
    START-OF-SELECTION.
    * Load Company Name
      WRITE 'XYZ INC'(000) TO v_comp.
    * Calculate Date Range
      datum-1 = sy-datum - 1.
      datum-14 = sy-datum - 14.
      datum-90 = sy-datum - 90.
    * Compose Parameter Header
      PERFORM parm_hdr.
    ** Compose Report Header
      v_flagh2 = 1.
      PERFORM data_selection.
    END-OF-SELECTION.
    * Determine Sort
      CASE p_sort.
        WHEN 1.
          SORT BY status vbak-ernam kna1-name1 kna1-kunnr
                  vbep-lddat vbap-vbeln.
        WHEN 2.
          SORT BY status vbap-matnr vbap-werks vbep-lddat
                  vbap-vbeln.
      ENDCASE.
      LOOP.
        AT NEW status.
          CASE status.
            WHEN delayed.
              WRITE 'Delayed Orders'(061) TO rpt_hdr1.
            WHEN OTHERS.
              WRITE 'Open Orders'(062) TO rpt_hdr1.
          ENDCASE.
          NEW-PAGE.
        ENDAT.
        AT NEW vbak-ernam.
          IF p_sort = 1.
            CLEAR cb_hdr1.
            WRITE 'CAA:'(064) TO cb_hdr1.
            WRITE vbak-ernam TO cb_hdr1+5.
            NEW-PAGE.
          ENDIF.
        ENDAT.
        AT NEW vbap-matnr.
          IF p_sort = 2.
            CLEAR makt.
            SELECT SINGLE * FROM makt
                WHERE spras = sy-langu AND
                      matnr = vbap-matnr.
            CLEAR cb_hdr1.
            WRITE 'Material:'(042) TO cb_hdr1.
            WRITE vbap-matnr TO cb_hdr1+10.
            WRITE makt-maktx TO cb_hdr1+21.
            NEW-PAGE.
          ENDIF.
        ENDAT.
        AT NEW vbap-werks.
          AT order.
            RESERVE 3 LINES.
            SKIP 1.
            NEW-LINE.
    * Indicate new open item
            WRITE vbap-vbeln TO vbeln.
    * Find Transport ID
    * Fill the structure LS_COMWA
            ls_comwa-mandt = sy-mandt.
            ls_comwa-vbeln = vbap-vbeln.
            CALL FUNCTION 'RV_ORDER_FLOW_INFORMATION'
              EXPORTING
                comwa    = ls_comwa
              TABLES
                vbfa_tab = t_vbfa_tab.
            IF sy-subrc EQ 0.
              READ TABLE t_vbfa_tab WITH KEY vbtyp_n = '8'.
              IF sy-subrc EQ 0.
                SELECT SINGLE tdlnr INTO g_trans_id
                  FROM vttk WHERE tknum = t_vbfa_tab-vbeln.
                CONDENSE g_trans_id.
              ENDIF.
            ENDIF.
            IF vbak-erdat >= datum-1.
              vbeln+10 = 'N'.
            ENDIF.
            CASE p_sort.
              WHEN 1.
                WRITE 1 vbak-vkbur.
                WRITE 8 kna1-name1.
                WRITE 44 vbeln.
                WRITE 56 vbap-matnr.
                WRITE:
                    75 vbap-kwmeng LEFT-JUSTIFIED,
                     vbap-vrkme,
                    100 vbak-bstnk,
                     vbak-ihrez,
                    134 vbak-vdatu,
                        vbak-vzeit,
                    154 vbep-lddat.
                WRITE 166 vbap-werks.
                NEW-LINE.
                WRITE:
                  5  kna1-ort01,
                  41 kna1-regio.
                IF name1_sp2 IS INITIAL.
                  WRITE:
                    45 name1_sp1,
                ELSE.
                  WRITE 45 name1_sp2.
                  IF name1_sp1 = name1_sp2.
                    WRITE ' '.
                  ELSE.
                    WRITE '*'.
                  ENDIF.
                ENDIF.
                IF  vbak-vkorg =  v_sales_org_cpimex .
                  WRITE  81 g_trans_id.
                ELSE.
                  WRITE  81 likp-traid.
                ENDIF.
                WRITE:
                  102 lips-vbeln,
                  115 lips-ntgew NO-ZERO LEFT-JUSTIFIED,
                      lips-gewei,
                  140 vbfa-vbeln,
                  152 vbrk-vbeln.
              WHEN 2.
                WRITE 1 vbak-ernam.
                WRITE 14 vbak-vkbur.
                WRITE 21 kna1-name1.
                WRITE 57 vbeln.
                WRITE:
                    69 vbap-kwmeng LEFT-JUSTIFIED,
                        vbap-vrkme,
                    92 vbak-bstnk,
                        vbak-ihrez,
                    126 vbak-vdatu,
                      vbak-vzeit,
                    146 vbep-lddat.
                WRITE 162 vbap-werks.
                NEW-LINE.
                WRITE:
                  5  kna1-ort01,
                  41 kna1-regio.
                IF name1_sp2 IS INITIAL.
                  WRITE:
                    45 name1_sp1,
                ELSE.
                  WRITE 45 name1_sp2.
                  IF name1_sp1 = name1_sp2.
                    WRITE ' '.
                  ELSE.
                    WRITE '*'.
                  ENDIF.
                ENDIF.
                IF  vbak-vkorg =  v_sales_org_cpimex .
                  WRITE  81 g_trans_id.
                ELSE.
                  WRITE  81 likp-traid.
                ENDIF.
                WRITE:
                   102 lips-vbeln,
                   115 lips-ntgew NO-ZERO LEFT-JUSTIFIED,
                       lips-gewei,
                   140 vbfa-vbeln,
                   152 vbrk-vbeln.
            ENDCASE.
          ENDAT.
        ENDLOOP.
    *       FORM PARM_HDR                                                 *
    FORM parm_hdr.
      WRITE 'Program selections'(101) TO rpt_hdr1.
      WRITE 'Sign'(102) TO rpt_hdr1+29.
      WRITE 'Option'(103) TO rpt_hdr1+34.
      WRITE 'From'(104) TO rpt_hdr1+41.
      WRITE 'To'(105) TO rpt_hdr1+77.
    ENDFORM.                    "PARM_HDR
    *       FORM RPT_HDR                                                  *
    FORM rpt_hdr.
      CASE p_sort.
        WHEN 1.               "When sort by CAA
          WRITE 1'SOff'(066).
          WRITE 8'Customer'(009).
          WRITE 44'Sales Doc'(010).
          WRITE 56'Material'(031).
          WRITE 75'Sales Qty'(011).
          WRITE 100'Customer PO'(012).
          WRITE 134'Req.Del.Dt & Tm'(014).
          WRITE 154'Load Dt'(015).
          WRITE 166'Plnt'(016).
          NEW-LINE.
          WRITE 5'City'(017).
          WRITE 41'Reg'(069).
          WRITE 45'Carrier'(018).
          WRITE 81'Transport ID'(019).
          WRITE 102'Dlvry Doc'(021).
          WRITE 115'Dlvry Qty'(025).
          WRITE 140'PGI Doc'(026).
          WRITE 152'Billng Doc'(027).
        WHEN 2.               "When sort by Material
          WRITE 1'Created By'(008).
          WRITE 14'SOff'(066).
          WRITE 21'Customer'(009).
          WRITE 57'Sales Doc'(010).
          WRITE 69'Sales Qty'(011).
          WRITE 92'Customer PO'(012).
          WRITE 126'Req.Del.Dt & Tm'(014).
          WRITE 146'Load Dt'(015).
          WRITE 162'Plnt'(016).
          NEW-LINE.
          WRITE 5'City'(017).
          WRITE 41'Reg'(069).
          WRITE 45'Carrier'(018).
          WRITE 81'Transport ID'(019).
          WRITE 102'Dlvry Doc'(021).
          WRITE 115'Dlvry Qty'(025).
          WRITE 140'PGI Doc'(026).
          WRITE 152'Billng Doc'(027).
      ENDCASE.
    ENDFORM.                    "RPT_HDR
    INCLUDE zrpthdri.
    WRITE:
    / rpt_hdr1.
    ULINE.
    IF v_flagh2 <> 0.
      PERFORM rpt_hdr.  "Write secondary header
      ULINE.
    * Control Break Header
      WRITE / cb_hdr1.
    ENDIF.
    Continued in Part-2
    Thanks  a ton in advance.
    Mythili Sharma
    Edited by: Mythili sharma on Mar 30, 2009 3:32 AM
    Edited by: Rob Burbank on Mar 30, 2009 10:46 AM

    Hello ABAP Experts,
    I need your help to modify the following report with following requirement as I have least knowledge about the field-group concept. Thats is the reason, I am pasting the whole code. As it is part of our production requirement. I really appreciate your help, If its sent modifying the code required.
    Modification required in the report.
    To allow the sales representatives to see billed shipments and open orders for the current month.
    1) Selection Screen Changes:
    u2022     Add selection by Sales group and Customer group
    u2022     Add sort by:     5. Ship-to / Material
    u2022     Add another selection box
    [ ] Open Orders and Shipments with the current month
    2)      For the new selection box, subtotal sales quantity and delivery quantity.
         If delivered, make the sales quantity zero in the subtotal
    Current report displays, in Selection Screen
    Sales org:
    Person Name:
    Material:
    Plant:
    Sales Office:
    Ship to Name:
    Ship to Number:
    Sorts Report by :
    1. Person Name
    2. Material
    3. Plant
    4. Sales Office
    Check Boxes :
    1. Open Orders
    2. Delayed Orders
    3.Cancelled Orders
    PLEASE DOWNLOAD THE COMPLETE REPORT FROM THE FOLLOWING LINK
    << Link removed >>
    It would be a great help, If the program is modified according to the requirement and snd it back through send space and send link, even if u send the necessary changes to be done in the report is also appreciable.
    Thanks a ton in adanvce
    Mythili
    I wanted to close this thread as I could not put my question in a proper format. So please reply in the new thread which is posted.
    Edited by: Mythili sharma on Mar 30, 2009 2:16 PM
    Edited by: Rob Burbank on Mar 30, 2009 4:24 PM

  • How to modify page without clicking on Execute?

    Hi.
    I have 2 radio buttons(YES and NO) and one text field parameter(Request Number).
    I want that if I click on YES, the field-active for field Request Number should become 1, and similarly
    when I click on NO, the field-active should become 0.
    I have used the following code:
    SELECTION-SCREEN OUTPUT.
      IF p_no = 'X' .
        LOOP AT SCREEN.
          IF screen-name = 'P_TREQ'.
            screen-input = 0 .
         MODIFY SCREEN.
          ENDIF.
        ENDLOOP.
      ELSE.
        LOOP AT SCREEN.
          IF screen-name = 'P_TREQ'.
            screen-input = 1.
          ENDIF.
          MODIFY SCREEN.
        ENDLOOP.
      ENDIF.
    I have to click on execute everytime I'm switching the  radio buttons.
    I dont want that.
    Help me here.

    REPORT  zzbc_bha_test.
    DATA uc LIKE sy-ucomm.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
    PARAMETERS: p_no RADIOBUTTON GROUP rb USER-COMMAND uc,
                 p_no1 RADIOBUTTON GROUP rb DEFAULT 'X',
                 p_text LIKE mara-matnr.
    SELECTION-SCREEN END OF BLOCK b1.
    AT SELECTION-SCREEN OUTPUT.
       IF p_no EQ 'X'.
         LOOP AT SCREEN.
           IF screen-name = 'P_TEXT'.
             screen-input = 0.
             screen-active = 0.
             MODIFY SCREEN.
           ENDIF.  "IF screen-name = 'P_TEXT'.
         ENDLOOP.
       ELSE.
         LOOP AT SCREEN.
           IF screen-name = 'P_TEXT'.
             screen-input = 1.
             screen-active = 1.
             MODIFY SCREEN.
           ENDIF.  "IF screen-name = 'P_TEXT'.
         ENDLOOP.
       ENDIF.  "IF uc EQ p_no.

  • How to modify data in table control

    hi
    i have created table control where i have displayed  data into table control
    logic used
    screen 200
    PROCESS BEFORE OUTPUT.
    MODULE SELECT_RECORD.
    *&SPWIZARD: PBO FLOW LOGIC FOR TABLECONTROL 'TBC_200'
      MODULE TBC_200_CHANGE_TC_ATTR.
    *&SPWIZARD: MODULE TBC_200_CHANGE_COL_ATTR.
      LOOP AT   IT_MARA
           INTO WA_MARA
           WITH CONTROL TBC_200
           CURSOR TBC_200-CURRENT_LINE.
        MODULE TBC_200_GET_LINES.
    *&SPWIZARD:   MODULE TBC_200_CHANGE_FIELD_ATTR
      ENDLOOP.
    MODULE STATUS_0200.
    PROCESS AFTER INPUT.
    *&SPWIZARD: PAI FLOW LOGIC FOR TABLECONTROL 'TBC_200'
      LOOP AT IT_MARA.
        CHAIN.
          FIELD WA_MARA-MATNR.
          FIELD WA_MARA-ERSDA.
          FIELD WA_MARA-ERNAM.
          MODULE TBC_200_MODIFY ON CHAIN-REQUEST.
        ENDCHAIN.
        FIELD WA_MARA-MARK
          MODULE TBC_200_MARK ON REQUEST.
      ENDLOOP.
      MODULE TBC_200_USER_COMMAND.
    *&SPWIZARD: MODULE TBC_200_CHANGE_TC_ATTR.
    *&SPWIZARD: MODULE TBC_200_CHANGE_COL_ATTR.
    module -
    MODULE SELECT_RECORD.
    MODULE SELECT_RECORD OUTPUT.
    SELECT MATNR ERSDA ERNAM
            FROM MARA
            INTO CORRESPONDING FIELDS OF TABLE it_mara.
    ENDMODULE.                 " SELECT_RECORD  OUTPUT
    and
    another thing
    i have made  field  MARA-ERSDA. and  FIELD WA_MARA-ERNAM editable by
    input possible using layout
    so
    now those 2 fields contents  are editable
    i want to know how to edit and save the data
    some body guide.
    and i want to put the lock so that i can update
    can tell how to implement lock.
    Thanks
    Edited by: viju bangalore on Jan 27, 2011 10:40 AM

    Hi Viju,
    In PAI do something like this
    LOOP AT itab.
        MODULE mod_table_control.
    ENDLOOP.
    MODULE user_command_0100.
    at module mod_table_control put this
    MODULE mod_table_control INPUT.
      MODIFY itab FROM demo_conn INDEX flights-current_line.
      if sy-subrc ne 0.
           insert itab.
      endif.
    ENDMODULE.
    for saving you can create at custom gui status with a save button, and at MODULE user_command_0100 save the data.

  • To Modify a field value with field symbols

    we had a requirement like we are getting in a floating point value in a field of an IDoc segment like 12.327- .Here if we see that the negative sign is after the floating point value and if we try to insert this into a database then it will throw out an error.Before inserting the value we need to covert the incoming value in the form -12.327.
    I used the field symbols inorder to get the values and to change them.
    But iam not able to modify the internal table from the new value.
    Here is my sample code.
    DATA: IT_MBEW TYPE TABLE OF MBEW,
          WA_MBEW TYPE MBEW,
          IT_DFIES TYPE TABLE OF DFIES,
          WA_DFIES TYPE DFIES,
          IT_DD03L TYPE TABLE OF DD03L,
          WA_DD03L TYPE DD03L,
          L_FIELD TYPE VALUE,
          WA_VALUE TYPE mbew,
          L_MBEW TYPE DDOBJNAME VALUE 'MBEW'.
    FIELD-SYMBOLS: <FS1> TYPE ANY.
    FIELD-SYMBOLS: <FS3> TYPE ANY.
    FIELD-SYMBOLS: <FS2> TYPE ANY.
    SELECT * INTO CORRESPONDING FIELDS OF TABLE IT_MBEW
      FROM MBEW  WHERE MATNR = '000000000000100110'.
    LOOP AT IT_MBEW INTO WA_MBEW.
      WA_MBEW-SALK3 = - 354471.
      MODIFY IT_MBEW FROM WA_MBEW.
    ENDLOOP.
    To call the FM inorder to get the fieldnames for MBEW table
    CALL FUNCTION 'DDIF_FIELDINFO_GET'
      EXPORTING
        TABNAME              = L_MBEW
        FIELDNAME            = ' '
       LANGU                = SY-LANGU
        LFIELDNAME           = ' '
       ALL_TYPES            = ' '
        GROUP_NAMES          = ' '
        UCLEN                =
      IMPORTING
        X030L_WA             =
        DDOBJTYPE            =
        DFIES_WA             =
        LINES_DESCR          =
    TABLES
       DFIES_TAB            = IT_DFIES
        FIXED_VALUES         =
    EXCEPTIONS
       NOT_FOUND            = 1
       INTERNAL_ERROR       = 2
       OTHERS               = 3
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    SELECT TABNAME FIELDNAME DATATYPE POSITION INTO CORRESPONDING FIELDS OF TABLE
             IT_DD03L FROM DD03L
             WHERE TABNAME = 'MBEW'
             AND   DATATYPE = 'CURR'
             ORDER BY POSITION ASCENDING.
    *LOOP AT IT_MBEW INTO WA_MBEW.
    LOOP AT IT_MBEW assigning <fs1>.
    ASSIGN WA_MBEW TO <FS1>.
    do.
      LOOP AT IT_DD03L INTO WA_DD03L.
        READ TABLE IT_DFIES INTO WA_DFIES WITH  KEY FIELDNAME = WA_DD03L-FIELDNAME
                                          DATATYPE = WA_DD03L-DATATYPE.
        IF SY-SUBRC = 0.
          ASSIGN WA_DFIES-FIELDNAME TO <FS2>.
          ASSIGN COMPONENT SY-TABIX OF STRUCTURE <FS1> TO <FS3>.
          MOVE <FS3> TO L_FIELD.
          CONDENSE L_FIELD.
          CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
            CHANGING
              VALUE = L_FIELD.
          IF SY-SUBRC = 0.
            ASSIGN L_FIELD TO <FS3>.
                    MODIFY ITMBEW INDEX SY-TABIX FROM <FS3>._    
    ENDIF.
        ENDIF.
      ENDLOOP.
    *enddo.
    ENDLOOP.
    The Modify statement is not working.....Plesae help me in this regard.
    Thanks
    Srinivas

    Hello.
    When you write,
    LOOP AT it_mbew ASSIGNING <fs1>.
    ENDLOOP.
    you don't need to use statements:
    ASSIGN WA_MBEW TO <FS1>
    nor
    MODIFY it_mbew
    after that.
    If you just write:
    LOOP AT it_mbew ASSIGNING <fs1>.
      <fs1>-field1 = 'A'.
      <fs1>-field2 = 'B'.
    ENDLOOP.
    all records of it_mbew will have field1 = 'A' and field2 = 'B'.
    The point is, statement LOOP assigning <fs1> will make the field symbol to became a pointer to the records of the internal table. So, if you change the field symbol, you are changing the internal table already.
    Regards.
    Valter Oliveira.

  • Modified Report required

    hi guys am new to ABAP,
    i have a report which prints information of a single customer for a particular period , can anybody modify my report and give me the code for displaying information of multiple customers at a time... and info of every customer  should be printed in a fresh page.... i mean printing of next customer should should start in new page... plz check the code below
    *& Report  ZFI_STMT_OF_ACC
    REPORT  zfi_stmt_of_acc_new NO STANDARD PAGE HEADING LINE-COUNT 60
              LINE-SIZE 224.
    TABLES: kna1,
            bseg,
            bkpf,
            bsid,
            bsik,
            vbrk,j_1iexcdtl.
           zfi_cu_tran.
    *INTERNAL TABLES DECLARATION
    DATA: BEGIN OF it_bsid1 OCCURS 0,
          belnr LIKE bsid-belnr,
          blart LIKE bsid-blart,
          budat LIKE bsid-budat,
          bldat LIKE bsid-bldat,
          xblnr LIKE bsid-xblnr,
          sgtxt LIKE bsid-sgtxt,
          kunnr LIKE bsid-kunnr,
          umskz LIKE bsid-umskz,
          shkzg LIKE bsid-shkzg,
          wrbtr LIKE bsid-wrbtr,
          vbeln LIKE bsid-vbeln,
    END OF it_bsid1.
    DATA: BEGIN OF it_bsid2 OCCURS 0,
          belnr LIKE bsid-belnr,
          blart LIKE bsid-blart,
          budat LIKE bsid-budat,
          bldat LIKE bsid-bldat,
          xblnr LIKE bsid-xblnr,
          sgtxt LIKE bsid-sgtxt,
          kunnr LIKE bsid-kunnr,
          umskz LIKE bsid-umskz,
          shkzg LIKE bsid-shkzg,
          wrbtr LIKE bsid-wrbtr,
          vbeln LIKE bsid-vbeln,
    END OF it_bsid2.
    DATA: it_bsid3 LIKE it_bsid1 OCCURS 0 WITH HEADER LINE.
    DATA: it_bsid4 LIKE it_bsid2 OCCURS 0 WITH HEADER LINE.
    DATA: BEGIN OF it_bsik1 OCCURS 0,
          belnr LIKE bsik-belnr,
          blart LIKE bsik-blart,
          budat LIKE bsik-budat,
          bldat LIKE bsik-bldat,
          xblnr LIKE bsik-xblnr,
          sgtxt LIKE bsik-sgtxt,
          lifnr LIKE bsik-lifnr,
          umskz LIKE bsik-umskz,
          shkzg LIKE bsik-shkzg,
          wrbtr LIKE bsik-wrbtr,
          ebeln LIKE bsik-ebeln,
    END OF it_bsik1.
    DATA: BEGIN OF it_bsik2 OCCURS 0,
          belnr LIKE bsik-belnr,
          blart LIKE bsik-blart,
          budat LIKE bsik-budat,
          bldat LIKE bsik-bldat,
          xblnr LIKE bsik-xblnr,
          sgtxt LIKE bsik-sgtxt,
          lifnr LIKE bsik-lifnr,
          umskz LIKE bsik-umskz,
          shkzg LIKE bsik-shkzg,
          wrbtr LIKE bsik-wrbtr,
          ebeln LIKE bsik-ebeln,
    END OF it_bsik2.
    DATA it_final LIKE it_bsid1 OCCURS 0 WITH HEADER LINE.
    DATA: BEGIN OF it_vbrp OCCURS 0,
          vbeln LIKE vbrp-vbeln,
          fkdat LIKE vbrk-fkdat,
          matnr LIKE vbrp-matnr,
          fkimg LIKE vbrp-fkimg,
          meins LIKE vbrp-meins,
    END OF it_vbrp.
    DATA: BEGIN OF it_output OCCURS 0,
          belnr LIKE bsid-belnr,
          bldat LIKE bsid-bldat,
          budat LIKE bsid-budat,
          vbeln LIKE bsid-vbeln,
          fkdat LIKE vbrk-fkdat,
          blart LIKE bsid-blart,
          dwrbtr LIKE bsid-wrbtr,
          cwrbtr LIKE bsid-wrbtr,
          cumil TYPE p DECIMALS 2,
          matnr LIKE vbrp-matnr,
          fkimg LIKE vbrp-fkimg,
          meins LIKE vbrp-meins,
          xblnr LIKE bsid-xblnr,
          sgtxt LIKE bsid-sgtxt,
    END OF it_output.
    DATA: v_kunnr LIKE kna1-kunnr,
          v_name1 LIKE kna1-name1,
          v_ort01 LIKE kna1-ort01,
          v_lifnr LIKE lfa1-lifnr,
          v_belnr LIKE bsid-belnr,
          v_exnum LIKE j_1iexcdtl-exnum.
    DATA: v_budat LIKE bkpf-budat.
    DATA: v_budat1 LIKE v_budat,
          v_budat2 LIKE v_budat.
    DATA: v_nwrbtr TYPE p DECIMALS 2,
          v_swrbtr TYPE p DECIMALS 2,
          v_vwrbtr TYPE p DECIMALS 2,
          v_fwrbtr TYPE p DECIMALS 2,
          v_cumil TYPE p DECIMALS 2,
          v_debit TYPE p DECIMALS 2,
          v_credit TYPE p DECIMALS 2.
    DATA: v_xwrbtr TYPE p DECIMALS 2.
    DATA: v_text(75),
          v_date1(10),
          v_date2(10).
    DATA: it_output1 LIKE it_output OCCURS 0 WITH HEADER LINE.
    DATA: it_output2 LIKE it_output OCCURS 0 WITH HEADER LINE.
    SELECT-OPTIONS s_budat1 FOR bkpf-budat NO-DISPLAY.
    SELECTION-SCREEN BEGIN OF BLOCK customer WITH FRAME TITLE text-001.
    SELECT-OPTIONS: s_kunnr FOR kna1-kunnr NO INTERVALS NO-EXTENSION
                                           OBLIGATORY,
                    s_budat FOR bkpf-budat NO-EXTENSION OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK customer.
    SELECTION-SCREEN BEGIN OF BLOCK type WITH FRAME TITLE text-002.
    PARAMETERS: x_norm LIKE itemset-xnorm AS CHECKBOX DEFAULT 'X',
                x_shbv LIKE itemset-xshbv AS CHECKBOX,
                x_apar LIKE itemset-xarit AS CHECKBOX.
    SELECTION-SCREEN END OF BLOCK type.
    MOVE s_budat-low TO v_budat.
    IF s_budat-high LT '20060331'.
      MESSAGE 'DATA NOT AVILABLE TO THE GIVEN DATE RANGE' TYPE 'E'.
    ENDIF.
    LOOP AT s_budat.
      s_budat-low = '20060330'.
      MODIFY s_budat.
    ENDLOOP.
    START-OF-SELECTION.
      CLEAR: v_nwrbtr,
             v_swrbtr,
             v_vwrbtr,
             v_fwrbtr.
      SELECT SINGLE kunnr name1 ort01
             FROM kna1 INTO (v_kunnr, v_name1, v_ort01)
             WHERE kunnr IN s_kunnr.
      SELECT SINGLE lifnr
             FROM lfa1 INTO v_lifnr
             WHERE kunnr IN s_kunnr.
      IF x_norm EQ 'X'.
        SELECT belnr blart budat bldat
               xblnr sgtxt kunnr
               umskz shkzg wrbtr vbeln
               FROM bsid
               INTO CORRESPONDING FIELDS OF TABLE it_bsid1
               WHERE kunnr IN s_kunnr AND
                     budat IN s_budat AND
                     umskz EQ space.
        SELECT belnr blart budat bldat
               xblnr sgtxt kunnr
               umskz shkzg wrbtr vbeln
               FROM bsad
               INTO CORRESPONDING FIELDS OF TABLE it_bsid2
               WHERE kunnr IN s_kunnr AND
                     budat IN s_budat AND
                     umskz EQ space.
      ENDIF.
      IF x_shbv EQ 'X'.
        SELECT belnr blart budat bldat
               xblnr sgtxt kunnr
               umskz shkzg wrbtr vbeln
               FROM bsid
               INTO CORRESPONDING FIELDS OF TABLE it_bsid3
               WHERE kunnr IN s_kunnr AND
                     budat IN s_budat AND
                     umskz NE space AND
                     umskz NE 'C' AND
                     umskz NE 'D' AND
                     umskz NE 'S'.
        SELECT belnr blart budat bldat
               xblnr sgtxt kunnr
               umskz shkzg wrbtr vbeln
               FROM bsad
               INTO CORRESPONDING FIELDS OF TABLE it_bsid4
               WHERE kunnr IN s_kunnr AND
                     budat IN s_budat AND
                     umskz NE space AND
                     umskz NE 'C' AND
                     umskz NE 'D' AND
                     umskz NE 'S'.
      ENDIF.
      IF x_apar EQ 'X'.
        SELECT belnr blart budat bldat
               xblnr sgtxt lifnr
               umskz shkzg wrbtr ebeln
               FROM bsik
               INTO CORRESPONDING FIELDS OF TABLE it_bsik1
               WHERE lifnr EQ v_lifnr AND
                     budat IN s_budat.
        SELECT belnr blart budat bldat
               xblnr sgtxt lifnr
               umskz shkzg wrbtr ebeln
               FROM bsak
               INTO CORRESPONDING FIELDS OF TABLE it_bsik2
               WHERE lifnr EQ v_lifnr AND
                     budat IN s_budat.
      ENDIF.
      it_final[] = it_bsid1[].
      LOOP AT it_bsid2.
        MOVE: it_bsid2-belnr TO it_final-belnr,
              it_bsid2-blart TO it_final-blart,
              it_bsid2-budat TO it_final-budat,
              it_bsid2-bldat TO it_final-bldat,
              it_bsid2-xblnr TO it_final-xblnr,
              it_bsid2-sgtxt TO it_final-sgtxt,
              it_bsid2-kunnr TO it_final-kunnr,
              it_bsid2-umskz TO it_final-umskz,
              it_bsid2-shkzg TO it_final-shkzg,
              it_bsid2-wrbtr TO it_final-wrbtr,
              it_bsid2-vbeln TO it_final-vbeln.
        APPEND it_final.
      ENDLOOP.
      LOOP AT it_bsid3.
        MOVE: it_bsid3-belnr TO it_final-belnr,
              it_bsid3-blart TO it_final-blart,
              it_bsid3-budat TO it_final-budat,
              it_bsid3-bldat TO it_final-bldat,
              it_bsid3-xblnr TO it_final-xblnr,
              it_bsid3-sgtxt TO it_final-sgtxt,
              it_bsid3-kunnr TO it_final-kunnr,
              it_bsid3-umskz TO it_final-umskz,
              it_bsid3-shkzg TO it_final-shkzg,
              it_bsid3-wrbtr TO it_final-wrbtr,
              it_bsid3-vbeln TO it_final-vbeln.
        APPEND it_final.
      ENDLOOP.
      LOOP AT it_bsid4.
        MOVE: it_bsid4-belnr TO it_final-belnr,
              it_bsid4-blart TO it_final-blart,
              it_bsid4-budat TO it_final-budat,
              it_bsid4-bldat TO it_final-bldat,
              it_bsid4-xblnr TO it_final-xblnr,
              it_bsid4-sgtxt TO it_final-sgtxt,
              it_bsid4-kunnr TO it_final-kunnr,
              it_bsid4-umskz TO it_final-umskz,
              it_bsid4-shkzg TO it_final-shkzg,
              it_bsid4-wrbtr TO it_final-wrbtr,
              it_bsid4-vbeln TO it_final-vbeln.
        APPEND it_final.
      ENDLOOP.
      LOOP AT it_bsik1.
        MOVE: it_bsik1-belnr TO it_final-belnr,
              it_bsik1-blart TO it_final-blart,
              it_bsik1-budat TO it_final-budat,
              it_bsik1-bldat TO it_final-bldat,
              it_bsik1-xblnr TO it_final-xblnr,
              it_bsik1-sgtxt TO it_final-sgtxt,
              it_bsik1-lifnr TO it_final-kunnr,
              it_bsik1-umskz TO it_final-umskz,
              it_bsik1-shkzg TO it_final-shkzg,
              it_bsik1-wrbtr TO it_final-wrbtr,
              it_bsik1-ebeln TO it_final-vbeln.
        APPEND it_final.
      ENDLOOP.
      LOOP AT it_bsik2.
        MOVE: it_bsik2-belnr TO it_final-belnr,
              it_bsik2-blart TO it_final-blart,
              it_bsik2-budat TO it_final-budat,
              it_bsik2-bldat TO it_final-bldat,
              it_bsik2-xblnr TO it_final-xblnr,
              it_bsik2-sgtxt TO it_final-sgtxt,
              it_bsik2-lifnr TO it_final-kunnr,
              it_bsik2-umskz TO it_final-umskz,
              it_bsik2-shkzg TO it_final-shkzg,
              it_bsik2-wrbtr TO it_final-wrbtr,
              it_bsik2-ebeln TO it_final-vbeln.
        APPEND it_final.
      ENDLOOP.
      LOOP AT it_final.
        IF it_final-vbeln EQ space.
          IF it_final-shkzg = 'S'.
            MOVE : it_final-belnr TO it_output-belnr,
                   it_final-budat TO it_output-budat,
                   it_final-bldat TO it_output-bldat,
                   it_final-blart TO it_output-blart,
                   it_final-wrbtr TO it_output-dwrbtr,
                   it_final-xblnr TO it_output-xblnr,
                   it_final-sgtxt TO it_output-sgtxt.
          ELSEIF it_final-shkzg = 'H'.
            MOVE : it_final-belnr TO it_output-belnr,
                   it_final-budat TO it_output-budat,
                   it_final-bldat TO it_output-bldat,
                   it_final-blart TO it_output-blart,
                   it_final-wrbtr TO it_output-cwrbtr,
                   it_final-xblnr TO it_output-xblnr,
                   it_final-sgtxt TO it_output-sgtxt.
          ENDIF.
          APPEND it_output.
          CLEAR it_output.
          DELETE it_final.
        ENDIF.
      ENDLOOP.
      LOOP AT it_final.
        IF it_final-shkzg = 'S'.
          MOVE : it_final-belnr TO it_output-belnr,
                 it_final-budat TO it_output-budat,
                 it_final-bldat TO it_output-bldat,
                 it_final-blart TO it_output-blart,
                 it_final-wrbtr TO it_output-dwrbtr,
                 it_final-xblnr TO it_output-xblnr,
                 it_final-sgtxt TO it_output-sgtxt,
                 it_final-vbeln TO it_output-vbeln.
        ELSEIF it_final-shkzg = 'H'.
          MOVE : it_final-belnr TO it_output-belnr,
                 it_final-budat TO it_output-budat,
                 it_final-bldat TO it_output-bldat,
                 it_final-blart TO it_output-blart,
                 it_final-wrbtr TO it_output-cwrbtr,
                 it_final-xblnr TO it_output-xblnr,
                 it_final-sgtxt TO it_output-sgtxt,
                 it_final-vbeln TO it_output-vbeln.
        ENDIF.
        APPEND it_output.
        CLEAR it_output.
      ENDLOOP.
      LOOP AT it_output.
        IF it_output-budat LT v_budat.
          v_fwrbtr = v_fwrbtr + it_output-dwrbtr - it_output-cwrbtr.
          DELETE it_output.
        ENDIF.
      ENDLOOP.
      SORT it_output BY belnr.
      LOOP AT it_output WHERE blart EQ 'R2'.
        MOVE  it_output TO it_output1.
        APPEND it_output1.
      ENDLOOP.
      SORT it_output1 BY belnr.
      it_output2[] = it_output1[].
      DELETE ADJACENT DUPLICATES FROM it_output1 COMPARING belnr.
      LOOP AT it_output.
        READ TABLE it_output2 WITH KEY belnr = it_output-belnr.
        IF sy-subrc EQ 0.
          DELETE it_output.
        ENDIF.
      ENDLOOP.
      LOOP AT it_output1.
        READ TABLE it_output2 WITH KEY belnr = it_output1-belnr.
        CLEAR v_xwrbtr.
        LOOP AT it_output2 WHERE belnr EQ it_output1-belnr.
          v_xwrbtr = v_xwrbtr + it_output2-dwrbtr - it_output2-cwrbtr.
        ENDLOOP.
        CLEAR it_output.
        MOVE: it_output1-belnr TO it_output-belnr,
              it_output1-budat TO it_output-budat,
              it_output1-bldat TO it_output-bldat,
              'R2'             TO it_output-blart,
              it_output1-xblnr TO it_output-xblnr.
        IF v_xwrbtr LT 0.
          v_xwrbtr = v_xwrbtr * -1.
          MOVE: v_xwrbtr TO it_output-cwrbtr.
        ELSE.
          MOVE: v_xwrbtr TO it_output-dwrbtr.
        ENDIF.
        APPEND it_output.
      ENDLOOP.
      SORT it_output BY budat belnr.
      IF NOT it_final[] IS INITIAL.
        SELECT vbrk~vbeln vbrp~matnr vbrp~fkimg vbrp~meins vbrk~fkdat
               INTO CORRESPONDING FIELDS OF TABLE it_vbrp
               FROM vbrk INNER JOIN vbrp ON vbrk~vbeln EQ vbrp~vbeln
               FOR ALL entries IN it_final
               WHERE vbrk~vbeln = it_final-vbeln.
      ENDIF.
      v_cumil = v_fwrbtr.
      CLEAR: v_debit,
             v_credit.
      LOOP AT it_output.
        IF NOT it_output-vbeln EQ space.
          READ TABLE it_vbrp WITH KEY vbeln = it_output-vbeln.
          MOVE: it_vbrp-matnr TO it_output-matnr,
                it_vbrp-fkdat TO it_output-fkdat,
                it_vbrp-fkimg TO it_output-fkimg,
                it_vbrp-meins TO it_output-meins.
          MODIFY it_output.
        ENDIF.
        v_cumil = v_cumil - it_output-cwrbtr + it_output-dwrbtr.
        v_debit = v_debit + it_output-dwrbtr.
        v_credit = v_credit + it_output-cwrbtr.
        MOVE v_cumil TO it_output-cumil.
        MODIFY it_output.
      ENDLOOP.
      WRITE:/001 sy-vline,
             002 'Opening Balace as on', v_budat CENTERED,
             034 sy-vline,
             045 sy-vline,
             056 sy-vline,
             067 sy-vline,
             072 sy-vline,
             093 sy-vline,
             114 sy-vline,
             115(20) v_fwrbtr RIGHT-JUSTIFIED,
             135 sy-vline,
             154 sy-vline,
             172 sy-vline,
             176 sy-vline,
             193 sy-vline,
             224 sy-vline.
      LOOP AT it_output.
        CLEAR v_exnum.
        SELECT SINGLE * FROM j_1iexcdtl
         WHERE rdoc2 = it_output-vbeln
           AND matnr = it_output-matnr.
        IF sy-subrc = 0.
          v_exnum = j_1iexcdtl-exnum.
        ENDIF.
        WRITE:/001 sy-vline,
               002(10) it_output-belnr,
               012 sy-vline,
               013(10) it_output-bldat,
               023 sy-vline,
               024(10) it_output-budat,
               034 sy-vline,
               035(10) v_exnum,
               045 sy-vline,
               046(10) it_output-vbeln,
               056 sy-vline,
               057(10) it_output-fkdat NO-ZERO,
               067 sy-vline,
               068(4) it_output-blart CENTERED,
               072 sy-vline,
               073(20) it_output-dwrbtr RIGHT-JUSTIFIED NO-ZERO,
               093 sy-vline,
               094(20) it_output-cwrbtr RIGHT-JUSTIFIED NO-ZERO,
               114 sy-vline,
               115(20) it_output-cumil RIGHT-JUSTIFIED NO-SIGN,
               135 sy-vline,
               136(18) it_output-matnr,
               154 sy-vline,
               155(17) it_output-fkimg RIGHT-JUSTIFIED NO-ZERO,
               172 sy-vline,
               173(3) it_output-meins CENTERED,
               176 sy-vline,
               177(16) it_output-xblnr CENTERED,
               193 sy-vline,
               194(30) it_output-sgtxt CENTERED,
               224 sy-vline.
      ENDLOOP.
      WRITE:/001(224) sy-uline.
      SKIP.
      WRITE:/ 'TOTALS AS ON', s_budat-high, ':',
              040(19) v_fwrbtr RIGHT-JUSTIFIED, '+',
              063(19) v_debit RIGHT-JUSTIFIED, '-',
              084(19) v_credit RIGHT-JUSTIFIED, '=',
              105(19) v_cumil RIGHT-JUSTIFIED.
    *WRITE:/ 'Closing Balance for Customer', V_KUNNR, 'as on', S_BUDAT-,
         091 'Rs',
         093(20) V_CUMIL RIGHT-JUSTIFIED.
      SKIP.
      WRITE:/ '** BALANCE SUBJECT TO RECONCILIATION'.
    TOP-OF-PAGE.
      CONCATENATE v_budat+6(2)
                  v_budat+4(2)
                  v_budat+0(4) INTO v_date1 SEPARATED BY '.'.
      CONCATENATE s_budat-high+6(2)
                  s_budat-high+4(2)
                  s_budat-high+0(4) INTO v_date2 SEPARATED BY '.'.
      CONCATENATE 'STATEMENT OF CUSTOMER ACCOUNT FOR THE PERIOD FROM'
                   v_date1
                  'TO'
                   v_date2 INTO v_text SEPARATED BY space.
      WRITE:/ 'REPORT ID:ZFI_STMT_OF_ACC_NEW',100 'INDIAN RAYON' CENTERED,
               170 'Page No:',sy-pagno LEFT-JUSTIFIED.
      WRITE:/001(213) '( A Unit of Aditya Birla Nuvo Limited )' CENTERED,
             170 'Commonly used Document Types' .
      WRITE:/001(213) 'VERAVAL-362266' CENTERED,
             170 'RV = Invoice, RZ = Invoice Reversal'.
      WRITE:/170 'R2 = Money Receipt, CN = Credit Note'.
      WRITE:/001(213) v_text CENTERED,
             170 'DN = Debit Note, HP = Payment Voucher-R'.
      WRITE:/001 'PARTY CODE   :',
             020 v_kunnr,
             170 'HR = Receipt Voucher-R, CP = Payment Voucher-C'.
      WRITE:/001 'NAME OF PARTY:',
             020 v_name1,170 'CR = Receipt Voucher-C, JV = Journal Voucher'.
      WRITE:/001 'CITY         :',
             020 v_ort01,170 'AB = Clearing Document'.
      WRITE:/001 sy-vline,
             002(222) sy-uline,
             224 sy-vline.
      WRITE:/001 sy-vline,
             002(10) 'Doc No.' CENTERED,
             012 sy-vline,
             013(10) 'Doc Dt.' CENTERED,
             023 sy-vline,
             024(10) 'Post Dt.' CENTERED,
             034 sy-vline,
             035(10) 'Excise No' CENTERED,
             045 sy-vline,
             046(10) 'Bill Doc.' CENTERED,
             056 sy-vline,
             057(10) 'Bill Dt.' CENTERED,
             067 sy-vline,
             068(4) 'VR' CENTERED,
             072 sy-vline,
             073(20) 'Debit' CENTERED,
             093 sy-vline,
             094(20) 'Credit' CENTERED,
             114 sy-vline,
             115(20) 'Cumulative' CENTERED,
             135 sy-vline,
             136(18) 'Material Code' CENTERED,
             154 sy-vline,
             155(17) 'Quantity' CENTERED,
             172 sy-vline,
             173(3) 'UOM',
             176 sy-vline,
             177(16) 'Reference' CENTERED,
             193 sy-vline,
             194(30) 'Narration' CENTERED,
             224 sy-vline.
      WRITE:/001 sy-vline,
             012 sy-vline,
             023 sy-vline,
             034 sy-vline,
             045 sy-vline,
             056 sy-vline,
             067 sy-vline,
             068(4) 'Type' CENTERED,
             072 sy-vline,
             093 sy-vline,
             114 sy-vline,
             115(20) 'Balance' CENTERED,
             135 sy-vline,
             154 sy-vline,
             172 sy-vline,
             176 sy-vline,
             193 sy-vline,
             224 sy-vline.
      WRITE:/001 sy-vline,
             002(222) sy-uline,
             224 sy-vline.
    10 reward points  will be given for solution.
    regards,
    naveen

    Hi,
    Copy this.
    *& Report  ZTEST
    *& Report ZFI_STMT_OF_ACC
    REPORT  ZTABLE_DOWNLOAD NO STANDARD PAGE HEADING LINE-COUNT 60
    LINE-SIZE 224.
    TABLES: kna1,
    bseg,
    bkpf,
    bsid,
    bsik,
    vbrk,j_1iexcdtl.
    zfi_cu_tran.
    *INTERNAL TABLES DECLARATION
    DATA: BEGIN OF it_bsid1 OCCURS 0,
    belnr LIKE bsid-belnr,
    blart LIKE bsid-blart,
    budat LIKE bsid-budat,
    bldat LIKE bsid-bldat,
    xblnr LIKE bsid-xblnr,
    sgtxt LIKE bsid-sgtxt,
    kunnr LIKE bsid-kunnr,
    umskz LIKE bsid-umskz,
    shkzg LIKE bsid-shkzg,
    wrbtr LIKE bsid-wrbtr,
    vbeln LIKE bsid-vbeln,
    END OF it_bsid1.
    DATA: BEGIN OF it_bsid2 OCCURS 0,
    belnr LIKE bsid-belnr,
    blart LIKE bsid-blart,
    budat LIKE bsid-budat,
    bldat LIKE bsid-bldat,
    xblnr LIKE bsid-xblnr,
    sgtxt LIKE bsid-sgtxt,
    kunnr LIKE bsid-kunnr,
    umskz LIKE bsid-umskz,
    shkzg LIKE bsid-shkzg,
    wrbtr LIKE bsid-wrbtr,
    vbeln LIKE bsid-vbeln,
    END OF it_bsid2.
    DATA: it_bsid3 LIKE it_bsid1 OCCURS 0 WITH HEADER LINE.
    DATA: it_bsid4 LIKE it_bsid2 OCCURS 0 WITH HEADER LINE.
    DATA: BEGIN OF it_bsik1 OCCURS 0,
    belnr LIKE bsik-belnr,
    blart LIKE bsik-blart,
    budat LIKE bsik-budat,
    bldat LIKE bsik-bldat,
    xblnr LIKE bsik-xblnr,
    sgtxt LIKE bsik-sgtxt,
    lifnr LIKE bsik-lifnr,
    umskz LIKE bsik-umskz,
    shkzg LIKE bsik-shkzg,
    wrbtr LIKE bsik-wrbtr,
    ebeln LIKE bsik-ebeln,
    END OF it_bsik1.
    DATA: BEGIN OF it_bsik2 OCCURS 0,
    belnr LIKE bsik-belnr,
    blart LIKE bsik-blart,
    budat LIKE bsik-budat,
    bldat LIKE bsik-bldat,
    xblnr LIKE bsik-xblnr,
    sgtxt LIKE bsik-sgtxt,
    lifnr LIKE bsik-lifnr,
    umskz LIKE bsik-umskz,
    shkzg LIKE bsik-shkzg,
    wrbtr LIKE bsik-wrbtr,
    ebeln LIKE bsik-ebeln,
    END OF it_bsik2.
    DATA it_final LIKE it_bsid1 OCCURS 0 WITH HEADER LINE.
    DATA: BEGIN OF it_vbrp OCCURS 0,
    vbeln LIKE vbrp-vbeln,
    fkdat LIKE vbrk-fkdat,
    matnr LIKE vbrp-matnr,
    fkimg LIKE vbrp-fkimg,
    meins LIKE vbrp-meins,
    END OF it_vbrp.
    DATA: BEGIN OF it_output OCCURS 0,
    belnr LIKE bsid-belnr,
    bldat LIKE bsid-bldat,
    budat LIKE bsid-budat,
    vbeln LIKE bsid-vbeln,
    fkdat LIKE vbrk-fkdat,
    blart LIKE bsid-blart,
    dwrbtr LIKE bsid-wrbtr,
    cwrbtr LIKE bsid-wrbtr,
    cumil TYPE p DECIMALS 2,
    matnr LIKE vbrp-matnr,
    fkimg LIKE vbrp-fkimg,
    meins LIKE vbrp-meins,
    xblnr LIKE bsid-xblnr,
    sgtxt LIKE bsid-sgtxt,
    END OF it_output.
    DATA: v_kunnr LIKE kna1-kunnr,
    v_name1 LIKE kna1-name1,
    v_ort01 LIKE kna1-ort01,
    v_lifnr LIKE lfa1-lifnr,
    v_belnr LIKE bsid-belnr,
    v_exnum LIKE j_1iexcdtl-exnum.
    DATA: v_budat LIKE bkpf-budat.
    DATA: v_budat1 LIKE v_budat,
    v_budat2 LIKE v_budat.
    DATA: v_nwrbtr TYPE p DECIMALS 2,
    v_swrbtr TYPE p DECIMALS 2,
    v_vwrbtr TYPE p DECIMALS 2,
    v_fwrbtr TYPE p DECIMALS 2,
    v_cumil TYPE p DECIMALS 2,
    v_debit TYPE p DECIMALS 2,
    v_credit TYPE p DECIMALS 2.
    DATA: v_xwrbtr TYPE p DECIMALS 2.
    DATA: v_text(75),
    v_date1(10),
    v_date2(10).
    DATA: it_output1 LIKE it_output OCCURS 0 WITH HEADER LINE.
    DATA: it_output2 LIKE it_output OCCURS 0 WITH HEADER LINE.
    SELECT-OPTIONS s_budat1 FOR bkpf-budat NO-DISPLAY.
    SELECTION-SCREEN BEGIN OF BLOCK customer WITH FRAME TITLE text-001.
    SELECT-OPTIONS: s_kunnr FOR kna1-kunnr OBLIGATORY,
    s_budat FOR bkpf-budat NO-EXTENSION OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK customer.
    SELECTION-SCREEN BEGIN OF BLOCK type WITH FRAME TITLE text-002.
    PARAMETERS: x_norm LIKE itemset-xnorm AS CHECKBOX DEFAULT 'X',
    x_shbv LIKE itemset-xshbv AS CHECKBOX,
    x_apar LIKE itemset-xarit AS CHECKBOX.
    SELECTION-SCREEN END OF BLOCK type.
    MOVE s_budat-low TO v_budat.
    IF s_budat-high LT '20060331'.
    MESSAGE 'DATA NOT AVILABLE TO THE GIVEN DATE RANGE' TYPE 'E'.
    ENDIF.
    LOOP AT s_budat.
    s_budat-low = '20060330'.
    MODIFY s_budat.
    ENDLOOP.
    START-OF-SELECTION.
    CLEAR: v_nwrbtr,
    v_swrbtr,
    v_vwrbtr,
    v_fwrbtr.
    SELECT SINGLE kunnr name1 ort01
    FROM kna1 INTO (v_kunnr, v_name1, v_ort01)
    WHERE kunnr IN s_kunnr.
    SELECT SINGLE lifnr
    FROM lfa1 INTO v_lifnr
    WHERE kunnr IN s_kunnr.
    IF x_norm EQ 'X'.
    SELECT belnr blart budat bldat
    xblnr sgtxt kunnr
    umskz shkzg wrbtr vbeln
    FROM bsid
    INTO CORRESPONDING FIELDS OF TABLE it_bsid1
    WHERE kunnr IN s_kunnr AND
    budat IN s_budat AND
    umskz EQ space.
    SELECT belnr blart budat bldat
    xblnr sgtxt kunnr
    umskz shkzg wrbtr vbeln
    FROM bsad
    INTO CORRESPONDING FIELDS OF TABLE it_bsid2
    WHERE kunnr IN s_kunnr AND
    budat IN s_budat AND
    umskz EQ space.
    ENDIF.
    IF x_shbv EQ 'X'.
    SELECT belnr blart budat bldat
    xblnr sgtxt kunnr
    umskz shkzg wrbtr vbeln
    FROM bsid
    INTO CORRESPONDING FIELDS OF TABLE it_bsid3
    WHERE kunnr IN s_kunnr AND
    budat IN s_budat AND
    umskz NE space AND
    umskz NE 'C' AND
    umskz NE 'D' AND
    umskz NE 'S'.
    SELECT belnr blart budat bldat
    xblnr sgtxt kunnr
    umskz shkzg wrbtr vbeln
    FROM bsad
    INTO CORRESPONDING FIELDS OF TABLE it_bsid4
    WHERE kunnr IN s_kunnr AND
    budat IN s_budat AND
    umskz NE space AND
    umskz NE 'C' AND
    umskz NE 'D' AND
    umskz NE 'S'.
    ENDIF.
    IF x_apar EQ 'X'.
    SELECT belnr blart budat bldat
    xblnr sgtxt lifnr
    umskz shkzg wrbtr ebeln
    FROM bsik
    INTO CORRESPONDING FIELDS OF TABLE it_bsik1
    WHERE lifnr EQ v_lifnr AND
    budat IN s_budat.
    SELECT belnr blart budat bldat
    xblnr sgtxt lifnr
    umskz shkzg wrbtr ebeln
    FROM bsak
    INTO CORRESPONDING FIELDS OF TABLE it_bsik2
    WHERE lifnr EQ v_lifnr AND
    budat IN s_budat.
    ENDIF.
    it_final[] = it_bsid1[].
    LOOP AT it_bsid2.
    MOVE: it_bsid2-belnr TO it_final-belnr,
    it_bsid2-blart TO it_final-blart,
    it_bsid2-budat TO it_final-budat,
    it_bsid2-bldat TO it_final-bldat,
    it_bsid2-xblnr TO it_final-xblnr,
    it_bsid2-sgtxt TO it_final-sgtxt,
    it_bsid2-kunnr TO it_final-kunnr,
    it_bsid2-umskz TO it_final-umskz,
    it_bsid2-shkzg TO it_final-shkzg,
    it_bsid2-wrbtr TO it_final-wrbtr,
    it_bsid2-vbeln TO it_final-vbeln.
    APPEND it_final.
    ENDLOOP.
    LOOP AT it_bsid3.
    MOVE: it_bsid3-belnr TO it_final-belnr,
    it_bsid3-blart TO it_final-blart,
    it_bsid3-budat TO it_final-budat,
    it_bsid3-bldat TO it_final-bldat,
    it_bsid3-xblnr TO it_final-xblnr,
    it_bsid3-sgtxt TO it_final-sgtxt,
    it_bsid3-kunnr TO it_final-kunnr,
    it_bsid3-umskz TO it_final-umskz,
    it_bsid3-shkzg TO it_final-shkzg,
    it_bsid3-wrbtr TO it_final-wrbtr,
    it_bsid3-vbeln TO it_final-vbeln.
    APPEND it_final.
    ENDLOOP.
    LOOP AT it_bsid4.
    MOVE: it_bsid4-belnr TO it_final-belnr,
    it_bsid4-blart TO it_final-blart,
    it_bsid4-budat TO it_final-budat,
    it_bsid4-bldat TO it_final-bldat,
    it_bsid4-xblnr TO it_final-xblnr,
    it_bsid4-sgtxt TO it_final-sgtxt,
    it_bsid4-kunnr TO it_final-kunnr,
    it_bsid4-umskz TO it_final-umskz,
    it_bsid4-shkzg TO it_final-shkzg,
    it_bsid4-wrbtr TO it_final-wrbtr,
    it_bsid4-vbeln TO it_final-vbeln.
    APPEND it_final.
    ENDLOOP.
    LOOP AT it_bsik1.
    MOVE: it_bsik1-belnr TO it_final-belnr,
    it_bsik1-blart TO it_final-blart,
    it_bsik1-budat TO it_final-budat,
    it_bsik1-bldat TO it_final-bldat,
    it_bsik1-xblnr TO it_final-xblnr,
    it_bsik1-sgtxt TO it_final-sgtxt,
    it_bsik1-lifnr TO it_final-kunnr,
    it_bsik1-umskz TO it_final-umskz,
    it_bsik1-shkzg TO it_final-shkzg,
    it_bsik1-wrbtr TO it_final-wrbtr,
    it_bsik1-ebeln TO it_final-vbeln.
    APPEND it_final.
    ENDLOOP.
    LOOP AT it_bsik2.
    MOVE: it_bsik2-belnr TO it_final-belnr,
    it_bsik2-blart TO it_final-blart,
    it_bsik2-budat TO it_final-budat,
    it_bsik2-bldat TO it_final-bldat,
    it_bsik2-xblnr TO it_final-xblnr,
    it_bsik2-sgtxt TO it_final-sgtxt,
    it_bsik2-lifnr TO it_final-kunnr,
    it_bsik2-umskz TO it_final-umskz,
    it_bsik2-shkzg TO it_final-shkzg,
    it_bsik2-wrbtr TO it_final-wrbtr,
    it_bsik2-ebeln TO it_final-vbeln.
    APPEND it_final.
    ENDLOOP.
    LOOP AT it_final.
    IF it_final-vbeln EQ space.
    IF it_final-shkzg = 'S'.
    MOVE : it_final-belnr TO it_output-belnr,
    it_final-budat TO it_output-budat,
    it_final-bldat TO it_output-bldat,
    it_final-blart TO it_output-blart,
    it_final-wrbtr TO it_output-dwrbtr,
    it_final-xblnr TO it_output-xblnr,
    it_final-sgtxt TO it_output-sgtxt.
    ELSEIF it_final-shkzg = 'H'.
    MOVE : it_final-belnr TO it_output-belnr,
    it_final-budat TO it_output-budat,
    it_final-bldat TO it_output-bldat,
    it_final-blart TO it_output-blart,
    it_final-wrbtr TO it_output-cwrbtr,
    it_final-xblnr TO it_output-xblnr,
    it_final-sgtxt TO it_output-sgtxt.
    ENDIF.
    APPEND it_output.
    CLEAR it_output.
    DELETE it_final.
    ENDIF.
    ENDLOOP.
    LOOP AT it_final.
    IF it_final-shkzg = 'S'.
    MOVE : it_final-belnr TO it_output-belnr,
    it_final-budat TO it_output-budat,
    it_final-bldat TO it_output-bldat,
    it_final-blart TO it_output-blart,
    it_final-wrbtr TO it_output-dwrbtr,
    it_final-xblnr TO it_output-xblnr,
    it_final-sgtxt TO it_output-sgtxt,
    it_final-vbeln TO it_output-vbeln.
    ELSEIF it_final-shkzg = 'H'.
    MOVE : it_final-belnr TO it_output-belnr,
    it_final-budat TO it_output-budat,
    it_final-bldat TO it_output-bldat,
    it_final-blart TO it_output-blart,
    it_final-wrbtr TO it_output-cwrbtr,
    it_final-xblnr TO it_output-xblnr,
    it_final-sgtxt TO it_output-sgtxt,
    it_final-vbeln TO it_output-vbeln.
    ENDIF.
    APPEND it_output.
    CLEAR it_output.
    ENDLOOP.
    LOOP AT it_output.
    IF it_output-budat LT v_budat.
    v_fwrbtr = v_fwrbtr + it_output-dwrbtr - it_output-cwrbtr.
    DELETE it_output.
    ENDIF.
    ENDLOOP.
    SORT it_output BY belnr.
    LOOP AT it_output WHERE blart EQ 'R2'.
    MOVE it_output TO it_output1.
    APPEND it_output1.
    ENDLOOP.
    SORT it_output1 BY belnr.
    it_output2[] = it_output1[].
    DELETE ADJACENT DUPLICATES FROM it_output1 COMPARING belnr.
    LOOP AT it_output.
    READ TABLE it_output2 WITH KEY belnr = it_output-belnr.
    IF sy-subrc EQ 0.
    DELETE it_output.
    ENDIF.
    ENDLOOP.
    LOOP AT it_output1.
    READ TABLE it_output2 WITH KEY belnr = it_output1-belnr.
    CLEAR v_xwrbtr.
    LOOP AT it_output2 WHERE belnr EQ it_output1-belnr.
    v_xwrbtr = v_xwrbtr + it_output2-dwrbtr - it_output2-cwrbtr.
    ENDLOOP.
    CLEAR it_output.
    MOVE: it_output1-belnr TO it_output-belnr,
    it_output1-budat TO it_output-budat,
    it_output1-bldat TO it_output-bldat,
    'R2' TO it_output-blart,
    it_output1-xblnr TO it_output-xblnr.
    IF v_xwrbtr LT 0.
    v_xwrbtr = v_xwrbtr * -1.
    MOVE: v_xwrbtr TO it_output-cwrbtr.
    ELSE.
    MOVE: v_xwrbtr TO it_output-dwrbtr.
    ENDIF.
    APPEND it_output.
    ENDLOOP.
    SORT it_output BY budat belnr.
    IF NOT it_final[] IS INITIAL.
    SELECT vbrk~vbeln vbrp~matnr vbrp~fkimg vbrp~meins vbrk~fkdat
    INTO CORRESPONDING FIELDS OF TABLE it_vbrp
    FROM vbrk INNER JOIN vbrp ON vbrk~vbeln EQ vbrp~vbeln
    FOR ALL entries IN it_final
    WHERE vbrk~vbeln = it_final-vbeln.
    ENDIF.
    v_cumil = v_fwrbtr.
    CLEAR: v_debit,
    v_credit.
    LOOP AT it_output.
    IF NOT it_output-vbeln EQ space.
    READ TABLE it_vbrp WITH KEY vbeln = it_output-vbeln.
    MOVE: it_vbrp-matnr TO it_output-matnr,
    it_vbrp-fkdat TO it_output-fkdat,
    it_vbrp-fkimg TO it_output-fkimg,
    it_vbrp-meins TO it_output-meins.
    MODIFY it_output.
    ENDIF.
    v_cumil = v_cumil - it_output-cwrbtr + it_output-dwrbtr.
    v_debit = v_debit + it_output-dwrbtr.
    v_credit = v_credit + it_output-cwrbtr.
    MOVE v_cumil TO it_output-cumil.
    MODIFY it_output.
    ENDLOOP.
    WRITE:/001 sy-vline,
    002 'Opening Balace as on', v_budat CENTERED,
    034 sy-vline,
    045 sy-vline,
    056 sy-vline,
    067 sy-vline,
    072 sy-vline,
    093 sy-vline,
    114 sy-vline,
    115(20) v_fwrbtr RIGHT-JUSTIFIED,
    135 sy-vline,
    154 sy-vline,
    172 sy-vline,
    176 sy-vline,
    193 sy-vline,
    224 sy-vline.
    LOOP AT it_output.
    CLEAR v_exnum.
    SELECT SINGLE * FROM j_1iexcdtl
    WHERE rdoc2 = it_output-vbeln
    AND matnr = it_output-matnr.
    IF sy-subrc = 0.
    v_exnum = j_1iexcdtl-exnum.
    ENDIF.
    WRITE:/001 sy-vline,
    002(10) it_output-belnr,
    012 sy-vline,
    013(10) it_output-bldat,
    023 sy-vline,
    024(10) it_output-budat,
    034 sy-vline,
    035(10) v_exnum,
    045 sy-vline,
    046(10) it_output-vbeln,
    056 sy-vline,
    057(10) it_output-fkdat NO-ZERO,
    067 sy-vline,
    068(4) it_output-blart CENTERED,
    072 sy-vline,
    073(20) it_output-dwrbtr RIGHT-JUSTIFIED NO-ZERO,
    093 sy-vline,
    094(20) it_output-cwrbtr RIGHT-JUSTIFIED NO-ZERO,
    114 sy-vline,
    115(20) it_output-cumil RIGHT-JUSTIFIED NO-SIGN,
    135 sy-vline,
    136(18) it_output-matnr,
    154 sy-vline,
    155(17) it_output-fkimg RIGHT-JUSTIFIED NO-ZERO,
    172 sy-vline,
    173(3) it_output-meins CENTERED,
    176 sy-vline,
    177(16) it_output-xblnr CENTERED,
    193 sy-vline,
    194(30) it_output-sgtxt CENTERED,
    224 sy-vline.
    ENDLOOP.
    WRITE:/001(224) sy-uline.
    SKIP.
    WRITE:/ 'TOTALS AS ON', s_budat-high, ':',
    040(19) v_fwrbtr RIGHT-JUSTIFIED, '+',
    063(19) v_debit RIGHT-JUSTIFIED, '-',
    084(19) v_credit RIGHT-JUSTIFIED, '=',
    105(19) v_cumil RIGHT-JUSTIFIED.
    *WRITE:/ 'Closing Balance for Customer', V_KUNNR, 'as on', S_BUDAT-,
    091 'Rs',
    093(20) V_CUMIL RIGHT-JUSTIFIED.
    SKIP.
    WRITE:/ '** BALANCE SUBJECT TO RECONCILIATION'.
    TOP-OF-PAGE.
    CONCATENATE v_budat+6(2)
    v_budat+4(2)
    v_budat+0(4) INTO v_date1 SEPARATED BY '.'.
    CONCATENATE s_budat-high+6(2)
    s_budat-high+4(2)
    s_budat-high+0(4) INTO v_date2 SEPARATED BY '.'.
    CONCATENATE 'STATEMENT OF CUSTOMER ACCOUNT FOR THE PERIOD FROM'
    v_date1
    'TO'
    v_date2 INTO v_text SEPARATED BY space.
    WRITE:/ 'REPORT ID:ZFI_STMT_OF_ACC_NEW',100 'INDIAN RAYON' CENTERED,
    170 'Page No:',sy-pagno LEFT-JUSTIFIED.
    WRITE:/001(213) '( A Unit of Aditya Birla Nuvo Limited )' CENTERED,
    170 'Commonly used Document Types' .
    WRITE:/001(213) 'VERAVAL-362266' CENTERED,
    170 'RV = Invoice, RZ = Invoice Reversal'.
    WRITE:/170 'R2 = Money Receipt, CN = Credit Note'.
    WRITE:/001(213) v_text CENTERED,
    170 'DN = Debit Note, HP = Payment Voucher-R'.
    WRITE:/001 'PARTY CODE :',
    020 v_kunnr,
    170 'HR = Receipt Voucher-R, CP = Payment Voucher-C'.
    WRITE:/001 'NAME OF PARTY:',
    020 v_name1,170 'CR = Receipt Voucher-C, JV = Journal Voucher'.
    WRITE:/001 'CITY :',
    020 v_ort01,170 'AB = Clearing Document'.
    WRITE:/001 sy-vline,
    002(222) sy-uline,
    224 sy-vline.
    WRITE:/001 sy-vline,
    002(10) 'Doc No.' CENTERED,
    012 sy-vline,
    013(10) 'Doc Dt.' CENTERED,
    023 sy-vline,
    024(10) 'Post Dt.' CENTERED,
    034 sy-vline,
    035(10) 'Excise No' CENTERED,
    045 sy-vline,
    046(10) 'Bill Doc.' CENTERED,
    056 sy-vline,
    057(10) 'Bill Dt.' CENTERED,
    067 sy-vline,
    068(4) 'VR' CENTERED,
    072 sy-vline,
    073(20) 'Debit' CENTERED,
    093 sy-vline,
    094(20) 'Credit' CENTERED,
    114 sy-vline,
    115(20) 'Cumulative' CENTERED,
    135 sy-vline,
    136(18) 'Material Code' CENTERED,
    154 sy-vline,
    155(17) 'Quantity' CENTERED,
    172 sy-vline,
    173(3) 'UOM',
    176 sy-vline,
    177(16) 'Reference' CENTERED,
    193 sy-vline,
    194(30) 'Narration' CENTERED,
    224 sy-vline.
    WRITE:/001 sy-vline,
    012 sy-vline,
    023 sy-vline,
    034 sy-vline,
    045 sy-vline,
    056 sy-vline,
    067 sy-vline,
    068(4) 'Type' CENTERED,
    072 sy-vline,
    093 sy-vline,
    114 sy-vline,
    115(20) 'Balance' CENTERED,
    135 sy-vline,
    154 sy-vline,
    172 sy-vline,
    176 sy-vline,
    193 sy-vline,
    224 sy-vline.
    WRITE:/001 sy-vline,
    002(222) sy-uline,
    224 sy-vline.
    Thanks,
    Anitha

  • Problem in modifying the main internal table gt_data

    Hello i have written code for modifying the main internal table. i have read data from ausp table and put into the internal table gt_ausp. now i want to modify my main table GT-DATA with gt_ausp. i am not able to do this.
    LOOP AT gt_data  INTO ls_list.
        lt_temp-objek  =  ls_list-matnr.
        APPEND  lt_temp.                  " 특성값 발췌용도로 저장
        APPEND  ls_list  TO lt_work.      " 핵심작업용도로 저장
      ENDLOOP.
      DESCRIBE TABLE lt_temp.
      IF  sy-tfill  EQ  0.
        pv_flg  =  'X'.
        EXIT.
      ENDIF.
    Get 제품인증(플랜트별).....
      DESCRIBE TABLE lt_cetino_tp.
            플랜트          자재번호
            카타로그-인증   코드그룹-인증   인증코드
            Certi. No.
    Get 자재별 특성값..........
              오브젝트  특성이름  내부특성   내부카운터  특성값
      SELECT    aobjek    batnam   aatinn    aatzhl    a~atwrt
            INTO CORRESPONDING FIELDS OF TABLE  lt_ausp_tp
            FROM ausp AS a  INNER JOIN  cabn AS b
              ON aatinn  =  batinn
             FOR ALL ENTRIES IN  lt_temp
           WHERE a~objek  EQ  lt_temp-objek   " 오브젝트키(자재번호)
             AND a~klart  EQ  '001'           " 클래스유형
           AND a~atzhl  EQ  '001'           " 특성값카운터(최종건만 존재)
                                              자재특성 변경시 변경됨
             AND b~adzhl  EQ  '0000'.
      IF  sy-subrc  EQ  0.
        DELETE ADJACENT DUPLICATES FROM  lt_ausp_tp.
        lt_ausp[]     =  lt_ausp_tp[].
        lt_ausp_tp2[] =  lt_ausp_tp[].
        DELETE ADJACENT DUPLICATES FROM  lt_ausp_tp2.
      Get 특성내역
              내부특성   " 내부카운터
              특성값       특성값내역
        SELECT    aatinn  " aatzhl
                  aatwrt    batwtb
              INTO CORRESPONDING FIELDS OF TABLE  lt_cawn
              FROM cawn AS a  INNER JOIN  cawnt AS b
                ON aatinn  =  batinn  AND
                   aatzhl  =  batzhl  AND
                   aadzhl  =  badzhl
               FOR ALL ENTRIES IN  lt_ausp_tp2
             WHERE a~atinn  EQ  lt_ausp_tp2-atinn  " 내부특성
               AND b~spras  EQ  sy-langu.
      ENDIF.
      SORT  lt_work BY matnr .
      BREAK-POINT.
      LOOP AT lt_work  INTO ls_list.
      특성내역
        READ TABLE  lt_ausp  WITH TABLE KEY  objek = ls_list-matnr
                                             atnam = 'SECTION_WIDTH'.
      수출자재가 아닌 것은 제외
    LS_LIST-SECTION_WIDTH = LT_AUSP-ATWRT.
    MODIFY TABLE GT_DATA FROM LS_LIST  TRANSPORTING SECTION_WIDTH.

    Hi,
    Question before: why dont you just use the std.API for reading the classification data?
    e.g. "BAPI_OBJCL_GETDETAIL"
    Second: a DELETE DELETE ADJACENT DUPLICATES works only only sorted tables.
    Doing this after a select will only succeed randomly depending on the buffers of your data based below.
    ( 90% chance if it is an oracle system)
    To your question:
    Just replace your LOOP AT gt_data into ls_list
    by a LOOP AT gt_data ASSIGNING <current_list_record>.
    then you can access the fields directly:
    <current_list_record>-SECTION_WIDTH = LT_AUSP-ATWRT.
    Cause of your issue:
    "MODIFY" needs a key to to find the record to be updated.
    If your gt_data ist referencing a DDIC table type with a key or a local type with a key
    it has no chance to do it.
    Hope that helps.
    br,

  • Problem in modifying the code using work area concept

    Hi,
    I am working on a code in which i am on the code in which i am using the modify statement but it is not giving the right output.
    here's d code:-
    LOOP AT T_ITPO5 INTO W_ITPO5.
            LOOP AT T_ITPO4 INTO W_ITPO4 WHERE AUFNR = W_ITPO5-AUFNR.
           LOOP AT T_ITPO4 INTO W_ITPO4 FROM WV_INDEX.
             IF W_ITPO4-AUFNR EQ W_ITPO5-AUFNR.
             IF ITPO4-NTGEW <> 0 .
                CALL FUNCTION 'ZGET_ITEM_WEIGHT'
                  EXPORTING
                    P_BUID   = W_ITPO4-WERKS
                    P_ITEMID = W_ITPO4-MATNR
                    P_QTY    = 1
                    P_UOM    = W_ITPO4-MEINS
                    P_UOM1   = 'KG'
                  IMPORTING
                    P_RETVAL = W_ITPO4-WTKG.
                TOTWT1 = W_ITPO4-WTKG * W_ITPO4-MENGE.
             IF W_ITPO4-BWART = '261'.
              W_ITPO5-I_QTY = W_ITPO5-I_QTY + TOTWT1.
             ELSEIF W_ITPO4-BWART = '101' OR W_ITPO4-BWART = '531'.
              W_ITPO5-I_QTY = W_ITPO5-I_QTY - TOTWT1.
             ENDIF.
           ENDLOOP.
             MODIFY T_ITPO5 INDEX SY-TABIX FROM W_ITPO5.
           MODIFY T_ITPO5 FROM W_ITPO5 TRANSPORTING AUFNR.
       ENDLOOP.
         WRITE: / 'PRD.NO       ITEM DESCRIPTION                               WIP(KGS)'.
        ULINE.
        LOOP AT T_ITPO5 INTO W_ITPO5.
          READ TABLE T_ITPO1 INTO W_ITPO1 WITH KEY AUFNR = W_ITPO5-AUFNR.
          SELECT SINGLE MAKTG FROM MAKT INTO W_ITPO5-ITEMDESC WHERE MATNR = W_ITPO1-MATNR.
          if sy-subrc = 0 .
          WRITE: / W_ITPO5-AUFNR,W_ITPO5-ITEMDESC,W_ITPO5-I_QTY.
          TOT_QTY = TOT_QTY + W_ITPO5-I_QTY.
          else.
          write 'Unsuccessful'.
          endif.
        ENDLOOP.
        ULINE.
        FORMAT COLOR 3.
        WRITE: / 'GTOTAL',55 TOT_QTY.
        FORMAT COLOR OFF.
    plzz provide me guidelines to solve this problem.

    here's d code;-
    TYPES: BEGIN OF ITPO1,
           AUFNR TYPE AFPO-AUFNR,      "Order Number
           PSMNG TYPE AFPO-PSMNG,      "Order item quantity
           WEMNG TYPE AFPO-WEMNG,      "Quantity of goods received for the order item
           DWERK TYPE AFPO-DWERK,      "Plant
           MATNR LIKE AFPO-MATNR,      "Item Id
           END OF ITPO1.
    DECLARATION FOR AUFM TABLE
    TYPES: BEGIN OF ITPO4,
           AUFNR TYPE AUFM-AUFNR,      "Order Number
           BWART TYPE AUFM-BWART,      "Movement Type (Inventory Management)
           MENGE TYPE AUFM-MENGE,      "Quantity
           MEINS TYPE AUFM-MEINS,      "Base Unit of Measure
           BLDAT TYPE AUFM-BLDAT,      "Document Date in Document
           WERKS TYPE AUFM-WERKS,      "Plant
           MATNR TYPE AUFM-MATNR,      "Material Number
           NTGEW TYPE MARA-NTGEW,      "Net Weight
           WTKG  TYPE MARA-NTGEW,
           END OF ITPO4,
           BEGIN OF ITPO5 ,
           AUFNR TYPE AUFM-AUFNR,
           MENGE TYPE AUFM-MENGE,
           I_QTY TYPE AUFM-MENGE,
           ITEMDESC LIKE MAKT-MAKTG,
           END OF ITPO5.
        WORK AREA AND INTERNAL TABLE DECLARATION
    DATA : W_ITPO1 TYPE ITPO1,
           W_ITPO4 TYPE ITPO4,
           W_ITPO5 TYPE ITPO5,
           T_ITPO1 TYPE ITPO1 OCCURS 0,
           T_ITPO4 TYPE ITPO4 OCCURS 0,
           T_ITPO5 TYPE ITPO5 OCCURS 0.
    VARIABLES
    DATA: TOTWT1 LIKE AUFM-MENGE,
          TOT_QTY LIKE AUFM-MENGE.
    PARAMETERS N SELECT-OPTIONS
    PARAMETERS: PLANT LIKE AFPO-DWERK.
    SELECT-OPTIONS: PO_DATE FOR AFKO-GSTRP.
        LOOP AT T_ITPO5 INTO W_ITPO5.
            LOOP AT T_ITPO4 INTO W_ITPO4 WHERE AUFNR = W_ITPO5-AUFNR.
                CALL FUNCTION 'ZGET_ITEM_WEIGHT'
                  EXPORTING
                    P_BUID   = W_ITPO4-WERKS
                    P_ITEMID = W_ITPO4-MATNR
                    P_QTY    = 1
                    P_UOM    = W_ITPO4-MEINS
                    P_UOM1   = 'KG'
                  IMPORTING
                    P_RETVAL = W_ITPO4-WTKG.
                TOTWT1 = W_ITPO4-WTKG * W_ITPO4-MENGE.
             IF W_ITPO4-BWART = '261'.
              W_ITPO5-I_QTY = W_ITPO5-I_QTY + TOTWT1.
             ELSEIF W_ITPO4-BWART = '101' OR W_ITPO4-BWART = '531'.
              W_ITPO5-I_QTY = W_ITPO5-I_QTY - TOTWT1.
             ENDIF.
           ENDLOOP.
             MODIFY T_ITPO5 INDEX SY-TABIX FROM W_ITPO5.
           MODIFY T_ITPO5 FROM W_ITPO5 TRANSPORTING AUFNR.
       ENDLOOP.
         WRITE: / 'PRD.NO       ITEM DESCRIPTION                               WIP(KGS)'.
        ULINE.
        LOOP AT T_ITPO5 INTO W_ITPO5.
          READ TABLE T_ITPO1 INTO W_ITPO1 WITH KEY AUFNR = W_ITPO5-AUFNR.
          SELECT SINGLE MAKTG FROM MAKT INTO W_ITPO5-ITEMDESC WHERE MATNR = W_ITPO1-MATNR.
          if sy-subrc = 0 .
          WRITE: / W_ITPO5-AUFNR,W_ITPO5-ITEMDESC,W_ITPO5-I_QTY.
          TOT_QTY = TOT_QTY + W_ITPO5-I_QTY.
          else.
          write 'Unsuccessful'.
          endif.
        ENDLOOP.
        ULINE.
        FORMAT COLOR 3.
        WRITE: / 'GTOTAL',55 TOT_QTY.
        FORMAT COLOR OFF.
    I want to have output that the production order is displayed along with the deficit quantity. but using this concept it shows only production order no. and qty 0.

  • How to modify a select option without range and mutiple selection??

    hi all,
    i need to modify a select option by removing the range and option for multiple entry. i other words i need to make select option as parameter.( because i cannot use parameter in my program due to some constraints.)
    is it possible to change the select option as per my requirement if yes please let me know how is it possible.
    Thanks in advance.
    Sreekanth.

    hi,
            Yes u can use code like following way..
    select-options : s_matnr for mara-matnr no-extension no intervals.
    Reward if helpful.
    Regards
    Gagan

Maybe you are looking for

  • DNS configuration for web access

    Hi All, I'm setting up a SL server for the first time and it's working great for users inside our building and on our network, but we're unable to access anything on it through the web (including a basic homepage) and I think it has to do with our DN

  • Auomatic TO creation and confirmation from PCN with 321 MVT type

    Dear Friends, I am facing following WM issue, Kindly go through it and reply me with your valuable solution. In my plant QM is active, so while receiving goods against any Purchase Order (MVT TYPE 101), all my stock goes to quality. After UD check, 9

  • Currency value in BAPI_ACC_DOCUMENT_POST

    Hi All; in order to post payments i use BAPI_ACC_DOCUMENT_POST. There are many payment lines (posting key 40) and one vendor line (posting key 31). i have filled in tables header, account_gl, accounts_payable and currency-amount accordingly. When i r

  • Downloaded iOS Dev videos but some are not shown as downloaded in iTunes U collection

    This is a 2 day old Mac Mini so maybe something is not set correctly. I chose to download the iTunes U collection of iOS Development videos. 12 videos downloaded OK and I have been watching, the others downloaded but are not shown as downloaded (the

  • Rs485 9-bit

    I'm trying to communicate with a device over RS485.  I have 3 commands possible:  GET DATA, IBIT, and IBIT TERM.  First I write and then I read.  Now my code seems to work for GET DATA and IBIT but when I issue IBIT TERM the VISA Read times out.  I'm