Welcome To My BLOG

This site is to give a brief idea for the abap learners who are looking for some real time programs .It consists of collection of programs from my side . I hope these programs are very much used for all of the learners. Please check the links for any information in ABAP.
Please vote for my Blog. And please input me on this mail addrssess.Email me

Share this link with your friends

http://www.rebtel.com/u/15163104576

For every friend who signs up using this link and makes a payment, we'll give you 8 €!


Thursday, May 10, 2012

Pop-up ALV Radio Buttons Using Classes


FUNCTION z_wm_gate_exit_popup.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     VALUE(I_LRNUM) TYPE  ZLRNUM OPTIONAL
*"     VALUE(I_TRNUM) TYPE  ZTRUNM OPTIONAL
*"     VALUE(I_ASN) TYPE  VBELN_VL OPTIONAL
*"  EXPORTING
*"     REFERENCE(E_DATA) TYPE  ZD2S_WM_DOC_LR
*"----------------------------------------------------------------------
  
DATA: lt_doc_lr TYPE TABLE OF zd2s_wm_doc_lr,
        ls_doc_lr 
TYPE zd2s_wm_doc_lr.

  
REFRESH:  gt_emp[],lt_doc_lr[].
  
CLEAR:    gs_emp ,g_data,ls_doc_lr.

  
PERFORM select_data USING i_trnum.

  
PERFORM display_fullscreen.

  
CALL SCREEN 2000 STARTING AT 7 1 ENDING AT 76 14.

  
IF NOT g_data IS INITIAL.
    
IF ok_code = 'RELA'.
      e_data = g_data.
*      DELETE FROM zd2s_wm_doc_lr WHERE trunm = e_data-trunm.
      
IF sy-subrc = 0.
*        MESSAGE s064(zdicv_wm) WITH ls_doc_lr-zablad ls_doc_lr-lrnum.
        
COMMIT WORK.
      
ELSE.
        
ROLLBACK WORK.
      
ENDIF.
    
ENDIF.
  
ENDIF.
ENDFUNCTION.
*----------------------------------------------------------------------*
*       CLASS lcl_event_handler DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_handler DEFINITION FINAL .
  
PUBLIC SECTION.
* Handles the Even when user clicks on any row..
    
METHODS:handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid
                                                          
IMPORTING e_row_id .
ENDCLASS.                    "lcl_event_handler DEFINITION
*&---------------------------------------------------------------------*
*&  METHOD handle_hotspot_click.
*&---------------------------------------------------------------------*
*& On double clicking a particulat row
*&---------------------------------------------------------------------*
CLASS lcl_event_handler IMPLEMENTATION.
  
METHOD handle_hotspot_click .
    
CLEAR : gs_emp.
*    BREAK melumal.
    
READ TABLE gt_emp INTO gs_emp WITH KEY radio = icon_radiobutton.
    
IF sy-subrc NE 0.
      
CLEAR gs_emp .
      
READ TABLE gt_emp INTO gs_emp INDEX e_row_id.
      
IF gs_emp-radio = icon_radiobutton.
        gs_emp-radio  = icon_wd_radio_button_empty.
        
MODIFY gt_emp  INDEX e_row_id FROM gs_emp
                                
TRANSPORTING radio.
      
ELSE.
        gs_emp-radio  = icon_radiobutton.
        
MODIFY gt_emp INDEX e_row_id FROM gs_emp TRANSPORTING radio.
      
ENDIF.
    
ELSE .
      gs_emp-radio = icon_wd_radio_button_empty.
      
MODIFY gt_emp INDEX sy-tabix FROM gs_emp
                      
TRANSPORTING radio.
      
CLEAR gs_emp.
      
READ TABLE gt_emp INTO gs_emp INDEX e_row_id .
      
IF sy-subrc = 0.
        gs_emp-radio = icon_radiobutton.
        
MODIFY gt_emp  INDEX e_row_id FROM gs_emp
                      
TRANSPORTING radio.
      
ENDIF.
    
