I am not able to fill up my output table

I'm fresher to ABAP.
I am  not able to fill up my output internal table. please help in correcting my select statements.
Please help me.
I am pasting my code here.
DATA: BEGIN OF marc_tab OCCURS 0,
       matnr LIKE marc-matnr,    " Material Number
       eislo LIKE marc-eislo,    " Minimum Safety Stock
       mabst LIKE marc-mabst,    " Maximum stock level
       eisbe LIKE marc-eisbe,    " Safety stock
       werks LIKE marc-werks,    " Plant
       ekgrp LIKE marc-ekgrp,    " Purchasing group
       dispo LIKE marc-dispo,    " MRP controller
END OF marc_tab.
DATA: BEGIN OF mard_tab OCCURS 0,
       lgort LIKE mard-lgort,     " Storage Location
       speme LIKE mard-speme,    " Blocked stock
       umlme LIKE mard-umlme,    " Stock in transfer
       insme LIKE mard-insme,    " Stock in quality inspection
       retme LIKE mard-retme,    " Blocked Stock Returns
       labst LIKE mard-labst,    " Valuated stock with unrestricted use
      END OF mard_tab.
DATA: mard_tab1 LIKE STANDARD TABLE OF mard_tab WITH HEADER
LINE.
Material and description
DATA: BEGIN OF mara_makt_tab OCCURS 0,
      matnr LIKE mara-matnr,   "Material number
      maktx LIKE makt-maktx,   "Material description
      END OF mara_makt_tab.
DATA: BEGIN OF eord_lfa1_tab OCCURS 0,
      matnr LIKE eord-matnr,  "Material number
      ebeln LIKE eord-ebeln,  "Scheduling Agreement
      lifnr LIKE eord-lifnr,  "Vendor's account number
      name1 LIKE lfa1-name1,                                "Name 1
      END OF eord_lfa1_tab.
DATA: BEGIN OF mseg_mkpf_tab OCCURS 0,
      budat LIKE mkpf-budat,    "Posting date in the document
      mblnr LIKE mkpf-mblnr,    "Number of material document
      werks LIKE mseg-werks,
      mjahr LIKE mseg-mjahr,     "Material doc. year
      menge LIKE mseg-menge,     "Quantity
      lgort LIKE mseg-lgort,     "Storage location
      bwart1 LIKE mseg-bwart,     " Movement type (inventory management)
      bwart2 LIKE mseg-bwart,    
      lifnr LIKE mseg-lifnr,
      END OF mseg_mkpf_tab.
DATA: mseg_mkpf_tab1 LIKE STANDARD TABLE OF mseg_mkpf_tab WITH HEADER
LINE.
DATA: BEGIN OF mkol_tab OCCURS 0,
      seinm LIKE mkol-seinm,      " Restricted-use consignment stock
      slabs LIKE mkol-slabs,     " Unrestricted-use consignment stock
      sobkz  LIKE mkol-sobkz,     " Special stock indicator         
      END OF mkol_tab.
DATA: BEGIN OF t_werks OCCURS 0,
      werks LIKE t001w-werks,    " plant
      END OF  t_werks.
**DATA: BEGIN OF mkpf_tab OCCURS 0,
     budat LIKE mkpf-budat,    "Posting date in the document
     mblnr LIKE mkpf-mblnr,    "Number of material document
     END OF  mkpf_tab.
DATA: BEGIN OF zresult_tab OCCURS 0,
       matnr LIKE marc-matnr,    " Material Number
       maktx LIKE makt-maktx,   "Material description
       rev_lvl TYPE c,           " Revision level
       ebeln LIKE eord-ebeln,  "Scheduling Agreement
       ekgrp LIKE marc-ekgrp,    " Purchasing group
       dispo LIKE marc-dispo,    " MRP controller
       lifnr LIKE eord-lifnr,  "Vendor's account number
       name1 LIKE lfa1-name1,                               "Name 1
       eislo LIKE marc-eislo,    " Minimum Safety Stock
       mabst LIKE marc-mabst,    " Maximum stock level
       eisbe LIKE marc-eisbe,    " Safety stock
       werks LIKE marc-werks,    " Plant
       bwart LIKE mseg-bwart,     " Movement type (inventory management)
       slabs LIKE mkol-slabs,    " Unrestricted-use consignment stock
       labst LIKE mard-labst,    " Valuated stock with unrestricted use
       speme LIKE mard-speme,    " Blocked stock
       umlme LIKE mard-umlme,    " Stock in transfer
       insme LIKE mard-insme,    " Stock in quality inspection
      retme LIKE mard-retme,    " Blocked Stock Returns /added
     seinm LIKE mkol-seinm,    " Restricted-use consignment stock
     sobkz LIKE mkol-sobkz,   " Special stock indicator         
     lgort LIKE mseg-lgort,     "Storage location
       END OF zresult_tab.
*DATA: zresult_tab1 LIKE STANDARD TABLE OF zresult_tab WITH HEADER LINE.
DATA: BEGIN OF zresult_tab1 OCCURS 0,
       matnr LIKE marc-matnr,    " Material Number
       maktx LIKE makt-maktx,   "Material description
       ebeln LIKE eord-ebeln,  "Scheduling Agreement
       ekgrp LIKE marc-ekgrp,    " Purchasing group
       dispo LIKE marc-dispo,    " MRP controller
       lifnr LIKE eord-lifnr,  "Vendor's account number
       name1 LIKE lfa1-name1,                               "Name 1
       eislo LIKE marc-eislo,    " Minimum Safety Stock
       mabst LIKE marc-mabst,    " Maximum stock level
       eisbe LIKE marc-eisbe,    " Safety stock
       werks LIKE marc-werks,    " Plant
       bwart LIKE mseg-bwart,     " Movement type (inventory management)
       menge LIKE mseg-menge,   
       slabs LIKE mkol-slabs,    " Unrestricted-use consignment stock
       labst LIKE mard-labst,    " Valuated stock with unrestricted use
       speme LIKE mard-speme,    " Blocked stock
       umlme LIKE mard-umlme,    " Stock in transfer
       insme LIKE mard-insme,    " Stock in quality inspection
       lgort LIKE mard-lgort,    
      retme LIKE mard-retme,    " Blocked Stock Returns
       END OF zresult_tab1.
*DATA : begin of zresult_tab1 occurs 0,
*include zresult_tab LIKE zresult_tab.
*end of itab.
and the select statements are like this:
  SELECT matnr
            FROM mara
                INTO  TABLE zresult_tab
                WHERE matnr IN s_matnr.
               and werks in s_werks.
  SELECT mkpfbudat mkpfmblnr
         msegmblnr msegmjahr mseg~menge
         mseglgort msegbwart
        FROM mseg INNER JOIN mkpf
          ON  mkpfmblnr = msegmblnr
            AND  mkpfmjahr = msegmjahr
           INTO CORRESPONDING FIELDS OF
            TABLE mseg_mkpf_tab
            WHERE
            mseg~werks IN s_werks
            AND lgort IN s_lgort1
            AND lgort IN s_lgort2
            AND bwart IN s_bwart1
            AND bwart IN s_bwart2.
          AND budat IN s_usgpid.
  IF sy-subrc EQ 0.
special stocks from vendor/Vendor consignment stock
    SELECT seinm slabs sobkz
            FROM  mkol
              INTO CORRESPONDING FIELDS OF
              TABLE mkol_tab
              FOR ALL ENTRIES IN mseg_mkpf_tab
             WHERE matnr IN s_matnr
            AND werks = mseg_mkpf_tab-werks
          AND lifnr in s_lifnr
            AND sobkz  = 'K'.
  ENDIF.
  SELECT lgort speme umlme insme retme labst
   FROM mard INTO TABLE mard_tab
   WHERE matnr = zresult_tab-matnr
            AND werks IN s_werks
            AND lgort IN s_lgort1
            AND lgort IN s_lgort2.
  IF sy-subrc NE 0.
    MESSAGE i000 WITH 'no data populated!!!'.
  ENDIF.
