‎2007 Sep 13 6:04 AM
This code is not working...anybody can tell where is the problem. or some one can rectify this code. Ponts will be rewarded.
Thanks,
REPORT zmm_purchase_report.
TABLES: marc,
mkpf,
mseg,
ekko,
ekpo,
ekbe,
rseg.
TYPE-POOLS: slis.
&----
DATA: BEGIN OF itab OCCURS 0,
matnr LIKE marc-matnr,
budat LIKE mkpf-budat,
werks LIKE mseg-werks,
lifnr LIKE ekko-lifnr,
ebeln LIKE ekpo-ebeln,
menge LIKE ekpo-menge,
smbln LIKE mseg-smbln,
bstmg LIKE mseg-bstmg,
dmbtr LIKE mseg-dmbtr,
belnr LIKE ekbe-belnr,
bprbm LIKE rseg-bprbm,
refwr LIKE ekbe-refwr,
END OF itab.
DATA: i_fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat TYPE slis_fieldcat_alv.
DATA v_repid.
&----
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_matnr FOR marc-matnr,
s_budat FOR mkpf-budat.
SELECTION-SCREEN END OF BLOCK b1.
&----
INITIALIZATION.
v_repid = sy-repid.
PERFORM build_fieldcatlog.
PERFORM display_alv_report.
&----
*SELECT SINGLE matnr FROM marc INTO itab
*WHERE matnr IN s_matnr.
*
*SELECT SINGLE budat FROM mkpf INTO itab
*WHERE budat IN s_budat.
*
*SELECT werks smbln bstmg dmbtr FROM mseg INTO itab
*WHERE mblnr = mkpf-mblnr AND
mjahr = mkpf-mjahr.
*
*
SELECT SINGLE lifnr FROM ekko INTO itab
WHERE ebeln = ekko-ebeln.
*
*
SELECT ebeln menge FROM ekpo INTO itab
WHERE ebeln = ekko-ebeln.
*
SELECT belnr refwr FROM ekbe INTO itab
WHERE ebeln = ekko-ebeln.
*
SELECT SINGLE bprbm FROM rseg INTO itab
**
WHERE belnr = ekko-belnr,
gjahr = ekko-gjhar,
buzei = ekko-buzei.
*
APPEND itab.
*
*
*
ENDSELECT.
ENDSELECT.
*ENDSELECT.
*
*APPEND itab.
&----
START-OF-SELECTION.
SELECT werks smbln bstmg dmbtr matnr ebeln FROM mseg INTO CORRESPONDING FIELDS OF TABLE itab
WHERE matnr IN s_matnr.
*ENDSELECT.
SELECT SINGLE lifnr FROM ekko INTO CORRESPONDING FIELDS OF itab
WHERE ebeln = mseg-ebeln.
SELECT ebeln menge FROM ekpo INTO CORRESPONDING FIELDS OF itab
WHERE ebeln = mseg-ebeln.
ENDSELECT.
SELECT ebeln belnr refwr budat FROM ekbe INTO CORRESPONDING FIELDS OF itab
WHERE budat IN s_budat AND
ebeln = mseg-ebeln.
ENDSELECT.
SELECT SINGLE matnr FROM marc INTO itab
WHERE matnr = mseg-matnr.
*APPEND itab.
END-OF-SELECTION.
&----
LOOP AT itab.
*
WRITE:/ itab-menge, itab-werks, itab-smbln, itab-bstmg, itab-matnr, itab-ebeln, itab-lifnr, itab-menge, itab-belnr, itab-refwr, itab-budat.
*
ENDLOOP.
&----
*& Form build_fieldcatlog
&----
text
----
--> p1 text
<-- p2 text
----
FORM build_fieldcatlog .
wa_fieldcat-tabname = 'itab'.
wa_fieldcat-fieldname = 'menge'.
wa_fieldcat-seltext_m = 'menge.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'itab'.
wa_fieldcat-fieldname = 'werks'.
wa_fieldcat-seltext_m = 'werks.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'itab'.
wa_fieldcat-fieldname = 'smbln'.
wa_fieldcat-seltext_m = 'smbln.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'itab'.
wa_fieldcat-fieldname = 'bstmg'.
wa_fieldcat-seltext_m = 'bstmg.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'itab'.
wa_fieldcat-fieldname = 'matnr'.
wa_fieldcat-seltext_m = 'matnr.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'itab'.
wa_fieldcat-fieldname = 'ebeln'.
wa_fieldcat-seltext_m = 'ebeln.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'itab'.
wa_fieldcat-fieldname = 'LIFNR'.
wa_fieldcat-seltext_m = 'LIFNR.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'itab'.
wa_fieldcat-fieldname = 'belnr'.
wa_fieldcat-seltext_m = 'belnr.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'itab'.
wa_fieldcat-fieldname = 'refwr'.
wa_fieldcat-seltext_m = 'refwr.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'itab'.
wa_fieldcat-fieldname = 'budat'.
wa_fieldcat-seltext_m = 'budat'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
ENDFORM. " build_fieldcatlog
&----
*& Form display_alv_report
&----
text
----
FORM display_alv_report.
v_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = 'ZMM_PURCHASE_REPORT'
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 =
I_GRID_SETTINGS =
IS_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 =
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
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = itab
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. "display_alv_report
‎2007 Sep 13 6:15 AM
Hi,
While executing your report the control is not going to the selection screen.
So the problem is you are calling the subroutines PERFORM build_fieldcatlog &
PERFORM display_alv_report in the intialization.This causes the output screen to be displayed upon execution.
Call them after the end-selcection statement.
Hope this helps.
Reward if useful.
Regards
Sayee
‎2007 Sep 13 6:15 AM
Hi,
While executing your report the control is not going to the selection screen.
So the problem is you are calling the subroutines PERFORM build_fieldcatlog &
PERFORM display_alv_report in the intialization.This causes the output screen to be displayed upon execution.
Call them after the end-selcection statement.
Hope this helps.
Reward if useful.
Regards
Sayee
‎2007 Sep 13 6:15 AM
Hi
i don't know why tour writing that much of select querys on one internal table
each time it will override the prevoius results
thats not looking like a code
please give me ur req i will write the code and give it to you
ok
‎2007 Sep 13 6:58 AM
I need to display the staus of purcgase order, for example:-
Po Qty, GR Qty, GR Value, IR Qty and IR Value.
To fetch the fallowing required fields from the related tables by the selection criteria Material No and Posting dates.
Selection Criteria:- MATNR
BUDAT
Layout whic need to display:-
FieldName Table Name
WERKS Plant MSEG
LIFNR Vendor accnt No. EKKO
MATNR Material No. MARC
EBELN Purchase Order No. EKPO
MENGE Purchase Order Qty. EKPO
SMBLN GR No. MSEG
BSTMG GR QTY MSEG
DMBTR GR Value MSEG
LFSNR Del note no. MSEG
BELNR Invoice No. EKBE
BPRBM I nvoice Qty EKBE
REFWR I Invoice value EKBE
Need reporting for that.
Regards,
‎2007 Sep 13 6:17 AM
You have to calll the display perform after the logic not before the logic
and give me ur req
REPORT znnr_nnr LINE-SIZE 125.
TABLES: marc,
mkpf,
mseg,
ekko,
ekpo,
ekbe,
rseg.
TYPE-POOLS: slis.
&----
types : BEGIN OF itab ,
matnr LIKE marc-matnr,
budat LIKE mkpf-budat,
werks LIKE mseg-werks,
lifnr LIKE ekko-lifnr,
ebeln LIKE ekpo-ebeln,
menge LIKE ekpo-menge,
smbln LIKE mseg-smbln,
bstmg LIKE mseg-bstmg,
dmbtr LIKE mseg-dmbtr,
belnr LIKE ekbe-belnr,
bprbm LIKE rseg-bprbm,
refwr LIKE ekbe-refwr,
END OF itab.
data : it_itab type standard table of itab,
wa_itab type itab.
DATA: i_fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat TYPE slis_fieldcat_alv.
DATA v_repid.
&----
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_matnr FOR marc-matnr,
s_budat FOR mkpf-budat.
SELECTION-SCREEN END OF BLOCK b1.
&----
INITIALIZATION.
v_repid = sy-repid.
PERFORM build_fieldcatlog.
&----
*SELECT SINGLE matnr FROM marc INTO itab
*WHERE matnr IN s_matnr.
*
*SELECT SINGLE budat FROM mkpf INTO itab
*WHERE budat IN s_budat.
*
*SELECT werks smbln bstmg dmbtr FROM mseg INTO itab
*WHERE mblnr = mkpf-mblnr AND
mjahr = mkpf-mjahr.
*
*
SELECT SINGLE lifnr FROM ekko INTO itab
WHERE ebeln = ekko-ebeln.
*
*
SELECT ebeln menge FROM ekpo INTO itab
WHERE ebeln = ekko-ebeln.
*
SELECT belnr refwr FROM ekbe INTO itab
WHERE ebeln = ekko-ebeln.
*
SELECT SINGLE bprbm FROM rseg INTO itab
**
WHERE belnr = ekko-belnr,
gjahr = ekko-gjhar,
buzei = ekko-buzei.
*
APPEND itab.
*
*
*
ENDSELECT.
ENDSELECT.
*ENDSELECT.
*
*APPEND itab.
&----
START-OF-SELECTION.
SELECT werks smbln bstmg dmbtr matnr ebeln FROM mseg INTO CORRESPONDING FIELDS OF TABLE it_itab
WHERE matnr IN s_matnr.
*ENDSELECT.
SELECT SINGLE lifnr FROM ekko INTO CORRESPONDING FIELDS OF wa_itab
WHERE ebeln = mseg-ebeln.
SELECT ebeln menge FROM ekpo INTO CORRESPONDING FIELDS OF wa_itab
WHERE ebeln = mseg-ebeln.
ENDSELECT.
SELECT ebeln belnr refwr budat FROM ekbe INTO CORRESPONDING FIELDS OF wa_itab
WHERE budat IN s_budat AND
ebeln = mseg-ebeln.
ENDSELECT.
SELECT SINGLE matnr FROM marc INTO wa_itab
WHERE matnr = mseg-matnr.
PERFORM display_alv_report.
*APPEND itab.
END-OF-SELECTION.
&----
LOOP AT itab.
*
WRITE:/ itab-menge, itab-werks, itab-smbln, itab-bstmg, itab-matnr, itab-ebeln, itab-lifnr, itab-menge, itab-belnr, itab-refwr, itab-budat.
*
ENDLOOP.
&----
*& Form build_fieldcatlog
&----
text
----
--> p1 text
<-- p2 text
----
FORM build_fieldcatlog .
wa_fieldcat-tabname = 'itab'.
wa_fieldcat-fieldname = 'menge'.
wa_fieldcat-seltext_m = 'menge.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'itab'.
wa_fieldcat-fieldname = 'werks'.
wa_fieldcat-seltext_m = 'werks.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'itab'.
wa_fieldcat-fieldname = 'smbln'.
wa_fieldcat-seltext_m = 'smbln.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'itab'.
wa_fieldcat-fieldname = 'bstmg'.
wa_fieldcat-seltext_m = 'bstmg.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'itab'.
wa_fieldcat-fieldname = 'matnr'.
wa_fieldcat-seltext_m = 'matnr.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'itab'.
wa_fieldcat-fieldname = 'ebeln'.
wa_fieldcat-seltext_m = 'ebeln.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'itab'.
wa_fieldcat-fieldname = 'LIFNR'.
wa_fieldcat-seltext_m = 'LIFNR.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'itab'.
wa_fieldcat-fieldname = 'belnr'.
wa_fieldcat-seltext_m = 'belnr.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'itab'.
wa_fieldcat-fieldname = 'refwr'.
wa_fieldcat-seltext_m = 'refwr.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'itab'.
wa_fieldcat-fieldname = 'budat'.
wa_fieldcat-seltext_m = 'budat'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
ENDFORM. " build_fieldcatlog
&----
*& Form display_alv_report
&----
text
----
FORM display_alv_report.
v_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = 'ZMM_PURCHASE_REPORT'
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 =
I_GRID_SETTINGS =
IS_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 =
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
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_itab
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. "display_alv_report
‎2007 Sep 13 6:51 AM
I need to display the staus of purcgase order, for example:-
Po Qty, GR Qty, GR Value, IR Qty and IR Value.
To fetch the fallowing required fields from the related tables by the selection criteria Material No and Posting dates.
Selection Criteria:- MATNR
BUDAT
Layout whic need to display:-
FieldName Table Name
WERKS Plant MSEG
LIFNR Vendor accnt No. EKKO
MATNR Material No. MARC
EBELN Purchase Order No. EKPO
MENGE Purchase Order Qty. EKPO
SMBLN GR No. MSEG
BSTMG GR QTY MSEG
DMBTR GR Value MSEG
LFSNR Del note no. MSEG
BELNR Invoice No. EKBE
BPRBM I nvoice Qty EKBE
REFWR I Invoice value EKBE
Need reporting for that.
Regards,
‎2007 Sep 13 6:19 AM
hi,
DO modify as below.
TABLES: marc,
mkpf,
mseg,
ekko,
ekpo,
ekbe,
rseg.
TYPE-POOLS: slis.
&----
DATA: BEGIN OF itab OCCURS 0,
matnr LIKE marc-matnr,
budat LIKE mkpf-budat,
werks LIKE mseg-werks,
lifnr LIKE ekko-lifnr,
ebeln LIKE ekpo-ebeln,
menge LIKE ekpo-menge,
smbln LIKE mseg-smbln,
bstmg LIKE mseg-bstmg,
dmbtr LIKE mseg-dmbtr,
belnr LIKE ekbe-belnr,
bprbm LIKE rseg-bprbm,
refwr LIKE ekbe-refwr,
END OF itab.
DATA: <b>i_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,</b>
wa_fieldcat TYPE slis_fieldcat_alv.
<b>DATA v_repid TYPE SY-REPID.</b>
&----
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_matnr FOR marc-matnr,
s_budat FOR mkpf-budat.
SELECTION-SCREEN END OF BLOCK b1.
&----
INITIALIZATION.
v_repid = sy-repid.
START-OF-SELECTION.
SELECT werks smbln bstmg dmbtr matnr ebeln FROM mseg INTO CORRESPONDING FIELDS OF TABLE itab
WHERE matnr IN s_matnr.
*ENDSELECT.
SELECT SINGLE lifnr FROM ekko INTO CORRESPONDING FIELDS OF itab
WHERE ebeln = mseg-ebeln.
SELECT ebeln menge FROM ekpo INTO CORRESPONDING FIELDS OF itab
WHERE ebeln = mseg-ebeln.
ENDSELECT.
SELECT ebeln belnr refwr budat FROM ekbe INTO CORRESPONDING FIELDS OF itab
WHERE budat IN s_budat AND
ebeln = mseg-ebeln.
ENDSELECT.
SELECT SINGLE matnr FROM marc INTO itab
WHERE matnr = mseg-matnr.
<b>PERFORM build_fieldcatlog.
PERFORM display_alv_report.</b>
FORM build_fieldcatlog .
wa_fieldcat-fieldname = '<b>MENGE</b>'.
wa_fieldcat-seltext_m = 'menge.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = '<b>WERKS</b>'.
wa_fieldcat-seltext_m = 'werks.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = '<b>SMBLN</b>'.
wa_fieldcat-seltext_m = 'smbln.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = '<b>BSTMG</b>'.
wa_fieldcat-seltext_m = 'bstmg.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = '<b>MATNR</b>'.
wa_fieldcat-seltext_m = 'matnr.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = '<b>EBELN</b>'.
wa_fieldcat-seltext_m = 'ebeln.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = '<b>LIFNR</b>'.
wa_fieldcat-seltext_m = 'LIFNR.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = '<b>BELNR</b>'.
wa_fieldcat-seltext_m = 'belnr.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = '<b>REFWR</b>'.
wa_fieldcat-seltext_m = 'refwr.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = '<b>BUDAT</b>'.
wa_fieldcat-seltext_m = 'budat'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
ENDFORM. " build_fieldcatlog
FORM display_alv_report.
v_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = <b>V_REPI</b>D
it_fieldcat = i_fieldcat[]
i_save = 'A'
TABLES
t_outtab = itab.
ENDFORM. "display_alv_report
rgds,
bharat.