Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Working with checkboxes

Former Member
0 Likes
1,672

Hi,

In the output of a custom report, I have added a column of checkboxes.

Now what do I do to make sure than sure that any checked records will be transported into a custom internal table? How do I know which records were checked?

Please explain in detail.

Thanks,

John

11 REPLIES 11
Read only

Former Member
0 Likes
1,310

If u are doing Table control,

then u can modify the checkbox field(ex: CHK) when user is checking that.

and can process like loop at itab where chk = 'X'.

If u r doing ALV grid, then u an modify that

Data: ref1 type ref to cl_gui_alv_grid.

CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'

IMPORTING

E_GRID = ref1.

call method ref1->check_changed_data.

Read only

Former Member
0 Likes
1,310

Checkboxes and Radio Buttons with Function Codes

Similarly to on screens, where you can define checkboxes and radio buttons with function codes, you can do the same with checkboxes and radio buttons on selection screens. You do this using the USER-COMMAND addition when you declare the relevant parameters:

PARAMETERS ... AS CHECKBOX | RADIOBUTTON GROUP ... USER-COMMAND <ucom>.

You can assign a function code <ucom> to an individual checkbox. However, a radio button group must have one shared function code, since it is only possible to make the assignment for the first button in the group.

When you select a checkbox or radio button in a group, the runtime analysis triggers the AT SELECTION-SCREEN event and places the function code <ucom> into component UCOMM of the interface work area SSCRFIELDS. You must use the TABLES statement to declare the SSCRFIELDS structure.

After the AT SELECTION-SCREEN event has been processed, the system displays the selection screen again. The only way to exit the selection screen and carry on processing the program is to choose Execute (F8). Consequently, checkboxes and radio buttons with function codes are more suitable for controlling dynamic modifications on a selection screen than for controlling the program flow.

REPORT demo_sel_screen_user_command.

TABLES sscrfields.

PARAMETERS: rad1 RADIOBUTTON GROUP rad USER-COMMAND radio,

rad2 RADIOBUTTON GROUP rad,

rad3 RADIOBUTTON GROUP rad.

PARAMETERS check AS CHECKBOX USER-COMMAND check.

AT SELECTION-SCREEN.

MESSAGE i888(sabapdocu) WITH text-001 sscrfields-ucomm.

START-OF-SELECTION.

WRITE text-002.

This program assigns function codes to a radio button group and a checkbox.

<b>rewards point for useful answer</b>

regards....

Abhay SIngh.

Read only

Former Member
0 Likes
1,310

hi ,

if u r using the oops ALV,t o knw the selected rows

then use the FM

METHOD handle_user_command.

DATA: lt_rows TYPE lvc_t_row,

CALL METHOD g_hdr_grid->get_selected_rows

IMPORTING

et_index_rows = lt_rows.

LOOP AT lt_rows INTO wa_rows.

read the internal table to want to get the data.

reward if helpful.

Read only

Former Member
0 Likes
1,310

please see the data element of those fields in the Table and for that fields see the labels .

<b>short text

medium text

long text .</b>

if these 3 are not maintained please maintain it .

reward points if it is usefull...

Girish

Read only

Former Member
0 Likes
1,310

Sorry yaar ... by mistake i posted different answer

Girish

Read only

Former Member
0 Likes
1,310

please see this program here the chech box is handled .

program zcheckbox_test.
class lcl_event_receiver definition deferred.  "for event handling

data: ok_code like sy-ucomm,
      save_ok like sy-ucomm,
      g_container type scrfname value 'BCALV_GRID_DEMO_0100_CONT1',
      g_grid  type ref to cl_gui_alv_grid,
      g_custom_container type ref to cl_gui_custom_container,
      g_event_receiver type ref to lcl_event_receiver,
      gt_fieldcat type lvc_t_fcat,
      gs_layout type lvc_s_layo,
      g_max type i value 100.

*
*§A1.Extend your output table by a checkbox field.
*     If you do not want to lock sole checkboxes against input
*     you do not need field 'celltab'.

types: begin of gs_outtab.
types: checkbox type c.                "field for checkbox
* §B1.Extend your output table by a field to dis- or enable
*     cells for input.
types: celltab type lvc_t_styl.        "field to switch editability
        include structure sflight.
types: end of gs_outtab.

data: gt_outtab type gs_outtab occurs 0 with header line.

***********************************************************************
* LOCAL CLASSES
***********************************************************************
*
* This local class only handles event DOUBLE_CLICK.
* Wenn the user double clicks on a checkbox cell the status of
* this cell is switched from editable to not editable and vice versa.
*
class lcl_event_receiver definition.

public section.
methods: catch_doubleclick
         for event double_click of cl_gui_alv_grid
         importing
            e_column
            es_row_no
            sender.
endclass.

*-----

class lcl_event_receiver implementation.

method catch_doubleclick.
  data: ls_outtab type gs_outtab,
        ls_celltab type lvc_s_styl.
*--
* Function:
*  Switch between 'editable' and 'not editable' checkbox.
*--

* If the user clicked on another column there is
* nothing to do.
  if e_column-fieldname ne 'CHECKBOX'.
    exit.
  endif.

  read table gt_outtab into ls_outtab index es_row_no-row_id.

* The loop is only needed if there are other columns that
* use checkboxes. At this point the loop could be
* replaced by a READ of the first line of CELLTAB.
      loop at ls_outtab-celltab into ls_celltab.
        if ls_celltab-fieldname eq 'CHECKBOX'.
* §B4.Switch the style to dis- or enable a cell for input
         if ls_celltab-style = cl_gui_alv_grid=>mc_style_enabled.
          ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
         else.
          ls_celltab-style = cl_gui_alv_grid=>mc_style_enabled.
         endif.
         modify ls_outtab-celltab from ls_celltab.
        endif.
      endloop.
      modify gt_outtab from ls_outtab index es_row_no-row_id.

    call method sender->refresh_table_display.
endmethod.
endclass.
*
********************************************************************

*---------------------------------------------------------------------*
*       MAIN                                                          *
*---------------------------------------------------------------------*
end-of-selection.
  call screen 100.

*---------------------------------------------------------------------*
*       MODULE PBO OUTPUT                                             *
*---------------------------------------------------------------------*
module pbo output.
  set pf-status 'MAIN100'.
  set titlebar 'MAIN100'.
  if g_custom_container is initial.
    perform create_and_init_alv.
  endif.

endmodule.
*---------------------------------------------------------------------*
*       MODULE PAI INPUT                                              *
*---------------------------------------------------------------------*
module pai input.
  save_ok = ok_code.
  clear ok_code.
  case save_ok.
    when 'EXIT'.
      perform exit_program.
    when 'SELECT'.
      perform select_all_entries changing gt_outtab[].
    when 'DESELECT'.
      perform deselect_all_entries changing gt_outtab[].
    when 'RESET'.
      perform reset_selected_entries changing gt_outtab[].
    when 'SWITCH'.
      perform switch_activation changing gt_outtab[].
  endcase.
endmodule.
*---------------------------------------------------------------------*
*       FORM EXIT_PROGRAM                                             *
*---------------------------------------------------------------------*
form exit_program.
  leave program.
endform.
*&---------------------------------------------------------------------*
*&      Form  BUILD_FIELDCAT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_GT_FIELDCAT  text
*----------------------------------------------------------------------*
form build_fieldcat changing pt_fieldcat type lvc_t_fcat.

  data ls_fcat type lvc_s_fcat.

  call function 'LVC_FIELDCATALOG_MERGE'
       exporting
            i_structure_name = 'SFLIGHT'
       changing
            ct_fieldcat      = pt_fieldcat.

*§A2.Add an entry for the checkbox in the fieldcatalog
  clear ls_fcat.
  ls_fcat-fieldname = 'CHECKBOX'.
* Essential: declare field as checkbox and
*            mark it as editable field:
  ls_fcat-checkbox = 'X'.
  ls_fcat-edit = 'X'.

* do not forget to provide texts for this extra field
  ls_fcat-coltext = text-f01.
  ls_fcat-tooltip = text-f02.
  ls_fcat-seltext = text-f03.

* optional: set column width
  ls_fcat-outputlen = 10.
*
  append ls_fcat to pt_fieldcat.

endform.
*&---------------------------------------------------------------------*
*&      Form  CREATE_AND_INIT_ALV
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_GT_OUTTAB  text
*      <--P_GT_FIELDCAT  text
*      <--P_GS_LAYOUT  text
*----------------------------------------------------------------------*
form create_and_init_alv.

  data: lt_exclude type ui_functions.

  create object g_custom_container
         exporting container_name = g_container.
  create object g_grid
         exporting i_parent = g_custom_container.

  perform build_fieldcat changing gt_fieldcat.

* Exclude all edit functions in this example since we do not need them:
  perform exclude_tb_functions changing lt_exclude.

  perform build_data.

