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

Regarding Runtime error in ALV List Display.

Former Member
0 Likes
981

am using following to display data in ALV List.

but after executing of program am getting runtime error called 'Field Symbol has Not been assigned' .

please tell me how to correct the error.

Very urgent

Suitable answers rewarded with Maximum Ponits...

REPORT zmatrix.

TYPE-POOLS: slis.

TABLES: agr_define, sza5_d0700.

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

SELECT-OPTIONS: s_role FOR agr_define-agr_name OBLIGATORY.

SELECTION-SCREEN END OF BLOCK b1.

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

  • D A T A *

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

TYPES: BEGIN OF ty_agr_1251_inf,

agr_name TYPE agr_1251-agr_name,

object TYPE agr_1251-object,

field TYPE agr_1251-field,

low(20) TYPE c,

high TYPE agr_1251-high,

infty TYPE t582s-infty,

itext TYPE t582s-itext,

END OF ty_agr_1251_inf.

TYPES: BEGIN OF ty_agr_1251_tcode,

agr_name TYPE agr_1251-agr_name,

object TYPE agr_1251-object,

field TYPE agr_1251-field,

low(20) TYPE c,

high TYPE agr_1251-high,

tcode TYPE tstct-tcode,

ttext TYPE tstct-ttext,

END OF ty_agr_1251_tcode.

TYPES: BEGIN OF ty_t582s,

infty TYPE agval,

itext TYPE t582s-itext,

END OF ty_t582s.

TYPES: BEGIN OF ty_code,

tcode TYPE tstct-tcode,

ttext TYPE ttext_stct,

END OF ty_code.

TYPES: BEGIN OF ty_inf,

infty TYPE t582s-infty,

itext TYPE t582s-itext,

END OF ty_inf.

TYPES: BEGIN OF ty_role,

agr_name TYPE agr_1251-agr_name,

END OF ty_role.

TYPES: BEGIN OF tys_role_dtls,

agr_name TYPE agr_name,

value TYPE c,

property TYPE c,

END OF tys_role_dtls.

TYPES: BEGIN OF tys_infotype_final,

text(60),

text1(60),

value(4),

END OF tys_infotype_final.

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

  • I N T E R N A L T A B L E S *

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

DATA: wa_infotyp_final TYPE tys_infotype_final.

DATA: t_infotyp_final TYPE TABLE OF tys_infotype_final.

DATA: BEGIN OF wa_infotyp_dtls,

infty TYPE infty,

itext TYPE intxt,

role_dtls TYPE TABLE OF tys_role_dtls,

END OF wa_infotyp_dtls.

DATA: BEGIN OF wa_tcode_dtls,

tcode TYPE tcode,

ttext TYPE ttext_stct,

role_dtls TYPE TABLE OF tys_role_dtls,

END OF wa_tcode_dtls.

DATA: t_infotyp_dtls LIKE TABLE OF wa_infotyp_dtls,

t_tcode_dtls LIKE TABLE OF wa_tcode_dtls,

t_role_dtls TYPE TABLE OF tys_role_dtls,

wa_role_dtls TYPE tys_role_dtls.

DATA: wa_inf TYPE ty_inf,

t_inf TYPE STANDARD TABLE OF ty_inf.

DATA: wa_role TYPE ty_role,

t_role TYPE STANDARD TABLE OF ty_role.

DATA: wa_tcode TYPE ty_code,

t_tcode TYPE TABLE OF ty_code.

DATA: wa_agr_1251_inf TYPE ty_agr_1251_inf.

DATA: wa_agr_1251_tcode TYPE ty_agr_1251_tcode.

DATA: t_agr_1251_inf TYPE STANDARD TABLE OF ty_agr_1251_inf.

DATA: t_agr_1251_tc TYPE STANDARD TABLE OF ty_agr_1251_tcode.

DATA: wa_582s TYPE ty_t582s.

DATA: t_582s TYPE STANDARD TABLE OF ty_t582s.

DATA: t_range_tcode TYPE RANGE OF tcode.

DATA: t_range_inf TYPE RANGE OF infotyp.

DATA: wa_range_inf LIKE LINE OF t_range_inf.

DATA: wa_range_tcode LIKE LINE OF t_range_tcode.

DATA: wa_field TYPE slis_fieldcat_alv.

DATA: t_field TYPE slis_t_fieldcat_alv.

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

  • VARIABLES FOR OLE *

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

DATA: text(20),

count(20).

DATA: text1(30).

DATA: agr_name TYPE agr_1251-agr_name.

DATA: flag TYPE i VALUE '0'.

DATA: string1 TYPE string.

DATA: str TYPE string VALUE 'SAP%'.

