05-08-2007 10:08 PM
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...
05-08-2007 10:10 PM
05-08-2007 10:10 PM
05-08-2007 11:16 PM
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?
05-09-2007 12:10 AM
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
05-08-2007 10:11 PM
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
05-08-2007 10:15 PM
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
05-08-2007 10:16 PM
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