Hola,
Sí, pero si escribo las validaciones en la vista principal (los métodos están en la vista principal) entonces el mensaje de error se muestra en la vista principal, y no en la ventana emergente. ¿Estoy en lo correcto?
Adiós
N.
Avalados por :
Hi experts,
There is a popup window, with two button:
SAVE
CANCEL.
i create the popup in this way:
lr_popup = lr_window_manager->create_window(
modal = abap_true
window_name = 'WND_POPUP'
title = lv_text
close_button = abap_true
button_kind = if_wd_window=>co_buttons_yesno
message_type = if_wd_window=>CO_MSG_TYPE_NONE
close_in_any_case = abap_true
).
lr_view_controller = wd_this->wd_get_api( ).
lr_popup->subscribe_to_button_event(
button = if_wd_window=>co_button_yes
button_text = 'Save'
action_name = 'SAVE'
action_view = lr_view_controller
is_default_button = abap_true ).
lr_popup->subscribe_to_button_event(
button = if_wd_window=>co_button_no
button_text = 'Cancel'
action_name = 'CANCEL'
action_view = lr_view_controller
is_default_button = abap_true ).
lr_popup->open( ).
My problem is that, if the user press the SAVE button, then I have to make some checks, and if they don't pass, an error message should be created, and the popup shouldn't close.
My question is: How can I do that?
It's ok that if I use the paramter:
close_in_any_case = abap_false
then the popup isn't closed, but how can I close it in the action handler method of the Close button (or the save when the cehcks are fine)
Thnaks.
N.
Hola,
Sí, pero si escribo las validaciones en la vista principal (los métodos están en la vista principal) entonces el mensaje de error se muestra en la vista principal, y no en la ventana emergente. ¿Estoy en lo correcto?
Adiós
N.
Hola,
Como ya has creado acciones (GUARDAR, CANCELAR) usando el método subscribe. Las acciones/métodos relevantes se muestran en la pestaña MÉTODOS de la vista.
Por favor escribe el código relevante en el método GUARDAR para realizar validaciones. No es necesario utilizar WDDOBEFOREACTION.
Y si hay errores y se hace clic en el botón CANCELAR, entonces en el enlace que proporcioné, borra los mensajes y cierra la ventana.
¿Está claro?
Saludos,
Lekha.
Hola,
Tienes razón, me gustaría mostrar el mensaje de error en la ventana emergente. Lo implementé en el WDDOBEFOREACTION,
Pero el problema es que no puedo distinguir entre el botón GUARDAR y el botón CANCELAR, porque no hay información sobre la acción aquí:
data lo_api_controller type ref to if_wd_view_controller.
data lo_action type ref to if_wd_action.
lo_api_controller = wd_this->wd_get_api( ).
lo_action = lo_api_controller->get_current_action( ).
if lo_action is bound.
case lo_action->name.
when '...'.
endcase.
endif.
Estas comprobaciones y el mensaje de error solo son necesarios si el usuario presiona el botón Guardar. El botón Cancelar solo cierra la ventana.
Adiós
N.
Hola,
¿Cuando hay errores, quieres mostrarlos en un popup? Si hay errores y el usuario cierra la ventana (haciendo clic en el botón de cerrar), entonces estos errores se muestran en la vista principal en lugar de en la ventana emergente.
¿Quieres manejar esto también?
Además de hacer que el botón de cerrar sea abap_false, hay un método para manejar el cierre del botón en la interfaz if_wd_window.
Intenta usar y escribir el código para cerrar la ventana.
Si no deseas mostrar los errores en la vista principal, en el método anterior para cerrar la ventana, elimina todos los mensajes y luego cierra la ventana.
Revisa este enlace -
Saludos,
Lekha.
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute