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

ALV .....uregent plzz (some error message while executing)

Former Member
0 Likes
792

hi plase find the program logic below and i am getting the below error while executing the program.

Error Message :

a line of GT_ITAB2 and GWA_ITAB2 are not mutuvally convertible.

in a Unicode proram GT_ITAB2 must have the same structure layout as GWA_ITAB2 independent of the length of a.Unicode character.Unicode character.

Note : Please correct me if any programm logic incorrect

Program Logic:

&----


*& Report ZAREPAS22

*&

&----


REPORT zarepas22 LINE-SIZE 250.

TABLES : vbak,vbap,likp,lips,vbrk,vbrp,kna1,vbfa.

DATA : ok_code LIKE sy-ucomm,

g_container TYPE scrfname VALUE 'BCALV8_GRID_DEMO_0100_VASU',

docking TYPE REF TO cl_gui_docking_container,

splitter_1 TYPE REF TO cl_gui_splitter_container,

splitter_2 TYPE REF TO cl_gui_splitter_container,

splitter_3 TYPE REF TO cl_gui_splitter_container,

cell_top1 TYPE REF TO cl_gui_container,

cell_bottom1 TYPE REF TO cl_gui_container,

cell_top2 TYPE REF TO cl_gui_container,

cell_bottom2 TYPE REF TO cl_gui_container,

cell_left TYPE REF TO cl_gui_container,

cell_middle TYPE REF TO cl_gui_container,

cell_right TYPE REF TO cl_gui_container,

grid1 TYPE REF TO cl_gui_alv_grid,

grid2 TYPE REF TO cl_gui_alv_grid,

grid3 TYPE REF TO cl_gui_alv_grid,

grid4 TYPE REF TO cl_gui_alv_grid,

grid5 TYPE REF TO cl_gui_alv_grid.

DATA: li_fieldcat1 TYPE lvc_t_fcat,

li_fieldcat2 TYPE lvc_t_fcat,

li_fieldcat3 TYPE lvc_t_fcat,

li_fieldcat4 TYPE lvc_t_fcat,

li_fieldcat5 TYPE lvc_t_fcat,

lv_layout TYPE lvc_s_layo,

lv_variant TYPE disvariant.

TYPES:BEGIN OF gty_itab1,

vbeln TYPE vbak-vbeln,

kunnr TYPE vbak-kunnr,

erdat TYPE vbak-erdat,

END OF gty_itab1.

TYPES:BEGIN OF gty_itab2,

vbeln TYPE vbap-vbeln,

posnr TYPE vbap-posnr,

matnr TYPE vbap-matnr,

kwmeng TYPE vbap-kwmeng,

netwr TYPE vbap-netwr,

END OF gty_itab2.

TYPES:BEGIN OF gty_itab3,

vbeln TYPE likp-vbeln,

ernam TYPE likp-ernam,

erzet TYPE likp-erzet,

posnr TYPE lips-posnr,

matnr TYPE lips-matnr,

END OF gty_itab3.

TYPES:BEGIN OF gty_itab4,

vbeln TYPE vbrk-vbeln,

fkart TYPE vbrk-fkart,

posnr TYPE vbrp-posnr,

fkimg TYPE vbrp-fkimg,

END OF gty_itab4.

TYPES:BEGIN OF gty_itab5,

kunnr TYPE kna1-kunnr,

name1 TYPE kna1-name1,

name2 TYPE kna1-name2,

END OF gty_itab5.

DATA:gt_itab1 TYPE STANDARD TABLE OF gty_itab1,

gwa_itab1 TYPE gty_itab1.

DATA:gt_itab2 TYPE STANDARD TABLE OF gty_itab2,

gwa_itab2 TYPE gty_itab2.

DATA:gt_itab3 TYPE STANDARD TABLE OF gty_itab3,

gwa_itab3 TYPE gty_itab3.

DATA:gt_itab4 TYPE STANDARD TABLE OF gty_itab4,

gwa_itab4 TYPE gty_itab4.

DATA:gt_itab5 TYPE STANDARD TABLE OF gty_itab5,

gwa_itab5 TYPE gty_itab5.

  • Global data

DATA: gt_fieldcat TYPE STANDARD TABLE OF lvc_s_fcat,

gwa_fieldcat LIKE LINE OF gt_fieldcat.

  • Macro to fill field catalog

DEFINE m_fill_field_catalog.

gwa_fieldcat-tabname = &1.

gwa_fieldcat-fieldname = &2.

gwa_fieldcat-scrtext_s = &3.

gwa_fieldcat-scrtext_l = &4.

  • Append field catalog details to field catalog internal table

append gwa_fieldcat to gt_fieldcat.

END-OF-DEFINITION.

*selection screen for selecting range of values

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECT-OPTIONS: s_vbeln FOR vbak-vbeln. " OBLIGATORY. " OBLIGATORY

SELECTION-SCREEN END OF BLOCK b1.

----


  • CLASS lcl_eventhandler DEFINITION

----


CLASS lcl_eventhandler DEFINITION.

PUBLIC SECTION.

CLASS-METHODS:

handle_double_click FOR EVENT double_click OF cl_gui_alv_grid

IMPORTING

e_row

e_column

es_row_no

sender. " sending control, i.e. ALV grid that raised event

ENDCLASS. "lcl_eventhandler DEFINITION

----


  • CLASS lcl_eventhandler IMPLEMENTATION

----


CLASS lcl_eventhandler IMPLEMENTATION.

METHOD handle_double_click.

*DEFINE LOCAL DATA.

*DISTINGUISH ACCORDING TO SENDING GRID INSTANCE