DATA: count1 TYPE i VALUE '0'.

&----


*& Event START-OF-SELECTION

&----


START-OF-SELECTION.

PERFORM f100_get_inf_data.

PERFORM f200_process_inf_data.

count1 = 1.

PERFORM f300_prepare_field_catalog.

PERFORM f110_main_data.

PERFORM f400_display_data.

PERFORM f100_get_trans_data.

&----


*& Form f110_main_data

&----


  • text

----


FORM f110_main_data.

wa_infotyp_final-text = 'Access to Infotypes'.

APPEND wa_infotyp_final TO t_infotyp_final.

wa_infotyp_final-text = 'Infotype'.

wa_infotyp_final-text1 = 'Description'.

APPEND wa_infotyp_final TO t_infotyp_final.

wa_infotyp_final-text = '*'.

wa_infotyp_final-text1 = 'Acess to all Infotypes'.

  • LOOP AT t_role INTO wa_role WHERE agr_name <> ' '.

  • READ TABLE t_agr_1251_inf INTO wa_agr_1251_inf

  • WITH KEY agr_name = wa_role-agr_name field = 'INFTY' low = '*'.

  • IF syst-subrc = 0.

  • wa_infotyp_final-value = 'X'.

  • ENDIF.

  • ENDLOOP.

APPEND wa_infotyp_final TO t_infotyp_final.

LOOP AT t_inf INTO wa_inf WHERE infty <> ' '.

wa_infotyp_final-text = wa_inf-infty.

wa_infotyp_final-text1 = wa_inf-itext.

LOOP AT t_role INTO wa_role WHERE agr_name <> ' '.

  • Role Name

CLEAR wa_role_dtls.

flag = 1.

wa_role_dtls-agr_name = wa_role-agr_name.

  • For Value D & F

READ TABLE t_agr_1251_inf INTO wa_agr_1251_inf

WITH KEY agr_name = wa_role-agr_name field = 'AUTHC'..

IF syst-subrc EQ 0.

IF wa_agr_1251_inf-low = 'R'.

wa_infotyp_final-value = 'D'.

ELSE.

wa_infotyp_final-value = 'F'.

ENDIF.

ENDIF.

APPEND wa_role_dtls TO t_role_dtls.

APPEND wa_infotyp_final TO t_infotyp_final.

ENDLOOP.

ENDLOOP.

ENDFORM. "f110_main_data

&----


*& Form f100_get_inf_data

&----


  • text

----


FORM f100_get_inf_data.

----


  • Logic for Infotypes *

----


SELECT aagr_name aobject

afield alow a~high

INTO TABLE t_agr_1251_inf

FROM agr_1251 AS a INNER JOIN agr_define AS b

ON aagr_name EQ bagr_name

WHERE ( ( aobject EQ 'P_ORGIN' OR aobject EQ 'P_PERNR' )

AND ( aagr_name IN s_role ) AND ( bagr_name NOT LIKE str ) ).

ENDFORM. "f100_get_inf_data

&----


*& Form f200_get_inf_process_data

&----


  • text

----


FORM f200_process_inf_data.

LOOP AT t_agr_1251_inf INTO wa_agr_1251_inf.

IF wa_agr_1251_inf-high IS INITIAL.

CLEAR wa_range_inf.

wa_range_inf-sign = 'I'.

wa_range_inf-option = 'EQ'.

wa_range_inf-low = wa_agr_1251_inf-low.

APPEND wa_range_inf TO t_range_inf.

ELSE.

CLEAR wa_range_inf.

wa_range_inf-sign = 'I'.

wa_range_inf-option = 'BT'.

wa_range_inf-low = wa_agr_1251_inf-low.

wa_range_inf-high = wa_agr_1251_inf-high.

APPEND wa_range_inf TO t_range_inf.

ENDIF.

ENDLOOP.

SORT t_range_inf.

DELETE ADJACENT DUPLICATES FROM t_range_inf.

IF t_range_inf IS NOT INITIAL.

SELECT infty itext FROM t582s

INTO TABLE t_582s

WHERE sprsl = 'EN' AND infty IN t_range_inf.

IF syst-subrc EQ 0.

ENDIF.

ENDIF.

LOOP AT t_agr_1251_inf INTO wa_agr_1251_inf.

IF wa_agr_1251_inf-high IS INITIAL.

READ TABLE t_582s INTO wa_582s

WITH KEY infty = wa_agr_1251_inf-low.

IF syst-subrc EQ 0.

wa_agr_1251_inf-infty = wa_582s-infty.

wa_agr_1251_inf-itext = wa_582s-itext.

MODIFY t_agr_1251_inf FROM wa_agr_1251_inf

