Application Development 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: 

Error in ALV

Former Member
0 Kudos

Dear Guru's,

I need your help.

I have written a code to display three ALV's in a single screen. But the method "set_table_for_first_display" is giving me a dump "GETWA_NOT_ASSIGNED".

I have shown the code here. Please help me out. I have used OO Concept.

{ls_fieldcatalog-fieldname = 'Rank'.

ls_fieldcatalog-ref_field = 'RANK'.

ls_fieldcatalog-ref_table = 'ZOVERALL'.

ls_fieldcatalog-DD_ROLL = 'RANK'.

APPEND ls_fieldcatalog to lt_fieldcatalog.

CLEAR ls_fieldcatalog.

ls_fieldcatalog-fieldname = 'Personnel No'.

ls_fieldcatalog-ref_field = 'PERNR'.

ls_fieldcatalog-ref_table = 'PA0001'.

ls_fieldcatalog-DD_ROLL = 'PERNR_D'.

APPEND ls_fieldcatalog to lt_fieldcatalog.

CLEAR ls_fieldcatalog.

ls_fieldcatalog-fieldname = 'Object ID'.

ls_fieldcatalog-ref_field = 'OBJID'.

ls_fieldcatalog-ref_table = '/SHSPE60/L001H71'.

ls_fieldcatalog-DD_ROLL = 'HROBJID'.

APPEND ls_fieldcatalog to lt_fieldcatalog.

CLEAR ls_fieldcatalog.

ls_fieldcatalog-fieldname = 'Score'.

ls_fieldcatalog-ref_field = 'ZTOT'.

ls_fieldcatalog-ref_table = 'ZOVERALL'.

APPEND ls_fieldcatalog to lt_fieldcatalog.

CLEAR ls_fieldcatalog.

ls_fieldcatalog-fieldname = 'Total'.

ls_fieldcatalog-ref_field = 'ZTOT'.

ls_fieldcatalog-ref_table = 'ZOVERALL'.

APPEND ls_fieldcatalog to lt_fieldcatalog.

CLEAR ls_fieldcatalog.

  • Set event handler

SET HANDLER: lcl_eventhandler=>handle_double_click FOR go_grid1.

  • SET HANDLER: lcl_eventhandler=>handle_double_click FOR go_grid2.

  • SET HANDLER: lcl_eventhandler=>handle_double_click FOR go_grid3.

  • Display data

CALL METHOD go_grid1->set_table_for_first_display

CHANGING

it_outtab = it_overall

IT_FIELDCATALOG = LT_FIELDCATALOG

EXCEPTIONS

OTHERS = 4.

IF sy-subrc <> '0'.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.}

The o/p table is IT_OVERALL. But is has no dictionary structure it has 5 fields mentioned below.

With Warm Regards

Vijay

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi

Check the name of the fields passed to field catalog and the ITAB.

Make sure both are same

Regards

SHiva

9 REPLIES 9

Former Member
0 Kudos

Hello,

Is your object go_grid1 initialized i.e. does it has any value.

Thanks,

Jayant

0 Kudos

Hi,

its not defaulted to any value.

Regards

Vijay

0 Kudos

Hello,

I am not asking you to default it to any value but you need to create a object. You can use the below program for your reference.

*&---------------------------------------------------------------------*
*& Report  ZTEST                                               *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*

report ZTEST                           .


data : g_container type scrfname value 'CONTAINER1',
       g_custom_container type ref to cl_gui_custom_container,
       g_alv_grid type ref to cl_gui_alv_grid.


types : begin of struct,
        matnr type matnr,
        mtart type mtart,
        meins type meins,

        end of struct.

data : itab type standard table of struct with header line.

data : ok_code_0101(20).
data : i_fieldcat type lvc_t_fcat.

data : l_fieldcat type lvc_s_fcat.


start-of-selection.
select matnr
       mtart
       meins into table itab
       from mara
       where mtart = 'FERT'.

 call screen 0101.


