ALV: Need to select/deselect all output rows iwth a Button

Hi All,
I have an ALV grid displaying a few lines of data.
User needs a button in the application toolbar to SELECT/DESELECT all rows displayed in the ALV list.
I am using OO for displaying the layout.
I want to know if there is a method which can SELECT/DESELECT all displayed rows. If there is no method, is there a workaround of achieving same.
Just for your info I dont have a check-box as the first colum of my ALV.
Appreciate your feedback on same.
Thanks and Regards
Rajiv

hi
chk this out
TYPE-POOLS : SLIS.
Tables                                                              *
TABLES:
  VBRK,
  VBRP.
Parameters and select options OR SELECTION SCREEN
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS:
            S_VBELN FOR VBRK-VBELN.
SELECTION-SCREEN END OF BLOCK B1.
Internal Tables                                                     *
work areas
DATA: BEGIN OF IT_VBRP OCCURS 0,
       VBELN LIKE VBRK-VBELN,
       POSNR LIKE VBRP-POSNR,
       UEPOS LIKE VBRP-UEPOS,
       FKIMG LIKE VBRP-FKIMG,
       NETWR LIKE VBRP-NETWR,
       MEINS LIKE VBRP-MEINS.
DATA : END OF IT_VBRP.
Variables                                                           *
DATA : GR_ALVGRID TYPE REF TO CL_GUI_ALV_GRID,
       GC_CUSTOM_CONTROL_NAME TYPE SCRFNAME VALUE 'CC_ALV',
       GR_CCONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
       GT_FIELDCAT TYPE LVC_T_FCAT,
       GS_LAYOUT TYPE LVC_S_LAYO,
       V_FLAG VALUE 'X'.
Start of Program                                                    *
      INITIALIZATION.                                               *
INITIALIZATION.
  S_VBELN-LOW = 1.
  S_VBELN-HIGH = 1000000000.
  S_VBELN-OPTION = 'EQ'.
  S_VBELN-SIGN = 'I'.
  APPEND S_VBELN.
      SELECTION-SCREEN                                              *
AT SELECTION-SCREEN.
  PERFORM VALIDATION.
      START-OF-SELECTION                                            *
START-OF-SELECTION.
  PERFORM GET_DATA.
  CALL SCREEN 0100.
      END-OF-SELECTION                                              *
END-OF-SELECTION.
      TOP-OF-PAGE                                                   *
TOP-OF-PAGE.
      END-OF-PAGE                                                   *
END-OF-PAGE.
      AT USER-COMMAND                                               *
*&      Form  VALIDATION
      text
-->  p1        text
<--  p2        text
FORM VALIDATION .
  SELECT SINGLE VBELN
  FROM VBRK
  INTO VBRK-VBELN
  WHERE VBELN IN S_VBELN.
  IF SY-SUBRC <> 0.
    MESSAGE E000 WITH 'no billing documents found'.
  ENDIF.
ENDFORM.                    " VALIDATION
*&      Form  GET_DATA
      text
-->  p1        text
<--  p2        text
FORM GET_DATA .
  SELECT VBELN
         POSNR
         UEPOS
         FKIMG
         NETWR
         MEINS
  FROM VBRP
  INTO TABLE IT_VBRP
  WHERE VBELN IN S_VBELN.
ENDFORM.                    " GET_DATA
*&      Module  DISPLAY_ALV  OUTPUT
      text
MODULE DISPLAY_ALV OUTPUT.
  IF V_FLAG = 'X'.
    PERFORM DISPLAY_ALV.
    PERFORM PREPARE_FIELD_CATALOG CHANGING GT_FIELDCAT.
    PERFORM PREPARE_LAYOUT CHANGING GS_LAYOUT.
    CALL METHOD GR_ALVGRID->SET_TABLE_FOR_FIRST_DISPLAY
        EXPORTING
     I_BUFFER_ACTIVE               =
     I_BYPASSING_BUFFER            =
     I_CONSISTENCY_CHECK           =
     I_STRUCTURE_NAME              = 'VBRP'
     IS_VARIANT                    =
     I_SAVE                        =
     I_DEFAULT                     = 'X'
          IS_LAYOUT                     = GS_LAYOUT
     IS_PRINT                      =
     IT_SPECIAL_GROUPS             =
     IT_TOOLBAR_EXCLUDING          =
     IT_HYPERLINK                  =
     IT_ALV_GRAPHICS               =
     IT_EXCEPT_QINFO               =
        CHANGING
          IT_OUTTAB                     = IT_VBRP[]
          IT_FIELDCATALOG               = GT_FIELDCAT
     IT_SORT                       =
     IT_FILTER                     =
        EXCEPTIONS
          INVALID_PARAMETER_COMBINATION = 1
          PROGRAM_ERROR                 = 2
          TOO_MANY_LINES                = 3
          OTHERS                        = 4
    IF SY-SUBRC <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      CALL METHOD GR_ALVGRID->SET_READY_FOR_INPUT
        EXPORTING
          I_READY_FOR_INPUT = 1.
    ELSE.
      CALL METHOD GR_ALVGRID->REFRESH_TABLE_DISPLAY
   EXPORTING
     IS_STABLE      =
     I_SOFT_REFRESH =
        EXCEPTIONS
          FINISHED       = 1
          OTHERS         = 2
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                   WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDIF.
    CLEAR V_FLAG.
  ENDIF.
