11-5 メールテンプレート
雛形となる文書に処理命令を埋め込んだものをテンプレートといいます。
処理システムにより処理命令のある場所に文字が挿入されます。
処理命令が一つも埋め込まれていなくてもテンプレートになる場合もあります。そのような場合は結果の文章はテンプレートと同じものになります。雛形となる文章はテキストファイルであれば、HTML文書、XML文書、テキスト文書などなんでも構いません。
テンプレートで使用する処理命令はXMLの処理命令に準拠しています。XML文書で使用しても整形式を崩すことはありません。
このテンプレーで使用する処理命令は少ない種類と平易記述を特徴としています。
11-5-1 変数
文字や数値を格納するための場所を表します。変数名は次の規則に従って付けてください。
変数名の先頭の文字は、英字、漢字、ひらがな、カタカナのいずれかでなければなりません。
変数名のその他の部分には英数字、漢字、ひらがな、カタカナ、アンダスコア (_) を使うことができます。
変数には文字列を格納する文字列型変数と数値を格納する数値型変数と論理値を表す論理型変数があります。変数の型は変数に値を格納するときに自動的に決まります。
変数には次の2つの種類があります。。
1. システム変数
予め定義されている変数です。
詳しくは「11-5 メール用システム変数」の項をご覧ください。
2. 利用者定義変数
テンプレートの式の中で任意に用いることができる変数です。変数は4.変数設定命令を用いて設定します。
11-5-2 定数
テンプレートの式の中で直接に固定値を使用することができます。これを定数といいます。
定数には数値を現す数値定数と文字列を現す文字列定数があります。
定数には次の2つの種類があります。
1. システム定数
予め定義されている定数です。次の2つです。
True | 論理値 | 論理式の真を現します。 |
False | 論理値 | 論理式の偽を現します。 |
2. 利用者定義定数
テンプレートの式の中で任意に用いることができる定数です。
数値定数は 12345 のようにカンマを付けずに記述します。整数のみ扱えます。
文字列定数は ""本日は晴天なり"" のようにダブルクォーテションで囲みます。
11-5-3 演算子
演算子は2つの項目間で演算を行うもので、次のものがあります。
1. 数値演算子
2つの数値(定数、変数、関数)の加減乗除を行います。
+ | 加算 |
= | 減算 |
* | 乗算 |
/ | 除算 |
2. 文字列演算子
2つの文字列(定数、変数、関数)の連結のみが行えます。
+ | 2つの文字列を連結します。 |
3. 比較演算子
2つの数値(定数、変数、関数)または2つの文字列(定数、変数、関数)どうしの比較を行い正しければ真に、間違っていれば偽になります。なお真はTrueと偽はFalseと定義されています。文字列の比較は1バイトずつアスキーコードで比較します。
+ | より小さい |
<= | 以下 |
> | より大きい |
>= | 以上 |
= | 等しい |
<> | 等しくない |
4. 論理演算子
2つの式の間の論理的関係を計算します。
And | 論理積 両辺の値がともに 真(True)の場合のみ真(True)になります。 |
Or | 論理和 両辺の値のどちらかが 真(True)であれば真(True)になります。 |
11-5-4 式
変数、定数、関数、演算子、括弧()の組み合わせたもので、式全体で1つの数値または文字を現します。
1. 数値式
数値を現すものを数値式といいます。
例 (Year*10000+Mon+100+Day)/2
2. 文字列式
文字列を現すものを文字列式といいます。
例 GetFolderName(DocumentFile)+""Mydb.Txt""
11-5-5 処理命令
文章に埋め込む文字列を指定する一連の記号です。
テンプレートの処理命令は全て で始まり ?> で終わります。ただし で始まり ?> で終わるものが全てがテンプレートの処理命令になるわけではありません。
処理命令はXMLの処理命令に準拠しています。テンプレートで使用する処理命令は次の4つの命令です。
1. 挿入命令
2. 繰返し命令
3. 条件付き挿入命令
4. 変数設定命令
1.挿入命令
機能
処理命令の位置に文字列を挿入します。
書式
<? insert value="式" ?>
説明
<? insert.... ?>の位置に文字列を挿入します。
挿入する文字列はvalue記述値が式として実行時に評価されて決まります。
式が評価が数値の場合は数値を文字に変換して挿入します。
式が評価が文字列の場合は文字列の場合はそのまま挿入します。
式が評価が論理値の場合はtrueまたはfalseという文字列を挿入します。
2.繰返し命令
機能
文字列を指定回数、繰り返して挿入します。
書式
<? repeat id=""文字列"" times=""数値式"" ?>
文字列
<? end-repeat ?>
id記述値
一意の文字列です(省略可)。省略した場合は後述のプロパティは使用できません。
times記述値
繰返し回数を表す数値式です(必須)。
説明
repeat処理命令とend-repeat処理命令の間の文字列を指定された繰返回数挿入します。
繰返回数はrepeat記述値の数値式が実行時に評価されて決まります。
挿入文字列に別のテンプレート処理命令があれば、その処理命令は機能します。
繰返し処理中に、現在状態を表す次のプロパティを参照することができます。
indexプロパティ 現在の処理の繰返し回数を表す数値変数です。0からカウントアップされます。
firstプロパティ 現在の処理が繰返しの最初であるかを表す論理変数です。最初の場合に真になります。
lastプロパティ 現在の処理が繰返しの最後であるかを表す論理変数です。最後の場合に真になります。
これらのプロパティはid記述値にピリオドを付けて使用します。例えば id=""line"" の場合 line.index などとします。
id記述が省略された場合は、id記述値はなく.indexなどとなります。
3.条件付き挿入命令
機能
条件により文字列を挿入します。
書式
<? if test=""論理式"" ?>
文字列
<? else ?>
文字列
<? end-if ?>
説明
条件の真偽はtest記述値の論理式が実行時に評価されて決まります。
条件が真の場合はif処理命令とelse処理命令の間の文字列を挿入します。
条件が偽の場合はelse処理命令とend-if処理命令の間の文字列を挿入します。
条件が偽の場合に挿入する文字列がなければelse処理命令を省略します。
挿入文字列に別のテンプレート処理命令があれば、その処理命令は機能します。
4.変数設定命令
機能
変数名と変数値を設定します。
書式
<? assign varname="文字列" value="式" local="true" ?>
説明
varname記述で変数名を指定します。
変数値はvalue記述値の式が実行時に評価されて決まります。
式が数値式か文字列指式か論理式かによって変数値の形式も決まります。
変数にはスコープがあります。スコープとは変数が利用できる範囲です。
テンプレートファイルは一つのスコープです。またrepea処理命令~end-repeat処理命令、if処理命令~elde処理命令、else処理命令~end-if処理命令はその間が一つのスコープです。
スコープ内にスコープがある場合は、現在の最も内側のスコープが現在のスコープです。
同じ変数名が既存でない場合は、その変数は変数が定義されたスコープでのみ有効です。
変数名が既存の場合でもlocal記述を省略するかlocal記述値をtrueにすると、このスコープでのみ有効な変数が作られ、既存の変数は影響されません。
変数名が既存の場合ででlocal記述値がfalseの場合は既存の変数の値が変更されます。
11-5-6 関数
関数とはシステムで予め用意されている手続きで値を返すものです。関数には数値を返す数値関数と、文字列を返す文字列関数があります。関数は関数名の後に()が付きます。()の中には引数が必要なものもあります。
複数の引数が必要な場合はカンマで区切ります。引数としては定数、変数、関数、式などが利用できます。
関数は次の3つのカテゴリーに分けることができます。
1. 変換関数
このカテゴリーの関数は数値を文字列に、文字列を数値に変換して返します。
数値から文字列へ
数値を文字列に変換します。
構文
Str(num)
num | 変換する数値です。 |
文字列から数値へ
文字列を数値に変換します。小数も可能です。
構文
Val(str)
str | 変換する文字列です。 |
数値から文字列へ(書式指定)
数値を書式指定で文字列に変換します。
構文
Format(num, format, [decimal], [invalid])
num | 変換する数値です。 |
format | 書式。次の文字より構成する文字列です。 , カンマの位置を現します。 . 実少数点の位置を現します。 V 仮想小数点の位置を現します。(小数点は表示されません) 9 0 数字を現します。 Z # 数字を現します。 整数部先頭および整数部末尾にある場合はゼロ表示は抑制されます。 数字の表示長さは書式文字列の長さに等しくなります。(仮想小数点の場合は-1) (例) ""###,##9.9 |
decimal | 小数点位置がformat指定と異なる場合に正しい小数点位置を指定します。 |
invalid | 無効数値を指定します。Numがこの値に等しい場合、関数は空白を返します。 |
日付時間を文字列へ(書式指定)
日付時間を指定した形式の文字列に変換します。
書式を指定しない場合は yyyy/MM/dd の書式が使用されます。
構文
DatwFormat(datetime, [format], [calture])
datetime | 変換する日付時間値です。 |
format | 書式。次の文字より構成する文字列です。 年号 gg 年 yy (00 ~ 99) yyyy (0000 ~ 9999) 月 M (1 ~ 12) MM 月 (01 ~ 12) 日 d (1 ~ 31) dd 日 (01 ~ 31) 12時 h (0~11) hh (00~11) 24時 H (0~23) HH (00~23) 分 m (0~59) mm (00~59) 秒 s (0~59) ss(0~59) (例) ""yyyy/MM/dd HH:mm:ss |
calture | 和暦で表示したい場合はTrueとして下さい |
2. 文字列操作
このカテゴリーの関数は文字列を加工して別の文字列を返します。
長さ調整
文字列を指定の長さに調整した文字列を得ます。長さは半角文字の文字数で指定し、全角文字は2文字と数えます。文字列が短い場合は半角の空白が末尾に追加されます。長い場合は後ろを切り取ります。全角の途中で切れる場合は半角の空白に置き換えられます。
構文
Adjust(str, len)
str | 元の文字列です。 |
len | 半角での調整長さです。 |
URLエンコード
文字列 をURLエンコードします。
構文
UrlEncode(str)
str | 元の文字列です。 |
3. その他関数
その他の上記カテゴリーに属さない関数です。
インポート関数
他のテンプレートを指定位置にインポートします。複数のテンプレートで共通な部分を一箇所にまとめることができます。
構文
Import(filename)
filename | インポートするテンプレートファイル名を文字列で指定します。 |