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: 

Runtime error in ALV demo

Former Member
0 Kudos

HI,

Runtime error in the below report as internal table IT_FIELDCAT is empty after the execution of FM

REUSE_ALV_FIELDCATALOG_MERGE.

Please tell me how do i rectify this error.

REPORT ZMY_ALV_COLORING_CELLS.

TYPE-POOLS SLIS.

DATA: BEGIN OF itab OCCURS 0,

BUKRS LIKE T001-BUKRS,

BUTXT LIKE T001-BUTXT,

END OF itab.

PARAMETERS: P_BUKRS TYPE TBUKRS.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_BUKRS.

PERFORM F4_FOR_BUKRS.

&----


*& Form F4_FOR_BUKRS

----


FORM F4_FOR_BUKRS.

DATA: IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV ,

ES_SELFIELD TYPE SLIS_SELFIELD. " Get data

SELECT BUKRS

BUTXT

FROM T001

INTO TABLE itab

up to 10 rows .

  • Get field

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = SY-REPID

I_INTERNAL_TABNAME = 'ITAB'

CHANGING

CT_FIELDCAT = IT_FIELDCAT[].

LOOP AT IT_FIELDCAT.

IT_FIELDCAT-KEY = SPACE.

IF IT_FIELDCAT-FIELDNAME = 'BUTXT'.

IT_FIELDCAT-EMPHASIZE = 'C710'.

ENDIF.

IF IT_FIELDCAT-FIELDNAME = 'BUKRS'.

IT_FIELDCAT-EMPHASIZE = 'C610'.

ENDIF.

MODIFY IT_FIELDCAT.

ENDLOOP.

CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'

EXPORTING

I_TITLE = 'THIS IS FOR F4 IN COLOR'

I_TABNAME = 'ITAB'

IT_FIELDCAT = IT_FIELDCAT[]

IMPORTING

ES_SELFIELD = ES_SELFIELD

TABLES

T_OUTTAB = ITAB .

Thanks,

Ahmed.

9 REPLIES 9

Former Member
0 Kudos

does anyone able to excute this demo

Former Member
0 Kudos

Well.. IT_FIELDCAT is not getting populated at all..

In the code which you have given.. i can see the declarations..and the loop on it.. but..where is it gettin populated..???

0 Kudos

Hi,

Thanks for your reply

Actually it should get populate automatically by using the FM "Reuse_field_catalog_alv" but here it is not working.

I have one more demo also which is working by this FM.

Ahmed.

0 Kudos

If anyone able to execute the report please let me know

0 Kudos

Hi,

Its simple: Do as follows:

1- create a new include for your report e.g :Z_DPA_INCLUDE

call the include i your report .

2- put the data declaration of internal table itab in the include

*&  Include           Z_DPA_INCLUDE
*&---------------------------------------------------------------------*
DATA: BEGIN OF itab OCCURS 0,
BUKRS LIKE T001-BUKRS,
BUTXT LIKE T001-BUTXT,
END OF itab.

3. pass the include name to the FM

data:lv_INCLNAME TYPE TRDIR-NAME.

lv_INCLNAME = 'Z_DPA_INCLUDE'.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = SY-REPID

I_INCLNAME = lv_INCLNAME

I_INTERNAL_TABNAME = 'ITAB'

CHANGING

CT_FIELDCAT = IT_FIELDCAT[].

It will work for sure.

Regards.

Former Member
0 Kudos

Hi Ahmed,

You can populate the data into field catalog using the below form

FORM build_fieldcatalog USING value(p_fieldname) TYPE c

value(p_tablename) TYPE c

value(p_length) TYPE i

value(p_text) TYPE c

value(p_do_sum)

value(p_data_type).

***Local data declaration.

DATA :lw_fieldcat TYPE slis_fieldcat_alv,

l_count TYPE i.

l_count = l_count + 1.

CLEAR lw_fieldcat.

lw_fieldcat-col_pos = l_count.

lw_fieldcat-fieldname = p_fieldname.

lw_fieldcat-tabname = p_tablename.

lw_fieldcat-outputlen = p_length.

lw_fieldcat-reptext_ddic = p_text.

lw_fieldcat-do_sum = p_do_sum.

lw_fieldcat-datatype = p_data_type.

APPEND lw_fieldcat TO gt_field_cat.

ENDFORM. " build_fieldcatalog

and for adding the required fields for output u can just use the below PERFORM stmt followed by column names, internal table name, size of the field and any texts if required.

PERFORM build_fieldcatalog USING :

'KUNNR' 'GT_OUTPUT' 10 text-001 '' '',

'NAME1' 'GT_OUTPUT' 30 text-002 '' '',

'NAME2' 'GT_OUTPUT' 10 text-003 '' ''.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = l_repid

it_fieldcat = gt_field_cat[]

TABLES

t_outtab = gt_output[].

Former Member
0 Kudos

Hi,

wht exactly u wanted to do? u r trying for any F4 help for BUKRS or Company Code field?

if so, you should call below FM...

SELECT epstp

ptext FROM t163x

INTO TABLE it_t163x

WHERE spras = sy-langu.

v_retfield = 'EPSTP'.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

