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

Problems with alv-grid

Former Member
0 Likes
516

hello all,

i've got a little problem with the output of an internal table with the ALV Grid.

i have made the declaration of my internal table (itab) with DATA: Begin of itab... and i have build my own fieldcatalog.

the output of the fieldcatalog is correct but i don't get the results of my itab shown.

it only shows me the numbers of lines in my itab but not the content.

for this im using 'REUSE_ALV_FIELDCATALOG_MERGE' and 'REUSE_ALV_GRID_DISPLAY'

*ALV-Grid

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = sy-repid

  • i_internal_tabname = 'itab'

i_structure_name = 'itab'

  • i_client_never_display

i_inclname = sy-repid

CHANGING

ct_fieldcat = feldkatalog_itab

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3.

*ALV call

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-repid

it_fieldcat = feldkatalog_itab

i_structure_name = 'itab'

  • it_events = event_itab

TABLES

t_outtab = itab[]

EXCEPTIONS

program_error = 1

OTHERS = 2.

when i debug my programm the lines of the itab are filled.

thanks and regards

Ayse

____________________________________________________________

REPORT z_test_auswertung.

*----

-


  • G L O B A L I N T E R N A L T A B L E S

*----

-


DATA: BEGIN OF itab OCCURS 100,

status TYPE dimaiobpar-zstatus,

rtyp TYPE dimaiobpar-zrtyp,

zahlweg TYPE dimaiobpar-ezawe_x,

a_status TYPE i,

a_rtyp TYPE i,

a_partner TYPE i,

a_vertraege TYPE i,

END OF itab .

*----

-


  • G L O B A L D A T A

*----

-


DATA: ok_code LIKE sy-ucomm,

wa_test_tab LIKE dimaiobpar,

my_title TYPE lvc_title.

TYPE-POOLS: slis.

DATA: feldkatalog_itab TYPE slis_t_fieldcat_alv,

wa_feldkatalog TYPE slis_fieldcat_alv,

event_itab TYPE slis_t_event,

header_itab TYPE slis_t_listheader,

wa_header TYPE slis_listheader.

DATA:

mycontainer TYPE scrfname VALUE 'BCALV_VARIANTS_0100_C1',

my_grid TYPE REF TO cl_gui_alv_grid,

my_custom_container TYPE REF TO cl_gui_custom_container.

DATA: t_tab LIKE dimaiobpar.

*selection-screen

SELECTION-SCREEN: SKIP, BEGIN OF BLOCK test WITH FRAME TITLE text-010.

SELECT-OPTIONS: partner FOR t_tab-partner,

astatus FOR t_tab-zstatus.

SELECTION-SCREEN END OF BLOCK test.

*Radiobutton

SELECTION-SCREEN: SKIP, BEGIN OF BLOCK test2 WITH FRAME TITLE text-020.

PARAMETERS: radio1 RADIOBUTTON GROUP test DEFAULT 'X',

radio2 RADIOBUTTON GROUP test,

radio3 RADIOBUTTON GROUP test,

radio4 RADIOBUTTON GROUP test,

rafio5 RADIOBUTTON GROUP test.

SELECTION-SCREEN END OF BLOCK test2.

*----

-


  • S T A R T - O F - S E L E C T I O N.

*----

-


START-OF-SELECTION.

PERFORM select_data.

  • CALL SCREEN 100.

DATA ttab LIKE itab.

MOVE itab TO ttab.

  • Feldkatalog fuellen.

PERFORM feldkatalog_fuellen .

  • Feldkatalog übergeben

PERFORM alv_feldkatalog.

  • ALV mit daten füllen

PERFORM alv_füllen.

END-OF-SELECTION.

SORT itab.

my_title = 'Auswertung Dimaiobpar'.

PERFORM exit_program.

*----


*

  • FORM alv_feldkatalog *

*----


*

  • ........ *

*----


*

FORM alv_feldkatalog.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = sy-repid

i_internal_tabname = 'ITAB[]'

  • i_structure_name = 'TTAB'

  • i_client_never_display

i_inclname = 'ITAB[]'

i_bypassing_buffer = 'X'

CHANGING

ct_fieldcat = FELDKATALOG_ITAB

EXCEPTIONS

program_error = 1

OTHERS = 2.

ENDFORM.

*----


*

  • FORM alv_füllen *

*----


*

  • ........ *

*----


*

FORM alv_füllen .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-repid

i_grid_title = my_title

it_fieldcat = FELDKATALOG_ITAB

  • i_structure_name = 'ITAB'

  • it_events = event_itab