ENDMODULE.                 " DISPLAY_ALV  OUTPUT
*&      Form  DISPLAY_ALV
      text
-->  p1        text
<--  p2        text
FORM DISPLAY_ALV .
  IF GR_ALVGRID IS INITIAL.
    CREATE OBJECT GR_ALVGRID
      EXPORTING
   I_SHELLSTYLE      = 0
   I_LIFETIME        =
        I_PARENT          = GR_CCONTAINER
   I_APPL_EVENTS     = space
   I_PARENTDBG       =
   I_APPLOGPARENT    =
   I_GRAPHICSPARENT  =
   I_NAME            =
      EXCEPTIONS
        ERROR_CNTL_CREATE = 1
        ERROR_CNTL_INIT   = 2
        ERROR_CNTL_LINK   = 3
        ERROR_DP_CREATE   = 4
        OTHERS            = 5
    IF SY-SUBRC <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
  ENDIF.
ENDFORM.                    " DISPLAY_ALV
*&      Form  PREPARE_FIELD_CATALOG
      text
     <--P_GT_FIELDCAT  text
FORM PREPARE_FIELD_CATALOG  CHANGING P_GT_FIELDCAT TYPE LVC_T_FCAT.
  DATA : LS_FCAT TYPE LVC_S_FCAT,
         L_POS TYPE I.
  L_POS = L_POS + 1.
  LS_FCAT-FIELDNAME = 'VBELN'.
  LS_FCAT-TABNAME = 'IT_VBRP'.
  LS_FCAT-COL_POS = L_POS.
  LS_FCAT-SCRTEXT_M = 'Billing Document'.
  LS_FCAT-OUTPUTLEN = '10'.
  APPEND LS_FCAT TO P_GT_FIELDCAT.
  CLEAR LS_FCAT.
  L_POS = L_POS + 1.
  LS_FCAT-FIELDNAME = 'POSNR'.
  LS_FCAT-TABNAME = 'IT_VBRP'.
  LS_FCAT-COL_POS = L_POS.
  LS_FCAT-SCRTEXT_M = 'Billing Item'.
  LS_FCAT-OUTPUTLEN = '6'.
  APPEND LS_FCAT TO P_GT_FIELDCAT.
  CLEAR LS_FCAT.
  L_POS = L_POS + 1.
  LS_FCAT-FIELDNAME = 'UEPOS'.
  LS_FCAT-TABNAME = 'IT_VBRP'.
  LS_FCAT-COL_POS = L_POS.
  LS_FCAT-SCRTEXT_M = 'Higher Level Item'.
  LS_FCAT-OUTPUTLEN = '6'.
  APPEND LS_FCAT TO P_GT_FIELDCAT.
  CLEAR LS_FCAT.
  L_POS = L_POS + 1.
  LS_FCAT-FIELDNAME = 'FKIMG'.
  LS_FCAT-TABNAME = 'IT_VBRP'.
  LS_FCAT-COL_POS = L_POS.
  LS_FCAT-SCRTEXT_M = 'Invoice Quantity'.
  LS_FCAT-OUTPUTLEN = '13'.
  APPEND LS_FCAT TO P_GT_FIELDCAT.
  CLEAR LS_FCAT.
  L_POS = L_POS + 1.
  LS_FCAT-FIELDNAME = 'NETWR'.
  LS_FCAT-TABNAME = 'IT_VBRP'.
  LS_FCAT-COL_POS = L_POS.
  LS_FCAT-SCRTEXT_M = 'Net Value'.
  LS_FCAT-OUTPUTLEN = '15'.
  APPEND LS_FCAT TO P_GT_FIELDCAT.
  CLEAR LS_FCAT.
  L_POS = L_POS + 1.
  LS_FCAT-FIELDNAME = 'MEINS'.
  LS_FCAT-TABNAME = 'IT_VBRP'.
  LS_FCAT-COL_POS = L_POS.
  LS_FCAT-SCRTEXT_M = 'Unit of Measure'.
  LS_FCAT-OUTPUTLEN = '3'.
  APPEND LS_FCAT TO P_GT_FIELDCAT.
  CLEAR LS_FCAT.
  L_POS = L_POS + 1.
ENDFORM.                    " PREPARE_FIELD_CATALOG
*&      Form  PREPARE_LAYOUT
      text
     <--P_GS_LAYOUT  text
FORM PREPARE_LAYOUT  CHANGING P_GS_LAYOUT TYPE LVC_S_LAYO.
  P_GS_LAYOUT-ZEBRA = 'X'.
  P_GS_LAYOUT-GRID_TITLE = 'INVOICE DETAILS'.
  P_GS_LAYOUT-SMALLTITLE = 'X'.
  P_GS_LAYOUT-EDIT = 'X'.
ENDFORM.                    " PREPARE_LAYOUT
*&      Module  STATUS_0100  OUTPUT
      text
MODULE STATUS_0100 OUTPUT.
  SET PF-STATUS 'CANCEL'.
SET TITLEBAR 'xxx'.
ENDMODULE.                 " STATUS_0100  OUTPUT
*&      Module  USER_COMMAND_0100  INPUT
      text