*§ B3.Use the layout structure to aquaint additional field to ALV.

  gs_layout-stylefname = 'CELLTAB'.

  call method g_grid->set_table_for_first_display
       exporting is_layout             = gs_layout
                 it_toolbar_excluding  = lt_exclude
       changing  it_fieldcatalog       = gt_fieldcat
                 it_outtab             = gt_outtab[].

  create object g_event_receiver.
  set handler g_event_receiver->catch_doubleclick for g_grid.

* Set editable cells to ready for input initially
  call method g_grid->set_ready_for_input
   exporting
    i_ready_for_input = 1.


endform.                               "CREATE_AND_INIT_ALV

*&---------------------------------------------------------------------*
*&      Form  EXCLUDE_TB_FUNCTIONS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_LT_EXCLUDE  text
*----------------------------------------------------------------------*
form exclude_tb_functions changing pt_exclude type ui_functions.

  data ls_exclude type ui_func.

  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy_row.
  append ls_exclude to pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_delete_row.
  append ls_exclude to pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_append_row.
  append ls_exclude to pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_insert_row.
  append ls_exclude to pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_move_row.
  append ls_exclude to pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy.
  append ls_exclude to pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_cut.
  append ls_exclude to pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste.
  append ls_exclude to pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste_new_row.
  append ls_exclude to pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_undo.
  append ls_exclude to pt_exclude.


endform.                               " EXCLUDE_TB_FUNCTIONS
*&---------------------------------------------------------------------*
*&      Form  build_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form build_data.

  data: lt_sflight type table of sflight,
        ls_sflight type sflight,
        ls_celltab type lvc_s_styl,
        lt_celltab type lvc_t_styl,
        l_index type i.

  select * from sflight into table lt_sflight up to g_max rows.
  if sy-subrc ne 0.
* generate own entries if db-table is empty so that this example
* still works
    perform generate_entries changing lt_sflight.
  endif.

*§A3.Optionally, check checkboxes initially after selecting data.
* (Omitted in this example)
  loop at lt_sflight into ls_sflight.
    move-corresponding ls_sflight to gt_outtab.
*   if gt_outtab-connid eq '400'.
*     gt_outtab-checkbox = 'X'.
*   endif.
    append gt_outtab.
  endloop.

* §B2.After selecting data,
*    assign a style for each row of your checkbox column.
*
* Initially, set all checkbox cells editable.
  ls_celltab-fieldname = 'CHECKBOX'.
  ls_celltab-style = cl_gui_alv_grid=>mc_style_enabled.

  loop at gt_outtab.
    l_index = sy-tabix.
    refresh lt_celltab.

    ls_celltab-fieldname = 'CHECKBOX'.
    ls_celltab-style = cl_gui_alv_grid=>mc_style_enabled.
    insert ls_celltab into table lt_celltab.

    insert lines of lt_celltab into table gt_outtab-celltab.
    modify gt_outtab index l_index.
  endloop.

endform.                               " build_data
*&---------------------------------------------------------------------*
*&      Form  generate_entries
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_LT_SLFIGHT  text
*----------------------------------------------------------------------*
form generate_entries changing pt_slfight type standard table.
*
* This form is only needed for the case that there is no
* data in database table SFLIGHT.
*
  data: ls_sflight type sflight,
        l_month(2) type c,
        l_day(2) type c,
        l_date(8) type c.


  ls_sflight-carrid = 'LH'.
  ls_sflight-connid = '0400'.
  ls_sflight-currency = 'DEM'.
  ls_sflight-planetype = '747-400'.
  ls_sflight-seatsmax = 660.

  do 110 times.
    ls_sflight-price = sy-index * 100.
    ls_sflight-seatsocc = 660 - sy-index * 6.
    ls_sflight-paymentsum = ls_sflight-seatsocc * ls_sflight-price.

    l_month = sy-index / 10 + 1.
    do 2 times.
      l_day = l_month + sy-index * 2.
      l_date+0(4) = '2000'.
      l_date+4(2) = l_month+0(2).
      l_date+6(2) = l_day+0(2).
      ls_sflight-fldate = l_date.
      append ls_sflight to pt_slfight.
    enddo.
  enddo.
endform.                               " generate_entries
*&---------------------------------------------------------------------*
*&      Form  select_all_entries
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_GT_OUTTAB  text
*----------------------------------------------------------------------*
form select_all_entries changing pt_outtab type standard table.
  data: ls_outtab type gs_outtab.
  data: l_valid type c,
        l_locked type c.

*§A4ad. Before you (a)set, reset or (d)evaluate checkboxes,
*       you must check the input cells.
*
* If all entries are ok, ALV transferes new values to the output
* table which you then can modify.

  call method g_grid->check_changed_data
              importing
                 e_valid = l_valid.

  if l_valid eq 'X'.

    loop at pt_outtab into ls_outtab.
      perform check_lock using    ls_outtab
                         changing l_locked.
      if l_locked is initial
         and not ls_outtab-checkbox eq '-'.
        ls_outtab-checkbox = 'X'.
      endif.
      modify pt_outtab from ls_outtab.
    endloop.

    call method g_grid->refresh_table_display.

  endif.

endform.                               " select_all_entries
*&---------------------------------------------------------------------*
*&      Form  deselect_all_entries
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_GT_OUTTAB[]  text
*----------------------------------------------------------------------*
form deselect_all_entries changing pt_outtab type standard table.
  data: ls_outtab type gs_outtab.
  data: l_valid type c,
        l_locked type c.


*§A4ad. Before you (a)set, reset or (d)evaluate checkboxes,
*       you must check the input cells.
*
* If all entries are ok, ALV transferes new values to the output
* table which you then can modify.

  call method g_grid->check_changed_data
              importing
                 e_valid = l_valid.

  if l_valid eq 'X'.

    loop at pt_outtab into ls_outtab.
      perform check_lock using    ls_outtab
                       changing l_locked.
      if l_locked is initial
         and not ls_outtab-checkbox eq '-'.
        ls_outtab-checkbox = ' '.
      endif.

      modify pt_outtab from ls_outtab.
    endloop.

    call method g_grid->refresh_table_display.

  endif.



endform.                               " deselect_all_entries
*&---------------------------------------------------------------------*
*&      Form  reset_selected_entries
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_GT_OUTTAB[]  text
*----------------------------------------------------------------------*
form reset_selected_entries changing pt_outtab type standard table.
  data: ls_outtab type gs_outtab.
  data: l_valid type c.

*§A4b. Before you set, (b)reset or evaluate checkboxes,
*      you must check the input cells.
*
* If all entries are ok, ALV transferes new values to the output
* table which you then can modify.

  call method g_grid->check_changed_data
              importing
                 e_valid = l_valid.

  if l_valid eq 'X'.

    loop at pt_outtab into ls_outtab.
      if     not ls_outtab-checkbox is initial
         and not ls_outtab-checkbox eq '-'.
        clear ls_outtab.
        modify pt_outtab from ls_outtab.
      endif.
    endloop.

    call method g_grid->refresh_table_display.

  endif.

endform.                               " reset_selected_entries

*-----------------------------

form switch_activation changing pt_outtab type standard table.
  data: ls_outtab type gs_outtab.
  data: l_valid type c,
        lt_row_no type lvc_t_roid with header line.

*§A4c. Before you set, reset, (c)(de)activate


*      or evaluate checkboxes, you must check the input cells.
*
* If all entries are ok, ALV transferes new values to the output
* table which you then can modify.

  call method g_grid->check_changed_data
              importing
                 e_valid = l_valid.

  if l_valid eq 'X'.
    call method g_grid->get_selected_rows
      importing
         et_row_no     = lt_row_no[].

    loop at lt_row_no.
       read table pt_outtab into ls_outtab index lt_row_no-row_id.
       if ls_outtab-checkbox ne '-'.
         ls_outtab-checkbox = '-'.
       else.
         ls_outtab-checkbox = ' '.
       endif.
       modify pt_outtab from ls_outtab index lt_row_no-row_id.

    endloop.

    call method g_grid->refresh_table_display.

  endif.

endform.                               " switch_activation

*&---------------------------------------------------------------------*
*&      Form  check_lock
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_LS_OUTTAB  text
*      <--P_L_LOCKED  text
*----------------------------------------------------------------------*
form check_lock using    ps_outtab type gs_outtab
                changing p_locked.
  data ls_celltab type lvc_s_styl.

  loop at ps_outtab-celltab into ls_celltab.
    if ls_celltab-fieldname = 'CHECKBOX'.
      if ls_celltab-style eq cl_gui_alv_grid=>mc_style_disabled.
        p_locked = 'X'.
      else.
        p_locked = space.
      endif.
    endif.
  endloop.

endform.                               " check_lock

reward point if it is usefull ....

Girish

Read only

Former Member
0 Likes
1,310

CHECK THE BELOW CODE,,,CHECK BOXES USED IN ALV REPORT

REPORT ZRAM1.

************************************************************************

  • T A B L E S *

************************************************************************

TABLES: AFKO, " Order Header

AFPO, " Order Item

AUFK, " Order Master

RESB, " Reservation/dependent requirements

