‎2007 Feb 23 7:58 AM
in d code below everything is gettin done like in d top of page am getting the header data todays date and number of records.d problem is am taking d data for a period i.e from range of dates using th code
SELECT-OPTIONS DATE FOR VBRP-FBUDA OBLIGATORY.
SELECT * FROM VBRP INTO CORRESPONDING FIELDS OF TABLE IT_VBRP WHERE FBUDA IN DATE .
but am not able to print d dates sat am giving as period.i,e:imagine am giving in output i need data from 1.1.2006 and 1.1.2007 am getting d data but am not getting the two dates dat i gav(1.1.2006 to 1.1.2007)..please help me out
REPORT ZMATERIALS.
TABLES:VBRP,VBRKUK,VBRK,KNA1,MAKT.
TYPE-POOLS:SLIS.
DATA:x type i.
DATA: FIELDCATALOG TYPE SLIS_T_fieldcat_alv with header line,
gd_tab_group type slis_t_sp_group_alv,
gd_layout type slis_layout_alv,
gd_repid like sy-repid.
DATA: it_event TYPE slis_t_event,
wa_event TYPE slis_alv_event,
it_sort TYPE SLIS_T_SORTINFO_ALV,
wa_sort TYPE slis_sortinfo_alv.
IT_EVNENTS LIKE .
TYPES:BEGIN OF T_VBRP,
WERKS TYPE VBRP-WERKS,
FBUDA TYPE VBRP-FBUDA,
VBELN TYPE VBRP-VBELN,
MATNR TYPE VBRP-MATNR,
PSTYV TYPE VBRP-PSTYV,
FKLMG TYPE VBRP-FKLMG,
MAKTX TYPE MAKT-MAKTX,
END OF T_VBRP.
DATA: IT_VBRP TYPE STANDARD TABLE OF t_VBRP INITIAL SIZE 0 WITH HEADER LINE,
wa_ekko TYPE t_VBRP.
DATA IT_VBRKUK TYPE STANDARD TABLE OF VBRKUK WITH HEADER LINE.
DATA IT_KNA1 TYPE STANDARD TABLE OF KNA1 WITH HEADER LINE.
DATA IT_MAKT TYPE STANDARD TABLE OF MAKT WITH HEADER LINE.
DATA: BEGIN OF IT_FINAL OCCURS 1,
WERKS LIKE IT_VBRP-WERKS,
VBELN LIKE IT_VBRP-VBELN,
KUNAG LIKE IT_VBRKUK-KUNAG,
MATNR LIKE IT_VBRP-MATNR,
FBUDA LIKE IT_VBRP-FBUDA,
PSTYV LIKE IT_VBRP-PSTYV,
FKLMG LIKE IT_VBRP-FKLMG,
MAKTX LIKE IT_MAKT-MAKTX,
NAME1 LIKE IT_KNA1-NAME1,
END OF IT_FINAL.
SELECT-OPTIONS DATE FOR VBRP-FBUDA OBLIGATORY.
SELECT * FROM VBRP INTO CORRESPONDING FIELDS OF TABLE IT_VBRP WHERE FBUDA IN DATE .
CLEAR VBRP.
START-OF-SELECTION.
SELECT * FROM VBRP INTO CORRESPONDING FIELDS OF TABLE IT_VBRP WHERE FBUDA IN DATE .
IF NOT IT_VBRP[] IS INITIAL.
SELECT * FROM VBRKUK INTO CORRESPONDING FIELDS OF TABLE IT_VBRKUK
FOR ALL ENTRIES IN IT_VBRP WHERE vbeln EQ IT_VBRP-VBELN .
SELECT * FROM MAKT INTO CORRESPONDING FIELDS OF TABLE IT_MAKT
FOR ALL ENTRIES IN IT_VBRP
WHERE MATNR EQ IT_VBRP-MATNR.
ENDIF.
IF NOT IT_VBRKUK[] IS INITIAL.
SELECT * FROM KNA1 INTO CORRESPONDING FIELDS OF TABLE IT_KNA1
FOR ALL ENTRIES IN IT_VBRKUK
WHERE KUNNR EQ IT_VBRKUK-KUNAG.
ENDIF.
END-OF-SELECTION.
IF NOT IT_VBRP[] IS INITIAL.
LOOP AT IT_VBRP.
IF it_VBRP-PSTYV = 'TAN' OR it_VBRP-PSTYV = 'TANN'.
IF it_VBRP-PSTYV = 'TAN'.
X = 0 .
ENDIF.
IF it_VBRP-PSTYV = 'BVN'.
X = 0 .
ENDIF.
IF it_VBRP-PSTYV = 'BVNN'.
X = 0 .
ENDIF.
IF it_VBRP-PSTYV = 'TAS'.
X = 0 .
ENDIF.
IF it_VBRP-PSTYV = 'ZDLP'.
X = 0 .
ENDIF.
IF it_VBRP-PSTYV = 'TANN'.
X = it_VBRP-FKLMG.
*ADD X TO Y.
ENDIF.
*ADD VBRP-FKLMG TO Z.
read table IT_VBRKUK with key vbeln = it_vbrp-vbeln.
IF SY-SUBRC EQ 0.
read table it_kna1 with key kunnr = it_vbrkuk-kunag.
if sy-subrc eq 0.
read table it_makt with key matnr = it_vbrp-matnr.
IF SY-SUBRC EQ 0.
IT_FINAL-WERKS = IT_VBRP-WERKS.
IT_FINAL-FBUDA = IT_VBRP-FBUDA.
IT_FINAL-VBELN = IT_VBRP-VBELN.
IT_FINAL-KUNAG = IT_VBRKUK-KUNAG.
IT_FINAL-MATNR = IT_VBRP-MATNR.
IT_FINAL-PSTYV = IT_VBRP-PSTYV.
IT_FINAL-FKLMG = IT_VBRP-FKLMG.
IT_FINAL-MAKTX = IT_MAKT-MAKTX.
IT_FINAL-NAME1 = IT_KNA1-NAME1.
APPEND IT_FINAL.
endif.
endif.
endif.
ENDIF.
ENDLOOP.
ENDIF.
IF NOT IT_FINAL[] IS INITIAL.
SORT IT_FINAL BY WERKS.
LOOP AT IT_FINAL.
AT NEW WERKS.
WRITE:/(7) IT_FINAL-WERKS.
ENDAT.
CLEAR IT_FINAL-WERKS.
*WRITE:/11(10) IT_FINAL-FBUDA,27(18) IT_FINAL-VBELN,49(10) IT_FINAL-KUNAG,62(25) IT_FINAL-NAME1,100(10) IT_FINAL-MATNR,112(25) IT_FINAL-MAKTX,140(10) IT_FINAL-PSTYV,155(20) IT_FINAL-FKLMG .
ENDLOOP.
ENDIF.
*perform data_retrieval.
perform build_fieldcatalog.
perform build_layout.
perform display_alv_report.
PERFORM top-of-page.
FORM build_fieldcatalog.
fieldcatalog-FIELDNAME = 'WERKS'.
fieldcatalog-seltext_m = 'PLANT'.
fieldcatalog-col_pos = 0.
fieldcatalog-tabname = 'it_final'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-FIELDNAME = 'FBUDA'.
fieldcatalog-seltext_m = 'DATE'.
fieldcatalog-tabname = 'it_final'.
fieldcatalog-col_pos = 1.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-FIELDNAME = 'VBELN'.
fieldcatalog-seltext_m = 'DOCUMENT NUMBER'.
fieldcatalog-tabname = 'it_final'.
fieldcatalog-col_pos = 2.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-FIELDNAME = 'KUNAG'.
fieldcatalog-seltext_m = 'CUSTOMER NUMBER'.
fieldcatalog-tabname = 'it_final'.
fieldcatalog-col_pos = 3.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-FIELDNAME = 'NAME1'.
fieldcatalog-seltext_m = 'CUSTOMER DESCRIPTION'.
fieldcatalog-tabname = 'it_final'.
fieldcatalog-col_pos = 4.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-FIELDNAME = 'MATNR'.
fieldcatalog-seltext_m = 'MATERIAL NUMBER'.
fieldcatalog-col_pos = 5.
fieldcatalog-tabname = 'it_final'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-FIELDNAME = 'MAKTX'.
fieldcatalog-seltext_m = 'MATERIAL TEXT'.
fieldcatalog-tabname = 'it_final'.
fieldcatalog-col_pos = 6.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-FIELDNAME = 'PSTYV'.
fieldcatalog-seltext_m = 'ITEM TEXT'.
fieldcatalog-tabname = 'it_final'.
fieldcatalog-col_pos = 7.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-FIELDNAME = 'FKLMG'.
fieldcatalog-seltext_m = 'BILLING QUANTITY'.
fieldcatalog-tabname = 'it_final'.
fieldcatalog-col_pos = 8.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
ENDFORM.
form build_layout.
gd_layout-no_input = 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-totals_text = 'Totals'(500).
ENDFORM.
form display_alv_report.
gd_repid = sy-repid.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = gd_repid
i_callback_top_of_page = 'TOP-OF-PAGE'
is_layout = gd_layout
it_fieldcat = FIELDCATALOG[]
I_SAVE = 'X'
TABLES
t_outtab = it_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.
*i_callback_top_of_page = 'TOP-OF-PAGE'.
ENDFORM.
Form top-of-page.
*ALV Header declarations
data: t_header type slis_t_listheader,
wa_header type slis_listheader,
t_line like wa_header-info,
ld_lines type i,
ld_linesc(10) type c.
Title
wa_header-typ = 'H'.
wa_header-info = 'BILLING QUANTITY vs FREE QUANTITY'.
append wa_header to t_header.
clear wa_header.
Date
wa_header-typ = 'S'.
wa_header-key = 'Date: '.
CONCATENATE sy-datum+6(2) '.'
sy-datum+4(2) '.'
sy-datum(4) INTO wa_header-info. "todays date
append wa_header to t_header.
clear: wa_header.
Total No. of Records Selected
describe table IT_FINAL lines ld_lines.
ld_linesc = ld_lines.
concatenate 'Total No. of Records Selected: ' ld_linesc
into t_line separated by space.
wa_header-typ = 'A'.
wa_header-info = t_line.
append wa_header to t_header.
clear: wa_header, t_line.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = t_header.
i_logo = 'Z_LOGO'.
endform.
‎2007 Feb 23 8:02 AM
wa_header-typ = 'S'.
wa_header-key = 'Date: '.
CONCATENATE <b>date-low 'to' date-high</b> INTO wa_header-info.
append wa_header to t_header.
clear: wa_header.
‎2007 Feb 23 8:05 AM
Date
wa_header-typ = 'S'.
wa_header-key = 'Date: '.<b>CONCATENATE date-low+6(2) '.'
date-low+4(2) '.'
date-low(4) 'To' date-high+6(2) '.'
date-high+4(2) '.'
date-high(4)</b>
INTO wa_header-info. "todays date
append wa_header to t_header.
clear: wa_header.hope this helsp.
‎2007 Feb 23 8:07 AM
See you need to do this first
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = gi_events.
READ TABLE gi_events INTO wa_event
WITH KEY name = slis_ev_top_of_page.
IF sy-subrc EQ 0.
MOVE gc_formname_top_of_page TO wa_event-form.
APPEND wa_event TO gi_events .
ENDIF.
then you need to pass in the FM REUSE_ALV_GRID_DISPLAY
the parameters it_events = gi_events[]
others thisng is that you need to remove the i callback_top_of_page parameter. this ios not required
Message was edited by:
Ravikumar P
‎2007 Feb 23 8:08 AM
HI Vijay Krishna,
Use the following code in your TOP-OF-PAGE section:
*-To display the select-option screen
CALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS'
EXPORTING
CURR_REPORT = C_PRG
TABLES
SELECTION_TABLE = IT_VARI_TAB
EXCEPTIONS
NOT_FOUND = 1
NO_REPORT = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
SORT IT_VARI_TAB BY SELNAME .
*-Generates list according to values in selection table(RSPARAMS)
CALL FUNCTION 'RS_LIST_SELECTION_TABLE'
EXPORTING
REPORT = C_PRG
SELTEXT = 'X'
TABLES
SEL_TAB = IT_VARI_TAB.
REgards,
Ravi
‎2007 Feb 28 7:28 AM