ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Reportsレポート作成のためのユーザーズ・ガイド
11gリリース1(11.1.1)
B61376-01
  ドキュメント・ライブラリへ
ライブラリ
製品リストへ
製品
目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

31.3 スペル表記された請求書金額を返す式列の作成

この項の手順では、ファンクションに基づいた式列を作成する方法について説明します。作成するファンクションは、請求書金額の言語値または単語値を返します。次に、指定した通貨で金額をスペル表記する式列を作成します。この場合は、ドルとセントを使用します。

31.3.1 PL/SQLファンクションの作成

この項では、請求書の金額を"twenty-four sixty-five"のような単語の形式で単純に返すファンクションを作成します。次の項で作成する式列は、このファンクションで取得した情報を使用し、請求書の金額をスペル表記します。

PL/SQLファンクションを作成するには:

  1. オブジェクト・ナビゲータで、該当するレポート名の下の「プログラム・ユニット」をダブルクリックします。

  2. 新規プログラム・ユニットダイアログ・ボックスで、「名前」ボックスにSpellと入力します。

  3. ファンクション」を選択し、「OK」をクリックします。

  4. 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エディタに貼り付けると、コードを入力できます。

  5. コンパイル」をクリックします。エラーがある場合は、次の図に示すコードと、入力したコードを比較してください。

    図31-3 SPELLファンクションを表示しているPL/SQLエディタ

    図31-3の説明は次にあります。
    「図31-3 SPELLファンクションを表示しているPL/SQLエディタ」の説明

  6. コードが正常にコンパイルされたら、「閉じる」をクリックします。

    新しいファンクションがオブジェクト・ナビゲータに表示されます。

    図31-4 SPELL PL/SQLファンクション作成後のオブジェクト・ナビゲータ

    図31-4の説明は次にあります。
    「図31-4 SPELL PL/SQLファンクション作成後のオブジェクト・ナビゲータ」の説明

  7. レポートを保存します。

31.3.2 データ・モデルでの式列の作成

この項では、第31.3.1項「PL/SQLファンクションの作成」で作成したSpellファンクションで取得された情報を使用する式列を作成します。この式列では、請求書金額の言語値を使用し、正しい通貨の単語を組み合せます。たとえば、Spellファンクションから返された"twenty-four sixty-five"を、"twenty-four dollars and sixty-five cents"の形式に変換します。

式列を作成するには:

  1. オブジェクト・ナビゲータの該当するレポート名の下で、「データ・モデル」ノードの横のビュー・アイコンをダブルクリックして、データ・モデル・ビューを表示します。

    作成したデータ・モデルは次のようになります。

    図31-5 データ・モデル・ビュー

    図31-5の説明は次にあります。
    「図31-5 データ・モデル・ビュー」の説明

  2. 上部をクリックした後、下部中央のサイズ変更ハンドルを下にドラッグして、「G_ORDER_ID」ボックスのサイズを変更します。その結果、データ・モデルは次のようになります。

    図31-6 サイズ変更後のデータ・モデル・ビュー

    図31-6の説明は次にあります。
    「図31-6 サイズ変更後のデータ・モデル・ビュー」の説明

  3. ツール・パレットの「式列」ツールをクリックします。

  4. 「G_ORDER_ID」グループ内の作成した領域をクリックして、新しい式列を作成します。

  5. 新しい式列オブジェクト(CF_1)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

    • 一般情報」で、「名前」プロパティを「SPELLED_AMOUNT」に設定します。

    • 」で、「データ型」プロパティを「Character」、「幅」プロパティを「100」に設定します。

    • プレースホルダ/式」で、「PL/SQL式」プロパティ・フィールドをクリックしてPL/SQLエディタを表示します。

  6. 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エディタに貼り付けると、コードを入力できます。

  7. コンパイル」をクリックします。エラーがある場合は、入力したコードと提供されているコードを比較してください。

  8. コードが正常にコンパイルされたら、「閉じる」をクリックします。

    新しい式列SPELLED_AMOUNTが、データ・モデルに表示されます。

    図31-7 SPELLED_AMOUNT式列作成後のデータ・モデル

    図31-7の説明は次にあります。
    「図31-7 SPELLED_AMOUNT式列作成後のデータ・モデル」の説明

  9. レポートを保存します。