AFVC, " Order Operation w/i an Order

CRHD, " Work Center

MARA, " Material Master

MAKT, " Material Description

PLFL, " Task list - sequences

JEST. " Individual Object Status

************************************************************************

  • T Y P E S *

************************************************************************

TYPES:BEGIN OF T_AFKO,

  • CHECK, " Selection

AUFNR TYPE AFKO-AUFNR, " Production order

GLTRP TYPE AFKO-GLTRP, " Basic finish date

GSTRP TYPE AFKO-GSTRP, " Basic start date

GAMNG TYPE AFKO-GAMNG, " Total order quantity

GMEIN TYPE AFKO-GMEIN, " Base Unit of Measure

PLNBEZ TYPE AFKO-PLNBEZ, " Material Number

AUFPL TYPE AFKO-AUFPL, " Routing no. of oper's in the order

END OF T_AFKO.

TYPES:BEGIN OF T_CRHD,

OBJID TYPE CRHD-OBJID, " Object ID of the resource

ARBPL TYPE CRHD-ARBPL, " Work Center

END OF T_CRHD.

TYPES:BEGIN OF T_AFVC,

AUFPL TYPE AFVC-AUFPL, " Routing no. of oper's in the order

PLNFL TYPE AFVC-PLNFL, " Sequence

VORNR TYPE AFVC-VORNR, " Operation/Activity Number

ARBID TYPE AFVC-ARBID, " Object ID of the resource

OBJNR TYPE AFVC-OBJNR, " Object number

END OF T_AFVC.

*TYPES:BEGIN OF T_AFVC1,

  • AUFPL TYPE AFVC-AUFPL, " Routing no. of oper's in the order

  • PLNFL TYPE AFVC-PLNFL, " Sequence

  • VORNR TYPE AFVC-VORNR, " Operation/Activity Number

  • ARBID TYPE AFVC-ARBID, " Object ID of the resource

  • OBJNR TYPE AFVC-OBJNR, " Object number

  • END OF T_AFVC1.

TYPES:BEGIN OF T_AFKO1,

AUFNR TYPE AFKO-AUFNR,

AUFPL TYPE AFKO-AUFPL,

END OF T_AFKO1.

DATA:I_AFKO1 TYPE STANDARD TABLE OF T_AFKO1,

W_AFKO1 LIKE LINE OF I_AFKO1.

TYPES:BEGIN OF T_AFVC1,

AUFPL TYPE AFVC-AUFPL,

PLNFL TYPE AFVC-PLNFL,

VORNR TYPE AFVC-VORNR,

ARBID TYPE AFVC-ARBID,

END OF T_AFVC1.

DATA:I_AFVC1 TYPE STANDARD TABLE OF T_AFVC1,

W_AFVC1 LIKE LINE OF I_AFVC1.

TYPES:BEGIN OF T_ITEM,

MATNR TYPE RESB-MATNR, " Component Matl Number

MAKTX TYPE MAKT-MAKTX, " Matl Desc for Component

BDMNG TYPE RESB-BDMNG, " Component Req'd Qty

END OF T_ITEM.

TYPES:BEGIN OF T_RESB,

MATNR TYPE RESB-MATNR, " Component Matl Number

BDMNG TYPE RESB-BDMNG, " Matl Desc for Component

MEINS TYPE RESB-MEINS, " Base Unit of Measure

AUFNR TYPE RESB-AUFNR, " Production order

AUFST TYPE RESB-AUFST, " Order level

AUFWG TYPE RESB-AUFWG, " Order Path

DUMPS TYPE RESB-DUMPS, " Phantom indicator

END OF T_RESB.

TYPES:BEGIN OF T_RESBS,

MATNR TYPE RESB-MATNR, " Phantom material

PLNFL TYPE RESB-PLNFL, " Sequence

VORNR TYPE RESB-VORNR, " Operation/Activity Number

AUFNR TYPE RESB-AUFNR, " Production order no

END OF T_RESBS.

TYPES:BEGIN OF T_AUFK,

AUFNR TYPE AUFK-AUFNR, " Poduction order no

AUART TYPE AUFK-AUART, " Order type

OBJID TYPE AUFK-OBJID, " Object ID

END OF T_AUFK.

TYPES:BEGIN OF T_HHEADER,

MATNR TYPE RESB-MATNR, " Phantom material

MAKTX TYPE MAKT-MAKTX, " Phantom material description

V_QTY TYPE AFKO-GAMNG, " Total batch quantity

GMEIN TYPE AFKO-GMEIN, " Unit for total batch quantity

END OF T_HHEADER.

TYPES:BEGIN OF T_HITEM,

CHECK,

MATNR TYPE RESB-MATNR, " Phantom material

AUFNR TYPE AFKO-AUFNR, " Production order

  • GAMNG TYPE AFKO-GAMNG, " Production order quantity

BDMNG TYPE RESB-BDMNG,

GMEIN TYPE AFKO-GMEIN, " Base unit for the P.O quantity

PLNBEZ TYPE AFKO-PLNBEZ, " Production order header material

MAKTX TYPE MAKT-MAKTX, " PO header material description

GLTRP TYPE AFKO-GLTRP, " Order basic start date

GSTRP TYPE AFKO-GSTRP, " Order basic finish date

END OF T_HITEM.

TYPES:BEGIN OF T_MHEAD,

PHANTA TYPE RESB-MATNR, " Phantom material for mixing report

MAKTX TYPE MAKT-MAKTX, " Phantom material description

V_QTY TYPE AFKO-GAMNG, " Phantom material quantity

GMEIN TYPE AFKO-GMEIN, " Base unit of measure

ARBPL TYPE CRHD-ARBPL, " Work Center

END OF T_MHEAD.

TYPES:BEGIN OF T_MITEM,

PHANTA TYPE RESB-MATNR, " Phantom material

MATNR TYPE RESB-MATNR, " Component material

MAKTX TYPE MAKT-MAKTX, " Component material description

BDMNG TYPE RESB-BDMNG, " Component mat cumilative quantity

MEINS TYPE RESB-MEINS, " Unit for the quantity

CHECK1, " Selection for the user

END OF T_MITEM.

TYPES:BEGIN OF T_AFKOS,

AUFNR TYPE AFKO-AUFNR, " Order no. for mixing recipe

AUFPL TYPE AFKO-AUFPL, " Operation no for mixing recipe

END OF T_AFKOS.

TYPES:BEGIN OF T_AFVCS,

AUFPL TYPE AFVC-AUFPL, " Routing no. of oper's in the order

PLNFL TYPE AFVC-PLNFL, " Sequence

END OF T_AFVCS.

TYPES:BEGIN OF T_MTOP,

PLNFL TYPE AFVC-PLNFL, " Sequence

VORNR TYPE AFVC-VORNR, " Operation/Activity Number

AUFNR TYPE AFKO-AUFNR, " Production order no

MATNR TYPE RESB-MATNR, " Phantom Material

END OF T_MTOP.

TYPES:BEGIN OF T_RESBX,

MATNR TYPE RESB-MATNR, " Component material

BDMNG TYPE RESB-BDMNG, " Component mat quantity

AUFNR TYPE RESB-AUFNR, " Production order no

AUFST TYPE RESB-AUFST, " Order level

AUFWG TYPE RESB-AUFWG, " Order path

END OF T_RESBX.

************************************************************************

  • I N T E R N A L T A B L E S *

************************************************************************

DATA:I_AFKO TYPE STANDARD TABLE OF T_AFKO,

W_AFKO LIKE LINE OF I_AFKO.

DATA:I_CRHD TYPE STANDARD TABLE OF T_CRHD,

W_CRHD LIKE LINE OF I_CRHD.

DATA:I_AFVC TYPE STANDARD TABLE OF T_AFVC,

W_AFVC LIKE LINE OF I_AFVC.

*DATA:I_AFVC1 TYPE STANDARD TABLE OF T_AFVC1,

  • W_AFVC1 LIKE LINE OF I_AFVC1.

DATA:I_RESB TYPE STANDARD TABLE OF T_RESB,

W_RESB LIKE LINE OF I_RESB.

DATA:I_RESBS TYPE STANDARD TABLE OF T_RESBS WITH HEADER LINE,

W_RESBS LIKE LINE OF I_RESBS.

DATA:I_MAKT TYPE STANDARD TABLE OF MAKT,

W_MAKT LIKE LINE OF I_MAKT,

I_MAKT1 TYPE STANDARD TABLE OF MAKT,

W_MAKT1 LIKE LINE OF I_MAKT1.

DATA:I_JEST TYPE STANDARD TABLE OF JEST,

W_JEST LIKE LINE OF I_JEST,

I_JEST1 TYPE STANDARD TABLE OF JEST,

W_JEST1 LIKE LINE OF I_JEST1,

I_JEST11 TYPE STANDARD TABLE OF JEST,

W_JEST11 LIKE LINE OF I_JEST11.

DATA:I_AUFK TYPE STANDARD TABLE OF T_AUFK,

W_AUFK LIKE LINE OF I_AUFK.