TRANSPORTING infty itext.

IF syst-subrc EQ 0.

ENDIF.

ENDIF.

ELSE.

CLEAR count.

LOOP AT t_582s INTO wa_582s

WHERE infty GE wa_agr_1251_inf-low

AND infty LE wa_agr_1251_inf-high.

IF count LE 1.

wa_agr_1251_inf-high = space.

wa_agr_1251_inf-infty = wa_582s-infty.

wa_agr_1251_inf-itext = wa_582s-itext.

MODIFY t_agr_1251_inf FROM wa_agr_1251_inf

TRANSPORTING infty itext.

IF syst-subrc EQ 0.

CLEAR wa_582s.

ENDIF.

ELSE.

wa_agr_1251_inf-high = space.

wa_agr_1251_inf-infty = wa_582s-infty.

wa_agr_1251_inf-itext = wa_582s-itext.

APPEND wa_agr_1251_inf TO t_agr_1251_inf.

ENDIF.

CLEAR wa_agr_1251_inf.

count = count + 1.

ENDLOOP.

ENDIF.

ENDLOOP.

wa_role-agr_name = ' '.

APPEND wa_role TO t_role.

wa_role-agr_name = ' '.

APPEND wa_role TO t_role.

LOOP AT t_agr_1251_inf INTO wa_agr_1251_inf.

IF wa_agr_1251_inf IS NOT INITIAL.

wa_role-agr_name = wa_agr_1251_inf-agr_name.

wa_inf-infty = wa_agr_1251_inf-infty.

wa_inf-itext = wa_agr_1251_inf-itext.

APPEND wa_role TO t_role.

APPEND wa_inf TO t_inf.

ENDIF.

ENDLOOP.

SORT t_role BY agr_name.

DELETE ADJACENT DUPLICATES FROM t_role.

SORT t_inf BY infty.

DELETE ADJACENT DUPLICATES FROM t_inf.

ENDFORM. "f200_get_process_inf_data

&----


*& Form f100_get_trans_data

&----


  • text

----


FORM f100_get_trans_data.

----


  • Logic for Transaction Codes *

----


SELECT aagr_name aobject

afield alow a~high

INTO CORRESPONDING FIELDS OF TABLE t_agr_1251_tc

FROM agr_1251 AS a

INNER JOIN agr_define AS b ON aagr_name EQ bagr_name

WHERE a~agr_name IN s_role

AND a~object EQ 'S_TCODE'.

ENDFORM. "f100_get_trans_data

&----


*& Form f200_process_trans_data

&----


  • text

----


FORM f200_process_trans_data.

LOOP AT t_agr_1251_tc INTO wa_agr_1251_tcode.

IF wa_agr_1251_tcode-high IS INITIAL.

CLEAR wa_range_tcode.

wa_range_tcode-sign = 'I'.

wa_range_tcode-option = 'EQ'.

wa_range_tcode-low = wa_agr_1251_tcode-low.

APPEND wa_range_tcode TO t_range_tcode.

ELSE.

CLEAR wa_range_tcode.

wa_range_tcode-sign = 'I'.

wa_range_tcode-option = 'BT'.

wa_range_tcode-low = wa_agr_1251_tcode-low.

wa_range_tcode-high = wa_agr_1251_tcode-high.

APPEND wa_range_tcode TO t_range_tcode.

ENDIF.

ENDLOOP.

SORT t_range_tcode.

DELETE ADJACENT DUPLICATES FROM t_range_tcode.

IF t_range_tcode IS NOT INITIAL.

SELECT tcode

ttext

FROM tstct

INTO TABLE t_tcode

WHERE sprsl EQ 'E'

AND tcode IN t_range_tcode.

IF sy-subrc EQ 0.

ENDIF.

ENDIF.

SORT t_agr_1251_tc BY agr_name.

LOOP AT t_agr_1251_tc INTO wa_agr_1251_tcode.

IF wa_agr_1251_tcode-high IS INITIAL.

READ TABLE t_tcode INTO wa_tcode

WITH KEY tcode = wa_agr_1251_tcode-low.

IF syst-subrc EQ 0.

wa_agr_1251_tcode-tcode = wa_tcode-tcode.

wa_agr_1251_tcode-ttext = wa_tcode-ttext.

MODIFY t_agr_1251_tc FROM wa_agr_1251_tcode

TRANSPORTING tcode ttext.

IF syst-subrc EQ 0.

ENDIF.

ENDIF.

ELSE.

CLEAR count.

LOOP AT t_tcode INTO wa_tcode

WHERE tcode GE wa_agr_1251_tcode-low

AND tcode LE wa_agr_1251_tcode-high.

IF count LE 1.

