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

data retrieval in ALV

Former Member
0 Likes
1,385

Im using inner join im my alv report. how can i get the data from these. what's the next step. I test these code and nothing display in my alv.... thanks:)

SELECT a005~vkorg

a005~vtweg

a005~kschl

INTO TABLE t_final

FROM a005

INNER JOIN knvv ON knvvvkorg = a005vkorg

AND knvvvtweg = a005vtweg

WHERE a005~vkorg IN s_vkorg

AND a005~vtweg IN s_vtweg

AND a005~kschl IN s_kschl

AND a005~matnr IN s_matnr

AND knvv~kdgrp IN s_kdgrp

AND knvv~konda IN s_konda

AND a005~kunnr IN s_kunnr

AND a005~datab IN s_datab.

IF sy-subrc = 0.

ENDIF.

SELECT mvke~matnr

mvke~vkorg

mvke~vtweg

mvke~kondm

INTO TABLE t_final

FROM mvke

INNER JOIN a005 ON mvkematnr = a005matnr

WHERE mvke~kondm IN s_kondm.

Im using inner join im my alv report. how can i get the data from these. what's the next step. I test these code and nothing display in my alv.... thanks:)

SELECT a005~vkorg

a005~vtweg

a005~kschl

INTO TABLE t_final

FROM a005

INNER JOIN knvv ON knvvvkorg = a005vkorg

AND knvvvtweg = a005vtweg

WHERE a005~vkorg IN s_vkorg

AND a005~vtweg IN s_vtweg

AND a005~kschl IN s_kschl

AND a005~matnr IN s_matnr

AND knvv~kdgrp IN s_kdgrp

AND knvv~konda IN s_konda

AND a005~kunnr IN s_kunnr

AND a005~datab IN s_datab.

IF sy-subrc = 0.

ENDIF.

SELECT mvke~matnr

mvke~vkorg

mvke~vtweg

mvke~kondm

INTO TABLE t_final

FROM mvke

INNER JOIN a005 ON mvkematnr = a005matnr

WHERE mvke~kondm IN s_kondm.

12 REPLIES 12
Read only

former_member188827
Active Contributor
0 Likes
1,332

have u built da field catalog?if yes, put a break point on select statements and see if ur internal tbale contains data...

Read only

Former Member
0 Likes
1,332

Hi,

Check this code.

TYPE-POOLS: slis.

DATA: BEGIN OF i_data OCCURS 0,

qmnum LIKE qmel-qmnum,

qmart LIKE qmel-qmart,

qmtxt LIKE qmel-qmtxt,

ws_row TYPE i,

ws_char(5) TYPE c,

chk,

END OF i_data.

DATA: report_id LIKE sy-repid.

DATA: ws_title TYPE lvc_title VALUE 'An ALV Report'.

DATA: i_layout TYPE slis_layout_alv.

DATA: i_fieldcat TYPE slis_t_fieldcat_alv.

DATA: i_events TYPE slis_t_event.

DATA: i_header TYPE slis_t_listheader.

SELECT qmnum

qmart

qmtxt

INTO TABLE i_data

FROM qmel

WHERE qmnum <= '00030000010'.

LOOP AT i_data.

i_data-ws_row = sy-tabix.

i_data-ws_char = 'AAAAA'.

MODIFY i_data.

ENDLOOP.

report_id = sy-repid.

PERFORM f1000_layout_init CHANGING i_layout.

PERFORM f2000_fieldcat_init CHANGING i_fieldcat.

PERFORM f3000_build_header CHANGING i_header.

PERFORM f4000_events_init CHANGING i_events.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

i_callback_program = report_id

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • i_structure_name = ' '

  • I_BACKGROUND_ID = ' '

i_grid_title = ws_title

  • I_GRID_SETTINGS =

is_layout = i_layout

it_fieldcat = i_fieldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

i_save = 'A'

  • IS_VARIANT =

it_events = i_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 =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = i_data

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.

&----


*& Form F1000_Layout_Init

&----


FORM f1000_layout_init USING i_layout TYPE slis_layout_alv.

CLEAR i_layout.

i_layout-colwidth_optimize = 'X'.