DATA:I_MHEAD TYPE STANDARD TABLE OF T_MHEAD,

W_MHEAD LIKE LINE OF I_MHEAD.

DATA:I_MITEM TYPE STANDARD TABLE OF T_MITEM,

W_MITEM LIKE LINE OF I_MITEM.

DATA:I_AFVCS TYPE STANDARD TABLE OF T_AFVCS,

W_AFVCS LIKE LINE OF I_AFVCS,

I_SHEAD TYPE STANDARD TABLE OF T_AFVCS,

W_SHEAD LIKE LINE OF I_SHEAD.

DATA:I_MTOP TYPE STANDARD TABLE OF T_MTOP WITH HEADER LINE,

W_MTOP LIKE LINE OF I_MTOP.

DATA:I_RESBX TYPE STANDARD TABLE OF T_RESBX,

W_RESBX LIKE LINE OF I_RESBX.

****FOR PRODUCTION ORDER SELECTION SCREEN*****************************

DATA:I_HHEADER TYPE STANDARD TABLE OF T_HHEADER,

W_HHEADER LIKE LINE OF I_HHEADER,

I_HHEADER1 TYPE STANDARD TABLE OF T_HHEADER,

W_HHEADER1 LIKE LINE OF I_HHEADER1.

DATA:I_HITEM TYPE STANDARD TABLE OF T_HITEM,

W_HITEM LIKE LINE OF I_HITEM,

I_HITEM1 TYPE STANDARD TABLE OF T_HITEM,

W_HITEM1 LIKE LINE OF I_HITEM1.

*****************CATALOG FOR MIXING REPORT****************************

DATA:I_FLDCATALOG TYPE SLIS_T_FIELDCAT_ALV,

W_FLDCATALOG LIKE LINE OF I_FLDCATALOG.

DATA:I_SFLDCATALOG TYPE SLIS_T_FIELDCAT_ALV,

W_SFLDCATALOG LIKE LINE OF I_SFLDCATALOG.

****FOR GETTING EVENTS INTO INTERNAL TABLE****************************

DATA: I_EVENTS TYPE SLIS_T_EVENT,

W_EVENTS LIKE LINE OF I_EVENTS.

************************************************************************

  • D A T A *

************************************************************************

DATA:LINES TYPE I,

CHECK(1),

CHECK1(1),

W_AMOUNT TYPE GAMNG VALUE 0,

SYS_DATE TYPE SY-DATUM.

**********************ALV data declarations***************************

DATA: I_FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV,

W_FIELDCATALOG LIKE LINE OF I_FIELDCATALOG,

GD_LAYOUT TYPE SLIS_LAYOUT_ALV,

GD_REPID LIKE SY-REPID VALUE SY-REPID,

W_KEYINFO TYPE SLIS_KEYINFO_ALV,

WA_SORT TYPE SLIS_SORTINFO_ALV,

IT_SORT TYPE SLIS_T_SORTINFO_ALV,

M_LAYOUT TYPE SLIS_LAYOUT_ALV,

M_KEYINFO TYPE SLIS_KEYINFO_ALV,

P_SELFIELD TYPE SLIS_SELFIELD,

W_PRINT TYPE SLIS_PRINT_ALV1.

************************************************************************

  • S E L E C T - O P T I O N S / P A R A M E T E R S *

************************************************************************

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

PARAMETERS:

P_WERKS TYPE AUFK-WERKS OBLIGATORY MEMORY ID WRK,

"PLANT

P_AUART TYPE AUFK-AUART OBLIGATORY MEMORY ID AAT. "ORDER TYPE

SELECT-OPTIONS: S_PLNBEZ FOR AFKO-PLNBEZ. "material

PARAMETERS:

P_ARBPL TYPE CRHD-ARBPL OBLIGATORY MATCHCODE OBJECT ZSEARCH_HELP MEMORY

ID AGR.

"WORK CENTER

SELECT-OPTIONS:

S_GSTRP FOR AFKO-GSTRP OBLIGATORY.

"ORDER BASIC START DATE

PARAMETERS:P_MATNR TYPE RESB-MATNR. "Phantom material

SELECTION-SCREEN END OF BLOCK B1.

************************************************************************

  • I N I T I A L I Z A T I O N *

************************************************************************

INITIALIZATION.

SYS_DATE = SY-DATUM.

****BUILDING FIELD CATALOG.

PERFORM BUILD_FIELDCATALOG.

****BUILDING LAYOUT FOR THE HIERSEQ LIST(PRODUCTION ORDERS SELECTION)

PERFORM BUILD_LAYOUT.

****GETTING EVENTS FOR THE HIERSEQ LIST(PRODUCTION ORDERS SELECTION)

PERFORM GET_EVENTS.

************************************************************************

  • A T S E L E C T I O N - S C R E E N *

************************************************************************

******VALIDATING BASIC START DATE

AT SELECTION-SCREEN.

IF S_GSTRP-LOW > SYS_DATE.

MESSAGE E000(ZMR).

ENDIF.

************************************************************************

  • S T A R T - O F - S E L E C T I O N *

************************************************************************

START-OF-SELECTION.

****GETTING DATA INTO INTERNAL TABLE.

PERFORM GET_DATA.

****SORTING THE REQUIRED DATA

PERFORM GET_VALUES.

************************************************************************

  • E N D - O F - S E L E C T I O N *

************************************************************************

END-OF-SELECTION.

****TO DISPLAY THE LIST

PERFORM DISPLAY_ALV_REPORT.

************************************************************************

  • F O R M S *

************************************************************************

&----


*& Form BUILD_FIELDCATALOG

&----


  • BUILDING FIELD CATALOG.

----


FORM BUILD_FIELDCATALOG.

CLEAR W_FIELDCATALOG .

W_FIELDCATALOG-COL_POS = '1'.

W_FIELDCATALOG-FIELDNAME = 'MATNR'.

W_FIELDCATALOG-TABNAME = 'I_HHEADER'.

W_FIELDCATALOG-SELTEXT_M = 'Pha.Mat.No.'.

W_FIELDCATALOG-OUTPUTLEN = '28'.

APPEND W_FIELDCATALOG TO I_FIELDCATALOG.

CLEAR W_FIELDCATALOG .

W_FIELDCATALOG-COL_POS = '2'.

W_FIELDCATALOG-FIELDNAME = 'MAKTX'.

W_FIELDCATALOG-TABNAME = 'I_HHEADER'.

W_FIELDCATALOG-SELTEXT_L = 'Pha.Mat.Desc.'.

W_FIELDCATALOG-OUTPUTLEN = '40'.

APPEND W_FIELDCATALOG TO I_FIELDCATALOG.

CLEAR W_FIELDCATALOG .

W_FIELDCATALOG-COL_POS = '3'.

W_FIELDCATALOG-FIELDNAME = 'V_QTY'.

W_FIELDCATALOG-TABNAME = 'I_HHEADER'.

W_FIELDCATALOG-OUTPUTLEN = '25'.

W_FIELDCATALOG-SELTEXT_M = 'Total.Mix.Qty.'.

APPEND W_FIELDCATALOG TO I_FIELDCATALOG.

CLEAR W_FIELDCATALOG .

W_FIELDCATALOG-COL_POS = '4'.

W_FIELDCATALOG-FIELDNAME = 'GMEIN'.

W_FIELDCATALOG-TABNAME = 'I_HHEADER'.

W_FIELDCATALOG-OUTPUTLEN = '5'.

W_FIELDCATALOG-SELTEXT_M = 'Unit'.

APPEND W_FIELDCATALOG TO I_FIELDCATALOG.

CLEAR W_FIELDCATALOG .

W_FIELDCATALOG-COL_POS = '1'.

W_FIELDCATALOG-SELTEXT_S = 'Select'.

W_FIELDCATALOG-FIELDNAME = 'CHECK'.

W_FIELDCATALOG-TABNAME = 'I_HITEM'.

W_FIELDCATALOG-EDIT = 'X'.

W_FIELDCATALOG-CHECKBOX = 'X'.

W_FIELDCATALOG-INPUT = 'X'.

W_FIELDCATALOG-OUTPUTLEN = '6'.

APPEND W_FIELDCATALOG TO I_FIELDCATALOG.

CLEAR W_FIELDCATALOG .

W_FIELDCATALOG-COL_POS = '2'.

W_FIELDCATALOG-FIELDNAME = 'AUFNR'.

W_FIELDCATALOG-TABNAME = 'I_HITEM'.

W_FIELDCATALOG-SELTEXT_S = 'Order'.

W_FIELDCATALOG-OUTPUTLEN = '12'.

APPEND W_FIELDCATALOG TO I_FIELDCATALOG.

*

  • CLEAR W_FIELDCATALOG.

  • W_FIELDCATALOG-COL_POS = '3'.

  • W_FIELDCATALOG-SELTEXT_M = 'PO.Qty.'(007).

  • W_FIELDCATALOG-FIELDNAME = 'GAMNG'.

  • W_FIELDCATALOG-OUTPUTLEN = '16'.

  • W_FIELDCATALOG-TABNAME = 'I_HITEM'.

  • APPEND W_FIELDCATALOG TO I_FIELDCATALOG.