CASE sender.

WHEN grid1.

READ TABLE gt_itab1 INTO gwa_itab1 INDEX e_row-index.

CHECK ( gwa_itab1-vbeln IS NOT INITIAL ).

CALL METHOD grid1->set_current_cell_via_id

EXPORTING

is_row_no = es_row_no.

CALL METHOD cl_gui_cfw=>set_new_ok_code

EXPORTING

new_code = 'ORDER_DETAILS'.

WHEN grid2.

READ TABLE gt_itab2 INTO gwa_itab2 INDEX e_row-index.

CHECK ( gwa_itab2-vbeln IS NOT INITIAL ).

CALL METHOD grid2->set_current_cell_via_id

EXPORTING

is_row_no = es_row_no.

CALL METHOD cl_gui_cfw=>set_new_ok_code

EXPORTING

new_code = 'DELIVERY_DETAILS'.

WHEN grid3.

READ TABLE gt_itab3 INTO gwa_itab3 INDEX e_row-index.

CHECK ( gwa_itab3-vbeln IS NOT INITIAL ).

CALL METHOD grid3->set_current_cell_via_id

EXPORTING

is_row_no = es_row_no.

CALL METHOD cl_gui_cfw=>set_new_ok_code

EXPORTING

new_code = 'BILLING_DETAILS'.

WHEN grid4.

READ TABLE gt_itab4 INTO gwa_itab4 INDEX e_row-index.

CHECK ( gwa_itab4-vbeln IS NOT INITIAL ).

CALL METHOD grid4->set_current_cell_via_id

EXPORTING

is_row_no = es_row_no.

CALL METHOD cl_gui_cfw=>set_new_ok_code

EXPORTING

new_code = 'BILLING_DETAILS'.

WHEN grid5.

READ TABLE gt_itab5 INTO gwa_itab5 INDEX e_row-index.

CHECK ( gwa_itab5-kunnr IS NOT INITIAL ).

WHEN OTHERS.

ENDCASE.

ENDMETHOD. "handle_double_click

ENDCLASS. "lcl_eventhandler IMPLEMENTATION

START-OF-SELECTION.

SELECT vbeln kunnr erdat FROM vbak INTO TABLE gt_itab1

WHERE vbeln IN s_vbeln.

  • creating docking container

CREATE OBJECT docking

EXPORTING

parent = cl_gui_container=>screen0

ratio = 90

EXCEPTIONS

OTHERS = 6.

IF sy-subrc EQ 0.

ENDIF.

  • Create splitter container

CREATE OBJECT splitter_1

EXPORTING

parent = docking

rows = 1

columns = 3

EXCEPTIONS

cntl_error = 1

cntl_system_error = 2

OTHERS = 3.

IF sy-subrc EQ 0.

ENDIF.

  • Get cell container

CALL METHOD splitter_1->get_container

EXPORTING

row = 1

column = 1

RECEIVING

container = cell_left.

CALL METHOD splitter_1->get_container

EXPORTING

row = 1

column = 2

RECEIVING

container = cell_middle.

CALL METHOD splitter_1->get_container

EXPORTING

row = 1

column = 3

RECEIVING

container = cell_right.

  • Create 2nd splitter container

CREATE OBJECT splitter_2

EXPORTING

parent = cell_left

rows = 2

columns = 1

EXCEPTIONS

cntl_error = 1

cntl_system_error = 2

OTHERS = 3.

IF sy-subrc EQ 0.

ENDIF.

  • Get cell container

CALL METHOD splitter_2->get_container

EXPORTING

row = 1

column = 1

RECEIVING

container = cell_top1.

CALL METHOD splitter_2->get_container

EXPORTING

row = 2

column = 1

RECEIVING

container = cell_bottom1.

  • Create 3rd splitter container

CREATE OBJECT splitter_3

EXPORTING

parent = cell_middle

rows = 2

columns = 1

EXCEPTIONS

cntl_error = 1

cntl_system_error = 2

OTHERS = 3.

IF sy-subrc EQ 0.

ENDIF.

  • Get cell container

CALL METHOD splitter_3->get_container

EXPORTING

row = 1

column = 1

RECEIVING

container = cell_top2.

CALL METHOD splitter_3->get_container

EXPORTING

row = 2

column = 1

RECEIVING

container = cell_bottom2.

  • Create ALV grids

CREATE OBJECT grid1

EXPORTING

i_parent = cell_top1

EXCEPTIONS

OTHERS = 5.

IF sy-subrc EQ 0.

ENDIF.

CREATE OBJECT grid2

EXPORTING

i_parent = cell_bottom1

EXCEPTIONS

OTHERS = 5.

IF sy-subrc EQ 0.

ENDIF.

CREATE OBJECT grid3

EXPORTING

i_parent = cell_top2

EXCEPTIONS

OTHERS = 5.

IF sy-subrc EQ 0.

ENDIF.

CREATE OBJECT grid4

EXPORTING

i_parent = cell_bottom2

EXCEPTIONS

OTHERS = 5.

IF sy-subrc EQ 0.

ENDIF.

CREATE OBJECT grid5

EXPORTING

i_parent = cell_right

EXCEPTIONS

OTHERS = 5.

IF sy-subrc EQ 0.

ENDIF.

  • Set event handler

SET HANDLER: lcl_eventhandler=>handle_double_click FOR grid1.

SET HANDLER: lcl_eventhandler=>handle_double_click FOR grid2.

SET HANDLER: lcl_eventhandler=>handle_double_click FOR grid3.

SET HANDLER: lcl_eventhandler=>handle_double_click FOR grid4.

