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

Issue with the code

Former Member
0 Likes
368

Hi all,

Iam having an issue with the following piece of code

data :gs_layout type lvc_s_layo.

types : begin of t_final.

INCLUDE STRUCTURE Ztest.

TYPES : cost like mbew-verpr,

end of t_final.

data : i_final type table of t_final.

i tried both these things but both of them is giving a dump error

  • CALL METHOD grid1->set_table_for_first_display

  • EXPORTING i_structure_name = 'T_FINAL'

  • CHANGING it_outtab = i_FINAL.

call method grid1->set_table_for_first_display

exporting i_structure_name = 'T_FINAL'

is_layout = gs_layout

changing it_outtab = i_FINAL.

but this thing worked for me

DATA: gt_outtab TYPE TABLE OF ztest,

itab TYPE TABLE OF ztest.

CALL METHOD grid1->set_table_for_first_display

EXPORTING i_structure_name = 'ZTEST'

CHANGING it_outtab = itab.

But my problem i sthat i need to add the cost to the table structure

This is the error

A RAISE statement in the program "CL_GUI_ALV_GRID===============CP " raised the

exception

condition "NO_FIELDCATALOG_AVAILABLE".

Since the exception was not intercepted by a superior program

in the hierarchy, processing was terminated.

Thanks in adv

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
344

Hi,

You did not pass the field catalog internal table to this method call.

Use this code

***********************************************************************

  • Class definition :

***********************************************************************

----


  • CLASS v_lcl_event_receiver DEFINITION

----


CLASS v_lcl_event_receiver DEFINITION.

PUBLIC SECTION.

METHODS:

handle_print_top_of_page FOR EVENT print_top_of_page OF

cl_gui_alv_grid,

handle_top_of_page FOR EVENT top_of_page OF

cl_gui_alv_grid.

ENDCLASS.

----


  • CLASS V_LCL_EVENT_RECEIVER IMPLEMENTATION

----


CLASS v_lcl_event_receiver IMPLEMENTATION.

METHOD handle_print_top_of_page.

IF sy-pagno = 1.

PERFORM top_of_page.

ENDIF.

ENDMETHOD.

METHOD handle_top_of_page.

PERFORM top_of_page.

ENDMETHOD.

ENDCLASS.

DATA: v_event_receiver TYPE REF TO v_lcl_event_receiver.

FORM top_of_page.

WRITE: text-020,

/

ENDFORM. " top_of_page

In PBo of the screen

DATA: v_split TYPE REF TO cl_gui_easy_splitter_container,

v_contnr_top TYPE REF TO cl_gui_container,

v_contnr_bot TYPE REF TO cl_gui_container,

v_grid_02 TYPE REF TO cl_gui_alv_grid,

v_html TYPE REF TO cl_dd_document,

v_text20(255) TYPE c,

v_text16(255) TYPE c,

FORM f9000_objects_create.

IF cl_gui_alv_grid=>offline( ) IS INITIAL.

Create a container

CREATE OBJECT o_dockingcontainer

EXPORTING

ratio = '95'

EXCEPTIONS

cntl_error = 1

cntl_system_error = 2

create_error = 3

lifetime_error = 4

lifetime_dynpro_dynpro_link = 5

others = 6.

IF sy-subrc NE 0.

MESSAGE i000 WITH text-e01."Error in creating Docking container

LEAVE LIST-PROCESSING.

ENDIF.

CREATE OBJECT v_split

EXPORTING

parent = o_dockingcontainer

  • ORIENTATION = 0

sash_position = 25

with_border = 0

EXCEPTIONS

cntl_error = 1

cntl_system_error = 2

others = 3.

IF sy-subrc NE 0.

MESSAGE i000 WITH text-e01."Error in creating Docking container

LEAVE LIST-PROCESSING.

ENDIF.

  • Get the containers of the splitter control

v_contnr_top = v_split->top_left_container.

v_contnr_bot = v_split->bottom_right_container.

CREATE OBJECT o_alvgrid

EXPORTING

