Oracle APEX:如何在动态操作中显示错误消息

问题描述 投票:1回答:3

我试图用动态动作显示成功/错误消息,但没有任何显示。

这是我的行为真实情况的代码。

declare
   v_complete number;
begin
 select count(task_status) into v_complete from IT_TASK where TASK_STATUS != 3 AND REQUEST_ID = :P32_ID ;

 if v_complete > 0 then
    apex_application.g_print_success_message := '<span style="color:red">Not all Task are complete!</span>';
    rollback;
 end if;

 if v_complete = 0 then
    apex_application.g_print_success_message := '<span style="color:green">All Task are complete!</span>';
    rollback;
 end if;
end;

但是,在满足条件后不会显示任何消息。谁能告诉我为什么?

plsql oracle-apex
3个回答
2
投票

apex_application.g_print_success_message仅在呈现页面时由Apex引擎使用 - 在呈现页面之后,任何更改它的动态操作都将不起作用。

实现目标的一种简单方法是向页面添加仅显示项目,例如P1_RESULT,并在你的动态行动中设定其价值。您的动态操作还可以根据需要显示和/或隐藏显示项。


0
投票

声明时需要将v_complete初始化为0

declare
   v_complete number := 0;
begin..
.......

-1
投票

在sqlplus或sqldeveloper中运行查询并查看结果。使用不同的消息为v_complete <0添加第三个条件。此外,打开调试,看看它是否达到了真实状态。此外,最佳做法是避免将匿名PL / SQL块放入APEX应用程序。这应该在存储函数中并被调用以增强重用和维护。

© www.soinside.com 2019 - 2024. All rights reserved.