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

DOWNLOADING A REPORT PROGRAM CODE IN TO TEXT FILE

Former Member
0 Likes
4,247

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.

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.

8 REPLIES 8
Read only

Former Member
0 Likes
2,537

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

Read only

Sultanuddin
Explorer
2,537

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...

Read only

Former Member
0 Likes
2,537

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.

Read only

Former Member
0 Likes
2,537

Hi arun,

Goto fm gui_download then

u can do it.

its transferred to text file from report.

Reward if useful,

Thx,

S.Suresh

Read only

Former Member
0 Likes
2,537

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.

Read only

Former Member
0 Likes
2,537

&----


*& 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

Read only

Former Member
0 Likes
2,537

The program is resolved in simple way.

Read only

Former Member
0 Likes
2,537

This message was moderated.