CLEAR W_FIELDCATALOG.

W_FIELDCATALOG-COL_POS = '3'.

W_FIELDCATALOG-SELTEXT_M = 'Mix.Qty.'(012).

W_FIELDCATALOG-FIELDNAME = 'BDMNG'.

W_FIELDCATALOG-OUTPUTLEN = '17'.

W_FIELDCATALOG-TABNAME = 'I_HITEM'.

APPEND W_FIELDCATALOG TO I_FIELDCATALOG.

CLEAR W_FIELDCATALOG.

W_FIELDCATALOG-COL_POS = '4'.

W_FIELDCATALOG-SELTEXT_S = 'Unit'.

W_FIELDCATALOG-FIELDNAME = 'GMEIN'.

W_FIELDCATALOG-OUTPUTLEN = '4'.

W_FIELDCATALOG-TABNAME = 'I_HITEM'.

APPEND W_FIELDCATALOG TO I_FIELDCATALOG.

CLEAR W_FIELDCATALOG.

W_FIELDCATALOG-COL_POS = '5'.

W_FIELDCATALOG-SELTEXT_M = 'Ord.Mat.'(008).

W_FIELDCATALOG-FIELDNAME = 'PLNBEZ'.

W_FIELDCATALOG-OUTPUTLEN = '18'.

W_FIELDCATALOG-TABNAME = 'I_HITEM'.

APPEND W_FIELDCATALOG TO I_FIELDCATALOG.

CLEAR W_FIELDCATALOG.

W_FIELDCATALOG-COL_POS = '6'.

W_FIELDCATALOG-SELTEXT_L = 'Ord.Mat.Desc.'(009).

W_FIELDCATALOG-FIELDNAME = 'MAKTX'.

W_FIELDCATALOG-OUTPUTLEN = '40'.

W_FIELDCATALOG-TABNAME = 'I_HITEM'.

APPEND W_FIELDCATALOG TO I_FIELDCATALOG.

CLEAR W_FIELDCATALOG .

W_FIELDCATALOG-COL_POS = '7'.

W_FIELDCATALOG-FIELDNAME = 'GSTRP'.

W_FIELDCATALOG-TABNAME = 'I_HITEM'.

W_FIELDCATALOG-SELTEXT_S = 'Basic St.'(010).

W_FIELDCATALOG-OUTPUTLEN = '10'.

APPEND W_FIELDCATALOG TO I_FIELDCATALOG.

CLEAR W_FIELDCATALOG .

W_FIELDCATALOG-COL_POS = '8'.

W_FIELDCATALOG-FIELDNAME = 'GLTRP'.

W_FIELDCATALOG-TABNAME = 'I_HITEM'.

W_FIELDCATALOG-OUTPUTLEN = '10'.

W_FIELDCATALOG-SELTEXT_S = 'Basic Fin.'(011).

APPEND W_FIELDCATALOG TO I_FIELDCATALOG.

ENDFORM. "BUILD_FIELDCATALOG

&----


*& Form build_layout

&----


  • BUILDING LAYOUT FOR THE HIERSEQ LIST(PRODUCTION ORDERS SELECTION)

----


FORM BUILD_LAYOUT.

GD_LAYOUT-ZEBRA = 'X'.

GD_LAYOUT-HEADER_TEXT = 'PO DETAILS'.

  • GD_LAYOUT-BOX_FIELDNAME = 'CHECK'.

W_KEYINFO-HEADER01 = 'MATNR'.

W_KEYINFO-ITEM01 = 'MATNR'.

ENDFORM. " BUILD_LAYOUT

&----


*& Form get_events

&----


****GETTING EVENTS FOR THE HIERSEQ LIST(PRODUCTION ORDERS SELECTION)

----


FORM GET_EVENTS.

CLEAR : W_EVENTS, I_EVENTS[].

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = I_EVENTS.

READ TABLE I_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE

INTO W_EVENTS.

IF SY-SUBRC EQ 0.

MOVE 'TOP_OF_PAGE' TO W_EVENTS-FORM.

MODIFY I_EVENTS FROM W_EVENTS INDEX SY-TABIX.

ENDIF.

READ TABLE I_EVENTS WITH KEY NAME = SLIS_EV_USER_COMMAND

INTO W_EVENTS.

IF SY-SUBRC EQ 0.

MOVE 'SUB_USER_COMMAND' TO W_EVENTS-FORM.

MODIFY I_EVENTS FROM W_EVENTS INDEX SY-TABIX.

ENDIF.

READ TABLE I_EVENTS WITH KEY NAME = SLIS_EV_PF_STATUS_SET

INTO W_EVENTS.

IF SY-SUBRC EQ 0.

MOVE 'PF_STATUS_SET' TO W_EVENTS-FORM.

MODIFY I_EVENTS FROM W_EVENTS INDEX SY-TABIX.

ENDIF.

ENDFORM. "get_events

&----


*& Form data_retrieval

&----


****GETTING DATA INTO INTERNAL TABLE.

----


FORM GET_DATA.

IF S_PLNBEZ NE ' '.

SELECT AUFNR

GLTRP

GSTRP

GAMNG

GMEIN

PLNBEZ

AUFPL

FROM AFKO INTO TABLE I_AFKO

WHERE PLNBEZ IN S_PLNBEZ

AND GSTRP IN S_GSTRP.

SORT I_AFKO BY AUFNR.

ELSE.

SELECT AUFNR

GLTRP

GSTRP

GAMNG

GMEIN

PLNBEZ

AUFPL

FROM AFKO INTO TABLE I_AFKO

WHERE GSTRP IN S_GSTRP.

SORT I_AFKO BY AUFNR.

ENDIF.

IF NOT I_AFKO[] IS INITIAL.

SELECT AUFNR

AUART

OBJID

FROM AUFK INTO TABLE I_AUFK

FOR ALL ENTRIES IN I_AFKO

WHERE AUFNR = I_AFKO-AUFNR

AND AUART = P_AUART

AND WERKS = P_WERKS.

SORT I_AUFK BY AUFNR.

ENDIF.

SELECT OBJID ARBPL

FROM CRHD INTO TABLE I_CRHD

WHERE ARBPL = P_ARBPL.

IF NOT I_CRHD[] IS INITIAL.

SELECT AUFPL

PLNFL

VORNR

ARBID

OBJNR

FROM AFVC INTO TABLE I_AFVC

FOR ALL ENTRIES IN I_CRHD

WHERE ARBID = I_CRHD-OBJID.

SORT I_AFVC BY AUFPL ARBID.

ENDIF.

IF NOT I_AFKO[] IS INITIAL.

LOOP AT I_AFKO INTO W_AFKO.

READ TABLE I_AFVC INTO W_AFVC

WITH KEY AUFPL = W_AFKO-AUFPL BINARY SEARCH.

CHECK SY-SUBRC NE 0.

DELETE I_AFKO.

ENDLOOP.

SORT I_AFKO BY AUFNR.

IF NOT I_AFVC[] IS INITIAL.

LOOP AT I_AFVC INTO W_AFVC.

READ TABLE I_AFKO INTO W_AFKO

WITH KEY AUFPL = W_AFVC-AUFPL BINARY SEARCH.

CHECK SY-SUBRC NE 0.

DELETE I_AFVC.

ENDLOOP.

ENDIF.

ENDIF.

************************************************************************

  • Filtering OBJNR number based on released status and not *

  • confirmed status of the production order *

************************************************************************

IF NOT I_AFVC[] IS INITIAL.

SELECT * FROM JEST INTO TABLE I_JEST

FOR ALL ENTRIES IN I_AFVC

WHERE OBJNR = I_AFVC-OBJNR.

SORT I_JEST BY OBJNR.

ENDIF.

I_JEST11 = I_JEST.

LOOP AT I_JEST INTO W_JEST.

LOOP AT I_JEST11 INTO W_JEST11 WHERE OBJNR = W_JEST-OBJNR.

IF W_JEST11-STAT = 'I0009'.

DELETE I_JEST.

ENDIF.

ENDLOOP.

ENDLOOP.

CLEAR W_JEST1.

LOOP AT I_JEST INTO W_JEST.

IF W_JEST-STAT = 'I0002' AND W_JEST-INACT = ' '.

W_JEST1 = W_JEST.

APPEND W_JEST1 TO I_JEST1.

CLEAR W_JEST1.

ENDIF.

ENDLOOP.

SORT I_JEST1 BY OBJNR.

***********************************************************************

IF NOT I_AFKO[] IS INITIAL.

IF P_MATNR NE ' '.

SELECT MATNR

BDMNG

MEINS

AUFNR

DUMPS

FROM RESB INTO CORRESPONDING FIELDS OF TABLE I_RESB

FOR ALL ENTRIES IN I_AFKO

WHERE AUFNR = I_AFKO-AUFNR

