2013-07-17 48 views
2

我是APEX的新成員,只有Access的經驗,所以有一些簡單的訪問解決方案在APEX中看起來並不簡單。我在表單/表格中遇到了持續時間字段問題。Oracle ApexCreate時間字段HH:MM

用戶需要在HH:MM中註明會議需要多長時間。

  1. 列中該列應具有哪種數據類型。目前它是TIMESTAMP

  2. 如何讓該字段具有'HH:MM'的輸入掩碼。我想要的是用戶能夠鍵入'0130'並且該字段立即將其格式化爲'01:30'。

報告對這些時間是必需的,所以我認爲進入數據VARCHAR也無濟於事。

任何有關這個主題的幫助將不勝感激。

預先感謝您

回答

6

老實說,人們可能會認爲它是,並且可能更但從技術上比用戶接口點,這不是一件容易的課題。
最簡單的出路是什麼?頂點datetimepicker。說實話,如果你對這項技術還不熟悉,我建議你使用這個技術,特別是如果你最初想要避開javascript/jquery。
讓我們這樣說吧:日期選擇器很好,工作很好,但時間真的不是那麼棒。

date time picker look

並非所有熱點權利。直到您點擊「關閉」,輸入項目中的值纔會更改。時間組件看起來像是老實說的最後一個草率添加。但是,它工作。 (但是我仍然將字段設置爲只讀,以便用戶不能直接輸入文本。)
允許輸入文本意味着它需要根據正確的格式掩碼進行驗證。並且格式掩碼在jQuery(日期選擇器)和Oracle中的格式掩碼方面有所不同,並且在datepicker中可能無法使用oracle格式掩碼,這增加了更多的複雜性。也沒有'實時'日期驗證(也不是日期時間),只有內置項目驗證將檢查格式掩碼和提交時觸發的內容。

無論如何,我會說看看它。設置你的項目被顯示爲日期選擇器,並使用下設置格式掩碼來獲取日期時間選擇器:
date time picker settings

現在,您可以進一步推動它的過程,但它會花費一些功夫。儘管有幾個選項。
就我個人而言,當我實施日期+時間時,我總是將時間分成兩個字段。 1與日期分量,一個與時間分量,同時保持該項目的原始值隱藏(所以總共3項)。然後我在日期項目上使用日期選擇器,並在時間項目上使用jquery timepicker插件。在提交時,我將兩個值一起添加並在日期中解析它們,並將該值再次放入原始項目中(以允許標準處理對源設置爲數據庫列的項目進行處理)。
時間選擇器的一個示例是here,另一個是here。他們都不難實現。他們也有很好的文檔。雖然我不想在這裏實施它,但我建議你先看看它,看看它有多恐懼。 (我會建立一個頂尖的演示,但現在有點時間緊迫)。

例如,使用Trent的(第二個鏈接)插件:

  • 把js文件在心尖images目錄。我在我的情況下創建的文件夾「/自定義」
  • 所需的js文件添加到頁面(假設頂點4.2,把這個JavaScript文件的URL)

    #IMAGE_PREFIX#libraries/jquery-ui/1.8.22/ui/jquery.ui.slider.js 
    #IMAGE_PREFIX#custom/jquery-ui-timepicker-addon.js 
    
  • 使用的onload代碼,如這初始化場

    $("#P95_DEPARTURE_TIME").timepicker({hourGrid: 4,minuteGrid: 10}); 
    

這將最終看起來就象這樣:

timepicker plugin

如果你想要它,現在需要在javascript代碼中處理拾取器之間的任何進一步交互。不要忘記服務器驗證。

至於項目,我隱藏的日期項目具有格式掩碼DD-MON-YYYY HH24:MI。格式掩碼很重要,因爲項目是綁定變量,綁定變量是varchar2。 html表單中的值也就是文字。 例如,這是對我顯示的日期項目,具有類似的設置的時間項目:

date display

然後在後提交的計算,我再次粘合在一起的價值觀,並把它們在M是「會的值保存到數據庫:

:P95_DEPARTURE_DATE_DISP||' '||:P95_DEPARTURE_TIME 

這只是在設置的簡短說明,雖然,但一旦你多一點熟悉的產品可能是有趣的。

apex-plugin上也有2個timepicker插件,但老實說,我覺得它們跟這些已經存在的jquery插件相比並沒有什麼意思。

給它一些想法,看看它。

+0

非常感謝您的幫助。這正是我需要聽到的(也許不是我想聽到的)。大聲笑。我很高興我不必花費更多的不必要的時間來嘗試自己解決問題。我肯定會給插件一個嘗試,看看我如何繼續。除了這個缺陷之外,我發現apex使用起來相當舒服。再次感謝您的及時和翔實的答覆。 –

+0

沒問題。如果答案適合您,請記住將其標記爲已接受! – Tom

+0

你做得非常好! –

0

APEX 4.2:只是爲了將來的觀看提供一些燈光;現在有大量的Apex插件用於選擇日期/時間或同時返回日期時間格式的變體,如您所需。對於例如如你的情況HH:MM或HH24:MI。

我個人使用了http://www.apex-plugin.com的TimePicker插件,我推薦時沒有問題。