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

Generate program

Former Member
0 Likes
861

Suppose form one program i want to create another program automatically.how to do that.It will be a Type 1 program(executable program).

Along with that i want to have the FORM and ENDFORM written to that new program.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
795

Hi,

  • The dynamic internal table stucture

DATA: BEGIN OF struct OCCURS 10,

fildname(8) TYPE c,

abptype TYPE c,

length TYPE i,

END OF struct.

  • The dynamic program source table

DATA: BEGIN OF inctabl OCCURS 10,

line(72),

END OF inctabl.

DATA: lng TYPE i, typesrting(6).

  • Sample dynamic internal table stucture

struct-fildname = 'field1'. struct-abptype = 'c'. struct-length = '6'.

APPEND struct. CLEAR struct.

struct-fildname = 'field2'. struct-abptype = 'd'.

APPEND struct. CLEAR struct.

struct-fildname = 'field3'. struct-abptype = 'i'.

APPEND struct. CLEAR struct.

  • Create the dynamic internal table definition in the dyn. program

inctabl-line = 'REPORT ztest111.'. APPEND inctabl.

inctabl-line = 'data: begin of dyntab occurs 10,'. APPEND inctabl.

LOOP AT struct.

inctabl-line = struct-fildname.

lng = STRLEN( struct-fildname ).

IF NOT struct-length IS INITIAL .

typesrting(1) = '('.

typesrting+1 = struct-length.

typesrting+5 = ')'.

CONDENSE typesrting NO-GAPS.

inctabl-line+lng = typesrting.

ENDIF.

inctabl-line+15 = 'type '.

inctabl-line+21 = struct-abptype.

inctabl-line+22 = ','.

APPEND inctabl.

ENDLOOP.

inctabl-line = 'end of dyntab. '.

APPEND inctabl.

  • Create the code processes the dynamic internal table

inctabl-line = ' '. APPEND inctabl.

inctabl-line = 'dyntab-field1 = ''AAAAAAAA.''.'. APPEND inctabl.

inctabl-line = 'append dyntab.'. APPEND inctabl.

inctabl-line = 'dyntab-field1 = ''19970814''.'. APPEND inctabl.

inctabl-line = 'append dyntab.'. APPEND inctabl.

inctabl-line = 'dyntab-field1 = 1.'. APPEND inctabl..

inctabl-line = 'append dyntab.'. APPEND inctabl.

inctabl-line = ' '. APPEND inctabl.

inctabl-line = 'loop at dyntab.'. APPEND inctabl.

inctabl-line = 'write: / dyntab-field1.'. APPEND inctabl.

inctabl-line = 'endloop.'. APPEND inctabl.

  • Create and run the dynamic program

INSERT REPORT 'ZTEST111' FROM inctabl UNICODE ENABLING 'X'.

SUBMIT ztest111.

Try this code,

Thanks,

Durai.V

5 REPLIES 5
Read only

Former Member
0 Likes
795

Hi,

SUBMIT report2 WITH parameter1 = parameter1

WITH selectoption IN selectoption1

AND RETURN.

Hope it is helps.

Read only

Former Member
0 Likes
796

Hi,

  • The dynamic internal table stucture

DATA: BEGIN OF struct OCCURS 10,

fildname(8) TYPE c,

abptype TYPE c,

length TYPE i,

END OF struct.

  • The dynamic program source table

DATA: BEGIN OF inctabl OCCURS 10,

line(72),

END OF inctabl.

DATA: lng TYPE i, typesrting(6).

  • Sample dynamic internal table stucture

struct-fildname = 'field1'. struct-abptype = 'c'. struct-length = '6'.

APPEND struct. CLEAR struct.

struct-fildname = 'field2'. struct-abptype = 'd'.

APPEND struct. CLEAR struct.

struct-fildname = 'field3'. struct-abptype = 'i'.

APPEND struct. CLEAR struct.

  • Create the dynamic internal table definition in the dyn. program

inctabl-line = 'REPORT ztest111.'. APPEND inctabl.

inctabl-line = 'data: begin of dyntab occurs 10,'. APPEND inctabl.

LOOP AT struct.

inctabl-line = struct-fildname.

lng = STRLEN( struct-fildname ).

IF NOT struct-length IS INITIAL .

typesrting(1) = '('.

typesrting+1 = struct-length.

typesrting+5 = ')'.

CONDENSE typesrting NO-GAPS.

inctabl-line+lng = typesrting.

ENDIF.

inctabl-line+15 = 'type '.

inctabl-line+21 = struct-abptype.

inctabl-line+22 = ','.

APPEND inctabl.

ENDLOOP.

inctabl-line = 'end of dyntab. '.

APPEND inctabl.

  • Create the code processes the dynamic internal table

inctabl-line = ' '. APPEND inctabl.

inctabl-line = 'dyntab-field1 = ''AAAAAAAA.''.'. APPEND inctabl.

inctabl-line = 'append dyntab.'. APPEND inctabl.

inctabl-line = 'dyntab-field1 = ''19970814''.'. APPEND inctabl.

inctabl-line = 'append dyntab.'. APPEND inctabl.

inctabl-line = 'dyntab-field1 = 1.'. APPEND inctabl..

inctabl-line = 'append dyntab.'. APPEND inctabl.

inctabl-line = ' '. APPEND inctabl.

inctabl-line = 'loop at dyntab.'. APPEND inctabl.

inctabl-line = 'write: / dyntab-field1.'. APPEND inctabl.

inctabl-line = 'endloop.'. APPEND inctabl.

  • Create and run the dynamic program

INSERT REPORT 'ZTEST111' FROM inctabl UNICODE ENABLING 'X'.

SUBMIT ztest111.

Try this code,

Thanks,

Durai.V

Read only

0 Likes
795

Hi Durai V ,

when i am executing your code the ZTEST111 is not being created.can you tell me what the problem

Read only

Former Member
0 Likes
795

you can create a program from your executable program. Declare a internan table with character type and put all the statment in the table from

Program Program name.

initialization

write:/ 'hello'.

Read only

Former Member
0 Likes
795

Hi,

I hope the below link will help you.

Thanks,

Khushboo.