10-18-2007 1:34 AM
hi there, im new to abap,
plz help me to solve this problem.
how to save a report in text format rather then printing it after it have finish ranning.
the report is in this t-code ZV10, after the user runs the report, it automaticaly prints it. But i have been ask to change it to save the report rather then from printing it.
plz help me to solve this issue.
thank you.
vasan
10-18-2007 1:45 AM
It means that you need to download report in the form of text file after it is run.
For this you need to add FILE parameter on your selection screen so that user can enter file name with path.
After this, in your program use function module GUI_DOWNLOAD to download this report to specified location.
You need to pass your output internal table to this function module.
Check this thread, it gives code sample for Presentation server file path name as well as download functionality.
Hope this helps.
ashish
PS: If you just want to save report output, from output screen then see this thread.
Message was edited by:
Ashish Gundawar
10-18-2007 1:45 AM
It means that you need to download report in the form of text file after it is run.
For this you need to add FILE parameter on your selection screen so that user can enter file name with path.
After this, in your program use function module GUI_DOWNLOAD to download this report to specified location.
You need to pass your output internal table to this function module.
Check this thread, it gives code sample for Presentation server file path name as well as download functionality.
Hope this helps.
ashish
PS: If you just want to save report output, from output screen then see this thread.
Message was edited by:
Ashish Gundawar
10-19-2007 2:06 AM
hi there,
it means that i have creat a parameter in the selection screen , then the user can choose the out path.
<i>is it possible for me to juz default the out to be save rather then printing it? because the users here r to lazy to select the out path in the selection screen. they want a default out put.
thank you.</i>
10-19-2007 2:41 AM
In that case you can specify default path in the initialization something like C:\Report.txt or so.
In this way, file will get downloaded automatically. You need to put a check the the program is not run in background (SY-BATCH = SPACE) as presentation server download does not work in background.
Hope this helps.
ashish
10-19-2007 3:03 AM
hi there,
thanks for your advice,
currently in my place, the report actually runs once a day (spool). the output actually being printed directly after the report is finish running. the user only can c the content of the report once it have been finish running.
now they want it to be changed, so that the report still can be running once a day by using spool, and the output will be saved into C:\ rather then printed.
then the user can view the content of the report and chose whether he wana print it or send the soft copy.
<i>in this case, how could i change the out put from being printed to saving it in C:\?</i>
<i> ***********************************************************************
PROGRAM: REPORT ZV004REP
TITLE: IRF#2124 - SO PRICING CONDITIONS
AUTHOR: EAU PHEY LING
DATE WRITTEN: 9 AUGUST 2006
RELEASE: DM2K906298
Package: ZSD
======================================================================
CHANGE HISTORY
======================================================================
*& CR# Date Description Developer
*& -
-
-
-
*& DM2K906302 17/08/06 1. add one more selection PHEYLING
*& CH0001 parameter for Delivery Plant
*&
*& 2. add two new columns for
*& Pricing Condition of ZCRT & ZHDC.
************************************************************************
*& DM2K906308 18/08/06 Create T-Code Alex
************************************************************************
*& DM2K906312 21/08/06 CHANGE SELECTION TEXT PHEYLING
************************************************************************
*& DM2K906368 29/08/06 1. add new column "created by" PHEYLING
CH0002
2. add new column "reject desc"
3. add new column "Product hierarchy"
************************************************************************
REPORT ZV004REP .
----
T A B L E S . *
----
TABLES: VBAK, VBPA, VBKD, VBAP, MAKT, VBEP, MARA, KONV, VBUK, TVAGT.
----
I N T E R N A L T A B L E S . *
----
TYPES: BEGIN OF SY_VBAK,
VBELN TYPE VBAK-VBELN,
KNUMV TYPE VBAK-KNUMV,
ERDAT TYPE VBAK-ERDAT,
BSTNK TYPE VBAK-BSTNK,
KVGR1 TYPE VBAK-KVGR1,
WAERK TYPE VBAK-WAERK,
ERNAM TYPE VBAK-ERNAM,
END OF SY_VBAK,
BEGIN OF SY_VBPA,
VBELN TYPE VBPA-VBELN,
POSNR TYPE VBPA-POSNR,
PARVW TYPE VBPA-PARVW,
KUNNR TYPE VBPA-KUNNR,
END OF SY_VBPA,
BEGIN OF SY_VBKD,
VBELN TYPE VBKD-VBELN,
POSNR TYPE VBKD-POSNR,
KDGRP TYPE VBKD-KDGRP,
BZIRK TYPE VBKD-BZIRK,
END OF SY_VBKD,
BEGIN OF SY_VBAP,
VBELN TYPE VBAP-VBELN,
POSNR TYPE VBAP-POSNR,
WERKS TYPE VBAP-WERKS,
MATNR TYPE VBAP-MATNR,
PRODH TYPE VBAP-PRODH,
ABGRU TYPE VBAP-ABGRU,
ARKTX TYPE VBAP-ARKTX,
MATKL TYPE VBAP-MATKL,
END OF SY_VBAP,
BEGIN OF SY_VBEP,
VBELN TYPE VBEP-VBELN,
POSNR TYPE VBEP-POSNR,
WMENG TYPE VBEP-WMENG,
END OF SY_VBEP,
*BEGIN OF CH0002
BEGIN OF SY_TVAGT,
SPRAS TYPE TVAGT-SPRAS,
ABGRU TYPE TVAGT-ABGRU,
BEZEI TYPE TVAGT-BEZEI,
END OF SY_TVAGT,
*END OFF CH0002
BEGIN OF SY_KONV,
KNUMV TYPE KONV-KNUMV,
KPOSN TYPE KONV-KPOSN,
WAERS TYPE KONV-WAERS,
KWERT TYPE KONV-KWERT,
KSCHL TYPE KONV-KSCHL,
END OF SY_KONV,
BEGIN OF SY_INTAB,
ERDAT TYPE ERDAT,
VBELN TYPE VBELN,
BSTNK TYPE BSTNK,
KVGR1 TYPE KVGR1,
WAERK TYPE WAERK,
ERNAM TYPE ERNAM,
SOPTY TYPE KUNNR,
ENCUS TYPE KUNNR,
SALEP TYPE KUNNR,
KDGRP TYPE KDGRP,
**CH0002-BEGIN
BEZEI TYPE BEZEI,
**CH0002-END
BZIRK TYPE BZIRK,
POSNR TYPE POSNR,
WERKS TYPE WERKS,
ARKTX TYPE ARKTX,
MATNR TYPE MATNR,
PRODH TYPE PRODH,
MATKL TYPE MATKL,
WMENG TYPE WMENG,
WAERS TYPE WAERS,
ABGRU TYPE ABGRU,
ZLP1 TYPE KWERT,
ZA01 TYPE KWERT,
ZNDN TYPE kwert,
RA00 TYPE kwert,
ZB00 TYPE kwert,
MWST TYPE kwert,
VPRS TYPE kwert,
ZPR1 TYPE kwert,
ZCR1 TYPE kwert,
ZCRS TYPE kwert,
ZPRS TYPE kwert,
EK02 TYPE kwert,
CH0001 - BEGIN.
ZCRT TYPE KWERT,
ZHDC TYPE KWERT,
CH0001 - END.
ZLP1(15) TYPE C,
ZA01(15) TYPE C,
ZNDN(15) TYPE C,
RA00(15) TYPE C,
ZB00(15) TYPE C,
MWST(15) TYPE C,
VPRS(15) TYPE C,
ZPR1(15) TYPE C,
ZCR1(15) TYPE C,
ZCRS(15) TYPE C,
ZPRS(15) TYPE C,
EK02(15) TYPE C,
CH0001 - BEGIN.
ZCRT(15) TYPE C,
ZHDC(15) TYPE C,
CH0001 - END.
END OF SY_INTAB,
TS_VBAK TYPE SORTED TABLE OF SY_VBAK WITH NON-UNIQUE KEY VBELN,
TS_VBPA TYPE SORTED TABLE OF SY_VBPA WITH NON-UNIQUE KEY VBELN
POSNR
PARVW,
TS_VBKD TYPE SORTED TABLE OF SY_VBKD WITH NON-UNIQUE KEY VBELN
POSNR,
TS_VBAP TYPE SORTED TABLE OF SY_VBAP WITH NON-UNIQUE KEY VBELN
POSNR,
TS_VBEP TYPE SORTED TABLE OF SY_VBEP WITH NON-UNIQUE KEY VBELN
POSNR,
TS_KONV TYPE SORTED TABLE OF SY_KONV WITH NON-UNIQUE KEY KNUMV
KPOSN
KSCHL,
*CH0002-BEGIN
TS_TVAGT TYPE SORTED TABLE OF SY_TVAGT WITH NON-UNIQUE KEY SPRAS
ABGRU,
*CH0002-END
TS_INTAB TYPE STANDARD TABLE OF SY_INTAB.
DATA: TT_VBAK TYPE TS_VBAK WITH HEADER LINE,
TT_VBPA TYPE TS_VBPA WITH HEADER LINE,
TT_VBKD TYPE TS_VBKD WITH HEADER LINE,
TT_VBAP TYPE TS_VBAP WITH HEADER LINE,
TT_VBEP TYPE TS_VBEP WITH HEADER LINE,
TT_KONV TYPE TS_KONV WITH HEADER LINE,
**CH0002-BEGIN
TT_TVAGT TYPE TS_TVAGT WITH HEADER LINE,
*8CH0002-END
TT_INTAB TYPE TS_INTAB WITH HEADER LINE.
**CH0002-BEGIN
CONSTANTS: NOVALUE TYPE C VALUE ' '.
**CH0002-END
DATA: OK_CODE LIKE SY-UCOMM,
G_REPID LIKE SY-REPID,
GS_PRINT TYPE LVC_S_PRNT,
GS_LAYOUT TYPE LVC_S_LAYO,
IT_FCAT TYPE LVC_T_FCAT,
WA_FCAT TYPE LVC_S_FCAT,
CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
GRID1 TYPE REF TO CL_GUI_ALV_GRID.
----
P A R A M E T E R S, S E L E C T O P T I O N S . *
----
SELECTION-SCREEN BEGIN OF BLOCK 001 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: S_VBELN FOR VBAK-VBELN,
S_AUART FOR VBAK-AUART,
S_ERDAT FOR VBAK-ERDAT,
S_BESTK FOR VBUK-BESTK,
S_ERNAM FOR VBAK-ERNAM,
CHOO01 - BEGIN.
S_WERKS FOR VBAP-WERKS.
CHOO01 - END.
SELECTION-SCREEN: SKIP.
SELECTION-SCREEN END OF BLOCK 001.
----
S T A R T - O F - S E L E C T I O N . *
----
START-OF-SELECTION.
Check input. Key selection cannot be blank!
IF S_VBELN
AND S_AUART
AND S_ERDAT
AND S_BESTK
AND S_ERNAM
CH0001 - BEGIN.
AND S_WERKS IS INITIAL.
CH0001 - END.
MESSAGE I000(ZABAP_MSG).
ELSE.
PERFORM GET_DATA.
PERFORM COLLECT_DATA.
G_REPID = SY-REPID.
CALL SCREEN 100.
ENDIF.
&----
*& Form GET_DATA
&----
FORM GET_DATA.
SELECT PVBELN PKNUMV PERDAT PBSTNK PKVGR1 PWAERK P~ERNAM
FROM VBAK AS P INNER JOIN VBUK AS T ON PVBELN = TVBELN
INTO TABLE TT_VBAK
WHERE P~VBELN IN S_VBELN AND
P~AUART IN S_AUART AND
P~ERDAT IN S_ERDAT AND
P~ERNAM IN S_ERNAM AND
T~BESTK IN S_BESTK.
PERFORM F_POP_VBAP .
PERFORM F_POP_VBPA .
PERFORM F_POP_VBKD .
PERFORM F_POP_VBEP.
PERFORM F_POP_KONV.
PERFORM F_POP_TVAGT .
ENDFORM. "GET_DATA
&----
*& Form COLLECT_DATA
&----
FORM COLLECT_DATA.
LOOP AT TT_VBAP.
*COLLECT ITEM, PLANT, MATERIAL NO, REJECT REASON, MAT GRP, DESC.
MOVE: TT_VBAP-POSNR TO TT_INTAB-POSNR,
TT_VBAP-WERKS TO TT_INTAB-WERKS,
TT_VBAP-MATNR TO TT_INTAB-MATNR,
TT_VBAP-PRODH TO TT_INTAB-PRODH,
TT_VBAP-ABGRU TO TT_INTAB-ABGRU,
TT_VBAP-MATKL TO TT_INTAB-MATKL,
TT_VBAP-ARKTX TO TT_INTAB-ARKTX.
**CH0002-BEGIN
*COLLECT REJECT DESC
READ TABLE TT_TVAGT WITH KEY ABGRU = TT_VBAP-ABGRU.
MOVE: TT_TVAGT-BEZEI TO TT_INTAB-BEZEI.
**CH0002-END
*COLLECT DATE,SALES DOC, PO NO, CUST GRP1, CURRENCY
READ TABLE TT_VBAK WITH KEY VBELN = TT_VBAP-VBELN.
MOVE: TT_VBAK-ERDAT TO TT_INTAB-ERDAT,
TT_VBAK-VBELN TO TT_INTAB-VBELN,
TT_VBAK-BSTNK TO TT_INTAB-BSTNK,
TT_VBAK-KVGR1 TO TT_INTAB-KVGR1,
TT_VBAK-ERNAM TO TT_INTAB-ERNAM,
TT_VBAK-WAERK TO TT_INTAB-WAERK.
*COLLECT SOLD-TO-PARTY
READ TABLE TT_VBPA WITH KEY VBELN = TT_VBAP-VBELN
PARVW = 'AG'.
MOVE: TT_VBPA-KUNNR TO TT_INTAB-SOPTY.
CLEAR TT_VBPA-KUNNR.
*COLLECT END CUSTOMER
READ TABLE TT_VBPA WITH KEY VBELN = TT_VBAP-VBELN
PARVW = 'Z2'.
MOVE: TT_VBPA-KUNNR TO TT_INTAB-ENCUS.
CLEAR TT_VBPA-KUNNR.
*COLLECT SALES PERSON
READ TABLE TT_VBPA WITH KEY VBELN = TT_VBAP-VBELN
PARVW = 'Z3'.
MOVE: TT_VBPA-KUNNR TO TT_INTAB-SALEP.
CLEAR TT_VBPA-KUNNR.
*COLLECT END CUST GRP, SALES DISTRICT
READ TABLE TT_VBKD WITH KEY VBELN = TT_VBAP-VBELN.
MOVE: TT_VBKD-KDGRP TO TT_INTAB-KDGRP,
TT_VBKD-BZIRK TO TT_INTAB-BZIRK.
*COLLECT CONFIRM QUANTITY
READ TABLE TT_VBEP WITH KEY VBELN = TT_VBAK-VBELN
POSNR = TT_VBAP-POSNR.
MOVE: TT_VBEP-WMENG TO TT_INTAB-WMENG.
*COLLECT CONDITION TYPE.
READ TABLE TT_KONV WITH KEY KPOSN = TT_VBAP-POSNR
KNUMV = TT_VBAK-KNUMV
KSCHL = 'ZLP1'.
IF TT_KONV-KSCHL EQ 'ZLP1'.
MOVE: TT_KONV-KWERT TO TT_INTAB-ZLP1.
ENDIF.
CLEAR TT_KONV-KWERT.
READ TABLE TT_KONV WITH KEY KPOSN = TT_VBAP-POSNR
KNUMV = TT_VBAK-KNUMV
KSCHL = 'ZA01'.
IF TT_KONV-KSCHL EQ 'ZA01'.
MOVE: TT_KONV-KWERT TO TT_INTAB-ZA01.
ENDIF.
CLEAR TT_KONV-KWERT.
READ TABLE TT_KONV WITH KEY KPOSN = TT_VBAP-POSNR
KNUMV = TT_VBAK-KNUMV
KSCHL = 'ZNDN'.
IF TT_KONV-KSCHL EQ 'ZNDN'.
MOVE: TT_KONV-KWERT TO TT_INTAB-ZNDN.
ENDIF.
CLEAR TT_KONV-KWERT.
READ TABLE TT_KONV WITH KEY KPOSN = TT_VBAP-POSNR
KNUMV = TT_VBAK-KNUMV
KSCHL = 'RA00'.
IF TT_KONV-KSCHL EQ 'RA00'.
MOVE: TT_KONV-KWERT TO TT_INTAB-RA00.
ENDIF.
CLEAR TT_KONV-KWERT.
READ TABLE TT_KONV WITH KEY KPOSN = TT_VBAP-POSNR
KNUMV = TT_VBAK-KNUMV
KSCHL = 'ZB00'.
IF TT_KONV-KSCHL EQ 'ZB00'.
MOVE: TT_KONV-KWERT TO TT_INTAB-ZB00.
ENDIF.
CLEAR TT_KONV-KWERT.
READ TABLE TT_KONV WITH KEY KPOSN = TT_VBAP-POSNR
KNUMV = TT_VBAK-KNUMV
KSCHL = 'MWST'.
IF TT_KONV-KSCHL EQ 'MWST'.
MOVE: TT_KONV-KWERT TO TT_INTAB-MWST.
ENDIF.
CLEAR TT_KONV-KWERT.
READ TABLE TT_KONV WITH KEY KPOSN = TT_VBAP-POSNR
KNUMV = TT_VBAK-KNUMV
KSCHL = 'VPRS'.
IF TT_KONV-KSCHL EQ 'VPRS'.
MOVE: TT_KONV-KWERT TO TT_INTAB-VPRS.
ENDIF.
CLEAR TT_KONV-KWERT.
READ TABLE TT_KONV WITH KEY KPOSN = TT_VBAP-POSNR
KNUMV = TT_VBAK-KNUMV
KSCHL = 'ZPR1'.
IF TT_KONV-KSCHL EQ 'ZPR1'.
MOVE: TT_KONV-KWERT TO TT_INTAB-ZPR1.
ENDIF.
CLEAR TT_KONV-KWERT.
READ TABLE TT_KONV WITH KEY KPOSN = TT_VBAP-POSNR
KNUMV = TT_VBAK-KNUMV
KSCHL = 'ZCR1'.
IF TT_KONV-KSCHL EQ 'ZCR1'.
MOVE: TT_KONV-KWERT TO TT_INTAB-ZCR1.
ENDIF.
CLEAR TT_KONV-KWERT.
READ TABLE TT_KONV WITH KEY KPOSN = TT_VBAP-POSNR
KNUMV = TT_VBAK-KNUMV
KSCHL = 'ZCRS'.
IF TT_KONV-KSCHL EQ 'ZCRS'.
MOVE: TT_KONV-KWERT TO TT_INTAB-ZCRS.
ENDIF.
CLEAR TT_KONV-KWERT.
READ TABLE TT_KONV WITH KEY KPOSN = TT_VBAP-POSNR
KNUMV = TT_VBAK-KNUMV
KSCHL = 'ZPRS'.
IF TT_KONV-KSCHL EQ 'ZPRS'.
MOVE: TT_KONV-KWERT TO TT_INTAB-ZPRS.
ENDIF.
CLEAR TT_KONV-KWERT.
READ TABLE TT_KONV WITH KEY KPOSN = TT_VBAP-POSNR
KNUMV = TT_VBAK-KNUMV
KSCHL = 'EK02'.
IF TT_KONV-KSCHL EQ 'EK02'.
MOVE: TT_KONV-KWERT TO TT_INTAB-EK02.
ENDIF.
CH0001 - BEGIN.
CLEAR TT_KONV-KWERT.
READ TABLE TT_KONV WITH KEY KPOSN = TT_VBAP-POSNR
KNUMV = TT_VBAK-KNUMV
KSCHL = 'ZCRT'.
IF TT_KONV-KSCHL EQ 'ZCRT'.
MOVE: TT_KONV-KWERT TO TT_INTAB-ZCRT.
ENDIF.
CLEAR TT_KONV-KWERT.
READ TABLE TT_KONV WITH KEY KPOSN = TT_VBAP-POSNR
KNUMV = TT_VBAK-KNUMV
KSCHL = 'ZHDC'.
IF TT_KONV-KSCHL EQ 'ZHDC'.
MOVE: TT_KONV-KWERT TO TT_INTAB-ZHDC.
ENDIF.
CH0001 - END.
*APPEND DATA
APPEND TT_INTAB. CLEAR TT_INTAB.
ENDLOOP.
ENDFORM. "COLLECT_DATA
----
MODULE PBO OUTPUT *
----
MODULE PBO OUTPUT.
SET PF-STATUS 'MAIN100'.
SET TITLEBAR 'MAIN100'.
IF CUSTOM_CONTAINER IS INITIAL.
create a custom container control for our ALV Control
CREATE OBJECT CUSTOM_CONTAINER
EXPORTING
CONTAINER_NAME = 'MYCONTAINER'
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5.
IF SY-SUBRC NE 0.
CALL FUNCTION 'POPUP_TO_INFORM'
EXPORTING
TITEL = G_REPID
TXT2 = SY-SUBRC
TXT1 = 'The control could not be created'(010).
ENDIF.
create an instance of alv control
CREATE OBJECT GRID1
EXPORTING I_PARENT = CUSTOM_CONTAINER.
Set a titlebar for the grid control
GS_LAYOUT-GRID_TITLE = 'Sales Order Pricing Conditions'(100).
reserve two lines for the PRINT_END_OF_PAGE event
GS_PRINT-RESERVELNS = 2.
PERFORM GENERATE_FIELDCATALOG.
CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_STRUCTURE_NAME = 'TT_INTAB'
IS_PRINT = GS_PRINT
IS_LAYOUT = GS_LAYOUT
CHANGING
IT_FIELDCATALOG = IT_FCAT
IT_OUTTAB = TT_INTAB[].
ENDIF.
CALL METHOD CL_GUI_CONTROL=>SET_FOCUS
EXPORTING
CONTROL = GRID1.
ENDMODULE. "pbo OUTPUT
----
MODULE PAI INPUT *
----
MODULE PAI INPUT.
CASE OK_CODE.
WHEN 'EXIT'.
PERFORM EXIT_PROGRAM.
ENDCASE.
CLEAR OK_CODE.
ENDMODULE. "pai INPUT
----
FORM EXIT_PROGRAM *
----
FORM EXIT_PROGRAM.
CALL METHOD CUSTOM_CONTAINER->FREE.
CALL METHOD CL_GUI_CFW=>FLUSH.
IF SY-SUBRC NE 0.
CALL FUNCTION 'POPUP_TO_INFORM'
EXPORTING
TITEL = G_REPID
TXT2 = SY-SUBRC
TXT1 = 'Error in Flush'(009).
ENDIF.
LEAVE PROGRAM.
ENDFORM. "exit_program
&----
*& Form generate_fieldcatalog
&----
FORM GENERATE_FIELDCATALOG.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'ERDAT'.
WA_FCAT-REF_FIELD = 'ERDAT'.
WA_FCAT-REF_TABLE = 'VBAK'.
WA_FCAT-COLTEXT = 'Date'.
WA_FCAT-TOOLTIP = 'Document Date'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'VBELN'.
WA_FCAT-REF_FIELD = 'VBELN'.
WA_FCAT-REF_TABLE = 'VBAK'.
WA_FCAT-COLTEXT = 'Sales Doc'.
WA_FCAT-TOOLTIP = 'Sales Document'.
APPEND WA_FCAT TO IT_FCAT.
**CH0002-BEGIN
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'ERNAM'.
WA_FCAT-REF_FIELD = 'ERNAM'.
WA_FCAT-REF_TABLE = 'VBAK'.
WA_FCAT-COLTEXT = 'Created By'.
WA_FCAT-TOOLTIP = 'Created By'.
APPEND WA_FCAT TO IT_FCAT.
**CH0002-END
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'BSTNK'.
WA_FCAT-REF_FIELD = 'BSTNK'.
WA_FCAT-REF_TABLE = 'VBAK'.
WA_FCAT-COLTEXT = 'PO Num'.
WA_FCAT-TOOLTIP = 'Customer Purchase Order Number'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'SOPTY'.
WA_FCAT-REF_FIELD = 'KUNNR'.
WA_FCAT-REF_TABLE = 'VBPA'.
WA_FCAT-COLTEXT = 'Sold-to Party'.
WA_FCAT-TOOLTIP = 'Sold-to Party'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'ENCUS'.
WA_FCAT-REF_FIELD = 'KUNNR'.
WA_FCAT-REF_TABLE = 'VBPA'.
WA_FCAT-COLTEXT = 'End Customer'.
WA_FCAT-TOOLTIP = 'End Customer'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'KDGRP'.
WA_FCAT-REF_FIELD = 'KDGRP'.
WA_FCAT-REF_TABLE = 'VBKD'.
WA_FCAT-COLTEXT = 'End Cust. Grp.'.
WA_FCAT-TOOLTIP = 'Customer Group'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'KVGR1'.
WA_FCAT-REF_FIELD = 'KVGR1'.
WA_FCAT-REF_TABLE = 'VBAK'.
WA_FCAT-COLTEXT = 'Cust.Grp.1'.
WA_FCAT-TOOLTIP = 'Customer Group 1'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'BZIRK'.
WA_FCAT-REF_FIELD = 'BZIRK'.
WA_FCAT-REF_TABLE = 'VBPA'.
WA_FCAT-COLTEXT = 'Sales District'.
WA_FCAT-TOOLTIP = 'Sales District'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'SALEP'.
WA_FCAT-REF_FIELD = 'KUNNR'.
WA_FCAT-REF_TABLE = 'VBPA'.
WA_FCAT-COLTEXT = 'Sales Person'.
WA_FCAT-TOOLTIP = 'Sales Person'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'POSNR'.
WA_FCAT-REF_FIELD = 'POSNR'.
WA_FCAT-REF_TABLE = 'VBAP'.
WA_FCAT-COLTEXT = 'Item'.
WA_FCAT-TOOLTIP = 'Sales Document Item'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'WERKS'.
WA_FCAT-REF_FIELD = 'WERKS'.
WA_FCAT-REF_TABLE = 'VBAP'.
WA_FCAT-COLTEXT = 'Plant'.
WA_FCAT-TOOLTIP = 'Delivery Plant'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'MATNR'.
WA_FCAT-REF_FIELD = 'MATNR'.
WA_FCAT-REF_TABLE = 'VBAP'.
WA_FCAT-COLTEXT = 'Material No.'.
WA_FCAT-TOOLTIP = 'Material Number'.
APPEND WA_FCAT TO IT_FCAT.
ADDED BY JSPC ON 05/08/2006
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'PRODH'.
WA_FCAT-REF_FIELD = 'PRODH'.
WA_FCAT-REF_TABLE = 'VBAP'.
WA_FCAT-COLTEXT = 'Product Hierarchy'.
WA_FCAT-TOOLTIP = 'Product Hierarchy'.
APPEND WA_FCAT TO IT_FCAT.
*********END OF ADDING.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'ARKTX'.
WA_FCAT-REF_FIELD = 'ARKTX'.
WA_FCAT-REF_TABLE = 'VBAP'.
WA_FCAT-COLTEXT = 'Description'.
WA_FCAT-TOOLTIP = 'Material Description'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'MATKL'.
WA_FCAT-REF_FIELD = 'MATKL'.
WA_FCAT-REF_TABLE = 'VBAP'.
WA_FCAT-COLTEXT = 'Mat Grp'.
WA_FCAT-TOOLTIP = 'Material Group'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'WMENG'.
WA_FCAT-REF_FIELD = 'WMENG'.
WA_FCAT-REF_TABLE = 'VBEP'.
WA_FCAT-COLTEXT = 'Ord Qty'.
WA_FCAT-TOOLTIP = 'Confirmed Quantity'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'WAERK'.
WA_FCAT-REF_FIELD = 'WAERK'.
WA_FCAT-REF_TABLE = 'VBAK'.
WA_FCAT-COLTEXT = 'Curr'.
WA_FCAT-TOOLTIP = 'Currency Key'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'ABGRU'.
WA_FCAT-REF_FIELD = 'ABGRU'.
WA_FCAT-REF_TABLE = 'VBAP'.
WA_FCAT-COLTEXT = 'Reject'.
WA_FCAT-TOOLTIP = 'Reason for rejection of quotations & sales orders.'
.
APPEND WA_FCAT TO IT_FCAT.
**CH0002-BEGIN
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'BEZEI'.
WA_FCAT-REF_FIELD = 'BEZEI'.
WA_FCAT-REF_TABLE = 'TVAGT'.
WA_FCAT-COLTEXT = 'Reject Desc.'.
WA_FCAT-TOOLTIP = 'Reject Description'.
APPEND WA_FCAT TO IT_FCAT.
**CH0002-END
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'ZLP1'.
WA_FCAT-REF_FIELD = 'KWERT'.
WA_FCAT-REF_TABLE = 'KONV'.
WA_FCAT-COLTEXT = 'ZLP1'.
WA_FCAT-TOOLTIP = 'Condition Type'.
WA_FCAT-NO_ZERO = 'X'.
WA_FCAT-LZERO = 'X'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'ZA01'.
WA_FCAT-REF_FIELD = 'KWERT'.
WA_FCAT-REF_TABLE = 'KONV'.
WA_FCAT-COLTEXT = 'ZA01'.
WA_FCAT-TOOLTIP = 'Condition Type'.
WA_FCAT-NO_ZERO = 'X'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'ZNDN'.
WA_FCAT-REF_FIELD = 'KWERT'.
WA_FCAT-REF_TABLE = 'KONV'.
WA_FCAT-COLTEXT = 'ZNDN'.
WA_FCAT-TOOLTIP = 'Condition Type'.
WA_FCAT-NO_ZERO = 'X'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'RA00'.
WA_FCAT-REF_FIELD = 'KWERT'.
WA_FCAT-REF_TABLE = 'KONV'.
WA_FCAT-COLTEXT = 'RA00'.
WA_FCAT-TOOLTIP = 'Condition Type'.
WA_FCAT-NO_ZERO = 'X'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'ZB00'.
WA_FCAT-REF_FIELD = 'KWERT'.
WA_FCAT-REF_TABLE = 'KONV'.
WA_FCAT-COLTEXT = 'ZB00'.
WA_FCAT-TOOLTIP = 'Condition Type'.
WA_FCAT-NO_ZERO = 'X'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'MWST'.
WA_FCAT-REF_FIELD = 'KWERT'.
WA_FCAT-REF_TABLE = 'KONV'.
WA_FCAT-COLTEXT = 'MWST'.
WA_FCAT-TOOLTIP = 'Condition Type'.
WA_FCAT-NO_ZERO = 'X'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'VPRS'.
WA_FCAT-REF_FIELD = 'KWERT'.
WA_FCAT-REF_TABLE = 'KONV'.
WA_FCAT-COLTEXT = 'VPRS'.
WA_FCAT-TOOLTIP = 'Condition Type'.
WA_FCAT-NO_ZERO = 'X'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'ZPR1'.
WA_FCAT-REF_FIELD = 'KWERT'.
WA_FCAT-REF_TABLE = 'KONV'.
WA_FCAT-COLTEXT = 'ZPR1'.
WA_FCAT-TOOLTIP = 'Condition Type'.
WA_FCAT-NO_ZERO = 'X'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'ZCR1'.
WA_FCAT-REF_FIELD = 'KWERT'.
WA_FCAT-REF_TABLE = 'KONV'.
WA_FCAT-COLTEXT = 'ZCR1'.
WA_FCAT-TOOLTIP = 'Condition Type'.
WA_FCAT-NO_ZERO = 'X'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'ZCRS'.
WA_FCAT-REF_FIELD = 'KWERT'.
WA_FCAT-REF_TABLE = 'KONV'.
WA_FCAT-COLTEXT = 'ZCRS'.
WA_FCAT-TOOLTIP = 'Condition Type'.
WA_FCAT-NO_ZERO = 'X'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'ZPRS'.
WA_FCAT-REF_FIELD = 'KWERT'.
WA_FCAT-REF_TABLE = 'KONV'.
WA_FCAT-COLTEXT = 'ZPRS'.
WA_FCAT-TOOLTIP = 'Condition Type'.
WA_FCAT-NO_ZERO = 'X'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'EK02'.
WA_FCAT-REF_FIELD = 'KWERT'.
WA_FCAT-REF_TABLE = 'KONV'.
WA_FCAT-COLTEXT = 'EK02'.
WA_FCAT-TOOLTIP = 'Condition Type'.
WA_FCAT-NO_ZERO = 'X'.
APPEND WA_FCAT TO IT_FCAT.
CH0001 - BEGIN.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'ZCRT'.
WA_FCAT-REF_FIELD = 'KWERT'.
WA_FCAT-REF_TABLE = 'KONV'.
WA_FCAT-COLTEXT = 'ZCRT'.
WA_FCAT-TOOLTIP = 'Condition Type'.
WA_FCAT-NO_ZERO = 'X'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'ZHDC'.
WA_FCAT-REF_FIELD = 'KWERT'.
WA_FCAT-REF_TABLE = 'KONV'.
WA_FCAT-COLTEXT = 'ZHDC'.
WA_FCAT-TOOLTIP = 'Condition Type'.
WA_FCAT-NO_ZERO = 'X'.
APPEND WA_FCAT TO IT_FCAT.
CH0001 - END.
ENDFORM. "generate_fieldcatalog
&----
*& Form f_pop_vbap
&----
pop vbap
----
FORM F_POP_VBAP .
DATA: LTT_DATA LIKE TT_VBAK OCCURS 0 .
LTT_DATA[] = TT_VBAK[].
SORT LTT_DATA BY VBELN.
DELETE ADJACENT DUPLICATES FROM LTT_DATA COMPARING VBELN.
CHECK NOT LTT_DATA[] IS INITIAL.
SELECT VBELN POSNR WERKS MATNR PRODH ABGRU ARKTX MATKL FROM VBAP
INTO TABLE TT_VBAP
FOR ALL ENTRIES IN LTT_DATA
WHERE VBELN = LTT_DATA-VBELN
CH0001 - BEGIN.
AND WERKS IN S_WERKS.
CH0001 - END.
ENDFORM. " f_pop_vbap
&----
*& Form f_pop_vbpa
&----
pop vbpa
----
FORM F_POP_VBPA .
DATA: LTT_DATA LIKE TT_VBAK OCCURS 0 .
LTT_DATA[] = TT_VBAK[].
SORT LTT_DATA BY VBELN.
DELETE ADJACENT DUPLICATES FROM LTT_DATA COMPARING VBELN.
CHECK NOT LTT_DATA[] IS INITIAL.
SELECT VBELN POSNR PARVW KUNNR FROM VBPA
INTO TABLE TT_VBPA
FOR ALL ENTRIES IN LTT_DATA
WHERE VBELN = LTT_DATA-VBELN.
ENDFORM. " f_pop_vbpa
&----
*& Form f_pop_vbkd
&----
pop vbkd
----
FORM F_POP_VBKD .
DATA: LTT_DATA LIKE TT_VBAK OCCURS 0 .
LTT_DATA[] = TT_VBAK[].
SORT LTT_DATA BY VBELN.
DELETE ADJACENT DUPLICATES FROM LTT_DATA COMPARING VBELN.
CHECK NOT LTT_DATA[] IS INITIAL.
SELECT VBELN POSNR KDGRP BZIRK FROM VBKD
INTO TABLE TT_VBKD
FOR ALL ENTRIES IN LTT_DATA
WHERE VBELN = LTT_DATA-VBELN.
ENDFORM. " f_pop_vbkd
&----
*& Form f_pop_vbep
&----
pop vbep
----
FORM F_POP_VBEP .
DATA: LTT_DATA LIKE TT_VBAK OCCURS 0 .
LTT_DATA[] = TT_VBAK[].
SORT LTT_DATA BY VBELN.
DELETE ADJACENT DUPLICATES FROM LTT_DATA COMPARING VBELN.
CHECK NOT LTT_DATA[] IS INITIAL.
SELECT VBELN POSNR WMENG FROM VBEP
INTO TABLE TT_VBEP
FOR ALL ENTRIES IN LTT_DATA
WHERE VBELN = LTT_DATA-VBELN.
ENDFORM. " f_pop_vbep
&----
*& Form f_pop_konv
&----
pop konv
----
FORM F_POP_KONV .
DATA: LTT_DATA LIKE TT_VBAP OCCURS 0 .
LTT_DATA[] = TT_VBAP[].
SORT LTT_DATA BY POSNR.
DELETE ADJACENT DUPLICATES FROM LTT_DATA COMPARING POSNR.
CHECK NOT LTT_DATA[] IS INITIAL.
SELECT KNUMV KPOSN WAERS KWERT KSCHL FROM KONV
INTO TABLE TT_KONV
FOR ALL ENTRIES IN LTT_DATA
WHERE KPOSN = LTT_DATA-POSNR .
ENDFORM. " f_pop_konv
&----
*& Form F_POP_TVAGT
&----
POP TVAGT
----
**CH0002-BEGIN
FORM F_POP_TVAGT .
DATA: LTT_DATA LIKE TT_VBAP OCCURS 0 .
LTT_DATA[] = TT_VBAP[].
SORT LTT_DATA BY ABGRU.
DELETE ADJACENT DUPLICATES FROM LTT_DATA COMPARING ABGRU.
CHECK NOT LTT_DATA[] IS INITIAL.
SELECT SPRAS ABGRU BEZEI FROM TVAGT
INTO TABLE TT_TVAGT
FOR ALL ENTRIES IN LTT_DATA
WHERE ABGRU = LTT_DATA-ABGRU
AND SPRAS = SY-LANGU.
**CH0002-END
ENDFORM. " F_POP_TVAGT</i>
this is the current program that i took from se38.
plz advice me, thank you.
10-19-2007 3:11 AM
Looks like the program runs in background. In that case you can not download the file in presentation server. Option is either download output to Application server or email the output as an attachment.
To mail the report as an attachment at the end using function module, check this thread for more details.
This will simplify the process.
ashish
10-19-2007 3:31 AM
hi there,
thanks for ur advice,
<i>as u said erlier, can i add the parameter where the user can select the out path for the report, although it run in presentation server? and disable the printing?
the selection for the output file then can b set with default using the varient?</i>
10-19-2007 3:34 AM
You can but you need to make sure that the file download is only applicable for foreground run and not for background run. If this is not handled, program will dump when run in background.
ashish
10-22-2007 9:33 AM
hi there,
thank you for ur kindness, it was very help full for me,
thank you once again.