‎2008 May 02 8:28 PM
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
‎2008 May 02 8:34 PM
there are two data declaration of gwa_itab2
gwa_itab2 TYPE vbap.
‎2008 May 02 8:34 PM
there are two data declaration of gwa_itab2
gwa_itab2 TYPE vbap.
‎2008 May 02 8:49 PM
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
‎2008 May 02 10:19 PM
could you please respond any one of you for below issuee.....
thanks in adavance...
‎2008 May 02 11:46 PM
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).
‎2008 May 02 11:46 PM