Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

SAP-SCRIPTS

Former Member
0 Likes
987

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?

8 REPLIES 8
Read only

ferry_lianto
Active Contributor
0 Likes
924

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.

Read only

0 Likes
924

Hai ferry.

I didnt get the clear view abt this plz tellme Scripts types?

Read only

0 Likes
924

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

Read only

0 Likes
924

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

Read only

0 Likes
924

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)

Read only

0 Likes
924

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

Read only

p291102
Active Contributor
0 Likes
924

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