2011-12-07 96 views
1

在我看來,我需要做的是非常簡單。事實上這很簡單,可能很明顯,因此我似乎找不到記錄如何做到這一點的地方。Oracle中的簡單日期算術APEX

我需要的只是採取Date Picker頁面Item(:P1_DATE_1)的值,並通過動態操作設置第二個Date Picker頁面Item(:P1_DATE_2)的值。 (:P1_DATE_2)的值應該是2年或730天,大於(:P1_DATE_1)的值。所以我需要的只是一個簡單的'+730'表達式吧?

我有這個工作使用sysdate作爲此計算的開始日期。下面的PL/SQL表達式給出了適當的輸出:

to_char(sysdate + 730,'dd-MON-rr') 

但後來我無法將它轉換爲接受頁面項目的值。我已經設置了所有操作和所有設置,但我試圖用P1_DATE_1替換sysdate時無法啓用它。我嘗試過使用頁面項目儘可能多的表達式,但它不填充第二頁面項目。

對不起,可能愚蠢的問題,但如果有人可以幫助我會很感激。謝謝!

+0

更好 – Ben

+0

那一切都很好,但我不希望使用SYSDATE 。我想在P1_DATE_1中使用日期作爲修改日期。我爲sysdate發佈的方法正常工作 – Spags

回答

2

@Justin洞是正確的:在頁面項目所有的值都爲VARCHAR2

至於你的動態行爲治療,這是我已經設置了: 地區:

items

動態動作(日期2加):

dynamic action

真正的行動:

true action

,如果你想要的是2年然後`TO_CHAR(ADD_MONTHS(SYSDATE,24), 'DD-MON-RR')`是
+0

謝謝!我認爲我的問題一直是可能的,我只是不記得在提交它的價值之前提交該頁面項目......謝謝! – Spags

1

您是否收到錯誤?如果是這樣,有什麼錯誤?由於APEX中的頁面項總是字符串,因此需要在對它們進行日期算術之前將它們轉換爲日期。假如P1_DATE_1也是DD-MON-RR格式的話,應該這樣工作。

to_char(add_months(to_date(:P1_DATE_1, 'DD-MON-RR'), 
        24), 
     'DD-MON-RR') 

如果你沒有收到錯誤,而第二項只是沒有違約,我的猜測是你有一個操作順序問題。你確定當第二個項目的初始化代碼運行時,第一個項目實際上設置爲非NULL值嗎?如果你想根據人類在第一個日期選擇器中在運行時選擇的值來設置第二個項目中的值,你需要提交頁面或者需要一些Javascript。