AND MATNR = P_MATNR

AND DUMPS = 'X'.

SORT I_RESB BY AUFNR MATNR.

ELSE.

SELECT MATNR

BDMNG

MEINS

AUFNR

DUMPS

FROM RESB INTO CORRESPONDING FIELDS OF TABLE I_RESB

FOR ALL ENTRIES IN I_AFKO

WHERE AUFNR = I_AFKO-AUFNR

AND DUMPS = 'X'.

SORT I_RESB BY AUFNR MATNR.

ENDIF.

ENDIF.

IF NOT I_AFKO[] IS INITIAL.

SELECT * FROM MAKT INTO TABLE I_MAKT1

FOR ALL ENTRIES IN I_AFKO

WHERE MATNR = I_AFKO-PLNBEZ

AND SPRAS = SY-LANGU.

SORT I_MAKT1 BY MATNR.

ENDIF.

IF NOT I_RESB[] IS INITIAL.

SELECT * FROM MAKT INTO TABLE I_MAKT

FOR ALL ENTRIES IN I_RESB

WHERE MATNR = I_RESB-MATNR

AND SPRAS = SY-LANGU.

SORT I_MAKT BY MATNR.

ENDIF.

ENDFORM. "GET_DATA

&----


*& Form GET_VALUES

&----


****TO DISPLAY THE LIST

----


FORM GET_VALUES.

***BEGIN OF PHANTOM MATERIAL HEADER INTERNAL TABLE***

CLEAR W_AUFK.

CLEAR W_RESB.

LOOP AT I_RESB INTO W_RESB.

READ TABLE I_AFKO INTO W_AFKO

WITH KEY AUFNR = W_RESB-AUFNR BINARY SEARCH.

CHECK SY-SUBRC = 0.

READ TABLE I_AFVC INTO W_AFVC

WITH KEY AUFPL = W_AFKO-AUFPL BINARY SEARCH.

CHECK SY-SUBRC = 0.

READ TABLE I_JEST1 INTO W_JEST1

WITH KEY OBJNR = W_AFVC-OBJNR BINARY SEARCH.

CHECK SY-SUBRC = 0.

W_HHEADER-MATNR = W_RESB-MATNR.

READ TABLE I_MAKT INTO W_MAKT

WITH KEY MATNR = W_RESB-MATNR BINARY SEARCH.

CHECK SY-SUBRC = 0.

W_HHEADER-MAKTX = W_MAKT-MAKTX.

W_HHEADER-GMEIN = W_RESB-MEINS.

APPEND W_HHEADER TO I_HHEADER.

MODIFY I_HHEADER FROM W_HHEADER INDEX SY-TABIX.

CLEAR W_HHEADER.

CLEAR W_RESB.

SORT I_HHEADER BY MATNR.

DELETE ADJACENT DUPLICATES FROM I_HHEADER.

ENDLOOP.

****END OF PHANTOM MATERIAL HEADER INTERNAL TABLE***

**BEGIN OF PHANTOM MATERIAL ITEM DETAILS***************

IF NOT I_HHEADER[] IS INITIAL.

LOOP AT I_HHEADER INTO W_HHEADER.

LOOP AT I_RESB INTO W_RESB WHERE MATNR = W_HHEADER-MATNR.

READ TABLE I_AFKO INTO W_AFKO

WITH KEY AUFNR = W_RESB-AUFNR BINARY SEARCH.

CHECK SY-SUBRC = 0.

READ TABLE I_AFVC INTO W_AFVC

WITH KEY AUFPL = W_AFKO-AUFPL BINARY SEARCH.

CHECK SY-SUBRC = 0.

READ TABLE I_JEST1 INTO W_JEST1

WITH KEY OBJNR = W_AFVC-OBJNR BINARY SEARCH.

CHECK SY-SUBRC = 0.

W_HITEM-CHECK = CHECK.

  • W_HITEM-CHECK = '0'.

W_HITEM-MATNR = W_HHEADER-MATNR.

W_HITEM-AUFNR = W_AFKO-AUFNR.

W_HITEM-PLNBEZ = W_AFKO-PLNBEZ.

READ TABLE I_MAKT1 INTO W_MAKT1

WITH KEY MATNR = W_AFKO-PLNBEZ BINARY SEARCH.

W_HITEM-MAKTX = W_MAKT1-MAKTX.

W_HITEM-GLTRP = W_AFKO-GLTRP.

W_HITEM-GSTRP = W_AFKO-GSTRP.

  • W_HITEM-GAMNG = W_AFKO-GAMNG.

W_HITEM-BDMNG = W_RESB-BDMNG.

W_HITEM-GMEIN = W_RESB-MEINS.

APPEND W_HITEM TO I_HITEM.

SORT I_HITEM BY AUFNR.

CLEAR W_HITEM.

ENDLOOP.

ENDLOOP.

ENDIF.

***********END OF PHANTOM MATERIAL ITEM DETAILS.*********************

ENDFORM. "get_item_DETAILS

&----


*& Form TOP_OF_PAGE

&----


  • TO DISPLAY TOP_OF_PAGE FOR PRODUCTION ORDERS SELECTION SCREEN

----


FORM TOP_OF_PAGE.

FORMAT COLOR 5 ON .

WRITE:/ 'PRODUCTION ORDERS SELECTION'.

ENDFORM. " alv_top_of_page

&----


*& Form user_command

&----


  • WRITING CODE FOR THE PUSH BUTTONS CUMMILATIVE QTY AND EXECUTE .

----


  • -->P_UCOMM text

  • -->P_SELFIELD text

----


FORM DISPLAY_ALV_REPORT.

SORT I_HHEADER BY MATNR.

SORT I_HITEM BY MATNR AUFNR.

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

I_CALLBACK_PROGRAM = GD_REPID

  • I_CALLBACK_PF_STATUS_SET = 'PF_STATUS_SET'

  • I_CALLBACK_USER_COMMAND = 'SUB_USER_COMMAND'

IS_LAYOUT = GD_LAYOUT

IT_FIELDCAT = I_FIELDCATALOG

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE = 'X'

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = I_EVENTS[]

  • IT_EVENT_EXIT =

I_TABNAME_HEADER = 'I_HHEADER'

I_TABNAME_ITEM = 'I_HITEM'

  • i_structure_name_header =

  • i_structure_name_item =

IS_KEYINFO = W_KEYINFO

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB_HEADER = I_HHEADER

T_OUTTAB_ITEM = I_HITEM

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

.

ENDFORM. "display_alv_report

&----


*& Form PF_STATUS_SET

&----


  • SET PF-STATUS to place push buttons on the appplication toolbar

----


  • -->EXTAB text

----


FORM PF_STATUS_SET USING EXTAB TYPE SLIS_T_EXTAB.

SET PF-STATUS 'STANDARD1' EXCLUDING EXTAB.

ENDFORM. "PF_STATUS_SET

&----


*& Form SUB_USEMR_COMMAND

&----


  • text

----


  • -->P_UCOMM text

  • -->P_SELFIELD text

----


FORM SUB_USER_COMMAND USING P_UCOMM LIKE SY-UCOMM

P_SELFIELD TYPE SLIS_SELFIELD.

CASE P_UCOMM.

WHEN 'CUMM'.

******for finding the Cumulative quantity of production orders

PERFORM SUM.

WHEN 'EXEC'.

******for finding the Cumulative quantity of production orders

PERFORM SUM.

CLEAR W_HITEM.

CLEAR W_HHEADER.

REFRESH I_MHEAD.

I_HITEM1 = I_HITEM.

LOOP AT I_HITEM1 INTO W_HITEM1 WHERE CHECK NE 'X'.

DELETE I_HITEM1.

ENDLOOP.

SORT I_HITEM1 BY MATNR.

****populating data into I_MHEAD

IF NOT I_HITEM1[] IS INITIAL.

CLEAR W_MHEAD.

REFRESH I_MHEAD.

LOOP AT I_HITEM1 INTO W_HITEM1.

READ TABLE I_HHEADER INTO W_HHEADER

WITH KEY MATNR = W_HITEM1-MATNR BINARY SEARCH.

CHECK SY-SUBRC = 0.

W_MHEAD-PHANTA = W_HHEADER-MATNR.

W_MHEAD-MAKTX = W_HHEADER-MAKTX.

W_MHEAD-V_QTY = W_HHEADER-V_QTY.

W_MHEAD-GMEIN = W_HHEADER-GMEIN.

W_MHEAD-ARBPL = P_ARBPL.

APPEND W_MHEAD TO I_MHEAD.

CLEAR W_MHEAD.

ENDLOOP.

DELETE ADJACENT DUPLICATES FROM I_MHEAD.

SORT I_MHEAD BY PHANTA.

ENDIF.

DESCRIBE TABLE I_MHEAD LINES LINES.

IF LINES > 1.

MESSAGE E001(ZMR).

ENDIF.

IF NOT I_MHEAD[] IS INITIAL.

REFRESH I_RESB.

CLEAR W_RESB.

REFRESH I_MAKT.

