2017-08-28 72 views
1

我試圖用動態操作顯示成功/錯誤消息,但沒有任何顯示。Oracle APEX:如何在動態操作中顯示錯誤消息

這是我爲我的行爲的真實情況的代碼。

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; 

然而,我的條件得到滿足後不會出現任何消​​息。 誰能告訴我爲什麼?

+0

你試過管理異常時需要初始化v_complete爲0?有可能這是拋出一個異常,所以不要進入任何消息條件。 –

+0

我不相信使用g_print_success_message是受支持的,在這種情況下也不相關。也許使用通知插件。 – Scott

回答

-1

在sqlplus或sqldeveloper中運行查詢並查看結果。用不同的消息爲v_complete < 0添加第三個條件。此外,打開調試,看看它是否達到了真實的情況。另外,最佳做法是避免將匿名PL/SQL塊放入APEX應用程序中。這應該存儲在一個函數中,並被調用來增強重用和維護。

1

apex_application.g_print_success_message僅在渲染頁面時由Apex引擎使用 - 頁面渲染後,任何改變它的動態操作都將不起作用。

您可能實現目標的一種簡單方法是在頁面上添加僅顯示內容的項目,例如, P1_RESULT,並在您的動態行動中設定其價值。您的動態操作還可以根據需要顯示和/或隱藏顯示項目。

0

你宣佈

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