i_layout-edit = 'X'.

ENDFORM. " F1000_Layout_Init

&----


*& Form f2000_fieldcat_init

&----


FORM f2000_fieldcat_init CHANGING i_fieldcat TYPE slis_t_fieldcat_alv.

DATA: line_fieldcat TYPE slis_fieldcat_alv.

CLEAR line_fieldcat.

line_fieldcat-fieldname = 'QMNUM'. " The field name and the table

line_fieldcat-tabname = 'I_DATA'. " name are the two minimum req.

line_fieldcat-key = 'X'. " Specifies the column as a key (Blue)

line_fieldcat-seltext_m = 'Notification No.'. " Column Header

APPEND line_fieldcat TO i_fieldcat.

CLEAR line_fieldcat.

line_fieldcat-fieldname = 'QMART'.

line_fieldcat-ref_tabname = 'I_DATA'.

line_fieldcat-hotspot = 'X'. " Shows the field as a hotspot.

line_fieldcat-seltext_m = 'Notif Type'.

APPEND line_fieldcat TO i_fieldcat.

CLEAR line_fieldcat.

line_fieldcat-fieldname = 'QMTXT'.

line_fieldcat-tabname = 'I_DATA'.

line_fieldcat-seltext_m = 'Description'.

APPEND line_fieldcat TO i_fieldcat.

CLEAR line_fieldcat.

line_fieldcat-fieldname = 'WS_ROW'.

line_fieldcat-tabname = 'I_DATA'.

line_fieldcat-seltext_m = 'Row Number'.

APPEND line_fieldcat TO i_fieldcat.

CLEAR line_fieldcat.

line_fieldcat-fieldname = 'WS_CHAR'.

line_fieldcat-tabname = 'I_DATA'.

line_fieldcat-seltext_l = 'Test Character Field'.

line_fieldcat-datatype = 'CHAR'.

line_fieldcat-outputlen = '15'. " You can specify the width of a

APPEND line_fieldcat TO i_fieldcat. " column.

CLEAR line_fieldcat.

line_fieldcat-fieldname = 'CHK'.

line_fieldcat-tabname = 'I_DATA'.

line_fieldcat-seltext_l = 'Checkbox'.

line_fieldcat-checkbox = 'X'. " Display this field as a checkbox

line_fieldcat-edit = 'X'. " This option ensures that you can

" edit the checkbox. Else it will

" be protected.

APPEND line_fieldcat TO i_fieldcat.

ENDFORM. " f2000_fieldcat_init

&----


*& Form f3000_build_header

&----


FORM f3000_build_header USING i_header TYPE slis_t_listheader.

DATA: gs_line TYPE slis_listheader.

CLEAR gs_line.

gs_line-typ = 'H'.

gs_line-info = 'This is line of type HEADER'.

APPEND gs_line TO i_header.

CLEAR gs_line.

gs_line-typ = 'S'.

gs_line-key = 'STATUS 1'.

gs_line-info = 'This is line of type STATUS'.

APPEND gs_line TO i_header.

gs_line-key = 'STATUS 2'.

gs_line-info = 'This is also line of type STATUS'.

APPEND gs_line TO i_header.

CLEAR gs_line.

gs_line-typ = 'A'.

gs_line-info = 'This is line of type ACTION'.

APPEND gs_line TO i_header.

ENDFORM. " f3000_build_header

&----


*& Form f4000_events_init

&----


FORM f4000_events_init CHANGING i_events TYPE slis_t_event.

DATA: line_event TYPE slis_alv_event.

CLEAR line_event.

line_event-name = 'TOP_OF_PAGE'.

line_event-form = 'F4100_TOP_OF_PAGE'.

APPEND line_event TO i_events.

ENDFORM. " f3000_events_init

----


  • FORM F4100_TOP_OF_PAGE *

----


FORM f4100_top_of_page.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = i_header.

ENDFORM.

<b>Regards,

Jackie.</b>

Read only

Former Member
0 Likes
1,332

check internal table values are initial.

and.

check field fieltcat.

Read only

Former Member
0 Likes
1,332

hi,

First debug u r program and find whether data is retrieved with giving any values in the select options.