SELECT matnr ebeln lifnr
                    FROM eord
                        INTO CORRESPONDING FIELDS OF
                        TABLE eord_lfa1_tab
                        WHERE matnr IN s_matnr
                       AND werks IN s_werks.
  IF sy-subrc NE 0.
    MESSAGE i000 WITH 'fgdf'.  ENDIF
  SELECT matnr ebeln lifnr
                FROM eord
                    INTO CORRESPONDING FIELDS OF
                    TABLE eord_lfa1_tab
                    WHERE lifnr IN  s_lifnr
                    AND werks IN s_werks
  IF sy-subrc NE 0.
    MESSAGE i000 WITH 'No  matching material found'.
  ENDIF.
  IF NOT p_endstk  IS INITIAL.
    CLEAR zresult_tab1.
    LOOP AT mard_tab.
      READ TABLE zresult_tab1 WITH KEY lgort = s_lgort1.
      IF sy-subrc EQ 0.
        COLLECT mard_tab INTO mard_tab1.
      ENDIF.
      MOVE mard_tab1-speme TO zresult_tab-speme.
      MOVE mard_tab1-umlme TO zresult_tab-umlme.
      MOVE mard_tab1-insme TO zresult_tab-insme.
      MOVE mard_tab1-retme TO zresult_tab-retme.
      MOVE mard_tab1-labst TO zresult_tab-labst.
      APPEND zresult_tab.
    ENDLOOP.
  ENDIF.
  IF NOT p_otrstk  IS INITIAL.
    CLEAR zresult_tab1.
    LOOP AT mard_tab.
     READ TABLE zresult_tab1 WITH KEY lgort = s_lgort1 lgort = s_lgort2
      IF sy-subrc EQ 0.
        COLLECT mard_tab INTO mard_tab1.
      ENDIF.
      MOVE mard_tab1-speme TO zresult_tab-speme.
      MOVE mard_tab1-umlme TO zresult_tab-umlme.
      MOVE mard_tab1-insme TO zresult_tab-insme.
      MOVE mard_tab1-retme TO zresult_tab-retme.
    move mard_tab1-labst to zresult_tab-labst.
      APPEND zresult_tab.
    ENDLOOP.
  ENDIF.
  IF NOT p_chk IS INITIAL.
    CLEAR :mseg_mkpf_tab,mseg_mkpf_tab1.
    LOOP AT zresult_tab1.
      READ TABLE mseg_mkpf_tab WITH KEY bwart1 = s_bwart1
      lifnr =  s_lifnr budat = s_usgpid.
      IF sy-subrc EQ 0.
        COLLECT mseg_mkpf_tab INTO mseg_mkpf_tab1.
      ENDIF.
      MOVE mseg_mkpf_tab1-menge TO zresult_tab1-menge.
      APPEND zresult_tab1.
    ENDLOOP.
  ENDIF.
and filling the zresult _tab like this:
  LOOP AT zresult_tab1.
    READ TABLE mseg_mkpf_tab.
    IF sy-subrc EQ 0.
      zresult_tab1-bwart = mseg_mkpf_tab-bwart1.
      MODIFY  zresult_tab1.
    ENDIF.
  ENDLOOP.
  LOOP AT zresult_tab1.
    READ TABLE mkol_tab.
    IF sy-subrc EQ 0.
      zresult_tab1-slabs = mkol_tab-slabs.
    ENDIF.
    MODIFY zresult_tab1.
  ENDLOOP.
  LOOP AT zresult_tab1.
    READ TABLE marc_tab.
    IF sy-subrc EQ 0.
      zresult_tab1-eislo = marc_tab-eislo.
      zresult_tab1-mabst = marc_tab-mabst.
      zresult_tab1-eisbe = marc_tab-eisbe.
      zresult_tab1-werks = marc_tab-werks.
      zresult_tab1-ekgrp = marc_tab-ekgrp.
      zresult_tab1-dispo = marc_tab-dispo.
    ENDIF.
    MODIFY zresult_tab1.
  ENDLOOP.
  LOOP AT zresult_tab1.
    READ TABLE mard_tab.
    IF sy-subrc EQ 0.
      zresult_tab1-labst = mard_tab-labst.
      zresult_tab1-lgort = mard_tab-lgort.
      zresult_tab1-speme = mard_tab-speme.
      zresult_tab1-umlme = mard_tab-umlme.
      zresult_tab1-insme = mard_tab-insme.
    ENDIF.
    MODIFY zresult_tab1.
  ENDLOOP.
Thanks
Alekhya

Some comments on your code ---
SELECT lgort speme umlme insme retme labst
FROM mard INTO TABLE mard_tab
WHERE matnr = zresult_tab-matnr
AND werks IN s_werks
AND lgort IN s_lgort1
AND lgort IN s_lgort2.
---> instead of using zresult_tab-matnr u should be using s_matnr...to populate the mard_tab internal table with the records for all material otherwise it would just do it for the last record of zresult_tab-matnr.
IF NOT p_endstk IS INITIAL.
CLEAR zresult_tab1.
LOOP AT mard_tab.
READ TABLE zresult_tab1 WITH KEY lgort = s_lgort1.
IF sy-subrc EQ 0.
COLLECT mard_tab INTO mard_tab1.
ENDIF.
MOVE mard_tab1-speme TO zresult_tab-speme.
MOVE mard_tab1-umlme TO zresult_tab-umlme.
MOVE mard_tab1-insme TO zresult_tab-insme.
MOVE mard_tab1-retme TO zresult_tab-retme.
MOVE mard_tab1-labst TO zresult_tab-labst.
APPEND zresult_tab.
ENDLOOP.
ENDIF.
--> I am quiet puzzled with the above code you are trying to read zresult_tab1 and appending data into zresult_tab. Also, for the read to be successful you should try and fill more key columns otherwise it would just fetch the first record.
--> Also in the final bit of code you are appending and modifying zresult_tab1 table and expecting result in zresult_tab table ?? Can you please check on the code with that respect.
Regards
Anurag