ENDIF .
*    CALL METHOD cl_gui_cfw=>set_new_ok_code
*         EXPORTING
*         new_code = 'REFRESH'
**      IMPORTING
**        rc       =
.
    grid_name = gv_grid .
    
PERFORM refresh_alv USING grid_name .
  
ENDMETHOD .                    "handle_hotspot_click
ENDCLASS .                    "lcl_event_handler IMPLEMENTATION

*----------------------------------------------------------------------*
***INCLUDE LZ_WM_GATE_EXITF01 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Form  SELECT_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM select_data USING p_i_trunm.
  
SELECT  * FROM zd2s_wm_doc_lr
            
INTO TABLE gt_emp
            
WHERE trunm = p_i_trunm.
ENDFORM.                    " SELECT_DATA
*&---------------------------------------------------------------------*
*&      Form  DISPLAY_FULLSCREEN
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM display_fullscreen .
  
LOOP AT gt_emp INTO gs_emp.
    gs_emp-radio = icon_wd_radio_button_empty.
    
MODIFY gt_emp FROM gs_emp TRANSPORTING radio .
  
ENDLOOP.
ENDFORM.                    " DISPLAY_FULLSCREEN
*&---------------------------------------------------------------------*
*&      Form  FIELDCATATALOG
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM fieldcatatalog .
  
REFRESH: lt_fieldcat.
  
CLEAR: ls_fieldcat.
  ls_fieldcat-reptext    = 
'Release'.
  ls_fieldcat-fieldname  = 
'RADIO'.
  ls_fieldcat-ref_table  = 
'GT_EMP'.
  ls_fieldcat-
icon       = 'X'.                     "Icons
  ls_fieldcat-
hotspot    = 'X'.                     "Hotspot(Hand Symbol)
  ls_fieldcat-col_pos    = 
'1'.
  
APPEND ls_fieldcat TO lt_fieldcat.
  
CLEAR: ls_fieldcat.
  ls_fieldcat-reptext    = 
'Unloading Point'.
  ls_fieldcat-fieldname  = 
'ZABLAD'.
  ls_fieldcat-ref_table  = 
'GT_EMP'.
  ls_fieldcat-
key        = 'X'.
  ls_fieldcat-outputlen  = 
'20'.
  ls_fieldcat-col_pos    = 
'2'.
  
APPEND ls_fieldcat TO lt_fieldcat.
  
CLEAR: ls_fieldcat.
  ls_fieldcat-reptext    = 
'LR Number'.
  ls_fieldcat-fieldname  = 
'LRNUM'.
  ls_fieldcat-ref_table  = 
'GT_EMP'.
  ls_fieldcat-outputlen  = 
'20'.
  ls_fieldcat-col_pos    = 
'3'.
  
APPEND ls_fieldcat TO lt_fieldcat.
  
CLEAR: ls_fieldcat.
  ls_fieldcat-reptext    = 
'Truck Number'.
  ls_fieldcat-fieldname  = 
'TRUNM'.
  ls_fieldcat-ref_table  = 
'GT_EMP'.
  ls_fieldcat-outputlen  = 
'15'.
  ls_fieldcat-fix_column = 
'X'.
  ls_fieldcat-col_pos    = 
'4'.
  
APPEND ls_fieldcat TO lt_fieldcat.
  
CLEAR: ls_fieldcat.
  ls_fieldcat-reptext    = 
'ASN Number'.
  ls_fieldcat-fieldname  = 
'VBELN'.
  ls_fieldcat-ref_table  = 
'GT_EMP'.
  ls_fieldcat-outputlen  = 
'15'.
  ls_fieldcat-fix_column = 
'X'.
  ls_fieldcat-col_pos    = 
'4'.
  
APPEND ls_fieldcat TO lt_fieldcat.
  
CLEAR: ls_fieldcat.
ENDFORM.                    " FIELDCATATALOG
*&---------------------------------------------------------------------*
*&      Form  REFRESH_ALV
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_GRID_NAME  text
*----------------------------------------------------------------------*
FORM refresh_alv  USING    p_grid_name TYPE REF TO cl_gui_alv_grid...
* define local data
  