SET HANDLER: lcl_eventhandler=>handle_double_click FOR grid5.

----


  • lv_layout-zebra = 'X'.

  • lv_layout-cwidth_opt = 'X'.

  • lv_variant = 'ZAREPAS22'.

----


  • Display data

PERFORM prepare_alv_fieldcat CHANGING li_fieldcat1.

*commented lines i suppose to include here....

CALL METHOD grid1->set_table_for_first_display

EXPORTING

is_variant = lv_variant

i_save = 'A'

i_default = space

is_layout = lv_layout

CHANGING

it_outtab = gt_itab1

it_fieldcatalog = li_fieldcat1

EXCEPTIONS

OTHERS = 4.

PERFORM prepare_alv_fieldcat CHANGING li_fieldcat2.

CALL METHOD grid2->set_table_for_first_display

EXPORTING

is_variant = lv_variant

i_save = 'A'

i_default = space

is_layout = lv_layout

CHANGING

it_outtab = gt_itab2

it_fieldcatalog = li_fieldcat2

EXCEPTIONS

OTHERS = 4.

PERFORM prepare_alv_fieldcat CHANGING li_fieldcat3.

CALL METHOD grid3->set_table_for_first_display

EXPORTING

is_variant = lv_variant

i_save = 'A'

i_default = space

is_layout = lv_layout

CHANGING

it_outtab = gt_itab3

it_fieldcatalog = li_fieldcat3

EXCEPTIONS

OTHERS = 4.

PERFORM prepare_alv_fieldcat CHANGING li_fieldcat4.

CALL METHOD grid4->set_table_for_first_display

EXPORTING

is_variant = lv_variant

i_save = 'A'

i_default = space

is_layout = lv_layout

CHANGING

it_outtab = gt_itab4

it_fieldcatalog = li_fieldcat4

EXCEPTIONS

OTHERS = 4.

PERFORM prepare_alv_fieldcat CHANGING li_fieldcat5.

CALL METHOD grid5->set_table_for_first_display

EXPORTING

is_variant = lv_variant

i_save = 'A'

i_default = space

is_layout = lv_layout

CHANGING

it_outtab = gt_itab5

it_fieldcatalog = li_fieldcat5

EXCEPTIONS

OTHERS = 4.

  • Link the docking container to the target dynpro

CALL METHOD docking->link

EXPORTING

repid = syst-repid

dynnr = '0100'

EXCEPTIONS

OTHERS = 4.

IF sy-subrc EQ 0.

ENDIF.

  • NOTE: dynpro does not contain any elements (ok_code -> GD_OKCODE)

CALL SCREEN '0100'.

END-OF-SELECTION.

&----


*& Module STATUS_0100 OUTPUT

&----


  • text

----


MODULE status_0100 OUTPUT.

SET PF-STATUS 'STATUS_0100'.

  • SET TITLEBAR 'xxx'.

  • Refresh display of detail ALV list

CALL METHOD grid2->refresh_table_display

EXCEPTIONS

OTHERS = 2.

IF sy-subrc EQ 0.

ENDIF.

  • Refresh display of detail ALV list

CALL METHOD grid3->refresh_table_display

EXCEPTIONS

OTHERS = 2.

IF sy-subrc EQ 0.

ENDIF.

  • Refresh display of detail ALV list

CALL METHOD grid4->refresh_table_display

EXCEPTIONS

OTHERS = 2.

IF sy-subrc EQ 0.

ENDIF.

  • Refresh display of detail ALV list

CALL METHOD grid5->refresh_table_display

EXCEPTIONS

OTHERS = 2.

IF sy-subrc EQ 0.

ENDIF.

ENDMODULE. " STATUS_0100 OUTPUT

&----


*& Module USER_COMMAND_0100 INPUT

&----


  • text

----


MODULE user_command_0100 INPUT.

CASE sy-ucomm.

WHEN 'BACK' OR

'EXIT' OR

'CANCEL'.

SET SCREEN 0.LEAVE SCREEN.

  • USER HAS PUSHED BUTTON "DISPLAY OREDERS"

*

WHEN 'ORDER_DETAILS'.

PERFORM order_show_details.

WHEN 'DELIVERY_DETAILS'.

PERFORM delivery_show_details.

WHEN 'BILLING_DETAILS'.

PERFORM billing_show_details.

WHEN OTHERS.

ENDCASE.

CLEAR : ok_code.

ENDMODULE. " USER_COMMAND_0100 INPUT

&----


*& Form ORDER_SHOW_DETAILS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM order_show_details .

  • define local data

DATA:

ld_row TYPE i,

gwa_itab1 TYPE vbak.

CALL METHOD grid1->get_current_cell

IMPORTING

e_row = ld_row.

READ TABLE gt_itab1 INTO gwa_itab1 INDEX ld_row.

CHECK ( syst-subrc = 0 ).

SELECT kunnr name1 name2 FROM kna1 INTO TABLE gt_itab5

WHERE kunnr = gwa_itab1-kunnr.

SELECT vbeln posnr matnr kwmeng netwr FROM vbap INTO TABLE gt_itab2

WHERE vbeln = gwa_itab1-vbeln.

*REFRESH: gt_LIPS.

ENDFORM. " ORDER_SHOW_DETAILS

&----


*& Form DELIVERY_SHOW_DETAILS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM delivery_show_details .

  • define local data

DATA:

ld_row TYPE i,

gwa_itab2 TYPE vbap.

CALL METHOD grid2->get_current_cell

IMPORTING

e_row = ld_row.

READ TABLE gt_itab2 INTO gwa_itab2 INDEX ld_row.

