我试图用动态动作显示成功/错误消息,但没有任何显示。
这是我的行为真实情况的代码。
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;
但是,在满足条件后不会显示任何消息。谁能告诉我为什么?
apex_application.g_print_success_message
仅在呈现页面时由Apex引擎使用 - 在呈现页面之后,任何更改它的动态操作都将不起作用。
实现目标的一种简单方法是向页面添加仅显示项目,例如P1_RESULT
,并在你的动态行动中设定其价值。您的动态操作还可以根据需要显示和/或隐藏显示项。
声明时需要将v_complete初始化为0
declare
v_complete number := 0;
begin..
.......
在sqlplus或sqldeveloper中运行查询并查看结果。使用不同的消息为v_complete <0添加第三个条件。此外,打开调试,看看它是否达到了真实状态。此外,最佳做法是避免将匿名PL / SQL块放入APEX应用程序。这应该在存储函数中并被调用以增强重用和维护。