MODULE USER_COMMAND_0100 INPUT.
  CASE SY-UCOMM.
    WHEN 'BACK'.
      LEAVE TO SCREEN 0.
    WHEN 'CANCEL'.
      LEAVE TO SCREEN 0.
    WHEN 'EXIT'.
      CALL TRANSACTION 'SE38'.
    WHEN 'CHANGE'.
      IF GR_ALVGRID->IS_READY_FOR_INPUT( ) = 0.
        CALL METHOD GR_ALVGRID->SET_READY_FOR_INPUT
          EXPORTING
            I_READY_FOR_INPUT = 1.
      ELSE.
        CALL METHOD GR_ALVGRID->SET_READY_FOR_INPUT
          EXPORTING
            I_READY_FOR_INPUT = 0.
      ENDIF.
  ENDCASE.
ENDMODULE.                 " USER_COMMAND_0100  INPUT

Similar Messages

  • Select/Deselect  All not working !!

    Hi Gurus,
    I have searched thru SDN forum, but didn't get any pointers on this.
    I have created 2 custom buttons for select/deselect all on ALV toolbar, thru oops.
    Select/Deselect All are not working for me. Please help me with some pointers.
    I have attributes for customized ALV toolbar buttons, and then checking at user command.
    Many Thanks,
    Madan

    Hi,
    Check the links
    https://wiki.sdn.sap.com/wiki/display/Snippets/TutorialABAPALVThroughOOPS
    Addiing Custom button to ALV Grid Standard tool bar
    https://wiki.sdn.sap.com/wiki/display/Snippets/AsimpleprogramonALV+OOPS
    Regards,
    Amit

  • Is it possible to Select/Deselect All checkboxes using single button

    Hi all,
      I want to Select/Deselect all check boxes in my table using single button. I tried using single button ,but it is not working correctly for all the cases.
    Thanks&regards,
    karthik.

    Hi karthik..
    You can do this ..
    1.Create boolean variable..
    2.Create Select all button..
    write this code in Select all action ..
    IPrivate<View>.I<Table>Node tNode=wdContext.node<Table>().;
    for(int i=0;i<tNodesize();i++)
    tNode.get><Table>ElementAt(i).setCheck(true);
    Like Deselect all..
    IPrivate<View>.I<Table>Node tNode=wdContext.node<Table>().;
    for(int i=0;i<tNodesize();i++)
    tNode.get><Table>ElementAt(i).setCheck(false);
    Urs GS

  • ABAP Web Dynpro, ALV, Cardinality 0..n, Remove Select/Deselect All

    Hi Everyone
    I am developing a new application using ABAP Web Dynpro. I am using ALV. I want to give the user the option to select either 0 or multiple rows in the ALV grid. However, I want to hide the standard Select All/Deselect All push button that appears in the top left hand corner. This is because we do not want the user to simply select all and then click on a pushbutton to complete the process. If they wish to do this, they must manually select each item first of all. Anyone have any ideas? I've looked at the underlying ABAP classes for WD4A, but cannot find a method to do this.
    Thanks in advance for your help!!
    Jon

    Hello,
    To hide the buttons that appear at the top left of ALV, do the following:
    lo_model->if_salv_wd_std_functions~set_edit_check_available(
        EXPORTING value  = abap_false )   .
      lo_model->if_salv_wd_std_functions~set_edit_append_row_allowed(
          EXPORTING  value  = abap_false )  .
      lo_model->if_salv_wd_std_functions~set_edit_insert_row_allowed(
        EXPORTING  value  = abap_false )   .
      lo_model->if_salv_wd_std_functions~set_edit_delete_row_allowed(
        EXPORTING  value  = abap_false )   .
      lo_model->if_salv_wd_std_functions~set_pdf_allowed( abap_false ).
      lo_model->if_salv_wd_std_functions~set_view_list_allowed( abap_false ).
    lo_model->if_salv_wd_std_functions~SET_EXPORT_ALLOWED( abap_false ).
    Hope this helps!
    Regards,
    Srilatha

  • WAD 7.0 Checkbox Group web item - ability to select/deselect all

    Hello. I am currently using within the Web Application Designer 7.0 the web item Checkbox Group. I would like the ability to add a "select all" and "deselect all" button(s) to select all values and deselect all values respectively.
    Has anyone in the community been able to accomplish this? Our user base has asked about this frequently.
    Kind regards,
    Lynn Peter

    Hi,
    This can be solved by using a Container layout item and a button group item.
    1 Put the Checkbox item and a button group item in the Container layout item.
    2 Configure a button in the button group item with the command CLEAR_SELECTION_STATE and connect it to the criteria/key figures you wish to use it on.
    3 Configure another button similarely with the command SET_SELECTION STATE. (In our user case this button was not necessary)
    4 Configure the Container layout item to display your checkbox and button group as desired.
    This should solve your problem, we had exactly the same problem with the before "unfriendly" user interface.
    BR,
    Niclas

  • Need to select link twice when using Browser back button

    I see that my command_link works fine in normal scenarios.
    But when I come to that page using browser back button and then select the link within the page.... the first time, looks like its regenerating the page and only when I select the link second time it is calling the action listener associated with the link.
    Any clue as to how to fix this problem?
    Thanks

    use the following lines in your web.xml to avoid this bug of the current jsf-ri version.
    <context-param>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>client</param-value>
    </context-param>I already tried to report this bug some time ago:
    http://forum.java.sun.com/thread.jsp?forum=427&thread=478928&tstart=180&trange=15

  • How to set a selected checkbox in output internal table of oops ALV grid

    Hi All,
    i have a checkbox as first column in my ALV grid output using oops alv, when i select some checkbox, that rows have to be selected and i need to process only selected rows in user command.
    i have given the below code also in fieldcatolg.
    f_fldcat-fieldname = 'checkbox'.
    f_fldcat-tabname ='gi_output'
    f_fldcat-checkbox = 'X'.
    f_fldcat-edit = 'X'.
    but the checkbox is not getting set in internal table when i select some checkboxes.
    can anybody explain y the checkbox in internal table not getting set?
    Thanks,
    Srilakshmi.

    Hi,
    i tried already whatever u said, but still not resolved.Pasted my code below..can u please look into it.
    MODULE pbo OUTPUT.
      PERFORM init_container.
      PERFORM prepare_field_catalog.
      PERFORM prepare_layout.
      PERFORM display_output.
    ENDMODULE.                 " PBO  OUTPUT
    *&      Module  PAI  INPUT
          text
    MODULE pai INPUT.
       DATA: lt_rows TYPE lvc_t_row.
      CASE gv_okcode.
        WHEN gc_exit OR gc_back OR gc_canc. " Finish program
          LEAVE PROGRAM.
          when 'PRINT'.
           CALL METHOD gv_grid->get_selected_rows
                     IMPORTING et_index_rows = lt_rows.
            CALL METHOD cl_gui_cfw=>flush.
      ENDCASE.
    ENDMODULE.                 " PAI  INPUT
    *&      Form  INIT_CONTAINER
          text
    FORM init_container .
      CREATE OBJECT gv_custom_container
        EXPORTING
          container_name = gc_container.
      CREATE OBJECT gv_grid
        EXPORTING
          i_parent = gv_custom_container.
      CREATE OBJECT gv_document
        EXPORTING
          style = 'ALV_GRID'.
    *&      Form  PREPARE_FIELD_CATALOG
          text
    FORM prepare_field_catalog .
      PERFORM fill_catalog USING:
    'Table Name'   'Field Name' 'NoZero'   'sel-text'
      'GI_OUTPUT'  'CHECKBOX'   ' '           text-013  'X',
      'GI_OUTPUT'  'KUNNR'      'X'           text-003  ' ',
      'GI_OUTPUT'  'NAME1'      ' '           text-004  ' ',
      'GI_OUTPUT'  'BELNR'      'X'           text-005  ' ',
      'GI_OUTPUT'  'BLART'      ' '           text-006  ' ',
      'GI_OUTPUT'  'BUDAT'      ' '           text-007  ' ',
      'GI_OUTPUT'  'BLDAT'      ' '           text-008  ' ',
      'GI_OUTPUT'  'DMBTR'      ' '           text-009  ' ',
      'GI_OUTPUT'  'WAERS'      ' '           text-010  ' '.
    ENDFORM.                    " PREPARE_FIELD_CATALOG
    *&      Form  FILL_CATALOG
          text
    FORM fill_catalog  USING    fv_tabname
                                fv_fldname
                                fv_nozero
                                fv_seltxt
                                fv_checkbox.
      DATA f_fldcat TYPE lvc_s_fcat.
      f_fldcat-fieldname     = fv_fldname.
      f_fldcat-tabname       = fv_tabname.
      f_fldcat-no_zero       = fv_nozero.
      f_fldcat-coltext       = fv_seltxt.
      f_fldcat-checkbox      = fv_checkbox.
      IF fv_checkbox = gc_x.
        f_fldcat-edit = gc_x.
      ENDIF.
      APPEND f_fldcat TO gi_fieldcat.
    ENDFORM.                    " FILL_CATALOG
    *&      Form  PREPARE_LAYOUT
          text
    FORM prepare_layout .
      gs_layout-info_fname = 'COL'.
      gs_layout-cwidth_opt = gc_x.
      gs_layout-zebra      = gc_x.
      gs_layout-no_toolbar = gc_x.
      gs_layout-no_rowmark = '1'.
      gs_layout-sel_mode = 'A'.
    ENDFORM.                    " PREPARE_LAYOUT
    *&      Form  DISPLAY_OUTPUT
          text
    FORM display_output .
      CALL METHOD gv_grid->set_table_for_first_display
        EXPORTING
          is_layout       = gs_layout
        CHANGING
          it_outtab       = gi_output
          it_fieldcatalog = gi_fieldcat.
      CREATE OBJECT event_receiver.
      SET HANDLER event_receiver->handle_user_command FOR gv_grid.
    CALL METHOD cl_gui_control=>set_focus EXPORTING control = gv_grid.
    ENDFORM.                    " DISPLAY_OUTPUT

  • Select all and deselect all in table control

    Hi experts,
        I want to make the select all and deselect all options in my table control.
    But i can't able to do that one. Kindly suggest me how to do that one.
    one more thing, if i select some rows in the table control, and press save it should be saved in some other table. how can i implement that one.
    Waiting for ur reply.
    Regards...
    Arun.

    Hi Arun,
    In the context node that you bind to the table, set the cardinality as 0..n and selection as 0..n. In the UI element Table, set the property selectionMode as 'multi'. Then a toggle button for select/deselect all will appear automatically in your table. You can see it in the top left corner.
    For your second question, after selecting the elemets and pressing 'save', in your event handler, do a get_selected_elements( ) on your node. This will return you a set of context elements. Loop through each element and do a get_static_attributes to get the rows. Then you can append these rows to another internal table and bind it to the context. Bind your second table to this node. If the two tables are in different views, the context nodes need to be present in the component controller and mapped to the views.
    Hope this helps.
    Regards
    Nithya

  • ALV not showing all the rows! Please help!

    Hi Experts,
         I have webdynpro ALV report and I am using SALV_WD_TABLE as the reusable component. In component controller's WDDOINIT I have written the code for pulling teh data from R/3 table and binding it to ALV table.
    In the view's WDDOMODIFYVIEW event I have written the following code to get subtotal and grand total of Qty column based on product column.
          I have coded like this:
          lr_field_settings ?= l_value.
    lr_field = lr_field_settings->get_field( 'PRODUCT' ).
    lr_field->if_salv_wd_sort~set_group_aggregation_allowed( ABAP_TRUE ).
    lr_field->if_salv_wd_sort~create_sort_rule( ).
    l_sortrule = lr_field->if_salv_wd_sort~GET_SORT_RULE(  ).
    l_sortrule->set_sort_order( if_salv_wd_c_sort=>sort_order_ascending ).
    l_sortrule->set_group_aggregation( ABAP_TRUE ).
    *...Aggregate Field PRODUCT
    lr_field = lr_field_settings->get_field( 'QTY' ).
    lr_field->if_salv_wd_aggr~create_aggr_rule( ).
    lr_aggr_rule = lr_field->if_salv_wd_aggr~get_aggr_rule(  ).
    lr_aggr_rule->set_aggregation_type( if_salv_wd_c_aggregation=>aggrtype_total ).
    It is working now but my ALV table is not showing all the rows. I have 6 products and it is showing from product 2. But it is calculating grand total and subtotal correctly. I am not able to see the first product row and subtotal for that. Even if I click on the ^ icon in the ALV table below it is not showing all the rows.
    What could be the problem?
    Please help
    Thanks
    Gopal

    did you somehow manage to set the "first visible row" property on table object
    to 2.   Only thing I can think of that could cause this effect.
    Cheers
    Phil

  • Display all the rows in the table with Varray

    I created two Varrays
    CREATE TYPE phone_varray AS VARRAY(3) OF NUMBER(10);
    CREATE TYPE email_varray AS VARRAY(3) OF varchar2(30);
    CREATE TABLE ee
    (id number(2),
    phone phone_varray);
    now i inserted some rows into ee table and displayed it as:
    SELECT e1.id,e2.COLUMN_VALUE"PHONE NO" FROM ee e1,TABLE(e1.phone) e2;
    ID PHONE NO
    1 1111111111
    1 2222222222
    1 3333333333
    1 1111111111
    1 2222222222
    1 4444444444
    4 1111
    4 2222
    4 33334
    5 1111
    5 2222
    5 33334
    Then i altered the table with email_varray
    desc ee;
    Name Null? Type
    ID NUMBER(2)
    PHONE PHONE_VARRAY
    EMAIL EMAIL_VARRAY
    I updated some rows:
    update ee e1 set email=email_varray('aasda') where id=4;
    and when i try to display the table data by:
    SELECT id,e2.*,e3.* from ee e1,TABLE(e1.phone) e2,TABLE(e1.email) e3;
    it only displays the rows that contain all the details like
    ID COLUMN_VALUE COLUMN_VALUE
    4 1111 aasda
    4 2222 aasda
    4 33334 aasda
    and not all the rows that are in the table which have id and phone and email as NULL
    need help to display all the rows in the table.

    will this work for you ?
    SELECT e1.id,e2.COLUMN_VALUE as PHONE_NO, null as email FROM ee e1,TABLE(e1.phone) e2
    union
    SELECT e1.id,null,e3.column_value as email from ee e1, TABLE(e1.email) e3;

  • Select and deselect all in ALV

    Hi,
    I have created an ALV that has a Check box as the first field as the first field of the row.
    Now when I press SELECT ALL nothing gets selected.How can i correct it,
    Thnx in advance

    Hi chirantan,
    1. To get a taste of it,
       just copy paste this program.
    2. It will display alv (t001)
      and DOUBLE-CLICK ON any row.
       It will TICK ALL THE CHECKBOXES.
    (Instead of double-click, u can check for the user-command
    of select all button )
    3.
    REPORT abc.
    TYPE-POOLS : slis.
    Data
    DATA : BEGIN OF itab OCCURS 0.
            INCLUDE STRUCTURE t001.
    DATA : flag tyPE c,
           END OF itab.
    DATA : alvfc TYPE slis_t_fieldcat_alv.
    DATA : alvly TYPE slis_layout_alv.
    Select Data
    SELECT * FROM t001 INTO TABLE itab.
    *------- Field Catalogue
    CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
      EXPORTING
        i_program_name         = sy-repid
        i_internal_tabname     = 'ITAB'
        i_inclname             = sy-repid
      CHANGING
        ct_fieldcat            = alvfc
      EXCEPTIONS
        inconsistent_interface = 1
        program_error          = 2
        OTHERS                 = 3.
    Display
    alvly-box_fieldname = 'FLAG'.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
      EXPORTING
        it_fieldcat             = alvfc
        i_callback_program      = sy-repid "<-------Important
        i_callback_user_command = 'ITAB_USER_COMMAND' "<------ Important
        is_layout               = alvly
      TABLES
        t_outtab                = itab
      EXCEPTIONS
        program_error           = 1
        OTHERS                  = 2.
    CALL BACK FORM
    FORM itab_user_command USING whatcomm TYPE sy-ucomm whatrow TYPE
    slis_selfield.
      LOOP AT itab.
        itab-flag = 'X'.
        MODIFY itab.
      ENDLOOP.
    IMPORTANT.
    WHATROW-REFRESH = 'X'.
    ENDFORM. "ITAB_user_command
    regards,
    amit m.

  • How to make all the rows editable in webdynpro alv output

    Hi,
    How to make all the rows editable in webdynpro alv output.
    Thanks
    Rakshar

    Hi Rakshar,
    Check this wiki:
    http://wiki.sdn.sap.com/wiki/display/WDABAP/HowtoeditconditionallyrowofaALVtableinWebDynprofor+ABAP
    Regards

  • Need a query to merge output in a single row?

    Hi All,
    I need a query to merge output in a single row.
    Query :
    Select dname from dept.
    Actual output is :
    Dname
    EDP
    ACCOUNT
    GR
    Desired Output is:
    Dname
    EDP ACCOUNT GR
    Please provide me the solution
    Thanks
    Amit

    select max(sys_connect_by_path (t.name,' '))  from  ( select id,
                            name,
                            group_id,
                            row_number() over (partition by group_id order by id) rn
                       from ( select 1 id, 'test'  name, 1 group_id from dual
                              union
                              select 2 id, 'test1' name, 1 group_id from dual
                              union
                              select 3 id, 'test2' name, 1 group_id from dual
                              union
                              select 4 id, 'test3' name, 1 group_id from dual)  ) t
    start with t.rn = 1 and id = 1
    connect by t.rn = prior t.rn + 1
    group by t.group_id

  • Not able to download all the rows to excel sheet from alv grid display

    Hi experts,
    I am not able to download all the rows which are displayed in alv grid display for some material numbers.
    for some materials i am able to download, i used two ways to download 1) from icon(local file) on grid 2) menu list->export.
    i checked in debugging till selecting the spread sheet pop up window, i am able to see all the data in internal table.
    Can you suggest me what will be the problem....
    thanks in advance,

    hi sandeep,
    sorry for didnt specify clearly.
    note: EX: "asaasdada  in this sentence i said  " this symbol is special character not the text.
    building final internal table code
    CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
        EXPORTING
          capid                 = p_capid
          datuv                 = sy-datum
          ehndl                 = '1'
          mktls                 = 'X'
          mehrs                 = 'X'
          mmory                 = '1'
          mtnrv                 = p_matnr
          stlal                 = '1'
          stpst                 = 0
          svwvo                 = 'X'
          werks                 = p_werks
          vrsvo                 = 'X'
        TABLES
          stb                   = i_stb
        EXCEPTIONS
          alt_not_found         = 1
          call_invalid          = 2
          material_not_found    = 3
          missing_authorization = 4
          no_bom_found          = 5
          no_plant_data         = 6
          no_suitable_bom_found = 7
          conversion_error      = 8
          OTHERS                = 9.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
      i_stb1[] = i_stb[].
      IF NOT i_stb1[] IS INITIAL.
        SORT i_stb1 BY idnrk.
        DELETE ADJACENT DUPLICATES FROM i_stb1 COMPARING idnrk.
        SELECT bmatn ematn FROM ampl INTO TABLE i_ampl
          FOR ALL ENTRIES IN i_stb1
          WHERE bmatn = i_stb1-idnrk AND
                datuv LE sy-datum AND                          
                datub GE sy-datum.                              
        SELECT
        matnr
        bwkey
        verpr
        stprs
        bwprh
        FROM mbew
        INTO TABLE i_mbew
        FOR ALL ENTRIES IN i_stb1
        WHERE
            matnr EQ i_stb1-idnrk AND
            bwkey EQ i_stb1-werks.
        IF NOT i_stb1[] IS INITIAL.
          SELECT matnr werks beskz
                 dzeit webaz plifz                              
                 ekgrp                                         
          INTO TABLE i_marc
          FROM marc
          FOR ALL ENTRIES IN i_stb1
          WHERE matnr = i_stb1-idnrk
          AND werks = i_stb1-werks.
          SORT i_marc BY matnr werks.
        ENDIF.
        CLEAR i_ekpo.
        CLEAR i_vend.
        IF NOT i_stb1[] IS INITIAL.
          SELECT ebeln ebelp matnr werks loekz aedat
                 netpr peinh                                   
          INTO TABLE i_ekpo
          FROM ekpo
                FOR ALL ENTRIES IN i_stb1
                WHERE matnr = i_stb1-idnrk
                AND werks = i_stb1-werks.
          SORT i_ekpo BY matnr ASCENDING
                         aedat DESCENDING
                         ebeln DESCENDING
                         ebelp DESCENDING.
          IF NOT i_ekpo IS INITIAL.
            SELECT k~ebeln k~lifnr l~name1
            INTO TABLE i_vend
            FROM ekko AS k INNER JOIN lfa1 AS l
            ON k~lifnr EQ l~lifnr
            FOR ALL ENTRIES IN i_ekpo
            WHERE ebeln = i_ekpo-ebeln.
            SORT i_vend BY ebeln.
          ENDIF.
        ENDIF.
      ENDIF.
      i_ampl1[] = i_ampl[].
      IF NOT i_ampl1[] IS INITIAL.
        SORT i_ampl1 BY ematn.
        DELETE ADJACENT DUPLICATES FROM i_ampl1 COMPARING ematn.
        SELECT matnr mfrpn mfrnr FROM mara INTO TABLE i_mara
          FOR ALL ENTRIES IN i_ampl1
           WHERE matnr = i_ampl1-ematn.
      ENDIF.
      SORT i_ampl BY bmatn.
      IF NOT i_stb[] IS INITIAL.
        SELECT stlty stlnr stlkn stpoz idnrk potx1 potx2
        INTO TABLE i_stpo
        FROM stpo
        FOR ALL ENTRIES IN i_stb
        WHERE stlty = i_stb-stlty
          AND stlnr = i_stb-stlnr
          AND stlkn = i_stb-stlkn
          AND stpoz = i_stb-stpoz
          AND idnrk = i_stb-idnrk.
        SORT i_stpo BY stlty stlnr stlkn stpoz idnrk.
      ENDIF.
      LOOP AT i_stb INTO wa_stb.
        READ TABLE i_marc INTO wa_marc
        WITH KEY     matnr = wa_stb-idnrk
                     werks = wa_stb-werks
                     BINARY SEARCH.
        IF sy-subrc = 0.
          wa_outtab-beskz = wa_marc-beskz.
          wa_outtab-dzeit = wa_marc-dzeit.                      
          wa_outtab-webaz = wa_marc-webaz.                     
          wa_outtab-plifz = wa_marc-plifz.                     
          wa_outtab-ekgrp = wa_marc-ekgrp.                     
        ENDIF.
        READ TABLE i_ekpo INTO wa_ekpo
            WITH KEY matnr = wa_stb-idnrk.
        IF sy-subrc = 0.
          wa_outtab-netpr = wa_ekpo-netpr.                     
          wa_outtab-peinh = wa_ekpo-peinh.                     
          READ TABLE i_vend INTO wa_vend
          WITH KEY ebeln = wa_ekpo-ebeln
                   BINARY SEARCH.
          IF sy-subrc = 0.
            wa_outtab-lifnr = wa_vend-lifnr.
            wa_outtab-name_sup = wa_vend-name1.
          ENDIF.
        ENDIF.
        READ TABLE i_stpo INTO wa_stpo
        WITH KEY stlty = wa_stb-stlty
                 stlnr = wa_stb-stlnr
                 stlkn = wa_stb-stlkn
                 stpoz = wa_stb-stpoz
                 idnrk = wa_stb-idnrk
                 BINARY SEARCH.
        IF sy-subrc = 0.
          wa_outtab-potx1 = wa_stpo-potx1.
          wa_outtab-potx2 = wa_stpo-potx2.
        ENDIF.
        READ TABLE i_mbew INTO wa_mbew
        WITH KEY
        matnr = wa_stb-idnrk
        bwkey = wa_stb-werks.
        IF sy-subrc IS INITIAL.
          MOVE:
          wa_mbew-verpr TO wa_outtab-verpr,
          wa_mbew-stprs TO wa_outtab-stprs,
          wa_mbew-bwprh TO wa_outtab-bwprh.
        ENDIF.
        wa_outtab-matnr = p_matnr.
        wa_outtab-posnr = wa_stb-posnr.
        wa_outtab-stufe = wa_stb-stufe.
        wa_outtab-idnrk = wa_stb-idnrk.
        wa_outtab-ojtxb = wa_stb-ojtxp.
        wa_outtab-menge = wa_stb-menge.
        wa_outtab-meins = wa_stb-meins.
        MOVE: wa_stb-zzitem_draw_no TO wa_outtab-zzitem_draw_no.
        IF wa_stb-upskz = 'X'.
          SELECT * FROM stpu INTO TABLE i_stpu
                   WHERE  stlty = wa_stb-stlty AND
                          stlnr = wa_stb-stlnr AND
                          stlkn = wa_stb-stlkn AND
                          stpoz = wa_stb-stpoz.
        ENDIF.
        LOOP AT i_stpu INTO wa_stpu.
          wa_outtab-upmng = wa_stpu-upmng.
          wa_outtab-ebort = wa_stpu-ebort.
          wa_outtab-uposz = wa_stpu-uposz.
          CONCATENATE v_ebort wa_stpu-ebort      INTO v_ebort
          SEPARATED BY space.
        ENDLOOP.
        MOVE strlen( v_ebort ) TO v_len.
        MOVE: 0 TO x,
          128 TO y.
        DATA : lt_tab TYPE TABLE OF swastrtab.
        DATA : ls_tab LIKE LINE OF lt_tab.
        DATA : lv_ebort TYPE string.
        CLEAR lv_ebort. CLEAR lt_tab.
        MOVE v_ebort TO lv_ebort.
        CALL FUNCTION 'SWA_STRING_SPLIT'
          EXPORTING
            input_string                 = lv_ebort
            max_component_length         = 128
          TABLES
            string_components            = lt_tab
          EXCEPTIONS
            max_component_length_invalid = 1
            OTHERS                       = 2.
        IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.
        IF lt_tab[] IS NOT INITIAL.
          LOOP AT lt_tab INTO ls_tab.
            CLEAR lv_ebort.
            MOVE: ls_tab-str TO lv_ebort.
            CONDENSE lv_ebort.
            MOVE lv_ebort TO wa_outtab-ebort.
            APPEND wa_outtab TO i_outtab.
            CLEAR:
            wa_outtab-matnr,
            wa_outtab-posnr,
            wa_outtab-zzitem_draw_no,
            wa_outtab-ojtxb,
            wa_outtab-menge,
            wa_outtab-meins,
            wa_outtab-uposz,
            wa_outtab-upmng,
            wa_outtab-verpr,
            wa_outtab-stprs,
            wa_outtab-bwprh,
            wa_outtab-lifnr,
            wa_outtab-name_sup,
            wa_outtab-potx1,
            wa_outtab-potx2,
            wa_outtab-netpr,
            wa_outtab-peinh.
    *        wa_outtab-idnrk.
          ENDLOOP.
        ELSE.
          APPEND wa_outtab TO i_outtab.
        ENDIF.
        CLEAR v_ebort.
        CLEAR: wa_stpu.
        REFRESH: i_stpu.
        LOOP AT i_ampl INTO wa_ampl WHERE bmatn = wa_stb-idnrk.
        READ TABLE i_mara INTO wa_mara WITH TABLE KEY matnr = wa_ampl-ematn.
          IF sy-subrc = 0.
            LOOP AT i_outtab INTO wa_outtab
            WHERE
            idnrk = wa_stb-idnrk AND
            flag NE 'X'.
              wa_outtab-mfrpn = wa_mara-mfrpn.
              wa_outtab-mfrnr = wa_mara-mfrnr.
              SELECT SINGLE name1 FROM lfa1 INTO wa_outtab-name1 WHERE lifnr = wa_mara-mfrnr.
              MOVE 'X' TO wa_outtab-flag.
              MODIFY i_outtab FROM wa_outtab
              TRANSPORTING mfrpn mfrnr name1 flag.
              EXIT.
            ENDLOOP.
            IF sy-subrc <> 0.
              CLEAR:
              wa_outtab-matnr,
              wa_outtab-posnr,
              wa_outtab-zzitem_draw_no,
              wa_outtab-ojtxb,
              wa_outtab-ebort,
    *          wa_outtab-idnrk,
              wa_outtab-menge,
              wa_outtab-meins,
              wa_outtab-uposz,
              wa_outtab-upmng,
              wa_outtab-verpr,
              wa_outtab-stprs,
              wa_outtab-bwprh,
              wa_outtab-lifnr,                                 
              wa_outtab-name_sup,                              
              wa_outtab-potx1,                                 
              wa_outtab-potx2,                                 
              wa_outtab-netpr,                                 
              wa_outtab-peinh.                                 
              wa_outtab-mfrpn = wa_mara-mfrpn.
              wa_outtab-mfrnr = wa_mara-mfrnr.
              SELECT SINGLE name1 FROM lfa1 INTO wa_outtab-name1 WHERE lifnr = wa_mara-mfrnr.
              APPEND wa_outtab TO i_outtab.
            ENDIF.
          ENDIF.
          REFRESH i_stpu.
          CLEAR i_stpu.
        ENDLOOP.    CLEAR: wa_matnr1, wa_mfrnr, wa_outtab.
      ENDLOOP.
    Edited by: srinivasareddy j on Mar 9, 2011 7:16 AM
    Edited by: srinivasareddy j on Mar 9, 2011 7:20 AM

  • Need SQL statement to generate a sequence number in the output rows

    Hi folks. I need to create an SQL statement that generates a sequence number column in the output rows (records) such that the first returned row has this column set to 1, second returned row has the column set to 2, etc.
    For example, consider the query:
    SELECT income from employees WHERE income != 20000 ORDER BY income;
    If employees.income contains 60,000, 20,000, 35,000, and 19,000 for respective rows, the output would be this:
    19,000
    35,000
    60,000
    I would like the SQL to also return a sequence number that is computed across the returned rows, resulting in two output columns:
    1 19,000
    2 35,000
    3 60,000
    Is there a simple SQL function that generates the sequence number, in order, and only for the returned rows? Or is there another way?
    I'm stumped. Any help is appreciated! Thanks!
    - Jack Cochrane

    Hi,
    Welcome to the forum!
    Use ROWNUM, like (example):
    Connected to Oracle Database 10g Express Edition Release 10.2.0.1.0
    Connected as hr
    SQL> select rownum, first_name from (select e.first_name from employees e where e.first_name like 'J%' order by e.first_name);
        ROWNUM FIRST_NAME
             1 Jack
             2 James
             3 James
             4 Janette
             5 Jason
             6 Jean
             7 Jennifer
             8 Jennifer
             9 John
            10 John
            11 John
            12 Jonathon
            13 Jose Manuel
            14 Joshua
            15 Julia
            16 Julia
    16 rows selected
    SQL> But rememeber if you want to be sure of unique numbers in certain field is better to use sequences and use seq_name.nextval each time you need.
    Regards,

Maybe you are looking for

  • Macbook with Apple 20" Monitor

    Wondering if any of you are using Apple's external 20" or 23" monitor connected to the Macbook and using it as a desktop. Some of the questions are: I plan to connect a FW, USB Hub and iSight camera to the Macbook and use completely as a desktop. Cur

  • GR Purchase Order has No Item

    What could be possible reason for the message "Purchase Order xxx has no item" Already Figured Closed PO (Delivery completed) Thanks in advance.

  • Airport app

    Airport utility asking for a password to proceed (not my network pass code), where do I find this?

  • I bought a macbook air and iMac from third party with preinstalled ilife and iworks

    I bought a macbook air and iMac from third party with preinstalled ilife and iworks, can I update to the latest ilife and iworks without being charged even though i did not purchase ilife and iworks on my preowned Macs.  I have no CD's or license for

  • Why doesn't iCloud always sync correctly?

    I get the message that the sync cannot be completed, while before it worked perfectly? Kind regards, Jeska