TABLES

t_outtab = itab

EXCEPTIONS

program_error = 1

OTHERS = 2.

ENDFORM.

*----


*

  • FORM EXIT_PROGRAM *

*----


*

FORM exit_program.

  • CALL METHOD G_CUSTOM_CONTAINER->FREE.

  • CALL METHOD CL_GUI_CFW=>FLUSH.

LEAVE PROGRAM.

ENDFORM.

*----


*

  • FORM feldkatalog_fuellen *

*----


*

  • ........ *

*----


*

FORM feldkatalog_fuellen.

IF radio1 = 'X'.

CLEAR wa_feldkatalog.

wa_feldkatalog-fieldname = 'status'.

wa_feldkatalog-seltext_m = 'Status'.

APPEND wa_feldkatalog TO feldkatalog_itab.

CLEAR wa_feldkatalog.

wa_feldkatalog-fieldname = 'rtyp'.

wa_feldkatalog-seltext_m = 'RTyp'.

APPEND wa_feldkatalog TO feldkatalog_itab.

CLEAR wa_feldkatalog.

wa_feldkatalog-fieldname = 'a_rtyp'.

wa_feldkatalog-seltext_m = 'Anzahl RTyp'.

APPEND wa_feldkatalog TO feldkatalog_itab.

ELSEIF radio2 = 'X'.

CLEAR wa_feldkatalog.

wa_feldkatalog-fieldname = 'rtyp'.

wa_feldkatalog-seltext_m = 'RTyp'.

APPEND wa_feldkatalog TO feldkatalog_itab.

CLEAR wa_feldkatalog.

wa_feldkatalog-fieldname = 'a_status'.

wa_feldkatalog-seltext_m = 'Anzahl Status'.

APPEND wa_feldkatalog TO feldkatalog_itab.

ELSEIF radio3 = 'X'.

CLEAR wa_feldkatalog.

wa_feldkatalog-fieldname = 'status'.

wa_feldkatalog-seltext_m = 'Status'.

APPEND wa_feldkatalog TO feldkatalog_itab.

CLEAR wa_feldkatalog.

wa_feldkatalog-fieldname = 'rtyp'.

wa_feldkatalog-seltext_m = 'RTyp'.

APPEND wa_feldkatalog TO feldkatalog_itab.

CLEAR wa_feldkatalog.

wa_feldkatalog-fieldname = 'a_vertraege'.

wa_feldkatalog-seltext_m = 'Anzahl Vertraege'.

APPEND wa_feldkatalog TO feldkatalog_itab.

ELSEIF radio4 = 'X'.

CLEAR wa_feldkatalog.

wa_feldkatalog-fieldname = 'status'.

wa_feldkatalog-seltext_m = 'Status'.

APPEND wa_feldkatalog TO feldkatalog_itab.

CLEAR wa_feldkatalog.

wa_feldkatalog-fieldname = 'rtyp'.

wa_feldkatalog-seltext_m = 'RTyp'.

APPEND wa_feldkatalog TO feldkatalog_itab.

CLEAR wa_feldkatalog.

wa_feldkatalog-fieldname = 'a_gpartner'.

wa_feldkatalog-seltext_m = 'Anzahl GPartner'.

APPEND wa_feldkatalog TO feldkatalog_itab.

ELSE.

CLEAR wa_feldkatalog.

wa_feldkatalog-fieldname = 'status'.

wa_feldkatalog-seltext_m = 'Status'.

APPEND wa_feldkatalog TO feldkatalog_itab.

CLEAR wa_feldkatalog.

wa_feldkatalog-fieldname = 'rtyp'.

wa_feldkatalog-seltext_m = 'RTyp'.

APPEND wa_feldkatalog TO feldkatalog_itab.

CLEAR wa_feldkatalog.

wa_feldkatalog-fieldname = 'zahlweg'.

wa_feldkatalog-seltext_m = 'Zahlweg'.

APPEND wa_feldkatalog TO feldkatalog_itab.

CLEAR wa_feldkatalog.

wa_feldkatalog-fieldname = 'a_gpartner'.

wa_feldkatalog-seltext_m = 'Anzahl GPartner'.

APPEND wa_feldkatalog TO feldkatalog_itab.

ENDIF.

ENDFORM.

*----


*

  • FORM select_data *

*----


*

  • ........ *

*----


*

FORM select_data.

IF radio1 = 'X' .

  • WRITE / 'Radiobutton1: Rechungstypen je Satus'.

  • WRITE / 'Status, Rtyp, Anzahl-Rtyp'.

  • ULINE.

