Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
0 Kudos

for the question raised from discussion

Re: Edit single row in list UIBB

Hi everyone someone raised question how to change the particular row content to editable on lead select so i worked on this and finally Mr.Jitin gave me an idea how can we achive this, i thought it may be helpful to everyone later so i created scenario for this.

SCENARIO:

 


WHEN I LOAD THE APPLICATION LIST GUIBB WILL DISPLAY THE DETAILS OF MATNR.WHEN WE CLICK ON CHECKBOX  FPM_GUIBB_LIST_ON_LEAD_SELECTI EVENT WILL BE TRIGGERED THEN THE PARTICULAR ROW WILL BE EDITABLE.

AFTER CHANGING THE VALUES WHEN YOU CLICK ON ENTER THEN FPM_GUIBB_LIST_CELL_ACTION IS TRIGGERED AND IT DISPLAYS THE SAVED DATA.( YOU CAN ADD CHECK CHANGE LOG INFORMATION THEN PROCEED WITH THIS ACTION IF CHANGES DONE OTHER WISE SIMPLY EXIT BUT IN THIS SCENARIO I DID NOT WRITTEN THAT CODE ).

NOW LET US START SCENARIO :

STEP1 : CREATE FEEDER CLASS

NOW GOTO INTERFACE TAB THEN ADD

IF_FPM_GUIBB_LIST(  IF_FPM_GUIBB AUTOMATICALLY ADDED ).

CODE IN METHOD IF_FPM_GUIBB_LIST~GET_DEFINITION:

data:
lt_field_description
type fpmgb_t_listfield_descr,
ls_field_description
type fpmgb_s_listfield_descr,
ls_action_definition
type fpmgb_s_actiondef,
lt_comp
type abap_component_tab,
ls_comp
type abap_componentdescr.

eo_field_catalog ?= cl_abap_tabledescr
=>DESCRIBE_BY_DATA( lt_mara ).

ls_field_description
-name = 'MATNR'.
ls_field_description
-text = 'MATERIAL NUMBER'.
ls_field_description
-read_only_ref = 'MATNR_RO_REF'.
ls_field_description
-visibility = cl_wd_uielement=>e_visible-visible.
APPEND ls_field_description to lt_field_description.
ls_field_description
-name = 'MATNR_RO_REF'.
ls_field_description
-text = 'MATERIAL KEY'.
ls_field_description
-visibility = cl_wd_uielement=>e_visible-visible.
APPEND ls_field_description to lt_field_description.
ls_field_description
-name = 'MAKTX'.
ls_field_description
-text = 'MATERIAL DESCRIPTION'.
ls_field_description
-read_only_ref = 'MAKTX_RO_REF'.
ls_field_description
-visibility = cl_wd_uielement=>e_visible-visible.
APPEND ls_field_description to lt_field_description.
ls_field_description
-name = 'MAKTX_RO_REF'.
ls_field_description
-text = 'DESCRIPTION KEY'.
ls_field_description
-visibility = cl_wd_uielement=>e_visible-visible.
APPEND ls_field_description to lt_field_description.

et_field_description
= lt_field_description.

ls_action_definition-id = IF_FPM_GUIBB_LIST=>GC_FPM_EVENT_ON_LEAD_SEL.
ls_action_definition
-text = 'ON LEAD SELECT'.
ls_action_definition
-visible = cl_wd_uielement=>e_visible-visible.
APPEND ls_action_definition to et_action_definition.


CODE IN METHOD IF_FPM_GUIBB_LIST~GET_DATA :

   data:ls_fieldusage type fpmgb_s_fieldusage,
lt_fieldusage
type fpmgb_t_fieldusage,
lo_fpm
type REF TO if_fpm.

IF IV_EVENTID->MV_EVENT_ID = 'FPM_START'.
data:ls_mara like LINE OF lt_mara.

SELECT MATNR MAKTX FROM MAKT INTO CORRESPONDING FIELDS OF TABLE LT_MARA WHERE SPRAS = 'EN'.
loop at lt_mara into ls_mara.
ls_mara
-matnr_ro_ref = 'X'.
ls_mara
-maktx_ro_ref = 'X'.
MODIFY lt_mara from ls_mara.
clear:ls_mara.
endloop.
CT_DATA
= LT_MARA.
EV_DATA_CHANGED
= abap_true.
ELSEIF IV_EVENTID->MV_EVENT_ID = IF_FPM_GUIBB_LIST=>GC_FPM_EVENT_ON_LEAD_SEL.
REFRESH LT_MARA.
LT_MARA
= CT_DATA.
READ TABLE LT_MARA INTO LS_MARA INDEX CV_LEAD_INDEX.
LS_MARA
-MATNR_RO_REF = ' '.
LS_MARA
-MAKTX_RO_REF = ' '.
MODIFY LT_MARA FROM LS_MARA INDEX CV_LEAD_INDEX.

CT_DATA
LT_MARA.
EV_DATA_CHANGED
= abap_true.
ELSEIF IV_EVENTID->MV_EVENT_ID = IF_FPM_GUIBB_LIST=>GC_GUIBB_LIST_ON_CELL_ACTION.
DATA:WA_MARA TYPE MAKT.
REFRESH LT_MARA.
LT_MARA
= CT_DATA.
READ TABLE LT_MARA INTO LS_MARA INDEX CV_LEAD_INDEX.
SELECT SINGLE * FROM MAKT INTO WA_MARA WHERE MATNR = LS_MARA-MATNR AND SPRAS = SY-LANGU.
IF SY-SUBRC = 0.
WA_MARA
-MAKTX = LS_MARA-MAKTX.
UPDATE MAKT SET MAKTX = WA_MARA-MAKTX WHERE MATNR = LS_MARA-MATNR AND SPRAS = SY-LANGU.
ELSE.
WA_MARA
-MANDT = SY-MANDT.
WA_MARA
-MATNR = LS_MARA-MATNR.
WA_MARA
-SPRAS = SY-LANGU.
WA_MARA
-MAKTX = LS_MARA-MAKTX.
WA_MARA
-MAKTG = LS_MARA-MAKTX.
INSERT MAKT FROM WA_MARA.
ENDIF.
lo_fpm
= cl_fpm_factory=>get_instance( ).
lo_fpm
->RAISE_EVENT_BY_ID( iv_event_id = 'FPM_START').
ENDIF.


STEP2: CREATE EMPTY WEBDYNPRO COMPONENT



NOW CREATE APPLICATION

   COMPONENT : FPM_OIF_COMPONENT.

   WINDOW       : FPM_WINDOW

   PLUG:   DEFAULT


STEP3: CONFIGURATION

  NOTE: WHILE DOING THE CONFIGURATION PARAMETER_LIST,INITIALIZATION,GET_DEFINITION WILL EXICUTE

             SO IF ANY CODE IN THOSE METHODS APPLICATION GOES TO DUMP.



NOW ENTER THE FEEDER CLASS NAME IF PARAMETERS ARE NOT DEFINED THEN IT WILL SHOW SOME SUSSES MESSAGE

ENTER THE FOLLOWING VALUES AS MENTIONED IN THE RECTANGULAR BOX ,NEXT MAINTAIN THE DISPLAY TYPE AS INPUTFIELD AS SHOWN BELOW,AND ONLY ADD MATNR,MAKTX FIELDS.CLICK ON THE LEAD SELECTION ACTION ASSIGNMENT  AS SHOWN BELOW THEN SELECT THE STANDARD LEAD SELECTION THEN EVENT FPM_GUIBB_LIST_ON_LEAD_SELECTI WILL BE TRIGGERED AUTOMATICALLY.




Labels in this area