*&---------------------------------------------------------------------*
*&      Module  STATUS_0101  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
module status_0101 output.
*  SET PF-STATUS 'xxxxxxxx'.
*  SET TITLEBAR 'xxx'.


perform initialise_alv.
perform build_fieldcat using i_fieldcat.
perform alv_display.

endmodule.                 " STATUS_0101  OUTPUT
*&---------------------------------------------------------------------*
*&      Form  BUILD_FIELDCAT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_I_FIELDCAT  text
*----------------------------------------------------------------------*
form build_fieldcat  using    p_i_fieldcat type lvc_t_fcat.

refresh p_i_fieldcat.

perform fill_fcat using '1' 'MATNR'  'ITAB'  'MATERIAL'  '20' '1'.

perform fill_fcat using '2' 'MTART'  'ITAB'  'TYPE'  '20' '1'.

perform fill_fcat using '3' 'MEINS'  'ITAB'  'UNIT'  '20' '1'.



endform.                    " BUILD_FIELDCAT
*&---------------------------------------------------------------------*
*&      Form  FILL_FCAT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_0079   text
*      -->P_0080   text
*      -->P_0081   text
*      -->P_0082   text
*      -->P_0083   text
*      -->P_0084   text
*----------------------------------------------------------------------*
form fill_fcat  using    p_col_pos      type lvc_s_fcat-col_pos
                         p_fieldname    type lvc_s_fcat-fieldname
                         p_tabname      type lvc_s_fcat-tabname
                         p_seltext      type lvc_s_fcat-scrtext_l
                         p_outputlen    type lvc_s_fcat-outputlen
                         p_row_pos      type lvc_s_fcat-row_pos.

 clear l_fieldcat.

 l_fieldcat-col_pos      = p_col_pos.
 l_fieldcat-fieldname    = p_fieldname.
 l_fieldcat-tabname      = p_tabname.
 l_fieldcat-scrtext_l    = p_seltext.
 l_fieldcat-outputlen    = p_outputlen.
 l_fieldcat-row_pos      = p_row_pos.



 append l_fieldcat to i_fieldcat.

endform.                    " FILL_FCAT
*&---------------------------------------------------------------------*
*&      Form  INITIALISE_ALV
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form initialise_alv .

if g_custom_container is initial.

create object g_custom_container
  exporting
*    PARENT                      =
    container_name              = g_container
*    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 object g_alv_grid
  exporting
*    I_SHELLSTYLE      = 0
*    I_LIFETIME        =
    i_parent          = g_custom_container
*    I_APPL_EVENTS     = space
*    I_PARENTDBG       =
*    I_APPLOGPARENT    =
*    I_GRAPHICSPARENT  =
*    I_NAME            =
  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.




endif.

endform.                    " INITIALISE_ALV
*&---------------------------------------------------------------------*
*&      Form  ALV_DISPLAY
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form alv_display .

call method g_alv_grid->set_table_for_first_display
*  EXPORTING
*    I_BUFFER_ACTIVE               =
*    I_BYPASSING_BUFFER            =
*    I_CONSISTENCY_CHECK           =
*    I_STRUCTURE_NAME              =
*    IS_VARIANT                    =
*    I_SAVE                        =
*    I_DEFAULT                     = 'X'
*    IS_LAYOUT                     =
*    IS_PRINT                      =
*    IT_SPECIAL_GROUPS             =
*    IT_TOOLBAR_EXCLUDING          =
*    IT_HYPERLINK                  =
*    IT_ALV_GRAPHICS               =
*    IT_EXCEPT_QINFO               =
  changing
    it_outtab                     = itab[]
    it_fieldcatalog               = i_fieldcat
*    IT_SORT                       =
*    IT_FILTER                     =
  exceptions
    invalid_parameter_combination = 1
    program_error                 = 2
    too_many_lines                = 3
    others                        = 4
        .
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.                    " ALV_DISPLAY
*&---------------------------------------------------------------------*
*&      Module  EXIT_MODULE  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
module exit_module input.

