| Oracle® Fusion Middleware Oracle Reportsレポート作成のためのユーザーズ・ガイド 11gリリース2(11.1.2) B70752-01 |
|
![]() 前へ |
![]() 次へ |
この項の手順では、ファンクションに基づいた式列を作成する方法について説明します。作成するファンクションは、請求書金額の言語値または単語値を返します。次に、指定した通貨で金額をスペル表記する式列を作成します。この場合は、ドルとセントを使用します。
この項では、請求書の金額をtwenty-four sixty-fiveのような単語の形式で単純に返すファンクションを作成します。次の項で作成する式列は、このファンクションで取得した情報を使用し、請求書の金額をスペル表記します。
PL/SQLファンクションを作成するには:
オブジェクト・ナビゲータで、該当するレポート名の下の「プログラム・ユニット」をダブルクリックします。
新規プログラム・ユニットダイアログ・ボックスで、「名前」ボックスにSpellと入力します。
「ファンクション」を選択し、「OK」をクリックします。
PL/SQLエディタで、次のコードを入力します。
FUNCTION Spell (val number) RETURN CHAR IS
sp varchar2(100);
BEGIN
if val > 0 then
return(initcap(to_char(to_date(val, 'SSSSS'), 'SSSSSSP')));
else
return('');
end if;
END;
|
注意: 提供されているテキスト・ファイルspellcash_code.txtから、このコードをコピーしてPL/SQLエディタに貼り付けると、コードを入力できます。 |
「コンパイル」をクリックします。エラーがある場合は、次の図に示すコードと、入力したコードを比較してください。
コードが正常にコンパイルされたら、「閉じる」をクリックします。
新しいファンクションがオブジェクト・ナビゲータに表示されます。
レポートを保存します。
この項では、第31.3.1項「PL/SQLファンクションの作成」で作成したSpellファンクションで取得された情報を使用する式列を作成します。この式列では、請求書金額の言語値を使用し、正しい通貨の単語を組み合せます。たとえば、Spellファンクションから返された"twenty-four sixty-five"を、"twenty-four dollars and sixty-five cents"の形式に変換します。
式列を作成するには:
オブジェクト・ナビゲータの該当するレポート名の下で、「データ・モデル」ノードの横のビュー・アイコンをダブルクリックして、データ・モデル・ビューを表示します。
作成したデータ・モデルは次のようになります。
上部をクリックした後、下部中央のサイズ変更ハンドルを下にドラッグして、「G_ORDER_ID」ボックスのサイズを変更します。その結果、データ・モデルは次のようになります。
ツール・パレットの「式列」ツールをクリックします。
G_ORDER_IDグループ内の作成した領域をクリックして、新しい式列を作成します。
新しい式列オブジェクト(CF_1)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。
「一般情報」で、「名前」プロパティを「SPELLED_AMOUNT」に設定します。
「列」で、「データ型」プロパティを「Character」、「幅」プロパティを「100」に設定します。
「プレースホルダ/式」で、「PL/SQL式」プロパティ・フィールドをクリックしてPL/SQLエディタを表示します。
PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。
function SPELLED_AMOUNTFormula return Char is
cents number;
c_str varchar2(80);
val number;
begin
val := :order_total;
cents := (val mod 1) * 100;
if cents > 0 then --creates string for cents
c_str := ' and ' || TO_CHAR(cents) || '/100 Dollars******';
else
c_str := ' Dollars******';
end if;
if val < 1000 and val > 1 then
return (initcap(spell(floor(val))) || c_str);
elsif val > 1000 then
return(initcap(spell(floor(val/1000))) || ' Thousand ' ||
spell(floor(val mod 1000)) || c_str);
else
return('Zero'||c_str);
end if;
end;
|
注意: 提供されているテキスト・ファイルspellcash_code.txtから、このコードをコピーしてPL/SQLエディタに貼り付けると、コードを入力できます。 |
「コンパイル」をクリックします。エラーがある場合は、入力したコードと提供されているコードを比較してください。
コードが正常にコンパイルされたら、「閉じる」をクリックします。
新しい式列SPELLED_AMOUNTが、データ・モデルに表示されます。
レポートを保存します。