動的なアクションがあり、起動する前にjavascript条件で多数のチェックを行います。データベースから読み込み専用フィールド(P4_NEXT_RENEWAL_DATE)に戻った日付が今日のシステム日付よりも遅い場合は、リージョンを表示するだけです。Oracle Apex 5の動的アクションでOracleと日付を比較できない
のMy Oracleテーブルは、日付フィールドは、読み取り専用のページ・アイテムの中に戻されました:
次の更新日:これは以下のような値を返します
P4_NEXT_RENEWAL_DATE
16-JUL-2017
は、私は以下のように見えるダイナミックアクションを、持っている:私は私の次の場合は地域を示すだろう期待していた
(
(apex.item('P4_RENEWAL_REQUIRED').getValue()=='Yes' && apex.item('P4_RENEWAL_REQUIRED_AGREE').getValue()=='Agree')
||
(apex.item('P4_RENEWAL_REQUIRED').getValue()=='No' && apex.item('P4_RENEWAL_REQUIRED_AGREE').getValue()=='Disagree')
)
&&
Date.parse(apex.item('P4_NEXT_RENEWAL_DATE').getValue()) > new Date()
それはこの最後のビット動作していないされ、
&& Date.parse(apex.item('P4_NEXT_RENEWAL_DATE').getValue()) > new Date()
更新日は今日の日付よりも遅かったですが、日付が過去か未来かに関係なく地域を示します。
私の読み取り専用フィールドがP4_NEXT_RENEWAL_DATEの日付の文字列バージョンを返しているのか、またはApexがOracleからの日付値を知っていて、javascriptが日付値として扱っているのかわかりません。いくつかのdate.parse()メソッドを試しましたが、何も動作しないようです。
&& apex.item('P4_NEXT_RENEWAL_DATE').getValue() > new Date()
何かアドバイス:
は私もdate.parseを使用していない、と私は戻っ生の日付オブジェクトを介していますストレートapex.item.getValue()呼び出しを使用して、ない運ないか試してみました感謝。
私は 'Date.parse'で手がかりになっていませんが、P4_NEXT_RENEWAL_DATEに保持されている値は**文字列**です。 '16 -JUL-2017 'だから問題は: 'Date.parse'はその形式の文字列を扱うことができるか? –
Oracleは、日付列から日付値を取り出し、string型のバインド(?)変数であるページ項目に保持するのはなぜですか? 3つのOracleサブストリングを使用して日付を3つに分割しようとしましたが、 "2017年7月16日"などの部分から文字列を作成しましたが、まだ喜んではありません – smackenzie
GoogleのDate.parseおよびDD-MMM-YYYY 「解決策に関する提案」 'apex.item'はJavascript関数です(Oracleから提供されています)、それはすべて" text "型の入力であり、データベースの列を調べていないので、日付値を保持していることを知らない。 –