ヘッダーをスキップ

# RTFテンプレートの拡張された関数サポート

## 拡張されたSQLおよびXSL関数

BI Publisherでは、RTFテンプレートで使用するために一連のSQLおよびXSL関数が拡張されています。これらの拡張関数の構文は、次のとおりです。

<?xdofx:expression?>

（拡張SQL関数用）

<?xdoxslt:expression?>

（拡張XSL関数用）

注意: xdofx文とXSL式は、同一のコンテキストでは混在できません。たとえば、FIRST_NAMEとLAST_NAMEという2つの要素があり、30文字のフィールドに連結してフィールドを右側から「x」の文字で埋め込むとします。この場合、次の構文は使用できません。

不適切な構文:

    <?xdofx:rpad(concat(FIRST_NAME,LAST_NAME),30, 'x')?>

連結がXSL式であるためです。かわりに、次の構文を使用できます。

適切な構文:

    <?xdofx:rpad(FIRST_NAME||LAST_NAME),30,'x')?>

次の表に、サポートされている関数を示します。

SQL文またはXSL式 | 使用方法 | 説明
--- | --- | ---
2+3 | <?xdofx:2+3?> | 加算
2-3 | <?xdofx:2-3?> | 減算
2*3 | <?xdofx:2*3?> | 乗算
2/3 | <?xdofx:2/3?> | 除算
2**3 | <?xdofx:2**3?> | 指数
3||2 | <?xdofx:3||2?> | 連結
lpad('aaa',10,'.') | <?xdofx:lpad('aaa',10,'.')?> | lpad関数は、文字列の左側を一連の特定の文字で埋めます。lpad関数の構文は次のとおりです。 lpad(string1,padded_length,[pad_string]) string1は、（その左側の）文字を埋める文字列です。 padded_lengthは、戻される文字数です。 pad_stringは、string1の左側を埋める文字列です。
rpad('aaa',10,'.') | <?xdofx:rpad('aaa',10,'.')?> | rpad関数は、文字列の右側を一連の特定の文字で埋めます。 rpad関数の構文は次のとおりです。 rpad(string1,padded_length,[pad_string]) string1は、（その右側の）文字を埋める文字列です。 padded_lengthは、戻される文字数です。 pad_stringは、string1の右側を埋める文字列です。
decode('xxx','bbb','ccc','xxx','ddd') | <?xdofx:decode('xxx','bbb','ccc','xxx','ddd')?> | decode関数には、IF-THEN-ELSE文の機能があります。decode関数の構文は次のとおりです。 decode(expression, search, result [,search, result]...[, default]) expressionは比較対象の値です。 searchは、expressionに対して比較される値です。 resultは、expressionがsearchと等しい場合に戻される値です。 一致しない場合はdefaultが戻されます。
Instr('abcabcabc','a',2) | <?xdofx:Instr('abcabcabc','a',2)?> | instr関数は、文字列内の部分文字列の位置を戻します。instr関数の構文は次のとおりです。 instr(string1,string2,[start_position],[nth_appearance]) string1は検索対象の文字列です。 string2は、string1内で検索される部分文字列です。 start_positionは、string1内の検索開始位置です。文字列の最初の位置は1です。start_positionがマイナスの場合は、string1の最後から逆にstart_positionの文字数が数えられ、string1の先頭方向に検索されます。 nth appearanceは、string2のn番目の出現を表します。
substr('abcdefg',2,3) | <?xdofx:substr('abcdefg',2,3)?> | substr関数を使用すると、文字列から部分文字列を抽出できます。substr関数の構文は次のとおりです。 substr(string, start_position, [length]) stringは、ソース文字列です。 start_positionは抽出開始位置です。文字列の最初の位置は常に1です。 lengthは、抽出する文字数です。
replace(name,'John','Jon') | <?xdofx:replace(name,'John','Jon')?> | replace関数は、文字列内の一続きの文字を別の一連の文字で置換します。replace関数の構文は次のとおりです。 replace(string1,string_to_replace,[replacement_string]) string1は、その中の一続きの文字が別の一連の文字で置換される文字列です。 string_to_replaceは、string1内で検索される文字列です。 replacement_stringはオプションです。string1内のすべてのstring_to_replaceがreplacement_stringで置換されます。
to_number('12345') | <?xdofx:to_number('12345')?> | to_number関数は、オプションの書式モデルfmtによって指定された書式で数字が格納されているCHAR、VARCHAR2、NCHARまたはNVARCHAR2データ型の値をNUMBERデータ型の値に変換します。
to_char(12345) | <?xdofx:to_char('12345')?> | to_char関数を使用して、NUMBERデータ型の値をVARCHAR2データ型に変換します。
to_date | <?xdofx:to_date ( char [, fmt [, 'nlsparam']] ) | to_dateは、CHAR、VARCHAR2、NCHARまたはNVARCHAR2データ型の文字をDATEデータ型の値に変換します。fmtはcharの書式を指定する日付書式です。fmtを省略すると、charはデフォルトの日付書式になります。fmtがユリウス暦を示す'J'の場合、charは整数になります。
sysdate() | <?xdofx:sysdate()?> | sysdateは、現在の日時を戻します。戻り値のデータ型はDATEになります。この関数に引数を指定する必要はありません。
minimum | <?xdoxslt:minimum(ELEMENT_NAME)?> | セット内の要素の最小値を戻します。
maximum | <?xdoxslt:maximum(ELEMENT_NAME)?> | セット内の要素の最大値を戻します。
chr | <?xdofx:chr(n)?> | chrは、データベース・キャラクタ・セットまたは各国語キャラクタ・セットでnに相当するバイナリを持つキャラクタを戻します。
ceil | <?xdofx:ceil(n)?> | ceilは、n以上で最も小さい整数を戻します。
floor | <?xdofx:floor(n)?> | floorは、n以下で最も大きい整数を戻します。
round | <?xdofx:round ( number [, integer ] )?> | roundは、numberを端数処理し、小数点第integer位までの桁数で戻します。integerを省略すると、numberは小数点のない整数に端数処理されます。integerに負数を指定すると、小数点の左側（整数部）の指定桁位置で端数処理できます。integerには整数を指定する必要があります。
lower | <?xdofx:lower (char)?> | lowerは、charをすべて小文字で戻します。charには、CHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOBまたはNCLOBのいずれかのデータ型を使用できます。戻り値はcharと同じデータ型になります。
upper | <?xdofx:upper(char)?> | upperは、charをすべて大文字で戻します。charには、CHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOBまたはNCLOBのいずれかのデータ型を使用できます。戻り値はcharと同じデータ型になります。
length | <?xdofx:length(char)?> | length関数は、charの長さを戻します。lengthは、入力キャラクタ・セットによって定義されたキャラクタを使用して長さを計算します。
greatest | <?xdofx:greatest ( expr [, expr]... )?> | greatestは、exprのリストの最大を戻します。比較の前にexprの2番目以降すべてが1番目のexprのデータ型に暗黙的に変換されます。
least | <?xdofx:least ( expr [, expr]... )?> | leastは、exprのリストの最小を戻します。比較の前にexprの2番目以降すべてが1番目のexprのデータ型に暗黙的に変換されます。