Regards,

Sankar

Read only

Former Member
0 Likes
1,332

I already done in my alv code and i know it works...

my problem is no data in alv displayed.

Read only

Former Member
0 Likes
1,332

I also try to debug my program it seems that my program not go to the select select statement;)

Read only

0 Likes
1,332

den just use loop through internal table and check if it contains any entry...

loop at t_final.

write:/t_final-..., t_final-....

endloop.

c if ny data is dispplayed...

Read only

Former Member
0 Likes
1,332

Hi,

Why can't use for all entries instead of joining these 2 tables. First Select data from KNW and based on that select from A005.

In the performance view it will be better.

Hope this helps you. Reply for queries, shall post the updates.

Regards.

Kumar.

Read only

former_member188827
Active Contributor
0 Likes
1,332

it seems dat no data record matches ur selection criteria...

Read only

Former Member
0 Likes
1,332

i post my whole code...

i think there's missing...or something wrong in my code.

REPORT try NO STANDARD PAGE HEADING

LINE-COUNT 55

LINE-SIZE 200.

----


  • TABLE DECLARATION *

----


TABLES: a005,

konp,

knvv,

mvke.

----


  • TYPES OR TYPE-POOLS *

----


TYPE-POOLS: slis.

----


  • DATA/VARIABLE DECLARATION *

----


DATA: BEGIN OF t_final OCCURS 0,

vkorg TYPE a005-vkorg,

vtweg TYPE a005-vtweg,

kschl TYPE a005-kschl,

kondm TYPE mvke-kondm,

matnr TYPE a005-matnr,

kdgrp TYPE knvv-kdgrp,

konda TYPE knvv-konda,

kunnr TYPE a005-kunnr,

datab TYPE a005-datab,

END OF t_final.

  • ALV

DATA: t_fieldcat TYPE slis_t_fieldcat_alv,

t_alv_heading TYPE slis_t_listheader,

t_field LIKE LINE OF t_fieldcat,

g_repid LIKE sy-repid,

g_layout TYPE slis_layout_alv.

CONSTANTS: c_cntry(7) TYPE c VALUE 'COUNTRY',

c_condtyp(14) TYPE c VALUE 'CONDITION TYPE',

c_cnum(15) TYPE c VALUE 'CUSTOMER NUMBER',

c_cdes(20) TYPE c VALUE 'CUSTOMER DESCRIPTION',

c_matnum(15) TYPE c VALUE 'MATERIAL NUMBER',

c_matdes(20) TYPE c VALUE 'MATERIAL DESCRIPTION',

c_vfrom(8) TYPE c VALUE 'VALID ON',

c_vto(8) TYPE c VALUE 'VALID TO',

c_topage TYPE slis_formname VALUE 'F_TOP_PAGE'.

----


  • INITIALIZATION *

----


CLEAR: g_repid,

g_layout,

t_field.

REFRESH: t_fieldcat.

----


  • SELECT-OPTIONS *

----


SELECT-OPTIONS: s_vkorg FOR a005-vkorg OBLIGATORY,

s_vtweg FOR a005-vtweg OBLIGATORY,

s_kschl FOR a005-kschl OBLIGATORY,

s_kondm FOR mvke-kondm,

s_matnr FOR a005-matnr,

s_kdgrp FOR knvv-kdgrp,

s_konda FOR knvv-konda,

s_kunnr FOR a005-kunnr,

s_datab FOR a005-datab.

----


  • AT SELECTION-SCREEN *

----


----


  • START-OF-SELECTION *

----


START-OF-SELECTION.

PERFORM f_data_retrieval.

  • Build catalog for ALV.

PERFORM f_build_catalog.

  • Build layout for ALV.

PERFORM f_build_layout.

  • Output ALV display

PERFORM f_reuse_alv_grid_display.

&----


*& Form f_data_retrieval

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM f_data_retrieval.

SELECT a005~vkorg

a005~vtweg

a005~kschl

INTO TABLE t_final

FROM a005

INNER JOIN knvv ON knvvvkorg = a005vkorg

AND knvvvtweg = a005vtweg

WHERE a005~vkorg IN s_vkorg