CHECK ( syst-subrc = 0 ).

SELECT SINGLE * FROM vbfa WHERE vbelv = gwa_itab2-vbeln

AND vbtyp_n = 'J'.

SELECT posnr matnr FROM lips INTO TABLE gt_itab3

WHERE vbeln = vbfa-vbeln

AND vgpos = gwa_itab2-posnr.

*REFRESH: gt_LIPS.

ENDFORM. " DELIVERY_SHOW_DETAILS

&----


*& Form BILLING_SHOW_DETAILS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM billing_show_details .

  • define local data

DATA:

ld_row TYPE i,

gwa_itab3 TYPE lips.

CALL METHOD grid3->get_current_cell

IMPORTING

e_row = ld_row.

READ TABLE gt_itab3 INTO gwa_itab3 INDEX ld_row.

CHECK ( syst-subrc = 0 ).

SELECT SINGLE * FROM vbfa WHERE vbelv = gwa_itab3-vbeln

AND vbtyp_n = 'M'.

SELECT posnr fkimg FROM vbrp INTO TABLE gt_itab4

WHERE vbeln = vbfa-vbeln

AND vgpos = gwa_itab3-posnr.

ENDFORM. " BILLING_SHOW_DETAILS

&----


*& Form prepare_alv_fieldcat

&----


FORM prepare_alv_fieldcat CHANGING lpi_fieldcat TYPE lvc_t_fcat.

m_fill_field_catalog 'GTY_ITAB1' 'VBELN' 'Ord Num'(004) 'Order

Number'(005).

m_fill_field_catalog 'GTY_ITAB1' 'kunnr' 'sold party'(006) 'SOLD TO

PARTY'(007).

m_fill_field_catalog 'GTY_ITAB1' 'ERDAT' 'Ord Date'(008) 'Order Date'(009).

lpi_fieldcat[] = gt_fieldcat[].

REFRESH gt_fieldcat.

ENDFORM. "prepare_alv_fieldcat

&----


*& Form prepare_alv_fieldcat

&----


  • text

----


  • -->LPI_FIELDCAT text

----


FORM prepare_alv_fieldcat CHANGING lpi_fieldcat TYPE lvc_t_fcat.

m_fill_field_catalog 'GTY_ITAB2' 'vbeln' 'sales Doc'(010) 'sales

document'(011).

m_fill_field_catalog 'GTY_ITAB2' 'POSNR' 'sales Doc'(012) 'sales

documentITEM'(013)

m_fill_field_catalog 'GTY_ITAB2' 'matnr' 'Mat num'(014) 'material

number'(015).

m_fill_field_catalog 'GTY_ITAB2' 'kwmeng' 'cum ord qty'(016) 'cumilative

order qty'(017).

m_fill_field_catalog 'GTY_ITAB2' 'netwr' 'nwt val'(018) 'net val of

item'(019).

lpi_fieldcat1[] = gt_fieldcat[].

REFRESH gt_fieldcat.

ENDFORM. "prepare_alv_fieldcat

&----


*& Form prepare_alv_fieldcat

&----


  • text

----


  • -->LPI_FIELDCAT text

----


FORM prepare_alv_fieldcat CHANGING lpi_fieldcat TYPE lvc_t_fcat.

m_fill_field_catalog 'GTY_ITAB3' 'posnr' 'del item'(020) 'delivery

item'(021).

m_fill_field_catalog 'GTY_ITAB3' 'matnr' 'mat num'(022) 'material

number'(023)

lpi_fieldcat1[] = gt_fieldcat[].

REFRESH gt_fieldcat.

ENDFORM. "prepare_alv_fieldcat

&----


*& Form prepare_alv_fieldcat

&----


  • text

----


  • -->LPI_FIELDCAT text

----


FORM prepare_alv_fieldcat CHANGING lpi_fieldcat TYPE lvc_t_fcat.

m_fill_field_catalog 'GTY_ITAB4' 'posnr' 'bill item'(024) 'billing

item'(025).

m_fill_field_catalog 'GTY_ITAB4' 'fkimg' 'act inv'(026) 'actuval inv

qty'(028)

lpi_fieldcat1[] = gt_fieldcat[].

REFRESH gt_fieldcat.

ENDFORM. "prepare_alv_fieldcat

&----


*& Form prepare_alv_fieldcat

&----


  • text

----


  • -->LPI_FIELDCAT text

----


FORM prepare_alv_fieldcat CHANGING lpi_fieldcat TYPE lvc_t_fcat.

m_fill_field_catalog 'GTY_ITAB5' 'kunnr' 'cust no'(029) 'cust

number'(030).

m_fill_field_catalog 'GTY_ITAB5' 'name1' 'name1'(031) 'name1'(032).

m_fill_field_catalog 'GTY_ITAB5' 'name2' 'name2'(033) 'name2'(034).

lpi_fieldcat1[] = gt_fieldcat[].

REFRESH gt_fieldcat.

ENDFORM. "prepare_alv_fieldcat

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
617

there are two data declaration of gwa_itab2

gwa_itab2 TYPE vbap.

5 REPLIES 5
Read only

Former Member
0 Likes
618

there are two data declaration of gwa_itab2

gwa_itab2 TYPE vbap.

Read only

Former Member
0 Likes
617

hi aparna thanks for ur imm responce and your valuble time....

and one more thing i am able to executethe program and field values aare populating in the grid1...

1) now if you click in on grid1 then the item details should poupulat ein grid2 and customer details in grid5.

2) if you click on item details that is grid2 then shipping details should populate in grid3

3)if you click on shipping details that is grid3 then billing details should populate in grid4.

