Application Development 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: 

Form, perform

Former Member
0 Kudos

Hi,

Can I have a form with out perform.

If yes how?

I have seen some of the form stmts in ALV reports with out perform. I am not clear about it.

someone help me plz...

1 ACCEPTED SOLUTION

Former Member
0 Kudos

That is Dynamic subroutine.

6 REPLIES 6

Former Member
0 Kudos

That is Dynamic subroutine.

0 Kudos

so how to create a dynamic subroutine.

if i click on perform...

I get the form stmt.

but in dynamic i dont have Perform stmt. just wondering how to have a form. is it thorugh pattern?

0 Kudos

Take the folowing example .

REPORT demo_mod_tech_perform_dyn .

DATA: progname(24) TYPE c VALUE 'DEMO_MOD_TECH_FORMPOOL_1',

subrname(8) TYPE c.

subrname = 'SUB1'.

PERFORM (subrname) IN PROGRAM (progname) IF FOUND.

subrname = 'SUB2'.

PERFORM (subrname) IN PROGRAM (progname) IF FOUND.

I hope this will help you.

Regards,

Amey

Former Member
0 Kudos

Every form or routine has perform. There is no perform without its definition in form.

Just double click on perform and it will take you to the form. If it does not, then there is not form for it. Try to activate and you should get error

Thanks,

SKJ

Former Member
0 Kudos

Normally these forms are initiated or used in ALV standard func. module reuse_alv_grid_display or list_display, so you won't find any perform statements for these function modules. Look into above function modules.

See the following example....

user_command will be a separate form in ALV report.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

i_callback_program = 'ZPCS_PROJ_INFO_SYSTEM'

  • i_callback_pf_status_set = 'MYGUI1'

i_callback_user_command = 'USER_COMMAND'

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME = 'IT_FINAL'

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

is_layout = gs_layout

it_fieldcat = gt_fieldcat[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

it_sort = it_sort[]

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

it_events = it_st_events[]

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • I_HTML_HEIGHT_TOP = 0

  • I_HTML_HEIGHT_END = 0

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • IR_SALV_FULLSCREEN_ADAPTER =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = it_final

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

Regards,

Amey

Message was edited by:

Amey Potale

former_member181962
Active Contributor
0 Kudos

Yes, You can have it.

For example you can call a form using dynamic calls as follows:

lv_form_name = 'TEST'.

perform (lv_form_name) in program ztest.

In program ztest write this:

form test.

write:/ 'test'.

endform.

Regards,

Ravi