次の表に、サポートされている組合せ関数を示します。

SQL文 | 使用方法
--- | ---
(2+3/4-6*7)/8 | <?xdofx:(2+3/4-6*7)/8?>
lpad(substr('1234567890',5,3),10,'^') | <?xdofx:lpad(substr('1234567890',5,3),10,'^')?>
decode('a','b','c','d','e','1')||instr('321',1,1) | <?xdofx:decode('a','b','c','d','e','1')||instr('321',1,1)?>

## XSLの同等要素

次の表に、BI Publisherの簡略化された構文をXSLの同等要素とともに示します。

サポートされているXSL要素 | 説明 | BI Publisher構文
--- | --- | ---
<xsl:value-of select= "name"> | プレースホルダの構文。 | <?name?>
<xsl:apply-templates select="name"> | 現行要素の子ノードにテンプレート・ルールを適用します。 | <?apply:name?>
<xsl:copy-of select="name"> | 現行ノードのコピーを作成します。 | <?copy-of:name?>
<xsl:call-template name="name"> | 現行のテンプレートに挿入/適用される名前付きテンプレートをコールします。 | <?call:name?>
<xsl:sort select="name"> | データセット内の要素に基づいてデータのグループをソートします。 | <?sort:name?>
<xsl:for-each select="name"> | 表出力の生成に使用されるグループのデータ行をループします。 | <?for-each:name?>
<xsl:choose> | 複数条件テストを表すためにwhenおよびotherwiseとともに使用されます。 | <?choose?>
<xsl:when test="exp"> | 複数条件テストを表すためにchooseおよびotherwiseとともに使用されます。 | <?when:expression?>
<xsl:otherwise> | 複数条件テストを表すためにchooseおよびwhenとともに使用されます。 | <?otherwise?>
<xsl:if test="exp"> | 条件付き書式設定に使用されます。 | <?if:expression?>
<xsl:template name="name"> | テンプレートの宣言。 | <?template:name?>
<xsl:variable name="name"> | ローカル変数またはグローバル変数の宣言。 | <?variable:name?>
<xsl:import href="url"> | スタイルシートの内容を別のスタイルシートにインポートします。 | <?import:url?>
<xsl:include href="url"> | スタイルシートを別のスタイルシートに組み込みます。 | <?include:url?>
<xsl:stylesheet xmlns:x="url"> | スタイルシートのルート要素を定義します。 | <?namespace:x=url?>

## FO要素の使用

RTFテンプレートのMicrosoft Wordフォームの各フィールド内で、ほとんどのFO要素を使用できます。次に示すFO要素は、BI PublisherのRTFテンプレートで使用できるように拡張されています。BI Publisherの構文は、いずれかのRTFテンプレート方式で使用できます。

BI PublisherでサポートされるFO要素の全リストは、付録の「サポートされているXSL-FO要素」を参照してください。

FO要素 | BI Publisher構文
--- | ---
<fo:page-number-citation ref-id="id"> | <?fo:page-number-citation:id?>
<fo:page-number> | <?fo:page-number?>
<fo:ANY NAME WITHOUT ATTRIBUTE> | <?fo:ANY NAME WITHOUT ATTRIBUTE?>

Copyright © 2005, 2006, Oracle. All rights reserved.