DATA:ls_stable TYPE lvc_s_stbl.
  ls_stable-row = abap_true.
  ls_stable-col = abap_true.
  
CALL METHOD p_grid_name->refresh_table_display
    
EXPORTING
      is_stable = ls_stable
    
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.
ENDFORM.                    " REFRESH_ALV
*----------------------------------------------------------------------*
***INCLUDE LZ_WM_GATE_EXITO01 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module  STATUS_2000  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_2000 OUTPUT.
  
SET PF-STATUS 'RADIO'.
  
SET TITLEBAR 'RADIO'.
  
"lcl_event_handler DEFINITION
*----------------------------------------------------------------------*
*       CLASS lcl_event_handler IMPLEMENTATION
*----------------------------------------------------------------------*
  
DATA: go_handler    TYPE REF TO lcl_event_handler .
  
DATA: lt_exclude TYPE ui_functions,
      ls_exclude 
TYPE ui_func.
  
REFRESH : lt_exclude[].
  
CLEAR:   ls_exclude.
  
IF go_container IS INITIAL .
    
CREATE OBJECT go_container
      
EXPORTING
        container_name = 
'GC_CON'.
*********************************************************
**Create object alv Grid
*********************************************************
    
CREATE OBJECT gv_grid
      
EXPORTING
        i_parent = go_container.
*---Excluded all Buttons
    ls_exclude = cl_gui_alv_grid=>mc_fc_excl_all.
    
APPEND ls_exclude TO lt_exclude.
    
CLEAR  ls_exclude.
***Perform to design field catalog
    
PERFORM fieldcatatalog.

    ls_layout-cwidth_opt = 
'X' .
    ls_layout-grid_title = 
text-t01.

    
CREATE OBJECT go_handler .
    
SET HANDLER:
    go_handler->handle_hotspot_click 
FOR gv_grid .
    
"*********************************************************
**Call method set table for first display
*********************************************************
    
CALL METHOD gv_grid->set_table_for_first_display
      
EXPORTING
        is_layout                     = ls_layout
        it_toolbar_excluding          = lt_exclude
      
CHANGING
        it_outtab                     = gt_emp[]
        it_fieldcatalog               = lt_fieldcat[]
      
EXCEPTIONS
        invalid_parameter_combination = 
1
        program_error                 = 
2
        too_many_lines                = 
3
        
OTHERS                        = 4.

    
CALL METHOD gv_grid->set_ready_for_input
      
EXPORTING
        i_ready_for_input = 
1.
    
CALL METHOD cl_gui_cfw=>flush.
  
ELSE.
    
CALL METHOD gv_grid->set_frontend_layout
      
EXPORTING
        is_layout = ls_layout.

    
CALL METHOD gv_grid->refresh_table_display.
  
ENDIF.


ENDMODULE.                 " STATUS_2000  OUTPUT
*----------------------------------------------------------------------*
***INCLUDE LZ_WM_GATE_EXITI01 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_2000  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_2000 INPUT.
  
CASE  ok_code.
    
WHEN 'BACK'.
      
LEAVE PROGRAM .
    
WHEN 'CANC'.
*      grid_name = gv_grid .
*      PERFORM refresh_alv USING grid_name .
      
SET SCREEN 0.
    
WHEN 'EXIT'.
      
LEAVE PROGRAM .
*    WHEN 'REFRESH' .
*      grid_name = gv_grid .
*      PERFORM refresh_alv USING grid_name .
    
WHEN 'RELA' .
      
READ TABLE gt_emp INTO gs_emp WITH KEY radio = icon_radiobutton.
      
IF sy-subrc = 0.
        
CLEAR: g_data.
        g_data = gs_emp.
      
ENDIF.
      
SET SCREEN 0.
  
ENDCASE.
ENDMODULE.                 " USER_COMMAND_2000  INPUT

No comments: