Append, Insert controlling in ALV
Hello,
Currently I have to manually select the new line to that is appended or inserted. I want that when use press Append or Insert button in ALV it should pass the control and the new line to become the lead select row. My requirement is that when user make changes in the default fields and press append or insert, these default values should be replaced in the Item Detail section for that particular new row. I am able to capture the event when user press Append or Insert.
Shall appreciate soonest response.
Thks & Rgds,
Hemal
Edited by: Hemal Gandhi on May 12, 2010 4:45 PM
it sounds like you want to used the Append/Insert functionality to just validate your inputs and re-wrote the whole row with the new changes; you don't really want to add a new row?
if I understand correct I think you will need to create your own custom APPEND/INSERT BUTTON to disable standard functionality of Adding a new row to the ALV and run ON_DATA_CHECK to modify current entries behind your custom button.
I will hide the APPEND/INSERT standard button and add a custom button at the same position with the same text calling ON_DATA_CHECK and binding new values to the row that has been change.
Maybe someone else has a better approach but that's what I will do, and I know it works!
thanks!
Jason PV
Similar Messages
-
How to remove the the standard button APPEND/INSERT/DELETE in webdynpro alv
Hello,
how to remove the the standard button APPEND/INSERT/DELETE in webdynpro-abap alv
Thanks
RaksharUse this.
data lo_cmp_usage type ref to if_wd_component_usage.
lo_cmp_usage = wd_this->wd_cpuse_alv1( ).
if lo_cmp_usage->has_active_component( ) is initial.
lo_cmp_usage->create_component( ).
endif.
data lo_interfacecontroller type ref to iwci_salv_wd_table .
lo_interfacecontroller = wd_this->wd_cpifc_alv1( ).
data lo_value type ref to cl_salv_wd_config_table.
lo_value = lo_interfacecontroller->get_model(
data: lr_std type ref to if_salv_wd_std_functions.
lr_std ?= lo_value.
lr_std->set_export_allowed( abap_false ).
NOte: ALV1 is alv component name
Regards
Srinivas
Edited by: sanasrinivas on Dec 1, 2011 6:11 AM -
Remove standard button in ALV LIKE APPEND/INSERT/DELETE
Hi Expert,
I have a requirement in which we do not need APPEND/INSERT/DELETE button in ALV,Can you please tell how i can remove that.
Pleaae suggest.
Thanks
MaheshCheck this
data lo_cmp_usage type ref to if_wd_component_usage.
lo_cmp_usage = wd_this->wd_cpuse_alv1( ). " alv1 is my used alv component
if lo_cmp_usage->has_active_component( ) is initial.
lo_cmp_usage->create_component( ).
endif.
data lo_interfacecontroller type ref to iwci_salv_wd_table .
lo_interfacecontroller = wd_this->wd_cpifc_alv1( ).
data lo_value type ref to cl_salv_wd_config_table.
lo_value = lo_interfacecontroller->get_model( ).
data: lr_std type ref to if_salv_wd_std_functions.
lr_std ?= lo_value.
lr_std->SET_EDIT_APPEND_ROW_ALLOWED( abap_false ).
lr_std->SET_EDIT_DELETE_ROW_ALLOWED( abap_false ).
lr_std->SET_EDIT_INSERT_ROW_ALLOWED( abap_false ).
Regards
Srinivas -
Append/Insert(not Single) Mutliple rows on ALV Webdynpro
Hello Friends,
We all know that the std button Append/Insert , can insert only one row on a single click.
My specific requirement is :
1) that when User clicks on this button(single click), we need to see 'n' rows( n will be provided as a input box for th user to provide like 5,10,12 etc) appended/inserted at the end of the ALV list .
2) In all the new rows, some of the columns should be defaulted to some data.
Is there any approach to achieve this requirement?
Regards
Vinay.Hello Kiran,
As i mentioned earlier, I already implemented the above said approach. Its working..
But just wanted to check if there is any facility as these new rows will not be captured centrally in the
r_param->t_inserted_rows (in data check event). So that i can move on with other processing .
FYI... there is a method in the class CL_SALV_WD_CONFIG_TABLE - IF_SALV_WD_STD_FUNCTIONS~SET_EDIT_APPEND_ROWS_ALLOWED( which is obsolete now).
I dont know why this facility is not provided.
May be we need to check this faciltiy as well with Thomas Jung to re-add this in future.
Anyways..i continue with my approach...
Regards
Vinay. -
Hotspot-clicking (Insert function) plus ALV Sorting
Hi,
I have a requirement where the ALV display has to be SORTED based on values entered/changed on a certain column. The sort works ok when used with a custom APPEND button for new records (always inserted at the bottom of the list).
However, it does not work correctly when used with the Hotspot-click (INSERT functionality). It looks like if you CLICK on a particular record onscreen, you are actually addressing the original record in that position before the SORT was effected.
Is the Hotspot-clicking (Insert functionality) possible with ALV sorting? The ideal solution would be to have the ALV sorted at PBO and also at PAI so that the user can change existing records and add new ones with the sorting being updated everytime ON_DATA_CHANGED is triggered.
Will appreciate any help on this.
Thanks!
MichaelHello Michael
Thanks for further specifying your requirements. I have created the sample variant ZUS_SDN_ALVGRID_HOTSPOT_SORT_1 which contains two differences as compared to its template:
Replace table VBAK with VBAP (so we have two levels of sorting: VBELN, POSNR)
Move SET_TABLE_FOR_FIRST_DISPLAY method call into PBO
When I click on the hotspot (VBELN) a new row entry for the order number is created. The sorting (VBELN, POSNR) is kept even though the new row has been appended to the itab.
*& Report ZUS_SDN_ALVGRID_HOTSPOT_SORT
*& Thread: Hotspot-clicking (Insert function) plus ALV Sorting
*& <a class="jive_macro jive_macro_thread" href="" __jive_macro_name="thread" modifiedtitle="true" __default_attr="1159431"></a>
REPORT zus_sdn_alvgrid_hotspot_sort.
TYPES: BEGIN OF ty_s_outtab.
INCLUDE TYPE vbap.
TYPES: END OF ty_s_outtab.
TYPES: ty_t_outtab TYPE STANDARD TABLE OF ty_s_outtab
WITH DEFAULT KEY.
DATA: gt_outtab TYPE ty_t_outtab.
DATA:
gd_okcode TYPE ui_func,
gd_repid TYPE syrepid,
gt_sort TYPE lvc_t_sort,
gt_fcat TYPE lvc_t_fcat,
gs_layout TYPE lvc_s_layo,
gs_variant TYPE disvariant,
go_docking TYPE REF TO cl_gui_docking_container,
go_grid TYPE REF TO cl_gui_alv_grid.
* CLASS lcl_eventhandler DEFINITION
CLASS lcl_eventhandler DEFINITION.
PUBLIC SECTION.
CLASS-DATA:
ms_sel_row TYPE lvc_s_row. " selected row
CLASS-METHODS:
handle_data_changed FOR EVENT data_changed OF cl_gui_alv_grid
IMPORTING
er_data_changed
e_onf4
e_onf4_before
e_onf4_after
sender,
handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid
IMPORTING
e_row_id
e_column_id
es_row_no
sender.
ENDCLASS. "lcl_eventhandler DEFINITION
* CLASS lcl_eventhandler IMPLEMENTATION
CLASS lcl_eventhandler IMPLEMENTATION.
METHOD handle_data_changed.
FIELD-SYMBOLS: <lt_outtab> TYPE ty_t_outtab.
BREAK-POINT.
ENDMETHOD. "handle_data_changed
METHOD handle_hotspot_click.
" define local data
DATA: ls_outtab TYPE ty_s_outtab,
ld_msg TYPE bapi_msg.
BREAK-POINT.
CLEAR: lcl_eventhandler=>ms_sel_row.
ms_sel_row = e_row_id.
READ TABLE gt_outtab INTO ls_outtab INDEX e_row_id-index.
CONCATENATE 'Selected Sales Order = ' ls_outtab-vbeln ' / '
ls_outtab-posnr
INTO ld_msg.
message i398(00) with ld_msg.
" Trigger PAI
CALL METHOD cl_gui_cfw=>set_new_ok_code
EXPORTING
new_code = 'INSERT'
* IMPORTING
* rc =
ENDMETHOD. "handle_hotspot_click
ENDCLASS. "lcl_eventhandler IMPLEMENTATION
PARAMETERS:
p_vkorg TYPE vkorg DEFAULT '0001' OBLIGATORY.
START-OF-SELECTION.
** SELECT * FROM vbak INTO CORRESPONDING FIELDS OF TABLE gt_outtab
** UP TO 200 ROWS
** WHERE vkorg = p_vkorg.
SELECT * FROM vbap INTO CORRESPONDING FIELDS OF TABLE gt_outtab
UP TO 100 ROWS.
PERFORM init_controls.
* Build fieldcatalog and set hotspot for field KUNNR
PERFORM build_fieldcatalog.
PERFORM set_layout_and_variant.
PERFORM set_sorting.
" Register EDIT event
CALL METHOD go_grid->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter
EXCEPTIONS
error = 1
OTHERS = 2.
IF sy-subrc NE 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
SET HANDLER:
lcl_eventhandler=>handle_data_changed FOR go_grid,
lcl_eventhandler=>handle_hotspot_click FOR go_grid.
* Link the docking container to the target dynpro
gd_repid = syst-repid.
CALL METHOD go_docking->link
EXPORTING
repid = gd_repid
dynnr = '0100'
* CONTAINER =
EXCEPTIONS
OTHERS = 4.
IF sy-subrc NE 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
* ok-code field = GD_OKCODE
CALL SCREEN '0100'.
END-OF-SELECTION.
*& Module STATUS_0100 OUTPUT
* text
MODULE status_0100 OUTPUT.
SET PF-STATUS 'STATUS_0100'.
* SET TITLEBAR 'xxx'.
* Display data
CALL METHOD go_grid->set_table_for_first_display
EXPORTING
i_bypassing_buffer = abap_true
is_variant = gs_variant
i_save = 'A'
* i_default = 'X'
is_layout = gs_layout
* is_print =
* it_special_groups =
* it_toolbar_excluding =
* it_hyperlink =
* it_alv_graphics =
* it_except_qinfo =
* ir_salv_adapter =
CHANGING
it_outtab = gt_outtab
it_fieldcatalog = gt_fcat
it_sort = gt_sort
* it_filter =
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4.
IF sy-subrc NE 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
** CALL METHOD go_grid->refresh_table_display
*** EXPORTING
*** IS_STABLE =
*** I_SOFT_REFRESH =
** EXCEPTIONS
** finished = 1
** OTHERS = 2.
** IF sy-subrc ne 0.
*** MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*** WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
** ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT
*& Module USER_COMMAND_0100 INPUT
* text
MODULE user_command_0100 INPUT.
CASE gd_okcode.
WHEN 'BACK' OR
'EXIT' OR
'CANC'.
SET SCREEN 0. LEAVE SCREEN.
WHEN 'INSERT'.
PERFORM insert_row.
WHEN OTHERS.
" Check for changed data at the frontend (= grid control)
CALL METHOD go_grid->check_changed_data( ).
ENDCASE.
CALL METHOD go_grid->refresh_table_display
* EXPORTING
* IS_STABLE =
* I_SOFT_REFRESH =
EXCEPTIONS
finished = 1
OTHERS = 2.
IF sy-subrc NE 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CLEAR: gd_okcode.
ENDMODULE. " USER_COMMAND_0100 INPUT
*& Form INIT_CONTROLS
* text
* --> p1 text
* <-- p2 text
FORM init_controls .
* Create docking container
CREATE OBJECT go_docking
EXPORTING
parent = cl_gui_container=>screen0
ratio = 90
EXCEPTIONS
others = 6.
IF sy-subrc NE 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL METHOD go_docking->set_extension
EXPORTING
extension = 99999
EXCEPTIONS
cntl_error = 1
OTHERS = 2.
IF sy-subrc NE 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
* Create ALV grid
CREATE OBJECT go_grid
EXPORTING
i_parent = go_docking
EXCEPTIONS
others = 5.
IF sy-subrc NE 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " INIT_CONTROLS
*& Form BUILD_FIELDCATALOG
* text
* --> p1 text
* <-- p2 text
FORM build_fieldcatalog.
* define local data
DATA:
ls_fcat TYPE lvc_s_fcat.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
* I_BUFFER_ACTIVE =
i_structure_name = 'VBAP' " 'VBAK'
* I_CLIENT_NEVER_DISPLAY = 'X'
* I_BYPASSING_BUFFER =
* I_INTERNAL_TABNAME =
CHANGING
ct_fieldcat = gt_fcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc NE 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
** LOOP AT gt_fcat INTO ls_fcat.
** CASE ls_fcat-fieldname.
** WHEN 'VBELN' OR
** 'ERDAT' OR
** 'ERZET' OR
** 'ERNAM' OR
** 'AUART' OR
** 'NETWR' OR
** 'WAERK'.
** CONTINUE.
** WHEN OTHERS.
** ls_fcat-no_out = abap_true.
** ENDCASE.
** MODIFY gt_fcat FROM ls_fcat INDEX syst-tabix.
** ENDLOOP.
* Only non-key fields are editable
** ls_fcat-edit = 'X'.
** MODIFY gt_fcat FROM ls_fcat
** TRANSPORTING edit
** WHERE ( fieldname NE space ).
ls_fcat-hotspot = abap_true.
MODIFY gt_fcat FROM ls_fcat
TRANSPORTING hotspot
WHERE ( fieldname = 'AUART' OR
fieldname = 'VBELN' ).
** DELETE gt_fcat FROM 15 TO 99.
ENDFORM. " BUILD_FIELDCATALOG_KNB1
*& Form SET_LAYOUT_AND_VARIANT
* text
* --> p1 text
* <-- p2 text
FORM set_layout_and_variant .
CLEAR: gs_layout,
gs_variant.
gs_layout-cwidth_opt = abap_true.
gs_variant-report = syst-repid.
gs_variant-handle = 'GRID'.
ENDFORM. " SET_LAYOUT_AND_VARIANT
*& Form SET_SORTING
* text
* --> p1 text
* <-- p2 text
FORM set_sorting .
* define local data
DATA: ls_sort TYPE lvc_s_sort.
REFRESH: gt_sort.
CLEAR: ls_sort.
ls_sort-spos = 1.
ls_sort-fieldname = 'VBELN'.
ls_sort-up = abap_true.
APPEND ls_sort TO gt_sort.
CLEAR: ls_sort.
ls_sort-spos = 1.
ls_sort-fieldname = 'POSNR'.
ls_sort-up = abap_true.
APPEND ls_sort TO gt_sort.
ENDFORM. " SET_SORTING
*& Form INSERT_ROW
* text
* --> p1 text
* <-- p2 text
FORM insert_row .
* define local data
DATA: ls_outtab TYPE ty_s_outtab,
ld_order TYPE vbeln.
READ TABLE gt_outtab INTO ls_outtab
INDEX lcl_eventhandler=>ms_sel_row-index.
ld_order = ls_outtab-vbeln.
" Find last item of sales order
LOOP AT gt_outtab INTO ls_outtab
WHERE ( vbeln = ld_order ).
ENDLOOP.
" Create next item:
add 10 to ls_outtab-posnr.
" NOTE: added at the end of the list
APPEND ls_outtab TO gt_outtab.
" NOTE: insert new row AFTER selected row => works, too
** INSERT ls_outtab INTO gt_outtab
** INDEX lcl_eventhandler=>ms_sel_row-index.
ENDFORM. " INSERT_ROW -
hello experts....
In alv reports how i insert logo into alv grid ?tell me procedure, in the same report how insert background logo?Hi,
At first you have to upload the logo in the application server using transaction 'OAER'.
1. Go to Transaction OAER,
2. Give Class Name as PICTURES
3. Class type as OT
4. Object Key as the name of the Object u want to specify
5. Upon execution you would be prompted to give the file path details. Just upload which ever logo u want to display
6. Now you can use the same name in your ALV FM
In your ALV program, you need to have event for TOP_OF_PAGE, and also this works only in case of Grid not in ALV LIST.
Look at the sample code to display LOGO.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = i_repid
it_fieldcat = header
is_layout = gt_layout
i_callback_top_of_page = 'TOP-OF-PAGE1'
i_grid_title = xyz
it_sort = gt_sort[]
i_default = 'X'
i_save = 'U'
is_variant = gt_variant
it_events = gt_events
tables
t_outtab = t_output.
Form TOP-OF-PAGE1
form top-of-page1.
data: header type slis_t_listheader,
wa type slis_listheader.
TITLE AREA
wa-typ = 'S'.
wa-info = text-h04.
append wa to header.
wa-typ = 'S'.
write sy-datum to wa-info mm/dd/yyyy.
concatenate text-h03 wa-info into wa-info separated by space.
append wa to header.
wa-typ = 'S'.
concatenate text-h02 sy-uname into wa-info separated by space.
append wa to header.
wa-typ = 'S'.
concatenate text-h01 sy-repid into wa-info separated by space.
append wa to header.
********" LOGO
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = header
i_logo = 'ENJOYSAP_LOGO'.
*********" LOGO
endform.
Here in TOP-OF-PAGE form it will show you the Prog name,Date, User Name. -
hi experts,
how can i insert logo in alv grid..can u send me some examples of alv that includes all the functionalities like user-command,commentary write n also logo insertion etc..
regards,
ramanhi ,
chk out this .....and try this ..
for getting the events ....
FORM ZVRPSALV_EVENT_CAT CHANGING RT_EVENT TYPE slis_t_event .
DATA : s_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = RT_EVENT
EXCEPTIONS
list_type_wrong = 1
OTHERS = 2.
CASE sy-subrc.
WHEN 1.
MESSAGE s000 WITH 'List type does not exist'(058).
LEAVE LIST-PROCESSING.
WHEN 2.
MESSAGE s000 WITH 'Error with List Type'(059).
LEAVE LIST-PROCESSING.
ENDCASE.
READ TABLE RT_EVENT WITH KEY NAME = slis_ev_top_of_page INTO s_event .
IF sy-subrc = 0.
MOVE 'TOP_OF_PAGE'(056) TO s_event-form.
APPEND s_event TO rt_event.
CLEAR s_event.
ENDIF.
ENDFORM. " EVENT_CAT
*& Form ZVRPSALV_GRIDDISPLAY1
text
--> p1 text
<-- p2 text
FORM ZVRPSALV_GRIDDISPLAY1 .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'DISPLAY_DOCUMENT '
I_CALLBACK_TOP_OF_PAGE = ' TOP-OF-PAGE '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE = 'BASIC LIST'
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = T_FCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = RT_EVENT
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 = T_ITAB
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. " ZVRPSALV_GRIDDISPLAY1
SUBROTINE FOR DISPLAYING THE SECONDRY ALV GRID.
FORM DISPLAY_DOCUMENT USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
IF RS_SELFIELD-FIELDNAME = 'VBELN'.
READ TABLE T_ITAB INDEX RS_SELFIELD-TABINDEX .
V_VBELN = T_ITAB-VBELN.
LOOP AT T_ITAB WHERE VBELN = V_VBELN.
Move: T_ITAB-POSNR to T_ITAB1-POSNR ,
T_ITAB-MATNR to T_ITAB1-MATNR ,
T_ITAB-MATKL to T_ITAB1-MATKL,
T_ITAB-ARKTX to T_ITAB1-ARKTX ,
T_ITAB-PSTYV to T_ITAB1-PSTYV ,
T_ITAB-SPART to T_ITAB1-SPART ,
T_ITAB-GSBER to T_ITAB1-GSBER ,
T_ITAB-KWMENG to T_ITAB1-KWMENG .
Append T_ITAB1.
ENDLOOP.
ENDIF.
*& Form ZVRPSALV_COMMENT
text
-->P_T_HEADER text
FORM ZVRPSALV_COMMENT USING P_T_HEADER type slis_t_listheader .
DATA : LS_LINE TYPE SLIS_LISTHEADER.
CLEAR LS_LINE .
LS_LINE-TYP = 'H'.
LS_LINE-INFO = 'HEADING LIST'.
APPEND LS_LINE TO P_T_HEADER.
CLEAR LS_LINE.
LS_LINE-typ = 'S'.
write sy-datum to LS_LINE-info MM/DD/YYYY.
CONCATENATE text-041 LS_LINE-info INTO LS_LINE-info separated by space .
APPEND LS_LINE TO P_T_HEADER.
ENDFORM. " ZVRPSALV_COMMENT
SUBROUINE FOR TOP OF PAGE.
FORM TOP_OF_PAGE.
clear t_header.
DATA: LV_HEADER TYPE SLIS_LISTHEADER.
LV_HEADER-TYP = 'S'.
WRITE SY-DATUM TO LV_HEADER-INFO MM/DD/YYYY.
CONCATENATE TEXT-041 LV_HEADER-INFO INTO LV_HEADER-INFO SEPARATED BY SPACE.
APPEND LV_HEADER TO T_HEADER.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = T_HEADER
I_LOGO = ' ENJOYSAP_LOGO '
I_END_OF_LIST_GRID =
I_ALV_FORM =
ENDFORM.
*& Form ZVRPSALV_EVENTTAB
text
<--P_T_EVENT text
FORM ZVRPSALV_EVENTTAB CHANGING P_T_EVENT TYPE SLIS_T_EVENT.
DATA : LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = P_T_EVENT.
SEARCH THE TOP OF PAGE EVENT.
READ TABLE P_T_EVENT WITH KEY NAME = SLIS_EV_TOP_OF_PAGE INTO LS_EVENT .
IF SY-SUBRC = 0 .
MOVE 'TOP_OF_PAGE' TO LS_EVENT-FORM.
APPEND LS_EVENT TO P_T_EVENT.
ENDIF.
ENDFORM. " ZVRPSALV_EVENTTAB
thanks and regards
Priyank Dixit -
Hi Gurus,
How to insert logo in ALV Cell Level.
thanks in advance.
regards,
kiran.chHi,
I saw a sample code in Wiki:
https://www.sdn.sap.com/irj/scn/wiki?path=/display/snippets/inserting%2520a%2520logo%2520in%2520alv%2520program
Edited by: Renjith Michael on Jun 26, 2009 1:12 PM
Edited by: Renjith Michael on Jun 26, 2009 1:12 PM -
How to append leading spaces in ALV Output
Hello Experts,
Is it possible to append leading spaces in ALV Output? We want to have a functionality that will show the output like a hierarchy in a column.
Thanks a lot for your help.
Example:
WBSElement
WBSELEL01VL2
WBSELEL01VL3A
WBSELEL01VL4X
WBSELEL01VL5W
WBSELEL01VL5Z
WBSELEL01VL4Y
WBSELEL01V5P
WBSELEL01V5Q
WBSELEL01VL3B
WBSELEL01VL4L
WBSELEL01VL5H
WBSELEL01VL5T
WBSELEL01VL4M
WBSELEL01V5C
WBSELEL01V5D
Edited by: sam jose on Dec 1, 2009 4:01 PMThanks, Nilesh.
Sorry for the delayed response. I have modified the ITAB with that logic and I see the indentation now (in Debug Mode of T_PLAN).
However, when I display the ALV output though, it disappears.
I am using the following method.
data: plan_control type scrfname value 'TOOL',
plan_container type ref to cl_gui_custom_container,
plan_grid type ref to cl_gui_alv_grid,
plan_fieldcat type lvc_t_fcat,
plan_layout type lvc_s_layo.
if plan_container is initial.
perform plan_fieldcat_init using plan_fieldcat[].
create object plan_container
exporting
container_name = plan_control.
create object plan_grid
exporting
i_parent = plan_container.
plan_layout-cwidth_opt = 'X'.
plan_layout-zebra = 'X'.
call method plan_grid->set_table_for_first_display
exporting
is_layout = plan_layout
changing
it_outtab = T_PLAN[]
it_fieldcatalog = plan_fieldcat
exceptions
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
others = 4.
endif.
Can anybody please let me know if I am missing anything?
Thanks again.
Edited by: sam jose on Dec 8, 2009 8:44 PM -
Append Multiple Control Images as a 2-D array/tabl​e ?
All
I am trying to generate a report and I wish to have the following pattern:
Image Blank Image
Blank Image Blank
Image Blank Image
Where I intend to place my control images at "Image" and no image at "Blank"
I thought I can build a table of control images and append but it accepts only string/numeric tables.
Is there a easier way to include images into WORD report, equivalent to: me inserting a 3x3 table in a word document, and pasting images in 1st row 1st column, 1st row 3rd colum, 2nd row 2nd colum, 3rd row 1st column, 3rd row 3rd column.
Please let me know, thanks
Kudos always welcome for helpful postsThat example was cool. I wish to add images to table using control reference.
I tried using the control reference to get image, save as a png and then use it to add images. Is there a way that I can use the control reference to add images to my table directly ?
Kudos always welcome for helpful posts -
hi experts ..
I want to add a row in the alv when i click on add button..
I know there is insert row and append row buttons available in alv but i dont want those names ..
Can i change the name of standard buttons or is there sm class that i can use to develop this functionality.
jagruti.Hi Jagruti,
You just have to add a new button with whatever name you want, and map it to the existing functionality in ALV. It will work and you dont need to do anything else.
The code will be:
data:
lr_button type ref to cl_salv_wd_fe_button,
lr_function type ref to cl_salv_wd_function.
CREATE OBJECT lr_button.
lr_button->set_text( 'Your text' ).
lr_button->set_tooltip( 'Your tooltip' ).
lr_function = l_alv_model->if_salv_wd_function_settings~create_function( id = 'INSERT' ).
<b>lr_function->set_function_std( IF_SALV_WD_C_STD_FUNCTIONS=>EDIT_APPEND_ROW ).</b>
lr_function->set_editor( lr_button ).
The method set_function_std sets your funcion to take the behaviour of the standard ALV function for inserting rows. So it would work automatically. You have only changed the text.
<b>If your problem is solved, please award points and close the threads. Couple of your previous threads are still open, please close them</b>
Regards,
Nithya -
Hi,
Want to insert rows in editable cell of ALV grid display without using classes and methods.
Thanks in advanceyou need to have a button to append the Rows. it can be possible with the PF_STATUS event. and handling will be done using the User_command.
FORM PF_STATUS using extab type slis_t_extab.
set pf-status 'STANDARD' excluding extab.
ENDFORM.
FORM USER_COMMAND using r_cuomm type sy-ucomm
selfield type slis_selfield.
case r_ucomm.
when 'APPEND'.
APPEND EMPTY LINE HERE to internal table
endcase.
selefield-refresh = 'X'.
ENDFORM. -
How to display Insert button in ALV Grid
Hi All,
When I create an ALV Grid, I dont see the Insert Row and Delete Row buttons in the toolbars by default. But when I see the class CL_GUI_ALV_GRID, I see two attributes named MC_FC_LOC_INSERT_ROW and MC_FC_LOC_DELETE_ROW. These attributes, I feel are for the insert and delete functionalities only.
Then How can we display them in our toolbar..
Please help me out.
Points are guaranteed for useful answers.
Thanks in advance.
Regards,
Himanshuhi,
1) define local CLASS : DEFINITION.
METHODS:
*for event double click
handle_dclick for event double_click OF cl_gui_alv_grid
importing ES_ROW_NO,
handle_toolbar
FOR EVENT toolbar OF cl_gui_alv_grid
IMPORTING e_object e_interactive.
PRIVATE SECTION.
ENDCLASS.
2)
implmentation:
METHOD handle_toolbar.
* § 2.In event handler method for event TOOLBAR: Append own functions
* by using event parameter E_OBJECT.
* DATA: ls_toolbar TYPE stb_button.
* append a separator to normal toolbar
CLEAR ls_toolbar.
ls_toolbar-butn_type = 0.
ls_toolbar-function = 'PICK'.
ls_toolbar-icon = ICON_MASTER_DATA_ACT.
ls_toolbar-quickinfo = 'Debitor anzeigen'.
ls_toolbar-disabled = space.
APPEND ls_toolbar TO e_object->mt_toolbar.
endmethod.
3) after creating grid
CREATE OBJECT event_receiver.
SET HANDLER event_receiver->handle_dclick FOR grid.
SET HANDLER event_receiver->handle_toolbar FOR grid.
A. -
Appending Rows To Editable ALV Grid
Hi,
I have a requirement to allow users to append rows to ALV grid in order to insert new data. The standard append button works to add the row on the front end, however, when I go to process the row through the DATA_CHANGED event of the CL_GUI_ALV_GRID class the program errors out with a GETWA_NOT_ASSIGNED error.
Any help or examples of programs utilizing the Append button would be much appreciated.
Thanks,
Brian SHi,
check this demo program <b> BCALV_EDIT_04</b>
regards
Vijay -
How to trap Append row fcode from ALV toolbar in OOPS approache
Hi
1. I would like trap the function code for ALV toolbar button like APPEND row and Delete row etc. Please let the procedure for that or may be if somebody can tell me that how do what logic is being followed while appending a line to the grid using "Insert Row" in BCALV_TEST_GRID_EDITABLE program.
2. My is editable ALV grid, if i pressing the delete button from the keyboard then it is deleting the from the ALV.I would like to prevent from not deleting the rows.
Thanks
Suruchihow did you resolve it?
thank in advance.
Maybe you are looking for
-
How to change a DIVISION in Sales Order which is already saved?
Hi, I want to change only the division in Sales Order which is already created and saved. Which means I already created sales order with sales area GB50/02/12 and now I want to change that division to 14. Please note that it has no reference docs and
-
How to consider advance in APP
Gurus, I have paid an advance through Down payment F-47 & F-48 i.e USD 5000. Afterwards i have booked an invoice through FB60 i.e USD 7000. Now i want to run APP. Is it consider the advance, and paid the balance of USD 2000. How
-
QT Movie is 1 minute - Motion thinks it's 12 seconds
I created a 1 minute QT movie with Motion. I'm importing it into Motion now and Motion thinks it's 12 seconds long. It only plays 12 seconds of it in the timeline. The file manager's info in Motion says 12 seconds. Open it up in QT Pro and QT Pro say
-
Csutil.exe error in ACS 4.1 for Windows
Hi, When I try to list VSAs created on the ACS by running csutil.exe -listUDV at the cmd prompt I get the error "can not initialize schemelayer". What could be the problem?
-
Continuous updating date and time
trying to login to appletv but screen stay on Updating Date and Time. I have confirmed WiFi is connected and have reset per instruction.