2010-03-24 54 views
0

這可能很簡單,但我是Oracle新手。我正在使用Oracle 10g,並且有一個表格,它以表格式佈局中的鏈接表格列出我們的信息。最後一列數據是具有啓用(T)和禁用(F)元素列表的「列表項」項目類型。如何在Oracle中的表格佈局中控制行

我需要的是,當用戶將此下拉列表更改爲禁用時,我只希望該行有一些列被禁用,而不是整列。

這也假定負載的形式,它會禁用和啓用數據行取決於從數據庫中的EnabledDisabled列中拉出什麼值。

感謝您的幫助!

回答

0

選項1:使用ENABLED項目屬性。

不幸的是,Oracle Forms不允許在項目實例級別更改項目的ENABLED屬性。

你能做什麼,但是,是啓用或當用戶輸入一個記錄禁用整個項目 - 使用WHEN-NEW-RECORD-INSTANCE觸發 - 根據當前記錄的列表項值的值,觸發將設置ENABLED財產改爲PROPERTY_TRUEPROPERTY_FALSE

當然,您的列表項目也會在其WHEN-LIST-CHANGED觸發器中具有相同的代碼。

這種方法的缺點是整列對用戶來說「禁用」,並且他們將無法使用這些禁用的項目選擇不同的記錄。

選項2:使用INSERT_ALLOWEDUPDATE_ALLOWED屬性。

您可以使用SET_ITEM_INSTANCE_PROPERTY在項目實例級別設置這些屬性。您可以在塊的POST-QUERY觸發器以及列表項的WHEN-LIST-CHANGED觸發器中設置它們。

但是,這不會改變項目在屏幕上的顯示方式。爲了解決這個問題,您還可以在項目實例級別設置可視化屬性(例如,將項目更改爲使用深灰色背景或其他內容)。

More comments.

+0

好吧,那太臭了。好吧,我想我只是在用戶的表單上對功能進行明確的描述。再次謝謝傑夫,因爲你救了我的時候沒有旋轉我的輪子。 – DotNetDan 2010-03-25 13:42:44

+0

不直截了當,不幸的是:) - 但是我已經使用了選項2很多次。 – 2010-03-25 13:53:57