Quantcast
Channel: SCN : All Content - Web Dynpro ABAP
Viewing all articles
Browse latest Browse all 3667

CHANGING PARTICULAR ROW EDITABLE ON LEAD SELECT IN LIST GUIBB

$
0
0

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:

 

9.1.jpg


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.

 

9.2.jpg

 

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 ).

9.3.jpg

 

NOW LET US START SCENARIO :

STEP1 : CREATE FEEDER CLASS

1.jpg

 

2.jpg

 

NOW GOTO INTERFACE TAB THEN ADD

IF_FPM_GUIBB_LIST(  IF_FPM_GUIBB AUTOMATICALLY ADDED ).

 

3.jpg

 

4.jpg

 

CODE IN METHODIF_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


5.jpg


NOW CREATE APPLICATION

   COMPONENT : FPM_OIF_COMPONENT.

   WINDOW       : FPM_WINDOW

   PLUG:   DEFAULT

5.1.jpg

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.

6.jpg

 

7.jpg

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

7.1.jpg

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.


8.jpg



Viewing all articles
Browse latest Browse all 3667

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>