could you please guide me the mistakes in the below program logiic....

&----


*& Report ZAREPAS22

*&

&----


REPORT zarepas22 LINE-SIZE 250.

TABLES : vbak,vbap,likp,lips,vbrk,vbrp,kna1,vbfa.

DATA : ok_code LIKE sy-ucomm,

g_container TYPE scrfname VALUE 'BCALV8_GRID_DEMO_0100_VASU',

docking TYPE REF TO cl_gui_docking_container,

splitter_1 TYPE REF TO cl_gui_splitter_container,

splitter_2 TYPE REF TO cl_gui_splitter_container,

splitter_3 TYPE REF TO cl_gui_splitter_container,

cell_top1 TYPE REF TO cl_gui_container,

cell_bottom1 TYPE REF TO cl_gui_container,

cell_top2 TYPE REF TO cl_gui_container,

cell_bottom2 TYPE REF TO cl_gui_container,

cell_left TYPE REF TO cl_gui_container,

cell_middle TYPE REF TO cl_gui_container,

cell_right TYPE REF TO cl_gui_container,

grid1 TYPE REF TO cl_gui_alv_grid,

grid2 TYPE REF TO cl_gui_alv_grid,

grid3 TYPE REF TO cl_gui_alv_grid,

grid4 TYPE REF TO cl_gui_alv_grid,

grid5 TYPE REF TO cl_gui_alv_grid.

DATA: li_fieldcat1 TYPE lvc_t_fcat,

li_fieldcat2 TYPE lvc_t_fcat,

li_fieldcat3 TYPE lvc_t_fcat,

li_fieldcat4 TYPE lvc_t_fcat,

li_fieldcat5 TYPE lvc_t_fcat,

lv_layout TYPE lvc_s_layo,

lv_variant TYPE disvariant.

TYPES:BEGIN OF gty_itab1,

vbeln TYPE vbak-vbeln,

kunnr TYPE vbak-kunnr,

erdat TYPE vbak-erdat,

END OF gty_itab1.

TYPES:BEGIN OF gty_itab2,

vbeln TYPE vbap-vbeln,

posnr TYPE vbap-posnr,

matnr TYPE vbap-matnr,

kwmeng TYPE vbap-kwmeng,

netwr TYPE vbap-netwr,

END OF gty_itab2.

TYPES:BEGIN OF gty_itab3,

vbeln TYPE likp-vbeln,

ernam TYPE likp-ernam,

erzet TYPE likp-erzet,

posnr TYPE lips-posnr,

matnr TYPE lips-matnr,

END OF gty_itab3.

TYPES:BEGIN OF gty_itab4,

vbeln TYPE vbrk-vbeln,

fkart TYPE vbrk-fkart,

posnr TYPE vbrp-posnr,

fkimg TYPE vbrp-fkimg,

END OF gty_itab4.

TYPES:BEGIN OF gty_itab5,

kunnr TYPE kna1-kunnr,

name1 TYPE kna1-name1,

name2 TYPE kna1-name2,

END OF gty_itab5.

DATA:gt_itab1 TYPE STANDARD TABLE OF gty_itab1,

gwa_itab1 TYPE gty_itab1.

DATA:gt_itab2 TYPE STANDARD TABLE OF gty_itab2,

gwa_itab2 TYPE gty_itab2.

DATA:gt_itab3 TYPE STANDARD TABLE OF gty_itab3,

gwa_itab3 TYPE gty_itab3.

DATA:gt_itab4 TYPE STANDARD TABLE OF gty_itab4,

gwa_itab4 TYPE gty_itab4.

DATA:gt_itab5 TYPE STANDARD TABLE OF gty_itab5,

gwa_itab5 TYPE gty_itab5.

  • Global data

DATA: gt_fieldcat TYPE STANDARD TABLE OF lvc_s_fcat,

gwa_fieldcat LIKE LINE OF gt_fieldcat.

  • Macro to fill field catalog

DEFINE m_fill_field_catalog.

gwa_fieldcat-tabname = &1.

gwa_fieldcat-fieldname = &2.

gwa_fieldcat-scrtext_s = &3.

gwa_fieldcat-scrtext_l = &4.

  • Append field catalog details to field catalog internal table

append gwa_fieldcat to gt_fieldcat.

END-OF-DEFINITION.

*selection screen for selecting range of values

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECT-OPTIONS: s_vbeln FOR vbak-vbeln. " OBLIGATORY. " OBLIGATORY

SELECTION-SCREEN END OF BLOCK b1.

----


  • CLASS lcl_eventhandler DEFINITION

----


CLASS lcl_eventhandler DEFINITION.

PUBLIC SECTION.

CLASS-METHODS:

handle_double_click FOR EVENT double_click OF cl_gui_alv_grid

IMPORTING

e_row

e_column

es_row_no

sender. " sending control, i.e. ALV grid that raised event

ENDCLASS. "lcl_eventhandler DEFINITION

----


  • CLASS lcl_eventhandler IMPLEMENTATION

----


CLASS lcl_eventhandler IMPLEMENTATION.

METHOD handle_double_click.

*DEFINE LOCAL DATA.

*DISTINGUISH ACCORDING TO SENDING GRID INSTANCE

CASE sender.

WHEN grid1.

READ TABLE gt_itab1 INTO gwa_itab1 INDEX e_row-index.

CHECK ( gwa_itab1-vbeln IS NOT INITIAL ).

CALL METHOD grid1->set_current_cell_via_id

EXPORTING

is_row_no = es_row_no.

CALL METHOD cl_gui_cfw=>set_new_ok_code

