2011-08-05 27 views
0

我在創建一個進程隱藏pl/sql中的區域時遇到了一些問題。 任何人都可以舉例說明如何做到這一點?創建一個頁面進程來隱藏一個區域

坦克。

+0

你是指「在pl/sql中隱藏一個區域」是什麼意思?您可以使用Javascript或動態操作來隱藏它,或者您可以通過在該區域設置條件來有條件地不呈現它。 –

+0

我試圖在該地區有條件地這樣做,但這不起作用。我創建了一個項目:「P1_HIDDEN」,然後在一個過程中,我這樣做了一個值:DECLARE NUMBER; b NUMBER; BEGIN select count(1)into TNT_HISTORY_ITEMID 其中itemid(從TN_TREE中選擇ID,其中pid =(從tn_tree中選擇id,其中pid =:P1_ID)); select count(1)into b from surv_host_data where id_client =:P1_ID; 如果b <> 0且a = 0,則 :P1_HIDDEN:= 3; elsif a = 0 then :P1_HIDDEN:= 3; elsif b = 0 then :P1_HIDDEN:= 3;其他 :P1_HIDDEN:= 3; end if; 結束;'但沒有工作。 – macwadu

回答

1

如果合適,您可以使用條件類型「PL/SQL函數體返回布爾值」將您需要的PL/SQL直接放入條件中。例如(使用你的代碼從上面,這似乎並沒有給我完全正確 - 條條大路通隱藏= 3!):

DECLARE 
a NUMBER; 
b NUMBER; 
hidden NUMBER; 
BEGIN 
select count(1) into a from TN_HISTORY_ITEMID where itemid in (select id from TN_TREE where pid = (select id from tn_tree where pid =:P1_ID)); 
select count(1) into b from surv_host_data where id_client = :P1_ID; 
if b <> 0 AND a = 0 then hidden := 3; 
elsif a = 0 then hidden := 3; 
elsif b = 0 then hidden := 3; 
else hidden := 3; 
end If; 

return (hidden = 3); 
End; 

如果你需要一個過程,一個頁面項目做到這一點,那麼您需要確保該項目在區域之前呈現,並且該過程在呈現隱藏區域之前運行。否則,在設置該項目的時候就會太遲。

+0

是的,這是過去和複製時的錯誤。但是,我不能用值設置':P1_HIDDEN'的值。 – macwadu

+0

不確定你的意思 - ':P1_HIDDEN:= 3;'確實設置了P1_HIDDEN的值。 –

+0

我有沒有任何價值的項目,並有一個過程想要爲它設置一個值。這可能嗎? – macwadu

相關問題