2007 Jun 21 6:41 AM
want some example of code for basic list and detail list and also ril down list
want some example of code for basic list and detail list and also ril down list
2007 Jun 21 6:52 AM
<b>Example Code For Drill Down Report</b>
REPORT zmm_rept_purchorderkkb01 LINE-SIZE 80
LINE-COUNT 65(3)
MESSAGE-ID z_msg_class
NO STANDARD PAGE HEADING.
*------------------DECLARING THE STANDARD TABLES---------------------*
TABLES : ekko, "PURCHASE ORDER : HEADER
ekpo. "PURCHASE ORDER : ITEM
*------------------DECLARING THE INTERNAL TABLE----------------------*
DATA : BEGIN OF it_ekko OCCURS 2,
ebeln LIKE ekko-ebeln, "PURCHASE ORDER NUMBER
bukrs LIKE ekko-bukrs, "COMPANY CODE
bsart LIKE ekko-bsart, "PURCHASING DOCUMENT TYPE
lifnr LIKE ekko-lifnr, "VENDOR
spras LIKE ekko-spras, "LANGUAGE KEY
zterm LIKE ekko-zterm, "PAYMENT TERMS KEY
end of it_ekko.
DATA : BEGIN OF it_ekpo OCCURS 2,
ebeln LIKE ekpo-ebeln, "PURCHASE ORDER NUMBER
ebelp LIKE ekpo-ebelp, "PURCHASE ORDER NUMBER
werks LIKE ekpo-werks, "PLANT
matnr LIKE ekpo-matnr, "MATERIAL NUMBER
matkl LIKE ekpo-matkl, "MATERIAL GROUP
END OF it_ekpo.
DATA: it_ebeln LIKE ekko-ebeln OCCURS 0 WITH HEADER LINE.
*DATA: it_ebeln_high LIKE ekko-ebeln OCCURS 0 WITH HEADER LINE.
DATA: p_ebeln TYPE i.
*------------------Declaring the selection screen--------------------*
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
SELECT-OPTIONS : s_ebeln FOR ekko-ebeln.
PARAMETER : p_limit TYPE i.
SELECTION-SCREEN END OF BLOCK blk1.
*INCLUDE z_incl_purorderkkb01_sub_f01.
*--------------------------------------------------------------------*
* Validation for number of records to be printed *
*--------------------------------------------------------------------*
*AT SELECTION-SCREEN ON p_limit.
* IF p_limit IS INITIAL.
* MESSAGE e011.
* ENDIF.
* IF p_limit GT sy-linct.
* MESSAGE e010.
* ENDIF.
*----------------------------------------------------------------------*
* Search help for purchase document number (s_ebeln-low) *
*----------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_ebeln-low.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = s_ebeln-low
IMPORTING
output = s_ebeln-low.
perform form_search_help.
IF sy-subrc <> 0.
CASE sy-subrc.
WHEN 2.
LEAVE TO SCREEN 1000.
ENDCASE.
ELSE.
LOOP AT it_ebeln.
IF sy-tabix = p_ebeln.
s_ebeln-low = it_ebeln.
EXIT.
ENDIF.
ENDLOOP.
ENDIF.
*----------------------------------------------------------------------*
* Search help for purchase document number (s_ebeln-high) *
*----------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_ebeln-high.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = s_ebeln-high
IMPORTING
output = s_ebeln-high.
perform form_search_help.
IF sy-subrc <> 0.
CASE sy-subrc.
WHEN 2.
LEAVE TO SCREEN 1000.
ENDCASE.
ELSE.
LOOP AT it_ebeln.
IF sy-tabix = p_ebeln.
s_ebeln-high = it_ebeln.
EXIT.
ENDIF.
ENDLOOP.
ENDIF.
*----------------------------------------------------------------------*
* Start-of-selection event *
*----------------------------------------------------------------------*
START-OF-SELECTION.
*----------------------To attach a user interface----------------------*
SET PF-STATUS '0010'.
*---------To fetch the data for the basic list-------------------------*
SELECT ebeln "PURCHASE ORDER NUMBER
bukrs "COMPANY CODE
bsart "PURCHASING DOCUMENT TYPE
lifnr "VENDOR
spras "LANGUAGE KEY
zterm "PAYMENT TERMS KEY
up to p_limit rows
into table it_ekko from ekko
where ebeln in s_ebeln.
REFRESH it_ekpo.
*---------To fetch the data for the secondary list-----------------------*
if it_ekpo is initial.
SELECT ebeln "PURCHASE ORDER NUMBER
ebelp "PURCHASING DOCUMENT TYPE
werks "PLANT
matnr "MATERIAL NUMBER
matkl "MATERIAL GROUP
FROM ekpo INTO TABLE it_ekpo for all entries in it_ekko
WHERE ebeln EQ it_ekko-ebeln.
endif.
*----------------------------------------------------------------------*
* End-of-selection event *
*----------------------------------------------------------------------*
END-OF-SELECTION.
*---------To display the data for the basic list-----------------------*
format color 4 intensified off.
LOOP AT it_ekko.
WRITE :/ sy-vline, it_ekko-ebeln UNDER text-002, 18 sy-vline,
"PURCHASE ORDER NUMBER
it_ekko-bukrs UNDER text-003, 27 sy-vline,
"COMPANY CODE
it_ekko-bsart UNDER text-004, 38 sy-vline,
"PURCHASING DOCUMENT TYPE
it_ekko-lifnr UNDER text-005, 50 sy-vline,
"VENDOR
it_ekko-spras UNDER text-006, 62 sy-vline,
"LANGUAGE KEY
it_ekko-zterm UNDER text-007, 80 sy-vline.
"PAYMENT TERMS KEY
hide : it_ekko-ebeln.
ENDLOOP.
WRITE :/ sy-uline(80).
*----------------------------------------------------------------------*
* To generate the detailed lists *
*----------------------------------------------------------------------*
AT LINE-SELECTION.
CASE sy-lsind.
WHEN 1.
SET PF-STATUS '0011'.
*---------To display the data for the secondary list-----------------------*
WINDOW STARTING AT 10 10
ENDING AT 90 30.
format color 5 intensified off.
LOOP AT it_ekpo where ebeln = it_ekko-ebeln .
WRITE :/ sy-vline, it_ekpo-ebeln UNDER text-002, 15 sy-vline,
"PURCHASE ORDER NUMBER
it_ekpo-ebelp UNDER text-008, 30 sy-vline,
"PO ITEM NUMBER
it_ekpo-werks UNDER text-009, 45 sy-vline,
"PLANT
it_ekpo-matnr UNDER text-010, 60 sy-vline,
"MATERIAL NUMBER
it_ekpo-matkl UNDER text-011, 80 sy-vline.
"MATERIAL GROUP
ENDLOOP.
WRITE :/ sy-uline(80).
ENDCASE.
CASE sy-ucomm.
WHEN 'EXIT' OR 'CANC' OR 'BACK'.
LEAVE TO SCREEN 0.
ENDCASE.
*----------------------------------------------------------------------*
* At user-command event *
*----------------------------------------------------------------------*
AT USER-COMMAND.
CASE sy-ucomm.
WHEN 'SELE' OR 'LIST1'.
IF sy-lsind = 1.
SET PF-STATUS '0011'.
*---------To display the data for the secondary list-----------------------*
WINDOW STARTING AT 10 10
ENDING AT 90 30.
format color 5 intensified off.
LOOP AT it_ekpo where ebeln = it_ekko-ebeln .
WRITE :/ sy-vline, it_ekpo-ebeln UNDER text-002, 15 sy-vline, "PURCHASE ORDER NUMBER
it_ekpo-ebelp UNDER text-008, 30 sy-vline, "PO ITEM NUMBER
it_ekpo-werks UNDER text-009, 45 sy-vline, "PLANT
it_ekpo-matnr UNDER text-010, 60 sy-vline, "MATERIAL NUMBER
it_ekpo-matkl UNDER text-011, 80 sy-vline. "MATERIAL GROUP
ENDLOOP.
WRITE :/ sy-uline(80).
endif.
ENDCASE.
CASE sy-ucomm.
WHEN 'EXIT' OR 'CANC' OR 'BACK'.
LEAVE TO SCREEN 0.
ENDCASE.
*----------------------------------------------------------------------*
* Top-of-page for basic list *
*----------------------------------------------------------------------*
TOP-OF-PAGE.
format color 3 intensified off.
WRITE :/ sy-uline(80).
WRITE :/ sy-vline,
03 sy-repid,
60 text-015,
sy-uname,
80 sy-vline.
WRITE :/ sy-vline, 03 sy-datum,
35 text-012,
60 text-014,
sy-pagno,
80 sy-vline.
WRITE :/ sy-uline(80).
WRITE :/ sy-vline, text-002, 18 sy-vline, "PURCHASE ORDER NUMBER
text-003, 27 sy-vline, "COMPANY CODE
text-004, 38 sy-vline, "PURCHASING DOCUMENT TYPE
text-005, 50 sy-vline, "VENDOR
text-006, 62 sy-vline, "LANGUAGE KEY
text-007, 80 sy-vline. "PAYMENT TERMS KEY
WRITE :/ sy-uline(80).
*----------------------------------------------------------------------*
* Top-of-page for secondary list *
*----------------------------------------------------------------------*
TOP-OF-PAGE DURING LINE-SELECTION.
format color 2 intensified off.
WINDOW STARTING AT 10 10
ENDING AT 90 30.
WRITE :/ sy-uline(80).
WRITE :/ sy-vline,
03 sy-repid,
60 text-015,
sy-uname,
80 sy-vline.
WRITE :/ sy-vline,
03 sy-datum,
35 text-013,
60 text-014,
sy-pagno,
80 sy-vline.
WRITE :/ sy-uline(80).
WRITE :/ sy-vline, text-014, 15 sy-vline, "PURCHASE ORDER NUMBER
text-008, 30 sy-vline, "PO ITEM NUMBER
text-009, 45 sy-vline, "PLANT
text-010, 60 sy-vline, "MATERIAL NUMBER
text-011, 80 sy-vline. "MATERIAL GROUP
WRITE :/ sy-uline(80).
*----------------------------------------------------------------------*
* End-of-page event *
*----------------------------------------------------------------------*
END-OF-PAGE.
WRITE :/ sy-vline,
03 text-016,
p_limit,
60 text-014,
sy-pagno,
80 sy-vline.
write:/ sy-uline(80).
INCLUDE Z_INCLUDE_PURCHORDERKKB01.
form form_search_help .
REFRESH it_ebeln.
CLEAR it_ebeln.
CLEAR P_ebeln.
SELECT ebeln FROM ekko INTO TABLE it_ebeln.
CALL FUNCTION 'POPUP_WITH_TABLE_DISPLAY'
EXPORTING
endpos_col = 21
endpos_row = 35
startpos_col = 12
startpos_row = 1
titletext = text-012
IMPORTING
choise = P_ebeln
TABLES
valuetab = it_ebeln
EXCEPTIONS
break_off = 1
OTHERS = 2.reward points if it is usefull ...
Girish
2007 Jun 21 7:08 AM
Hi,
Here is a sample code for basic list output report.
*---------------------------------------------------------------------*
* MODULE PAYROLL *
*---------------------------------------------------------------------*
* Objective :To generate SOP Interims paid report. *
* *
* *
* Program : Updates Tables ( ) Downloads data ( ) *
* Outputs List ( X ) *
* *
* Technical Spec No:Ethos_JKH_PY172_TS_SOP Interim Paid *
* *
* Transaction Code ZPY172_SOP *
* Date Created 13-March-2007 *
* Author *
* LDB PNPCE *
*---------------------------------------------------------------------*
* External Dependencies *
*---------------------------------------------------------------------*
* *
*---------------------------------------------------------------------*
* Amendment History *
*---------------------------------------------------------------------*
* Who Change ID Reason *
* ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ *
* ....................................................... *
* ...................................................... *
* ...................................................... *
*&--------------------------------------------------------------------*
*& Report ZPYR_172_SOP_INTERIM *
*& *
*&--------------------------------------------------------------------*
*& *
*& *
*&--------------------------------------------------------------------*
REPORT zpyr_172_sop_interim NO STANDARD PAGE HEADING LINE-SIZE 255 LINE-COUNT 50 .
*&---------------------------------------------------------------------*
*& *
*& TABLES *
*& *
*&---------------------------------------------------------------------*
TABLES : pernr,
t001.
*&---------------------------------------------------------------------*
*& *
*& NODES *
*& *
*&---------------------------------------------------------------------*
NODES:peras.
*&---------------------------------------------------------------------*
*& *
*& INFOTYPES *
*& *
*&---------------------------------------------------------------------*
INFOTYPES:0000,0001,0002,0027,9071.
*&---------------------------------------------------------------------*
*& *
*& TYPES : TY_ *
*& *
*&---------------------------------------------------------------------*
TYPES : BEGIN OF ty_t500p,
persa TYPE persa, "Personal area
adrnr TYPE adrnr, "Address Number
END OF ty_t500p.
TYPES: BEGIN OF ty_adrc,
addrnumber TYPE ad_addrnum, "Address Number
name1 TYPE ad_name1, "Name1
name2 TYPE ad_name2, "Name2
END OF ty_adrc.
TYPES:BEGIN OF ty_p0027,
pernr TYPE p0027-pernr, "Personnel Number
kostl TYPE kostl, "Cost center
pkprz TYPE pkprz, "Cost center Percentage
END OF ty_p0027.
TYPES:BEGIN OF ty_cskt,
kostl TYPE kostl, "Cost center
ktext TYPE ktext, "Cost center text
END OF ty_cskt.
TYPES:BEGIN OF ty_zsoplog,
pernr TYPE persno, "Personnel Number
sopdt TYPE zsopdt, "SOP Date
sopgr TYPE zsopgr, "SOP Gross
payet TYPE zpayet, "SOP Payee Tax
END OF ty_zsoplog.
TYPES:BEGIN OF ty_final,
co_name(80) TYPE c, "Company Name
emp_name(80) TYPE c, "Employee Name
epfno(15) TYPE c, "EPF No
ktext TYPE ktext, "Cost center text
apsopgr TYPE zsopgr, "SOP Gross for April to July
appayet TYPE zpayet, "SOP Payee Tax April to July
ausopgr TYPE zsopgr, "SOP Gross for August to November
aupayet TYPE zpayet, "SOP Payee Tax August to November
desopgr TYPE zsopgr, "SOP Gross for December to March
depayet TYPE zpayet, "SOP Payee Tax December to March
soptot TYPE zsopgr, "Total SOP Gross
taxtot TYPE zpayet, "Total Tax
kostl TYPE kostl, "Cost center
persa TYPE persa, "Personal area
pernr TYPE p0027-pernr, "Personnel number
kokrs TYPE kokrs, " Controlling Area
END OF ty_final.
*&---------------------------------------------------------------------*
*& *
*& Constants Begin with C_ *
*& *
**---------------------------------------------------------------------*
CONSTANTS :c_i TYPE c VALUE 'I', "Used for message
c_e TYPE c VALUE 'E', "Used for message
c_j9(2) TYPE c VALUE 'J9', "Used for Action type
c_sym(2) TYPE c VALUE '-', "Used for Action type
c_1 TYPE i VALUE '1', "Used for date
c_3 TYPE i VALUE '3', "Used for date
c_4 TYPE i VALUE '4', "Used for date
c_31 TYPE i VALUE '31', "Used for date
c_99991231(10) TYPE c VALUE '99991231'. "Used for date
*&---------------------------------------------------------------------*
*& *
*& INTERNAL TABLES : IT_ *
*& *
*&---------------------------------------------------------------------*
DATA:it_final TYPE TABLE OF ty_final,
it_t500p TYPE TABLE OF ty_t500p,
it_cskt TYPE TABLE OF ty_cskt,
it_zsoplog TYPE TABLE OF ty_zsoplog,
it_adrc TYPE TABLE OF ty_adrc.
*&---------------------------------------------------------------------*
*& *
*& Workareas :wa_ *
*& *
*&---------------------------------------------------------------------*
DATA: wa_t500p TYPE ty_t500p,
wa_adrc TYPE ty_adrc,
wa_p0027 TYPE ty_p0027,
wa_cskt TYPE ty_cskt,
wa_zsoplog TYPE ty_zsoplog,
wa_final TYPE ty_final.
*&---------------------------------------------------------------------*
*& *
*& WORK FIELDS : W_ *
*& *
*&---------------------------------------------------------------------*
DATA:w_temp TYPE i,
w_a TYPE p0027-kpr01.
*&---------------------------------------------------------------------*
*& *
*& SELECT-OPTION Begin with So_ *
*& *
**---------------------------------------------------------------------*
SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS : so_peri FOR pnpbegda obligatory.
SELECTION-SCREEN :END OF BLOCK b1.
*&---------------------------------------------------------------------*
*& *
*& Date Validation *
*& *
**---------------------------------------------------------------------*
AT SELECTION-SCREEN.
w_temp = so_peri-low+0(4) + 1.
IF NOT ( so_peri-low+4(2) = c_4 AND
so_peri-low+6(2) = c_1 AND
so_peri-high+4(2) = c_3 AND
so_peri-high+6(2) = c_31 AND
so_peri-high+0(4) = w_temp ).
MESSAGE Text-m01 TYPE c_e.
ENDIF.
START-OF-SELECTION.
REFRESH: it_final,it_t500p,it_zsoplog,it_adrc .
CLEAR: wa_t500p,wa_adrc,wa_p0027,wa_cskt,wa_zsoplog,wa_final.
GET peras.
*---------> Selecting last record from Infotype (Actions)
rp_provide_from_last p0000 space so_peri-low so_peri-high.
IF pnp-sw-found = 1.
IF p0000-massn EQ c_j9 AND p0000-begda LT so_peri-low.
REJECT.
ELSE.
rp_provide_from_last p0001 space so_peri-low so_peri-high.
* if p0001-begda gt so_peri-low .
IF pnp-sw-found = 1.
wa_final-kokrs = p0001-kokrs.
*---------> Selecting last record from form Infotype 0002 (Org. Assignment)
rp_provide_from_last p0002 space so_peri-low so_peri-high.
IF pnp-sw-found = 1.
IF p0002-endda EQ c_99991231.
CONCATENATE p0002-vorna p0002-nachn INTO wa_final-emp_name.
ENDIF.
*----------->Selecting last record from form Infotype 9071
rp_provide_from_last p9071 space so_peri-low so_peri-high.
IF pnp-sw-found = 1.
IF p9071-endda EQ c_99991231.
wa_final-epfno = p9071-epfno.
ENDIF.
rp_provide_from_last p0027 space so_peri-low so_peri-high.
IF pnp-sw-found = 1.
IF p0027-endda EQ c_99991231.
wa_p0027-pernr = p0027-pernr.
wa_p0027-kostl = p0027-kst01.
wa_p0027-pkprz = p0027-kpr01.
w_a = p0027-kpr01.
PERFORM f001_cost_center USING p0027-pernr p0027-kst02 p0027-kpr02.
PERFORM f001_cost_center USING p0027-pernr p0027-kst03 p0027-kpr03.
PERFORM f001_cost_center USING p0027-pernr p0027-kst04 p0027-kpr04.
PERFORM f001_cost_center USING p0027-pernr p0027-kst05 p0027-kpr05.
PERFORM f001_cost_center USING p0027-pernr p0027-kst06 p0027-kpr06.
PERFORM f001_cost_center USING p0027-pernr p0027-kst07 p0027-kpr07.
PERFORM f001_cost_center USING p0027-pernr p0027-kst08 p0027-kpr08.
PERFORM f001_cost_center USING p0027-pernr p0027-kst09 p0027-kpr09.
PERFORM f001_cost_center USING p0027-pernr p0027-kst10 p0027-kpr10.
PERFORM f001_cost_center USING p0027-pernr p0027-kst11 p0027-kpr11.
PERFORM f001_cost_center USING p0027-pernr p0027-kst12 p0027-kpr12.
PERFORM f001_cost_center USING p0027-pernr p0027-kst13 p0027-kpr13.
PERFORM f001_cost_center USING p0027-pernr p0027-kst14 p0027-kpr14.
PERFORM f001_cost_center USING p0027-pernr p0027-kst15 p0027-kpr15.
PERFORM f001_cost_center USING p0027-pernr p0027-kst16 p0027-kpr16.
PERFORM f001_cost_center USING p0027-pernr p0027-kst17 p0027-kpr17.
PERFORM f001_cost_center USING p0027-pernr p0027-kst18 p0027-kpr18.
PERFORM f001_cost_center USING p0027-pernr p0027-kst19 p0027-kpr19.
PERFORM f001_cost_center USING p0027-pernr p0027-kst20 p0027-kpr20.
PERFORM f001_cost_center USING p0027-pernr p0027-kst21 p0027-kpr21.
PERFORM f001_cost_center USING p0027-pernr p0027-kst22 p0027-kpr22.
PERFORM f001_cost_center USING p0027-pernr p0027-kst23 p0027-kpr23.
PERFORM f001_cost_center USING p0027-pernr p0027-kst24 p0027-kpr24.
PERFORM f001_cost_center USING p0027-pernr p0027-kst25 p0027-kpr25.
ENDIF.
wa_final-kostl = wa_p0027-kostl.
wa_final-persa = p0001-werks.
wa_final-pernr = p0027-pernr.
APPEND wa_final TO it_final.
CLEAR wa_final.
* endif.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
END-OF-SELECTION.
IF it_final IS NOT INITIAL.
SELECT kostl ktext
FROM cskt
INTO TABLE it_cskt
FOR ALL ENTRIES IN it_final
WHERE kostl = it_final-kostl and
kokrs = it_final-kokrs and
spras = sy-langu and
cskt~datbi = c_99991231.
IF sy-subrc EQ 0.
SORT it_cskt BY kostl.
ENDIF.
ENDIF.
IF it_final IS NOT INITIAL.
SELECT pernr sopdt sopgr payet
FROM zsoplog
INTO TABLE it_zsoplog
FOR ALL ENTRIES IN it_final
WHERE pernr = it_final-pernr AND
sopdt IN so_peri.
IF sy-subrc EQ 0.
SORT it_zsoplog BY pernr.
ENDIF.
ENDIF.
IF it_final IS NOT INITIAL.
SELECT persa adrnr
FROM t500p
INTO TABLE it_t500p
FOR ALL ENTRIES IN it_final
WHERE persa EQ it_final-persa.
IF sy-subrc EQ 0.
SORT it_t500p BY persa.
ENDIF.
ENDIF.
IF it_t500p IS NOT INITIAL.
*---------->Fetching Address number Company Name from ADRC
SELECT addrnumber name1 name2
FROM adrc
INTO TABLE it_adrc
FOR ALL ENTRIES IN it_t500p
WHERE addrnumber = it_t500p-adrnr.
ENDIF.
SORT it_final BY pernr persa kostl.
LOOP AT it_final INTO wa_final.
READ TABLE it_cskt INTO wa_cskt WITH KEY kostl = wa_final-kostl.
IF sy-subrc EQ 0.
wa_final-ktext = wa_cskt-ktext.
ENDIF.
READ TABLE it_t500p INTO wa_t500p WITH KEY persa = wa_final-persa.
IF sy-subrc EQ 0.
READ TABLE it_adrc INTO wa_adrc WITH KEY addrnumber = wa_t500p-adrnr.
CONCATENATE wa_adrc-name1 wa_adrc-name2 INTO wa_final-co_name.
ENDIF.
READ TABLE it_zsoplog INTO wa_zsoplog WITH KEY pernr = wa_final-pernr BINARY SEARCH.
IF sy-subrc EQ 0.
IF wa_zsoplog-sopdt+4(2) GE 4 AND wa_zsoplog-sopdt+4(2) LE 7.
wa_final-apsopgr = wa_zsoplog-sopgr.
wa_final-appayet = wa_zsoplog-payet.
ELSEIF wa_zsoplog-sopdt+4(2) GE 8 AND wa_zsoplog-sopdt+4(2) LE 11.
wa_final-ausopgr = wa_zsoplog-sopgr.
wa_final-aupayet = wa_zsoplog-payet.
ELSE.
wa_final-desopgr = wa_zsoplog-sopgr.
wa_final-depayet = wa_zsoplog-payet.
ENDIF .
wa_final-soptot = wa_final-apsopgr + wa_final-ausopgr + wa_final-desopgr.
wa_final-taxtot = wa_final-appayet + wa_final-aupayet + wa_final-depayet.
ENDIF.
MODIFY it_final FROM wa_final TRANSPORTING
ktext co_name apsopgr appayet ausopgr aupayet desopgr depayet soptot taxtot.
ENDLOOP.
*---------->If there is no data for the given input message is displayed
IF it_final IS INITIAL.
MESSAGE text-i01 TYPE c_i.
EXIT.
ENDIF.
SORT it_final BY co_name ktext.
LOOP AT it_final INTO wa_final.
AT NEW co_name.
NEW-PAGE.
WRITE AT /1(255) sy-uline.
WRITE:/1 sy-vline ,100 wa_final-co_name,255 sy-vline.
WRITE:/1 sy-vline ,100 text-h01,126 so_peri-low+0(4),c_sym,so_peri-high+0(4),255 sy-vline.
WRITE AT /1(255) sy-uline.
WRITE :/1 sy-vline , 2 text-t02,
22 sy-vline ,23 text-t04,
38 sy-vline ,39 text-t06,
80 sy-vline,85 text-t08,
102 sy-vline,105 text-t10,
122 sy-vline,125 text-t12,
142 sy-vline,145 text-t14,
162 sy-vline,164 text-t16,
181 sy-vline,184 text-t18,
201 sy-vline,205 text-t20,
221 sy-vline,225 text-t22,
255 sy-vline.
WRITE AT /1(255) sy-uline.
ENDAT.
AT NEW ktext.
WRITE:/1 sy-vline , 2 wa_final-ktext.
ENDAT.
WRITE :22 sy-vline ,23 wa_final-epfno,
38 sy-vline ,39 wa_final-emp_name,
80 sy-vline,85 wa_final-apsopgr CURRENCY t001-waers,
102 sy-vline,105 wa_final-appayet CURRENCY t001-waers,
122 sy-vline,125 wa_final-ausopgr CURRENCY t001-waers,
142 sy-vline,145 wa_final-aupayet CURRENCY t001-waers,
162 sy-vline,164 wa_final-desopgr CURRENCY t001-waers,
181 sy-vline,184 wa_final-depayet CURRENCY t001-waers,
201 sy-vline,205 wa_final-soptot CURRENCY t001-waers,
221 sy-vline,225 wa_final-taxtot CURRENCY t001-waers,
255 sy-vline.
WRITE AT /1(255) sy-uline.
ENDLOOP.
*&---------------------------------------------------------------------*
*& Form f001_cost_center
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->A text
* -->B text
* -->C text
*----------------------------------------------------------------------*
FORM f001_cost_center USING a TYPE any b TYPE any c TYPE any.
IF w_a < c.
wa_p0027-pernr = a.
wa_p0027-kostl = b.
wa_p0027-pkprz = c.
ENDIF.
w_a = c.
ENDFORM. "f001_cost_centerDetailed list and drill down report are same. its not two diff types of report. its nothing but a interactive list/report.
hope this helps.
*****Reward points if helpful.
all the best
2007 Jun 21 7:16 AM
hi,
<b>follow this link for knowing the difference between drill down and interactive reports.</b>
http://www.sap-img.com/abap/difference-between-drilldown-report-and-interactive-report.htm
<b>follow this link for sample program for drill down list.</b>
http://sap-img.com/abap/example-code-for-drill-down-report.htm
<b>follow this link for interactive report</b>
https://www.sdn.sap.com/irj/sdn/wiki?path=/display/snippets/abap-3LevelsInteractive+Report&
regards,
Ashokreddy
regards,
Ashokreddy
2007 Jun 21 8:34 AM
Hi Sandipan.
Just copy paste this code and u will understand.
&----
*& Report ZAg_INTERACTIVE_CHECKBOX *
*& *
&----
*& NAME Sapna Agarwal *
*& DATE 2-12-05 *
*& DOM 5-12-05 *
&----
REPORT Z6_AK_INTERACTIVE_CHECKBOX NO STANDARD PAGE HEADING LINE-SIZE
150 LINE-COUNT 37.
************************************************************************
***********************************************************************
*TABLES
**
************************************************************************
***********************************************************************
TABLES: MARA , MARC , MARD , MAKT , T001L.
************************************************************************
***********************************************************************
DATA: BOX(1) TYPE C, LINES TYPE I.
DATA: BEGIN OF IT_MATERIAL_REC OCCURS 0,
MATNR LIKE MARA-MATNR, " MAT NO
MTART LIKE MARA-MTART, " TYPE
MAKTX LIKE MAKT-MAKTX, " MATERIAL DESCRIPTION
END OF IT_MATERIAL_REC,
BEGIN OF IT_PLANT_REC OCCURS 0,
MATNR LIKE MARC-MATNR, " MAT NO
WERKS LIKE MARC-WERKS, " PLANT
NAME1 LIKE T001W-NAME1, " PLANT NAME
LABST LIKE MARD-LABST, " QTY
END OF IT_PLANT_REC,
BEGIN OF IT_STORAGE_REC OCCURS 0,
MATNR LIKE MARD-MATNR, " MAT NO
LGORT LIKE MARD-LGORT, " WT TYPE
LGOBE LIKE T001L-LGOBE, " TYPE
LABST LIKE MARD-LABST, " QTY
END OF IT_STORAGE_REC,
TOTAL LIKE MARD-LABST. " FOR TOTAL QTY
CLEAR: IT_MATERIAL_REC,
IT_PLANT_REC,
IT_STORAGE_REC.
REFRESH: IT_MATERIAL_REC,
IT_PLANT_REC,
IT_STORAGE_REC.
************************************************************************
***********************************************************************
SELECTION-SCREEN
BEGIN OF BLOCK MAT WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS : V_MATNR FOR MARA-MATNR.
SELECTION-SCREEN END OF BLOCK MAT.
************************************************************************
***********************************************************************
START-OF-SELECTION.
SET PF-STATUS 'AK01' EXCLUDING 'PICK'.
REFRESH IT_MATERIAL_REC.
CLEAR IT_MATERIAL_REC.
SELECT DISTINCT MARAMATNR MAKTMAKTX INTO CORRESPONDING FIELDS OF
TABLE IT_MATERIAL_REC
FROM ( MARA INNER JOIN MAKT ON MARAMATNR = MAKTMATNR )
WHERE MARAMATNR IN V_MATNR AND MAKTSPRAS = SY-LANGU.
LOOP AT IT_MATERIAL_REC.
SELECT SUM( LABST ) INTO TOTAL
FROM MARD
WHERE MARD~MATNR = IT_MATERIAL_REC-MATNR.
WRITE:/ BOX AS CHECKBOX, 2 IT_MATERIAL_REC-MATNR , 22
IT_MATERIAL_REC-MAKTX , 115 TOTAL.
HIDE IT_MATERIAL_REC-MATNR.
HIDE IT_MATERIAL_REC-MAKTX.
HIDE TOTAL.
CLEAR IT_MATERIAL_REC.
ENDLOOP.
END-OF-SELECTION.
LINES = SY-LINNO - 1.
************************************************************************
*********************************************************************
AT LINE-SELECTION.
IF sy-lsind = 4.
sy-lsind = 0.
ENDIF.
CASE SY-LSIND.
WHEN '2'.
CLEAR V_MATNR.
CLEAR IT_PLANT_REC.
SELECT MARCMATNR MARCWERKS T001W~NAME1 INTO CORRESPONDING FIELDS
OF TABLE IT_PLANT_REC
FROM MARC INNER JOIN T001W
ON MARCWERKS = T001WWERKS
WHERE MARC~MATNR = IT_MATERIAL_REC-MATNR.
LOOP AT IT_PLANT_REC.
SELECT SUM( LABST ) INTO IT_PLANT_REC-LABST
FROM MARD
WHERE MARDMATNR = IT_MATERIAL_REC-MATNR AND MARDWERKS =
IT_PLANT_REC-WERKS.
MODIFY IT_PLANT_REC.
ENDLOOP.
WRITE:/2 IT_MATERIAL_REC-MATNR , 22 IT_MATERIAL_REC-MAKTX , 115
TOTAL.
LOOP AT IT_PLANT_REC.
WRITE:/50 IT_PLANT_REC-WERKS , 62 IT_PLANT_REC-NAME1, 115
IT_PLANT_REC-LABST .
HIDE IT_PLANT_REC-WERKS.
HIDE IT_PLANT_REC-NAME1.
HIDE IT_PLANT_REC-MATNR.
ENDLOOP.
CLEAR: IT_MATERIAL_REC-MATNR.
WHEN '3'.
CLEAR IT_STORAGE_REC.
SELECT LGORT LABST INTO CORRESPONDING FIELDS OF TABLE
IT_STORAGE_REC
FROM MARD
WHERE MATNR = IT_PLANT_REC-MATNR AND WERKS = IT_PLANT_REC-WERKS.
LOOP AT IT_STORAGE_REC.
SELECT SINGLE LGOBE INTO CORRESPONDING FIELDS OF
IT_STORAGE_REC
FROM T001L
WHERE LGORT = IT_STORAGE_REC-LGORT.
MODIFY IT_STORAGE_REC.
ENDLOOP.
WRITE:/2 IT_PLANT_REC-MATNR , 22 IT_MATERIAL_REC-MAKTX , 115 TOTAL
.
WRITE:/50 IT_PLANT_REC-WERKS , 62 IT_PLANT_REC-NAME1.
LOOP AT IT_STORAGE_REC.
WRITE:/80 IT_STORAGE_REC-LGORT , 92 IT_STORAGE_REC-LGOBE
, 115 IT_STORAGE_REC-LABST.
CLEAR IT_STORAGE_REC.
ENDLOOP.
CLEAR IT_PLANT_REC-WERKS.
WHEN OTHERS.
WRITE:/ 'SORRY !!!!!!!! PRESS F12'.
EXIT.
ENDCASE.
************************************************************************
*********************************************************************
MENU
************************************************************************
*********************************************************************
AT USER-COMMAND.
SET PF-STATUS 'AK01'.
CASE SY-UCOMM.
WHEN 'EXT1'.
SET SCREEN 0.
LEAVE SCREEN.
WHEN 'EX01'.
DO LINES TIMES.
READ LINE SY-INDEX FIELD VALUE BOX.
IF BOX = 'X' .
WRITE:/2 IT_MATERIAL_REC-MATNR, 22 IT_MATERIAL_REC-MAKTX .
HIDE: IT_MATERIAL_REC-MATNR,
IT_MATERIAL_REC-MAKTX .
ENDIF.
ENDDO.
WHEN 'SELALL'.
DO LINES TIMES.
READ LINE SY-INDEX FIELD VALUE BOX.
IF BOX <> 'X' .
BOX = 'X'.
ENDIF.
ENDDO.
WHEN 'DESELALL'.
DO LINES TIMES.
READ LINE SY-INDEX FIELD VALUE BOX.
IF BOX = 'X' .
BOX = ' '.
ENDIF.
ENDDO.
ENDCASE.
************************************************************************
*********************************************************************
TOP-OF-PAGE.
ULINE 1(135).
WRITE:/ SY-VLINE , 135 SY-VLINE .
WRITE:2'RAPIDIGM INDIA LIMITED' COLOR 1.
WRITE:/ SY-VLINE , 135 SY-VLINE.
WRITE:2
' MATERIAL STOCK D' &
'ETAILS '
COLOR 6.
WRITE:/ SY-VLINE , 135 SY-VLINE.
WRITE: 120 'DATE' COLOR COL_HEADING , SY-DATUM.
WRITE:/ SY-VLINE , 135 SY-VLINE.
ULINE 1(135).
WRITE:/ SY-VLINE , 135 SY-VLINE.
ULINE 1(135).
WRITE:/ SY-VLINE , 135 SY-VLINE.
WRITE:2'MATERIAL NO' , 22 'DESCRIPTION', 50 'PLANT ID', 62
'PLANT NAME ' , 80 'STORAGE ID', 92 'LOC NAME' RIGHT-JUSTIFIED, 115
'QUANTITY' COLOR 6.
WRITE:/ SY-VLINE , 135 SY-VLINE.
ULINE 1(135).
TOP-OF-PAGE DURING LINE-SELECTION.
ULINE 1(135).
WRITE:/ SY-VLINE , 135 SY-VLINE .
WRITE:2'RAPIDIGM INDIA LIMITED' COLOR 1.
WRITE:/ SY-VLINE , 135 SY-VLINE.
WRITE:2
' MATERIAL STOCK D' &
'ETAILS '
COLOR 6.
WRITE:/ SY-VLINE , 135 SY-VLINE.
WRITE: 120 'DATE' COLOR COL_HEADING , SY-DATUM.
WRITE:/ SY-VLINE , 135 SY-VLINE.
ULINE 1(135).
WRITE:/ SY-VLINE , 135 SY-VLINE.
ULINE 1(135).
WRITE:/ SY-VLINE , 135 SY-VLINE.
WRITE:2'MATERIAL NO' , 22 'DESCRIPTION', 50 'PLANT ID', 62
'PLANT NAME ' , 80 'STORAGE ID', 92 'LOC NAME' RIGHT-JUSTIFIED, 115
'QUANTITY' COLOR 6.
WRITE:/ SY-VLINE , 135 SY-VLINE.
ULINE 1(135).
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |