Regarding allignment in classical report, need it urgently
Iam strucking in dispalying the data in classical report.
Iam working with hr module. My output should be in such a way that all the countries which iam taking in one internal table shuld be displayed in row.
with regarding these countries I was fetching groups(designations) i.e like manager, submanager.And iam taking a count if Designation repeats for that particular country.iam getting the output, but in dispalying the problem is.
i wil show how the output shuld be
india MAlaysia japan
manager 1
deputymanager 2 1
hr 1 2
but my output is coming like this
india MAlaysia japan
manager 1
deputymanager 2 1
hr 1 2
count is displaying under first country.
can anyone tell me how to move forward.
Hi,
Use the code as follows:
*************LIST OUTPUT*****************
FORMAT COLOR 1.
WRITE:SY-VLINE, TEXT-003 ,
19 SY-VLINE,21 TEXT-004,
27 SY-VLINE,29 TEXT-001,
39 SY-VLINE,41 TEXT-002,
52 SY-VLINE,54 TEXT-005,
61 SY-VLINE,63 TEXT-006,
77 SY-VLINE,79 TEXT-007,
91 SY-VLINE,93 TEXT-008,
105 SY-VLINE,107 TEXT-009,
123 SY-VLINE.
ULINE AT (123).
LOOP AT ITAB ."WHERE MBLNR = IMBLNR OR BUDAT1 IN S_BUDAT.
uline at (137).
FORMAT COLOR OFF.
WRITE:/ SY-VLINE,ITAB-MBLNR UNDER TEXT-003,
19 SY-VLINE,ITAB-MJAHR UNDER TEXT-004,
27 SY-VLINE,ITAB-BUDAT1 UNDER TEXT-001,
39 SY-VLINE,ITAB-ETIME UNDER TEXT-002,
52 SY-VLINE,ITAB-WERKS UNDER TEXT-005,
61 SY-VLINE,ITAB-LGORT UNDER TEXT-006,
77 SY-VLINE,ITAB-BUDAT UNDER TEXT-007,
91 SY-VLINE,ITAB-OIB_BLTIME UNDER TEXT-008,
105 SY-VLINE,ITAB-VARIANCE UNDER TEXT-009,
123 SY-VLINE.
ULINE AT (123).
ENDLOOP.
I used it in my report.Make changes in fields according to your requirement.
hope it helps.
Reward if helpful.
Regards,
Sipra
Similar Messages
-
Ar aging report, need help urgent please help!
Hey All Gurus,
Im in a thick soup here. I am trying to do something like this -
if you see the selection screen i have rep and super rep, when a user enters a rep value --- it should use the same value to pull all open items for the super rep as well, since they are essentially the same. please help! this one needs to be done fast. i am pasting the code so that it will be easier ...
thanks a million!
*& Report ZFDOFW04_NEW
REPORT ZFDOFW04_NEW MESSAGE-ID FR
LINE-SIZE 132
LINE-COUNT 60.
*==================================================================
Program: ZFDOFW03 - Aged Trial Balance Report
This produces an Accounts Receivable Past Due Aging Report
in a more simplified/condensed format than the
SAP supplied aging report program - RFDOPR10.
This program is a modified copy of RFDOFW00, - a SAP
Future-Due Report.
This was a 'rush' job - program probably should be
rewritten someday not using logical databases as that
maybe why this runs so slowly!
Original: Feb 1997.
MAINTENANCE HISTORY:
NES071797 Copied from ZFDOFW03. Adding parameter for saeles rep.
JDEDERER - changed header text so it is differnet from ZFDORW03. 9/23
*TEXT SYMBOLS :
001 Open items per
002 O p e n
003 D u e o n
004 cc ba in total
005 until
006 Days until
007 Days over
008 Days
009 over
011 valid until........
012 Insurance limit.....
016 F u t u r e
017 + days
018 D u e
020 Last dunn.notice...
021 Dunning level....
030 S U M M A R Y S H E E T
031 =====================
050 Name Page
051 Burton Snowboard
SELECTION TEXTS:
SUMMEN Output totals only
TAGE1 Due date I until
TAGE2 Due date II until
TAGE3 Due date III until
TAGE4 Due date IV until
TABLES: T001, KNA1, KNB1, KNB5, BSID, BSEGA, RFPDO1, KNVP,
T014, "credit control areas JAM
KNVK, "cust master - contact partner JAM
T014T, "Credit control areas names
BKPF, "TONY ISSUE 4743
TVKO, "TONY ISSUE 4743
KNKK. "cust master - credit mgmt JAM
TYPES: BEGIN OF TOT_TYPE, "DEVK939546
BUKRS LIKE LFB1-BUKRS, "DEVK939546
GSBER LIKE BSIK-GSBER, "DEVK939546
KKBER LIKE BSID-KKBER,
RAST1 TYPE P, "DEVK939546
RAST2 TYPE P, "DEVK939546
RAST3 TYPE P, "DEVK939546
RAST4 TYPE P, "DEVK939546
RAST5 TYPE P, "DEVK939546
RAST6 TYPE P, "DEVK939546
RAST7 TYPE P, "DEVK939546
END OF TOT_TYPE, "DEVK939546
TOT_TAB TYPE TOT_TYPE OCCURS 0. "DEVK939546
CONSTANTS:
C_FALSE TYPE I VALUE 0, "JAM
C_TRUE TYPE I VALUE 1.
DATA: BEGIN OF GTAB OCCURS 1000,
SUPER(10) TYPE C, "TONYC
REP(10) TYPE C, "TONYC
FILKD(10), "tonyc show buying groups
LAND1 LIKE KNA1-LAND1,
GSBER LIKE BSIK-GSBER,
REGIO LIKE KNA1-REGIO,
NAME1 LIKE KNA1-NAME1,
NAME2 LIKE KNA1-NAME2,
ORT01 LIKE KNA1-ORT01,
TELF1 LIKE KNVK-TELF1, "telephone number JAM
CONT_NAME1 LIKE KNVK-NAME1, "contact name JAM
NAMEV LIKE KNVK-NAMEV, "contact name JAM
KUNNR LIKE KNA1-KUNNR, "TONYC
BUKRS LIKE LFB1-BUKRS, "TONYC
KKBER LIKE BSID-KKBER, "tonyc issue #2500
ZTERM LIKE KNB1-ZTERM, "tonyc issue #2500
KLIMK_TXT(22) TYPE C, "credit limit JAM
WAERS LIKE T014-WAERS, "currency JAM
SORT_GSB, "TONYC
RAST1 TYPE P,
RAST2 TYPE P,
RAST3 TYPE P,
RAST4 TYPE P,
RAST5 TYPE P,
RAST6 TYPE P,
RAST7 TYPE P,
T_IND,
END OF GTAB.
DATA HOLD_NAME(40).
DATA HOLD_BUKRS LIKE T001-BUKRS. "tonyc
DATA GOOD_SUPER_REP. "tonyc
DATA: HOLD_REP LIKE KNA1-KUNNR, "tonyc
SUPER_NAME LIKE KNA1-NAME1, "tonyc
REP_NAME LIKE KNA1-NAME1. "tonyc
DATA NAME_LENGTH(2) TYPE C. "tonyc
DATA BACKSLASH(3) VALUE ' / '. "tonyc
DATA REPS_INFO(70) TYPE C. "tonyc
DATA REPORT_TYPE(12) TYPE C.
DATA: C_CREDIT_ABTNR LIKE KNVK-ABTNR. "dept 003 = credit
DATA Z_HOLD_LIMIT(22) TYPE N. "tonyc issue#2216
DATA Z_DESCRIPTION(18). "tonyc issue#2216
DATA WRITE_TOTAL.
DATA HOLD_KLIMK LIKE KNKK-KLIMK.
DATA HOLD_KLIMK2(22) TYPE C.
DATA HOLD-CTLPC LIKE KNKK-CTLPC.
DATA HOLD-CTLPC-TEXT LIKE T691T-RTEXT.
DATA HOLD_ZTERM LIKE KNVV-ZTERM.
DATA TOTAL_RAST7 TYPE P.
DATA TOTAL_RAST2 TYPE P.
DATA TOTAL_RAST3 TYPE P.
DATA TOTAL_RAST4 TYPE P.
DATA TOTAL_RAST5 TYPE P.
DATA TOTAL_RAST6 TYPE P.
DATA TOTAL_RAST1 TYPE P.
DATA HOLD_BUKRS2 LIKE T001-BUKRS.
DATA HOLD_KKBER LIKE BSID-KKBER.
DATA HOLD_KKBER_DESC LIKE T014T-KKBTX.
DATA HOLD_KKBER_DESC2 LIKE T014T-KKBTX.
DATA HOLD_KUNNR2 LIKE KNA1-KUNNR.
DATA L_FIRST_DAY_OF_FISCAL LIKE SY-DATUM. "tonyc issue #3047
DATA: STAB TYPE TOT_TAB WITH HEADER LINE, "DEVK939546
RTOT TYPE TOT_TAB WITH HEADER LINE, "DEVK939546
STOT TYPE TOT_TAB WITH HEADER LINE, "DEVK939546
OP,
MAXMANDT LIKE DD_STIDA,
MAXMANST TYPE P,
SUMKLIMB TYPE P,
SUMVLIBB TYPE P,
VERZUG TYPE P,
OBAD TYPE P,
BLOCK_CNT TYPE P,
INTENS,
ONEBYTE(1) TYPE C,
TAGE1A LIKE RFPDO1-ALLGFAEL,
TAGE2A LIKE RFPDO1-ALLGFAEL,
TAGE3A LIKE RFPDO1-ALLGFAEL,
HOLD_KUNNR LIKE KNA1-KUNNR, "tonyc
HOLD_SUPER LIKE KNA1-KUNNR, "tonyc
HOLD_REP2 LIKE KNA1-KUNNR, "tonyc
SUPER_REP LIKE KNA1-KUNNR, "tonyc
TEMP_TELF1 LIKE KNA1-TELF1, "JAM
IT_T014 LIKE T014 OCCURS 0 WITH HEADER LINE, "JAM
G_KLIMK_TXT LIKE GTAB-KLIMK_TXT, "JAM
G_WAERS LIKE GTAB-WAERS, "JAM
G_CONT_NAME(50) TYPE C. "JA
DATA FILL_REP_INFO.
BC SUNILP 05/14/2007
DATA: BEGIN OF ITAB_VBRP OCCURS 0.
INCLUDE STRUCTURE VBRP.
DATA: END OF ITAB_VBRP.
DATA: T_PERC TYPE F,
SUM_NETWR LIKE VBRP-NETWR.
*DATA: GTAB_LINES LIKE GTAB OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF GTAB_LINES OCCURS 0.
INCLUDE STRUCTURE GTAB.
DATA: IND(1),
OBAD TYPE P.
DATA: END OF GTAB_LINES.
DATA: BEGIN OF ITAB_VBRP1 OCCURS 0,
VBELN LIKE VBRP-VBELN,
NETWR LIKE VBRP-NETWR,
ZZMREP LIKE VBRP-ZZMREP, "Super Rep
ZZLREP LIKE VBRP-ZZLREP, "Rep
PERC TYPE F,
END OF ITAB_VBRP1.
EC SUNILP 05/14/2007
BEGIN_OF_BLOCK 2.
PARAMETERS: REGIO LIKE KNA1-REGIO.
PARAMETERS: CONSOL AS CHECKBOX. "TONYC
PARAMETERS: P_KKBER AS CHECKBOX, "TONYC
P_CONV AS CHECKBOX. "tonyc issue #3047
PARAMETERS: SUMMEN LIKE RFPDO1-ALLGSUMM,
TAGE1 LIKE RFPDO1-ALLGFAEL DEFAULT '30',
TAGE2 LIKE RFPDO1-ALLGFAEL DEFAULT '60',
TAGE3 LIKE RFPDO1-ALLGFAEL DEFAULT '90',
TAGE4 LIKE RFPDO1-ALLGFAEL DEFAULT '120'.
END_OF_BLOCK 2.
BEGIN_OF_BLOCK 3.
SELECT-OPTIONS: P_SUPREP FOR KNVP-KUNNR, "Super REP "DEVK939546
P_REP FOR KNVP-KUNNR, "SALES REP "DEVK939546
P_VKORG FOR TVKO-VKORG, "TONYC ISSUE 4743
P_LOTKZ FOR BKPF-LOTKZ. "TONYC ISSUE 4743
END_OF_BLOCK 3.
INITIALIZATION. "JAM
PERFORM LOAD_T014. "JAM
refresh dd_augdt.
clear dd_augdt.
dd_augdt-option = 'EQ'.
dd_augdt-sign = 'I'.
dd_augdt-low = ' '.
append dd_augdt.
AT SELECTION-SCREEN.
IF CONSOL = 'X'.
IF NOT P_SUPREP[] IS INITIAL. "DEVK939546
MESSAGE E999 WITH 'Consolidated report not allowed w/ Super Rep'.
ENDIF.
ENDIF.
CHECK IF THE REP INFO IS ADDED OR NOT - VS
IF NOT P_SUPREP IS INITIAL OR"TONY ISSUE 4743
NOT P_REP IS INITIAL."TONY ISSUE 4743
FILL_REP_INFO = 'X'."TONY ISSUE 4743
ENDIF."TONY ISSUE 4743
START-OF-SELECTION.
get_frame_title 2.
add function module to track usage JD 10/13/98 *****
CALL FUNCTION 'Z_RUN_LOG'
EXCEPTIONS
OTHERS = 1.
*IF NOT P_SUPREP IS INITIAL AND NOT P_REP IS INITIAL.
P_SUPREP = ' '.
*ENDIF.
GET KNA1 FIELDS LAND1 REGIO KUNNR NAME1 NAME2 ORT01 TELF1. "JAM
new-page.
skip.
TEMP_TELF1 = KNA1-TELF1.
MAXMANDT = '19000101'.
MAXMANST = 0.
SUMVLIBB = 0.
PERFORM GET_CUST_CONTACT. "JAM
Check sales rep- NES071797
Get any valid record and exit.
IF NOT p_suprep[] IS INITIAL. "DEVK939546 "TONY ISSUE 4743 start
good_super_rep = ' '.
SELECT kunn2 INTO super_rep FROM knvp UP TO 1 ROWS
WHERE
kunnr = kna1-kunnr AND
parvw = 'ZS' AND
kunn2 IN p_suprep.
EXIT.
ENDSELECT.
IF sy-subrc = 0.
good_super_rep = 'X'.
gtab-super = super_rep.
super_rep = ' '.
ENDIF.
CHECK good_super_rep = 'X'.
SELECT kunn2 INTO gtab-rep FROM knvp UP TO 1 ROWS
WHERE
kunnr = kna1-kunnr AND
parvw = 'ZR' AND
kunn2 IN p_rep.
EXIT.
ENDSELECT.
CHECK sy-subrc = 0.
ELSEIF NOT p_rep[] IS INITIAL. "DEVK939546
SELECT kunn2 INTO gtab-rep FROM knvp UP TO 1 ROWS
WHERE
kunnr = kna1-kunnr AND
parvw = 'ZR' AND
kunn2 IN p_rep.
EXIT.
ENDSELECT.
CHECK sy-subrc = 0.
ENDIF. "TONY ISSUE 4743 end
GET KNB1 FIELDS BUKRS VLIBB ZTERM. "tonyc #2500
GTAB-BUKRS = KNB1-BUKRS.
GTAB-ZTERM = KNB1-ZTERM.
SUMVLIBB = SUMVLIBB + KNB1-VLIBB.
GET KNB5.
IF KNB5-MADAT > MAXMANDT.
MAXMANDT = KNB5-MADAT.
ENDIF.
IF KNB5-MAHNS > MAXMANST.
MAXMANST = KNB5-MAHNS.
ENDIF.
SUMKLIMB = SUMKLIMB + KLIMB.
GET BSID.
CHECK BSID-BSTAT = SPACE.
field was intended for Business Area, changed to use Currency
GTAB-GSBER = BSID-WAERS.
IF P_KKBER = 'X'. "TONYC ISSUE #2500
IF BSID-KKBER = ' '.
GTAB-KKBER = BSID-BUKRS.
ELSE.
GTAB-KKBER = BSID-KKBER. "TONYC ISSUE #2500
ENDIF.
ENDIF. "TONYC ISSUE #2500
SELECT SINGLE * FROM BKPF "TONY ISSUE 4743
WHERE BUKRS = BSID-BUKRS "TONY ISSUE 4743
AND BELNR = BSID-BELNR "TONY ISSUE 4743
AND GJAHR = BSID-GJAHR. "TONY ISSUE 4743
BC SUNILP 05/14/2007
IF BKPF-XREF2_HD IS NOT INITIAL.
CHECK BKPF-XREF2_HD IN P_SUPREP. "TONY ISSUE 4743
ELSE.
IF P_REP[] IS INITIAL.
REFRESH: ITAB_VBRP, ITAB_VBRP1.
IF NOT BKPF-XBLNR IS INITIAL.
SELECT * FROM VBRP INTO ITAB_VBRP WHERE VBELN = BKPF-XBLNR.
APPEND ITAB_VBRP. CLEAR ITAB_VBRP.
ENDSELECT.
CHECK ITAB_VBRP[] IS NOT INITIAL.
CLEAR: SUM_NETWR.
LOOP AT ITAB_VBRP.
CHECK ITAB_VBRP-ZZMREP IN P_SUPREP.
CHECK ITAB_VBRP-ZZLREP IN P_REP.
MOVE-CORRESPONDING ITAB_VBRP TO ITAB_VBRP1.
COLLECT: ITAB_VBRP1.
SUM_NETWR = SUM_NETWR + ITAB_VBRP-NETWR.
CLEAR ITAB_VBRP.
ENDLOOP.
CHECK ITAB_VBRP1[] IS NOT INITIAL.
LOOP AT ITAB_VBRP1.
CLEAR: T_PERC.
T_PERC = ( ITAB_VBRP1-NETWR / SUM_NETWR ).
ITAB_VBRP1-PERC = T_PERC.
MODIFY ITAB_VBRP1 INDEX SY-TABIX TRANSPORTING PERC.
ENDLOOP.
ENDIF.
ENDIF.
ENDIF.
EC SUNILP 05/14/2007
IF FILL_REP_INFO = 'X'.
GTAB-SUPER = BKPF-XREF2_HD. "TONY ISSUE 4743 "MOVE THE CONTENTS OF XREF2_HD TO GTAB INTERNAL TABLE - VS
ENDIF.
BC SUNILP 05/14/2007
IF BKPF-XREF1_HD IS NOT INITIAL.
CHECK BKPF-XREF1_HD IN P_REP. "TONY ISSUE 4743 " ELSE MOVE THE CONTENTS OF - VS
ELSE.
REFRESH: ITAB_VBRP, ITAB_VBRP1.
IF NOT BKPF-XBLNR IS INITIAL.
SELECT * FROM VBRP INTO ITAB_VBRP WHERE VBELN = BKPF-XBLNR.
APPEND ITAB_VBRP. CLEAR ITAB_VBRP.
ENDSELECT.
CHECK ITAB_VBRP[] IS NOT INITIAL.
CLEAR: SUM_NETWR.
LOOP AT ITAB_VBRP.
CHECK ITAB_VBRP-ZZMREP IN P_SUPREP.
CHECK ITAB_VBRP-ZZLREP IN P_REP.
MOVE-CORRESPONDING ITAB_VBRP TO ITAB_VBRP1.
COLLECT: ITAB_VBRP1.
SUM_NETWR = SUM_NETWR + ITAB_VBRP-NETWR.
CLEAR ITAB_VBRP.
ENDLOOP.
CHECK ITAB_VBRP1[] IS NOT INITIAL.
LOOP AT ITAB_VBRP1.
CLEAR: T_PERC.
T_PERC = ( ITAB_VBRP1-NETWR / SUM_NETWR ).
ITAB_VBRP1-PERC = T_PERC.
MODIFY ITAB_VBRP1 INDEX SY-TABIX TRANSPORTING PERC.
ENDLOOP.
ENDIF.
ENDIF.
EC SUNILP 05/14/2007
IF FILL_REP_INFO = 'X'.
GTAB-REP = BKPF-XREF1_HD. "TONY ISSUE 4743
ENDIF.
CHECK BKPF-LOTKZ IN P_LOTKZ. "TONY ISSUE 4743
CHECK BKPF-BRNCH IN P_VKORG. "TONY ISSUE 4743
SELECT SINGLE FILKD INTO GTAB-FILKD FROM BSEG
WHERE BUKRS = BSID-BUKRS
AND BELNR = BSID-BELNR
AND GJAHR = BSID-GJAHR
AND BUZEI = BSID-BUZEI.
gtab-gsber = bsid-gsber.
get rep info for each bsid record
IF NOT P_SUPREP IS INITIAL. "tonyc
SELECT KUNNR FROM VBPA INTO HOLD_REP UP TO 1 ROWS "tonyc
WHERE VBELN = BSID-VBELN "tonyc
AND PARVW = 'ZR'. "tonyc
ENDSELECT. "tonyc
IF NOT P_REP IS INITIAL. "tonyc
CHECK HOLD_REP = P_REP. "tonyc
ENDIF. "tonyc
GTAB-REP = HOLD_REP. "tonyc
HOLD_REP = ' '. "tonyc
ENDIF. "tonyc
PERFORM GET_KNKK_INFO. "JAM
GTAB-KLIMK_TXT = G_KLIMK_TXT.
GTAB-WAERS = G_WAERS.
GTAB-LAND1 = KNA1-LAND1.
GTAB-REGIO = KNA1-REGIO.
GTAB-KUNNR = KNA1-KUNNR.
GTAB-NAME1 = KNA1-NAME1.
GTAB-NAME2 = KNA1-NAME2.
GTAB-ORT01 = KNA1-ORT01.
*if there is no phone number for the contact, pull the phone
*number from the sold-to
IF KNVK-TELF1 = ' '.
GTAB-TELF1 = TEMP_TELF1.
ELSE.
GTAB-TELF1 = KNVK-TELF1. "JAM
ENDIF.
GTAB-CONT_NAME1 = KNVK-NAME1.
GTAB-NAMEV = KNVK-NAMEV.
verzug = bsega-netdt - dd_stida.
VERZUG = DD_STIDA - BSEGA-NETDT. "days past due calculation
OP = 'X'.
GTAB-RAST2 = GTAB-RAST3 = GTAB-RAST4 = 0.
GTAB-RAST5 = GTAB-RAST6 = OBAD = GTAB-RAST7 = 0.
IF VERZUG LE 0. "future due
GTAB-RAST1 = BSEGA-WRSHB.
ELSE.
IF VERZUG LE TAGE1. "past due 1 to tage1 days
GTAB-RAST1 = BSEGA-WRSHB.
GTAB-RAST2 = BSEGA-WRSHB.
OBAD = BSEGA-WRSHB.
ELSE.
IF VERZUG LE TAGE2. "past due tage1 to tage2 days
GTAB-RAST1 = BSEGA-WRSHB.
GTAB-RAST3 = BSEGA-WRSHB.
OBAD = BSEGA-WRSHB.
ELSE.
IF VERZUG LE TAGE3. "past due tage2 to tage3 days
GTAB-RAST1 = BSEGA-WRSHB.
GTAB-RAST4 = BSEGA-WRSHB.
OBAD = BSEGA-WRSHB.
ELSE.
IF VERZUG LE TAGE4. "past due tage3 to tage4 days
GTAB-RAST1 = BSEGA-WRSHB.
GTAB-RAST5 = BSEGA-WRSHB.
OBAD = BSEGA-WRSHB.
ELSE.
IF VERZUG GT TAGE4. "past due > tage4 days
GTAB-RAST1 = BSEGA-WRSHB.
GTAB-RAST6 = BSEGA-WRSHB.
OBAD = BSEGA-WRSHB.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
GTAB-RAST7 = GTAB-RAST1 - OBAD.
stab = gtab.
MOVE-CORRESPONDING GTAB TO STAB.
BC SUNILP 05/15/2007
IF ITAB_VBRP1[] IS NOT INITIAL.
GTAB-T_IND = 'X'.
LOOP AT ITAB_VBRP1.
MOVE-CORRESPONDING GTAB TO GTAB_LINES.
GTAB_LINES-SORT_GSB = '1'.
GTAB_LINES-SUPER = ITAB_VBRP1-ZZMREP.
GTAB_LINES-REP = ITAB_VBRP1-ZZLREP.
GTAB_LINES-RAST1 = GTAB_LINES-RAST1 * ITAB_VBRP1-PERC.
GTAB_LINES-RAST2 = GTAB_LINES-RAST2 * ITAB_VBRP1-PERC.
GTAB_LINES-RAST3 = GTAB_LINES-RAST3 * ITAB_VBRP1-PERC.
GTAB_LINES-RAST4 = GTAB_LINES-RAST4 * ITAB_VBRP1-PERC.
GTAB_LINES-RAST5 = GTAB_LINES-RAST5 * ITAB_VBRP1-PERC.
GTAB_LINES-RAST6 = GTAB_LINES-RAST6 * ITAB_VBRP1-PERC.
GTAB_LINES-RAST7 = GTAB_LINES-RAST7 * ITAB_VBRP1-PERC.
GTAB_LINES-OBAD = GTAB_LINES-OBAD * ITAB_VBRP1-PERC.
COLLECT: GTAB_LINES.
ENDLOOP.
ELSE.
MOVE-CORRESPONDING GTAB TO GTAB_LINES.
GTAB_LINES-T_IND = 'X'.
GTAB_LINES-SORT_GSB = '1'.
IF GTAB_LINES-SUPER IN P_SUPREP OR GTAB_LINES-REP IN P_REP.
COLLECT: GTAB_LINES.
ENDIF.
ENDIF.
EC SUNILP 05/15/2007
gtab-sort_gsb = stab-sort_gsb = '0'.
collect: gtab, stab.
gtab-gsber = stab-gsber = '****'.
GTAB-SORT_GSB = '1'.
IF REGIO = SPACE OR REGIO = GTAB-REGIO.
IF GTAB_LINES-SUPER IN P_SUPREP OR GTAB_LINES-REP IN P_REP.
COLLECT: GTAB, STAB.
ENDIF.
ENDIF.
END-OF-SELECTION.
TAGE1A = TAGE1 + 1.
TAGE2A = TAGE2 + 1.
TAGE3A = TAGE3 + 1.
IF SUMMEN = ' '.
sort gtab by bukrs land1 regio kunnr gsber sort_gsb.
sort gtab by bukrs land1 regio name1 kunnr gsber sort_gsb. "JAM
IF CONSOL = 'X'.
SORT GTAB BY LAND1 REGIO NAME1 KUNNR BUKRS KKBER GSBER SORT_GSB.
"TONYC
REPORT_TYPE = 'consolidated'.
ELSEIF NOT P_SUPREP[] IS INITIAL. "DEVK939546
SORT GTAB
BY SUPER REP NAME1 BUKRS KKBER LAND1 REGIO NAME1 GSBER SORT_GSB.
BC SUNILP 05/15/2007
SORT GTAB_LINES
BY SUPER REP NAME1 BUKRS KKBER LAND1 REGIO NAME1 GSBER SORT_GSB.
EC SUNILP 05/15/2007
REPORT_TYPE = 'super rep'.
CLEAR STAB. "tonyc 03/06/2004
REFRESH STAB. "tonyc 03/06/2004
ELSEIF NOT P_REP[] IS INITIAL. "DEVK939546
SORT GTAB "DEVK939546
BY REP NAME1 BUKRS KKBER LAND1 REGIO NAME1 GSBER SORT_GSB.
"DEVK939546
BC SUNILP 05/15/2007
SORT GTAB_LINES
BY REP NAME1 BUKRS KKBER LAND1 REGIO NAME1 GSBER SORT_GSB.
EC SUNILP 05/15/2007
REPORT_TYPE = 'rep'. "DEVK939546
CLEAR STAB. "tonyc 03/06/2004
REFRESH STAB. "tonyc 03/06/2004
ELSE.
SORT GTAB BY BUKRS KKBER LAND1 REGIO NAME1 KUNNR GSBER SORT_GSB.
BC SUNILP 05/15/2007
SORT GTAB_LINES BY BUKRS KKBER LAND1 REGIO NAME1 KUNNR GSBER SORT_GSB.
EC SUNILP 05/15/2007
REPORT_TYPE = 'regular'.
ENDIF.
BC SUNILP 05/15/2007
DELETE ADJACENT DUPLICATES FROM GTAB COMPARING BUKRS NAME1.
LOOP AT GTAB_LINES.
IF P_REP[] IS INITIAL.
IF GTAB_LINES-SUPER NOT IN P_SUPREP.
DELETE GTAB_LINES.
ENDIF.
ELSE.
IF GTAB_LINES-SUPER NOT IN P_SUPREP OR GTAB_LINES-REP NOT IN P_REP.
DELETE GTAB_LINES.
ENDIF.
ENDIF.
ENDLOOP.
LOOP AT GTAB.
READ TABLE GTAB_LINES WITH KEY BUKRS = GTAB-BUKRS
NAME1 = GTAB-NAME1.
IF SY-SUBRC NE '0'.
DELETE GTAB.
ENDIF.
ENDLOOP.
EC SUNILP 05/15/2007
LOOP AT GTAB.
MOVE GTAB-BUKRS TO T001-BUKRS. READ TABLE T001.
RESERVE 5 LINES.
CASE REPORT_TYPE.
WHEN 'regular'.
IF HOLD_BUKRS <> GTAB-BUKRS.
IF SY-TABIX > 1. "TONYC
NEW-PAGE. SKIP. "TONYC
ENDIF. "TONYC
ENDIF.
PERFORM WRITE_CUST_INFO. "TONYC
PERFORM WRITE_DETAIL.
hold_bukrs = gtab-bukrs. "tonyc
WHEN 'consolidated'.
IF HOLD_KUNNR <> GTAB-KUNNR. "TONYC
PERFORM WRITE_CUST_INFO. "TONYC
ENDIF. "TONYC
HOLD_KUNNR = GTAB-KUNNR. "TONYC
PERFORM WRITE_DETAIL.
WHEN 'super rep'.
IF GTAB-T_IND NE 'X'.
BC SUNILP 05/22/2007
READ TABLE GTAB_LINES WITH KEY BUKRS = GTAB-BUKRS
NAME1 = GTAB-NAME1.
EC SUNILP 05/22/2007
IF ( HOLD_SUPER <> GTAB_LINES-SUPER ) OR
( HOLD_REP2 <> GTAB_LINES-REP ).
NEW-PAGE.
PERFORM GET_AND_WRITE_SUPERINFO.
ENDIF.
HOLD_REP2 = GTAB_LINES-REP.
HOLD_SUPER = GTAB_LINES-SUPER.
IF HOLD_KUNNR <> GTAB-KUNNR. "TONYC
WRITE :/. "TONYC
ULINE. "TONYC
PERFORM WRITE_CUST_INFO. "TONYC
ENDIF. "TONYC
HOLD_KUNNR = GTAB-KUNNR. "TONYC
PERFORM WRITE_DETAIL. "TONYC
AT END OF REP. "DEVK939546
SKIP. "DEVK939546
RESERVE 7 LINES. "DEVK939546
FORMAT COLOR COL_TOTAL INTENSIFIED. "DEVK939546
WRITE: / 'Summary for Rep:', "DEVK939546
GTAB-REP, '/', REP_NAME, 132 ONEBYTE."DEVK939546
PERFORM WRITE_TOTS TABLES RTOT. "DEVK939546
REFRESH RTOT. "DEVK939546
ENDAT. "DEVK939546
AT END OF SUPER. "DEVK939546
CLEAR STAB. "tonyc 03/06/2004
REFRESH STAB. "tonyc 03/06/2004
NEW-PAGE. SKIP. "DEVK939546
FORMAT COLOR COL_TOTAL INTENSIFIED. "DEVK939546
WRITE: / 'Summary for Super Rep:', "DEVK939546
GTAB-SUPER, '/', SUPER_NAME, 132 ONEBYTE."DEVK939546
PERFORM WRITE_TOTS TABLES STOT. "DEVK939546
REFRESH STOT. "DEVK939546
ENDAT. "DEVK939546
ELSE.
LOOP AT GTAB_LINES WHERE BUKRS = GTAB-BUKRS
AND NAME1 = GTAB-NAME1.
IF ( HOLD_SUPER <> GTAB_LINES-SUPER ) OR
( HOLD_REP2 <> GTAB_LINES-REP ).
NEW-PAGE.
PERFORM GET_AND_WRITE_SUPERINFO.
ENDIF.
HOLD_REP2 = GTAB_LINES-REP.
HOLD_SUPER = GTAB_LINES-SUPER.
IF HOLD_KUNNR <> GTAB_LINES-KUNNR.
WRITE :/.
ULINE.
PERFORM WRITE_CUST_INFO.
ENDIF.
HOLD_KUNNR = GTAB_LINES-KUNNR.
PERFORM WRITE_DETAIL.
AT END OF REP.
SKIP.
RESERVE 7 LINES.
FORMAT COLOR COL_TOTAL INTENSIFIED.
WRITE: / 'Summary for Rep:',
GTAB_LINES-REP, '/', REP_NAME, 132 ONEBYTE.
PERFORM WRITE_TOTS TABLES RTOT.
REFRESH RTOT.
ENDAT.
AT END OF SUPER.
CLEAR STAB. "tonyc 03/06/2004
REFRESH STAB. "tonyc 03/06/2004
NEW-PAGE. SKIP.
FORMAT COLOR COL_TOTAL INTENSIFIED.
WRITE: / 'Summary for Super Rep:',
GTAB_LINES-SUPER, '/', SUPER_NAME, 132 ONEBYTE.
PERFORM WRITE_TOTS TABLES STOT.
REFRESH STOT.
ENDAT.
ENDLOOP.
ENDIF.
WHEN 'rep'. "DEVK939546
LOOP AT GTAB_LINES WHERE BUKRS = GTAB-BUKRS
AND NAME1 = GTAB-NAME1.
IF HOLD_REP2 <> GTAB_LINES-REP. "DEVK939546
NEW-PAGE. "DEVK939546
PERFORM GET_AND_WRITE_REPINFO. "DEVK939546
ENDIF. "DEVK939546
HOLD_REP2 = GTAB_LINES-REP. "DEVK939546
IF HOLD_KUNNR <> GTAB_LINES-KUNNR. "DEVK939546
WRITE :/. "DEVK939546
ULINE. "DEVK939546
PERFORM WRITE_CUST_INFO. "DEVK939546
ENDIF. "DEVK939546
HOLD_KUNNR = GTAB_LINES-KUNNR. "DEVK939546
PERFORM WRITE_DETAIL. "DEVK939546
AT END OF REP. "DEVK939546
SKIP. "DEVK939546
RESERVE 7 LINES. "DEVK939546
FORMAT COLOR COL_TOTAL INTENSIFIED. "DEVK939546
WRITE: / 'Summary for Rep:', "DEVK939546
GTAB_LINES-REP, '/', REP_NAME, 132 ONEBYTE."DEVK939546
PERFORM WRITE_TOTS TABLES RTOT. "DEVK939546
REFRESH RTOT. "DEVK939546
ENDAT. "DEVK939546
ENDLOOP.
ENDCASE.
ENDLOOP.
ENDIF.
OP = ' '.
REFRESH GTAB.
IF NOT REPORT_TYPE = 'super rep'.
ULINE.
ENDIF.
SKIP 1.
IF SUMMEN = ' '. "if 'output totals only' bypass new-page
NEW-PAGE. SKIP.
ENDIF.
WRITE: /25 TEXT-030, 132 ONEBYTE, /25 TEXT-031, 132 ONEBYTE.
PERFORM WRITE_TOTS TABLES STAB. "DEVK939546
TOP-OF-PAGE.
INTENS = SPACE.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
WRITE: / SY-VLINE, 1 TEXT-001, DD_STIDA, 75 TEXT-051, 132 SY-VLINE.
ULINE.
WRITE: / SY-VLINE, 13 SY-VLINE, 30 SY-VLINE,
47 SY-VLINE, 58 TEXT-003, 81 SY-VLINE,
92 TEXT-003, 115 SY-VLINE, 118 TEXT-003, 132 SY-VLINE,
/ SY-VLINE, 02 TEXT-004, 13 SY-VLINE, TEXT-002,
30 SY-VLINE, 32 TEXT-018, 47 SY-VLINE,
50 '1', 54 TEXT-040, 57 TAGE1, 64 SY-VLINE, " 65 tage2,
67 TAGE1A, 72 TEXT-040, 75 TAGE2,
81 SY-VLINE, 83 TAGE2A, 89 TEXT-040, 91 TAGE3, 98 SY-VLINE,
101 TAGE3A, 107 TEXT-040, 110 TAGE4, 115 SY-VLINE,
117 TAGE4, 123 TEXT-017, 132 SY-VLINE.
ULINE.
SKIP 1.
SUMMARY.
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
FORM write_tots *
--> PTAB *
FORM WRITE_TOTS TABLES PTAB TYPE TOT_TAB. "DEVK939546
CLEAR INTENS. "DEVK939546
FORMAT COLOR COL_HEADING INTENSIFIED OFF. "DEVK939546
IF P_CONV = 'X'. "tonyc issue #3047 begin
WRITE /4 TEXT-101.
WRITE: /4 TEXT-102,
50 TEXT-100.
ENDIF. "tonyc issue #3047 end
ULINE. "DEVK939546
SORT PTAB BY BUKRS GSBER. "DEVK939546
LOOP AT PTAB. "DEVK939546
IF SY-TABIX > 1.
WRITE_TOTAL = 'X'.
ENDIF.
MOVE PTAB-BUKRS TO T001-BUKRS. READ TABLE T001. "DEVK939546
MOVE PTAB-GSBER TO T001-WAERS. "DEVK939546
IF P_CONV = 'X'. "tonyc issue #3047 begin
PERFORM CONVERT_VALUES USING STAB-RAST1
STAB-GSBER.
PERFORM CONVERT_VALUES USING STAB-RAST2
STAB-GSBER.
PERFORM CONVERT_VALUES USING STAB-RAST3
STAB-GSBER.
PERFORM CONVERT_VALUES USING STAB-RAST4
STAB-GSBER.
PERFORM CONVERT_VALUES USING STAB-RAST5
STAB-GSBER.
PERFORM CONVERT_VALUES USING STAB-RAST6
STAB-GSBER.
PERFORM CONVERT_VALUES USING STAB-RAST7
STAB-GSBER.
ENDIF. "TOnyc issue #3047 end
MOVE-CORRESPONDING PTAB TO STAB.
COLLECT STAB.
IF P_KKBER = 'X'. "TONYC ISSUE #2500
CLEAR HOLD_KKBER_DESC2.
SELECT SINGLE KKBTX INTO HOLD_KKBER_DESC2 FROM T014T
WHERE KKBER = STAB-KKBER AND
SPRAS = 'E'.
IF SY-SUBRC <> '0'.
HOLD_KKBER_DESC2 = 'Undetermined'.
ENDIF.
FORMAT COLOR OFF.
WRITE: / SY-VLINE.
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
WRITE: 6 STAB-GSBER, HOLD_KKBER_DESC2, SY-VLINE.
ULINE.
FORMAT COLOR OFF.
WRITE: / SY-VLINE.
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
IF P_CONV = 'X'. "tonyc issue #3047 begin
T001-WAERS = 'USD'.
ENDIF. "tonyc issue #3047 end
WRITE: 13 STAB-RAST1 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) STAB-RAST7 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) STAB-RAST2 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) STAB-RAST3 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) STAB-RAST4 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) STAB-RAST5 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) STAB-RAST6 NO-ZERO CURRENCY T001-WAERS, SY-VLINE.
HOLD_BUKRS2 = STAB-BUKRS. "TONYC ISSUE #2500
ULINE.
FORMAT COLOR OFF.
TOTAL_RAST1 = STAB-RAST1 + TOTAL_RAST1.
TOTAL_RAST2 = STAB-RAST2 + TOTAL_RAST2.
TOTAL_RAST3 = STAB-RAST3 + TOTAL_RAST3.
TOTAL_RAST4 = STAB-RAST4 + TOTAL_RAST4.
TOTAL_RAST5 = STAB-RAST5 + TOTAL_RAST5.
TOTAL_RAST6 = STAB-RAST6 + TOTAL_RAST6.
TOTAL_RAST7 = STAB-RAST7 + TOTAL_RAST7.
ELSE.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF. "DEVK939546
IF INTENS = SPACE. "DEVK939546
FORMAT COLOR COL_NORMAL INTENSIFIED OFF. "DEVK939546
INTENS = 'X'. "DEVK939546
ELSE. "DEVK939546
FORMAT COLOR COL_NORMAL INTENSIFIED ON. "DEVK939546
INTENS = SPACE. "DEVK939546
ENDIF. "DEVK939546
WRITE: / SY-VLINE, PTAB-BUKRS, PTAB-GSBER, SY-VLINE, "DEVK939546
(14) PTAB-RAST1 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,"DEVK939546
(14) PTAB-RAST7 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,"DEVK939546
(14) PTAB-RAST2 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,"DEVK939546
(14) PTAB-RAST3 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,"DEVK939546
(14) PTAB-RAST4 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,"DEVK939546
(14) PTAB-RAST5 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,"DEVK939546
(14) PTAB-RAST6 NO-ZERO CURRENCY T001-WAERS, SY-VLINE."DEVK939546
TOTAL_RAST1 = STAB-RAST1 + TOTAL_RAST1.
TOTAL_RAST2 = STAB-RAST2 + TOTAL_RAST2.
TOTAL_RAST3 = STAB-RAST3 + TOTAL_RAST3.
TOTAL_RAST4 = STAB-RAST4 + TOTAL_RAST4.
TOTAL_RAST5 = STAB-RAST5 + TOTAL_RAST5.
TOTAL_RAST6 = STAB-RAST6 + TOTAL_RAST6.
TOTAL_RAST7 = STAB-RAST7 + TOTAL_RAST7.
ENDIF.
ENDLOOP. "DEVK939546
ULINE. "DEVK939546
IF P_KKBER = 'X'. "TONYC ISSUE #2500
IF P_CONV = 'X'. "tonyc issue #3047 begin
FORMAT COLOR OFF.
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
WRITE: SY-VLINE,
6 'TOTAL ', SY-VLINE.
ULINE.
FORMAT COLOR OFF.
WRITE: / SY-VLINE.
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
WRITE: 13 TOTAL_RAST1 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) TOTAL_RAST7 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) TOTAL_RAST2 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) TOTAL_RAST3 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) TOTAL_RAST4 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) TOTAL_RAST5 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) TOTAL_RAST6 NO-ZERO CURRENCY T001-WAERS, SY-VLINE.
ULINE.
ENDIF. "tonyc issue #3047 end
ELSE.
IF P_CONV = 'X'.
FORMAT COLOR OFF.
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
WRITE: SY-VLINE,
6 'TOTAL ', SY-VLINE.
ULINE.
FORMAT COLOR OFF.
WRITE: / SY-VLINE.
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
WRITE: 13 TOTAL_RAST1 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) TOTAL_RAST7 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) TOTAL_RAST2 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) TOTAL_RAST3 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) TOTAL_RAST4 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) TOTAL_RAST5 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) TOTAL_RAST6 NO-ZERO CURRENCY T001-WAERS, SY-VLINE.
ULINE.
ENDIF.
ENDIF.
SKIP 1. "DEVK939546
ENDFORM. "DEVK939546
*& Form GET_KNKK_INFO
text
--> p1 text
<-- p2 text
FORM GET_KNKK_INFO.
CLEAR: G_WAERS,
G_KLIMK_TXT,
KNKK-KLIMK.
get credit control area (KKBER) for comp code (BUKRS)
SELECT SINGLE KLIMK
INTO KNKK-KLIMK
FROM KNKK
WHERE KUNNR = KNA1-KUNNR AND
KKBER = T001-KKBER.
IF SY-SUBRC = 0.
get currency for cred ctrl area
CLEAR IT_T014.
READ TABLE IT_T014 WITH KEY KKBER = T001-KKBER BINARY SEARCH.
G_WAERS = IT_T014-WAERS.
WRITE KNKK-KLIMK TO G_KLIMK_TXT CURRENCY G_WAERS.
ENDIF.
ENDFORM. " GET_KNKK_INFO
*& Form SELECT_KNKK
text
-->P_KKBER Credit Limit Controlling Area
<--P_FOUND_KNKK Indicates if record found
FORM SELECT_KNKK USING P_KKBER
CHANGING P_FOUND_KNKK.
CLEAR: G_WAERS,
G_KLIMK_TXT,
KNKK-KLIMK.
SELECT SINGLE KLIMK
INTO KNKK-KLIMK
FROM KNKK
WHERE KUNNR = KNA1-KUNNR AND
KKBER = P_KKBER.
IF SY-SUBRC = 0.
P_FOUND_KNKK = C_TRUE.
get currency for cred ctrl area
CLEAR IT_T014.
READ TABLE IT_T014 WITH KEY KKBER = P_KKBER BINARY SEARCH.
G_WAERS = IT_T014-WAERS.
WRITE KNKK-KLIMK TO G_KLIMK_TXT CURRENCY G_WAERS.
ELSE.
P_FOUND_KNKK = C_FALSE.
ENDIF.
ENDFORM. " SELECT_KNKK
*& Form GET_CUST_CONTACT & PHONE NUMBER
FORM GET_CUST_CONTACT.
CLEAR KNVK.
C_CREDIT_ABTNR = '0003'. "look for contact in credit dept
SELECT NAME1
NAMEV
TELF1
INTO (KNVK-NAME1,
KNVK-NAMEV,
KNVK-TELF1)
FROM KNVK
WHERE KUNNR = KNA1-KUNNR AND
ABTNR = C_CREDIT_ABTNR.
ENDSELECT.
If there wasn't a contact person for the credit dept, then just
pull up the first contact info we find regardless of dept
IF SY-SUBRC <> 0.
CLEAR KNVK.
SELECT NAME1
NAMEV
TELF1
INTO (KNVK-NAME1,
KNVK-NAMEV,
KNVK-TELF1)
FROM KNVK
WHERE KUNNR = KNA1-KUNNR.
IF SY-SUBRC = 0.
EXIT.
ENDIF.
ENDSELECT.
ELSE.
EXIT.
ENDIF. "not contact found in credit dept.
ENDFORM. " GET_CUST_CONTACT
*& Form LOAD_T014
FORM LOAD_T014.
SELECT *
INTO TABLE IT_T014
FROM T014.
SORT IT_T014.
ENDFORM. " LOAD_T014
*& Form WRITE_CUST_INFO "TONYC
text moved code and created a form. for cleaner code "TONYC
--> p1 text
<-- p2 text
FORM WRITE_CUST_INFO.
IF NOT REPORT_TYPE = 'super rep'.
IF SY-TABIX > 1.
ULINE.
ENDIF.
ENDIF.
CONCATENATE GTAB-NAMEV "JAM
GTAB-CONT_NAME1
INTO G_CONT_NAME
SEPARATED BY SPACE.
FORMAT COLOR COL_TOTAL INTENSIFIED OFF.
IF REPORT_TYPE = 'super rep'.
IF GTAB-T_IND NE 'X'.
WRITE: / GTAB-KUNNR, GTAB-NAME1, GTAB-ORT01, GTAB-REGIO, GTAB-LAND1,
"g_cont_name,
132 ONEBYTE.
ELSE.
WRITE: / GTAB_LINES-KUNNR, GTAB_LINES-NAME1, GTAB_LINES-ORT01, GTAB_LINES-REGIO, GTAB_LINES-LAND1,
"g_cont_name,
132 ONEBYTE.
ENDIF.
WRITE: /21 onebyte, 12 gtab-name2, 45 gtab-ort01,
gtab-telf1, "gtab-klimk_txt, gtab-waers.
132 onebyte.
ELSE.
WRITE: / GTAB-KUNNR, GTAB-NAME1, GTAB-ORT01, GTAB-REGIO, GTAB-LAND1,
"g_cont_name, "JAM
132 ONEBYTE.
WRITE: /11 onebyte, 12 gtab-name2, 45 gtab-ort01,
gtab-telf1, "gtab-klimk_txt, gtab-waers, "JAM
132 onebyte.
ENDIF.
ENDFORM. " WRITE_CUST_INFO
*& Form GET_AND_WRITE_SUPERINFO
text
--> p1 text
<-- p2 text
FORM GET_AND_WRITE_SUPERINFO.
ULINE.
IF GTAB-T_IND NE 'X'.
SELECT SINGLE NAME1 FROM KNA1 INTO SUPER_NAME "TONYC
WHERE KUNNR = GTAB-SUPER. "TONYC
SELECT SINGLE NAME1 FROM KNA1 INTO REP_NAME "TONYC
WHERE KUNNR = GTAB-REP. "TONYC
CONCATENATE SUPER_NAME REP_NAME INTO REPS_INFO "TONYC
SEPARATED BY BACKSLASH. "TONYC
FORMAT COLOR COL_TOTAL INTENSIFIED. "TONYC
WRITE:/ GTAB-SUPER, '/', "TONYC
GTAB-REP, "TONYC
25 REPS_INFO, 132 ONEBYTE. "TONYC
ELSE.
SELECT SINGLE NAME1 FROM KNA1 INTO SUPER_NAME
WHERE KUNNR = GTAB_LINES-SUPER.
SELECT SINGLE NAME1 FROM KNA1 INTO REP_NAME
WHERE KUNNR = GTAB_LINES-REP.
CONCATENATE SUPER_NAME REP_NAME INTO REPS_INFO
SEPARATED BY BACKSLASH.
FORMAT COLOR COL_TOTAL INTENSIFIED.
WRITE:/ GTAB_LINES-SUPER, '/',
GTAB_LINES-REP,
25 REPS_INFO, 132 ONEBYTE.
ENDIF.
ENDFORM. " GET_AND_WRITE_SUPERINFO
*& Form GET_AND_WRITE_REPINFO
text
--> p1 text
<-- p2 text
FORM GET_AND_WRITE_REPINFO.
ULINE.
SELECT SINGLE NAME1 FROM KNA1 INTO REP_NAME
WHERE KUNNR = GTAB-REP.
FORMAT COLOR COL_TOTAL INTENSIFIED.
WRITE:/ GTAB-REP,
25 REP_NAME, 132 ONEBYTE.
ENDFORM. " GET_AND_WRITE_REPINFO
*& Form WRITE_DETAIL
text
--> p1 text
<-- p2 text
FORM WRITE_DETAIL.
clear z_description. "TONYC #2216
move GTAB-KLIMK_TXT to z_hold_limit.
IF z_hold_limit = 400.
z_description = 'COD/Check'.
elseif z_hold_limit = 500.
z_description = 'COD/Cash'.
elseif z_hold_limit = 600.
z_description = 'Need Dealer Agree'.
elseif z_hold_limit = 700.
z_description = 'Need PDCs'.
elseif z_hold_limit = 800.
z_description = 'Need Fin Statements'.
elseif z_hold_limit = 900.
z_description = 'Past Due Balance'.
elseif z_hold_limit = 1000.
z_description = 'Miracle?'.
endif. "TONYC #2216
MOVE GTAB-GSBER TO T001-WAERS.
FORMAT COLOR COL_TOTAL INTENSIFIED OFF.
IF HOLD_KUNNR2 <> GTAB-KUNNR. "TONYC
IF REPORT_TYPE = 'super rep'.
WRITE: /3 ONEBYTE, GTAB-BUKRS.
WRITE: 92 gtab-klimk_txt, gtab-waers, 132 onebyte. "TONYC
WRITE: 92 gtab-klimk_txt, z_description,132 onebyte."TONYC #2500
ELSE.
WRITE: / ONEBYTE, GTAB-BUKRS.
WRITE: 92 gtab-klimk_txt, z_description,132 onebyte."TONYC #2500
WRITE: 92 gtab-klimk_txt, gtab-waers, 132 onebyte. "TONYC
ENDIF.
ENDIF.
FORMAT COLOR COL_TOTAL INTENSIFIED OFF.
IF P_KKBER = 'X'. "TONYC ISSUE# 2500
CLEAR HOLD_KKBER_DESC.
SELECT SINGLE KKBTX INTO HOLD_KKBER_DESC FROM T014T
WHERE KKBER = GTAB-KKBER AND
SPRAS = 'E'.
IF SY-SUBRC <> '0'.
HOLD_KKBER_DESC = 'Undetermined'.
ENDIF.
SELECT SINGLE KLIMK CTLPC
INTO (HOLD_KLIMK, HOLD-CTLPC)
FROM KNKK
WHERE KUNNR = GTAB-KUNNR AND
KKBER = GTAB-KKBER.
SELECT SINGLE RTEXT INTO HOLD-CTLPC-TEXT FROM T691T
WHERE SPRAS = 'EN' AND
CTLPC = HOLD-CTLPC AND
KKBER = GTAB-KKBER.
WRITE HOLD_KLIMK TO HOLD_KLIMK2 CURRENCY GTAB-WAERS.
WRITE: /7 GTAB-KKBER,
12 HOLD_KKBER_DESC,
80 HOLD_KLIMK2,
103 GTAB-GSBER,
108 HOLD-CTLPC-TEXT.
ENDIF. "TONYC ISSUE# 2500
FORMAT COLOR COL_NORMAL INTENSIFIED ON. "TONYC
MOVE STAB-GSBER TO T001-WAERS.
CLEAR HOLD_NAME.
SELECT SINGLE NAME1 FROM KNA1 INTO HOLD_NAME
WHERE KUNNR = GTAB-FILKD.
WRITE: /15 GTAB-FILKD,
30 HOLD_NAME.
IF GTAB-T_IND NE 'X'.
WRITE: /15(14) GTAB-RAST1 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB-RAST7 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB-RAST2 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB-RAST3 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB-RAST4 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB-RAST5 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB-RAST6 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
132 ONEBYTE.
ELSE.
IF REPORT_TYPE NE 'super rep'.
LOOP AT GTAB_LINES WHERE KUNNR = GTAB-KUNNR.
WRITE: / GTAB_LINES-SUPER, ONEBYTE,
15(14) GTAB_LINES-RAST1 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB_LINES-RAST7 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB_LINES-RAST2 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB_LINES-RAST3 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB_LINES-RAST4 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB_LINES-RAST5 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB_LINES-RAST6 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
132 ONEBYTE.
ENDLOOP.
ELSE.
WRITE: / GTAB_LINES-SUPER, ONEBYTE,
15(14) GTAB_LINES-RAST1 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB_LINES-RAST7 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB_LINES-RAST2 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB_LINES-RAST3 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB_LINES-RAST4 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB_LINES-RAST5 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB_LINES-RAST6 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
132 ONEBYTE.
ENDIF.
ENDIF.
HOLD_BUKRS = GTAB-BUKRS. "Tonyc
HOLD_KUNNR2 = GTAB-KUNNR. "TONYC
HOLD_KKBER = GTAB-KKBER. "TONYC ISSUE #2500
IF REPORT_TYPE = 'super rep' OR REPORT_TYPE = 'rep'. "DEVK939546
IF GTAB-T_IND NE 'X'.
MOVE-CORRESPONDING GTAB TO RTOT. "DEVK939546
COLLECT RTOT. "DEVK939546
ELSE.
MOVE-CORRESPONDING GTAB_LINES TO RTOT.
COLLECT RTOT.
ENDIF.
IF REPORT_TYPE = 'super rep'. "DEVK939546
IF GTAB-T_IND NE 'X'.
MOVE-CORRESPONDING GTAB TO STOT. "DEVK939546
COLLECT STOT. "DEVK939546
ELSE.
MOVE-CORRESPONDING GTAB_LINES TO STOT.
COLLECT STOT.
ENDIF.
ENDIF. "DEVK939546
ENDIF. "DEVK939546
ENDFORM. " WRITE_DETAIL
*& Form convert_values
text
-->P_STAB_RAST1 text
-->P_STAB_GSBER text
FORM CONVERT_VALUES USING P_STAB_RAST1 "tonyc issue #3047 begin
P_STAB-GSBER.
CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY'
EXPORTING
CLIENT = SY-MANDT
DATE = SY-DATUM
FOREIGN_AMOUNT = P_STAB_RAST1
FOREIGN_CURRENCY = P_STAB-GSBER
LOCAL_CURRENCY = 'USD'
RATE = 0
TYPE_OF_RATE = 'M'
READ_TCURR = 'X'
IMPORTING
EXCHANGE_RATE =
FOREIGN_FACTOR =
LOCAL_AMOUNT = P_STAB_RAST1
LOCAL_FACTOR =
EXCHANGE_RATEX =
FIXED_RATE =
DERIVED_RATE_TYPE =
EXCEPTIONS
NO_RATE_FOUND = 1
OVERFLOW = 2
NO_FACTORS_FOUND = 3
NO_SPREAD_FOUND = 4
DERIVED_2_TIMES = 5
OTHERS = 6 .
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. " convert_valuessolved
-
Passing Parameters in a URL to Reports - Need Help Urgently !
I have created Image Maps (content area) where I pass parameters in the URL as follows :
<area shape="rect" coords="335,66,528,83" href="http://townland:7778/pls/portal30/PORTAL30.RPT_SUMKWH.show_parms?meter=PMS 11BBA01">
<area shape="rect" coords="400,55,600,90" href="http://townland:7778/pls/portal30/PORTAL30.RPT_SUMKWH.show_parms?meter=PMS 11BBA02">
I am having a problem passing this meter parameter to the report [I am generating this report (RPT_SUMKWH) using SQL Query] :
I have tried the following :
1) I tried referencing this parameter in the 'Additional PL/SQL code, before displaying page' section of my Report as :- wwpro_api_parameters.get_value('meter', 'RPT_SUMKWH')
but this did not work (this made the package body invalid).
2) I then tried using the meter parameter as a bind variable in my SELECT Query of the Report, then, in the 'Customisation Form' section, I place :- wwpro_api_parameters.get_value('meter', 'RPT_SUMKWH') under Default Value, however, when I go back to my Image Map content area & ty to click on the URL, I get an error "Page does not display" .
How do I then pass this parameter to my report, where do I place the code to make the call for the parameter being passed from the Image Map URL in the content area??
AVDHi,
You will have to encode your parameter value. The problem is because of the spaces in the value. Whenever there any special
characters in the value it should be encoded.
example
select '<area shape="rect" coords="335,66,528,83" href="http://townland:7778/pls/portal30/PORTAL30.RPT_SUMKWH.show_parms?meter='||
<portal_schema>.wwutl_htf.url_encode('PMS 11BBA01')||'">pams</a>' url
from meters
The above is just an example. Please change the names to suit your requirements.
Thanks,
Sharmila -
hi friends i need help on classical reports,
sold-party,
material
sales and distrubitutation channel ,division,
incoming orders,order number,invoice ,credit,
i need sub totals and final total of invoice and each customer should display in new page .Hi
Use the Tables KNA1,VBAk,VBAP,VBRK and VBRP and design the report
see the sample report using KNA1,VBAK and VBAP.
REPORT ZTEJ_INTAB1 LINE-SIZE 103 LINE-COUNT 35(5) NO STANDARD PAGE
HEADING.
*TABLES DECLARATION
TABLES : KNA1, VBAK, VBAP.
*SELECT OPTIONS
SELECT-OPTIONS: CUST_NO FOR KNA1-KUNNR.
*INITIALIZATION
INITIALIZATION.
CUST_NO-LOW = '01'.
CUST_NO-HIGH = '5000'.
CUST_NO-SIGN = 'I'.
CUST_NO-OPTION = 'BT'.
APPEND CUST_NO.
*SELECTION SCREEN VALIDATION
AT SELECTION-SCREEN ON CUST_NO.
LOOP AT SCREEN.
IF CUST_NO-LOW < 1 OR CUST_NO-HIGH > 5000.
MESSAGE E001(ZTJ1).
ENDIF.
ENDLOOP.
*BASIC LIST SELECTION
START-OF-SELECTION.
SELECT KUNNR NAME1 ORT01 LAND1 INTO
(KNA1-KUNNR, KNA1-NAME1,KNA1-ORT01,KNA1-LAND1)
FROM KNA1
WHERE KUNNR IN CUST_NO.
WRITE:/1 SY-VLINE,
KNA1-KUNNR UNDER 'CUSTOMER NO.' HOTSPOT ON,
16 SY-VLINE,
KNA1-NAME1 UNDER 'NAME',
61 SY-VLINE,
KNA1-ORT01 UNDER 'CITY',
86 SY-VLINE,
KNA1-LAND1 UNDER 'COUNTRY',
103 SY-VLINE.
HIDE: KNA1-KUNNR.
ENDSELECT.
ULINE.
*SECONDARY LIST ACCESS
AT user-command.
IF SY-UCOMM = 'IONE'.
PERFORM SALES_ORD.
ENDIF.
IF SY-UCOMM = 'ITWO'.
PERFORM ITEM_DET.
ENDIF.
*TOP OF PAGE
TOP-OF-PAGE.
FORMAT COLOR 1.
WRITE : 'CUSTOMER DETAILS'.
FORMAT COLOR 1 OFF.
ULINE.
FORMAT COLOR 3.
WRITE : 1 SY-VLINE,
3 'CUSTOMER NO.',
16 SY-VLINE,
18 'NAME',
61 SY-VLINE,
63 'CITY',
86 SY-VLINE,
88 'COUNTRY',
103 SY-VLINE.
ULINE.
FORMAT COLOR 3 OFF.
*TOP OF PAGE FOR SECONDARY LISTS
TOP-OF-PAGE DURING LINE-SELECTION.
*TOP OF PAGE FOR 1ST SECONDARY LIST
IF SY-UCOMM = 'IONE'.
ULINE.
FORMAT COLOR 1.
WRITE : 'SALES ORDER DETAILS'.
ULINE.
FORMAT COLOR 1 OFF.
FORMAT COLOR 3.
WRITE : 1 SY-VLINE,
3 'CUSTOMER NO.',
16 SY-VLINE,
18 'SALES ORDER NO.',
40 SY-VLINE,
42 'DATE',
60 SY-VLINE,
62 'CREATOR',
85 SY-VLINE,
87 'DOC DATE',
103 SY-VLINE.
ULINE.
ENDIF.
FORMAT COLOR 3 OFF.
*TOP OF PAGE FOR 2ND SECONDARY LIST
IF SY-UCOMM = 'ITWO'.
ULINE.
FORMAT COLOR 1.
WRITE : 'ITEM DETAILS'.
ULINE.
FORMAT COLOR 1 OFF.
FORMAT COLOR 3.
WRITE : 1 SY-VLINE,
3 'SALES ORDER NO.',
40 SY-VLINE,
42 'SALES ITEM NO.',
60 SY-VLINE,
62 'ORDER QUANTITY',
103 SY-VLINE.
ULINE.
ENDIF.
FORMAT COLOR 3 OFF.
*END OF PAGE
END-OF-PAGE.
ULINE.
WRITE :'USER :',SY-UNAME,/,'DATE :', SY-DATUM, 85 'END OF PAGE:',
SY-PAGNO.
SKIP.
*& Form SALES_ORD
*& FIRST SECONDARY LIST FORM
FORM SALES_ORD .
SELECT KUNNR VBELN ERDAT ERNAM AUDAT INTO
(VBAK-KUNNR, VBAK-VBELN, VBAK-ERDAT, VBAK-ERNAM, VBAK-AUDAT)
FROM VBAK
WHERE KUNNR = KNA1-KUNNR.
WRITE:/1 SY-VLINE,
VBAK-KUNNR UNDER 'CUSTOMER NO.' HOTSPOT ON,
16 SY-VLINE,
VBAK-VBELN UNDER 'SALES ORDER NO.' HOTSPOT ON,
40 SY-VLINE,
VBAK-ERDAT UNDER 'DATE',
60 SY-VLINE,
VBAK-ERNAM UNDER 'CREATOR',
85 SY-VLINE,
VBAK-AUDAT UNDER 'DOC DATE',
103 SY-VLINE.
HIDE : VBAK-VBELN.
ENDSELECT.
ULINE.
ENDFORM. " SALES_ORD
*& Form ITEM_DET
*& SECOND SECONDARY LIST FORM
FORM ITEM_DET .
SELECT VBELN POSNR KWMENG INTO
(VBAP-VBELN, VBAP-POSNR, VBAP-KWMENG)
FROM VBAP
WHERE VBELN = VBAK-VBELN.
WRITE : /1 SY-VLINE,
VBAP-VBELN UNDER 'SALES ORDER NO.',
40 SY-VLINE,
VBAP-POSNR UNDER 'SALES ITEM NO.',
60 SY-VLINE,
VBAP-KWMENG UNDER 'ORDER QUANTITY',
103 SY-VLINE.
ENDSELECT.
ULINE.
ENDFORM. " ITEM_DET
REPORT demo_list_at_pf.
START-OF-SELECTION.
WRITE 'Basic List, Press PF5, PF6, PF7, or PF8'.
AT pf5.
PERFORM out.
AT pf6.
PERFORM out.
AT pf7.
PERFORM out.
AT pf8.
PERFORM out.
FORM out.
WRITE: 'Secondary List by PF-Key Selection',
/ 'SY-LSIND =', sy-lsind,
/ 'SY-UCOMM =', sy-ucomm.
ENDFORM.
After executing the program, the system displays the basic list. The user can press the function keys F5 , F6 , F7 , and F8 to create secondary lists. If, for example, the 14th key the user presses is F6 , the output on the displayed secondary list looks as follows:
Secondary List by PF-Key Selection
SY-LSIND = 14
SY-UCOMM = PF06
Example for AT USER-COMMAND.
REPORT demo_list_at_user_command NO STANDARD PAGE HEADING.
START-OF-SELECTION.
WRITE: 'Basic List',
/ 'SY-LSIND:', sy-lsind.
TOP-OF-PAGE.
WRITE 'Top-of-Page'.
ULINE.
TOP-OF-PAGE DURING LINE-SELECTION.
CASE sy-pfkey.
WHEN 'TEST'.
WRITE 'Self-defined GUI for Function Codes'.
ULINE.
ENDCASE.
AT LINE-SELECTION.
SET PF-STATUS 'TEST' EXCLUDING 'PICK'.
PERFORM out.
sy-lsind = sy-lsind - 1.
AT USER-COMMAND.
CASE sy-ucomm.
WHEN 'FC1'.
PERFORM out.
WRITE / 'Button FUN 1 was pressed'.
WHEN 'FC2'.
PERFORM out.
WRITE / 'Button FUN 2 was pressed'.
WHEN 'FC3'.
PERFORM out.
WRITE / 'Button FUN 3 was pressed'.
WHEN 'FC4'.
PERFORM out.
WRITE / 'Button FUN 4 was pressed'.
WHEN 'FC5'.
PERFORM out.
WRITE / 'Button FUN 5 was pressed'.
ENDCASE.
sy-lsind = sy-lsind - 1.
FORM out.
WRITE: 'Secondary List',
/ 'SY-LSIND:', sy-lsind,
/ 'SY-PFKEY:', sy-pfkey.
ENDFORM.
When you run the program, the system displays the following basic list with a the page header defined in the program:
You can trigger the AT LINE-SELECTION event by double-clicking a line. The system sets the status TEST and deactivates the function code PICK. The status TEST contains function codes FC1 to FC5. These are assigned to pushbuttons in the application toolbar. The page header of the detail list depends on the status.
Here, double-clicking a line no longer triggers an event. However, there is now an application toolbar containing five user-defined pushbuttons. You can use these to trigger the AT USER-COMMAND event. The CASE statement contains a different reaction for each pushbutton.
For each interactive event, the system decreases the SY-LSIND system field by one, thus canceling out the automatic increase. All detail lists now have the same level as the basic list and thus overwrite it. While the detail list is being created, SY-LSIND still has the value 1.
Reward points for useful Answers
Regards
Anji -
Need help in sorting a column in classic report
Hi I am trying to create and classic report and I need to do sorting on the columns. Also I am using a select list to filter the records in the column. When I am not using the select list the sorting is working but when I am using the selcet list and select the sort option then it is showing error. Can anyone help...
Thnaks,
RikSelect lists prior to v4 will sort on the return value. In v4, it sorts on the display value (as you're probably expecting). There's nothing really for you to fix here except if it's really important, see if you can get upgraded to v4.
-
Hi Experts,
I have made a classical report having delivery no, sales order no and shipment no and many other details. Now I want to make three hot keys in this i.e
Delivery no (VBELN)
Sales order no (VBELV)
and Shipment no (TKNUM)
I did coding like this
at LINE-SELECTION.
DATA: l_vbeln TYPE VBELN_VL,
l_vbelv type VBELV,
l_tknum type TKNUM.
get CURSOR FIELD likp-vbeln VALUE l_vbeln.
set PARAMETER ID 'VL' FIELD l_vbeln.
CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN.
get CURSOR FIELD lips-vbelv VALUE l_vbelv.
set PARAMETER ID 'AUN' FIELD l_vbeln.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
get CURSOR FIELD vttp-tknum VALUE l_tknum.
set PARAMETER ID 'TNR' FIELD l_tknum.
CALL TRANSACTION 'VT03N' AND SKIP FIRST SCREEN.
But I am facing a probelm in this:
Whichever hot key i am clicking,it's opening all the transaction with that key for exam say I am clicking vbeln with value 'A' it's first opening VL03N. After this when i am clicking back, It's opening VAL0 with same key A (It's shoing Invalid Sales order no) and after that it's opeing VT03N with the same key.
Please tell me how I can open only the trancation for which user is clicking.
Thanks a lot
Regards
KrishanHi,
Pl. check this sample code..may be it will help u.
*& Report Z_DEMO_JG
*& Download graphics from BDS
REPORT z_demo_jg.
data: i_mara type standard table of mara.
data: w_mara type mara.
data: i_vbak type standard table of vbak.
data: w_vbak type vbak.
start-of-selection.
select * from mara
into table i_mara
up to 10 rows.
select * from vbak
into table i_vbak
up to 10 rows.
loop at i_mara into w_mara.
write : / w_mara-matnr.
hide w_mara-matnr.
endloop.
loop at i_vbak into w_vbak.
write : / w_vbak-vbeln.
hide w_vbak-vbeln.
endloop.
clear : w_vbak,
w_mara.
at LINE-SELECTION.
if not w_vbak-vbeln is initial.
set PARAMETER ID 'VL' FIELD w_vbak-vbeln.
CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN.
clear w_vbak-vbeln.
endif.
if not w_mara-matnr is initial.
set PARAMETER ID 'MAT' FIELD w_mara-matnr.
CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
clear w_mara-matnr.
endif.
Regards,
JOy. -
Hi all,
I want to know how to write the code in calssical reporting to get field headngs.
In ALV means we use Field catalog merge FM, But in classical it is differnt.
I want one example program to get field catalog in classical Reporting out put,
My out put looks like XL sheet. I want to know how to get that grids in Classical reporting.
Regards,
sarathHi
Using Sy-Vline, and Sy-Uline we can design the Field catalog like Excel like output in the Classical reporting
see the sample code and the output
REPORT zfi_customer_ageing
NO STANDARD PAGE HEADING
LINE-COUNT 58
line-size 168
MESSAGE-ID zh_msg.
D A T A B A S E T A B L E S D E C L A R A T I O N
TABLES: kna1, " Customer Master (General)
t001, " Company Codes
rfpdo.
I N T E R N A L T A B L E S D E C L A R A T I O N S *
Internal Table for Customer Open Items Data
DATA: BEGIN OF int_bsid OCCURS 0,
kunnr LIKE bsid-kunnr, " Customer Number
name1 LIKE kna1-name1, " Customer Name
shkzg LIKE bsid-shkzg, " Dr/Cr Indicator
belnr LIKE bsid-belnr, " Document Number
xblnr LIKE bsid-xblnr, " Ref Doc No
blart LIKE bsid-blart, " Document Type
zfbdt LIKE bsid-zfbdt, " Base Line Date
zbd1t LIKE bsid-zbd1t, " Due date1
zbd2t LIKE bsid-zbd2t, " Due Date2
zbd3t LIKE bsid-zbd3t, " Due Date3
waers LIKE bsid-waers, " Currency
dmbtr LIKE bsid-dmbtr, " Amount in Local Curr
END OF int_bsid.
Internal Table for Amounts Sum Up Data
DATA: BEGIN OF int_final OCCURS 0,
kunnr LIKE bsid-kunnr, " Customer Number
name1 LIKE kna1-name1, " Customer Name
total1 LIKE bsid-dmbtr, " Amount in Local Curr
total2 LIKE bsid-dmbtr, " Amount in Local Curr
total3 LIKE bsid-dmbtr, " Amount in Local Curr
total4 LIKE bsid-dmbtr, " Amount in Local Curr
total5 LIKE bsid-dmbtr, " Amount in Local Curr
total6 LIKE bsid-dmbtr, " Amount in Local Curr
total LIKE bsid-dmbtr, " Amount in Local Curr
END OF int_final.
D A T A D E C L A R A T I O N S
DATA : v_flag, " Flag
v_gtotal1 LIKE bsid-dmbtr, " Amount Totals
v_gtotal2 LIKE bsid-dmbtr, " Amount Totals
v_gtotal3 LIKE bsid-dmbtr, " Amount Totals
v_gtotal4 LIKE bsid-dmbtr, " Amount Totals
v_gtotal5 LIKE bsid-dmbtr, " Amount Totals
v_gtotal6 LIKE bsid-dmbtr, " Amount Totals
v_gtotal LIKE bsid-dmbtr, " Amount Totals
v_subtotal1 LIKE bsid-dmbtr, " Amount Totals
v_subtotal2 LIKE bsid-dmbtr, " Amount Totals
v_subtotal3 LIKE bsid-dmbtr, " Amount Totals
v_subtotal4 LIKE bsid-dmbtr, " Amount Totals
v_subtotal5 LIKE bsid-dmbtr, " Amount Totals
v_subtotal6 LIKE bsid-dmbtr, " Amount Totals
v_subtotal LIKE bsid-dmbtr, " Amount Totals
v_date LIKE bsid-zfbdt, " Due Date
v_tage1(4), " Age 30 days
v_tage2(4), " Age 60 days
v_tage3(4), " Age 90 days
v_fir(15), " Column Text1
v_sec(15), " Column Text2
v_thir(15), " Column Text3
v_four(17), " Column Text4
v_fidd(4), " Days field1
v_sedd(4), " Days field2
v_thdd(4), " Days field3
v_fodd(4), " Days field4
v_str TYPE SY-LISEL, " String
v_str1(11), " String
v_tage(3), " String
v_date1(10). " Date field
R A N G E D E C L A R A T I O N S
RANGES: r_date1 FOR bsid-zfbdt, " Date Range 1
r_date2 FOR bsid-zfbdt, " Date Range 2
r_date3 FOR bsid-zfbdt, " Date Range 3
r_date4 FOR bsid-zfbdt. " Date Range 4
S E L E C T I O N S C R E E N *
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_kunnr FOR kna1-kunnr. "Customer account
PARAMETERS: p_bukrs LIKE t001-bukrs. "Co. Code
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS: p_allgst LIKE rfpdo-allgstid OBLIGATORY DEFAULT sy-datum.
"Open items at key date
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
PARAMETERS: p_tage1 LIKE rfpdo1-allgfael DEFAULT '30',
p_tage2 LIKE rfpdo1-allgfael DEFAULT '60',
p_tage3 LIKE rfpdo1-allgfael DEFAULT '90',
p_tage4 LIKE rfpdo1-allgfael DEFAULT '120'.
SELECTION-SCREEN END OF BLOCK b3.
A T S E L E C T I O N S C R E E N *
AT SELECTION-SCREEN.
Validate the screen fields
PERFORM validate_flds.
S T A R T O F S E L E C T I O N *
START-OF-SELECTION.
Fetch main data
PERFORM fetch_data.
T O P O F P A G E
Header
TOP-OF-PAGE.
PERFORM header.
E N D O F P A G E
Footer
END-OF-PAGE.
ULINE.
T O P O F P A G E D U R I N G L I N E S E L E C T I O N *
Top of Page in Secondary List
TOP-OF-PAGE DURING LINE-SELECTION.
PERFORM header1.
A T L I N E S E L E C T I O N *
AT LINE-SELECTION.
Perform Line Selections
PERFORM line_selection.
E N D O F S E L E C T I O N
END-OF-SELECTION.
List generation
PERFORM basic_list.
*& Form validate_flds
Validation of Selection Screen fields
FORM validate_flds .
Validate Customer Code
CLEAR kna1-kunnr.
SELECT kunnr UP TO 1 ROWS
INTO kna1-kunnr
FROM kna1
WHERE kunnr IN s_kunnr AND
spras = sy-langu.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e000 WITH 'Invalid Customer Code range'(023).
ENDIF.
Validate Company Code
CLEAR t001-bukrs.
SELECT bukrs UP TO 1 ROWS
INTO t001-bukrs
FROM t001
WHERE bukrs = p_bukrs AND
spras = sy-langu.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e021. " Invalid Company Code range
ENDIF.
IF ( p_tage1 > p_tage2 ) OR ( p_tage1 > p_tage3 ) OR
( p_tage1 > p_tage4 ).
MESSAGE e999 WITH 'Column 1 greater'(004)
'than Column# 2 or 3 or 4'(005).
ENDIF.
*column 2
IF ( p_tage2 > p_tage3 ) OR ( p_tage1 > p_tage4 ).
MESSAGE e999 WITH 'Column 2 greater'(006)
'than Column# 3 or 4'(007).
ENDIF.
*column3
IF ( p_tage3 > p_tage4 ).
MESSAGE e999 WITH 'Column 3 greater'(008)
'than Column#4'(009).
ENDIF.
ENDFORM. " validate_flds
*& Form fetch_data
Fetching Data from Database Tables
FORM fetch_data .
Date Range Population
r_date1-sign = 'I'.
r_date1-option = 'BT'.
r_date1-low = p_allgst.
r_date1-high = r_date1-low + p_tage1.
APPEND r_date1.
r_date2-sign = 'I'.
r_date2-option = 'BT'.
r_date2-low = r_date1-high + 1.
r_date2-high = r_date1-low + p_tage2.
APPEND r_date2.
r_date3-sign = 'I'.
r_date3-option = 'BT'.
r_date3-low = r_date2-high + 1.
r_date3-high = r_date1-low + p_tage3.
APPEND r_date3.
r_date4-sign = 'I'.
r_date4-option = 'BT'.
r_date4-low = r_date3-high + 1.
r_date4-high = r_date1-low + p_tage4.
APPEND r_date4.
Select the Customer Open Items data from bsid
SELECT l~kunnr
l1~name1
b~waers
b~dmbtr
b~zfbdt
b~zbd1t
b~zbd2t
b~zbd3t
b~belnr
b~xblnr
b~shkzg
b~blart
INTO CORRESPONDING FIELDS OF TABLE int_bsid
FROM knb1 AS l INNER JOIN kna1 AS l1
ON lkunnr = l1kunnr
INNER JOIN bsid AS b
ON lkunnr = bkunnr AND
lbukrs = bbukrs
WHERE l~kunnr IN s_kunnr AND
l~bukrs = p_bukrs and
b~zfbdt le p_allgst.
IF SY-SUBRC <> 0.
MESSAGE i000 WITH 'No Data found'(027).
ENDIF.
Removing the date limit to get the due items in the past
DELETE int_bsid WHERE
( blart NE 'RE' AND blart NE 'KR' ) OR
shkzg NE 'H'.
SORT int_bsid BY kunnr.
ENDFORM. " fetch_data
*& Form header
Display the Report Columns
FORM header .
v_tage1 = p_tage1 + 1.
v_tage2 = p_tage2 + 1.
v_tage3 = p_tage3 + 1.
v_fidd = p_tage1.
v_sedd = p_tage2.
v_thdd = p_tage3.
v_fodd = p_tage4.
MOVE v_fodd0(4) TO v_fodd1(3).
v_fodd+0(1) = space.
CONCATENATE '1 to'(010) v_fidd INTO v_fir.
CONCATENATE v_tage1 ' to '(011) v_sedd INTO v_sec.
CONCATENATE v_tage2 ' to '(011) v_thdd INTO v_thir.
CONCATENATE v_tage3 ' to '(011) space v_fodd INTO v_four.
Standard header
clear: v_date1, v_str, v_str1, v_tage.
write p_allgst to v_date1.
Move p_tage4 to v_tage.
concatenate '>' v_tage text-025 into v_str1.
concatenate
'Summary of Ageing Analysis for Customer Open Invoices as on'(013)
v_date1 into v_str separated by space.
CALL FUNCTION 'Z_STANDARD_HEADER'
EXPORTING
title1 = 'Saudi International Petrochemical Company'(012)
title2 = v_str.
FORMAT COLOR OFF.
WRITE : /1(168) sy-uline.
FORMAT COLOR 1 INTENSIFIED.
WRITE :/1 sy-vline, 13 sy-vline, 49 sy-vline,
50(101) 'Invoices Due For(In Days)'(014) CENTERED,
151 sy-vline, 168 sy-vline .
WRITE :/1 sy-vline, 2(11) 'Customer#'(015) CENTERED,
13 sy-vline ,14(35) 'Customer Name'(016) CENTERED,
49 sy-vline,
50(101) sy-uline,151 sy-vline,
152(16) 'Total'(017) CENTERED,
168 sy-vline.
WRITE : /1 sy-vline,13 sy-vline, 49 sy-vline,
50(16) v_fir CENTERED, 66 sy-vline,
67(16) v_sec CENTERED, 83 sy-vline,
84(16) v_thir CENTERED, 100 sy-vline,
101(16) v_four CENTERED, 117 sy-vline,
118(16) v_str1 centered, 134 sy-vline,
135(16) 'Already Overdue'(018) CENTERED,151 sy-vline,
168 sy-vline.
FORMAT COLOR OFF.
WRITE : /1(168) sy-uline.
ENDFORM. " header
*& Form basic_list
Display the Basic List
FORM basic_list .
NEW-PAGE LINE-SIZE 168.
LOOP AT int_bsid.
CLEAR v_date.
IF int_bsid-zbd3t <> ' '.
v_date = int_bsid-zfbdt + int_bsid-zbd3t.
ELSE.
IF int_bsid-zbd2t <> ' '.
v_date = int_bsid-zfbdt + int_bsid-zbd2t.
ELSE.
v_date = int_bsid-zfbdt + int_bsid-zbd1t.
ENDIF.
ENDIF.
IF int_bsid-zbd1t = ' '.
v_date = int_bsid-zfbdt.
ENDIF.
IF v_date IN r_date1.
int_final-total1 = int_final-total1 + int_bsid-dmbtr.
ELSEIF v_date IN r_date2.
int_final-total2 = int_final-total2 + int_bsid-dmbtr.
ELSEIF v_date IN r_date3.
int_final-total3 = int_final-total3 + int_bsid-dmbtr.
ELSEIF v_date IN r_date4.
int_final-total4 = int_final-total4 + int_bsid-dmbtr.
ELSEif v_date > r_date4-high.
int_final-total5 = int_final-total5 + int_bsid-dmbtr.
ELSEif v_date < p_allgst.
int_final-total6 = int_final-total6 + int_bsid-dmbtr.
ENDIF.
AT END OF kunnr.
v_flag = 1.
ENDAT.
IF v_flag = 1.
int_final-kunnr = int_bsid-kunnr.
int_final-name1 = int_bsid-name1.
int_final-total = int_final-total1 + int_final-total2 +
int_final-total3 + int_final-total4 + int_final-total5 +
int_final-total6.
APPEND int_final.
v_gtotal1 = v_gtotal1 + int_final-total1.
v_gtotal2 = v_gtotal2 + int_final-total2.
v_gtotal3 = v_gtotal3 + int_final-total3.
v_gtotal4 = v_gtotal4 + int_final-total4.
v_gtotal5 = v_gtotal5 + int_final-total5.
v_gtotal6 = v_gtotal6 + int_final-total6.
v_gtotal = v_gtotal + int_final-total.
WRITE: /1 sy-vline,
2 int_final-kunnr COLOR 4 INTENSIFIED ON,
13 sy-vline,
14 int_final-name1 COLOR 4 INTENSIFIED ON,
49 sy-vline.
DATA : v_rem.
v_rem = sy-tabix MOD 2.
IF v_rem NE 0.
FORMAT COLOR 2 INTENSIFIED.
WRITE : 50 int_final-total1 CURRENCY int_bsid-waers,
66 sy-vline,
67 int_final-total2 CURRENCY int_bsid-waers,
83 sy-vline,
84 int_final-total3 CURRENCY int_bsid-waers,
100 sy-vline,
101 int_final-total4 CURRENCY int_bsid-waers,
117 sy-vline,
118 int_final-total5 CURRENCY int_bsid-waers,
134 sy-vline,
135 int_final-total6 CURRENCY int_bsid-waers,
151 sy-vline,
152 int_final-total CURRENCY int_bsid-waers,
168 sy-vline.
ELSE.
WRITE : 50 int_final-total1 CURRENCY int_bsid-waers,
66 sy-vline,
67 int_final-total2 CURRENCY int_bsid-waers,
83 sy-vline,
84 int_final-total3 CURRENCY int_bsid-waers,
100 sy-vline,
101 int_final-total4 CURRENCY int_bsid-waers,
117 sy-vline,
118 int_final-total5 CURRENCY int_bsid-waers,
134 sy-vline,
135 int_final-total6 CURRENCY int_bsid-waers,
151 sy-vline,
152 int_final-total CURRENCY int_bsid-waers,
168 sy-vline.
ENDIF.
FORMAT COLOR OFF.
HIDE int_final.
CLEAR int_final.
v_flag = 0.
ENDIF.
AT LAST.
WRITE : /1(168) sy-uline.
FORMAT COLOR 3 INTENSIFIED.
WRITE : /1 sy-vline, 2(47) 'GRAND TOTAL'(022) CENTERED,
49 sy-vline, 50 v_gtotal1 CURRENCY int_bsid-waers,
66 sy-vline, 67 v_gtotal2 CURRENCY int_bsid-waers,
83 sy-vline, 84 v_gtotal3 CURRENCY int_bsid-waers,
100 sy-vline,101 v_gtotal4 CURRENCY int_bsid-waers,
117 sy-vline,118 v_gtotal5 CURRENCY int_bsid-waers,
134 sy-vline,135 v_gtotal6 CURRENCY int_bsid-waers,
151 sy-vline,152 v_gtotal CURRENCY int_bsid-waers,
168 sy-vline.
HIDE : v_gtotal1,
v_gtotal2,
v_gtotal3,
v_gtotal4,
v_gtotal5,
v_gtotal6,
v_gtotal.
ENDAT.
FORMAT COLOR OFF.
ENDLOOP.
WRITE : /1(168) sy-uline.
ENDFORM. " basic_list
*& Form line_selection
When double clicked on the line display the seconday list
FORM line_selection .
NEW-PAGE LINE-SIZE 206.
Sy-lsind = 1.
DATA : v_rem,v_cnt LIKE sy-tabix.
v_cnt = 0.
SORT int_bsid BY belnr zfbdt.
LOOP AT int_bsid WHERE kunnr EQ int_final-kunnr.
v_rem = v_cnt MOD 2.
CLEAR v_date.
IF int_bsid-zbd3t <> ' '.
v_date = int_bsid-zfbdt + int_bsid-zbd3t.
ELSE.
IF int_bsid-zbd2t <> ' '.
v_date = int_bsid-zfbdt + int_bsid-zbd2t.
ELSE.
v_date = int_bsid-zfbdt + int_bsid-zbd1t.
ENDIF.
ENDIF.
IF int_bsid-zbd1t = ' '.
v_date = int_bsid-zfbdt.
ENDIF.
IF v_rem NE 0.
format color 2 intensified.
WRITE :/1 sy-vline, 2 int_bsid-belnr,
12 sy-vline,13 int_bsid-kunnr,
23 sy-vline,24 int_bsid-name1,
59 sy-vline,60 int_bsid-xblnr,
76 sy-vline,77 int_bsid-zfbdt,
87 sy-vline.
WRITE : 104 sy-vline,121 sy-vline,
138 sy-vline,155 sy-vline,
172 sy-vline, 189 sy-vline,
190 int_bsid-dmbtr CURRENCY int_bsid-waers,
206 sy-vline.
IF v_date IN r_date1.
v_subtotal1 = v_subtotal1 + int_bsid-dmbtr.
WRITE : 88 int_bsid-dmbtr CURRENCY int_bsid-waers.
ELSEIF v_date IN r_date2.
v_subtotal2 = v_subtotal2 + int_bsid-dmbtr.
WRITE : 105 int_bsid-dmbtr CURRENCY int_bsid-waers.
ELSEIF v_date IN r_date3.
v_subtotal3 = v_subtotal3 + int_bsid-dmbtr.
WRITE : 122 int_bsid-dmbtr CURRENCY int_bsid-waers.
ELSEIF v_date IN r_date4.
v_subtotal4 = v_subtotal4 + int_bsid-dmbtr.
WRITE : 139 int_bsid-dmbtr CURRENCY int_bsid-waers.
ELSEif v_date > r_date4-high.
v_subtotal5 = v_subtotal5 + int_bsid-dmbtr.
WRITE : 156 int_bsid-dmbtr CURRENCY int_bsid-waers.
ELSEif v_date < p_allgst.
v_subtotal6 = v_subtotal6 + int_bsid-dmbtr.
WRITE : 173 int_bsid-dmbtr CURRENCY int_bsid-waers.
ENDIF.
format color off.
ELSE.
WRITE :/1 sy-vline, 2 int_bsid-belnr,
12 sy-vline,13 int_bsid-kunnr,
23 sy-vline,24 int_bsid-name1,
59 sy-vline,60 int_bsid-xblnr,
76 sy-vline,77 int_bsid-zfbdt,
87 sy-vline.
WRITE : 104 sy-vline,121 sy-vline,
138 sy-vline,155 sy-vline,
172 sy-vline,189 sy-vline,
190 int_bsid-dmbtr CURRENCY int_bsid-waers,
206 sy-vline.
IF v_date IN r_date1.
v_subtotal1 = v_subtotal1 + int_bsid-dmbtr.
WRITE : 88 int_bsid-dmbtr CURRENCY int_bsid-waers.
ELSEIF v_date IN r_date2.
v_subtotal2 = v_subtotal2 + int_bsid-dmbtr.
WRITE : 105 int_bsid-dmbtr CURRENCY int_bsid-waers.
ELSEIF v_date IN r_date3.
v_subtotal3 = v_subtotal3 + int_bsid-dmbtr.
WRITE : 122 int_bsid-dmbtr CURRENCY int_bsid-waers.
ELSEIF v_date IN r_date4.
v_subtotal4 = v_subtotal4 + int_bsid-dmbtr.
WRITE : 139 int_bsid-dmbtr CURRENCY int_bsid-waers.
ELSEif v_date > r_date4-high.
v_subtotal5 = v_subtotal5 + int_bsid-dmbtr.
WRITE : 156 int_bsid-dmbtr CURRENCY int_bsid-waers.
ELSEif v_date < p_allgst.
v_subtotal6 = v_subtotal6 + int_bsid-dmbtr.
WRITE : 173 int_bsid-dmbtr CURRENCY int_bsid-waers.
ENDIF.
ENDIF.
FORMAT COLOR OFF.
v_cnt = v_cnt + 1.
ENDLOOP.
WRITE : /1(206) sy-uline.
v_subtotal = v_subtotal1 + v_subtotal2 + v_subtotal3
+ v_subtotal4 + v_subtotal5 + v_subtotal6.
FORMAT COLOR 3 INTENSIFIED.
WRITE : /1 sy-vline,
2(85) 'Total'(017) CENTERED CURRENCY int_bsid-waers ,
87 sy-vline,
88 v_subtotal1 CURRENCY int_bsid-waers,
104 sy-vline,
105 v_subtotal2 CURRENCY int_bsid-waers,
121 sy-vline,
122 v_subtotal3 CURRENCY int_bsid-waers,
138 sy-vline,
139 v_subtotal4 CURRENCY int_bsid-waers,
155 sy-vline,
156 v_subtotal5 CURRENCY int_bsid-waers,
172 sy-vline,
173 v_subtotal6 CURRENCY int_bsid-waers,
189 sy-vline,
190 v_subtotal CURRENCY int_bsid-waers,
206 sy-vline.
FORMAT COLOR OFF.
WRITE : /1(206) sy-uline.
CLEAR : v_subtotal,v_subtotal1,v_subtotal2,v_subtotal3,
v_subtotal4,v_subtotal5,v_gtotal1,v_gtotal2,v_gtotal3,
v_gtotal4, v_gtotal5,v_gtotal,v_subtotal6,v_gtotal6.
ENDFORM. " line_selection
*& Form header1
Secondary List Header
FORM header1 .
Standard header
clear: v_date1, v_str, v_str1, v_tage.
write p_allgst to v_date1.
Move p_tage4 to v_tage.
concatenate '>' v_tage text-025 into v_str1.
concatenate
'Details of Ageing Analysis for Customer Open Invoices as on'(024)
v_date1 into v_str separated by space.
CALL FUNCTION 'Z_STANDARD_HEADER'
EXPORTING
title1 = 'Saudi International Petrochemical Company'(012)
title2 = v_str.
FORMAT COLOR 1 intensified.
WRITE :/1(206) sy-uline.
WRITE :/1 sy-vline,12 sy-vline ,
23 sy-vline,59 sy-vline,76 sy-vline,87 sy-vline,
88(101) 'Invoices Due For(In Days)'(014) CENTERED,
189 sy-vline,206 sy-vline.
WRITE : /1 sy-vline, 2(10) 'Doc Number'(021) CENTERED,
12 sy-vline, 13(10) 'Customer#'(015) CENTERED,
23 sy-vline, 24(35) 'Customer Name'(016) CENTERED,
59 sy-vline, 60(16) 'Ref invoice#'(019) CENTERED,
76 sy-vline, 77(10) 'Inv dt'(020) CENTERED,
87 sy-vline, 88(101) sy-uline,
189 sy-vline,190(16) 'Total'(017) CENTERED,
206 sy-vline.
WRITE : /1 sy-vline, 12 sy-vline,
23 sy-vline,59 sy-vline,
76 sy-vline,87 sy-vline,
88(16) v_fir CENTERED, 104 sy-vline,
105(16) v_sec CENTERED, 121 sy-vline,
122(16) v_thir CENTERED, 138 sy-vline,
139(16) v_four CENTERED, 155 sy-vline,
156(16) v_str1 CENTERED,
172 sy-vline,
173(16) 'Already Overdue'(018) CENTERED,
189 sy-vline,
206 sy-vline.
format color off.
WRITE : /1(206) sy-uline.
ENDFORM. " header1
<b>Reward points for useful Answers</b>
Regards
Anji -
Help regarding classical report
i want help reltated to classical report..
1 . i want to bold text for some lines ..how can i do it...plz tell me..
2 . when i m printing classical report then in the printed page it show date and description of program but i want to hide it. plz help me .
i m new in abap . thanks in advance..Hi,
Changing font size in reports refer program DD_STYLE_TABLE.
use NO STANDARD PAGE HEADING to hide description of program.
Regards,
Anil -
I need help in classical report
Dear all,
I want develop a classical report which provides custom format for reporting and audit the chromatography results based on the selection criteria specified for inspection lot number, material number, batch and etc..
Please can any one help me to develop this report.
Thanks & regards,
sujith
Moderator message : Spec dumping not allowed. Thread locked.
Edited by: Vinod Kumar on Aug 10, 2011 1:47 PMMy question is in the output.It suppose to be printed as a list but it just gave me one line , i mean how can i loop it .
i tried loop at <table> into <s.table> but it is not coming because the l y_ count is local.
Thanks. -
Querry regarding the classical report
Hi Experts,
I am developing a classical report for G/L account statement.
I hv kept Document No as a selection criteria.
In one particular document, der r three entries.....
one of G/L, Vendor and Customer.
Format is as follows....
Document No Fiscal yr Account No Short Text Debit amt Credit Amt
My query is I want to display the vendor code n customer code in the Account No. column wen evr the entry is 4 vendor n customer respectively.
For the G/L account it is displaying the right value......
but 4 vendor n customer it is displaying reconsilation acc. no.
Instead of which i hv to display the vendor code n customer code.
Plzzz help.....with the source codetry this:
use field hkont as "help-field":
case bseg-koart.
when 'K'.
move bseg-lifnr to hkont.
when 'D'.
move bseg-kunnr to hkont.
when 'S'.
*do nothingg
endcase.
hope that helps
Message was edited by:
Andreas Mann -
Regarding - Multiple PDF Attachment and Classical report o/p to PDF
Hello all,
1.I am having a requirement wherein i have to convert a classical report o/p to PDF and send as an attachment.
2.Again another challenge what i am facing here is, I have already triggered a PDF attachment mail in my code,
Now they want me to convert a classical report o/p to PDF and send as an attachment along with the previous PDF in
the same mail.
Waiting for your replies.Hi ,
There are many SDN threads related to this.
Search SDN with ' Multiple Attachement by Mail'.
Check these
Re: Can we create multiple Smartform attachments on one e-mail?
Re: send mail with multiple excel attachments
And this is for PDF
Multiple PDF attachments using CL_BCS Class -
How to get add/edit button in classic report
Hi,
Iam trying to built a classic report,but here i need to have add/edit button.How can i achieve this in classic reports?
I know this add/edit button with a pencil on note will come through the interactive report.
But here iam trying to build a page same as the sample application Orders tab i.e. My Orders page.Here he created a classic report with alternating rows but has an add/edit button to it.How could that be achieved??
Can Anyone help me in this regard to built the My orders page including the add/edit navigation getting to order for items.How can tat sample application of My orders built?
TIA,
Regards,
Kranthi.
Edited by: Kranthi.K on Sep 29, 2009 12:38 AMOne more doubt is
But here iam trying to build a page same as the sample application Orders tab i.e. My Orders page and when we hit add/edit image it directs us to the My orders info and order items.
How can we build that page of My orders info and order items.Can anyone guide me through the steps the sample is created.
I tried many times with master detail,but dint achieve what the default Sample Application has been done.
Thanks in Advance
Edited by: Kranthi.K on Sep 29, 2009 4:54 AM -
How to Link column header only in classic Report in APEX 4.1
Hello Everybody,
Probably there is a simpler way to do this, but I am not sure. I want a link on column header in Report on a specific column. The link will take me to new region or a page.
How to achieve this in APEX 4.1
Theme : Blue 2
Database 11g
I see there is a column link opiton, but that creates link for every row in that column on a specific icon, I just want link on a title of the column in Classic Report.
For Example,
if there are two columns Name and Client ID, which has 10 records to display on a classic report. I wan the link on Client ID on header only not on the records.
Can anybody provide some simple solution for this.
Thanks,
--CP
Edited by: cpora007 on Jun 22, 2012 10:38 AMHello,
I didn't understand, what do you mean by default it is going to sort popup. I have a classic report based on SQL, which generates a report with static header, there is no sort or any other link on that.
I added a link in column header name with an anchor. It works and takes to the new page.
But it is not a proper solution. A solution based on Jquery dynamic action is preferable. Also the preferred option is that the link opens a hidden region of the same page at the same location of the report and the report gets hidden. after the procession on the form region and submitting the update/ insert process. the report region shows up with the change data.
Moving on to new page is 2nd option, if the first do not work.
In the JavaScript, put: apex.submit("GO_TO_MY_OTHER_PAGE");
On the page, create a Branch to the Second page. Set the condition to Request=Expression 1. Set the request to "GO_TO_MY_OTHER_PAGE"
On which page I need to create a branch?, Is it on the report page or the form page.
Thanks a lot for the response. I appreciate your kind efforts in this regard.
--CP -
How to save classical report as pdf file
hi all,
i have created a classical report and now the requirement is to save that report as a pdf .
is there any FM or any other method to do so?
regards
vijayHi Vijay,
Here is what I did for the same requirement:
Calling for the PDF File name and path to save the file
CALL METHOD cl_gui_frontend_services=>file_save_dialog
EXPORTING
window_title = 'Quote Bom PDF File'
default_file_name = l_file_name
initial_directory = l_fullpath
prompt_on_overwrite = 'X'
CHANGING
filename = l_file
path = l_path
fullpath = g_path
user_action = l_user
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
IF l_user = 0.
Please follow the following order for the subroutines which is creating the Spool Number, writing the*
statements on to the screen and then create the PDF file*
PERFORM get_spool_created.
PERFORM write_lines.
NEW-PAGE PRINT OFF.
g_spool_no = sy-spono.
PERFORM download_as_pdf.
Spool Number is getting created in this routine*
FORM get_spool_created .
DATA: pripar TYPE pri_params,
arcpar TYPE arc_params,
lay TYPE pri_params-paart,
lines TYPE pri_params-linct,
rows TYPE pri_params-linsz.
DATA: val(1), val1(1).
DATA: dest TYPE pri_params-pdest VALUE 'LP01'.
DATA: name TYPE pri_params-plist VALUE 'Testing'.
DATA: i_pdf TYPE STANDARD TABLE OF tline.
DATA: spono TYPE tsp01-rqident.
CALL FUNCTION 'GET_PRINT_PARAMETERS'
EXPORTING
destination = dest
no_dialog = 'X'
immediately = ' '
IMPORTING
out_archive_parameters = arcpar
out_parameters = pripar
valid = val
valid_for_spool_creation = val1
EXCEPTIONS
archive_info_not_found = 1
invalid_print_params = 2
invalid_archive_params = 3
OTHERS = 4.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
pripar-linsz = '132'.
pripar-paart = 'X_65_132'.
pripar-prdsn = 'LP01'.
CALL FUNCTION 'GET_PRINT_PARAMETERS'
EXPORTING
in_archive_parameters = arcpar
in_parameters = pripar
no_dialog = 'X'
list_name = name
IMPORTING
out_archive_parameters = arcpar
out_parameters = pripar
valid = val
valid_for_spool_creation = val1
EXCEPTIONS
archive_info_not_found = 1
invalid_print_params = 2
invalid_archive_params = 3
OTHERS = 4.
IF sy-subrc EQ 0.
NEW-PAGE NO-TITLE NO-HEADING PRINT ON
NEW-SECTION
PARAMETERS pripar
ARCHIVE PARAMETERS arcpar
NO DIALOG.
ELSE.
WRITE:/ 'Unable to create spool'.
EXIT.
ENDIF.
ENDFORM. " GET_SPOOL_CREATED
Write all your statements in this routine*
*& Form WRITE_LINES
text
--> p1 text
<-- p2 text
FORM write_lines .
CALL THE ROUTINE WHICH WRITES ALL LINES TO THE SCREEN
ENDFORM. " WRITE_LINES
*Download the file as PDF
*& Form DOWNLOAD_AS_PDF
text
--> p1 text
<-- p2 text
FORM download_as_pdf .
DATA:
l_no_of_bytes TYPE i,
l_pdf_spoolid LIKE tsp01-rqident,
l_jobname LIKE tbtcjob-jobname,
l_jobcount LIKE tbtcjob-jobcount,
i_pdf TYPE TABLE OF tline,
i_cpdf TYPE TABLE OF tline,
l_spono TYPE tsp01_sp0r-rqid_char,
l_fullpath TYPE string.
CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
EXPORTING
src_spoolid = g_spool_no
no_dialog = ' '
IMPORTING
pdf_bytecount = l_no_of_bytes
pdf_spoolid = l_pdf_spoolid
btc_jobname = l_jobname
btc_jobcount = l_jobcount
TABLES
pdf = i_pdf
EXCEPTIONS
err_no_abap_spooljob = 1
err_no_spooljob = 2
err_no_permission = 3
err_conv_not_possible = 4
err_bad_destdevice = 5
user_cancelled = 6
err_spoolerror = 7
err_temseerror = 8
err_btcjob_open_failed = 9
err_btcjob_submit_failed = 10
err_btcjob_close_failed = 11
OTHERS = 12.
l_spono = g_spool_no.
CALL FUNCTION 'RSPO_R_RDELETE_SPOOLREQ'
EXPORTING
spoolid = l_spono.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
bin_filesize = l_no_of_bytes
filename = g_path
filetype = 'BIN'
TABLES
data_tab = i_pdf
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6.
ENDFORM. " DOWNLOAD_AS_PDF
Thanks.
Respond if you need any more help. -
Increasing Font in Classical Report
Hi friends,
I need a small help.
Can we increase the font size of ABAP Classical Report ?
I have tried the PRINT-CONTROL FUNCTION 'SF000'.
But,of no use.
Can we really increase the font size of ABAP Classical Report ?
Regards,
Imran.Be aware that the PRINT-CONTROL is not supported in SAP Enterprise 4.7
For your information, SAP cannot provide any support to error caused by print control command (see SAP OSS notes 66478). * Parameters for function below should be taken from your printer
configuration in SAP - check SPAD transaction -
standard print control
print-control position 1 function: 'CI006', 'SF015'.
Submitted by : SAP Basis, ABAP Programming and Other IMG Stuff
http://www.sap-img.com
REPORT ZFONT NO STANDARD PAGE HEADING LINE-SIZE 80 LINE-COUNT 65.
Start of print-control
NEW-PAGE PRINT ON.
PRINT-CONTROL FUNCTION 'SF000'.
WRITE: / 'This is CPI 20'.
SKIP.
PRINT-CONTROL FUNCTION 'SF020'.
WRITE: / 'This is CPI 6'.
SKIP.
PRINT-CONTROL FUNCTION 'SF008'.
WRITE: / 'This is CPI 12'.
Depending on your SAP printer device, this may also work
PRINT-CONTROL FONT 1 LPI 6.
you can try to change font and LPI numbers
WRITE: / 'font 1 lpi 6'.
PRINT-CONTROL FONT 2 LPI 6.
WRITE: / 'font 2 lpi 6'.
PRINT-CONTROL FONT 3 LPI 6.
WRITE: / 'font 3 lpi 6'.
End of print-control
NEW-PAGE PRINT OFF.*--- End of Program
Reward points if helpful
Message was edited by:
taranam dhindsa
Maybe you are looking for
-
Where can I find a good tutorial on using the Review Widget?
Have done 2 books with iBooks Author, and still can't get the Review Widget to work. Is there a tutorial available? Thanks for any help!
-
Ole2 commands not working in forms 10g
OLE2.set_property(Application, 'Visible', true); above statement not working in forms 10g;
-
Oracle 8.1.6 Installation - Help-me!!!!!!
I'm trying to install Oracle 8.1.6 from CD on Conectiva Linux but when I run ./runInstaller a blank window is displayed and nothing happens. I'm using linux kernel 2.2.16. During installation, some processes still running, consuming CPU, but nothing
-
Hello, I hope I'm not in the wrong forum for this. I am using a multi function printer/scanner to create multi page PDF's. Due to email server restrictions the PDF's cannot exceed 10 meg. For some reason this seems to hit when the PDF has scanned 30
-
Muse theme template onegenius.muse keeps crashing when entering Preview mode
I downloaded the Muse theme template onegenius.muse and it consistently crashes when put into preview mode. I have updated Adobe Air as well as the most up to date Muse version. Here's the interesting piece, now - This does not happen with any of th