CLEAR I_MAKT.

IF NOT I_MHEAD[] IS INITIAL.

SELECT MATNR

BDMNG

AUFNR

AUFST

AUFWG

FROM RESB INTO CORRESPONDING FIELDS OF TABLE I_RESBX

FOR ALL ENTRIES IN I_MHEAD

WHERE MATNR = I_MHEAD-PHANTA

AND DUMPS = 'X'.

ENDIF.

SORT I_RESBX BY AUFNR.

ENDIF.

IF NOT I_RESBX[] IS INITIAL.

LOOP AT I_RESBX INTO W_RESBX.

READ TABLE I_HITEM1 INTO W_HITEM1

WITH KEY AUFNR = W_RESBX-AUFNR BINARY SEARCH.

CHECK SY-SUBRC NE 0.

DELETE I_RESBX.

ENDLOOP.

SORT I_RESBX BY AUFNR.

ENDIF.

IF NOT I_RESBX[] IS INITIAL.

SELECT MATNR

BDMNG

MEINS

AUFNR

FROM RESB INTO CORRESPONDING FIELDS OF TABLE I_RESB

FOR ALL ENTRIES IN I_RESBX

WHERE AUFNR = I_RESBX-AUFNR

AND AUFST = I_RESBX-AUFST

AND AUFWG = I_RESBX-AUFWG

AND DUMPS = ' '.

ENDIF.

IF NOT I_RESB[] IS INITIAL.

SELECT * FROM MAKT INTO TABLE I_MAKT

FOR ALL ENTRIES IN I_RESB

WHERE MATNR = I_RESB-MATNR

AND SPRAS = SY-LANGU.

SORT I_MAKT BY MATNR.

ENDIF.

CLEAR W_MITEM.

REFRESH I_MITEM.

****POPULATING DATA INTO I_MITEM.

LOOP AT I_MHEAD INTO W_MHEAD.

READ TABLE I_HITEM1 INTO W_HITEM1

WITH KEY MATNR = W_MHEAD-PHANTA BINARY SEARCH.

CHECK SY-SUBRC = 0.

LOOP AT I_RESBX INTO W_RESBX

WHERE MATNR = W_HITEM1-MATNR.

CHECK SY-SUBRC = 0.

LOOP AT I_RESB INTO W_RESB

WHERE AUFNR = W_RESBX-AUFNR.

CHECK SY-SUBRC = 0.

W_MITEM-PHANTA = W_MHEAD-PHANTA.

W_MITEM-MATNR = W_RESB-MATNR.

READ TABLE I_MAKT INTO W_MAKT

WITH KEY MATNR = W_RESB-MATNR BINARY SEARCH.

W_MITEM-MAKTX = W_MAKT-MAKTX.

W_MITEM-BDMNG = W_RESB-BDMNG.

W_MITEM-MEINS = W_RESB-MEINS.

COLLECT W_MITEM INTO I_MITEM.

CLEAR W_MITEM.

ENDLOOP.

ENDLOOP.

ENDLOOP.

*****BUILDING FIELD CATALOG FOR MIXING REPORT

PERFORM BUILD_MIXING_FLDCATALOG.

*****GETTING EVENTS FOR THE MIXING REPORT

PERFORM GET_EVENTS_MIXING.

*****BUILDING LAYOUT FOR MIXING REPORT

PERFORM BUILD_MIXING_LAYOUT.

*****TO DISPLAY MIXING REPORT

PERFORM DISPLAY_MIXNG_REPORT.

ENDCASE.

ENDFORM. "USER_COMMAND

&----


*& Form BUILD_MIXING_FLDCATALOG

&----


****TEXT- BUILDING FIELD CATALOG FOR MIXING REPORT

----


FORM BUILD_MIXING_FLDCATALOG.

CLEAR W_FLDCATALOG .

W_FLDCATALOG-COL_POS = '1'.

W_FLDCATALOG-FIELDNAME = 'PHANTA'.

W_FLDCATALOG-TABNAME = 'I_MHEAD'.

W_FLDCATALOG-SELTEXT_M = 'Pha.Mat.No.'.

W_FLDCATALOG-OUTPUTLEN = '18'.

APPEND W_FLDCATALOG TO I_FLDCATALOG.

CLEAR W_FLDCATALOG .

W_FLDCATALOG-COL_POS = '2'.

W_FLDCATALOG-FIELDNAME = 'MAKTX'.

W_FLDCATALOG-TABNAME = 'I_MHEAD'.

W_FLDCATALOG-SELTEXT_L = 'Pha.Mat.Desc.'.

W_FLDCATALOG-OUTPUTLEN = '40'.

APPEND W_FLDCATALOG TO I_FLDCATALOG.

CLEAR W_FLDCATALOG .

W_FLDCATALOG-COL_POS = '3'.

W_FLDCATALOG-FIELDNAME = 'V_QTY'.

W_FLDCATALOG-TABNAME = 'I_MHEAD'.

W_FLDCATALOG-SELTEXT_M = 'Total Ord.Qty'.

W_FLDCATALOG-OUTPUTLEN = '16'.

APPEND W_FLDCATALOG TO I_FLDCATALOG.

CLEAR W_FLDCATALOG .

W_FLDCATALOG-COL_POS = '4'.

W_FLDCATALOG-FIELDNAME = 'GMEIN'.

W_FLDCATALOG-TABNAME = 'I_MHEAD'.

W_FLDCATALOG-SELTEXT_S = 'Unit'.

W_FLDCATALOG-OUTPUTLEN = '4'.

APPEND W_FLDCATALOG TO I_FLDCATALOG.

CLEAR W_FLDCATALOG .

W_FLDCATALOG-COL_POS = '5'.

W_FLDCATALOG-FIELDNAME = 'ARBPL'.

W_FLDCATALOG-TABNAME = 'I_MHEAD'.

W_FLDCATALOG-SELTEXT_S = 'Wk.Ctr'.

W_FLDCATALOG-OUTPUTLEN = '6'.

APPEND W_FLDCATALOG TO I_FLDCATALOG.

CLEAR W_FLDCATALOG .

W_FLDCATALOG-COL_POS = '1'.

W_FLDCATALOG-FIELDNAME = 'MATNR'.

W_FLDCATALOG-TABNAME = 'I_MITEM'.

W_FLDCATALOG-SELTEXT_M = 'Comp.Mat.No.'.

W_FLDCATALOG-EMPHASIZE = 'C210'.

W_FLDCATALOG-OUTPUTLEN = '18'.

APPEND W_FLDCATALOG TO I_FLDCATALOG.

CLEAR W_FLDCATALOG .

W_FLDCATALOG-COL_POS = '2'.

W_FLDCATALOG-FIELDNAME = 'MAKTX'.

W_FLDCATALOG-TABNAME = 'I_MITEM'.

W_FLDCATALOG-SELTEXT_L = 'Comp.Mat.Desc.'.

W_FLDCATALOG-EMPHASIZE = 'C210'.

W_FLDCATALOG-OUTPUTLEN = '40'.

APPEND W_FLDCATALOG TO I_FLDCATALOG.

CLEAR W_FLDCATALOG .

W_FLDCATALOG-COL_POS = '3'.

W_FLDCATALOG-FIELDNAME = 'BDMNG'.

W_FLDCATALOG-TABNAME = 'I_MITEM'.

W_FLDCATALOG-SELTEXT_M = 'Req.Qty.'.

W_FLDCATALOG-EMPHASIZE = 'C210'.

W_FLDCATALOG-OUTPUTLEN = '16'.

APPEND W_FLDCATALOG TO I_FLDCATALOG.

CLEAR W_FLDCATALOG .

W_FLDCATALOG-COL_POS = '4'.

W_FLDCATALOG-FIELDNAME = 'MEINS'.

W_FLDCATALOG-TABNAME = 'I_MITEM'.

W_FLDCATALOG-SELTEXT_M = 'Unit'.

W_FLDCATALOG-EMPHASIZE = 'C210'.

W_FLDCATALOG-OUTPUTLEN = '4'.

APPEND W_FLDCATALOG TO I_FLDCATALOG.

CLEAR W_FLDCATALOG .

W_FLDCATALOG-COL_POS = '5'.

W_FLDCATALOG-FIELDNAME = 'CHECK1'.

W_FLDCATALOG-TABNAME = 'I_MITEM'.

W_FLDCATALOG-EDIT = 'X'.

W_FLDCATALOG-CHECKBOX = 'X'.

W_FLDCATALOG-SELTEXT_M = 'Check'.

W_FLDCATALOG-EMPHASIZE = 'C210'.

W_FLDCATALOG-OUTPUTLEN = '5'.

APPEND W_FLDCATALOG TO I_FLDCATALOG.

ENDFORM. "BUILD_MIXING_FLDCATALOG

&----


*& Form BUILD_MIXING_LAYOUT

&----


**TEXT - BUILDING LAYOUT FOR MIXING REPORT

----


FORM BUILD_MIXING_LAYOUT.

