cancel
Showing results for 
Search instead for 
Did you mean: 

pop up not working

Former Member
0 Kudos

I am having table and i have to delete the record from that table........when i click that delete button the popup to be displayed.....

for the generation of the popup i have used the below coding.........

DATA: LR_API_COMP_CONTRL TYPE REF TO IF_WD_COMPONENT,

LR_WINDOW_MANAGER TYPE REF TO IF_WD_WINDOW_MANAGER,

LR_POPUP_WINDOW TYPE REF TO IF_WD_WINDOW,

LR_VIEW_CONTROLLER TYPE REF TO IF_WD_VIEW_CONTROLLER,

POPUP_MSG TYPE STRING_TABLE.

LR_API_COMP_CONTRL = WD_COMP_CONTROLLER->WD_GET_API( ).

LR_WINDOW_MANAGER = LR_API_COMP_CONTRL->GET_WINDOW_MANAGER( ).

clear POPUP_MSG[].

APPEND 'Are You Sure to Delete The Records?' TO POPUP_MSG.

CALL METHOD LR_WINDOW_MANAGER->CREATE_POPUP_TO_CONFIRM

EXPORTING

TEXT = POPUP_MSG

BUTTON_KIND = IF_WD_WINDOW=>CO_BUTTONS_YESNO

MESSAGE_TYPE = IF_WD_WINDOW=>CO_MSG_TYPE_QUESTION

  • CLOSE_BUTTON = ABAP_TRUE

WINDOW_TITLE = 'Message Box'

  • WINDOW_LEFT_POSITION =

  • WINDOW_TOP_POSITION =

  • WINDOW_POSITION =

  • WINDOW_WIDTH =

  • WINDOW_HEIGHT =

RECEIVING

RESULT = LR_POPUP_WINDOW

.

LR_VIEW_CONTROLLER = WD_THIS->WD_GET_API( ).

CALL METHOD LR_POPUP_WINDOW->SUBSCRIBE_TO_BUTTON_EVENT

EXPORTING

BUTTON = IF_WD_WINDOW=>CO_BUTTON_YES

  • BUTTON_TEXT =

  • TOOLTIP =

ACTION_NAME = 'YES'

ACTION_VIEW = LR_VIEW_CONTROLLER

  • IS_DEFAULT_BUTTON = ABAP_FALSE

.

LR_POPUP_WINDOW->OPEN( ).