EXPORTING

new_code = 'ORDER_DETAILS'.

WHEN grid2.

READ TABLE gt_itab2 INTO gwa_itab2 INDEX e_row-index.

CHECK ( gwa_itab2-vbeln IS NOT INITIAL ).

CALL METHOD grid2->set_current_cell_via_id

EXPORTING

is_row_no = es_row_no.

CALL METHOD cl_gui_cfw=>set_new_ok_code

EXPORTING

new_code = 'DELIVERY_DETAILS'.

WHEN grid3.

READ TABLE gt_itab3 INTO gwa_itab3 INDEX e_row-index.

CHECK ( gwa_itab3-vbeln IS NOT INITIAL ).

CALL METHOD grid3->set_current_cell_via_id

EXPORTING

is_row_no = es_row_no.

CALL METHOD cl_gui_cfw=>set_new_ok_code

EXPORTING

new_code = 'BILLING_DETAILS'.

WHEN grid4.

READ TABLE gt_itab4 INTO gwa_itab4 INDEX e_row-index.

CHECK ( gwa_itab4-vbeln IS NOT INITIAL ).

CALL METHOD grid4->set_current_cell_via_id

EXPORTING

is_row_no = es_row_no.

CALL METHOD cl_gui_cfw=>set_new_ok_code

EXPORTING

new_code = 'BILLING_DETAILS'.

WHEN grid5.

READ TABLE gt_itab5 INTO gwa_itab5 INDEX e_row-index.

CHECK ( gwa_itab5-kunnr IS NOT INITIAL ).

WHEN OTHERS.

ENDCASE.

ENDMETHOD. "handle_double_click

ENDCLASS. "lcl_eventhandler IMPLEMENTATION

START-OF-SELECTION.

SELECT vbeln kunnr erdat FROM vbak INTO TABLE gt_itab1

WHERE vbeln IN s_vbeln.

  • creating docking container

CREATE OBJECT docking

EXPORTING

parent = cl_gui_container=>screen0

ratio = 90

EXCEPTIONS

OTHERS = 6.

IF sy-subrc EQ 0.

ENDIF.

  • Create splitter container

CREATE OBJECT splitter_1

EXPORTING

parent = docking

rows = 1

columns = 3

EXCEPTIONS

cntl_error = 1

cntl_system_error = 2

OTHERS = 3.

IF sy-subrc EQ 0.

ENDIF.

  • Get cell container

CALL METHOD splitter_1->get_container

EXPORTING

row = 1

column = 1

RECEIVING

container = cell_left.

CALL METHOD splitter_1->get_container

EXPORTING

row = 1

column = 2

RECEIVING

container = cell_middle.

CALL METHOD splitter_1->get_container

EXPORTING

row = 1

column = 3

RECEIVING

container = cell_right.

  • Create 2nd splitter container

CREATE OBJECT splitter_2

EXPORTING

parent = cell_left

rows = 2

columns = 1

EXCEPTIONS

cntl_error = 1

cntl_system_error = 2

OTHERS = 3.

IF sy-subrc EQ 0.

ENDIF.

  • Get cell container

CALL METHOD splitter_2->get_container

EXPORTING

row = 1

column = 1

RECEIVING

container = cell_top1.

CALL METHOD splitter_2->get_container

EXPORTING

row = 2

column = 1

RECEIVING

container = cell_bottom1.

  • Create 3rd splitter container

CREATE OBJECT splitter_3

EXPORTING

parent = cell_middle

rows = 2

columns = 1

EXCEPTIONS

cntl_error = 1

cntl_system_error = 2

OTHERS = 3.

IF sy-subrc EQ 0.

ENDIF.

  • Get cell container

CALL METHOD splitter_3->get_container

EXPORTING

row = 1

column = 1

RECEIVING

container = cell_top2.

CALL METHOD splitter_3->get_container

EXPORTING

row = 2

column = 1

RECEIVING

container = cell_bottom2.

  • Create ALV grids

CREATE OBJECT grid1

EXPORTING

i_parent = cell_top1

EXCEPTIONS

OTHERS = 5.

IF sy-subrc EQ 0.

ENDIF.

CREATE OBJECT grid2

EXPORTING

i_parent = cell_bottom1

EXCEPTIONS

OTHERS = 5.

IF sy-subrc EQ 0.

ENDIF.

CREATE OBJECT grid3

EXPORTING

i_parent = cell_top2

EXCEPTIONS

OTHERS = 5.

IF sy-subrc EQ 0.

ENDIF.

CREATE OBJECT grid4

EXPORTING

i_parent = cell_bottom2

EXCEPTIONS

OTHERS = 5.

IF sy-subrc EQ 0.

ENDIF.

CREATE OBJECT grid5

EXPORTING

i_parent = cell_right

EXCEPTIONS

OTHERS = 5.

IF sy-subrc EQ 0.

ENDIF.

  • Set event handler

SET HANDLER: lcl_eventhandler=>handle_double_click FOR grid1.

SET HANDLER: lcl_eventhandler=>handle_double_click FOR grid2.

SET HANDLER: lcl_eventhandler=>handle_double_click FOR grid3.

SET HANDLER: lcl_eventhandler=>handle_double_click FOR grid4.

SET HANDLER: lcl_eventhandler=>handle_double_click FOR grid5.

----


  • lv_layout-zebra = 'X'.

  • lv_layout-cwidth_opt = 'X'.

  • lv_variant = 'ZAREPAS22'.

----


  • Display data

PERFORM prepare_alv_fieldcat1 CHANGING li_fieldcat1.

*commented lines i suppose to include here....

