‎2006 Jun 04 3:45 AM
Hai ,
Plz Explain different types of Scripts?
IN reports outputs we can call it as lists, in Scripts ouputs wt we can call it as?
‎2006 Jun 04 3:53 AM
Hi Srinivasa,
Please check this online document.
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCSRVSCRPROG/BCSRVSCRPROG.pdf
Hope this will help.
Regards,
Ferry Lianto
Please reward points if helpful.
‎2006 Jun 04 5:58 PM
Hai ferry.
I didnt get the clear view abt this plz tellme Scripts types?
‎2006 Jun 04 6:10 PM
Srinivas,
There aren't any different types of scripts.
Lists - These are output of the reports.
SAP Scripts - A tool that is used to design and print your business documents like PO, Sales order etc. The SAP Scripts are configured to be triggered from the transaction directly. This configuration is done in SPRO transaction and most of the configuration for purchasing documents can be done in NACE transaction.
SMART Forms are the latest version of SAP Scripts.
Does that answer your question?
Regards,
Ravi
Note :Please mark the helpful answers
‎2006 Jun 04 6:17 PM
There no as such different script types.
There are different ways of printing the documents from SAP like SAP Scripts, SMARTFORMS and Print workbench (SAP IS)
Regds
Manohar
‎2006 Jul 23 2:54 PM
Hello Manohar,
Do you have some reading material on ISU - Print workbench ?
In case you have some, can you share with me?
Cheers
Kapil
(kapilsharma01@gmail.com)
‎2007 Jan 30 4:32 AM
Hi ,
In this report i take only last 4 character of cost center field and in the column heading i am giving name+last four caharcter of cost center on based of value of cost center giving as a input parameter on selection screen.But thing is that see this code in program
DO V_TIMES TIMES
VARYING V_NAME
FROM DEPT-DEPT01
NEXT DEPT-DEPT02.
CONCATENATE '%' V_NAME INTO V_DEP.
SELECT SINGLE MCTXT INTO V_TXT
FROM CSKT
WHERE CSKT~SPRAS = 'EN'
AND CSKT~KOKRS = 'PEPS'
AND CSKT~KOSTL LIKE V_DEP.
CONCATENATE V_TXT '-' V_NAME INTO V_TXT.
WRITE: (47) V_TXT CENTERED NO-GAP ,
SY-VLINE NO-GAP .
HIDE V_NAME.
ENDDO.
-
here in select statement mctxt(name) is fetched with comparison of v_dep that only contain last four character of cost center.so it will fetch first record only.But there is multiple entry of v_dep in cskt table.But i want to select correct value for name according to cost center(complete value) and want to write in heading name+cost center(only last four character).
***********************************************************************
PROGRAM............ YGNAEXP
TITLE.............. G&A Expense
R/3 RELEASE........ 4.0B
=====================================================================
PROGRAM TYPE........... ONLINE PROGRAM
DEVELOPMENT CLASS...... YPEP01
*
************************************************************************
REPORT YGNAEXP
LINE-SIZE 1023
LINE-COUNT 65
NO STANDARD PAGE HEADING MESSAGE-ID YB.
INCLUDE YGNAEXPTOP.
SELECTION-SCREEN BEGIN OF BLOCK A1 WITH FRAME TITLE TEXT-022.
PARAMETERS : P_RYEAR LIKE GLPCA-RYEAR OBLIGATORY.
SELECT-OPTIONS: S_POPER FOR BKPF-MONAT OBLIGATORY NO-EXTENSION,
S_RBUKRS FOR GLPCA-RBUKRS OBLIGATORY,
S_BUDAT FOR GLPCA-BUDAT NO-DISPLAY.
SELECTION-SCREEN END OF BLOCK A1.
SELECTION-SCREEN BEGIN OF BLOCK A2 WITH FRAME.
PARAMETERS : P_RPRCTR LIKE GLPCA-RPRCTR OBLIGATORY.
SELECT-OPTIONS: P_KOSTL FOR GLPCA-KOSTL.
SELECTION-SCREEN END OF BLOCK A2.
SELECTION-SCREEN BEGIN OF BLOCK A3 WITH FRAME.
SELECT-OPTIONS: S_RACCT FOR GLPCA-RACCT.
PARAMETERS : P_SETID LIKE SETLEAF-SETNAME.
SELECTION-SCREEN END OF BLOCK A3.
SELECTION-SCREEN BEGIN OF BLOCK A4 WITH FRAME.
PARAMETERS : P_SUM AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK A4.
----
Selection Screen Validations
----
AT SELECTION-SCREEN.
PERFORM SETID_CHECK.
PERFORM AUTH_CHECK .
PERFORM VALIDITY_CHECK .
START-OF-SELECTION.
PERFORM GET_SET.
PERFORM PROCESS_DATA.
PERFORM ARRANGE_DATA.
PERFORM WRITE_OUTPUT.
END-OF-SELECTION.
TOP-OF-PAGE.
PERFORM WRITE_HEADER.
END-OF-PAGE.
AT LINE-SELECTION.
CASE SY-LSIND.
WHEN 1.
IF NOT V_HIDE_RACCT IS INITIAL.
PERFORM DRILL_DOWN.
ENDIF.
WHEN 2.
IF V_HIDE_AWTYP = 'BKPF'.
PERFORM MOVE_TO_FB03 .
ELSEIF V_HIDE_AWTYP = 'MKPF'.
PERFORM MOVE_TO_MB03 .
ENDIF.
ENDCASE.
TOP-OF-PAGE DURING LINE-SELECTION.
PERFORM DRILL_DOWN_HEADER.
&----
*& Form PROCESS_DATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM PROCESS_DATA.
PERFORM RYEAR.
SELECT G~RPRCTR G~RACCT
G~DRCRK G~KOSTL G~BUDAT
G~HSL SKA1~GVTYP G~RYEAR
G~REFDOCNR G~REFRYEAR G~REFDOCLN
G~RBUKRS G~AWORG G~AWTYP G~EBELN
INTO CORRESPONDING FIELDS OF TABLE ITAB_GLPCA
FROM GLPCA AS G
INNER JOIN SKA1
ON SKA1~KTOPL = 'PEPS'
AND SKA1~SAKNR = G~RACCT
WHERE G~RPRCTR = P_RPRCTR
AND G~RACCT IN S_RACCT
AND G~KOKRS = S_KOKRS
AND G~RVERS = S_RVERS
AND G~RLDNR = S_RLDNR
AND G~RRCTY = S_RRCTY
AND G~BUDAT IN S_BUDAT
AND G~RBUKRS IN S_RBUKRS
AND G~RYEAR = P_RYEAR.
SELECT GYEAR KOSTL RACCT AMOUNT
FROM YGLBUDGET
INTO CORRESPONDING FIELDS OF TABLE YITAB
WHERE GYEAR = P_RYEAR
AND RACCT IN S_RACCT.
DELETE ITAB_GLPCA WHERE NOT KOSTL IN P_KOSTL.
DELETE YITAB WHERE NOT KOSTL IN P_KOSTL.
LOOP AT YITAB.
YITAB-AMOUNT = YITAB-AMOUNT *
( S_POPER-HIGH - S_POPER-LOW + 1 ) / 12.
YITAB-PRCTR = YITAB-KOSTL+0(4).
MODIFY YITAB.
ENDLOOP.
DELETE YITAB WHERE PRCTR NE P_RPRCTR.
SORT YITAB BY GYEAR RACCT KOSTL.
SORT ITAB_GLPCA BY RYEAR RACCT KOSTL.
LOOP AT YITAB.
READ TABLE ITAB_GLPCA WITH KEY
KOSTL = YITAB-KOSTL RYEAR = YITAB-GYEAR RACCT = YITAB-RACCT.
IF SY-SUBRC <> 0.
MOVE-CORRESPONDING YITAB TO ITAB_GLPCA.
ITAB_GLPCA-RYEAR = YITAB-GYEAR.
ITAB_GLPCA-RPRCTR = P_RPRCTR.
ITAB_GLPCA-HSL = 0.
APPEND ITAB_GLPCA.
CLEAR ITAB_GLPCA.
ELSE.
LOOP AT ITAB_GLPCA
WHERE RACCT = YITAB-RACCT
AND RYEAR = YITAB-GYEAR
AND KOSTL = YITAB-KOSTL.
ITAB_GLPCA-AMOUNT = YITAB-AMOUNT.
MODIFY ITAB_GLPCA.
CLEAR ITAB_GLPCA.
EXIT.
ENDLOOP.
ENDIF.
ENDLOOP.
LOOP AT ITAB_GLPCA.
SELECT SINGLE SKAT~TXT20 INTO ITAB_GLPCA-TXT20
FROM SKAT
WHERE SKAT~SPRAS = 'EN'
AND SKAT~KTOPL = 'PEPS'
AND SKAT~SAKNR = ITAB_GLPCA-RACCT.
MODIFY ITAB_GLPCA.
ENDLOOP.
SORT ITAB_GLPCA BY RPRCTR KOSTL RACCT RYEAR.
DELETE ADJACENT DUPLICATES FROM ITAB_GLPCA COMPARING ALL FIELDS.
LOOP AT ITAB_GLPCA.
AT END OF RACCT.
SUM.
MOVE-CORRESPONDING ITAB_GLPCA TO ITAB_GLPCA_SUM.
ITAB_GLPCA_SUM-DEPT = ITAB_GLPCA-KOSTL+6(4).
APPEND ITAB_GLPCA_SUM.
READ TABLE DEPTTAB WITH KEY
DEPT = ITAB_GLPCA-KOSTL+6(4) BINARY SEARCH.
IF SY-SUBRC <> 0.
DEPTTAB-DEPT = ITAB_GLPCA-KOSTL+6(4).
APPEND DEPTTAB.
CLEAR DEPTTAB.
ENDIF.
MOVE-CORRESPONDING ITAB_GLPCA_SUM TO ITAB2.
APPEND ITAB2.
CLEAR ITAB2.
ENDAT.
ENDLOOP.
SORT ITAB2 BY RPRCTR TXT20 RACCT.
DELETE ADJACENT DUPLICATES FROM ITAB2 COMPARING ALL FIELDS.
SORT DEPTTAB BY DEPT.
LOOP AT DEPTTAB.
PERFORM GET_DEPT.
ENDLOOP.
SORT ITAB_GLPCA_SUM BY RPRCTR RACCT.
LOOP AT ITAB_GLPCA_SUM.
LOOP AT ITAB2
WHERE RPRCTR = ITAB_GLPCA_SUM-RPRCTR
AND RACCT = ITAB_GLPCA_SUM-RACCT
AND DEPT = ITAB_GLPCA_SUM-DEPT
AND RYEAR = ITAB_GLPCA_SUM-RYEAR
AND KOSTL = ITAB_GLPCA_SUM-KOSTL.
PERFORM ROW_TO_COL.
MODIFY ITAB2.
ENDLOOP.
ENDLOOP.
V_CTR1 = 71 + ( ( V_CTR + 1 ) * 48 ).
V_TIMES = V_CTR.
IF V_TIMES = 1.
V_CTR1 = V_CTR1 - 56.
ENDIF.
************************************************************************
SORT ITAB_SETNODE BY SUBSETNAME.
SORT ITAB_SETLEAF BY VALFROM VALTO.
SORT ITAB_GLPCA_SUM BY RACCT.
LOOP AT ITAB_SETLEAF.
LOOP AT ITAB_GLPCA_SUM
WHERE RACCT >= ITAB_SETLEAF-VALFROM
AND RACCT <= ITAB_SETLEAF-VALTO.
V_SUBSETNAME = ITAB_SETLEAF-SETNAME.
MOVE-CORRESPONDING ITAB_GLPCA_SUM TO ITAB_ALL_HIER.
ITAB_ALL_HIER-PMFLAG = ITAB_SETLEAF-PMFLAG.
V_CTR = 1.
WHILE V_CTR NE 0.
READ TABLE ITAB_SETNODE WITH KEY
SUBSETNAME = V_SUBSETNAME.
IF SY-SUBRC = 0.
PERFORM SET_HIER.
ELSE.
V_CTR = 0.
ENDIF.
ENDWHILE.
APPEND ITAB_ALL_HIER.
CLEAR ITAB_ALL_HIER.
ENDLOOP.
ENDLOOP.
ENDFORM. " PROCESS_DATA
&----
*& Form WRITE_OUTPUT
&----
text
----
--> p1 text
<-- p2 text
----
FORM WRITE_OUTPUT.
DELETE ITAB2 WHERE RACCT = 0.
SORT ITAB2 BY DESCRIPT01 DESCRIPT02 DESCRIPT03
DESCRIPT04 DESCRIPT05 DESCRIPT06
DESCRIPT07 DESCRIPT08 DESCRIPT09
DESCRIPT10 TXT20 RACCT KOSTL DEPT RYEAR.
DELETE ADJACENT DUPLICATES FROM ITAB2 COMPARING ALL FIELDS.
LOOP AT ITAB2.
AT END OF RACCT.
IF P_SUM NE 'X'.
SUM.
FORMAT COLOR COL_NORMAL INTENSIFIED .
WRITE 😕 SY-VLINE NO-GAP,
(50) ITAB2-TXT20 NO-GAP,
SY-VLINE NO-GAP,
(10) ITAB2-RACCT NO-GAP,
SY-VLINE NO-GAP.
PERFORM WRITE_FORMAT.
V_HIDE_RACCT = ITAB2-RACCT.
HIDE V_HIDE_RACCT.
CLEAR V_HIDE_RACCT.
ENDIF.
ENDAT.
AT END OF DESCRIPT10.
DESTXT = ITAB2-DESCRIPT10.
IF ITAB2-DESCRIPT10 NE ''.
PERFORM HIER.
ENDIF.
ENDAT.
AT END OF DESCRIPT09.
DESTXT = ITAB2-DESCRIPT09.
IF ITAB2-DESCRIPT09 NE ''.
PERFORM HIER.
ENDIF.
ENDAT.
AT END OF DESCRIPT08.
DESTXT = ITAB2-DESCRIPT08.
IF ITAB2-DESCRIPT08 NE ''.
PERFORM HIER.
ENDIF.
ENDAT.
AT END OF DESCRIPT07.
DESTXT = ITAB2-DESCRIPT07.
IF ITAB2-DESCRIPT07 NE ''.
PERFORM HIER.
ENDIF.
ENDAT.
AT END OF DESCRIPT06.
DESTXT = ITAB2-DESCRIPT06.
IF ITAB2-DESCRIPT06 NE ''.
PERFORM HIER.
ENDIF.
ENDAT.
AT END OF DESCRIPT05.
DESTXT = ITAB2-DESCRIPT05.
IF ITAB2-DESCRIPT05 NE ''.
PERFORM HIER.
ENDIF.
ENDAT.
AT END OF DESCRIPT04.
DESTXT = ITAB2-DESCRIPT04.
IF ITAB2-DESCRIPT04 NE ''.
PERFORM HIER.
ENDIF.
ENDAT.
AT END OF DESCRIPT03.
DESTXT = ITAB2-DESCRIPT03.
IF ITAB2-DESCRIPT03 NE ''.
PERFORM HIER.
ENDIF.
ENDAT.
AT END OF DESCRIPT02.
DESTXT = ITAB2-DESCRIPT02.
IF ITAB2-DESCRIPT02 NE ''.
PERFORM HIER.
ENDIF.
ENDAT.
AT END OF DESCRIPT01.
DESTXT = ITAB2-DESCRIPT01.
IF ITAB2-DESCRIPT01 NE ''.
PERFORM HIER.
ENDIF.
ENDAT.
AT LAST.
SUM.
ULINE :/(V_CTR1).
CLEAR V_HIDE_RACCT.
HIDE V_HIDE_RACCT.
FORMAT COLOR COL_TOTAL INTENSIFIED .
WRITE 😕 SY-VLINE NO-GAP,
(50) TEXT-018 NO-GAP,
SY-VLINE NO-GAP,
(10) SPACE NO-GAP ,
SY-VLINE NO-GAP.
PERFORM WRITE_FORMAT.
HIDE V_HIDE_RACCT.
ULINE :/(V_CTR1).
HIDE V_HIDE_RACCT.
ENDAT.
ENDLOOP.
ENDFORM. " WRITE_OUTPUT
&----
*& Form WRITE_HEADER
&----
text
----
--> p1 text
<-- p2 text
----
FORM WRITE_HEADER.
FORMAT RESET.
IF P_SUM >< 'X'.
CLEAR V_HIDE_RACCT.
WRITE :/(147) TEXT-001 NO-GAP CENTERED.
HIDE V_HIDE_RACCT.
WRITE :/(147) TEXT-002 NO-GAP CENTERED.
HIDE V_HIDE_RACCT.
WRITE :/001 TEXT-008 NO-GAP ,
S_BUDAT-LOW NO-GAP ,
030 TEXT-003 NO-GAP ,
035 S_BUDAT-HIGH NO-GAP,
080 TEXT-020 NO-GAP ,
SY-DATUM NO-GAP.
HIDE V_HIDE_RACCT.
WRITE :/001 TEXT-009 NO-GAP ,
S_RBUKRS-LOW NO-GAP ,
030 TEXT-003 NO-GAP ,
035 S_RBUKRS-HIGH NO-GAP ,
080 TEXT-019 NO-GAP ,
SY-PAGNO NO-GAP.
HIDE V_HIDE_RACCT.
WRITE :/001 TEXT-010 NO-GAP ,
P_RPRCTR NO-GAP.
HIDE V_HIDE_RACCT.
WRITE :/001 TEXT-011 NO-GAP ,
P_SETID NO-GAP.
HIDE V_HIDE_RACCT.
ENDIF.
PERFORM WRITE_COL_HEADERS.
ENDFORM. " WRITE_HEADER
&----
*& Form WRITE_COL_HEADERS
&----
text
----
--> p1 text
<-- p2 text
----
FORM WRITE_COL_HEADERS.
SORT DEPTTAB.
FORMAT COLOR COL_HEADING INTENSIFIED.
CLEAR V_HIDE_RACCT.
ULINE /(V_CTR1) .
HIDE V_HIDE_RACCT.
WRITE 😕 SY-VLINE NO-GAP,
TEXT-013 NO-GAP,
SY-VLINE NO-GAP,
TEXT-012 NO-GAP,
SY-VLINE NO-GAP.
DO V_TIMES TIMES
VARYING V_NAME
FROM DEPT-DEPT01
NEXT DEPT-DEPT02.
CONCATENATE '%' V_NAME INTO V_DEP.
SELECT SINGLE MCTXT INTO V_TXT
FROM CSKT
WHERE CSKT~SPRAS = 'EN'
AND CSKT~KOKRS = 'PEPS'
AND CSKT~KOSTL LIKE V_DEP.
CONCATENATE V_TXT '-' V_NAME INTO V_TXT.
WRITE: (47) V_TXT CENTERED NO-GAP ,
SY-VLINE NO-GAP .
HIDE V_NAME.
ENDDO.
WRITE AT V_CTR1 SY-VLINE.
NEW-LINE.
WRITE: SY-VLINE,52 SY-VLINE.
NUM = 63.
DO V_TIMES TIMES.
WRITE: AT NUM SY-VLINE NO-GAP,
TEXT-031 NO-GAP,
SY-VLINE NO-GAP,
TEXT-032 NO-GAP,
SY-VLINE NO-GAP,
TEXT-033 NO-GAP,
SY-VLINE NO-GAP.
NUM = NUM + 48.
ENDDO.
IF V_TIMES > 1.
WRITE: (17) TEXT-034 NO-GAP,SY-VLINE,
(17) TEXT-035 NO-GAP,SY-VLINE,
(17) TEXT-030 NO-GAP,SY-VLINE.
ENDIF.
HIDE V_HIDE_RACCT.
ULINE /(V_CTR1) .
HIDE V_HIDE_RACCT.
ENDFORM. " WRITE_COL_HEADERS
&----
*& Form GET_SET
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_SET.
IF P_SETID NE ' '.
REFRESH S_RACCT.
S_RACCT-SIGN = 'I'.
S_RACCT-OPTION = 'BT'.
SELECT SETNODE~SETNAME
SETNODE~SUBSETNAME
INTO CORRESPONDING FIELDS OF TABLE ITAB_SETNODE
FROM SETNODE
WHERE SETNODE~SETNAME = P_SETID.
DESCRIBE TABLE ITAB_SETNODE LINES V_LINE.
IF V_LINE = 0.
CALL FUNCTION 'G_SET_FETCH'
EXPORTING
CLASS = '0000'
LANGU = SY-LANGU
SETNR = P_SETID
NO_SETID_CONVERSION = 'X'
TABLES
SET_LINES_BASIC = SET_LINES_BASIC
EXCEPTIONS
NO_AUTHORITY = 1
SET_IS_BROKEN = 2
SET_NOT_FOUND = 3
OTHERS = 4.
PERFORM UPDATE_LEAF.
PERFORM UPDATE_RACCT.
ELSE.
V_CTR5 = V_LINE.
V_HIER = 1.
WHILE V_CTR5 <> 0.
LOOP AT ITAB_SETNODE WHERE SETHIER = ' '.
SELECT SETNODESETNAME SETNODESUBSETNAME
APPENDING CORRESPONDING FIELDS OF TABLE TMP_SETNODE
FROM SETNODE
WHERE SETNODE~SETNAME = ITAB_SETNODE-SUBSETNAME.
ITAB_SETNODE-SETHIER = V_HIER.
MODIFY ITAB_SETNODE.
ENDLOOP.
APPEND LINES OF TMP_SETNODE TO ITAB_SETNODE.
DESCRIBE TABLE ITAB_SETNODE LINES V_LINE.
IF V_CTR5 = V_LINE.
V_CTR5 = 0.
ELSE.
V_CTR5 = V_LINE.
ENDIF.
V_HIER = V_HIER + 1.
REFRESH TMP_SETNODE.
CLEAR TMP_SETNODE.
ENDWHILE.
LOOP AT ITAB_SETNODE.
CALL FUNCTION 'G_SET_FETCH'
EXPORTING
CLASS = '0000'
LANGU = SY-LANGU
SETNR = ITAB_SETNODE-SUBSETNAME
NO_SETID_CONVERSION = 'X'
TABLES
SET_LINES_BASIC = SET_LINES_BASIC
EXCEPTIONS
NO_AUTHORITY = 1
SET_IS_BROKEN = 2
SET_NOT_FOUND = 3
OTHERS = 4.
PERFORM UPDATE_LEAF.
ENDLOOP.
PERFORM UPDATE_RACCT.
ENDIF.
SELECT SETHEADERTSETNAME SETHEADERTDESCRIPT
INTO CORRESPONDING FIELDS OF TABLE ITAB_SETTEXT
FROM SETHEADERT
FOR ALL ENTRIES IN ITAB_SETNODE
WHERE SETHEADERT~LANGU = 'EN'
AND SETHEADERT~SETCLASS = '0000'
AND SETHEADERT~SETNAME = ITAB_SETNODE-SUBSETNAME.
SORT ITAB_SETTEXT BY SETNAME.
DELETE ADJACENT DUPLICATES FROM ITAB_SETTEXT COMPARING ALL FIELDS.
CLEAR: ITAB_SETNODE,S_RACCT.
ENDIF.
ENDFORM. " UPDATE_TBIN
&----
*& Form AUTH_CHECK
&----
text
----
--> p1 text
<-- p2 text
----
FORM AUTH_CHECK.
SELECT PRCTR INTO V_PRCTR
FROM CEPC WHERE CEPC~PRCTR = P_RPRCTR.
AUTHORITY-CHECK OBJECT 'Y_PROF_CTR'
ID 'ACTVT' DUMMY
ID 'PRCTR' FIELD V_PRCTR.
IF SY-SUBRC NE 0 .
MESSAGE E398(00) WITH
'User' SY-UNAME 'not authorised for Profit Center' V_PRCTR.
ENDIF.
ENDSELECT.
ENDFORM. " AUTH_CHECK
&----
*& Form VALIDITY_CHECK
&----
text
----
--> p1 text
<-- p2 text
----
FORM VALIDITY_CHECK.
SELECT SINGLE * FROM CEPC
WHERE PRCTR = P_RPRCTR.
IF SY-SUBRC EQ 4 .
MESSAGE E398(00) WITH
'Profit Center' P_RPRCTR 'Does not Exist'.
ENDIF.
ENDFORM. " VALIDITY_CHECK
&----
*& Form SET_HIER
&----
text
----
--> p1 text
<-- p2 text
----
FORM SET_HIER.
V_HIER1 = ITAB_SETNODE-SETHIER.
CASE V_HIER1.
WHEN 1.
ITAB_ALL_HIER-HIER01 = ITAB_SETNODE-SUBSETNAME.
WHEN 2.
ITAB_ALL_HIER-HIER02 = ITAB_SETNODE-SUBSETNAME.
WHEN 3.
ITAB_ALL_HIER-HIER03 = ITAB_SETNODE-SUBSETNAME.
WHEN 4.
ITAB_ALL_HIER-HIER04 = ITAB_SETNODE-SUBSETNAME.
WHEN 5.
ITAB_ALL_HIER-HIER05 = ITAB_SETNODE-SUBSETNAME.
WHEN 6.
ITAB_ALL_HIER-HIER06 = ITAB_SETNODE-SUBSETNAME.
WHEN 7.
ITAB_ALL_HIER-HIER07 = ITAB_SETNODE-SUBSETNAME.
WHEN 8.
ITAB_ALL_HIER-HIER08 = ITAB_SETNODE-SUBSETNAME.
WHEN 9.
ITAB_ALL_HIER-HIER09 = ITAB_SETNODE-SUBSETNAME.
WHEN 10.
ITAB_ALL_HIER-HIER10 = ITAB_SETNODE-SUBSETNAME.
ENDCASE.
V_SUBSETNAME = ITAB_SETNODE-SETNAME.
V_CTR = V_CTR + 1.
ENDFORM. " SET_HIER
&----
*& Form UPDATE_LEAF
&----
text
----
--> p1 text
<-- p2 text
----
FORM UPDATE_LEAF.
LOOP AT SET_LINES_BASIC.
ITAB_SETLEAF-SETNAME = ITAB_SETNODE-SUBSETNAME.
ITAB_SETLEAF-VALFROM = SET_LINES_BASIC-FROM.
ITAB_SETLEAF-VALTO = SET_LINES_BASIC-TO.
ITAB_SETLEAF-PMFLAG = SET_LINES_BASIC-PMFLAG.
APPEND ITAB_SETLEAF.
CLEAR ITAB_SETLEAF.
ENDLOOP.
REFRESH SET_LINES_BASIC.
CLEAR SET_LINES_BASIC.
ENDFORM. " UPDATE_RACCT
&----
*& Form UPDATE_RACCT
&----
text
----
--> p1 text
<-- p2 text
----
FORM UPDATE_RACCT.
SORT ITAB_SETLEAF BY SETNAME VALFROM VALTO PMFLAG.
DELETE ADJACENT DUPLICATES FROM ITAB_SETLEAF COMPARING ALL FIELDS.
LOOP AT ITAB_SETLEAF.
S_RACCT-LOW = ITAB_SETLEAF-VALFROM.
S_RACCT-HIGH = ITAB_SETLEAF-VALTO.
APPEND S_RACCT.
ENDLOOP.
ENDFORM. " UPDATE_RACCT
&----
*& Form GET_DEPT
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_DEPT.
V_CTR = V_CTR + 1.
IF V_CTR <= 30.
CASE V_CTR.
WHEN 1.
DEPT-DEPT01 = DEPTTAB-DEPT.
WHEN 2.
DEPT-DEPT02 = DEPTTAB-DEPT.
WHEN 3.
DEPT-DEPT03 = DEPTTAB-DEPT.
WHEN 4.
DEPT-DEPT04 = DEPTTAB-DEPT.
WHEN 5.
DEPT-DEPT05 = DEPTTAB-DEPT.
WHEN 6.
DEPT-DEPT06 = DEPTTAB-DEPT.
WHEN 7.
DEPT-DEPT07 = DEPTTAB-DEPT.
WHEN 8.
DEPT-DEPT08 = DEPTTAB-DEPT.
WHEN 9.
DEPT-DEPT09 = DEPTTAB-DEPT.
WHEN 10.
DEPT-DEPT10 = DEPTTAB-DEPT.
WHEN 11.
DEPT-DEPT11 = DEPTTAB-DEPT.
WHEN 12.
DEPT-DEPT12 = DEPTTAB-DEPT.
WHEN 13.
DEPT-DEPT13 = DEPTTAB-DEPT.
WHEN 14.
DEPT-DEPT14 = DEPTTAB-DEPT.
WHEN 15.
DEPT-DEPT15 = DEPTTAB-DEPT.
WHEN 16.
DEPT-DEPT16 = DEPTTAB-DEPT.
WHEN 17.
DEPT-DEPT17 = DEPTTAB-DEPT.
WHEN 18.
DEPT-DEPT18 = DEPTTAB-DEPT.
WHEN 19.
DEPT-DEPT19 = DEPTTAB-DEPT.
WHEN 20.
DEPT-DEPT20 = DEPTTAB-DEPT.
WHEN 21.
DEPT-DEPT21 = DEPTTAB-DEPT.
WHEN 22.
DEPT-DEPT22 = DEPTTAB-DEPT.
WHEN 23.
DEPT-DEPT23 = DEPTTAB-DEPT.
WHEN 24.
DEPT-DEPT24 = DEPTTAB-DEPT.
WHEN 25.
DEPT-DEPT25 = DEPTTAB-DEPT.
WHEN 26.
DEPT-DEPT26 = DEPTTAB-DEPT.
WHEN 27.
DEPT-DEPT27 = DEPTTAB-DEPT.
WHEN 28.
DEPT-DEPT28 = DEPTTAB-DEPT.
WHEN 29.
DEPT-DEPT29 = DEPTTAB-DEPT.
WHEN 30.
DEPT-DEPT30 = DEPTTAB-DEPT.
WHEN OTHERS.
ENDCASE.
ENDIF.
ENDFORM. " GET_DEPT
&----
*& Form ROW_TO_COL
&----
text
----
--> p1 text
<-- p2 text
----
FORM ROW_TO_COL.
CASE ITAB_GLPCA_SUM-DEPT.
WHEN DEPT-DEPT01.
ITAB2-HSL01 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT01 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF01 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN DEPT-DEPT02.
ITAB2-HSL02 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT02 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF02 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN DEPT-DEPT03.
ITAB2-HSL03 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT03 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF03 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN DEPT-DEPT04.
ITAB2-HSL04 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT04 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF04 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN DEPT-DEPT05.
ITAB2-HSL05 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT05 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF05 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN DEPT-DEPT06.
ITAB2-HSL06 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT06 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF06 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN DEPT-DEPT07.
ITAB2-HSL07 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT07 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF07 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN DEPT-DEPT08.
ITAB2-HSL08 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT08 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF08 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN DEPT-DEPT09.
ITAB2-HSL09 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT09 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF09 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN DEPT-DEPT10.
ITAB2-HSL10 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT10 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF10 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN DEPT-DEPT11.
ITAB2-HSL11 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT11 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF11 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN DEPT-DEPT12.
ITAB2-HSL12 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT12 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF12 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN DEPT-DEPT13.
ITAB2-HSL13 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT13 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF13 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN DEPT-DEPT14.
ITAB2-HSL14 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT14 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF14 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN DEPT-DEPT15.
ITAB2-HSL15 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT15 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF15 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN DEPT-DEPT16.
ITAB2-HSL16 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT16 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF16 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN DEPT-DEPT17.
ITAB2-HSL17 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT17 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF17 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN DEPT-DEPT18.
ITAB2-HSL18 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT18 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF18 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN DEPT-DEPT19.
ITAB2-HSL19 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT19 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF19 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN DEPT-DEPT20.
ITAB2-HSL20 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT20 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF20 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN DEPT-DEPT21.
ITAB2-HSL21 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT21 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF21 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN DEPT-DEPT22.
ITAB2-HSL22 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT22 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF22 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN DEPT-DEPT23.
ITAB2-HSL23 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT23 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF23 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN DEPT-DEPT24.
ITAB2-HSL24 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT24 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF24 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN DEPT-DEPT25.
ITAB2-HSL25 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT25 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF25 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN DEPT-DEPT26.
ITAB2-HSL26 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT26 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF26 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN DEPT-DEPT27.
ITAB2-HSL27 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT27 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF27 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN DEPT-DEPT28.
ITAB2-HSL28 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT28 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF28 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN DEPT-DEPT29.
ITAB2-HSL29 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT29 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF29 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN DEPT-DEPT30.
ITAB2-HSL30 = ITAB_GLPCA_SUM-HSL.
ITAB2-AMOUNT30 = ITAB_GLPCA_SUM-AMOUNT.
ITAB2-DIFF30 = ITAB_GLPCA_SUM-AMOUNT - ITAB_GLPCA_SUM-HSL.
WHEN OTHERS.
ENDCASE.
ENDFORM. " ROW_TO_COL
&----
*& Form ARRANGE_DATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM ARRANGE_DATA.
LOOP AT ITAB_ALL_HIER.
CLEAR: ITAB2.
READ TABLE ITAB_SETTEXT WITH KEY
SETNAME = ITAB_ALL_HIER-HIER01.
IF SY-SUBRC = 0.
CONCATENATE '* ' ITAB_SETTEXT-DESCRIPT INTO
ITAB2-DESCRIPT01.
ENDIF.
READ TABLE ITAB_SETTEXT WITH KEY
SETNAME = ITAB_ALL_HIER-HIER02.
IF SY-SUBRC = 0.
CONCATENATE '** ' ITAB_SETTEXT-DESCRIPT INTO
ITAB2-DESCRIPT02.
ENDIF.
READ TABLE ITAB_SETTEXT WITH KEY
SETNAME = ITAB_ALL_HIER-HIER03.
IF SY-SUBRC = 0.
CONCATENATE '*** ' ITAB_SETTEXT-DESCRIPT INTO
ITAB2-DESCRIPT03.
ENDIF.
READ TABLE ITAB_SETTEXT WITH KEY
SETNAME = ITAB_ALL_HIER-HIER04.
IF SY-SUBRC = 0.
CONCATENATE '**** ' ITAB_SETTEXT-DESCRIPT INTO
ITAB2-DESCRIPT04.
ENDIF.
READ TABLE ITAB_SETTEXT WITH KEY
SETNAME = ITAB_ALL_HIER-HIER05.
IF SY-SUBRC = 0.
CONCATENATE '***** ' ITAB_SETTEXT-DESCRIPT INTO
ITAB2-DESCRIPT05.
ENDIF.
READ TABLE ITAB_SETTEXT WITH KEY
SETNAME = ITAB_ALL_HIER-HIER06.
IF SY-SUBRC = 0.
CONCATENATE '****** ' ITAB_SETTEXT-DESCRIPT INTO
ITAB2-DESCRIPT06.
ENDIF.
READ TABLE ITAB_SETTEXT WITH KEY
SETNAME = ITAB_ALL_HIER-HIER07.
IF SY-SUBRC = 0.
CONCATENATE '******* ' ITAB_SETTEXT-DESCRIPT INTO
ITAB2-DESCRIPT07.
ENDIF.
READ TABLE ITAB_SETTEXT WITH KEY
SETNAME = ITAB_ALL_HIER-HIER08.
IF SY-SUBRC = 0.
CONCATENATE '******** ' ITAB_SETTEXT-DESCRIPT INTO
ITAB2-DESCRIPT08.
ENDIF.
READ TABLE ITAB_SETTEXT WITH KEY
SETNAME = ITAB_ALL_HIER-HIER09.
IF SY-SUBRC = 0.
CONCATENATE '******** ' ITAB_SETTEXT-DESCRIPT INTO
ITAB2-DESCRIPT09.
ENDIF.
READ TABLE ITAB_SETTEXT WITH KEY
SETNAME = ITAB_ALL_HIER-HIER10.
IF SY-SUBRC = 0.
CONCATENATE '******** ' ITAB_SETTEXT-DESCRIPT INTO
ITAB2-DESCRIPT10.
ENDIF.
MODIFY ITAB2 TRANSPORTING DESCRIPT01
DESCRIPT02
DESCRIPT03
DESCRIPT04
DESCRIPT05
DESCRIPT06
DESCRIPT07
DESCRIPT08
DESCRIPT09
DESCRIPT10
WHERE RACCT = ITAB_ALL_HIER-RACCT AND DEPT = ITAB_ALL_HIER-DEPT.
ENDLOOP.
ENDFORM. " ARRANGE_DATA
&----
*& Form HIER
&----
text
----
--> p1 text
<-- p2 text
----
FORM HIER.
CLEAR: NUM,V_AMOUNT.
SUM.
CLEAR V_HIDE_RACCT.
IF P_SUM >< 'X'.
ULINE :/(V_CTR1).
ENDIF.
HIDE V_HIDE_RACCT.
FORMAT COLOR COL_KEY INTENSIFIED .
***************************************
IF P_SETID = 'YGNA'.
SPLIT DESTXT AT '-' INTO V_TEXT DESTXT.
V_NUM = STRLEN( V_TEXT ).
V_NUM = V_NUM - 4.
V_TEXT = V_TEXT+0(V_NUM).
CONCATENATE V_TEXT DESTXT INTO DESTXT.
CLEAR: V_TEXT,V_NUM.
ENDIF.
*************************************
WRITE 😕 SY-VLINE NO-GAP,
(50) DESTXT NO-GAP,
SY-VLINE NO-GAP,
(10) SPACE NO-GAP,
SY-VLINE NO-GAP.
PERFORM WRITE_FORMAT.
HIDE V_HIDE_RACCT.
CLEAR: V_TOTAL, DESTXT.
IF P_SUM >< 'X'.
ULINE :/(V_CTR1).
ENDIF.
HIDE V_HIDE_RACCT.
ENDFORM. " HIER
&----
*& Form RYEAR
&----
text
----
--> p1 text
<-- p2 text
----
FORM RYEAR.
IF S_POPER-HIGH IS INITIAL.
S_POPER-HIGH = S_POPER-LOW.
ENDIF.
CONCATENATE P_RYEAR S_POPER-HIGH '01' INTO S_BUDAT-LOW.
CALL FUNCTION 'RP_LAST_DAY_OF_MONTHS'
EXPORTING
DAY_IN = S_BUDAT-LOW
IMPORTING
LAST_DAY_OF_MONTH = S_BUDAT-HIGH
EXCEPTIONS
DAY_IN_NO_DATE = 1
OTHERS = 2.
CONCATENATE P_RYEAR S_POPER-LOW '01' INTO S_BUDAT-LOW.
S_BUDAT-SIGN = 'I'.
S_BUDAT-OPTION = 'BT'.
APPEND S_BUDAT.
CLEAR S_BUDAT.
ENDFORM. " RYEAR
&----
*& Form SETID
&----
text
----
--> p1 text
<-- p2 text
----
FORM SETID_CHECK.
IF S_RACCT-LOW NE '' AND P_SETID NE ''.
MESSAGE E090.
ELSEIF S_RACCT-LOW EQ '' AND P_SETID EQ ''.
MESSAGE E089.
ENDIF.
ENDFORM. " SETID
&----
*& Form WRITE_FORMAT
&----
text
----
--> p1 text
<-- p2 text
----
FORM WRITE_FORMAT.
NUM = 64.
DO V_TIMES TIMES
VARYING V_AMOUNT
FROM ITAB2-AMOUNT01
NEXT ITAB2-AMOUNT02.
WRITE: AT NUM(15) V_AMOUNT DECIMALS 0 NO-GAP.
NUM = NUM + 48.
B_TOTAL = B_TOTAL + V_AMOUNT.
ENDDO.
CLEAR: NUM,V_AMOUNT.
NUM = 79.
DO V_TIMES TIMES
VARYING V_AMOUNT
FROM ITAB2-HSL01
NEXT ITAB2-HSL02.
WRITE: AT NUM SY-VLINE NO-GAP,
(15) V_AMOUNT DECIMALS 0 NO-GAP,
SY-VLINE NO-GAP.
NUM = NUM + 48.
A_TOTAL = A_TOTAL + V_AMOUNT.
ENDDO.
CLEAR: NUM,V_AMOUNT.
NUM = 95.
DO V_TIMES TIMES
VARYING V_AMOUNT
FROM ITAB2-DIFF01
NEXT ITAB2-DIFF02.
WRITE: AT NUM SY-VLINE NO-GAP,
(15) V_AMOUNT DECIMALS 0 NO-GAP,
SY-VLINE NO-GAP.
NUM = NUM + 48.
V_TOTAL = V_TOTAL + V_AMOUNT.
ENDDO.
IF V_TIMES > 1.
WRITE: (17) B_TOTAL DECIMALS 0 NO-GAP, SY-VLINE.
WRITE: (17) A_TOTAL DECIMALS 0 NO-GAP, SY-VLINE.
WRITE : (17) V_TOTAL DECIMALS 0 NO-GAP,
SY-VLINE NO-GAP.
ENDIF.
CLEAR: V_TOTAL,A_TOTAL,B_TOTAL.
ENDFORM. " WRITE_FORMAT
&----
*& Form DRILL_DOWN
&----
text
----
--> p1 text
<-- p2 text
----
FORM DRILL_DOWN.
REFRESH ITAB_GLPCA1.
LOOP AT ITAB_GLPCA WHERE RACCT = V_HIDE_RACCT AND HSL NE 0.
MOVE-CORRESPONDING ITAB_GLPCA TO ITAB_GLPCA1.
ITAB_GLPCA1-RBUKRS = ITAB_GLPCA-AWORG+0(4).
IF ITAB_GLPCA-AWTYP = 'BKPF'.
ITAB_GLPCA1-REFRYEAR = ITAB_GLPCA-AWORG+4(4).
ELSEIF ITAB_GLPCA-AWTYP = 'MKPF'.
ITAB_GLPCA1-REFRYEAR = ITAB_GLPCA-AWORG.
ENDIF.
ITAB_GLPCA1-DEPT = ITAB_GLPCA-KOSTL+6(4).
APPEND ITAB_GLPCA1.
CLEAR ITAB_GLPCA1.
ENDLOOP.
SORT ITAB_GLPCA1 BY DEPT.
LOOP AT ITAB_GLPCA1.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
IF ITAB_GLPCA1-AWTYP = 'BKPF'.
SELECT SINGLE ZUONR SGTXT
INTO (ITAB_GLPCA1-ZUONR, ITAB_GLPCA1-SGTXT )
FROM BSEG WHERE BUKRS = ITAB_GLPCA1-RBUKRS
AND BELNR = ITAB_GLPCA1-REFDOCNR
AND GJAHR = ITAB_GLPCA1-REFRYEAR
AND BUZEI = ITAB_GLPCA1-REFDOCLN.
ELSEIF ITAB_GLPCA1-AWTYP = 'MKPF'.
COMPUTE V_LINEID = CEIL( ITAB_GLPCA1-REFDOCLN / 2 ).
SELECT SINGLE SGTXT
INTO ITAB_GLPCA1-SGTXT
FROM MSEG
WHERE MBLNR = ITAB_GLPCA1-REFDOCNR
AND MJAHR = ITAB_GLPCA1-REFRYEAR
AND ZEILE = V_LINEID.
ENDIF.
WRITE: / SY-VLINE NO-GAP,
(4) ITAB_GLPCA1-DEPT NO-GAP,
SY-VLINE NO-GAP,
(10) ITAB_GLPCA1-RACCT NO-GAP,
SY-VLINE NO-GAP,
(20)ITAB_GLPCA1-TXT20 NO-GAP,
SY-VLINE NO-GAP,
(9)ITAB_GLPCA1-RPRCTR NO-GAP,
SY-VLINE NO-GAP,
(11)ITAB_GLPCA1-KOSTL NO-GAP,
SY-VLINE NO-GAP,
(10)ITAB_GLPCA1-REFDOCNR NO-GAP,
SY-VLINE NO-GAP,
(18)ITAB_GLPCA1-ZUONR NO-GAP,
SY-VLINE NO-GAP,
(15)ITAB_GLPCA1-HSL DECIMALS 0 NO-GAP,
SY-VLINE NO-GAP,
ITAB_GLPCA1-SGTXT NO-GAP,
SY-VLINE NO-GAP,
ITAB_GLPCA1-EBELN NO-GAP,
SY-VLINE NO-GAP,
ITAB_GLPCA1-BUDAT NO-GAP,
SY-VLINE NO-GAP.
V_HIDE_BUKRS = ITAB_GLPCA1-RBUKRS.
V_HIDE_GJAHR = ITAB_GLPCA1-REFRYEAR.
V_HIDE_BELNR = ITAB_GLPCA1-REFDOCNR.
V_HIDE_AWTYP = ITAB_GLPCA1-AWTYP.
HIDE: V_HIDE_BUKRS, V_HIDE_GJAHR, V_HIDE_BELNR, V_HIDE_AWTYP.
CLEAR: V_HIDE_BUKRS, V_HIDE_GJAHR, V_HIDE_BELNR, V_HIDE_AWTYP.
AT END OF DEPT.
SUM.
CLEAR: V_HIDE_BUKRS, V_HIDE_GJAHR, V_HIDE_BELNR, V_HIDE_AWTYP.
ULINE :/(179).
HIDE: V_HIDE_BUKRS, V_HIDE_GJAHR, V_HIDE_BELNR, V_HIDE_AWTYP.
FORMAT COLOR COL_GROUP INTENSIFIED ON.
WRITE: / SY-VLINE NO-GAP,
(87)TEXT-047 RIGHT-JUSTIFIED ,SY-VLINE NO-GAP,
(15) ITAB_GLPCA1-HSL DECIMALS 0 NO-GAP,
SY-VLINE NO-GAP,
(72) SPACE NO-GAP,
SY-VLINE NO-GAP.
HIDE: V_HIDE_BUKRS, V_HIDE_GJAHR, V_HIDE_BELNR, V_HIDE_AWTYP.
FORMAT COLOR OFF.
HIDE: V_HIDE_BUKRS, V_HIDE_GJAHR, V_HIDE_BELNR, V_HIDE_AWTYP.
ULINE :/(179).
ENDAT.
AT LAST.
SUM.
CLEAR: V_HIDE_BUKRS, V_HIDE_GJAHR, V_HIDE_BELNR, V_HIDE_AWTYP.
HIDE: V_HIDE_BUKRS, V_HIDE_GJAHR, V_HIDE_BELNR, V_HIDE_AWTYP.
FORMAT COLOR COL_TOTAL INTENSIFIED ON.
WRITE: / SY-VLINE NO-GAP,
(87)TEXT-044 ,SY-VLINE NO-GAP,
(15) ITAB_GLPCA1-HSL DECIMALS 0 NO-GAP,
SY-VLINE NO-GAP,
(72) SPACE NO-GAP,
SY-VLINE NO-GAP.
HIDE: V_HIDE_BUKRS, V_HIDE_GJAHR, V_HIDE_BELNR, V_HIDE_AWTYP.
FORMAT COLOR OFF.
ULINE :/(179).
HIDE: V_HIDE_BUKRS, V_HIDE_GJAHR, V_HIDE_BELNR, V_HIDE_AWTYP.
ENDAT.
ENDLOOP.
ENDFORM. " DRILL_DOWN
&----
*& Form DRILL_DOWN_HEADER
&----
text
----
--> p1 text
<-- p2 text
----
FORM DRILL_DOWN_HEADER.
CLEAR: V_HIDE_BUKRS, V_HIDE_GJAHR, V_HIDE_BELNR, V_HIDE_AWTYP.
WRITE: /(179) TEXT-038 CENTERED.
HIDE: V_HIDE_BUKRS, V_HIDE_GJAHR, V_HIDE_BELNR, V_HIDE_AWTYP.
WRITE: /(179) TEXT-039 CENTERED.
HIDE: V_HIDE_BUKRS, V_HIDE_GJAHR, V_HIDE_BELNR, V_HIDE_AWTYP.
WRITE: /2 TEXT-040 NO-GAP, SY-DATUM,
97 TEXT-041 NO-GAP, (3)SY-PAGNO.
HIDE: V_HIDE_BUKRS, V_HIDE_GJAHR, V_HIDE_BELNR, V_HIDE_AWTYP.
ULINE :/(179).
HIDE: V_HIDE_BUKRS, V_HIDE_GJAHR, V_HIDE_BELNR, V_HIDE_AWTYP.
FORMAT COLOR COL_HEADING.
WRITE: / SY-VLINE NO-GAP,
TEXT-046 NO-GAP,
SY-VLINE NO-GAP,
TEXT-012 NO-GAP,
SY-VLINE NO-GAP,
TEXT-042 NO-GAP,
SY-VLINE NO-GAP,
TEXT-027 NO-GAP,
SY-VLINE NO-GAP,
TEXT-036 NO-GAP,
SY-VLINE NO-GAP,
TEXT-045 NO-GAP,
SY-VLINE NO-GAP,
TEXT-037 NO-GAP,
SY-VLINE NO-GAP,
TEXT-029 NO-GAP,
SY-VLINE NO-GAP,
TEXT-048 NO-GAP,
SY-VLINE NO-GAP,
TEXT-049 NO-GAP,
SY-VLINE NO-GAP,
TEXT-050 NO-GAP,
SY-VLINE NO-GAP.
HIDE: V_HIDE_BUKRS, V_HIDE_GJAHR, V_HIDE_BELNR, V_HIDE_AWTYP.
ULINE :/(179).
HIDE: V_HIDE_BUKRS, V_HIDE_GJAHR, V_HIDE_BELNR, V_HIDE_AWTYP.
ENDFORM. " DRILL_DOWN_HEADER
&----
*& Form MOVE_TO_FB03
&----
text
----
--> p1 text
<-- p2 text
----
FORM MOVE_TO_FB03.
REFRESH BDC_TAB .
PERFORM FILL_BDCDATA .
CALL TRANSACTION 'FB03' USING BDC_TAB MODE 'E'.
ENDFORM. " MOVE_TO_FB03
&----
*& Form FILL_BDCDATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM FILL_BDCDATA.
IF V_HIDE_AWTYP = 'BKPF'.
PERFORM POPULATE_BDC_TAB USING :
'1' 'SAPMF05L' '0100',
' ' 'rf05l-belnr' V_HIDE_BELNR,
' ' 'rf05l-bukrs' V_HIDE_BUKRS,
' ' 'rf05l-gjahr' V_HIDE_GJAHR.
ELSEIF V_HIDE_AWTYP = 'MKPF'.
PERFORM POPULATE_BDC_TAB USING :
'1' 'SAPMM07M' '0460',
' ' 'RM07M-MBLNR' V_HIDE_BELNR,
' ' 'RM07M-MJAHR' V_HIDE_GJAHR.
ENDIF.
ENDFORM.
&----
*& Form POPULATE_BDC_TAB
&----
text
----
-->P_0480 text *
-->P_0481 text *
-->P_0482 text *
----
FORM POPULATE_BDC_TAB USING FLAG VAR1 VAR2.
CLEAR BDC_TAB.
IF FLAG = '1'.
BDC_TAB-PROGRAM = VAR1.
BDC_TAB-DYNPRO = VAR2.
BDC_TAB-DYNBEGIN = 'X'.
ELSE.
BDC_TAB-FNAM = VAR1.
BDC_TAB-FVAL = VAR2.
ENDIF.
APPEND BDC_TAB.
ENDFORM. " POPULATE_BDC_TAB
&----
*& Form MOVE_TO_MB03
&----
text
----
--> p1 text
<-- p2 text
----
FORM MOVE_TO_MB03.
REFRESH BDC_TAB .
PERFORM FILL_BDCDATA .
CALL TRANSACTION 'MB03' USING BDC_TAB MODE 'E'.
ENDFORM. " MOVE_TO_MB03
Pages: 1 Back to Thread List
New content since your last visit
Updated content since your last visit
‎2006 Jul 23 7:03 PM
Hi Srinivas,
Go thorugh the below links,
<b>SapScript</b>
http://www.sap-img.com/sapscripts.htm
http://www.henrikfrank.dk/abapexamples/SapScript/sapscript.htm
http://help.sap.com/saphelp_47x200/helpdata/en/d1/802d91454211d189710000e8322d00/frameset.htm
<b>Smartforms</b>
http://help.sap.com/saphelp_47x200/helpdata/en/a5/de6838abce021ae10000009b38f842/frameset.htm
http://www.sap-basis-abap.com/sapsf001.htm
http://www.sap-press.com/downloads/h955_preview.pdf
http://www.ossincorp.com/Black_Box/Black_Box_2.htm
http://www.sap-img.com/smartforms/sap-smart-forms.htm
Please dont forget to reward points for helpful answers and close the thread.
Regards,
Azaz Ali.
Message was edited by: Azaz Ali
‎2007 Jan 30 4:46 AM
Hi,
Scripts are nothing but forms using this v can communicate to our vendors and customers.
The Output of the scripts are called as output form or print programs like that only.
Using this scripts v can design the output of the required things easily when compare to the reports.
Otherwise we can say the scripts are advanced version of reports.
Smarforms and Smartstyles are there. These are all the advanced versions of scripts. Compare to scripts in smarforms we can design the output of the requirements very easily.
Regards,
shankar