2017-05-25 92 views
0

我有一個交互式報表,查詢被組合在一起,所以我不能使用可編輯的交互式網格。這就是爲什麼我必須在我的查詢中使用手動表單。 我發現了一些關於APEX_ITEMs的不錯提示,但是我的流程存在問題。Oracle Apex應用程序手冊表格形式

在我的查詢有像列:

APEX_ITEM.HIDDEN(1,coursestudent.id) 
... 
APEX_ITEM.SELECT_LIST(2,coursestudent.signed,'Signed;1,Failed;0') 

我有一個提交按鈕,這裏是我的過程:

FOR i in 1..apex_application.g_f01.count LOOP 
    UPDATE coursestudent 
    SET signed=apex_application.g_f02(i) 
    WHERE id=apex_application.g_f01(i); 
END LOOP; 

我認爲這不是太困難,但經過我按下提交沒有任何反應,除了成功消息被寫出頁面。

我該怎麼辦?

Submit Button

Process

我使用的Oracle APEX版本:5.1.1.00.08

+0

向代碼添加一些調試,例如'apex_debug.message('g_f01 ='|| apex_application.g_f01(i)||'g_f02 ='|| apex_application.g_f02(i));'在循環內部,並檢查調試日誌以查看提交過程的值得到。請注意,如果where子句找不到匹配的行(或者'g_f01(i)'恰好爲null),那麼UPDATE語句將不會執行任何操作(並且不會引發任何異常)。 –

+0

是的,問題是,apex_application.g_f01(i)變量是NULL,但是我應該如何引用表的元素? – Manasse

+0

這就是你如何引用發佈的項目。如果它們爲空,那意味着這些項目可能正在用空值初始化。查看爲頁面生成的HTML並檢查正在生成的值爲隱藏的項目。 –

回答

0

感謝傑弗裏,我發現了錯誤:這是一個錯誤。

我不得不復制粘貼SQL查詢再次,它現在工作。好吧,真的,在這種情況下,我總是在其中放置一個select 1 from dual,保存並在此之後粘貼查詢。

在這之前我已經遇到過這個bug,有時候新列沒有顯示在頁面中。由於我在第一次創建查詢後放置了隱藏列,因此它沒有顯示在頁面中,因此該過程中的循環從未工作。

相關問題