CALL METHOD grid1->set_table_for_first_display

EXPORTING

is_variant = lv_variant

i_save = 'A'

i_default = space

is_layout = lv_layout

CHANGING

it_outtab = gt_itab1

it_fieldcatalog = li_fieldcat1

EXCEPTIONS

OTHERS = 4.

PERFORM prepare_alv_fieldcat2 CHANGING li_fieldcat2.

CALL METHOD grid2->set_table_for_first_display

EXPORTING

is_variant = lv_variant

i_save = 'A'

i_default = space

is_layout = lv_layout

CHANGING

it_outtab = gt_itab2

it_fieldcatalog = li_fieldcat2

EXCEPTIONS

OTHERS = 4.

PERFORM prepare_alv_fieldcat3 CHANGING li_fieldcat3.

CALL METHOD grid3->set_table_for_first_display

EXPORTING

is_variant = lv_variant

i_save = 'A'

i_default = space

is_layout = lv_layout

CHANGING

it_outtab = gt_itab3

it_fieldcatalog = li_fieldcat3

EXCEPTIONS

OTHERS = 4.

PERFORM prepare_alv_fieldcat4 CHANGING li_fieldcat4.

CALL METHOD grid4->set_table_for_first_display

EXPORTING

is_variant = lv_variant

i_save = 'A'

i_default = space

is_layout = lv_layout

CHANGING

it_outtab = gt_itab4

it_fieldcatalog = li_fieldcat4

EXCEPTIONS

OTHERS = 4.

PERFORM prepare_alv_fieldcat5 CHANGING li_fieldcat5.

CALL METHOD grid5->set_table_for_first_display

EXPORTING

is_variant = lv_variant

i_save = 'A'

i_default = space

is_layout = lv_layout

CHANGING

it_outtab = gt_itab5

it_fieldcatalog = li_fieldcat5

EXCEPTIONS

OTHERS = 4.

  • Link the docking container to the target dynpro

CALL METHOD docking->link

EXPORTING

repid = syst-repid

dynnr = '0100'

EXCEPTIONS

OTHERS = 4.

IF sy-subrc EQ 0.

ENDIF.

  • NOTE: dynpro does not contain any elements (ok_code -> GD_OKCODE)

CALL SCREEN '0100'.

END-OF-SELECTION.

&----


*& Module STATUS_0100 OUTPUT

&----


  • text

----


MODULE status_0100 OUTPUT.

SET PF-STATUS 'STATUS_0100'.

  • SET TITLEBAR 'xxx'.

  • Refresh display of detail ALV list

CALL METHOD grid2->refresh_table_display

EXCEPTIONS

OTHERS = 2.

IF sy-subrc EQ 0.

ENDIF.

  • Refresh display of detail ALV list

CALL METHOD grid3->refresh_table_display

EXCEPTIONS

OTHERS = 2.

IF sy-subrc EQ 0.

ENDIF.

  • Refresh display of detail ALV list

CALL METHOD grid4->refresh_table_display

EXCEPTIONS

OTHERS = 2.

IF sy-subrc EQ 0.

ENDIF.

  • Refresh display of detail ALV list

CALL METHOD grid5->refresh_table_display

EXCEPTIONS

OTHERS = 2.

IF sy-subrc EQ 0.

ENDIF.

ENDMODULE. " STATUS_0100 OUTPUT

&----


*& Module USER_COMMAND_0100 INPUT

&----


  • text

----


MODULE user_command_0100 INPUT.

CASE sy-ucomm.

WHEN 'BACK' OR

'EXIT' OR

'CANCEL'.

SET SCREEN 0.LEAVE SCREEN.

  • USER HAS PUSHED BUTTON "DISPLAY OREDERS"

*

WHEN 'ORDER_DETAILS'.

PERFORM order_show_details.

WHEN 'DELIVERY_DETAILS'.

PERFORM delivery_show_details.

WHEN 'BILLING_DETAILS'.

PERFORM billing_show_details.

WHEN OTHERS.

ENDCASE.

CLEAR : ok_code.

ENDMODULE. " USER_COMMAND_0100 INPUT

&----


*& Form ORDER_SHOW_DETAILS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM order_show_details .

  • define local data

DATA:

ld_row TYPE i,

gwa_itab1 TYPE vbak.

CALL METHOD grid1->get_current_cell

IMPORTING

e_row = ld_row.

READ TABLE gt_itab1 INTO gwa_itab1 INDEX ld_row.

CHECK ( syst-subrc = 0 ).

SELECT kunnr name1 name2 FROM kna1 INTO TABLE gt_itab5

WHERE kunnr = gwa_itab1-kunnr.

SELECT vbeln posnr matnr kwmeng netwr FROM vbap INTO TABLE gt_itab2

WHERE vbeln = gwa_itab1-vbeln.

*REFRESH: gt_LIPS.

ENDFORM. " ORDER_SHOW_DETAILS

&----


*& Form DELIVERY_SHOW_DETAILS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM delivery_show_details .

  • define local data

DATA:

ld_row TYPE i.

  • gwa_itab2 TYPE vbap.

CALL METHOD grid2->get_current_cell

IMPORTING

e_row = ld_row.

READ TABLE gt_itab2 INTO gwa_itab2 INDEX ld_row.

CHECK ( syst-subrc = 0 ).

SELECT SINGLE * FROM vbfa WHERE vbelv = gwa_itab2-vbeln

AND vbtyp_n = 'J'.

SELECT posnr matnr FROM lips INTO TABLE gt_itab3

WHERE vbeln = vbfa-vbeln

