Olá,
Sim, mas se eu escrever as validações na visualização principal (os métodos estão na visualização principal) então a mensagem de erro é exibida na visualização principal e não na janela pop-up. Estou correto?
Adeus
N.
Avalados por :
Olá especialistas,
Existe uma janela pop-up, com dois botões:
SALVAR
CANCELAR.
Eu crio o pop-up desta maneira:
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 = 'Salvar'
action_name = 'SALVAR'
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 = 'Cancelar'
action_name = 'CANCELAR'
action_view = lr_view_controller
is_default_button = abap_true ).
lr_popup->open( ).
Meu problema é que, se o usuário pressionar o botão SALVAR, então tenho que fazer algumas verificações e, se elas não passarem, uma mensagem de erro deve ser criada e o pop-up não deve fechar.
Minha pergunta é: Como posso fazer isso?
Está bem se eu usar o parâmetro:
close_in_any_case = abap_false
então o pop-up não é fechado, mas como posso fechá-lo no método manipulador da ação do botão Fechar (ou salvar quando as verificações estiverem corretas)
Obrigado.
N.
Olá,
Sim, mas se eu escrever as validações na visualização principal (os métodos estão na visualização principal) então a mensagem de erro é exibida na visualização principal e não na janela pop-up. Estou correto?
Adeus
N.
Olá,
Como você já criou ações (SALVAR, CANCELAR) usando o método subscribe. As ações/métodos relevantes são exibidos na aba MÉTODOS da visualização.
Por favor, escreva o código relevante no método SALVAR para realizar validações. Não é necessário utilizar WDDOBEFOREACTION.
E se houver erros e o botão CANCELAR for clicado, então no link fornecido, limpe as mensagens e feche a janela.
Está claro?
Saudações,
Lekha.
Olá,
Você está certo, eu gostaria de exibir a mensagem de erro na janela pop-up. Eu o implementei no WDDOBEFOREACTION,
Mas o problema é que não consigo distinguir entre o botão SALVAR e o botão CANCELAR, porque não há informações sobre a ação aqui:
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.
Essas verificações e a mensagem de erro são necessárias apenas se o usuário pressionar o botão Salvar. O botão Cancelar apenas fecha a janela.
Adeus
N.
Olá,
Quando houver erros, você deseja exibi-los em um pop-up? Se houver erros e o usuário fechar a janela (clicando no botão de fechar), então esses erros serão exibidos na visualização principal em vez da janela pop-up.
Você deseja lidar com isso também?
Além de tornar o botão de fechar abap_false, há um método para lidar com o fechamento do botão na interface if_wd_window.
Tente usar e escrever o código para fechar a janela.
Se não deseja exibir os erros na visualização principal, no método anterior para fechar a janela, limpe todas as mensagens e então feche a janela.
Verifique este link -
Saudações,
Lekha.
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute