4th Dimension 2003 では、メソッド内でマクロコマンドを使用することができます。マク ロコマンドを使用すると、メソッド入力においてかなりの時間が節約できます。
タ ク ラ ャ キ プ ー ケ ス
エ 置き換えられる文字 n
¥ LF(ラインフィード) t
¥ HT(タブ) r
¥ CR(キャリッジリターン)
¥
¥ ¥(バックスラッシュ)
"
¥ "(引用符)
マクロコマンドは 4D コードの一部分であり、常に利用可能で、開かれているデータベー スのタイプに関わらずメソッドのいずれの場所にでも挿入することができます。マクロ に含めることができるのは、あらゆるタイプの 4D テキスト、コマンド、定数、およびマ クロ挿入時にメソッドのコンテキストから算出された値で置き換えられる特殊なタグな どです。例えば、あるマクロに <method̲name/>;というタグが含まれる場合、このタグは マクロ挿入時に現在のプロジェクトメソッド名で置き換えられます。
マクロ挿入の例
マクロは、XML フォーマットの(テキスト)ファイルに保存されます。マクロは「メ ソッド」エディタのリストに配置したり、エディタのコンテキストメニューや先行入力 機能を使用して呼びだすこともできます。
4th Dimension のマクロは XML フォーマットで記述されます。4D のデフォルトのマクロ ファイルを そのまま 使用したり、あるいはこれを変更することもできます。
マクロは各マシンに特定されており、そのマシン上で実行されるすべての 4D 2003 アプリ ケーションから利用することができます。マクロはすべて Macros.xml という名前のテ キストファイルに保存され、そのマシンのアクティブな 4D フォルダ内に置かれます。
アクティブな 4D フォルダの場所は、OS によって異なります。
注: Windows 上では通常、デフォルトとして「Application Data」フォルダが非表示に なっています。その内容を見るためには、OS レベルでこのファイルを表示させなくては なりません。
4D より一連のデフォルトマクロが提供されますが、これは以前のバージョンの 4D におけ るキーワードリストに相当します。これらのマクロはデフォルトの「Macros.xml」ファイ ルに納められ、4D 2003 を初めて起動した時にマシン上のアクティブな 4D フォルダ内に 作成されます。
このファイルは、後から自由に変更することができます(後述の節を参照)。このファイ ルに問題が発生した場合、それを削除すれば次回の 4D の起動時にファイルが再作成され ます。
標準のテキストエディタやプログラムを用いて、「Macros.xml」ファイルにカスタマイズ したマクロを追加することができます。
4D の使用中でもマクロファイルを開くことができます。4D をアクティブにする度に、利 用可能なマクロのリストが更新されます。例えば、テキストエディタを前面に移動して マクロファイルを変更した後、4D メソッドへ戻ると、「メソッド」エディタ上では新しい マクロが使用できるようになります。
空のマクロやエラーがあるマクロは表示されません。
ム テ ス
シ アクティブな4Dフォルダの場所 S
O c a
M 9 {Disk}:システムフォルダ:アプリケーションサポート:4D S
O c a
M X {Disk}:Library:AppilcaitonSupport:4D s
w o d n i
W 98 s w o d n i
W Millennium {Disk}:¥{Systemfolder}¥Allusers¥AppilcaitonData¥4D s
w o d n i
W 2000 s w o d n i
W XP
s t n e m u c o D
¥ : } k s i D
{ andSetitngs¥AllUsers¥AppilcaitonData¥4D :
t n e il C D 4
D 4
¥ a t a D n o it a c il p p A
¥ r e s u t n e r r u C
¥ s g n it t e S d n a t n e m u c o D
¥ : } k s i D {
("Currentuser"はWindowsセッションを開いたユーザの名前)
■ カスタマイズしたマクロの構文チェック
4D マクロの定義に使用する言語は XML であるため、Web ブラウザで「Macros.xml」
ファイルを開くだけで、マクロに構文エラーがないかどうかを確認することができま す。Web ブラウザは階層リスト形式で XML ファイルの内容を表示し、その構文を解析 します。エラーが検出されれば(例えば、終了タグが抜けている)、ブラウザはエラー 箇所を指摘します。
注:「Macros.xml」ファイルの 妥当性確認 、つまり、4D から提供される Document Type Declaration(DTD)との整合性をチェックすることも可能です。詳細については、
後述の付録 B「マクロの DTD」を参照してください。
4D マクロは 要素 と呼ばれる、カスタマイズされた XML タグを用いて構築されます。
タグには定義の開始と終了を示すものもあり(<tag> </tag> タイプのダブルタグ)、挿入内 容の値で置き換えられるものもあります(<tag/>)。
XML 仕様に準拠して、いくつかの要素タグには属性を含めることができます。特に指定 されないかぎり、これらの属性は任意であり、省略されると省略値が使用されます。属 性付き要素のシンタックスは、次の通りです。
■ ダブルタグ: <tag attribute="value"> </macro>
■ シングルタグ: <tag attribute="value"/>
要素が複数の属性を受け入れる場合、同じコマンド行にそれらの属性をまとめて記述し、
スペースで区切ります。
<tag attribute1="value" attribute2="value" attribute3="value"... >
タグの一覧とその使用モードを以下に示します。
* マクロは「メソッド」エディタのコンテキストメニューや先行入力機能を使用して呼 びだすことができます(後述の節を参照)。
** XML 言語仕様に準拠したい場合には、拡張文字(アクセント文字、引用符等)を使用 してはいけません。
グ タ 素
要 説明
>
/ e t a d
<
。 グ タ る れ ら え 換 き 置 で 付 日 在 現
: 性 属
・format:日付表示に使用する4Dフォーマット。フォーマット さ 用 使 が ト ッ マ ー ォ フ の ト ル ォ フ デ
、 合 場 い な い て れ さ 義 定 が
値
。 る
れ =4Dフォーマットの番号(0〜 8)
>
/ e m it
<
。 グ タ る れ ら え 換 き 置 で 刻 時 在 現
: 性 属
・format:時刻表示に使用する4Dフォーマット。フォーマット さ 用 使 が ト ッ マ ー ォ フ の ト ル ォ フ デ
、 合 場 い な い て れ さ 義 定 が
値
。 る
れ =4Dフォーマットの番号(0〜 6)
>
/ d r a o b p il c
<
。 グ タ る れ ら え 換 き 置 で 容 内 の ド ー ボ プ ッ リ ク
: 性 属
・index:ペーストするクリップボード。値=クリップボード
( 号
番 0〜9)
グ タ 素
要 説明
>
s o r c a m /
<
>
s o r c a m
< マクロファイルの開始と終了(必須タグ)
>
o r c a m /
<
>
o r c a m
<
性 属 の そ と 了 終 と 始 開 の 義 定 ロ ク マ
: 性 属
・name:メニューおよび「メソッド」エディタのリスト上に 名
ロ ク マ る れ さ 示
表 **(必須属性)
・type̲ahead̲text:先行入力機能*を用いたマクロ呼び出しの 列
字 文 る す 力 入 に
際 **
u n e m
̲ n
i :コンテキストメニュー*を用いたマクロ呼び出しが 値
。 値 ル ー ブ す 示 を か う ど か 能
可 = true (デフォルト)ま は
た false
・type̲ahead:先行入力機能*を用いたマクロ呼び出しが可能 値
。 値 ル ー ブ す 示 を か う ど
か = true (デフォルト)または e
s l a f
>
/ n o it c e l e s
< マクロ挿入時に選択テキストで置き換えられるタグ。選択範囲
。 い な わ 構 も で 空 は
>
t x e t /
<
>
t x e t
< メソッドに挿入しなければならない開始コードと終了コード。
。 る れ さ 加 追 が ン ー タ リ ジ ッ リ ャ キ は に 後 前 の ド ー コ
>
/ t e r a c
< コード上でのマクロ挿入後のカーソルポイントの位置
>
/ D 4
̲ r e s u
< カレント4Dユーザ名で置き換えられるタグ。
>
/ s o
̲ r e s u
< カレントシステムユーザ名で置き換えられるタグ。
>
/ e m a n
̲ d o h t e m
< カレントプロジェクトメソッド名で置き換えられるタグ。
マクロ定義の例を以下に示します。
マクロ内容 コメント
<macros> マクロ XML ファイルの開始
<macro name="RecordLoop"> マクロ定義の開始とマクロ名
<text> マクロコードの開始
For($i;1;Records in selection(<Selection/>)) <Selection/> タグは、マクロの挿入時に 4D SAVE RECORD(<Selection/>) メソッド内で選択したコードによって NEXT RECORD(<Selection/>) 置き換えられる(例:テーブル名)
End for
</text> マクロコードの終了
</macro> マクロ定義の終了
</macros> マクロ XML ファイルの終了
デフォルトでは、「メソッド」エディタのコンテキストメニューや先行入力機能、「メ ソッド」エディタウインドウの下側にある特定のリストを使用して、マクロを呼び出す ことができます。
マクロ毎に、コンテキストメニューや先行入力機能によるマクロ呼び出しを禁止できる 点に注意してください。
■ コンテキストメニュー
デフォルトでは、「メソッド」エディタのコンテキストメニューの「マクロ挿入」階層 コマンドを用いて、すべてのマクロを呼びだすことができます。<macro> タグの
「in̲menu」属性を使用して、このメニュー上にマクロを表示するかどうかを定義する ことができます。
コンテキストメニュー上では、「Macros.xml」ファイル内の順序でマクロが表示されま す。したがって、このファイルを修正すると表示順を変えることができます。
■ 先行入力
デフォルトでは、先行入力機能(前述の「先行入力機能」の節を参照)を使用して、
すべてのマクロにアクセスすることができます。入力したテキストは、マクロで置き 換えられます。
<macro> タグの「type̲ahead」属性を使用して、このタイプの操作からマクロを対象外 にすることができます。
注:マクロに <selection/> タグが含まれる場合、そのマクロは先行入力機能のポップアッ プウインドウ上に表示されません。
マクロと他のタイプのオブジェクトを区別するため、先行入力機能のポップアップウ インドウにおいてマクロ名は < > 記号で括られます。
■「メソッド」エディタのリスト
マクロは「メソッド」エディタのリスト上に表示することができます(前述の「リス トの表示とカスタマイズ」の節を参照)。マクロを呼びだすには、このリストからマク ロ名をダブルクリックします。
このリストから特定のマクロを除外することはできません。
4th Dimension 2003 では、データベースメソッドやプロジェクトメソッド、オブジェクト メソッド、およびトリガの読み込みと書き出しをファイル形式で行うことができます。
これらのコマンドは、「ファイル」メニューに含まれています。
「メソッド書き出し」コマンドを選択すると、標準の「ファイル保存」ダイアログボック スが表示され、ファイル名や保存場所、書き出しファイルのフォーマット(後述)を選 択することができます。
印刷時と同様に、メソッド書き出しの際にはコード構造が縮小されていても考慮されず、
コード全体が書き出されます。
「メソッド読み込み」コマンドを選択すると、「メソッド読み込み」ダイアログボックス が表示され、読み込むファイルを指定することができます。
読み込んだデータにより、メソッド内の選択部分のテキストが置き換えられます。読み 込まれたメソッドで既存のメソッドを置き換えるには、読み込みを実行する前にメソッ ド内容全体を選択しておきます。
注:読み込み/書き出し機能はマルチプラットフォーム対応です。MacOS 上で書き出さ れたメソッドは、Windows に読み込むことが可能で、その逆も同様です。4D は必要があ ればキャラクタの変換を行います。