RETFIELD = v_retfield

dynpprog = sy-cprog

dynpnr = sy-dynnr

dynprofield = 'P_EPSTP'

window_title = 'PO Item Category'

value_org = 'S'

callback_program = sy-repid

TABLES

VALUE_TAB = it_t163x[]

EXCEPTIONS

PARAMETER_ERROR = 1

NO_VALUES_FOUND = 2

OTHERS = 3

.

Kindly let us know what exactly u want...

Regards,

Pavan

Mohamed_Mukhtar
Active Contributor
0 Kudos

hi,


REPORT ZMY_ALV_COLORING_CELLS.
TYPE-POOLS slis.

DATA: BEGIN OF itab OCCURS 0,
bukrs LIKE t001-bukrs,
butxt LIKE t001-butxt,
END OF itab.

PARAMETERS: p_bukrs TYPE tbukrs.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_bukrs.

  PERFORM f4_for_bukrs.
"  &----------------------------------------------------------------
"& Form F4_FOR_BUKRS
"  -----------------------------------------------------------------
FORM f4_for_bukrs.

  DATA: it_fieldcat TYPE slis_t_fieldcat_alv ,
        wa_fieldcat TYPE slis_fieldcat_alv,   "--> Create a work Area for it_fieldcat
  es_selfield TYPE slis_selfield. " Get data

  SELECT bukrs
  butxt
  FROM t001
  INTO TABLE itab
  UP TO 10 ROWS .
* Get field

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
      i_program_name         = sy-repid
      i_internal_tabname     = 'ITAB'
      i_inclname             = sy-repid  "---> add this parameter in your FM
    CHANGING
      ct_fieldcat            = it_fieldcat
    EXCEPTIONS
      inconsistent_interface = 1
      program_error          = 2
      OTHERS                 = 3.


  LOOP AT it_fieldcat INTO wa_fieldcat.
    wa_fieldcat-key = space.
    IF wa_fieldcat-fieldname = 'BUTXT'.
      wa_fieldcat-emphasize = 'C710'.
    ENDIF.
    IF wa_fieldcat-fieldname = 'BUKRS'.
      wa_fieldcat-emphasize = 'C610'.
    ENDIF.
    MODIFY it_fieldcat INDEX sy-tabix  FROM wa_fieldcat  TRANSPORTING
                                        key   emphasize. "---> use this modify statement
*    MODIFY it_fieldcat.
  ENDLOOP.
BREAK-POINT.
  CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
    EXPORTING
      i_title     = 'THIS IS FOR F4 IN COLOR'
      i_tabname   = 'ITAB'
      it_fieldcat = it_fieldcat[]
    IMPORTING
      es_selfield = es_selfield
    TABLES
      t_outtab    = itab.

ENDFORM.                    "f4_for_bukrs

Thanks & Regards

Former Member
0 Kudos

Change like this

>

> HI,

>

> Runtime error in the below report as internal table IT_FIELDCAT is empty after the execution of FM

> REUSE_ALV_FIELDCATALOG_MERGE.

>

> Please tell me how do i rectify this error.

>

>

>

> REPORT ZMY_ALV_COLORING_CELLS.

> TYPE-POOLS SLIS.

>

> DATA: BEGIN OF itab OCCURS 0,

> BUKRS LIKE T001-BUKRS,

> BUTXT LIKE T001-BUTXT,

> END OF itab.

>

> PARAMETERS: P_BUKRS TYPE TBUKRS.

>

> AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_BUKRS.

>

>

> PERFORM F4_FOR_BUKRS.

> &----


> *& Form F4_FOR_BUKRS

> ----


> FORM F4_FOR_BUKRS.

>

> DATA: IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV ,

> ES_SELFIELD TYPE SLIS_SELFIELD. " Get data

>

> SELECT BUKRS

> BUTXT

> FROM T001

> INTO TABLE itab

> up to 10 rows .

> * Get field

>

> CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

> EXPORTING

> I_PROGRAM_NAME = SY-REPID

>* I_INTERNAL_TABNAME = 'ITAB'

> I_STRUCTURE_NAME = 'ITAB'

> CHANGING

> CT_FIELDCAT = IT_FIELDCAT[].

>

> LOOP AT IT_FIELDCAT.

> IT_FIELDCAT-KEY = SPACE.

> IF IT_FIELDCAT-FIELDNAME = 'BUTXT'.

> IT_FIELDCAT-EMPHASIZE = 'C710'.

> ENDIF.

> IF IT_FIELDCAT-FIELDNAME = 'BUKRS'.

> IT_FIELDCAT-EMPHASIZE = 'C610'.

> ENDIF.

>

> MODIFY IT_FIELDCAT.

> ENDLOOP.

>

> CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'

> EXPORTING

> I_TITLE = 'THIS IS FOR F4 IN COLOR'

> I_TABNAME = 'ITAB'

> IT_FIELDCAT = IT_FIELDCAT[]

> IMPORTING

> ES_SELFIELD = ES_SELFIELD

> TABLES

> T_OUTTAB = ITAB .

>

>

>

>

>

> Thanks,

> Ahmed.

Rhea