REPORT ybharat.
TABLES : vbak.
**********************************************************************
*ALV related delcarations for initial container
DATA : gdt_fieldcat TYPE lvc_t_fcat ,
gds_fieldcat TYPE lvc_s_fcat,
* Referencing Object for Container and ALV Grid
gro_cont TYPE REF TO cl_gui_custom_container,
gro_alv TYPE REF TO cl_gui_alv_grid,
gdf_flag TYPE c,
gds_layout TYPE lvc_s_layo.
**********************************************************************
TYPES : BEGIN OF lts_vbak,
vbeln TYPE vbeln_va,
erdat TYPE erdat,
erzet TYPE erzet,
ernam TYPE ernam,
angdt TYPE angdt_v,
bnddt TYPE bnddt,
audat TYPE audat,
END OF lts_vbak.
DATA : gdt_vbak TYPE STANDARD TABLE OF lts_vbak,
gds_vbak TYPE lts_vbak.
SELECT-OPTIONS: s_vbeln FOR vbak-vbeln.
START-OF-SELECTION.
SELECT * FROM vbak INTO CORRESPONDING FIELDS OF TABLE gdt_vbak
WHERE vbeln IN s_vbeln.
CALL SCREEN 100.
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
SET PF-STATUS 'PF_STATUS'.
SET TITLEBAR 'ALV_TITLE'.
ENDMODULE. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Module PREPARE_CONTAINER_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE prepare_container_0100 OUTPUT.
IF gro_cont IS INITIAL.
* Creating Custom Container
CREATE OBJECT gro_cont
EXPORTING
* parent =
container_name = 'ALV_DISPLAY' " this is the container which we created in the screen 100 layout
* style =
* lifetime = lifetime_default
* repid =
* dynnr =
* no_autodef_progid_dynnr =
* EXCEPTIONS
* cntl_error = 1
* cntl_system_error = 2
* create_error = 3
* lifetime_error = 4
* lifetime_dynpro_dynpro_link = 5
* others = 6
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
* Create an instance of ALV control
CREATE OBJECT gro_alv
EXPORTING
* i_shellstyle = 0
* i_lifetime =
i_parent = gro_cont
* i_appl_events = space
* i_parentdbg =
* i_applogparent =
* i_graphicsparent =
* i_name =
* i_fcat_complete = space
* 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.
* Creating Field Catalog
PERFORM field_catalog.
* Hot spot Event handler
PERFORM hotspot_event_handler1.
* Method for calling ALV grid to display
CALL METHOD gro_alv->set_table_for_first_display
EXPORTING
* is_layout = gds_layout
* is_variant = gdf_variant
* i_save = 'A'
i_default = 'X'
CHANGING
it_outtab = gdt_vbak
it_fieldcatalog = gdt_fieldcat.
ENDIF.
ENDMODULE. " PREPARE_CONTAINER_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Form FIELD_CATALOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM field_catalog .
* refresh fieldcatalog internal table
REFRESH gdt_fieldcat.
CLEAR gds_fieldcat.
PERFORM get_field_info USING 'VBELN' 'Sales Document' '10' 'CHAR' 'X' 'X' 'X'.
PERFORM get_field_info USING 'ERDAT' 'Date on Which Record Was Created' '8' 'CHAR' ' ' ' ' ' '.
PERFORM get_field_info USING 'ERZET' 'Entry time' '6' 'CHAR' ' ' ' ' ' '.
PERFORM get_field_info USING 'ERNAM' 'Name of Person who Created the Object' '12' 'CHAR' ' ' ' ' ' '.
PERFORM get_field_info USING 'ANGDT' 'Quotation/Inquiry is valid from' '8' 'CHAR' ' ' ' ' ' '.
PERFORM get_field_info USING 'BNDDT' 'Date until which bid/quotation is binding (valid-to date)' '8' 'CHAR' ' ' ' ' ' '.
PERFORM get_field_info USING 'AUDAT' 'Document Date (Date Received/Sent)' '8' 'CHAR' ' ' ' ' ' '.
ENDFORM. " FIELD_CATALOG
*&---------------------------------------------------------------------*
*& Form GET_FIELD_INFO
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0161 text
* -->P_0162 text
* -->P_0163 text
* -->P_0164 text
* -->P_0165 text
* -->P_0166 text
* -->P_0167 text
*----------------------------------------------------------------------*
FORM get_field_info USING value(pvf_field) TYPE any
value(pvf_text) TYPE any
value(pvf_len) TYPE i
value(pvf_type) TYPE any
value(pvf_gcf_x) TYPE c
value(pvf_emphasize) TYPE any
value(pvf_hspot) TYPE c.
CLEAR gds_fieldcat.
* Assigning the values to Fieldcat
gds_fieldcat-fieldname = pvf_field.
gds_fieldcat-coltext = pvf_text.
gds_fieldcat-outputlen = pvf_len.
gds_fieldcat-datatype = pvf_type.
gds_fieldcat-key = pvf_gcf_x. " like freeze pane in excel
gds_fieldcat-emphasize = pvf_emphasize. " for shading
gds_fieldcat-hotspot = pvf_hspot.
APPEND gds_fieldcat TO gdt_fieldcat.
ENDFORM. " GET_FIELD_INFO
*&---------------------------------------------------------------------*
*& Class GCL_EVENTS_CLICK
*&---------------------------------------------------------------------*
* Text
*----------------------------------------------------------------------*
CLASS gcl_events_click DEFINITION.
PUBLIC SECTION.
METHODS: meth_hotspot_click FOR EVENT hotspot_click
OF cl_gui_alv_grid
IMPORTING e_row_id e_column_id.
ENDCLASS. "GCL_EVENTS_CLICK
* class for hotspot
DATA gro_events1 TYPE REF TO gcl_events_click.
*&---------------------------------------------------------------------*
*& Class (Implementation) gcl_events_click
*&---------------------------------------------------------------------*
* Text
*----------------------------------------------------------------------*
class gcl_events_click implementation.
METHOD meth_hotspot_click.
CONSTANTS: lcf_vbe TYPE RSEUX-CR_VALUE VALUE 'VF',
lcf_va03 TYPE sy-tcode VALUE 'VF02'.
READ TABLE gdt_vbak INDEX e_row_id INTO gds_vbak.
IF sy-subrc EQ 0.
SET PARAMETER ID lcf_vbe FIELD gds_vbak-vbeln.
CALL TRANSACTION lcf_va03 AND SKIP FIRST SCREEN.
ENDIF.
*
ENDMETHOD. "meth_hotspot_click
endclass. "gcl_events_click
*DATA gro_events1 TYPE REF TO gcl_events_click.
*&---------------------------------------------------------------------*
*& Form HOTSPOT_EVENT_HANDLER1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM hotspot_event_handler1 .
CREATE OBJECT gro_events1.
SET HANDLER gro_events1->meth_hotspot_click FOR gro_alv.
ENDFORM. " HOTSPOT_EVENT_HANDLER1
No comments:
Post a Comment