AND vgpos = gwa_itab2-posnr.

*REFRESH: gt_LIPS.

ENDFORM. " DELIVERY_SHOW_DETAILS

&----


*& Form BILLING_SHOW_DETAILS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM billing_show_details .

  • define local data

DATA:

ld_row TYPE i.

  • gwa_itab3 TYPE lips.

CALL METHOD grid3->get_current_cell

IMPORTING

e_row = ld_row.

READ TABLE gt_itab3 INTO gwa_itab3 INDEX ld_row.

CHECK ( syst-subrc = 0 ).

SELECT SINGLE * FROM vbfa WHERE vbelv = gwa_itab3-vbeln

AND vbtyp_n = 'M'.

SELECT posnr fkimg FROM vbrp INTO TABLE gt_itab4

WHERE vbeln = vbfa-vbeln

AND vgpos = gwa_itab3-posnr.

ENDFORM. " BILLING_SHOW_DETAILS

&----


*& Form prepare_alv_fieldcat

&----


FORM prepare_alv_fieldcat1 CHANGING lpi_fieldcat1 TYPE lvc_t_fcat.

m_fill_field_catalog 'GTY_ITAB1' 'VBELN' 'Ord Num'(004) 'Order Number'(005).

m_fill_field_catalog 'GTY_ITAB1' 'kunnr' 'sold party'(006) 'SOLD TO PARTY'(007).

m_fill_field_catalog 'GTY_ITAB1' 'ERDAT' 'Ord Date'(008) 'Order Date'(009).

lpi_fieldcat1[] = gt_fieldcat[].

REFRESH gt_fieldcat.

ENDFORM. "prepare_alv_fieldcat

&----


*& Form prepare_alv_fieldcat

&----


  • text

----


  • -->LPI_FIELDCAT text

----


FORM prepare_alv_fieldcat2 CHANGING lpi_fieldcat2 TYPE lvc_t_fcat.

m_fill_field_catalog 'GTY_ITAB2' 'vbeln' 'sales Doc'(010) 'sales document'(011).

m_fill_field_catalog 'GTY_ITAB2' 'POSNR' 'sales Doc'(012) 'sales documentITEM'(013).

m_fill_field_catalog 'GTY_ITAB2' 'matnr' 'Mat num'(014) 'material number'(015).

m_fill_field_catalog 'GTY_ITAB2' 'kwmeng' 'cum ord qty'(016) 'cumilative order qty'(017).

m_fill_field_catalog 'GTY_ITAB2' 'netwr' 'nwt val'(018) 'net val of item'(019).

lpi_fieldcat2[] = gt_fieldcat[].

REFRESH gt_fieldcat.

ENDFORM. "prepare_alv_fieldcat

&----


*& Form prepare_alv_fieldcat

&----


  • text

----


  • -->LPI_FIELDCAT text

----


FORM prepare_alv_fieldcat3 CHANGING lpi_fieldcat3 TYPE lvc_t_fcat.

m_fill_field_catalog 'GTY_ITAB3' 'posnr' 'del item'(020) 'delivery item'(021).

m_fill_field_catalog 'GTY_ITAB3' 'matnr' 'mat num'(022) 'material number'(023).

lpi_fieldcat3[] = gt_fieldcat[].

REFRESH gt_fieldcat.

ENDFORM. "prepare_alv_fieldcat

&----


*& Form prepare_alv_fieldcat

&----


  • text

----


  • -->LPI_FIELDCAT text

----


FORM prepare_alv_fieldcat4 CHANGING lpi_fieldcat4 TYPE lvc_t_fcat.

m_fill_field_catalog 'GTY_ITAB4' 'posnr' 'bill item'(024) 'billing item'(025).

m_fill_field_catalog 'GTY_ITAB4' 'fkimg' 'act inv'(026) 'actuval inv qty'(028).

lpi_fieldcat4[] = gt_fieldcat[].

REFRESH gt_fieldcat.

ENDFORM. "prepare_alv_fieldcat

&----


*& Form prepare_alv_fieldcat

&----


  • text

----


  • -->LPI_FIELDCAT text

----


FORM prepare_alv_fieldcat5 CHANGING lpi_fieldcat5 TYPE lvc_t_fcat.

m_fill_field_catalog 'GTY_ITAB5' 'kunnr' 'cust no'(029) 'cust number'(030).

m_fill_field_catalog 'GTY_ITAB5' 'name1' 'name1'(031) 'name1'(032).

m_fill_field_catalog 'GTY_ITAB5' 'name2' 'name2'(033) 'name2'(034).

lpi_fieldcat5[] = gt_fieldcat[].

REFRESH gt_fieldcat.

ENDFORM. "prepare_alv_fieldcat

Read only

Former Member
0 Likes
617

could you please respond any one of you for below issuee.....

thanks in adavance...

Read only

Former Member
0 Likes
617

Hi all thanks for supporting me...

i had solved the issue and mistake what i did is .....

between FORM and ENDFORM

while PERFOM FIELDCATLOG with in quotes the fileds i kept in small letters

i made mistake like below :

m_fill_field_catalog 'GTY_ITAB5' 'kunnr' 'cust no'(029) 'cust number'(030).

m_fill_field_catalog 'GTY_ITAB5' 'name1' 'name1'(031) 'name1'(032).

correct process:

m_fill_field_catalog 'GTY_ITAB5' 'KUNNR' 'cust no'(029) 'cust number'(030).

m_fill_field_catalog 'GTY_ITAB5' 'NAME1' 'name1'(031) 'name1'(032).

Read only

Former Member
0 Likes
617

thanks for supporting aparna shekar...:)