agr_name = wa_agr_1251_tcode-agr_name.

wa_agr_1251_tcode-high = space.

wa_agr_1251_tcode-tcode = wa_tcode-tcode.

wa_agr_1251_tcode-ttext = wa_tcode-ttext.

MODIFY t_agr_1251_tc FROM wa_agr_1251_tcode

TRANSPORTING tcode ttext high.

IF syst-subrc EQ 0.

CLEAR wa_tcode.

ENDIF.

count = 1.

ELSE.

wa_agr_1251_tcode-high = space.

wa_agr_1251_tcode-agr_name = agr_name.

wa_agr_1251_tcode-low = wa_tcode-tcode.

wa_agr_1251_tcode-tcode = wa_tcode-tcode.

wa_agr_1251_tcode-ttext = wa_tcode-ttext.

APPEND wa_agr_1251_tcode TO t_agr_1251_tc.

ENDIF.

CLEAR wa_agr_1251_tcode.

count = count + 1.

ENDLOOP.

ENDIF.

ENDLOOP.

LOOP AT t_agr_1251_tc INTO wa_agr_1251_tcode.

wa_role-agr_name = wa_agr_1251_tcode-agr_name.

APPEND wa_role TO t_role.

ENDLOOP.

SORT t_role BY agr_name.

DELETE ADJACENT DUPLICATES FROM t_role.

SORT t_tcode BY tcode.

DELETE ADJACENT DUPLICATES FROM t_tcode.

ENDFORM. "f200_process_trans_data

&----


*& Form f100_prepare_field_catalog

&----


  • text

----


FORM f300_prepare_field_catalog.

LOOP AT t_role INTO wa_role.

wa_field-col_pos = count1.

wa_field-fieldname = wa_role-agr_name.

APPEND wa_field TO t_field.

count1 = count1 + 1.

ENDLOOP.

ENDFORM. "f100_prepare_field_catalog

&----


*& Form f100_display_data

&----


  • text

----


FORM f400_display_data.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

i_callback_program = sy-cprog

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_STRUCTURE_NAME =

  • IS_LAYOUT =

