2016-04-28 103 views
1

我已經創建了Oracle Forms 10g表單並希望通過按下按鈕來顯示LOV。在當-按鈕按下扳機,我有:Oracle Forms 10g LOV第二次未顯示

go_item('MyBlock.Item1'); 
do_key('LIST_VALUES'); 

LOV有6列,其中2綁定到2項:MyBlock.Item1和MyBlock.Item2。當我按下按鈕LOV出現,我可以做出選擇。 LOV將數據插入MyBlock.Item1和MyBlock.Item2,一切都很好。 但是,如果我想再次選擇並再次按下按鈕,LOV不會出現。我不知道是什麼問題。

按鈕和兩個項目都在同一個數據塊中,我將Update Allowed和Required設置爲No,兩個項目和Mouse都導航到No for按鈕(我在幾個論壇上看到了這個)。

+0

你用show_lov試過了嗎? – pablomatico

+0

@pablomatico謝謝。是的,我嘗試過'a_value_chosen:= Show_Lov('MY_LOV'); \t如果a_value_chosen THEN ...'但第二次a_value_chosen不爲真既不爲假,也爲空。 – dragy

+0

當你打電話給show_lov時,你確定你當前的項目是myblock.item1嗎? – pablomatico

回答

0

我終於找到了解決方案(使用Oracle OTN討論)。 問題是我第一次彈出LOV後調用的存儲過程。第一次,在我選擇一個值後,我使用存儲過程刪除另一個塊的記錄。在那個過程中,我設置了與MyBlock.Item1和MyBlock.Item2連接的列的值。但在形式上,舊的價值仍然在項目上。我刪除了更新過程中的這兩列,它現在可以工作。但我需要將這兩個字段自動更新爲null。

解決方案是,我首先更改窗體上的這些項目的值,然後我調用存儲過程。它現在有效。

0

嘗試把這兩條線之間同步命令:

go_item('MyBlock.Item1'); 
Synchronize; 
do_key('LIST_VALUES'); 
+0

謝謝,我試過了,但沒有奏效。一樣的東西。 – dragy

+0

好吧,它不顯示lov,但在那裏的光標?或者光標在另一個項目上。 –

+0

遊標位於另一個數據塊和項目上,因爲代碼會在其他數據塊中插入新記錄。也許這會造成問題? – dragy