2008 Apr 25 6:49 AM
I HAVE ONE SIMPLE REPORT PROGRAM SAY,
&----
*& Report ZTEST25
*&
&----
*&
*&
&----
REPORT ZTEST25.
DATA : A(8) TYPE C.
A = 'ANDHRA'.
WRITE A.
THE ABOVE MENTIONED REPORT PROGRAM SHOULD BE DOWNLOADED TO A TEXT FILE USING ANOTHER REPORT PROGRAM BY USING PARAMETER.
THE OUTPUT IN THE FLAT FILE SHOULD BE:
REPORT ZTEST25.
DATA : A(8) TYPE C.
A = 'ANDHRA'.
WRITE A.
2008 Apr 25 6:54 AM
here is complete code for that
report z11dpk_assign1
no standard page heading
message-id z11dpk
line-size 200 "page width
line-count 65(0). "page length.
----
T A B L E S D E C L A R A T I O N *
-------------------------------------------------------------------*
tables: trdir, " System Table TRDIR
trdirt. " Title texts for programs in
----
D A T A D E C L A R A T I O N *
-------------------------------------------------------------------*
Types
Structure declaration for system table
types: begin of struct_sys,
name(40) type c, " ABAP program name
clas(4) type c, " Program class
subc(1) type c, " Program type
cnam(12) type c, " Author
cdat type dats, " Created on
rstat(1) type c, " status
text type repti, " Report title
c_box(1) type c, " for check box
end of struct_sys.
Structure for internal table for report data
types: begin of struct_report,
line(500),
end of struct_report.
*----
C O N S T A N T S D E C L A R A T I O N S
*----
data : c_name(50) type c, " Program Name
c_filename like ibipparms-path, " File name
c_filename1 type string, " File name
c_ext(5) value '.TXT', " File extension
c_textline(150) type c, " downloading status
c_count type c, " no of pgm downlded
c_count_text(100) type c. " Text pgm downlded
The CONSTANTS statement defines global and local constants.
By using constants, you can read statically declared data objects,
constants: c_const(8) value 'UNTITLED'.
*----
I N T E R N A L T A B L E D E C L A R A T I O N
*----
data: it_sys type standard table of struct_sys, " Itab for sys data
it_report type standard table of struct_report with
non-unique default key initial size 1000. " Itab for rep data
*----
W O R K A R E D E C L A R A T I O N S
*----
data: wa_sys type struct_sys, " Work area for sys data
wa_report type struct_report. " Work area for report data
*----
I N I T I A L I Z T I O N
*----
initialization.
clear : wa_sys.
refresh: it_sys,
it_report.
c_count = 0.
*----
S E L E C T I O N - S C R E E N
*----
selection-screen : begin of block blk3 with frame title text-015.
selection-screen : begin of block blk1 with frame title text-001.
select-options : s_name for trdir-name. " Program name
selection-screen : end of block blk1.
selection-screen : begin of block blk2 with frame title text-002.
parameters : p_file type rlgrap-filename. " Path for loc folder
selection-screen : end of block blk2.
selection-screen : end of block blk3.
*----
A T S E L E C T I O N - S C R E E N
*----
*The possible entries pushbutton for F4 appears beside the appropriate
*fld (p_file) When the user activates this pushbutton or presses F4 for
*the fld, the event is executed You can thus implement a self-programmed
*possible entries routine for the input/output fields of the selection
*screen
at selection-screen on value-request for p_file.
Value of Local file for upload/download is obtained by using this FM
call function 'F4_FILENAME'
importing
file_name = p_file.
*----
S T A R T - O F - S E L E C T I O N
*----
start-of-selection.
CONCATENATE p_name '%' INTO z_name.
select name
clas
subc
cnam
cdat
rstat into table it_sys
from trdir
*Sorts the selected records in ascending order by the specified column
*references f1 ... fn (name)
where name in s_name order by name.
WHERE name LIKE 'Z11%'.
if sy-subrc = 0.
sort it_sys by name.
clear wa_sys.
loop at it_sys into wa_sys.
select single text
into wa_sys-text
from trdirt
where name = wa_sys-name and
sprsl = sy-langu.
modify it_sys from wa_sys index sy-tabix.
clear wa_sys.
endloop.
endif.
set pf-status 'MENU_ASSIGN1'.
uline.
write:/ sy-vline ,
8 sy-vline, text-009 color 4, " Name of the Program
55 sy-vline, text-003 color 4, " Class
62 sy-vline, text-004 color 4, " Type
68 sy-vline, text-005 color 4, " Created By
80 sy-vline, text-006 color 4, " Created On
92 sy-vline, text-007 color 4, " Status
100 sy-vline, text-008 color 4, " Program text
180 sy-vline.
clear wa_sys.
loop at it_sys into wa_sys.
uline.
write:/ sy-vline,
5 wa_sys-c_box as checkbox,
8 sy-vline, wa_sys-name,
55 sy-vline, wa_sys-clas,
62 sy-vline, wa_sys-subc,
68 sy-vline, wa_sys-cnam,
80 sy-vline, wa_sys-cdat,
92 sy-vline, wa_sys-rstat,
100 sy-vline, wa_sys-text,
180 sy-vline.
endloop.
at user-command.
case sy-ucomm.
when 'BACK'.
leave screen.
when 'EXIT'.
leave program.
when 'DOWN'.
clear wa_sys.
do.
clear wa_sys.
read line sy-index field value wa_sys-c_box wa_sys-name.
if sy-subrc <> 0.
exit.
endif.
*if check box is selected.....
if wa_sys-c_box = 'X'.
clear c_textline.
*Assigns the contents of the source field to the target field as a new
*value
write text-010 to c_textline. " Downloading
write wa_sys-name to c_textline+12.
write text-011 to c_textline+53. "to
write c_filename1 to c_textline+56. " file name
FM returns the Text to be displayed on screen
call function 'SAPGUI_PROGRESS_INDICATOR'
exporting
text = c_textline.
c_count = c_count + 1.
Reads the program prog from the database into the internal table itab.
The line length of table itab should be at least 72 characters
read report wa_sys-name into it_report.
if sy-subrc <> 0.
exit.
endif.
*p_file contains the character string untitiled
This comparison is not case sensitive
if p_file cs c_const. " Untitled
the string ''(space) replaces the untitled occurrence of the search
ignore case is used as this search is case sensitive
replace c_const in p_file with '' ignoring case.
endif.
Places the fields f1 to fn (n >= 2) after g (target field).
concatenate p_file wa_sys-name c_ext into c_filename1.
*Data transmission of an internal table from the server to a file on the
PC is done by this FM.
call function 'GUI_DOWNLOAD'
exporting
filename = c_filename1
filetype = 'ASC'
tables
data_tab = it_report.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
endif.
enddo.
clear c_count_text.
write c_count to c_count_text+1.
write text-030 to c_count_text+4.
Nos Of Pgms downlded successfully
message i205 with c_count_text.
endcase.
*----
T O P - O F - P A G E
*----
top-of-page.
uline.
write:/ sy-vline,
10 text-020 color 2, " Fujitsu India Limited
70 text-021 color 2. " List of ABAP Programs
write:/ sy-vline,
10 text-022 color 3, sy-datum color 3, " Date
70 text-023 color 3, sy-pagno color 3. " Page No
plz reward if helpful
vivek
2008 Apr 25 6:54 AM
HI Arun,
Surprising that you need such kind of program. What is the requirement?
Anyways, use REPTRAN report to download any code of the program to a flat file.
Reward Points...
2008 Apr 25 6:58 AM
Hi,
Try this report, it will solve u r problem,
TABLES:TRDIR.
SELECT-OPTIONS: PGMNAME FOR TRDIR-NAME.
CONSTANTS: LINESIZE value 2048.
PARAMETERS:
HEADING AS CHECKBOX DEFAULT 'X',
FGROUP AS CHECKBOX,
USER LIKE TRDIR-CNAM DEFAULT '*',
DOWNLOAD AS CHECKBOX default 'X',
pa_TEXTP AS CHECKBOX,
DOWNDIR(80) DEFAULT 'C:\temp\',
chg_date(8) default '19000101',
chg_time(6) default '000000'.
,
PGMNAME like TRDIR-NAME.
DATA:
W_TEXT(128),
W_FILENAME(128),
W_PROGRAM_LOW(8),
W_PROGRAM_HIGH(8).
DATA:
_texttab type textpool,
texttab type standard table of textpool initial size 0
with header line,
BEGIN OF TEXTTAB OCCURS 0,
ID(1),
KEY(8),
ENTRY(70),
END OF TEXTTAB,
BEGIN OF ABAPTAB OCCURS 500,
LINE(72),
line(LINESIZE),
END OF ABAPTAB,
BEGIN OF TRTAB OCCURS 0,
NAME LIKE TRDIR-NAME,
ENTRY LIKE TEXTTAB-ENTRY,
CDAT LIKE TRDIR-CDAT,
UDAT LIKE TRDIR-UDAT,
END OF TRTAB,
BEGIN OF TRFTAB OCCURS 0,
NAME LIKE TRDIR-NAME,
ENTRY LIKE TEXTTAB-ENTRY,
CDAT LIKE TRDIR-CDAT,
UDAT LIKE TRDIR-UDAT,
END OF TRFTAB.
START-OF-SELECTION.
IF FGROUP = ' '.
PERFORM LOAD_TRDIR_PROGRAM.
PERFORM PROCESS_PROGRAM.
ELSE.
PERFORM LOAD_TRDIR_FGROUP.
PERFORM PROCESS_FGROUP.
ENDIF.
&----
*& form load_trdir_program.
&----
FORM LOAD_TRDIR_PROGRAM.
SELECT * FROM TRDIR
WHERE NAME IN PGMNAME
and sdate >= chg_date
and stime >= chg_time.
IF USER '*'.
CHECK TRDIR-UNAM = USER OR
TRDIR-CNAM = USER.
ENDIF.
CLEAR: TEXTTAB.
REFRESH: TEXTTAB.
CLEAR: TRTAB.
READ TEXTPOOL TRDIR-NAME INTO TEXTTAB LANGUAGE 'E'.
IF SY-SUBRC = 0.
READ TABLE TEXTTAB WITH KEY 'R'.
MOVE TEXTTAB-ENTRY TO TRTAB-ENTRY.
ENDIF.
MOVE TRDIR-NAME TO TRTAB-NAME.
MOVE TRDIR-CDAT TO TRTAB-CDAT.
MOVE TRDIR-UDAT TO TRTAB-UDAT.
APPEND TRTAB.
CLEAR: TEXTTAB.
ENDSELECT.
ENDFORM. " load_trdir_program
&----
*& Form load_trdir_fgroup
&----
FORM LOAD_TRDIR_FGROUP.
SELECT * FROM TRDIR
WHERE NAME BETWEEN 'SAPLYYYY' AND 'SAPLZZZZ'.
CHECK TRDIR-UNAM = USER OR TRDIR-CNAM = USER.
CLEAR: TEXTTAB.
CLEAR: TRTAB.
REFRESH: TEXTTAB.
READ TEXTPOOL TRDIR-NAME INTO TEXTTAB LANGUAGE 'E'.
IF SY-SUBRC = 0.
READ TABLE TEXTTAB WITH KEY 'R'.
MOVE TEXTTAB-ENTRY TO TRTAB-ENTRY.
ENDIF.
MOVE TRDIR-NAME TO TRTAB-NAME.
MOVE TRDIR-CDAT TO TRTAB-CDAT.
MOVE TRDIR-UDAT TO TRTAB-UDAT.
APPEND TRTAB.
CLEAR: TEXTTAB.
ENDSELECT.
LOOP AT TRTAB.
MOVE-CORRESPONDING TRTAB TO TRFTAB.
APPEND TRFTAB.
MOVE TRTAB-NAME+3(5) TO W_PROGRAM_LOW.
MOVE '%' TO W_PROGRAM_LOW+5(1).
MOVE TRTAB-NAME+3(5) TO W_PROGRAM_HIGH.
MOVE 'MMMMMMMM' TO W_PROGRAM_HIGH.
SELECT * FROM TRDIR
WHERE NAME LIKE W_PROGRAM_LOW.
*where name between w_program_low and w_program_high.
CHECK TRDIR-NAME+5(1) '$'.
CHECK TRDIR-NAME(5) =
TRTAB-NAME+3(5).
READ TEXTPOOL TRDIR-NAME INTO
TEXTTAB LANGUAGE 'E'.
READ TABLE TEXTTAB WITH KEY 'R'.
MOVE TEXTTAB-ENTRY TO TRFTAB-ENTRY.
MOVE TRDIR-NAME TO TRFTAB-NAME.
MOVE TRDIR-CDAT TO TRFTAB-CDAT.
MOVE TRDIR-UDAT TO TRFTAB-UDAT.
APPEND TRFTAB.
ENDSELECT.
ENDLOOP.
ENDFORM. " load_trdir_fgroup.
-
FORM PROCESS_PROGRAM
*
-
........ *
-
FORM PROCESS_PROGRAM.
LOOP AT TRTAB.
READ REPORT TRTAB-NAME INTO ABAPTAB.
IF DOWNLOAD = 'X'.
PERFORM DOWNLOAD_PROGRAMS USING TRTAB-NAME.
ELSE.
PERFORM LIST_PROGRAMS USING TRTAB-NAME.
ENDIF.
IF pa_TEXTP = 'X'.
READ TEXTPOOL TRTAB-NAME INTO TEXTTAB LANGUAGE
'E'.
IF SY-SUBRC = 0 AND DOWNLOAD = 'X'.
PERFORM DOWNLOAD_TEXTPOOL USING
TRTAB-NAME.
ENDIF.
LOOP AT TEXTTAB.
WRITE:/
TEXTTAB-ID,
TEXTTAB-KEY,
TEXTTAB-ENTRY.
ENDLOOP.
ENDIF.
ENDLOOP.
ENDFORM.
-
FORM PROCESS_fgroup
*
-
........ *
-
FORM PROCESS_FGROUP.
LOOP AT TRFTAB.
READ REPORT TRFTAB-NAME INTO ABAPTAB.
IF DOWNLOAD = 'X'.
PERFORM DOWNLOAD_PROGRAMS USING TRFTAB-NAME.
ELSE.
PERFORM LIST_PROGRAMS USING TRFTAB-NAME
.
ENDIF.
IF pa_TEXTP = 'X'.
READ TEXTPOOL TRFTAB-NAME INTO TEXTTAB LANGUAGE
'E'.
IF SY-SUBRC = 0 AND DOWNLOAD = 'X'.
PERFORM DOWNLOAD_TEXTPOOL USING
TRFTAB-NAME.
LOOP AT TEXTTAB.
WRITE:/
TEXTTAB-ID,
TEXTTAB-KEY,
TEXTTAB-ENTRY.
ENDLOOP.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM.
&----
*& Form DOWNLOAD_PROGRAMS
&----
FORM DOWNLOAD_PROGRAMS USING NAME.
W_TEXT = 'Downloading'.
W_TEXT+15(8) = NAME.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
TEXT = W_TEXT
EXCEPTIONS
OTHERS = 1.
clear w_filename.
MOVE DOWNDIR TO W_FILENAME(80).
MOVE NAME TO W_FILENAME+20(8).
MOVE '.txt' TO W_FILENAME+28(4).
CONDENSE W_FILENAME NO-GAPS.
concatenate w_filename name '.doc' into w_filename.
condense w_filename no-gaps.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
FILENAME = W_FILENAME
FILETYPE = 'ASC'
TABLES
DATA_TAB = ABAPTAB
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_WRITE_ERROR = 2
INVALID_FILESIZE = 3
INVALID_TABLE_WIDTH = 4
INVALID_TYPE = 5
NO_BATCH = 6
UNKNOWN_ERROR = 7
OTHERS = 8.
ENDFORM. " DOWNLOAD_PROGRAMS
&----
*& Form LIST_PROGRAMS
&----
FORM LIST_PROGRAMS USING NAME.
LOOP AT ABAPTAB.
WRITE:/ NAME, ABAPTAB-LINE.
ENDLOOP.
ENDFORM. " LIST_PROGRAMS
&----
*& Form DOWNLOAD_TEXTPOOL
&----
FORM DOWNLOAD_TEXTPOOL USING NAME.
W_TEXT = 'Textpool...'.
W_TEXT+15(8) = NAME.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
TEXT = W_TEXT
EXCEPTIONS
OTHERS = 1.
MOVE DOWNDIR TO W_FILENAME(80).
MOVE TRTAB-NAME TO W_FILENAME+20(8).
MOVE '.tpl' TO W_FILENAME+28(4).
CONDENSE W_FILENAME NO-GAPS.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
FILENAME = W_FILENAME
FILETYPE = 'ASC'
TABLES
DATA_TAB = TEXTTAB
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_WRITE_ERROR = 2
INVALID_FILESIZE = 3
INVALID_TABLE_WIDTH = 4
INVALID_TYPE = 5
NO_BATCH = 6
UNKNOWN_ERROR = 7
OTHERS = 8.
ENDFORM. " DOWNLOAD_TEXTPOOL
TOP-OF-PAGE.
IF HEADING = 'X'.
Place your heading here:
call function 'Z_WRITE_HEADER_FOOTER'
exporting
type = 'H'
exceptions
others = 1.
*
skip 1.
ENDIF.
Regards,
Raj.
2008 Apr 25 7:02 AM
Hi arun,
Goto fm gui_download then
u can do it.
its transferred to text file from report.
Reward if useful,
Thx,
S.Suresh
2008 Apr 25 7:06 AM
in SE38 where you write your code in the program...in that same screen you have two small push buttons at right side like export to ...and import to...click on import push button..give location..it will save as text file on the location where you specified.
Regards.
Dara.
2008 May 09 4:55 AM
&----
*& Report ZTEST_DOWNLOAD
*&
&----
*&
*&
&----
REPORT ZTEST_DOWNLOAD.
PARAMETERS : P_PROG(30) TYPE c.
DATA : FILENAME TYPE STRING,
PATH type STRING,
FULLPATH TYPE STRING,
RC TYPE I,
FILENMAE1 TYPE STRING.
DATA: ITAB TYPE TABLE OF STRING.
READ REPORT P_PROG INTO ITAB.
**********CLASS FOR FRONTEND SEVICES***********************************************
CALL METHOD cl_gui_frontend_services=>file_save_dialog
CHANGING
filename = FILENAME
path = PATH
fullpath = FULLPATH
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
***************FM FOR DOWNLOAD *******************************************************
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = FULLPATH
FILETYPE = 'ASC'
TABLES
DATA_TAB = ITAB
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22.
Arun Reddy I
2008 May 09 4:58 AM
2014 Apr 08 3:31 PM
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |