Copyright: M.S.E. Ltd. and WACOM Co., Ltd. 1996 All Rights Reserved
Citation: dbMAGIC Ver.7 開発システム ヘルプファイル - M.S.E. Ltd. and WACOM Co., Ltd. 1996 All Rights Reserved


設定

「開発モード」と「実行モード」の環境を設定する値のデフォルトは、［設定］メニューを使用して変更するか、後述のファイルで直接変更できます。これらのファイル名のほとんどは、［設定／動作環境］を選択して、［動作環境］テーブルの該当欄で指定して変更できます。また、［設定］メニューのこのほかのユーティリティを使用して、それぞれの設定内容を直接変更できます。

dbMAGICは、インタフェースと操作環境についての情報をいくつかの構成ファイルに保存しています。これらの情報の一部はあらかじめ設定されていますが、ユーザが設定できる領域もあります。基本となる構成ファイルは、“MAGIC.INI”です。“MAGIC.INI”には、ほかの構成ファイルへのポインタも含まれています。“MAGIC.INI”とほかの構成ファイルについては、「16.2　MAGIC.INIファイル」で説明します。

dbMAGICのすべての構成情報は、dbMAGICを起動するときにコマンドラインから動的に更新できます。“MAGIC.INI”に物理的に書き込まれているパラメータとコマンドラインから入力するパラメータの関係については、「16.3　コマンドラインのオプション」で説明します。

設定メニュー

以下に、［設定］メニューのテーブルを示します。

テーブル	内容
アプリケーション	［アプリケーション］テーブルの編集
動作環境	dbMAGICの構成可能な環境設定
基本色	dbMAGICのシステム画面とアプリケーションの色設定
フォント	dbMAGICのフォント定義
キーボード割付	変更可能なdbMAGICのキーボードインタフェース
サーバ	使用可能なリモートのdbMAGICのホストサーバのパラメータ（クライアント／サーバ用）
通信ゲートウェイ	使用可能な通信ドライバ
DBMS	使用可能なデータベースのゲートウェイ
データベース	使用可能な物理データベース
論理名	論理名の定義
言語	使用可能な多言語サポート
プリンタ	dbMAGICの論理プリンタ
プリンタ属性	論理プリンタ属性と実際の印刷制御コードとの関係を定義
シークレット名	保護されたアクセスキーとそのほかの安全な名前
ユーザグループ	セキュリティのためのユーザのカテゴリの定義
ユーザID	セキュリティのための各ユーザの定義
ログオン（ダイアログ）	ユーザID、パスワード、日付の入力

［設定］メニューのメニュー項目には、アプリケーションがオープンしていないときにだけ使用できるものと、スーパーバイザとしてログオンしたときにだけ使用できるものがあります。


アプリケーション

［アプリケーション］テーブルは、開発時と実行時に使用できるアプリケーションの一覧を保守するために使用します。dbMAGICでは、開発時または実行時に、複数のアプリケーションにアクセスできます。開発者は、これらのアプリケーションを［アプリケーション］テーブルに登録します。そのあと、このテーブルのアプリケーションの一覧が［アプリケーション一覧］またはアプリケーションメニュー（有効な場合）に表示されます。この一覧の中からアプリケーションを選択して、アプリケーションの開発または実行時のセッションを開始できます。

このテーブルの入力データは、既存のアプリケーションまたはこれから開発するために新しく宣言されたアプリケーションです。

アプリケーションの宣言は、“MAGIC.INI”の［MAGIC_SYSTEMS］セクションに格納されます。

［設定／アプリケーション］テーブルの設定欄

名前	DBMS
識別子	データベース
CTLファイル	アプリケーション特性
RPRファイル


名前

この欄には、アプリケーションの名前を入力します。この名前は、［アプリケーション一覧］に表示されます。開発時または実行時にアプリケーションをオープンすると、ステータス行にもこの名前が表示されます。

アプリケーション名は、一意に付けてください。２つのアプリケーションに同じ名前を付けることもできますが、これは、開発時、保守時、実行時に混同する可能性があります。

注意： 「名前」にはカンマは使用できません。カンマは、“MAGIC.INI”で区切り記号として予約されています。

［＃］欄には、自動生成された連続番号が表示されます。カーソルは、この欄には止まりません。


識別子

アプリケーション識別子として使用される２文字の英字コードです。アプリケーションに関連するファイルのデフォルト名は、すべてこの識別子を使用して作成されます。

このアプリケーションに関連するファイルとは、アプリケーション制御（CTL）ファイル、レポートファイル、すべてのデータファイルです。以下に、例を示します。

識別子	dbMAGIC作成のファイル名	ファイルの内容
pp	ppCTL.DAT	すべてのアプリケーション定義を保持するdbMAGICのアプリケーション制御ファイル
pp	ppRPR.DAT	すべてのレポート定義を含むエンドユーザのレポートファイル
DM	DMFIL001.DAT	［ファイル辞書］の最初のデータファイル

識別子には、すべてのアプリケーションファイルが存在する（または作成される）ところを示すデフォルトの位置指定（つまり、（サーバ）パス名）を入れることもできます。位置を指定しないと、アプリケーションファイルはカレントディレクトリでオープンされます。

以下に、例を示します。

識別子	位置
DM	カレントディレクトリ
C:\APPL\DM	Windows上のドライブC:のディレクトリAPPL
(NT)DM	dbMAGICアプリケーション用のサーバとして機能するWindows NTサーバ

制御（CTL）ファイルまたはレポート（RPR）ファイルのデフォルト名を無効にする場合は、以下の「CTLファイル」と「RPRファイル」を参照してください。データファイルのデフォルト名は、［ファイル辞書］で書き換えることができます。


CTLファイル

アプリケーション制御（CTL）ファイルのファイル名と位置を明示的に指定します。この欄は、識別子に基づいて作成されたデフォルトのファイル名を無効にします。制御ファイルには、その辞書も含めたすべてのアプリケーションの構成要素が含まれています。アプリケーションごとに専用のCTLファイルがあります。この欄を空白にすると、アプリケーション制御ファイルの名前は“ppCTL.DAT”となります。ppは、［識別子］欄で指定した識別子です。［CTLファイル］欄に指定する名前には、以下の書式で位置を指定できます。

　（サーバ）パス名

　　　サーバ … dbMAGICのホストデータベースサーバの名前をかっこで囲みます。このサーバは、後述の［設定／サーバ］テーブルの中のサーバ名です。

　　　パス名 … アプリケーション制御（CTL）ファイルが存在する（または、作成される）ディレクトリ名です。

［CTLファイル］欄でズームすると、Windowsの［ファイルを開く］ダイアログがオープンします。


RPRファイル

レポートファイルのファイル名と位置を指定します。レポートファイルには、エンドユーザのレポートジェネレータによって作成されたレポート定義が含まれます。この欄を空白にすると、レポートファイル名は“ppRPR.DAT”となります。ppは、［識別子］欄で指定した識別子です。［RPRファイル］に指定する名前には、以下の書式で位置を指定できます。

　（サーバ）パス名

　　　サーバ … dbMAGICのホストデータベースサーバの定義をかっこで囲みます。このサーバは、後述の［設定／サーバ］テーブルの中のサーバ名です。

　　　パス名 … RPRファイルが存在する（または作成される）ディレクトリ名です。

［RPRファイル］欄でズームすると、Windowsの［ファイルを開く］ダイアログがオープンします。

エンドユーザのレポートファイル（RPR）は、マルチユーザファイルではありません。このため、各ユーザは、RPRファイルのコピーをそれぞれ用意してください。マルチユーザ環境で動作させる場合は、［設定／アプリケーション］で、RPRファイル名がユーザごとに異なるように設定してください。これは、開発環境と実行環境の両方に当てはまります。


DBMS

このアプリケーションのデフォルトとして使用するデータベース管理システム（DBMS）の名前です。dbMAGICアプリケーションは、異なるDBMSによって作成された複数のファイルに同時にアクセスできます。この欄では、アプリケーションがデフォルトで使用するDBMSを設定します。dbMAGICは、データ項目に最適な格納形式を決定したり、適切なデータベースをファイルの宛先として指定したりするときに、DBMS情報を使用します。このDBMSは、CTLファイルとRPRファイルを格納するのにも使用されます。各データファイルを格納するのに使用するデフォルトのDBMSは、［ファイル辞書］で変更できます。この欄には、［DBMS］テーブル（下記参照）をもとに作成された一覧に表示されているDBMS名しか指定できません。起動されたゲートウェイだけが、一覧に表示されます。

使用できるDBMSの一覧を表示するには、［編集／ズーム］（｛F5｝）を選択します。


データベース

アプリケーションファイルを保存する物理データベースへのアクセス情報です。デフォルトのデータベース名には、［動作環境］ダイアログの［デフォルトデータベース］パラメータの設定が使用されます。アプリケーションファイルに異なるデータベースを選択するには、［データベース］欄から［編集／ズーム］を選択し、［データベース一覧］をオープンします。［データベース一覧］には、システムで使用されるアプリケーションに選択されたDBMSタイプのすべてのデータベースが表示されます。一覧から目的のデータベースを選択します。

［DBMS］欄に「Unknown」と表示された場合は、目的のデータベースゲートウェイモジュールがロードされていません。アプリケーションに合ったデータベースゲートウェイを最初にロードしないでアプリケーションをオープンしようとしても、オープンできません。

データベースについての詳細は、「設定／データベース」を参照してください。

注意： ［DBMS］欄を使用して、必要なデータベースゲートウェイへ接続します。データベースゲートウェイは、ファイル定義に必要なすべての記憶情報を保存します。［データベース］欄には、実行時に物理ファイルへのアクセス情報が表示されます。


アプリケーション特性

アプリケーションテーブルのすべての項目には詳細情報があり、［アプリケーション特性］ダイアログを使用して表示します。この情報を、アプリケーションのCTL特性と混同しないように注意してください。CTL特性は管理的な機能を備えています（第24章「アプリケーション（CTL）特性」を参照）。［アプリケーション特性］ダイアログにアクセスするには、画面の下部の［特性］ボタンにカーソルを移動してクリックします。

関連項目

アクセスキー


アクセスキー

この欄には、アプリケーション制御（CTL）ファイルにアクセスするたびに使用するパスワードを指定します。アクセスキーの内容は、ファイルのセキュリティを実際に処理する、もとになるデータベースのセキュリティ機構に渡されます。アプリケーション制御ファイルにアクセスキーが指定されている場合、外部アプリケーションやほかのdbMAGICシステムから更新のためにそのファイルにアクセスするときには、ファイルにアクセスするプログラムは同じアクセスキーを指定する必要があります。外部プログラムがアクセスキーを指定しないと、もとになるデータベースがアプリケーション制御ファイルへのアクセスを阻止します。また、アクセスキーは、アプリケーション制御ファイルを暗号化する暗号化キーとしても使用します。

［アプリケーション］テーブルの編集が終了すると、dbMAGICは項目のアクセスキーに変更がないかどうかを確認します。変更があった場合は、アクセスキーの追加または修正の確認メッセージが表示されます。確認すると、新しいアクセスキーの値を使用して、アプリケーション制御ファイルはすぐに暗号化されます。

注意： この機能の内容は、もとになるデータベースのサポート内容によって異なります。

注意： アプリケーションテーブルは安全保護されていない“MAGIC.INI”に保存されるため、アクセスキーにはシークレット名を使用する必要があります。シークレット名を使用すれば、権利のないユーザからアクセスキーの内容を保護できます。シークレット名についての詳細は、第12章「使用権利」を参照してください。


動作環境

［動作環境］テーブルには、再構成できるグローバルなdbMAGICの設定がすべて含まれています。これらの内容は、“MAGIC.INI”の[MAGIC_ENV]セクションにあります。［動作環境］テーブルの各パラメータは、インストールしたdbMAGICを各ユーザのニーズに合わせてカスタマイズするのに使用します。［動作環境］テーブルの各パラメータを変更すると、その変更内容はすべて”MAGIC.INI”に登録されます。パラメータには、変更結果がすぐに有効となるものと、dbMAGICの次のセッション（次に起動したとき）から有効となるものがあります。

注意： dbMAGICの［動作環境］テーブルのパラメータは、オペレーティングシステムの「環境変数」とは関係がありません。

dbMAGICがコマンドラインのパラメータと共に起動されている場合、［動作環境］テーブルに表示される値は、コマンドラインのパラメータを反映した値になります。コマンドラインのオプションは、“MAGIC.INI”の値より優先されます。ただし、開発セッション中に［動作環境］テーブルを修正すると、“MAGIC.INI”は自動的に更新され、対応するコマンドラインの値も書き換えられます。

コマンドラインの影響についての詳細は、この章の「16.3 コマンドラインのオプション」を参照してください。以下では、［動作環境］テーブルのすべてのパラメータについて説明します。この章の最後の表に、［動作環境］パラメータとそれに対応する「MAGIC.INIとコマンドライン名」を一覧します。

テーブル内のパラメータを編集する方法は、パラメータごとに異なります。メッセージ行に［ズーム］インジケータが表示されている場合は、［編集／ズーム］（｛F5｝）を選択するか、マウスでパラメータをクリックすれば、選択項目の一覧またはWindowsの［ファイルを開く］ダイアログがオープンします。次に、一覧から項目を選択します。複数の項目から選択して設定するパラメータの場合は、コンボボックスの標識をクリックすればコンボボックスがオープンし、表示された選択項目の１つを選択できます。エディットコントロールを含むパラメータ、つまり、パス名を含むパラメータなどの場合は、可変長のテキスト値を直接入力できます。

注意：以下の各パラメータの説明では、パラメータ名の隣にデフォルト設定をかっこで囲んで示します。

オーナー名	西暦基準年
日付タイプ	バッチ再表示秒数
ＭＡＧＩＣ日付	範囲／位置付・ポップアップ秒数
ユーザID	ソート／一時用ポップアップ秒数
パスワード入力	キーボード休止秒数
日付入力	プルダウンメニュータイムアウト
デフォルトアプリケーション	サーバ通信間隔
開始プログラム	自動終了時確認
開始プログラム実行	修正モードでの登録許可
終了プログラム実行	照会モードでの修正許可
アプリケーション起動モード	タスクフロー変更
端末番号	コピーライトメッセージ表示
マルチユーザアクセス	実行時のカスタムコピーライト
デフォルトデータベース	編集テーブルボタン表示
ソート／一時用データベース	”MAGIC.INI”常駐
CTLリカバリ	GUI実行時ツールバー
データリカバリ	GUI変換ファイル
デッドロック防止	起動時タスク常駐
並行開発	常駐ファイル読込
３桁区切文字	最大キャッシュサイズ
小数点	SQLメッセージの詳細表示
日付区切文字	カーソルの画面中央位置付け
時刻区切文字	修正後の再位置付
スクリーンモードプロンプト

以下のパラメータは、まとまって［設定］メニュー項目のアクセス許可を制御します。「Yes」に設定すると、エンドユーザの対応する［設定］メニューの項目へのアクセスが許可され、実際にアクセスできるかどうかはdbMAGICの作業状態に依存します。「No」に設定すると、対応する［設定］メニューの項目へのアクセスは、常に無効になります。

アプリケーションテーブル表示	データベーステーブル表示
動作環境テーブル表示	論理名テーブル表示
基本色テーブル表示	言語許可
フォントテーブル表示	プリンタテーブル表示
キーボード割付テーブル表示	プリンタ属性テーブル表示
サーバテーブル表示	ログオン許可
通信ゲートウェイテーブル表示	開発モード許可
DBMSテーブル表示

以下のパラメータは、まとまってファイル名を指定します。これらのパラメータには、完全な位置情報を指定できます。位置情報（ドライブ名、パス名）を指定しないと、dbMAGICはファイルをカレントディレクトリで検索します。これらのファイルには、必須のものと省略できるものがあります。必須ファイルが指定されたディレクトリにないと、ロードされません。

ロゴファイル	開始時セキュリティファイル
CONSTファイル	ネイティブ変換ファイル
ヘルプファイル	照合順序ファイル
ユーザエディタ	多言語サポートファイル
基本色定義ファイル	一時ファイルパス
フォント定義ファイル	立体効果
キーボード割付ファイル	最大ファイル数
ドキュメントテンプレートファイル	コマンドプロセッサ
プリンタ属性ファイル	ロックファイル
セキュリティファイル	ファイルアクセス


オーナー名

dbMAGICアプリケーションのオーナー名を含む30文字までの文字列です。この値は、［フォーム］上とレポート内で表示するためにOWNER関数（「18.5 関数一覧（ABC順）」を参照）で照会できます。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　Owner


日付タイプ
日付タイプ（J=日本）

有効値：　Ａ＝アメリカ、Ｅ＝ヨーロッパ、Ｊ＝日本

このパラメータは、システム全体で使用する日付表示のデフォルトのタイプを指定します。たとえば、「1995年2月1日」の各タイプの書式は、以下のようになります。

「Ａ＝アメリカ」の日付書式はMM/DD/YYで、02/01/95と表示されます。

「Ｅ＝ヨーロッパ」の日付書式はDD/MM/YYで、01/02/95と表示されます。

「Ｊ＝日本」の日付書式はYY/MM/DDで、95/02/01と表示されます。

日付項目の表示と入力の書式についての詳細は、「3.4 書式」を参照してください。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　DateMode


ＭＡＧＩＣ日付

dbMAGICでは、２つの日付パラメータにアクセスできます。１つはオペレーティングシステムの日付で、「システム日付」と呼ばれます。もう１つはユーザが入力する日付で、dbMAGICによって格納されます。これが、「ＭＡＧＩＣ日付」です。デフォルトでは、ＭＡＧＩＣ日付はシステム日付と同じです。ＭＡＧＩＣ日付は、MDATE関数（「18.5 関数一覧（ABC順）」を参照）で照会できます。このパラメータは、［ログオン］ダイアログでも変更できます。

ＭＡＧＩＣ日付は、プログラムの実行に過去または未来の日付を使用する必要があるときに設定します。設定すると、ＭＡＧＩＣ日付は“MAGIC.INI”に格納されます。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　Date


ユーザID

このパラメータには、現在のdbMAGICオペレータのIDが表示されます。このIDは、ユーザのパスワードと共に、ユーザのアクセス権とアプリケーション内での特権を確認するのに使用されます。このパラメータは、アプリケーション内ではUSER関数（「18.5 関数一覧（ABC順）」を参照）で照会できます。［ユーザID］パラメータは、［ログオン］ダイアログボックスでも変更できます。

MAGIC.INIとコマンドラインでの名前：　なし


パスワード入力
パスワード入力（No）

有効値：　「Yes」または「No」

「Yes」に設定すると、ログオン時に、［ログオン］ダイアログボックスに［ユーザID］と［パスワード］を入力するように要求するプロンプトが表示されます。

「No」に設定すると、ログオン時に、［ログオン］ダイアログボックスに［ユーザID］と［パスワード］を入力するように要求するプロンプトが表示されません。

変更内容：　次のセッションから有効

MAGIC.INIとコマンドラインでの名前：　InputPassword


日付入力
日付入力（No）

有効値：　「Yes」または「No」

「Yes」に設定すると、ログオン時に、［ログオン ］ダイアログボックスに［日付］を入力するように要求するプロンプトが表示されます。この日付は、上記のＭＡＧＩＣ日付です。

「No」に設定すると、日付はログオン時の［ログオン］ダイアログボックスに表示されません。

変更内容：　次のセッションから有効

MAGIC.INIとコマンドラインでの名前：　InputDate


デフォルトアプリケーション

dbMAGICの起動時に自動的に開始するアプリケーションの［アプリケーション一覧］での番号です。dbMAGICの起動時に有効なアプリケーション番号が見つかると、スタートアップ画面は表示されないで、アプリケーションが自動的にオープンします。このパラメータは、通常、以下に説明する［開始プログラム］パラメータと共に使用します。

変更内容：　次のセッションから有効

MAGIC.INIとコマンドラインでの名前：　StartApplication


開始プログラム

［デフォルトアプリケーション］パラメータを使用してアプリケーションを自動的にオープンするときに実行されるプログラムの番号です。この番号には、［プログラム辞書］の「＃」欄に表示されている有効なプログラムの番号を指定します。開始プログラムは、［CTL特性］ダイアログで開始プログラム（「24.1 CTL特性ダイアログ」を参照）が指定されている場合には、そのあとで実行されます。このパラメータは、［デフォルトアプリケーション］が指定されていない場合には無効です。開始プログラムは、アプリケーションが実行モードでオープンされた場合にだけ実行されます。dbMAGICの実行システムは、常に実行モードでオープンされます（下記の「アプリケーション起動モード」を参照）。開始プログラムが終了すると、通常の操作モードで再開します。

通常、［開始プログラム］パラメータは、dbMAGICの起動時に通常のメニュー手順を実行しないで特定のプログラムを自動的に呼び出すのに使用します。

変更内容：　次のセッションから有効

MAGIC.INIとコマンドラインでの名前：　StartProgram


開始プログラム実行
開始プログラム実行（No）

有効値：　「Yes」または「No」

「No」に設定すると、［CTL特性］ダイアログで開始プログラムとして定義されているプログラムが実行されません。

「Yes」に設定すると、アプリケーションをオープンした直後に、［CTL特性］ダイアログで開始プログラムとして定義されているプログラムが実行されます。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　ExecStartPrg


終了プログラム実行
終了プログラム実行（No）

有効値：　「Yes」または「No」

「No」に設定すると、［CTL特性］ダイアログで終了プログラムとして定義されているプログラムが実行されません。

「Yes」に設定すると、アプリケーションをクローズする直前に、［CTL特性］ダイアログで終了プログラムとして定義されているプログラムが実行されます。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　ExecEndPrg


アプリケーション起動モード
アプリケーション起動モード（Ｔ＝開発）

有効値：Ｔ＝開発、Ｒ＝実行、またはＢ＝バックグラウンド

このパラメータでは、アプリケーションをオープンするときにdbMAGICが使用するモードを定義します。以下に、指定できるモードを示します。

Ｔ＝開発 … アプリケーションを開発作業用にオープンします。この設定は、dbMAGICの実行システムでは無効です。

Ｒ＝実行 … アプリケーションを実行用にオープンして、エンドユーザと同じように使用できるようにします。

Ｂ＝バックグラウンド … このモードでは、ユーザと対話しないでバッチプログラムを実行できます。実行されるプログラムは、［デフォルトアプリケーション］の［開始プログラム］です。バックグラウンドモードでは、dbMAGICはウィンドウを表示しないで、プログラムをサイレントモードで実行します。テキストベースのアプリケーションの場合にだけ、プログラムがバックグラウンドモードで実行中にエラーが発生したときに、エラーメッセージがオペレーティングシステムの標準出力デバイスに書き込まれます。プログラムが終了すると、制御はオペレーティングシステムに戻ります。

［アプリケーション起動モード］パラメータは、［デフォルトアプリケーション］パラメータと［開始プログラム］パラメータによって決まります。

変更内容：　次のセッションから有効

MAGIC.INIとコマンドラインでの名前：　ApplicationStartup


端末番号
端末番号（０）

このパラメータは、マルチユーザ環境の場合に関係します。これは、各エンドユーザの端末に一意の数値識別子を割り当てるのに使用します。このパラメータは、プログラム内からTERM関数（「18.5 関数一覧（ABC順）」を参照）を使用して照会できます。端末番号の値は、ディスクファイルなどのユーザに特有のリソースを作成する必要があるときに、プログラムで使用できます。端末番号を使用して、ユーザに特有のリソース名を生成します。

［端末番号］パラメータのデフォルト値「０（ゼロ）」は、dbMAGICに一意のリソース割り当てを自動的に解析するように指示します。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　Terminal


マルチユーザアクセス
マルチユーザアクセス（No）

有効値：　「Yes」または「No」

「Yes」に設定すると、データベースの一貫性を保ちながらファイルの共用が許可され、すべてのデータベースファイルへのアクセスに並行処理制御が実行されます。

「No」に設定すると、すべてのファイルが排他的にオープンされ（タスクの［ファイルオープン］モードが無効になります）、ほかのワークステーションからのアクセスがすべて排除されます。通常、この設定では、ファイルアクセスに関して性能が向上しますが、通常の処理中に致命的なエラーが発生した場合に、ファイルが破損する可能性が高くなります。

マルチユーザ環境についての詳細は、「14.3 マルチユーザ環境の設定」を参照してください。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　MultiUser


デフォルトデータベース

dbMAGICがシステムのデフォルトとして使用するデータベースの名前です。このデフォルトは、アプリケーション、レポートファイル、データベースファイルに使用され、それぞれのレベルで変更ができます。この名前は、システムの［データベース］テーブルに定義されたデータベースの中から選択してください（この章の「設定／データベース」を参照）。使用できるドライバを示す［データベース一覧］を表示するには、［編集／ズーム］（｛F5｝）を選択します。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　DefaultDatabase


ソート／一時用データベース

一時的に記憶する必要があるソートファイルまたはそのほかのデータベースの一時ファイル（埋め込みSQL結果ファイルなど）を作成するために使用するデータベース名です。たとえば、もとのファイルが従来のディスクベースのデータベースに記憶されている場合、記憶装置にメモリ（RAMディスク）を使用する高速のISAMデータベースを使用すると、ソートをすばやく実行できます。このデータベース名は、システムの［データベース］テーブルに定義されたデータベースの中から選択してください（この章の「設定／データベース」を参照）。使用できるデータベースを示す［データベース一覧］を表示するには、［編集／ズーム］（｛F5｝）を選択します。

注意： ソートファイルのデータベースの位置が［設定／データベース］の［位置］パラメータで設定されている場合には、常にそれが使用されます。［ソート／一時用データベース］パラメータで設定されたパス名が使用されるのは、［設定／データベース］の［位置］が空欄の場合だけです。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　TempDatabase


CTLリカバリ
CTLリカバリ（Yes）

有効値：　「Yes」または「No」

「Yes」に設定すると、開発中のアプリケーションのCTLファイルへのアクセスがトランザクションによって保護されます。つまり、重大なエラーが発生して開発セッションが異常終了した場合に、アプリケーションのCTLファイルは損傷を受けず、CTLファイルに対して実行した処理は、エラーが発生する前にディスクに書き込まれなかった最後の変更を除いてすべて保存されます。この機能は、ディスクの誤動作などからはアプリケーションのCTLファイルを保護しませんから、CTLファイルを定期的にバックアップをするようにしてください。

並行開発を使用するときは、［CTLリカバリ］を（次のセッションで）「Yes」に設定してください。［並行開発］パラメータを「Yes」に設定すると、このパラメータも自動的に「Yes」に設定されます。

「No」に設定すると、アプリケーションの［CTLファイル］の更新はトランザクションによって保護されません。

アプリケーションのCTLファイルの更新にトランザクションを使用すると、開発時の処理能力が低下します。トランザクションはファイルの更新時に多くのオーバヘッドを必要とするため、CTLファイルの更新速度が遅くなります。

変更内容：　次のセッションから有効

MAGIC.INIとコマンドラインでの名前：　CtlRecovery


データリカバリ
データリカバリ（No）

有効値：　「Yes」または「No」

「Yes」に設定すると、アプリケーションのデータファイルの更新時にトランザクション処理が行われます。プログラム内では、トランザクションの適用範囲は開発者によって決定されます。詳細については、第23章「トランザクション処理」を参照してください。

「No」に設定すると、アプリケーションのデータファイルのすべての更新に対してトランザクション処理が使用できません。この設定は、プログラム内でのすべてのトランザクション要求を無効にします。

トランザクションは、データの一貫性を非常に高いレベルに保ちます。しかし、通常、トランザクションではすべての更新をディスクに２回書き込むために、処理能力が低下します。トランザクションを使用しても、ディスクの誤動作による損傷は避けられません。このため、データファイルを定期的にバックアップしてください。

通常、dbMAGICは、もとになるデータベースのサービスをトランザクション処理で使用します。したがって、トランザクション処理のサポートレベルは、もとになるデータベースによって決まります。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　DataRecovery


デッドロック防止
デッドロック防止（No）

有効値：　「Yes」または「No」

dbMAGICには、デッドロック防止機構が組み込まれています。この機構は、デッドロックの検出や防止機能を備えていないISAMタイプのデータベースに実行されます。デッドロック状態とは、２人のユーザが互いに相手が保有しているリソースを待っている状況を示します。たとえば、以下のような場合です。

ステーションA	ステーションB
ファイルXをロック	ファイルYをロック
ファイルYを読み込もうとしている	ファイルXを読み込もうとしている

ステーションAはファイルXを保有しており（トランザクション中）、ステーションBが保有するファイルYを読み込もうとしています。ステーションBはそれとは正反対のことを行おうとしています。

このパラメータを「Yes」に設定すると、このようなデッドロックが防止されます。

「No」に設定すると、デッドロックを防止する処理が行われません。

検出または防止機能が組み込まれていないデータベースの場合は、［デッドロック防止］を「Yes」に設定することをお勧めします。しかし、デッドロック防止を使用すると、処理能力が低下します。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　DeadlockPrevent


並行開発
並行開発（No）

有効値：　「Yes」または「No」

「Yes」に設定すると、アプリケーション制御（CTL）ファイルに対して並行制御が実行され、複数の開発者が同じCTLにアクセスできます。

「No」に設定すると、シングルユーザアクセスで、アプリケーション制御（CTL）ファイルにアクセスします。この場合、CTLに対して排他ロックが発行されます。並行開発を無効（「No」に設定）にしてCTLをオープンすると、ほかの開発者は自分の［並行開発］パラメータ設定に関係なく、同じCTLにはアクセスできません。ある開発者が並行開発を有効にしてCTLを使用している場合でも、並行開発を無効にしている開発者がそのCTLにアクセスすると、アクセスは拒否されます。

すべての開発者が同じアプリケーション制御ファイルに同時にアクセスするときは、［並行開発］を「Yes」に設定してください。［並行開発］を「Yes」に設定すると、［CTLリカバリ］と［マルチユーザアクセス］は強制的に「Yes」になります。

１人の開発者がアプリケーションを使用する場合は、［並行開発］を「No」に設定すると処理能力が向上します。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　ConcurentDevelopment


３桁区切文字
３桁区切文字（，）

このパラメータでは、表示される数値項目の３桁区切り記号として実行時に使用される文字を定義します。デフォルトの文字は、カンマ（,）です。開発モードでは、このパラメータの設定に関係なく、カンマが書式定義の３桁区切りとして使用されます。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　ThousandSeparator


小数点
小数点（．）

このパラメータでは、表示される小数を含む数値項目で、整数部分と小数部分の区切り記号として実行時に使用される文字を定義します。デフォルトの文字は、ピリオド（.）です。開発モードでは、このパラメータの設定に関係なく、ピリオドが書式定義の小数点として使用されます。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　DecimalSeparator


日付区切文字
日付区切文字（／）

このパラメータでは、表示される日付項目の年、月、日を区切る記号として実行時に使用される文字を定義します。日付部分の位置は、上記の［日付タイプ］パラメータで定義されます。開発モードでは、このパラメータの設定に関係なく、スラッシュ（/）が書式定義の日付区切り文字として使用されます。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　DateSeparator


時刻区切文字
時刻区切文字（：）

このパラメータでは、表示される時刻項目の時、分、秒を区切る記号として実行時に使用される文字を定義します。デフォルトの文字は、コロン（:）です。開発モードでは、このパラメータの設定に関係なく、コロンが書式定義の時刻区切り文字として使用されます。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　TimeSeparator


スクリーンモードプロンプト
スクリーンモードプロンプト（：）

このパラメータでは、スクリーンモードのフォームでの項目のプロンプトのデフォルトを設定します。パラメータの値の構文を以下に示します。

接尾語

接尾語は、変数名と変数の間に挿入される文字列です。たとえば、書式が［N,5］である［顧客番号］という変数の場合、このパラメータの設定と表示されるスクリーンモードプロンプトは、以下のようになります（スペース文字は「^」で示します）。パラメータ区切り文字のうしろの空白は削除されます。そのため、パラメータ値の最初の文字に空白が必要な場合は、最後の例のように、円記号（\）を使用して明示的に示す必要があります。

スクリーンモードプロンプト	フォームの表示
:^	顧客番号:^[#####]
:	顧客番号:#####
\^:^	顧客番号^:^#####

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　ScreenModePrompt


西暦基準年
西暦基準年（1920）

このパラメータでは、日付項目の書式（YY/MM/DDなど）で、２桁の年部分に対して日付入力を正しく解釈できるようにします。このパラメータには、日付項目を解釈するときに、２つの世紀の分岐点となる年を指定します。［西暦基準年］パラメータに設定した２桁の年値よりも入力した年値の方が小さい場合は、21世紀の日付として解釈されます。［西暦基準年］パラメータに設定した年値と入力した値が等しいかまたは大きい場合は、20世紀の日付として解釈されます。以下に、例を示します。

西暦基準年＝1960の場合：

「70/01/20」は、「1970/01/20」と解釈されます。

「50/01/20」は、「2050/01/20」と解釈されます。

西暦基準年＝1980の場合：

「70/01/20」は、「2070/01/20」と解釈されます。

「50/01/20」は、「2050/01/20」と解釈されます。

「90/01/20」は、「1990/01/20」と解釈されます。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　Century


バッチ再表示秒数
バッチ再表示秒数（ミリ）

バッチタスク実行中にdbMAGICの画面を再表示する間隔です。このパラメータは、画面に情報を表示するバッチタスクの処理能力を大幅に向上させます。タスクをアボートできるようにするため、再表示時刻には終了キーもチェックします。バージョン4.xと同じようにすべてのレコードをチェックさせるには、このフラグを「０」に設定します。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　BatchPaintTime


範囲／位置付・ポップアップ秒数
範囲／位置付・ポップアップ秒数（10）

このパラメータでは、［範囲］または［位置付］のポップアップウィンドウが最初に表示されてから更新までの表示時間（秒数）を設定します。［範囲］または［位置付］ポップアップウィンドウは、データベースファイルで逐次検索処理が実行されるたびに表示されて、検索されたレコードの数を表示します。このフラグを「０」に設定すると、ウィンドウは表示されなくなります。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　RangePopTime


ソート／一時用ポップアップ秒数
ソート／一時用ポップアップ秒数（10）

このパラメータは、［ソート／一時用］ポップアップウィンドウが最初に表示されてから更新されるまでの表示時間（秒数）を設定します。ソート処理時のポップアップウィンドウは、データベースファイルでソート処理が行われるたびに表示されて、ソートされたレコードの数を表示します。このフラグを「０」に設定すると、ウィンドウは表示されなくなります。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　SortPopTime


キーボード休止秒数
キーボード休止秒数（10）

このパラメータでは、キーボード操作がないときの休止信号間の時間（秒数）を設定します。対話型のセッション中は、dbMAGICはユーザ入力を待ちます。ユーザ入力がない場合は、ほかの処理が実行できるように休止信号が出されます。［キーボード休止秒数］の値は、休止信号が出されるまでの非活動時間です。

注意： キーボードの非活動時間中は、「キーボード休止秒数」の値は、自動的に実行されるように設計されている処理と処理の最小間隔となります。たとえば、５秒経過後にイベントプログラムが実行されるようになっている場合に、「キーボード休止秒数」が「10」に設定されていると、キーボード非活動時間中にはイベントプログラムが10秒ごとに実行されます。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　IdelTime


プルダウンメニュータイムアウト
プルダウンメニュータイムアウト（０）

このパラメータでは、オープンしているプルダウンメニューをユーザが処理（選択やクローズ）を行うまでオープンしておくか、一定時間経過後に自動的にクローズするかを設定します。このパラメータは、プルダウンメニューを表示する時間を秒単位で指定します。このパラメータを０に設定すると、プルダウンメニューは、ユーザが次の処理を実行するまで表示されます。

０以外の値を設定すると、ユーザが処理を実行しなければ、プルダウンメニューは指定された秒数が経過すると自動的にクローズします。

プルダウンメニューがオープンすると、システム内のほかのプロセス（イベントなど）は実行を停止します。ほかのプロセスを停止させない場合は、［プルダウンメニュータイムアウト］欄に「０」以外の値を設定してください。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　MenuCloseTimeout


サーバ通信間隔
サーバ通信間隔(0)

dbMAGICは、クライアント／サーバによってアクセスされているファイルを管理しているすべてのdbMAGICサーバとの間で、通信チェックを行っています。このパラメータでは、その通信チェックの時間間隔を秒単位で指定します。

dbMAGICサーバは、以前定義された非活動タイムアウトが発生したあと、クライアントに対してサービスを行っているプロセスを停止させます。このパラメータの値をdbMAGICサーバのタイムアウト値と同じにすると、サーバがタイムアウトする前に通信チェックが実行されます。パラメータの値を「０」にすると、通信チェックは実行されません。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　ServerTimeout


自動終了時確認
自動終了時確認（No）

有効値：　「Yes」または「No」

このパラメータでは、「変更保存しますか？」確認ダイアログの表示について設定します。dbMAGICのダイアログボックスのパラメータまたはテーブルの項目を修正したあとに、ダイアログまたはテーブルを終了するように（｛Esc｝）指示すると、確認を求める「変更保存しますか？」確認ダイアログが表示されます。終了動作が暗黙である場合もあります。たとえば、あるタスクの処理テーブルの編集時には、［開発／ファイル辞書］（｛Shift｝＋｛F2｝）を選択して［ファイル辞書］テーブルに切り換えます。この場合、dbMAGICは、タスクの処理テーブルから内部的な［終了］要求を受信します。すでに処理テーブルを修正している場合は、制御が［ファイル辞書］テーブルに渡される前に「変更保存しますか？」確認ダイアログが表示されます。このような内部的「終了」動作を、「自動終了」と呼びます。

「No」に設定すると、ユーザ要求による自動終了時に「変更保存しますか？」確認ダイアログは表示されません。このような場合、変更は割り込みなしで自動的に受け付けられます。

「Yes」に設定すると、ユーザ要求による自動終了時に「変更保存しますか？」確認ダイアログが表示されます。つまり、修正されたダイアログまたはテーブルごとに現在の内容（修正中のテーブルまたはダイアログ）と要求された内容について、ユーザに明示的な確認を要求します。たとえば、現在の内容が処理テーブルの編集中にオブジェクトとして呼び出されたタスクの［イベント］テーブルであり、［イベント］と［処理］の両方のテーブルが修正されているとします。この場合に、［開発／ファイル辞書］（｛Shift｝＋｛F2｝）を選択して［ファイル辞書］テーブル（要求した内容）を編集しようとすると、最初に［イベント］テーブルに対して「変更保存しますか？」確認ダイアログが表示され、次に［処理］テーブルに対して「変更保存しますか？」確認ダイアログが表示されます。この両方のダイアログに対する確認が受信された場合にだけ、［ファイル辞書］テーブルに進みます。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　ConfirmAutoExit


修正モードでの登録許可
修正モードでの登録許可（Yes）

有効値：　「Yes」または「No」

カーソルがレコード一覧の空行にくると、修正モードは自動的に登録モードに変わります。このパラメータを「Yes」に設定すると（デフォルト設定）、エンドユーザは新しいレコードを作成できます。「No」に設定すると、エンドユーザは新しいレコードを作成できません。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　AllowCreateInModify


照会モードでの修正許可
照会モードでの修正許可(No)

有効値：　「Yes」または「No」

照会モードでの処理でレコードの更新を許可します。これは、タスク内部での［項目更新］処理による更新にだけ関係し、エンドユーザのキーボードによる更新には関係しません。［照会モードでの修正許可］のデフォルト値は「No」で、レコードの更新は行われません。「Yes」に設定すると、照会モードでのレコード更新処理を許可します。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　AllowUpdateInQuery


タスクフロー変更
タスクフロー変更（Ｆ＝変更可）

有効値：　「Ｆ＝変更可」または「Ｓ＝変更不可」

このパラメータでは、タスクの［処理］テーブルの編集時のdbMAGICの動作を定義します。

「Ｆ＝変更可」に設定すれば、ユーザはすべての処理行を自由に修正できます。このモードでは、処理コードが誤って上書きされても、その処理のパラメータは空白にされます。変更可能モードでは、処理テーブルを高速に編集できます。

「Ｓ＝変更不可」に設定すると、処理コマンドのパラメータは変更できても、一度受け付けられた処理コマンドは修正できません。変更不可モードで処理コマンドを変更するには、変更する処理を削除してから、修正した処理を再入力する方法しかありません。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　FlowModify


コピーライトメッセージ表示
コピーライトメッセージ表示（Yes）

有効値：　「Yes」または「No」

このパラメータは、dbMAGICのコピーライトメッセージの表示を制御し、実行するアプリケーションをカスタマイズするために使用します。

「Yes」に設定すると、dbMAGICのコピーライトメッセージが表示されます。

「No」に設定すると、dbMAGICが開発システムか実行システムかに応じて、以下のようになります。

開発システムの場合、「Yes」の場合と違う点は、グラフィックロゴ（存在する場合）が表示されないことだけです。

実行システムの場合、ロード時、登録画面、ステータス行などで表示されるdbMAGICメッセージが表示されません。

注意： ［MAGIC情報］ダイアログのメッセージは、［実行時のカスタムコピーライト］を使用しなければ、dbMAGICのメッセージになります。

変更内容：　次のセッションから有効

MAGIC.INIとコマンドラインでの名前：　CopyrightMessages


実行時のカスタムコピーライト

このパラメータでは、dbMAGICの実行システムのユーザがアプリケーションを実行するときに表示されるテキストメッセージを設定します。このパラメータのテキストは、以下の位置に表示されます。

dbMAGICの登録ダイアログ。dbMAGICの起動直後にdbMAGICのコピーライトメッセージの代わりに表示されます。

［MAGIC情報］ダイアログ。dbMAGICのコピーライトメッセージの代わりに表示されます。

注意： コピーライトメッセージは、複数行にわたることがあります。メッセージテキスト内で改行を示すときは、"\"記号を使用してください。

変更内容：　次のセッションから有効

MAGIC.INIとコマンドラインでの名前：　RTUserCopyright


編集テーブルボタン表示
編集テーブルボタン表示（Yes）

有効値：　「Yes」または「No」

このパラメータでは、編集テーブルボタンの表示について設定します。編集テーブル、つまり編集できるテーブルは、dbMAGICでは特殊なタイプのダイアログです。dbMAGICは、これらのテーブルを２つの方法で表示できます。１つは、変更を受け付ける（［OK］）または取り消す（［取消］）、行を削除する（［削除］）または作成する（［登録］）という処理を表すボタンをテーブルに表示する方法です。もう１つはこれらのボタンを表示しない方法です。後者では、ウィンドウ全体にテーブルを表示できます。

ボタンは、ウィンドウの一番下の２行分に表示されます。ボタンを表示しない場合でも、［OK］、［取消］、［削除］、［登録］の機能は、メニューやキーボードコマンドを介して使用できます。

「Yes」に設定すると、テーブル形式のダイアログにボタンが表示されます。

「No」に設定すると、テーブル形式のダイアログにボタンが表示されません。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　ButtonMode


MAGIC.INI常駐
MAGIC.INI常駐（No）

有効値：　「Yes」または「No」

このパラメータでは、前に述べた“MAGIC.INI”の内容をメモリに常駐させるかどうかを設定します。「Yes」に設定すると、“MAGIC.INI”の内容はメモリに常駐します。常駐させると、“MAGIC.INI”変数への読み取りアクセスが速くなります。“MAGIC.INI”に対する更新は、ファイルが常駐していても直接ディスクに書き込まれます。

「No」に設定すると、“MAGIC.INI”に対して照会または更新を行うたびに、ディスクへの読み取りと書き込みが行われます。

変更内容：　次のセッションから有効

MAGIC.INIとコマンドラインでの名前：　ResidentINI


GUI実行時ツールバー
GUI実行時ツールバー（Yes）

有効値：　「Yes」または「No」

このパラメータでは、ツールバーの外観を制御します。「Yes」に設定すると（デフォルト設定）、ツールバーが表示されます。

「No」に設定すると、ツールバーは表示されません。

変更内容：　次のセッションから有効

MAGIC.INIとコマンドラインでの名前：　RtToolBarGUI


GUI変換ファイル

dbMAGICは、すべての内部ファイルおよびキーボードからの入力を表示するためにOEM文字セットを使用します。Windowsは、同じ目的でANSI文字セットを使用しますが、日本語環境では、OEM文字セットとANSI文字セットの定義間の変換が必要です。

［設定／動作環境］の［GUI変換ファイル］にファイル名を指定すると、そのファイルが［キーボード割付］テーブルとして使用されて、標準のWindows ANSI文字が日本語の文字に変換されます。日本語では、特殊文字をキーボードから入力するために変換ファイルが必要になります。

“WIN_KBD.XXX”は、各行16個の値を含む16行のテーブル２つから構成されます。それぞれの値はカンマで区切り、16進数で表記します。１つのテーブルはOEMからANSIへの変換を、もう１つのテーブルはANSIからOEMへの変換を表します。各項目は、ANSI文字テーブルの文字を表します（1～256）。各項目に示される値は、OEMテーブルの代替文字を指しています。

変更内容：　次のセッションから有効

MAGIC.INIとコマンドラインでの名前：　GUITranslationFile


起動時タスク常駐
起動時タスク常駐（No）

有効値：　「Yes」または「No」

このパラメータでは、常駐タスクの読み込み方法を制御します。「No」に設定すると、タスク、プログラム、イベントのメモリ上への読み込みは、必要になったときに初めて行われます。それ以降は、通常の常駐タスクとして存在します。

「Yes」に設定すると、dbMAGICのアプリケーションを起動したときに、常駐指定されているすべてのタスク、プログラム、イベントがメモリ上に読み込まれます。タスクの読み込みは、再帰的に行われます。つまり、あるプログラム１がサブタスクを持ち、そのタスクが常駐指定されていて、プログラム２を呼び出している場合は、このプログラムも同時に読み込まれます。プログラム２がほかの常駐指定されているタスクまたはプログラムを呼び出している場合はそれらも同時に読み込まれます。

バージョン5.7より前のバージョンでは、このフラグが「Yes」に設定されているときのように動作します。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　ResidentLoadOnInit


常駐ファイル読込
常駐ファイル読込（No）

有効値：　「Yes」または「No」

このパラメータは、常駐ファイル読込の有効と無効をグローバルに設定します。

「No」に設定すると、常駐ファイル読込は無効となります。「Yes」に設定すると、常駐ファイル読込が有効になりますが、各々のファイルを常駐ファイルにするためには、各々のファイルに対して設定をする必要があります。

変更内容　：次のセッションから有効

MAGIC.INIとコマンドラインでの名前：　LoadResidentFiles


最大キャッシュサイズ
最大キャッシュサイズ（0）

すべてのプログラムのキャッシュで消費されるメモリの上限を指定します。値を「0」に設定すると、そのキャッシュはプログラムで設定されたサイズと同じサイズのメモリを使用します。

キャッシュに使用するメモリの総量が大きく、フリーメモリがメモリ警告サイズで指定された量を下回るか、その総量が最大キャッシュサイズを超える場合には、キャッシングは行われません。開発モードでだけ、以下のメッセージが表示されます。

メモリ不足です。キャッシングは行われません。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　MaxCacheSize


SQLメッセージの詳細表示
SQLメッセージの詳細表示（Yes）

有効値：　「Yes」または「No」

SQL DBMSの使用中にエラーが発生した場合に、詳細なメッセージが表示されます。エラーメッセージは、エラーのあるSQLコマンドを対話的に使用している場合に表示されるメッセージと同じです。

致命的なエラーが発生した場合は、V5.7より前のバージョンと違ってメッセージ番号だけが表示されるのではなく、完全なメッセージが表示されます。

致命的でないエラーのメッセージも、ロックについてのメッセージを除いてすべてのメッセージが表示されます。致命的でないエラーの場合は、エラーメッセージ用ボックスが表示されます。このメッセージは、ユーザが［OK］を選択するまでクリアされません。致命的でないエラーのメッセージはdbMAGICの処理フローを変更しませんが、問題の検出に役立ちます。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　DisplayFullMsgs


カーソルの画面中央位置付け
カーソルの画面中央位置付（No）

有効値：　「Yes」または「No」

このパラメータは、データベースファイルにアクセスするテーブルコントロールを使用しているオンラインタスクの性能を向上させます。

■このパラメータは、双方向キーを使用、もしくはキーを使わずにメインファイルを照会するタスクに影響します。

■フォーム上にテーブルコントロールを配置しているオンラインタスクだけがこのパラメータの影響を受けます。

■次の項目で説明する操作を行った場合、画面の再描写に先立って、まず画面の中央に現在のレコードを位置付けし、画面の残りの部分を埋めるために、現在のレコードの前後のレコードを読み込みます。その結果、２つのカーソルをオープンします。１つは、現在のレコード位置から前方を読むため、もう１つは、後方を読むために使用されます。新しいパラメータは、このような場合に、現在のレコードを画面の最上部に位置付けるように設定し、これらのレコードは再描画された画面には表示されないため、現在のレコード位置から後方のレコードを参照するためのカーソルをオープンする必要性がなくなります。

■このパラメータは、以下のような状況での動作に影響します。

・タスクモードを「修正」、「照会」、「位置付」、「キー」、「ソート」の各モードから、「修正」または「照会」に変更する場合。

・「次に位置付」の操作後

・照会モードでの位置付けが成功した後

■動作の例外：

・新しい範囲を設定しても、しなくても「範囲」モードから抜けて、範囲の先頭レコードにカーソルがパークする場合。

・新しいソート設定をして、「ソート」モードから抜けて、範囲の先頭レコードにカーソルがパークする場合。

・「登録」モードから抜けて、範囲の先頭レコードにカーソルがパークする場合。

動作の変更は、dbMAGICのエンジン自体によって実現されるため、ゲートウェイが異なっても同様の動作になります。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　CenterScreenInOnline


修正後の再位置付
修正後の再位置付（No）

有効値：　「Yes」または「No」

フォーム上にテーブルコントロールを配置しているオンラインタスクだけがこのパラメータの影響を受けます。

旧バージョンのdbMAGICの動作とは異なります。旧バージョンでは、以下のような動作になっていました。

タスクのメインファイルのキーのセグメントとして定義されている項目の値を変更した場合、または「修正」モードに限り、新しく１つのレコードを挿入した場合、そのときのレコードから移動する際に、以下のような動作が実行されます。

・レコードをデータベースに書き戻します。

・現在の画面のレコードを上から下まで再度読み込みます。このため、変更されたレコードはその新しい位置に再表示されるか、その位置が画面の外になる場合、画面には表示されません。

・変更されたレコードから移動するために使用されたアクション（例えば「次行」、「次画面」、など）に従って、新しいレコードに位置付けます。

■このパラメータを「No」に設定すると、上記の２番目の動作（画面の再読み込み）は実行されず、現在の画面のレコードを再読み込みしません。このため変更されたレコードは、それが連続した位置でなくなっていたとしても、変更前の位置に表示されたままになります。スクロールされてレコードが画面外に出るまで、その位置に表示されたままになります。

■このパラメータは、［ウインドウ再表示］パラメータの設定に優先します。「Yes」に設定すると、メインファイルのキー値の変更／無変更にかかわらず、レコードが更新されるたびに、データベースから再読み込みされます。

注意：このパラメータを、画面再描画を行わないように設定した場合、同一の物理レコードが画面上に重複して表示される可能性があります。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　RepositionAfterModify


アプリケーションテーブル表示
アプリケーションテーブル表示（Yes）

有効値：　「Yes」または「No」

このパラメータでは、［設定／アプリケーション］テーブルへのアクセスを許可するかどうかについて設定します。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　AccessApplications


動作環境テーブル表示
動作環境テーブル表示（Yes）

有効値：　「Yes」または「No」

このパラメータでは、［設定／動作環境］テーブルへのアクセスを許可するかどうかについて設定します。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　AccessEnvironment


基本色テーブル表示
基本色テーブル表示（Yes）

有効値：　「Yes」または「No」

このパラメータでは、［設定／基本色］テーブルへのアクセスを許可するかどうかについて設定します。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　AccessColors


フォントテーブル表示
フォントテーブル表示（Yes）

有効値：　「Yes」または「No」

このパラメータでは、［設定／フォント］テーブルへのアクセスを許可するかどうかについて設定します。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　AccessFonts


キーボード割付テーブル表示
キーボード割付テーブル表示（Yes）

有効値：　「Yes」または「No」

このパラメータでは、［設定／キーボード割付］テーブルへのアクセスを許可するかどうかについて設定します。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　AccessKeyboardMapping


サーバテーブル表示
サーバテーブル表示（Yes）

有効値：　「Yes」または「No」

このパラメータでは、［設定／サーバ］テーブルへのアクセスを許可するかどうかについて設定します。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　AccessServers


通信ゲートウェイテーブル表示
通信ゲートウェイテーブル表示（Yes）

有効値：　「Yes」または「No」

このパラメータでは、［設定／通信ゲートウェイ］テーブルへのアクセスを許可するかどうかについて設定します。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　AccessCommunications


DBMSテーブル表示
DBMSテーブル表示（Yes）

有効値：　「Yes」または「No」

このパラメータでは、［設定／DBMS］テーブルへのアクセス許可をするかどうかについて設定します。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　AccessDBMS


データベーステーブル表示
データベーステーブル表示（Yes）

有効値：　「Yes」または「No」

このパラメータでは、［設定／データベース］テーブルへのアクセス許可をするかどうかについて設定します。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　AccessDatabases


論理名テーブル表示
論理名テーブル表示（Yes）

有効値：　「Yes」または「No」

このパラメータでは、［設定／論理名］テーブルへのアクセスを許可するかどうかについて設定します。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　AccessLogicalNames


言語許可
言語許可（Yes）

有効値：　「Yes」または「No」

このパラメータでは、［設定／言語］テーブルへのアクセスを許可するかどうかについて設定します。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　AccessLanguages


プリンタテーブル表示
プリンタテーブル表示（Yes）

有効値：　「Yes」または「No」

このパラメータでは、［設定／プリンタ］テーブルへのアクセスを許可するかどうかについて設定します。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　AccessPrinters


プリンタ属性テーブル表示
プリンタ属性テーブル表示（Yes）

有効値：　「Yes」または「No」

このパラメータでは、［設定／プリンタ属性］テーブルへのアクセスを許可するかどうかについて設定します。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　AccessPrintAttributes


ログオン許可
ログオン許可（Yes）

有効値：　「Yes」または「No」

このパラメータでは、［設定／ログオン］ダイアログへのアクセスを許可するかどうかについて設定します。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　AccessLogon


開発モード許可
開発モード許可（Yes）

有効値：　「Yes」または「No」

このパラメータでは、開発モードへの移行を許可するかどうかについて設定します。

「Yes」に設定すると、開発モードへの移行が許可されます。

「No」に設定すると、開発モードへの移行は禁止されます。

また、［アプリケーション起動モード］パラメータの設定が無効にされて、アプリケーションが［実行］モードで起動します。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　AccessToolkit


ロゴファイル

このファイルは省略できます。オープニング画面で表示されるシステムロゴデータが格納されているファイルの場所と名前を指定します。ファイルは、ビットマップファイルを使用してください。実行システムのみ動作します。

変更内容：　次のセッションから有効

MAGIC.INIとコマンドラインでの名前：　LogoFile


CONSTファイル
CONSTファイル（mgconstw.jpn）

このファイルは必須です。

CONSTファイルは、dbMAGICのすべての定義されたデータが格納されているファイルの場所と名前を指定します。このファイルには、dbMAGIC用のユーザインタフェースと言語情報がすべて含まれています。

変更内容：　次のセッションから有効

MAGIC.INIとコマンドラインでの名前：　ConstFile


ヘルプファイル
ヘルプファイル（mghelpw.hlp）

このファイルは省略できます。dbMAGICのシステム（アプリケーションではない）のヘルプテキストが格納されているファイルの場所と名前を指定します。

変更内容：　次のセッションから有効

MAGIC.INIとコマンドラインでの名前：　HelpFile


ユーザエディタ
ユーザエディタ（エディタ名）

エディタ名 … プログラム名またはコマンドファイル名

このパラメータは省略できます。ユーザヘルプ画面を編集するのに使用される、または［外部エディタ］オプションを含む［エディット］処理（処理コマンド12）を実行するために実行時にユーザによって起動されるテキストエディタを指定します。完全なパス定義を含む、プログラム名またはバッチファイル名を指定することができます。

変更内容：　次のセッションから有効

MAGIC.INIとコマンドラインでの名前：　UserEditor


基本色定義ファイル
基本色定義ファイル（clr_std.jpn）

このファイルは必須です。

dbMAGICの色定義が格納されているファイルの場所と名前を指定します。ここから［基本色定義］テーブルにズームして、基本色定義ファイルに名前付きで格納されている色定義を表示できます。

詳細については、「設定／基本色」を参照してください。

変更内容：　次のセッションから有効

MAGIC.INIとコマンドラインでの名前：　ColorDefinitionFile


フォント定義ファイル
フォント定義ファイル（fnt_std.jpn）

このファイルは必須です。

dbMAGICのフォント定義が格納されているファイルの場所と名前を指定します。ここから［フォント］テーブルにズームして、フォント定義ファイルに名前付きで格納されているフォント定義を表示できます。

詳細については、「設定／フォント」を参照してください。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　FontDefinitionFile


キーボード割付ファイル
キーボード割付ファイル（act_std.jpn）

このファイルは必須です。

［キーボード割付ファイル］パラメータは、キーボード割付の定義が格納されているファイルの場所と名前を指定します。ズーム（｛F5｝）すると［キーボード割付］テーブルを表示します。

詳細については、後述の［設定／キーボード割付］を参照してください。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　KeyboardMappingFile


テンプレートファイル
テンプレートファイル（doc_std.jpn）

このファイルは必須です。

アプリケーションのドキュメント作成ユーティリティで使用するテンプレートファイルの位置と名前を設定します。dbMAGICでは、すべての辞書に対する広範なドキュメント自動作成機能を提供しています。出力の形式と内容はテンプレートファイルによって制御されます。dbMAGICには２つのテンプレートが添付されています。標準テンプレート（doc_std.jpn）は、オブジェクトの最低限の情報を短縮した形式で出力します。拡張テンプレート（doc_ext.jpn）は、オブジェクトの最大限の情報を出力します。

ドキュメントの自動作成機能についての詳細は、第27章「ドキュメントテンプレート機能」を参照してください。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　DocumentTemplateFile


プリンタ属性ファイル
プリンタ属性ファイル（prn_std.jpn）

このファイルは省略できます。このパラメータには、dbMAGICアプリケーション内で使用される論理プリンタ属性の定義が含まれたファイルの位置とファイル名を設定します。プリンタ属性は論理オブジェクトの１つで、dbMAGICの出力フォームで使用できます。使用されるときには、実行時の出力中に、一連のプリンタ制御コードに変換されます。プリンタ属性ファイルは、外部プリンタコマンドファイルに定義された実際のエスケープコードと論理属性との関係を定義します。詳細については、「設定／プリンタテーブル」と「9.6 プリンタ属性のサポート」を参照してください。

［プリンタ属性］テーブルを表示して論理プリンタ属性を定義するには、［編集／ズーム］を選択してください。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　PrintAttr


セキュリティファイル
セキュリティファイル（usr_std.jpn）

このファイルは必須です。このファイルが指定されていない、または存在しない場合は、デフォルトのファイルが作成されます。

セキュリティについてのシステム情報が含まれるファイルの場所とファイル名を以下に示します。

ユーザID、パスワード、その権利

ユーザグループとその権利

シークレット名

権利のないユーザがシステムに進入するのを防ぐために、セキュリティファイルは暗号化されます。dbMAGICのセキュリティシステムについての詳細は、第12章「使用権利」を参照してください。

注意： セキュリティファイルにはすべてのユーザについての情報が入っているため、複数ユーザ環境の場合には共有ディレクトリに置いてください。

変更内容：　次のセッションから有効

MAGIC.INIとコマンドラインでの名前：　UsersPath


開始時セキュリティファイル

dbMAGICの初期化時にロードされるセキュリティファイルの名前とパスを設定します。このファイルは、初期化が正常に完了すると、メモリ上で「セキュリティファイル」パラメータに設定されたファイルに置き換えられます。このように複写されるのは、クライアント／サーバで使用されるためです。クライアント／サーバ環境でのセキュリティファイルは、（すべてのユーザに共通であるため）サーバに常駐させてください。

セキュリティファイルには、シークレット名テーブルが含まれます。［シークレット名］テーブルには、［サーバ特性］ダイアログで設定した［ユーザID］と［パスワード］の論理名の定義が表示されます。これらのユーザIDとパスワードはサーバにログインするために必要ですが、ログインする前には、セキュリティファイルにアクセスできません。［開始時セキュリティファイル］は、ログイン時に必要な情報を提供するように設計されています。

dbMAGICをクライアント／サーバで使用しない場合、またはユーザIDとパスワードを［サーバ特性］ダイアログで設定していない場合には、このパラメータは指定しなくてもかまいません。

変更内容：　次のセッションから有効

MAGIC.INIとコマンドラインでの名前：　StartupUsersFile


ネイティブ変換ファイル

dbMAGICの内部文字記号とdbMAGICが実行するプラットホームの文字テーブルとの間の変換テーブルに保持するファイルの位置と名前を指定します。dbMAGICは、内部では ASCII文字セットを使用します。オペレーティングシステムに出力されるすべての文字は、この変換テーブルに基づいて適切な値に変換されます。

変更内容：　次のセッションから有効

MAGIC.INIとコマンドラインでの名前：　NativeTranslationFile


照合順序ファイル

照合順序テーブルを保持するファイルの場所と名前を指定します。照合順序テーブルは、値のソート（ABC順など）に必要な情報を保持しています。このテーブルは、もとになるデータベースマネージャによって使用されるデフォルトテーブルを変更するのにも使用できます。このテーブルが使用されるかどうかは、もとになるデータベースがこのような変換をサポートしているかどうかで決まります。

また、データベースが照合順序ファイルの機能をサポートしている場合は、特定のデータベースに対して、別の［照合順序ファイル］を定義できます。データベース特有の［照合順序ファイル］は、［設定／データベース］テーブルの［データベース特性］ダイアログの［データベース情報］欄で宣言します。宣言の書式はACS=acs fileで、acs fileには、［照合順序ファイル］のパス名を指定します。データベース特有の［照合順序ファイル］が定義されていないデータベースに対しては、“MAGIC.INI”で指定された［照合順序ファイル］がデフォルトで使用されます。

データベースに対して［照合順序ファイル］が定義されていても、そのファイルが存在しない場合は、“MAGIC.INI”で指定された［照合順序ファイル］がデフォルトで使用されます。

１つのデータベース管理システムに対して、異なる２つの［照合順序ファイル］をサポートすることはできません。

変更内容：　次のセッションから有効

MAGIC.INIとコマンドラインでの名前：　CollatingFile


多言語サポートファイル

多国語サポートの環境で、始動時に使われる言語を設定します。

有効値：　空白、または［言語］テーブルから選択された言語

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　StartingLanguage


一時ファイルパス

dbMAGICは、処理中に中間値を格納する一時ファイルを使用して、あとで自動的に消去します。一時ファイルのサイズが数百Ｋバイトになり、標準ディスク上での入出力処理の速度が遅くなることがまれにあります。この欄には、処理能力を改善するための補助パス（たとえばRAMドライブ）を指定します。このパスには区切り文字まで含めてください。値を指定しないと、一時ファイルはカレントディレクトリに作成されます。

注意：メモリの制約のないオペレーティングシステムでは、dbMAGICは、一時情報を一時ファイルに書き込まないでメモリに保持します。

変更内容：　次のセッションから有効

MAGIC.INIとコマンドラインでの名前：　TempPath


立体効果

有効値：　「Yes」または「No」

このパラメータでは、画面を立体的に表示するか、平面的に表示するかを設定します。エンドユーザが設計した画面を除く、すべての画面に影響します。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　3dEffect


最大ファイル数
最大ファイル数（0）

この欄は、xbaseゲートウェイでだけ使用されます。１以上の値を指定すると、xbaseでオープンできる最大ファイル数が増加します。日本語版ではサポートしていません。

変更内容：　次のセッションから有効

MAGIC.INIとコマンドラインでの名前：　FileHandles


コマンドプロセッサ
コマンドプロセッサ（C:\command.com）

このパラメータでは、OSのコマンドプロセッサ“COMMAND.COM”のファイル名を完全なディレクトリパス付きで指定します。これは、［ＯＳコマンド］の実行に使用されます。

変更内容：　次のセッションから有効

MAGIC.INIとコマンドラインでの名前：　CommandProcessor


ロックファイル
ロックファイル（mglock.dat）

このパラメータでは、dbMAGICがロック機構を実現するのに使用するファイルの名前を指定します。ロックファイルのファイル名には、パス名を指定しないでください。パス名は自動的に指定されます。ロックファイルについての詳細は、第14章「マルチユーザ環境」を参照してください。

変更内容：　次のセッションから有効

MAGIC.INIとコマンドラインでの名前：　LockFile


ファイルアクセス
ファイルアクセス（N=Netware）

有効値：　D=Dos v3.1またはN=Netware

「D=Dos v3.1」に設定すると、dbMAGICは、ロック要求を発行するときにDOS v3.1のファンクションコールを使用します。このロック方式は、一般的なネットワークオペレーティングシステムのほとんどでサポートされています。このロック方式は、NovellのNetwareネットワークでもサポートされています。

「N=Netware」に設定すると、dbMAGICは、ロック要求を発行するときにNovellファンクションコールを使用します。

このパラメータについての詳細は、「14.3 マルチユーザ環境の設定」を参照してください。

変更内容：　直後から有効

MAGIC.INIとコマンドラインでの名前：　FileAccess


基本色

［基本色］テーブルは、前景色と背景色の値を各行に対して指定します。テーブルは全部で100行あり、１～79行までがユーザ定義色です。80～100行はシステムに予約されているため、変更しないでください。

各行には、前景色と背景色のサンプルが表示されます。

前景色と背景色の値を変更するには、カーソルを変更する［前景色］または［背景色］の上に置いてズーム（｛F5｝）すると、［基本色定義］パレットが表示されます。［基本色］の上でクリックして、色を選択します。選択した［基本色］のボックスは、太い枠で表示されます。

また、色は、［赤］、［緑］、［青］、［色合い］、［濃さ］、［輝度］の各数値を変更して選択または変更できます。

ズームしたときの［基本色］テーブルの［名前］欄の値が、［基本色定義］パレットのタイトルバーに表示されます。

［基本色定義］パレットには、システムで使用している色（スクロールバーの色など）を選択するためのコンボボックスが表示されています。このコンボボックスを使用すると、システムで使用している色の前景色または背景色の定義を指定できます。

「OK」ボタンをクリックすると、新しい色定義が確定されて、［基本色定義］パレットがクローズします。

「取消」ボタンをクリックすると、その色に対する変更が取り消されて、［基本色定義］パレットがクローズします。

前景色と背景色に同じ色を選択すると、その色定義で表示される文字が読めなくなるので注意してください。

［基本色］テーブルの［名前］欄には、その色の機能を説明するテキストを設定します。わかりやすい名前を付けておけば、色の選択や保守がしやすくなります。

［基本色］テーブルで｛Enter｝キーを入力すると、色の変更が保存されて［基本色］の編集が終了します。編集した色の設定は、特別な色ファイルに保存されます。dbMAGICが使用するファイルは、［動作環境］テーブルの［基本色定義ファイル］パラメータで設定されているファイルです。このファイルのデフォルト名は、“CLR_STD.JPN”です。いろいろな基本色定義ファイルを作成して使用できます。［基本色］テーブルでの編集が終了すると、変更箇所を保存する［ファイル保存］ダイアログが表示されます。

［保存ファイル名］欄に別の名前を指定すると、現在dbMAGICが使用しているのとは別のファイルに変更内容を保存できます。［基本色］テーブルでの変更は、［ファイル保存］ダイアログの［即時有効］欄に「No」と指定しなければ、次にdbMAGICを起動したときから有効となります。

［即時有効］欄を「Yes」に設定すると、新しい［基本色］テーブルがロードされて、ディスプレイ上でウィンドウが新しく作成されるたびに、新しい設定が使用されます。ただし、現在表示されているものは、これが再表示されるまでは変更されません。

特定のアプリケーション内では、［動作環境］のデフォルトの基本色ファイルをアプリケーション専用のファイルに替えることができます。詳細については、第24章「アプリケーション（CTL）特性」を参照してください。


［基本色定義］パレット

［基本色定義］テーブルで、前景色と背景色の値を変更するには、カーソルを変更する［前景色］または［背景色］の上に置いてズーム（｛F5｝）すると、［基本色定義］パレットが表示されます。［基本色］の上でクリックして、色を選択します。選択した［基本色］のボックスは、太い枠で表示されます。

また、色は、［赤］、［緑］、［青］、［色合い］、［濃さ］、［輝度］の各数値を変更して選択または変更できます。

ズームしたときの［基本色］テーブルの［名前］欄の値が、［基本色定義］パレットのタイトル部分に表示されます。

［基本色定義］パレットには、システムで使用している色（スクロールバーの色など）を選択するためのコンボボックスが表示されています。このコンボボックスを使用すると、システムで使用している色の前景色または背景色の定義を指定できます。

「OK」ボタンをクリックすると、新しい色定義が確定されて、［基本色定義］パレットがクローズします。

「取消」ボタンをクリックすると、その色に対する変更が取り消されて、［基本色定義］パレットがクローズします。

前景色と背景色に同じ色を選択すると、その色定義で表示される文字が読めなくなるので注意してください。


［基本色］テーブルの［名前］

［基本色］テーブルの［名前］欄には、その色の機能を説明するテキストを設定します。わかりやすい名前を付けておけば、色の選択や保守がしやすくなります。


前景色

前景色と背景色の値を変更するには、カーソルを変更する［前景色］または［背景色］の上に置いてズーム（｛F5｝）すると、［基本色定義］パレットが表示されます。［基本色］の上でクリックして、色を選択します。選択した［基本色］のボックスは、太い枠で表示されます。

前景色と背景色に同じ色を選択すると、その色定義で表示される文字が読めなくなるので注意してください。


背景色

前景色と背景色の値を変更するには、カーソルを変更する［前景色］または［背景色］の上に置いてズーム（｛F5｝）すると、［基本色定義］パレットが表示されます。［基本色］の上でクリックして、色を選択します。選択した［基本色］のボックスは、太い枠で表示されます。

前景色と背景色に同じ色を選択すると、その色定義で表示される文字が読めなくなるので注意してください。


フォント

[フォント]テーブルは、使用できる出力の種類に対して、特定のフォントを割り当てるためのテーブルです。［フォント］テーブルは100行あり、テーブル、ダイアログ、プッシュボタン、ステータス行などの、事前に定義されたフォント定義が含まれています。［フォント］テーブルの大部分の行は、ユーザ定義フォントとして使用できます。

［フォント］テーブルは、［設定／動作環境］の［フォント定義ファイル］で指定されたファイルに格納されます。

以下では、［フォント］テーブルの各欄について説明します。

＃

dbMAGICが割り当てる行番号です。この欄は変更できません。

名前

出力の種類の説明です。この説明は、テーブルの［名前］欄で上書きすれば簡単に変更できます。

フォント

MS明朝、MSゴシックなどのフォント名です。この欄をダブルクリックして、フォントを変更します。ダブルクリックすると、［フォント定義］ウィンドウが表示されます。このウィンドウで、「フォント」、「サイズ」、ボールドやイタリックなどの「スタイル」、取消線や下線などの「飾り」を選択できます。

スタイル

フォントの［スタイル］でボールドやイタリックを選択したり、［飾り］で取消線や下線を選択したりすると、これらの選択状況が［スタイル］欄に表示されます。

サイズ

［フォント定義］ウィンドウの［サイズ］欄に設定したサイズが表示されます。

［フォント］テーブルへの変更の保存

［フォント］テーブルで｛Enter｝キーを押すと、フォントの変更が保存されて、［フォント］の編集が終了します。編集したフォントの設定は、［フォント定義ファイル］に保存されます。［動作環境］テーブルの［フォント定義ファイル］欄で設定されているファイルが使用されます。いろいろなフォント定義ファイルを作成して使用できます。［フォント］テーブルでの編集が終了すると、変更箇所を保存する［ファイル保存］ダイアログが表示されます。

関連項目

フォント属性


［フォント定義］ウィンドウ

［フォント］テーブルでズームした行の［名前］欄の値が、［フォント定義］ウィンドウのタイトル部分に表示されます。

「OK」ボタンをクリックすると、新しいフォント定義が確定されて、［フォント定義］ウィンドウがクローズして、［フォント］テーブルに戻ります。

「取消」ボタンをクリックすると、そのフォントに対する変更が取り消されて、［フォント定義］ウィンドウがクローズします。


［フォント］テーブルの［名前］

出力の種類の説明です。この説明は、テーブルの［名前］欄で上書きすれば簡単に変更できます。


フォント名

MS明朝、MSゴシックなどのフォント名です。この欄をダブルクリックして、フォントを変更します。ダブルクリックすると、［フォント定義］ウィンドウが表示されます。このウィンドウで、「フォント」、「サイズ」、ボールドやイタリックなどの「スタイル」、取消線や下線などの「飾り」を選択できます。


サイズ

［フォント定義］ウィンドウの［サイズ］欄に設定したサイズが表示されます。


フォント属性

フォント名の欄をダブルクリックすると、［フォント定義］ウィンドウが表示されます。このウィンドウで、「フォント」、「サイズ」、ボールドやイタリックなどの「スタイル」、取消線や下線などの「飾り」を選択できます。

フォントの［スタイル］でボールドやイタリックを選択したり、［飾り］で取消線や下線を選択したりすると、これらの選択状況が［スタイル］欄に表示されます。


キーボード割付

dbMAGICの内部コマンドは、「dbMAGICアクション」または「アクション」と呼ばれます。dbMAGICアクションは、dbMAGICが理解できる最下位レベルのコマンドです。すべてのアクションは、それぞれ明確に定義された機能を備えています。つまり、ユーザとdbMAGICとの対話は、すべて特定の内部処理を実行するアクションに変換されます。たとえば、［終了］アクションは現在の処理を終了させ、［MAGIC情報］アクションは［MAGIC情報］ダイアログを表示します。ユーザとdbMAGICとの対話のほとんどがコンピュータのキーボードを介して行われるため、キーストロークが内部のdbMAGICアクションを起動しなければなりません。［キーボード割付］テーブルには、dbMAGICアクションに対するキーストロークの割り付けが含まれています。

dbMAGICは、多くの内部アクションを備えています。それぞれの内部アクションは、独自の機能を実行します。これらの機能の一部はグローバルで、dbMAGICのどこからでも実行できます。それ以外のものは状況に応じて機能するため、特定の状況からしか起動できません。後者の機能は状況に依存するため、複数のアクションに同じキーボードシーケンスを割り当てることができます。ただし、これらのアクションが同じ状況下で同時に起動できない場合にだけです。

アクションへのキーストロークの割り当てに［ステータス］を追加すると、キーストローク／アクションの関係をさらに細かく指定できます。割り当てごとに４つまでの［ステータス］を追加できます。これらの［ステータス］は、dbMAGICでの２つの異なる編集状態である「表」と「編」に関連しています。

■	「表」とは、テーブル内の行と欄の編集、一覧内のスクロール、またはダイアログボックス内の項目間の移動などの状況を意味します。

■	「編」とは、項目エディタを使用した特定の項目を編集する状況を意味します。

テーブルを編集する場合は、「表」ステータスが便利です。項目の編集時は、「編」ステータスが便利です。これらの編集状況のそれぞれに、さらにいくつかの状態を追加できます。ステータスは、ユーザとの対話中に発生するある状況を記述します。同じ状況で２つのアクションに同じキーストロークを割り当てるためには、dbMAGICに発生の可能性のあるあらゆる状況を知らせる必要があります。

たとえば、デフォルトのキーボード割付を使用した場合を考えてみましょう。

テーブルの編集時に、｛Ctrl｝＋｛PageDown｝キーは、［テーブル情報の最後に移動］を表すアクション［テーブル末尾］に割り当てられているとします。｛Ctrl｝＋｛PageDown｝キーは、［画面上に表示されているテーブルの最後の行に移動］を表すアクション［画面末尾］にも割り当てられているとします。この両方のアクションは同じ状況（テーブル編集）で有効であり、同じキーストローク（｛Ctrl｝＋｛PageDown｝）が割り当てられています。あいまいさは、dbMAGICのステータスを使用して｛Ctrl｝＋｛PageDown｝キーの割り付けを修飾することで解決されています。［テーブル末尾］アクションは、［表：画面末尾］状態によって修飾されているとした場合、このアクションは、｛Ctrl｝＋｛PageDown｝キーが押されていて、カーソルがテーブルに表示されている最後の行に位置付けられているときにだけ呼び出されます。また、［画面末尾］アクションは、［表：非画面末尾］によって修飾されていたとすると、このアクションは、｛Ctrl｝＋｛PageDown｝キーが押されていて、カーソルがテーブルに表示されている最後の行に位置付けられていないときにだけ呼び出されます。この２つの状態は互いに排他的なので、dbMAGICがどちらのアクションを呼び出すべきかを決定するのに問題はありません。このように設定してから、最初に｛PageDown｝キーを押すと、カーソルがテーブルに表示されている最後の行に移動して（［表：画面末尾］状態がオフにされているため）、［表：画面末尾］状態がオンになります。２回目に｛PageDown｝キーを押すと、カーソルがテーブル情報の最後の行に移動します（［表：画面末尾］状態がオンにされているため）。カーソルをテーブルの最後の行に移動すると、画面がスクロールをします。

［キーボード割付］テーブルは、メインテーブルと［ステータス］ウィンドウで構成されています。画面の一番上の画面タイトルには、現在の［キーボード割付］ファイルの名前が表示されます。テーブルの各行には、dbMAGICアクションに対する「キー 」値の１つの割り当てが表示されます。テーブルの行をスクロールすると、［ステータス］には、強調表示された行の割り当てを条件付けた編集状態が表示されます。

このテーブルでは、アクション／キーストロークの割り当てを変更、削除、追加できます。１つのアクションの最後のキーストローク割り当ては、削除できません。テーブルに新しい行を追加するときは、１つ上の行からアクションが複写されます（キー割り当ては複写されません）。

編集した［キーボード割付］の設定は、特別なファイルに保存されます。dbMAGICが使用するファイルは、［設定／動作環境］テーブルの［キーボード割付ファイル］欄で指名されているファイルです。デフォルトでは、このファイルは“ACT_STD.JPN”となります。また、別の割付ファイルを作成して、使用できます。［キーボード割付］テーブルでの編集セッションが終了すると、変更結果を保存するための［ファイル保存］ダイアログが表示されます。変更内容は、［保存ファイル名］欄に別の名前を指定すると、現在使用されているのとは別のファイルに保存できます。［キーボード割付］テーブルで行った変更は、［ファイル保存］ダイアログの［即時有効］欄に「No」と指定すれば、次にdbMAGICを起動したときから有効となります。

［即時有効］欄を「Yes」に設定すると、新しい［キーボード割付］テーブルがロードされて、このテーブルに従ってキー割り当てが変更されます。

関連項目

アクション

キー

ステータス

ステータスウィンドウ


アクション

この欄には、dbMAGICのアクション名が表示されます。カーソルは、この欄には止まりません。アクション名は決められていて、dbMAGICによって表示されます。複数の行に同じアクション名が表示されることもあります。これは、アクションに複数のキーが割り当てられていることを意味します。アクションに割り当てられているキーのいずれかを押すと、アクションが起動します。

注意：［＃］欄には、dbMAGICによって割付識別子として使用される自動作成された連続番号が表示されます。カーソルは、この欄には止まりません。


キー

この欄には、現在の行のアクションに割り当てられているキーが表示されます。この欄からキーを定義することもできます。［キー設定］ダイアログにアクセスするには、［編集／ズーム］（｛F5｝）を選択します。［キー設定］ダイアログでは、アクションに割り付けるキーを押すだけで、画面に登録できます。定義を受け付けるには［OK］（｛Enter｝）を、操作を取り消すには［取消］（｛Esc｝）を選択します。スペースキーは、［キー設定］ダイアログの現在の値をクリアします。定義を受け付けると、キーが［キー］欄に複写されて、割り付けが行われます。

注意： ［キー］欄に［内部］という単語が表示された場合は、このアクションに対する操作が許可されていません。内部アクションは、再定義できません。


ステータス

この欄には、割り当てを条件付けている編集状態の数が表示されます。キーを押してアクションを起動するようにするには、すべての編集状態が満たされなければなりません。［ステータス］欄から［編集／ズーム］（｛F5｝）を選択して、［ステータス］ウィンドウにズームします。このウィンドウでは、キーのアクションへの割り当ての条件を定義します。


ステータスウィンドウ（ステータス＃１～＃４）

カーソルがステータス項目のいずれかに置かれているときには、［編集／ズーム］（｛F5｝）を選択してステータスの一覧にズームすると、編集状態を選択できます。アクションへのキーの割り当てを条件付ける編集状態は、４つまで追加できます。キーを押してアクションを起動するようにするには、すべての編集状態が満たされていなければなりません。


サーバ

dbMAGICのサーバは、dbMAGICが備えているクライアント／サーバ機能の主機能です。dbMAGICのサーバは、ファイル管理と通信の核となるプログラムで、リモートのdbMAGICアプリケーションに対してデータベースとファイルの入出力を行います。インストールしてあるdbMAGICからは、いろいろなハードウェアのプラットフォームやオペレーティングシステムに常駐するこのようなサーバに、異なる通信プロトコルを介してアクセスできます。

［サーバ］テーブルは、現在インストールされているdbMAGICでデータベースとファイル入出力のサービスにアクセスできるリモートdbMAGICサーバを定義します。［サーバ］テーブルでは、ローカルのdbMAGICソフトウェアがそのホストサーバと通信する方法も定義します。クライアント／サーバについての詳細は、第21章「クライアント／サーバアーキテクチャ」を参照してください。

関連項目

サーバ名	サーバ特性
通信ゲートウェイ	ユーザ名
サーバアドレス	パスワード


サーバ名

この欄では、ローカルのdbMAGICのサーバ名を定義します。このサーバ名をかっこで囲んでファイル名に使用すると、このファイルに対する入力または出力要求は、指定されたサーバに自動的にリダイレクトされます。たとえば、サーバ名がSRVERで、アプリケーションの接頭語が(SRVER)DMの場合、このアプリケーションのファイルは、指定されたマネージャ（通信ゲートウェイを参照）を介して、［サーバ］テーブルの現在の行で識別されるホストコンピュータ上に作成されます。


通信ゲートウェイ

この欄では、ホストサーバとの間でデータを転送または受信するのに使用する通信プロトコルを指定します。この欄は、［編集／ズーム］（｛F5｝）を選択して使用できる通信ドライバの一覧（「通信ゲートウェイ一覧」）にズームする方法でしか更新できません。一覧には、dbMAGICが起動される前にロードされた通信ドライバだけが一覧されています。ローカルのdbMAGICとサーバには、同じ通信プロトコルを使用してください。

この欄に「Unknown」と表示されている場合は、適切な通信ドライバモジュールがロードされていません。先に適切な通信ドライバをロードしないで「サーバ」をオープンしようとすると、異常終了します。詳細については、「［通信ゲートウェイ］テーブル」を参照してください。


サーバアドレス

この欄では、ローカルのdbMAGICに接続するネットワークでのサーバのアドレスを指定します。アドレスは、記号「／」で区切られた２つの部分から構成されます。たとえば、サーバがWindows NTサーバに常駐し、通信プロトコルがTCP/IPのときは、［サーバアドレス］は以下のようになります。

XXXXX/YYYYY

XXXXXは、 Windows NTサーバ上のTCP/IPのホスト一覧内のネットワークサーバ名です（SERVERなど）。

YYYYYは、 Windows NTサーバ上のdbMAGICのTCP/IPディスパッチャのソケット番号です（1054など）。

したがって、「SERVER/1054」は、dbMAGICサーバのTCP/IPアドレスになります。ネットワークアドレスについて必要の詳細は、使用している通信ドライバのマニュアルを参照してください。

［サーバ］テーブルには、１つ以上のデータが含まれていなければなりません。このデータはDEFAULTと呼ばれ、削除できません。それ以外の行は、追加または削除したり、［＃］以外の欄も編集したりできます。DEFAULTサーバは、インストールされているローカルのdbMAGICの［ローカル］サーバです。通信ドライバとアドレスを指定する必要はありません。

［サーバ］テーブルの情報は、“MAGIC.INI”の[MAGIC_SERVERS]セクションに含まれています。


サーバ特性

［特性］ボタンをクリックすると、［サーバ］テーブルの現在の行に対する［サーバ特性］ダイアログにアクセスできます。［サーバ特性］ダイアログは、［ユーザ名］欄と［パスワード］欄から構成されます。dbMAGICがWindows NTサーバにアクセスするには、ユーザ名とパスワードが必要です。この欄で設定しておけば、接続するたびにユーザ名とパスワードを入力する必要はありません。


通信ゲートウェイテーブル
［通信ゲートウェイ］テーブル

［通信ゲートウェイ］テーブルは、dbMAGICの初期段階で“MAGIC.INI”の［MAGIC_COMMS］セクションの通信ドライバ情報が取り出され、自動的に作成されます。

通信ドライバは、ローカルdbMAGICをホストdbMAGICサーバに接続するのに使用します。

関連項目

名前

タイムアウト

パラメータ

ID


名前

通信ドライバの名前です。

注意：［＃］欄には、dbMAGICによって通信ドライバ識別子として使用される、自動作成された連続番号が表示されます。カーソルは、この欄には止まりません。


タイムアウト

この欄では、何秒間受信先から応答がなかったら、ドライバがdbMAGICに通信異常を報告するかを定義します。


パラメータ

この欄には、実行時に通信ドライバに転送されるカスタマイズ情報が表示されます。通信ドライバのカスタマイズについての詳細は、使用している通信ドライバのマニュアルを参照してください。


ID

この欄は変更しないでください。［ID］欄は、通信プロトコルを識別するためにdbMAGICが使用する内部コードを設定します。


ユーザ名

［サーバ特性］ダイアログは、［ユーザ名］欄と［パスワード］欄から構成されます。dbMAGICがUNIXのサーバにアクセスするには、ユーザ名とパスワードが必要です。この欄で設定しておけば、接続するたびにユーザ名とパスワードを入力する必要はありません。

［ユーザ名］欄はオプションです。


パスワード

［サーバ特性］ダイアログは、［ユーザ名］欄と［パスワード］欄から構成されます。dbMAGICがUNIXのサーバにアクセスするには、ユーザ名とパスワードが必要です。この欄で設定しておけば、接続するたびにユーザ名とパスワードを入力する必要はありません。

［パスワード］欄はオプションです。


タイムアウト

サーバからの応答がない場合に、ドライバがdbMAGICに失敗を通知するまでの遅延時間を秒単位で定義します。


DBMS

［DBMS］テーブルには、dbMAGICが現在サポートしているか、将来サポートするすべてのDBMSが表示されます。各DBMS項目には、そのDBMSの主な特徴を示すパラメータが含まれています。［DBMS］テーブルの情報は、［データベース］テーブル（後述）の情報と異なり、そのDBMSに基づくデータベース独自のものではなく、DBMSタイプに一般的なものです。特定のDBMSタイプのデータベースへ物理的にアクセスするには、dbMAGICをロードする前にデータベースゲートウェイをロードしてください。データベースゲートウェイは、もとになるデータベース管理システムとdbMAGICとのインタフェースを取るために使用されます。たとえば、SQL　ServerやOracleのデータベースにアクセスするためには、dbMAGICをロードする前にSQL　ServerとOracle用のデータベースゲートウェイをロードしてください。

［DBMS］テーブルは、アプリケーションファイルやデータファイルを特定のDBMSタイプに対応させるときに使用する［DBMS一覧］のもとになります。dbMAGICをロードする前に適切なデータベースゲートウェイがロードされたDBMSタイプだけが［DBMS一覧］に表示されます。

［DBMS］テーブルの情報は、“MAGIC.INI”の[MAGIC_DBMS]セクションに含まれています。

関連項目

名前	パラメータ
２相コミット	浮動小数点
NULL	ID
排他トランザクション


名前

この欄には、DBMSの名前が表示されます。

注意：［＃］欄には、dbMAGICがDBMSを識別するために使用する連続番号が表示されます。この番号は自動作成されます。カーソルは、この欄には止まりません。


２相コミット

DBMSが２相コミット（ツーフェーズコミット）をサポートしている場合は、２相コミットを使用してそのDBMSタイプのファイルを処理できます。DBMSが２相コミットをサポートしている場合、dbMAGICで使用するには、この欄を「Yes」に設定します。それ以外の場合は、この欄を「No」に設定します。

注意：一部のDBMSでは、２相コミットを「Yes」に設定する必要があります。


NULL

もとになるDBMSがNULL値をサポートしている場合、dbMAGICアプリケーションがNULL値をファイルに使用するときは、この欄を「Yes」に設定します。またはNULL値をサポートしていないか、またはNULL値をサポートするがdbMAGICには不要な場合には、「No」を設定します。


排他TRN（排他トランザクション）

トランザクション処理は、もとになるDBMSによって処理されます。そのため、トランザクションが始まると、dbMAGICプログラムはDBMSの動作に依存します。場合によっては、システムがデッドロック状態になったり、ワークステーションが予期しないハングアップを起こすことがあります（通常、後者はISAMデータベースに対してだけです）。「Yes」に設定すると、トランザクションをオープンするときにdbMAGIC独自のセマフォが発行されます。トランザクションの間、ほかのすべてのユーザはそのトランザクションで使用されるファイルにアクセスできません。これによって、処理能力と並行開発が大幅に向上します。ほかに方法がない場合にだけ使用するようにしてください。

「No」に設定すると、DBMSのトランザクション追跡システムだけが使用されて、dbMAGIC自体は処理しません。


パラメータ

このパラメータでは、実行時にデータベースマネージャゲートウェイに転送するカスタマイズ情報を設定します。


可変CTLレコード長

dbMAGICのアプリケーションの構成要素は、すべてCTLファイルの中にあります。それぞれの構成要素は、そのファイルの中に論理的レコードとして保存されています。その構成要素には、タスク、ヘルプ画面、タイプなどがあります。

物理的なCTLファイルは、２つの領域から構成されています。最初の領域にはそれぞれの要素にアクセスするためのキーが置かれ、２番目の領域には実際のデータが置かれています。その領域の大きさは、dbMAGICによって、それぞれのDBMSに適した値に設定されています。

CTLレコード長を変更する理由

タスクの起動時には、複数の論理レコードが読み込まれます。したがって、タスクの起動を早くするには、データが読み込まれる時間を短くする必要があります。CTLレコードはサイズが固定されているため、起動するタスクが小さい場合は、必要以上のデータ（余分なデータ）までが読み込まれる場合があります。逆に、多くの処理が存在する大きなタスクでは、そのタスクを起動するために必要以上の入出力処理が行われる場合があります。

CTLレコード長定義

CTLレコード長の標準値を変更するには、この欄で値を指定します。書式はCTLRECLEN=Xで、Xには数値を指定します。標準値は、新しいCTLファイルに適用されます。すでに存在するCTLファイルには影響しません。

CTLレコード長の変更による効果

CTLファイルを作成したあとは、再定義する必要はありません。また、dbMAGICは、CTLレコード長の大きさに関係なくすべてのCTLファイルをオープンできます。

CTLレコード長の変更は、CTLのサイズにも影響します。これは、CTLファイルは固定長レコードの集まりなので、ファイルの中には使用されていないスペースが存在するためです。通常レコードサイズを大きくするとスペース部分が大きくなるので、CTLファイルのサイズは大きくなります。


浮動小数点

ファイル定義がDBMSの辞書からアップロードされる場合には、ほとんどの項目は適切な書式を持つdbMAGICの型に一致します。しかし、浮動小数点型の項目の場合は、dbMAGICの項目またはタイプ（浮動小数点）の書式を指定できません。［浮動小数点］欄には、dbMAGICのタイプ辞書とファイル辞書にアップロードされるすべての浮動小数点型の項目を定義するために使用するデフォルトの書式テンプレートを設定します。


ID

この欄は変更しないでください。［ID］欄は、DBMSを識別するためにdbMAGICが使用する内部コードを設定します。


データベース

［データベース］テーブルには、dbMAGICのシステムからアクセスできる物理データベースについての詳細を登録します。dbMAGICは、複数のデータベース管理システム（DBMS）に接続できます。このようなDBMSには、１台のマシンの異なる物理位置、または複数の異なるマシン上にデータを分散できるものがあります。dbMAGICがサポートするDBMSの一部は、複数の異なる物理データベースを１つの論理エンティティにして維持します。［データベース］テーブルを使用すれば、これらの異なるデータベースにアクセスできます。

［データベース］テーブルには、dbMAGICのデータベースオブジェクトに必要な基本情報が含まれています。［データベース特性］ダイアログを使用すれば、このオブジェクトについての情報を追加できます。このダイアログにアクセスするには、［データベース］テーブルの下部にある［特性］ボタンを押します。

複数のデータベースを定義して、同じDBMSに異なる特性でアクセスすることも可能です。「dbMAGICレコードロック」についての詳細は、「データベース特性ダイアログ」の「dbMAGICレコードロック」を参照してください。

［データベース］テーブルの情報は、“MAGIC.INI”の[MAGIC_DBMS]セクションに含まれています。

関連項目

名前	MAGICサーバ
DBMS	位置
DB名	データベース特性ダイアログ


名前

このパラメータでは、物理データベースの短い名前を設定します。［名前］の値は、［ファイル辞書］テーブルや［アプリケーション］テーブルなど、dbMAGIC内でデータベースの参照が必要な場合に、データベースを識別するラベル（文字列）として使用されます。索引ではなく代わりにラベルをデータベーステーブルに使用すると、異なる開発者が同じラベルを使用することはほとんどないため、アプリケーションの移植性が高くなります。

この欄は必須です。

注意：［＃］欄には、自動作成される連続番号が表示されます。カーソルは、この欄には止まりません。


DBMS

この欄には、この項目で指定した物理データベースのデータベース管理システムのタイプが表示されます。ズームして、前のページで説明した［DBMS］テーブルに定義されているDBMS一覧を表示できます。［DBMS］テーブルに新しい行が作成されると、［DBMS］欄はシステムのデフォルト値のDBMSを受け取ります。

この欄は必須です。


DB名

この欄は、DBMSのサーバが処理する異なるデータベースのすべてからアクセスされる子データベースを識別します。dbMAGICがサポートするDBMSの一部は、複数の異なる物理データベースを１つの論理エンティティとして維持します。通常この論理エンティティはデータベースサーバです。

この欄には論理名を使用できます。

この欄は省略できます。


MAGICサーバ

この欄では、データ元として使用するdbMAGICサーバを設定します。dbMAGICでリモートデータにアクセスするには、dbMAGICクライアント／サーバモデルとDBMSのクライアント／サーバモデルという２つの方法があります。

■dbMAGICクライアント／サーバモデル：

この方法を使用するには、dbMAGICクライアント／サーバをセットアップする必要があります。dbMAGICは、ホストマシンのdbMAGICサーバを使用してリモートデータにアクセスします。このアクセスに必要なのは、dbMAGICデータベースゲートウェイだけです。

■DBMSのクライアント／サーバモデル：

DBMSにクライアント／サーバサービスがある場合、dbMAGICではこの機能を使用できます。この場合、データベースはdbMAGICのローカルデータベースのように見え、dbMAGICデータベースゲートウェイでアクセスできます。

［MAGICサーバ］欄を使用するのは、データがリモートマシンにあり、dbMAGICクライアント／サーバモデルでそのマシンにアクセスする場合だけです。

この欄には論理名を使用できます。

この欄は省略できます。


位置

この欄では、dbMAGICデータベースサーバを使用してデータにアクセスするときのデータベースの物理位置についての情報を設定します。

この欄には論理名を使用できます。

この欄は省略できます。


データベース特性ダイアログ

このダイアログは、一部のデータベース項目に必要な追加パラメータを表示します。このダイアログの設定は、ほとんど変更することはありません。

関連項目

DBサーバ	キーチェック
ユーザ名	ファイルロック
パスワード	ロックパス
ｄｂMAGICレコードロック	共通データ辞書
開発モードでのファイル変換	データベース情報
定義チェック


DBサーバ

この欄では、データのアクセスに使用するDBMSのサーバ名を設定します。DBMSサーバを使用すると、dbMAGICからはデータがローカルデータのように見え、すべてのリモートアクセスは、必要に応じてこのDBMSサーバによって処理されます。

注意：［データベース］テーブルの［MAGICサーバ］欄とこの欄には、同じデータベース項目を設定しないでください。

この欄には論理名を使用できます。

この欄は省略できます。


ユーザ名

データベースには、ユーザ名とパスワードが必要なものがあります。これは、dbMAGICサーバまたはDBMS独自のデータベースサーバの両方に当てはまります。dbMAGICクライアント／サーバモデルを使用してリモートのホストマシン（通常、強力なセキュリティシステムがオペレーティングシステムに組み込まれたミニコンピュータまたはワークステーション）にアクセスする場合はユーザ名とパスワードが必要です。［データベース特性］ダイアログで［ユーザ名］を空欄にすると、このデータベース項目を使用して最初にファイルにアクセスしたときにダイアログがオープンして、ユーザ名とパスワードの入力を求めてきます。

この欄には、ホストのセキュリティシステムによって認識されるユーザ名を設定します。ホストには、このデータベース項目が表示するファイルがあります。[ユーザ名］は保護されていない“MAGIC.INI”に保存されるため、この欄にはシークレット名を使用してください（「12.10 シークレット名テーブル」を参照）。

この欄は省略できます。


パスワード

この欄には、ホストのセキュリティシステムによって認識されるパスワードを設定します。ホストには、このデータベース項目が表示するファイルがあります。［パスワード］は保護されていない“MAGIC.INI”に保存されるため、この欄にはシークレット名を使用してください（第12章「使用権利」を参照）。

この欄は省略できます。


dbMAGICレコードロック
dbMAGICレコードロック（No）

この欄に、「Yes」を設定すると、もとになるデータベースの並行処理制御に加えて、dbMAGIC自身の並行処理制御を使用します。もとになるデータベースの並行処理制御は常に有効です。

dbMAGICが使用するファイルにアクセスする外部アプリケーションには、これらのファイルを使用するdbMAGICの動作が通知されて、ファイルの一貫性が保たれます。

「No」を設定すると、もとになるデータベースの並行処理制御だけが有効になります。


開発モードでのファイル変換
開発モードでのファイル変換（Yes）

この欄には、開発モードでアプリケーションが、もとになるデータベースファイルのファイル構造を変更することができるかどうかを設定します。


外部使用

dbMAGICは、dbMAGICのデータベースファイルに対するマルチユーザアクセスを許可し、これに必要な並行処理制御をすべて行います。また、ほかのアプリケーションのdbMAGICファイルへの並行アクセスも許可します。このパラメータでは、dbMAGICが使用する並行処理制御のタイプを設定します。

この欄を「Yes」に設定すると、dbMAGICの内部機構と共にもとになるデータベースとなっているデータベースの並行処理制御が使用されます。このように、dbMAGICが使用するファイルにアクセスする外部アプリケーションが、これらのファイルを使用するdbMAGICの動作に通知されて、ファイルの一貫性が保たれます。

「No」に設定すると、並行処理制御にdbMAGICの内部機構だけを使用します。dbMAGICだけがデータベースファイルにアクセス権を持つ場合は、「No」に設定します。このモードでほかのアプリケーションがファイルにアクセスした場合には、ファイルの一貫性は保証されません。

注意：ファイルが外部アプリケーションによって使用される場合は、並行処理制御サービスはもとになるデータベースマネージャが行います。またdbMAGICと競合しないようにするために、外部アプリケーションもこのサービスを使用しなければなりません。

この欄は必須です。デフォルト値は、データベース項目のDBMSの種類によって異なります。


定義チェック

dbMAGICは、独自のファイル辞書を保有しています。dbMAGICは、さまざまなDBMSに記憶されているデータにアクセスしますが、これらのDBMSも独自のファイル辞書を保有しています。データ構造の修正は、dbMAGIC（修正内容はDBMSのファイル辞書に自動的に反映される）または外部DBMSユーティリティ（dbMAGICには認識されない）によって行われます。その結果、dbMAGICのファイル辞書には、dbMAGICプログラムが処理したデータの現在の構造が反映されていない場合があります。これは、dbMAGICプログラムの動作に異常が発生する原因になります。この欄を「Yes」に設定すると、データファイルをオープンするたびに、物理ファイルのデータ構造がdbMAGICのファイル辞書の定義に対してチェックされます。物理ファイル構造とdbMAGICのファイル辞書の定義が一致しない場合は、エラーメッセージが表示されて、処理がアボートされます。この機能は、ファイル構造の情報を提供できるDBMSに使用できます。この情報の内容は、DBMSタイプによって異なります。

［定義チェック］欄の値を以下に示します。

Yes … ファイルがオープンされるたびに物理ファイル構造をチェックします。

No … ファイルがオープンされたときのファイル構造のチェックを無効にします。

この欄は必須です。デフォルト値は、データベース項目のDBMSタイプによって異なります。

注意： 旧バージョンでのこの機能の指定方法、つまり［データベース情報］欄に「CHKDEF=YES」を指定する方法は、現バージョンでも使用できます。しかし、この欄の設定方法に変えることをお勧めします。


キーチェック

dbMAGICのキーチェック機能は、データの整合性を保つのに役立ちます。チェックキーを有効にすると、エンドユーザがレコードにデータを入力するときにデータファイルをチェックして、キーの値が一意であるかどうかを調べます。dbMAGICのファイル辞書で［重複不可］と定義されたキーを構成する項目に対して、エンドユーザが重複した値を入力した場合は、「重複キー」のエラーメッセージが表示されて、入力を変更するまでエンドユーザは以下の処理を実行できません。この機能は、開発者がプログラミングする必要はありません。しかし、一部のDBMSでは、処理能力に影響することがあります。その場合、このチェックを無効にすることもできますが、重複キーに対する処理はDBMSの種類によって異なります。

［キーチェック］欄に設定できる値を、以下に示します。

Yes … 重複不可キーチェックを有効にします。

No … 重複不可キーチェックを無効にします

この欄は必須です。デフォルト値は、データベース項目のDBMSの種類によって異なります。


ファイルロック

DBMSがマルチユーザアクセスをサポートする場合には、［設定／動作環境］の［マルチユーザアクセス］を使用して、dbMAGICをDBMSに優先させることができます。この欄を「Yes」に設定すると、タスクに定義されているアクセスモードと共有モードに従って、オープンしている各ファイルがロックされます。「No」に設定すると、DBMSのデフォルトパラメータが適用されます。たとえば、DBMSの場合、２人のユーザが同じファイルを書き込みモードでオープンできるときは、［マルチユーザアクセス］が「Yes」に設定されているとそのファイルがロックされません。

DBMSがマルチユーザアクセスをサポートしない場合には、［ファイルロック］欄は無効です。マルチユーザフラグは通常のファイルにだけ有効で、dbMAGICが作成するRPR、CTL、ソート、または一時ファイルには無効です。


ロックパス

データベースサーバを使用してデータにアクセスする場合は、dbMAGICはこのデータの物理的位置を認識していません。データはリモートのホストマシンにありますが、ローカルデータとして処理されます。この場合、dbMAGICの内部ロック機構は働きません。この機構では、同じデータにアクセスするすべてのユーザが同じロックファイルを共有している必要があるためです。［dbMAGICレコードロック］欄が「Yes」の場合、dbMAGICの内部ロック機構をデータベースのロック機能とします。その場合は、対象となるデータベース項目のすべてのユーザが共有しているディスクディレクトリにアクセスしてください。そのようなディレクトリは、この［ロックパス］欄を使用すれば設定できます。

［設定／データベース］テーブル内の［データベース特性］ダイアログで［ロックパス］を設定すると、他のすべての定義が無効になります。

［データベース特性］で［ロックパス］が設定されたデータベースに関するロックは、そのパスにあるロックファイルを使用して行われます。そのデータベースのファイルがオープンされたディレクトリには、ロックファイルはオープンされません。データベースのロックパスを定義する場合は、そのファイルをアクセスするすべてのユーザによって共有されているパスを必ず設定してください。こうしないと、データが破壊される可能性があります。

この欄には論理名を使用できます。

この欄は省略できます。


共通データ辞書

dbMAGICがサポートするプラットフォームには、データベース情報を集中的に管理するものがあります。共通データ辞書を使用すると、異なるアプリケーションプログラムが同じデータにアクセスできるようになり、データ構造を常に同期させます。

この欄では、dbMAGICが参照する共通データ辞書の名前を設定します。

この欄には論理名を使用できます。

この欄は省略できます。


データベース情報

この欄には、実行時にデータベースマネージャのゲートウェイに転送されるカスタマイズ情報が表示されます。データベースゲートウェイのカスタマイズについての詳細は、第20章「DBMSへのゲートウェイ」を参照してください。

この欄は省略できます。


論理名

論理名は、移植できるアプリケーションを書くための重要な機能です。論理名機能を使用すれば、物理的な記憶装置メディアやオペレーティングシステムの命名規則と明示的な関係を持たせないで、アプリケーションを開発できます。dbMAGICは、実行時に、［論理名］テーブルに従ってアプリケーションの論理名を変換して、このような移植性を保ちます。論理名は、ファイル名が使用されるときに使用します。

論理名情報は、“MAGIC.INI”の[MAGIC_LOGICAL_NAMES]に含まれています。

関連項目

論理名の使用方法

論理名

実行名


論理名

この欄では、アプリケーションで使用される名前を定義します。この名前は、実行時には、［実行名］欄に入力された値と置き換えられます。［論理名］は、インストールしてあるすべてのアプリケーションで同じ名前を使用してください。

注意：［＃］欄には、dbMAGICによって論理名識別子として使用される、自動作成された連続番号が表示されます。カーソルは、この欄には止まりません。


実行名

この欄には、実際のファイルアクセス時に論理名と置き換わる実際の値が表示されます。この欄には、dbMAGICをインストールするたびに適切な値を設定してください。


論理名の使用方法

実行時には、dbMAGICが入出力処理のためにファイル名を使用するたびに、論理名アルゴリズムが実行されます。ファイル名が左から右に検索され、［論理名］テーブルの［実行名］欄によって論理名と置き換えられます。１つのファイル名に複数の論理名を使用することもできます（たとえば、ドライブ名、ディレクトリ名、ファイル名にそれぞれ１つずつ）。

dbMAGICでは、論理名の定義に対して以下の２つの規則が定義されています。

■	バージョン５からの規約で、これに準拠することをお勧めします。

■	バージョン4.xxの規約です。この体系に対するサポートは将来は、なくなる予定なので、バージョン4.xxの論理名は、アプリケーションから徐々に排除することをお勧めします。

論理名の構文（バージョン５の規約）

論理名の構文を以下に示します。

%論理名%（%logicalname%）

先頭の％ … 論理名の始まりを示す。

論理名 … 論理名を示す。

最後の％ … 論理名の終りを示す。

論理名を使用する際の規則を以下に示します。

1.	％記号は、論理名を区切ること以外には、ファイル名に使用できません。

2.	変換中は、論理名とその区切り記号は、［論理名］テーブルに従ってその訳語に置き換えられます。論理名が［論理名］テーブルにないときは、ファイル名からクリアされます。

3.	終了区切り記号がないときは、最初の区切り記号からテキストの終わりまでのすべてのテキストが論理名として処理されます。

論理名の構文（バージョン4.xxと互換性のあるモード）

バージョン4.xxの論理名の構文を以下に示します。

$論理名終止符（$logicalnameTerminator）

＄ … 論理名の始まりを示す。

論理名 … 論理名を示す。

終止符 … 論理名の終りを示す。（０～９、ａ～ｚ、Ａ～Ｚ、‘＿’以外の文字）

変換中は、論理名とその区切り記号は、［論理名］テーブルに従ってその訳語に置き換えられます。論理名が［論理名］テーブルにないときは、ファイル名としてそのまま使用されます。


言語

多国語サポート（MLS）によって、開発者が１つの言語を使って開発したアプリケーションを、他の言語に展開させることができます。

MLSはdbMAGICのWindows版でのみ有効です。キャラクタベースのユーザインタフェース版のdbMAGICでは、この機能はサポートされません。MLSは、左から右へ書く言語でのみ有効です。

設定方法

■  設定メニューに［設定／言語］という新しい項目が追加されました。［言語］テーブルには、以下の項目があります。

・言語 … 言語名。最大128文字のテキスト。大文字と小文字は区別されます。

・変換ファイル … 言語が選択された時に使用される言語変換ファイルのフルパス名。ズームで、標準のファイル選択ダイアログが表示されます。

■  ［多言語サポートファイル］パラメータが［動作環境］テーブルに表示されます。

■  言語変換ファイルを作成するには、以下の手順に従ってください。

[1]	汎用の言語変換ファイルを以下の形式で作成します。

１項目につき２行

各行は<CR LF>	が終端

２行目は、１行目の変換テキスト

１行の最大長は32000文字

[2]	言語変換ファイル作成ユーティリティを使用して、最終的な言語変換ファイルを作成します。

実行：MLS_BLD <入力ファイル名> <出力ファイル名>

<入力ファイル名>は、各行が一対の変換テキストになっている汎用の言語変換ファイルの名前です。

<出力ファイル名>は、拡張子がLTFの最終的な言語変換ファイルの名前で、MAGIC.INIの新しい［言語］テーブルの「変換ファイル」として選択されます。

■  それぞれのコントロールの［フォント］パラメータには、［式］を設定することができます。以下のテキストは、実行時に言語変換ファイルを使用して変換されます。

・	コントロールテキスト

・	メニュー項目テキスト

・	自動ヘルプテキスト

・	エラーコマンドテキスト

・	ウインドウタイトルテキスト

・	ビュー項目名テキスト

・	キー名テキスト

・	キーセグメント名テキスト

・	入出力ファイル名テキスト

・	チョイスコントロール（ラジオボタン、コンボボックス、リストボックス、タブコントロール）の選択肢のテキスト。選択肢がアクティブになった時に実際に設定される値は、表示された変換テキストにかかわらず、アプリケーション内で定義された値が使用されます。

関連する関数については、第18章「関数」のGETLANG()関数とSETLANG()関数の項を参照してください。


言語

言語名。最大128文字のテキスト。大文字と小文字は区別されます。


言語変換ファイル

言語が選択された時に使用される言語変換ファイルのフルパス名。ズームで、標準の「ファイルを開く」ダイアログが表示されます。


プリンタ

dbMAGICの［プリンタ］テーブルは、インストールされているdbMAGICで使用できる出力装置とその属性を一覧します。テーブルの各データは、dbMAGICの論理プリンタです。dbMAGICのアプリケーション内では、論理プリンタに対する参照だけが実行できます。［プリンタ］テーブル内のプリンタデータは、入出力ファイル（オペレーティングシステムのテキストファイル）を出力装置に割り当てるために使用される［プリンタ一覧］を形成しています。プリンタメディアへの出力処理が実行時に行われると、dbMAGICは物理的なプリンタ属性を［プリンタ］テーブルに問い合わせます。

［プリンタ］テーブルでは、出力をローカルまたはリモートのプリンタに割り当てることができます。

［プリンタ］テーブルの情報は、”MAGIC.INI”の[MAGIC_PRINTERS]セクションに含まれています。

関連項目

名前

キュー

コマンドファイル

変換ファイル

行


名前

論理プリンタの名前です。この名前は、［プリンタ一覧］に表示される名前です。プリンタ名は、dbMAGICプログラムにプリンタとして識別されるデータ文字列です。この欄で指定したプリンタ名は、実行時にdbMAGICプログラムが論理プリンタ名を解析して実際のプリンタデータにアクセスするときに検索されます。印刷についての詳細は、「9.6 プリンタ属性のサポート」を参照してください。

注意：［＃］欄には、自動作成される連続番号が表示されます。カーソルは、この欄には止まりません。


キュー

この欄では、現在の論理プリンタに割り当てられているすべての出力を受信する物理プリンタを指定します。ローカルまたはリモートのプリンタを指定できます。［キュー］欄には、文字列の値を指定します。dbMAGICは、この文字列を構文解析して、有効な情報を取り出します。有効なプリンタ情報が見つからない場合は、デフォルトの論理プリンタとしてオペレーティングシステムのデフォルトのプリンタが選択されます。

ローカルプリンタの定義

ローカルプリンタのアドレスを定義するには、１桁の数字を含む文字列またはキューのオペレーティングシステムの論理名を指定します。［キュー］欄の構文解析時にこの１桁の数字があると、出力はこの数字と対応するオペレーティングシステムのデフォルトプリンタに割り当てられます。

リモートプリンタの定義

プリンタ出力をリモートのdbMAGICサーバに割り当てるには、サーバの名前を［キュー］欄の文字列の最初の部分として指定します。サーバについての詳細は、この章の［サーバ］の項を参照してください。サーバ名のうしろに続く情報は、ローカルプリンタに対して指定されている規則に従って解釈されます。以下に例を示します。

［キュー］欄の値	解釈
(SERVER1)	テーブル内の SERVER1という名前のdbMAGICサーバのデフォルトのプリンタに出力
(SERVER1)Printer2	ローカルの［サーバ］テーブル内の SERVER1という名前のdbMAGICサーバの［プリンタ］テーブルで Printer2として定義されているプリンタに出力

注意：このプリンタ定義はリモートサーバに割り当てることもできます。

詳細については、第21章「クライアント／サーバアーキテクチャ」を参照してください。


コマンドファイル

この欄では、プリンタ制御コードが入ったファイルの位置とオペレーティングシステム名を設定します。このファイルは、dbMAGICの論理プリンタ属性を解析するのに使用されます。コマンドファイルには、ラベルとプリンタ制御コードが入っています。dbMAGICのプリンタ属性は、これらのラベルを使用して作成されます。dbMAGICのフォームを印刷するときに、論理プリンタ属性はプリンタのコマンドファイル内の情報に従って変換されます。異なるプリンタのコマンドファイルに同じラベルが存在する場合があります。同じプログラムでも、コマンドファイルが異なると、出力結果が異なることがあります。

コマンドファイルの構造についての詳細は、「9.6 プリンタ属性のサポート」の「プリンタコマンドファイル」を参照してください。


変換ファイル

この欄では、変換テーブルが含まれるファイルの位置とオペレーティングシステム名を設定します。この変換テーブルを使用して、dbMAGICの内部文字コードを物理プリンタのコードに変換します。変換ファイルには、各ASCII文字コードに対応する、合計256個のdbMAGIC内部文字コードがあります。各項目には、プリンタに送られる文字の代替文字列を設定します。プリンタ文字列は、単数または複数の文字コードです。これらの文字列には、制御コードを指定することもできます。


行

この欄には、印刷に使用するページのサイズを設定します。このページサイズは、物理プリンタのページサイズと同じである必要はありません。通常、この欄の値は、物理プリンタの各ページの行数より小さく指定します。この欄の値は、dbMAGICがプリンタ出力を監視するとき、内部計算用に使用します。dbMAGICは、［行］欄の値と同じ行数を送り終えると、プリンタにフォームフィード信号を送ります。［行］欄の値は、現在のプリンタのデフォルト値として使用されます。この値は、データ出力コマンドに使用される特定の入出力ファイルの［行］欄の値によって変更される場合があります。詳細については、「7.13 入出力ファイルテーブル」と「8.18 データ出力」を参照してください。


ログオン

［ログオン］ダイアログでは、dbMAGICユーザの［ユーザID］と［パスワード］を指定します。これらの値は、ユーザのアクセス権を決定するために、［ユーザID］テーブルでチェックされます。入力されたユーザIDとパスワードが［ユーザID］テーブルの項目と一致しない場合は、エラーメッセージが表示されて、ダイアログはオープンしたままになります。［ユーザID］テーブルにユーザIDとパスワードがある場合は、アプリケーション内のユーザの権利が設定されます。ユーザIDとパスワードは、開発と実行の両方の機能を備えています。［ログオン］ダイアログからも、［日付］欄にアクセスできます。ユーザは、特定のセッションに対して［日付］欄を変更できます。［ログオン］ダイアログは、以下の［動作環境］オプションによって制御されます。

■	パスワード入力

■	日付入力

■	ログオン許可

これらのパラメータの詳細は、［動作環境］を参照してください。

関連項目

ユーザID

パスワード

日付


ユーザID

ユーザの名前です。任意の英数字を入力できます。ユーザIDは、［ユーザID］テーブルになければなりません。［動作環境］テーブルで［パスワード入力］パラメータが「Yes」に設定されていると、［ログオン］ダイアログに［ユーザID］欄が表示されます。


パスワード

ユーザIDと組み合わされるパスワードで、任意の文字を入力できます。ユーザIDとパスワードの対は、［ユーザID］テーブルで定義してください。［動作環境］テーブルで［パスワード入力］パラメータを「Yes」に設定すると、［ログオン］ダイアログに［ユーザID］欄と［パスワード］欄が表示されます。

ユーザIDとパスワードのチェックでは、大文字と小文字を区別します。［ユーザID］欄と［パスワード］欄が表示されると、ユーザIDとパスワードが入力されるまで［ログオン］ダイアログはオープンしています。


日付

「システム日付」の代替日付です。この日付は、MDATE関数で参照できます。詳細については、「18.5　関数一覧（ABC順）」を参照してください。また、「ＭＡＧＩＣ日付」も参照してください。

［動作環境］テーブルで［日付入力］パラメータを「Yes」に設定すると、［ログオン］ダイアログに［日付］欄が表示されます。


プリンタ属性

dbMAGICの論理プリンタ属性は、［プリンタ属性］テーブルを使用して定義できます。［プリンタ属性］テーブルを表示するには、以下のいずれかの操作を行います。

■	［設定／プリンタ属性］の選択

■	［動作環境］の［プリンタ属性ファイル］からズーム

■	［CTL特性］の［プリンタ属性ファイル］からズーム

［プリンタ属性］テーブルは、プリンタの印刷スタイルをdbMAGICの色と組み合わせて論理印刷スタイルを作成します。色は、フォーム領域をペイントするのに使用し、色が表すプリンタ属性で出力します。

このテーブルの各項は、dbMAGICの特定の論理印刷スタイルに対応しています。

テーブルの各欄についての説明

名前

プリンタコマンド

色


名前

論理プリンタ属性の名前です。フォームの指定範囲に論理プリンタ属性を選択すると、［プリンタ属性］一覧に表示されます。

注意：［＃］欄は、行の番号です。自動的に割り当てられます。カーソルは、この欄には止まりません。


プリンタコマンド

論理プリンタ属性を構成する１つまたは複数のプリンタ印刷スタイルの集合です。各プリンタ印刷スタイルは、物理プリンタのフォントまたは印刷書体を表します。この欄の値は、［プリンタコマンド］一覧にズームして選択します。［プリンタコマンド］一覧には、スタイル名の一覧が表示されます。このスタイル名は、［プリンタ］テーブルで各プリンタに割り当てられるプリンタコマンドファイルから読み込んだものです。複数のコマンドファイルに現れるスタイル名は、［プリンタコマンド］一覧には一度しか表示されません。

実行時に論理プリンタ属性が実際のプリンタ制御コードに展開されると、dbMAGICはプリンタ属性として定義された全プリンタコマンドから、［プリンタコマンド］欄の入力順に前処理部分をプリンタに送ります。次にフォームの項目をプリンタに送ります。フォーム項目の後、dbMAGICはプリンタ属性として定義された全プリンタコマンドから、［プリンタコマンド］欄の入力順で後処理部分（存在する場合）をプリンタに送ります。

複数のプリンタコマンドを１つの論理プリンタ属性に組み合せれば、独自の印刷スタイルを作成して、アプリケーションで使用できます。


色

論理プリンタ属性に対応させる色の番号です。この欄から［動作環境］テーブルで指定された色テーブルにズームして、色を選択します。

色は、フォームの指定範囲にプリンタ属性を割り当てる場合に使用します。色をこのように使用するのは、フォーム内の「場所」を占めずにプリンタ属性の使用を視覚的に表示できるためです。

出力の印刷スタイル指定

出力テキストの一部に印刷スタイルを指定する場合は、以下の手順に従ってください。

[1]	［プログラム辞書］のプログラム項目からタスクツリーか処理テーブルにズームし、［タスク環境／フォーム］を選択します。

[2]	［フォーム］テーブルから出力フォームを印刷するレポート行を選択します。フォームのクラスは０以外（０クラスのフォームは画面出力用）にしてください。

[3]	［名前］欄から［フォーム］にズームします。

[4]	印刷スタイルを指定するテキスト（コントロール）を選択します。

[5]	［コントロール特性］ダイアログにズームします。

[6]	［色］欄から［プリンタ属性］一覧にズームします。

[7]	［プリンタ属性］一覧から印刷スタイルを選択します。選択した範囲は、指定した印刷スタイルに対応する色でフォームに表示されます。

[8]	［タスク環境／入出力ファイル］を選択し、［メディア］欄に「P＝プリンタ」があり、［プリンタ］欄には、指定した［プリンタコマンド］ファイルに制御コードが存在するタイプのプリンタ名が指定されていることを確かめます。たとえば、あるタイプのレーザプリンタに対して［プリンタコマンド］ファイルを指定した場合は、［プリンタ］欄にはそのタイプのプリンタ名が表示されます。


シークレット名

シークレット名は、実際の使用権利の内容を権利を持たないユーザから隠す必要がある場合に使用します。たとえば、アプリケーションファイルのアクセスキーやデータファイルのアクセスキーにはシークレット名を使用してください。

［シークレット名］テーブルは、［論理名］テーブルとほぼ同じですが、以下の点が異なります。

1.	［シークレット名］テーブルにアクセスできるのは、スーパーバイザおよび、スーパーバイザグループに登録されたユーザだけです。

2.	シークレット名は、［動作環境］テーブルの［セキュリティファイル］パラメータで指定されるファイルに保存されます。このセキュリティファイルは暗号化されます。

シークレット名は、論理名と同じ構文で使用できます。論理名についての説明は、論理名を参照してください。


ユーザグループ

［ユーザグループ］テーブルではグループを宣言し、その権利を定義します。このテーブルにアクセスするには、以下の手順に従ってください。

[1]	スーパーバイザとしてログインします。

[2]	［設定／ユーザグループ］を選択します。

[3]	［ユーザグループ］テーブルの［権利］欄から［権利］テーブルにズームします。

[4]	［権利］テーブルの［キー］欄から［公開権利一覧］にズームして権利を選択します。

ユーザをグループに割り当てる

ユーザにグループメンバー権を割り当てるには、以下の手順に従ってください。

[1]	スーパーバイザとしてログインします。

[2]	［設定／ユーザID］を選択し、設定するユーザを強調表示させます。

[3]	［ユーザID］テーブルの［グループ］欄から［グループ］テーブルにズームします。

[4]	［グループ］テーブルの［グループ］欄から［グループ一覧］にズームします。

[5]	設定するグループを選択します。

関連項目

名前

権利


名前

ユーザグループの名前です。


権利

グループに割り当てられている権利キーの数を表示します。この欄からグループの［権利］テーブルへズームできます。権利キーは、複数の権利に対応できるため、表示される数はグループが持つ権利の合計より少ないことがあります。

スーパーバイザは、［権利］欄からズームし、グループの［権利一覧］をオープンして特定のグループが所有する権利を調べることができます。

特定のグループが所有する一連のキーは、異なるアプリケーション間でも一定です。しかし、これらのキーに対応する権利は、アプリケーションによって異なることがあります。スーパーバイザが［ユーザグループ］テーブルの［権利］欄からズームした時に表示される権利一覧は、［アプリケーション一覧］に表示される最初のアプリケーションに対してグループが持つ一連の権利です。アプリケーション名は、グループの［権利］テーブルの最上段に表示されます。グループが別のアプリケーションに対して持つ権利を表示するには、グループの［権利］テーブルが表示されている時にテーブルの右下に現れる［アプリケーション］ボタンをクリックし、新しいアプリケーションを一覧から選択します。

スーパバイザグループ

新しいグループ、スーパーバイザが利用可能となりました。スーパーバイザはユーザをスーパーバイザグループに登録することができます。スーパーバイザグループに所属するユーザは自動的にそのCTLファイルに対するスーパーバイザの全ての権利を受け継ぐことができます。


ユーザIDテーブル

ユーザIDテーブルでは個々のユーザにパスワードが割り当てられ、さらにグループに割り当てられることもあります。

［ユーザID］テーブルへのアクセス権があるのはスーパーバイザだけで、［設定／ユーザID］を選択してテーブルを編集します。スーパーバイザは、開発、実行の両モードでいつでもユーザIDを追加、編集できます。

ただし、スーパーバイザは、すべてのユーザのパスワードを知っているわけではありません。パスワードが登録してある場合は、アスタリスク(*)の文字列として表示されます。スーパーバイザはユーザのパスワードを変更できますが、すでにあるパスワードを見ることはできません。パスワードを変更するには、パスワードボックスにズームして、パスワードを2回入力します。パスワードは入力時には表示されません。こうすれば、スーパーバイザ以外のユーザでも自分のユーザIDとパスワードを入力できます。スーパーバイザ以外のユーザに許可される［ユーザID］テーブルの変更は、パスワードの変更だけです。

関連項目

ユーザID	グループ

名前	ユーザ特性

パスワード	情報

権利


ユーザID

ログオン時に、ユーザが［ログオン］ダイアログの［ユーザID］欄に入力する文字列と比較される文字列です。［動作環境］テーブルの［パスワード入力］パラメータが「No」に設定されている場合は、［ログオン］ダイアログは自動的には表示されません。［ユーザID］欄は、プログラム時にUSER(0)関数で照会できます。


名前

ユーザ名。この欄は、ログオン手続き時にはチェックされません。スーパーバイザにユーザを識別させ、プログラム時にUSER(1)関数を使用して照会できます。


パスワード

ログオン時にユーザが［ログオン］ダイアログの［パスワード］欄に入力する文字列と比較される英字の文字列です。


権利

ユーザに割り当てられている権利キーの数を表示します。その中には、グループメンバー権で獲得した権利も含まれます。この欄からユーザの［権利］テーブルへズームできます。権利キーは、複数の権利に対応できるため、表示される数はユーザが持つ個々の権利の合計より少ないことがあります。

スーパーバイザは、［権利］欄からユーザの［権利］テーブルへズームし、開発時、実行時にいつでも権利を選択して割り当てることができます。このプロセスは、「12.8 ユーザの権利テーブルの入力」を参照してください。

個々のユーザは、個人の権利を持つ必要はありません。


グループ

［グループ］欄は、ユーザが所属するグループの数を表示します。［グループ］欄でメンバー権を定義するには、［グループ］欄から［グループ］テーブルにズームし、ユーザに対するグループを選択します。ユーザは、複数のグループに所属してもかまいません。［グループ］テーブルについては後述します。

［ユーザID］テーブルが表示されると、スーパーバイザはユーザに関する情報をユーザ特性として追加できます。［ユーザ特性］ダイアログは、画面の右下にある「特性」ボタンを押してオープンします。この［ユーザ特性］に入力された情報は、プログラム時にUSER(2)関数で照会できます。

ユーザがログオンすると、ログオン画面のユーザIDとパスワード文字列は［ユーザID］テーブルのものと比較されます。ユーザが動作環境レベルで任意のユーザIDとパスワードを持っていても、各アプリケーションではそのユーザにそれぞれ異なるセキュリティの方法を適用できます。［ユーザID］テーブルに１つ以上の項目がある場合に、ユーザがデータやプログラムにアクセスすると、セキュリティチェックが行われます。ユーザに権利がないために処理が拒絶された場合には、メッセージ行にメッセージが表示されます。

［権利設定］ダイアログは、開発時にアプリケーション自体へのアクセスを制御します。プログラムに対しては、エンドユーザの実行時のアクセスも制御できます。プログラム内の実行時セキュリティをさらに細かく制御するには、RIGHTS()とUSER()関数を使用します。これらの関数を使用すれば、任意のセキュリティシステムを作成し、プログラムレベルでのアクセスの制御だけでなく、タスク内の要素へのアクセスも制御できます。「18.5 関数一覧（ABC順）」の「RIGHTS」と「USER」の項を参照してください。


ユーザ特性

ユーザIDテーブルが表示されている状態で、画面の右下の方にある特性ボタンをおすことにより、スーパーバイザは、ユーザに関する追加情報を自由なメモテキストで入力することができます。このメモ項目に入力された情報は、USER(2)関数を使用して照会できます。


情報

ユーザに関する追加情報を記述するための自由なメモテキストです。このメモ項目に入力された情報は、USER(2)関数を使用して照会できます。


グループテーブル

グループテーブルは、個々のユーザにグループを割り当てるためのテーブルです。

ユーザにグループを割り当てるには、以下の手順に従ってください。

[1]	［グループ］テーブルに行を作成します。

[2]	［グループ］テーブルの［グループ］欄から［グループ］一覧にズームします。

[3]	設定するグループを選択します。

関連項目

グループ


グループ

ユーザがメンバーとして割り当てられているグループの数が表示されます。

ここから、［グループ一覧］にズームして、割り当てたいグループを選択します。


ユーザの権利テーブル

権利の定義には、３段階のプロセスがあります。

1.［権利］テーブルへ権利を追加する。

2.［権利設定］ダイアログを使用して、特定のdbMAGICの処理に権利を対応させる。

3.特定のユーザの［権利］テーブルで特定のユーザに権利を対応させるか、グループの［権利］テーブルで特定のグループに権利を対応させる。

個々のユーザに権利を設定するには、以下の手順に従ってください。

[1]	スーパーバイザとしてログインします。

[2]	［設定／ユーザID］を選択します。

[3]	［ユーザID］テーブルの［権利］欄から、ユーザの［権利］テーブルにズームします。

[4]	ユーザの［権利］テーブルに行を作成します。

[5]	権利が「公開権利」の場合には、ユーザの［権利］テーブルから［公開権利一覧］にズームして権利を選択できます。

[6]	権利が非公開の場合には、割り当てる権利のキーを入力します。この方法は、「公開権利」の設定でも使用できます。

特定のユーザが所有する一連のキーは、異なるアプリケーション間でも一定です。しかし、これらのキーに対応する権利は、アプリケーションによって異なることがあります。スーパーバイザが［ユーザID］テーブルの［権利］欄からズームしたときに表示される［権利］テーブルは、［アプリケーション一覧］に表示される最初のアプリケーションに対してユーザが持つ一連の権利です。アプリケーション名は、グループの［権利］テーブルの最上段に表示されます。ユーザが別のアプリケーションに対して持つ権利を表示するには、ユーザの［権利］テーブルが表示されている時にテーブルの右下に現れる［アプリケーション］ボタンをクリックし、新しいアプリケーションを一覧から選択します。

関連項目

キー


キー

［キー］欄の値は、いずれかのアプリケーションで定義されている権利を表しています。

権利が「公開権利」の場合には、［公開権利一覧］にズームして権利を選択できます。

権利が非公開の場合には、割り当てる権利のキーを入力します。この方法は、「公開権利」の設定でも使用できます。


CTL特性

dbMAGICは、dbMAGICの動作環境全体の設定を変更し、特定のアプリケーションの環境を拡張または変更するパラメータを備えています。これらのパラメータは、特定のアプリケーションCTLにだけ適用されます。これは、［設定］メニューで指定されるシステム全体のパラメータとは異なります。システム全体のパラメータの場合は、システム内のすべてのdbMAGICアプリケーションに適用されます。

オプションのパラメータは、［CTL特性］ダイアログで設定します。［CTL特性］ダイアログを表示するには、アプリケーションがオープンしているときに［開発／CTL特性］を選択します。

［CTL特性］ダイアログの各パラメータの説明

開始プログラム	フォント定義ファイル
終了プログラム	キーボード割付ファイル
ロゴ画面	NULL計算
開始モード	CTLアクセスキー
開始／終了	公開権利アクセスキー
プリンタ属性ファイル	スーパー権利キー
基本色定義ファイル	NULL特性


開始プログラム

［開始プログラム］欄を使用すると、アプリケーションの初期化に必要な手続きを作成できます。ユーザがアプリケーションをオープンすると、このプログラムが自動的に他のどのプログラムより先に実行されます。それは［動作環境］テーブルの［開始プログラム］パラメータについてもいえます。

［開始プログラム］を選択するときは、［プログラム一覧］にズームするか、［プログラム辞書］テーブルのプログラム番号を入力します。


終了プログラム

［終了プログラム］として指定されたプログラムは、ユーザがアプリケーションを終了すると自動的に実行されます。通常は、終了プログラムを使用して、所定のアプリケーションシャットダウン手続きを実行します。

［終了プログラム］を選択するときは、［プログラム一覧］にズームするか、［プログラム辞書］テーブルのプログラム番号を入力します。


ロゴ画面

この欄の機能は、日本語版では、サポートされていません。


開始モード

この欄を使用すると、［動作環境］テーブルで指定されたデフォルトの開始モードを変更できます。アプリケーションをオープンするときに、実行、開発、なしのいずれのモードにするかを指定します。この機能を使用すると、特定のアプリケーションに異なる開始モードを指定できます。ズームして値を選択するか、「実行」には'R'、「開発」には'T'、「なし」には‘N’を入力します。


開始／終了

この欄を使用すると、CTLファイルに対して、［動作環境］テーブルの設定を無視して開始および終了プログラムを実行するように強制できます。この欄を「No」にすると、dbMAGICは［動作環境］の設定に基づいて開始および終了プログラムを実行します。デフォルトは「No」です。


プリンタ属性ファイル

この欄を使用すると、アプリケーションに対して、［動作環境］テーブルで指定された論理プリンタ属性を変更し、新しいプリンタ属性を異なるファイルに保存できます。このパラメータは、マルチアプリケーション環境で、アプリケーション特有のプリンタ属性ファイルを使用するときに使用します。第16章「設定」を参照してください。


基本色定義ファイル

この欄を使用すると、アプリケーションに対して、［動作環境］テーブルで指定したデフォルトの基本色定義ファイルを変更し、新しい色定義を異なるファイルに保存できます。この欄は、マルチアプリケーション環境で、アプリケーション特有の基本色定義ファイルを使用するときに使用します。第16章「設定」を参照してください。


フォント定義ファイル

この欄は、［動作環境］テーブルで指定したフォント定義ファイルと違っているアプリケーション専用の［フォント定義ファイル］を指定できます。

マルチアプリケーション環境で、アプリケーション特有のフォント定義ファイルを使用するときに使用します。


キーボード割付ファイル

この欄に代替キーボード割付を指定して、［動作環境］テーブルに指定したキーボード割付ファイルを無効にできます。代替キーボード割付ファイルを作成するには、「16.1　設定メニュー」の「設定／キーボード割付テーブルのパラメータ」の説明を参照して、キーボード割付ユーティリティを使用してください。［キーボード割付］テーブルで、既存の割付構成を利用して新しい割付を作成したときは、［ファイル保存］ダイアログの［保存ファイル名］欄に新しいファイル名を入力して新しい割付構成を保存します。


NULL計算

この欄は、dbMAGICのNULLサポートと関連があります。SQLなど一部のデータベースでは、項目にNULL値を使用できます。この欄は、１つまたは複数のNULL値項目を含む式がどのように計算されるかを示します。

■　N=NULLにする … 結果もNULL値になります。

■　D=デフォルト … 結果は、NULL項目に割り当てられたデフォルト値を使って計算されます。これらの値は、［NULL特性］テーブルで指定できます。［CTL特性］ダイアログの右下にある「NULL特性」ボタンを押せば、［NULL特性］テーブルにアクセスできます。

アプリケーションのデフォルトは、タイプレベルと項目レベルで変更できます。


CTLアクセスキー

［CTLアクセスキー］パラメータが表示されるのは、このキーのオーナーが［CTL特性］ダイアログにアクセスするか、オーナーが宣言されていないときはスーパーバイザがアクセスする場合だけです。このパラメータには、CTLアクセスキーという名前が付いています。このキーが宣言されている場合、開発や実行を目的としてアプリケーションを使用できるのは、キーのオーナーだけに制限されます。他のユーザや開発者は、アプリケーションをオープンできません。

CTLアクセスキーが定義されている場合には、開発時や実行時に特定のアプリケーションをオープンできるのは、キーの所持者だけです。

スーパーバイザがCTLアクセスキーを登録するには、以下の手順に従ってください。

[1]	アプリケーションを開発モードでオープンします。

[2]	［開発／CTL特性］を選択します。

[3]	［CTL特性］ダイアログの［CTLアクセスキー］欄にコード名を入力します。

次に、このキーの所有者を割り当てます。

[4]	［ユーザID］テーブルをオープンします。

[5]	希望するユーザの［権利］欄からそのユーザの［権利］テーブルへズームします。

[6]	コード名、つまり上記の手順３で入力したCTLアクセスキーを［キー］欄に入力します。

［CTLアクセスキー］欄に入力し、CTLアクセスキーを割り当てれば、CTLアクセスキーを持たないで［CTL特性］ダイアログを選択しても、［CTLアクセスキー］欄は表示されません。


公開権利アクセスキー

この欄が表示されるのは、このキーのオーナーか、スーパー権利キーのオーナーが［CTL特性］ダイアログにアクセスする場合だけです。

公開権利アクセスキーを登録すれば、特定のアプリケーションのセキュリティを改善できます。スーパーバイザがこのキーの使用権利を持てば、権限のないユーザが全ユーザのパスワードの入った“usr_std.jpn”ファイルを破壊し、スーパーバイザとしてログインしてシステムパスワード保護を解除することを防げます。不正なスーパーバイザはこのキーを持たないため、どの使用権利が特定のアプリケーションのどのキーに関連するかを発見できません。［ユーザID］テーブルの［権利］欄からズームしても、不正なスーパーバイザは［権利名］欄を見ることができません。この項目には、特定のキーに関連した使用権利が記述されています。また、［キー］欄から［権利］テーブル全体にズームすることもできません。

スーパーバイザが公開権利アクセスキーを登録するには、以下の手順に従ってください。

[1]	アプリケーションを開発モードでオープンします。

[2]	［開発／CTL特性］を選択します。

[3]	［CTL特性］ダイアログの［公開権利アクセスキー］欄にコード名を入力します。

次に、このキーの所有者を割り当てます。

[4]	［ユーザID］テーブルをオープンします。

[5]	希望するユーザの［権利］欄からそのユーザの［権利］テーブルへズームします。

[6]	コード名、つまり上記の手順3で入力した公開権利アクセスキーを［キー］欄に入力します。

［公開権利アクセスキー］欄を入力し、公開権利アクセスキーを割り当てれば、公開権利アクセスキーを持たないで［CTL特性］ダイアログを選択しても、［公開権利アクセスキー］欄は表示されません。


スーパー権利キー

この欄が表示されるのは、このキーのオーナーが［CTL特性］ダイアログにアクセスする場合だけです。

スーパーバイザは、開発と実行の目的で、特定のアプリケーションにスーパー権利キーを設定し、その所有者にアプリケーションの全処理に対するすべての使用権利を与えることができます。スーパー権利キーの所有者は、アプリケーション内の個々の処理に対し個別の使用権利を持つ必要はありません。

スーパーバイザがスーパー権利キーを登録するには、以下の手順に従ってください。

[1]	アプリケーションを開発モードでオープンします。

[2]	［開発／CTL特性］を選択します。

[3]	［CTL特性］ダイアログの［スーパー権利キー］欄にコード名を入力します。

次に、このキーの所有者を割り当てます。

[4]	［ユーザID］テーブルをオープンします。

[5]	希望するユーザの［権利］欄からそのユーザの［権利］テーブルへズームします。

[6]	コード名、つまり上記の手順３で入力したスーパー権利キーを［キー］欄に入力します。

［スーパー権利キー］欄に入力し、スーパー権利キーを割り当てれば、スーパー権利アクセスキーを持たないで［CTL特性］ダイアログを選択しても、［スーパー権利キー］欄は表示されません。


NULL特性

［NULL特性］テーブルを使用すれば、dbMAGICの各データ型でNULL値を処理する際のデフォルト値を指定できます。このデフォルト値は、アプリケーション全体で使用されます。デフォルト値は、タイプ定義または項目定義の各レベルで変更できます。タイプと項目の定義についての詳細は、第４章「タイプ辞書とファイル辞書の定義」を参照してください。

NULL特性行の記入

以下の指示に従って、新しい行の欄に記入するか、既存の行を編集してください。

型

この欄には、アプリケーションで、開発者がNULLのデフォルト値を宣言するdbMAGICの各データ型（文字、数値、論理、日付、時刻、メモ）が表示されます。

計算値

この値は、NULL値が入った項目を含む式を評価する際にdbMAGICが使用する値です。データ型は、NULL計算値に従って、同じ行の［型］欄に指定されたものになります。

表示文字列

表示文字列はdbMAGICが表示する文字列で、同じ行の［型］欄で指定されたデータ型の項目に対するNULL値を表します。

すべてのデータ型に、任意の文字列を指定できます。たとえば、文字列「NULL」を使用して、数値データ型のNULL値を表すことができます。文字列の表示は、実際の表示項目の書式サイズに従います。

上記の例では、NULLの数値に使用される計算値は０（ゼロ）であり、表示文字列は空白になります。


式

［式］ウィンドウは、以下のものから構成される複合ウィンドウです。

■	左上の［式］テーブル

■	右上のビュー項目一覧

■	ウィンドウの下部の式展開領域。この領域には、［式］テーブルで強調表示した式が具体的な記述で表示されます。

■	ウィンドウ下部のボタン。以下の表で説明します。ボタンを「押す」には、クリックするか、それに代わるキーボード操作を行います。

アクション	ボタン	意味
ＯＫ（｛Enter｝）	ＯＫ	変更内容を保存してウィンドウをクローズします。ズームして［式］テーブルを表示したときのもとの設定欄に、現在の式の番号を転記します。
取消（｛F2｝）	取消	［式］テーブルで行ったすべての変更を取り消して、現在の式の番号を転記しないでウィンドウをクローズします。
式表示 （｛Ctrl｝+｛H｝）	表示	編集中の式の具体的な記述を式展開領域に表示します。
アクション一覧 （｛Ctrl｝+{A}）	アクション	KBPUT またはKBGET 関数を編集するときに選択できる［アクション一覧］を表示します。
キーボード一覧 （｛Ctrl｝+｛K｝）	キーボード	KBPUT またはKBGET 関数を編集するときに選択できる［キーボード一覧］を表示します。
関数一覧 （｛Ctrl｝+｛U｝）	関数	使用できるすべての関数の一覧を表示します。
利用不可能権利一覧 （｛Ctrl｝+｛T｝）	権利	RIGHTS関数で使用できるすべての権利の一覧を表示します。

［アクション］についての詳細は、「16.1 設定メニュー」の「設定／キーボード割付テーブル」についての説明を参照してください。

注意：［関数一覧］、［アクション一覧］、［キーボード一覧］から選択して編集中の式に転記するには、カーソルを式の欄に置いてください。

式についての基本事項

式とは、計算式または定数を記述したものです。式は、数値型（日付型と時刻型を含む）、文字型、論理型（TrueまたはFalse）の値を返します。式は、演算子とオペランドから構成されます。オペランドには項目、関数、定数（リテラルと呼ばれる）、またはそのほかの副次的な式を使用できます。

■	項目とは、現在の［ビュー項目一覧］に含まれる項目を指します。［ビュー項目一覧］には、実データ項目と変数項目の両方が含まれます。

■	dbMAGICの関数は、日付および時間、算術および三角関数、文字列操作、変換、識別、テストおよび条件、論理、データベースインタフェース、ファイル管理、値操作、アクションに分類できます。編集時に「関数」ボタンを押して関数一覧にアクセスすれば、目的の関数を選択できます。それぞれの関数の詳細については、「18.4 関数」を参照してください。

通常、関数には、１つ以上の引数をカンマで区切って指定します。引数は、（）で囲みます。引数を指定しない場合でも、この（）が必要です。たとえば、DATE()のようになります。

関数は、必ず値を返します。

■	演算子には、「18.4 関数」で説明するように、数値演算子（たとえば「+」）、文字列演算子（たとえば「&」）、論理演算子（たとえば「NOT」）が使用できます。

■	［式テーブル］のそれぞれの式は、記述の中で使用されている項目と関数の型に従って、数値型、文字型、または論理型（「True」または「False」）に評価されます。不適切な型の組み合わせが使用されていると、エラーメッセージが表示されます。

■	関数は、（）を使ってネストできます。たとえば、以下の式は、項目Ａに代入されている文字列の長さを求めます。

LEN(LTRIM(RTRIM(A)))

これは、LEN(TRIM(A))と同じです。

IF、AND、NOT、ORを含む論理式をネストすれば、さらに複雑な式が記述できます。

dbMAGICは、余分な（）を自動的に削除します。

参考：＠ｎを入力すると、行番号ｎの内容を複写できます。

式テーブルの編集

通常の演算規則に従った算術式、文字列、論理式を入力できます。

新しい式を入力するには、以下の手順に従ってください。

[1]	［編集／行作成］を選択します。［式］欄のサイズより長い式を入力すると、広域ウィンドウが自動的にオープンします。広域ウィンドウは、［編集／広域表示］を選択してもオープンできます。

■	ズームして［ビュー項目一覧］を参照できます。次に、この項目一覧から［項目］テーブルまたは［変数項目］テーブルにズームすると、項目の詳細が表示されます。［ビュー項目一覧］から項目を選択して、｛Enter｝を押すか「選択」ボタンをクリックすると、編集中の式に転記されます。項目のシンボル名が、現在のカーソル位置に自動的に転記されます。ビュー項目一覧から項目を選択しない場合は、｛Esc｝を押すか「取消」ボタンをクリックします。

■	［関数一覧］は、画面下部の「関数」ボタンを押して参照します。このボタンは、マウスを使ってクリックするか、［関数一覧］アクション（｛Ctrl｝+｛U｝）を使用して押します。関数を選択する（｛Enter｝を押す）と、関数のフォーマットは、［関数一覧］から編集する式のカーソル位置に転記できます。

■	KBPUT/KBGET関数の編集時に、［アクション一覧］（｛Ctrl｝+｛A｝）を参照できます。［アクション一覧］からアクションを選択する（｛Enter｝を押す）と、編集中の式のカーソル位置にそのアクションが転記されます。たとえば、転記されたアクションが［終了］の場合は、［'E:終了'ACT］のように正しい構文で表示されます。

■	KBPUT/KBGET関数の編集時に、［キーボード一覧］（｛Ctrl｝+｛K｝）を参照できます。［キーボード］一覧から選択する（または｛Enter｝を押す）と、編集中のカーソル位置に転記されます。たとえば、コピーされたキーボード操作が、｛Alt｝+｛W｝ の場合は、「'Alt+W'KBD」のように正しい構文で表示されます。

■	RIGHTS関数の編集時に、［利用可能権利一覧］（｛Ctrl｝+｛T｝）を参照できます。この一覧には、使用できる使用権利が表示されます。［利用可能権利一覧］から選択する（または｛Enter｝を押す）と、編集中の式のカーソル位置に使用権利が転記されます。たとえば、コピーされた使用権利が「修正権利」の場合は、「'修正権利'RIGHT」のように正しい構文で表示されます。

［利用可能権利一覧］は、アプリケーションの［権利］テーブルに定義された使用権利に基づきます。開発者が所有する権利だけが一覧に表示されます。開発者が所有していない権利の値が式の中にある場合、その権利はアスタリスク（*）で表示されます。

上記のどの［一覧］でも、転記された内容は必要に応じて編集できます。

[2]	式を入力したら、［表示］ボタンを押すか、式表示（｛Ctrl｝+｛W｝）を使用してその式の具体的な記述を式展開領域に表示すると、構文をチェックできます。構文エラーが検出されると、そのエラー箇所までの部分だけが表示され、エラーメッセージが表示されます。カーソルは、構文エラーの原因とされる箇所に移動します。

[3]	編集モード（｛F10｝）を使用して、式を編集します。

[4]	式を訂正したら、｛Enter｝を押すか、「ＯＫ」ボタンをクリックして［式］ウィンドウをクローズすると、式の番号がズームする前のもとの定欄に転記されます。式を転記しない場合は、｛Esc｝または「取消」ボタンを押します。ただし、｛Esc｝では式の番号を転記しないで終了しますが、［変更保存しますか？］ダイアログで「ＯＫ」を選択すれば［式］テーブルの変更内容を保存できます。［取消］を選択すると、［式］テーブルの変更内容をすべて取り消してから終了します。

関連項目

関数一覧

キーボード一覧

アクション一覧

利用可能権利一覧

利用可能な関数についての情報は、関数を参照してください。

利用可能な関数についての情報は、演算子を参照してください。


関数一覧

式で利用可能な関数と演算子の一覧です。

一覧中の値を編集中の式に複写するには、カーソルが式の項目になければなりません。

利用可能な関数についての情報は、関数を参照してください。

利用可能な関数についての情報は、演算子を参照してください。


演算子

＋	＝

－	＜＞

＊	＜＝

／	＜

MOD	＞＝

＾	＞

＆（文字列演算子）


＋

加算


－

減算


＊

乗算


／

除算


MOD

剰余：整数除算の剰余を返します。


＾

指数


＆（文字列演算子）

文字列は＆記号で連結します。たとえば、'Tokyo'&'Japan'は'TokyoJapan'となります。


＝

等しい


＜＞

等しくない


＜＝

小さいか等しい


＜

小さい


＞＝

大きいか等しい


＞

大きい


キーボード一覧

KBPUT関数またはKBGET関数で利用可能なキーボードの一覧です。

一覧中の値を編集中の式に複写するには、カーソルが式の項目になければなりません。


アクション一覧

KBPUT関数またはKBGET関数で利用可能なアクションの一覧です。

一覧中の値を編集中の式に複写するには、カーソルが式の項目になければなりません。


利用可能権利一覧

RIGHTS関数で利用可能な権利の一覧です。

一覧中の値を編集中の式に複写するには、カーソルが式の項目になければなりません。


関数

dbMAGICで利用可能な関数の一覧です。

関数（ＡＢＣ順）

ABS 	ACOS

ADDATE 	ADDTIME

AND 	ASC

ASIN 	ATAN

BOM 	BOY

CDOW 	CHKDGT

CHR 	CLICKWX

CLICKWY	CLICKCX

CLICKCY	CMONTH

COS 	COUNTER

CRC 	CTRLNAME

DATE 	DAY

DBCACHE 	DBDEL

DBERR 	DBEXIST

DBNAME 	DBRECS

DBRELOAD	DBSIZE

DDERR	DDEXEC

DDEGET	DDEPOKE

DEL	DELAY

DISCSRVR	DOW

DSTR 	DVAL

EOF 	EOP

EOM 	EOY

EXP 	FILEDLG

FILL 	FIX

FLIP 	FLOW

GETLANG	GROUPADD

HAN 	HITZORDR

HOUR 	HSTR

HVAL 	IDLE

IF 	INIGET

INIPUT 	INS

INSTR 	IOCOPY

IOCURR	IODEL

IOEXIST 	IOREN

IOSIZE 	ISNULL

JCDOW 	JGENGO

JMONTH 	JNDOW

JYEAR 	KBGET

KBPUT 	LEFT

LEN 	LEVEL

LINE 	LOG

LOWER 	LTRIM

MAX 	MAXMAGIC

MDATE 	MENU

MID 	MIN

MINMAGIC	MINUTE

MLSTRANS	MNUCHECK

MNUENABL	MNUSHOW

MONTH 	MSTR

MVAL 	NDOW

NMONTH 	NOT

NULL 	OR

OWNER 	PAGE

PPD 	PREF

PROG 	RAND

RANGE 	REP

RESMAGIC	RIGHT

RIGHTADD 	RIGHTS

ROLLBACK 	ROUND

RTRIM 	SECOND

SETLANG	SIN

SOUNDEX 	STAT

STR 	SYS

TAN 	TDEPTH

TERM 	TEXT

TIME 	TRIM

TSTR 	TVAL

UDF 	UPPER

USER 	USERADD

VAL 	VARATTR

VARCURR 	VARINP

VARMOD 	VARNAME

VARPREV 	VARSET

VIEWMOD 	YEAR

WINBOX	WINHWND

ZEN 	ZENS


ABS

絶対値

指定された数値の絶対値を求めます。戻り値は常に正の値です。

構文：	ABS(数値)

パラメータ：	数値 … 数値

戻り値：	数値の絶対値

例：	ABS(-4)=4  ・ABS(7)=7

x=20、y=30の場合に、ABS(x-y)は10を返します。


ACOS

逆余弦（アークコサイン）

指定された数値の逆余弦（アークコサイン）値をラジアンで返します。

構文：	ACOS(数値)

パラメータ：	数値 … 数値

戻り値：	数値（ラジアン）

例：	x=1、y=0.5の場合に、ACOS(x-y)は1.04719755を返します。

関連項目：	COS、SIN、ASIN、TAN、ATAN


ADDDATE

日付項目に関する計算

入力日付とこの日付に加算する３つの値（年数、月数、日数）から日付を構築します。計算結果は、常に有効な日付です。

構文：	ADDDATE(日付,年数,月数,日数)

パラメータ：	日付 … 日付

年数 … 日付に加算する年数。０も可。

月数 … 日付に加算する月数。０も可。

日数 … 日付に加算する日数。０も可。

戻り値：	日付値

例：	ADDDATE('1992/01/01'DATE,1,2,2)は、1993/03/03を返します。

関連項目：	DVAL


ADDTIME

時刻項目に関する計算

入力時刻と、この時刻に加算する３つの値（時数、分数、秒数）から時刻を計算します。計算結果は、もともとの入力時刻に時数、分数、秒数を加算した時刻です。

構文：	ADDTIME(時刻,時数,分数,秒数)

パラメータ：	時刻 … 時刻値

時数 … 時刻に加算する時数

分数 … 時刻に加算する分数

秒数 … 時刻に加算する秒数

戻り値：	時刻値

例：	ADDTIME('12:00:00'TIME,1,2,3)は、13:02:03を返します。

関連項目：	TVAL


AND

論理積

両方のオペランドが真の場合にだけ「真」を返します。


ASC

文字のASCII値

文字および文字列の一番左の文字を、ASCIIコードに変換します。

構文：	ASC('文字列')

パラメータ：	文字列 … １文字または複数の文字からなる文字列

戻り値：	ASCIIコード

例：	式ASC('N')とASC('New')は、同じ結果78を返します。

関連項目：	CHR


ASIN

逆正弦（アークサイン）

数値の逆正弦（アークサイン）値をラジアンで返します。

構文：	ASIN(数値)

パラメータ：	数値 … 数値

戻り値：	数値の逆正弦（アークサイン）（ラジアン）

例：	x=1、y=0.5の場合に、ASIN(x-y)は0.52359878を返します。

関連項目：	SIN、COS、ACOS、TAN、ATAN


ATAN

逆正接（アークタンジェント）

数値の逆正接（アークタンジェント）。値をラジアンで返します。

構文：	ATAN(数値)

パラメータ：	数値 … 数値

戻り値：	数値の逆正接（アークタンジェント）（ラジアン）

例：	x=2、y=1の場合に、ATAN(x-y)は0.78539816を返します。

関連項目：	TAN、COS、ACOS、SIN、ASIN


BOM

月の最初の日

パラメータに指定された月の最初の日付を返します。

構文：	BOM(日付)

パラメータ：	日付または日付式

戻り値：	日付値

例：	BOM('97/10/05'DATE)は、'97/10/01'を返します。

関連項目：	BOY、EOM、EOY、ADDDATE、CDOWなど、すべての日付関数


BOY

指定年の最初の日

パラメータに指定された年の最初の日付を返します。

構文：	BOY(日付)

パラメータ：	日付または日付式

戻り値：	日付値

例：	BOY('97/05/10'DATE)、'97/01/01'を返します。

関連項目：	BOM、EOM、EOY、ADDDATE、CDOWなど、すべての日付関数


CDOW

週の曜日名（英語）

日付または日付式から、英語の曜日名（Sunday、Mondayなど）を返します。

構文：	CDOW(日付)

パラメータ：	日付 … 日付または日付式

戻り値：	文字列で表した曜日

例：	CDOW('92/01/28'DATE)は、'Tuesday'を返します。

ｘが日付97/01/28（Tuesday）の場合に、CDOW(x+1)は'Wednesday'を返します。

参考：	曜日名を日本語で求める場合は、「JCDOW」を使用します。

関連項目：	DAY、DOW、NDOW

注意事項：

97/01/28'の後にDATEを使用すると、文字列は日付リテラル文字列として識別されます。これを、DATE()関数と混同しないでください。

曜日名の長さは、曜日名を保持する文字項目の長さを操作して制御できます。たとえば、CDOW操作の結果を３文字の文字項目に入力する場合に、dbMAGICでは、曜日名の最初の３文字が表示されます（'Mon'、'Tue'など）。


CHKDGT

検査数字

検査数字を生成します。

構文：	CHKDGT(文字列,数値)

パラメータ：	文字列 … 検査数字の計算対象となる数値文字列。数値文字列の場合は、この関数を適用する前に文字タイプに変換します。

数値 … 係数10の場合は０、係数11の場合は１

戻り値：	数値

例：	CHKDGT('6789',0)は、２を返します。

ｘが文字列'6789'の場合には、CHKDGT(x,0)は上記と同様に２を返します。

CHKDGT(16789',1)は、10を返します。

関連項目：	CRC


CHR

ASCIIコードの文字への変換

ASCIIコードを文字に変換します。

構文：	CHR(数値)

パラメータ：	数値 … 数値

戻り値：	文字

例：	CHR(78)は、'N'を返します。

項目Ｘが77の場合、CHR(X+1)は'N'を返します。

関連項目：	ASC

注意事項：

プリンタや画面を制御するために、キーボードから入力できないASCIIコードを使う必要がある場合は、この関数を使用します。たとえば、CHR(26)は、右矢印文字を表示します。


CLICKCX

コントロール内のクリック位置（Ｘ座標）を返す

最後にクリックしたコントロールのクリック位置（Ｘ座標）をコントロール上の座標で返します。

構文：	CLICKCX()

パラメータ：	なし

戻り値：	数値

関連項目：	CLICKCY、CLICKWX、CLICKWY

参考：

コントロール上の座標は、コントロールの左上の座標が(0,0)となり、右下の座標が（水平精度×幅，垂直精度×高さ）となります。

「水平精度」、「垂直精度」はそれぞれ［フォーム特性］ダイアログの［水平精度］欄、［垂直精度］欄の値を示し、「幅」、「高さ」はそれぞれ［コントロール特性］ダイアログの［幅］欄、［高さ］欄の値を示します。


CLICKCY

コントロール内のクリック位置（Ｙ座標）を返す

最後にクリックしたコントロールのクリック位置（Ｙ座標）をコントロール上の座標で返します。

構文：	CLICKCY()

パラメータ：	なし

戻り値：	数値

関連項目：	CLICKCX、CLICKWX、CLICKWY

参考：

コントロール上の座標は、コントロールの左上の座標が(0,0)となり、右下の座標が（水平精度×幅，垂直精度×高さ）となります。

「水平精度」、「垂直精度」はそれぞれ［フォーム特性］ダイアログの［水平精度］欄、［垂直精度］欄の値を示し、「幅」、「高さ」はそれぞれ［コントロール特性］ダイアログの［幅］欄、［高さ］欄の値を示します。


CLICKWX

ウィンドウのクリック位置（Ｘ座標）を返す

最後にクリックしたウィンドウ（フォーム）のクリック位置（Ｘ座標）を返します。

構文：	CLICKWX()

パラメータ：	なし

戻り値：	数値

関連項目：	CLICKCX、CLICKCY、CLICKWY

注意事項：

正確には、ウィンドウ内に表示されているフォームのクリック位置（座標）が返されます。


CLICKWY

ウィンドウのクリック位置（Ｙ座標）を返す

最後にクリックしたウィンドウ（フォーム）のクリック位置（Ｙ座標）を返します。

構文：	CLICKWY()

パラメータ：	なし

戻り値：	数値

関連項目：	CLICKCX、CLICKCY、CLIKWX

注意事項：

正確には、ウィンドウ内に表示されているフォームのクリック位置（座標）が返されます。


CMONTH

月名（英語）

日付または日付式から、英語の月名（例：January、February）を返します。

構文：	CMONTH(日付)

パラメータ：	日付 … 日付または日付式

戻り値：	文字列

例：	CMONTH('97/01/28'DATE)は、'January'を返します。

Ｘが日付97/01/28の場合に、CMONTH(X+30)は'February'を返します。

関連項目：	MONTH、NMONTH

注意事項：

'97/01/28'の後にDATEを使用すると、文字列は日付リテラル文字列として識別されます。これを、DATE()関数と混同しないでください。

月名の長さは、月名を保持する文字項目の長さを操作して制御できます。たとえば、CMONTH操作の結果を３文字の文字項目に入力する場合に、dbMAGICでは、月名の最初の３文字が表示されます（'Jan'、'Feb'など）。


COS

余弦（コサイン）

数値の余弦（コサイン）値を返します。

構文：	COS(数値)

パラメータ：	数値 … ラジアンで表した角度

戻り値：	数値

例：	COS(0.7854)は、0.70711を返します。

関連項目：	ACOS、SIN、ASIN、TAN、ATAN


COUNTER

バッチ繰り返しカウンタ

バッチタスクで行われたレコードレベルでの繰り返し回数をカウントします。

構文：	COUNTER(タスク番号)

パラメータ：	タスク番号 … タスクの階層位置を表す番号。０は現在のタスクを、１はそのすぐ上位の親タスクを表します。

戻り値：	数値

例：	「タスク終了」条件として式COUNTER(0)=5を定すると、現在のタスク（タスク番号０）がレコードレベルで５回繰り返された場合に現在のタスクを終了します。


CRC

CRC方式による計算

文字列に対して、CRC方式で計算を実行します。

構文：	CRC(文字列,数値)

パラメータ：	文字列 … CRCが適用される文字列

数値 … CRCアルゴリズムを表す数。このバージョンでは、CRC-16を適用する場合は０を使用します。

戻り値：	CRC値（２バイトの文字列）

関連項目：	CHKDGT

例と注意事項：

CRCは、主にデータストリームの確認に使用します。関数のアルゴリズムでは、入力文字列のすべての構成要素を計算に使用するため、計算結果は文字列が変更されていないことを保証する手段としても機能します。通常、CRCは、２つのコンピュータ間の通信に適用されます。送信されたデータが実際に破壊されないで到着したことを確認するには、送信の前にデータからCRC値を計算します。次に、CRC値（２バイト）を情報に追加して送信します。受信側では、CRC値を取り除き、残りのデータのCRC値を計算します。受信データから計算されたCRC値と、データとともに受信されたCRC値が一致する場合は、送信中に何の異常もなかったことを示します。２つのCRC値が一致しない場合は、データが送信中に破壊された可能性があります。

1.	'ABC'&CRC('ABC',0)を送信します。これを文字列と呼びます。

2.	受信側では、CRC(LEFT(文字列,3),0)=RIGHT(文字列,2)であるかどうかを問い合わせます。


CTRLNAME

コントロール名の取得

構文：	CTRLNAME()

パラメータ：	なし

戻り値：	最後にクリックされたコントロールの名前（［コントロール特性］の［コントロール名］欄の値）

例：	CTRLNAME()


DATE

システム日付

「動作環境］で設定されている［日付タイプ］の書式（YY/MM/DD, MM/DD/YYなど）で、システム日付を返します。

構文：	DATE()

パラメータ：	なし

戻り値：	日付

例：	システム日付が92/01/28の場合に、DATE()は92/01/28を返します。DATE()+5は、92/02/02を返します。

関連項目：	MDATE、DSTR、DVAL

注意事項：

dbMAGICでは、日付は、［動作環境］に設定している日付タイプまたは日付を保持する項目の書式に自動的に変換されます。システム日付をヨーロッパ型書式に設定している場合は、［動作環境］の［日付タイプ］パラメータを「Ａ＝アメリカ」に変更するか、日付を保持する項目に書式‘MM/DD/YY筑を定義すると、アメリカ型書式で表示または出力できます。


DAY

日

日付の「日」を返します（数値１～31）。

構文：	DAY(日付)

パラメータ：	日付 … 日付または日付式

戻り値：	数値

例：	DAY('01/28/97'DATE)は、28を返します。

以下の式は、システム日付が月の15日よりもあとの場合に、単語「延滞」を表示します。

IF(DAY(DATE())〉15,'延滞','')

関連項目：	CDOW、DOW、NDOW


DBCACHE

キャッシュのヒット率

キャッシュのヒット率を監視し、ヒット率を表す整数値を返します。ヒット率は、レコードがキャッシュ中に見つかった回数を、キャッシュの探索が行われた総回数で割った値として定義されます。キャッシュの効率は、ヒット率で決定されます。

構文：	DBCACHE（番号,タスクレベル）

パラメータ：	番号 … ［ファイル］辞書テーブルでのファイルの通し番号。このパラメータは必須です。

タスクレベル … タスクの実行レベルを表す数値。0＝現在のタスク、1＝親タスク、など。

戻り値：	数値 … ヒット率（０～100）

例：	DBCACHE('1'FILE,0)

上の例では、ファイル辞書の１番目にあるファイルの、現在のタスクでのヒット率を値として返します。FILEリテラルを使用できます。

詳細については、「17.7 MAGICキャッシュ」を参照してください。


DBDEL

データベースファイルの削除

［ファイル辞書］テーブルに表示されているdbMAGICのデータファイルを削除して、その結果を論理値で返します。パラメータとして常駐テーブルが指定された場合、すべてのレコードを常駐テーブルから削除します。次に、このファイルをオープンした場合、そのデータベースからレコードを再度読み込みます。

構文：	DBDEL(番号,ファイル名)

パラメータ：	番号 … ［ファイル辞書］テーブルでのファイルの通し番号

ファイル名 … 番号の代わりに使用します。不要な場合は、「''」を入力します。必要な場合は、ファイル名を入力します。ファイル名には、パスを入れることができます。パスを指定しないと、dbMAGICでは現在のディレクトリが想定されます。

戻り値：	論理値（真または偽）

例：	DBDEL(1,'')とDBDEL('1'FILE,'')は、ともに［ファイル辞書］テーブルの最初のファイルを削除しようとします。操作に成功すると、「真」を返します。

DBDEL(1,'FSTFIL.DAT')は、現在のディレクトリのOS名“FSTFIL.DAT”を使用して、［ファイル辞書］テーブルの最初のファイルを削除しようとします。

関連項目：	DBRECS、DBEXIST、DBSIZE

注意事項：

FILEリテラルを使用すると、［ファイル辞書］テーブルでのファイルの位置が変更されても、必ず正しいファイルが削除されます。ファイルの通し番号とパスは、［ファイル辞書］の定義に従って機能します。詳細については、「4.3　ファイル辞書の定義」を参照してください。

パラメータとして常駐テーブルが指定された場合、すべてのレコードを常駐テーブルから削除します。次に、このファイルをオープンした場合、そのデータベースからレコードを再度読み込みます。


DBERR

データベースエラーメッセージ

内部処理エラーまたは一連のエラーを発生させる最初のデータベースエラーメッセージを返します。この関数を使用して、データベースエラーコードと、エンドユーザに表示するメッセージのテキストの検索と表示ができます。また、DBERR関数を呼び出すと、エラーメッセージが消去されます。

構文：	DBERR(文字列)

パラメータ：	文字列 … データベース名を含む文字列または、文字列を返す式

戻り値：	SQL用 … エラーメッセージを含む文字列

ISAM用 … エラーコードを表す番号

例：	エラーを監視する必要がある処理の直前に、アクションコマンドとともに使用して、最後のエラーを消去します。通常、子タスクの処理を実行し、ふたたびアクションコマンドを使用して、処理終了後にエラーを検索します。検索したエラーをテストして、空でない場合はアプリケーションの要件に従って処理します。

注意事項：

返されるエラー番号またはテキストは、データの記憶に使用されるDBMSによって異なります。


DBEXIST

ディスク上のファイルの存在の確認

指定されたデータファイルがディスク上に存在するかどうかをチェックして、その結果を返します。

構文：	DBEXIST(番号,ファイル名)

パラメータ：	番号 … ［ファイル辞書］テーブルでのファイルの通し番号

ファイル名 … 番号の代わりに使用します。不要な場合は、「''」を入力します。必要な場合は、ファイル名を入力します。ファイル名には、パスを入れることができます。パスを指定しないと、dbMAGICでは現在のディレクトリが想定されます。

戻り値：	論理値（真または偽）

例：	DBEXIST(1,'')とDBEXIST('1'FILE,'')は、ディスク上にファイルが存在する場合にはともに「真」を返します。

DBEXIST(1,'FSTFIL.DAT')は、現在のディレクトリのOS名“FSTFIL.DAT”を使用して、［ファイル辞書］テーブルの最初の行をチェックしようとします。

関連項目：	DBDEL、DBRECS、DBSIZE

注意事項：

FILEリテラルを使用すると、［ファイル辞書］テーブルでのファイルの位置が変更されても、必ず正しいファイルが削除されます。ファイルの通し番号とパスは、［ファイル辞書］の定義に従って機能します。詳細については、「4.3 ファイル辞書の定義」を参照してください。

DBEXIST関数は、ファイル番号パラメータが０（ゼロ）の場合、または［ファイル辞書］のファイル数より多い場合は、常に「偽」を返します。


DBNAME

データベースファイルの名前

［ファイル辞書］テーブルからの名前を使用して、データベースファイルを識別します。

構文：	DBNAME(番号)

パラメータ：	番号 … ［ファイル辞書］テーブルでのファイルの通し番号

戻り値：	［ファイル辞書］テーブルの行（番号）からのDBファイル名

例：	DBNAME(3)もDBNAME('3'FILE)も、［ファイル辞書］テーブルの３行目に表示されているファイルの名前を返します。

注意事項：

FILEリテラルを使用すると、［ファイル辞書］テーブルでのファイルの位置が変更されても必ず正しい入力データ（entry）が選択されます。ファイルの通し番号とパスは、［ファイル辞書］の定義に従って機能します。詳細については、「4.3　ファイル辞書の定義」を参照してください。


DBRECS

ファイルのレコード数

データベースファイル内のレコードの数を返します。

構文：	DBRECS(番号,ファイル名)

パラメータ：	番号 … ［ファイル辞書］テーブル内でのファイルの通し番号

ファイル名 … 番号の代りに使用します。必要ない場合は、「''」を入力します。必要な場合は、ファイル名を表す文字列を入力します。ファイル名には、パスを入れることができます。パスを指定しないと、dbMAGICでは現在のディレクトリが想定されます。

戻り値：	レコード数（空の場合は０）

例：	DBRECS(1,'')とDBRECS('1'FILE,'')は、ともに［ファイル辞書］テーブルの最初のファイルに含まれるレコードの数を返します。

DBRECS(1,'FSTFIL.DAT')は、カレントディレクトリの“FSTFIL.DAT”のレコードの数を返します。

関連項目：	DBDEL、DBEXIST、DBSIZE

注意事項：

FILEリテラルを使用すると、［ファイル辞書］テーブルでのファイルの位置が変更されても必ず正しいファイルのレコードがカウントされます。ファイルの通し番号とパスは、［ファイル辞書］の定義に従って機能します。詳細については、「4.3 ファイル辞書の定義」を参照してください。


DBRELOAD 実行時に常駐テーブルを再ロード
DBRELOAD

実行時に常駐テーブルを再ロード

ロードに成功したか失敗したかを示す論理値を返します。２つ目のパラメータにパス名を指定した場合、古いパス名の常駐テーブルが削除され、新しいパス名の常駐テーブルがロードされます。

構文：	DBRELOAD(番号,ファイル名)

パラメータ：	番号 … ［ファイル辞書］テーブルでのファイルの通し番号

ファイル名  … 番号の代わりに使用します。不要な場合は、「''」を入力します。必要な場合は、ファイル名を入力します。ファイル名には、パスを入れることができます。パスを指定しないと、dbMAGICでは現在のディレクトリが想定されます。

戻り値：	論理値（ロードに成功した場合は「真」、ロードに失敗した場合は「偽」）

例：	DBRELOAD(3,'')


DBSIZE

ファイルサイズ

レコードサイズ×レコード数に相当する値を返します。

構文：	DBSIZE(番号,ファイル名)

パラメータ：	番号 … ［ファイル辞書］テーブルでのファイルの通し番号

ファイル名 … 番号の代わりに使用します。不要な場合は、「''」を入力します。必要な場合は、ファイル名を入力します。ファイル名には、パスを入れることができます。パスを指定しないと、dbMAGICでは現在のディレクトリが想定されます。

戻り値：	数値（ファイルがない場合は０）

例：	DBSIZE(1,'')とDBSIZE('1'FILE,'')は、ともに［ファイル辞書］テーブルの最初のファイルのバイト数を返します。

DBSIZE(1,'FSTFIL.DAT')は、現在のディレクトリの“FSTFIL.DAT”ファイルのバイト数を返します。

関連項目：	DBDEL、DBEXIST、DBRECS

注意事項：

FILEリテラルを使用すると、［ファイル辞書］テーブルでのファイルの位置が変更されても必ず正しいファイルのバイト数がカウントされます。ファイルの通し番号とパスは、［ファイル辞書］の定義に従って機能します。詳細については、「4.3 ファイル辞書の定義」を参照してください。


DDEGET

DDEサーバにアクセス

DDEサーバから文字列を得ます。

指定したDDEサーバから「文字列長」パラメータで指定された長さの文字列を取得して返します。３つの識別子「サービス」、「トピック」、「項目」の組み合わせによって、各DDEサーバアプリケーションにアクセスすることができます。この３つの識別子によってアクセス対象を特定します。

構文：	DDEGET（サービス,トピック,項目,文字列長）

パラメータ：	サービス … DDEサービス時の主な識別子を指定します。通常、WinWord（MS Word for Windows対応）やExcel（MS Excel対応）などのアプリケーション名を指定します。

トピック … サーバアプリケーション内の、必要なデータが含まれる領域を定義します。「トピック」には、MS Word for Windowsのドキュメント名やMS Excelのスプレッドシート名を指定します。通常、サーバアプリケーションは標準でSystemトピックをサポートしています。Systemトピックは、DDEでアクセスするアプリケーションとトピックについての情報を提供します。Systemトピックのサービスは「項目」パラメータを介して要求できます。たとえば、MS ExcelのSystemトピックには、アプリケーションがサポートするSystemトピックのリストを返すSysItemsがあります。Systemトピックによって返される情報のフォーマットはサーバアプリケーションによって異なります。

項目 … このパラメータでは、必要なデータ項目をさらに詳しく定義します。「サービス」、「トピック」と組み合わせて、特定の項目を指し示します。たとえば、「トピック」でドキュメント名を指定し、「項目」でドキュメントのブックマークを指し示せば、DDEを使用してWord for Windowsのマニュアルのパラグラフを読み込めます（ブックマークは、パラグラフをマーク付けするしおりのようなものです。）

文字列長 … 関数によって返される情報の最大長を指定します。返される情報が最大長よりも短い場合には、その情報の末尾には空白文字が埋め込まれます。

戻り値：	「文字列長」パラメータに指定されたサイズの文字列が返されます。DDEGET関数が失敗すると、文字列は空になります。関数の「サービス」、「トピック」、「項目」パラメータに従って、DDEサーバアプリケーションから文字列が返されます。

例：	１．DDEGET（'WinWord', 'c:\docs\ddetest.doc', 'toMagic', 2000）

MS Word for Windowsのマニュアルからパラグラフを読み込むためには、Wordのブックマークでパラグラフをマーク付けします。上記で、'c:\docs\ddetest.doc'はドキュメント名、'toMagic'はブックマーク名、そして、2000は、関数によって返されるパラグラフの最大長（バイト単位）です。

２．DDEGET（'Excel', 'c:\docs\budget.xls', 'R19C1:R22C7', 2000）

MS Excelのスプレッドシートから、一定の範囲のセルを読み込みます。上記で、'c:\docs\budget.xls'はスプレッドシート名、'R19C1:R22C7'はセルの範囲、2000は関数によって返されるデータの最大長（バイト単位）です。

例に示したように、dbMAGICには、項目を文字列と識別させるための単引用符(')が必要です。

関連項目：	DDEPOKE、DDERR、DDEXEC

注意事項：

最初の3つの項目、すべての文字列項目で単引用符(')が必要です。


DDEPOKE

DDEサ－バへ文字列を転送

dbMAGICによって関数のパラメータに指定されているDDEサーバに、文字列を転送します。３つの識別子「サービス」、「トピック」、「項目」を組み合わせて、各DDEサーバアプリケーションにアクセスします。dbMAGICによって転送された文字列は、サーバアプリケーション内の、「サービス」「トピック」「項目」によって指定された位置に挿入されます。

構文：	DDEPOKE（サービス, トピック, 項目, 転送データ）

パラメータ：	サービス … DDEサービス時の主な識別子を指定します。通常、WinWord（MS Word for Windows対応）やExcel（MS Excel対応）などのアプリケーション名を指定します。

トピック … サーバアプリケーション内のデータ転送先領域を定義します。「トピック」には、MS Word for Windowsのドキュメント名やMS Excelのスプレッドシート名を指定します。

項目 … 転送先のデータ項目をさらに詳しく定義します。「サービス」、「トピック」と組み合わせて、特定の項目を指し示します。たとえば、「トピック」でマニュアル名を指定し、「項目」でデータが収められていないパラグラフのブックマークを指し示すと、DDEによってWord for Windowsのマニュアルのパラグラフに転送データが挿入されます。

転送データ … 関数によってサーバアプリケーションに渡されるデータ文字列を指定します。

戻り値：	サーバアプリケーションへのデータ転送が成功すればTRUE値が、失敗時には、FALSE値が返されます。

関連項目：	DDEGET、DDERR、DDEXEC

注意事項：

サーバアプリケーションへ転送される情報は、サーバアプリケーションによって規定されるフォーマットについての規則に従わなければなりません。詳細については、サーバアプリケーションに付属のマニュアルを参照してください。

例：

１．DDEPOKE（'WinWord', 'c:\docs\ddetest.doc', 'fromMagic', 'This paragraph was planted by Magic using DDE'）

MS Word for Windowsのマニュアルにパラグラフを書き込むには、Wordのブックマークでパラグラフをマーク付けします。上記の例で、'c:\docs\ddetest.doc'はマニュアル名、'fromMagic'はブックマーク名、'This paragraph was planted by Magic using DDE'は関数によってサーバアプリケーションに転送されるデータです。

２．DDEPOKE（'Excel', 'c:\dos\budget.doc', 'R1C1', '100'）

MS Excelスプレッドシートのセルに数値（100）を書き込みます。上記の例で、'c:\docs\budget.doc'はスプレッドシート名、'R1C1'は関数によって渡される情報を受け取る、スプレッドシートの第１セルです。

例に示したように、項目を文字列と判断させるための単引用符(')が必要です。


DDERR

DDE通信エラ－の検出

DDERR関数は、dbMAGICのDDE通信時に発生した最後のエラーを検索します。DDERRに続く要求は、報告されているエラーコードをクリアし、戻り値をリセットします。この関数は、デバッグの際に役立つ情報を提供します。

構文：	DDERR()

パラメ－タ：	なし

戻り値：	0～15の数値。各数値が表す意味を示します。

0：最後に実行されたDDE操作ではエラーが発生していません。または、関数を連続してコールした場合は第２回目の要求です。

1：DDEMLシステムの初期化が失敗です。

2：サーバに接続できていません（前回のDDEコールの中の「サービス」パラメータの誤りか、指定し忘れています）。

3：DDEコール時にサーバがビジー状態で、サーバをコールできません。

4：サーバが要求されたDDEサービスを実行していません（パラメータの誤りか、パラメータの組み合わせが無効か、要求したサービスの組み合わせが無効です）。

5：最後に行われたDDEGET関数の失敗です（サーバが要求された項目を提供できませんでした）。

6：DDEGET関数またはDDEPOKE関数に項目が指定されていません。

7：DDEXEC関数にコマンドが指定されていません。

14：原因不明のエラーです。

15：Windows以外のオペレーティングシステムでDDE関数が実行されました。

関連項目：	DDEGET、DDEXEC、DDEPOKE


DDEXEC

コマンドを転送

dbMAGICから、この関数のパラメータで指定されたDDEサーバへ、コマンド文字列を転送します。３つの識別子「サービス」、「トピック」、「項目」を組み合わせて、各DDEサーバアプリケーションにアクセスできます。この３つの識別子によってアクセス対象を特定できます。dbMAGICによって転送されたコマンド文字列はサーバアプリケーションに転送され、サーバアプリケーションが代わりにそのコマンドを実行します。コマンド文字列は、DDEフォーマットについての厳しい規則に従う必要があります。コマンドの内容は、サーバアプリケーションのコマンドに対して有効でなければなりません。コマンドの文字列がサ－バアプリケ－ションに無効な場合には、コマンドは失敗します。

構文：	DDEXEC（サービス, トピック, 項目, コマンド）

パラメータ：	サービス … DDEサービス時の主な識別子を指定します。通常、このパラメータには、WinWord（MS Word for Windows用）やExcel（MS Excel用）などのアプリケーション名を指定します。

トピック … Systemトピックによって表されるサーバアプリケーションが、サーバアプリケーション内にあるデータオブジェクトではなくデータ交換に対して責任がある場合には、「トピック」には通常、'System'を指定します。

項目 … データ項目をさらに詳しく定義します。DDEXEC関数の場合は、ほとんどがからです。

コマンド … サーバアプリケーションに渡されるコマンド文字列を指定します（サーバアプリケーションはこのコマンドを実行します）。DDEコマンドは角かっこ（[]）で囲みます。

１個のコマンド文字列には、それぞれを角かっこで囲んだ、または空白で区切った複数のコマンドが含まれます。以下に、例を示します。

[コマンド１]

[コマンド２(パラメータ１)]

[コマンド３(パラメータ１,パラメータ２,パラメータ３)]

[コマンド１][コマンド３(パラメータ１,パラメータ２,パラメータ３)]

コマンド文字列は、有効なサーバアプリケーションのコマンドでなければなりません。コマンドの構文についての詳細は、サーバアプリケーションのマニュアルを参照してください。

戻り値：	成功時にはTRUE値が、失敗時にはFALSE値が返されます。

例：	1.DDEXEC('WinWord','System','','[FileOpen"c:\docs\ddetest.doc"]')

MS Word for Windowsのマニュアルをオープンします。上記で、'[FileOpen "c:\docs\ddetest.doc"]'は関数によってサーバアプリケーションに転送されるコマンドです。

2.DDEXEC('Excel','System','',[run("MACROS.XLM!FormatCells")])

MS Excel マクロ（FormatCells）を実行します。

3.DDEXEC('Excel', 'System', '', [Open("c:\docs\test.xls")])

MS Excelのスプレットシ－トをオ－プンします。

例に示したように、dbMAGICには、項目を文字列と識別させるための単引用符(')が必要です。

MS Excelには、二重引用符(")が必要です。

関連項目：	DDEGET、DDEPOKE、DDERR


DEL

文字の削除

文字列の指定位置から、指定された数の文字を削除します。削除後の空白部分は詰められます。また、全角文字を２分する位置を指定すると、２分される文字は半角のスペースに置き換えられます。

構文：	DEL(文字列,開始位置,文字数)

パラメータ：	文字列 … 文字列または文字式

開始位置 … 削除する最初の文字の位置

文字数 … 開始位置から右方向に数える削除文字数

戻り値：	文字列

例：	DEL('ABCD',2,1)は、文字列の２番目の文字を削除して、'ACD'を返します。

以下の式では、項目Yの値が負数の場合はＸの１文字目が、１以上の場合は２文字目が削除されます。０の場合は文字は削除されません。

IF(Y<0,DEL(X,1,1),IF(Y>0,DEL(X,2,1),X))

関連項目：	INS、FILL、REP


DELAY

全活動の指定時間凍結

DELAY関数は、現在のプロセスの実行を、時間を指定して停止させます。指定する時間が経過するか、ユーザが何かキーを押すと、遅延（実行の停止）は終了されます。

構文：	DELAY(数値)

パラメータ：	数値 … 現在のプロセスを遅延させる時間（単位は0.1秒）

例：	DELAY(10)は、1秒間の遅延を発生させます。１秒後に呼び出しプロセスが再開されます。DELAY関数がアクティブな場合に何かキーが押されると、遅延はただちに終了します。


DISCRVR
DISCSRVR

サーバの切断

必要なくなったサーバとの接続を切断します。

構文：	DISCSRVR(文字列)

パラメータ：	文字列 … サーバテーブルでサーバを定義している文字列

戻り値：	論理値。TRUE値は、指定したサーバの切断処理が成功したことを意味します。FALSE値は、切断処理に、以下のいずれかの理由によって失敗したことを意味します。

•	指定したサーバ名がサーバテーブルに存在しない。

•	サーバへの接続がない。

•	dbMAGICが、まだその接続を必要としている。

•	接続処理に失敗した。


DOW

曜日番号

日付から曜日番号を返します。以下に、曜日番号を示します。

日＝１、月＝２、火＝３、水＝４、木＝５、金＝６、土＝７

構文：	DOW(日付)

パラメータ：	日付 … 日付

戻り値：	数値（1～7）

例：	DOW('97/01/29'DATE) は、４（水曜日を表す）を返します。

以下の式は、システム日付が日曜日の場合に、メッセージを表示します。

IF(DOW(DATE())=1,'Never on Sunday','')

関連項目：	CDOW、DAY、NDOW


DSTR

日付の書式文字列への変換

日付または日付式を文字列に変換し、指定された書式で出力します。

構文：	DSTR(日付,書式)

パラメータ：	日付 … 日付

書式 … 変換結果の文字列のフォーマット。書式についての詳細は、第３章を参照してください。

戻り値：	文字列

例：	DSTR('97/01/28'DATE,'YYYY,MMMMMMMM DD,WWWWWWWW')は、'1997, January 28, Tuesday'を返します。

DSTR('97/01/28'DATE,'YY/MM/DD')は、97/01/28を返します。

関連項目：	DVAL

注意事項：

'97/01/28'の後にDATEを使用すると、文字列は日付のリテラル文字列として識別されます。これをDATE()関数と混同しないでください。


DVAL

日付文字列の数値への変換

文字列として入力または格納される日付文字列を、数値に変換します。数値は、西暦１年の第１日目（01/01/01）から、指定された文字列の日付までの日数を表します。

構文：	DVAL(日付文字列,書式)

パラメータ：	日付文字列 … 日付として解釈できる文字列または文字式（例：'97/01/01'、'1997, Jan 1'）

書式 … 日付文字列のフォーマット。dbMAGICが文字列または文字式を読み取り、解釈するために必要です。

戻り値：	数値

例：	DVAL('97/01/01','YY/MM/DD')とDVAL('1997, Jan 1','YYYY,MMM DD')は、ともに729023を返します。

項目Ａが'1997 ,January 1'の場合は、DVAL(A,'YYYY,MMMMMMMM DD')も729023を返します。

関連項目：	DSTR

注意事項：

書式が日付文字列のフォーマットに対応していない場合に、０が返されます。


ENV

環境

ENV関数は、［動作環境］テーブルで定義されている項目の現在の値を30文字以内で返します（［オーナー名］や［日付タイプ］パラメータなど）。項目を識別する文字列は、省略形（正確に区別できる程度の省略）で指定できます（「O」、「DATE_M」など）。無効な文字列を指定すると、空白を返します。

構文：	ENV(文字列)

戻り値：	文字列（30字）

例：	ENV('O')は、オーナー名の文字列を返します。

ENV('DATE_M')は、現在の日付タイプの設定が「Ｅ＝ヨーロッパ」である場合にはＥを返します。


EOF

ファイルの終わり

指定された入出力ファイルが情報の終わりであるかどうかを報告します。入出力ファイルが情報の終わりに到達すると、必ずEOFフラグが立てられます。このフラグが、EOF関数によって照会され、結果を返します。

構文：	EOF(タスク番号,ファイル番号)

パラメータ：	タスク番号 … タスクの階層位置を表す番号。０は現在のタスクを、１はそのすぐ上位の親タスクを表します。

ファイル番号 … 現在のタスクでの入出力ファイルの通し番号

戻り値：	論理値

例：	EOF(0,1)は、現在のタスクで最初の入出力ファイルの最後のレコードを処理したあとに「真」を返します。

関連項目：	EOP、LINE、PAGE

注意事項：

EOFは、入力ファイルで使用します。オペレーティングシステムのテキスト（入出力）ファイルから情報を読み取るタスクでは、終了条件として使用します。EOF(0,1)という式を、１つの入出力ファイルから情報を読み取るタスクで終了条件として使用する場合は、ファイルから最後の情報が読み取られるとすぐにタスクが終了します。


EOM

月の最後の日付

パラメータに指定された月の最後の日付を返します。

構文：	EOM(日付)

パラメータ：	日付または日付式

戻り値：	日付値

例：	EOM('97/05/05'DATE)は、'97/05/31'を返します。

関連項目：	BOY、BOM、EOY、ADDDATE、CDOWなど、すべての日付関数


EOP

ページの終わり

出力ファイル内の、各ページの終了を検出します。タスクの出力ファイルについて、１ページが終了すると「真」を出力します。ページの長さは、［入出力ファイル］テーブルの［行］欄で定義されます。dbMAGICでは、行数パラメータが使用されていない場合に、入出力ファイルに対応するプリンタに指定されている行数（［プリンタ］テーブルの［行］欄）が使用されます。

構文：	EOP(タスク番号,ファイル番号)

パラメータ：	タスク番号 … タスクの階層位置を表す番号。０は現在のタスクを、１はそのすぐ上位の親タスクを表します。

ファイル番号 … 現在のタスクの出力ファイルの通し番号

戻り値：	論理値

例：	EOP(0,1)は、現在のタスクの最初の出力ファイルの処理中は、各ページの終わりで「真」を返します。

関連項目：	EOF、LINE、PAGE


EOY

年の最後の日付

パラメータに指定された年の最後の日付を返します。

構文：	EOY(日付)

パラメータ：	日付または日付式

戻り値：	日付値

例：	EOY('97/09/21'DATE)は、'97/12/31'を返します。

関連項目：	BOM、BOY、EOM、ADDDATE、CDOWなど、すべての日付関数


ESTR

数値の文字列への変換（８バイトの浮動小数点型）

８バイトの数値を８バイトの浮動小数点型に変換します。

構文：	ESTR(数値)

パラメータ：	数値 … 変換する数値

戻り値：	文字列（８バイトの浮動小数点型）

関連項目：	EVAL、ISTR、IVAL

注意事項：

この関数は、dbMAGICの以前のバージョンとの互換性のために用意されています。バージョン５では、MSTRを使用してください。


EVAL

文字列の数値への変換（８バイトの浮動小数点型）

８バイトの浮動小数点型の文字列を８バイトの数値に変換します。

構文：	EVAL(文字列)

パラメータ：	文字列 … 文字列（８バイトの浮動小数点型）

戻り値：	８バイトの数値

注意事項：

この関数は、dbMAGICの以前のバージョンとの互換性のために用意されています。バージョン５では、MVALを使用してください。


EXP

指数

指数値を計算します。

構文：	EXP(数値)

パラメータ：	数値 … 指数関数eのx乗のx

戻り値：	数値 … 指数関数eのx乗の値

例：	EXP(5)は、eの5乗の値を返します。

関連項目：	LOG


FILEDLG

Windowsの「ファイルを開く」ダイアログのオープン

Windowsの「ファイルを開く」ダイアログをオープンし、選択したファイル名を返します。

構文：	FILEDLG(ファイルタイプ、グループ)

パラメータ：	ファイルタイプ … 「ファイルの種類」に表示する文字列。

グループ … ファイル名のグループ。ワイルドカード使用可。

戻り値：	文字列 … 選択したファイル名

例：	FILEDLG('DataFile',' *.dat;*.*')

FILEDLG('MyFiles',' *.*')


FILL

文字列の埋め込み

文字列または文字式をｎ回繰り返します。

構文：	FILL(文字列,回数)

パラメータ：	文字列 … 文字列または文字式

回数 … 文字列を繰り返す回数

戻り値：	文字列

例：	FILL('*',5)は、５つのアスタリスクからなる文字列（'*****'）を作成します。

関連項目：	INS、DEL、REP


FIX

数値の抜き出し（範囲外は切り捨て）

すべての形式の実数を、指定された桁数の、整数部と小数部を持つ実数または整数に変換します。数値に対して切り捨てを行う以外は、「ROUND」と同様に機能します。

構文：	FIX(数値,整数部桁数,小数部桁数)

パラメータ：	数値 … 操作対象の数値

整数部桁数 … 数値の整数部分から抜き出す桁数。dbMAGICでは、小数区切文字から左に桁数が数えられます。

小数部桁数 … 数値の小数部分から抜き出す桁数。dbMAGICでは小数区切文字から右に桁数が数えられます。

戻り値：	数値

例：	FIX(12345.6789,3,3)は345.678を返します。

IF(FIX(M,2,0)=99,N+1,N)文が数Ｍをチェックして、Ｍの整数部分の最後の２桁が99の場合は、Ｎに１が加算されます。

関連項目：	ROUND


FLIP

文字列の鏡面イメージへ反転

文字列または文字式の書式のテンプレートを、その鏡面イメージとして反転させます。

構文：	FLIP(文字列)

パラメータ：	文字列 … 文字列または文字式

戻り値：	文字列

例：	FLIP('Good')は、'dooG'を返します。


FLOW

フローモードのチェック

操作のフローモードをチェックします。

Ｎ … 順方向通常モード

Ｆ … 順方向高速モード

Ｐ … 逆方向通常モード

Ｒ … 逆方向高速モード

Ｓ … 選択終了（選択操作後に終了）

Ｃ … 取消終了（選択操作なしで終了）

構文：	FLOW(文字列)

パラメータ：	文字列 … フローモードを表す文字列（Ｎ、Ｆ、Ｐ、Ｒ、Ｃ、Ｓ）

戻り値：	論理値 … 入力として指定したモードが現在の操作モードの場合は、論理値（真）を返します。

例：	FLOW('N')は、操作が通常モードで行われている場合には「真」を返します。

関連項目：	VIEWMOD、VARMOD


GROUP

GROUP関数は、主に以前のバージョンとの互換性のためだけに維持されています。

数値０を返します。

構文：	GROUP()

パラメータ：	なし

戻り値：	数値０

例：	GROUP()は０を返します。

関連項目：	RIGHTS、USER

注意事項：

バージョン5.0以前では、アクセス権はグループレベルだけで定義していました。バージョン6.xでは、ユーザレベルとグループレベルで定義します。グループはオプションで、類似しているユーザのグループへ一連の権利を簡単に割り当てるために使用します。個々のユーザは、グループに属する必要はなく、複数のグループに属することもできます。そのため、グループメンバー権だけでは、権利を決定できません。開発者は、新しい関数RIGHTSを使用して、ユーザが特定の権利を所有しているかどうかを照会できます。したがって、GROUP関数はバージョン5.6以降では意味を持ちません。このため、グループメンバー権の照会には使用できず、常に０を返します。したがって、既存のアプリケーションを修正する必要があります。


GETLANG

現在選択されている言語の取得

現在選択されている言語を取得します。［動作環境］テーブルの［多言語サポートファイル］パラメータから取得されます。

構文：	GETLANG()

パラメータ：	なし

戻り値：	文字列または空の文字列

例：	GETLANG()


GROUPADD

ユーザグループにユーザを割り当てる

管理ファイルのユーザグループにユーザを割り当てます。

構文：	GROUPADD(ユーザ,グループ)

パラメータ：	ユーザ … グループに割り当てるユーザのユーザIDを指定します。

グループ … ユーザを割り当てるグループを指定します。

戻り値：	論理値の真または偽は、演算の成功または失敗を表します。

例：	GROUPADD('Accountant','Accounting')

'Accounting'グループを呼び出し、'Accountant'ユーザとして設定します。

'Accountant'ユーザは、'Accounting'グループの全権利を継承します。

注意事項：

SUPERVISORユーザだけが、正常に使用できます。


HAN

半角文字への変換

全角文字（英数字、またはカタカナ）を１バイトの半角文字に変換します。

構文：	HAN（文字列）

パラメータ：	文字列 … 文字列

戻り値：	文字列

例：	HAN('１６ＫＢ')='16KB'

HAN('カタカナ')='ｶﾀｶﾅ'


HITZORDR

コントロールのＺオーダ値を返す。

フォーム上で選択したコントロールのZオーダの値を返します。この関数は、ウィンドウ単位で機能します。

構文：	HITZORDR()

パラメータ：	なし

戻り値：	数値 … フォーム上でコントロールを選択するイベントが発生したコントロールのZオーダの値


HOUR

時刻値の時間の値

時刻値または時刻式の「時間」を返します。

構文：	HOUR(時刻)

パラメータ：	時刻 … 時刻値または時刻式

戻り値：	数値（01～99）

例：	HOUR('12:00:00'TIME)は、12を返します。

項目Ａが時刻値14:00:00の場合に、式HOUR(A)+2は16を返します。

関連項目：	MINUTE、SECOND


HSTR

10進法の16進法への変換

10進数に対応する16進数を返します。

構文：	HSTR(数値)

パラメータ：	数値 … 10進数または10進数を表す数式

戻り値：	文字列（16進数）

例：	HSTR(15)は'F'を返します。

HSTR(16)は'10'を返します。

関連項目：	HVAL

注意事項：

結果は左詰めにされます。


HVAL

16進法の10進法への変換

16進数に対応する10進数を返します。

構文：	HVAL(文字列)

パラメータ：	文字列 … 16進数を表す文字列

戻り値：	数値

例：	HVAL('FF')は255を返します。

HVAL('10')は16を返します。

関連項目：	HSTR


IDLE

システムの非活動時間のチェック

dbMAGICで受信された最後のキー操作からの経過時間を、1/10秒単位で返します。IDLE時間は、［動作環境］の［キーボード休止秒数］パラメータで変更されます。IDLE関数は、［動作環境］の［キーボード休止秒数］パラメータで指定された秒数が経過すると、［キーボード休止秒数］を加算した値を返します。

構文：	IDLE()

パラメータ：	なし

戻り値：	最後のキー操作からの経過時間が、キーボード休止秒数よりも短い場合は「0」を返します。最後のキー操作からの経過時間が、キーボード休止秒数よりも長い場合は、キーボード休止秒数単位の累積数を返します。［キーボード休止秒数］パラメータは１秒単位で指定されます。

例：	［動作環境］の「キーボード休止秒数」が「5」に設定されている場合に、IDEL()関数は以下の値を返します。

１秒経過後は0

２秒経過後は0

４秒経過後は0

５秒経過後は50

６秒経過後は50

10秒経過後は100


IF

条件付き評価（If-Then-Else）

論理式を評価し、真の場合（Then）には指定された一方の値を、偽の場合（Else）には他方の値を返します。「IF」はネストして使用できます。

構文：	IF(論理式,値１,値２)

パラメータ：	論理式 … 論理式

値１ … 条件の評価が真の場合に返される値

値２ … 条件の評価が偽の場合に返される値

戻り値：	値

例：	IF(A=1,'Blue','Green')は、Ａが１の場合（真）はBlueを、Ａが１でない場合（偽）はGreenを返します。


INIGET

INIファイルの照会

“MAGIC.INI”からの環境値を返します。

構文：	INIGET(INIファイルのエントリ)

パラメータ：	INIファイルのエントリ … “MAGIC.INI”の必要な情報を読み取るためのセクションとパラメータを示す文字列

記述形式→'［セクション］パラメータ'

戻り値：	“MAGIC.INI”の値を含む文字列。ファイルが発見できない場合は空白です。

例：	INIGET('owner')は、現在のオーナーの値を返します。

INIGET('[MYAPPL]LAST_CUST')は、アプリケーションに依存する値を返します。

関連項目：	INIPUT

注意事項：

“MAGIC.INI”のセクションを指定しない場合は、デフォルトの'[MAGIC_ENV]'セクションが使用されます。

INIファイルのエントリパラメータでは、大文字と小文字が区別されます。

この関数は、dbMAGICの特定の項目にアクセスする場合、またはアプリケーション依存のグローバルデータを検索する場合に使用できます。更新できるアプリケーションデータの検索に使用する場合は、各ユーザが自分の“MAGIC.INI”を持っていることを確認することをお勧めします。グローバルデータとカウンタを複数のユーザで共有する必要がある場合は、標準DBファイルを使用します。

性能上の理由から、［動作環境］テーブルの［MAGIC.INI常駐］を「Yes」に設定することをお勧めします。詳細については、「16.1 設定メニュー」の［MAGIC.INI常駐］の“MAGIC.INI”ファイルとコマンド行の説明を参照してください。


INIPUT

INIファイルの値の更新

“MAGIC.INI”内の環境値を更新します。

構文：	INIPUT(INIファイルのエントリ)

パラメータ：	INIファイルのエントリ … “MAGIC.INI”の更新するセクション、パラメータ、更新のための値

記述形式→'[セクション]パラメータ=値'

以下の文字は予約語になっているので使用できません。

［］＝、＊‘’／－：＠

戻り値：	論理値（正常終了の場合「真」）

例：	INIPUT('Owner=WACOM, Century=1920')は、現在のオーナー名と西暦基準年の値を設定します。

関連項目：	INIGET

注意事項：

“MAGIC.INI”のセクションを指定しない場合は、デフォルトの'[MAGIC_ENV]'が使用されます。

INIファイルのエントリパラメータでは、大文字と小文字が区別されます。このエントリが発見できない場合は、新しく挿入されます。

この関数は、dbMAGICの特定の項目を設定する、またはアプリケーション依存のグローバルデータの更新に使用できます。アプリケーションデータの更新に使用する場合は、各ユーザが自分の“MAGIC.INI“を持っていることを確認することをお勧めします。グローバルデータとカウンタを複数のユーザで共有する必要がある場合は、標準DBファイルを使用します。

性能上の理由から、［動作環境］テーブルの［MAGIC.INI常駐］を「Yes」に設定することをお勧めします。この場合は、“MAGIC.INI”が、dbMAGICを終了したときにだけ更新されます。詳細については、「16.1 設定メニュー」の［MAGIC.INI常駐］の“MAGIC.INI”ファイルとコマンド行の説明を参照してください。


INS

文字列の挿入

文字列１の指定位置に、文字列２の先頭から指定された文字数分を挿入します。全角文字を２分する位置を指定すると、２分される文字は半角のスペースに置き換えられます。

構文：	INS(文字列１,文字列２,位置,文字数)

パラメータ：	文字列１ … 文字列を挿入する対象の文字列

文字列２ … 挿入する文字列

位置 … 文字列１の挿入開始位置を表す数値

文字数 … 文字列２から文字列１に挿入する文字数

戻り値：	文字列

例：	INS('abcd','xxx',3,1)は、'abxcd'を返します。

関連項目：	DEL、REP、FILL


INSTR

文字列内検索

文字列に検索文字列があるかどうか調べます。ある場合は、最初に発見した位置の桁数を返し、ない場合は「0」を返します。

構文：	INSTR(文字列,検索文字列)

パラメータ：	文字列 … 文字列または文字式

検索文字列 … 文字列内の検索引数となる文字列

戻り値：	数値（発見できない場合は「0」）

例：	INSTR('abcd','b')は２を返します。

INSTR('ABCDEF','DE')は４を返します。


IOCOPY

ファイルの複写（ディスク上）

ファイルを複写します。

構文：	IOCOPY(元ファイル,新ファイル)

パラメータ：	元ファイル … 複写する既存のファイル名

新ファイル … 新しいファイル名

戻り値：	論理値（正常終了の場合は「真」、異常終了の場合は「偽」）

関連項目：	IODEL、IOEXIST、IOREN、IOSIZE

注意事項：

各パラメータでは、ファイル名にパスを入れることができます。パスを省略すると、dbMAGICでは現在のディレクトリが想定されます。


IOCURR

印刷中の入出力ファイル番号を返す

印刷中の入出力ファイル番号（［入出力ファイル］テーブルのファイル番号（＃欄））を返します。

構文：	IOCURR()

パラメータ：	なし

戻り値：	数値 … 印刷中の入出力ファイル番号

印刷していない場合は、「0」を返す。

注意事項：

この関数は、入出力が実際に行われているとき使用します。つまり、［イベント］テーブルの［式］欄か［タスクイベント］テーブルの［アクション］欄で、「ページヘッダ」か「ページフッタ」アクションを設定したとき使用します。この関数はページヘッダまたはページフッタのフォームを、［メディア］欄が［Ｇ＝GUI形式プリント］に設定された入出力ファイルに割り当てている場合にのみ入出力ファイル番号を返します。それ以外の場合は、「0」を返します。


IODEL

ファイルの削除（ディスク上）

ディスクからファイルを削除して、削除の成功または失敗を知らせる論理値（真または偽）を返します。

構文：	IODEL(ファイル名)

パラメータ：	ファイル名 … ファイル名にはパスを入れることができます。パスを省略すると、dbMAGICでは現在のディレクトリが想定されます。

戻り値：	論理値（正常終了の場合は「真」、異常終了の場合は「偽」）

関連項目：	IOCOPY、IOEXIST、IOREN、IOSIZE

注意事項：

［ＯＳコマンド］で削除コマンド（ＤＥＬなど）を実行するよりもこの関数の使用をお勧めします。


IOEXIST

ディスク上のファイルの存在の確認

指定されたファイルがドライブ上に存在するかどうかをチェックして、論理値（真または偽）を返します。

構文：	IOEXIST(ファイル名)

パラメータ：	ファイル名 … ファイル名にはパスを入れることができます。パスを省略すると、dbMAGICでは現在のディレクトリが想定されます。

戻り値：	論理値（真または偽）

例：	IOEXIST('c:\magic\magic.ini')は、C:\MAGICディレクトリに“MAGIC.INI”がある場合に「真」を返します。

関連項目：	IOCOPY、IODEL、IOREN、IOSIZE


IOREN

ファイル名の変更（ディスク上）

ファイル名を変更します。

構文：	IOREN(元ファイル,新ファイル)

パラメータ：	元ファイル … 改名する既存のファイル名

新ファイル … 新しいファイル名

戻り値：	論理値（正常終了の場合は「真」、異常終了の場合は「偽」）

例：	IOREN('MAGIC.FILE','MAGIC.SAV')では、MAGIC.FILEがMAGIC.SAVに改名されます。

関連項目：	IOCOPY、IOEXIST、IODEL、IOSIZE

注意事項：

各パラメータでは、ファイル名にパスを入れることができます。パスを省略すると、dbMAGICでは現在のディレクトリが想定されます。

改名が実行できない場合（改名するファイルが別のドライブにある場合など）は、ファイルが新しい名前で指定したドライブに複写されます。


IOSIZE

ファイルサイズの照会（ディスク上）

ファイルのサイズを返します。

構文：	IOSIZE(ファイル名)

パラメータ：	ファイル名 … ファイル名にはパスを入れることができます。パスを省略すると、dbMAGICでは現在のディレクトリが想定されます。

戻り値：	数値

例：	IOSIZE('c:\magic\magic.ini')は、“C:\MAGIC\MAGIC.INI”のファイルサイズを返します。

関連項目：	IOCOPY、IODEL、IOEXIST、IOREN


ISNULL

NULL値の確認

構文：	ISNULL(変数)

パラメータ：	変数 … 値として変数名を示します。VARリテラルとともに使用することをお勧めします。

戻り値：	論理値（NULL値が入っていない場合は「真」、入っていない場合は「偽」。

例：	ISNULL('BE'VAR)の戻り値が「真」の場合は、'BE'はNULL値です。


ISTR

数値の文字列への変換（２バイトの整数）

数値を２バイトの整数に変換します。「IVAL」と逆の機能を備えた関数です。

構文：	ISTR(数値)

パラメータ：	数値 … 変換する数値

戻り値：	文字列（２バイトの整数）

注意事項：

dbMAGICの以前のバージョンとの互換性のために用意されています。バージョン６では、MSTRを使用してください。


IVAL

文字列の数値への変換（２バイト整数）

２バイトの整数を数値に変換します。

構文：	IVAL(文字列)

パラメータ：	文字列 … ２バイトの整数

戻り値：	数値

注意事項：

この関数は、dbMAGICの以前のバージョンとの互換性のために用意されています。バージョン６では、MVALを使用してください。


JCDOW

週の曜日名（日本語）

日付から日本語の曜日名（日曜日、月曜日など）を求めます。

構文：	JCDOW(日付)

パラメータ：	日付 … 日付

戻り値：	文字列

例：	・JCDOW('97/11/01'DATE)='土曜日'

・システム日付が97/11/03（YY/MM/DD）の場合

JCDOW(DATE())='月曜日'

参考：	曜日名を英語で求める場合は、「CDOW」を使用します。


JGENGO

元号名（日本語）

日付から元号名を求めます。文字数に「1」が指定されると、元号のシンボル名を返し、「2」または「4」が指定されると漢字名を返します。

構文：	JGENGO(日付,文字数)

パラメータ：	日付 … 日付

文字数 … 数値(1,2,4)

戻り値：	文字列

例：	・文字数の指定が「4」の場合

JGENGO('97/11/01'DATE,4)='平成'

・文字数の指定が「1」の場合

JGENGO('97/11/01'DATE,1)='H'


JMONTH

月番号の月名（日本語）への変換

月番号（1～12）を、対応する月名（１月～12月）に変換します。

構文：	JMONTH(月番号)

パラメータ：	月番号 … 数値（1～12）

戻り値：	文字列

例：	JMONTH(5)= '_5月'（_は半角スペースを表す）

参考：	月名を英語で求める場合は、「NMONTH」を使用します。


JNDOW

曜日番号の曜日名（日本語）への変換

週の曜日番号（1,2など）を対応する曜日名（日曜日、月曜日など）に変換します。

構文：	JNDOW(曜日番号)

パラメータ：	曜日番号 … 数値（1～7）

戻り値：	文字列

例：	JNDOW(1)='日曜日'

参考：	曜日名を英語で求める場合は、「NDOW」を使用します。


JYEAR

元号年

日付から元号年を求めます。

構文：	JYEAR(日付)

パラメータ：	日付 … 日付

戻り値：	数値

例：	JYEAR('97/09/01'DATE)=9

1997年は平成９年に対応するため、「9」が出力されます。


KBGET

最後のキー操作の取得

最後に押されたキーまたは最後に行われた動作を（［キーボード割付］テーブルの定義に従って）文字フォーマットで返します。

構文：	KBGET(数値)

パラメータ：	数値 … ０または１（数値）。１の場合はアクションを、０の場合はキーの文字列を返します。

戻り値：	文字列

例：	KBGET(0)は、｛F2｝キーが押された場合に文字列‘F2’を返します。


KBPUT

キー入力のシミュレーション

dbMAGIC内から、アクションまたはキーボード操作をシミュレートします。

構文：	KBPUT(文字列)

パラメータ：	文字列 … 文字列（文字、キーボードリテラル（KBD）、アクションリテラル（ACT）の連結を含む）

戻り値：	論理値（正常終了の場合は「真」、異常終了の場合は「偽」）

例：	KBPUT('F2'KBD&'E:終了'ACT&'abcd')は、まずキーボード操作｛F2｝をシミュレートします。次に、［キーボード割付］テーブルの［アクション］欄の定義に従って終了動作を行い、「abcd」の文字列を入力します。

関連項目：	リテラル、KBGET

注意事項：

KBDとACTのリテラルは、実際には'<キーボード値>'と'[アクション値]'を省略した表記です。このために、アクションとキーボードの値を複数つなぐことができます。必ずリテラルを使用して、使用アプリケーションのほかの言語への移植性を保証することをお勧めします。

指定する値は、実際には内部キーボードバッファの終わりに「詰め込まれ」、dbMAGICで実際に入力が要求された場合にだけこのアクションが実行されます。したがって、この関数を使用する際には注意が必要です。

この関数は、実際にアクションを実行するため、［アクション］処理コマンドを使用して実行することをお勧めします。

LCD設定についてのKBPUTはサポートされていません（NumLock,CapsLock,ScrollLock）。


LEFT

文字列の左側からの文字の獲得

文字列の一番左の文字から、指定された数だけ文字を返します。全角文字を２分する位置を指定すると、２分される文字は半角のスペースに置き換えられます。

構文：	LEFT(文字列,文字数)

パラメータ：	文字列 … 文字列

文字数 … 返される文字数

戻り値：	文字列

例：	LEFT('abcdefg',3)は、'abc'を返します。

LEFT('あいう',5)は、'あい_'を返します。

注意：「_」は、半角スペースを表します。

関連項目：	RIGHT、MID


LEN

文字列の長さ

文字列の定義された長さ（文字数）を返します。

構文：	LEN(文字列)

パラメータ：	文字列 … 入力文字列

戻り値：	長さ（文字数）

例：	LEN('abcdefg')は、７を返します。

関連項目：	TRIM、RTRIM、LTRIM

注意事項：

文字項目の実際の長さを検索するには、LEN(RTRIM（項目）)を使用します。Ａが'abcd___'を含む20文字の文字項目で、「___ 」が空白の場合、LEN(RTRIM（A）)は「4」を返します。


LEVEL

タスク実行レベルの照会

タスクでの実行レベルをチェックします。

構文：	LEVEL(タスク番号)

パラメータ：	タスク番号 … タスクの階層位置を表す番号。０は現在のタスクを、１はそのすぐ上位の親タスクを表します。

戻り値：	以下のものを含む文字列

［レコード前処理］を表す「RP」

［レコードメイン］を表す「RM」

［レコード後処理］を表す「RS」

［ブレイクレベル x 前処理］を表す「LxP」（例：L1P、L2P）

［ブレイクレベル x 後処理］を表す「LxS」（例：L1S、L2S）

［タスク前処理］を表す「TP」

［タスク後処理］を表す「TS」

タスクが発見できないことを示す「''」（ヌルまたは空）

例：	LEVEL(x)で、ｘが０、１などの場合：

LEVEL(1)='RP'は、親タスクでの現在のレベルがレコード前処理の場合は、真です。

IF(LEVEL(1)='','親タスクが見つかりませんでした','')は、現在のタスクに親タスクがない場合に、「親タスクが見つかりませんでした」というメッセージを出力します。

注意事項：

［タスク制御］ダイアログの［タスク終了］欄にLEVEL(1)<>挿RM筑を設定する方法は、同期化された１対多のタスクで使用します。


LINE

現在の行番号の照会

出力ファイルの現在の行番号を返します。

構文：	LINE(タスク番号,ファイル番号)

パラメータ：	タスク番号 … タスクの階層位置を表す番号。０は現在のタスクを、１はそのすぐ上位の親タスクを表します。

ファイル番号 … 指定されたタスク内での出力ファイルの通し番号

戻り値：	現在の行番号（１から前のテーブルで定義される行数の範囲）

例：	LINE(1,1)は、すぐ上位の親タスクの最初の出力ファイルの現在の行番号を返します。

関連項目：	PAGE


LOG

自然対数

数値の自然対数を返します。

構文：	LOG(数値)

パラメータ：	数値 … 数値

戻り値：	数値

例：	LOG(2.71828)は、１を返します。

関連項目：	EXP


LOWER

大文字の小文字への変換

大文字を小文字に変換します（全角英文字も含む）。

構文：	LOWER(文字列)

パラメータ：	文字列 … 文字列または文字式

戻り値：	文字列 … 小文字に変換された文字列

例：	LOWER('ABCD')は、'abcd'を返します。

関連項目：	UPPER


LSTR

数値の文字列への変換（４バイトの数値）

４バイトの整数を４バイトの文字列に変換します。

構文：	LSTR(数値)

パラメータ：	数値 … 変換する数値

戻り値：	文字列（４バイトの整数型）

関連項目：	LVAL、MSTR、MVAL

注意事項：

この関数は、dbMAGICの以前のバージョンとの互換性のために用意されています。バージョン６では、MSTRを使用してください。


LTRIM

先行空白の削除

文字列の左の空白を削除します。

構文：	LTRIM(文字列)

パラメータ：	文字列 … 文字列

戻り値：	空白が削除された文字列

例：	LTRIM('   abcd')は、'abcd'を返します。

関連項目：	RTRIM、TRIM


LVAL

文字列の数値への変換（４バイトの整数）

文字列（４バイトの整数）を数値に変換します。

構文：	LVAL(文字列)

パラメータ：	文字列 … 数値に変換する４バイトの整数

戻り値：	数値

関連項目：	LSTR、MSTR、MVAL

注意事項：

この関数は、dbMAGICの以前のバージョンとの互換性のために用意されています。バージョン６では、MVALを使用してください。


MAX

一番大きい値の選択

同じ型の値の中で一番大きい値を返します。

構文：	MAX(値１,値２...値n)

パラメータ：	値１ … 数値、文字列、または論理値

値２ … 値１と同じ型の値

：

値ｎ … 値１と同じ型の値

戻り値：	一番大きい値

例：	MAX(8,9,2,5,4)は、９を返します。

MAX('ABC','ACD')は、'ACD'を返します。

関連項目：	MIN、IF

注意事項：

パラメータの数は30個までです。


MAXMAGIC

ウィンドウの最大表示

dbMAGICのウィンドウを最大表示する。

構文：	MAXMAGIC()

パラメータ：	なし

戻り値：	論理値（真または偽）

関連項目：	MINMAGIC、RESMAGIC


MDATE

dbMAGICの日付の照会

dbMAGICの日付（ログオンウィンドウに入力された日付）を返します。

構文：	MDATE()

パラメータ：	なし

戻り値：	日付

例：	MDATE()+5は、dbMAGICの日付の５日後の日付を返します。加算または減算される数は、日数として解釈されます。

関連項目：	DATE


MENU

メニュー経路の照会

現在のプログラムへのメニュー経路を返します。返す文字列には、最終的なプログラムを実行するためのメニュー名だけでなく、そこに至るまでのメニュー名もすべて含まれます。名前は、「;」文字で区切られます。

構文：	MENU()

パラメータ：	なし

戻り値：	文字列

例： 	MENU()は、「;」文字で区切られた名前を返します。

関連項目：	PROG

注意事項：

プログラムを［開発モード］から呼び出している場合には‘’（ヌル）が返されます。


MID

文字列からの文字の獲得

文字列から指定された数の文字を抜き出します。全角文字を２分する位置を指定すると、２分される文字は半角のスペースに置き換えられます。

構文：	MID(文字列,開始位置,文字数)

パラメータ：	文字列 … 入力文字列

開始位置 … 文字列内の部分文字列の開始位置を表す数

文字数 … 抜き出す文字の数（部分文字列の長さ）

例：	MID('abcd',3,2)は、'cd'を返します。

関連項目：	LEFT、RIGHT


MIDV

文字列からの文字の取得

機能はMID関数と同じですが、全角文字を２分する場合でも半角スペースに置き換えません。


MIN

一番小さい値の選択

同じ型の値の中で、一番小さい値を返します。

構文：	MIN(値１,値２,...,値ｎ)

パラメータ：	値１ … 数値、文字列、または論理値

値２ … 値１と同じ型の値

：

値ｎ … 値１と同じ型の値

戻り値：	一番小さい値

例：	MIN(8,9,2,5,4)は、２を返します。

MIN('ABC','ACD')は、'ABC'を返します。

関連項目：	MAX、IF

注意事項：

パラメータの数は30個までです。


MINMAGIC

ウィンドウのアイコン化

dbMAGICのウィンドウをアイコン化する。

構文：	MINMAGIC()

パラメータ：	なし

戻り値：	論理値（真または偽）

関連項目：	MAXMAGIC、RESMAGIC


MINUTE

時刻値の分の値

時刻値の「分」の部分を返します。

構文：	MINUTE(時刻)

パラメータ：	時刻 … 時刻値

戻り値：	数値(0～59)

例：	MINUTE('12:15:00'TIME)は、15を返します。

Ａが時刻値'12:15:00'の場合に、MINUTE(A)+2は17を返します。

関連項目：	リテラル、SECOND、HOUR、TIME

注意事項：

'12:15:00'の後にTIMEリテラルを使用する方法を、TIME()関数と混同しないでください。


MLSTRANS

文字列の変換結果を返す

多国語環境で、［言語］テーブルで現在使用中の設定にもとづいた、文字列の変換結果を返します。

構文：	MLSTRANS(文字列)

パラメータ：	文字列	最大32000文字までの変換する文字列を指定します。

戻り値：	変換した結果の文字列

例：	MLSTRANS('Cancel')


MNUCHECK

メニュー項目の前のチェックマークの表示／非表示を設定

構文：	MNUCHECK(論理メニュー名、'True/False')

パラメータ：	メニュー項目名 … ［メニュー定義］テーブルの［論理メニュー名］欄の値

'True/False' … 'True/False'は、論理値の「真／偽」を意味しています。'True'の場合、チェックマークが付加されます。'False'の場合、チェックマークが付加されません。

戻り値：	論理値

例：	MNUCHECK('ENTRY','True')

注意事項：

この関数は、トップレベルのプルダウンメニューバーには使用できません。


MNUENABL

メニュー項目の有効／無効を設定

構文：	MNUCHECK(論理メニュー名，'True/False')

パラメータ：	論理メニュー名 … ［メニュー定義］テーブルの［論理メニュー名］欄の値

'True/False' … 'True/False'は、論理値の「真／偽」を意味しています。'True'の場合、メニュー項目が有効になります。'False'の場合、メニュー項目が無効になります。

戻り値：	論理値

例：	MNUENABL('PROG1','True')

注意事項：

この関数は、ユーザアクションに対してのみ有効で、dbMAGICの内部アクションには使用できません。


MNUSHOW

メニュー項目の表示／非表示を設定

構文：	MNUSHOW(論理メニュー名，'True/False')

パラメータ：	論理メニュー名 … ［メニュー定義］テーブルの［論理メニュー名］欄の値

'True/False' … 'True/False'は、論理値の「真／偽」を意味しています。'True'の場合、メニュー項目が表示されます。'False'の場合、メニュー項目は表示されません。

戻り値：	論理値

例：	MNUSHOW('MENU','True')

注意事項：

メニュー関数は、すべてのOSコマンドとメニュータイプの行をプルダウンメニューのすべてで探索し、合致したすべての項目に対して実行されます。


MONTH

日付値の月値

日付の「月」の部分を返します。

構文：	MONTH(日付)

パラメータ：	日付 … 日付

戻り値：	数値(1～12)

例：	MONTH('1997/01/28'DATE)は、１を返します。

関連項目：	リテラル、DAY、YEAR

注意事項：

'1997/01/28'の後にDATEリテラルを使用する方法を、DATE()関数と混同しないでください。


MSTR

数値の文字列への変換

数値を、指定された長さ（バイト数）のdbMAGIC内部コードに変換します。

構文：	MSTR(数,バイト数)

パラメータ：	数 … 変換する数

バイト数 … 変換結果の文字列の長さ（バイト数）

戻り値：	dbMAGIC数を含む文字列

例：	MSTR(123456,4)は、123456を４バイトの文字列に変換します。

関連項目：	MVAL

注意事項：

この関数は、データを配列単位で格納するために特に設計されています。最大精度は、項目格納タイプであるdbMAGIC内部コードで識別されます。


MVAL

文字列の数値への変換

dbMAGIC内部コードを数値に変換します。

構文：	MVAL(文字列)

パラメータ：	文字列 … dbMAGIC内部コードを含む文字列

戻り値：	数値

例：	MVAL(MSTR(1234,4))は、1234を返します。

関連項目：	MSTR


NDOW

曜日番号の曜日名（英語）への変換

週の曜日番号（1、2など）を、対応する曜日名（Sunday、Mondayなど）に変換します。

構文：	NDOW(曜日番号)

パラメータ：	曜日番号 … 曜日を表す番号

戻り値：	文字列（曜日名を含む）

例：	NDOW(1)は、'Sunday'を返します。

NDOW(DOW('1997/08/22'DATE))は、'Friday'を返します。

参考：	曜日名を日本語で求める場合は、「JNDOW」を使用します。

関連項目：	DOW、CDOW

注意事項：

曜日番号が7よりも大きい場合は、7が減算されます。つまり、曜日番号に0、7、または14を指定すると、すべて'Saturday'が返されます。


NMONTH

月番号の月名（英語）への変換

月番号（1～12）を、対応する月名（January～December）に変換します。

構文：	NMONTH(月番号)

パラメータ：	月番号 … 月番号（1～12）

戻り値：	文字列

例：	NMONTH(1)は、'January'を返します。

NMONTH(MONTH(挿1997/01/28'DATE))は、'January'を返します。

参考：	月名を日本語で求める場合は、「JMONTH」を使用します。

関連項目：	MONTH、CMONTH、NDOW


NOT

否定

オペランドの論理値を逆にします。


NULL

項目の値をNULL値に設定

構文：	NULL()

注意事項：

この関数にはパラメータはなく、項目の値をNULL値に設定する場合に使用します。NULL値は、NULL値をサポートするデータベースゲートウェイだけでサポートされます。

開発者は、NULL値を含む計算を実行する場合に、アプリケーションが行う処理を指定できます。項目レベルまたはCTLレベルで指定した計算にNULL値を使用したり、計算の結果をNULLに設定したりできます。

NULL値が使用できない場合は、項目がNULLに設定されません。詳細については、「4.2　タイプ辞書の定義」の「NULL値可」の設定を参照してください。


OR

論理和

オペランドのどちらかが真の場合に「真」を返します。


OWNER

オーナー名の照会

OWNER関数は、［動作環境］テーブルで、30字の文字列として定義される［オーナー名］パラメータの現在の値を返します。この値は、INIGET関数やENV関数でも検索できます。OWNER関数は、INIGET関数とは異なり、ディスクにまったくアクセスしないでメモリから値を検索します。性能上の理由から、OWNER関数を使用することをお勧めします。

構文：	OWNER()

パラメータ：	なし

戻り値：	オーナー名の文字列（30字）

関連項目：	ENV、INIGET


PAGE

出力ファイルの現在のページ番号

出力ファイルの現在のページ番号を返します。

構文：	PAGE(タスク番号,出力ファイル番号)

パラメータ：	タスク番号 … タスクの階層位置を表す番号。０は現在のタスクを、１はそのすぐ上位の親タスクを表します。

出力ファイル番号 … 指定したタスクでの出力ファイルの通し番号（［入出力ファイル］テーブルの［＃］欄）

戻り値：	番号

例：	PAGE(1,1)は、すぐ上位の親タスクの、出力ファイル（［入出力ファイル］テーブルの１行目）の出力中のページ番号を返します。

関連項目：	LINE


PPD

この機能は、日本語版ではサポートされていません。


PREF

アプリケーションの識別子の照会

［アプリケーション］テーブルからのアプリケーションの識別子を返します。パスがある場合にはこれも返します。

構文：	PREF()

パラメータ：	なし

戻り値：	文字列

例：	アプリケーションの識別子が「AP」で、アプリケーションがC:\APPLにある場合は、PREF()が'C:\APPL\AP'を返します。

関連項目：	SYS


PROG

タスク経路の照会

現在のタスクへのタスク経路を返します。返す文字列は、現在ののタスク名だけでなく、そこに至るまでのタスク名もすべて含みます。名前は、「;」文字で区切られます。

構文：	PROG()

パラメータ：	なし

戻り値：	文字列

例：	たとえば、PROG()は、'販売受注書（顧客別）;顧客（ヘッダ）;受注行'を返します。

関連項目：	MENU


RAND

乱数ジェネレータ

乱数を生成します。

構文：	RAND(開始番号)

パラメータ：	開始番号 … 順序の定義に使用する内部番号

戻り値：	乱数

例：	開始番号が「-1」の場合、内部番号はランダムに初期化されます。

開始番号が「ｎ」の場合（ここで、ｎは０でも-1でもない）、内部番号はｎに初期化されます。

開始番号が「０」の場合、次の乱数は既存の内部番号をもとにして生成されます。

内部番号の初期化後に各乱数を生成する場合は、RAND(0)で継続します。


RANGE

範囲チェック

数が範囲内に入るかどうかをチェックして、論理値の「真」または「偽」を返します。

構文：	RANGE(値,下限値,上限値)

パラメータ：	値 … チェックする値

下限値 … 範囲の下限値

上限値 … 範囲の上限値

戻り値：	論理値（下限値 =< 値 <= 上限値の場合は「真」）

例：	RANGE(10,5,15)は、「真」を返します。

関連項目：	MIN、MAX

注意事項：

MINやMAXのように、すべてのパラメータで共用されている限り、どの型でも使用できます。


REP

文字列の置き換え

文字列内の指定位置から別の文字列に置き換えます。全角文字を２分する位置を指定すると、２分される文字は半角のスペースに置き換えられます。

構文：	REP(文字列１,文字列２,位置,文字数)

パラメータ：	文字列１ … 置き換え対象となる文字列

文字列２ … 置き換える文字列

位置 … 文字列１の置き換え開始位置

文字数 … 置き換え文字数。文字列２から文字列１に複写される文字の数で、文字列２の一番左の文字から数えます。

戻り値：	修正された文字列１

例：	REP('12345','abcde',3,2)は、'12ab5'を返します。


REPV

文字列の置き換え

機能はREP関数と同じですが、全角文字を２分しても半角スペースに置き換えません。


RESMAGIC

ウィンドウを元のサイズに戻す

dbMAGICのウィンドウを元のサイズに戻す。

構文：	RESMAGIC()

パラメータ：	なし

戻り値：	論理値（真または偽）

関連項目：	MAXMAGIC、MINMAGIC


RIGHT

文字列の右側からの文字の獲得

文字列の一番右の文字から、指定された数だけ文字を返します。全角文字を２分する位置を指定すると、２分される文字は半角のスペースに置き換えられます。

構文：	RIGHT(文字列,文字数)

パラメータ：	文字列 … 文字列

文字数 … 返される文字数

戻り値：	出力文字列

例：	RIGHT('abcdefg',3)は、'efg'を返します。

関連項目：	LEFT、MID、RTRIM

注意事項：

この関数は、文字列が文字項目の場合に、項目の全文字を参照します。RIGHT(A,3)は、項目Ａが'abcdefg'を含む20文字の文字項目の場合に、'   '（空白、項目の最後の３文字分）を返します。

項目に含まれている実際の文字列部分から文字を検索するには、RIGHT（RTRIM（A）,3）とします。


RIGHTADD

管理ファイル中のユーザに権利を割り当てます。

構文：	RIGHTADD(ユーザ,権利)

パラメータ：	ユーザ … 第２パラメータの権利を獲得し、割り当てます。

権利 … ユーザに許可する権利キーを指定します。

戻り値：	論理値の真または偽は、演算の成功または失敗を表します。

例：	RIGHTADD('Accountant','Issue Invoice')は、'Accountant'ユーザに

'Issue Invoice'権利を割り当てます。

注意事項：

SUPERVISORユーザだけが正常に使用できます。


RIGHTS

ユーザが持つ権利の照会

指定した権利をユーザが持つ場合に「真」を返します。指定した権利をユーザが持たない場合に「偽」を返します。

構文：	RIGHTS('文字列'RIGHT)

パラメータ：	文字列 … 権利名を示す文字列とRIGHTリテラル

戻り値：	ユーザが特定の権利を持つ場合は、論理値（「真」）を返します。

例：	RIGHTS('権利#4'RIGHT)は、ユーザが"権利#4"を持つとき「真」を返します。

関連項目：	GROUP、USER

注意事項：

RIGHTリテラルの詳細については、「18.1 リテラル」を参照してください。


ROLLBACK

トランザクションを特定のネストレベルのセーブポイントへ戻す

アプリケーション内のある位置で特定の状態が発生する場合に使用します。

構文：	ROLLBACK(論理値、数)

パラメータ：	論理値 … （True（真） または False（偽））

「真」の場合は、「トランザクションをアボートしますか？」というポップアップボックスを表示して、ユーザの確認を要求します。

「偽」の場合は、確認を要求しません。

数 … ネストレベル。ロールバックするセーブポイントのレベル数を指定します。

１は、最も内側のセーブポイントにロールバックします。

２は、最も内側とその隣りのセーブポイントにロールバックします。

０は、最も外側のレベルにロールバックします。

例：	ROLLBACK(TRUE、0)

注意事項：

ロールバック先に指定できるセーブポイントはプログラム内にあるものに限られます。現在のプログラム外のレベルにロールバックする数は指定しないでください。

通常、「トランザクションロールバック」は、データベースエラーまたはシステムクラッシュのために用意されていますが、アプリケーション論理に関連する例外状況の処理にも役立ちます。たとえば、バッチプログラムが、マスタレコードの勘定残高を更新する財務トランザクションを処理していて、現在のトランザクションレコードを読み込んだ結果、通常\50,000～\1,000,000の範囲内にあるマスタレコードの残高が突然\100,000,000を超えたとします。それは必要なものかもしれないし、マスタ勘定レコードや関連する合計に加えない方が良いかもしれません。このような場合に、残高をチェックする条件を付けたアクションコマンドでROLLBACK関数を使用することで、処理の要／不要に簡単に対処できます。

［処理レベル］テーブルの［エラー］欄を使用して、dbMAGICエンジンに対して、トランザクション処理が失敗した場合の処理を指定します。レコードレベル、ブレイクレベル、タスクレベルについて、以下の３つの値を設定できます。

1.	アボート：タスク全体をアボートします。

2.	スキップ：トランザクションをロールバックし、次のレコードを取り出します（レコードレベルでだけ有効）。

3.	リトライ：トランザクションをロールバックして、リトライします。

［エラー］欄の設定では、アプリケーションがロールバックを実行したあとに、dbMAGICに行わせるアクションを決めます。アクションを制御するレベルは、ロールバックされるトランザクションを定義したレベルです。たとえば、ブレイクレベルとレコードレベルのトランザクションがあり、ROLLBACK(FALSE、2)を使用する場合は、ブレイクエラーがエラー処理を決定します。

［エラー］欄は、dbMAGICの以前のバージョンでは［アボート］欄でした。以前のバージョンの［アボート］欄の機能は、現在では、タスクの［オプションメニュー］ダイアログに新しく追加された［アボート］欄の「Yes」、「No」、「式」で行われます。LEVEL関数を使用して、対象となるタスクレベルに従ってフラグを設定すると、以前のバージョンの［アボート］欄で指定した動作をエミュレートできます。


ROUND

数値の指定部分の抜き出し

数値の指定された部分を抜き出します。このとき、抜き出す部分の下位の桁を四捨五入します。

構文：	ROUND(数値,整数部桁数,小数部桁数)

パラメータ：	数値 … 操作対象の数値

整数部桁数 … 数値の整数部から抜き出す桁数。dbMAGICでは、小数点から左に桁数が数えられます。

小数部桁数 … 数値の小数部から抜き出す桁数。dbMAGICでは、小数点から右に桁数が数えられます。

戻り値：	数値

例：	ROUND(345.995,2,2)は、46.00を返します。

関連項目：	FIX


RSTR

数値の文字列への変換（４バイトの浮動小数点型）

小数点を含む４バイトの数値を、４バイトの文字列に変換します。「RVAL」と逆の機能を持つ関数です。

構文：	RSTR(数値)

パラメータ：	数値 … 変換する数値

戻り値：	文字列（４バイトの浮動小数点型）

関連項目：	RVAL、MSTR、MVAL

注意事項：

この関数は、dbMAGICの以前のバージョンとの互換性のために用意されています。バージョン６では、MSTRを使用してください。


RTRIM

後続空白の削除

文字列の右側の空白を削除します。

構文：	RTRIM(文字列)

パラメータ：	文字列 … 文字列

戻り値：	空白が削除された文字列

例：	RTRIM('abcd  ')は、'abcd'を返します。

関連項目：	LTRIM、TRIM


RVAL

文字列の数値への変換（４バイトの浮動小数点型）

４バイトの浮動小数点型の値を、数値に変換します。「RSTR」と逆の機能を持つ関数です。

構文：	RVAL(文字列)

パラメータ：	文字列 … 文字列

戻り値：	数値

関連項目：	RSTR、MSTR、MVAL

注意事項：

この関数は、dbMAGICの以前のバージョンとの互換性のために用意されています。バージョン６では、MVALを使用してください。


SECOND

時刻値の秒数値

時刻値の「秒」の部分を表す数値を返します。

構文：	SECOND(時刻)

パラメータ：	時刻 … 時刻値または時刻式

戻り値：	数値（0～59）

例：	SECOND('12:15:48'TIME)は、48を返します。

Ａが'12:15:48'の場合には、SECOND(A)+2は50を返します。

関連項目：	MINUTE、HOUR


SETLANG

有効にする言語の設定

現在使用している言語を文字列パラメータとして設定します。指定された文字列は、［言語］テーブルのどの設定を使用するかを決定するために使用されます。

構文：	SETLANG(文字列)

パラメータ：	文字列 … ［言語］テーブルの［言語］欄の値

戻り値：	言語が設定された場合、論理値「真」を返します。

例：	SETLANG('French')


SIN

正弦（サイン）三角関数

ラジアンで表された角度の、正弦（サイン）値を返します。

構文：	SIN（ラジアン）

パラメータ：	ラジアン … ラジアンで表された角度

戻り値：	正弦（サイン）値

例：	SIN(0.7854)は、0.07011を返します。

関連項目：	ASIN、ACOS、ATAN、COS、TAN


SOUNDX

同音異義語の比較

発音が同じでスペルが異なる２つの文字列を、同じものとして確認できるようにするための文字列（SOUNDX値）を返します。

構文：	SOUNDX(文字列)

パラメータ：	文字列 … 文字列

戻り値：	４文字の文字列

例：	IF(SOUNDX('John Doe')=SOUNDX('Jhn De'),'真','偽')は、「真」を返します。

注意事項：

この関数は、４文字の文字値を返します。'John Doe'、'Jhn De'、'JOhN Deo'は、それぞれ'J530'を返します。'Steve'は'S310'を返しますが、'Svte'は'S130'を返します。文字列のSOUNDX値を決定して、比較または条件文で使用できます。これらの値は、ファイルに格納したり、直接アクセスするために索引を付けたりできます。


STAT

ステータスのチェック

タスクのモード（照会、修正など）をテストします。

構文：	STAT(タスク番号,モード)

パラメータ：	タスク番号 … タスクのタスクツリーでの階層位置を表す番号。０は現在のタスクを、１はそのすぐ上位の親タスクを表します。

モード … テストする１つまたは複数のモードを表す文字列。タスクのモードについての一覧表は、「7.5 タスク特性ダイアログ」を参照してください。

戻り値：	論理値（真または偽）

例：	現在のタスクが登録または修正モードである場合に、STAT(0,'CM'MODE)は「真」を返します。

関連項目：	リテラル

注意事項：

Ｄ（削除）ステータスは、レコード後処理だけでチェックできます。上記のように'CM'のあとにMODEを続けると、MODEリテラルを表します。


STR

数値の文字列への変換

数値を書式に従って文字列に変換します。

構文：	STR(数値,書式)

パラメータ：	数値 … 文字列に変換する数値

書式 … 変換結果の文字列のフォーマット

戻り値：	文字列

例：	STR(45.12,'##.#')は、'45.1'を返します。

関連項目：	VAL

注意事項：

書式が使用されているため、この関数では四捨五入が行われることもあります。STR(39.999,'##.##')は、'40.00'を返します。書式についての詳細は、「3.4　書式」を参照してください。


SYS

システム名

［アプリケーション］テーブルの［名前］欄の表示に従って、アプリケーション名を返します。

構文：	SYS()

パラメータ：	なし

戻り値：	文字列

例：	SYS()は、アプリケーション名を返します。

関連項目：	PREF


TAN

正接（タンジェント）三角関数

ラジアンで表された角度の、正接（タンジェント）値を返します。

構文：	TAN(ラジアン)

パラメータ：	ラジアン … ラジアンで表された角度

戻り値：	数値

例：	TAN(0.7853981634)は、１を返します。

関連項目：	ASIN、ACOS、ATAN、SIN、COS


TDEPTH

タスクの深さ

構文：	TDEPTH()

パラメータ：	なし

戻り値：	数値（０～24）。現在のタスクのタスク処理階層内での深さ。

例：	TDEPTH()は、ルートタスクから呼び出された場合に１を返します。

関連項目：	LEVEL


TERM

［動作環境］テーブルの端末番号の照会

［動作環境］テーブルに指定されている端末番号を返します。

構文：	TERM()

パラメータ：	なし

戻り値：	数値

例：	TERM()は、端末番号を返します。

関連項目：	INIGET、INIPUT、USER

注意事項：

TERMは、マルチユーザシステムで一意の値を提供するために使用できます。必ず各ユーザに別々の“MAGIC.INI”の“Terminal”の値を割り当ててください。これは、別々の“MAGIC.INI”ファイルを使用するか、コマンド行上書き機能を使用して実行できます。


TEXT

サーバがバックグランドモードかどうかをテスト

dbMAGICのクライアント／サーバ環境がインストールされている場合、サーバがバックグランドモードかどうかをテストします。アプリケーションが、ユーザインタフェースのない、バックグランドモードで実行されている場合、論理値「真」を返します。それ以外の場合、論理値「偽」を返します。

構文：	TEXT()

パラメータ：	なし

戻り値：	サーバがバックグランドモードの場合、論理値「真」を返します。それ以外の場合、論理値「偽」を返します。

例：	TEXT()


TIME

システム時刻

DOSのシステム時刻を返します。

構文：	TIME()

パラメータ：	なし

戻り値：	現在の時刻値

例：	TIME()は、17:08:42を返します。

TIME()+5は、システム時刻に５秒加算した、17:08:47を返します。

関連項目：	DATE、MDATE


TRIM

空白の削除

文字列の左右の空白を削除します。

構文：	TRIM(文字列)

パラメータ：	文字列 … 文字列

戻り値：	文字列

例：	TRIM(' abc  ')は、'abc'を返します。

関連項目：	LTRIM、RTRIM


TSTR

時刻の文字列への変換

時刻を、書式に従って文字列に変換します。

構文：	TSTR(時刻,書式)

パラメータ：	時刻 … 変換する時刻

書式 … 変換結果の文字列のフォーマット。書式についての詳細は、「3.4 書式」を参照してください。

戻り値：	文字列

例：	TSTR('14:30'TIME,'HH:MM PM')は、'2:30 PM'を返します。

関連項目：	TVAL、DSTR、DVAL

注意事項：

書式を省略すると、「HH:MM:SS」が使用されます。


TVAL

文字列の時刻への変換

文字列として格納されている時刻値を、書式に従って数値に変換します。

構文：	TVAL(文字列,書式)

パラメータ：	文字列 … 時刻値として解釈できる文字列（例：'02:30:00 PM'）

書式 … 時刻を格納する文字列のフォーマット。このパラメータは、dbMAGICが文字列を読み取って、これを解釈するのに役立ちます。書式についての詳細は、「3.4 書式」を参照してください。

戻り値：	時刻値

例：	TVAL('02:30:00 PM','HH:MM:SS PM')は、14:30:00を返します。

関連項目：	TSTR、DVAL、DSTR

注意事項：

書式を省略すると、「HH:MM:SS」が使用されます。


UDF

ユーザ定義関数

Ｃ言語で書かれたユーザ関数は、dbMAGIC式内の関数として呼び出すことができます。

構文：	UDF('モジュール名.関数名'[,パラメータ])

パラメータ：	モジュール名 … ユーザ定義関数を含む外部モジュールまたはプログラム

関数名 … 関数名

パラメータ … ユーザ定義関数に必要な30個までのパラメータ。コンマで区切られます。

注意事項：

ユーザ定義関数は、ユーザプロシージャ（ユーザPRC）と似た機能を使用します。

リモートユーザPRCまたはUDF

dbMAGICクライアント／サーバモデルを使用している場合は、ホストマシンでユーザプロシージャ（ユーザPRC）またはユーザ定義関数（UDF）を起動できます。リモートユーザPRCまたはUDFを起動するには、モジュール名の一部にサーバ名が含まれている必要があります。

例：	（SERVER）myproc.add


UPPER

小文字から大文字への変換

小文字を大文字に変換します。（全角英文字も含む）

構文：	UPPER(文字列)

パラメータ：	文字列 … 変換する文字列

戻り値：	文字列 … 大文字に変換された文字列

例：	UPPER('abcd')は、('ABCD')を返します。

関連項目：	LOWER


USER

ユーザ名の照会

［ユーザID］テーブルに指定されているユーザのデータを返します。

構文：	USER(番号)

パラメータ：	番号 … ０、１、２

USER(0)は、ユーザIDを返します。

USER(1)は、ユーザ名を返します。

USER(2)は、ユーザ特性の情報項目を返します。

戻り値：	文字列

例：	USER(1)は、現在のユーザのユーザ名を返します。

関連項目：	INIGET、INIPUT

注意事項：

バージョン４では、USER関数にパラメータがなく、ユーザIDが返されました。


USERADD

［ユーザID］テーブルにユーザを追加します。

構文：	USERADD(ユーザID,名前,パスワード,情報)

パラメータ：	ユーザID … 管理ファイルにユーザIDを挿入

名前 … 新規のユーザ名

パスワード … ユーザのパスワード

情報 … ユーザの情報項目

戻り値：	論理値の真または偽は、演算の成功または失敗を表します。

例：	USERADD('John','John Doe','xyz','no info')は、管理ファイルにユーザID'John'、名前'John Doe'、パスワード'xyz'、ユーザ情報項目に'no  info'を挿入します。

注意事項：

SUPERVISORユーザだけが、正常に使用できます。


VAL

文字列の数値への変換

書式に従って、文字列を数値に変換します。指定桁以下の桁は四捨五入します。

構文：	VAL(文字列,書式)

パラメータ：	文字列 … 数値に変換する文字列

書式 … 数値の書式。書式についての詳細は、「3.4 書式」を参照してください。

戻り値：	数値

例：	VAL('45.12','##.#')は、45.1を返します。

関連項目：	STR

注意事項：

標準数の変換では、書式を省略できます。


VARATTR

項目の型

項目の型を示します。

構文：	VARATTR(シンボル名)

パラメータ：	シンボル名 … ［ビュー項目一覧］内の項目のシンボル名

戻り値：	項目の型を示す文字列（文字型＝‘Ａ’、数値型＝‘Ｎ’、論理型＝‘Ｌ’、日付型＝‘Ｄ’、時刻型＝‘Ｔ’、メモ型＝‘Ｍ’、イメージ型＝‘Ｉ’

例：	シンボル名‘ＢＣ’で示される項目が文字型の場合、VARATTR(挿BC筑VAR)は、挿A筑を返します。

参考：	CTLイベントを使用して、汎用のカットアンドペーストを実現する場合は、VARATTRが役立ちます。

関連項目：	VARCURR、VARINP、VAEMOD、VARNAME、VARPREV


VARCURR

項目の値の照会

［ビュー項目一覧］内のシンボル名で示す項目の現在の値を返します。

構文：	VARCURR(シンボル名)

パラメータ：	シンボル名 … ［ビュー項目一覧］内の項目のシンボル名

戻り値：	指定された項目の現在の値（項目の型で）

例：	VARCURR('BE'VAR)は、シンボル名'BE'で示される項目の現在の値を返します。

VARCURR('CR'VAR + 7)は、シンボル名'CR'で示される項目から、７つ後方の項目（'CY'）の現在の値を返します。

関連項目：	リテラル、VARPREV、VARMOD

注意事項：

シンボル名の指定では、VARリテラルを使用して、dbMAGICがこのパラメータの順序を自動的に変更できるようにします。

この関数は、基本となる項目に対して加算または減算を行うことで、配列の実現にも使用できます。


VARINP

最後の入力項目

入力が行われた最後の項目を識別します。

構文：	VARINP(タスク番号)

パラメータ：	タスク番号 … タスクツリーでのタスクの階層位置を表す番号。０は現在のタスクを、１はそのすぐ上位の親タスクを表します。

戻り値：	指定したタスク内でカーソルが止まった項目の番号。項目番号は、親タスクの最初の項目を「Ａ」として、新しい項目が選択されるたびに順番に番号が付けられます。子タスクの項目は、その上位タスクの順序を継続します。

例：	タスク１が、２つの［ビュー］処理コマンドを含み、その子タスクも２つの［ビュー］処理コマンドを含みます。以下に、このプログラムの項目リストを示します。

A VAR 1

B VAR 2

-------

C VAR 3

D VAR 4

最初のタスクへの最後の入力は、項目B VAR 2で行われました。子タスクレベルで評価される関数VARINP(1)は、項目Ｂを示す値2を返します。

関連項目：	VARATTR、VARCURR、VARMOD、VARNAME、VARPREV

注意事項：

同レベル（兄弟）のタスクでの項目の番号付けは、共通の親の最後の項目から開始されます。


VARMOD

項目修正のチェック

項目の内容が、データビューレコードの取り出し後に変更されているかどうかをチェックします。

構文：	VARMOD(シンボル名)

パラメータ：	シンボル名 … 項目の値

戻り値：	変更されている場合には「真」

例：	VARMOD('A'VAR)は、ビュー項目のシンボル名'A'で示される項目の内容が、データビューレコードの取り出し後に変更されている場合に「真」を返します。


VARNAME

ビュー項目のシンボル名に対応する項目のファイル名と項目名

ビュー項目のシンボル名に対応する項目のファイル名と項目名を示します。

構文：	VARNAME(シンボル名)

パラメータ：	シンボル名 … 項目のシンボル名

戻り値：	項目のもとであるファイル名と項目名を「.」で連結させたもの。項目が変数項目の場合は、ファイル名で「変数」であることを示します。

例：	シンボル名'A'で示される項目が［顧客］ファイルからの［顧客番号］の場合に、関数VARNAME('A'VAR)は、'顧客.顧客番号'を返します。

関連項目：	VARATTR、VARCURR、VARINP、VARMOD、VARPREV

注意事項：

シンボル名の指定では、VARリテラルを使用して、dbMAGICが自動的にこのパラメータの順番を変更できるようにします。


VARPREV

項目の検索 － オリジナル値

［ビュー項目一覧］内のシンボル名をもとにして、項目のオリジナル値を検索します。

構文：	VARPREV(シンボル名)

パラメータ：	シンボル名 … ［項目一覧］内の項目のシンボル名

戻り値：	指定された項目のオリジナル値（項目の型）

例：	VARPREV('BE'VAR)は、シンボル名'BE'で示される項目のオリジナル値を返します。

VARPREV('CR'VAR + 7)は、シンボル名'CR'で示される項目から７つ後方の項目（'CY'）のオリジナル値を返します。

VARPREV('W'VAR) <> Wは、項目が変更されているかどうかをチェックします。

VARMOD('W'VAR)と似ています。

関連項目：	リテラル、VARCURR、VARMOD

注意事項：

シンボル名の指定では、VARリテラルを使用して、dbMAGICがこのパラメータの順序を自動的に変更できるようにします。

この関数は、データビューレコードが取り出された場合に、項目の値の検索に使用します。

VARPREVは、レコードの初期化段階では使用しないでください。これは、dbMAGICがこの関数に必要な情報を持たないためです。したがって、この関数は代入式でも使用しないでください。エンジン処理の初期段階では、どの項目のオリジナル値も現在の値と同じです。


VARSET

特定の値に指定項目を設定

構文：	VARSET（シンボル名,値）

パラメータ：	シンボル名 … 項目の索引を表すシンボル名。VARリテラルとともに使用します。

値 … 項目の設定先の値

戻り値：	'TRUE'LOG

注意事項：

VARSET関数は論理型であり、常に'TRUE'LOGの値を返します。項目更新コマンドは常に「代入」で、「加算」は指定できません。

再計算は、VARSET関数の終了後に行われます。

VARCURRとVARSET関数が使用できるため、配列を通常のデータベース構成としてデータベースアプリケーションのカテゴリを実現すると便利です。たとえば、100項目ずつ入った1,000個のレコードとして保存される、1,000行×100列のサイズの整数配列を考えます。アプリケーションでは、行と列で識別される配列のセルに入った現在の値に、値aを加える必要があります。次に、バッチ子タスクを定義します。その最少／最大範囲は、行で識別されるレコードへのデータビューを制限し、レコード後処理では列で識別される項目を「更新」します。VARCURRとVARSET関数がない場合は、200以上の項目更新コマンドなどの処理が必要になります。以下の式を使用して、この処理を１つのアクションコマンドに置き換えることができます。

VARSET('A'VAR + 列１, VARCURR('A'VAR + 列１)+値a)

'A'VARは、レコードでの最初の項目に対するdbMAGICトークン識別子で、列の値は値「１」から始まると仮定されます。


VIEWMOD

データビューレコードの修正のチェック

現在のデータビューレコードが、取り出し後に変更されているかどうかをチェックします。

構文：	VIEWMOD(タスク番号)

パラメータ：	タスク番号 … タスクツリーでのタスクの階層位置を表す番号。０は現在のタスクを、１はそのすぐ上位の親を表します。

戻り値：	変更されている場合は「真」

例：	［エラー］コマンドに対する条件として導入されている場合、式VIEWMOD(0)は、現在のタスクの現在のデータビューレコードが取り出し後に変更されていれば［エラー］メッセージを表示します。

関連項目：	VARMOD


WINBOX

ウィンドウの位置とサイズを返す

ウィンドウのX座標、Y座標、幅、高さのいずれかの値を返します。

構文：	WINBOX(タスクレベル,文字列)

パラメータ：	タスクレベル … タスクの実行レベルを表す数値。0＝現在のタスク、1＝親タスク、など。

文字列 … 取得する情報を表す文字列。「Y＝Y座標」「H＝高さ」「X＝X座標」「W＝幅」。

戻り値：	取得を要求した情報の数値

例：	WINBOX(0,'W')


WINHWND

ウィンドウのハンドルを返す

dbMAGICウィンドウのWindowsにおけるウィンドウハンドル（HWND）の値を返します。この値は、HWND値を必要とするユーザ定義関数で使用することができます。

構文：	WINHWND(タスクレベル)

パラメータ：	タスクレベル … タスクの実行レベルを表す数値。0＝現在のタスク、1＝親タスク、など。

戻り値：	Windowsのウィンドウハンドル（HWND）の値

例：	WINHWND(1)


YEAR

日付値の西暦年値

日付の「年」の部分を４桁（西暦年）で返します。

構文：	YEAR(日付)

パラメータ：	日付 … 日付

戻り値：	数値

例：	システム日付が「97/10/18」の場合、YEAR(DATE())は1997を返します。


ZEN

全角文字への変換

１バイトの半角文字（英数字またはカタカナ）を全角文字に変換します。ただし、半角スペースは、全角スペースに変換しません。

構文：	ZEN(文字列)

パラメータ：	文字列 … 文字列

戻り値：	文字列

例：	・ZEN('16KB')='１６ＫＢ'

・ZEN('ｶﾀｶﾅ')='カタカナ'


ZENS

全角文字への変換

機能はZEN関数と同じですが、半角スペースの処理を細かく設定できます。

構文：	ZENS(文字列,{0|1|2})

0=半角スペースを全角スペースに変換しません（ZEN関数と同じ）。

1=半角スペースを全角スペースに変換します。

2=半角スペースを2個の半角スペースに変換します。

パラメータ：	文字列 … 文字列

戻り値：	文字列

例：	・ZENS('ﾄｳｷｮｳﾄ ﾄｼﾏｸ',0)='トウキョウト_トシマク'

・ZENS('ﾄｳｷｮｳﾄ ﾄｼﾏｸ',1)='トウキョウト＿トシマク'

・ZENS('ﾄｳｷｮｳﾄ ﾄｼﾏｸ',2)='トウキョウト_ _トシマク'


フォームエディタ

フォームに関する説明は、以下の各項目を参照してください。

フォームテーブル

新しいフォームの作成

既存フォームの編集

フォームの配置とサイズ変更

概念

コントロールパレット

コマンドパレット

フォーム特性

コントロール特性

コントロールの編集方法

コントロールの親子リンク

テーブルコントロールの使用方法

コンテキストメニュー

キーボードコマンド

レポートレイアウト


入出力ファイルテーブル

［入出力ファイル］テーブルには、現在のタスクの実行時に読み込み（データ入力）または書き出し（データ出力）に使用するテキストファイルを定義します。

各入出力ファイルは、［処理］テーブルの［データ出力］コマンドまたは［データ入力］コマンドで使用する前に定義しておいてください。

たとえば、レポート印刷用の出力ファイルなどもこのテーブルに定義しておいてください。

子タスクは、（ネストレベルに関係なく）親タスクの［入出力ファイル］テーブルで定義された入出力ファイルにアクセスできます。子タスクの［入出力ファイル］テーブルには、同系列の上位タスクによってオープンされたすべての入出力ファイルが表示されます。

入出力ファイルの定義

ここでは、入出力ファイルの定義に使用できる設定値の組み合せを、［メディア］欄の設定に従って分類して説明します。

以下の表に、［入出力ファイル］テーブルの各欄の設定の組み合わせを示します。

メディア設定	プリンタ	アクセス	フォーマット	式	行	桁
Ｐ＝テキスト形式プリント	ラベル	書出または追加	ページまたはライン	オプション	オプション	適用なし
Ｃ＝コンソール	適用なし	書出または追加	ページまたはライン	オプション	適用なし	オプション
Ｓ＝標準ファイル	適用なし	読込、書出、追加、直接	ライン、なし	必須	適用なし	適用なし
Ｉ＝内部ファイル	適用なし	読込、書出、追加、直接	ライン、なし	必須	適用なし	適用なし
Ｕ＝ドライバ	適用なし	直接	なし	必須	適用なし	適用なし

・　［適用なし］とは、該当するものがないことを意味します。

・　［オプション］とは、必要に応じて設定することを意味します。

メディア設定	説明
Ｐ＝プリンタ	［式］を指定して、レポートをディスクファイルに出力します。
Ｃ＝コンソール	［桁］数を指定して、レポートの幅を画面に合わせます。
Ｓ＝標準ファイル	［式］欄に、評価値が物理ファイル名を与える式を指定します。
Ｉ＝内部ファイル	［式］欄に、評価値が物理ファイル名を与える式を指定します。いろいろなコンピュータのプラットホームとOS間でデータをやりとりするときには、［内部ファイル］を指定します。
Ｕ＝ドライバ	［式］欄には、ユーザドライバ名を返す式を指定します。
入出力ファイルテーブルの各欄についての説明

名前

メディア

プリンタ（プリンタ番号）

アクセス

フォーマット

式

ダイア（プリンタダイアログ）

行

桁

入出力ファイル特性ダイアログ


名前

ファイルの名前を入力します。

注意：［＃］欄には、dbMAGICが自動生成する連続番号が表示されます。カーソルは、この欄には止まりません。


メディア

入出力ファイルに実際に割り当てられるデバイス（出力ファイルでは宛先、入力ファイルではその発信元）を定義します。以下では、［メディア］欄に設定できる値について説明します。

■	Ｇ＝ＧＵＩ形式プリント … 入出力ファイルの定義に基づく入出力は、グラフィックプリンタまたはディスクファイルに送られるグラフィカル情報を作成します。

■	Ｐ＝テキスト形式プリント … 出力ファイルが印刷出力用にフォーマットされ、dbMAGICの論理プリンタの１つに送られます。［式］欄に、実行時に有効なファイル名として評価される式を定義して、［プリンタ］からディスク上のファイルにリダイレクトできます。

■	Ｃ＝コンソール … 出力ファイルが画面表示用にフォーマットされ、コンソールにリダイレクトされます。表示領域として、自動的に定義される特別なウィンドウが使用されます。このウィンドウは長さ21行で、幅はこのテーブルの［桁］欄に定義された桁数となります。実行時に有効なファイル名として評価される式を［式］欄に定義して、［コンソール］からディスク上のファイルにリダイレクトできます。

■	Ｓ＝標準ファイル … ［式］欄で参照される式で、ディレクトリパス名とファイル名が指定される標準的な入力または出力ディスクファイル（［アクセス］欄の設定で決まる）を定義します。「Ｓ＝標準ファイル」では、データはコンピュータやOSの規約に従って表現されます。つまり、独自の文字列（たとえば、パソコンのDOSではASCII）と独自の数値データ表現（たとえば、DOSでは整数が上位から下位バイトの順になります）です。標準ファイルは、同じプラットホームのコンピュータ間で使用したり、特定のプラットホームでローカルに使用したりするときに使用します。

■	Ｉ＝内部ファイル … ［式］欄で参照される式でディレクトリパス名とファイル名が指定される入力または出力ディスクファイル（［アクセス］欄の設定で決まります）を定義します。［内部ファイル］として定義されたファイルでは、データはdbMAGICの内部規約に従って表現されます。この規約は、dbMAGICが実行されるコンピュータのプラットホームとは独立したものです。内部ファイルは、異なるプラットホームのコンピュータ間でファイルを使用するときに使用します。内部ファイルを使用すれば、あるプラットホームのdbMAGICから出力されたデータが、別のプラットホームで動作しているdbMAGICでも同様に使用できます。

■	Ｕ＝ドライバ … dbMAGICと外部処理との間の特殊な種類のメモリ内通信を定義します。これはDOSでは割り込みルーチンを、その他のOSではパイプを使用して定義します。［メディア］欄を「Ｕ＝ドライバ」として定義すると、それ以外には［式］欄しか設定できません。また、［式］欄にはドライバのOS名として評価される式を設定してください。たとえば、DOSでは、式は'INTxx'として評価されなければなりません。このxxは、有効な２字の16進数の割り込みベクタ番号です。

［プリンタ］と［コンソール］の場合には、式を指定する必要はありません。


プリンタ（プリンタ番号）

この欄は、［メディア］欄を「Ｇ＝ＧＵＩ形式プリント」または「Ｐ＝テキスト形式プリント」に指定したときにだけ関係します。この欄は、［プリンタ］テーブルで定義されている論理プリンタの中から選択します（「16.1　設定メニュー」の「設定／プリンタ」を参照）。

［プリンタ］欄の値は、この欄で指定されたプリンタと［プリンタ］テーブルで定義されたプリンタの１つと同じ名前です。デフォルトは、［プリンタ］テーブルの最初のプリンタです。別のプリンタを選択するには、［プリンタ一覧］にズームしてプリンタを選択するか、プリンタ名を入力します。

さまざまなエラー状況を示す一般的なエラーメッセージが実行時に表示されます。たとえば、「プリンタが接続されていない」、「プリンタの電源が入っていない」、「プリンタが選択されていない」、「プリンタの用紙切れ」などの場合です。プリンタのエラーメッセージのあとに、「中断しますか？」ダイアログが表示されます。「Yes」を選択すると、出力処理は行わずにデータの最後までプログラムの実行を続けます。同時に、dbMAGICはファイルのEOF（ファイルの最後）ステータスを立てます。EOF関数の戻り値にタスクの終了（［タスク終了］）を条件付けると、EOFステータスを使用してタスクの実行を終了できます。「中断しますか？」ダイアログで「No」を選択すると、ふたたび印刷を試みます。エラーが解決されていない場合は、もう一度「中断しますか？」ダイアログが表示されます。

プリンタのエラーメッセージのあとに、［継続オプション］ダイアログが表示されます。「取消」を選択すると、dbMAGICは、アボートできる（［アボート = Yes］）最初の処理レベルに達するまでプログラムを続けます。アボートができない場合は（全レベルで［アボート = No］）、プリンタの状態が回復するまでプログラムはループに入ります。詳細については、［オプションメニューダイアログ］を参照してください。


アクセス

入出力ファイルをオープンするモードを定義します。

以下では、この欄に設定できる値について説明します。

■	Ｒ＝読込 … 読込モードでファイルをオープンします。このモードに設定されるファイルは、［データ入力］コマンドでは使用できますが、［データ出力］コマンドでは使用できません。

■	Ｗ＝書出 … 書出モードでファイルをオープンします。このモードに設定されたファイルは、［データ出力］コマンドに対しては使用できますが、［データ入力］コマンドに対しては使用できません。このモードのファイルにデータ出力すると、上書きされて以前のデータは消去されます。

■	Ａ＝追加 … 書出モードでファイルをオープンします。基本的には、［Ｗ＝書出］とほぼ同じです。ただし、このモードのファイルにデータを出力すると、以前のデータは消去されずに新しいデータが追加されます。

■	Ｄ＝直接 … dbMAGICの将来のバージョンでサポートします。現在は、［フォーマットなし］の標準ファイルとして動作します。


フォーマット

自動的に出力ファイルに書き込まれる制御文字、つまり、入力ファイルに入っていなければならない制御文字を定義します。

以下では、この欄に設定できる値について説明します。

■　Ｐ＝ページ … 「改ページ」と「改行」を示す制御文字が出力ファイルに書き込まれる、つまり、入力ファイルに入っていなければなりません。「改ページ」の制御文字はページの末尾に表示され、「改行」制御文字は行の末部に表示されます。

■　Ｌ＝ライン … ［改行］制御文字だけが出力ファイルに書き込まれる、つまり、入力ファイルに入っていることが必要です。［改行］制御文字はすべての行の末部に表示されます。

■　Ｎ＝なし … ファイルに制御文字が使用されません。


式

入出力ファイルの発信元または宛先を指定するための式の番号を、［式］テーブルに設定します。

式を使用すれば、有効なファイル名を自由に定義できます。式には、サーバ／パスを入れたり論理名を使用したりできます。dbMAGICは、設定内容に従って読み込み／書き出しを行います。式は、タスクの初期化段階で評価されるため、処理の途中で動的には変更できません。


ダイア（プリンタダイアログ）

「Yes」、「No」、または［式］を指定します。この欄は、メディアをグラフィックプリンタに指定したときにだけ関係します。「Yes」を指定すると、タスクが入出力ファイルをオープンするときに、Windowsプリントダイアログが表示されます。エンドユーザは、このダイアログでプリンタパラメータを変更できます。「No」を指定すると、Windowsプリントダイアログは表示されません。プリンタパラメータは、エンドユーザによって変更されることなく直接転送されます。式を指定すると、Yes/Noの設定を動的に選択できます。


行

この欄は、［フォーマット］欄で「Ｐ＝ページ」が選択されている［プリンタ］メディアと［コンソール］メディアにだけ関係します。

この欄には、出力ファイルの１ページの行数を定義します。デフォルト値は、使用されるプリンタによって決まります（「16.1 設定メニュー」の「設定／プリンタテーブル」を参照）。通常のデフォルト値は60行で、ヘッダ領域３行とフッタ領域３行を含めて60行の出力ページになります。

［行］欄の値は、必要に応じて変更できます。［オプションメニュー］ダイアログで［入出力ファイル］欄を「Yes」に設定しておけば、エンドユーザは、実行時に［入出力ファイル］テーブルを使用して入出力先をリダイレクトできます。


桁

この欄は、［コンソール］をメディアとして指定したときにだけ関係します。

この欄には、出力ファイルの桁数を設定します。ファイルの内容を画面内に収まるように表示するためです。たとえば、この項目に80と入力すると、横にスクロールしないでデータを画面に表示できます。デフォルト値は132ですが、この場合は、最初の画面に表示されないレポートの部分を見るために横にスクロールしなければなりません。


入出力ファイル

［入出力ファイル］テーブルには、現在のタスクの実行時に読み込み（データ入力）または書き出し（データ出力）に使用するテキストファイルを定義します。

各入出力ファイルは、［処理］テーブルの［データ出力］コマンドまたは［データ入力］コマンドで使用する前に定義しておいてください。

たとえば、レポート印刷用の出力ファイルなどもこのテーブルに定義しておいてください。

子タスクは、（ネストレベルに関係なく）親タスクの［入出力ファイル］テーブルで定義された入出力ファイルにアクセスできます。子タスクの［入出力ファイル］テーブルには、同系列の上位タスクによってオープンされたすべての入出力ファイルが表示されます。

入出力ファイルテーブルの各欄についての説明は、以下の項目を参照してください。

名前

メディア

プリンタ（プリンタ番号）

パス

行

各欄の有効な組み合せとその使用方法についての詳細は、「7.14 入出力ファイルの定義］を参照してください。

関連項目

入出力ファイル特性ダイアログ


名前

ファイルの名前を入力します。

注意：［＃］欄には、dbMAGICが自動生成する連続番号が表示されます。カーソルは、この欄には止まりません。


メディア

入出力ファイルに実際に割り当てられるデバイス（出力ファイルでは宛先、入力ファイルではその発信元）を定義します。以下では、［メディア］欄に設定できる値について説明します。

■	Ｇ＝ＧＵＩ形式プリント … 入出力ファイルの定義に基づく入出力は、グラフィックプリンタまたはディスクファイルに送られるグラフィカル情報を作成します。

■	Ｐ＝テキスト形式プリント … 出力ファイルが印刷出力用にフォーマットされ、dbMAGICの論理プリンタの１つに送られます。［式］欄に、実行時に有効なファイル名として評価される式を定義して、［プリンタ］からディスク上のファイルにリダイレクトできます。

■	Ｃ＝コンソール … 出力ファイルが画面表示用にフォーマットされ、コンソールにリダイレクトされます。表示領域として、自動的に定義される特別なウィンドウが使用されます。このウィンドウは長さ21行で、幅はこのテーブルの［桁］欄に定義された桁数となります。実行時に有効なファイル名として評価される式を［式］欄に定義して、［コンソール］からディスク上のファイルにリダイレクトできます。

■	Ｓ＝標準ファイル … ［式］欄で参照される式で、ディレクトリパス名とファイル名が指定される標準的な入力または出力ディスクファイル（［アクセス］欄の設定で決まる）を定義します。「Ｓ＝標準ファイル」では、データはコンピュータやOSの規約に従って表現されます。つまり、独自の文字列（たとえば、パソコンのDOSではASCII）と独自の数値データ表現（たとえば、DOSでは整数が上位から下位バイトの順になります）です。標準ファイルは、同じプラットホームのコンピュータ間で使用したり、特定のプラットホームでローカルに使用したりするときに使用します。

■	Ｉ＝内部ファイル … ［式］欄で参照される式でディレクトリパス名とファイル名が指定される入力または出力ディスクファイル（［アクセス］欄の設定で決まります）を定義します。［内部ファイル］として定義されたファイルでは、データはdbMAGICの内部規約に従って表現されます。この規約は、dbMAGICが実行されるコンピュータのプラットホームとは独立したものです。内部ファイルは、異なるプラットホームのコンピュータ間でファイルを使用するときに使用します。内部ファイルを使用すれば、あるプラットホームのdbMAGICから出力されたデータが、別のプラットホームで動作しているdbMAGICでも同様に使用できます。

■	Ｕ＝ドライバ … dbMAGICと外部処理との間の特殊な種類のメモリ内通信を定義します。これはDOSでは割り込みルーチンを、その他のOSではパイプを使用して定義します。［メディア］欄を「Ｕ＝ドライバ」として定義すると、それ以外には［式］欄しか設定できません。また、［式］欄にはドライバのOS名として評価される式を設定してください。たとえば、DOSでは、式は'INTXX'として評価されなければなりません。このXXは、有効な２字の16進数の割り込みベクタ番号です。

［プリンタ］および［コンソール］の場合には、式を指定する必要はありません。


プリンタ（プリンタ番号）

この欄は、［メディア］欄を「Ｇ＝ＧＵＩ形式プリント」または「Ｐ＝テキスト形式プリント」に指定したときにだけ関係します。この欄は、［プリンタ］テーブルで定義されている論理プリンタの中から選択します（「16.1　設定メニュー」の「設定／プリンタ」を参照）。

［プリンタ］欄の値は、この欄で指定されたプリンタと［プリンタ］テーブルで定義されたプリンタの１つと同じ名前です。デフォルトは、［プリンタ］テーブルの最初のプリンタです。別のプリンタを選択するには、［プリンタ一覧］にズームしてプリンタを選択するか、プリンタ名を入力します。

さまざまなエラー状況を示す一般的なエラーメッセージが実行時に表示されます。たとえば、「プリンタが接続されていない」、「プリンタの電源が入っていない」、「プリンタが選択されていない」、「プリンタの用紙切れ」などの場合です。プリンタのエラーメッセージのあとに、「中断しますか？」ダイアログが表示されます。「Yes」を選択すると、出力処理は行わずにデータの最後までプログラムの実行を続けます。同時に、dbMAGICはファイルのEOF（ファイルの最後）ステータスを立てます。EOF関数の戻り値にタスクの終了（［タスク終了］）を条件付けると、EOFステータスを使用してタスクの実行を終了できます。「中断しますか？」ダイアログで「No」を選択すると、ふたたび印刷を試みます。エラーが解決されていない場合は、もう一度「中断しますか？」ダイアログが表示されます。

プリンタのエラーメッセージのあとに、［継続オプション］ダイアログが表示されます。「取消」を選択すると、dbMAGICは、アボートできる（［アボート = Yes］）最初の処理レベルに達するまでプログラムを続けます。アボートができない場合は（全レベルで［アボート = No］）、プリンタの状態が回復するまでプログラムはループに入ります。詳細については、［オプションメニューダイアログ］を参照してください。


パス

この欄には、オペレーティングシステムで有効なファイル名を指定します。


行

この欄は、［フォーマット］欄で「Ｐ＝ページ」が選択されている［プリンタ］メディアと［コンソール］メディアにだけ関係します。

この欄には、出力ファイルの１ページの行数を定義します。デフォルト値は、使用されるプリンタによって決まります（「16.1 設定メニュー」の「設定／プリンタテーブル」を参照）。通常のデフォルト値は60行で、ヘッダ領域３行とフッタ領域３行を含めて60行の出力ページになります。

［行］欄の値は、必要に応じて変更できます。［オプションメニュー］ダイアログで［入出力ファイル］欄を「Yes」に設定しておけば、エンドユーザは、実行時に［入出力ファイル］テーブルを使用して入出力先をリダイレクトできます。


上書登録

カーソル行に上書する形で行複写します。カーソルを目的の行に合わせて［上書登録］を実行すると、ダイアログボックスがオープンします。ここで複写元になる行番号を入力して［OK］ボタンを選択すると、行複写が完了します。

関連項目

移動

複写


移動登録

カーソル行の下に挿入する形で行移動します。カーソルを目的の行に合わせて［複写移動］を実行すると、ダイアログボックスがオープンします。ここで移動元になる行番号を入力して［OK］ボタンを選択すると、移動が完了します。


複写登録

カーソル行の下に挿入する形で行複写します。カーソルを目的の行に合わせて［複写登録］を実行すると、ダイアログボックスがオープンします。ここで複写元になる行番号を入力して［OK］ボタンを選択すると、行複写が完了します。


ソートテーブル

［ソート］テーブルは、以下のものから構成される複合ウィンドウです。

■	ウィンドウ左側の［キーセグメント］テーブル

■	ウィンドウ右側の［ビュー項目一覧］

キーセグメントテーブルでの入力

キーセグメントの優先順位は、テーブルの上から下に向かって低くなります。これは［ファイル辞書］テーブルで設定する通常の［キー］の場合と同じです。ただし、［ソートキー］がタスク実行時にだけ存在する一時的な［キー］であるという点が異なります。

テーブルの各欄についての説明

項目

名前

サイズ

順（方向）


項目

ソートキーを構成するキーセグメントとして使用される「実データ項目」または「変数項目」のシンボル名が表示されます。

シンボル名を直接入力するか、右側の［ビュー項目一覧］にズームして目的の項目を選択します。［ビュー項目一覧］からさらに［項目］テーブルにズームすると、詳しい情報が表示されます。

注意：［＃］（キーセグメント番号）欄には、dbMAGICが自動作成する連続番号が表示されます。カーソルは、この欄には止まりません。


名前

キーセグメントとして選択された項目の名前が表示されます。カーソルは、この欄には止まりません。


サイズ

キーセグメントとして選択された項目の型が文字型の場合にだけ、カーソルはこの欄に止まります。この欄では、キーセグメント項目のサイズを縮小できます。この項目の先頭から設定サイズ分のテキストだけが、キーセグメントの値として評価されます。この設定は、処理速度やメモリを節約するときに使用します。キーセグメントを短くするとキーのサイズが小さくなるため、ソート処理は高速になり、ソートファイルも小さくなります。


順（方向）

ソートの方向が表示されます。

「Ａ＝昇順」は、キーセグメントを昇順でソートします。

「Ｄ＝降順」は、キーセグメントを降順でソートします。

注意： dbMAGICで使用できる各データベースゲートウェイには、キーセグメント数やキーの最大サイズなどに、独自の制限がある場合があります。その場合、ソートファイルは、アプリケーションにデフォルト設定されているデータベース（［設定／動作環境］テーブルの［ソート／一時用データベース］で指定される）を使用して作成されます（「16.1 設定メニュー」の「設定／動作環境」を参照）。

データベースゲートウェイを使用して開発する場合は、そのデータベースでの制限に従って定義内容が検査され、それに対応するプロンプト（入力要求）が表示されます。


概念

どのアプリケーションにもユーザと対話するための方法があります。dbMAGICでは、フォームを使用してユーザと対話します。通常、フォームには、テキストボックス、チェックボックス、プッシュボタン、スライダなどのさまざまなコントロールがあります。これらのコントロールを使用すれば、テキストやグラフィックスなどの固定した情報を表示したり、データを入力したりできます。フォームの概念についての詳細は、以下の項目を参照してください。

寸法単位

フォームグリッド

フォント

フォーム特性とコントロール特性

コントロールのＺオーダ

カーソル制御


寸法単位

フォーム上のコントロールの大きさと位置は、「寸法単位」によって定義されます。「寸法単位」は、フォームの解像度も決定します。フォームは、「ダイアログ（文字）｣、「センチメートル｣、「インチ｣のいずれかの単位で定義します。｢ダイアログ｣は、フォームの現在の文字フォントのサイズです。「ダイアログ」の分割単位は、［フォーム特性］ダイアログの寸法単位の下に表示される垂直精度と水平精度によって決定されます。例えば、垂直精度が8のとき「ダイアログ」の垂直方向の分割単位は1/8となり、水平精度が4のときは、水平方向の分割単位は1/4になります。異なる解像度でフォームを使用してもフォーム内での比率が同じであるようにするには、｢ダイアログ｣を使用します。寸法単位は、［フォーム特性］ダイアログで設定します。


グリッド
フォームグリッド

フォームエディタの画面に表示される格子上の点を結んだものをグリッドと呼びます。フォーム上にコントロールを配置する場合、コントロールは、このグリッド上になければなりません。

グリッド上の点の間隔は、［フォーム特性］ダイアログの［グリッド間隔(X)］欄と［グリッド間隔(Y)］欄で指定します。パラメータの値が小さいと、点の間隔がX方向、Y方向ともに狭くなります。画像の高い解像度が必要な場合は、グリッドサイズを小さくします。パラメータの値を大きくすると、解像度が粗くなります。

フォーム上のコントロールをすべてまとめて選択して移動させると、その左上の角の位置に合ったグリッド上に配置されます。集合内の位置関係は変わりません。


フォント

［フォーム特性］ダイアログの［フォント］パラメータでフォームのフォントを設定します。［フォント］テーブルからフォントを選択するには、目的のフォントを強調表示させ［選択］ボタンを押すかダブルクリックします。

コントロールのフォントは、［コントロール特性］ダイアログで定義します。このダイアログを表示するには、コントロールを選択して、ズームまたはダブルクリックします。コントロールのフォントを指定しないと、フォームのフォントが使用されます。

［テキスト形式フォーム］では、標準明朝や標準ゴシックなどの固定長フォントを使用してください。詳細については、「9.5 テキスト形式フォーム」を参照してください。


フォーム特性とコントロール特性

フォームには、動作や外観を定義する特性があります。これらの特性は、［フォーム特性］ダイアログで定義します。詳細については、「フォーム特性ダイアログの使用方法」を参照してください。

［コントロール特性］ダイアログは、コントロールの動作や外観を定義します。フォームは、コントロールの特性を定義してから、動作できるようになります。コントロールの動作を決定付ける特性には、［有効］と［選択プログラム］などがあります。コントロールの外観を決定付ける特性には、［左辺位置］、［右辺位置］、［幅］、［高さ］、［フォント］、［色］などがあります。

コントロール特性を定義するには、シングルクリックか｛Tab｝でコントロールを選択してから、そのコントロール上で、ズームまたはダブルクリックして、［コントロール特性］をオープンします。


コントロールのＺオーダ

フォーム中のコントロールの「Ｚオーダ」は、コントロールを挿入したときの、コントロールの深さを表します。Ｚオーダは、コントロールを別のコントロールの上に重ねる場合に特に重要です。

コントロールは、Ｚオーダに従って以下の2つのグループに分類されます。

■	第１グループ

•	プッシュボタン

•	チェックボックス

•	ラジオボタン

•	スライダ

•	コンボボックス

•	リストボックス

•	OLE

■	第２グループ

•	イメージ

•	タブコントロール

•	スタティックコントロール

•	エディットコントロール

•	直線

•	グループ

•	テーブルコントロールのスクロールバー以外

２つのグループ内では、Ｚオーダを入れ替えることはできますが、グループ間で入れ替えることはできません。第１グループのコントロールは、常に第２グループのコントロールの前になります。したがって、第１グループのコントロールの前に第２グループのコントロールを持ってくることはできません。コンテキストメニュー内の［並べ換え］や、［整列／サイズ］パレットを使用すると、フォーム上のコントロールのＺオーダを表示したり変更したりできます。

■	その他のグループ

・	テーブルコントロールのスクロールバー　…　常に最前面


カーソルの制御

フォームエディタ内では、通常、マウスを使用して、コントロールの配置やフォームの設計を自由に行うことができます。コントロールを選択したりグループにまとめたりするには、マウスをクリックしたりドラッグしたりします。さらに、コントロールを選択したり、グループにまとめたりしてから、マウスの右ボタンをクリックすると、コンテキストメニューを表示させて、その中のオプションを選択できます。

フォーム編集時に、キーボードから操作する際には、通常のキーボード操作に加えて以下のキーを使用できます。

キー	カーソルの動き
｛Home｝	最初のコントロールを選択
｛End｝	最後のコントロールを選択
｛Tab｝	次のコントロールを選択
｛Shift｝＋｛Tab｝	前のコントロールを選択
矢印キー	選択したコントロールまたはフォームの移動
｛Shift｝＋矢印キー	選択したコントロールまたはフォームのサイズ変更
｛Esc｝	取り消し
｛Enter｝	確認


フォームテーブル

［フォーム］テーブルは、各プログラムごとにあります。このテーブルでは、現在のタスクのすべての表示ウィンドウ、レポートレイアウト、入出力レコードのレイアウトを設定します。子タスクから［フォーム］テーブルにアクセスした場合は、そのテーブルには同系列の上位タスクのフォームも表示されます。

［フォーム］テーブルでは１行で１つのフォームを表します。以下に、フォームの種類を示します。

■	タスクのメインウィンドウ

■	その他の画面表示ウィンドウ

■	拡張ウィンドウ

■	レポートヘッダ … 複数のブレイクレベルが設定されている場合には、各レベルに対応するヘッダを設定できます。

■	レポート明細行

■	レポートフッタ … 複数のブレイクレベルが設定されている場合には、各レベルに対応するフッタを設定できます。

■	テキストファイル（入出力ファイル）に対してデータを読み書きする場合のレコードレイアウト

レポート印刷用のフォームはグループに分けることができます。これには、クラスの値を使用します。同じクラスに属するグループのフォームは、実行時に一連のフォームとして処理されます。たとえば、レポートヘッダ、レポートフッタ、レポート明細行から構成される１セットのフォームは、［フォーム］テーブルではすべて同じクラスにします。

画面表示用のフォームは、クラス値が常に０であるのに対し、レポート印刷フォームや入出力ファイル用のフォームには、１以上のクラス値を割り当てます。

クラス０のフォームは１つずつ編集しますが、クラス値が１以上のフォームは、同じクラス値のフォームを一緒に表示して編集します。

フォームテーブルの設定

［フォームエディタ］を起動するには、タスクをオープンした状態で、メニューから［タスク環境／フォーム］を選択して、［フォーム］テーブルの［名前］欄からズームするか、［オプション／フォーム表示］を選択します。

ルートタスクを作成すると、最初のフォームが［フォーム］テーブルに自動的に作成されます。これが、クラス０のメインウィンドウのフォームデータです。このフォームデータは、削除したりテーブル内の別の位置へ移動したりできません。つまり、［フォーム］テーブルのこのフォームデータの前に別のフォームデータを置くことはできません。

オンラインタスクの場合、メインウィンドウは、データビューの表示やエンドユーザとの対話処理に使用します。バッチタスクの場合、メインウィンドウは、タスクが実行中に処理経過情報を表示する場合などに使用します。または、バッチタスクを実行する前に、［位置付］や［範囲］の設定のための画面をエンドユーザに提供する場合にも使用します。

子タスクを作成すると、ルートタスクの［フォーム］テーブルに、新しいフォームデータが自動的に追加されます。このフォームデータは、子タスクのメインウィンドウです。フォームの設定は必要に応じて変更できますが、このフォームデータ自体は削除できません。上位タスクの［フォーム］テーブルでフォームデータを追加したり削除したりすると、その上位タスクの同系列下にある子タスクの［フォーム］テーブルでも、対応するフォームデータが追加または削除されます。子タスクから［フォーム］テーブルにアクセスする場合は、その子タスクを設定したフォームデータだけでなく、同系列の上位タスクで設定されたすべてのフォームデータにもアクセスできます。

［フォーム］テーブルでは、その他の画面表示用ウィンドウとしてクラス０のフォームデータを追加できます。これは、主に、サブルーチンとして呼び出される子タスクまたはプログラムのデータをそれ自身のメインウィンドウ以外のウィンドウに表示する場合に使用します。

バッチタスクの場合には、レポートフォーム（レポート印刷用のフォーム）を［フォーム］テーブルに設定できます。通常、レポート印刷は３種類のレポートフォーム（ヘッダフォーム、明細行フォーム、フッタフォーム）を１組として実行されます。３種類のレポートフォームはそれぞれを独立したフォームとして［フォーム］テーブルに設定しますが、それらに同一の［クラス値］（１以上）を割り当てておけば、同一のレポート印刷に関連するフォームであることが認識されます。

関連項目

新しいフォームの作成

フォームの編集

フォームの配置とサイズ変更


名前（フォーム名）

フォーム名を設定します。タスク名がデフォルト値として自動的に使用されますが、必要に応じて変更できます。新しいタスクまたは子タスクを作成すると、「フォーム］テーブルにそのタスクのメインウィンドウに対するフォームデータが自動的に作成されます。その場合、タスクツリーのノード、または［タスク特性］ダイアログで入力したタスク名が、［フォーム］テーブルのメインウィンドウの［名前］欄に表示されます。ただし、この名前は必要に応じて変更できます。フォーム名をタスク名と同じにする必要はありませんが、フォーム名をタスク名と同じにした場合には、タスクツリーまたは［タスク特性］ダイアログでタスク名を変更すると、フォーム名が自動的に変更されます。メインウィンドウ以外のフォームを［フォーム］テーブルに追加すると、［名前］欄は空白になってしまうので、必要に応じてフォーム名を入力してください。クラス０の画面表示ウィンドウのタイトルバーには、［フォーム］テーブルの［名前］欄の値が表示されます。


クラス

０以上のクラス値を設定します。メインウィンドウには、クラス値０が自動的に割り当てられます。必要に応じてクラス値０のウィンドウを追加できます。クラス値０は、画面表示ウィンドウ用に予約されています。クラス値１以上のフォームをフォームテーブルに追加することもできます。１以上のクラス値は、レポート印刷やテキストデータ入出力のレコードレイアウト用のフォームに使用します。たとえば、１つのタスク内で２種類のレポート印刷のレイアウトパターンが必要で、それに対応するレポートフォームを２種類設定する場合には、一方のパターンに対応するレポートフォームにはクラス値２を割り当てます。この場合、クラス値の大小は、互いに異なるグループ（クラス）に属するフォームであることを表しているだけです。したがって、クラス値１と２の代わりにそれぞれクラス値12と５を割り当てても同じです。

［フォーム］テーブルのクラス値が１以上のフォームデータからズームすると、フォームエディタが同じクラス値に属するフォームをすべて表示します。レポートフォームの場合、対応するヘッダ、明細行、フッタのフォームがすべて同時に表示されます。これらのフォームが、それぞれ異なる［寸法単位］と［垂直精度］、［水平精度］で定義されている場合は、すべてのフォームが同じように設定されます。このような場合は、そのクラスのフォームの中で、解像度の一番高いフォームの設定が適用されます。


区分

クラス値０のフォーム（画面表示ウィンドウ）の場合は、［区分］欄は空白です。カーソルは、この欄には止まりません。これに対してレポートフォームの場合には、［区分］欄には「Ｈ＝ヘッダ」、「Ｄ＝明細」、「Ｆ＝フッタ」、「Ｐ＝ページヘッダ」または、「Ｇ＝ページフッタ」を指定できます。デフォルト値は「Ｈ＝ヘッダ」です。テキストデータ入出力のレコードレイアウトのフォームの場合にも、［区分］欄には「Ｈ＝ヘッダ」が表示されますが、設定は無視されます。

［フォーム］テーブルにヘッダフォーム、明細行フォーム、フッタフォームを配置する場合は、その順序に気をつけてください。特にブレイクレベルが設定されている場合には細心の注意を払ってください。まず最上位レベルのヘッダフォームとフッタフォームを配置します。続いて次のレベルのヘッダフォームとフッタフォームを配置し、順次最下位レベルのヘッダフォームとフッタフォームまで配置します。最後に明細行フォームを配置します。上記の規則でレポートフォームを配置しておけば、レイアウト画面にズームしたときに、各レベルのヘッダフォーム、明細行フォーム、各レベルのフッタフォームがすべて同時に正しい順序で表示されます。


新しいフォームの作成

［フォーム］テーブルの任意の行にカーソルがあるときに［オプション／フォーム自動作成］を選択すると、ラインモードまたはスクリーンモードのレイアウト画面が自動的に生成されます。項目の見出しも含むすべての項目が、設定した書式に従ってレイアウトされます。dbMAGICのフォーム自動作成機能を使用しない場合は、新しく作成されるフォームのレイアウト画面は空白、つまり何もレイアウトされていない状態になります。

新しいフォームを作成するには、［タスク環境／フォーム］を選択してフォームテーブルを表示させ、新しい行を作成し、ダブルクリックまたはズームでフォームエディタを起動します。

レイアウト画面の左側には、新規フォームが表示され、右側には、２つのパレットが表示されます。

コントロールを追加するには、［コントロール］パレットから選択したコントロールをフォーム上に配置し、マウスをクリックして位置を固定します。目的の動作をするように、コントロールの追加、変更、グループ選択、並べ替え、移動、サイズ変更、削除を行うことができます。コントロールでズームまたはダブルクリックすると、［コントロール特性］ダイアログが表示されます。カーソルの座標は、設計中のフォームのレイアウト画面内での相対位置で、物理画面上の絶対位置ではありません。


既存フォームの編集

既存のフォームを編集するには、［フォーム］テーブルで選択したフォームをズームまたはダブルクリックして、フォームエディタを起動します。

子タスクのフォームをオープンすると、レイアウト画面内に、そのタスクのすべての上位タスクのフォームが表示されます。それらのフォーム上でクリックすると、ファイルを編集できます。編集中のフォーム内には、グリッドが表示されます。フォームエディタを終了し、変更を保存すると、編集したフォームがすべて更新されます。


フォームの配置とサイズ変更

フォームの論理的なサイズは、ウィンドウ領域の高さと幅のパラメータで定義します。フォームのウィンドウ領域のサイズを変更するには、｛Shift｝＋矢印キーを使用します。矢印キーを使用するか、タイトルバーをドラッグして、フォームを移動します。ウィンドウ枠の右下の角をクリックしてドラッグすると、ウィンドウ領域の枠のサイズを変更できます。フォームのサイズ変更や移動のあとで、｛Enter｝を押すと変更が確定され、｛Esc｝を押すと変更が取り消されます。

フォームにコントロールを配置してから、ウィンドウ枠を変更した場合に、そのコントロールが隠れてしまったときには、フォームにスクロールバーが自動的に追加されます。コントロールが失われるフォームのウィンドウ領域のサイズ変更はできません。


フォーム特性

［フォーム特性］ダイアログでは、フォームの動作や外観を制御します。［フォーム特性］ダイアログを表示するには、［フォーム］テーブルの［名前］欄から［タスク環境／特性］（｛Ctrl｝＋｛P｝）を選択します。あるいは、［フォーム］レイアウト画面上でマウスの右ボタンを押して、コンテキストメニューを表示させ、「特性」を選択します。クラス値が０のフォームでは、コントロールを除くフォーム上の任意のところで、マウスをダブルクリックしても、［フォーム特性］ダイアログを表示できます。

クラス値が１以上のフォームの場合は、そのフォームテーブル内で同じクラス値のフォームがすべて同時に表示されます。それらのフォームのうちの１つの［フォーム特性］を変更すると、それ以外のすべてのフォームの特性が同じ設定値に自動的に変更されます。たとえば、クラス値が１のフォームの［フォント］パラメータを変更すると、そのフォームテーブル内でクラス値１を持つフォームの［フォント］パラメータが、新しい設定と一致するように自動的に変更されます。

テキスト形式フォームは、クラス値が１以上の場合にのみ使用できます。テキスト形式フォームには適用されないパラメータは、［フォーム特性］ダイアログで無効になります。

［フォーム特性］ダイアログは、４つのタブリストに分割されています。各タブタイトルの下に表示されるパラメータについては、以下の各トピックを参照してください。

詳細
入力属性
外観
位置とサイズ


フォーム特性－詳細

フォーム名

［フォーム］テーブルの［名前］欄。フォームのタイトルバーに表示されます。

寸法単位

フォームのサイズと位置は、［寸法単位］で定義します。フォームの解像度も［寸法単位］で、設定します。「Ｄ＝ダイアログ（文字）」、「Ｃ＝センチメートル」、「Ｉ＝インチ」の中から選択します。

垂直精度

各［寸法単位］内の垂直方向の精度を設定します。値が大きいほど、精度が高くなります。

水平精度

各［寸法単位］内の水平方向の精度を設定します。値が大きいほど、精度が高くなります。

グリッド表示

フォームエディタが、グリッドを表示するかしないかを設定します。「Yes」に設定すると、グリッドが表示されます。「No」に設定すると、グリッドは表示されません。

グリッド間隔（X）、グリッド間隔（Y）

フォーム上のグリッド間隔を設定します。


フォーム特性－入力属性

インタフェースタイプ

このパラメータで設定できる値は、「Ｇ＝GUI形式」と「Ｔ＝テキスト形式」の2つです。「Ｇ＝GUI形式」を設定すると、グラフィカルなフォームとグラフィカルな出力を使用できます。「Ｔ＝テキスト形式」を設定すると、フォームは、非グラフィック環境で使用でき、テキストファイルに出力できます。

子ウィンドウ

実行時に表示ウィンドウを親タスクの表示ウィンドウと一緒に表示するか、独立したウィンドウとして表示するかを設定します。このパラメータに入力できる値は、「Yes」または「No」です。

タイトルバー

フォームにタイトルバーを付けるかどうかを設定します。タイトルバーを付けない場合は、フォームを移動したり、「最小化」ボタンと「最大化」ボタンを表示することはできません。論理値を返す式を［式］欄に設定することにより、タイトルバーを付けるかどうかを決定することもできます。

システムメニュー

フォームに「システムメニュー」ボタンを入れるかどうかを設定します。このボタンをクリックすると、Windowsのシステムメニューが表示されます。デフォルト値は「Yes」です。

最小化ボタン

フォームの右上に［最小化］ボタンを付けるかどうかを設定します。デフォルト値は「Yes」です。

最大化ボタン

フォームの右上に［最大化］ボタンを付けるかどうかを設定します。デフォルト値は「Yes」です。

ヘルプ画面

フォームにヘルプ画面を添付するかどうかを設定します。ズームまたはダブルクリックで［ヘルプ一覧］を表示して、ヘルプ画面を選択して設定します。

パレット最適化

多くのグラフィックイメージを含むフォームでは、そのイメージが異なるカラーパレットを使用しているために、フォーム内の色調節がうまくいかない場合があります。このような場合は、［パレット最適化］を「Yes」に設定すれば、選択したグラフィックイメージに対して最適な色を与えるパレットが使用されます。

デフォルト値は「No」です。「Yes」に設定するとフォームの画質を劣化させる場合があるため、「Yes」に設定するのは本当に必要な場合だけにしてください。

フォーム拡大

このパラメータは、クラス１以上の時、設定可能です。このパラメータで、印刷中に複数行編集のコントロールの動的なサイズ調整を設定します。詳しくは、「9.5   GUI印刷機能」の「複数行編集印刷」を参照してください。


フォーム特性－外観

フォント

フォームのフォントを設定します。フォントを選択するには、［フォント］でズームまたはダブルクリックして［フォント］テーブルを表示させます。

コントロールのフォントは、［コントロール特性］ダイアログで設定します。コントロールのフォントを設定しないと、フォームのフォントが適用されます。

色

フォームの色を設定します。ズームまたはダブルクリックすると［基本色一覧］が表示されます。このパラメータから［式］テーブルをズームして、［基本色一覧］の色番号を返す式を入力しても実行時に値を設定できます。式を使用する場合は、式の戻り値が、［色］パラメータの設定値になります。

クラス１以上のテキスト形式の場合は、［プリンタ属性一覧］の印刷スタイルを選択します。詳細については、「9.6  プリンタ属性サポート」の「出力の印刷スタイル指定」を参照してください。

フレーム種類

フォームの［フレーム種類］を設定します。［フレーム種類］に設定できる値は、「Ｈ＝太線」、「Ｔ＝細線」、「Ｎ＝なし」です。


フォーム特性－位置とサイズ

位置

このパラメータを有効にするには以下のパラメータの値を設定してください。

・［タイトルバー］パラメータの値を「No」

・［フレーム種類］パラメータの値を「Ｈ＝太線」以外

・［フレーム左辺位置］、［フレーム上辺位置］、［フレーム幅］、［フレーム高さ］パラメータの式を「0」。式を選択した場合は、それに対応する［フォーム位置］ダイアログのパラメータは設定不可能になります。また、その逆も同様です。

［フォーム特性］ダイアログの［位置］パラメータからズームすると［フォーム位置］ダイアログが表示されます。

このパラメータは、［フォーム位置］ダイアログの４つの割合の組み合わせです。４つの割合は、「左辺割合」、「幅割合」、「上辺割合」、「高さ割合」です。［位置］パラメータの値が０の場合、上位フォームの［サイズ］パラメータが実行時に変更されても、そのフォームのそれぞれの［サイズ］パラメータは変更されません。［位置］パラメータの値が１以上の時、上位フォームの［サイズ］パラメータが実行時に変更された場合、それぞれの［サイズ］パラメータは変更されます。

左辺割合

選択されたフォームの左上角のｘ座標の割合（0～100）

幅割合

選択されたフォームの幅の割合（0～100）

上辺割合

選択されたフォームの左上角のy座標の割合（0～100）

高さ割合

選択されたフォームの高さの割合（0～100）

［位置］パラメータを設定するには以下の式より割合を計算してください。

上位フォームのフレーム高さ（変更前） … PaFPL

上位フォームのフレーム高さ（変更後） … PaFP

フレーム高さ（変更前） … FPL

フレーム高さ（変更後） … FP

高さ割合 … Place

式：

高さ割合 Place＝100*PaFPL*(FP-FPL)/FPL/(PaFP-PaFPL)

フレーム高さ（変更後）FP＝FPL+FPL*(PaFP-PaFPL)/PaFPL*Place/100

フレーム左辺位置

フォームのフレームの左辺位置を設定します。［式］テーブルをズームして、フォームのフレームの左辺の座標を求める式を登録することによって、実行時に値を設定できます。

フレーム上辺位置

フォームのフレームの上辺位置を設定します。［式］テーブルをズームして、フォームのフレームの上辺の座標を求める式を登録することによって、実行時の値を設定できます。

フレーム幅

フォームの周りのフレームの水平方向の長さです。［式］テーブルをズームして、フォームのフレームの上辺の座標を求める式を登録することによって、実行時の値を設定できます。フレームが小さすぎてコントロールを表示できない場合は、ウィンドウ内の内容をスクロールするためのスクロールバーが自動的に表示されます。［フレーム幅］は、マウスでフレームの右辺をドラッグしても変更できます。

フレーム高さ

フォームの周りのフレームの垂直方向の長さです。［式］テーブルをズームして、フォームのフレームの上辺の座標を求める式を登録することによって、実行時の値を設定できます。フレームが小さすぎてコントロールを表示できない場合は、ウィンドウ内の内容をスクロールするためのスクロールバーが自動的に表示されます。［フレーム高さ］は、マウスでフレームの下辺をドラッグしても変更できます。

ウィンドウ領域幅（寸法単位指定）

フォームの内容の水平方向の長さです。ルートタスクの表示ウィンドウのデフォルト値は、80寸法単位です。変更するには、このパラメータに値を直接入力するか、｛Shift｝を押しながらフォームの右辺をドラッグします。設定を変更すると、同時にフレームの大きさも変更されます。このあとで、フレームの大きさを自由に変更できるようになりますが、コントロールが削除されてしまうほどに、小さくできません。

［ウィンドウ領域幅］の値が［フレーム幅］の値より大きい場合は、水平方向のスクロールバーが追加されたフォームが表示されます。マウスでフォームのサイズ変更をした場合も同様に、スクロールバーが自動的に追加されます。

ウィンドウ領域高さ（寸法単位）

フォームの内容の垂直方向の長さです。タスクの表示ウィンドウのデフォルト値は、25寸法単位です。そのほかのすべてのウィンドウのデフォルト値は、３寸法単位です。クラス値が１以上のフォームはすべて同じパラメータの数を持たなければならないため、それらの中の最大値が使用されます。

変更するには、このパラメータに値を直接入力するか、｛Shift｝を押しながらフォームの下辺をドラッグします。設定を変更すると、同時にフレームの高さも変更されます。そのあとで、フレームの大きさを自由に変更できるようになりますが、コントロールが削除されてしまうほどに、小さくできません。


コントロール

［コントロール］パレットには、フォームに配置できる、各種のコントロールが表示されます。コントロールを配置するには、パレットから配置したいコントロールのボタンを選択して、それをフォームレイアウト内にドラッグアンドドロップします。または、パレット内のボタンをダブルクリックすれば、コントロールが直接フォームの左上に配置されます。

■	パレットの下側の「ビュー項目」のタブタイトルをクリックすると、ファイル辞書で定義されたビュー項目を含む［ビュー項目］が表示されます。

以下に、［ビュー項目］パレットでの動作を説明します。

-	作成されたコントロールをドロップした位置の右に配置します。

-	エディットコントロールの場合は、タイトルコントロールとして、ビュー項目の名前をスタティックコントロールにしてドロップした位置の左に配置し、作成されたコントロールを、そのタイトルコントロールの右側に配置します。

-	｛Shift｝キーを押しながらドロップした場合は、タイトルコントロールは作成されません。

コントロールに関する詳細は、以下の項目を参照してください。

スタティックコントロール

チェックボックス

プッシュボタン

イメージ

エディット

テーブル

スライダ

チョイスコントロール

各コントロール上で、マウスをダブルクリックすると、コントロール特性がダイアログが表示されます。


スタティックコントロール

■　グループ … 複数のコントロールを１つの集合体に見せるため背面に配置する四角形です。グループ内のコントロール間には、論理的な関係はありません。

■　テキスト … 静的テキスト

■　四角形 … グラフィカルな四角形

■　楕円形 … グラフィカルな長円形

■　直線 … グラフィカルな直線

関連項目

コントロール特性ダイアログ

スタティックタイプ


プッシュボタン

プッシュボタンは、dbMAGICのアクション（ズームなど）の呼び出しに使用します。プッシュボタン項目の内容は、ボタン上の文字列になります。プッシュボタンの返すアクションは、［コントロール特性］ダイアログ内の［アクション］パラメータで指定します。［アクション］パラメータでは、［アクション一覧］にズームしてアクションを選択できます。

プッシュボタンを使用すると、以下に示すようにプログラムまたは子タスクの実行を呼び出すことができます。

[1]	ボタン上に表示する名前が入った文字型の変数項目を割り当てます（そのためには、代入式を使用します）。

[2]	変数の［項目特性］ダイアログの［コントロールタイプ］欄を「プッシュボタン」に設定し、［アクション］欄を「ズーム」に設定します。

[3]	コールタスクまたはコールプログラムをビューコマンドの前（［フロー］欄は「Ｂ＝後置」に設定）、またはビューコマンドの後（［フロー］欄は「Ａ＝前置」に設定）に置きます。

実行時にこのボタンを押すと、「ズーム」アクションが起り、コールタスク、コールプログラムコマンド、またはイベントが起動されます。

プッシュボタンには、上記のほかに、［OK］、［取消］、［ヘルプ］の各ボタンの形があります。これらのボタンで、それぞれ「終了」、「取消」、「ヘルプ」のアクションを実行させることができます。ボタンで設定したアクションは、dbMAGICのプログラム実行状況に従って実行されます。

デフォルトでは、プッシュボタンのデザインが使用されますが、［コントロール特性］ダイアログの［イメージボタン］パラメータを「Yes」に設定すると、オリジナルデザインのプッシュボタンを使用できます。


エディットコントロール

エディットコントロールには、［データ］パラメータの［値］欄と［式］欄で指定した項目または式のどちらかが入ります。

エディットコントロールをカスタマイズするには、エディットコントロールを選択してから、［コントロール特性］ダイアログにズームします。


直線－グラフィカルな直線

グリッド上の２点間を結ぶ直線の描画を配置します。dbMAGICの以前のウィンドウズバージョンと同様に、直線はエディットボックス内に配置されています。

選択されたコントロール上でダブルクリックを行うか、ズーム（Ｆ５）をすると、 コントロール特性ダイアログがオープンされます。


スライダ

スライダは特定の範囲を持つ数値項目で、その範囲によってスライダが表す値の大きさが決まります。項目はルーラとして表示され、ルーラ上のインジケータが項目の値を示します。フォーム上のスライダの表示は、［コントロール特性］ダイアログ内のパラメータを設定して調整します。

フォームの任意のところに、垂直方向型と水平方向型のスクロールバーを配置できます。


ラジオボタン
チョイスコントロール

ラジオボタン

ラジオボタンは、複数の選択項目がある場合使用します。不連続の入力範囲が指定された項目が対応します。範囲の各値は、単独のラジオボタンとして表示され、値はボタンの横に表示されます。すべてのボタンは、１つのボックス内に表示され、単独のコントロールとして処理されますが、各ボタンは、それぞれが独立しているように見えます。一度に選択できるボタンは１つだけです。ボタンを選択すると、ボタンの円の内側に黒い点が表示され、そのボタンが選択されたことを示します。項目は、押されたボタンの値を受け取ります。論理項目がラジオボタンで表示され、その範囲が定義されていない場合は、デフォルト値の「真」／「偽」が使用されます。

タブコントロール

タブコントロールは、ファイルキャビネットやノートの仕切り等に似ています。タブコントロールを使用すれば、同一のウィンドウ内に、複数の論理的な頁や部分を定義することができます。タブタイトルやラベルはテキストやグラフィックスを含むことができます。タブタイトルを選択すると、選択されたタブタイトルの子コントロールを含むタブカードが表示されます。

リストボックス

選択肢の一覧を表示するための既成のコントロールです。リストボックスは、項目の集合を表示するのに使用されます。ほとんどの場合、一覧からの項目の選択を行うために使用されます。

コンボボックス

テキストボックスとリストボックスを結合させると、選択された項目の値をタイプすることも、一覧から選択することもできるようになります。コンボボックスの［高さ］パラメータは、閉じた状態のコンボボックスの高さを設定します。開いた状態のコンボボックスは、プルダウンメニュータイムアウトで指定された時間が経過すると自動的に閉じられます。

コントロールを選択して、ダブルクリックまたはズームを行うと、コントロール特性.ダイアログがオープンされます。


チェックボックス

チェックボックスは論理項目の設定を視覚的に示すときに使用し、チェックすると「真」、チェックしないと「偽」になります。項目名は、通常の項目と同じように、内容の説明です。チェックボックスへ入力するには、スペースバーを押すか、チェックボックスをマウスでクリックします。どちらの場合も、１回操作するごとにボックスのチェック記号が付いたり消えたりします。


イメージコントロール
イメージ

イメージコントロールには、グラフィカルなイメージが入ります。ファイル名の指定、グラフィックイメージの項目のマッピング、グラフィックイメージを返す式の定義を使用してグラフィックイメージを配置できます。


OLEコントロール

異なるアプリケーションによってサポートされるオブジェクトを結合できるようにするシステムインタフェースの集合を提供します。OLEオブジェクトは、アプリケーション内に埋め込むこともリンクすることも可能です。埋め込まれたOLEはデータオブジェクトです。

選択されたコントロール上でダブルクリックを行うか、ズーム（Ｆ５）をすると、 コントロール特性ダイアログがオープンされます。


テーブルコントロール
テーブル

テーブルコントロールには、以下の２つの部分があります。

■ タイトル領域

■ 繰り返し領域 … テーブルの罫線が表示されます。

各フォームには、テーブルを１つだけ入れることができます。テーブルの行や列は、マウスのクリックやドラッグで編集できます。また、テーブルを表示するウィンドウが、テーブルのサイズよりも小さい場合に、内容をスクロールするためのスクロールバーを追加するかどうかを、［コントロール特性］ダイアログで指定できます。テーブルの列間に区切りを入れることもできます。

プッシュボタンやエディットコントロールなどの別の種類のコントロールをテーブルコントロールの先頭行に配置できます。先頭行に配置したコントロールはすべて、先頭以降の行でも同じ位置に配置されます。同じ位置に別のコントロールを重ねて配置し、［コントロール特性］ダイアログの［可視］パラメータを式で設定すると、それらの表示／非表示を動的に切り替えることができます。

テーブルコントロールは、その上に配置されたコントロールを自動的にはグループ化しません。テーブル内に配置したコントロールを選択しないでテーブルを移動すると、テーブルは移動できますが、コントロールはもとの位置から動きません。したがって、コントロールを追加したテーブルを編集する場合は、必ず、テーブルコントロールとのリンクを行なうかそのテーブルに配置したコントロールをすべて選択してください。

詳細については、「テーブルコントロールの使用方法」を参照してください。


コントロール特性

フォーム上のコントロールの特性は変更できます。コントロールを選択してズームまたはダブルクリックすると、［コントロール特性］ダイアログが表示されます。ダイアログ内のパラメータは、コントロールの種類によって異なります。選択されていないコントロールの［コントロール特性］ダイアログを表示するには、マウスポインタがコントロール上にある状態で、マウスの右ボタンをクリックし、コンテキストメニューから「特性」を選択します。

コントロールをフォームに配置して外観を目的に合わせて整えてから、そのコントロールがフォーム内で目的の動作を行うように特性を設定しなければなりません。マウスでコントロールを選択し、ズーム（  F5  ）するか、ダブルクリックして［コントロール特性］ダイアログへズームします。選択されていないコントロールの［コントロール特性］ダイアログを表示するには、コントロール上でマウスの右ボタンを押して、コンテキストメニューの［特性］を選択します。

［コントロール特性］ダイアログを使用すれば、レイアウト画面上にレイアウトさせる表示項目（ビュー項目や式）を選択し、その表示項目に対して書式や色などを設定できます。プログラム実行時にエンジンがビュー項目にアクセスする順序は、［レコードメイン］の処理テーブルで設定されている順序と同じです。レイアウト画面上にレイアウトされている順序とは関係ありません。

レイアウト画面の同一のビュー項目が複数の位置にレイアウトされている場合は、最後に選択されたものが更新されます。１つのレイアウト画面内で同一のビュー項目を複数回表示する必要がある場合は、変数項目を別に作成して、この変数項目を表示します。

レイアウト画面には、式を表示項目としてレイアウトできます。プログラム実行時には、書式のフォーマットに従って、式の評価値が表示されます。カーソルは、式表示項目には止まりません。式は、カーソルがフォーム上のあるパーク可能な項目から別のパーク可能項目に移動するたびに評価され、再表示されます。そのため、１つのフォーム上に多数の式を表示項目としてレイアウトすると、フォーム上でのデータ入力速度が低下する場合があります。

［コントロール特性］ダイアログ内のパラメータは、いくつかのタブに分類されます。コントロールの種類によって、タブの数や、各タブ内のパラメータが変化します。

詳細

入力属性

外観

位置とサイズ

OLEパラメータ


レポートレイアウト

入出力フォームの編集

１以上のクラス値は、レポート印刷やテキストデータ入出力のレコードレイアウトに関するフォームに対して使用します。［フォーム］テーブルのクラス値が1以上のフォームデータからズームすると、フォームエディタによって同じクラス値に属するフォームがすべて表示されます。レポートフォームの場合は、対応するヘッダ、明細行、フッタのフォームが、［フォーム］テーブルの［名前］欄の値が表示された区切りとともに、すべて表示されます。区切りを表示しない場合は、コマンドパレットの［区切りなし表示］を選択します。

クラス値１以上のフォームでのコントロールパレットの使用方法

クラス値１以上のフォームでは、コントロールパレットのサブセットが表示されます。クラス値１以上のフォームで使用できるコントロールだけが有効になります。イメージコントロール、グループコントロール、楕円形コントロール、テーブルコントロールのアイコンは、［GUI形式］のフォームでだけ有効です。

クラス値１以上のフォームのサイズ変更

レポートレイアウトに表示されるフォーム区分ごとの区切りを移動して、区分のサイズを変更するには、各区分の下の区切りをドラッグします。

挿入形式でサイズ変更をするには、 ｛Ctrl｝ を押したまま各区分の下の区切りまでドラッグします。ほかの区分のサイズは変更されません。

レポート全体のサイズ変更をするには、｛Shift｝＋矢印キーを使用します。白線で表示されるのが、新しいフォームの大きさです。この大きさを確定するには｛Enter｝を押し、取り消すには｛Esc｝を押します。

コントロールが隠れて消失するほどのサイズの変更はできません。

クラス値１以上のフォームの複数区分でのコントロールの使用方法

レポート内の異なる区分に表示される複数のコントロールを整列したり、サイズ変更したりするには、コントロールを選択して、［コマンド］パレットまたは、［整列］、［サイズ］メニューを使用します。

コントロールのＺオーダは、各フォーム内での適用値で、同じクラス値を持つ異なるフォーム間にまたがって指定されているわけではありません。

クラス値１以上のフォームでのフォーム特性の変更

クラス値１以上のフォームの［フォーム特性］を変更するには、［フォーム］テーブルで、変更するフォームを選択して、［タスク環境／特性］を選択します。

フォームと非手続き的ページブレイク機構

レポートを設計する場合には、レポートフォームとそのレポートフォームを出力メディアに出力する手続き的処理をdbMAGICに指定する必要があります。［データ出力］コマンドを使用した手続き的処理をさまざまなタスクレベルに指定します。dbMAGICエンジンはさまざまなタスクレベルをループしながら、［データ出力］コマンドを実行し、関連する処理テーブルを実行します。

タスクの実行時に、出力メディアへフォームを出力しようとしても、スペースが不足してフォーム全体を出力できないことがあります（プリンタへの出力の際にページの終わりになる、またはページフォーマットを使用してテキストファイルを出力する際に何行かはみ出るなど）。ページの終わり（EOP）状況の処理は、非手続き的方法で自動的にEOP状況が処理されるため、開発者が指定する必要はありません。

［データ出力］コマンドの［頁］パラメータとEOP関数を使用して、EOP状況を明示的に処理することもできます。ただし、これにはプログラミングが必要なので、この方法を使用するのは、自動処理が十分でない場合だけにしてください。

「19.5 定型フォームでの印刷方法」では、定型フォームの印刷例を紹介しています。

［フォーム］テーブルは、dbMAGICの自動ページブレーク機構では重要です。すでに説明したように、同じレポートのフォームは同じフォームクラスにグループ化する必要があります。これは、ページブレイクが起こると、自動ページブレイク機構が出力されるフォームと同じクラスのフォームに働くためです。

フォームが大きすぎてページ内に収まらず、フォームを出力メディアに出力できない場合には、dbMAGICはフォームフィード制御コードをプリンタまたは出力ファイルに出力して、新しいページに改ページします。通常、フォームの新しいページを出力する場合は、レポートを流し読みしても概要がわかるようにレポートヘッダをページごとに出力します。自動ページブレイク機構では、この処理が自動的に行われます。dbMAGICは、以下のようなフォームすべての［フォーム］テーブルを走査します。

・ページブレイクを起したフォームと同じクラスのフォーム

・ヘッダフォーム（フォームの［区分］欄が「Ｈ＝ヘッダ」のもの）

・上位階層レベルのフォーム（［フォーム］テーブルでは、フォームはページブレイクを起こしたフォームの「上位」に置かれます）

該当するフォームは、それぞれ新しいページに印刷されます。先行するヘッダがすべて印刷され、ページブレイクを起こしたフォームが印刷されると、通常の手続き的処理が再開されます。

たとえば、レポートに以下のフォーマットがあるとします。

・レポートヘッダ

・グループヘッダ

・明細行

・グループ小計

・グループヘッダ

・明細行

・グループ小計

・レポート合計

レポートの［フォーム］テーブルは、以下に示すような順序に並べます。

レポートヘッダ	ヘッダ
レポート合計	フッタ
グループヘッダ	ヘッダ
グループ小計	フッタ
明細行	明細

「明細行」を印刷しようとするときにEOPが起こると、「レポートヘッダ」と「グループヘッダ」が新しいページに印刷され、続けて「明細行」が印刷されます。

「グループ小計」を印刷しようとするときにEOPが起こると、「レポートヘッダ」と「グループヘッダ」が新しいページに印刷され、続けてグループ小計が印刷されて、タスクの実行は通常どおり続きます。

テキスト形式フォーム

フォームエディタでは、Windowsアプリケーションとしての、グラフィカルなインタフェースを設計できます。グラフィカルなインタフェースをサポートしない環境用のアプリケーションを開発する場合や、テキストファイルに出力する場合は、テキスト形式フォームを作成します。テキスト形式フォームは、クラス値が１以上の場合にだけサポートされます。

すべてのテキスト形式フォームで、固定長フォントを使用してください。


GUI印刷機能－テーブル印刷

GUI印刷機能を使用して、テーブルコントロールの印刷を行うことができます。これにより、表（複数行）形式のレポートが、より簡単に、より迅速に作成できます。

テーブルコントロールは、クラス値１以上のGUI形式の入出力フォームに追加できます。

以下のテーブルコントロールのパラメータを設定することにより、グラフィック印刷を行うことができます。

固定サイズテーブル

有効な値：「Yes」、「No」

■No … デフォルト値。レコードのラインは1つだけです。このラインは、全てのレコードで複写されます。テーブルの実際のサイズは、ページに印刷されるレコードの数によって決まります。

■Yes … テーブルは、フォームで設定したサイズで印刷されます。

全ページタイトル

有効な値：「Yes」、「No」

■Yes … デフォルト値。テーブルヘッダが、全てのページに印刷されます。

■No … テーブルヘッダは、テーブルの始めにのみ印刷されます。

■テーブル内の最初のレコードが印刷される時、テーブルヘッダと、フォーム上の全てのコントロールは一緒に印刷されます。

テーブルの一部でないコントロールは、最初のレコードとヘッダが印刷された時、一度印刷されます。これらのコントロールの位置で、印刷するテーブルの最小サイズが設定されます。テーブルのサイズは、フォームの一番下にあるコントロールが入るように調整されます。

■２番目以降のレコードが印刷される時、すでに出力されているレコードの直後に出力されます。フォーム上の他のコントロールは印刷されません。テーブルのサイズはそれに合わせて再調整されます。

■テーブルのあるフォームを印刷する場合、EOP条件の計算のため、テーブルの最終ラインの高さに合わせてページフッタの高さが調節されます。これは、印刷されるレコードが、元のフォームのサイズより大きい時に起こります。

■テーブル上のレコードを印刷している時に、EOPが発生した場合、次の処理が行われます。テーブルの最終ライン － テーブルの最初のレコードのように、テーブルのヘッダ（とフォーム上の全てのコントロール）が、次のページに再印刷されます。テーブルのヘッダは、もしEOPで繰り返される他のヘッダがあれば、その後に印刷されます。

■別のフォームが印刷される時、前に印刷されたフォームにテーブルがある場合、前のテーブルは閉じられ、テーブルの最終ラインが印刷されます。

別のフォームが印刷される時、前に印刷されたフォームにテーブルがある場合、テーブルのあるフォームがレコードで一杯になっていなくても、新しいフォームが、テーブルのあるフォームの次に印刷されます。この場合、テーブルの最終ラインは、前のテーブルのあるフォームの領域に印刷されます。


GUI印刷機能－複数行編集印刷

可変長のテキストデータを持つ、クラス値１以上のフォームの印刷機構は、印刷中に複数行編集のコントロールの動的なサイズ調整によって実現されます。

クラス値１以上の［フォーム特性］ダイアログで、［フォーム拡大］パラメータを「Yes」に設定します。入出力フォームを印刷する場合、コントロールのサイズは、フレーム内にテキストが入るよう調整されます。複数行編集コントロールの下にあるコントロールは、複数行編集コントロールからの距離が一定になるように、下に移動されます。フォームは、複数行編集コントロールの新しい行のために、サイズが大きくなります。

注意：テーブルにある複数行編集コントロールは、［フォーム拡大］パラメータの影響を受けません。


プリンタ属性のサポート

グラフィック印刷

グラフィック印刷機能により、クラス１以上のＧＵＩ形式フォームでは、フォントと色を使用した、WYSIWYG形式の印刷がサポートされます。色はカラープリンタでない場合、グレースケールに変換されて印刷されます。

入出力ファイルの［メディア］欄を、「G=GUI形式プリント」と定義すると、入出力ファイルは、直接Windowsのプリンタドライバに出力され、Windowsでの標準印刷が可能になります。

dbMAGICではプリンタ属性をサポートするため、印刷出力の外観を簡単に制御できます。プリンタ属性のサポートは、テキスト形式の入出力ファイルに対してだけ有効です。プリンタがサポートするフォント（MS明朝、MSゴシックなど）やスタイル（ボールド、イタリックなど）を使用して自由に出力できます。

プリンタサポートの設定

［プリンタ］テーブルに定義されているプリンタごとに、各書体／フォントの組み合わせに使用するプリンタ制御コードと各印刷スタイルを表す色を指定する必要があります。これらの情報は、プリンタ属性ファイルとプリンタコマンドファイルという２つのプリンタサポートファイルに保存されます。

プリンタ属性ファイル

プリンタ属性ファイルには、dbMAGICの論理印刷スタイルの一覧があり、レポートフォームの外観を拡張するために使用できます。論理印刷スタイルは、実行時に実際のプリンタ制御コードに展開されます。論理スタイルは実行時に展開されるため、特定のシステムの物理ファイルをあらかじめ知らなくてもアプリケーションを作成できます。アプリケーションをインストールするときに、必要な情報はすべてdbMAGICの環境設定ファイルに指定されます。

プリンタ属性ファイルには、論理印刷スタイルごとに、プリンタの印刷スタイルによって実際のプリンタ制御コードに結合がされています。プリンタの印刷スタイルは、次に説明するプリンタコマンドファイルで実際のプリンタ制御コードに変換されます。複数のプリンタ印刷スタイルを組み合わせて１つの論理印刷スタイルを作成できます。

また、プリンタ属性ファイルには色番号が設定されています。フォームエディタは、この番号を使用して論理印刷スタイルを表示します。

スタイル名には、アプリケーションで論理印刷スタイルが認識される名前が付いています。

後述するように、このテーブルはdbMAGICの編集ツールで修正できます。

プリンタコマンドファイル

プリンタコマンドファイルは、印刷スタイルごとに実際のプリンタ制御コード（エスケープシーケンス）を示します。以下に、各項目の形式を示します。

スタイル名 = 開始シーケンス : 終了シーケンス

「スタイル名」はプリンタコマンドファイルに現れるスタイル名で、ユーザが定義します。「開始シーケンス」はプリンタ制御（エスケープシーケンス）文字列で、特定の印刷スタイルに現れるテキスト部分の最初にプリンタに送られます。「終了シーケンス」は、テキスト部分の終わりにプリンタに送られるエスケープシーケンス文字列です。「開始シーケンス」と「終了シーケンス」はコロン（:）で区切る必要があります。

また、以下の形式もあります。

スタイル名 = 開始シーケンス

この２番目の形式は、再開コマンドなどの終了シーケンスが不要なプリンタコマンドに使用します。

プリンタコマンドファイルを修正する場合は、テキストエディタを使用します。

例：

■	EPSONのプリンタのデータ処理モードでは、以下の各行がそれぞれプリンタのリセットとボールド体指定のコマンド定義となります。

Reset=0x1b,0x40

Bold= 0x1b,0x45:0x1b,0x46

■	HPのLaserJet IIIシリーズでは、以下の各行がそれぞれピッチ10指定とボールド体指定のコマンド定義となります。

pitch10=0x1b,0x26,0x6b,0x30,0x53

Bold= 0x1b,0x28,0x73,0x33,0x42:0x1b,0x28,0x73,0x30,0x42

ファイルが異なる場合には、同じコマンド名を同じタイプのプリンタコマンドに使用できます。


一覧の操作

「一覧」は、コンボボックスとほぼ同じように使用します。一覧の中には、［コマンド一覧］のようにdbMAGIC特有のデータを示すものがあります。または、［アプリケーション一覧］のように、開発者がテーブル（この場合は［アプリケーション］テーブル）に設定した内容を示すためのものもあります。どちらの場合も、入力欄での入力作業を軽減するために使用します。［一覧］が使用できる入力欄にカーソルがくると、ステータス行に［ズーム］と表示されます。この入力欄からズームして［一覧］を表示させます。具体的には、入力欄でダブルクリックする、｛F5｝を押す、ステータス行の［ズーム］をクリックする、のいずれかの方法があります。［一覧］が表示されたら、目的の行（データ）にカーソルを合わせます。すると、カーソル行が強調表示されます。そこでダブルクリックするか、｛Enter｝を押すか、または「OK」ボタンをクリックすれば、目的のデータが選択されて入力欄に転記されます。［一覧］で選択をしないで［一覧］をクローズするには、「取消」ボタンをクリックするか、｛Esc｝を押します。


レポート辞書

［レポート辞書］テーブルには、レポートジェネレータをアクティブにしてあるデータビューからアクセスできます。この［レポート辞書］テーブルには、現在定義されているレポートが表示されます。このテーブルから、リストされているレポートの実行、追加、削除、または修正を行います。

編集・入力が可能なのは、［名前］欄だけです。

目的のレポートを強調表示させて、ズームすると［レポート特性］ダイアログが表示されます。

［レポート辞書］テーブルで、有効なキーは、以下の通りです。

｛F7｝	オプション／レポート実行	カーソルが［名前］欄に位置付けられていて、このレポートの［レポート特性］ダイアログが設定されている場合だけ使用できます。
｛F8｝	オプション／文法チェック	レポートを検査し、エラーが見つかった場合、表示します。
｛Ctrl｝＋{G｝	オプション／プログラム作成	レポートをプログラムに変換します。変換後、もとのレポートと同じ名前でプログラムが［プログラム辞書］テーブルに追加されます。レポートをプログラムに変換したことがわかるように、［レポート辞書］テーブルの右端にチェックマーク（＊）が付きます。 注意：この機能は、開発版でのみ有効です。

レポートの設計は、他のフォームの設計と似ています。詳細は、レポートレイアウトを参照してください。

関連項目

レポート特性

レポート項目テーブル

集計項目テーブル

ブレイクレベルテーブル

ソート定義テーブル


レポート特性

［レポート特性］ダイアログの欄は、３つの部分に分かれています。ダイアログの上の部分は、よく使用される４つの定義テーブルへのエントリ項目から構成されています。各テーブルの設定レコードの数は、自動的に表示されます。これらの数は編集できませんが、関連テーブルにズームするのに使用できます。関連テーブルで行った変更は、「OK」ボタンをクリックするか｛Enter｝キーを押してテーブルから出て［レポート特性］ダイアログへ戻ると自動的に受け付けられます。

［ビュー項目］テーブルは、レポートの明細行の各項目のタイトルとその順序（１列め、２列めなど）を変更するのに使用します。ここから、［ビュー項目］テーブルにズームします。

［集計項目］テーブルは、項目の合計や件数を計算するための集計項目を追加するのに使用します。ここから、［集計項目］テーブルにズームします。

［ブレイク定義］テーブルは、情報をグループ分けしたり、いろいろなレベルにタイトルを追加するのに使用します。詳細については、第４章「グループ分けされたレポートの基本」を参照してください。ここから、［ブレイク定義］テーブルにズームします。

［ソート定義］テーブルは、レポートがアクティブにされたときにデータビューのレコードを並べ替えるソートキーを定義するのに使用します。ここから、［ソート定義］テーブルにズームします。

ダイアログの中央部分は、レポートの出力オプションを制御する５つの欄から構成されています。詳細については、以下の項目を参照してください。

左マージン

罫線タイプ

ページ長,

縮小印刷

レポート幅

ダイアログの下の部分には、［出力先］が表示されます。［出力先］は、レポートの出力先を定義します。出力先には、プリンタ、画面（コンソール）、またはファイルを指定できます。

レポートの設計と印刷に関する詳細は、レポートレイアウトとプリンタ属性のサポートを参照してください。

以下のキーが有効です。

｛F7｝	オプション／標準フォーム作成	標準レポートのレイアウトの自動作成を指示します。このオプションを選択すると、［確認］ダイアログが表示されます（レポートレイアウトについての詳細は、第４章「グループ分けされたレポートの基本」を参照）。
｛F8｝	オプション／フォーム再作成	現在［ブレイク定義］テーブルに指定されている行数を使用した標準レポートのレイアウト作成を指示します。
｛F9｝	オプション／フォーム表示	レポートのレイアウトを作成してある場合に使用できます。完全なレイアウトウィンドウを表示し、レイアウトエディタをアクティブにします。第８章「レイアウトエディタ」を参照してください。
｛Esc｝		テーブルから出るために｛Esc｝キーを押すと、［確認］ダイアログが表示されます。保存するには「Yes」ボタンをクリックし、変更を取り消すには「No」ボタンをクリックします。


ビュー項目

この行にカーソルを移動し、ビュー項目テーブルズームしてください。


集計項目

この行にカーソルを移動し、集計項目テーブルへズームしてください。


ブレイク定義

この行にカーソルを移動し、ブレイク定義テーブルへズームしてください。


出力先

レポートの出力先を定義します。レポートは、コンソール、プリンタ、またはディスクに出力できます。

出力先	パラメータ値	注意
コンソール	CONSOLE	デフォルトです。大文字または小文字で「CONSOLE」と入力します。
プリンタ	PRINTER	大文字または小文字で「PRINTER」と入力します。
ディスク	ファイル名	必要に応じて、絶対パス名で指定します（30文字以内）。

レポートに対してファイル名だけを指定すると、レポートはカレントディレクトリ内のファイルに書き込まれます。ただし、パスを指定すれば、ディレクトリを変更できます。Windowsのファイル命名規則に従ってください。


左マージン

レポートの左側に空白部分（マージン）を残します。マージンのサイズは、文字数であらわします。デフォルトは０で、これは印字が一番左の位置から行われることを意味します。マージンは、０～99文字の範囲で指定できます。


罫線タイプ

レポートに出力される罫線のタイプを選択できます。

罫線タイプを変更するには、「Ｇ」、「Ｒ」、または「Ｎ」と入力するかコンボボックスから罫線タイプをクリックします。

３つの罫線タイプは、以下のとおりです。

Ｇ＝罫線	縦または横の実線で罫線を描きます（デフォルト）。

Ｒ＝破線	縦または横の破線で罫線を描きます。

Ｎ＝なし	横の破線だけを描きます。


縮小印刷

縮小文字の印刷の制御を設定します。印刷されたレポートでのみ意味があります。 ほとんどのプリンタは、標準の10CPI(Characters Per Inch)以外の選択が可能です。

コンボボックスをクリックして、「Yes」または、「No」を選択します。

「Yes」に設定した場合、16.6 CPIに設定されます。これは、使用するプリンタの標準の印字幅を超えて印刷する場合に有効です。例えば、80桁の印字幅に、132桁印字することが可能です。


ページ長

出力ページの長さを定義します。これは、１ページあたりに出力する行数です。このパラメータを実際のフォームの長さに従って正しく設定し、出力ヘッダを最初のページの一番上に位置すれば、ページのヘッダとフッタが正しい位置に自動的に出力されます。デフォルトでは、［出力先］欄として「CONSOLE」を指定したときの［ページ長］の値は「21」になります。「PRINTER」を指定したときは、デフォルト（通常「60」行）に設定されます。


レポート幅

レポートの幅を設定します。レポートレイアウトが作成されている場合だけ表示されます。このパラメータは、レポート幅を設定します。指定した幅に［ビュー項目］テーブルの項目が収まらないときは、メッセージが表示されます。

注意：［オプション／標準フォームの作成］（｛F7｝）を選択するか、表示内容の取り消しを受け付けると、レポート幅はデフォルト値に戻ります。


ソート

この行にカーソルを移動し、ソート定義テーブルへズームしてください。


ビュー項目テーブル

各レコードは、複数の項目欄から構成されています。レポートでの項目の順序は、［ビュー項目］テーブルで定義されています。

レポートごとに１つの［ビュー項目］テーブルが自動的に定義されます。このテーブルは、現在のデータビューに含まれているすべての項目を表示します。このテーブルでは、項目の削除、列単位での項目の順序の変更、項目のタイトルや書式の変更が行えます。さらに、レポートに含める新しい項目（計算項目）をテーブルの一番下に追加することもできます。計算項目は、１つのレコードの１つまたは複数の項目の値をもとにした計算の結果を表示するのに使用します。

計算項目を追加するには、以下の手順に従ってください。

[1]	カーソルをテーブルの一番下に移動します。

[2]	｛F4｝キーを押して、新しい行を作成します。

[3]	項目名を入力して｛Tab｝キーを押します。

[4]	［式］テーブルにズームして式を入力し、「OK」をクリックして戻ります。

関連項目

名前

タイトル

書式

順

式


名前

項目の名前（参照のみ）


タイトル

レポートのタイトル行に出力されるタイトル名。デフォルトでは、項目名と同じです。このタイトルを変更するには、この欄に新しいタイトルを入力します。


書式

各データ項目には、型に密接に関連する書式が必要です。

書式を設定する目的は以下の３つです。

■	データ項目の実サイズと初期書式の定義

■	画面表示またはレポート出力の際のデータ項目の初期書式の置き換え（第９章「フォーム」を参照）。

■	データ項目を現在の型から別の型（数値から文字列など）に変換する方法を指定する式の定義（「18.4 関数」を参照）

書式の使用方法

「書式」とは、dbMAGICに対して、dbMAGICの項目の型の規約に従って項目のフォーマットを定義する方法を伝える文字列です。書式を直接入力して編集したり、［書式］ダイアログを使用したりできます。論理型、日付型、時刻型項目では、最もよく使用される書式が自動的に定義されます。

各書式の詳細な説明は、以下の項目を参照してください。

論理型書式

日付型書式

文字型書式

時刻型書式

数値型書式


オートスキップ：No（デフォルト）

機能指示記号Ａを項目書式に追加するには、「Yes」を選択します。この指示記号は、項目の入力後に次の項目に移動する操作を実行しなくても、カーソルは自動的に次の項目へ移動します。


０値表示：No　文字：

機能指示記号「Ｚ」を項目書式に追加するには、「Yes」を選択します。この指示記号は、表示項目の値が０の場合に、全体を［文字］欄の文字で埋めます。文字を指定しないと、項目は空白になります。


文字型書式

以下の指示に従って、それぞれの設定欄を入力します。

1.	領域１ … 書式マスク

必要なすべての位置指示記号とマスク文字を配置します。詳細は、マスク文字（文字型書式）を参照してください。

2.	領域２ … 機能指示記号用

機能指示記号は、必要な場合は、ダイアログに対する指定に従って書式文字列に自動的に追加されます。文字型書式では、オートスキップだけが有効です。

3.	領域３ … テンプレート

ダイアログボックスの下部の領域は、項目がどのように表示されるかを示す領域です。表示されるマスク文字、画面やレポートフォームに項目が占める位置の数などを示します。

文字型書式の例

項目の内容	書式	書式展開	表示
portability	X6	XXXXXX	portab
portability	UX3	UXXX	Port
portability	XXXXing	XXXXing	porting
realtime	XXXX-XXXX	XXXX-XXXX	real-time
MAGIC	L5	LLLLL	magic

関連項目

オートスキップ

マスク文字（文字型書式）

埋め込み型のマスク文字


マスク文字(文字型書式)

以下の説明に従って、必要なすべての位置指示記号とマスク文字を配置します。

文字型書式用の位置指示記号

指示記号	ここに入るもの
X	任意の文字
U	入力時に大文字に変換する文字
L	入力時に小文字に変換する文字
#	数字（０～９）
	注意：数字を入力したかどうかが確認されます。ほかの文字を入力すると、拒絶されてエラーメッセージが表示されます。


埋め込み型のマスク文字

マスク文字は項目のサイズと内容には影響しません。ただし、文字型の機能指示記号である埋め込み型のマスク文字（E）が指定されると、マスク文字は項目値に物理的に埋め込まれます。


数値型書式

以下の指示に従って、それぞれの設定欄に入力します。

1.	領域１ … 書式マスク

必要な位置指示記号とマスク文字をすべて配置します。詳細は、数値型書式用の位置指示記号を参照してください。

2.	領域２ … 機能指示記号用

機能指示記号は、必要な場合は、ダイアログに対する指定に従って書式文字列に自動的に追加されます。

詳細は、以下の各欄に対する項目を参照してください。

オートスキップ	０値表示

余白埋	負数入力

負数記号	３桁区切り

正数記号	左詰

3.	領域３ … テンプレート

ダイアログボックスの下部の領域は、項目がどのように表示されるかを示す領域です。表示されるマスク文字、画面またはレポートフォームに項目が占める位置の数を示します。

数値型書式の例

項目内容	書式	結果	説明
-1234.56	######.##	^^1234.56
-1234.56	N######.##	^^-1234.56	負を使用できます。
-1234.56	N###,###.##C	^^-1,234.56	カンマの表示
-1234.56	N###,###.##L	-1234.56^^	左詰
-1234.56	N######.##P*	-**1234.56	アスタリスクが余白を埋めます。
0	N######.##Z*	*********	アスタリスクが０値を表示します。
-13.5	N##.##-DB;	DB13.50	負数の符号は'DB'
45.3	N##.##+CR;	CR45.30	正数の符号は'CR'
-13.5	N##.##-(,);	(13.50)	負数符号の前付けは'(' 、後付けは')'
4055.3	$######.##	$^^4055.300	表示のときだけマスク文字を使用します。
（ ^ 記号はスペース１字分を表す）


マスク文字(数値型書式)

数値型書式用の位置指示記号

#	数字の位置
.	小数点の位置

たとえば、'####.###'は４桁の整数部と小数点以下３桁の数値型項目を定義します。


負数入力：No（デフォルト）

機能指示記号「Ｎ」を項目書式に追加するには、「Yes」を選択します。この指示記号は、この項目で負の値を指示できるようにします。「Yes」を指定すると、テンプレートのとおりに書式の表示サイズが自動的に拡大され、符号が表示できます。


３桁区切：No（デフォルト）

機能指示記号「Ｃ」を項目書式に追加するには、「Yes」を選択します。この指示記号は、項目内に３桁区切用のカンマが入るようにします。「Yes」を指定すると、テンプレートのとおりに書式の表示サイズが自動的に拡大され、３桁区切用の位置をあけます。カンマは、動作環境ダイアログの［３桁区切文字］欄で指定する文字に置き換えることができます（「16.1 設定メニュー」を参照）。


左詰：No（デフォルト）

機能指示記号「Ｌ」を項目書式に追加するには、「Yes」を選択します。この指示記号は、項目値を左詰で表示します。デフォルト時には右詰で表示されます。


余白埋：No　文字：

機能指示記号「Ｐ」を項目書式に追加するには、「Yes」を選択します。この指示記号は、数字を含まない表示項目の部分を［文字］欄の文字で埋めます。文字を指定しないと、項目は空白になります。


負数符号：－　後付符号：

負の値の前に通常のマイナス符号「－」とは異なる文字列を表示するには、［負数符号］欄にある「－」を無効にして独自の文字列を入力します。負の値の最後に文字列を表示するには、［後付符号］欄に目的の文字列を入力します。これらの文字列（符号文字列と呼ばれる）は、以下の「符号文字列について」の規則に従って書式文字列に追加されます。

符号文字列について

数値型書式ダイアログの負か正の符号文字列に対して別の設定を行うと、以下のようになります。

a)	機能指示記号「－」または「＋」が書式文字列の最後に追加されます。

b)	符号指示記号の直後に新しい前付符号、カンマ、新しい後付符号、最後にセミコロン「；」の順に続きます。たとえば、'5.2-(,);'は、負の数をかっこで囲む場合のものです。書式'4.3+,CR;-,DB;' は、正の数には後付けとして文字列'CR'、負の数には文字列'DB'を付けることを指定しています。文字列を前付けと後付けに分割するのに使用する文字はカンマです。


正数符号：　後付符号：

正の符号として通常は空白にしているところを文字列で表示するには、［正数符号］欄に目的の文字列を入力します。正の値の最後に文字列を表示するには、［後付符号］欄に目的の文字列を入力します。これらの符号文字列は、以下の「符号文字列について」の規則に従って書式文字列に追加されます。

符号文字列について

数値型書式ダイアログの負か正の符号文字列に対して別の設定を行うと、以下のようになります。

a)	機能指示記号「－」または「＋」が書式文字列の最後に追加されます。

b)	符号指示記号の直後に新しい前付符号、カンマ、新しい後付符号、最後にセミコロン「；」の順に続きます。たとえば、'5.2-(,);'は、負の数をかっこで囲む場合のものです。書式'4.3+,CR;-,DB;' は、正の数には後付けとして文字列'CR'、負の数には文字列'DB'を付けることを指定しています。文字列を前付けと後付けに分割するのに使用する文字はカンマです。


論理型書式

以下の表示に従って、それぞれの設定欄を入力します。

1.	領域１ … 書式マスク：５

詳細は、マスク文字（論理型書式）を参照してください。

2.	領域２ … 機能指示記号用

機能指示記号は、必要な場合には、指定に従って書式文字列に自動的に追加されます。

論理型で有効な機能指示記号は、オートスキップだけです。

3.	領域３ … テンプレート

論理型項目に対してデフォルトの書式５が定義されているため、この領域は最初は、XXXXXとなります。デフォルトの書式を変更すると、この領域には項目の表示方法を示す領域、つまり、表示されるマスク文字、その項目が画面やレポートフォームに占める位置数などが示されます。

論理型書式の例

項目値	書式	結果
１	XXXX	True
１	XXX	Tru
１	X	T
０	XXXXX	False
０	XXX	Fal
０	X	F


マスク文字(論理型書式)

項目型を論理型で定義すると、dbMAGICはデフォルトの書式５（XXXXX）を定義して、その論理値を「True」または「False」として表示します。このデフォルトの書式を変更して、任意の位置指示記号とマスク文字をその中に配置することができます。

論理型書式用の位置指示記号

Ｘは、内部値（１が True、０が False）を表示／入力値に変換するのに使用します。項目で範囲を指定している場合には、「Male（男）、Female（女）」などの代替表示／入力値も使用できます。


日付型書式

以下の指示に従って、それぞれの設定欄に入力します。

1.	領域１ … 書式マスク：##/##/##

項目を日付型として定義すると、デフォルトの書式##/##/##が定義されます。これは、最も一般的な日付の書式です（以下の表を参照）。このデフォルトの書式を変更して、その書式に任意の位置指示記号とマスク文字を入れることができます。

詳細は、マスク文字（日付型書式）を参照してください。

2.	領域２ … 機能指示記号用

機能指示記号は、必要な場合は、ダイアログに対する指定に従って書式文字列に自動的に追加されます。

詳細は、以下の各欄に対する項目を参照してください。

空白詰

オートスキップ

０値表示

3.	領域３ … テンプレート

日付型項目のデフォルトの書式は##/##/##と定義されるため、この領域は最初、［動作環境］テーブルで設定した［日付タイプ］パラメータの値（「Ａ＝アメリカ」、「Ｅ＝ヨーロッパ」、「Ｊ＝日本」）に従って MM/DD/YY、DD/MM/YY、またはYY/MM/DDとなります（「16.1 設定メニュー」で説明）。

デフォルトの書式を変更すると、この領域には項目の表示方法を示す領域、つまり、表示されるマスク文字、その項目が画面やレポートフォームに占める位置数などが示されます。

日付型書式の例

以下の例で使用する日付は1992年3月21日です。したがって、日付項目の内容は西暦1年1月1日からの日数である、727278になります。

書式	結果と注記
MM/DD/YY	03/21/92
DD/MM/YY	21/03/92
YY/MM/DD	92/03/21
DD/MM/YY	［動作環境］テーブルの［日付区切文字］パラメータが「-」に設定されている場合は、21-03-92
DD-MM-YYYY	21-03-1992の「-」はマスク文字
YY.DDD	92.081
##/##/##	［動作環境］テーブルの［日付タイプ］パラメータが「Ａ＝アメリカ」に設定されている場合は、03/21/92
	［動作環境］テーブルの［日付タイプ］パラメータが「Ｅ＝ヨーロッパ」に設定されている場合は、21/03/92
	［動作環境］テーブルの［日付タイプ］パラメータが「Ｊ＝日本」に設定されている場合は、92/03/21
MMMMMMMMMM^DDDD,^YYYY	March^^^^^^21st,^1992
MMMMMMMMMM^DDDD,^YYYYT	調整指示記号（T:空白詰）により March^21st,^1992
WWWWWWWWWW^-^W	Saturday^^^-^7
WWWWWWWWWW^-^WT	調整指示記号（T:空白詰）により Saturday^-^7
（ ^ 記号はスペース１字分を表す）


マスク文字(日付型書式)

日付型書式用の位置指示記号

書式	意味	範囲
DD	月間の「日」の数値	１～31
DDD	年間の「日」の数値	１～366
DDDD	月間の「日」の数値の英語表記	1st、2nd、3rdなどで表示
MM	年間の「月」の数値	１～12
MMM...	月の英語名。'M'は10文字まで。例：January,February。月名が文字列の'M'の数より短い場合は、残りのＭの部分は空白になります。	該当なし
YY	西暦年の下２桁の数値	０～99
YYYY	４桁表示の西暦年。例：1994	該当なし
W	曜日の数値	１～７
WWW...	曜日の英語名。'W'は10まで使用可能。例：	該当なし
	Monday,Tuesday。曜日名が文字列の'W'の数より
	も短い場合は、残りは空白になります。
SS...	曜日の日本名。'S'は２、４、６文字	該当なし
	例：月曜日,火曜日
J	元号の英文字表記	Ｈ、Ｓ、Ｔ、Ｍ
JJ...	元号名。'J'は２、４文字。	該当なし
	例：平成,昭和
/	日付区切文字。この文字は［動作環境］テーブルの［日付区切文字］パラメータで定義された文字に置き換えられます。	該当なし
	「16.1 設定メニュー」を参照。
##/##/##	［動作環境］テーブルの［日付タイプ］パラメータの設定に従った、DD/MM/YY、MM/DD/YY、または YY/MM/DDの表示日付。	該当なし
	「16.1 設定メニュー」を参照。


空白詰：No

機能指示記号「Ｔ」を項目書式に追加するには、「Yes」を選択します。この指示記号は、位置指示記号'WWW...'（曜日名）、'MMM...'（月名）、または'DDDD'（1st, 2ndなどの順序を示す日にち）に空白があれば削除します。

ただし、スペースが必要な場合は、書式文字列にマスク文字として明示的に入れてください（空白には ^ 記号を使用）。例：'TWWWWWWWWW ^DDDDMMMMMMMMM,^YYYY' 。


時刻型書式

以下の指示に従って、それぞれの設定欄に入力します。

1.	領域１ … 書式マスク：HH:MM:SS

項目を時刻型として定義すると、デフォルト書式HH:MM:SSが定義されます（以下の表を参照）。このデフォルトの書式を変更して、その書式内に任意の位置指示記号とマスク文字を入れることができます。

詳細は、マスク文字（時刻型書式）を参照してください。

2.	領域２ … 機能指示記号用

機能指示記号は、必要な場合には、以下の各ダイアログに対する指定に従って書式文字列に自動的に追加されます。

詳細は、以下の各項目を参照してください。

オートスキップ

０値表示

3.	領域３ … テンプレート

時刻型項目のデフォルトの書式は、HH:MM:SSと定義されているため、この領域もデフォルトでは、HH:MM:SSとなります。デフォルトの書式を変更すると、この領域の項目の表示方法を示す領域、つまり、表示されるマスク文字、その項目が画面やレポートフォームで占める位置数などが示されます。

時刻型書式の例

内容	書式	結果	注記
（00:00時からの経過秒数）
30000	HH:MM:SS	08:20:00	24時間制での時刻
60000	HH:MM:SS	16:40:00	24時間制での時刻
30000	HH:MM PM	8:20 am	12時間制での時刻
60000	HH:MM PM	4:40 pm	12時間制での時刻
60000	HH:MM PM	4-40 pm	［動作環境］テーブルで［時刻区切文字］パラメータが「-」に設定されている場合
60000	HH-MM-SS	16-40-00	「-」はマスク文字


マスク文字(時刻型書式)

時刻型書式用の位置指示記号

指示記号	機能	正当な値の範囲の文字
HH	時刻の「時」	00～99
MM	時刻の「分」	00～59
SS	時刻の「秒」	00～59
:	時刻区切位置。この文字は、［動作環境］テーブルの［時刻区切文字］パラメータで定義された文字に置き換えられます。
PM	12時間制で時刻を表示。12時から23時までの時刻はPM指示記号上に「pm」を表示し、0時から11時までは「am」を表示する。	amまたはpm


順

項目が出力される列の番号を示す数字。デフォルトは、データビュー画面での位置と同じです。

項目の位置をレポートの列から列に移動するには、項目の［順］欄の値を新しい配列に合わせて変更します。１列めに位置する項目には数字「1」を、２列めに位置する項目には数字「2」を指定します。

「順」欄の値は、［ビュー項目］テーブルの［#］欄の番号の範囲でなければなりません。テーブルの項目の数を越える数字を入力すると、エラーメッセージが表示されます。項目の位置を１つでも変更したら、ほかの項目の［順］欄の値も変更してください。


式

計算項目のときにだけアクセスできます。この欄の値は、計算項目に対応した計算を定義する式の式番号です。式を定義するには、この欄から、［式］テーブルにズームして式を入力し、「OK」をクリックして戻ります。


集計項目テーブル

［集計項目］テーブルでは、合計を累算してさまざまな項目の集計概要を表示させることができます。１回に１つのレコードの項目の値を「横」に計算させるのではなく、レポートの１つの列に表示されている値を「縦」に計算します。

それぞれの集計項目にビュー項目が対応しており、その列の値の集計が行われます。さらに、レコードをグループ分けした場合は、グループの集計に小計を、レポートの集計に合計を表示させることができます。

データビュー内の項目に関する集計項目を追加するには、以下の手順に従ってください。

[1]	［集計項目］欄から［集計項目］テーブルにズームします。

[2]	新しい行を１行作成します。

[3]	［ビュー項目一覧］にズームします。

[4]	合計を累算する項目を選択します。

選択した項目に従って、デフォルトの集計項目タイプが自動的に設定されます。

■文字型項目を選択すると、「Ｃ＝件数」タイプの集計項目が作成されます。

■数値型項目を選択すると、「Ｔ＝合計」タイプの集計項目が作成されます。これは別の集計項目タイプに変更できます。

関連項目

項目

名前

書式

集計


項目

集計項目に対応したビュー項目のシンボル名（［ビュー項目一覧］と対応しています）。対応させるビュー項目のシンボル名を挿入するには、この欄から［ビュー項目一覧］にズームして、目的の項目をダブルクリックするか、項目を強調表示させてから「選択」ボタンをクリックして戻ります。


名前

集計項目の名前は、項目を選択したときに自動的に転記されます。デフォルト値は、以下のとおりです。

選択した項目の型	設定される名前	設定される集計タイプ
数値型	合計＜名前＞	合計
ほかの型	件数＜名前＞	件数
＜名前＞には、［ビュー項目一覧］の［名前］欄の文字列がそのまま入ります。

集計項目のタイプを修正すると、名前と書式が自動的に変更されます。


書式

集計項目の書式は、項目を選択したときに自動的に転記されます。デフォルト値は、以下のとおりです。

選択した項目の型	設定される書式	設定される集計タイプ
数値型	###,###.##(*)	合計
ほかの型	######	件数
(*)数値型の書式は、対応付したビュー項目の書式によって異なります。

集計項目のタイプを修正すると、名前と書式が自動的に変更されます。書式と書式の編集についての詳細は、第７章「書式の編集」を参照してください。


集計

集計計算のタイプを指定します。タイプは、以下のとおりです。

目的	設定されるタイプ	入力する文字	ビュー項目の型
レコード数のカウント	Ｃ＝件数	Ｃ	すべての型
全レコードの項目値の合計	Ｔ＝合計	Ｔ	数値型
項目の最大値の検索	Ｍ＝最大	Ｍ	数値型
項目の最小値の検索	Ｉ＝最大	Ｉ	数値型

無効な集計タイプを入力すると、ステータス行にエラーメッセージが表示されます。


ブレイク定義テーブル

［ブレイク定義］テーブルには、３つの標準ブレイク定義（レコードブレイク、レポートブレイク、ページブレイク）があり、これらのブレイクは各レポートで自動的に定義されます。このテーブルを使用して、各ブレイクレベルに対応するパラメータを設定すると、追加のブレイク定義を指定したり、レイアウトの各ブレイク定義フォームの行数を修正したり、出力手順を制御したりできます。

新しいブレイクレベルを追加するには、以下の手順に従ってください。

[1]	［レコードブレイク］レベルの下に新しく１行作成します。

[2]	新しい行から［ビュー項目一覧］にズームして、レコードのグループ分けの基本とする項目を選択します。

[3]	新しいレイアウトを作成します。

[4]	［オプション／標準フォーム作成］を選択すると、標準のレイアウトが更新されます。つまり、新しいブレイク定義に従ってレコードの各グループをフレームで囲むボックスが作成さあれ、そこにブレイクレベルを記述するヘッダと、ブレイクレベルに対応している集計項目を表示するフッタが表示されます。このレイアウトは、レイアウトエディタで参照したり編集したりできます（詳細については、第６章を参照）。

テーブルの各行には、そのブレイク定義に関連する設定項目があります。各項目の詳細については、以下の項目を参照してください。

項目	名前

集計印刷	ヘッダ

改ページ	明細

ヘッダ	フッタ

ページ初期化 	ブレイク情報

フッタ	ページチェック

ブレイク印刷

ズームの説明

以下の３つの場合に使用できます。ズーム先は、画面に矢印とコメントで示されます。

a.	カーソルが［項目］欄にある場合は、［ビュー項目一覧］にズームしてブレイク項目を選択できます。

b.	カーソルが［名前］欄にある場合は、関連する［ブレイク情報］ダイアログ（第７章「ブレイク情報ダイアログ」を参照）にズームできます。

c.	カーソルが［ヘッダ］、［明細］、または［フッタ］の欄にある場合は、関連するレポートレイアウトにズームできます。


項目

ブレイク項目として選択した項目のシンボル名


名前

「レコードブレイク」、「レポートブレイク」、「ページブレイク」がデフォルトのブレイク名です。中間グループブレイクの場合、この欄にはブレイク項目として選択した項目の名前が表示されます。


ヘッダ

レポートレイアウトのヘッダ部分の行数。レコードブレイク行にはありません。この欄でヘッダ行を追加または削除できます。


明細

データレコード（明細）部分の行数。レコードブレイク行にだけあります。この欄で明細行を追加または削除できます。


フッタ

レポートレイアウトのフッタ部分の行数。レコードブレイク行にはありません。この欄でフッタ行を追加または削除できます。


ブレイク情報

dbMAGICには、ブレイクが発生するとアクティブになる標準出力手順があります。しかし、この手順を［ブレイク情報］ダイアログで調整することもできます。たとえば、特定のブレイクレベルについて、以下のことを指定できます。

■	集計項目の出力

■	新しいレコードグループを出力する前の改ページ

■	グループごとの開始ページ番号


集計印刷

Yes（デフォルト） … 集計項目を定義している場合は、グループフッタに出力されます。

No … このレベルでは、集計項目は出力されません。


改ページ

No（デフォルト） … 現在のページに新しいグループが出力されます。

Yes … 新しいグループは改ページされて出力されます。


ヘッダ

０（デフォルト） … １グループのレコードの出力中にページブレイクが発生すると、グループヘッダが出力されます。

数値 … 各ページの１行目に、グループヘッダの代わりに出力される補助グループヘッダの行数を指定します

補助グループヘッダ行は、ページブレイクが発生していて、現在のグループのレコード行が残っている場合に、新しいページの１行目に出力されます。このオプションでは、＜前ページの続きです＞などのメッセージを挿入できます。


ページ初期化

No（デフォルト） … グループに関係なく先頭ページからページ番号が付きます。

Yes … このグループブレイクが発生すると、ページ番号が１に戻ります。


フッタ

０（デフォルト） … １グループのレコードの出力中にページブレイクが発生すると、グループフッタが出力されます。

数値 … 各ページの１行目に、グループフッタの代わりに出力される補助グループフッタの行数を指定します

ページブレイクが発生していて、出力する現在のグループのレコード行が残っている場合は、補助グループフッタが現在のページの最後の行に出力されます。このオプションでは、残りのデータを出力する前に、＜次ページに続きます＞などのメッセージを挿入できます。


ページチェック

０（デフォルト） … グループ全体を出力するスペースがない場合でも、そのページの最後の行まで出力します。

数値 … グループブレイクが発生すると、現在のページに定義されている行数を出力するスペースの有無をテストします。十分なスペースがない場合には、新しいグループは改ページされて出力されます。


ブレイク印刷

Ｅ（Ｅ＝毎回、デフォルト） … ブレイク項目の現在の値が、グループの各レコード行に出力されます。

Ｏ（Ｏ＝初回） … ブレイク項目値が各グループの最初の行にだけ出力されます。


ソート定義テーブル

［ソート定義］テーブルでは、レポートをアクティブにするたびにレコードを並べるための基準となるソートキーを定義できます。

ソートキーを定義するには、以下の手順に従ってください。

[1]	［レポート特性］ダイアログの［ソート定義］欄からズームして、このテーブルにアクセスします。

[2]	［ソート定義］テーブルで新しい行を１行作成し、［ビュー項目一覧］にズームしてキーセグメントに設定する項目を選択します。

[3]	［ソート定義］テーブルの［順］欄に移動して、ソート順を「Ａ＝昇順」または「Ｄ＝降順」に指定します（デフォルトは「Ａ＝昇順」）。

［ソート定義］テーブルの各欄の説明は、以下の項目を参照してください。

項目

名前

サイズ

順


項目

［ビュー項目一覧］から選択された項目のシンボル名


サイズ

項目のバイト数。文字型の場合には、カーソルはこの欄に位置されるので、ソート対象の文字数を減らして指定できます。文字型以外のタイプの場合には、カーソルはこの欄には止まりません。


順

昇順／降順。「Ａ＝昇順」がデフォルトです。これは、レコードを項目の値が小さいものから大きいものに並べます。「Ｄ」と入力すると、降順になります。


データベースログイン

データベースには、ユーザ名とパスワードが必要なものがあります。これは、dbMAGICサーバまたはDBMS独自のデータベースサーバの両方に当てはまります。dbMAGICクライアント／サーバモデルを使用してリモートのホストマシン（通常、強力なセキュリティシステムがオペレーティングシステムに組み込まれたミニコンピュータまたはワークステーション）にアクセスする場合はユーザ名とパスワードが必要です。［データベース特性］ダイアログで［ユーザ名］を空欄にすると、このデータベース項目を使用して最初にファイルにアクセスしたときにダイアログがオープンして、ユーザ名とパスワードの入力を求めてきます。

関連項目

ユーザ名

パスワード


ユーザ名

この欄には、ホストのセキュリティシステムによって認識されるユーザ名を設定します。ホストには、このデータベース項目が表示するファイルがあります。[ユーザ名］は保護されていない“MAGIC.INI”に保存されるため、この欄にはシークレット名を使用してください（「12.10 シークレット名テーブル」を参照）。

この欄は省略できます。


パスワード

この欄には、ホストのセキュリティシステムによって認識されるパスワードを設定します。ホストには、このデータベース項目が表示するファイルがあります。［パスワード］は保護されていない“MAGIC.INI”に保存されるため、この欄にはシークレット名を使用してください（第１章「はじめに」を参照）。

この欄は省略できます。


レポート名

作成するレポートの名前を入力します。


削除操作の確認

テーブルの行を削除するときは、dbMAGICは削除操作の確認を必ず行います。


ヘルプの使い方


使用権利

各メニュー項目に権利を割り当てれば、実行時の動作を管理できます。実行時にユーザに権利がない場合には、メニュー項目とそのすべての下位メニューは表示されません。

メニュー項目に権利を割り当てるには、［メニュー］テーブルで目的のメニュー項目を強調表示させ、［タスク環境／特性］を選択します。［メニュー特性］ダイアログで［使用権利］欄に権利番号を割り当てます。


アイコンファイル名

「Ｐ＝プログラム」のタイプのメニューでは、アイコンファイル名を指定できます。アイコンファイルは、MS-WindowsなどのGUIのオペレーティングシステムでプログラムが最少化されたときに使用されるアイコンを含んでいます。この欄が空欄の場合、プログラム内部で定義されたファイル名が使用されます。

メニュー項目にアイコンファイル名を指定するには、［メニュー］テーブルで目的のメニュー項目を強調表示させ、［タスク環境／特性］（｛Ctrl｝＋｛P｝）を選択します。［メニュー特性］ダイアログで［アイコンファイル名］欄にファイル名を入力するか、ズームしてWindowsの［ファイルを開く］ダイアログをオープンしてファイル名を選択します。


画面

［画面］欄では、外部プログラムが表示される方法を設定します。「Ｈ＝なし」、「Ｎ＝通常」、「Ｘ＝最大化」、「Ｍ＝アイコン化」、「Ｃ＝クリア」のどれかに設定します。

■　Ｈ＝なし … 外部プログラムを、現在表示されているウィンドウの裏で実行させます。外部プログラムは見えません。

■　Ｎ＝通常 … デフォルト値。外部プログラムがウィンドウ上で実行されます。

■　Ｘ＝最大化 … 外部プログラムはウィンドウ上で実行され、そのウィンドウが画面いっぱいに最大化されます。

■　Ｍ＝アイコン化 … 外部プログラムが最小化されて実行され、アイコン化されます。

■　Ｃ＝クリア … テキストベースのアプリケーションだけに設定できます。「Ｃ＝クリア」を設定すると、外部プログラムの実行前に、画面がクリアされます。このオプションはラウド(loud)外部プログラム起動とも呼ばれます。OSのコマンドプロセッサをコールする場合、または外部プログラムが画面に出力する場合に使用します。

注意：外部アプリケーションを見えないように実行させている場合には、外部プログラムの標準出力メッセージを、画面からディスクファイルかヌルファイルにリダイレクトすることをお勧めします。


ウェイト

［ウェイト］欄では、dbMAGICがプログラムを続ける場合に、呼び出されているプログラムの完了を待つかどうかを設定します。

■　No … デフォルト値。呼び出されているプログラムの完了を待たないで、プログラムを続けます。

■　Yes … 呼び出されているプログラムが完了してから、プログラムを続けます。


システムメニュー

「Yes」を指定すればタイトルバーの左端に「システムメニュー」ボタンが表示されます。

有効な値は、「Yes」、「No」です。


最大化ボタン

「Yes」を指定すればタイトルバーの右端に「最大化」ボタンが表示されます。

有効な値は、「Yes」、「No」です。


アイコン化ボタン
最小化ボタン

「Yes」を指定すればタイトルバーの右端に「最小化」ボタンが表示されます。

有効な値は、「Yes」、「No」です。


スタティックタイプ

フォームに配置したスタティックコントロール（グループ、テキスト、直線、四角形、楕円形）の型を表示します。この設定は、スタティックコントロールをフォームに配置すると、自動的に定義されます。

［スタティックタイプ］パラメータでズームすると、ダイアログが表示されます。

このダイアログボックス内のパラメータはすべて、ドロップダウン一覧にリストで表示されます。以下に、各パラメータについて説明します。

■　右上がり対角線 … スタティックコントロールの右上から左下への対角線を表示します。

■　右下がり対角線 … スタティックコントロールの左上から右下への対角線を表示します。

■　水平線 … スタティックコントロールを水平線として定義します。

■　垂直線 … スタティックコントロールを垂直線として定義します。

■　四角形 … スタティックコントロールを四角形として定義します。

■　楕円形 … スタティックコントロールを楕円形として定義します。


インタフェースタイプ

クラス値０のフォームの場合、インタフェースタイプはＧＵＩ形式です。クラス値が１以上のフォームの場合、［フォーム］テーブルのインタフェースタイプのコンボボックスをクリックして、以下の２種類の値のどちらかを選択します。

■	ＧＵＩ形式（デフォルト）

■	テキスト形式

テキスト形式フォームでの互換性がないコントロールを含む、クラス値１以上のＧＵＩ形式フォームをテキスト形式に変換する場合、「警告：変換すると既存のコントロールを修正したり、削除したりすることがあります」というメッセージがステータス行に表示され、「変更しますか？」というダイアログが表示されます。変更する場合は、「Yes」ボタンを選択します。フォームと既存のコントロールはテキスト形式の規則に従って変換されます。テキスト形式に適合しないコントロールは、削除されます。


子ウィン（子ウィンドウ）

レポートフォームの場合、［子ウィン］欄は無効です。クラス値０のフォームの場合、フォームテーブルの［子ウィン］欄のコンボボックスをクリックして、「Yes」または「No」を選択します。

■ Yes 	…  セカンダリウィンドウ（子ウィンドウ）としてオープンされます。

■ No 	…  デフォルト値。メインウィンドウとしてオープンされます。


入出力特性ダイアログ

自動ページヘッダとページフッタの機能が提供されます。

ページヘッダは全ページの最初に印刷され、ページフッタは最後に印刷されます。

dbMAGICの標準的な印刷メカニズムで有効なページサイズは、［用紙の高さ］－［ページヘッダフォームの高さ］－［ページフッタフォームの高さ］です。

この領域中で、dbMAGICのページブレイクメカニズムは以前のバージョンと同様に動作します。これは、ヘッダフォームの自動印刷も含まれます。

各パラメータについては、以下のトピックを参照してください。

ペーパーサイズ

ページヘッダ

ページフッタ


ペーパサイズ

プリントジョブが使うペーパサイズを定義します。

Windowsに任せるには「D=デフォルト」を選びます。あるいは、リストの中から１つ選びます。もし、選ばれたペーパサイズを実行時に設定したプリンタがサポートしていなければ、dbMAGICはそのプリンタのデフォルトサイズに戻します。


ページヘッダ

どのフォームをページヘッダとして使うかを設定します。これはカレントタスクだけで有効です。もし、この欄の値が「１」以上の時、dbMAGICはここで設定されたフォームの高さだけページサイズを減らします。

各ページではここで設定されたフォームがページの最初のフォームとして印刷されます。全ての他のヘッダとして定義されたフォームはページヘッダのあとに印刷されます。ページヘッダのためのデータ出力コマンドは必要ありません。

ページヘッダフォームを印刷する直前に、dbMAGICはページヘッダイベントを出します。このイベントはCTLレベル、あるいは、タスクレベルでイベントトリガとして使えます。このイベントトリガはページヘッダフォームの中で印刷される変数を項目更新するために使えます。このイベントは開発者がページブレイクに対応するために出されます。

注意： ページヘッダ及びページフッタアクションで起動されるイベントが定義されていてもいなくても、設定されたフォームは印刷されます。


ページフッタ

どのフォームをページフッタとして使うかを設定します。これはカレントタスクだけで有効です。もし、この欄の値が「１」以上の時、dbMAGICはここで設定されたフォームの高さだけページサイズを減らします。

各ページではここで設定されたフォームがページの最後のフォームとして印刷されます。ページフッタのためのデータ出力コマンドは必要ありません。

注意： ページヘッダ及びページフッタアクションで起動されるイベントが定義されていてもいなくても、設定されたフォームは印刷されます。

注意： 印刷する最後の用紙のページフッタフォームはタスクの終了プロセスの中で印刷されます。このためページフッタアクションで起動されるイベントがタスクイベントの場合には、最後の用紙のページフッタアクションではこのイベントはコールされません。しかし、これがアプリケーションイベントの場合には最後の用紙のページフッタアクションでもこのイベントはコールされます。


名前

［ビュー項目一覧］からの項目名


コントロールパレット

［コントロール］パレットには、フォームに配置できる、各種のコントロールが表示されます。パレットからコントロールを選択し、｛Ctrl｝を押したまま、そのコントロールを配置する位置でマウスをクリックすると、同じ種類のコントロールを繰り返し配置できます。または、パレット内でアイコンをダブルクリックすれば、そのコントロールをフォームの左上に直接配置できます。

各コントロールの簡単な説明は、下図の各アイコンをクリックして参照することができます。

各コントロールに関する詳細は、以下の項目を参照してください。

スタティックコントロール (Text, Line, Rectangle, Ellipse, Group)

プッシュボタン

エディットコントロール

スライダ

チョイスコントロール

チェックボックス

イメージコントロール

OLEコントロール

直線

テーブルコントロール

コントロール特性

コントロールの使用に関する詳細は、以下の項目を参照してください。

コマンドパレット

ビュー項目パレット

コントロールの編集方法

テーブルコントロールの使用方法

コンテキストメニュー

キーボードコマンド


ビュー項目パレット

［ビュー項目］パレットは、［コントロールツールパレット］と同じ領域にあります。この２つのパレットを切り替えるには、パレットの下にあるタブラベルをクリックします。

タスクとその上位タスクで使用できる値は、リストボックスに表示されます。リストの１つの行は、ID（英字）と項目名、そして変数か実項目かの区分（実項目の場合、ファイル名が表示されます）で構成されています。

タスクの境界には、セパレータが表示され、その中央にタスク名が表示されます。

［ビュー項目］パレットは［設定／パレット表示］で、表示／非表示が切り替えられます。表示／非表示の設定は、再度フォームエディタを起動しても維持されます。

ビュー項目は、他のコントロールと同じように、フォームにドロップできます。 ビュー項目の選択を取り消すには、｛Esc｝を押すか、タスク名の表示されているセパレータをクリックします。

ビュー項目を、テーブルコントロールにドロップすると、コントロールをドロップして、対応する列のタイトルを作成して付加するのと同等の操作が実行されます。

以下に、［ビュー項目］パレットでの動作を説明します。

-	作成されたコントロールをドロップした位置の右に配置します。

-	エディットコントロールの場合は、タイトルコントロールとして、ビュー項目の名前をスタティックコントロールにしてドロップした位置の左に配置し、作成されたコントロールを、そのタイトルコントロールの右側に配置します。

-	｛Shift｝キーを押しながらドロップした場合は、タイトルコントロールは作成されません。


フォームエディタツールバー

フォームエディタツールバーには、開発モード用ツールバーと同じボタンに加えて、いくつかのボタンが追加されています。

注意： 元に戻すことのできる操作は、１０までバッファに保存されますが、特性の編集中に、式を削除した場合は、［元に戻す］が無効になり、バッファもクリアされます。


コマンドパレット

［コマンド］パレット、プルダウンメニュー内の「整列」や「サイズ」、「コンテキストメニュ」ーを使用して、フォーム上に配置したコントロールを編集できます。［コマンド］パレットには、コントロールの整列、サイズ変更、Ｚオーダの変更を行うためのツールがあります。

［コマンド］パレット内の各ボタンの簡単な説明は、下図で各ボタンをクリックして参照することができます。

詳細は、以下の項目を参照してください。

コントロール

概念

コントロールパレット

コントロール特性

コントロールの編集方法

テーブルコントロールの使用方法

コンテキストメニュー

キーボードコマンド


コントロールの編集方法

コントロールを編集するには、プルダウンメニュー、コンテキストメニュー、［コマンド］パレット、［コントロール］パレットを使用します。メニューバーの項目とコンテキストメニューの項目は、コンテキストに応じて有効／無効になります。

コンテキストメニューの使用方法

コンテキストメニューは、マウスの右ボタンを押すと表示されるポップアップメニューです。このメニューに表示される項目は、そのときの編集状態によって異なり、プルダウンメニュー内で有効な項目に対応しています。選択項目は、［コマンド］パレットと［コントロール］パレットに表示される項目と同じです。

コマンドパレットの使用方法

［コマンド］パレット、プルダウンメニュー内の「整列」や「サイズ」、「コンテキストメニュー」を使用して、フォーム上に配置したコントロールを編集できます。［コマンド］パレットには、コントロールの整列、サイズ変更、Zオーダの変更を行うためのツールがあります。

コントロールの追加

フォームに新しいコントロールを追加する一番簡単な方法は、［コントロール］パレット からコントロールを選択し、フォームを配置するところへカーソルを移動して、クリックします。コントロールを選択すると、カーソルの形がパレットに表示されているアイコンと同じ形になります。

［コントロール］パレット上のコントロールをダブルクリックすると、そのコントロールがフォームに直接配置されます。

マウスの右ボタンを押して、コンテキストメニューを表示させ、その中の［コントロール追加］メニューを表示させて追加することもできます。また、  Insert  を押すと、この［コントロール追加］メニューが表示されます。

同じ種類のコントロールを続けて追加するには、以下の手順に従ってください。

[1]	［コントロール］パレットからコントロールを選択します。

[2]	｛Ctrl｝を押したままにします。

[3]	追加するコントロールと同じ回数だけマウスをクリックして、コントロールを配置します。

[4]	｛Ctrl｝を放します。

追加しようとしたコントロールを［コントロール］パレットから選択したあとで、その配置をやめる場合には、「カーソルツール」ボタンをクリックしてください。マウスポインタが通常の矢印の形に戻ります。

コントロールの複写

フォームに配置したコントロールと同じものを、Windowsのクリップボード経由で複写して追加配置できます。コントロールを選択して、メニューの［編集／コピー］と［編集／貼り付け］を選択してください。

１つのタスク内で、コントロールを複写して貼り付けると、［ビュー項目］や［ヘルプ画面］などの、式や参照値を入力する属性も同時に複写されます。

コントロールの削除

フォームからコントロールを削除するには、コントロールを選択して｛Delete｝を押すか、コンテキストメニューから「Ｄ：コントロール削除」を選択します。

コントロール特性の編集

フォーム上のコントロールの特性は変更できます。コントロールを選択してズームまたはダブルクリックすると、［コントロール特性］ダイアログが表示されます。ダイアログ内のパラメータは、コントロールの種類によって異なります。選択されていないコントロールの［コントロール特性］ダイアログを表示するには、マウスポインタがコントロール上にある状態で、マウスの右ボタンをクリックし、コンテキストメニューから「特性」を選択します。

複数のコントロールの選択

フォームの編集中に、複数のコントロールを同時に編集したり、整列したりすることができます。フォームエディタで複数のコントロールを選択するには、いくつかの方法があり、［コマンド］パレット、プルダウンメニュー、コンテキストメニューのいずれかを使用します。

複数のコントロールを選択するには、｛Ctrl｝を押したまま、各コントロールをクリックします。または、マウスをクリック、ドラッグして、選択するコントロールを破線で囲みます。選択したコントロールの周囲に表示される破線のボックスを「選択フレーム」と呼びます。

コントロールが選択してあり、さらに別のコントロールを追加選択する場合や、選択しているコントロールの一部を選択解除する場合は、｛Ctrl｝を押したまま、追加選択または選択解除するコントロールをクリックします。１つのコントロールの選択を解除するには、｛Ctrl｝を押したまま、そのコントロールをクリックします。

コントロールの移動とサイズ変更

コントロールを移動するには、コントロールを選択してから、目的の位置までドラッグします。

コントロールのサイズを変更するには、コントロールを選択してから、マウスポインタが両方向の矢印に変わる端や角にまで移動し、境界線をドラッグします。

キーボードでコントロールを移動するには、  Tab  でコントロールを選択してから、矢印キーを使用して、選択したコントロールを移動します。目的の位置まで移動したら、｛Enter｝を押して、コントロールをその位置に確定します。取り消す場合は、｛Esc｝を押します。

キーボードでコントロールのサイズを変更するには、｛Tab｝でコントロールを選択して｛Shift｝＋矢印キーを使用して選択したコントロールのサイズを変更します。

すでにフォームに配置されているコントロールに対して、［コントロール特性］ダイアログ内の［上辺位置］と［左辺位置］に正確なX座標とY座標を設定することもできます。

選択されたコントロールや可変フレームを書式で定義されたサイズに合わせるには、ボタンをクリックします。

複数コントロールのサイズ変更

コントロールを複数選択して、それらのすべてが、最大または最小のコントロールと同じ大きさになるようにサイズ変更できます。たとえば、以下の手順で、複数のプッシュボタンをすべて、一番幅広のボタンと同じ幅に合わせることができます。

[1]	マウスのクリックとドラッグで、複数のプッシュボタンを選択します。プッシュボタンは、破線の選択フレームで囲まれます。

[2]	幅最大化ボタンをクリックするか、［サイズ／幅最大化］をプルダウンメニューかコンテキストメニューから選択します。これで、すべてのボタンが一番幅広のボタンの幅に合わせてサイズ変更されます。

すべてのボタンの高さを、一番短いボタンに合わせるには、高さ最小化ボタンをクリックするか、プルダウンメニューかコンテキストメニューから［サイズ／高さ最小化］を選択します。

複数コントロールの整列

複数のコントロールは選択フレームの左側、右側、上側、下側、水平方向の中央、垂直方向の中央に整列することができます。また、フォーム全体の水平方向の中央、垂直方向の中央にも整列できます。

複数のコントロールを整列するには、以下の手順に従ってください。

[1]	整列するコントロールをマウスで選択します。選択したコントロールは、強調表示され、選択フレームで囲まれます。

[2]	［コマンド］パレットのボタンのどちらかをクリックするか、マウスの右ボタンを押して、コンテキストメニューを表示します。

たとえば、複数のプッシュボタンを、選択フレーム内の水平方向の中央に整列して並べる場合は、コントロールを選択してから、選択水平センタリングボタンをクリックするか、［整列／選択水平センタリング］をプルダウンメニューかコンテキストメニューから選択します。

複数のコントロールをフォームの中央にそろえるには、コントロールを選択してから、水平センタリングボタンをクリックするか、［整列／水平センタリング］をプルダウンメニューかコンテキストメニューから選択します。

Ｚオーダの定義と変更

フォームにコントロールを配置すると、コントロールのZオーダが自動的に定義されます。Zオーダは、コントロールがフォームレイアウト上に配置される順序です。ボタンをクリックすると、フォームレイアウト内の自動Zオーダが無効になり、Zオーダが自動的に定義されなくなります。

フォーム内のすべてのコントロールのZオーダを表示するには、［コマンド］パレット内のZオーダボタンをクリックします。各コントロールの横に丸付き数字でコントロールのZオーダが表示されます。ボタンを再度クリックすると表示は消えます。

フォーム上のコントロールのZオーダを変更するには、コンテキストメニュー内の［自動Zオーダ］のチェックを外してから、コントロールを選択して、［コマンド］パレットまたはコンテキストメニューの［並べ換え］を使用して、コントロールを前面や背面に移動させます。


テーブルコントロールの使用方法

テーブルコントロールは、２つの部分から構成されます。

■ タイトル領域

■ 繰り返し領域 … 表の明細行が表示されます。

１つのフォームに配置できるテーブルコントロールは１つだけです。フォームにテーブルコントロールを配置すれば、スクロールできる複数行が１列表示され、行やタイトルの高さを調節したり、タイトル領域にテキストを貼り付けたりできます。また、列を分割したり、新しい列を挿入したり、列の大きさを拡大したり、削除したりすることもできます。

リンクボタンを使用して、テーブルにコントロールを配置するには、以下の手順に従ってください。

[1]	コントロールを選択します。

[2]	リンクボタンをクリックして、新しいコントロールを配置したい列の右側になる列にリンクカーソルを移動し、クリックします。

プッシュボタンやエディットコントロールなど、そのほかのコントロールを、先頭行の任意の位置に配置すれば、これらをテーブルの繰り返し領域に配置できます。先頭行に配置されたすべてのコントロールは、以降のすべての行でも先頭行内の位置と同じ位置に配置されます。複数のコントロールを同じ位置に重ねて配置したり、［コントロール特性］ダイアログの［可視］パラメータに式を設定して、それらのコントロールの表示／非表示を動的に切り替えたりすることもできます。

［テーブルへの配置］ボタンを使用すれば、選択したコントロールをもとにして、テーブルコントロールを自動的に設計させることができます。

注意： テーブル内に配置されたコントロールは子のコントロールとしてテーブルにリンクされます。テーブルを移動すると、それらの子のコントロールも移動します。

■ 新しいコントロールがテーブルコントロールにドロップされると、カーソルの位置に新しい列が挿入され、フォーム内のコントロールの名前がテーブルの列のタイトルとして付加されて、その列にコントロールが配置されます。ドロップする際に｛Shift｝キーを押すと、タイトルは付加されません。

■ テーブルにコントロールのリストが貼り付けられる場合、常にテーブル内の既存のコントロールにアペンドされます。

■ テーブルからコントロールを削除すると、対応するタイトルや列も削除されます。

■ テーブルに既に存在しているコントロールを、更にテーブルに配置した場合、そのコントロールは現在の位置から削除され、テーブルの最後にアペンドされます。

■ テーブル領域外の選択された複数のコントロールを、テーブルの列を指定してリンクすると、コントロールが選択されたのと同じ順序で、それぞれのコントロールに対応する新しい列が挿入されます。リンクする際に｛Shift｝キーを押すと、各列にはタイトルは付加されません。

■ テーブル領域外の選択された複数のコントロールを、｛Alt｝キーを押したまま、テーブルの列を指定してリンクすると、行の高さが調節されて、コントロールが列に追加されます。リンクする際に｛Shift｝キーを押すと、各列にはタイトルは付加されません。

■ 列の区切りを、挿入モードで（｛Ctrl｝キーを押して）移動した場合には、それ以降の列の全てのコントロールは、それに応じて再配置されます。

行の高さの調整

行の高さを変更するには、先頭行の区切り線の下側をクリックして目的の高さになるまでドラッグします。ほかのすべての行は、先頭行の高さと同じ高さになるように自動調整されます。

テーブルの行の高さの最小値は、１寸法単位です。

テーブルのタイトルバーの調整

テーブルのタイトルバーの高さを変更するには、タイトルバーの区切り線の下側をクリックして目的の高さまでドラッグします。

テーブルのタイトルバーの高さの最小値は、１寸法単位です。

見出しのタイトルバーへの追加

列の見出しをテーブルのタイトルバーへ追加するには、テキストを配置し、そのテキストの［コントロール特性］の［スタイル］パラメータを「２＝平面」に、［境界］パラメータを「Ｎ＝なし」に設定します。

テーブルの列の分割

テーブル内にすでにある列を分割するには、以下の手順に従ってください。

[1]	カーソル形状が境界線をはさむ平行線の形になるように、カーソルをテーブルの左境界線に合わせます。

[2]	カーソルを列の区切りを配置する位置までドラッグします。

テーブルの列の最小幅は、１寸法単位または垂直方向型スライダの幅です。

テーブル内にすでに列がある場合は、その列の両脇に点線が表示されます。これらの点線は、すでにある区切りと近すぎて、新しい区切りを配置できない領域を示しています。

列の挿入

すでに存在する列を右へ押し出す形式で、新しい列を挿入するには、以下の手順に従ってください。

[1]	カーソル形状が境界線をはさむ平行線の形になるように、カーソルをテーブルの左境界線に合わせます。

[2]	｛Ctrl｝を押したまま、挿入する列の右側の区切りを配置する位置までカーソルをドラッグします。このとき、右方向へ移動する既存の列が白線で表示されます。

列の区切りの移動

テーブルの大きさを変更しないで、テーブルの列の幅を変更するには、列の区切りまでドラッグしてクリックします。

単一の列の幅の変更

挿入と同様に、ほかの列の幅を変更しないで、１つの列の幅だけを変更するには、 Ctrl を押したまま、その列の右側の区切りまでドラッグします。テーブル全体が、その列の幅の変更に合わせてサイズ変更されます。

列の削除

テーブルの列を削除するには、削除する列の右側の区切りを左側の区切りに重なるまでドラッグします。テーブルの大きさは変わりません。

テーブルコントロール上へのコントロールの配置

コントロールは、選択後、フォームのテーブルコントロール上に自由に配置できます。

テーブルコントロールを自動的に設計することもできます。テーブルコントロールを自動的に設定するには、以下の手順に従ってください。

[1]	テーブル上に表示するコントロールをすべて配置し、それらの［コントロール特性］を設定します。

[2]	フォーム上に空白のテーブルコントロールを配置します。どんなサイズでもかまいませんが、フォーム上の左上の正しい位置に配置します。

[3]	｛Ctrl｝を押したまま、テーブル内に表示する順序で、コントロールを選択します。

[4]	最後にテーブルコントロール自身を選択します。

[5]	［テーブルへの配置］をコンテキストメニューかプルダウンメニューから選択します。または、［整列／サイズ］パレットのテーブルへの配置ボタンを押します。

これで、選択したコントロールが、スクロール可能なテーブルコントロール内に選択した順序で配置されるようになります。それぞれのコントロールは１つの列に表示され、その列の幅は、それぞれのコントロールの幅に等しくなります。各列のタイトル領域には、テキストが自動的に配置され、コントロール内で指定されているビュー項目の名前が設定されます。立体のコントロールはすべて、立体のテーブル内では平面に変更されます。

新しいコントロールをテーブルコントロールにドロップされると、カーソルの位置に新しい列が挿入され、コントロールはそこに配置されます。ドロップする際に  Shift  キーを押すと、タイトルは付加されません。テーブルがからのときは、列は挿入されません。

テーブルコントロールをドラッグして移動すると、テーブルにリンクされたすべてのコントロールが移動します。リンクにより、テーブルやその中のすべてのコントロールを一つの単位として移動することが可能になります。

テーブルにコントロールのリストが貼り付けられる場合、常にテーブル内の既存のコントロールにアペンドされます。タイトルは、それぞれが移動された後、再作成されます。

コントロールの削除

テーブルからコントロールを削除すると、そのコントロールの配置されていた列とそのタイトルも削除されます。

コントロールの移動

追加しようとするコントロールがすでにテーブルにある場合、現在の位置から削除され、テーブルの最後に付け加えられます。

選択されたコントロールの挿入

テーブル領域外の選択された複数のコントロールを、テーブルの列を指定してリンクすると、コントロールが選択されたのと同じ順序で、それぞれのコントロールに対応する新しい列が挿入されます。リンクする際に｛Shift｝キーを押すと、各列にはタイトルは付加されません。

テーブル領域外の選択された複数のコントロールを、｛Alt｝キーを押したまま、テーブルの列を指定してリンクすると、行の高さが調節されて、コントロールが列に追加されます。リンクする際に｛Shift｝キーを押すと、各列にはタイトルは付加されません。

列の区切りを、挿入モードで（｛Ctrl｝キーを押して）移動した場合には、それ以降の列の全てのコントロールは、それに応じて再配置されます。


コントロールの親子リンク

親子リンクはコントロールを１つの単位に結合する方法の１つで、編集時や実行時のコントロールの動作に影響を与えます。

フォームの編集時

■ フォームエディタでリンクを作成します。

■ 全てのコントロールは、デフォルトで、フォームに子としてリンクされています。

■ どのコントロールも、フォーム以外のコントロールを親としてリンクできます。

■ 他のコントロールの親であっても、子として別の親にリンクできます。このように、フォームを最上位とした、全てのコントロールのツリーが作成されます。

■ 一つの親コントロールに複数のコントロールを子としてリンクできます。

■ 親子関係は、循環できません。

■ テーブルコントロールを親としてリンクされているコントロールは、子のコントロールを持つことはできません。

実行時の動作

■ 親コントロールが非表示になると、その子コントロールは全て非表示になります。

■ 親コントロールが無効になると、その子コントロールは全て無効になります。

■ 子コントロールにヘルプが定義されていない場合、ヘルプ定義がされているコントロールが見つかるまで、上位方向に探索します。

注意： 最上位のコントロールはフォーム自身になります。

チョイスコントロールの親子リンク動作

コントロールのグループの親がチョイスコントロール（ラジオボタン、タブコントロール、リストボックス、コンボボックス）の場合、子はコントロールだけでなく、コントロールの選択肢にもリンクできます。この場合、親は選んだ選択肢にリンクされている子コントロールのみを表示します。

チョイスコントロールのどの選択肢にもリンクしていない子は、選んだ選択肢にかかわらず、表示されます。

親子関係の作成

親子関係を作成する場合、以下の手順に従ってください。

[1]	子になるコントロールを選択します。

[2]	ボタンをクリックします。マウスカーソルの形が変わります。

[3]	マウスカーソルを親コントロールの上に移動させ、クリックします。

これで、親子関係が作成されました。親コントロールに階層がある場合、子は表示されている階層にリンクしています。

■ リンクツール使用時、マウスカーソルを、親にしたいコントロール上でクリックした際に、親子関係が循環してしまう場合は、マウスカーソルの形状が通常の矢印に変わり、クリックは無効になります。

■ 親子リンクを解除したい場合は、親と、親子関係を解除したい子コントロールを全て選択し、ボタンをクリックします。

■ コントロールパレットから選択したコントロールやビュー項目をドラッグしている時に、その位置でドロップした場合に親となるコントロールやテーブルの列が強調表示されます。

■ マウスボタンを押した時に、選択されたコントロールの親の周囲に枠が表示されます。

■ グループやテーブル、タブ見出し、四角形、楕円形の領域の範囲内に、コントロールがドロップされた場合、その領域のコントロールの子として作成されます。

■ ドロップしたコントロールが、階層を持ったコントロールの子として作成された場合、子は現在の階層にリンクされます。現在の階層が指定されていない場合は、コントロール全体が親としてリンクされます。

階層を持っている親が、階層を変更した場合、その階層にリンクされた子が表示され、他の階層の子は表示されなくなります。

■ 親コントロールを選択すると、その子コントロールは全てマークされます。

親コントロールの選択を解除すると、その子コントロールの全ての選択が解除されます。

コントロールツリー

■ ［コマンド／コントロールツリー］を選択すると、フォームエディタ上にフローティングウィンドウが表示され、フォーム上のコントロールが、それらの親子関係に基づいたツリーの形で表示されます。


コントロール特性－詳細

データ

データは、ビュー項目（値）または式として定義します。

■データ … 現在の位置に対して表示項目として選択されているビュー項目のシンボル名です。ビュー項目を選択するには、［値］欄にビュー項目のシンボル名を直接入力するか、ズームして［ビュー項目一覧］から選択します。

■式 … 現在の位置に対して表示項目として選択されている式の識別番号です。式を選択するには、［値］欄を空白にして、［式］欄から［式］テーブルにズームします。

暗黙に決定される式の型が、［型］欄に表示されデフォルト値を変更できます。これは、チョイスコントロール、スライダ、イメージ、OLEでは無効です。

式を表示項目としてレイアウトする場合は、数値型は４桁表示、文字型は30文字がデフォルト値です。この設定は、表示項目の実サイズに合わせ、必要に応じて変更できます。

式の型を変更して、表示書式を変更することもできます。

ビュー項目

ビュー項目の名前を表示します。

コントロール名

この欄は、クラス値０のフォームにおいてコントロールに名前を厳密に付ける機能を提供し、関数によって参照します。詳細については、「18.5　関数一覧」の関数を参照してください。

有効値：文字列

注意： コントロール名は、大文字と小文字を区別します。先頭及び末尾の空白は重要です。

最大の長さ：128文字

書式

エディットコントロール及びプッシュボタンで表示されます。この項目にデータ辞書で設定されている書式を指定します。この書式は、ここで編集できますが、表示用の書式にすぎません。デフォルト値は、その項目の［項目］テーブルの設定と同じです。

［式］テーブルにズームして、コントロールの書式を調整する値を求める式を入力することによって、実行時に値を設定できます。

型

表示項目として選択したビュー項目または式の型を表示します。［型］パラメータのデフォルト値は空白です。このパラメータは、表示項目が式の場合にだけ変更できます。

ラベル

コントロールに、説明のためのラベルを設定します。

イメージボタン

プッシュボタンにだけ設定でき、プッシュボタンのデザインを設定します。このパラメータを「No」に設定すると、デフォルトのWindowsのボタンデザインが使用されます。独自のデザインを使用する場合は、「Yes」に設定します。この場合は、以下の形式でビットマップ（BMP）ファイルを用意してください。

│フォーカス│選択│無効│デフォルト│

この書式で、フォーカス、選択、無効、デフォルトのそれぞれの状態のボタンに表示されるイメージを指定します。通常は、デフォルトのイメージが表示されます。

ビュー項目または式として［データ］パラメータか、［デフォルトイメージファイル名］パラメータにBMPファイル名を指定します。

デフォルトイメージファイル名

［イメージボタン］パラメータが「Yes」に設定されたプッシュボタンにだけ設定できます。プッシュボタンに表示するBMPファイル名を指定します。

アクション

プッシュボタンにだけ設定でき、エンドユーザがボタンを押したときに、dbMAGICに渡されるアクションを設定します。ズームまたはダブルクリックで、［アクション一覧］からアクションを選択してください。

スタティックタイプ

フォームに配置したスタティックコントロール（グループ、テキスト、直線（エディットボックス内に配置）、四角形、楕円形）の型を表示します。この設定は、スタティックコントロールをフォームに配置すると、自動的に定義されます。

テキスト形式フォームは、クラス値１以上でサポートされます。サポートされるスタティックタイプは、テキスト、水平線、垂直線です。［テキスト］が定義された場合、スタティックタイプは無効になります。スタティックタイプが定義された場合、［テキスト］は無効になります。テキスト形式フォームではサポートされないほかのパラメータも、ダイアログ内では無効になります。

［スタティックタイプ］パラメータでズームすると、［スタティックタイプ］ダイアログが表示されます。

このダイアログボックス内のパラメータはすべて、コンボボックスで表示されます。以下に、各パラメータについて説明します。

■右上がり対角線 … スタティックコントロールを右上から左下への対角線として定義します。

■右下がり対角線 … スタティックコントロールを左上から右下への対角線として定義します。

■水平線 … スタティックコントロールを水平線として定義します。

■垂直線 … スタティックコントロールを垂直線として定義します。

■四角形 … スタティックコントロールを四角形として定義します。

■丸四角形 … スタティックコントロールを丸四角形として定義します。

■楕円形 … スタティックコントロールを楕円形として定義します。

テキスト

スタティックコントロールに表示されるテキストを設定します。

範囲

スライダーコントロールで設定するパラメータです。

範囲は、特定の数値項目で、スライダが表す値の大きさを設定します。


コントロール特性－入力属性

必須入力

エンドユーザがこのコントロールを編集しなければならないかどうかを設定します。［式］テーブルに式を設定すると、実行時に値を設定できます。

データ入力

実行時に、コントロール内の値をエンドユーザが変更できるかどうかを設定します。「No」に設定すると、エンドユーザは、このコントロールにアクセスできません。「Yes」に設定すると、エンドユーザは、コントロール内の値を修正できます。

漢字入力

  ［漢字入力］パラメータは、かな漢字変換プログラム（ＩＭＥ）を自動起動するためのものです。かな漢字変換プログラム（ＩＭＥ）を手動で起動する場合は、特にこのパラメータの設定は必要ありません。

かな漢字変換入力モードの値を返す式を［式］テーブルに設定し、その式番号をこのパラメータに設定します。ただし、式が返す値は０～９で、式番号は 255 以下でなければなり ません。

各値に対するかな漢字変換入力モードは、以下のようになります。

値	入力モード	サイズ	入力方法	入力例
０	ＯＦＦ	------	--------	-------------------
１	全Ｒかな	全角	ローマ字	かな
２	全かな	全角	直接	のちみち（ＫＡＮＡ）
３	全Ｒカナ	全角	ローマ字	カナ
４	全カナ	全角	直接	ノチミチ（ＫＡＮＡ）
５	半Ｒカナ	半角	ローマ字	ｶﾅ
６	半カナ	半角	直接	ﾉﾁﾐﾁ（KANA）
７	全英数	全角	直接	ＫＡＮＡ
８	半英数	半角	直接	KANA
９	----------	------	--------	-------------------
注意： 数値項目に対しては、このパラメータは表示されません。漢字入力を「ON」にする場合、使用するかな漢字変換プログラム（ＩＭＥ）をあらかじめインストールしておかなければなりません。

複数行編集

エディットコントロールとスタティックコントロールに対して有効です。コントロールが複数行のテキストを含むことができるかどうかを設定します。

垂直スクロール

［複数行編集］パラメータが「Yes」に設定されているコントロールに対して有効です。コントロール内の行間で、垂直方向のスクロールができるようになります。

水平スクロール

［複数行編集］パラメータが「Yes」に設定されているコントロールに対して有効です。コントロール内の行の間で、水平方向のスクロールができるようになります。

ＣＲ許可

［複数行編集］パラメータが「Yes」に設定されているエディットコントロールに対して有効です。入力途中で  Enter  キーが押された時に、コントロールの編集を終了するか、1行下に移動するかを設定します。

拡張ウィンドウ

［複数行編集］パラメータが「No」に設定されているエディットコントロールに対して有効です。コントロールの画面のサイズを超えるテキストのウィンドウが定義できます。［フォーム一覧］にズームして、そのコントロールに対応する拡張ウィンドウのフォームを選択します。

ヘルプ画面

コントロールにヘルプ画面を対応させるかどうかを設定します。このパラメータは、オンラインウィンドウでだけ有効です。デフォルト値は「Yes」です。

「Yes」に設定すると、このコントロールで指定した項目に対するヘルプが、すでに［タイプ辞書］または［ファイル辞書］で、設定されている場合には、そのヘルプ画面が使用されます。詳細については、「4.2  タイプ辞書の定義」を参照してください。

「No」に設定すると、このコントロールで指定した項目に対するヘルプ画面がないことを示します。

ヘルプ画面の番号を設定すると、実行時にエンドユーザがこのコントロールからそのヘルプ画面を表示できます。ヘルプ画面の番号を設定するには、このパラメータから［ヘルプ一覧］をズームしてヘルプ画面を選択します。選択するヘルプ画面がない場合には、さらにズームして［ヘルプ辞書］テーブルをオープンし、ヘルプ画面を作成します。

自動ヘルプ

コントロールに自動ヘルプの画面を対応させるかどうかを設定します。デフォルト値は「Yes」です。

「No」に設定すると、このコントロールで指定した項目に対する自動ヘルプがないことを示します。

「Yes」に設定すると、このコントロールで指定した項目に対するヘルプが、［タイプ辞書］または［ファイル辞書］で設定されている場合には、そのヘルプ画面が使用されます。詳細については、「4.2  タイプ辞書の定義」を参照してください。

ヘルプ画面の番号が設定されている場合には、実行時にカーソルがこのコントロールにくると、ヘルプ画面が自動的に表示されます。ヘルプ画面の番号を設定するには、このパラメータから［ヘルプ一覧］をズームしてヘルプ画面を選択します。選択するヘルプ画面がない場合には、さらにズームして［ヘルプ辞書］テーブルをオープンし、ヘルプ画面を作成します。

選択プログラム

プログラム実行時に、エンドユーザが［編集／ズーム］を使用してプログラムを起動できるかどうかを設定します。デフォルト値は「Yes」です。

プログラムの番号が設定されている場合には、実行時にこのコントロールが［ズーム］可能となり、エンドユーザがズームすると、設定したプログラムが起動されます。プログラム番号を設定するには、このパラメータから［プログラム一覧］をズームして選択します。

「Yes」に設定し、プログラム番号を０に設定すると、このコントロールで指定した項目に対する選択プログラムが［タイプ辞書］または［ファイル辞書］で設定されている場合には、その選択プログラムが使用されます。詳細については、「4.2  タイプ辞書の定義」の「選択プログラム」を参照してください。

起動モード

［選択プログラム］パラメータで設定したプログラムの起動モードを指定します。設定できる値と動作は、以下のようになります。

■Ａ＝後置 … プログラムが終了したときに、カーソルはズーム項目の次のパーク可能項目に移動します。

■Ｂ＝前置 … デフォルト。ズームで呼び出されたプログラムが終了したときに、カーソルはもとのズーム項目に戻ります。

■Ｐ＝自動 … カーソルがこの項目に移ると同時に［選択プログラム］パラメータでの指定に従ったプログラムが自動的に起動されるため、エンドユーザは、そのプログラムのウィンドウをすぐに使用できます。この場合は、プログラムの終了後、カーソルは「Ｂ＝前置」モードの場合と同じように、もとのズーム項目に戻ります。

パスワードエディット

［複数行編集］パラメータが「No」に設定されているエディットコントロールに対して有効です。「Yes」に設定すると、このコントロールで指定した項目の内容はすべて「＊」で表示され、入力した内容を見ることはできません。デフォルト値は「No」です。


コントロール特性－外観

複数行編集

スタティックコントロールでのみ外観の下に表示されます。フォーム内のコントロールの長さを定義します。テキストがエディットかテキストの枠を超えると、フォーム内のすべてのテキストが表示されるように枠を拡大し、すべてのコントロールが、拡大された枠の下にプッシュされ、枠を拡大するための空間が確保されます。このパラメータは、テーブル内のコントロールでは無効です。デフォルト値は「No」です。

フォント

コントロールに表示されるテキストのフォントを設定します。このパラメータに数値を入力しなければ、［フォーム特性］ダイアログの［フォント］パラメータで指定したフォームのフォントが使用されます。

色

［基本色一覧］の色の番号を指定します。このパラメータは、「平面ウィンドウ」に対してだけ有効です。ここから［基本色一覧］にズームして色を選択します。また、フォームエディタで範囲指定してペイントすれば、コントロールの色を設定できます。

可視

コントロールをエンドユーザに対して表示するかしないかを設定します。式を設定すれば、実行時に値を動的に設定することもできます。「Yes」に設定すると、コントロールは表示されます。「No」に設定すると、コントロールは表示されません。

有効

コントロールを使用できるようにするかどうかを設定します。式を設定すれば、実行時に値を動的に設定することもできます。「Yes」に設定すると、コントロールは有効になります。「No」に設定すると、コントロールは無効になります。

水平整列

コントロール内のテキストの整列方法を設定します。以下の３つの値を設定できます。

■	Ｌ＝左寄せ

■	Ｒ＝右寄せ

■	Ｃ＝センタリング

垂直整列

コントロール内のテキストの整列方法を設定します。以下の３つの値を設定できます。

■Ｔ＝上寄せ

■Ｂ＝下寄せ

■Ｃ＝センタリング

スタイル

コントロールの外観を設定します。設定できる値は、「２＝平面」、「３＝凸立体」、「Ｓ＝凹立体」の3つです。これらの値はコンボボックスで選択できます。デフォルト値は、エディットコントロール、ラジオボタン、チェックボックス、イメージ、グループでは「Ｓ＝凹立体」、リストボックスでは「２＝平面」、その他のコントロールでは「３＝凸立体」です。プッシュボタンとスライダでは無効です。

境界

コントロールの境界の種類を設定します。以下の３つの値を設定できます。

■Ｔ＝細線  …  コントロールの周囲を細い線で囲みます。

■Ｈ＝太線  …  コントロールの周囲を太い線で囲みます。

■Ｎ＝なし  …  境界に何も表示しません。

デフォルト値は、コントロールの種類によって異なります。たとえば、四角形の場合は「Ｔ＝細線」ですが、テキストの場合は「Ｎ＝なし」になります。

カラム数

ラジオボタンにだけ有効です。ラジオボタンを何列で表示するかを設定します。

スライダ形式

スライダの方向を設定します。設定できる値は、次の２つです。

■Ｈ＝横型

■Ｖ＝縦型

ステップ

スライダにだけ有効です。ステップ値は、スライダのとれる値の範囲内で設定します。

スクロールバー

テーブルコントロールにだけ有効です。テーブルコントロールに、垂直方向のスクロールバーを付けるかどうかを設定します。

区切り

テーブルコントロールにだけ有効です。テーブルの表示に、行間の区切りを表示するかどうかを設定します。

タイトル高さ

テーブルコントロールのタイトルの高さを設定します。フォームエディタ内で、タイトルバーの境界の下側をクリックしてドラッグしても設定できます。

行高さ

テーブルコントロールの行の高さを設定します。フォームエディタ内で、テーブルの先頭行の境界の下側をクリックしてドラッグしても設定できます。

列数

テーブルコントロール内の列の数を表示します。列数は、フォームレイアウトからのみ変更可能です。

線種

スタティックコントロールの囲み線の種類を設定します。以下の５つの値を設定できます。

■Ｒ＝実線

■Ｔ＝点線

■Ｓ＝破線

■Ａ＝一点鎖線

■Ｄ＝二点鎖線

線幅

スタティックコントロールの囲み線の太さを設定します。フォームに設定した［寸法単位］のサイズを表す数値を入力します。

タブラベル位置

タブコントロールのラベルを表示する位置を設定します。

■Ｔ＝上

■Ｒ＝右

■Ｂ＝下

■Ｌ＝左

イメージ効果

イメージコントロールでのみ有効です。このパラメータで、イメージをイメージコントロール上に表示するとき、特殊な表示効果を与えます。コンボボックスの中から使用したい効果のオプションを選んでクリックします。

デフォルトは特殊効果なしの「Normal」です。

イメージスタイル

イメージコントロールでのみ有効です。このパラメータで、イメージコントロールの表示形式を指定します。コンボボックスの中から使用したい表示形式のオプションを選んでクリックします。

■Ｔ＝タイル… イメージコントロールの範囲全体を満たすようにイメージを複数並べて表示します。この方法は「壁紙」効果を作るときに使用します。

■Ｃ＝コピー … イメージコントロールにイメージをそのままのサイズで表示します。イメージがコントロールより大きい場合は、コントロールのサイズ分しか表示されません。

■Ｓ＝フィットスケール … イメージの縦横比率を変えずに、イメージ全体がコントロールに収まるように表示します。

■Ｆ＝フィルスケール … イメージの縦横比率を変えずに、イメージがコントロール全体を満たすように表示します。イメージとコントロールの縦横比率が等しくなければ、イメージの一部が表示されません

■Ｄ＝コントロールスケール … イメージ全体がコントロールの中に収まるように、イメージの縦横比率を変えて表示します。イメージとコントロールの縦横比率が等しくなければ、イメージは歪んだ形で表示されます。

可視行数

コンボボックスから一覧を表示する時の表示行数を指定します。「0」の時は、［ラベル］パラメータで設定した内容をすべて表示します。

固定サイズテーブル，全ページタイトル

このパラメータの詳細については、「9.5  GUI印刷機能」を参照してください。


コントロール特性－位置とサイズ

位置

このパラメータは、［左辺位置］、［上辺位置］、［幅］、［高さ］パラメータの式をどれか１つ「0」にした時、有効になります。式を選択した場合は、それに対応する［コントロール位置］ダイアログのパラメータは設定不可能になります。また、その逆も同様です。

［コントロール特性］ダイアログの［位置］パラメータからズームすると［コントロール位置］ダイアログが表示されます。

このパラメータは、［コントロール位置］ダイアログの４つの割合の組み合わせです。４つの割合は、「左辺割合」、「幅割合」、「上辺割合」、「高さ割合」です。［位置］パラメータの値が０の場合、上位コントロールの［サイズ］パラメータが実行時に変更されても、そのコントロールのそれぞれの［サイズ］パラメータは変更されません。［位置］パラメータの値が１以上の時、上位コントロールの［サイズ］パラメータが実行時に変更された場合、それぞれの［サイズ］パラメータは変更されます。

左辺割合

選択されたコントロールの左上角のｘ座標の割合（0～100）

幅割合

選択されたコントロールの幅の割合（0～100）

上辺割合

選択されたコントロールの左上角のy座標の割合（0～100）

高さ割合

選択されたコントロールの高さの割合（0～100）

注意： テーブルコントールは、左辺割合、幅割合、上辺割合のみ指定できます。高さ割合は指定できません。

［位置］パラメータを設定するには以下の式より割合を計算してください。

上位コントロールの左辺位置（変更前） … PaPL

上位コントロールの左辺位置（変更後） … PaP

左辺位置（変更前） … PL

左辺位置（変更後） … P

左辺割合 … Place

式：

左辺割合 Place＝100*PaPL*(P-PL)/PL/(PaP-PaPL)

左辺位置（変更後）P＝PL+PL*(PaP-PaPL)/PaPL*Place/100

左辺位置

コントロールの左辺位置を設定します。［式］テーブルをズームして、コントロールの左辺の座標を求める式を登録することによって、実行時に値を設定できます。

上辺位置

コントロールの上辺位置を設定します。［式］テーブルをズームして、コントロールの上辺の座標を求める式を登録することによって、実行時の値を設定できます。

幅

コントロールの水平方向の長さです。［式］テーブルをズームして、コントロールの幅を求める式を登録することによって、実行時の値を設定できます。

高さ

コントロールの垂直方向の長さです。［式］テーブルをズームして、コントロールの高さを求める式を登録することによって、実行時の値を設定できます。

コントロールレイヤ

このパラメータは、常に無効表示されます。フォームレイアウトから変更可能です。［コントロールレイヤ］パラメータは、選択されたコントロールが、チョイスコントロールのどの選択肢にリンクされているかを示します。例えば、コンボボックスが、フォームレイアウト上で３つの選択肢を持っているとします。エディットコントロールを、３番目の選択肢にリンクすると、数字の３が、エディットコントロールの［コントロールレイヤ］欄に表示されます。

このパラメータは、チョイスコントロールにリンクされているコントロールでのみ有効です。

Ｘ１

選択された直線の左端のｘ座標。直線コントロール用パラメータ。

Ｙ１

選択された直線の左端のｙ座標。直線コントロール用パラメータ。

Ｘ２

選択された直線の右端のｘ座標。直線コントロール用パラメータ。

Ｙ２

選択された直線の右端のｙ座標。直線コントロール用パラメータ。


コントロール特性－OLEパラメータ

クラス

オブジェクトのクラスを設定します。［クラス］欄を空にしておけば、実行時に、Windowsの［オブジェクトの挿入］ダイアログから、オブジェクトタイプを選択できます。

オブジェクトタイプを指定する場合、［クラス］パラメータからズームして、Windowsの［オブジェクトタイプ選択］ダイアログを開いてください。

［オブジェクトタイプ選択］ダイアログに、選択可能なクラスが全て表示されます。ダイアログの結果欄に表示される説明を参考にクラスを選択します。実行時に［編集／オブジェクトの挿入］を選択すると、ここで指定したクラスをサポートするアプリケーションが起動されます。

注意： 実行時に、指定されたオブジェクトクラスをサポートするアプリケーションが起動できない場合、エラーメッセージウィンドウが表示されます。

OLE表示形式

選択肢が３つ、コンボボックスにあります。デフォルト値は「Ｉ＝アイコン」です。

■Ｉ＝アイコン … OLEオブジェクトが配置されていて、編集していない状態の場合、コンテナに保存されている情報の種類を表すアイコンが表示されます。

■Ｃ＝内容 … OLEオブジェクトが配置されていて、編集していない状態の場合、ファイルの内容のスナップショットがコンテナに表示されます。

■Ａ＝任意 … アイコンとして表示するか、オブジェクトの内容をスナップショットで表示するか、実行時に選択できます。どちらを選択するかは、［オブジェクトの挿入］ダイアログの［アイコンで表示］のチェックボックスで設定します。

OLE形式

選択肢が３つ、コンボボックスにあります。デフォルト値は「Ａ＝任意」です。

■Ｌ＝リンク … OLEオブジェクトは、実行時にリンクされたオブジェクトとして保存されます。

■Ｅ＝埋め込み … OLEオブジェクトは、実行時に埋め込みオブジェクトとして保存されます。

■Ａ＝任意 … 実行時にリンクされたオブジェクトとして保存するか、埋め込みオブジェクトとして扱うか、選択できます。どちらを選択するかは、［オブジェクトの挿入］ダイアログの［リンク］チェックボックスで設定します。

リンク自動更新

このパラメータは、リンクされたドキュメントの内容のビットマップの更新を自動的に行うかどうかを設定します。デフォルト値は「Yes」です。このパラメータは、［OLE表示形式］が「アイコン」でも「内容」でも「任意」でも有効で、［OLE形式］が、「リンク」か「任意」の場合に有効です。

■Yes … 内容のイメージが、フォーム上に表示する前に、常に最新かどうか確認します。

■No … 最後に保存された内容のイメージを表示します。

OLEフレームタイプ使用

■Yes … オブジェクトの種類により、異なる種類のフレームをオブジェクトの周りに表示します。デフォルト値は「Yes」です。

■No … フレームを表示しません。


コンテキストメニュー

コンテキストメニューは、マウスの右ボタンを押すと表示されるポップアップメニューです。このメニューに表示される項目は、そのときの編集状態によって異なり、プルダウンメニュー内で有効な項目に対応しています。選択項目は、［コマンド］パレットと［コントロール］パレットに表示される項目と同じです。


キーボードコマンド

フォーム編集時に、キーボードから操作する際には、通常のキーボード操作に加えて以下のキーを使用できます。

キー	カーソルの動き
｛Home｝	最初のコントロールを選択
｛End｝	最後のコントロールを選択
｛Tab｝	次のコントロールを選択
｛Shift｝＋｛Tab｝	前回のコントロールを選択
矢印キー	選択したコントロールまたはフォームの移動
｛Shift｝＋矢印キー	選択したコントロールまたはフォームのサイズ変更
｛Esc｝	取り消し
｛Enter｝	確認


CPBUT01
［コントロール］パレット内での選択を行います。このボタンをクリックしてからコントロールを選択してください。このボタンは、選択したコントロールの取り消しにも使用します。このボタンを「マウスポインタ」ボタンと呼びます。


CPBUT02
プッシュボタンを配置します。プッシュボタンは、アプリケーション内のアクションを起動できるようにします。


CPBUT03
エディットコントロールを配置します。エディットコントロールには、［コントロール特性］ダイアログの［データ］パラメータで、項目や式を対応させます。


CPBUT04
スタティックコントロールのテキストコントロールを配置します。


CPBUT05
チェックボックスを配置します。エンドユーザがトグルをオン・オフできます。チェックボックスを使用して、論理型の項目や式を表現できます。


CPBUT06
ラジオボタンを配置します。


CPBUT07
垂直方向型のスライダを配置します。矢印は上下にあります。


CPBUT08
水平方向型のスライダを配置します。矢印は左右にあります。


CPBUT09
いくつかのコントロールをまとめて視覚的に１つのグループにするための、スタティックコントロールの四角形を描きます。グループの名前をラベルとして追加できます。


CPBUT10
スタティックコントロールの四角形を描きます。［コントロール特性］ダイアログで、スタティックコントロールのテキストを追加して、そのテキストの四角形内での位置を設定できます。四角形の色は、［コントロール特性］ダイアログの［色］パラメータで設定できます。


CPBUT11
スタティックコントロールの楕円形を描きます。［コントロール特性］ダイアログで、スタティックコントロールのテキストを追加して、そのテキストの楕円形内での位置を設定できます。楕円形の色は、［コントロール特性］ダイアログの［色］パラメータで設定できます。


CPBUT12
スタティックコントロールの直線を描きます。直線の色は、［コントロール特性］ダイアログの［色］パラメータで設定できます。


CPBUT13
グラフィカルなイメージコントロールを配置します。


CPBUT14
テーブルコントロールを配置します。テーブルコントロール上には、エディットコントロールやプッシュボタンなど、ほかの種類のコントロールを配置できます。


CPBUT15
２つのタブカードを含むタブコントロールを配置します。タブコントロール上には、エディットコントロールやプッシュボタンなど、ほかの種類のコントロールを配置できます。


CPBUT16
二つの項目を含むリストボックスを配置します。


CPBUT17
コンボボックスを配置します。


CPBUT18
OLEコントロールを配置します。


APBUT01
選択フレームの左側に、選択したコントロールをすべて整列します。


APBUT02
選択フレームの水平方向の中央に、選択したコントロールをすべて整列します。


APBUT03
フォームの水平方向の中央に、選択したコントロールをすべて整列します。


APBUT04
選択フレーム内で、水平方向に均等間隔になるように、選択したコントロールをすべて整列します。


APBUT05
選択フレームの右側に、選択したコントロールをすべて整列します。


APBUT06
選択フレームの上側に、選択したコントロールをすべて整列します。


APBUT07
選択フレームの垂直方向の中央に、選択したコントロールをすべて整列します。


APBUT08
フォームの垂直方向の中央に、選択したコントロールをすべて整列します。


APBUT09
選択フレーム内で、垂直方向に均等間隔になるように、選択したコントロールをすべて整列します。


APBUT10
選択フレームの下側に、選択したコントロールをすべて整列します。


APBUT11
選択したコントロールの幅をすべて、最も幅の広いコントロールの幅に合わせて拡大します。


APBUT12
選択したコントロールの幅をすべて、最も幅の狭いコントロールの幅に合わせて縮小します。


APBUT13
選択したコントロールの高さすべてを、最も高いコントロールの高さに合わせて拡大します。


APBUT14
選択したコントロールの高さすべてを、最も低いコントロールの高さに合わせて縮小します。


APBUT15
フォーム内のコントロールのZオーダを表示させます。


APBUT16
選択したコントロールをフォーム内で１階層前面に移動させます。


APBUT17
選択したコントロールをフォーム内で１階層背面に移動させます。


APBUT18
選択したコントロールをフォーム内で最前面に移動させます。


APBUT19
選択したコントロールをフォーム内で最背面に移動させます。


APBUT20
コントロールをテーブルへ配置します。


APBUT21
フォーム内のコントロールの自動Zオーダを有効にします。


APBUT22
フォーム内のブレイク間の区切りを非表示にします。


APBUT23
最後に取り消した操作をやり直します。


APBUT24
最後に行った操作を取り消します。


APBUT25
コントロール間に親子関係を設定します。


APBUT26
コントロール間の親子関係を削除します。


APBUT27
親コントロールを表示します。


APBUT28
コントロールの書式のサイズにフレームのサイズを合わせます。


行ジャンプ

［編集］メニューには含まれないテーブル編集操作があります。これは行ジャンプ（｛Ctrl｝＋｛J｝）で、［行ジャンプ］ダイアログボックスをオープンします。テーブル内の任意の行にカーソルをジャンプさせる場合は、ジャンプ先の行番号をこのダイアログボックスに入力して、［OK］を選択します。行ジャンプは、大きなテーブルを編集するときに役立ちます。


保存ファイル名

変更箇所を保存するファイル名を入力します。デフォルトのファイル名は、［動作環境］テーブルの［基本色定義ファイル］欄で設定されているファイル名です。このファイル名をそのまま使用する場合、変更がすべてのアプリケーションで有効になります。［保存ファイル名］欄に別の名前を指定すると、変更内容を現在dbMAGICが使用しているのとは別のファイルに保存できます。この場合、変更はそのファイル名を設定しているアプリケーションだけに有効です。


即時有効

変更内容は、［ファイル保存］ダイアログの［即時有効］プロンプトに［Yes］と指定しなければ、次にdbMAGICをオペレーティングシステムからロードしたときから有効となります。


PPD(Programmable Protection Device)

本機能は、日本語版ではサポートされていません。

関連項目

現パスワード

新パスワード

内容


現パスワード

本機能は、日本語版ではサポートされていません。


新パスワード

本機能は、日本語版ではサポートされていません。


内容

本機能は、日本語版ではサポートされていません。


dbMAGIC Ver7 オンラインヘルプ
dbMAGIC Ver7 オンラインヘルプの使用方法

トピックボタン … このボタンを押すと、目次が表示されます。

検索ボタン … このボタンを押すと、キーワードによるトピックの検索が行えます。

Windowsのヘルプシステムについての詳細は、ヘルプの使い方を参照してください。

dbMAGIC Ver7についての詳細な説明は、以下の各項目（下線付きで表示されている文字列）をマウスでクリックして参照してください。

インタフェース

設定	アプリケーション,動作環境,基本色定義テーブル,フォントテーブル,キーボード割付,サーバ,通信ゲートウェイ,DBMS,データベース,論理名,プリンタ,プリンタ属性,ログオン

開発	タイプ辞書,ファイル辞書,プログラム辞書,エンドユーザヘルプ,エンドユーザメニュー,イベント,CTL特性,辞書入出力

タスク環境	オプションメニュー, 式, 演算子, 関数, ソート, SQLコマンド

タスク	処理レベルテーブル,処理テーブル,コメント, ビュー,エラー,リンク,リンク終了,ブロック,ブロック終了,コール,アクション,項目更新,データ出力,データ入力, エディット,OSコマンド,トランザクション処理,タスク特性,タスク制御,DBファイルテーブル,自動プログラム作成(ファイル辞書),自動プログラム作成(タスクツリー)

フォームエディタ	概念,フォームテーブル,フォーム特性,コントロール,コントロール特性,コントロールパレット,コマンドパレット,コントロールの編集方法,テーブルコントロールの使用方法,コンテキストメニュー,キーボードコマンド,レポートレイアウト

実行時	入出力ファイルテーブル,入出力特性ダイアログ,入出力ファイル,レポート辞書,レポート特性

使用権利	シークレット名,ユーザID,権利,権利設定ダイアログ,ユーザグループ


インタフェース

dbMAGICの環境で操作をするには、画面の構成要素について、それらが表示されるタイミングと表示方法、どのような意味を持つのかについて十分に知っておく必要があります。また、2.15節では、dbMAGICを起動する方法と終了する方法を、［ファイル］メニューとあわせて説明します。

インタフェースの基本要素

dbMAGICのインタフェースは「ビジュアル」に設計されているため、Microsoft Windows95, Windows NTまたはWindows3.1を使いこなしているユーザには、dbMAGICのインタフェースでの作業はとても快適でしょう。もちろん、Microsoft Windowsの経験がなくてもまったく支障はありません。

マウス

多くの操作はキーボードだけでもできますが、dbMAGICを実行するには、マウスを使用してください。選択とドラッグは、マウスの左ボタンを使用して行います。ショートカットメニューを使用する場合は、マウスの右ボタンで起動できます。

ズーム

「ズーム」は、dbMAGICの操作すべてで使用できる強力な機能です。一覧、ダイアログ、コンボボックスなどを通常使用できる箇所や、何かを選択できるような箇所にカーソルがある場合は、［ズーム］インジケータがステータス行に表示されます。ズームできる場合は、［ズーム］インジケータをクリックするか、ズームできる箇所をダブルクリックするか、｛F5｝を押すか、または［編集／ズーム］を選択すればズームできます。

上記のいずれかの方法で行う操作を「ズームする」といいます。

画面構成

ウィンドウフレーム	ウィンドウには、フレームがある場合とない場合があります。また、フレームが見える場合と見えない場合があります。
タイトルバー	ウィンドウの一番上にあるバーです。タイトルバーは、タイトルとコントロールメニューボックスから構成されています。そのウィンドウが最大表示されていない場合は、タイトルバーをドラッグしてウィンドウを移動できます。ドラッグしている間は、灰色のウィンドウフレームが表示されて、カーソルと共に移動します。マウスボタンを放すと、ウィンドウが新しい位置に再描画されます。
コントロールメニュー	移動できるウィンドウには、タイトルバーの左端にコントロールメニューがあります。コントロールメニューは、アクティブウィンドウ上でのキーボードを制御するコマンドのために予約されています。 通常、コントロールメニューは、［元のサイズに戻す］、［移動］、［サイズ変更］、［最小化］、［最大化］、［閉じる］の各コマンドから構成されています。アプリケーションウィンドウのコントロールメニューには、ほかのアプリケーションウィンドウへの切り替えのために、［アプリケーションの切り替え］コマンドも含まれています。すべてのコマンドを同時に有効にはできません。 タイトルバーのコントロールメニューの部分をマウスでダブルクリックすると、ウィンドウがクローズします。
閉じる、最小化、最大化ボタン	最小化、最大化、閉じるの各ボタンは、コントロールメニューの各コマンドに対応しています。「最小化」ボタンをクリックすると、メインウィンドウをアイコン化し、対応するすべてのウィンドウを隠します。「最大化」ボタンをクリックすると、メインウィンドウを最大の大きさまで拡大します。最大化を選択すると、「最大化」ボタンは「元のサイズに戻す」ボタンに置き換わります。
メニューバー	使用できるメニューを一覧します。［ファイル］、［編集］、［ヘルプ］は、いつでも使用できます。ほかのメニューが使用できるかどうかは、dbMAGICアプリケーションを実行中か開発中かで異なります。
ツールバー	さまざまな操作を行うためにクリックで選択するボタンが表示されます。dbMAGICは、初期画面、開発モード、実行モードのそれぞれに異なるツールバーを提供します。 dbMAGICの初期画面のツールバーには18個のボタンがあり、６つに分類されています。一番左にあるボタンは［アプリケーション一覧］をオープンするボタンで、アプリケーションを起動します。次の17個のボタンには、メニューバー上の［設定］プルダウンメニュー内の各項目と同じ機能が設定されています。一番右のボタンは、dbMAGICの使用状況に応じたヘルプを呼び出します。 開発モード用ツールバーには15個のボタンがあり、５つに分類されています。左から３個のボタンには、プルダウンメニューの［ファイル］に含まれる最初の３つの項目と同じ機能が設定されています。次の10個のボタンには、プルダウンメニューの［開発］に含まれる項目と同じ機能が設定されています。次のボタンはプルダウンメニューの［オプション］に含まれます。一番右のボタンは、オンラインヘルプをオープンします。
ワークスペース	テーブルやメニューが表示される場所です。また、アプリケーション実行時のウィンドウのレイアウト設計も行います。ワークスペースには、さまざまな表示画面がカスケードされる場合もあります。通常、アクティブウィンドウは、ワークスペースの最前面に位置します。
ステータス行	画面の一番下に表示されます。開発時には開発者へのメッセージが、実行時にはアプリケーションのエンドユーザに通知するメッセージがここに表示されます。ステータス行の右端には、キーボードの状態を示す［モードインジケータ］が表示されます。
モードインジケータ	意味	オフにするための操作
INS	挿入モードオン	｛Ins｝を押します。
ズーム	現在位置の項目でズーム可能	－
広域	現在位置の項目で、［広域］をクリックするか、［編集／広域表示］（｛F6｝）を選択して［広域ウィンドウ］をオープンします。	その項目から移動します。
スクロールバー	マウスでウィンドウ内を移動して、データの隠れた部分を表示します。縦型、横型のどちらも使用できます。スクロールのための矢印がスクロールバーの両端に表示され、スクロールバーの中央からそれぞれ反対の方向を指し示します。スクロールボックスやスライダは、スクロールバーに沿って移動し、現在位置が上端または左端からどれくらい離れているかを表示します。
メニューでの操作

dbMAGICが提供するメニューは、メニューバーに一覧されます。これらの項目の一部は、選択すると同時に実行されるコマンドです。ほかの項目やメニュー選択項目は、さらに詳しいメニュー名を参照するか、dbMAGICが状況に応じて解釈するパラメータです。メニューはメニューバー内に名前で表示され、その中の１文字がキーボード入力する文字で、下線付きで示されます。

メニューの選択

マウス … マウスポインタをメニューバー上のメニュー名に移動してクリックすると、メニューがオープンします。そのままメニュー項目に移動するには、選択カーソルをメニュー項目に沿ってドラッグしてマウスのボタンを放せば、選択したメニュー項目が実行されます。また、マウスをメニューバー上で水平にドラッグすれば、メニューを次々にオープンできます。

キーボード … 1.｛Alt｝を押すと、［ファイル］メニューが自動的にオープンします。

2.｛→｝または｛←｝を押してメニューバー上で目的のメニューを選択します。

または、｛Alt｝と各メニュー名の先頭に付いている英文字を同時に押して、目的のメニューを選択します。

3.｛↑｝または｛↓｝を押してメニュー内の項目を選択します。

または、項目の先頭に付いている英文字を押して目的の項目を選択します。

メニューの取り消し

マウス     …	メニュー以外の場所でクリックします。

キーボード …	｛Esc｝を２回押します。

メニュー項目の選択

マウス     … メニュー項目をクリックします。

キーボード … 1.｛↓｝と｛↑｝キーを使用して、目的のメニュー項目を選択します。

2.｛Enter｝を押します。

または、各メニュー項目名の先頭に付いている英文字をキー入力します。

また、メニュー項目名の横にキーボード操作を示す文字列が一覧される場合がありますが、それは「ショートカットキー」を表します。ショートカットキーを使用すれば、メニュー項目をカーソルで選択しなくても、直接選択できます。

作業の状況によっては、メニュー項目の表示色が淡色表示になる場合があります。淡色表示は、その時点の状態では、そのメニュー項目が使用できないことを示します。淡色表示は、作業の状況に応じて変化するため、ほかの状況では使用できるようになる場合もあります。

ウィンドウの移動とサイズ変更

マウスを使用して、以下のような方法でウィンドウのサイズ変更や移動ができます。

ウィンドウの移動	マウスポインタをウィンドウの一番上にあるバーに置いて、ウィンドウが画面上の目的の位置にくるまでドラッグします
水平方向のサイズ変更	マウスポインタをウィンドウの右辺または左辺に合わせます。カーソルの形状が両方向の矢印に変化したら、ウィンドウをドラッグします。この方法は、［フレーム種類］が「太線」の場合にだけ有効です。
垂直方向のサイズ変更	マウスポインタをウィンドウの下辺に合わせます。カーソルの形状が両方向の矢印に変化したら、ウィンドウをドラッグします。この方法は、［フレーム種類］が「太線」の場合にだけ有効です。
水平、垂直両方向のサイズ変更	マウスポインタをウィンドウのいずれかの角に合わせます。カーソルの形状が両方向の矢印に変化したら、ウィンドウをドラッグします。この方法は、［フレーム種類］が「太線」の場合にだけ有効です。
ダイアログボックスによる操作

ダイアログボックスは、ユーザにデータの入力を求めたり、ユーザに情報を提供したりします。たとえば、選択したメニュー項目を実行するときにdbMAGICがさらに設定を必要とする場合などには、ダイアログボックスは入力を求めてきます。この場合、デフォルト値をそのまま使用するか、必要に応じて新規に入力します。

ダイアログボックス内で選択または入力するには、カーソルを移動する必要があります。現在作業中の入力欄は強調表示されたり、ほかの色で表示されたり、または明らかな方法で表示されたりします。目的の入力欄にマウスポインタを置いてクリックするか、矢印キーを使用して目的の入力欄にカーソルを置きます。カーソルを移動するには、｛Tab｝または｛Shift｝＋｛Tab｝キーも使用できます。｛Tab｝では順方向に移動し、｛Shift｝＋｛Tab｝では逆方向に移動します。入力欄にカーソルを合わせて、必要なデータをキー入力します。また、すでに入力されているデータを編集する場合の操作については、「2.11 データの編集」を参照してください。通常、ダイアログボックスには「OK」と「取消」の２つのボタンがあります。デフォルトでは、どちらか一方のボタンがアクティブになっています。ここで｛Enter｝をキー入力すると、アクティブなボタンに割り当てられている機能が実行されます。アクティブなボタンも、そうでないボタンもマウスでクリックできます。アクティブなボタンは、強調表示されるか、何らかの印が付きます。ダイアログボックスでの必要な設定を完了して、その設定に従って次の処理を実行するには「OK」ボタンを、取り消すには「取消」ボタンを選択するか｛Esc｝をキー入力します。

［ファイルを開く］ダイアログのオープン

パス名とファイル名を設定する項目でズームすると、Windowsの［ファイルを開く］ダイアログを表示できます。

ただし、［設定／動作環境］の以下のパラメータでは、Windowsの［ファイルを開く］ダイアログを表示できません。代わりに、dbMAGIC独自のダイアログが表示されます。

・基本色定義ファイル

・フォント定義ファイル

・キーボード割付ファイル

・プリンタ属性ファイル

確認ダイアログ

テーブルまたはダイアログに変更を加えてから｛Esc｝を押すと、変更内容の種類に適した確認ダイアログが表示されます。ここで、デフォルトとして指定されているボタンが強調表示されます。ボタンには「Yes」と「No」があり、さらに「取消」が表示されることもあります。「Yes」を選択すると、要求した機能が実行されます。「取消」ボタンがある場合に「取消」を選択すると、確認ダイアログが消えて、もとのテーブルまたはダイアログに戻ります。「No」を選択すると、要求された機能がアボートされます。｛Esc｝キーを押したときの処理は、確認ダイアログの種類によって異なります。「取消」ボタンがある場合に｛Esc｝キーを押すと、「取消」を選択したときと同じ処理になります。「取消」がない場合は、「No」を選択したときと同じ処理になります。

「変更内容を保存しますか？」確認ダイアログ

最も一般的な確認ダイアログは、「変更内容を保存しますか？」と表示するダイアログです。これは、テーブルまたはダイアログの変更を終了して｛Esc｝を押すと必ず表示されます。図2-9に、「変更内容を保存しますか？」ダイアログを示します。この例では、「Yes」、「No」、「取消」の３つのボタンがあります。

コンボボックス

コンボボックスは、対応する選択項目の一覧が統合されたテキストボックスです。複数のものからの選択が必要な場合は、選択できるものすべてがコンボボックスに表示されます。現在の値またはデフォルト値は、強調表示されます。コンボボックスの右側には、下向きの矢印が表示されます。この矢印をクリックすると、コンボボックスがオープンして、選択できる選択項目がすべて表示されます。｛Alt｝＋｛↓｝でコンボボックスをオープンすることもできます。選択する項目をクリックして選択します。矢印キーを使用して強調表示の位置を移動させてから、｛Enter｝を入力して選択することもできます。コンボボックスがオープンしているときに｛Esc｝を入力すると、何も選択しないまま、コンボボックスがクローズします。

テーブルでの操作

テーブルは、dbMAGICでよく使用される基本的なインタフェースです。表計算のスプレットシートのようなマトリクス構造をしていて、各欄には名前が付いています。行は必要に応じて追加作成でき、カーソルのある行が強調表示されます。［行］と［欄］で指定される領域を「セル」と呼びます。ズームできる［欄］にカーソルがくると、ステータス行に［ズーム］と表示されます。ここでズーム操作をすると、テーブル、一覧、プロンプトボックスなどがオープンされます。この中から目的のデータを選択すると、それがもとのセルに転記されます。

テーブルには、以下の種類があります。

・タイプ辞書テーブル

・ファイル辞書テーブル

・項目テーブル

・基本色定義テーブル

・アプリケーションテーブル

一覧の操作

「一覧」は、コンボボックスとほぼ同じように使用します。一覧の中には、［コマンド一覧］のようにdbMAGIC特有のデータを示すものがあります。または、［アプリケーション一覧］のように、開発者がテーブル（この場合は［アプリケーションテーブル］）に設定した内容を示すためのものもあります。どちらの場合も、入力欄での入力作業を軽減するために使用します。［一覧］が使用できる入力欄にカーソルがくると、ステータス行に［ズーム］と表示されます。この入力欄からズームして［一覧］を表示させます。具体的には、入力欄でダブルクリックする、｛F5｝を押す、ステータス行の［ズーム］をクリックする、のいずれかの方法があります。［一覧］が表示されたら、目的の行（データ）にカーソルを合わせます。すると、カーソル行が強調表示されます。そこでダブルクリックするか、｛Enter｝を押すか、または「OK」ボタンをクリックすれば、目的のデータが選択されて入力欄に転記されます。［一覧］で選択をしないで［一覧］をクローズするには、「取消」ボタンをクリックするか、｛Esc｝を押します。

データの入力

一覧から選択するのではなく、セルにデータを直接入力する場合は、カーソルを目的の位置に合わせてキー入力します。

データの編集

編集できるセルにカーソルがあるときにキー入力をすると、項目エディタが起動します。編集時に、矢印キーまたはマウスを使用して、セル内でカーソルを移動します。

項目のサイズが表示サイズよりも大きい場合があります。このような項目にカーソルを置くと、以下のような操作ができます。

■広域表示が自動的に有効になります。

■［広域］インジケータがステータス行に表示されます。［広域］インジケータをクリックするか、［編集／広域表示］（｛F6｝）を選択すると、［広域ウィンドウ］がオープンします。［広域ウィンドウ］は、その項目の横に表示されるドロップダウンウィンドウです。項目のサイズ分のデータを入力する場合は、表示項目に直接か、または［広域ウィンドウ］に入力できます。項目の内容をすべて表示するのに表示サイズが足りない場合には、内容は自動的にスクロールします。［広域ウィンドウ］をオープンすると、入力された状態のデータ全体を確認できます。

セル内でのカーソル移動

移動先	キー
項目の先頭	｛Home｝
項目の最後	｛End｝
前のページ	｛PgUp｝
次のページ	｛PgDn｝
ページの先頭	｛Ctrl｝＋｛PgUp｝
ページの最後	｛Ctrl｝＋｛PgDn｝
テーブルまたはダイアログの先頭	｛Ctrl｝＋｛Home｝
テーブルまたはダイアログの最後	｛Ctrl｝＋｛End｝
行の最後	｛Ctrl｝＋｛→｝
行の先頭	｛Ctrl｝＋｛←｝
削除	キー
カーソルの左にある文字	｛Backspace｝
カーソル位置の文字	｛Delete｝
編集を取り消して編集前の状態に戻す（アンドゥ）	｛Alt｝＋｛Backspace｝

｛Insert｝キーは、挿入モードと上書モードを切り替えます。挿入モードでは、キー入力する文字列が挿入されて、ステータス行の右端のモードインジケータの位置に［INS］が表示されます。

テーブルの編集

項目エディタのほかに、dbMAGICは、テーブルを作成・修正するための行編集機能を備えています。入力カーソルが編集できる行にある場合は、メニューバーで［編集］をクリックするか、｛Alt｝＋｛E｝を押せば、［編集］メニューで使用できる機能を確認できます。

編集メニュー	キー	意味
取消	｛F2｝	それまでの編集を取り消して、テーブルをクローズします。この取消の範囲は、状況によって異なります。
変更取消	｛Alt｝＋｛Backspace｝	項目エディタでの編集を取り消します。
ズーム	｛F5｝	ズームできるセルにカーソルがあるときに、このメニュー項目が有効になります。ステータス行の［ズーム］をクリックするのと同じです。
広域表示	｛F6｝	広域表示できるセルにカーソルがあるときに、このメニュー項目が有効になります。ステータス行の［広域］をクリックするのと同じです。［広域ウィンドウ］がオープンします。
先頭画面	｛Ctrl｝＋｛F9｝	［プログラム辞書］または［ファイル辞書］内の深い階層で作業している場合に使用できます。このメニュー項目を選択すると、［プログラム辞書］または［ファイル辞書］の最初の画面まで一度に戻ることができます。たとえば、タスクの［式］テーブルで作業中に［先頭画面］を実行すると、［プログラム辞書］の最初の画面に戻ります。
行削除	｛F3｝	カーソル行を削除します（確認を求めてきます）。削除された行より下の行の番号が付け直されます。
行作成	｛F4｝	カーソル行の下に行を追加します。カーソルがテーブルのフレーム上にあるときには、１行目が作成されます。作成された行より下の行の番号が付け直されます。
複写登録	｛Ctrl｝＋｛R｝	カーソル行の下に挿入する形で行複写します。カーソルを目的の行に合わせて［複写登録］を実行すると、ダイアログボックスがオープンします。ここで複写元になる行番号を入力して「OK」ボタンを選択すれば、行複写が完了します。
移動登録	｛Ctrl｝＋｛M｝	カーソル行の下に挿入する形で行移動します。カーソルを目的の行に合わせて［複写移動］を実行すると、ダイアログボックスがオープンします。ここで移動元になる行番号を入力して「OK」ボタンを選択すれば、移動が完了します。
上書登録	｛Ctrl｝＋｛W｝	カーソル行に上書する形で行複写します。カーソルを目的の行に合わせて［上書登録］を実行すると、ダイアログボックスがオープンします。ここで複写元になる行番号を入力して「OK」ボタンを選択すれば、行複写が完了します。
テーブル位置付	｛Ctrl｝＋｛L｝	dbMAGICのテンプレート行に指定された検索マスクに一致する項目が入っている最初の行を検索します。ワイルドカードとして、「*」、「$」、「?」が使用できます。「*」は、任意の数の文字を表します。「$」と「?」は、任意の１文字を表します。
次に位置付	｛Ctrl｝＋｛N｝	［テーブル位置付］で設定されたテンプレートを使用して、テーブルの検索を繰り返します。最後まで検索すると、テーブルの先頭に戻ります。
切り取り	｛Shift｝＋｛Del｝	選択されたテキストをクリップボードにコピーし、削除します。
コピー	｛Ctrl｝＋｛Insert｝	選択されたテキストをクリップボードにコピーします。
貼り付け	｛Shift｝＋｛Insert｝	現在のカーソル位置にコピーまたは切り取られたクリップボードのテキストを貼り付けます。

上記以外に、［編集］メニューには含まれないテーブル編集操作があります。これは行ジャンプ（｛Ctrl｝＋｛J｝）で、［行ジャンプ］ダイアログボックスをオープンします。テーブル内の任意の行にカーソルをジャンプさせる場合は、ジャンプ先の行番号をこのダイアログボックスに入力して、「OK」を選択します。行ジャンプは、大きなテーブルを編集するときに役立ちます。

エンドユーザのフォームと画面のフォーム編集についての詳細は、第9章「フォーム」を参照してください。

テーブル編集の終了

テーブルの編集を完了したら、「OK」ボタン（または｛Enter｝）を押します。変更を取り消してテーブルをクローズする場合は、「取消」ボタン（または｛F2｝）を押します。「OK」や「取消」ボタンを押さないで｛Esc｝を押すと、「変更内容を保存しますか？」ダイアログボックスがオープンします。ここで、「OK」または「取消」を押します。ただし、テーブルに変更がない場合は、このダイアログボックスはオープンしません。

テーブルのボタン

編集テーブル、つまり編集できるテーブルは、dbMAGICでは特殊なタイプのダイアログです。dbMAGICは、このようなテーブルを２つの方法で表示できます。１つは、変更を受け付ける（「OK」）または取り消す（「取消」）、行を削除する（「削除」）または作成する（「登録」）という処理を表すボタンをテーブルに表示する方法です。もう１つは、これらのボタンを表示しない方法です。後者では、ウィンドウ全体にテーブルを表示できます。

ボタンを表示しない場合でも、［OK］、［取消］、［削除］、［登録］の機能は、メニューやキーボードコマンドで使用できます。また、［設定］メニューの［動作環境］で、ボタンが表示されないように変更できます（［編集テーブルボタン表示］パラメータで設定）。

ヘルプの使用方法

［ヘルプ］メニューは、メニューバーの右端にあります。また、［ヘルプ］アイコンは、ツールバーの右端にあります。このアイコンをクリックするか、またはメニューバーから［ヘルプ／ヘルプ表示］（｛F1｝）を選択すれば、その作業状況に応じたdbMAGICのヘルプ画面が表示されます。

ヘルプ画面には、「ホットスポット」があります。ホットスポットをクリックすると、強調表示された用語の定義を参照できます。また、ほかのヘルプ画面を参照する部分も強調表示され、そこをクリックすると、ほかのヘルプ画面へジャンプできます。

エンドユーザ用ヘルプの開発についての詳細は、第11章「エンドユーザヘルプ」を参照してください。

MAGIC情報

DBMSと通信ゲートウェイのバージョン番号が、［MAGIC情報］ダイアログに表示されます。表示されるゲートウェイは、最大５つまでです。

dbMAGICの起動と終了

dbMAGICの３つの状態：［実行モード］、［開発モード］、［起動モード］

dbMAGICは、アプリケーション開発者とエンドユーザの両方に環境を提供します。エンドユーザは、設計者が開発作業を開始するときに使用するのと同じ開始手順で、アプリケーションにアクセスできます。

アプリケーションを実行すると、開発者がそのアプリケーション用に設計したメニューが表示されます。メニューには、ポップアップメニューとプルダウンメニューがあります。前者は開発者が独自に作成します。後者は「実行モード」用にデフォルトで準備されていますが、必要に応じて開発者がカスタマイズできます。ステータス行には、「実行」の文字とアプリケーション名が表示されます。

開発モードでは、ステータス行には、「開発」の文字とアプリケーション名が表示されます。

ステータス行を見れば、開発モードになっているかどうかを確認できます。実行モードと開発モードを切り替えるには、［実行モード］（［開発モード］）のツールボタンをクリックするか、または［ファイル／開発／実行モード］（または、｛Ctrl｝＋｛T｝）を選択します。

アプリケーションを１つもオープンしていない状態が初期状態で、すべてのアプリケーションはクローズしています。この状態では、ステータス行には、単にdbMAGICのバージョンを含む名前だけが表示されます。

アプリケーション開発セッションの開始

以下に、開発作業を始めるときの一般的な手順を示します。

1.	dbMAGICをインストールしたあと、dbMAGICのアイコンをクリックします。

2.	タイトル画面が消えるまで待ちます。

3.	［ユーザID］と［パスワード］が必要な場合は、［ログオン］ボックスで［ユーザID］と［パスワード］を入力します。［ログオン］ボックスに日付だけを表示させる場合は、｛Enter｝を押してそのまま使用するか、新しい日付を６桁の数字で入力してから「OK」ボタンをクリック（または、｛Enter｝を入力）します。

これで開発作業の準備ができました。次に、アプリケーションを新規作成するか、または既存のアプリケーションを選択して編集作業に入ります。設定のメニューオプションと関連するテーブルについての詳細は、「16.1　設定メニュー」を参照してください。

新しくアプリケーションを作成する場合は、以下のようにします。

4.	［アプリケーション］ボタンをクリックするか、または［設定／アプリケーション］を選択すると、［アプリケーション］テーブルがオープンします。このテーブルに、アプリケーションの名前と［識別子］欄の２文字の識別子を入力します。識別子は絶対パスでの入力も可能です。

既存のアプリケーションを選択する場合は、以下のようにします。

5.	［アプリケーションオープン］ボタンをクリックするか、または［ファイル／アプリケーション・オープン］を選択すると、［アプリケーション一覧］が表示されます。これには、［アプリケーション］テーブルに作成したばかりのものも入っています。

自動アプリケーションポップアップメニューがある場合は、そこからアプリケーションを選択します。

6.	マウスポインタを目的のアプリケーションに移動します。次に、左のマウスボタンをダブルクリックするか、「選択」ボタンをクリックします。または、｛↓｝を使用してその行を強調表示させて｛Enter｝を押してください。選択したアプリケーションの名前がメッセージ行に表示されて、メニューバーが変わります。

7.	アプリケーションが「実行モード」でオープンされている場合は、［開発モード］ボタンをクリックするか、または［ファイル］メニューで［開発／実行モード］を選択して「開発モード」に切り替えることができます。

dbMAGICの終了

dbMAGICでの作業を終了して作業内容を保存し、OSに戻るには、コントロールメニューをダブルクリックします。［ファイル］メニューで［終了］を選択するか、dbMAGIC内の任意の場所で｛Alt｝＋｛F4｝を押しても終了できます。

DOSボックスの起動

dbMAGICでの作業を一時的に中断してDOSボックスを起動するには、［ファイル］メニューから［ＯＳコマンド］を選択します（または、｛Ctrl｝＋｛Z｝）。DOSボックスでの作業を終了したら、「EXIT｛Enter｝」とキー入力すると、dbMAGICの作業を一時的に中断した時の状態に戻ります。

プリンタの設定

Windowsの「コントロールパネル」の「プリンタ」ダイアログで登録したプリンタの機種を選択、確認できます。また、「プリンタ」ダイアログの「通常使うプリンタ」の内容とdbMAGICの「プリンタ」テーブルの［キュー］欄の内容が一致したとき、［プリンタ］ダイアログで設定した内容で印刷されます。

dbMAGICアプリケーションの終了

dbMAGIC自体は終了しないで、作業中のアプリケーションだけをクローズする場合は、［ファイル］メニューで［アプリケーション・クローズ］を選択するか、または［ファイル］メニューで新たにアプリケーションをオープンします。


エンドユーザヘルプ

dbMAGICは、ユーザが作業中、必要なときに参照できるヘルプ画面を設計するための機能を備えています。この機能を使用すれば、エンドユーザがフォームまたはフォームの各項目からヘルプを要求したときに表示されるヘルプ画面を設計できます。また、フォームの項目に対して自動的に表示されるプロンプト形式の「自動ヘルプ」も設計できます。ヘルプ画面は、項目、タイプ、フォーム、フォーム内の表示項目、またはメニュー項目の定義時に指定できます。

３種類のヘルプ

dbMAGICバージョン7.xには、以下の３種類のヘルプがあります。

■	V5.7互換ヘルプ（内部ヘルプ）

■	自動ヘルプ

■	Windows形式ヘルプ

いずれのヘルプ形式も、［ヘルプ辞書］テーブルで定義します。

dbMAGIC形式ヘルプ（内部ヘルプ）と自動ヘルプ、Windows形式ヘルプは［ヘルプ辞書］テーブルから定義します。ただし、Windows形式ヘルプの内容は、dbMAGICの外部で作成しなければなりません。

関連項目

名前

タイプ

ヘルプ設計の基本手順

[1]	［内部ヘルプ］と［自動ヘルプ］のどちらを使用するかを決めます。

[1] 87ンの部分を決めます。

[1] b7。

[4]	［内部ヘルプ］の場合は、作成したテキストを［ヘルプ編集］画面で入力します。［自動ヘルプ］の場合は、［自動ヘルプ］ダイアログに直接入力します。

[5]	ヘルプを目的のdbMAGICの項目（フォーム内の項目、［項目］テーブルの項目、［タイプ辞書］の項目、［フォーム］テーブルのフォーム、［メニュー定義］テーブルの項目）に対応させます。

[6]	アプリケーションを実行して、［内部ヘルプ］または［自動ヘルプ］をテストします。

ヘルプまたは自動ヘルプを項目に対応させる方法

［タイプ辞書］から対応させる方法

[1]	［開発／タイプ辞書］を選択します。

[2]	［タイプ辞書］内の目的のタイプを強調表示します。

[3]	［タスク環境／特性］を選択して、［タイプ特性］ダイアログを表示します。

[4]	ヘルプキーを押してヘルプ画面を表示させるには、カーソルを［ヘルプ画面］欄に位置付けます。ヘルプ画面を自動ヘルプとして表示させるには、カーソルを［自動ヘルプ］欄に位置付けます。

[5]	［ヘルプ一覧］にズームして、ヘルプ画面の番号を選択します。この番号が［タイプ特性］ダイアログのヘルプ画面番号となり、対応が終了します。新しいヘルプ画面を登録するか、または既存のヘルプ画面を変更する場合は、もう一度ズームします。

［項目］テーブルから対応させる方法

項目にヘルプ画面を対応させるには、以下の手順に従ってください。

[1]	［開発／ファイル辞書］を選択します。

[2]	目的のファイルの［項目］テーブルにズームして、目的の項目を強調表示させます。

[3]	［タスク環境／特性］を選択して、［項目特性］ダイアログを表示します。

[4]	ヘルプキーを押してヘルプ画面を表示するには、カーソルを［ヘルプ画面］欄に位置付けます。ヘルプ画面を自動ヘルプとして表示するには、カーソルを［自動ヘルプ］欄に位置付けます。

[5]	［ヘルプ一覧］をズームして、ヘルプ画面の番号を選択します。この番号が［項目特性］ダイアログのヘルプ画面番号となり、対応が終了します。新しいヘルプ画面を登録するか、または既存のヘルプ画面を変更する場合は、もう一度ズームします。

注意： 項目が［タイプ辞書］に対応している場合は、［ヘルプ画面］と［自動ヘルプ］欄には［タイプ辞書］で定義されているものが複写されます。dbMAGICは、この項目の［ヘルプ画面］と［自動ヘルプ］欄の値を、自動的に［タイプ辞書］のものと同じにします。ユーザが項目の［ヘルプ画面］と［自動ヘルプ］欄の値を変更すると、［タイプ辞書］とは対応はしなくなります。

フォーム内のコントロールから対応させる方法

[1]	フォーム内のコントロールから［コントロール特性］ダイアログにズームします。

[2]	ヘルプキーを押してヘルプ画面を表示させるには、カーソルを［ヘルプ画面］欄に位置付けます。ヘルプ画面を自動ヘルプとして表示するには、カーソルを［自動ヘルプ］欄に位置付けます。

[3]	［ヘルプ一覧］にズームして、ヘルプ画面の番号を選択します。この番号が［項目詳細］ダイアログのヘルプ画面番号となり、対応が終了します。新しいヘルプ画面を登録するか、または既存のヘルプ画面を変更する場合は、もう一度ズームします。

注意： 表示項目の［ヘルプ画面］と［自動ヘルプ］は、［ヘルプ画面］または［自動ヘルプ］が「Yes」に設定されている場合は、その項目／タイプで定義したものを受け継ぎます。［タイプ特性］または［項目特性］で［ヘルプ画面］または［自動ヘルプ］を指定している場合は、実行時にはその［ヘルプ画面］または［自動ヘルプ］が使用されます。同じ手順で、コントロールに別の値を入力すると、その値が有効となり、［データ辞書］との対応を無効にします。［ヘルプ画面］または［自動ヘルプ］欄に「No」を指定している場合は、ヘルプ画面は表示されません。

［フォーム］テーブルから対応させる方法

[1]	［タスク環境／フォーム］を選択して、［フォーム］テーブルを表示します。

注意：［フォーム］は、プログラム内のどこからでもアクセスできます。

[2]	［フォーム］テーブルの目的のフォームを強調表示させます。

[3]	［タスク環境／特性］を選択して、［フォーム特性］ダイアログを表示します。

[4]	カーソルを［ヘルプ］欄に移動します。

[5]	［ヘルプ一覧］にズームして、ヘルプ画面の番号を選択します。この番号がこのフォームのヘルプ画面番号となり、対応が終了します。新しいヘルプ画面を登録するか、または既存のヘルプ画面を変更する場合は、もう一度ズームします。


名前

［ヘルプ］画面の名前が表示されます。

注意：［＃］欄（ヘルプ画面の番号）には、dbMAGICがヘルプ画面を識別するために使用する連続番号が表示されます。この番号は自動生成されます。カーソルは、この欄には止まりません。


タイプ

ヘルプ画面のタイプを設定します。以下の値が設定できます。

■	内部ヘルプ（Ｉ＝内部）

■	自動ヘルプ（Ｐ＝自動）

■	Windows形式ヘルプ（Ｗ＝Windows形式）

デフォルトは「内部ヘルプ」です。ほかのタイプを選択するには、［タイプ］欄をクリックしてコンボボックスをオープンし、そこに表示される値から選択します。


内部ヘルプ
V5.7互換ヘルプ（内部ヘルプ）

V5.7互換ヘルプは、「内部ヘルプ」と呼びます。dbMAGICバージョン7.xは、この内部ヘルプを補助的にサポートします。このタイプのヘルプでは、デフォルトのエディットコントロールにズームしてヘルプテキストを入力できます。

内部ヘルプの編集画面から［タスク環境／特性］（｛Ctrl｝＋｛P｝）を選択すると、［内部ヘルプ特性］ダイアログがオープンします。


自動ヘルプ

自動ヘルプを作成するには、［ヘルプ辞書］テーブル（［タイプ］欄が「Ｐ＝自動」）の［名前］欄から［自動ヘルプ］ダイアログにズームします。

［自動ヘルプテキスト］欄は、１行のエディットコントロールです。入力された内容は、エンドユーザがこの自動ヘルプを起動したときにステータス行に表示されます。フォントは、ステータス行のフォントが使用されます。色は選択できません。自動ヘルプの最大長は、256文字です。


Windows形式ヘルプ

Windows形式ヘルプは、Windowsのヘルプシステムへのフックです。［ヘルプ辞書］テーブルでWindows形式ヘルプが定義されていれば、［Windows形式ヘルプ］ダイアログにズームできます。

Windows形式ヘルプは、dbMAGICとは独立して作成してください。dbMAGICでは、Windows形式ヘルプとのリンク機構を提供しています。

Windows形式ヘルプについての詳細は、マイクロソフト社のWindowsソフトウエア開発キット（SDK）の該当資料を参照するか、市販のWindows形式ヘルプの作成ツールなどの資料を参照してください。


内部ヘルプ－左辺位置

内部ヘルプの編集画面から［タスク環境／特性］（｛Ctrl｝＋｛P｝）を選択すると、［内部ヘルプ特性］ダイアログがオープンします。

［左辺位置］欄で、内部ヘルプの表示ウィンドウの左辺位置を指定します。


内部ヘルプ－上辺位置

内部ヘルプの編集画面から［タスク環境／特性］（｛Ctrl｝＋｛P｝）を選択すると、［内部ヘルプ特性］ダイアログがオープンします。

［上辺位置］欄で、内部ヘルプの表示ウィンドウの上辺位置を指定します。


内部ヘルプ－幅

内部ヘルプの編集画面から［タスク環境／特性］（｛Ctrl｝＋｛P｝）を選択すると、［内部ヘルプ特性］ダイアログがオープンします。

［幅］欄で、内部ヘルプの表示ウィンドウの幅を指定します。


内部ヘルプ－高さ

内部ヘルプの編集画面から［タスク環境／特性］（｛Ctrl｝＋｛P｝）を選択すると、［内部ヘルプ特性］ダイアログがオープンします。

［高さ］欄で、内部ヘルプの表示ウィンドウの高さを指定します。


内部ヘルプ－色

内部ヘルプの編集画面から［タスク環境／特性］（｛Ctrl｝＋｛P｝）を選択すると、［内部ヘルプ特性］ダイアログがオープンします。

［色］欄で、内部ヘルプの表示テキストの色を指定します。

入力されるテキストのすべてに影響します。


内部ヘルプ－フォント

内部ヘルプの編集画面から［タスク環境／特性］（｛Ctrl｝＋｛P｝）を選択すると、［内部ヘルプ特性］ダイアログがオープンします。

［フォント］欄で、内部ヘルプの表示テキストのフォントを指定します。

入力されるテキストのすべてに影響します。


内部ヘルプ－タイトルバー

内部ヘルプの編集画面から［タスク環境／特性］（｛Ctrl｝＋｛P｝）を選択すると、［内部ヘルプ特性］ダイアログがオープンします。

［タイトルバー］欄で、内部ヘルプの表示ウィンドウのタイトルバーを指定します。

指定できる値は、「Yes」か「No」です。「Yes」を指定すれば、表示されるテキストは、［ヘルプ辞書］テーブルの［名前］欄の文字列がタイトルバー内に表示されます。


内部ヘルプ－フレームの種類

内部ヘルプの編集画面から［タスク環境／特性］（｛Ctrl｝＋｛P｝）を選択すると、［内部ヘルプ特性］ダイアログがオープンします。

［フレームの種類］欄で、内部ヘルプの表示ウィンドウのフレームの種類を指定します。

設定できる値は、「Ｔ＝細線」、「Ｈ＝太線」、「Ｎ＝なし」の３種類です。


自動ヘルプテキスト

［自動ヘルプテキスト］欄は、１行のエディットコントロールです。入力された内容は、エンドユーザがこの自動ヘルプを起動したときにステータス行に表示されます。フォントは、ステータス行のフォントが使用されます。色は選択できません。自動ヘルプの最大長は、256文字です。


ヘルプファイル名

［Windows形式ヘルプ］ダイアログで、［ヘルプファイル名］欄を設定します。この欄の値は［動作環境］テーブルの項目の値になりますが、［ファイルを開く］ダイアログにズームしてほかのファイル名も選択できます。ほかのファイル名を選択した場合は、別のファイル名を選択するまで、そのファイルがアプリケーション内でのデフォルトとなります。


ヘルプコマンド

［ヘルプコマンド］欄には、Windowsのヘルプコマンドを設定します。表示されたデフォルトを使用するか、またはコンボボックスを表示して別のコマンドを選択します。以下に、使用できるコマンドを示します。

■	Ｃ＝コンテキスト

…	Context - キー値：符号なしlong型整数で、項目に対応するコンテキスト番号。Contextは、.HPJファイルの[MAP]セクションで定義されているコンテキスト番号に対応する１つの項目のヘルプを表示します。

■	Ｏ＝目次

…	Contents - キー値：無視されます。アプリケーションでは0Lを設定します。Contentsは、.HPJファイルの[OPTIONS]セクションの目次オプションで定義されたとおりに目次の項目を表示します。

■	Ｓ＝セットコンテキスト

…	Setcontents - キー値：符号なしlong型整数で、アプリケーションが目次項目として指定する項目のコンテキスト番号。Setcontentsは、エンドユーザが  F1  キーを押したときに表示される目次項目のヘルプを決定します。

■	Ｐ＝コンテキストポップアップ

…	ContextPopup - キー値：符号なしlong型整数で、項目に対応するコンテキスト番号。ContextPopupは、.HPJファイルの[MAP]セクションで定義されるコンテキスト番号に対応する１つの項目のヘルプをポップアップウィンドウに表示します。

■	Ｋ＝キーワードで検索

…	Key - キー値：目的の項目のキーワードを含む文字列へのlong型のポインタ。Keyは、データパラメータに渡されたキーワードと一致する項目がキーワードリストに１つある場合には、その項目を表示します。一致する項目が複数ある場合は、［キーワードで検索］ダイアログボックスを表示して、その中の［ジャンプ一覧］に項目を表示します。

■	Ｍ＝ヘルプマクロ

…	Command - キー値：実行するヘルプマクロを含む文字列へのlong型のポインタ。Commandは、ヘルプマクロを実行します。

■	Ｆ＝ForceFile

…	ForceFile - キー値：無視されます。アプリケーションでは0Lを設定します。ForceFileは、WinHelpに正しいヘルプファイルを表示させます。正しいヘルプファイルが表示されている場合は、何も動作しません。正しくないヘルプファイルが表示されている場合は、WinHelpが正しいファイルをオープンします。

■	Ｈ＝Help on Help

…	HelpOnHelp - キー値：無視されます。アプリケーションでは0Lを設定します。HelpOnHelpは、指定された使用ヘルプファイルの目次項目を表示します。

■	Ｑ＝終了

…	Quit - キー値：無視されます。アプリケーションでは0Lを設定します。Quitは、ヘルプアプリケーションに、ヘルプが不要になったことを知らせます。ほかのアプリケーションにヘルプが必要でない場合には、Windowsはヘルプアプリケーションを終了します。

［キー値］欄は、Windowsのヘルプシステムに対してヘルプ画面を特定するキーに対応した数値または文字列です。

詳細については、Windowsのヘルプアプリケーションについてのマニュアルを参照してください。


キー値

この欄に入力する値の種類は、選択されたヘルプコマンドによって以下のように変化します。

ヘルプコマンド	設定値
CONTEXT,SETCONTENTS,CONTEXTPOPUP	ヘルプ項目に対するコンテキスト番号を含む符号なしlong型整数
CONTENTS,FORCEFILE,HELP_ONHELP,HELP_QUIT	無視されます。アプリケーションは0Lを設定します。
COMMAND	実行するヘルプマクロを含む文字列へのlong型のポインタ
KEY	目的の項目のキーワードを含む文字列へのlong型のポインタ

詳細については、Windowsのヘルプアプリケーションについてのマニュアルを参照してください。


エンドユーザメニュー

この章では、作成したアプリケーションのエンドユーザメニューの設定方法について説明します。メニューの内容、使用権利、サイズ、メニューをプルダウン方式とポップアップ方式のどちらで表示するかを指定できます。

メニュー構造

プルダウンメニューは、メニューバーから下に向かって表示され、エンドユーザが選択を終了すると消えます。プルダウンメニューは、画面上の選択した位置に表示され、エンドユーザが選択を終了した後も、表示されたままです。 コンテキストメニューはマウスの右ボタンをクリックすると表示されます。ツールバーにあるツールバーボタンを使用すれば、メニュー項目を簡単に選択することができます。

プルダウンメニュー

現バージョンで作成した新しいアプリケーションに対して、dbMAGICは、デフォルトのプルダウンメニューを生成します。このメニューには、実行時のアプリケーションに必要な基本オプションが含まれています。この章で説明するメニューの編集手順に従って、自動生成されたデフォルトのメニューを変更、削除、または拡張することができます。

アプリケーションは、最上位レベルの［メニューバー］レベルを含む、１０レベルの実行時用プルダウンメニューを持つように設計できます。［メニューバー］のメニュー項目は、エンドユーザが実行時モードでアプリケーションを選択するとすぐに表示されます。通常のアプリケーションでは、メニュー内の項目のうち１つ以上は［プログラム辞書］内のプログラムに対応するプログラム名です。

コンテキストメニュー

dbMAGICのコンテキストメニューにはポップアップメニューとショートカットメニューがあります。

dbMAGICは、デフォルトで、それぞれのアプリケーションに、GUI形式のコンテキストメニューを作成します。これをポップアップメニューといいます。新しいコンテキストメニューも定義することができ、定義したコンテキストメニューは、特定のタスクに関連付けされ、ショートカットメニューが実現されます。

コンテキストメニューテーブル

コンテキストメニューテーブルは、dbMAGICのバージョン７の新しい機能です。

このテーブルには、GUI形式のアプリケーション用のポップアップメニューが常に含まれています。

このメニューは削除できません。WindowsのようなGUI環境でアプリケーションを実行する場合、自動的に作成されます。デフォルトのメニューに、メニュー項目を追加定義し、これらのメニュー項目に特定のタスクを関連付けることができます。

それぞれのセットの中で、プルダウンメニューと同様、コンテキストメニューを１０レベルまで定義できます。

追加定義されたコンテキストメニューのメニュー構造のエントリは、GUI形式のアプリケーションに対するコンテキストメニューテーブルにのみ追加することができます。

コンテキストメニューテーブルのメニュータイプを以下の表に示します。

メニュータイプ	説明
ポップアップメニュー	タスク特性に特定のショートカットメニューが指定されていない場合、 dbMAGICは、このコンテキストメニューを表示します。新しいアプリケーションに対しては、空のデフォルトポップアップメニュー項目が定義されます。
ショートカットメニュー	開発者が作成したポップアップメニューです。GUI形式アプリケーションのオンラインタスクにのみ、このメニュータイプを関連付けることができます。
実行時メニューシステムと実行時ツールバー

dbMAGICバージョン７のメニューシステムは、dbMAGICのツールバーに連動しています。これにより、特定のタスクに対してプルダウンメニューを作成することができ、dbMAGICのツールバーにボタンを追加することができます。ツールバーボタンはグループにまとめることができます。

プルダウンメニューのすべての操作は、ツールバーボタンで簡単に同じ操作を選択することができます。

コンテキストメニューテーブル内のショートカットメニューは、GUI形式アプリケーションのオンラインタスクに［タスク特性］ダイアログで、関連付けることができます。タスクの実行時に、タスクのフォーム上でマウスの右ボタンをクリックすると、指定されたショートカットメニューが表示されます。もし、タスクに、指定されたショートカットメニューがない場合、ポップアップメニューが表示されます。

メニューの作成方法

アプリケーションのメニューを作成する準備段階として、［アプリケーション］テーブルでアプリケーション名を登録します（「16.1　設定メニュー」を参照）。アプリケーション名を登録したら、以下の手順でアプリケーションのメニューを定義できます。

[1]	［ファイル／アプリケーションオープン］を選択して、［アプリケーション一覧］を表示します。目的のアプリケーション（［アプリケーション］テーブルからの名前）を選択します。

[2]	実行モードの場合は、［ファイル／開発／実行モード］を選択して、開発モードに入ります（以下は開発モードの場合と同じです）。

[3]	開発モードの場合は、［開発／コンテキストメニュー］を選択して「コンテキストメニュー」テーブルを表示します。［メニュー名］で「ズーム」（｛F5｝）して［メニュー定義］テーブルを表示します。また、［開発／プルダウンメニュー］を選択して［プルダウンメニュー定義］テーブルを表示します。［プルダウンメニュー］と［ポップアップメニュー］の［メニュー定義］テーブルのほとんどの設定では、同じように作用します。相違点については、それぞれの設定欄の説明を参照してください。

[4]	このあとの説明に従って、dbMAGICの各テーブルに記入する場合と同じ操作手順で、［メニュー定義］テーブルに記入します。テーブルの行は［編集／行削除］（｛F3｝）で削除し、［編集／行作成］（｛F4｝）で作成します。メニューの［タイプ］欄では、テーブルに再帰的に記入できます。［コンテキストメニュー］テーブルの編集も同様の操作で行います。

［メニュー］テーブルの各欄の説明

タイプ

メニュー特性

ユーザメニュー名

論理メニュー名

パラメータ

ショートキー

メニューフォーム作成


タイプ

［メニュー定義］テーブルの入力データとして指定できるタイプは、「Ｐ＝プログラム」、「Ｅ＝ＯＳコマンド」、「Ｓ＝システム」、「Ｌ＝ライン」、「Ｍ＝メニュー」です。プルダウンメニューの場合、「ライン」は、最上位レベルのメニューには指定できません。最上位レベルのメニュー項目は、メニューバーに沿って横に表示されるためです。最下位レベルのメニューには、「メニュー」は指定できません。これは下位レベルのメニュー定義へのポインタであるためです。

Ｅ＝ＯＳコマンド

 … ［パラメータ］欄は、オペレーティングシステムのコマンドを含むことになります。実行時にエンドユーザによって選択された場合は、このコマンドが実行されます。

Ｓ＝システム

 … ［パラメータ］欄は、dbMAGICのアクションを含むことになります。実行時にエンドユーザによって選択された場合は、このdbMAGICのアクションに対応する機能が実行されます。

Ｌ＝ライン

 … メニューでは、この位置に横線が表示されます。メニューフォームの一番下の行は、実行時には表示されません。

Ｍ＝メニュー

 … これがエンドユーザメニューの名前であることを意味します。最上位レベルのプルダウンメニューの場合は、「Ｍ＝メニュー」タイプの入力データの［メニュー名］欄の名前がメニューバー上に表示されます。プルダウンメニューのほかのレベルやコンテキストメニューの場合には、［メニュー名］欄の名前は、メニューの１行のテキストとなります。この行がアクティブであり、選択された場合、関連メニューが表示されることになります。コンテキストとプルダウンのメニューのすべてのレベルで、名前の１文字を下線付きで表示するように指定できます。この場合、下線付きで表示する文字の前にアンド記号（＆）を付けます。実行時にメニューが表示されたときに、この文字を入力すると、このメニュー項目を選択したことになります。プルダウンメニューのメニューバーレベルの場合にだけ、｛Alt｝＋｛指定文字｝で作成されるショートキーが自動生成されます。ショートキーは、テキストベースのシステムにだけ関係します。

Ｐ＝プログラム

 … ［パラメータ］欄は、［プログラム］テーブルのプログラム番号を含むことになります。対応するプログラム名がメニューに表示されます。実行時にエンドユーザによって選択された場合は、このプログラムが実行されます。

注意：［＃］（メニュー定義の番号）欄には、dbMAGICがメニューデータを識別するために使用する通読番号が表示されます。この番号は自動生成されます。カーソルは、この欄には止まりません。


ユーザメニュー名

項目の内容を表す名前を指定します。これは、メニュー上に表示される名前です。プルダウンメニューの場合、メニューバーの総スペースが画面の幅に制限されます。このため、メニューバーには長い名前のメニューを多くは登録できません。したがって、名前は、意味を損なわない程度にできるだけ短くしてください。メニューバーの最後の名前がはみ出すような場合は、残りのスペースに収まるように切り捨てられます。メニューバーが満杯になっている場合は、名前を追加しようとするとエラーメッセージが表示されます。メニューバー上で別項目として見えてしまうため、メニューバーの名前に空白は使用できません。

注意： プルダウンメニューの［メニュー名］欄すべてが空白の場合、実行時にはこのメニューフォームは表示されません。


論理メニュー名

この欄には、メニュー項目の論理的な名前を設定します。エンドユーザが見るメニューには、この名前は表示されません。


パラメータ

以下の表に示すように、［パラメータ］欄のパラメータの種類は、［タイプ］欄のデータ（タイプ）に対応しています。

メニューデータのタイプ	パラメータ	意味	値
メニュー	サブライン	ズームして、メニュー階層での１つ下位レベルのメニューの［メニュー定義］テーブルを表示します。	このレベルのメニューの行数。つまり、１つ下位レベルのメニュー数
プログラム	プログラム	ズームして［プログラム］一覧を表示させ、プログラム番号を選択します。	プログラム番号
OSコマンド	OSコマンド	OSのコマンドを実行するために、一時的にOSを抜けます。シェルスクリプトまたはバッチファイルを含む、実行可能なオペレーティングシステムのコマンドを入力します。	文字列。広域ウィンドウをオープンして入力することもできます。OSコマンドを省略した場合は、実行時にこの項目が選択されるとOSプロンプトが表示されます。
システム	アクション	ズームして［アクション一覧］を表示させ、目的のアクションを選択します。環境に対する制御権をエンドユーザに与えます（dbMAGICのアクションについての詳細は、「16.1 設定メニュー」の「設定／キーボード割付」を参照）。	dbMAGICのアクション
ライン	なし	前の項目群と次の項目群とを区切る横線をメニュー上に表示します。	なし


ショートキー

この欄からズームすると、ダイアログが表示され、そのメニュー項目へのショートキーとして使うキーの組み合わせを定義できます。


メニューフォーム作成

［メニュー定義］テーブルの任意の行から、［オプション／フォーム自動作成］（｛Ctrl｝＋｛G｝）を選択すると、［メニューフォーム作成］ダイアログが表示されます。


メニュー特性ダイアログ

［タスク環境／特性］を選択すると、［メニュー特性］ダイアログが表示されます。このダイアログでは、メニューに［使用権利］を割り当てることができます。各特性ダイアログの内容は、メニュー項目に適用されているタイプによって異なります。

［メニュー特性］ダイアログで入力した［使用権利］は、エンドユーザがこのメニュー行に対して使用権利を持つかどうかを決定します。ここに入力した使用権利を持たないエンドユーザは、このメニュー行へのアクセスが拒否されます。つまり、メニュー行は表示されず、メニューにはこの項目のスペースも確保されません。

［ＯＳコマンド］タイプのメニューデータの場合、特別な［メニュー特性］ダイアログが表示されます。［ＯＳコマンド］タイプのメニューデータに対しては、［使用権利］欄以外に、オペレーティングシステムのコマンドを実行するときにコマンドが終了するのを待つか（［ウェイト］）と、コマンド実行時に画面をどうするか（［画面］）を指定できます。

メニューの位置付けは、Windowsによって管理されます。プルダウンメニューの位置は指定できません。


画面

［画面］欄では、外部プログラムが表示される方法を設定します。「Ｈ＝なし」、「Ｎ＝通常」、「Ｘ＝最大化」、「Ｍ＝アイコン化」のどれかに設定します。

■	Ｈ＝なし

  … 外部プログラムを、現在表示されているウィンドウの裏で実行させます。外部プログラムは見えません。

■	Ｎ＝通常

  … デフォルト値。外部プログラムがウィンドウ上で実行されます。

■	Ｘ＝最大化

  … 外部プログラムはウィンドウ上で実行され、そのウィンドウが画面いっぱいに最大化されます。

■	Ｍ＝アイコン化

  … 外部プログラムが最小化されて実行され、アイコン化されます。

注意： 外部アプリケーションを見えないように実行させる場合には、外部プログラムの標準出力メッセージを、画面からディスクファイルかヌルファイルにリダイレクトすることをお勧めします。


ウェイト

［ウェイト］欄では、dbMAGICがプログラムを続ける場合に、呼び出されているプログラムの完了を待つかどうかを設定します。

■No … デフォルト値。呼び出されているプログラムの完了を待たないで、プログラムを続けます。

■Yes … 呼び出されているプログラムが完了してから、プログラムを続けます。


ボタンイメージ

ユーザイメージファイルで、説明はdbMAGICのイメージファイルと同様です。この欄から、Windowsの「ファイルを開く」ダイアログをオープンできます。このイメージがツールバーに表示されます。


バルーンヘルプ

50文字までの説明文で、マウスカーソルを、ツールボタンの上で停止させたときに表示されます。


ツールグループ

ツールを位置付けるためのグループ番号です（0-9999）。グループの間には、セパレータが挿入されます。


イメージ数

dbMAGICの内部イメージの番号です。これらのイメージはdbMAGICの内部に埋め込まれていて、選択できます。


チェックマーク

項目の左にチェックマークを付けて表示します。ツールボタンを関連付けている場合、チェックされている間は、ボタンが押された状態で表示されます。


可視

メニュー項目と、ツールバーの表示／非表示を設定します。


有効

メニュー項目と、ツールバーの有効／無効を設定します。


使用権利

［メニュー特性］ダイアログで入力した［使用権利］は、エンドユーザがこのメニュー行に対して使用権利を持つかどうかを決定します。ここに入力した使用権利を持たないエンドユーザは、このメニュー行へのアクセスが拒否されます。つまり、メニュー行は表示されず、メニューにはこの項目のスペースも確保されません。アクセスできる行がないメニューは表示されません。テキスト行のないメニューも表示されません。


ヘルプ画面

メニューにヘルプ画面を添付するかどうかを設定します。ズームまたはダブルクリックで［ヘルプ一覧］を表示して、ヘルプ画面を選択して設定します。


自動ヘルプ

メニューに自動ヘルプの画面を対応させるかどうかを設定します。ズームまたはダブルクリックで［ヘルプ一覧］を表示して、ヘルプ画面を選択して設定します。


ショートカットメニュー

この欄を使用して、開発者はコンテキストメニューのショートカットメニュー機構を現在のタスクに付加することができます。実行時、このタスクにフォーカスがある状態で、エンドユーザがショートカットメニューを呼び出した場合、アプリケーションのポップアップメニューの代わりに、この欄で設定されたショートカットメニューが表示されます。エンドユーザに対してショートカットメニューを定義するための詳細は、第10章「エンドユーザメニュー」を参照してください。


イベント

dbMAGICのプログラムは、エンドユーザが選択して呼び出すか、アプリケーションエンジンかタスクの［処理］テーブルで定義した［コールプログラム］コマンドを実行して呼び出します。また、dbMAGICのタスクは、アプリケーションエンジンがその親タスクの［処理］テーブルで定義した［コールタスク］コマンドを実行して呼び出します。

dbMAGICのプログラムと子タスクを呼び出すには、ほかに、イベントと呼ばれる特殊なオブジェクトを使用する方法があります。ここでは、アプリケーションエンジンがどのようにイベントを管理するか、また自分のdbMAGICアプリケーションにイベントを取り入れるにはどうすればよいかについて説明します。

dbMAGICのイベントとは？

イベントは、イベントトリガとイベントプログラムを組み合せたものです。イベントプログラムは、dbMAGICのプログラムまたは子タスクです。イベントプログラムは、タスクの実行中に一定の条件が満たされれば、いつでも実行されます。

■	イベントは実行モードでだけ機能します。

■	イベントはオンラインタスクとバッチタスクのどちらでも機能します。

各イベントは、イベントテーブルの入力データとして定義します。この場合は、プログラム一覧のプログラム、またはタスク一覧の子タスクとそのトリガを指定します。トリガとは、エンジンにイベントを実行させるための条件またはエンドユーザのキー入力などの処理です。

イベントには、アプリケーション関連のイベントとタスク関連のイベントの２種類があり、どちらも適用範囲（スコープ）が異なります。また、タスクイベントには、独自の特徴がいくつかあります。

イベントとして起動されるプログラムまたは子タスクは、［コールプログラム］コマンドで呼び出されるプログラムまたは子タスクと同様に動作します。ただし、これらが動作する状況はかなり異なります。

■	［コールプログラム］か［コールタスク］コマンドで起動されたプログラムや子タスクは、実行が終了すると、エンジンによって別の処理が開始されます。

■	イベントとして実行されるプログラムまたは子タスクは、現在の処理に割り込みます。エンジンは、イベントプログラムが終了すると、割り込みをかけられたタスクについて、割り込みが発生した時点の状態で実行を再開します。

たとえば、エンドユーザはイベントテーブルに定義してあるホットキーを押すと、項目を編集しているときでもイベントプログラムを実行できます。イベントプログラムが終了すると、イベントが発生した時点の状態で引き続き項目を編集できます。

アプリケーションエンジンとイベント

イベントトリガ

イベントトリガには３種類あります。イベントプログラムは、以下の方法で呼び出します。

■　キー入力 … ［キーボード割付］ダイアログ（「16.1 設定メニュー」の「設定／キーボード割り付け」を参照）で選択した特定のホットキーをイベントに対応させることができます。エンジンは、ホットキーが定義されている場合に、エンドユーザがそのホットキーを押すと、イベント用に定義されたプログラムを実行します。

■　経過時間 … タスクを実行したあと、エンジンは、経過時間に指定した時間が過ぎると、イベントを起動します。イベントを終了した時点から［経過時間］が再び過ぎると、エンジンはもう一度イベントを起動します。イベントは［経過時間］ごとに起動されます。

■　条件 … イベントを論理式に対応させることができます。式の評価が真である場合、エンジンはイベントを起動し、イベントプログラムまたは子タスクを呼び出します。この条件付きのトリガは、タスク関連のイベントでだけ使用できます。アプリケーション関連のイベントには使用できません。

以下の点に注意してください。

1.	１つのイベントに対して複数のトリガ実行条件を指定できます。dbMAGICは、それらのトリガをAND条件式の論理構成要素とみなします。エンジンは、指定したトリガがすべて同時に発生した場合にだけイベントを起動します。

2.	トリガとして定義するホットキーは、イベント前の状態ですでに機能しているショートキー（｛F3｝など）でもかまいません。エンドユーザがこれを押すと、エンジンは最初に対応したイベントを最初に起動します。このショートキーが対応するほかの機能は実行されません。イベントのホットキーによるトリガによってキーの通常の機能は無効になります。

3.	イベントを定義してもトリガを指定していない場合は、dbMAGICによって、キー入力のたびに、または［設定／動作環境］の［キーボード休止秒数］で指定する時間切れ（下記参照）が過ぎた場合に、イベントが自動的に起動されます。

エンジンがイベントを確認する時期

アプリケーションエンジンは、以下の場合にイベントテーブルを検査します。

1.	エンドユーザがキーを押している場合

2.	タスクがエンドユーザの入力を待っている間に［キーボード休止秒数］の時間切れが発生した場合。［キーボード休止秒数］欄は、［設定/動作環境］内にあり参照または変更がりできます（「16.1 設定メニュー」の「設定／動作環境」を参照）。

3.	現在実行中のタスクが、イベントとして実行されているプログラムに属する場合は、同じプログラムをイベントとして再起動できません。つまり、イベントプログラムまたはタスクは再帰的に実行できません。エンジンは、イベントプログラムが終了しないかぎり、再びそれを起動することを許可しません。ただし、その他のイベントプログラムまたはタスクは、dbMAGICで許可されているプログラムのネスト化の最高レベルに達するまで、現在のイベントの中から呼び出すことができます。

4.	バッチタスクの場合は、エンジンがアボート不可能な処理レベルを実行している間、すべてのイベントが一時的に使用できなくなります。

エンジンによるイベントテーブル検査順序

アプリケーションエンジンは、以下の順序でイベントテーブルを検査します。

1.	現在実行中のイベントテーブル

2.	現在実行中のタスクの親タスクから、ルートタスクまでさかのぼるイベントテーブル

3.	現在のアプリケーションのイベントテーブル

トリガ（実行条件）が満たされた最初のイベントの実行が開始されます。最初のイベントがまだ実行中のときにだけ、同じトリガによって別のイベントを呼び出せます。１つのタスクのイベントテーブルに同じトリガがある場合は、上から順にイベントを呼び出します。

各種イベント

dbMAGICでは、以下の２種類のイベントを定義できます。

■	アプリケーションイベント

■	タスクイベント

どちらも適用範囲が異なります。また、タスクイベントには、独自の特徴がいくつかあります。

アプリケーションイベント

［開発／イベント］を選択すると、アプリケーションのイベントテーブルにアクセスして、アプリケーション全体に関連するイベントプログラムを登録できます。

これらのイベントは、アプリケーション用に開発した任意のプログラムの実行中に起動できます。

アプリケーションイベントでは、式によるトリガは登録できません。式テーブルはタスク内でだけ意味を持ちます。

タスクイベント

［タスク環境／タスクイベント］を選択すると、タスクのイベントテーブルにアクセスして、タスクに関連するイベントを登録できます。

これらのイベントはプログラムでも子タスクでもよく、各イベントの［スコープ］欄の設定に従って使用できます。タスクイベントは、定義されたタスク内でだけか、または子タスク全体（下位のすべての子タスクを含む）でアクティブにできます。

イベントプログラムとして実行されるプログラムは、起動されるタスクからパラメータを受け取ることができます。それには、イベントテーブルの［パラメータ］欄に適切なパラメータを定義します。

パラメータの受け渡しの規則は、［コールプログラム］処理で使用する規則と同じです（「8.14 コールプログラムとコール式」参照）。

タスクイベントには、［ロック］欄でロックを設定できます。

イベントの定義

アプリケーションイベントを定義するには、［開発／イベント］を選択して、そのアプリケーションに対応するイベントテーブルにアクセスします。

タスクイベントを定義するには、タスク定義時に［タスク環境／タスクイベント］を選択して、そのタスクに対応するイベントテーブルにアクセスします。

２種類のイベントは、どちらも同じテーブルにアクセスします。アプリケーションイベントを定義する場合に、カーソルは［式］、［スコープ］、［コール］、［パラメータ］、［ロック］の各欄をスキップします。これらの欄はタスクイベントにだけ関連します。

各欄の説明

ホットキー	コール
アクション	Prog/Task
経過時間	パラメータ
式	ロック
スコープ
例

以下に、イベントプログラムとこれを起動するイベントトリガの使用方法の例を２つ示します。最初の例はアプリケーションイベント、２番目の例はタスクイベントです。

アプリケーションイベント － 背景ウィンドウとタイマ

目的

この架空のアプリケーションイベントの目的は、エンドユーザに背景ウィンドウを示すことです。表示される背景ウィンドウは、現在のウィンドウに隠れていない部分だけです。この背景ウィンドウ（イベントのタスクウィンドウ）は通常、ほかのタスクのウィンドウの前面になりますが、ここではうしろに表示されます。

内容

エンドユーザに示されるアプリケーションの背景ウィンドウには、日付と時間の表示、会社のロゴ、背景パターンなど必要な内容はなんでも含めることができます。時間は頻繁に更新され、背景パターンは任意に変更できます。

方法

［開発／イベント］を選択してアクセスするアプリケーションのイベントテーブルには、このイベントの定義内容が表示されます。

［経過時間］の欄には５が入力されます。これがイベントトリガで、イベントプログラムは、エンドユーザが明確な処理をしなくても５秒ごとに起動されます。

アプリケーションのイベントテーブルには、［プログラム］欄に別の入力データがあります。入力値は19で、プログラム一覧にあるプログラムの番号を表しています。プログラム番号19が５秒ごとに起動されます。

イベントプログラムには、通常とは異なる設定がいくつかあります。

■	タスク特性

・	アプリケーションのバックグラウンドで実行する場合、メインファイルなしのバッチタスクと設定されます。

■	タスク制御

・	［ウインドウ消去］欄は「No」に設定されています。「Yes」に設定すると、タスク終了時にタスクウインドウを閉じる（消去する）ことを意味します。「No」は、タスク終了時に、タスクウインドウを画面上の最後の内容のまま、残すことを意味します。同じタスクが再度実行された場合、前にオープンしたウインドウが閉じられ、新しいウインドウがオープンされます。最終的に、オープンされたウインドウのすべてが、実行環境を終了する時に、連続して閉じられます。

・	［前面表示］欄は「No」に設定されています。通常の設定では「Yes」です。「No」はタスクウィンドウが他のタスクのウィンドウの前面ではなく、うしろに表示されることを示します。

・	［タスク終了］欄は「Yes」に設定されています。通常の設定では「No」です。このイベントプログラムは、メインファイルを持たないバッチタスクであるため、終了条件が必要です。メインファイルがなく、終了条件もない場合は、プログラムが無限ループで実行されます。

・	［チェック時期］欄は「Ａ＝後置」に設定されています。［タスク終了］欄が「Yes」で［チェック時期］欄が「Ａ＝後置」の場合は、［タスク前処理］と［タスク後処理］レベルだけが実行されます。この例では、タスクのフォームに情報を置く時刻と日付の式だけが必要で、操作は必要ありません。

タスクイベント － 受注登録画面の印刷出力

目的

エンドユーザが必要に応じて、または希望するときはいつでも処理ができるようにします。この場合に、エンドユーザは、［受注登録画面］の処理中はいつでも、ホットキーを押して注文を印刷出力できます。

内容

［受注登録画面］には、特定のキーを押して注文を印刷出力するように、メッセージが表示されます。

エンドユーザは、［受注登録画面］タスクの処理はいつでも、表示されているホットキーを押して注文を印刷出力できます。

方法

［受注登録画面］タスクが対応付けられているイベントテーブルには、［受注登録画面］のタスク定義から［タスク環境／タスクイベント］を選択してアクセスできます。

以下に、イベントテーブルで重要な定義内容を示します。

■	［ホットキー］欄にはホットキー設定、｛Ctrl｝＋｛P｝が入力されています。これは、［キー設定］ダイアログにズームして｛Ctrl｝＋｛P｝を押すと定義されます。これによってイベントトリガとしてのホットキーが定義されます。

■	［Prog／Task］欄の数字は、エンドユーザがホットキーを押すと起動するイベントプログラムを示します。

■	［パラメータ］欄の数字は、イベントプログラムに渡されるパラメータの数を示します。

さらに［受注登録画面］用の書式レイアウトには、ユーザにホットキーを使用するように伝える文が入っていなければなりません。

このタスクのイベントプログラムは、ホットキーを使ったときにだけ起動されるもので、経過時間などでは起動されません。このイベントは、これが定義されたタスクの実行中にしか使用できません。


ホットキー
ホットキー（任意）

ホットキーをイベントに対応させる場合は、ズームして［キー設定］ダイアログを表示し、適切なホットキーを指定します。

注意：［＃］欄には、自動生成の連続番号が表示されます。カーソルはこの欄には止まりません。


アクション
アクション（任意）

ズームして［アクション一覧］ダイアログを表示し、適切なアクションを選択できます。実行時にこのアクションを呼び出すと、イベントが起動します。

アクショントリガをイベントにする場合は、この欄にアクションを指定します。

たとえば、アクション「行作成」を指定すると、エンドユーザが｛F4｝（標準キー割り付け）を押すたびにイベントが実行されます。イベントのアクショントリガとホットキートリガは同時に指定できません。つまり、［イベント］テーブルの各行ではどちらか１つの欄にしか入力できません。アプリケーションでは、カスタムアクションを20種類まで使用できます。これらは、アクション一覧にユーザ定義アクション１～ユーザ定義アクション20と表示されます。これらのアクションを定義すると、実行時にはアクティブであり続け、イベントトリガとして使用できます。これらのアクションは、イベントトリガ以外では使用されません。


経過時間
経過時間（任意）

所定の時間間隔で自動的にイベントを起動させる場合は、その間隔とする時分秒単位を入力します。

デフォルト値はゼロで、その場合は所定の時間間隔でのイベントの自動起動は行われません。


式
式（任意）

アプリケーションのイベントテーブルでは、カーソルはこの欄をスキップします。

タスクイベントを条件付きで起動する場合、ズームして［式］テーブルを表示し、適切な条件を指定します。

デフォルト値はゼロで、その場合は論理式の評価に基づく条件付きのイベント起動は行われません。


スコープ
スコープ（必須）

アプリケーションのイベントテーブルでは、カーソルはこの欄には止まりません。

タスクイベントは、特定のタスクのオブジェクトとして定義されます。しかし、イベントのスコープは、そのタスクの下位にあるすべての子タスクまで拡大できます。この場合は、イベントがそれらの子タスクによってもアクティブになります。また、イベントのスコープは定義したタスクに限定することもできます。

［スコープ］欄には、以下の２つの値を設定できます。

■　Ｓ＝サブツリー … イベントは、イベントを定義するタスクの下位にあるすべての子タスクでアクティブになります。「Ｓ＝サブツリー」はデフォルトの設定です。

■　Ｔ＝タスク … イベントは、定義したタスクでだけ利用できます。


コール
コール（必須）

アプリケーションのイベントテーブルでは、この欄にデフォルト値の［Ｐ＝プログラム］が入り、カーソルはこの欄には止りません。

タスクのイベントテーブルでは、デフォルト値は「Ｐ＝プログラム」です。「Ｔ」と入力するかコンボボックスをクリックし、「Ｔ＝タスク」を選択すれば、イベントで呼び出す子タスクを設定することができます。


Prog/Task
Prog／Task（必須）

［コール］欄に「Ｐ＝プログラム」を設定している場合は、ズームしてプログラム一覧を表示し、イベントプログラムとするプログラムを選択します。［コール］欄に「Ｔ＝タスク」を設定している場合は、ズームしてタスク一覧を表示し、イベントタスクにする子タスクを選択します。


パラメータ
パラメータ（任意）

アプリケーションのイベントテーブルでは、カーソルはこの欄には止まりません。

タスクイベントによって呼び出されるプログラムまたは子タスクにパラメータを渡す場合は、ズームして［パラメータ］テーブルを表示し、適切なパラメータを指定します。パラメータ受け渡しについての詳細は、「8.14 コールプログラムとコール式」を参照してください。


ロック

アプリケーションのイベントテーブルでは、カーソルはこの欄には止まりません。

また、タスクイベントの［コール］欄が「Ｐ＝プログラム」で［パラメータ］欄が「０」の時も、カーソルはこの欄には止まりません。

タスクまたはプログラムがタスクイベントとして呼び出されると、現在のビューレコードの処理は、イベントが終了するまで中断されます。呼び出されたイベントタスクまたはプログラムは、現在のビューレコードのすべての項目を利用できます（プログラムの場合は、項目がパラメータとして渡されたとき）。そのため、呼び出されたイベントタスクまたはプログラムは、現在のビューレコードの項目の一部を更新することがあります。ビューレコードは、［タスク制御］ダイアログの［ロック方式］欄で「Ｏ＝入力時」または「Ａ＝入力後」を使用している場合に、最初の変更時または項目への入力完了を確認した直後にロックされます。イベント子タスクまたはプログラムが現在のレコードを変更しようとする場合は、現在のレコードもロックする必要があります。子タスクとプログラムは１つの実行単位で、実行するにはある程度の時間が必要です。そのため、イベント子タスクまたはプログラムの実行中は、他のユーザの現在のビューレコードへのアクセスを禁止して修正できないようにする必要があります。そうしないと、イベント子タスクまたはプログラムの終了時に、現在のレコードをディスクに書き込めないことがあります。したがって、現在のレコードは、イベント子タスクまたはプログラムを実行する前にロックしてください。しかし、イベント子タスクまたはプログラムが現在のビューレコードを修正しない場合には、他のユーザがリソースにアクセスできるように、現在のビューレコードをロックしてはなりません。

［ロック］欄の目的は、パラメータを持つイベントタスクまたはプログラムを呼び出すときにロックを制御することです。以下に、有効な値を示します。

■　No … イベントタスクまたはプログラムを実行する場合に、現在のビューレコードをロックしません。開発者は独自に、イベントプロセスからレコード項目への更新が起らないようにしてください。このような更新は、他のユーザによる変更であるために現在のビューレコードをディスクに書き込めず、変更内容が失われることがあります。

■　Yes … 現在のビューレコードは、イベントタスクまたはプログラムが実行されるとすぐにロックされます。イベントタスクやプログラムが現在のビューレコードを更新する場合、またはイベントタスクやプログラムが更新処理を行うときに現在のビューレコードも更新する必要がある場合は、必ず「Yes」を指定してください。

■  式  … 呼び出されるイベントタスクまたはプログラムにパラメータが渡されている場合、［式］テーブルへズーム（｛F5｝）して、［ロック］欄の値を制御する式を設定することができます。


辞書入出力

dbMAGICの辞書入出力ユーティリティを使用すると、アプリケーションの構成要素を簡単に移植、変換、文書化できます。以下のものを含むサービスが提供されます。

■	移植。別の場所やプラットホームにあるdbMAGICアプリケーションに取り込むために、アプリケーションの構成要素を出力できます。

■	CTLファイルの再編成のために、同じアプリケーションを出力して、ふたたび取り込みます。この操作で、新しいCTLファイルが作成されます。

入力ユーティリティでは、出力ユーティリティを使用して出力したアプリケーションの構成要素が取り込まれます。入力操作のあとに、取り込まれた構成要素が対応する辞書に追加されます。たとえば「顧客ファイル」という名前のデータファイルを取り込ませると、そのファイルが現在使用しているアプリケーションの［ファイル辞書］テーブルの最後に追加されます。「顧客リスト印刷」という名前のプログラムを取り込ませると、そのプログラムが［プログラム辞書］テーブルに追加されます。

入力ユーティリティは、dbMAGICの以前のバージョンで作成したアプリケーションを、dbMAGICバージョン7.xに変換する場合に使用します。以前のバージョンからの変換では、古いバージョンの出力機能を使用してアプリケーションを出力して、新しいバージョンで入力操作を実行します。dbMAGICの現在のバージョン（Ver.7.x）では、以前のバージョンで作成したデータファイルも認識されます。

辞書入出力を組み合わせて使用すると、他のdbMAGICアプリケーションに、アプリケーションの一部または全体を移植できます。

辞書入出力の操作を実行するには［開発／辞書入出力］（｛Shift｝+｛F10｝）を選択します。［辞書入出力］ダイアログがオープンします。

［辞書入出力］ダイアログには、複数の設定欄があります。dbMAGICでは、操作設定欄の内容と矛盾する設定欄にはカーソルを移動できません。入力操作の場合は、「操作」と「ファイル名」の設定欄だけにアクセスできます。

［辞書入出力］ダイアログの各欄の説明

操作

辞書タイプ

最適化

テキストフォーム作成

開始番号と終了番号

ファイル名

エラーメッセージ


操作

この欄には、「Ｅ＝出力」、「Ｄ＝仕様書出力」、「Ｉ＝入力」、「5＝入力／V5.xx V4.xx」の、４種類のオプションがあります。操作のオプションには出力、仕様書出力、入力、あるいは入力／V5.xx V4.xxがあります。

初めてユーティリティを起動すると、この設定欄は、デフォルトの「Ｅ＝出力」になっています。２回目以降のデフォルトは、前回実行された操作です。

「Ｅ＝出力」では、アプリケーションの構成要素を出力します。

「Ｄ＝仕様書出力」では、出力した辞書のさまざまな構成要素を記述したレポートを自動的に作成します。dbMAGICの仕様書出力ユーティリティは、特別なテンプレートファイル（デフォルトは“DOC_STD.JPN”）を使用します。テンプレートファイルでは、仕様書のフォーマットを設定するために専用の記述言語を使用します。この“DOC_STD.JPN”ファイルは、テキストエディタを使用して編集することができますので、ユーザの必要に合わせてカスタマイズしたドキュメントテンプレートを使用することができます。“DOC_EXT.JPN”ファイルを使用すれば、dbMAGICの辞書のより詳細な仕様書を作成することができます。ドキュメントテンプレートファイルと、専用の記述言語に関する詳細は、第27章「ドキュメントテンプレート機能」を参照してください。

「Ｉ＝入力」では、dbMAGICバージョン６以上を使用して出力したアプリケーションの構成要素を入力します。

「5＝入力／V5.xx V4.xx」では、dbMAGICバージョン5.xxおよびバージョン4.xxを使用して出力したアプリケーションの構成要素を入力します。


辞書タイプ

出力されるアプリケーションの構成要素です。

出力の辞書タイプでは、すべてのアプリケーションの構成要素を対象にすることもできます。コンボボックスで、以下のどれかを選択して出力できます。

■　Ｔ＝タイプ … タイプ辞書

■　Ｆ＝ファイル … ファイル辞書

■　Ｐ＝プログラム … プログラム辞書

■　Ｈ＝ヘルプ … ヘルプ辞書

■　Ｒ＝権利 … 権利辞書

■　Ｍ＝メニュー … アプリケーションメニュー

■　Ｃ＝CTL … アプリケーションのCTL特性データ

■	Ａ＝アプリケーション … アプリケーション。

個々の構成要素（タイプ、ファイル、プログラムなど）を別々にしてアプリケーション全体を移植する、構成要素を新しいアプリケーションに取り込む順序が重要です。これは、構成要素が別のものを参照することがあるためです。つまり、アプリケーション全体を個々の構成要素に分解して入力したり、以前のバージョンの出力ファイルを取り込んだりする場合は、常に以下の順序で行ってください。

－　権利

－　ヘルプ

－　タイプ

－　ファイル

－　プログラム

－　ポップアップメニュー（バージョン4.xxではメニュー）

－　プルダウンメニュー

－　ユーザＩＤ

－　CTL

注意： 内部クロスリファレンスを維持するために、完全な構成要素を入力。dbMAGICでは、１回のセッションで入力するかぎり、辞書間と辞書内のリファレンスが維持されます。プログラム辞書を複数の部分に分割している場合は、入力される最初の部分についてだけ、プログラム間のクロスリファレンスが維持されます。また、プログラムを既存のCTLに入力すると、内部クロスリファレンスが失われます。


最適化

この欄は、［操作］欄で「５＝入力／V5.xx V4.xx」を選択したときに使用できます。

辞書入力でdbMAGICが生成するGUIフォームの外観を決めます。

利用可能な選択は下記のとおりです。

■	Ｎ＝なし - 最適化しない

■	２＝平面最適化 - 平面コントロールを使ってフォームを最適化する

■	３＝立体最適化 - 立体コントロールを使ってフォームを最適化する


テキストフォーム作成

この欄は、［操作］欄で「５＝入力／V5.xx V4.xx」を選択したときに使用できます。

dbMAGICバージョン7では、辞書入力時にアプリケーションの各フォームを自動的にGUIフォームに変換します。この［テキストフォーム作成］欄で「Yes」を選択したらdbAMGICは、 GUIフォーム以外にテキストフォームも作成します。

利用可能な値は、「Yes」または「No」（デフォルト）です。


開始番号と終了番号

ファイル、プログラム、ヘルプ画面を出力する場合に、範囲を指定してその一部だけを出力させることができます。たとえば、最初の３つのデータファイル（ファイル辞書テーブルの最初の３行にあるもの）を出力する場合は、「開始番号=1」、「終了番号=3」と指定します。

［辞書タイプ］欄での選択に従って、どちらの欄からでも［ファイル一覧］、［プログラム一覧］、［ヘルプ一覧］にズームできます。


ファイル名

出力構成要素を保存するディスクファイル、または取り込まれるファイルです。

dbMAGICの出力操作では、以下の規則に従って、自動的にファイルの名前が決定されます。

■	最初の部分はアプリケーション識別子で、［設定／アプリケーション］テーブルで定義されています。

■	識別子のあとに、［辞書タイプ］欄で設定されている文字が続きます。これは、出力する構成要素の選択時に指定する文字で、「Ｔ＝タイプ（辞書）」の場合は「Ｔ」、「Ｆ＝ファイル（辞書）」の場合は「Ｆ」などです。

■	ファイル、プログラム、ヘルプを１つだけ出力する場合は、４桁の数字が名前に追加されます。たとえば、DOS ファイルの場合は、この方法で"DMF0001"、"DMP0003"、"DMH0005"などの名前が付けられます。

［ファイル名］設定欄では、“C:\MYDIR\DMP”などのように名前にパス名を追加できます。dbMAGICでは、パス名を示さない場合は、現在のディレクトリが想定されます。別の位置に出力する場合は、ファイル名またはパス名、あるいはその両方を変更します。

dbMAGICでは、ファイルがディスクに存在するかどうかについては検査されません。指定したディレクトリに同名のファイルが存在する場合は上書きされます。

dbMAGICの入力操作では、現在のアプリケーションの識別子が表示されます。取り込むファイル名（必要ならパス名も）を入力してください。［名前を付けて保存］ダイアログをズームすることが可能です。


エラーメッセージ

ファイル内のエラーにより、dbMAGICが入力操作に失敗した場合、ファイル入力エラーが表示されます。このメッセージにより、エラー箇所がファイル内のどの行にあるかを知ることができます。


「既存のコンテキストメニューを削除しますｔますか？」

「Yes」を選択すると、現在のアプリケーションのデフォルトのコンテキストメニューを、辞書入力したアプリケーションのコンテキストメニューで上書きします。


「既存のプルダウンメニューを削除しますｔますか？」

「Yes」を選択すると、現在のアプリケーションのデフォルトのプルダウンメニューを、辞書入力したアプリケーションのプルダウンメニューで上書きします。


タスク環境

このメニューからアクセスできる項目についての詳細は、以下の項目を参照してください。

オプションメニュー

式

検索

ソート

SQLコマンド


オプションメニュー

［オプションメニュー］ダイアログを使用して、エンドユーザが［オプション］メニューで選択できる処理モードを指定します。また、［オプションメニュー］ダイアログを設定すると、タスクの初期モードとなる処理モードも決まります。

注意： タスクの初期モードとして設定されている処理モードが［オプションメニュー］ダイアログで無効に設定されている場合は、実行時にそれを伝えるエラーメッセージが表示されます。エンドユーザがメッセージを確認すると、タスクは終了します。

ダイアログ内の各欄の説明

メニュー使用	キー変更
修正	ソート
登録	入出力ファイル
削除	アボート
照会	キー最適化
位置付	照会モード位置付
範囲	レポートジェネレータ


メニュー使用
メニュー使用：Yes（デフォルト値）

「No」の場合は、［オプション］メニューを使用できません。したがって、初期モードから別の処理モードに切り替えられません。


修正
修正：Yes（デフォルト値）

「No」の場合は、修正モードが使用できません。


登録
登録：Yes（デフォルト値）

「No」の場合は、登録モードが使用できません。


削除
削除：Yes（デフォルト値）

「No」の場合は、［編集］メニューの［行削除］（｛F3｝）が使用できません。


照会
照会：Yes（デフォルト値）

「No」の場合は、照会モードが使用できません。


位置付
位置付：Yes（デフォルト値）

「No」の場合は［オプション］メニューで「位置付」が使用できません。照会モードでは、自動位置付機構が働きません。


範囲
範囲：Yes（デフォルト値）

「No」の場合は、［オプション］メニューで「範囲」が使用できません。


キー変更
キー変更：Yes（デフォルト値）

「No」の場合は、［オプション］メニューで「キー」が使用できません。また、自動キー最適化も使用できません。


ソート
ソート：Yes（デフォルト値）

「No」の場合は、［オプション］メニューで「ソート」が使用できません。


入出力ファイル
入出力ファイル：Yes（デフォルト値）

「No」の場合は、［オプション］メニューで「入出力ファイル」が利用できません。したがって、入出力ファイルをリダイレクトできません。


レポートジェネレータ
レポートジェネレータ：No（デフォルト値）

「Yes」の場合は、レポートジェネレータを使用できます。


アボート
アボート：Yes（デフォルト値）

バッチタスクでだけ有効です。実行時にエンドユーザに対して「終了」キー（「Ｅ：終了」アクションを割り当てたキー）を有効にするかを制御します。「No」の場合は、「終了」キーは無効となり、タスクの実行をアボート（中断）させることはできません。

特定の処理レベルでだけアボートできるようにする場合は、この欄の式としてLEVEL関数を使用できます。たとえば、以下の式を使用すると、ブレイク後処理でだけアボートできます。

LEVEL(0) = 'L1P'


キー最適化
キー最適化：Yes（デフォルト値）

範囲/位置付マスクに明示的に指定されている項目をチェックして、検索に最適なキーを決めます。指定された項目のどれかがキー項目の場合、現在アクティブなキーが指定された項目の１つではないときは、範囲/位置付マスクに明示的に指定されている主要項目を持つ最初のキーが自動的にアクティブなキーになります。主要項目は、キー特有の項目になります。

「No」の場合は、キー最適化機構は無効になります。


照会モード位置付
照会モード位置付：Yes（デフォルト値）

「No」の場合は、照会モードでは自動位置付機構は働きません。


クロスリファレンス実行結果：ファイル

特定のデータファイルを使用するプログラムの一覧を表示させるには、［ファイル辞書］テーブルにアクセスして、目的のデータファイルを強調表示させます。次に、［オプション／クロスリファレンス］（｛Ctrl｝+｛X｝）を選択します。

プログラム一覧が表示されます。この一覧には以下の情報が含まれます。

＃

［プログラム辞書］テーブルでのプログラムの連続番号

プログラム名

［プログラム辞書］テーブル内でのプログラム名

タスク

プログラム内で、指定のデータファイルが使用されているタスクの数

さらに詳しい情報を表示させるには、プログラムを強調表示させてズームします。別のテーブルが表示されます。このテーブルは、検索するデータファイルを使用している特定のタスクの一覧で、以下の情報が含まれます。

タスク番号

プログラム内でのタスクの階層上の位置

内容

タスク名（親タスク名も含みます）

アクセス

DBファイルテーブルで設定されている、データファイルのアクセスモード


クロスリファレンス実行結果：項目

特定の項目を使用するプログラムまたはキーの一覧を表示させるには、［ファイル辞書］テーブルにアクセスして、検索する項目を含むデータファイルを反転表示させます。ズームして［項目］テーブルを表示し、目的の項目を強調表示させます。次に、［オプション／クロスリファレンス］（｛Ctrl｝+｛X｝）を選択します。

dbMAGICでは［検索］ダイアログが表示されます。検索方法を選択します。

プログラムでの項目

［検索］ダイアログで「Ｐ＝プログラム」を選択すると、結果は［プログラム一覧］になります。このテーブルには以下の情報が含まれます。

＃

［プログラム辞書］テーブル内でのプログラムの連続番号

プログラム名

［プログラム辞書］テーブル内でのプログラム名

タスク

プログラム内で、指定の項目を使用しているタスクの数

さらに詳しい情報を表示させるには、プログラムを強調表示させてズームします。別のテーブルが表示されます。このテーブルは検索される項目を使用する特定のタスクの一覧で、以下の情報が含まれます。

タスク番号

プログラム内でのタスクの階層上の位置

内容

タスク名（親タスク名も含みます）

リンク

項目が［リンク］コマンドの一部としてタスクで使用されている場合は、この欄にチェックマーク（＊）が表示されます。

キーでの項目

dbMAGICでは、［検索］ダイアログで「Ｋ＝キー」を選択すると、キーセグメントとしてその項目を使用するデータファイルとファイルキーが検索されます。ダイアログで選択を確認すると、キー一覧が表示されます。この一覧には以下の情報が含まれます。

＃

キーの（キーテーブルでの）連続番号

キー名

（キーテーブルでの）キー名

セグメント

キーにおける項目の位置（キーセグメントテーブルでの連続番号）


クロスリファレンス

クロスリファレンスユーティリティは、タイプ、項目、プログラムなどの実体が使用されている位置についての情報を提供します。クロスリファレンスユーティリティは、たとえば特定の項目、キー、データファイルなどを参照するプログラムの一覧を表示する場合に使用します。

クロスリファレンスユーティリティは、基本または上級の２つのレベルで使用できます。

基本的な使用法

クロスリファレンスユーティリティを使用して、以下のものが「使用されている位置」の一覧を表示できます。

■	タイプ

■	データファイル

■	項目

■	キー

■	プログラム

クロスリファレンスには、以下の５つの段階があります。

段階１　実体の選択

たとえば、特定のタイプを使用するプログラムを知りたい場合は、［タイプ辞書］テーブルを表示させて、目的のタイプを選択します。

段階２　ユーティリティの実行

クロスリファレンスユーティリティは、［オプション／クロスリファレンス］（｛Ctrl｝+｛X｝）を選択して実行します。

段階３　検索範囲の選択

検索範囲を選択するダイアログが表示されることもあります。たとえば、タイプを検索する場合は、データファイル、プログラムのどちらかで検索されます。

段階４　結果の表示

検索する実体を使用しているアプリケーションの構成要素の一覧が表示されます。たとえば、プログラム内でのタイプを検索する場合は、プログラムの一覧が表示されます。

段階５　詳細情報の表示

結果の一覧を表示したあと、それぞれの行をズームして、指定のタイプを使用するプログラムのタスクなどがわかる、別のテーブルなどの詳細な情報を表示できます。

検索の結果は、固定情報と変化情報として画面に表示されます。

以下の情報が、スクリーンの固定情報部分に含まれます。

タイプ

検索されるタイプ

ファイル

検索されるファイルまたは検索される項目を含むデータファイル

キー

検索されるキー

プログラム

検索されるプログラム

書式

項目またはタイプが検索に関係している場合の表示形式

項目

検索される項目

型

項目またはタイプが検索に関係している場合の型

スクリーンの下側には結果の一覧が表示されます。

さらに詳細な情報については下記の項目を参照してください。

クロスリファレンス実行結果：タイプ

クロスリファレンス実行結果：ファイル

クロスリファレンス実行結果：項目

クロスリファレンス実行結果：キー

クロスリファレンス実行結果：プログラム

上級レベルの使用法

クロスリファレンスユーティリティは再帰的に動作します。検索の最初の結果が表示される（段階４：結果の表示）と、表示結果についてさらに検索を要求できます。

たとえば、特定のタイプを使用するプログラムの一覧を表示するとします。次に、プログラムを反転表示させて｛Ctrl｝+｛X｝を押し、それを使用するプログラムの一覧を表示できます。また、特定の項目を使用するキーでの検索を実行したあとで、キーを反転表示させて｛Ctrl｝+｛X｝を押すと、指示されたキーを使用するプログラムの一覧を表示させることもできます。

クロスリファレンスユーティリティのこの機能を使用して、ユーティリティを終了することなく、別の件についても検索できます。


クロスリファレンス実行結果：タイプ

特定のタイプを使用するデータファイルまたはプログラムの一覧を表示させるには、［タイプ辞書］テーブルにアクセスして目的のタイプを強調表示させます。次に［オプション／クロスリファレンス］（｛Ctrl｝+｛X｝）を選択します。また、［タイプ辞書］テーブル内のタイプを含む、データファイルまたはプログラムの一覧を表示させるには、カーソルを［タイプ辞書］テーブルのタイトル行に置きます（どの行も強調表示されません）。次に、［オプション／クロスリファレンス］（｛Ctrl｝+｛X｝）を選択します。

dbMAGICでは、まず［検索］ダイアログが表示されます。検索領域を選択してからユーティリティを起動します。操作の実行中は、その進行状況が表示されます。検索中は、テーブルの中で強調表示領域が移動します。

ファイルでのタイプ検索

［検索］ダイアログで「Ｆ＝ファイル」を選択すると、結果はファイル一覧として表示されます。このテーブルには以下の情報が含まれます。

＃（ファイル識別番号）

［ファイル辞書］テーブルでのデータファイルの連続番号

ファイル名

指定したタイプを含むデータファイルの［ファイル辞書］テーブル内での名前

項目

データファイル内で指定のタイプが使用されている項目の数

さらに詳しい情報を表示させるには、データファイルを反転表示させてズームします。別のテーブルが表示されます。このテーブルは、参照するタイプに基づいて検索されたデータファイルの項目の一覧で、以下の情報が含まれます。

＃

［項目］テーブルでの項目の連続番号

項目名

［項目］テーブル内での名前

キー

その項目がデータファイルでキーとして使用される回数

さらにズームすると、［タイプ辞書］テーブルが表示されます。このテーブルには、タイプについてさらに詳しい情報が表示されます。また、現在のセッションがすべてのタイプを参照する場合は、この参照の対象となるタイプを検索できます。｛Esc｝キーを押せば、逆の順序でタイプ辞書テーブルに戻ります。

プログラムでのタイプ

［検索］ダイアログで「Ｐ＝プログラム」を選択すると、指定したタイプを使用するプログラムを検索します。dbMAGICでは、［検索］ダイアログで選択を確認すると、［プログラム辞書］の検索の進行状況が表示されます。結果は、［プログラム一覧］として表示されます。このテーブルには以下の情報が含まれます。

＃

［プログラム辞書］テーブルでのプログラムの連続番号

プログラム名

［プログラム辞書］テーブル内でのプログラム名

タスク

プログラム内で、指定のタイプが使用されているタスクの数

さらに詳しい情報を表示させるには、プログラムを強調表示させてズームします。別のテーブルが表示されます。このテーブルは、検索するタイプを使用している特定のタスクの一覧で、以下の情報が含まれます。

タスク番号

プログラム内でのタスクの階層上の位置

内容

タスク名（親タスク名も含みます）

変数

タスク内で、指定のタイプが使用されている変数項目の数。ズームすると、タスク内で指定されたタイプと位置づけられたビュー項目を示す［ビュー項目一覧］テーブルが表示されます。フォーム上で使用しているビュー項目は、このテーブルの［フォーム］欄にチェックマーク（＊）が付きます。さらにズームすると、［タイプ辞書］テーブルが表示されます。このテーブルには、タイプについてさらに詳しい情報が表示されます。また、現在のセッションがすべてのタイプを参照する場合は、この参照の対象となるタイプを検索できます。｛Esc｝キーを押せば、逆の順序で［タイプ辞書］テーブルに戻ります。


クロスリファレンス実行結果：キー

特定のキーを使用するプログラムの一覧を表示させるには、［ファイル辞書］テーブルにアクセスして、目的のキーを含むファイルを強調表示させます。ズームして［キー］テーブルを表示させ、必要なキーを強調表示させます。次に、［オプション／クロスリファレンス］（｛Ctrl｝+｛X｝）を選択します。

プログラム一覧が表示されます。この一覧には以下の情報が含まれます。

＃

［プログラム辞書］テーブルでのプログラムの連続番号

プログラム名

［プログラム辞書］テーブル内でのプログラム名

タスク

プログラム内で、指定のキーが使用されているタスクの数

さらに詳しい情報を表示させるには、プログラムを強調表示させてズームします。別のテーブルが表示されます。このテーブルは、検索するキーを使用している特定のタスクの一覧で、以下の情報が含まれます。

タスク番号

プログラム内でのタスクの階層上の位置

内容

タスク名（親タスク名も含みます）

リンク

キーが［リンク］コマンドとして使用されている場合は、この欄にチェックマーク（＊）が表示されます。


クロスリファレンス実行結果：プログラム

［コールプログラム］または［コール式］のコマンドを使用して、指定のプログラムを呼び出すプログラムの一覧を表示させるには、［プログラム辞書］テーブルにアクセスして、目的のプログラムを強調表示させます。次に、［オプション／クロスリファレンス］（｛Ctrl｝+｛X｝）を選択します。

プログラム一覧が表示されます。この一覧には以下の情報が含まれます。

＃

［プログラム辞書］テーブルでのプログラムの連続番号

プログラム名

［プログラム辞書］テーブル内でのプログラム名

タスク

プログラム内で、指定のプログラムを呼び出しているタスクの数

さらに詳しい情報を表示させるには、プログラムを強調表示させてズームします。別のテーブルが表示されます。このテーブルは、検索するプログラムを使用している特定のタスクの一覧で、以下の情報が含まれます。

タスク番号

プログラム内でのタスクの階層上の位置

内容

タスク名（親タスク名も含みます）


検索

検索を行うために選択した辞書が［タイプ辞書］または［項目］テーブルの場合、クロスリファレンスユーティリティを起動すると検索範囲を選択するダイアログが表示されます。

タイプ辞書の場合：

データファイル … データファイル内で使用されているタイプを検索します。

プログラム … プログラム内で使用されているタイプを検索します。

［項目］テーブルの場合：

キー … キーで使用されている項目を検索します。

プログラム … プログラムで使用されている項目を検索します。


SQL

dbMAGICは、SQLデータベースで使用するコマンドをサポートしています。

以下の各項目を参照してください。

SQLコマンド 	アシスト

データベース 	キーワード

結果データベース 	演算子

SQLコマンド	表一覧

入力パラメータ 	列名一覧

出力パラメータ 	SQL文

戻り値

詳細については、リファレンスマニュアル第26章「ＳＱＬ」を参照してください。


SQLコマンド

dbMAGICタスクで、実行時にRDBMSにSQL文を処理させるのは［SQLコマンド］オブジェクトです。［SQLコマンド］オブジェクトは、SQLコマンドの結果をdbMAGICタスクで使用できるようにする機能を備えています。前述のように、SQLコマンドはdbMAGICのメインファイルと相互に排他的であり、両方ともdbMAGICタスクに基本データビューを提供します。［タスク特性］オブジェクトにメインファイルが定義されている場合は、SQLコマンドオブジェクトにはアクセスできません。逆に、SQLコマンドが定義されている場合には、［タスク特性］オブジェクトの［メインファイル］パラメータへのアクセスは禁止され、［メインファイル］欄の記述には「SQLコマンド」の文字が表示されます。


データベース

［データベース］欄では、現在使用できる物理データベースのなかで、SQLコマンドを実行するときに使用するデータベースを指定します。SQLコマンドは、１つのデータベースに対してだけ発行することができ、物理的に分離した２つのデータベースにある表は参照できません。複数のデータベースにある表から構成されたデータビューが必要なときは、dbMAGICのビルトインSQLサポートを使用してください（「26.3 dbMAGICのビルトインSQLサポート」を参照）。

SQLコマンドのソースデータベースを定義するには、以下の手順に従ってください。

[1]	カーソルを［データベース］欄に置きます。

[2]	［データベース一覧］にズームします。［データベース一覧］にはSQLタイプのデータベースだけが表示されます。

[3]	SQLコマンドの処理に使用するデータベースを選択します。

「クリア」ボタン

「クリア」ボタンは、［SQLコマンド］ダイアログの内容をクリアします。「クリア」ボタンを使用するには、「クリア」ボタンにカーソルを移動して選択（｛Enter｝）するか、マウスでクリックします。

「アシスト」ボタン

「アシスト」ボタンは、SQLコマンドアシストユーティリティにアクセスします。「アシスト」ボタンを使用するには、「アシスト」ボタンにカーソルを移動して選択（｛Enter｝）するか、マウスでクリックします。SQLコマンドアシストユーティリティが起動します。

「APG」ボタン

「APG」ボタンは、SQLコマンド用自動プログラム生成（APG）を起動します。「APG」ボタンを使用するには、「APG」ボタンにカーソルを移動して選択（｛Enter｝）するか、マウスでクリックします。SQLコマンドAPGが起動します。


結果データベース

［結果データベース］は、SQLのSELECT文を処理するタスクにだけ関係します。SQL SELECT文についての詳細は、後述の「SQLコマンドタイプとdbMAGICのフロー」を参照してください。

結果データベースは、システムが使用できるデータベースのなかで、SQLのSELECT文によって作成された結果表を記憶させるのに使用するデータベースを指定します。 SQLコマンドの結果が入った物理ファイルは、常に一時ファイル名を使用して作成されます。結果データベースのデフォルト値は、前のデータベースと同じ値です。dbMAGICは、できるだけ効率的に結果表を作成しようとします。結果データベースがコマンドのソースデータベースと同じで、もとになるRDBMSがその処理をサポートしている場合は、dbMAGICはSQL SELECT文にINSERT TO句を加え、RDBMSの機能を使用して結果表を作成します。このパラメータで指定された結果データベースがコマンドのソースデータベースと異なる場合は、結果データベースに一時結果表が作成されます。そのため、SELECT文からデータを取り出し、そのデータを結果データベースの一時ファイルに挿入します。

非SQLデータベースも含め、すべてのデータベースは、結果データベースとして使用できます。

結果データベースに何も入力しないと、dbMAGICは結果表を最も効率的に作成しようとします。まず、SQL機能を使用して、ソースデータベースを使用します。結果表の作成にSQLデータベースを使用できない場合には、［設定／動作環境］で定義された［ソート／一時用データベース］を使用して結果表を作成します。

SQLコマンドの結果データベースを定義するには、以下の手順に従ってください。

[1]	カーソルを［結果データベース］欄に置きます。

[2]	［データベース一覧］にズームします。現在のシステムに定義されているデータベースはすべて、［データベース一覧］に表示されます。

[3]	SQLコマンドの結果を格納するデータベースを選択します。


SQLコマンド

［SQLコマンド］欄は、［データベース］欄に指定したデータベースで処理し、タスクのデータビューとして使用するSQL文を指定します。［SQLコマンド］欄は、開発者がSQLコマンドを入力するフリーテキスト項目です。dbMAGICは、SQL文の構文や意味はチェックしません。SQL文の処理は、すべてもとになるデータベースが実行時に行います。その段階でエラーが発生すると、dbMAGICのタスクは該当するメッセージを出して終了します。

［SQLコマンド］欄には、RDBMS機能を使用して開発、コンパイルした定義済みプロシジャ（ストアドプロシジャ）名を記入できます。プロシジャ名をSQLコマンドとして指定した場合は、RDBMSサーバがRDBMSのプロシジャを呼び出して実行します。このストアドプロシジャは、後述するほかのSQLコマンドタイプの１つとして使用できます。ここで説明した埋め込みSQLコマンドに適用される規則はすべて、これらのストアドプロシジャにも適用できます。

［SQLコマンド］欄に指定されたSQL文は、パラメータ値を参照する場合があります。SQL文にパラメータ値が必要な場合は、以下の構文を使用してください。

:n

nは、［入力パラメータ］テーブルのパラメータの連続番号です。このテーブルは、次の項で定義する［入力パラメータ］パラメータで定義します。たとえば、以下のSQL文は、［入力パラメータ］テーブルの１番目と２番目のパラメータを使用します。

SELECT tab1.fld1, tab1.fld2, where tab1.fld1>:1 and tab1.fld2 <:2

パラメータは、実行時に展開されます。

注記： SQL文の構文は、もとになるRDBMSの構文に準拠する必要があります。SQL文にRDBMS特有のSQL拡張がある場合には、このdbMAGICのタスクはほかのデータベースでは作動せず、移植はできなくなります。

dbMAGICでは、メニューを使用して［SQLコマンド］を作成できます。この機能をSQLアシストユーティリティと呼びます。SQLアシストユーティリティを使用するには、［編集／ズーム］（｛F5｝）を選択するか［SQLコマンド］ダイアログ下部の「アシスト」ボタンを使用します。［SQLコマンド］欄の内容とアシストユーティリティ間では、相互にコピーできます。


入力パラメータ

［入力パラメータ］欄からは、［パラメータ］テーブルへズームします。［パラメータ］テーブルには、SQLコマンドへのパラメータ値として実行時に使用される項目や式のすべてが入っています。埋め込みSQLコマンドには、パラメータ指示記号としてコロン(:)＋数字を挿入できます。コロン＋数字の組み合せは、［入力パラメータ］テーブルで指定されたSQLコマンド形式のパラメータ値に置き換えられます。パラメータ指示記号の数字の部分は使用される［入力パラメータ］テーブルの項目を指します。パラメータは、SQLコマンドの準備直前に計算され、dbMAGICはパラメータ指示記号の代わりに計算値をSQL文のテキストに埋め込みます。SQLコマンドの構文は、［タスク常駐］欄の値に関係なく、コマンド実行前に再評価されます。コマンド全体を':1'パラメータ指示記号１つに置き換え、データファイルなどの外部リソースやエンドユーザの入力からコマンド構文を取り出すこともできます。入力パラメータは、SQL WHERE句の場所を指定するのによく使用されます。

注意： SQLコマンドの実行は、タスクのデータビュー作成段階で行われます。この段階では、呼び出し元タスクまたはプログラムからパラメータ値を受け取るために使用される変数項目を除き、タスクの項目は使用できません。このため、パラメータ項目ではない現在のタスクの項目は、入力パラメータに指定しないでください（パラメータとして使用される項目は、［変数項目］テーブル上部で定義され、呼び出し元タスクやプログラムに渡される値に一致する変数項目です）。パラメータを渡す方法については、「8.11 コール」を参照してください。［SQLコマンド］タスクがほかのdbMAGICタスクのサブタスクの場合は、親項目はすべてパラメータ項目として使用できます。SQLコマンドを実行するとき、すべての項目を使用できるためです。このように入力パラメータを使用することをお勧めします。

SQL文にパラメータ指示記号がない場合は、［入力パラメータ］欄にはアクセスできません。

［入力パラメータ］欄には、［パラメータ］テーブルで定義された入力パラメータ数が入ります。

入力パラメータ指示記号をコマンドから削除すると、削除が確認されてから入力パラメータが破棄されます。

［パラメータ］テーブルの記入の詳細については、「8.11 コール」の「パラメータの受け渡し」を参照してください。


出力パラメータ

SQL SELECT文またはストアドプロシジャを使用すれば、通常の標準メインファイルとは異なるデータビューが使用できます。そのため、SQLコマンドによって結果表またはデータストリームが作成されると、dbMAGICにはこのデータを受け入れるバッファが必要になります。このバッファは、［SQLコマンド］タスクで定義された変数項目の形を取ります。変数項目の型と書式は、［SQLコマンド］で生成されたデータと一致する必要があります。通常、変数項目は、dbMAGICの［ビュー］コマンド（SQL SELECTコマンドと混同しないでください）を使用して、タスク内で定義できます。これらの変数項目を定義するとき、SQLコマンドの開発者は、コマンド結果の列構造とデータ型を知っておく必要があります。SQLコマンドの結果を対応するdbMAGICの変数項目と結合するときには、［出力パラメータ］テーブルを使用します。

［出力パラメータ］から［パラメータ］テーブルへズームします。［パラメータ］テーブルに挿入する値は、SQL文の結果を受け取るために定義する変数項目名です。これらの値の順序によって、結果の列が結合するdbMAGIC項目が決まります（つまり、［パラメータ］テーブルの最初のパラメータが最初の列を受け取り、２番目のパラメータが２番目の列...、となります）。出力パラメータに指定できるのは、現在のタスクの変数項目だけです。

［出力パラメータ］欄には、［パラメータ］テーブルで定義される出力パラメータの数が入ります。

［パラメータ］テーブルの記入についての詳細は、「8.11 コール」の「パラメータの受け渡し」を参照してください。


戻り値

UPDATE、DELETEなどの一部のSQL文は、結果表を返しません。これらは、バッチでのExecコマンドとして定義されます。これらのコマンドが返すのは戻り値だけで、コマンドの成功／失敗のステータスを返します。

［戻り値］欄から［パラメータ］テーブルへズームします。このテーブルでコマンドの戻り値を受け取る項目を指定します。

SQLコマンドの成功／失敗の結果を受け取るには、戻り値に論理項目を使用します。戻り値の項目は、現在のタスクまたは親タスクに定義します。SQLコマンドは、どのタイプのSQL文を実行しても［戻り値］へ値を返します。ただし、［戻り値］の使用はオプションです。

［戻り値］が定義されたとき、［戻り値］欄にはデフォルトで１が入り、［戻り値］が定義されていない場合は空白になります。

［パラメータ］テーブルの記入についての詳細は、「8.11 コール」の「パラメータの受け渡し」を参照してください。


SQLアシスト
アシスト

SQLコマンドアシストユーティリティを使用すれば、表と列のデータベース名を含むSQL文が簡単に作成できます。SQLコマンドアシストユーティリティは、SQL言語の知識の代わりにはなりません。［SQLコマンド］を使用するには、SQL言語の知識を備えていることが前提となっています。

SQLアシストユーティリティ（［SQLアシスター］ダイアログ）にアクセスするには、［SQLコマンド］ダイアログの［SQLコマンド］欄にカーソルを置き、［編集／ズーム］（｛F5｝）を選択するか、［SQLコマンド］ダイアログの「アシスト」ボタンを押します。

［SQLアシスター］ダイアログには、上部に４つのテーブルとその下にSQL文を表示する［SQL文］欄があります。４つのテーブルの構成は、以下のとおりです。

1.　キーワード … SQL言語のキーワードを一覧表示します。

2.　演算子 … SQL演算子を一覧表示します。

3.　表 … dbMAGICのファイル辞書の行のうち、［SQLコマンド］ダイアログの［データベース］欄で指定されたのと同じデータベースを使用する行をすべて一覧します。

4.　列 … ［表］一覧で強調表示された表の列をすべて一覧します。

SQLコマンドアシストユーティリティの使用

SQLアシストユーティリティを呼び出すと、後述のように［SQLコマンド］欄の内容をユーティリティの［SQL文］欄にコピーします。［SQL文］欄は、SQLアシストユーティリティで変更できます。SQLアシストユーティリティを終了すると、［SQL文］欄の変更された内容が［SQLコマンド］オブジェクトの［SQLコマンド］パラメータにコピーされます。

SQL文を作成するには、［SQL文］欄にSQL文を直接入力するか、４つの一覧から「キーワード」、「演算子」、「表」、「列」を選択します。

SQLアシストユーティリティの詳細は、以下のトピックを参照してください。

SQL文

キーワード一覧

演算子一覧

表一覧

列一覧

以下は、 SQLアシストユーティリティの各ボタンの説明です。

「クリア」ボタン

「クリア」ボタンは、［ SQL文］欄の内容をクリアします。「クリア」ボタンを使用するには、ボタンにカーソルを移動して選択するか（｛Enter｝）、ボタンをマウスでクリックします。

「キーワード」ボタン

「キーワード」ボタンを押すと、上記の［キーワード］一覧を表示できます。「キーワード」ボタンを使用するには、ボタンにカーソルを移動して選択するか（｛Enter｝）、ボタンをマウスでクリックします。カーソルは、［キーワード］一覧に移動します。

「演算子」ボタン

「演算子」ボタンを押すと、上記の［演算子］一覧を表示できます。「演算子」ボタンを使用するには、ボタンにカーソルを移動して選択するか（｛Enter｝）、ボタンをマウスでクリックします。カーソルは、［演算子］一覧に移動します。

「表」ボタン

「表」ボタンを押すと、上記の［表］一覧を表示できます。「表」ボタンを使用するには、ボタンにカーソルを移動して選択するか（｛Enter｝）、ボタンをマウスでクリックします。カーソルは、［表］一覧に移動します。

「列」ボタン

「列」ボタンを押すと、上記の［列］一覧を表示できます。「列」ボタンを使用するには、ボタンにカーソルを移動して選択するか（｛Enter｝）、ボタンをマウスでクリックします。カーソルは、［列］一覧に移動します。

「表示替」ボタン

前述のように、［表］または［列］一覧から値を選択したときSQL文に挿入されるRDBMSが認識する表名または列名です。dbMAGICのファイルと項目の名前に慣れたdbMAGIC開発者には、こうした表名や列名のデータベース名はわかりにくいかもしれません。そのような場合には、表示を切り替える「表示替」ボタンが役立ちます。このボタンは、［SQL文］欄のdbMAGICのファイル名と項目名、［表］と［列］一覧に表示される表と列のデータベース名とを切り替えることができます。実際に登録されるSQL文には、常にRDBMSが認識する表名または列名が入ります。

「表示替」ボタンを使用するには、ボタンにカーソルを移動して選択するか（  Enter  ）、ボタンをマウスでクリックします。表示は、dbMAGICのファイルと項目の名前からデータベースの表名と列名へ、またはその逆に切り替わります。

SQLアシストコマンドユーティリティの終了

SQLアシストコマンドユーティリティを終了するには、以下のいずれかの処理を行います。

■	「OK」（｛Enter｝）を選択するか「OK」ボタンを選択し、変更を確認します。

■	［編集／取消］（｛F2｝）を選択するか「取消」ボタンを選択し、変更を取り消します。

■	「終了」（｛Esc｝）を選択して終了します。SQL文に変更があると、「変更を保存しますか？」ダイアログがオープンします。ダイアログから必要な答えを選択します。


キーワード一覧

［キーワード］一覧には、SQL文を作成するのに使用できるSQLキーワードの一覧が表示されます。［キーワード］一覧は、マウスを使用するか、「キーワード」ボタンをクリックするか、またはアクション［SQLキーワード］で表示できます。一覧から値を選択する方法は、dbMAGICのほかの一覧から値を選択する方法と同じです。選択された値は、「SQL文」で説明した規則に準拠してSQL文に挿入されます。


演算子一覧

［演算子］一覧には、SQL文を作成するのに使用できるSQL演算子の一覧が表示されます。［演算子］一覧は、マウスを使用するか、「演算子」ボタンをクリックするか、またはアクション「SQL演算子」で表示できます。一覧から値を選択する方法は、dbMAGICのほかの一覧から値を選択する方法と同じです。選択された値は、「SQL文」で説明した規則に準拠してSQL文に挿入されます。


表一覧

［表］一覧には、dbMAGICのファイル辞書のうち、［SQLコマンド］ダイアログの［データベース］欄に指定されたものと同じデータベースに属する表をすべて一覧表示します。これらの表は、dbMAGICが認識できる（データビュー作成に使用できる）表のすべてです。しかし、データベースには、dbMAGICが認識していない表があるかもしれません。このような表を使用する場合には、その名前はSQL文に手で入力してください。一覧から表を選択すると、表名がSQL文に挿入されます。その表名のフォーマットは、処理に使用するRDBMSが認識できるものになります。データベースによっては、表と列名を完全に表記しなければなりません。

一覧には、データベースの表名ではなく、dbMAGICでの表名が表示されます。

［表］一覧は、マウスを使用するか、「表」ボタンをクリックするか、アクション「SQL表」で表示できます。一覧から値を選択する方法は、dbMAGICのほかの一覧から値を選択する方法と同じです。選択された値は、「SQL文」で説明した規則に準拠してSQL文に挿入されます。


列一覧

［列］一覧には、［表］一覧で強調表示された表の列をすべて一覧します。一覧から列を選択すると、列名がSQL文に挿入されます。その列名のフォーマットは、処理に使用するRDBMSが認識できるものになります。データベースによっては、列名を完全に表記しなければなりません。

一覧には、RDMBSが認識する列名ではなく、dbMAGICでの列名が表示されます。

［列］一覧は、マウスを使用するか、「列」ボタンをクリックするか、またはアクション「SQL列」で表示できます。一覧から値を選択する方法は、dbMAGICのほかの一覧から値を選択する方法と同じです。選択された値は、「SQL文」で説明した規則に準拠してSQL文に挿入されます。


SQL文

［SQL文］欄はSQL文が入るフリーテキスト欄です。SQL文を作成するには、この欄にSQL文を直接入力するか、４つの一覧から「キーワード」、「演算子」、「表」、「列」を選択します。一覧から選択する場合は、マウスをクリックして一覧を表示し、そこから値を選択します。選択した値は、カーソル位置に挿入されます。選択した値の挿入モードは、dbMAGICの現在の［挿入］モードによって異なります。［挿入／上書き］モードが［挿入］の場合は、選択した値を挿入すると既存のテキストは右側に移動します。［挿入／上書き］モードが［上書き］の場合は、値を挿入するとカーソル位置のテキストは上書きされます。また、キーボードを使用して一覧を表すボタンを選択しても、値を選択できます。この場合、カーソルは［SQL文］欄を離れるため、値はSQL文の最後に追加されます。キーボードでマウスと同じ動作を行うには、［アシストユーティリティ］テーブルに定義されたdbMAGICのアクションを使用します。そのアクションには、「SQLキーワード」、「SQL演算子」、「SQL表」、「SQL列」があります。これらのアクションは、標準のキーボード割り当てではキーボードに割り当てられていませんが、開発者が割り当てることができます。


ファイル辞書からのＡＰＧの実行

ファイル辞書からAPG（自動プログラムジェネレータ）を実行すると、プログラムを実行したり、作成したりできます。この場合には、以下の２つが考えられます。

■	ファイル辞書の一部またはすべてのファイルに対してプログラムを実行、作成します。

■	特定のファイルに対して１つのプログラムを実行、作成します。

複数のファイルに対するプログラム

複数のファイルを扱うプログラムを一度に実行または作成するには、カーソルをタイトル行に移動します（どの行も強調表示しない状態）。

次に、［オプション／APG］（｛Ctrl｝＋｛G｝）を選択して、［APG］ダイアログをオープンします。

オープンしたダイアログには、デフォルト値が表示されています。APGは、デフォルト値のままでもすぐに実行できますが、オプション設定を変更してから実行することもできます。

複数のファイルを対象にしてファイル辞書からAPGを起動した場合の、［APG］ダイアログの各欄の説明は、以下の項目を参照してください。

ファイル指定／選択ファイル

処理モード

オプション

表示モード

スタイル

タイトルバー

単一ファイルに対するプログラム

また、特定のデータファイルに対するプログラムの作成、実行に関する説明は、単一ファイルに対するプログラムを参照してください。


ファイル指定／選択ファイル

［ファイル指定］欄によって、ファイルが選択できます。［選択ファイル］欄には、APGセッション用に選択したファイル数が表示されます。

オプションは「Ａ＝全ファイル」、「Ｓ＝選択ファイル」、「Ｎ＝なし」の３つから選択できます。

デフォルトは、「Ｎ＝なし」です。

「Ａ＝全ファイル」を選択すると、［ファイル辞書］の各ファイルに対するプログラムを作成します。

「Ｓ＝選択ファイル」を選択すると、［ファイル選択］ダイアログがオープンします。

オプションを選択しないか、「Ｎ＝なし」を選択した場合（どちらもすべての選択マークはオフになります）、このセッションではAPGは無効となり、プログラムは作成されません。

［選択ファイル］欄で［ズーム］を選択すると、［ファイル選択］ダイアログをオープンできます。

［ファイル選択］ダイアログでは、右端の列でカーソルを上下に移動して、プログラムを作成するファイルにマーク付けします。スペースキーを押すと、選択マークのオンとオフが切り替わります。

「選択」ボタンを選択すると、［ファイル選択］ダイアログで選択した内容が確定して［APG］ダイアログに戻ります。ファイルを選択しなかった場合は、［ファイル指定］欄に「Ｎ＝なし」が表示されます。


処理モード

オプションは、「Ｅ＝実行」と「Ｇ＝作成」の２つから選択できます。

デフォルトは「Ｅ＝実行」です。

「Ｅ＝実行」は、選択されたデータファイルに対して一時的なプログラムの作成と実行を続けて行います。たとえば、［オプション］欄に「Ｂ＝照会」を指定すると、APGは実行モードになり、データファイルでデータの入力と保守ができるようになります。｛Esc｝を押して実行モードを終了すると、APGは次のデータファイルに進みます。以降のファイルも同じように処理します。「Ｅ＝出力」と「Ｉ＝入力」と「Ｐ＝プリント」の処理も同様です。APGは選択されたデータファイルに順次アクセスし、プログラムを実行する前に［実行しますか？］ダイアログを表示します。バッチプログラムを実行した後には、そのプログラムをもう一度実行できるように［再実行しますか？］ダイアログを表示します。

「Ｇ＝作成」は、選択されたデータファイルに対するプログラムを作成して、そのプログラムを［プログラム辞書］テーブルに追加します。ただし、プログラムは実行しません。


オプション

プログラムの機能を指定します。

オプションは、「Ｂ＝照会」、「Ｅ＝出力」、「Ｉ＝入力」、「Ｐ＝プリント」の４つから選択できます。

デフォルトは「Ｂ＝照会」です。

「Ｂ＝照会」は、オンラインデータ入力と保守用のプログラムを実行（実行モード）または作成（作成モード）します。

「Ｅ＝出力」は、データファイル内のデータを出力する（実行モード）か、データを出力するためのプログラムを作成（作成モード）します。

「Ｉ＝入力」は、テキストファイル内のデータを入力する（実行モード）か、テキストファイルのデータを入力するためのプログラムを作成（作成モード）します。このテキストファイルの構造は、APGで「Ｅ＝出力」で作成したものと同じです。「Ｅ＝出力」と「Ｉ＝入力」は、同じデータを入出力する一対のプログラムを作成します。

「Ｐ＝プリント」は、データファイルの印刷を行う（実行モード）か、データファイルの印刷を行うプログラムを作成（作成モード）します。


表示モード

プログラム画面でレコードがどのように表示されるかを示します。

オプションは、「Ｌ＝ライン」、「Ｓ＝スクリーン」、「Ｎ＝なし」の３つから選択できます。

デフォルトは「Ｌ＝ライン」です。

「Ｌ＝ライン」は、レコードをラインモードで表示します。項目はすべて１行に並べられ、各項目の上にはそれぞれのタイトルが表示されます。画面には、収められるかぎりのレコード行が表示されます。

「Ｓ＝スクリーン」は、各画面につきレコードを１つ表示します。

「Ｎ＝なし」は、［オプション］欄が「Ｅ＝出力」か「Ｉ＝入力」を指定した場合にだけ使用できます。「Ｎ＝なし」を選択すると、プログラム実行時には、オンライン画面が表示されません。プログラムは空白の画面をオープンして、終了するとクローズします。このオプションは、画面更新の時間を省くので、大きなファイルの入出力を高速に処理する場合に指定します。


スタイル

画面表示を３次元、２次元、オリジナル（［表示モード］が「Ｓ＝スクリーン」の場合）のどれにするかを指定します。デフォルト値は、「3＝立体」です。


タイトルバー

タイトルバーを付けるかどうかを指定します。デフォルト値は、「No」です。


単一ファイルに対するプログラム

特定のデータファイルに対するプログラムを実行または作成するには、［ファイル辞書」内でカーソルをそのファイルの行に移動します。次に、［オプション／APG］（｛Ctrl｝+｛G｝）を選択します。［文法チェック］ユーティリティを実行して、ファイル定義にエラーがないかどうかを確認します。ファイルが正常であれば、APGダイアログがオープンします。

オープンしたダイアログには、デフォルト値が表示されています。APGは、デフォルト値のままでもすぐに実行できます。

APGは、実行モードでは、プログラムを作成して実行しますが、プログラム辞書には保存しません。しかし、出力または入力の処理である場合は、バッチプログラムを作成します。バッチプログラムを実行する前に、［実行しますか？］ダイアログをオープンします。プログラムの最後には、そのプログラムをもう一度実行できるように［再実行しますか？］ダイアログを表示します。［No］ボタンがデフォルトの設定です。この設定のまま｛ENTER｝を押すと、プログラムが終了します。

各欄の説明は、以下の項目を参照してください。

処理モード

オプション

表示モード

スタイル

タイトルバー

選択項目数t

プログラム名

テキストファイル名


選択項目数

データビューに含まれる項目数を表示します。

デフォルトでは、プログラムにはそのデータファイルの項目がすべて含まれます。たとえば、データファイルに項目が８個ある場合は、［選択項目数］欄にはデフォルトで「８」と表示されます。この値を変更しなければ、プログラムはデータファイル内の項目をすべてデフォルトの順序（ファイル辞書の項目テーブルに表示される順序）で処理します。

プログラムの対象となる項目数を変更する場合、または、項目の順序を変更する場合は、ズームして、［選択項目］ダイアログを表示します。

［選択項目］ダイアログには、プログラムが扱うデータファイル内の項目がすべて表示されます。［順］欄でカーソルを上下に移動させて数字を入力すると、データビューでの項目の順序を指定できます。

データビューから項目を削除するには、カーソルを［順］欄に移動させ「０」か、スペースキーを入力します。

データビューでの項目の順序を変更するには、ファイルの総項目数の範囲内で数字を入力します。たとえば、ファイルに項目が８個ある場合は、１～８の数字を入力できます。数字を入力すると、ほかの項目の番号が自動的に変更されて、データビューの項目が新しい順序で設定されます。

入力処理を実行する場合は、入力するテキストファイルでの項目の順序と［選択項目］ダイアログで指定する順序を同じにしてください。

［選択項目］ダイアログでの選択を確定すると、画面は［APG］ダイアログに戻ります。プログラムの対象となる項目数を変更した場合は、［選択項目数］欄に新しい数が表示されます。


プログラム名

プログラム辞書に表示されるプログラム名です。この項目は作成モードでだけ使用できます。

［処理モード］欄で「Ｇ＝作成」を選択すると、プログラム名が自動的に決まります。この名前は、［オプション］欄の値とデータベース名を合わせたものです。たとえば、ファイル辞書名が「CUSTOMERS」で、［オプション］欄の値が「Ｅ＝出力」の場合は、［プログラム名］には「出力 - CUSTOMERS」と表示されます。この欄を編集すれば、プログラム名を変更できます。


テキストファイル
テキストファイル名

出力または入力するオペレーティングシステムのテキストファイル名です。

［オプション］欄で「Ｅ＝出力」か「Ｉ＝入力」を選択すると、出力または入力するファイル名が自動的に決まります。この名前は、デフォルトのデータベース名に拡張子の“.TXT”を付けたものです。たとえば、WindowsやDOSでデモアプリケーション（識別子＝DM）の３番目のデータファイル（ファイル辞書の３行目）を使用するプログラムを作成する場合は、テキストファイルの名前は“DMFIL003.TXT”になります。

［DBファイル］欄に“FILE.DAT”と指定されている場合、テキストファイルの名前は“FILE.TXT”になります。

［テキストファイル名］欄にアクセスすれば、ファイル名を編集できます。また、ズームして「ファイルを開く」ダイアログをオープンすることもできます。オペレーティングシステムのファイル名に関する規則は、必ず守ってください。この欄では、名前にパスを追加できます（たとえば、C:\MYDIR\CUSTOMER）。パスが示されていない場合は、現在のディレクトリのファイルと見なされます。

入力処理を実行する際は、［テキストファイル名］欄に表示された名前のファイルが実際にその場所に存在することを確かめてください。

出力処理では、ディスク上に同名のテキストファイルが存在するかどうかはチェックされません。同名のファイルが存在すると、そのファイルは上書きされます。


プログラム辞書またはタスクツリーからのＡＰＧの実行

プログラム辞書またはタスクツリーから、APGを使ってプログラムを作成できます。また、タスクツリーからプログラム内の各サブタスクを作成することもできます。プログラム辞書またはタスクツリーから作成したプログラムは一時的なプログラムではなく、自動的に実行されません。

プログラム辞書からAPGを実行するには、新しい行を作成して（編集／行作成）、次に［オプション／APG］（｛Ctrl｝＋｛G｝）を選択します。プログラム作成処理の最後でプログラム名を決定し、それを［プログラム辞書］に追加します。dbMAGIC が付ける名前は、プログラムオプション（Ｂ＝照会、Ｅ＝出力、Ｉ＝入力）にデータファイル名を続けたものです。たとえば、「CUSTOMERS」というファイル辞書名のデータベースに対して出力プログラムを作成した場合は、プログラム名は［出力- CUSTOMERS］です。プログラム辞書またはタスクツリー内のプログラム名は編集できます。

タスクツリーからAPGを実行するには、［オプション／APG］を選択します。すでにタスク定義されていたら上書き確認ダイアログがオープンするので、「Yes」ボタンをクリックして既存のタスクを上書きします。既存のタスクを上書きしない場合は、タスクツリーで新しいタスクを作成するか、そのタスクがツリーのルートレベルであれば、プログラム辞書で新しい行を作成してタスクまたはプログラムを作成してください。

［APG］ダイアログのパラメータはプログラム辞書とタスクツリーのどちらからオープンしても同じです。

オープンしたダイアログには、デフォルト値が表示されています。APGは、デフォルト値のままでも実行できます。

プログラム辞書またはタスクツリーからAPGを起動した場合の［APG］ダイアログの各欄の説明は、以下の項目を参照してください。

オプション

表示モード

メインファイル

選択項目数

テキストファイル名


メインファイル

プログラム／タスクを作成する対象となるデータファイルです。

プログラム辞書からAPGを起動した場合は、データファイル名が必要です。

タスクツリーからAPGを起動した場合は、デフォルトでもとのデータファイルが表示されます。このパラメータを変更すると、ファイル名を変更できます。

［メインファイル］欄では、ファイル番号（ファイル辞書の番号）を入力するか、ズームして［ファイル一覧］から選択します。


使用権利

dbMAGICの使用権利を用いて、ユーザに異なるレベルの権利を割り当て、アプリケーションの保護機能を実現するための詳細な説明は、以下の項目を参照してください。

権利

権利設定ダイアログ

シークレット名

ユーザグループ

ユーザID


権利設定ダイアログ

［権利設定］ダイアログではさまざまなアプリケーション要素に対して許可される処理を指定します。これらの処理は、開発および実行モードでともに有効にできます。開発者が処理を実行しようとする場合（たとえば、［ファイル辞書］に新しい行を作成する、プログラムを実行するなど）、開発者がその処理に対応する権利を持つときにだけ処理が実行されます。また、エンドユーザが新しい顧客を顧客ファイルに追加しようとする場合は、そのエンドユーザが新しい顧客を追加する権利を持つときにだけ顧客は追加されます。

［権利設定］ダイアログを表示する場合は、［タイプ辞書］、［プログラム辞書］、［ヘルプ辞書］、［メニュー］の各テーブル、または［CTL特性］ダイアログから［オプション／権利設定］を選択します。

スーパーバイザとアプリケーションの［スーパーキー］所有者（下記）にだけは、［権利設定］ダイアログへのアクセスに制限がありません。［権利設定］ダイアログに表示される各処理に対し、この両者は権利番号を入力したり、［権利］テーブルにズームして権利所有者が特定の処理を実行するとき使用できる権利の番号と名前を選択できます。処理の使用権利が設定されると、その権利の全所有者は対応する権利の番号と名前を見ることができます。

１つの権利を複数のdbMAGICの処理に対応させることができます。

権利に対応していない処理は保護されません。処理へのアクセスには制限がないため、すべてのdbMAGICユーザはその処理を呼び出せます。

［権利設定］ダイアログの１つに表示される特定の権利を持つユーザまたは開発者は、対応するダイアログの行を表示し、所有する異なる権利にその項目を変更し、さらに権利を除去できます。たとえば、WACOMが４番の権利の所有者で、特定のファイルにAPGを使用する権利があるとします。４と６番の権利を持つ別のユーザは、［ファイル辞書］からアクセスした［権利設定］ダイアログの［実行/APG権利］欄を４から６に変更できます。この場合、WACOMはAPGを使用できなくなります。しかし、権利を持たなければ、対応する［権利設定］ダイアログの欄の変更や表示はできません。６番の権利を持たないユーザや開発者には、［実行/APG権利］欄の権利番号欄にアスタリスクが表示され、その名前の表示箇所にはアスタリスクの行が表示されます。

関連項目

照会権利

修正権利

削除権利

登録権利

実行/APG権利


照会権利

対応する辞書の項目を表示する権利に対する権利番号を設定します（更新はできますが、保存されません）。


修正権利

対応する辞書の項目を更新する権利に対する権利番号を設定します。この欄では、対応する辞書の項目の定義内容を出力する機能を制御します。


削除権利

対応する辞書の項目を削除する権利に対する権利番号を設定します。


登録権利

アプリケーションに対応する辞書の項目を新しく作成する権利に対して権利番号を設定します。


実行/APG権利

プログラム辞書の場合：

実行モードでプログラムを実行する権利に対する権利番号を設定します。

ファイル辞書の場合：

自動プログラム作成機能（APG）を使用してファイルにプログラムを作成する権利に対する権利番号を設定します。

この欄では実行可／実行不可の設定しかできません。実行のセキュリティをさらに細かく設定するには、プログラム内でUSER()とRIGHTS()関数を使用します。「18.5　関数一覧（ABC順）」を参照してください。たとえば、カーソルパーク位置やユーザ入力もユーザ権利に基づいて制限できます。さらに条件付きの［項目更新］コマンドで［変数］を使用すれば、ユーザIDと使用権利に基づいて、特定のユーザに非表示の項目を処理できます。条件付きの［エラー］コマンドも同様に、レコード削除などの処理を制限できます。

注意： ［実行権利］は、実行時にだけ関係します。［プログラム辞書］のその他の権利は、開発時にだけ関連します。


権利辞書

［権利辞書］テーブルは、アプリケーションに定義されるすべての権利の名前とキーを示します。

「WACOMは顧客ファイルの情報を更新する権利を持つ」という例に対しては、［権利辞書］テーブルの［キー］欄に「XYZ」を定義し、「作成-顧客」という名前を付けます。

［権利辞書］テーブルでの入力

［権利辞書］テーブルを変更する権利があるのはスーパーバイザだけですが、照会はすべてのユーザが実行できます。各ユーザには、自分が所有する権利だけしか表示されません。割り当てられていない権利の欄にはアスタリスク（*）が表示されます。

［権利辞書］テーブルを表示するには、オープンしているアプリケーションから［開発／権利辞書］を選択します。

テーブル内の各欄の説明は、以下の項目を参照してください。

名前

キー

公開


名前

「登録-顧客」などの権利名を設定します。ここに設定する名前は、［権利］ダイアログでこの権利のタイトルの一部として表示されます。

この名前は、RIGHTS()関数のパラメータに使用されます。


キー

キーは、権利の識別のために使用されるコード名です。例では、顧客レコード作成のキーとしてXYZを設定しています。このキーは、XYZをユーザの［権利］テーブルに記入して権利をそのユーザに対応させます。


公開

Yes …  「Yes」に設定すると、ユーザまたはユーザグループの［権利］テーブルの権利がアプリケーション外部から見えるようになります。スーパーバイザが［ユーザID］または［ユーザグループ］テーブルを処理しているときに、［権利］テーブルにズームし、さらにキーをズームする事により、公開の権利だけを見ることができます。

No …  「No」に設定すると、スーパーバイザは［ユーザID］または［ユーザグループ］テーブル処理時にその権利を見ることができません。アプリケーションの中心的部分は保護し、それ以外の部分にはアクセスできるようにします。

スーパーバイザは公開権利へのキーを知る必要はありません。権利名は権利のキーが返す一覧の検索引数として表示されるためです。しかし、スーパーバイザがユーザまたはグループに非公開権を割り当てるにはキーを直接入力するしかありません。もちろん、一覧には非公開権利の名前は表示されません。

通常、開発者だけに関係があり、エンドユーザには関係のないものを非公開に設定します。また、アプリケーションを作成した開発者は、アプリケーションの変更について、他の開発者に非公開権利を割り当てることができます。この機能を使用すると、アプリケーションの開発元であるソフトウェアハウスは、他のプログラマがソースコードに無制限にアクセスできないようにしてから、アプリケーションをプログラマに販売したり、そのライセンスを与えることができます。その場合、プログラマは、アプリケーションを使ってカスタムアプリケーションを開発できますが、ソフトウェアハウスが適当と考えるアクセス制限には従うことになります。

公開権利は、アプリケーション外部の［権利一覧］に表示され、［権利一覧］は［権利］テーブルのキーを返します。このため、公開権利へのアクセスは保護されていなければなりません。保護を実行するには、アプリケーションの［CTL特性］ダイアログで［公開権利アクセスキー］を定義します。［公開権利アクセスキー］が指定された場合には、このキーは［権利 ［スーパーバイザ］テーブルというスーパーバイザの［権利］テーブルにも指定する必要があります。スーパーバイザは、アプリケーションへの公開権利アクセスキーをdbMAGICからは知ることはできません。

RIGHTS()関数を使用すると、ユーザが特定の権利を持つかどうかを知ることができます。この関数は、［式］テーブルの「権利」ボタンから簡単に使用できます。このボタンを押せば、［権利］テーブルにアクセスできます。


トランザクション処理

トランザクション処理は、データベースの一貫性を保つためのデータ処理方法です。この処理は論理的に関連する、まとまったデータの修正の実行として定義され、１つの単位として完了（コミット）する（完了してディスクに書き込む）か、中断（アボート）されます。予約システムや金融システムは、このようなトランザクション処理の代表例です。

また、上記の読み込み／書き出し処理とは対照的に、トランザクションは読み込み処理を安全に行うこともできます。読み込みトランザクションでは、トランザクション内で読み込まれたデータは他のユーザによっては修正されません。

このデータベースの一貫性を実現する１つの方法として、トランザクション処理では、データファイルの更新をすべて、トランザクションファイルへ自動的に記録します。このファイルに記録された更新記録は、トランザクション処理が完了したとき、つまりすべてのデータファイルの更新が正常に終了しときに消去されます。トランザクション処理で保護されるファイルに問題が見つかると、トランザクション処理全体が取り消され、データベースはトランザクション処理を開始する前の状態に復旧されます。復旧は、トランザクションファイルに記憶された情報を使用して行われます。

トランザクション処理による大きな利点は、dbMAGICの異常終了に対する保護です。オンラインデータ入力またはバッチ処理の途中で異常終了すると、トランザクション処理全体がアボートされます。このようにして、データベースの不完全な更新を防ぎ、データベースの一貫性を保ちます。

一般的注意

1.復旧 … 異常終了後の自動回復では、常に、データベースは最初のトランザクションが定義されたレベルの状態まで復旧されます。

2.文脈の回復 … dbMAGICでトランザクションをオープンすると、dbMAGICタスクツリーのすべての全文脈（すべての項目 - 実データ項目と変数項目、およびすべての内部タスク状況フラグ）が保存されます。トランザクションがアボートされると、dbMAGICはトランザクションがオープンされたレベルに戻り、保存した処理レベルの文脈を回復します。さらに、すべてのデータベース処理を復旧します。したがって、トランザクションがアボートされると、dbMAGICはトランザクションをオープンする前とまったく同じ状態に戻ります。

3.ゲートウェイの制限 … すべてのゲートウェイがトランザクション内部でのファイルオープンできるようサポートしているわけではありません。

4.データベースの実現方式 … dbMAGICは、論理的なトランザクションのみを処理します。物理的なトランザクションは、もとになるデータベースの内部で実現されます。データベースがトランザクション処理をどのように実現するかについての詳細は、データベースの開発元から支給される説明書を参照してください。dbMAGICでトランザクションを使用する前に、もとになるデータベースがどのようにトランザクションを処理するかをよく理解する必要があります。


トランザクション処理の回復

この項目では、トランザクション処理を回復するためのdbMAGICの動作に対する一般的な指針を示します。各処理レベルに特有の内容については、以下の節を参照してください。

トランザクションが定義されているタスクレベルの［エラー］欄を設定すると、トランザクションの回復を制御できます。［エラー］欄の設定についての詳細は、「7.17　タスク定義ウィンドウ」を参照してください。［エラー］欄には、以下の３つ（「Ｒ＝リトライ」、「Ｓ＝スキップ」、「Ａ＝アボート」）のどれかを設定できます。

Ｒ＝リトライ

エラーが発生すると、トランザクションが復旧されてデータベースは一貫性のある状態に戻り、dbMAGICはトランザクション開始直前の状態に復元されて、dbMAGICの処理とトランザクションはリトライされます。オンラインでは、確認ダイアログがポップアップしてトランザクションのリトライに対するユーザの確認が要求されます。リトライの確認に「No」と答えると、この段階でトランザクションをアボートできます。ユーザが答えないと、一定の時間、中断した後に「Yes」とみなされ、ダイアログが自動的にクローズします。トランザクションは、エラー状態が解消されるか、またはユーザがリトライ確認ダイアログに「No」と答えるまでリトライされます。バッチタスクでは、リトライメッセージだけが表示され、［オプションメニュー］ダイアログの［アボート］欄が「Yes」と設定されている場合には、dbMAGICはユーザからの「終了」アクション入力を待ちます。「終了」アクションが入力されると、タスクはアボートされます。そうでない場合は、エラー状態が解消されるまでトランザクションはリトライされます。

レコードが失われた場合は、ほかのユーザによってレコードが削除されているため、トランザクションはリトライできません。

Ｓ＝スキップ（レコードレベルだけ）

エラーが発生すると、トランザクションは復旧されてデータベースは一貫性のある状態に戻り、dbMAGICはトランザクション開始直前の状態に復元され、実行エンジンは次のデータビューレコードの処理を開始します。トランザクションに失敗したレコードはスキップされ、タスクによって処理されません。スキップされたレコードを、必要に応じて検索するには、処理されたレコードをマークする機構をタスクのロジックに組み込みます。トランザクションがスキップされた場合には、エラーメッセージは表示されません。

実行エンジンの処理を終了させるエラーが発生した場合は、トランザクションをスキップできません。たとえば、損傷したファイルをトランザクションの適用範囲内でオープンすると、プログラム全体が終了します。

Ａ＝アボート

エラーが発生すると、トランザクションは復旧されてデータベースは一貫性のある状態に戻り、dbMAGICはトランザクション開始直前の状態に復元されます。

現在のタスクレベルにトランザクションが定義されていない場合には、タスクはアボートされます。


タスク

タスクについての詳細は、以下の項目を参照してください。

タスクテーブル

タスクの実行

タスク特性

タスク制御

パラメータテーブル

自動プログラム作成(ファイル辞書)

自動プログラム作成(タスクツリー)

DBファイルテーブル

入出力ファイルテーブル


実行時

dbMAGICの実行時の詳細については、以下の項目を参照してください。

DBファイルテーブル

データベースログイン

入出力ファイルテーブル

入出力ファイル

レポート辞書

上書登録


処理レベルテーブル

［タスク定義］ウィンドウは、以下のテーブルから構成される複合ウィンドウです。

■	ウィンドウ上部の処理レベルテーブル

■	現在強調表示されているレベルに対応する処理テーブル。処理テーブルのタイトルには、対応した処理レベルの名前が含まれます。たとえば、前記の画面例では、強調表示されている処理レベルは［レコードメイン］なので、処理テーブルのタイトルが「処理テーブル［レコードメイン］」となります。

処理レベルテーブルの構造

処理レベルテーブルには、レコードレベル行とタスクレベル行があります。レコードレベルとは、［レコード前処理］、［レコードメイン］、［レコード後処理］の総称で、タスクレベルとは、［タスク前処理］と［タスク後処理］の総称です。バッチタスクの場合には、ブレイクレベル行も追加できます。ブレイクレベル行は、必要に応じて複数行を追加できます。

■	［レコードメイン］は通常、対応する処理テーブルに入力する必要があります。

■	［レコード前処理］、［レコード後処理］、［タスク前処理］、［タスク後処理］の各処理テーブルには、必要に応じて処理コマンドを設定します。

■	バッチタスク（主にレポート印刷用のタスク）の場合は、処理レベルテーブルにレベルを追加できます。このレベルは、ブレイクレベルと呼ばれます。それぞれのブレイクレベルは、処理レベルテーブルでブレイク項目として指定された項目の値が変化したときに実行されます。

上位のブレイクレベル、つまり、発生回数の最も少ないブレイクレベルは、［タスク］レベルのすぐ上に配置します。下位のブレイクレベルはよく発生するブレイクレベルで、［レコードレベル］のすぐ下に配置します。

処理レベルの意味と実行のフローとの関係についての詳細は、「5.3 エンジンの実行規則」を参照してください。

処理コマンドの設定方法または編集方法

処理テーブルで処理コマンドを設定するには、以下の手順に従ってください。

[1]	カーソルを処理レベルテーブルの目的の欄に移動します。たとえば、［レコード前処理］、［レコードメイン］、［レコード後処理］、［タスク前処理］、［タスク後処理］の欄です。バッチタスクの場合には、［ブレイク前処理］［ブレイク後処理］の欄も必要に応じて使用できます。

カーソルを移動すると、カーソルが位置付けられている処理レベルに対応する処理テーブルがウィンドウの下部領域に表示されます。

[2]	処理テーブルにズームします。

[3]	第８章「処理コマンド」の説明を参考にして、処理コマンドの各欄を編集します。

関連項目

ブレイク

処理レベル

前処理

メイン

後処理

トランザクション

エラー

処理テーブル


ブレイク

この欄には、［ビュー項目一覧］から選択したブレイク項目のシンボル名が表示されます。このブレイク項目の値が変化すると、エンジンは、対応する［ブレイク］レベルの［後処理］と［前処理］を実行します。［ブレイク］レベルでの処理についての詳細は、「5.3 エンジンの実行規則」を参照してください。


処理レベル

処理レベル名（［レコード］または［タスク］）または［ブレイク ］という文字列に付加してブレイク項目の名前を表します。カーソルは、この欄には止まりません。


前処理

レコードレベル行の場合を例にとると、この欄には、［レコード前処理］に対応する［処理テーブル］に設定された処理コマンドの行数が表示されます。この欄から［処理テーブル］にズームできます。


メイン

レコードレベル行の場合にだけカーソルが止まります。タスクレベル行とブレイクレベル行の場合には、カーソルが止まりません。この欄には、［レコードメイン］に対応する［処理テーブル］に設定された処理コマンドの行数が表示されます。この欄から［処理テーブル］にズームできます。


後処理

レコードレベル行の場合を例にとると、この欄には、［レコード後処理］に対応する［処理テーブル］に設定された処理コマンドの行数がこの欄に表示されます。この欄から［処理テーブル］にズームできます。

タスクレベル行とブレイクレベル行の場合も同様です。


トランザクション

このパラメータで、トランザクション処理を制御します。

トランザクション処理は、タスクのすべての処理レベルで起動できます。［ﾄﾗﾝｻﾞｸｼｮﾝ］欄の値は、「タスク」レベルと「ブレイク」レベルでは「No」と「Yes」、「レコード」レベルでは４つの選択肢（前処理、後処理、更新、なし）があり、dbMAGIC がトランザクションをオープンするときの制御をさらに細かく指定できます。

「タスク」レベルでのトランザクションの定義

「タスク」レベルのトランザクションを使用する際の注意

「タスク」レベルのトランザクションを定義すると、タスク処理時の更新はすべて１つのトランザクションとして記録されます。したがって、以下の点に注意してください。

1.	データビューが複数レコードを含むバッチタスクでは、「タスク」レベルのトランザクションを使用してください。パフォーマンスを重視する場合は、「タスク」レベルのトランザクションをバッチタスクで使用してください（SQLデータベース）。ISAMタイプのデータベースでは、大きなトランザクションをバッチで行う場合には、大量のディスク容量が必要です。

2.	「タスク」レベルのトランザクションをオンラインタスク用に使用すると、マルチユーザアプリケーションで同じファイルにアクセスしているほかのユーザの障害となります。トランザクション時には、ファイルは長期間にわたってロックされるためです。

3.	「タスク」レベルのトランザクションで大量のレコードを処理すると、トランザクションファイルのサイズが大きくなります。ディスクドライブの使用可能なスペースが減りますから、ディスクスペースが不足しないように注意してください。トランザクションがアボートします。

「ブレイク」レベルでのトランザクションの定義

「ブレイク」レベルは、バッチタスクでだけ使用できます。

「ブレイク」レベルのトランザクションを使用する際の注意

大きなファイルの処理をレコードグループごとの処理に分割するときに、「ブレイク」レベルのトランザクションを使用できます。このようにトランザクションの適用範囲を小さくして、トランザクション処理の利点を使用します。

「レコード」レベルでのトランザクションの定義

「レコード」レベルの行の［ﾄﾗﾝｻﾞｸｼｮﾝ］欄では、以下の４つ（「Ｐ＝前処理」、「Ｓ＝後処理」、「Ｕ＝更新」、「Ｎ＝なし」）のどれかを設定できます。

Ｐ＝前処理

［ﾄﾗﾝｻﾞｸｼｮﾝ］欄を前処理に設定すると、dbMAGIC は以下の処理を行います。

■	レコードを取り出す前にトランザクションをオープンします。

■	レコード後処理を実行したあと、データファイルを更新してからトランザクション処理を完了（コミット）します。

■	トランザクションをオープンして完了（コミット）するまでの子タスクも含めたすべての操作を、トランザクション適応範囲に入れます。

レコード前処理レベルのトランザクションを使用する際の注意

トランザクションは対話段階（レコードメイン）でオープンするため、マルチユーザ環境でのオンラインタスクにはレコード前処理レベルで定義するトランザクションを使わないでください。トランザクションにはファイルのロックが伴うため、同じレコードやファイルにアクセスしようとするほかのユーザの問題となるからです。

Ｓ＝後処理

［ﾄﾗﾝｻﾞｸｼｮﾝ］欄を後処理に設定すると、dbMAGIC は以下の処理を行います。

■	レコード後処理を実行する前にトランザクションをオープンします。

■	レコード後処理を実行したあと、データファイルを更新してからトランザクション処理を完了（コミット）します。

レコード後処理レベルのトランザクションを使用する際の注意

［コール］コマンドで呼び出された子タスクも含めたすべてのレコード後処理は、トランザクションに取り入れられます。

トランザクションが異常終了した場合には、エンジンはトランザクションをリトライします。

Ｕ＝更新（オンラインではデフォルト）

［ﾄﾗﾝｻﾞｸｼｮﾝ］欄を更新に設定すると、dbMAGIC は以下の処理を行います。

■	レコード後処理を実行したあと、データファイルを更新する直前にトランザクションをオープンします。

■	データファイルを更新してからトランザクション処理を完了（コミット）します。

「レコード」レベルの「ﾄﾗﾝｻﾞｸｼｮﾝ=更新」を使用する際の注意

更新に設定された「レコード」レベルのトランザクションには、レコード後処理は含まれません。マルチユーザアプリケーションの場合は、トランザクションを更新に設定することをお勧めします。ファイルのロックに関するユーザ間の潜在的な問題を最低限に抑えるためです。

Ｎ＝なし

ほかのレベルと同様に、「なし」とは「レコード」レベルのトランザクションが必要ないことを意味します。


エラー

この欄には、このレベルのトランザクションのエラー処理を制御する値を設定します。この欄は、［トランザクション］欄が「Ｎ＝なし」以外のときに利用できます。以下に、設定できる値を示します（レコードレベル行の場合）。

Ａ＝アボート

Ｒ＝リトライ

Ｓ＝スキップ（レコードレベルのトランザクションだけ）

タスクレベル行とブレイクレベル行では、［トランザクション］欄が「Yes」のときに使用できます。

Ａ＝アボート

Ｒ＝リトライ

［エラー］欄についての詳細は、第23章「トランザクション処理」を参照してください。

関連項目

トランザクション処理の回復


項目テーブル

［項目］テーブルでは、データファイルのすべての項目について項目定義を行います。ファイル辞書テーブルから項目テーブルにアクセスするには、目的のファイルの行の［項目］欄にカーソルを合わせてズームします。これによって項目テーブルがオープンします。

項目の行の入力

［項目］テーブルの行の各欄についての説明は、以下の項目を参照してください。

名前 	項目特性

タイプ 	コントロールタイプ

型 	アクション

書式 	カラム数

範囲 	ステップ


名前

項目の名前を入力します。この欄を空白のままにして次の［タイプ］欄でタイプ辞書を使用すると、選択したタイプの名前がこの欄に自動転記されます。

注意：［#］（項目の番号）欄には、dbMAGICが自動的に生成する連続番号が表示されます。カーソルは、この欄には止まりません。


タイプ

項目にタイプを対応させるには、以下の手順に従ってください。

[1]	この欄からズームしてタイプ一覧を表示します。

[2]	目的のタイプを選択します。

タイプを選択する際にその定義の詳細を見るには、［タイプ一覧］からズームして［タイプ辞書］テーブルを表示します。

ただし、この場合には、［タイプ辞書］テーブルの内容は編集できません。照会だけです。

タイプを選択すると、以下の処理が行われます。

■	タイプに対して定義されている属性（型、書式、範囲など）が項目に継承されます。

■	名前欄が空白の場合は、タイプ名が転記されます。

■	必要に応じて、［範囲］と［項目特性］の定義内容を、タイプとは異なるものに変更できます。

■	項目テーブルには、以下のものが表示されます。

1.	［タイプ］欄にはタイプ番号

2.	［型］欄には「タイプ＞」という表示

3.	［書式］欄にはタイプ名

タイプを使用しないで項目を定義するには、以下のようにします。

[1]	［タイプ］欄をデフォルト「０」のままにして、型欄に移動します。


型

■	データ項目の型を指定します。文字型（デフォルト）、数値型、論理型、日付型、時刻型、メモ型、イメージ型から１つ選択します。コンボボックスをクリックして選択するか、または型の頭文字を入力します。型についての詳細は、「3.2 型」を参照してください。


書式

■	文字型かメモ型の場合、［書式］欄で最低限必要な設定内容は長さです。また、「3.4書式」の「文字型書式の定義方法」で説明したように、項目に必要なその他の書式仕様にも変更できます。

■	数値型の場合、［書式］欄で最低限必要な設定内容は整数の桁数で、必要に応じて小数点と小数点以下の桁数を入力します。また、「3.4 書式」の「数値型書式の定義方法」で説明したように、項目に必要なその他の書式仕様にも変更できます。

■	論理型、時刻型、または日付型の場合、デフォルトの書式をそのまま使用するか、または、「3.4 書式」の「論理型書式の定義方法」で説明したように、項目に必要なその他の書式仕様にも変更できます。

■	BLOB型の場合、dbMAGICは、BLOB項目のサイズや外観を制御しないため、書式を設定する必要はありません。

■	［書式］欄からズームすると、それぞれの型に対応した［書式］ダイアログがオープンします。このダイアログを使用すると、書式の設定が簡単になります。詳細については、「3.4　書式」の「書式の定義」を参照してください。


範囲
範囲（オプション）

エンドユーザが入力できるデータ値の範囲を指定します。個々のデータ値を指定する場合は、カンマ「,」で区切ります。範囲指定する場合は、下限値と上限値をハイフン「-」でつなぎます。詳細については、「3.5 適用範囲」を参照してください。


項目特性

［項目特性］を設定するには、以下の手順に従ってください。

[1]	目的の項目にカーソルを合わせて、強調表示させます。

[2]	［タスク環境／特性］を選択します。

［項目特性］ダイアログがオープンします。

［項目特性］ダイアログの各欄についての説明は、以下の項目を参照してください。

ヘルプ画面	サイズ
自動ヘルプ	データベース定義
選択プログラム	データベース名
起動モード	データベース情報
修正許可	NULL値可
データ変換	NULL計算値
記憶型式	NULL表示文字列


ヘルプ画面
ヘルプ画面：０

この項目に対応させるヘルプ画面を設定します。ヘルプ画面の番号を設定します。このヘルプ画面は、実行時に、エンドユーザが項目でヘルプを要求したときに表示されます。

ヘルプ画面を対応させるには、以下の手順に従ってください。

[1]	目的のヘルプ画面の番号を入力します。番号を覚えていないとき、または定義されているヘルプ画面を調べるときには、この欄からズームしてヘルプ一覧を表示します。このように、既存のヘルプ画面を選択したり、ヘルプ画面を新たに定義したりできます。

[2]	ヘルプ画面を新たに定義するには、ヘルプ一覧から再度ズームしてヘルプ辞書テーブルをオープンし、新しいヘルプ画面を作成します。詳細については、「エンドユーザヘルプ」を参照してください。


自動ヘルプ
自動ヘルプ：０

この欄で指定するヘルプ画面は、［自動ヘルプ］と呼びます。エンドユーザとの対話処理画面で、カーソルが［自動ヘルプ］に対応した項目にくると、［自動ヘルプ］がステータス行に自動表示されます。自動的に表示されるという点で、通常の［ヘルプ画面］とは異なります。

自動ヘルプを項目に対応させるには、以下の手順に従ってください。

[1]	目的のヘルプ画面の番号を入力します。番号を覚えていないとき、または定義されているヘルプ画面を調べるとき、この欄からズームしてヘルプ一覧を表示します。このように、既存のヘルプ画面を選択したり、ヘルプ画面を新たに定義したりできます。

[2]	ヘルプ画面を新たに定義するには、ヘルプ一覧から再度ズームしてヘルプ辞書テーブルをオープンし、新しいヘルプ画面を作成します。詳細については、「自動ヘルプ」を参照してください。

［自動ヘルプ］を新たに作成した場合には、デフォルトの画面は１行80桁で、ステータス行の上に表示されます。サイズや表示位置などは、変更できません。


選択プログラム
選択プログラム：０

この欄で指定するプログラムは、「選択プログラム」と呼びます。この欄から［プログラム一覧］をズームし、目的のプログラムを選択します。エンドユーザとの対話処理画面で、カーソルが［選択プログラム］に対応した項目にくると、その［選択プログラム］が使用できます。［選択プログラム］には、項目にカーソルが来ると自動的に起動する方法と、エンドユーザのズーム操作で起動する方法があります。起動方法は、後述の［起動モード］欄で設定します。目的のデータは、［選択プログラム］が表示するデータ一覧の中から選択できます。通常の対話処理画面に限らず、エンドユーザが［オプション］メニューの［範囲］や［位置付］を選択して条件設定する場合にも、選択プログラムを同様に使用できます。ただし、選択プログラムとして使用できるのは、規定の条件を満たすプログラムだけです。もとの項目と選択プログラムのタスクで定義されている項目の間で、データの受け渡しが正常に行えるように設計してください。これは、［コールプログラム］コマンドでほかのプログラムをサブルーチンとして呼び出す場合のパラメータの受け渡し方法に準じています。

詳細については「19.2 選択テーブルと選択プログラム」を参照してください。


起動モード
起動モード：Ｂ＝前置（デフォルト）

［起動モード］欄は、［選択プログラム］の指定時にだけ関係します。使用できる値は、「Ｂ＝前置」、「Ａ＝後置」、「Ｐ＝自動」です。

・Ｂ＝前置 …  対話処理画面で、［選択プログラム］が設定されている項目にカーソルが来るとステータス行に「ズーム」が表示されます。ズームすると［選択プログラム］が実行され、終了すると、カーソルはズームした項目に戻ります。

・Ａ＝後置 … 対話処理画面で、［選択プログラム］が設定されている項目にカーソルが来ると、ステータス行に「ズーム」が表示されます。ズームすると［選択プログラム］が実行され、終了すると、カーソルはズームした項目の次のパーク可能項目に移ります。

・Ｐ＝自動 … 対話処理画面で、［選択プログラム］が設定されている項目にカーソルが来ると、［選択プログラム］が自動的に実行されます。実行が終了すると、カーソルはズームした項目に戻ります。


修正許可
修正許可：Yes（デフォルト）

「No」に設定すると、その項目の値は修正できません。修正モードのオンラインタスクで、［修正許可］が「No」と指定された項目にカーソルを移動して入力しようとすると、ビープ音が鳴り、不正な入力として拒否されます。


データ変換
データ変換：Ｉ＝内部（デフォルト）

［データ変換］欄には、「Ｓ＝標準」または「Ｉ＝内部」を設定します。データ変換は、ASCII標準形式の内部dbMAGICデータを他のシステムなどで理解できる表現、たとえばEBCDICなどで確実に書き込まれるようにするためのものです。

「Ｓ＝標準」では、項目の値がデータファイルに対して読み書きされるたびにデータ変換処理が行われます。このデータ変換は、［動作環境］テーブルの［ネイティブ変換ファイル］欄で指定されたファイルによって定義されます。通常、ネイティブ変換ファイルが指定されていない場合には、このデータ変換機能は無視されます。

「Ｉ＝内部」では、データ変換処理を行わないでデータをもとの形式のまま保管するよう指示します。データ変換は、必ず双方向変換ができるとは限りません。データ変換したデータを変換し直しても、必ず最初のデータと同じになるわけではありません。したがって、定義されている項目に整数値の配列などのバイナリデータが含まれている場合は、「Ｉ＝内部」を指定してください。


記憶型式
記憶型式：xxxxxxx

記憶型式とサイズ

［項目特性］ダイアログで表示される［記憶型式］欄と［サイズ］欄の各欄のデフォルト値は、項目の型と表示形式に従ってdbMAGICで自動的に定義されたものです。サイズの値は変更できます。［文法チェック］ユーティリティを使用すれば、不正なサイズ値を見つけることができます。

dbMAGICでは、それぞれの記憶型式を変更すると、必要に応じてサイズ値を変更します。たとえば、文字型項目の記憶型式を文字列からＬ文字列に変更すると、サイズは１バイト大きくなります。

記憶型式辞書

この節では、まずdbMAGICでサポートされるすべての記憶型式を項目型で分類した一覧を示します。次に、各記憶型式の内容について説明します。

文字型記憶型式（３）：

■	文字列（String）

■	Ｌ文字列（LString）

■	Ｚ文字列（ZString）

数値型記憶型式（12）：

■	符号付き整数（Signed Integer）

■	符号なし整数（Unsigned Integer）

■	浮動小数点（Float）

■	MS-Basic浮動小数点（Float MS-Basic）

■	浮動10進数（Float Decimal）

■	パック10進数（Packed Decimal）

■	数値（Numeric）

■	文字数字（Character Number）

■	文字列数字（String Number）

■	dbMAGIC数字（Magic Number）

■	C-ISAM 10進数（C-ISAM Decimal）

■	拡張浮動小数点（Extended Float）

論理型記憶型式（２）：

■	論理整数値（Integer Logical）

■	論理文字列（String Logical）

日付型記憶型式（６）：

■	日付整数（Integer Date）

■	日付整数－1901（Integer Date-1901）

■	日付文字列（String Date）

■	YYMD日付（YYMD Date）

■	dbMAGIC日付（Magic Date）

■	dbMAGIC日付－1901（Magic Date-1901）

時刻型記憶型式（４）：

■	整数時間（Integer Time）

■	文字列時間（String Time）

■	HMSH時間（HMSH Time）

■	dbMAGIC時間（Magic Time）

メモ型記憶型式（２）：

■	文字列メモ（String Memo）

■	dbMAGICメモ（Magic Memo）

BLOB型記憶型式（１）：

■	BLOB（Binary Large OBject）

文字型記憶型式

以下の型は文字列を表します。

文字列 （String）（デフォルト）

サイズ：１バイト～各ゲートウェイによってサポートされる最高文字列長（バイト単位）

文字列は、dbMAGICの文字型項目のデフォルトの記憶型式です。dbMAGICでは文字の並びは左から右の順に記憶されます。半角文字は1バイト、全角文字は2バイト占めます。

Ｌ文字列 （LString）（長さ＋文字列）

サイズ：１～255 バイト

1.	Ｌ文字列はPascalの文字列定義に相当し、文字列のバイト単位の長さが１バイト目に含まれます。

2.	記憶型式を文字列からＬ文字列に変更すると、［サイズ］の値が１バイト増えます。

3.	記憶型式をＬ文字列から文字列に変更すると、［サイズ］の値が１バイト減ります。

Ｚ文字列 （ZString）（ヌルで終わる文字列）

サイズ：１バイト～各データベースゲートウェイによってサポートされる最高文字列長（バイト単位）

1.	Ｚ文字列はＣ言語の文字列定義に相当し、最後のバイトには文字列の終わりを示す２進値のゼロ（ヌル）が含まれます。

2.	記憶型式を文字列からＺ文字列に変更すると、［サイズ］の値が１バイト増えます。

3.	記憶型式をＺ文字列から文字列に変更すると、［サイズ］の値が１バイト減ります。

数値型記憶型式

数値型記憶型式は、通常の計算で使用される数値を表します。

1.	dbMAGICでサポートされる最大桁数（整数桁＋小数桁）は18です。

2.	dbMAGICでは、19桁以上の記憶型式を持つ非dbMAGICファイルの数値型項目は、すべて切り捨てます。

3.	デフォルト以外の数値型記憶型式は他のシステムと互換性を保つためにだけ使用してください。

注意： 符号付き整数、符号なし整数、浮動小数点、MS-Basic浮動小数点の数値型記憶型式の場合は、記載された桁数以上の数字が受け付けられることがあります。この場合は、必ずしも正しい桁数で値が表現されない可能性があるため、記憶された値が正しくないこともあります。

符号付き整数 （Signed Integer）

９桁までの符号付き（+/-）整数で使用します。

サイズ：１、２、または４バイト（２、４、または９桁まで記憶させる場合）

符号付き整数の実際のマシン語表現は、各ハードウェアに依存します。

符号なし整数 （Unsigned Integer）

９桁までの正の整数だけを記憶させる場合に使用します。

サイズ：１、２、または４バイト（２、４、または９桁まで記憶させる場合）

符号なし整数の実際のマシン語表現は、各ハードウェアに依存します。

浮動小数点 （Float）

整数部と小数部で16桁まで記憶させる場合に使用するIEEE浮動小数点型

サイズ：４または８バイト（６または15桁まで記憶させる場合）

実際のマシン語表現は各ハードウェアに依存します。

MS-Basic浮動小数点 （Float MS-Basic）

サイズ：４または８バイト（６または16桁まで記憶される場合）

Microsoft Basicコンパイラで使用される単精度と倍精度の浮動小数点です。

浮動10進数 （Float Decimal）

サイズ：４または８バイト（６または14桁まで記憶される場合）

MS-Pascal Decimal FloatライブラリのREAL4およびREAL8データ型と互換性のある、単精度および倍精度の浮動小数点です。

パック10進数 （Packed Decimal）

バイトあたり２桁のパック10進数型で、右端のバイトの後半分に符号があります（正の場合は16進値のＦかＣ、負の場合は16進値のＤ）。

サイズ：１～10バイト

1.	パック10進数は、ANSI-74 標準COBOLのCOMP-3データ型と互換性があります。

2.	所定のサイズが「ｎ」の場合、パック10進数に記憶させることのできる最高桁数は2*n-1です。したがって、サイズ１のパック10進数項目は2*1-1=1桁の値しか記憶させることができませんが、サイズ10では2*10-1=19桁の値となります。ただし、dbMAGICでは18桁までの値しかサポートしませんので注意してください。

数値 （Numeric）

数字がASCII文字として、１バイトに１桁ずつ記憶されます。右端のバイトには埋め込み符号が記憶されます。つまり、右端のバイト値は、正の数字の場合にA-I(1-9)または「｛」(0) 、負の数字の場合にJ-R(1-9)または「｝」(0)になります。

サイズ：１～18バイト

所定のサイズが「ｎ」の場合、数値として記憶される最高桁数はｎです。

文字数字 （Character Number）

数値の記憶型式の場合と同様ですが、符号はASCIIコードの「+」または「-」として右端バイトに記憶されます。

サイズ：１～18バイト

所定のサイズが「ｎ」の場合に、記憶される最高桁数はn-1です。

文字列数字 （String Number）

１バイトに１桁ずつ記憶されます。数字に10進数が含まれていれば、１バイト追加されます。負の数字では最初の桁の前に－が入ります。

サイズ：１～18バイト

dbMAGIC数字 （Magic Number）

dbMAGICで使用される内部表現です。１バイトに２桁ずつ記憶されるとバイトが追加されます。

サイズ：２～10バイト

dbMAGIC数字では、18桁までの値がサポートされます。

C-ISAM 10進数 （C-ISAM Number）

C-ISAMでは、１バイトに２桁ずつ記憶されるバイトが追加されます。

サイズ：２～17バイト

所定のサイズが「ｎ」の場合に、C-ISAMに記憶される最高桁数は2*(n-1)です。したがって、サイズ２のC-ISAM項目には2*(2-1)=2桁の値しか記憶させることができませんが、サイズ17では2*(17-1)=32桁となります。ただし、dbMAGICでは、18桁の値までしかサポートしませんので注意してください。

拡張浮動小数点 （Extended Float）

整数部と小数部で15桁まで記憶させる場合に使用するIEEE浮動小数点型

サイズ：４または８バイト（８または15桁まで記憶させる場合）

注意：この型式は、DEC  Rdb  GFLOAT記憶型式に基づきます。

論理型記憶型式

論理整数値 （Integer Logical）

論理整数値では、符号なし整数の数値フォーマットの１または２バイトに、値１（True）または０（False）を記憶させます。

サイズ：１または２バイト

論理文字列 （String Logical）

論理文字列では、１バイトの文字列に文字'Ｔ'（True）または'Ｆ'（False）を記憶させます。

論理文字列はdBASEのLogicalデータ型と互換性があります。

サイズ：１バイト

日付記憶型式

日付整数 （Integer Date）

西暦１年１月１日からの経過日数を表します。各データベースごとに符号付きまたは符号なし整数として記憶されます。

サイズ：４バイト

日付整数－1901 （Integer  Date-1901）

西暦1901年１月１日からの経過日数を表します。符号なし整数として記憶されます。

サイズ：４バイト

日付文字列 （String Date）

日付文字列は'YYMMDD'または'YYYYMMDD'フォーマットの文字列で日付を表します。１番目のフォーマットのYYは西暦年の最後の２桁を表し、２番目のフォーマットのYYYYは４桁の西暦年、MMは月、DDは日を表します。

サイズ：６または８バイト

YYMD日付 （YYMD Date）

'YYMD'フォーマットの２進整数として日付を表します。最初の２つの最上位バイトには西暦年の下２桁が記憶され、３番目のバイトには月、最後の（最下位）バイトには日が記憶されます。３つの数字はすべて２進表現です。

サイズ：４バイト

注意：	Btrieveの日付型項目フォーマットです。

dbMAGIC日付 （Magic Date）

dbMAGIC数字の記憶型式で記憶され、西暦１年１月１日からの経過日数を表します。

サイズ：４バイト

dbMAGIC日付－1901 （Magic Date-1901）

dbMAGIC数字の記憶型式で数値型項目として記憶され、西暦1901年１月１日からの経過日数を表します。

サイズ：４バイト

時刻型記憶型式

整数時間 （Integer  Time）

秒数が、特定のデータベースに対応する、符号付きまたは符号なし整数として記憶されます。

サイズ：４バイト

文字列時間 （String Time）

時間文字列は'HHMMSS'フォーマットの文字列で時間を表します。つまり、最初の２文字は時間、次の２文字は分、最後の２文字は秒を表します。

サイズ：６バイト

HMSH時間 （HMSHTime）

HMSH時間は'HMSH'フォーマットの２進整数として時間を表します。最初のバイトに時間、２番目に分、３番目に秒、最終バイトに100分の１秒が記憶されます。４つの数字は、すべて２進表現です。

サイズ：４バイト

注意：	Btrieveの時刻型項目フォーマットです。

dbMAGIC時間 （Magic Time）

秒数はdbMAGIC数字の記憶型式として記憶されます。

サイズ：４バイト

メモ型記憶型式

文字列メモ （String Memo）

メモ型項目は２バイトの値に可変長の文字列が続く形で記憶されます。最初の２バイトには文字列の実際の長さが入ります。これら２バイトと実際の文字列だけがファイルに記憶されます。たとえば、文字列'Old Customer'を含むメモ型項目は14バイトの記憶場所を占めます。メモ型項目が空白の場合、２バイトの記憶場所を占めます。

dbMAGICメモ （Magic Memo）

dbMAGICのバージョン４のメモ型記憶型式です。最初の２バイトにはメモ型項目の実サイズが含まれます。dbMAGICメモ型項目は、記憶されるときに内容が圧縮され、サイズが最小限に抑えられます。

BLOB型記憶型式

BLOB（Binary Large OBject）

dbMAGICがOLE2オブジェクトまたはイメージを解釈するバイナリ項目を表現します。


サイズ
サイズ：xxx

記憶型式を参照してください。


データベース定義
データベース定義：N＝標準（デフォルト）

［記憶型式］、［サイズ］、［データベース定義］の各欄では、項目の内部表現の内容を示す記憶型式を設定します。dbMAGICは、項目の型、書式、使用するデータベースに応じて、デフォルトの記憶型式とサイズを割り当てます。通常は、dbMAGICによって割り当てられるデフォルト値をそのまま使用します。dbMAGIC以外のアプリケーションで作成したデータファイルにアクセスするには、これらの欄の設定を変更しなければなりません。

dbMAGICでは、さまざまなデータベースとプログラミング言語の記憶型式がサポートされます。dbMAGICでサポートされる記憶型式は、dbMAGICで認識されるどのDBMSでも使用できます。ただし、データベースによっては、dbMAGICでサポートされる記憶型式の一部が使用できないこともあるので注意してください。

dbMAGICは、この機能を実現するために、正しい記憶型式に従って構築されたデータ項目のメモリイメージを、文字列として記憶します。この機構は、データベース定義欄の設定によって制御されます。データベース定義欄に入力できる値は標準または文字列です。

■ Ｎ＝標準 … もとになるDBMSが本来の記憶型式でデータ項目を受け取ります。

■ Ｓ＝文字列 … もとになるDBMSに対して項目は文字列であることを伝えます。

注意：	dbMAGICでは、［データベース定義］欄のデフォルトの値は、データファイルで選択したゲートウェイと要求される記憶型式に従って設定されます。値を「Ｎ＝標準」から「Ｓ＝文字列」に修正することもできます。


データベース名
データベース名：

DBMSには、データベース定義の一部として項目の識別子が必要なものがあります。このような場合は、項目識別子としてDBMSに渡される名前をここで指定します。この欄が空白の場合は、現在の項目名が使用されます。外部アプリケーションで作成されるデータファイルでなければ、このデフォルト値で十分です。外部アプリケーションで作成される場合は、物理ファイルで設定される項目名をここで指定します。

［項目特性］ダイアログの［データベース名］欄は、項目名を正確に指定する必要があるデータベースにだけ関係します。この場合は、外部データベースで定義される項目名を指定します。


データベース情報
データベース情報：

［ファイル特性］および［項目特性］ダイアログの［データベース情報］欄を使用して、dbMAGICにデータベースに依存するゲートウェイ情報を提供できます。


NULL値可
NULL値可：No（デフォルト）

［ファイル特性］および［項目特性］ダイアログの［NULL値可］欄は、項目でNULL値が有効な値として受け付けられるかどうかを指定します。［NULL値可］欄の設定は、物理データベースの設定と一致させる必要があります。そうでない場合は、結果が予測できなくなります。

Yes … 項目は、NULLを有効な値として受け付けます。

No  … 項目は、NULL値を受け付けません。


NULL計算値
NULL計算値：（オプション）

［NULL計算値］に入力できるのは、同じ［項目特性］ダイアログの［NULL値可］が「Yes」に設定される場合だけです。アプリケーションの［CTL特性］ダイアログの［NULL計算］でデフォルト値の使用が設定されているときは、この欄に指定されたNULL計算値が使用されます。詳細については、第24章「アプリケーション（CTL）特性」を参照してください。

［NULL計算値］に指定する値は、このタイプに対応する項目が、1)NULL値を含み、2)式に関連する場合に使用されます。この欄に指定できる値は、タイプの型によって異なります。タイプが数値型の場合は数値を、タイプが文字型の場合は文字値を指定します。ほかの型の場合も同様です。

NULL値は本質的に未定義であるため、この欄に指定した計算値が必要です。たとえば、NULLを指定できる２つの数値項目AとBがあるとします。A=10、B=NULLの場合に、以下の式の結果は決定できません。

A + B

しかし、項目BのNULL計算値が０（ゼロ）に定義されていると、式の結果は10になります。

この欄のデフォルト値は、［NULL特性］テーブルに指定されたアプリケーション全体のデフォルト値から取ります（第24章「アプリケーション（CTL）特性」を参照）。項目がタイプの定義に基づいている場合は、もとになるタイプから継承します。

デフォルトは、項目の型によって異なります。項目に定義されたNULL計算値は、項目のタイプから継承した設定を無視できます。


NULL表示文字列

［NULL表示文字列］に入力できるのは、同じ［項目特性］ダイアログの［NULL値可］が「Yes」に設定された場合だけです。

［NULL表示文字列］に指定する値は、項目が、1)NULL値を含み、2)フォームまたはレポートに出力する必要がある場合に使用されます。NULL値は未定義であるため、アプリケーションによってはレポートのNULL値を判別する必要があります。項目にNULL値がある場合には、表示する表示文字列を指定してNULL値の存在をユーザに知らせます。NULL値に何も指定されていない場合は、型に従って空白か０が表示されます。この場合には、実際の空白か０が入った項目とNULL項目は区別できません。

この欄の値は、項目の型と異なることがあります。たとえば、項目の型が数値でも、NULL表示文字列は文字列「NULL」を含むことがあります。通常、この欄の値は文字列です。実際に表示される値は、項目の書式サイズに従います。

この欄のデフォルト値は、［CTL特性］の［NULL特性］テーブル（第24章を参照）に設定されるアプリケーションのデフォルト値から取ります。または、項目がタイプ定義に基づいている場合は、もとになるタイプから継承します。項目に定義されるNULL表示文字列は、項目のタイプから継承する設定を無視します。


制御タイプ
コントロールタイプ：Ｅ＝エディット（デフォルト）

［コントロールタイプ］欄を使用して、タイプにコントロールを関連付けすることができます。定義したタイプと互換性のあるすべてのコントロールがコンボボックスに表示されます。

注意：［タイプ特性］ダイアログでは、選択されたコントロールによって、コントロール欄のうちのいくつかは無効になるか、表示されません。

コントロールに関する詳細は、第9章「フォーム」を参照してください。


アクション
アクション：（オプション）

この欄は、［コントロールタイプ］欄で「Ｐ＝プッシュボタン」を選択したときだけ有効です。プッシュボタンが押されたときに、dbMAGICに渡されるアクションを設定します。ズームまたはダブルクリックで、［アクション一覧］からアクションを選択してください。


カラム数
カラム数：１（オプション）

この欄は、［コントロールタイプ］欄で「Ｒ＝ラジオボタン」を選択したときだけ有効です。ラジオボタンを何列で表示するかを設定します。


ステップ
ステップ：0.00000（オプション）

この欄は、［コントロールタイプ］欄で「Ｓ＝スライダ」を選択したときだけ有効です。スライダは数値型の項目でのみ選択できます。

スライダは、スライダが表現する値の尺度を決定するための範囲が定義された数値項目です。スライダとして定義された項目は、スクロールバーとして表示され、スクロールバー上を移動するインジケータの位置によって項目の値が決定されます。

ステップは、インジケータの1最小単位の移動によって増減される値です。デフォルトの単位は、指定されたスライダの長さと範囲との比率に基づく均等な値です。


キー

キーは、レコードのグループまたは各レコードの検索や、２つのファイルのレコードをすばやくリンクしたり、特定の順序でレコードを表示または印刷するときに使用します。

以下では、dbMAGICのキーの機能について説明します。

■必要に応じて設定可能なキー

データファイルには複数のキーを定義できます。キーを定義しない場合には、dbMAGICは「ゼロ」のキーを使用します。このキーは、レコードを「物理的」な順序で並べます。「ゼロキー」は［キー一覧］には表示されませんが、有効なキーです（「7.5　タスク特性ダイアログ」を参照）。

■マルチセグメントキー

キーは、複数のキーセグメントから構成できます。同じキーでも、各キーセグメントをそれぞれ異なる型の項目にできます。各キーセグメントは、昇順または降順に指定できます。同じ項目を、キーセグメントとして複数のキーで指定できます。

■文字型キーセグメントのサイズ変更

文字型項目をキーセグメントとして使用する場合は、サイズを小さくできます。詳細については、［キーセグメント］テーブルの［サイズ］欄についての説明を参照してください。

注意： dbMAGICで使用する各データベースゲートウェイには、上記の機能をすべてサポートしているものや、一部しかサポートしていないものがあります。また、キーに可能なキーセグメント数や最大サイズなどについて独自の制限があるものもあります。特定のデータベースで開発する場合には、dbMAGICは定義したものをそのデータベースの制限に従って検査し、それに応じて入力を要求してきます。

データベースゲートウェイには、dbMAGICアプリケーションをあるデータベースから別のデータベースにすぐに移植するために、通常ではサポートされない機能をエミュレートして実行するものもあります。

詳細については、「20.2　データファイルキー作成と記憶型式」を参照してください。

キーウィンドウ

キーウィンドウは、［キー］テーブル、［キーセグメント］テーブル、［項目一覧］から構成される複合ウィンドウです。

［キー］テーブルの行にカーソルを合わせて強調表示させると、キーを構成するキーセグメントが［キーセグメント］テーブルに表示されます。［キー］テーブルの各行を移動すると［キーセグメント］テーブルの内容も変わり、その行のキーを構成するキーセグメントが表示されます。

■［キー］テーブルの行からズームして、対応する［キーセグメント］テーブルに移動します。これで、［キーセグメント］テーブルを編集できます。

■［キーセグメント］テーブルからズームして［項目一覧］に移動し、必要な項目を選択できます。

［キー］テーブルの各欄の説明は、以下の項目を参照してください。

名前
重複
キーセグメント
キー特性


名前

キーの名前を入力します。

注意：［#］（キーの番号）欄には、dbMAGICが自動的に生成する連続番号が表示されます。カーソルは、この欄には止まりません。


重複

「Ｕ＝重複不可」または「Ｎ＝重複可」を設定します。デフォルト値は「Ｕ＝重複不可」です。

Ｕ＝重複不可 … キーの値が同じレコードは、複数存在できません。

Ｎ＝重複可 … キーの値が同じレコードは、複数存在できます。


キーセグメント

キーテーブル内のキーセグメントは、優先度の高いものから配置します。

［キーセグメント］テーブルの各欄についての説明は、以下の項目を参照してください。

項目（項目番号）
名前
サイズ
順序


項目

キーセグメントとして使用する項目の番号です。ここに目的の番号を入力するか、右側に表示されている［項目一覧］にズームして希望の項目を選択します。

注意：［#］（キーセグメントの番号）欄には、dbMAGICが自動的に生成する連続番号が表示されます。カーソルは、この欄には止まりません。


名前

キーセグメントとして選択した項目の名前が表示されます。カーソルは、この欄には止まりません。


サイズ

キーセグメントのサイズが表示されます。カーソルは、項目の型が文字型の場合だけこの欄で止まります。検索の効率を向上するために、キーセグメントのサイズを小さくできます。この場合、レコードの損失を防止するためにも、キーを重複可能として定義することをお勧めします。ただし、検索の効率が悪くなることもあり、キーセグメントを短くしても検索の効率が向上するわけではありません。


順（順序）

Ａ＝昇順 … キーセグメントを「昇順」で並べ替えます。

Ｄ＝降順 … キーセグメントを「降順」で並べ替えます。

キーセグメントの順序は、［動作環境］テーブルで指定したものがあれば、［照合順序ファイル］を使用できます（「16.1 設定メニュー」の「設定／動作環境」を参照）。これは、キーセグメントが文字型で、項目特性のデータ変換を「Ｓ＝標準」に設定している場合だけ使用できます。dbMAGICは、一度に１つの［照合順序ファイル］しかサポートしません。また、［照合順序ファイル］の実行中にアクセスされるファイルは、同じ順序で作成されていることを確かめてください。そうでない場合、dbMAGICは、これらのファイルの真の照合順序がわからなくなり混乱をきたす可能性があるため、範囲／位置付の照会の結果が間違ったものになることもあります。


キー特性の定義

キー特性を定義するには、以下の手順に従ってください。

[1]	目的のキーの行にカーソルを合わせて強調表示させます。

[2]	［タスク環境／特性］を選択します。

［キー特性］ダイアログがオープンします。

［キー特性］ダイアログの各欄についての説明は、以下の項目を参照してください。

方向

範囲処理モード

データベース名

データベース情報


方向
方向：Ｔ＝双方向

Ｔ＝双方向（デフォルト）… このデータファイルのアクセス方向を、順方向、逆方向に設定します。通常、双方向アクセスをサポートしていないデータベースでオンラインタスクを使用する場合にこの設定を使用します。双方向アクセスをサポートしていないデータベースで、バッチ処理を使用する場合は、片方向アクセスを定義することをお勧めします。データベースゲートウェイには、この欄の設定を無視してデフォルト値で双方向になっているものもあれば、SQLのようにこの情報を使用してインデックスが１つで十分かそれとも２つ必要になるか選択できるものもあります。

Ｏ＝片方向 … アクセス方向を順方向だけに設定します。

この欄の設定を特定のデータベースに合わせて変更すると、パフォーマンスが向上します。詳細については、「20.2 データファイルキー作成と記憶型式」を参照してください。


範囲処理モード
範囲処理モード：Ｑ＝高速

Ｑ＝高速（デフォルト） … キーを使用して、レコードを高速に検索します。

Ｆ＝全走査 … キーを使用しないで、逐次走査でレコードを検索します。式に基づいてキーを定義できるデータベースを使用するときに便利です。式は、キーセグメントテーブルのキーセグメントの階層が示す並べ替え順序と一致しないことがあるため、「Ｆ＝全走査」を指定して、このキーの全範囲でデータファイル全体を走査します。ただし、このモードにすると、速度はかなり遅くなります。

この欄の設定を特定のデータベースに合わせて変更すると、パフォーマンスが向上します。詳細については、「20.2 データファイルキー作成と記憶型式」を参照してください。


データベース名
データベース名：

DBMSには、データベース定義の一部としてキー識別子が必要なものがあります。このような場合は、キー識別子としてDBMSに渡される名前をここで指定します。この欄が空白の場合は、現在の行のキー名が使用されます。外部アプリケーションで作成されるデータファイルでなければ、このデフォルト値で十分です。外部アプリケーションで作成される場合は、物理ファイルで設定されるキー名をここで指定します。


データベース情報
データベース情報：

データベース特有の情報を設定します。詳細については、第20章「DBMSへのゲートウェイ」を参照してください。


開発

［開発］メニューからアクセスできる機能についての詳細は、以下の各項目を参照してください。

タイプ辞書

ファイル辞書

DBファイルテーブル

プログラム辞書

エンドユーザヘルプ

エンドユーザメニュー

イベント

CTL特性

辞書入出力


タイプ辞書

［データ項目］は、［型］、［書式］、［範囲］の３種類の属性で定義します。アプリケーションでは、さまざまな種類の［データ項目］を定義して使用しますが、それらの項目は「３種類の属性」に基づいて、いくつかのグループに分類できます。たとえば、パーセントを示す項目は、すべて数値型で同じ書式「3.2」になります。dbMAGICでは、グループに共通の属性を持つ項目を［タイプ辞書］に定義しておきます。［タイプ辞書］に定義した項目を、タイプと呼びます。

タイプ辞書を使用するかどうかは任意に選択できますが、使用するとアプリケーションの開発や保守すべてに役立ちます。以下に、タイプ辞書を使用する場合の利点を示します。

1.	ファイル辞書を定義する時間の節約。タイプ辞書を使用すれば、共通のタイプのある項目（実データ項目または変数項目）を定義する作業を短縮できます。

2.	簡単な保守。項目をタイプに対応させて定義すると、タイプを修正したときに、そのタイプを使用したすべての項目に変更内容が自動的に反映されます。

3.	わかりやすい項目内容。たとえば、「金額」というタイプに対応した項目の目的は明らかですが、［N$#5.2CZ*-(,);］という項目の書式を見ただけではその項目の使用目的はよくわかりません。これは項目数が多いときには特に重要です。

4.	［リンク］コマンドや［コール］コマンドを使用して「１対１のリレーション」と「１対多のリレーション」を構築する場合に、その動作をより確実にします。［リンク］コマンドや［コール］コマンドでは、２つの項目間でデータを照合したり受け渡したりする必要があります。そのとき、２つの項目の型や書式が異なると正常に動作しません。２つの項目を同じタイプで定義すれば、そのような問題は回避できます。

［タイプ辞書］は、アプリケーションごとに作成されます。［開発］メニューで［タイプ辞書］を選択して、［タイプ辞書テーブル］をオープンします。このテーブルに、目的のタイプを定義します。テーブル内での操作方法についての詳細は、「2.13 テーブルの編集」を参照してください。

タイプ辞書の終了

タイプ辞書を編集したらクローズする前に必ず文法チェックを行ない、タイプに対応するすべてのdbMAGIC構成要素を変更します。この過程で、ファイル構造の変換やデータの変換（ファイルにデータがある場合）が必要になることがあります。ファイル辞書の［項目］テーブルからタイプ辞書を参照している場合は、タイプ辞書の変更に応じて、dbMAGICがデータファイルの構造とデータ（物理ファイルのレコード）を自動的に変換します。

文法チェック

タイプの入力や編集が終了したら、タイプ辞書テーブルを終了する前に、［オプション／チェック］（｛F8｝）を選択します。

このチェックが今後のデバック作業を少なくします。文法チェックについての詳細は「17.5　文法チェックユーティリティ」を参照してください。

自動変換処理

［タイプ辞書］テーブルの内容を修正すると、タイプ辞書の終了時にdbMAGICが自動的に変換処理を開始します。ファイル辞書とプログラム辞書で設定されているすべてのデータファイルとプログラムを走査して、タイプ辞書の変更内容を反映させます。変更内容の反映は、以下の３段階で行われます。

■段階１：修正されたタイプを参照するファイル辞書の全項目が変更されます。この段階の処理は必ず実行され、開発者には指定できません。

■段階２：変更されたタイプを参照する項目を含むすべてのデータファイルが走査されます。すでにデータを含むデータファイルは変換処理が必要な場合もあるため、dbMAGICはデータファイルの変換を実行するかどうかを確認してきます。

たとえば、データファイルが3.2桁の数値型として定義されるタイプ［金額］の項目を含み、すでにデータを含む物理ファイルとして存在するとします。［金額］タイプの定義を7.2桁に変更した場合、このデータファイルには変換処理が必要です。

■段階３：既存のすべてのタスクの変数項目が、タイプ定義の変更に従って修正されます。この段階の処理は必ず実行され、開発者には指定できません。

注意：項目のタイプを変更した場合には、一貫性を維持するために、フォームの項目書式を修正してください。タイプ辞書またはファイル辞書などの変更によって項目の［書式］が変更された場合には、dbMAGICは、その変更内容をフォーム上にレイアウトされている表示項目の書式に反映させません。これは、変更内容を反映させた場合の画面のレイアウトが予測できないためです（「9.3 フォームエディタ」の「書式」を参照）。この場合には、［オプション／クロスリファレンス］（｛Ctrl｝＋｛X｝）を使用して、変更が必要なフォームを見つけます（「17.2 クロスリファレンスユーティリティ」を参照）。

関連項目

名前

型

書式

範囲


名前

タイプの名前を入力します。

注意：［＃］欄には、dbMAGICが行ごとに自動的に生成する連続番号が入ります。カーソルは、この欄には止まりません。


型

データ項目の型を指定します。設定可能な型はコンボボックスに表示されます。文字型（デフォルト）、数値型、論理型、日付型、時刻型、メモ型、イメージ型から１つ選択します。コンボボックスから選択するか、または型の頭文字を入力します。型についての詳細は、「3.2 型」を参照してください。


書式

■	文字型、メモ型の場合、［書式］欄で最低限必要な設定内容は長さです。

■	数値型の場合、［書式］欄で最低限必要な設定内容は整数の桁数で、必要に応じて小数点と小数点以下の桁数を入力します。

■	論理型、時刻型、日付型の場合、デフォルトの書式を使用するか、または必要に応じて変更できます。

■	BLOB型の場合、dbMAGICは、BLOB項目のサイズや外観を制御しないため、書式を設定する必要はありません。

■	［書式］欄からズームすると、それぞれの型に対応した［書式］ダイアログがオープンします。このダイアログを使用すると、書式の設定が簡単になります。詳細については、「3.4　書式」の「書式の定義」を参照してください。


範囲

エンドユーザが入力できるデータ値の範囲を指定します。個々のデータ値を指定する場合は、カンマ［,］で区切ります。範囲指定する場合は、下限値と上限値をハイフン［－］でつなぎます。詳細については、「3.5 適用範囲」を参照してください。


タイプ特性

ヘルプ画面、自動ヘルプ画面、ズーム可能な起動プログラムなどもタイプに対応させることができます。

タイプ特性を設定するには、以下の手順に従ってください。

[1]	目的のタイプの行にカーソルを合わて、強調表示させます。

[2]	［タスク環境／特性］を選択します。［タイプ特性］ダイアログがオープンします。

関連項目

ヘルプ画面	NULL表示文字列
自動ヘルプ	データベース名
選択プログラム	制御タイプ
起動モード	アクション
NULL値可	カラム数
NULL計算値	ステップ
スタイル	境界
複数行編集	色
フォント


ヘルプ画面
ヘルプ画面：0（デフォルト）

この［タイプ］に対応する［ヘルプ画面］を設定します。

ヘルプ画面は、実行時に、このタイプに対応した項目でエンドユーザがヘルプを要求したときに表示されます。

ヘルプ画面を対応させるには、以下の手順に従ってください。

[1]	目的のヘルプ画面の番号を入力します。番号を覚えていない、または定義されているヘルプ画面を調べるときには、この設定欄からズームしてヘルプ一覧を表示します。このように、既存のヘルプ画面を選択したり、ヘルプ画面を新たに定義したりできます。

[2]	ヘルプ画面を新たに定義するには、ヘルプ一覧から再度ズームしてヘルプ辞書テーブルをオープンし、新しいヘルプ画面を作成します。詳細については、「11.1 ３種類のヘルプ」を参照してください。


自動ヘルプ
自動ヘルプ： 0（デフォルト）

この欄で指定するヘルプ画面は、［自動ヘルプ］と呼びます。エンドユーザとの対話処理画面で、カーソルが自動ヘルプに対応する項目に来ると、自動ヘルプが自動的に表示されます。自動的に表示されるという点で、通常のヘルプ画面とは異なります。

自動ヘルプをタイプに対応させるには、以下の手順に従ってください。

[1]	目的のヘルプ画面の番号を入力します。番号を覚えていないとき、または定義されているヘルプ画面を調べるときは、この設定欄からズームしてヘルプ一覧を表示します。このように、既存のヘルプ画面を選択したり、ヘルプ画面を新たに定義したりできます。

[2]	ヘルプ画面を新たに定義するには、ヘルプ一覧から再度ズームしてヘルプ辞書テーブルをオープンし、新しいヘルプ画面を作成します。詳細については、「11.1 ３種類のヘルプ」を参照してください。

自動ヘルプを新たに作成した場合には、デフォルトの画面は１行80桁で、ステータス行の上に表示されます。サイズや表示位置などは変更できません。


選択プログラム
選択プログラム：0（デフォルト）

この欄で指定するプログラムは、「選択プログラム」と呼びます。この欄から［プログラム一覧］をズームし、目的のプログラムを選択します。エンドユーザとの対話処理画面で、カーソルが［選択プログラム］に対応する項目に来ると、その［選択プログラム］が使用できます。［選択プログラム］には、項目にカーソルが来ると自動的に起動する方法と、エンドユーザのズーム操作で起動する方法があります。起動方法は、後述の［起動モード］欄で設定します。目的のデータは、［選択プログラム］が表示するデータ一覧の中から選択できます。通常の対話処理画面に限らず、エンドユーザが［オプション］メニューの［範囲］や［位置付］を選択して条件設定する場合にも、選択プログラムを同様に使用できます。ただし、選択プログラムとして使用できるのは、規定の条件を満たすプログラムだけです。もとの項目と選択プログラムのタスクで定義されている項目の間で、データが正常に受け渡しできるように設計してください。これは、［コールプログラム］コマンドでほかのプログラムをサブルーチンとして呼び出す場合のパラメータの受け渡し方法に準じています。詳細については、「19.2 選択テーブルと選択プログラム」を参照してください。


起動モード
起動モード：Ｂ＝前置（デフォルト）

［起動モード］欄は、選択プログラムの指定時にだけ関係します。使用できる値は、「Ｂ＝前置」、「Ａ＝後置」、「Ｐ＝自動」です。

Ｂ＝前置 … 対話処理画面で、選択プログラムが設定されている項目にカーソルがくるとステータス行に「ズーム」が表示されます。ズームすると選択プログラムが実行され、ズームを終了すると、カーソルは対話処理画面のもとの項目（ズームした項目）に戻ります。

Ａ＝後置 … 対話処理画面で、選択プログラムが設定されている項目にカーソルがくると、ステータス行に「ズーム」が表示されます。ズームすると選択プログラムが実行され、ズームを終了すると、カーソルは対話処理画面のもとの項目（ズームした項目）の次のパーク可能項目に移ります。

Ｐ＝自動 … 対話処理画面で、選択プログラムが設定されている項目にカーソルがくると、選択プログラムが自動的に実行されます。実行が終了すると、カーソルは対話処理画面のもとの項目に戻ります。


NULL値可
NULL値可：No （デフォルト）

Yes … このタイプ（プログラムのデータベース項目または変数項目）に対応するすべての項目は、NULLを有効な値として受け付けます。

No … このタイプに対応するすべての項目は、NULLを受け付けません。


NULL計算値
NULL計算値：（オプション）

［NULL計算値］に入力できるのは、同じ［タイプ特性］ダイアログの［NULL値可］が「Yes」に設定された場合だけです。アプリケーションの［CTL特性］ダイアログの［NULL計算］で「デフォルト」が設定されているときは、この欄に指定されたNULL計算値が使用されます。詳細については、第24章「アプリケーション（CTL）特性」を参照してください。

［NULL計算値］に指定する値は、このタイプに対応する項目が、1)NULL値を含み、2)式に関連する場合に使用されます。この欄に指定できる値は、タイプの型によって異なります。タイプが数値型の場合は数値を、文字型の場合は文字値を指定します。ほかの型の場合も同様です。

NULL値は本質的に未定義であるために、この欄に指定した計算値が必要です。たとえば、NULLを指定できる２つの数値項目AとBがあるとします。A=10、B=NULLの場合に、以下の式の結果は決定できません。

A + B

しかし、項目BのNULL計算値が０（ゼロ）に定義されていると、式の結果は10になります。

この欄のデフォルト値は、［NULL特性］テーブルに指定されたアプリケーション全体のデフォルト値から取ります。［NULL特性］テーブルには、［CTL特性］ダイアログからアクセスできます。

デフォルト値は、タイプの型によって異なります。タイプに定義されたNULL計算値は、項目レベルで無視できます。


NULL表示文字列
NULL表示文字列：（オプション）

［NULL表示文字列］に入力できるのは、同じ［タイプ特性］ダイアログの［NULL値可］が「Yes」に設定された場合だけです。この欄のデフォルト値は、［NULL特性］テーブルに指定されたアプリケーション全体のデフォルト値から取ります。［NULL特性］テーブルには、［CTL特性］ダイアログからアクセスできます。

［NULL表示文字列］に指定する値は、項目が、1)このタイプに対応し、2)NULL値を含み、3)フォームまたはレポートに出力する必要がある場合に使用されます。NULL値は未定義であるため、アプリケーションによってはレポートのNULL値を判別する必要があります。項目にNULL値がある場合には、表示する表示文字列を指定してNULL値の存在をユーザに知らせます。NULL値に何も指定されていない場合は、型に従って空白か０が表示されます。この場合には、実際の空白か０が入った項目とNULL項目は区別できません。

この欄の値は、タイプの型と異なることがあります。たとえば、タイプの型が数値でも、NULL表示文字列は文字列「NULL」を含むことがあります。通常、この欄の値は文字列です。実際に表示される値は、タイプに基づく項目の書式サイズに従います。


データベース名
データベース名：（オプション）

外部データ辞書に対応するタイプを定義する場合は、この欄を使用してdbMAGICのタイプ定義を外部のタイプ定義に合わせます。その場合、タイプ名は外部辞書に記憶されます。このタイプ名は、あとでdbMAGICロード定義ユーティリティによって使用されます。ロード定義ユーティリティは、この欄に指定されたタイプのデータベース名を使用して、目的の外部定義にアクセスします。

dbMAGICで作成したタイプを外部辞書に対応させる場合は、この欄に外部辞書のタイプ定義名を指定します。ロード定義ユーティリティを使用して、外部辞書からタイプ定義が自動的にアップロードされると、アップロード元のタイプ名がこの欄に自動的に記入されます。


コントロールタイプ
コントロールタイプ：Ｅ＝エディット（デフォルト）

［コントロールタイプ］欄を使用して、タイプにコントロールを関連付けすることができます。定義したタイプと互換性のあるすべてのコントロールがコンボボックスに表示されます。

注意：［タイプ特性］ダイアログでは、選択されたコントロールによって、コントロール欄のうちのいくつかは無効になるか、表示されません。

コントロールに関する詳細は、第9章「フォーム」を参照してください。


アクション
アクション：（オプション）

この欄は、［コントロールタイプ］欄で「Ｐ＝プッシュボタン」を選択したときだけ有効です。プッシュボタンが押されたときに、dbMAGICに渡されるアクションを設定します。ズームまたはダブルクリックで、［アクション一覧］からアクションを選択してください。


カラム数
カラム数：１（オプション）

この欄は、［コントロールタイプ］欄で「Ｒ＝ラジオボタン」を選択したときだけ有効です。ラジオボタンを何列で表示するかを設定します。


ステップ
ステップ：0.00000（オプション）

この欄は、［コントロールタイプ］欄で「Ｓ＝スライダ」を選択したときだけ有効です。スライダは数値型の項目でのみ選択できます。

スライダは、スライダが表現する値の尺度を決定するための範囲が定義された数値項目です。スライダとして定義された項目は、スクロールバーとして表示され、スクロールバー上を移動するインジケータの位置によって項目の値が決定されます。

ステップは、インジケータの1最小単位の移動によって増減される値です。デフォルトの単位は、指定されたスライダの長さと範囲との比率に基づく均等な値です。


スタイル：３＝凸立体（デフォルト）
スタイル：S＝凹立体（デフォルト）

コントロールの外観を設定します。設定できる値は、以下の3つです。

■	「２＝平面」

■	「３＝凸立体」

■	「Ｓ＝凹立体」

デフォルト値は、「Ｓ＝凹立体」です。


境界：Ｎ＝なし（デフォルト）

コントロールの境界の種類を設定します。以下の３つの値を設定できます。

■	「Ｔ＝細線」… コントロールの周囲を細い線で囲みます。

■	「Ｈ＝太線」… コントロールの周囲を太い線で囲みます。

■	「Ｎ＝なし」… 境界に何も表示しません。

デフォルト値は「Ｎ＝なし」です。


複数行編集
複数行編集：No（オプション）

エディットコントロールに対してのみ有効です。コントロールが複数行のテキストを含むことができるかどうかを設定します。


色
色：1（デフォルト）

［基本色一覧］の色の番号を設定します。ズームまたはダブルクリックすると［基本色一覧］が表示されます。値を入力する場合、1から100までの範囲でなければなりません。フォームエディタで、コントロールの色を設定することもできます。


フォント
フォント：1（デフォルト）

コントロールに表示されるテキストのフォントを設定します。ズームまたはダブルクリックすると［フォント］テーブルが表示されますので、必要なフォントを選択します。値を入力する場合、1から100までの範囲でなければなりません。


ファイル辞書

ファイル辞書は、アプリケーションごとに作成されます。［開発／ファイル辞書］メニューを選択して、［ファイル辞書］テーブルをオープンします。このテーブルに、目的のデータファイルを定義します。各データファイルに、それを構成する実データ項目、キー、データベースゲートウェイ、ファイル名（ディレクトリパス名も含む）を設定します。テーブル内での操作方法についての詳細は、「2.13 テーブルの編集」を参照してください。

以下の項では、ファイル辞書定義に関連するテーブル、一覧、ダイアログボックスについて説明します。

データファイルの物理ファイル名

［ファイル辞書］に新しいデータファイルを作成すると、dbMAGICは以下の形式の物理ファイル名を付けます。

XXFILnnn.DAT

XXは、アプリケーションの識別子としてアプリケーションテーブルに指定される２文字のアルファベットです。詳細については、「16.1 設定メニュー」を参照してください。

nnnは、dbMAGICが［ファイル辞書］で各データファイルに割り当てる３桁の連続番号です（下記参照）。

たとえば、識別子が「SM」というアプリケーションの場合に、［ファイル辞書］に４番目のデータファイルを作成すると、“SMFIL004.DAT”という物理ファイル名が付けられます。

注意： ［ファイル辞書］のデータファイル行を削除すると、dbMAGICはそれ以降のすべてのファイルの連続番号を更新します。その際、物理ファイル名の連続番号も更新します。この物理ファイル名の変更は、データファイルの物理的な格納場所には影響しません。これについては、以下の項で説明します。

データファイルの物理的な格納場所

データファイルの物理的な格納場所と物理ファイル名は、以下の４つのレベルで設定できます。

■　［アプリケーション］テーブルでの設定 … アプリケーションを新たに定義するには、その識別子を指定します。識別子は、パスを示す文字列を付けて指定することもできます。その場合、dbMAGICは、［識別子］に付けたパス名で指定されるディレクトリに、アプリケーションに関連するファイル（CTLファイルなど）を作成します。パス名を特に指定しない場合は、カレントディレクトリに作成されます。

■　［データベース］テーブルでの設定 … 各ファイルのデータベース項目には、［位置］欄があります。この欄は、データベース項目が表すデータベースに記憶されたすべてのファイルの位置かパスを示します。

■　［ファイル辞書］テーブルでの設定 … ［DBファイル］は、パスを示す文字列を付けて設定します。すでに述べたように、［DBファイル］欄が空白の場合は、dbMAGICが物理ファイル名を自動的に作成します。［DBファイル］を設定すると、その物理ファイル名が使用されます。

■　［DBファイル］テーブルでの設定 … タスク内から［タスク環境］メニューで［DBファイル］テーブルを呼び出します。このテーブルの［式］欄で、データファイルの物理ファイル名（パス名も含む）を変更できます。［式］欄が空白の場合は、［ファイル辞書］テーブルの［ファイル名］欄で設定されている物理ファイル名が使用されます。詳細については、「7.12 DBファイルテーブル」を参照してください。

注意： ［ファイル辞書］の［DBファイル］を変更する場合に、ファイル名が既存の物理データファイルと同じときには、確認ダイアログが表示されます。承認すると、dbMAGICはリネーム処理をし、前のファイルは上書きされます。同じように、dbMAGICでは、異なる物理媒体やクライアント／サーバ間でも確認後にファイルがリネームされるため、ファイルが上書きされる危険があります。この場合、リネームは、コピーと削除を組み合わせて実行します。すなわち、ファイルをターゲットにコピーしてからソースを削除します。

ファイル辞書の終了

［項目］テーブルか［キー］テーブルを修正した場合は、作成または編集したデータファイルの行を終了する前に、［オプション／チェック］（｛F8｝）を選択して文法チェックを行います。このチェックが今後のデバッグ作業を少なくします。

自動変換処理

データファイルのある行から他の行へ作業を移るとき、ファイル辞書を終了するとき、［項目］テーブルまたは［キー］テーブルを変更したりデータファイルに対応したタイプを修正したときに、dbMAGICは自動的に変換処理をします。

注意： キー設定を「重複可能」から「重複不可」に変更すると、変換処理によって重複キー条件に該当するレコードがすべて削除されます。

dbMAGICは、ある行での作業を終了して、他の行に移るか、またはファイル辞書を終了するまでは、変更前のもとのデータファイルの構造と新しい構造を保持します。変換処理を取り消すと、データファイルの物理的構造と論理的構造とが一致しなくなります。このような場合、dbMAGICは後の段階で自動変換を実行できなくなるため、次にデータファイルにアクセスした時にエラーが発生します。

変換処理を行うには、以下の手順に従ってください。

1.	dbMAGICは［変更しますか？］ダイアログをオープンします。「Yes」を選択してファイルを自動的に変換させます。「No」を選択すると、変換されません。

2.	［変更しますか？］ダイアログで「Yes」を選択すると、［バックアップしますか？］ダイアログがオープンします。修正する前のもとのデータファイルのバックアップを取る場合は、「Yes」を選択します。ディスクに空きがあれば、BCKファイル“DMBCK001.DAT”がカレントディレクトリに作成されます。

3.	［変更しますか？］ダイアログで「Yes」を選択すると、［ファイル変更］ダイアログが表示されます。このダイアログでは、すでに定義されているキーのどれかに従ってデータファイルのデータを配列し直すようにdbMAGICに要求できます。キー「０」では、レコードがその物理的順番で配列されます。キーに従ってデータファイルを配列するには、そのキーの番号（キーテーブルにある）を直接入力するか、［キー一覧］をズーム表示して目的のキーを選択します（注意：キー一覧には現在の編集作業より前に存在したキーだけが含まれるため、新たに定義されたキーは使用できません）。データファイルの逐次検索や、入出力操作を効率的にするために、最もよく使用するキーに従って配列することをお勧めします。

4.	［ファイル変更］ダイアログで［OK］または［取消］を選択すると、dbMAGICが変換を実行します。［変更処理］ウィンドウが表示されて、変換されたレコードの数が表示されます。

注意：項目変更した場合には、一貫性を維持するために、フォームの項目書式を修正してください。ファイル辞書が変更された場合には、dbMAGICは、その変更内容をフォーム上にレイアウトされている項目の書式に反映させません（「9.3 フォームエディタ」の「書式」を参照）。この場合には、［オプション／クロスリファレンス］（｛Ctrl｝＋｛X｝）を使用して、変更が必要なフォームを見つけます（「17.2 クロスリファレンスユーティリティ」を参照）。

データファイル（物理ファイル）の自動変換

ファイル辞書で既存のデータファイルの定義内容を編集しているときに、サーバ名またはデータベース名を変更すると、新しいサーバまたはデータベースの物理的、構造的な要件を満たすために、dbMAGICはダイアログで確認してから自動変換を開始します。詳細については、第21章「クライアント／サーバアーキテクチャ」を参照してください。

ファイル辞書からのAPGの使用

APGは、ファイル辞書で新しいDBファイルを処理するときに非常に便利です。カーソルを合わせて強調表示させたデータファイルで［オプション／APG］を選択すると、データファイルを照合したり、データファイルに対してアスキーデータを入出力する簡易プログラムを簡単に自動作成したりできます。APGのその他の機能とその操作方法についての詳細は、第22章「APG」を参照してください。

関連項目

名前	DBMS
項目	データベース
キー	ファイル特性
DBファイル


名前

データファイルの名前を入力します。エラーメッセージを表示する際に使用されます。

注意：［＃］欄には、dbMAGICが自動的に生成する連続番号が表示されます。カーソルは、この欄には止まりません。


項目

データファイルのレコードを構成する実データ項目の数を設定します。この欄から［項目］テーブルをズームして設定します。この欄には、［項目］テーブルに設定されている実データ項目の数が表示されます。


キー

データファイルのキーを設定します。この欄から［キー］テーブルをズームして設定します。この欄には、［キー］テーブルに設定されているキーの数が表示されます。キーは必要に応じて複数設定でき、必要がなければ設定しなくてもかまいません。


DBファイル

［DBファイル］欄では、下記の内容を組み合わせて記述できます。

■	dbMAGICサーバ名 … データファイルがサーバ上に存在する場合

■	パス名

■	物理ファイル名 … この名前を指定すると、dbMAGICがデータファイルに自動的に付けた物理ファイル名は無効になります。dbMAGICが自動的に付けた物理ファイル名についての詳細は、「4.3 ファイル辞書の定義」を参照してください。

［DBファイル］欄のサイズは128文字までです。［広域ウィンドウ］をオープンする場合は、［広域］（｛F6｝）を選択してください。

ファイルは、保守と移植を簡単にするために、ここではなく［データベース］テーブルの格納場所に記憶させることをお勧めします（［設定／データベース］）。［データベース］テーブルはアプリケーションの外側にあるためです。ファイルの格納場所をアプリケーション自体の外側に指定すれば、アプリケーションは特定の環境に縛られません。

パスの文字列

パスの文字列の形式は、「（サーバ名）ディレクトリ名」です。

■	サーバ名は、サーバテーブルに設定されているサーバです（「16.1 設定メニュー」の「設定／サーバ」を参照）。

■	パスの記述方法は、アクセスされるOSやDBMSによって異なります。標準的なディレクトリパスと物理ファイル名を組み合わせたり、物理ファイル名だけを記述したりできます。

注意： ファイルのサーバ名とパスは、ファイル定義で使用される［データベース］テーブルに指定します。詳細については、第16章「設定」を参照してください。ただし、旧バージョンのdbMAGICとの互換性を保つために、上述した［DBファイル］にも指定できます。

［ファイル辞書］テーブルの［DBファイル］欄と、タスク内で呼び出した［DBファイル］テーブルの［式］欄の両方が空白である場合には、dbMAGICはそのデータファイルに対する物理ファイル名を自動的に決定し、その格納場所は［データベース］テーブルに指定されたディレクトリがあればそのディレクトリ、またはカレントディレクトリであるとみなします。

ただし、この２つの欄が空白である場合に、［アプリケーション］テーブルの［識別子］欄でパス名を付けて識別子を設定しているときには、パス名で指定されるディレクトリが格納場所になります。


DBMS

ファイルに使用されるデータベース管理システムのタイプです。ファイルに対してDBMSを選択するには、以下のようにしてください。

[1]	［DBMS］欄からズームして［DBMS一覧］をオープンします。

[2]	［DBMS一覧］には、システムで使用できるすべてのdbMAGICゲートウェイが表示されます。ファイルに使用するデータベースを一覧から選択します。

データベースゲートウェイについての詳細は、第20章「DBMSへのゲートウェイ」を参照してください。


データベース

この欄に指定されるデータベース名は、dbMAGICが、アプリケーションファイルを記憶する物理データベースへアクセスする際に使用します。dbMAGICは、［動作環境］テーブルの［デフォルトデータベース］パラメータに設定されているデータベースをデフォルトのデータベースとして使用します。ファイルに対してデフォルト以外のデータベースを選択するには、［データベース］欄からズームして［データベース一覧］をオープンします。データベース一覧には、使用できるデータベースがすべて表示されます。使用するデータベースを一覧から選択します。データベースの詳細については、「16.1 設定メニュー」を参照してください。

注意： ［DBMS］は、データベースのゲートウェイに必要な接続先をdbMAGICに指定します。データベースゲートウェイは、ファイル定義に必要な情報をすべて記憶します。［データベース］は、実行時の物理ファイルへのアクセス情報を提供します。


ファイル特性の定義

ファイル特性をデータファイルと対応させるには、次のようにしてください。

[1]	目的のデータファイルの行にカーソルを合わせて、反転表示させます。

[2]	［タスク環境／特性］を選択します。

[3]	［ファイル特性］ダイアログがオープンします。

関連項目

アクセスキー

暗号化ファイル

キャッシュサイズ

常駐

データベース情報


アクセスキー

この欄には、もとになるDBMSのファイルセキュリティ機構を使用する方法を設定します。この欄の値は、ファイルをオープンするたびにもとになるデータベースに渡されます。外部プログラムや別のdbMAGICアプリケーションがファイルにアクセスする場合は、基になるDBMSに同じアクセスキーを渡す必要があります。そうしないと、データへのアクセスが拒否されます。この保護機構をシステム特有にするには、この項目にシークレット名を使用します。詳細については、「12.10　シークレット名テーブル」を参照してください。


暗号化キー

この欄は、［アクセスキー］を設定してから使用します。ファイルのアクセスキーが設定されている場合にこの値を「Yes」にすると、［アクセスキー］を暗号化キーとして使用してファイルを暗号化します。「No」にすると、ファイルは暗号化されません。

［アクセスキー］欄または［暗号化キー］欄を変更すると、変更を確認するダイアログが表示されます。


キャッシュサイズ

「キャッシュサイズ」はバイト数ではなくレコード数で設定します。キャッシュサイズは２つのレベル、つまり「CTLレベル」と「タスクレベル」で決定されます。CTLレベルでのキャッシュサイズの決定はファイル辞書で行ないます。各ファイルの［ファイル特性］ダイアログでキャッシュサイズの初期値が指定できます。その値は数値か論理名で指定し、論理名は実行時に実際の値に変換されます。


常駐

［常駐］欄により、ファイルを常駐テーブルとして定義し、ファイルがメモリにロードされるタイミングを設定します。常駐テーブルについての詳細は、「17.8  常駐テーブル」を参照してください。

使用できる値は、「Ｎ＝なし」、「Ｉ＝即時」、「Ｄ＝利用時」です。

Ｎ＝なし … デフォルト値。ファイルは、メモリには常駐しません。

Ｉ＝即時 … ファイルはメモリに常駐し、アプリケーションの実行時にロードされます。

Ｄ＝利用時 … ファイルはメモリに常駐し、アプリケーションでアクセスされた場合のみロードされます。


データベース情報

この欄では、もとのDBMSに渡すデータベース特有の情報を設定します。通常は、［データベース情報］欄を使用しません。


DBファイルテーブル

［DBファイル］テーブルは、左側の［データファイル］テーブルと右側の［ファイル一覧］から構成される複合ウィンドウです。［ファイル一覧］にアクセスするには、［ファイル］欄からズームします。

dbMAGICは、メインファイルとリンクファイルを［DBファイル］テーブルに自動的に登録します。これらのファイルは、テーブルから削除できません。カーソルがこれらの行にあるときに、メニューの［編集／行削除］（｛F3｝）は使用できません。編集できるのは、設定欄だけです。

テーブルには、データファイルを追加できます。たとえば、子タスクで使用するデータファイルを親タスクの［DBファイル］テーブルに追加すると、子タスクが呼び出されるたびにデータファイルのオープンやクローズにかかっていた時間が節約できます。

テーブルの各項目の説明

ファイル	オープン

アクセス	式

共有	キャッシュ


ファイル

［ファイル辞書テーブル］にあるデータファイルの番号が表示されます。

新しいデータファイルを追加するには、［編集／行作成］を選択してこの欄に目的のデータファイルの番号を直接入力するか、右側の［ファイル一覧］にズームして目的のデータファイルを選択します。

注意：［＃］欄には、テーブルの各行に対してdbMAGICが自動的に割り当てる連続番号が表示されます。カーソルは、この欄には止まりません。


ファイル名

データファイルの名前が表示されます。カーソルは、この欄には止まりません。


アクセス

この欄はマルチユーザ環境だけに関係し、データファイルへのアクセス方法を指定します。

［読み込み専用］アクセスの場合は「Ｒ＝読込」、［読み込み／書き出し］アクセスの場合は「Ｗ＝書出」（デフォルト値）を使用します。

［アクセス］欄についての詳細は、「14.3 マルチユーザ環境の設定」を参照してください。


共有

この欄はマルチユーザ環境だけに関係し、ほかのタスクが同じデータファイルにアクセスしようとする場合のアクセスの種類を指定します。

ほかのタスクに［読み込み専用］アクセスを許可する場合は、「Ｒ＝読込」を使用します。ほかのタスクに［読み込み／書き出し］アクセスを許可する場合は、「Ｗ＝書出」（デフォルト値）を使用します。ほかのタスクにアクセスを許可しない場合は、「Ｎ＝なし」を使用します。

［アクセス］と［共有］の組み合せは、データファイルのオープンモードに反映されます。［アクセス］と［共有］が両方とも「Ｗ＝書出」の場合はレコードロックを意味し、［アクセス］が「Ｗ＝書出」で［共有］が「Ｒ＝読込」の場合はデータファイルの共有を意味します。［共有なし］は、ファイルの排他的使用を意味します。［アクセス／共有］についての詳細は、「14.2 ファイルアクセスモード」を参照してください。


オープン

Ｎ＝標準 … 通常使用するデータファイルの［オープンモード］

Ｆ＝高速 … dbMAGICは、デフォルトでは「アクセス=書出」、「共有=書出」、「オープン=標準」でファイルをオープンします。データの整合性を優先するには、［データリカバリ］パラメータを「Yes」に設定します。処理能力を優先するには、［環境設定］ダイアログの［データリカバリ］を「No」に設定します。アプリケーション全体では整合性を優先し、特定のファイルに対しては処理能力を優先するには、［オープン］モードを「Ｆ＝高速」に設定します。「Ｒ＝再索引」モードは「Ｆ＝高速」に基づくため、処理能力が優先されます。

Ｄ＝破損 … 破損オープンモードは、ファイルマネージャーが障害があると報告したデータファイルでも強制的にオープンするように命令します。このモードでは、障害ファイルから検索できるすべてのレコードが検索されます。この場合、データファイルにはキーが使用できません。このモードでは、全レコードを検索できるかどうかは保証できません。このモードは、障害ファイルを復旧するときにだけ使用してください。

Ｒ＝再索引 … 再索引オープンモードは、データファイルのすべてのキーを途中段階で保持しないで、作業終了時にキーを再構築するようにdbMAGICに指示します。再索引オープンモードは処理速度を向上させる機能で、大量のレコードを登録モードで入力するとき、またはデータファイルのキーに使用されている項目の値を大幅に変更するときに使用します。キーを一時的に放棄すると、BtrieveのB-treeの調整など、もとになるデータベースマネージャーが行うすべてのキー挿入・修正処理にかかる索引保守の時間が節約できます。処理が終了すると、dbMAGICはデータファイル全体についての索引構造をまとめて構築します。

再索引オープンモードは、もとになるデータベースゲートウェイにサポートされるかどうかによって異なります。再索引オープンモードを指定する時、重複したキー値が重複不可キーに入力されていると、索引再作成処理は予期しない結果になります。たとえば、Btrieveでは索引再作成処理がアボートされます。データベースゲートウェイの中には、重複レコードを処理しないものがあります。


式

この欄が「0」の場合は、［ファイル辞書］テーブルで設定されているファイルがデータファイルとして使用されます（「デフォルトのデータファイル」）。この欄には、必要に応じて式番号を設定できます。その式は、データファイルのファイル名（ディレクトリパスも含む）を与えるものでなければなりません。「デフォルトのデータファイル」と同じ構造のデータファイルが複数ある場合に、状況に応じてアクセス先を切り替えて使用するには、この欄を使用します。

詳細については、「4.4 ファイル辞書テーブル」を参照してください。


キャッシュ

この欄には、「Yes」、「No」、または「式」を指定します。これは、キャッシュを使用するかどうかを指定します。

キャッシュについての詳細は、「17.7 MAGICキャッシュ」を参照してください。


プログラム辞書

［プログラム辞書］テーブルには、アプリケーションを構成するすべてのプログラムが登録されています。このプログラム辞書テーブルからさまざまなウィンドウをオープンして、プログラムやタスクの構成要素を作成または修正できます。

プログラムとタスクについての詳細は、第６章「プログラムとタスク」を参照してください。

タスク定義からそれぞれのウィンドウをオープンするには、［タスク環境］メニューより選択するか、または対応するショートカットキーを押します。

プログラム辞書の使用方法

プログラムを作成するには、以下の手順に従ってください。

[1]	［プログラム辞書］テーブルで「登録」ボタン（｛F4｝）を押して、１行作成し、プログラム名を入力します。

[2]	プログラムを構成するタスクを［タスクツリー］ウィンドウで作成して、プログラムの構造を構築します。

[3]	［タスク環境］メニューの各メニュー項目（［特性］、［タスク制御］など）を選択して、各タスクの構成要素を設定します。

[4]	必要に応じて、［オプション］メニューを利用します。

プログラム辞書テーブル

プログラム辞書テーブルに戻る方法

［プログラム辞書］テーブルは、プログラムの開発作業の起点となります。子タスクまたは子タスク内のウィンドウの編集時に［編集／先頭画面］を選択すると、［プログラム辞書］テーブルにただちに戻ります。

［編集／取消］を選択すれば、タスクの構成要素（フォームなど）の編集時にその作業を取り消せます。たとえば、［タスク定義］ウィンドウの編集時に［編集／取消］を選択すると、そこでの変更がすべて取り消されて［タスクツリー］ウィンドウに戻ります。フォームの編集時に［編集／取消］を選択すると、［フォーム］テーブルに戻ります。

プログラム辞書テーブルの各欄についての説明

＃（プログラムの番号）

dbMAGICがプログラムを識別するために使用する連続番号が表示されます。この番号は自動的に生成されます。カーソルは、この欄には止まりません。

［プログラム辞書］テーブルで行の追加、削除などを行うと、プログラムの番号が自動的に付け直され、アプリケーション内のすべての識別番号が更新されます。たとえば、［プログラム辞書］テーブルで番号が変更されると、それを反映してポップアップメニュー（またはプルダウンメニュー）でのプログラム番号の設定も変更され、相互の関連性が維持されます。

プログラムの番号を式の記述の中で使用する場合に、その番号が自動的に更新されるようにするには、番号の後にリテラル'PROG'を指定します。つまり、プログラムの番号（nn）を'nn'PROGとして指定します。たとえば、式の中に「'3'PROG」という記述があるとします。［プログラム辞書］テーブルの３番目のプログラムの前に新しいプログラムを追加するとします。すると、前に入力されたプログラムは#3から#4に変わり、式中の'3'PROGは'4'PROGに自動的に変更されます。

最終更新日時

プログラム階層内のいずれかのタスクを最後に変更して保存した日時が自動的に表示されます。

関連項目

名前

タスクツリーエディタ

処理テーブル


名前

プログラムの名前です。

■	この欄のプログラム名はルートタスクの［タスク名］と共通です。この名前は、［タスクツリー］ウィンドウのルートノード内の名前として、または［タスク特性］ダイアログの［タスク名］として表示されます。

■	上記の３か所のどこかでこの名前が変更されると、その変更内容は残りの２か所にも反映されます。


タスク特性

タスク特性は、［タスク特性］ダイアログで定義されています。このダイアログは、タスクノードからはじめてズームしたときには自動的にオープンされます。それ以降にこのダイアログをオープンするには、［タスクツリー］、［タスク定義］ウィンドウなどが表示されているときに［タスク環境／特性］を選択します。

SQLコマンドが定義されているタスクでは、［メインファイル］と［キー］欄にアクセスできません。この場合、［メインファイル］にはファイル名として「SQLコマンド」が表示されます。タスクのデータビュー作成では、メインファイルにSQL文が置き換わります。

各欄についての説明

タスク名	初期モード
メインファイル	初期モード（式）
キー	選択テーブル
キー（式）	タスク常駐
タスクタイプ	アイコンファイル名
行数制限式


タスク名：

タスクのノードに表示される名前と共通です。ルートタスクの場合は、［プログラム辞書］テーブルに表示されるプログラム名とも共通です。

タスクが実行されるときに表示される［メインウィンドウ］のタイトルは、デフォルトでこのタスク名と同じになりますが、あとで変更できます。

［タスク特性］ダイアログでタスク名を変更すると、［フォーム］テーブルでのフォーム名や［フォーム］画面タイトルも含めて、そのタスク名を参照するすべてのところで自動的に更新されます。ただし、［フォーム］テーブルでのフォーム名は、［タスク］名とは異なる名前にすでに変更されているときには、自動変更されることはありません。


メインファイル
メインファイル：０（デフォルト値）

タスクのメインファイルとして使用するデータファイルを、［ファイル辞書テーブル］から選択します。タスクにSQLコマンドがある場合は、［メインファイル］欄にはアクセスできません。それ以外の場合、この欄には、選択したデータファイルのファイル識別番号およびファイル名称が表示されます（「5.2 エンジンについての基本事項」を参照）。

メインファイルを定義するには、以下のどれかを行ってください。

-	メインファイルの番号がわかっているときには、その番号を入力します。

-	カーソルを［メインファイル］欄に合わせます。次にズームまたはダブルクリックして［ファイル一覧］を表示し、目的のデータファイルを選択します。

データファイルではなく、「スクラッチファイル」を使用する場合は、［メインファイル］欄をゼロ（デフォルト値）のままにします。スクラッチファイルは無限レコードのファイルとみなされるため、［バッチ］タスクをループさせるときにこの方法を使用します。この方法についての詳細は、「19.3 制御されたループを実現する方法」を参照してください。オンラインタスクでは、独自のメニューをメインウィンドウ上に作成したり、子タスクに印刷範囲を指定する値を渡してレポート印刷時にその印刷範囲を設定するための処理を行う場合などに、スクラッチファイルを使用します。


キー
キー：０（デフォルト値）

メインファイルで使用するキーを［キー一覧］から選択します。タスクにSQLコマンドがある場合は、［キー］欄にはアクセスできません。それ以外の場合は、選択したキーの識別番号および名称が表示されます。

デフォルトは、［キー一覧］の１番目のキーです。目的のキーを選択すると、このタスクのデータビューレコードの取り出し順序が決まります。

［キー］欄の値をゼロに設定して［式］を使用しないと、索引を使用しないでディスクに記録されている物理的な順序でファイルを走査します。

■	目的のキー番号を［キー］欄で選択して、キーを指定します。

キーを指定するには、以下のどれかを行ってください。

-	目的のキーの識別番号がわかっているときは、その番号を入力します。

-	カーソルを［キー］欄に置きます。次に、ズームまたはダブルクリックして［キー一覧］を表示し	目的のキーを選択します。

■	キーは、式を使用して動的に定義できます。つまり、［（式）］欄に式番号を指定すると、実行時の式の評価値でキーが決まります。


キー（式）
キー（式）：０（デフォルト値）

タスクにSQLコマンドがある場合は、［キー］欄にはアクセスできません。

それ以外の場合に、［（式）］欄を使用するには、［キー］欄を「0」に設定しておいてください。［（式）］欄に入力した式番号は［式］テーブルの式を指し、実行時に評価されます。

■	式の評価結果は、メインファイルに有効なキー番号でなければなりません。実行時に式が有効なキー番号を返さない場合は、ゼロキー（物理的順序）が自動的に使用されます。

■	式は、タスクが実行されると、ただちに評価され、項目の値が使用できるようになります。そのため、定数ではなく項目に基づく式は、パラメータを受け取る変数項目か親タスクの項目を使用する必要があります。使用できない項目に基づく式は「0」になります。

注意：式の中でキー番号を使用する場合、dbMAGICがキー番号を自動的に更新するようにするには、キー番号のうしろにリテラル'KEY'を指定します。つまり、式の中でキー番号を使用するときに、キー番号（nn）を'nn'KEYとして指定します。式の中に「'2'KEY」という記述があり、そのあとで、メインファイルの［キー］テーブルのそのキーの前に新しいキーを追加したとします。すると、もとのキーが#2から#3に変わり、式中の'2'KEYは'3'KEYに自動的に変更されます。


タスクタイプ
タスクタイプ：Ｏ＝オンライン（デフォルト値）

対話処理を意味する「Ｏ＝オンライン」（デフォルト値）か、バッチ処理を意味する「Ｂ＝バッチ」のどちらかを指定します。

オンラインタスクとバッチタスクの相違点についての詳細は、第５章「dbMAGICアプリケーションエンジン」を参照してください。


行数制限式：

行数制限機能を使用して、オンラインのSQLタスクの処理速度を向上させることができます。行数制限式は、［タスク特性］ダイアログで指定され、これにより、カーソルオープンの処理時に取り出す行の数が制限されます。

通常、dbMAGICではカーソルが指定するレコードを読み込み、最後のレコードに達するまでレコードをスクロールします。さらにスクロールすると、ふたたび読み込み処理となり、時間がかかります。行数制限機能を使用すれば、大きなテーブルでの処理速度を向上させることができます。初期画面への読み込みを促進したり、スクロールが必要な時に制限を指定します。行数制限式は、SQLメインファイルがあるオンラインタスクでだけ使用でき、実行時にだけチェックされます。


初期モード
初期モード：Ｍ＝修正（デフォルト値）

この欄は、タスクの実行を開始する時の処理モードを定義します。設定できる値は、「Ｍ＝修正」、「Ｃ＝登録」、「Ｄ＝削除」、「Ｑ＝照会」、「Ｐ＝親と同じ」、「Ｌ＝位置付」、「Ｒ＝範囲」、「Ｋ＝キー」、「Ｓ＝ソート」、「Ｆ＝入出力ファイル」、「Ｏ＝オプション」、「Ｅ＝式」です。

以下に説明する［タスク環境］ダイアログの各欄を「Yes」に設定すると、エンドユーザは、実行時に［オプション］メニューを使用して初期モード以外の処理モードに変更できます。

また、後述の［初期モード］の［式］欄を使用すると、［初期モード］を動的に指定できます。

以下の表に、処理モードを示します。

モード記号	処理モード名	機能
Ｍ	修正	既存レコードのデータを変更します。バッチでは、読み込まれたレコードは修正がなくてもデータベースにふたたび書き込まれます。
Ｃ	登録	新しいレコードを作成します。
Ｄ	削除	バッチタスクの場合にだけ、データビューのレコードを削除します。
Ｑ	照会	既存レコードのデータを照会します。エンドユーザは、データを入力したり編集したりできません。［バッチ］では、［DBファイル］テーブルの設定とは関係なく、読み取り専用モードでファイルをオープンして、読み取り処理だけを実行します。
Ｐ	親と同じ	実行時にその親と同じモードにします。実行時に「親と同じ」モードのタスクが別のプログラムから呼び出されず、メニューから呼ばれた場合には、そのタスクモードのデフォルトは照会モードになります。
Ｌ	位置付	値または式で指定された特定のレコードを検索します。
Ｒ	範囲	どのレコードがタスクに関係するのかを、「～から～まで」を表す値または式で指定します。
Ｋ	キー	メインファイルのキーを変更し、新しいキーに従ってレコードにアクセスして表示します。
Ｓ	ソート	［キー］テーブルで準備される［キー］では目的に合わない場合に、一時的にソートキーを設定して使用できます。タスクがクローズするまでは、ソートキーは［キーテーブル］に追加されていて、通常のキーと同じように使用できます。タスクがクローズすると、ソートキーは消失します。
Ｆ	入出力ファイル	［データ入力］［データ出力］コマンドで指定されている入出力ファイルを、一時的にほかの入出力ファイルに変更します。たとえば、ディスクファイル、コンソール、プリンタなどにリダイレクトできます。通常はバッチタスクで使用します。
Ｏ	オプション	実行確認のダイアログボックスが表示されます。エンドユーザは、オプションメニューをプルダウンして別の処理モードを選択してから実行を開始できます。通常はバッチタスクで使用されますが、オンラインタスクでも使用できます。
Ｅ	式	［初期モード（式）］欄（下記を参照）の式を指定します。この式は、実行時に動的に評価されて、初期モードが決まります。


初期モード（式）
初期モード（式）：０（デフォルト）

［初期モード］欄で「Ｅ＝式」を選択すると、カーソルがこの欄に移動して、式番号を指定できます。この式は、実行時に評価されて初期モードが決まります。

注意：

[1]　式の評価結果はＭ、Ｃ、Ｄ、Ｑ、Ｐ、Ｌ、Ｒ、Ｋ、Ｓ、Ｆ、Ｏ、つまり、処理モードを表す記号でなければなりません。

たとえば、

IF(A='QUERY','Q'MODE,'M'MODE)

は、項目Ａの値が'QUERY'のときにこのタスクをＱ（照会）モードで実行します。それ以外はＭ（修正）モードで実行します。

[2]　初期モードは、タスクの実行が始まるとすぐに評価されます。現在のタスクの項目は、［初期モード（式）］の評価中にはまだ使用できません。そのため、式の中で項目を使用するには、その項が親タスクの項目である必要があります。初期モードの動的な定義に使用する式について、実行時に有効な値が返されなかった場合には、問題があることを示すメッセージが表示され、タスクを終了するための確認を求めるプロンプトが表示されます。

[3]　上記の例のように［初期モード（式）］でMODEリテラルを使用すると、dbMAGICは指定された文字列が処理モードとして有効な文字であるかどうかを調べます。この文字列に有効な処理モードでない文字があると、自動的に消去されます。


選択テーブル
選択テーブル：No（デフォルト値）

この欄はオンラインタスクにだけ関係します。「Yes」に設定すると、このタスクは「選択テーブル」として動作します。このようなタスクは、タスクの終了時に、テーブルから特定の値を選択する（「リスト拾い出し」）目的で使用されます。選択テーブルについての詳細は、「19.2 選択テーブルと選択プログラム」を参照してください。


タスク常駐
タスク常駐：No（デフォルト値）

［タスク常駐］欄を「Yes」に設定すると、呼び出されたタスクは、その呼び出し元タスクがロードされたときにメモリにロードされ、呼び出し側タスクが終了するまでメモリに残ります。親タスクから繰り返し呼び出しができるように子タスクをメモリ内に保持しておけば、処理速度が向上します。ただし、メモリを余分に消費するため、メモリ資源が限られているシステムでは慎重に使用してください。


アイコンファイル名
アイコンファイル名：

この欄は、ルートタスクにだけ表示されます。この欄には、MS-WindowsなどのGUIのオペレーティングシステムでプログラムが最小化されたときに使用されるアイコンファイル名を指定できます。


タスクサイズ：

読み込み専用の項目です。エンドユーザは修正できません。この項目には、タスクサイズが表示されます。表示されるタスクサイズは、最適なCTLレコード長を選択するときに役立ちます。


タスク制御ダイアログ

［タスク制御］ダイアログで設定するパラメータは、タスクの実行時の動作を制御するために使用されます。

ほとんどのタスク制御ダイアログの設定欄には、「Yes」または「No」を指定したり、式（論理型）の番号を指定します（［位置付順序］、［範囲順序］、［チェック時期］、［ロック方式］、［レコードロック時］、［レコードアクセス失敗時］、［ページ当りレコード件数］を除きます）。式が「True」と評価された場合は「Yes」の値に、「False」と評価された場合は「No」の値に相当します。

メインウィンドウに関する各設定欄の説明

ウィンドウ表示	範囲順序
ウィンドウ消去	タスク終了
前面表示	チェック時期
ウィンドウ再表示	強制レコード後処理
カーソル項目反転	レコード削除
循環入力	ページ当りレコード件数
更新確認	ロック方式
位置付式	レコードロック時
位置付順序	レコードアクセス失敗時
範囲式


ウィンドウ表示
ウィンドウ表示：Yes（デフォルト値）

この欄は、バッチタスクにだけ関係します。オンラインタスクでは、タスク実行時にはメインウィンドウを常にオープンします。

バッチタスクで「No」を指定すると、dbMAGICはそのメインウィンドウを表示しません。オンラインタスクで「No」を指定すると、dbMAGICはそのタスクを実行できず、“タスクの画面がオープンできません。”というエラーメッセージを表示します。


ウィンドウ消去
ウィンドウ消去：Yes（デフォルト値）

「Yes」を指定すると、dbMAGICは、タスクが終了したときにそのタスクのメインウィンドウをクローズ（消去）します。「No」を指定すると、タスクが終了したときにメインウィンドウを表示したまま終了します。最終的には、そのアプリケーションを終了すると、オープンしているウィンドウもすべてクローズします。

以下の表に、［ウィンドウ表示］と［ウィンドウ消去］の設定の組み合せを示します。

ウィンドウ表示	ウィンドウ消去	関連タスク
Yes	Yes	オンラインタスクとバッチタスク
Yes	No	オンラインタスクとバッチタスク
No	No	バッチタスクだけ
No	Yes	バッチタスクだけ－「No」「No」と同じ意味


前面表示
前面表示：Yes（デフォルト値）

通常、タスクは実行時にそのウィンドウをトップウィンドウとしてオープンします。つまり、そのウィンドウは完全な状態で表示され、オープンしているそのほかのウィンドウの前面に表示されます。しかし、dbMAGICでは、タスクのウィンドウをその他のタスクのウィンドウのうしろに背景ウィンドウとしてオープンできます。たとえば、メインウィンドウをdbMAGICのワークスペースの背景ウィンドウとしてオープンするには、「No」を選択します。また、この方法で時間、日付などを背景情報として表示できます。通常、［前面表示］欄を「No」に設定した場合は、［ウィンドウ消去］欄も「No」に設定します。エンドユーザが特定のキーボード入力をしたとき、また定期的にこの背景ウィンドウを再表示するときには、イベントテーブルを使用して、プログラムを特定のキーボード入力（ホットキー）または経過時間によって実行させるようにします。詳細については、「13.5 例」を参照してください。


ウィンドウ再表示
ウィンドウ再表示：No（デフォルト値）

レコード後処理が実行されたあとにメインウィンドウをリフレッシュするかどうかを、レコードごとに指定します（「5.2 エンジンについての基本事項」を参照）。

dbMAGICは１度に１つのレコードを処理します。ラインモードの複数行表示の場合、現在強調表示されている行だけが再表示され、データビューのレコードの正確な値を表示します。データビューのそのほかの行は、強調表示させるとただちに再表示されます。そのため、強調表示されていない行の、データビューレコードに記憶されている最新の値は、画面表示には反映されません。

また、［リンク］コマンドのために、現在のデータビューのレコードが同じデータビューの別のレコードに関連する項目を含んでいることがあります。この場合、同じ画面の中で、ラインモードのほかの行や親タスクのウィンドウに、別のデータビューのレコードが表示されることもあります。このような項目を変更すると、変更した内容は現在強調表示されているデータビューレコードにだけ表示されます。［ウィンドウ再表示］を「Yes」に設定するか、または式を設定して、この変更内容を現在表示されているすべてのデータビューレコードにただちに反映させることができますが、このような再表示を行うとタスクの実行速度が低下するため、できるだけ式を使用して、必要な場合のみ実行させるようにしてください。


カーソル項目反転
カーソル項目反転：No（デフォルト値）

このパラメータは、将来のDOS対応用に予約されたもので、Windowsでは意味がありません。


循環入力
循環入力：Yes（デフォルト値）

この欄を「Yes」に指定すると、エンドユーザが現在のレコードの最後の項目を処理し終わったときに、カーソルがそのレコードの最初の項目に戻ります。この項目ループ処理は、エンドユーザがそのレコードを終了して別のレコードに移るか、タスクを終了するまで継続します。

「No」に指定すると、カーソルはレコードの最後の項目からデータビューの次のレコードの最初の項目に自動的に移動します。

この欄は、オンラインタスクにだけ関連します。


更新確認
更新確認：No（デフォルト値）

「No」を選択すると、dbMAGICは「削除」処理の前にだけ確認ダイアログを表示します。「Yes」を選択すると、dbMAGICは「登録」と「修正」の処理の場合にも確認ダイアログを表示します。また、評価値が論理型となる式も設定できます。たとえば、式STAT(0,'C'MODE) 設定すると、「登録」処理の場合にだけ、確認ダイアログが表示されます。


位置付式
位置付式：0（デフォルト値）

位置付式は、タスクが実行を開始するときに、データビューを特定のレコードに位置付けるために使用します。タスクが始まると、dbMAGICは、レコードの位置付式が「True」と評価されるまでデータビューを先頭から走査します。次に、そのレコードが取り出され、カーソルが位置付けられます。このあと、エンドユーザは、矢印キーを使用してデータビューのレコード間を後方でも前方でも自由に移動できるようになります。

注意：

■	［位置付式］欄は、オンラインタスクにだけ関係します。

■	［位置付式］欄は、位置付条件が複雑な記述の場合にだけ使用します。それ以外の場合には、より実行速度の速い［ビュー］コマンドの［位置付］欄を使用します。

■	［ビュー］コマンドの［位置付］欄と［タスク制御］ダイアログの［位置付式］欄の設定は、タスクの初期化時にすべて評価されます。そのため、その欄には上位タスクの項目のパラメータしか入りません。

■	上記の［位置付］欄または［位置付式］欄が設定されていない場合、カーソルは取り出された最初のデータビューレコードに位置付けられます。

■	オンラインタスクの実行を開始したときに、指定されたレコードが発見できないと、警告メッセージが表示され、カーソルはデータビューの最初のレコード、または指定されたレコードの次のレコードがあればそのレコードに位置付けられます。


位置付順序
位置付順序：Ａ＝昇順（デフォルト値）

この欄は、データビューのレコードを位置付けるときの検索方向が「A＝昇順」（最初のレコードから最後に向かう）か、「Ｄ＝降順」（最後のレコードから最初に向かう）かを決めます。条件を満たすレコードが複数ある場合に、最後のレコードが必要なときは、降順を指定します。たとえば、データビューが日付順の場合は、［位置付順序］を降順にしてその日付を持つ最後のレコードに位置付けできます。

注意： ［位置付順序］欄は、［位置付式］欄または［ビュー］コマンドの［位置付］欄が設定されていなくても使用できます。このような場合、降順を指定するとカーソルは最後のデータビューのレコードに位置付けられます。


範囲式
範囲式：0（デフォルト値）

レコードは、最初に、タスクの［ビュー］コマンドで指定された［範囲下限／上限］式に基づいてデータビューに取り込まれます。［範囲式］を使うと、より複雑で動的な条件に基づいて範囲を指定できます。

■	［範囲式］欄に設定している式が評価されて「True」になると、そのレコードはデータビューに取り込まれます。

■	［範囲式］欄に設定している式が評価されて「False」になると、そのレコードは処理されません。

■	［範囲式］欄に式の指定がないと（つまり、この欄が０の場合）、常に「True」と判断されます。

■	［範囲式］欄は、以下のような場合に使用します。

[1]　範囲が、タスクの初期化に使用できないビュー項目の値に基づく場合

[2]　範囲が、［ビュー］コマンドの下限式と上限式では設定できない場合


範囲順序
範囲順序：Ａ＝昇順（デフォルト値）

［範囲順序］欄に従って、データビューに取り込まれるレコードの順序が「A＝昇順」（最初のレコードから最後に向かう）か、「D＝降順」（最後のレコードから最初に向かう）かが決まります。

注意： ［範囲順序］が降順の場合は、データファイルのレコードの順序は逆順になり、処理もすべて逆順になります。つまり、「最初」が「最後」になり、「次のレコード」が「前のレコード」になります。


タスク終了
タスク終了：No（デフォルト値）

この欄を「No」に指定すると、以下のようになります。

■	オンラインタスクの場合は、エンドユーザが｛ESC｝を押したときに終了します。

■	バッチタスクの場合は、データビューの全レコードが処理されたとき、またはエンドユーザが｛Esc｝を押してタスクの処理を中止したとき（ただし、タスクがアボート可能に設定されている場合）に終了します。

この欄を「Yes」に指定すると、下記の［チェック時期］欄の設定に従って、レコードレベルを実行する前か、１件のレコードを処理したあとでタスクが終了します。

注意：バッチタスクでは、以下のような場合の無限ループを避けるために［タスク終了］欄を使用します。

[1]	バッチタスクでループを実行するために、スクラッチファイル（メインファイル＝０）を指定した場合。ループについての詳細は、「19.3 制限されたループを実現する方法」を参照してください。

[2]	登録モードのバッチタスクで入力ファイル（テキストファイル）を読み取る場合。この場合には、「ファイルの終わり（EOF）」が検出されると「True」となる式を［タスク終了］欄に指定します。

タスク前処理とタスク後処理は、［タスク終了］欄の設定に関係なく、必ず実行されます。


チェック時期
チェック時期：Ｂ＝前置（デフォルト値）

dbMAGICが［タスク終了］欄を評価するタイミングを設定します。

Ｂ＝前置 … タスク終了条件は、取り出されたばかりの新しいレコードのレコードレベル（前処理／メイン／後処理）を実行する前に評価されます。

Ａ＝後置 … タスク終了条件は、レコードレベルの実行後、新しいレコードを取り出す前に評価されます。この場合には、最新の処理レコードからの項目を［タスク終了］欄の式の記述の中で使用できます。

Ｉ＝即時 … タスク終了条件は、レコードレベルの処理テーブルに登録されている各処理コマンドを実行する前に逐次評価されます。

タスク終了条件でのタスクの終了

■［チェック時期］欄が「Ｉ＝即時」に設定されていると、処理コマンドを実行するたびにタスク終了条件が検査されます。「True」の場合、dbMAGICは内部終了状態を設定します。内部終了状態は、オンラインのレコードメインのレベルでだけ検査され、このレベルをただちに終了させます。

オンラインタスクのレコードメインのレベルで終了状態が設定されると、タスクはただちに終了します。

オンラインタスクのレコードメイン以外のレベル、またはバッチタスクのすべてのレベルでは、終了状態を設定してもタスクは終了しません。タスクは、［チェック時期］欄が「Ｂ＝前置」または「Ａ＝後置」のどちらかで［タスク終了］欄が「True」になると終了します。

■［タスク終了］欄が「True」になるとdbMAGICは、以下の処理を実行してタスクを終了します。

1.	オンラインタスクの場合、レコードが修正されていればレコード後処理を実行します。

2.	バッチタスクの場合、ブレイクレベルが設定されていればそれを実行します。

3.	タスク後処理を実行します。

4.	タスクを終了します。

「タスク終了」と「チェック時期」の設定例

■	１レコードだけを終了するには、［タスク終了］欄を「Yes」、［チェック時期］欄を「Ａ＝後置」に設定します。

■	レコードを処理しないで終了する場合は、［タスク終了］欄を「Yes」、［チェック時期］欄を「Ｂ＝前置」に設定します。

■	15件のレコードを処理する場合は、［タスク終了］欄に式'COUNTER()=15'を指定して、［チェック時期］欄を「Ａ＝後置」に設定します。


強制レコード後処理
強制レコード後処理：No（デフォルト値）

［強制レコード後処理］欄は、オンラインタスクにだけ関係します。この欄を「No」にすると、dbMAGICは、現在のデータビューに修正があったとき、つまり、タスクのビュー項目のどれかが修正されたときにレコード後処理レベルを実行します。

［強制レコード後処理］欄を「Yes」にするか、またはレコードメイン実行の終わりに評価されて「True」となる式を指定すると、dbMAGICは、レコードに修正がなくてもレコード後処理を強制的に実行します。


レコード削除
レコード削除：No

［レコード削除］欄を使用して、タスクのデータビューから特定の条件を満たすレコードを削除できます。

この欄に設定した式は、dbMAGICがレコード後処理を始める前に評価されます。「True」になると、以下で説明するように、レコードはエンドユーザが［編集／行削除］（｛F3｝）を選択した時と同じ機構によって削除されます。

削除機構

レコードが修正された場合、またはバッチタスクで処理した場合に、まずレコード後処理が修正モードで１回実行されます。これは、ここで定義されたすべての更新処理を実行して、データの整合性を保つためです。次に、２回目の［レコード後処理］が削除モードで実行されます。これは、１対多関係での連鎖レコードの削除、または加算モードを使用した項目更新処理（「8.17 項目更新」を参照）などのあらゆる削除関連処理を実行するためです。レコードが修正されていない場合は、［レコード後処理］は削除モードで一回だけ実行されます。

［レコード削除］欄を使用する場合、特定のレコードではレコード後処理が２回実行されないようにするには、これらの処理コマンドの［条件］欄に指定する式にSTAT関数を使用します。

STAT(0,'D'MODE)


ページ当りレコード件数
ページ当りレコード件数：０（デフォルト値）

［ページ当りレコード件数］欄は、バッチタスクにだけ関係します。この欄は、定型フォームでレポートを印刷するときに使用します。定型フォームでは、ヘッダとフッタは定位値にあり、各ページの行数は決まっています。また、各ページに出力されるレコード件数も決まっていて、最後のページの途中でレコードが終了すると、残りの明細行は空白行になります。詳細については、「19.5 定型フォームで印刷する方法」と「8.18 データ出力」を参照してください。


ロック方式

ロック方式：Ｏ＝入力時（オンラインのデフォルト値）

Ｉ＝即時（バッチのデフォルト値）

［ロック方式］欄は、現在のタスクが処理しているレコードにほかのユーザがアクセスするのを防ぐために、dbMAGICがロックを行うタイミングやそのほかの状況を定義します。また、メモリ内の情報に検証の制御を行う必要があるかどうかを定義します。

dbMAGICは、以下の手順に従ってレコードをロックします。

1.	dbMAGICは、レコードをロックして、ふたたび読み込みます。つまり、論理レコード（メインファイルとリンクしたすべてのレコード）をもう一度ファイルから読み込んでロックします。この段階でほかのユーザがレコードをロックしている場合、dbMAGICはそれを伝えるメッセージを表示します。

2.	検証段階。dbMAGICがレコードの処理を始めたときに読み込んだもとのレコードと新しいレコードの内容とを比較します（これは、特にオンラインでは、レコードが実際に読み込まれてからロックされるまでの間に、ある程度時間が経過していることがあるためです）。２つのレコードが一致しない場合は、最初の読み込みのあとに他のユーザがレコードを修正したことになります。その場合、dbMAGICはメッセージを表示して、ロックを解除します。２つのレコードが一致する場合、ロックは維持されて検証処理は終了します。dbMAGICは、更新したレコードをディスクに書き込んでからロックを解除します。

検証段階は、dbMAGICで使用できるロック方式の一部にだけ実行されます。

以下に、［ロック方式］欄に設定できる値を示します。

Ｉ＝即時 … レコードを読み込むとすぐにロックします。検証は必要ありません。レコードは、解除されるまでロックされています。バッチタスクのデフォルトです。オンラインでは、ユーザがレコードを処理する時間が予想できないため、レコードをロックする時間が長すぎることがあります。

Ｏ＝入力時 … ユーザがレコードを更新するとすぐにレコードをロックします。オンラインタスクのデフォルトです。オンラインでのレコードの更新は、ユーザが入力項目に最初の文字を入力したり、ルックアップ一覧から最初の値を選択したりすることを意味します。バッチではユーザとの対話処理がないため、レコード後処理で最初に項目更新処理が実行されるときか、または最初にタスクかプログラムが呼び出されるとき（呼び出しの結果ロックになる）にロックされます。（「8.11 コール」を参照）。このロック方式では検証が必要です。

Ａ＝入力後 … このオプションは、バージョン4.xxと5.xxとの互換性を保つために用意されています。「入力後」は、ロックのタイミング以外は、「入力時」と同じです。「入力後」では、ユーザが項目全体に記入し、異なる項目に移動したあとにロックされます。

Ｂ＝更新時 … データベースへ実際に書き出す直前にレコードをロックします。つまり、対話処理段階（オンライン）またはレコード後処理（オンラインとバッチ）時にはレコードはロックされません。ロックの検証段階が失敗すると（つまり、読み込んだあとにレコードが別のユーザによって更新されたとき）、更新されず、それを伝えるメッセージが表示されます。

注意： 現在のタスクに呼び出された子タスクがほかのファイルへの更新情報を持つため、現在のタスクをディスクに更新しないとデータの不整合が生じることがあります。データの整合性に問題が発生しないように、「更新時」の使用には注意してください。「更新時」は、もとになるデータベースのロック処理が大きな負担となり、タスクの構造によって、検証が失敗してもデータが不整合にならないことがわかっているような場合に使用してください。

Ｎ＝なし … レコードはロックされません。「Ｎ＝なし」を使用する場合には、細心の注意を払ってください。この場合、dbMAGICは他のワークステーションからアクセスされ、更新されたレコードを更新し、データの一貫性が失われる可能性があります。


レコードロック時
レコードロック時：Ｒ＝リトライ（デフォルト値）

バッチタスクにだけ適用されるため、ダイアログに表示されるのはタスクモードが「バッチ」の時だけです。［レコードアクセス失敗時］欄と共に、エラー回復の制御に使用します。

［レコードロック時］欄には、バッチ処理時にロックされたレコードがある場合にdbMAGICが取る動作を定義します。以下のオプションを指定します。

Ｒ＝リトライ … デフォルト。dbMAGICは、ロックしたユーザがレコードのロックを解除するまで取り出しをリトライします。問題が解決すると処理が継続されるため、デフォルトになっています。ユーザは、リトライ時にタスクをアボートできます（可能な場合）。

Ａ＝アボート … タスクをアボートします。

Ｓ＝スキップ … ロックされたレコードをスキップして、次に使用できるレコードから処理を継続します。「スキップ」を使用するには、未処理のレコードをあとの処理で取り出せるように処理ずみのレコードをマーク付けしておいてください。


レコードアクセス失敗時
レコードアクセス失敗時：Ａ＝アボート（デフォルト値）

バッチタスクにだけ適用されるため、ダイアログに表示されるのはタスクモードが「バッチ」の時だけです。［レコードロック時］欄と共に、エラー回復の制御に使用します。

［レコードアクセス失敗時］欄には、バッチ処理時にレコード処理に問題がある場合にdbMAGICが取る動作を定義します。エラーには、読み込みの失敗、書き出しの失敗、重複したキー値の更新などがあります。以下のオプションを設定します。

Ｒ＝リトライ … 処理が成功するか、あらかじめ定義された内部タイムアウトに達するか、またはユーザが手動でアボートするまでリトライします。

Ａ＝アボート … ほとんどのレコードアクセス失敗は回復できないため、これがデフォルト設定です。エラーが発生すると、dbMAGICはタスクをアボートします。

Ｓ＝スキップ … 失敗したレコードをスキップして、次に使用できるレコードから処理を継続します。「スキップ」を使用するには、未処理のレコードをあとの処理で取り出せるように処理ずみのレコードをマーク付けしておいてください。


タスクツリーエディタ

ルートノードは、［プログラム辞書］テーブルでプログラムを作成すると自動的に作成されます。ノードがタスクツリーに表示されると、そこからズームしてタスク構成要素を設定するためのウィンドウが表示できます。これらのウィンドウについての詳細は、「7.2　プログラム辞書テーブル」を参照してください。

タスクツリーのノード（タスク）を新規作成、移動、削除するには、タスクツリーエディタを使用します。タスクツリーエディタの機能は［ツリー］メニューでアクセスします。目的のノード（タスク）にカーソルを合わせてズームすると、そのタスクの設定画面が表示されるので、タスクをさまざまに設定できます（第７章「プログラム辞書」を参照）。

タスクツリーエディタを使用する方法

タスクツリーエディタを起動するには、以下の手順に従ってください。

[1]	メニューで［開発／プログラム辞書］を選択して、プログラム辞書テーブルにアクセスします。

[2]	すでにプログラム辞書テーブルに登録されているプログラムに目的のプログラムがある場合は、そこにカーソルを合わせます。目的のプログラムがない場合には、新規に１行作成し、そこにカーソルを合わせます。

[3]	［ズーム］するとタスクツリーが表示されます。

ノード（タスク）の選択

［ツリー］メニューから使用できるタスクツリーエディタの機能を実行するには、宛先（複写先あるいは移動先）となるノード（タスク）を指定しておく必要があります。操作の対象となるのは、強調表示されているノードです。

以下のようにして、ノードを選択します。

マウス	目的のタスクを示すノードでクリックします。
キーボード	以下の矢印キーを使用して、カーソルを目的のノードに移動します。
	｛↑｝、親タスクの方向に１レベル上に移動
	｛↓｝、子タスクの方向に１レベル下に移動
	｛Shift｝＋｛Tab｝、同一レベル内のノードを左に移動
	｛Tab｝、同一レベル内のノードを右に移動
	｛Ctrl｝＋｛Home｝、ルートノードまで移動
サブツリーの選択

［ツリー］メニューから使用できる機能のうち、［サブツリー複写］、［サブツリー移動］、［サブツリー上書］を実行するには、まず、複写元または移動元のサブツリーを［サブツリー選択／解除］で選択し、次に宛先となるタスクを指定します。サブツリーを選択すると、そのサブツリーに属するすべてのノードの枠が強調表示されます。

サブツリーを選択するには、以下の手順に従ってください。

[1]	サブツリーの一番上のノードにカーソルを合わせます。

[2]	［ツリー／サブツリー選択／解除］を選択します。

すでにサブツリーが選択されている場合に［サブツリー選択／解除］を実行するには、以下の点に注意してください。

■	選択されているサブツリーの先頭ノードにカーソルを合わせた状態で［サブツリー選択／解除］を実行すると、選択が解除されます。

■	選択されているサブツリーの先頭ノード以外のノードにカーソルを合わせた状態で［サブツリー選択／解除］を実行すると、以前の選択は解除され、カーソルで指定するサブツリーが選択されます。

サブツリーの複写

［サブツリー複写］を実行すると、宛先として指定したノード（タスク）の右側（兄弟の位置）に、選択したサブツリーが挿入されます。ただし、ルートノードを宛先としては指定できません。

サブツリーを複写するには、以下の手順に従ってください。

[1]	複写元となるサブツリーを選択します。

[2]	宛先となるノードをカーソルで指定します。

[3]	［ツリー／サブツリー複写］を選択します。

注意： タスクツリーを修正した場合には、修正後のタスクを参照するサブタスクに対しても整合性が保たれるように自動的に処理されます。

サブツリーの移動

［サブツリー移動］を実行すると、宛先として指定したノード（タスク）の右側（つまり兄弟関係の位置）に、選択したサブツリーが移動します。ただし、ルートノードは移動できません。

サブツリーを移動するには、以下の手順に従ってください。

[1]	移動元となるサブツリーを選択します。

[2]	宛先となるノードをカーソルで指定します。

[3]	［ツリー／サブツリー移動］を選択します。

注意： タスクツリーを修正した場合には、修正後のタスクを参照するサブタスクに対しても整合性が保たれるように自動的に処理されます。

サブツリーの上書

［サブツリー上書］を実行すると、宛先として指定したノード（タスク）の位置に、選択したサブツリーが上書きされます。

サブツリーを上書きするには、以下の手順に従ってください。

[1]	上書き元となるノード（またはサブツリー）を選択します。

[2]	宛先となるノードをカーソルで指定します。

[3]	［ツリー／サブツリー上書］を選択します。

[4]	確認ダイアログで上書きの実行を確認します。

［サブツリー上書］を使用すると、サブツリーを独立したプログラムにすることができます。まず、目的のサブツリーを選択し、次にルートノードを宛先に指定して［サブツリー上書］を実行します。

注意： タスクツリーを修正した場合には、修正後のタスクを参照するサブタスクに対しても整合性が保たれるように自動的に処理されます。

親タスクの作成

［親タスク作成］を実行すると、カーソルで指定したノードの上に新しい親タスクが挿入されます。その結果、指定したノード以降の階層レベルが１つ深くなります。

親タスクを作成するには、以下の手順に従ってください。

[1]	カーソルを目的のノードに合わせます。

[2]	［ツリー／親タスク作成］を選択します。

［親タスク作成］を使用すると、プログラムをサブツリーに変えることもできます。これを実行するには、以下の手順に従ってください。

[1]	カーソルをルートノードに合わせます。

[2]	［ツリー／親タスク作成］を選択します。

［親タスク作成］では、［サブツリー複写］の場合とは異なり、あらかじめサブツリーを選択しておく必要はありません。

注意： タスクツリーを修正した場合には、修正後のタスクを参照するサブタスクに対しても整合性が保たれるように自動的に処理されます。

子タスクの作成

［子タスク作成］を実行すると、カーソルで指定したノードの下に新しい子タスクが追加されます。すでに子タスクが存在する場合には、その右側（兄弟関係の位置）に新しい子タスクが追加されます。［子タスク作成］の場合は、［サブツリー複写］場合とは異なり、サブツリーを選択しておく必要はありません。

子タスクを作成するには、以下の手順に従ってください。

[1]	カーソルを目的のノードに合わせます。

[2]	［ツリー／子タスク作成］を選択します。

注意： タスクツリーを修正した場合には、修正後のタスクを参照するサブタスクに対しても整合性が保たれるように自動的に処理されます。

サブツリーの削除

［サブツリー削除］を実行すると、カーソルで指定したノード以降のサブツリーが削除されます。［サブツリー削除］の場合は、［サブツリー複写］の場合とは異なり、サブツリーを選択しておく必要はありません。

注意： カーソルをルートノードに合わせて［サブツリー削除］を実行した場合には、ルートノードだけが削除されずに残ります。ただし、ルートタスクの設定内容はすべてなくなり、タスク名（プログラム名）だけが残ります。つまり、中身のないプログラムとしてプログラム辞書テーブルに残ります。

サブツリーを削除するには、以下の手順に従ってください。

[1]	カーソルをサブツリーの一番上のノードに合わせます。

[2]	［ツリー／サブツリー削除］を選択します。

[3]	確認ダイアログで削除の実行を確認します。

注意： タスクツリーを修正した場合には、修正後のタスクを参照するサブタスクに対しても整合性が保たれるように自動的に処理されます。

ノードサイズの変更

［ツリー］メニューの［ノードサイズ拡大］［ノードサイズ縮小］を使用すれば、ノードの表示幅を変更できます。ただし、表示幅はすべてのノードに共通なので、各ノードを個別に変更することはできません。

ノードの表示値を拡大または縮小するには、以下の手順に従ってください。

■ノードサイズ拡大  … 選択するたびにノードの幅が最高幅になるまで増大します。最高幅になると、この機能は停止します。

■ノードサイズ縮小 … 選択するたびにノードの幅が最低幅（１文字）になるまで減少します。最低幅になると、この機能は停止します。

上位タスクに関する参照情報の消失

同系列の上位タスク

同系列の上位タスクとは、自分自身のタスクから上位レベルに向かってたどっているタスクのことです。

dbMAGICには継承機構が備わっていて、同系列の上位タスクでの設定情報（ビュー項目など）を下位タスクから参照して使用できます。この場合は、参照する側のタスクと参照される側のタスクが「同系列」に存在しなければなりません。［ツリー］メニューから［サブツリー複写］、［サブツリー移動］、［サブツリー上書］を実行すると、参照情報がなくなってしまうことがあります。

参照情報

以下に、タスクツリーを編集することで、失う可能性のある参照情報を示します。

■ビュー項目 … フォームや式、［項目更新］コマンド、［リンク］コマンドの［戻］欄に項目（復帰コード項目）を設定する時、［コールタスク］［コールプログラム］コマンドでパラメータを設定するなどに参照されます。

■入出力ファイル … ［データ入力］［データ出力］コマンド設定に参照されます。

■フォーム … ［データ入力］［データ出力］コマンド、［コールタスク］［コールプログラム］コマンド、［エディット］コマンドの設定時に参照されます。

参照情報消失の対策

参照情報の消失を防ぐには、編集終了後、タスクツリーで編集したサブツリーの文法チェックを行い、消失した参照情報があれば修復か除去してください。文法チェックについての詳細は、「17.5 文法チェックユーティリティ」を参照してください。


処理テーブル

dbMAGICのタスクの中心は、タスク定義ウィンドウです。タスクに必要な処理レベル（タスク前処理、レコードメインなど）ごとに処理テーブルがあります。各処理テーブルで、処理コマンドを設定します。処理テーブルに処理コマンドを設定する場合は、［コマンド一覧］をズームして選択できます。処理コマンドは13種類です。各処理コマンドの固有の設定欄に値を設定して、処理コマンドの動作を目的に合わせて変更します。設定欄では、多くの場合に式を使用して、設定に柔軟性を持たせます。式の作成には、dbMAGICのライブラリに含まれる100以上の関数を選択して使用します。処理コマンドと関数を組み合わせてdbMAGICの「言語」が形成されます。

各処理コマンドの詳細については、以下を参照してください。

コメント	コール
ビュー	アクション
エラー	項目更新
リンク	データ出力
リンク終了	データ入力
ブロック	エディット
ブロック終了	OSコマンド

処理テーブルで行を新規作成すると、［コメント］コマンドがデフォルト値として選択されます。［コメント］コマンドは実行されないコマンドで、その行は［注釈行］です。必要に応じて、13種類の処理コマンドのうち、目的のものに置き換えます。

特定の処理レベルに対応する処理テーブルでしか選択できない処理コマンドもあります。［ビュー］、［リンク］、［リンク終了］コマンドを選択する場合は、処理テーブルを確かめてください。使用できない処理レベルで目的の処理コマンドを選択しても転記されません。［ビュー］、［リンク］、［リンク終了］の３つの処理コマンドは、使用できる処理レベルが限定されています。dbMAGICでは、これらの処理コマンドはデータビューを定義するために使用されます。

[1]	３つの処理コマンド（［ビュー］、［リンク］、［リンク終了］）を使用できるのは［レコードメイン］レベルの処理テーブルだけです。

[2]	バッチタスクの場合には、［レコードメイン］レベルで実行できる処理コマンドは、［ビュー］、［リンク］、［リンク終了］だけです。


コメント

目的

■	処理テーブルをより見やすくするために、一連の処理コマンドをグループごとに区切る区切線として処理テーブルに空白行を挿入します。

■	注釈文を書き込んで、注釈行として使用できます。

■	［コメント］コマンドは、実行可能な処理コマンドではありません。

使用方法

注釈行の作成

設定欄

デフォルトでは、行全体にわたって「区切線」が表示されます。

注釈文は、カーソルを右に移動して入力を開始します。


ビュー

目的

タスクのデータビューの構成要素である論理レコードを定義し、タスクで使用する各項目をビュー項目として宣言します。［ビュー］コマンドを使用してビュー項目を宣言することを、項目を「選択する」と表現します。

使用方法

■	データビューの論理レコードを構築するには、メインファイルまたはリンクファイルから［実データ項目］を選択する方法と、［変数項目］を選択する方法があります。変数項目を新規作成すると、処理テーブルですでに選択されている他の変数項目との相対位置に従って、［変数項目］テーブルに自動的に挿入されます。項目のもとの位置に関係なく、いったんレコードメインの処理テーブルで項目を選択すると、タスクで使用できるビュー項目となります。

■	項目の実際の値に従ってタスクのデータビューの範囲を決定させることができます。タスクのデータビューは、タスクで使用される論理レコードの集合です。［ビュー］コマンドの［範囲］欄に適切な式を指定すると、タスクのデータビューの範囲が項目の値に従って決まります。

■	新しいレコードが作成される場合に、デフォルト値を［実データ項目］に割り当てることができます。この場合は、［ビュー］コマンドで代入式を定義します。

■	計算などに必要な作業用の項目を設定できます。この場合は、［変数項目］を選択し、これに［代入式］を設定して初期値を割り当てます。

■	特定のレコードを位置付けることができます。この場合は、項目の［ビュー］コマンドの［位置付］欄に適切な式を指定します。

■	対話処理画面上でのカーソル移動の順序とカーソルがパークする項目（パーク可能項目）を制御できます。この場合は、［レコードメイン］の［処理テーブル］で、［ビュー］コマンドの配置順序と［条件］欄の両方を設定します。

配置

■	レコードメインの処理テーブルでは、タスクのデータビューを定義します。［ビュー］コマンドは、レコードメインの処理テーブルでだけ使用できます。

■	処理テーブルでの［ビュー］コマンドの順序によって、オンラインタスクの実行時に、対話処理画面上で項目から項目へカーソルが移動する順序が決定されます。項目の配置は、対話処理用のメインウィンドウを設計する場合に、実行時にカーソルが移動する順序に影響しません。

■	処理テーブルでの［ビュー］コマンドの位置は、以下で説明するように、［代入式］の再計算プロセスに影響します。

設定欄

ビュー

［ビュー］コマンドの最初の設定欄には、［Ｒ＝実データ］または［Ｖ＝変数］が表示されます。［タスク特性］ダイアログで、データファイルをメインファイルとして指定すると、［Ｒ＝実データ］がデフォルト値となります。

そうでない場合、つまり［スクラッチファイル］を指定する場合は、［Ｖ＝変数］しか選択できないために、カーソルが最初の設定欄には止まらないで、次の設定欄に移動します。

以下に、実データ項目の指定方法を示します。

1.	カーソルを右に２回移動して、「0」に位置付けます。

2.	［項目一覧］にズームして、目的の項目を選択します。項目の番号と名前が転記されて表示されます。リンクファイルから項目を選択するには、［ビュー］コマンドを［リンク］コマンドと［リンク終了］コマンドの間で定義します。

以下に、変数項目の指定方法を示します。

3.	カーソルを「Ｒ＝実データ」に位置付けます。

4.	「V」と直接入力するか、コンボボックスをクリックして「Ｖ＝変数」を選択します。

dbMAGICでは、［変数項目］の［ビュー］コマンドのそれぞれに対して、タスクの［変数項目］テーブルに変数項目が自動的に作成されます。dbMAGICでは、処理テーブルでの［ビュー］コマンドの位置に従って、［変数項目］テーブル内で新しく作成される変数項目に対応する通し番号が、自動的に挿入されます。

5.	カーソルを右の欄に移動して、ズームします。

6.	［変数項目］テーブルで新しい変数項目を定義します（「7.9　変数項目テーブル」を参照）。

［タスク特性］ダイアログでデータファイルをメインファイルとして指定していない場合は、「Ｖ＝変数」がデフォルト値となります。この場合は、変数項目しか選択できません。

7.	カーソルを「Ｖ＝変数」の右の欄に移動して、ズームします。

8.	新しい変数項目を定義します。詳細については、「7.9　変数項目テーブル」を参照してください。

内容

［内容］欄のデフォルト値は「??」です。項目を選択すると、この欄には［項目一覧］か［変数項目］テーブルから項目名が自動的に転記されて表示されます。

代入（オプション）

［代入］欄の値は、式の番号です。この欄で指定される式を［代入式］と呼びます。dbMAGICでは、実行時にこの式が評価され、初期値として割り当てられます。デフォルト値は「0」で、この項目に対して代入式が設定されていないことを示します。

［代入］欄の設定は、表計算のセルへの数式の割り当てに似ています。式で計算される値が項目に割り当てられます。

代入式には、「＝」を入れる必要はありません。たとえば、［受注合計］の項目に「価格＊数量」を代入する必要がある場合は、［受注合計］という変数項目に対して代入式を「価格＊数量」と指定するだけです。

代入についての詳細は、代入式の機能と再計算の項目を参照してください。

範囲（オプション）

［範囲］欄は、タスクのデータビューのレコードの範囲を制限する場合に使用します。

［範囲］欄には、２つの設定欄があります。最初の欄には、タスクのデータビューに含めるレコードの範囲の下限値を与える式を、２つ目の欄には上限値を与える式を指定します。ビュー項目が［実データ項目］［変数項目］のどちらの場合でも、［ビュー］コマンドの［範囲］欄は同様に使用できます。

式の評価結果は、項目の型と一致する値でなければなりません。目的の範囲が、下限値と上限値だけで単純に指定できない場合は、［タスク制御］ダイアログの［範囲式］欄で条件を指定できます（「7.7 タスク制御ダイアログ」を参照）。

［範囲］欄は、タスクの開始時に評価されます。タスク実行開始時に、式に含まれるすべての項目に有効な値を持たせてください。式の記述には、親タスクで選択する項目、タスクにパラメータとして渡される項目、または任意の定数値を使用できます。

エンドユーザは、オンラインタスクの実行時には、［範囲］、［範囲式］欄で指定する範囲外のレコードを照会できません。ただし、［オプション］メニューで［範囲］（｛Ctrl｝＋｛R｝）を選択することで、さらに範囲を狭めることができます。

タスクのデータビューは、すべての［ビュー］コマンドの［範囲］（最小／最大）欄の設定と、［タスク制御］ダイアログの［範囲式］欄の設定、または実行モードでの［オプション］メニューの［範囲］の設定の論理積の結果です。

dbMAGICでは、［範囲］を指定しない場合は全範囲が想定されます。

ワイルドカードを使う範囲指定

文字型のビュー項目の場合は、「＊」（ワイルドカード）を使って範囲を指定できます。

たとえば、住所の範囲に「豊島区＊」と設定すると、「豊島区」で始まるすべてのレコードを照会できます。

１対多のリレーションの実現

dbMAGICでは、子タスクのビュー項目で［範囲］（最小／最大）を指定し、［コールタスク］コマンドでこの子タスクをコールすることで「１対多のリレーション」が実現されます。子タスクで、［範囲］が指定されているビュー項目が、ファイル辞書でキーセグメントとして定義されている実データ項目になっていて、そのキーがメインファイルのキーとしても使用されている場合は、瞬時に「１対多のリレーション」が確立されます。詳細については、「19.1　１対多のリレーション」を参照してください。

範囲の絞り込み処理速度について

［範囲］（最小／最大）が設定されているビュー項目が、ファイル辞書でキーセグメントとして選択されている実データ項目で、このキーがタスクのメインファイルのキーとしても選択されている場合は、［範囲］が瞬時に絞り込まれます。ほかに、［範囲］（最小／最大）が設定されているビュー項目が［変数項目］の場合、またはタスクのメインファイルのキーのキーセグメントではない実データ項目の場合は、メインファイルとリンクファイルに対する逐次検索プロセスを介して、タスクのデータビューが確立されます。この処理は、データファイルが大きい場合には、かなりの時間がかかります。

dbMAGICでは、以下の場合にも、範囲を確立するために逐次検索が行われます。

■	マルチセグメントキーの場合に、このキーの下位レベルのキーセグメントの項目に［範囲］（最小／最大）を指定しているが、上位レベルのキーセグメントの項目に［範囲］（最小／最大）を指定していないとき、または上位レベルのキーセグメントで指定している範囲が広いとき

■	［タスク制御］ダイアログで［範囲式］欄を使用している場合

位置付（オプション）

［位置付］欄には２つの設定欄があります。各欄には、最小値または最大値を与える［式］を指定します。最初に位置付けられるデータビューのレコードは、ここで指定する２つの式の値によって指定される範囲内で見つけられる最初のレコードです。評価された式の値は、項目の型と一致していなければなりません。

最初に位置付けるデータビューのレコードを指定する条件式が複雑な場合は、［タスク制御］ダイアログの［位置付式］欄を使用します（「7.7 タスク制御ダイアログ」を参照）。

位置付の設定は、データビューの範囲には影響しません。

オンラインタスクで位置付けされた後のレコード表示は、［設定／動作環境］テーブルの「カーソルの画面中央位置付」パラメータで設定します。

もし「カーソルの画面中央位置付」パラメータが「Yes」の場合、タスクは、位置付けられたレコードに対応するデータ行がウィンドウの中央部に表示され、カーソルがその行に位置付けられます。カーソルは、このレコードの最初のパーク可能項目に止まります。

もし「カーソル画面中央位置付」パラメータが「No」の場合、タスクは、ウィンドウの先頭のレコードに位置付します。

エンドユーザが、実行モードで［オプション］メニューの［範囲］を使用する場合は、開発段階で設定している範囲以外のレコードを範囲内に取り込むことはできません。それに対して、エンドユーザが実行モードで［オプション］メニューの［位置付］を使用する場合は、開発段階で設定している位置付条件の範囲外のレコードに位置付けることもできます。

最小値／最大値の両方に位置付式を指定したが、位置付条件を満たすレコードがない場合は、処理ポインタが最大値の式の値よりも「高いキー値」を持つ最初のレコードとして位置付けられ、＜該当するレコードがありません...次に位置付けます。＞というメッセージが表示されます。最大値の式の値よりも「高いキー値」を持つレコードがない場合は、ポインタがデータビューの最初のレコードとして位置付けられ、＜該当するレコードがありません...先頭に位置付けます。＞というメッセージが表示されます。

最小値の位置付式を指定したが、位置付条件を満たすレコードがない場合は、処理ポインタが最大の式の値よりも「高いキー値」を持つ最初のレコードとして位置付けられ、メッセージは表示されません。最大値の位置付式を指定したが、位置付条件を満たすレコードがない場合は、その時、処理ポインターは最初のレコードとして位置付けされます。

位置付式がキー項目以外で、この条件を満たすレコードがない場合は、処理ポインターは最初のレコードに位置付けられます。

ワイルドカードを使う位置付指定

文字型のビュー項目の場合は、「＊」（ワイルドカード）を使って位置付を指定できます。

たとえば、住所に「豊島区＊」と設定すると、「豊島区」で始まる最初のレコードに位置付けられます。

フロー

［ビュー］コマンドの［フロー］欄には、［フローモード］欄と［カーソル方向］欄の２つの設定欄があります。各欄に設定する値を「フローモードコード」「カーソル方向コード」と呼びます。［フローモード］欄と［カーソル方向］欄のデフォルト値は、それぞれ「Ｓ＝通常」と「Ｃ＝両方向」です。

この欄の設定が「True」と評価され、［条］欄の設定も「True」と評価される場合に限り、この行で定義されているビュー項目がパーク可能項目として処理されます。

フローモードコード	エンジンが処理コマンドを実行する条件
Ｓ＝通常	現在のタスクが通常モードの場合
Ｆ＝高速	現在のタスクが高速モードの場合
Ｃ＝両用	タスクが通常モードまたは高速モードの場合
Ｂ＝前置	次の項目上にカーソルがある状態でズーム（｛F5｝）した場合
Ａ＝後置	前の項目上にカーソルがある状態でズーム（｛F5））した場合
カーソル方向コード	エンジンが処理コマンドを実行する条件
Ｆ＝前方	カーソルが、レコードメインの処理テーブルに従って順方向に移動
Ｂ＝後方	カーソルが、逆方向に移動
Ｃ＝両方向	カーソルが、順方向または逆方向に移動

［フロー］欄についての詳細は、「5.2 エンジンについての基本事項」を参照してください。

条件

この欄では、この行で定義するビュー項目がパーク可能項目として処理されるかどうかを設定します。この欄の設定の評価が「True」の場合は、パーク可能項目となります。この欄に設定できる値を以下に示します。

■　Yes（デフォルト値） … 常に「True」と評価されるため、パーク可能項目として処理されます。

■　No … 常に「False」と評価されるため、パーク可能項目として処理されません。

■　式番号 … 論理型の値を返す式を指定します。式の評価が「True」の場合は、パーク可能項目として処理されます。「False」の場合は、パーク可能項目として処理されません。式を定義するには、この欄から［式］テーブルをズームします。

注意： この欄の設定は、その行で定義するビュー項目を、パーク可能項目として扱うかどうかを制御するだけのものです。


代入と再計算
代入式の機能と再計算

代入式の機能

代入式では、手続き型と非手続き型の２つの方法に従って値が割り当てられます。手続き型では、「実データ項目」と「変数項目」に異なる規則が適用されます。

■実データ項目 … dbMAGICでは、タスクが登録モードで実行される場合にだけ、代入式が評価され、レコードが画面に表示される前に評価結果の値が実データ項目に割り当てられます。［リンク］コマンドと［リンク終了］コマンドの間にある実データ項目は、リンクが失敗した場合にだけ、代入式で初期化されます。この章の「リンク失敗の代入式への影響」を参照してください。

■変数項目　　 … dbMAGICでは、代入式が評価され、その評価結果の値は、タスクが実行される処理モードに関係なく、レコードが画面に表示される前に変数項目に割り当てられます。

通常、［ビュー］コマンドに代入式が指定されていない変数項目は、［項目更新］コマンドを介して値を受け取ります。このような項目は、レコード処理の開始時にクリアされず、以前の値が保持されます。変数項目を累算用の変数として使用する場合は、この方法を代入式が指定されていない変数項目で使用します。

代入式の自動非手続き型再計算

dbMAGICでは、表計算の場合と同様に、タスクの処理モードに関係なく、レコードメインかレコード後処理の実行中に式の記述で使用しているビュー項目が１つでも変化した場合には、自動的に代入式が再計算されます。以下では、この場合の規則について説明します。

■レコードメイン

代入式を構成するビュー項目のどれかを修正した場合に、代入式を使用するビュー項目よりも前に、修正したビュー項目を定義しているときは、代入式が再計算されます。レコードメインでの再計算は、順方向（処理テーブルの上から下へ向かって）にだけ処理されます。

■レコード後処理

レコード後処理でビュー項目の値が変更されて、ビュー項目を含む代入式が［レコードメイン］の［ビュー］コマンドで設定されている場合は、すべての代入式が再計算されます。再計算の範囲は、変更されたビュー項目の定義位置から処理テーブルの終わりまでです。

代入式の再計算は、dbMAGICのエンジンの非手続き型プロセスの１つです。詳細については、「5.2 エンジンについての基本事項」を参照してください。

以下の説明では、［ビュー］コマンドに代入式が指定されている項目を「代入項目」と呼びます。代入式に使用されるビュー項目で、修正時に代入項目が再計算されるビュー項目を「修正項目」と呼びます。

以下の例について考えてみます。項目Ａの値が「5」で項目Ｂの値が「6」とします。項目Ｃの［ビュー］コマンドに「A＊B」という代入式が指定されている場合に、エンドユーザがこのタスクを登録モードで実行すると、項目Ｃには値「30」が代入されます。しかし、エンドユーザが、次に、項目Ａにカーソルを戻して値を「7」に変更すると、カーソルを項目Ｃに移動しなくても、項目Ｃの代入式は自動的に（非手続き型的に）再計算されて「42」になります。

以下に、修正項目で値が修正される状況を示します。

■	エンドユーザが、対話処理画面で修正項目にデータを入力する場合（上記の例）

■	修正項目に対して［項目更新］コマンドを実行する場合

■	［コール］コマンドで、修正項目を［パラメータ］として使用する場合

■	［データ入力］コマンドで、修正項目にデータを読み込む場合

■	［リンク］コマンドの［戻］欄で、修正項目を「戻りコード項目」として使用する場合

修正項目は、レコードメイン（対話）段階、メインレベルから コールされた子タスク、またはレコード後処理で変更されます。

再計算は、以下の場合に実行されます。

■	修正項目を含む代入式が指定されているビュー項目について

■	登録モードの処理と修正モードの処理の両方で

■	オンラインタスクとバッチタスクの両方で

■	高速モードと通常モードの両方で（「5.2 エンジンについての基本事項」を参照）

再計算は、不要になるまで繰り返されます。これは、再計算された代入項目が、他の代入式の修正項目のこともあるためです。１サイクルの再計算によって他の再計算サイクルが発生することもあるため、すべての代入式の再計算が完了するまで、再計算が続けられます。

以下の２つの条件が両方とも満たされる場合に、代入項目が再計算されます。

1.	代入項目を設定する［ビュー］コマンドが、処理テーブルで、修正項目を設定する［ビュー］コマンドの後ろに配置されている場合

2.	代入項目の代入式に、修正項目が含まれる場合

以下では、２つの例を使用して、上記の条件が再計算に与える影響について説明します。

再計算の例１

dbMAGICでは、タスク初期化手続きの１つとして、「再計算テーブル」が構築されます。このテーブルは、タスクの実行中に必要な非手続き型再計算をすばやく行うために使用されます。

この例では、条件１が満たされていないため、項目Ａは再計算されません。

タスクのレコードメインの処理テーブルには、［ビュー］コマンドが２つと、レコード後処理の処理テーブルには［項目更新］コマンドが２つ含まれると仮定します。

レコードメイン

行１　ビュー：項目Ａ  …  代入式：項目Ｂ

行２　ビュー：項目Ｂ  …  代入式：項目Ａ

レコード後処理

行１　項目更新：項目Ａ

行２　項目更新：項目Ｂ

上の例では、代入式についての再計算情報を構築するために、dbMAGICによって以下の処理がこの順序で行われます。

各ビュー項目について、それを選択している行からテーブルの最後までの範囲でレコードメインの処理テーブルが検索されます。検索は、このビュー項目（修正項目）を含む代入式が指定されている、すべての［ビュー］コマンドについて行われます。この式（代入式）は、すべて［再計算］テーブルに登録されます。

この例では、dbMAGICによって、行２の代入式にビュー項目Ａが含まれていることが発見されます。行２は行１のビュー項目Ａの［ビュー］コマンドの後ろにあるため、［再計算］テーブルに登録されます。行１の代入式は、行２で宣言されるビュー項目Ｂを含むため、［再計算］テーブルには登録されません。つまり、先の条件１は満たされていません。

実行時には、レコードとの対話で項目Ａに値を入力すると、自動的に再計算が実行され、結果が項目Ｂに割り当てられます。しかし、再計算テーブルには項目Ｂを参照する代入式は登録されていないため、項目Ｂの変更が項目Ａには反映されません。

レコードとの対話が終了して実行がレコード後処理に移行すると、項目Ａに対する［項目更新］コマンドによって、項目Ｂの代入式が再計算されます。これは、［再計算］テーブルに、［項目更新］コマンドによって変更される項目Ａを参照する代入式が登録されているためです。項目Ｂに対する［項目更新］コマンドでは、再計算は行われません。

再計算の例２

レコードメインの処理テーブルに、以下の処理コマンドが含まれると仮定します。

行１　ビュー：項目Ａ

行２　ビュー：項目Ｂ	代入：A + C

行３　ビュー：項目Ｃ

行４　ビュー：項目Ｄ	代入： A + C

行５　項目更新：項目Ｃ

タスクを修正モードに、各ビュー項目の値を以下のように仮定します。

A=2

B=5

C=3

D=5

エンドユーザが値「3」を項目Ａ（修正項目）に入力します。この場合、各ビュー項目の値は、以下のようになります。

A=3（エンドユーザの修正）

B=6（dbMAGICの再計算）

C=3（変更なし）

D=6（dbMAGICの再計算）

次に、行５の項目Ｃについて［項目更新］コマンドが実行されます。項目Ｃを値「10」に更新すると、各項目の値は、以下のようになります。

A=3（変更なし）

B=6（変更なし … 再計算なし）

C=10（［項目更新］コマンドの修正）

D=13（dbMAGICの再計算）

この例でも、条件１が満たされないために、項目Ｂは再計算されません。これは、項目Ｂの［ビュー］コマンドが、更新した項目Ｃの［ビュー］コマンドの後ろに位置しないためです。


エラー

目的

■	［エラー］コマンドは、［モード］欄を「Ｅ＝エラー」に設定していて、［条件］欄の式の評価も「True」の場合に、エンドユーザにエラーの訂正を求めるエラーメッセージを表示して実行を停止します。

■	［エラー］コマンドは［モード］欄を「Ｗ＝警告」に設定していて、［条件］欄の式の評価も「True」の場合に、タスクの実行を停止しないで、警告メッセージを表示します。

使用方法

■	エンドユーザのデータ入力が正しいかどうかをチェックします。

■	デバッグ作業 … タスクの処理フローを追跡するために警告メッセージが挿入されます。

設定欄

式

［エラー］コマンドを選択して、カーソルを［処理コマンド］欄の右端、つまり「０」を表示する欄に移動します。

ここから［式］テーブルにズームして、メッセージ文を指定できます。メッセージ文として、テキスト定数、文字列に変換される数値変数項目、文字列変数項目などを連結して使用できるため、内容を自由に組み立てることができます。

内容

［式］欄で式を選択すると、この欄には式の記述の最初の部分が表示されます。カーソルはこの欄には止まりません。

［式］欄がデフォルト値「０」の場合は、この欄に直接メッセージ文を入力できます。メッセージ文がこの欄の幅よりも長い場合は、自動的に［広域ウィンドウ］がオープンします。

実行時に［条件］欄の評価が「True」の場合は、警告音とともにエラーメッセージが表示されます。［式］欄が「0」で［内容］欄にメッセージが指定されていない場合は、メッセージも表示されず警告音も鳴りませんが、［エラー］コマンド自体の処理は有効なままです。

モード

［モード］欄を「Ｅ＝エラー」に設定している［エラー］コマンドが、タスク前処理レベルで実行されると、タスクは終了します。それ以外の処理レベルで［エラー］コマンドが実行されると、以下で説明する規則に従って処理が再開されます。

以下に、［モード］欄に指定できる値を示します。

Ｅ＝エラー … デフォルト値。この場合に、dbMAGICはメッセージが表示されたあとに、以下の規則に従って動作します。

1.	オンラインタスクの［レコードメイン］で［エラー］コマンドを使用すると、処理は停止し、カーソルは直前のパーク可能項目に戻り、エンドユーザがエラーを訂正するまでdbMAGICは待ち状態になります。

2.	オンラインタスクの［レコード後処理］で［エラー］コマンドを使用すると、処理は停止し、カーソルは現在のレコードの最後のパーク可能項目に戻り、エンドユーザがエラーを訂正するまでdbMAGICは待ち状態になります。

3.	バッチタスクの［レコード後処理］で［エラー］コマンドを使用すると、処理は停止し、dbMAGICは次のレコードに移動して、エンドユーザの入力待ち状態になります。｛Esc｝キー以外のキーが押されると、次のレコードから処理が再開されます。｛Esc｝キーを押すと、タスクは終了します。メッセージを使用して、エンドユーザに｛Esc｝キー以外のキーを押す前にエラーを訂正するように指示させます。この機能は、デバッグ作業時に、［ブレイクポイント］として使用できます。

4.	それ以外の非対話型レベル（［タスク前処理］または［タスク後処理］、バッチタスクのブレイクレベル、［レコード前処理］）で［エラー］コマンドを使用すると、処理は停止し、このレベルの実行はアボートされます。

Ｗ＝警告 … dbMAGICに、タスクの実行を停止させないで警告音を鳴らしてメッセージを表示するように指示します。エンドユーザは、メッセージを無視して実行を継続してもかまいません。メッセージは、エンドユーザがキーを押すとすぐに画面上から消えます。

範囲と位置付

［範囲］と［位置付］の欄は、［エラー］コマンドとは関係がないため、カーソルはこの欄には止まりません。

フロー

［フロー］欄は、［エラー］コマンドをオンラインタスクの［レコードメイン］の処理テーブルに定義する場合にだけ指定できます。［フロー］欄を使用すると、エンドユーザのタスクのメインウィンドウでのカーソル移動に従って処理の実行を制御できます。

［フロー］欄には［フローモード］欄と［カーソル方向］欄の２つの設定欄があります。

■	［フローモード］欄に設定できる値を「フローモードコード」と呼び、「Ｓ＝通常」「Ｆ＝高速」「Ｃ＝両用」（ＳとＦの組み合わせ）「Ｂ＝前置」「Ａ＝後置」があります。［エラー］コマンドでのデフォルト値は「Ｃ＝両用」です。この欄にフローモードコードを直接入力したり、コンボボックスをズームして目的のフローモードコードを選択したりできます。「Ｂ＝前値」「Ａ＝後値」に設定する場合の動作は特殊で、両者をまとめて「ズームフローモード」と呼びます。実行時のタスクのフローモードと、設定してあるフローモードコードが一致する場合は「True」と評価され、その行の［エラー］コマンドが実行されます。

フローモードコードについての詳細は「5.2 エンジンについての基本事項」を参照してください。

■	［カーソル方向］欄に設定できる値を「カーソル方向コード」と呼び、「Ｆ＝前方」「Ｂ＝後方」「Ｃ＝両方向」（ＦとＢの組み合わせ）があります。［エラー］コマンドでのデフォルト値は「Ｃ＝両方向」です。この欄にカーソル方向コードを直接入力したり、この欄からコンボボックスをズームして、目的のカーソル方向コードを選択したりできます。

カーソル方向コードについての詳細は、「5.2 エンジンについての基本事項」を参照してください。

条件

この欄では、この行で定義する［エラー］コマンドが実行されるかどうかを制御する設定を行います。この欄の設定の評価が「True」の場合は実行され、「False」の場合は実行されません。以下に、この欄に設定できる値を示します。

■　Yes（デフォルト値） … 常に「True」と評価され、この行で設定する［エラー］コマンドが実行されます。

■　No … 常に「False」と評価され、この行で設定する［エラー］コマンドは実行されません。

■　式番号 … 論理型の値を返す式を指定します。式の評価が「True」の場合はその行の［エラー］コマンドが実行され、「False」の場合は実行されません。式を定義する場合は、この欄から［式］テーブルをズームします。

使用上の注意

■	［エラー］コマンドは、［モード］を「Ｗ＝警告」に設定することで、エンドユーザにエラーの可能性について警告できます。

■	エンドユーザのデータ入力をチェックする場合は、［モード］を「Ｅ＝エラー」に設定して、［エラー］コマンドをオンラインタスクの［レコードメイン］で使用します。


リンク

目的

メインファイルの現在のレコードと、リンクされたデータファイル（リンクファイル）または同じファイルにある別のレコードとの間で、メインファイルの項目とリンクファイルのキーセグメントで値を照合して、「１対１のリレーション」を構築します。リンクが構築すると、リンクファイルから項目を選択できます。つまり、リンクファイルの項目が［項目一覧］に追加され、タスクで使用できるようになります。

使用方法

■	メインファイルと他のデータファイルとの間に１対１のリレーションを構築します。

■	別のデータファイルのレコードを検索します。

■	別のデータファイルのデータが正しいかどうかをチェックします。

配置

［リンク］コマンドを使用して、タスクのデータビューを構築します。レコードメインの処理テーブルでだけ使用できます。

設定欄

リンク、リンク方式、リンクファイル識別番号

［処理コマンド］欄は、「リンク］という文字、リンク方式（Ｖ＝確認、Ｑ＝照会、Ｗ＝書出、Ｃ＝登録）、リンクファイル識別番号の３つの領域に分かれます。

1.	dbMAGICでは、［リンク］コマンドを選択すると、デフォルトとして「リンク Ｖ＝確認」が表示されます。

別のリンク方式に変更する場合は、カーソルを「Ｖ＝確認」上に移動します。

2.	リンク方式

…  ここをクリックして、コンボボックスを表示させ、目的のリンク方式を選択します。「Ｖ＝確認」と「Ｑ＝照会」は、既存のレコードを検索します。「Ｗ＝書出」は、照合レコードが存在する場合にはこれを読み取り、存在しない場合には作成します。「Ｃ＝登録」は、新しいレコードを作成します。

４つのリンク方式について

■Ｖ＝確認（デフォルト値）

リンク方式が「Ｖ＝確認」の場合には、dbMAGICは「確認リンク」を構築しようとします。リンクに成功すると、リンクレコードの選択された項目のデータが、データビューに取り込まれます。

リンクに失敗すると、タスクがオンラインの場合とバッチの場合とで、dbMAGICの動作が異なります。

バッチタスクの場合

リンクに失敗すると、「照会リンク」として動作します。

オンラインタスクの場合

タスクの実行は中断され、警告音とともに以下のエラーメッセージが表示されます。

＜レコードが見つかりません：ファイル名＞

ここで、「ファイル名」は、リンクファイルの名前です。

次に、dbMAGICは、エンドユーザがリンクキーとして別の値を入力するか、またはこの時点までのレコードの更新を取り消すために［編集／取消］を選択するまで待ち状態になります。

ヒント： 「確認リンク」がリンクに失敗すると、通常は警告音が出て処理が中断されます。状況によっては「確認リンク」でリンクに失敗しても、処理を中断させたくない場合があります。この場合は、［条件］欄を使用して、「確認リンク」が異常終了したときに「照会リンク」として動作するように設定できます（［条件］欄についての詳細は後述の説明を参照）。

［ビュー］コマンドで代入式が指定されていないリンク項目の場合は、項目が「０」（数値型、日付型、時刻型項目の場合）または空白（文字型項目の場合）で埋められます。

［ビュー］コマンドで代入式が指定されているリンク項目の場合は、項目が代入式の値で埋められます（「8.4 ビュー」を参照）。

■Ｑ＝照会

リンク方式が「Ｑ＝照会」の場合に、dbMAGICはリンクを構築しようとします。

リンクに成功すると、リンクレコードの選択された項目のデータが、データビューに取り込まれます。

リンクに失敗すると、以下の処理が行われます。

・	［ビュー］コマンドで代入式を指定していないリンク項目の場合は、項目が数値型、日付型、または時刻型のときは「0」で、文字型のときは空白で埋められます。

・	［ビュー］コマンドで代入式を指定しているリンク項目の場合は、項目が代入式の値で初期化されます。

ヒント： 「照会リンク」を使用している場合は、リンクに失敗したときに表示されるエラーメッセージをカスタマイズできます。この場合は、以下の［戻］欄の説明に従って、リンクの「戻りコード項目」を含んだ条件式を［エラー］コマンドで設定して使用します。

■Ｗ＝書出

リンク方式が「Ｗ＝書出」の場合には、dbMAGICはリンクを構築しようとします。リンクに成功すると、リンクレコードの選択された項目のデータが、データビューに取り込まれます。

dbMAGICでは、リンクに失敗すると、以下の規則に従ってレコードが作成されます。

・	［ビュー］コマンドで代入式が指定されていないリンク項目の場合は、項目が数値型、日付型、時刻型のときは「0」で、文字型のときは空白で埋められます。また、BLOB型のときは、ヌルになります。

・	リンク項目の［ビュー］コマンドで代入式が指定されていて、修正モードのオンラインタスクかバッチタスクである場合、リンク項目は代入式の値で初期化されます。

■Ｃ＝登録

リンク方式が「Ｃ＝登録」の場合には、dbMAGICはリンクの構築を行わず、常に、以下の規則に従って新しいレコードが作成されます。

・	代入式が指定されていないリンク項目の場合は、項目が数値型、日付型、または時刻型のときは「0」で、文字型のときは空白で埋められます。また、BLOB型のときは、ヌルになります。

・	代入式が指定されているリンク項目の場合は、代入式の値で初期化されます。

注意： リンクキーが「重複不可」のキーである場合は、キーの値が重複するレコードを作成しないでください。dbMAGICでは、キーの値が重複するレコードは作成されません。さらに、処理に失敗したことを知らせるメッセージも表示されません。

3.	リンクファイル識別番号

［リンク］コマンドのこの部分には、リンクファイルの「ファイル識別番号」を指定します。［ファイル一覧］にズームしてデータファイルを選択すると、以下の処理が自動的に行われます。

・	ファイル名が［内容］欄に転記されます。

・	データファイルの番号と名前がタスクの［DBファイル］テーブル（「4.4 ファイル辞書テーブル」を参照）に追加されます。

キー

この欄に移動し、［キー一覧］にズームして、リンクに使用するキー（リンクキー）を選択します。

キーを選択すると、以下の処理が行われます。

・	［リンク］コマンドと［リンク終了］コマンドの間に［ビュー］コマンドが自動的に作成されます。［ビュー］コマンドは、リンクキーのキーセグメントの個数分だけ作成されます。

順

これは、dbMAGICがリンクキーに従ってレコードを検索する方向です。昇順の場合は「Ａ」（デフォルト）を、降順の場合は「Ｄ」を指定します。「Ｄ」を指定することにより、［リンク］コマンドと［リンク終了］コマンドの間の［ビュー］コマンドで指定されているすべての［位置付］（最小／最大）および［範囲］（最小／最大）の式に関する、検索処理の順番を逆にすることができます。

戻（戻りコード）

［戻］欄は、必要に応じて使用します。この欄では、リンクの成功または失敗を示す「戻りコード」を受け取る変数項目（戻りコード項目）を指定できます。実行時には、リンクが行われた後、［戻］欄で指定した変数項目は、以下の値を受け取ります。つまり、リンクが成功すると「True」（論理型）または「０」（数値型）の値、リンクに失敗すると「False」（論理型）または「１」（数値型）の値です。

通常、［戻］欄には、［リンク］コマンドと［リンク終了］コマンドの間以外の場所で定義している変数項目を指定します。この変数項目は、［変数項目］テーブルで論理型または数値型に定義しておきます。

ヒント：項目は、エンドユーザにリンクの失敗を知らせるメッセージのカスタマイズに使用できます。この場合は、「Ｖ＝確認」以外のリンク方式を指定して、［条件］欄に以下の条件式を設定した［エラー］コマンドを挿入します（［リンク終了］コマンドの後に）。

X<>0	数値型の変数項目の場合

not（X）	論理型の変数項目の場合

ここで、「X」は［戻］欄で設定された変数項目のシンボル名です。

フロー

この欄は［リンク］コマンドには関係ないため、カーソルはこの欄には止まりません。

条件

［条件］欄は必要に応じて使用します。リンク方式が「Ｖ＝確認」の場合だけ指定できます。この欄には、［確認リンク］を、［確認リンク］または［照会リンク］のどちらで動作させるかを指定する条件式を設定できます。

以下に、設定できる値を示します。

■　Yes（デフォルト） … 常に「True」と評価され、［確認リンク］は［確認リンク］として動作します。

■　No … 常に「False」と評価され、［確認リンク］は［照会リンク］として動作します。

■　式番号 … 論理型の値を返す式を指定します。式の評価が「True」の場合は、［確認リンク］は通常通り動作します。「False」の場合は、［確認リンク］は［照会リンク］として動作します。


リンク終了

目的

［リンク終了］コマンドは、対になる［リンク］コマンドで開始されたリンクを終了させます。［リンク］コマンドと［リンク終了］コマンドの間に位置付けられている［ビュー］コマンドで選択されるすべての項目は、リンクファイルから読み出されます。［リンク］コマンドと［リンク終了］コマンドの間以外の場所に定義されている［ビュー］コマンドで選択される項目は、［メインファイル］から読み出されます。

使用方法

［リンク］コマンドの説明を参照してください。

配置

［リンク終了］コマンドは、レコードメインの処理テーブルでだけ使用できます。必ず、［リンク］コマンドと対にして使用してください。単独では使用できません。

設定欄

［リンク終了］処理コマンドには、設定欄はありません。

使用上の注意

■	dbMAGICでは、開発者が［リンク］コマンドを選択すると、処理テーブルの［リンク］コマンドの後に［リンク終了］が自動的に挿入されます。

■	dbMAGICで生成された［リンク終了］コマンドは、対になる［リンク］コマンドを削除しない限り、削除または上書きしないでください。

■	誤って［リンク終了］コマンドを削除した場合は、手動で定義し直します。

■	処理テーブルに無効なリンク構成（ネストされたリンク、対になっていない［リンク］、［リンク終了］など）が存在する場合は、警告メッセージが表示されます。


ブロック

目的

［ブロック］と［ブロック終了］コマンドは、一連の処理コマンドを１つの論理ブロックとして一括管理する場合に使用します。これにより、ブロックに含まれる全処理コマンドの実行を、［ブロック］コマンドの［条件］欄を設定して決めることができます。これは「IF」文と似ています。エンドユーザが［ブロック／ブロック終了］を「ズーム」して、このブロックに含まれるすべての処理コマンドを実行させるように設定することもできます。

使用方法

■	１ブロックの一連の処理コマンドの実行条件を、ブロック内の各処理コマンドの［条件］欄に個別に指定するのではなく、［ブロック］コマンドに１つにまとめて指定します。

■	１ブロック内の一連の処理コマンドが、エンドユーザのズームによって実行されるように設定します。

■	デバッグの際、ブロック内の処理コマンドの実行を禁止します。

設定欄

フロー

［フロー］欄は、［ブロック］コマンドをオンラインタスクのレコードメインの処理テーブルで使用する場合にだけ指定できます。［フロー］欄では、ブロック内の処理コマンドの実行を、エンドユーザのタスクのメインウィンドウでのカーソル移動に従って制御できます。

［フロー］欄には、［フローモード］欄と［カーソル方向］欄の２つの設定欄があります。

■	［フローモード］欄に設定できる値を「フローモードコード」と呼び、「Ｓ＝通常」「Ｆ＝高速」「Ｃ＝両用」（SとFの組み合わせ）「Ｂ＝前置」「Ａ＝後置」があります。［ブロック］コマンドでのデフォルト値は「Ｃ＝両用」です。この欄にフローモードコードを直接入力したり、この欄からコンボボックスをズームして目的のフローモードコードを選択したりできます。「Ｂ＝前置」「Ａ＝後置」に設定する場合の動作は特殊で、両者をまとめて「ズームフローモード」と呼びます。実行時のタスクのフローモードと、この欄に設定してあるフローモードコードが一致する場合は「True」と評価され、その行の［ブロック］コマンドが実行されます。フローモードコードについての詳細は、「5.2 エンジンについての基本事項」を参照してください。

■	［カーソル方向］欄に設定できる値を「カーソル方向コード」と呼び、「Ｆ＝前方」「Ｂ＝後方」「Ｃ＝両方向」（ＦとＢの組み合わせ）があります。［ブロック］コマンドでのデフォルト値は「Ｃ＝両方向」です。この欄にカーソル方向コードを直接入力したり、この欄からコンボボックスをズームして、目的のカーソル方向コードを選択したりできます。カーソル方向コードについての詳細は「5.2 エンジンについての基本事項」を参照してください。

条件

この欄では、この行で定義する［ブロック］コマンドが実行されるかどうかを制御する設定を行います。この欄の評価が「True」の場合は実行され、「False」の場合は実行されません。以下に、この欄に設定できる値を示します。

■　Yes（デフォルト値） … 常に「True」と評価され、この行で設定する［ブロック］コマンドが実行されます。

■　No … 常に「False」と評価され、この行で設定する［ブロック］コマンドは実行されません。

■　式番号 … 論理型の値を返す式を指定します。式の評価が「True」の場合はその行の［ブロック］コマンドが実行され、「False」の場合は実行されません。式を定義するには、この欄から［式］テーブルをズームします。

使用上の注意

■	［ブロック］と［ブロック終了］コマンドは、ネストできます。dbMAGICでは、自動的に各［ブロック］コマンドがその対となる［ブロック終了］コマンドと照合されて、ネスティング階層が解釈されます。

■	dbMAGICでは、［ブロック］コマンドの［条件］欄に指定されている条件式の評価が「True」の場合に、［ブロック］コマンドが実行されます。特に、レコードメインの処理テーブルの場合や、［フロー］欄の設定が現在のタスクの状況と一致する場合に、［ブロック］コマンドが実行されます。ブロック内の処理コマンドで［条件］欄と［フロー］欄が個別に設定されている場合は、その設定に従って処理コマンドが実行されるかどうかが決まります。


ブロック終了

目的

［ブロック終了］コマンドは、対になる［ブロック］コマンドで開始されたブロックの終了を宣言します。［ブロック］と［ブロック終了］の間に配置されているすべての処理コマンドは、同じブロックに含まれます。

使用方法

［ブロック］コマンドの説明を参照してください。

設定欄

［ブロック終了］コマンドには、設定欄はありません。

使用上の注意

■	dbMAGICでは、開発者が［ブロック］コマンドを選択すると、処理テーブルの［ブロック］コマンドの後に［ブロック終了］コマンドが自動的に挿入されます。

■	dbMAGICで生成された［ブロック終了］コマンドは、対になる［ブロック］コマンドを削除しない限り、削除または上書きしないでください。

■	誤って［ブロック終了］コマンドを削除した場合は、手動で定義し直します。

■	処理テーブルに無効なブロック構成（きちんと対になっていない［ブロック］と［ブロック終了］など）が存在する場合は、警告メッセージが表示されます。


コール

目的

［コール］コマンドには、オプションの指定に対応して「コールタスク」、「コールプログラム」、「コール式」、「コールユーザPRC」の４種類があり、さまざまなタイプのサブルーチン（子タスク、dbMAGICのプログラム、外部プログラム）の実行に使用します。呼び出されるサブルーチンにパラメータを渡したり、逆にサブルーチンから パラメータ値を受け取ることもできます。

パラメータの受け渡し

パラメータの受け渡しには、以下の２つのテーブルが使用されます。

■	呼び出し元タスクの［コール］コマンドに対応させられている［パラメータ］テーブル。この［パラメータ］テーブルには、パラメータとして渡す項目か式の値をすべて設定します（［パラメータ］テーブルの項目を参照）。

■	呼び出されるサブルーチンの［変数項目］テーブル。［変数項目］テーブルの先頭から［パラメータ］テーブルのパラメータと順番、およびデータの属性（型と書式）が正確に一致するように変数項目を定義します（「変数項目の定義」を参照）。

dbMAGICがパラメータを渡す方法

dbMAGICでは、以下の２つの方法で実行時にパラメータ値が渡されます。

1.	dbMAGICでは、実行時に「コールタスク」または「コール式」に出会うと、現在のタスクの［パラメータ］テーブルのパラメータの現在の値が、呼び出されるタスクの［変数項目］テーブルの対応する項目へ順に複写されます。

呼び出されるタスクの変数項目には、呼び出し元タスクから渡される値が転記されます。これらの項目は、呼び出されるタスクで自由に使用できます。

2.	呼び出されるタスクが終了すると、パラメータの内容を受け取るときに使用された変数項目は、呼び出し元タスクのパラメータの項目のすべてにふたたび複写されます。呼び出されるタスクにデータを渡すために式をパラメータとする場合には複写は行われません。つまり、すべてのパラメータは、対になる呼び出されるタスクの変数項目の変更を反映します。これが、通常「項目渡し」と呼ばれるパラメータ渡しの効果です。一方、パラメータが式の場合は、一方向にだけ機能します。つまり、パラメータの値は、呼び出されるタスクで使用されますが、呼び出されるタスクで発生した変更は呼び出し元タスクには反映されません。

これが、「値渡し」と呼ばれるパラメータ渡しの効果です。

パラメータ項目は、呼び出されるタスクの対応する変数項目の変更を受け取るために、呼び出し元タスクでは、［ビュー］コマンドと［リンク］コマンドのところで説明した規則に従って、「代入式」および「リンク式」が再計算されることがあります。呼び出されるタスクで値が変更される原因としては、エンドユーザによる入力または［項目更新］コマンドによる変更が考えられます。変更ずみのパラメータ項目が画面に表示される場合に、その画面は、呼び出されたタスクから呼び出し元タスクに戻るとすぐにリフレッシュされます。

コールコマンドの設定欄

コール、コールタイプ、コールされる処理の識別番号

［コール］コマンドの［処理コマンド］欄は、「コール」という文字、コールタイプ（Ｔ＝タスク、Ｐ＝プログラム、Ｅ＝式、Ｕ＝ユーザPRC）、呼び出される処理の識別番号の３つの領域に分かれます。

［コール］コマンドには４種類のコールタイプがありますが、それぞれを［コールタスク］［コールプログラム］［コール式］［コールユーザPRC］コマンドと呼びます。

1.dbMAGICでは、［コール］コマンドを選択すると、デフォルトとして「コール Ｔ＝タスク」が表示されます。

別のコールタイプに変更する場合は、カーソルを「Ｔ＝タスク」上に移動します。

2.コールタイプ … ここから４つのコールタイプを表示するコンボボックスをクリックして、目的のコールタイプを選択します。各コールタイプについての詳細は、後述します。

3.番号の識別子 … コールタイプによって異なります（後述）。

内容

この欄の内容は、コールタイプによって異なります（後述）。

パラ

［パラ］は、必要に応じて使用します。ここには、呼び出されるタスクに渡す［パラメータ］の個数が表示されます。

ここから［パラメータ］テーブルをズームして、渡すパラメータを定義します。

フォーム

［フォーム］欄は、必要に応じて使用します。この欄には、呼び出し元タスクでのフォームの識別番号を指定します。デフォルト設定の「0」を指定すると、呼び出されるタスクのメインウィンドウが表示されます。番号を指定すると、その番号のフォームが、呼び出されるタスクのメインウィンドウの表示場所として使用されます。つまり、呼び出されるタスクまたはプログラムが実行されると、そのメインウィンドウは［フォーム］欄で指定したウィンドウ内に表示されます。

この欄で指定するフォームは、クラス０でなければなりません。ただし、サイズと位置は自由です。このウィンドウ内には、何もレイアウトしないでください。メインウィンドウについての詳細は、「9.2 フォームテーブル」を参照してください。

ロック

dbMAGICでは、タスクまたはプログラムが呼び出されると、制御が戻るまで現在のビューレコードの処理は中断されます。呼び出されたタスクまたはプログラムは、現在のビューレコードの変数項目をすべて使用できます。プログラムの場合は、項目にパラメータとして渡すことができ、タスクの場合では直接アクセスできます。どちらの場合も、呼び出されたタスクまたはプログラムは、現在のビューレコードの項目の一部を更新することもできます。「入力時」または「入力後」ロック方式を使用している場合（ロック方式は［タスク制御］ダイアログで指定する。「7.7 タスク制御ダイアログ」を参照）には、ビューレコードは最初の変更時点または項目への入力完了を確認したあとでロックされます。呼び出されたサブタスクまたはプログラムで現在のレコードを変更しようとする場合は、現在のレコードがロックされていることを確認してください。子タスクとプログラムは１つの実行単位で、実行するにはある程度の時間が必要です。そのため、子タスクかプログラムの実行中に、他のユーザの現在のビューレコードへのアクセスを禁止して修正できないようにしてください。そうしないと、呼び出されたレコードまたはプログラムの終了時に、現在のレコードをディスクに書き込めないことがあります。したがって、現在のレコードは、子タスクまたはプログラムを実行する前にロックしてください。しかし、呼び出された子タスクまたはプログラムが現在のビューレコードを修正しない場合は、他のユーザがリソースにアクセスできるように、現在のビューレコードをロックしないでください。

［ロック］欄は、パラメータを持つタスクまたはプログラムを呼び出すときにロックを制御するために使用します。以下に、有効な値を示します。

No … タスクまたはプログラムを実行する場合に、現在のビューレコードをロックしません。開発者は独自に、呼び出されたプロセスから呼び出し元のレコード項目への更新が起らないようにしなければなりません。このような更新は、他のユーザによる変更であるために、現在のビューレコードをディスクに書き込めなくなることがあります。

Yes … 現在のビューレコードは、呼び出されたタスクかプログラムが実行されるとすぐにロックされます。呼び出されたタスクやプログラムが現在のビューレコードを更新する場合、または呼び出されたタスクやプログラムが更新処理をする場合に、現在のビューレコードも更新する必要があるときは、常に「Yes」に指定してください。

式 … ［ロック］欄の値を指定します。［式］を定義するには、この欄から［式］テーブルにズームします。

フロー

［フロー］欄は、［コール］コマンドをオンラインタスクのレコードメインの処理テーブルに定義する場合にだけ指定できます。［フロー］欄を使用すると、［コール］コマンドの実行を、エンドユーザのタスクのメインウィンドウでの対話に従って制御できます。

［フロー］欄には、［フローモード］欄と［カーソル方向］欄の２つの設定欄があります。

■	［フローモード］欄に設定できる値を「フローモードコード」と呼び、「Ｓ＝通常」「Ｆ＝高速」「Ｃ＝両用」（ＳとＦの組み合わせ）「Ｂ＝前置」「Ａ＝後置」があります。［コール］コマンドでのデフォルト値は「Ｓ＝通常」です。この欄にフローモードコードを直接入力したり、この欄からコンボボックスをズームして目的のフローモードコードを選択したりできます。「Ｂ＝前置」「Ａ＝後置」に設定した場合の動作は特殊で、両者をまとめて「ズームフローモード」と呼びます。実行時のタスクのフローモードとこの欄に設定しているフローモードコードが一致する場合は、「True」と評価され、その行の［コール］コマンドが実行されます。

フローモードコードについての詳細は、「5.2 エンジンについての基本事項」を参照してください。

■	［カーソル方向］欄に設定できる値を「カーソル方向コード」と呼び、「Ｆ＝前方」「Ｂ＝後方」「Ｃ＝両方向」（ＦとＢの組み合わせ）があります。［コール］コマンドでのデフォルト値は「Ｃ＝両方向」です。この欄にカーソル方向コードを直接入力したり、この欄からコンボボックスをズームして、目的のカーソル方向コードを選択したりできます。

カーソル方向コードについての詳細は、「5.2 エンジンについての基本事項」を参照してください。

条件

この欄では、この行で定義する［コール］コマンドが実行されるかどうかを制御する設定を行います。この欄の設定の評価が「True」の場合は実行され、「False」の場合は実行されません。以下に、この欄に設定できる値を示します。

■　Yes（デフォルト） … 常に「True」と評価され、この行で設定する［コール］コマンドが実行されます。

■　No … 常に「False」と評価され、この行で設定する［コール］コマンドは実行されません。

■　式番号 … 論理型の値を返す式を指定します。式の評価が「True」の場合はその行の［コール］コマンドが実行され、「False」の場合は実行されません。式を定義するには、この欄から［式］テーブルをズームします。

コールタスク

目的

親タスクから子タスクを呼び出して実行します。各子タスクは、親タスクの［メインファイル］とは異なる子タスク独自の［メインファイル］を管理し、各ウィンドウを表示させることができます。

使用方法

■	サブルーチンを呼び出します。

■	「１対多のリレーション」を実現します。

■	選択または参照用のデータ一覧を表示するウィンドウを実現します。

■	エンドユーザに確認や入力を促すさまざまなタイプのウィンドウを実現します。

設定欄

ここでは、［コールタスク］コマンドに特有の設定欄について説明します。すべての［コール］タイプに共通の設定欄については、前述の［コール］コマンドの説明を参照してください。

呼び出されるタスクの識別番号

［呼び出されるタスクの識別番号］欄は、必ず設定してください。ここには、［タスク一覧］に表示されている子タスクの番号を指定します。

子タスクを選択するには、以下の処理を行います。

1.	［タスク一覧］をズームします。

この一覧には、タスクツリーで呼び出し元タスクに対して定義した子タスクがすべて含まれます。

2.	目的の子タスクが一覧に含まれる場合は、それを選択します。

3.	目的の子タスクが一覧に含まれない場合は、以下のように作成します。カーソルを、そのタスクのノードに合わせて［ツリー／子タスク作成］（｛F4｝）を選択します。新しい子タスクが作成され、カーソルがタスクツリーの新しい子タスクのノードに移動します。親タスクに戻ると、自動的に新しい子タスクの番号が［コールタスク］コマンドの設定欄に転記されます。

内容

子タスクを選択すると、名前がこの欄に表示されます。

使用上の注意

■	［コールタスク］コマンドは、ズーム可能なウィンドウの実現によく使用します。［フロー］欄でズームフローモードを設定する場合についての詳細は、「5.2　エンジンについての基本事項」を参照してください。

■	呼び出される子タスクは、同系列の上位タスクにアクセスでき、それらの項目を変更できます。そのため、通常は子タスクにパラメータを渡す必要がありません。ただし、タスクの実行中に、１つの子タスクに別々の値を複数回渡して呼び出す場合には、パラメータを渡します。

■	呼び出される子タスクは、同系列の上位タスクでオープンされた入出力ファイルにアクセスできます。たとえば、出力を行う子タスクは、出力ファイルが親タスクによって定義されている場合には、改めて定義する必要はありません。

■	呼び出されるオンライン子タスクは、そのメインウィンドウ上にパーク可能項目を１つ以上持たなければなりません。そうしないと、子タスクは実行されません。

コールプログラムとコール式

目的

［プログラム辞書］テーブルで定義されているプログラムを呼び出して実行します。［コールプログラム］コマンドと［コール式］コマンドは、［コールタスク］コマンドに似ています。以下に、呼び出されるプログラムと呼び出される子タスクとの違いを示します。

■	プログラムは渡された パラメータを介してデータを共有しますが、子タスクは自動的に同系列の上位タスクの項目へのアクセス権を継承します。

■	プログラムはどのタスクからでも呼び出せますが、子タスクは親タスクに付属するため、他のタスクが呼び出すことはできません。

■	［コール式］コマンドでは、呼び出すプログラムを式の記述を使用してダイナミックに指定できます。

使用方法

サブルーチンを呼び出します。

設定欄

ここでは、［コールプログラム］および［コール式］に特有の設定欄について説明します。すべての［コール］タイプに共通の設定欄については、「8.12　コールコマンドの設定欄」を参照してください。

［コールプログラム］と［コール式］の違いは、呼び出すプログラムの指定方法だけです。

「コールプログラム」コマンドの設定欄

コールタイプ

「Ｔ＝タスク」が表示されている設定欄で、「Ｐ＝プログラム」を指定してください。設定欄で４つのコールタイプを表示するコンボボックスをクリックして、「Ｐ＝プログラム」を選択します。

呼び出されるプログラムの識別番号

［呼び出されるプログラムの識別番号］欄は必ず設定してください。ここには、プログラムの番号を指定します。

プログラムの識別番号を入力するか、［プログラム一覧］をズームして、目的のプログラムを選択します。

内容

プログラムを選択すると、この欄の名前が表示されます。

［コール式］コマンドの設定欄

コールタイプ

「Ｔ＝タスク」が表示されている設定欄で「Ｅ＝式」を指定してください。設定欄で４つのコールタイプを表示するコンボボックスをクリックして、「Ｅ＝式」を選択します。

呼び出される式の識別番号

［呼び出される式の識別番号］欄は、必ず設定してください。ここには、［式］テーブルに表示されている式の番号を指定します。この式で、実行されるプログラムの識別番号を与えなければなりません。

注意： ［プログラム辞書］に新しいプログラムが挿入されたりして参照するプログラムの番号が変化したとき、式で使用しているプログラム番号も連動して変更させたい場合には、PROGリテラルを使用します。たとえば、論理型項目BAの値に従って、番号が３か４のプログラムを実行すると仮定します。この場合は、IF （BA,'3'PROG,'4'PROG）という式を定義します。詳細については、「18.1　リテラル」を参照してください。

内容

式を選択すると、式の記述の最初の部分が［内容］欄に表示されます（表示だけ）。

使用上の注意

■	［コールプログラム］コマンドは、ズーム可能なウィンドウを実現する場合によく使用します。［フロー］欄のズームフローモードの使用方法についての詳細は、「5.2 エンジンについての基本事項」を参照してください。

■	プログラムは、［コールプログラム］コマンドによって呼び出されるプログラムとして、またはメニューから独立プログラムとして、２つの方法で起動できます。独立したプログラムとしてメニューから実行する場合は、このプログラムにパラメータとして渡されるすべての変数項目にヌル値が割り当てられます（数値型の場合は「0」、文字型の場合は空白、BLOB型の場合はヌル）。

■	プログラムは、自分自身を呼び出したり、自分自身にパラメータを渡したりできます。つまり、dbMAGICのプログラムは、実行時のネスティングレベルが許容範囲内であれば、完全な形で再帰呼び出しができます。

コールユーザPRC

目的

外部プログラムを起動します（パラメータの受け渡しも含みます）。dbMAGICは、このプログラムを呼び出すときには、Ｃ言語の呼び出し規約を使用します。

使用方法

■	dbMAGICの拡張部分の実行。dbMAGICでは内部的にサポートされない、特別の処理を行うためのユーザ提供のルーチンまたは関数を使用します。

■	dbMAGICの外部で書かれた既存のコードを、dbMAGIC内で使用します。

■	外部手続きで、速度が最適化される特殊目的の計算を実行します。

設定欄

ここでは、［コールユーザPRC］コマンドに特有の設定欄について説明します。すべてのコールタイプに共通の設定欄については、「8.11 コール」を参照してください。

コールタイプ

「Ｔ＝タスク」が表示されている設定欄で、「Ｕ＝ユーザPRC」を指定してください。設定欄で４つのコールタイプを表示するコンボボックスをクリックして、「Ｕ＝ユーザPRC」を選択します。

呼び出されるユーザ定義の識別番号

［呼び出されるユーザ定義の識別番号］欄は、必ず、設定してください。ここには、［式］テーブルに表示される式の番号を指定します。評価値として呼び出すプログラムの名前を返す式でなければなりません。

内容

式を選択すると、式の記述の最初の部分がこの［内容］欄に表示されます（表示だけ）。


アクション

目的

式の記述に［アクション関数］を含む式を指定すると、実行時にその式が評価され、アクション関数が実行されます。

アクション関数は、特殊な関数で、dbMAGICがこの関数を評価するたびに入出力関連のアクションが行われます。各アクション関数の正常終了または異常終了を知らせるために、［戻］欄に設定した変数項目（戻りコード項目）に「戻りコード」を返します。

使用方法

以下に、アクション関数を示します。

■  DBDEL … データファイルを削除します。

■  DBRELOAD … 実行時に常駐テーブルを再ロードします。

■  DDEGET … DDEサーバから取得した文字列を返します。

■  DDEPOKE … DDEサーバへ文字列を転送します。

■  DDEXEC … dbMAGICから、DDEサーバへコマャh文字列を転送します。

■  DELAY … 処理を遅延させます。

■  FILEDLG … Windowsの［ファイルを開く］ダイアログをオープンし、選択したファイル名を返します。

■  GROUPADD … アプリケーション内からセキュリティファイル内のユーザグループにユーザを割り当てます。

■  INIPUT  … “MAGIC.INI”に情報を書き込みます。詳細については「16.2  MAGIC.INIファイル」を参照してください。

■  IOCOPY … 入出力ファイルを複写します。

■  IODEL … 入出力ファイルを削除します。

■  IOREN … 入出力ファイルを改名します。

■  KBPUT … キーボード入力（ショートカットキーを含む）をシミュレートして、対応するアクションを実行します。

■  MAXMAGIC … dbMAGICのウィンドウを最大化します。

■  MINMAGIC … dbMAGICのウインドウを最小化します。

■  MNUCHECK … メニュー項目の前のチェックマークの表示／非表示を設定します。

■  MNUENABL … メニュー項目の有効／無効を設定します。

■  MNUSHOW … メニュー項目の表示／非表示を設定します。

■  RESMAGIC … dbMAGICのウインドウを元のサイズに戻します。

■  RIGHTADD … アプリケーション内からセキュリティファイル内のユーザに権利を割り当てます。

■  ROLLBACK … トランザクションを特定のネストレベルのセーブポイントへ戻します。

■  SETLANG … 有効にする言語を設定します。

■  UDF … ユーザ定義関数を呼び出します。

■  USERADD … アプリケーション内からセキュリティファイル内にユーザを追加します。

■  VARSET … 値をビュー項目に設定します。

詳細については、「18.4 関数」を参照してください。

設定欄

式の識別番号

この欄は必ず設定しなければなりません。［式］テーブルをズームして、目的の関数を選択または定義します。

内容

式を選択すると、式の記述の最初の部分がこの［内容］欄に表示されます（表示だけ）。

範囲

［範囲］欄は、［アクション］コマンドとは関係がないため、カーソルは、この欄には止まりません。

戻（戻りコード）

［戻］欄は、必要に応じて使用します。この欄では、起動したアクション関数の正常終了または異常終了を示す「戻りコード」を受信する項目を指定できます。処理が正常終了すると値「True」を、異常終了すると値「False」を受け渡します。

通常、［戻］欄には変数項目を指定します。この変数項目は、［変数項目］テーブルで論理型項目として定義します。

フロー

［フロー］欄は、［アクション］コマンドをオンラインタスクのレコードメインの処理テーブルに定義する場合にだけ指定できます。［フロー］欄では、［アクション］コマンドの実行を、エンドユーザのタスクのメインウィンドウでのカーソルの移動に従って決めることができます。

［フロー］欄には、［フローモード］欄と［カーソル方向］欄の２つの設定欄があります。

■	［フローモード］欄に設定できる値をフローモードコードと呼び、「Ｓ＝通常」「Ｆ＝高速」「Ｃ＝両用」（ＳとＦの組み合わせ）「Ｂ＝前値」「Ａ＝後値」があります。［アクション］コマンドでのデフォルト値は「Ｃ＝両用」です。この欄でフローモードコードを直接入力したり、この欄からコンボボックスをズームして、目的のフローモードコードを選択したりできます。「Ｂ＝前値」「Ａ＝後値」に設定する場合の動作は特殊で、両者をまとめて「ズームフローモード」と呼びます。実行時のタスクのフローモードとこの欄に設定してあるフローモードコードが一致する場合は、「True」と評価され、その行の［アクション］コマンドが実行されます。

フローモードコードについての詳細は、「5.2 エンジンについての基本情報」を参照してください。

■	［カーソル方向］欄に設定できる値を「カーソル方向コード」と呼び、「Ｆ＝前方」「Ｂ＝後方」「Ｃ＝両方向」（FとBの組み合わせ）があります。［アクション］コマンドでのデフォルト値は「Ｃ＝両方向」です。この欄でカーソル方向コードを直接入力したり、この欄からコンボボックスをズームして、目的のカーソル方向コードを選択したりできます。

カーソル方向コードについての詳細は、「5.2 エンジンについての基本事項」を参照してください。

条件

この欄では、この行で定義する［アクション］コマンドが実行されるかどうかを制御する設定を行います。この欄の評価が「True」の場合には実行され、「False」の場合には実行されません。以下に、この欄に設定できる値を示します。

■Yes（デフォルト） … 常に「True」と評価され、この行で設定する［アクション］コマンドが実行されます。

■No … 常に「False」と評価され、この行で設定する［アクション］コマンドが実行されません。

■式番号 … 論理型の値を返す式を指定します。式の評価が「True」の場合はその行の［アクション］コマンドが実行され、「False」の場合は実行されません。式を定義するには、この欄から［式］テーブルをズームします。

使用上の注意

■	［アクション］コマンドは、式の中にアクション関数が定義されている場合にだけ意味を持ちます。それ以外は、無視されます。

■	式では、アクション関数を必要なだけ組み合わせて記述できます。この場合の［戻りコード］は、アクション関数がすべて正常終了した場合にだけ「True」となります。


項目更新

目的

項目に値を代入して更新します。

使用方法

■	項目に特定の値を代入します。

■	レポートとオンラインタスクで合計を累積します。

■	更新処理を行うバッチタスクで項目を更新します。

■	データファイル間でレコードを複写します。

■	アボート不可に設定した加算モードの［項目更新］コマンドを使用して、データの整合性を維持します。

設定欄

項目のシンボル名

この欄は、必ず設定してください。

ここには、［ビュー項目一覧］に表示される項目のシンボル名を指定します。以下の説明では、この欄で指定する項目を「更新項目」と呼びます。上位タスクで選択する項目を更新項目とすることもできます。

内容

項目（更新項目）を選択すると、名前がこの欄に表示されます。

式の識別番号

この欄は、必ず設定してください。ここには、［式］テーブルに表示される式の番号を指定します。この式が評価された値は更新項目に代入されます。この式を「更新式」と呼びます。

後述の［計］欄の説明に従って、「Ｎ＝代入」または「Ｉ＝加算」を指定します。

1.	「代入更新」の場合の更新式

更新式の値が、［更新項目］の現在の値と置き換えられます。たとえば、項目Ｂの値を項目Ａに合計として累積する場合は、更新式を「A+B」と定義します。

2.	「加算更新」の場合の更新式

これは、リンクファイルを使用して作業を行う場合にデータの整合性を維持するための方法です。更新式の値は、更新項目の現在の値に加算されます。したがって、更新式には加算値だけを指定しなければなりません。たとえば、更新項目Ａに項目Ｂの値を加算する場合は、式は、「A+B」ではなく、「B」と指定します。

計

以下に、［計］欄に指定できる値を示します。

■　Ｎ＝代入 … 更新項目は、更新式の評価結果の値で置き換えられます。これは通常の項目更新方法です。

■　Ｉ＝加算 … 加算更新は、オンラインタスクの場合にだけ指定できます。

dbMAGICでは、「Ｉ＝加算」の場合に更新式が評価され、以下の規則に従って、この値と更新項目との加算または減算を行います。

1.	タスクの処理モードが「登録モード」の場合に、更新式の値が更新項目に加算されます。

2.	タスクの処理モードが「修正モード」である場合に、まず更新項目から更新式の現在の値(a)が減算され、次に更新式の新しい値(b)が加算されます。

(a)	更新式の現在の値とは、更新式の記述で使用されている項目の値が、レコードが読み取られたときの値のままの場合に、更新式を評価して得られる値です。

(b)	更新式の新しい値とは、項目更新コマンドの実行時に更新式を評価して得られる値です。

3.	タスクの現在の処理モードが「削除モード」の場合に、更新式の値が更新項目から減算されます。

4.	更新項目がリンクファイルの項目になっている場合、リンク式がレコードとの対話中に変更されて、新しいリンクレコードが読み出されると、次のようにしてデータの整合性が維持されます。もともとリンクされていたレコードの項目（更新項目）から更新式の現在の値が減算され、次に新しくリンクされたレコードからの新しい項目（更新項目）に更新式の新しい値が加算されます。

加算更新の使用例

［受注ファイル］と、それにリンクされている［商品ファイル］の２つのデータファイルがあると仮定します。リンクされている［商品ファイル］内の在庫項目に保持される在庫数を、受注数（［受注ファイル］内の数量項目に保持される）で更新する場合を考えてみます。在庫を項目Ａ、数量を項目Ｂとした場合、以下の処理が行われます。加算モードで項目Ａが式Ｂで更新されます。開始時の在庫（A1）の内容は「30」です。

■	登録モードでは、数量（B1）に「5」を入力すると、在庫（A2）は「35」になります。

■	修正モードでは、現在の数量（B1）が「5」の場合に、これを「7」（B2）に修正すると、在庫 (A3)は「35-5 + 7 = 37」、つまり「(A2) - (B1) + (B2) = (A3)」となります。

■	削除モードでは、受注レコードが削除されます。数量項目が「7」（B2）の場合、在庫は「37 - 7 = 30」、つまり「(A3) - (B2) = (A4)」となります。

■	［数量＝７］のレコードがまだ削除されず（つまり在庫は「37」）、リンクされているレコードを在庫が「50」の別のレコードに変更する場合には、結果は以下のようになります。オリジナルレコードの在庫は「37 -7 = 30」で、新しくリンクされるレコードの在庫は「50 + 7 = 57」となります。

加算更新の特殊な動作特性によって、データの整合性を維持するために追加手続きを実行する必要はありません。

止

［止］欄では、［項目更新］コマンドの実行後に、エンドユーザが［編集／取消］（｛F2｝）を使用できるかどうかを決めます。

「Yes」はデフォルト値です。「Yes」に設定すると、エンドユーザは、［項目更新］コマンドの実行後に［編集／取消］を選択して、現在のデータビューをもとの状態に戻し、更新を取り消すことができます。

「No」に設定すると、［項目更新］コマンド実行後に［編集／取消］は使用できません。エンドユーザは、アボート不可の［項目更新］コマンドが実行されるタスクレベルでは、データビューに対する変更を取り消すことはできません。

 － 通常、アボート不可の［項目更新］コマンドは、レコード後処理レベルでよく使われます。たとえば、更新された項目をオリジナル値に戻すとデータの整合性が損なわれる可能性がある場合によく使われます。よくある例として、親タスクのデータビューのデータの変更を目的とする処理があります。［止］欄を「No」に設定すると、子タスクのレコードが受け付けられたあとに、エンドユーザによる親タスクのレコードの取り消しができなくなります。

 － エンドユーザによる更新の取り消しを禁止するには、親タスクのビュー項目を更新する子タスク内で、［止］欄を「No」に設定した［項目更新］コマンドを少なくとも１回実行します。

フロー

［フロー］欄は、［項目更新］コマンドをオンラインタスクのレコードメインの処理テーブルに定義する場合にだけ指定できます。［フロー］欄では、［項目更新］コマンドの実行を、エンドユーザのメインウィンドウでの対話に従って制御できます。

［フロー］欄には、［フローモード］欄と［カーソル方向］欄の２つの設定欄があります。

■	［フローモード］欄に設定できる値を［フローモードコード］と呼び、「Ｓ＝通常」「Ｆ＝高速」「Ｃ＝両用」（ＳとＦの組み合わせ）「Ｂ＝前置」「Ａ＝後置」があります。［項目更新］コマンドでのデフォルト値は「Ｃ＝両用」です。この欄でフローモードコードを直接入力したり、この欄からコンボボックスをズームして、目的のフローモードコードを選択したりできます。「Ｂ＝前置」「Ａ＝後置」に設定する場合の動作は特殊で、両者をまとめて「ズームフローモード」と呼びます。実行時のタスクのフローモードとこの欄に設定してあるフローモードコードが一致する場合は、「True」と評価され、その行の［項目更新］コマンドが実行されます。

フローモードコードについての詳細は、「5.2 エンジンについての基本事項」を参照してください。

■	［カーソル方向］欄に設定できる値を「カーソル方向コード」と呼び、「Ｆ＝前方」「Ｂ＝後方」「Ｃ＝両方向」（ＦとＢの組み合わせ）があります。［項目更新］コマンドでのデフォルト値は「Ｃ＝両方向」です。この欄でカーソル方向コードを直接入力したり、この欄からコンボボックスをズームして目的のカーソル方向コードを選択したりできます。

カーソル方向コードについての詳細は、「5.2 エンジンについての基本事項」を参照してください。

条件

この欄では、この行で定義する［項目更新］コマンドが実行されるかどうかを制御する設定を行います。この欄の評価が「True」の場合は実行され、「False」の場合は実行されません。以下に、この欄に設定できる値を示します。

■　Yes（デフォルト値） … 常に「True」と評価され、この行で設定する［項目更新］コマンドが実行されます。

■　No … 常に「False」と評価され、この行で設定する［項目更新］コマンドは実行されません。

■　式番号 … 論理型の値を返す式を指定します。この式の評価が「True」の場合はその行の［項目更新］コマンドが実行され、「False」の場合は実行されません。式を定義するには、この欄から［式］テーブルをズームします。

使用上の注意

■	通常、［項目更新］コマンドはタスクの非対話型レベル（レコードメイン以外のレベル）で使用します。この場合は、［止］欄を「No」に設定することをお勧めします。

■	実データに対する［項目更新］コマンドは、レコードレベルでだけ使用できます。レコードデータは、他のレベルで使用できないため、直接更新しないでください。

■	加算モードの［項目更新］コマンド（加算更新）は、オンラインタスクでだけ使用できます。バッチタスクでは、常に代入モードの［項目更新］を使用します。

■	加算モードの［項目更新］コマンドを使用する場合は、常にレコード後処理の処理テーブルで使用します。この場合、dbMAGICでは［項目更新］コマンドが１回だけ、つまりレコードが編集された後に１回だけ実行されます。

■	親タスクの項目かリンクレコードの項目に合計を累積するには、加算モードの［項目更新］コマンドを使用します。この場合は、［止］欄を「No」に設定して、子タスクのレコードが受け付けられたあとにエンドユーザによる親タスクのレコードの取り消しを禁止してください。

■	通常、リンクファイルから選択する項目は、メインファイルから選択する項目と同様に［項目更新］コマンドの影響を受けます。例外は、リンク式がレコードの処理中に変更されるリンクファイルから選択する項目に対して、修正モードのオンラインタスクで加算モードの［項目更新］コマンドが使用される場合です。この場合は、もとのリンクレコードの項目のオリジナル値から、［項目更新］コマンドの更新式のオリジナル値が減算され、新しいリンクレコードの項目には更新式の新しい値が加算されます。

たとえば、エンドユーザが、修正モードで実行しているオンラインの［受注登録］プログラムで、受注総額を累積する顧客ファイルへの［リンク式］として使用している顧客番号を途中で変更するとします。この場合に、［項目更新］コマンドが実行されると、現在の（修正された）受注書の合計がオリジナルの顧客レコードから減算され、新しい顧客レコードに加算されます。

■	原則として、加算モードの［項目更新］コマンドの更新式には定数を使用しないでください。タスクが修正モードの場合は、この定数が、減算と加算の過程で相殺されます。ただし、タスクが登録モードまたは削除モードの場合は、正しく機能します。たとえば、件数が親タスクまたは現在のタスクのリンクファイルから選択される項目に保持される場合に、子タスクのデータビュー内のレコード数を数え続けるために、加算モードの［項目更新］コマンドの式として「1」（定数）を使用できます。子タスクが修正モードである限り、件数は変更されません。しかし、レコードが子タスクのデータビューから削除されたり（削除モード）、新しいレコードが子タスクのデータビューに作成されたり（登録モード）すると、件数はすぐに正しく更新されます。

注意：「更新式」は、［項目更新］コマンドの［式］欄に設定する式です。

［項目更新］コマンドの代入と［ビュー］コマンドの代入式の違い

代入モードの［項目更新］コマンドと［ビュー］コマンドの代入式は、両方とも項目への値の代入に使用できます。

ただし、使用方法には、以下のような重要な違いがあります。

1.	dbMAGICは、［項目更新］コマンドに出会うとこれを実行します。［項目更新］コマンドがレコードメインの処理テーブルに配置されている場合、エンドユーザは、カーソルを移動することにより処理コマンドを実行することができます（「5.2 エンジンについての基本事項」を参照）。［項目更新］コマンドをレコード後処理の処理テーブルに配置すると、レコード後処理の実行中にこの処理コマンドが実行されます。これに対して、［ビュー］コマンドの代入式は常に計算され、代入されます。

2.	代入モードの［項目更新］コマンドの更新式は、式の記述で使われている項目を変更しても再計算されず、代入されません（手続き型処理）。一方、［ビュー］コマンドの代入式は、式の記述に使われている項目を変更すると、すぐに再計算されて代入されます（非手続き型処理）。

3.	［設定／動作環境］の「照会モードでの修正許可」が「Yes」に設定されれている場合は、［項目更新］コマンドの更新式は、登録モードや修正モードだけでなく、照会モードでも評価されます。一方、［ビュー］コマンドの代入式は、タスクが登録モードの場合にだけ、実データ項目に対する代入が行われます。


データ出力

目的

関連するフォームで指定されるレイアウトに従って、出力テキストファイルまたは出力デバイスにレコードを書き込みます。レポートを出力する場合には、この処理コマンドを使用します。

使用方法

■	レポートの作成

■	出力ファイルにテキストデータを出力

■	外部のデバイスドライバとの通信（データを渡す）

設定欄

出力フォーム識別番号

［出力フォーム識別番号］欄は必ず設定してください。この欄には、［フォーム一覧］でのフォームの識別番号を指定します。通常、ここには１以上のフォームのクラスを指定します。指定するフォームは、出力レコードのフォーマットを定義するとみなされ、テキストファイルまたはレポートの各領域（ヘッダ、フッタ、または明細）のレイアウトを表します。［出力フォーム識別番号］を指定するには、［フォーム一覧］にズームして、目的のフォームを選択します。新しいフォームの定義が必要な場合は、［フォーム一覧］から［フォーム］テーブルにズームします（「9.2 フォームテーブル」を参照）。

内容

出力フォームを選択すると、名前がこの欄に表示されます。

ファイル

［ファイル］欄は、必ず設定してください。ここには、フォームの出力を書き込む出力ファイル番号を［入出力ファイル一覧］の表示に従って指定します。デフォルト値は、先頭の入出力ファイルを示す「1」です。

指定する出力ファイルは、［入出力ファイル］テーブルで［アクセス］欄が「Ｗ＝書出」または「Ａ＝追加」に設定されていなければなりません（「7.13 入出力ファイルテーブル」を参照）。

同系列の上位タスクで定義（オープン）されている出力ファイルを指定することもできます。

［入出力ファイル一覧］にズームして、目的の出力ファイルを選択します。新しい出力ファイルの定義が必要な場合は、［入出力ファイル一覧］から［入出力ファイル］テーブルにズームします（「7.13 入出力ファイルテーブル」を参照）。

頁

［頁］（ページ終了の動作特性）欄は、レポートをプリンタまたはコンソールに出力する場合にだけ指定できます。この欄を使用して、［ページ終了］状態の発生時のdbMAGICの動作を決めます。

ページ終了（EOP）状態は、出力されるフォームが現在のページの残りスペースよりも大きい場合に発生します。EOP状態の評価時にdbMAGICで使用されるページサイズ（行数）は「論理ページサイズ」で、プリンタの物理ページサイズとは関係ありません。プリンタの物理ページサイズとdbMAGICの論理ページサイズとを関連させるには、［プリンタ］テーブル（［設定／プリンタ］を選択してアクセスする）を使用できます。詳細については、第16章「設定」を参照してください。論理ページサイズは、以下のどちらかの方法で決まります。

■	［データ出力］コマンドに対応している出力ファイルの［行］欄（「7.13 入出力ファイルテーブル」を参照）。

■	出力ファイルの［行］欄を設定していない場合は、現在の［データ出力］コマンドで使用される出力ファイルに対応するプリンタに対して指定する［行］欄（「16.1 設定メニュー」の「設定／プリンタ」を参照）。

ページ終了状態は、改ページの原因となる後続の［データ出力］コマンドでクリアされます。つまり、「Ａ＝自動」または「Ｔ＝先頭」（下記参照）を指定する［データ出力］コマンドで、EOP状態がクリアされます。

dbMAGICでは、複数の出力ファイルや出力デバイスに同時に出力できますが、ページ終了状態の処理はOSによって異なります。１つの出力ファイルで発生したページ終了状態は、他の出力ファイルへの［データ出力］コマンドには影響しません。

［頁］欄には、以下の３つの値を指定できます。

■　Ａ＝自動 … デフォルト値。ページ終了状態で改ページされ、［フォーム］テーブルで現在の［データ出力］コマンドで出力されるフォームよりも前にある同じクラス番号のヘッダフォームがすべて自動的に出力されます。現在のフォームよりもうしろにあるヘッダフォームは、自動出力されません。通常のレポートプログラムの場合は、「Ａ＝自動」を設定します。

■　Ｓ＝スキップ … 現在のフォームを出力ファイルに出力する前に、現在のページにフォームを完全に出力するスペースが残っているかどうかがチェックされます。スペースが十分にある場合は、フォームが出力ファイルに書き込まれます。スペースが十分にない場合は、フォームをスキップして、出力ファイルには書き込まれません。代わりに、ページ終了状態をオンにします。ページ終了状態は、EOP関数で問い合わせることができます。

■　Ｔ＝先頭 … プリンタに印刷用のフォームを送る前に、改ページコードが発行されます。これによって、フォームは新しいページに印刷されます。

注意： ページ終了状態で実行する処理は、開発者が決めます。たとえば、［頁］欄を「Ｔ＝先頭」に設定した［データ出力］コマンドを使用して、ページブレイク（改ページ）を強行して出力を継続させることもできます。

ページ終了状態が発生すると、後続の「スキップ」モードを使用するフォームの出力は無視されます。「スキップ」モードでの出力は、EOP状態がクリアされると再開されます。

出力の完全な制御が必要なアプリケーションでは、「スキップ」モードを使用します。この場合、EOP関数とLINE関数を使用して、［データ出力］コマンドの実行を細かく制御できます。

位置付

この欄は、［データ出力］コマンドとは関係がないため、カーソルは、この欄には止まりません。

フロー

［フロー］欄は、［データ出力］コマンドをオンラインタスクのレコードメインの処理テーブルに定義する場合にだけ指定できます。［フロー］欄では、エンドユーザのタスクのメインウィンドウでのカーソル移動に従って処理コマンドの実行を、制御できます。

［フロー］欄には、［フローモード］欄と［カーソル方向］欄の２つの設定欄があります。

■	［フローモード］欄に設定できる値を「フローモードコード」と呼び、「Ｓ＝通常」「Ｆ＝高速」「Ｃ＝両用」（ＳとＦの組み合わせ）「Ｂ＝前置」「Ａ＝後置」があります。［データ出力］コマンドでのデフォルト値は「Ｃ＝両用」です。この欄にフローモードコードを直接入力したり、この欄からコンボボックスをズームして、目的のフローモードコードを選択したりできます。「Ｂ＝前置」「Ａ＝後置」に設定する場合の動作は特殊で、両者をまとめて「ズームフローモード」と呼びます。実行時のタスクのフローモードとこの欄で設定してあるフローモードコードが一致する場合は「True」と評価され、その行の［データ出力］コマンドが実行されます。

フローモードコードについての詳細は、「5.2 エンジンについての基本事項」を参照してください。

■	［カーソル方向］欄に設定できる値を「カーソル方向コード」と呼び、「Ｆ＝前方」「Ｂ＝後方」「Ｃ＝両方向」（ＦとＢの組み合わせ）があります。［データ出力］コマンドでのデフォルト値は「Ｃ＝両方向」です。この欄にカーソル方向コードを直接入力したり、この欄からコンボボックスをズームして目的のカーソル方向コードを選択したりできます。

カーソル方向コードについての詳細は、「5.2 エンジンについての基本事項」を参照してください。

条件

この欄では、この行で定義する［データ出力］コマンドが実行されるかどうかを制御する設定を行います。この欄の評価が「True」の場合は実行され、「False」の場合は実行されません。以下に、この欄に設定できる値を示します。

■　Yes（デフォルト） … 常に「True」と評価され、この行で設定する［データ出力］コマンドが実行されます。

■　No … 常に「False」と評価され、この行で設定する［データ出力］コマンドは実行されません。

■　式番号 … 論理型の値を返す式を指定します。式の評価が「True」の場合はその行の［データ出力］コマンドが実行され、「False」の場合は実行されません。式を定義するには、この欄から［式］テーブルをズームします。

使用上の注意

■	データ出力用の簡易プログラムを自動的に生成するには、「APG」を使用できます（第22章「APG」を参照）。

■	［データ出力］コマンドの対象は、データファイルではなく、出力ファイル（外部のテキストファイル）です。

■	［データ出力］コマンドで指定する出力ファイルは、ディスク上の物理ファイル、プリンタ、またはデバイスドライバにリダイレクトできます（「7.13 入出力ファイルテーブル」を参照）。

■	レポートを設計するには、レポートフォーマットの各部分（ヘッダ行、フッタ行、明細行）について別々の［データ出力］コマンドを設定します。出力ファイルを定義するタスク（タスクの入出力ファイルテーブルで定義）またはその子タスクでは、出力ファイルにレポートを出力する［データ出力］コマンドを定義できます。

■	EOP（ページ終了）条件をリセットするには、［頁］欄を「Ａ＝自動」または「Ｔ＝先頭」に設定して［データ出力］コマンドを実行しなければなりません。


データ入力

目的

テキストファイルまたは入力デバイスからテキストデータを読み取り、その内容を関連するフォームで定義される項目にロードします。

使用方法

■	入力ファイルへのテキストデータの読み込み

■	外部のデバイスドライバとの通信（データの受け取り）

設定欄

入力フォーム識別番号

この欄は、必ず設定してください。この欄には、［フォーム一覧］でのフォームの識別番号を指定します。通常、ここには、１以上のフォームのクラスを指定します。入力ファイルを読み込むフォームを指定するには、［フォーム一覧］にズームして、目的のフォームを選択します。新しいフォームの定義が必要な場合は、［フォーム一覧］から［フォーム］テーブルにズームします（「9.2 フォームテーブル」を参照）。

内容

入力フォームを選択すると、名前がこの欄に表示されます。

ファイル

［ファイル］（入出力ファイル識別番号）欄は、必ず設定してください。ここには、読み取りを行う入力ファイルの番号を［入出力ファイル一覧］の表示に従って指定します。デフォルト値は、先頭の入出力ファイルを示す「1」です。

指定する［入力ファイル］テーブルの［アクセス］欄は、「Ｒ＝読込」か「Ｄ＝直接」に設定しなければなりません（「7.13入出力ファイルテーブル」を参照）。

同系列の上位タスクで定義（オープン）されている入力ファイルを指定することもできます。新しい入力ファイルを定義する必要がある場合は、［入出力ファイル一覧］から［入出力ファイル］テーブルにズームします（「7.13 入出力ファイルテーブル」を参照）。

［入出力ファイル一覧］にズームして、目的の入力ファイルを選択します。

形

［形］（ファイル区切り法）欄では、入力レコードの項目を区切る方法を定義します。以下に、指定できる値を示します。

■　Ｃ＝固定長 … デフォルト値。入力項目は、区切り文字を使用せずに、固定長として処理されます。使用するフォームは、レコードの項目間のスペースも含め、このレイアウトと完全に一致しなければなりません。

「Ｃ＝固定長」を指定すると、カーソルは後続の［記］欄には止まりません。

■　Ｓ＝単区切 … 入力レコードの項目が、各入力データ項目の後（右側）に追加する１つの区切り文字で区切られます。たとえば、入力レコード「123,ABCDE,-23.57」では、カンマ（,）を区切り文字として使用しているため、この文字を［記］欄に指定しなければなりません。

「Ｓ＝単区切」を指定すると、フォームの項目間のスペースを無視できます。

■　Ｄ＝複区切 … 入力レコードの項目が、各入力データ項目の前後（左側と右側）に追加する複区切り文字で区切られます。たとえば、入力レコード「"123""ABCDE""-23.57"」では、引用符（"）を区切り文字として使用しているため、［記］欄にそれを指定します。

「Ｄ＝複区切」を指定すると、入力レコードの項目間のスペースと、フォームの項目間のスペースを無視できます。

単区切の［データ入力］処理では、入力ファイルの項目から自動的に左右の二重引用符が外されます。たとえば、以下のような入力があるとします。

"A","B","C"

カンマ（,）を単区切り文字として［データ入力］処理で読み込むと、対応する項目には"A"、"B"、"C"ではなく、A、B、Cという値が読み込まれます。

記

［記］欄には、区切り文字として使用される文字を指定します。この欄は、［形］欄を「Ｓ＝単区切」または「Ｄ＝複区切」に設定する場合にだけ指定できます。

フロー

［フロー］欄は、［データ入力］コマンドをオンラインタスクのレコードメインの処理テーブルに定義する場合にだけ指定できます。［フロー］欄では、処理コマンドの実行を、エンドユーザのタスクの［メイン］ウィンドウでのカーソル移動に従って制御できます。

［フロー］欄には、［フローモード］欄と［カーソル方向］欄の２つの設定欄があります。

■	［フローモード］欄に設定できる値を「フローモードコード」と呼び、「Ｓ＝通常」「Ｆ＝高速」「Ｃ＝両用」（ＳとＦの組み合わせ）「Ｂ＝前置」「Ａ＝後置」があります。［データ入力］コマンドでのデフォルト値は「Ｃ＝両用」です。この欄にフローモードコードを直接入力したり、この欄からコンボボックスをズームして、目的のフローモードコードを選択したりできます。「Ｂ＝前置」「Ａ＝後置」に設定する場合の動作は特殊で、両者をまとめて「ズームフローモード」と呼びます。実行時のタスクのフローモードとこの欄に設定してあるフローモードコードが一致する場合は「True」と評価され、その行の［データ入力］コマンドが実行されます。

フローモードコードについての詳細は、「5.2 エンジンについての基本事項」を参照してください。

■	［カーソル方向］欄に設定できる値を「カーソル方向コード」と呼び、「Ｆ＝前方」「Ｂ＝後方」「Ｃ＝両方向」（ＦとＢの組み合わせ）があります。［データ入力］コマンドでのデフォルト値は「Ｃ＝両方向」です。この欄にカーソル方向コードを直接入力したり、この欄からコンボボックスをズームして、目的のカーソル方向コードを選択したりできます。

カーソル方向コードについての詳細は、「5.2 エンジンについての基本事項」を参照してください。

条件

この欄では、この行で定義する［データ入力］コマンドが実行されるかどうかを制御する設定を行います。この欄の設定の評価が「True」の場合は実行され、「False」な場合は実行されません。以下に、この欄に設定できる値を示します。

■　Yes（デフォルト） … 常に「True」と評価され、この行で設定する［データ入力］コマンドが実行されます。

■　No … 常に「False」と評価され、この行で設定する［データ入力］コマンドは実行されません。

■　式番号 … 論理型の値を返す式を指定します。式の評価が「True」の場合はその行の［データ入力］コマンドが実行され、「False」の場合は実行されません。式を定義するには、この欄から［式］テーブルをズームします。

使用上の注意

■	データ入力用の簡易プログラムを自動生成する場合は、「APG」を使用できます（第22章「APG」を参照）。

■	再計算処理の注意：　入力ファイルから［ビュー］コマンドの代入式またはリンク式の記述で使用している項目にデータをロードすると、非手続き型再計算が行われることがあります。

■	入力ファイルのレコードレイアウトがレコードごとに異なる場合は、それぞれに対応する別々のフォームを指定して、別々の［データ入力］コマンドを使用します。

■	メインファイルとして、バッチタスクでスクラッチファイル（ファイル番号０）を使用する場合は、［タスク制御］ダイアログで（EOF（ファイルの終わり）関数を使用して）［タスク終了］欄に式を定義し、入力ファイルの終わりに到達したとき、または前もって定義する件数のレコードが入力ファイルから読み込まれたときにバッチタスクの実行を終了させなければなりません。そうしないと、無限ループに入ります。

■	フォームは、複数の行で構成することもできます。［データ入力］コマンドを使用すると、外部のテキストファイルからレコードを読み込むことができます。この方法は、データファイルに他のテキストファイルからデータを取り込む場合に使用します。

■	フォームの各行の最大幅は、9999バイトです。したがって、［データ入力］コマンドは、9999バイトまでの入力レコードの読み込みに使用できます。

■	１つのフォームの最大サイズ（行数×桁数）は、32KBです。

■	入力ファイル（テキストファイル）のレコードの数値項目には、カンマと小数点（編集された数値）を含ませることができます。

■	各［データ入力］コマンドに対して、dbMAGICでは、この処理コマンドで使用するフォームの幅と同じ長さの入力ファイルレコードを読み込もうとします。フォームの幅に対応するテキストが読み込まれる前に行の終止符（LF）に出会うと、この時点で［データ入力］コマンドは終了します。入力ファイルの区切り文字についての詳細は、「7.13　入出力ファイルテーブル」を参照してください。


エディット

目的

テキストファイルをウィンドウに表示し、エンドユーザが照会または編集できるようにします。

使用方法

■	テキストファイルの内容の表示

■	テキストファイルの内容の編集

設定欄

照会ファイル式の識別番号

［照会ファイル式の識別番号］欄は、必ず設定してください。ここには、実行時に照会されるテキストファイルのファイル名を与える式を指定します。このファイル名には、サーバとディレクトリパス名を付加できます。

［データ出力］コマンドや［データ入力］コマンドと違って、［エディット］コマンドに指定するテキストファイルは、［入出力ファイル］テーブルで定義しておく必要はありません。

内容

式を選択すると、式の記述の最初の部分がこの欄に表示されます。

編集

［編集］（編集モード）欄は、エンドユーザにテキストファイルの照会だけを許可するか、修正も許可するかを指定します。以下に、指定できる値を示します。

■　Ｓ＝参照 … デフォルト値。照会（表示）用としてテキストファイルが表示されます（編集不可）。

■　Ｅ＝編集 … 「Ｅ」を指定すると、エンドユーザが、［ヘルプ画面］の定義に使用するスクリーンエディタ（「11.1 ３種類のヘルプ」を参照）で、テキストファイルを編集できます。

「Ｅ＝編集」を指定していて、テキストファイルのレコードが、それを読み込むために定義するフォームに収まらない場合は、自動的にモードが「Ｅ＝編集」から「Ｓ＝参照」に切り換えられ、エラーメッセージが表示されます。このため、エンドユーザが正常にセーブできない編集を禁止します。

フォーム

［フォーム］（フォーム識別番号）欄には、［フォーム一覧］内のフォーム識別番号を指定します。このフォームは、照会されるテキストファイルの表示に使用されます。この場合は、フォームのクラスが「０」でなければなりません。dbMAGICでは、この欄の設定を省略すると、デフォルトとしてタスクの［メインウィンドウ］が使用されます。

［フォーム］欄を指定するには、［フォーム一覧］にズームして、目的のフォームを選択します。新しいフォームの定義が必要な場合は、［フォーム一覧］から［フォーム］テーブルにズームします（「9.2 フォームテーブル」を参照）。

位置付

この欄は、［エディット］コマンドとは関係ないため、カーソルは、この欄には止まりません。

フロー

［フロー］欄は、［エディット］コマンドをオンラインタスクのレコードメインの処理テーブルに定義する場合にだけ指定できます。［フロー］欄を使用すると、エンドユーザのタスクのメインウィンドウでのカーソル移動に従って処理コマンドの実行を制御できます。

［フロー］欄には、［フローモード］欄と［カーソル方向］欄の２つの設定欄があります。

■	［フローモード］欄に設定できる値を「フローモードコード」と呼び、「Ｓ＝通常」、「Ｆ＝高速」、「Ｃ＝両用」（ＳとＦの組み合わせ）、「Ｂ＝前置」、「Ａ＝後置」があります。［エディット］コマンドでのデフォルト値は、「Ｓ＝通常」です。この欄にフローモードコードを直接入力したり、この欄からコンボボックスをズームして目的のフローモードコードを直接入力したりできます。「Ｂ＝前置」「Ａ＝後置」に設定する場合の動作は特殊で、両者をまとめて「ズームフローモード」と呼びます。実行時のタスクのフローモードとこの欄で設定してあるフローモードコードが一致する場合は「True」と評価され、その行の［エディット］コマンドが実行されます。

フローモードコードについての詳細は、「5.2 エンジンについての基本事項」を参照してください。

■	［カーソル方向］欄に設定できる値を「カーソル方向コード」と呼び、「Ｆ＝前方」「Ｂ＝後方」「Ｃ＝両方向」（ＦとＢの組み合わせ）があります。［エディット］コマンドでのデフォルト値は「Ｃ＝両方向」です。この欄にカーソル方向コードを直接入力したり、この欄からコンボボックスをズームして、目的のカーソル方向コードを選択したりできます。

カーソル方向コードについての詳細は、「5.2 エンジンについての基本事項」を参照してください。

条件

この欄では、この行で定義する［エディット］コマンドが実行されるかどうかを制御する設定を行います。この欄の評価が「True」の場合は実行され、「False」の場合は実行されません。以下に、この欄に設定できる値を示します。

■　Yes（デフォルト） … 常に「True」と評価され、この行で設定する［エディット］コマンドが実行されます。

■　No … 常に「False」と評価され、この行で設定する［エディット］コマンドは実行されません。

■　式番号 … 論理型の値を返す式を指定します。式の評価が「True」の場合はその行の［エディット］コマンドが実行され、「False」の場合は実行されません。式を定義するには、この欄から［式］テーブルをズームします。

使用上の注意

■	照会または編集する外部テキストファイルは、ディスク上の物理ファイルだけです。他のデバイスにはリダイレクトできません。

■	［エディット］コマンドを実行する場合は、照会または編集する外部テキストファイルがクローズされていなければなりません。つまり、他のアプリケーション、ネットワーク上の他のエンドユーザ、または親タスクでオープンされていてはなりません。

■	［エディット］コマンドは、対話型の処理です。この処理コマンドがバッチタスク内で使用されていても、エンドユーザはウィンドウと対話できます。


OSコマンド

目的

一時的にOSレベルに抜け出して外部プログラムを実行します。dbMAGICでは、［OSコマンド］に出会うと、現在のタスクの実行が中断され、一時的にOSに抜け出します。外部プログラムが終了すると、次の処理コマンドからタスクの実行が再開されます。

使用方法

OSレベルでの処理を実行してからdbMAGICに戻ります。たとえば、表計算やワードプロセッサに一時的に分岐できます。

設定欄

OSコマンド式の識別番号

この欄は必要に応じて使用します。ここには、OSレベルで実行させるプログラム名を返す式を指定します。デフォルト値の「0」をそのまま使用すると、OSレベルでのプログラム名を、［内容］欄に直接指定できます。

内容

これより前の［OSコマンド式］欄で式を選択すると、式の記述の最初の部分がこの欄に表示されます。カーソルはこの欄には止まりません。

［OSコマンド式］欄の値を「０」にすると、OSレベルで実行させるプログラム名を記述した文字列を［内容］欄に入力できます（引用符なしで指定）。この文字列は、通常はプログラム名だけですが、必要に応じてディレクトリパス名やオプションの引数を付加できます。文字列は、OSで許容される最大桁数または最大長までの長さに設定できます。

ウェイト

［ウェイト］欄では、dbMAGICがプログラムを続ける場合に、呼び出されているプログラムの完了を待つかどうかを設定します。

■　No … デフォルト値。呼び出されているプログラムの完了を待たないで、プログラムを続けます。

■　Yes … 呼び出されているプログラムが完了してから、プログラムを続けます。

画（画面）

［画］欄では、外部プログラムが表示される方法を設定します。「Ｈ＝なし」、「Ｎ＝通常」、「Ｘ＝最大化」、「Ｍ＝アイコン化」のどれかに設定します。

■　Ｈ＝なし … 外部プログラムを、現在表示されているウィンドウの裏で実行させます。外部プログラムは見えません。

■　Ｎ＝通常 … デフォルト値。外部プログラムがウィンドウ上で実行されます。

■　Ｘ＝最大化 … 外部プログラムはウィンドウ上で実行され、そのウィンドウが画面いっぱいに最大化されます。

■　Ｍ＝最小化 … 外部プログラムが最小化されて実行され、アイコン化されます。

注意： 外部アプリケーションを見えないように実行させる場合には、外部プログラムの標準出力メッセージを、画面からディスクファイルかヌルファイルにリダイレクトすることをお勧めします。

戻（戻りコード）

［戻］欄は、必要に応じて使用します。この欄では、［設定／動作環境］で指定するコマンドプロセッサから返される値を受け取る項目（数値型）を指定できます。

［戻］欄で［戻りコード］を受け取る項目として、変数項目を設定する場合は、［変数項目］テーブルで［数値型］として定義します。

フロー

［フロー］欄は、［OSコマンド］をオンラインタスクのレコードメインの処理テーブルに定義する場合にだけ指定できます。［フロー］欄では、処理コマンドの実行を、エンドユーザのタスクのメインウィンドウでのカーソル移動に従って制御できます。

［フロー］欄には、［フローモード］欄と［カーソル方向］欄の２つの設定欄があります。

■	［フローモード］欄に設定できる値を「フローモードコード」と呼び、「Ｓ＝通常」「Ｆ＝高速」「Ｃ＝両用」（ＳとＦの組み合わせ）「Ｂ＝前置」「Ａ＝後置」があります。［OSコマンド］でのデフォルト値は「Ｓ＝通常」です。この欄にフローモードコードを直接入力したり、この欄からコンボボックスをズームして、目的のフローモードコードを選択したりできます。「Ｂ＝前置」「Ａ＝後置」に設定する場合の動作は特殊で、両者をまとめて「ズームフローモード」と呼びます。実行時のタスクのフローモードとこの欄に設定しているフローモードコードが一致する場合は「True」と評価され、その行の［OSコマンド］が実行されます。

フローモードコードについての詳細は、「5.2 エンジンについての基本情報」を参照してください。

■	［カーソル方向］欄に設定できる値を「カーソル方向コード」と呼び、「Ｆ＝前方」「Ｂ＝後方」「Ｃ＝両方向」（ＦとＢの組み合わせ）があります。［OSコマンド］でのデフォルト値は「Ｃ＝両方向」です。この欄に［カーソル方向コード］を直接入力したり、この欄からプロンプトボックスをズームして目的の［カーソル方向コード］を選択したりできます。

カーソル方向コードについての詳細は、「5.2 エンジンについての基本事項」を参照してください。

条件

この欄では、この行で選択する［OSコマンド］が実行されるかどうかを制御する設定を行います。この欄の評価が「True」の場合は実行され、「False」の場合は実行されません。この欄に設定できる値を以下に示します。

■　Yes（デフォルト） … 常に「True」と評価され、この行で設定する［OSコマンド］が実行されます。

■　No … 常に「False」と評価され、この行で設定する［OSコマンド］は実行されません。

■　式番号 … 論理型の値を返す式を指定します。式の評価が「True」の場合はその行の［OSコマンド］が実行され、「False」の場合は実行されません。式を定義するには、この欄から［式］テーブルをズームします。


パラメータテーブル
［パラメータ］テーブル

［パラメータ］ウィンドウは、左側の［パラメータ］テーブルと、右側の［ビュー項目一覧］で構成されます。［ビュー項目一覧］には、［パラメータ］テーブルの［項目］欄からズームしてアクセスします。

［パラメータ］テーブルの各欄についての説明は、以下の項目を参照してください。

項目

式

変数項目の定義

呼び出し元タスクで［パラメータ］テーブルを定義する場合は、呼び出されるタスクでも、［変数項目］テーブルの先頭からパラメータに対応する変数項目を定義しなければなりません。これらの変数項目は、実行時にパラメータの値を受け取ります。

変数項目を定義するには、以下の手順で行います。

1.	呼び出されるタスクまたはプログラムのレコードメインの処理テーブルにアクセスします。

2.	処理テーブルで、呼び出し元タスクの［パラメータ］テーブルに定義するパラメータに対応させて［ビュー V=変数］コマンドを設定します。

注意： パラメータの値は、常に、呼び出されるタスクで定義される変数項目に渡されます。この場合は、処理テーブルで連続的に定義されている必要はなく、定義された順番で渡されます。dbMAGICでは、パラメータを受け取る場合に使用される変数項目が、必ずしもレコードメインの処理テーブルの先頭行から定義されていなくてもかまいません。ただし、プログラムを読みやすく、また保守しやすくするために、上記のように定義することをお勧めします。 呼び出されるタスクが、最も多くのパラメータを受け取るように設定しなければなりません。これは、パラメータとして渡される値によって、予想外の変数項目が上書きされてしまうことがあるためです。呼び出し元タスクは、呼び出されるタスクが受け取る予定のパラメータをすべて渡す必要はありません。最後の複数のパラメータを省略することもできます。

3.	［変数項目］テーブルにアクセスして、呼び出し元タスクの［パラメータ］テーブルに定義した項目と同じ順に、その項目と対応する変数項目を型と書式が一致するように定義します。

呼び出されるタスクでの変数項目名は、呼び出し元タスクの対応するパラメータ名と同じでなくてもかまいません。たとえば、呼び出されるタスクの変数項目に、渡されるパラメータ名に「Ｐ－」や「（パラ）」などのタグを付けた名前を付けると、パラメータ受け渡し用の変数項目であることが判別しやすくなります。

dbMAGICがパラメータを渡す方法

dbMAGICでは、以下の２つの方法で実行時にパラメータ値が渡されます。

1.	dbMAGICでは、実行時に「コールタスク」または「コール式」に出会うと、現在のタスクの［パラメータ］テーブルのパラメータの現在の値が、呼び出されるタスクの［変数項目］テーブルの対応する項目へ順に複写されます。

呼び出されるタスクの変数項目には、呼び出し元タスクから渡される値が転記されます。これらの項目は、呼び出されるタスクで自由に使用できます。

2.	呼び出されるタスクが終了すると、パラメータの内容を受け取るときに使用された変数項目は、呼び出し元タスクのパラメータの項目のすべてにふたたび複写されます。呼び出されるタスクにデータを渡すために式をパラメータとする場合には複写は行われません。つまり、すべてのパラメータは、対になる呼び出されるタスクの変数項目の変更を反映します。これが、通常「項目渡し」と呼ばれるパラメータ渡しの効果です。一方、パラメータが式の場合は、一方向にだけ機能します。つまり、パラメータの値は、呼び出されるタスクで使用されますが、呼び出されるタスクで発生した変更は呼び出し元タスクには反映されません。

これが、「値渡し」と呼ばれる パラメータ渡しの効果です。

パラメータ項目は、呼び出されるタスクの対応する変数項目の変更を受け取るために、呼び出し元タスクでは、［ビュー］コマンドと［リンク］コマンドのところで説明した規則に従って、「代入式」および「リンク式」が再計算されることがあります。呼び出されるタスクで値が変更される原因としては、エンドユーザによる入力または［項目更新］コマンドによる変更が考えられます。変更ずみのパラメータ項目が画面に表示される場合に、その画面は、呼び出されたタスクから呼び出し元タスクに戻るとすぐにリフレッシュされます。


項目

［項目］欄には、サブルーチンに値を受け渡しするときに使用するパラメータ項目を識別するシンボル名が表示されます。このパラメータを渡す方法は、「項目渡し」と呼ばれます。もう１つの方法は、［式］の項目で説明する「値渡し」です。

［ビュー項目一覧］にズームして目的の項目を選択するか、項目のシンボル名を直接入力します。項目のシンボル名がこの欄に表示され、項目名は［名前］欄に表示されます。

パラメータとして定数値を渡す場合には、［項目］欄を「??」（デフォルト値）にして［式］欄に進みます。

［項目］欄は、すでに［式］欄で式を定義している場合には、カーソルはこの欄には止まりません。

注意：［＃］欄には、dbMAGICによって自動生成される通し番号が表示されます。カーソルは、この欄には止まりません。


式

［式］欄は、式を使用して定数値をサブルーチンに渡すとき使用します。これが、「値渡し」と呼ばれるサブルーチンにパラメータを渡す方法です。このパラメータでは、サブルーチンからデータを受け取れないことに注意してください。式番号がこの欄に表示され、［名前］欄には式の記述の最初の部分が表示されます。［式］テーブルをズームして、既存の式を選択したり、新規に式を定義したりできます。

［式］欄は、［項目］欄ですでに項目がパラメータとして定義されている場合、カーソルはこの欄には止まりません。パラメータとして式を使用する場合には、［項目］欄のシンボル名を削除して「??」（デフォルト値）にします。

注意：［名前］欄には、パラメータが［項目］か［式］のどちらであるかによって、項目の名前か式の記述の最初の部分が表示されます。カーソルは、この欄には止まりません。