2016-12-26 15 views
0

私はoracle apexにはかなり新しく、自分でoracle apexを5つ以上コントロールすることに取り組んでいます。私は2つのページを持っています:テーブル上に1つのインタラクティブなレポートと、 のレコードを追加して変更するフォームのための1つのレポートです。フォームには、P12_VAT_PERC、P12_VAT_AMOUNT、P12_NET_AMOUNT、およびP12_TOT_AMOUNT(すべての4つのデータベースフィールド、タイプ番号)の4つのフィールドがあります。イベントの動的アクションを1つ作成しました。上記の4つのフィールド項目のいずれかにフォーカスを当てません。このイベントは、2つのアクションで真の場合に起動されます。 P12_TOT_AMOUNTにjavascriptを使用して計算された数値が対話型レポートで正しく表示されない

($v('P12_VAT_PERC')/100) * $v('P12_NET_AMOUNT'); 

アクション2設定値、JavaScript式セットタイプ:それが動作する形態で

parseFloat($v('P12_NET_AMOUNT'))+parseFloat(($v('P12_VAT_PERC')/100) * $v('P12_NET_AMOUNT')); 

アクション1は、P12_VAT_AMOUNTにセットタイプJavaScript式を値に設定されています。 P12_VAT_AMOUNTとP12_TOT_AMOUNTの値は、4つのフィールドのいずれかにフォーカスを失った後に計算され、一度計算された数値(該当する場合は小数点付き)として正しく表示されます。しかし、ページが送信されると、値はレポートに正しく表示されず、データベースにも正しく保存されません。私。 P12_VAT_AMOUNTを提出する前に計算され、25.919999999999998として表示されます。レポートに提出すると、25919999999999998と表示されます。小数点記号がありません。また、データベースには、2.592E16のように格納されます。

このレコードを編集用にもう一度開いた場合、最初は25919999999999998のようにレポートに表示されます。つまりP12_VAT_PERCを変更してフォーカスを変更すると、フィールドは正確に計算され、 。提出後、再び間違っています。これを解決するために、ダイナミックアクションをページロード(このオプションを有効にしました)で実行したことが判明しましたが、この部分が解決されました。値はjavascriptによってフォームに正しく表示されますが、間違った値がデータベースに格納され、対話型レポートに正しく表示されないようです。

P12_TOT_AMOUNTの場合と同じ動作です。

私は、APEXが小数点としてドットを使用していますが、ブラウザが実行されているマシンの地域設定(オランダ語)がコンマに設定されているという考え方があります。小数点記号としてカンマを入力すると、計算されたフィールドはNaNとして表示されます。

どうすればいいですか?誰かが私を助けて解決策を見いだす方向に私を置くことを願っています。

+0

この質問はOracle Communityにも掲載されています。私がそこで受け取った答えは、javascriptが常に小数点の区切り文字としてドットを使用しているということです。それは私の問題を説明します。私は今カンマであるロケールの小数点記号を使ってjavascriptで数値を返そうとしています。少なくとも私は問題がどこにあるか知っています。それはエイペックスではありませんが、問題はあまりにも少ないjavascriptの知識です。私はこの質問に答えてマークし、解決策が本当の問題かどうかを探します。 – juseit

答えて

0

javascriptが小数点記号として常にドットを使用し、ロケールが10進数に設定されているという実際の問題です。私は今、その問題に焦点を当てます。それはApexとは関係ありません。

関連する問題