i_parent = o_dockingcontainer.

  • Create an instance of alv control

CREATE OBJECT o_alvgrid

EXPORTING i_parent = v_contnr_bot.

  • Object for display of selection parameters in HTML top container

CREATE OBJECT v_html

EXPORTING

style = 'ALV_GRID'.

  • Must be after the SET HANDLER for TOP_OF_PAGE and foreground only

CALL METHOD o_alvgrid->list_processing_events

EXPORTING i_event_name = 'TOP_OF_PAGE'

i_dyndoc_id = v_html.

v_text20 = text-020(summary Record counts)Any text.

CALL METHOD v_html->add_gap

EXPORTING

width = 120.

CALL METHOD v_html->add_text

EXPORTING

text = v_text20.

CALL METHOD v_html->new_line.

    • Display Text-016

v_text16 = text-016.

CALL METHOD v_html->add_gap

EXPORTING

width = 1.

CALL METHOD v_html->add_text

EXPORTING

text = v_text16.

v_text16 = v_sap_recon.

CALL METHOD v_html->add_gap

EXPORTING

width = 1.

CALL METHOD v_html->add_text

EXPORTING

text = v_text16.

CALL METHOD v_html->new_line.

  • Display the data

CALL METHOD v_html->display_document

EXPORTING

parent = v_contnr_top.

  • Handle the event

CALL METHOD o_alvgrid->list_processing_events

EXPORTING i_event_name = 'PRINT_TOP_OF_PAGE'.

IN PBO while populating in the output table

FORM f9004_display_data TABLES p_report_tab

p_fieldcat.

CALL METHOD o_alvgrid->set_table_for_first_display

EXPORTING

is_variant = w_variant

i_save = c_a

is_layout = w_layout

CHANGING

it_outtab = p_report_tab[]

it_fieldcatalog = p_fieldcat[]

EXCEPTIONS

invalid_parameter_combination = 1

program_error = 2

too_many_lines = 3

OTHERS = 4.

IF sy-subrc <> 0.

MESSAGE i000 WITH text-e06."Error in ALV report display

LEAVE LIST-PROCESSING.

ENDIF.

  • Create object

IF v_event_receiver IS INITIAL.

CREATE OBJECT v_event_receiver.

ENDIF.

SET HANDLER v_event_receiver->handle_print_top_of_page FOR o_alvgrid.

SET HANDLER v_event_receiver->handle_top_of_page FOR o_alvgrid.

Thanks

Mahesh

3 REPLIES 3
Read only

Former Member
0 Likes
345

Hi,

You did not pass the field catalog internal table to this method call.

Use this code

***********************************************************************

  • Class definition :

***********************************************************************

----


  • CLASS v_lcl_event_receiver DEFINITION

----


CLASS v_lcl_event_receiver DEFINITION.

PUBLIC SECTION.

METHODS:

handle_print_top_of_page FOR EVENT print_top_of_page OF

cl_gui_alv_grid,

handle_top_of_page FOR EVENT top_of_page OF

cl_gui_alv_grid.

ENDCLASS.

----


  • CLASS V_LCL_EVENT_RECEIVER IMPLEMENTATION

----


CLASS v_lcl_event_receiver IMPLEMENTATION.

METHOD handle_print_top_of_page.

IF sy-pagno = 1.

PERFORM top_of_page.

ENDIF.

ENDMETHOD.

METHOD handle_top_of_page.

PERFORM top_of_page.

ENDMETHOD.

ENDCLASS.

DATA: v_event_receiver TYPE REF TO v_lcl_event_receiver.

FORM top_of_page.

WRITE: text-020,

/

ENDFORM. " top_of_page

In PBo of the screen

DATA: v_split TYPE REF TO cl_gui_easy_splitter_container,

v_contnr_top TYPE REF TO cl_gui_container,

v_contnr_bot TYPE REF TO cl_gui_container,

v_grid_02 TYPE REF TO cl_gui_alv_grid,

v_html TYPE REF TO cl_dd_document,

v_text20(255) TYPE c,