set screen 0.
leave program.

endmodule.                 " EXIT_MODULE  INPUT

.

Also, you have created a screen with custom container I assume that.

Thanks,

Jayant

0 Kudos

when there is no data in the Itab.. I see the ALV field header.

Regards

Vijay

Former Member
0 Kudos

Hi

Check the name of the fields passed to field catalog and the ITAB.

Make sure both are same

Regards

SHiva

SuhaSaha
Advisor
Advisor
0 Kudos

Hello Vijay,

AFAIK you have to create a GUI Container and attach the same to your program. Please refer to the program BCALV_GRID_DEMO for details.

I think you have not declared a container & are trying to display your grid )

BR,

Suhas

Former Member
0 Kudos

hi,

I have declared it..

Regards

Vijay

Former Member
0 Kudos

Hi,

ls_fieldcatalog-fieldname = 'Rank'.
ls_fieldcatalog-ref_field = 'RANK'.
ls_fieldcatalog-ref_table = 'ZOVERALL'.
ls_fieldcatalog-DD_ROLL = 'RANK'.  *check this line RANK is a DDROLL or ref_field?*
APPEND ls_fieldcatalog to lt_fieldcatalog.

CLEAR ls_fieldcatalog.
ls_fieldcatalog-fieldname = 'Personnel No'.
ls_fieldcatalog-ref_field = 'PERNR'.
ls_fieldcatalog-ref_table = 'PA0001'.
ls_fieldcatalog-DD_ROLL = 'PERNR_D'.
APPEND ls_fieldcatalog to lt_fieldcatalog.

CLEAR ls_fieldcatalog.
ls_fieldcatalog-fieldname = 'Object ID'.
ls_fieldcatalog-ref_field = 'OBJID'.
ls_fieldcatalog-ref_table = '/SHSPE60/L001H71'.
ls_fieldcatalog-DD_ROLL = 'HROBJID'.

APPEND ls_fieldcatalog to lt_fieldcatalog.
CLEAR ls_fieldcatalog.
ls_fieldcatalog-fieldname = 'Score'.
ls_fieldcatalog-ref_field = 'ZTOT'.
ls_fieldcatalog-ref_table = 'ZOVERALL'.

APPEND ls_fieldcatalog to lt_fieldcatalog.
CLEAR ls_fieldcatalog.
ls_fieldcatalog-fieldname = 'Total'.
ls_fieldcatalog-ref_field = 'ZTOT'.
ls_fieldcatalog-ref_table = 'ZOVERALL'.


APPEND ls_fieldcatalog to lt_fieldcatalog.
CLEAR ls_fieldcatalog.


Set event handler 
SET HANDLER: lcl_eventhandler=>handle_double_click FOR go_grid1.

SET HANDLER: lcl_eventhandler=>handle_double_click FOR go_grid2. 
SET HANDLER: lcl_eventhandler=>handle_double_click FOR go_grid3. 

Display data 

CALL METHOD go_grid1->set_table_for_first_display

CHANGING
it_outtab = it_overall
IT_FIELDCATALOG = LT_FIELDCATALOG
EXCEPTIONS
OTHERS = 4.
IF sy-subrc '0'.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 
ENDIF.}

The o/p table is IT_OVERALL. But is has no dictionary structure it has 5 fields mentioned below.

{TYPES: BEGIN OF ty_overall,
RANK TYPE I,
pernr type pernr_d,
objid type HROBJID,
WEIGH TYPE P DECIMALS 2,
TOTAL TYPE P DECIMALS 2,
END OF ty_overall.

DATA: IT_overall TYPE TABLE OF ty_overall,
WA_overall TYPE ty_overall.

Regards

0 Kudos

GOT IT. I has misspelled the keywords in the field name. I am soo sorry. Jus wasted 2 hrs of productive time on a silly mistake.

Regards

Vijaya Sankar.VJ