AND a005~vtweg IN s_vtweg

AND a005~kschl IN s_kschl

AND a005~matnr IN s_matnr

AND knvv~kdgrp IN s_kdgrp

AND knvv~konda IN s_konda

AND a005~kunnr IN s_kunnr

AND a005~datab IN s_datab.

IF sy-subrc = 0.

ENDIF.

SELECT mvke~matnr

mvke~vkorg

mvke~vtweg

mvke~kondm

INTO TABLE t_final

FROM mvke

INNER JOIN a005 ON mvkematnr = a005matnr

WHERE mvke~kondm IN s_kondm.

IF sy-subrc = 0.

ENDIF.

loop at t_final.

READ TABLE t_final WITH KEY vkorg = t_final-vkorg

vtweg = t_final-vtweg

kschl = t_final-kschl.

IF sy-subrc = 0.

ENDIF.

APPEND t_final.

CLEAR : t_final.

endloop.

ENDFORM. " f_data_retrieval

*&----


*

*& FORM F_BUILD_CATALOG

*&----


*

  • Build catalog for ALV.

*----


FORM f_build_catalog.

PERFORM f_build_table USING:

c_cntry text-001, "COUNTRY

c_condtyp text-002, "CONDITION TYPE

c_cnum text-003, "CUSTOMER NUMBER

c_cdes text-004, "CUSTOMER DESCRIPTION

c_matnum text-005, "MATERIAL NUMBER

c_matdes text-006, "MATERIAL DESCRIPTION

c_vfrom text-007, "VALID ON

c_vto text-008. "VALID TO

ENDFORM.

&----


*& FORM BUILD_TABLE

&----


  • Build table for ALV.

----


FORM f_build_table USING: p_fieldname TYPE c

p_fieldtext TYPE string.

t_field-row_pos = 1.

t_field-col_pos = 2.

t_field-fieldname = p_fieldname. " Name of field

t_field-seltext_l = p_fieldtext. " Name of fieldtext

APPEND t_field TO t_fieldcat.

ENDFORM.

&----


*& FORM F_BUILD_LAYOUT

&----


  • Build layout for ALV.

----


FORM f_build_layout.

  • v_layout-zebra = abap_true. " Layout zebra

g_layout-colwidth_optimize = 'X'. " Layout of the column width

  • v_layout-box_fieldname = c_gc_box.

ENDFORM. "F_BUILD_LAYOUT

&----


*& FORM F_REUSE_ALV_GRID_DISPLAY

&----


  • Output ALV display.

----


FORM f_reuse_alv_grid_display.

g_repid = sy-repid.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = g_repid

i_callback_top_of_page = c_topage

is_layout = g_layout

it_fieldcat = t_fieldcat

TABLES

t_outtab = t_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. "F_REUSE_ALV_GRID_DISPLAY

----


  • FORM f_top_page *

----


  • ........ *

*----


FORM f_top_page.

DATA: l_line TYPE slis_listheader.

CLEAR: l_line.

l_line-typ = 'C'.

l_line-info = text-009.

APPEND l_line TO t_alv_heading. CLEAR: l_line-info.

l_line-typ = 'C'.

WRITE: text-009 TO l_line-info,

s_vkorg TO l_line-info.

WRITE: text-010 TO l_line-info,

s_vtweg TO l_line-info.

WRITE: text-002 TO l_line-info,

s_kschl TO l_line-info.

APPEND l_line TO t_alv_heading. CLEAR: l_line-info.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = t_alv_heading

  • I_LOGO =

  • I_END_OF_LIST_GRID =

.

ENDFORM.

Message was edited by:

rhymmeanne

Message was edited by:

rhymmeanne

Read only

0 Likes
1,332

in order to check whether da problem lies with select statements, just append a dummy record in the internal table t_final and c if it is getting displayed in alv...

if it does, it means no data record matches ur selection criteria...if da dummy record also doesnt get displayed, it means da probelm lies in filed catalog...

like:

t_final-matnr = '0001'.

t_final-kdgrp = '123'...etc.

append t_final.

Read only

Former Member
0 Likes
1,332

I already tried what u said abapuser and no display in my alv report