Wednesday, 3 April 2013

Difference between SY-TABIX and SY-INDEX

In LOOP   and    ENDLOOP  with respect to internal table and workarea use SY-TABIX as tabix takes the row number  of internal table during the current loop process.

SY-Index comes into picture during   DO  and ENDDO
Index is also used incase of Read table commmand

Wednesday, 27 March 2013

Change Button Text Dynamically

   LOOP AT SCREEN.

    IF screen-name = 'GV_BUTTON' .

      gv_button = 'Darling ' .
      MODIFY SCREEN.
    ENDIF.

  ENDLOOP.



gv_button is the button name created in screen.
We have to check the checkbox for output in program tab in buton attributes.

Thursday, 21 March 2013

Tcode for Table maintenance generator

ZTQM_GLOBAL_PARMS at end in the right bottom column is the table name which is tobe given as per table we create. Second line at last update and x should be as it is..

Parallel Cursor Method

 SORT: lt_vbpa BY kunnr,  "Sorting by key is very important
      lt_kna1 BY kunnr.  "Same key which is used for where condition is used here
LOOP AT lt_vbpa INTO wa_vbpa.
  READ lt_kna1 INTO wa_kna1     " This sets the sy-tabix
       WITH KEY kunnr = wa_vbpa-kunnr
       BINARY SEARCH.
  IF sy-subrc = 0.              "Does not enter the inner loop
    v_kna1_index = sy-tabix.
    LOOP AT lt_kna1 INTO wa_kna1 FROM v_kna1_index. "Avoiding Where clause
      IF wa_kna1-kunnr <> wa_vbpa-kunnr.  "This checks whether to exit out of loop
        EXIT.
      ENDIF.

****** Your Actual logic within inner loop ******

    ENDLOOP.                                                "KNA1 Loop
  ENDIF.
ENDLOOP.  " VBPA Loop 

Friday, 1 March 2013

Removing buttons in Oops Editable ALV

below is the code to remove all buttons except  plus +  and - minus push buttons.


   lw_exclude = cl_gui_alv_grid=>mc_fc_maximum .
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_minimum .
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_subtot .
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_sum .
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_average .
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_mb_sum .
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_mb_subtot .
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_sort_asc.
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_sort_dsc .
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_print .
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_views.
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_pc_file .
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_graph .
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_loc_copy .
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_loc_cut .
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_loc_undo .
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_refresh .
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_check .
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_detail .
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_filter .
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_loc_append_row .
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_loc_copy .
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_loc_copy_row.
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_loc_cut .
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_find.
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_help .
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_loc_paste.
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_mb_export.
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_loc_paste_new_row.
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_load_variant.
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_save_variant.
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_current_variant.
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_maintain_variant.
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_mb_variant.
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_html.
  APPEND lw_exclude TO gt_exclude.
  lw_exclude = cl_gui_alv_grid=>mc_fc_info.
  APPEND lw_exclude TO gt_exclude.



At last pass this Gt_exclude to the method as below.

  CALL METHOD gcl_cl_gui_alv_grid->set_table_for_first_display
  EXPORTING
*    I_BUFFER_ACTIVE               =
*    I_BYPASSING_BUFFER            =
*    I_CONSISTENCY_CHECK           =
*    I_STRUCTURE_NAME              =
*    IS_VARIANT                    =
*    I_SAVE                        =
        i_default                     = 'X'
*    IS_LAYOUT                     =
*    IS_PRINT                      =
*    IT_SPECIAL_GROUPS             =
        it_toolbar_excluding          = gt_exclude*    IT_HYPERLINK                  =
*    IT_ALV_GRAPHICS               =
*    IT_EXCEPT_QINFO               =
      CHANGING
        it_outtab                     = gt_conid
        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.
    ENDIF.


Tuesday, 19 February 2013

Module Pool : To make few fields in a screen to INVISIBLE



Group a number of fields ( whether it is input or output  doesn't matter ) , give a group name to it.
Check the below example using group name.


Below is the example



  LOOP AT SCREEN.
    IF screen-group1 = '001'.
      screen-invisible = '1'.
      screen-input = '0'.
      screen-output = '0'.
      screen-active = '0'.
      MODIFY SCREEN.
    ENDIF.

   IF screen-group2 = '111'.
      screen-input = '0'.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.