Skip to Content
0
Former Member
Jul 17, 2008 at 11:47 AM

ALV Display - Error in field catalog

119 Views

Hi ,

I am facing a problem in ALV... Field catalot is not getting populated... I am getting a message field catalog not found...

Can anyone please help me....... <URGENT DOES NOT EXIST HERE>...

I am enclosing my code also.. please go thourh it and help it....

REPORT ZINVENTORY

  • LINE-SIZE 120

LINE-COUNT 64.

  • MESSAGE-ID Z2

  • NO STANDARD PAGE HEADING..

type-pools : slis.

----


  • Tables *

----


tables: zasset,

anla,

itob,

equi.

data: v_repid LIKE sy-repid.

----


  • Selection Screen *

----


SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001 .

SELECT-OPTIONS : S_bukrs FOR anla-bukrs OBLIGATORY ,

S_kostl FOR itob-kostl .

SELECTION-SCREEN : END OF BLOCK B1 .

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-t02.

PARAMETERS: p_screen RADIOBUTTON GROUP gr1,

p_list RADIOBUTTON GROUP gr1 DEFAULT 'X'.

SELECTION-SCREEN END OF BLOCK b2.

----


  • Internal Tables *

----


types: BEGIN OF ty_zasset, " occurs 0,

equnr like zasset-equnr,

ANLN1 LIKE zasset-ANLN1, " Asset number

ANLN2 LIKE zasset-ANLN2, " Sub Asset number

BUKRS LIKE zasset-BUKRS, " Company Code

KOSTL like zasset-kostl,

SCANNEDBY type zasset-scannedby,

SCANNINGDATE type zasset-SCANNINGDATE,

SCANNINGTIME type zasset-scanningtime,

UPDATEDATE type zasset-updatedate,

UPDATETIME type zasset-updatetime,

END OF ty_zasset.

DATA: wa_zasset TYPE ty_zasset.

DATA: it_zasset TYPE TABLE OF ty_zasset with header line..

types: BEGIN OF ty_zasset1, " occurs 0,

  • equnr TYPE equi-equnr,

ANLN1 LIKE anla-ANLN1, " Asset number

ANLN2 LIKE anla-ANLN2, " Sub Asset number

BUKRS LIKE anla-BUKRS, " Company Code

ernam like anla-ernam,

erdat like anla-erdat,

  • KOSTL like anlz-kostl,

  • SCANNEDBY type zasset-scannedby,

  • SCANNINGDATE type zasset-SCANNINGDATE,

  • SCANNINGTIME type zasset-scanningtime,

  • UPDATEDATE type zasset-updatedate,

  • UPDATETIME type zasset-updatetime,

END OF ty_zasset1.

DATA: wa_zasset1 TYPE ty_zasset1.

DATA: it_zasset1 TYPE TABLE OF ty_zasset1 with header line..

types: BEGIN OF ty_zasset2, " occurs 0,

equnr like itob-equnr,

ANLNr LIKE itob-ANLNr, " Asset number

ANLuN LIKE itob-ANLuN, " Sub Asset number

BUKRS LIKE itob-BUKRS, " Company Code

timbi like itob-timbi,

kostl like itob-kostl,

  • KOSTL like anlz-kostl,

  • SCANNEDBY type zasset-scannedby,

  • SCANNINGDATE type zasset-SCANNINGDATE,

  • SCANNINGTIME type zasset-scanningtime,

  • UPDATEDATE type zasset-updatedate,

  • UPDATETIME type zasset-updatetime,

END OF ty_zasset2.

DATA: wa_zasset2 TYPE ty_zasset2.

DATA: it_zasset2 TYPE TABLE OF ty_zasset2 with header line..

types: begin of ty_final , "occurs 0,

equnr like itob-equnr,

anln1 like anla-anln1,

anln2 like anla-anln2,

bukrs like anla-bukrs,

  • ernam

  • erdat

kostl like itob-kostl,

end of ty_final.

DATA: wa_final TYPE ty_final.

DATA: it_final TYPE TABLE OF ty_final with header line..

*DATA: it_zasset TYPE TABLE OF ty_zasset.

*data: it_zasset1 type table of ty_zasset1.

*

*data:wa_zasset type ty_zasset.

*data:wa_zasset1 type ty_zasset1.

----


  • Flags and Variables *

----


DATA : F_ERROR. " Flag for No Data

*pop field cat for f7

data: V_SYREPID LIKE SY-REPID,

IT_FLDCAT type slis_t_fieldcat_alv , "with header line,

wa_fldcat type slis_fieldcat_alv.

*DATA : IT_FLDCATS TYPE SLIS_T_FIELDCAT_ALV.

data: itab_events type slis_t_event,

wa_events type slis_alv_event.

*data: wa_layout type slis_layout_alv.

DATA : IT_COMMENTS TYPE SLIS_T_LISTHEADER,

WA_COMMENTS TYPE SLIS_LISTHEADER.