And on action YES (For the popup's Yes button) I have written the code for deleting the record.........

DATA:

NODE_MODULE TYPE REF TO IF_WD_CONTEXT_NODE,

ELEM_MODULE TYPE REF TO IF_WD_CONTEXT_ELEMENT,

STRU_MODULE TYPE IF_V_MODULE=>ELEMENT_MODULE .

DATA id TYPE ZAC_MODULES-ZMODULE_id.

    • navigate from <CONTEXT> to <MODULE> via lead selection

NODE_MODULE = WD_CONTEXT->GET_CHILD_NODE( NAME = `MODULE` ).

ELEM_MODULE = WDEVENT->GET_CONTEXT_ELEMENT( 'CONTEXT_ELEMENT' ).

CALL METHOD ELEM_MODULE->GET_ATTRIBUTE

EXPORTING

NAME = 'ZMODULE_ID'

IMPORTING

VALUE = id.

NODE_MODULE->REMOVE_ELEMENT( ELEM_MODULE ).

delete FROM zac_modules WHERE zmodule_id = id.

wd_comp_controller->filltablemodule( ).

  • get message manager

DATA: L_CURRENT_CONTROLLER TYPE REF TO IF_WD_CONTROLLER,

L_MESSAGE_MANAGER TYPE REF TO IF_WD_MESSAGE_MANAGER.

L_CURRENT_CONTROLLER ?= WD_THIS->WD_GET_API( ).

CALL METHOD L_CURRENT_CONTROLLER->GET_MESSAGE_MANAGER

RECEIVING

MESSAGE_MANAGER = L_MESSAGE_MANAGER

.

  • report message

CALL METHOD L_MESSAGE_MANAGER->REPORT_SUCCESS

EXPORTING

MESSAGE_TEXT = 'Record Deleted Successfully'

  • PARAMS =

  • MSG_USER_DATA =

.

While clicking on the YES button of that popup "Null Object Reference error has occured". The above coding works fine without popup..........plz help me regarding with this.............

THANKS IN ADVANCE

ALAGAPPAN.S

Accepted Solutions (1)

Accepted Solutions (1)

gill367
Active Contributor
0 Kudos

Hello

you need to modify the code little bit to get the index number of the row or element to be deleted.

for this

1. create one context attribute say name 'INDX' of type i.

2. then the code for generating the popup should be like


 data el type ref to if_wd_context_element.
  el = wdevent->get_context_element( 'CONTEXT_ELEMENT' ).
  data indx type i.
  indx = el->get_index( ).
  wd_context->set_attribute(
  name = 'INDX'
  value = INDX
  ).
  DATA: LR_API_COMP_CONTRL TYPE REF TO IF_WD_COMPONENT,
LR_WINDOW_MANAGER TYPE REF TO IF_WD_WINDOW_MANAGER,
LR_POPUP_WINDOW TYPE REF TO IF_WD_WINDOW,
LR_VIEW_CONTROLLER TYPE REF TO IF_WD_VIEW_CONTROLLER,
POPUP_MSG TYPE STRING_TABLE.

LR_API_COMP_CONTRL = WD_COMP_CONTROLLER->WD_GET_API( ).
LR_WINDOW_MANAGER = LR_API_COMP_CONTRL->GET_WINDOW_MANAGER( ).
clear POPUP_MSG[].
APPEND 'Are You Sure to Delete The Records?' TO POPUP_MSG.
CALL METHOD LR_WINDOW_MANAGER->CREATE_POPUP_TO_CONFIRM
EXPORTING
TEXT = POPUP_MSG
BUTTON_KIND = IF_WD_WINDOW=>CO_BUTTONS_YESNO
MESSAGE_TYPE = IF_WD_WINDOW=>CO_MSG_TYPE_QUESTION
* CLOSE_BUTTON = ABAP_TRUE
WINDOW_TITLE = 'Message Box'
* WINDOW_LEFT_POSITION =
* WINDOW_TOP_POSITION =
* WINDOW_POSITION =
* WINDOW_WIDTH =
* WINDOW_HEIGHT =
RECEIVING
RESULT = LR_POPUP_WINDOW
.
LR_VIEW_CONTROLLER = WD_THIS->WD_GET_API( ).
CALL METHOD LR_POPUP_WINDOW->SUBSCRIBE_TO_BUTTON_EVENT
EXPORTING
BUTTON = IF_WD_WINDOW=>CO_BUTTON_YES
* BUTTON_TEXT =
* TOOLTIP =
ACTION_NAME = 'YES'
ACTION_VIEW = LR_VIEW_CONTROLLER
* IS_DEFAULT_BUTTON = ABAP_FALSE
.
LR_POPUP_WINDOW->OPEN( ).

3. modify the code for yes action event handler also like below


 DATA:
NODE_MODULE TYPE REF TO IF_WD_CONTEXT_NODE,
ELEM_MODULE TYPE REF TO IF_WD_CONTEXT_ELEMENT
*STRU_MODULE TYPE IF_V_MODULE=>ELEMENT_MODULE
.

DATA id TYPE ZAC_MODULES-ZMODULE_id.

** navigate from <CONTEXT> to <MODULE> via lead selection
NODE_MODULE = WD_CONTEXT->GET_CHILD_NODE( NAME = `MODULE` ).
DATA IND TYPE I.
WD_cONTEXT->GET_ATTRIBUTE(
EXPORTING
NAME = 'INDX'
IMPORTING
VALUE = IND
).



ELEM_MODULE = NODE_MODULE->GET_ELEMENT( INDEX = IND ).
CALL METHOD ELEM_MODULE->GET_ATTRIBUTE
EXPORTING
NAME = 'ZMODULE_ID'
IMPORTING
VALUE = id.

NODE_MODULE->REMOVE_ELEMENT( ELEM_MODULE ).

delete FROM zac_modules WHERE zmodule_id = id.

wd_comp_controller->filltablemodule( ).


* get message manager
DATA: L_CURRENT_CONTROLLER TYPE REF TO IF_WD_CONTROLLER,
L_MESSAGE_MANAGER TYPE REF TO IF_WD_MESSAGE_MANAGER.

L_CURRENT_CONTROLLER ?= WD_THIS->WD_GET_API( ).

CALL METHOD L_CURRENT_CONTROLLER->GET_MESSAGE_MANAGER
RECEIVING
MESSAGE_MANAGER = L_MESSAGE_MANAGER
.

* report message
CALL METHOD L_MESSAGE_MANAGER->REPORT_SUCCESS
EXPORTING
MESSAGE_TEXT = 'Record Deleted Successfully'
* PARAMS =
* MSG_USER_DATA =
.


thanks

sarbjeet singh

Former Member
0 Kudos

@sarbjeet

Yes now its working fine........Thanks a lot..........

Thanks and Regards,

Alagappan.S

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi,

Are you getting error in this line

ELEM_MODULE = WDEVENT->GET_CONTEXT_ELEMENT( 'CONTEXT_ELEMENT' ).

When you click yes, there is no context element is attached to the event object. So you have to either explicitly define a parameter for this action and pass the value or store the context element somewhere and retrieve on action yes handler

Former Member
0 Kudos

Yes I am not getting the reference on that line only.........plz explain me how to do with........

Thanks in advance

ALAGAPPAN.S