Similar Messages

  • Hello, i changed my mediathek-folder due to space-problems and since then i am not able to fill the iphone (4) with music anymore. also i cant delete music in itunes, which already is on the iphone... HELP!!!

    hello, i changed my mediathek-folder due to space-problems and since then i am not able to fill the iphone (4) with music anymore. also i cant delete music in itunes, which already is on the iphone... HELP!
    does anybody know how to solve this problem? thx!

    If you want to try to clear even more disk space see https://discussions.apple.com/thread/5872318?tstart=0

  • Do you know why I cannot access the scheduling and rescheduling features of onetoone? This is over several days.  Either I am not able to fill in the ID/password boxes from an Apple email appointment reminder, or if I go through Apple onetoone via Safari,

    Do you know why I cannot access the scheduling and rescheduling features of onetoone? This is over several days.  Either I am not able to fill in the ID/password boxes from an Apple email appointment reminder, or if I go through Apple onetoone via Safari, I get perpetual spinning after I fill in and click. Help! Thanks.

    Call the store in question:
    http://www.apple.com/retail/
    Extension 5 in the stores in my area has usually led me to getting ahold of a real person.  It may differ by store.

  • Not able to fill setup tables of purchasing

    hi gurus,
    I'm not able to fill setup tables of purchasing errors raised as following:-
    Enter rate INR /  rate type M for 12.04.2005 in the system settings
    what to do pls guide me step by step process
    ponts promised

    hi pls tell me the step by step solution to the problem
    . i need to enter the exchange rate for that particular date or just make the new entry or wat else
    re
    rubane

  • Reader 8.1.2 - OpenSuse 10.2, not able to fill forms and crashes

    Since I have updated to version 8.1.2 I am not longer able to fill in data in pdf forms. The same pdf works fine under windows. Under linux (opensuse 10.2) the reader crashes some times when I try to fill in data. The only fields working are the checkboxes.
    Any ideas??
    Thanx
    Tom

    Yes, not being able to input öäüßÖÜÄ is indeed the same
    problem as discussed in
    http://bugzilla.novell.com/show_bug.cgi?id=370330
    If acroread is started like this:
    env -i XMODIFIERS=@im=local GTK_IM_MODULE=xim LANG=de_DE HOME=/home/mfabian DISPLAY=:0 acroread editable-file.pdf
    input of öäüßÖÄÜ works, if started like this:
    env -i XMODIFIERS=@im=local GTK_IM_MODULE=xim LANG=de_DE.UTF-8 HOME=/home/mfabian DISPLAY=:0 acroread editable-file.pdf
    it does *not* work.
    I.e. this is indeed the same problem as reported in
    the above mentioned Novell bug.
    To test this I removed the workaround I added to /usr/bin/acroread
    temporarily.
    The acroread package for openSUSE Factory (upcoming 11.0)
    contains this workaround in /usr/bin/acroread:
    # Workaround for https://bugzilla.novell.com/show_bug.cgi?id=370330
    if [ "$GTK_IM_MODULE" == "xim" ] ; then
    for lc in LANG LC_ALL LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY
    LC_MESSAGES LC_PAPER LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT LC_IDENTIFICATION
    do
    eval val="\$$lc"
    case "$val" in
    *.UTF-8*)
    eval $lc=\${val%%[.@]*}
    esac
    done
    fi
    Unfortunately this has not yet been released for older openSUSE versions.

  • Not able to see data in Pivot table

    Hi,
    I have a issue with pivot table i have a column which displays values 0 and 1 and another column called month when i am placing this month column as a section and values column as a measure i am not seeing any values means i can see the month as header but instead showing 0 or 1 its showing blank columns. previously i created similar kind of table it worked but at that time values column data type is number this time its char. can anybody help me out how i can see the data in the pivot table. i already tried converting this column to number but still i am not able to see data in that values column.
    Thanks

    Hi copter,
    Place the month column in rows and value column in measure section and check if results are coming.If still it doesnt come i suppose you dint apply aggregation rules to value column.In pivot view click values column and aggregate by /select min or max or either server complex and check your results.
    (I suppose your aggregation rules is default)....Correct this one and you can place it in sections as per your requirement.
    Cheers,
    KK

  • Report Not able to generate values in output

    hi gurus,
    i am not able to get the output for this report,pls help me in correcting the code and suggest me a sloution.Urgent...............
    *& Report  ZRPP006
    *&  Modification History
    *& Change # | By     | Date     | Purpose of Change
    *& C0001 |pradeep.R  | 20070629 | Total component request for sop&Copa
    *&       |           |          |
    *&       |           |          |
    report  zrpp006 line-size 180 line-count 90
            no standard page heading.
    Class
    *class cl_gui_column_tree definition load.
    *class cl_gui_cfw definition load.
    *data tree1  type ref to cl_gui_alv_tree.
    *data mr_toolbar type ref to cl_gui_toolbar.
    Include
    *include <icon>.
    *include bcalv_toolbar_event_receiver.
    *include bcalv_tree_event_receiver.
    include zipp007.
    selection screen
    selection-screen begin of block selscrb with frame title text-s01.
    parameters: ra_SOP radiobutton group GRP default 'X',
                ra_COPA radiobutton group GRP.
    selection-screen end of block selscrb.
    Data:pa_m_frm(6) type c,
         pa_m_to(6) type c,
         pa_y_frm(4) type c,
         pa_y_to(4) type c,
         ra_mth,
         ra_yea,
         l_mode.
    *parameter: pa_m_frm(6) type c,
              pa_m_to(6) type c,
              pa_y_frm(4) type c,
              pa_y_to(4) type c..
    data: so_matnr,
          so_matkl,
          pa_stprs,
          pa_werks ,
          pa_vrsio .
    selection-screen skip 1.
    initialization.
      clear: ta_vrsio, ta_type.
      refresh: ta_vrsio, ta_type.
    *at selection-screen on value-request for pa_vrsio.
    call function 'F4IF_INT_TABLE_VALUE_REQUEST'
       EXPORTING
         retfield    = 'VRSIO'
         dynprofield = 'PA_VRSIO'
         dynpprog    = sy-cprog
         dynpnr      = sy-dynnr
         value_org   = 'S'
       TABLES
         value_tab   = ta_vrsio.
    Start-of-selection.
    if ra_SOP eq 'X'.
        submit ZRPP023 via selection-screen and return.
      elseif ra_COPA eq 'X'.
        submit ZRPP026 via selection-screen and return..
      endif.
    select * into corresponding fields of table ta_vrsio
      from p44v
      where gstru = 'S076'.
      sort ta_vrsio by vrsio.
      delete adjacent duplicates from ta_vrsio.
      move 'MONTH' to ta_type-out_type.
      append ta_type.
      move 'YEAR' to ta_type-out_type.
      append ta_type.
    at selection-screen output.
      if ra_mth = 'X'.
        loop at screen.
          if screen-name = 'PA_M_FRM'.
            screen-active = '1'.
            modify screen.
          endif.
          if screen-name = '%C001007_1000'.
            screen-active = '1'.
            modify screen.
          endif.
          if screen-name = '%C002009_1000'.
            screen-active = '1'.
            modify screen.
          endif.
          if screen-name = 'PA_M_TO'.
            screen-active = '1'.
            modify screen.
          endif.
          if screen-name = '%C003012_1000'.
            screen-active = '1'.
            modify screen.
          endif.
          if screen-name = '%C004014_1000'.
            screen-active = '1'.
            modify screen.
          endif.
          if screen-name = 'PA_Y_FRM'.
            screen-active = '0'.
            modify screen.
          endif.
          if screen-name = '%C005017_1000'.
            screen-active = '0'.
            modify screen.
          endif.
          if screen-name = '%C006019_1000'.
            screen-active = '0'.
            modify screen.
          endif.
          if screen-name = 'PA_Y_TO'.
            screen-active = '0'.
            modify screen.
          endif.
          if screen-name = '%C007022_1000'.
            screen-active = '0'.
            modify screen.
          endif.
          if screen-name = '%C008024_1000'.
            screen-active = '0'.
            modify screen.
          endif.
        endloop.
      elseif ra_yea = 'X'.
        loop at screen.
          if screen-name = 'PA_M_FRM'.
            screen-active = '0'.
            modify screen.
          endif.
          if screen-name = '%C001007_1000'.
            screen-active = '0'.
            modify screen.
          endif.
          if screen-name = '%C002009_1000'.
            screen-active = '0'.
            modify screen.
          endif.
          if screen-name = 'PA_M_TO'.
            screen-active = '0'.
            modify screen.
          endif.
          if screen-name = '%C003012_1000'.
            screen-active = '0'.
            modify screen.
          endif.
          if screen-name = '%C004014_1000'.
            screen-active = '0'.
            modify screen.
          endif.
          if screen-name = 'PA_Y_FRM'.
            screen-active = '1'.
            modify screen.
          endif.
          if screen-name = '%C005017_1000'.
            screen-active = '1'.
            modify screen.
          endif.
          if screen-name = '%C006019_1000'.
            screen-active = '1'.
            modify screen.
          endif.
          if screen-name = 'PA_Y_TO'.
            screen-active = '1'.
            modify screen.
          endif.
          if screen-name = '%C007022_1000'.
            screen-active = '1'.
            modify screen.
          endif.
          if screen-name = '%C008024_1000'.
            screen-active = '1'.
            modify screen.
          endif.
        endloop.
      endif.
    End-of-selection.
      perform get_header_data.
      perform get_top_page.
    *&      Form  display_alv
          text
    form display_alv.
    ALV ***
      g_repid = sy-repid.
      perform layout_init using gs_layout.
      perform eventtab_build using gt_events[].
      gs_variant-report = g_repid.
      g_save           = 'A'.
    perform comment_build using gt_list_top_of_page[].
    Display monthly report
      if ra_mth = 'X' and
         pa_m_frm <> 0 and
          pa_m_to <> 0.
        perform fieldcat_init_mth using gt_fieldcat[].
        perform printer_setting using print_set.
        call function 'REUSE_ALV_GRID_DISPLAY'
          exporting
               i_background_id    = 'ALV_BACKGROUND'
               i_buffer_active    = 'X'
               i_callback_program = g_repid
               i_structure_name   = 'ITAB_MSALE'
               is_layout          = gs_layout
               it_fieldcat        = gt_fieldcat[]
               i_save             = g_save
               is_variant         = gs_variant
               it_events          = gt_events[]
               it_sort            = gt_it_sort[]
               is_print           = print_set
         I_SCREEN_START_COLUMN    = 0     "Use coordinates for
         I_SCREEN_START_LINE      = 0     "display as dialog box
         I_SCREEN_END_COLUMN      = 0
         I_SCREEN_END_LINE        = 0
          importing
               e_exit_caused_by_caller = g_exit_caused_by_caller
               es_exit_caused_by_user  = gs_exit_caused_by_user
          tables
               t_outtab = itab_msale
          exceptions
               program_error = 1
               others        = 2.
        if sy-subrc = 0.
          if g_exit_caused_by_caller = 'X'.
    *"  Forced Exit by calling program
    *"  <do_something>.
          else.
    *"  User left list via F3, F12 or F15
            if gs_exit_caused_by_user-back = 'X'.       "F3
    *"    <do_something>.
            else.
              if gs_exit_caused_by_user-exit = 'X'.     "F15
    *"      <do_something>.
              else.
                if gs_exit_caused_by_user-cancel = 'X'. "F12
    *"        <do_something>.
                else.
    *"        should not occur!
    *"        <do_Abnormal_End>.
                endif.
              endif.
            endif.
          endif.
        else.
    "Fatal error callin ALVAXXX(XY) WITH ...
        endif.
    Display yearly report
      elseif ra_yea = 'X' and
              pa_y_frm <> 0 and
              pa_y_to <> 0.
        perform fieldcat_init_yr using gt_fieldcat[].
        perform printer_setting using print_set.
        call function 'REUSE_ALV_GRID_DISPLAY'
          exporting
               i_background_id    = 'ALV_BACKGROUND'
               i_buffer_active    = 'X'
               i_callback_program = g_repid
               i_structure_name   = 'ITAB_YSALE'
               is_layout          = gs_layout
               it_fieldcat        = gt_fieldcat[]
               i_save             = g_save
               is_variant         = gs_variant
               it_events          = gt_events[]
               it_sort            = gt_it_sort[]
               is_print           = print_set
         I_SCREEN_START_COLUMN    = 0     "Use coordinates for
         I_SCREEN_START_LINE      = 0     "display as dialog box
         I_SCREEN_END_COLUMN      = 0
         I_SCREEN_END_LINE        = 0
          importing
               e_exit_caused_by_caller = g_exit_caused_by_caller
               es_exit_caused_by_user  = gs_exit_caused_by_user
          tables
               t_outtab = itab_ysale
          exceptions
               program_error = 1
               others        = 2.
        if sy-subrc = 0.
          if g_exit_caused_by_caller = 'X'.
    *"  Forced Exit by calling program
    *"  <do_something>.
          else.
    *"  User left list via F3, F12 or F15
            if gs_exit_caused_by_user-back = 'X'.       "F3
    *"    <do_something>.
            else.
              if gs_exit_caused_by_user-exit = 'X'.     "F15
    *"      <do_something>.
              else.
                if gs_exit_caused_by_user-cancel = 'X'. "F12
    *"        <do_something>.
                else.
    *"        should not occur!
    *"        <do_Abnormal_End>.
                endif.
              endif.
            endif.
          endif.
        else.
    *"Fatal error callin ALV
    MESSAGE AXXX(XY) WITH ...
        endif.
      else.
      endif.
    endform.                    "display_alv
    *&      Form  get_top_page
          text
    form get_top_page.
      move 'Total Component Requirement by Sales Forecast' to
      gt_list_top_of_page-info.
      gt_list_top_of_page-typ = 'H'.
      append gt_list_top_of_page.
      concatenate 'Plant   :' pa_werks
      into gt_list_top_of_page-info separated by space.
      gt_list_top_of_page-typ = 'S'.
      append gt_list_top_of_page.
      select single vetxt into tp_vetxt
      from p44v
      where gstru = 'S076'
      and vrsio = pa_vrsio.
      concatenate 'Version :' pa_vrsio tp_vetxt
      into gt_list_top_of_page-info separated by space.
      gt_list_top_of_page-typ = 'S'.
      append gt_list_top_of_page.
      call function 'DATUMSAUFBEREITUNG'
        EXPORTING
          idate           = sy-datum
        IMPORTING
          tdat8           = l_date_string
        EXCEPTIONS
          datfm_ungueltig = 1
          datum_ungueltig = 2
          others          = 3.
      concatenate sy-uzeit(2) ':' sy-uzeit2(2) ':' sy-uzeit4(2)
      into l_time.
      concatenate 'Date/Time :' l_date_string l_time
      into gt_list_top_of_page-info separated by space.
      gt_list_top_of_page-typ = 'S'.
      append gt_list_top_of_page.
    endform.                    "get_top_page
    *&      Form  get_header_data
          text
    -->  p1        text
    <--  p2        text
    form get_header_data.
      select pmnux into ta_mat-matnr
       from s076
        where pmnux = so_matnr
        and wenux = pa_werks
        and vrsio = pa_vrsio.
        append ta_mat.
        clear ta_mat.
      endselect.
      if sy-subrc = 0.
        sort ta_mat by matnr .
        delete adjacent duplicates from ta_mat.
        loop at ta_mat.
          select matnr stlnr stlan stlal
           appending corresponding fields of table ta_mat2
           from mast
           where matnr = ta_mat-matnr
                 and werks = pa_werks.
        endloop.
        loop at ta_mat2 into wa_ta_mat.
          select stlst bmeng bmein into (tp_stlst,tp_bmeng,tp_bmein)
           from stko where stlnr = wa_ta_mat-stlnr
             and stlal = wa_ta_mat-stlal.
            wa_ta_mat-stlst = tp_stlst.
            wa_ta_mat-bmeng = tp_bmeng.
            wa_ta_mat-bmein = tp_bmein.
            append wa_ta_mat to ta_header.
          endselect.
        endloop.
        perform checking.        "checking if monthly or yearly report is being selected
      else.
        message i003(zwpp001).
      endif.
    endform.                    " get_header_data
    *&      Form  checking
          text
    form checking.
      data : date1 like vtbbewe-dbervon,
             date2 like vtbbewe-dberbis.
      data : emonths like vtbbewe-atage.
      data : lv_m_frm(6) type n,
             lv_m_to(6) type n,
             lv_y_frm(4) type n,
             lv_y_to(4) type n.
    check if the Display monthly report is being selected *****
      if ra_mth = 'X' and
           pa_m_frm <> 0 and
           pa_m_to <> 0.
    check for correct input format
        lv_m_frm = pa_m_frm.
        lv_m_to = pa_m_to.
        if lv_m_frm ge '200000' and lv_m_to ge '200000'.
    calculate the months in between
          clear date1.
          clear date2.
          concatenate pa_m_frm '01' into date1.
          concatenate pa_m_to '01' into date2.
        concatenate pa_m_to '31' into date2.
          perform months_calculate using date1 date2 changing emonths.
       check if months <= 36.
          if emonths <= 36.
            perform get_sales.
            perform retrieve_bom.
          else.
            message i000(zwpp001).
            exit.                            " error message
          endif.
        else.
          message i002(zwpp001).
        endif.
    check if the Display yearly report is being selected *****
      elseif ra_yea = 'X' and
             pa_y_frm <> 0 and
             pa_y_to <> 0.
        itab_bom-requantity = lp_s076-absat.    "for current year 2006 ."added by pradeep on 4/07/07
        itab_bom-requantity = lp_s076-absat + 1.                "ie 2007.
        itab_bom-requantity = lp_s076-absat + 2.                "ie 2008.
    check for correct input format
        lv_y_frm = pa_y_frm.
        lv_y_to = pa_y_to.
        if lv_y_frm ge '2000' and lv_y_to ge '2000'.
    calculate the months in between
          clear date1.
          clear date2.
          concatenate pa_y_frm '0101' into date1.
          concatenate pa_y_to '1201' into date2.
        concatenate pa_y_to '1231' into date2.
          perform months_calculate using date1 date2 changing emonths.
       check if months <= 36.
          if emonths <= 36.
            perform get_sales.
            perform retrieve_bom.
          else.
            message i001(zwpp001).
            exit.                            " error message
          endif.
        else.
          message i002(zwpp001).
        endif.
      else.
        exit.
      endif.
    added by pradeep on 04/07/07
    if emonths = 4.
       itab_bom-requantity = lp_s076-absat * itab_bom-comp_qty / itab_bom-xmeng.
    endif.
    if emonths = 5.
       tp_totalprice = lp_s076-absat * ta_mat-stprs.
    endif.
    if emonths = 6.
       itab_bom-requantity = lp_s076-absat * itab_bom-comp_qty / itab_bom-xmeng.
    endif.
    if emonths = 7.
       tp_totalprice = lp_s076-absat * ta_mat-stprs.
    endif.
    if emonths = 8.
       itab_bom-requantity = lp_s076-absat * itab_bom-comp_qty / itab_bom-xmeng.
    endif.
    endform.                     " checking
    *&      Form  get_sales
          text
    form get_sales.
      data: iseq type i,
            tp_sales type p decimals 2,
            tp_totalprice type p decimals 2,"added by pradeep on 03/07/07
            tp_maktx like makt-maktx,
            tp_tabix like sy-tabix,
            tp_pmnux like s076-pmnux,
            seq type i.
      data: yr_frm(6) type c,
            yr_to(6) type c.
      data: year_frm(4) type c,
            year_to(4) type c.
      data: month1(2) type c,
            month12(4) type c.
      data: totalsales like zspp003-mth1.
      data: yr_index like sy-subrc.
    check if the Display monthly report is being selected *****
      if ra_mth = 'X' and
          pa_m_frm <> 0 and
          pa_m_to <> 0.
    retrieve months
        perform get_months.
        select * into corresponding fields of table lp_s076 from s076
                                       where pmnux = so_matnr
                                       and wenux = pa_werks
                                       and vrsio = pa_vrsio
                                       and spmon ge pa_m_frm
                                       and spmon le pa_m_to.
        iseq = 1.
        seq = 0.
        loop at lp_s076.
          if sy-tabix = 1.
            write : lp_s076-pmnux to tp_pmnux.
          endif.
          select single maktx into tp_maktx from makt
                      where matnr = lp_s076-pmnux.
          clear wa.
          read table ta_s076 into wa with key
          matnr = lp_s076-pmnux.
          if sy-subrc ne 0.
            wa-seq   = iseq.
            wa-matnr = lp_s076-pmnux.
            wa-maktx = tp_maktx.
          endif.
          move lp_s076-absat to tp_sales.
          case lp_s076-spmon.
            when t_mth1.
              move tp_sales to wa-mth1.
              move t_mth1 to wa-sp1.
              ind1 = '1'.
            when t_mth2.
              move tp_sales to wa-mth2.
              move t_mth2 to wa-sp2.
              ind2 = '1'.
            when t_mth3.
              move tp_sales to wa-mth3.
              move t_mth3 to wa-sp3.
              ind3 = '1'.
            when t_mth4.
              move tp_sales to wa-mth4.
              move t_mth4 to wa-sp4.
              ind4 = '1'.
            when t_mth5.
              move tp_sales to wa-mth5.
              move t_mth5 to wa-sp5.
              ind5 = '1'.
            when t_mth6.
              move tp_sales to wa-mth6.
              move t_mth6 to wa-sp6.
              ind6 = '1'.
            when t_mth7.
              move tp_sales to wa-mth7.
              move t_mth7 to wa-sp7.
              ind7 = '1'.
            when t_mth8.
              move tp_sales to wa-mth8.
              move t_mth8 to wa-sp8.
              ind8 = '1'.
            when t_mth9.
              move tp_sales to wa-mth9.
              move t_mth9 to wa-sp9.
              ind9 = '1'.
            when t_mth10.
              move tp_sales to wa-mth10.
              move t_mth10 to wa-sp10.
              ind10 = '1'.
            when t_mth11.
              move tp_sales to wa-mth11.
              move t_mth11 to wa-sp11.
              ind11 = '1'.
            when t_mth12.
              move tp_sales to wa-mth12.
              move t_mth12 to wa-sp12.
              ind12 = '1'.
            when t_mth13.
              move tp_sales to wa-mth13.
              move t_mth13 to wa-sp13.
              ind13 = '1'.
            when t_mth14.
              move tp_sales to wa-mth14.
              move t_mth14 to wa-sp14.
              ind14 = '1'.
            when t_mth15.
              move tp_sales to wa-mth15.
              move t_mth15 to wa-sp15.
              ind15 = '1'.
            when t_mth16.
              move tp_sales to wa-mth16.
              move t_mth16 to wa-sp16.
              ind16 = '1'.
            when t_mth17.
              move tp_sales to wa-mth17.
              move t_mth17 to wa-sp17.
              ind17 = '1'.
            when t_mth18.
              move tp_sales to wa-mth18.
              move t_mth18 to wa-sp18.
              ind18 = '1'.
            when t_mth19.
              move tp_sales to wa-mth19.
              move t_mth19 to wa-sp19.
              ind19 = '1'.
            when t_mth20.
              move tp_sales to wa-mth20.
              move t_mth20 to wa-sp20.
              ind20 = '1'.
            when t_mth21.
              move tp_sales to wa-mth21.
              move t_mth21 to wa-sp21.
              ind21 = '1'.
            when t_mth22.
              move tp_sales to wa-mth22.
              move t_mth22 to wa-sp22.
              ind22 = '1'.
            when t_mth23.
              move tp_sales to wa-mth23.
              move t_mth23 to wa-sp23.
              ind23 = '1'.
            when t_mth24.
              move tp_sales to wa-mth24.
              move t_mth24 to wa-sp24.
              ind24 = '1'.
            when t_mth25.
              move tp_sales to wa-mth25.
              move t_mth25 to wa-sp25.
              ind25 = '1'.
            when t_mth26.
              move tp_sales to wa-mth26.
              move t_mth26 to wa-sp26.
              ind26 = '1'.
            when t_mth27.
              move tp_sales to wa-mth27.
              move t_mth27 to wa-sp27.
              ind27 = '1'.
            when t_mth28.
              move tp_sales to wa-mth28.
              move t_mth28 to wa-sp28.
              ind28 = '1'.
            when t_mth29.
              move tp_sales to wa-mth29.
              move t_mth29 to wa-sp29.
              ind29 = '1'.
            when t_mth30.
              move tp_sales to wa-mth30.
              move t_mth30 to wa-sp30.
              ind30 = '1'.
            when t_mth31.
              move tp_sales to wa-mth31.
              move t_mth31 to wa-sp31.
              ind31 = '1'.
            when t_mth32.
              move tp_sales to wa-mth32.
              move t_mth32 to wa-sp32.
              ind32 = '1'.
            when t_mth33.
              move tp_sales to wa-mth33.
              move t_mth33 to wa-sp33.
              ind33 = '1'.
            when t_mth34.
              move tp_sales to wa-mth34.
              move t_mth34 to wa-sp34.
              ind34 = '1'.
            when t_mth35.
              move tp_sales to wa-mth35.
              move t_mth35 to wa-sp35.
              ind35 = '1'.
            when t_mth36.
              move tp_sales to wa-mth36.
              move t_mth36 to wa-sp36.
              ind36 = '1'.
          endcase.
         move seq to itab_seq-seq.
         append itab_seq.
          tp_tabix = sy-tabix.
          if sy-subrc = 0.
         modify table ta_s076 from wa.
            modify ta_s076 from wa index tp_tabix.
            if lp_s076-pmnux = tp_pmnux.
              seq = seq + 1.
              move seq to itab_seq.
              append itab_seq.
            endif.
          else.
            append wa to ta_s076.
            if lp_s076-pmnux = tp_pmnux.
              seq = seq + 1.
              move seq to itab_seq.
              append itab_seq.
            endif.
          endif.
          iseq = iseq + 1.
        endloop.                " endloop for lp_s076.
        itb_sales[] = ta_s076[].
    itb_sales12[] = ta_s076[].
    check if the Display yearly report is being selected *****
      elseif ra_yea = 'X' and
               pa_y_frm <> 0 and
               pa_y_to <> 0.
        clear year1.
        clear year2.
        clear year3.
        perform get_years.
        loop at ta_mat.
          loop at ta_yr.
            clear yr_index.
            yr_index = sy-tabix.
            case yr_index.
              when '1'.
                year1 = ta_yr-year.
              when '2'.
                year2 = ta_yr-year.
              when '3'.
                year3 = ta_yr-year.
            endcase.
            clear yr_frm.
            clear yr_to.
            year_frm = ta_yr-year.
            year_to = ta_yr-year.
            month1 = '01'.
            month12 = '12'.
            concatenate year_frm month1 into yr_frm.
            concatenate year_to month12 into yr_to.
            select * into corresponding fields of table lp_s076 from s076
                                     where pmnux = ta_mat-matnr
                                     and wenux = pa_werks
                                     and vrsio = pa_vrsio
                                     and spmon ge yr_frm
                                     and spmon le yr_to.
          calculate total sales.
            totalsales = 0.
            loop at lp_s076.
              at first.
                sum.
                totalsales = lp_s076-absat.
              endat.
              at end of absat."added by pradeep on 4/07/07
                sum.
                tp_totalprice = lp_s076-absat * ta_mat-stprs.
                itab_bom-requantity = lp_s076-absat * itab_bom-comp_qty / itab_bom-xmeng.
              endat.
            endloop.          "endloop for lp_s076
            select single maktx into tp_maktx from makt
               where matnr = ta_mat-matnr.
            read table ta_s076 into wa with key
              matnr = ta_mat-matnr.
            if sy-subrc ne 0.
              wa-matnr = lp_s076-pmnux.
              wa-maktx = tp_maktx.
            endif.
            case yr_index.
              when '1'.
                move totalsales to wa-sales_y1.
                move tp_totalprice to wa-sales_y1."added by pradeep
                move ta_yr-year to wa-year1.
                ind1 = '1'.
              when '2'.
                move totalsales to wa-sales_y2.
                move tp_totalprice to wa-sales_y2.
                move ta_yr-year to wa-year2.
                ind2 = '1'.
              when '3'.
                move totalsales to wa-sales_y3.
                move tp_totalprice to wa-sales_y3.
                move ta_yr-year to wa-year3.
                ind3 = '1'.
            endcase.
            tp_tabix = sy-tabix.
            if sy-subrc = 0.
                     modify table ta_s076 from wa.
              modify ta_s076 from wa index tp_tabix.
            else.
              append wa to ta_s076.
            endif.
          endloop.        "endloop for ta_yr
        endloop.        "endloop for ta_mat
        itb_sales[] = ta_s076[].
      else.
        exit.
      endif.
    endform.                   "get_sales
    *&      Form  get_months
          text
    form get_months.
      move pa_m_frm to t_mth1.
      perform get_next_few_months
      using t_mth1 '1'
      changing t_mth2.
      perform get_next_few_months
      using t_mth2 '1'
      changing t_mth3.
      perform get_next_few_months
      using t_mth3 '1'
      changing t_mth4.
      perform get_next_few_months
      using t_mth4 '1'
      changing t_mth5.
      perform get_next_few_months
      using t_mth5 '1'
      changing t_mth6.
      perform get_next_few_months
      using t_mth6 '1'
      changing t_mth7.
      perform get_next_few_months
      using t_mth7 '1'
      changing t_mth8.
      perform get_next_few_months
      using t_mth8 '1'
      changing t_mth9.
      perform get_next_few_months
      using t_mth9 '1'
      changing t_mth10.
      perform get_next_few_months
      using t_mth10 '1'
      changing t_mth11.
      perform get_next_few_months
      using t_mth11 '1'
      changing t_mth12.
      perform get_next_few_months
      using t_mth12 '1'
      changing t_mth13.
      perform get_next_few_months
      using t_mth13 '1'
      changing t_mth14.
      perform get_next_few_months
      using t_mth14 '1'
      changing t_mth15.
      perform get_next_few_months
      using t_mth15 '1'
      changing t_mth16.
      perform get_next_few_months
      using t_mth16 '1'
      changing t_mth17.
      perform get_next_few_months
      using t_mth17 '1'
      changing t_mth18.
      perform get_next_few_months
      using t_mth18 '1'
      changing t_mth19.
      perform get_next_few_months
      using t_mth19 '1'
      changing t_mth20.
      perform get_next_few_months
      using t_mth20 '1'
      changing t_mth21.
      perform get_next_few_months
      using t_mth21 '1'
      changing t_mth22.
      perform get_next_few_months
      using t_mth22 '1'
      changing t_mth23.
      perform get_next_few_months
      using t_mth23 '1'
      changing t_mth24.
      perform get_next_few_months
      using t_mth24 '1'
      changing t_mth25.
      perform get_next_few_months
      using t_mth25 '1'
      changing t_mth26.
      perform get_next_few_months
      using t_mth26 '1'
      changing t_mth27.
      perform get_next_few_months
      using t_mth27 '1'
      changing t_mth28.
      perform get_next_few_months
      using t_mth28 '1'
      changing t_mth29.
      perform get_next_few_months
      using t_mth29 '1'
      changing t_mth30.
      perform get_next_few_months
      using t_mth30 '1'
      changing t_mth31.
      perform get_next_few_months
      using t_mth31 '1'
      changing t_mth32.
      perform get_next_few_months
      using t_mth32 '1'
      changing t_mth33.
      perform get_next_few_months
      using t_mth33 '1'
      changing t_mth34.
      perform get_next_few_months
      using t_mth34 '1'
      changing t_mth35.
      perform get_next_few_months
      using t_mth35 '1'
      changing t_mth36.
    endform.                    "get_months
    *&      Form  get_years
          text
    form get_years.
      data : tp_yr_frm(4) type n.
      data : tp_yr_to(4) type n.
      data : yr_diff(4) type n.
      move pa_y_frm to tp_yr_frm.
      move pa_y_to to tp_yr_to.
      move tp_yr_frm to ta_yr-year.
      append ta_yr.
      yr_diff = tp_yr_to - tp_yr_frm.
    *number of years = 3
      if yr_diff = 2.
        do 2 times.
          tp_yr_frm = tp_yr_frm + 1.
          move tp_yr_frm to ta_yr-year.
          append ta_yr.
        enddo.
    *number of years = 2
      elseif yr_diff = 1.
        tp_yr_frm = tp_yr_frm + 1.
        move tp_yr_frm to ta_yr-year.
        append ta_yr.
      else.
        exit.
      endif.
    endform.                    "get_years
    *&      Form  get_next_few_months
          text
         -->LV_CURR_MONTH  text
         -->LV_MONTHS      text
         -->LV_TARGET_MTH  text
    form get_next_few_months using lv_curr_month lv_months
                             changing lv_target_mth.
      data : tp_month_curr like sy-datum,
             tp_month_plus like sy-datum.
      concatenate lv_curr_month '01' into tp_month_curr.
      call function 'SG_PS_ADD_MONTH_TO_DATE'
        EXPORTING
          months  = lv_months
          olddate = tp_month_curr
        IMPORTING
          newdate = tp_month_plus.
      move tp_month_plus(6) to lv_target_mth.
    endform.                    " get_months
    *&      Form  months_calculate
          text
         -->P_DATE1  text
         -->P_DATE2  text
         <--P_EMONTHS  text
    form months_calculate  using    p_date1
                                    p_date2
                           changing p_emonths.
      call function 'FIMA_DAYS_AND_MONTHS_AND_YEARS'
        exporting
          i_date_from          = p_date1
             I_KEY_DAY_FROM       =
          i_date_to            = p_date2
             I_KEY_DAY_TO         =
             I_FLG_SEPARATE       = ' '
       importing
             E_DAYS               =
          e_months             = p_emonths.
             E_YEARS              =
    endform.                    " months_calculate
    *&      Form  retrieve_bom
          text
    -->  p1        text
    <--  p2        text
    form retrieve_bom .
    retrieve BOM components
      sort ta_header by matnr.
      loop at ta_header where stlan = '1' and stlst = '01'.
        tp_bmeng = '1'.
        perform get_bom tables ta_stpo using
                                   ta_header-matnr ta_header-werks  ta_header-stlan ta_header-stlal tp_bmeng.
    requirement quantity calculation for active bom
        perform calculation1.
    retrieve BOM components for pgm
        sort itab_bom2 by idnrk ascending.
        delete adjacent duplicates from itab_bom2 comparing matnr idnrk.
       loop at itab_bom2.         " commented by weihong
        tp_stlan = '1'.
        tp_stlal = '02'.
        perform get_pgm tables ta_stpo12 using
                                   itab_bom2-matnr ta_header-werks  tp_stlan tp_stlal.
       endloop.          " endloop for itab_bom2.(commented by weihong)
    requirement quantity calculation for inactive bom
        perform calculation2.
        refresh : itab_bom1, itab_bom2, itab_pgm, temp_bom1,itab_path.
        clear : itab_bom1, itab_bom2, itab_pgm, temp_bom1,itab_path.
      endloop.      " endloop for ta_header.
    **itab_msale itab_ysale
    *break-point.
      perform display_alv.
    endform.                "retrieve bom
    *&      Form  get_bom
          text
         -->LV_MATNR   text
         -->LV_WERKS   text
         -->LV_STLAN   text
         -->LV_STLAL   text
    form get_bom tables lt_stpo structure stpox
                 using lv_matnr like mast-matnr
                       lv_werks like mast-werks
                       lv_stlan like mast-stlan
                       lv_stlal like stko-stlal
                       lv_emeng like stko-bmeng .
      data: ta_topmat type cstmat,
            tp_dstst like csdata-xfeld,
            ta_matcat type cscmat occurs 0,
            tp_index like sy-tabix,
            tp_stufe like stpox-stufe,
            tp_diff like stpox-stufe,
            tp_indx like sy-tabix,
            tp_date like sy-datum,
            lv_stufe like stpox-stufe,
            lv_wegxx like stpox-wegxx,
            lv_stprs like stpox-stprs,
            lv_waers like stpox-waers,
           lv_cuky_new like cdpos-cuky_new,
           lv_value_new like cdpos-value_new,
            lv_index like sy-tabix,
            lv_datum like sy-datum,"added by pradeep on 02-07-07
            nxt_index like sy-tabix.
    added by weihong.
      data: tp_mtart like mara-mtart,
            tp_matkl like mara-matkl,
            tp_stprs like stpox-stprs,
            tp_bomlv1 like mast-matnr,
            tp_bomlv2 like mast-matnr,
            tp_bomlv3 like mast-matnr,
            tp_bomlv4 like mast-matnr,
            tp_indln type i.
      write : lv_matnr to itab_bom1-matnr.
      write : lv_matnr to itab_bom2-matnr.
      write : lv_matnr to itab_path-matnr.

    Hi gurus,actually this program selecion screen is linked to ..as
    First screen is .Sop
                          .copa
    Again for sop is having a selection screen and in this it is divide based on month and year seperately in two more screens.
    same for copa also....
    so pls tell me a correct solution where to correct and get values.
    Priority is very highhhhhhhhhhhhhh,so pls help me in sorting out this.

  • Not able to view the excel output from eBS

    Hi All,
    I am not able to open the reports for the first time and this error is keep on coming everyday whenever i try to open any report for the first time.
         Microsoft office Excel cannot access the file 'http://  '. There are several possible reasons:
         The file name or path does not exist.
         The file is being used by another program.    
         The workbook you are trying to save has the same name as a currently open workbook
    But in the second time o/p opens without any issues.
    Can you please let me know what will be the cause of the issue.
    Thanks
    Rajesh

    What browser are you using?
    If Chrome, try something else. Chrome works fine with help on the server but not locally. There is more in Snippets on my site about the Chrome issue.
    See www.grainge.org for RoboHelp and Authoring tips
    @petergrainge

  • Not able to find the mapping for table W_CUSTOMER_STATUS_HIST_F_TMP

    Hi All,
    I have implemented the Out of Box solution of Order Management Analytics module with 11.5.10 version of Oracle EBS and respective adopters. Under the same I am not able to notice any mapping to load the data into W_CUSTOMER_STATUS_HIST_F_TMP table and due to which it causing few reports under order management.
    Could you please tell me the mappings name for this Target Table so that I can verify from my side if it has been missed or so?
    I am finding this W_CUSTOMER_STATUS_HIST_F_TMP table is getting used as Source Table under the folder of PLP for the mapping as,
    PLP_CustomerStatusHistoryFact_Extract
    PLP_CustomerStatusHistoryFact_Old_Customers_Load
    and PLP_CustomerStatusHistoryFact_Extract
    Thanks,
    -Vinay

    Not sure this would help but As per data lineage guide, it says PLP_CustomerStatusHistoryFact_Extract mapping populates this table from series of different tables. Later, From temp table it goes to W_CUSTOMER_STATUS_HIST_F table via mapping PLP_CustomerStatusHistoryFact_New_Customers_Load
    ~r

  • Not able to see all the SAP tables from CR 2008

    Hi All,
    1)I am not able to see all the SAP database tables(DEV server) from Database expert menu in CR 2008. Only tables those start with alphabet letters upto A & B are visible. I checked the database connection>right click>options> found no filters as well.
    We are using the CR 2008 trial version with SAP ECC.
    2) When i am trying with Production Server of SAP ECC, I am not able to logon to the SAP from CR 2008. It is giving error message
    as : LOGON FAILED : User USER1 has no RFC AUTHORIZATION for function group SYST
    Please help me to resolve these. Thanks in advance.

    Thank you very much ingo.
    You helped me a lot.
    One more question, when I am trying for SAP database connections say for ex: 10.57.410.70, again and again some times the connection is getting saved in my connections with as new versions/variants like
    10.57.410.70_1 or so. How to overcome this.
    Thanks in advance ingo
    Badari

  • Not able to select MS SQL Server tables in sqldeveloper using dblink

    Hi All,
    I able tp select MS SQL table columns in sqlplus prompt but i am not able to select same thing in sql developer using dblink.
    If i use convert(<mycol>,'WE8ISO8859P1','utf8') in sqldeveloper its working, how to select MS SQL columns without convert function.
    Thanks,
    -Mani

    Mani,
    This is a problem with SQL*Developer and converting nvarchar characters.
    The workround is to install the Oracle client software and use the option in SQL*Developer -
    - Tools
    - Preferences
    - Database
    - Advanced
    - and click the 'Use OCI/Thick driver' option.
    I made these steps -
    - download the 11.1 client software from eDelivery -
    http://edelivery.oracle.com/
    - go through the administration screens (name, etc)
    - on the next screen ' Media Pack Search' screen choose -
    - Select a Product Pack - Oracle database
    - Platform - Microsoft Windows (32-bit)
    - Oracle® Database 11g Release 1 (11.1.0.6.0) Media Pack for Microsoft Windows (32-bit)
    - then download -
    Oracle® Database 11g Release 1 Client (11.1.0.6.0) for Microsoft Windows (32-bit) CD
    - Install the Instant Client and also apply the 11.10.7 patchset to the ORACLE_HOME where you install the client. (if you are using 11.1.0.7 RDBMS)
    - for Windows change the PATH system variable to make sure the 11.1 RDBMS and Client ORACLE_HOME directories are listed before any other Oracle directories
    - started SQL*Developer and clicked the 'Use OCI/Thick driver' option
    - could then run the select -
    select "col2" from test_nvarchar@dg4msql ;
    without any problems.
    If this is still a problem for you then let us know the description of the columns in the SQL*Server table that give the problem and the exact errors you receive.
    Regards,
    Mike

  • Not able to view the webhelp output in Robohelp 9

    Hello,
    I am in a project where we have to create webhelp output from Robohelp 9. Whenever I generate the webhelp ouput I am not able to view the the contents. Although, the webhelp is opening in a browser window but there are no topics present in the contents. The other ouputs like .chm and .dox are fine, but there is some problem with the webhelp which I am unable to figure out.
    Regards,
    Ruso

    What browser are you using?
    If Chrome, try something else. Chrome works fine with help on the server but not locally. There is more in Snippets on my site about the Chrome issue.
    See www.grainge.org for RoboHelp and Authoring tips
    @petergrainge

  • Not able to find the Queries in Table

    Hi Experts,
    Am searching for all the queries whcih we have developed in table RSRREPDIR - which is Directory of all reports (Query GENUNIID). But am not able to find out some queries in this table also..
    Can anyone please let me know the table where i can find all the queries...
    Regards,
    Gattu...

    Oliver,
    Thanks a lot for your quick reply... But am not able to find few queries in that table.. Can you please let me know hat might be the reason and how to trigger this..
    Regards,
    Gattu

  • Not able to flush the data output stream in n/w prg.

    Hi,
    I am trying to send and receive the data using TCP/IP channel using socket programming.
    Following is the server side code I have
    Socket socket = server_socket.accept();
    OutputStream output = socket.getOutputStream();
    BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    String inputMessage = (String) input.readLine();
    System.out.println(inputMessage);
    output.write("Message from server");
    output.flush();I am able to receive the message from the client and as per the code the message is getting printed in the console. But I am unable to send the message back to the Client inspite of flushing the output stream.
    I am sure that the problem is because of the flush method which is not acutally flushing the data. If I use the "println" method instead of the write & flush method, everything seems to be working fine. I do not want to use the "println" method because I get an extra new line character in the msg I send to the Client.
    Any help on this is appreciated!

    No. I am not using BufferedReader to listen for the server response. Given below is my client side code.
    Socket socket = new Socket(<ip>, <port>);
    InputStream input = socket.getInputStream();
    PrintWriter output = new PrintWriter(socket.getOutputStream(),true);
    output.println("Request from the client");
    System.out.println("Waiting for the server response...");
    byte buffer[] = new byte[2000];
    input.read(buffer);
    System.out.println(new String(byte));I am not receiving the message from server, it hangs on "Waiting for the server response..".

  • Not able to create rows in a table with dependent columns in an OAF page.

    We have a table in an OAF page which has the property "Records Displayed" set as "10". Hence pagination kicks in for more than 10 rows in the table. "Add rows" is enabled in this table. The table also has 'detail' component.
    In this table, we have created 2 new columns (dropdowns) using personalization. Dropdown 2 is dependent on the value selected in Dropdown1. Both are required fields.
    We are able to add new rows to the table. All the columns render properly. Dropdown 2 also renders properly depending on the values selected in Dropdown1. There is no issue until we add the 10th row (remember the number of displayed records in the tabble is 10). When we add the 10th row, the fields appear properly. Dropdown1 values are displayed as expected. But when we select a value in Dropdown1, Dropdown2 does not refresh and get populated with the expected values (depending on Dropdown1 values). Dropdown2 remains blank. But this happens only when the 10th row is added. Since Dropdown2 is a required field and since Dropdown2 is not refreshed with values depending on Dropdown1, the records cannot be saved.
    There seems to be a problem with refresh when the nth row is added to the table where 'n' is the Records displayed in the table (pagination).
    If we change the Records Displayed to say 15 then we have the above problem when adding the 15th row. 14 rows can added to the table without an issue.
    Can a workaround (other than increasing the number of displayed records) be provided for this issue?

    Hi,
    I suspect you have written a method having String return type but the method does not have return statement.
    Go to the Catalogue component->BPM Object->Right click on the BPM object and select New Method->Give the method name. Now the method window will be opened. Go to the propertied tab of the right most panel. Set the return type as string. In the method window editor write your business logic. The below mentioned code is for sample one.
    String msg = "Hello World";
    return msg;
    Bibhu

Maybe you are looking for

  • What should be the directory structure for new theme

    I want to create a new theme for my BSP pages. Currently all my BSP are using /sap/public/bc/ur/Design2002/themes/sap_tradeshow/ur/ur_ie6.css for styling. I want to create a new theme named testTheme and want to call my bsp pages with sap-themeRoot=t

  • User Profile Disks - User registry data

    In Server 2012 standard (not R2)  using RD  in Session Collection  and in the "User Profile Disks" tab  I have ticked "Enable user profile disks" If I select the second radar-button "Store only the following folders on the user profile disk" What is

  • Query (connect by/string agregation)

    Hi Can anybody give me an example of query ID VAL 1 A 1 B 1 C Output: 'A,B,C' Thanks. Edited by: Bolev on Feb 3, 2010 5:10 PM

  • Moving Layers Problem CS5

    I'm having issues moving individual layers once they've been put into a group in CS5. It just moves everything in the group! Very inconvenient. This hasn't happened to me before or in CS6. Can anyone offer any recommendations on how to correct this?

  • I cant download pr 1.2 and other apps HELP

    ive tryed every thing and need some pro help seeing im new to these sort of thing ???