05-30-2006 7:57 AM
Hi,
I tried adding the F4 functionality to one field of ALV into the field catalog:
k_outtab_fields-ref_table = 'USR21'.
k_outtab_fields-ref_field = 'BNAME'.
The F4 could display me a listing of users, however, it is not able to return the value selected into the ALV grid. Could someone help? Thanks in advance
Rgds,
ET
05-30-2006 8:09 AM
05-30-2006 8:11 AM
Hi Pei,
Refer the following link :
https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/2607."; [original link is broken] [original link is broken] [original link is broken] [original link is broken] [original link is broken] [original link is broken]>https [original link is broken] [original link is broken]
<b>Reward points if it helps.</b>
05-30-2006 8:13 AM
HI
GOOD
BCALV_EDIT_08 This report implements an ALV Grid Control with an application specific F4 help. The following aspects
are dealt with:
(1) how to replace the standard f4 help
(2) how to pass the selected value to the ALV Grid Control
(3) how to build an f4 help, whose value range depend on a value of another cell.
http://sap.ittoolbox.com/groups/technical-functional/SAP-R3-DEV/f4-help-163657
THANKS
MRUTYUN
05-30-2006 8:14 AM
Hi,
for that you need to make the field to be editable. did you set it,
for that field while filling fieldcat you need to do this..
<b>fieldcat-edit = 'X'.
fieldcat-input = 'X'.</b>
along with other params...
then only f4 help value will come into the field.
Regards
vijay
05-30-2006 8:15 AM
Set REGISTER to make the field registered
Set GETBEFORE to provide field content transport before F4 in editable mode
Set CHNGEAFTER to make the data changed after F4 in editable mode.
DATA: lt_f4 TYPE lvc_t_f4 WITH HEADER LINE . .. ..
lt_f4-fieldname = 'PRICE'.
lt_f4-register = 'X' .
lt_f4-getbefore = 'X' .
APPEND lt_f4 .
05-30-2006 8:24 AM
Hi Vijay,
1. I can't find fieldcat-input.
2. Like what you said above, is that sufficient? Or do I need to register event, etc?
Rgds,
ET
05-30-2006 8:32 AM
Hi,
no need to do any thing..like register etc don't required.
<b>fieldcat-fieldname = 'BNAME'.
fieldcat-tabname = 'ITAB'.
fieldcat-col_pos = 4.
fieldcat-input = 'X'.
fieldcat-edit = 'X'.
fieldcat-ref_fieldname = 'BNAME'.
fieldcat-ref_table = 'USR02'.
append fieldcat to it_fieldcat</b>.
and check this code for editable Grid. you need to do this also,..
REPORT ZTESTALV .
*Data Declaration
*----------------
DATA: BEGIN OF T_EKKO,
EBELN TYPE EKPO-EBELN,
EBELP TYPE EKPO-EBELP,
* FLAG TYPE C,
* HANDLE_STYLE TYPE LVC_T_STYL,
END OF T_EKKO.
<b> DATA: GD_REPID LIKE SY-REPID, "Exists
REF_GRID TYPE REF TO CL_GUI_ALV_GRID. "new</b>
DATA: BEGIN OF IT_EKKO OCCURS 0.
INCLUDE STRUCTURE T_EKKO.
DATA: END OF IT_EKKO.
DATA: BEGIN OF IT_BACKUP OCCURS 0.
INCLUDE STRUCTURE T_EKKO.
DATA: END OF IT_BACKUP.
*ALV data declarations
TYPE-POOLS: SLIS. "ALV Declarations
DATA: FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
GD_LAYOUT TYPE SLIS_LAYOUT_ALV.
************************************************************************
*Start-of-selection.
START-OF-SELECTION.
PERFORM DATA_RETRIEVAL.
PERFORM BUILD_FIELDCATALOG.
PERFORM BUILD_LAYOUT.
IT_BACKUP[] = IT_EKKO[].
PERFORM DISPLAY_ALV_REPORT.
*&--------------------------------------------------------------------*
*& Form build_fieldcatalog
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM BUILD_FIELDCATALOG.
REFRESH FIELDCATALOG.
CLEAR FIELDCATALOG.
*
FIELDCATALOG-FIELDNAME = 'EBELN'.
FIELDCATALOG-SELTEXT_M = 'Purchase Order'.
FIELDCATALOG-INPUT = 'X'.
FIELDCATALOG-EDIT = 'X'.
FIELDCATALOG-COL_POS = 2.
APPEND FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'EBELP'.
FIELDCATALOG-SELTEXT_M = 'PO Item'.
FIELDCATALOG-COL_POS = 3.
APPEND FIELDCATALOG.
CLEAR FIELDCATALOG.
ENDFORM. " BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*& Form BUILD_LAYOUT
*&---------------------------------------------------------------------*
* Build layout for ALV grid report
*----------------------------------------------------------------------*
FORM BUILD_LAYOUT.
"Permet d'ajuster les colonnes au text
* gd_layout-colwidth_optimize = 'X'.
* GD_LAYOUT-TOTALS_TEXT = 'Totals'(201).
* gd_layout-box_fieldname = 'SELECT'.
* gd_layout-box_tabname = 'IT_EKKO'.
ENDFORM. " BUILD_LAYOUT
*&---------------------------------------------------------------------*
*& Form DISPLAY_ALV_REPORT
*&---------------------------------------------------------------------*
* Display report using ALV grid
*----------------------------------------------------------------------*
FORM DISPLAY_ALV_REPORT .
<b> GD_REPID = SY-REPID.</b>
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = GD_REPID
* i_callback_top_of_page = 'TOP-OF-PAGE'
I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
* i_grid_title = 'My Title'
IS_LAYOUT = GD_LAYOUT
IT_FIELDCAT = FIELDCATALOG[]
TABLES
T_OUTTAB = IT_EKKO
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
WRITE:/ SY-SUBRC.
ENDIF.
ENDFORM. " DISPLAY_ALV_REPORT
*&---------------------------------------------------------------------*
*& Form DATA_RETRIEVAL
*&---------------------------------------------------------------------*
* Retrieve data form EKPO table and populate itab it_ekko
*----------------------------------------------------------------------*
FORM DATA_RETRIEVAL.
SELECT EBELN EBELP
UP TO 10 ROWS
FROM EKPO
INTO CORRESPONDING FIELDS OF TABLE IT_EKKO.
ENDFORM. " DATA_RETRIEVAL
*----------------------------------------------------------------------*
* FORM SET_PF_STATUS *
*----------------------------------------------------------------------*
FORM SET_PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'STANDARD_FULLSCREEN1' EXCLUDING RT_EXTAB.
ENDFORM. "set_pf_status
*&--------------------------------------------------------------------*
*& Form user_command
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->R_UCOMM text
* -->RS_SELFIELDtext
*---------------------------------------------------------------------*
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
*then insert the following code in your USER_COMMAND routine...
<b> 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.</b>*modify
CASE R_UCOMM.
WHEN '&IC1'.
CHECK RS_SELFIELD-TABINDEX > 0.
IF RS_SELFIELD-VALUE EQ '6000000001'.
CALL TRANSACTION 'ZDF2'.
ENDIF.
WHEN 'REFRESH'.
READ TABLE IT_EKKO INDEX RS_SELFIELD-TABINDEX.
IF SY-SUBRC = 0.
READ TABLE IT_BACKUP INDEX RS_SELFIELD-TABINDEX.
IF SY-SUBRC = 0.
IF IT_EKKO <> IT_BACKUP.
* then do your check
ENDIF.
ENDIF.
ENDIF.
PERFORM DATA_RETRIEVAL.
RS_SELFIELD-REFRESH = 'X'.
ENDCASE.
ENDFORM. "user_command
observe the Bold code...
regards
vijay
05-30-2006 8:37 AM
Hi Vijay,
My ALV is OO. Hence, my field catalog refers to 'TYPE LVC_T_FCAT'. I can't find the filed catalog 'input'.
Any idea? Thanks in advance
Rgds,
ET
05-30-2006 8:46 AM
05-30-2006 8:48 AM
05-30-2006 8:49 AM
hi,
can you show your fieldcat how you are filling it for field <b>UNAME</b>.
Regards
vijay
05-30-2006 9:00 AM
hi vijay,
thanks for all your prompt reply.
my fieldcat populated as below.
k_outtab_fields-col_pos = v_k.
k_outtab_fields-fieldname = c_col2.
k_outtab_fields-TABNAME = 'K_STAB'.
k_outtab_fields-reptext = 'User ID'
k_outtab_fields-edit = 'X'.
k_outtab_fields-outputlen = 15.
k_outtab_fields-ref_table = 'USR21'.
k_outtab_fields-ref_field = 'BNAME'.
APPEND k_outtab_fields TO i_outtab_fields2 .
PS: I just can't seem to get the value selected from F4 into the grid...
Rgds,
ET
05-30-2006 8:18 AM
Hi pei,
1. How is your variable defined in the code.
2. Define the field as
<b>bame like usr02-bname</b>.
3. then it will AUTOMATICALLY give
F4 functionality.
regards,
amit m.
10-05-2014 2:44 PM