2014 May 27 11:23 AM
Hi all,
i want to add Refresh button in ALV Output with executable report is it possible? How?
2014 May 27 1:28 PM
Dear all
i am using executable programe not module pool programming,i want this in executable programe alv output
What i need to change in this FM ????
2014 May 27 11:33 AM
Hi Mahipalsinh,
Yes it is possible. You may put one refresh button in executable report by creating GUI status.
Display the ALV Grid using class CL_GUI_ALV_GRID. On click of the refresh button call the method REFRESH_TABLE_DISPLAY of class CL_GUI_ALV_GRID.
2014 May 27 12:22 PM
Hi viraj
Do you have any example for this if yes then please give me..
Thanks,
Mahipalsinh
2014 May 27 11:43 AM
Hi,
If you are using FM for your ALV,
You can copy the sap std status from program SAPLZENG_DATA_SCREEN and status as STANDARD_FULLSCREEN using Tcode SE41 By status oiption on aaplication tool Bar.
SET PF-STATUS 'STANDARD'.
.
2014 May 27 12:23 PM
Hi Pravin,
Please explain more ..
how can i put this button and how i can code for this?
2014 May 27 12:32 PM
2014 May 27 12:26 PM
hi Mahipalsinh ,
Use :
DATA ref1 TYPE REF TO cl_gui_alv_grid.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = ref1.
CALL METHOD ref1->check_changed_data.
*
rs_selfield-refresh = 'X'.
Regards,
Yogendra Bhaskar
2014 May 27 1:08 PM
2014 May 27 1:40 PM
Hi Mahipalsinh ,
You have to include this in form USER_OC .
or you can do one thing , create a pushbutton on status bar , with function code REFRESH
and code this in USER_OC
FORM USER_OC USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
DATA REF1 TYPE REF TO CL_GUI_ALV_GRID.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
E_GRID = REF1.
CALL METHOD REF1->CHECK_CHANGED_DATA.
*
RS_SELFIELD-REFRESH = 'X'.
*
* ENDIF.
IF R_UCOMM EQ 'REFRESH'.
*
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
E_GRID = REF1.
CALL METHOD REF1->CHECK_CHANGED_DATA.
*
RS_SELFIELD-REFRESH = 'X'.
*
ENDIF.
ENDFORM.
Regards
Yogendra Bhaskar
2014 May 29 1:02 PM
2014 May 27 12:30 PM
2014 May 27 1:08 PM
2014 May 27 12:34 PM
Did you use the search tool ?
There are already some samples at scn with this refresh option.
Regards,
Raymond
2014 May 27 1:28 PM
Dear all
i am using executable programe not module pool programming,i want this in executable programe alv output
What i need to change in this FM ????
2014 May 27 3:02 PM
Hi Mahipalsinh,
First you create the Status from SE41 transaction as shown in belwo snap shot.
Go to Tcose SE41--> Clcik on Status Icon on application tool bar and provide the From program and status name and mention your program name and staus name. Status name can be anything and click on Copy button.
It will lead to next screen and click on Copy
Clcik on change button
Activate the by clicking on Activate button. Here you can see all the standard Icon are copied. If you do not want any options you can remove it.
Now in your ALV program just call bellow code. You can see all the icons in report output including your refresh icon.
FORM pf_status_set USING pt_extab TYPE slis_t_extab.
SET PF-STATUS 'YPROGRAM'.
ENDFORM.
Cheers,
Pravin
2014 May 29 11:59 AM
Hi pravin
where i have write this code ?
Means at which place i have to put this code..where i have to perform this form ???
2014 May 29 1:09 PM
Hi,
You have to just write that form routine at any place in ALV logic. I.e. YOu can call it after building the fieldcatlog or after the /Header/Footer.
This will not have PERFORM. Just form will work.
Hope this will resolve your issue. Let me know if you still have any issue.
Cheers,
Pravin
2014 May 30 8:05 AM
Please give me some example code because without perform how can i use this form?
2014 May 30 8:53 AM
Hi Mahipalsinh,
Please find the example code as below and let me know if you have any issue.
REPORT yalv_report NO STANDARD PAGE HEADING LINE-SIZE 255
MESSAGE-ID zz.
TYPE-POOLS: slis.
**Material BAPI Header
TYPES BEGIN OF type_head.
INCLUDE STRUCTURE bapimathead.
TYPES END OF type_head.
**Material BAPI for Extension
TYPES BEGIN OF type_extin.
INCLUDE STRUCTURE bapiparex.
TYPES END OF type_extin.
**Material BAPI for Extension Changes
TYPES BEGIN OF type_extinx.
INCLUDE STRUCTURE bapiparexx.
TYPES END OF type_extinx.
TYPES:BEGIN OF type_output,
zzmatnr TYPE matnr,
zzchangetype TYPE zzdechangetype,
zzeffectivedate TYPE zzdeeffctdat,
zzstatus TYPE zzdestatus,
zzversion TYPE zzversion ,
zzuomp TYPE zzuomp,
zzpck_uqty TYPE zzpck_uqty,
zzshp_uqty TYPE zzshp_uqty,
zzwhr_uqty TYPE zzwhr_uqty ,
zzpck_kuty TYPE zzpck_kuty,
zzshp_kuty TYPE zzshp_kuty,
message TYPE char100,
END OF type_output.
TYPES:BEGIN OF ty_qty,
zzmatnr TYPE matnr,
zzchangetype TYPE zzdechangetype,
zzeffectivedate TYPE zzdeeffctdat,
zzstatus TYPE zzdestatus,
zzversion TYPE zzversion ,
zzuomp TYPE zzuomp ,
zzpck_uqty TYPE zzpck_uqty ,
zzshp_uqty TYPE zzshp_uqty,
zzwhr_uqty TYPE zzwhr_uqty ,
zzpck_kuty TYPE zzpck_kuty,
zzshp_kuty TYPE zzshp_kuty,
message TYPE char100,
END OF ty_qty.
***---Internal Tables
DATA:i_qty TYPE TABLE OF ty_qty,
i_extin TYPE STANDARD TABLE OF type_extin,
i_extinx TYPE STANDARD TABLE OF type_extinx,
i_return TYPE STANDARD TABLE OF bapiret2
WITH HEADER LINE,
i_out TYPE STANDARD TABLE OF type_output,
i_fieldcat TYPE slis_t_fieldcat_alv,
i_layout TYPE slis_layout_alv,
i_events TYPE slis_t_event,
i_list_top_of_page TYPE slis_t_listheader.
***---Work Area.
DATA:wa_headerdata TYPE bapimathead,
wa_qty TYPE ty_qty,
wa_extin TYPE type_extin,
wa_extinx TYPE bapiparex,
wa_message TYPE bapiret2,
wa_errtxt TYPE t100-text,
wa_out TYPE type_output,
wf_zzmatnr TYPE zmm_chg_req-zzmatnr,
wa_print TYPE slis_print_alv,
wa_fieldcat TYPE slis_fieldcat_alv,
wa_variant TYPE disvariant.
CONSTANTS:c_x TYPE char1 VALUE 'X',
c_s TYPE char1 VALUE 'S',
c_m TYPE char1 VALUE 'M',
c_h TYPE char1 VALUE 'H',
c_5 TYPE char1 VALUE '5',
c_a TYPE char1 VALUE 'A',
c_zfrt TYPE char4 VALUE 'ZFRT',
c_pack TYPE char9 VALUE 'PACKAGING',
c_zzmatnr TYPE char7 VALUE 'ZZMATNR',
c_zzversion TYPE char9 VALUE 'ZZVERSION',
c_effect TYPE char15 VALUE 'ZZEFFECTIVEDATE',
c_zzuomp TYPE char6 VALUE 'ZZUOMP',
c_zzpck_uqty TYPE char10 VALUE 'ZZPCK_UQTY',
c_zzshp_uqty TYPE char10 VALUE 'ZZSHP_UQTY',
c_zzwhr_uqty TYPE char10 VALUE 'ZZWHR_UQTY',
c_zzpck_kuty TYPE char10 VALUE 'ZZPCK_KUTY',
c_zzshp_kuty TYPE char10 VALUE 'ZZSHP_KUTY',
c_message TYPE char7 VALUE 'MESSAGE',
c_bid TYPE bds_typeid VALUE 'TEST_LOGO'.
***--Selection Screen
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-000.
SELECT-OPTIONS:s_matnr FOR wf_zzmatnr.
PARAMETERS :p_date TYPE sy-datum .
SELECTION-SCREEN END OF BLOCK b1.
INITIALIZATION.
p_date = sy-datum.
START-OF-SELECTION.
PERFORM get_data.
END-OF-SELECTION.
PERFORM update_mara.
PERFORM alv_grid_display.
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_data .
SELECT a~zzmatnr
a~zzchangetype
a~zzeffectivedate
a~zzstatus
b~zzversion
b~zzuomp
b~zzpck_uqty
b~zzshp_uqty
b~zzwhr_uqty
b~zzpck_kuty
b~zzshp_kuty
INTO TABLE i_qty
FROM ( zmm_chg_req AS a
INNER JOIN zvpackageqty AS b
ON a~zzmatnr EQ b~zzmatnr
AND a~zzeffectivedate EQ b~zzeff_dt )
WHERE a~zzmatnr IN s_matnr
AND a~zzchangetype EQ c_pack
AND a~zzstatus EQ c_a
AND a~zzeffectivedate LE sy-datum.
ENDFORM. " GET_DATA
*&---------------------------------------------------------------------*
*& Form UPDATE_MARA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM update_mara .
DATA: lwf_qty TYPE i.
LOOP AT i_qty INTO wa_qty.
* Populate the Header data
wa_headerdata-material = wa_qty-zzmatnr.
wa_headerdata-ind_sector = c_m.
wa_headerdata-matl_type = c_zfrt.
wa_headerdata-basic_view = c_x.
wa_extin-structure = 'BAPI_TE_MARA'.
wa_extin-valuepart1+0(18) = wa_qty-zzmatnr.
wa_extin-valuepart1+18(108) = space.
CLEAR lwf_qty.
lwf_qty = wa_qty-zzwhr_uqty .
wa_extin-valuepart1+108(10) = lwf_qty .
wa_extin-valuepart1+118(3) = wa_qty-zzpck_kuty .
CLEAR lwf_qty.
lwf_qty = wa_qty-zzpck_uqty.
wa_extin-valuepart1+121(10) = lwf_qty .
wa_extin-valuepart1+131(3) = wa_qty-zzshp_kuty.
CLEAR lwf_qty.
lwf_qty = wa_qty-zzshp_uqty.
wa_extin-valuepart1+134(10) = lwf_qty.
APPEND wa_extin TO i_extin.
wa_extinx-structure = 'BAPI_TE_MARAX'.
wa_extinx-valuepart1+0(18) = wa_qty-zzmatnr.
wa_extinx-valuepart1+18(21) = space.
wa_extinx-valuepart1+21(1) = c_x.
wa_extinx-valuepart1+22(1) = c_x.
wa_extinx-valuepart1+23(1) = c_x.
wa_extinx-valuepart1+24(1) = c_x.
wa_extinx-valuepart1+25(1) = c_x.
APPEND wa_extinx TO i_extinx.
** Save the quantity fileds to MARA table
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = wa_headerdata
IMPORTING
return = wa_message
TABLES
returnmessages = i_return
extensionin = i_extin
extensioninx = i_extinx.
IF wa_message-type = c_s.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = c_x.
ENDIF.
CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
msgid = wa_message-id
msgnr = wa_message-number
msgv1 = wa_message-message_v1
msgv2 = wa_message-message_v2
msgv3 = wa_message-message_v3
msgv4 = wa_message-message_v4
IMPORTING
message_text_output = wa_errtxt
EXCEPTIONS
OTHERS = 1.
wa_qty-message = wa_errtxt.
** Fill final output table.
MOVE-CORRESPONDING wa_qty TO wa_out.
APPEND wa_out TO i_out.
CLEAR: wa_out, wa_qty,wa_extinx,wa_extin.
REFRESH: i_extinx,i_extin.
ENDLOOP.
REFRESH i_qty.
ENDFORM. " UPDATE_MARA
*&---------------------------------------------------------------------*
*& Form ALV_GRID_DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM alv_grid_display .
PERFORM build_fieldcatlog.
PERFORM get_event_layout.
PERFORM header_section.
PERFORM call_alv_grid.
ENDFORM. " ALV_GRID_DISPLAY
*&---------------------------------------------------------------------*
*& Form BUILD_FIELDCATLOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM build_fieldcatlog .
DATA:lf_column TYPE i VALUE 1.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = c_zzmatnr.
wa_fieldcat-col_pos = lf_column.
wa_fieldcat-seltext_l = text-001.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
ADD 1 TO lf_column.
wa_fieldcat-fieldname = c_zzversion.
wa_fieldcat-col_pos = lf_column.
wa_fieldcat-seltext_l = text-002.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
ADD 1 TO lf_column.
wa_fieldcat-fieldname = c_effect .
wa_fieldcat-col_pos = lf_column.
wa_fieldcat-seltext_l = text-003.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
ADD 1 TO lf_column.
wa_fieldcat-fieldname = c_zzuomp.
wa_fieldcat-col_pos = lf_column.
wa_fieldcat-seltext_l = text-004.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
ADD 1 TO lf_column.
wa_fieldcat-fieldname = c_zzpck_uqty.
wa_fieldcat-col_pos = lf_column.
wa_fieldcat-seltext_l = text-005.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
ADD 1 TO lf_column.
wa_fieldcat-fieldname = c_zzshp_uqty.
wa_fieldcat-col_pos = lf_column.
wa_fieldcat-seltext_l = text-006.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
ADD 1 TO lf_column.
wa_fieldcat-fieldname = c_zzwhr_uqty.
wa_fieldcat-col_pos = lf_column.
wa_fieldcat-seltext_l = text-011.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
ADD 1 TO lf_column.
wa_fieldcat-fieldname = c_zzpck_kuty.
wa_fieldcat-col_pos = lf_column.
wa_fieldcat-seltext_l = text-012.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
ADD 1 TO lf_column.
wa_fieldcat-fieldname = c_zzshp_kuty.
wa_fieldcat-col_pos = lf_column.
wa_fieldcat-seltext_l = text-013.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
ADD 1 TO lf_column.
wa_fieldcat-fieldname = c_message.
wa_fieldcat-col_pos = lf_column.
wa_fieldcat-seltext_l = text-007.
APPEND wa_fieldcat TO i_fieldcat.
ENDFORM. " BUILD_FIELDCATLOG
*&---------------------------------------------------------------------*
*& Form GET_EVENT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_event_layout .
DATA: lf_event TYPE slis_alv_event,
lf_form_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE',
lf_form_end_of_list TYPE slis_formname VALUE 'END_OF_LIST',
lf_form_pf_status_set TYPE slis_formname VALUE 'PF_STATUS_SET'.
CLEAR :i_events[], lf_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = i_events
EXCEPTIONS
list_type_wrong = 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.
READ TABLE i_events WITH KEY name = slis_ev_top_of_page
INTO lf_event.
IF sy-subrc = 0.
MOVE lf_form_top_of_page TO lf_event-form.
APPEND lf_event TO i_events.
ENDIF.
CLEAR lf_event.
READ TABLE i_events WITH KEY name = slis_ev_pf_status_set
INTO lf_event.
IF sy-subrc = 0.
MOVE lf_form_pf_status_set TO lf_event-form.
APPEND lf_event TO i_events.
ENDIF.
CLEAR lf_event.
READ TABLE i_events WITH KEY name = slis_ev_end_of_list
INTO lf_event.
IF sy-subrc = 0.
MOVE lf_form_end_of_list TO lf_event-form.
APPEND lf_event TO i_events.
ENDIF.
** set the layout
i_layout-zebra = c_x.
i_layout-colwidth_optimize = c_x.
i_layout-no_input = c_x.
i_layout-get_selinfos = c_x.
ENDFORM. " GET_EVENT
*&---------------------------------------------------------------------*
*& Form HEADER_SECTION
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM header_section .
DATA: wa_line TYPE slis_listheader.
DATA: lf_time_stamp TYPE timestamp,
lf_tzone TYPE usr02-tzone,
lf_date TYPE sy-datum,
lf_time TYPE sy-uzeit.
* Time Stamp
GET TIME STAMP FIELD lf_time_stamp.
SELECT SINGLE tzone INTO lf_tzone
FROM usr02
WHERE bname = sy-uname.
IF sy-subrc <> 0.
ELSE.
CONVERT TIME STAMP lf_time_stamp TIME ZONE lf_tzone INTO
DATE lf_date TIME lf_time.
ENDIF.
CLEAR wa_line.
wa_line-typ = c_h.
wa_line-info = text-008.
APPEND wa_line TO i_list_top_of_page.
CLEAR wa_line.
wa_line-typ = c_s.
wa_line-key = text-009.
wa_line-info = sy-cprog.
APPEND wa_line TO i_list_top_of_page.
CLEAR wa_line.
wa_line-typ = c_s.
wa_line-info = text-010.
APPEND wa_line TO i_list_top_of_page.
wa_line-typ = c_s.
wa_line-key = text-014.
WRITE: sy-sysid TO wa_line-info(5),
'(' TO wa_line-info+5(1),
sy-mandt TO wa_line-info+6(3),
')--' TO wa_line-info+9(3),
sy-uname TO wa_line-info+12(12),
'--' TO wa_line-info+24(2),
lf_date MM/DD/YYYY TO wa_line-info+26(10),
'(' TO wa_line-info+36(1),
lf_time TO wa_line-info+37(8),
')' TO wa_line-info+45.
CONDENSE wa_line-info.
APPEND wa_line TO i_list_top_of_page.
ENDFORM. " HEADER_SECTION
*&---------------------------------------------------------------------*
*& Form top_of_page
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
i_logo = 'TEST_LOGO'
it_list_commentary = i_list_top_of_page.
ENDFORM. "TOP_OF_PAGE
*&--------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form END_OF_LIST
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM end_of_list.
DATA:lt_end_of_page TYPE slis_t_listheader,
ls_line TYPE slis_listheader.
CLEAR ls_line.
ls_line-typ = c_s.
ls_line-key = text-015.
APPEND ls_line TO lt_end_of_page.
CLEAR ls_line.
ls_line-typ = c_s.
ls_line-key = text-016.
IF NOT s_matnr-high IS INITIAL.
CONCATENATE text-017 s_matnr-low text-018 s_matnr-high INTO
ls_line-info SEPARATED BY space .
ELSE.
ls_line-info = s_matnr-low.
ENDIF.
APPEND ls_line TO lt_end_of_page.
CLEAR ls_line.
ls_line-typ = c_s.
ls_line-key = text-019.
ls_line-info = p_date.
APPEND ls_line TO lt_end_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = lt_end_of_page
i_end_of_list_grid = c_x.
ENDFORM. "end_of_list
*& Form pf_status_set
**&--------------------------------------------------------------------*
FORM pf_status_set USING pt_extab TYPE slis_t_extab.
SET PF-STATUS 'TEST_STATUS'.
ENDFORM. "PF_STATUS_SET
*&---------------------------------------------------------------------*
*& Form CALL_ALV_GRID
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM call_alv_grid .
DATA: i_grid_settings TYPE lvc_s_glay.
i_grid_settings-coll_top_p = c_5.
i_grid_settings-coll_end_l = c_5.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_bypassing_buffer = c_x
i_buffer_active = c_x
i_background_id = c_bid
i_callback_program = sy-repid
i_grid_settings = i_grid_settings
is_layout = i_layout
it_fieldcat = i_fieldcat[]
is_print = wa_print
i_save = 'A'
is_variant = wa_variant
it_events = i_events[]
TABLES
t_outtab = i_out
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. " CALL_ALV_GRID
2014 May 31 5:50 AM
Hi Pravin,
Thanks for your help.
I have done it but this refresh button is not working it is displayed on ALV but when i change it will not effect.
My requirment is when Report comes,click on material change its status and material is removed from ALV but it is remaining as it is.
Thanks,
Mahipal
2014 Jun 02 8:44 AM
Hi Mahipalsinh,
To work the refresh functionality you need to write use SELFIELD in youruser command form routine. Do as shown below.
FORM user_command USING v_fcode LIKE sy-ucomm
v_selfield TYPE slis_selfield.
IF v_fcode = c_refresh. " c_refresh is Function code
v_selfield-refresh = 'X'.
ENDIF.
ENDFORM.
2014 Jun 03 7:18 AM
Hi Pravin,
When i am debuging on Refresh it will not come to FORM user_command.
You can check using attached file.
REPORT zmmml_2p. TABLES: zmmm_liste_1v , zmmm_class_1v. CONSTANTS: c_mdm(3) VALUE 'MDM'. DATA it TYPE TABLE OF zmmm_liste_1s WITH HEADER LINE. FIELD-SYMBOLSTYPE zmmm_liste_1s . DATA: lf_objecttype LIKE bapi_doc_drad-objecttype, lf_objectkey LIKE bapi_doc_drad-objectkey. DATA: lt_documentlist TYPE TABLE OF bapi_doc_keys ." WITH HEADER LINE. FIELD-SYMBOLSlike LINE OF lt_documentlist . DATA: okay. data: gs_variant type disvariant. DATA:i_layout TYPE slis_layout_alv, i_events TYPE slis_t_event, i_list_top_of_page TYPE slis_t_listheader. SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-101. SELECT-OPTIONS so_user FOR sy-uname MATCHCODE OBJECT user_comp . SELECT-OPTIONS so_matnr FOR zmmm_liste_1v-matnr. SELECT-OPTIONS so_mstae FOR zmmm_liste_1v-mstae. SELECT-OPTIONS so_mstde FOR zmmm_liste_1v-mstde NO-EXTENSION . SELECTION-SCREEN ULINE. SELECT-OPTIONS so_werks FOR zmmm_liste_1v-werks MEMORY ID wrk NO-EXTENSION NO INTERVALS . SELECT-OPTIONS so_mmsta FOR zmmm_liste_1v-mmsta . SELECT-OPTIONS so_mmstd FOR zmmm_liste_1v-mmstd NO-EXTENSION . SELECT-OPTIONS so_beskz FOR zmmm_liste_1v-beskz . SELECT-OPTIONS so_ekgrp FOR zmmm_liste_1v-ekgrp . SELECT-OPTIONS so_dispo FOR zmmm_liste_1v-dispo . SELECT-OPTIONS so_zeifo FOR zmmm_liste_1v-zeifo MATCHCODE OBJECT h_t178 . PARAMETERS sprache TYPE spras DEFAULT sy-langu . SELECTION-SCREEN ULINE. parameters: p_vari type disvariant-variant. SELECTION-SCREEN END OF BLOCK a. DATA:i_out TYPE STANDARD TABLE OF Mara, i_fieldcat TYPE slis_t_fieldcat_alv. DATA:wa_out TYPE mara, wa_print TYPE slis_print_alv, wa_fieldcat TYPE slis_fieldcat_alv, wa_variant TYPE disvariant. CONSTANTS:c_x TYPE char1 VALUE 'X', c_s TYPE char1 VALUE 'S', c_m TYPE char1 VALUE 'M', c_h TYPE char1 VALUE 'H', c_5 TYPE char1 VALUE '5', c_a TYPE char1 VALUE 'A', c_message TYPE char7 VALUE 'MESSAGE', c_bid TYPE bds_typeid VALUE 'TEST_LOGO'. DATA: it_cat TYPE slis_t_fieldcat_alv, h_stru LIKE dd02l-tabname, h_prog LIKE sy-repid. FIELD-SYMBOLSTYPE slis_fieldcat_alv. PERFORM status USING text-005. MOVE: 'ZMMM_LISTE_1S' TO h_stru, sy-repid TO h_prog. *=== Main ============================================================== INITIALIZATION. *======================================================================= MOVE: 'EQ' TO so_user-option, 'I' TO so_user-sign, sy-uname TO so_user-low. APPEND so_user. PERFORM set_mstae. PERFORM set_mmstd. *Begin : Ainmup 28.03.2014 I-1311-064\01 at selection-screen on value-request for p_vari. PERFORM set_layout. *End: Ainmup 28.03.2014 I-1311-064\01 AT SELECTION-SCREEN. *======================================================================= START-OF-SELECTION. *======================================================================= PERFORM get_data CHANGING okay. "Daten selektieren CHECK okay = 'X'. * PERFORM out_data. END-OF-SELECTION. PERFORM alv_grid_display. TOP-OF-PAGE. *====================================================================== *&---------------------------------------------------------------------* *& FORMS *&---------------------------------------------------------------------* *&---------------------------------------------------------------------* *& Form Status (Textanzeige) *&---------------------------------------------------------------------* FORM status USING text. CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' EXPORTING text = text. * EXCEPTIONS * OTHERS = 1. ENDFORM. "status *---------------------------------------------------------------------* * FORM set_mstae * *---------------------------------------------------------------------* FORM set_mstae. IF so_user-low = c_mdm. REFRESH so_mstae. MOVE 'IEQ43' TO so_mstae. APPEND so_mstae. ELSE. IF so_matnr IS INITIAL. READ TABLE so_mstae INDEX 1. CHECK sy-subrc > 0. * so_mstae ist leer MOVE 'IBT4049' TO so_mstae. APPEND so_mstae. MOVE 'IEQ95' TO so_mstae. APPEND so_mstae. ENDIF. ENDIF. ENDFORM. "set_mstae *&--------------------------------------------------------------------* *& Form GET_DATA *&--------------------------------------------------------------------* * Mara, Marc und MAKT lesen *---------------------------------------------------------------------* FORM get_data CHANGING p_okay. "Daten selektieren TYPES t_makt LIKE makt. DATA it_makt TYPE TABLE OF t_makt WITH HEADER LINE. REFRESH it. PERFORM status USING text-002. IF so_user-low = c_mdm. SELECT * FROM zmmm_liste_1v INTO CORRESPONDING FIELDS OF TABLE it WHERE MSTAE IN so_mstae . ELSE. SELECT * FROM zmmm_liste_1v INTO CORRESPONDING FIELDS OF TABLE it WHERE matnr IN so_matnr AND spras = sprache AND ( ( mstae IN so_mstae AND mstde IN so_mstde ) OR ( mmsta IN so_mmsta AND mmstd IN so_mmstd ) ) AND werks IN so_werks AND beskz IN so_beskz AND ekgrp IN so_ekgrp AND dispo IN so_dispo AND zeifo IN so_zeifo AND ernam IN so_user. ENDIF. READ TABLE it INDEX 1. IF sy-subrc > 0. MESSAGE i010(zmmm). CLEAR p_okay. ELSE. PERFORM status USING text-003. p_okay = 'X'. SELECT * FROM makt INTO TABLE it_makt FOR ALL ENTRIES IN it WHERE matnr = it-zz_rfmat AND spras = sprache. IF sy-dbcnt > 0. LOOP AT it ASSIGNING. READ TABLE it_makt WITH KEY matnr =-zz_rfmat. IF sy-subrc = 0. MOVE: it_makt-maktx TO-maktx_ref. ENDIF. ENDLOOP. ENDIF. PERFORM status USING text-006. LOOP AT it ASSIGNING. SELECT SINGLE * FROM zmmm_class_1v WHERE objek =-matnr AND klart = '001' AND spras = sprache. IF sy-subrc = 0. MOVE: zmmm_class_1v-class TO-class. MOVE: zmmm_class_1v-kschl TO-kschl. ENDIF. ENDLOOP. ENDIF. DATA: lt_return TYPE TABLE OF bapiret2, ls_address TYPE bapiaddr3, lv_tabix TYPE sy-tabix. LOOP AT it ASSIGNING. lv_tabix = sy-tabix. CLEAR: lt_return[], ls_address. CALL FUNCTION 'BAPI_USER_GET_DETAIL' EXPORTING username =-ernam IMPORTING address = ls_address TABLES return = lt_return. IF lt_return IS INITIAL. -fullname = ls_address-fullname. -tel1_numbr = ls_address-tel1_numbr. -tel1_ext = ls_address-tel1_ext. MODIFY it FROMINDEX lv_tabix. ENDIF. ENDLOOP. PERFORM status USING text-007. LOOP AT it ASSIGNING. PERFORM read_dir_data. ENDLOOP. ENDFORM. "GET_DATA *---------------------------------------------------------------------* * FORM USER_OC * *---------------------------------------------------------------------* * Form wird beim Klicken auf MATNR oder ZZ_RFMAT dynamisch gerufen *---------------------------------------------------------------------* * --> R_UCOMM * * --> RS_SELFIELD * *---------------------------------------------------------------------* FORM user_oc USING r_ucomm LIKE sy-ucomm "#EC CALLED rs_selfield TYPE slis_selfield. DATA : lv_mstae TYPE mara-mstae. CASE rs_selfield-fieldname . when 'MATNR' or 'ZZ_RFMAT' . SET PARAMETER ID 'MAT' FIELD rs_selfield-value. CALL TRANSACTION 'MM02' AND SKIP FIRST SCREEN. ENDCASE. ENDFORM. "user_oc *---------------------------------------------------------------------* * FORM set_mmstd * *---------------------------------------------------------------------* *---------------------------------------------------------------------* FORM set_mmstd. DATA d_mmstd LIKE sy-datum . d_mmstd = sy-datum - 2 . REFRESH so_mmstd. MOVE: 'GE' TO so_mmstd-option, 'I' TO so_mmstd-sign, d_mmstd TO so_mmstd-low. APPEND so_mmstd. ENDFORM. "set_mmstd *---------------------------------------------------------------------* * FORM read_dir_data * *---------------------------------------------------------------------* *---------------------------------------------------------------------* FORM read_dir_data. lf_objecttype = 'MARA'. lf_objectkey =-matnr. CLEAR lt_documentlist . REFRESH lt_documentlist . CALL FUNCTION 'BAPI_DOCUMENT_GETOBJECTDOCS' EXPORTING objecttype = lf_objecttype objectkey = lf_objectkey currentversionsonly = 'X' date = sy-datum TABLES documentlist = lt_documentlist. if not lt_documentlist[] is INITIAL. READ TABLE lt_documentlist with KEY documenttype = 'IDW' assigning. IF sy-subrc eq 0 . perform read_dir_details . EXIT. ENDIF. READ TABLE lt_documentlist with KEY documenttype = 'DWG' assigning. IF sy-subrc eq 0 . perform read_dir_details . EXIT. ENDIF. endif. READ TABLE lt_documentlist with KEY documenttype = 'DFF' assigning. IF sy-subrc eq 0 . perform read_dir_details . EXIT. ENDIF. ENDFORM. "read_dir_data *---------------------------------------------------------------------* * FORM read_dir_details * *---------------------------------------------------------------------* FORM read_dir_details . DATA: lf_doctype LIKE bapi_doc_draw-documenttype, lf_docnumber LIKE bapi_doc_draw-documentnumber, lf_docpart LIKE bapi_doc_draw-documentpart, lf_docversion LIKE bapi_doc_draw-documentversion . DATA: lt_files LIKE bapi_doc_files2 OCCURS 0 WITH HEADER LINE, ls_document LIKE bapi_doc_draw2. lf_doctype =-DOCUMENTTYPE . lf_docnumber =-DOCUMENTNUMBER . lf_docversion =-DOCUMENTVERSION . lf_docpart =-DOCUMENTPART . REFRESH lt_files. CLEAR lt_files. CALL FUNCTION 'BAPI_DOCUMENT_GETDETAIL2' EXPORTING: documenttype = lf_doctype documentnumber = lf_docnumber documentpart = lf_docpart documentversion = lf_docversion getactivefiles = 'X' IMPORTING: documentdata = ls_document TABLES: documentfiles = lt_files. if not lt_files[] is INITIAL. READ TABLE lt_files with KEY WSAPPLICATION = 'TIF' CHECKEDIN = 'X' . if sy-subrc eq 0 . -TIF_EXISTS = 'X' . endif. ENDIF. -DOKAR =-DOCUMENTTYPE . -DOKNR =-DOCUMENTNUMBER . -DOKVR =-DOCUMENTVERSION . -DOKTL =-DOCUMENTPART . -DOKST = ls_document-STATUSINTERN . ENDFORM. "read_dir_details *&---------------------------------------------------------------------* *& Form SET_LAYOUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> Ainmup 28.03.2014 Add Layout Field in selction Screen I-1311-064\01 *----------------------------------------------------------------------* FORM SET_LAYOUT . DATA: lf_event TYPE slis_alv_event, lf_form_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE', lf_form_end_of_list TYPE slis_formname VALUE 'END_OF_LIST', lf_form_pf_status_set TYPE slis_formname VALUE 'PF_STATUS_SET'. CLEAR :i_events[], lf_event. CALL FUNCTION 'REUSE_ALV_EVENTS_GET' EXPORTING i_list_type = 0 IMPORTING et_events = i_events EXCEPTIONS list_type_wrong = 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. READ TABLE i_events WITH KEY name = slis_ev_top_of_page INTO lf_event. IF sy-subrc = 0. MOVE lf_form_top_of_page TO lf_event-form. APPEND lf_event TO i_events. ENDIF. CLEAR lf_event. READ TABLE i_events WITH KEY name = slis_ev_pf_status_set INTO lf_event. IF sy-subrc = 0. MOVE lf_form_pf_status_set TO lf_event-form. APPEND lf_event TO i_events. ENDIF. CLEAR lf_event. READ TABLE i_events WITH KEY name = slis_ev_end_of_list INTO lf_event. IF sy-subrc = 0. MOVE lf_form_end_of_list TO lf_event-form. APPEND lf_event TO i_events. ENDIF. clear gs_variant. gs_variant-report = sy-repid. * Function module for f4 search help for layout call function 'REUSE_ALV_VARIANT_F4' exporting is_variant = gs_variant i_display_via_grid = 'X' importing es_variant = gs_variant exceptions not_found = 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. else. write gs_variant-variant to p_vari. endif. ENDFORM. " SET_LAYOUT *&---------------------------------------------------------------------* *& Form ALV_GRID_DISPLAY *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * p1 text * 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. CLEAR lf_event. READ TABLE i_events WITH KEY name = slis_ev_pf_status_set INTO lf_event. IF sy-subrc = 0. MOVE lf_form_pf_status_set TO lf_event-form. APPEND lf_event TO i_events. ENDIF. ** set the layout i_layout-zebra = c_x. i_layout-colwidth_optimize = c_x. i_layout-no_input = c_x. i_layout-get_selinfos = c_x. * For Layout Selection clear gs_variant. gs_variant-report = sy-repid. * Function module for f4 search help for layout call function 'REUSE_ALV_VARIANT_F4' exporting is_variant = gs_variant i_display_via_grid = 'X' importing es_variant = gs_variant exceptions not_found = 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. else. write gs_variant-variant to p_vari. endif. ENDFORM. " GET_EVENT_LAYOUT *&---------------------------------------------------------------------* *& Form pf_status_set **&--------------------------------------------------------------------* FORM pf_status_set USING pt_extab TYPE slis_t_extab. SET PF-STATUS 'YPROGRAM'. ENDFORM. "PF_STATUS_SET *&---------------------------------------------------------------------* *& Form CALL_ALV_GRID *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ENDFORM. " CALL_ALV_GRID
Thanks.
2014 Jun 03 9:16 AM
Hi,
I have checked the code.
Please call below form routine after CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'.
Aslo add refresh related code whihc i have marked in bold and underlined in belwo code.
This will surely work. Check the function code and use that code in IF condition.
Let me know if you still face any issue.
FORM user_oc USING r_ucomm LIKE sy-ucomm "#EC CALLED
rs_selfield TYPE slis_selfield.
DATA : lv_mstae TYPE mara-mstae.
CASE rs_selfield-fieldname .
WHEN 'MATNR' OR 'ZZ_RFMAT' .
SET PARAMETER ID 'MAT' FIELD rs_selfield-value.
CALL TRANSACTION 'MM02' AND SKIP FIRST SCREEN.
ENDCASE.
IF v_fcode = c_refresh. " c_refresh is Function code
v_selfield-refresh = 'X'.
ENDIF.
ENDFORM. "user_oc
2014 Jun 03 10:31 AM
Hi pravin,
i have tried but it is not working i have create this sample code this will work in your System please if you have some time then please change in this prog as per requirment.Change Description and use refresh button .
2014 Jun 03 12:10 PM
Hi ,
I got the issue you also need to define it_event_exit pass it to 'REUSE_ALV_GRID_DISPLAY'.I have modified the code and checked ,it goes to debugging after clicking on refresh icon.
Please find the attached file.
2014 Jun 03 12:21 PM
but result is remaining still same as it is?because material description is not changig at time of refresh.and when we press back ,Exit or cancle button it is not behave correctly.
2014 Jun 03 1:44 PM
Hi,
Please as perform get_data in refresh code. I have tested and it's working.Hope this time your issue will resolve. Let me know if still have any issue.
Regards,
Pravin
2014 Jun 04 5:37 AM
Thanks Prvin actuly i had done same but i was calling ALV again after get_data .Now its working perfectly thanks for your solution.
2014 May 29 1:15 PM
Button should have function code, if this button is triggered
then do your select query or update your internal table and call CALL METHOD ALV_GRID->REFRESH_TABLE_DISPLAY.
I hope this is enough.
Regards,
Vadamalai A
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |