2007 Aug 02 7:43 AM
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.
2007 Aug 02 7:45 AM
have u built da field catalog?if yes, put a break point on select statements and see if ur internal tbale contains data...
2007 Aug 02 7:48 AM
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>
2007 Aug 02 7:48 AM
check internal table values are initial.
and.
check field fieltcat.
2007 Aug 02 7:50 AM
hi,
First debug u r program and find whether data is retrieved with giving any values in the select options.
Regards,
Sankar
2007 Aug 02 7:53 AM
I already done in my alv code and i know it works...
my problem is no data in alv displayed.
2007 Aug 02 7:55 AM
I also try to debug my program it seems that my program not go to the select select statement;)
2007 Aug 02 7:57 AM
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...
2007 Aug 02 7:56 AM
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.
2007 Aug 02 7:58 AM
it seems dat no data record matches ur selection criteria...
2007 Aug 02 7:59 AM
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
2007 Aug 02 8:06 AM
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.
2007 Aug 02 8:29 AM
I already tried what u said abapuser and no display in my alv report