DATA : IT_SORTINFO TYPE SLIS_T_SORTINFO_ALV,

WA_SORTINFO TYPE SLIS_SORTINFO_ALV.

----


  • Initialization *

----


initialization.

SY-REPID = V_REPID.

----


  • At Selection Screen *

----


AT SELECTION-SCREEN.

PERFORM validation.

----


  • Start Of Selection *

----


start-of-selection.

perform select_data.

IF P_LIST = 'X'.

perform get_field_catalog.

PERFORM MODIFYFIELDCAT.

perform get_events.

perform write_comments.

perform grid_display.

*perform list_display.

ENDIF.

  • IF sy-subrc = 0.

  • IF p_list = 'X'.

  • loop at it_final.

  • perform get_events.

  • endloop.

  • endif.

  • endloop.

  • else.

*endif.

----


  • End Of Selection *

----


END-OF-SELECTION.

*perform display_Recorsds.

*loop at zasset.

&----


*& Form validation

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM validation.

*Local variables.

DATA:

lv_bukrs type anla-bukrs,

lv_kostl type itob-kostl,

lv_anln1 TYPE anla-anln1, "MAterial Number

lv_anln2 TYPE anla-anln2.

*Validation for company code

if not s_bukrs is initial.

select single bukrs from anla

into lv_bukrs

where bukrs in s_bukrs.

if sy-subrc <> 0.

*Message used : Invalid company code.

endif.

endif .

  • Validation for cost center

if not s_kostl is initial.

select single kostl from itob

into lv_kostl

where kostl in s_kostl.

if sy-subrc <> 0.

*Message used : Invalid company code.

endif.

endif .

ENDFORM. " validation

&----


*& Form display

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM display.

write :/15 it_final-anln1,

it_final-anln2,

sy-vline.

*-bukrs,

  • it_zasset-anln1.

*

ENDFORM. " display

&----


*& Form get_field_catalog

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_field_catalog.

*REFRESH IT_FLDCAT.

*CLEAR IT_FLDCAT.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = V_REPID

I_INTERNAL_TABNAME = 'IT_FINAL'

I_INCLNAME = V_REPID

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

CT_FIELDCAT = IT_FLDCAT

EXCEPTIONS

INCONSISTENT_INTERFACE = 1

PROGRAM_ERROR = 2

OTHERS = 3

.

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. " get_field_catalog

&----


*& Form get_events

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_events.

WA_COMMENTS-TYP = 'H'.

WA_COMMENTS-KEY = 'THIS IS THE HEADING.'.

WA_COMMENTS-INFO = 'LIST OF SALES ORDERS'.

APPEND WA_COMMENTS TO IT_COMMENTS.

ENDFORM. " get_events

&----


*& Form grid_display

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM grid_display.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = v_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

I_CALLBACK_TOP_OF_PAGE = 'FIRST PAGE'

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

I_GRID_TITLE = 'LIST OF FLIGHT DETAILS'

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = it_fldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS = itab_events

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IT_ALV_GRAPHICS =

  • IT_ADD_FIELDCAT =

  • IT_HYPERLINK =

  • I_HTML_HEIGHT_TOP =

  • I_HTML_HEIGHT_END =

  • IT_EXCEPT_QINFO =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = it_final

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2

.

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. " grid_display

&----


*& Form write_comments

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM write_comments.

WA_COMMENTS-TYP = 'H'.

WA_COMMENTS-KEY = 'THIS IS THE HEADING.'.

WA_COMMENTS-INFO = 'LIST OF SALES ORDERS'.

APPEND WA_COMMENTS TO IT_COMMENTS.

ENDFORM. " write_comments

&----


*& Form select_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM select_data.

clear: it_zasset, it_zasset[].

select equnr "bukrs

anln1

anln2

bukrs

KOSTL

SCANNEDBY

SCANNINGDATE

SCANNINGTIME

UPDATEDATE

UPDATETIME

into table it_zasset "(g_anln1,g_anln2)

from zasset

where bukrs = zasset-bukrs..

  • and kostl = zasset-kostl.

if sy-subrc = 0.

sort it_zasset by anln1 anln2.

endif.

  • append it_zasset.

clear it_zasset1.

select

  • equnr

anln1

anln2

bukrs

ernam

erdat

  • bukrs

  • KOSTL

  • SCANNEDBY

  • SCANNINGDATE

  • SCANNINGTIME

  • UPDATEDATE

  • UPDATETIME

into table it_zasset1 "(g_anln1,g_anln2)

from anla

  • where bukrs = it_zasset-bukrs.

WHERE BUKRS IN S_BUKRS.

  • and kostl = anla-kostl.

if sy-subrc = 0.

select equnr

anlnr

anlun

bukrs

timbi

kostl

into table it_zasset2

from itob

for all entries in it_zasset1

  • where bukrs = it_zasset1-bukrs

WHERE anlnr = it_zasset1-anln1.

endif.

APPEND IT_ZASSET1.

IF SY-SUBRC = 0.