SELECT

zstatus AS status

zrtyp AS rtyp

COUNT( DISTINCT zrtyp ) AS a_rtyp

INTO CORRESPONDING FIELDS OF itab

FROM dimaiobpar

WHERE

insobject LIKE 'V%' AND

partner IN partner AND

zstatus IN astatus

GROUP BY ZSTATUS zrtyp

ORDER BY zstatus.

APPEND itab.

  • WRITE: / itab.

ENDSELECT.

ELSEIF radio2 = 'X'.

  • WRITE / 'Radiobutton2: Status je Rechungstyp'.

  • WRITE /.

SELECT

zrtyp AS rtyp

COUNT( DISTINCT zstatus ) AS a_status

INTO CORRESPONDING FIELDS OF itab

FROM dimaiobpar

WHERE

insobject LIKE 'V%' AND

partner IN partner AND

zstatus IN astatus

GROUP BY ZRTYP

ORDER BY zrtyp.

APPEND itab.

  • WRITE: / itab-rtyp, itab-a_status.

ENDSELECT.

ELSEIF radio3 = 'X'.

  • WRITE / 'Radiobutton3: Anzahl Verträge je Status und Rtyp'.

  • WRITE /.

SELECT

zstatus AS status

zrtyp AS rtyp

COUNT( DISTINCT insobject ) AS a_vertraege

INTO CORRESPONDING FIELDS OF itab

FROM dimaiobpar

WHERE

insobject LIKE 'V%' AND

partner IN partner AND

zstatus IN astatus

GROUP BY ZSTATUS zrtyp

ORDER BY zstatus.

APPEND itab.

  • WRITE: / itab-status, itab-rtyp, itab-a_vertraege.

ENDSELECT.

ELSEIF radio4 ='X'.

  • WRITE: / 'Radiobutton4: Anzahl GPartner je Status und RTyp'.

  • WRITE: /.

SELECT

zstatus AS status

zrtyp AS rtyp

COUNT( DISTINCT partner ) AS a_partner

INTO CORRESPONDING FIELDS OF itab

FROM dimaiobpar

WHERE

insobject LIKE 'V%' AND

partner IN partner AND

zstatus IN astatus

GROUP BY ZSTATUS zrtyp

ORDER BY zstatus zrtyp.

APPEND itab.

  • WRITE: / itab-status, itab-rtyp, itab-a_partner.

ENDSELECT.

ELSE.

  • WRITE / 'Radiobutton5: Anzahl Kunden nach Zahlweg'.

  • WRITE /.

SELECT

zstatus AS status

zrtyp AS rtyp

ezawe_x AS zahlweg

COUNT( DISTINCT partner ) AS a_partner

INTO CORRESPONDING FIELDS OF itab

FROM dimaiobpar

WHERE

insobject LIKE 'V%' AND

partner IN partner AND

zstatus IN astatus AND

ezawe_x IN ('E', 'F', space)

GROUP BY ZSTATUS zrtyp EZAWE_X

ORDER BY zstatus zrtyp.

APPEND itab.

  • WRITE: / itab-status, itab-rtyp, itab-zahlweg, itab-a_partner

.

ENDSELECT.

ENDIF.

  • APPEND itab.

ENDFORM=

_____________________________________________________________

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
468

Hi,

Please give all the field names while building the field catalog in Capital letters.

e.g.

wa_feldkatalog-fieldname = 'STATUS'.

wa_feldkatalog-seltext_m = 'Status'.

APPEND wa_feldkatalog TO feldkatalog_itab.

Just try and see.Hope it works.

Thanks,

Sandeep.

2 REPLIES 2
Read only

Former Member
0 Likes
469

Hi,

Please give all the field names while building the field catalog in Capital letters.

e.g.

wa_feldkatalog-fieldname = 'STATUS'.

wa_feldkatalog-seltext_m = 'Status'.

APPEND wa_feldkatalog TO feldkatalog_itab.

Just try and see.Hope it works.

Thanks,

Sandeep.

Read only

Former Member
0 Likes
468

Hi,

Make itab into capital letters as below

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' 
EXPORTING 
i_callback_program = sy-repid 
it_fieldcat = feldkatalog_itab 
i_structure_name = 'ITAB' 
* it_events = event_itab 
TABLES 
t_outtab = itab[] 
EXCEPTIONS 
program_error = 1 
OTHERS = 2.

<b>Reward for helpful answers</b>