v_text16(255) TYPE c,

FORM f9000_objects_create.

IF cl_gui_alv_grid=>offline( ) IS INITIAL.

Create a container

CREATE OBJECT o_dockingcontainer

EXPORTING

ratio = '95'

EXCEPTIONS

cntl_error = 1

cntl_system_error = 2

create_error = 3

lifetime_error = 4

lifetime_dynpro_dynpro_link = 5

others = 6.

IF sy-subrc NE 0.

MESSAGE i000 WITH text-e01."Error in creating Docking container

LEAVE LIST-PROCESSING.

ENDIF.

CREATE OBJECT v_split

EXPORTING

parent = o_dockingcontainer

  • ORIENTATION = 0

sash_position = 25

with_border = 0

EXCEPTIONS

cntl_error = 1

cntl_system_error = 2

others = 3.

IF sy-subrc NE 0.

MESSAGE i000 WITH text-e01."Error in creating Docking container

LEAVE LIST-PROCESSING.

ENDIF.

  • Get the containers of the splitter control

v_contnr_top = v_split->top_left_container.

v_contnr_bot = v_split->bottom_right_container.

CREATE OBJECT o_alvgrid

EXPORTING

i_parent = o_dockingcontainer.

  • Create an instance of alv control

CREATE OBJECT o_alvgrid

EXPORTING i_parent = v_contnr_bot.

  • Object for display of selection parameters in HTML top container

CREATE OBJECT v_html

EXPORTING

style = 'ALV_GRID'.

  • Must be after the SET HANDLER for TOP_OF_PAGE and foreground only

CALL METHOD o_alvgrid->list_processing_events

EXPORTING i_event_name = 'TOP_OF_PAGE'

i_dyndoc_id = v_html.

v_text20 = text-020(summary Record counts)Any text.

CALL METHOD v_html->add_gap

EXPORTING

width = 120.

CALL METHOD v_html->add_text

EXPORTING

text = v_text20.

CALL METHOD v_html->new_line.

    • Display Text-016

v_text16 = text-016.

CALL METHOD v_html->add_gap

EXPORTING

width = 1.

CALL METHOD v_html->add_text

EXPORTING

text = v_text16.

v_text16 = v_sap_recon.

CALL METHOD v_html->add_gap

EXPORTING

width = 1.

CALL METHOD v_html->add_text

EXPORTING

text = v_text16.

CALL METHOD v_html->new_line.

  • Display the data

CALL METHOD v_html->display_document

EXPORTING

parent = v_contnr_top.

  • Handle the event

CALL METHOD o_alvgrid->list_processing_events

EXPORTING i_event_name = 'PRINT_TOP_OF_PAGE'.

IN PBO while populating in the output table

FORM f9004_display_data TABLES p_report_tab

p_fieldcat.

CALL METHOD o_alvgrid->set_table_for_first_display

EXPORTING

is_variant = w_variant

i_save = c_a

is_layout = w_layout

CHANGING

it_outtab = p_report_tab[]

it_fieldcatalog = p_fieldcat[]

EXCEPTIONS

invalid_parameter_combination = 1

program_error = 2

too_many_lines = 3

OTHERS = 4.

IF sy-subrc <> 0.

MESSAGE i000 WITH text-e06."Error in ALV report display

LEAVE LIST-PROCESSING.

ENDIF.

  • Create object

IF v_event_receiver IS INITIAL.

CREATE OBJECT v_event_receiver.

ENDIF.

SET HANDLER v_event_receiver->handle_print_top_of_page FOR o_alvgrid.

SET HANDLER v_event_receiver->handle_top_of_page FOR o_alvgrid.

Thanks

Mahesh

Read only

0 Likes
344

Hi ,

But my issue is when i use the table directly it works.

I am using the table in addition to that i want a cost field in the out put display.

when i am using just the table , it doesn't give me an error

Let me know thanks

Read only

0 Likes
344

HI,

try with this instead of types

data : begin ot t_final,

include stracture,

cose

data : end of t_final..

Thanks

Mahesh