*loop at it_zasset1 into wa_zasset1.

loop at it_ZASSET1 into wa_zasset1.

  • move wa_zasset1-bukrs to wa_final-bukrs.

move wa_zasset1-anln1 to wa_final-anln1.

move wa_zasset1-anln2 to wa_final-anln2.

append wa_final to it_final.

endloop.

ENDIF.

sort it_final.

*LOOP AT IT_FINAL.

*ENDLOOP.

*ENDIF.

*if sy-subrc = 0.

*loop at it_zasset into wa_asset.

*read table it_zasset into wa_asset with key anln2 = wa_asset-anln2

*binary search.

*read table it_final into wa_final with key anln2 = wa_final-anln2

*binary search.

*

*if wa_asset-anln2 = wa_final-anln2.

*write : / 'error'.

*endif.

  • If sy-subrc <> 0.

  • f_error = 'X'.

*

  • write : 'No data Exists for the given selection in FA table'.

  • else.

  • loop at it_final.

  • perform display.

  • endloop.

  • records exits in anla table also.

  • endif.

  • ENDFORM. " select_data

    &----


    *& Form MODIFYFIELDCAT

    &----


    • text

    ----


    • --> p1 text

    • <-- p2 text

    ----


    FORM MODIFYFIELDCAT.

    LOOP AT IT_FLDCAT INTO WA_FLDCAT.

    CASE WA_FLDCAT-FIELDNAME.

    WHEN 'EQUNR'.

    WA_FLDCAT-COL_POS = 1.

    WA_FLDCAT-SELTEXT_L = 'aSSET'.

    WHEN 'ANLN1'.

    • wa_FLDCAT-KEY = 'X'.

    WA_FLDCAT-COL_POS = 5.

    WA_FLDCAT-SELTEXT_L = 'aSSET'.

    WHEN 'ANLN2'.

    WA_FLDCAT-KEY = 'X'.

    WA_FLDCAT-COL_POS = 6.

    • wa_FLDCAT-HOTSPOT = 'X'.

    WHEN 'BUKRS'.

    WA_FLDCAT-CURRENCY = 'INR'.

    • WA_FLDCAT-SYMBOL = 'X'.

    ENDCASE.

    MODIFY IT_FLDCAT FROM WA_FLDCAT.

    *IT_FLDCAT-fieldname = 'EQUNR'.

    • IT_FLDCAT-seltext_m = 'DOCUM_TYPE'.

    • IT_FLDCAT-col_pos = 1.

    • IT_FLDCAT-outputlen = 10.

    • IT_FLDCAT-emphasize = 'X'.

    • IT_FLDCAT-key = 'X'.

    • fieldcatalog-do_sum = 'X'.

    • fieldcatalog-no_zero = 'X'.

  • append IT_FLDCAT TO IT_FLDCAT.

  • *

    *

    • IT_FLDCAT-fieldname = 'ANLN1'.

    • IT_FLDCAT-seltext_m = 'DOCUM_TYPE'.

    • IT_FLDCAT-col_pos = 1.

    • IT_FLDCAT-outputlen = 10.

    • IT_FLDCAT-emphasize = 'X'.

    • IT_FLDCAT-key = 'X'.

    • fieldcatalog-do_sum = 'X'.

    • fieldcatalog-no_zero = 'X'.

  • append IT_FLDCAT TO IT_FLDCAT.

  • *

    ENDLOOP.

    ENDFORM. " MODIFYFIELDCAT

    &----


    *& Form list_display

    &----


    • text

    ----


    • --> p1 text

    • <-- p2 text

    ----


    *FORM list_display.

    *CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

    • EXPORTING

    • I_INTERFACE_CHECK = ' '

    • I_BUFFER_ACTIVE = ' '

  • I_CALLBACK_PROGRAM = V_SYREPID

    • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = 'FRM_USER_COMMAND'

    • I_STRUCTURE_NAME =

    • IS_LAYOUT = wa_layout

  • IT_FIELDCAT = IT_FLDCAT

    • IT_EXCLUDING =

    • IT_SPECIAL_GROUPS =

    • IT_SORT =

    • IT_FILTER =

    • IS_SEL_HIDE =

    • I_DEFAULT = 'X'

  • I_SAVE = 'A'

    • IS_VARIANT =

  • IT_EVENTS = ITAB_EVENTS

    • IT_EVENT_EXIT =

    • IS_PRINT =

    • IS_REPREP_ID =

    • I_SCREEN_START_COLUMN = 0

    • I_SCREEN_START_LINE = 0

    • I_SCREEN_END_COLUMN = 0

    • I_SCREEN_END_LINE = 0

    • IMPORTING

    • E_EXIT_CAUSED_BY_CALLER =

    • ES_EXIT_CAUSED_BY_USER =

  • TABLES

  • T_OUTTAB = IT_FINAL

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

  • .

  • *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. " list_display

    Edited by: Craig Cmehil on Jul 18, 2008 10:01 AM