Layout change , save symbol for ALV report
Dear all,
I have created ALV report in which I get only change layout symbol. I want to select/deselect columns in ALV report and want to save that layout. How to get that save layout symbol in ALV report std. headings
Hi,
You need to pass 'A' to I_SAVE export parameters of ALV.
I_SAVE = 'A'.
Thanks,
Sriram Ponna.
Similar Messages
-
Change Icon (Symbols) for Alert in Analysis Item in BI 7 Web Templates
I want to change the Icons (Symbols) displayed for alerts in the Analysis Web Item. I want to choose between arrows and stop lights. I can define this in the Table Interface in BW 3.5. In BI7 you must use the Analysis Web Item SYMBOL but it is not documented how to choose different symbols for different reports.
Where do I choose the Icon Type? In the Query definition I can't see any option to select the Icon Type and in the WAD I can only see the options of Color, Symbol, Text and Symbol, Symbol and Text. This has no influence in the Icon Type or does it?
I am getting Arrow icons in the output and I am trying to get Traffic light icons.
Can you tell me where the Icon Type is available for selection?
Thanks! -
Send some sample program for ALV reports
Hi all ,
send some sample program for ALV reports for learing purpose
tahnks.Hi ,
Resource Master
Program YPPCRR *
Program type Report Program *
Title Resource Master Dara for Updation *
Author Naga Raju *
Requested By Balaji *
Date Written 24.05.2007 *
Specification Id F2-DP-FS-2-0002 *
Transport Request *
On-line Documentation
Description
This Program updates the Location Mater through the Transaction
/SAPAPO/LOC3 Based on the User Selection
Update
Reset
No Action
Output
ALV List output of the main Program
ALV List output of the Error Log
REPORT YPPCRR NO STANDARD PAGE HEADING
LINE-SIZE 120
LINE-COUNT 62(4)
MESSAGE-ID yap..
Global data
Include where all the data declarations are coded.
INCLUDE YPPCRR_data.
*Initialization
INITIALIZATION.
perform init_variant.
Constants
CONSTANTS: c_formname_top_of_page TYPE slis_formname
VALUE 'F_TOP_OF_PAGE'.
Selection-Screen
SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE text-040.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS:p_prs RADIOBUTTON GROUP ztyp USER-COMMAND ucom DEFAULT 'X'.
SELECTION-SCREEN COMMENT 3(28) text-003.
position 40.
parameters: p_file1 TYPE rlgrap-filename.
SELECTION-SCREEN END OF LINE.
skip 5.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: p_aps RADIOBUTTON GROUP ztyp.
SELECTION-SCREEN COMMENT 3(28) text-004.
position 40.
parameters: p_file2 type rlgrap-filename.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN .
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file1.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
program_name = syst-repid
DYNPRO_NUMBER = SYST-DYNNR
field_name = p_file1
STATIC = ' '
MASK = ' '
CHANGING
file_name = p_file1
EXCEPTIONS
MASK_TOO_LONG = 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.
START-OF-SELECTION.
if p_prs = 'X'.
PERFORM f_read_datum1 TABLES t_res_head
USING p_file1
CHANGING w_subrc.
elseif p_aps = 'X'.
PERFORM f_read_datum2 TABLES t_res_head
USING p_file2
CHANGING w_subrc.
endif.
IF w_subrc = 0.
Validations
PERFORM VALIDATION.
PERFORM display_alv.
IF SY-UCOMM = '&F03'
or SY-UCOMM = '&F12'
or SY-UCOMM = '&F15'.
LEAVE LIST-PROCESSING.
ELSE.
ENDIF.
ELSE.
Message s100 with text-002.
ENDIF.
END-OF-SELECTION.
Forms part*
INCLUDE YPPCRR_forms.
*& Include YPPCRR_DATA
Type-Pools
TYPE-POOLS: slis.
*TYPES
DATA: BEGIN OF tl_res_head.
INCLUDE STRUCTURE ypp_res_head.
DATA: END OF tl_res_head.
DATA: BEGIN OF tl_res_head_val.
INCLUDE STRUCTURE ypp_resv.
DATA: END OF tl_res_head_val.
DATA : BEGIN OF ty_errlog ,
counter type i,
type(2) ,
name(10) TYPE c,
vrsioid(22) TYPE c,
restype TYPE c,
message(80) TYPE c,
END OF ty_errlog.
Global Variables
DATA : gc_flag(1) TYPE c,
w_val_err_flag(1) type c.
DATA: w_filename TYPE rlgrap-filename,
w_subrc TYPE sy-subrc,
w_t_res_head TYPE slis_t_fieldcat_alv,
wa_t_res_head TYPE slis_fieldcat_alv.
DATA : wa_date(10) TYPE c,
wa_time(10) TYPE c,
wa_title(40) TYPE c,
wa_type(4) TYPE c .
DATA: BAPI_RUN_YES_NO TYPE C.
*Structure
*INTERNAL TABLES USED BY ALV
DATA:
it_fieldcat_alv TYPE slis_t_fieldcat_alv,
IT_FIELDCAT_ALV_ERR TYPE SLIS_T_FIELDCAT_ALV,
it_status TYPE slis_formname VALUE 'F_MAIN',
it_user_command TYPE slis_formname VALUE 'F_USER_COMMAND',
it_events TYPE slis_t_event,
it_event_exit TYPE slis_t_event_exit,
it_list_comments TYPE slis_t_listheader,
it_excluding TYPE slis_t_extab,
it_sort TYPE slis_t_sortinfo_alv.
*Internal Table Declarations
DATA : BEGIN OF t_imex OCCURS 0 ,
string(256) TYPE c,
END OF t_imex.
DATA : fcode TYPE TABLE OF sy-ucomm.
DATA : fcode_bdc TYPE TABLE OF sy-ucomm.
DATA : fcode_error TYPE TABLE OF sy-ucomm.
DATA : fcode_final TYPE TABLE OF sy-ucomm.
STRUCTURE and WORKARES
*Internal Table Declarations
DATA : t_res_head like tl_res_head occurs 0 WITH HEADER LINE.
DATA : t_res_head_val like tl_res_head_val occurs 0 with header line.
data :l_res_head LIKE LINE OF t_res_head.
DATA : w_file TYPE string.
*DATA : wa_vrsioid(22) type c,
wa_locno(20) type c,
wa_calendar(2) type c,
wa_planner(3) type c.
DATA: T_RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE.
DATA: RESOURCE_HEAD LIKE BAPI10004RESHEAD OCCURS 0 WITH HEADER LINE,
RESOURCE_HEAD_X LIKE BAPI10004RESHEADX OCCURS 0 WITH HEADER LINE,
RESOURCE_TEXT LIKE BAPI10004RESTEXT OCCURS 0 WITH HEADER LINE,
RESOURCE_TEXT_X LIKE BAPI10004RESTEXTX OCCURS 0 WITH HEADER LINE.
data : t_errlog like ty_errlog occurs 0 with header line.
DATA : wk_lines TYPE i,
wk_errlines TYPE i,
wk_count TYPE i.
DATA: g_tabname TYPE slis_tabname VALUE 'T_RES_HEAD'.
Variables to be used by ALV
DATA:
wk_variant LIKE disvariant,
wx_variant LIKE disvariant,
wk_variant_save(1) TYPE c,
wk_exit(1) TYPE c,
wk_repid LIKE sy-repid,
wk_user_specific(1) TYPE c,
wk_callback_ucomm TYPE slis_formname,
wk_callback_status TYPE slis_formname,
wk_callback_status1 TYPE slis_formname,
wk_print TYPE slis_print_alv,
wk_layout TYPE slis_layout_alv,
wk_html_top_of_page TYPE slis_formname,
wk_fieldcat_alv LIKE LINE OF it_fieldcat_alv,
wk_excluding LIKE LINE OF it_excluding,
wk_events LIKE LINE OF it_events,
wk_event_exit LIKE LINE OF it_event_exit,
wk_list_comments LIKE LINE OF it_list_comments,
wk_list1_comments LIKE LINE OF it_list_comments,
wk_list2_comments LIKE LINE OF it_list_comments,
wk_sort LIKE LINE OF it_sort.
*DATA :gc_delete_flag(1).
*& Include YAPOLOC_FORMS
FORM display_alv .
PERFORM f_fieldcat_build.
PERFORM f_event_build.
PERFORM f_exclude_build.
PERFORM f_print_build.
PERFORM f_layout_build.
PERFORM f_display_data.
ENDFORM. " display_alv
*& Form f_fieldcat_build
text
FORM f_fieldcat_build .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = wk_repid
i_structure_name = 'YPP_RESV'
i_inclname = wk_repid
CHANGING
ct_fieldcat = it_fieldcat_alv.
ENDFORM. " F_FIELDCAT_BUILD
*& Form F_EVENT_BUILD
text
> p1 text* < p2 text
FORM f_event_build .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = it_events.
READ TABLE it_events WITH KEY
name = slis_ev_top_of_page INTO wk_events.
IF sy-subrc = 0.
MOVE c_formname_top_of_page TO wk_events-form.
MODIFY it_events FROM wk_events INDEX sy-tabix.
ENDIF.
ENDFORM. " F_EVENT_BUILD
*& Form F_EXCLUDE_BUILD
text
--> p1 text
<-- p2 text
FORM f_exclude_build .
wk_excluding = '&GRAPH'. "Graphic
APPEND wk_excluding TO it_excluding.
ENDFORM. " F_EXCLUDE_BUILD
*& Form F_PRINT_BUILD
text
--> p1 text
<-- p2 text
FORM f_print_build .
wk_print-no_print_listinfos = 'X'.
ENDFORM. " F_PRINT_BUILD
*& Form F_LAYOUT_BUILD
text
--> p1 text
<-- p2 text
FORM f_layout_build .
wk_layout-zebra = 'X'.
WK_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
wk_layout-detail_popup = 'X'.
wk_layout-detail_initial_lines = 'X'.
wk_layout-detail_titlebar = 'Details '.
ENDFORM. " F_LAYOUT_BUILD
*& Form F_DISPLAY_DATA
text
--> p1 text
<-- p2 text
FORM f_display_data .
wk_callback_ucomm = 'CALLBACK_UCOMM'.
IF sy-ucomm = 'UPD' OR sy-ucomm = space .
wk_callback_status = 'CALLBACK_STATUS'.
ENDIF.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_background_id = 'SIWB_WALLPAPER'
i_callback_program = wk_repid
i_callback_html_top_of_page = 'HTML_TOP_OF_PAGE'
i_callback_pf_status_set = wk_callback_status
i_callback_user_command = wk_callback_ucomm
it_sort = it_sort
i_default = 'X'
i_save = 'A'
is_variant = wk_variant
is_layout = wk_layout
it_fieldcat = it_fieldcat_alv
it_events = it_events
it_event_exit = it_event_exit
it_excluding = it_excluding
is_print = wk_print
TABLES
t_outtab = t_res_head_val.
ENDFORM. " F_DISPLAY_DATA
ALV for Error Log
*& Form display_alv_ERR
text
--> p1 text
<-- p2 text
FORM display_alv_err .
PERFORM f_fieldcat_build_err.
PERFORM f_event_build_err.
PERFORM f_exclude_build_err.
PERFORM f_print_build_err.
PERFORM f_layout_build_err.
PERFORM f_display_data_err.
ENDFORM. " display_alv_ERR
*& Form F_FIELDCAT_BUILD_err
text
--> p1 text
<-- p2 text
FORM f_fieldcat_build_err .
BREAK-POINT.
REFRESH it_fieldcat_alv.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = wk_repid
i_internal_tabname = 'TY_ERRLOG'
i_structure_name = 'YPP_ERR_LOG'
i_inclname = wk_repid
CHANGING
ct_fieldcat = it_fieldcat_alv_err.
LOOP AT it_fieldcat_alv INTO wk_fieldcat_alv.
CASE wk_fieldcat_alv-fieldname.
WHEN 'COUNTER'.
wk_fieldcat_alv-seltext_s = text-023.
wk_fieldcat_alv-seltext_m = text-023.
wk_fieldcat_alv-seltext_l = text-023.
wk_fieldcat_alv-reptext_ddic = text-023.
wk_fieldcat_alv-edit = 'X'.
WHEN 'TYPE'.
wk_fieldcat_alv-seltext_s = text-009.
wk_fieldcat_alv-seltext_m = text-009.
wk_fieldcat_alv-seltext_l = text-009.
wk_fieldcat_alv-reptext_ddic = text-009.
wk_fieldcat_alv-edit = 'X'.
WHEN 'NAME'.
wk_fieldcat_alv-seltext_s = text-010.
wk_fieldcat_alv-seltext_m = text-010.
wk_fieldcat_alv-seltext_l = text-010.
wk_fieldcat_alv-reptext_ddic = text-010.
wk_fieldcat_alv-edit = 'X'.
WHEN 'VRSIOID'.
wk_fieldcat_alv-seltext_s = text-011.
wk_fieldcat_alv-seltext_m = text-011.
wk_fieldcat_alv-seltext_l = text-011.
wk_fieldcat_alv-reptext_ddic = text-011.
wk_fieldcat_alv-edit = 'X'.
WHEN 'RESTYPE'.
wk_fieldcat_alv-seltext_s = text-012.
wk_fieldcat_alv-seltext_m = text-012.
wk_fieldcat_alv-seltext_l = text-012.
wk_fieldcat_alv-reptext_ddic = text-012.
wk_fieldcat_alv-edit = 'X'.
WHEN 'MESSAGE'.
wk_fieldcat_alv-seltext_s = text-013.
wk_fieldcat_alv-seltext_m = text-013.
wk_fieldcat_alv-seltext_l = text-013.
wk_fieldcat_alv-reptext_ddic = text-013.
wk_fieldcat_alv-edit = 'X'.
WHEN OTHERS.
ENDCASE.
MODIFY it_fieldcat_alv FROM wk_fieldcat_alv.
ENDLOOP.
ENDFORM. " F_FIELDCAT_BUILD_err
*& Form F_EVENT_BUILD_err
text
--> p1 text
<-- p2 text
FORM f_event_build_err .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = it_events.
READ TABLE it_events WITH KEY name = slis_ev_top_of_page
INTO wk_events.
IF sy-subrc = 0.
MOVE c_formname_top_of_page TO wk_events-form.
MODIFY it_events FROM wk_events INDEX sy-tabix.
ENDIF.
ENDFORM. " F_EVENT_BUILD_err
*& Form F_EXCLUDE_BUILD_err
text
--> p1 text
<-- p2 text
FORM f_exclude_build_err .
wk_excluding = '&GRAPH'. "Graphic
APPEND wk_excluding TO it_excluding.
ENDFORM. " F_EXCLUDE_BUILD_err
*& Form F_PRINT_BUILD_err
text
--> p1 text
<-- p2 text
FORM f_print_build_err .
wk_print-no_print_listinfos = 'X'.
ENDFORM. " F_PRINT_BUILD_err
*& Form F_LAYOUT_BUILD_err
text
--> p1 text
<-- p2 text
FORM f_layout_build_err .
wk_layout-zebra = 'X'.
WK_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
wk_layout-detail_popup = 'X'.
wk_layout-detail_initial_lines = 'X'.
wk_layout-detail_titlebar = 'Details '.
ENDFORM. " F_LAYOUT_BUILD_err
*& Form F_DISPLAY_DATA_err
text
--> p1 text
<-- p2 text
FORM f_display_data_err .
wk_callback_ucomm = 'CALLBACK_UCOMM'.
IF SY-UCOMM ne '&F03'.
wk_callback_status = 'CALLBACK_STATUS'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_background_id = 'SIWB_WALLPAPER'
i_callback_program = wk_repid
i_callback_pf_status_set = wk_callback_status
i_callback_user_command = wk_callback_ucomm
it_sort = it_sort
i_default = 'X'
i_save = 'A'
is_variant = wk_variant
is_layout = wk_layout
it_fieldcat = it_fieldcat_alv_err
it_events = it_events
it_event_exit = it_event_exit
it_excluding = it_excluding
is_print = wk_print
TABLES
t_outtab = t_errlog.
KEEP EERRLOG BUTTON
SET PF-STATUS 'ZSTANDARD' EXCLUDING 'UPD' IMMEDIATELY.
ENDFORM. "f_display_data_err
**& Form F_TOP_OF_PAGE
text
FORM f_top_of_page.
CLEAR: it_list_comments[],
wk_list_comments,
wk_list1_comments,
wk_list2_comments.
wk_list_comments-typ = 'H'. "H=Header,S=Selection, A=Action
wk_list_comments-key = ''.
CASE sy-ucomm.
WHEN ''.
wk_list_comments-info = text-030.
WHEN 'UPD'.
IF t_errlog[] IS INITIAL.
wk_list_comments-info = text-031.
ELSE.
wk_list_comments-info = text-032.
ENDIF.
WHEN 'ERRLOG'.
wk_list_comments-info = text-032.
WHEN '&F03'.
wk_list_comments-info = text-031.
WHEN '&F15'.
wk_list_comments-info = text-031.
WHEN '&F12'.
wk_list_comments-info = text-031.
ENDCASE.
APPEND wk_list_comments TO it_list_comments.
WRITE sy-datum TO wa_date.
WRITE sy-uzeit TO wa_time.
wk_list_comments-typ = 'S'. "H=Header, S=Selection, A=Action
wk_list_comments-key = ''.
wk_list_comments-info = 'User:'.
wk_list1_comments-info = sy-uname.
CONCATENATE wk_list_comments wk_list1_comments
INTO wk_list2_comments.
APPEND wk_list2_comments TO it_list_comments.
wk_list_comments-typ = 'S'. "H=Header, S=Selection, A=Action
wk_list_comments-key = ''.
wk_list_comments-info = ' Run Date : '.
wk_list1_comments-info = wa_date.
CONCATENATE wk_list_comments wk_list1_comments
INTO wk_list2_comments .
APPEND wk_list2_comments TO it_list_comments.
wk_list_comments-typ = 'S'. "H=Header, S=Selection, A=Action
wk_list_comments-key = ''.
wk_list_comments-info = 'Run Time : '.
wk_list1_comments-info = wa_time.
CONCATENATE wk_list_comments wk_list1_comments
INTO wk_list2_comments .
APPEND wk_list2_comments TO it_list_comments.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
I_LOGO = 'ENJOYSAP_LOGO'
it_list_commentary = it_list_comments.
ENDFORM. "F_TOP_OF_PAGE
FORM USER_COMMAND_SAMPLE *
--> UCOMM *
--> SELFIELD *
FORM callback_ucomm USING ucomm LIKE sy-ucomm
selfield TYPE slis_selfield.
DATA: v_langu(2) ,
v_loctype TYPE /sapapo/c_loctype.
data err_flg(1).
IF bapi_run_yes_no IS INITIAL.
CASE sy-ucomm.
WHEN 'UPD'.
bapi_run_yes_no = 'X'.
LOOP AT t_res_head_val WHERE val_err_msg EQ space.
v_langu = 'EN'.
refresh tables
REFRESH : resource_head ,
resource_head_x ,
resource_text ,
resource_text_x,
t_return.
CLEAR : resource_head ,
resource_head_x ,
resource_text ,
resource_text_x,
t_return .
resource_head-resource = t_res_head-name .
resource_head-restype = t_res_head-restype.
resource_head-location = t_res_head-locno.
CLEAR : v_loctype .
SELECT SINGLE loctype FROM /sapapo/loc CLIENT SPECIFIED
INTO v_loctype
WHERE mandt = sy-mandt
AND locno = t_res_head-locno.
resource_head-loctype = v_loctype.
resource_head-calendar = t_res_head-calendar.
resource_head-type = t_res_head-type.
IF t_res_head-type = '03'.
resource_head-dimension_bucket = t_res_head-dimension_bucket.
ELSE.
resource_head-dimension_bucket = space.
ENDIF.
APPEND resource_head.
CLEAR resource_head.
resource_head_x-resource = t_res_head-name.
resource_head_x-restype = 'X'.
resource_head_x-location = 'X'.
resource_head_x-loctype = 'X'.
resource_head_x-calendar = 'X'.
resource_head_x-type = 'X'.
IF t_res_head-type = '03'.
resource_head_x-dimension_bucket = 'X'.
ELSE.
resource_head_x-dimension_bucket = space.
ENDIF.
APPEND resource_head_x.
CLEAR resource_head_x.
resource_text-resource = t_res_head-name.
resource_text-langu = v_langu.
resource_text-res_short_text = t_res_head-text.
APPEND resource_text.
CLEAR resource_text.
resource_text_x-resource = t_res_head-name.
resource_text_x-langu = v_langu.
resource_text_x-res_short_text = 'X'.
APPEND resource_text_x.
CLEAR resource_text_x.
call bapi
CALL FUNCTION 'BAPI_RSSRVAPS_SAVEMULTI_30A'
EXPORTING
logical_system = 'AD2CLNT200'
business_system_group = 'BSG001'
commit_control = 'E'
NO_CREATE = ' '
TABLES
resource_head = resource_head
resource_head_x = resource_head_x
resource_text = resource_text
resource_text_x = resource_text_x
return = t_return.
IF sy-subrc = 0.
LOOP AT t_return WHERE type = 'E'
OR type = 'A'.
MOVE t_res_head_val-counter TO t_errlog-counter.
MOVE t_res_head_val-type TO t_errlog-type.
MOVE t_res_head_val-name TO t_errlog-name.
MOVE t_res_head_val-vrsioid TO t_errlog-vrsioid.
MOVE t_res_head_val-restype TO t_errlog-restype.
MOVE t_return-message TO t_errlog-message.
APPEND t_errlog.
CLEAR t_errlog..
ENDLOOP.
IF not t_errlog[] is initial..
IF sy-subrc = 0.
ERROR POP UP
MESSAGE text-007 type 'I'.
ELSE.
err_flg = 'X'.
SUCC POP UP
MESSAGE text-008 type 'I'.
ENDIF.
ELSE. "NE 0
LOOP AT t_return WHERE type = 'E'
OR type = 'A'.
MOVE t_res_head_val-counter TO t_errlog-counter.
MOVE t_res_head_val-type TO t_errlog-type.
MOVE t_res_head_val-name TO t_errlog-name.
MOVE t_res_head_val-vrsioid TO t_errlog-vrsioid.
MOVE t_res_head_val-restype TO t_errlog-restype.
MOVE t_return-message TO t_errlog-message.
APPEND t_errlog.
CLEAR t_errlog..
ENDLOOP.
IF sy-subrc = 0.
ELSE.
MOVE t_res_head_val-counter TO t_errlog-counter.
MOVE t_res_head_val-type TO t_errlog-type.
MOVE t_res_head_val-name TO t_errlog-name.
MOVE t_res_head_val-vrsioid TO t_errlog-vrsioid.
MOVE t_res_head_val-restype TO t_errlog-restype.
MOVE 'Error in Creation' TO t_errlog-message.
APPEND t_errlog.
CLEAR t_errlog..
ENDIF.
ENDIF.
ENDLOOP.
gc_flag = 'X'.
REFRESH fcode.
if err_flg = 'X'.
MESSAGE text-008 type 'I'.
endif.
ENDCASE.
ENDIF.
IF NOT t_errlog[] IS INITIAL.
wk_list_comments-info = text-032.
APPEND wk_list_comments TO it_list_comments.
APPEND 'UPD' TO fcode_error.
APPEND 'ERRLOG' TO fcode_error.
SET PF-STATUS 'ZSTANDARD' EXCLUDING fcode_error.
PERFORM display_alv_err.
ELSE.
ENDIF.
ENDFORM. "CALLBACK_UCOMM=
*& Form CALLBACK_STATUS
text
-->RT_EXTAB text
FORM callback_status USING rt_extab TYPE slis_t_extab.
IF bapi_run_yes_no IS NOT INITIAL .
IF t_errlog[] IS INITIAL.
REFRESH fcode.
APPEND 'UPD' TO fcode.
APPEND 'ERRLOG' TO fcode.
SET PF-STATUS 'ZSTANDARD' EXCLUDING 'ERRLOG'.
SET PF-STATUS 'ZSTANDARD' EXCLUDING fcode IMMEDIATELY .
ENDIF.
ELSE.
SET PF-STATUS 'ZSTANDARD' EXCLUDING 'ERRLOG' IMMEDIATELY .
ENDIF.
ENDFORM. "CALLBACK_STATUS
*& Form CALLBACK_STATUS1
text
-->RT_EXTAB text
FORM callback_status1 USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'ZSTANDARD' EXCLUDING 'UPD'.
ENDFORM. " CALLBACK_STATUS
*& Form CALLBACK_STATUS2
text
-->RT_EXTAB text
FORM callback_status2 USING rt_extab TYPE slis_t_extab.
REFRESH fcode_final.
IF sy-ucomm NE '&F03'.
APPEND 'UPD' TO fcode_final.
APPEND 'ERRLOG' TO fcode_final.
SET PF-STATUS 'ZSTANDARD' EXCLUDING fcode_final.
ELSE.
SET PF-STATUS 'ZSTANDARD' EXCLUDING 'UPD'.
ENDIF.
ENDFORM. "CALLBACK_STATUS2
*& Form callback_ucomm_E
text
-->UCOMM text
-->SELFIELD text
FORM callback_ucomm_e USING ucomm LIKE sy-ucomm
selfield TYPE slis_selfield.
CASE sy-ucomm.
WHEN 'ERRLOG' .
PERFORM display_alv_err.
WHEN '&F03'.
SET PF-STATUS 'ZSTANDARD' EXCLUDING 'UPD' IMMEDIATELY .
PERFORM display_alv .
ENDCASE.
ENDFORM. "CALLBACK_UCOMM=
*& Form init_variant
text
--> p1 text
<-- p2 text
FORM init_variant .
CLEAR: wk_variant.
wk_repid = sy-repid.
wk_variant-report = wk_repid.
wk_variant-username = sy-uname.
wk_variant_save = 'A'. "All types
ENDFORM. " init_variant
*& Form f_read_datum1
text
-->P_T_RES_HEAD text
-->P_P_FILE1 text
<--P_W_SUBRC text
FORM f_read_datum1 TABLES p_t_res_head STRUCTURE ypp_res_head
USING p_p_file1
CHANGING p_w_subrc.
DATA : iexcel LIKE zexcel_read OCCURS 0 WITH HEADER LINE.
CLEAR p_w_subrc.
CALL FUNCTION 'ZALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = p_p_file1
i_begin_col = 1
i_begin_row = 1
i_end_col = 62
i_end_row = 50000
TABLES
intern = iexcel
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
IF sy-subrc <> 0.
p_w_subrc = 0 .
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
LOOP AT iexcel WHERE row > 2.
IF iexcel-col = '0001'.
p_t_res_head-type = iexcel-value.
ENDIF.
IF iexcel-col = '0002'.
p_t_res_head-name = iexcel-value.
ENDIF.
IF iexcel-col = '0003'.
p_t_res_head-vrsioid = iexcel-value.
ENDIF.
IF iexcel-col = '0004'.
p_t_res_head-restype = iexcel-value.
ENDIF.
IF iexcel-col = '0005'.
p_t_res_head-locno = iexcel-value.
ENDIF.
IF iexcel-col = '0006'.
p_t_res_head-tzone = iexcel-value.
ENDIF.
IF iexcel-col = '0007'.
p_t_res_head-calendar = iexcel-value.
ENDIF.
IF iexcel-col = '0008'.
p_t_res_head-planner = iexcel-value.
ENDIF.
IF iexcel-col = '0009'.
p_t_res_h -
Can somebody give some real time questions for alv report
hi guru
can somebody give some real time questions for alv report.
answers also.
regards
subhasis.hi,
The ALV is a set of function modules and classes and their methods which are added to program code. Developers can use the functionality of the ALV in creating new reports, saving time which might otherwise have been spent on report enhancement
The common features of report are column alignment, sorting, filtering, subtotals, totals etc. <b>To implement these, a lot of coding and logic is to be put. To avoid that we can use a concept called ABAP List Viewer (ALV).</b>
Using ALV, we can have three types of reports:
1. Simple Report
2. Block Report
3. Hierarchical Sequential Report
<b>Reward useful points</b>
Siva -
Layout change and save for ALV report
Hi,
I ahve created R3 report in which report has been displayed using ALV grid, I am able to change the layout as I can see the layout -> change option in settings menu, but save and choose option is disabled.
Please advise how to enable layoutr save and choose option for ALV grid.
Thanks,
PiyushHi,
According to sap help you need authorization to save Layout
[ALV -Layout|http://help.sap.com/saphelp_sm32/helpdata/en/82/839d37664e4d45e10000009b38f8cf/content.htm]
To save layouts for all users, you need the authorization S_ALV_LAYO with activity 23 as of Release 4.6C. You can only go to the layout administration if you have this authorization.
You must maintain the authorization object S_ALV_LAYO using the user administration.
If you would like to use or save the Excel view in your layout, you also require the additional authorization S_BDS_DS with activity 01,02,03,06,30; CLASSNAME ALVLAYOUTTEMPLATES and CLASSTYPE OT.
Furthermore, there are applications that have their own authorization checks installed.
In some ALV lists, you can only save user-specific layouts. In these cases, the indicator "user-specific" is active , on a grey background and unable to be changed. This is related to the parameter I_SAVE. This controls which options you have to save the layout.
To be able to define default layouts, the parameter I_DEFAULT must have the value 'X'.
Notes 409190 and 601803 also provide further information on authorizations. -
'Save layout' button missing in the ALV report layout screen
Hi Friends,
In one of our ALV report the 'save layout' button is missing in the report output screen.i have used the OO concept for creating the ALV output and not the function module.I have attached the code below used for creating the ALV grid.
CREATE OBJECT alv_grid
EXPORTING i_parent = g_container_2.
CALL METHOD alv_grid->set_table_for_first_display
exporting
i_structure_name = 'PA0002'
is_layout =
CHANGING
it_outtab = gt_outtab
it_fieldcatalog = wa_fieldcat.
But i'm not able to trace why the 'save layout' button is missing in the output.Can anyone of you help me in sorting out this problem.
Thanks and Regards,
Vadivel.Pass <u><i><b>A to I_SAVE</b></i></u> parameter. That will give the options to the user to save the layout outs.
I_SAVE = SPACE
Layouts cannot be saved.
I_SAVE = 'U'
Only user-defined layouts can be saved.
I_SAVE = 'X'
Only global layouts can be saved.
I_SAVE = 'A'
Both user-defined and global layouts can be saved.
Regards,
Ravi
Note : Please mark all the helpful answers
Message was edited by: Ravikumar Allampallam -
"Select Layout" Option for ALV Report
Hi All,
I have developed a ALV report.
In the output, on clicking the "Select Layout" button, a small window opens with some layout option/variant say "ZSLEB".
When i choose this layout, the output changes and takes the form of the chosen layout i.e. ZSLEB.
Now, on refresh, the alv output doesnt display this new layout, but goes back to the default layout/variant.
Actually, i am not passing anythin to the IS_Variant parameter in the ALV_GRID_Display FM.
I suppose i need to somehow manage to fetch the "ZSLEB" layout value during refresh and pass it to Is_Variant. Please help me in doing this.
Thanks & Regards,
Tejas SavlaHi
On refresh ,
Call ths below code.
s_variant-report = sy-repid.( Your report name ).
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = s_variant
I_TABNAME_HEADER =
I_TABNAME_ITEM =
IT_DEFAULT_FIELDCAT =
I_SAVE = ' '
I_DISPLAY_VIA_GRID = ' '
IMPORTING
E_EXIT =
es_variant = s_variant
EXCEPTIONS
not_found = 1
program_error = 2
OTHERS = 3
Can pass this to IS_VARIANT while calling for REUSE_ALV_ DISPLAY
Please reward if useful. -
Save Data in ALV Report .
Hello,
Given below is my code
*& Report ZALV_TEST_SA *
REPORT ZALV_TEST_SA NO STANDARD PAGE HEADING.
*----------------------TYPE POOL OF ALV--------------------------------*
TYPE-POOLS: SLIS.
*----------------------DATABASE TABLES---------------------------------*
TABLES: ZFLIGHTM_SA, ZFLIGHT_AVAIL_SA.
*-------------DATA DECLARATION-----------------------------------------*
DATA: BEGIN OF ITAB OCCURS 0,
ZFLIGHT_ID TYPE ZFLIGHT_ID,
ZCITY_FROM TYPE ZCITY_FROM,
ZCITY_TO TYPE ZCITY_TO,
ZDEP_DATE TYPE DATS,
ZTIME TYPE TIMS,
ZPRICE TYPE ZPRICE,
ZNUM_OF_PSNGRS(3) TYPE N,
ZAVAIL_SEATS(3) TYPE N,
END OF ITAB.
DATA: BEGIN OF ITABM OCCURS 0,
MANDT TYPE MANDT,
ZFLIGHT_ID TYPE ZFLIGHT_ID,
ZCITY_FROM TYPE ZCITY_FROM,
ZCITY_TO TYPE ZCITY_TO,
ZTIME TYPE TIMS,
ZPRICE TYPE ZPRICE,
END OF ITABM.
DATA: BEGIN OF ITAB_AVAIL OCCURS 0,
MANDT TYPE MANDT,
ZFLIGHT_ID TYPE ZFLIGHT_ID,
ZDEP_DATE TYPE DATS,
ZNUM_OF_PSNGRS(3) TYPE N,
ZAVAIL_SEATS(3) TYPE N,
END OF ITAB_AVAIL.
DATA: WA_ITAB LIKE LINE OF ITAB,
WA_ITABM LIKE LINE OF ITABM,
WA_ITAB_AVAIL LIKE LINE OF ITAB_AVAIL.
DATA: L_REPID LIKE SY-REPID,
L_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
L_LAYOUT TYPE SLIS_LAYOUT_ALV,
L_EVENTS TYPE SLIS_T_EVENT.
DATA: WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
*----------------SELECTION SCREEN SELECT-OPTIONS-----------------------*
SELECT-OPTIONS S_CITY FOR ZFLIGHTM_SA-ZCITY_FROM NO INTERVALS.
SELECT-OPTIONS D_CITY FOR ZFLIGHTM_SA-ZCITY_TO NO INTERVALS.
SELECT-OPTIONS D_DATE FOR ZFLIGHT_AVAIL_SA-ZDEP_DATE NO INTERVALS.
*----------------------SELECTION OF DATA-------------------------------*
PERFORM SELECT_DATA.
*----------------SETTING DATA IN TABLE FOR FIELD CATALOG---------------*
PERFORM CALL_FIELDCAT_MERGE.
*----------CALLING FUNCTION FOR DISPLAYING REPORT----------------------*
PERFORM DISPLAY_TABLE.
*----------------------AT SELECTION SCREEN EVENT-----------------------*
AT USER-COMMAND.
CASE sy-ucomm.
WHEN 'STORE'.
PERFORM SAVE_DATA.
WHEN 'PREVIOUS'.
LEAVE TO SCREEN 0.
WHEN OTHERS.
ENDCASE.
*------------------------------FORMS-----------------------------------*
*& Form SELECT_DATA
* text
* --> p1 text
* <-- p2 text
FORM SELECT_DATA .
SELECT A~ZFLIGHT_ID ZCITY_FROM
ZCITY_TO ZDEP_DATE
ZTIME ZPRICE
ZNUM_OF_PSNGRS ZAVAIL_SEATS
FROM ZFLIGHTM_SA AS A INNER JOIN ZFLIGHT_AVAIL_SA AS B
ON A~ZFLIGHT_ID = B~ZFLIGHT_ID
INTO CORRESPONDING FIELDS OF TABLE ITAB
WHERE A~ZCITY_FROM IN S_CITY
AND A~ZCITY_TO IN D_CITY
AND B~ZDEP_DATE IN D_DATE.
L_REPID = SY-REPID.
ENDFORM. " SELECT_DATA
*& Form CALL_FIELDCAT_MERGE
* text
* --> p1 text
* <-- p2 text
FORM CALL_FIELDCAT_MERGE .
* CLEAR WA_FIELDCAT.
* WA_FIELDCAT-TABNAME = ITAB.
* WA_FIELDCAT-FIELDNAME = 'ZFLIGHT_ID'.
* WA_FIELDCAT-KEY = 'X'. "sets key field
* APPEND WA_FIELDCAT TO L_FIELDCAT.
* WA_FIELDCAT-TABNAME = ITAB.
* WA_FIELDCAT-FIELDNAME = 'ZPRICE'.
* WA_FIELDCAT-KEY = 'X'. "sets key field
* APPEND WA_FIELDCAT TO L_FIELDCAT.
* WA_FIELDCAT-TABNAME = ITAB.
* WA_FIELDCAT-FIELDNAME = 'ZAVAIL_SEATS'.
* WA_FIELDCAT-KEY = 'X'. "sets key field
* APPEND WA_FIELDCAT TO L_FIELDCAT.
*--------------CALLING FUNCTION FOR FIELD CATALOG----------------------*
CLEAR L_FIELDCAT.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = L_REPID
I_INTERNAL_TABNAME = 'ITAB'
* I_STRUCTURE_NAME = 'WA_ITAB'
* I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = 'ZALV_TEST_SA'
I_BYPASSING_BUFFER = 'X'
* I_BUFFER_ACTIVE =
CHANGING
CT_FIELDCAT = L_FIELDCAT
* EXCEPTIONS
* INCONSISTENT_INTERFACE = 1
* PROGRAM_ERROR = 2
* OTHERS = 3
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*--------------EDITING FIELDS IN FIELD CATALOG ------------------------*
LOOP AT L_FIELDCAT INTO WA_FIELDCAT.
CASE WA_FIELDCAT-FIELDNAME.
WHEN 'ZFLIGHT_ID'.
WA_FIELDCAT-COL_POS = '1'.
* WA_FIELDCAT-text_fieldname = 'Flight ID'.
WA_FIELDCAT-KEY = '3'.
WA_FIELDCAT-JUST = 'L'.
WA_FIELDCAT-NO_ZERO = 'X'.
WA_FIELDCAT-EMPHASIZE = 'X'.
WA_FIELDCAT-SELTEXT_L = 'Flight ID'. "40 char long field name
WA_FIELDCAT-SELTEXT_M = 'Flight ID'. "20 char long field name
WA_FIELDCAT-SELTEXT_S = 'Flight ID'. "10 char long field name
WHEN 'ZCITY_FROM' .
WA_FIELDCAT-NO_OUT = 'X'.
WHEN 'ZCITY_TO' .
WA_FIELDCAT-NO_OUT = 'X'.
WHEN 'ZDEP_DATE' .
WA_FIELDCAT-NO_OUT = 'X'.
WHEN 'ZTIME' .
WA_FIELDCAT-NO_OUT = 'X'.
WHEN 'ZPRICE' .
WA_FIELDCAT-COL_POS = '2'.
* WA_FIELDCAT-text_fieldname = 'Flight ID'.
WA_FIELDCAT-KEY = '4'.
WA_FIELDCAT-JUST = 'L'.
WA_FIELDCAT-NO_ZERO = 'X'.
* WA_FIELDCAT-EMPHASIze = 'X'.
WA_FIELDCAT-SELTEXT_L = 'Price'. "40 char long field name
WA_FIELDCAT-SELTEXT_M = 'Price'. "20 char long field name
WA_FIELDCAT-SELTEXT_S = 'Price'. "10 char long field name
WA_FIELDCAT-EDIT = 'X'.
WHEN 'ZNUM_OF_PSNGRS' .
WA_FIELDCAT-NO_OUT = 'X'.
WHEN 'ZAVAIL_SEATS' .
WA_FIELDCAT-COL_POS = '3'.
* WA_FIELDCAT-text_fieldname = 'Flight ID'.
WA_FIELDCAT-KEY = '4'.
WA_FIELDCAT-JUST = 'L'.
WA_FIELDCAT-NO_ZERO = 'X'.
* WA_FIELDCAT-EMPHASIze = 'X'.
WA_FIELDCAT-SELTEXT_L = 'Available Seats'.
"40 char long field
WA_FIELDCAT-SELTEXT_M = 'Available Seats'.
"20 char long field
WA_FIELDCAT-SELTEXT_S = 'Seats'. "10 char long field name
WA_FIELDCAT-EDIT = 'X'.
WHEN OTHERS.
WA_FIELDCAT-NO_OUT = 'X'.
ENDCASE.
MODIFY L_FIELDCAT FROM WA_FIELDCAT.
ENDLOOP.
ENDFORM. " CALL_FIELDCAT_MERGE
*& Form USER_COMMAND_ALV_SA
* text
* --> p1 text
* <-- p2 text
FORM USER_COMMAND_ALV_SA USING I_UCOMM LIKE SY-UCOMM
IS_SELFIELD TYPE SLIS_SELFIELD.
*****form frm_usercommand using r_ucomm like sy-ucomm
*****rs_selfield type slis_selfield.
****CASE I_UCOMM.
CASE sy-ucomm.
WHEN 'STORE'.
PERFORM SAVE_DATA ON COMMIT.
WHEN 'PREVIOUS'.
LEAVE TO SCREEN 0.
WHEN OTHERS.
ENDCASE.
ENDFORM. "USER_COMMAND_ALV_SA
*& Form DISPLAY_TABLE
* text
* --> p1 text
* <-- p2 text
FORM DISPLAY_TABLE .
* L_FIELDCAT-input = 'X'.
* L_FIELDCAT-edit = 'X'.
* L_LAYOUT-Edit = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = L_REPID " report id
I_CALLBACK_PF_STATUS_SET = 'ZALV_TEST_SA' " to set pf-status
I_CALLBACK_USER_COMMAND = 'USER_COMMAND_ALV_SA' " to handle
" user command
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME = ''
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
* IS_LAYOUT = L_LAYOUT
IT_FIELDCAT = L_FIELDCAT " for field catalog
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
IT_EVENTS = L_EVENTS "internal table with
" user 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
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ITAB "internal table with
" records
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.
ENDFORM. " DISPLAY_TABLE
*-------------------------SET PF-STATUS--------------------------------*
*& Form ZALV_TEST_SA
* text
* --> p1 text
* <-- p2 text
FORM ZALV_TEST_SA USING RT_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'ZALV_TEST_SA' .
ENDFORM. "ZALV_TEST_SA
*& Form SAVE_DATA
* text
* --> p1 text
* <-- p2 text
FORM SAVE_DATA.
LOOP AT ITAB INTO WA_ITAB.
****HIDE:WA_ITAB-ZFLIGHT_ID, WA_ITAB-ZCITY_FROM,
****WA_ITAB-ZCITY_TO, WA_ITAB-ZTIME,
****WA_ITAB-ZDEP_DATE, WA_ITAB-ZNUM_OF_PSNGRS,
****WA_ITAB-ZAVAIL_SEATS.
CLEAR: WA_ITABM,WA_ITAB_AVAIL.
WA_ITABM-ZFLIGHT_ID = WA_ITAB-ZFLIGHT_ID.
WA_ITABM-ZCITY_FROM = WA_ITAB-ZCITY_FROM.
WA_ITABM-ZCITY_TO = WA_ITAB-ZCITY_TO.
WA_ITABM-ZTIME = WA_ITAB-ZTIME.
WA_ITABM-ZPRICE = WA_ITAB-ZPRICE.
WA_ITAB_AVAIL-ZDEP_DATE = WA_ITAB-ZDEP_DATE.
WA_ITAB_AVAIL-ZNUM_OF_PSNGRS = WA_ITAB-ZNUM_OF_PSNGRS.
WA_ITAB_AVAIL-ZAVAIL_SEATS = WA_ITAB-ZAVAIL_SEATS.
APPEND WA_ITABM TO ITABM.
APPEND WA_ITAB_AVAIL TO ITAB_AVAIL.
ENDLOOP.
MODIFY ZFLIGHTM_SA FROM TABLE ITABM.
MODIFY ZFLIGHT_AVAIL_SA FROM TABLE ITAB_AVAIL.
COMMIT WORK.
ENDFORM. " SAVE_DATA
I want to edit a field--the price and save the changes. I have assigned a button STORE for this. But my data is not getting saved.
I searched the forum and wrote the code accordingly. I even referred the stored programs. Still I am not getting the output. Please help.
Regards,
Smruthi.
Edited by: Smruthi Acharya on Feb 10, 2009 3:31 PM
Edited by: Julius Bussche on Feb 10, 2009 12:16 PM
Please use code tagsHi,
You must have taken some function code for that STORE button (say you have taken it as MODIFY )
Use this code, it will modify the code in internal table from alv.
I have tried it, n its working:-
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
i_callback_program = v_rep_id " report id
i_callback_pf_status_set = 'PF' " for PF-STATUS
i_callback_user_command = 'USER_COMMAND' " for User-Command
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
is_layout = wa_layout " for layout
it_fieldcat = it_field " field catalog
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
it_sort = it_sort " sort info
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* i_save = 'A'
* is_variant = wa_variant " variant name
* IT_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 " internal table
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.
*& Form USER_COMMAND
* SUB-ROUTINE USER_COMMAND IS USED TO HANDLE THE USER ACTION
* AND EXECUTE THE APPROPIATE CODE
* -->LV_OKCODE used to capture the function code
* of the user-defined push-buttons
* -->L_SELFIELD text
FORM user_command USING lv_okcode LIKE sy-ucomm l_selfield TYPE slis_selfield.
* assign the function code to variable v_okcode
lv_okcode = sy-ucomm.
* handle the code execution based on the function code encountered
CASE lv_okcode.
* when the function code is MODIFY (STORE button) then save data
WHEN 'MODIFY'.
* to reflect the data changed into internal table
DATA : ref_grid TYPE REF TO cl_gui_alv_grid. "new
IF ref_grid IS INITIAL.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = ref_grid.
ENDIF.
IF NOT ref_grid IS INITIAL.
CALL METHOD ref_grid->check_changed_data.
ENDIF.
" at this point your data in internal table is changed
* refresh the ALV Grid output from internal table
l_selfield-refresh = c_check.
ENDFORM. "USER_COMMAND
Hope this helps you.
Regards,
Tarun -
How to put Layouts in selection screen for ALV
Dear All,
I have developed an ALV report . The users will create many layouts and save it. The requirement is that:
In the selection screen , they need to get the list of saved layouts and select one from that so that they need not have to select layout after running the report.
That means .. they want to select the layout before running the report.
Hope that you understood my problem and will help me out...
Thanking you,
ShankarHi,
PARAMETERS P_LAYOUT LIKE DISVARIANT-VARIANT.
INITIALIZATION.
*Get Default display variant
PERFORM F100_DISPLAY_DEFAULT_VARIANTS.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_LAYOUT.
*Value Help for Layouts
PERFORM F1001_VALUE_REQUEST.
*& Form F100_DISPLAY_DEFAULT_VARIANTS
Initializing ALV Values *
FORM f100_display_default_variants.
w_variant-report = sy-repid.
w_variant-handle = c_handle.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save = c_a
CHANGING
cs_variant = w_variant
EXCEPTIONS
wrong_input = 1
not_found = 2
program_error = 3
OTHERS = 4.
IF sy-subrc EQ 0.
p_layout = w_variant-variant.
ENDIF.
ENDFORM.
*& Form F1001_VALUE_REQUEST
Get the values for the layout.
form F1001_VALUE_REQUEST.
DATA: lv_exit TYPE c,
lw_variant LIKE w_variant.
w_variant-report = sy-repid.
w_variant-username = sy-uname.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = w_variant
i_save = c_a
IMPORTING
e_exit = lv_exit
es_variant = lw_variant
EXCEPTIONS
not_found = 1
program_error = 2
OTHERS = 3.
IF sy-subrc IS INITIAL.
IF lv_exit IS INITIAL.
p_layout = lw_variant-variant.
ENDIF.
ELSE.
MESSAGE i029."No layouts found
ENDIF.
endform. " F1001_VALUE_REQUEST
Hope this helps.
Regards,
J.Jayanthi -
How to attach the layouts or variants to the alv report
hi all,
i have seen that using FM REUSE_ALV_VARIANT_F4 for some reports iam
getting the layouts
for some reports its giving message that NO LAYOUTS FOUND.
is there any way to define new layouts or else how can i use existing layouts.
any help will be greatly appreciated,
thanks and regards,
cnu.Hi cnu,
First set <b>I_SAVE = 'A'</b> in the alv grid or list display FM. You can create new layouts by using 'change layout' button.but to save those layouts you have to set the save attribute. see below ex code.So that you can create some layout sets
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = V_REPID
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FIELDCAT[]
IT_SORT = IT_SORT[]
IT_EVENTS = IT_EVENTS[]
I_SAVE = 'A'
TABLES
T_OUTTAB = IT_MLGT[]
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.
plz reward points if helpful
thanks,
Suma. -
Variants on tabbed selection screen for ALV reports
Scenario: We use a tabbed selection screen for an ALV report. We create a variant, make a selection field on the second tab mandatory & save it without a value. When we run the report with the saved variant it does not check that the required field on the second tab is populated before it executes.
Question: How can I code such a check?
Edited by: Alridge Tom on Jul 4, 2008 3:43 PMHi,
try inserting this code apropietly in you program. (1 parameter + Initialization + At-selection-screen + 2 forms)
START HERE
PARAMETERS: pa_vari TYPE disvariant-variant.
INITIALIZATION.
g_repid = sy-repid.
CLEAR e_variant.
e_variant-report = sy-cprog.
e_variant-username = sy-uname.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save = 'A'
CHANGING
cs_variant = e_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 0.
pa_vari = e_variant-variant.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_vari.
PERFORM alv_variant_f4 CHANGING pa_vari.
*& Form ALV_VARIANT_F4
FORM alv_variant_f4 CHANGING pa_vari.
DATA: l_exit(1) TYPE c.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = e_variant
i_tabname_header = 'ANYTHING'
i_save = 'A'
IMPORTING
e_exit = l_exit
es_variant = e_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 2.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
IF l_exit = space.
pa_vari = e_variant-variant.
ENDIF.
ENDIF.
ENDFORM. " ALV_VARIANT_F4
END
Hope iy helps!
Alfonso -
Hi,
i need to add coloums for the existing report which picks from G/L account.
in this report I need to add some more columns from COSP-KSTAR, which shows the cost element details from G/L account.
I need to restrict that cost element number according to the company code.
Plz see this and let me know the things.
1. I need to add FISCAL YEAR(COEP-GJAHR) in selection screen.
2. I need to add column: Employee Cost (CSKS-KOSTL)
3. add a column Staff Welfare (COSP-KSTAR) this is to restrict for the cost element 3000200 from G/L account
4. add a column Recruitment restrict for the cost element(COSP-KSTAR) 3100040 from G/L account
5. add a column Travels (suppressing some cost elements(COSP-KSTAR) and putting into Travels)
6. add a column Subcontracts restrict for the cost element (COSP-KSTAR)3100360 from G/L account
7. add a column Communication suppressing some cost elements and putting into Communication)
8. add a column Rent restrict for the cost element (COSP-KSTAR)3100055 from G/L account
9. add a column Back end Cost restrict for the cost element (COSP-KSTAR)3100065 from G/L account
i can hardcode these cost elements.
i did according to some of our sdn friends guidence but it is going to dump.
hear i am sending the code what i changed.
it is giving the error with the select.
SELECT BUKRS KOKRS gjahr kstar OBJNR OBJNR_N1 PERIO BEKNZ WKGBTR WOGBTR FROM
COEP INTO TABLE
IT_COEP FOR ALL ENTRIES IN IT_AUFK WHERE OBJNR = IT_AUFK-OBJNR and
perio in S_PERIO.
plz try to help me out in this issue.
hear i am sending the complete code what i worte.
*& Report ZPROJECT_PROFIT2
REPORT ZPROJECT_PROFIT2.
*********************MAIN DOCUMENTATION BLOCK*************************
Project Code :
Program Name :Zproject_profit1.
Purpose of program :This report will give the gross margin for a project as
*a whole based on some selected input criteria.
Author of program :JAYA KRISHNA .B.
INPUT/OUTPUT FILE :nil
TYPE-POOLS : SLIS."For ALV display.
TABLES : COEP, "CO Object: Line Items (by period).
AUFK, "Order master data.
csks, "Cost center master data
cosp. "CO Objects
*& Include ZSTRUCTURE
types: BEGIN OF TY_COEP , "structure of table COEP.
BUKRS LIKE COEP-BUKRS,
KOKRS LIKE COEP-KOKRS,
OBJNR LIKE COEP-OBJNR,
gjahr like coep-gjahr,
kstar like coep-kstar,
OBJNR_N1 LIKE COEP-OBJNR_N1,
PERIO LIKE COEP-PERIO,
BEKNZ LIKE COEP-BEKNZ,
WKGBTR LIKE COEP-WKGBTR,
WOGBTR LIKE COEP-WOGBTR,
BELNR LIKE COEP-BELNR,
END OF TY_COEP,
BEGIN OF TY_AUFK , "structure of table AUFK.
BUKRS LIKE AUFK-BUKRS,
KOKRS LIKE AUFK-KOKRS,
OBJNR LIKE AUFK-OBJNR,
KTEXT LIKE AUFK-KTEXT,
ANFAUFNR LIKE AUFK-ANFAUFNR,
AUFEX LIKE AUFK-AUFEX,
USER2 LIKE AUFK-USER2,
USER0 LIKE AUFK-USER0,
USER1 LIKE AUFK-USER1,
USER3 LIKE AUFK-USER3,
USER6 LIKE AUFK-USER6,
USER7 LIKE AUFK-USER7,
USER8 LIKE AUFK-USER8,
ABKRS(10) TYPE C,
USER9 LIKE AUFK-USER9,
AUFNR LIKE AUFK-AUFNR,
END OF TY_AUFK,
begin of ty_csks,
kokrs like csks-kokrs,
kostl like csks-kostl,
bukrs like csks-bukrs,
objnr like csks-objnr,
end of ty_csks.
DATA : BEGIN OF IT_COSP occurs 100,
OBJNR LIKE COSP-OBJNR,
GJAHR LIKE COSP-GJAHR,
KSTAR LIKE COSP-KSTAR,
END OF IT_COSP.
DATA : IT_COEP TYPE TABLE OF TY_COEP, " Declaraton of tables COEP and AUFK.
IT_AUFK TYPE TABLE OF TY_AUFK,
IT_CSKS TYPE TABLE OF TY_CSKS.
IT_COSP TYPE TABLE OF TY_COSP.
DATA : WA_COEP LIKE LINE OF IT_COEP, " Declaration of work areas for tables COEP and AUFK.
WA_AUFK LIKE LINE OF IT_AUFK,
WA_CSKS LIKE LINE OF IT_CSKS.
WA_COSP LIKE LINE OF IT_COSP.
DATA : BEGIN OF IT_DISPLAY OCCURS 0, " Declaration of display table.
OBJNR_N1 LIKE COEP-OBJNR_N1,
OBJNR_N12 LIKE COEP-OBJNR_N1,
KTEXT1 LIKE AUFK-KTEXT,
WKGBTR LIKE COEP-WKGBTR,
WOGBTR LIKE COEP-WOGBTR,
WKGBTR1 LIKE COEP-WTGBTR,
WOGBTR1 LIKE COEP-WOGBTR,
ADDK LIKE COEP-WOGBTR,
ADDO LIKE COEP-WOGBTR,
ADDK1 LIKE COEP-WOGBTR,
ADDO1 LIKE COEP-WOGBTR,
PROFIT1 LIKE COEP-WOGBTR,
PROFIT2 LIKE COEP-WOGBTR,
BEKNZ LIKE COEP-BEKNZ,
BUKRS LIKE AUFK-BUKRS,
anfaufnr LIKE AUFK-anfaufnr,
aufex like aufk-aufex,
OBJNR LIKE AUFK-OBJNR,
USER2 LIKE AUFK-USER2,
USER0 LIKE AUFK-USER0,
USER1 LIKE AUFK-USER1,
USER3 LIKE AUFK-USER3,
USER6 LIKE AUFK-USER6,
USER7 LIKE AUFK-USER7,
USER8 LIKE AUFK-USER8,
ABKRS LIKE AUFK-ABKRS,
USER9 LIKE AUFK-USER9,
PERIO LIKE COEP-PERIO,
AUFNR LIKE AUFK-AUFNR,
STR(5) TYPE C,
WORK(10) TYPE C,
END OF IT_DISPLAY,
: BEGIN OF IT_DISPLAY1 OCCURS 0, " Declaration of second display table.
OBJNR_N1 LIKE COEP-OBJNR_N1,
OBJNR_N12 LIKE COEP-OBJNR_N1,
KTEXT1 LIKE AUFK-KTEXT,
WKGBTR LIKE COEP-WKGBTR,
WOGBTR LIKE COEP-WOGBTR,
WKGBTR1 LIKE COEP-WTGBTR,
WOGBTR1 LIKE COEP-WOGBTR,
ADDK LIKE COEP-WOGBTR,
ADDO LIKE COEP-WOGBTR,
ADDK1 LIKE COEP-WOGBTR,
ADDO1 LIKE COEP-WOGBTR,
PROFIT1 LIKE COEP-WOGBTR,
PROFIT2 LIKE COEP-WOGBTR,
BEKNZ LIKE COEP-BEKNZ,
BUKRS LIKE AUFK-BUKRS,
anfaufnr like aufk-anfaufnr,
aufex like aufk-aufex,
OBJNR LIKE AUFK-OBJNR,
USER2 LIKE AUFK-USER2,
USER0 LIKE AUFK-USER0,
USER1 LIKE AUFK-USER1,
USER3 LIKE AUFK-USER3,
USER6 LIKE AUFK-USER6,
USER7 LIKE AUFK-USER7,
USER8 LIKE AUFK-USER8,
ABKRS LIKE AUFK-ABKRS,
USER9 LIKE AUFK-USER9,
PERIO LIKE COEP-PERIO,
AUFNR LIKE AUFK-AUFNR,
STR(5) TYPE C,
WORK(10) TYPE C,
END OF IT_DISPLAY1.
data : it_field type slis_fieldcat_alv, " Declaration of ALV variables
it_field_t type slis_t_fieldcat_alv,
xlayout TYPE slis_layout_alv.
data : it_event type slis_t_event,
wa_event like line of it_event.
DATA : WA_TOP TYPE SLIS_LISTHEADER,
IT_TOP TYPE SLIS_T_LISTHEADER.
data:w_lines type i,
w_occurs type i,
STR(5) TYPE C,
WORK(10) TYPE C.
constants : c_selection type char20 value 'Selection based on'. " Declaration of a constant.
selection-screen BEGIN OF BLOCK BLK WITH FRAME TITLE TEXT-000.
SELECT-OPTIONS S_BUKRS FOR AUFK-BUKRS OBLIGATORY.
SELECT-OPTIONS S_OBJNR FOR AUFK-AUFNR.
SELECT-OPTIONS S_ANF FOR AUFK-ANFAUFNR.
SELECT-OPTIONS S_AUFEX FOR AUFK-AUFEX.
SELECT-OPTIONS S_USER2 FOR AUFK-USER2.
SELECT-OPTIONS S_USER0 FOR AUFK-USER0.
SELECT-OPTIONS S_USER1 FOR AUFK-USER1.
SELECT-OPTIONS S_USER3 FOR AUFK-USER3.
SELECT-OPTIONS S_USER6 FOR AUFK-USER6.
SELECT-OPTIONS S_ABKRS FOR AUFK-ABKRS.
SELECT-options s_gjahr for coep-gjahr obligatory.
SELECT-OPTIONS S_PERIO FOR COEP-PERIO OBLIGATORY.
SELECTION-SCREEN END OF BLOCK BLK .
SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.
PARAMETERS : ONSITE RADIOBUTTON GROUP RADI.
PARAMETERS : OFFSHORE RADIOBUTTON GROUP RADI.
PARAMETERS : BOTH RADIOBUTTON GROUP RADI.
SELECTION-SCREEN END OF BLOCK BLK1 .
start-of-selection.
*ZAUFK
" Selection of records from aufk to internal table.
IF ONSITE EQ 'X' .
SELECT
BUKRS
KOKRS
OBJNR
KTEXT
anfaufnr
aufex
USER2
USER0
USER1
USER3
USER6
USER7
USER8
ABKRS
USER9
AUFNR
FROM AUFK INTO TABLE IT_AUFK WHERE BUKRS IN S_BUKRS AND
anfaufnr IN s_anf AND
aufex in s_aufex and
aufnr IN S_OBJNR AND
USER2 IN S_USER2 AND
USER0 IN S_USER0 AND
USER1 IN S_USER1 AND
USER3 IN S_USER3 AND
USER6 IN S_USER6 AND
ABKRS IN S_ABKRS AND
USER9 EQ 'X' .
ENDIF.
IF OFFSHORE EQ 'X'.
SELECT
BUKRS
KOKRS
OBJNR
KTEXT
anfaufnr
aufex
USER2
USER0
USER1
USER3
USER6
USER7
USER8
ABKRS
USER9
AUFNR
FROM AUFK INTO TABLE IT_AUFK WHERE BUKRS IN S_BUKRS AND
anfaufnr IN S_anf AND
aufex in s_aufex and
aufnR IN S_OBJNR AND
USER2 IN S_USER2 AND
USER0 IN S_USER0 AND
USER1 IN S_USER1 AND
USER3 IN S_USER3 AND
USER6 IN S_USER6 AND
ABKRS IN S_ABKRS AND
USER9 <> 'X'.
ENDIF.
IF BOTH EQ 'X'.
SELECT
BUKRS
KOKRS
OBJNR
KTEXT
anfaufnr
aufex
USER2
USER0
USER1
USER3
USER6
USER7
USER8
ABKRS
USER9
AUFNR
FROM AUFK INTO TABLE IT_AUFK WHERE BUKRS IN S_BUKRS AND
anfaufnr IN S_anf AND
aufex in s_aufex and
aufNR IN S_OBJNR AND
USER2 IN S_USER2 AND
USER0 IN S_USER0 AND
USER1 IN S_USER1 AND
USER3 IN S_USER3 AND
USER6 IN S_USER6 AND
ABKRS IN S_ABKRS.
ENDIF.
*& Include ZCOEP
" Selection of records from coep to internal table.
SELECT BUKRS KOKRS gjahr kstar OBJNR OBJNR_N1 PERIO BEKNZ WKGBTR WOGBTR FROM
COEP INTO TABLE
IT_COEP FOR ALL ENTRIES IN IT_AUFK WHERE OBJNR = IT_AUFK-OBJNR and
perio in S_PERIO.
*& Include ZPROFIT_CALC
" Calculations for income and Profit of the employee.
if not it_coep[] is initial.
select objnr gjahr wrttp versn kstar from cosp into TABLE It_cosp for
all entries in it_coep where objnr = IT_COEP-objnr .
endif.
LOOP AT IT_coep INTO WA_coep.
read table IT_aufk into WA_aufk with key OBJNR = wa_coep-OBJNR.
case it_cosp-kstar.
when '3000200'.
it_cosp-kstar = cosp-kstar.
when '3100040'.
it_cosp-kstar = cosp-kstar.
when '3100360'.
it_cosp-kstar = cosp-kstar.
when '3100055'.
it_cosp-kstar = cosp-kstar.
when '3100065'.
it_cosp-kstar = cosp-kstar.
when '3100115'.
it_cosp-kstar = cosp-kstar.
when '3100120'.
it_cosp-kstar = cosp-kstar.
when '3100130'.
it_cosp-kstar = cosp-kstar.
when '3100135'.
it_cosp-kstar = cosp-kstar.
when '3100140'.
it_cosp-kstar = cosp-kstar.
when '3100145'.
it_cosp-kstar = cosp-kstar.
when '3100150'.
it_cosp-kstar = cosp-kstar.
when '3100155'.
it_cosp-kstar = cosp-kstar.
when '3100160'.
it_cosp-kstar = cosp-kstar.
when '3100165'.
it_cosp-kstar = cosp-kstar.
when '3100170'.
it_cosp-kstar = cosp-kstar.
endcase.
IT_DISPLAY-BUKRS = WA_AUFK-BUKRS.
IT_DISPLAY-anfaufnr = WA_AUFK-anfaufnr.
it_display-aufex = wa_aufk-aufex.
IT_DISPLAY-OBJNR = WA_AUFK-OBJNR.
IT_DISPLAY-USER2 = WA_AUFK-USER2.
IT_DISPLAY-USER0 = WA_AUFK-USER0.
IT_DISPLAY-USER1 = WA_AUFK-USER1.
IT_DISPLAY-USER3 = WA_AUFK-USER3.
IT_DISPLAY-USER6 = WA_AUFK-USER6.
IT_DISPLAY-USER7 = WA_AUFK-USER7.
IT_DISPLAY-USER8 = WA_AUFK-USER8.
IT_DISPLAY-ABKRS = WA_AUFK-ABKRS.
IT_DISPLAY-USER9 = WA_AUFK-USER9.
IT_DISPLAY-KTEXT1 = WA_AUFK-KTEXT.
if WA_AUFK-abkrs = 01.
IT_DISPLAY-STR = 'TM'.
ENDIF.
IF WA_AUFK-ABKRS = 02.
IT_DISPLAY-STR = 'FP'.
ENDIF.
IF WA_AUFK-USER9 = 'X'.
IT_DISPLAY-WORK = 'ONSITE'.
ENDIF.
IF WA_AUFK-USER9 <> 'X'.
IT_DISPLAY-WORK = 'OFFSHORE'.
ENDIF.
it_display-ABKRS = it_display-user7.
IF wa_coep-BEKNZ = 'S'.
IT_DISPLAY-WKGBTR = WA_COEP-WKGBTR.
IT_DISPLAY-WOGBTR = WA_COEP-WOGBTR.
IT_DISPLAY-ADDK = IT_DISPLAY-ADDK + IT_DISPLAY-WKGBTR.
IT_DISPLAY-ADDO = IT_DISPLAY-ADDO + IT_DISPLAY-WOGBTR.
IT_DISPLAY-ADDK1 = 0.
IT_DISPLAY-ADDO1 = 0.
IT_DISPLAY-PROFIT1 = IT_DISPLAY-ADDK1 + IT_DISPLAY-ADDK.
IT_DISPLAY-PROFIT2 = IT_DISPLAY-ADDO1 + IT_DISPLAY-ADDO.
APPEND IT_DISPLAY.
ENDIF.
IF WA_COEP-BEKNZ = 'H'.
IT_DISPLAY-WKGBTR1 = WA_COEP-WKGBTR.
IT_DISPLAY-WOGBTR1 = WA_COEP-WOGBTR.
IT_DISPLAY-ADDK1 = IT_DISPLAY-ADDK + IT_DISPLAY-WKGBTR1.
IT_DISPLAY-ADDO1 = IT_DISPLAY-ADDO + IT_DISPLAY-WOGBTR1.
IT_DISPLAY-ADDK = 0.
IT_DISPLAY-ADDO = 0.
IT_DISPLAY-PROFIT1 = IT_DISPLAY-ADDK1 + IT_DISPLAY-ADDK.
IT_DISPLAY-PROFIT2 = IT_DISPLAY-ADDO1 + IT_DISPLAY-ADDO.
APPEND IT_DISPLAY.
ENDIF.
collect it_display into it_display1.
clear it_display.
ENDLOOP.
"calc
*& Include ZPROFIT_DISPLAY
LOOP AT IT_DISPLAY1. "it_display.
read table IT_COEP into WA_COEP with key OBJNR =
IT_DISPLAY-OBJNR.
read table IT_AUFK into WA_AUFK with key aufnr = IT_DISPLAY-aufnr.
if WA_AUFK-abkrs = 01.
STR = 'TM'.
ENDIF.
IF WA_AUFK-ABKRS = 02.
STR = 'FP'.
ENDIF.
IF WA_AUFK-USER9 = 'X'.
WORK = 'ONSITE'.
ENDIF.
IF WA_AUFK-USER9 <> 'X'.
WORK = 'OFFSHORE'.
ENDIF.
endloop.
clear it_field.
it_field-col_pos = 1.
it_field-fieldname = 'AUFNR'.
it_field-seltext_l = 'project id.'.
it_field-outputlen = 15.
append it_field to it_field_t.
CLEAR it_field.
clear it_field.
it_field-col_pos = 2.
it_field-fieldname = 'KTEXT1'.
it_field-seltext_l = 'Project Name'.
it_field-outputlen = 20.
append it_field to it_field_t.
CLEAR it_field.
clear it_field.
it_field-col_pos = 3.
it_field-fieldname = 'USER7'.
it_field-seltext_l = 'Start Date'.
it_field-do_sum = 'X'.
it_field-outputlen = 20.
append it_field to it_field_t.
CLEAR it_field.
clear it_field.
it_field-col_pos = 4.
it_field-fieldname = 'USER8'.
it_field-seltext_l = 'End Date'.
it_field-do_sum = 'X'.
it_field-outputlen = 20.
append it_field to it_field_t.
CLEAR it_field.
clear it_field.
it_field-col_pos = 5.
it_field-fieldname = 'USER2'.
it_field-seltext_l = 'Location'.
it_field-do_sum = 'X'.
it_field-outputlen = 20.
append it_field to it_field_t.
CLEAR it_field.
clear it_field.
it_field-col_pos = 6.
it_field-fieldname = 'USER0'.
it_field-seltext_l = 'Vertical'.
it_field-do_sum = 'X'.
it_field-outputlen = 20.
append it_field to it_field_t.
CLEAR it_field.
it_field-col_pos = 7.
it_field-fieldname = 'USER1'.
it_field-seltext_l = 'Sub_vertical'.
it_field-outputlen = 20.
it_field-do_sum = 'X'.
append it_field to it_field_t.
CLEAR it_field.
it_field-col_pos = 8.
it_field-fieldname = 'USER3'.
it_field-seltext_l = 'Technology'.
it_field-outputlen = 20.
it_field-do_sum = 'X'.
append it_field to it_field_t.
CLEAR it_field.
it_field-col_pos = 9.
it_field-fieldname = 'USER6'.
it_field-seltext_l = 'Department'.
it_field-outputlen = 20.
it_field-do_sum = 'X'.
append it_field to it_field_t.
CLEAR it_field.
it_field-col_pos = 10.
it_field-fieldname = 'WORK'.
it_field-seltext_l = 'Onsite/Offshore'.
it_field-outputlen = 20.
it_field-do_sum = 'X'.
append it_field to it_field_t.
CLEAR it_field.
it_field-col_pos = 11.
it_field-fieldname = 'STR'.
it_field-seltext_l = 'T&M/FP'.
it_field-outputlen = 20.
it_field-do_sum = 'X'.
append it_field to it_field_t.
CLEAR it_field.
it_field-col_pos = 12.
it_field-fieldname = 'KOSTL'.
it_field-seltext_l = 'EMP COST'.
it_field-outputlen = 10.
it_field-do_sum = 'X'.
append it_field to it_field_t.
CLEAR it_field.
it_field-col_pos = 13.
it_field-fieldname = 'KSTAR'.
it_field-seltext_l = 'STAFF WELFARE'.
it_field-outputlen = 10.
it_field-do_sum = 'X'.
append it_field to it_field_t.
CLEAR it_field.
it_field-col_pos = 14.
it_field-fieldname = 'KSTAR'.
it_field-seltext_l = 'RECRUITMENT'.
it_field-outputlen = 10.
it_field-do_sum = 'X'.
append it_field to it_field_t.
CLEAR it_field.
it_field-col_pos = 15.
it_field-fieldname = 'KSTAR'.
it_field-seltext_l = 'TRAVELS'.
it_field-outputlen = 10.
it_field-do_sum = 'X'.
append it_field to it_field_t.
CLEAR it_field.
it_field-col_pos = 16.
it_field-fieldname = 'KSTAR'.
it_field-seltext_l = 'SUBCONTRACT'.
it_field-outputlen = 10.
it_field-do_sum = 'X'.
append it_field to it_field_t.
CLEAR it_field.
it_field-col_pos = 17.
it_field-fieldname = 'KSTAR'.
it_field-seltext_l = 'COMMUNICATION'.
it_field-outputlen = 10.
it_field-do_sum = 'X'.
append it_field to it_field_t.
CLEAR it_field.
it_field-col_pos = 18.
it_field-fieldname = 'KSTAR'.
it_field-seltext_l = 'RENT'.
it_field-outputlen = 10.
it_field-do_sum = 'X'.
append it_field to it_field_t.
CLEAR it_field.
it_field-col_pos = 19.
it_field-fieldname = 'KSTAR'.
it_field-seltext_l = 'BACKEND COST (PROJECT EXP)'.
it_field-outputlen = 10.
it_field-do_sum = 'X'.
append it_field to it_field_t.
CLEAR it_field.
it_field-col_pos = 20.
it_field-fieldname = 'ADDO'.
it_field-seltext_l = 'Direct costs'.
it_field-outputlen = 20.
it_field-do_sum = 'X'.
append it_field to it_field_t.
CLEAR it_field.
it_field-col_pos = 21.
it_field-fieldname = 'ADDO1'.
it_field-seltext_l = 'Income'.
it_field-outputlen = 20.
it_field-do_sum = 'X'.
append it_field to it_field_t.
CLEAR it_field.
it_field-col_pos = 22.
it_field-fieldname = 'PROFIT2'.
it_field-seltext_l = 'Profit(income-costs)'.
it_field-outputlen = 20.
it_field-do_sum = 'X'.
append it_field to it_field_t.
CLEAR it_field.
it_field-col_pos = 23.
it_field-fieldname = 'ADDK'.
it_field-seltext_l = 'Direct costs(Grp cur)'.
it_field-outputlen = 20.
it_field-do_sum = 'X'.
append it_field to it_field_t.
CLEAR it_field.
it_field-col_pos = 24.
it_field-fieldname = 'ADDK1'.
it_field-seltext_l = 'Income(Grp Cur)'.
it_field-outputlen = 20.
it_field-do_sum = 'X'.
append it_field to it_field_t.
CLEAR it_field.
it_field-col_pos = 25.
it_field-fieldname = 'PROFIT1'.
it_field-seltext_l = 'Profit(income-costs)'.
it_field-outputlen = 20.
it_field-do_sum = 'X'.
append it_field to it_field_t.
CLEAR it_field.
xlayout-zebra = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = 'ZPROJECT_PROFIT1'
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE_PROFIT'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT = xlayout
IT_FIELDCAT = it_field_t
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_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_DISPLAY1
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.
clear it_field_t.
"it_display.
FORM USER_COMMAND using r_ucomm like sy-ucomm rs type slis_selfield.
include zinteractive_profit."Secondary list for calling KO03.
ENDFORM. "USER_COMMAND.
Thanks & Regards,
Lakshmi..Hi,
i did according to ur suggession.
now it is going dump.
and it is telling like this.
2629 i_event_name = 'SUBTOTAL_TEXT'
2630 is_subtottxt_info = ls_subtot_info
2631 ip_subtot_line = lr_data
2632 changing
2633 c_subtottxt = l_subtottxt.
2634 ls_lvc_data-value = l_subtottxt.
2635
2636 append ls_lvc_data to ct_lvc_data.
2637 endif.
2638
2639 ************************************
2640 * Column per Fieldcat Entry
2641 ************************************
2642 clear ls_lvc_data-style.
2643 loop at it_fcat_local assigning <ls_fcat>
2644 where tech ne 'X' and no_out ne 'X'.
2645 if l_invisible eq 'X'.
2646 clear l_invisible.
2647 if <ls_fcat>-do_sum is initial.
2648 continue.
2649 else.
2650 clear ls_lvc_data-col_pos.
2651 endif.
2652 endif.
2653
2654 add 1 to ls_lvc_data-col_pos.
2655
2656 assign component <ls_fcat>-fieldname
2657 of structure <ls_data> to <l_field_val
2658 if sy-subrc ne 0.
>>>>> message x000(0k).
2660 endif.
2661
2662 *... work on average
2663 if <ls_fcat>-do_sum eq 'C'.
2664 clear l_entries.
2665
2666 assign space to <l_unit>.
2667 if not <ls_fcat>-cfieldname is initial.
2668 assign component <ls_fcat>-cfieldname
2669 of structure <ls_data> to <l_unit>.
2670 endif.
2671 if not <ls_fcat>-qfieldname is initial.
2672 assign component <ls_fcat>-qfieldname
2673 of structure <ls_data> to <l_unit>.
2674 endif.
2675
2676 l_from = ls_grpl-index_from.
2677 l_to = ls_grpl-index_to.
2678 if ls_grpl-index_from is initial and
plz any of u help me to come out with solution.
Thanks & Regards,
Lakshmi.. -
Change column headers in ALV report
Hi experts,
I have created a new simple ALV report (it uses only internal tables, no structures). I would like to change the names of column headers in the ALV report. Is this possible? How can I do it?
Thanks in advanced.Thanks for your reply,
I am trying to use the code mentioned in the link but I think that something
is missing, probably a CASE statement before WHEN in the LOOP.
Can you help me? What do I have to put before WHEN statement?
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = <program name>
i_structure_name = <DDIC structure>
i_bypassing_buffer = 'X'
CHANGING
ct_fieldcat = gi_fieldcat[]
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3. "#EC *
LOOP AT gi_fieldcat INTO wa_fieldcat.
WHEN 'XXXX'.
wa_fieldcat-seltext_s = 'Fac'.
wa_fieldcat-seltext_m = 'Factory'.
wa_fieldcat-seltext_l = 'Factory'.
wa_fieldcat-reptext_ddic = 'Factory'.
MODIFY gi_fieldcat FROM wa_fieldcat.
ENDLOOP. -
My changes edited on editable ALV report are not transferring back to itab?
Hello
I was developed a heirarchila editable ALV by using FM 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'. The user will do some changes in the ITEMs (Z_VBAP_TABLE) on this heirarchila ALV report and presses the SAVE button.
In my program am handling this SAVE command and even my break point is also triggering at SAVE, but my ITAB is not having the CHANGED/new data!! still it has the old data in it! How to capture the user changes done on the report? those changes are not tranferring back to my itab/prog! because, ineed to update Z_VBAP_TABLE with those changes
Thank youHi Raju,
it is possible . But i know about your code.
WHEN 'SAVE'(003).
Lock the table
CALL FUNCTION 'ENQUEUE_E_TABLE'
EXPORTING
mode_rstable = 'E'
tabname = viewname
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
IF NOT grid1 IS INITIAL .
CALL METHOD grid1->check_changed_data .
ENDIF .
SORT i_mod BY row.
DELETE ADJACENT DUPLICATES FROM i_mod COMPARING row.
lh_norec = LINES( i_mod ).
lh_total = lh_norec.
SHIFT lh_total LEFT DELETING LEADING space.
Standard Table Update
IF i_mod[] IS NOT INITIAL.
LOOP AT i_mod INTO lwa_mod.
READ TABLE <i_itab> INTO <wa_tab> INDEX lwa_mod-row.
IF sy-subrc = 0 .
IF lh_flag NE 'X'.
MODIFY (viewname) FROM <wa_tab>.
ELSE.
INSERT (viewname) FROM <wa_tab>.
IF sy-subrc NE 0.
MESSAGE 'DATA NOT SAVED' type 'I'.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
CONCATENATE lh_total ' ' text-s01 INTO lh_succ SEPARATED BY space.
MESSAGE 'Data Saved' TYPE 'I'.
This i did a long back. Check your code . I created an alv that will display data from my table . In this the user can click in any line item and he can change any value and press save that will save the value .
Regards,
Madhu. -
I have a ALV report output with LINE-SIZE 1023. But when I try to execute the report in background the output row is not coming in one line but in 2 lines. When we run the report in background I gave the printer as 'LOCL' (local) and displayed in spool. In the PRINT SETTINGS I don't see FORMAT for 65 X 1023. Do I need to create one? If yes, how to create it? Or if there is any other way go get all the cloumns in one row of a ALV output.
Thank you.Hi,
<b>Change the font on the X_65_255 paper size :-</b>
This tip was taken from the SAP-R3 mailing list, <b>and is by Sheila Tichener</b>.
If you need to use a large line-size to get all your data in I know the sap version of X_65_255 for hp laser jet 4 gives an unnecessarily small font . You can change it in SPAD (or copy to Y_65_255) as follows.
<b>Example:</b>
Choose Device formats, Change
hplj4
x_65_255
Execute
Double click on printer initialisation
Change from:-
# select Courier 16.67 CPI normal font
e(s0p16.67h0s0b4099T
to:-
# select arial 24 cpi 15 point normal
e(s0p24h15v0s0b16602T
Also bold as follows:-
# select arial 24 cpi 15 point bold
e(s0p24h15v0s3b16602T
Also the error you get when changing a format in the output screen is only a warning and can be overidden by pressing the green tick.
If the sap standard formats don't fit your requirements you can create your own eg Y_65_170 . It seems to be the numbers in the name that somehow triggers which one the abap chooses
Regards
Sudheer
Maybe you are looking for
-
Can we use the ESR of XI 7.0 with the Microsoft SAP Duet Enterprise
Hi Experts, I am working on the Microsoft and SAP product DUET enterprise and we are going to use ESR of XI netweaver for defining the web service structures. In demo we have used it with PI 7.1 where we have the concept of Service Interface with mul
-
HT5624 I do not remember my security answers. I just know my Apple ID and password
I know my Apple ID and password but cannot remember the answers to my security questions to change my password??
-
i used redeem $25.00 and i bought clash of clan'gems $19.99.i left redeem $3.36 but i an not get any gems from clash of clan .how to i get back my redeem or gems?
-
Jag försöker ladda ned Acrobat Destiller men kan inte hitta programmet. Det enda jag kommer åt verkar vara installationsprogrammet (ad401.exe) eller om det är en uppdatering? Vad skall jag göra?
-
In Snow Leopard, 'All Images' vs. 'My Pictures' files.
Can anyone discuss the differences between these two files, or point toward more information? I'm puzzled by their apparent redundancy.