it_fieldcat = t_field[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_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

  • IR_SALV_LIST_ADAPTER =

  • IT_EXCEPT_QINFO =

  • I_SUPPRESS_EMPTY_DATA = ABAP_FALSE

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = t_infotyp_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. "f100_display_data

am using following to display data in ALV List.

but after executing of program am getting runtime error called 'Field Symbol has Not been assigned' .

please tell me how to correct the error.

Very urgent

Suitable answers rewarded with Maximum Ponits...

REPORT zmatrix.

TYPE-POOLS: slis.

TABLES: agr_define, sza5_d0700.

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

SELECT-OPTIONS: s_role FOR agr_define-agr_name OBLIGATORY.

SELECTION-SCREEN END OF BLOCK b1.

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

  • D A T A *

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

TYPES: BEGIN OF ty_agr_1251_inf,

agr_name TYPE agr_1251-agr_name,

object TYPE agr_1251-object,

field TYPE agr_1251-field,

low(20) TYPE c,

high TYPE agr_1251-high,

infty TYPE t582s-infty,

itext TYPE t582s-itext,

END OF ty_agr_1251_inf.

TYPES: BEGIN OF ty_agr_1251_tcode,

agr_name TYPE agr_1251-agr_name,

object TYPE agr_1251-object,

field TYPE agr_1251-field,

low(20) TYPE c,

high TYPE agr_1251-high,

tcode TYPE tstct-tcode,

ttext TYPE tstct-ttext,

END OF ty_agr_1251_tcode.

TYPES: BEGIN OF ty_t582s,

infty TYPE agval,

itext TYPE t582s-itext,

END OF ty_t582s.

TYPES: BEGIN OF ty_code,

tcode TYPE tstct-tcode,

ttext TYPE ttext_stct,

END OF ty_code.

TYPES: BEGIN OF ty_inf,

infty TYPE t582s-infty,

itext TYPE t582s-itext,

END OF ty_inf.

TYPES: BEGIN OF ty_role,

agr_name TYPE agr_1251-agr_name,

END OF ty_role.

TYPES: BEGIN OF tys_role_dtls,

agr_name TYPE agr_name,

value TYPE c,

property TYPE c,

END OF tys_role_dtls.

TYPES: BEGIN OF tys_infotype_final,

text(60),

text1(60),

value(4),

END OF tys_infotype_final.

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

  • I N T E R N A L T A B L E S *

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

DATA: wa_infotyp_final TYPE tys_infotype_final.

DATA: t_infotyp_final TYPE TABLE OF tys_infotype_final.

DATA: BEGIN OF wa_infotyp_dtls,

infty TYPE infty,

itext TYPE intxt,

role_dtls TYPE TABLE OF tys_role_dtls,

END OF wa_infotyp_dtls.

DATA: BEGIN OF wa_tcode_dtls,

tcode TYPE tcode,

ttext TYPE ttext_stct,

role_dtls TYPE TABLE OF tys_role_dtls,

END OF wa_tcode_dtls.

DATA: t_infotyp_dtls LIKE TABLE OF wa_infotyp_dtls,

t_tcode_dtls LIKE TABLE OF wa_tcode_dtls,

t_role_dtls TYPE TABLE OF tys_role_dtls,

wa_role_dtls TYPE tys_role_dtls.

DATA: wa_inf TYPE ty_inf,

t_inf TYPE STANDARD TABLE OF ty_inf.

DATA: wa_role TYPE ty_role,

t_role TYPE STANDARD TABLE OF ty_role.

DATA: wa_tcode TYPE ty_code,

t_tcode TYPE TABLE OF ty_code.

DATA: wa_agr_1251_inf TYPE ty_agr_1251_inf.

DATA: wa_agr_1251_tcode TYPE ty_agr_1251_tcode.

DATA: t_agr_1251_inf TYPE STANDARD TABLE OF ty_agr_1251_inf.

DATA: t_agr_1251_tc TYPE STANDARD TABLE OF ty_agr_1251_tcode.

DATA: wa_582s TYPE ty_t582s.

DATA: t_582s TYPE STANDARD TABLE OF ty_t582s.

DATA: t_range_tcode TYPE RANGE OF tcode.

DATA: t_range_inf TYPE RANGE OF infotyp.

DATA: wa_range_inf LIKE LINE OF t_range_inf.

DATA: wa_range_tcode LIKE LINE OF t_range_tcode.

DATA: wa_field TYPE slis_fieldcat_alv.

DATA: t_field TYPE slis_t_fieldcat_alv.

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

  • VARIABLES FOR OLE *

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

DATA: text(20),

count(20).

DATA: text1(30).

DATA: agr_name TYPE agr_1251-agr_name.

DATA: flag TYPE i VALUE '0'.

DATA: string1 TYPE string.

DATA: str TYPE string VALUE 'SAP%'.

DATA: count1 TYPE i VALUE '0'.

&----


*& Event START-OF-SELECTION

&----


START-OF-SELECTION.

PERFORM f100_get_inf_data.

PERFORM f200_process_inf_data.

count1 = 1.

PERFORM f300_prepare_field_catalog.

PERFORM f110_main_data.

PERFORM f400_display_data.

PERFORM f100_get_trans_data.

&----


*& Form f110_main_data

&----


  • text

----


FORM f110_main_data.

wa_infotyp_final-text = 'Access to Infotypes'.

APPEND wa_infotyp_final TO t_infotyp_final.

wa_infotyp_final-text = 'Infotype'.

wa_infotyp_final-text1 = 'Description'.

APPEND wa_infotyp_final TO t_infotyp_final.

wa_infotyp_final-text = '*'.

wa_infotyp_final-text1 = 'Acess to all Infotypes'.

  • LOOP AT t_role INTO wa_role WHERE agr_name <> ' '.

  • READ TABLE t_agr_1251_inf INTO wa_agr_1251_inf

  • WITH KEY agr_name = wa_role-agr_name field = 'INFTY' low = '*'.

  • IF syst-subrc = 0.

  • wa_infotyp_final-value = 'X'.

  • ENDIF.

  • ENDLOOP.

APPEND wa_infotyp_final TO t_infotyp_final.

LOOP AT t_inf INTO wa_inf WHERE infty <> ' '.

wa_infotyp_final-text = wa_inf-infty.

wa_infotyp_final-text1 = wa_inf-itext.

LOOP AT t_role INTO wa_role WHERE agr_name <> ' '.

  • Role Name

CLEAR wa_role_dtls.

flag = 1.

wa_role_dtls-agr_name = wa_role-agr_name.

  • For Value D & F

READ TABLE t_agr_1251_inf INTO wa_agr_1251_inf

WITH KEY agr_name = wa_role-agr_name field = 'AUTHC'..

IF syst-subrc EQ 0.

IF wa_agr_1251_inf-low = 'R'.

wa_infotyp_final-value = 'D'.

ELSE.

wa_infotyp_final-value = 'F'.

ENDIF.

ENDIF.

APPEND wa_role_dtls TO t_role_dtls.

APPEND wa_infotyp_final TO t_infotyp_final.

ENDLOOP.

ENDLOOP.

ENDFORM. "f110_main_data

&----


*& Form f100_get_inf_data

&----


  • text

----


FORM f100_get_inf_data.

----


  • Logic for Infotypes *

----


SELECT aagr_name aobject

afield alow a~high

INTO TABLE t_agr_1251_inf

FROM agr_1251 AS a INNER JOIN agr_define AS b

ON aagr_name EQ bagr_name

WHERE ( ( aobject EQ 'P_ORGIN' OR aobject EQ 'P_PERNR' )

AND ( aagr_name IN s_role ) AND ( bagr_name NOT LIKE str ) ).

ENDFORM. "f100_get_inf_data

&----


*& Form f200_get_inf_process_data

&----


  • text

----


FORM f200_process_inf_data.

LOOP AT t_agr_1251_inf INTO wa_agr_1251_inf.

IF wa_agr_1251_inf-high IS INITIAL.

CLEAR wa_range_inf.

wa_range_inf-sign = 'I'.

wa_range_inf-option = 'EQ'.

wa_range_inf-low = wa_agr_1251_inf-low.

APPEND wa_range_inf TO t_range_inf.

ELSE.

CLEAR wa_range_inf.

wa_range_inf-sign = 'I'.

wa_range_inf-option = 'BT'.

wa_range_inf-low = wa_agr_1251_inf-low.

wa_range_inf-high = wa_agr_1251_inf-high.

APPEND wa_range_inf TO t_range_inf.

ENDIF.

ENDLOOP.

SORT t_range_inf.

DELETE ADJACENT DUPLICATES FROM t_range_inf.

IF t_range_inf IS NOT INITIAL.

SELECT infty itext FROM t582s

INTO TABLE t_582s

WHERE sprsl = 'EN' AND infty IN t_range_inf.

IF syst-subrc EQ 0.

ENDIF.

ENDIF.

LOOP AT t_agr_1251_inf INTO wa_agr_1251_inf.

IF wa_agr_1251_inf-high IS INITIAL.

READ TABLE t_582s INTO wa_582s

WITH KEY infty = wa_agr_1251_inf-low.

IF syst-subrc EQ 0.

wa_agr_1251_inf-infty = wa_582s-infty.

wa_agr_1251_inf-itext = wa_582s-itext.

MODIFY t_agr_1251_inf FROM wa_agr_1251_inf

TRANSPORTING infty itext.

IF syst-subrc EQ 0.

ENDIF.

ENDIF.

ELSE.

CLEAR count.

LOOP AT t_582s INTO wa_582s

WHERE infty GE wa_agr_1251_inf-low

AND infty LE wa_agr_1251_inf-high.

IF count LE 1.

wa_agr_1251_inf-high = space.

wa_agr_1251_inf-infty = wa_582s-infty.

wa_agr_1251_inf-itext = wa_582s-itext.

MODIFY t_agr_1251_inf FROM wa_agr_1251_inf

TRANSPORTING infty itext.

IF syst-subrc EQ 0.

CLEAR wa_582s.

ENDIF.

ELSE.

wa_agr_1251_inf-high = space.

wa_agr_1251_inf-infty = wa_582s-infty.

wa_agr_1251_inf-itext = wa_582s-itext.

APPEND wa_agr_1251_inf TO t_agr_1251_inf.

ENDIF.

CLEAR wa_agr_1251_inf.

count = count + 1.

ENDLOOP.

ENDIF.

ENDLOOP.

wa_role-agr_name = ' '.

APPEND wa_role TO t_role.

wa_role-agr_name = ' '.

APPEND wa_role TO t_role.

LOOP AT t_agr_1251_inf INTO wa_agr_1251_inf.

IF wa_agr_1251_inf IS NOT INITIAL.

wa_role-agr_name = wa_agr_1251_inf-agr_name.

wa_inf-infty = wa_agr_1251_inf-infty.

wa_inf-itext = wa_agr_1251_inf-itext.

APPEND wa_role TO t_role.

APPEND wa_inf TO t_inf.

ENDIF.

ENDLOOP.

SORT t_role BY agr_name.

DELETE ADJACENT DUPLICATES FROM t_role.

SORT t_inf BY infty.

DELETE ADJACENT DUPLICATES FROM t_inf.

ENDFORM. "f200_get_process_inf_data

&----


*& Form f100_get_trans_data

&----


  • text

----


FORM f100_get_trans_data.

----


  • Logic for Transaction Codes *

----


SELECT aagr_name aobject

afield alow a~high

INTO CORRESPONDING FIELDS OF TABLE t_agr_1251_tc

FROM agr_1251 AS a

INNER JOIN agr_define AS b ON aagr_name EQ bagr_name

WHERE a~agr_name IN s_role

AND a~object EQ 'S_TCODE'.

ENDFORM. "f100_get_trans_data

&----


*& Form f200_process_trans_data

&----


  • text

----


FORM f200_process_trans_data.

LOOP AT t_agr_1251_tc INTO wa_agr_1251_tcode.

IF wa_agr_1251_tcode-high IS INITIAL.

CLEAR wa_range_tcode.

wa_range_tcode-sign = 'I'.

wa_range_tcode-option = 'EQ'.

wa_range_tcode-low = wa_agr_1251_tcode-low.

APPEND wa_range_tcode TO t_range_tcode.

ELSE.

CLEAR wa_range_tcode.

wa_range_tcode-sign = 'I'.

wa_range_tcode-option = 'BT'.

wa_range_tcode-low = wa_agr_1251_tcode-low.

wa_range_tcode-high = wa_agr_1251_tcode-high.

APPEND wa_range_tcode TO t_range_tcode.

ENDIF.

ENDLOOP.

SORT t_range_tcode.

DELETE ADJACENT DUPLICATES FROM t_range_tcode.

IF t_range_tcode IS NOT INITIAL.

SELECT tcode

ttext

FROM tstct

INTO TABLE t_tcode

WHERE sprsl EQ 'E'

AND tcode IN t_range_tcode.

IF sy-subrc EQ 0.

ENDIF.

ENDIF.

SORT t_agr_1251_tc BY agr_name.

LOOP AT t_agr_1251_tc INTO wa_agr_1251_tcode.

IF wa_agr_1251_tcode-high IS INITIAL.

READ TABLE t_tcode INTO wa_tcode

WITH KEY tcode = wa_agr_1251_tcode-low.

IF syst-subrc EQ 0.

wa_agr_1251_tcode-tcode = wa_tcode-tcode.

wa_agr_1251_tcode-ttext = wa_tcode-ttext.

MODIFY t_agr_1251_tc FROM wa_agr_1251_tcode

TRANSPORTING tcode ttext.

IF syst-subrc EQ 0.

ENDIF.

ENDIF.

ELSE.

CLEAR count.

LOOP AT t_tcode INTO wa_tcode

WHERE tcode GE wa_agr_1251_tcode-low

AND tcode LE wa_agr_1251_tcode-high.

IF count LE 1.

agr_name = wa_agr_1251_tcode-agr_name.

wa_agr_1251_tcode-high = space.

wa_agr_1251_tcode-tcode = wa_tcode-tcode.

wa_agr_1251_tcode-ttext = wa_tcode-ttext.

MODIFY t_agr_1251_tc FROM wa_agr_1251_tcode

TRANSPORTING tcode ttext high.

IF syst-subrc EQ 0.

CLEAR wa_tcode.

ENDIF.

count = 1.

ELSE.

wa_agr_1251_tcode-high = space.

wa_agr_1251_tcode-agr_name = agr_name.

wa_agr_1251_tcode-low = wa_tcode-tcode.

wa_agr_1251_tcode-tcode = wa_tcode-tcode.

wa_agr_1251_tcode-ttext = wa_tcode-ttext.

APPEND wa_agr_1251_tcode TO t_agr_1251_tc.

ENDIF.

CLEAR wa_agr_1251_tcode.

count = count + 1.

ENDLOOP.

ENDIF.

ENDLOOP.

LOOP AT t_agr_1251_tc INTO wa_agr_1251_tcode.

wa_role-agr_name = wa_agr_1251_tcode-agr_name.

APPEND wa_role TO t_role.

ENDLOOP.

SORT t_role BY agr_name.

DELETE ADJACENT DUPLICATES FROM t_role.

SORT t_tcode BY tcode.

DELETE ADJACENT DUPLICATES FROM t_tcode.

ENDFORM. "f200_process_trans_data

&----


*& Form f100_prepare_field_catalog

&----


  • text

----


FORM f300_prepare_field_catalog.

LOOP AT t_role INTO wa_role.

wa_field-col_pos = count1.

wa_field-fieldname = wa_role-agr_name.

APPEND wa_field TO t_field.

count1 = count1 + 1.

ENDLOOP.

ENDFORM. "f100_prepare_field_catalog

&----


*& Form f100_display_data

&----


  • text

----


FORM f400_display_data.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

i_callback_program = sy-cprog

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_STRUCTURE_NAME =

  • IS_LAYOUT =

it_fieldcat = t_field[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_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

  • IR_SALV_LIST_ADAPTER =

  • IT_EXCEPT_QINFO =

  • I_SUPPRESS_EMPTY_DATA = ABAP_FALSE

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = t_infotyp_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. "f100_display_data

6 REPLIES 6
Read only

former_member156446
Active Contributor
0 Likes
910

looks like ur field catalog is not built...

and ur not passing the field catalog to Reuse_alv_list_display FM.. check that... that is causing the error..

Read only

0 Likes
910

am using following code to prepare the Fieldcatalog

please tell me any error in Creation of fieldcatalog.

FORM f300_prepare_field_catalog.

LOOP AT t_role INTO wa_role.

wa_field-col_pos = count1.

wa_field-fieldname = wa_role-agr_name.

APPEND wa_field TO t_field.

count1 = count1 + 1.

ENDLOOP.

ENDFORM. "f100_prepare_field_catalog

Read only

0 Likes
910

this are the wasy u can build a field catalog...

1.----


FORM fill_fieldcat .

DATA: fld(30),

idx(2) TYPE n.

DEFINE no_output.

fieldcatalog-fieldname = &1.

fieldcatalog-no_out = 'X'.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

END-OF-DEFINITION.

DEFINE catalog.

fieldcatalog-fieldname = &1.

fieldcatalog-seltext_s = &2.

if not &3 is initial.

fieldcatalog-seltext_m = &3.

else.

fieldcatalog-seltext_m = fieldcatalog-seltext_s.

endif.

if not &4 is initial.

fieldcatalog-seltext_l = &4.

else.

fieldcatalog-seltext_l = fieldcatalog-seltext_m.

endif.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

END-OF-DEFINITION.

catalog 'AVAIL_BASE'

'Base Qty.'

'Base Qty. Available'

'Base Quantity Available'.

catalog 'AVAIL_SALES'

'Sales Qty.'

'Sales Qty. Available'

'Sales Quantity Available'.

LOOP AT t_char_data.

idx = sy-tabix.

CONCATENATE 'CHR' idx INTO fld.

catalog fld

t_char_data-atbez

t_char_data-atbez

t_char_data-atbez.

ENDLOOP.

ADD 1 TO idx.

WHILE idx LE 15.

CONCATENATE 'CHR' idx INTO fld.

no_output fld.

ADD 1 TO idx.

ENDWHILE..

fieldcatalog-fieldname = 'EXACT'.

fieldcatalog-checkbox = 'X'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

2.----


FORM fieldcatalog.

REFRESH fc. CLEAR fc.

fc-tabname = 'HEADER'.

fc-fieldname = 'KUNNR'.

fc-ref_tabname = 'MSKU'.

APPEND fc. CLEAR fc.

fc-tabname = 'HEADER'.

fc-fieldname = 'NAME1_K'.

fc-ref_tabname = 'KNA1'.

fc-ref_fieldname = 'NAME1'.

  • APPEND fc. CLEAR fc.

  • fc-tabname = 'HEADER'.

  • fc-fieldname = 'TOTAL'.

  • fc-ref_tabname = 'MBEW'.

  • fc-ref_fieldname = 'SALK3'.

APPEND fc. CLEAR fc.

fc-tabname = 'LIST'.

fc-fieldname = 'MATNR'.

fc-ref_tabname = 'MSKU'.

APPEND fc. CLEAR fc.

fc-tabname = 'LIST'.

fc-fieldname = 'MAKTX'.

fc-ref_tabname = 'MAKT'.

fc-no_out = 'X'.

APPEND fc. CLEAR fc.

fc-tabname = 'LIST'.

fc-fieldname = 'CHARG'.

fc-ref_tabname = 'MSKU'.

APPEND fc. CLEAR fc.

fc-tabname = 'LIST'.

fc-fieldname = 'WERKS'.

fc-ref_tabname = 'MSKU'.

fc-no_out = 'X'.

APPEND fc. CLEAR fc.

fc-tabname = 'LIST'.

fc-fieldname = 'NAME1_W'.

fc-ref_tabname = 'T001W'.

fc-ref_fieldname = 'NAME1'.

fc-no_out = 'X'.

APPEND fc. CLEAR fc.

Read only

0 Likes
910

Instead of creating fieldcatalog maunally i try to use the

REUSE_FIELDCATALOG_MERGE. FM.

Even am getting TYPE CONFLIT Runtime error.

Please tell me what are changes that i have to do in my program...

Very Urgent.......................

Read only

0 Likes
910

the structure tys_infotype_final is the final output strucutre... u need to declare the fields in it with like

begin of tys_infotype_final

txt like table-fieldname.

tect2 like ...

then pass that in FM reuse_alv_fieldcatalog_merge, then u can capture the field catalog into a talbe.. and use that Field cat in reuse_alv_list_display FM..

>Award points if helpful

Read only

kesavadas_thekkillath
Active Contributor
0 Likes
910

Just check the name of the fields that is assigned to the field catalouge is in upper case.