M_KEYINFO-HEADER01 = 'PHANTA'.

M_KEYINFO-ITEM01 = 'PHANTA'.

ENDFORM. "BUILD_MIXING_LAYOUT

&----


*& Form DISPLAY_MIXNG_REPORT

&----


**TEXT - TO DISPLAY MIXING REPORT

----


FORM DISPLAY_MIXNG_REPORT.

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

I_CALLBACK_PROGRAM = GD_REPID

  • I_CALLBACK_PF_STATUS_SET = 'S_PF_STATUS_SET'

  • I_CALLBACK_USER_COMMAND = 'S_SUB_USER_COMMAND'

IS_LAYOUT = M_LAYOUT

IT_FIELDCAT = I_FLDCATALOG

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = I_EVENTS

  • IT_EVENT_EXIT =

I_TABNAME_HEADER = 'I_MHEAD'

I_TABNAME_ITEM = 'I_MITEM'

  • I_STRUCTURE_NAME_HEADER =

  • I_STRUCTURE_NAME_ITEM =

IS_KEYINFO = M_KEYINFO

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB_HEADER = I_MHEAD

T_OUTTAB_ITEM = I_MITEM

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

.

REFRESH I_FLDCATALOG.

CLEAR M_LAYOUT.

CLEAR M_KEYINFO.

ENDFORM. "DISPLAY_MIXNG_REPORT

&----


*& Form SUM

&----


  • for finding the Cumulative quantity of production orders

----


FORM SUM.

CLEAR W_HITEM.

CLEAR W_HHEADER.

CLEAR W_HHEADER-V_QTY.

LOOP AT I_HHEADER INTO W_HHEADER.

IF W_HHEADER-V_QTY NE ' '.

CLEAR W_HHEADER-V_QTY.

MODIFY I_HHEADER FROM W_HHEADER

INDEX SY-TABIX TRANSPORTING V_QTY.

ENDIF.

ENDLOOP.

DATA:LV_TABIX TYPE SY-TABIX.

LOOP AT I_HITEM INTO W_HITEM.

READ TABLE I_HHEADER INTO W_HHEADER

WITH KEY MATNR = W_HITEM-MATNR BINARY SEARCH.

IF SY-SUBRC = 0.

LV_TABIX = SY-TABIX.

IF W_HITEM-CHECK = 'X'.

W_HHEADER-V_QTY = W_HHEADER-V_QTY + W_HITEM-BDMNG.

MODIFY I_HHEADER FROM W_HHEADER

INDEX LV_TABIX TRANSPORTING V_QTY.

ENDIF.

ENDIF.

ENDLOOP.

ENDFORM. "SUM

&----


*& Form TOP_OF_PAGE

&----


***text - GETTING EVENTS FOR THE MIXING REPORT

----


FORM GET_EVENTS_MIXING.

CLEAR : W_EVENTS, I_EVENTS[].

REFRESH I_EVENTS.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = I_EVENTS.

READ TABLE I_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE

INTO W_EVENTS.

IF SY-SUBRC EQ 0.

MOVE 'TOP_OF_PAGE1' TO W_EVENTS-FORM.

MODIFY I_EVENTS FROM W_EVENTS INDEX SY-TABIX.

ENDIF.

READ TABLE I_EVENTS WITH KEY NAME = SLIS_EV_END_OF_LIST

INTO W_EVENTS.

IF SY-SUBRC EQ 0.

MOVE 'END_OF_LIST1' TO W_EVENTS-FORM.

MODIFY I_EVENTS FROM W_EVENTS INDEX SY-TABIX.

ENDIF.

ENDFORM. "get_events

&----


*& Form TOP_OF_PAGE

&----


  • text - TO DISPLAY THE SEQUENCE DETAILS

----


FORM TOP_OF_PAGE1.

CLEAR W_RESBS.

REFRESH I_RESBS.

IF NOT I_HITEM1[] IS INITIAL.

SELECT MATNR PLNFL VORNR AUFNR FROM RESB

INTO CORRESPONDING FIELDS OF TABLE I_RESBS

FOR ALL ENTRIES IN I_HITEM1

WHERE MATNR = I_HITEM1-MATNR

AND AUFNR = I_HITEM1-AUFNR

AND DUMPS = 'X'.

SORT I_RESBS BY AUFNR.

SELECT AUFNR AUFPL FROM AFKO INTO TABLE I_AFKO1

FOR ALL ENTRIES IN I_HITEM1

WHERE AUFNR = I_HITEM1-AUFNR.

SORT I_AFKO1 BY AUFNR.

ENDIF.

IF NOT I_AFKO1[] IS INITIAL.

SELECT AUFPL PLNFL VORNR ARBID FROM AFVC INTO TABLE I_AFVC1

FOR ALL ENTRIES IN I_AFKO1

WHERE AUFPL = I_AFKO1-AUFPL.

SORT I_AFVC1 BY AUFPL PLNFL.

ENDIF.

CLEAR W_MTOP.

REFRESH I_MTOP.

IF NOT I_HITEM1[] IS INITIAL.

LOOP AT I_HITEM1 INTO W_HITEM1.

READ TABLE I_RESBS INTO W_RESBS

WITH KEY AUFNR = W_HITEM1-AUFNR BINARY SEARCH.

CHECK SY-SUBRC = 0.

READ TABLE I_AFKO1 INTO W_AFKO1

WITH KEY AUFNR = W_HITEM1-AUFNR BINARY SEARCH.

CHECK SY-SUBRC = 0.

LOOP AT I_AFVC1 INTO W_AFVC1 WHERE AUFPL = W_AFKO1-AUFPL

AND PLNFL = W_RESBS-PLNFL.

  • CHECK W_AFVC1-AUFPL = W_AFKO1-AUFPL

  • AND W_AFVC1-PLNFL = W_RESBS-PLNFL.

READ TABLE I_CRHD INTO W_CRHD

WITH KEY OBJID = W_AFVC1-ARBID BINARY SEARCH.

CHECK SY-SUBRC = 0.

W_MTOP-PLNFL = W_RESBS-PLNFL.

W_MTOP-VORNR = W_AFVC1-VORNR.

W_MTOP-AUFNR = W_HITEM1-AUFNR.

APPEND W_MTOP TO I_MTOP.

CLEAR W_MTOP.

ENDLOOP.

ENDLOOP.

SORT I_MTOP BY PLNFL VORNR AUFNR.

ENDIF.

SKIP.

WRITE:/ TEXT-006.

WRITE:/ TEXT-005.

IF I_MTOP[] IS NOT INITIAL.

LOOP AT I_MTOP.

MOVE I_MTOP TO W_MTOP.

AT NEW PLNFL.

FORMAT COLOR 1 ON.

WRITE:/'SEQUENCE:', W_MTOP-PLNFL, 'OPERATION:', W_MTOP-VORNR.

WRITE:/.

FORMAT COLOR 4 ON.

WRITE:'PRODUCTION ORDERS:'.

ENDAT.

FORMAT COLOR 3 ON.

WRITE: W_MTOP-AUFNR.

AT END OF PLNFL.

WRITE:/.

ENDAT.

CLEAR W_MTOP.

ENDLOOP.

WRITE:/ TEXT-005,

/ 'DATE:', SY-DATUM,

/ TEXT-005.

ENDIF.

REFRESH I_HITEM1.

REFRESH I_MTOP.

ENDFORM. "TOP_OF_PAGE

&----


*& Form END_OF_PAGE1

&----


  • text - END OF PAGE TO DISPLAY THE TEXT

----


FORM END_OF_LIST1.

WRITE:/ TEXT-005,

/ TEXT-003,

TEXT-004,

/ TEXT-005.

ENDFORM. "END_OF_PAGE1

Read only

0 Likes
1,310

This is not an ALV, this is a report thats output using write statements.

I need to know what records were selected?

Say I have record 1 with a checkbox. How do I make sure that X will appear in the table where that record is?

Read only

Former Member
0 Likes
1,310

If you are generating the report with the write statement,, see the below code,

ead how many lines are there in the output list.

Then use system field SY-LISEL, from the line select system field,, we can fetch the required field ( check box) into other variable. Do this process in the loop.

CASE sy-ucomm.

WHEN 'CU_QTY'.

DATA:v_check(1).

lines = lines + 5.

DO lines TIMES.

READ LINE sy-index FIELD VALUE check.

v_check = sy-lisel+0(1).

IF v_check = 'X'.

v_aufnr = sy-lisel+2(12).

w_final1-aufnr = v_aufnr.

APPEND w_final1 TO i_final1.

CLEAR w_final.

CLEAR w_final-aufnr.

ENDIF.

ENDDO.

Reward points if useful for you ..

Ramesh mavilla.

Read only

0 Likes
1,310

The problem is that sy-lisel uses that last selected line.

Here, the user will be selecting more than one record in regard to checkboxes.

Read only

Former Member
0 Likes
1,310

Use the command

READ LINE

Read line..this will read the list line by line when put in a Do ...EndDo. and you can read the first char for you checked box.

santhosh