新機能

  • 開発エンジンと実行エンジンの分離

  • [タスク]エディタ

  • [式]エディタ

  • バージョン管理

  • タブ順序

  • デバッガ

  • MDIとSDI のサポート

  • GUI エンハンサーウィザード

  • ビルダデータコンバータ

  • プログラムメニューの拡張

  • インタフェースビルダ

  • コンポーネントジェネレータ

  • ユーザ定義関数

  • [ブフォーム]コントロール

  • 項目変更

新機能

Magic eDeveloper V10 は、多くの新機能や改善機能を提供します。例えば、エンジンの実行内容が拡張されたり、プロジェクト開発、バージョン管理、およびデバッグ機能などが組みこまれています。これによって、より強力なRAD 開発／実行環境でアプリケーションを開発することができます。

Magic eDeveloper V10の新機能と拡張機能には以下のものがあります。

  • 開発機能の拡張

  • アプリケーションインタフェース

  • 複合アプリケーション開発

  • XML連携

  • Unicodeのサポート

  • RADD機能の拡張

  • イベント処理

  • Date-Time型のサポート

  • リッチクライアントアプリケーション

Magic V9Plusのアプリケーションを移行する方法については、「マイグレーション」を参照してください。


Magic eDeveloper® V10リファレンスガイド

Magic eDeveloper® V10は、大規模で、複雑なアプリケーションを短期間に開発したりカスタマイズすることができるユニークな開発環境です。

Magic eDeveloper V10では、アプリケーションに必要な機能（データ構造、ビジネスルール、プログラムロジック、および表示機能が含まれています。）をテーブル上で、ポイント＆クリックすることで組みこむことができます。コーディングしたりスクリプトを記述する必要がありません。

Magic eDeveloper V10リファレンスガイドは、Magicを使用して開発する上で必要なトピックをまとめたものです。このリファレンスガイドは、以下の章で構成されています。

ナビゲータとワークスペース

プロジェクトとアプリケーション

設定

モデル

Magicエンジン

データソース

プログラム

データビューエディタ

ロジックエディタ

フォームエディタ

式エディタ

表示フォーム

出力フォーム

データ管理

メニューとヘルプ

ソース管理

Unicodeサポート

アプリケーションのテスト

認証システム

コンポーネント

XML連携

COM オブジェクトサポート

Javaとの連携

Web 開発

Webサービス

接続性

メッセージング

エンドユーザ機能

分散アプリケーション

マルチユーザ環境

ユーティリティ

アプリケーション開発

開発リソース

  • このヘルプやホワイトペーパを含むMagic関連のドキュメントは、MSJ のホームページにもあります。

  • Magic eDeveloperのヘルプには、以下のセクションも含まれています。

  • マイグレーション

  • トラブルシューティング

  • Magic Studio を起動すると、MSJのサイトにある最新のリファレンスヘルプにアクセスすることもできます。

Magicの教育

  • Magicスキルアップセンターから入手できるドキュメントを利用して学習することもできます。

  • MSJでは、各製品に対応した有償/無償のセミナーも開催しております。

  • プロフェッショナルサービス

  • トレーニング

Magicの製品サポート

各製品に対するサポート契約を利用することで、さまざまなサービスを受けることができます。

©2008


ナビゲータ

[ナビゲータ]ペインと[ワークスペース]ペイン

Magic eDeveloper V10には、ダイナミックな開発リポジトリと、以下のような[ナビゲータ]、[特性シート]、[コメント]の各ペインがあります。Magicは、Microsoft Windows 2000やXP と互換性のあるGUIを使用しています。

参照

[ナビゲータ]ペイン

[特性]シート

チェック結果

[コメント]ペイン

ステータスライン

モジュール

ペインの切り替え

ペインの統合

リポジトリの操作

ショートカットキー


ナビゲータ ナビゲータペイン

[ナビゲータ]ペイン

ナビゲータとワークスペース >

[ナビゲータ]ペインは、MDI（Multiple Document Interface）画面で、これを使用してプロジェクトを操作することができます。

[表示/ナビゲータ]（Alt+F1）をクリックすることで、[ナビゲータ]ペインが開いたり閉じたりします。通常は、左側に表示されます。開発モードから実行モードに切り替えたり、プログラムを実行させると自動的に閉じます。

[ナビゲータ]ペインには、次の4つのオプションがあります。

リポジトリ | プロジェクトのメインリポジトリを表示します。モデル、データ、プログラム、ヘルプ、権利、メニュー、およびコンポーネントがあります。リポジトリビューには、各リポジトリ内の登録数がブラケットに囲まれて表示されます。
タスク | 選択したプログラムの編集時に、プログラムのタスクツリー（メインタスクとそのサブタスク）が表示されます。タスク上でパークし、編集→行作成（または、コンテキストメニューから[行作成]）を選択することで、サブタスクを作成することができます。タスク上でパークし、編集→ツリー→親を作成（または、コンテキストメニューから[親を作成]）を選択することで、タスクの親タスクを作成することができます。
クロスリファレンス | オブジェクトがどこで使用されるかを検索するためのクロスリファレンスユーティリティを実行することができます。このオプションを選択すると、今までの検索結果が表示されます。
ブックマーク | オブジェクトのブックマークを定義することができます。[ブックマーク]オプションを選択すると、ブックマークが定義されているオブジェクトが表示されます。
モジュール | モジュールとして定義するプロジェクトを既存のプロジェクトに追加することができます。モジュールオプションを選択すると、現在のプロジェクトにモジュールとして追加されている取り決められが表示されます。


ナビゲータ 特性シート

[特性]シート

ナビゲータとワークスペース >

[特性]シートは、選択されたオブジェクトの特性を表示します。

[表示]メニューから[特性シート]をクリックすると、選択したオブジェクトの特定の特性を表示することができます。表示は、区分毎と名前順の２通りで表示されます。

[特性]シートは、以下のオブジェクトで有効です。表示される特性値は、オブジェクトによって異なります。

  • モデル

  • データソースのカラムやプログラム内のローカル変数

  • フォーム

  • コントロール

  • ヘルプ画面

[特性]シートで値を設定する場合、複数のオブジェクトをマルチマーキングすることで、同じ特性の値を同時に変更することができます。

[区分]と[全体]の各タブをクリックすることで表示の順番を切り替えることができます。

［特性］シートの操作

Ctrl+↑/↓のカーソルキーを押下することで別のセクションに移動することができます。

フォーカスが[特性]シートにある場合、[編集→ツリー]メニューから以下のオプションを実行させることができます。

  • 全て展開 …… 全てのセクションの内容が展開表示されます。

  • 全て縮小 …… 全てのセクションの内容が縮小表示されます。

  • 次のセクション …… 現在のセクションの次（下）にカーソルが移動します。

  • 前のセクション …… 現在のセクションの前（上）にカーソルが移動します。


ナビゲータ コメントペイン

[コメント]ペインの例

[コメント]ペイン

ナビゲータとワークスペース >

[表示]メニューの[コメント]（Alt+F12）を選択すると[コメント]ペインが表示されます。

[コメント]ペインには、選択されたオブジェクトのコメントが表示されます。


ナビゲータ チェック結果

[チェック結果]ペイン

ナビゲータとワークスペース >

[チェック結果]ペインには、構文チェックのチェック結果が表示されます。[表示]メニューから[チェック結果]をクリックするか、Alt+F3で、チェックペインにアクセスできます。

[動作環境]ダイアログの[動作設定]タブにある[開発時の最小チェックレベル]や[メッセージのグループ化]を設定することで、エラーレベルを指定したり、メッセージをどのようにグループ化するかを設定できます。

チェック結果は、ツリー形式で表示されます。ツリーのレベルは、オブジェクト毎、メッセージタイプ毎、または両方が組み合わされてソートされます。

[チェック結果]ウィンドウは、Magic のMDI 画面とドッキングしたり、独立したフローティング表示にさせたり、特性シートやナビゲータに結合することができます。

詳細は、「構文チェックユーティリティ」の説明を参照してください。


ナビゲータ ステータスライン

ステータスラインの例

ステータスライン

ナビゲータとワークスペース >

ステータスラインは、開発/実行時のウィンドウの下辺に表示されます。

ステータスラインは、いくつかの領域に分かれています。

  • #1 …… このエリアには、プロジェクト/アプリケーションがオープンされていない状態の場合、開発エンジン（スタジオ）か実行エンジンのどちらで動作しているかが表示されます。プロジェクト/アプリケーションをオープンすると表示は消えますが、StatusBarSetText関数を使用することで、任意のテキストを表示させることができます。

  • #2 …… ログイン処理が実行された場合、[ロギング]ボックスにログインしたユーザ名が表示されます。

  • #3 …… [データビューモード]ボックスには、タスクの実行モード（修正、登録、照会）が表されます。

  • #4 …… [ズーム]ボックスは選択されたオブジェクトにズームできるかどうかを表示します。

  • #5 …… [広域/通常]ボックスは、通常の編集モードか広域表示の編集モードかを表示します。

注意：

このボックスは、文字入力のカラムでのみ有効です。

  • #6 …… [挿入/上書]ボックスは、編集時の入力モードを表示しています。


プロジェクト モジュール

モジュール

プロジェクトとアプリケーション > プロジェクト開発

Magic eDeveloper V10では、プロジェクトモジュールを設定することができます。

プロジェクトをモジュールとして登録することで、（コンポーネント用など）関連するプロジェクトをビジュアルに表示したり、あるプロジェクトから別のプロジェクトへの移動を簡単に行うことができます。

以下の２つの方法でモジュールとしてプロジェクトを追加することができます。

  • 新規プロジェクトを作成し、既存のプロジェクトにモジュールとして追加……[新規プロジェクト]ダイアログボックスで、[現在のプロジェクトにモジュールとして追加する]というチェックボックスを選択すると、現在のプロジェクトにプロジェクトが追加されます。

  • モジュールをプロジェクトに追加……既存のプロジェクトを開き、[プロジェクト]メニューから、[モジュール追加]を選択します。

モジュールを移動するには、[表示]メニューを開き、[ナビゲータ]を選択し、[ナビゲータ]ペインから「モジュール」を選択します。詳細は、「プロジェクト間の操作」を参照してください。


モジュール プロジェクト間の操作

プロジェクト間の操作

ナビゲータとワークスペース > モジュール

プロジェクト間での移動を行う場合、ナビゲータを使用することができます。

ナビゲータのコンボボックスで[モジュール]をクリックすると、プロジェクトのモジュールツリーが表示されます。別のプロジェクトに移動すると、前のプロジェクトはクローズされ、プロジェクトモジュールの表示が以下のように変更されます。

  • 現在のプロジェクト名は、角括弧に囲まれて表示されます。

  • モジュールツリーでは、以下のアイコンが表示されます。

モジュールが、現在（オープンされている）のプロジェクトであることを示します。

モジュールが、クローズされていることを示します。

ノードを拡張します。

ノードを縮小します。

ノード間での操作によって、パークされたプロジェクトへの切替は自動的には行われません。

異なるプロジェクトに切り替えるには、そのプロジェクトをダブルクリックする必要があります。この操作により、前のプロジェクトが閉じ、選択されたプロジェクトが開きます。選択されたプロジェクトのモジュールを表示するためにモジュール表示が切り替わります。

+ キーを押下するとノード表示が拡張され、- キーを押下すると表示が縮小されます。

モジュールのリネームと削除

[モジュール]ノードの名前を変更したり、削除するには、[モジュール]ノード上でパークし、右クリックしてコンテキストメニューから[ノード編集]や[ノード削除]を選択してください。

[モジュール]ノードの名前を変更しても、プロジェクトディレクトリ名やプロジェクトファイル名に影響しません。

ノードをツリーからから削除しても、プロジェクトディレクトリやファイルは削除されません。


ナビゲータ ペインの切替

ペインの切り替え

ナビゲータとワークスペース >

[表示]メニューから[ペインの切替]をクリックすると、カーソルを[ナビゲータ]ペインから対応するリポジトリに移動します。

Ctrl+Tab キーを押下することで、各ペインとMagicのワークスペース間で切り替わります。切り替わる順序は、[ナビゲータ]、[特性シート]、[コメント]、[ワークスペース]ペインの順です。

ペインが統合されて表示している場合は、前面に表示されているペインのみ表示されます。


ナビゲータ ペインの統合

ペインの統合

ナビゲータとワークスペース >

[ナビゲータ]、[特性シート]、[コメント]の各ペインは、[ワークスペース]ペインに統合されたり、分離して表示させるようなことができます。

各ペインが統合して表示されている場合、各ペインのタブが表示され、このタブをクリックすることでペインを指定できます。[表示]メニューからペインを選択することもできます。

以下のキー操作で切り替えることもできます。

  • Alt+F1 …… [ナビゲータ]ペイン

  • Alt+F2 ……[特性シート]ペイン

  • Alt+F12 ……[コメント]ペイン

２つの表示を１つのウィンドウ内にまとめたい場合は、どちらかをドラッグして他方にドロップしてください。２つのオプションタブがウィンドウの下に表示されます。このタブで、ペインを切り替えることができます。

統合されたペインを分離するには、Ctrlキーを押しながらペインのタイトルをドラッグしてください。

統合されたウィンドウは、Magic のウィンドウの境界にそって表示されるか、フローティングウィンドウで表示されます。

オブジェクトが選択された時、Aｌｔ+F1などの組み合わせキーを押下することで該当するオブジェクトを閉じることができます。


ナビゲータ リポジトリ操作

リポジトリの操作

ナビゲータとワークスペース >

リポジトリとは、Magic の基本的な画面のことです。それぞれのMagic リポジトリは、スプレッドシートのようなグリッドに分割されています。各リポジトリは、カラムと行を持っています。

リポジトリ内の特定のカラムで、選択一覧や詳細ウィンドウにズームし、カラム内に設定するデータを選択することができます。選択したセル上にカーソルが位置付けされると、「ズーム」という文字がメッセージ行に表示されます。

一覧から選択しなくても、直接データを入力することもできます。カーソルは、次の文字がどこに入力されるかを示します。

選択一覧のデータには、事前に用意されているものもありますが、ユーザがリポジトリのセルにデータを入力した場合は、そのデータがオプションとして一覧に表示されます。この場合のオプションは、さらに別のリポジトリに進みたい時に使用します。一覧は、リポジトリのセルをダブルクリックすると表示されます。

テキストの入力

リポジトリの入力欄のデータは、一覧から選択するほか、直接入力することもできます。データとしては文字列または数値を入力できます。入力する場合は、カーソルを入力欄に置き、文字列や数値を入力します。

カラムの編集

カーソルは、常に編集可能なカラムに止まっています。そのカラムで、入力を開始すると同時に、Magic のエディタが起動します。編集中は、カーソルキーやマウスを使用してカーソルをカラム上で移動できます。

カラムによっては、入力可能な文字数が表示幅より広いことがあります。こういったカラムにカーソルを置くと、広域表示が自動的に有効になるとともに、メッセージ行に[広域]と表示されます。ここで、[広域]表示をクリックするか、[編集／広域]（F6）を選択すると、[広域ウィンドウ]が開きます。このウィンドウは、カラムの横にドロップダウンウィンドウとして表示されます。

カラムのデータは、[広域ウィンドウ]以外でも、その幅いっぱいに入力することができます。[広域ウィンドウ]でない場合、データがカラムの幅より長いと、その部分は表示されません。ただし、入力時に、内容は自動的にスクロールします。これに対して[広域ウィンドウ]では、カラムのデータは全て表示され、その状態で入力が可能です。

参照

カーソルの移動

マルチマーキング機能

登録

フォルダ

ブックマーク

コメントボックス

検索と置換

クイックアクセス

ツリー

組み合わせキー


ナビゲータ リポジトリ操作 カーソル移動

カーソルの移動

ナビゲータとワークスペース > リポジトリの操作

移動先 | キー
カラムの先頭 | Home
カラムの最後 | End
前のページ | PageUp
次のページ | PageDown
リポジトリまたはダイアログの先頭 | Ctrl+Home
リポジトリまたはダイアログの最後 | Ctrl+End
行の最後 | Alt+ →
行の先頭 | Alt+ ←


ナビゲータ リポジトリ操作 マルチマーキング機能

マルチマーキング機能

ナビゲータとワークスペース > リポジトリの操作

マルチマーキング機能を利用すると、同時に複数の項目の処理を実行することができます。マルチマークの処理には、レコードの削除や構文のチェックなどの処理も含まれます。

マーキングの方法

複数の項目をマークするには、以下の方法を使用します。

キーボードを使用して継続的に選択する

  1. 最初の項目にパークします。

  2. Shiftキーを押下します。

  3. マークしたいすべての項目が選択されるまで、↓キーを押下し続けます。

キーボードとマウスを使用して継続的に選択する

  1. 最初の項目にパークします。

  2. Shiftキーを押下します。

  3. マークしたいすべての項目の行番号をマウスでクリックします。

マウスを使用して断続的に選択する

  1. Ctrlキーを押下します。

  2. マークしたいすべての項目の行番号をマウスでクリックします。


ナビゲータ リポジトリ操作 フォルダ

フォルダ

ナビゲータとワークスペース > リポジトリの操作

フォルダは、[ナビゲータ]ペインの[リポジトリ]セクションで各リポジトリの下に表示されます。それぞれのフォルダは、関連リポジトリオブジェクトのグループを表します。また、F4を押下することによりフォルダを作成するができます。

フォルダツリーでは次のことを実行することができます。

  • フォルダの表示／非表示

  • フォルダ名の入力

  • フォルダ内のオブジェクト数の表示

フォルダは、リポジトリ内のエントリを整理するためのオブジェクトです。例えば、あるフォルダにはテーブル10 から13、別のフォルダにはテーブル14 から27 を格納することができます。

各リポジトリには多数のフォルダを含めることができます。それぞれのフォルダには、リポジトリ内のエントリが一定範囲において連続している必要があります。ユーザがあるフォルダから別のフォルダにエントリをドラッグアンドドロップすると、Magic はそのエントリに自動的に番号を割当て直し、一覧表示した場合にエントリが連続されるようにします。

エントリをフォルダに保存する必要はありません。それぞれのエントリはエントリ一覧の最上位に表示され、リポジトリ全体を展開すると表示されます。

以下のリポジトリにフォルダを作成することができます。

  • データ

  • プログラム

  • ヘルプ

  • 権利

  • モデル

  • コンポーネント

フォルダを指定するには、リポジトリ内のフォルダのカラムをクリックしてください。

フォルダには次のような特徴があります。

  • [ナビゲータ]ペイン内でフォルダ上にカーソルを置くと、フォルダの作成（F4）、削除（F3）、または名前変更ができます。重複するフォルダ名は指定できません。

注意：

フォルダの削除前に、他のフォルダに移動するなどしてフォルダ内を空にしておく必要があります。バージョン管理を使用している場合、最初にリポジトリをチェックアウトする必要があります。

  • [フォルダ]カラム内に表示されるフォルダ名をクリックすると、あるフォルダから別のフォルダにオブジェクト項目を移動できます。必要なフォルダをリストボックスから選択してください。

  • ユーザ定義フォルダ内で[位置付]ダイアログを開くと、プログラムの名前、フォルダ、公開プログラム名などを入力するよう求めるメッセージが表示されます。

  • 別のフォルダ内でエントリにアクセスしても、現行のフォルダは変更されません。フォルダを変更するには、[フォルダ]カラムで別のフォルダを選択してください。

  • [データ]リポジトリでAPGを実行する際に、フォルダ名を指定することで指定したフォルダ内にプログラムを作成することができます。


ナビゲータ リポジトリ操作 ブックマーク

ブックマーク

ナビゲータとワークスペース > リポジトリの操作

[オプション]メニューの[ブックマーク]をクリックするか Ctrl+Shift+B で、オブジェクトにブックマークを定義することができます。

[ナビゲータ]ペインの[ブックマーク]セクションには、ブックマークが定義されたオブジェクトが表示されます。

ブックマークには次のような特徴があります。

  • ブックマークエントリは作成した順序で表示されます。

  • ブックマークは[ブックマーク]ペインで削除できます。

[動作環境]ダイアログの[動作設定]タブにある[ブックマークの最大登録数]環境特性で、保存するブックマーク数を設定できる。


ナビゲータ コメントボックス

コメントボックス

ナビゲータとワークスペース >

Magicは、プロジェクト内のオブジェクトにコメントを記入することができます。

[オプション]メニューから[コメント]をクリックするか、F12をクリックするとプロジェクト内のオブジェクトに対する[コメント]ボックスが開きます。以下のオブジェクトでコメントにアクセスすることができます。

カラム | ヘルプ | 範囲／位置付
コンポーネント | インデックス | 権利
埋め込みSQL | 入出力 | データソース
イベント | 変数項目 | タスク
外部キー | モデル |
ハンドラ | プログラム |

コメントは、[コメント]ペインに表示されます。Alt+F12 を押下することで[コメント]ペインが開きます。

コメントには次のような特徴があります。

  • [コメント]ボックスには、最大1,000桁までの文字を入力することができ、サイズも変更することができます。

  • オブジェクトのコメントは、Magicアプリケーションのソースファイルに保存されます。コメントテキストは、キャビネットファイル（ecf）には保存されません。


ナビゲータ リポジトリ操作 登録

登録

ナビゲータとワークスペース > リポジトリの操作

[編集]メニューの[登録]には、サブメニューとして以下のオプションがあります。

オプション | ショートカット | 説明
複写登録 | Ctrl+Shift+R | 現在の行に指定した範囲の行を複写し挿入します。
移動登録 | Ctrl+Shift+M | 現在の行に指定した範囲の行を移動し挿入します。
上書登録 | Alt+Shift+O | 現在の行を指定した行で上書きします。


ナビゲータ リポジトリ操作 複写登録

複写登録

ナビゲータとワークスペース > リポジトリの操作 > 登録

複写登録オプションは、1つ以上のオブジェクトをコピーする機能です。

オブジェクトをコピーするには、以下のようにします。

  1. テーブル内のコピーしたい行にパークします。

  2. 複写登録オプションを選択します。

  3. [複写登録]ダイアログには、現在の行（強調表示されている行）の後ろの位置にコピーするテーブル内の連続する行範囲を指定します。行番号を直接入力することも、ダイアログをダブルクリックして（またはF5キーを押下して）選択リストを表示することもできます。

  4. テーブル内の行番号は再設定されます。


ナビゲータ リポジトリ操作 移動登録

移動登録

ナビゲータとワークスペース > リポジトリの操作 > 登録

[移動登録]オプションを使用すると、テーブル内のある行から別の行にオブジェクトを移動させることができます。オブジェクトを移動しても、関連するリンクは保持され、テーブルの行番号は再設定されます。

[移動登録]ダイアログには、現在の行（強調表示されている行）の後ろの位置に移動するテーブル内の連続する行範囲を指定します。テーブル内の行番号は再設定されます。行番号を直接入力するか、ズーム（F5）してフォーム一覧のような選択リストを表示して行番号を選択します。

オブジェクトを移動するには以下のようにします。

  1. 移動先の行にパークします。

  2. [移動登録]のオプションを選択します。

  3. 移動したい行（複数可）を指定します。直接行番号を入力するか、ズームして選択一覧から行を選択します。

  4. 移動したオブジェクトがパーク行の下に追加されます。

  5. 行を移動すると行番号は再設定されます。


ナビゲータ リポジトリ操作 上書登録

上書登録

ナビゲータとワークスペース > リポジトリの操作 > 登録

[上書登録]オプションを使用すると、現在の行の内容が失われ、上書きされた行の内容によって置き換えられます。現在の行に対して定義されたリンクは保持されます。

[上書登録]ダイアログには、現在の行（強調表示されている行）を上書きするデータ内の行の番号を指定します。現在の行は選択した行によって上書きされ、失われることに注意してください。ズーム（F5）することで、リポジトリ内のオブジェクトの選択一覧を表示させ、そこから行を選択することができます。

オブジェクトを上書きするには以下のようにします。

  1. 上書きする行にパークします。

  2. [上書登録]のオプションを選択します。

  3. 上書きしたい行を指定します。直接行番号を入力するか、ズームして選択一覧から行を選択します。

  4. 移動したオブジェクトがパーク行の下に追加されます。

  5. 現在の行の内容が指定された行番号の内容に置き換えられます。

[データ]リポジトリでは、上書きされることによりオブジェクトの内部番号(ISN)をどのように扱うかを指定することができます。ダイアログの[拡張]ボタンをクリックすることで以下のオプションが選択できます。

  • ISN を保持するデータソース……上書きされるデータソースか上書きするデータソースかを選択できます。

  • R=上書きされるデータソース……上書きされるデータソースのISN を保持します。この場合、このデータのカラムやインデックスを定義しているプロジェクトにおいて定義内容が変更されることはありません。ただし、上書きするデータのカラム数やインデックス数が異なる場合、後述する[カラムとインデックスの照合方法]欄を正しく指定する必要があります。

  • W=上書きするデータソース……カラムとインデックスのISN は、上書きするデータソースの値で再設定されます。同じプロジェクトの中で、このデータを使用しているプログラムがなく、上書するデータのカラムやインデックスを使用しているプログラムをリポジトリ入力する場合はこちらを選択してください。

  • カラムとインデックスを照合方法……このオプションは、ISNをどのように保持するかに影響します。

  • S=並び順 ……上書きされるデータソースのカラム番号やインデックス番号に対応したISN を保持します。このオプションは、カラム（及びインデックス）の構成が同じか、上書きするデータのカラム（及びインデックス）が最後に追加されている場合に指定してください。

  • N=DB名 …… SQL系のRDBMSを使用している場合のみ有効です。上書きされるデータソースのDB名に対応したISN を保持します。

  • D=カラム名/インデックス名 ……上書きされるデータソースのカラム名（及びインデックス名）に対応するISN が保持されます。このオプションは、上書きするテーブルの新しいカラムが途中行に追加されている場合に指定してください。
    複数のカラム/インデックスが上書きされたデータソース内の同じ内容によって存在している場合、一番目のISNを取得します。
    複数のカラム/インデックスが上書きしたデータソース内の同じ内容によって存在している場合、２番目は、上書きされたデータソースから最も高いISNに基づいて新しいISNを取得します。
    カラム/インデックスの内容が書きされたデータソースの中に存在していない場合、カラム/インデックスは上書きされたデータソースの中で最も高いISNに基づいて新しいISNを取得します。


ナビゲータ リポジトリ操作 検索と置換

検索と置換

ナビゲータとワークスペース > リポジトリの操作

[編集]メニューの[検索と置換]には、サブメニューとして以下のオプションがあります。

オプション | ショートカット | 説明
クロスリファレンス | Ctrl+F | Magicのオブジェクトがどこで使われているかを検索します。
オブジェクトの置換 |  | 同じタイプのオブジェクトであれば置換することができます。置換したいオブジェクトにパークし、これをどのオブジェクトに変換するかを指定します。
テキスト検索 | Alt+Ctrl+F | プロジェクト内で使用されているテキストを検索することができます。
テキスト置換 |  | プロジェクト内で使用されているテキストを別のテキストに置換できます。
検索結果の保存 |  | 検索結果にパークして、このオプションを選択すると結果を保存します。
検索結果の印刷 |  | 検索結果にパークして、このオプションを選択すると結果を印刷します。


ナビゲータ リポジトリ操作 クロスリファレンス

クロスリファレンス

ナビゲータとワークスペース > リポジトリの操作 > 検索と置換

[ナビゲータ]ペインには、クロスリファレンスの結果を表示するセクションがあります。各一覧には、クロスリファレンス中に見つかった全てのオブジェクトが表示されます。

[編集]メニューから[検索と置換／クロスリファレンス]をクリックするか、Ctrl+F で[クロスリファレンス]ダイアログが表示されます。

クロスリファレンスの検索結果には、[クロスリファレンス]ダイアログ内で選択されたオブジェクトが一覧表示されます。

結果エントリをクリックすると、対応するリポジトリと選択したエントリが表示されます。

クロスリファレンスには次のような特徴があります。

  • 検索結果は、[クロスリファレンス]セクションでF3キーを押下することで削除することができます。

  • [クロスリファレンス]セクションには、複数の結果セットを保存できます。

詳細は、「クロスリファレンス」を参照してください。


ナビゲータ リポジトリ操作 クイックアクセス

クイックアクセス

ナビゲータとワークスペース > リポジトリの操作

[編集]メニューの[クイックアクセス]には、サブメニューとして以下のオプションがあります。

オプション

ショートカット

説明

位置付

Ctrl+L

指定された文字列で検索され、カーソルは一致する最初の行に移動します。例えば、最初の[項目更新]処理コマンドに位置付けたいのであれば、「項目更新」と入力することで位置付けられます。

正規表現を使用して位置付けることができます。

任意の数の文字を表すワイルドカードとして「*」を、1文字のワイルドカードとして「$」または「?」を使用することができます。

次に位置付

Ctrl+N

カーソルは、指定された文字列と一致する次の行に移動します。

行ジャンプ

Ctrl+J

カーソルは、[データビュー]エディタや[ロジック]エディタ内の指定された行に移動します。

フォルダ指定

Ctrl+Shift+J

カーソルは、指定されたフォルダに移動します。

次のヘッダ行

Alt+Ctrl+N

カーソルは、[データビュー]エディタや[ロジック]エディタ内の次のヘッダ行に移動します。

前のヘッダ行

Alt+Ctrl+P

カーソルは、[データビュー]エディタや[ロジック]エディタ内の前のヘッダ行に移動します。

照合移動

[ロジック]エディタ内のロジックユニット行にパークしている時に、カーソルは対応するロジックユニットに移動します。

対応するロジックユニットは以下の通りです。

  • タスク前 - タスク後

  • レコード前 - レコード後

  • グループ前 - グループ後

  • コントロール前 - コントロール検証 - コントロール後

  • [ブロック]処理コマンド ： If/While - End

参照に移動

[データビュー]エディタ内の項目行にパークしていて、[RM互換]ロジックが定義されている場合、このオプションによって[RM互換]ロジックに切り替わり、対応する項目にカーソルが移動します。

定義に移動

[RM互換]ロジック内の参照項目にパークしている時、このオプションによって[データビュー]エディタに切り替わり、対応する項目上にカーソルが移動します。


リポジトリの操作 クイックアクセス 正規表現

正規表現

ナビゲータとワークスペース > リポジトリの操作 > クイックアクセス

正規表現は、「メタ文字」と呼ばれる特殊な起動を使用して文字列を検索する手段です。Magicは、正規表現の標準的な構文を利用することができます。

開発エンジンでの、位置付機能やテキスト検索機能にて、正規表現を使用することができます。

探索文字列が簡単な文字列ではなく、正規表現の構文であることを示すために、ダイアログボックス内で[正規表現]のチェックボックスを選択してください。

正規表現の構文では、多くのメタ文字を使用することができます。

以下は、正規表現において使用できる一般的なメタ文字の一覧です。

対応する例は、各メタ文字の下に表示されます。

[ ] | ブラケット | 文字のセットを表します。 “VAR[1-3] “ は、サブ文字列: “VAR1“,“VAR2“, と“VAR3“ を含んだ行に位置付けます。
. | ドット | どのような文字または文字のセットとも一致します。 “a..b“ は、aで始まり、bによって終わるあらゆる4文字のサブ文字列が含まれた行に位置付けられます。例えば：“aaab“、“aabb“、“afkb“、“a2vb“、 etc.
^ | キャレット | 文字列の開始と一致します。 “^Update“ は、サブ文字列“Update” で始まるあらゆる行に一致します。
$ | ダラー | 文字列の終了と一致します。 ”No$” は、サブ文字列“No”で終了するあらゆる行に一致します。例：Cnd: No”.
* |  | 直前の文字が0回以上一致します。 “^Update.*Code" は、Update”で始まり、その後の文字列内にサブ文字列Code”が含まれている行に一致します。
+ |  | 直前の文字が1回以上一致します。 “Code_X+0” は、“Code_”で始まり、1つの“X” または、複数の“0”が続いているサブ文字列が含まれている行に一致します。例： “Code_X0”, “Code_XX0”, “Code_XXX0”, etc.
? |  | 直前の文字が0回または1回一致します。 “Code_X?0” は、“Code_”で始まり、0または1つの“X” と“0”が続いているサブ文字列が含まれている行に一致します。例： : “Code_0”, “Code_X0” . “Code_XX0” では検索できません。
\ |  | 直後の文字をエスケープします。 “Code_X\?0” は、明示的なサブ文字列“Code_X?0”が含まれている行に一致します。
| | パイプ | 論理的なOR定義。両方の文字に一致します。 “^Update|^Evaluate” は、開始文字が“Update” または“Evaluate”のどちらの行にも一致します。
{n} | ブレース | 直前の文字がn回一致します。 “Alpha [0-9]{3}” は、“Alpha “ で始まり、３桁の組み合わせが続くサブ文字列を持つ行に一致します。例：“Alpha 100”, “Alpha 256”, etc.
( ) | バーレーン | ブラケット内のどのような文字列があっても一致します。 “(Alpha|Numeric) [0-9]{2} ” は、“Alpha “ または“Numeric”で始まり、３桁の組み合わせが続くサブ文字列を持つ行に一致します。例： “Alpha 20 ”, “Alpha 25 ”, “Numeric 12 ”etc.


ナビゲータ リポジトリ操作 ツリー

ツリー

ナビゲータとワークスペース > リポジトリの操作

[編集]メニューの[ツリー]には、サブメニューとして以下のオプションがあります。

オプション | ショートカット | 説明
別のツリーに貼り付け |  | コピーしたタスクツリーを現在のタスクと並行関係のタスクとして貼り付けます。
上書登録 |  | コピーしたタスクツリーを現在のタスクに上書きして貼り付けます。
ツリー編集 | F2 | [ナビゲータ]に表示されるツリーのノード名を変更できる状態にします。
サブツリー展開 | Plus | [ナビゲータ]に表示されるツリーを展開表示します。のノード名を変更できる状態にします。
サブツリー縮小 | ← | カーソルは、[データビュー]エディタや[ロジック]エディタ内の次のヘッダ行に移動します。
全て展開 | Ctrl+Plus | ヘッダ行の内容や[特性]シートのセクション表示を全て展開表示します。
全て縮小 | Ctrl+Minus | ヘッダ行の内容や[特性]シートのセクション表示を全て縮小表示します。
次のセクション | Ctrl+↓ | [特性]シート上で次（下）のセクションの先頭にカーソルを移動します。
前のセクション | Ctrl+↑ | [特性]シート上で前（上）のセクションの先頭にカーソルを移動します。
親タスク作成 |  | [タスク]ペイン上で現在のタスクの親タスクを新規作成します。


ナビゲータ 組み合わせキー

ショートカットキー

ナビゲータとワークスペース >

Magic は、全てのファンクションキー（F1 ～ F12）に対する組み合わせキーをサポートしています。サポートされる組み合わせは、以下の通りです。

Ctrl+F[X}、Alt+F[X]、Shift+F[X]

組み合わせキーは、以下で使用できます。

  • リポジトリ操作のショートカット

  • キーボード割付

  • プロジェクトが閉じた状態

  • プロジェクトが開いている状態（１）

  • プロジェクトが開いている状態（２）

  • [フォーム]エディタ

  • [式]エディタ

  • 実行時

  • ユーザイベントのトリガ

  • KBDリテラル


ナビゲータ 組み合わせキー ショートカット

リポジトリ操作のショートカット

ナビゲータとワークスペース > ショートカットキー

Magicのオブジェクト | ショートカット
モデル | Shift+F1
データ | Shift+F2
プログラム | Shift+F3
ヘルプ | Shift+F4
権利 | Shift+F5
メニュー | Shift+F6
コンポーネント | Shift+F7
タスク特性 | Ctrl+P
[データビュー]エディタ | Ctrl+1
[ロジック]エディタ | Ctrl+2
[フォーム]エディタ | Ctrl+3
[式]エディタ | Ctrl+E
入出力ファイル | Ctrl+I
ソート | Ctrl+T
ユーザイベント | Ctrl+U
範囲／位置付 | Ctrl+R
SQLコマンド | Ctrl+Q
アプリケーション特性 | Ctrl+Shift+P
リポジトリ入出力 | Ctrl+Shift+E
ナビゲータ | Alt+F1
特性シート | Alt+F2
チェック結果 | Alt+F3
コメント | Alt+F12
ペインの切替 | Ctrl+Tab
クロスリファレンス | Ctrl+F
テキスト検索 | Shift+Ctrl+F
位置付 | Ctrl+L
位置付／次候補 | Ctrl+N
位置付／前候補 | Ctrl+Shift+N
行ジャンプ | Ctrl+J
フォルダ指定 | Ctrl+Shift+J
次のヘッダ行 | Alt+Ctrl+N
前のヘッダ行 | Alt+Ctrl+P
複写登録 | Ctrl+Shift+R
移動登録 | Ctrl+Shift+M
上書登録 | Ctrl+Shift+O


ナビゲータ 組み合わせキー 閉じた状態

キー割付 - プロジェクトが閉じた状態

ナビゲータとワークスペース > ショートカットキー

Magicは、Windowsに準拠したキー割付を提供しています。以下の一覧は、Magic開発エンジンがプロジェクトを閉じた状態におけるキー割付を示しています。

コマンド | キーの組み合わせ | メニュー名
プロジェクトを開く | Ctrl+O | ファイル
終了 | Alt+F4 | ファイル
キャンセル | Ctrl+F2 | 編集
変更取消 | ALT+Back | 編集
切り取り | Ctrl+X | 編集
コピー | Ctrl+C | 編集
貼り付け | Ctrl+V | 編集
行作成 | F4 | 編集
行削除 | F3 | 編集
全て選択 | Ctrl+A | 編集
ズーム | F5 | 編集
広域表示 | F6 | 編集
特性 | Alt+Enter | 編集
位置付 | Ctrl+L | 編集／クイックアクセス
位置付／次候補 | Ctrl+N | 編集／クイックアクセス
位置付／前候補 | Ctrl+Shift+N | 編集／クイックアクセス
行ジャンプ | Ctrl+J | 編集／クイックアクセス
関連ヘルプ表示 | F1 | ヘルプ


ナビゲータ 組み合わせキー 開いた状態1

キー割付 - プロジェクトが開いた状態1

ナビゲータとワークスペース > ショートカットキー

Magicは、Windowsに準拠したキー割付を提供しています。以下の一覧は、Magic開発エンジンがプロジェクトを閉じた状態におけるキー割付を示しています。

コマンド | キーの組み合わせ | メニュー名
プロジェクトを開く | Ctrl+O | ファイル
アプリケーション特性 | Ctrl+Shift+P | ファイル
リポジトリ入出力 | Ctrl+Shift+E | ファイル
終了 | Alt+F4 | ファイル
キャンセル | Ctrl+F2 | 編集
変更取消 | Alt+Back | 編集
切り取り | Ctrl+X | 編集
コピー | Ctrl+C | 編集
貼り付け | Ctrl+V | 編集
行作成 | F4 | 編集
ヘッダ行作成 | Ctrl+H | 編集
行削除 | F3 | 編集
すべて選択 | Ctrl+A | 編集
ズーム | F5 | 編集
広域表示 | F6 | 編集
特性 | Alt+Enter | 編集
クロスリファレンス | Ctrl+F | 編集／検索と置換
テキスト検索 | Ctrl+Shiftt+F | 編集／検索と置換
複写登録 | Ctrl+Shift+R | 編集／登録
移動登録 | Ctrl+Shift+M | 編集／登録
上書登録 | Ctrl+Shift+O | 編集／登録
位置付 | Ctrl+L | 編集／クイックアクセス
位置付／次候補 | Ctrl+N | 編集／クイックアクセス
行ジャンプ | Ctrl+J | 編集／クイックアクセス
フォルダ移動 | Ctrl+Shift+J | 編集／クイックアクセス
ツリー編集 | F2 | 編集／ツリー
サブツリー展開 | Plus | 編集／ツリー
サブツリー縮小 | Minus | 編集／ツリー
全て展開 | Ctrl+Plus | 編集／ツリー
全て縮小 | Ctrl+Minus | 編集／ツリー
次のセクション | Ctrl+↓ | 編集／ツリー
前のセクション | Ctrl+↑ | 編集／ツリー


ナビゲータ 組み合わせキー 開いた状態2

キー割付 - プロジェクトが開いた状態2

ナビゲータとワークスペース > ショートカットキー

Magicは、Windowsに準拠したキー割付を提供しています。以下の一覧は、Magic開発エンジンがプロジェクトを閉じた状態におけるキー割付を示しています。

コマンド | キーの組み合わせ | メニュー名
ナビゲータ | Alt+F1 | 表示
特性シート | Alt+F2 | 表示
チェック結果 | Alt+F3 | 表示
コメントペイン | Alt+F12 | 表示
ペインの切替 | Ctrl+Tab | 表示
モデル | Shift+F1 | プロジェクト
データ | Shift+F2 | プロジェクト
プログラム | Shift+F3 | プロジェクト
ヘルプ | Shift+F4 | プロジェクト
権利 | Shift+F5 | プロジェクト
メニュー | Shift+F6 | プロジェクト
コンポーネント | Shift+F7 | プロジェクト
タスク特性 | Ctrl+P | タスク環境
データビュー | Ctrl+1 | タスク環境
ロジック | Ctrl+2 | タスク環境
フォーム | Ctrl+3 | タスク環境
式 | Ctrl+E | タスク環境
入出力ファイル | Ctrl+I | タスク環境
ソートテーブル | Ctrl+T | タスク環境
ユーザイベント | Ctrl+U | タスク環境
範囲/位置付 | Ctrl+R | タスク環境
SQLコマンド | Ctrl+Q | タスク環境
構文チェック | F8 | オプション
カーソル以降チェック | Alt+F8 | オプション
ブックマーク | Ctrl+Shift+B | オプション
コメント入力 | F12 | オプション
プログラムの保存 | Ctrl+S | オプション
定義取得 | F9 | オプション
APG | Ctrl+G | オプション
フォーム自動作成 | Ctrl+G | オプション
フォーム表示 | Ctrl+M | オプション
次のチェックメッセージ | Ctrl+F8 | オプション
コンポーネントジェネレータ | Ctrl+Shift+G | オプション
実行/継続 | F7 | デバッグ
ブラウザで実行 | Ctrl+Shift+F7 | デバッグ
プロジェクトの実行 | Ctrl+F7 | デバッグ
ステップ | F10 | デバッグ
ステップイン | F11 | デバッグ
ステップアウト | Shift+F11 | デバッグ
ブレイク | Alt+Ctrl+F7 | デバッグ
ブレイクポイント | F9 | デバッグ
エンジンをリセット | Ctrl+Shift+F9 | デバッグ
関連ヘルプ表示 | F1 | ヘルプ


ナビゲータ 組み合わせキー [フォーム]エディタ

キー割付 - [フォーム]エディタ

ナビゲータとワークスペース > ショートカットキー

Magicは、Windowsに準拠したキー割付を提供しています。以下の一覧は、[フォーム]エディタ用のキー割付を示しています。これらの組み合わせのすべては、[描画]メニューにも表示されます。

コマンド | キーの組み合わせ
選択左寄せ | Ctrl+Shift+L
選択右寄せ | Ctrl+Shift+R
選択上寄せ | Ctrl+Shift+T
選択下寄せ | Ctrl+Shift+B
選択水平センタリング | Ctrl+Shift+H
選択垂直センタリング | Ctrl+Shift+V
水平均等揃え | Alt+Ctrl+H
垂直均等揃え | Alt+Ctrl+V
前面移動 | Ctrl+4
背面移動 | Ctrl+5
最前面移動 | Ctrl+6
最背面移動 | Ctrl+7
テーブルへの配置 | Ctrl+O
描画の終了 | F8


ナビゲータ 組み合わせキー 式エディタ

キー割付 - 式エディタ

ナビゲータとワークスペース > ショートカットキー

Magicは、Windowsに準拠したキー割付を提供しています。以下の一覧は、[式]エディタ用のキー割付を示しています。

コマンド | キーの組み合わせ | メニュー名
広域表示 | F6 | 編集
オートコンプリート | Ctrl+Space | 編集
式の確認 | Ctrl+Enter | 編集
切り取り | Ctrl+X | 編集
コピー | Ctrl+C | 編集
貼り付け | Ctrl+V | 編集
すべて選択 | Ctrl+A | 編集
項目一覧 | F5 |
関数 | Ctrl+1 | 挿入
内部イベント | Ctrl+2 | 挿入
ショートカット | Ctrl+3 | 挿入
権利 | Ctrl+4 | 挿入
コントロール | Ctrl+5 | 挿入
データソース | Ctrl+6 | 挿入
プログラム | Ctrl+7 | 挿入
エラー | Ctrl+8 | 挿入
メニュー | Ctrl+9 | 挿入
フォーム | Ctrl+0 | 挿入
論理名 | Ctrl+Minus | 挿入
ヘルプ | F1 | ヘルプ


ナビゲータ 組み合わせキー 実行

キー割付 - 実行時

ナビゲータとワークスペース > ショートカットキー

Magicは、Windowsに準拠したキー割付を提供しています。以下の一覧は、アプリケーション実行時のキー割付を示しています。

コマンド | キーの組み合わせ | メニュー名
アプリケーションを開く | Ctrl+O | ファイル
終了 | Alt+F4 | ファイル
キャンセル | Ctrl+F2 | 編集
変更取消 | Alt+Back | 編集
切り取り | Ctrl+X | 編集
コピー | Ctrl+Ins/Ctrl+C | 編集
貼り付け | Shift+Ins/Ctrl+V | 編集
行作成 | F4 | 編集
行削除 | F3 | 編集
すべて選択 | Ctrl+A | 編集
ズーム | F5 | 編集
広域表示 | F6 | 編集
複写 | Ctrl+D | 編集
NULLに設定 | Ctrl+U | 編集
修正 | Ctrl+M | オプション
登録 | Ctrl+E | オプション
照会 | Ctrl+Q | オプション
位置付 | Ctrl+L | オプション
位置付／次候補 | Ctrl+Shift+L | オプション
範囲 | Ctrl+R | オプション
インデックス | Ctrl+K | オプション
ソート | Ctrl+T | オプション
入出力ファイル | Ctrl+I | オプション
データ出力 | Ctrl+P | オプション
テーブル先頭 | Ctrl+Home | オプション
テーブル末尾 | Ctrl+End | オプション
前画面 | PageUp | オプション
次画面 | PageDown | オプション
前行 | ↑ | オプション
次行 | ↓ | オプション
次のウィンドウ | Cｔｒｌ+Tab | ウィンドウ
前のウィンドウ | Cｔｒｌ+Shift+Tab | ウィンドウ


プロジェクトとアプリケーション

このセクションは、Magicのプロジェクト開発機能の概要とアプリケーションを実行する上での情報が提供されています。

参照

プロジェクト開発

アプリケーション実行


プロジェクトとアプリケーション 開発

プロジェクト開発

プロジェクトとアプリケーション >

Magicにおいてプロジェクトとは、アプリケーションに関連するオブジェクトを含むユニットです。ここには、メインのアプリケーションオブジェクトや関連するコンポーネント、参照する他のプロジェクト（ユーティリティやコンポーネントなど）が含まれます。主要なコードは、基本的にモデル、データソース、プログラム、およびメニューから構成されています。

プロジェクトディレクトリには、リポジトリとコンポーネントを含んだプロジェクト全体を表すファイルが含まれています。

Magic eDeveloper V10は、プロジェクトファイルを実行用のキャビネットファイルとして保存します。

参照

プロジェクトの新規作成

プロジェクトとバージョン管理

プロジェクトモジュール

プロジェクトのキャビネットファイル

プロジェクトの環境設定

プロジェクトディレクトリの取得

アプリケーション特性

アプリケーション実行

アプリケーション公開名


プロジェクトとアプリケーション 開発 作成

プロジェクトの作成

プロジェクトとアプリケーション > プロジェクト開発

Magicのプロジェクトは、通常５つの主要なフェーズで開発されます。プロジェクトを作成する場合、これらのフェーズに従って開発するようにしてください。

  • プロジェクト …… プロジェクトの名前やファイルの保存場所などを定義します。また、プロジェクトがバージョン管理システムで管理するかどうかを指定したり、ナビゲータで表示されるプロジェクトのクイック参照リンクを作成することができます。

  • モデル …… プロジェクト内のデータ項目やフォーム、コントロール、ヘルプのタイプを定義して、データソースやプログラムで参照できるようにします。

  • データソース …… プロジェクトがデータを格納するデータソースを定義します。

  • プログラム …… エンドユーザとデータベースの間の対話処理を行うためのロジック（機能）を定義します。以下のオブジェクトに定義します。

  • データビュー …… タスクで使用するデータを定義します。データビューには、ソーステーブル、データ項目、リンク、ソート、および範囲を定義します。

  • ロジック …… ロジックユニットと処理コマンドを使用してタスクの論理セグメントを定義します。

  • フォーム …… タスクのフォームやコントロール特性を定義します。各エントリはフォームを表します。先頭のフォームがタスクのメインフォームになります。

  • メニューとヘルプ …… エンドユーザがアクセスするメニューとヘルプを定義します。

参照

アプリケーションとは？

アプリケーションのデバッグ


プロジェクトとアプリケーション 開発 新規作成

プロジェクトの新規作成

プロジェクトとアプリケーション > プロジェクト開発

プロジェクトを作成するには、[ファイル]メニューから、[新規作成]をクリックします。

[新規プロジェクト]ダイアログでは、[プロジェクト名]を指定すると、プロジェクトファイルを保存するフォルダ名が自動的に表示されます。

ダイアログには以下のパラメータが含まれています。

  • プロジェクト名 …… プロジェクト名には、‘.’や‘.’または以下の文字を含めることができません。

/ ? : & \ = ・< > | # % * )

$ で始まるプロジェクト名も定義できません。

  • 位置 …… [参照]ボタンをクリックすることでプロジェクトディレクトリを参照するためのダイアログが表示されます。デフォルト値は、[Magicディレクトリ]\Projects\です。
    指定されたプロジェクトディレクトリがすでに存在している場合、以下のエラーメッセージがステータスバーに表示されます。

指定したプロジェクトディレクトリは、すでに存在しています.

プロジェクトディレクトリが存在していな場合、指定したディレクトリを作成するかどうかの確認ダイアログが表示されます。

  • バージョン管理データベースに新規プロジェクトを作成します. …… チェックボックスをチェックすると、バージョン管理システムを利用することができます。このチェックボックスをチェックすると、同じ名前を持つ新しいプロジェクトはバージョン管理データベース上に作成されます。

  • 現在のプロジェクトに追加する …… すでに、プロジェクトを開いている状態の場合、このチェックボックスが表示されます。ここをチェックすると、現在のプロジェクトにモジュールとして追加されます。

プロジェクトを新規作成する場合、[新規プロジェクト]ダイアログボックスには、プロジェクト名をもとにしたプロジェクトディレクトリを表示します。すべてのプロジェクトファイルは、ここで指定されたディレクトリに保存されます。

プロジェクトファイルには、以下の内容が含まれます。

  • Exportsサブディレクトリ …… プロジェクトをリポジトリ出力する場合のデフォルト出力先です。

  • Sourceサブディレクトリ …… プロジェクトの全てのソースファイル(XMLファイル)が保存されます。

  • プロジェクトファイル(.edp) …… プロジェクトの全てのソースファイル(XMLファイル)が保存されます。より大きなプロジェクトの一部となるプロジェクトを作成している場合は、その大きいプロジェクトと同じフォルダの中にこのプロジェクトファイルを置く必要があります。

参照

プロジェクトのアクセス

デフォルトプロジェクト


プロジェクトとアプリケーション 開発 サーバから開く

サーバから開く

プロジェクトとアプリケーション > プロジェクト開発

このオプションは、バージョン管理システムから既存のプロジェクトをコピーする場合に使用します。プロジェクトが開いていない状態でのみ有効です。

[ファイル]メニューから[サーバから開く]をクリックすると、既存プロジェクトからコピーされます。

どのようなダイアログボックスが表示されるかは、使用しているバージョン管理システムに依存します。

CVSを使用している場合は、以下のような項目が表示されます。

  • ユーザ名 …… CVSサーバにアクセスするためのユーザID（CVSサーバのOSのログオンID）。デフォルトでは、現在のクライアント側のログオンID固定ですが、Magic.ini のSpecialCVSLogin パラメータを設定することで変更可能になります。

  • サーバ名 …… サーバPCのホスト名

  • リポジトリ …… サーバ上のCVSリポジトリの名前

  • バージョン管理プロジェクト …… ここからズームすると[CVSプロジェクト一覧]が開きます。これは、CVSのリポジトリに登録されているプロジェクトの一覧です。ここから、オープンしたいプロジェクトを選択します。

  • 位置 …… 作成されるプロジェクトのディレクトリ

注意：

  • サーバ名かリポジトリ名が変更されるとプロジェクト名がクリアされます。

  • サーバ名とリポジトリ名はレジストリに保存されます。

SourceSafeのようなSCC(Microsoft Source Code Control)-APIを使用したクライアントの場合は、プロジェクトを選択し、プロジェクトファイルが保存される位置を参照することができます。

デフォルトの位置は、Magic Studioのインストールフォルダ内のProjects\[プロジェクト名] になります。

プロジェクトファイルの保存についての詳細は、プロジェクトの新規作成 を参照してください。

バージョン管理の詳細は、バージョン管理を参照してください。


プロジェクトとアプリケーション 開発 バージョン管理

プロジェクトとバージョン管理

プロジェクトとアプリケーション > プロジェクト開発

[バージョン管理データベースに新規プロジェクトを作成します.]というチェックボックスをチェックしてプロジェクトを作成すると、Magicとは独立したバージョン管理サーバを使用してバージョン管理や並行開発を行うことができます。

以前に作成されたプロジェクトがバージョン管理システムによって管理されている場合、[バージョン管理]のチェックボックスはデフォルトでチェック状態になっています。必要であれば、このチェックボックスをクリアすることができます。

すでに、最新のプロジェクトを取得しているのであれば、[サーバから開く]をクリックしてプロジェクトのオープンする必要はありません。バージョン管理の使用をやめるには、[バージョン管理]サブメニューから[プロジェクト除外]を選択してください。

プロジェクトを作成後に、バージョン管理を使用するように定義するには、[バージョン管理]サブメニューから[サーバに追加]を選択します。詳細は、「バージョン管理」を参照してください。

バージョン管理対象のプロジェクトをスタンドアロンモードに変更したい場合は、[バージョン管理]サブメニューから[プロジェクト除外]を選択することで、VCシステムからプロジェクトが除外されます。

Magicは、バージョン管理システムからプロジェクトを削除するかどうかを確認するメッセージダイアログを表示します。「Yes」をクリックすると、バージョン管理の設定が削除され、プロジェクトのソースファイルは、読み込みのみとなり表示されなくなります。


プロジェクトとアプリケーション 開発 アクセス

プロジェクトのアクセス

プロジェクトとアプリケーション > プロジェクト開発

プロジェクト間を簡単に操作することができることは、大規模なプロジェクト構成で成り立つアプリケーションでは重要になります。以下のようにしてプロジェクトにアクセスできます。

  • [ナビゲータ]ツリーに表示される参照プロジェクトをクリックします。プロジェクト作成時に現在のプロジェクトに追加するように指定するか、[プロジェクト]メニューから[モジュール追加]を選択することでプロジェクトがモジュールとして追加され、参照用としてナビゲータに表示されます。詳細は、「プロジェクトモジュール」を参照してください。

  • [ファイル]メニューの[最近使ったプロジェクト]に表示されるプロジェクト名をクリックします。[動作環境]ダイアログの[最近のプロジェクトの数]の設定値を変更することで、サブメニューに表示されるプロジェクトの数を指定することができます。最大「99」まで指定できます。
    最近のプロジェクト環境設定の番号において数値を指定することによって表示された最近のプロジェクトの数を決定することができます。

  • [プロジェクトを開く]ダイアログボックスから[プロジェクト].edpファイルを選択します。[プロジェクトを開く]ダイアログボックスは、デフォルトとして現在のプロジェクトファイルが保存されているフォルダが表示されます。

  • WindowsのフォルダからMagicのプロジェクト(edp)ファイルをクリックすると、Magicが起動されプロジェクトファイルがオープンされます。

参照

アプリケーションとは？

プロジェクト開発

アプリケーション実行


プロジェクトとアプリケーション 開発 キャビネットファイル

プロジェクトのキャビネットファイル

プロジェクトとアプリケーション > プロジェクト開発

Magicのプロジェクトは、実行エンジンでのみ使用できるキャビネット形式のファイルに保存することができます。開発エンジンでこのファイルを開くことはできません。

キャビネットファイルは、[キャビネットファイル]ダイアログボックスで作成します。[ファイル]メニューから[キャビネット作成]を選択すると、このダイアログボックスが開きます。キャビネットファイルの拡張子は、「edp」です。

参照

プロジェクトキャビネットファイルの実行時の動作


プロジェクトとアプリケーション 開発 環境設定

プロジェクトの環境設定

プロジェクトとアプリケーション > プロジェクト開発

プロジェクトの環境設定については、以下のトピックで説明しています。

  • デフォルトプロジェクト …… Magicの起動時に、自動的にオープンされるプロジェクトを指定します。

  • 最近のプロジェクト数 …… 最近オープンしたプロジェクトの表示件数を指定します。

  • デフォルトソースディレクトリ …… プロジェクトのソースファイルが作成されるサブフォルダを指定します。

  • デフォルト出力ディレクトリ …… プロジェクトをリポジトリ出力する場合のデフォルトフォルダを指定します。


プロジェクトとアプリケーション 開発 ディレクトリの取得

プロジェクトディレクトリの取得

プロジェクトとアプリケーション > プロジェクト開発

作業フォルダ（メインプロジェクト/アプリケーションのディレクトリ）やエンジンのディレクトリ、プロジェクトファイル（コンポーネント用）のディレクトリは、以下の予約された論理名を使用して取得されます。

  • %EngineDir% …… Magicエンジンのディレクトリパスと解釈されます。

  • %WorkingDir% …… 作業フォルダのパスと解釈されます。

  • %TempDir% …… OSによって定義された一時ディレクトリのパスと解釈されます。

プロジェクトが何もオープンされていない場合は、%WorkingDir%と%EngineDir%は同じ値になります。

ツールアプリケーションでは、%WorkingDir%と%のEngineDir%は同じ値になります。

上記の予約論理名は、MAGIC.INIファイルで手動で定義しても無視されます。

INIPut関数で予約論理名を指定しても影響しません。また、INIGet関数を使用しても値は取得できません。

これらの論理名前は、Translate関数を使用して、環境設定に関するパスやプロジェクト情報に関するパスを取得する場合に使用します。

ProjectDir関数を使用すると、関連するコンポーネントの位置とファイル名を参照することができます。

注意：

論理名を使用しない場合、プロジェクト内でのカレントディレクトリは、プロジェクトファイルが存在するディレクトリとなります。（V9Plus以前とは、カレントディレクトリの扱いが異なります。）


プロジェクトとアプリケーション 開発 特性

アプリケーション特性

プロジェクトとアプリケーション > プロジェクト開発

プロジェクトがオープンされた状態で、[ファイル/アプリケーション特性]を選択することで[アプリケーション特性]ダイアログボックスが開き、ここで特性値の設定を行うことができます。

これらの特性は、Magicのプロジェクトファイルに保存され、[動作環境]ダイアログボックスで設定されている環境設定内容より優先されます。

参照

[スタートアップ]タブ

[外部参照ファイル]タブ

[セキュリティ]タブ


プロジェクトとアプリケーション 開発 特性 スタートアップ

[スタートアップ]タブ

プロジェクトとアプリケーション > プロジェクト開発 > アプリケーション特性

ここには、アプリケーションの開始時に関係する特性があります。

NULL計算

タイトル

アイコンファイル名

ウィンドウリストの表示順序

システムプルダウンメニュー

システムコンテキストメニュー


プロジェクトとアプリケーション 開発 特性 スタートアップ NULL計算

NULL計算

プロジェクトとアプリケーション > プロジェクト開発 > アプリケーション特性 > スタートアップ

Magic はNULL 値をサポートしていますが、この特性はNULL値の扱いに関するものです。

SQL など、データベースによってはパラメータにNULL 値を渡すことができます。この特性では、NULL値を含む式がどのように計算されるかを指定できます。

  • N=NULLにする……計算結果もNULL になります。

  • D=デフォルト……結果は、[カラム特性]の[NULL 計算値]特性の値を基に計算されます。[NULL 計算]特性は、[モデル]リポジトリの各項目モデルでも指定できます。アプリケーションのデフォルトは、[モデル]および[カラム]レベルで上書きできます。


プロジェクトとアプリケーション 開発 特性 スタートアップ タイトル

タイトル

プロジェクトとアプリケーション > プロジェクト開発 > アプリケーション特性 > スタートアップ

[タイトル]特性は、MagicのMDIフレームのタイトルを定義します。

ここには、最高30文字まで入力することができます。この特性は、SDIフレームでは無効です。

アプリケーションが実行モードで読み込まれると、Magicは[タイトル]特性に設定された値に従ってMDIコンテナのタイトルに変換します。

MAGIC.INI 内の「RtUserCopyright」パラメータに値が設定されていても、[タイトル]特性の設定値が優先されます。

MAGIC.INIや[タイトル]特性に値が設定されていない場合、デフォルトのタイトルが表示されます。

アプリケーションをクローズすると、オリジナル（アプリケーションを読み込む前）のタイトルに戻ります。


プロジェクトとアプリケーション 開発 特性 スタートアップ アイコンファイル名

アイコンファイル名

プロジェクトとアプリケーション > プロジェクト開発 > アプリケーション特性 > スタートアップ

ここにはMDIフレーム用のアイコンファイルを指定します。ファイル名を直接入力するか、ここからダブルクリックして[ファイルを開く]ダイアログを開き、ファイルを選択してください。指定したアイコンは、ウィンドウを最小化（アイコン化）した場合に表示されます。

注意：

リッチクライアントタスクの場合、ファイルパスは、URLでのみ指定できます。


プロジェクトとアプリケーション 開発 特性 スタートアップ ソートウィンドウ

ウィンドウリストの表示順序

プロジェクトとアプリケーション > プロジェクト開発 > アプリケーション特性 > スタートアップ

ウィンドウメニューのソート方法を指定します。

  • R=アクセスされた順 …… アクティブになった順番でソートされます。

  • W=作成された順 …… 作成されたウィンドウの順番でソートされます。


プロジェクトとアプリケーション 開発 特性 スタートアップ プルダウンメニュー

システムプルダウンメニュー

プロジェクトとアプリケーション > プロジェクト開発 > アプリケーション特性 > スタートアップ

プロジェクトの実行時に有効になるプルダウンメニューを定義します。

9,999まで指定できます。

以下のような場合、この特性は無効になります。

  • 現在のフォームがSDIフォームの場合

  • コンポーネントのデフォルトプルダウンメニュー


プロジェクトとアプリケーション 開発 特性 スタートアップ コンテキストメニュー

システムコンテキストメニュー

プロジェクトとアプリケーション > プロジェクト開発 > アプリケーション特性 > スタートアップ

プロジェクトの実行時に有効になコンテキストメニューを定義します。

9,999まで指定できます。

以下のような場合、この特性は無効になります。

  • 現在のフォームがSDIフォームの場合

  • コンポーネントのデフォルトコンテキストメニュー


プロジェクトとアプリケーション 開発 特性 外部参照

[外部参照ファイル]タブ

プロジェクトとアプリケーション > プロジェクト開発 > アプリケーション特性

外部ファイルは、[動作環境]ダイアログで設定された外部ファイル指定を上書きする場合に使用されます。この設定によって、プロジェクト毎にユニークな設定を提供することが可能になります。

アプリケーションの[外部参照ファイル]特性には、以下の特性があります。

プリンタ属性ファイル

HTML スタイルファイル

アプリケーション用基本色定義ファイル

内部用基本色定義ファイル

アプリケーション用フォント定義ファイル

内部用フォント定義ファイル

実行用キーボード割付ファイル

最新プロジェクト取得バッチファイル - バージョン管理で利用


プロジェクトとアプリケーション 開発 特性 外部参照 プリンタ属性

プリンタ属性ファイル

プロジェクトとアプリケーション > プロジェクト開発 > アプリケーション特性 > 外部参照ファイル

[動作環境]ダイアログで定義されたものとは異なるプリンタ属性ファイルを定義する場合に指定します。この特性は、マルチアプリケーション環境で、アプリケーションごとにプリンタ属性ファイルを使用したい場合に設定します。

注意：

SP4から、カレントディレクトリは、Magicエンジンが存在するのディレクトリ（%EngineDir% ）に変更されました。


プロジェクトとアプリケーション 開発 特性 外部参照 HTMLスタイル

HTML スタイルファイル

プロジェクトとアプリケーション > プロジェクト開発 > アプリケーション特性 > 外部参照ファイル

[動作環境]ダイアログで定義されたものとは異なるHTML スタイルファイルを定義する場合に指定します。変更後のHTMLスタイルタグを別のファイルに保存することもできます。この特性は、マルチアプリケーション環境で、アプリケーションごとに異なるHTMLスタイルファイルを使用したい場合に設定します。

注意：

SP4から、カレントディレクトリは、Magicエンジンが存在するのディレクトリ（%EngineDir% ）に変更されました。

参照

HTMLスタイル


プロジェクトとアプリケーション 開発 特性 外部参照 AP基本色定義

アプリケーション用基本色定義ファイル

プロジェクトとアプリケーション > プロジェクト開発 > アプリケーション特性 > 外部参照ファイル

[動作環境]ダイアログで定義されたものとは異なるアプリケーション用基本色定義ファイルを定義する場合に指定します。変更後の基本色定義を別のファイルに保存することもできます。この特性は、マルチアプリケーション環境で、アプリケーションごとに異なるアプリケーション用基本色定義ファイルを使用したい場合に設定します。

注意：

SP4から、カレントディレクトリは、Magicエンジンが存在するのディレクトリ（%EngineDir% ）に変更されました。


プロジェクトとアプリケーション 開発 特性 外部参照 内部用基本色定義

内部用基本色定義ファイル

プロジェクトとアプリケーション > プロジェクト開発 > アプリケーション特性 > 外部参照ファイル

[動作環境]ダイアログで定義されたものとは異なる内部用基本色定義ファイルを定義する場合に指定します。変更後の基本色定義を別のファイルに保存することもできます。この特性は、マルチアプリケーション環境で、アプリケーションごとに異なる内部用基本色定義ファイルを使用したい場合に設定します。

注意：

SP4から、カレントディレクトリは、Magicエンジンが存在するのディレクトリ（%EngineDir% ）に変更されました。


プロジェクトとアプリケーション 開発 特性 外部参照 APフォント定義

アプリケーション用フォント定義ファイル

プロジェクトとアプリケーション > プロジェクト開発 > アプリケーション特性 > 外部参照ファイル

[動作環境]ダイアログで定義されたものとは異なるアプリケーション用フォント定義ファイルを定義する場合に指定します。変更後のフォント定義を別のファイルに保存することもできます。この特性は、マルチアプリケーション環境で、アプリケーションごとに異なるアプリケーション用フォント定義ファイルを使用したい場合に設定します。

注意：

SP4から、カレントディレクトリは、Magicエンジンが存在するのディレクトリ（%EngineDir% ）に変更されました。


プロジェクトとアプリケーション 開発 特性 外部参照 内部用フォント定義

内部用フォント定義ファイル

プロジェクトとアプリケーション > プロジェクト開発 > アプリケーション特性 > 外部参照ファイル

[動作環境]ダイアログで定義されたものとは異なる内部用フォント定義ファイルを定義する場合に指定します。変更後のフォント定義を別のファイルに保存することもできます。この特性は、マルチアプリケーション環境で、アプリケーションごとに異なる内部用フォント定義ファイルを使用したい場合に設定します。

注意：

SP4から、カレントディレクトリは、Magicエンジンが存在するのディレクトリ（%EngineDir% ）に変更されました。


プロジェクトとアプリケーション 開発 特性 外部参照 実行時キー割付

実行用キーボード割付ファイル

プロジェクトとアプリケーション > プロジェクト開発 > アプリケーション特性 > 外部参照ファイル

[動作環境]ダイアログで定義されたものとは異なる実行用キーボード割付ファイルを定義する場合に指定します。変更後のキーボード定義を別のファイルに保存することもできます。この特性は、マルチアプリケーション環境で、アプリケーションごとに異なるキーボード割付ファイルを使用したい場合に設定します。

注意：

SP4から、カレントディレクトリは、Magicエンジンが存在するのディレクトリ（%EngineDir% ）に変更されました。


プロジェクトとアプリケーション 開発 特性 外部参照 バッチファイル

最新プロジェクト取得バッチファイル

プロジェクトとアプリケーション > プロジェクト開発 > アプリケーション特性 > 外部参照ファイル

プロジェクトがバージョン管理で管理されている場合のみ、この特性は有効になります。

この特性は、プロジェクトの最新バージョン取得処理の一部として外部処理コマンドを実行させるためのものです。

最新プロジェクトの取得処理がアプリケーションで実行された場合、指定されたバッチファイルが実行されます。最新プロジェクトの取得処理が成功した場合、バッチファイルが最終ステップとして実行されます。

バッチファイルには、ファイルのコピーなどのように一般的なWindowsのコマンドを含めることもできます。

参照

最新バージョンの取得


プロジェクトとアプリケーション 開発 特性 セキュリティ

[セキュリティ]タブ

プロジェクトとアプリケーション > プロジェクト開発 > アプリケーション特性

ここには、アプリケーションのセキュリティ設定に関係する特性を定義します。

アプリケーションアクセスキー

公開権利アクセスキー

スーパー権利キー

リモートデバッガ権利


プロジェクトとアプリケーション 開発 特性 セキュリティ APアクセス

アプリケーションアクセスキー

プロジェクトとアプリケーション > プロジェクト開発 > アプリケーション特性 > セキュリティ

[アプリケーションアクセスキー]特性は、このキーのオーナーのみ表示されます。

アプリケーションアクセスキーとは、開発アプリケーションにアクセスするためのキーをのことをいい、このキーを定義しておくことで、アプリケーションにアクセスできるユーザが、キーのオーナーに限定されるようになります。そのほかのユーザや開発者は、アプリケーションを開くことができなくなります。

SUPERVISORは、以下のようにしてこのキーの所有権を割り当てることができます：

  1. [ユーザID]テーブルを開きます。

  2. [権利]カラムでズームして[権利]テーブル要を開きます。

  3. [キー]カラムでアプリケーションアクセスキーと同じコードを入力します。


プロジェクトとアプリケーション 開発 特性 セキュリティ 公開権利

公開権利アクセスキー

プロジェクトとアプリケーション > プロジェクト開発 > アプリケーション特性 > セキュリティ

[公開権利アクセスキー]特性は、一度設定されるとこのキーのオーナーのみ表示されます。

公開権利アクセスキーは、開発者向けのアクセスキーで、このキーを定義しておくことでアプリケーションのセキュリティを確保できます。通常、「Supervisor」が、このキーのオーナーになります。この公開権利アクセスキーを用意することで、第三者による不法操作を防止できます。

例えば、セキュリティファイル（user std.jpn）にはユーザのパスワードが記録されていますが、このファイルを操作してシステムのパスワード保護メカニズムを破壊し、Supervisor としてログオンするという不法操作を回避できます。この公開権利アクセスキーがない場合、アプリケーションにどういったキーが割当てられているか知ることはできません。つまり、[ユーザID]テーブルの[権利]カラムをズームしても、[権利名]カラムの内容を見ることができません。また、[キー]カラムでズームして[公開権利一覧]を表示することもできません。

SUPERVISORは、以下のようにしてこのキーの所有権を割り当てることができます：

  1. [ユーザID]テーブルを開きます。

  2. [権利]カラムでズームして[権利]テーブル要を開きます。

  3. [キー]カラムで公開権利アクセスキーと同じコードを入力します。


プロジェクトとアプリケーション 開発 特性 セキュリティ スーパー権利

スーパー権利キー

プロジェクトとアプリケーション > プロジェクト開発 > アプリケーション特性 > セキュリティ

[スーパ権利キー]特性は、一度設定されるとこのキーのオーナーのみ表示されます。

スーパー権利キーの所有者は、開発、実行のいずれでも、アプリケーションの全ての処理に対して全ての権利を持つことになります。したがって、このキーの所有者は、アプリケーションの各処理について個別の権利を持っている必要はありません。


プロジェクトとアプリケーション 開発 特性 セキュリティ リモートデバッガ

リモートデバッガ権利

プロジェクトとアプリケーション > プロジェクト開発 > アプリケーション特性 > セキュリティ

ここに権利キーを設定することで、リモートデバッガからのアクセスを制限することができます。ここからズームして[公開権利一覧]から権利を選択してください。


アプリケーション実行

プロジェクトとアプリケーション >

「アプリケーション」という用語は、実行時でのみ使用されます。アプリケーションは、1つのプロジェクトか複数のプロジェクトの集合体です。

実行モード時にプロジェクトファイルにアクセスするには、プロジェクトキャビネットファイル(.ecf)を作成しなければなりません。キャビネットファイルは、Magicの開発エンジン（Magicスタジオ）で定義されたプロジェクトファイルの構造が含まれています。

キャビネットファイルの名前が、「MyApp.ecf」の場合、リモートアクセスする際のアプリケーション名は「MyApp」になります。

キャビネットファイルを開くには、以下のようにします。

  • （実行エンジンから）[ファイル]メニューの[アプリケーションを開く]を選択し、[アプリケーションを開く]ダイアログからキャビネットファイル(.ecf)を選択します。

  • [動作環境]ダイアログの[開始アプリケーション]に、実行させたいアプリケーションのキャビネットファイルを指定します。

  • Windowsのフォルダから、キャビネットファイルをダブルクリックします。

アプリケーションのパスが作業フォルダとなります。「%WorkingDir%」という論理名からこのパスを取得することができます。詳細は、「プロジェクトディレクトリの取得」を参照してください。

参照

アプリケーションとは？

プロジェクト開発

アプリケーション公開名


アプリケーション実行 アプリケーショントとは

アプリケーションとは？

プロジェクトとアプリケーション > アプリケーション実行

アプリケーションは、常に1つのプロジェクトから開始されます。１つのプロジェクトだけの場合もありますし、複数のプロジェクトの集合体の場合もあります。プロジェクトは、アプリケーションを構成するオブジェクトとも言えます。

例えば、管理アプリケーションは以下のプロジェクトから構成される場合があります。

  • 人事 …… 人事管理を処理するプロジェクト

  • 財務 …… 財務管理を処理するプロジェクト

  • 操作 …… 操作上の管理を処理するプロジェクト

  • R&D …… 生産管理を処理するプロジェクト

プロジェクトは、また、アプリケーション全体と同じタイプのオブジェクトを格納するために使用することができます。例えば、個別のプロジェクトに、アプリケーションのモデル、データソース、プログラム、およびヘルプを含めることができます。

アプリケーション開発で、プロジェクトを使用すると以下のような利点があります。

  • 再利用 …… プロジェクトは、異なるアプリケーションのオブジェクトを再利用することができます。

  • メンテナンス …… 各部門は、同じアプリケーションの異なるプロジェクトを 保守することができます。

  • 配布 …… 各部門は、同じアプリケーションの異なるプロジェクトを実行させることができます。

参照

プロジェクトの作成

アプリケーションのテスト

プロジェクト開発

アプリケーション実行


アプリケーション実行 アプリケーショントとは テスト

アプリケーションのテスト

プロジェクトとアプリケーション > アプリケーション実行 > アプリケーシンとは？

アプリケーションをテストするためにデバッガを使用することができます。

デバッガ

デバッグモードの場合、実行モードでプログラムを実行することがで、デバッガによってプログラムのどこを実行しているかを表示されます。この機能は、アプリケーションに内在する問題をピンポイントで把握する手助けとなります。

デバッガ実行中は、開発ウィンドウにブレイクポイントを設定することで、プログラムの処理を一時的に停止させることができます。また、実行中にデータ項目の内容を変更することができます。

デバッガは、１度に１つのコンテキストをデバッグすることができます。複数のコンテキストをデバッグするために、現在のコンテキストから別のコンテキストに切り換えることができます。

デバッガはまた、ログモニタを使用することで、開発エンジン内のMagicのフローを表示させることができます。

[デバッガ]ペインでは、以下のことが可能です。

  • [コールタスク]処理コマンドのステップインとステップアウト

  • ブレイクポイントの追加／削除

  • 実行の継続／停止

  • 現在実行中のアプリケーションのデバッグ（「ログモニタ」を参照してください。）

  • ログの動的処理（「Logging関数」を参照してください。）

Magic V10では、開発エンジンと実行エンジンが分離されました。このため、タスクを実行させフローやデバッグ情報を表示させながら、開発画面を有効にさせることができます。詳細は、「開発エンジンと実行エンジンの分離」を参照してください。

参照

アプリケーションとは？

プロジェクトの作成


設定

Magicでは、全てのプロジェクトに共通の環境設定を行うことができます。また、プロジェクト毎に個別の環境設定を行うこともできます

[オプション]メニューから、[設定]を選択すると、環境設定用のサブメニューが表示されます。

この環境設定サブメニューに表示されている各オプションによって全てのプロジェクトに共通の環境設定を行うことができます。

以下の環境設定は、プロジェクト毎に設定することができます。

  • 基本色

  • フォント

  • キーボード割付

  • プリンタ属性

  • HTMLスタイル

[設定]メニューからアクセスする設定内容の詳細については、以下のトピックを参照してください。

動作環境

基本色

フォント

キーボード割付

サーバ

サービス

ビジュアル接続

通信ゲートウェイ

DBMS

データベース

ロギング

論理名

言語

プリンタ

HTMLスタイル

プリンタ属性

チェックメッセージ

事前定義ロジック

シークレット名

ユーザグループ

ユーザID

参照

MAGIC.INI ファイル

コマンドラインオプション


動作環境

設定 >

[動作環境]ダイアログには、グローバルな特性パラメータが含まれています。このダイアログの各設定欄は、MAGIC.INI ファイルの[MAGIC_ENV]セクションに対応しています。これらの設定欄を使用して、Magic の動作環境をカスタマイズすることができます。[動作環境]ダイアログで設定欄の値を変更すると、MAGIC.INI ファイルにその内容が反映されます。設定欄の中には、変更がすぐに有効になるものと、次回のMagicセッションから有効になるものがあります。

注意：

Magicの環境設定は、OSの環境データ項目とは関連がありません。

Magic の動作環境は、[動作環境]ダイアログのほか、起動時にコマンドラインを使用して設定することもできます。その場合、バッチファイルを使用してMagic を起動します。例えば、コマンドラインを使用して端末環境変数を渡す場合、以下のようなバッチファイルを作成します。

eDevStudio /terminal=%terminal%

Magicの実行可能ファイルから起動するのではなく、このバッチファイルによりMagicを起動します。

コマンドラインを使用してMagic を起動した場合、[動作環境]ダイアログには、そのコマンドラインで指定した値が設定欄の値として表示されます。これは、コマンドラインの値が、MAGIC.INI ファイルの値より優先されるためです。ただし開発モード時、[動作環境]ダイアログで、コマンドラインで指定した設定欄の値を変更した場合には、その値によって自動的にMAGIC.INI ファイルが更新され、コマンドラインの値より優先されるようになります。

[動作環境]ダイアログには、以下の6 つのタブが用意されています。

システム

マルチユーザ

動作設定

国別指定

外部参照

アプリケーションサーバ

デフォルト値

[動作環境]ダイアログでの設定とは別に、デフォルト値やNULL表示文字列を指定することができます。この設定は、MAGIC.INI ファイルの[MAGIC_DEFAULT] セクションでのみ設定できます。

参照

特殊パラメータ


動作環境 システム

[システム]タブ

設定 > 動作環境

[システム]タブには、以下の設定項目が含まれています。

オーナ名

システムログオン

Magic日付

ユーザID

パスワード入力

日付入力

デフォルトプロジェクト

開始アプリケーション

実行モード

スクリーンモードプロンプト

西暦基準年

バッチイベント間隔(ミリ秒)

タスクキャッシュサイズ(KByte)

修正モードでの登録許可

照会モードでの修正許可

照会モード位置付で確認表示

動作環境テーブル表示

基本色テーブル表示

フォントテーブル表示

キーボード割付テーブル表示

サーバテーブル表示

サービステーブル表示

ビジュアル接続表示

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

DBMSテーブル表示

データベーステーブル表示

ロギングテーブル表示

論理名テーブル表示

言語テーブル表示

HTMLスタイルテーブル表示

プリンタテーブル表示

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

ログオン許可

外部テストツール使用

チェックメッセージ表示

最大ファイル数

ライセンス

ライセンスファイル

リモートデバッガの使用ポート

リモートデバッガ


動作環境 システム オーナ名

オーナ名(デフォルト: Magic Software Japan K.K.)

設定 > 動作環境 > [システム]タブ

Magicプロジェクトのオーナの名前を 30桁以内の文字列で指定します。この名前は、Owner 関数を使用して取得し、フォームやレポートに出力できます。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: Owner


動作環境 システム システムログオン

システムログオン(デフォルト: N=なし.)

設定 > 動作環境 > [システム]タブ

この設定は、Magic のユーザアカウントをOS に合わせるかどうかを指定します。選択肢は以下の通りです。

  • N=なし……ユーザ名としてのデフォルト値を使用しないで、[パスワード入力]の設定に従って、自動的／明示的にログオンダイアログをオープンします。

  • U=ユーザ名……OS にログオンしたユーザ名を基に、[パスワード入力]の設定に従って、自動的／明示的にログオンダイアログをオープンします。Magic は、ユーザ定義ファイル（usr_std.jpn）を基にユーザの認証を行います。ユーザ名とパスワードは、30 桁まで指定できます。

  • D=Active Directory……Windowsにログオンした時のActive Directoryに定義されたユーザ情報を基にMagicは、ユーザ認証を行います。この指定にすることで、Magicのシステム管理者がユーザ管理を行う必要がなくなります。
    この設定を行うと、ログオンダイアログをオープンすることはできません。
    Active Directory による認証設定については、「Active Directoryによる認証」の説明を参照してください。

  • L=LDAP ……ログインダイアログで入力されたユーザIDとパスワードを基にLDAPサーバに対して認証処理を行います。詳細は、「LDAPサーバによる認証方法」を参照してください。
    この認証方法を指定した場合、[外部参照]タブの「LDAP アドレス」、「LDAP接続文字列」、「LDAP ドメインコンテキスト」の指定も必要になります。

注意：

  • Magicのユーザ定義ファイルのパスワードとOSのパスワードを一致させる必要はありません。

  • パスワードは、ユーザIDごとにユニークにすることをお勧めします。

  • リッチクライアントでは、Active Directoryによる認証はできません。LDAPを使用するようにしてください。

  • リッチクライアントでLDAP認証認証を使用した場合、クライアント側で表示される［ログオン］ダイアログを[キャンセル]ボタンでキャンセルしてもプログラムはが実行されます。あらかじめ、プログラムに実行権を設定したり、User関数を使用してアプリケーションレベルでプログラムの実行をコントロールするようにしておく必要があります。

変更の反映: 次のセッションから有効

MAGIC.INIおよびコマンドライン名: SystemLogin


動作環境 システム Magic日付

Magic日付(デフォルト: システム日付)

設定 > 動作環境 > [システム]タブ

Magicは、2 種類の日付が使用できます。 １つはOSの日付で、「システム日付」と呼びます。もう１つはユーザが設定した日付です。この日付はMagic に保存され、「Magic 日付」と呼びます。デフォルトでは、Magic 日付とシステム日付は同じです。Magic 日付は、MDate 関数を使用して取得できます。この欄の値は、[ログオン]ダイアログで入力することができます。

プログラムで過去または未来の日付を使用することもありますが、このような場合にMagic日付を使用します。Magic 日付を設定した場合、その値はMAGIC.INI ファイルに記録されます。

INIGet()関数を使用して日付を更新する場合、2桁の年数を指定してください。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: Date

参照

日付モード


動作環境 システム ユーザID

ユーザID (デフォルト:なし)

設定 > 動作環境 > [システム]タブ

[ユーザID]の設定では、現在のMagic オペレータのユーザID が保持されます。このID は、オペレータのパスワードとともにオペレータのアクセスの権利とアプリケーション内の権利を確認するために使用されます。[ユーザID]の設定値は、User関数を使用してアプリケーション内で照会することができます。

ログオン時に、[ログオン]ダイアログから入力することでも変更されます。個別のユーザID を登録するためには、デフォルトで存在するスーパバイザID（supervisor）によるログオンを行い、[ユーザID]テーブルに登録することで行います。インストール直後、supervisor のパスワードは設定されていません。

変更内容の反映： 直後から有効

MAGIC.INIおよびコマンドライン名： User


動作環境 システム パスワード入力

パスワード入力 (デフォルト:No)

設定 > 動作環境 > [システム]タブ

有効な値: Yes, No

ログイン時に[ログオン]ダイアログボックスを表示するかどうかを指定します。

  • Yes……ログオン時に[ログオン]ダイアログボックスでユーザIDとパスワードの入力が要求されます。

  • No……ログオン時に[ログオン]ダイアログボックスでユーザIDとパスワードの入力を要求するメッセージは表示されません。

変更の反映: 即時

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


動作環境 システム 日付入力

日付入力 (デフォルト:No)

設定 > 動作環境 > [システム]タブ

有効な値: Yes, No.

[ログオン]ダイアログボックスで日付の入力が必要かどうかを指定します。

  • Yes……ログオン時に[ログオン]ダイアログボックスで日付の入力が要求されます。この日付は、Magic日付です。

  • No……ログオン時に[ログオン]ダイアログボックスに日付は表示されません。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: InputDate


動作環境 システム デフォルトプロジェクト

デフォルトプロジェクト

設定 > 動作環境 > [システム]タブ

開発エンジンを起動した時に、自動的に開くプロジェクトを指定します。ここからズームするとプロジェクト一覧が表示されるので、一覧から選択することができます。最大260桁まで入力できます。

この指定が空白の場合、プロジェクトは自動的に起動されません。[ファイル/プロジェクトを開く]メニューから手動でプロジェクトを選択します。

変更の反映: 次のセッションから

MAGIC.INIおよびコマンドライン名: DefaultProject


動作環境 システム 開始アプリケーションン

開始アプリケーション

設定 > 動作環境 > [システム]タブ

実行エンジンを起動した時に、自動的に開くアプリケーションキャビネットファイル（ecf）を指定します。ここからズームしてecfファイルを指定できます。最大260桁まで入力できます。

この指定が空白の場合、アプリケーションは自動的に起動されません。

変更の反映: 次のセッションから

MAGIC.INIおよびコマンドライン名: StartApplication


動作環境 システム 実行モード

実行モード (デフォルト:O=オンライン)

設定 > 動作環境 > [システム]タブ

有効な値: O=オンライン、B=バックグラウンド、S=SDI

実行エンジンでアプリケーションを開いた時の実行モードを指定します。以下のモードが指定できます。

  • O=オンライン……エンドユーザアプリケーションとして使用するための実行環境として開始します。

  • B=バックグラウンド……ユーザとの対話がないバッチプログラムとして実行されます。このモードでは、ウィンドウが開かない「サイレント」状態で実行されます。プログラムでエラーが発生した場合、エラーメッセージは「mgerror.log」という名前のファイルに出力されます。プログラムが終了すると、OSに戻ります

  • S=SDI……アプリケーションがSDIアプリケーションとして実行されます。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: DeploymentMode


動作環境 システム スクリーンモードプロンプト

スクリーンモードプロンプト (デフォルト: :)

設定 > 動作環境 > [システム]タブ

スクリーンモードのフォームでの、項目プロンプトのデフォルトを指定します。

例えば、書式が数値型5桁で ある[顧客番号]という項目の場合、このパラメータの設定と、APGなどで作成したスクリーンモード画面で表示されるプロンプトは、以下のようになります。

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

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: ScreenModePrompt


動作環境 システム 西暦基準年

西暦基準年 (デフォルト: 1920)

設定 > 動作環境 > [システム]タブ

西暦年を４桁（通常19XX）で指定します。この西暦年を基準に、日付項目の書式中の2 桁（YY/MM/DD などのYY）で示される年の正式な年数を判定します。

この設定は、世紀をまたがって指定されている年数の判断のために使用されます。つまり、入力された日付項目中の年2桁の値が、この欄で指定した西暦年の下2桁未満の場合は基準年以降の年と判断され、それよりも大きい場合は基準年以前の年であると判断されます。

例

[西暦基準年]欄に1960 を指定した場合

59/01/01 は、2059/01/01 と判定されます。

60/01/01 は、1960/01/01 と判定されます。

70/01/01は、1970/01/01と判定されます。

[西暦基準年]欄に1980 を指定した場合

02/01/01 は、2002/01/01 と判定されます。

70/01/01は、2070/01/01と判定されます。

99/01/01 は、1999/01/01 と判定されます。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: Century

参照

DATE リテラル


動作環境 システム バッチイベント間隔

バッチイベント間隔 (デフォルト: 1000[1秒])

設定 > 動作環境 > [システム]タブ

バッチタスクの実行中に、Magicエンジンがイベントキューをチェックし、保留イベントの有無を確認する時間間隔です。保留イベントがあった時は、このイベントが処理されます。この設定は、ミリ秒数で指定します。なお、[タスク特性]の[レコードイベント間隔]が設定されている場合は、Magicエンジンは所定のレコード処理間隔ごとにも保留イベントの有無を調べます。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: BatchPaintTime


動作環境 システム タスクキャッシュサイズ

タスクキャッシュサイズ (デフォルト: 0)

設定 > 動作環境 > [システム]タブ

タスクキャッシュは、読み込んだタスクをメモリ上に保存するための仕組みです。よく使用するタスクの処理をスピードアップするには、タスクキャッシュを使用することをお勧めします。

動作環境の設定では、キャッシュサイズをKB単位で指定します。値が0（デフォルト値）の場合は、タスクキャッシュのサイズに制限がないことを示します。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: TaskCacheSize


動作環境 システム 修正モードでの登録許可

修正モードでの登録許可 (デフォルト: Yes)

設定 > 動作環境 > [システム]タブ

有効な値: Yes, No

修正モードでオープンしているレコードの登録を許可するかどうかを指定します。

  • Yes……カーソルが空白行に移動すると、自動的に修正モードから登録モードに変わります。

  • No……修正モードの時、新しいレコードが作成できません。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: AllowCreateInModify


動作環境 システム 照会モードでの修正許可

照会モードでの修正許可 (デフォルト: No)

設定 > 動作環境 > [システム]タブ

有効な値: Yes, No.

照会モードでオープンしているレコードの修正を許可するかどうかを指定します。

  • Yes……照会モードの時に、既存レコードを更新できます。

  • No……既存レコードを更新できません。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: AllowUpdateInQuery


動作環境 システム 照会モード位置付けで確認表示

照会モード位置付で確認表示 (デフォルト: Yes)

設定 > 動作環境 > [システム]タブ

有効な値: Yes, No

ISAMおよびSQLデータベースにおいて、インデックスの無い照会位置付けを実行すると、「インデックスでないカラムに対して位置付けが行われました」というメッセージを表示させるかどうかを指定します。

  • Yes……メッセージが表示されます。ISAMデータベースでは、レコード数が5000を超える場合に表示されます。

  • No……メッセージは表示されません。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: LocateModeQueryWarning


動作環境 システム 動作環境テーブル表示

動作環境テーブル表示 (デフォルト: 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およびコマンドライン名: AccessServices


動作環境 システム 通信ゲートウェイ表示

通信ゲートウェイテーブル表示 （デフォルト: 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およびコマンドライン名: AccessLogging


動作環境 システム 論理名テーブル表示

論理名テーブル表示(デフォルト: Yes)

設定 > 動作環境 > [システム]タブ

有効な値: Yes, No.

[論理名]テーブルへのアクセスを許可するかどうかを設定します。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: AccessLogicalNames


動作環境 システム 言語テーブル表示

言語テーブル表示(デフォルト: Yes)

設定 > 動作環境 > [システム]タブ

有効な値: Yes, No.

[言語]テーブルへのアクセスを許可するかどうかを設定します。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: AccessLanguages


動作環境 システム プリンタテーブル表示

プリンタテーブル表示(デフォルト: Yes)

設定 > 動作環境 > [システム]タブ

有効な値: Yes, No

[プリンタ]テーブルへのアクセスを許可するかどうかを設定します。

変更の反映: 即時

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


動作環境 システム HTMLスタイルテーブル表示

HTMLスタイルテーブル表示 (デフォルト: Yes)

設 定 > 動作環境 > [システム]タブ

有効な値: Yes, No

[HTMLスタイル]テーブルへのアクセスを許可するかどうかを設定します。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: AccessHTMLStyles


動作環境 システム ビジュアル接続表示

ビジュアル接続表示(デフォルト: Yes)

設定 > 動作環境 > [システム]タブ

有効な値: Yes, No.

[ビジュアル接続]テーブルへのアクセスを許可するかどうかを設定します。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: AccessVisualConnection


動作環境 システム プリンタ属性テーブル表示

プリンタ属性テーブル表示(デフォルト: Yes)

設定 > 動作環境 > [システム]タブ

有効な値: Yes, No.

[プリンタ属性]テーブルへのアクセスを許可するかどうかを設定します。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: AccessPrintAttributes


動作環境 システム ログオン許可

ログオン許可(デフォルト: Yes)

設定 > 動作環境 > [システム]タブ

有効な値: Yes, No.

[ログオン]ダイアログへのアクセスを許可するかどうかを設定します。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: AccessLogon


動作環境 システム 外部テストツール使用

外部テストツール使用(デフォルト: No)

設定 > 動作環境 > [システム]タブ

有効な値: Yes, No.

外部テストツール（WinRunner）を有効にするかどうかを指定します。

  • Yes……外部テストツールを使用したテスト環境が有効になり、各コントロールに関する情報が外部テストツールで認識できるようになります（ただし、日本語版では現在サポート対象外です）。
    この設定を「Yes」 にするとMagicをマルチインスタンスで実行することができなくなります。

  • No……外部テストツールを使用したテスト環境は無効になります。

変更の反映: 次のセッションから

MAGIC.INIおよびコマンドライン: AllowTesting


動作環境 システム チェックメッセージ表示

チェックメッセージ表示(デフォルト: Yes)

設定 > 動作環境 > [システム]タブ

有効な値: Yes, No

[チェックメッセージ]テーブルの表示の有無を指定します。

変更の反映:即時

MAGIC.INIおよびコマンドライン名: AccessCheckerMessages


動作環境 システム 最大ファイル数

最大ファイル数(デフォルト: 0)

設定 > 動作環境 > [システム]タブ

1以上の値を指定すると、OSでオープンできる最大ファイル処理数が変更されます。

変更の反映: 次のセッションから

MAGIC.INIおよびコマンドライン名: FileHandles


動作環境 システム ライセンス

ライセンス(デフォルト: MGDEMO)

設定 > 動作環境 > [システム]タブ

この設定により、ライセンスサーバまたはライセンスファイル内の使用可能ライセンスに基づいてMagicエンジンの動作仕様が決定されます。ライセンスファイル内に該当するライセンス情報が見つからない場合、エラーメッセージが表示され、Magicはアボート終了します。ライセンス名が正しくない場合は、ライセンスの設定ダイアログが表示されます。

変更の反映: 次のセッションから

MAGIC.INIおよびコマンドライン名: LicenseName


動作環境 システム ライセンスファイル

ライセンスファイル(デフォルト: インストール環境に依存)

設定 > 動作環境 > [システム]タブ

Magic Application ServerとMagic Clientでは、ホストとポートおよびIPアドレスの組み合わせによってライセンスサーバの場所を指定します。Magic eDeveloper では、ライセンスファイルの場所をパスで指定します。ライセンスサーバやライセンスファイルが見つからない場合は、ライセンスの設定ダイアログが表示されます。

デフォルトはインストールプログラムによって設定されます。

変更の反映: 次のセッションから

MAGIC.INIおよびコマンドライン名: LicenseFile


動作環境 システム リモートデバッガ

リモートデバッガ(デフォルト: No)

設定 > 動作環境 > [システム]タブ

リモートでデバッグを可能にするかどうかを指定します。

変更の反映: 次のセッションから

MAGIC.INIおよびコマンドライン名: EnableRemoteDebugger


動作環境 システム リモートデバッガの使用ポート

リモートデバッガの使用ポート

設定 > 動作環境 > [システム]タブ

リモートデバッガへのアクセス用TCP/IPのポート番号を指定します。他のアプリケーションが使用していないポート番号を指定してください。

変更の反映: 次のセッションから

MAGIC.INIおよびコマンドライン名: RemoteDebuggerPortNumber


動作環境 マルチユーザ

[マルチユーザ]タブ

設定 > 動作環境

[マルチユーザ]タブには、以下の設定項目が含まれています。

端末番号

ISAM トランザクション

デッドロック防止

ロックファイル

リソースロックファイル

ロック前にトランザクション開始（ISAM）


動作環境 マルチユーザ 端末番号

端末番号 (デフォルト:No)

設定 > 動作環境 > [マルチユーザ]タブ

マルチユーザ環境の場合、各エンドユーザの端末にユニークな数値IDを割当てるために使用します。この設定値は、Term関数を使用してプログラムから参照することができます。ユーザごとにリソース（例えばディスクファイル）を作成する必要がある場合、ユーザに特有のリソース名を生成するために利用します。

端末番号は、ユーザごとにファイルなど個別のリソースをアクセスする必要がある場合に利用できます。

デフォルト値は「0」ですが、この場合、Magicは各端末に自動的にユニークな数値を割当てます。ただし、Term関数による識別ができなくなります。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: Terminal


動作環境 マルチユーザ ISAMトランザクション

ISAM トランザクション (デフォルト:No)

設定 > 動作環境 > [マルチユーザ]タブ

有効な値: Yes, No

Magicは通常、使用するデータベースシステムの機能を利用してトランザクション処理を行います。しかし、Pervasive.SQL(MicroKernel)などのISAMファイルが使用される場合は、トランザクションの使用はオプションによる指定となります。プログラムの中でトランザクションが定義されている時、Magicはプログラムで使用しているテーブルのデータベースが何であるかをチェックします。テーブルがISAMデータベースの場合、この設定に基づいて、トランザクション処理を実行するか否かを決定します。

  • Yes……ISAM データファイルに対してトランザクション処理が実行されるようになります。トランザクションを実行した場合、データの整合性が高くなります。トランザクションの実行範囲は、プログラムの定義によります。

  • No……ISAMデータファイルに対するトランザクション処理は実行されません。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: ISAMTransaction


動作環境 マルチユーザ デッドロック防止

デッドロック防止 (デフォルト:No)

設定 > 動作環境 > [マルチユーザ]タブ

有効な値: Yes, No.

Magicには、デッドロックの検出や予防機能がないISAMタイプのデータベース用にデッドロック予防のためのメカニズムが組み込まれています。デッドロック状況は、2人のユーザが所有するリソースをそれぞれのユーザが待っている場合に発生します。例えば、次のようになります

ステーションA | ステーションB
テーブルxをロック | テーブルyをロック
yの読み取りを試行 | xの読み取りを試行

ステーションAはトランザクション内にテーブルxを所有しており、ステーションBが所有しているテーブルyを読み取ろうとしています。ステーションBはテーブルyを所有しており、ステーションAが所有しているテーブルxを読み取ろうとしています。

  • Yes……例のようなデッドロックを予防することができます。

  • No……デッドロックを予防するための特別なアクションは行われません。

デッドロックの検出や予防の機能が組み込まれていないデータベースでは、[デッドロック防止]を「Yes」に設定することをお勧めします。システムで使用されるデータベースに関連する個別の情報については、対応するゲートウェイのドキュメントも参照してください。

注意：

デッドロック防止を有効にすると、システムのパフォーマンスが劣化することがあります。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: DeadlockPrevent


動作環境 マルチユーザ ロックファイル

ロックファイル (デフォルト:mglock.dat)

設定 > 動作環境 > [マルチユーザ]タブ

ロック機能を実現するために使用するファイルの名前を指定します。ロックファイルの名前には、パス名を指定しないでください。パス名は自動的にサポートされます。

ロックファイルはロックされているファイルが存在するディレクトリに作成されます。データの位置は、[データベース]テーブルの[位置]カラムや[データ]リポジトリの[データソース名]カラムで指定することができます。

変更の反映: 次のセッションから

MAGIC.INIおよびコマンドライン名: LockFile

参照

Magicロック

ロックパス

ロック


動作環境 マルチユーザ リソースロックファイル

リソースロックファイル (デフォルト:mgres.loc)

設定 > 動作環境 > [マルチユーザ]タブ

リソースロック関数で使用するリソースロックファイルのパスおよびファイル名を指定します。リソースロックは、Magic独自のロック機能で、各データベースのロックファイル機能を使用していません。

変更の反映: 次のセッションから有効

MAGIC.INIおよびコマンドライン名: ResourceLockFilePath


動作環境 マルチユーザ ロック前にトランザクション開始

ロック前にトランザクション開始（ISAM） (デフォルト:Yes)

設定 > 動作環境 > [マルチユーザ]タブ

有効な値: Yes, No

この設定は、ISAMファイルを開発モードでオープンした場合のみ関係します。「Yes」に設定すると以下のように動作します。

リポジトリ入力時、タスク内で発行されたロックがトランザクション内でない場合、[トランザクション開始]特性は、オープンしたトランザクション内でロックされるように変更されます。

ISAMファイルを使用したタスクのトランザクションのデフォルト設定は、以下のように変更されます。

設定 | バッチタスク | オンラインタスク
Yes | タスク前 | レコードロック時
No | なし | レコード更新前

注意：

この表は、物理トランザクションでのみ有効です。タスクのトランザクションモードが「遅延」から「物理」に変更された場合、[トランザクション開始]特性の値は、このテーブルに基づいて変更されます。

この設定が「Yes」の場合、[トランザクション開始]特性と、[ロック方式]特性の値は、以下のようになります。

 | レコード前の前 | レコード後の前 | レコード更新前 | なし | レコードロック時
即時 | × |  |  |  | ×
入力時 | × |  |  |  | ×
更新時 | × | × | × |  | ×
なし | × | × | × | × | ×

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: LockWithinTran


動作環境 動作設定

[動作設定]タブ

設定 > 動作環境

[動作設定]タブには、以下の設定項目が含まれています。

デフォルトデータベース

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

範囲／位置付ポップアップ秒数

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

キーボード休止秒数

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

自動終了時確認

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

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

MAGIC.INI 常駐

GUI実行時ツールバー

常駐テーブル読込

メッセージの詳細表示

カーソルの画面中央位置付

修正後の再位置付

インデント文字

デフォルト色

デフォルトフォント

ツールチップ表示タイムアウト

ブックマークの最大登録数

クロスリファレンスの結果の最大登録数

コマンド処理のリトライ間隔

入出力デバイスのオープンタイミング

フロートパレットを常に全面表示

パレット結合可

単一拡張パレット

特性シートの自動操作

イメージキャッシュサイズ

イメージキャッシュ

最小チェックレベル

メッセージのグループ化

チェック項目の自動位置付

Windows XP のテーマを使用

ロジックユニットの自動作成

最近のプロジェクト数

使用コンポーネント

デフォルトソースディレクトリ

デフォルト出力ディレクトリ

開発エンジン開始モード

テキスト形式互換

プリントキューの区切り文字

印刷中断許可


動作環境 動作設定 デフォルトデータベース

デフォルトデータベース (デフォルト:Default Database)

設定 > 動作環境 > [動作設定]タブ

システムデフォルトとしてMagicによって使用されるデータベースの名前を指定します。XMLデータベースを指定することもできます。

このデフォルトはプロジェクトやレポート、およびデータベースファイルで使用され、これらのレベルで上書きすることができます。この名前は、データベーステーブルであらかじめ定義されているものから選択します。データベース一覧を参照するには、[編集／ズーム]（F5）を実行してください。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: DefaultDatabase


動作環境 動作設定 ソート一時データベース

ソート／一時用データベース (デフォルト:Memory)

設定 > 動作環境 > [動作設定]タブ

ソートテーブル、または一時保存用（埋め込みSQLの結果テーブルなど）として必要なその他の一時データベーステーブルを作成するためにMagicによって使用されるデータベースの名前を指定します。

例えば、メモリを使用する高速なISAMデータベース（メモリテーブルなど）を指定することで、ソートのパフォーマンスを向上させることができます。

ここには、[データベース]テーブルであらかじめ定義されているものから選択します。[データベース一覧]を参照するには、[編集／ズーム]（F5）を実行してください。ただしXMLデータベースやDB2 UDB、ODBCはソートデータベースとして使用することはできません。

注意：

[ソート／一時用データベース]に指定するデータベースは、[データベース]テーブルの[位置]カラムを指定しないでください。

変更の反映: 次のセッションから

MAGIC.INIおよびコマンドライン名: TempDatabase


動作環境 動作設定 範囲位置付ポップアップ秒数

範囲／位置付ポップアップ秒数 (デフォルト:10)

設定 > 動作環境 > [動作設定]タブ

[範囲]または[位置付]のポップアップウィンドウを最初に表示し、その後更新するまでの時間（秒数）を指定します。[範囲]または[位置付]ポップアップウィンドウは、データベーステーブルで逐次検索処理を実行した場合に必ず表示され、すでに検索されているレコードの数を表示します。ウィンドウを表示しない場合は、このフラグを「0」に設定します。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: RangePopTime


動作環境 動作設定 ソート一時用ポップアップ秒数

ソート／一時用ポップアップ秒数 (デフォルト:10)

設定 > 動作環境 > [動作設定]タブ

[ソート/一時用]ポップアップウィンドウを最初に表示し、その後更新するまでの表示時間（秒数）を指定します。[ソート/一時用]ポップアップウィンドウは、ソート処理コマンドがデータベースファイルで実行された場合に必ず表示されます。　[ソート/一時用]ポップアップウィンドウは、すでにソートされているレコードの数を表示します。ウィンドウを表示しない場合は、このフラグを「0」に設定します。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: TempPopTime


動作環境 動作設定 キーボード休止秒数

キーボード休止秒数 (デフォルト:1)

設定 > 動作環境 > [動作設定]タブ

キーボード操作がない時の休止信号間の時間（秒数）を指定します。対話型のセッション中、Magicはユーザ入力を待ちます。ユーザ入力がないと、休止信号が出され、他の処理が実行できるようになります。[キーボード休止秒数]の値は、休止信号が出されるまでの非活動時間です。

この設定は、Idle関数の戻り値に影響します。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: IdleTime


動作環境 動作設定 プルダウンメニュータイムアウト

プルダウンメニュータイムアウト (デフォルト:0)

設定 > 動作環境 > [動作設定]タブ

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

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

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

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: MenuCloseTimeout


動作環境 動作設定 自動終了確認

自動終了時確認 (デフォルト:No)

設定 > 動作環境 > [動作設定]タブ

有効な値: Yes, No.

Magicのダイアログボックスまたはテーブルの項目を修正し、ダイアログまたはリポジトリ内の編集処理の終了（Esc）を指示すると、[変更を保存しますか?]確認ダイアログが表示されます。終了動作が暗黙である場合もあります。

例えば、あるタスクの[ロジック]エディタの編集時に、[プロジェクト／データ]（Shift+F2）を選択して、[データ]リポジトリに切り替えたとします。この場合、Magicは、[タスク]エディタから内部的な[終了]要求を受け取ります。すでに[ロジック]エディタを修正していれば、[データ]リポジトリに制御が渡される前に[変更を保存しますか?]確認ダイアログが表示されます。このような内部的「終了」動作のことを「自動終了」と呼びます。

  • Yes……ユーザ要求による自動終了時に確認ダイアログが表示されます。このため、現在の内容（修正されたテーブルまたはダイアログ）と要求された内容との間の変更について、修正されたダイアログまたはテーブルごとにユーザに明示的な確認を要求します。例えば、現在の内容が、[ロジック]エディタの編集中にオブジェクトとして呼び出されたタスクの[イベント]テーブルであり、[イベント]と[ロジック]エディタの両方が修正されたとします。
    この時に、[プロジェクト／データ]（Shift+F2）を選択して[データ]リポジトリ（要求した内容）を編集する場合、最初に[イベント]テーブルに対する確認ダイアログが表示され、次に[ロジック]エディタに対して確認ダイアログが表示されます。両方の確認を受け取った時のみ、Magicは[データ]リポジトリに進みます。

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

この設定における取消しとは、オブジェクトの修正内容を反映せずにリポジトリに戻ることを意味しています。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: ConfirmAutoExit


動作環境 動作設定 コピーライトメッセージ表示

コピーライトメッセージ表示 (デフォルト:Yes)

設定 > 動作環境 > [動作設定]タブ

有効な値: Yes, No.

Magicのコピーライトメッセージ（MagicウィンドウのタイトルやMAGIC情報のコピーライト）の表示を制御し、実行するアプリケーションをカスタマイズするために使用します。この指定は、実行エンジン（eDevRTE.exe）でのみ有効です。

  • Yes……コピーライトメッセージが表示されます。

  • No……コピーライトメッセージが表示されません。

注意：

[実行時のカスタムコピーライト]欄に文字列を入力されていない場合、この設定は無効になります。

変更の反映: 次のセッションから

MAGIC.INIおよびコマンドライン名: CopyrightMessages


動作環境 動作設定 実行時のカスタムコピーライト

実行時のカスタムコピーライト (デフォルト:なし)

設定 > 動作環境 > [動作設定]タブ

アプリケーションを実行した時に、Magicの実行モジュールのユーザに対して表示されるテキストデータを設定します。このパラメータのテキストは、次の位置に表示されます。

  • Magicウィンドウのタイトル（タスクバーのアイコンを含む）

  • [Magic情報]ダイアログ内のMagicバージョン情報の表示位置

注意：

[Magic情報]のダイアログのメッセージは複数行にまたがる場合があります。このような場合は、メッセージテキスト内で改行位置に「\」記号を記述してください。ただし、タイトル行では改行表示になりません。

変更の反映: 次のセッションから

MAGIC.INIおよびコマンドライン名: RTUserCopyright


動作環境 動作設定 MAGIC.INI常駐

MAGIC.INI 常駐 (デフォルト:No)

設定 > 動作環境 > [動作設定]タブ

有効な値: Yes, No.

MAGIC.INIファイルの内容をメモリに常駐させるかどうかを指定します。

  • Yes……MAGIC.INIファイルの内容がメモリ内に常駐します。常駐させることにより、MAGIC.INI変数への読み取りアクセスが速くなるためシステムのパフォーマンスが向上します。MAGIC.INIの内容が更新された時は、Magicが終了する時に値がディスクに書き込まれます。

  • No……MAGIC.INIIファイルに対する照会または更新のたびに、ディスクへの読み取りと書き込みが行われます。

変更の反映: 次のセッションから

MAGIC.INIおよびコマンドライン名: ResidentINI.


動作環境 動作設定 GUI実行時ツールバー

GUI実行時ツールバー (デフォルト:Yes)

設定 > 動作環境 > [動作設定]タブ

有効な値: Yes, No

ツールバー表示の有無を指定します。

  • Yes……ツールバーが表示されます。

  • No……ツールバーは表示されません。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: RtToolBarGUI


動作環境 動作設定 常駐テーブル読込

常駐テーブル読込 (デフォルト:No)

設定 > 動作環境 > [動作設定]タブ

有効な値: Yes, No.

常駐テーブル読込の有効無効をグローバルに設定します。

  • Yes……常駐テーブル読込は有効になりますが、各々のテーブルに対して、常駐テーブルにするための設定が必要です。

  • No……常駐テーブル読込は無効となります。

変更の反映: 次のセッションから

MAGIC.INIおよびコマンドライン名: LoadResidentFiles


動作環境 動作設定 メッセージの詳細表示

メッセージの詳細表示 (デフォルト:Yes)

設定 > 動作環境 > [動作設定]タブ

有効な値: Yes, No

SQLデータベースを使用するアプリケーションを実行中に、制約違反などが発生すると、RDBMSがエラーを返します。MagicはRDBMSから受け取った最後のエラーをバッファに保持します。

  • Yes……実行時のエラーが全て表示され、バッファはクリアされます。

  • No……実行時のエラーは表示されません。プログラムでDbERR関数やErrDbmsMessage関数などを使用してバッファから内容を文字列として変数に取得し、処理することができます。

注意：

[メッセージの詳細表示」を「Yes」に設定している時は、エラーメッセージが表示され、バッファをクリアしてしまいます。このため、DbERRやErrDbmsMessage 関数でエラーメッセージを取得できません。アプリケーションの要求仕様によって、どちらの設定にすべきかを判断してください。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: DisplayFullMsgs


動作環境 動作設定 カーソルの中央位置付

カーソルの画面中央位置付 (デフォルト:No)

設定 > 動作環境 > [動作設定]タブ

有効な値: Yes, No

デフォルトでは、現在のレコードはテーブルの先頭に表示されます。この場合、ユーザによってはそれ以前のレコードが存在しないもの受け取られる場合があります。このような場合、このパラメータをYesに設定することで、現在のレコードはテーブルの中央に表示されるようになります。

この設定は、[テーブル]コントロールを使用してデータベーステーブルにアクセスを行う場合、オンラインタスクの性能に影響します。つまり、フォーム上に[テーブル]コントロールが配置されたオンラインタスクだけがこの設定に影響されます。

この設定は、インデックスを使用するかどうかにかかわらず、双方向でメインソースの照会を行う時に有効です。フォームの上に[テーブル]コントロールを配置したオンラインタスクのみ有効です。

  • Yes……画面の再描画に先立って、まず画面の中央に現在のレコードを位置付けし、画面の残りの部分を埋めるために、現在のレコードの前後のレコードを読み込みます。
    その結果、２ つのカーソルをオープンします。１ つは、現在のレコード位置から前方を読むため、もう１ つは、後方を読むために使用されます。

  • No……現在のレコードを画面の最上部に位置付けるように設定します。再描画された画面には表示されないため、現在のレコード位置から前のレコードを参照するためのカーソルをオープンする必要性がなくなります。

この欄は以下の状況で有効です。

  • タスクのモードを「修正」、「照会」、「位置付」、「インデックス変更」、「ソート」から「修正」または「照会」に変更した後。

  • [次に位置付]の操作後。

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

この欄は以下の状況においては無効です。

  • 新規の範囲を指定するかどうかにかかわらず、「範囲」モードから別のモードに移り、範囲の最初のレコードに移動した場合。

  • 新規のソートを行い、「ソート」モードから別のモードに移り、範囲の最初のレコードに移動した場合。

  • 「登録」モードから別のモードに移り、範囲の最初のレコードに移動した場合。

この設定は、Magic のエンジン自体によって制御されるため、ゲートウェイが異なっても機能は有効です。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: CenterScreenInOnline


動作環境 動作設定 修正後の再位置付

修正後の再位置付 (デフォルト:No)

設定 > 動作環境 > [動作設定]タブ

有効な値: Yes, No

フォームに[テーブル]コントロールが配置されているオンラインタスクの性能に影響します。

  • Yes……タスクのメインソースのインデックスセグメント値に変更があった場合、または修正モードで新規のレコードが挿入された場合、既存のレコードに対して以下の処理が実行されます。

  • 現在のレコードをデータベースに書き込みます。

  • 現在のテーブルの一画面分のレコードを上から下まで再読込されます。この後、変更されたレコードが、そのレコードの表示順に応じた位置に表示されます。もし、レコードが表示順の関係でテーブルの外に表示されるような場合、レコードはユーザからは見えなくなります。

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

  • No ……上記の2 番目の処理（再読込）が実行されなくなります。このため、スクロールによりテーブルの外に出るまでレコードは以前の位置に表示されます。この場合、位置が変わらないため表示順序は規則から外れることになります。

なお、この欄の値より、タスク制御の[ウィンドウ再表示]欄の値が優先されます。つまり、[ウィンドウ再表示]欄を「Yes 」とした場合、[修正後の再位置付]の設定にかかわらず、レコードが更新されるごとにデータベースからレコードが再読込されます。この処理は、メインソースのインデックスセグメントの値の変更とは関係なく実行されます。

注意：

この設定を「Yes」とした場合、表示の更新が行われなくなるため、場合によっては同じレコードがテーブルに2 つ表示されることがあります。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: RepositionAfterModify


動作環境 動作設定 インデント文字

インデント文字 (デフォルト:3)

設定 > 動作環境 > [動作設定]タブ

HTML ページとRTF コントロールで使用するインデント間隔の文字数を指定します。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: IndentCharacters


動作環境 動作設定 デフォルト色

デフォルト色 (デフォルト:1)

設定 > 動作環境 > [動作設定]タブ

基本色テーブルに新しい行を作成した時の初期値となる色番号を指定します。この設定は、実行アプリケーション内での色指定がない場合に初期値として使用されます。

新しい行を基本色テーブルに追加すると、Magicはこのデフォルト色を初期値として使用します。デフォルト色の指定がされていない場合、Magic のシステムデフォルト値として以下の色が使用されます。

  • 前景色……システム色[ウィンドウ内の文字]

  • 背景色……システム色[ボタンの表面]

アプリケ－ションが実行している時、そのプログラム内部で色指定が行われない場合は、Magic は、ここで指定された色番号を使用します。この設定値が指定されていない場合は、上記のシステムデフォルト値を使用します。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: DefaultColor


動作環境 動作設定 デフォルトフォント

デフォルトフォント (デフォルト:1)

設定 > 動作環境 > [動作設定]タブ

フォントテーブルに新しい行を作成した時の初期値となるフォント番号を指定します。この値は、実行アプリケーションでフォントの指定がない場合、デフォルトフォントとして使用されます。開発者が新しい行をフォントテーブルに追加すると、Magic は、このデフォルトフォントを初期値として使用します。

デフォルトフォントが指定されていない場合は、Magic のシステムデフォルト値として「MS Sans Serif 8pt」が指定されます。アプリケーションを実行している時、プログラム内部でフォント指定が行われていない場合は、Magic は、ここで指定されたフォント番号を使用します。また、この値が指定されていない場合には、Windows のデフォルトフォントを使用します。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: DefaultFont


動作環境 動作設定 ツールチップ表示タイムアウト

ツールチップ表示タイムアウト (デフォルト:5)

設定 > 動作環境 > [動作設定]タブ

プロジェクトの開発時の式や、実行時のコントロール上に表示されるツールチップの表示時間を秒数で指定します。最大値は31秒です。

ツールチップを非表示にするには、[ツールチップ表示タイムアウト]を「0」に設定します。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: TooltipTimeout


動作環境 動作設定 ブックマークの最大登録数

ブックマークの最大登録数 (デフォルト:10)

設定 > 動作環境 > [動作設定]タブ

保存するブックマークの最大登録数を定義します。各プロジェクトのブックマーク情報は、各プロジェクトのカレントフォルダに「BookMark.BMK」というファイルに保存されます。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: MaxBookMarks


動作環境 動作設定 X-Ref結果の最大登録数

クロスリファレンスの結果の最大登録数 (デフォルト:5)

設定 > 動作環境 > [動作設定]タブ

保存するクロスリファレンス（クロスリファレンス）結果の最大数を定義します。各プロジェクトのブックマーク情報は、各プロジェクトのカレントフォルダに「CrossRef.XRF」というファイルに保存されます。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: MaxCrfResults


動作環境 動作設定 コマンド処理のリトライ間隔

コマンド処理のリトライ間隔 (デフォルト:600)

設定 > 動作環境 > [動作設定]タブ

この設定は、定義した操作が再試行されるまでの時間を秒数で指定します。

テーブルロック時にリトライする時間もこの設定で制御されます。アプリケーションサーバの実行時など、ユーザが強制終了できないプログラムでテーブルロックが発生した場合、常にこの値までリトライします。

デフォルトのリトライ間隔は、600秒（10分）です。「0」に設定すると、リトライしません。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: RetryOperationTime


動作環境 動作設定 入出力デバイスのオープンタイミング

入出力デバイスのオープンタイミング (デフォルト:I=即時)

設定 > 動作環境 > [動作設定]タブ

入出力デバイスのオープンタイミングは以下の２つの方法で制御できます。

  • I=即時……入出力を定義したタスクがオープンされた時点で実行されます。

  • O=利用時……[フォーム出力／入力]処理コマンドを実行したり、入出力デバイスを制御する関数EOF, EOP, Line, Page など）が実行された時点で実行されます。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: IOTiming


動作環境 動作設定 フロートパレットを前面表示

フロートパレットを常に前面表示 (デフォルト:Yes)

設定 > 動作環境 > [動作設定]タブ

有効な値： Yes, No

[ナビゲータ]、[特性シート]、[コメント]の各ペインがフローティング表示している場合の動作を指定します。

  • Yes……EscまたはEnterキーを押下しても フローティングパレットは閉じません。カーソルは[ワークスペース]ペインに移動します。この設定は、[パレット結合可]の動作に影響しません。

  • No……EscまたはEnterキーで Magicのフローティングパレット（ナビゲータ、特性シート、コメント）は閉じます。カーソルは[ワークスペース]ペインに移動します。
    複数のパレットが同じフローティングウィンドウ上にある場合も、Escまたは Enterキーでウィンドウが閉じます。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: PalettesAlwaysOnTop


動作環境 動作設定 パレット結合可

パレット結合可 (デフォルト:Yes)

設定 > 動作環境 > [動作設定]タブ

有効な値：Yes,No

  • Yes……フローティング状態のペインを[ワークスペース]ペインの境界にドラッグ＆ドロップすることで結合させることができます。

  • No……フローティング状態のペインを[ワークスペース]ペインに結合させることはできません。
    このオプションは、すでに結合されているペインには影響しません。ただし、一旦フローティング状態にすると元に戻せなくなります。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: DockablePalettes


動作環境 動作設定 単一拡張パレット

単一拡張パレット (デフォルト:No)

設定 > 動作環境 > [動作設定]タブ

有効な値：Yes,No

[特性シート]のツリー表示を全て展開して表示するか否かを指定します。

  • Yes……指定したセクションのみ展開して表示します。別のセクションを展開表示させると、今までのセクション表示が閉じます。

  • No……[特性シート]のツリー表示を全て展開して表示します。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: SingleExpandPalettes


動作環境 動作設定 特性シートの自動操作

特性シートの自動操作 (デフォルト:C=閉じる)

設定 > 動作環境 > [動作設定]タブ

有効な値：N=無効、C=閉じる、O=開く、F=全て

リポジトリを開いた時に関連する[特性シート]を自動的に開くかどうかを指定します。

  • N=無効……[特性シート]のオープン／クローズを自動制御しません。

  • C=閉じる ……現在のリポジトリを閉じると[特性シート]は自動的に閉じます。

  • O=開く……リポジトリを開くと関連する[特性シート]が自動的に開きます。

  • F=全て ……リポジトリのオープン／クローズに連動して、関連する[特性シート]も自動的にオープン／クローズします。

[特性シート]が自動的に開いても、フォーカスはワークスペース上に残り、[特性シート]には移動しません。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: AutomaticPropertySheet


動作環境 動作設定 イメージキャッシュサイズ

イメージキャッシュサイズ (デフォルト:0)

設定 > 動作環境 > [動作設定]タブ

有効な値：数値

アプリケーションが画像を表示する際のキャッシュメモリサイズの最大値を指定します。

  • 正数値……画像キャッシュサイズをKByte 単位で指定します。

  • 0……サイズの制限がなくなります。

  • -1……キャッシュしません。

キャッシュの制限を越えた場合、使用頻度のもっと低い画像データから削除され、空きを作ります。

変更の反映: 次のセッションから

MAGIC.INIおよびコマンドライン名: ImageCacheSize


動作環境 動作設定 イメージキャッシュ

イメージキャッシュ (デフォルト:No)

設定 > 動作環境 > [動作設定]タブ

有効な値：Yes,No

画像のキャッシュ方法を指定します。

  • Yes ……キャッシュされた画像は、各画像ファイル毎のタイムスタンプを作成することで、変更されたことを認識します。画像が表示される前に、Magicは、タイムスタンプをチェックします。もし、タイムスタンプが更新されている場合は、再読込を行います。処理中にイメージが変更される場合には、「Yes」にしてください。

  • No ……タイムスタンプによる比較処理は実行されません。このため、キャッシュされた画像の表示時間が早くなります。

変更の反映: 次のセッションから

MAGIC.INIおよびコマンドライン名: ImageCacheCheckTime


動作環境 動作設定 最小チェックレベル

最小チェックレベル (デフォルト:R=推奨)

設定 > 動作環境 > [動作設定]タブ

有効な値：E=エラー、W=警告、R=推奨

構文チェックユーティリティがチェックする最小レベルを指定します。

  • E=エラー……エラーメッセージのみ表示する

  • W=警告……エラーおよび、警告メッセージを表示する

  • R=推奨……エラー、および、警告メッセージ、推奨を表示します。

変更の反映: 即時

Magic INI と コマンドライン名: CheckerLevel


動作環境 動作設定 メッセージのグループ化

メッセージのグループ化 (デフォルト:No)

設定 > 動作環境 > [動作設定]タブ

有効な値：T=タイプ、O=オブジェクト

構文チェックの結果メッセージを、結果ウィンドウ上にどのようなグループ化で表示するかを指定します。

  • O=オブジェクト……Magicのオブジェクト（例： モデル、データソース、および、プログラム）ごとにグループ化します。そのグループ内でエラーが発見される順に並んで表示されます。

  • T=タイプ……メッセージのタイプ（エラー、警告、推奨）ごとにグループ化します。そのグループ内でエラーが発見される順に並んで表示されます。

  • B=オブジェクトとタイプ……メッセージのタイプとMagicのオブジェクトの組み合わせでグループ化されます。

変更の反映: 即時

Magic INI と コマンドライン名: CheckerGroups


動作環境 動作設定 チェック項目の自動位置付

チェック項目の自動位置付 (デフォルト:Yes)

設定 > 動作環境 > [動作設定]タブ

有効な値：Yes,No

オブジェクトの構文チェックを（F8）を実行した後、自動的に最初のチェックメッセージをハイライト表示し、エラー箇所にカーソルを移動させるかどうかを指定します。

変更内容: 即時

Magic INI と コマンドライン名: CheckerJumpAuto

参照

構文チェックユーティリティ


動作環境 動作設定 WindowsXPテーマ

Windows XP のテーマを使用 (デフォルト:Yes)

設定 > 動作環境 > [動作設定]タブ

有効な値：Yes,No

この設定は、OSが WindowsXP の時のみ有効です。

  • Yes ……コントロールの[スタイル]特性が「W=Windows」に設定されている場合、Windows XP のテーマを使用して表示します。

  • No ……コントロール特性の設定内容に関わらずテーマは使用されません。

注意：

  • OSのThemesサービスが実行されており、[画面のプロパティ]で「Windows XPスタイル」が設定されている場合この設定が有効になります。

  • 以下のコントロールには影響しません。

  • スタティック

  • ライン

  • サブフォーム

  • イメージ

  • OLE

変更内容: 即時

Magic INI と コマンドライン名: UseWindowsXPThemes


動作環境 動作設定 ロジックユニット自動作成

ロジックユニットの自動作成 (デフォルト:N=なし)

設定 > 動作環境 > [動作設定]タブ

有効な値：N=なし,T=タスク,R=レコード,A=タスクとレコード

この設定は、プログラムを新規作成した時に、自動的にタスク前／後、レコード前／後などのデフォルトのロジックユニットを作成するかどうかを指定します。

  • N=なし …… [ロジック]エディタには、何も定義されません。

  • T=タスク …… [ロジック]エディタには、タスク前／後が定義されます。

  • R=レコード …… [ロジック]エディタには、レコード前／後が定義されます。

  • A=タスクとレコード …… [ロジック]エディタには、タスク前／後とレコード前／後が定義されます。

変更の反映: 即時

Magic INI と コマンドライン名: AutoCreateTaskLogicUnits


動作環境 動作設定 最近のプロジェクト数

最近のプロジェクト数 (デフォルト:4)

設定 > 動作環境 > [動作設定]タブ

有効な値：数値

この設定は、最近開いたプロジェクトの履歴を保存する数を指定します。

最大「99」まで指定できます。

変更内容: 即時

Magic INI と コマンドライン名: NumberOfRecentProjects


動作環境 動作設定 使用コンポーネント

使用コンポーネント (デフォルト:C=キャビネットファイル)

設定 > 動作環境 > [動作設定]タブ

有効な値：C=キャビネットファイル,P=プロジェクト

この設定は、コンポーネントをキャビネットファイルで呼び出すか、プロジェクトファイルで呼び出すかを指定します。開発エンジンでのみ有効です。

  • C=キャビネットファイル ……コンポーネントをキャビネットファイルで呼び出します。

  • P=プロジェクトファイル ……コンポーネントをプロジェクトファイルで呼び出します。

変更内容: 即時

Magic INI と コマンドライン名: OpenComponentsUsing


動作環境 動作設定 デフォルトソース

デフォルトソースディレクトリ (デフォルト:Source)

設定 > 動作環境 > [動作設定]タブ

有効な値：文字列（ディレクトリ名）

プロジェクトのソースファイルは、プロジェクトディレクトリ内のサブディレクトリに作成されます。

この設定は、ソースファイル用のサブディレクトリの名前を指定するものです。プロジェクトが作成された場合、ソースサブディレクトリ名はプロジェクトファイルに保持されます。この設定の値を変更しても、作成されたプロジェクトには影響しません。

ソースファイルは、ソースサブディレクトリ内に保持されて処理されます。

例えば、サブディレクトリ名がMAGIC.INIファイルで「SRC」と設定され、C:\Apps\ ディレクトリにプロジェクト「ABC」が作成された場合、以下のようになります。

  • プロジェクトディレクトリ …… C:\Apps\ABC

  • プロジェクトファイル …… C:\Apps\ABC\ABC.edp

  • ソースサブディレクトリ …… C:\Apps\ABC\SRC\

  • XMLファイルの作成ディレクトリ …… C:\Apps\ABC\SRC\

変更内容: 即時

Magic INI と コマンドライン名: DefaultSourceDir


動作環境 動作設定 デフォルト出力

デフォルト出力ディレクトリ (デフォルト:Exports)

設定 > 動作環境 > [動作設定]タブ

有効な値：文字列（ディレクトリ名）

この設定は、リポジトリ出力を行なう際の出力先のサブディレクトリのデフォルト値を指定します。例えば、「EXP」と指定した場合、出力先は「'プロジェクトのフォルダ'\EXP」となります。

プロジェクトが作成された場合、デフォルト出力ディレクトリの名前はプロジェクトファイルに保持されます。この設定の値を変更しても、作成されたプロジェクトには影響しません。

変更内容: 即時

Magic INI と コマンドライン名: DefaultExportsDir


動作環境 動作設定 開発エンジン開始モード

開発エンジン開始モード （デフォルト：W=ウェルカムダイアログを表示）

設 定 > 動作環境 > [動作設定]タブ

有効な値：W,E,R

開発エンジンが起動した時に最初に表示するウィンドウを指定します。

  • W=ウェルカムダイアログを表示……Magic Ver10用のウェルカムダイアログが表示されます。ここには、最近オープンしたプロジェクトが一覧表示されます。このウィンドウからプロジェクトを選択したり、新規作成を実行したりすることができます。

  • E=空のダイアログを表示……ウェルカムダイアログは表示されず、MagicのMDIが表示されます。

  • R=最近使ったプロジェクトを開く……直近でオープンしたプロジェクトがオープンされます。

変更内容: 次のセッションで有効

Magic INI と コマンドライン名: StudioStartupMode


動作環境 動作設定 テキスト形式互換

テキスト形式互換 （デフォルト：No）

設 定 > 動作環境 > [動作設定]タブ

有効な値：Yes,No

この欄は、過去のバージョンとの互換性のために用意されています。

  • Yes……V5.xでの[エディット]コントロールの複数行テキストは、拡張ウィンドウ内でEnterキーを押下した時、[CR]，[LF]コードの挿入により改行を実現するのではなく、行末まで空白を埋めることで、見かけ上の複数行編集表示を実現していました。
    つまり、項目内のデータは、実際のテキストと、編集ウィンドウのサイズに整形するための空白とから成っていました。このような編集方法を互換性維持のために使用する必要がある時に、このパラメータを[Yes]に設定します。

  • No……複数行を許可したエディットコントロールの拡張ウィンドウ内でEnterキーを押下すると、[CR]，[LF]のコードがテキストに挿入され、次行へ移動します。Ver6以降では、これが標準の方法です。

変更内容: 即時

Magic INI と コマンドライン名: MLETextbaseCompatible


動作環境 動作設定 プリントキューの区切り文字

プリントキューの区切り文字 （デフォルト： / ）

設 定 > 動作環境 > [動作設定]タブ

有効な値：任意の文字

MAGIC.INI のプリンターキュー定義中の区切り文字を指定します。

変更の反映：　次のセッションで有効

MAGIC.INIおよびコマンド行：　PrintQueueDelimit


動作環境 動作設定 印刷中断許可

印刷中断許可 （デフォルト：Yes ）

設 定 > 動作環境 > [動作設定]タブ

有効な値：任意の文字

Yesに設定すると、印刷のキャンセルができるようになります。

変更の反映：　即時

MAGIC.INIおよびコマンド行：　PrintCancel


動作環境 国別指定

[国別設定]タブ

設定 > 動作環境

[国別設定]タブには、以下の設定項目が含まれています。

日付タイプ

３桁区切文字

小数点

日付区切文字

時刻区切文字

外部コードページ

IMEの初期入力状態

IMEを自動的にオフ


動作環境 国別設定 日付タイプ

日付タイプ (デフォルト:J=日本)

設定 > 動作環境 > [国別設定]タブ

有効な値: A=アメリカ、E=ヨーロッパ、J=日本

システム全体で使用される日付の表示形式を指定します。例えば、2001年6月25日は次のように表示されます。

設定 | 書式 | 表示
A=アメリカ | MM/DD/YY | 06/25/01
E=ヨーロッパ | DD/MM/YY | 25/06/01
J=日本 | YY/MM/DD | 01/06/25

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: DateMode


動作環境 国別設定 3桁区切り文字

３桁区切文字 (デフォルト: , )

設定 > 動作環境 > [国別設定]タブ

数値型の項目に使用される区切文字を指定します。ここで指定した文字は、実行モード時に使用されます。

開発モードでは、この設定にかかわらず、3 桁区切文字としてはカンマが使用されます。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: ThousandSeparator


動作環境 国別設定 小数点

小数点 (デフォルト: . )

設定 > 動作環境 > [国別設定]タブ

数値型の項目の整数部と小数部を分ける区切文字を指定します。ここで指定した文字は、実行モード時に使用されます。

開発モードでは、この欄の設定にかかわらず、小数点としてはピリオドが使用されます。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: DecimalSeparator


動作環境 国別設定 日付区切文字

日付区切文字 (デフォルト: / )

設定 > 動作環境 > [国別設定]タブ

日付型の項目の月、日、年を分ける区切文字を指定します。ここで指定した文字は、実行モード時に使用されます。日付の表示順は、前述の[日付モード]欄で指定できます。

開発モードでは、この欄の設定にかかわらず、日付区切文字としては、スラッシュ（/）が使用されます。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: DateSeparator


動作環境 国別設定 時刻区切り文字

時刻区切文字 (デフォルト: : )

設定 > 動作環境 > [国別設定]タブ

時刻型の項目の時間、分、秒を分ける区切文字を指定します。ここで指定した文字は、実行モード時に使用されます。

開発モードでは、この欄の設定にかかわらず、時刻区切文字としてはコロンが使用されます。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: TimeSeparator


動作環境 国別設定 外部コードページ

外部コードページ (デフォルト: 932)

設定 > 動作環境 > [国別設定]タブ

この設定は、外部データ変換で使用されるコードページを指定します。

何も指定されていない場合、Magicはシステムのデフォルトコードページを使用します。CodePage関数を使用して変更することもできます。外部コードページはコンテキストに依存します。

ブラウザタスクでは、作成される各HTMLページに、METAタグを埋め込むことによって定義された文字セットを使用することを指示します。

<META HTTP-EQUIV="Content-Type" content="text/html; charset=XXX">

XXX：環境設定によって指定された文字セット

この情報は、ブラウザクライアントモジュールに、Magicアプリケーションサーバエンジンに渡される入力データを翻訳するために定義されたエンコーディングテーブルを使用することを指示する場合にも使用されます。

HTMLページにすでにMETAタグが定義されている場合、このタグを変更することはありません。しかし、ブラウザクライアントモジュールは、環境設定によって定義されたエンコーディングテーブルを使用します。

変更の反映: 次のセッションから

MAGIC.INIおよびコマンドライン名: ExternalCodePage


動作環境 国別設定 IMEの初期入力状態

IMEの初期入力状態 （デフォルト：N=無効）

設 定 > 動作環境 > [国別設定]タブ

有効な値：　N=無効、Y=有効、R=ローマ字、K=カナ

IME を起動する場合の初期入力方式を指定します。

  • N=無効……IME の初期入力方式の設定を無視します。

  • Y=有効……現在IME で設定されている初期入力方式をそのまま使用します。

  • R=ローマ字……IME の初期入力方式をローマ字として起動します。

  • K=カナ……IME の初期入力方式をかなとして起動します。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: NewIMECtrl


動作環境 国別設定 IMEを自動的にオフ

IMEを自動的にオフ （デフォルト：No）

有効な値：　Yes、No

任意に起動したIMEの状態を、項目間移動時に引き継ぐか否かを決定します。

  • Yes……状態を引き継がず、IMEをオフの状態にします。

  • No……状態を引き継ぎます。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: IMEAutoOff


動作環境 外部参照

[外部参照]タブ

設定 > 動作環境

[外部参照]タブには、以下の設定項目が含まれています。

ロゴファイル

CONSTファイル

ヘルプファイル

開発用基本色定義ファイル

アプリケーション用基本色定義ファイル

内部用基本色定義ファイル

開発用フォント定義ファイル

アプリケーション用フォント定義ファイル

内部用フォント定義ファイル

開発用キーボード割付ファイル

実行用キーボード割付ファイル

HTMLスタイルファイル

プリンタ属性ファイル

セキュリティファイル

OEMからANSIへの変換ファイル

照合順序ファイル

デフォルト言語

チェックメッセージファイル

ドロップデータサポート・ユーザフォーマット

コマンドプロセッサ

HTTP Proxy :アドレス:ポート

HTTP タイムアウト

データ出力用HTML テンプレート

データ出力用XML テンプレート

SOAPクライアントモジュールのパス

SOAPSpyのアドレス

メール接続タイムアウト

メール処理タイムアウト

SNMP データベース接続しきい値

LDAP アドレス：ポート番号

LDAP 接続文字列

LDAP ドメインコンテキスト

LDAP タイムアウト

SSL CA 証明書ファイル

SSL クライアント証明書ファイル

SSL クライアント証明書パスワード

差分ツールコマンドライン


動作環境 外部参照 ロゴファイル

ロゴファイル (デフォルト: なし)

設定 > 動作環境 > [外部参照]タブ

Magicの起動画面に表示されるシステムロゴファイルの（パス名を含んだ）ファイル名を指定します。ファイルはBMP/JPEG形式のものを使用してください。

変更の反映: 次のセッションから

MAGIC.INIおよびコマンドライン名: LogoFile


動作環境 外部参照 CONSTファイル

CONSTファイル (デフォルト: SUPPORT\mgconstw.jpn)

設定 > 動作環境 > [外部参照]タブ

Constファイルの（パス名を含んだ）ファイル名を指定します。

Constファイルには、Magic のユーザインタフェースや言語に関する情報が格納されています。

変更の反映: 次のセッションから

MAGIC.INIおよびコマンドライン名: ConstFile


動作環境 外部参照 ヘルプファイル

ヘルプファイル (デフォルト: SUPPORT\mghelpw.chm)

設定 > 動作環境 > [外部参照]タブ

Magicシステム用のヘルプファイルを指定します。アプリケーションが定義するヘルプではありません。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: HelpFile

注意：

ここで定義されたヘルプファイルを（アップデート処理なので）置き換えた場合、Magicを再起動した時点で置き換えられたファイルを読み込みます。


動作環境 外部参照 開発用基本色定義ファイル

開発用基本色定義ファイル (デフォルト: SUPPORT\clr_std.jpn)

設定 > 動作環境 > [外部参照]タブ

Magicの開発モード時に使用される基本色定義が保存されるファイルの場所とファイル名を指定します。

この項目からズームすると、[基本色定義]テーブルが開き、基本色定義ファイルに格納されている内容が表示されます。

開発用の[基本色定義]テーブルは、追加したり名前を変更することはできません。色の変更のみ可能です。

変更の反映: 次のセッションから

MAGIC.INIおよびコマンドライン名: StudioColorDefinitionFile


動作環境 外部参照 AP基本色定義

アプリケーション用基本色定義ファイル (デフォルト: SUPPORT\clr_rnt.jpn)

設定 > 動作環境 > [外部参照]タブ

実行するアプリケーションに定義する基本色定義が保存されるファイルの場所とファイル名を指定します。

この項目からズームすると、[基本色定義]テーブルが開き、基本色定義ファイルに格納されている内容が表示されます。

アプリケーション用の[基本色定義]テーブルは、エントリを追加したり名前を変更することができます。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: RuntimeApplicationColorDefinitionFile


動作環境 外部参照 内部用基本色定義

内部用基本色定義ファイル (デフォルト: SUPPORT\clr_int.jpn)

設定 > 動作環境 > [外部参照]タブ

[動作環境]ダイアログや[範囲／位置付]ウィンドウのように、実行時に使用されるMagicの内部ウィンドウに影響する基本色定義のみが含まれているファイルの場所とファイル名を指定します。

この項目からズームすると、[基本色定義]テーブルが開き、基本色定義ファイルに格納されている内容が表示されます。

内部用の[基本色定義]テーブルは、追加したり名前を変更することはできません。色の変更のみ可能です。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: RuntimeInternalColorDefinitionFile


動作環境 外部参照 開発用フォント定義ファイル

開発用フォント定義ファイル (デフォルト: SUPPORT\fnt_std.jpn)

設定 > 動作環境 > [外部参照]タブ

Magicの開発モード時に使用されるフォント定義が保存されるファイルの場所とファイル名を指定します。

この項目からズームすると、[フォント定義]テーブルが開き、フォント定義ファイルに格納されている内容が表示されます。

開発用の[フォント定義]テーブルは、追加したり名前を変更することはできません。フォントの変更のみ可能です。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: StudioFontDefinitionFile


動作環境 外部参照 APフォント定義

アプリケーション用フォント定義ファイル (デフォルト: SUPPORT\fnt_rnt.jpn)

設定 > 動作環境 > [外部参照]タブ

実行するアプリケーションに定義するフォント定義が保存されるファイルの場所とファイル名を指定します。

この項目からズームすると、[フォント定義]テーブルが開き、フォント定義ファイルに格納されている内容が表示されます。

アプリケーション用の[フォント定義]テーブルは、エントリを追加したり名前を変更することができます。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: RuntimeApplicationFontDefinitionFile


動作環境 外部参照 内部用フォント定義

内部用フォント定義ファイル (デフォルト: SUPPORT\fnt_int.jpn)

設定 > 動作環境 > [外部参照]タブ

[動作環境]ダイアログや[範囲／位置付]ウィンドウのように、実行時に使用されるMagicの内部ウィンドウに影響するフォント定義のみが含まれているファイルの場所とファイル名を指定します。

この項目からズームすると、[フォント定義]テーブルが開き、フォント定義ファイルに格納されている内容が表示されます。

内部用の[フォント定義]テーブルは、追加したり名前を変更することはできません。フォントの変更のみ可能です。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: RuntimeInternalFontDefinitionFile


動作環境 外部参照 開発用キーボード割付ファイル

開発用キーボード割付ファイル (デフォルト: SUPPORT\act_std.jpn)

設定 > 動作環境 > [外部参照]タブ

Magicの開発モード時に使用されるキーボード割付定義が保存されるファイルの場所とファイル名を指定します。

この項目からズームすると、[キーボード割付]テーブルが開き、キーボード割付ファイルに格納されている内容が表示されます。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: StudioKeyboardMappingFile


動作環境 外部参照 実行用キーボード割付

実行用キーボード割付ファイル (デフォルト: SUPPORT\act_rnt.jpn)

設定 > 動作環境 > [外部参照]タブ

Magicの実行モード時に使用されるキーボード割付定義が保存されるファイルの場所とファイル名を指定します。

この項目からズームすると、［キーボード割付]テーブルが開き、キーボード割付ファイルに格納されている内容が表示されます。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: RuntimeKeyboardMappingFile


動作環境 外部参照 HTMLスタイルファイル

HTMLスタイルファイル (デフォルト: SUPPORT\html_std.jpn)

設定 > 動作環境 > [外部参照]タブ

フレームセット形式フォームで使用するHTMLスタイルテンプレートが保存されているファイルの場所とファイル名を指定します。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: HTMLStyles


動作環境 外部参照 プリンタ属性ファイル

プリンタ属性ファイル (デフォルト: SUPPORT\prn_std.jpn)

設定 > 動作環境 > [外部参照]タブ

論理的なプリンタ属性が格納されているファイルの場所と名前を指定します。

プリンタ属性は論理オブジェクトであり、Magic の出力フォームに関連する処理で使われます。フォームの出力時、このオブジェクトにより必要な情報がプリンタ制御コードに変換されます。プリンタ属性ファイルには、プリンタコマンドファイル中の実際のエスケープコードと論理属性との関係を定義します。

ここからズームすると、[プリンタ属性]テーブルが開き、プリンタ属性ファイルが表示されます。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: PrintAttr


動作環境 外部参照 セキュリティファイル

セキュリティファイル (デフォルト: SUPPORT\usr_std.jpn)

設定 > 動作環境 > [外部参照]タブ

ファイルが指定されていない場合や存在しない場合、Magic によりデフォルトのファイルが作成されます。

ここには、以下の情報が格納されているファイルの場所を名前を指定します。

  • 各ユーザのユーザID 、パスワードおよび権利

  • ユーザグループおよび権利

  • シークレット名

セキュリティファイルの内容は暗号化され、不法な第三者によるシステムへの進入を防止できます。Magicのセキュリティシステムについては、「認証システム」を参照してください。

注意：

  • マルチユーザ環境の場合、セキュリティファイルは共有ディレクトリに置き、各ユーザに同じ情報が提供されるようにしてください。

  • Magicエンジンがバックグラウンドで実行されている場合、この値の変更内容やセキュリティファイルの変更内容は、エンジンを再起動した時点で有効になります。

変更の反映: 次のセッションから

MAGIC.INIおよびコマンドライン名: UsersPath


動作環境 外部参照 OEMからANSI変換ファイル

OEMからANSIへの変換ファイル (デフォルト:なし)

設定 > 動作環境 > [外部参照]タブ

ここには、Magic内部の文字シンボルとOSの文字テーブル用の変換テーブルをとなる外部のファイルの場所とファイル名を指定します。OEM2ANS変換ファイルはユーザに対し、OEMからANSI／ANSIからOEMまたは、どのような文字セットに対する変換を支援するものです。

このファイルが指定されていない場合、デフォルトはOEMからANSIへの変換となります。デフォルトファイル名は、「OEM2ANSI.」です。

OEM_ANSI変換設定は、[入出力ファイル]テーブルとカラム特性に表示されます。この設定を「Yes」にすると、オブジェクトへの外更新更新が全てOEMからANSIに変換され、「No」にすると、変換は行なわれません。

注意：

日本語版では、この設定欄は使用しません。英語版との互換性のために残してありますが、日本語版では使用するコード体系は「Shift_JIS」のみです。

変更の反映: 次のセッションから

MAGIC.INIおよびコマンドライン名: OEM2ANSIFile

参照

OEM2ANSI関数


動作環境 外部参照 照合順序

照合順序ファイル (デフォルト:なし)

設定 > 動作環境 > [外部参照]タブ

ソート（ABC 順など）に必要な照合順序を定義した情報が格納されているファイルの場所と名前を指定します。

ファイルを指定した場合、指定されたファイルがデータベースのデフォルトの照合順序ファイルの代わりに使用されます。ただし、データベースによっては、代替照合順序ファイルが使用できないこともあります。照合順序ファイルがサポートされているかどうかは、データベースまたはゲートウェイのマニュアルを参照してください。

代替照合機能をサポートしている特定のDBMS や個々のデータベースに対し、ACS （照合順序）ファイルを個別に定義することができます。DBMS やデータベースに対応するACS ファイルは、DBMS テーブルやデータベーステーブルのDBMS やデータベース特性ダイアログの[照合順序ファイル]欄で設定します。データベースが複数ある場合、各データベースにそれぞれ異なる照合順序ファイル（ACSファイル）を定義できます。

[データベース特性]ダイアログで照合順序ファイルを指定しなかった場合や指定されたファイルが存在しない場合、[設定／動作環境]の照合順序ファイルが使用されます。

なお、1つのDBMS に複数のACS ファイルを指定することはできません。

変更の反映: 次のセッションから

MAGIC.INIおよびコマンドライン名: CollatingFile


動作環境 外部参照 デフォルト言語

デフォルト言語 (デフォルト:Wizard用MLS)

設 定 > 動作環境 > [外部参照]タブ

有効な値: 空白または[言語]テーブルに登録されている言語

多言語表示サポート環境で、Magic起動時に使用する言語を設定します。

注意：

デフォルトで設定されている「Wizatd用MLS」は、インタフェースビルダなど標準で添付されているウィザードの表示を日本語化するためのものです。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: StartingLanguage


動作環境 外部参照 デフォルト言語 言語一覧

言語一覧

設定 > 動作環境 > [外部参照]タブ > デフォルト言語

有効な言語が一覧表示されます。

[デフォルト言語]からズームするとオープンされます。


動作環境 外部参照 チェッカー用ファイル

チェックメッセージファイル (デフォルト:SUPPORT\chk_std.jpn)

設定 > 動作環境 > [外部参照]タブ

構文チェックユーティリティ用のメッセージファイル（Chk_std.dat）のファイル名とパス名を指定します。

このファイルの内容は、[チェックメッセージ]テーブルに表示されます。

注意：

メッセージ内容は、Mgconstw ファイルで管理されており、メッセージ区分のみをこのファイルで管理します。

変更の反映: 即時

Magic INI と コマンドライン名: CheckerMessageTable


動作環境 外部参照 ドロップデータユーザフォーマット

ドロップデータサポート・ユーザフォーマット (デフォルト:なし)

設定 > 動作環境 > [外部参照]タブ
接続性 > ドラッグ&ドロップ

ドラッグ&ドロップ関数でユーザ定義フォーマットのデータを扱う場合、ここにフォーマット名を指定する必要があります。この設定は、カンマ区切りで複数指定できます。

例えば、ユーザ定義フォーマットが ABC と EFG の場合、「ABC,EFG」 と指定します。

変更の反映: 即時

Magic INI と コマンドライン名: DropUserFormats

参照

ドラッグ開始イベント

ドロップイベント

ドラッグ許可特性

ドロップ許可特性

ドラッグ&ドロップの動作

ドラッグ&ドロップ使用時の考慮事項


動作環境 外部参照 コマンドプロセッサ

コマンドプロセッサ (デフォルト:OSに依存)

設定 > 動作環境 > [外部参照]タブ

OS が使用するコマンドプロセッサの場所と名前を絶対パスを使用して指定します。これは[OS コマンド]の実行時に使用されます。

デフォルト値は、Magicのインストール時にOSの内容に基づいて設定されます。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: CommandProcessor


動作環境 外部参照 HTTP Proxyアドレス

HTTP Proxy :アドレス:ポート (デフォルト:なし)

設定 > 動作環境 > [外部参照]タブ

HTTPGet/HTTPPost 関数または、WSDLアシストや[コールWebサービス]処理コマンドをProxyサーバを通して実行する場合は、この設定が必要です。

Proxy サーバのIPアドレスとポート番号を「アドレス:ポート番号」 の形式で指定してください。

変更内容：即時

MAGIC.INIとコマンドラインでの名前: HTTPProxyAddress


動作環境 外部参照 HTTPタイムアウト

HTTP タイムアウト (デフォルト:0)

設定 > 動作環境 > [外部参照]タブ

HTTPGet/HTTPPost 関数を実行する場合のタイムアウトを秒数で指定します。

「0」が指定された場合、2分になります。

変更内容：即時

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


動作環境 外部参照 データ出力HTMLテンプレート

データ出力用HTMLテンプレートファイル (デフォルト:なし)

設定 > 動作環境 > [外部参照]タブ

データ出力ウィザードで HTML ファイルを作成する場合に使用するHTMLテンプレートファイルを指定します。

変更の反映: 即時

Magic INI と コマンドライン名: PrintDataHtmlTemplate


動作環境 外部参照 データ出力XMLテンプレート

データ出力用XMLテンプレートファイル (デフォルト:なし)

設定 > 動作環境 > [外部参照]タブ

データ出力ウィザードで XMLファイルを作成する場合に使用するXMLテンプレートファイルを指定します。

変更の反映: 即時

Magic INI と コマンドライン名: PrintDataXmlTemplate


動作環境 外部参照 SOAPクライアントモジュールのパス

SOAPクライアントモジュールのパス

設定 > 動作環境 > [外部参照]タブ

Webサービスクライアントモジュールを保存するパスを指定します。

論理名やシークレット名を使用できます。文字列の長さは、最大260文字です。

変更内容：即時

MAGIC.INIとコマンドラインでの名前: SoapClientModulesPath


動作環境 外部参照 SOAPスパイのアドレス

SOAP Spyのアドレス

設定 > 動作環境 > [外部参照]タブ

Systinet Server for Java（Webサービスのフレームワーク）には、SOAP Spyというトレースツールがあります。これを使用することで、[コールWebサービス]処理コマンドによって発行されるSOAPメッセージをトレースすることができます。ここでは、SOAP SpyがSOAPメッセージをトレースするためのアドレスを指定します。

このアドレスを指定し、SOAP Spyを実行させるとSOAPのリクエストと応答がトレースされます。

この設定は、SOAPサービスでのみ有効です。

文字列の長さは、最大260文字です。

指定可能な書式は以下のどちらかです。

  • ホスト名:ポート番号

  • ホスト名/ポート番号

参考

  • SOAP Spyは、Systinet Server for Java のインストール先（Magicのインストールフォルダと並行するSSJフォルダ）のbinサブフォルダ内のSoapSpy.batを実行することで起動されます。

  • ここにアドレスが設定された場合、SOAP Spyが実行していない状態で[コールWebサービス]処理コマンドやWebサービス コンポーネントジェネレータを実行するとエラーが発生します。

変更内容：即時

MAGIC.INIとコマンドラインでの名前: SoapSpyAddress


動作環境 外部参照 メール接続タイムアウト

メール接続タイムアウト (デフォルト:0)

設 定 > 動作環境 > [外部参照]タブ

有効な値：秒数

MailConnect関数でメールサーバに接続する場合のタイムアウトを秒数で指定します。指定した秒数以内に接続できない場合は、MailConnect関数は、エラーコードを返します。

0 の場合は、5秒です。

変更の反映: 即時

MAGIC.INIとコマンドラインでの名前: MailConnectionTimeout


動作環境 外部参照 メール処理タイムアウト

メール処理タイムアウト (デフォルト:0)

設 定 > 動作環境 > [外部参照]タブ

有効な値：秒数

メール関数が処理する場合のタイムアウトを秒数で指定します。指定した秒数以内に処理が完了しない場合、メール関数はエラーコードを返します。

変更の反映: 即時

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


動作環境 外部参照 SNMPデータベース接続しきい値

SNMP データベース接続しきい値 (デフォルト:0)

設 定 > 動作環境 > [外部参照]タブ

有効な値：数値

Magicがトラップメッセージを送信する前に、DBMSの最大接続数の設定のように、DBMSに対して許可された接続数を超過する割合をパーセントで指定します。

例えば、最大接続数が「10」と設定されたDBMSを使用して、[SNMPデータベース接続しきい値]を「50」と設定した場合、DBMSとの5接続目でSNMPメッセージが送信されます。

変更の反映: 即時

Magic INI と コマンドライン名: DatabaseConnectionsUtilizationThreshold


動作環境 外部参照 LDAPアドレス

LDAP アドレス：ポート番号 (デフォルト:なし)

設定 > 動作環境 > [外部参照]タブ

LDAPサーバのIPアドレスとポート番号を指定します。

例： 127.1.1.0:389

変更の反映: 即時

Magic INI と コマンドライン名: LdapAddress


動作環境 外部参照 LDAP接続文字列

LDAP 接続文字列 (デフォルト:なし)

設定 > 動作環境 > [外部参照]タブ

LDAPサーバへの接続文字列を指定します。LDAPサーバによってこの設定は異なります。

LDAPサーバに対してユーザ認証を行う際のユーザ情報を検索するためのUserDNを指定します。接続文字列にはユーザ名が必要となります。 この場合、ユーザ名を直接指定するか、$USER$ という特殊な論理名を指定することができます。Magicは、この名前をログイン時のユーザIDに変換します。

例えば、iPlanet でユーザグループの登録のために接続する場合、以下のように指定します。

uid=$USER$,ou=people,dc=mydomain

以下の書式で指定することで、user@domain（Active Directoryで｢ユーザーログオン名｣として指定するID）で認証させることができます。

$USER$@ドメイン名

この書式をサポートするLDAPサーバに対してのみ接続することができます。

参考

｢user@domain｣の指定がない場合はcnを使用し、指定された場合はuserPrincipalNameを使用して認証されます。

変更の反映: 即時

Magic INI と コマンドライン名: LdapConnectionString


動作環境 外部参照 LDAPドメインコンテキスト

LDAP ドメインコンテキスト (デフォルト:なし)

設定 > 動作環境 > [外部参照]タブ

LDAPサーバに登録されているグループ情報を検索する場合に必要な BaseDNを指定します。

例えば、iPlanet のディレクトリサーバに接続する場合、以下のように指定します。

o=groups, dc=mydomain

変更の反映: 即時

Magic INI と コマンドライン名: LdapDomainContext


動作環境 外部参照 LDAPタイムアウト

LDAP タイムアウト (デフォルト:0)

設定 > 動作環境 > [外部参照]タブ

LDAPサーバにアクセスする際のタイムアウト値を 秒数で指定します。 指定時間内に、LDAP サーバからの応答を受信できない場合、エラーメッセージが表示されます。

変更の反映: 即時

Magic INI と コマンドライン名: LdapTimeout


動作環境 外部参照 SSLCA証明書ファイル

SSL CA 証明書ファイル (デフォルト:なし)

設定 > 動作環境 > [外部参照]タブ

CertSrv（Certificates Service of Microsoft）のような、全てのHTTPアクセスに使用される証明機関（CA）を指定します。CAはセミコロン(；)によって区切ることで複数指定できます。

クライアントが証明時に指定されたCAが存在しない場合、以下のメッセージが表示されます。

The SSL CA Certificate doesn't exist: [Name of the SSL CA Certificate]

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

Magic INI と コマンドライン名: SSLCACertificateFile


動作環境 外部参照 SSLクライアント証明書ファイル

SSL クライアント証明書ファイル (デフォルト:なし)

設定 > 動作環境 > [外部参照]タブ

PKCS12形式証明書ファイル（*.pfx）を指定します。選択されたクライアント証明書は、 コールWebサービスやHTTPの呼び出しの際に割り当てられます。

アプリケーションのオープン時に、以下のクライアント証明書エラーがステータスバーに表示される場合があります。

  • クライアント証明ファイルが存在しません.

  • クライアント証明ファイルが PKCS12形式ではありません.

  • クライアント証明ファイルを使用できません-パスワードが正しくありません.

  • クライアント証明ファイルに、CA証明がありません.

  • クライアント証明ファイルはすでに存在しています.

ClientCertificateDiscard 関数は、実行時に証明書を破棄します。

実行モードから開発モードに切り換えると、アプリケーションはWebサービスやHTTPSの呼び出しの際に、証明書を再登録します。

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

Magic INI と コマンドライン名: SSLClientCertificateFile


動作環境 外部参照 SSLクライアント証明書パスワード

SSL クライアント証明書パスワード (デフォルト:なし)

設定 > 動作環境 > [外部参照]タブ

クライアント証明書の中の認証用パスワードを入力します。

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

Magic INI と コマンドライン名: SSLClientCertificatePassword


動作環境 外部参照 差分ツールコマンドライン

差分ツールコマンドライン

設定 > 動作環境 > [外部参照]タブ

この設定は、バージョン管理ツールを使用する場合に有効になります。

バージョン管理ツールは、オブジェクトの変更履歴を表示する場合に使用します。バージョン管理ツールでこの履歴を参照するために、使用する外部の差分ツールをここに設定する必要があります。設定しない場合、差分は、テキストファイルとして表示されます。

ここには、差分ツールの実行ファイルのパスとファイル名を設定します。

例えば、バージョン管理システムがAraxis Mergeを使用するように設定するには、以下のようにします。

C:\Program Files\Araxis\Araxis Merge v6.5\compare.exe $file1 $file2 /max

ここでは、差分ツールのコマンドラインコンテキストと合った文字列を指定する必要があります。文字列の最初のファイル名には、「$file1」を、２番目のファイル名には「$file2」と言うように入れなければなりません。プログラムがサポートするパラメータであれば、必要に応じて設定することができます。

上記の例では、指定された文字列の最初と２番目がファイル名で、最後に最大化のオプションが指定されたことになります。

WinMergeを使用するように設定する場合は、以下のようにします。

C:\Program Files\WinMerge\WinMergeU.exe $file1 $file2

注意：

予め差分ツールのエンコード指定を「UTF-8」に設定しておいてください。

変更内容：即時

Magic INI と コマンドライン名: DifferencesToolCommandLine

参照

バージョン管理


動作環境 サーバ

[アプリケーションサーバ]タブ

設定 > 動作環境

[アプリケーションサーバ]タブには、以下の設定項目が含まれています。

アプリケーションサーバとして動作

メッセージサーバ

HTTPリクエスタ

Webドキュメントパス

Webドキュメントパスの別名

リクエスタのタイムアウト

最大並行リクエスト数

最大並行ユーザ数

ロードバランシングの優先度

Webオーサリングツール

コンテキスト非稼動タイムアウト

コンテキストのアンロードタイムアウト

ブラウザクライアントのサブバージョン

ブラウザクライアント環境エラーURL

ブラウザクライアント・ネットワーク復旧タイムアウト

ブラウザクライアントのキャッシュパス

ブラウザクライアントのキャッシュエイリアス

リッチクライアントのキャッシュパス

リッチクライアントのキャッシュエイリアス


動作環境 サーバ アプリケーションサーバとして動作

アプリケーションサーバとして動作 (デフォルト: インストーラで設定)

設定 > 動作環境 > [アプリケーションサーバ]タブ

有効な値: Yes, No

Magic がMRB に接続して、アプリケーションサーバとして動作するかどうかを指定します。

  • Yes……Magic がアプリケーションサーバとしてMRBとの通信処理を行います。したがって、プログラムを実行するためのリクエストを受け取ることができます。MRB が起動されていない場合、定期的に警告ダイアログが表示されます。

  • No……Magic は、MRB との通信処理を行いません。このため、クライアントからのリクエストを受け取ることができません。

変更の反映: 次のセッションから

MAGIC.INIおよびコマンドライン名: ActivateRequestsServer


動作環境 サーバ メッセージサーバ

メッセージサーバ (デフォルト: Default Broker)

設定 > 動作環境 > [アプリケーションサーバ]タブ

有効値：空白または[サーバ]テーブルに登録されているサーバ

[アプリケーションサーバとして動作]欄を「Yes」とした場合、ここにMRBが動作するサーバを指定します。ここで指定したサーバのMRB にMagic が接続され、Magic がアプリケーションサーバとして動作することになります。

汎用メッセージレイヤと呼ばれる拡張されたクライアント/サーバインタフェースにより、各種の異なるネットワークに接続しアプリケーションを呼び出すなど、大変柔軟な構成が可能です。呼び出し側のクライアントは、汎用メッセージレイヤを利用することで、MRB などのメッセージサーバを介して、アプリケーションサーバを呼び出すことができます。

サーバタイプをJ2EEに指定したサーバを選択した場合、アプリケーションサーバはJ2EEサーバにリクエストを送ります（Mgreq.iniのMGSRVR05 を設定した場合と同じように動作します）。

変更の反映: 次のセッションから

MAGIC.INIおよびコマンドライン名: MessagingServer


動作環境 サーバ リクエスタのタイムアウト

リクエスタのタイムアウト (デフォルト: 0)

設定 > 動作環境 > [アプリケーションサーバ]タブ

リクエスタがタスク処理の終了を待つ最大秒数です。この時間を超えると、エラーメッセージが表示されます。

デフォルト設定の「0」の場合、タイムアウトは発生しません。

エンジンからのリモートコールが実行された場合、この設定はmgreq.iniファイルのRequesterTimeoutキーワードを上書きします。

変更の反映: 次のセッションから

MAGIC.INIおよびコマンドライン名: RequesterTimeout


動作環境 サーバ HTTPリクエスタ

HTTPリクエスタ (デフォルト:インストーラで設定)

設定 > 動作環境 > [アプリケーションサーバ]タブ

有効な値：空白またはURL とMagic インターネットリクエスタモジュールの名前

URL とMagic インターネットリクエスタモジュールの名前を指定します。このURL を使用して、Magicインターネットリクエスタモジュールの名前と場所がプログラムに伝えられます。

デフォルトのHTTP リクエスタは、インストール時に設定されます。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: InternetDispatcherPath


動作環境 サーバ Webドキュメントパスの別名

Webドキュメントパスの別名 (デフォルト: インストーラで設定)

設定 > 動作環境 > [アプリケーションサーバ]タブ

[Webドキュメントパス]のエイリアスを指定します。このエイリアスを使用して、インターネットサーバ上に一時ファイルが作成されます。エイリアスは、Web の全ての一時ファイルに対して追加され、Web サーバでは、このエイリアスを使用してアクセスが実行されます。

デフォルトのドキュメントパスの別名は、インストール時に設定されます。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: WebDocumentAlias


動作環境 サーバ Webドキュメントパス

Webドキュメントパス (デフォルト: インストーラで設定)

設定 > 動作環境 > [アプリケーションサーバ]タブ

HTMLで使用するイメージ、Java 、ActiveX のデータが置かれているパスを指定します。パスは、実行時のWeb サーバのルートを基に指定します。このパスは、HTML フォームの[ブラウザで表示]コマンドを使用してHTML ファイルを作成する時にも使用されます。

デフォルトのドキュメントパスは、インストール時に設定されます。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: WebDocumentPath


動作環境 サーバ 最大並行リクエスト数

最大並行リクエスト数 (デフォルト: 0)

設定 > 動作環境 > [アプリケーションサーバ]タブ

有効値：ライセンスユーザ数以下の値

アプリケーションサーバが作成することができるスレッドの最大数を制限することができます。スレッドの上限数は、ライセンスおよびマシンの能力によって制限されます。

デフォルトの「0」は、ライセンスサーバによって管理される、ライセンスの上限値までスレッドが立ち上がることを意味します。

「0」以外の数値を設定すると、その数値とライセンスの上限値を比較し、小さいほうの値が有効になります。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: MaxConcurrentRequests


動作環境 サーバ 最大並行ユーザ数

最大並行ユーザ数 (デフォルト: 0)

設定 > 動作環境 > [アプリケーションサーバ]タブ

有効値：ライセンスユーザ数以下の値

リッチクライアントアプリケーションにアクセスできるユーザ数の最大数を指定します。リッチクライアント用のライセンスを使用してバックグラウンドモードでエンジンを実行させた場合にのみ有効になります。

デフォルトの「0」の場合、使用するライセンスのスレッド数が適用されます。

「0」以外の数値を設定すると、指定されたユーザ数までリッチクライアントアプリケーションにアクセスすることができます。アプリケーションサーバが起動された時点でここに指定された数だけライセンスが消費されます。使用するライセンス数以上の値を指定した場合は、ライセンス数が最大値となります。

すでに別のアプリケーション用にライセンスを消費している状態で、合計のユーザ数がライセンス数を越えるユーザ数を指定して起動させた場合もエラーが発生します。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: MaxConcurrentUsers


動作環境 サーバ ロードバランシング優先度

ロードバランシングの優先度 (デフォルト: 3)

設定 > 動作環境 > [アプリケーションサーバ]タブ

有効値：1から5までの数値

アプリケーションサーバとしてのMagicエンジンの優先順位を定義します。

1から5までの数値を設定できます。5がもっとも優先度が高く、1が最も低くなります。リクエストは、優先度の高いアイドル状態のエンジンに送られます。

変更の反映: 次のセッションから

MAGIC.INIおよびコマンドライン名: LoadBalancingPriority


動作環境 サーバ Webオーサリングツール

Webオーサリングツール (デフォルト: インストーラで設定)

設定 > 動作環境 > [アプリケーションサーバ]タブ

マージフォームの編集で使用する外部のWebオーサリングツールを指定します。

フォームテーブルでマージフォームのエントリにズームすると、[フォーム特性]ダイアログで指定したファイルがWebオーサリングツールで呼び出され、データ項目パレットが表示されます。WebオーサリングツールでOLEのドラッグアンドドロップがサポートされている場合、Magicからテンプレートファイルにデータ項目を直接ドラッグ&ドロップしたり、コピー/貼り付けしたりすることができます。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: AuthoringToolPath


動作環境 サーバ コンテキスト非稼働タイムアウト

コンテキスト非稼動タイムアウト (デフォルト:6000)

設定 > 動作環境 > [アプリケーションサーバ]タブ

サーバ側で保持されるコンテキスト情報はメモリリソースを必要とします。多くのシステムリソースを使用することで、たくさんのコンテキストを保持することになるサーバの負荷をを軽減させるため、コンテキストにタイムアウトを設定することができます。

ブラウザベースのプログラムを実行してから、ユーザが動作を確認するまでMagicアプリケーションに接続したままにする時間を1/10秒単位で指定することができます。 コンテキストの非稼働状態とは、ブラウザタスクの実行中にクライアント/サーバ間のユーザ操作がないものと定義します。

コンテキストタイムアウトに到達すると、コンテキストがサーバから削除されます。このようなタイムアウトを設定することで、廃棄されたコンテキストがサーバ上に蓄積されることを防止することができます。

ブラウザタスクが開発モードで実行された場合、このタイムアウト値は無制限になります。

値が「0」の場合、タイムアウトは発生しません。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: ContextInactivityTimeout


動作環境 サーバ コンテキストのアンロードタイムアウト

コンテキストのアンロードタイムアウト (デフォルト:1200)

設定 > 動作環境 > [アプリケーションサーバ]タブ

ブラウザは、現在のページから戻ったり、進めたり、ブラウザウィンドウを閉じることで、実行しているタスクを終了させることができます。これらのアクションは、コンテキストをペンディングモード（ブラウザがブラウザタスクのページに戻る場所）に移します。

ブラウザがブラウザタスクに戻ると、コンテキストが再読み込みされ、サーバ上に保持されていた情報はリフレッシュされ、エンドユーザはブラウザタスクを使用し続けることができます。

Webブラウザ側の操作（[戻る]、[進む]、別のURLなど）を使用して、タスクページが別のページに切り替えられた時のコンテキストのタイムアウト値を指定します。タイムアウト値を超えていない場合、前のページに戻ると、最後に配置されたコンテキストが再度読み込まれます。タイムアウト値を超えると、前のタスクページのコンテキストは終了します。

タイムアウト値は1/10秒単位で定義されます。「0」に設定された場合、タイムアウトの時間は設定されず、コンテキストは即終了します。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: ContextUnloadTimeout


動作環境 サーバ BCサブバージョン

ブラウザクライアントのサブバージョン

設定 > 動作環境 > [アプリケーションサーバ]タブ

ブラウザベースのプログラムにおいて使用するモジュールにおいて、Magicが管理するサブバージョンを指定します。

この設定は文字列で[03]のように指定します。[03]と指定した場合、使用されるファイルは以下のようになります。

MGBCL100_03.CAB または MGBCL100_03S.CAB

この指定がない場合、Magicに標準添付されているファイルが使用されます。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: BrowserClientSubVersion


動作環境 サーバ BC環境エラーURL

ブラウザクライアント環境エラーURL (デフォルト:/Browser_Client_Tech_err.htm)

設定 > 動作環境 > [アプリケーションサーバ]タブ

ブラウザクライアントを実行する環境（.NETフレームワーク）がクライアントにインストールされていない場合に表示するエラーメッセージ用のページのURLを指定することができます。

変更の反映:即時

MAGIC.INIおよびコマンドライン名:BrowserClientTechnologyErr


動作環境 サーバ BCネットワーク復旧

ブラウザクライアント・ネットワーク復旧タイムアウト (デフォルト:0)

設定 > 動作環境 > [アプリケーションサーバ]タブ

ブラウザクライアントアプリケーション/リッチクライアントアプリケーションをナローバンドで実行する場合に有効です。このタイムアウト値を指定すると、クライアントは、指定された時間で処理されなかったリクエストの復旧処理を試みます。復旧処理を無効にする場合は、「0」（デフォルト値）を指定してください。

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

Magic INI と コマンドライン名: BrowserClientRecovery


動作環境 サーバ BCキャッシュパス

ブラウザクライアントのキャッシュパス (デフォルト:インストーラで設定)

設定 > 動作環境 > [アプリケーションサーバ]タブ

ブラウザクライアントのキャッシュ機能によって、サーバからクライアントまでのデータ送信最小限にし、クライアント側のページのXMLのロジックのセグメントをキャッシュすることで、ブラウザクライアントアプリケーションのパフォーマンスを改善します。

この設定には、エンジンがキャッシュファイルを作成する物理パスを指定します。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: CTLCacheFilesPath


動作環境 サーバ BCキャッシュエイリアス

ブラウザクライアントのキャッシュエイリアス (デフォルト:インストーラで設定)

設定 > 動作環境 > [アプリケーションサーバ]タブ

ブラウザクライアントの結果ページは、ブラウザクライアントがキャッシュしたファイルを参照するためのURLが必要です。

ここで、キャッシュパスのエイリアスを指定できます。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: CTLCacheFilesAlias


動作環境 サーバ リッチクライアントのキャッシュパス

リッチクライアントキャッシュパス

設定 > 動作環境 > [アプリケーションサーバ]タブ

クライアント側のページのXMLロジックセグメントをキャッシュすることによって、サーバからクライアントへのデータ通信量を最小化し、リッチクライアントアプリケーションの性能を改善します。

ここには、キャッシュされたファイルを作成する物理パスを指定します。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: RCCacheFilesPath


動作環境 サーバ リッチクライアントのキャッシュエイリアス

リッチクライアントキャッシュエイリアス

設定 > 動作環境 > [アプリケーションサーバ]タブ

リッチクライアントタスクの結果ページにアクセスするには、動作環境 サーバ リッチクライアントのキャッシュパスに対するURL参照が必要です。ここでは、このURL用のエイリアスを指定します。

変更の反映: 即時

MAGIC.INIおよびコマンドライン名: RCCacheFilesAlias


基本色

設定 >

ここには、３種類の[基本色定義]テーブルがあります。各テーブルの表示は、タブで切り替えることができます。

  • [開発用基本色]テーブル ……開発時のMagicウィンドウに影響する色のみが含まれています。開発者は、色を追加したり、名前を変更することはできません。色の設定を変更することだけが可能です。

  • [内部用基本色]テーブル …… [動作環境]ダイアログや[範囲／位置付]ウィンドウのように、実行時に使用されるMagicの内部ウィンドウに影響する色のみが含まれています。色を追加したり、名前を変更することはできません。色の設定を変更することだけが可能です。

  • [アプリケーション用基本色]テーブル …… アプリケーションで指定できる色が含まれています。ここでは、色の追加／削除／名前の変更／色の変更が可能です。各基本色に対して、名前と、前景色、背景色を設定することができます。登録できる色の数に制限はありません。

[基本色定義]テーブルには、以下のカラムがあります。

名前

前景/背景色

サンプル

参照

[基本色定義]パレット

変更の保存


基本色 基本色パレット

基本色定義パレット

設定 > 基本色

色を変更する場合、変更する[前景]カラムまたは[背景]カラムにカーソルを置きズームを実行し、[基本色定義]パレットをオープンします。ダイアログの左上部には基本色が一覧表示されていますので、ここから基本となる色をクリックして選択します。選択すると、その色が太い境界線で囲まれます。

選択した色に対して、[赤]、[緑]、[青]、[色合]、[濃さ]、[輝度]の各数値を変更して色の調整を行なうことができます。

[基本色定義]パレットのタイトルバーには、[基本色]テーブルの現在行の[名前]と[前景]または[背景]が表示されます。

また、[基本色定義]ダイアログには[システムカラー]コンボボックスがあり、Windows のシステムで使用している色を設定できます。

背景色は、[透過指定]のチェックボックスが有効になります。

[OK]ボタンをクリックすると、色の設定が受け付けられ、[ファイル保存]ダイアログが表示されます。

[キャンセル]ボタンをクリックすると、色の設定が全て取り消され、[基本色定義]パレットが閉じます。

参照

前景色と背景色


基本色 名前

名前

設定 > 基本色

色を割当てる場所や機能を説明するテキストを指定します。この名前は、保守しやすくするため、できるだけ分かりやすい表現にしてください。


基本色 前景背景色

前景色/背景色

設定 > 基本色

前景と背景カラムは、前景色と背景色を定義します。

前景や背景の構成要素の色を変更するには、変更する[前景]または[背景]の上にカーソルを移動させます。次に、[基本色定義]パレットにズーム（F5）します。

このパレット上では、以下のような方法で色を定義することができます。

  • 基本色選択から選択する

  • グラディエーションパレットから選択する

  • HSL（色相、飽和、輝度）から選択する

  • RDBから選択する

  • システム色から選択する

注意：

システム色以外の色を選択する場合は、システム色の指定を空白にする必要があります。

背景色は、透過を指定することができます。


基本色 サンプル

サンプル

設定 > 基本色

[基本色定義]パレットで指定した背景と前景の色を使用したサンプルが表示されます。


基本色 変更の保存

変更の保存

設定 > 基本色

[基本色定義]テーブルで内容を変更した場合、Enter を押下するか[OK]をクリックすると、変更内容を保存するかどうかを確認するための[ファイル保存]ダイアログが表示されます。

[ファイル保存]ダイアログには[ファイル名]欄があります。現在使用している基本色ファイル以外のファイルに設定を保存したい場合、そのファイルの名前を変更します。[基本色]テーブルで行った変更は、次にMagic を起動した時に有効になります。ただし、[ファイル保存]ダイアログの[即時有効]欄を「Yes」にした場合には変更が直ちに有効になります。

変更の即時有効を実行した場合、変更が加えられた[基本色]テーブルが読み込まれます。また、その後に開かれたウィンドウは全て、この[基本色]テーブルが使用されます。ただし、現在、すでに表示されているウィンドウは、再表示されるまでは変更されません。

プロジェクトによっては、[動作環境]で指定されているデフォルトの基本色ファイルの代わりに、そのプロジェクト独自の基本色ファイルを使用することもできます。


フォント

設定 >

ここには、３種類の[フォント定義]テーブルがあります。各テーブルの表示は、タブで切り替えることができます。

  • [開発用フォント]テーブル ……開発時のMagicウィンドウに影響するフォントのみが含まれています。開発者は、フォントを追加したり、名前を変更することはできません。フォントの設定を変更することだけ可能です。

  • [内部用フォント]テーブル …… [動作環境]ダイアログや[範囲／位置付]ウィンドウのように、実行時に使用されるMagicの内部ウィンドウに影響するフォントのみが含まれています。フォントを追加したり、名前を変更することはできません。フォントの設定を変更することだけ可能です。

  • [アプリケーション用フォント]テーブル …… アプリケーションで指定できるフォントが含まれています。ここでは、フォントの追加／削除／名前の変更／フォントの変更が可能です。登録できる色の数に制限はありません。

ここで定義された各フォントによって、アプリケーションにおける表示や出力文字に実際のフォントを関連付けることができます。開発用のフォントには、デフォルトテーブル編集やデフォルトダイアログテキスト、プッシュボタン、またはステータス行テキストなどのようにあらかじめ割り当てられたフォント定義を含む100の項目が含まれています。

フォントテーブルの登録数には制限がありません。

[フォント]テーブルの内容は、フォント定義ファイルに保存されます。使用するフォント定義ファイルは、[動作環境]／[外部参照ファイル」タブで指定できます。

フォントテーブルには以下のカラムがあります。

名前

フォント

スタイル

サイズ

傾き

サンプル

[フォント定義]テーブルの内容を修正後、Enterを押下するか、[OK]ボタンをクリックすると変更内容を保存するかどうかを確認するための[ファイル保存]ダイアログが表示されます。この時点でファイル名を変更することで、異なるフォント定義ファイルを作成し、使用することができます。

参照

変更の保存


フォント フォント定義ダイアログ

[フォント定義]ダイアログ

設定 > フォント

[フォント定義]ダイアログのタイトルバーには、[フォント]テーブルで現在選択している行の[名前]が表示されます。

[フォント定義]ダイアログでフォントの設定を行った後、[OK ]ボタンをクリックすると、[フォント定義]ダイアログがクローズし[フォント]テーブルに戻ります。

[フォント定義]ダイアログで[キャンセル]ボタンをクリックすると、それまで行った変更が全て取り消され、[フォント]テーブルに戻ります。


フォント 名前

名前

設定 > フォント

フォントを割当てる場所や機能を説明する名前を入力します。この名前は、保守しやすくするため、できるだけ分かりやすい表現にしてください。


フォント フォント

フォント

設定 > フォント

MS 明朝、MS ゴシックなどのフォント名です。フォントを変更したい場合、この欄から実行し、[フォント定義]ダイアログをオープンします。このダイアログで[フォント名]、[スタイル]（ボールド、イタリックなど）、[文字飾り]（取消線、下線など）、[サイズ]および[傾き]を選択します。

ユーザが追加登録した場合、[動作環境]／[動作設定]タブの「デフォルトフォント」欄で設定されている番号のフォントを複写します。この欄が「0」の場合、フォント名「MSP ゴシック」でサイズ「8」となります。


フォント スタイル

スタイル

設定 > フォント

フォントの[スタイル]や[文字飾り]の選択状態を記号で表示します。

  • B …… ボールド体

  • I ……イタリック体

  • S ……取り消し線

  • U ……アンダーライン


フォント サイズ

サイズ

設定 > フォント

[フォント]欄から[フォント定義]ダイアログへズームし、フォントを選択してフォントサイズ（ポイント）を設定します。フォントのサイズは、[サイズ]欄に表示されます。

フォントサイズは1-999までの1ポイント単位で指定します。（小数点での指定はできません。）


フォント 傾き

傾き

設定 > フォント

フォントの傾きを表示します。

[フォント]欄から[フォント定義]ダイアログへズームしてフォントを選択し、必要であればフォント特性を選択します。

フォントの傾きは、そのフォントを使用するコントロールがタブコントロールまたはテキストコントロールの時にだけ有効です。この2 つのコントロール以外のコントロールでフォントの傾きを指定すると、フォントが正常に表示されないことがあります。また、テキストコントロールにフォントを指定すると、[フォーム]エディタでは直接テキストを編集することができなくなります。

その場合、テキストコントロールの[コントロール特性]ダイアログでテキストを編集しなければなりません。


フォント サンプル

フォントのサンプル

設定 > フォント

サンプルボックスでは、選択したフォントによって実際にどのように表示されるかが確認できます。


フォント 変更の保存

変更の保存

設定 > フォント

[フォント定義]テーブルで内容を変更した場合、Enter を押下するか[OK]をクリックすると、変更内容を保存するかどうかを確認するための[ファイル保存]ダイアログが表示されます。

[ファイル保存]ダイアログには[ファイル名]欄があります。現在使用しているフォント定義ファイル以外のファイルに設定を保存したい場合、そのファイルの名前を変更します。[フォント定義]テーブルで行った変更は、次にMagic を起動した時に有効になります。ただし、[ファイル保存]ダイアログの[即時有効]欄を「Yes」にした場合には変更が直ちに有効になります。

変更の即時有効を実行した場合、変更が加えられた[フォント定義]テーブルが読み込まれます。また、その後に開かれたウィンドウは全て、この[フォント定義]テーブルが使用されます。ただし、現在、すでに表示されているウィンドウは、再表示されるまでは変更されません。

プロジェクトによっては、[動作環境]で指定されているデフォルトのフォント定義ファイルの代わりに、そのプロジェクト独自のフォント定義ファイルを使用することもできます。


キーボード割付

設定 >

[キーボード割付]テーブルは、Magicの内部イベントとキーストロークの対応が定義されています。

ここには、２種類の[キーボード割付]テーブルがあります。各テーブルの表示は、タブで切り替えることができます。

  • [開発用キーボード割付]テーブル …… 開発時のキーボード割付に反映されます。

  • [実行用キーボード割付]テーブル …… 実行時のキーボード割付に反映されます。

Magic には内部コマンドが用意されており、このようなコマンドを「Magicの内部イベント」または単に「内部イベント」と呼びます。内部イベントは低レベルのコマンドで、Magicでのみ解釈が可能です。内部イベントにはそれぞれ独自の機能が用意されており、ユーザが何らかの操作を行った場合、その操作はMagic により所定の処理を実行する内部イベントに変換されます。

例えば、[終了]イベントでは、現在の処理が終了します。また、[Magic情報]イベントでは、[バージョン情報]ダイアログが開きます。

ショートカットキーを使用して操作するユーザのため、内部イベントにキーを割当てておくと便利です。この内部イベントのキーボードへの割当には、[キーボード割付]テーブルを使用します。

Magic には多くの内部イベントが組み込まれており、それぞれ、独自の機能が割当てられています。いくつかの内部イベントはグローバルであり、Magic の全ての環境で動作します。また、いくつかの内部イベントは特定の条件でのみ有効です。特定の条件でのみ有効な内部イベントは、その条件でのみ機能することから、異なる内部イベントに同じキーを割当てることができます。キーが同じでも、条件が異なれば、実行される内部イベントも異なるからです。

内部イベントのステータス

内部イベントには、実行される条件を設定することができます。この条件をステータスといい、全てのステータスが満たされた場合にのみ内部イベントが実行されます。ステータスは、最高で4 つまで指定できます。４つのステータスは、AND 条件で動作します。ステータスに関連する状況としては、「表」と「編」の2 種類があります。

  • 表……フォームやレコードレベルアクションに関係するステータスを意味します。

  • 編……コントロールレベルのアクションに関係するステータスを意味します。

例えば、以下は２つの異なったステータスの例を示します。

  • 表: 非画面先頭……カーソルが、画面やテーブルの先頭にない場合のみアクションが有効です。

  • 編: 非フォーム先頭……カーソルが、チョイスコントロールの最初の値や複数行編集用コントロールの最初の行にない場合のみアクションが有効です。

「表」では、テーブルに関連する各種ステータスが有効になります。また、「編」では、項目エディタに関連する各種ステータスが有効になります。テーブル編集、項目編集のどちらも、ステータスは複数あり、現在、どのようなステータスにあるかはユーザの操作状況によって決まります。また、この複数のステータスの組み合わせによって、キーと状況が同じであっても、異なる内部イベントとして判断させることができます。

内部イベントの例

テーブル編集では、Ctrl+PageDownキーは[テーブル末尾]イベントが割当てられています。この内部イベントの実行後、テーブルデータの最後の行にカーソルが移動します。また、Ctrl+PageDown キーは、[画面末尾]イベントも割当てられていて、この内部イベントでは、現在画面に表示されているテーブルの最後の行にカーソルが移動します。ここではどちらの場合も、キーは同じCtrl+PageDown であり、状況も同じくテーブル編集です。キーと状況が同じでも違う内部イベントとして識別されるのは、ステータスが異なるためです。つまり、[テーブル末尾]イベントに定義されているステータスは[表：画面末尾]であり、この場合、画面に表示されているテーブルの最後の行にカーソルがあり、その状態でCtrl+PageDown キーが押された時に内部イベントが実行されます。一方、[画面末尾]イベントに定義されているステータスは[表：非画面末尾]です。この場合、画面に表示されているテーブルの最後の行以外の行にカーソルがあり、その状態でCtrl+PageDownキーが押ます。この2 種類のステータスは排他的なのでキーと状況が同じであっても、それぞれのステータスに対応された時に内部イベントが実行されます。

このテーブルで、内部のイベント/キー操作の割り当てを変更／削除／追加することが可能です。内部イベントの最後のキー操作割り当てを削除することはできません。新しい行を追加すると、前行の内容がコピーされます。

参照

内部イベント

キーボード割り当て

ステータスウィンドウ

ステータス一覧

変更の保存


キーボード割付 内部イベント

内部イベント

設定 > キーボード割付

Magicの内部イベントの名前が表示されています。このカラムにはパークできません。内部イベント名は固定で、変更できません。

同じ内部イベント名が複数の行に表示されることもありますが、これは、同じイベントに複数のキーが割当てられていることを示しています。この場合、複数のキーを使用して、そのイベントを実行することができます。

参照

イベント一覧


キーボード割付 キー

キー

設定 > キーボード割付

内部イベントに割当てられているキーが表示されます。キーを指定する場合、この欄からズームを実行し、[キー設定]ダイアログをオープンします。このダイアログで内部イベントに設定したいキーを実際にキーボードで押下します。

そのキーが有効だった場合、登録されます。[キャンセル]ボタンをクリックすると設定を取り消します。[キー設定]ダイアログではスペースバーを使用して、キーをクリアできます。

注意：

この欄に「内部」という文字が表示されている場合、そのアクションに対する操作が許されず、再定義もできないことを示しています。


キーボード割付 ステータスウィンドウ

ステータスウィンドウ

設定 > キーボード割付

アクションに設定されているステータスの数が表示されます。この数の条件が全て満たされた場合にその内部イベントが実行されます。この欄からズームを実行すると、[ステータス]ウィンドウにカーソルが移動します。このウィンドウを使用して、内部イベントとの条件を設定できます。

参照

ステータス一覧


キーボード割付 ステータス一覧

ステータス一覧

設定 > キーボード割付

ステータスを設定する場合、ステータスのいずれかの欄にカーソルを置き、ズームを実行し、表示されたステータス一覧から設定したステータスを選択します。ステータスは、１ つの内部イベントにつき、最高で4 つまで設定できます。ここで指定したステータスが全て満たされた場合にその内部イベントが実行されます。

ステータス一覧には、内部イベントへの割り当てを行う際の条件となる２４の状態が含まれています。「表」という接頭語が付いている場合は、フォームやレコードレベルで参照されます。「編」という接頭語が付いている場合は、コントロール内で編集中の場合に参照されます。


キーボード割付 変更の保存

変更の保存

設定 > キーボード割付

[キーボード割付]テーブルで内容を変更した場合、Enter を押下するか[OK]をクリックすると、変更内容を保存するかどうかを確認するための[ファイル保存]ダイアログが表示されます。

[ファイル保存]ダイアログには[ファイル名]欄があります。現在使用しているキーボード割付ファイル以外のファイルに設定を保存したい場合、そのファイルの名前を変更します。[キーボード割付]テーブルで行った変更は、次にMagic を起動した時に有効になります。ただし、[ファイル保存]ダイアログの[即時有効]欄を「Yes」にした場合には変更が直ちに有効になります。

変更の即時有効を実行した場合、変更が加えられた[キーボード割付]テーブルが読み込まれます。また、その後に開かれたウィンドウは全て、この[キーボード割付]テーブルが使用されます。ただし、現在、すでに表示されているウィンドウは、再表示されるまでは変更されません。

プロジェクトによっては、[動作環境]で指定されているデフォルトのキーボード割付ファイルの代わりに、そのプロジェクト独自のキーボード割付ファイルを使用することもできます。


サーバ

設定 >

アプリケーションサーバは、Magicに組み込まれているクライアント/サーバ機能を実現するための基本構成要素です。これは、リモートのMagic アプリケーションにて、データベース処理や入出力ファイル処理を実行するMagicエンジンです。クライアントにMagicをインストールすることにより、各種プラットフォームやOSで稼働するアプリケーションサーバに対して、TCP/IPプロトコルを介してアクセスすることができます。

[サーバ]テーブルでは、ローカルのMagicエンジンがアプリケーションサーバと通信する方法を定義します。

参照

サーバ名

サーバタイプ

サーバアドレス

サーバ特性

ユーザ名

パスワード

タイムアウト

代替サーバ

通信ゲートウェイ


サーバ サーバ名

サーバ名

設定 > サーバ

アクセスするアプリケーションサーバ名を定義します。


サーバ サーバタイプ

サーバタイプ

設定 > サーバ

[サーバタイプ]では、ホストサーバとのデータ送受信が可能なサーバタイプを指定します。この欄からズーム（F5）し、使用できるサーバタイプの一覧から選択することで設定します。有効な通信ドライバが認識できなかった場合、この欄は「Unknown」と表示され、この状態でサーバと通信しようとしても失敗します。

使用できるサーバタイプは次のとおりです。

  • Magic Request Broke……MRB（Magic Requester Broker）との接続が可能です。MRBが[サーバタイプ一覧]に表示されるのは、MRBが適切なMAGIC.INIセクションで定義されていて、通信サポートがインストールされている場合のみです。

  • J2EE…… Magicは、J2EE環境のクライアントからアクセス可能なJavaで記述されたサーバコンポーネントを作成します。サーバタイプをJ2EEに設定し、動作環境ダイアログのメッセージサーバの設定でこのサーバを選択すると、MagicのアプリケーションサーバからJ2EEサーバにリクエストが送られます。


サーバ サーバアドレス

サーバアドレス

設定 > サーバ

[サーバアドレス]欄には、ローカルのMagicが接続しているネットワーク上のサーバアドレスを指定します。このアドレスを使用して、サーバとローカルのMagic との接続が行われます。サーバアドレスは、「/」で区切られた2 つの部分から構成されます。例えば、サーバがWindows サーバ上に置かれており、通信プロトコルがTCP/IP の場合、書式は次のようになります。

XXXXX/YYYYY

XXXXXは、サーバのコンピュータ名（または、IPアドレス）です。コンピュータ名を指定する場合は、クライアント側のhostsファイルにサーバのコンピュータ名とIPアドレスの情報を設定しておく必要があります（例：MGSRV1）。

YYYYYは、サーバコンピュータ上のMagic TCP/IPディスパッチャ（MRB など）のソケット番号です（例：3001など）。

上記の例では、MGSRV1/3001が、アプリケーションサーバのTCP/IPアドレスになります。

[サーバ]テーブルには、デフォルトで[DEFAULT]という名前のサーバが登録されており、このサーバだけは削除することができません。DEFAULTサーバは、ローカルにインストールされているMagicの「ローカルサーバ」であり、通信ドライバやアドレスは必要ありません。

[サーバ]テーブルの設定情報は、MAGIC.INIの[MAGIC_SERVERS] セクションにあります。


サーバ特性

設定 > サーバ

[サーバ]テーブルの各サーバには対応する[サーバ特性]ダイアログがあります。サーバを選択し、[編集]メニューから[特性]を選択するか、Alt+Enterキーを押下するか、マウス右ボタンをクリックしてコンテキストメニューを開き、[特性]を選択すると開きます。

[サーバ特性]ダイアログには、以下の設定項目があります。

ユーザ名

パスワード

タイムアウト

代替サーバ

通信ゲートウェイ


サーバ 特性 ユーザ名

ユーザ名

設定 > サーバ > サーバ特性

データサーバの場合のみ有効です。サーバへログオンするためのユーザIDを指定します。

参照

代替サーバ


サーバ 特性 パスワード

パスワード

設定 > サーバ > サーバ特性

アプリケーションサーバの場合MRB のPasswordSupervisor の内容と同じ設定をします。

サーバにアクセスする場合、通常ユーザ名とパスワードが必要になりますが、[特性]ダイアログで[ユーザ名]と[パスワード]を指定しておくことで、接続時にそれらを入力する必要がなくなります。


サーバ 特性 タイムアウト

タイムアウト (デフォルト：10秒)

設定 > サーバ > サーバ特性

この特性は、MGREQ.INIファイルのBrokerTimeoutと同じ意味を持っています。エンジンからコールリモートが実行された場合、MGREQ.INIの設定が上書きされます。


サーバ 特性 代替サーバ

代替サーバ

設定 > サーバ > サーバ特性

代替サーバの名前を指定します（省略可）。

[サーバ]テーブルのサーバが使用できない場合、この代替サーバが使われます。ズームすると同じサーバタイプの[サーバ一覧]が表示されます。


サーバ 特性 通信ゲートウェイ

通信ゲートウェイ

設定 > サーバ > サーバ特性

ホストサーバとの間でデータの送受信を行う場合に使用する通信プロトコルを設定します。

通信プロトコルを設定する場合、この欄からズームを実行し、表示された通信ドライバの一覧から使用するプロトコルを選択します。なお、この一覧に表示される通信ドライバは、Magic を起動する際にロードされていたものに限られます。ローカルのMagic で使用する通信プロトコルとサーバの通信プロトコルは同じでなければなりません。

ここはデータサーバのみ有効です。


サービス

設定 >

各サービスは、サーバと関連しています。サーバ特性からズームして[サーバ一覧]にアクセスします。

Alt + Enter または、[編集]メニューまたはコンテキストメニューから[特性]を選択することで[サービス特性]にアクセスできます。[サービス特性]には２種類あります。

[サーバ]カラムに、MRBに対応したサーバが設定されている場合、[サービス特性]ダイアログが表示されます。

[サーバ]カラムに、「SOAP」と設定されている場合、[Webサービス特性]ダイアログが表示されます。

参照

名前

サーバ

リモートアプリケーション/エンドポイント


サービス 名前

名前

設定 > サービス

サービスの名前です。ユニークな名前を指定してください。


サービス サーバ

サーバ

設定 > サービス

サーバを指定します。ここからズーム（F5）を実行し、表示された[サーバ一覧]から使用するサーバを選択します。


サービス エンドポイント

リモートアプリケーション/エンドポイント

設定 > サービス

[サーバ]カラムが「SOAP」以外の場合、サービスに対応するMagicアプリケーションの名前を指定します。ここからズームして、[プロジェクトを選択]ダイアログからアプリケーションのECF/EDPファイルを選択してください。

[サーバ]カラムが「SOAP」の場合、ここには、Webサービスプロバイダが公開しているWSDLにアクセスするためのURLを指定してください。この設定を変更することで、別のエンドポイントにアクセスすることができます。


サービス特性

設定 > サービス

指定されたサービスのサービス特性にアクセスするには、Alt + Enter を実行するか[編集]メニューやコンテキストメニューの[特性]を選択してください。

[サービス特性]ダイアログには、以下の設定項目があります。

ユーザ名

パスワード

フィルタ


サービス 特性 ユーザ名

ユーザ名

設定 > サービス > サービス特性

サーバアプリケーションに対してリクエストを送信した場合、ログオンが実行されますが、このユーザ名がログオン時に使用されます。


サービス 特性 パスワード

パスワード

設定 > サービス > サービス特性

特定のMagicアプリケーションに対してリクエストを送信する際、ユーザ名とともに使用されます。


サービス 特性 フィルタ

フィルタ

設定 > サービス > サービス特性

この特性は、アプリケーションサーバからのリモートの呼び出しの場合にのみ有効です。このため、サーバタイプが「MRB」のサーバを定義している場合のみ表示されます。

全スレッドのうちどの位の割合がアプリケーションサーバ用に使用されるかを明示的に指定する場合に指定します。

以下の例は、20スレッドのライセンスを持つアプリケーションサーバが、異なる種類のリクエストを処理する際に、割合を指定する設定内容を示したものです。

  • HTTPリクエスト …… 2スレッド

  • SOAPリクエスト …… 6スレッド

  • COMによるリクエスト …… 4スレッド

  • フィルタを指定しないリクエスト…… 8スレッド

この場合、ライセンスの割り当ては以下のようになります。

HTTP_endusers:10%|SOAP_BT:30%|COM_primary:20%

指定した割合の合計が 100% を超えた場合、最後に指定されたフィルタ指定は 100% になるように調整されます。

設定されたフィルタの内容は、MAGIC.INIファイルの[MAGIC_SERVICES]セクションの中で以下のように追加されます。

ServiceName =<サーバ名>、<アプリケーション名>、<ユーザ名>、<パスワード>、<フィルタ>

「MRBのフィルタ」の説明も参照してください。


サービス Webサービス特性

Webサービス特性

設定 > サービス

[Webサービス特性]ダイアログボックスでは、SOAPサービスについての情報を設定することができます。

SOAPサーバを設定したサービスからAlt+Enter を押下することで[Webサービス特性]ダイアログボックスにアクセスできます。

このダイアログボックスには、以下の２タブが含まれています。

[汎用]タブ

[セキュリティ]タブ


サービス Webサービス特性 汎用

汎用

設定 > サービス > Webサービス特性

[汎用]タブには、以下の設定項目があります。

WSDL URL

クライアントモジュール

添付方式

タイムアウト


サービス Webサービス特性 汎用 WSDL URL

WSDL URL

設定 > サービス > Webサービス特性 > 汎用

WSDLの場所を指定します。最高260文字まで入力することができます。

URL(http、 https)またはファイルパスのどちらかで指定してください。


サービス Webサービス特性 汎用 クライアントモジュール

クライアントモジュール

設定 > サービス > Webサービス特性 > 汎用

[WSDL URL]が入力されると、Webサービスクライアントモジュールの位置が自動的に設定されます。

[読込]ボタンをクリックすると、Webサービスクライアントモジュールが作成されます。

最高260文字まで入力することができます。

注意：

  • クライアントモジュールが作成できるのは、開発エンジンのみです。実行エンジンの場合は、[読込]ボタンが無効になります。

  • 実行環境では、開発環境で作成されたJarファイルの名前をここに指定してください。ズームして[ファイルを開く]ダイアログを表示させることで選択できます。

  • Jarファイルは、各クライアントPCのローカルディスク上に置いてください（ネットワークフォルダ上に置いた場合、正常に動作しない場合があります）。


サービス Webサービス特性 汎用 添付方式

任意の形式のデータからなる複数のレコードをまとめてストリーム化するメカニズムです。レコードは順々にストリームにシリアライズされ、効率よくバイナリのヘッダーで区分けされます。DIME メッセージの最初のレコードには、ヘッダーに MB （Message Begin） フラグが立っており、最後のレコードにはME（Message End）フラグが立っています。ヘッダーにはレコードの長さを示す固定長のデータを記述できます。

インターネットなどのTCP/IPネットワーク上でやりとりされる電子メールで、各国語や画像、音声、動画などを扱うための規格です。RFC 2045～2049で規定されています。画像のようなバイナリデータをASCII文字列に変換(エンコード)する方法や、データの種類を表現する方法などを規定しています。

添付方式

設定 > サービス > Webサービス特性 > 汎用

ファイルを添付する場合の添付方式を指定します。以下のオプションがあります。

  • DIME

  • MIME


サービス Webサービス特性 汎用 タイムアウト

タイムアウト

設定 > サービス > Webサービス特性 > 汎用

Webサービスクライアントが、サービスが有効になるまでの待つ時間を秒数で指定します。「0」またはスペースが設定されると無限に待つようになります。


サービス Webサービス特性 セキュリティ

セキュリティ

設定 > サービス > Webサービス特性

クライアントモジュールが存在している場合、[セキュリティ]タブには、以下の設定項目があります。

  • セキュリティレベル …… セキュリティレベルを指定します。

  • W=WS-Security …… WS-Security を使用します。

  • T=Transport …… Transport Layer Securityを使用します。

  • N=なし …… セキュリティレベルを指定しません。

  • 認証方式 …… 認証方法を指定します。[セキュリティレベル]特性が「WS-Security」か「Transport」の場合のみ有効です。

  • K=Kerberos …… [セキュリティレベル]特性が「Transport」の場合のみ有効です。

  • S=SSL …… [セキュリティレベル]特性が「Transport」の場合のみ有効です。

  • D=DIGEST …… [セキュリティレベル]特性が「WS-Security」の場合のみ有効です。

  • B=BASIC …… [セキュリティレベル]特性が「WS-Security」の場合のみ有効です。

  • N=なし …… 認証方式を指定しません。

以下の特性は、[セキュリティレベル]特性が「WS-Security」の場合のみ有効です。

  • 暗号化/署名アルゴリズム …… 暗号化で使用するアルゴリズムを指定します。

  • タイムスタンプを含める …… このチェックボックスをオンにすると、タイムスタンプがSOAPリクエストに追加されます。

  • 処理 …… 処理の名前を指定します。

  • リクエスト …… SOAPリクエストをどのように機密化するかを指定します。

  • 応答 …… SOAPの応答をどのように機密化するかを指定します。


ビジュアル接続

設定 >

[ビジュアル接続]ダイアログでは、特定のMagic サービスと使用可能なサーバの一覧との関係を見ることができます。また、接続を示す線を動かして、接続先のサーバを変更することもできます。

サービスは、メッセージングサーバとのみ関連します。

一次サーバを代替サーバと関連付ける時は、両方のサーバが同じタイプであることを[ビジュアル接続]画面で確認します。別のタイプの一次サーバと代替サーバをと関連付けようとしても拒否されます。


通信ゲートウェイ

設定 >

[通信ゲートウェイ]テーブルは、Magic の初期化時に自動的に生成されます。このテーブルには、Magicの起動前にロードされている通信ドライバが全て表示されます。なお、通信ドライバは、[通信一覧選択]ウィンドウにも表示されます。ローカルのMagic とホストのMagic サーバとは、通信ドライバを使用して接続されます。

通信テーブル情報は、MAGIC.INIファイルの[MAGIC_COMMS]セクションにあります。

参照

名前

タイムアウト

パラメータ

ID


通信ゲートウェイ 名前

名前

設定 > 通信ゲートウェイ

通信ドライバの名前です。ここには、Magic でサポートされている通信ドライバの名前を指定します。


通信ゲートウェイ タイムアウト

タイムアウト

設定 > 通信ゲートウェイ

タイムアウト時間を秒数で指定します。接続先から応答がないまま、この時間が経過すると、ドライバからMagic に対して通信エラーが報告されます。


通信ゲートウェイ パラメータ

パラメータ

設定 > 通信ゲートウェイ

実行時に通信ドライバーに渡されるカスタマイズ情報を指定します。

アプリケーションサーバがアクセスするTCP/IPのポート番号の範囲を指定することができます。


通信ゲートウェイ ID

ID

設定 > 通信ゲートウェイ

ここの値は、変更しないでください。この値は内部ID で、この値を基にMagicにより通信プロトコルが識別されます。


DBMS

設定 >

[DBMS]テーブルには、Magic でサポートされるDBMS （データベース管理システム）が表示されます。この[DBMS]テーブルには、後述の[データベース]テーブルとは異なり、DBMSの特性についての一般的な情報は含まれていますが、個々のデータベースの固有設定情報は含みません。

[DBMS]テーブルには、「XML File」という名前のエントリがあります。このエントリは、削除ができません。また、同じ名前で追加することもできません。

DBMSによって構成された各データベースに対し、物理的アクセスができるようにするためには、Magic のロードに先立って、該当DBMS に対応するデータベースゲートウェイをロードしておかなければなりません。データベースゲートウェイは、Magic とDBMS との間のインタフェースとして機能します。例えば、Microsoft SQL ServerやOracleデータベースにアクセスするためには、Magicをロードする前に、Microsoft用またはOracle用のMagicデータベースゲートウェイをロードする必要があります。

[DBMS]テーブルは、データファイルをDBMSタイプに関連付けるために使用するDBMS一覧の基になります。Magicをロードする前に適切なMagicデータベースゲートウェイモジュールをロードしたDBMSだけが、DBMS一覧に表示されます。

DBMSテーブル情報は、MAGIC.INI ファイルの[MAGIC_SERVERS]セクションにあります。

Magic は、以下のDBMSとの接続をサポートしています。

  • Pervasive.SQL ISAM Engine

  • DB2 UDB

  • Microsoft SQL Server（MSDEを含む）

  • Oracle

  • ODBC（Open Database Connectivity）

  • iSeries

参照

名前

NULL

パラメータ

浮動小数点

DBMS特性


DBMS 名前

名前

設定 > DBMS

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

注意：

「XML File」以外は変更できます。


DBMS NULL

NULL

設定 > DBMS

使用する DBMSの NULL の扱いを指定します。

  • Yes……DBMS でNULL 値がサポートされており、Magic アプリケーションでテーブルの値としてNULL を使用したい場合、「Yes」に指定します。

  • No……DBMS でNULL 値がサポートされていない時、またはアプリケーションで必要ない時には、このカラムは「No」にします。

この値は、開発モードで新規のカラムや項目モデルを作成する時のデフォルト設定に影響します。

  • このカラムの値を「Yes」にしておくと、作成されるカラムや項目モデルのNULL 属性は、[NULL 値許可]が「Yes」になります。

  • このカラムを「No」にしておくと、カラムや項目モデルのNULL 属性は、[NULL 値許可]が「No」になります。

このカラムは通常「No」に設定しておき、NULLが本当に必要なカラムがある時のみ、その[カラム特性]の、[NULL値許可]を「Yes」に修正することを推奨します。


DBMS パラメータ

パラメータ

設定 > DBMS

カスタマイズ情報を入力します。この情報は、実行時にRDBMSに送られます。

Oracleでの例：ALPHA_DATE=Y

このカラムはデータベースに文字列として日付値を格納します。


DBMS 浮動小数点

浮動小数点

設定 > DBMS

定義取得ユーティリティを使用してテーブル定義情報をDBMSから取得すると、ほとんどの設定パラメータは、そのまま所定の書式を使用してMagic に取り込まれます。ただし、浮動小数点形式の書式設定については、Magic 内で使用される書式が自動的に選択されることはありません。

この[浮動小数点]カラムには、浮動小数点用のデフォルトの書式を指定します。ここで指定した書式が定義取得時に使われるようになり、Magic のテーブル定義情報に取り込まれるようになります。デフォルトの設定は、「10.3」です。


DBMS 特性

設定 > DBMS

指定したDBMSの[DBMS特性]にアクセスするには、Alt+Enter を実行するか[編集]メニューやコンテキストメニューの[特性]を選択してください。

「XML File」以外の[DBMS特性]には、以下の設定項目があります。

照合順序ファイル

最大接続数

分離レベル

テーブルの存在チェック

「XML File」の[DBMS特性]には、以下の設定項目があります。

XML デフォルト

デフォルトデータタイプ


設定 DBMS 特性 照合順序

照合順序ファイル

設定 > DBMS > DBMS特性

[照合順序ファイル]特性でズームすると、[ファイルを開く]ダイアログが表示されます。このダイアログでACS ファイルを指定します。

参照

SQLに関する考慮事項


DBMS 特性 最大接続数

最大接続数

設定 > DBMS > DBMS特性

MS SQL ServerなどのRDBMSでは、内部実装でさまざまな接続数を使用します。

最大接続数を指定すると、ゲートウェイが使用できる接続数の最大値を制御することができます。デフォルト値は３接続です。

この特性値は、このDBMSを使用するデータベースに適用されます。

ゲートウェイが使用する接続数が大きいほど、クライアントの並行性がよくなりまが、RDBMS側のリソースがより消費されます。

デフォルトの接続数を使用するには、「0」を指定します。データベースへの接続数を制限するには、「0」より大きな値を指定してください。

AS/400用のISMA または SQL のDBMSを使用する場合、AS/400 に接続できる数を指定してください。この数は、AS/400のライセンスに依存します。


DBMS 特性 分離レベル

分離レベル

設定 > DBMS > DBMS特性

分離レベルは、同じトランザクションを使用して並行実行している場合の処理内容について定義したものです。並行トランザクションの分離レベルを数値で指定します。指定できる値は使用するゲートウェイによって異なります。

MS-SQL Server

  • 0……READ UNCOMMITTED（共有ロックは実行されず、排他ロックも使用されません。このオプションが設定されている場合には、コミットされていないデータ、つまりダーティデータを読み取ることができます。トランザクションが終了する前にデータ内の値を変更でき、行がデータセットに現れたり消えたりします。）

  • 1……READ COMMITTED（データが読み取られている間、ダーティリードを回避するために共有ロックが保持されるように指定します。しかし、トランザクションが終了する前にデータを変更することができるので、反復不能読み取りやファントムデータが発生する可能性があります。）

DB2 UDB

  • 0……非コミット読み取り（UR：アプリケーションが他のトランザクションの非コミット変更にアクセスするのを可能にします。他のアプリケーションが表を消去または変更しようとしない限り、アプリケーションは自分が読み取っている行以外のアプリケーションをロックしません。）

  • 1……カーソル固定（CS：カーソルが任意の行上に置かれている時に、アプリケーションのトランザクションがアクセスするその行をロックします。次の行が取り出されるか、またはトランザクションが終了するまで、そのロックは有効のままになります。行内のいずれかのデータが変更された場合、データベースに対してその変更内容がコミットされるまでロックは保持されます。

  • 2……読み取り固定（RS：アプリケーションがトランザクション中に検索する行のみをロックします。行の読み取りの修飾がトランザクションが完了するまで他のアプリケーション・プロセスによって変更されないようにします。また、他のアプリケーション・プロセスによって変更された行の読み取りは、変更がプロセスによってコミットされるまで行われません。）

  • 3……反復可能読み取り（RR：トランザクション中に参照される、アプリケーション内の行全てをロックします。プログラムが反復可能読み取り保護を使用する場合、プログラムによって参照される行は、そのプログラムが現行のトランザクションを終了しない限り他のプログラムによって変更できません。）

Oracle

指定は無効です。

分離レベルとトランザクション処理

以下の表は分離レベルとトランザクション処理を同時実行させた場合に起こる問題の相関関係を示します。

分離レベル／現象 | ダーティリード | 反復不可読み取り | ファントム
READ UNCOMMITTED 非コミット読み取り | ○ | ○ | ○
READ COMMITTED カーソル固定 | × | ○ | ○
読み取り固定 | × | × | ○
反復可能読み取り | × | × | ×

  • ダーティリード……別のトランザクションによって作成された未確定レコードまたは変更レコードがSQL処理で読み込まれると、1つのトランザクション内で異なる結果が返されます。例えば、あるユーザがトランザクションをコミットする前に、別のユーザによってコミットされることで、変更されたデータによって表示が変わる場合が発生します。ロールバックが実行された場合も表示が変わります。ダーティリードでは並行性は向上しますが、一貫性は低下します。

  • 反復不可能読み取り……SQL処理でテーブルの同じ行が2回読み込まれると、1つのトランザクション内で異なる結果が返されます。反復不可能な読み取りは、トランザクションの読み込みの間に別のトランザクションが行への変更を更新して確定すると発生します。反復不可能読み取りは一貫性は向上しますが、並行性は低下します。

  • ファントム……SQL処理で一連のデータ値が2回読み出された時に、1つのトランザクション内のさまざまな結果を返します。ファントムは、一連の読み出しの実行の間に、別のトランザクションが新しいレコードを挿入して挿入を確定すると発生します。各分離レベルは、許容する現象によって異なります。

参照：

詳細は、「マルチユーザ環境」の 分離レベル を参照してください。


DBMS 特性 テーブルの存在チェック

テーブルの存在チェック

設定 > DBMS > DBMS特性

アクセス先のテーブルが存在するかどうかをファイルオープン時に確認するかどうかを指定します。

この欄をチェックすると、テーブルが存在するかどうかを確認し、テーブルが見つからなかった時にはMagicはデータベースにテーブルを新規作成します。実行時にアクセスするテーブル全てについて存在するかどうかを確認するため負荷がかかり、処理速度は低下します。

チェックを外した場合には、処理速度が向上しますが、テーブルが存在しない場合には、処理中にRDBMSエラーとなります。


DBMS 特性 デフォルトデータタイプ

デフォルトデータタイプ

設定 > DBMS > DBMS特性

[デフォルトデータタイプ]テーブルには、XMLのデフォルトのデータマップが含まれています。ここには、XSDの全てのタイプとMagicのデータタイプが割り当てられています。

定義取得の間、要素/属性のタイプが、SimpleTypeを使用して定義されたり、グローバル要素への参照として定義された場合、そこから派生する適切なPrimitive XSDデータ型に変換されます。Primitive XSDデータ型は、対応するMagicのデータ型に割り当てられます。

デフォルトの型が（テーブルに指定されるたように）割り当てられます。タイプが、SimpleType（長さを定義します）に基づく場合、型はSimpleTypeに対応て指定された長さによって更新されます。

Magicデータの型と書式は、変更できます。デフォルトの設定と異なる値に変更すると、変更値の色が緑色に変わります。この設定値は、ダイアログを閉じるとMagic.ini の[XML_DEFAULT_DATATYPES]セクションに保存されます。Magic.iniファイルがロードされると、Magic.iniファイルに保存された値が読み込まれて、[デフォルトデータタイプ]テーブルに反映されます。


データベース

設定 >

ここには、デフォルトデータベースとして、「Default Database」と「Default XML Database」、「Memory」が定義されています。

データソース定義とにおける最初の手順は、データソースが格納されるデータベースを定義することです。

[データベース]テーブルでは、Magic からアクセスする物理データベースやXMLデータソースの詳細設定を行います。

デフォルトでは、以下の設定が自動的に定義されます。

  • Default Database …… データソースを新規に定義した場合、意図的に変更しない限り、これがデフォルトのデータベースとして使用されます。

  • Default XML Database …… XMLデータソースを新規に定義した場合、このオプションがデフォルトのデータベースとして使用されます。

  • Memory …… メモリテーブルが必要な場合、このデータベースを使用することでMagic実行時にのみ有効なデータベースとして使用できます。

  • Default XML Memory database …… このデータベースは、デフォルトのXML格納用（XMLの[DBMS特性]で定義されています）として使用されます。

Magicは、複数のDBMSに接続することができます。これらのDBMS によっては、同一のコンピュータ上の異なる場所にデータを配置したり、異なるコンピュータ上にデータを分散配置したりできるものがあります。また、DBMS の中には、複数の物理データベースを単一の論理エンティティに格納して管理できるものがあります。Magicは、[データベース]テーブルを使用して、これらの異なる物理データベースへのアクセスを管理します。

[データベース]テーブルには、Magicのデータベースオブジェクトに必要な基本情報を設定します。[データベース特性]ダイアログでは、オブジェクトに関する追加情報を設定します。[データベース特性]ダイアログは、[データベース]のコンテキストメニューから[特性]を選択するか、Alt+Enter を実行することでアクセスできます。

同一のDBMS を使用して複数のMagic データベースを作成することができ、各データベースにそれぞれ個別に特性を定義することができます。

[データベース]テーブルにあるデータベースの定義は論理的な定義で、実際のSQLデータベースには影響しませんが、Magicアプリケーションの表示や動作仕様を定義します。

[データベース]テーブルでは、複数のMagicデータベースのエントリが同一のSQLデータベースを指示するように定義できます。

例えば、データベースの一連のテーブルに対してあるユーザがアクセスし、別の一連のテーブルに対して別のユーザがアクセスする場合、2つの同一の定義をそれぞれのユーザ名で行うことができます。

データベーステーブルの情報は、MAGIC.INIファイルの[MAGIC_DATABASES]セクションにあります。

注意：

データベースへの接続が確立したら、その切断は（DbDiscnt関数を使用するか DBAによって）明示的に行うか、Magicを終了させることによって行います（アプリケーションを終了させても接続は維持されます）。データベース特性で行った変更が有効になるのは、次にデータベースに接続した時です。Magicゲートウェイの動作に影響するデータベースの特性を変更した場合は、必ずいったんMagicを終了し、Magicを再起動してください。

[データベース]テーブには以下のカラムがあります。

名前

データソースタイプ

DB名

DBMS

位置

参照

データベース特性


データベース 名前

名前

設定 > データベース

物理データベースの名前、または簡単な説明です。データベースを示す文字列で、[テーブル]リポジトリや[アプリケーション]テーブルなどの処理でデータベースの参照が必要になった場合、この名前を基にデータベースが識別されます。データベースの識別にはインデックスも使用できますが、文字列を使用することで、同じ名前が別の開発者に使われる可能性も少なくなり、アプリケーションの移植性が高くなります。

この名前の入力は必須で、大文字と小文字が区別されます。


データベース データソースタイプ

データソースタイプ

設定 > データベース

[データソースタイプ]カラムは、基本的なデータソースのタイプを指定します。

エントリを追加すると、指定したDBMSの特性を継承します。

ここには、以下の値から1つを選択できます。

  • DBMS …… RDBMSを使用します。

  • X=XMLファイル …… XML形式のデータソース。このオプションを選択すると、[DB名]と[DBMS]のカラムは使用不可になります。[位置]カラムには、XMLファイルのパス名かURL（HTTP/HTTPS）を設定できます。
    [位置]カラムが指定されていない場合、[データ]リポジトリ内のデータソース名を接頭語とする位置でアクセスされます。

注意：

  • XMLデータベースは、[動作環境]ダイアログの[デフォルトデータベース]で設定することができます。

  • XMLデータベースは、[ソート/一時用データベース]には設定できません。


データベース DB名

DB名

設定 > データベース

ここには、サブデータベースの名前を指定します。サブデータベースとは、DBMS のサーバによって操作されるデータベース全てからアクセスが実行されるようなデータベース（下位データベース）をいいます。このパラメータは、単一の論理エンティティ（通常は、データベースサーバ）内で複数のデータベースが管理されるようなDBMS の場合に使用します。

DB名は、DBMSで定義されたデータベースの名前です。ODBCでは、DB名はODBCアドミニストレータで定義されたデータソースの名前です。

ここには、論理名を指定することもできます。

この設定はオプションです。


データベース DBMS

DBMS

設定 > データベース

ここには、[名前]カラムで指定したデータベースの元となるDBMS を指定します。ここからズームするとロードしているゲートウェイに基づいた[DBMS一覧]が表示されます。（[DBMS]テーブルに定義されている名前ではありません。）

[DBMS]カラムの値は必ず指定しなければなりません。[DBMS]カラムによって、この項目で指定した物理データベースのデータベース管理システムのタイプが識別されます。


データベース 位置

位置

設定 > データベース

ISAMデータベースまたはXMLファイルのみ関係します。ここには、ファイルの物理的な位置を指定します。

Magicによって作成されるファイルは、ここで指定された場所に作成されます。

このカラムの値には論理名を指定できます。 このカラムの設定はオプションです。


データベース特性

設定 > データベース

[データベース特性]ダイアログにアクセスするには、[データベース]テーブルから、Alt+Enter を実行するか、コンテキストメニューから[特性]を選択してください。

[データベース特性]は、次の3つのタブに分かれています。

[ログイン]タブ

データベースサーバ

ユーザ名

ユーザパスワード

接続文字列

[オプション]タブ

開発モードでのテーブル変換

定義チェック

インデックスチェック

サーバソート

Magicロック

ロックパス

[SQL]タブ

データベース情報

ヒント

照合順序ファイル

配列サイズ

存在チェック

[データソース]が「X=XMLファイル」の場合、[XML設定]ダイアログが表示されます。


データベース 特性 データベースサーバ

データベースサーバ

設定 > データベース > データベース特性

ここには、RDBMSサーバの名前か、IPアドレスを指定します。

DBMS サーバを使った場合、リモートのデータへのアクセスはDBMS サーバによって実行され、このためデータはMagic からはローカルデータのように見えます。

SQL系サーバの場合、[データベースサーバ]には、SQLサーバ名が表示されます。Oracleでは、これはエイリアス（別名）になります。

エイリアスは、RDBMS定義のための代替の名前です。この名前は、コード内で参照する際の名前を短縮したり、可能な限り曖昧な参照を防止したり、クエリー内の記述名として使用されます。

DB2 UDB と ODBC の場合は、データベースがDNS（[データベース]テーブルの[DB名]カラムに指定します。）を持っているため、この設定は不要です。

この特性はオプションです。


データベース 特性 ユーザ名

ユーザ名

設定 > データベース > データベース特性

データベースによっては、アクセスにユーザ名とパスワードが必要になります。これは、Magic サーバやDBMS のデータベースサーバのアクセス対象となるデータベースについても同様です。また、Magicクライアント/サーバモデルを使用してリモートのホストマシンにアクセスする場合、ユーザ名とパスワードは必須になります。データベースでユーザ名が必要な場合、[ユーザ名]欄を空白にしておくと、データベースのテーブルに最初にアクセスを実行した時にMagic によりダイアログが表示され、ユーザ名とパスワードが必要なことを通知します。

ここにユーザ名を指定した場合、データベースのテーブルが置かれているホストのセキュリティシステムによって、そのユーザ名が認識されます。なお、MAGIC.INI ファイルは保護されていないため、ユーザ名はシークレット名で指定してください。

この特性はオプションです。


データベース 特性 ユーザパスワード

ユーザパスワード

設定 > データベース > データベース特性

ここには、ユーザのパスワードを指定します。指定したパスワードは、アクセス先のデータベースのテーブルが置かれているホストのセキュリティシステムによって認識されます。なお、MAGIC.INI ファイルの[パスワード]欄は保護されていないため、パスワードはシークレット名で指定しなければなりません。

この特性はオプションです。


データベース 特性 接続文字列

接続文字列

設定 > データベース > データベース特性

接続文字列は、Oracleにのみ関連します。ここに文字列を指定する場合、データベースサーバが上書きされます。

SQLデータベースを操作したり、SQLコマンドを実行するには、最初に、ユーザは接続文字列をデータベースに送信しSQLサーバに接続する必要があります。接続文字列に含まれるのは、接続するユーザのユーザ名とパスワード、およびデータベースサーバに関する設定（Oracleでは、SIDによって接続されるデータベースを識別）です。

各データベースには、それぞれ独自の接続文字列があります。


データベース 特性 開発モードでのテーブル変換

開発モードでのテーブル変換

設定 > データベース > データベース特性

この特性を「有効」とすることによって、開発モードのMagicプロジェクトで、基礎となるデータベーステーブルのテーブル構造を変更できるようになります。

この設定のデフォルトは、[動作環境]の[Default Database]設定で選択されているデータベースのタイプによって異なります。ISAM データベースの場合、この欄のデフォルト値は「有効」になります。一方SQL データベースの場合には、この欄のデフォルト値は「無効」になります。

テーブル構造を作成中の時や、データがまだ入力されていない状態の時、プロジェクトが運用に入る前などには「有効」にして変更ができるようにします。

注意：

データ入力が一度でも行われており、この設定が「有効」の場合は、Magicは基になるテーブルをデータベースからドロップし、新しい修正内容を反映したテーブルを新しく作ります。このため、アプリケーションの運用段階では、この設定は「無効」にしてください。ISAMデータベースと異なり、SQL系のデータベースでは、基になっているテーブル構造の規則に影響を与えるためです。

メモリゲートウェイ

メモリテーブルを削除する場合は、この特性は影響しません


データベース 特性 定義チェック

定義チェック

設定 > データベース > データベース特性

Magic には独自の[データ]リポジトリが用意されていますが、アクセス先のDBMS にも独自のデータ辞書が用意されていることもあります。[データ]リポジトリのテーブル構造は、Magicで変更することもできますし（Magic を使用して変更した場合、DBMS のデータ辞書も自動的に変更されます）、外部DBMS のユーティリティを使用して変更することも可能です（ただし、こういったユーティリティでの変更によっては、Magic の[データ]リポジトリの変更はできません）。

Magic の[データ]リポジトリを変更した場合、[データ]リポジトリとMagic プログラムによって使用されるテーブルの構造が異なることもあります。これは、Magicプログラムの動作に異常が発生する原因になります。

[定義チェック]を「無効」にした場合、テーブルオープン時にテーブル構造のチェックを行いません。

[定義チェック]を「有効」にした場合、データテーブルが開かれる際、物理ファイルのテーブルの構造とMagic の[データ]リポジトリの定義がチェックされるようになります。このチェックで、物理ファイルの構造とMagic の[データ]リポジトリの定義が異なった時には、エラーメッセージが表示されるとともに、Magicの処理がアボートされます。なお、この特性は、テーブル構造に関する情報が提供されるDBMS でのみ意味があります。テーブル構造に関する情報がどの程度詳しいかは、DBMS によります。

[定義チェック]欄は必須です。デフォルト値は、データベース項目のDBMSタイプによって異なります。


データベース 特性 インデックスチェック

インデックスチェック

設定 > データベース > データベース特性

ISAMデータベースでのみ有効です。

Magic にはインデックスチェック機能があり、この機能を使用することでデータの整合性を維持できます。

この特性を「有効」にしておくと、ユーザがレコードにデータを入力しようとした際、データテーブルが検索され、そのデータと同じインデックスがないかどうかチェックされます。ユーザが入力しようとしたデータが、Magic の[データ]リポジトリで[重複不可]として定義されているインデックスと重複する場合、[重複インデックス]エラーメッセージが出力されます。また、その時点で処理は停止し、ユーザは別のデータを入力しなければならなくなります。

この機能はMagic の機能であり、プログラミングは不要です。ただし、DBMS によっては、このチェックには時間がかかることもあります。その場合、この機能は「無効」にしても結構です。この場合の動作は、DBMS 側の重複データ処理の仕様に依存することになります。

デフォルト設定は、データベース項目のDBMSタイプによって異なります。


データベース 特性 サーバソート

サーバソート

設定 > データベース > データベース特性

この設定は、iSeries データベースでのみ有効です。

Query フィールドをオープンするために Magic で定義された仮想インデックスを使用して、ソート処理を行うかどうかを指定します。

サーバソートが設定された場合、Magicは独自のソート処理を実行せず、仮想インデックスを現在のテーブルに追加して使用します。


データベース 特性 Magicロック

Magicロック （SQL系：N=なし，ISAM系：T=テーブル）

設定 > データベース > データベース特性

この特性は、主にISAMデータベース用です。

Magicのロック機能は、トランザクションなしで、MGLOCKファイルによって、レコードレベルおよびテーブルレベルで管理されます。このロック機能はMagicロックと呼ばれ、Magicロック特性を[レコード]や[テーブル]に設定すると有効になります。SQL RDBMSロックは常に起動されているので、物理トランザクションモードタスクでSQLデータベースへアクセスする場合、通常はロック機能を追加する必要ありません。

この設定を[N=なし]に設定すると、使用するデータベースのロック制御のみが有効になります。

  • N=なし……Magic によるロック制御は行われず、データベースによる同時アクセス制御機能のみが働きます。

  • R=レコード……１つのレコードに対して同時にアクセスできるユーザの制御にMagic によるロックを使用します。

  • T=テーブル……１つのテーブルに対して同時にアクセスできるユーザの制御にMagic によるロックを使用します。

  • B=両方……「R=レコード」と「T=テーブル」の両方の機能が働きます。

（ただし、これらの設定を行った場合にも、データベースによる同時アクセス制御機能は働きます）。

参照

ロックファイル


データベース 特性 ロックパス

ロックパス

設定 > データベース > データベース特性

RDBMSを使用してデータにアクセする時、Magicはデータの物理位置を認識していません。データがリモートのホストマシンにあっても、ローカルデータとして処理されます。この場合には、Magicのロック機能は働きません。この機能では、同じデータにアクセスする全てのユーザが同一のロックファイルを共有している必要があるためです。

Ver8では、テーブルロックは、プログラムのアクセスモードと共有モードの設定（[プログラム]リポジトリの[DB テーブル]）によって決まりました。このため、マルチユーザによりアクセスが実行されるオンライン環境では、アクセスモードと共有モードの設定によっては、タスクの実行中はテーブルがロックされてしまうということが発生しました。この問題は、データベースがSQL の場合は改善されています。つまり、DBMS のテーブルロック機能を使用することで、ロック時間を縮小することができるようになりました。

Magic ロックを「N=なし」または「R=レコード」にしておくと、Magic によるテーブルレベルのロックは実行されません。この場合、DBMS によって実行されるトランザクションの種類によって、テーブルの共有モードが決まります。したがって、DBMS の保護書込トランザクションを使用したい時には、Magicロックを「N=なし」または「R=レコード」にしておきます。

この特性を「R=レコード」または「B=両方」に設定しておくと、レコードロックについても、データベースのロックメカニズムに加えて、Magic の内部ロックメカニズムも使われるようになります。この場合、データベースにアクセスする全てのユーザによって共同で使用されるディレクトリを指定しなければなりません。このディレクトリは、この[ロックパス]特性で指定します。

この[ロックパス]特性は、他の関連パラメータ全てに優先されます。

ここでロックパスを指定した場合、データベースのロックは、そのパス上にあるロックファイルにしたがって行われるようになります。また、ロックパスを指定する場合、そのパスは、テーブルにアクセスを実行するユーザ全てが使用できなければなりません。さもなければ、データの競合が発生する危険が生じます。

この値には論理名を指定できます。 この特性はオプションです。

参照

Magicロック

ロックファイル

ロック

ロック方式

タスクのネストとロック


データベース 特性 データベース情報

データベース情報

設定 > データベース > データベース特性

ここには、データベース独自の情報を指定します。指定した情報は実行時にRDBMS に渡されます。

参照

SQLに関する考慮事項

Oracleのデータベース情報

MS-SQL Serverのデータベース情報

DB2UDBのデータベース情報


データベース 特性 ヒント

ヒント

設定 > データベース > データベース特性

この特性は、現在サポートされていません。

参照

SQLに関する考慮事項


設定 データベース 特性 照合順序

照合順序（ACS）ファイル

設定 > データベース > データベース特性

ここでズームすると、「ファイルを開く」ダイアログが表示されます。このダイアログでACS ファイルを指定します。

ファイルが指定されない場合は、[データベース情報]特性のACS文字列を参照します。そこにも指定されていない場合は、[動作環境]ダイアログの[照合順序ファイル]特性の定義内容を参照します。

ここで指定されたファイルは、DBMS の照合順序ファイルより優先されます。新しいDBMS が選択された場合は、照合順序ファイルも指定し直してください。

参照

SQLに関する考慮事項


設定 データベース 特性 配列サイズ

配列のサイズ

設定 > データベース > データベース特性

SQLに対するMagicゲートウェイは、配列処理をサポートしています。データベースからレコードを取得する場合、ゲートウェイは1度に1レコードずつ取得するのではなく、まとめて取得することによってネットワークのトラフィックを減らします。

Magicはレコードに関して独自の配列サイズを使用していますが、変更することもできます。大きなテーブルを照会する場合、配列サイズを増やすと処理能力が向上しますが、Magicのデフォルト値を使用することをお勧めします。デフォルト値は、特別な場合にのみ変更してください。

配列サイズは、新しいテーブルを作成した時にだけ、[データソース特性]にコピーされます。


データベース 特性 テーブルの存在チェック

テーブルの存在チェック

設定 > データベース > データベース特性

実行時、アクセス先のSQL テーブルが存在するかどうかのチェックを行うか否かを指定します。

この特性が「有効」な場合、チェックを実行し、テーブルがない場合には、そのテーブルをMagicが作成します。なお、この機能を使用すると、チェックのために処理速度が低下する場合があるので注意が必要です。

この特性が「無効」な時は存在チェックをしないため、もしテーブルがない場合にはRDBMS からエラーが出力されます。


データベース 特性 XMLの設定

XMLの設定

設定 > データベース > データベース特性

以下の実行特性は、[データソースタイプ]が「X=XMLファイル」の場合に[データベース特性]を開くと表示されます。

  • 一時データベース …… XML以外のデータベースを選択してください。フラットビューを保存する場合に使用されます。

  • トランザクションサポートは、指定されたDBMSに依存します。

  • デフォルトのフラットビューは「Default XML Memory Database」です。

  • アプリケーションがオープンされると、定義取得で使用されたXMLデータベースか否かに関わらず、フラットビューのDBMSが使用する全てのXMLソースに自動的に追加されます。

  • 実行時にXMLデータソースをオープンすると、[フラットビュー]テーブルは、フラットビューデータソースの特性（位置や、ユーザ名、パスワードなど）を使用してオープンされます。 DBMSゲートウェイがロードされない場合は、テーブルはオープンされません。


ロギング

設定 >

[設定]メニューから[ロギング]を選択すると[ロギング]テーブルにアクセスすることができます。このテーブルは、[設定]タブと[DBMS]タブから構成されています。

[動作設定]ダイログの[ロギングテーブル表示]を「Yes」にした場合のみ有効になります。


ロギング 設定

[設定]タブ

設定 > ロギング

以下のオプションが利用可能です。

オプション | 出力される内容 | MAGIC.INI とコマンドラインの名前
タスク | タスクのオープン／クローズに対応するイベント | Task
レベル | （前／後のような）様々な処理レベル | Levels
データビュー | （データ定義、範囲／位置付のような）様々なデータビューオプション | DataView
再計算 | 再計算処理 | Recompute
処理フロー | （項目更新やコールのような）処理コマンド | Flow
イベント | トリガされるイベント | Events
クライアントの動作 | クライアント側の動作 初期接続時にこのオプションが「No」に設定されている場合、クライアントにログが作成されません（作成されないか、サーバに送信されません）。 何度もサーバと接続する必要があるため、「Yes」に設定された場合、パフォーマンスが低下する可能性があります。 | LogBrowser LogClient
ゲートウェイ | ゲートウェイの処理 | Gateway
トランザクションキャッシュ | トランザクションキャシュ | TransCache
バックグラウンドメッセージ | バックグラウンドメッセージがフィルタされるかどうかを指定します。 | BackgroundMsg
開始/終了 メッセージ | ロギングモニタの処理の開始と終了の整合処理を有効にするかどうかを指定します。 | BeginEndMsg
ログ同期 | ログのオープン／クローズを毎回行うかどうかを指定します。「No」に設定された場合、Magicは全てのステートメントをログファイルに書き込みません。 | LogSynch
外部ログファイル名 | ログ情報を外部ファイルに書き込むかどうかを指定します。 | ExternalLogFileName

上記の設定の即時有効になります。

ログは、[デバッグ]メニューの[デバッグモード]に影響されません。ログ情報は、ロギングの停止状態以外は、ログに送られます。

有効なファイル名があれば、Magicの実行エンジンが起動されるとロギングか開始されます。

参照

[DBMS]タブ


ロギング DBMS

[DBMS]タブ

設定 > ロギング

[DBMS]タブには、ログをフィルタリングするためのオプションがあります。

ここに設定された内容は、即時に有効になります。

[ログレベル]カラムには、Magicのデータベースゲートウェイによって作成されるログのレベルを定義します。以下のオプションがあります。

  • N=なし …… ログファイルが作成されません。

  • D=開発者用 ……MSJの技術部門向けのログファイルが作成されます。

  • S=サポート用 …… アプリケーション開発者向けのログファイルが作成されます。

  • C=ユーザ用 …… SQLコマンドが出力するログのみ出力されます。

注意：

ログレベルの設定によってアプリケーションのパフォーマンスに影響します。このため、ログレベルの設定は、デバッグの間だけ行うようにお勧めします。

参照

[設定]タブ


論理名

設定 >

Magic には論理名機能が用意されています。この機能は、アプリケーションを移植する時に有効です。この機能を使用することで、物理記憶媒体やOSのネーミング規則から離れて、アプリケーションを開発できます。つまり、アプリケーションの移植の際、[論理名]テーブルが変換テーブルとして使われ、その設定にしたがってアプリケーションが変換されるようになります。論理名は、ファイル名またはパスに使用できます。

Magicは[論理名]テーブルの設定内容に基づいて実行時に論理名を変換します。

詳細は、論理名の使用法を参照してください。

注意：

以下の論理名は、予約語のため登録できません。[論理名]テーブルに登録された状態になっています。この論理名は削除することも、修正することもできません。

  • EngineDir …… Magicエンジンのディレクトリパスと解釈されます。

  • WorkingDir …… 作業フォルダのパスと解釈されます。

  • TempDir …… OSによって定義された一時ディレクトリのパスと解釈されます。

参照

#(ID)

名前

実行名


論理名 ID

# (ID)

設定 > 論理名

プロジェクト内で使用される論理名のID。Magicによって自動的に設定されます。

参照

論理名の使用方法


論理名 名前

名前

設定 > 論理名

プロジェクトで使用する論理名を指定します。この論理名は、実行時、[実行名]カラムで指定された値に置き換えられます。論理名は、同じプロジェクトであれば、プラットフォームやOSが変わっても同じです。

注意：

論理名の大文字と小文字は区別されます。

論理名には、以下の文字が使用できません。

  • 0x1F以下の制御コード（エスケープシーケンス）

  • ?

  • *

  • <

  • >


論理名 実行名

実行名

設定 > 論理名

ここには、実際の名前を指定します。ファイルへのアクセスの際には、論理名に代わって、この名前が使われます。この名前は、Magicのインストール環境に応じて変更してください。

論理名の前後に「%」を付加することで実行名の中に別の論理名を使用することができます。

参照

論理名の使用方法


論理名 論理名の使用方法

論理名の使用方法

設定 > 論理名

実行時、入出力処理を行うためにファイル名を確定させる時などに、[論理名]テーブルの論理名が参照されます。ファイル名は左から右にスキャンされ、[論理名]記述が検出されると、[論理名]テーブルから[実行名]カラムの値を持ってきて、置き換えます。論理名は、1 つのファイル名の中に複数個使用することもできます（例えば、ディスクドライブ、ディレクトリ、ファイル名にそれぞれ論理名を使用する。 等）。

論理名情報は、MAGIC.INIファイルの[MAGIC_LOGICAL_NAMES]セクションにあります。

リッチクライアントタスクで、（INIPut関数を使用して）論理名を変更した場合、実行結果は、次のアプリケーション起動時に反映されます。オンラインタスクの場合は、即時に反映されます。

論理名の構文

論理名の構文は、次のようになります。

%logicalname%

ここで、最初の’%’は、論理名が始まることを示します。logicalname は、論理名自体です。最後の’%’は、論理名が終わることを示します。

注意：

論理名の大文字と小文字は区別されます。

論理名の使用に関する規則

  • %は、論理名の区切文字としてだけ使用でき、論理名の名前には使用できません。

  • アプリケーション内の論理名と区切文字は、[論理名]テーブルの指定にしたがって変換されます。従って、式で論理名を使用する場合は、テキストと同じようにアポストロフィで囲むように定義します。アプリケーション内の論理名に対応する論理名が[論理名]テーブルになかった場合は、空白が実行名となります。

  • 終了区切り記号がない時には、論理名として処理されません。


言語

設定 >

ここでは、言語表示を切り替えるための変換ファイルを指定します。この変換ファイルは、Magic の実行時に使用されます。

Magic には多言語サポート機能が用意されています。この機能を利用して、いずれかの言語向けに作成したアプリケーションを別の言語向けのアプリケーションとして提供することができます。

Magic の多言語サポートには、次のような制限があります。

  • MagicのWindowsバージョンのみでサポートします。

  • テキストが左から右に入力される言語でのみ有効です。

  • 複数行編集やリッチテキストコントロールでは無効です。

  • プロジェクト内の文字列は、Unicodeに変換されます。

参照

名前

変換ファイル

多言語ファイルの作成

言語サポートの設定

多言語システムの使い方


言語 名前

名前

設定 > 言語

変換後に表示される言語が分かりやすく識別できるような名前を入力します。テキストは128バイトまで入力できます。


言語 変換ファイル

変換ファイル

設定 > 言語

言語変換ファイルをフルパスで指定します。このファイルが、アプリケーション実行時の表示言語の変換に使用されます。ここからズームすると、Windows 標準の[ファイルを開く]ダイアログが表示され、ファイルを選択できます。

アプリケーション実行時に使用する最初の言語は、[動作環境]ダイアログの[デフォルト言語]（[外部参照]タブ）で指定します。

アプリケーションでは、関数を利用して必要に応じて言語（言語変換ファイル）を変更し、実行中に表示を切り替えることができます。


言語 多言語ファイルの作成

言語変換ファイルの作成

設定 > 言語

コマンドラインユーティリティ（MLS_BLD）は、作成ファイルの存在をチェックしないため、同じファイル名が存在した場合、常に上書きします。


言語 言語サポートの設定

言語サポートの設定

設定 > 言語

言語変換ファイルは、コマンドラインユーティリティのMLS_ BLD を使用して作成します。なお、このユーティリティでは、出力先のファイルが存在するかどうかのチェックを行いません。同じ名前のファイルがあった時には、そのファイルが上書きされます。

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

  1. 変換元ファイル（テキストファイル）を次の形式で作成します。

  2. １ 項目につき２ 行

  3. 各行は（CR/LF）が終端

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

  5. １ 行の最大長は32000 文字

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

MLS_BLD ＜入力ファイル名＞＜出力ファイル名＞＜コードページ＞

  • ＜入力ファイル名＞は、1 で作成した変換元ファイルの名前です。

  • ＜出力ファイル名＞は、作成する言語変換ファイルの名前です。このファイルを[言語]テーブルの「変換ファイル」として選択します。

  • ＜コードページ＞は、元のテキストファイルのコードページを指定します。通常は、「932」（Shift-JIS）を指定してください。入力ファイルがUnicodeの場合は、この指定は必要ありません。

コードページの指定内容は以下のようになります。

コードページ |
1252 | ANSI
932 | Shift-JIS
936 | 簡体字
950 | 繁体字
949 | ハングル
1255 | ヘブライ語
1254 | トルコ
1252 | ANSI
1251 | キリル


言語 多言語システムの使い方

多言語システムの使い方

設定 > 言語

アプリケーションで多言語サポートを実行するためには、[デフォルト言語]（[設定／動作環境／外部参照ファイル]）に、使用する言語を言語テーブルから選択します（次セッションから有効）。または、直接MAGIC.INIファイルの[MAGIC_ LANGUAGE]セクションにエントリを登録し、その言語変換ファイルが使われるように指定します。

上記のようにして言語を指定しておくと、アプリケーションの実行時には、次の個所のテキストが言語変換ファイルを用いて自動的に変換表示されます。

  • テキストコントロール

  • メニュー項目テキスト

  • 自動ヘルプのテキスト

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

  • ウィンドウタイトルテキスト

  • セレクト項目名のテキスト

  • インデックス名のテキスト

  • インデックスセグメント名のテキスト

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

  • グループコントロールのタイトル

  • チェックボックスのタイトル

  • プッシュボタンのタイトル

  • チョイスコントロール（ラジオボタン、コンボボックス、リストボックス、タブコントロール）の選択肢のテキスト

各コントロールのフォント属性は式の形で定義できます。実行時には、この式が評価され、言語変換ファイルを基に変換が行われます。

開発時に、テキストのサイズのチェックが実行されるような処理（サイズ調整やAPG など）を使用してコントロールを作成した場合、そのコントロールは、開発時に使用する言語（基準言語）のテキストのサイズを使用して作成されます。したがって、実行時に別の言語に変換した時の表示サイズまでは考慮されていませんので、ご注意ください。

選択コントロールのテキストを変換する場合、そのコントロールの選択肢の数が、変換前と変換後で同じになるようにします。数が合わない場合の動作は保証されません。

言語関連の関数としては、GetLang とSetLang があります。


プリンタ

設定 >

[プリンタ]テーブルには、アプリケーションの実行時に利用可能な印刷デバイスと属性を設定します。このテーブルの印刷デバイスはいずれも、Magic 論理プリンタです。この論理プリンタに対しては、Magic アプリケーション内でのみ参照が可能です。[プリンタ]テーブルでは、入出力ファイル（OSのテキストファイル）を印刷デバイスに出力するための設定を行うこともできます。

アプリケーションの実行時、プリンタメディアに対する出力処理が実行されると、[プリンタ一覧]から[プリンタ]テーブルの設定内容を参照して物理プリンタの属性を取得します。

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

プリンタテーブル情報は、MAGIC.INIファイルの[MAGIC_PRINTERS]セクションにあります。

255行まで登録可能です。

参照

名前

キュー

コマンドファイル

変換ファイル

行


プリンタ 名前

名前

設定 > プリンタ

論理プリンタの名前です。この名前は、[プリンタ一覧]に表示されます。このプリンタ名は、データ文字列としてMagicプログラム内に登録され、プリンタ識別子として使用されます。アプリケーションの実行時には、このプリンタ名によって[プリンタ]テーブルが検索され、実際の物理プリンタデータと関連付けられます。


プリンタ キュー

キュー

設定 > プリンタ

ここには、物理プリンタを指定します。カレントの論理プリンタに対する出力データは全て、この物理プリンタに送られます。ここにはOSに登録されているプリンタ名を指定します。該当するプリンタが見つからない場合は、OSのデフォルトプリンタ（例えばWindowsではLPT1など）に割当てられます。

GUI形式印刷の場合、[プリンタ]テーブルの[キュー]カラムに印刷マージンのパラメータを設定することで用紙の周りの余白を設定することができます。この設定により、用紙の左上隅から指定した左上マージン値を移動した位置を原点として、設定した余白でフォームのレイアウトを印字するようになります。 本指定がない場合には、プリンタモデルの印字可能領域の左上を原点として、フォームレイアウトを印字します。

パラメータは、スタイル設定ユーティリティ（Setstyle.exe）または、プリンタ設定ユーティリティ（Mgprn.exe）で設定ができます。 設定方法の詳細に関しましては、ユーティリティの使用方法 (UTIL.HLP） を参照してください。


プリンタ コマンドファイル

コマンドファイル

設定 > プリンタ

この設定は、テキスト形式印刷を行う場合のみ関係します。

ここには、プリンタ制御コードが格納されているファイルの場所と名前（OSでの名前）を指定します。このファイルを使用して、Magic 印刷属性が解析されます。コマンドファイルはラベルとプリンタ制御コードで構成され、Magic 印刷属性はラベルを使用して指定します。Magicのフォーム印刷に際しては、コマンドファイルの情報にしたがってMagicの論理的印刷属性が変換されることになります。

ラベルは、同じものを複数のコマンドファイルで使用することがあります。したがって、異なるコマンドファイルを用意することで、同じアプリケーションでも異なる印刷結果が得られることになります。


プリンタ 変換ファイル

変換ファイル

設定 > プリンタ

この設定は、テキスト形式印刷を行う場合のみ関係します。

ここには、印刷に必要な変換ファイルの場所と名前（OSでの名前）を指定します。この変換ファイルには、Magic の内部キャラクタコードと物理プリンタのコードの対応表を置きます。変換ファイルには256までの文字列を定義することができ、それぞれ、ASCII キャラクタコード（Magic の内部キャラクタセット）を対応させます。

このファイルで指定した文字列がプリンタに送られます。プリンタに送られる文字列には、シングルバイトコードのほか、マルチバイトコードを定義することもできます。また、この文字列に制御コードを含めることもできます。


プリンタ 行

行

設定 > プリンタ

印刷の際のページサイズを指定します。このページサイズは、物理プリンタのページサイズと同じである必要はありません。ページサイズは行数を使用して指定し、通常は物理プリンタのページサイズ（行数）より小さい値にしておきます。

ここで指定された値は、プリンタ出力が実行される時、Magic による内部的にカウント処理に使われます。ここで指定されている行数のデータが送られた後、Magic からプリンタにフォームフィード信号が送信されます。この値は、カレントのプリンタのデフォルトの行数として使われますが、上書きすることもできます。[フォーム出力]処理コマンドで使用される[入出力ファイル]テーブルの[行]カラムに値を指定することでこちらが優先されます。


HTMLスタイル

設定 >

[HTML スタイル]テーブルでは、HTMLスタイルタグの設定が可能です。ここで設定したタグは、HTMLフレームセット[フォーム]エディタで使用できます。

参照

名前

HTMLタグ

変更の保存


HTMLスタイル 名前

名前

設定 > HTMLスタイル

HTML スタイルを示す名前です。テーブル内で同じ名前は使えません。


HTMLスタイル HTMLタグ

HTMLタグ

設定 > HTMLスタイル

HTML スタイルを定義するタグ（複数可）で、ここで指定したタグは、Magicによって作成されるタグと組み合わされます。

例：

BORDER=0 では、ハイパーリンクオブジェクトの境界が表示されなくなります。


HTMLスタイル 変更の保存

変更の保存

設定 > HTMLスタイル

[HTMLスタイル]テーブルで内容を変更した場合、[OK]をクリックすると、変更内容が保存されます。HTMLスタイルの設定内容は、「HTMLスタイル定義ファイル」に保存されます。このファイルは、[動作環境]ダイアログの[HTMLスタイルファイル]に設定されたファイルが使用されます。

[HTMLスタイル]テーブルの修正を行なった場合、[ファイル保存]ダイアログが表示されます。[ファイル保存]ダイアログには[ファイル名]欄があります。現在使用している基本色ファイル以外のファイルに設定を保存したい場合、そのファイルの名前を変更します。


プリンタ属性

設定 >

Magicの論理的なプリンタ属性を定義します。[プリンタ属性]テーブルは、次の方法でアクセスすることができます。

  • [オプション/設定/プリンタ属性]を選択する。

  • [動作環境]ダイアログの[プリンタ属性ファイル]をダブルクリックする。

  • [アプリケーション特性]ダイアログの[プリンタ属性ファイル]をダブルクリックする。

[プリンタ属性]テーブルは、プリンタの印刷スタイルとMagicの色を組み合わせた論理的な印刷スタイルの構築に使用されます。色は後からフォーム領域を塗りつぶす時に使用されますが、この出力には、色で表される[プリンタ属性]が使用されます。

このテーブルの項目は、それぞれ特定のMagicの論理的な印刷スタイルに対応します。

参照

名前

プリンタコマンド

色

プリンタ属性一覧

変更の保存


プリンタ属性 名前

名前

設定 > プリンタ属性

プリンタ属性の名前を指定します。この名前は、指定のフォーム領域のプリンタ属性を選択した時に、[プリンタ属性一覧]に表示されます。


プリンタ属性 プリンタコマンド

プリンタコマンド

設定 > プリンタ属性

[プリンタコマンド]は、Magicのプリンタ属性を構成する、1つまたは複数のプリンタ印刷スタイルの集合です。プリンタ印刷スタイルは、物理プリンタのフォントまたは印刷書体が定義されています。この設定の値は、[プリンタコマンド一覧]を表示して選択します。[プリンタコマンド一覧]には、[プリンタ]テーブルの各Magicプリンタに指定されているプリンタコマンドファイル内のスタイル名が一覧表示されます。複数のコマンドファイルに存在するスタイル名があっても、[プリンタコマンド一覧]には１度しか表示されません。

  1. 実行モード時に、論理印刷属性が実際のプリンタ制御コードに変換されると、その印刷属性に定義されている全てのプリンタコマンドの接頭辞部分が、[プリンタコマンド]設定に登録されている順番にプリンタに送信されます。

  2. 続いて、フォームの項目がプリンタに送信されます。

  3. フォーム項目が送信されると、次に、印刷属性に定義されている全てのプリンタコマンドの接尾辞部分が、[プリンタコマンド]設定に登録されている順に送信されます。

複数のプリンタコマンドを1つの論理印刷属性にまとめれば、カスタム印刷スタイルを作成して、プロジェクトで使用することができます。

参照

プリンタコマンド一覧


プリンタ属性 プリンタコマンド プリンタコマンド一覧

プリンタコマンド一覧

設定 > プリンタ属性 > プリンタコマンド

ここには、[プリンタ]テーブルの各プリンタに定義されているコマンドファイルに登録さたプリンタコマンドが一覧表示されます。

[プリンタ]テーブルに複数のプリンタが登録されており、それぞれに異なるコマンドファイルが定義されている場合、コマンド名が重複していても１つしか表示されません。


プリンタ属性 色

色

設定 > プリンタ属性

プリンタ属性に関連付けられている色の番号です。色を選択するには、このカラムをダブルクリックして、[動作環境]ダイアログで定義されている[基本色定義]テーブルにズームします。

色は、プリンタ属性をフォームに割り当てる場合に使用されます。色がこのように利用される理由は、フォームの実際の領域を消費することなく、プリンタ属性の設定の可否を示す視覚的なインジケータとして機能するからです。

出力テキストのセクションに印刷スタイルを指定するには、次の手順で行います。

  1. [プログラム]リポジトリのプログラム項目をダブルクリックして、[タスク定義]ウィンドウを表示し、プルダウンメニューの[タスク環境]から[フォーム]を選択します。

  2. [フォーム]テーブルで、[インタフェースタイプ]が「T=テキスト形式」のフォームを選択します。フォームのクラスは「0」より大きくなければなりません。

  3. [名前]カラムをダブルクリックして、[フォーム]エディタを表示します。

  4. 印刷スタイルを指定するコントロールを選択します。

  5. [コントロール特性]の[色]特性からズームして、[プリンタ属性一覧]を表示します。

  6. [プリンタ属性一覧]から印刷スタイルを選択します。

  7. プリンタ属性が設定されたコントロールは、指定した印刷スタイルに対応する色でフォームに表示されます。

  8. [タスク環境]メニューから[入出力ファイル]を選択し、[メディア]カラムが[P=テキスト形式プリンタ]に設定されていることを確認します。[プリンタ]カラムには、指定した印刷コマンドファイルに制御コードが含まれているプリンタの名前が設定されていなければなりません。例えば、特定のレーザプリンタに印刷コマンドファイルを指定した場合は、[プリンタ]カラムに同じタイプのプリンタが指定されている必要があります。


プリンタ属性 プリンタ属性一覧

プリンタ属性一覧

設定 > プリンタ属性

有効なプリンタ属性の一覧が表示されます。[テキスト形式]フォームのコントロールにおいて、[色]特性からズームすることで表示されます。


プリンタ属性 変更の保存

変更の保存

設定 > プリンタ属性

[プリンタ属性]テーブルで内容を変更した場合、[OK]をクリックすると、変更内容が保存されます。HTMLスタイルの設定内容は、「プリンタ属性定義ファイル」に保存されます。このファイルは、[動作環境]ダイアログの[プリンタ属性ファイル]に設定されたファイルが使用されます。

[プリンタ属性]テーブルの修正を行なった場合、[ファイル保存]ダイアログが表示されます。[ファイル保存]ダイアログには[ファイル名]欄があります。現在使用している基本色ファイル以外のファイルに設定を保存したい場合、そのファイルの名前を変更します。


構文チェック メッセージテーブル

チェックメッセージテーブル

設定 >

[チェックメッセージ]テーブルで、構文チェッカーの各メッセージのレベルを変更することができます。

各メッセージに対して、エラー、警告、推奨、または無視のレベル設定を行うことができます。全てのメッセージがテーブルに表示されます。

[設定]メニューの[チェックメッセージ]をクリックすると、[チェックメッセージ]テーブルが開きます。

ここでは、メッセージを追加したり、削除したり、メッセージ内容を変更したりすることはできません。

チェックメッセージテーブルにおいてユーザによって変更された区分情報は、外部の Chk_std.dat ファイルに保持されます。[動作環境]ダイアログの[外部参照]タブの[チェックメッセージテーブルファイル]でこのファイル名を指定できます。指定されない場合は、Magicのデフォルト設定が有効になります。

チェック結果は、以下の４つに分類されます。

  • E=エラー……文法上間違っている記述を示します。

  • W=警告……文法上は間違えではないが、効率が良くなかったり、ロジック上の間違いとなる記述を示します。

  • R=推奨……よりよい設定内容に関する情報を提供します。

  • I=無視……チェック対象になりません。

チェックレベルについての詳細は、「最小チェックレベル」の説明を参照してください。


EM0002:Nested vectors - A non Vector cell model must be set as an endpoint cell model

ベクトルがネストされています.終端の[セルモデル]にベクトル型以外のモデルを指定してください.

設定 > チェックメッセージテーブル

発生場所：

[モデル]リポジトリ／[セルモデル]特性

意味：

ベクトル型の項目モデルの[セルモデル]特性に別のベクトル型の項目モデルが設定されていますが、末端のベクトル型モデルの[セルモデル]特性に何も設定されていない場合にこのエラーが発生します。ここには、ベクトル型以外の項目モデルを指定してください。


EM0003:This vector is a part of a recursive vector definition

このベクトルは、再帰ベクトル定義の一部になっています.

設定 > チェックメッセージテーブル

発生場所：

[モデル]リポジトリ／[セルモデル]特性

意味：

ベクトル型の項目モデルの[セルモデル]特性が再帰定義（自分自身を指定している）されている場合に発生します。再帰定義はサポートされていません。


EM0004:Bad picture at endpoint cell model

終端の[セルモデル]の書式が正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／[セルモデル]特性

意味：

[セルモデル]特性で指定したモデルの書式が正しくない場合に発生します。


EM0006:The program being called is not being executed in a new session. No need for Returned Context Id

起動されるプログラムは、新しいセッションで実行されません. [コンテキストID]の指定は不要です.

設定 > チェックメッセージテーブル

発生場所：

[メニュー]リポジトリ／メニュー特性／[コンテキストID]特性

意味：

[並行起動]特性が「No」に設定されているプログラム対して[コンテキストID]特性が設定されている場合に発生します。


EP0009:Initial Mode by Expression Must Use Expression

初期モードの[式]パラメータを指定してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／タスク環境／タスク特性／[初期モード]特性

意味：

[初期モード]を式で設定するようになっているが、式が設定されていない場合に発生します。


EP0010:Sort Not Allowed for Table Zero

メインソースが定義されていないため、ソートテーブルは定義できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

メインソースが定義されておらず、SQLタスクでない場合、[ソート]テーブルは定義できません。[ソート]テーブルに項目が定義されている場合にこのエラーが発生します。


EP0012:Tables in Link Join Operation Cannot Be Resident

結合リンクで使用するデータソースは、常駐できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／リンク／データソース

意味：

結合リンクしたデータソースが常駐テーブルになっている場合に発生します。

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／リンク／メインソース

意味：

メインソースが常駐テーブルのタスクで、結合リンクを行っている場合に発生します。


EP0013:Join Can Only Be Defined on a SQL Database

結合リンクは、SQLデータベースでしか使用できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／リンク／メインソース

意味：

メインソースがSQLテーブルでないタスクで、結合リンクを使用した場合に発生します。


EP0014:Magic SQL WHERE Clause Cannot Be Defined

Magic SQL Where句は、常駐テーブルをメインソースにしているタスクでは定義できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／タスク環境／範囲/位置付／SQL Where句

意味：

SQL Where句は、常駐テーブルをメインソース にしたタスクには定義できません。

範囲式とメインソースで常駐テーブルが定義された場合に、このエラーメッセージが表示されます。


EP0015:Block Else Without Block If Is Not Allowed

ブロックIf が定義されていないため、ブロックElseは定義できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[ブロック]処理コマンド

意味：

[ブロック処理]コマンドの 「Else」オプションが「If」オプションを指定しないで定義されている場合に発生します。


EP0016:Merge Forms that Only Use Requesters or File Media

フレームセット/マージフォームでは、[メディア]が「リクエスタ」か「ファイル」に定義された入出力ファイルしか使用できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[フォーム出力]処理コマンド／[入出力ファイル]特性

意味：

[フォーム出力]処理コマンドで「フレームセット形式」や「マージ形式」の各フォームを使用した時、[入出力ファイル]テーブルの［メディア]カラムの指定が「リクエスタ」か「ファイル」以外のものを指定した場合に発生します。


EP0017:Link Join Condition Cannot Point to Itself

結合リンクの位置付指定には、自分自身のカラムを指定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／リンク／[位置付け]特性

意味：

結合リンクの[位置付]特性に、結合リンクによって定義されたカラムが指定されている場合に発生します。


EP0018:Join Table's Index Segments with the Same Max and Min Locate Expressions

結合リンクのインデックスセグメントは、[位置付：最小/最大]特性に同じ値を設定してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ/[データビュー]エディタ/リンク／[位置付]特性

意味：

結合リンク内に指定されたインデックス用のセグメント項目が全て定義されていない場合に発生します。

結合リンク内の項目定義の[位置付:最小]特性が指定されていないか、[位置付:最大]特性に指定されている値と異なっている場合に発生します。


EP0019:All Join Tables Must Be from the Same Database

すべての結合リンクは同じデータベースを使用しなければなりません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／リンク

意味：

結合テーブルがメインソースと異なるデータベースの場合に発生します。


EP0021:Range for Direct Not Allowed

埋込SQLの出力パラメータに範囲は指定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／[範囲]特性

意味：

[SQLコマンド]ダイアログの[出力パラメータ]欄が設定されている場合、出力パラメータとなるカラムの[範囲]特性が定義されている場合に発生します。


EP0022:Incremental Update Not Supported

加算更新は、この項目では指定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[項目更新]処理コマンド／[加算]特性

意味：

[項目更新]処理コマンドの更新項目が 文字型、Unicode型、論理型、BLOB型の時に、[加算]特性が「Yes」に指定されている場合に発生します。


EP0023:Type Mixup - Variable Must Be an Alpha attribute

型が合っていません.－項目は、文字型でなければなりません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールリモート]処理コマンド／[メッセージID]特性

意味：

[コールリモート]処理コマンドの[メッセージID]特性に定義された項目の型が文字型でない場合に発生します。


EP0025:Missing Service

サービスが指定されていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールリモート]処理コマンド／[サービス]特性

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド／[サービス]特性

意味：

サービス名が指定されていない場合にこのエラーが発生します。


EP0026:Attribute mismatch - variable should be numeric

型が合っていません.－項目は、数値型でなければなりません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールリモート]処理コマンド／[戻り値コード]特性

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド／[エラーコード]特性

意味：

[コールリモート]処理コマンドの[戻り値]特性や[エラーコード]特性に定義された項目の型が数値型でない場合に発生します。


EP0027:Invalid Service - Not Found In Service Table

サービスが正しくありません－サービステーブルに登録されていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールリモート]処理コマンド／[サービス]特性

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド／[サービス]特性

意味：

定義されたサービスが[サービス]テーブルに定義されていない場合に発生します。


EP0028:The Form Selected is Empty

指定されたフォームは空です.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[フォーム入力]処理コマンド／[入出力フォーム]特性

意味：

入力フォーム上にコントロールが一つも配置されていない場合に発生します。


EP0029:Locate on link join variables must be either a variable or a constant

結合リンクによる位置付は、項目か定数で指定してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／リンク／[位置付]特性

意味：

結合リンクで定義されたカラムの[位置付]特性に、関数や演算子が含まれた式が指定された場合に発生します。


EP0030:The Index on a Link Join Table Must Be Unique

結合リンクでは、重複不可インデックスしか使用できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／リンク／インデックス

意味：

結合リンクにインデックスが定義されていないか、重複可のインデックスが指定されている場合に発生します。


EP0033:Variables referenced from link join outer locate must be selected before it

外部結合リンクの[位置付]特性に設定する項目は、[リンク]コマンドより前に定義しなくてはなりません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／リンク

意味：

外部結合リンクによって定義されたカラムの[位置付]特性に、このリンクコマンドより後に定義された項目が設定されている場合に発生します。


EP0034:Variables Referenced from Link Join

結合リンクで参照する項目は、同じ型でなくてはなりません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／リンク

意味：

結合リンクによって定義された項目の[位置付]（最小／最大）特性の指定値の型が合っていない場合に発生します。

結合リンクで、参照項目と異なる型でリンクされている場合に発生します。


EP0035:Invalid Service - Service Does Not Point to a Server

サービスが正しくありません－サーバに割り当てられていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールリモート]処理コマンド／[サービス]特性

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド／[サービス]特性

意味：

[サービス]特性に定義されたサービスが使用するサーバが[サーバ]テーブルに定義されていない場合に発生します。


EP0036:Invalid Service - Service Points to a Non-Existing Server

サービスが正しくありません－存在しないサーバに割り当てられています.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールリモート]処理コマンド／[サービス]特性

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド／[サービス]特性

意味：

サービスで定義されたサーバが[サーバ]テーブルに定義されていない場合に発生します。


EP0037:Only One IF/ELSE Without Condition Is Allowed

ブロックIfに条件が指定されていない場合、Elseは使用できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[ブロック]処理コマンド

意味：

If-Else のブロックに[条件]が指定されていない場合に発生します。条件なしの場合は、Else指定ができません。


EP0038:Cannot specify Range for Select operation in the Main Program

メインプログラムでは、項目定義に範囲を設定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／メインプログラム／[データビュー]エディタ

意味：

メインプログラムに定義されている項目の[範囲]特性が設定されている場合に発生します。


EP0039:Direct SQL Is Allowed Only with a Trans Mode Set to Physical

埋込SQLを使用する場合は、[トランザクションモード]特性を「P=物理」にしてください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／タスク環境／タスク特性／[トランザクションモード]特性

意味：

タスクにSQLコマンドが定義されていて、[トランザクションモード]特性が「物理」に設定されていない場合に発生します。


EP0040:Duplicate Control Prefix

コントロール前が重複しています.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

タスクに同じコントロールに対する[コントロール前]ロジックユニットが複数定義された場合にこのエラーが発生します。


EP0041:Duplicate Control Suffix

コントロール後が重複しています.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

タスクに同じコントロールに対する[コントロール後]ロジックユニットが複数定義された場合にこのエラーが発生します。


EP0042:Duplicate Control Verification

コントロール検証が重複しています.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

タスクに同じコントロールに対する[コントロール検証]ロジックユニットが複数定義された場合にこのエラーが発生します。


EP0043:Duplicate Selection of a Real Variable

同じ実項目が２回以上定義されています.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

[データビュー]エディタに同じ実項目が２回以上定義されている場合、このエラーが発生します。


EP0044:Empty or Invalid Trigger

イベントが指定されていないか、正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[イベント]ロジックユニット

意味：

[イベント]ロジックユニットにイベントが定義されていない場合に発生します。


EP0045:Evaluate Exp Return Code Attribute Must Be Logical

論理型を使用してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[アクション]処理コマンド／[戻り値]特性

意味：

[戻り値]特性に設定された項目が論理型でない場合に発生します。


EP0046:Exit on Exp Return Code Attribute Must Be Numeric

数値型を使用してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールOSコマンド]処理コマンド／[戻り値]特性

意味：

[戻り値]特性に定義された項目が数値型でない場合に発生します。


EP0047:Locate Can Be Specified Only Inside a Link

メインプログラムの項目定義に対する[位置付]指定は、リンクでのみ可能です.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／メインプログラム／[データビュー]エディタ／項目定義

意味：

メインプログラムの項目に対する[位置付]特性は、リンク定義でのみ有効です。

メインプログラムの項目に対して[位置付]が定義された場合にこのエラーが発生します。


EP0048:Form's Class Must Be Greater Than 0

フォームのクラスを１以上にしてください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[フォーム出力]処理コマンド／[入出力ファイル]特性

[プログラム]リポジトリ／[フォーム]エディタ／[入出力]テーブル／入出力特性

意味：

指定されたフォームのクラスが「0」の場合に発生します。


EP0049:I/O File Open Mode Conflicts with Operation

入出力ファイルの[アクセス]モードが正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[フォーム]処理コマンド／[入出力ファイル]特性

意味：

[フォーム出力]処理コマンドで定義された出力ファイルの[アクセス]特性が「読込」になっている場合に発生します。

[フォーム入力]処理コマンドで定義された入力ファイルの[アクセス]特性が「追加」になっている場合に発生します。


EP0050:Missing the End Block Operation

「ブロックEnd」がありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[ブロック]処理コマンド

意味：

[ブロック]処理コマンド対する「End」オプションが定義されていない場合にこのエラーが表示されます。


EP0051:Missing End Link

「リンク終了」がありません

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／リンク

意味：

[リンク]コマンド対する[リンク終了]が定義されていない場合にこのエラーが表示されます。


EP0052:Invalid Expression

式番号が正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コール式]処理コマンド

[プログラム]リポジトリ／[ロジック]エディタ／[コールUDP]処理コマンド

[プログラム]リポジトリ／[ロジック]エディタ／[アクション]処理コマンド

[プログラム]リポジトリ／[ロジック]エディタ／[項目更新]処理コマンド

意味：

[式]特性に式番号が指定されていない場合に発生します。


EP0054:Form Output Is Not Allowed with a Browser Form

[フォーム出力]処理コマンドでは、ブラウザフォームを指定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[フォーム出力]処理コマンド

意味：

[フォーム出力]処理マンドで[ブラウザ形式]フォームが定義されている場合に発生します。


EP0055:Missing Block

「ブロックIf/While」がありません

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[ブロック]処理コマンド

意味：

[ブロック終了]処理コマンドの「End」オプションのみが定義され、「If」または「While」が定義されていない場合にこのエラーが表示されます。


EP0057:Invalid Nested Link

リンク方法が正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／リンク

意味：

[リンク]と[リンク終了]の間に別の[リンク]コマンドが定義されている場合に発生します。


EP0058:Invalid Task or Program

タスクまたはプログラム番号が正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[コールプログラム]処理コマンド／[プログラムID]特性

[プログラム]リポジトリ／[コールタスク]処理コマンド／[タスクID]特性

意味：

以下の場合に発生します。

  • プログラム（またはタスク）が選択されていない

  • [コールタスク]処理コマンドで指定したタスクが存在しない

  • [コールプログラム]処理コマンドで指定したプログラムが存在しない


EP0059:Link Return Code Attribute Must Be Logical or Numeric

論理型か数値型項目を使用してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／照会リンク／[戻り値]特性

意味：

[リンク特性]の[戻り値]特性に設定された項目が数値型、論理型以外の場合に発生します。


EP0060:Tree Control can only be on online task

[ツリー]コントロールは、オンラインタスクでのみ有効です.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ツリー]コントロール

意味：

バッチタスクの[GUI表示]フォームに[ツリー]コントロールが配置されている場合に発生します。


EP0061:Invalid Variable

項目が正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[パラメータ]テーブル

[プログラム]リポジトリ／[フォーム]エディタ／[パラメータ]テーブル

[メニュー]リポジトリ／[パラメータ]テーブル

意味：

[項目]カラムが指定されず、[スキップ]カラムが「OFF」になっていたりしている場合に発生します。

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[グループ]ロジックユニット

意味：

[グループ]ロジックユニットにブレイク項目が設定されていない場合に発生します。

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

実項目の定義でカラムが指定されていない場合に発生します。

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[項目更新]処理コマンド

意味：

[項目更新]処理コマンドで項目が指定されていない場合に発生します。

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[タグテーブル]特性

意味：

[項目]（または[式]）が定義されていない場合に発生します。

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[項目]ロジックユニット

意味：

[項目]ロジックユニットに項目が定義されていない場合に発生します。


EP0062:The Transaction Begin Is Incompatible with the Locking Strategy

[トランザクション開始]特性と[ロック方式]特性に矛盾があります.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／タスク環境／タスク特性／[データ]タブ

意味：

以下の場合にこのエラーが発生します。

  • [トランザクション開始]特性が「レコード更新前」に設定されて、[ロック方式]が「即時」か、「更新時」の場合

  • [トランザクション開始]特性が「なし」に設定されて、[ロック方式]が「なし」の場合


EP0063:The Transaction Mode Is Incompatible with the Locking Strategy

[トランザクションモード]特性と[ロック方式]特性に矛盾があります.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／タスク環境／タスク特性／[データ]タブ

意味：

[トランザクションモード]特性が「遅延」に設定されて、[ロック方式]が「即時」か、「修正後」、「更新前」の場合にこのエラーが発生します。


EP0064:Ranges or Locates Cannot Be Used on BLOB Variable

BLOB項目には、範囲/位置付の指定はできません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／項目定義

意味：

BLOB項目を定義し、以下の特性値が定義されている場合にこのエラーが発生します。

  • 範囲（最小）

  • 範囲（最大）

  • 位置付（最小）

  • 位置付（最大）


EP0065:Invalid Variable for Group By Var property

[グループ項目]特性が正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／タスク環境／タスク特性／[データ]タブ

意味：

[トランザクション開始]特性を「グループ」と定義して、[項目]特性が定義されていない場合にこのエラーが発生します。


EP0066:Cache Strategy None Is Not Allowed for a Browser Task

ブラウザタスクでは、[キャッシュ範囲]特性を「なし」には指定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／タスク環境／タスク特性／[データ]タブ

意味：

メインソースが指定されたブラウザタスクにおいて、[タスク特性]の[キャッシュ範囲]特性が「No」の場合に発生します。


EP0068:A Tag Name Must Be Entered

タグ名を入力してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[タグテーブル]特性

意味：

[タグ名]または[式]のどちらかにタグの名前が定義されていない場合に発生します。


EP0073:Token Prefix Is Missing

トークン前付符号を入力してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[タグテーブル]特性

意味：

[マージ形式]フォームの[トークン前付符号]（式）特性が指定されていない場合に発生します。


EP0074:Token Suffix Is Missing

トークン後付符号を入力してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[タグテーブル]特性

意味：

[マージ形式]フォームの[トークン後付符号]（式）特性が指定されていない場合に発生します。


EP0075:Token Prefix and Token Suffix Must Be Different

トークン前付符号とトークン後付符号は異なっていなければなりません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[トークン前付符号]特性

意味：

[マージ形式]フォームの[トークン前付符号]（式）特性の指定値と[トークン後付符号]（式）特性が同じ場合や、[HTMLファイル]特性にファイル名が指定されていない場合に発生します。


EP0076:Template file error: Duplicate ELSE.

テンプレートファイルエラー:ELSE が重複しています.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[ファイル名]特性

意味：

[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイルの 「MGELSE」トークンが重複して定義されている場合に発生します。


EP0080:Template file error: Non matching IF-ENDIF tags

テンプレートファイルエラー:IF-ENDIF のタグに不整合があります.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[ファイル名]特性

意味：

[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイルの「MGENDIF」タグに対応する「MGIF」タグが定義されていない場合に発生します。


EP0081:Problem opening the template file

テンプレートファイルがオープンできませんでした.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[ファイル名]特性

意味：

[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイルが存在しないか、（権利上の制限のために）アクセスできない場合に発生します。


EP0082:Template file error: Non matching IF-ENDIF tags

テンプレートファイルエラー:IF-ENDIF のタグに不整合があります.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[ファイル名]特性

意味：

[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイルの「MGIF」タグに対応する「MGENDIF」タグが定義されていない場合に発生します。


EP0083:Template file error: Repeat has no variable tags in it

テンプレートファイルエラー:REPEAT-ENDREPEATの間に他のタグが必要です.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[ファイル名]特性

意味：

[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイルの「MGREPEAT」タグと「MGENDREPEAT」タグの間に他のマージタグが定義されていない場合に発生します。


EP0084:Template file error: A Token Suffix is missing for variable token number

テンプレートファイルエラー:トークン後付符号がありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[トークン後付符号]特性

意味：

[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイルに定義されたトークンの後付符号が[トークン後付符号]特性に設定された値と合っていないか、[トークン後付符号]特性に値が設定されていない場合に発生します。


EP0085:Template file error: Non matching REPEAT-ENDREPEAT tags

テンプレートファイルエラー:REPEAT-ENDREPEATのタグに不整合があります.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[トークン後付符号]特性

意味：

[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイルの「MGREPEAT」タグとこれに対応する「MGENDREPEAT」タグが対になって定義されていない場合に発生します。


EP0086:Template file error: Conflict between IF and REPEAT tags

テンプレートファイルエラー:IF や REPEAT タグの間に矛盾があります.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[トークン後付符号]特性

意味：

[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイルの「MGIF」タグと「MGENDIF」タグ、「MGREPEAT」タグと「MGENDREPEAT」タグの組み合わせが合っていない場合に発生します。


EP0088:BLOBs May Not Be Sent as Merge Parameters

BLOB項目は、マージパラメータとして指定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ/[フォーム]エディタ／[マージ]形式フォーム/[タグテーブル]特性

意味：

マージ項目としてBLOB項目を定義した場合にこのエラーが発生します。


EP0089:Form Type Must Use an I/O Template

このフォームタイプは、テンプレートファイルが必要です.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ/[フォーム]エディタ／[マージ]形式フォーム/[ファイル名]特性

意味：

[ファイル名]特性にテンプレートファイルの名前が指定されていない場合にこのエラーが発生します。


EP0092:DB SQL WHERE clause cannot be defined on task with Resident main source

DB SQL Where句は、常駐テーブルをメインソースにしているタスクでは定義できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／タスク環境／範囲/位置付／DBH SQL Where句

意味：

DB SQL Where句は、常駐テーブルをメインソース にしたタスクには定義できません。

範囲式とメインソースで常駐テーブルが定義された場合に、このエラーメッセージが表示されます。


EP0094:Invalid variable in statement

記述の中の項目番号が無効です.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／タスク環境／範囲/位置付／DBH SQL Where句

意味：

DB SQL Where句に存在しない項目番号が定義された場合にこのエラーメッセージが表示されます。

注意：

このエラーは登録時にステータスバーに表示され、該当する項目は削除されるため、構文チェックには表示されません。


EP0095:CNDRANGE function can only appear in Locate/Range of SELECT operation

CndRange関数は、項目定義の[範囲／位置付]特性にしか指定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ

意味：

CndRange関数は、[範囲/位置付]の条件設定用の関数のため、これ以外の目的（例：[項目更新]処理コマンド）で使用された場合にこのエラーメッセージが表示されます。


EP0096:CNDRANGE function cannot appear as part of another expression

CndRange関数は、他の式の一部としては使用できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

別の関数の一部にCndRange関数が指定された場合にこのエラーメッセージが表示されます。

注意：

このエラーは登録時にもステータスバーに表示されます。

例：ASCIIVal (CndRange ('TRUE'LOG,'AAA'))


EP0098:EXPCALC - A cyclic reference of expressions

ExpCalc - 再帰型の式です.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

ExpCalc関数で指定された式が、再帰型（自分自身を指定している）の場合にこのエラーメッセージが表示されます。


EP0099:EXPCALC - Nesting reference is limited to 50 levels

ExpCalc - ネストは、50階層までです.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

ExpCalc関数で指定された式が、さらにExpcalc関数を使用していることで式がネスト状態の場合、ネストの階層が50階層を越えた場合にこのエラーメッセージが表示されます。


EP0100:EXPCALC - The expression does not exist in the Expression Rules repository

ExpCalc - 指定された式が存在しません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

ExpCalc関数で指定された式が、[式]エディタ内に存在しない場合にこのエラーメッセージが表示されます。


EP0101:EXPCALC function cannot accept a complex expression, only a number

ExpCalc関数では、複雑な式は使用できません.数値のみ使用できます.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

ExpCalc関数で式番号として評価できない式が定義された場合にこのエラーメッセージが表示されます。

注意：

このエラーは登録時にもステータスバーに表示されます。


EP0102:Attributes mismatch in expression

定義式内の型が合っていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

ExpCalc関数で式番号として評価できない式が数値として評価されない場合にこのエラーメッセージが表示されます。

注意：

このエラーは登録時にステータスバーに表示されます。


EP0103:Only eDeveloper SQL functions are acceptable for eDeveloper SQL WHERE

Magic SQL Where句で指定された関数が正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／タスク環境／範囲/位置付／Magic SQL

意味：

Magic SQL Where句に指定された式内に使用できない関数が含まれている場合にこのエラーメッセージが表示されます。


EP0105:Cannot mix different types of forms

異なったタイプのフォームを混在させる事はできません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ

意味：

[クラス]が同じで[インタフェースタイプ]が異なるフォームが定義されている場合にこのエラーメッセージが表示されます。


EP0106:SQL output/return variable cannot be an expression

SQLコマンドの[出力パラメータ]特性や[戻り値]特性には式が指定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／タスク環境／[SQLコマンド]ダイアログ

意味：

[出力パラメータ]や[戻り値]に式で値が定義されている場合にこのエラーメッセージが表示されます。


EP0107:BLOB Variable Cannot Be Used as a Reference Variable in a Browser Form

BLOB項目は、ブラウザフォーム上の参照項目として使用できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム／HTMLコントロール

意味：

[ブラウザ形式]フォームにBLOB項目が配置された場合にこのエラーが発生します。


EP0108:Browser Form or Control Can Have Only URL Help Type

ブラウザ形式フォームまたはそのコントロールでは、URLヘルプしか指定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム

意味：

[ヘルプ画面]特性に定義されたヘルプがURLヘルプでない場合に発生します。


EP0109:Data Required

データを入力してください!

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／各コントロール

意味：

コントロールの[データ]特性が定義されていない場合に発生します。このエラーは以下のコントロールで発生します。

エディット、イメージ、プッシュボタン、リストボックス、ラジオボタン、コンボボックス

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ツリー]コントロール

意味：

[ツリー]コントロールの[ノードID]特性や[表示項目]特性に項目が定義されていない場合に発生します。


EP0111:Invalid Expansion Window

拡張ウィンドウが正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／GUI表示形式フォーム／[エディット]コントロール

意味：

[拡張ウィンドウ]特性で定義されたウィンドウが、[GUI表示形式]フォーム以外の場合に発生します。


EP0112:Invalid Program

プログラムが正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／各コントロール

意味：

選択プログラムが無効な場合に発生します。例えば、[選択プログラム]で指定されたプログラムがプロジェクト（またはコンポーネント）から削除された場合です。


EP0113:Invalid Row Height

[行高さ]特性が正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI形式]フォーム／[テーブル]コントロール

意味：

[テーブル]コントロールの[行高さ]特性が「0」か、テーブルの高さより大きく指定されている場合に発生します。


EP0114:Invalid Title Height

[タイトル高さ]特性が正しくありません

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI形式]フォーム／[テーブル]コントロール

意味：

[テーブル]コントロールの[タイトル高さ]特性が「0」か、テーブルの高さより大きく指定されている場合に発生します。


EP0115:Variable Incompatible with Attribute

式の値と型が一致していません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／各コントロール

意味：

コントロールの[型]特性が[データ（式）]特性の型と合っていない場合に発生します。


EP0116:Line Width of Style Other Than Regular Cannot Be Greater Than One

実線以外は、[線幅]特性には「1」しか指定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[スタティック]コントロール

意味：

[スタイル]特性が「平面」で、[線種]特性が「実線」でなく、[線幅]特性が「1」より大きい場合に発生します。


EP0117:Control Not Supported in the Display Class

このクラスで、コントロールは使用できません

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI出力形式]フォーム／コントロール

意味：

出力フォームにチョイスコントロールや[プッシュボタン]、[スライダ]コントロールが定義されている場合にこのエラーが発生します。

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[テキスト形式]フォーム／コントロール

意味：

[テキスト形式]フォームに[イメージ]コントロールや[OLE]、[リッチテキスト]、[四角（楕円）]コントロールが定義されている場合にこのエラーが発生します。


EP0118:Push Button Has an Invalid Raise Event

プッシュボタンに設定されたイベントが正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[プッシュボタン]コントロール

意味：

[実行イベント]特性に無効なイベントが定義された場合にこのエラーが発生します。


EP0119:Invalid Characters in Name

[HTMLコントロール名]の文字が正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザクライアント形式]フォーム／HTMLコントロール

意味：

[HTMLコントロール]カラムに定義されたコントロール名にクォーテーションや空白が含まれていたり、先頭の文字が数字の場合に発生します。

注意：

このエラーは登録時にステータスバーに表示されます。


EP0120:An Empty Line Is Not Allowed in HTML Controls Table

[HTMLコントロール名]にコントロール名を入力してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザクライアント形式]フォーム／HTMLコントロール

意味：

[HTMLコントロール]カラムが空白の場合にこのエラーが発生します。


EP0121:Found Multiple Controls with the Same Name

同じ名前のコントロール名がすでに登録されています.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザクライアント形式]フォーム／HTMLコントロール

意味：

同じコントロール名が[HTMLコントロール]テーブル上に複数定義されている場合に発生します。

注意：

このエラーは登録時にステータスバーに表示されます。


EP0122:Program or Task Number Is Missing in a Subform Control

[サブフォーム]コントロールに、プログラム番号かタスク番号を指定してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザクライアント形式]フォーム／HTMLコントロール／[サブフォーム]コントロール／[プログラム/タスク番号]特性

意味：

[サブフォーム]コントロールの[プログラム/タスク番号]特性にタスク／プログラムの指定がない場合に発生します。プログラム番号がメインプログラムを指定していたり、指定したプログラム番号が削除された場合も発生します。


EP0123:HTML File Is Missing

HTMLファイルが存在しません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザクライアント形式]フォーム／[HTMLファイル]特性

意味：

[HTMLファイル]特性にファイル名が指定されていないか、指定されたHTMLファイルが存在しない場合に発生します。


EP0126:Divider Size Is Too Big for the Form Size

解像度の値が大きすぎます.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[位置とサイズ]セクション

意味：

フォームの[左辺位置]、[上辺位置]、[高さ]、[幅]の各特性値が大きすぎる場合に発生します。


EP0127:BLOB Cannot Be a Sort Segment

BLOBは、ソートのセグメントとして指定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／タスク環境／ソートテーブル

意味：

BLOB項目がソートセグメントとして定義された場合にこのエラーが発生します。


EP0128:eDeveloper System and Public Name Must Be Entered

アプリケーション名と公開プログラム名は必須入力です.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム／[HTMLコントロール]テーブル／ハイパーテキスト／[ハイパーリンク]特性

[プログラム]リポジトリ／タスク環境／タスク特性／[終了時URL]特性

意味：

ハイパーリンクのタイプが「Magic プログラム」の場合で、プロジェクト名や公開プログラム名が指定されていない場合に発生します。


EP0129:Display Field's Attribute Incompatible with Variable's Attribute

[表示項目]特性の型と[データ]特性の型が合っていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／データコントロール

意味：

[表示項目]特性に定義された項目の型が、コントロールに割り当てられた項目の型と合っていない場合に発生します。


EP0130:Display Field Is Mandatory for Data Control

データコントロールには、[表示項目]が必須です.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／データコントロール

意味：

データコントロールの[ソーステーブル]特性が定義されているにもかかわらず、[表示項目]特性が定義されていない場合に発生します。


EP0131:Linked Field's Attribute Incompatible with Variable's Attribute

[リンク項目]特性の型が項目の型と合っていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／データコントロール

意味：

データコントロールの[リンク項目]特性に定義された項目の型が、コントロールに定義された型と異なる場合にこのエラーが発生します。


EP0132:Link Field Is Mandatory for Data Control

データコントロールには、[リンク項目]が必須です.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／チョイスコントロール/[リンク項目]特性

意味：

データコントロールの[ソーステーブル]特性が定義されているにもかかわらず、[リンク項目]特性が定義されていない場合に発生します。


EP0135:Attribute mismatch in Argument repository

型が合っていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[パラメータ]テーブル

[プログラム]リポジトリ／[フォーム]エディタ／コントロール／[パラメータ]テーブル

意味：

コール先のパラメータのデータ型と異なるパラメータを定義した場合に発生します。


EP0136:Identifier Out of Range

項目が定義されていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／タスク環境／ソートテーブル

意味：

[ソート]テーブルに項目が定義されない時場合に発生します。


EP0137:Segment Length Must Be between 1 and the Maximum Column Length

インデックスのセグメントサイズが正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／タスク環境／ソートテーブル

意味：

インデックスセグメントに文字項目が定義されており、サイズが 「0」か元の項目長より大きく指定された場合に発生します。

注意：

このエラーは登録時にステータスバーに表示されます。


EP0138:Cannot Call a Browser Task or Program

ブラウザタスクをコールできません.ブラウザタスクはブラウザタスクからしか起動できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールプログラム]処理コマンド

意味：

オンラインまたはバッチプログラム(タスク)からブラウザプログラム(タスク)を呼び出すように定義されている場合に発生します。


EP0139:Cannot Call an Online Task or Program from a Browser Task or Program

ブラウザタスクからオンラインタスクを起動できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールプログラム]処理コマンド

意味：

ブラウザプログラム（タスク）からオンラインプログラム（タスク）を呼び出すように定義されている場合に発生します。


EP0140:Wrong Form Type for Header or Footer Option

このタイプのフォームは、ページヘッダ／ページフッタとして指定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[入出力ファイル]テーブル／[入出力ファイル]特性

意味：

[ページヘッダ]や[ページフッタ]特性に[マージ形式]フォームが定義されている場合にこのエラーが発生します。


EP0141:Type Mix-Up

型が合っていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／データコントロール／[範囲]特性

意味：

データコントロールの[範囲]特性に定義された項目と[開始]／[終了]カラムに定義された式のデータ型が合わない場合にこのエラーが発生します。

発生場所：

[プログラム]リポジトリ／SQLコマンド／戻り値

[プログラム]リポジトリ／[条件]特性

意味：

指定した項目のデータ型が論理型でない場合に発生します。

発生場所：

[プログラム]リポジトリ／[入出力ファイル]テーブル／[式/項目]カラム

意味：

指定された式の戻り値が合わない場合に発生します。


EP0142:J2EE Type Servers can only accept remote calls from EJBs

J2EEタイプのサーバは、EJB からのリモートコールのみを受け付けます.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールリモート]処理コマンド／[サービス]特性

意味：

[サービス]特性に定義されたサービスに[J2EE]タイプのサーバが割り当てられている場合に発生します。


EP0143:Task Type Is Not Allowed for a Subtask

このタスクタイプは指定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／タスク特性／[タスクタイプ]特性

意味：

オンラインタスクのサブタスクにブラウザタスクが定義されていたり、ブラウザタスクのサブタスクとしてオンラインタスクが定義されている場合にこのエラーが発生します。


EP0144:Browser Task Main Form Should Be a Browser Form

ブラウザタスクのメインフォームは、ブラウザ形式フォームでなければなりません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／タスク特性／[メインフォーム]特性

意味：

ブラウザタスクの[メインフォーム]特性に[ブラウザ形式]フォーム以外が定義された場合に発生します。


EP0146:Invalid Support Data Types

サポートされるデータタイプは、文字,数値,日付,時刻 のみです.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[ツリー]コントロール／[ルート値]特性

意味：

[ルート値]として指定された値が文字, 数値、日付、時刻でない場合に発生します。


EP0147:Same Data Type for the Tree's Root Value, Node ID and Parent ID

ツリーの[ルート値]、[ノードID]と[親のID]の各特性は、同じデータ型でなければなりません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[ツリー]コントロール

意味：

[ルート値]や[ノードID]と[親のID]の各特性に定義された項目の型が合っていない場合に発生します。


EP0148:Node ID, Parent ID, and Description Must Be From the Current Task

[ノードID]、[親のID]と[表示項目]の各特性は、カレントタスクで定義した項目を指定してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[ツリー]コントロール

意味：

[ツリー]コントロールの[ノードID]、[親ID]、[表示項目]の各特性に設定された項目が現在のタスクで定義されたものでない場合にこのエラーが発生します。


EP0150:Image Number Does Not Exist in the Image List

イメージ番号が[イメージ一覧]にありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[ツリー]コントロール

意味：

[ツリー]コントロールの[展開表示イメージインデックス]、[縮小表示イメージインデックス]、[パーク展開表示イメージインデックス]、[パーク縮小表示イメージインデックス] の各特性に設定されたイメージ番号が登録されている数より大きい場合に発生します。


EP0151:Node ID/Parent ID Must Be From Main Source, Link Join, or Parameter

[ノードID]特性と[親のID]特性では、メインソースか結合リンクテーブルのカラムまたはパラメータ項目のみ有効です.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[ツリー]コントロール

意味：

[ツリー]コントロールの[ノードID]または[親ID]特性にに定義された項目が、変数項目の場合、またはメインソースか結合リンクテーブル以外のカラムの場合にこのエラーが発生します。


EP0152:Style name already exists

スタイル名がすでに指定されています.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザクライアント式]フォーム／コントロール

意味：

[デフォルトスタイル]、[マウスオーバスタイル]、[マウスダウンスタイル]の各特性得からズームして表示される[スタイル]テーブルに同じ名前のスタイルが定義されている場合にこのエラーが発生します。


EP0153:Expression should be defined

式を定義してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザクライアント式]フォーム／コントロール

意味：

[デフォルトスタイル]、[マウスオーバスタイル]、[マウスダウンスタイル]の各特性得からズームして表示される[スタイル]テーブルに名前だけが指定され、式が定義されていない場合にこのエラーが発生します。


EP0154:Style name cannot be blank

スタイル名が指定されていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザクライアント式]フォーム／コントロール

意味：

[デフォルトスタイル]、[マウスオーバスタイル]、[マウスダウンスタイル]の各特性得からズームして表示される[スタイル]テーブルに名前が定義されていない場合にこのエラーが発生します。


EP0157:Current Server Not Found or Has a Wrong Server Type

サーバが見つからないか、サーバタイプが間違っています.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールリモート]処理コマンド／[サービス]特性

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド／[サービス]特性

意味：

[コールWebサービス]処理コマンドで定義されているサービスが SOAP以外のサーバを使用している場合に発生します。

[コールリモート]処理コマンドで定義されているサービスが SOAPのサーバを使用している場合に発生します。


EP0159:Attribute Mismatch - Variable Should Be Alpha, Unicode or BLOB

型が合っていません.－項目は、文字型かUnicode型、またはBLOB型でなければなりません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド/[エラー情報]特性

意味：

[コールWebサービス]処理コマンドの[エラー情報]特性に定義された項目の型が文字型かUnicode型、BLOB型でない場合に発生します。


EP0161:Cannot sort on a batch Direct SQL task

埋込SQLのバッチタスクではソート処理はできません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ソート]テーブル

意味：

SQLコマンドが定義されたバッチタスクで[ソート]テーブルにソート項目が定義されている場合に発生します。

注意：

このエラーは登録時にもステータスバーに表示されます。


EP0162:Missing end of expression

式の記述が正しくありません.

設定 > チェックメッセージテーブル

発生場所：

各[式]欄

意味：

[式]エディタに設定された式の内容が正しくない場合に発生します。

注意：

このエラーは登録時にステータスバーに表示されます。


EP0163:An Operation Is Not Defined for Invoke Web Service

コールWebサービスの[処理]が指定されていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド/[処理]特性

意味：

[コールWebサービス]処理コマンドの[処理]特性が指定されていない場合にこのエラーが表示されます。


EP0167:Initial Task mode not allowed

設定されているタスク初期モードは使用できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／タスク特性

意味：

[オプション]タブの実行モードで無効にされている初期モードを、[初期モード]特性で指定されている場合にこのエラーが発生します。

注意：

このエラーは実行時に表示されます。


EP0168:IFRAME and Opaque controls cannot be handled by eDeveloper event handlers.

「IFRAME」と「その他」のコントロールは、Magicのイベントロジックユニットで処理できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

[イベント]ロジックユニットの対象となるコントロールに｢IFRAME｣や｢その他｣コントロールが定義されている場合にこのエラーが発生します。


EP0169:Invalid table

データソースが正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

データソースが指定されていないか、指定されたデータソースが削除された場合に発生します。

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／チョイスコントロール/[ソーステーブル]特性

意味：

[ソーステーブル]特性に指定されたデータソースが削除された場合に発生します。


EP0170:Object name must be defined

オブジェクト名を指定してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

ActiveX/OLE型型のデータ項目の[オブジェクト名]特性が定義されていない場合に発生します。


EP0173:Sub object must be defined with no instantiation

サブオブジェクトが指定された場合、[インスタンス化]特性を「なし」に設定にしてください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

ActiveX型/OLE型のデータ項目の[サブオブジェクト]特性が定義された状態で、[インスタンス]特性が「A=自動」に設定されている場合に発生します。


EP0176:No variable was selected for call com operation

[コールCOM]処理コマンド用の項目が定義されていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールCOM]処理コマンド

意味：

[コール]処理コマンドに呼び出すオブジェクト項目が指定されていない場合に発生します。


EP0177:Method name not defined

メソッド名が定義されていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールCOM]処理コマンド

意味：

[コール]処理コマンドで「メソッド呼出」が指定された状態で、[メソッド]が指定されていない場合に発生します。


EP0179:Return code variable must be numeric

[戻り値]には、数値型の項目を指定してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールCOM]処理コマンド

意味：

[コール]処理コマンドの[戻り値]特性に数値型の項目が定義されていない場合に発生します。


EP0184:Variable used for I/O must be declared in Data View with Blob attribute

入出力用の項目には、BLOB型で定義してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[入出力ファイル]テーブル／[式/項目]

意味：

[メディア]カラムが「V=項目」と設定された入出力ファイルの[式/項目]カラムにBLOBが対外の項目が設定されている場合に発生します。


EP0185:Type library does not exist in computer

PCにタイプライブラリが登録されていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

ActiveX型/OLE型のデータ項目の[タイプライブラリ]特性に定義されているライブラリがPCに登録されていない場合に発生します。


EP0186:Instantiation property of an OLE or Activex paramater should be set to none

OLEやActiveX型のパラメータ項目の[インスタンス化]特性は、「なし」に設定してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／[変数項目]特性

意味：

OLE型やActiveX型のパラメータ項目の[インスタンス化]特性が「A=自動」になっている場合に発生します。


EP0187:ActiveX control must have a field defined as an auto instansiated object (with no sub object)

[ActiveX]コントロールでは、[インスタンス化]特性が「自動」(サブオブジェクトなし)と定義された項目を指定してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ActiveX]コントロール／[データ]特性

意味：

[ActiveX]コントロールとしてフォームに配置するコントロールに配置する項目の[インスタンス化]特性が、「N=なし」と設定されている場合に発生します。


EP0187:Unidentified operator

関数が正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

定義された関数名が正しくない場合に発生します。式が使用されている場合にのみチェックされます。

注意：

このエラーは登録時にもステータスバーに表示されます。


EP0188:Bad date

日付が正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

式に指定された日付データが正しくない場合に発生します。

注意：

このエラーは登録時にステータスバーに表示されます。


EP0190:A Call By Name operation must be set with a public name expression

[公開プログラム名]が指定されていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コール公開名]処理コマンド／[公開プログラム名]特性

意味：

[公開プログラム名]特性が指定されていない場合に発生します。


EP0192:Property name not defined

[プロパティ名]が定義されていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールCOM]処理コマンド／[プロパティ]特性

意味：

[コールCOM]処理コマンドの[オプション]が「S=プロパティの設定」または、「G=プロパティの取得」でプロパティが設定されていない場合に発生します。


EP0193:OLE Control supports BLOB variables only

[OLE]コントロールはBLOB型項目でのみ有効です.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[OLE]コントロール／[データ]特性

意味：

[OLE]コントロールの[データ]特性に項目が定義されていないか、BLOB型以外の項目が定義されている場合に発生します。


EP0194:Illegal form

フォームが正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

FORMリテラルで指定されたフォームが存在しない場合に発生します。


EP0195:A vector field cannot be placed on a form

ベクトル項目は、フォームに配置できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ

意味：

フォームにベクトル型の項目が配置されている場合に発生します。


EP0198:Invalid I/O File

ファイル番号が正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[フォーム]処理コマンド／[入出力ファイル]特性

意味：

[フォーム]処理コマンドの[入出力ファイル]特性が指定されていなかったり、存在しないファイル番号が指定されている場合にこのエラーが発生します。


EP0199:Invalid Form

フォーム番号が正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[フォーム]処理コマンド／[フォーム]特性

意味：

[フォーム]処理コマンドの[フォーム]特性が指定されていなかったり、存在しないフォーム番号が指定されている場合にこのエラーが発生します。


EP0201:A vector field cannot be used as an output argument of a Direct SQL command

ベクトル項目は、SQLコマンドの[出力パラメータ]には指定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／SQLコマンド／出力パラメータ

意味：

[SQLコマンド]ダイアログの[出力パラメータ]にベクトル型の項目が設定されている場合にこのエラーが発生します。


EP0203:Type library must be defined

タイプライブラリを指定してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

ActiveX型/OLE型のデータ項目の[タイプライブラリ]特性が定義されていない場合に発生します。


EP0207:Node ID/Parent ID can't be the same variable

[ノードID]特性と[親のID]特性を同じカラムにすることはできません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ツリー]コントロール

意味：

[ツリー]コントロールの[ノードID]と[親のID]の各特性に同じカラムが定義されている場合にこのエラーが発生します。


EP0208:Range Must Exist for a Slider Control

スライダを使用するためには、[範囲]特性を指定してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[スライダ]コントロール／[範囲]特性

意味：

[スライダ]コントロールに範囲が指定されていない場合に発生します。


EP0209:User event public name exp return-code attribute must be a string

[イベント]特性には、文字列が返る式で指定してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[イベント実行]処理コマンド／[イベント]特性

意味：

[イベント]特性に、文字列で評価される式が指定されていない場合に発生します。

注意：

このエラーは登録時にもステータスバーに表示されます。


EP0210:Setting a destination context is only allowed for asynchronous raise event operation

[出力先コンテキスト]特性は、非同期の[イベント実行]処理コマンドでのみ有効です.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[イベント実行]処理コマンド／[出力先コンテキスト名]特性

意味：

[ウェイト]特性が「Yes」に設定されている[イベント実行]処理コマンドに[出力先コンテキスト]特性が設定されている場合に発生します。


EP0211:Usage of a destination context is allowed only for user events of the main program

[出力先コンテキスト]特性は、メインプログラムのユーザイベントが指定された場合のみ有効です.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[イベント実行]処理コマンド／[出力先コンテキスト名]特性

意味：

[イベント実行]処理コマンドに自タスクで定義されたユーザイベントを指定し、[出力先コンテキスト]特性が設定されている場合に発生します。設定できるユーザイベントは、メインプログラムで定義されたものだけです。


EP0212:Display List expression should be an alpha expression

[選択表示リスト]特性の式には文字型が返る式を指定してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／チョイスコントロール／[選択表示リスト]特性

意味：

チョイスコントロールの[選択表示リスト]特性に定義された式に、文字以外が返る式が定義されている場合に発生します。


EP0213:Illegal Display List for a Choice control

[選択表示リスト]特性が正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／チョイスコントロール／[選択表示リスト]特性

意味：

チョイスコントロールの[選択表示リスト]特性に定義された値の数が、[選択項目リスト]に定義された数と合っていない発生します。


EP0214:Browser form should include at least one attached variable

ブラウザフォームに項目が１つも配置されていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム

意味：

ブラウザ形式フォームのコントロールにデータ項目が全く割り当てられていない場合にこのエラーが発生します。


EP0217:Type Mix-Up in Argument Table

パラメータの型が合っていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コール]処理コマンド

[プログラム]リポジトリ／[フォーム]エディタ／[サブフォーム]コントロール／[パラメータ]特性

意味：

パラメータや戻り値のデータ型が起動先の定義内容と合っていない場合にこのエラーが発生します。


EP0218:Variable associated to XML source must be defined as a blob

XMLソースに関連付けられる項目は、BLOB型でなければなりません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／[メインソース特性]／[XMLソース項目]特性

[プログラム]リポジトリ／[データビュー]エディタ／[リンク]特性／[XMLソース項目]特性

意味：

[XMLソース項目]特性に、BLOB型以外の項目が設定された場合にこのエラーが発生します。


EP0219:It is not allowed to define main source or link table as XML data source in a browser client program.

ブラウザクライアントプログラムでは、XMLデータをメインソースやリンクテーブルとして定義できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

ブラウザクライアントタスクのメインソースやリンクテーブルにXMLデータソースが定義されている場合にこのエラーが発生します。

注意：

このエラーは登録時にもステータスバーに表示されます。


EP0220:Date-Time Pair Must Be Selected for the Link Join Condition

Date-Timeの組み合わせは、結合リンクで位置付けなければなりません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／リンク／位置付

意味：

定義された時刻型項目か日付型項目が、[Datetimeの一部]特性で参照する内容と合っていない場合にこのエラーが発生します。


EP0223:Only a push button may be defined as a default button

[デフォルトボタン]特性には、[プッシュボタン]コントロールしか指定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[デフォルトボタン]特性

意味：

[デフォルトボタン]特性に[プッシュボタン]以外のコントロール名が指定されている場合にこのエラーが発生します。


EP0227:Subform control cannot be handled by event handlers

[サブフォーム]コントロールは、ロジックユニットによって処理できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

[イベント]ロジックユニットや[コントロール]ロジックユニットに[サブフォーム]コントロールのコントロール名が指定された場合にこのエラーが発生します。


EP0228:SQL_command_is_missing

SQL コマンドが指定されていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／SQLコマンド

意味：

SQLに設定されていながら、[SQLコマンド]ダイアログにSQLコマンドが定義されていない場合にこのエラーが発生します。


EP0229:Expression contains variables from more than one handler

式に複数のロジックユニットで定義された項目が含まれています.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

複数のロジックユニット内に定義されているデータ項目が式で使用されている場合にこのエラーが発生します。


EP0232:Invalid operation: xxx is not found in the client module

処理が正しくありません: % がクライアントモジュール内に見つかりません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド

意味：

[コールWebサービス]処理コマンドで指定された[処理]がWSDL内に定義されていない場合にこのエラーが発生します。


EP0233:A Time field which is a part of a Datetime field is not allowed in eDeveloper SQL Where expression

Datetimeフィールドの一部としての時刻型項目は、Magic SQL Where句で使用できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[範囲/位置付]ダイアログ／Magic SQL

意味：

Datatimeフィールドに対応している時刻型項目を Magic SQL Where句で使用している場合にこのエラーが発生します。


EP0234:Invalid service - unknown client module

サービスが正しくありません - クライアントモジュールが見つかりません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド

意味：

[コールWebサービス]処理コマンドで指定された[サービス]に対応するクライアントモジュール(.jar）が見つからない場合にこのエラーが発生します。[サービス]テーブルで再度定義し直す必要があります。


EP0237:Select program' may not be a parallel program.

[選択プログラム] 特性に設定されたプログラムは、並行実行プログラムではありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／[選択プログラム]特性

[プログラム]リポジトリ／[フォーム]エディタ／[エディット]コントロール／[選択プログラム]特性

意味：

自タスクが並行起動プログラムに設定されており、[選択プログラム]特性で指定されたプログラムが、並行起動プログラムでない場合にこのエラーが発生します。


EP0239:Subform program' may not be a parallel program

サブフォームには、並行実行プログラムを指定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[サブフォーム]コントロール／[プログラム/タスク番号]特性

意味：

[サブフォーム]コントロールに指定されたプログラムが、並行起動プログラムの場合にのエラーが発生します。


EP0240:Recursive variable in XML Data Source must have Blob storage attribute

XMLデータソースの再帰的な項目は、BLOB型で定義してください.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／XMLデータソース／ビュー

意味：

再帰的定義（要素定義内に自要素の名前が定義されている構造）のXMLデータソースの項目のデータ型がBLOB型でない場合にこのエラーが発生します。


EP0241:This operation is not supported in rich client task

この処理コマンドは、リッチクライアントタスクではサポートされません.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[ロジック]エディタ

意味：

リッチクライアントで指定できない処理コマンドが定義されている場合にこのエラーが発生します。指定できない処理コマンドの左側に「E」と表示されます。


EP0242:Rich Client task/program can only call a Rich Client or batch task/program

リッチクライアントタスクは、リッチクライアントまたはバッチタスクのみを呼び出すことができます.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[ロジック]エディタ／[コール]処理コマンド

[データ]リポジトリ／[フォーム]エディタ／[リッチクライアント形式]フォーム／[サブフォーム]コントロール／[プログラム/タスク番号]特性

意味：

リッチクライアントからオンラインプログラム/ブラウザクライアントを呼び出すように指定されている場合にこのエラーが発生します。


EP0243:Only Rich Client task/program may call Rich Client task/program

リッチクライアントタスクを呼び出すことができるのは、リッチクライアントタスクだけです.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[ロジック]エディタ／[コール]処理コマンド

[データ]リポジトリ／[フォーム]エディタ／[リッチクライアント形式]フォーム／[サブフォーム]コントロール／[プログラム/タスク番号]特性

意味：

リッチクライアント以外のプログラムからリッチクライアントプログラムを呼び出すように指定されている場合にこのエラーが発生します。


EP0244:One or more functions used in the expression are not supported in online/batch task

式の中にオンライン/バッチタスクではサポートされない関数が含まれています.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[式]エディタ

意味：

式で使用されている関数の中にリッチクライアントタスクでのみ有効な関数が含まれている場合にこのエラーが発生します。


EP0245:One or more functions used in the expression are not supported in browser task

式の中にブラウザタスクではサポートされない関数が含まれています.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[式]エディタ

意味：

式で使用されている関数の中にブラウザクライアントタスクでは使用できない関数が含まれている場合にこのエラーが発生します。


EP0246:One or more functions/literals used in the expression are not supported in rich client task

式の中にリッチクライアントタスクではサポートされない関数が含まれています.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[式]エディタ

意味：

式で使用されている関数の中にリッチクライアントタスクでは使用できない関数が含まれている場合にこのエラーが発生します。


EP0247:This expression is evaluated during the task initiation phase and therefore cannot contain an expression that requires client side handling

この式はタスクの初期設定時に評価されるため、クライアント側で実行される処理を含めることができません.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[式]エディタ

意味：

[タスク前]は、サーバ側で実行されます。このため、[タスク前]ロジックユニットに定義された式にクライアント側で実行される処理が含まれている場合、このエラーが発生します。


EP0248:This property is evaluated on the client, so it cannot contain an expression that requires server side handling

この特性はクライアントで評価されるため、サーバ側で実行される処理を式に含めることができません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ

意味：

クライアント側で評価される特性値に、サーバ側で実行される式が設定されている場合、このエラーが発生します。


EP0249:This property is evaluated both on the client and the server, so it cannot contain 'client-side only' or 'server-side only' expression

この特性はクライアントとサーバの両方で評価されるため、「クライアント側のみ」または、「サーバ側のみ」の式に含めることはできません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ

意味：

クライアント側とサーバ側の両方で評価される特性値に、どちらかでのみ実行される式が設定されている場合、このエラーが発生します。


EP0250:Function name cannot be blank

関数名を入力してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[関数]ロジックユニット

意味：

[関数]ロジックユニットに関数名が定義されていない場合に発生します。


EP0251:An operation that requires both client side handling and server side handling is not allowed in Rich Client task

クライアント側とサーバ側の両方で処理が必要な処理コマンドは、リッチクライアントタスクでは使用できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ

意味：

クライアント側とサーバ側の両方で実行されるような処理コマンドをリッチクライアントタスクで定義した場合、このエラーが発生します。


EP0254:Server side handler cannot contain client side operations

サーバ側のロジックユニットには、クライアント側の処理コマンドを含めることはできません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

サーバ側で実行されるロジックユニット（例:[タスク前]）にクライアント側で実行される処理が定義されている場合、このエラーが発生します。


EP0255:ActiveX and OLE variables cannot be defined in a Rich client task

ActiveX型とOLE型の項目は、リッチクライアントタスクでは使用できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

リッチクライアントタスクでActiveX型やOLE型のデータ項目が定義されている場合、このエラーが発生します。


EP0256:All operations on a variables re-compute should be either client or server side

項目の再計算定義で使用されるすべての処理コマンドは、クライアントまたはサーバ側のどちらかでサポートされるものでなければなりません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

項目の再計算定義で使用される処理コマンドにクライアント側とサーバ側の両方でサポートされるものが定義されている場合に、このエラーが発生します。


EP0257:An expression constructed of both server side only and client side only functions cannot be evaluated.

サーバのみで有効な関数と、クライアントのみで有効な関数を組み合わせた式を実行することはできません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

サーバのみで有効な関数とクライアントのみで有効な関数を組み合わせた式が定義されている場合に、このエラーが発生します。


EP0258:It is not allowed to define main source or link table as XML data source in a rich client program.

リッチクライアントプログラムでは、XMLデータをメインソースやリンクテーブルとして定義できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

リッチクライアントのメインソースやリンクテーブルにXMLデータソースが定義されている場合に、このエラーが発生します。


EP0259:ActiveX event not allowed in rich client task

ActiveXイベントは、リッチクライアントタスクでは利用できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

リッチクライアントの[イベント]ロジックユニットにActiveXイベントが定義されている場合に、このエラーが発生します。


EP0260:Rich Client task should include at least one declared variable

リッチクライアントタスクには、少なくとも1つ以上の項目を定義する必要があります.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

リッチクライアントの[データビュー]エディタ内に項目が１つも定義されていない場合に、このエラーが発生します。


EP0261:Server side handler cannot contain client side operations. You can set the Wait property to No in order to execute this operation after the server operations

サーバ側のロジックユニットには、クライアント側の処理コマンドを含めることはできません.サーバ処理の後にこの処理コマンドを定義する場合、[ウェイト]特性を「No」に設定してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

サーバ側で実行されるロジックユニットにクライアント側で実行される処理コマンドが定義されている場合に、このエラーが発生します。


EP0262:This event is not supported

このイベントは、リッチクライアントタスクではサポートされていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[リッチクライアント形式]フォーム／[プッシュボタン]コントロール／[実行イベント]特性

意味：

指定されたイベントがリッチクライアントでサポートされないものの場合にこのエラーが発生します。


EP0263:Subform control of GUI display model can only call Online tasks

GUI表示モデルのサブフォームコントロールは、オンラインタスクでのみ有効です.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[リッチクライアント形式]フォーム／[サブフォーム]コントロール／[モデル]特性

意味：

リッチクライアントタスクやブラウザクライアントの表示フォームに定義された[サブフォーム]コントロールに、[GUI表示形式]クラスのサブフォームモデルが設定されている場合に、このエラーが発生します。


EP0264:Subform control of Rich client display model can only call Rich client tasks

リッチクライアントモデルのサブフォームコントロールは、リッチクライアントタスクでのみ有効です.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[サブフォーム]コントロール／[モデル]特性

意味：

オンラインタスクやブラウザクライアントの表示フォームに定義された[サブフォーム]コントロールに、[リッチクライアント表示形式]クラスのサブフォームモデルが設定されている場合に、このエラーが発生します。


EP0265:Subform control of Browser model can only call Browser tasks

ブラウザモデルのサブフォームコントロールは、ブラウザタスクでのみ有効です.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ表示形式]フォーム／[サブフォーム]コントロール／[モデル]特性

意味：

オンラインタスクやリッチクライアントの表示フォームに定義された[サブフォーム]コントロールに、[ブラウザ表示形式]クラスのサブフォームモデルが設定されている場合に、このエラーが発生します。


EP0266:Only Rich client tasks can be called when using destination subform

[出力先]特性を使用する場合、リッチクライアントタスクのみ呼び出すことができます.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コール]処理コマンド

意味：

[出力先]特性を使用して呼び出すプログラムが、リッチクライアントでない場合に、このエラーが発生します。


EP0267:Subform control in a GUI Display form can only call Online tasks

GUI表示フォームのサブフォームコントロールは、オンラインタスクでのみ有効です.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示表示形式]フォーム／[サブフォーム]コントロール／[プログラム/タスク番号]特性

意味：

オンラインタスクの表示フォームに定義された[サブフォーム]コントロールに、リッチクライアントやブラウザクライアントタスクが設定されている場合に、このエラーが発生します。


EP0268:Subform control in a Rich client Display form can only call Rich client tasks

リッチクライアント表示フォームのサブフォームコントロールは、リッチクライアントタスクでのみ有効です.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[リッチクライアント表示表示形式]フォーム／[サブフォーム]コントロール／[プログラム/タスク番号]特性

意味：

リッチクライアントタスクの表示フォームに定義された[サブフォーム]コントロールに、オンラインやブラウザクライアントタスクが設定されている場合に、このエラーが発生します。


EP0269:Subform control in a Browser form can only call Browser tasks

ブラウザフォームのサブフォームコントロールは、ブラウザタスクでのみ有効です.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ表示表示形式]フォーム／[サブフォーム]コントロール／[プログラム/タスク番号]特性

意味：

ブラウザクライアントタスクの表示フォームに定義された[サブフォーム]コントロールに、オンラインやリッチクライアントタスクが設定されている場合に、このエラーが発生します。


EP0270:Illegal Source Context value. A parallel Rich Client program can not copy global variables from the main context

ソースコンテキストの値が正しくありません. 並行起動のリッチクライアントプログラムは、グローバルパラメータをメインコンテキストからコピーすることはできません.

設定 > チェックメッセージテーブル

発生場所：

[メニュー]リポジトリ／[メニュー]特性／[ソースコンテキスト]特性

意味：

[並行起動]特性が「Yes」に設定されたリッチクライアントプログラムをメニューに登録し、メニューの[ソースコンテキスト]特性が「M=メインコンテキスト」に設定されている場合に、このエラーが発生します。


EP0271:OS command not defined

OSコマンドが指定されていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールOSコマンド]処理コマンド／[OSコマンド]特性

意味：

実行するOSコマンドが指定されていない場合に、このエラーが発生します。


EP0272:Client side expression cannot be directly assigned to the property

クライアント側で実行される式は、特性に直接定義できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／特性

[プログラム]リポジトリ／[フォーム]エディタ／特性

意味：

クライアント側で実行される関数を含む式が、サーバ側で処理される特性値に設定されている場合にこのエラーが発生します。式の結果を一旦変数項目に格納した上でその変数項目を定義するように工夫する必要があります。w


EP0273:Task form can be defined only for one frame

タスクフォームには、1つのフレームのみ定義できます.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ

意味：

1つのタスク内に「リッチクライアントフレーム形式」フォームが複数定義されている場合にこのエラーが発生します。タスクには、1つのフレームフォームしか定義できません。


EP0274:A Prg/Tsk/Frm number is missing in frame

[プログ/タスク/フォーム #]の指定に誤りがあります.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[リッチクライアントフレーム形式]フォーム／[フレーム特性］

意味：

［フレーム特性］の「プログ/タスク/フォーム #」特性に存在しないオブジェクト番号が定義されている場合にこのエラーが発生します。設定内容を見直してください。


EP0275:Only a Rich Client task or form can run in a frame

フレームには、リッチクライアントタスクまたはフォームのみ定義できます.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[リッチクライアントフレーム形式]フォーム／[フレーム特性］

意味：

［リッチクライアントフレーム形式］フォームにフレームが定義されてない場合にこのエラーが発生します。


EP0276:The frames layout must be defined

フレームのレイアウトが定義されていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[リッチクライアントフレーム形式]フォーム

意味：

実行するOSコマンドが指定されていない場合に、このエラーが発生します。


ET0002:Column Index Is Mandatory for a Unique Index Position

[位置]特性が「重複不可インデックス」の場合は、[インデックス]特性を指定してください.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／データソース特性／[SQL]タブ

意味：

SQLテーブルの[位置]特性に「重複不可インデックス」が定義されていて、[インデックス]特性に重複可インデックスが定義された場合に発生します。


ET0004:Default Position Cannot Be Found - Table Must Have a Unique Key

[デフォルトの位置]が見つかりません.重複不可インデックスを定義してください.

設定 > チェックメッセージテーブ

発生場所：

[データ]リポジトリ／データソース特性／[SQL]タブ

意味：

SQLテーブルに対する[位置]特性が「D=デフォルト」で、インデックスが定義されていない場合に発生します。データソースに重複不可のインデックスが１つも定義されていない可能性があります。


ET0005:Table DB Name Is Mandatory for SQL Tables

SQLテーブルには、DBテーブル名が必須です.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[カラム]テーブル／[DBカラム名]特性

意味：

SQLテーブルにアクセスする場合には、カラムに[DBカラム名データソース名]にデータベーステーブル名を定義する必要があります。この設定がありません。


ET0006:Too Many Columns

カラム数が多すぎます

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[カラム]テーブル

意味：

データソースに定義されたカラムの数がデータベースゲートウェイの制限を超えた場合に発生します。

例：

  • Oracle: 1000

  • DB2/400: 8000

  • MS-SQL Server7: 1024

  • ODBC: 500


ET0007:Too Many Indexes

インデックス数が限界を超えています

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル

意味：

インデックスの数がデータベースゲートウェイの制限を超えた場合に発生します。

例：

  • Oracle 8: 255

  • MS-SQL Server7: 249

  • ODBC: 254

  • DB2/400: 32767


ET0008:Row Length Is Too Big

レコードサイズが大きすぎます.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[カラム]テーブル

意味：

カラムサイズの合計がデータベースの制限を超えている場合に発生します。

例：

  • MS-SQL:32767

  • Pervasive：固定長サイズが 4088

  • DB2UDB:32767

  • ODBC：32767

  • Oracle：32511


ET0010:Variable Length Table Should Include At Least One Index

インデックスが定義されていません

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル

意味：

  • SQLテーブルの場合：テーブルにインデックスが定義されていない場合に発生します。

  • ISAMテーブルの場合：インデックスセグメントの項目長が「0」の場合に発生します。


ET0011:Number of BLOB Columns Exceeds DBMS Limit

BLOBカラムが多すぎます.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[カラム]テーブル

意味：

SQLテーブルの場合：BLOB項目の定義数が DBMSの制限を超えた場合にこのエラーが発生します。
（例：Oracleの場合は 7、Pervasive ISAMは1、Memoryは1）


ET0012:Non-Unique Index Cannot Be the Table Position

重複可のインデックスは、[インデックス]特性に設定できません.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[データソース特性]／[SQL]タブ

意味：

SQLテーブルの[位置]特性に「重複不可インデックス」が定義されていて、[インデックス]特性に重複可インデックスが定義されている場合に発生します。


ET0013:Table Cannot Only Contain BLOBs

BLOBのみのデータソースは作成できません.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[カラム]テーブル

意味：

データソースのカラムが全てBLOB項目の場合にこのエラーが発生します。


ET0014:Too Many Segments

セグメント数が限界を超えています.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル

意味：

セグメントの数がデータベーステーブルに定義された値より大きい場合に発生します。

インデックスのセグメントの合計値がデータベース内のインデックスの数より大きい場合に発生します。（例：DB2 UDB: 120）

インデックスのセグメントの合計値がデータベースゲートウェイの最大値を超えた場合に発生します。

特定のインデックスのセグメント長がデータベースゲートウェイの最大値を超えた場合に発生します。


ET0015:Table DB Name Length Is Too Long for DBMS

DBテーブル名が長すぎます

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[データソース]カラム

意味：

ファイル名の長さが、データベースで定義されるものより大きい場合にこのエラーが発生します。

iSeriesの場合は、ファイル名が10桁を超えた場合に発生します。

SQLテーブルで定義されたDBテーブル名がDBMSの制限を超えた場合に発生します。


ET0017:Row Length Must Be Greater than Zero

レコードサイズが正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[カラム]テーブル

意味：

カラムサイズの合計が「0」の場合に発生します。


ET0018:No Such Database

データベースが見つかりません.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[データベース]カラム

意味：

[データベース]カラムにデータベースが設定されていない場合に発生します。


ET0019:No XML schema specified

XMLスキーマが指定されていません.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ

意味：

XMLデータソースを指定していますが、XMLスキーマを使用して定義取得が行われていない場合に発生します。


ET0020:Duplicate DB Index Name

DBのインデックス名が重複しています.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[インデックス]特性／[SQL]タブ

意味：

[DBインデックス名]特性に他のインデックスと同じ名前が定義されている場合に発生します。


ET0021:Duplicate Index Definition

インデックス定義が重複しています

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル

意味：

インデックスのセグメント定義が重複している場合にこのエラーが発生します。


ET0023:Parameter Not Allowed for This Index Type

このパラメータは、このインデックスタイプに使用できません.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[インデックス]特性

意味：

[方向]特性が「T=双方向」で、[データベース情報]特性で「ORDER_BY_NON_UNIQUE=Yes」に設定されている場合にこのエラーが発生します。
Oracleの場合のみ関係します。


ET0024:Index DB Name is Mandatory for SQL Tables

SQLテーブルでは、[DBインデックス名]を設定する必要があります.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[インデックス]特性／[SQL]カラム

意味：

SQLデータベースで[DBインデックス名]特性にインデックス名が指定されていない場合にこのエラーが発生します。


ET0025:Only One Clustered Index Can Be Declared

クラスタ化インデックスとして指定できるのは１つのインデックスだけです

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[インデックス]特性／[SQL]カラム

意味：

SQLデータベースで複数のインデックスに[クラスタ化]特性が設定されている場合にこのエラーが発生します。


ET0026:Index Should Include At Least One Segment

セグメントが定義されていません.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル

意味：

データソースのインデックスにインデックスセグメントが定義されていない場合に発生します。


ET0027:Too Many Index Segments

セグメント数が多すぎます.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[インデックス]特性／[SQL]カラム

意味：

[DBインデックス名]特性の長さが、使用するDBMSの制限を超えた場合に発生します。


ET0030:Duplicate Segment Definition

セグメント定義が重複しています.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[インデックス]特性／[セグメント]テーブル

意味：

インデックスセグメント内に同じカラムが定義されている場合に発生します。


ET0031:Invalid Segment

項目番号が無効です.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[インデックス]特性／[セグメント]テーブル

意味：

カラムが設定されていない行がある場合にこのエラーが発生します。


ET0032:Segment Length Must be a Column Length of 1

セグメントサイズが正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[セグメント]テーブル

意味：

セグメントサイズが「0」か、セグメントカラムの長さより大きい場合に発生します。


ET0033:Index Too Long

セグメントサイズの合計が大きすぎます.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[セグメント]テーブル

意味：

セグメントサイズの合計値が、DBMSのインデックスサイズの制限を超える場合に発生します。

例：

  • ODBC: 254

  • DB2/400: 2000

  • Btrieve: 255

  • MS-SQL Server 7: 700

  • Oracle: 2000


ET0034:BLOB Variable Cannot Be Used as an Index Segment

BLOB項目は、インデックスとして使用できません.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[セグメント]テーブル

意味：

セグメントカラムの型がBLOB型の場合に、このエラーが発生します。


ET0036:Segment Cannot Have a NULL Value

セグメントカラムは、NULL値可に設定できません.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[セグメント]テーブル

意味：

セグメントカラムに設定したカラムの[NULL値可]特性が｢Yes｣に設定されている場合に、このエラーが発生します。


ET0037:Segments Used in Primary Key Cannot Have a NULL Value

プライマリキーで使用されるセグメントカラムは、NULL値可に設定できません.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[セグメント]テーブル

意味：

プライマリキーとして設定されたインデックスのセグメントカラムとして設定されたカラムの[NULL値可]特性が｢Yes｣に設定されている場合に、このエラーが発生します。


ET0040:Referenced Table Must Be Selected for a Foreign Key

外部キーには、参照するテーブルを指定してください.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[外部キー]テーブル

意味：

SQLテーブルで外部キーの参照テーブルが指定されていない場合に発生します。


ET0041:A Segment Must Be Selected for a Foreign Key

外部キーの項目を指定してください.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[外部キー]テーブル

意味：

SQLテーブルで外部キーのセグメントが定義されていない場合に発生します。


ET0042:Duplicate Foreign Key Name

同じ外部キー名があります.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[外部キー]テーブル

意味：

同じ名前の外部キーが複数登録されている場合に発生します。


ET0043:Range Specified Does Not Match to Attribute of Field or Control

指定された[選択項目リスト]特性が、項目やコントロールの書式と合っていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／チョイスコントロール／[選択項目リスト]特性

意味：

チョイスコントロールの[選択項目リスト]特性に定義された値が、コントロールのデータ型と合っていない場合に発生します。


ET0044:Foreign key references invalid KEY in referenced table

外部キーが参照しているテーブルのインデックスは、正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[外部キー]テーブル

意味：

SQLテーブルで外部キーの参照キーが定義されていないか設定されたインデックスにアクセスできない場合に発生します。


ET0045:The Date and Time fields of Datetime pair must correspond to each other

Datetimeフィールドの日付と時刻の組み合わせは互いに相対していなければなりません.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[カラム]テーブル／[Datetimeの一部]特性

意味：

Datetimeフィールドに対応する日付型と時刻型の項目の[Datetimeの一部]特性に、互いの項目が指定されていない場合に発生します。


ET0046:Foreign Key Must Have a Segment

外部キーにセグメントを定義してください.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[外部キー]テーブル

意味：

SQLテーブルで外部キーのセグメントが定義されていない場合に発生します。


ET0047:Foreign Key Name Is Mandatory

外部キー名を入力してください.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[外部キー]テーブル

意味：

SQLテーブルで外部キーの名前が指定されていない場合に発生します。


ET0048:Date Segment Must Be Followed by the Corresponding Time Segment

日付セグメントに対応する時刻セグメントも定義してください.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[セグメント]テーブル

意味：

項目選択値が日付または時刻に設定され、Datetime特性の一部であるが、対応するカラムがインデックス内に定義されていない場合に発生します。


ET0049:Referred Key Must Be Unique

参照キーはユニークでなければなりません.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[外部キー]テーブル

意味：

外部キーに定義された参照キーが重複可に設定されている場合に発生します。


ET0050:The Primary Key Segments and the Current Table's Columns Are Not Equal

プライマリキーのセグメントと現在のテーブルのカラムが合っていません.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[外部キー]テーブル

意味：

外部キーと参照キーのセグメントの数が異なる場合に発生します。


ET0051:Foreign Key Column Does Not Match the Referenced Key Column

外部キーのカラムと参照キーのカラムが合っていません

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[外部キー]テーブル

意味：

外部キーに定義されたカラムのﾃﾞｰﾀ型が参照テーブルのカラムと合っていない場合に発生します。


ET0052:Bad Picture

書式が不適当です.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[カラム]テーブル

[プログラム]リポジトリ／[データビュー]エディタ

[プログラム]リポジトリ／[ロジック]エディタ

[プログラム]リポジトリ／[フォーム]エディタ

意味：

BLOB型以外で[書式]が定義されていない項目か、書式の指定が間違っている項目が定義された場合に発生します。


ET0053:Column DB Name is mandatory for SQL tables

SQLテーブルでは、[DBカラム名]が必要です.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[カラム]テーブル／[DBカラム名]特性

意味：

SQLテーブルにアクセスする場合には、各カラムの[DBカラム名]特性を定義する必要があります。この設定がありません。


ET0058:Duplicate Column DB Name

カラムの[DB名]特性が重複しています.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[カラム]テーブル／[DBカラム名]特性

意味：

SQLテーブルでDBカラム名が重複したカラムを定義した場合に発生します。


ET0060:Numeric must have 1-38 digits

数値は、38桁まで有効です.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[カラム]テーブル

意味：

数値型のカラムの書式が、38桁を超えている場合に発生します。

注意：

このエラーは、Magic.ini の[MAGIC_SPECIALS]セクションで XXLNumericSize = Y と設定されている場合にのみ表示されます。


ET0061:Numeric must have 1-18 digits

数値は、18桁まで有効です.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[カラム]テーブル

意味：

数値型のカラムの書式が、18桁を超えている場合に発生します。

注意：

このエラーは、Magic.ini の[MAGIC_SPECIALS]セクションに XXLNumericSize が設定されていないか、 N と設定されている場合にのみ表示されます。


ET0064:Wrong column size

サイズが正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[カラム]テーブル

意味：

[書式]に設定されたサイズが大きすぎる場合に発生します。


ET0066:The Time segment is not a pair of the Date segment

時刻セグメントは、日付セグメントに対応するカラムではありません.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[セグメント]テーブル

意味：

Datetimeフィールドの日付カラムをインデックスセグメントにした場合に、異なるDatetimeフィールドの時刻カラムがインデックスセグメントとして定義されている場合に発生します。


ET0067:Should execute conversion

変換処理が必要です.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ

意味：

モデルの書式が変更されたりして、データソースのカラム構成が変更された場合に発生します。


ET0068:A vector field must have a Cell Model defined

ベクトル項目には、[セルモデル]を定義してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／[セルモデル]特性

意味：

ベクトル型項目の[セルモデル]特性が設定されていない場合に発生します。


ET0070:A real field cannot have Vector attribute

データソースのカラムにベクトル型は指定できません.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[カラム]テーブル

意味：

データソースのカラムにベクトル型が設定されている場合に発生します。ベクトル型は、変数/パラメータ項目でのみ指定可能です。


ET0072:Database does not support definition of Unicode key segments

データベースは、Unicodeのインデックスセグメントの定義をサポートしていません.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[セグメント]テーブル

意味：

使用しているRDBMSがUnicodeのインデックスをサポートしていない場合、インデックスにUnicode型のカラムを定義すると発生します。


ET0073:Database does not support Unicode Field

データベースは、Unicode項目をサポートしていません.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[カラム]テーブル

意味：

使用しているRDBMSがUnicodeをサポートしていない場合、Unicode型のカラムを定義すると発生します。


ET0074:Data source name cannot be empty

データソース名が指定されていません.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[データソース]カラム

意味：

SQLテーブルにアクセスする場合には、[データソース名]カラムを定義する必要があります。この設定がありません。


ET0075:Temp database specified in data source environment does not exists

[データベース]特性に指定された、一時データベースが存在していません.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[データベース]カラム

意味：

[データベース]カラムに設定されたXMLデータベースは、[データベース]テーブルに定義されています。このXMLデータベースの[データベース]特性の[一時データベース]特性に設定されているデータベースが[データベース]テーブルに定義されていない場合にこのエラーが発生します。


ET0076:Column Date-Time MisMatch with the Referenced Column Date-Time

Datetime型のカラム指定のため、参照されるカラムもDatetime型にする必要があります.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[外部キー]テーブル

意味：

外部キーにDatetime型のカラムが設定され、参照テーブルのカラムがDatetime型でない場合にこのエラーが発生します。


ET0077:XML View is empty

XMLビューが定義されていません.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[ビュー]ウィンドウ

意味：

XMLビューに要素が定義されていない合にこのエラーが発生します。コンテキストメニューの[ビューに含める]を選択して、XMLビューを定義してください。


ET0078:XML file name length is too long

XMLファイル名が長すぎます.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[データソース名]カラム

意味：

[データソース名]カラムに設定されたファイル名が長すぎる(219桁以上)場合にこのエラーが発生します。


RP0001:Locate on virtual fields is ignored inside a link join, use SQL WHERE clause instead

結合リンクの[位置付]特性に指定された変数項目は無視されます.SQL Where句を使用してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

結合リンクの[位置付]特性に変数項目が設定された場合にこのエラーが発生します。


RP0002:Line Number Table Property Control Is Missing

[テーブル]コントロールの[明細行]を設定してください

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム／[テーブル]コントロール／[明細行]特性

意味：

[テーブル]コントロールの[明細行]特性の値が 「0」 で式が指定されていない場合にこのエラーが発生します。


RP0003:This form does not have a caption and will appear as Untitled in the Window menu

このフォームには、フォーム名が定義されていません.Windowsメニューには、フォーム名が表示されません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[フォーム名]特性

意味：

フォーム名が設定されていない場合に発生します。


RP0005:Performing multiple accesses to server, please check if they can be combined

サーバへの多重アクセスが実行されます.サーバ側の処理をまとめて定義するようにしてください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

サーバ側で実行される処理とクライアント側で実行される処理が混在しているため、パフォーマンスが低下する可能性がある場合に、この警告が表示されます。サーバ側の処理だけをまとめて実行できるように検討してください。


RP0006:Performing server access on screen browsing is not recommended

画面表示処理中のサーバアクセス処理は推奨できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

[レコード後]のように、画面表示処理中のロジックユニット内にサーバ側の処理を定義するとパフォーマンスが劣化するため、この警告が表示されます。


RP0007:Performing client side and server side operations in a loop will cause multiple access to server

[ブロックWhile]処理コマンド内でクライアント側とサーバ側の処理コマンドを一緒に実行させると、サーバへの多重アクセスが発生します.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

[ブロックWhile]処理コマンドで定義されたブロック内に、サーバ側で実行される処理とクライアント側で実行される処理が混在している場合に、この警告が表示されます。できるだけ、異なるループ処理処理に分けるように検討してください。


RP0008:Note that if an unknown-side operation defined at the server handler is evaluated to a client-side at runtime, an error will occur

実行場所が不明な処理をサーバ側のロジックユニットに定義すると、実行時にクライアント側で評価され、エラーが発生する場合があります.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

サーバ側で実行されるロジックユニット（例：[タスク前]）に、実行場所が不明な処理（左端に「U」と表示されます）が定義されている場合、この処理がクライアント側で実行されるとエラーが発生する可能性があります。このような設定を行った場合に、この警告が表示されます。


RP0009:Performing Mixed client and server access on variable change is not recommended

[項目変更]ロジックユニットに、クライアントとサーバの処理を混在して定義することは推奨できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

[項目変更]ロジックユニットに、サーバ側で実行される処理とクライアント側で実行される処理が混在して定義されている場合に、この警告が表示されます。どちらかの処理だけにするように検討してください。


UP0020:Warning: Expression not used

式が使用されていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ

意味：

式で指定すべきパラメータに式が設定されていない場合に、このエラーが発生します。


WP0001:URL (value or expression) must be entered

URLを入力してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム／[HTMLコントロール]テーブル／ハイパーテキスト／[ハイパーリンク]特性

[プログラム]リポジトリ／タスク環境／タスク特性／[終了時URL]特性

意味：

リンク先のURLが指定されていない場合に発生します。


WP0002:Public Name Already Exists

この公開名は既に存在しています

設定 > チェックメッセージテーブル

発生場所：

[モデル]リポジトリ／[公開名]カラム

[データ]リポジトリ／[公開名]カラム

[プログラム]リポジトリ／[公開名]カラム

[ヘルプ]リポジトリ／[公開名]カラム

[権利]リポジトリ／[公開名]カラム

[イベント]テーブル／[公開名]カラム

意味：

同じ公開名のオブジェクトが定義されている場合に、このエラーが発生します。


WP0003:Incremental Update Not Supported in Batch Tasks

加算更新は、バッチタスクでは指定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[項目更新]処理コマンド／[加算]特性

意味：

バッチタスク内で、[項目更新]処理コマンドの中の[加算]特性が「Yes」に定義されている場合に発生します。


WP0004:Program's Public Name Missing

公開プログラム名が指定されていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／公開名

意味：

ブラウザプログラムやリッチクライアントプログラムに公開プログラム名が指定されていない場合に発生します。

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールリモート]処理コマンド／[プログラム名]

意味：

公開プログラム名（または式）が指定されていない場合に発生します。


WP0005:Forms Other than GUI and Text Cannot Be Printed

GUI出力形式/テキスト形式以外のフォームでは印刷できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム出力]処理コマンド／[フォーム]特性

意味：

[フォーム出力]処理コマンドの[フォーム]特性に、[フレームセット形式]や[ブラウザ形式]のフォームを指定した場合にこのエラーが発生します。


WP0006:A Variable Is Illegal for This Level Type

[項目]処理コマンドは、このロジックユニットでは定義できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

[項目]処理コマンドによる変数項目定義が、[イベント]ロジックユニット以外で定義されている場合にこのエラーが発生します。


WP0008:Control Level Is Not Supported in a Batch Task

[コントロール]ロジックユニットは、バッチタスクでは定義できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

バッチタスクに[コントロール]ロジックユニットが定義されている場合にこのエラーが発生します。


WP0009:Control Must Have a Variable of the Current Task Associated With It

コントロールには、現在のタスクの項目を定義してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コントロール]ロジックユニット

意味：

[コントロール]ロジックユニットに定義されたコントロールに、上位タスクで定義されたデータ項目が設定されている場合にこのエラーが発生します。


WP0010:Form Is Too Big to Output to the Console I/O File

フォームが大きすぎてコンソールに出力できません

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[フォーム出力]処理コマンド／[入出力ファイル]特性

意味：

[入出力ファイル]特性に指定された[入出力ファイル]テーブルの[メディア]カラムが「コンソール」で、[行数]指定が「0」 より大きい場合に発生します。


WP0011:Group Level Allowed Only in Batch

[グループ]ロジックユニットは、バッチタスクでのみ有効です.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

バッチタスク以外で[グループ]ロジックユニットが定義されている場合にこのエラーが発生します。


WP0013:RM Compatible logic is supported only in Online tasks.

[RM互換]ロジックユニットは、オンラインタスクでのみサポートします.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

バッチタスクに[RM互換]ロジックユニットが定義されている場合にこのエラーが発生します。


WP0018:Illegal literal value

リテラル値が正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

リテラルを指定したオブジェクト（例：式の場合、'999'EXP）が存在しない場合にこのエラーが発生します。


WP0020:Expression Not Used

式が使用されていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ

意味：

各パラメータで指定された式が[式]エディタ内に定義されていない場合にこのエラーが発生します。


WP0023:# of repeated lines is greater than zero and no table is defined in form

[繰返し行数]特性が指定されていますが、フォームに[テーブル]コントロールがありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム

意味：

[フォーム特性の[繰り返し行数]特性に行数が指定されているにも関わらず、[テーブル]コントロールが定義されていない場合にこのエラーが発生します。


WP0024:Color Number Can Only Be Between 1 and the Highest Color Number

基本色番号は、1 - 登録番号 以外は指定できません

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[色]特性

[プログラム]リポジトリ／[フォーム]エディタ／コントロール／[色]特性

意味：

[色]特性の番号が「0」か、[基本色定義]テーブルに登録されている数より大きい値を指定している場合に発生します。


WP0025:Column Defined as a Marking Column While Multi-Marking On a Table

[テーブル]コントロールの[マルチマーキング]特性が「No」の状態で、[カラム]コントロールの[カラムのマーキング]特性を「Yes」に設定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ

意味：

[テーブル]コントロールの[マルチマーキング]特性が「No」で[カラム]コントロールの[カラムのマーキング]特性が「Yes」の場合に発生します。


WP0026:Column Sortable Is Not Allowed When a BLOB Control Is in the Column

BLOBコントロールに対して、カラムソートを使用することはできません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[カラム]コントロール／[ソート可]特性

意味：

BLOB項目を[テーブル]コントロールにカラムとして配置し、[カラム]コントロールのの[ソート可]特性を「Yes」にした場合にこのエラーが発生します。


WP0027:Column Sortable Is Not Allowed When an Image Control Is in the Column

[イメージ]コントロールに対して、カラムソートを使用することはできません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[カラム]コントロール／[ソート可]特性

意味：

[イメージ]コントロールを[テーブル]コントロールにカラムとして配置し、[カラム]コントロールの[ソート可]特性を「Yes」にした場合にこのエラーが発生します。


WP0028:Column Sortable Is Not Allowed Without Main Source

メインソースを指定していない場合は、カラムソートを使用することができません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[カラム]コントロール／[ソート可]特性

意味：

SQLタスクでなく、かつメインソースが定義されいないタスクで、[カラム]コントロールの[ソート可]特性を「Yes」にした場合にこのエラーが発生します。


WP0029:Column Sortable Is Not Allowed Without Variable

項目を指定しないでカラムソートを使用することはできません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[カラム]コントロール／[ソート可]特性

意味：

カラムに配置されたコントロールの[データ]特性が設定されていない状態で、[カラム]コントロールの[ソート可]特性を「Yes」にした場合にこのエラーが発生します。


WP0030:Font Value is Smaller than 1 or Larger than the Maximum Number Allowed

フォント番号は、1 - 登録番号 以外は指定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[フォント]特性

[プログラム]リポジトリ／[フォーム]エディタ／コントロール／[フォント]特性

意味：

[フォント]特性の番号が「0」か、[フォント]テーブルに登録されている数より大きい値を指定している場合に発生します。


WP0031:Frame Hyperlink Is Pointing to the Current Program

[フレーム]コントロールの[ハイパーリンク]特性に、現在のプログラムが指定されています.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[フレームセット形式]フォーム／[フレーム]コントロール／[ハイパーリンク]特性

意味：

[フレームセット形式]フォームに配置された[フレーム]コントロールの[ハイパーリンク]特性に、現在のプログラムが指定されている場合にこのエラーが発生します。


WP0033:Image Control Must Have Data or Data Exppression

[イメージ]コントロールに、データまたは式が定義されていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム／[イメージ]コントロール

意味：

[イメージ]コントロールの[項目]カラム（または「式」カラム）が定義されていない場合にこのエラーが発生します。


WP0034:Image Control Must Have Either Data or a Default Image File Name

[データ]特性または、[デフォルトイメージファイル]特性を設定してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI形式]フォーム／[イメージ]コントロール

意味：

[イメージ]コントロールの[データ]特性か[デフォルトイメージファイル]特性が定義されていない場合にこのエラーが発生します。


WP0035:Invalid Internal Action

内部イベントが正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI形式]フォーム／[プッシュボタン]コントロール／[実行イベント]特性

意味：

[プッシュボタン]コントロールの[実行イベント]特性に内部イベントが定義されているが、指定されたいベントが存在しない場合に発生します。


WP0036:Invalid Help Screen

ヘルプが正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[モデル]リポジトリ

[データソース]リポジトリ／[カラム]テーブル

[プログラム]リポジトリ／[フォーム]エディタ

[メニュー]リポジトリ

意味：

[ヘルプ画面]特性や、[自動ヘルプ]特性、[ツールチップ]特性に指定されたヘルプが[ヘルプ]リポジトリに定義されていない場合に発生します。


WP0037:Non-Prompt Help Screen Cannot Be Used as a Help Prompt

自動ヘルプ以外のヘルプは、ここには指定できません.

設定 > チェックメッセージテーブル

発生場所：

[モデル]リポジトリ

[データソース]リポジトリ／[カラム]テーブル

[プログラム]リポジトリ／[フォーム]エディタ

意味：

[自動ヘルプ]特性にに指定されたヘルプが自動ヘルプでない場合に発生します。


WP0038:Non-Tooltip Help Screen Cannot Be Used as a Help Tooltip

ツールチップ以外は、ここでは指定できません.

設定 > チェックメッセージテーブル

発生場所：

[モデル]リポジトリ

[データソース]リポジトリ／[カラム]テーブル

[プログラム]リポジトリ／[フォーム]エディタ

意味：

[ツールチップ]特性にに指定されたヘルプがツールチップでない場合に発生します。


WP0039:Prompt or Tooltip Help cannot be used as a Help Screen

自動ヘルプ／ツールチップは、[ヘルプ画面]特性には設定できません.

設定 > チェックメッセージテーブル

発生場所：

[モデル]リポジトリ

[データソース]リポジトリ／[カラム]テーブル

[プログラム]リポジトリ／[フォーム]エディタ

[メニュー]リポジトリ

意味：

[ヘルプ画面]特性に指定されたヘルプが、自動ヘルプやツールチップの場合に発生します。


WP0040:Push Button Must Have Either Data or a Valid Raise Event

[データ]特性または、有効な[実行イベント]特性を設定してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[プッシュボタン]コントロール

意味：

以下の場合にこのエラーが発生します。

  • [データ]特性に項目が指定されていない。

  • [実行イベント]特性が指定されていない。


WP0043:URL Help Type Is Not Supported for Non-Browser Form or Control

URLヘルプは、ブラウザフォームまたはそのコントロール以外で指定できません

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム

意味：

[GUI表示形式]フォームやフォーム上のコントロールにURLヘルプが定義された場合に発生します。


WP0044:Variable Cannot Be Selected More Than Once

同じ項目は１つしか指定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ

意味：

同じフォーム上の複数のコントロールに同一項目が割り当てられている場合に発生します。


WP0045:Variable Type Is Not Supported for the Control

このコントロールに対して、使用できない項目です

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／各コントロール／[データ]特性

意味：

以下のコントロールに対して定義された項目が正しない場合にこのエラーが発生します。

  • プッシュボタン……文字型/Unicode型項目以外が定義された場合

  • スライダ……数値型項目以外が定義された場合

  • チェックボックス……論理型項目以外が定義された場合

  • エディット……BLOB型項目が定義された場合

  • サブフォーム……文字型/Unicode型項目以外が定義された場合

  • リッチエディット……BLOB型項目以外が定義された場合

  • OLE……BLOB型項目以外が定義された場合.

  • イメージ……文字型/Unicode型またはBLOB型項目以外が定義された場合

  • ツリー……文字、Unicode、数値、日付、時刻の各型の項目以外が定義された場合

  • チョイス……文字、/Unicode、数値、日付、時刻、論理の各型の項目以外が定義された場合


WP0047:Selected Variable Is Already Defined in Form

選択した項目は、すでにこのフォームで使用されています.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム／[HTMLコントロール]テーブル

意味：

コントロールに割り当てられた項目が、同じフォーム内の別のコントロールに割り当てられている場合に発生します。


WP0049:Server side functions cannot be directly assigned to a property of a form

サーバ側で実行される関数をフォーム上に直接定義できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[リッチクライアント形式]フォーム

意味：

[フォーム特性]や[コントロール特性]に設定された式に、サーバ側で実行される関数が含まれている場合に発生します。

サーバ関数からの値を、一旦変数項目に格納してから使用するように検討してください。


WP0050:Illegal Close Task Window value. A program with Parallel Execution can not have the Close Task Window set to NO

[ウィンドウ消去]特性の設定が正しくありません. 並行実行に設定されたプログラムでは、「No」に設定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／タスク特性／[ウィンドウ消去]特性

意味：

並行実行が有効になっているタスクの[ウィンドウ消去]特性が「No」に設定されている場合に、このエラーが発生します。


WP0053:Data Control Range Must Have a Minimum or Maximum Expression

データコントロールの[範囲]特性に、範囲式を定義してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／データコントロール

意味：

データコントロールの[範囲]特性に項目が定義されているが、[開始]と[終了]カラムに範囲式が定義されていない場合に表示されます。


WP0054:Range Field Number Should Be Greater Than Zero

[範囲]特性の[項目]カラムに、項目を指定してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式ｆフォーム／データコントロール

意味：

データコントロールの[範囲]特性に[項目]カラムが「0」になっている行がある場合に表示されます。


WP0055:Number of Arguments Are Not Equal to Number of Parameters

パラメータの数が合っていません.

設定 > チェックメッセージテーブ

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コール]処理コマンド／[パラメータ]特性

[プログラム]リポジトリ／[フォーム]エディタ／[サブフォーム]コントロール／[パラメータ]特性

意味：

パラメータの数が呼ぶ側と呼ばれる側で合っていない場合に、このエラーが発生します。


WP0056:BLOB Variables Cannot Be Used

BLOB項目は使用できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム／[サブフォーム]コントロール

[プログラム]リポジトリ／タスク特性／[終了時URL]特性

意味：

パラメータとして設定された項目がBLOB型の場合、このエラーが発生します。


WP0057:Only One Requester Can Be Defined for a Task

１つのタスクには１つのリクエスタしか指定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[入出力ファイル]テーブル

意味：

[入出力ファイル]テーブルに一つ以上のリクエスタが定義されている場合にこのエラーが発生します。


WP0058:Printer Not Defined in the Printer Table

[プリンタ]テーブルにプリンタが定義されていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[入出力ファイル]テーブル

意味：

[メディア]カラムが「G=GUI形式プリンタ」か「P=テキスト形式プリンタ」で、[プリンタ]カラムに定義されたプリンタが存在しない場合に発生します。


WP0059:Media Requester Is Not Allowed in I/O definitions in the Browser Task

ブラウザタスクでは、[メディア]カラムが「リクエスタ」に指定されている入出力ファイルを使用できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[入出力ファイル]テーブル

意味：

[タスクタイプ]特性が「R=ブラウザ」で[入出力ファイル]テーブルに「メディア」と定義されたテーブルがある場合に発生します。


WP0060:Number of Copies Must Be Defined

[部数]特性を指定してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[入出力ファイル]テーブル／[入出力ファイル]特性／[部数]特性

意味：

[プリンタ]カラムが「GUI形式プリンタ」と定義され、[部数]特性が指定されていない場合にこのエラーが発生します。


WP0061:HTML Style Does Not Exist

HTMLスタイルファイルが存在しません.

設定 > チェックメッセージテーブル

発生場所：

アプリケーション起動時

意味：

[アプリケーション特性]に定義された[HTMLスタイルファイル]が存在しない場合に、このエラーが発生します。


WP0062:Form Input Is Not Allowed

[フォーム入力]処理コマンドでは、フレームセット/マージ/ブラウザフォームを指定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[フォーム入力]処理コマンド／[フォーム]特性

意味：

[フォーム入力]処理コマンドの[フォーム]特性に、[フレームセット形式]、[マージ形式]、[ブラウザ形式]の各フォームが指定されている場合に発生します。


WP0063:Use of a Function That Is Only Used in a Browser Program

式が正しくありません.定義式には、ブラウザプログラムでしか使用できない関数が含まれています.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

メインプログラム以外のオンライン／バッチタスクにブラウザタスクでしか使用できない関数が定義されている場合に発生します。現在、以下の 2つ関数が該当します。

  • CallOBJ

  • CallJS


WP0064:Image File Name Not Available

[イメージ一覧ファイル名]特性が正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ツリー]コントロール／[イメージ一覧ファイル名]特性

意味：

[ツリー]コントロールの[イメージ一覧ファイル名]特性に指定されたファイルが読み込めなかった場合にこのエラーが発生します。


WP0066:BLOB Variable Is Not a BLOB RTF

使用されるBLOB項目は、RTF形式ではありません

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド／[戻り値]特性

意味：

RTF形式以外のBLOB型が定義された場合に発生します。


WP0067:Not a SQL Database

SQLデータベースを指定してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[SQLコマンド]ダイアログ／[データベース]欄

意味：

指定されたデータベースがSQL系のデータベースとして定義されていない場合に発生します。


WP0068:Components used in Main Program must be defined as Load Immediate in the component definition

メインプログラムで使用されるコンポーネントは、[即時有効]を「ON」にしてください.

設定 > チェックメッセージテーブル

発生場所：

[コンポーネント]リポジトリ／[コンポーネント特性]

意味：

メインプログラムで使用しているコンポーネントの[即時有効]特性がOFFに設定されている場合に発生します。


WP0073:Only a text based/merge form can be output to variable i/o

テキスト形式/マージ形式フォームのみ「項目」メディアを指定することができます.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[フォーム出力]処理コマンド／[フォーム]特性

意味：

[フォーム出力]処理コマンドの[入出力ファイル]特性に、[メディア]カラムが「V=項目」に設定された入出力ファイルが指定されていて、[フォーム]特性に「テキスト形式」か「マージ形式」以外のフォームが定義されている場合に発生します。


WP0074:Only a text based form can be read from variable i/o

テキスト形式フォームのみ「項目」メディアを指定することができます.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[フォーム入力]処理コマンド／[フォーム]特性

意味：

[フォーム入力]処理コマンドの[入出力ファイル]特性に、[メディア]カラムが「V=項目」に設定された入出力ファイルが指定されていて、[フォーム]特性に「テキスト形式」以外のフォームが定義されている場合に発生します。


WP0077:Server side functions cannot be directly assigned to a property of a control

サーバ実行関数はコントロール特性に指定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ﾌｫｰﾑ]エディタ／[リッチクライアント形式]フォーム／コントロール

意味：

リッチクライアント形式フォーム上のコントロールのコントロール特性に、サーバ側で処理される関数を含む式が指定されている場合に発生します。


WP0078:Block While defined with Yes condition will run to infinity

ブロックWhile の条件を「Yes」に設定すると無限ループが実行されます.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[ブロック]処理コマンド

意味：

[ブロックWhile]の[条件]特性に「Yes」と設定すると、ブロック内の処理が永久に実行されるようになります。ここには、ループ処理が継続する場合の条件式を指定するようにしてください。


WP0079:Position Range On/From cannot be used on task with Tree control

[ツリー]コントロールが定義されたタスクには、[位置方法]は定義できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[範囲／位置付]ダイアログ／[式]タブ／位置

意味：

[ツリー]コントロールが定義されたタスクの[範囲/位置付]ダイアログに[位置/方法]の式が指定されている場合に発生します。


WP0081:A User event public name exp must be entered

[イベント]特性が指定されていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[イベント実行]処理コマンド／[イベント]特性

意味：

[イベント実行]処理コマンドの[イベント]特性にイベントの公開名が指定されていない場合に発生します。


WP0083:Sync data will be ignored in physical trans mode.

[同期]特性は、物理トランザクションモードでは無視されます.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コール]処理コマンド／[同期]特性

意味：

[タスク特性]の[トランザクションモード]特性が「P=物理」に設定されたタスクに定義された[コール]処理コマンドで、[同期]特性が「Yes」に設定されている場合に発生します。


WP0086:Number of input parameters in D-SQL statement doesn't match the actual number of input parameters

SQLコマンドの[入力パラメータ]特性の数が、実際のパラメータ数と合っていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[SQLコマンド]ダイアログ

意味：

[入力パラメータ]に定義されたの数と、SQLコマンドで指定されたパラメータ（:n）の数が合っていない場合に発生します。


WP0089:Fill in Line Tabs width mode is not supported for single line tab control

[タブ]コントロールの[タブ幅]特性を「テキストに合わせる」に設定する場合は、[複数行]特性を「Yes」に設定してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[タブ]コントロール

意味：

[タブ]コントロールの[複数行]特性が「No」で、[タブ幅]特性が「T=テキストに合わせる」に設定されている場合に発生します。


WP0090:Invalid Window Type for a concurrent program

[ウィンドウタイプ]特性が正しくありません.並行実行プログラムでは指定できないタイプです.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[ウィンドウタイプ]特性

意味：

[並行実行]特性がONに設定されたタスクのメインフォームの[ウィンドウタイプ]特性が以下の場合に発生します。

  • C=子ウィンドウ

  • P=分割子ウィンドウ

  • I=MDI調整


WP0091:Invalid Window Type. An SDI form cannot be defined when ''Close Window = No''

[ウィンドウタイプ]特性が正しくありません.[ウィンドウ消去]特性が「No」の場合、SDIフォームは定義できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[ウィンドウタイプ]特性

意味：

[ウィンドウ消去]特性が「No」に設定されたタスクのメインフォームの[ウィンドウタイプ]特性が、「S=SDI」に設定されている場合に発生します。


WP0092:The Centered to MDI Startup position is invalid in an SDI program

SDIプログラムでは、[開始時の位置]特性を「MDIの中央」に設定することはできません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[開始時の位置]特性

意味：

[ウィンドウタイプ]特性が「S=SDI」に設定され、[開始時の位置]特性が「M=MDIの中央」に設定されている場合に発生します。


WP0093:Link Inner and Outer Joins are not available for an XML data source or when the main source of the task is an XML data source

XMLデータソースを使用して、結合リンクや外部リンクはできません.XMLデータソースをタスクのメインデータソースにした場合も同様です.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

[結合リンク]が[外部リンク]でXMLデータソースを指定した場合に発生します。

また、メインソースがXMLデータで、[結合リンク]や[外部リンク]でSQLテーブルを指定した場合にもエラーになります。

注意：

このエラーは登録時にもステータスバーに表示されます。


WP0094:3 States input requires the CheckBox field to support NULL values. Set the Allow Null property of the field to Yes

[チェックボックス]コントロールの[3ステータス]特性を指定した場合、[NULL値許可]特性を「Yes」に設定してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[チェックボックス]コントロール

意味：

[チェックボックス]コントロールの[３ステータス]特性が｢Yes｣に設定され、[データ]特性に設定された項目の[NULL値可]特性が｢No｣に設定されている場合に発生します。


WP0095:Raising an event in the task in focus requires the allow parking property set to No

フォーカスのあるタスクのイベントを実行するには、[パーキング可]特性を「No」に設定する必要があります.

設定 > チェックメッセージテーブル

発生場所： タスク/GUI表示形式フォーム/ツリーコントロール/[イメージファイル名]特性


WP0096:Right or Left side Tab control is always a multi line tab, therefore it disregards the Multiline property

[タブラベル位置]特性が、｢右｣または｢左｣の[タブ]コントロールは、[複数行]特性を｢Yes｣に設定してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[タブ]コントロール

意味：

[タブ]コントロールの[タブラベル位置]特性が｢R=右｣または｢L=左｣に設定され、[複数行]特性が｢No｣に設定されている場合に発生します。


WP0097:Invalid Window Type. An SDI form can only be defined for Parallel Execution programs

[ウィンドウタイプ]特性が正しくありません.「SDI」は、並行実行プログラムでのみ指定できます.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[ウィンドウタイプ]特性

意味：

[並行実行]特性がONに設定されたタスクのメインフォームの[ウィンドウタイプ]特性が「S=SDI」に設定されている場合に発生します。


WP0098:The Revert mode is not valid for this level of execution

復帰モードは、このロジックユニットでは指定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[エラー処理]コマンド／[モード]特性

意味：

以下のロジックユニットで、[エラー]処理コマンドの[モード]特性が｢R=復帰｣に設定されている場合発生します。

  • レコードレベル

  • タスクレベル

  • 項目レベル


WP0099:Default Button control does not exist

[デフォルトボタン]特性に指定されたコントロールがありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[デフォルトボタン]特性

意味：

[デフォルトボタン]特性に指定されたコントロール名に該当するコントロールがフォームに定義されていない場合にこのエラーが発生します。


WP0100:Selected Returned Context Id is not Alpha nor unicode

[コンテキストID]特性には、文字型またはUnicode型を指定してください.

設定 > チェックメッセージテーブル

発生場所：

[メニュー]リポジトリ／メニュー特性／[コンテキストID]特性

意味：

[コンテキストID]特性に文字型かUnicode型以外の項目が定義されている場合に発生します。


WP0101:The selected window type is not supported by the Main program

選択された[ウィンドウタイプ]特性は、メインプログラムでは指定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／メインプログラム／[フォーム]エディタ／[GUI表示形式]フォーム／[ウィンドウタイプ]特性

意味：

メインプログラムのメインフォームの[ウィンドウタイプ]特性が以下の設定の場合に発生します。

  • C=子ウィンドウ

  • P=分割子ウィンドウ

  • M=モーダル

  • A=アプリケーションモーダル


WP0102:Cached Table - Linked table cannot be cached on client when link is based on expressions that might be executed on server

キャッシュテーブル - リンクがサーバ側の式で行われた場合、リンクテーブルは、クライアント側でキャッシュできません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／[リンク]コマンド

意味：

ブラウザクライアントのリンクテーブルが常駐テーブルの場合（[動作環境]の[常駐テーブル読込]が「Yes」衣設定され、[データ]リポジトリでデータソースの[常駐]特性が「B=ブラウザ上で常駐」に設定されている状態を示します）、[位置付]特性に設定された式にサーバ側で実行されるが関数が含まれている場合、このエラーが発生します。


WP0105:Cached Table - Linked table cannot be cached on client when its columns are set with range expressions

キャッシュテーブル - カラムに範囲式が設定されている場合、リンクテーブルは、クライアント側でキャッシュできません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／[リンク]コマンド

意味：

ブラウザクライアントのリンクテーブルが常駐テーブルの場合（[動作環境]の[常駐テーブル読込]が「Yes」衣設定され、[データ]リポジトリでデータソースの[常駐]特性が「B=ブラウザ上で常駐」に設定されている状態を示します）、[範囲]特性に式が定義されている場合、このエラーが発生します。


WP0106:Cached Table - Linked table cannot be cached on client when its virtuals are set with range/locate expressions

キャッシュテーブル - 変数項目に範囲/位置付が設定されている場合、リンクテーブルは、クライアント側でキャッシュできません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／[リンク]コマンド

意味：

ブラウザクライアントのリンクテーブルが常駐テーブルの場合（[動作環境]の[常駐テーブル読込]が「Yes」衣設定され、[データ]リポジトリでデータソースの[常駐]特性が「B=ブラウザ上で常駐」に設定されている状態を示します）、リンク内に変数項目を定義し、この変数の[位置付]／[範囲]特性に式が設定されている場合、このエラーが発生します。


WP0108:Cached Table - Linked table cannot be cached on client when expression is set in Range/Locate window

キャッシュテーブル - タスクの[範囲/位置付]ダイアログで範囲式や位置付式が設定されている場合、リンクテーブルは、クライアント側でキャッシュできません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／[リンク]コマンド

意味：

ブラウザクライアントのリンクテーブルが常駐テーブルの場合（[動作環境]の[常駐テーブル読込]が「Yes」衣設定され、[データ]リポジトリでデータソースの[常駐]特性が「B=ブラウザ上で常駐」に設定されている状態を示します）、[範囲/位置付]ダイアログの[範囲式]や[位置付式]に式が定義されている場合、このエラーが発生します。


WP0109:Illegal Initial Mode. A program with Parallel Execution can not have an initial mode of 'As Parent'

[初期モード]特性が正しくありません. [並行実行]が設定されたプログラムでは、「親と同じ」は設定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／タスク特性／[初期モード]特性

意味：

並行実行が有効になっているタスクの[初期モード]特性が「P=親と同じ」に設定されている場合に、このエラーが発生します。


WP0110:Illegal Return Value. A program with Parallel Execution can not have a return Value

[戻り値]特性が正しくありません.[並行実行]が設定されたプログラムでは、[戻り値]特性は設定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／タスク特性／[戻り値]特性

意味：

並行実行が有効になっているタスクの[戻り値]特性に式が設定されている場合に、このエラーが発生します。


WP0111:In XML Data source Share cannot be Write mode when access is also in Write mode

XMLデータソースでは、[アクセス]特性が「書出」の場合、[共有]特性を「書出」に設定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／[メインソース特性]

[プログラム]リポジトリ／[データビュー]エディタ／[リンク]特性

意味：

XMLデータソースを定義する際に、[アクセス]特性と[共有]特性がどちらも「W=書出」の場合に、このエラーが発生します。


WP0112:Redundant Data Source declaration - This data source is already used in this task

冗長なデータソース定義です. - このデータソースは、すでにこのタスク内で使用されています.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／宣言

意味：

同じタスク内のメインソースやリンクテーブルに定義されているデータソースを宣言定義している場合に、発生します。


WP0113:Subform control is not supported for a task having a RM_Compatible handler

[サブフォーム]コントロールは、[RM互換]ロジックユニットを持ったタスクではサポートされません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

[RM互換]ロジックユニットが定義されているタスクのメインフォームに[サブフォーム]コントロールが配置されている場合に発生します。サブフォームは表示されますが、カーソルは移動しません。


WP0114:Program is not set as External

プログラムの[外部]カラムがチェックされていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ

意味：

ブラウザクライアントやリッチクライアント用のプログラムの[外部]カラムがチェックされていない場合にこのエラーが発生します。


WP0178:Non optional argument should be defined

オプションが「No」と設定されたパラメータに項目が設定されていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールCOM]処理コマンド

意味：

[コールCOM]処理コマンドの[パラメータ]特性や[値]特性で[オプション]カラムが「No」に設定されているパラメータに項目が設定されていない場合にこのエラーが発生します。


WP0202:Data type expected by COM operation is different from the one being sent

データのタイプが合っていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールCOM]処理コマンド／[パラメータ]テーブル

意味：

パラメータのデータ型が合っていない場合にこのエラーが発生します。


WP0206:Multiple selection mode is supported for string variables or vector variable only

[選択モード]特性の「マルチ」は、文字型項目かUnicode型かベクトル型項目でのみ有効です.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[リストボックス]コントロール

意味：

[リストボックス]コントロールの[選択モード]特性が「M=マルチ」に設定されており、[データ]特性に文字型かUnicode型、ベクトル型以外の項目が定義されている場合にこのエラーが発生します。


WP0207:Cached Table - Linked table cannot be cached on client when task is not in Query Mode

キャッシュテーブル - リンクが照会モードでない場合、リンクテーブルは、クライアント側でキャッシュできません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／[リンク]コマンド

意味：

ブラウザクライアントのリンクテーブルが常駐テーブルの場合（[動作環境]の[常駐テーブル読込]が「Yes」衣設定され、[データ]リポジトリでデータソースの[常駐]特性が「B=ブラウザ上で常駐」に設定されている状態を示します）、照会リンク以外の場合、このエラーが発生します。


WP0216:Number of parameters in handler are not equal to the number of parameters in event table

ロジックユニット内のパラメータ項目の数が[イベント]テーブル内のパラメータ数と合っていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[イベント]ロジックユニット

意味：

[ユーザイベント]テーブル内に定義されたイベントに設定されたパラメータの数と、このイベントを使用した[イベント]ロジックユニット内のパラメータ項目の数が合っていない場合に、このエラーが発生します。


WP0230:Expression set with a Handler\Function variable may be used only within the Handler\Function of the variable

別のロジックユニットで定義された項目が指定されています.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

別のロジックユニット内で定義されたデータ項目が使用されている場合にこのエラーが発生します。


WP0236:Preloading a table requires the table to be cached by position and data

[ビュー事前読込]特性を有効にするには、[キャッシュ範囲]特性を「位置とデータ」に設定する必要があります.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／タスク特性／[データ]タブ

意味：

[タスク特性]の[ビュー事前読込]特性が「Yes」に設定され、[キャッシュ範囲]特性が「P=位置とデータ」意外に設定されている場合にこのエラーが発生します。


WP0238:The Preload view setting of the task is irrelevant if the task is defined with no main source

メインソースが定義されていない場合、[ビュー事前読込]特性は無効になります.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／タスク特性／[データ]タブ

意味：

メインソースが定義されていないタスクの[タスク特性]の[ビュー事前読込]特性が「Yes」に設定されている場合にこのエラーが発生します。


WP0239:The selection program set for this control will not be activated by clicking on the control when it is set with Park on Click=No

[クリックでパーク]特性が「No」に設定された場合、コントロールをクリックしても選択プログラムは起動されません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[プッシュボタン]コントロール

意味：

[プッシュボタン]コントロールの[クリックでパーク]特性が「No」に設定されていて、[選択プログラム]特性にプログラムが設定されている場合にこのエラーが発生します。


WP0240:Color number can only be between 0 - number of colors

基本色番号は、1 - 登録番号 以外は指定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[テーブル]コントロール／[ハイライト行の色]特性

意味：

[テーブル]コントロールの[ハイライト行の色]特性の番号が「0」か、[基本色定義]テーブルに登録されている数より大きい値を指定している場合に発生します。


WP0254:Invalid Window Type. An SDI form can only be defined for Parallel Execution programs or Rich Client Forms

[ウィンドウタイプ]特性が正しくありません.「SDI」は、並行実行プログラムまたはリッチクライアントフォームでのみ指定できます.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[フォーム特性]／[ウィンドウタイプ]特性

意味：

[並行実行]特性がOFFになっているタスクのメインフォームの[ウィンドウタイプ]特性が「S=SDI」になっている場合に発生します。


WP0256:DB SQL WHERE clause is ignored in RC/BC tasks

DB SQL WHERE句は、リッチ/ブラウザクライアントのタスクでは無視されます.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[範囲i位置付]／DB SQL

意味：

リッチクライアントタスクやブラウザクライアントタスクにDB SQL Where句が定義されている場合にこのエラーが発生します。


WT0001:Open Table in Reindex Mode Must Be Exclusive

[オープン]特性が「再索引」のデータソースは、排他になるように設定してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／[メインソース特性]

[プログラム]リポジトリ／[データビュー]エディタ／[リンク]特性

意味：

[メインソース特性]や[リンク特性]の[オープン]特性が「R=再索引」に設定されていて、[共有]特性が「W=書出」や「R=読込」に設定されている場合に発生します。


WT0004:A range must exist for a Choice control

チョイスコントロールを使用するためには、[選択項目リスト]特性を指定してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エヂｈタ／チョイスコントロール／[選択項目リスト]特性

意味：

チョイスコントロールの[選択項目リスト]特性に値が設定されていない場合に発生します。


WT0006:Cannot Use NULL Default When the NULL is Not Allowed

NULLの使用が許可されていないため、デフォルト/NULLは使用できません

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[カラム]テーブル／[カラム]特性

[プログラム]リポジトリ／[データビュー]エディタ／[項目]特性／[項目]特性

意味：

[NULL値可]特性が、「No」に設定されていて、[NULLデフォルト]が「Yes」に設定されている場合にこのエラーが発生します。


WT0007:Column's Step Is Too Big for the Column's Range

項目のステップ値が大きすぎます

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[スライダ]コントロール

意味：

[スライダ]コントロールの[範囲]特性の値に対して[ステップ]特性の値が大きすぎる場合に発生します。


WT0010:Duplicate value in a range for a column with a Choice control

チョイスコントロールの[選択項目リスト]特性の指定に重複があります.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／チョイスコントロール／[選択項目リスト]特性

意味：

チョイスコントロールの[選択項目リスト]特性の値に、重複した値が設定されている場合に発生します。


WT0011:The default value is longer than the column's len

[デフォルト値]特性が列の長さより長くなっています.

設定 > チェックメッセージテーブル

発生場所：

[モデル]リポジトリ／[項目特性]

[データ]リポジトリ／[カラム]テーブル／[項目特性]

[プログラム]リポジトリ／[データビュー]エディタ／[項目特性]

意味：

[デフォルト値]特性に指定された値のデータ長が、[書式]特性で指定された長さより長い場合に発生します。


WT0012:The Null value is longer than the column's len

[NULL計算値]特性がカラム長より長くなっています.

設定 > チェックメッセージテーブル

発生場所：

[モデル]リポジトリ／[項目特性]

[データ]リポジトリ／[カラム]テーブル／[項目特性]

[プログラム]リポジトリ／[データビュー]エディタ／[項目特性]

意味：

[NULL計算値]特性に指定された値のデータ長が、[書式]特性で指定された長さより長い場合に発生します。


WT0013:Illegal range for type with Choice control

項目の[範囲]特性に、チョイスコントロールでは利用できない値が指定されています.

設定 > チェックメッセージテーブル

発生場所：

[モデル]リポジトリ／[項目特性]

[データ]リポジトリ／[カラム]テーブル／[項目特性]

[プログラム]リポジトリ／[データビュー]エディタ／[項目特性]

意味：

チョイスコントロールに設定された項目の[範囲]特性に、チョイスコントロールでは使用できない値（例：1-100）が指定された場合に発生します。


WT0014:Illegal range for column with Slider control

項目の[範囲]特性に、[スライダ]コントロールでは利用できない値が指定されています.

設定 > チェックメッセージテーブル

発生場所：

[モデル]リポジトリ／[項目特性]

[データ]リポジトリ／[カラム]テーブル／[項目特性]

[プログラム]リポジトリ／[データビュー]エディタ／[項目特性]

意味：

[スライダ]コントロールに設定された項目の[範囲]特性に、[スライダ]コントロールでは使用できない値（例：1,2,3,4,5）が指定された場合に発生します。


WT0015:Warning: Picture is bigger than maximum column value

書式が格納サイズより大きくなっています.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[カラム]テーブル／[サイズ]特性

意味：

[カラム特性]の[サイズ]特性に指定されたサイズより大きなデータ長で[書式]特性を指定した場合に発生します。


事前定義ロジック

設定 >

[事前定義ロジック]テーブルに表示される情報は、すべてのプロジェクトで利用できます。この情報は、ユーザ毎に管理されます。

ここに入力された内容は、各ユーザ毎にドキュメントフォルダ内のLocal Settings\Application Data\MSJ\eDeveloper10\PreferredEvents.xml にXML形式で保存されます。

タスク、レコード、項目、コントロール、およびグループの各ユニットタイプでは、定義可能なすべてのイベントタイプを指定することができます。

[ユニットタイプ]が「E=イベント」の場合、[イベントタイプ]にはコンボボックスで表示される「S=システム」、「I=内部」、および「U=ユーザ」しか選択できません。

[事前定義ロジック]テーブルに定義されたイベントは、[ロジック]コンテキストメニューに表示されます。

ユーザイベント

ユーザイベントは、プロジェクトのメインプログラムに定義されたユーザイベントを指定します。ズームして[イベント一覧]から選択したり、直接イベント名を入力することで定義できます。

ユーザイベントの名前はファイルに保存されるため、メインプログラムでイベント名が変更されても、ここの設定は変わりません。

また、（同じ名前で定義されているのであれば）1つのプロジェクトで選択されたイベントを、別のプロジェクトで使用することができます。

デフォルト値

事前定義イベントファイルが存在していない場合、プロジェクトを開くとすぐに以下のデフォルト値が追加されます。

# | ユニットタイプ | イベントタイプ | イベント名
1 | E=イベント | I=内部 | ズーム
2 | C=コントロール | V=検証 |
3 | C=コントロール | P=前 |
4 | C=コントロール | S=後 |
5 | V=項目 | C=変更 |


シークレット名

認証システム >
設定 >

シークレット名は、非認証ユーザに対し権利認証システムの実装情報を隠す必要がある場合に使用します。例えば、アプリケーションアクセスキーやユーザパスワード、サーバパスワード、[データベース特性]、データテーブルに対するアクセスキーなどに使用することができます。

[シークレット名]テーブルの構成や機能は[論理名]テーブルとほぼ同じですが、以下の点が異なります。

  • [シークレット名]テーブルへのアクセスは、SUPERVISORユーザと、SUPERVISORグループに登録されたユーザだけに限られます。

  • シークレット名は、[動作環境]ダイアログで指定されたセキュリティファイルに保存されます。このセキュリティファイルは、暗号化されます。サーバパスワードに対するシークレット名は、[サーバ]の設定ダイアログで設定されます。

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

シークレット名と論理名の両方が使われている場合、まず、[シークレット名]テーブルでシークレット名が解析され、その後、[論理名]テーブルで検索が行われます。

参照

論理名


ユーザグループ

認証システム >
設定 >

[ユーザグループ]テーブルには、各ユーザグループの名前と権利が一覧表示されます。このテーブルで、Supervisorはグループを宣言し、各グループの権利を定義します。

ユーザまたはユーザグループに権利を定義して割り当てる方法については、「グループの権利を定義する」および「ユーザにグループメンバシップを割り当てる」を参照してください。

参照

名前

権利


ユーザグループ 名前

名前

認証システム > ユーザグループ
設定 >

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

最大127文字が入力できます。


ユーザグループ 権利

権利

認証システム > ユーザグループ
設定 >

[権利]欄には、グループに割り当てられている権利キーの数が表示され、ここからズームすると[グループ権利]テーブルがオープンされます。権利キーは複数の権利に対応付けることが可能なため、キーの数がグループの権利の合計数より少ない場合もあります。

Supervisorは[権利]欄をダブルクリックして[グループ権利]を表示し、特定のグループに割り当てられている権利を確認することができます。

グループに割り当てられている一連のキーは、プロジェクトによって変動することはありません。しかし、キーに対応付けられている権利は、プロジェクトごとに異なる可能性があります。Supervisorが[ユーザグループ]テーブルの[権利]欄をダブルクリックした時に、最初に表示される権利一覧は、[アプリケーション一覧]の先頭のプロジェクト対するグループの権利です。そのプロジェクト名は、[グループ権利]テーブルの最上段に表示されます。グループの[権利]テーブルが表示されている時に、画面の右下の[プロジェクト]ボタンをクリックすると、別のプロジェクトに対するグループの権利を表示できます。

SUPERVISORグループ

Supervisorは、SUPERVISORグループにユーザを割り当てたり、追加することができます。SUPERVISORグループに所属するユーザは全て、そのプロジェクトに設定されている全てのSUPERVISORの権利を自動的に継承します。


ユーザグループ グループメンバシップを割り当てる

ユーザにグループメンバシップを割り当てる

認証システム > ユーザグループ
設定 >

ユーザにグループメンバシップを割り当てるには、次の手順に従います。

  1. SUPERVISORでログインします。

  2. [オプション]メニューから[設定/ユーザID]を選択し、対象のユーザを強調表示させます。

  3. [ユーザID]テーブルの[グループ]カラムから[グループ]テーブルにズームします。対象のグループを選択します。


ユーザグループ 権利を定義

グループの権利を定義する

認証システム > ユーザグループ
設定 >

グループの権利を定義するには、以下の手順を実行します。

  1. SUPERVISORとしてログインします。

  2. [オプション]メニューから[設定/ユーザグループ]を選択します。

  3. 行を作成します。

  4. [権利]カラムから[公開権利一覧]にズームし、権利を選択するか、または権利キーを直接入力します。


ユーザID

認証システム
設定 >

[ユーザID]テーブルは、個々のユーザにユーザID、名前、パスワード、権利、およびグループを割り当てます。[ユーザID]テーブルには、9,999のユーザを登録できます。

[ユーザID]テーブルへの限定的なアクセス権を所持するSUPERVISORは、[オプション]メニューの[設定]から[ユーザID]を選択して、このテーブルを編集することができます。ユーザIDの追加または削除は、開発時や実行時に行うことができます。

SUPERVISORは、[編集]メニューの[特性] (Alt+Enter)を選択して、[ユーザ特性]ダイアログにユーザに関する情報を入力することができます。

ただし、SUPERVISORは、ユーザのパスワードは見ることはできません。パスワードは、空白でない限り、アスタリスクの文字列として表示されます。SUPERVISORはユーザのパスワードは変更できますが、既存のパスワードを表示することはできません。パスワードを変更するには、このテーブルをダブルクリックしてパスワードボックスを表示し、パスワードを2度入力する必要があります。パスワードは入力中は表示されません。一方、SUPERVISOR以外のユーザは、[ユーザID]テーブルに入って、各自のパスワードを修正することができます。パスワードの変更は、[ユーザID]テーブルでSUPERVISOR以外のユーザに唯一許可されています。

権利を定義するには、次の3つの手順を実行します。

  • [権利]テーブルに権利を追加します。

  • [権利設定]ダイアログで、その権利を特定のMagicの処理に関連付けます。

  • 特定のユーザの[権利]テーブルで特定のユーザに権利を対応させるか、グループの[権利]テーブルで特定のグループに権利を対応させます。

権利の割り当て方法の詳細については、「ユーザに権利を割り当てる」を参照してください。

ユーザがMagicにログオンすると、[ログオン]ダイアログに入力された[ユーザID]および[パスワード]の文字列が、[ユーザID]テーブルのものと比較されます。環境設定でそのユーザにユニークなユーザIDとパスワードが設定されていても、アプリケーションごとに、そのユーザに異なるセキュリティスキーマが適用されている可能性があります。[ユーザID]テーブルに1つでも入力があれば、ユーザがデータまたはプログラムにアクセスしようとするたびに、Magicでセキュリティチェックが行われます。ユーザが実行権利のない操作を実行しようとして拒否された場合は、その結果に対するメッセージがメッセージ行に表示されます。

[権利]テーブルは、開発時のアプリケーション自体へのアクセスを制御します。プログラムについては、実行モード時のエンドユーザによるアクセスも制御されます。プログラム内で実行モード時のセキュリティを細かく制御するには、RightsおよびUser関数を使用します。これらの関数を使用すると、カスタムセキュリティシステムを作成して、タスク内の要素に対するアクセスの制御だけでなく、プログラムレベルでのアクセス制御も組み込むことができます。

注意：

Magicではセキュリティファイルに定義されているユーザを取得するために、MGUSRDMPユーティリティを提供しています。


ユーザID ユーザID

ユーザID

認証システム > ユーザID
設定 > ユーザID

ログオン時に、ユーザが[ログオン]ダイアログの[ユーザID]欄に入力した文字列と比較される英数字の文字列です。[環境設定]ダイアログの[パスワード入力]パラメータが「No」に設定されている場合は、[ログオン]ダイアログは自動表示されません。[ユーザID]欄は、プログラムでUser(0)関数を使用して参照できます。

最大127文字が入力できます。


ユーザID 名前

名前

認証システム > ユーザID
設定 > ユーザID

ユーザ名を指定します。この欄は、ログオン時にはチェックされません。SUPERVISORは、この値を使用してユーザを識別できます。また、この値は、プログラムでUser (1)関数を使用して照会できます。


ユーザID パスワード

パスワード

認証システム > ユーザID
設定 > ユーザID

ログオン時に、ユーザが[ログオン]ダイアログの[パスワード]欄に入力した文字列と比較される英数字の文字列です。[環境設定]ダイアログの[パスワード入力]が「No」に設定されている場合は、[ログオン]ウィンドウは自動表示されません。

ユーザIDとパスワードは、大文字小文字を区別しません。

F5キーを押下すると[パスワード]ダイアログボックスが表示されます。ここに新しいパスワードを入力することができます。


ユーザID 権利

権利

認証システム > ユーザID
設定 > ユーザID

[権利]欄には、ユーザに割り当てられている個々の権利キーの数が表示されると共に、ユーザの[権利]テーブルを開くためにダブルクリックする位置も示されます。権利キーは複数の権利に対応付けることが可能なため、キーの数がユーザの個々の権利の合計数より少ない場合もあります。

SUPERVISORは[権利]欄からユーザの[権利]テーブルを表示して、開発時や実行時にユーザに権利を追加することができます。

ユーザに個別の権利を必ずしも割り当てる必要はありません。


ユーザID グループ

グループ

認証システム > ユーザID
設定 > ユーザID

[グループ]欄には、そのユーザが所属するグループの数が表示されます。グループのメンバシップを定義するには、[グループ]欄をダブルクリックして[グループ]テーブルを表示し、そのユーザにグループを選択します。1人のユーザを複数のグループに割り当てることもできます。

グループに属するユーザは、そのグループの全ての権利を継承します。

ユーザがMagicにログオンすると、[ログオン]ダイアログに入力された[ユーザID]および[パスワード]の文字列が、[ユーザID]テーブルのものと比較されます。動作環境レベルでそのユーザにユニークなユーザIDとパスワードが設定されていても、プロジェクトごとに、そのユーザに異なるセキュリティスキーマが適用されている可能性があります。[ユーザID]テーブルに1つでも入力があれば、ユーザがデータまたはプログラムにアクセスしようとするたびに、Magicでセキュリティチェックが行われます。ユーザが実行権利のない操作を実行しようとすると、その結果に対するメッセージがメッセージ行に表示されます。

[権利設定]ダイアログボックスは、実行時のエンドユーザのアクセスを制限することができます。プログラム内で実行制御する方法として、Rights 関数やUser関数を使用することができます。これらの関数を使用して、プログラムレベルでアクセスを制御するようにすることで、タスク内の要素に対するアクセス制御を含むカスタムのセキュリティシステムを作成することができます。

F5 を押下すると[グループ一覧]が表示され、グループを割り当てることができます。


ユーザID 特性

ユーザ特性

認証システム > ユーザID
設定 > ユーザID

[ユーザID]テーブルが表示されたら、SUPERVISORは、[編集]メニューの[特性] (Alt+Enter)を選択して、[ユーザ特性]ダイアログにユーザに関する情報を入力することができます。入力された情報は、プログラムでUser (2)関数を使用して照会できます。


ユーザID ユーザに権利を割り当てる

ユーザに権利を割り当てる

認証システム > ユーザID
設定 > ユーザID

ユーザに権利を割り当てるには、次の手順で行ってください。

  1. SUPERVISORでログインします。

  2. [オプション]メニューから[設定/ユーザID]を選択します。

  3. [ユーザID]テーブルの[権利]カラムから[権利]テーブルにズームします。

  4. [権利]テーブルに行を作成します。

  5. 権利が「公開権利」である場合、[権利]テーブルから[公開権利一覧]にズームして権利を選択できます。

  6. 権利が「未公開」である場合、それに割り当てる権利のキーを入力します。また、この方法を使用して[公開権利]を割り当てることができます。


ログオン

設定 >

[ログオン]ダイアログでは、Magicユーザの[ユーザID]と[パスワード]を指定します。これらの値は、ユーザのアクセス権を決定するために、[ユーザID]テーブルでチェックされます。入力されたユーザIDとパスワードが[ユーザID]テーブルの項目と一致しない場合は、エラーメッセージが表示されて、ダイアログはオープンしたままになります。

[ユーザID]テーブルにユーザIDとパスワードがある場合は、プロジェクト内のユーザの権利が設定されます。ユーザIDとパスワードは、開発と実行の両方の機能で有効です。[ログオン]ダイアログからも、[Magic日付]欄にアクセスできます。特定のセッションに対して[Magic日付]欄を変更できます。[ログオン]ダイアログは、[動作環境]ダイアログ内の以下の設定によって制御されます。

  • パスワード入力

  • 日付入力

  • ログオン許可

参照

ユーザID

パスワード

日付


ログオン ユーザID

ユーザID

設定 > ログオン

ユーザの名前です。任意の英数字を入力できます。ユーザIDは、[ユーザID]テーブルに存在する必要があります。[動作環境]ダイアログで[パスワード入力]が[Yes]に設定されていると、[ログオン]ダイアログに[ユーザID]欄が表示されます。


ログオン パスワード

パスワード

設定 > ログオン

ユーザIDと組み合わされるパスワードです。任意の文字を入力できます。ユーザIDとパスワードの対は、[ユーザID]テーブルでも定義されている必要があります。[動作環境]ダイアログの[パスワード入力]を「Yes」に設定すると、[ログオン]ダイアログに[ユーザID]欄と[パスワード]欄が表示されます。

ユーザIDとパスワードのチェックでは、大文字と小文字が区別されます。[ユーザID]欄と[パスワード]欄が表示されたら、その入力が済むまで[ログオン]ダイアログは表示されたままになります。


ログオン 日付

日付

設定 > ログオン

「システム日付」の代替日付です。この日付は、MDate関数で照会できます。

この設定の入力は、[動作環境]ダイアログの[日付入力]設定によって制御されます。


MAGIC.INIファイル

設定 >

MAGIC.INIファイルには、Magicの全ての動作環境情報が格納されています。MAGIC.INIファイルは、Magicが起動するMagic作業フォルダ内に存在していなければなりません。[オプション]メニューの[設定]サブメニューから選択する各設定テーブルを使用することで、MAGIC.INIのパラメータを編集することができます。MAGIC.INIは、外部のテキストエディタで編集可能な自由形式のテキストファイルです。さらにMagicは、アプリケーション内からMAGIC.INIファイルにアクセスするためのINIPut およびINIGet関数も備えています。

MAGIC.INIファイルは複数のセクションに分割されます。それぞれのセクションは、関連設定のグループを含みます。Magicでは一部のMAGIC.INIファイルセクションを使用します。ユーザ情報が含まれているセクションもあります。MAGIC.INIファイルのMagicセクションは次のとおりです。

  • 動作環境 … [MAGIC_ENV] グローバルな環境パラメータ

  • サーバ … [MAGIC_SERVERS] インストール済みのアプリケーションで利用可能なリモートサーバの一覧

  • サービス … [MAGIC_SERVICES] サーバ別の利用可能なMagicアプリケーションの一覧

  • 通信ゲートウェイ … [MAGIC_COMMS] Magic通信ドライバの一覧

  • DBMS … [MAGIC_DBMS] MagicでサポートされているDBMSの一覧

  • データベース … [MAGIC_DATABASES] Magicでサポートされているデータベースの一覧

  • 論理名 … [MAGIC_LOGICAL_NAMES] 論理名の設定

  • プリンタ … [MAGIC_PRINTERS]プリンタ情報

  • ゲートウェイ … [MAGIC_GATEWAYS] Magicゲートウェイの一覧

  • 言語 … [MAGIC_LANGUAGE] サポートされている言語の一覧

  • Java … [MAGIC_JAVA]Javaの環境情報

  • ロギング … [MAGIC_LOGGING]ロギング情報

  • コンポーネント … [CRR_INTERFACES]

  • 開発ツール … [TOOLS_MENU]ユーザ定義開発メニューを定義します。

  • ビルダユーティリティ … [MAGIC_BUILDERS]

  • 特殊…[MAGIC_SPECIALS]

  • 日本語版環境…[dbMAGIC_ ENV]

  • 日本語印刷環境…[WINDOWSJ_PRINTER]印刷環境の設定

MAGIC.INIファイルのユーザ用のセクションには、そこ収められる情報であればどのような情報でも格納できます。代表的な用途としては次のようなものがあります。

  • 異なるファイルやプログラム内の最後の位置（例えば、最後に処理された顧客）などのアプリケーションがによって作成される中間値の格納。データベーステーブルの使用によるオーバーヘッドがありません。

  • アプリケーション内の異なるプログラムで共有できるグローバル変数への値の格納。

  • 特定のエンドユーザアプリケーション用のデータ（例えば総勘定元帳）の格納

MAGIC.INIファイルには、インストール固有の情報と、ユーザ固有の情報が記述されているUserセクションの両方が含まれます。したがって、Magicのマルチユーザインストールでは、各ユーザは別々のディレクトリにMAGIC.INIファイルのコピーを別々に置くようにしてください。

MAGIC.INIファイルにアクセスする時には、並行処理の制御はありません。マルチユーザインストールでMAGIC.INIファイルを複数のユーザが共有する場合は、読み取り専用で使用しなければなりません。複数のユーザが同時にMAGIC.INIファイルに書き込もうとすると、一方のユーザが他方のユーザの更新を上書きすることになります。

参照

MAGIC.INIファイルのフォーマット

特殊パラメータ


MAGIC.INIファイル フォーマット

MAGIC.INIファイルのフォーマット

設定 > MAGIC.INIファイル

MAGIC.INIはフリーフォーマットのテキストファイルです。パラメータはそれぞれ、別々の行に記述されます。パラメータは、複数行にまたがることができます。パラメータは、固定識別子（名前）と可変部（値）で構成されます。空行およびコメント行も含めることができます。ファイルのフォーマットは次のとおりです。

[SectionName]
ParameterName = ParameterValue
……
ParameterName = ParameterValue
[SectionName]
……
;This is a remark line

[SectionName]

セクションの先頭にはセクションヘッダ行が記述されます。

セクションヘッダは、大カッコで囲みます。セクションヘッダには、ユニークなわかりやすい名前を付けなければなりません。セクションヘッダ名にはブランクを入れられません。セクションのパラメータにアクセスする時に、セクションヘッダを使用します。異なるアプリケーションによって書き込まれたセクションの衝突をなくすため、長い名前を使用してください。セクションは、次のセクションヘッダまたはファイルの終わりで終了します。

ParameterName

セクションヘッダの後にある全てのパラメータはそのセクションに属します。全てのパラメータは1行または複数の行を占有します。ParameterNameは、MAGIC.INIのパラメータの固定部です。これを使用して、パラメータの可変部を識別し、アクセスします。パラメータ名は、セクション内ではユニークでなければなりませんが、セクションが異なる場合はその限りではありません。パラメータ名にはブランクを入れられません。

パラメータ区切文字。等号は、パラメータ名とその値を等号で区切ります。等号の前にある文字は全て（ただし、前に付いているブランクと後に付いているブランクを除く）パラメータ識別子の一部です。等号の後にある文字は全て（ただし、前に付いているブランクと後に付いているブランクを除く）パラメータの値の一部です。

ParameterName=ParameterValue

パラメータに使用できる任意の値。パラメータ値は、MagicセクションについてはMagicが決定し、アプリケーションセクションについては開発者が決定します。パラメータ値を複数の行にまたがらすには、行の末尾に+記号を付けます。すると、次の行が前の行の継続行として取り扱われます。+記号をパラメータの一部として明示的に指定するには、「\+」という組み合わせを使用します。

; Remark lines

「;」記号が行の先頭にあると、その行の末尾まで全て無視されます。


MAGIC.INI 特殊パラメータ

特殊パラメータ

設定 > MAGIC.INIファイル

[動作環境]のダイアログには含まれませんが、MAGIC.INI に記述することで有効になるパラメータがあります。

  • [MAGIC_ENV]セクション

  • [MAGIC_SPECIALS]セクション

  • [dbMAGIC_ENV]セクション

  • [WINDOWSJ_PRINTER]セクション……[WINDOWSJ_PRINTER]セクションについては、テキスト印刷ユーティリティの説明を参照してください。

  • [MAGIC_BUILDERS]セクション

  • [MAGIC_DEFAULTS]セクション


MAGIC.INI 特殊パラメータ MAGIC_ENV

[MAGIC_ENV]セクション

設定 > MAGIC.INIファイル > 特殊パラメータ

ApplicationPublicName

MDIClientEdge

GeneralErrorLog

Filters

DefaultXMLEncoding

MDIClientImageFile

MDIClientImageStyle


ApplicationPublicName

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_ENV

アプリケーション公開名

環境設定「ApplicationPublicName」は、MRBがプロジェクトを識別するため別のプロジェクトの名前を提供するものです。この設定には、最大30字の文字列が指定できます。

この設定が空白または、パラメータ自体が設定されていない場合、アプリケーションの公開名は、プロジェクトのファイル名（拡張子を除く。）となります。

例えば、APPNAME="ABC"として参照したい場合、[MAGIC_ENV]セクションに以下のように設定してください。

ApplicationPublicName=ABC

実行時にINIPut関数を使用して変更した場合、次のセッションから有効になります。


MDIClientEdge

MDIClientEdge （デフォルト：Y:）

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_ENV

MDIクライアントの縁の表示指定

通常は、MDI ウィンドウのエッジ（MDI のメインウィンドウの内側の境界）は立体表示されており、MDI 表示に合わせるように表示されたり、フォームの境界に接した状態で立体表示のコントロールが配置された場合、特殊な立体効果で表示されます。このような表示を無効にする必要が合う場合に指定します。

この設定は、MAGIC.INI ファイルの[MAGIC_ENV]セクションで以下のように指定します。

MDIClientEdge=Y（デフォルト）/N

  • Y……表示効果を有効にします。

  • N……表示効果を無効にします。


General Error Log

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_ENV

ログファイル名の指定

GeneralErrorLogパラメータは、エラーログのファイル名とパスを指定します。

この設定は、それをMagic.iniファイルの[MAGIC_ENV]セクションに手動で設定することによってのみ有効になります（動作環境ダイアログボックスからは指定できません）。

例えば、エラーログファイル名とパスを定義するために、以下のように入力します。

GeneralErrorLog=C:\MyLogs\MGError.log

この指定が空白の場合、エラーログファイルは作成されません。


Filters

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_ENV

フィルタ用キーワードの割合指定

リクエストに付加されたキーワードを基に処理を按分する割合を指定します。

例：Filters = HTTP:10% | SOAP:30% | RMC:20%


Default XML Encoding

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_ENV

エンコード指定

XMLエンコード方法のデフォルト値を指定します。デフォルトは、UTF-8です。

無効な値が指定された場合は、結果が保証されません。

例：DefaultXMLEncoding = UTF-8


MDIClientImageFile

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_ENV

MDIクライアントエリアに表示するイメージファイル

このパラメータは、MDIクライアントエリアに表示するイメージを指定するものです。

この設定は、Magic.iniファイルの[MAGIC_ENV]セクションでのみ設定できます（動作環境ダイアログボックスでは設定できません）。

パラメータに設定する値は、表示するイメージファイルのパスとファイル名を含む文字列値です。例えば、「c:\hello.gif」を表示したい場合、[MAGIC_ENV]セクションに以下のように設定します。

MDIClientImageFile=c:\hello.gif

実行時に（INIPut関数を使用して）このパラメータを変更した場合、変更内容は即時に反映されます。


MDIClientImageStyle

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_ENV

MDIクライアントに表示させるイメージの表示方法

このパラメータは、MDIクライアントに表示させるイメージの表示方法を指定します。MDIClientImageFile設定を使用しているMDIクライアントイメージに対して有効です。

この設定は、Magic.iniファイルの[MAGIC_ENV]セクションでのみ設定できます（動作環境ダイアログボックスでは設定できません）。

設定できる値と、それによって表示スタイルは以下のようになります。

  • TL …… 左上

  • TC …… 上段でセンタリング

  • TR …… 右上

  • ML …… 中段の左側

  • MC …… 中段でセンタリング

  • MR …… 中段の右側

  • BL …… 左下

  • BC …… 下段でセンタリング

  • BR …… 右下

  • TI …… タイル

  • FL …… フィル（MDIフォームいっぱいに収まるように表示）

例：タイルスタイルでイメージを表示する場合、[MAGIC_ENV]セクションに以下のように設定します。

MDIClientImageStyle=TI

実行時に（INIPut関数を使用して）このパラメータを変更した場合、変更内容は即時に反映されます。


Special Settings

[MAGIC_SPECIALS]セクション

設定 > MAGIC.INIファイル > 特殊パラメータ

以下のトピックは、MAGIC.INIファイルの[MAGIC_SPECIALS]セクションの内容を機能別に分類したものです。

入出力とWeb関連の設定

エンジンフローとオンラインタスク関連の設定

開発環境に関連する設定

データ管理に関連する設定

その他の設定


Input/Output and Web-Related Special Settings

入出力とWeb関連の設定

入出力とWeb関連の特殊なパラメータには以下のものがあります。

ClosePrintedTablesInSubtasks

CompressBrowserXML

MergeFlushSize

MergeTrim

SecureBrowserClient

SpecialCloseBCMainWindowOnClosingTask


ClosePrintedTablesInSubtasks

ClosePrintedTablesInSubtasks （デフォルト：Y）

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS

フォーム出力時の子タスクの処理の設定

親タスク上の[入出力ファイル]テーブルを使用して子タスクでテーブル印刷をする場合、子タスクを終了した時点で、そのテーブルをクローズするか否かを指定します。

  • Yes……テーブルをクローズします。次回子タスクが呼ばれた時、別テーブルとして印刷出力されます。

  • No……テーブルをクローズしません。全て同じテーブルに出力されます。

設定例

ClosePrintedTablesInSubtasks=N


CompressBrowserXML

CompressBrowserXML （デフォルト：A）

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS

ブラウザクライアント/リッチクライアントデータの圧縮指定

ブラウザクライアント/リッチクライアントによって処理されるXMLデータを圧縮するかどうかを指定できます。ただし、クライアント（ブラウザ）側でデータを展開する必要があるため、タスクを起動した後に実行される初期化処理が長くなる場合があります。

  • Y……XMLデータを常に圧縮します。

  • N……XMLデータは圧縮されません。

  • A……接続が遅いか否かを判断して自動的に決定します。接続が遅くかつ、データのサイズが3KB 以上の場合、XMLは圧縮されます。接続の速度は各エンドユーザの最初のリクエストで評価されます。

設定例

CompressBrowserXML=Y

注意：

この機能を有効にするには、XML 暗号化の設定を行う必要があります。


MergeFlushSize

MergeFlushSize （デフォルト：51200）

このフラグは、マージ出力時のメモリバッファサイズ（バイト）を定義できます。

利用可能なメモリリソースの範囲内で最も最適なパフォーマンスになるように定義してください。

設定例

MergeFlushSize=51200


MergeTrim

MergeTrim （デフォルト：N）

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS

マージされたデータのトリミング指定

マージされたデータの右側の空白を削除するかどうかを指定します。

  • Y……マージ出力時に文字列の右側の空白が削除されます。

  • N……空白の削除は行われません。

設定例

MergeTrim=Y


SecureBrowserClient

SecureBrowserClient （デフォルト：N）

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS

ブラウザクライアント/リッチクライアントデータの暗号化

ブラウザクライアント／リッチクライアントによって処理されるXMLデータを暗号化するかどうかを指定します。

  • Y……XML データが暗号化されます。これにより、タスクロジックやデータの内容をブラウザのソース表示やパケットモニタ等で閲覧することができなくなります。

  • N……暗号化処理は行われません。

設定例

SecureBrowserClient =Y


SpecialCloseBCMainWindowOnClosingTask

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS

ハンドラ内で呼び出したプログラムを終了し、プログラムの[タスク後]でCallJS(‘window.close()’)を使用する際に、Magicエンジンが正常に終了せず、ウィンドウが開き続ける場合があります。

このフラグをYに設定することで、BCモジュールに、タスク終了時にメインウィンドウやフレームに対してwindow.close()を実行させるように指定します。

設定例

SpecialCloseBCMainWindowOnClosingTask=Y


Engine Flow and Online Task-Related Settings

エンジンフローとオンラインタスク関連の設定

エンジンフローとオンラインタスク関連の特殊パラメータには、以下のものがあります。

Special3DStyle

SpecialAsyncCOMEvents

SpecialBatchOptions

SpecialCancelBehaviourInCreateMode

SpecialCenteredFloatingWindow

SpecialEditIncreasedHeight

SpecialExitControlOnClick

SpecialExitNoParkable

SpecialModifiedDecimalSeparator

SpecialNullTerminateBlobs

SpecialOldZorder

SpecialPaintFormInCreate

SpecialSkipInMultiEdit


Special3DStyle

Special3DStyle （デフォルト：N）

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS

立体スタイルの色表示を指定

[スタイル]特性が、「3=凸立体」に指定されているコントロールの背景色を[色]特性で指定することができます。

  • Y……背景色が有効になります。

  • N……背景色は無効になります。

この設定は、以下のコントロールの表示に反映されます。

  • スタティック（テキスト、四角形、丸、グループ）

  • チェックボックス

  • ラジオボタン

  • タブ

注意：

「W=Windows立体」が指定されたコントロールでは無効です。

設定例

Special3DStyle=Y


SpecialAsyncCOMEvents

SpecialAsyncCOMEvents （デフォルト：N）

デフォルトでは、COMイベントは全て同期モードで処理されます。このフラグによってCOMイベントの動作方法を指定することができます。

  • Y……COMイベントが非同期で処理されます。

  • N……同期モードで処理されます。

設定例

SpecialAsyncCOMEvents=Y


SpecialBatchOptions

SpecialBatchOptions （デフォルト：No）

このフラグは、下位互換を維持するためのものです。

SP4bから[タスク特性]の[オプションメニュー]特性が「Yes」に設定されているバッチタスクが実行した場合、[実行確認]ダイアログが表示されている状態で、[オプション]メニューにアクセスすることができなくなりました。これは、並行実行する際にクラッシュする問題を回避するための処置です。

このフラグは、上記の動作を旧バージョンに合わせるための互換フラグです。

  • No …… [オプション]メニューにアクセスできません（[実行確認]ダイアログはモーダルで表示されます。）。

  • Yes …… [オプション]メニューにアクセスできます(旧バージョンと同じ動作になります)。

設定例

SpecialBatchOptions=Y

注意：

ダイアログボックスの表示方式が異なるため、「No」に設定された場合、従来と表示イメージが異なります。


SpecialCancelBehaviourInCreateMode

SpecialCancelBehaviourInCreateMode （デフォルト：N）

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS

Ver.10.1JSP4aでは、メインテーブルを設定しない登録モードのオンラインプログラムを実行し、[キャンセル]イベントを発行すると修正モードに変更するようになっています。この動作を、Ver.10.1JSP2以前と同じように動作させるための互換フラグです。

  • Yes……登録モードでキャンセルすると修正モードになります。

  • No……登録モードでキャンセルしても登録モードのままになります。

設定例

SpecialCancelBehaviourInCreateMode=Y


SpecialCenteredFloatingWindow

SpecialCenteredFloatingWindow （デフォルト：N）

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS

フローティングウィンドウの表示位置

「フローティングウィンドウ」が「Yes」のGUI形式フォームの表示位置を制御します。

  • Yes……フローティングウィンドウはMDIの中央に表示されます。

  • No……フローティングウィンドウはフォーム特性において設定された位置に表示されます。

設定例

SpecialCenteredFloatingWindow=Y


SpecialEditIncreasedHeight

SpecialEditIncreasedHeight （デフォルト：N）

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS

サイズ調整の動作を指定

サイズ調整を実行した場合の[エディット]コントロールのトの高さを1ピクセル大きくするかどうかを指定します。これは、フォントサイズによって文字の下辺が表示されなくなる問題に対応したものです。

  • Yes …… 高さが1ピクセル大きくなります。

  • No …… SP2以前と同じように表示されます。

設定例

SpecialEditIncreasedHeight=Y


SpecialExitControlOnClick

SpecialExitControlOnClick （デフォルト：N）

Ver9.4SP4以前は、フォームの背景や(項目が定義されていないため)パーク不可のコントロールをクリックすると、コントロールを一旦抜け、現在のコントロールに再度入り、全てのコントロールサイクル （変更、検証、前、および後）を実行します。Ver10では、この動作は変更され、コントロールの編集モードが終了し[項目変更]ロジックユニットのみ実行するように変更されています。

このフラグを「Y」に設定することで、Ver9.4以前と同じように動作します。

  • Yes …… コントロールサイクルの全てのロジックユニットが実行されます。

  • No …… [項目変更]ロジックユニットのみ実行されます。

設定例

SpecialExitControlOnClick =Y


SpecialExitNoParkable

SpecialExitNoParkable （デフォルト：N）

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS

オンラインフォーム上にパーク可能なコントロールが存在しない場合の動作

Magic eDeveloper V10 SP2 から、オンラインタスクのメインフォームにパーク可能なコントロールが存在していなくても実行できるようになりました。この機能を無効にする（SP1以前の動作）場合に、本フラグを指定してください。

  • Yes……パーク可能なコントロールが存在しない場合は、タスクが終了しエラーが表示されます。

  • No……パーク可能なコントロールが存在しない場合でも、タスクは正常に動作します。

設定例

SpecialExitNoParkable=Y


SpecialModifiedDecimalSeparator

SpecialModifiedDecimalSeparator （デフォルト：N）

このフラグがYに設定されると、[動作環境数]ダイアログの[小数点]の指定内容に関わらず、ドット(.)キーが押されると小数点として扱われます。

注意：

表示される小数点は、動作環境で設定された文字になります。


SpecialNullTerminateBlobs

SpecialNullTerminateBlobs （デフォルト：Y）

このフラグは、文字データによってBLOB項目を更新する処理の扱い方を指定します。

  • Y …… 文字データの最後に空白文字を追加します。

  • N …… 空白文字は追加されません。

設定例

SpecialNullTerminateBlobs =Y


SpecialOldZorder

SpecialOldZorder （デフォルト：N）

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS

フォーム上のZオーダの管理方法を指定

Magic eDeveloper V10 SP2 から、OSのGUIサブシステムでＺオーダを管理するようになりました。このため、ファントムタスクが前面に表示されなくなる場合があります。この機能を無効にする場合に、本フラグを指定してください。

  • Yes……Zオーダの管理を、旧バージョンと同じように行います。

  • No……Zオーダの管理は、OS側で行われます。

設定例

SpecialOldZorder=Y

注意：

このフラグが「N」の場合、[タスク特性]の[前面表示]特性が表示されません。


SpecialPaintFormInCreate

SpecialPaintFormInCreate （デフォルト：N）

「登録」モードのタスクが終了した後もウィンドウを開いた状態の場合、各項目の値をデフォルト値や[代入]特性によって指定された式により評価するかどうかを指定します。

  • Yes……全ての項目の[代入]特性とデフォルト値が評価されます。[コントロール特性]に設定された全ての式も同様に評価されます。

  • No…… [代入]特性やデフォルト値は評価されません。

設定例

SpecialPaintFormInCreate=Y

注意：

  • [コール]処理コマンドで子タスクを呼び出す場合のみ関係します。[サブフォーム]コントロールで子タスクを表示する場合は、県警ありません。

  • [サブフォーム]コントロールで子タスクを表示する場合は、関係ありません。


SpecialSkipInMultiEdit

SpecialSkipInMultiEdit （デフォルト：N）

通常は、[テーブル]コントロール内の複数行の[エディット]コントロール上にパークしている場合、上/下のカーソルキーはテーブル行ではなく[エディット]コントロール内の行をスクロールします。このフラグは、この動作を制御するものです。

  • Y …… 複数行の[エディット]コントロール上にパークしている場合も、テーブル行をスクロールすることができます。

  • N …… [エディット]コントロール内の行スクロールのみ動作します。

設定例

Special3DStyle=Y


Studio-Related Special Settings

開発環境に関連する設定

開発環境に関する特殊パラメータには以下のものがあります。

SpecialAnsiExpression

SpecialCVSLogin

SpecialDefaultTransactionMode

SpecialFlat2DCombo

SpecialRMCompatibleLogic

SpecialSetParamRemoveEmptyStrings


SpecialAnsiExpression

SpecialAnsiExpression （デフォルト：N）

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS

BLOB（バイナリ）の格納方法の指定

バイナリタイプのBLOB型項目の格納データをSP1と同じように格納する場合に使用します。

SP2では、エンコードが不明な文字データはUnicodeで格納されるため、MID関数などを使用した場合の文字の位置や文字数の扱いがShift_JISの場合と異なります。このような場合は、カラム特性の内容特性を「Ansi」に設定するか、このフラグを「Yes」に設定してください。

  • Yes……SP1と同じ動作になります。

  • No……SP2以降の動作になります。

設定例

SpecialAnsiExpression=N


SpecialCVSLogin

SpecialCVSLogin （デフォルト：N）

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS

CVSサーバへのログイン方式の指定

CVSサーバへのログインする場合のユーザIDを、任意に指定する必要がある場合に使用します。

  • Yes……CVSへのログインダイアログでユーザIDが指定できます。

  • No……CVSへのログインは、OSにログインしているユーザIDで行われます。

設定例

SpecialCVSLogin=Y

注意：

  • CVSサーバに登録されていないユーザIDを指定した場合、ログインは失敗します。

  • 異なるユーザが同じ作動フォルダーで開発するような設定にはしないようにしてください。ユーザ毎に個別の作業フォルダを持つようにしてください。


SpecialDefaultTransactionMode

SpecialDefaultTransactionMode （デフォルト：D）

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS

デフォルトのトランザクションモードの指定

オンラインタスクのデフォルトのトランザクションモードを指定します。

  • D …… 「遅延」がデフォルトになります。

  • P …… 「物理」がデフォルトになります。

設定例

SpecialDefaultTransactionMode=P

注意：

オンラインモードのルートタスクでのみ有効です。バッチタスクやブラウザクライアントタスク、サブタスクでは関係しません。


SpecialFlat2DCombo

SpecialFlat2DCombo （デフォルト：N）

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS

開発用ダイアログボックスのコンボボックスの表示の指定

開発用ダイアログのコンボボックスを平面表示させるかどうかを指定します。アプリケーションの表示には影響しません。

  • Y……この機能が有効になります。

  • N……この機能は無効になります。

設定例

SpecialFlat2DCombo=Y


SpecialRMCompatibleLogic

SpecialRMCompatibleLogic （デフォルト：N）

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS

[RM互換]ロジックユニットの有効指定

[RM互換]ロジックユニットを新規作成できるかどうかを指定します。

[RM互換]ロジックユニットでは、[データビュー]エディタに入力されたデータビュー項目が全て表示され、データビュー定義の間にロジックを定義させることができるようになります。ここでは、データビューの定義はできません。

  • Yes……新規作成にタスクで[RM互換]ロジックユニットが定義できるようになります。

  • No……[RM互換]ロジックユニットは、V9Plusから移行した場合のみ有効になります。

設定例

SpecialRMCompatibleLogic=Y


SpecialSetParamRemoveEmptyStrings

SpecialSetParamRemoveEmptyStrings （デフォルト：Y）

このフラグは、SetParam関数の処理を制御します。

このフラグを「N」に設定すると、SetParam関数で空白値を指定しても、現在のコンテキスト内でグローバル変数を削除しなくなります（GetParame関数でこのパラメータの値を取得しても、NULLは返りません）。

  • Yes……空白値を指定するとグローバル変数が削除されます。

  • No……空白値を指定してもグローバル変数は削除されません。

設定例

SpecialSetParamRemoveEmptyStrings=N


Data Management-Related Special Settings

データ管理に関連する設定

データ管理に関する特殊パラメータには、以下のものがあります。

RtfBufferSize

SpecialNoCheckIndexInDeferred

XXLNumericSize


RtfBufferSize

RtfBufferSize （デフォルト：OSに依存）

実行時に[リッチエディット]コントロールに入力できるデータサイズの最大値(KByte)を指定できます。

新しいウィンドウが表示される（つまり[タスク前]の前で）度に、Magic.iniの設定値が読み込まれます。これは、タスクが起動される前に（上位タスクで）INIPut関数を使用することで、各RTFのサイズを設定できることを意味しています。タスク内でMagic.iniの設定を変更しても、すでに作成されていた[リッチエディット]コントロール内の内容には影響しません。

また、File2Blob関数によって読み込む場合も影響しません。

設定例

RtfBufferSize=1

入力可能なデータは、1Kbyte(実際は、約1.3KByte程度)に制限されます。


SpecialNoCheckIndexInDeferred

SpecialNoCheckIndexInDeferred （デフォルト：N）

遅延トランザクションモードでインデックスチェック機能を無効にする必要がある場合に指定します。遅延トランザクションモードで重複レコードのエラーを出したくない場合に使用してください。

  • Y……遅延トランザクションモードでインデックスチェック機能が無効になります。

  • N……インデックスチェック機能は有効です。

設定例

SpecialNoCheckIndexInDeferred=Y


XXLNumericSize

XXLNumericSize （デフォルト：N）

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS

数値項目の桁数の上限指定

数値項目が扱うことのできる桁数の上限を指定します。

  • Yes……19 桁～ 38 桁までの数値項目を扱う場合、に「Yes」設定します。ただし、この設定を行うとパフォーマンスに影響がでる場合があります。

  • No……数値項目は18 桁までです。

設定例

XXLNumericSize=Y


Miscellaneous_Settings

その他の設定

その他の特殊パラメータには、以下のものがあります。

ExceptionMessageBoxDisplay

SpecialEventQMaxInterval

SpecialEventQSizeLimit

SpecialLicenseLog

SpecialLicenseServerInterval

SpecialLockVersion

SpecialNoSplash

SpecialV9BlobInVectorCompatible


ExceptionMessageBoxDisplay

ExceptionMessageBoxDisplay （デフォルト：N）

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS

バックグラウンドモード時のエラーメッセージの扱いを設定

マルチスレッドのバックグラウンドモードで実行中にエラーが発生した場合の動作を指定します。

  • Yes……エラーのメッセージボックスが表示され、エンジンは終了します。

  • No……エラーが発生したスレッドが終了し、エンジンは実行し続けます。

設定例

ExceptionMessageBoxDisplay=Y

注意：

FormUnit，Force2DText などの旧バージョンで使用していたパラメータは、サポートされなくなりました。


SpecialEventQMaxInterval

SpecialEventQMaxInterval （デフォルト：0）

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS

イベントキュー内の空き領域を再確認する前の待ち時間（ミリ秒）を指定します。

イベントキューのサイズが、SpecialEventQSizeLimitフラグによって制限されている場合に有効です。

設定例

SpecialEventQMaxInterval=60


SpecialEventQSizeLimit

SpecialEventQSizeLimit （デフォルト：0）

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS

実行先コンテキストを使用して[イベント実行]処理コマンドの実行させる場合の動作を制御します。

このフラグは、イベントをコンテキストに送るために使用されるイベントキューの最大サイズを指定します。キューのサイズがこのフラグで指定された値と等しい場合、キュー内に空きができるまでキューの送信が待たされます。

フラグが0に設定された場合、キューの最大長は仮想記憶のサイズによって制限されます。

設定例

SpecialEventQSizeLimit=60

参照

SpecialEventQMaxInterval


SpecialLicenseLog

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS

このフラグは、ライセンスファイルを指定している場合にのみ有効です。ライセンスサーバを指定している場合には、該当しません

ライセンスのブロードキャスト機能に対して作成されるログファイルを指定します。ログファイル名が指定されない場合は、ログは作成されません。

設定例

SpecialLicenseLog=LogFileName.txt


SpecialLicenseServerInterval

SpecialLicenseServerInterval （デフォルト：1）

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS

このフラグはライセンスサーバのチェック間隔を指定します。

実際の間隔は、以下の通りです。

バックグラウンドエンジンの場合

一律 6分後に、エンジンが終了します。

オンラインエンジンの場合

最初は指定された値×3(秒)[最低値は、40秒]、その後、指定された秒数毎にチェックされ、4回目にエンジンが終了します。


SpecialLockVersion

SpecialLockVersion （デフォルト：5）

Magicアプリケーションをロックできるユーザ数を決めます。この指定を行う場合、全ての端末において同一の設定をしてください。

  • 5……256ユーザがアプリケーションをロックできます。

  • 8……拡張として1024ユーザがアプリケーションをロックできます。

設定例

SpecialLockVersion=8


SpecialNoSplash

SpecialNoSplash （デフォルト：N）

このフラグは、Magic Studio起動時のスプラッシュスクリーンやMagic Clientのロゴイメージの表示を制御するために使用します。

  • Y …… スプラッシュスクリーンが表示されなくなります。

  • N ……Magic起動時にスプラッシュスクリーンが表示されます。

設定例

SpecialNoSplash=Y


SpecialV9BlobInVectorCompatible

SpecialV9BlobInVectorCompatible （デフォルト：N）

設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS

ベクトル形式のBLOB項目の扱いを指定

Magic eDeveloper V10 SP2 から、ベクトルデータ内のBLOBのフォーマットが変更されました。このため、旧バージョンで作成されたデータとの互換性を維持する場合に、本フラグを指定してください。

  • Yes……旧フォーマットで処理されます。

  • No……新フォーマットで処理されます。

設定例

SpecialV9BlobInVectorCompatible=Y


MAGIC.INI 特殊パラメータ dbMAGIC_ENV

[dbMAGIC_ENV]セクション

設定 > MAGIC.INIファイル > 特殊パラメータ

MAGIC.INIファイルの[MAGIC_SPECIALS]セクションに、日本語版でのみサポートされている環境設定用のフラグがあります。

As400Set

EnableRefreshAction

LocateProgramList

NoDocumentName

PrecedeProgramList

PrintImage

PrintLine

ShowComponentError

ShowItemSymbolSelect

WriteCheckerLog

TripletNonAsciiUrl

ZoomFix

DisableTransparent

TrimParamDSQL

VCGetUnit

PrintTextByteMode


As400Set

AS400Set （デフォルト：Y）

設定 > MAGIC.INIファイル > 特殊パラメータ > dbMAGIC_ENV

System i用の文字型書式の機能拡張

System i(AS/400）のDBCS対応のために、Magicの文字型書式の「位置指示記号」をスイッチを指定することにより、機能拡張します。

DDSフィールド | 位置指示記号 | 制限事項
DBCS 専用フィールド（J） | J | 全角のみ入力可
DBCS 混用フィールド（O） | X | 全角、半角の混在入力可
DBCS 択一フィールド（E） | T | 全て全角か、全て半角で入力可
DBCS 図形フィールド（G） | G | 全角のみ入力可。シフトコード無し
SBCS （A） | S | 半角のみ入力可

注意：

  • これらの書式は、AS/400（DB2/400)以外でも使用することが可能です。この場合、G は J と同一の動作になります。

  • Magic位置指示記号の（J、T、G）は、必ず２文字単位で記述します。

  • 追加された位置指示記号と、Magic位置指示記号文字（J, X, T, G, S)は混在して記述することができません。例．JJJJXXXXなど

  • 追加された位置指示記号（J、T、G、S）は、U、L、# を使用できません。

  • このフラグがNの場合、この機能は無効化されます。

設定例

As400Set=N


EnableRefreshAction

EnableRefreshAction （デフォルト：Y）

設定 > MAGIC.INIファイル > 特殊パラメータ > dbMAGIC_ENV

表示のリフレッシュ動作の指定

登録モード時における[画面再表示] または[ビュー再表示]イベントの動作をVer.8.2K4より前のバージョンと互換性を維持する場合に使用します。

  • Y……登録モード時に[画面再表示] または[「ビュー再表示]イベントが有効になります。（Ver.8.2K4 以前と同じ動作です。）

  • N……登録モード時に[画面再表示] または[「ビュー再表示]イベントが無効になります。

設定例

EnableRefreshAction=N


LocateProgramList

LocateProgramList （デフォルト：N）

設定 > MAGIC.INIファイル > 特殊パラメータ > dbMAGIC_ENV

プログラム一覧の動作制御

[プログラム一覧]（[コールプログラム]処理コマンドでズームした時等）の操作性を向上させるため、 コンボボックス（全て、同一CTL、コンポーネント）を切り替えた時に、カーソルを常に 先頭行にするのではなく、直前までカーソルのあったプログラムに位置付します。

  • Y……この機能を有効にします。

  • N……無効です。

設定例

LocateProgramList=Y


NoDocumentName

NoDocumentName （デフォルト：N）

設定 > MAGIC.INIファイル > 特殊パラメータ > dbMAGIC_ENV

印刷訴求メント名の制御

GUI形式印刷を行った場合、印刷キューに追加されるドキュメント名は、通常入出力ファイルの「名前」欄の名称の前に「Magic -」が付加されます。これを付加するかどうかを指定します。

  • Y……ドキュメント名に「Magic -」が付加されません。

  • N……「Magic -」が付加されます。

設定例

NoDocumentName=Y


PrecedeProgramList

PrecedeProgramList （デフォルト：N）

設定 > MAGIC.INIファイル > 特殊パラメータ > dbMAGIC_ENV

プログラム一覧の動作制御

プログラム一覧の操作性を向上させるため、「コンポーネント名.辞書名」の順ではなく、「辞書名@コンポーネント名」の順で表示します。

  • Y……この機能を有効にします。

  • N……無効です。

設定例

PrecedeProgramList=Y


PrintImage

PrintImage （デフォルト：N）

設定 > MAGIC.INIファイル > 特殊パラメータ > dbMAGIC_ENV

イメージ印刷の劣化防止

カラーのイメージを印刷した場合に、プリンタの機種やドライバによって印刷結果が劣化する場合があります。この問題をよ回避するためのフラグです。

  • Y……この機能を有効にします。

  • N……無効（今までと同じ）です。

設定例

PrintImage=Y


PrintLine

PrintLine （デフォルト：S）

設定 > MAGIC.INIファイル > 特殊パラメータ > dbMAGIC_ENV

空白行の印刷制御

「ページ当たりのレコード件数」が指定されている場合、レコードが終了した時点で各コントロールの印字を終了させます。印字を終了させない場合、レコードが終了しても、レコード件数分コントロールを印字します。

  • Y……[ライン]コントロールと[スタティック]コントロール両者を終了させます。

  • N……[ライン]コントロールと[スタティック]コントロール両者とも終了させません。

  • L……[ライン]コントロールのみ終了させます。

  • S……[スタティック]コントロールのみ終了させます。

設定例

PrintLine=Y


ShowComponentError

ShowComponentError （デフォルト：N）

設定 > MAGIC.INIファイル > 特殊パラメータ > dbMAGIC_ENV

コンポーネントエラーの動作制御

コンポーネントの読込に失敗した場合にエラーメッセージを表示するかどうかを指定します。

  • Y……コンポーネントの読込に失敗した場合にエラーメッセージを表示します。

  • N……（デフォルト）コンポーネントの読込に失敗してもエラーメッセージを表示しません。

設定例

ShowComponentError=Y


ShowItemSymbolSelect

ShowItemSymbolSelect （デフォルト：N）

設定 > MAGIC.INIファイル > 特殊パラメータ > dbMAGIC_ENV

[データビュー]エディタでのシンボル名表示制御

[データビュー]エディタで、項目名と一緒にシンボル名 (A、 B、...) を表示させます。

  • Y……この機能を有効にします。

  • N……無効です。

設定例

ShowItemSymbolSelect=Y


WriteCheckerLog

WriteCheckerLog （デフォルト：N）

設定 > MAGIC.INIファイル > 特殊パラメータ > dbMAGIC_ENV

構文チェックの結果出力制御

構文チェックユーティリティ（F8キー）の結果をファイルに出力します。ファイルはMagicの作業フォールダ上に「mgchecker.log」という名前で作成されます。

  • Y……この機能を有効にします。

  • N……無効です。

設定例

WriteCheckerLog=Y


TripletNonAsciiUrl

TripletNonAsciiUrl （デフォルト：N）

設定 > MAGIC.INIファイル > 特殊パラメータ > dbMAGIC_ENV

URLのASCII以外の文字変換制御

URLを表す文字列にASCIIコード以外の文字が設定されている場合、そのコードを%##（##は 16進コード）という形式に変換するかどうかを指定します。

  • Y……コードを%##（##は 16進コード）という形式に変換します。このコードはシフトJISとなります。

  • N……URLを表す文字列の変換は行いません。

設定例

TripletNonAsciiUrl=Y


ZoomFix

ZoomFix （デフォルト：Y）

設定 > MAGIC.INIファイル > 特殊パラメータ > dbMAGIC_ENV

タスク終了時の動作制御

これは、Ver7.1での動作変更に対する互換性維持のためのフラグです。タスクが以下のような設定の場合に関係します。

  • [タスク終了条件]特性に終了フラグ(変数)を設定

  • [チェック時期]特性に「I=即時」を設定

  • RM互換ロジック：[項目更新]処理コマンド（終了フラグに'TRUE'LOG設定）を、フローモード「A:後置き」又は「B:前置き」にて設定。(「中止」は、YでもNでも同じ結果。)

ZoomFix の指定により以下のように動作します。

  • N ……[レコード後]を通過し、レコードに対する修正も書き込まれます。

  • Y ……[レコード後]も通過せず、レコード書き込みも行われず、すぐに終了するようになります。

注意：

V10ではタスクを終了するためには、上記のようなロジックにはせず、[イベント]ロジックユニットや[クローズ]イベントを利用することを推奨します。こ のフラグはVer7やVer8などで作成されたアプリケーションからの移行を行った場合に互換性を保持するためだけに利用してください。

設定例

ZoomFix=N


DisableTransparent

DisableTransparent （デフォルト：Y）

設定 > MAGIC.INIファイル > 特殊パラメータ > dbMAGIC_ENV

照会モード時の透過色制御

照会モード時の透過色の機能を有効にするフラグです。この設定を「N」にすると、[エディット]コントロールに背景色が透過の色を定義した場合、照会モードの状態で[エディット]コントロールにパークすると、そのコントロールの背景色が表示されるようになります。

ただしこの場合、[エディット]コントロールに設定された[漢字入力]特性が無効になります。

  • Y……この機能を有効にします。

  • N……無効です。

設定例

DisableTransparent=N


TrimParamDSQL

TrimParamDSQL （デフォルト：Y）

設定 > MAGIC.INIファイル > 特殊パラメータ > dbMAGIC_ENV

ORacleのストアドプロシジャの動作制御

OracleのSQLコマンドを使用してストアドプロシージャを実行するとき、パラメータに':1'を指定しスペースを渡した場合、V10ではデフォルトでトリミングされてNULLとして渡されます。
この動作を無効にして、V9PLusの動作と互換性維持のためのフラグです。

  • Y …… パラメータ（文字型やUnicode型）をトリミングします（NULLが渡る）

  • N …… トリミングしません（空白が渡る：V9互換）

設定例

TrimParamDSQL=N


VCGetUnit

VCGetUnit （デフォルト：0）

設定 > MAGIC.INIファイル > 特殊パラメータ > dbMAGIC_ENV

CVSで取得するオブジェクト数の制御

バージョン管理でCVSを使用している場合、最新プロジェクトの取得時にMagicが異常終了する場合があります。

この現象は、プロジェクト内のオブジェクト数が多い場合に一括して取得することで発生します。このフラグを設定して、一度に取得するオブジェクト数を制限することでこの問題を回避することができるようになります。

VCGetUnit = n

nは10～9999の整数。これ以外の場合は、全オブジェクトを一括で取得します。


PrintTextByteMode

PrintTextByteMode （デフォルト：N）

設定 > MAGIC.INIファイル > 特殊パラメータ > dbMAGIC_ENV

テキスト印刷の出力調整

テキスト形式印刷を行う場合に発生する以下の問題に対応させるためのパラメータです。

  • 罫線が接続されない場合がある

  • [テキスト]コントロール上の一部に別の[テキスト]コントロールや[エディット]コントロール貼り付けて印刷すると、上に貼り付けた別のコントロールの印字位置や次行のテキストコントロールの位置がずれる場合がある

パラメータの設定内容によって、以下のように動作します。

  • Y …… 出力内容が調整されます。

  • N …… 出力の調整は行われません。（SP2以前と同じ動作）

設定例

PrintTextByteMode=Y


MAGIC.INI 特殊パラメータ Interface_Builder

[MAGIC_BUILDERS]セクション

設定 > MAGIC.INIファイル > 特殊パラメータ

各インタフェースビルダユーティリティが管理するコンポーネント情報が保存される場所を指定します。インタフェースビルダが起動されるとこのフォルダ上のファイルをメモリテーブルに展開します。

  • COM= (COM インタフェースビルダ用)

  • WS= (Webサービスインタフェースビルダ用)

  • ECI= (Magic インタフェースビルダ用)

  • EJB= (EJBインタフェースビルダ用)

  • RC= (リッチクライアントインタフェースビルダ用)

指定されない場合は、Magicのインストール先のComponentsサブフォルダの各対応するサブフォルダ上をデフォルトとします。この指定を変更する場合は、インタフェースビルダ起動前にファイルを変更先にコピーしておいてください。作成されるファイルは、全て同じ名前ですのでフォルダ名を同じにしないでください。

Webサービスインタフェースビルダ用

以下のパラメータは、WebサービスインタフェースビルダがWebサービス用フレームワーク（Sysinet Server for Java）にアクセスする際に使用するパラメータです。Webサービスインタフェースビルダが作成するため、必要がない限り変更しないでください。

  • Soap Server Address =(Systinet ServerのURL)

  • SoapUser = (Systinet ServerにアクセスするためのユーザID)

  • SoapPass = (Systinet Serverにアクセスするためのパスワード)

  • SoapServiceNamespace = (Systinet Serverにアクセスするためのネームスペース)

リッチクライアントインタフェースビルダ用

以下のパラメータは、リッチクライアントインタフェースビルダが使用するパラメータです。必要がない限り変更しないでください。

  • RCModulesAlias =(リッチクライントモジュールのインストールフォルダのエイリアス名)

  • RCProjectsAlias = (アプリケーションのJNLPファイルにアクセスするためのフォルダのエイリアス名)


MAGIC.INI 特殊パラメータ MAGIC_DEFAULTS

[MAGIC_DEFAULT]セクション

設定 > MAGIC.INIファイル > 特殊パラメータ

アプリケーションのデフォルト値とデフォルトのNULL表示文字列を定義します。 この設定がない場合は、Magic内のデフォルト値を使用します。

MAGIC.INI 内で指定できるキーワードは以下の通りです。

  • DefaultDate …… 日付型

  • NullAlphaDisplay …… 文字型のNULL表示文字列

  • NullNumericDisplay …… 数値型のNULL表示文字列

  • NullLogicalDisplay …… 論理型のNULL表示文字列

  • NullDateDisplay …… 日付型のNULL表示文字列

  • NullTimeDisplay …… 時刻型のNULL表示文字列

  • NullBlobDisplay …… BLOB型のNULL表示文字列

  • MergePrefix …… マージ処理で参照するトークン前付符号

  • MergeSuffix …… マージ処理で参照するトークン後付符号

注意：

DefaultDate の書式は、日付モードに依存します。実行中にこの値を変更した場合、次に起動した時に有効になります。


コマンドラインオプション

設定 >

[コマンドラインオプション]では、Magicのインストールのセッション固有の設定を設定できます。Magicでは、MAGIC.INIファイルで使用しているのと同じ識別子を使用してコマンド行から設定可能な全ての設定を受け付けます。コマンド行で指定された値により、MAGIC.INIファイル内に書き込まれている値が指定変更されます。

参照

コマンドラインオプションの詳細

コマンドラインオプションの例

コマンドラインオプションとMAGIC.INIの値の関係


コマンドラインオプション 詳細

コマンドラインオプションの詳細

設定 > コマンドラインオプション

Magicコマンドラインオプションの構文は次の通りです。

eDevStudio /Parameter1=Value1 /Parameter2=Value2 ...

  • / …… 新しいパラメータの始まりを示します。

  • Parameter …… MAGIC.INIファイルで指定したパラメータ識別子。このパラメータ名には、セクション名を含めることができます。セクション名を指定した場合、パラメータはそのセクションに固有のものになります。セクション名を指定しない場合、デフォルトで[MAGIC_ENV]セクションが使われます。

  • = …… パラメータ名と値の区切文字。パラメータ名、区切文字、値の間に空白を入れることはできません。

  • Value …… パラメータに割り当てられる値。有効な値を指定します

OSのコマンドラインが短すぎて、必要な全てのオプションを指定できないことがあります（例えば、Ｗｉｎｄｏｗｓだと、コマンドラインに入力できるのは最大128文字までです）。したがって、Magicでは、全てのコマンドラインオプションを記述したファイルを受け付けます。

カンマ（,）、バックスラッシュ（\）、プラス記号（+）、または等号（=）をコマンドラインのテキストのリテラル部分として入力する場合は、接頭語として「\」文字を付ける必要があります。カンマを含む例を次のセクションに示します。それとは別に、一対の一重引用符（'）で値を囲み、値をそのまま受け付けるようMagicに指示することもできます。この方法では、バックスラッシュを文字として入力できます。例えば、

/CommandProcessor = '%comspec%'

コマンドラインパラメータの値にアスタリスク（*）を指定することで、値全体を終わりまで受け取り、ターミネータと引用符を無視するようにMagicに指示できます。この方法では、次の式を使用して、クリップボードを作成できます。

INIPut('clipboard=*' & VARCURR(VarInp(1)))

この関数は、その内容に関係なく@パラメータに作用します。このクリップボード概念を@以外の属性（数値、日付など）に使用する場合は、VarAttr関数を使用して、VarCurr関数を文字列に変換してから（Str、DStr関数などを使用して）、連結するようにします。

Magicコマンドラインファイルの構文は次のとおりです。

eDevRte @filename

ただし、

  • @ …… 実際のコマンド行の残り部分をコマンドラインファイルとして取り扱うようにMagicに指示します。

  • filename …… コマンドラインオプションファイルの格納場所とオペレーティングシステムでの名前。ファイルの内容は、コマンドラインオプションについて上で設定した規則に従わなければなりません。オプションが異なれば、ファイル内の行も異なります。


コマンドラインオプション 例

コマンドラインオプションの例

設定 > コマンドラインオプション

以下に、Windowsシステムの場合のコマンドラインの例を示します。

eDevStudio /DefaultProject = d:\Program Files\Magic\eDeveloper10\Projects\myproject.edp

Magicの開発エンジンを起動し、指定されたプロジェクトファイルを開きます。

Magicでは、設定が[MAGIC_ENV]セクションに属していると解釈します。パラメータの識別子でセクションを指定していないからです。

eDevStudio /[MAGIC_LOGICAL_NAMES]Drive=C:

[Translation C:]となるように論理名ドライブを設定します。論理名ドライブがMAGIC.INIファイルの[MAGIC_LOGICAL_NAMES]セクションにない場合、Magicセッションの実行中にそれらの属性の新しい一時論理名が作成されます。

eDevStudio @mycmdl

カレントディレクトリにあるmycmdlという名前のファイルで、コマンドラインパラメータを探すようにMagicに指示します。

/DefaultProject = d:\Program Files\Magic\eDeveloper10\Projects\myproject.edp /[MAGIC_LOGICAL_NAMES]Drive=C:

このファイルは、上の最初の2つの例に示されているコマンドラインパラメータを組み合わせたものです。

eDevStudio /[MAGIC_PRINTERS]Printer1=LaserPrinter\,lpt1:\,lp.atr\,lp.eng\,66

プリンタテーブル内の最初のプリンタの設定をコマンドラインで指定した設定で置き換えます。


コマンドラインオプション MAGIC.INI

コマンドラインオプションとMAGIC.INIの値の関係

設定 > コマンドラインオプション

コマンドラインオプションを使用して、Magic構成可能な設定と特性を変更することができます。コマンドラインの値は、基本的に一時的なものであり、セッションの実行中のみ効果があります。コマンドラインオプションで起動したセッションの後のセッションは、MAGIC.INIの値に戻ります。

コマンドラインの値は、メモリに保持され、[設定]メニューのオプションの1つを使用して、Magic設定値を編集しない限り、MAGIC.INIファイルには書き込まれません。MAGIC.INIの値およびコマンドラインの値の編集も有効な場合、設定編集テーブルはこの2つを組み合わせたものを反映します。編集テーブルには、コマンドラインで指定しなかった全てのパラメータのMAGIC.INIファイルでの値が記述されます。コマンドラインの値により、パラメータの残りが完全になります。この場合、設定テーブルは実際のMAGIC.INIの値全てを反映するわけではないことに注意してください。

いずれかの設定テーブルのどれかの設定が変更された場合、パラメータが含まれているセクションがコマンドラインの値とともにMAGIC.INIファイルに書き込まれます。元のMAGIC.INIの値は上書きされます。いずれかの設定テーブルを表示している時に編集が実行されていない場合は、MAGIC.INIファイルに書き込まれません。


モデル

モデルは、オブジェクトによって引き継がれることができる特性の集まりです。オブジェクトがモデルを利用すると、継承しないように明示的に定義された特性以外はモデルの特性を引き継ぐようになります。

オブジェクトの特性値を個別に設定することで、その値の継承関係は切れてしまうことになります。定義された値は、モデルによって継承されていた値を無効にします。

モデルクラスの特性が更新されると、価値は、個々に定義されているそれらを除いて全ての資産価値のために各関連したオブジェクトのために反映されます。

モデルに定義されている特性の値が変更されると、そのモデルの特性値を継承している全てのオブジェクトの特性値に自動的に反映されます。

モデルの使用は必須ではありませんが、モデルを使用することでプロジェクトの開発と保守の効率が上がります。また、異なるテーブルでの書式の整合性を保つ上でも効果的になります。

詳細は、モデル定義の利点を参照してください。

参照

モデルリポジトリ

データ項目

書式

コントロール

フォーム

ヘルプ

モデルの使用


モデルリポジトリ

モデル >

[モデル]リポジトリには、開発者が定義したモデルが表示されます。

同じオブジェクトクラスの複数のモデルを選ぶことができます。[モデル特性]シートには、指定したモデルの特性値が表示されます。

注意：

[モデル]リポジトリでは、[キャンセル]イベント（F2）が無効です。入力内容を取り消すことができませんので注意してください。

参照

名前

クラス

型

フォルダ

公開名

特性


モデルリポジトリ 名前

名前

モデル > モデルリポジトリ

モデルの名前を定義します。モデル名の長さは、最大30桁です。


モデルリポジトリ クラス

クラス

モデル > モデルリポジトリ

モデルはクラスタイプを分類して定義します。クラスタイプは、モデルに割り当てることができるMagicのオブジェクトです。クラスタイプは、各クラスタイプ個有な「型」により細分類されます。

次のようなクラスタイプがあります。

ヘルプ

項目

ブラウザ形式

GUI 表示形式

GUI 出力形式

テキスト形式

フレームセット形式

マージ形式

リッチクライアント形式

リッチクライアントフレーム形式

参照

コントロールモデル

フォームモデル


モデルリポジトリ クラス 項目

項目

モデル > モデルリポジトリ > クラス

[クラス]カラムから「F=項目」を選択し、[型]カラムから項目の型を選択します。このモデルとリンクされたオブジェクトは、オブジェクト側で変更されない限り、ここで定義された特性が使用されます。

例

｢Customer_Code｣オブジェクトがプロジェクト全般で使用されているものと仮定します。[型]特性や[書式]特性などのオブジェクトの特性を[モデル]リポジトリに設定することで、プロジェクト全体でこのモデルを使用することができます。

さらに、オブジェクトの書式を（例えば、9桁から10桁に）修正する必要がある場合、[モデル]リポジトリで変更するだけですみます。これにより、Magicが対応するすべてのオブジェクトの特性を更新します。このオブジェクトの色やフォントを定義することもできます。


モデルリポジトリ クラス ブラウザ

ブラウザ形式

モデル > モデルリポジトリ > クラス

ブラウザモデルのクラスには、ブラウザタスクで表示されるフォームとコントロールに対応した型があります。ブラウザモデルには次の型があります。

  • F=フォーム……[ブラウザフォーム特性]が表示されます。

  • E=エディット……[エディットコントロール特性]が表示されます。

  • H=ハイパーテキスト……[ハイパーテキストコントロール特性]が表示されます。

  • P=プッシュボタン……[プッシュボタンコントロール特性]が表示されます。

  • K=チェックボックス……[チェックボックスコントロール特性]が表示されます。

  • B=ラジオボタン……[ラジオボタンコントロール特性]が表示されます。

  • L=リストボックス……[リストボックスコントロール特性]が表示されます。

  • C=コンボボックス……[コンボボックスコントロール特性]が表示されます。

  • T=テーブル……[テーブルコントロール特性]が表示されます。

  • M=イメージ……[イメージコントロール特性]が表示されます。

  • S=サブフォーム……[サブフォーム特性]が表示されます。

  • I=IFRAME …… ブラウザフォームの[IFRAMEコントロール特性]が表示されます。

  • O=その他 …… ブラウザフォームの[その他コントロール特性]が表示されます。


モデルリポジトリ クラス GUI表示

GUI 表示形式

モデル > モデルリポジトリ > クラス

GUI表示モデルのクラスには、GUI表示フォームとコントロールに対応した型があります。GUI表示モデルには次の型があります。

  • F=フォーム……[GUI表示フォーム特性]が表示されます。

  • E=エディット……[エディットコントロール特性]が表示されます。

  • S=スタティック……[スタティックコントロール特性]が表示されます。

  • P=プッシュボタン……[プッシュボタンコントロール特性]が表示されます。

  • K=チェックボックス……[チェックボックスコントロール特性]が表示されます。

  • B=ラジオボタン……[ラジオボタンコントロール特性]が表示されます。

  • A=タブ……[タブコントロール特性]が表示されます。

  • L=リストボックス……[リストボックスコントロール特性]が表示されます。

  • C=コンボボックス……[コンボボックスコントロール特性]が表示されます。

  • N=ライン……[ラインコントロール特性]が表示されます。

  • D=スライダ……[スライダコントロール特性]が表示されます。

  • T=テーブル……[テーブルコントロール特性]が表示されます。

  • U=カラム……[カラムコントロール特性が表示]されます。

  • M=イメージ……[イメージコントロール特性]が表示されます。

  • O=OLE……[OLEコントロール特性]が表示されます。

  • I=リッチエディット……[リッチエディットコントロール特性]が表示されます。

  • R=ツリー……[ツリーコントロール特性]が表示されます。

  • X=ActiveX……[ActiveXコントロール特性]が表示されます。

  • U=サブフォーム……[サブフォームコントロール特性]が表示されます。


モデルリポジトリ クラス GUI出力

GUI出力形式

モデル > モデルリポジトリ > クラス

GUI出力形式モデルのクラスには、GUI出力フォームとコントロールに対応した型があります。GUI出力モデルタイプには次の型があります。

  • F=フォーム……[GUI出力フォーム特性]が表示されます。

  • E=エディット……[エディットコントロール特性]が表示されます。

  • S=スタティック……[スタティックコントロール特性]が表示されます。

  • N=ライン……[ラインコントロール特性]が表示されます。

  • T=テーブル……[テーブルコントロール特性]が表示されます。

  • U=カラム……[カラムコントロール特性]が表示されます。

  • M=イメージ……[イメージコントロール特性]が表示されます。

  • I=リッチエディット……[リッチエディットコントロール特性]が表示されます。


モデルリポジトリ クラス テキスト

テキスト形式

モデル > モデルリポジトリ > クラス

テキスト形式モデルのクラスには、テキスト出力／入力フォームとコントロールに対応した型があります。テキスト形式モデルタイプには次の型があります。

  • F=フォーム……[テキスト形式フォーム特性]が表示されます。

  • E=エディット……[エディットコントロール特性]が表示されます。

  • S=スタティック……[スタティックコントロール特性]が表示されます。

  • N=ライン……[ラインコントロール特性]が表示されます。


モデルリポジトリ クラス マージ

マージ形式

モデル > モデルリポジトリ > クラス

マージ形式のモデルタイプには、マージ形式フォームのフォーム特性が表示されます。このモデルは、データをテンプレートファイルにマージするために使用されます。


モデルリポジトリ クラス リッチクライアント

リッチクライアント形式

モデル > モデルリポジトリ > クラス

リッチクライアント表示モデルのクラスには、リッチクライアント表示フォームとコントロールに対応した型があります。リッチクライアント表示モデルには次の型があります。

  • F=フォーム……[リッチクライアント表示フォーム特性]が表示されます。

  • E=エディット……[エディットコントロール特性]が表示されます。

  • L=ラベル…… [ラベルコントロール特性]が表示されます。

  • P=プッシュボタン……[プッシュボタンコントロール特性]が表示されます。

  • K=チェックボックス……[チェックボックスコントロール特性]が表示されます。

  • B=ラジオボタン……[ラジオボタンコントロール特性]が表示されます。

  • A=タブ……[タブコントロール特性]が表示されます。

  • L=リストボックス……[リストボックスコントロール特性]が表示されます。

  • C=コンボボックス……[コンボボックスコントロール特性]が表示されます。

  • G=グループ…… [グループコントロール特性]が表示されます。

  • T=テーブル……[テーブルコントロール特性]が表示されます。

  • U=カラム……[カラムコントロール特性が表示]されます。

  • M=イメージ……[イメージコントロール特性]が表示されます。

  • U=サブフォーム……[サブフォームコントロール特性]が表示されます。

  • R=ツリー……[ツリーコントロール特性]が表示されます。

  • B=ブラウザ……[ブラウザコントロール特性]が表示されます。


モデルリポジトリ クラス リッチクライアントフレーム形式

リッチクライアントフレーム形式

モデル > モデルリポジトリ > クラス

リッチクライアント表示モデルのクラスには、リッチクライアント表示フォームとコントロールに対応した型があります。リッチクライアント表示モデルには次の型があります。

  • F=フォーム……[リッチクライアントフレーム特性]が表示されます。

  • M=フレーム……[フレームコントロール特性]が表示されます。


モデルリポジトリ クラス フォーム

フォーム

モデル > モデルリポジトリ > クラス

フォームモデルは、以下のモデルクラスに割り当てられています。

  • ブラウザ形式 …… [ブラウザ形式]フォーム用

  • GUI表示形式 …… [GUI表示形式]フォーム用

  • GUI出力形式 …… [GUI出力形式]フォーム用

  • テキスト形式 …… [テキスト形式]フォーム用

  • フレームセット形式 …… [フレームセット形式]フォーム用

  • マージ形式 …… [マージ形式]フォーム用

  • リッチクライアント形式…… [リッチクライアント形式]フォーム用

  • リッチクライアントフレーム形式…… [リッチクライアントフレーム形式]フォーム用


モデルリポジトリ クラス コントロール

コントロール

モデル > モデルリポジトリ > クラス

コントロールモデルは、以下のモデルクラスに割り当てられています。全てのコントロールが、各モデルクラスによってサポートされている訳ではありません。

  • ブラウザ形式 …… [ブラウザ形式]フォーム用

  • GUI 表示形式 …… [GUI表示形式]フォーム用

  • GUI出力形式 …… [GUI出力形式]フォーム用

  • テキスト形式 …… [テキスト形式]フォーム用

  • リッチクライアント表示形式 …… [リッチクライアント表示形式]フォーム用


モデルリポジトリ クラス ヘルプ

ヘルプ

モデル > モデルリポジトリ > クラス

ヘルプモデルには、次の型があります。

  • I=内部……Magicアプリケーション内で定義されるヘルプ

  • W=Windows形式……Windowsヘルプ形式の外部ファイルに定義されるヘルプ


モデルリポジトリ 型

型

モデル > モデルリポジトリ

この特性は、選択されたクラスに対応するオブジェクトのタイプが指定できます。例えば、選択されたクラスが「項目」の場合、Magicの項目の型（数値型、文字型、日付型など）のどれか1つを選択することができます。

参照

型（データ項目）


モデルリポジトリ フォルダ

フォルダ

モデル > モデルリポジトリ

登録されているモデルが保存されているフォルダの名前が表示されます。フォルダを作成するには、[ナビゲータ]ペインで[モデル]アイコンをクリックし、F4を押下します。フォルダを作成すると、登録されているモデルをグループ化することができます。詳細については、フォルダを参照してください。


モデルリポジトリ 公開名

公開名

モデル > モデルリポジトリ

モデルの公開名を定義します。そのモデル定義をコンポーネントとして外部から利用する場合に必要です。公開名はプロジェクトファイル内でユニークでなければなりません。


モデル 特性

特性

モデル > モデルリポジトリ

各モデルクラスに対して、特性のデフォルト値が定義されています。デフォルト特性値は、イタリック体で表示されます。（[開発用フォント]テーブルの#34のフォントを使用しています。）

各特性値の左側に表示される[継承解除]ボタンをクリックすると特性の継承関係が解除されます。継承が解除された特性は、イタリック表示されません。（（[開発用フォント]テーブルの#35のフォントを使用しています。）

モデルをシステムモデルに割り当てるには、[システムモデル]ボタンをクリックします。このシステムモデルの特性値は変更できません。

[特性]シートには、以下のようなアイコンが表示されます。

[継承設定]ボタン

[継承解除]ボタン

[式]ボタン

[ダイアログ表示]ボタン

[システムモデル]ボタン

[継承設定]ボタンをクリックすると、継承関係が切断されていた特性の再継承を行えうことができます。確認ダイアログで「はい（Y）」をクリックすると、継承関係の切れていた特性内容が継承され、特性の名前が黒色で表示されるようになります。

またコントロールモデルの場合、[継承／データ／解除]がプルダウンメニューで表示される場合があります。[データ]を選択すると、このモデルを使用するコントロールに関連するデータ項目の項目特性の内容を継承することになります。

参照

モデル一覧


モデル 特性 モデル一覧

モデル一覧

モデル > モデルリポジトリ > 特性

[モデル一覧]では、さまざまな特性シートのモデルを選択することができます。特定のオブジェクトクラスに定義されているモデル全ての一覧を表示するには、オブジェクト（ヘルプ画面、フォーム、テーブルなど）の特性シートで[モデル]セクションの隣にある[ダイアログ表示]ボタンをクリックします。


データ項目

モデル >

データ項目は、データ構造の構成単位です。通常はテーブルに物理的に格納されるので、カラムまたは変数と呼ばれます。

Magicのデータ項目は、以下のいずれかになります。

  • カラム……実際のデータ値が入ったデータテーブルの構成要素。プロジェクトの実データは、[データ]リポジトリで定義されます。同じ特性を持つカラムが複数ある場合、それらの項目モデルを[モデル]リポジトリで定義できます。

  • 変数……タスク内で使用する計算および一時保存のローカル変数。タスクを定義する時は、必要な変数項目を定義します。[モデル]リポジトリで事前に定義した項目モデルを使用することもできます。変数項目は、プログラムの実行中のみ格納内容が有効で、実行が終了するとその値は保存されません。これは、プログラムが終了すると、項目の値がデフォルト値に戻ることを意味しています。

  • パラメータ……呼び出したタスクまたはプログラムから値を受け取るように指定されたローカル変数。

データ項目は、型や書式だけでなく、範囲や記憶型式などのほかの特性についても定義できます。

参照

データ項目の特性内容

型

記憶型式


データ項目 データ項目の特性内容

データ項目の特性内容

モデル > データ項目

データ項目は、範囲や記憶形式などの特性と同様に、型や書式が定義されます。


データ項目 型

型

モデル > データ項目

データ項目の型は、[モデル]リポジトリまたは[カラム]テーブルのいずれかの[型]欄を使用して指定します。Magicで使用できる型は以下のとおりです。

  • 文字

  • Unicode

  • 数値

  • 論理

  • 日付

  • 時刻

  • BLOB

  • OLE

  • ActiveX

  • ベクトル


データ項目 型 文字

文字型

モデル > データ項目 > 型

任意の文字列。変数項目の最大長は32Kですが、基礎となるデータベースにより制限を受けることもあります。例えば、Pervasive ゲートウェイを使用する時、DBMSパラメータで「/P:4096」と指定すると、Pervasiveデータベースの内部のページサイズが4096バイトとなりますが、この時には、最大レコード長も4096バイトとなるので、その中に定義されている文字型の最大長も4096バイトということになります。


データ項目 型 Unicode

Unicode型

モデル > データ項目 > 型

Magicは、データの変換と転送用にUnicode標準を使用します。この機能は、MagicのANSIとOEMサポートに追加されたものです。

以下のような場合にUnicodeを使用することができます。

  • データベース内のUnicodeのフィールドを読み書きする場合

  • フォームにUnicodeデータを入力したり、画面上にUnicodeデータを表示する場合

  • Unicodeデータ用のプログラムロジックを定義する場合

  • Unicode形式のテキストファイルを読み書きする場合

  • 外部のシステム間でUnicodeデータの送受信を行う場合

現在、Unicode型項目の修正に適用される全ての規則は、文字型項目のものと同じです。


データ項目 型 数値

数値型

モデル > データ項目 > 型

整数または小数。Magicでは18桁までサポートされます。全体の桁数および小数部の桁数は、それぞれ最も近い偶数に切り上げられます。


データ項目 型 論理

論理型

モデル > データ項目 > 型

0または1の値を持ち、通常、内部的に1バイトとして格納されます。「True/False」、「黒/白」、「はい/いいえ」などの値の組み合わせを格納する場合、論理型を使用します。

論理型は通常、同等の数値型よりもアクセスが速くなります。0は「False」を、1は「True」を表します。


データ項目 型 日付

日付型

モデル > データ項目 > 型

日付を表すデータで、年、月、日からなります。内部的には数値型として格納されていて、西暦1年1月1日を基点(1)として数えた日数が格納されています。日付型データは、画面に表示される場合のみ日付の形式に変換され、Magic内部での計算は、全て数字データとして行われます。


データ項目 型 時刻

時刻型

モデル > データ項目 > 型

内部的に秒数のカウンタとして格納されます。時刻型を使用して、時間の長さ、または任意の時刻を表します。日付型と同様、時刻型は数値であるため、加減算できます。時刻型は、画面に表示される時に時刻型式に変換されます。


データ項目 型 BLOB

BLOB型

モデル > データ項目 > 型

Binary Large Objectの略です。

Magicで作成されていないバイナリ情報を含み、サイズも不明です。この情報は、内容が解読されずにそのまま格納されます。BLOBは一般に、OLEオブジェクトまたはイメージビットマップを格納するために使用されます。BLOBが空の場合、NULLとして扱われます。
構造体を扱うことが可能な「バッファ」として利用することもできます。バッファ関数を使用することによって「バッファ」を参照したり修正することができます。


データ項目 型 BLOB 操作

BLOB項目の操作

モデル > データ項目 > 型 > BLOB型

Magicにおいて、以下の内容がBLOB型項目の処理に適用されます。

  • スタイル設定にかかわらず、どのような文字操作でも行うことができます。

  • 文字型/Unicode型の項目は、BLOB型項目と連結することができます。これはBLOB型項目のスタイルには関係しません。

  • 文字型/Unicode型の項目は、BLOB型項目によって更新することができます。逆も可能です。

  • 文字型/Unicode型の項目は、BLOB型のパラメータに値を渡すことができます。逆も可能です。

  • BLOB型項目は、文字型/Unicode型の項目と比較を行うことができます。

  • BLOB型項目は、XMLデータソースとして使用することができます。

  • BLOB型項目は、[エラー]処理コマンドのメッセージテキストとして使用することができます。この項目に文字列が含まれている場合、メッセージが表示されます。

  • BLOB値を処理するEvalStrInfo関数によってBLOB項目で文字列操作を行うことも可能です。

エディットコントロール

  • [エディット]コントロールの[データ]特性にBLOB項目を設定したり、[式]特性にBLOB型の式を設定することができます。これは次のような意味があります。

  • BLOB項目は、[項目一覧]から選択したり、シンボル名を入力することで指定できます。

  • BLOB式は、[データ]特性から選択したり式番号を入力することで指定できます。

  • [エディット]コントロールにBLOB型を定義しても構文チェックでエラーになりません。

  • [サイズ調整]コマンドのみが無効になります。複数のコントロールを選択され、その中にBLOB型が含まれていた場合、コマンドは実行されますが、BLOB型が定義されたコントロールのサイズは変更されません。

  • 実行時、[エディット]コントロールは、BLOBの内容を表示したり編集したりできます。その際、文字列の長さに制限がなく自由に入力することができます。

注意：

BLOB項目の内容に、表示が不可能なバイナリデータが含まれている場合、表示されないか場合があります。この場合、無効なデータが含まれている位置まで文字列が表示されます。

  • EditGetとEditSet関数は、BLOBデータ内の全体に対して処理することができます。

参照

スタイル特性

内容特性


データ項目 型 OLE

OLE型

モデル > データ項目 > 型

Magicのフォーム外で実行されるOLE COM オブジェクトのインスタンスを作成するために使用されるBLOB項目です。


データ項目 型 ActiveX

ActiveX型

モデル > データ項目 > 型

Magicのフォームに配置可能なActiveX COM オブジェクトのインスタンスを作成するために使用されるBLOB項目です。


データ項目 型 ベクトル

ベクトル型

モデル > データ項目 > 型

Magicの ベクトルデータ は、基本的に指定されたセルインデックスを使用してデータを格納したり、検索することのできる配列です。ベクトル型は、追加のセルモデル特性を持つBLOB型に基づいています。
ベクトルのセルには、[モデル]リポジトリで定義されているMagicの項目モデルを指定します。モデルとしてあらゆる型（文字、Unicode、数値、論理、日付、時刻、BLOB、OLE、ActiveX）を指定することができます。
ベクトルデータのインデックスは、1から始まります。ベクトル型は、変数項目やパラメータ項目からのみ選択できます。テーブルのカラムのとして定義することはできません。
再帰的なベクトル定義は、サポートされていません。GUI フォームやブラウザフォームに、ベクトル項目を配置することはできません。また、配列はメモリ上に格納されるため多量のデータをベクトルに格納することはお勧めできません。
ベクトル関数を使用することによってベクトルセルを参照したり修正することができます。


データ項目 記憶形式

記憶型式

モデル > データ項目

記憶型式とは、データ項目が実際のデータベースに記憶される時の型式です。Magicでは、デフォルトの最適な記憶型式が、型と書式により自動的に関連付けられます。

プロジェクトのデータテーブルがMagic 以外のアプリケーションと共有されない場合は、記憶型式について考慮する必要はありません。しかし、Magic以外のアプリケーションと共有する場合、データカラムに特定の記憶型式を指定して、互換性の問題を解決する必要があります。これには、カラムを定義する時に、[カラム特性]において必要な記憶型式を指定します。


書式

モデル >

書式は、データをどのように入力または表示するかを指定する文字列です。書式は[書式]ダイアログで指定できます。このダイアログには、[項目特性]シートの[詳細]の[書式]属性からアクセスします。Magic では、日付などの一般的な属性を持つデータ項目については、最もよく使用される書式が自動的に定義されます。

書式の指定は、次の3 つの状況で必要となります

  • [モデル]リポジトリまたは[テーブル]リポジトリにおいてデータ項目の実際のサイズとデフォルトの記憶型式を定義する場合。（書式の使用例）

  • 画面または帳票におけるデータ項目のデフォルトの書式を定義する場合。

  • 型の変換関数において、データの変換規則を定義する場合。詳細は、「[式]エディタ」を参照してください。Str 関数を例にあげると、Str （712.93,’###.####’） は文字列712.9300 を返します。

書式の文字列は、次の3 種類の文字で構成されます。

  • 機能指示記号として扱われる記号

  • 位置指示記号として扱われる記号

  • マスク文字として扱われる上記以外の文字

各型ごとに使用される書式指示記号が定義されています。

各型に属する機能指示記号および位置指示記号の詳細については、以下のトピックを参照してください。

参照

書式の使用方法

機能指示記号

位置指示記号

マスク文字

構文規則


書式 使用例

書式の使用例

モデル > 書式

項目 | 型 | 書式 | 意味
タイトル | 文字 | 15 | 15 桁の英数字
ID 番号 | 数値 | ### または3 | 3桁の整数値
期限 | 日付 | YY/MM/DD | 年、月、日を表す日付
パーセント | 数値 | ###.## または3.2 | 3 桁の整数部と2 桁の小数部を持つ実数値


書式 書式の使用方法

書式の使用方法

モデル > 書式

書式の指定は、次の3 つの状況で必要となります

  • [モデル]リポジトリまたは[テーブル]リポジトリにおいてデータ項目の実際のサイズとデフォルトの記憶型式を定義する場合。書式の使用例を以下に示します。

項目 | 型 | 書式 | 意味
タイトル | 文字 | 15 | 15 桁の英数字
ID 番号 | 数値 | ### または3 | 3桁の整数値
期限 | 日付 | YY/MM/DD | 年、月、日を表す日付
パーセント | 数値 | ###.## または3.2 | 3 桁の整数部と2 桁の小数部を持つ実数値

  • 画面または帳票におけるデータ項目のデフォルトの書式を定義する場合。

  • 型の変換関数において、データの変換規則を定義する場合。詳細は、「[式]エディタ」を参照してください。Str 関数を例にあげると、Str （712.93,’###.####’） は文字列712.9300 を返します。


書式 機能指示記号

機能指示記号

モデル > 書式

機能指示記号は、書式のどの位置に置いても同じ意味に解釈される書式文字です。例えば、次の3つの書式があるとします。

N####、####N、##N##

  • これらはいずれも、正および負の値を持つことのできる4桁の整数を表します。

  • 機能指示記号Nは、この型に負の値が含まれる可能性があることを示します。書式文字列内のNの挿入位置はどこでもかまいません。これはほかの機能指示記号も同様です。

機能指示記号は、[書式]ダイアログで[Y]を入力すると挿入されます。また、[書式]欄で書式文字列を編集して、手動で挿入することもできます。

機能指示記号は全て大文字で指定する必要があります。

参照

デフォルトの機能指示記号

数値型書式の機能指示記号

日付型書式の機能指示記号

時刻型書式の機能指示記号

機能指示記号の一覧


書式 指示記号 デフォルト

デフォルトの機能指示記号

モデル > 書式 > 機能指示記号

文字型とUnicode型、数値型において最もよく使用される属性を、位置指示記号の省略形で定義できます。

書式をカウント値のみで記述した場合、デフォルトの位置指示記号が繰り返されているものと解釈されます。解釈されるデフォルトの指示記号は、型に応じて次のようになります。

型 | デフォルトの指示記号
文字/Unicode | X（任意の文字の位置を示します）
数値 | #（1 桁の数値の位置を示します）

この方法により、次の表に示すように、最も頻繁に使用される書式を簡単に定義できます。

型 | 省略形の書式 | 同義の書式
文字/Unicode | 7 | XXXXXXX またはX7
文字/Unicode | 3U2 | XXXU2 またはX3UU
数値 | 4 | #### または#4

参照

数値型書式の機能指示記号

日付型書式の機能指示記号

時刻型書式の機能指示記号

機能指示記号の一覧


書式 機能指示記号 数値型

数値型書式の機能指示記号

モデル > 書式 > 機能指示記号

機能指示記号は、各属性の[書式]ダイアログで以下のようなオプションが表示されます。「Yes」を選択すると、自動的に機能指示記号が追加されます。

オートスキップ

負数入力

3 桁区切

左詰

余白埋

0 値表示

負数符号

正数符号

符号文字列の規則

数値型書式の例


書式 機能指示記号 数値型 オートスキップ

オートスキップ (デフォルト：No)

モデル > 書式 > 機能指示記号 > 数値型

「Yes」を選択すると、書式に機能指示記号「A」が挿入されます。この指示記号は、データ入力時に最後の文字が入力されたら、次の動作を待たずに、自動的に次のデータに移動するよう指示します。

注意：

オートスキップはブラウザクライアントタスクではサポートされません。


書式 機能指示記号 数値型 負数入力

負数入力 (デフォルト：No)

モデル > 書式 > 機能指示記号 > 数値型

「Yes」を選択すると、書式に機能指示記号「N」が挿入されます。この指示記号は、データ入力時に負数が入力できることを指示します。「Yes」を選択すると、書式の表示サイズがテンプレートの記述に従って自動的に拡大され、負数記号を表示できるようになります。


書式 機能指示記号 数値型 3桁区切

3 桁区切 (デフォルト：No)

モデル > 書式 > 機能指示記号 > 数値型

「Yes」を選択すると、書式に機能指示記号「C」が挿入されます。この指示記号は、データを3 桁ごとにカンマで区切るように指示します。「Yes」を選択すると、書式の表示サイズがテンプレートの記述に従って自動的に拡大され、区切り文字を表示できるようになります。このカンマは、[環境環境]ダイアログの[3桁区切文字]欄にて指定した文字に置き換えることができます。


書式 機能指示記号 数値型 左詰

左詰 (デフォルト：No)

モデル > 書式 > 機能指示記号 > 数値型

「Yes」を選択すると、書式に機能指示記号「L」が挿入されます。この指示記号は、データを左寄せで表示するよう指示します。デフォルトでは、右寄せで表示されます。


書式 機能指示記号 数値型 余白埋

余白埋 (デフォルト：No)

モデル > 書式 > 機能指示記号 > 数値型

「Yes」を選択すると、書式に機能指示記号「P」が挿入されます。この指示記号は、データ数字が含まれていない部分に、[文字]欄にて指定した文字を表示するように指示します。文字を指定しない場合、空白で表示されます。


書式 機能指示記号 数値型 0値表示

0 値表示

モデル > 書式 > 機能指示記号 > 数値型

「Yes」を選択すると、書式に機能指示記号「Z」が挿入されます。この指示記号は、データがゼロの場合、全ての桁に、「文字」欄にて指定した文字を表示するように指示します。文字を指定しない場合、空白で表示されます。


書式 機能指示記号 数値型 負数符号

負数符号

モデル > 書式 > 機能指示記号 > 数値型

負の値の前に通常のマイナス記号（－）以外の文字列を表示する場合、[負数符号]欄に表示したい文字を指定します。負の値の末尾に文字列を表示する場合、[後付符号]欄に表示したい文字を指定します。これらの文字列は「符号文字列」と呼ばれ、以下の[符号文字列の規則]で説明する規則に従って書式文字列に挿入されます。


書式 機能指示記号 数値型 正数符号

正数符号

モデル > 書式 > 機能指示記号 > 数値型

正の値の前に文字列を表示する場合、[正数符号]欄に表示したい文字を指定します。正の値の末尾に文字列を表示する場合、[後付符号]欄に表示したい文字を指定します。これらの符号文字列は、次の[符号文字列の規則]で説明する規則に従って書式文字列に挿入されます。


書式 機能指示記号 数値型 符号文字列の規則

符号文字列の規則

モデル > 書式 > 機能指示記号 > 数値型

[数値型書式]ダイアログの[負数符号]または[正数符号]に別の文字列を指定した場合は、次の規則に従って書式文字列が作成されます。

  • 機能指示記号「－」または「＋」が、書式文字列の末尾に挿入されます。

  • 符号の指示記号の直後には、前付符号、カンマ、後付符号が順に挿入され、最後にセミコロン（;）が付けられます。例えば、負の数字5.2 を括弧で囲む場合は、5.2-（,）; という書式になります。書式4.3+,CR;-,DB; は、正の数字の末尾に文字列CR を付け、負の数字の末尾に文字列DB を付けます。文字列を前付符号と後付符号に分ける文字として、カンマが使用されます。

[書式]ダイアログの一番下には、データがどのように表示されるかを示すテンプレートが表示されます。すなわち、表示されるマスク文字や、データにより使用される画面またはレポートフォームの桁数を確認できます。


書式 機能指示記号 数値型 例

数値型書式の例

モデル > 書式 > 機能指示記号 > 数値型

属性の値 | 書式 | 変換結果 | コメント
-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.30 | $をマスク文字として表示

^は、1桁のスペース文字を表します。


書式 機能指示記号 日付型

日付型書式の機能指示記号

モデル > 書式 > 機能指示記号

機能指示記号は、各属性の[書式]ダイアログで以下のようなオプションが表示されます。「Yes」を選択すると、自動的に機能指示記号が追加されます。

  • オートスキップ：[No]（デフォルト）……「Yes」を選択すると、書式に機能指示記号「A」が挿入されます。この指示記号は、データ入力時に最後の文字が入力されたら、次の動作を待たずに、自動的に次のデータに移動するよう指示します。

  • 0値表示：[文字：]……「Yes」を選択すると、書式に機能指示記号「Z」が挿入されます。この指示記号は、データがゼロの場合、全ての桁に、「文字」欄にて指定した文字を表示するように指示します。文字を指定しない場合、空白で表示されます。

  • 空白詰：[No]……「Yes」を選択すると、書式に機能指示記号「T」が挿入されます。この指示記号は、位置指示記号の「WWW...（曜日）」「MMM...（月）」「DDDD（日付の英語表記）」により挿入された空白を削除するよう指示します。これらの位置指示記号は、使用可能な最大の桁数で書式文字列に指定されるため、指定した長さより短い名前には不要な空白が作成されることがあります。この指示記号は、これらの空白を全て削除します。
    空白が必要な場合、マスク文字として明示的に書式文字列に挿入する必要があります。^は、1桁のスペースを表します。

TWWWWWWWWW^DDDD^MMMMMMMMM,YYYY

テンプレート

日付型のデフォルトの書式は##/##/##として定義されています。この場合、[動作環境]ダイアログの[日付タイプ]欄の指定（[A=アメリカ]、[E=ヨーロッパ]、または[J=日本]）に応じて、MM/DD/YY、DD/MM/YY、またはYY/MM/DDの型式で日付が表示されます。

デフォルトの書式を変更すると、この欄にはデータが実際にどのように出力されるかを示すテンプレートが表示されます。すなわち、表示されるマスク文字や、属性が画面または帳票フォームで使用する桁数を確認できます。

参照

日付型書式の例


書式 機能指示記号 日付型 例

日付型書式の例

モデル > 書式 > 機能指示記号 > 日付型

次の例で使用されている日付は1997年3月21日です。この場合日付の値は、729104になります。これは、西暦1年1月1日からカウントされた日数です。

書式 | 変換結果
MM/DD/YY | 03/21/97
DD/MM/YY | 21/03/97
YY/MM/DD | 97/03/21
DD/MM/YY | 21-03-97 [日付区切文字]欄が-に設定されている場合
DD-MM-YYYY | 21-03-1997 「-」 はマスク文字
YY.DDD | 97.081
##/##/## | 03/21/97 [日付タイプ]欄が[A=アメリカ]に設定されている場合
 | 21/03/97 [日付タイプ]欄が[E=ヨーロッパ]に設定されている場合
 | 97/03/21 [日付タイプ]欄が[J=日本]に設定されている場合
MMMMMMMMMM^DDDD, ^YYYY | March^^^^^^21st,^1997
MMMMMMMMMM^DDDD, ^YYYYT | March^21st,^1997 機能指示記号Tにより空白詰
WWWWWWWWWW^-^W | Saturday^^^-^7
WWWWWWWWWW^-^WT | Saturday^-^7 機能 指示記号Tにより空白詰

^は、1桁のスペース文字を表します。


書式 機能指示記号 時刻型

時刻型書式の機能指示記号

モデル > 書式 > 機能指示記号

機能指示記号は、各属性の[書式]ダイアログで以下のようなオプションが表示されます。「Yes」を選択すると、自動的に機能指示記号が追加されます。

  • オートスキップ：[No]（デフォルト）……「Yes」を選択すると、書式に機能指示記号「A」が挿入されます。この指示記号は、データ入力時に最後の文字が入力されたら、次の動作を待たずに、自動的に次のデータに移動するよう指示します。

  • 0値表示：[文字：]……「Yes」を選択すると、書式に機能指示記号「Z」が挿入されます。この指示記号は、データがゼロの場合、全ての桁に、「文字」欄にて指定した文字を表示するように指示します。文字を指定しない場合、空白で表示されます。

テンプレート

Magicでは、時刻型属性のデフォルトの書式マスクが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 | -はマスク文字

注意：

表示可能な時間の範囲は、時間は0～99、分、秒は0～59までとなります。これ以上の時間、分、秒を表示させる必要がある場合は、データを加工する必要があります。


書式 機能指示記号 一覧

機能指示記号の一覧

モデル > 書式 > 機能指示記号

以下の書式指示記号の説明では、次の小文字が特別な意味を持ちます。

  • n ……カウント値を表します。

  • s ……文字列を表します。

  • { } ……任意の部分を表します。

  • c ……マスク文字を表します。指示記号として予約されている文字（例えばX）をマスク文字として使用したい場合、その文字の前に円記号（\）を置きます。

機能指定記号は、書式内の任意の場所に1度だけ指定できます。

指示記号 | 型 | 説明
T | D | MMM...、WWW...、またはDDDDの空白をトリミング
##/##/## | D | 日付型パラメータを[動作環境]ダイアログの定義（[A=アメリカ]、[E=ヨーロッパ]、または[J=日本]）に従って表示
N | N | 負数入力が可能
+s{,m} | N | 正の数値に前付符号s、および後付符号mを挿入
-s{,m} | N | 負の数値に前付符号s、および後付符号mを挿入
C | N | 数値に3桁ごとにカンマを挿入（挿入される文字は[動作環境]ダイアログの[3桁区切文字]欄にて指定）
L | N | 左寄せ。デフォルトは右寄せ。
Pc | N | 数値が含まれない桁を文字cで埋める
Zc | N, D, T | データがゼロの場合、文字cで埋める
A | all | 入力のオートスキップ


書式 位置指示記号

位置指示記号

モデル > 書式

位置指示記号は、書式内で位置を指定する書式文字です。したがって、書式文字列内の挿入位置に基づいて解釈されます。例えば、次の3つの書式があるとします。

UXX、XUX、XXU

  • これらはそれぞれ、異なる3バイトの文字を表します。

  • 位置指示記号Uは、キーボードからデータが入力された時に、「U」の位置に対応する文字を大文字に変換するよう指定します。したがって、書式「UXX」は最初の入力文字を大文字に変換し、「XUX」は2番目の入力文字を大文字に変換します。このように、位置指示記号の挿入位置は非常に重要です。

位置指示記号は全て大文字で指定する必要があります。

位置指示記号は書式内にいくつでも使用できます。続けて繰り返しマスク文字を指定する簡単な方法については、「カウント値」の説明を参照してください。

参照

デフォルトの位置指示記号

文字型/Unicode型書式の位置指示記号

数値型書式の位置指示記号

論理型書式の位置指示記号

日付型書式の位置指示記号

時刻型書式の位置指示記号

位置指示記号の一覧


書式 位置指示記号 デフォルト

デフォルトの位置指示記号

モデル > 書式 > 位置指示記号

文字型とUnicode型、数値型において最もよく使用される属性を、位置指示記号の省略形で定義できます。

書式をカウント値のみで記述した場合、デフォルトの位置指示記号が繰り返されているものと解釈されます。解釈されるデフォルトの指示記号は、型に応じて次のようになります。

型 | デフォルトの指示記号
文字/Unicode | X（任意の文字の位置を示します）
数値 | #（1 桁の数値の位置を示します）

この方法により、次の表に示すように、最も頻繁に使用される書式を簡単に定義できます。

型 | 省略形の書式 | 同義の書式
文字/Unicode | 7 | XXXXXXX またはX7
文字/Unicode | 3U2 | XXXU2 またはX3UU
数値 | 4 | #### または#4

参照

文字型/Unicode型書式の位置指示記号

数値型書式の位置指示記号

論理型書式の位置指示記号

日付型書式の位置指示記号

時刻型書式の位置指示記号

位置指示記号の一覧


書式 位置指示記号 文字型

文字型/Unicode型書式の位置指示記号

モデル > 書式 > 位置指示記号

次の表は、文字型/Unicode型書式の位置指示記号の一覧です。

指示記号 | 機能
X | 任意の文字
U | 入力した英文字（半角）を大文字に変換
L | 入力した英文字（半角）を小文字に変換
# | 1桁の数値。データ入力時に、#の位置に数字が入力されたかどうかが検証されます。数字以外の文字が#の位置に入力された場合、入力は拒否され、エラーメッセージが表示されます。

文字型/Unicode型書式の機能指示記号には、次のものがあります。

  • オートスキップ：[No]（デフォルト）…… 「Yes」を選択すると、書式に機能指示記号「A」が挿入されます。この指示記号は、データ入力時に最後の文字が入力されたら、次の動作を待たずに、自動的に次のデータに移動するよう指示します。

注意：

入力項目にて、入力したデータに対して有効です。代入（データ定義の[代入]特性、項目更新コマンドのどちらも）では変換されません。


書式 位置指示記号 数値型

数値型書式の位置指示記号

モデル > 書式 > 位置指示記号

次の表は、数値型書式の位置指示記号の一覧です。

指示記号 | 意味
# | 1桁の数値。
. | 小数点の挿入位置（挿入される文字は[動作環境]ダイアログの[小数点]欄にて指定）。


書式 位置指示記号 論理型

論理型書式の位置指示記号

モデル > 書式 > 位置指示記号

次の表は、論理型書式の位置指示記号の一覧です。

指示記号 | 意味
X | 内部値を表示値または入力値に変換する際に使用される文字です。1は「True」を、0は「False」を表します。また、パラメータの範囲が指定された場合は、男性、女性などの別の表示値/入力値を使用できます。

論理型書式の機能指示記号には、次のものがあります。

  • オートスキップ：[No]（デフォルト）……「Yes」を選択すると、書式に機能指示記号「A」が挿入されます。この指示記号は、データ入力時に最後の文字が入力されたら、次の動作を待たずに、自動的に次のデータに移動するよう指示します。


書式 位置指示記号 日付型

日付型書式の位置指示記号

モデル > 書式 > 位置指示記号

次の表は、日付型書式の位置指示記号の一覧です。

書式 | 意味 | 範囲
DD | 月間の日付を示す数字 | 1-31
DDD | 年間の日付を示す数字 | 1-366
DDDD | 月間の日付の英語表記 | 1st, 2nd, 3rd, 4th, etc.
MM | 月を示す数字 | 1-12
MMM... | 月の英語表記（「M」は3～10桁使用可能であり、月の名前が「M」の数より少ない場合、残りは空白を表示） | January、Februaryなど
YY | 年を示す数字の末尾2桁 | 0-99
YYYY | 年を示す数字4桁 | 0-9999
W | 週間の曜日を示す数字 | 1-7
WWW... | 曜日の英語表記（「W」は3～10桁使用可能であり、曜日の名前が「W」の数より少ない場合、残りは空白を表示） | Sunday、Mondayなど
SS... | 曜日の日本語表記 Sが2つで曜日の日本語の表記1文字に相当します。（例えば、書式を「SS」とした場合、水曜日であれば、「水」と表記されます。） | 日曜日など
J | 元号の（簡易）英語表記 | M……明治 T……大正 S……昭和 H……平成
JJ... | 元号の日本語表記 |
/ | 日付区切文字の挿入位置（挿入される文字は[動作環境]ダイアログの[日付区切文字]欄にて指定） | N/A
##/##/## | [動作環境]ダイアログの[日付タイプ]欄の設定により、日付をDD/MM/YY、MM/DD/YY、またはYY/MM/DDの型式で表示します。 詳細は、後の「日付型書式の例」を参照してください。 | N/A


書式 位置指示記号 時刻型

時刻型書式の位置指示記号

モデル > 書式 > 位置指示記号

次の表は、時刻型書式の位置指示記号の一覧です。

書式 | 意味 | 範囲
HH | 時間 | 00-23
MM | 分 | 00-59
SS | 秒 | 00-59
: | 時刻区切文字の挿入位置（挿入される文字は[動作環境]ダイアログの[時刻区切文字]欄にて指定） |
PM | amまたはpmを表示し、時間を12時間制（1～11）にて表示 | AM or PM


書式 位置指示記号 一覧

位置指示記号の一覧

モデル > 書式 > 位置指示記号

以下の書式指示記号の説明では、次の小文字が特別な意味を持ちます。

  • n ……カウント値を表します。

  • s ……文字列を表します。

  • { } ……任意の部分を表します。

  • c ……マスク文字を表します。指示記号として予約されている文字（例えばX）をマスク文字として使用したい場合、その文字の前に円記号（\）を置きます。

位置指示記号とは、文字の位置を示します。

  • 文字型およびUnicode型では、X、U、L、または#の指示記号ごとに1文字を表します。文字型の場合、X、U、L、および#の合計が、データのサイズになります。

  • 数値型では、#、カウント値、および小数点を示す文字によって、数値全体と小数部の桁数が定義されます。この結果により、デフォルトの記憶型式とサイズが定義されます。

  • 省略形を使用すれば、数値型の#や、文字型、Unicode型、および論理型のXを示す位置指示記号を指定せずに、カウント値だけを指定することもできます。

指示記号 | 型 | 説明
X{n} | A | 任意の文字
U{n} | A | 入力した文字を大文字に変換
L{n} | A | 入力した文字を小文字に変換
#{n} | A, N | 任意の数値
. | N | 小数点の挿入位置（挿入される文字は[動作環境]ダイアログの[小数点]欄にて指定）
YY | D | 年を示す数字の末尾2桁（0～99）
YYYY | D | 年を示す数字4桁（0～9999）
MM | D | 月を示す数字（1～12）
MMM... | D | 月の英語表記（3～10文字）
DD | D | 月間の日付を示す数字（1～31）
DDD | D | 年間の日付を示す数字（1～366）
DDDD | D | 月間の日付の英語表記（1st、2nd、3rdなど）
W | D | 週間の曜日を示す数字（1～7）
WWW... | D | 曜日の英語表記（3～10文字）
SS... | D | 曜日の日本語表記
J | D | 元号の英語表記
JJ... | D | 元号の日本語表記
/ | D | 日付の区切文字の挿入位置（挿入される文字は[動作環境]ダイアログの[日付区切文字]欄にて指定）
HH | T | 時間（0～99）
MM | T | 分（0～59）
SS | T | 秒（0～59）
PM | T | amまたはpmを表示し、時間を12時間制（1～11）にて表示
: | T | 時刻区切文字の挿入位置（挿入される文字は[動作環境]ダイアログの[時刻区切文字]欄にて指定）


書式 マスク文字

マスク文字

モデル > 書式

書式文字列の中で、機能指示記号と位置指示記号以外の文字は、全てマスク文字です。マスク文字は、実際のデータ値に挿入されて表示されます。例えば、文字列$#####は、常に先頭にドル記号を付けて表示される5桁の整数の属性を定義します。

マスク文字の挿入位置は重要です。 #####$というように、ドル記号を右端に指定すると、ドル記号はデータの右端に表示されます。

マスク文字は、格納される型のサイズや内部表現には影響しません。

マスク文字は書式内にいくつでも使用できます。続けてマスク文字を指定する簡単な方法については、「カウント値」の説明を参照してください。


書式 書式の構成

書式の構成

モデル > 書式

書式の文字列は、次の3 種類の文字で構成されます。

  • 機能指示記号として扱われる記号

  • 位置指示記号として扱われる記号

  • マスク文字として扱われる上記以外の文字

各型ごとに使用される書式指示記号が定義されています。

参照

機能指示記号

位置指示記号

マスク文字


書式 構文規則

書式作成時の構文規則

モデル > 書式

書式を作成する際の構文規則には、次のものがあります。

大文字／小文字の区別

エスケープ文字

カウント値


書式 構文規則 大文字小文字の区別

大文字/小文字の区別

モデル > 書式 > 書式作成時の構文規則

機能指示記号と位置指示記号は、全て大文字で指定します。小文字はマスク文字として解釈されます。

例えば、次のようになります。

  • 書式XXXXXは、5文字の文字型属性を定義します。

  • 書式XXxXXは、マスク文字xが含まれる4文字のデータを表します。


書式 構文規則 エスケープ文字

エスケープ文字

モデル > 書式 > 書式作成時の構文規則

エスケープ文字「\」は、その直後の文字がマスク文字であることを明示的に指定します。これにより、指示記号によって暗黙的に指定された意味を無効にし、マスク文字として使用できるようになります。

例えば、次のようになります。

  • 書式XX\XXは、真中にマスク文字Xが挿入された4文字のデータを表します。この例の場合、文字「\」って、その直後のXがマスク文字として解釈されます。

  • 重量をポンドで表現した4桁の数値を想定し、この値の前にPを付けて表示するものとします。この場合、単に書式をP####と指定すると、Pが余白部分を埋める機能指示記号として解釈されるため、希望どおりに表示されません。そのため、\P####と指定します。

注意：

「\」文字自体をマスク文字として使用する場合は、「\\」というように2回指定してください。


書式 構文規則 カウント値

カウント値

モデル > 書式 > 書式作成時の構文規則

カウント値は、書式に同じ文字を繰り返し使用する時に使用できます。カウント値は繰り返し使用する文字の後ろに配置して、その文字の繰り返し回数を指定します。

例えば、次のようになります。

  • $#4は$####と同義です。

  • X6はXXXXXXと同義です。

  • X3U2はXXXUUと同義です。

カウント値は、位置指示記号またはマスク文字に使用できます。


項目モデル特性

モデル >

[クラス]欄のコンボボックスで[項目]を選択し、[型]欄のコンボボックスからデータ項目の属性を選択します。 項目モデルの[特性シート]には、格納形式やSQL特性も表示されます。

モデル

[モデル]リポジトリでは、この値は常に「（デフォルト）」です。変更することはできません。

詳細

入力

表示

スタイル

デフォルト/NULL

格納

SQL

ActiveX とOLE

参照

項目特性一覧


項目モデル特性 詳細

詳細

モデル > 項目モデル特性

書式 | データ項目の表示書式を定義します。[ダイアログ]ボタンをクリックして[項目書式]ダイアログボックスを開いて、簡単に書式を定義することもできます。
型 | データ項目の型を表示します。
範囲 | このデータ項目がとりうる値の範囲を設定します。Unicodeの文字列を入力することができます。
セルモデル | ベクトル型において使用するセルの型を指定します。ここからズームすると項目モデル一覧が表示されます。
内容 | BLOB項目モデルの期待値を定義します。ANSIやUnicode、バイナリ（デフォルト）データを入力できます。


項目モデル特性 入力

入力

モデル > 項目モデル特性

選択プログラム | 実行時に実行時にエンドユーザが開くことができる選択プログラムを指定します。 メインプログラムは指定できません。
起動モード | [選択プログラム]特性で定義されたプログラムを呼び出す時期を指定します。


項目モデル特性 表示

表示

モデル > 項目モデル特性

ヘルプ画面 | 項目モデルを設定したコントロールに関連付けるヘルプ画面を指定します。
ツールチップ | 項目モデルを設定したコントロールに関連付けるツールチップを指定します。
自動ヘルプ | 項目モデルを設定したコントロールに関連付ける自動ヘルプを指定します。


データソース テーブルソース カラム 特性 詳細 スタイル

スタイル

モデル > 項目モデル特性
データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > 詳細
データビューエディタ > 項目特性

次示す各フォームスタイルをクリックし、コントロールの一覧より選択することでコントロールの特性を設定することができます。次のフォームモデルのいずれかに割当てるコントロールが選択できます。

  • ブラウザ形式 …… [ブラウザ形式]フォームで表示できるコントロ－ル

  • ブラウザ形式テーブル …… [ブラウザ形式]フォーム上のテーブルで表示できるコントロ－ル

  • GUI表示形式 …… [GUI表示形式]フォームで表示できるコントロ－ル

  • GUI表示形式テーブル …… [GUI表示形式]フォーム上のテーブルで表示できるコントロ－ル

  • リッチクライアント形式 …… [リッチクライアント形式]フォームで表示できるコントロ－ル

  • リッチクライアント形式テーブル …… [リッチクライアント形式]フォーム上のテーブルで表示できるコントロ－ル

  • GUI出力形式 …… [GUI出力形式]フォームで表示できるコントロ－ル

  • GUI出力形式テーブル…… [GUI出力形式]フォーム上のテーブルで表示できるコントロ－ル

  • テキスト形式 …… [テキスト形式]フォームで表示できるコントロ－ル

参照

BLOB項目モデル


項目モデル特性 スタイル BLOB型

BLOB型項目モデル

モデル > 項目モデル特性 > スタイル

BLOB項目モデルの[スタイル]特性には、以下のオプションがあります。

  • なし …… BLOB項目は、表示用に設定されません。フォームを作成すると、BLOB項目は、フォームに配置されません。[フォーム]エディタでこの項目をドロップすることができません。

  • エディット ……APGユーティリティを使用したり、フォームに項目をドロップした場合、[エディット]コントロールとして配置されます。

  • イメージ ……APGユーティリティを使用したり、フォームに項目をドロップした場合、[イメージ]コントロールとして配置されます。GUI表示／出力フォームで有効です。

  • OLE ……APGユーティリティを使用したり、フォームに項目をドロップした場合、[OLE]コントロールとして配置されます。GUI表示フォームのみ有効です。

  • リッチエディット ……APGユーティリティを使用したり、フォームに項目をドロップした場合、[リッチエディット]コントロールとして配置されます。GUI表示／出力フォームで有効です。


項目モデル特性 デフォルト/NULL

デフォルト/NULL

モデル > 項目モデル特性

NULL値可

  • Yes……このタイプに基づく全てのカラム（プログラムのデータベースカラムや変数項目）が有効な値としてNULLを許可することを意味します。

  • No……このタイプに基づく全てのカラムでNULL値が拒否されることを意味します。

NULL計算値
（オプション）

[NULL値可]特性が「Yes」に設定されている場合にだけ有効です。アプリケーションの[NULL計算値]特性がデフォルト値を使用するように設定されている場合、このパラメータで指定されたNULL値が使用されます。

[アプリケーション特性]の[NULL計算]特性が「D=デフォルト」の場合のみ、実行時に有効になります。

Unicodeが指定できます。

NULL表示文字列
（オプション）

[NULL値可]特性が「Yes」に設定されている場合にだけ有効です。この特性のデフォルト値は、MAGIC.INI の[MAGIC_DEFAULT]セクションの指定があればその値から取り込まれます。

Unicodeが指定できます。

NULLデフォルト

NULLに割当てられるデフォルト値があるかどうかを決定します。

デフォルト値
（オプション）

特定のデフォルト値を割当てます。

Unicodeが指定できます。

データベースデフォルト値

RDBMSのテーブル定義中に定義されているデフォルト値です。


項目モデル特性 格納形式

格納形式

モデル > 項目モデル特性

文字セット

以下から指定ができます。通常日本語版の動作には関係しません。

  • A=ANSI

  • O=OEM

デフォルト記憶形式

開発時に使用するデータベースゲートウェイに依存せず、実行時に使用するデータベース間の移行性をサポートするための設定です。

「Yes」に設定した場合、[記憶形式]、[サイズ]、[データベース定義]の各特性の指定が無効になります。

修正許可

実行時にエンドユーザがカラムの値を修正できるかどうかを指定します。

更新形式

項目の更新方法を指定します。「数値項目の更新」を参照してください。

  • A=値更新

  • D=差分更新


項目モデル特性 SQL

SQL

モデル > 項目モデル特性

データベース情報 | 実行時、DBMSゲートウェイに渡されるカスタマイズ情報を定義します。
DBカラム名 | 使用データベースで定義されているカラムの実際の名前を定義します。
タイプ | 使用データベースでのSQLのデータタイプを定義します。
ユーザタイプ | 使用データベースでユーザにより定義されたデータタイプです。


項目モデル特性 ActiveXとOLE

ActiveX と OLE

モデル > 項目モデル特性

タイプライブラリ

使用されるオブジェクトのタイプを定義します。

  • OLE項目の場合……最初に設定する必要があります。ここからズームするとPCに登録されているオブジェクトが一覧表示され、ここから選択できます。

  • ActiveX 項目の場合……オブジェクト名を指定すると自動的に設定されます。オブジェクト名を指定しない状態では、無効になっています。

オブジェクト名

タイプライブラリ内の実際のオブジェクトを指定します。タイプライブラリは、複数のオブジェクトタイプをサポートしています。

  • OLE項目の場合……タイプライブラリを選択した後でここでズームします。オブジェクトの一覧が表示され、選択したタイプライブラリによってサポートされているオブジェクト名を選択します。

  • ActiveX項目の場合……最初にここからズームしてオブジェクトを選択します。PCに登録されている挿入可能なオブジェクトが一覧表示されます。

サブオブジェクト名

オブジェクトはサブオブジェクトの階層で構成されていることがあります。選択したオブジェクトがサブオブジェクトを持っている場合、ここでズームすることでサブオブジェクトを選択できます。

サブオブジェクトを指定することで、実行時に取得されるサブオブジェクトの参照を保存できます。

COMオブジェクトの中には、コレクションタイプのサブオブジェクトを含むものがあります。コレクション項目は、通常IDフィールドから取り出すことができます。MGItemSequentialという内部メソッドを使用して連続したインデックスを指定することによって、コレクションから項目を取り出すことができます。

インスタンス化

オブジェクトのインスタンス化する方法を指定します。

  • A=自動……Magicは、タスクのオープン時に自動的にオブジェクトをインスタンス化し、タスク終了時に解放します。

  • N=なし……COMObjCreateやCOMObjRelease関数を使用して手動でオブジェクトのインスタンスを作成したり解放したりします。

注意: この特性が無効の場合、オブジェクトを手動で作成できません。

リモートホスト

ホストのIPアドレス（またはホスト名）を指定することで、指定されたリモートPC上でインスタンス化されたDCOMオブジェクトを定義することができます。リモートPCの定義には、「%DCOM_Host%」というように「%」文字を使用することでシークレット名や論理名を使用することができます。デフォルト値は、空白です。リモートPCが指定されない場合、オブジェクトはローカルPC上でインスタンス化されます。

ActiveX デフォルト

この特性は、ActiveXでのみ有効です。ここでズームするとオブジェクトによって提供されたデフォルトの設定ダイアログがオープンされます。

項目定義の一部として格納することのできるデフォルト値を変更できます。 ただし、全てのオブジェクトがこのダイアログを持っているわけではありません。


項目モデル特性 項目特性一覧

項目特性一覧

モデル > 項目モデル特性

全ての型の項目特性は以下の通りです。

詳細 | デフォルト/NULL
型 書式 セルモデル 範囲 | NULL値可 NULL計算値 NULL表示文字列 NULLデフォルト デフォルト値 データベースデフォルト値
入力 | 格納形式
選択プログラム 起動モード 表示 ヘルプ画面 ツールチップ 自動ヘルプ | 文字セット デフォルト記憶形式 修正許可
ActiveXとOLE | SQL
タイプライブラリ オブジェクト名 サブオブジェクト名 インスタンス化 ActiveX デフォルト | データベース情報 DBカラム名 タイプ ユーザタイプ Datetimeの一部
スタイル |


項目モデル特性 項目特性一覧 タイプライブラリ

タイプライブラリ

モデル > 項目モデル特性 > 項目特性一覧

使用されるオブジェクトのタイプを定義します。

  • OLE項目の場合……最初に設定する必要があります。ここからズームするとPCに登録されているオブジェクトが一覧表示され、ここから選択できます。

  • ActiveX 項目の場合……オブジェクト名を指定すると自動的に設定されます。オブジェクト名を指定しない状態では、無効になっています。


項目モデル特性 項目特性一覧 オブジェクト名

オブジェクト名

モデル > 項目モデル特性 > 項目特性一覧

タイプライブラリ内の実際のオブジェクトを指定します。タイプライブラリは、複数のオブジェクトタイプをサポートしています。

  • OLE項目の場合……タイプライブラリを選択した後でここでズームします。オブジェクトの一覧が表示され、選択したタイプライブラリによってサポートされているオブジェクト名を選択します。

  • ActiveX項目の場合……最初にここからズームしてオブジェクトを選択します。PCに登録されている挿入可能なオブジェクトが一覧表示されます。


項目モデル特性 項目特性一覧 サブオブジェクト名

サブオブジェクト名

モデル > 項目モデル特性 > 項目特性一覧

オブジェクトはサブオブジェクトの階層で構成されていることがあります。選択したオブジェクトがサブオブジェクトを持っている場合、ここでズームすることでサブオブジェクトを選択できます。サブオブジェクトを指定することで実行時に取得されるサブオブジェクトの参照を保存できます。


項目モデル特性 項目特性一覧 インスタンス化

インスタンス化

モデル > 項目モデル特性 > 項目特性一覧

オブジェクトのインスタンス化する方法を指定します。

  • A=自動……Magicは、タスクのオープン時に自動的にオブジェクトをインスタンス化し、タスク終了時に解放します。

  • N=なし……COMObjCreateやCOMObjRelease関数を使用して手動でオブジェクトのインスタンスを作成したり解放したりします。


項目モデル特性 項目特性一覧 リモートホスト

リモートホスト

モデル > 項目モデル特性 > 項目特性一覧

ホストのIPアドレス（またはホスト名）を指定することで、指定されたリモートPC上でインスタンス化されたDCOMオブジェクトを定義することができます。リモートPCの定義には、「%DCOM_Host%」というように「%」文字を使用することでシークレット名や論理名を使用することができます。デフォルト値は、空白です。リモートPCが指定されない場合、オブジェクトはローカルPC上でインスタンス化されます。


項目モデル特性 項目特性一覧 ActiveXデフォルト

ActiveX デフォルト

モデル > 項目モデル特性 > 項目特性一覧

この特性は、ActiveXでのみ有効です。ここでズームするとオブジェクトによって提供されたデフォルトの設定ダイアログがオープンされます。

項目定義の一部として格納することのできるデフォルト値を変更できます。 ただし、全てのオブジェクトがこのダイアログを持っているわけではありません。


項目モデル特性 項目特性一覧 セルモデル

セルモデル

モデル > 項目モデル特性 > 項目特性一覧

ベクトルを定義する場合、どのようなタイプのセルがベクトルにあるかを指定する必要があります。これは、ベクトルのセルモデルに別のモデルを定義することで実現しています。ここからズームして選択テーブルを開き、モデルを選択します。この特性はベクトル型でのみ有効です。

セルモデルに、ベクトル型のモデルを定義することもできます。この場合、ベクトルのベクトルを持つことになります。ベクトルは、指定されたセルインデックスをもとにデータの格納や取得を行うことができる配列です。ベクトルセルは、モデルリポジトリに定義されている項目モデルから指定する必要があります。指定するモデルはどのようなデータ型でも有効です。


コントロールモデル特性

モデル >

[型]カラムから適当なコントロールタイプ（エディット、テキスト、プッシュボタン、チェックボックス、ラジオボタンなど）を選択し、モデルをコントロールに割当てることができます。全てのコントロールタイプのコントロール特性は次のとおりです。

詳細 | 表示 | 位置とサイズ
型 ボタンスタイル カラムタイトル コンテキストメニュー コントロール名 デフォルトイメージファイル名 データ 明細行 表示項目 範囲 書式 フレーム名 インデックス 幅固定 選択項目リスト 選択表示リスト リンク項目 ハイライト表示 実行イベント 範囲 スクロール サイズ変更可 ソート可 スタティックタイプ テキスト | マルチマーキング 境界線 列数 色 カラムの区切線 有効 固定サイズテーブル フォント 自動ヘルプ ヘルプ画面 水平整列 水平精度 イメージ効果 イメージスタイル 最終区切り線 区切り 線種 線幅 表示行数 右境界線 行高さ スクロールバー ステップ スライダ形式 スタイル タブラベル位置 ウィンドウ内テーブル タイトル高さ ツールチップ 上境界線 垂直整列 垂直精度 可視 | 左辺位置 位置 上辺位置 X1 X2 Y1 Y2
入力 | パーキング | OLE
CR許可 照会モード時修正許可 パラメータ 接続先 水平スクロール 修正許可 複数行編集 必須入力 パスワードエディット プログラム／タスク番号 起動モード 選択モード 選択プログラム 垂直スクロール | パーク可 タブで移動 | リンク自動更新 OLE表示形式 OLEクラス OLE形式 OLEフレームタイプ使用

参照

ブラウザコントロール特性

GUI表示コントロール特性

フレームセットコントロール特性

テキスト形式コントロール特性

リッチクライアント表示フォーム特性

リッチクライアントコントロール

リッチクライアントフレームフォーム特性

リッチクライアントフレームコントロール


フォームモデル特性

モデル >

フォームモデルでは、GUI表示形式、GUI出力形式、テキスト形式、ブラウザ形式、フレームセット形式、マージ形式の中からフォームを選択することができます。フォームごとの特性については、以下を参照してください。

ブラウザ形式フォーム特性

GUI表示形式フォーム特性

GUI出力形式フォーム特性

テキスト形式フォーム特性

フレームセット形式フォーム特性

マージ形式フォーム特性

リッチクライアント表示フォーム特性

リッチクライアントフレームフォーム特性


ヘルプ特性

ヘルプモデル特性

モデル >

ヘルプモデルの特性は、以下のセクションで構成されています。

モデル

詳細

入力

表示

位置とサイズ


ヘルプ特性 モデル

モデル

モデル > ヘルプ特性

このパラメータでは、ヘルプ画面を特定のデータ型と関連付けることができます。このヘルプ画面は、エンドユーザがこのデータ型と関連付けられているカラムのヘルプを要求した時に、実行モードで使用することができます。


ヘルプ特性 詳細

詳細

モデル > ヘルプ特性

  • テキスト……内部ヘルプとして表示する文字列

  • ヘルプファイル名……ヘルプファイルの名前

  • ヘルプコマンド……ヘルプファイルのコマンド。例えば、「コンテキスト」、「目次」、「キーワードで検索」などです。

  • キー値……ヘルプファイルをナビゲートするために定義されているキー


ヘルプ特性 入力

入力

モデル > ヘルプ特性

  • タイトルバー……タイトルバーを表示します。

  • システムメニュー……システムメニューを表示します。


ヘルプ特性 表示

表示

モデル > ヘルプ特性

  • フォント：6（デフォルト）……フォントを指定します。

  • 色： 4 （デフォルト） ……色を指定します。

  • 境界：H= 太線（デフォルト）……ウィンドウの境界線のスタイルを指定します。


ヘルプ特性 位置とサイズ

位置とサイズ

モデル > ヘルプ特性

  • 左辺位置：36（デフォルト）……ヘルプ画面の左辺位置を指定します。

  • 上辺位置：0（デフォルト）……ヘルプ画面の上辺位置を指定します。

  • 幅：42（デフォルト）……ヘルプ画面の幅を指定します。

  • 高さ：21（デフォルト）……ヘルプ画面の高さを指定します。


モデルの使用

モデル >

デフォルトでは、新しいオブジェクトはシステムベースのモデルと関連付けられます。

新しいアプリケーションが作成されると、システムベースのモデルの特性値が自動的に使用されます。システムベースの特性値は黒色で表示されます。

参照

モデル定義の利点

モデルの作成

モデルの削除

継承


モデル定義の利点

モデル > モデルの使用

プロジェクトに必要なオブジェクトを設計する場合、共通の属性に基づいてグループ化すべきかどうかを考慮することは、アプリケーションの設計、実装、保守の容易さのために重要です。[モデル]リポジトリでは、各グループにモデルを定義することによって、これらのグループに共通な特性を定義することができ、個々のオブジェクトはこのように定義されたモデルを参照することにより、簡単に定義できるようになります。

モデル定義を使用するかどうかは開発者の設計次第ですが、使用するとプロジェクトの開発や管理に便利です。[モデル]リポジトリを使用すると、次のような利点があります。

プロジェクト開発に要する時間を節約できます。

  • オブジェクトモデルを作成すると、同様の特性を持つオブジェクトはそのモデルを参照するだけで定義でき、個々のオブジェクトごとにいちいち同じ特性値を設定する必要がなくなります。

管理が容易になります。

  • モデルの特性値を変更すると、そのモデルに関連する全てのオブジェクトの特性値に自動的に継承されます。

項目モデルを使用することでさまざまなテーブルやプログラムの変数・パラメータなどで特性を一致させることができます。

  • カラムをリンク定義する場合などには、両カラムの属性が正確に一致していなければなりませんが、同じモデルを使用してカラムを定義すると簡単に実現することができます。

例

項目モデル

Customer_Codeオブジェクトがプロジェクト内で頻繁に使用されると仮定します。型特性（数値）と書式特性（9桁）などの特性値をを[モデル]リポジトリに設定することで、プロジェクトに内でこのモデルを使用することができます。さらに、オブジェクトの書式（例えば9桁から10桁へ）を修正する必要がある場合、[モデル]リポジトリで変更するだけで該当するオブジェクトの書式にすべて反映されます。

フォームモデル

プロジェクト内のフォームのすべてが均一で、[背景]特性にイメージが定義されているものと仮定します。この特性をフォームを新規に作成するたびに設定することは時間の無駄遣いになります。モデルを使用してこれらの特性を継承させることで、どのようなイメージで表示させるかを考える必要がなくなります。さらに、特性を変更する必要が発生した場合も、モデルの特性値を変更するおとで簡単に反映させることができます。


モデルの使用 作成

モデルの作成

モデル > モデルの使用

ユーザ定義のモデルを作成するには、システムベースの特性値を定義し直します。新しいモデルをダブルクリックして、[特性]シートにアクセスします。

[特性]シートで変更を行わなかった場合、そのモデルではシステムベースのモデルの値がそのまま使用されます。


モデルの使用 削除

モデルの削除

モデル > モデルの使用

ユーザ定義のモデルを削除することができます。モデルを削除すると、モデルと関連付けられている全てのオブジェクトが未定義になり、チェックを実行するとエラーが発生します。

モデルを削除する際には、次の警告が表示されます。

注意：

モデルを削除した場合、参照しているオブジェクトに予測できない影響が出る可能性があります。


モデルの使用 継承

継承

モデル > モデルの使用

Magicの継承機能は、以下のように動作します。

  • モデルを新しいオブジェクトに割り当てると、オブジェクトの特性はモデルから引き継がれます。

  • 特性の値を変更することで、該当する特性の継承が解除されます。

  • モデルを既存のオブジェクトに割り当てると、個別に値が設定されていない特性だけがモデルから引き継がれます。

  • オブジェクトのモデルを別のモデルに変更すると、継承されている特性値は変更されたモデルの特性値に変更されます。

  • モデルをオブジェクトから外すと、オブジェクトの特性は、オブジェクトのデフォルト値に変更されます。

以下のトグルボタンを使用することで、各特性に対して継承機能を制御することができます。

このボタンは、現在の特性の継承状態の反対の状態で表示されます。つまり、継承が解除されている場合、継承アイコンが表示されます。

  • 継承解除 …… 特性の継承を解除する場合は、このボタンを使用します。

  • 継承 …… モデルから特性を継承させる場合は、このボタンを使用します。

修正された特性（継承が解除された特性）は青色の太字で表示されます。

継承関係が変更される要因について以下に説明します。

継承関係の解除

個々のモデルの特性の値を、継承されてきたデフォルトの値ではなく、別の値に定義しなおすことができます。特性値を再定義すると、関連付けられているモデルの現在の特性値または更新された特性値が継承されなくなります。継承が「切れた」特性値は、[継承設定]ボタンで継承を設定し直すことができます。

オブジェクトに別のモデルを選択

モデルを別のモデルに変更すると、関連付けられているオブジェクトには新しいモデルの特性が継承され、元のモデルの特性は無視されます。

オブジェクトからモデルを削除

モデルの選択状態を削除すると、ユーザ定義モデルと関連付けられていたオブジェクトが置き換えられ、オブジェクトには、そのオブジェクトタイプのシステムベースのモデルの特性値が継承されます。


モデルの使用 式

式

モデル > モデルの使用

モデルに特性値として式が割当てられている場合、関連付けられている全てのオブジェクトは、[モデル]リポジトリに登録され、オブジェクトの[式]欄に表示されるモデル番号を所有します。オブジェクトに別の式を選択すると、モデルへの継承が切れます。式の値を置き換えずに削除すると、オブジェクトには特性値としての式がなくなります。


モデルの使用 権利

権利

モデル > モデルの使用

アプリケーションの権利は、モデルテーブル全体に割当てることができます。[モデル]リポジトリでモデルに権利を設定するには、[権利]ダイアログを開きます。次のような権利を割当てることができます。

  • 照会権利……モデルテーブルに表示されるモデルを参照できる。

  • 修正権利……モデルテーブルの内容を変更できる。

  • 削除権利……ユーザ定義のモデルを削除できる。

  • 登録権利……モデルテーブルでモデルを作成できる。


Magicエンジン

Magicエンジンは、Magic の実行の全体を管理するモジュールであり、プロジェクトで定義された処理を実行します。

エンジンには、開発者が使用する処理機能とロジックユニットと呼ばれるプログラムを実行する上での処理構造が含まれています。エンジンは、あらかじめ決まった手順に従って、ファイルを読み込み、レコードを読み込み、ソートし、画面にデータを表示するなどの動作を実行します。他のアプリケーション開発ツールと異なる点は、これらの決まりがMagicエンジン内にあらかじめ組みこまれており、アプリケーション開発者があまり意識する必要がないと言うことです。

知っておかなければいけない重要な点は、どのような設定をするとMagicエンジンがどのように処理を実行するかということです。これらの内容は、あらかじめ定義されていることで開発者が制御できるものではありません。

この内容を理解した上で、プログラムを開発する必要があります。この内容を理解しないでプロジェクトを開発した場合、問題が発生する可能性があります。

参照

タスク

エンジン実行レベル

Magicエンジンの実行規則

ユーザ定義イベント

開発機能

タスクデータビュー

タスクフローでの処理モード

マルチスレッド


タスク

Magicエンジン >

プロジェクトは複数のプログラムから構成され、各プログラムは複数のタスクで構成されます。

注意：

タスクとプログラムには次のような違いがあります。タスクは、プログラムを構成するための基本的なユニットです。プログラムは主要なタスクとサブタスクで構成されます。

従って、タスクはプロジェクトの処理を定義するプログラムの最も基本となる単位です。データベース関連の処理では、ほとんどの場合、データベーステーブル中のレコードに対するループ処理が必要になります。このような、テーブルに対するループ処理を行う単位がタスクです。タスクでのループ処理はタスクごとに決められたデータベーステーブルに対して行われ、これをタスクの「メインソース」と呼んでいます。

  1. まず最初に、タスクの[データビュー]エディタでメインソースを定義します。プロジェクトの[データ]リポジトリ内で定義されたデータソースの内１つを指定するか、またはメインソースを指定しないかを選択します。

  2. 続いて[タスク特性]ダイアログでタスクの種類を指定します。タスクの種類には、オンラインタスク、バッチタスク、あるいはブラウザタスクがあります。
    オンラインタスクあるいはブラウザタスクの場合、タスクの実行時、ユーザにメインソースが表示されます。メインソース内でレコード間の移動が可能で、ユーザはレコードを見ながら編集を行うことができます。したがって、データ入力画面を表示したり、検索ウィンドウを開いたりするような、ユーザとの対話処理が必要になる場合には、タスクはオンラインタスクかブラウザタスクにしなければなりません。
    バッチタスクの場合、ユーザとの対話処理なしに、テーブルの最初のレコードから最後のレコードまで各レコードが順に処理されます。処理の対象となるレコードを範囲や条件などで制限することも可能で、これはタスクの「データビュー」を定義することにより行います。レポートの作成やテーブル全体にわたるデータの更新など、自動処理を行いたい場合、バッチタスクにします。

  3. 以上のようにして、メインソースとタスクの種類（オンラインタスク、バッチタスク、あるいはブラウザタスク）を選択したら、その後、タスクの具体的な処理内容を定義します。つまり、タスク、レコード、コントロール、グループ（バッチタスクの場合のみ）の各レベルのループ処理において、処理コマンドや実行イベント、パラメータなどを定義します。

各タスクに対しては、次のように処理の詳細を定義します。

  • テーブルに対してのループ処理において、実行すべき処理コマンドの決定（例えば、データ入力や印刷など）。

  • 処理コマンドの[ロジック]エディタへの割当。[ロジック]エディタにはいくつかのレベル（タスク、グループ、レコード、項目、コントロール）に分けて定義されていて、タスクの実行はこのレベルに従って行われます。

参照

エンジン実行レベル

ブラウザクライアントアプリケーション

ユーザ定義イベント

開発機能

タスクデータビュー

タスクフローでの処理モード

マルチスレッド


エンジン実行レベル

Magicエンジン >

Magicのタスクの実行レベルには、以下の６つがあります。

  • タスクレベル …… タスクの開始から終了までのレベルです。

  • グループレベル …… レコードグループの最初から終了までのレベルです。バッチタスクの場合必要に応じて定義することができます。

  • レコードレベル …… レコードをフェッチしてから、処理して保存するまでのレベルです。

  • 項目レベル ……・このハンドラでは、コントロールタイプと関連付ける項目を選択します。項目を選択すると、[式]特性は無効になります。指定したコントロールに対して、実行する処理を定義することができます。項目ハンドラは、オンラインタスクでの有効です。

  • コントロールレベル …… フォーム上のコントロールがアクセスされてからそのコントロールを抜けるまでのレベルです。オンラインタスクかブラウザタスクでコントロールレベルの処理が必要な場合に定義します。

  • イベントレベル ……[イベント選択]ダイアログで指定したイベントのトリガが発生してから、ハンドラ内の処理が終了するまでのレベルです。

コントロールレベルがレコードレベルの一部であるように、タスクやグループ、レコード、およびコントロールレベルは互いにネストされます。例えば、グループレベルの一部であったり、タスクレベルの一部であったりします。

グループ、レコード、およびコントロールレベルは周期的で、複数回(複数のグループ、レコード、およびコントロールのために)実行される場合があります。

概要

以下の表は、Magicの基本的なロジックユニットとそれらのトリガについて説明したものです。

ロジックユニット名 | ロジックユニットトリガ | 実行数
タスク前 | タスク実行時 | 一回
タスク後 | タスク終了時 | 一回
レコード前 | レコードのデータ取得時 | 0 ～ N
レコード後 | レコード処理の終了時 | 0 ～ N
コントロール前 | エンドユーザがコントロール上にパークした時 | 0 ～ N（レコード毎）
コントロール検証 | エンドユーザがコントロールを抜ける前 | 0 ～ N（レコード毎）
コントロール後 | エンドユーザーがコントロールを抜ける時 | 0 ～ N（レコード毎）
項目変更 | 項目の値が変更された時 | 0 ～ N（レコード毎）

* N ：1以上の数値を表します。

参照

ユーザ定義イベント

ユーザ定義関数


エンジン実行レベル タスクレベル

タスクレベル

Magicエンジン > エンジン実行レベル

タスクレベルでは、タスクの起動時と終了時の処理を定義できます。

[タスク前]には、タスクの開始時に１回だけ実行されるタスクの初期化処理を指定します。帳票のヘッダの印刷やローカルのパラメータの初期化などが代表的な例です。

[タスク後]には、タスクの終了時に実行される終了処理を定義します。例えば、パラメータを呼び出し元のタスクに返すためにパラメータを更新する処理や、レポートの総合計を出力する処理などが代表的な[タスク後]の処理です。

参照

グループレベル

レコードレベル

項目レベル

コントロールレベル

イベントレベル


エンジン実行レベル タスクレベル タスク前

タスク前

Magicエンジン > エンジン実行レベル > タスクレベル

タスク前では、以下のような処理が実行されます。

  1. このタスクが別のタスクから[コール]処理コマンドなどで呼び出された時には、呼び出しタスクから渡されたパラメータが、呼び出されたタスクのパラメータ項目あるいは変数項目にコピーされます。

  2. タスクのデータビューの準備と作成が行われます。つまり、処理の対象となるレコードの選択やソートなどがMagic エンジンにより実行されます。データビューの準備については、「Magic によるデータビューの準備処理」を参照してください。

  3. [タスク前]に定義されている処理が全て、定義されている順に実行されます。

  4. タスクがオンラインタスクで、モードが修正（または、照会）モードの場合、初期画面に表示する一連のレコードをアクセスします。まず最初に現在のスクロールや繰り返しの設定にしたがって、画面に一度に表示されるレコードの数が計算されます。次に、このレコード数分のレコードがアクセスされ、データ定義の[代入]特性と[リンク]コマンドのリンク条件式が評価されます。その後、レコードが画面に表示されます。

  5. ブラウザタスクの場合、[タスク特性]の[チャンクサイズ（式）]特性によって、フェッチされるレコード数が決まります。

参照

タスク後


エンジン処理レベル タスクレベル タスク後

タスク後

Magicエンジン > エンジン実行レベル > タスクレベル

[タスク後]には、タスクの終了時に実行する処理コマンドを定義します。[タスク後]ロジックユニットは、タスクの終了処理（パラメータの更新や合計値の集計など）で使用される処理コマンドを定義します。

[タスク後]では、以下のような処理が実行されます。

  1. レコードループ処理が完了すると、[タスク後]で定義されている処理コマンドが、[ロジック]エディタに定義されている順に、全て実行されます。

  2. タスクが終了します。

参照

タスク前


エンジン実行レベル グループレベル

グループレベル

Magicエンジン > エンジン実行レベル >

[グループ]ロジックユニットは、データビューの処理中にブレイク処理をさせるものです。グループレベルは、バッチタスクの場合にのみ有効です。

一定のレベルでの合計値を計算したり、グループ毎にデータを表示したり、帳票でグループに分けて出力したりする場合に使用することができます。

グループレベルは、指定した項目でレコードをグループ分けします。例えば、顧客番号や購入数に対するグループレベルを定義することができます。グループレベルで定義された項目の内容が変わった場合、前処理と後処理にその変更内容に応じた処理を定義します。

１つのタスク内に異なる項目に対する[グループ]ロジックユニットを定義することができます。ロジックユニットの定義順は、タスクのソート処理で定義されたセグメントの順番と合わせるようにしてください。例えば、タスクのメインソースのインデックスセグメントがCountry_Code、City_Codeの順番の場合、[グループ]ロジックユニットも同じ順序で定義する必要があります。

ソートセグメントの途中に定義された項目から始まる[グループ]ロジックユニットを定義すると、正しい結果にならない場合がります。

参照

グループレベルの実際の流れ

バッチタスクのイベント処理

グループ前

グループ後

グループレベルの例


エンジン実行レベル グループ 実際の流れ

グループレベルの実際の流れ

Magicエンジン > エンジン実行レベル > グループレベル

ロジックユニットの実行順序は以下の通りです。

  • タスク前

  • グループ前（最初のレコード、またはグループの項目値が変更された時点）

  • レコード前

  • レコード後

  • グループ後

  • タスク後

Magic エンジンがバッチタスクの実行を開始すると、最初に[タスク前]を実行します。次に、最初のレコードに対して、全てのグループレベルの[グループ前]を、上位のグループレベルから下位のグループレベルの順で実行していきます。その後、エンジンは、メインソースから１レコードづつフェッチしてレコード処理を進めていきます。

レコードをフェッチした時に、いずれかのグループ項目の値に変化を検出すると、[レコード後]の後に、最下位のグループレベルから、変化があったグループ項目のグループレベルまで、[グループ後]が全て実行されます。[グループ後]は、この時点で処理済みのレコードに対して実行されます。この後、グループ項目に変化があったグループレベルから、最下位にあるグループレベルまで、[グループ前]が全て実行されます。この[グループ前]も、この時点での処理済みのレコードに対して実行されます。

続いて、次のグループの最初のレコードがレコードレベルで処理されます。その後も引き続きグループ項目の値がチェックされ、変化があった時には同様の処理が繰り返されます。最後に、レコードが全て処理し終わった時、あるいは[タスク終了条件]特性の式が「True」に評価された時には、レコードの処理が終了し、最下位のグループレベルから最上位のグループレベルまで、グループ後が実行されます。この処理は、最後に処理されたレコードに対して実行されます。その後[タスク後]が実行され、タスクが終了します。

参照

バッチタスクのイベント処理

グループレベルの例


エンジン実行レベル グループ バッチタスクのイベント処理

バッチタスクのイベント処理

Magicエンジン > Magicエンジンの実行規則（バッチ）

バッチタスク処理は、オンラインタスクの処理とは異なり、実行エンジンがユーザからの入力を待機せずにレコードが処理されます。

バッチタスクでは、保留されているイベントをポーリングできます。バッチタスクエンジンがイベントをポーリングするタイミングは、次の表に示すように、タイマ、処理済みレコード数、またはこの両方によって指定できます。

# | バッチイベント間隔 | レコードイベント間隔 | 動作
1 | 0 | 0 | そのタスク内でポーリングしません
2 | 0 | N | Nレコードごとにポーリング
3 | M | 0 | Mミリ秒ごとにポーリング
4 | M | N | Mミリ秒とNレコードごとにポーリング

[バッチイベント間隔]パラメータは[動作環境]ダイアログ内にあり、バッチタスクのイベントポーリング用にタイマを設定できます。「0」を入力すると、バッチイベント間隔は無効になります。この場合、イベントのポーリングは、レコードイベント間隔の数値によってのみ決定されます。

[レコードイベント間隔]は[タスク特性]ダイアログ内にあり、タスクごとに式で指定することができます。「0」以外を指定した場合にはレコード数として解釈され、指定された数のレコードが処理されるたびに、イベントのポーリングが行われます。「0」を入力すると、レコード数はチェックされなくなり、イベントのポーリングは、バッチイベント間隔パラメータ内に設定された数値によってのみ決定されます。


エンジン実行レベル グループ グループ前

グループ前

Magicエンジン > エンジン実行レベル > グループレベル

この処理は、バッチタスクの場合にのみ有効です。

[グループ前]レベルを定義した時には、同時に、グループ化するための項目も指定します。この項目を「グループ項目」と呼びます。例えば、受注詳細テーブルから各顧客ごとの受注合計を印刷するタスクでは、レコードを顧客ごとにグループ化しますので、顧客番号のカラムがグループ項目になります。Magic エンジンは、ループ処理を１レコード進める際に、直前に処理したレコードと現在のレコードのグループ項目を比較し、これが異なっている場合には、レコードのグループが変わったと見なして、グループ前レベルに指定されている処理コマンドを実行します。例えば、顧客ごとの帳票出力処理であれば、ここには、顧客についての詳細を記述したグループヘッダを出力するといった処理を行います。

レコードのグループ化は、複数の項目に対して階層的に定義することもできます。この場合には、複数のグループ項目に対して[グループ前]／[グループ後]を定義することになります。グループレベルは必要なだけ定義することができます。


エンジン実行レベル グループ グループ後

グループ後

Magicエンジン > エンジン実行レベル > グループレベル

[グループ後]レベルは、バッチタスクでだけ有効です。

[グループ後]は[グループ前]に対応するレベルで、レコードの１グループが終わったとエンジンが判断した時、すなわち、現在のレコードと次のレコードのグループ項目の値が異なる場合に、グループの最後のレコードの[レコード後]の後に実行されます。例えば、レコードを顧客ごとにグループ化して帳票を出力するタスクでは、各顧客の受注額の合計が書かれたグループフッタを出力する処理などがこれにあたります。

グループ前と同じく、グループレベルは異なるグループ項目に対して複数定義することができます。


エンジン実行レベル グループ ソート

データのソート

Magicエンジン > エンジン実行レベル > グループレベル

データビューは２つの方法でソートすることができます。

  • メインソースのインデックスを使用する……この場合、インデックスセグメントの順番は[グループ]ロジックユニットの順番と同じにしなければなりません。

  • タスクの[ソート]テーブルを使用する……[グループ]ロジックユニットの順番と合うインデックスが定義されていない場合、このオプションを使用することができます。

[グループ]ロジックユニットはネストすることができますが、２つの基本的な規則を守る必要があります。

  • インデックスセグメントの順番を[グループ]ロジックユニットの順番と合わせます。インデックス内の上位セグメントは、上位の[グループ]ロジックユニットになる必要があります。

  • [グループ後]を[グループ前]の次に定義します。この間に、別の[グループ]ロジックユニットを定義しないでください。

これらのロジックユニットに定義する処理コマンドがない場合、[グループ前]または[グループ後]のロジックユニットを作成する必要はありません。

以下の例は、上記の説明をもとにしたものです。

国名、都道府県名、および市町村名が含まれるアドレス情報を顧客データに含まれているものとします。

また、住所毎の顧客リストを印刷したいと仮定します。この場合、２つの[グループ]ロジックユニットを定義する必要があります。

  1. 最初の[グループ]ロジックユニットは国名の項目で定義します。このロジックユニットは、最上位に定義します。

  2. ２番目の[グループ]ロジックユニットは、都道府県名の項目で定義します。この場合は、国名の[グループ]ロジックユニットの次に定義する必要があります。

インデックスのセグメントは以下の順番で定義されている必要があります。

  1. 国名

  2. 都道府県名

注意：

データソースレコードをソートするために、Magicが一時的なインデックスを作成するため、大きなデータソースでソートするとタスクの性能が低下する可能性があります。


エンジン実行レベル グループ 例

グループレベルの例

Magicエンジン > エンジン実行レベル > グループレベル

例えば、[受注]データを基に集計を行うとします。このデータは、「顧客コード」（上位グループレベル）、「受注番号」（中位グループレベル）、「商品コード」（下位グループレベル）でソートされているものとします。つまり、「商品コード」の値が変化すると下位のグループレベルの値が、「受注番号」の値が変化すると中位のグループレベルの値が、「顧客コード」の値が変化すると上位のグループレベルの値がそれぞれ、変化（ブレイク発生）することになります。

この場合、まず、最初のレコードについて、上位のグループレベルから下位のグループレベルまで、各グループレベルの[グループ前]が実行されます。その後、最初の顧客の最初の受注番号の最初の商品の処理が完了すると、「商品コード」の[グループ後]（最初のグループレベル）が実行されます。

最初の受注番号に属する全ての商品について処理が終わると、中位のグループレベル（つまり、受注番号）の[グループ後]が実行され、ここで、最初の注文の合計が出力されます。続いて、最初の顧客について「商品コード」と「受注番号」の両方のグループレベルの処理が終わると、次の顧客について[グループ前]が実行されます。

以上のようにしてレコードのチェックが進み、途中、上位のグループレベルの値が変化した場合、そのグループレベルの下位のグループレベルから、値が変化したグループレベルまでの[グループ後]が全て実行されます。その後、再度、次のレコードが処理されることになります。

このようにして、全てのレコードについて処理が完了すると、[タスク後]が実行されます。この処理により、全ての顧客の注文の合計価格が出力されます。

参照

グループレベルの実際の流れ

バッチタスクのイベント処理


エンジン実行レベル レコードレベル

レコードレベル

Magicエンジン > エンジン実行レベル

レコードレベルには、前処理と後処理があります。

[レコード前]では、レコードがディスクから読み込まれてから、ユーザが対話処理を始める直前までに実行される、各レコードに対する初期化処理を定義します。

[レコード後]では、次のような処理を定義します。

  • バッチタスクの場合……データビューのレコードに関する処理

  • オンラインタスク/ブラウザタスクの場合……参照と変更が行われたレコードに関する処理
    レコードがユーザの入力などで変更されていない時には、通常、[レコード後]が実行されません。レコードが変更されていない場合にも[レコード後]を実行させたい場合には、[タスク特性]の[強制レコード後]特性で指定できます。

参照

タスクレベル

グループレベル

項目レベル

コントロールレベル

イベントレベル


エンジン実行レベル レコードレベル レコード前

レコード前

Magicエンジン > エンジン実行レベル > レコードレベル

[レコード前]では、レコードがディスクから読み込まれてから、ユーザが対話処理を始める直前までに実行される各レコードに対する初期化処理を定義します。[レコード前]には、レコードの初期設定段階で使用される処理コマンドを定義します。

レコードループ

オンラインタスクやブラウザタスクではユーザが参照している各レコードについて、以下に説明する「レコード初期化」処理が実行されます。また、バッチタスクでは、処理対象となる全レコードについて、[データビュー]エディタのメインソース定義の[インデックス]特性で指定されたインデックスの順番あるいは[ソート]テーブルに指定された順番で、最初のレコードから最後のレコードまで、１レコードずつ処理が実行されます。

  1. データビューの最初のレコードに位置付け、レコードを取得します。

注意：

オンラインタスクでは、レコードが見つからない場合、作成モードでタスクがオープンされます。[タスク特性]の[登録]特性が「Yes」に設定されている場合のみこのように動作します。「No」の場合は、タスクは終了します。

  2. [代入]特性はすべての変数項目で評価されます。タスクが登録モードの場合、カラムの[代入]特性も評価されます。

  3. データソースに対するすべてのリンクが、現在のレコードに対して実行されます。

  4. [タスク特性]の[チェック時期]特性が、「B=前置」に設定されている場合、Magicは[タスク終了条件]特性を評価します。

  5. レコードループが実行されます。つまり、この時点からデータソースカラムを処理することができます。

  6. [レコード前]ロジックユニットの処理コマンドが実行されます。

参照

レコード後


エンジン実行レベル レコードレベル レコード後

レコード後

Magicエンジン > エンジン実行レベル > レコードレベル

[レコード後]には、次のような処理を定義します。

  • バッチタスクの場合……データビューのレコードに関する処理

  • オンラインとブラウザタスクの場合……参照と変更が行われたレコードに関する処理
    オンラインとブラウザタスクでは、レコードがユーザの入力などで変更されていない時には、普通、[レコード後]が実行されません。レコードが変更されていない場合にも[レコード後]を実行させたい場合には、[タスク特性]の[強制レコード後]特性で指定できます。

レコード終了処理

オンラインタスクやブラウザタスクではユーザが参照している各レコードについて、以下に説明する「レコード終了」処理が実行されます。また、バッチタスクでは、処理対象となる全レコードについて、[タスク特性]の[インデックス]で指定されたインデックスの順番あるいは[ソート]テーブルに指定された順番で、最初のレコードから最後のレコードまで、１レコードずつ処理が実行されます。

  1. [レコード後]の処理が実行されます。
    タスクがバッチタスクの場合、[レコード後]は常に実行されます。タスクがオンラインタスクの場合、現在の論理レコードが変更されている時に限って、[レコード後]が実行されます。現在のレコードは、次のような操作が行われた時、変更されたと解釈されます。

    • エンドユーザが、キーボードを使用して項目の値を編集した時。

    • [項目更新]処理コマンドにより、値が変更された時。

    • サブタスクの実行中に[項目更新]処理コマンドにより、値が変更された時。

    • [フォーム入力]処理コマンドにより、入力ファイルからデータが読み込まれた時。

    • [タスク特性]ダイアログの[強制レコード後]特性の値が「Yes」であるか、あるいは式が設定されていて、評価の結果「True」になった時。

    • レコードの削除が実行された時。

    • オンラインタスクでのレコードの削除

    • バッチタスクでのレコードの削除

  2. [レコード後]が完了すると、このレコードサイクル中に変更されたメインソースおよびリンクテーブルのレコードが全てディスクに保存されます。レコードが変更されなかった時には、ディスクへの保存は行われません。

参照

レコード前


エンジン実行レベル レコードレベル レコード後 オンライン

オンラインタスクやブラウザタスクでのレコードの削除

Magicエンジン > エンジン実行レベル > レコードレベル > [レコード後]

オンラインタスクやブラウザタスクでは、エンドユーザが[編集／行削除]（F3）を選択した場合、または[レコード削除]特性の値が「True」になった場合に、次のような削除処理がエンジンによって実行されます。

  • レコードが変更されていない場合、削除モードで、[レコード後]が１回実行されます。

  • レコードが変更されている場合

  • 修正モードで、[レコード後]が実行されます。これで、テーブルの処理に定義されている更新処理が実行され、更新が行われます。

  • 続いて、今度は削除モードで、再度、[レコード後]の処理が実行されます。これは、1 対多のリレーションにより関係づけられているレコードなど、レコードの削除に関する処理を行うため、または、加算更新モードで更新を行うために必要です。

上記のように削除モードで[レコード後]の処理が実行されると、レコードに「削除済み」というマークが付けられます。レコードが修正されてから削除される場合には、同一のレコードに対して[レコード後]が２回実行されるので、１レコードに１回しか実行してはならない処理コマンドは、[条件]パラメータにStat（）関数などを用いて、実行モードにより実行を制御するようにしてください。


エンジン実行レベル レコードレベル レコード後 バッチ

バッチタスクでのレコードの削除

Magicエンジン > エンジン実行レベル > レコードレベル > [レコード後]

バッチタスクでは、[行削除]イベントが発行された場合、次のような削除処理がエンジンによって実行されます。

  • タスクの[初期モード]が「削除」の場合、削除モードで、[レコード後]が１回だけ実行されます。

  • タスクの[初期モード]が「削除」でない場合には、[タスク特性]ダイアログの[レコード削除]特性の値が評価され、「True」の場合、次のような処理が実行されます。

  • 修正モードで、[レコード後]の処理が実行されます。これで、リポジトリの処理に定義されている更新処理が実行され、更新が行われます。

  • 続いて、今度は削除モードで、再度、[レコード後]の処理が実行されます。これは、１対多のリレーションにより関係づけられているレコードなど、レコードの削除に関する処理を行うため、または、加算更新モードで更新を行うために必要です。

上記のように削除モードで[レコード後]の処理が実行されると、レコードに「削除済み」というマークが付けられます。レコードが修正されてから削除される場合には、同一のレコードに対して[レコード後]が２回実行されるので、１レコードに１回しか実行してはならない処理コマンドは、[条件]パラメータにStat（）関数などを用いて、実行モードにより実行を制御するようにしてください。

  • [レコード後]が実行されると、メインソースとリンクテーブルの変更内容が保存されます。レコードに変更がない場合は、保存されません。

  • [タスク特性]の[チェック時期]特性が「A=後置」と設定されている場合、[タスク終了条件]特性が評価され、「True」ならばレコードループを終了させます。


エンジン実行レベル 項目レベル

項目レベル

Magicエンジン > エンジン実行レベル

項目レベルで利用可能なオプションは、[項目変更]ロジックユニットです。これは項目の値が変更された場合に実行されます。

[項目変更]には、項目の内容が変化した場合の処理が定義されます。[項目変更]は、項目の内容が変更されたことをトリガとして起動されます。項目として、BLOB型や、ベクトル型、ActiveX型のデータ項目も定義できます。OLE型は定義できません。

項目レベルが選択された場合、コンボボックスの中の表示が変わります。

[項目]カラムでクリックすると、[項目一覧]が表示されます。[項目一覧]は、現在のデータビューの内容が表示されます。ハンドラや関数から項目を選択することはできません。

項目を選択すると、２つのパラメータを追加するかどうかを確認するためのメッセージダイアログが表示されます。[はい]を選択すると、以下のパラメータが追加されます。

  • CHG_REASON_<項目名> …… 書式「2」の数値型。このパラメータは、以下の数値を使用してエンジンがこのハンドラに入った理由を保持します。

  • 0 …… 対話処理による理由です。フォームの上のコントロールの値を変更したことによって実行されたことを示します。

  • 1 …… 対話処理によるものではありません。再計算処理や項目更新処理などによって、フォームから入力以外の変更要因が発生したことを示しています。

  • CHG_PRV_<項目名> …… 再計算処理が前の項目の値が保存されます。

注意：

[項目]特性で項目の内容を変更し、そのデータ型が異なる場合、パラメータの型を変更する必要があります。

参照

項目レベルの実行時の動作

項目変更特性

Level関数

MainDisplay関数


エンジン実行レベル 項目レベル 実行時の動作

項目レベルの実行時の動作

Magicエンジン > エンジン実行レベル > 項目レベル

項目の値が更新され、再計算処理が完了すると、Magicは[項目変更]に入り、[項目変更]イベントを実行します。

項目は、[項目更新]処理コマンドや[代入]特性や、VARSET関数、入力フォーム、パラメータ渡し、戻り値、ユーザ操作、およびドラッグ＆ドロップによって更新することができます。キャンセルやロールバック処理は実行されません。

更新前の項目値

ハンドラ内の項目の値は更新された値になります。再計算前の項目の値は、CHG_PRV_<項目名>パラメータに保存されています。

実行の順番

複数の[項目変更]が定義されている場合、実行の順番は、[データビュー]エディタに定義された順番で決定されます。

コントロール変更

コントロールの変更に対して、CHG_REASON_<項目名>パラメータは常に「0」になります。チョイスコントロールでオプションを変更した場合、[項目変更]イベントが実行されます。

参照

Level 関数

MainDisplay関数


ロジックユニット 項目変更特性

項目変更特性

Magicエンジン > エンジン実行レベル > 項目レベル

[項目変更]ロジックユニットのヘッダ行で、Alt+Enter を押下するか、コンテキストメニューから[特性]を選択することで、[項目変更特性]が表示されます。

ここには、以下の特性値が表示されます。

ユニット

レベル

項目

条件


ロジックユニット 項目変更特性 ユニット

ユニット

Magicエンジン > エンジン実行レベル > 項目レベル > 項目変更特性

ロジックユニットのタイプを定義します。この特性は、ヘッダ行でのみ修正できます。


ロジックユニット 項目変更特性 レベル

レベル

Magicエンジン > エンジン実行レベル > 項目レベル > 項目変更特性

ロジックユニットの実際のレベルを設定します。現在「C=変更」のみ有効です。


ロジックユニット 項目変更特性 項目

項目

Magicエンジン > エンジン実行レベル > 項目レベル > 項目変更特性

処理される項目を設定します。項目の値が変更された場合、このロジックユニットが実行されます。


ロジックユニット 項目変更特性 条件

条件 (デフォルト:Yes)

Magicエンジン > エンジン実行レベル > 項目レベル > 項目変更特性

ロジックユニット全体の実行条件を設定します。

ここには、処理を実行するかどうかを決定する論理条件を指定します。指定可能な値は以下の通りです。

  • Yes …… 処理は常に実行されます。

  • No …… 処理は常に実行されません。

  • 式 …… [式]エディタに指定された論理式の結果で条件が決定されます。


エンジン実行レベル コントロールレベル

コントロールレベル

Magicエンジン > エンジン実行レベル

コントロールレベルでは、特定コントロールの実行時の動作を制御できます。例えば、値の設定と表示、入力チェック、その他の処理の実現を行うことができます。コントロールレベルは、[ロジック]エディタで定義できます。

コントロールレベルには、以下の定義項目があります。

ユニット

制御内容

レベル

  • 前 ……[コントロール前]は、カーソルが特定のコントロールに移動した時、ユーザとの対話が始まる前に実行される必要のある初期化のための処理コマンドを定義します。コントロールハンドラは、レコードハンドラの後に定義します。

  • 後 ……[コントロール後]は、カーソルが特定のコントロールから離れる際に実行され、各コントロールごとの終了化のための処理コマンドを定義します。
    カーソルが、コントロールから離れてフォーカスを失いと必ず実行されます。通常、エンドユーザが別のコントロールにカーソルを移動するか、別のレコードに移動するか、タスクを終了した場合に発生します。また、コントロールレベルが終了するように定義されたイベントが発行された場合も、必ず実行されます。
    [ビュー再表示]のような内部イベントは、コントロールやレコードレベルを終了するために指定されます。
    イベント実行によってコントロールループ処理を終了する場合、以下の処理を実行します。

  1. コントロールの編集処理を終了します。

  2. 項目の実行値を設定します。

  3. 新しい項目値にしたがって再計算します。

  4. コントロール後を終了します。

  5. 検証 ……[コントロール検証]は、カーソルが特定のコントロールから離れたり、高速モードでコントロールを通過した場合に[コントロール後]の前に必ず実行されます。

コントロール名

フォーム上のコントロール名を直接入力するか、[コントロール名一覧]から選択します。

条件

  • Yes ……コントロールハンドラが有効であることを意味します。

  • No ……コントロールハンドラが無効であることを意味します。

  • 式 …… コントロールハンドラの有効／無効を式によって動的に指定できます。

参照

タスクレベル

グループレベル

レコードレベル

項目レベル

イベントレベル


エンジン実行レベル コントロールレベル コントロール名一覧

コントロール名一覧

Magicエンジン > エンジン実行レベル > コントロールレベル

現在のタスクの、クラス「0」のGUI表示フォームやブラウザフォーム上のコントロールのコントロール名を表示します。

グループ名

ここには、GUIとブラウザのフォーム名が表示されます。

フォームに対応するコントロールを表示する場合は、フォーム名を指定します。全てのコントロール名を表示させるには、「全コントロール」を指定します。

コントロール名

指定されたフォームのコントロール名が表示されます。

「全コントロール」が選択された場合、現在のタスクのGUI表示フォームの全てのコントロールが表示されます。先頭行は空白で、選択済みの内容を消す場合に使用します。

注意：

同じコントロール名が存在している場合、１つしか表示されません。


エンジン実行レベル イベントレベル

イベントレベル

Magicエンジン > エンジン実行レベル

イベントレベルでは、無手順で発生したイベントに対して、対応するハンドラを処理します。ハンドラは、タスクレベルとレコード、またはグループやコントロールレベルの間に定義できます。

イベントレベルには、以下の定義項目があります。

ユニット

イベント

イベント

[イベント]ダイアログによって、イベントのタイプとイベントの内容を設定します。

コントロール名

コントロール名を指定します。

フォーム上のコントロール名を直接入力するか、[コントロール名一覧]から選択します。

コントロール名を入力することで、以下の利点があります。

  • コントロールを定義する前に、コントロールハンドラを作成できます。

  • 異なるGUIフォーム上に同じ名前のコントロールがある場合に対応できます。

  • 一度コントロールが削除されても、同じ名前で再定義することでハンドラとのリンクが確保されます。

フォームに追加する前にコントロール名を入力することができます。

指示

エラーイベントによってMagicエンジンがどのように処理するかどうかを指定します。

メッセージ

内部のイベントメッセージを表示するかどうかを指定します。

スコープ

以下のどちらかを指定できます。

  • T=タスク(デフォルト）……ハンドラは、そのタスク内でのみ有効です。

  • S=サブツリー……ハンドラは、そのタスク内、およびその全てのサブタスク内で有効です。

  • G=グローバル …… プロジェクト内の全てのプログラムで有効です。メインプログラムでのみ定義できます。

伝播

[イベント]ロジックユニットでイベントが処理された後、そこでイベント処理が終わるか、あるいは、より上位（親タスクなど）に定義されている[イベント]ロジックユニットを探しに行くかを制御します。

  • Yes…… Magic エンジンは、この[イベント]ロジックユニットを実行した後に、イベントを未処理のものとみなし、より上位レベルで[イベント]ロジックユニットが定義されていないか検索し、定義されていれば、その[イベント]ロジックユニットを実行します。

  • No……Magic エンジンは、[イベント]ロジックユニットを実行した後、それ以上同じイベントの[イベント]ロジックユニットを探すことはせず、そこでイベント処理を終了します。

条件

  • Yes ……[イベント]ロジックユニットが有効であることを意味します。

  • No ……[イベント]ロジックユニットが無効であることを意味します。

  • 式 …… [イベント]ロジックユニットの有効／無効を式によって動的に指定できます。

実行

ロジックユニットの実行先を指定します。この特性はリッチクライアントタスクでのみ表示されます。オプションは以下の通りです。

  • O=最適化：(デフォルト) …… 処理フローに基づいてサーバ上かクライアント上で実行されます。

  • S=サーバ …… サーバ上で実行されます。

この特性は、[関数]か[イベント]ロジックユニットでのみ有効です。「サーバ」と指定されたロジックユニット内では、ニュートラル（どちらでも実行可能）、またはサーバ側の処理コマンドのみ有効です。

実行時、Magicエンジンは実行中のタスクツリーに沿って上方に現在のタスクから指定されたコントロールに対応する[イベント]ロジックユニットを検索します。該当するコントロールに対応した[イベント]ロジックユニットが見つからない場合、コントロールが指定されていない[イベント]ロジックユニットを探します。

参照

イベントタイプ

イベント処理

同一イベントで複数のロジックユニットを処理する

内部イベント

イベント一覧

エラーハンドラの作成


エンジン実行レベル イベントレベル イベントタイプ

イベントタイプ

Magicエンジン > エンジン実行レベル > イベントレベル

イベントレベルでは、[イベント]カラムからズームするか、F5を押下すると[イベント]ダイアログが開きます。

[イベント]ダイアログから選択できるイベントタイプは、以下のとおりです。

S=システム | キーの組み合わせを定義することで発生するイベントです。[イベント]欄でズームすると[キー設定]ダイアログが表示され、キーの組み合わせを定義できます。
I=内部 | [イベント]欄でズームすると[イベント一覧]が表示され、Magicの内部イベントが選択できます。
U=ユーザ | [ユーザイベント]テーブルに定義されたイベントです。[イベント]欄でズームすると[イベント一覧]が表示され、ユーザ定義イベントが選択できます。
T=タイマー | 定義された間隔で発生するイベントです。
E=式 | 式が「True」と評価された場合に発生するイベントです。[イベント]欄でズームすると[式]エディタが表示され、イベントを定義できます。
E=エラー | データベースによって発生しうるエラーによって発生するイベントです。[イベント]欄でズームすると[エラー一覧]が表示され、エラーを選択できます、
A＝ActiveX | COMオブジェクトから発生するイベントです。[イベント]欄でズームすると[ActiveXイベント]ダイアログが表示され、対象となるオブジェクトとイベントを選択できます。ActiveXタイプは、リッチクライアントタスクで利用できません。


エンジン実行レベル イベントレベル イベント処理用語

イベント処理

Magicエンジン > エンジン実行レベル > イベントレベル

Magicは、タスクの実行中に暗黙的または明示的に発生するイベントに対応した処理を定義することができます。

イベントドリブンに関する用語を以下に示します。

  • イベント ……発生事象を論理的に定義したものです。イベントは、[イベント]ロジックユニットが処理コマンドを実行することによって処理されます。

  • トリガ …… イベントは、他のユーザ定義イベントのトリガとして定義できます。イベント要因が発生した場合、定義されてユーザイベントを起動します。

  • ハンドラ …… 指定されたイベントが発生した場合、処理される処理の集合体です。

イベントは、複数のトリガと複数のハンドラを持つことができます。各トリガは異なるシナリオでイベントを発行することができます。複数のハンドラが各シナリオに対するイベントを処理することができます。

Magicイベントは、アプリケーションイベントとして定義することができます。これはメインプログラムで定義され、プロジェクト全体で利用することができます。これらのイベントは、プロジェクト内のどのプログラムが実行している場合でも発行することができます。イベントは、タスクイベントとして定義できます。これは特定のタスク内で定義され、定義されたタスクかそのサブタスクに対してのみ有効になります。

参照

同一イベントで複数のロジックユニットを処理する

イベントタイプ


同一イベントで複数のロジックユニットを処理する

Magicエンジン > エンジン実行レベル > イベントレベル

同一イベントに対して複数の[イベント]ロジックユニットが定義されている場合があります。

このような場合、Magicの実行規則に基づき最初のロジックユニットが実行され、これ以降のイベントはクリアされます。従って、他のロジックユニットは実行されません。

例えば、[印刷]という2つのユーザ定義イベントが定義されているものとします。1つは注文データを印刷するもので、もう1つは送り状を印刷するものです。Magicの実行規則によると、このうち1つのロジックユニットのみ実行されます。

どちらのロジックユニットが処理されるのか？

Magicの実行規則によると、実行ツリーの中で最も実行レベルの低いロジックユニットが処理されます。上記の例では、送り状の印刷処理の下位（ロジックエディタ内の下位の位置）に注文データ印刷のロジックユニットが定義されている場合、注文データのロジックユニットが実行されます。

両方のロジックユニットを処理させたい場合は？

上記の例で、両方のロジックユニットを処理させたい場合、注文データ印刷のロジックユニットの[伝播]特性を「Yes」に設定します。この設定により、注文データ印刷のロジックユニットが終了した後に[印刷]イベントが保持されるようになります。

内部ハンドラの処理を追加することができるか？

Magicの内部ハンドラにアクセスすることはできません。しかし、Magicの内部のハンドラを実行する前に内部イベントを処理するための[イベント]ロジックユニットを定義することはできます。

Magicの内部ハンドラは、常に実行ツリー内の最も高いハンドラとして位置しているため、このようにすることが可能になります。

例えば、[終了]イベントの処理で説明します。

エンドユーザに対して、プログラムを終了する前に注文データを印刷するかどうか確認させたい場合、[終了]イベントを処理する必要がります。しかし、[終了]イベントに対するロジックユニットを定義すると、Ｍａｇｉｃの内部ハンドラとしての[終了]イベントは実行されなくなり、プログラムは終了しなくなります。[終了]イベントのロジックユニットを処理し、またMagicに[終了]イベントに対する内部ハンドラを実行させるためには、ロジックユニットの[伝播]特性を「Yes」に設定する必要があります。


選択一覧 イベント一覧

イベント一覧

Magicエンジン > エンジン実行レベル > イベントレベル
式エディタ > 選択一覧

[式]エディタ内でCtrl+2を押下すると、[イベント一覧]が表示されます。

[イベント一覧]には、[イベント実行]処理コマンドやハンドラの定義の際に参照するMagicの内部イベントが表示されます。

[イベント一覧]は、以下のイベントグループで分類されています。

  • ナビゲーション

  • 編集

  • アプリケーション

  • タスク

  • マルチマーキング

  • ユーザアクション

  • 設定

KbPutまたはKbGet関数のいずれかを使用することで、実行時にイベントにアクセスすることができます。

参照

データの再表示


式 式一覧 イベント一覧 ナビゲーションイベント

ナビゲーションイベント

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

ナビゲーションイベントには以下のものがあります。

その他のウィンドウ

下行

画面先頭

画面末尾

行先頭

行末尾

項目先頭

項目末尾

子ノードに移動

次のウィンドウ

次のノードﾞに移動

次画面

次語

次行

次行先頭

次項目

次文字

次タブ

次ページ

終了

(Magic)終了

上行

親のノードに移動

前のウィンドウ

前のノードに移動

前画面

前語

前行

前項目

前文字

前タブ

前ページ

全て閉じる

クリック

コントロールヒット

ズーム

ダブルクリック

テーブル先頭

テーブル末尾

フォーム先頭

フォーム末尾

ページ先頭

ページ末尾

ボタンを押す

マウスアウト

マウスオーバ

ライン先頭

ライン末尾


式 式一覧 イベント一覧 編集イベント

編集イベント

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

編集イベントには以下のものがあります。

NULLに設定

広域表示

行作成

行削除

次行を複数行マーク

次ページにマーク

修正

照会

前行を複数行マーク

前ページにマーク

貼り付け

登録

複写

変更取消

オブジェクトの挿入

キャンセル

コピー

ノード編集

マーク次文字

マーク前文字

レコード書込


式 式一覧 イベント一覧 アプリケーションイベント

アプリケーションイベント

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

アプリケーションイベントには以下のものがあります。

MAGIC情報

OSコマンド

終了

(Magic)終了

アプリケーション・オープン

アプリケーション・クローズ


式 式一覧 イベント一覧 タスクイベント

タスクイベント

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

タスクイベントには以下のものがあります。

OK

位置付

位置付／次候補

画面再表示

開始値

行作成

行削除

取消終了

修正

終了

終了値

照会

登録

入出力ファイル

範囲

インデックス

ウィンドウ位置変更

ウィンドウサイズ変更

ウィンドウヒット

キャンセル

クローズ

コンテキストがフォーカス取得

コンテキストがフォーカス喪失

コンテキストを閉じる

コントロールヒット

サブフォーム再表示

ズーム

ソート

ダブルクリック

データビューが空

ドラッグ開始

ドロップ

ビュー再表示

ブラウザステータス テキスト変更

プログラム再呼出

レコード書込


式 式一覧 イベント一覧 マルチマーキングイベント

マルチマーキングイベント

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

マルチマーキングイベントには以下のものがあります。

項目先頭までマーク

項目末尾までマーク

最後までマーク

次行でマーク

先頭までマーク

前行でマーク

全てマーク

マーク/マーク解除

マークを全て解除

マークを反転

マルチマーキングで次行

マルチマーキングで次ページ

マルチマーキングで前行

マルチマーキングで前ページ


選択一覧 イベント一覧 リッチテキスト用イベント

リッチテキストコントロールでのイベント

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

以下の内部イベントは、[リッチテキスト]コントロール上で有効です。

  • 左揃え

  • 右揃え

  • 箇条書き

  • センタリング

  • 色の変更

  • フォントの変更

  • インデント

  • OLE2

  • リンク貼り付け

  • インデント解除

  • リンク更新


選択一覧 イベント一覧 環境設定イベント

動作設定用イベント

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

以下の内部イベントが発行されると、該当する動作環境用のテーブルが開きます。例えば[DBMS]イベントは[DBMS]テーブルが開きます。

  • 基本色

  • 通信ゲートウェイ

  • DBMS

  • データベース

  • 動作環境

  • フォント

  • HTMLスタイル

  • キーボード割付

  • 言語

  • 論理名

  • ログオン

  • プリンタ属性

  • プリンタ

  • シークレット名

  • サーバ

  • サービス

  • ユ－ザグループ

  • ユーザID

  • ビジュアル接続


選択一覧 イベント一覧 ヘルプ

ヘルプ

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

現在の項目のヘルプトピックを表示します。

デフォルトキーボード割付

F1

このイベントとブラウザコントロールに関する情報は、ヘルプイベントのサポートを参照してください。


選択一覧 イベント一覧 Magic情報

MAGIC情報

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

[MAGIC情報]ダイアログを開きます。

デフォルトキーボード割付

なし


選択一覧 イベント一覧 Magicヘルプ

Magicヘルプ

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

リファレンスヘルプを開きます。

デフォルトキーボード割付

なし


選択一覧 イベント一覧 NULLに設定

NULLに設定

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

現行カラムをNULLに設定します。

デフォルトキーボード割付

Ctrl+U


式 式一覧 イベント一覧 OK

OK

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

OKボタンがクリックされると、このイベントが発行されます。

デフォルトキーボード割付
Enter


選択一覧 イベント一覧 OSコマンド

OSコマンド

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

OSに一時的に制御を移します。Magicは、OS側の処理の終了を待ちません。

デフォルトキーボード割付

なし


エンジン実行レベル イベントレベル 内部イベント アプリケーションを開く

アプリケーション・オープン

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

Magicのキャビネットファイルを開くための[ファイルを開く]ダイアログが開きます。

デフォルトキーボード割付

Ctrl+O


選択一覧 イベント一覧 アプリケーションを閉じる

アプリケーション・クローズ

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

現在実行中のアプリケーションを閉じます。このイベントは、実行モードでのみ有効です。

現アプリケーション内の全てのコンテキストが閉じます。

デフォルトキーボード割付

なし


選択一覧 イベント一覧 インデックス

インデックス

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

[インデックス一覧]を開きます。

デフォルトキーボード割付

Ctrl+K


選択一覧 イベント一覧 ウィンドウヒット

ウィンドウヒット

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

ウィンドウがマウスでクリックされた時にトリガされます。

デフォルトキーボード割付

なし


選択一覧 イベント一覧 ウィンドウ位置変更

ウィンドウ位置変更

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

ウィンドウの位置が変更された時にアクティブになります。

デフォルトキーボード割付

なし


選択一覧 イベント一覧 ウィンドウサイズ変更

ウィンドウサイズ変更

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

ウィンドウのサイズが変更された時にアクティブになります。

デフォルトキーボード割付

なし


選択一覧 イベント一覧 オブジェクトの挿入

オブジェクトの挿入

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

OLEオブジェクトを挿入します。OLE2コントロールのみで有効です。

デフォルトキーボード割付

なし


選択一覧 イベント一覧 キャンセル

キャンセル

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

現在の行の編集を取り消します。全てのデータ項目をその行が読み取られた時の値に戻します。

デフォルトキーボード割付

Ctrl+F2


選択一覧 イベント一覧 クリック

クリック

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

コントロールをマウスクリックした場合にトリガされます。

デフォルトキーボード割付

なし


選択一覧 イベント一覧 クローズ

クローズ

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

現在表示中のウィンドウを閉じ、実行しているタスクを終了します。

デフォルトキーボード割付

Ctrl+F4


選択一覧 イベント一覧 コピー

コピー

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

選択したテキストをクリップボードにコピーします。

デフォルトキーボード割付

Ctrl+C
Ctrl+Ins


選択一覧 イベント一覧 コントロールヒット

コントロールヒット

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

コントロールがマウスでクリックされた時にアクティブになります。

デフォルトキーボード割付

なし

このイベントは、コントロールのタイプに依存して動作が異なります。

  • オンラインタスクの場合、（[プッシュボタン]コントロールを除く）すべてのコントロールに対して、マウスをクリックすることで、[コントロールヒット]イベントが発行されます。このイベントに対するハンドラが定義されており、[伝播]特性が「No」に設定されている場合、マウスクリックのデフォルトの動作が実行されなくなります。例えば、リストボックスやコンボボックスからの選択ができなくなります。
    [プッシュボタン]コントロールに対して、マウスボタンがリリースされると[コントロールヒット]イベントが発行されます。

  • ブラウザクライアントタスクの場合、[コントロールヒット]イベントは全く発行されません。

  • リッチクライアントタスクの場合、[コントロールヒット]イベントはオンラインタスクと同じように発行されますが、[コントロールヒット]ハンドラでこのイベントの[伝播]特性を「No」にした場合の動作が異なります。オンラインタスクの場合は、デフォルトの動作（リストボックスからの選択などの）ができなくなりますが、リッチクライアントタスクの場合は、デフォルトの動作が実行されません。


式 式一覧 イベント一覧 コンテキストを閉じる

コンテキストを閉じる

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

現在のコンテキストまたはオープン中のコンテキストが終了します。この内部イベントが発行されると、通常のタスク終了処理が実行されます。この内部イベントによって、コンテキスト内の全てのタスクが終了します。

終了するコンテキストがメインコンテキストであっても無視され、ログモニタに記録されます。

デフォルトキーボード割付

なし


式 式一覧 イベント一覧 コンテキストがフォーカス喪失

コンテキストがフォーカス喪失

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

コンテキストがフォーカスを失った場合、この非同期イベントが実行されます。

[コンテキストがフォーカス喪失]イベントは、次のコンテキストのコンテキストID/コンテキスト名を表す文字列パラメータをサポートします。

このイベントに対するハンドラを定義すると、パラメータを作成するかどうかを確認するダイアログが表示されます。[はい]をクリックすると、以下のパラメータが作成されます。

  • 名前 …… 次のコンテキストID

  • 型 …… コンテキストID文字型

  • 書式 …… 50

デフォルトキーボード割付

なし


式 式一覧 イベント一覧 コンテキストがフォーカス取得

コンテキストがフォーカス取得

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

コンテキストがフォーカスを受け取った場合、この非同期イベントが実行されます。

[コンテキストがフォーカス取得]イベントは、前のコンテキストのコンテキストID/コンテキスト名を表す文字列パラメータをサポートします。

このイベントに対するハンドラを定義すると、パラメータを作成するかどうかを確認するダイアログが表示されます。[はい]をクリックすると、以下のパラメータが作成されます。

  • 名前 …… 前のコンテキストID

  • 型 …… コンテキストID文字型

  • 書式 …… 50

デフォルトキーボード割付

なし


選択一覧 イベント一覧 サーバ終了

サーバ終了

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

終了コマンドがサーバ上のMagicエンジンで実行されると、[サーバ終了]イベントが起動され、各コンテキストのキューに追加されます。

ブラウザクライアントとオンラインタスクには、このイベント用のハンドラが組みこまれていて以下のメッセージを表示します。

The enterprise server is set to terminate after [XXX} seconds.

デフォルトキーボード割付

なし

参照

RqTrmTimeout

RqRtTrmEx


式 式一覧 イベント一覧 サブフォーム再表示

サブフォーム再表示

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

表示フォーム > GUIコントロール > GUIコントロールグループ > サブフォーム

サブフォームの[自動再表示]特性が「No」に設定されていたり、タスク内の値を変更しない場合に、サブフォームの再表示させます。

[サブフォーム再表示]イベントには、「サブフォームコントロール名」というパラメータがあります。

このイベントは、以下のように使用します。

サブフォームを配置した親タスクがあり、サブフォームに渡すパラメータが定義されているものとします。この場合、項目の内容が入力された後でなく、項目が更新された後でのみサブフォームが再表示されるようにするプログラムを作成します。

これを実現するには、[自動再表示]特性を「No」に設定し、全てのパラメータが設定された時点で[サブフォーム再表示]イベントを実行します。

注意：

ハンドラがイベントによって実行される場合、Magicは、「サブフォームコントロール名」というパラメータを作成するかどうかを確認するダイアログを表示します。サブフォームコントロール名はまた、[ユーザイベント]テーブルで[パラメータ]カラムからズームした場合にも表示されます。

デフォルトキーボード割付

なし


選択一覧 イベント一覧 サブツリー縮小

サブツリー縮小

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

開発用イベントです。

ナビゲータに表示されているツリーを縮小表示します。

デフォルトキーボード割付

Minus


選択一覧 イベント一覧 サブツリー展開

サブツリー展開

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

開発用イベントです。

ナビゲータに表示されているツリーを展開表示します。

デフォルトキーボード割付

Plus


選択一覧 イベント一覧 ズーム

ズーム

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

[ズーム]イベントを発行します。

デフォルトキーボード割付

F5


選択一覧 イベント一覧 ソート

ソート

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

[ソート]テーブルを開きます。

デフォルトキーボード割付

Ctrl+S


選択一覧 イベント一覧 ダブルクリック

ダブルクリック

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

コントロールをマウスでダブルクリックした場合にトリガされます。


選択一覧 イベント一覧 テーブル先頭

テーブル先頭

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

カーソルを現在のテーブルの先頭行に移動します。

デフォルトキーボード割付

Ctrl+Home


選択一覧 イベント一覧 テーブル末尾

テーブル末尾

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

カーソルを現在のテーブルの末尾の行に移動します。

デフォルトキーボード割付

Ctrl+End


式 式一覧 イベント一覧 データ出力ウィザード

データ出力

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

データ出力ウィザードを実行します。

[タスク特性]にて[データ出力]特性が「Yes」に設定されているタスクが実行している場合のみ有効です。

デフォルトキーボード割付

Ctrl+P


式 式一覧 イベント一覧 データビューが空

データビューが空

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

このイベントは、タスクの範囲指定によってデータビューが空の状態になった場合に発生します。

[レコード前]が実行される代わりにこのイベントが実行されます。

参照

EmptyDataView 関数

空のデータビュー許可 特性


選択一覧 イベント一覧 ドラッグ開始

ドラッグ開始

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

[ドラッグ許可]特性が「Yes」 に設定されたコントロール上でマウスの左ボタンがクリックし、その状態でマウスポインタを移動させることで、コントロールをドラッグさせることができます。

ドラッグ処理が始まると、以下に示すように、 Magic エンジンは、ドラッグ処理が行われるコントロールのタイプに従ってドラッグするデータを自動的に設定することができます。

コントロールタイプ | データ | フォーマット
エディット | マークされたテキスト | テキスト
テキスト | データは自動的に設定されない | N/A
プッシュボタン | データは自動的に設定されない | N/A
チェックボックス | データは自動的に設定されない | N/A
ラジオボタン | 選択項目の表示値 | テキスト
タブ | 選択項目の表示値 | テキスト
リストボックス | 選択項目の表示値 | テキスト
コンボボックス | 選択項目の表示値 | テキスト
スタティック（グループ、四角、など） | データは自動的に設定されない | N/A
テーブル | データは自動的に設定されない | N/A
イメージ | データは自動的に設定されない | N/A
ツリーコントロール | データは自動的に設定されない | N/A

[ドラッグ開始] イベントをトリガとしたユーザ定義ハンドラを作成することで、タスクデータを処理し、以下のようにドラッグ処理を行うことができます。

  • DragSetData 関数を使用したドラッグデータの制御

  • DragSetCrsr 関数を使用したドラッグ時のアイコン制御

レコードがマークされた[テーブル]コントロール上でドラッグ処理を行うと、[ドラッグ開始] イベントをトリガにしたハンドラはマークされた各レコードに対して実行されます。


選択一覧 イベント一覧 ドロップ

ドロップ

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

[ドロップ許可] 特性が 「Yes」 に設定されたコントロールでマウスの左ボタンを離すことで、コントロールのドロップ処理が可能です。「ドロップ」 イベントをトリガとしたユーザ定義ハンドラを作成することで、タスクデータを処理し、以下のようにドロップ処理を行うことができます。

  • DropFormat 関数を使用した現在のドラッグ & ドロップ処理の有効／無効の確認

  • DropGetData 関数を使用した定義フォーマットのデータの取得

  • DropMouseX および、 DropMouseY 関数を使用したドロップ処理時のマウス カーソルの位置の取得


選択一覧 イベント一覧 ノード縮小

ノード縮小

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

[ツリー]コントロールのサブノードが表示されなくなります。

ノードのトリガに関する情報は、ノード展開／縮小イベントによって渡されるパラメータによって提供されます。[ノード展開／縮小]イベントのどちらかがハンドラのトリガイベントとして選択されると、Magicはツリーノードレベルやツリーノード値に対する項目をハンドラに作成にするかどうかの確認メッセージを表示します。

[ノード展開／縮小]イベントがトリガされると、ハンドラに定義された項目は、トリガイベントに関連したツリーノード値で更新されます。最初に定義された変数には、ツリーノードレベルの値が格納され、２番目に定義された変数には、ツリーノード値が格納されます。

[ノード展開／縮小]イベントが、[ツリー]コントロールの範囲外で発生した場合、ツリーノードレベルとツリーノード値は更新されません。

[ノード展開／縮小]イベントを[イベント実行]処理コマンドで発行した場合、指定されたパラメータは、最初の２つのハンドラ変数の後に定義された変数に渡されます。

デフォルトキーボード割付

Minus
Left


選択一覧 イベント一覧 ノード展開

ノード展開

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

[ツリー]コントロールのノードを展開表示します。

ノードのトリガに関する情報は、[ノード展開／縮小]イベントによって渡されるパラメータによって提供されます。[ノード展開／縮小]イベントのどちらかがハンドラのトリガイベントとして選択されると、Magicはツリーノードレベルやツリーノード値に対する変数をハンドラに作成にするかどうかの確認メッセージを表示します。

[ノード展開／縮小]イベントがトリガされると、ハンドラに定義された変数は、トリガイベントに関連されたツリーノード値で更新されます。最初に定義された変数には、ツリーノードレベルの値が格納され、２番目に定義された変数には、ツリーノード値が格納されます。

[ノード展開／縮小]イベントが、[ツリー]コントロールの範囲外で発生した場合、ツリーノードレベルとツリーノード値は更新されません。

[ノード展開／縮小]イベントを[イベント実行]処理コマンドで発行した場合、指定されたパラメータは、最初の２つのハンドラ変数の後に定義された変数に渡されます。

デフォルトキーボード割付

Plus
Right


選択一覧 イベント一覧 ノード編集

ノード編集

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

このイベントによって、[ツリー]コントロールのノードの名前を編集することができます。

このイベントをトリガすると現在パークしているノードが編集モードに変わります。マウスの左クリックでノードが選択され、２回目のクリックすることでもこのイベントがトリガされます。

デフォルトキーボード割付

F2


選択一覧 イベント一覧 ビュー再表示

ビュー再表示

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

ビューを再度読み込みます。

[イベント実行]コマンドによって[ビュー再表示]イベントを実行する場合、数値パラメータを指定することで、再表示後のレコードの位置付け方法を指定することができます。

パラメータとして指定できる値は以下の通りです。

  • 0……最後にパークしたレコードに再位置付けされます（デフォルト）。パラメータが渡されなかったり、「1」か「2」以外の場合、「0」と見なされます。

  • 1……タスクの位置付け指定に基づいて再位置付けされます。

  • 2……位置付けされません。新しいビューの先頭のレコードに位置付けされます。

注意：

プッシュボタンによってイベントを発行する場合は、パラメータを渡すことができません。プッシュボタンでこのオプションを利用するには、一旦中間のハンドラを呼び出し、そのハンドラ内で[イベント実行]処理コマンドを実行させるようにしてください。

ツリー再表示

[ビュー再表示]イベントが[ツリー]コントロールを含んだタスクで実行された場合、各ノードの状態は保持され、ロード済みのノードだけを再表示するようにできます。この内部イベントは通常、ツリー構造を部分的に修正した場合にその表示を反映するために必要になります。

[ツリー]コントロールを含んだタスクで[ビュー再表示]イベントを実行すると、位置付けされたノードがすでにロードされている場合のみ、タスクの位置付け機能に基づいて修正されたノードに位置付けることができます。

リッチクライアントタスクでは、[ビュー再表示]イベントが[ツリー]コントロールが配置されたタスクで発行された場合、[ノード事前読込]と[自動展開]などの各特性に従ってツリーは再表示されます。

デフォルトキーボード割付

Ctrl+K

参照

データの再表示


選択一覧 イベント一覧 フォーム先頭

フォーム先頭

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

カーソル位置を現在のコントロールの先頭に移動します。

デフォルトキーボード割付

Ctrl+Home


選択一覧 イベント一覧 フォーム末尾

フォーム末尾

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

カーソル位置を現在のフォームの最後に移動します。

デフォルトキーボード割付

Ctrl+End


選択一覧 イベント一覧 フォーム末尾 ブラウザステータスのテキスト変更

ブラウザステータスのテキスト変更

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

このイベントは、[ブラウザ]コントロールのステータスバーに表示されるテキストが変更されたことをMagicエンジンが認識するためのものです。

これは、コントロールと通信する場合に便利です。JavaScript関数を使用することでコントロールのステータスバーにデータを書き込んだり、イベント発生時に取得することができるステータスバーのメッセージを表示させることができます。[ブラウザ]コントロール上には、ステータスバーは表示されません。このイベントを利用することで、[ブラウザ]コントロール内で表示されるべきステータスバーの内容を、リッチクライアントフォーマのステータスバーに表示させることができます。

ロジックユニットでこのイベントを設定すると、パラメータの作成確認のダイアログが表示されます。[はい]をクリックすると、以下の特性を持つパラメータ項目が作成されます。

  • パラメータ名：Status Text

  • データ型：BLOB型（[内容]特性は、「Unicode」）

実行時、ブラウザコントロールのステータステキストに変更がある場合、このベントが自動的に発生し、パラメータにステータスメッセージが表示されます。

注意：

ステータスメッセージがShift-JISで返される場合は、パラメータ項目の[内容]特性を「ANSI」に変更してください。

デフォルトキーボード割付

なし


選択一覧 イベント一覧 プリンタの設定

プリンタの設定

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

Windowsの[プリンタの設定]ダイアログを開きます。

デフォルトキーボード割付

なし


選択一覧 イベント一覧 プログラム再呼出

プログラム再呼出

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

[タスク特性]で、[並行実行]特性を有効にし、[単一インスタンス]有効にすると、このプログラムが２度目に起動された場合に、フォーカスがすでに実行中のインスタンス上に設定されます。しかし、（データビューの準備のような）初期化処理が行なわれません。

[プログラム再呼出]イベントは、フォーカスが再呼出されたタスク上で発行されます。

呼ばれたプログラムを再表示するには、[プログラム再呼出][イベント]ロジックユニット内で[ビュー再表示]イベントを実行してください。

デフォルトキーボード割付

なし


式 式一覧 イベント一覧 プロジェクトを開く

プロジェクトを開く

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

プロジェクトファイルを選択するための[ファイルを開く]ダイアログが開きます。

デフォルトキーボード割付

Ctrl+O


式 式一覧 イベント一覧 プロジェクトを閉じる

プロジェクトを閉じる

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

現在実行中のプロジェクトを閉じます。現プロジェクト内の全てのコンテキストが閉じます。

デフォルトキーボード割付

なし


式 式一覧 イベント一覧 ページフッタ

ページフッタ

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

[入出力ファイル]特性で定義されたページフッタフォームが出力される前に、[ページフッタ]イベントが実行されます。

注意：

このイベントは、[入出力ファイル]特性にページフッタフォームが定義されている場合のみ実行されます。

このイベントの処理間は、他のどのようなフォームも出力できません。

デフォルトキーボード割付

なし


式 式一覧 イベント一覧 ページヘッダ

ページヘッダ

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

[入出力ファイル]特性で定義されたページヘッダフォームが出力される前に、[ページヘッダ]イベントが実行されます。

注意：

このイベントは、[入出力ファイル]特性にページフッタフォームが定義されている場合のみ実行されます。

このイベントの処理間は、他のどのようなフォームも出力できません。

デフォルトキーボード割付

なし


選択一覧 イベント一覧 ページ先頭

ページ先頭

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

カーソルを現在のページの先頭に移動します。

デフォルトキーボード割付

Ctrl+PgUp


選択一覧 イベント一覧 ページ末尾

ページ末尾

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

カーソルを現在のページの最後に移動します。

デフォルトキーボード割付

Ctrl+PgDn


選択一覧 イベント一覧 ボタンを押下する

ボタンを押す

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

ボタンを押下する処理を実行します。プッシュボタン上にカーソルがある場合に限り有効です。

デフォルトキーボード割付

Enter


選択一覧 イベント一覧 マーク／マーク解除

マーク/マーク解除

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

行をマークしたり解除したりします。

デフォルトキーボード割付

Ctrl+Space


選択一覧 イベント一覧 マークを全て解除

マークを全て解除

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

このイベントは、現在のタスクビューのマークを全て解除します。

実行モード

イベントが非同期で実行された時のみ処理されます。

デフォルトキーボード割付

なし


選択一覧 イベント一覧 マークを反転

マークを反転

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

このイベントは、現在のタスクビューのレコードのマーク状態を反転します。（マークされていたレコードが解除され、マークされていないレコードがマークされます。）

実行モード

イベントが非同期で実行された時のみ処理されます。


選択一覧 イベント一覧 マーク次文字

マーク次文字

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

次の文字をマークします。[エデット]コントロールのみで有効です。

デフォルトキーボード割付

Shift+Rght


選択一覧 イベント一覧 マーク前文字

マーク前文字

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

前の文字をマークします。[エデット]コントロールのみで有効です。

デフォルトキーボード割付

Shift+Left


選択一覧 イベント一覧 マウスアウト

マウスアウト

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

マウスカーソルがコントロールの境界線を出た場合にトリガされます。

デフォルトキーボード割付

なし


選択一覧 イベント一覧 マウスオーバー

マウスオーバ

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

マウスカーソルがコントロールの境界線内に入った場合にトリガされます。

デフォルトキーボード割付

なし


選択一覧 イベント一覧 マルチマーキングで次ページ

マルチマーキングで次ページ

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

マークしながら次ページに移動します

デフォルトキーボード割付

Ctrl+PgDn


選択一覧 イベント一覧 マルチマーキングで次行

マルチマーキングで次行

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

マークしながら次行に移動します。[エディット]コントロールのみ有効です。

デフォルトキーボード割付

Ctrl+Down


選択一覧 イベント一覧 マルチマーキングで前ページ

マルチマーキングで前ページ

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

マークしながら前のページに移動します。

デフォルトキーボード割付

Ctrl+PgUp


選択一覧 イベント一覧 マルチマーキングで前行

マルチマーキングで前行

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

マークしながら前の行に移動します。

デフォルトキーボード割付

Ctrl+Up


式 式一覧 イベント一覧 モジュールを追加

モジュールを追加

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

現在のプロジェクトに対して別のプロジェクト（edp）ファイルを参照できるようにします。

このイベントが実行されると、プロジェクトファイルを選択するための[プロジェクトを選択]ダイアログが開きます。

プロジェクトを選択すると、ナビゲータの[モジュール]ペイン（コンボボックスで「モジュール」をクリックすると表示されます。）に追加されたプロジェクトが表示されます。表示されているプロジェクトをクリックすると、現在のプロジェクトが終了し、選択されたプロジェクトが開きます。

デフォルトキーボード割付

なし


選択一覧 イベント一覧 ユーザイベント

ユーザアクション

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

処理を定義することができるダミーのイベントとして使用できます。

デフォルトキーボード割付

なし


選択一覧 イベント一覧 ライン先頭

ライン先頭

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

カーソルを現在の行の先頭に移動します。[エデット]コントロール上のみで有効です。

デフォルトキーボード割付

Alt+Home


選択一覧 イベント一覧 ライン末尾

ライン末尾

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

カーソル位置を現在の行の最後に移動します。[エデット]コントロールのみで有効です。

デフォルトキーボード割付

Alt+End


選択一覧 イベント一覧 レコード書込

レコード書込

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

[レコード書込]イベントは、データベースに現在のレコードの書き込みを行います。

通常、オンラインタスクでは、次のレコードに移動したり、タスクを終了することで、ユーザがそのレコードを抜けた場合に、Magicは現在のレコードの書き込みを行います。しかし、ユーザがタスクを終了する前にレコードを保存したい場合もあります。例えば、現在のレコードを印刷するために[印刷]ボタンを画面に追加したい場合などが考えられます。印刷対象として現在のレコードを含むようにする場合は、印刷処理が実行される前にレコードが書き込まれている必要があります。

これは、[レコード書込]の内部イベントを使用することで簡単に実現できます。

このイベントが発行されると、Magicエンジンは以下のような処理を実行します。

  1. [レコード後]を実行します。

  2. データベースにレコードを書き込みます。

  3. データベースからレコードを読み直します。(キャッシュの指定内容にかかわらず。)

  4. 同じレコードの[レコード前]を実行します。

  5. 最初にパークしていたカラムにカーソルが移動します。

この内部イベントは、オンラインタスクでのみ有効です。

マルチユーザ環境での考慮事項

  • レコードが削除されたり、他のユーザによって変更された場合、カーソルは次のレコードにパークし、「レコードは失われました」というメッセージが表示されます。

  • レコードが範囲外の場合、そのレコードの位置付けに変更がない限り、画面上に表示が残ります。

  • インデックスが他のユーザによって変更され、レコードが書き込まれた場合、更新されたレコードで表示されます。

  • タスクレベルのトランザクション上で、修正されたレコード書き込まれた後ロールバックが実行されると、変更前のレコードが表示されます。

  • レコードレベルのトランザクション上で修正されたレコード書き込まれた後、ロールバックが実行されると、修正後のレコードが表示されます。

注意：

  • トランザクションが開始された同じタスク内でイベントが発行された場合のみ、レコードが書き込まれます。

  • [レコード書込]イベントを明示的に発行する代わりに、ユーザイベントの[強制終了]カラムを｢レコード｣に設定することでも対応できます。これにより、イベントが発行される前に現在のレコードに対する書き込み処理が実行されます。

デフォルトキーボード割付

なし

参照

データの再表示


選択一覧 イベント一覧 位置付

位置付

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

[レコードの位置付]ダイアログを開きます。

デフォルトキーボード割付

Ctrl+L


選択一覧 イベント一覧 位置付／前候補

位置付/前候補

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

前の該当レコードに位置付けます。

デフォルトキーボード割付

Ctrl+Shift+N


選択一覧 イベント一覧 位置付／次候補

位置付/次候補

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

次の該当レコードに位置付けます。

デフォルトキーボード割付

Ctrl+Shift+L


選択一覧 イベント一覧 下行

下行

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

次の行の同じコントロールに移動します。

このイベントは、複数行表示のコントロールや［リッチエディット］コントロールでのみ有効です。

デフォルトキーボード割付

Down


選択一覧 イベント一覧 画面再表示

画面再表示

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

エンドユーザは、画面をスクロールせずに表示されているレコードを再表示できます。

実行モードでこのイベントが発行された場合、実行エンジンが現在のレコードの処理を終了し、画面に表示されている位置に従って全てのレコードを再読込します。通常、カーソルは現在のレコードに残った状態になります。

デフォルトキーボード割付

なし

参照

データの再表示


選択一覧 イベント一覧 画面先頭

画面先頭

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

カーソルを現行画面の最初の行に移動します。

デフォルトキーボード割付

Ctrl+PgUp


選択一覧 イベント一覧 画面末尾

画面末尾

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

カーソルを現行画面の最終行に移動します。

デフォルトキーボード割付

Ctrl+PgDn


選択一覧 イベント一覧 開始値

開始値

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

範囲/位置付指定の開始値を設定します。

デフォルトキーボード割付

F7


選択一覧 イベント一覧 外部イベント

外部イベント

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

このイベントは、Windowsのメッセージを受け取ったり、ブラウザクライアントページから実行されるMGExternalEvent関数が実行された場合にトリガされます。

デフォルトキーボード割付

なし


選択一覧 イベント一覧 現文字削除

現文字削除

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

カーソル位置の後ろの文字を削除します。

デフォルトキーボード割付

Del


選択一覧 イベント一覧 広域表示

広域表示

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

現行の項目の広域表示ウィンドウを開きます。

デフォルトキーボード割付

F6


選択一覧 イベント一覧 行作成

行作成

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

新しい行を作成します。

デフォルトキーボード割付

F4


選択一覧 イベント一覧 行削除

行削除

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

行を削除します。

デフォルトキーボード割付

F3


選択一覧 イベント一覧 行先頭

行先頭

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

カーソルを現在の行にパーク可能な最初のコントロールに移動します。

デフォルトキーボード割付

Alt+Rght
Alt+Left


選択一覧 イベント一覧 行末尾

行末尾

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

レコード内の行の最後にカーソルを移動します。

デフォルトキーボード割付

Alt+Left
Alt+Right


選択一覧 イベント一覧 項目先頭

項目先頭

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

カーソル位置を現在のカラムの先頭に移動します。

デフォルトキーボード割付

Home


選択一覧 イベント一覧 項目先頭までマーク

項目先頭までマーク

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

先頭までの全ての文字をマークします。[エデット]コントロールのみで有効です。

デフォルトキーボード割付

Shift+Home


選択一覧 イベント一覧 項目末尾

項目末尾

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

カーソル位置を現在のカラムの最後に移動します。[エデット]コントロールのみで有効です。

デフォルトキーボード割付

End


選択一覧 イベント一覧 項目末尾までマーク

項目末尾までマーク

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

項目の最後までの全ての文字をマークします。[エデット]コントロールのみで有効です。

デフォルトキーボード割付

Shift+End


選択一覧 イベント一覧 再表示

再表示

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

現在の表示を再描画します。

デフォルトキーボード割付

なし


選択一覧 イベント一覧 最後までマーク

最後までマーク

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

このイベントは、現在のレコードから最後のレコードまでをマークします。

実行モード

イベントが非同期で実行された時のみ処理されます。

デフォルトキーボード割付

なし


選択一覧 イベント一覧 子ノードに移動

子ノードに移動

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

現在のノードの最初の子ノードにカーソルを移動します。

デフォルトキーボード割付

なし


選択一覧 イベント一覧 子ノード作成

子ノード作成

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

現在のノードの子ノードを作成します。

デフォルトキーボード割付

なし


式 式一覧 イベント一覧 次のウィンドウ

次のウィンドウ

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

ウィンドウ一覧の次のウィンドウにカーソルを移動する。

デフォルトキーボード割付

Ctrl+TAB

参照

ウィンドウ メニュー


選択一覧 イベント一覧 次のノードに移動

次のノードに移動

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

次の子ノードにカーソルを移動します。

デフォルトキーボード割付

なし


選択一覧 イベント一覧 次タブ

次タブ

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

パーク可能な次のコントロールにカーソル位置を移動します。

デフォルトキーボード割付

Tab


選択一覧 イベント一覧 次ページ

次ページ

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

カーソル位置を次のページに移動します。

このイベントは、複数行表示のコントロールや［リッチエディット］コントロールでのみ有効です。

デフォルトキーボード割付

PgDn


選択一覧 イベント一覧 次ページにマーク

次ページにマーク

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

マークしながら次ページに移動します。

デフォルトキーボード割付

Shift+PgDn


選択一覧 イベント一覧 次画面

次画面

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

次の画面の先頭に移動します。

デフォルトキーボード割付

PgDn


選択一覧 イベント一覧 次語

次語

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

カーソル位置を次の文字列に移動します。[エデット]コントロールのみで有効です。

デフォルトキーボード割付

Ctrl+Rght


選択一覧 イベント一覧 次行

次行

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

次の行の同じコントロールに移動します。

デフォルトキーボード割付

Down


選択一覧 イベント一覧 次行でマーク

次行でマーク

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

次の行をマークします。[エデット]コントロールのみで有効です。

デフォルトキーボード割付

Shift+Down


選択一覧 イベント一覧 次行を複数行マーク

次行を複数行マーク

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

次の行をマークします。[エデット]コントロールのみで有効です。

デフォルトキーボード割付

Shift+Down


選択一覧 イベント一覧 次行先頭

次行先頭

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

カーソル位置を次の行の先頭に移動します。

デフォルトキーボード割付

Enter


選択一覧 イベント一覧 次項目

次項目

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

パーク可能な次のコントロールにカーソル位置を移動します。

デフォルトキーボード割付

Tab
Down
Left
Right


選択一覧 イベント一覧 次文字

次文字

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

カーソル位置を次の文字に移動します。[エデット]コントロールのみで有効です。

デフォルトキーボード割付

Right


選択一覧 イベント一覧 取り消終了

取消終了

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

レコードの更新を取り消し、タスクを終了します。

デフォルトキーボード割付

なし


選択一覧 イベント一覧 修正

修正

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

レコードの修正モードになります。

デフォルトキーボード割付

Ctrl+M


選択一覧 イベント一覧 終了

終了

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

現在実行しているタスクを終了します。

デフォルトキーボード割付

Esc


選択一覧 イベント一覧 （Magic)終了

(Magic)終了

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

Magicと実行中の全てのアプリケーションを終了します。

参考

イベント一覧には、終了（X)、またはExit Systemと表示されています。

デフォルトキーボード割付

Alt+F4


選択一覧 イベント一覧 終了値

終了値

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

範囲/位置付け指定の終了値を設定します。

デフォルトキーボード割付

F8


式 式一覧 イベント一覧 出力ダイアログ 次へ

出力ダイアログ 次へ

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

カーソルを次の出力に移動します。

デフォルトキーボード割付

なし


式 式一覧 イベント一覧 出力ダイアログ 戻る

出力ダイアログ 戻る

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

カーソルを前の出力に移動します。

デフォルトキーボード割付

なし


選択一覧 イベント一覧 照会

照会

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

レコードの照会モードになります。

デフォルトキーボード割付

Ctrl+Q


選択一覧 イベント一覧 上行

上行

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

上の行の同じコントロールにカーソルを移動します。

このイベントは、複数行表示のコントロールや［リッチエディット］コントロールでのみ有効です。

デフォルトキーボード割付

Up


選択一覧 イベント一覧 親のノードに移動

親のノードに移動

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

カーソルを親のノードに移動します。

デフォルトキーボード割付

なし


選択一覧 イベント一覧 切り取り

切り取り

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

選択したテキストを切り取りクリップボードにコピーします。

デフォルトキーボード割付

Ctrl+X
Shift+Del


選択一覧 イベント一覧 先頭までマーク

先頭までマーク

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

現在のタスクビューの現在のレコードから先頭のレコードまでをマークします。

実行モード

イベントが非同期で実行された時のみ処理されます。


式 式一覧 イベント一覧 前のウィンドウ

前のウィンドウ

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

ウィンドウ一覧の前のウィンドウにカーソルを移動する。

デフォルトキーボード割付

Ctrl+Shift+Tab

参照

ウィンドウ メニュー


選択一覧 イベント一覧 前のノードに移動

前のノードに移動

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

カーソルを前のド表示ノードに移動します。

デフォルトキーボード割付

なし


選択一覧 イベント一覧 前タブ

前タブ

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

パーク可能な前のコントロールにカーソル位置を移動します。

デフォルトキーボード割付

Shift+Tab


選択一覧 イベント一覧 前ページ

前ページ

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

カーソル位置を前のページに移動します。

このイベントは、複数行表示のコントロールや［リッチエディット］コントロールでのみ有効です。

デフォルトキーボード割付

PgUp


選択一覧 イベント一覧 前ページにマーク

前ページにマーク

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

テーブルの前のページをマークします。

デフォルトキーボード割付

Shift+PgUp


選択一覧 イベント一覧 前画面

前画面

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

前画面の先頭に移動します。

デフォルトキーボード割付

PgUp


選択一覧 イベント一覧 前語

前語

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

カーソル位置を前の文字列に移動します。[エデット]コントロールのみで有効です。

デフォルトキーボード割付

Ctrl+Left


選択一覧 イベント一覧 前行

前行

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

前の行の同じコントロールにカーソル位置を移動します。

デフォルトキーボード割付

Up


選択一覧 イベント一覧 前行でマーク

前行でマーク

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

テーブルの前の行をマークします。

デフォルトキーボード割付

Shift+Up


選択一覧 イベント一覧 前行を複数行マーク

前行を複数行マーク

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

前の行をマークします。[エデット]コントロールのみで有効です。

デフォルトキーボード割付

Shift+Up


選択一覧 イベント一覧 前項目

前項目

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

パーク可能な前のコントロールにカーソル位置を移動します。

デフォルトキーボード割付

Shift +Tab
Up
Left
Rght


選択一覧 イベント一覧 前文字

前文字

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

カーソル位置を前の文字に移動します。[エデット]コントロールのみで有効です。

デフォルトキーボード割付

Left


選択一覧 イベント一覧 前文字削除

前文字削除

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

カーソル位置の前の文字を削除します。

デフォルトキーボード割付

Back


選択一覧 イベント一覧 全てマーク

全てマーク

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

現在のタスクビューの全レコードをマークします。

実行モード

イベントが非同期で実行された時のみ処理されます。

デフォルトキーボード割付

なし


選択一覧 イベント一覧 全て削除

全て削除

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

デフォルトキーボード割付

なし


式 式一覧 イベント一覧 全て閉じる

全て閉じる

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

このイベントが発行されると、ウィンドウ一覧の全てのウィンドウが閉じます。

Magicは、[オープンモーダル]ダイアログを持っているので閉じませんが、他のタスクを閉じる処理を続けます。

デフォルトキーボード割付

なし


式 式一覧 イベント一覧 他のウィンドウ

その他のウィンドウ

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

このイベントが発行されると、Magicは[その他のウインドウ]ダイアログを読み込みます。

デフォルトキーボード割付

なし


選択一覧 イベント一覧 貼付

貼り付け

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

クリップボードからテキストを貼り付けます。

デフォルトキーボード割付

Ctrl+V
Shift+Ins


選択一覧 イベント一覧 登録

登録

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

レコードの登録モードになります。

デフォルトキーボード割付

Ctrl+E


選択一覧 イベント一覧 入出力ファイル

入出力ファイル

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

[入出力ファイル]テーブルを開きます。[入出力ファイル]テーブルは、主にバッチタスクで使用します。

デフォルトキーボード割付

Ctrl+I


選択一覧 イベント一覧 選択

選択

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

選択プログラムでEnterを押下するような選択処理を行います。

デフォルトキーボード割付

Enter


選択一覧 イベント一覧 すべて選択

すべて選択

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

[エディット]コントロール内のテキストをすべてマークします。

デフォルトキーボード割付

Ctrl+A


選択一覧 イベント一覧 範囲

範囲

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

[複写登録]ダイアログを開きます。

デフォルトキーボード割付

Ctrl+R


選択一覧 イベント一覧 複写

複写

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

前の行の同じコントロールの内容をコピーします。

デフォルトキーボード割付

Ctrl+D


選択一覧 イベント一覧 変更取消

変更取消

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

現在のコントロールの編集を取り消します。

デフォルトキーボード割付

Alt+Back


エンジン実行レベル イベントレベル イベント一覧

イベント一覧

Magicエンジン > エンジン実行レベル > イベントレベル

[イベント一覧]は、[イベント]テーブルに定義されているイベントを選択することができます。

F4を押下するか、[登録]ボタンをクリックすることで、[イベント]テーブルが開き、新しいユーザイベントを追加することができます。


エンジンの実行規則（オンライン）

Magicエンジンの実行規則（オンライン）

Magicエンジン >

概要

以下の表は、Magicのロジックユニットのトリガや実行規則、およびロジックユニットがオンラインタスクで実行される順序について要約したものです。

ロジックユニット | トリガ | 次のロジックユニット | 次のロジックユニットの実行条件 | 条件外の場合の動作
タスク前 | タスク実行時 | レコード前 | データビューにレコードが存在する場合 | タスク後
レコード前 | レコードを取得した時 | コントロール前 | オンラインタスク または リッチクライアントタスク | レコード後
コントロール前 | カーソルがコントロールにパークした時 | コントロール検証 | 無条件 |
コントロール検証 | コントロールの編集が終了したり、カーソルがコントロール上でスキップした場合 | コントロール後 | 無条件 |
コントロール後 | コントロールの編集が終了した時 | 項目変更 | 項目の値が変更された場合 | レコード後
項目変更 | 項目の値が変更された場合 | レコード後 | オンラインタスク または リッチクライアントタスクでレコードが書き込まれた場合 | タスク後
レコード後 | レコードが書き込まれた場合 | タスク後 | 無条件 |
タスク後 | タスク終了時 |  |  |

参考：

  • 上記の表は各、ロジックユニットに対する1つの命令実行サイクルを表しています。レコードまたはコントロールサイクルが終了しない場合、このサイクルが（前処理から後処理まで）繰り返し実行されます。

  • [コントロール]ロジックユニットは、[レコード]ロジックユニットのサイクル内でのみ実行される場合があり、[レコード]ロジックユニットは[タスク]ロジックユニット内でのみ実行されます。

  • サブロジックユニットが終了しない限り、親ロジックユニットは終了することができません。

これらの処理についての詳細は、以下を参照してください。

タスクの初期設定

レコード処理

タスクの終了処理

参照

Magicエンジンの実行規則（バッチ）


エンジンの実行規則（オンライン） 初期設定

タスクの初期設定

Magicエンジン > Magicエンジンの実行規則（オンライン）

データビューの準備

  1. [データビュー]エディタで定義されたデータソースのすべてがオープンされます。

  2. Magicはタスクのデータビューの処理を確認し、タスクの論理レコードが下の内容に基づいて作成されます。

  • メインソースのカラム定義とリンクされたデータソース

  • 変数項目とパラメータ項目

  3. 起動元タスクからのパラメータ値を受け取ります。

  4. 変数項目は、項目のデータ型に対応した値（数値型の場合は0、文字型の場合は、空白等）で初期化されます。

  5. タスク範囲は、範囲ウィンドウに定義された範囲条件に従って定義されます。

  6. 指定されたソート定義（ソートテーブルで定義された場合）に従って、エンジンはデータビューをソートします。

追加の準備処理

次の手順には、タスクを初期設定する処理が含まれます。

  1. ([入出力ファイル]テーブルで定義されている場合)入出力デバイスがオープンされます。これはリッチクライアントタスク以外でのみ行われます。

  2. [タスク前]ロジックユニットの処理コマンドが実行されます。

注意：

この段階では、メインソースやリンクテーブルからデータを取得することはできません。

次にレコード処理に移ります。


エンジンの実行規則（オンライン） レコード処理

レコード処理

Magicエンジン > Magicエンジンの実行規則（オンライン）

タスク前が実行された後、データビューレコードは以下のように処理されます。

レコード前

  1. データビューの最初のレコードに位置付け、レコードを取得します。

注意：

リッチクライアントタスクでは、レコードが見つからない場合、作成モードでタスクがオープンされます。[タスク特性]の[登録]特性が「Yes」に設定されている場合のみこのように動作します。「No」の場合は、タスクは終了します。

オンラインタスクでは、[タスク特性]の[空のデータビュー許可]特性の設定内容によって動作が異なります。

  2. [代入]特性はすべての変数項目で評価されます。タスクが登録モードの場合、カラムの[代入]特性も評価されます。

  3. データソースに対するすべてのリンクが、現在のレコードに対して実行されます。

  4. [タスク特性]の[チェック時期]特性が、「B=前置」に設定されている場合、Magicは[タスク終了条件]特性を評価します。

  5. レコードループが実行されます。つまり、この時点からデータソースカラムを処理することができます。

  6. [レコード前]ロジックユニットの処理コマンドが実行されます。

コントロールの処理

オンラインタスクの各レコードに対し、アクセスされた[コントロール]ロジックユニットが実行されます。エンドユーザは、キーボード（TabまたはShift+Tab）を使用するか、マウスでコントロールをクリックすることで、コントロールにアクセスすることができます。

  • コントロール前 …… エンドユーザによってアクセスされる各コントロールに対し、[コントロール前]ロジックユニットの処理コマンドが実行されます。

  • コントロール検証 …… [コントロール検証]ロジックユニットが設定されたコントロールからカーソルが抜けたり、（高速モードの場合）コントロールをスキップして通過した場合、[コントロール検証]に定義された処理コマンドが実行されます。このコントロールをスキップして異なるコントロールにカーソルが移動した場合、高速モードでスキップされたことになります。

  • コントロール後 …… カーソルがコントロールから抜けた場合、[コントロール後]が実行されます。エンドユーザが別のコントロールにカーソルを移動させたり、（別のレコードに移動することで）レコード処理を終了させたり、タスクを終了した場合に、このトリガが発生します。

項目の処理

オンラインタスクやリッチクライアントタスクの場合、項目の値が変更されると[項目変更]ロジックユニットが実行されます。

レコード後

オンラインタスクやリッチクライアントタスクとブラウザタスクでは、修正されたレコードに対してのみ[レコード後]ロジックユニットが実行されます。

バッチタスクの場合は、常に[レコード後]が実行されます。

オンラインタスクやリッチクライアントタスクとブラウザタスクでは、エンドユーザがレコードの処理を抜けた時点で[レコード後]ロジックユニットが実行されます。これは以下のような場合に発生します。

  • キーボードまたはマウスのどちらかを使用して、エンドユーザが別のレコードに移動した場合。

  • エンドユーザは、タスクモード（修正、登録、照会）を変更した場合。

  • エンドユーザがレコードを削除した場合。

  • エンドユーザの操作やタスク終了条件が評価されたことによって、タスクの実行が終了した場合

タスクの処理を終了する場合、レコードループが最初に終了します。

レコードの終了処理

レコードが修正された場合、レコードが保存され[レコード後]ロジックユニットが実行されます。レコードが修正されない場合は、これらの処理は実行されません。

次にタスクの終了処理に移ります。

注意：

オンラインタスクの場合、テーブル内の変数項目を更新すると、現在のレコードだけが新しい値で更新されます。

リッチクライアントタスクの場合は、全てのレコードが新しい値で更新されます。変数項目の[代入]特性に値が設定されていない場合にのみ、このような動作になります。[代入]特性に値が設定されている場合、他の全てのレコードに対してこの値が表示されます。

以下の例のように、｢変数項目｣は、[レコード前]で更新される変数項目です。オンラインタスクの場合は、現在パークしているレコードだけが更新されます。


エンジンの実行規則（オンライン） 終了処理

タスクの終了処理

Magicエンジン > Magicエンジンの実行規則（オンライン）

エンドユーザがタスクを終了させたり、[タスク実行条件]特性がTrueと評価されたり、[終了]イベントが発行されたり等と色々な方法でタスクを終了させることができます。

タスクの終了時、以下の処理が実行されます。

  • [タスク後]ロジックユニットの処理コマンドが実行されます。

  • 入出力デバイスがクローズされます。これはリッチクライアントタスク以外でのみ行われます。

  • タスクのデータソースがクローズされます。

注意：

[タスク後]ロジックユニットは、レコードループの終了後に実行されます。従って、この段階ではデータソースにアクセスすることはできません。


エンジンの実行規則（バッチ）

Magicエンジンの実行規則（バッチ）

Magicエンジン >

バッチタスクのエンジンの実行規則は、オンラインのタスクとは異なります。

オンラインタスクのエンジンサイクル

バッチタスクのエンジンサイクル

  • タスク前

  • レコード前

    • コントロール前

    • コントロール検証

    • コントロール後

    • 項目変更

  • レコード後

  • タスク後

  • タスク前

  • グループ後

    • レコード前

    • レコード後

  • グループ後

  • タスク後

見て分かるとおり、バッチタスクではコントロール関連のロジックユニットが存在しませんが、レコードのグループ処理を可能にするためのロジックユニットがあります。

これらの処理に関する詳細な説明は、以下を参照してください。

タスクの初期設定

グループとレコードの処理

タスクの終了処理

参照

バッチタスクの動作

バッチタスクの使用方法

バッチタスクのイベント処理


エンジンの実行規則（バッチ） 初期設定

タスクの初期設定

Magicエンジン > Magicエンジンの実行規則（バッチ）

データビューの準備

  1. [データビュー]エディタで定義されたデータソースのすべてがオープンされます。

  2. Magicはタスクのデータビューの処理を確認し、タスクの論理レコードが下の内容に基づいて作成されます。

  • メインソースのカラム定義とリンクされたデータソース

  • 変数項目とパラメータ項目

  3. 起動元タスクからのパラメータ値を受け取ります。

  4. 変数項目は、項目のデータ型に対応した値（数値型の場合は0、文字型の場合は、空白等）で初期化されます。

  5. タスク範囲は、範囲ウィンドウに定義された範囲条件に従って定義されます。

  6. 指定されたソート定義（ソートテーブルで定義された場合）に従って、エンジンはデータビューをソートします。

追加の準備処理

次の手順には、タスクを初期設定する処理が含まれます。

  1. ([入出力ファイル]テーブルで定義されている場合)入出力デバイスがオープンされます。

  2. [タスク前]ロジックユニットの処理コマンドが実行されます。

注意：

この段階では、メインソースやリンクテーブルからデータを取得することはできません。

次にグループとレコード処理に移ります。


エンジンの実行規則（バッチ） グループとレコードの処理

グループとレコードの処理

Magicエンジン > Magicエンジンの実行規則（バッチ）

グループ前処理

  1. 最初のレコードがメモリ内に取り込まれます。

  2. [タスク特性]の[チェック時期]特性が、「B=前置」に設定されている場合、Magicは[タスク終了条件]特性を評価します。

  3. ユーザがEscを押下したかどうかにかかわらず、終了イベントがチェックされます。

  4. [グループ後]ロジックユニットの処理コマンドは、最初のタスクサイクルと、[グループ]ロジックユニットに定義された項目の値が前のレコード値と異なる場合に実行されます。

レコード処理

  1. [レコード前]ロジックユニットの処理コマンドが実行されます。

  2. [レコード後]ロジックユニットの処理コマンドが実行されます。

  3. レコードは新しい値で保存されます。タスクモードが「削除」の場合、レコードは削除されます。

グループ後処理

新しいレコードを取得し、[グループ後]ロジックユニットに定義された項目の値が前のレコード値と異なる場合、[グループ後]ロジックユニットの処理コマンドが前のレコードに対して実行されて、[グループ前]ロジックユニットの処理コマンドが現在のレコードに対して実行されます。


エンジンの実行規則（バッチ） 終了処理

タスクの終了処理

Magicエンジン > Magicエンジンの実行規則（バッチ）

エンドユーザがタスクを終了させたり、[タスク実行条件]特性がTrueと評価されたり、[終了]イベントが発行されたり等と色々な方法でタスクを終了させることができます。

タスクの終了時、以下の処理が実行されます。

  • [タスク後]ロジックユニットの処理コマンドが実行されます。

  • 入出力デバイスがクローズされます。

  • タスクのデータソースがクローズされます。

注意：

[タスク後]ロジックユニットは、レコードループの終了後に実行されます。従って、この段階ではデータソースにアクセスすることはできません。

（エンドユーザが任意にタスクを終了させられる）オンラインタスクと異なり、バッチタスクでは、以下の特性やイベントによって終了します。

  • タスク終了条件

  • チェック時期

  • エンドユーザの介入 …… エンドユーザは、ESCキーを押下することで実行中のタスク実行を終了させることができます。


エンジンの実行規則（バッチ） 動作

バッチタスクの動作

Magicエンジン > Magicエンジンの実行規則（バッチ）

バッチタスクの動作は、以下の点がオンラインタスクと異なります。

メインソースを持つバッチタスク

バッチタスクはメインソースレコード（指定された範囲条件で）をもとにループします。タスクは、各レコード毎に[レコード前]と[レコード後]のロジックユニットを繰り返し処理します。

以下の条件のうち1つが満たされた場合、タスク実行は終了します。

  • (タスク特性の)タスク終了条件特性が「True」と評価された場合

  • エンジンは、（指定された範囲内の）最後のレコードに達した場合

メインソースを持たないバッチタスク

メインソースが定義されない場合、バッチタスクは[タスク終了条件]特性が「True」と評価されない限り実行されます。

このタイプのタスクは、0メインソースバッチタスクと呼ばれます。

例えば、変数項目を使用して処理するプログラムを作成した場合、[タスク終了条件]特性が「True」と評価されるまでレコードループは無限に実行されます。

メインソースを持ち、登録モードのバッチタスク

メインソースが定義され、[初期モード]特性が「登録」に設定された場合、タスクは0メインソースバッチタスクと同じように動作します。

例えば、レコードをデータソースに追加するだけのプログラムを作成する場合、[タスク終了条件]が「True」と評価されるまで、レコードループが無限に実行されます。


エンジンの実行規則（バッチ） 使用方法

バッチタスクの使用方法

Magicエンジン > Magicエンジンの実行規則（バッチ）

バッチタスクは、様々な使用方法があります。多くの場合、バッチタスクモードとその使用方法の間には明確な関連があります。

以下は、タスクモードに依存しているバッチタスクの使用方法に関する概要です。

タスクモード | 使用方法
Q=照会 | メインソースを読み込み、帳票や集計処理のような結果を出力するために使用します。
C=登録 | データを入出力デバイスから入力したり、複数のデータソースからデータをコピーするために使用されます。
M=修正 | データソースを連続して更新したり、データソースのレコードの集計処理を行う場合に使用されます。
D=削除 | 決まった条件下でのデータソースのレコードを連続して削除する場合に使用します。


ユーザ定義イベント

Magicエンジン >

Magicの全ての処理は、あらかじめ決められた内容に従って実行されます。

Magicは、以下の順番で処理を実行します。

  1. タスク前

  2. レコード前

  3. [データビュー]のデータ定義

  4. レコード後

  5. タスク後

イベントを使用することで、これとは別の方法で処理を実行させることができます。

イベントは、特定の順序によって起動されません。イベントが発生するには、「トリガ」を定義する必要があります。

トリガには、以下のものがあります。

  • ショートカットキーや組み合わせキー

  • Magicの内部イベント

  • タイマー

  • 式（式の評価結果が「True」の場合）

  • イベント実行処理コマンド

イベントは、Magicエンジンに、対応すべき何かがあることを知らせるフラグのようなものです。イベントレベルのロジックユニットを使用することで、Magicは発生したイベントに対応することができます。

参照

イベントのタイプ

イベントテーブル

イベントレベルハンドラ


ユーザ定義イベント プロジェクトとタスクイベント

プロジェクトとタスクイベント

Magicエンジン > ユーザ定義イベント

イベントには２つのタイプがあります。

プロジェクト関連イベント

プロジェクト関連イベントは、メインプログラムで定義され、プロジェクト全体で利用できます。これらのイベントは、プロジェクトのプログラムが実行中に発生させることができます。

タスク関連イベント

タスク関連イベントは、各タスク内で定義され、現在実行中のタスクやそのサブタスクでのみ利用できます。

タスクとプロジェクトの[イベント]テーブルは、同じような外観です。

参照

イベントテーブル


ユーザ定義イベント イベントテーブル

イベントテーブル

Magicエンジン > ユーザ定義イベント

[イベント]テーブルには、各プロジェクトごとに固有なユーザ定義イベントを定義できます。

例えば、Ctrl+F というキーの組み合わせでトリガされる「新規顧客登録」というイベントを定義するとします。

定義したユーザ定義イベントは、システムイベントなどと全く同様に、[ロジック]エディタでロジックユニットを定義するトリガとして使用することができます。このロジックユニットには、処理コマンドを定義することで、[イベント]ロジックユニットの処理内容を定義することができます。

定義された「新規顧客登録」の[イベント]ロジックユニットは、実行時にエンドユーザがCtrl+F を押下するたびに実行されます。

[イベント]テーブルには、以下のパラメータがあります。

名前

タイプ

トリガ

パラメータ

強制終了

公開名 (メインプログラムのみ)

公開 (メインプログラムのみ)

注意：

[イベント]テーブルでは、発行するトリガのタイプと値を定義することができます。トリガが[イベント]テーブルに定義されているかどうかにかかわらず、イベントはアプリケーションロジックに基づいて発行される必要があります。このため、イベントを発行するために[イベント実行]処理コマンドを使用することができます。


ユーザ定義イベント イベントテーブル 名前

名前

Magicエンジン > ユーザ定義イベント > イベントテーブル

イベントの名前を指定します。ハンドラを定義する際にこの名前でイベントを選択します。


ユーザ定義イベント イベントテーブル タイプ

タイプ

Magicエンジン > ユーザ定義イベント > イベントテーブル

イベントのためのトリガとして使用するイベントのタイプを指定します。以下のタイプが指定できます。

  • S=システム…… キーボード操作の組み合わせ

  • I=内部……Magic エンジンに組み込まれているイベント

  • T=タイマ……定義された間隔ごとに発生するイベント

  • E=式……式が「True」と評価された場合に発生するイベント

  • N=なし……トリガの指定は不要です。「ユーザイベント」と同じように開発者が任意に定義することのできるイベントです。

トリガタイプが[N= なし]（トリガなし）に設定されている場合、このイベントは[イベント実行]コマンドかプッシュボタンコントロールの[実行イベント]特性に定義されている場合のみ発生します。。「ユーザイベント」のように開発者が任意に定義することのできるイベントです。

参照

イベントテーブル


ユーザ定義イベント イベントテーブル トリガ

トリガ

Magicエンジン > ユーザ定義イベント > イベントテーブル

ユーザ定義イベントを発生させるためのトリガを指定します。

[タイプ]で「なし」と設定された場合以外は、トリガを指定する必要があります。ここからズームすると[タイプ]の指定に基づいて以下のトリガを指定します。

  • S=システム…… [キー設定]ダイアログが表示され、そのイベントをトリガするキーの組み合わせを入力できます。

  • I=内部……[イベント一覧]が表示され、ここから内部イベントを選択します。

  • T=タイマ……イベントの発生間隔を指定します。

  • E=式……[式]エディタが表示されます。ここに条件式を定義します。

タイプが設定されない場合、[イベント実行]処理コマンドでのみ起動できます。


ユーザ定義イベント イベントテーブル パラメータ

パラメータ

Magicエンジン > ユーザ定義イベント > イベントテーブル

プロジェクトとユーザ定義イベントの間でデータの受け渡しをする場合、ここで使用するデータ属性を定義することができます。ここからズームすると[パラメータ]テーブルが開きます。

テーブルには以下のカラムがあります。

  • 名前

  • モデル

  • 型

  • 書式

[イベント]ロジックユニットを定義する際、ロジックユニットにパラメータ項目を定義するかどうかを確認するダイアログが表示されます。「Yes」を指定すると、ロジックユニット内にパラメータ項目が定義されます。このようなロジックユニットを起動させる場合、パラメータを指定する必要があります。


ユーザ定義イベント イベントテーブル パラメータ 名前

名前

Magicエンジン > ユーザ定義イベント > イベントテーブル > パラメータ

パラメータの名前を入力します。[モデル]を定義する場合、このカラムを空白にするとモデルの名前が設定されます。

ここには、最大30桁の文字を入力できます。

参照

モデル

型

書式


ユーザ定義イベント イベントテーブル パラメータ モデル

モデル

Magicエンジン > ユーザ定義イベント > イベントテーブル > パラメータ

ダブルクリックして[モデル一覧]から項目モデルを選択することで、パラメータにモデルを定義することができます。

項目モデルを定義すると以下のような設定されます。

  • 項目モデルの特性が継承されます。

  • [名前]カラムが空白の場合、モデルの名前が設定されます。

参照

名前

型

書式


ユーザ定義イベント イベントテーブル パラメータ 型

型

Magicエンジン > ユーザ定義イベント > イベントテーブル > パラメータ

以下のMagicのデータ型を指定できます。

  • A=文字型 (デフォルト)

  • U=Unicode型

  • N=数値型

  • L=論理型

  • D=日付型

  • T=時刻型

  • B=BLOB

  • O=OLE

  • X=ActiveX

  • V=ベクトル

参照

名前

モデル

書式


ユーザ定義イベント イベントテーブル パラメータ 書式

書式

Magicエンジン > ユーザ定義イベント > イベントテーブル > パラメータ

  • 文字型、Unicode型……長さの指定が最低限必要です。必要に応じて他の設定も指定できます。

  • 数値型……桁数や小数点、３型区切りの指定が最低限必要です。

  • 論理型、日付型、時刻型……デフォルトの書式が表示されますが、必要に応じて変更できます。

  • ベクトル型、OLE型、ActiveX型、BLOB型……書式を指定する必要がありません。

参照

名前

モデル

型


ユーザ定義イベント イベントテーブル 強制終了

強制終了

Magicエンジン > ユーザ定義イベント > イベントテーブル

Magic エンジンが[イベント]ロジックユニットとして定義されている一連の処理コマンドを実行する前に、終了するレベルを指定します。

  • N=なし……どのレベルに対しても終了処理を行わず、イベントが発生したコントロールの編集モード内でハンドラ処理を実行します。

  • E=編集…… イベントを実行する前に既存のコントロールの編集モードを終了します。Magic エンジンは、以下の順番に処理を実行します。

    1. 編集モードを終了します。

    2. 編集項目の内容を更新します。

    3. 更新された項目に関係する全ての値を再計算します。

    4. データが変更されたら[項目変更]ロジックユニットを実行します。

    5. [イベント]ロジックユニットラを実行します。

    6. コントロールの編集モードに戻ります。

実行されたハンドラ内でコントロール項目を参照する場合、その項目は編集された値として参照されます。

このオプションはエディット、リッチエディット、および複数選択のリストボックスコントロールで有効で、編集状態の時に項目の内容と異なる値の場合に更新されます。

  • C=コントロール……イベントを実行する前に現在のコントロールレベルを終了します。Magic エンジンは、以下の順番に処理を実行します。

    1. 編集モードを終了します。

    2. 編集項目の内容を更新します。

    3. 更新された項目に関係する全ての値を再計算します。

    4. [項目変更]ロジックユニットを実行します。

    5. [コントロール検証]と[コントロール後]のロジックユニットを実行します。

    6. [イベント]ロジックユニットを実行します。

    7. [コントロール前]ロジックユニットを実行します。

    8. コントロールの編集モードに戻ります。

  • R=レコード更新前……イベントを実行する前に現在のレコードレベルを終了します。Magic エンジンは、以下の順番に処理を実行します。

    1. 編集モードを終了します。

    2. 編集項目の内容を更新します。

    3. 更新された項目に関係する全ての値を再計算します。

    4. [項目変更]ロジックユニットを実行します。

    5. [コントロール検証]及び[コントロール後]のロジックユニットを実行します。

    6. レコードが変更された場合、[レコード後]ロジックユニットを実行します。

    7. レコードが変更された場合、テーブルのレコードを更新します。

    8. [イベント]ロジックユニットを実行します。

    9. レコードが更新された場合、テーブルを更新します。

    10. [レコード前]ロジックユニットを実行します。

    11. [コントロール前]ロジックユニットを実行します。

    12. コントロールの編集モードに戻ります。

イベントレベルが実行された場合、レコードはまだ更新されていないため、イベントレベルからレコードを参照してもレコードがまだ更新されていないものと見なされます。

  • P=レコード更新後……イベントは対応するハンドラを実行する前に現在のレコードを終了し、更新するさせます。このイベントを処理するとすぐに、以下の処理が連続して実行されます。

    1. 編集モードを終了します。

    2. 項目を更新します。

    3. 更新された項目をもとに再計算処理が実行されます。

    4. [項目変更]／[コントロール検証]／[コントロール後]ロジックユニットを実行します。

    5. レコードが修正されていた場合、[レコード後]ロジックユニットを実行します。

    6. レコードが修正されていた場合、レコードを更新します。

    7. [レコード前]ロジックユニットを実行します。

    8. [イベント]ロジックユニットを実行します。

    9. [コントロール前]ロジックユニットを実行します。

イベントレベルが実行された場合、レコードはすでに更新されているので、イベントレベルからレコードを参照すると、更新された内容として参照できます。

注意：

Magicが対応するハンドラを検索する場合、ユーザイベントの公開名を使用するため、メインプログラムでは、ユーザイベントの公開名を設定


ユーザ定義イベント イベントテーブル 公開名

公開名

Magicエンジン > ユーザ定義イベント > イベントテーブル

メインプログラムでのみ指定できます。イベントをコンポーネント化する場合に指定します。アプリケーション内でユニークな名前を指定してください。


ユーザ定義イベント イベントテーブル 公開

公開

Magicエンジン > ユーザ定義イベント > イベントテーブル

メインプログラムでのみ指定できます。このチェックボックスを選択すると、[イベント実行]処理コマンドの公開イベントオプションを使用することで、このイベントを呼び出すことができます。

この設定が有効な場合、[公開イベント名]も指定する必要があります。


ユーザ定義イベント 動作

イベントの動作

Magicエンジン > ユーザ定義イベント

イベントが発生するたびに、実行中コンテキストのイベントキューにイベントが入ります。

Magicは、以下のタイミングでペンディング中のイベントを、イベントキューから取り出します。

  • オンラインタスクとリッチクライアントとブラウザタスク

  • エンドユーザがキーを押下した時

  • タスクがアイドル状態になった時。タスクがキー入力待ちの状態になり、[バッチイベント間隔]（[環境設定]ダイアログ）に指定された時間が経過した時

  • バッチタスク …… [バッチイベント間隔]（[環境設定]ダイアログ）に指定された時間が経過した時、または[レコードイベント間隔]（[タスク特性]ダイアログ）に指定されたレコード数が処理された時。

  • [イベント実行]処理コマンドが実行された場合

Magicは、[イベント実行]処理コマンドの実行条件を確認します。[ウェイト]特性が「No」に設定されている場合、該当するイベントを即実行します。「Yes」に設定された場合、イベントはイベントキューに追加され、タスクタイプに従って以下のように動作します。

Magic エンジンは、イベントをイベントキューから取り出した後、そのイベントをトリガとして定義されている[イベント]ロジックユニットを検索します。このイベントのロジックユニットが見つかると、Magicはその[イベント]ロジックユニットを実行します。

Magicエンジンが[イベント]ロジックユニットの実行を完了すると、その[イベント]ロジックユニットの[伝播]パラメータをチェックし、「Yes」に設定されているか「True 」に評価される場合には、より上位のレベルで定義されている、同一のイベントをトリガとする[イベント]ロジックユニットを検索します。例えば、イベントA が発生した場合にイベントA のロジックユニットがイベントB を発生したとすると、イベントB のロジックユニットが見つかって実行された場合、イベントA ではなく、イベントB のみで伝播処理が実行されます。

Magicエンジンは、現在実行中のタスクから始まってメインプログラムに至るまで、各タスク内では[ロジック]エディタ内に定義されている[イベント]ロジックユニットを下から上に向かって検索していきます。このため、同じタスク内で同じイベントのハンドラが2つ以上ある場合は、[ロジック]エディタで一番下に定義されている[イベント]ロジックユニットが一番先に実行されます。ロジックユニットの[伝播]特性が「Yes」の場合、その上に定義されている（同じイバンとの）ロジックユニットが二番目に実行されます。[伝播]特性が「No」の場合は、一番下のロジックユニットのみ実行されます。

ユーザイベントは、伝播できません。

参照

イベントレベル

イベント一覧

イベントの用語


ユーザ定義関数

Magicエンジン >

ユーザ定義関数は、パラメータや処理コマンドおよび戻り値を組み合わせて1つの論理セグメントにしたものです。

ユーザ定義関数は、以下のように動作します。

  • 名前、パラメータ、処理コマンド、および戻り値によって構成されます。

  • メインプログラムを定義した場合、プロジェクト全体で利用できます。[スコープ]が「G=グローバル」に設定された場合、他のコンポーネントで利用することができます。

  • 内部関数として認識されます。

  • ユーザ定義関数は、またコンポーネントの一部として公開することができます。

注意：

  • 関数のパラメータとロジックは、関数レベルセクション内で処理コマンドを使用して定義します。

  • 関数名には、日本語(DBCSコード)は指定できません。

参照

ユーザ定義関数の定義

ユーザ定義関数の動作

ユーザ定義関数とコンポーネント

ユーザ定義関数の実行時の動作


ユーザ定義関数 定義

ユーザ定義関数の定義

Magicエンジン > ユーザ定義関数

[ロジック]エディタからCtrl+Hを押下することでヘッダラインが追加されます。ここに、以下の情報を入力することで機能を定義することができます。

名前

ユーザ定義関数の名前を入力します。最大30字の文字を入力できます。同じ名前を入力することもできます。関数名には、文字や数字、アンダスコアを含めることができます。空白やDBCSまたは特殊文字を含めることはできません。

スコープ

以下のオプションがあります。

  • T=タスク …… 関数は、現在のタスクでのみ有効です。

  • S=サブツリー …… 関数は、サブタスクでも有効です。

  • G=グローバル（メインプログラム） …… 関数をコンポーネントの一部として公開することができます。

戻り値

呼出したタスクに返す値を式で設定することができます。

戻り値の設定は、必須でありません。

戻り値は、どのような型の値でも指定できます。

実行

ロジックユニットの実行先を指定します。この特性はリッチクライアントタスクでのみ表示されます。オプションは以下の通りです。

  • O=最適化：(デフォルト) …… 処理フローに基づいてサーバ上かクライアント上で実行されます。

  • S=サーバ …… サーバ上で実行されます。

この特性は、[関数]か[イベント]ロジックユニットでのみ有効です。「サーバ」と指定されたロジックユニット内では、ニュートラル（どちらでも実行可能）、またはサーバ側の処理コマンドのみ有効です。

ヘルプ文字列

F12を押下して、コメントボックス内にテキストを入力することによって、ユーザ定義関数に関する簡単なヘルプを作成することができます。

/*Replaces a specified token by another string*/

というように、/*と*/の間に文字列を入力します。

表示可能な文字数は58桁です。改行することで縦3桁まで表示できます。

ユーザ定義関数を選択すると、ヘルプが[関数一覧]の底辺に表示されます。

参照

ユーザ定義関数

ユーザ定義関数の動作

ユーザ定義関数とコンポーネント

ユーザ定義関数の実行時の動作


ユーザ定義関数 動作

ユーザ定義関数の動作

Magicエンジン > ユーザ定義関数

タスクまたはサブタスクは、そのタスクのタスクツリー内でアクセス可能なユーザ定義関数を参照することができます。メインプログラムで定義されたユーザ定義関数は、アプリケーション全体で利用可能です。

[式]エディタから[関数一覧]を表示させた場合、「ユーザ定義」のグループをクリックすると、ユーザ定義関数の一覧が表示されます。ユーザ定義関数のどれかにカーソルをパークさせると、コメントボックスに定義された内容がヘルプ文字として表示されます。

注意：

コメントボックス（F12）内に/*と*/で囲まれたテキストを入力することによって、ユーザ定義関数に関する簡単なヘルプを作成することができます。

重複した関数名

複数のユーザ定義関数が同じ名前で定義されている場合、スコープで指定された内容に基づいて使用されます。

例えば、２つのユーザ定義関数が「ABC」という同じ名前で定義されているものとします。一方の[スコープ]が「サブタスク」で他方が、メインプログラムにおいて「グローバル」と定義されている場合。サブタスク内では、「サブタスク」と定義された関数を使用することになり、他のプログラムで使用する場合は、メインプログラムで定義された関数を使用することになります。

組み込み関数をオーバライド

Magicの組み込み関数と同じ名前のユーザ定義関数を定義した場合、組み込み関数がオーバライドされます。例えば、STRというユーザ定義関数を作成した場合、Magicの組み込み関数は無効になります。

注意：

組み込み関数と同じ名前のユーザ定義関数内で、同じ名前の関数をネストさせて使用した場合の動作は保証されません。

ユーザ定義関数の削除やリネーム

ユーザ定義関数の名前が変更されても、式に定義された関数名は自動的に変更されません。また、関数定義が削除されても、式内の関数は削除されません。関数名の変更や関数定義の削除は開発者の責任で行ってください。

関数名が変更されたり関数定義が削除され、以前の名前に該当する関数が存在しなくなった場合、この関数名を参照している式定義は全て無効になります。構文チェックユーティリティは、エラーとして扱います。

関数名が変更されたり関数定義が削除されても、同じ名前の関数が別に存在している場合は、全ての式は、存在している既存の関数を参照することになります。

参照

ユーザ定義関数

ユーザ定義関数の定義

ユーザ定義関数とコンポーネント

ユーザ定義関数の実行時の動作


ユーザ定義関数 コンポーネント

ユーザ定義関数とコンポーネント

Magicエンジン > ユーザ定義関数

メインプログラム内で定義されたユーザ定義関数は、[スコープ]を「G=グローバル」に設定された場合、Magicのコンポーネントの一部として公開することができます。関数は、公開名を必要とせず、定義された関数名で参照することができます。

コンポーネントが、メインプログラム内のグローバル定義されたユーザ定義関数と一緒に読み込まれた場合、ユーザ定義関数はホストアプリケーションで参照することができるようになります。関数が(他のプログラムやデータソースなどの)リソースを使用する場合、コンポーネント内のリソースがアクセスされます。

関数が公開されない場合でも、EvalStr関数を使用してこのユーザ定義関数を実行させるようにすることもできます。


ユーザ定義関数 実行時の動作

ユーザ定義関数の実行時の動作

Magicエンジン > ユーザ定義関数

ユーザ定義関数は、組み込み関数と同じように実行時に評価されます。

関数は、同期型の[イベント]ロジックユニットと同じように実行されます。

タスク関連の関数において世代番号が「0」に指定された場合、関数を実行したタスク自身を示します。ユーザ定義関数が親タスクで定義され、子タスクから実行された場合、ユーザ定義関数によって実行されたタスク関連関数における世代番号「0」は、ユーザ定義関数を実行した子タスクを示します。

また、ユーザ定義関数から呼び出されたタスクは、その関数を実行したタスクの子タスクとみなされます。

パラメータ渡し

一般的に、全てのパラメータは、関数に値が渡されます。パラメータの値を更新しても、更新された値を戻して参照することはできません。

VarCurrとVarSetまたはVarCurrNとVarIndexのような様々なVAR関数によって処理できる項目参照を渡すことができます。

戻り値

関数が実行されると、戻り値の式が評価され、その式の値が関数の戻り値と認識されます。関数が戻り値を持たない場合、関数は NULL を返します。

注意：

ユーザ定義関数は、EvalStr または EvalStrInfo関数を使用して評価することができます。

ユーザ定義関数と起動されたタスク

ユーザ定義関数が、起動されたタスク用に定義され、そのタスクが下位のタスクから起動された上位タスクのハンドラを持っている場合、ユーザ定義タスクは全体のハンドラ実行に対して有効です。

再帰的な呼出

ユーザ定義関数内に定義された処理コマンドで同じユーザ定義関数を呼び出すような再帰的な方法は使用しないでください。このような場合の実行結果は保証されません。

参照

ユーザ定義関数

ユーザ定義関数の定義

ユーザ定義関数とコンポーネント


タスクのデータビュー

Magicエンジン >

タスクは、データベースから選択された一連のレコードに対して処理を実行します。

処理の対象となる個々のデータは、メインソースやリンクテーブルに定義されているカラムの中から[カラム]コマンドにより定義されますが、このようなデータ項目を「実データ項目」あるいは「実項目」と呼びます。

また、タスクの処理を行うために、実データ項目のほかに、一時的な計算結果などを格納しておくデータ項目も必要になることがあります。このようなデータ項目は、タスクの実行中にだけ存在することから、実データ項目に対して「変数項目」と呼んでいます。また、[コール]コマンドでタスクやプログラムを呼び出す時に、呼び出し側タスクとの間でデータの受け渡しを行いたい場合がありますが、この場合には、「パラメータ項目」というデータ項目を使用します。

パラメータ項目は、[コール]処理コマンドの設定時などに変数項目と区別して扱われますが、それ以外には、タスクの実行中にだけ存在する変数項目と同じです。

タスクの項目は、実項目、変数項目、パラメータ項目のいずれも、全てタスクの[項目一覧]に登録されます。一覧では、各項目にシンボル名という文字コードが割当てられます。式中で項目を参照したい場合、このコードを使用して項目を指定します。また、親タスクで定義された項目は、サブタスクでも使用することができ、サブタスクの[項目一覧]から選択することができます。

参照

Magicによるデータビューの準備処理

データビューのチューニング

レコードデータビュー

[データビュー]エディタ


タスクのデータビュー 準備処理

Magicによるデータビューの準備処理

Magicエンジン > タスクデータビュー

Magic エンジンがタスクの実行を開始すると、エンジンはタスクのデータビューを構成するレコードの範囲条件をチェックします。このチェックに通過したレコードに対してだけ、[タスク前]が実行されます。このチェックは、次のようにして行われます。

  1. まず、エンジンは、メインソースやリンクテーブルから[カラム]コマンドや、[変数]コマンドや[パラメータ]コマンドで定義された項目を検索し、これらを論理レコードの中に含めます。

  2. 次に、タスクの[範囲]式と、[データビュー]エディタに表示されている順に項目の[範囲：最小]と[範囲：最大]の設定を評価します。範囲の評価結果は、データビューに含まれるレコードの範囲を絞り込みます。実行時にユーザが入力したデータによって、更に表示を絞り込むことができます。SQLテーブルから作成されたデータビューの場合は、DBのWhere句によって絞り込み条件を追加することができます。

  3. タスクの［ソート]テーブルでソートが設定されている場合、Magic エンジンは、タスクの実行に先立ち、［ソート]テーブルに指定されたデータ項目の値に従って、昇順あるいは降順にメインソースのレコードをソートします。ここでは、範囲条件に合致したレコードだけがソートの対象になります。実行モードでソート機能を有効にすると、エンドユーザがデータビューのソート条件を設定することもできます。

注意：

埋め込みSQL タスクの場合、Magic エンジンは「SQL コマンド」で定義されているSQL 文をRDBMS に送って実行させ、結果として得られた一連のレコードをメインソースとして、タスクの処理を行います。この場合、上記のMagicエンジンによるデータビューの準備は全て割愛され、すぐに準備処理以降の処理が実行されます。埋め込みSQL タスクにおいては、SQL文によって作成されたデータビューの項目は実項目ではなく、変数項目となります。Magic では、実項目は[データ]リポジトリ中に定義されているテーブルの定義を基にして認識されますが、SQL 文が定義されている時には、テーブルの定義が[テーブル]リポジトリ中に存在しないからです。

参照

タスクデータビュー

データビューのチューニング

レコードデータビュー

[データビュー]エディタ


タスクのデータビュー チューニング

データビューのチューニング

Magicエンジン > タスクデータビュー

データビュー中のデータの値をより細かく制限するには、以下のような方法があります。

タスクの処理対象となるレコードは、タスクの[範囲]ダイアログの[範囲]式を使用してより詳細に絞り込むこともできます。この方法は条件を任意の式で指定することができるため柔軟性が高く、複数の非連続な範囲を指定することもできますし、実項目だけでなく、変数項目の値を基に範囲条件を設定することもできます。

また、[範囲]ダイアログの[範囲順序]パラメータを使用して、レコードが処理あるいは表示される順序（昇順または降順）を設定することもできます。

なお、[範囲]ダイアログの[範囲]式と、[カラム]特性の[範囲：最大]/[範囲：最小]特性の両方で範囲が指定されている場合には、範囲条件はAND で結合され、全ての条件を満たすレコードが、タスクの処理の対象となります。

その他、以下のような範囲を設定するパラメータがあります。

  • 項目モデルには[範囲]という特性を設定することができます。ここには、このモデルを使ったデータ項目がとりうる値を設定することができます。ただし、この設定は、ユーザのデータ入力時にチェックされるだけで、すでにデータベースに格納されているデータに対しては適用されません。

  • [データ]リポジトリの[カラム]テーブルでは、各カラムのデータがとりうる値を[範囲]特性に設定することができます。この設定も項目モデルの[範囲]特性と同じく、ユーザのデータ入力時にのみチェックされます。

  • メインソースがSQL系のRDBMSの場合、[SQLWhere句]ダイアログを使用して、Magicの項目を使用したSQL文を定義することで範囲指定を行うことができます。

参照

タスクデータビュー

Magicによるデータビューの準備処理

レコードデータビュー

[データビュー]エディタ


タスクのデータビュー レコードデータビュー

レコードデータビュー

Magicエンジン > タスクデータビュー

エンジンがタスクのデータビューから特定のレコードを処理している時には、このデータビューには[変数]テーブルにある変数の値も含まれています。これを「論理レコード」と呼びます。

論理レコードには、タスク全体のデータビューやリンクテーブルの値がまとまって含まれています。

参照

タスクデータビュー

Magicによるデータビューの準備処理

データビューのチューニング

[データビュー]エディタ


タスクフローでの処理モード

Magicエンジン >

Magic アプリケーションエンジンの動作は、タスクのタイプ（オンライン、ブラウザ、バッチ）と「処理モード」によって変わります。ここでは処理モードについて説明します。

処理モードは、タスクのメインソースに対してだけ意味があります。処理モードは基本的には４つあります。以下の表は４つの処理モードをまとめたものです。

処理モード | ユーザが可能な操作
登録 | 新規レコードの作成が可能です
修正 | 既存のレコードの修正が可能です
照会 | レコードの参照のみ可能で、更新はできません。オンラインタスクの場合、ユーザはキーボードから文字などを入力し、その入力を条件としてレコードの検索を行うことができます。バッチタスクでも、テーブルは読込専用で開かれるため、検索は可能ですが、更新はできません。
削除 | レコードの削除が可能です。この削除モードは、[レコード後]でだけ有効です。

処理モードはタスク実行中にユーザが変更することができますが、開発者はタスクが始まる時の[初期モード]を[タスク特性]ダイアログで指定しなければなりません。

オンラインタスクの場合、[タスク特性]ダイアログのパラメータで、ユーザによるモード変更を制限することができます。一方、バッチタスクでは、タスクの実行中にユーザが初期処理モードを変更することはできず、[タスク特性]で設定した処理モードのままで処理が進められます。

[ロジック]エディタに定義されている処理コマンドの実行は、通常、処理モードによって影響を受けることはありません。しかし、その時点の処理モードに応じて処理を制限したい場合には、[条件]欄にStat関数を使った式を指定することで実現できます。Stat関数の使い方については、「エンジンの実行規則」の「処理実行の制御」に詳細があります。

処理モードはメインソースにリンクしているテーブルの登録や修正には影響しません。この場合、リンク定義のリンクタイプによって決まります。

参照

修正モードから登録モードへの自動切替

修正モードでユーザが編集を行っている時の登録モードへの一時的切替

照会モードと修正モードの違い

エンドユーザによる画面での操作


タスクフローでの処理モード 自動切り替え

修正モードから登録モードへの自動切替

Magicエンジン > タスクフローでの処理モード

[初期処理モード]特性が修正モードに設定されたオンラインタスクが実行された時、タスクにメインソースが定義されていない場合や、データソースは存在しても指定された範囲のレコードがなかった場合は、処理モードが修正モードから登録モードに自動的に変更されます。この自動切り替え機能により、データソースの作成用と更新用のプログラムを別々に用意しなくても済みます。

しかし、メインソースとして使用されたデータソースが正常な状態でない場合、この切替処理が正常に働かなくなる場合があります。例えば、データソースが指定されたディレクトリが突然削除されたり、パス名が変更されたりした場合などが考えられます。

参照

タスクフローでの処理モード

修正モードでユーザが編集を行っている時の登録モードへの一時的切替

照会モードと修正モードの違い

エンドユーザによる画面での操作


タスクフローでの処理モード 一時的切替

修正モードでユーザが編集を行っている時の登録モードへの一時的切替

Magicエンジン > タスクフローでの処理モード

修正モードの場合、エンドユーザはタスクのデータビューにあるレコードを更新することができます。編集中、ユーザの操作によっては、修正モードが一時的に登録モードに自動的に切り替わることがあります。この場合、タスクのフォームに表示されている情報はそのまま残ります。この一時的自動切替が実行されると、空のレコードが表示され、ユーザがデータの入力を行うことができます。入力後、ユーザが別のレコードに移動すると（つまり、レコードの入力を確定すると）、処理モードは自動的に修正モードに変わります。また、[動作環境]ダイアログの[修正後の再位置付]の値を「Yes」にしている時には、新規のレコードは、タスクのソート順にしたがって再位置付けされます。この一時的自動切替は、ユーザが次のような操作を行った時に実行されます。

  • ユーザが[行作成]イベント（F4）を実行した時。この場合、現在のレコードの後ろに新規のレコードが表示されます。

  • カーソルがテーブルの一番最後のレコードにある時に、ユーザが[次行]イベント（「↓」）を実行した時。この場合、最後のレコードの後ろに新規のレコードが表示されます。

参照

タスクフローでの処理モード

修正モードから登録モードへの自動切替

照会モードと修正モードの違い

エンドユーザによる画面での操作


タスクフローでの処理モード 違い

照会モードと修正モードの違い

Magicエンジン > タスクフローでの処理モード

照会モードと修正モードでは、タスクの実行フローは似ています。ただし、厳密には、照会モードと修正モードとでは、次の点が異なります。

バッチタスクの場合

照会モードと修正モードの実行フローはほぼ同じですが、照会モードではデータベースの更新が行われない点が異なります。つまり修正モードでは、レコードが全て読み込まれ、処理後、データベースにレコードが書き込まれます。照会モードでは、タスクに関連するデータベーステーブルは全て読み込み専用で開かれ、データに対しては読込処理しか行われません。このため、照会モードは、通常、データを出力する場合に使用します。また、修正モードより照会モードの方が処理が高速です。

オンラインタスクの場合

照会モードでは、レコードと項目に対する更新と削除は全て拒否されます。レコードや変数がユーザにより入力されたものでも、また手続き型タスクによるものでも、更新と削除はいっさい拒否されます。このように更新と削除はできませんが、照会モードでは、位置付（検索）は非常に高速です。また、このモードでは、タスクのフォームで指定する条件をユーザが変更したり追加したりでき、このため、データベーステーブルに対して柔軟な検索が可能です。また、検索でデータが損害を受けることもありません。

参照

タスクフローでの処理モード

修正モードから登録モードへの自動切替

修正モードでユーザが編集を行っている時の登録モードへの一時的切替

エンドユーザによる画面での操作


データソース

Magicは、データベースとXMLソースの両方をデータソースとして扱います。[データ]リポジトリには、アプリケーションで使用する全てのデータソースが定義されています。

各データソースは、関連する項目モデルと特性、インデックス、およびデータベースゲートウェイとカラムによって定義されます。

参照

データソース特性

データの変換

データベースのメタデータ

データソースの削除


データリポジトリ

データソース >

[データ]リポジトリには、プロジェクトで使用する全てのデータソースが定義されています。

各データソースは、関連する項目モデルと特性、インデックス、およびデータベースゲートウェイとカラムによって定義されます。

[データ]リポジトリの上部のペインには、以下のカラムが含まれています。

#

名前

データソース名

データベース

フォルダ

公開名

[データ]リポジトリの下部のペインには、ソースがテーブルかXMLソースのどちらかによって異なるタブが表示されます。

注意：

  • データソース(テーブルとXMLソース)を削除しても、DBMSからは自動的に削除されません。 詳細については、「データソースの削除」を参照してください。

  • 作成または編集されたデータソース行を終了する前に、データソース(オプション/チェック)を変換するかどうかを確認するダイアログが表示されます。このチェックを実行することで、デバッグ時のエラー発生頻度が低くなる場合があります。

参照

データソース特性

データの変換

データベースのメタデータ


データリポジトリ #

#

データソース > データリポジトリ

このカラムには、Magic によってデータソースIDとして使用される連番が自動的に入ります。

このカラムは編集できません。


データリポジトリ 名前

名前

データソース > データリポジトリ

データソースの名前を入力します。Magicがエンドユーザにエラーメッセージを表示する場合、この名前が使用されます。

テーブル名の長さは、最大３０桁です。

テーブルを初めて作成する際、[データソース名]カラムにDB名が明示的に定義されていない場合、[名前]カラムの内容が設定されます。


データリポジトリ データソース名

データソース名

データソース > データリポジトリ

このカラムには、データソースがデータベースの場合、テーブル名を入力することができます。データソースがXMLデータファイルの場合は、デフォルトのMLファイル名とパス名を入力します。

XMLファイルを指定した場合、ユーザはこのカラムから[ファイルを開く]ダイアログにズームし、XMLファイルとファイルパス(何も指定しないか、file://を先頭に付加して)やURL(HTTP/HTTPS)形式で指定することができます。

データベースを指定した場合、このカラムから[ファイルを開く]ダイアログにズームしファイルを選択することができます。[データベース]テーブルの[位置]カラムに設定された値が、このカラムに指定された値の接頭語として使用されます。データソース名の最大長は260字です。このカラムの入力は必須です。（空白にはできません。）

[データソース名]カラムには、以下の内容を定義するオプションがあります。

  • テーブルへのフルパス

  • Magicがデフォルトで付加する名前より優先される物理テーブル名

SQL データベースでは、テーブルの実際の名前が基礎となるデータベースに定義されます。この名前はデータベースの仕様に応じて制限されます。例えば、Oracle ではデータベース名は30 文字までに制限されており、また文字で開始しなければなりません。

オブジェクトの完全な名前が「Owner.Tablename」または「Database.Owner.Tablename」の場合、Magic では[データソース特性]の[オーナ名]特性を使用します。そこでオーナーが指定されていない場合、オーナーは[データベース特性]で定義された[ユーザ名]特性になります。

Magic では、選択したデータベースがSQL データベースであると、テーブルの[名前]を[DB テーブル]にコピーします。この時、空白は下線に変換されます。DB テーブルを変更することができますが、空白にすることはできません。例えば、テーブル名「my emp table」は、Magic では「my_emp_table」と表示されます。事前に定義されたMagicの論理名をテーブル名の一部として使用することで、命名規則を適用しやすくなります。

注意：

  • このカラムに表示されるデフォルト名は、[データ]リポジトリの[名前]カラムに入力された名前になります。

  • このカラムには、論理名を使用することができます。


データリポジトリ データベース

データベース

データソース > データリポジトリ

このカラムには、[データベース]テーブルに定義されたデータベースを定義します。[データベース一覧]で選択することができます。

データベースとして、DBMSでアクセスするデータベースと、XMLファイルとしてアクセスするデータソースの2種類が設定できます。この２種類は、一旦データ定義が行なわれると他方の形式に変更できなくなります。

例えば、XMLデータソースに設定して定義取得を行なうと、[データベース]カラムからズームしても[データベース一覧]には、XMLで定義されたデータベース以外は表示されなくなります。


データリポジトリ フォルダ

フォルダ

データソース > データリポジトリ

エントリが所属するフォルダを指定します。リポジトリにフォルダが作成されていない場合、この欄にカーソルは止まりません。フォルダを作成するには、[ナビゲータ]ペインで[データソース]アイコンをハイライト表示し、F4 を押します。フォルダを作成すると、登録されているテーブルをグループ化することができます。

詳細は、「フォルダ」を参照してください。


データリポジトリ 公開名

公開名

データソース > データリポジトリ

データソースの公開名を入力します。このデータソースをコンポーネントとして外部から利用する場合に必要です。公開名はプロジェクトファイル内でユニークでなければなりません。


データソースタイプ

データソース >

Magicは、テーブルとXMLソースの両方を定義することができます。

[データ]リポジトリの下部のペインには、ソースがテーブルかXMLソースのどちらかによって異なるタブが表示されます。


データソース テーブルソース

テーブルソース

データソース > データソースタイプ

データソースが「テーブル」の場合、以下のタブが表示されます。

[カラム]タブ

[インデックス]タブ

[外部キー]タブ


データソース テーブルソース カラム

カラムテーブル

データソース > データソースタイプ > テーブルソース

[カラム]テーブルには、データテーブルを構成するカラムに関連する定義情報が含まれています。

[カラム]タブをクリックすることで、[カラム]テーブルにアクセスできます。

参照

名前

モデル

型

書式

カラム特性


データソース テーブルソース カラム 名前

名前

データソース > データソースタイプ > テーブルソース > カラムテーブル

カラムの名前を入力します。モデルをカラムに関連付ける場合、カラム名を空白のままにすると自動的にモデル名がコピーされます。カラム名の長さは、最大30 桁です


データソース テーブルソース カラム モデル

モデル

データソース > データソースタイプ > テーブルソース > カラムテーブル

[モデル]カラムをダブルクリックすると、項目モデルが表示された[モデル一覧]にアクセスできます。項目モデルには次の特性があります。

  • 全ての項目モデル特性はカラムに継承されます。

  • カラム名が空白の場合は、項目モデル名が設定されます。

参照

モデル


データソース テーブルソース カラム 型

型 (デフォルト:A=文字型)

データソース > データソースタイプ > テーブルソース > カラムテーブル
データビューエディタ > 項目特性

Magic のデータ項目型から１つを選択します。型のコードを入力するかコンボボックスをクリックして、型を指定することができます。

以下のデータ項目型を指定できます。

  • A=文字型

  • U=Unicode型

  • N=数値型

  • L=論理型

  • D=日付型

  • T=時刻型

  • B=BLOB型

  • O=OLE型

  • X=ActiveX型

  • V=ベクトル型


データソース テーブルソース カラム 書式

書式

データソース > データソースタイプ > テーブルソース > カラムテーブル
データビューエディタ > 項目特性

文字型項目では、最低限の書式として長さが必須になっています。また、必要に応じて他の書式設定を行います。

数値型項目では、整数の桁数が最低限の書式であり、必要な場合には小数と小数点以下の桁数を設定します。必要であれば、その他の書式設定を追加できます。

データ型が論理、時刻または日付のカラムの場合、デフォルトの書式を受け入れるか、必要に応じて他の書式設定を追加できます。

BLOB やActiveX、OLE型はバイナリオブジェクトが保存されているものであり、Magic ではデータ解釈は行われません。このため書式を設定できません。


データソース テーブルソース カラム 特性

カラム特性

データソース > データソースタイプ > テーブルソース > カラムテーブル

[カラム特性]で、特定のデータ型の特性値を定義します。

この特性は、以下のセクションで構成されます。

モデル

汎用

詳細

入力

表示

スタイル

デフォルト/NULL

格納形式

SQL

XSD


データソース テーブルソース カラム 特性 モデル

モデル

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性

モデルの継承を設定または解除します。

詳細は、「モデル」を参照してください。


データソース テーブルソース カラム 特性 詳細

詳細

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性

[詳細]セクションには、以下のカラム特性があります。

書式

型

範囲

スタイル

内容

データビューの一部


データソース テーブルソース カラム 特性 詳細 書式

書式

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > 詳細

カラムの書式を指定します。ズームすると選択した[型]に対応した[書式]ダイアログが表示されます。

「書式」を参照してください。


データソース テーブルソース カラム 特性 詳細 型

型

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > 詳細

このカラムのデータ型が表示されます。


データソース テーブルソース カラム 特性 詳細 範囲

範囲

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > 詳細
データビューエディタ > 項目特性

カンマで区切り、カラムに有効な値を入力します。有効な値の連続する範囲を指定するには、最小値と最大値をハイフンでつなげます。

Unicodeで指定することができます。


データソース テーブルソース カラム 特性 詳細 内容

内容

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > 詳細

[エディット]コントロール経由で処理される時、または式（BLOB文字列がANSかUnicodeかを知る必要がある）によって処理される時のBLOB型モデルを指定します。[内容]特性は、BLOB項目モデルの期待値が提供されます。

有効なオプションは、以下のとおりです。

  • A=ANSI

  • U=Unicode

  • B=バイナリ(デフォルト)

[内容]特性を修正すると、[記憶形式]特性が自動的に修正されます。

BLOB項目がバイナリデータとして設定され、文字列として処理されると、そのまま文字列と見なされます（バイナリとして変換されません）。


データソース テーブルソース カラム 特性 入力

入力

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性

[入力]セクションには、以下のカラム特性があります。

選択プログラム

起動モード


データソース テーブルソース カラム 特性 入力 選択プログラム

選択プログラム

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > 入力
データビューエディタ > 項目特性

実行時にエンドユーザが[編集/ズーム]を使用してデータ選択用プログラムを起動することができるかどうかを指定します。プログラム番号を直接入力するか、[プログラム一覧]にズームしてプログラムを選択します。

メインプログラムを設定することはできません。

参照

起動モード


データソース テーブルソース カラム 特性 入力 起動モード

起動モード (デフォルト:B=前置)

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > 入力
データビューエディタ > 項目特性

[選択プログラム]特性が指定された場合に有効になります。

[選択プログラム]特性で定義されたプログラムを呼び出す時期を指定します。有効な値は以下のとおりです。

  • B=前置……呼び出した選択プログラムが終了した時に、カーソルが呼び出した項目に戻るように指定します。

  • A=後置……呼び出した選択プログラムが終了した時に、カーソルが次の項目に移動するように指定します。

  • P=自動……項目にカーソルが移動すると同時にプログラムが自動的に実行されるように指定します。これにより、ユーザは即座に値を選択できます。この場合は、選択プログラムが終了した後、前置モードの場合と同様にカーソルは呼び出した項目に戻ります。


データソース テーブルソース カラム 特性 表示

表示

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性

[表示]セクションには、以下のカラム特性があります。

ヘルプ画面

ツールチップ

自動ヘルプ


データソース テーブルソース カラム 特性 表示 ヘルプ画面

ヘルプ画面

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 >表示
データビューエディタ > 項目特性

ヘルプ画面とカラム/変数を関連付けます。ヘルプ画面は、ユーザが実行時にヘルプを要求した場合に表示されます。

参照

内部ヘルプ


データソース テーブルソース カラム 特性 表示 ツールチップ

ツールチップ

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 >表示
データビューエディタ > 項目特性

ツールチップヘルプとカラム/変数を関連付けます。

参照

ツールチップヘルプ


データソース テーブルソース カラム 特性 表示 自動ヘルプ

自動ヘルプ

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 >表示
データビューエディタ > 項目特性

この特性を使用し、自動ヘルプとカラム／変数を関連付けます。

参照

自動ヘルプ


データソース テーブルソース カラム 特性 デフォルト

デフォルト/NULL

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性

[デフォルト/NULL]セクションには、以下のカラム特性があります。

NULL 値可

NULL 計算値

NULL 表示文字列

NULL デフォルト

デフォルト値

データベースデフォルト値


データソース テーブルソース カラム 特性 デフォルト NULL値可

NULL 値可

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > デフォルト/NULL
データビューエディタ > 項目特性

エンドユーザがNULL値をテーブルカラムに入力できるかどうかを指定します。新規テーブルを作成する場合、この特性によってNULL 制約が生じます。デフォルト値は、MAGIC.INI ファイルの[DBMS]セクションの「NULL」の値が使用されます。

  • Yes……実行時には、エンドユーザはデータベースにNULL 値を渡すことができます。

  • No……Magic ではNULL 値が許可されません。


データソース テーブルソース カラム 特性 デフォルト NULL計算値

NULL計算値

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > デフォルト/NULL
データビューエディタ > 項目特性

[NULL 計算値]特性の入力は、[NULL値可]特性が「Yes」に設定されている場合に限られます。

NULL 計算値は、このカラムにNULL 値が含まれ、その値が計算で使われる場合に使用する値を指定します。

[アプリケーション特性]の[NULL計算]特性が「D=デフォルト」の場合のみ、実行時に有効になります。

Unicode型の場合は入力できません。


データソース テーブルソース カラム 特性 デフォルト NULL表示文字列

NULL表示文字列

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > デフォルト/NULL
データビューエディタ > 項目特性

この特性は、[NULL値可]特性が「Yes」に設定されている場合に限られます。ここには、NULL 値の表示に使用する文字列が指定できます。

Unicodeを入力することができます。


データソース テーブルソース カラム 特性 デフォルト NULLデフォルト

NULLデフォルト

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > デフォルト/NULL
データビューエディタ > 項目特性

NULL値またはデフォルト値のどちらをカラムに割当てるかを指定します。有効な値は以下のとおりです。

  • Yes……NULL がデフォルト値となります。

  • No……デフォルト値の特性が使用されます。


データソース テーブルソース カラム 特性 デフォルト デフォルト値

デフォルト値

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > デフォルト/NULL
データビューエディタ > 項目特性

デフォルト値がNULLカラムに割当てられます。

Unicode型の場合は入力できません。


データソース テーブルソース カラム 特性 デフォルト データベースデフォルト値

データベースデフォルト値

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > デフォルト/NULL
データビューエディタ > 項目特性

これはデータベースのデータベースデフォルト値です。プログラムでレコードを作成する際、ビュー項目としてカラムが定義されていない場合、RDBMSがデフォルト値を割当てます。

新たにテーブルを作成する場合は、そのカラムのデフォルト値として、CREATETABLE 文にこの文字列が追加されます。

例えば、データベースデフォルト「defvalue」をMS-SQL Server テーブルに作成する場合、Magicでは以下のSQL文が生成されます。

CREATE TABLE owner1.table1 （Col1 CHAR（10） NOT NULL DEFAULT 'defvalue'）

Magic では、CREATE TABLE 文にフォーマットを行わず、この文字列がそのまま追加されます。


データソース テーブルソース カラム 特性 格納形式

格納

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性

[格納]セクションには、以下のカラム特性があります。

文字セット

デフォルト記憶形式

記憶型式

修正許可

サイズ

データベース定義

更新形式


データソース テーブルソース カラム 特性 格納形式 文字セット

文字セット

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > 格納形式
データビューエディタ > 項目特性

以下から指定ができます。

  • A=ANSI

  • O=OEM

注意：

XMLデータソースの場合のデフォルトの文字セットは、データソースに依存します。


データソース テーブルソース カラム 特性 格納形式 デフォルト記憶形式

デフォルト記憶形式

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > 格納形式

Magic は、カラムの書式や使用しているDBMSゲートウェイに従って、最適な記憶形式を自動的に割り当てます。

この機能によって、使用するDBMSを変更することが容易になります。

  • Yes……カラムの記憶形式は、DBMS ゲートウェイによって定義されたデフォルト指定に割り当てられます。

  • No……カラムの[記憶形式]特性の指定に依存します。

この特性は、また、SQLコマンドタスクで使用される変数項目に対しても有効です。

デフォルト値は、「No」です。SQL コマンドタスクの変数項目の場合は、デフォルトが「Yes」になります。


データソース テーブルソース カラム 特性 格納形式 記憶形式

記憶型式

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > 格納形式

データをStringやLString、またはZStringやString Memoとして保存できます。

Magic内の全ての属性には、いくつかの保存タイプがあります。指定されていない場合は、SQLゲートウェイで関連するRDBMSデータタイプに最適なデフォルトマッピングが使用されます。

例えば、文字型の場合はZstringとして保存されます。この保存はMagic内部のみ行われます。RDBMSから別のものに切り替えた場合、Magicは同じ記憶形式で保存するように試みます。ただし、整合性の理由から、記憶形式が異なる場合があります。Magicのデフォルトの記憶形式は変更しないでください。

MagicのUnicodeサポートによって、UnicodeやZUnicodeでデータを格納することができます。ZUnicodeは、NULLで終了するUnicode文字列です。

BLOBカラムの場合、[記憶形式]特性に以下のオプションがあります。

  • Binary Large Object

  • Ansi BLOB

  • Unicode BLOB

[内容]特性を修正すると、[記憶形式]特性が自動的に修正されます。

参照

記憶型式一覧

SQLに関する考慮事項


データソース テーブルソース カラム 特性 格納形式 記憶形式 一覧

記憶型式一覧

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > 格納形式 > 記憶型式

有効な記憶型式が表示されます。[記憶型式]欄からズームするとオープンされます。


データソース テーブルソース カラム 特性 格納形式 修正許可

修正許可

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > 格納形式
データビューエディタ > 項目特性

カラムの作成後に修正することができるかどうかを指定します。

オンラインタスクの場合、カーソルを[修正許可]特性が「No」と指定されたカラムに移動し、データを入力しようとしても、新規入力は拒否されます。


データソース テーブルソース カラム 特性 格納形式 サイズ

サイズ

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > 格納形式

データベースのパラメータサイズを指定します。

[記憶型式]、[サイズ]、[データベース定義]特性は項目の内部を表す保存タイプに影響します。Magicは、デフォルトの保存タイプとサイズを割り当てますが、これは項目の型や書式、割当てられたデータベースによって異なります。


データソース テーブルソース カラム 特性 格納形式 データベース定義

データベース定義

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > 格納形式

[記憶型式]、[サイズ]、[データベース定義]特性により、カラムに格納するデータ形式を指定します。Magicでは、型、書式、使用するデータベースによって、デフォルトの保存タイプとサイズを割り当てます。

通常はMagicからこれらの特性に割り当てられたデフォルト値を使用します。Magic以外のアプリケーションで作成したDBテーブルを使用する場合、それらのパラメータを調整する必要がある場合があります。

[データベース定義]ボックスから「N=標準」または「S=文字列」を選択し、データベース特性を定義できます。


データソース テーブルソース カラム 特性 汎用 更新形式

更新形式

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > 格納形式

数値型で通常の記憶形式、またSQLテーブルのカラムが定義されたタスクでは、差分更新を行うことができます。差分更新は、トランザクションのモードが遅延やネスト遅延または、現在の遅延トランザクション内で実行するタスクで処理されます。この設定は、ISAMファイルには適用されません。

差分更新を指定することで、値FLD1+Xを使用してFLD1を更新することができます。（FLD1=FLD1+X）

この特性は、[データ]リポジトリの[カラム特性]に表示されています。

有効なオプションは以下の通りです。

  • A=値更新……固定値による更新

  • D=差分更新……差分による更新

同様な特性は、[データビュー]エディタの[項目特性]にも表示されます。この[更新形式]特性は[データ]リポジトリの特性の設定内容を上書きします。


データソース テーブルソース カラム 特性 SQL

SQL

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性

[SQL]セクションには、以下のカラム特性があります。

Datetimeの一部

データベース情報

DBカラム名

タイプ

ユーザタイプ


データソース テーブルソース カラム 特性 SQL データベース情報

データベース情報

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > SQL

この特性を使用して、MagicがRDBMSに渡すことのできるデータベース固有の情報を指定できます。

このパラメータはオプションです。

参照

SQLに関する考慮事項


データソース テーブルソース カラム 特性 SQL DBカラム名

DBカラム名

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > SQL

RDBMSに実際に定義されるカラムの名前を入力します。

この名前は、使用できない予約語など、RDBMSによって制限される場合があります。

カラムを作成する場合、カラム名がDBカラム名にコピーされますが、その際空白はアンダーバに置き換えられます。DBカラム名は変更できますが、空白にはできません。

また、接頭辞に論理名をカラム名に追加することで、カラムに対して使いやすい名前を付けることができます。


データソース テーブルソース カラム 特性 SQL タイプ

タイプ

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > SQL

RDBMSにおけるSQLデータ型です。定義取得を行うと、自動的に設定されます。

テーブルを作成する場合、Magicがデフォルトで割り当てるため、この設定は省略できます。Magicが設定したデフォルトのデータ型以外にしたい場合は、この設定を変更します。

例えば、日付型のカラムはOracleでは「DATE」という型が設定されますが、この欄に「CHAR（8）」と指定することで、「CHAR」という型にマッピングされます。MagicとRDBMSとの有効なデフォルトマッピングの一覧については「SQLに関する考慮事項」を参照してください。


データソース テーブルソース カラム 特性 SQL ユーザタイプ

ユーザタイプ

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > SQL

データベース内で定義されるユーザ定義データ型（UDT）です。ほとんどのRDBMSでは、ユーザ定義データ型を作成し、システムデータ型を再定義できます。

例えば、UDT「説明」は「VARCHAR（20）」に基づいているとします。UDTが作成されると、CREATE TABLE文とALTER TABLE文に使用され、デフォルトが適用され、それにルールが作成されます。

テーブル定義がロードされると、Magicは各カラムのUDTとその基礎となるシステムデータ型をロードします。Magicにテーブルを作成する場合は、SQLデータ型のみ使用します。UDTを含んだカラムは作成しません。

参照

SQLに関する考慮事項


データソース テーブルソース カラム 特性 Datetimeの一部

Datetimeの一部

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > SQL

現在のデータベースは、通常Datetimeフィールドをサポートしています。

この種類のフィールドには、日付と時間の組み合わせが含まれています。ここには、例えば、「May 3rd, 10:00 PM」という日付と時刻のデータがそのまま入っています。Magicは、SQLデータベースのDatetimeフィールドを日付データと時間データの組み合わせることで対応しています。

[Datetimeの一部]特性は、日付型カラムと時刻型カラムに表示されます。SQLタスクでは、変数として表示されます。この特性は、日付型カラムでのみ有効で、時間型カラムでは表示だけになります。

日付カラムの[Datetimeの一部]特性は、同じデータベーステーブルの時刻カラムを参照しています。これによって、SQLデータベース内で指定された時刻カラムと結合されることを示しています。[Datetimeの一部]特性は、ISAMでは無効です。この特性からズームして結合する時刻カラムを選択することができます。

[Datetimeの一部]特性が定義された日付カラムか時刻カラムが削除された場合は、datetimeの値はキャンセルされ、通常の日付型または時刻型のカラムとして動作します。その際、他の特性値は全て有効で、カラムの値は[Datetimeの一部]特性が設定される前の値が返ります。

[Datetimeの一部]特性が設定された日付または時刻カラムのデータ型を変換すると、以下のような確認用のメッセージダイアログが表示されます。

型を変更するとDatetimeとの接続が無効になります.よろしいですか？

「はい」がクリックされるとdatetimeの値がキャンセルされます。

他の特性

[Datetimeの一部]特性が設定された場合、[カラム特性]の他の特性は、日付カラムのみ表示されます。時間カラムは、日付型カラムの以下の特性値が引き継がれるため表示されなくなります。

  • データベースデフォルト値

  • DBカラム名

  • タイプ

  • ユーザタイプ

  • データベース情報

日付カラムの特性値がモデルから引き継がれており、モデルの特性値が変更された場合、時刻カラムの特性値も変更されます。しかし、時間カラムの特性値がモデルから引き継がれている場合、時間カラムに[Datetimeの一部]特性が設定されている限り、時間モデルから特性が引き継がれません。

参照

Datetimeの実行時の動作

Datetimeフィールドの定義取得

AddDateTime

DifDateTime


データソース テーブルソース カラム 特性 Datetime 実行時の動作

Datetimeの実行時の動作

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > SQL > Datetimeの一部

SQLデータベースのDatetimeフィールドにアクセスする実行時の動作は以下のとおりです。

NULL値

ユーザが、Datetimeに組み合わせたカラムのどちらかにNULL値を入力し、他方にNULL以外の値を入力した場合、レコード更新時に実行エラーが表示され、レコードはデータベースに書き込まれません。

Datetime項目の範囲／位置付け指定

範囲は、カラムとローカル変数の[範囲]特性、または日付部分や時間部分、または両方の部分に対して実行時のエンドユーザによる範囲指定で定義できます。エンドユーザが両方の部分を選択した場合、Magicエンジンは定義内容を統合して範囲制限を実行します。これによって、データベース上の実際のフィールドで範囲制限を行なう場合と同じ処理を実行します。

変数項目では、このような自然な形で範囲処理を行なうことはできません。これは、統合された範囲指定は、日付項目と時刻項目に分離された状態での範囲指定と異なることを意味します。

日付部分だけが選択された場合、Magicは通常の範囲処理を実行します。この場合、時刻の範囲は、"00:00:00"から"23:59:99" として処理されます。

時刻部分だけが選択された場合、Magicはレコードを絞る込むためにデータベース側の機能を使用します。

Datetimeフィールドの範囲／位置付けの一方の値がNULLで、他方がNULLでない場合、Where句は、NULL になります。

Magic SQL

MagicSQLによる範囲指定は、Datetimeカラムの日付部分や時刻部分を個別にアクセスします。MagicSQLでは、Datetimeカラムを1つのカラムとして扱うことができません。日付カラムや時間カラム（Datetimeの一部です。)を参照するように記述すると、Magicは対応レコードの検索に、データベース固有の機能を使用します。

DB SQL

DB SQLによる範囲指定は、データベースに送るSQLコマンドを記述することができます。日付または時刻フィールドへの参照指定をDB SQLで定義した場合、データベースのフィールド名が表示されます。

Datetimeフィールドを使用したソート

ソートは範囲処理に似ています。日付と時刻の両方のフィールドを使用したり、片方を指定してソートすることができます。MagicはデータベースのDatetimeカラムに対してデータベース本来のソート機能を使用するため、日付フィールドとそれに続く時刻フィールドの両方のソート処理が迅速に行なわれます。Datetimeフィールドの日付部分のソートは、このフィールドがソート一覧の最後に表示された場合、データベースでDatetimeカラム上での本来のソート処理が使用されます。

注意：

異なるソート定義を必要としない限り、日付カラムと時刻カラムの両方を指定してソートするほうがパフォーマンスの上でも推奨します。

結合リンク

Datetimeペアの一部を含んでいるジョインキーによる結合リンクを使用する場合、時間と日付部分の両方を位置付け式に指定する必要があります。これらの式の値は、適用されたキー制限に従って自動的に適用されます。

Datetimeフィールドが結合リンクに表示されるがキーとして定義されていない場合、さらに位置付け式が指定されている場合、（メインソースの他のカラムを参照していて、両方のカラムがメインソースのDatetimeペアを参照しているように）位置付け式がリンク条件として設定されている場合、ただ1つの条件がステートメントに表示されます。これ以外の場合、適切な関数がWhere句に追加されます。

Datetimeカラムを含んだテーブルのAPG

Datetimeペアの一方のカラムがAPGの[カラム一覧]で「0」に設定した場合、他方のカラムも「0」になります。Datetimeペアの一方のカラムをAPGの[カラム一覧]で再選択すると、他方のカラムが最後のカラムとして追加されます。


データソース テーブルソース カラム 特性 XSD

XSD

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性

[XSD]セクションは、XMLデータソースの場合のみ表示されます。

複合要素にパークした場合、[特性シート]は空白が表示されます。

このセクション内の特性は、スキーマから取得された情報によるもので表示のみです。以下の特性があります。

タイプ

属性

名前

パス


データソース テーブルソース カラム 特性 XSD タイプ

タイプ

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > XSD

タイプ変換と構文チェック用に使用される、オリジナルなXSDタイプが表示されます。最高260文字まで格納できます。


データソース テーブルソース カラム 特性 XSD 属性

属性

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > XSD

項目が属性か要素かを表示します。この特性は、出力XMLを構築する際に必要です。

  • Yes……項目は属性を表しています。

  • No……項目は要素を表しています。


データソース テーブルソース カラム 特性 XSD 名前

名前

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > XSD

スキーマ内の要素名が表示されます。名前は最高260文字まで含めることができます。


データソース テーブルソース カラム 特性 XSD パス

パス

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > XSD

XMLスキーマツリー内のフィールドの構成を表します。


データソース テーブルソース インデックス

インデックステーブル

データソース > データソースタイプ > テーブルソース

[インデックス]テーブルでは、重複不可または重複可のインデックスを定義することができます。インデックスは、特定のテーブルのカラム（ID、電子メールアドレス、電話番号など）を、インデックスセグメントとして組み合わせることで定義されます。

[インデックス]テーブルにアクセスするには、[データ]リポジトリの下に表示されているウィンドウの[インデックス]タブをクリックしてください。

インデックスの定義は論理的で、Magicでのみ有効です。データベースのインデックスは、Magicで定義したインデックスとは異なる場合があります。定義取得を行うと、データベースの実際のインデックス構造を確認することができます。

Magicにインデックスを定義する上で最善な方法は、データベースのインデックスと一致させ、オプティマイザを使用してソート処理が不要になるようにすることです。Magicとデータベースのインデックスが合致していれば、パフォーマンスも向上します。

Magicでインデックスを定義すると、以下のように動作します。

  • インデックスのデータ型を「実キー」にして新しいテーブルに割当てると、データベース内にMagicインデックスと一致するインデックスが作成されます。

  • 実行時には、Magicが発行するSELECT文にORDER BY句を追加するかどうかが決定されます。インデックス内で設定されたセグメントは、ORDER BY句で指定されるカラムとなります。

インデックステーブルは、以下の内容で構成されます。

  • 名前

  • タイプ

  • プライマリキー

参照

インデックスセグメント

インデックス特性

インデックス一覧


データソース テーブルソース インデックス 名前

名前

データソース > データソースタイプ > テーブルソース > インデックステーブル

インデックスの名前を入力します。


データソース テーブルソース インデックス タイプ

タイプ (デフォルト:U=重複不可)

データソース > データソースタイプ > テーブルソース > インデックステーブル

以下のどちらかを指定します。

  • U=重複不可……ユニークなインデックス値のみ入力できます。SQLゲートウェイの場合、少なくとも１つの重複不可インデックスが必要な場合があります。

  • N=重複可……重複した値をインデックス値として入力できます。

参照

SQLに関する考慮事項


データソース テーブルソース インデックス セグメント

インデックスセグメント

データソース > データソースタイプ > テーブルソース > インデックステーブル

テーブルにおけるセグメントの定義順序によって、検索時の階層レベルが決定されます。セグメントの定義順序は、このインデックスを使用したソート順にも影響します。[インデックスセグメント]テーブルには、32,767個のエントリが定義できます。

[インデックスセグメント]テーブルには、以下の各カラムがあります。

カラム

名前

サイズ

順


データソース テーブルソース インデックス セグメント カラム

カラム

データソース > データソースタイプ > テーブルソース > インデックステーブル > インデックスセグメント

セグメントとして使用できるテーブルカラムの番号です。番号を入力するか、右側に表示されている[カラム一覧]にズームし、任意のカラムを選択できます。


データソース テーブルソース インデックス セグメント 名前

名前

データソース > データソースタイプ > テーブルソース > インデックステーブル > インデックスセグメント

セグメントとして選択したカラムの名前を表示されます。カーソルはこのカラムをスキップします。


データソース テーブルソース インデックス セグメント サイズ

サイズ

データソース > データソースタイプ > テーブルソース > インデックステーブル > インデックスセグメント

データが文字型の場合のみ、ここにカラムのサイズを入力できます。通常、インデックスセグメントのカラムのサイズを小さくする場合に使用します。

カラムのサイズを小さくすると、検索の際の処理速度が向上します。サイズを小さくする場合は、インデックスを重複可インデックスに設定します。これで、カラムのサイズが小さくなり、データが切り取られた時でも、行の喪失を最小限に抑えることができます。

重複可インデックスにすると処理速度が落ちるため、カラムのサイズを小さくしても、処理効率が必ずしも向上するとは限りません。

注意：

  • SQLデータベースを使用する場合には、この特性を変更しないでください。

  • Unicode型は、書式に指定した長さの2倍の値が表示されます。


データソース テーブルソース インデックス セグメント 順

順

データソース > データソースタイプ > テーブルソース > インデックステーブル > インデックスセグメント

インデックスセグメントのソート方向を定義します。以下の２つから選択します。

  • A=昇順……セグメントのソート方向は「昇順」です。

  • D=降順……セグメントのソート方向は「降順」です。

セグメント順序は、[動作環境]ダイアログで[照合順序ファイル]の指定があれば、これを利用することができます。これはセグメントが文字型カラムで定義されており、その[データベース定義]特性が「標準」に設定されている場合に利用できます。

Magicは、一度に１つの照合順序指定のみサポートしています。照合順序の実行時にアクセスするテーブルは全て、同一のソート順で作成されていなければなりません。そうでない場合は、Magic側でこれらのテーブルの正しい照合順序を認識できず、範囲/位置付の照会の結果が間違ったものになる場合があります。


データソース テーブルソース インデックス 特性

インデックス特性

データソース > データソースタイプ > テーブルソース > インデックステーブル

[インデックス特性]には、インデックスの動作特性が定義されます。[インデックス特性]には以下のタブがあります。

[高度な設定]タブ | [SQL]タブ
方向 範囲処理モード | データベース情報 DBインデックス名 インデックスタイプ ヒント クラスタ化


データソース テーブルソース インデックス 特性 方向

方向

データソース > データソースタイプ > テーブルソース > インデックステーブル > インデックス特性

以下のどちらかを指定します。

  • T=双方向……このデータソースを順方向および逆方向にソートできるようになります。通常は、双方向へのアクセスがサポートされないデータベースをオンラインタスクで使用する場合などに指定します。インデックスをバッチタスクで使用したり、データベースが双方向のインデックスをサポートしていない場合は、通常、片方向として定義します。データベースゲートウェイによっては、この特性を無視し、双方向のインデックスをデフォルトとしているものもあります。しかし、SQL系のデータベースでは、この情報を使用することでインデックスを双方向とするか、片方向とするかを指定することができます。

  • O=片方向……順方向のアクセスのみを実行します。

注意：

データベースに応じてこの設定を切り替えると、処理速度が向上します。

参照

SQLに関する考慮事項


データソース テーブルソース インデックス 特性 範囲処理モード

範囲処理モード (デフォルト：Q=高速)

データソース > データソースタイプ > テーブルソース > インデックステーブル > インデックス特性

  • Q=高速……定義したインデックスは、インデックスを使用した高速範囲処理をサポートしています。

  • F=全走査……範囲処理は順次操作方式で実行されます。この設定にすると、処理速度が大幅に低下します。

参照

SQLに関する考慮事項


データソース テーブルソース インデックス 特性 データベース情報

データベース情報

データソース > データソースタイプ > テーブルソース > インデックステーブル > インデックス特性

SQLデータベースの情報をここに設定することで、データベース特有の情報をRDBMSに渡すことができます。この特性の使用はオプションです。

使用するフラグのほとんどは、SQL_flagname=Valueという構造を持ちます。

参照

SQLに関する考慮事項

Oracleのデータベース情報

MS-SQL Serverのデータベース情報

DB2UDBのデータベース情報


データソース テーブルソース インデックス 特性 DBインデックス名

DBインデックス名

データソース > データソースタイプ > テーブルソース > インデックステーブル > インデックス特性

RDBMSに設定されるインデックスの名前です。通常、この名前はデータベースの命名規則に従う必要があります。

テーブルに新規のインデックスを追加すると、そのインデックスの名前が、この[DBインデックス名]特性にコピーされます。また、文字間の空白は自動的にアンダーバに置き換えられます。コピーされたインデックス名は変更できますが、空白にすることはできません。

例えば、Magicのインデックス名「emp ind1」は、DBインデックス名「emp_ind1」になります


データソース テーブルソース インデックス 特性 インデックスタイプ

インデックスタイプ

データソース > データソースタイプ > テーブルソース > インデックステーブル > インデックス特性

対象となるインデックスをデータベースに入れるか、Magicだけで定義するかを指定します。

使用できる値は、「R=実キー」または「V=仮想キー」です。テーブルの新規作成時にそのインデックスをMagicで作成する場合は、インデックスタイプを「R=実キー」に指定しなければなりません。

[インデックスタイプ]特性は、実行時には既存のテーブルに影響しません。例えば、エンドユーザがデータビューにアクセスする場合には、実インデックスを追加する必要があります。

特にRDBMSのソート機能が利用できる場合は、プログラム内でソート処理の代わりに仮想インデックスを使用することはなるべく避けてください。この機能を利用することでレコードを任意の順序で取り出せるため、Magicではソート機能が不要になります。


データソース テーブルソース インデックス 特性 ヒント

ヒント

データソース > データソースタイプ > テーブルソース > インデックステーブル > インデックス特性

一部のRDBMSでは、クエリ処理の際にオプティマイザに対するヒントが指定できます。プログラマはSELECT文に連結する文字列をここに指定することができます。

参照

SQLに関する考慮事項


データソース テーブルソース インデックス 特性 クラスタ化

クラスタ化

データソース > データソースタイプ > テーブルソース > インデックステーブル > インデックス特性

MS-SQL Serverの場合、この特性を使用して、テーブルを作成する際に、そのテーブルのインデックスをクラスタ化インデックスとして作成するかどうかを指定できます。

レコードの挿入が多いテーブルの場合、クラスタ化インデックスによって処理速度を低下させることがあります。

クラスタ化インデックスのカラムでは、物理データは、そのインデックスの順にしたがって格納されます。このインデックスでは、順番に並んでいるデータのうち、複数のデータをまとめて取り出す時には処理効率は上がりますが、単一のデータを取り出す時には効率は下がります。


データソース テーブルソース インデックス プライマリキー

プライマリキー

データソース > データソースタイプ > テーブルソース > インデックステーブル

このチェックボックスは、インデックスをプライマリキーにするかどうかを指定するものです。

「U=重複不可」に設定されているインデックスのみプライマリキーに指定できます。

参照

SQLに関する考慮事項


GUIコントロール 特性 一覧 インデックス一覧

インデックス一覧

データソース > データソースタイプ > テーブルソース > インデックステーブル

[インデックス一覧]は、[ソーステーブル]特性の指定内容に基づいたインデックスを表示します。チョイスコントロールの表示順を決める[インデックス]特性を設定する場合に使用されます。


データソース テーブルソース 外部キー

外部キーテーブル

データソース > データソースタイプ > テーブルソース

外部キーは、プライマリテーブルと別テーブルのレコード間の参照整合性を維持するために使用されるSQLデータベースのポインタです。

外部キーを持つ各レコードはプライマリキーによってレコードを示しており、[外部キー]テーブルはこれらのレコードの間の関係を定義します。[外部キー]テーブルは、[外部キー定義]テーブルと[外部キーセグメント]テーブルの２つのテーブルで構成されています。

プライマリキーと外部キーの関係を定義することで参照整合性が維持されます。RDBMSでは、テーブルの宣言または整合性の制限により参照制約を設定できます。

注意：

  • 外部キーが定義できるのは、プライマリキーが存在している場合のみです。プライマリキーは、[インデックス]テーブルで定義します。

  • XMLソースは、他のテーブルの外部キーの参照テーブルとして選択できます。

参照

外部キーの選択テーブル

全ての外部キーを選択


データソース テーブルソース 外部キー 定義テーブル

外部キー定義テーブル

データソース > データソースタイプ > テーブルソース > 外部キーテーブル

[外部キー定義]テーブルには、以下のカラムがあります。

外部キー番号（#） | 自動的に生成された連番が表示されます。この番号は、識別子として使用され、ユーザが変更することはできません。
名前 | Magicでの外部キーの名前です。この名前を使用して、RDBMSにおいて外部キーを定義します。外部キーは１つまたは複数のカラムの集合で、他のテーブルのプライマリキーを使用して１つのテーブル内の行を他のテーブルのユニークな行に関連付けます。
参照テーブル | 参照するテーブル番号を指定します。直接入力できるほか、ズームして、[テーブル一覧]から選択することもできます。
プライマリキー | 参照されるテーブル用のプライマリキーの名前です。 プライマリキーは、１つまたは複数のカラムで構成されたユニークなキーで、アクセスする場合の主要なキーとして使用されます。 テーブルは、１つ以上のユニークなキーがあっても、プライマリキーは１つしかありません。
DBに作成 | 外部キーの設定をRDBMSにも適用するか否かを指定します。 この欄がチェックされていない場合、外部キーの設定はMagicの内部にのみ適用されます。設定を行うテーブルと参照するテーブルが同じデータベースの場合、この欄はデフォルトでチェックされます。 データベースが異なる場合、この欄は無効となり、外部キーの設定はRDBMSに適用されません。

この制約は、テーブル内のカラムの値を無条件に参照するテーブルのカラムと同じになるように制限します。現在のANSI規約では、この制約をテーブルの作成時または修正時に行う必要があります。


データソース テーブルソース 外部キー セグメントテーブル

外部キーセグメントテーブル

データソース > データソースタイプ > テーブルソース > 外部キーテーブル

[外部キー]セグメントテーブルには、以下のカラムがあります。

カラム番号（#） | 自動的に生成された連番が表示されます。この番号は、識別子として使用され、ユーザが変更することはできません。
カラム | 参照テーブルのインデックスに対応するカラムを指定します。この欄からズームして、[テーブル一覧]から選択します。 現在のテーブルの中の各セグメントは、参照テーブル中に対応するセグメントを持っている必要があります。
参照テーブルのカラム番号（#） | 参照テーブルのセグメントの連番が表示されます。
参照テーブルのカラム | 参照テーブルのインデックスセグメントのカラム名が表示されます。参照キーを設定すると、自動的に設定されます。他のインデックスと交換すると、新しいインデックスセグメントに上書きされます。

注意：

  • 既存テーブルに外部キーを追加して自動再作成を行う際に、外部キーを構成しているカラムのデフォルト値や既存の値が、対応している参照キーのデータに存在しない場合、DBMSによる整合性チェックにより、レコードが作成されません。

  • 外部キーを削除しても、参照されていたテーブル定義の変更ができないことがあります。これは、外部キーがあるテーブルの定義変更を行った際に作成されたバックアップのテーブルが存在している可能性があります。


データソースタイプ テーブルソース 外部キーテーブル 外部キー選択テーブル

外部キー選択テーブル

データソース > データソースタイプ > テーブルソース > 外部キーテーブル

このテーブルから、作成されたプログラムで使用する外部キーを定義し、すべての外部キーを選択するかどうかを決めることができます。

選択された各外部キーに対して、作成されたプログラムにリンクコマンドが追加されます。メインソースや参照テーブルのどちらかがデフォルトデータベースに割り当てられている場合、リンク照会コマンドが定義されます。メインソースおよび参照テーブルの両方がRDBMSデータベースに割り当てられている場合、リンク結合コマンドが定義されます。


Select All Foreign Keys

全ての外部キーを選択

データソース > データソースタイプ > テーブルソース > 外部キーテーブル

すべての外部キーをプログラムに含める場合は、このチェックボックスをチェックします。


XMLソース

データソース > データソースタイプ

データソースがXMLソースの場合、以下のタブが表示されます。

[ビュー]タブ

[インデックス]タブ


XMLソース ビュー

[ビュー]タブ

データソース > データソースタイプ > XMLソース

[ビュー]タブをクリックすると、XML構造の詳細が画面の下に表示されます。

ここには、（XSDの階層に基づいた）複合／単一要素の全てを含んだパスと、単一要素の定義内容が含まれた要素テーブルが含まれています。

ビュー内の異なるタイプの要素を簡単に区別するために、いくつかのアイコンが使用されています。

ツリーノードは、最高256文字まで含めることができます。

[ビュー]タブには、以下のアイコンが表示されます。

単一要素

複合要素

単一要素の繰り返し

複合要素の繰り返し

ビュー内の単一要素

ビュー内の複合要素

ビュー内の単一要素の繰り返し

ビュー内の複合要素の繰り返し

[ビュー]タブで右クリックするとコンテキストメニューが表示されます。ここには、以下のようなオプションメニューが表示されています。

  • 特性 …… クリックすると[カラム特性]が表示されます。

  • ビューから削除

  • 簡易非表示 …… クリックすると全ての単一要素が非表示になります。デフォルトでは、表示されません。

  • 簡易表示 …… クリックすると全ての単一要素が表示されます。

  • 全て展開

  • 全て縮小


XMLソース ビュー 単一要素テーブル

単一要素テーブル

データソース > データソースタイプ > XMLソース > ビュー

[単一要素]テーブルには、常に以下の２つのエントリが含まれます。

  • ノードID

  • 親ID

テーブルは、「前順走査」で表示されます。（すなわち、各複合要素を構成する単一要素は、下位の要素の前に一覧表示されます。）

[単一要素]テーブルには、以下のカラムがあります。

  • # …… 単一要素IDとして自動的に作成されます。

  • 名前 …… 単一要素の名前が表示されます。最高30までの文字が含まれます。開発者はこの名前を変更することができます。

  • モデル …… 要素の書式を定義するための項目モデルを指定できます。ここからズームして[モデル一覧]を表示することで選択できます。

  • 型 …… Magicのデータ型を指定します。Magicは、XSDタイプをMagicのデータ型に変換します。

  • 書式 …… Magicのデータ書式を指定します。最高30までの文字を入力できます。

注意：

複合／単一要素の全てが[データ]テーブルに表示されますが、これらの要素を追加したり削除することはできません。


XMLソース ビュー 単一要素テーブル ノードID

ノードID

データソース > データソースタイプ > XMLソース > ビュー > 単一要素テーブル

ノードIDには、レコードの連番が含まれます。

XMLが読み込まれたり、タスク実行時にレコードが挿入された場合、ノードIDが内部で割り当てられます。


XMLソース ビュー 単一要素テーブル 親ID

親ID

データソース > データソースタイプ > XMLソース > ビュー > 単一要素テーブル

親IDには、現在のレコードの親のノードIDが含まれます。

(親レコードを選ぶために、)登録モードでこの項目を更新することができます。


XMLソース インデックス

[インデックス]タブ

データソース > データソースタイプ > XMLソース

[インデックス]タブをクリックすると、フラットビューインデックスが表示されます。

「ノード依存」インデックスが自動的作成されます。

  • このインデックスは削除／修正／移動ができません。

  • このインデックスはユニークです。


データソース特性

データソース >

[データソース特性]ダイアログには、データについての追加情報が含まれています。

[データソース特性]には、以下の３つのタブ（[XML]タブは、XMLデータでのみ表示されます）で構成されています。

[高度な設定]タブ

[SQL]タブ

[XML]タブ


データソース 特性 高度な設定

[高度な設定]タブ

データソース > データソース特性

[高度な設定]タブには、以下の特性があります。

アクセスキー

テーブルの暗号化

キャッシュ範囲

常駐

更新レコードの識別


データソース 特性 高度な設定 アクセスキー

アクセスキー

データソース > データソース特性 > 高度な設定

[アクセスキー]特性には、DBMSのテーブルセキュリティ機構で使用されるアクセスキーを指定します。この特性値は、テーブルがオープンされる度にデータベースに送られます。外部プログラムや他のMagicアプリケーションからテーブルにアクセスしようとする場合は、同じアクセスキーをDBMSに渡す必要があります。指定されない場合、データへのアクセスは拒否されます。

この機能は、アクセスするDBMSのサポート状況に依存します。

注意：

  • アクセスキーでは、シークレット名を使用するようにしてください。

  • シークレット名を使用することで、アクセスキーの内容を参照できる人をシステム管理者に限定することができます。


データソース 特性 高度な設定 テーブル暗号化

テーブルの暗号化

データソース > データソース特性 > 高度な設定

[テーブル暗号化]特性は、[アクセスキー]特性が定義されていない場合は無効化されています。[アクセスキー]特性が定義されている場合、以下のように動作します。

  • Yes……アクセスキーを暗号化シードとして使用して、そのテーブルを暗号化することができます。

  • No……テーブルは暗号化されません。

注意：

[アクセスキー]または[テーブル暗号化]の値を変更すると、変更を確認するメッセージが表示されます。


データソース 特性 高度な設定 キャッシュ範囲

キャッシュ範囲 （デフォルト：D=位置とデータ）

データソース > データソース特性 > 高度な設定

ここでは、テーブルで使用するキャッシュ範囲を指定します。

この特性の有効な値は、以下のとおりです。

  • P=位置 ……キャッシュはフェッチしたレコードの位置に関する情報を保持します。この設定は、テーブルをメインソースとして使用する場合にのみ実行されます。後方スクロールを行うと、レコードの物理的な位置が読み込まれ、データが再びフェッチされます。

  • D=位置とデータ…… 位置のほかに、レコードの実際のデータがキャッシュされます。事前にフェッチされているデータを読み込む場合には、キャッシュにすでに保存されている値が表示されます。

  • N=なし……キャッシュは行われません。

参照

キャッシュ範囲（タスク特性）


データソース 特性 高度な設定 常駐

常駐 （デフォルト：N=なし）

データソース > データソース特性 > 高度な設定

常駐パラメータを使用すると、テーブルを常駐テーブルとして定義し、テーブルをロードする時期を指定することができます。

この特性の有効な値は、以下のとおりです。

  • N=なし……テーブルは常駐しません。

  • I=即時……テーブルは常駐テーブルであり、アプリケーションが起動すると同時にテーブルがロードされます。

  • D=利用時……テーブルは常駐テーブルですが、アプリケーション上でテーブルに対してアクセスが実行された時点で、テーブルがロードされます。

  • B=ブラウザ上で常駐……テーブルは常駐テーブルですが、ブラウザから直接ロードされます。この設定によりリンクテーブル再リンクがローカルPCで実行されます。

Magicの常駐テーブル機能はMagicキャッシュと同じ前提に基づいています。つまり、アプリケーション内の特定のデータが何度も使用されます。常駐テーブル機能は、Magicプログラムのディスク入出力を削減します。クライアント/サーバ環境の場合はネットワークのトラフィックを軽減し、システムのパフォーマンスを向上させる効果が期待されます。

Magicでは、[データソース特性]ダイアログの[常駐]特性の設定に基づいて、常駐テーブルの内容をメモリに読み込みます。

注意：

常駐テーブルは読み取り専用であり、メモリに保存されている間は修正できません。


データソース 特性 高度な設定 更新レコードの識別

更新レコードの識別

データソース > データソース特性 > 高度な設定

データベースを更新する前に、別のユーザが修正した行を識別できるようにするため、SQLテーブルに対するWhere句の作成方法を指定できます。

この特性の有効な値は、以下のとおりです。

  • P=位置

  • S=位置と選択項目

  • U=位置と更新項目

遅延トランザクションを使用しているタスクにのみ適用されます。

参照

更新レコードの識別（マルチユーザ環境）


データソース 特性 SQL

SQLタブ

データソース > データソース特性

[SQL]タブには、以下の特性があります。

データベース情報

オーナ名

位置

インデックス

デフォルト位置

テーブルの存在チェック

テーブルのタイプ

ヒント

カーソル

配列サイズ


データソース 特性 SQL データベース情報

データベース情報

データソース > データソース特性 > SQL

このパラメータを使用して、MagicがRDBMSに渡すことのできるデータベース固有の情報を指定します。このパラメータはオプションです。

参照

SQLに関する考慮事項

Oracleのデータベース情報

MS-SQL Serverのデータベース情報

DB2UDBのデータベース情報


データソース 特性 SQL オーナ名

オーナ名

データソース > データソース特性 > SQL

テーブルまたはビューの所有者を指定します。論理名を使用することができます。


データソース 特性 SQL 位置

位置

データソース > データソース特性 > SQL

Magicは、DBMSの種類によってデフォルトで使用できる位置インデックスが決まっています。Oracleの場合、ROWIDカラムが使用されます。これ以外のRDBMSでは、最小の重複不可インデックスが使用されます。そのほか、重複不可インデックス以外のインデックスを指定することもできます。

この特性の有効な値は、以下のとおりです。

  • D=デフォルト……Magic 独自のデフォルト値をテーブルの位置インデックスとして使用します。

  • R=ROWID……Oracle のテーブルには、ROWID カラムを使用します。

  • U=重複不可インデックス……他のRDBMSには、最も短い重複不可インデックスを使用します。このインデックスは、他のインデックスを位置キーとして使用することで上書きできます。

注意：

「重複不可インデックス」を指定した場合、性能を改善するためにデータベースの実際のインデックスを使用してください。

参照

インデックス


データソース 特性 SQL インデックス

インデックス

データソース > データソース特性 > SQL

[位置]特性で 「U=重複不可インデックス」を指定した場合、ここで「重複不可インデックス」を位置として指定します。


データソース 特性 SQL デフォルト位置

デフォルト位置

データソース > データソース特性 > SQL

[位置]パラメータで「D=デフォルト」を指定した場合、「デフォルト位置インデックス」として使用するインデックスを指定します。この特性は読み取り専用です。

Magicは最小のセグメント（最も短いということではありません）を使用して自動的にユニークな識別子を選択します。


データソース 特性 SQL テーブルの存在チェック

テーブルの存在チェック （デフォルト：D=データベースに依存）

データソース > データソース特性 > SQL

この設定により、実行時にアクセスするSQLテーブルの存在をチェックし、存在しない場合にSQLテーブルを作成するかを指定します。

この特性の有効な値は、以下のとおりです。

  • Yes……データベースにテーブルが作成されます。また、アクセスするテーブル全ての存在がチェックされます。このチェックにより処理速度が低下する可能性があることに注意してください。

  • No……アクセス前にテーブルの存在がチェックされません。テーブルが存在しない場合、RDBMSからエラーが出力されます。実行モードでは、処理速度を高めるために「No」に設定してください。

  • D=データベースに依存……使用するデータベースの[データベース特性]に依存します。[データベース特性]の[テーブルの存在チェック]特性が有効になります。


データソース 特性 SQL テーブルのタイプ

テーブルのタイプ

データソース > データソース特性 > SQL

テーブルタイプは「T=テーブル」または「V=ビュー」のいずれかになります。

  • T=テーブル……ユーザがDBテーブルを作成できるようになります。

  • V=ビュー……ビュー（仮想テーブル）を作成できるようになります。ビューはMagicで作成、削除、または変更できないため、DbDel とDbCopy関数が無効になります。ビューを作成する場合、位置キーとして重複不可インデックスを定義する必要があります。


データソース 特性 SQL ヒント

ヒント

データソース > データソース特性 > SQL

Oracle、MS-SQL ServerなどのRDBMSでは、照会処理にオプティマイザを指定することができます。ここには、SELECT文に連結する文字列が指定できます。

  • Yes……[ヒント特性]が有効になります。

  • No……[ヒント特性]が無効になります。

Magicは、入力された文字列をチェックしません。開発者は、構文が正しいかどうかをあらかじめ確認する必要があります。ヒントは特殊な場合にのみ使用することをお勧めします。

[データベース]特性の[ヒント]特性が「Yes」の場合この内容が継承されます。

参照

SQLに関する考慮事項


データソース 特性 SQL カーソル

カーソル

データソース > データソース特性 > SQL

MS-SQL Server でのみ有効です。

MS-SQL Serverゲートウェイの場合、内部DBコマンドとカーソルのどちらでも指定できます。DBコマンドを使用する場合は、各結果セットに対する個別の接続が必要になります。結果セットが大きいほど、処理速度は向上します。

この特性の有効な値は、以下のとおりです。

  • Yes …… テーブル上のカーソルが使用できます。

  • No …… テーブル上のカーソルが使用できません。代わりにDBコマンドを使用します。

  • D=デフォルト …… Magicは、以下のことを考慮してカーソルかDBコマンドを使用します。

  • MS-SQL Serverテーブルがメインソースとして定義されている場合は、Magicはカーソルを使用します。

  • MS-SQL Serverテーブルがリンクテーブルとして使用されている場合は、MagicはDBコマンドを使用します。


データソース 特性 SQL 配列サイズ

配列のサイズ

データソース > データソース特性 > SQL

いくつかのMagicのSQLデータベースゲートウェイは、配列処理をサポートしています。データベースからレコードをフェッチする場合、ゲートウェイは１度に１レコードずつフェッチするのではなく、レコードをまとめてフェッチすることによってネットワークのトラフィックを減らします。

デフォルトでは、配列のサイズは「0」ですが、Magic は独自のデフォルトサイズを使用しています。

このサイズは変更ができます。大規模なテーブルをスキャンする場合、配列のサイズを増やすと処理速度が向上します。ただし、Magic のデフォルト値を使用することをお勧めします。テーブル内の配列のサイズを変更すると、[データベース特性]の設定が上書きされます。


データソース 特性 XML

[XML]タブ

データソース > データソース特性

データソースがXMLの場合のみ[XML]タブが表示されます。

[XML]タブには、以下の特性があります。

XSDスキーマファイル

ルート要素名

ビューのメイン要素

親の位置付インデックス


データソース 特性 XML XSDスキーマファイル

XSDスキーマファイル

データソース > データソース特性 > XML

XSDファイルの名前がパス付きで表示されます。最高260までの文字を含むことができます。

ここは、表示のみで入力はできませんが、表示されたファイル名はコピーして他の場所に貼り付けることができます。

注意：

同じ構成のスキーマでファイル名や位置が異なって設定されているデータソースを1つのプログラム内に定義させることはできません。 同じ構成のスキーマは同じ名前、同じパス上で定義取得するようにしてください。


データソース 特性 XML ルート要素名

ルート要素名

データソース > データソース特性 > XML

選択されたルート要素の名前が表示されます。Magicのデータソース定義は、1つのルート要素をサポートします。定義取得の際、要素が複数のルートを持っている場合、使用するルート要素の選択ダイアログが表示されます。

ここには、最高260までの文字を含めることができます。ここは、表示のみで入力はできませんが、表示されたファイル名はコピーして他の場所に貼り付けることができます。

ルート要素名には、ネームスペースが付きません(すなわちローカル名)です。


データソース 特性 XML ビューのメイン要素

ビューのメイン要素

データソース > データソース特性 > XML

ここには、ビュー内に含まれる繰り返し要素の名前が表示されます。

参照

繰り返し要素


データソース 特性 XML 親の位置付インデックス

親の位置付インデックス

データソース > データソース特性 > XML

この特性によって、XMLビューのインデックスの1つを選択することができます。このインデックスは、実行時に親のレコードを位置付けるために使用されます。デフォルトでは、親IDが使用されます。

設定されたインデックスが削除された場合、この特性の値はリセット（0）されます。


データソース一覧

データソース >

式エディタ > 選択一覧

[式]エディタ内でCtrl+6を押下すると、[データソース一覧]が表示されます。

[データソース一覧]を使用することで、使用したいデータソースを選択することができます。ここには、[データ]リポジトリに登録されているデータが表示されます。


データソース 変換

データの変換

データソース >

[データ]リポジトリを終了したり、別のデータの行に移動した場合、データのカラムやインデックス、[データソース特性]の定義内容を変更していると、自動的に変換処理が起動されます。

以下の２つのケースでＭａｇｉｃはデータソースの変換処理を行います。

  • [カラム特性]を直接変更したり、カラムやインデックス、外部キーを追加したり変更した場合。この場合、Magicは自動的に変換用のダイアログボックスを表示します。

  • データソースのカラムが使用している項目モデルの特性を変更した場合。この場合、変換用のダイアログボックスは自動的に表示されません。開発者がデータソースを指定し[オプション]メニューの[データソースの変換]を選択することで変換処理を行うことができます。

注意：

インデックスを「重複可」から「重複不可」に変更した場合、重複したインデックス条件と一致する行は変換処理によって削除されます。

Magicは、テーブル行の処理を終了したり[データ]リポジトリを終了するまで、修正の前後のテーブル構成を保持します。変換処理を中止すると、DBMSテーブルの物理的構成と論理的構成に不整合が生じることがあります。この場合、Magicは自動調整することができず、次にテーブルにアクセスした場合エラーが発生する場合があります。

変換処理は、以下の手順で実行されます。

  1. 変換処理の[確認]ダイアログが開きます。[はい]を選択すると、テーブルが自動的に変換されます。処理を中止した場合には変換は行われず、修正を手作業で戻す必要があります。

  2. 変換処理が確定されると、使用するデータベースに応じてバックアップ処理の[確認]ダイアログが開きます。元のDBMSテーブルのコピーを修正前のままで保持したい場合は、[はい]を選択します。この処理では、BCK ファイル(例えばDMBCK001.DAT）がカレントディレクトリに作成されます。ただし、カレントディレクトリには十分なディスクスペースが必要です。

  3. 変換処理が確定されると、[データソース変換]ダイアログが表示されます。このダイアログでは、DBMSテーブルを以前に定義したインデックスに合わせて再配置するように指定できます。インデックス「0」の場合、行が物理順序に配列されます。テーブルをあるインデックスに合わせて配列したい場合、インデックステーブルの番号を入力するか、[インデックス一覧]にズームしてインデックスを選択します。

注意：

[インデックス一覧]には、変更前のインデックスのみ表示され、新たに定義されたインデックスは利用できません。テーブルを頻繁に使用するインデックスに合わせて配列することで、テーブルの検索や入出力処理でのパフォーマンスの向上が期待できます。

  4. [データソース変換]ダイアログで「OK」を選択すると、変換処理が実行されます。変換ウィンドウが現れ、変換された行数が表示されます。ウィンドウが閉じると、テーブルの変換が完了したことになります。

  5. 「キャンセル」を選択するとダイアログボックスは閉じます。Ｍａｇｉｃはモデルが変更されていることを記憶しており、再度[オプション／データソースの変換]が選択されたとき、同じダイアログが表示されます。

注意：

  • フォーム内のコントロールの書式を必ず修正し、カラムの変更内容との整合をとるようにしてください。Magicは、[データ]リポジトリを変更した場合にフォームに表示されるコントロールの書式は変更しません。クロスリファレンスユーティリティ（Ctrl+F）を使用し、変更したいコントロールを検索することができます。

  • 可能であれば、Ｍａｇｉｃはデータソース変換に基本的なデータベースユーティリティを使用します。例えば、ＳＱＬ系のデータベースを使用している場合、ＳＱＬ　ＡＬＴＥＲを使用します（SQLに関する考慮事項を参照してください）。

参照

データソース特性


データベースのメタデータ

データソース >

データベースのメタデータは、[データ]リポジトリで定義／管理されます。

使用するデータベースの[開発モードでのテーブル変換]特性が有効になっている場合、[データ]リポジトリの全ての修正は、データベースと同期を取って反映されます。

Magicは、データベースの構造を最適化することはありません。また、データベース特性を調整することもありません。これらの処理は、データベース管理者が外部ツールを使用して行う必要があります。Magicが作成した新規テーブルは、一般的なフォームで作成されています。このため、運用環境に最適になるようにカスタマイズする必要があります。

[データ]リポジトリに定義されたているテーブルは、Magicプログラムによって認識できる論理定義です。データベースでは、テーブルはテーブルまたはビューとして表示することができます。CREATE TABLEステートメントには、Magicが管理できるデータソース特性以外の設定が含まれています。このステートメントを使用して、Magicで定義されているテーブルを定義してみることも最適化には有効です。


データソースの削除

データソース >

データソース(テーブルとXMLソース)を削除しようとすると、DBMSから自動的に削除されません。この場合は、確認のためのメッセージボックスが表示されます。

メッセージボックスは、[開発モードでのテーブル変換]特性の設定内容によって異なります。

  1. [開発モードでのテーブル変換]特性が「Yes」と設定されている場合、データソースを削除しようとすると、物理データ（ファイル）も削除するかどうかを確認するメッセージボックスが表示されます。この場合の操作によって、以下のように実行されます。

  • いいえ …… [データ]リポジトリ内でのみ削除が実行されます。

  • はい …… [データ]リポジトリからエントリが削除されるとともに、物理データも削除されます。MagicがDBMSからデータソースを削除できない場合、エラーメッセージが表示され、手動で削除する必要になります。

  • キャンセル …… 削除処理が中断され、データソースはどちらも削除されません。

例外

メモリテーブルとXMLデータソースは、[データ]リポジトリからの削除のみになります。従って、メモリテーブルやXMLデータソースを削除する場合、確認ダイアログボックスは表示されません。

  2. [開発モードでのテーブル変換]特性が「No」と設定されている場合、データソースを削除しようとすると、データソースの削除確認のメッセージボックスが表示されます。この場合の操作によって、以下のように実行されます。

  • OK …… データソースが[データ]リポジトリから削除されます。

  • キャンセル …… データソースは[データ]リポジトリから削除されません。


プログラム

ここでは、プログラム作成に関する情報が含まれています。

プログラムは、以下の手順で作成します。

  • [プログラム]リポジトリに必要な設定を行ないます。（メインプログラムを含みます。）

  • [タスク特性]を定義します。

  • 「[タスク]エディタ」を使用して、データビューやハンドラ、処理コマンド、フォームを定義します。「[タスク]エディタ」は、[データビュー]エディタと[ロジック]エディタ、[フォーム]エディタで構成されています。

  • [範囲/位置付]ウィンドウでデータビューの範囲を定義します。

  • タスクが読み書きできる入出力ファイルを定義します。

注意：

タスクとプログラムには以下の違いがあります。

  • タスクは、プログラムを構成するための基本的なユニットです。

  • プログラムはメインタスクとサブタスクで構成されています。


プログラムリポジトリ

プログラム >

[プログラム]リポジトリには、プロジェクト内の各プログラムが定義されています。

タスクやそのオブジェクトの1つ（フォームなど）を編集している時に[編集]メニューから[キャンセル]（Ctrl+F2）を選択すると、修正内容を取り消すことができます。タスクエディタでの編集中に[キャンセル]を選択した場合、そのセッション中に行った全ての変更は取り消され、プログラムテーブルに戻ります。[フォーム]エディタでの編集中に[キャンセル]を選択すると、タスクエディタに戻ります。

[プログラム]リポジトリには、以下のカラムがあります。

# (プログラム識別子）

名前

フォルダ

公開名

外部

最終更新日

時刻

参照

メインプログラム

タスク特性

タスクエディタ

範囲ウィンドウ

入出力ファイル


プログラムリポジトリ #

# (プログラムID）

プログラム > プログラムリポジトリ

ここには、プログラムIDが入ります。この番号は自動的に生成される連番で、変更することができません。

[プログラム]リポジトリ内でプログラムを移動したり、追加や削除を行なった場合、プログラム番号を自動的に割当て直され、プロジェクト全体にわたって更新されます。例えば、メニューにプログラム番号を指定した場合、[プログラム]リポジトリが修正されると、プログラム番号の変更が反映され、関連付けが維持されます。

式の中でプログラムIDを使用する場合、「PROG」リテラルを使用してプログラム識別子を明示的に指定する必要があります。つまり、プログラム番号nnを、「'nn'PROG」のように指定します。例えば、[式]エディタ内で「'3'PROG」をプログラム式として入力したとします。その後、新しいプログラムを[プログラム]リポジトリ内の３番目に位置するプログラムの直前に挿入し、結果として元からあったプログラムが#3から#4に変更されると、Magicは自動的に式定義の「'3'PROG」を「'4'PROG」に変更します。

注意：

クロスリファレンスユーティリティを使用することで、PROGリテラルを使用しているプログラムを検索することができます。


プログラムリポジトリ 名前

名前

プログラム > プログラムリポジトリ

プログラムの名前です。

プログラム名には、任意の名前を入力することができます。

プログラム名は、ルートタスクのタスク名としても使用され、[ナビゲータ]ペインのルートタスク名、[タスク特性]ダイアログの[タスク名]特性に表示されます。

これらは全て関連しており、いずれかを変更すると、ほかの個所も変更されます。


プログラムリポジトリ フォルダ

フォルダ

プログラム > プログラムリポジトリ

同じフォルダにいくつかのプログラムをグループ分けすることができます。ここから、格納したいフォルダを選択することができます。

注意：

このカラムでは、既存のフォルダを選択するだけが可能です。

プログラムが置かれるフォルダの名前が表示されます。コンボボックスをクリックしてフォルダを変更することができます。

[ナビゲータ]ペインの[プログラム]アイコンにカーソルを置き、F4を押下することによってフォルダを作成することができます。フォルダを指定することで、プログラムをグループ分けすることができます。

詳細は、フォルダを参照してください。


プログラムリポジトリ 公開名

公開名

プログラム > プログラムリポジトリ

インターネットリクエスタや[コールリモート]処理コマンドなどによってプログラムを呼び出す場合に使用されるプログラムの公開名を指定します。同一のプロジェクト内に、同じ公開名を指定しないでください。


プログラムリポジトリ 外部

外部

プログラム > プログラムリポジトリ

ここでは、プログラムの呼出し制限を設定します。

このカラムのチェックボックスがチェックされていない場合、プログラムに公開名が設定されていても外部から呼び出すことができません。

チェックボックスがチェックされている場合、外部から呼び出すことができます。

このチェックボックスは、[公開名]カラムにプログラムの公開名が入力されている場合のみ有効です。

[外部]カラムがチェックされたプログラムは、以下の方法で呼び出すことができます。

  • インターネットリクエスタ

  • [コールリモート]処理コマンド

  • コマンドラインリクエスタ

  • SOAPリクエスタ

  • COMメソッドによる呼び出し

  • EJBメソッドによる呼び出し

[外部]カラムがチェックされていないプログラムを呼び出した場合、プログラムの公開名が見つからなかった場合と同じ結果になります。例えば、インターネットリクエスタの場合は、「Program is not set as External」(-261)が返ります。

以下の方法でプログラムを呼び出す場合は、この設定内容は影響しません。

  • [コールプログラム]処理コマンド

  • 同じプロジェクト内での[コール公開名]処理コマンド

  • 別のプロジェクトからの[コール公開名]処理コマンド

  • コンポーネントプログラムの呼び出し

  • メニューからの呼び出し

  • 選択プログラム

  • サブフォームによる呼び出し


プログラムリポジトリ 最終更新日

最終更新日

プログラム > プログラムリポジトリ

ここには、プログラムが最後に変更された日付が自動的に入ります。変更することはできません。


プログラムリポジトリ 時刻

時刻

プログラム > プログラムリポジトリ

ここには、プログラムが最後に変更された時刻が自動的に入ります。変更することはできません。


メインプログラム

プログラム >

メインプログラムは、プログラムのディスパッチを主目的としたプログラムです。他のプログラムは、メインプログラムから起動されます。このため、プロジェクトが実行している間はメインプログラムは常にアクティブになっています。

メインプログラムは、プロジェクトを開いた時に最初に起動されるプログラムであると同時に、最後に閉じるプログラムでもあります。

メインプログラムで定義されたリソースは、プロジェクト内でグローバルな扱いとなります。

参照

メインプログラムのアクセスと使用

実行モードでの特徴と動作

開発モードでの特徴と動作

メインプログラムのリポジトリ入力

メインプログラムとコンポーネント


メインプログラム アクセスと使用

メインプログラムのアクセスと使用

プログラム > メインプログラム

メインプログラムは、以下の場合に自動的に実行されます。

  • ユーザがプロジェクトを開発モードで開いた後に実行モードに切り替えた場合

  • 開発モードでプログラムを実行している場合。[プログラム]リポジトリから[プログラム実行]アクション（F7）を実行したり、[テーブル]リポジトリから[APG]イベント（Ctrl+G）を使用することで実行されます。どちらの場合でも、メインプログラムは、現在のプログラムの前に実行されます。

メインプログラムは、以下の目的で使用されます。

  • プロジェクト全体の初期化と終了時の処理のために、メインプログラムの[タスク前]と[タスク後]をそれぞれ利用します。

  • プロジェクト全体のグローバル変数として、メインプログラムのレコードメインで定義する変数項目を使用します。

  • プロジェクト全体で有効な、グローバルな[イベント]ロジックユニットは、メインプログラムの[イベント]ロジックユニットとして定義します。

  • プロジェクト全体で有効な、グローバルなユーザ定義イベントは、メインプログラムでユーザ定義イベントとして定義します。


メインプログラム 開発モード

開発モードでの特徴と動作

プログラム > メインプログラム

参照

プログラムリポジトリ

タスク特性

[フォーム]エディタ

入出力ファイルテーブル

ロジックエディタ

データ項目の可用性

バージョン管理

コール処理コマンド

タスク前

タスク後


メインプログラム 開発モード プログラムリポジトリ

プログラムリポジトリ

プログラム > メインプログラム > 開発モードでの特徴と動作

メインプログラムは常に、[プログラム]リポジトリの最初のプログラムとして表示されます。メインプログラムは、新しいプロジェクが作成されると自動的に生成され、デフォルト名は「メインプログラム」となります。

メインプログラムの削除や複写、上書きはできません。さらに、メインプログラムを実行することはできません。[メインプログラム]行にカーソルが位置付けされている場合、実行オプションは無効になります。


メインプログラム 開発モード タスク特性

タスク特性

プログラム > メインプログラム > 開発モードでの特徴と動作

メインプログラムの[タスク特性]ダイアログは、以下の設定になっています。

  • タスクタイプ……「B=バッチ」に固定されています。

  • 初期モード……「Q=照会」に固定されています。

  • タスク終了条件……「No」に設定されています。開発者は式を設定することができます。

  • イベント可……[No]に固定されています。

  • メインフォーム……「0」に設定されています。開発者は式を設定することができます。

  • [データ]タブ …… 全て無効化されています。[ロック方式]特性は、「N=なし」に固定されています。

  • [オプション]タブ …… 全て無効化されています。

  • [拡張]タブ …… 全て無効化されています。


メインプログラム 開発モード [フォーム]エディタ

フォームエディタ

プログラム > メインプログラム > 開発モードでの特徴と動作

プログラムは、デフォルトでクラス「0」のフォームをもっています。フォームは追加できますが、このフォームにはシステムメニューがありません。

「0」より大きい番号のクラスのフォームは、全てのプロジェクト内のプログラムでデータ出力用として利用できます。


メインプログラム 開発モード 入出力ファイルテーブル

入出力ファイルテーブル

プログラム > メインプログラム > 開発モードでの特徴と動作

メインプログラムには入出力はありません。したがって、[入出力ファイル]テーブルは無効になっています。


メインプログラム 開発モード ロジックエディタ

ロジックエディタ

プログラム > メインプログラム > 開発モードでの特徴と動作

メインプログラムは、[タスク前]と[タスク後]に処理コマンドを定義できます。[レコード前]と[レコード後]はサポートされていません。

ユーザ定義のロジックを設定することで、プロジェクト全体で利用することができます。

参照

タスク前

タスク後


メインプログラム 開発モード データ項目の可用性

データ項目の可視性

プログラム > メインプログラム > 開発モードでの特徴と動作

メインプログラムで定義されたデータ項目は、プロジェクト内の全てのプログラムで使用できます。[項目一覧]では、他のプログラムのデータ項目より前に表示されます。

データ項目のシンボル名（識別名）名は、3桁の文字で表されます。データ項目を選択すると、そのシンボル名が自動的に設定されます。


メインプログラム 開発モード バージョン管理

バージョン管理

プログラム > メインプログラム > 開発モードでの特徴と動作

メインプログラムのデータ項目はプロジェクト全体で使用されるので、バージョン管理はそれを独立したエンティティとみなし、共有アクセスを許可します。メインプログラムのリソースの修正は、データソースとプログラムの場合がそうであるように排他的にしか行えません。

メインプログラムを使用するオブジェクトが編集されている場合は、メインプログラムはチェックインできません。

チェックインしようとすると、「オブジェクトはすでにチェックアウトされています.」というエラーメッセージが表示されます。


メインプログラム 開発モード コール処理コマンド

コール処理コマンド

プログラム > メインプログラム > 開発モードでの特徴と動作

[コール]処理コマンドでメインプログラムを呼び出すことはできません。


メインプログラム 開発モード タスク前

タスク前

プログラム > メインプログラム > 開発モードでの特徴と動作

メインプログラムの[タスク前]は、プロジェクト全体の前処理段階として機能します。このロジックユニットは、アプリケーションの初期化段階で実行する処理を定義するために使用します。

[項目更新]処理コマンドを使用してメインプログラムのグローバル変数を初期化したり、[コール]処理コマンドやその他の関連する処理コマンドを使用して初期化用のサブプログラムを呼び出したりすることができます。


メインプログラム 開発モード タスク後

タスク後

プログラム > メインプログラム > 開発モードでの特徴と動作

メインプログラムの[タスク前]と同様、[タスク後]はプロジェクト全体の後処理段階とみなすことができます。このロジックユニットは、アプリケーションの終了段階で実行する処理を定義するために使用できます。


メインプログラム 実行モード

実行モードでの特徴と動作

プログラム > メインプログラム

参照

データビュー

フロー

サブタスク

再計算

コール式

終了条件


メインプログラム 実行モード データビュー

データビュー

プログラム > メインプログラム > 実行モードでの特徴と動作

他のプログラムと異なり、メインプログラムにはメインソースを指定できません。メインプログラムには、実行の開始時に初期化され、プロジェクト全体で使用できるグローバルな変数項目が定義できます。

プロジェクトが実行されると同時に特定のテーブルをオープンする場合は、メインプログラム内でそのテーブルをオープンするように宣言します。またメインプログラム内で、特定のレコードを[リンク]コマンドで読み込むと、プロジェクト全体で使用することができます。

メインプログラム内でリンク定義によって取り出されたレコードは更新できません。更新処理を実行しても無視されます。また、更新処理に関するタスク特性もありません。メインプログラムは、レコードロックコマンドやトランザクション管理コマンドは実行しません。ただし、テーブルロックはメインプログラムによってオープンされるテーブルには使用できます。


メインプログラム 実行モード フロー

フロー

プログラム > メインプログラム > 実行モードでの特徴と動作

メインプログラムは、レコードサイクルが１回実行されるバッチタスクとして実行されます。この動作は、[タスク終了条件]で制御することはできません。プロジェクトが実行されると、メインプログラムのデータソースがオープンされ、[タスク前]が実行されます。その後、メインプログラムの変数項目が初期化され、リンクレコードが読み込まれます。

プロジェクトを終了する場合、メインプログラムの[タスク後]がプロジェクト終了の直前に実行されます。メインプログラムのデータソースもクローズされます。


メインプログラム 実行モード サブタスク

サブタスク

プログラム > メインプログラム > 実行モードでの特徴と動作

メインプログラムは、通常のタスクとして実行されるサブタスクを持つことができます。これらのサブタスクには、メインソースと、通常のタスクと同様の機能を持たせることができます。ただし、サブタスク内で定義された変数項目はグローバル変数ではありません。グローバル変数は、メインプログラムのルートタスクに定義された変数だけになります。


メインプログラム 実行モード 再計算

再計算

プログラム > メインプログラム > 実行モードでの特徴と動作

メインプログラム中の変数は、他のプログラムと同様に、親タスクで定義された変数をサブタスクから更新されても再計算されないという規則に従います。


メインプログラム 実行モード コール式

コール式

プログラム > メインプログラム > 実行モードでの特徴と動作

メインプログラムは、[コールプログラム]処理 コマンドで明示的に呼び出すことはできません。[コール式]処理コマンドで、プログラム番号が「'1'PROG」と指定された場合、エラーメッセージが表示され実行されません。


メインプログラム 実行モード 終了条件

終了条件

プログラム > メインプログラム > 実行モードでの特徴と動作

メインプログラムの[タスク終了条件]が「True」と評価されると、プロジェクト全体の実行が停止します。


コンポーネントリポジトリ メインプログラム

メインプログラムとコンポーネント

プログラム > メインプログラム

コンポーネント > コンポーネントリポジトリ

メインプログラムは、[コール]処理コマンドでは実行できないので、コンポーネントの一部として出力することはできません。

プログラム、テーブル、イベントなど、別のコンポーネントのオブジェクトを使用する場合は、まずそのオブジェクトが定義されているプロジェクトのメインプログラムが実行されます。つまり、最初に別のMagicコンポーネントのオブジェクトを使用する時には、そのメインプログラムの[タスク前]が実行され、その変数が初期化されます。

ただし、コンポーネントをすぐに使用する場合（即時有効=Yes）、つまり、 コンポーネントを実際に使用する時ではなく、プロジェクトを開いた時にコンポーネントを読み込む場合は例外です。このようなコンポーネントの場合は、読み込まれるとすぐにコンポーネントのメインプログラムが実行されます。

実行タスク用スタックは、コンポーネントのメインプログラムの実行による影響を受けません。このコンポーネントのプログラムは、メインプログラムではなく、親プログラムによって呼び出されます。 コンポーネントのメインプログラムは、プロジェクトのメインプログラムの直後、その他の全てのプログラムの前に実行タスク用スタックに挿入されます。

メインプログラムの[タスク後]が実行される前にプロジェクトを終了すると、[タスク後]は、[タスク前]の実行と逆の順序で実行されます。


メインプログラム リポジトリ入力

メインプログラムのリポジトリ入力

プログラム > メインプログラム

メインプログラムが格納されているファイルをリポジトリ入力すると、現在のメインプログラムを置き換えるかどうかを確認するメッセージが表示されます。「Yes」を選択すると、現在のメインプログラムがリポジトリ入力したファイル内のメインプログラムに置き換えられます。「No」を選択すると、リポジトリ入力したファイル内のメインプログラムは置き換わりません。メインプログラムを通常プログラムとして入力することはできません。


タスク特性

プログラム >

タスク特性は、[タスク特性]ダイアログを使用して定義できます。このダイアログは、[データビュー]エディタまたは[ロジック]エディタ内において、[タスク環境/タスク特性]（Ctrl+P）または[編集/特性]（Alt+Enter）を選択して開くことができます。

[タスク特性]ダイアログは、６つのタブから構成されます。

[汎用]タブ

[動作]タブ

[インタフェース]タブ

[データ]タブ

[オプション]タブ

[拡張]タブ


タスク特性 汎用

[凡用]タブ

プログラム > タスク特性

[凡用]タブには以下の特性があります。

タスク名

タスクタイプ

初期モード

初期モード（式）

タスク終了条件

チェック時期

戻り値

選択テーブル

タスク常駐

タスクID

ソースファイル名


タスク特性 汎用 タスク名

タスク名

プログラム > タスク特性 > 汎用

タスクボックスに表示される名前を指定します。現行タスクがルートタスクの場合、[プログラム]リポジトリに表示されるプログラム名にもなります。

タスク実行時に表示されるタスクウィンドウのタイトルは、このタスク名から継承されます。この名前は上書きできます。

[タスク特性]ダイアログで名前を変更すると、[フォーム]エディタのエントリやフォームのウィンドウタイトルなど、その名前が使用されている全ての名前が自動的に更新されます。ただし[フォーム]エディタの名前は、タスク名を変更する前からそれがタスク名と異なっていた場合、その名前は変更されません。


タスク特性 汎用 タスクタイプ

タスクタイプ (デフォルト:O=オンライン)

プログラム > タスク特性 > 汎用

タスクタイプは以下のいずれかになります。

  • O=オンライン……対話型プログラムです。

  • B=バッチ……バッチタスクは、データソースからレコードを取り出して処理を実行させるために使用されます。データソースを使用しないで処理を実行させることもできます。バッチタスクは帳票出力やレコード更新、または削除や計算処理などを行うために使用されます。バッチタスクにもフォームがありますが、ほとんどのバッチタスクはエンドユーザに対して何も表示しないで実行します。

  • R=ブラウザ……プログラムやタスクはブラウザ上で実行されます。ブラウザクライアントアプリケーションを参照してください。

  • C=リッチクライアント

タスクタイプを変更すると(例えばオンラインからバッチに)、タスクに設定されていた全てのトランザクション特性(トランザクションモード、トランザクション開始、ロック方式、およびキャッシュ範囲)は、変更されたタスクタイプのデフォルト値に設定されます。

オンライン、バッチ、およびブラウザタスクの違いについての詳細は、「Magicエンジン」の説明を参照してください。

タスクの比較

オンラインタスク | バッチタスク
エンドユーザとの対話処理が可能になります。 | エンドユーザとの対話処理はありません。
エンドユーザがメインソースのレコードをアクセスすることができます。スクロールされるレコードだけが、読み込まれます。 | タスクは、指定された範囲条件でメインソースのレコードをすべて読み込みます。メインソースが定義されていなかったり、タスクが登録モードで起動された場合、[タスク終了条件]特性が満たされるまでタスクはループします。
[コントロール]ロジックユニットが利用できます。エンジンは、エンドユーザの操作に関連するロジックを処理します。 | エンドユーザの操作が存在せず、コントロール上にパークすることもないため、コントロールロジックユニットは無効になります。
[グループ]ロジックユニットは利用できません。 | [グループ]ロジックユニットを定義することで、データのグループ処理を行うことが可能になります。
（画面表示用）タスクフォームは、タスクの作成と実行の各処理に不可欠なオブジェクトです。 | （画面表示用）タスクフォームはオプションで、フォーム設計に時間をかける必要はありません。
データが変更された場合、[レコード後]ロジックユニットが実行されデータが保存されます。 | データが変更されなくてもレコードは常にデータベースに保存されます。また、[レコード後]ロジックユニットは常に実行されます。
タスクがアイドル状態の時に、イベントを処理することができます。 | イベントは、指定された時間毎、または処理レコード数毎に処理されます。

参照

Magicエンジン


タスク特性 汎用 初期モード

初期モード (デフォルト: M=修正)

プログラム > タスク特性 > 汎用

この特性では、タスク実行を開始する時の処理モードを定義します。

実行モードはエンドユーザがプログラムの実行中に変更することが可能ですが、エンドユーザが変更可能な実行モードを制限したい場合には、[オプション]タブで設定することができます。

実行モードを式で定義することで、動的に指定することもできます。

[並行実行]特性が設定されている場合、[初期モード]特性が「A=親と同じ」に設定していると、構文チェックでエラーになります。

[メインソース]がXMLファイルの場合、全ての初期モードが指定できます。詳細は、「XMLの初期モード」を参照してください。

以下のモードが指定できます。

モード | エンドユーザが行うことができる処理 | ブラウザタスクとリッチクライントタスクでの有効性
M=修正 | 既存のレコードの変更。 バッチタスクの場合、レコードに変更が無くてもデータベースの更新が行われます。 | Yes
C=登録 | 新しい行の作成。 | Yes
D=削除 | データビューの全行削除。 バッチタスクの場合にのみ使用できます。 | No
Q=照会 | カーソルキーやマウスによる、行全体およびカラム全体のスキャン。 ユーザ入力は、[照会モード位置付]オプションが「Yes」に設定されている場合にのみ可能です。 バッチタスクの場合、読み取り専用の処理を実行するため、データソースの[アクセス]モードを「R=読込」にしてください。 | Yes
P=親と同じ | 実行時にモードがその親のモードと同一になるタスクまたはプログラムの実行。 実行時におけるタスクモードが「親と同じ」になっているプログラムが、メニューなどから直接起動された場合は、「Q=照会」と同じになります。 | Yes
L=位置付 | 値または式（あるいはその両方）によって定義された特定の行を位置付。 | No
R=範囲 | 範囲の上限／下限値または式（あるいはその両方）によって定義された範囲での行の読み込み。 | No
K=インデックス | メインソースのインデックスを変更し、変更後のインデックスに基づいたビューの処理。 | No
S=ソート | 指定された条件によるソート処理。 エンドユーザによって定義されたソート条件は、一時インデックスを作成し、タスク処理中にタスクのインデックスに追加します。 | No
F=入出力ファイル | タスクに定義されている入出力ファイルを変更し、指定された出力先（ディスクファイル、コンソール、プリンタなど）に転送。 このモードは主にバッチタスクで使用されます。 | No
O=オプション | オプションメニュー（実行を確認するためのダイアログ）が表示されます。この時点で[オプション]メニューより実行モードを指定することができます。 これはバッチタスク用です。 | No
E=式 | [初期モード(式)]特性に式を指定します。この式は、実行時に動的に評価され、初期モードを決定します。 | Yes


タスク特性 汎用 初期モード（式）

初期モード（式）

プログラム > タスク特性 > 汎用

[初期モード]特性で「E=式」を指定した場合、カーソルはここに移動し、式番号を指定できるようになります。この式は実行時に評価され、初期モードを決定します。

注意事項

  • 式の評価結果は有効なタスクモード用の略字（M、C、D、Q、P、L、R、K、S、F、O）の1つでなければなりません。
    例えば次のような式があったとします。

IF （A='QUERY','Q'MODE,'M'MODE"）

上記の式は、タスク内にある項目Aの値が「QUERY」であれば、Magicがこのタスクの実行をQ（照会）モードで開始することを意味します。それ以外の場合は、M（修正）モードで実行を開始します。

  • 初期モードの評価は、タスクの実行開始と同時に行われます。[初期モード式]の評価中には、現在のタスクのデータ項目を使用することはできません。したがって、式にデータ項目が使用されている場合、これらのデータ項目は、パラメータや親タスクのデータ項目でなければなりません。式を使用して処理コマンドの初期モードを動的に定義している場合、その式の有効な値が実行時に見つからない旨のエラーメッセージがメッセージボックスで表示され、タスクが終了します。

  • 上記の例のように[初期モード式]の中でMODEリテラルを使用することにより、Magicに文字列の内容を調べさせて有効なタスクモードが指定されているかどうかを確認できます。有効でないタスクモードがその文字列に含まれていると、該当する文字は自動的に除去されます。文字列内の各文字で表されている値は、内部表現の形式で保存されます。


タスク特性 汎用 タスク終了条件

タスク終了条件 (デフォルト: No)

プログラム > タスク特性 > 汎用

この特性の値を「No」を指定した場合、以下のように動作します。

  • ブラウザタスクとリッチクライアントタスク、オンラインタスクの場合、ユーザがタスクを終了したり、プログラムで[終了]イベントが発生した時に終了します。

  • バッチタスクの場合、データビューの全レコードの処理が完了すると終了します。タスクが取り消し可能な場合は、エンドユーザがEscキーを押下してそのタスクを取り消すと終了します。

「Yes」を指定した場合、タスクが終了するのは[チェック時期]特性の設定に応じて、レコードレベルを実行する前、あるいは１つの行を処理した後になります。この特性から[式]エディタにズームすることで、[タスク終了条件]を有効にする条件を設定できます。

注意：

バッチタスクでは無限ループを回避するため、次のような場合にタスク終了条件が必要となります。

  • バッチタスクでループを実行させるため、スクラッチファイル（メインソース=0）を指定した場合

  • バッチタスクで登録モードにして、入出力ファイルの読み込みを行う場合

参照

チェック時期


タスク特性 汎用 チェック時期

チェック時期 (デフォルト: B=前置)

プログラム > タスク特性 > 汎用

[タスク終了条件]をどの時点で評価するかを定義します。

  • B=前置 ……レコードの入力前に評価します。

  • A=後置……レコードの更新後に評価します。この設定により最後に処理した行のデータ項目をタスク終了条件に組み込むことができます。

  • I=即時……レコードが変更されると同時に評価されます。

タスク終了条件によるタスクの終了

[チェック時期]特性を「I=即時」に設定した場合、[タスク終了条件]は全てのレベルにおいて各処理コマンドごとに毎回検査されます。また、[タスク終了条件]が「True」の場合、Magicは内部的な終了状況を設定します。この状況は対話レベルでのみチェックされ、タスクは即時に終了します。

[タスク終了条件]が「True」の場合、タスクは以下のように終了されます。

  1. 行が修正されていた場合は、ブラウザタスクとオンラインタスクの[レコード後]を実行します。（バッチタスクは必ず実行されます。）

  2. バッチタスクの場合は、グループレベルがあればグループレベルを実行します。

  3. [タスク後]を実行します。

  4. タスクを終了します。

[タスク終了条件]と[チェック時期]の例

  • １つの行を処理する場合は、[タスク終了条件]を「Yes」に、また[チェック時期]を[A＝後置]に設定します。

  • どの行も処理しない場合は、[タスク終了条件]を「Yes」に、また[チェック時期]を[B＝前置]に設定します。

  • １５の行を処理する場合は、[タスク終了条件]欄に式として「Counter（）=15」を指定し、[チェック時期]を[A＝後置]に設定します。


タスク特性 汎用 戻り値

戻り値

プログラム > タスク特性 > 汎用

タスクの戻り値を指定します。この特性は式で定義します。ここから[式]エディタにズームして、変数や式を割り当てることができます。

コールコマンドやCOMプログラムなどからこのプログラムが呼び出された場合、戻り値としてここで指定された値が返ります。


タスク特性 汎用 選択テーブル

選択テーブル (デフォルト: No)

プログラム > タスク特性 > 汎用

この特性は、オンラインタスクとブラウザタスクのみ関連します。この特性を「Yes」に設定すると、Magicは選択テーブルタスクとして動作するようになります。

選択テーブルと指定されたプログラムは、Enterキーを押下すると、[レコード後]を実行して終了します。パラメータ項目を定義して、[レコード後]でパラメータ項目を現在のメインソースのデータで更新することで選択プログラムが実現できます。

ブラウザとリッチクライアント タスク

通常のオンラインタスクと同じように、[レコード後]ロジックユニットを実行し、選択イベントを発行することでタスクが終了します。


タスク特性 汎用 タスク常駐

タスク常駐 (デフォルト: No)

プログラム > タスク特性 > 汎用

この特性を「Yes」に設定すると、呼び出される側のタスクまたはプログラムは、呼び出す側のタスクの読み込み時にメモリに読み込まれ、呼び出し側のタスクが終了するまでの間、メモリに常駐します。これによってメモリが占有される代わりに、親タスクが繰り返し呼び出すタスクをなるべくメモリ内に保持しておくことでパフォーマンスが向上します。

メモリのリソースが限られているシステム上では、この特性の使用は避けてください。

この特性は、オンライン、バッチでのみ有効です。


タスク特性 汎用 タスクID

タスクID

プログラム > タスク特性 > 汎用

[タスクID]特性は、開発者レベルでタスクの識別用IDを設定するためのものです。

この特性は、サブタスクでだけでなくトップレベルのタスクでも利用可能です。

開発エンジンは、タスクIDをチェックしません。


タスク特性 汎用 ソースファイル名

ソースファイル名

プログラム > タスク特性 > 汎用

ここには、プログラムのソースファイル名（XMLファイル）が表示されます。この特性は、プログラム（ルートタスク）のみ表示され、サブタスクには表示されません。


タスク特性 動作

[動作]タブ

プログラム > タスク特性

[動作]タブには以下の特性があります。

汎用 | バッチタスク
循環入力 更新確認 キャンセル確認 強制レコード後 レコード削除 ウィンドウ再表示 | イベント可 レコードイベント間隔 ページ当りレコード件数


タスク特性 動作 循環入力

循環入力 (デフォルト:Yes)

プログラム > タスク特性 > 動作

  • Yes……エンドユーザが現行のレコードにある最後のカラムの処理を終了すると、カーソルはその同じレコードの先頭にあるカラムに戻ります。この処理はユーザがそのレコードから別のレコードへ移動するか、そのタスクを終了するまで続きます。

  • No……カーソルがその行にある最後のカラムから、データビューの次のレコードにある最初のカラムへ自動的に移動します。

この特性は、バッチタスクではサポートされません。

また、リッチクライアントタスクでは無効になります。


タスク特性 動作 更新確認

更新確認 (デフォルト:No)

プログラム > タスク特性 > 動作

更新や登録処理を実行した後、タスクを終了したりレコードを移動したりした場合に、更新確認ダイアログを表示するかどうかを指定します。

  • Yes……登録および修正処理時に確認ダイアログが表示されます。

  • No…… 削除処理時のみ確認ダイアログを表示します。

  • 式……式を使用してこの動作を動的に変更できます。例えばStat（0,'C'MODE）のように指定すると、登録処理の場合のみ確認ダイアログが表示されます。


タスク特性 動作 キャンセル確認

キャンセル確認 (デフォルト:No)

プログラム > タスク特性 > 動作

変更処理に対する取り消しを行った場合に、[キャンセル確認]ダイアログを表示するかどうかを指定します。

  • Yes……キ[キャンセル確認]ダイアログが表示されます。取消を実行すると、変更内容が取り消されて、レコードの値が元に戻ります。取消を中止すると、変更内容は更新されます。

  • No…… [キャンセル確認]ダイアログを表示します。

  • 式……式を使用してこの動作を動的に変更できます。


タスク特性 動作 強制レコード後

強制レコード後 (デフォルト:No)

プログラム > タスク特性 > 動作

この特性は、ブラウザとオンラインタスクのみに関連します。

  • Yes……該当する行に修正が加えられたかどうかに関係なく、[レコード後]が実行されます。

  • No……現行のデータビュー行が変更されている場合、つまりタスクのデータ項目の１つが変更された場合にのみ[レコード後]が実行されます。

  • 式……式を使用してこの動作を変更することも可能です。


タスク特性 動作 レコード削除

レコード削除 (デフォルト:No)

プログラム > タスク特性 > 動作

この特性を利用することで、タスクのデータビューから条件付きで行を削除できます。

削除条件式は、Magicが[レコード後]を開始する前に評価されます。評価の結果が「True」の場合、対象となる行はユーザが削除キー（F3）を押下した時と同じ仕組みで削除されます。

この特性はオンライン、バッチ、およびブラウザのタスクで利用可能です。

削除の仕組み

対象となる行が修正されている場合、またはタスクがバッチモードで実行されている場合は、[レコード後]が一旦「修正モード」で実行されます。これは、そこで定義されている更新処理を全て実行して処理を完了するためです。その後、削除関連の処理を実行するため、「削除モード」で２回目の[レコード後]が行われます。

このような処理には、１対多関係にある相互連結した行の削除や[加算]モードによる[項目更新]処理コマンドなどがあります。詳細については、「項目更新」を参照してください。対象となる行が修正されていない場合は、[レコード後]は「削除モード」のみ実行されます。

[レコード削除]特性によって[レコード後]で２重に処理が実行されることを回避するには、処理コマンドの[条件]カラムに指定する条件式の中で、Stat関数を使用して特定の処理モードでのみ実行するようにします。

例：Stat (0,'D'MODE)


タスク特性 動作 ウィンドウ再表示

ウィンドウ再表示 (デフォルト:No)

プログラム > タスク特性 > 動作

この特性は、行の処理と[レコード後]の実行後にタスクウィンドウの表示を更新するかどうか指定します。オンラインタスクとバッチタスクのみ関係します。

Magicでは、一度に１行づつ処理します。ラインモードによる複数行表示の場合も、ハイライト表示されている行だけが更新され、再表示されます。他の行は、フォーカスが移った時点で表示が更新されます。このため、ハイライトされていない行は、データビューの行の内容が変わっていても、最新の値が反映されない場合があります。

また、現在のデータビュー行に含まれている一部のカラムがリンク定義によって、同じデータビューの別の行と関連している場合もあります。この場合、残りのデータビュー行はラインモード表示であったり、親タスクのフォームであったりして、同じ画面上に表示される可能性があります。

このようなカラムを変更すると、変更内容は現在ハイライト表示されているデータビュー行のみ反映されます。こういった場合、[ウィンドウ再表示]特性を「Yes」設定することで、現在表示している全てのデータビュー行の変更内容をすぐに反映することができます。

「Yes」を設定すると、常に再表示が実行されるため処理速度が低下します。このため、式を使用して必要な場合のみ有効にするようにしてください。

注意：

[トランザクションモード]特性が「D=遅延」、または「P=物理」でキャッシュが有効になっているプログラムでは、[ウィンドウ再表示]特性は機能しません。再表示が必要な場合、「ビュー再表示」イベントを発行する必要があります。

参照

データの再表示


タスク特性 動作 イベント可

イベント可 (デフォルト:Yes)

プログラム > タスク特性 > 動作

バッチタスクの時のみ有効です。

バッチタスクで、ハンドラがイベントを処理するか否かを定義します。

  • Yes……ハンドラは、イベントを処理します。

  • No ……ハンドラは、イベントを処理しません。この場合、例えばバッチタスク実行中にエンドユーザはタスクをキャンセルできません。もし10秒間のタイマーイベントが定義されているとすると、イベントが発生しても、Magicエンジンはこのイベントを処理しません。

  • 式 ……イベントを処理するかどうかを定義式で動的に指定できます。


タスク特性 動作 レコードイベント間隔

レコードイベント間隔 (デフォルト:0)

プログラム > タスク特性 > 動作

この特性は、バッチタスクのみ関係します。

Magicがイベントキュー内のペンディング中のイベントを検索するまでに処理するレコード数を表す式を指定します。この式の評価結果は数値であり、評価はタスクの初期段階で行われます。

例えば式の評価結果が「500」の場合、エンジンは500レコードごとにイベントキュー内のペンディングイベントを検索します。あるイベントのハンドラと一致するハンドラがキュー内で見つかった場合、そのハンドラが実行されます。


タスク特性 動作 ページ当りレコード件数

ページ当りレコード件数 (デフォルト:0)

プログラム > タスク特性 > 動作

この特性は、バッチタスクのみ関係します。

これは帳票を出力する際に改ページを行うレコード数を指定します。通常、帳票のヘッダとフッタは定位置にあり、各ページの行数は固定されています。

ここでレコード数を指定することで、帳票を出力する場合に決まった数のレコードが各ページに出力され、最後のページには空行が埋め込まれます。


タスク特性 インタフェース

[インタフェース]タブ

プログラム > タスク特性

[インタフェース]タブには以下の特性があります。

ウィンドウ表示

ウィンドウ消去

前面表示

メインフォーム

アイコンファイル名


タスク特性 インタフェース ウィンドウ表示

ウィンドウ表示

プログラム > タスク特性 > インタフェース

ブラウザとオンラインタスクでは、タスクウィンドウは必ずオープンされるため、この特性はバッチタスクだけが関係します。

バッチタスクに対して「No」を指定すると、画面にタスクウィンドウが表示されなくなります。なおオンラインタスクに対して「No」を指定すると、タスクは実行されません。

オンラインタスクのデフォルトは「Yes」。バッチタスクのデフォルトは「No」です。ブラウザタスクでは無効になります。


タスク特性 インタフェース ウィンドウ消去

ウィンドウ消去 (デフォルト:Yes)

プログラム > タスク特性 > インタフェース

  • Yes……タスクの終了とともにタスクウィンドウがクローズされます。

  • No……タスクが終了してもタスクウィンドウはクローズしません。同じタスクが実行された場合、表示されていたタスクウィンドウがクローズされ、新たにタスクウィンドウがオープンされます。なお、実行環境自体が終了すると、開いているウィンドウは全てクローズされます。この特性が関連するのはオンラインタスクとバッチタスクのみです。

親タスクがモーダルウィンドウで表示していて、タスクがそのフォームの子ウィンドウでない場合、この設定は無効になります。

下記の表は、[ウィンドウ表示]と[ウィンドウ消去]欄の値の組み合わせと、その組み合わせの時に、どういったタスクで有効かをまとめたものです。

ウィンドウ表示 | ウィンドウ消去 | 有効なタスク
Yes | Yes | オンラインタスクとバッチタスク
Yes | No | オンラインタスクとバッチタスク
No | No | バッチタスクのみ
No | Yes | バッチタスクのみ。（結果的にNoと同じ）


タスク特性 インタフェース 前面表示

前面表示 (デフォルト:Yes)

プログラム > タスク特性 > インタフェース

この特性が関係するのはオンラインタスクとバッチタスクのみです。

タスクの実行時には、通常タスクウィンドウは最前面に（全体が完全に見える状態で、開いている他の全てのウィンドウより前面に）表示されます。しかし、タスクウィンドウを他のアクティブなウィンドウの背面に表示させることもできます。

このような動作は、並行起動タスクを有効にする場合、何らかの問題が発生する可能性があるため、推奨されません。

標準のバックグラウンドウィンドウの代わりにタスクウィンドウを使用する場合や、Magicの作業領域のバックグラウンドより前面に表示したままにする場合は、「No」にしておきます。時刻や日付などをバックグラウンド情報として表示させる場合にこの設定にします。

[前面表示]を「No」に設定する時、バックグラウンドウィンドウが常に開いているため、通常は[ウィンドウ消去]も「No」にしておきます。定期的にこのバックグラウンドウィンドウの表示を更新するには、イベントを利用して、特定のキー操作や時間経過に応じてプログラムを実行させるようにします。

注意：

この特性は、デフォルトでは表示されません。表示させるには、Magic.iniの以下のフラグを設定してください。

[MAGIC_SPECIALS]
SpecialOldZorder = Y


タスク特性 インタフェース メインフォーム

メインフォーム (デフォルト:0)

プログラム > タスク特性 > インタフェース

この特性は、メインフォームに使用するフォーム番号を返す式を指定します。これにより、実行時にメインフォームを動的に切り替えることができます。

注意：

  • 定義式においてフォーム番号を使用する場合、そのフォーム番号を自動的に更新されるようにするため、FORMリテラルを使用して「'nn'FORM」という形式でフォーム番号を指定することができます。

  • [フォーム]テーブルにおいて２番目の行の前に行を追加したとします。この場合、これまで２番目だったフォームは３番目になりますが、FORMリテラルを使用していると、「'2'FORM」が自動的に「'3'FORM」に更新されます。


タスク特性 インタフェース アイコンファイル名

アイコンファイル名

プログラム > タスク特性 > インタフェース

この特性には、プログラムを最小化した時に表示されるアイコンファイル名を指定します。

この特性は、オンライン、バッチおよびリッチクライアントタスクでのみ有効です。

注意：

リッチクライアントタスクの場合、ファイルパスは、URLでのみ指定できます。


タスク特性 データ

[データ]タブ

プログラム > タスク特性

[データ]タブには以下の特性があります。

トランザクション | 管理
トランザクションモード トランザクション開始 空のデータビューを許可 | キャッシュ範囲 ビュー事前読込 ロック方式 エラー発生時
 | SQLステートメントの出力
 | SQLステートメントの出力


タスク特性 データ トランザクションモード

トランザクションモード

プログラム > タスク特性 > データ

オンラインとバッチタスク

オンラインとバッチタスクでは、トランザクション処理に対応した4つのモード設定があります。

  • D=遅延……データ操作(DM)ステートメントが一時的にキャッシュに保存され、すぐには物理データベースに送信されません。他のユーザはそのデータにアクセスすることはできません。このトランザクションが終了した時点で、トランザクション間に記録された様々な処理コマンドによって、データベースが更新されます。データベースの更新は、[更新レコードの識別]特性の設定内容に従って実行されます。キャッシュに蓄積されたすべてのDMステートメントはすぐに実行され、トランザクションはクローズされます。修正内容がコミットされる前に、選択されたデータが修正された場合、エラーメッセージが表示され、更新内容が失われます。この場合、更新処理をやり直すしか方法はありません。更新されたデータが遅延トランザクションモード内にある場合、失われる可能性があることに注意してください。

  • N=ネスト遅延……新規に遅延トランザクションがオープンされ、タスク終了時にコミットされます。

  • W=親と同じ……タスクは親タスクのトランザクション内で実行されます。親が物理トランザクションであれば、子タスクも物理になります。

  • P=物理……DMステートメントは、[レコード後]で発行されます。DMステートメント内の処理コマンドは、すべて物理データベースのロールバックセグメント内に記録されます。他のユーザは、分離レベルの定義内容に従って更新データの内容を参照することができます。この結果として、更新されたデータを失うことが少なくなる可能性があります。ODBCとキャッシュのDBMSシステムでは、物理ロックがなく、すべてのトランザクションはMagicによって実装されることに注意してください。

ブラウザタスク

ブラウザタスクでは、以下のモードが選択できます。

  • D=遅延……(上記を参照)

  • N=ネスト遅延……(上記を参照)

  • W=親と同じ……タスクは親タスクのトランザクション内で実行されます。

  • O=なし……トランザクションはオープンされません。メニュー画面のようにテーブルを使用しないタスクや、読込モードでテーブルをオープンする場合など、トランザクションをオープンする必要がない場合は、この設定にしてください。

リッチクライアントタスク

リッチクライアントタスクでは、以下のモードが選択できます。

  • W=有効な遅延トランザクション内……デフォルト。このモードは、上記の遅延トランザクションモードと同じような動作になります。このモードで定義されたタスクを実行すると、([トランザクション開始]特性に基づいて)以下のようにトランザクションが開始されます。

  • トランザクションが開始されている場合は、タスクはそのトランザクションの一部になります。

  • トランザクションが開始されていない場合、新規の遅延トランザクションを開始します。

  • N=新規の遅延トランザクション……このモードは、上記のネスト遅延トランザクションモードと同じような動作になります。このモードで定義されたタスクを実行すると、([トランザクション開始]特性に基づいて)以下のようにトランザクションが開始されます。

  • 新しい遅延トランザクションが開始されます。

  • (コールトランザクションにかかわらず、)トランザクションが終了した後に、このトランザクションによるどのような更新内容もコミットされます。

  • トランザクションがまだオープン中の場合、コールトランザクションを終了させることができます。コールトランザクションを終了させても、このトランザクションには影響しません。

  • 新規のトランザクションは、独自のトランザクションキャッシュを持っています。トランザクションキャッシュはトランザクション間で共有することができず、一方のトランザクション内での更新内容は他のトランザクションで参照することはできません。

  • O=なし……トランザクションはオープンされません。

参考：

サブフォームやフレーム上で実行しているタスクは、上記のリッチクライアントタスクでのトランザクションモードのどれかを設定することができます。

[出力先]特性を設定した[コール]処理コマンドを使用した場合、サブフォームやフレーム内で実行しているタスクは終了します。

  • タスク内のトランザクションが遅延している場合、トランザクションが（開始したタスクで）終了するまで、データはコミットされません。

  • タスクが新規に開始したトランザクションが遅延の場合、そのトランザクションは終了し、データはコミットされます。

詳細は、「トランザクション処理」を参照してください。


タスク特性 データ トランザクション開始

トランザクション開始

プログラム > タスク特性 > データ

この特性は、以下のいずれかを設定できます。

オプション

内容

オンライン

バッチ

ブラウザ

リッチクライアント

T=タスク前の前

トランザクションは[タスク前]の前にオープンされ、[タスク前]の後でクローズされます。

このオプションが選択された場合、以下のように動作します。

  • タスク起動前にトランザクションをオープンします。

  • データファイルの更新後にのみトランザクションがコミットされます（これは[タスク後]が実行された後で処理されます)。

  • サブタスクを含む、オープンとコミットの間のすべての処理コマンドをがトランザクション範囲になります。

タスクレベルのトランザクションの使用を参照してください。

a

a

a

a

G=グループ

トランザクションは[グループ前]の前にオープンさます。グループトランザクションのトリガとなる項目を指定する必要があります。この項目は、タスクの「グループレベル」のロジックユニットが定義されている必要があります。

大きなテーブルの処理を、レコードグループで分割して処理する場合にこのトランザクションを使用することができます。この方法を使用してトランザクションの範囲を減らすことで、トランザクション処理の利点が維持されます。

a

L=レコードロック時

トランザクションはレコードがロックされる前にオープンされ、レコードが更新された後にクローズされます。

a

a

a

P=レコード前の前

トランザクションは[レコード前]の前にオープンされ、レコードが更新された後にクローズされます。

このオプションが選択された場合、以下のように動作します。

  • レコードをフェッチする前に、トランザクションはオープンされます。

  • [レコード後]の実行に続いていてデータファイルを更新した後でのみ、トランザクションはコミットされます。

  • サブタスクを含め、オープンとコミットの間のすべての処理コマンドがトランザクション範囲内として含まれます。

トランザクションはユーザとの対話状態でオープンされているため、トランザクションはロックを伴い、同じレコードやテーブルにアクセスしようとしている他のユーザに対して問題を発生させる可能性があります。このため、マルチユーザー環境では、通常、オンラインタスクの前処理レベルでのトランザクションを定義するべきでありません。

a

a

a

a

S=レコード後の前

トランザクションは[レコード後]の前にオープンされ、レコードが更新された後にクローズされます。

このオプションが選択された場合、以下のように動作します。

  • [レコード後]を実行する前に、トランザクションがオープンされます。

  • [レコード後]が実行された後でデータビューが更新された後でのみトランザクションがコミットされます。

サブタスクの呼び出し処理を含むすべての[レコード後]での処理コマンドはトランザクション内に含められています。

トランザクションが失敗した場合、[エラー発生時]特性の設定にしたがって、エンジンの実行処理は復旧または中断します。この設定の動作の代わりに、タスクに[エラー]ロジックユニットを定義することで対応させることもできます。

a

a

a

U=レコード更新前

トランザクションはデータベースに対して物理更新処理が送られる前にオープンさます。

このオプションが選択された場合、以下のように動作します。

  • トランザクションは、データファイルの更新処理の直前で[レコード後]の実行後にオープンされます。

  • データファイルの更新が実行された後でのみ、トランザクションはコミットされます。

このオプションを選択すると、トランザクションはレコードを更新する直前にオープンされます。この場合のみ、[更新レコードの識別]特性の設定内容に従って、レコードをロックする要求を送信します。

このオプションの有利な点は、トランザクション範囲が最小（並行性が最大）になることです。しかし、ロックが最後の瞬間に実行されるため、別のユーザがデータを更新することも考えられます。この場合、更新されたデータが失われる可能性があります。

｢更新｣と定義されたレコードレベルのトランザクションは、[レコード後]の処理コマンドを含まないことに注意してください。これによってエンドユーザ間での並行処理での潜在的な問題を減らすため、｢更新｣と定義されたトランザクションは、マルチユーザ処理のアプリケーションで最も推薦されます。

a

a

a

N=なし

トランザクションはオープンされません。トランザクションをオープンしたタスクからこのタスクが起動された場合、そのトランザクションを使用しているように動作します。

a

a

a

a

注意：

[トランザクションモード]が「O=なし」の場合、[トランザクション開始]オプションは無効になります。

メインソースが変更された場合、「トランザクション開始」特性は、SQL DBMSにおけるロックとトランザクションに関する一般的な制限規則（ロックに先立って、必ずトランザクションが開始されていなければならない）に適合するように、以下のように自動的に変更されます。

  1. 「トランザクションモード」、「トランザクション開始」、「ロック方式」、「タスクタイプ」などの特性をチェックします。

  2. もし設定が上記制限規則に適合していなければ、この制限規則を満たし、かつトランザクションが最小になるような設定に「トランザクション開始」特性が設定されます。

  3. もし現在の設定で制限規則をすでに満たしている場合には、設定は変更されません。

参照

トランザクション開始（遅延トランザクション）


タスク特性 データ 空のデータビューを許可

空のデータビュー許可

プログラム > タスク特性 > データ

データビューにレコードが全くないメインソースを使用してタスクが実行される場合でも、現在のタスクを実行し続ける（終了しない）ことができます。

この特性は、[RM互換]ロジックユニットがない照会または修正モードのオンラインタスクまたはリッチクライアントタスクで有効です。

上記の条件が満たされていて、この特性が「Yes」に設定された場合、以下のように動作します。

  • タスクモードは変更されません（登録モードになりません）。

  • データが割り当てられているコントロールにはパークできません。

  • これらの項目の値は、[タスク前]で定義された値になります。

  • これらの項目の代入値は無視されます。

  • フォームの上にパーク可能なコントロールがある場合、キャレットはそこに置かれます。存在しない場合は、キャレットはどこにもパークしません。.

  • [レコード前]と[レコード後]は実行されません。

  • リンクは実行されません。

  • [データビューが空]イベントが実行されます。（この[イベント]ロジックユニットにロジックを定義することができます。）

  • データビューに1レコードが存在するタスクの照会モードと同じように、[次行]などのイベントは動作します。

  • [サブフォーム]コントロールはパーク可能ではありませんが、通常と同じように動作します。

  • [ツリー]コントロールはパーク可能ではありませんが、ツリーは表示され、コンテキストメニューも有効になります。

  • EmptyDataView関数は、Trueを返します。

参照

データビューが空 イベント

EmptyDataView関数


タスク特性 データ キャッシュ範囲

キャッシュ範囲

プログラム > タスク特性 > データ

タスクのメインソースで使用するキャッシュ範囲を指定します。

この特性には、以下の４つの値のいずれかが使用されます。最初の２つは遅延トランザクションでも利用可能です。

  • P=位置 ……キャッシュはフェッチしたレコードの位置に関する情報を保持します。この設定は、テーブルをメインソースとして使用する場合にのみ実行されます。次に後方スクロールを行うと、レコードの物理的な位置が読み込まれ、データが再びフェッチされます。

  • D=位置とデータ…… 位置のほかに、レコードの実際のデータがキャッシュされます。事前にフェッチされているデータを読み込む場合には、キャッシュにすでに保存されている値が表示されます。

  • N=なし……キャッシュは行われません。

  • T=メインソースに依存……メインソースの[データソース特性]の[キャッシュ範囲]の指定に依存します。

参照

データ管理


タスク特性 データ ビュー事前読込

ビュー事前読込

プログラム > タスク特性 > データ

この特性は、事前にデータビュー全体を読み込むために使用されます。

  • Yes …… データビュー用にテーブルのレコードがすべて事前に読み込まれます。

  • No …… テーブルのレコードは、最初の処理分のみ読み込まれません。

この特性は、[キャッシュ範囲]特性が、「位置とデータ」または「メインソースに依存」に設定されている場合のみ有効になります。

[ビュー再表示]イベントを実行すると、再度テーブルの内容が事前読み込みされます。

タスクの[ビュー事前読込]が「Yes」に設定された場合、[ツリー]コントロールに対するこの特性も「Yes」と見なされます。

スクロールバーのつまみ

この特性は、スクロールバーのつまみの位置を決めるためにも利用できます。 スクロールバーのつまみは、実行中のタスクが取り出したレコード数に基づいて位置を決定されます。

タスクがオープンされると、テーブルに表示するレコードとして最初の一式を読み込み、その内容に基づいてテーブル全体の大きさが決定されます。そして、エンドユーザがレコードをスクロールすると、つまみ用のレコードサイズが随時更新されます。

スクロールバーのつまみの位置を適切に表示させるためには、これらのレコードを事前に読み込む必要があります。

テーブルのつまみは、常にレコード数に反映されます。レコードが追加されたり、削除されると、つまみ用のレコードサイズも増えたり減ったりします。


タスク特性 データ ロック方式

ロック方式

プログラム > タスク特性 > データ

この特性は、オンラインタスクとバッチタスクの両方で利用することができます。現行タスクが処理しているレコードに他のユーザがアクセスしないようにするためにMagicがロックをかける時期と、メモリ内で保持している情報に関して制御するかどうかを指定できます。

ロックの検証は、[更新レコードの識別]特性の指定内容に基づいて実行されます。この特性は、レコードを更新するために、Magicがレコードの再読込をどのように行うかを指定するものです。

この特性の値としては、次のいずれかが指定できます。

  • I=即時……レコードが読み込まれると同時に、そのレコードにロックがかけられます。この場合、検証は行われません。ロックは、解除されるまで有効です。バッチタスクではこの設定がデフォルトです。この方式は、データの完全性を増大させますが、並行性を減少させることになります。マルチユーザ環境のオンラインタスクでは、ユーザが同じプログラムを使い続ける時間が予期できないため、この設定にしておくと、レコードのロックが異常に継続することがあります。この値は物理トランザクションにのみ適用されます。

  • O=入力時……ユーザがレコードの更新を始めた時に、ロックがかけられます。更新を始めた時とは、オンラインタスクの場合、入力カラムの先頭に文字を入力したり、チョイスコントロールで値を選択した場合にあたります。バッチタスクの場合は、ユーザによる操作がないため、[レコード後]や[レコード前]で実行される最初の[項目更新]処理コマンド、あるいはタスクやプログラムを最初に呼び出す際にロックが実行されます。このロック方式では検証が行われます。この値は遅延トランザクションと物理トランザクションに適用されます。
    オンラインタスクでは、この設定がデフォルトです。デフォルトのオンラインタスクは、[トランザクションモード]特性が｢遅延｣で[ロック方式]が｢なし｣になります。

注意：

  • デフォルトは、MAGIC.INIファイルの｢SpecialDefaultTransactionMode｣の設定によって変更することができます。

  • 遅延トランザクションの場合、データベースに対して物理ロックを行わないため、Magicエンジンを経由してロックが行われます。詳細は、Magicロックを参照してください。

  • 入力時ロックでは、[更新レコードの識別]特性を使用した修正検証が必要となります。Magicは以下の場合にロックを行います。

  • 入力カラムが修正された場合

  • [ロック]特性が｢Yes｣に設定された[コールタスク/プログラム]処理コマンドが実行された場合

  • [強制更新]特性が｢Yes｣に設定された[項目更新]処理コマンドが実行された場合

  • [フォーム入力]処理コマンドが実行された場合

  • イベントによってプログラムが実行された場合。イベントのデータビューがロックされます。

  • B=更新時……Magicがロックするレコードは、実際にデータベースに書き込まれる前のレコードに限られます。対話レベル（オンライン）と[レコード後]（オンライン、バッチ）の実行中に、ロックがかけられることはありません。ロックの検証段階でエラーが発生すると（レコードを読み取った後で別のユーザがそれを更新した場合）、更新は実行されず、その旨を報告するメッセージが表示されます。現在のタスクによって呼び出されたサブタスクは、他のテーブルに対して情報を更新していることがあり、そのため現行レコードがディスクに対して更新されていないとデータの整合性に問題が発生します。データの整合性で問題が生じないようにするため、この値を使用する時は注意してください。基礎となるデータベースでロック処理による負荷が大きい時や、検証に失敗しても、タスクの構造上、データの整合性を維持できる時に限って使用するようにしてください。この値は物理トランザクションにのみ適用されます。

  • N=なし……レコードにロックはいっさいかけられません。このため、他のクライアントがアクセスして更新したばかりのレコードを更新してしまい、データの整合性が失われる可能性があるため、このオプションの設定は、注意して使わなければなりません。オンラインタスクのデフォルトです。

注意：

[トランザクションモード]が「O=なし」の場合、[トランザクション開始]特性は無効になります。

参照

マルチユーザ環境


タスク特性 データ エラー発生時

エラー発生時

プログラム > タスク特性 > データ

エラー発生時のデフォルトの対応方法を指定します。「R=復旧」または「A=アボート」のいずれかを指定します。

通常は、オプションを適切に選択することで、エラー処理のための特別なユニットは必要ありません。デフォルトのオプションでは対応が適当でない場合に、エラーイベントのユニットを作成することでデフォルト設定を変更します。

  • A=アボート……エラーが発生すると、現在のトランザクションがロールバックされます。
    物理トランザクションおよび遅延トランザクションのいずれの場合にも、現在のデータビューを削除し、エラーが発生したタスクをアボートします。
    この方式は、「ロックエラー」や「不正ログオン」のような、エンドユーザが回復できるエラーに対しては、適用されません。

  • R=復旧……できる限り現在のデータビューを維持して現行タスクにとどまり、エンドユーザがエラーから回復できるようにします。復旧を使用すると、エンドユーザはエラー発生後でもアプリケーション内で作業を続行することができます。
    この方式では、「ロックエラー」や「最大接続数超過」のエラーなどに対しては、 エンドユーザの介入なしに、Magicは自動的に処理を繰り返します。

参照

エラー処理


タスク特性 データ SQL SQLステートメントの出力

SQLステートメントの出力

プログラム > タスク特性 > データ

[SQLステートメントの出力]には、タスクによって作成されたSQLステートメントが表示されます。メインソースがSQL系でないDBMSであったり、メインソースが指定されていない場合、ここは無効になっているか、何も表示されません。

テキスト領域は表示のみで入力はできません。表示されているテキストをクリップボードにコピーすることは可能です。


タスク特性 オプション

[オプション]タブ

プログラム > タスク特性

ここでは、実行モードの際に[オプション]メニューで有効になる処理モードを指定できます。これは、タスクの初期モードとして指定できるモードの設定にもなります。

[オプション]タブの全ての特性は、「Yes」、「No」または式で指定します。式で指定した場合は、実行モード時に動的に指定されます。

注意：

ここで「No」と指定された処理モードをが[初期モード]特性で指定されている場合、タスク実行時にエラーメッセージが表示され、タスクが終了します。

実行モード | エンドユーザ機能
オプション 修正 登録 削除 照会 位置付 範囲 | インデックス変更 ソート 入出力ファイル インデックス最適化 照会モード位置付 データ出力


タスク特性 オプション メニュー使用

オプション

プログラム > タスク特性 > オプション

この特性を「No」にすると、エンドユーザ用のオプションメニューが無効になります。つまり、タスクは初期モードで動作し、その初期モードをエンドユーザが変更できなくなります。

オンラインタスクのデフォルトは「Yes」、バッチタスクのデフォルトは「No」です。

このオプションは、オンラインかバッチタスクでのみ有効です。


タスク特性 オプション 修正

修正 (デフォルト:Yes)

プログラム > タスク特性 > オプション

この特性を「No」にすると、エンドユーザは修正モードが使えなくなります。


タスク特性 オプション 登録

登録 (デフォルト:Yes)

プログラム > タスク特性 > オプション

この特性を「No」にすると、エンドユーザは登録モードが使えなくなります。


タスク特性 オプション 削除

削除 (デフォルト:Yes)

プログラム > タスク特性 > オプション

この特性を「No」にすると、エンドユーザは削除モードが使えなくなります。


タスク特性 オプション 照会

照会 (デフォルト:Yes)

プログラム > タスク特性 > オプション

この特性を「No」にすると、エンドユーザは照会モードが使えなくなります。


タスク特性 オプション 位置付

位置付 (デフォルト:Yes)

プログラム > タスク特性 > オプション

この特性を「No」にすると、エンドユーザは位置付が実行できなくなります。また、照会モードでの自動位置付処理が実行されなくなります。

このオプションは、オンラインかバッチタスクでのみ有効です。


タスク特性 オプション 範囲

範囲 (デフォルト:Yes)

プログラム > タスク特性 > オプション

この特性を「No」にすると、エンドユーザは範囲の指定ができなくなります。

このオプションは、オンラインかバッチタスクでのみ有効です。


タスク特性 オプション インデックス変更

インデックス変更 (デフォルト:Yes)

プログラム > タスク特性 > オプション

この特性を「No」にすると、[インデックス]の切り替えができなくなくなります。また、自動インデックス最適化も行われなくなります。

このオプションは、オンラインかバッチタスクでのみ有効です。


タスク特性 オプション ソート

ソート (デフォルト:Yes)

プログラム > タスク特性 > オプション

この特性を「No」にしておくと、エンドユーザはソートが実行できなくなります。

このオプションは、オンラインかバッチタスクでのみ有効です。


タスク特性 オプション 入出力ファイル

入出力ファイル (デフォルト:Yes)

プログラム > タスク特性 > オプション

この特性を「No」にすると、エンドユーザは入出力ファイルの指定が変更できなくなります。

このオプションは、オンラインかバッチタスクでのみ有効です。


タスク特性 オプション インデックス最適化

インデックス最適化 (デフォルト:Yes)

プログラム > タスク特性 > オプション

[位置付/範囲]特性で指定されている項目を判断し、最適なインデックスを検索します。指定されている項目のいずれかがインデックスのセグメントに含まれ、使用中のインデックスのセグメントにその項目が含まれない場合、使用中のインデックスを[位置付/範囲]において指定されている項目が第一セグメントとなるインデックスに自動的に変更します。その項目は、そのインデックス内で唯一のデータ項目であっても構いません。

この特性を「No」にしておくと、インデックス最適化処理ができなくなります。


タスク特性 オプション 照会モード位置付

照会モード位置付 (デフォルト:Yes)

プログラム > タスク特性 > オプション

この特性を「No」にすると、照会モードでの自動位置付処理が行われなくなります。

このオプションは、オンラインかバッチタスクでのみ有効です。


タスク特性 オプション データ出力ウィザード

データ出力 (デフォルト:No)

プログラム > タスク特性 > オプション

この特性を「Yes」にすると、データ出力ウィザードが有効になります。このオプションはオンラインタスクでのみ有効です。


タスク特性 拡張

[拡張]タブ

プログラム > タスク特性

[拡張]タブには以下の特性があります。

並行性 | サーバでの動作
並行実行 メインプログラムの初期化 グローバル変数の複写 単一インスタンス | SOAPヘッダ 作成コンテキストの保持 チャンクサイズ（式） 終了時URL


タスク特性 拡張 並行実行

並行実行

プログラム > タスク特性 > 拡張

この特性は、他の実行プログラムと並行して新しいコンテキストでタスクが実行するかどうかを指定します。

リポジトリ入力中は、この特性は「No」に設定されます。

ブラウザタスクをオンラインタスクやバッチタスクに変更した場合、この特性は「No」に設定されます。

[並行実行]特性が設定されたプログラムが呼び出された場合、全てのGUI要素は無視され、プログラムは別のコンテキストで実行されます。

[並行実行]特性が設定された場合、[フォーム特性]の[ウィンドウタイプ]特性の「D=デフォルト」、「S=SDI」、「C=子ウィンドウ」、「P=分割子ウィンドウ」、「F=フローティング」、「M=モーダル」、「T=ツール」、「M=MDI調整」の各オプションは有効です。

並行実行が設定されたプログラムには、以下の特性が無効になります。

  • 戻り値（[タスク特性]の[汎用]タブ）

  • ウィンドウ消去（[タスク特性]の[インタフェース]タブ） での「No」の設定

  • 初期モード（[タスク特性]の[汎用]タブ） での「P=親と同じ」の設定

すでにロードされているすべてのコンポーネントは、新しいコンテキスト内で再度ロードされます。しかし、新しい（[即時有効]特性がFalseにされている）コンポーネントが、新しいコンテキスト内でロードされた場合、そのコンテキストでだけ利用可能です。

注意：

  • 並列プログラムがサーバで実行されるたびに、別スレッドが使用されます。これは、同時に実行することのできる並列プログラム数がライセンスで定義されたスレッド数やMagic.iniで定義された同時ユーザ数のどちらかより少ない値で実行されることを意味しています。

  • エンジンがクライアントライセンスで実行された場合、同時に実行することのできるバッチプログラム数は、ライセンスで指定される数に基づきます。

  • プログラムが、データ項目やコントロールの[選択プログラム]特性を使用して呼び出された場合、[並行実行]特性は無視され、プログラムはMDI（MDIで実行した場合）またはフローティング（SDIで実行した場合）で実行されます。


タスク特性 拡張 メインプログラムを初期化

メインプログラムの初期化

プログラム > タスク特性 > 拡張

新しいコンテキストのメインプログラムが実行されるか、コピーされるかを指定します。

この特性は、[並列実行]特性がチェックされた場合のみ有効です。

この特性がチェックされた場合、メインプログラムが新しいコンテキスト内で実行されます。全てのコンポーネントが読み込まれます（[即時有効]がチェックされている場合）。新規コンテキスト内で「オンデマンド」で初期設定されるコンポーネントは、必要な時にコンテキスト内で初期設定され、他のコンテキストに影響を及ぼしません。

プログラムがメニューまたはリクエストから呼び出される場合、データ項目は「メイン」のコンテキストからコピーされます。

この特性がチェックされない場合、メインプログラムは実行されず、新規コンテキスト内のメインプログラムの変数は、呼出したコンテキストのメインプログラムの項目値がコピーされます。

注意：

この特性がチェックされない場合、メインプログラムの[タスク前]ユニットは実行されません。しかし、[タスク後]ユニットはコンテキストがクローズされる時に実行されます。

BLOB型項目の動作については、「BLOB項目」のトピックを参照してください。


タスク特性 拡張 グローバルパラメータを複写

グローバル変数の複写

プログラム > タスク特性 > 拡張

（SetParam関数を使用して定義する）グローバル変数を新規コンテキス内でどのように初期化するかを指定します。

この特性は、[並列実行]特性がチェックされた場合のみ有効です。

この特性をチェックすると、グローバル変数の値をコピーすることができます。コピー後は、個別に存在することになります。一方のコンテキスト内の値を変更しても、他方のコンテキストには影響しません。

プログラムがメニューまたはリクエストから呼び出される場合、パラメータは「メイン」のコンテキストからコピーされます。

プログラムがメニューから呼ばれるた場合、パラメータは、[ソースコンテキストメニュー]特性に基づいて、メインのコンテキストまたは現在のコンテキストからコピーされます。

SharedValGetとSharedValSet関数を使用することで、全てのコンテキストで1つのグローバル変数を共有させることができます。

BLOB型項目の動作については、「BLOB項目」のトピックを参照してください。


タスク特性 拡張 単一インスタンス

単一インスタンス

プログラム > タスク特性 > 拡張

並列起動タスクを使用し、プログラムを再度呼び出した場合、新しいインスタンスでプログラムはオープンされます。

これは、Internet Explorer（以下、IEと略します。）を起動する場合の例です。

最初に、IEを起動した場合、1つのインスタンスがオープンされます。インスタンスがオープンされた時に、再度IEを起動します。２番目のインスタンスがオープンされます。しかし、時によっては、別にインスタンスをオープンしたくない場合があります。

２番目も、同じインスタンスで起動させたい場合、この特性をチェックします。

この特性がチェックされた場合、プログラムが２回目に起動されると、フォーカスはすでに実行されているインスタンス上に設定されます。しかし、（データビューの準備など）初期設定の処理は実行されません。

この特性は、オンライン、バッチでのみ有効です。

[単一インスタンス]特性をチェックすると、タスクは以下のように動作します。

  • タスクがまだ実行されてない状態で呼び出すと、タスクは実行されます。[コールプログラム]や[コール式]、[コール公開名]の各処理コマンド、やメニューや[選択プログラム]特性はこの特性に影響されます。

  • タスクがすでに実行されている場合、フォーカスはすでに実行中のタスクに設定されます。[プログラム再呼出]イベントは、フォーカスがタスクに設定されたことを示すために起動されます。


タスク特性 拡張 ヘッダ

SOAPヘッダ

プログラム > タスク特性 > 拡張

[SOAPヘッダ]特性にはデータ項目を指定します。ここには、コンシューマから受け取った（リクエストの）ヘッダ情報が格納されます。また、任意の数の（応答の）ヘッダブロックをコンシューマに渡します。

[SOAPヘッダ]特性の内容はEDEV_SOAP_HEADERSという名前のルート要素を持ったXMLドキュメントです。このXMLドキュメントには、1つ以上のヘッダブロックを含める必要があります。

この特性はバッチプログラム（タスクツリー上のルートタスク）でのみ有効です。

この特性から項目一覧にズームし、BLOB型、文字型およびUnicode型の項目を選択してください。

実行時の考慮事項

Webサービスとして動作するプログラムに[SOAPヘッダ]特性が定義されている場合、受信リクエストのすべてのヘッダ内容がこの項目内に自動的に格納されます。

リクエスト処理の完了時にヘッダ項目の内容は、コンシューマに返されます。ヘッダをコンシューマに返さないようにするには、起動されたプログラムでヘッダ項目をNULLにする必要があります。

ヘッダ項目が定義され、項目がNULLではなく、XMLルート要素の名前がEDEV_SOAP_HEADERSでない場合、タスクはアボートします。その際、ヘッダ処理に失敗しましたというエラーが発生し、エラーログに書き込まれます。


タスク特性 拡張 コンテキストの保持

作成コンテキストの保持 (デフォルト:No)

プログラム > タスク特性 > 拡張
Web 開発 > 動的Webページ > コンテキスト管理

「Yes」を指定すると、バッチタスクかオンラインタスクでリクエストを受け取るとコンテキストをオープンし、継続するリクエストに対してそのコンテキストを保持します。この特性は、バッチまたはオンラインプログラムのみ有効です。サブタスクやブラウザプログラムでは無効になります。

この特性は、基本的にはバッチプログラムで使用されることを前提にしています。ただし、デバッグ用としてオンラインプログラムでも利用できるようにしています。

この特性を使用した場合、コンテキストはブラウザクライアントプログラムと同じように[コンテキストの非稼働タイムアウト]の値を受け取ります。この値は、リクエストの処理が完了した時点でリセットされます。

コンテキストリクエストには、以下のHTTPパラメータを含めることができます。

  • CTX

  • TRMCTX

参照

クライアント側ID


タスク特性 拡張 コンテキストの保持 CTX

CTX

プログラム > タスク特性 > 拡張 > コンテキストの保持

CTX HTTPパラメータは、サーバ上に保存されるコンテキストIDです。

例：

http://MyServer/Magic100Scripts/Mgrqisipi100.dll? APPNAME=MyApp&PRG NAME=MyProg&CTX=9755586289880

CTXコンテキストID は、GetParam関数やCTXGetId関数を使用して、現在のURLによって作成されたたタスクによって受け取ることができます。

実行時、以下のように動作します。

  • コンテキストは存在しているが非稼働（ペンディング）……CTXパラメータで設定されたコンテキストは存在していますが稼働していない場合、コンテキストは稼働し、要求されたプログラムはコンテキスト内で実行されます。

  • コンテキストは存在しているが稼働中（実行中）……特定のコンテキスト用のリクエストが送信され、コンテキストがそのリクエストに応答した場合、送信されるリクエストは前のリクエスト処理が完了するまで保持されます。複数のリクエストが同じコンテキスト内で実行待ちになっている場合、到着順に随時処理を行います。ペンディング中のリクエストがタイムアウトを超えた場合、リクエストの処理は失敗します。

  • 指定したコンテキストが存在しない……リクエストは失敗し、次のエラーメッセージが表示されます。

-197, Context not found.

  • コンテキストが指定されていない…… CTXが指定されていない場合、リクエストは新しいコンテキストをオープンします。

注意：

コンテキストのオープンとともに、バッチやブラウザプログラムは、CTXパラメータを使用して実行されます。


タスク特性 拡張 コンテキストの保持 TRMCTX

TRMCTX

プログラム > タスク特性 > 拡張 > コンテキストの保持

TRMCTX HTTPパラメータには、Yまたは、N を指定します。

例：

http://MyServer/Magic100Scripts/Mgrqisipi100.dll? APPNAME=MyApp&PRG NAME=MyProg&CTX=9755586289880&TRMCTX=Y

TRMCTX パラメータは、リクエストにCTXパラメータが指定されていて、サーバ上にコンテキストが存在している時のみ有効です。

リクエストによってコンテキストが定義され、 TRMCTX=Y が指定されている場合以下のように動作します。

  • 要求されたプログラムは、設定されたコンテキスト内で実行されます。

  • 先頭のプログラムが完了した場合、コンテキストはクローズされます。ブラウザクライアントタスクは、突然クローズされることに注意してください。


タスク特性 拡張 コンテキストの保持 クライアント側ID

クライアント側ID

プログラム > タスク特性 > 拡張 > コンテキストの保持

クライアントを識別するIDがないと、あるユーザが使用した有効なコンテキストIDを、別のユーザが取得して実行する可能性があります。

これを避けるために、以下のようなクライアントの環境変数を利用することができます。

  • REMOTE_ADDR……クライアント側のIPアドレス

  • REMOTE_HOST……クライアント側のホスト名

  • REMOTE_USER……クライアント側のユーザ名

  • HTTPS, SSL_CLIENT_KEY_SIZE……SSL関連の情報

  • ユーザ定義のCookieの項目

クライアントIDの認証は、サイトごとに変更することが可能です。WebサイトがWebサーバのログオン機能を利用する場合は、クライアント側のユーザ名を使用するだけで十分と思われます。

WebサイトがWebサーバ認証をサポートしない場合は、クライアントIDはクライアント側のIPアドレス、ホスト名や他の識別情報で定義することができます。

クライアント側のIDは、MGREQ.INI ファイルの[HttpSigVars]で指定することができます。


タスク特性 拡張 チャンクサイズ

チャンクサイズ（式） (デフォルト:0)

プログラム > タスク特性 > 拡張

この特性は、ブラウザタスクとリッチクライアントタスクにのみ関連し、一度にクライアントに送信するレコード数を表す式を指定します。これにより、新しいレコードやページを表示する時にローカルのキャッシュを参照し、アプリケーションサーバへ戻る回数を減らすことにより、ネットワークの負荷を軽減します。この特性には、数値が返る式を指定します。この式の評価はタスクを初期化する時点で行われます。

例えば、この特性が「100」に設定された場合、タスク起動時にアプリケーションサーバから最初の100レコード分がクライアントに渡されます。これにより、エンドユーザがローカル上で最初の100レコードが参照できるようになります。エンドユーザが、指定されたレコード数を越えてスクロールしようとした場合、クライアントはサーバにアクセスし、追加の100レコードを受け取ります。

受け取ったレコードデータは、ローカルキャッシュとしてクライアントに蓄積されます。エンドユーザがテーブルの先頭か末尾に移動した場合、ローカルキャッシュはクリアされ、１回の処理分の100レコードのみが格納された状態になります。

メインソースが定義されている場合

データビューが簡単なラインモードで表示されている場合、各レコードのサイズとエンドユーザによってスクロールされるであろうレコードの概算値に従って、必要なチャンクサイズが変更されます。頻繁に大量のレコードをスクロールするようにタスクが設計されている場合は、チャンクサイズを増やす必要があります。またレコードサイズが大きい場合は、チャンクサイズは小さくすることを推奨します。これによって各データのチャンクによて送信されるデータ量を減らすことができます。

チャンクサイズが指定されていない場合、デフォルト値は「30」になります。

メインソースが定義されていない場合

メインソースが定義されていないタスクは、レコードを取得する必要がありません。1レコードのみを仮想レコードとして提供するだけで十分です。このようなタスクは、［チャンクサイズ］特性を「1」に設定することを推奨します。チャンクサイズを「1」より大きな値を設定した場合、タスクは不要な仮想レコードを取得するように動作するためタスクの起動に時間がかかる場合があります。

チャンクサイズが指定されていない場合、デフォルト値は「1」になります。


タスク特性 拡張 終了時URL

終了時URL

プログラム > タスク特性 > 拡張

この特性は、ブラウザタスクにのみ関連します。

ブラウザタスクの終了時に実行するハイパーリンクを指定します。[ハイパーリンクの設定]ダイアログでは、Magicのプログラムだけでなく、URLも指定できます。これは内部的な終了アクションが発行された場合に実行されますが、ブラウザを終了した場合には実行されません。


タスク特性 拡張 終了時URL ハイパーリンク設定

ハイパーリンクの設定

プログラム > タスク特性 > 拡張 > 終了時URL

フォームをHTTPサーバに送信する場合や、ハイパーリンクをクリックしてMagicプログラムを呼び出す場合に、使用するURLを定義することができます。

[終了時URL]特性からズームすることで、[ハイパーリンク]ダイアログにアクセスすることができます。

Magicのハイパーリンクでは、以下のタイプのうちどれか1つを指定できます。

Magicプログラム

「M=Magicプログラム」を選択すると、以下の特性値を指定できます。

  • Magicアプリケーション（プロジェクト/アプリケーション）

  • 公開名

  • パラメータ

  • 出力先フレーム

詳細は、「Magicプログラム」を参照してください。

URL

「U=URL」を選択すると、以下の特性値を指定できます。

  • URL

  • 式

  • 出力先フレーム


タスク特性 拡張 終了時URL Magicプログラム

Magicプログラム

プログラム > タスク特性 > 拡張 > 終了時URL

[ハイパーリンク設定]ダイアログ内で、「M=Magicプログラム」を選択すると、他のプロジェクトのMagicプログラムに対するハイパーリンクを設定することができます。

フォームをHTMLに変換する際に、Magicは以下の内容を基にURLを作成します。

  • [環境設定]ダイアログの[アプリケーションサーバ]タブに設定されたHTTPリクエスタ

  • [ハイパーリンク設定]ダイアログで指定された[アプリケーション名]と[公開名]の各特性

  • [パラメータ]特性に指定されたパラメータ

ハイパーリンクタイプとして「M=Magicプログラム」を選択した場合、以下の特性値を定義することができます。

  • Magicアプリケーション …… 起動するプログラムが定義されているMagicのシステム（プロジェクト/アプリケーション）の名前を指定します。左側の入力欄からズームすると、[プロジェクトを選択]ダイアログが表示されます。ここからプロジェクト/キャビネットファイルを選択できます。また、右側の入力欄からズームすることで定義式で指定することができます。

  • 公開名 …… 起動するプログラムの公開名を指定します。左側の入力欄からズームすると、指定されたプロジェクト内のプログラム一覧が表示されます。ここからプログラムを選択できます。また、右側の入力欄からズームすることで定義式で指定することができます。

  • パラメータ …… プログラムに渡すパラメータを指定します。入力欄からズームすると、[パラメータ]テーブルが表示されます。ここからパラメータを選択できます。

  • 出力先フレーム ……プログラム内容を表示するフレーム名を指定します。


タスク特性 拡張 BLOB項目

BLOB項目

プログラム > タスク特性 > 拡張

BLOB型の項目は、以下の示したように動作します。

項目 | 動作
通常のBLOB | 新しいコンテキストにコピーされます。
ベクトル | 新しいコンテキストにコピーされます。
Javaの疑似参照 | [代入]特性に基づいて初期化されます。
バッファ | 新しいコンテキストにコピーされます。
バリアント | 新しいコンテキストにコピーされます。
BLOB テーブル(mtblset) | 新しいコンテキストにコピーされます。
OLE | コピーされません。 [インスタンス化]特性が「自動」に設定されている場合、新しいハンドルが新規コンテキスト内に作成されます。
ActiveX | コピーされません。 [インスタンス化]特性が「自動」に設定されている場合、新しいハンドルが新規コンテキスト内に作成されます。永続データは新規コンテキストにコピーされます。


[タスク]エディタ

プログラム >

[タスク]エディタには、データビュー、タスクロジック、およびフォームを定義するためのエディタが提供されています。

[データビュー]エディタ

このウィンドウは、タスク定義の一部としてタスクのデータビューインタフェースを定義します。データビューの要素には、テーブル、データ項目、ソート、および範囲が含まれています。[データビュー]エディタは、V9Plus以前のMagicのレコードメインや[DBテーブル]テーブルに相当するものです。

[データビュー]タブをクリックするか、[タスク環境]メニューの[データビュー]をクリックすることで[データビュー]エディタがオープンされます。

[ロジック]エディタ

このウィンドウは、タスクレベルのハンドラや[イベント]ロジックユニット、コントロールハンドラ、および関数などのタスクのロジックセグメントを定義します。[ロジック]タブをクリックするか、[タスク環境]メニューの[ロジック]をクリックすることで[ロジック]エディタがオープンされます。

[フォーム]エディタ

このウィンドウは、タスクのフォーム表示を定義します。[フォーム]タブをクリックするか、[タスク環境]メニューの[フォーム]をクリックすることで[フォーム]エディタがオープンされます。

参照

[タスク]エディタの動作


タスクエディタ 動作

[タスク]エディタの動作

プログラム > [タスク]エディタ

[タスク]エディタの動作について以下に説明しています。

エディタ間の切替

Ctrl+Tabを押下することで[タスク]エディタ内の現在のタブから別のタブに移動できます。タスクを作成して最初に[タスク]エディタに入った場合、[タスク]特性が自動的に開きます。[タスク]エディタを最初に開いた場合、[フォーム]エディタ以外は空の状態になっています。

一方のタブから別のタブに切り換えた時点で、現在の修正内容が確定されます。

  • [データビュー]エディタに切り換えるためには、Ctrl+1キーを押下するか[データビュー]タブをクリックしてください。

  • [ロジック]エディタに切り換えるためには、Ctrl+2キーを押下するか[ロジック]タブをクリックしてください。

  • [フォーム]エディタに切り換えるためには、Ctrl+3キーを押下するか[フォーム]タブをクリックしてください。

タスクエディタからロジックユニットの作成／アクセスを行う

右クリックで表示されるコンテキストメニューから[ロジック]を選択し、ハンドラを選択することで、[タスク]エディタから直接ロジックユニットを作成したり、アクセスすることができます。[ロジック]メニューは、[データビュー]エディタや[ロジック]エディタ、[フォーム]エディタのどこでも表示されます。[ロジック]メニューには、以下のオプションが表示されます。

  • コントロールに対応した既存のロジックユニット …… （現在のタスク内に定義された）コントロールに対応した既存のロジックユニットがすべて表示されます。[実行イベント]特性にイベントが定義された[プッシュボタン]コントロールの場合、このイベントが定義されたロジックユニットをグループ化した状態で表示されます。

  • 項目に対応した既存のロジックユニット …… この項目に対応する（現在のタスクに定義されている）ずべての[項目変更]ロジックユニットが表示されます。コントロール上でパークしている場合ば、そのコントロールに設定されている項目のロジックユニットが表示されます。

  • [イベント実行]処理コマンドに対応したロジックユニット …… このイベントに対応する（現在のタスクに定義された）既存のロジックユニットがすべて表示されます。

  • プッシュボタンの実行イベントに対応したロジックユニット …… [プッシュボタン]コントロールの[実行イベント]特性に定義されたイベントに対応するロジックユニットが表示されます。

  • 事前定義のロジックユニット …… [事前定義ロジック] テーブルに定義されたすべてのロジックユニットが表示されます。

  • 新規作成 …… そのコントロールや項目に対応する[イベント]ロジックユニットを作成します。コントロールや項目にパークしていない状態で実行すると、新規ヘッダ行が[ロジック]エディタの最終行に作成されます。

変更内容の保存

データビュー、ロジック、またはフォームの各エディタでの変更処理は、タスク全体が変更されたものとみなさます。一方のタブから別のタブに切り換えた時点では、変更内容の保存確認は表示されません。各エディタでの更新は、タスク全体の更新内容として保存されるか、キャンセルされます。

編集位置の保持

一方のエディタから他方に移動した場合、Magicはその時点での状態（行の位置、項目、ノードの拡張／縮小状態）を保持します。

例えば、[ロジック]エディタで、いくつかのロジックユニットを拡張表示したり、特定行や特定の項目でパークすることができます。この状態で他のエディタに切り替えた後、再び[ロジック]エディタに戻った場合、同じように表示され、同じ場所にパークされています。

エディタ内での複数行選択

  1. ある行の[#]カラムでパークしてください。

  2. Shiftキーを押しながら他の行をクリックすることで、連続した複数の行をマークすることができます。Shiftキーを押しながら上下のカーソルキーを押下しても複数選択できます。

  3. Ctrlキーを押しながら他の行をクリックすることで、連続的でない複数の行をマークすることができます。


範囲ウィンドウ

プログラム >

このウィンドウでは、範囲定義を行うための以下の3つのタブがあります。

  • 範囲 ……1つのデータビューの範囲を、最小値と最大値で指定したり、複数の範囲条件を1つの項目に指定したりすることができます。指定された範囲条件は、タスクが開く前に評価されます。

  • SQL Where句 ……このウィンドウでは、MagicまたはDB SQL Where句を使用して範囲を指定できます。Magicのビュー項目を使用したSQL文による範囲を指定することができ、指定内容は[Where句の全体表示]の表示で確認できます。

  • 式 …… 範囲式を使用することで、タスクのデータビューを微調整することができます。行は、タスクの[範囲]タブで指定された範囲条件によって最初にデータビューに含まれます。範囲式を使用することで、より複雑で、動的な条件に基づいた範囲定義ができます。この範囲条件は、レコードがフェッチされる度に評価されます。

参照

SQL Where句

式


範囲ウィンドウ 範囲

範囲

プログラム > 範囲ウィンドウ

このウィンドウでは、タスクのデータビューの範囲を定義します。以下のカラムがあります。

  • # …… 自動的に生成された内部識別番号

  • 項目 …… 対象とする項目のシンボル名を入力するか、ズームして[項目一覧]から選択します。

  • モード …… 範囲のタイプを指定します。以下のオプションがあります。

  • F=最小値

  • T=最大値

  • E=同じ

  • 式 …… ここから[式]エディタにズームして、範囲条件の値や式を定義することができます。

参照

SQL Where句

式


範囲ウィンドウ SQL Where句

SQL Where句

プログラム > 範囲ウィンドウ

[SQL Where句]を使用すると、Magicで自動的に生成されたWhere句のほかに、SQL固有のWhere句を使用できます。これにより、複雑な条件でレコードの範囲を指定したい場合にも、ダイレクトSQLを使用する必要性が少なくなります。

ここでは、Magicのデータ項目を使用してSQL構文に基づく範囲を記述することができます。ここで指定された範囲条件は、Magic SQL Where句で定義された範囲条件と連動して動作します。

指定されたWhere句の内容は、[Where句の全体表示]欄で確認することができます。

参照

Magic SQL 式

DB SQL

Where句の全体表示

Magic SQL WhereとDB SQL Whereの機能

Magic SQL WhereとDB SQL Whereの使用上の考慮事項

Magicの SQL関数

範囲

範囲式


範囲ウィンドウ SQL Where句 Magic SQL式

Magic SQL式

プログラム > 範囲ウィンドウ > SQL Where句

DB SQL Where句は、遅延トランザクションで実行されるタスクには使用できません。遅延トランザクションにSQL Where句を使用するためには、[Magic SQL式]で定義します。

この範囲は、1つの点を除き、既存のDB SQL Where句と変わりません。異なる点は、この範囲の定義にMagicの式のサブセットが使用されるという点です（既存のDB SQL Where句にはフリー形式のテキストが使用されます）。Magic エンジンでSQLに変換できる式だけを含めることができます。

例

例えば、次の場合を想定します。

AはEmployee.BirthDateというDB名の実カラムだとします。ここで[Magic SQL式]をA = Date（）と記述すると、[Where句の全体表示]領域には次のように表示されます。

Employee.BirthDate = Date（）

（テーブル名はリンク結合が発生した場合のみ追加されます）

ここでは、DB専用の関数ではなく、MagicのDate関数が使用されていることに注意してください。

この関数は、Oracleデータベースの場合、実行モードで次のように変換されます。

TO_Date（Employee.BirthDate, 'DD-MON-YY'） = TO_DATE（SYSDATE, 'DD-MON-YY'）

MS-SQL Serverの場合は、次のように変換されます。

CAST（CONVERT（CHAR, Employee.BirthDate,112） AS DATETIME） =CAST（CONVERT（CHAR, GETDATE（）,112） AS DATETIME）

2つの異なるDBに対し、同じタスクが式のプログラムを変更せずに実行されています。このように、Magicでは、データベースごとに、[Magic SQL式]が適切なSQLのWHERE句に変換されます。

参照

Magic SQL WhereとDB SQL Whereの使用上の考慮事項


範囲ウィンドウ SQL Where句 DB SQL

DB SQL Where句

プログラム > 範囲ウィンドウ > SQL Where句

DB SQL Where句は、SQLテーブルがメインソースに設定されている物理トランザクションモードのタスクに使用できます。遅延およびネスト遅延トランザクションモードのタスクには、この機能は使用できません。

DB SQL機能の目的は、プログラマーがSQLタスクを使用しなくても、Magicで自動的に生成されたWhere句のほかに、SQL専用のWhere句も使用できるようにすることや、Magicで生成されたWhere句を表示できるようにすることにあります。

ここでは、Magicのカラムを使用した、SQL構文によって範囲を記述します。記述された範囲条件は、Magic SQL Where句で定義された範囲条件に追加されます。

[DB SQL]特性でダブルクリックすると[項目一覧]が表示されます。ここには、[DB SQL]特性で使用できる全てのデータ項目が表示されます。

  • メインソースや結合テーブルの実データ……DBカラム名に置き換わります。

  • 親タスクのデータ項目……親タスクの値に置き換わります。

  • 現在のタスクの変数項目とその他の実データ……それぞれの値に置き換わります。

[DB SQL]は、DB SQL Where句が記述されているフリーテキストを参照します。[DB SQL]領域には、２種類の文字列が記述できます。詳細は次のとおりです。

項目番号（A、B、Cなど）の先頭に':'記号を付けて記述

このカラムがメインソースまたは結合テーブルである場合は、そのDBカラム名に置き換わります。その他の場合は、データの型に応じた値に置き換わります。文字型カラムの場合は、末尾の空白が削除され、引用符が付加されます。

項目番号（A、B、Cなど）の先頭に'@'記号を付けて記述

メインソースまたは結合テーブルの実データでなく、型が文字型の場合はこの方法を使用します。この場合、カラムが値に置き換わりますが、引用符は付加されません。

Magicは、カラムをその内容で置き換える場合、カラムの型と記憶域がチェックされます。文字型の場合は、必要に応じて引用符が付加されます。文字型カラムに引用符が付加されないように、記述するプログラムの全ての種類を有効にするには、@記号を接頭辞としてカラムに追加する必要があります。

例えば、次の場合を想定します。

「Employee. jobname」というDB名の実データ「A」と、「Vjobname」という名前で、実行時の値が「AB」の文字型カラム「B」があるとします。この時、DB SQLに以下のようにと記述します。

:A like 'B%'

この場合、表示は以下のようになります。

Employee. jobname like'B%'

（テーブル名はリンク結合が発生した場合のみ追加されます）

実行時の変換結果は、以下のようになります。

jobname like 'B% '

また、DB SQLに以下のように記述します。

:A like :B

この場合、表示は以下のようになります。

Employee. jobname like [ "Vjobname"]

（テーブル名はリンク結合が発生した場合のみ追加されます）

実行時の変換結果は、以下のようになります。

jobname like 'AB'

次に、「Vjobname」という記述（名前）で、実行時の値が「like」の変数項目「C」があったとします。DB SQLに以下のように記述します。

:A @:C :B

:この場合、以下のように置き換わります。

jobname [Voperation] [" Vjobname"]

実行時の変換結果は、以下のようになります。

jobname like'AB'

参照

Magic SQL WhereとDB SQL Whereの使用上の考慮事項

SQLでの範囲構文


範囲ウィンドウ SQL Where句 全体表示

Where句の全体表示

プログラム > 範囲ウィンドウ > SQL Where句

[DB SQL]特性で指定されたWhere句は、Magicで生成されたSQL文で使用されるとおりに、[Where句の全体表示]領域に表示されます。画面の下部の[表示]ボタンをクリックすると、[Where句の全体表示]が更新されます。

[Where句の全体表示]は、次の3つの部分で構成されます。

  • [データビュー]エディタ（メインソースのデータ項目や[結合／外部リンク]コマンドによるリンク項目の範囲指定が含まれます。）を使用したWhere句の式

  • AND句と共に括弧内に挿入され、[データビュー]範囲に連結されるMagic SQL Where句。

  • AND句と共に括弧内に挿入され、[データビュー]範囲に連結されるDB SQL Where句。遅延トランザクション内でタスクを実行している場合、DB SQL Where句は無視されます。Where句のこの部分は、タスクトランザクションモードが遅延またはネスト遅延以外の場合のみ追加されます。

カラム一覧に表示されているカラムは全て、Where句でカラム名に置き換わります。メインソースおよび結合テーブルの実データは、'Column DB name'または'A column DB name'書式に置き換わり、変数項目はそれぞれの名前に置き換わります。


範囲ウィンドウ SQL Where句 機能

Magic SQL WhereとDB SQL Whereの機能

プログラム > 範囲ウィンドウ > SQL Where句

タスクでデータビューが作成されると、MagicはWhere句を使用してSELECT文を作成します。

  • Where句の最初の部分は、データビュー内のカラムの範囲指定に基づいています。

  • ２番目の部分は、[結合／外部リンク]コマンドに基づきます。

  • ３番目は、Magic SQL Where句で、全てのSELECT文に追加されます。

  • ４番目は、DB SQL Where句で、全てのSELECT文に追加されます。

カラムの値は、タスクがオープンされた時に１度だけ評価され、再計算は行われません。

SQL Whereが使用されないのは、Magicで内部のGet Currentおよび「フック処理（ロック方式で制御）」のSELECT文が生成される場合だけです。これらの処理コマンドでは、位置インデックスによって行が取得されるので、SQL Whereは不要になります。

Unicode対応

Magic SQL Where句によって作成された構文は、式が評価された上でゲートウェイにUnicodeで送られます。

ゲートウェイが、Unicodeをサポートしない場合、デフォルトのコードページを使用してANSIに変換して送ります。

参照

Magic SQL WhereとDB SQL Whereの使用上の考慮事項


範囲ウィンドウ SQL Where句 考慮事項

Magic SQL WhereとDB SQL Whereの使用上の考慮事項

プログラム > 範囲ウィンドウ > SQL Where句

  • SQL Where句は、タスクの実行開始時に評価され決定します。この時には、タスクのデータ項目はまだ初期化されていないので、呼び出しタスクから渡されるパラメータ項目以外はデフォルトの値（文字型は空文字、数値型は0）となっています。したがって、Where句の中で使われる「:v」の形式でのパラメータは、パラメータ項目か、あるいは親タスクのデータ項目しか使用することができません。

  • BLOB型項目は、SQL Where句には使用できません。

  • MagicはSQL Where句をプログラムチェック対象にしていません。したがって、無効なSQLWhere句を使用すると、実行時にRDBMSからエラーメッセージが発行される場合があります。

  • Magicは、SQL Whereで使用される各カラムの型をチェックしません。各型がSQL Where文字列の対応位置に連結される文字列に変換されます。したがって、型を適切に使用することが重要になります。

  • [結合リンク]コマンドが使用された場合は、テーブル名にエイリアスが使用されます。したがって、[Table1.Column1]の代わりに、[A.Column1]が使用されます。カラム名が含まれるDB SQLに文字列が記述された場合は、そのテーブルに対応するエイリアスがカラム名の先頭に付加されます。

  • 末尾の空白は削除されます。

  • DB SQL Where範囲およびMagic SQL Where範囲は、[タスク前]の前に１度だけ評価されます。

参照

Magic SQL WhereとDB SQL Whereの機能


範囲ウィンドウ SQL Where句 Magic関数

MagicのSQL関数

プログラム > 範囲ウィンドウ > SQL Where句

Magic SQL で定義されたWhere句は、[DB SQL]に記述する Where句の機能と似ています。ただし、どのようなフリーフォームテキストにも使用できるDB SQL のWhere句と異なり、Magic SQL で指定できるWhere句は、MagicエンジンでSQLに変換できる関数に限られます。

Magic SQL Where句に使用できる関数には以下のものがあります。

文字関数 | 日付関数 | 算術演算子
Len Lower Upper LTrim RTrim Trim MID InStr & LIKE IN | Date Time AddDate AddTime Year Month Day Hour Minute Second Str Val | 加算 (+) 減算 (-) 乗算 (*) 除算 (/)
論理演算子 | 比較演算子 | NULL 関数
OR AND NOT | 等号 (=) より小さい (<) 以下 (<=) より大きい (>) 以上 (>=) 不等号 (<>) | NULL ISNULL
算術関数 | 三角関数 | 変換関数
ABS MOD LOG EXP Round | SIN ASIN COS ACOS TAN ATAN | ASCIIChr ASCIIVal DStr TStr


範囲ウィンドウ 式

式

プログラム > 範囲ウィンドウ

[範囲式]を使用することで、タスクのデータビューを微調整することができます。行は、タスクの[範囲]タブで指定された範囲条件によって最初にデータビューに含まれます。範囲式を使用することで、より複雑で、動的な条件に基づいた範囲定義ができます。この範囲条件は、レコードがフェッチされる度に評価されます。

例

  • 範囲式が「True」と評価された場合、その行はデータビューに含まれます。

  • 範囲式が「False」と評価された場合、その行はスキップされます。

  • 範囲式が指定されていない場合、「True」と評価されます。

範囲式は、次の場合に必要になります。

  • 範囲基準が、タスクの初期化時点で使用できない変数の値に依存する場合。

  • 範囲基準が、カラムの[範囲下限]と[範囲上限]だけで定義できないような複雑な場合。

注意：

[範囲式]はデータベースには送られません。Magicは、データベースから取り込まれたレコードをフィルタリングします。

以下の特性値を指定して範囲や位置付けの定義を行うこともできます。

範囲順序

位置付式

位置付順序

ポジション

方法

参照

範囲

SQL Where句


範囲ウィンドウ 式 範囲順序

範囲順序 (デフォルト:A=昇順)

プログラム > 範囲ウィンドウ > 式

[範囲順序]特性は、データビューに含める行の範囲の取得方向を、先頭行から始まる「昇順」にするか、または最後の行から始まる「降順」にするかを決定します。


範囲ウィンドウ 式 位置付式

位置付式

プログラム > 範囲ウィンドウ > 式

[位置付式]は、タスクの実行が開始される際に、データビューが特定のレコードから始まるように位置付ける場合に使用します。タスクが開始されると、Magicは、位置付式で「True」と評価されるレコードが現れるまで、データビューを先頭からスキャンします。「True」と評価されたレコードは取り出され、カーソルがそのレコードの上に置かれます。方向キーを使用してデータビュー内の前後に移動することができるようになります。

注意：

  • [位置付式]は、オンラインタスクとブラウザタスクでのみ関係します。

  • [位置付式]は、位置付け条件が1つの連続する範囲に限られない場合のような、検索条件が複雑な場合に使用してください。その他の場合は、項目の[範囲下限]特性または[範囲上限式]特性を使用した方が、処理速度が速くなります。

  • [位置付式]に含まれる全ての項目は、タスクの初期化時に評価されるため、特性の項目、または上位タスクの項目しか含まれない場合があります。

  • [位置付式]が指定されていない場合、カーソルは取得された最初のデータビューの行に位置付けされます。

  • オンラインタスクの開始時にデータビューの開始レコードが見つからない場合は、警告メッセージが表示され、カーソルがデータビューの先頭レコード、または次の直近値（存在する場合）に位置付けされます。


範囲ウィンドウ 式 位置付順序

位置付順序 (デフォルト:A=昇順)

プログラム > 範囲ウィンドウ > 式

この特性は、データビューの位置付けレコードを決定する際の検索方向を、先頭行から始まる昇順にするか、または最後の行から始まる降順にするかを指定します。特定の基準に一致した最後のレコードが必要な場合は、降順を指定します。例えば、データビューを日付でソートする時に、[位置付順序]を「D=降順」を使用して、この日付の最終トランザクションに位置付けします。

注意：

[位置付順序]は、[位置付式]または[範囲下限]/[範囲上限]の指定がなくても使用できます。


範囲ウィンドウ 式 ポジション

ポジション

プログラム > 範囲ウィンドウ > 式

位置に従ってレコードを表示したり、特定位置から開始される一連のレコードを表示することができます。この特性は、タスクのメインソースに対してのみ設定できます。リンクテーブルでは、位置に従った範囲の指定や位置付けはできません。

ポジションの動作の考慮事項

この特性にはBLOB式を使用して、タスクを開始または位置付ける先頭レコードの位置を示すことができます。

  • [ポジション]特性はタスクのメインソースのみ有効です。

  • この特性に、レコード位置としてBLOB型の戻り値が返る式を定義できます。

  • Magic には、レコードの位置を返す関数として、次の2つがあります。

  • CurrPosition ……現在のタスクのメインソースの現在のレコードの内部の位置を返します。

  • ErrPosition ……エラーが発生したレコードの位置を取得します。


範囲ウィンドウ 式 方法

方法 (デフォルト:O=このポジションで絞り込む)

プログラム > 範囲ウィンドウ > 式

[方法]特性は、[ポジション]特性が「0」以外の場合のみ有効になります。いったん[ポジション]特性を指定すると、次のオプションから[方法]特性を選択できるようになります。

  • O=このポジションで絞り込む……特定のレコードのみが表示されます。Magicではget currentコマンドが実行され、open cursorコマンドは実行されません。

  • F=このポジションから開始する……開始位置レコードから全てのレコードが表示されます。Magicでは、この位置を開始位置として、open cursorコマンドが実行されます。

注意：

上記2つの範囲オプションでは、選択処理コマンドの範囲、タスクの範囲式、およびこの条件の間に、AND演算子が使用されます。
また、このレコードが存在しない場合、レコードは何も表示されません。

  • L=このポジションに位置付ける……他の全てのタスク範囲に応じて、全てのレコードが表示され、特定の位置のレコードにカーソルが位置付けされます。
    項目の[位置付]特性、タスクの「位置付式]特性、およびこの条件の間には、AND演算子が使用されます。
    このレコードが存在しない場合、位置付けコマンドは失敗し、「該当するレコードがありません - 先頭に位置付けます。」という警告メッセージが表示されます。


入出力ファイル

プログラム >

Magicでは、入出力ファイルを定義することが可能です。これらのデバイスは、以下の処理に使用できます。

  • データを外部ファイルから入力する

  • GUIプリンタやファイルなどへのデータを出力する

[入出力ファイル]テーブルには、現行タスクで読み取り/書き込みに使用する入出力デバイスやファイルを定義することができます。各入出力ファイルを[フォーム出力]または[フォーム入力]処理コマンドで参照するには、それらをあらかじめ定義しておく必要があります。

[入出力ファイル]テーブルにアクセスするには、[タスク]メニューから[入出力ファイル]を選択します。

サブタスクはその親タスクで定義されている入出力ファイルにアクセスできます。サブタスクの[入出力ファイル]テーブルには、その上位タスクで定義されている全ての入出力ファイルが含まれています。

メインプログラムで定義された入出力ファイルは、全てのプログラムでアクセスすることができます。

[入出力ファイル]テーブルは、リッチクライアントタスクでは利用できません。

入出力ファイルの定義

[入出力ファイル]テーブルでは、[メディア]カラムで指定された内容に基づいて指定できるカラムの内容が異なります。

設定可能な各カラムの組み合わせ

メディア | プリンタ | アクセス | 書式 | 式/項目 | ダイアログ | 行数
G=GUI形式プリント | プリンタ名 | W=書出 | P=ページ | オプション | Yes、No、式 | N/A
P=テキスト形式プリント | プリンタ名 | R=読込 W=書出 A=追加 | P=ページ L=行 N=なし | オプション | N/A | オプション
C=コンソール | N/A | W=書出 A=追加 | P=ページ L=ライン N=なし | N/A | N/A | オプション
F=ファイル | N/A | R=読込 W=書出 A=追加 D=直接 | P=ページ L=ライン N=なし | 必須 | N/A | N/A
R=リクエスタ | N/A | W=書出 | L=行 | 必須 | N/A | N/A
D=XMLダイレクトアクセス | N/A | R=読込 | N=なし | オプション | N/A | N/A
V=項目 | N/A | R=読込 A=追加 W=書出 | N=なし | 必須(文字/BLOB項目) | N/A | N/A

入出力ファイルのオプションを設定するには、[編集/特性]（Alt+Enter）を選択して、[入出力特性]ダイアログを開きます。

参照

名前

メディア

プリンタ

アクセス

フォーマット

式／項目

ダイアログ

行


入出力ファイル 名前

名前

プログラム > 入出力ファイル

このカラムに入力される名前は、テーブルの認識用に使用されます。

入出力名は、論理名で指定することができます。INIPut 関数でこの論理名に対する実行名を指定することで、入出力名を動的に変更することができます。

入力された名前は、ドキュメント名としてOSのプリンタキューに表示されます。


入出力ファイル メディア

メディア (デフォルト:G=GUI形式プリント)

プログラム > 入出力ファイル

ファイルの物理的な入出力先（出力ファイルの出力先、または入力ファイルの入力元）を定義します。

指定できるパラメータは、以下の通りです。

  • G=GUI形式プリント

  • P=テキスト形式プリント

  • C=コンソール

  • F=ファイル

  • R=リクエスタ

  • D=XMLダイレクトアクセス

  • V=項目

「GUI形式プリンタ」や「テキスト形式プリンタ」、「コンソール」、「リクエスタ」では、必ずしも[式]カラムを定義する必要はありません。しかし、[式]カラムを指定した場合は、式の評価結果が出力先になります。


入出力ファイル メディア GUI形式プリンタ

GUI形式プリント

プログラム > 入出力ファイル > メディア

この入出力ファイル定義に基づいた入出力処理によって、GUIプリンタやディスクファイルに出力されるグラフィカルな情報を作成することができます。

注意：

GUIプリンタに出力するには、PCにプリンタドライバをインストールしておく必要があります。プリンタドライバがインストールされていない場合、代わりのオプションとして[メディア]カラムで「コンソール」を選択することができます。


入出力ファイル メディア テキスト形式プリンタ

テキスト形式プリント

プログラム > 入出力ファイル > メディア

テキスト印刷用ドライバを経由して、Magicの論理プリンタ（プリンタテーブル中に定義されているプリンタ）のいずれかに出力できます。式を定義してプリンタファイルをファイルにリダイレクトすることもできます。その場合、[式]カラムに式番号を指定し、実行時に有効なファイル名が返る式を定義します。


入出力ファイル メディア コンソール

コンソール

プログラム > 入出力ファイル > メディア

この設定では、出力内容がMagicのMDIウィンドウ用にフォーマットされ、コンソールにリダイレクトされます。ウィンドウの表示領域は、MagicのMDIウィンドウの寸法に従って定義されます。フォームの幅がMDIウィンドウの幅を超える場合、ウィンドウの幅はフォームの幅と同じになります。


入出力ファイル メディア ファイル

ファイル

プログラム > 入出力ファイル > メディア

入力、出力いずれかのファイルを定義します。ファイルのパスと名前は[式/項目]カラムで指定します。


入出力ファイル メディア リクエスタ

リクエスタ

プログラム > 入出力ファイル > メディア

リクエスタは、[コールリモート]処理コマンドやインターネットリクエスタによって起動されるアプリケーションのバッチタスクによって使用されます。出力結果は、起動されたタスクの終了と同時に、呼び出し元のタスクまたはWebブラウザに送り返されます。


入出力ファイル メディア XMLダイレクトアクセス

XMLダイレクトアクセス

プログラム > 入出力ファイル > メディア

XML関数（XMLCnt, XMLExist, XMLFind、XMLGet）を使用することによって問い合わせることのできるXMLファイルをアクセスする場合に使用します。

XMLInsert, XMLModify、およびXMLDelete関数を使用して、XMLの要素や属性を作成したり、修正したり、削除したりすることができます。

参照

項目


入出力ファイル メディア 項目

項目

プログラム > 入出力ファイル > メディア

入出力ファイルを使用して文字項目の送受信を行う場合に使用します。このオプションは、XMLファイルの保存や変換用としても使用できます。

[式]カラムには、BLOB項目を指定します。

[アクセス]カラムを「R=読込」にした場合、XMLCnt, XMLExist, XMLFindや XMLGet 関数で使用できます。

[アクセス]カラムを「W=書込」にした場合、XMLInsert, XMLModifyや XMLDelete 関数で使用できます。

[アクセス]カラムを「A=追加」にした場合、XMLInsert, XMLModifyや XMLDelete 関数で使用できます。

参照

フォーム出力処理コマンド

フォーム入力処理コマンド


入出力ファイル プリンタ

プリンタ

プログラム > 入出力ファイル

このカラムは、[メディア]カラムの値として「GUI形式プリント」または「テキスト形式プリント」を指定した場合にのみ関連します。ここには、[プリンタ]テーブルに定義されている論理プリンタのいずれかを指定します。

デフォルトとして、[プリンタ]テーブルに定義されている最初のプリンタの名前が表示されます。別のプリンタを選択するには、このカラムをダブルクリックして[プリンタ一覧]を表示し、必要なプリンタを選択するか、あるいはプリンタの名前を直接入力します。

実行時には、さまざまなエラー状態を示すエラーメッセージが表示されることがあります。例えば、「プリンタが接続されていません」、「プリンタの電源が入っていません」、「プリンタが選択されていません」、「用紙切れです」といったメッセージがあります。

プリンタエラーメッセージが表示されると、続いて[中断しますか？]ダイアログボックスが表示されます。ここで「Yes」を選択すると、プログラムはデータの最後まで処理が実行された後、処理が終了します。このほかの処理は全て無視されます。同時に、そのファイルに対するEOF（ファイル終了）ステータスが設定されます。EOFステータスは、EOF関数を使った[タスクの終了条件]式を設定することによって、タスクの処理を終了するのに使用されます。[中断しますか？]ダイアログボックスで「No」を選択した場合は、印刷処理が再試行されます。しかし、エラーが解消されていない場合は、再び[中断しますか？]ダイアログボックスが表示されます。


入出力ファイル プリンタ 一覧

プリンタ一覧

プログラム > 入出力ファイル > プリンタ

有効なプリンタが一覧表示されます。

参照

プリンタの設定


入出力ファイル アクセス

アクセス

プログラム > 入出力ファイル

ファイルを開く時のモードを定義します。指定できる値は以下のとおりです。

  • R=読込……ファイルを[読込]モードで開きます。ファイルに対する[フォーム入力]処理コマンドを[ロジック]エディタで定義した場合にこのモードを指定します。ファイルに対する[データ出力]処理コマンドは無視されます。
    [メディア]カラムで「XMLダイレクトアクセス」や「項目」を定義してXMLドキュメントを開く場合、XMLドキュメントを保存しないで挿入されたXML要素や属性を参照することができます。

  • W=書出……ファイルを[書出]モードで開きます。ファイルに対する[フォーム出力]処理コマンドを[ロジック]エディタで定義する場合にこのモードを指定します。書出アクセスの入出力ファイルに対する[フォーム入力]処理コマンドは無視されます。
    名前が式によって定義され同名のファイルがすでに存在する場合は、このファイルの内容は上書きされます。

  • A=追加……ファイルを[書出]モードで開きます。ファイルに対する[フォーム出力]処理コマンドを[ロジック]エディタで定義する場合にこのモードを指定します。このオプションの場合のみ、[フォーム出力]処理コマンドでテキスト項目を送ることができます。
    同名のファイルがすでに存在する場合、このファイルの末尾に追加されます。


入出力ファイル フォーマット

フォーマット

プログラム > 入出力ファイル

このカラムでは、出力ファイルへ自動的に書き出す制御文字、あるいは入力ファイル中で予期される制御文字を定義します。設定できる値は以下のとおりです。

  • P=ページ……「改ページ」制御文字がページの終わりに、また「改行」制御文字が行の終わりに付加されます。

  • L=ライン……「改行」制御文字が行の終わりに付加されます。「改ページ」制御文字は付加されません。

  • N=なし……「改行」「改ページ」制御文字が付加されません。


入出力ファイル 式／項目

式／項目

プログラム > 入出力ファイル

実行モードで使用する[式]エディタ内の式の番号を定義します。この式には、OSでのファイル名を指定します。

ファイル名にパスを含めたり、式に論理名を使用することもできます。このような場合は、Magicでは指定された条件に従って、読み込みまたは書き込みが行われます。式は、タスク初期化段階で評価されるため、タスク内では動的に変更できません。

[メディア]カラムが「項目」の場合は、ここには項目の番号を指定します。[項目一覧]にズームして選択することもできます。BLOB項目のみ指定できます。


入出力ファイル ダイアログ

ダイアログ (デフォルト:No)

プログラム > 入出力ファイル

このカラムの有効な値は、「Yes」、「No」、または「式」のいずれかです。

[ダイアログ]カラムは、[メディア]カラムが「GUI形式プリント」の場合にのみ有効です。

  • 「Yes」に設定された場合、タスクが入出力ファイルを開いた時に、Windowsの[印刷]ダイアログを表示します。ここで、エンドユーザは印刷特性を変更できます。

  • 「No」を指定すると、Windowsの[印刷]ダイアログは表示されず、印刷特性はエンドユーザの操作なしでプリンタに直接送られます。

  • 式を使用して、Yes/Noの設定を動的に選択できます。


入出力ファイル 行

行 (デフォルト:0)

プログラム > 入出力ファイル

このカラムは、[フォーマット]カラムの設定が[ページ]の時で、[メディア]カラムの設定が[テキスト形式プリント]または[コンソール]の場合のみ有効になります。

このカラムには、出力ファイルの1ページあたりの行数、つまり2つの連続する改ページと改ページの間の行数を指定します。デフォルト値は使用するプリンタによって異なります。詳細は、「[プリンタ]テーブル」を参照してください。デフォルト値は「0」で、この場合出力ページは60行になります。これには、ヘッダ領域（3行）とフッタ領域（3行）が含まれます。

[タスク特性]の[入出力ファイル]を「Yes」に設定しておくと、実行モードの時に[入出力ファイル]テーブルを表示させることができ、行数をエンドユーザが変更できます。


入出力ファイル 特性

入出力特性

プログラム > 入出力ファイル

[入出力ファイル]テーブルでAltl+Enterを押下すると[入出力特性]ダイアログが表示されます。ここには、以下の特性が設定できます。

用紙サイズ

ページヘッダフォーム

ページフッタフォーム

部数

式

印刷方向

印刷プレビュー

使用する入出力名

使用する文字セット


入出力ファイル 特性 用紙サイズ

用紙サイズ

プログラム > 入出力ファイル > 入出力特性

[メディア]カラムで「GUI形式プリント」を選択した場合、この特性が指定できます。出力する用紙のサイズをコンボボックスから選択してください。


入出力ファイル 特性 ページヘッダ

ページヘッダフォーム

プログラム > 入出力ファイル > 入出力特性

ここには、[フォーム]エディタに定義されたフォームのうちページヘッダとして使用するフォームを選択します。このフォームは、改ページするたびに自動的に出力されます。

注意：

帳票の印刷の場合、最初に入出力ファイルを開いたタスクからページヘッダとフッタが印刷されることに注意してください。また、自動的に印刷されるのは、現在印刷中のタスクのヘッダフォームだけです。最初に入出力ファイルを開いたタスクのヘッダは自動的に印刷されません。


入出力ファイル 特性 ページフッタ

ページフッタフォーム

プログラム > 入出力ファイル > 入出力特性

ここには、[フォーム]エディタに定義されたフォームのうちページフッタとして使用するフォームを選択します。このフォームは、改ページするたびに自動的に出力されます。

注意：

帳票の印刷の場合、最初に入出力ファイルを開いたタスクからページヘッダとフッタが印刷されることに注意してください。また、自動的に印刷されるのは、現在印刷中のタスクのヘッダフォームだけです。最初に入出力ファイルを開いたタスクのヘッダは自動的に印刷されません。


入出力ファイル 特性 部数

部数

プログラム > 入出力ファイル > 入出力特性

[部数]特性[メディア]カラムで「GUI形式プリント」が選択されている場合のみ有効です。グラフィックプリンタで印刷される帳票の部数を指定します。


入出力ファイル 特性 式

式

プログラム > 入出力ファイル > 入出力特性

ここには、グラフィックプリンタで印刷される帳票の部数を式で動的に指定することができます。[式]エディタに定義されている式の番号が入ります。

注意：

[部数]と[式]は、同時に有効にすることはできません。


入出力ファイル 特性 入出力方向

印刷方向

プログラム > 入出力ファイル > 入出力特性

ここでは、グラフィックプリンタから出力する帳票の印刷方向を指定します。縦方向か横方向かのどちらかを指定します。

縦方向の印刷はページの左側から右に出力され、横方向の印刷は、ページの先頭から最後の方向に出力されます。

注意：

入出力特性の[用紙サイズ]、[印刷方向]および[部数]の指定より、MGPRN ユーティリティでの指定が優先されます。


入出力ファイル 特性 印刷プレビュー

印刷プレビュー

プログラム > 入出力ファイル > 入出力特性

[印刷プレビュー]特性は、プリンタの出力先をMagicの印刷プレビューシステムに変更します。有効な値は[Yes]、[No]です。論理結果を返す式も使用できます。

印刷プレビューを使用すると、エンドユーザは帳票の出力内容をプレビュー表示で確認してから印刷することができます。この場合、出力開始時に指定されたプリンタに印刷されます。

[印刷プレビュー]特性は、[メディア]カラムが「GUI形式プリント」を選択している場合のみ使用できます。

[印刷プレビュー]特性には、2つの使い方があります。

  • エンドユーザが帳票の出力結果を表示し、プリンタを選択し印刷することが可能になります。有効な値は、Yes、No、および論理値が返る式です。[PDF]特性が「No」の場合、この機能が実行されます。

  • （デフォルトのPDFリーダを使用して）PDFファイルを表示します。[PDF]特性が「Yes」の場合、この機能が実行されます。

注意：

プレビュー表示では、プリンタ固有のマージンの設定を考慮しておりません。このため、左右上下の余白部分が実際の印刷結果と異なります。


入出力ファイル 特性 使用する入出力名

使用する入出力名

プログラム > 入出力ファイル > 入出力特性

[使用する入出力名]を使用すると、現在のプログラムで使用する入出力ファイルを別のプログラムでオープンされた入出力ファイルから指定できます。

ここからダブルクリックして[式]エディタを開き、実行時にオープンされる入出力ファイル名として評価される式を入力します。Magicは、ここで設定された名前の入出力ファイルを検索します。ファイルが検出された場合は、現在のタスクで使用されます。


入出力ファイル 特性 使用する文字セット

使用する文字セット

プログラム > 入出力ファイル > 入出力特性

この特性は、[メディア]カラムで「ファイル」または「リクエスト」を選択している場合にのみ関係します。

入出力ファイルの文字セットを定義します。選択できるオプションは以下の通りです。

  • A=Ansi …… 文字セットの変換は行われません。Magicでは内部的にANSI文字コードが使用されているためです。

  • O=OEM ……OEM2ANSI変換ファイルを使用して、ANSIからOEMにデータが変換されます。ファイルが定義されていない場合は、OSのコード変換機能を使用してコード変換が行われます。

  • U=Unicode …… ANSIからUnicodeにデータが変換されます。

  • T=UTF-8 …… ANSIからUTF-8にデータが変換されます。

Magicは内部のUnicode変換機能を使用しているため、「Unicode」に設定された場合、Magicはデータの変換処理を行いません。

｢ANSI｣または｢UTF-8｣に設定された場合、UnicodeからANSI/UTF-8に変換します。

｢OEM｣に設定された場合、UnicodeからOEM2Unicode変換ファイルを使用してOEMに変換します。ファイルが定義されていない場合、MagicはOSの変換機能を使用します。


[データビュー]エディタ

[データビュー]エディタは、タスク定義の一部としてタスクのデータビューインタフェースを定義します。データビューの要素には、ソーステーブル、データ項目、ソート、および範囲が含まれています。[データビュー]エディタは、V9Plus以前のMagicのレコードメインや[DBテーブル]テーブルに相当するものです。

[データビュー]エディタでは以下の処理を行うことができます。

  • タスクのメインソースやダイレクトSQLステートメントの定義

  • その他のデータソースのリンク定義

  • データソースのカラムや変数項目、およびパラメータ項目の定義

  • サブタスクで利用するデータソースの宣言定義

ここには、以下の２種類の行を入力することができます。

  • ヘッダ行 ……この行は、データソースのタイプを指定したり、データソースへのリンクを定義したり、データソースの宣言定義を行うことができます。各定義に対する特性値は、[特性シート]に表示されます。

  • 詳細行 …… この行はヘッダ行の下に表示されます。ここには、以下の項目を設定できます。

  • コメント

  • カラム …… メインソースが選択された場合のみ表示されます。

  • 変数

  • パラメータ

参照

メインソース特性

変数特性

リンク定義

埋め込みSQL

ソートテーブル


ヘッダ行

データビューエディタ >

先頭のヘッダ行では、メインソースを使用するタスクにするか、SQLコマンドタスクにするかを指定できます。

  • M=メインソース …… タスクのメインソース（データベース/XMLドキュメント）を指定します。

  • Q=SQLコマンド …… SQLタスクとして定義します。[SQLコマンド]ダイログを開いてSQLデータベースの情報を設定します。

コンテキストメニューから[ヘッダ行作成]を選択するかCtrl+Hを押下することで、次のヘッダ行を作成することができます。２番目以降のヘッダ行では、以下のオプションがあります。

  • コメント …… 128文字内のコメントを入力することができます。ヘッダ行のオプションを「コメント」に変更することで、ヘッダ行を削除しないで処理を無効にするだけにすることができます。

  • リンク定義 …… リンクを定義します。 リンク定義を設定すると、次の行に「リンク終了」の行が自動的に追加されます。

  • 宣言 …… データソースを確保しておきたい場合や、サブタスクで使用するデータソースを（パフォーマンスの改善のため）あらかじめオープンしておきたい場合にこのオプションを指定します。
    XMLデータソースを使用する場合、XMLドキュメントを宣言定義することができます。これによって、Magicが、階層構造を表すフラットビューを作成することができます。
    宣言には、以下の特性があります。

    データソース番号

    アクセス

    データソース名

    XMLソース項目

    共有

    オープン

    キャッシュ

    更新レコード識別

参照

データビューエディタ

詳細行


詳細行

[データビュー]エディタ >

ヘッダ行の下に詳細行を作成する場合、以下の行タイプを選択することができます。

  • コメント …… 次の詳細行の情報などを入力することができます。

  • C=カラム …… ヘッダ行でメインソースやリンク定義が選択された場合のみ表示されます。[カラム選択一覧]によってデータオブジェクトのカラムを定義することができます。

  • V=変数 …… プログラム実行中に一時的に情報を格納する変数項目を定義します。[変数項目特性]を使用することで表示や動作を定義できます。

  • P=パラメータ …… 別のプログラムやタスクなどから呼び出された場合にパラメータを受け取るための変数項目を定義します。[変数項目特性]を使用することで表示や動作を定義できます。パラメータは、[データビュー]エディタ内に定義されている順番に渡されます。[データビュー]エディタ内の定義場所による区別はありません。[データビュー]エディタ内に分散して定義することもできますが、見やすさや、保守性を考慮した場合、パラメータ項目はグループ分けして定義することを推奨します。通常は、[データビュー]エディタの最初に定義します。

参照

[データビュー]エディタ

ヘッダ行


メインソース特性

データビューエディタ >

[データビュー]エディタ内のメインソース定義でパークした場合、[メインソース特性]シートが表示されます。表示されない場合、Alt+Enterを押下するか、[編集]メニューやコンテキストメニューから[特性]を選択してください。

[メインソース特性]では、[データ]リポジトリからデータソースを選択することができます。このデータソースのレコードは、実行タスクで随時読み込まれます。

オンラインタスクやブラウザタスクの場合、エンドユーザがレコードからレコードに移動することでメインソースにアクセスすることができます。この方法が、エンドユーザにとっての唯一のレコード処理であることを意味しています。

バッチタスクの場合は、データソースのレコードは自動的に繰り返しアクセスされます。

ヘッダ行に「SQLコマンド」が定義されている場合、[メインソース特性]にアクセスできません。

データベースファイルの代わりにスクラッチファイルを使用する場合、メインソース定義は、デフォルトの「0」のままにしてください。バッチタスクでスクラッチファイルを使用すると、タスクを無限ループさせることができます。

オンラインタスクの場合、カスタマイズメニューや印刷処理の起動プログラムのように、データベースを使用する必要がない場合にスクラッチファイルが使用できます。

[メインソース特性]には、以下の特性があります。

詳細 | 拡張
データソース番号 データソース名 インデックス 式 アクセス | 共有 オープン 更新レコードの識別
データ | 表示
データソース(式) XML ソース項目 | ヘルプ画面 ツールチップ 自動ヘルプ

参照

XMLのアクセス/共有

実行時のXMLのアクセス/共有


メインソース特性 データソース番号

データソース番号

データビューエディタ > メインソース特性

[データ]リポジトリに定義されたXMLドキュメントやデータベーステーブルを指定することができます。このデータソースのレコードは、実行タスクで随時読み込まれます。

データソースを選択すると、[データソース名]特性にデータソースの名前が表示されます。

ヘッダ行に「SQLコマンド」が定義されている場合、[メインソース特性]にアクセスできません。

参照

インデックス

インデックス（式）


リンク定義 特性 データソース名

データソース名

データビューエディタ > メインソース特性
データビューエディタ > リンク定義 > リンク特性

ここには、データソース名が表示されます。

同じ名前のデータソースが複数リンクされた場合、名前を区別するために、この特性を変更することができます。ただし、空白にすることはできません。

SQLコマンドの場合は、タスクが発行するSQLコマンドが表示されます。SQLコマンドは、１つのデータベースにのみ発行することができ、２つの物理的に隔てられているデータベース上のテーブルを参照することができません。Magicがサポートする機能によって複数のデータベースのテーブルから構成されているデータビューを取得することができます。


メインソース特性 インデックス

インデックス

データビューエディタ > メインソース特性

デフォルトのインデックスは、[インデックス]テーブルの最初に定義されたインデックスです。インデックスを指定すると、タスクがデータビューレコードを取り出す順番が決まります。[インデックス（式）]特性を使用して定義することもできます。

[インデックス]の値が「0」に設定されており、[インデックス（式）]が使用されない場合は、インデックスを使用せずに物理的な順序でレコードが取り出されます。

SQLコマンド定義の場合は、この特性にアクセスできません。


メインソース特性 インデックス（式）

インデックス（式）

データビューエディタ > メインソース特性 > インデックス

[インデックス（式）]特性を使用するには、[インデックス]特性は「0」に設定しておきます。データビュー中のレコードの並び順を決めるインデックスの番号を実行時に動的に決定したい場合にこの特性を使用します。

[インデックス（式）]特性を使用する場合は、以下の点に注意してください。

  • 式の評価結果は、選択したメインソースで有効なインデックス番号でなければなりません。式の評価の結果として得られた番号がインデックス番号として不適当な場合、あるいは[インデックス]特性も[インデックス（式）]特性も「0」のままだった場合には、Magic は物理順をデフォルトとして動作します。

  • [インデックス（式）]特性はタスクが実行開始時に、タスクのビュー定義が有効になる前に評価されます。そのため[インデックス（式）]特性には、呼び出し元から渡されるパラメータ項目か、親タスクのデータ項目を使用しなければなりません。それ以外のタスクのデータ項目はまだ初期化されていないのでゼロのままです。

式の中でインデックス番号を使用する場合、「INDEX」リテラルを使用すれば、開発者が[データ]リポジトリでインデックスを追加削除などした場合にも、Magic はインデックスの番号を自動的に更新してくれます。つまり、式の中でインデックス番号を使用する時に、インデックス番号「nn」を「'nn'INDEX」 として指定します。

例えば、[式]エディタ内で「'2'INDEX」をインデックス式として入力したとします。その後、新しいインデックスを[インデックス]テーブル内の既存のインデックスより前の位置に挿入し、結果として元からあったインデックスが#2 から#3 に変更されると、Magic は自動的に式の中の「'2'INDEX」を「'3'INDEX」に変更します。

SQLコマンド定義の場合は、この特性にアクセスできません。

XMLソースに対する式特性

式特性は、[XMLソース項目]特性が空白の場合のみ有効です。この特性には、英数字が返る式を指定します。

この特性には、XMLファイルのパスやURLが返る式を定義することができます。

この特性には、XMLの内容ではなくファイル名を指定します。file:\\（省略できます。） またはhttp://（https://）で始まるパスを付加して指定します。例：「“c:\my.xml”, "http:/localhost/my.xml"」

「0」以外が指定された場合、物理テーブル名として評価される式が定義されているものと扱われます。ここには、論理名を使用することができます。評価されたテーブル名は、[データ]リポジトリで定義されたテーブル名より優先されます。

参照

データソース番号

インデックス


リンク定義 特性 データソース（式）

データソース(式)

データビューエディタ > メインソース特性
データビューエディタ > リンク定義 > リンク特性

この特性には、実行中にデータソースの物理ファイル名を式で指定します。この特性が指定されていない場合、[データソース番号]で指定された[データ]リポジトリに定義されているデータソース名を使用します。

この特性を利用することで、同じデータ構成の異なるデータソースを使用することができます。

XMLソースに対するデータソース（式）

[データソース（式）]特性は、[XMLソース項目]特性が空白の場合のみ有効です。この特性は、英数字が返る式のみ指定できます。

この特性には、XMLファイルをパスやURLで指定する式を定義します。

ここには、XMLの内容そのものではなくファイル名で指定します。例えば、“c:\my.xml”, "http:/localhost/my.xml" と言うように指定します。


リンク定義 特性 XMLソース項目

XML ソース項目

データビューエディタ > メインソース特性
データビューエディタ > リンク定義 > リンク特性

[XMLソース項目]特性は、XMLソースでのみ有効です。この特性には、BLOB型項目を指定できます。指定された項目はXMLに変換されます。タスクは、この項目を読み書きすることができます。

ここからズームして[項目一覧]を表示できます。ここには、メインプログラムを除く上位タスクと自タスクのBLOB型項目が表示されます。


リンク定義 特性 アクセス

アクセス (デフォルト:W=書出)

データビューエディタ > メインソース特性
データビューエディタ > リンク定義 > リンク特性

この特性は、マルチユーザ環境でのテーブルのアクセス方法を指定します。

  • R＝読込……読み取り専用アクセスの場合です。

  • W＝書出……読み取り/書き込みアクセスの場合に指定します。

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

参照

共有

オープン

キャッシュ

更新レコード識別

XMLのアクセス/共有

実行時のXMLのアクセス/共有


リンク定義 特性 共有

共有 (デフォルト:W=書出)

データビューエディタ > メインソース特性
データビューエディタ > リンク定義 > リンク特性

この特性は、マルチユーザ環境で同時実行している他のタスクがどのようにテーブルにアクセスできるかを指定します。

  • R=読込……他のタスクに読み取り専用アクセスだけを許可する時に使用します。

  • W=書出……他のタスクにも読み取りと書き込みアクセスを許可する時に使用します。この場合には、行ロックによる排他制御が行われます。

  • N=なし……共有アクセスを許可しない時に使用します。この場合にはテーブルレベルで排他ロックがかかります。

[アクセス]と[共有]が両方とも「W=書出」の場合、レコードロックが実行されます。また、[アクセス]が「W=書出」で[共有]が「R=読込」の場合、テーブルの共有が可能になります。さらに、[共有]が「N=なし」の時には、テーブルは排他使用となります。

アクセス/ 共有モードの詳細については、「マルチユーザ環境」を参照してください。

参照

アクセス

オープン

キャッシュ

更新レコード識別

XMLのアクセス/共有

実行時のXMLのアクセス/共有


リンク定義 特性 オープン

オープン (デフォルト:N=標準)

データビューエディタ > メインソース特性
データビューエディタ > リンク定義 > リンク特性

この特性には、以下のオプションがあります。

  • N=標準…… 通常はこのオープンモードを利用します。

  • R=再索引…… ISAM系のデータベースでのみ有効です。このオープンモードは、テーブルをオープンする時にMagic が全てのインデックスを削除し、タスクの実行が終了し、テーブルをクローズする時にインデックスを再構築するように指示します。作成モードで大きなテーブルをインポートする場合、あるいはテーブルに対して大量のインデックス値の修正を実行しなければならない場合などに、[再索引]オープンモードはパフォーマンスを向上させる機能があります。全てのインデックスを除去しておくことにより、挿入または修正のたびに行われるインデックス操作（Pervasive SQL のB ツリーをバランス化する処理など）のための時間が不要になります。処理が終了すると、Magic はテーブル全体に対してインデックス構造を作成します。
    [再索引]オープンモードが使えるか否かは、データベースゲートウェイがサポートしているかどうかに依存します。このオープンモードを指定した場合、重複不可のインデックスに重複するキー値を入力すると、インデックス再構築の処理で予期しない結果が生じることがあります。例えば、Pervasive SQL はインデックス再構築の処理をそのまま中止します。他のデータベースゲートウェイはその重複する行をスキップする場合があります。

参照

アクセス

共有

キャッシュ

更新レコード識別


リンク定義 特性 更新レコード識別

更新レコードの識別

データビューエディタ > メインソース特性
データビューエディタ > リンク定義 > リンク特性

データベースを更新する前に、別のユーザが修正した行を識別できるようにするため、SQL テーブルに対するWhere 句の作成方法を指定できます。

この特性には、以下のいずれかのオプションを指定できます。

  • P=位置

  • S=位置と選択項目

  • U=位置と更新項目

  • S=メインソースに依存

この特性は、遅延トランザクションを使用しているタスクのSQL系のリンクテーブルにのみ適用されます。

XMLソースの場合は、「S=メインソースに依存」の状態で無効になっています。共有は、「N=なし」に設定されています。

参照

アクセス

共有

オープン

キャッシュ

更新レコード識別(マルチユーザ環境)


メインソース特性 XMLのアクセス/共有

XMLのアクセス/共有

データビューエディタ > メインソース特性

XMLデータソースの場合、以下のアクセス/共有の組み合わせが指定できます。

アクセス | 共有
W=書出 | N=なし
W=書出 | R=読込
R=読込 | R=読込
R=読込 | W=書出

[XMLソース項目]特性に項目を設定した場合、[共有]特性は無効になります。[共有]特性の内容に関わらず、項目には値が設定され、物理ファイルに保存されます。[アクセス]特性は、タスクやリンクのモードに基づいて実行中に評価されます。

[データソース（式）]特性の式が使用された場合、アクセス／共有の各設定は、実行時に評価されます。「XML実行時のアクセス/共有 」を参照してください。

フラットビューテーブル

タスクで使用するフラットビューテーブルは、ソースが項目か式にかかわらず、(テーブルを保存するDBMSが同時使用を許可していても）常に排他的な方法でオープンされます。

アクセス／共有の各設定は、式の値に基づいて評価されます。


メインソース特性 XML実行時のアクセス/共有

実行時のXMLのアクセス/共有

データビューエディタ > メインソース特性

  • [データソース（式）]特性を使用する場合、アクセス/共有の各特性は、タスク全体に対してユーザ間（異なるプロセス）またはコンテキスト間でチェックされます。
    例えば、以下のような場合

  • データソース（式）： c:\my.xml

  • アクセス：W=書出

  • 共有：N=なし

「c:\my.xml」は、共有「なし」でオープンされ、フラットビューがファイルに書き込まれる場合のみクローズされます。

  • [データソース（式）]特性は、[タスク前]の前に評価されます。（タスク内の他の式と同じように、パラメータにアクセスできる場合のみ）

  • （[データ]リポジトリまたはタスク内の式で使用される）データソース名が、「http://」または「https://」という接頭辞を持っているXMLソースは、[アクセス]特性が「R=読込」になります。

  • XMLソースの[アクセス]特性が「R=読込」に設定されている場合、その要素の1つを更新しようとすると、エラーメッセージが表示されます。

  • XMLソースの[アクセス]特性が「W=書出」に設定されている場合、実際のファイルが指定されている場合に限って、式で指定されたXMLソースに書き込み（フラットビュー→XML）を行うことができます。http（または、https）で指定されたソースに書き込みを行おうとすると、エラーメッセージが表示されます。

  • タスクの階層

  • ([データ]リポジトリの)同じXMLソースを使用すると、階層内の各タスクに対して、同じフラットビューが使用されます。

  • 各タスク内で、XMLソースはタスクの[アクセス]特性に基づいて変更することができます。

  • サブタスクに入った場合、[アクセス]特性が「R=読込」でオープンされている間、サブタスクはXMLソースを「W=書出」でオープンし直します。

最上位のタスクがオープン／クローズする場合、XMLソースの内容は、デシリアライズ／シリアライズのどちらか一方で処理されます。これは、例えば、最上位のタスクが内容として1つの項目を指定した場合、この項目のみが、最上位タスクの終了時にシリアライズされた内容を受け取ります。


変数項目特性

項目特性

データビューエディタ
ロジックエディタ > 処理コマンド > 項目

[項目特性]には、以下の特性があります。

モデル | 入力 | デフォルト/NULL
モデル | 選択プログラム 起動モード | NULL値可 NULL計算値 NULL表示文字列 NULLデフォルト デフォルト値 データベースデフォルト値
汎用 | 表示 | 格納形式
項目番号 項目名 位置付 範囲 更新形式 代入 | ヘルプ画面 ツールチップ 自動ヘルプ | 文字セット 修正許可
詳細 | スタイル |
書式 型 範囲 データビューの一部 | スタイル |


データソース テーブルソース カラム 特性 詳細 データビューの一部

データビューの一部

データビューエディタ > 項目特性

項目を更新すると、現在の論理レコードが変更され、以下の動作が実行されます。

  • ViewMod関数は、Trueを返します。

  • [ロック方式]特性が「I=更新時」に設定されている場合、タスクはレコードをロックします。

  • [レコード後]が実行されます（レコードを抜けた時点で）。

この特性を「Yes」に設定した場合、上記の動作を維持するようにします。

この特性を「No」に設定した場合、変数項目やパラメータ項目は、データビューの一部にはなりません。このため、この設定によって論理レコードは変更されません（つまり、上記の動作を実行しません）。

注意：

  • タスク上でロールバックを実行した場合も、この特性値の内容にかかわらず項目の値がロールバックされます。

  • この特性はパラメータ項目と変数項目でのみ有効です。ブラウザタスクでは、この特性は表示されません。


リンク定義

データビューエディタ >

[リンク]コマンドは、異なるデータベーステーブル間に1対1のリレーションを作成します。リンクは、タスクのメインソースの現在のレコードと、別のデータベーステーブル（リンクテーブル）のレコードとの間に張ることができます。リンクにはインデックスセグメントを使用し、その値が等しい場合、レコードとレコードとの間でリンクが作成されます。

リンクを行うことで以下のことができます。

  • 妥当性の確認

  • リンクテーブル内に特定のレコードが存在しているかどうかの確認

  • リンクテーブルから項目を選択することによるレコードのデータビューの拡張

  • リンクテーブルのレコードの表示、修正、登録

[リンク]コマンドは、レコードのデータビューの準備と同時に実行されます。リンクの作成後、リンク定義内で項目を定義することで、リンクテーブルのカラムがデータビューに追加されます。リンク項目は、メインソースから選択したデータ項目と同じように扱うことができます。

リンクの特徴は、その処理が動的であることです。つまり、メインソースの処理中、リンク定義で指定した式の値が変わると、リンクが自動的に再設定され、リンクされているレコードの値が再設定されます。

用途

  • メインソースと他のデータベーステーブルとの間に１対１のリレーションを作成できます。

  • データオブジェクト内の特定のレコードが検索できます。

  • 他のデータオブジェクトに対するデータ検証を行うことができます。

配置

[リンク]コマンドは、[データビュー]エディタでのみ定義できます。ここでは、タスクのデータビューを定義します。

参照

リンクの定義内容

リンク条件

リンク式の再計算

初期リンク

リンクの種類

リンク特性


リンク定義 定義内容

リンクの定義内容

データビューエディタ > リンク定義

リンクは、データビューに関連する処理です。このため、タスクの[データビュー]エディタでのみ定義できます。リンクは、基本的に次の順序で定義します。

  1. ヘッダ行の作成 …… [編集]メニューの[ヘッダ行作成](Ctrl+H)を選択し、ヘッダ行を作成します。

  2. リンク定義 ……[リンク]コマンドを指定し、リンク対象となるデータベーステーブルを指定します。また、リンク方式、インデックスも指定します。

  3. 項目定義 ……位置付式（最小／最大）を使用して、リンクテーブルのインデックスセグメントを指定します。また、各インデックスセグメントについて、リンク条件を設定します。

上記は、リンク処理を行う場合の最小限の設定で、この設定は、Magic により半自動的に行われます。[リンク]定義を選択すると、対応する[リンク終了]が自動的に作成されます。また、リンク先のテーブルとリンクで使用するインデックスを選択すると、[リンク]コマンドと[リンク終了]の間に、自動的にデータ項目が挿入されます。挿入されたデータ項目はそれぞれ、指定したインデックスのインデックスセグメントに対応します。

例えば、指定したインデックスにインデックスセグメントが２つある場合、[リンク]コマンドの後にデータ項目が２つ挿入されます。この２つのデータ項目はそれぞれ、指定したインデックスの２つのインデックスセグメントに対応しています。その後、必要に応じて、各インデックスセグメントについて、位置付式を指定します。

リンクテーブルとのリンクに使用するインデックスを変更すると、変更後のインデックスのインデックスセグメントに対応するデータ項目が、自動的に追加されます。

上記のように、リンクテーブルのデータ項目は自動的に定義されますが、リンクテーブルの項目を追加選択することもできます。項目を指定する場合、[リンク]コマンドと[リンク終了]の間に行を追加します。指定したデータ項目は、レコードのデータビューに追加されます。

[リンク]コマンド内に別の[リンク]コマンドをネストして指定することはできません。リンクをネストにしたい場合、まず、最初のリンクの直後に２番目のリンクを作成し、最初のリンクで指定した項目を２番目のインデックスセグメントの位置付式で指定します。これで、ネストと同じ処理ができます。


リンク定義 条件

リンク条件

データビューエディタ > リンク定義

新規のレコードの作成ではなく、リンクを既存のレコードへのアクセス（照会、修正）に使用する場合、リンクされているレコードのうち、インデックスセグメントの値とリンク条件（そのリンクの総合条件）から返った値が一致するレコードが見つかった時、リンクは成功したと判断されます。この場合、[戻り値]特性には「True（論理型）」または「0（数値型）」が返ります。一方、値が一致するレコードが見つからなかった場合は、「False（論理型）」または「1（数値型）」が返ります。

注意：

リンクの[戻り値]特性のデータ型は、できるだけ論理型にしてください。これは、論理型のほうが処理の失敗、成功の意味がよく分かるためです。数値型は下位互換のために用意されています。[戻り値]特性のデータ型は、自動的に判別されます。

リンクの値の照合条件としては、次の４種類を指定することができます。

  • ユニーク値による照合……単一の特定のインデックス値を使用して照合を行う方法で、この場合、項目特性の[位置付 最小]特性と[位置付 最大]特性の両方に同じ式を指定します。この方法が標準です。

  • 範囲による照合……範囲を指定して値を照合する方法です。この場合、項目特性の[位置付 最小]特性と[位置付 最大]特性に異なる位置付式を指定します。この設定では、リンクテーブルのレコードのうち、インデックスセグメントの値が指定した範囲の最初のレコードに対してリンクが設定されます。なお、この照合の場合、[リンク特性]の[方向]特性を使用して、リンクテーブルのレコードに対するアクセスの方向を指定できます。つまり、指定された範囲のレコードのうち、値が一致する最初のレコードにリンクを設定するか、または最後のレコードにリンクを設定するかを指定できます。

  • 部分照合……インデックスがマルチセグメントの場合、リンクに使用したいセグメントを指定して照合を行う方法です。この方法では、照合に使用したいインデックスセグメントの[項目特性]で、位置付式（最小／最大）を指定します。この場合、リンクテーブルのレコードのうち、インデックスセグメントの値が指定した範囲にある最初のレコードに対してリンクが設定されます。

  • 拡張照合……以上のように、位置付式は、一般にリンクに使用したいインデックスセグメントの項目特性で指定しますが、そのほか、次のような設定も可能です。

  • [リンク]コマンドでインデックスを指定すると、そのインデックスのセグメントに対応するデータ項目が作成されます。この項目特性で位置付式（最小／最大）を指定できます。リンクの中では、このほかにも必要に応じて項目（実データ項目または変数項目）を指定し、その項目に対して位置付式（最小／最大）を指定できます。こういった位置付式を指定した場合、指定した位置付式が全て満足された時に初めて、リンクが設定されます。
    位置付け指定をインデックスセグメント項目で行った場合と、それ以外の項目で行った場合とでは、値の照合方法が異なります。標準のインデックスセグメントに定義した場合、検索はインデックスを使用して高速に行われます。一方、それ以外の項目に定義した場合は、値の照合がインデックスセグメントの値が一致したところから順次検索で実行されます。

  • リンクの中では、データ項目（実データ項目または変数項目）を定義し、その項目に対して範囲式（最小／最大）を指定できます。こういった項目が複数ある場合、各コマンドの範囲式は全てタスクの実行時に評価されます。（データ項目がメインソースに関連しているか、リンクテーブルに関連しているかは無関係です。）
    その後、リンクが設定され、リンクされたレコードの項目がデータビューに追加されます。最後に、範囲式が指定されている項目に対して、範囲内にあるかどうかがチェックされます。範囲内に無いレコードはスキップされ、次のレコードのチェックが実行されます。


リンク定義 再計算

リンク式の再計算

データビューエディタ > リンク定義

リンクはMagic の処理の中では非手続き型の処理に入ります。そのため、レコードレベルの実行中、リンク定義で使用されている位置付式（最小／最大）の項目の値が変化し、しかも、[データビュー]エディタ上でリンク定義の前にその項目が定義されている場合は、リンク式が再計算されると同時にリンクが再作成されます。このため、リンク定義内の項目の値が全て変更されることがあります。式の再計算については、「非手続き型方式での代入式の自動再計算」を参照してください。

リンク式の項目のうち、値の変更を引き起こす項目を「修正項目」と呼んでいます。つまり、[データビュー]エディタ上でリンクの前に定義されており、その項目の値が変わるとリンクの再計算が引き起こされるような項目が修正項目となります。修正項目の値は以下の場合に変更されます。

  • エンドユーザが手動で変更した時

  • [項目更新]処理コマンドが実行された時

  • [フォーム入力]処理コマンドでデータが入力された時

  • コールされたタスクに渡され、そのタスクで変更された時

リンクの再計算は、登録モードまたは修正モードで実行されます。また、オンラインタスク、ブラウザタスク、バッチタスクでの修正／登録モードで実行されます。また、レコードレベル内のどこでも実行することができます。

注意：

[レコード後]で[項目更新]処理コマンドを使用する場合、その対象となる項目が、リンクの位置付式（最小／最大）で使用されているかどうかを確認する必要があります。こういった項目に対して[項目更新]コマンドを実行すると、リンク式が再評価され、リンクが再実行されます。その結果、リンクされているレコードの項目のうち、リンクに使用されていない項目の更新済みの値が失われる場合があります。

リンク失敗と代入式

リンクの実行に失敗すると、そのリンクのデータ項目に定義されている[代入]特性が再評価され、その値が項目に渡されます。この場合の処理の規則は、メインソースのデータ項目と同じです。

注意：

リンク方式が「登録」の場合、その性質上リンクは必ず失敗します。


リンク定義 初期リンク

初期リンク

データビューエディタ > リンク定義

リンク処理が実行されると同時に、データビューの論理レコードの作成が開始されます。

レコードのデータビューの準備が実行されている間、初期リンクが作成されます。レコードレベルの処理中に、非手続き型処理として再度、リンクの作成が行われます。


リンク定義 種類

リンクの種類

データビューエディタ > リンク定義

先頭のヘッダ行以外のヘッダ行から、以下のリンク処理を選択することができます。

  • L=照会リンク …… 既存のレコードの検索を行いたい時に指定します。

  • W=書出リンク …… レコードが存在するかどうかをチェックし、存在している時には読込を、存在していない時には作成したい時に指定します。

  • C=登録リンク …… インデックス項目を使用して新規のレコードを作成したい場合に指定します。

  • I=結合リンク …… SQL系のデータベースで使用できます。プログラムのデータビューは、リンクされたデータソース内の存在するリンクレコードを持つレコードのみを含めます。

  • O=外部リンク …… SQL系のデータベースで使用できます。この処理コマンドは、「照会リンク」と同じ動作をしますが、データビューの扱いが異なります。プログラムのデータビューは、リンクされたデータソース内にリンクレコードが存在するか否かにかかわらず、メインソースの全てのレコードが含まれます。

  • E=リンク終了…… 対応するリンク定義をクローズします。

参照

リンク特性

リンクの定義内容

リンク条件

リンク式の再計算


リンク定義 種類 照会

照会

データビューエディタ > リンク定義 > リンクの種類

リンクの作成に成功すると、リンクテーブルからデータ項目として定義されているカラムがデータビューに含められます。

リンクに失敗した時は、以下のように動作します。

  • リンク項目の[代入]特性が設定されていない場合は、データ型が数値型、日付型、時刻型であれば、「0」で埋められます。また、文字型であれば空白が入り、BLOB 型であれば空になります。論理型の場合は「False」が入ります。なお、この値はいずれもデフォルト値で、このデフォルト値は、モデルレベルおよびカラムレベルで変更できます。

  • リンク項目の[代入]特性が設定されている場合は、その特性値の内容に基づいて初期化されます。

注意：

照会リンクを使用してリンクが失敗した場合に表示されるエラーメッセージをカスタマイズすることができます。リンクの[戻り値]特性に指定した項目を基にした実行条件で、[エラー処理]コマンドを定義することでエラーメッセージを表示させることができます。


リンク定義 種類 書出

書出

データビューエディタ > リンク定義 > リンクの種類

リンク方式として「W ＝書出」を指定すると、Magic によりリンクの作成が試みられます。リンク処理に成功すると、リンクレコードからデータ項目として定義されているカラムの値がデータビューに含められます。

リンク処理に失敗すると、以下の規則に従って新規のレコードが作成されます。

  • リンク項目の[代入]特性が設定されていない場合は、データ型が数値型、日付型、時刻型であれば、「0」で埋められます。また、文字型であれば空白が入り、BLOB 型であれば空になります。論理型の場合は「False」が入ります。なお、この値はいずれもデフォルト値で、このデフォルト値は、モデルレベルおよびカラムレベルで変更できます。

  • リンク項目の[代入]特性が設定されている場合は、タスクがオンラインタスク、または修正モードのバッチタスクであれば、[代入]特性によって値が設定されます。


リンク定義 種類 登録

登録

データビューエディタ > リンク定義 > リンクの種類

リンク方式として「C ＝登録」を指定した場合は、リンクの作成は行われません。この方式では、必ず、新規のレコードが作成されます。レコードの項目には、次の規則にしたがって値が設定されます。

  • リンク項目の[代入]特性が設定されていない場合は、データ型が数値型、日付型、時刻型であれば、「0」で埋められます。また、文字型であれば空白が入り、BLOB 型であれば空になります。論理型の場合は「False」が入ります。なお、この値はいずれもデフォルト値で、このデフォルト値は、モデルレベルおよびカラムレベルで変更できます。

  • リンク項目の[代入]特性が指定されている場合は、[代入]特性によって値が設定されます。

注意：

重複不可インデックスでリンクしているテーブルに重複したレコードを登録しないようにしてください。この場合、重複レコードは作成されず、重複エラーのメッセージが表示されます。


リンク定義 種類 結合

結合

データビューエディタ > リンク定義 > リンクの種類

「結合リンク」方式は、Magic の機能と併せて、RDBMS の結合機能を使用して複数のデータベーステーブルの読込を行ったり、結合を行ったりする時に使用します。この方式では、1 対多のリレーションの作成が可能です。この「結合リンク」は、エンドユーザがレコードを更新したり、Magic により再計算が実行されると「照会リンク」として機能します。

「結合リンク」によって、関連する全てのテーブルにおいてSQL 内部結合のクエリが作成されます。これに対して、通常のリンクコマンド（「照会リンク」）の場合は、次のようなデータ処理によってリンクを実現します。

  • リンクテーブルがある場合、メインソースから行が読み込まれるたびに、Magic によりSELECT ステートメントがもう１つ追加されます。このSELECTステートメントによって、リンクテーブルの行が取り出されます。

  • メインソースの行はループしながら、取り出し（フェッチ）処理が行われます。よって、リンクが設定されている時には、メインソースの行が取り出されるたびに別のカーソル（SELECT ステートメント）がオープンされ、リンクテーブルの行が取り出されることになります。

  • メインソースが２つのテーブルとリンクされている場合、まず、メインソースのカーソルがオープンされ、その後、ループで次のような処理が繰り返し実行されます。

  1. メインソースの行が取り出されます。

  2. 最初のリンクテーブルのカーソルが開かれ、行が取り出されます。

  3. ２番目のリンクテーブルのカーソルが開かれ、行が取り出されます。

通常のリンクコマンド（「照会リンク」）と、「結合リンク」は次の点が異なります。

  • 「結合リンク」の場合、結合テーブルに行が存在しない時には、行の取り出しは行われません。

  • 複数のテーブルを結合すると、単一のテーブルになります。したがって、テーブルのカーソルは1 つで、このカーソルを使用して行の取り出しが行われます。

  • 通常のリンク処理は、「結合リンク」よりも効率が悪くなります。これは、リンクの場合、結合に比較して、Magic とSQL サーバとの間の通信量とリクエストが増えるためです。

以上の点から、複数のテーブルを使用して帳票出力や照会表示を行いたい場合、次のようにすると効率が上がります。

  • 複数のテーブルを結合し、ビューを使用して帳票出力や照会表示を実行します。

  • リンクテーブルはキャッシュに置くようにします。特に、リンクテーブルに格納されている行の数が少ない時や、リンクテーブルの行の取り出しで同じ行が返る頻度が高い場合、リンクテーブルをキャッシュに置きます。

「結合リンク」は「照会リンク」と次の点で異なります。

  • 「照会リンク」では、リンクテーブルの各行に対して取り出しが試みられます。ここで指定された行が見つからない場合でも、その行に対応するメインソースの行が有効になります。

  • 「結合リンク」では、内部結合のSELECTステートメントを使用してメインソースとジョインテーブルが処理されます。このため、制約定義が重要になります。

「結合リンク」を指定した場合、タスクでデータビューが作成される際、Magic により結合テーブルに関するJOIN 構文が生成されます。また、定数と一致条件が入ったWhere句もMagic によって作成され、このWhere 句では、メインソースと結合テーブルのカラムの名前が指定されます。次に残りのデータビューが構築されます。

「結合リンク」でJOIN 構文が生成されると、「結合リンク」からは戻り値として常に「True」が返ります。その後、「結合リンク」が「照会リンク」として機能した場合（つまり、エンドユーザによるレコードの更新やMagic による再計算が実行された場合）、リンクの作成が試みられ、その結果、リンクレコードの項目の値がレコードのデータビューに表示されます。以下は、「結合リンク」を使用する場合の一般的な規則です。

  • 結合テーブルのインデックスセグメントを全て[データビュー]エディタ内に定義する必要があります。また、各インデックスセグメントには、それぞれ、[位置付]特性を定義しなければなりません。

  • 結合テーブルでは、厳密な範囲の指定が必要です。このため、[位置付 最小]と[位置付 最大]は同じ値を指定しなければなりません。

  • 結合テーブルに対する[位置付]特性には、次の要素が指定できます。

  • 定数

  • タスクのメインソースのデータ項目

  • タスクに定義された別の結合テーブルのデータ項目

  • 簡単な式

「結合リンク」で使用されたキャッシュは、次の場合にクリアされます。

  • インデックスが変更された場合

  • 結合テーブルのデータ項目の値が更新された場合

  • 位置付、範囲、ソートが実行された場合

  • タスクモードが登録モードに変わった場合

注意：

  • 「結合リンク」は、データベースがSQL データベースの場合にのみ有効です。また、結合できるテーブルは同一種類のデータベースのものに限ります。

  • DB2 UDBは各テーブルに対して個別のロックを要求するため、即時ロックになっているバッチタスクでの結合リンクは、結合された各テーブルに対してロックしないような結合リンク処理として動作し、フェッチされた各行に対する照会リンクとして動作します。

  • MagicによってSELECT文が生成され、そのSELECT 文で複数のテーブルが指定されている場合、テーブル名にはいずれもエイリアスが使われます。例えば、メインソースにはA、最初のジョインテーブルにはB、次のジョインテーブルにはC などというエイリアスが使用されます。

  • ユニークインデックスを使用した場合、Magicは重複レコードが作成できません（作成できない場合でもメッセージは表示されません）

参照

ロック処理


リンク定義 種類 結合 ロック処理

ロック処理

データビューエディタ > リンク定義 > リンクの種類 > 結合

物理トランザクションのみにおいて、Magicがレコードをロックする必要がある場合、使用するRDBMSの機能を使用してロックを行います。

論理的なロックを使用するSQLゲートウェイでは、メインソースの[アクセス/共有]の設定が「書出/書出」の場合、論理的なロックはメインソースと結合テーブルに対して同時に実行されます。

物理的なロックを使用するSQLゲートウェイでは、RDBMSが結合テーブルに対してFOR UPDATE 句を許可するかどうかを確認します。

Oracleのような結合テーブルに対してFOR UPDATE 句を許可するRDBMSの場合、「書出」のアクセスモードでメインソースと結合テーブルに対して同時にロックが実行されます。

DB2 UDBのような結合テーブルに対してFOR UPDATE 句を許可しないRDBMSの場合、ロックは各テーブルごとに個別に行われます。

結合テーブルが「読込」アクセスでオープンされた場合、Magicはメインソースのみをロックしようとします。

Magicがデータベースを更新する必要がある場合、テーブルの位置キーに基づいて各結合テーブルを個別に更新します。


リンク定義 種類 外部

外部

データビューエディタ > リンク定義 > リンクの種類

「外部リンク」は、メインソースと結合テーブルの両方が同じデータベースのSQLテーブルの場合に使用できます。

また、メインソースと結合テーブルは、多対１の関係にならなければなりません。結合テーブル内にメインソースと関連するレコードが１つだけあるか、または１つもない状態が必要です。

「外部リンク」は、メインソースのレコードと関連のある、結合テーブルのレコードを結合します。もし、関連するレコードがない場合は、NULL を設定します。関連するテーブルがあれば、「True」を返します。ない場合は、「False」を返します。

参照

外部結合を使用する上での注意事項

データベース毎の外部リンクの構文

ISAMデータベースでの外部結合


リンク定義 種類 外部 注意事項

外部結合を使用する上での注意事項

データビューエディタ > リンク定義 > リンクの種類 > 外部

「外部リンク」はネストできません。「外部リンク」のブロック内にさらにこの同じコマンドを入力すると、以下のようなエラーが表示されます。

エラー： リンクコマンドはネストできません．

メインソースと異なるデータベースを使用したテーブルに対して「外部リンク」は使用できません。この場合以下のようなエラーが表示されます。

エラー： 結合リンクは同じデータベースを使用しなければなりません.

重複可インデックスを指定すると以下のようなエラーが表示されます。

エラー： 結合リンクでは重複不可インデクスしか使えません.

インデックスセグメント全てを定義しない場合、以下のようなエラーが表示されます。

エラー： 結合リンクでのインデックスセグメントを全て定義して、位置付式を指定してください.

インデックスセグメントの位置付け指定に式を使用すると、以下のようなエラーが表示されます。

エラー： 結合リンクによる位置付は、項目か定数で指定してください.


リンク定義 種類 外部 構文

データベース毎の外部結合リンクの構文

データビューエディタ > リンク定義 > リンクの種類 > 外部

各DBMSの外部結合リンクのSQL構文は以下のようになっています。

DBMS | 構文 | 例
MS-SQL Server DB2 UDB ODBC | SELECT {カラム} FROM メインソース LEFT OUTER JOIN リンクテーブル ON リンク条件 | SELECT Dname, Ename FROM departments a LEFT OUTER JOIN employees b ON (a.deptno=b.deptno)
Oracle | SELECT {カラム} FROM メインソース,リンクテーブル WHERE リンク条件 | SELECT Dname, Ename FROM departments a, employees b WHERE a.deptno=b.deptno(+)


リンク定義 種類 外部 ISAM

ISAM データベースでの外部結合

データビューエディタ > リンク定義 > リンクの種類 > 外部

本来、外部結合は、RDBMS（SQL系）でのみ有効なオプションですが、ISAMデータベースでも使用でします。この場合、Magicは、「Q=照会」オプションのリンクコマンドと同様の動作をするようになります。


リンク定義 種類 リンク終了

リンク終了

データビューエディタ > リンク定義 > リンクの種類

[リンク終了]によって、リンク定義の終了を表します。リンクテーブルの項目とは、[データビュー]エディタで、[リンク]コマンドと[リンク終了]の間に定義されているデータ項目をいいます。一方、リンクの外側で定義されている実データ項目は、メインソースのカラムになります。

使用の際の注意

  • [データビュー]エディタで[リンク]コマンドのヘッダ行が追加されると、自動的に[リンク終了]が挿入されます。

  • [リンク終了]は、単独では削除できません。[リンク]コマンドのヘッダ行が削除されると一緒に削除されます。

  • [リンク終了]は、別のコマンドに変更することができません。


リンク定義 特性

リンク特性

データビューエディタ > リンク定義

リンク特性には[リンク]コマンドにおいてどのように評価されるかを指定します。ここには、以下の特性があります。

詳細 | 拡張
データソース番号 データソース名 インデックス 方向 戻り値 リンク評価 アクセス 条件 | 共有 オープン キャッシュ 更新レコード識別
データ |
データソース(式) XMLソース項目 |

参照

リンクの定義内容

リンク条件

リンク式の再計算


リンク定義 特性 データソース番号

データソース番号

データビューエディタ > リンク定義 > リンク特性

ここには、リンクテーブルの識別番号を指定します。ここからズームすると、[データソース一覧]が表示されます。この一覧でリンクするテーブルを選択できます。

データソースを選択すると、[データソース名]特性に名前が入力されます。


リンク定義 特性 インデックス

インデックス

データビューエディタ > リンク定義 > リンク特性

インデックスの番号を指定します。

メインのデータソースとリンクされたテーブルの間のリンクは、リンクされたデータソースのインデックスセグメントに基づいて実行されます。インデックスを適切に設定することで、レコードの検索時間を短縮することができます。

[インデックス]特性から、ズームしてリンクで使用するインデックスを選択できます。

この特性を選んだ場合、Magicは自動的にインデックスセグメントを構成するカラムをデータ項目として定義します。

メインソースとリンクテーブルの関係（1対多のリレーション）を構築するには、重複不可のインデックス以外は使用できません。


リンク定義 特性 方向

方向 (デフォルト:D=デフォルト)

データビューエディタ > リンク定義 > リンク特性

ここでは、レコードが検索される方向を指定します。検索は、リンクに指定されているインデックスを基に実行されます。以下のオプションが指定できます。

  • D=デフォルト …… インデックスの定義内容に基づいて検索されます。

  • R=逆方向 …… インデックスの定義内容とは反対の方向に検索されます。つまり、[リンク]コマンドと[リンク終了]の間に定義されているデータ項目の[位置付]特性や[範囲]特性は全て、逆方向に評価されます。

この特性は、照会リンク、書込リンク、登録リンクで有効です。


リンク定義 特性 戻り値

戻り値

データビューエディタ > リンク定義 > リンク特性

[リンク]処理が成功したかどうかを示す値が返ります。ここには、論理型か数値型の項目を設定することができます。処理結果によって以下のような値が返ります。

  • リンクが成功した場合……「True」たは「0」が返ります。

  • リンクが失敗した場合……「False」たは「1」が返ります。

リンクに失敗した場合、エンドユーザに警報を出すような場合に使用することができます。


リンク定義 特性 リンク評価

リンク評価 (デフォルト:R=レコード)

データビューエディタ > リンク定義 > リンク特性

この特性は、リンクテーブルの評価をタスクレベルで行うか、レコードレベルで行うかを指定します。

  • T=タスク …… リンクテーブルは、データビュー全体を取得する前に１度だけ評価されます。[条件]特性が「No」に設定されている場合、または設定された式が「False」と評価された場合、リンクテーブルはデータビューには含まれません。

  • R=レコード …… リンクテーブルは、各レコードごとに評価されます。[条件]特性が「No」に設定されている場合、または設定された式が「False」と評価された場合、リンクは実行されず、[戻り値]特性に設定された値を含め、全てのリンク項目は、デフォルト値が設定されます。


リンク定義 特性 条件

条件

データビューエディタ > リンク定義 > リンク特性

この特性は、リンク条件を定義します。

[条件]特性に「Yes」、「No」、「式」のいずれかを入力することで、リンク条件を定義できます。式の評価対象は論理値でなければなりません。

  • Yes（式の評価結果が「True」） …… 必要なレコードがそのリンク条件によって取り出されます。

  • No（式の評価結果が「False」） …… レコードの取り出しは実行されません。このレコードはリンクに失敗したものとして動作し、以下の処理が行われます。

  • 定義されたリンク項目の全ての値がデフォルトに戻されます。

  • リンクの[戻り値]特性は「False」となります。

  • [レコード後]の終了時にリンク条件の評価結果が「False」である場合には、現在の論理レコードの[レコード前]が無視されると同時に、変更内容も全て無視されます。


リンク定義 特性 キャッシュ

キャッシュ

データビューエディタ > リンク定義 > リンク特性

[キャッシュ]特性は、リンクテーブルにのみ関連します。この特性の設定値により、リンクテーブルをキャッシュするかどうかを指定します。

設定可能な値は以下のとおりです。

  • Yes……リンクテーブルに対してキャッシュを使用します。

  • No……リンクテーブルに対してキャッシュを使用しません。

デフォルト値は、[データソース]特性にある[キャッシュ範囲]特性の指定によって異なります。

位置キャッシュはリンクテーブルに対しては無意味である点に注意してください。そのため、[キャッシュ範囲]特性の設定が「P=位置」の時には、「No」とみなされます。

デフォルトの設定値は、[データソース]特性の内容によって以下のように決まります。

  • Yes……[データソース]特性で「D=位置とデータ」を指定した場合

  • No……[データソース]特性で「P=位置」または「N=なし」を指定した場合

参照

アクセス

共有

オープン

更新レコード識別


リンク定義 特性 キャッシュ BCのキャッシュ

ブラウザクライアントでのキャッシュ (デフォルト：No)

データビューエディタ > リンク定義 > リンク特性 > キャッシュ

この特性は、クライアントに置かれ、常駐テーブルとして定義されたデータソースに対してクライアント上でローカルに再リンク処理を行うためのものです。

  • Yes …… Magicは常駐テーブルに対してクライアントでローカルに再リンクを行います。

  • No …… サーバに対してリンクレコードのフェッチ要求を出すことで再リンクが行われます。

この特性は、[データソース特性]の[常駐]特性が「B=ブラウザ上で常駐」に設定されている場合のみ有効です。この場合、データオブジェクトテーブルは常駐テーブルとなりアプリケーションと一緒にクライアントに常駐されます。

参照

ブラウザクライアントのキャッシュの実行時の動作


リンク定義 特性 キャッシュ BC実行時の動作

ブラウザクライアントのキャッシュの実行時の動作

データビューエディタ > リンク定義 > リンク特性 > キャッシュ

サーバエンジンが起動されると、Magicはデータソースの内容を含んだXMLファイルを作成します。サーバは、XMLファイルが[ブラウザクライアントキャッシュパス]で設定されたディレクトリに作成されているかどうかを確認します。作成されていない場合、新規のXMLファイルをキャッシュパスに作成します。XMLファイルが存在している場合、現在のファイルを新しいものと比較します。両方のXMLファイルが同じならば、現在のXMLファイルはキャッシュパスに残ります。 ファイルが異なる場合、新規XMLファイルによって現在ファイルが書き換わります。

全てのキャッシュテーブルに対するXMLファイル名には、以下のテーブルIDが含まれます。

  • アプリケーション名

  • テーブルのURL識別子

  • 物理テーブル名

  • 最終更新日時

クライアント側で再リンクされたテーブルをオープンするブラウザクライアントタスクは、ブラウザクライアントエンジンが読み込まれたXMLデータからリンクレコードを取得することを可能にするために、テーブルのXMLファイルを参照するHTMLファイルを含んでいます。

DbReload関数

DbReload関数を実行すると、XMLファイルを再作成し、新しいファイルに対応した名前を取得します。すでにそのテーブルがオープンされ、対応するXMLデータが常にそのデータソースを使用する場合は、更新されません。

常駐テーブルの読込

[動作環境]の[常駐テーブル読込]の設定は、アプリケーションサーバの常駐機能に影響しません。

参照

ブラウザクライアントでのキャッシュ


埋め込みSQL

データビューエディタ >

埋め込みSQLは、RDBMS に渡すSQL文を開発者が直接記述します。

SELECT文が複雑な場合は、RDBMSサーバに行の結合と制約を行わせて、指定した行だけをMagic タスクのデータビューに反映させる方がより高速に処理できます。この機能は、ネットワークトラフィックが小さいほどシステム全体のパフォーマンスが向上する、クライアント/ サーバ環境において特に有用です。

RDBMSは１つのSQL文、カーソル、単純なトランザクションだけで垂直方向の更新と削除が実行できます。Magicタスクは、データビューの処理を１レコードずつ行います。挿入、更新、削除の各タスクは、全レコードを１回のトランザクションで処理できる場合であっても、レコードの処理を個別に実行します。

DDL（Data Definition Language）処理が実行時に特定される場合に、明示的なSQLを使用することができます。例えば、特定の帳票処理のために特別なテーブルインデックスを作成し、処理が終了したらそのインデックスを削除するような場合に必要になります。また、RDBMSの中で一時テーブルを作成したい場合にも使用できます。

一般的には、MagicからDDLを実行するのは望ましくありません。

SQLコマンドダイアログには、以下のパラメータがあります。

データベース

結果データベース

SQLコマンド

入力パラメータ

出力パラメータ

戻り値

アシストユーティリティ

[SQLコマンド]ダイアログには以下のボタンが表示されます。

  • クリア …… [SQLコマンド]ダイアログ内の表示を消去します。

  • アシスト …… SQLアシストユーティリティを起動します。

  • APG ……SQLコマンド用のAPGを起動します。

参照

埋め込みSQL の使用

埋め込みSQL の構成要素

SQLコマンドのAPG

埋め込みSQLのSELECT文の動作

埋め込みSQLの使用における制約事項

バインディング変数

遅延トランザクション内での埋め込みSQL


埋め込みSQL 使用

埋め込みSQLの使用

データビューエディタ > 埋め込みSQL

[SQLコマンド]ダイアログを利用することで、MagicアプリケーションにネイティブのSQL文を埋め込むことができます。SQL コマンドを使用する場合、タスクのメインソースは「SQLコマンド」と表示されます。

  1. [プロジェクト]メニューの[プログラム]を選択します。

  2. 新しい行を作成します。

  3. プログラム名として「デモ（または任意の名前）」を入力します。

  4. タスクツリーへズームします。

  5. [タスク環境]メニューから[SQL コマンド]を選択します（Ctrl+Q）。[SQL コマンド]ダイアログが表示されます。

Magicは、[タスク前]を実行する前に、SQLコマンドを実行します。タスクは、戻ってきたデータをデータビューの一部として使用することができます。

Magic はコマンドの構文とセマンティクスの分析は行いません。これによってプログラミングの自由度は高くなりますが、それと同時にプログラマがプログラミング作業を慎重に計画する必要も生じます。Magic には、埋め込みSQL のエラーからデータを保護する仕組みはありません。

埋め込みSQLの動作について

Magic の埋め込みSQL 機能は、パフォーマンスを改善するためのチューニングツールとして用意されています。この機能はパフォーマンスが大幅に向上することが見込める場合に必要に応じて使用してください。

以下のような場合に埋め込みSQL 機能を使用します。

  • データベースに関する統計、例えばある特性を持つレコードの数や、当月の給与額総計などを出さなければならない場合。

  • データに対して垂直方向の更新をかける場合。例えば、全ての給与に対する５パーセントの増額処理、古くなったレコードに対する削除処理、あるテーブルの一部を別のテーブルにコピーする処理などです。

  • 以前にSQL DBMS ツールで開発してコンパイルした既存のコード、例えばストアドプロシジャなどを活用する場合。


埋め込みSQL 構成要素

埋め込みSQLの構成要素

データビューエディタ > 埋め込みSQL

埋め込みSQL タスクを作成する

埋め込みSQLタスクを作成するには以下のようにします。

  1. [タスク環境]メニューから[SQL コマンド]を選択します。[SQL コマンド]ダイアログが表示されます。

  2. [データベース]欄から[データベース一覧]にズームします。

  3. SQL 文を実行するデータベースを選択します。

SQL コマンドの動作について

SQL 文はデータベースによってタスク開始時に実行されます。この段階でエラーが発生すると、メッセージとともにタスクが終了します。

SQLコマンドを利用して、一括更新、一括削除、DDL文、PL/SQL ブロックを実行できます。

SQL コマンドには、以前にDBMS の各機能により開発してコンパイルした、プロシージャ（ストアドプロシジャ）を指定することができます。そのようなプロシージャ名をSQLコマンドとして指定した場合、該当するデータベースプロシージャはRDBMS によって呼び出され、実行されます。これらのストアドプロシジャは、一般のSQL コマンドと同じように使用できます。埋め込みSQL の構成に関する前述の規則はいずれも、ストアドプロシジャにも適用されます。

ストアドプロシジャを実行する

ストアドプロシジャを使用するには、次の形式で予約語「EXEC」を指定します。

EXEC procedure-name parameters

プロシジャに複数のパラメータを使用することができる場合、パラメータをカンマで区切ります。プロシジャの本文がSELECT文になっている場合、そのプロシジャは通常のSELECT文のように扱ってください。つまり、[オプション/APG]を実行してください。ストアドプロシジャ内では、以下に示すAPGの3つの点に注意する必要があります。

  • APGはストアドプロシジャを呼び出す際に、ストアドプロシジャにSELECT以外の文が含まれている場合、残りの文を注釈に変更しておきます。

  • Magicから呼び出されるストアドプロシジャは、パラメータを値として受け取ります。

  • 出力パラメータを結果として得ることができるのはSELECT文の場合に限られます。

MS-SQL Serverでのストアドプロシジャ

戻り値の指定

MS-SQL Serverでのストアドプロシジャで戻り値をサポートします。

これを実現するには、[SQLコマンド]ダイアログで以下の構文を含むステートメントを定義してください。

？=

例えば以下のように指定します。

EXEC ? = proc_name

また、[戻り値]欄に変数項目を指定する必要があります。

戻り値がBOOLEANか、ステートメント上で指定された構文または戻り値が含まれていない場合、Magicはストアドプロシジャのステータス（成功/失敗）の表示のみを行います。

結果セットのROWSET

ダイレクトSQL内でどのSELECTステートメントが戻るかを指定することができます。

これを実現するには、[SQLコマンド]ダイアログで以下の構文をSQLステートメントに追加する必要があります。

/*=== ROWSET=n ===*/

nは、戻り値として返したいSELECTステートメントの番号

例えば以下のように指定します。

/*=== ROWSET=5 ===*/

この場合、5番目の結果セットが返ります。

現存していないROW-IDを指定するとエラーメッセージが返ります。

Magicでは、SQL Serverのストアドプロシジャ内のDSQLステートメントでカーソルを使用することができます。また、結果セットを戻すDSQLステートメントでのカーソルの使用をサポートしています。

これは、ダイレクトSQLステートメントに以下の構文を追加することで可能になります。

/*===CURSOR=Y ===*/

明示的なSQL

Magicは、埋め込みSQLやタスク内のDB SQL Where句を使用することで明示的なSQLを記述することができます。作成した構文は、ゲートウェイにそのまま送られ、追加もされずバインドされます。この方法で作成された全てのステートメントは、ANSI形式でデータベースに送られます。Unicode形式は、結果としてSQLタスクに戻される値でのみサポートされます。

DB2 UDBのストアドプロシジャ

Magicは、SELECTステートメントやIN/OUTパラメータ、または両方を持つDB2ストアドプロシジャをサポートします。APGボタンを使用すると、作成された変数項目は最初にOUT/INOUTパラメータが、次にすべての既存のSELECTステートメントの結果カラムの内容が定義されます。

参照

入力パラメータ

出力パラメータ


埋め込みSQL データベース

データベース

データビューエディタ > 埋め込みSQL

[データベース]欄には、SQLコマンドを実行するデータベースを指定します。

SQLコマンドは、１つのデータベースに対してのみ発行できます。物理的に２つに分かれているデータベースに対してリポジトリを参照することはできません。このような場合は、Magicに組みこまれている機能を利用してアクセスする必要があります。

SQL コマンドのソースデータベースを定義するには、以下のようにします。

  1. [データベース]欄にカーソルを置きます。

  2. ズームして[データベース一覧]をオープンします。ここには、SQL系のデータベースのみ表示されます。

  3. 使用したいデータベースを選択します。


埋め込みSQL 結果データベース

結果データベース

データビューエディタ > 埋め込みSQL

結果データベースと入力データベースが同じ場合

このオプションを選択すると、結果データベースを入力データベースと同じにすることができます。ほとんどの場合、基礎となるRDBMSでは次の文が使用できます。

INSERT INTO table AS SELECT...

この文は１回のコマンドで全データをテーブルにコピーしています。この方法はカーソルをオープンするよりも高速です。レコードは全てクライアントから取得され、結果テーブルに挿入されます。

このような場合、SQLゲートウェイはデータベース内にテーブルを作成し、次の文を送信します。

INSERT INTO temp_table AS direct SELECT statement

その後、ユーザはこのテーブルをスクロールしてSELECT文の実行速度を向上させることができます。この方法では一時ファイルから個々のレコードを取り出したりそこへ挿入したりする処理がないため、結果セットが大きい場合には特に有効です。

結果データベースと入力データベースが異なる場合

結果データベースが入力データベースと異なる場合は、一時テーブルが作成され、SELECT文の結果のレコードが全てこの一時テーブルに格納されます。その後、タスクはこの一時テーブルをメインソースとしてスクロールできます。

推奨事項

結果が大量になる場合は、結果データベースを入力データベースと同じにするオプションを利用するのが最善です。

結果が比較的小さくなる場合は、結果データベースとして、クライアントに常駐するISAMデータベースを指定するのが最善です。そうすることで、結果を作成してそれをスクロールする時の作業がクライアント上だけで済むため、ネットワークトラフィックが減少します。

結果が比較的小さくなる場合は、メモリゲートウェイを使用することでパフォーマンスが向上します。


埋め込みSQL 入力パラメータ

入力パラメータ

データビューエディタ > 埋め込みSQL

埋め込みSQL コマンドには、「コロン（:）＋数値」の形式でパラメータ識別子を指定できます。この「コロン（:）＋数値」は、SQL コマンドフォームの[入力パラメータ]テーブルの値に置き換えられます。この場合、パラメータは、SQL コマンドの準備処理の直前に計算され、続いて「コロン（:）＋数値」が計算済みの値に置き換えられます。その後、SQL ステートメントがRDBMS に送られ、構文がチェックされた後に実行されます。

SQL コマンドの構文は、必ずそのSQL コマンドの実行前に評価されます。これは、タスクが常駐タスクであっても同じです。一般的に、入力パラメータはWHERE句のプレイスホルダとして使用されます。

参照

パラメータ


埋め込みSQL 入力パラメータ テーブル

パラメータテーブル

データビューエディタ > 埋め込みSQL > 入力パラメータ
出力フォーム > フレームセットフォーム > コンテキスト変数

[SQLコマンド]ダイアログの[入力パラメータ]欄や[コール]処理コマンドの[パラメータ]特性からズームすると、[パラメータ]テーブルが開きます。呼び出し元が渡すパラメータをテーブル上に定義することができます。

[コールタスク]や[コールプログラム]コマンドの場合には、[パラメータ]テーブルの右側に[コール先パラメータ]の一覧が表示されます。この一覧には、呼び出されるタスクであらかじめ定義されたパラメータ項目が表示されます。

[パラメータ]テーブルには、以下のカラムがあります。

# | ここには、Magic によって生成された連番が表示されます。このカラムはカーソルはパークできません。
項目 | このカラムには、パラメータとなる項目のシンボル名を指定します。サブルーチンのデータを取り込む時にも使用されます。なお、項目を使用してパラメータを渡す方法を「参照渡し」といいます。一方、式を使用してパラメータを渡す方法を「値渡し」といいます。 項目のシンボル名を直接入力するか、ズームして[項目一覧]から選択します。項目を指定すると、[名前]カラムに、その項目の名前が表示されます。なお、パラメータとして式を使用して定数や動的な値を渡したい時には、この[項目]カラムはパスして、[式]カラムに進んでください。 すでに 式が定義されている場合は、[項目]カラムにカーソルは止まりません。
式 | [式]カラムは、サブルーチンに定数や動的な値を渡したい時に使用します。式の結果の値をサブルーチンに渡す方法を「値渡し」といいます。なお、この場合サブルーチンからパラメータを通して値を受け取ることができません。 [式]カラムには、式を示す番号が表示され、また、[名前]カラムには、式のテキストの最初の部分が表示されます。このパラメータをズームすると[式]エディタが表示されますので、ここで式を定義します。式は、既存の式から選択することもできます。式からは、Magic の有効なデータ型が返らなければなりません。 [項目]カラムにパラメータ項目が指定されている場合は、このカラムにカーソルは止まりません。[式]カラムを使用したい場合は、[項目]カラムのシンボル名を削除してください。
説明 | [説明]カラムには、[項目]または[式]のどちらのパラメータを使用しているかによって、項目名か式の最初の部分が表示されます。このカラムには、カーソルはパークできません。
名前 | [名前]カラムには、[項目]または[式]のどちらのパラメータを使用しているかによって、項目名または式であることを示す記述が表示されます。このカラムには、カーソルはパークできません。（[コールリモート]で表示されます。）
スキップ | [スキップ]カラムのチェックボックスをオンにすることで、その行のパラメータについての定義を省くことができます。チェックボックスがオンになっている場合は、コール先には値は渡されません。

以下のカラムは、[コールタスク]と[コールプログラム]でのみ表示されます。

コール先パラメータ | 渡された値を受け取るパラメータ項目の名前。呼び出されるタスクであらかじめ定義されたパラメータ項目が表示されます。
型 | 渡された値を受け取るパラメータ項目の型
書式 | 渡された値を受け取るパラメータ項目の書式

参照

パラメータの受け渡し


埋め込みSQL 入力パラメータ 受け渡し

パラメータの受け渡し

データビューエディタ > 埋め込みSQL > 入力パラメータ
ロジックエディタ > 処理コマンド > コール > コール特性 > パラメータ

Magic では、次のようにして実行時にパラメータのやりとりが行われます。

  1. 実行時、[コールタスク]または、[コールプログラム]や[コール式]処理コマンドを実行する場合、現在のタスクの[パラメータ]テーブルに定義されているパラメータの現在の値が、呼び出されたタスクの対応するパラメータ項目または変数項目にコピーされます。

  2. 呼び出されたプログラムまたはタスクでパラメータ項目が定義されていると、渡されたパラメータが順番にパラメータ項目にコピーされます。この場合、変数項目はいずれも無視されます。パラメータ項目が設定されていない場合、パラメータは変数項目にコピーされます。
    呼び出されたタスクのパラメータ項目または変数項目には、呼び出し側のタスクの情報（パラメータの値）のコピーが入ることになります。こうして渡された項目は、表示やエンドユーザによる入力など、呼び出されたタスクで任意に使用できます。

  3. 呼び出されたタスクが終了すると、パラメータの値の格納に使われていたパラメータ項目または変数項目の内容が、再度、呼び出し側のタスクの[パラメータ]テーブルのパラメータにコピーされます。ただし、呼び出し側のタスクの[パラメータ]テーブルで、[項目]カラムではなく[式]カラムを使用していた時には、この戻り置のコピーは行われず、情報は一方通行になります。つまり、呼び出されたタスクでパラメータの値が変更された時でも、その変更は一切、呼び出し側のタスクには伝えられません。
    これを整理すると次のようになります。

    • 参照渡し……呼び出し側のタスクでパラメータを[項目]で渡す場合。戻り値のコピーが行われます。呼び出されたタスクでパラメータの値が変更された場合、呼び出し側のタスクにも反映し、同じ値になります。

    • 値渡し……呼び出し側のタスクで[式]欄を使用していた場合。戻り値のコピーは行われません。呼び出されたタスクでパラメータの値が変更されても、呼び出し側のタスクには反映しません。

「参照渡し」の場合、呼び出されたタスクで変更されたパラメータは呼び出し側に転送されるため、その変更がきっかけで、呼び出し側のタスクで[代入]特性やリンク式（リンク条件）の再計算が実行されることがあります。その場合の再計算は、項目定義やリンク定義にしたがって行われます。呼び出されたタスクでは、パラメータの値の変更は、エンドユーザの入力や[項目更新]コマンドの実行によって発生します。呼び出し側のタスクでパラメータ項目が画面に表示されている場合、そのパラメータ項目の値が呼び出されたタスクで変更された後、制御が呼び出されたタスクから呼び出し側のタスクに戻ると同時に、呼び出し側のタスク画面の表示が更新されることになります。


埋め込みSQL 出力パラメータ

出力パラメータ

データビューエディタ > 埋め込みSQL

SQL SELECT文またはストアドプロシジャは、通常使われている標準のメインソースに代わる別のデータビューをMagicに提供します。SQLコマンドの結果によって結果テーブルやデータストリームが生成されると、Magicはそのデータの受け入れに必要なバッファを用意します。これらのバッファは、SQLコマンドのタスク内に定義された変数項目という形をとります。これらの変数項目の型と書式は、SQLコマンドが生成したデータと一致している必要があります。

参照

パラメータ


埋め込みSQL 戻り値

戻り値

データビューエディタ > 埋め込みSQL

UPDATEやDELETEなどのいくつかのSQLステートメントは、結果テーブルを戻しません。これらはバッチ処理コマンドと定義されます。このようなコマンドの戻り値には、コマンド処理結果を返す[戻り値]があります。

[戻り値]からズームすると、[パラメータテーブル]が表示され、ここで、コマンドの戻り値を受け取る項目を指定します。

SQLコマンドの結果を受け取るための項目は、論理型を使用します。親または、自タスクで定義された項目を定義できます。全てのタイプのSQLコマンドは、戻り値に値を返しますが、この使用は任意です。

戻り値が定義された場合は「1」、定義されない場合は空白が返ります。


埋め込みSQL アシスト

アシストユーティリティ

データビューエディタ > 埋め込みSQL

アシストユーティリティを利用すれば、テーブルやカラムのデータベース名が組み込まれたSQL 文を簡単に作成できます。SQL コマンドアシストユーティリティは、SQL コマンドを使用する時の前提条件となる、SQL 言語の知識に代わるものではありません。

アシストユーティリティのウィンドウには、以下のアクションボタンと選択一覧で構成されています。

ボタン

  • 表示切替……[SQLコマンド]欄の表示を、Magicでのテーブル名とRDBMSでのテーブル名で相互に切り替えることができます。

  • クリア…… [SQLコマンド]欄をクリアする場合に使用します。

選択一覧

  • キーワード一覧 …… SQLコマンドの一覧

  • 演算子一覧 …… SQL演算子の一覧

  • テーブル一覧 …… [データベース]欄で指定されたデータベース内のテーブルの一覧

  • メンバー一覧 …… 指定したテーブル内のカラム一覧

アシストユーティリティを使用してデータベース内にあるテーブルやカラムの名前を参照することができますが、このユーティリティを利用して構文を組み立てる場合は注意が必要です。

例えば、アシストユーティリティは次のような構文を作成します。

SELECT ALL FROM EMPLOYEE

しかし、これは正しい構文ではありません。正確な構文は以下のようなものです。

SELECT * FROM EMPLOYEE

参照

アシストユーティリティの使用


埋め込みSQL アシスト 使用

アシストユーティリティの使用

データビューエディタ > 埋め込みSQL > アシストユーティリティ

アシストユーティリティを使用するには:

  1. [SQLコマンド]ダイアログの[アシスト]ボタンをクリックします。[SQLアシスタ]ダイアログが表示されます。

  2. [キーワード一覧]から１つのキーワードを選択してEnterキーを押し、[SQLコマンド]ボックスにその選択したキーワードを挿入します。続いてメンバ名、テーブル名、演算子も同じ方法でそれぞれの一覧から選択します。

[テーブル一覧]は、Magicにおける名前とRDBMSにおける名前のどちらかで表示させることができます。[表示切替]ボタンをクリックすると、Magicでのテーブル名とRDBMSでのテーブル名を相互に切り替えることができます。Magic名とRDBMS名のどちらから選択した場合でも、SQL文にはRDBMS名が示されます。

[テーブル一覧]には、Magicの[データ]リポジトリに定義されているテーブルだけが表示されます。ただし、[データ]リポジトリで定義されていないテーブルであっても、データベース内で使用可能なそれらのテーブルにアクセスするSELECT文を定義することはできます。


埋め込みSQL アシスト キーワード一覧

キーワード一覧

データビューエディタ > 埋め込みSQL > アシストユーティリティ

[キーワード一覧]には、SQLコマンドで使用できるSQLのキーワードの一覧が含まれています。SQLコマンドの規則に従って、選択された値が[SQLコマンド]欄に挿入されます。

参照

アシストユーティリティ


埋め込みSQL アシスト 演算子一覧

演算子一覧

データビューエディタ > 埋め込みSQL > アシストユーティリティ

[演算子一覧]には、SQLコマンドで使用できるSQLの演算子の一覧が含まれています。SQLコマンドの規則に従って、選択された値が[SQLコマンド]欄に挿入されます。

参照

アシストユーティリティ


埋め込みSQL アシスト テーブル一覧

テーブル一覧

データビューエディタ > 埋め込みSQL > アシストユーティリティ

[テーブル一覧]には、[SQLコマンド]ダイアログの[データベース]欄で指定されたデータベース内のテーブルに含まれている全てのテーブルが表示されます。

これらは、Magicでデータビューを構成できるテーブルです。データベースの中には、Magicが対応できないテーブルが含まれているかもしれません。このような場合は、[SQLコマンド]欄に手動でSQLコマンドを入力してください。[テーブル一覧]からテーブルを選択すると、使用するRDBMSに対応した書式でSQLコマンドが挿入されます。

テーブルとカラムの名を指定する際、データベースによっては完全な表記法によって指定する必要があります。(SQLコマンド表記法については、使用するRDBMSのドキュメントを参照してください。）

一覧には、デフォルトでMagicの[データ]リポジトリ上での名前が表示されます。

SQLコマンドの規則に従って、値を選択してください。

参照

アシストユーティリティ


埋め込みSQL アシスト メンバ一覧

メンバー一覧

データビューエディタ > 埋め込みSQL > アシストユーティリティ

[メンバ一覧]には、[テーブル一覧]で選択されたテーブルの全てのカラムが表示されます。一覧からカラムを選択すると、カラムのデータベース名が、使用するDBMSに対応した書式で[SQLコマンド]欄に挿入されます。

カラム名を指定する際、データベースによっては完全な表記法によって指定する必要があります。(SQLコマンド表記法については、使用するRDBMSのドキュメントを参照してください。）

一覧には、Magicの[データ]リポジトリ上でのカラム名が表示されます。

SQLコマンドの規則に従って、値を選択してください。

参照

アシストユーティリティ


埋め込みSQL アシスト SQLコマンド

SQL コマンド

データビューエディタ > 埋め込みSQL > アシストユーティリティ

[SQLコマンド]欄には、SQLコマンドが入力されます。

４つの選択テーブルからキーワード、演算子、テーブル名、およびカラム名を選択したり、直接ステートメントを入力することができます。

一覧をダブルクリックすると選択できます。選択された値がカーソル位置に挿入されます。選択値の挿入モードはMagicの現在の挿入モードに依存します。挿入状態の場合は既存のテキストの間に挿入され、上書き状態の場合は、カーソル位置から上書きされます。

これらの操作は、マウスを使用しなくても以下の内部イベントを利用することでキーボード操作によって実行できます。

  • SQLキーワード

  • SQL演算子

  • SQLテーブル

  • SQLカラム

参照

アシストユーティリティ


埋め込みSQL APG

SQL コマンドのAPG

データビューエディタ > 埋め込みSQL

SQL APG ユーティリティは、プログラマが入力したSQL 文を使用してMagicプログラムを作成します。SQL APG の実行だけが、SELECT文の実行前にその構文を検査できる唯一の方法です。このユーティリティは、SELECT文やストアドプロシジャに基づくMagic タスク構造を生成します。

生成されるタスクには、次の項目が含まれています。

  • 元のSQL コマンド

  • 選択したテーブルの全カラムに対応した変数項目

  • 自動的に作成された全ての変数項目を含んだ[出力パラメータ]

  • ユーザとの対話に使用するデフォルトのフォーム

開発者は、SQL コマンドの[入力パラメータ]を必要に応じて定義したり、デフォルトのフォームを変更するだけで基本的なプログラムを作成できます。

Unicode対応

[SQLコマンド]ダイアログからAPGを実行すると、Magicはタスクを作成します。

結果が返るステートメントが定義された場合、定義されたカラムがデータベース上ではUnicodeのフィールドとして定義されている場合、Unicodeのカラムとして作成されます。


埋め込みSQL SELECT文の動作

埋め込みSQLのSELECT文の動作

データビューエディタ > 埋め込みSQL

結果データベースを持つ埋め込みSQL文の中には、Magic での動作が異なるものがいくつかあります。

埋め込みSQL文は常に、[タスク前]の前に実行されます。このため[タスク前]が実行される時点では、そのSQL文はすでに実行されていることになります。

オンラインタスクとバッチタスクの比較

オンラインタスクの場合は、以下のようになります。

  • SELECT文の結果を表示する必要があります。

  • Magicは一時的な結果テーブル/ファイルを作成して全部のレコードをそこに挿入するため、ユーザはそれらのレコードをスクロールできます。このテーブルはタスク終了時に削除されます。

バッチタスクの場合は、以下のようになります。

  • レコードは全て１度限り読み込まれるため、前に戻る必要はありません。

  • MagicはSELECT文に従ってカーソルをオープンし、全てのレコードを１つずつ順番にフェッチします。

結果データベースと入力データベースが同じ場合

このオプションを選択すると、結果データベースを入力データベースと同じにすることができます。ほとんどの場合、基礎となるRDBMS では次の文を使用できます。

INSERT INTO table AS SELECT...

この文は1 回のコマンドで全データをテーブルにコピーしています。この方法はカーソルをオープンするよりも高速です。レコードは全てクライアントから取得され、結果テーブルに挿入されます。

このような場合、SQL ゲートウェイはデータベース内にテーブルを作成し、次の文を送信します。

INSERT INTO temp_table AS direct SELECT statement

その後、ユーザはこのテーブルをスクロールしてSELECT 文の実行速度を向上させることができます。この方法では一時ファイルから個々のレコードを取り出したりそこへ挿入したりする処理がないため、結果セットが大きい場合には特に有効です。

結果データベースと入力データベースが異なる場合

結果データベースが入力データベースと異なる場合は、一時テーブルが作成され、SELECT 文の結果のレコードが全てこの一時テーブルに格納されます。その後、タスクはこの一時テーブルをメインソースとしてスクロールできます。

推奨事項

  • 結果が大量になる場合は、結果データベースを入力データベースと同じにするオプションを利用するのが最善です。

  • 結果が比較的小さくなる場合は、結果データベースとして、クライアントに常駐するISAM データベースを指定するのが最善です。そうすることで、結果を作成してそれをスクロールする時の作業がクライアント上だけで済むため、ネットワークトラフィックが減少します。

  • 結果が比較的小さくなる場合は、メモリゲートウェイを使用することでパフォーマンスが向上します。

参照

結果データベース


埋め込みSQL 制約事項

埋め込みSQLの使用における制約事項

データビューエディタ > 埋め込みSQL

メインソースの代わりに埋め込みSQLが定義されているタスクは、通常のMagicタスクと同じ機能を持ちます。ただし、以下のような制約事項があります。

  • SQLコマンドで使用されている全てのテーブルは、[SQL コマンド]ダイアログの[データベース]欄で宣言されているデータベースのものでなければなりません。異なるデータベースのテーブルを組み合わせることはできません。

  • オンラインタスクでは、SQL コマンドのビュー（結果テーブル）のカラムを更新することはできません。また、更新しても、その更新はディスクには書き込まれません。これは、結果テーブルはタスクが終了すると同時に削除されるためです。更新を行いたい時には、別のテーブルをリンクして使用してください。

  • レコードが親タスクの現在のビューである場合、そのレコードの状態を変更するようなコマンドは使用しないでください。

  • バッチタスクの場合、項目のグループレベルを更新しないでください。グループレベル処理では、一つ前のレコードの更新が必要になりますが、バッチタスクの場合、タスクのデータストリームは一方通行で停止することができず、ブレイクレベルの更新を行うことができません。

  • バッチSQLコマンドでは、タスクレベルのトランザクションを使用します。

  • 埋め込みSQLでCOMMIT、ROLLBACK の各コマンドを使用した場合、それらがMagicのトランザクション内で生成されないと、その結果は予測できません。COMMIT とROLLBACK は、Magic のタスクレベルテーブルで適切なトランザクションモードを選ぶことによってのみ正常に機能します。

  • SQL文はRDBMS によって実行されます。コマンドの構文を決めるのは開発者の責任であり、開発者はDBMS 固有の拡張機能を自由に利用できます。ただし、各種のSQL DBMS間でアプリケーションの可搬性が必要とされる場合は、DBMS 固有のSQL 拡張を埋め込みSQL に組み込まないように注意してください。これはMagic が作成したSQL 文では問題となりません。Magic ゲートウェイはデータベースごとに、正確で最適化された構文を生成します。

  • 埋め込みSQL をオンラインタスクで使用すると、Magic によって一時テーブルが作成されます。このテーブルは任意にデータベース内に作成できます。通常は、Magic に各レコードの読み取りと書き込みを行わせるより、RDBMS のユーティリティを利用してその同じRDBMS 内に一時テーブルを作成する方が効率が高くなります。

  • 埋め込みSQL タスクの範囲指定は使用できません。

  • ストアドプロシジャを実行する時は、以下の形式で名前のすぐ前にexec を指定します。

exec sp_order_update

  • APG で作成されたステートメントは、ゲートウェイにより実行されます。この場合、結果セットの形式も正しく解釈されます。また、データの取り出しだけでなく、データを変更するステートメントも作成できます。

  • DB2 UDBとODBC は、埋め込みSQL の結果データベースとして利用できません。


埋め込みSQL バインディング変数

バインディング変数

データビューエディタ > 埋め込みSQL

埋め込みSQL タスクを使用する場合、Magic はSQL ステートメントをデータベースに送ります。データベースは、文字か数字の文字列としてSQL ステートメントを受け取り、それを解析し実行します。

SQL ステートメントの一部は、事前に定義された値に対するプレイスホルダになることができます。

プレイスホルダを値に置き換えることは「バインディング」と呼ばれます。これによって、データベースによるSQL ステートメントの解析処理が何度も行われることがなくなります。

バインディング変数の制限

  • SQLステートメントのバインディング変数は、Oracle でのみ有効です。

  • バインディング変数は、SELECTステートメントか戻り値を返すストアドプロシジャでのみ有効です。

  • バインディング変数は、チルダ(~) で指定します。例えば以下のように指定します。

Select * from table where field1 = ~1 and field2 > ~2

  • バインディング変数は、文字型と論理型、数値型でサポートされます。文字列に対して、アポストロフィ（`）は、必要ありません。Magic は、日付型や時刻型、論理型、数値型は、数値として扱います。

  • Oracle 上のパラレルデータタイプが数値の場合、バインディング変数が使用できます。

注意：

バウンド（~） とアンバウンド指定を含んだSQLステートメントでは、バインディング変数の利点が無効になります。


埋め込みSQL 遅延トランザクション

遅延トランザクション内での埋め込みSQL

データビューエディタ > 埋め込みSQL

Magic は、全てのタイプのタスクモード（ブラウザ、オンライン、およびバッチ）で埋め込みSQL を定義することができます。

[SQL コマンド]ダイアログからタスクを作成する場合、APG の[オプション]から「R=ブラウザ」を選択することで、埋め込みSQL のブラウザタスクを作成することができます。

ブラウザタスクで、ステートメントを選択し、ストアドプロシジャを呼び出すことができます。UPDATEやINSERTといったDMLステートメントは使用できません。

埋め込みSQL の行が、他のテーブルにリンクされている場合、埋め込みSQL でない行にリンクされたデータは、トランザクションキャッシュ内に保存されます。これは、遅延トランザクション内で通用のリンクとして動作します。

ブラウザクライアントのサブフォームとして定義されたSQL タスクは、ブロックされます。SQL コマンドの実行タイミングによって、Magic がサブフォームを再表示しないようにします。


ソートテーブル

データビューエディタ >

[ソート]テーブルは、以下からなる複合ウィンドウです。

  • ウィンドウの左側にあるセグメントテーブル

  • ウィンドウの右側にある項目一覧

セグメントがテーブル内に表示される順序は、大から中、小となっており、この順序で、ソート順が決まります。

実行時にレコードをソートする方法については、ソートを参照してください。

参照

項目

項目名

サイズ

方向

ソートタイプ

RDBMSによるソート


ソートテーブル 項目

項目

データビューエディタ > ソートテーブル

セグメントとして使用する実データ項目または変数項目のシンボル名を指定します。

直接入力するか、右側にある[項目一覧]にズームしてデータ項目を選択することができます。[項目一覧]から[メンバー]テーブルにズームすることで、カラムの情報を確認することができます。


ソートテーブル 項目名

項目名

データビューエディタ > ソートテーブル

ここには、セグメントとして選択されたデータ項目の名前が表示されます。このカラムを編集することはできません。


ソートテーブル サイズ

サイズ

データビューエディタ > ソートテーブル

選択されたデータ項目が文字型/Unicode型の場合のみ、この特性を変更してセグメント項目の中でソートの対象となるデータの最大サイズを短縮することができます。デフォルトでは、データ項目のサイズがそのまま設定されます。

この特性は、パフォーマンスとメモリを考慮するためのものです。ソートの対象となる文字数が、項目の実サイズよりも小さいことがわかっている場合には、必要なデータ長を調整してソートすることにより、インデックスセグメントを短くすることができます。この場合、インデックス空間の利用率が高まるため、ソート処理は速くなり、ソートファイルが小さくなります。

SQL データベースでは、フィールドの一部でのソートをサポートしていません。


ソートテーブル 順序

方向 (デフォルト:A=昇順)

データビューエディタ > ソートテーブル

照合順序に基づくソートの方向を指定します。

  • A=昇順……セグメントのソート方向は「昇順」です。

  • D=降順……セグメントのソート方向は「降順」です。

Magicで使用できるデータベースには、例えば、セグメントの個数やインデックスに使用できる最大サイズなどに関する固有の制限がある場合があります。ソートテーブルを作成するには、[設定/動作環境]ダイアログの[動作設定]タブにある[ソート/一時用データベース]を使用します。

いかなる場合も特定のデータベースゲートウェイで開発する時には、データベース制限に関して定義がチェックされ、その結果に応じて入力が求められます。

SQLデータベースでのソートでは、[RDBMSによるソート]機能が使用できます。


ソートテーブル ソートタイプ

ソートタイプ (デフォルト:インデックスに依存)

データビューエディタ > ソートテーブル

この特性では、ソートで使用するカラムがユニークであることをMagicに通知できます。これは、データソース特性の位置の値をSQLテーブルのORDER BY句に加える必要はないということをMagicに通知する設定です。

  • ユニーク ……ソートで使用されるカラムはユニークです。SQLゲートウェイは、位置の値をORDER BY句に追加しません。

  • インデックスに依存 ……既知の全てのインデックスをスキャンして、ソートのユニーク性を判別します。ソートセグメントにユニークなインデックスが含まれている場合、ソートはユニークと定義されます。そうでない場合は、ソートはユニークでないと定義されます。


ソートテーブル RDBMSによるソート

RDBMSによるソート

データビューエディタ > ソートテーブル

SQL データベースを使用する場合、RDBMS エンジンはORDER BY句を使用して、行を動的にソートすることができます。この時、ISAM ファイルで要求されているインデックスを定義する必要はありません。プログラムでのソートの定義方法は変わりませんが、メインソースと結合テーブルの一部として全てのカラムがソートされると、RDBMSでソートできるようになります。RDBMS でソートすることができない場合、Magic ではMAGIC.INI ファイルで定義されているソートデータベース内の一時ファイルを使用して行をソートします。

タスクでのソート方法はこのテーブルの仮想インデックスの定義方法と同じです。さらに、このソート方法は追加仮想インデックスを定義する必要性を最小限に抑え、エンドユーザからのインデックスの要求を満たします。

ソートを定義すると、Magic ではタスクのSELECT文を再発行します。そして次の条件が満たされていると、インデックスに準拠して生成されたORDER BY 句をソートで使用されるカラム名に置き換えます。

  • ソートセグメントは全てメインソース、または内部リンク、外部リンクテーブル中の一部でなければなりません。それ以外の場合、RDBMS によるソート機能は使われず、一時ソートファイルが作成されます。

  • 全てのソートセグメントは、RDBMS でソート可能なデータ型であること。例えば、MS-SQL Server ではBIT データ型をソートすることはできません。そのため、データベース内でBIT にマッピングされるソートセグメントを使用してソートする時には、RDBMS によるソート機能は使用されず、MAGIC.INI ファイルで定義されたソートデータベースを使った一時ソートテーブルを作成します。

  • Magicでは、常にユニークなORDER BY句が必要となります。ORDER BY句がユニークであると指定しない場合や、Magic でソートセグメントの組み合わせがユニークであると決定できない場合、位置インデックスセグメントがORDER BY 句に追加されます。

  • 最終的にORDER BY句となるソートを定義すると、RDBMSオプティマイザはインデックスを使用せずにクエリを実行しますが、さらに効率的な方法でクエリを実行するために異なるアクセス方法を使用した方が良い場合があります。

  • 外部リンクテーブルのカラムをソート項目に指定した場合にORDER BY句に付加されるのは、物理トランザクションモードの時のみです。


ソートテーブル 項目一覧

項目一覧

データビューエディタ > ソートテーブル

利用可能な項目が一覧表示されます。現在のタスクで利用可能な項目のみ表示されます。[項目一覧]にカーソルを置いた状態でズームすると、[カラム]テーブル（または[変数]テーブル）が表示され、項目の詳細情報を参照することができます。


[ロジック]エディタ

[ロジック]エディタは、１つのエディタ内でタスクの論理セグメントを全て定義します。ここは、大きく分けて２つの種類のユニットで構成されています。

  • ヘッダ行 …… ロジックユニットを定義します。[編集]メニューから[ヘッダ行作成]（Ctrl+H）をクリックすると作成されます。

  • 詳細行 …… 処理コマンドを定義します。[編集]メニューから[行作成]（F4）をクリックすると作成されます。

ヘッダ行で定義された全ての処理コマンドは、そのロジックユニットの一部になります。詳細行は、ヘッダ行の下にインデント表示されます。これによって定義された処理コマンドがロジックユニットの一部であることがわかります。

注意：

[ロジック]エディタでは、重複したロジックユニットを定義できません。

[特性]シートには、各ロジックユニットや処理コマンドに対応した特性値が表示されます。

参照

[ロジック]エディタイベント

[ロジック]エディタでの操作

ロジックユニット

処理コマンド


ロジックエディタ イベント

[ロジック]エディタのイベント

ロジックエディタ >

[ロジック]エディタ上では以下のイベントが有効になります。

全て展開

ロジックユニットの全てのセクションが展開表示されます。

全て縮小

ロジックユニットの全てのセクションが縮小表示されます。

照合移動

カーソルが現在の行と相対関係にある行に移動します。相対関係のあるロジックユニットには以下のものがあります。

  • タスク前 - タスク後

  • レコード前 - レコード後

  • グループ前 - グループ後

  • コントロール前 - コントロール検証 - コントロール後

  • ブロック If - ブロック Else（同じブロック内の 全てのElse オプション） - ブロック End

  • ブロック While - ブロック End

相対関係にある行が存在する行でパークしている時、[編集]メニューの[クイックアクセス／照合移動]をクリックすると、カーソルが次に相対する行に移動します。相対する行が見つからない場合、[ロジック]エディタの先頭行から検索します。

相対するヘッダ行に移動するには、ヘッダ行にパークしていなければなりません。詳細行から相対するヘッダ行に移動することはできません。

次のヘッダ行

このイベントは、カーソルを次のロジックユニットに移動します。Alt+Ctrl+Nでイベントが実行されます。次のロジックユニットが存在しない場合、カーソルは現在の行にパークします。ヘッダ行や詳細行から次のロジックユニットに移動することができます。

前のヘッダ行

このイベントは、カーソルを前のロジックユニットに移動します。Alt+Ctrl+Pでイベントが実行されます。前のロジックユニットが存在しない場合、カーソルは現在の行にパークします。ヘッダ行や詳細行から前のロジックユニットに移動することができます。

プログラムの保存

このイベントは、プログラムの編集中に編集内容を保存します。[オプション]メニューの[プログラムを保存]をクリックするか、Ctrl+Sを押下することでプログラムの全ての修正内容がプロジェクトのソースファイルに保存されます。

[編集]メニューの[キャンセル]（Ctrl+F2）をクリックすると最後の保存以降のタスクの全ての変更内容がキャンセルされます。変更内容の保存によって、Magicはタスクの実行環境全体を調整します。その際、個々の[タスク]エディタ内で更新された情報を保存するような忠告は表示しません。

以下のタスクオブジェクトから保存を行うことができます。

  • [ロジック]エディタ

  • [データビュー]エディタ

  • [フォーム]エディタ

  • [入出力]テーブル

  • [イベント]テーブル

行番号の表示／非表示

このイベントは、テーブルの行番号の表示／非表示を切り替えます。行番号を非表示にすると、テーブルの他のカラム表示が左に移動します。

参照

タスクロジックのスキーマ

ロジックユニットの自動作成

RM互換


ロジックエディタ 操作

[ロジック]エディタでの操作

ロジックエディタ >

[ロジック]エディタは、以下のキーボードとマウス操作をサポートします。

行内の項目間移動

  • 次項目（Tab） …… Tabキーによって、カラムからカラムへ左から右へカーソルが移動します。

  • 前項目（Shift+Tab） …… Shift+Tabによって、カラムからカラムへ右から左へカーソルが移動します。

  • 項目先頭（Alt+←） …… Alt+←によって、行内の先頭カラムにカーソルが移動します。

  • 項目末尾（Alt+→） …… Alt+→によって、行内の最後のカラムにカーソルが移動します。

  • 任意のカラム（マウスクリック） …… クリックしたカラムにカーソルが移動します。

行間移動

  • 次行 …… ↓

  • 前行 …… ↑

  • 次ページ …… Page Down

  • 前ページ ……・Page Up

  • 最終行 …… Ctrl+END

  • 先頭行 …… Ctrl+HOME

  • 任意の行 …… マウスクリック

  • 行ジャンプ …… Ctrl+J（縮小表示されたユニット内の行に移動すると、ユニットは自動的に展開表示されます。）

階層表示の操作

  • ノード展開 …… プラス(+)キーまたは、 [image] アイコン。[全てを展開]イベントは、全てのノードが展開表示されます。

  • ノード縮小 …… マイナス(-)キーまたは、 [image] アイコン。現在パークしているセクションを縮小すると、ヘッダ行の最初のカラムにカーソルが移動します。 [全てを縮小]イベントは、全てのノードが縮小表示されます。

  • 照合移動 …… 現在の行と相対する行にカーソルが移動します。詳細は、「[ロジック]エディタのイベント」を参照してください。


ロジックエディタ ロジックユニット

ロジックユニット

ロジックエディタ >

ヘッダ行は、ロジックユニットを表しています。

各ロジックユニットは、先頭行（ヘッダ行）に表示されるコンボボックスで、ユニットのタイプが指定されます。

  • タスク前／後 …… これらのロジックユニットには、タスクの起動／終了時に実行される処理コマンドを定義します。
    [タスク前]ロジックユニットは、タスクの初期設定処理のために使用されます。
    [タスク後]ロジックユニットは、タスクの終了処理（タスク呼び出しのパラメータの更新や合計値の印刷処理など）のために使用されます。

  • グループ前／後 …… これらのロジックユニットには、ブレイク項目の値が変化すると実行される処理コマンドを定義します。バッチタスクでのみ有効です。
    [グループ前]ロジックユニットは、ブレイク項目に新しい値が入力されるとレコードグループの開始処理として呼ばれます。このロジックユニットは、通常、グループヘッダを印刷する処理で使用されます。
    [グループ後]ロジックユニットは、変更されたブレイク項目をもったレコードの処理を実行するために呼ばれます。このロジックユニットは、通常、グループフッタを印刷する処理で使用されます。

  • レコード前／後 …… [レコード前]ロジックユニットには、ディスクからレコードが読み込まれる直後で、対話処理を開始する前に、各レコードごとに実行される処理コマンドを定義します。このロジックユニットは、レコードの初期設定に関わる処理にために使用されます。
    [レコード後]ロジックユニットには、変更されたレコードの更新を行うための処理コマンドを定義します。オンラインタスクの場合、レコードが変更されていなければ実行されません。バッチタスクの場合は、各レコードごとに実行されます。

  • コントロール前／検証／後 …… [コントロール前]ロジックユニットは、特定のコントロールにカーソルが入った場合に実行される処理コマンドを定義します。このユニットは、特定のコントロールの初期設定処理を行う場合に使用されます。コントロールのロジックユニットは、レコードのロジックユニットの後に実行されます。
    [コントロール検証]ロジックユニットは、特定のコントロールからカーソルが出た場合に実行される処理コマンドを定義します。このユニットは、[コントロール後]の前に高速モードでコントロールを通過した場合も実行されます。
    [コントロール後]ロジックユニットは、カーソルがコントロールを離れる直前にコントロールの終了処理を実行する処理コマンドを定義します。

  • 項目 …… このロジックユニットでは、「C=変更」のみ有効です。特定のデータ項目が変更された場合に実行される処理コマンドを定義します。

  • イベント …… 指定されたイベントが実行された時に実行される処理コマンドを定義します。[イベント]ダイアログにズームして、イベントを選択します。詳細については、「ユーザ定義イベント」を参照してください。

  • 関数 …… ユーザ定義関数を定義します。

参照

タスクロジックのスキーマ

ロジックユニットの自動作成

Magicエンジン


ロジックエディタ ロジックユニット スキーマ

タスクロジックのスキーマ

ロジックエディタ > ロジックユニット

ロジックユニットは、基本的には、指定されたレベルにかかわらずどの位置にも定義できます。例えば、[タスク後]は、[ロジック]エディタ内のどの位置にも定義できます。

ただし[グループ]レベルの場合は、一番最初にブレイクが発生する順に[ロジック]エディタの上から（前、後の順に）定義する必要があります。

参照

ロジックユニット自動作成


ロジックエディタ ロジックユニット RM互換

RM互換

ロジックエディタ > ロジックユニット

Magic V10は、タスクロジックとデータビューのエディタが個別に用意されていますが、V9Plus以前までサポートされていたレコードメインの互換機能が提供されています。

Magic V9PlusのアプリケーションをVer10のプロジェクトに移行すると、レコードメインは[RM互換]ロジックユニットに変換されます。ここではロジック（処理コマンド）が、V9Plusのレコードメインと同じように定義することができます。

このロジックユニットは、[データビュー]エディタで入力されたデータ項目の全てが表示され、そのデータ項目の間にロジックを定義することができます。ただし、ここでデータ項目を定義することはできません。

この機能を有効にするには、MAGIC.INIファイルの[MAGIC_SPECIALS] セクションで以下のように設定してください。

SpecialRMCompatibleLogic = Y

この設定を行った後、Magicを再起動すると、新規に作成されたタスクでRM互換が有効になります。

このロジックユニットは以下の動作します。

  • [データビュー]エディタで定義されたデータ項目が自動的に作成されます。また、[データビュー]エディタでの変更内容が同期を取って更新されます。

  • コントロールに対するタブ順序は、ロジックユニットに表示されるデータ項目の順番になります。

  • オンラインタスクには、1つの[RM互換]のみ定義できます。ブラウザタスクやバッチタスクでは無効です。

  • Magic V9Plusアプリケーションを、Magic Ver10のプロジェクトに移行すると、[ロジック]エディタに[RM互換]として変換します。この変換処理には、SpecialRMCompatibleLogicフラグの設定は不要です。

  • [RM互換]では、V10の新機能である、[ブロック]処理コマンドの「While」オプションが指定できません。

  • 項目の参照定義は、ユーザでは定義できません。[クロスリファレンス]ユーティリティでは、この参照定義を検索することができません。

参照

[RM互換]ロジックユニット

[データビュー]エディタとの同期処理

RM互換での操作

RM互換とタブ順序


ロジックエディタ ロジックユニット RM互換 ロジックユニット

[RM互換]ロジックユニット

ロジックエディタ > ロジックユニット > RM互換

Magic V9PlusのアプリケーションをVer10のプロジェクトに移行すると、レコードメインは[RM互換]に変換されます。ここではロジック（処理コマンド）が、V9Plusのレコードメインと同じように定義することができます。

RM互換は、MAGIC.INIの[MAGIC_SPECIALS]セクションで SpecialRMCompatibleLogic=Y と設定された場合のみ定義することができます。[ロジック]エディタで、コンボボックスから「M=RM互換」を選択することができます。

[RM互換]のヘッダ行では、詳細行を追加できません。各タスクに登録できる[RM互換]は、オンラインタスクに1つのみです。このロジックユニットが割り当てられると、これ以外のヘッダ行のコンボボックスに[M=RM互換]が表示されなくなります。[RM互換]のヘッダ行を削除すると、[RM互換]を再び定義できるようになります。

このロジックユニットの、項目定義は灰色で表示されており修正できない状態になっていますが、詳細行を追加するような修正処理を行うことができます。

タスクのタイプをオンラインからバッチまたはブラウザタスクに変更した場合、[RM互換]は、無効な状態に表されます。タスクのタイプをオンラインに戻した場合、[RM互換]は有効になります。

参照

RM互換

[データビュー]エディタとの同期処理

RM互換での操作

RM互換とタブ順序


ロジックエディタ ロジックユニット RM互換 同期処理

[データビュー]エディタとの同期処理

ロジックエディタ > ロジックユニット > RM互換

このロジックユニットの内容は、[データビュー]エディタと同期を取って更新されます。

[データビュー]エディタ内の全てのデータ項目の参照行が、[RM互換]に表示されます。各参照行は、灰色で表示されます。

参照行には、以下のカラムが含まれています。

  • タイプ …… 変数、パラメータ、カラム、リンクカラム

  • 項目のシンボル名

  • 名前 …… [ソーステーブル名].[カラム名]

  • 型 …… 例：A=文字、N=数値、D=日付、B=BLOB

  • 書式 …… 表示される場合の形式

削除

参照行は削除することができません。また、手動で追加することもできません。参照行を含めてマルチマークして削除した場合、参照行以外が削除されます。

移動登録

参照行は、移動することができません。参照行を含めて移動範囲を指定した場合、参照行以外が移動されます。

複写登録

参照行は、複写することができません。参照行を含めて移動範囲を指定した場合、参照行以外が複写されます。

上書登録

参照行は、他の行で上書きすることはできません。参照行にパークした場合、[上書登録]は無効になります。

カット&ペースト

参照行は、同じロジックユニット内にカット&ペーストすることができません。参照行を含んだ行の範囲を他のロジックユニットに貼付けた場合、選択されたヘッダ行内のロジック詳細行のみコピーされます。

参照

RM互換

[RM互換]ロジックユニット

RM互換での操作

RM互換とタブ順序


ロジックエディタ ロジックユニット RM互換 操作

RM互換での操作

ロジックエディタ > ロジックユニット > RM互換

[RM互換]ロジックユニット内の参照行にパークしている場合、コンテキストメニューや[編集]メニュー内の[クイックアクセス]から[定義に移動]イベントにアクセスすることができます。

[データビュー]の項目定義の行にパークされていて、[RM互換]が定義されている場合、[参照に移動]イベントが有効になります。このイベントは、[RM互換]に迅速に切り替えて、対応する参照行にパークします。

参照

RM互換

[RM互換]ロジックユニット

[データビュー]エディタとの同期処理

RM互換とタブ順序


ロジックエディタ ロジックユニット RM互換 タブ順序

RM互換とタブ順序

ロジックエディタ > ロジックユニット > RM互換

オンラインタスクを、RM互換で定義した場合、タブの移動順序は[データビュー]エディタ内の項目の定義順序によって決まります。[フォーム]エディタにおいて、[自動タブ順序]特性は無効になります、GUIフォーム上のコントロールの[タブ順序]特性は、表示されません。[RM互換]を削除すると、[自動タブ順序]特性が有効になります。

オンラインタスクに[RM互換]が定義されている場合、サブフォームがタブ順序において最後のコントロールとなります。サブフォームが複数定義されている場合、[データ]特性が定義されたコントロールの最終タブ順序以降のタブ順序から始まり、上辺位置、左辺位置、Zオーダに基づいて順番に設定されます。

[RM互換]ロジックユニットが有効な場合、[サブフォーム]コントロールにはパークできません。

参照

RM互換

[RM互換]ロジックユニット

[データビュー]エディタとの同期処理

RM互換での操作


処理コマンド

ロジックエディタ >

Magicは、[ロジック]エディタで使用できる10の処理コマンドを提供しています。式を追加したり、Mgaic関数や内部イベントなど使用してこれらの処理コマンドをカスタマイズすることができます。

コマンド名やショートカットキーを入力したり、コンボボックスから処理を選択することで処理コマンドを指定できます処理コマンドには以下のものがあります。

処理コマンド | オプション
コメント (デフォルト) |
項目更新 |
コール | プログラム サブタスク 式 公開名 リモート
外部コール | COM OS コマンド UDP(ユーザ定義) Web サービス
イベント実行 | システム 内部 ユーザ 公開イベント
アクション |
ブロック | If Else While End
エラー | エラー 警告 復帰
フォーム | 入力 出力
項目 | 変数 パラメータ

参照

ロジックユニット


処理コマンド コメント

コメント

ロジックエディタ > 処理コマンド

目的

  • テーブルを読みやすくするためや、グループ間の区切りとして[データビュー]エディタや[ロジック]エディタに空白行を挿入します。

  • プログラムにコメントを入力します。

[コメント]コマンドの行には、実際のコマンドは定義できません。

用途

  • プログラムの注釈文

特性

  • テキスト……デフォルトでは、その行が空白になります。この行には、文字を入力できます。最大128桁の文字が入力できます。


処理コマンド 項目更新

項目更新

ロジックエディタ > 処理コマンド

項目に値を代入する処理を行ないます。この処理コマンドを使用することで以下のようなことができます。

  • 項目に特定の値を入力します。

  • 帳票印刷処理やオンラインタスクで、値の合計処理を行うことができます。

  • バッチタスクで更新処理を行うことができます。

  • 異なるテーブル間で、レコードのコピーを行うことができます。

  • [強制更新]特性を「Yes」に設定した加算モードで項目更新を行うことで、データの整合性を維持することができます。

参照

項目更新特性


処理コマンド 項目更新 特性

項目更新特性

ロジックエディタ > 処理コマンド > 項目更新

Alt+Enterを押下するか、マウスを右クリックしてコンテキストメニューから[特性]を選択することによって、[項目更新]処理コマンドの[特性シート]に入ることができます。

[項目更新]処理コマンドには、以下の特性があります。

項目

値

加算

強制更新

フローモード

フロー方向

条件


処理コマンド 項目更新 特性 項目

項目

ロジックエディタ > 処理コマンド > 項目更新 > 項目更新特性

ここには、更新対象となる項目のシンボル名を入力します。直接入力するか、ズームして[項目一覧]から選択します。

上位タスクの項目を指定することもできます。


処理コマンド 項目更新 特性 更新値

値

ロジックエディタ > 処理コマンド > 項目更新 > 項目更新特性

[式]エディタに定義されている式番号を指定します。指定された式の内容で項目が更新されます。

[項目更新]処理コマンドでは、「代入更新」と「加算更新」の2 種類の更新が可能です。どちらの更新を行うかは、[加算]特性で指定できます。代入更新と加算更新では、式（更新式）の作成方法が異なります。

代入更新の場合の更新式

代入更新の場合、更新式から返った値が更新項目に入れられます。例えば、項目Bの値を累計し、その結果を項目A に入れたい場合、更新式は「A+B」となります。

加算更新の場合の更新式

加算更新は、リンクテーブルを扱っている場合に、データの整合性を維持したい時に使用します。この方法では、更新項目の現在の値が更新式の値の分だけ増加します。したがって、更新式には、加算する値だけを指定します。例えば、更新項目A の値を項目B の値の分だけ増加させたい時には、更新式は「A+B」ではなく「B」となります。


処理コマンド 項目更新 特性 加算

加算 (デフォルト:No)

ロジックエディタ > 処理コマンド > 項目更新 > 項目更新特性

Magicでは、項目の加算更新機能が可能です。これは、更新される式の内容が評価され、特定の規則に基づいて更新対象の項目に加算したり、減算したりするものです。

加算更新を使用する場合は、[レコード後]に[項目更新]処理コマンドを定義してください。この場合、レコードが編集された後に一回だけ[項目更新処]理コマンドが実行されます。

親タスクやリンクレコードのカラムに合計値を格納するような場合に加算更新を使用することができます。これらの場合に、サブタスクのレコード処理が実行された後に親レコードの処理が取り消されることを防止するために、[強制更新]特性を｢Yes｣に設定してください。

ここでは、加算更新を行なうかどうかを指定します。指定できる値は、以下のいずれかです。

  • No……代入更新を行いたい時に指定します。この場合、更新式から返った値が、更新項目に代入されます。項目の値の更新を行う場合、普通は、この方法を使用します。

  • Yes ……加算更新を行いたい時、この値を指定します。加算更新は、オンラインタスクでのみ有効です。この方法では、更新式から返った値が、更新項目の値に加算されます。または、減算されます。加算更新は、次の規則にしたがって実行されます。

  1. タスクの現在の処理モードが「登録モード」の場合、更新式の値が更新項目の値に加算されます。

  2. タスクの現在の処理モードが「修正モード」の場合、まず、更新項目の値から更新式の以前の値（a）が差し引かれ、その後、更新式の新規の値（b）が更新項目の値に加算されます。
    上記の説明のうち、更新式の以前の値（a）とは、レコードが読み込まれた後、更新式で指定されている項目に値が入った時に更新式が評価され、その結果、返った値をいいます。また、更新式の新規の値（b）とは、[項目更新]処理コマンドが実行された時に更新式が評価され、その結果返った値をいいます。

  3. タスクの現在の処理モードが「削除」モードの場合、更新項目の値から更新式の値が差し引かれます。

  4. 更新項目としてリンクテーブルの項目が指定されており、エンドユーザがレコードを操作している間にリンク条件が変更されたため、リンクレコードが新たに読み込まれた場合、次の処理が行われます。この処理は、データの整合性の維持のための処理です。まず、以前のリンクレコードの項目（更新項目となっている項目）の値から更新式の以前の値が差し引かれ、その後、新規のレコードの項目（更新項目となっている項目）の値に更新式の新規の値が加算されます。

加算更新の例

[仕入ファイル]と[商品ファイル]があり、[商品ファイル]は[仕入ファイル]にリンクされているとします。[商品ファイル]には[在庫]項目があり、ここに在庫数が格納されます。また、[仕入ファイル]には[数量]項目があり、この[数量]項目を使用して[在庫]項目の値を更新するとします。ここで、[在庫]項目を項目A、[数量]項目を項目B とします。この場合、項目A を項目B で更新することになります。更新は、加算更新で行います。この設定では、処理モードによって処理は次のようになります。[在庫]項目には、当初、「30」（A1）が入っているものとします。

  • 登録モードで、[数量]項目に「5」（B1）を入力すると、[在庫]項目の値は「35」（A2）になります。

  • 修正モードで、[数量]項目の現在の値が「5」（B1）で、その値を「7」（B2）に変更すると、[在庫]項目の値は、「35 － 5 ＋ 7 ＝ 37」で「37」（A3）になります。つまり、（A2）－（B1）＋（B2）＝ A3 ということになります。

  • 削除モードの場合、上で変更した仕入レコードを削除すると、[数量]項目の値はそのまま「7」（B2）が使われ、したがって[在庫]項目の値は「37 － 7 ＝ 30」で「30」（A4）となります。つまり、この場合、（A3）－（B2）＝ A4 という計算が行われます。

  • また、仕入レコードを削除せず（[数量]項目＝ 7、[在庫]項目の値＝ 37）、[在庫]項目の値が「50」のレコードに移動したとします。この場合、リンク条件が変更されたため新規のリンクレコードが読み込まれます。この時には、以前のリンクレコードの[在庫]項目の値は「37 － 7 ＝ 30」、新規のリンクレコードの[在庫]項目の値は「50 ＋ 7 ＝ 57」となります。

以上のように、加算更新では、自動的にデータの整合性が維持されるため、整合性維持のための処理は特に必要ありません。

参照

更新値


処理コマンド 項目更新 特性 強制更新

強制更新 (デフォルト:No)

ロジックエディタ > 処理コマンド > 項目更新 > 項目更新特性

この特性は、[項目更新]処理コマンドの実行後、[編集／キャンセル]（Ctrl+F2）コマンドをエンドユーザに対して有効にするか否かを指定します。

  • No …… [項目更新]処理コマンドが完了した時に、エンドユーザが[編集]メニューの[キャンセル]（Ctrl+F2）コマンドを使えるようになります。このコマンドを使用することで、エンドユーザは現在のデータビューの内容を元の状態に戻すことができます。この場合、それまでの更新は取り消されます。

  • Yes …… [項目更新]処理コマンドの実行後、エンドユーザは[編集]メニューの[キャンセル]（Ctrl+F2）コマンドを使えなくなります。したがって、エンドユーザは、データビュー（タスクで使われている更新項目）に対して加えられた変更を取り消すことはできません。

  • タスクのレベルが[レコード後]の場合、通常、この特性は「Yes」にしてください。このレベルでは、更新項目の値を元に戻すと、データの整合性が保てなくなることがあるためです。親タスクのレコードデータビューのデータを変更する処理では、一般に、エンドユーザによる更新の取消を禁止します。これで、子タスクのレコードがすでに書き込まれているのに、エンドユーザによって親タスクの更新が取り消されるという不都合を防ぐことができます。

  • 複数の子タスクを使用して親タスクのデータビューの項目を更新する場合でも、いずれかの子タスクの[項目更新]処理コマンドの[強制更新]特性を「Yes」にしておくだけで、エンドユーザによる更新の取消は防げます。


処理コマンド 項目更新 特性 フローモード

フローモード (デフォルト:C=両用)

ロジックエディタ > 処理コマンド > 項目更新 > 項目更新特性
ロジックエディタ > 処理コマンド > コール > コール特性
ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性
ロジックエディタ > 処理コマンド > エラー
ロジックエディタ > 処理コマンド > フォーム > フォーム出力 / フォーム入力
ロジックエディタ > 処理コマンド > ブロック

[フローモード]を使用して、タスクのメインウィンドウ上でのエンドユーザの操作に応じて、論理ブロックのコマンドをどのように実行させるかを指定できます。この特性は、[コントロール検証]と[RM互換]、[イベント]ロジックユニットでのみ有効です。

以下のオプションから選択できます。

  • S=通常 …… デフォルトの検索モードの場合のみ実行されます。 エンドユーザが[次項目]や[前項目]のイベントを使用して、カーソルを現在のコントロールから同じレコード内の前後のコントロールに移動した場合にこのモードになります。

  • F=高速 …… マウスクリックやイベント実行によって別レコードのコントロールにカーソルが移動した場合、このモードになります。フローが高速モードで動作した場合、エンジンはテーブルのレコードを検索し、この特性になっている処理コマンドのみ実行されます。必要に応じて[項目特性]の[代入]特性やリンク式が再計算される場合があります。

  • C=両用 …… 「高速」モードと「通常」モードの両方で有効になります。

以下のオプションは、[RM互換]のみ有効です。

  • B=前置 ……このオプションが設定されている場合、エンドユーザが現在のコントロール上にてズーム操作（F5）を行うことで処理コマンドが実行されます。このオプションは、[RM互換]ユニットでのみ有効です。

  • A=後置 ……このオプションが設定されている場合、エンドユーザが次のコントロール上にてズーム操作（F5）を行うことで処理コマンドが実行されます。このオプションは、[RM互換]でのみ有効です。


処理コマンド 項目更新 特性 フロー方向

フロー方向 (デフォルト:C=両方向)

ロジックエディタ > 処理コマンド > 項目更新 > 項目更新特性
ロジックエディタ > 処理コマンド > コール > コール特性
ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性
ロジックエディタ > 処理コマンド > エラー
ロジックエディタ > 処理コマンド > ブロック
ロジックエディタ > 処理コマンド > フォーム

この特性は、カーソルの移動方向によって処理の実行を制御する場合に使用します。この特性は、[イベント]、[コントロール]、[RM互換]の各ロジックユニットでのみ有効です。

以下のオプションが選択できます。

  • F=前方 …… Tabキーを押下した場合、カーソルがフォームの先頭から下方向に移動するフローを有効にします。

  • B=後方 …… Tabキーを押下した場合、カーソルがフォーム終端から上方向に移動するフローを有効にします。

  • C=両方向 …… 両方向の移動を有効にします。


処理コマンド 項目更新 特性 条件

条件 (デフォルト:Yes)

ロジックエディタ > 処理コマンド > 項目更新 > 項目更新特性

この特性には、論理条件を指定します。その論理条件から返る値にてコマンドを実行するかどうか制御できます。

指定できる値は以下の通りです。

  • Yes …… 条件が常に「True」であることを示しています。

  • No …… 条件が常に「False」であることを示しています。処理コマンドは実行されません。

  • 式番号 …… 処理コマンドの実行条件を動的に制御する場合に指定します。ここから[式]エディタにズームして実行条件の論理式を選択してください。


処理コマンド コール

コール

ロジックエディタ > 処理コマンド

この処理コマンドは、以下のオプションで指定したプログラムを呼び出す場合に使用します。

  • コールプログラム …… Magicのプログラムを呼び出します。呼び出す際にパラメータや戻り値を指定することができます。

  • コールサブタスク ……子タスクを呼び出します。[戻り値]特性はサポートしていません。

  • コール式 …… 呼び出すプログラムを式で定義することにより、実行時に呼出先を動的に指定できます。

  • コール公開名 …… 実行時にプロジェクトによって認識されたコンポーネントを呼び出します。

  • コールリモート …… リモートアプリケーションのプログラムを呼び出します。

Alt+Enter を実行すると[コール特性]にアクセスできます。

注意：

メインプログラムは、[コール]処理コマンドで呼び出せません。


処理コマンド コール プログラム

コールプログラム

ロジックエディタ > 処理コマンド > コール

プロジェクト内に定義されているMagicプログラム番号を指定することで、このプログラムを呼び出すことができます。これによって以下の処理が実現できます。

  • １対多のリレーションの処理が可能です。

  • 選択または参照用のデータ一覧の表示に利用できます。

  • エンドユーザに確認や入力を促す様々なウィンドウを表示できます。

特性

[コールプログラム]処理コマンドには、以下の特性があります。

プログラムID

パラメータ

戻り値

フォーム

出力先 (リッチクライアントプログラム用)

ロック

同期

コンテキストID

条件

使用の際の注意事項

  • [コールプログラム]処理コマンドは、通常、ズーム可能ウィンドウを表示したい時に使用します。

  • プログラムは以下の３つの方法で起動することができます。

  • [コールプログラム]処理コマンド

  • CallProg 関数

  • メニューを使用して独立したプログラムとして起動する。メニューによる起動の場合、渡されるパラメータには全てNULL値が割当てられます。

  • Magicプログラムは、そのプログラム自身を呼び出すこともできますし、パラメータを渡すこともできます。つまり、Magic のプログラムは、ネストを使用して有効範囲の中で再帰呼び出しが可能です。

注意：

[プログラム]リポジトリでプログラムを追加したり削除したりすると、追加や削除を行ったプログラムの行以降の番号が変わります。この[呼び出される式番号]として、そういった番号が返る式を指定していた場合、式も変更しなければなりません。その場合、PROGリテラルを使用することで自動的に番号が更新されるようにすることができます。例えば、論理項目「AB」を使い、その値に応じて「プログラム3」または「プログラム4」のどちらかが実行されるように指定していたとします。この時には、「IF（BA,‘3’PROG,‘4’PROG）」という式を作成します。

リッチクライアントの場合、起動されたプログラムがバッチの場合のみ、プログラムは値を返します。

これは、[コールプログラム]処理コマンドがサーバ上で実行され、クライアント側で実行されるリッチクライアントプログラムが終了するまで待たないからです。

参照

コール処理コマンド

コール特性


処理コマンド コール サブタスク

コールサブタスク

ロジックエディタ > 処理コマンド > コール

サブタスクは、サブルーチンとして実行されるプログラムと似ています。プログラムとサブタスクの違いは以下のとおりです。

  • サブタスクは、上位タスクで定義されたデータ項目を直接参照することができます。プログラムは、パラメータとして渡された場合に限り共有することができます。

  • サブタスクは、親タスクに付属しており、他のプログラムから呼び出すことはできません。プログラムは、再使用可能です。

  • サブタスクは[戻り値]を指定できません。

用途

[コールサブタスク]処理コマンドは、以下のように利用します。

  • サブルーチンの呼び出しに利用できます。

  • １対多のリレーションの処理が可能です。

  • 選択または参照用のデータ一覧の表示に利用できます。

  • エンドユーザに確認や入力を促す様々なウィンドウを表示できます。

特性

[コールサブタスク]処理コマンドには、以下の特性があります。

タスクID

パラメータ

フォーム

ロック

同期

条件

参照

コール処理コマンド

コール特性


処理コマンド コール 式

コール式

ロジックエディタ > 処理コマンド > コール

プロジェクト内に定義されているMagicプログラムを式で指定することで、このプログラムを呼び出すことができます。これによって実行時に起動するプログラムを動的に指定できます。

コールプログラムとの違いは、呼び出すプログラムの指定方法だけです。

  • コールプログラム …… [プログラム一覧]からプログラムIDを選択します。

  • コール式 …… [式]エディタに定義されているプログラムIDが返る式を指定します。

用途

[コール式]処理コマンドは、以下のように利用します。

  • サブルーチンの呼び出しに利用できます。

  • １対多のリレーションの処理が可能です。

  • 選択または参照用のデータ一覧の表示に利用できます。

  • エンドユーザに確認や入力を促す様々なウィンドウを表示できます。

特性

[コール式]処理コマンドには、以下の特性があります。

プログラムID

パラメータ

戻り値

フォーム

ロック

同期

コンテキストID

条件

参照

コール処理コマンド

コール特性


処理コマンド コール 公開プログラム

コール公開名

ロジックエディタ > 処理コマンド > コール

実行時にプロジェクトによって認識されたコンポーネントを呼び出します。

例：

  • まだ作成されていなかったり、手元とにまだないMagicプロジェクトをコンポーネントとしたい場合

  • 動的に起動プログラムを指定したい場合

[公開プログラム名]や[キャビネットファイル名]を指定することで、公開プログラムを呼び出すことができます。

特性

[コール公開名]処理コマンドには、以下の特性があります。

公開プログラム名

キャビネットファイル名

パラメータ

戻り値

フォーム

ロック

同期

コンテキストID

条件

参照

ローカルの公開プログラムの呼出

実行時の動作

トラブルシューティング


処理コマンド コール 公開プログラム ローカル

ローカルの公開プログラムの呼出

ロジックエディタ > 処理コマンド > コール > 公開名

[公開プログラム名]のみ指定されている場合、ローカルアプリケーション内のプログラムを呼び出します。

Magicは、現在のプロジェクトやロードされたコンポーネント内のプログラムを検索します。最初に検索されたプログラムが実行されます。プログラムが見つからない場合は、処理は失敗します。


処理コマンド コール 公開プログラム 実行時の動作

実行時の動作

ロジックエディタ > 処理コマンド > コール > 公開名

[公開プログラム名]や[キャビネットファイル名]が正しく指定されている場合、以下のように動作します。

  1. プロジェクトがロードされます。

  2. メインプログラムの [タスク前]が実行されます。

  3. 指定された公開プログラム名に対応するプログラムが実行され、指定されたパラメータがプログラムに渡されます。

  4. 呼ばれたプログラムが終了するとコマンド処理は完了し、パラメータや戻り値として指定された項目が更新されます。

  5. メインプログラムの[タスク後]が実行されます。


処理コマンド コール 公開プログラム トラブルシューティング

トラブルシューティング

ロジックエディタ > 処理コマンド > コール > 公開名

[コール公開名]処理コマンドは、以下のような場合に処理が失敗します。

  • 指定されたファイルが、有効なキャビネットファイルでない場合

  • 古いバージョンのキャビネットファイルやVer9のMFFファイルが指定された場合

  • 指定したアプリケーション内に、指定した公開プログラムが存在しない場合


処理コマンド コール リモート

コールリモート

ロジックエディタ > 処理コマンド > コール
分散アプリケーション > アプリケーションパーティショニング

[コールリモート]処理コマンドは、Magicプログラムからリモートサービスを呼び出すことができます。処理コマンドから返るステータスコードには、MRBに送信した際のリクエストIDや、エラーが発生した場合のエラーメッセージがあります。

リモートサービスにパラメータを渡すことができ、またパラメータを戻り値として使用することもできます。

[コールリモート]処理コマンドは、同期モードまたは非同期モードで実行することができます。

特殊な事例としてリモートサービスが起動元と同じシステム上で実行している場合があります。このような場合、同一システム内のMagicプロジェクト間で処理が行われることになります。

実行時の動作

実行時、[コールリモート]処理コマンドが検出されると、実行エンジンによって有効なサーバが検索されます。その後、リモートコマンドがMagicのリクエスタに渡されます。リモートコマンドの[ウェイト]特性の値が「No」の場合、クライアントの待機は行われません。[ウェイト]特性の値が「Yes」の場合、クライアントはいったん待機状態に入り、そのコマンドによる処理が完了すると（または、タイムアウトに達すると）、通常の動作に戻ります。その後、リモートコマンドが完了すると、リモートコマンドにより送られた項目が再計算され、後続のプログラムフローが再開されます。

特性

[コールリモート]処理コマンドには、以下の特性があります。

詳細 | 拡張
サービス プログラム名 パラメータ 戻り値 ロック ウェイト 条件 | 結果ファイル 戻り値コード エラーコード リクエストID 優先順位

参照

コール処理コマンド

コール特性


処理コマンド コール 特性

コール特性

ロジックエディタ > 処理コマンド > コール

Alt+Enterを押下するかマウスで右クリックして、コンテキストメニューから[特性]を選択すことで[特性]シートにアクセスすることができます。

[コール]処理コマンドには、以下の特性があります。

パラメータ

キャビネットファイル名

条件

出力先フレーム

出力先

フロー方向

フローモード

フォーム

ロック

リクエストID

優先順位

公開プログラム名

プログラム名

プログラム/タスクID

戻り値コード

エラーコード

戻り値

結果ファイル

コンテキストID

サービス

同期

ウェイト


処理コマンド コール 特性 パラメータ

パラメータ

ロジックエディタ > 処理コマンド > コール > コール特性

Magicは、パラメータを渡すために以下の2つのテーブルを使用します。

  • 一方の[パラメータ]テーブルは、呼び出し元のタスクのパラメータのみ表示します。ここには、渡したいパラメータとしてデータ項目や式を定義します。

  • もう一方の[パラメータ]テーブルは、呼び出し先のプログラムで定義されているパラメータ項目の一覧が表示されます。

ここからズームして[パラメータ]テーブルを表示させ、パラメータを定義します。

参照

パラメータの受け渡し


処理コマンド コール 特性 キャビネットファイル名

キャビネットファイル名

ロジックエディタ > 処理コマンド > コール > コール特性

呼び出したい公開プログラムが定義されているプロジェクトのキャビネットファイル名（*.ECF）を式で指定します。データベーステーブルの指定は必要ありません。


処理コマンド コール 特性 条件

条件 (デフォルト:Yes)

ロジックエディタ > 処理コマンド > コール > コール特性
ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性

[条件]特性には、処理コマンドを実行する論理条件を指定します。

  • Yes …… 条件が常に「True」であることを示しています。

  • No …… 条件が常に「False」であることを示しています。処理コマンドは実行されません。

  • 式番号 …… 処理コマンドの実行条件を動的に制御する場合に指定します。ここから[式]エディタにズームして実行条件の論理式を選択してください。


処理コマンド コール 特性 出力フレーム

出力先フレーム

ロジックエディタ > 処理コマンド > コール > コール特性

この特性は、ブラウザクライアントプログラムで使用されます。特定のフレームセットを使用してタスクをオープンする場合に使用されます。該当するフレームが存在しない場合は、このフレーム名を持つ新規ウィンドウが開きます。


処理コマンド コール 特性 出力先

出力先

ロジックエディタ > 処理コマンド > コール > コール特性

この特性は、呼び出されたプログラム（またはサブタスク）が、現在動作しているタスクの[サブフォーム]コントロールで開くか、独自のウィンドウで開くかを指定します。

SDIアプリケーションを開発する際、呼び出された各プログラムは独自のウィンドウを開きます。異なるプログラムを同じウィンドウで開く必要があるような場合にこの特性を使用します。。例えば以下のようなケースが考えられます。

  • 現在実行中のプログラムを置き換えるために、他のプログラムやタスクを呼び出すウィザードのようなアプリケーション

  • 現在動作しているプログラムを閉じ、同じウィンドウに別のプログラムを実行させるようにメニューから（MDIのように）プログラムを実行する場合

この特性は、タスクフォーム上の決められた位置にプログラムを開く簡単な方法を提供します。

この特性は、リッチクライアントプログラムでのみ有効です。

この特性には、コントロール名を指定します。ここからズームしてリストから選択することができます。直接入力することはできません。

注意：

  • [サブフォーム]コントロールに定義されたプログラムが実行する前に、現在動作しているプログラムが終了します。エラーやプログラムが終了できない問題が発生した場合、この問題を解決してから再度呼び出す必要があります。

  • [出力先]特性が定義された[コール]処理コマンドが、（[タスク前]から起動された場合のように）タスクのフォームが読み込まれる前に実行された場合、フォーム表示が一回行われるだけで終わります。

  • [出力先]特性が定義された[コール]処理コマンドが、（[タスク後]から起動された場合のように）タスクが終了された後に実行された場合、この特性は無視され、起動されたプログラム（またはタスク）は別のウィンドウを開きます。


処理コマンド コール 特性 フォーム

フォーム

ロジックエディタ > 処理コマンド > コール > コール特性

[フォーム]特性は、起動するプログラムを表示するフォームIDをオプションで指定します。

デフォルト設定「0」の場合は、起動元タスクのメインフォームに起動プログラムのフォームが表示されます。ここにフォームの番号を指定すると、起動されたプログラムは対応するフォームを使用して表示されます。

ここからズームして、[フォーム一覧]からフォームを選択できます。

指定できるのは、クラスが「0」のフォームのみです。

[コンテキストID]特性を使用して起動された場合、この特性は無視されます。


処理コマンド コール 特性 ロック

ロック

ロジックエディタ > 処理コマンド > コール > コール特性

タスクまたはプログラムが呼び出されると、現在のレコードの処理が一時中断され、その後、そのタスクまたはプログラムが完了すると処理が再開されます。その間、呼び出されたタスクまたはプログラムからは、現在のレコードの項目全てに対してアクセスが可能になります。[コールプログラム]の場合、項目へのアクセスはパラメータを介して行われます。一方、[コールタスク]の場合、直接アクセスされます。現在のレコードの項目に対しては、どちらの場合も更新を行うことができます。

その場合、更新時のロックの状態が問題になります。エンドユーザによるレコードの変更では、ロック方式として「入力時」が設定されている時には（ロック方式は、[タスク特性]ダイアログで設定できます）、レコードの変更が始まると同時にロックがかけられるか、または項目の変更が完了した時にロックが設定されます。

同様に、タスクやプログラムを使用して現在のレコードを変更する場合も、現在のレコードをロックしておく事が重要です。これは、子タスクやプログラムの処理が完了するまでに時間がかかる場合があるからです。このため、タスクやプログラムの実行中は、エンドユーザに対して現在のレコードへのアクセスや変更ができないようにしておくことが必要になります。アクセスが可能な場合、エンドユーザによってレコードが操作されているため、タスクやプログラムの終了時に変更をディスクへ書き込めないということも起こります。

以上の事情から、呼び出したタスクやプログラムで現在のレコードを変更する時には、あらかじめレコードにロックを設定しておきます。ただし、タスクやプログラムでレコードの更新を行わない時には、ロックは必要ありません。これで、エンドユーザによるレコードの変更が可能になります。

タスクやプログラムでレコードの更新を行う時には、このパラメータを使用してレコードにロックをかけるかどうかを指定できます。指定できる値は、以下の通りです。

  • No …… この値を指定しておくと、タスクやプログラムの実行時、現在のレコードにはロックはかかりません。この場合、タスクやプログラムでは、呼び出し側のタスクのレコードの更新は行わないようにします。ロックが設定されていない状態でレコードの更新を行うと、タスクやプログラムの終了時にエンドユーザがレコードを変更していた場合、更新したレコードをディスクに書き込むことができず、そのため、更新した結果が失われることがあります。

  • Yes …… この値にしておくと、呼び出されたタスクやプログラムが実行されると同時に、現在のレコードにロックがかけられます。したがって、呼び出されたタスクやプログラムでカレントのレコードを更新する時には、「Yes」を指定します。また、タスクやプログラムの処理で間接的に現在のレコードが更新される時も、「Yes」にしておきます。

  • 式番号 ……[ロック]特性に式を指定することもできます。ズームすると[式]エディタが表示されますので、ここで式を定義します。

なお、[ロック]特性を「Yes」にしていても、次の場合には現在のデータビューのレコードにロックはかかりません。

  • [タスク特性]の[ロック方式]が、「B=更新時」または「N=なし」の時。この場合、この設定が[ロック]特性の設定より優先されます。

  • 呼び出されたプログラムにパラメータが渡されない時。または、パラメータが全て、式で渡される（値渡し）場合。


処理コマンド コール 特性 メッセージID

リクエストID

ロジックエディタ > 処理コマンド > コール > コール特性

この特性はオプションで、リモートコール処理コマンドでのみ有効です。ここには、リモートコール処理によって受け取るリクエストIDを格納するデータ項目が指定できます。

リクエストIDは、呼び出した非同期リクエストを監視する場合に必要になります。

設定する項目を選択するには、この特性からズームして項目一覧を開きます。


処理コマンド コール 特性 優先順位

優先順位

ロジックエディタ > 処理コマンド > コール > コール特性

この特性から[式]エディタにズームし、[コールリモート]処理コマンドが実行する優先順位を式で指定します。

優先順位は、0～9の数値で指定します。「0」が最も高くなります。


処理コマンド コール 公開プログラム 公開プログラム名

公開プログラム名

ロジックエディタ > 処理コマンド > コール > コール特性

[コール公開名]処理コマンドで起動するプログラムの公開名を指定します。

ローカルアプリケーション内のプログラムを呼び出す場合は、[公開プログラム名]のみを式で指定します。Magic は、現在のプロジェクトやロードされたコンポーネントや内のプログラムを検索します。最初に検索されたプログラムが実行されます。プログラムが見つからない場合は、処理は失敗します。

動的に指定する場合は式で指定します。


処理コマンド コール 特性 プログラム名

プログラム名

ロジックエディタ > 処理コマンド > コール > コール特性

[コールリモート]処理コマンドで起動するプログラムの公開名を指定します。動的に指定する場合は式で指定します。


処理コマンド コール 特性 エラー情報

戻り値コード

ロジックエディタ > 処理コマンド > コール > コール特性

この特性はオプションで、コールリモート処理コマンドで有効です。処理が失敗したかどうかを示すコードが返ります。

ここからズームすると[項目一覧]が表示されますので、戻り値コードを格納する項目を指定します。ここに設定する項目は、数値型でなければなりません。

この項目には、以下の値が返ります。

  • 0 … 正常

  • 1 … 警告

  • 2 … エラー

注意：

MRBでエラーが発生した場合、MRBのエラー番号が含まれる場合があります。


処理コマンド コール 特性 エラーコード

エラーコード

ロジックエディタ > 処理コマンド > コール > コール特性

この特性はオプションです。

ここからズームすると[項目一覧]が表示されますので、エラーコードを格納する項目を指定します。この項目は、数値型でなければなりません。0 が返された場合は正常です。負数の値が戻された場合は、リモートコールを実施しようとした時にエラーがあったことを示しています。コードの意味は、「パーティショニングエラー」を参照してください。


処理コマンド コール 特性 結果ファイル

結果ファイル

ロジックエディタ > 処理コマンド > コール > コール特性

[結果ファイル]特性から[ファイルを開く]ダイアログにズームしファイル名を指定します。全ての結果データは、指定されたファイルに書き込まれます。


処理コマンド コール 特性 コンテキストID

コンテキストID

ロジックエディタ > 処理コマンド > コール > コール特性

[コンテキストID]特性は、[コールプログラム]や[コール式]、[コール公開プログラム]で有効です。ここには、新しいコンテキストの名前が返ります。この特性はオプションです。

この特性には、文字型のデータ項目を指定します。シンボル名を直接入力するか、[項目一覧]にズームして選択することで設定できます。メインプログラムを含む全ての上位タスクの項目を指定できます。

指定した項目が文字型かUnicode型でない場合、設定がキャンセルされます。

[コンテキストID]特性を使用すると、[コール]処理コマンドの[フォーム]特性は無視されます。

この特性は一般的に、２つのプログラムが互いに参照し合えるようにしたい場合に使用します。

例えば、プログラムAがプログラムBを呼び出し、[コンテキストID]特性に文字型項目を指定すると、プログラムBのコンテキストIDがプログラムAに返ります。「コンテンツ間のイベント送信」を参照してください。

[コンテキストID]特性に設定されるIDは、各コンテキストごとにユニークで、動的です。従って、同じプログラムを何回も起動した場合に、各プログラムのコンテキストを区別したい時に、この特性が使用できます。このような場合、コンテキストIDはコンテキスト名より効果的です。（プログラムが１回実行されるだけの場合は、コンテキスト名の方が効果的です。）

注意：

CtxSetName関数が呼び出されたプログラム（またはメインプログラム）の[タスク前]で使用された場合、この特性に値は返りません。これは、コンテキストがロードされた時点でコンテキストIDが設定されますが、コンテキストがすでにロードされる前に[タスク前]が有効になるからです。


処理コマンド コール 特性 結果

戻り値

ロジックエディタ > 処理コマンド > コール > コール特性
ロジックエディタ > 処理コマンド > アクション

この特性はオプションです。ここには、処理コマンドの実行結果を受け取る項目を指定します。通常、変数項目を指定します。論理型の項目を指定してください。

  • [アクション]処理コマンドの場合は、式に定義されたアクション関数の処理が成功か失敗かを示す戻り値を受け取る項目を指定します。処理が成功した場合「True」、失敗した場合「False」が指定された項目に設定されます。

  • [コール]処理コマンドの場合は、コール先が実行されたか否かを示す戻り値になります。

参考：

処理が失敗した場合、[戻り値コード]特性を使用してエラー内容を確認することができます。


処理コマンド コール 特性 プログラム/タスクID

プログラム/タスクID

ロジックエディタ > 処理コマンド > コール > コール特性

この特性には、コールのタイプによって指定内容が異なります。

  • コールプログラム／タスク …… 呼び出すタスクやプログラムの番号を指定します。指定するとその名前が表示されます。

  • コール式 …… 呼び出すプログラムを表す式の番号を指定します。指定すると式の内容が表示されます。


処理コマンド コール 特性 サービス

サービス

ロジックエディタ > 処理コマンド > コール > コール特性

[サービス]テーブルに定義されているサービス名を指定します。ここからズームして[サービス一覧]から選択できます。


処理コマンド コール 特性 同期

同期

ロジックエディタ > 処理コマンド > コール > コール特性

この特性は、DMステートメントの実行順序を制御することができます。

通常は、（Insertや、Update、Deleteなどの）DMステートメントは、[レコード後]で送信されます。

これは、例えば、親タスクが子タスクを呼び出した場合、子タスクがその処理を終了すると、親タスクに戻ることで処理が完了することを意味しています。子タスクが親タスクの前に終了したため、親タスクで行った変更が、子タスクを呼び出す前に実行されても、Magicは親タスクの[レコード後]の前に子タスクの[レコード後]の処理が実行されます。

[同期]特性を以下のように使用することで、この動作を変更することができます。

この特性により、次の指定が可能です。

  • Yes …… 親タスクのDMステートメントが送信されてから、子タスクのDMステートメントが送信されます。

  • No …… Magic の処理フローに従って、DM ステートメントの実行を行います。

  • 式番号 …… 「Yes」か「No」に評価される論理式を定義します。

この特性は、[レコード]、[コントロール]、および[イベント]の各レベルのロジックユニットで定義された、[コールタスク]、[コールプログラム]、[コール式]、および[コール公開名]の処理コマンドで有効です。また[タスク特性]の[トランザクションモード]が「遅延」、「ネスト遅延」、および「親と同一」の場合でのみ有効です。


処理コマンド コール 特性 ウェイト

ウェイト

ロジックエディタ > 処理コマンド > コール > コール特性

[コールリモート]処理コマンドが実行されると、Magicエンジンは有効なサーバをチェックし、その後コマンドをリクエスタに送ります。その際、[ウェイト]特性の設定内容によって以下のように動作します。

  • Yes …… リクエスト処理が完了するまでウェイト状態に入り、リクエスト処理が完了した時点でプログラムが継続されます。

  • No …… リクエスト処理完了のチェックは行われずに処理が継続されます。

  • 式 …… 定義式で動的に変更できます。


処理コマンド 外部コール

外部コール

ロジックエディタ > 処理コマンド

[外部コール]処理コマンドは、（Webサービス、COMなどの）Magicアプリケーション以外のプログラムにアクセスする場合に使用されます。この処理コマンドには、以下のオプションがあります。

  • C=COM …… タスクに定義されたCOMオブジェクトを操作します。

  • OSコマンド …… スプレッドシートやワードプロセッサなどの外部アプリケーションを実行します。

  • U=UDP …… 第３世代言語によって作成されたプログラム（.dll）を実行して、値を受け取ります。

  • Webサービス …… SOAPプロトコルを使用してWebサービスを呼び出します。

Alt+Enterを押下することで、[外部コール特性]にアクセスできます。

注意：

このヘルプでは、[外部コール]処理コマンドの表記を[コール]処理コマンドと同じように表記しています。


処理コマンド 外部コール COM

COM オブジェクト

ロジックエディタ > 処理コマンド > 外部コール
COM オブジェクトサポート >

ここには、COMオブジェクトが定義されたActiveX型／OLE型の変数項目を設定します。設定されたCOMオブジェクトのメソッドを呼び出したり、COMオブジェクトの特性を設定したり、参照したりすることができるようになります。

「COM」オプションを選択後、Tabキーで次のカラムに移動してズームすると[COMオブジェクト]ダイアログが表示されます。

特性

[コールCOM]処理コマンドには、以下の特性があります。

オブジェクト

オプション

要素

パラメータ

値

戻り値

エラーコード

条件

参照

外部コール特性


処理コマンド 外部コール COM ダイアログ

[COMオブジェクトの起動]ダイアログ

ロジックエディタ > 処理コマンド > 外部コール > COMオブジェクト

[COMオブジェクトの起動]ダイアログには、以下の設定欄があります。[外部コール]特性でも設定できます。

  • オブジェクト …… アクセスしたいオブジェクトを定義します。ズームすると、[項目一覧]が表示されます。選択する項目はOLE かActiveX項目でなければなりません。

  • オプション …… コンボボックスより実行したい処理のタイプを選択します。利用可能なオプションは、「M=メソッドの呼出」、「G=プロパティの取得」、「S=プロパティの設定」です。

  • メソッド／プロパティ …… ここは選択されたオプションによって変わります。

  • 「M=メソッドの呼出」の場合 …… 呼び出したいメソッドを選択できます。ここからズームすると、選択したオブジェクトでサポートされているメソッドが表示されます。
    COM オブジェクトによっては、サブオブジェクトのコレクションを持つものがあります。コレクションは通常IDフィールドにより識別されますが、ID が非連続的な場合には、ID を全て知っていない限りコレクションを全てアクセスすることができませんでした。このようなコレクションサブオブジェクトを扱う場合は、「MGItemSequential」という名前の（Magic が追加した）メソッドを指定してください。このメソッドにより、非連続なコレクションであっても、0 より始まる連続なインデックス番号を指定してアクセスできるようになります。

  • 「G=プロパティの取得」及び「S=プロパティの設定」の場合 …… 処理したいプロパティを選択できます。ここからズームすると選択したオブジェクトでサポートされているプロパティが表示されます。

参照

コレクションのアクセス


処理コマンド 外部コール OSコマンド

OSコマンド

ロジックエディタ > 処理コマンド > 外部コール

この処理コマンドは、OS上で外部プログラムやバッチファイル、コマンドファイルを実行したい時に使用します。Magic の動作中、このコマンドが検出されると、現在のタスクの実行が一時中断されます。[ウェイト]特性が「Yes」の場合、外部プログラムやバッチファイル、コマンドファイルが終了すると、[OS コマンド]の次のコマンドから現在のタスクが再開されます。

特性

[コールOSコマンド]処理コマンドには、以下の特性があります。

OSコマンド

結果

ウェイト

表示

条件

参照

[外部コール]処理コマンド

外部コール特性


処理コマンド 外部コール UDP

UDP

ロジックエディタ > 処理コマンド > 外部コール

[コールUDP]処理コマンドは、第３世代言語（C など）によるプログラムを実行したい時に使用します。必要であれば、パラメータを渡すこともできます。このコマンドでプログラムを呼び出す場合、C の呼び出し規則が使用されます。また、呼び出しはメモリ上で実行されます。したがって、UDPはMagic の内部ルーチンとして扱われます。この場合の呼び出しには、マシンのコールまたはジャンプ命令のうち一番簡単なものが使用されます。

用途

  • このコマンドを使用して、Magic の機能を拡張できます。例えば、ユーザが作成したルーチンを呼び出して、Magic ではサポートされていないタスクや機能の実現が可能です。

  • Magic以外の環境で作成されたコードをMagic上で利用できます。

  • 外部プロシージャを使用して、特殊な計算を高速で処理できます。

参考

式を選択すると、[名前]カラムには式の最初一部が表示されます。例えば、Windowsの setForegroundWindow関数を呼び出すように指定した場合、@user32.setForegroundWindow が表示されます。

特性

[コールUDP]処理コマンドには、以下の特性があります。

UDP

パラメータ（例）

規約

条件

参照

[外部コール]処理コマンド

外部コール特性


処理コマンド 外部コール UDP パラメータ

UDPへのパラメータの例

ロジックエディタ > 処理コマンド > 外部コール > UDP

例えば、Windowsの setForegroundWindow関数（@user32.setForegroundWindow）を呼び出すように指定した場合、パラメータは以下のように指定します。

この関数は、1つのパラメータ（ウィンドウハンドル）を受け取ります。

以下の3つのパラメータを定義する必要があります。

  • 44 …… 以下のパラメータの書式を表す文字列。最後の文字は、関数の戻り値の型を表しています。パラメータのタイプ一覧は、ここをクリックすると表示されます。この例では、関数のパラメータと戻り値の両方がLongタイプのため、‘44’が使用されます。

  • WINHWIN …… 関数のパラメータ。この例では、Magicのウィンドウハンドラを送るため、この値を取得するためにWinHWND(0)を使用します。

  • RETUDL …… 関数の戻り値（が格納される項目）


処理コマンド 外部コール Webサービス

Webサービス

ロジックエディタ > 処理コマンド > 外部コール
Webサービス

[コールWebサービス]処理コマンドはSOAPプロトコルを使用してWeb サービスを呼び出します。

[外部コール]処理コマンドで「W=Webサービス」を選択した後、[サービス]テーブルで「SOAP」が選択されているサービスを選択します。「W=Webサービス」が選択された右側のカラムでズームすると[Webサービス]ダイアログが表示されます。ここで、サービスや処理、ヘッダやエラー情報の特性を指定することができます。（[特性]シートでも同じ特性値を設定することができます。）

特性

[コールWebサービス]処理コマンドには、以下の特性があります。

SOAPヘッダ

サービス

処理

パラメータ

戻り値

エラー情報

条件


処理コマンド 外部コール 特性

外部コール特性

ロジックエディタ > 処理コマンド > 外部コール

Alt+Enterを押下するか、マウスを右クリックし、コンテキストメニューから[特性]を選択することで[特性]シートを表示させることができます。

[外部コール]処理コマンドには、以下の特性があります。

パラメータ

条件

規約

メソッド/プロパティ

エラー情報

フロー方向

フローモード

オブジェクト

処理

オプション

実行

OSコマンド

結果

エラーコード

戻り値

サービス

表示

UDP

値

ウェイト

SOAPヘッダ


処理コマンド 外部コール 特性 パラメータ

パラメータ

ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性

コールWebサービス

Webサービスのメソッドを呼び出す場合に使用する[パラメータ]ダイアログは、[コールWebサービス]処理コマンドで選択されたSOAP処理コマンドに基づいたパラメータのリストを表示します。各パラメータには、WSDLで定義された入力定義が割り当てられています。

[パラメータ]テーブルには、以下のカラムがあります。

  • 名前 …… パラメータ名を指定します。

  • 項目 …… パラメータに割り当てる項目。[項目]か[式]のどちらかを指定します。

  • 式 …… パラメータに割り当てる式

  • 指定可能な型 …… [外部タイプ]に対応する、Magicのデータ型

  • 外部タイプ …… WSDLでのパラメータ定義に基づくデータタイプが表示されます。
    複合型（非プリミティブ型）の値は、複合型を定義するXMLスキーマの位置になります。（スキーマは、[サービス]テーブルで「SOAP」サービスを定義すると自動的に作成されます。） 渡された項目や式は、ルート要素名としてパラメータ名を使用して、スキーマと整合性がとれるようにしてください。

  • 方向 …… ここには、「In」、「Out」または、「In,Out」が指定できます。（[コールCOM]処理コマンドは表示のみ）。[式]で指定されたたパラメータは、「In」のみ有効です。

WSDLで定義されている"Attachments"は、「予期される型」として[内部タイプ]で「BLOB」が表示されます。

コールCOM

COMのメソッドを呼び出す場合に使用する[パラメータ]ダイアログは、メソッドに対応したパラメータのリストを表示します。

[パラメータ]テーブルには、以下のカラムがあります。

  • 名前 …… パラメータ名を指定します。

  • 項目 …… パラメータに割り当てる項目。[項目]か[式]のどちらかを指定します。

  • 式 …… パラメータに割り当てる式

  • 内部タイプ …… [外部タイプ]に対応する、Magicのデータ型

  • 外部タイプ …… COMでのパラメータ定義に基づくデータタイプが表示されます。

  • 方向 …… ここには、「In」、「Out」または、「In,Out」が指定できます。（[コールCOM]処理コマンドは表示のみ）。[式]で指定されたたパラメータは、「In」のみ有効です。

  • オプション …… COMに渡すパラメータがオプションか否かが表示されます。（COMオブジェクト側に依存します。）

  • 登録 …… この特性のために使用される項目を作成するかどうかを指定します。

  • 項目作成 …… このボタンをクリックすると、登録オプションがチェック状態のすべてのパラメータに対して対応する項目が作成されます。

  • 項目 …… このパラメータに対する値の列挙リストが表示されます。

参考

  • 項目または式のどちらかを指定してください。

  • 項目と式カラム以外は変更できません。


処理コマンド 外部コール 特性 規約

規約 (デフォルト：STDCALL)

ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性

UDPを呼び出す際のC 言語での呼び出し規約を指定します。

  • CDECL …… _cdecl を使用している関数をMagic から起動する場合は、これを指定します。

  • STDCALL …… _stdcall を使用している関数をMagic から起動する場は、これを指定します。Windows のAPI を呼ぶ場合は、STDCALL を指定してください。

  • FASTCALL …… _fastcall を使用しているプログラムを関数から起動する場合は、これを指定します。


処理コマンド 外部コール 特性 要素

メソッド/プロパティ

ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性

[コールCOM]処理コマンドにおいて、[オプション]特性が、「M=メソッド呼出」に設定されている場合、ここには呼び出すメソッドを指定します。「S=プロパティの設定」または、「G=プロパティの取得」の場合は、プロパティ名を指定します。


処理コマンド 外部コール 特性 エラー情報

エラー情報

ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性

Webサービスの呼び出しに失敗した場合、エラーメッセージが返ります。エラーメッセージを格納できる文字型項目を設定してください。


処理コマンド 外部コール 特性 オブジェクト

オブジェクト

ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性

COMオブジェクトの呼び出し

ここには、COMオブジェクトが定義されている変数項目を指定します。

処理を実行させたいオブジェクトを指定してください。直接入力するか、ここからズームして[項目一覧]からOLE型／ActiveX型の項目を選択してください。


処理コマンド 外部コール 特性 処理

処理

ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性

Webサービスによって提供される処理を一覧から選択できます。


処理コマンド 外部コール 特性 オプション

オプション

ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性

[オプション]特性のコンボボックスから実行したい処理のタイプを選択してください。有効なオプションは以下の通りです。

  • M=メソッドの呼出

  • G=プロパティの取得

  • S=プロパティの設定


処理コマンド 外部コール 特性 OSコマンド

OSコマンド

ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性

OS上で実行できるコマンド名を指定します。[式]エディタに定義されている式の識別番号を指定することもできます。この式には、OS上で実行できるコマンド名が返る式を指定してください。


処理コマンド 外部コール 特性 結果

結果

ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性

処理の戻り値を格納するデータ項目を指定してください。


処理コマンド 外部コール 特性 実行先

実行先

ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性

この特性は、処理コマンドがサーバ上で実行されるかクライアント上で実行されるかを指定します。この特性は、リッチクライアントタスクの[コールOSコマンド]処理コマンドでのみ表示されます。オプションは以下の通りです。

  • C=クライアント …… クライアント上で実行されます。

  • S=サーバ（デフォルト） …… サーバ上で実行されます。


処理コマンド 外部コール 特性 エラーコード

エラーコード

ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性

処理が成功したか失敗したかを示すコードが返ります。ここからズームして[項目一覧]からエラーコードを受け取る項目を選択します。


処理コマンド 外部コール 特性 戻り値

戻り値

ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性

[戻り値]ダイアログには、[コールWebサービス]処理コマンドにおける選択されたSOAP処理からの戻り値、または[コールCOM]処理コマンドにおけるCOMオブジェクトからの戻り値に関する情報を設定します。

[戻り値]ダイアログには、以下のカラムがあります。

  • 名前 …… パラメータ名です。

  • 項目 …… 戻り値を格納する項目を指定します。この指定は必須です。

  • 内部タイプ/指定可能な型 ……[外部タイプ]に対応するMagicのデータ型です。

  • 外部タイプ …… COMやWSDLでのパラメータ定義に基づくデータタイプが表示されます。
    WSDLの場合、複合型（非プリミティブ型）の値は、複合型を定義するXMLスキーマの位置になります。（スキーマは、[サービス]テーブルで「SOAP」サービスを定義すると自動的に作成されます。） 渡された項目や式は、ルート要素名としてパラメータ名を使用して、スキーマと整合性がとれるようにしてください。


処理コマンド 外部コール 特性 サービス

サービス

ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性

[サービス一覧]から、サービスを選択してください。SOAPサービスだけが選択でき、その他のサービスは灰色で表示されます。


処理コマンド 外部コール 特性 ヘッダ

SOAPヘッダ

ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性

[SOAPヘッダ]特性にはデータ項目を設定します。指定された項目の内容がヘッダブロックとしてプロバイダに送られます。また、プロバイダからからの応答に含まれるヘッダブロックが格納されます。

[SOAPヘッダ]特性の内容はEDEV_SOAP_HEADERSという名前のルート要素を持つXMLドキュメントです。このXMLドキュメントには、1つ以上のヘッダブロックを含めなければなりません。

この特性から項目一覧にズームすることができます。ここには、現在のタスクを含む上位のタスク内に定義されたBLOB型、文字型およびUnicode型の項目が含まれています。

実行時の考慮事項

特性が指定されていなかったり、指定された項目がNULLの場合、ヘッダは渡されません。

特性に項目が設定され、項目の値がULLではなく、XMLのルート要素がEDEV_SOAP_HEADERSでない場合、クライアントの問題としてエラーが返ります。


処理コマンド 外部コール 特性 表示

表示 (デフォルト:N=通常)

ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性

外部プログラムの表示形式を指定します。指定できる値は、「H ＝なし」、「N ＝通常」、「X ＝最大化」、「M ＝最小化」のいずれかです。

  • H ＝なし…… 外部プログラムは現在表示されているウィンドウの裏で動作します。したがって、外部プログラムのウィンドウは見えません。

  • N ＝通常…… 外部プログラムのウィンドウは、一番上に表示されます。

  • X ＝最大化……この設定では、外部プログラムのウィンドウは一番上に表示されると同時に、そのサイズが最大になります。

  • M ＝最小化……この設定では、外部プログラムのウィンドウは最小化されて実行します。

注意：

「H=なし」で起動する場合は、外部アプリケーションの出力メッセージをファイルにリダイレクトするようにしてください。


処理コマンド 外部コール 特性 UDP

UDP

ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性

ここには、呼び出されるUDP（ユーザ定義プロシジャ）を示す式の番号を指定します。番号は、[式]エディタの番号を指定します。[式]エディタの式は、実行時、このコマンドにより実行されるUDPの名前（文字列）が返るような式にします。

呼び出す関数は以下のように指定します。

UDP 用に作成されたモジュールの場合

<Dll ファイル名>. 関数名

Windows のAPI を呼び出すような場合

@<Dll ファイル名>. 関数名

例えば、kernel32.dll （このファイルは、Windows で提供されています。）のGetSystemTimeという関数を呼び出す場合、以下のようになります。

@kernel32.GetSytemTime


処理コマンド 外部コール 特性 値

値

ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性

[コールCOM]処理コマンドにおいて、「プロパティの設定」オプションを指定した場合、設定する値を格納する値を指定します。ここからズームすると[値]テーブルが表示されます。


処理コマンド 外部コール 特性 ウェイト

ウェイト (デフォルト：No)

ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性

[ウェイト]特性を使用して、呼び出したプログラムが完了してからMagicのプログラムを続行するかどうかを指定します。

  • No……Magic のプログラムは、呼び出したプログラムの完了を待たずに処理が続行されます。

  • Yes……Magic のプログラムは、呼び出したプログラムの完了後、処理が続行されます。

リッチクライアントタスクでは、[実行先]特性が「クライアント」に設定されている場合、[ウェイト]特性は、「No」に設定された状態で無効になります。


処理コマンド イベント実行

イベント実行

ロジックエディタ > 処理コマンド

[イベント実行]処理コマンドは、イベントが定義されたハンドラを実行するために使用します。

この処理コマンドを使用することで、Magicエンジンの処理フローの間に様々なイベントを発行させることができます。これらのイベントは、システムによって発生したイベントと同じように処理することができます。

プロジェクトとコンポーネント間で相互にやり取りする場合、ホストプロジェクト内のハンドラを実行させる必要が出てきます。Magicは、コンポーネント側でホストプロジェクトに定義されているイベントの公開名を指定することで、イベントを発行させることができます。

Alt+Enterを押下することによって、[イベント実行特性]シートにアクセスすることができます。

参照

公開イベントの実行時の動作


処理コマンド イベント実行 公開イベントの実行時の動作

公開イベントの実行時の動作

ロジックエディタ > 処理コマンド > イベント実行

公開イベントに対する[イベント実行]処理コマンドが実行されると、定義された式の内容をイベントの公開名と評価します。公開名は、大文字と小文字が区別されます。

Magic は、実行環境でのタスクツリー上において、指定された公開イベントを使用しているユーザ[イベント]ロジックユニットを検索します。指定した公開[イベント]ロジックユニットが見つかれば実行します。見つからない場合は実行されません。

ホストアプリケーションのイベントをコンポーネントから実行する場合、イベントに[公開]特性が指定されていなかったり、ハンドラが[公開]特性を指定したイベントを使用していない場合は実行されません。

最初の一致するハンドラが見つかり実行されると、次にそのハンドラの[伝搬]特性を確認します。[伝搬]特性が「No」であれば、イベント処理は終了し、「Yes」であればイベントを伝搬します。[伝搬]特性は、イベントの公開名の検索時には使用されませんが、ユーザイベントテーブルに定義されたイベントとして参照されます。


処理コマンド イベント実行 特性

イベント実行特性

ロジックエディタ > 処理コマンド > イベント実行

Alt+Enterを押下するかマウスで右クリックしてコンテキストメニューから[特性]を選択すると、[イベント実行特性]シートにアクセスできます。

[イベント実行]処理コマンドには、以下の特性があります。

イベント

ウェイト

パラメータ

出力先コンテキスト名

条件


処理コマンド イベント実行 イベント

イベント

ロジックエディタ > 処理コマンド > イベント実行 > イベント実行特性

ここには、[イベント実行]処理コマンドで使用されるイベントまたはトリガを指定します。ここからズームすると[イベント]ダイアログが表示され、ここで[イベントタイプ]と[イベント]を設定します。

イベントタイプには以下のものがあります。

  • S=システム …… [キーボード割付]キー操作の組み合わせをトリガとするイベント

  • I=内部 …… [イベント一覧]に定義されているMagic の内部イベント

  • U=ユーザ …… [ユーザイベント]テーブルに定義されているイベント

  • P=公開イベント …… 公開名が定義されたユーザイベント。イベント名は文字列の式で指定します。ホストアプリケーションのメインプログラムのユーザテーブルの[公開]特性を選択することで、コンポーネントからのイベント実行によりこのイベントをトリガとしたハンドラを実行させることができます。


処理コマンド イベント実行 ウェイト

ウェイト

ロジックエディタ > 処理コマンド > イベント実行 > イベント実行特性

この特性に、「Yes」、「No」または式のいずれかを指定することで、[イベント]ロジックユニットが即座に実行されるか、イベントキューの最後に置かれるかを指定します。

  • Yes …… [イベント実行]処理コマンドに続くコマンドを実行する前に[イベント]ロジックユニットが実行されます。

  • No …… 呼び出されたイベントは即座には実行されず、イベントキューに登録されます。先に登録されていた[イベント]ロジックユニットが終了した後、[イベント実行]コマンドのイベントに対応する[イベント]ロジックユニットが実行されます。

  • 式 …… 指定された式が「True」と評価されると、[イベント]ロジックユニットまたはトリガが即座に実行されます。「False」と評価されると、イベントはイベントキューに登録されます。

[イベントタイプ]が「I=内部」の場合、デフォルトは「No」になり、それ以外は、「Yes」になります。


処理コマンド イベント実行 パラメータ

パラメータ

ロジックエディタ > 処理コマンド > イベント実行 > イベント実行特性

この特性で、[イベント]ロジックユニットやトリガの呼び出し後に[イベント]ロジックユニットで定義された変数に渡されるパラメータを定義します。ここには選択したパラメータの数が表示されます。ここからズームすると、[パラメータ]テーブルが開き、[項目]または[式]により、パラメータを指定します。

パラメータは参照のみ可能です。従ってイベントプログラムでパラメータを変更しても、値を戻すことはできません。

[パラメータ]テーブルには以下のカラムがあります。

  • # ……ここには、Magic によって生成された連番が表示されます。このカラムにはカーソルはパークできません。

  • 項目…… このカラムには「参照渡し」による受け渡しを行うパラメータを指定します。[項目一覧]にズームしてデータ項目を選択するか、データ項目のシンボル名を入力してください。
    パラメータとして定数値を渡す場合は、[項目]カラムではなく[式]カラムに入力します。式がすでに定義されている場合は、[項目]カラムはスキップされます。

  • 式…… このカラムには「値渡し」による受け渡しを行うパラメータを指定します。また、式によって定数をサブルーチンに受け渡すためにも使用します。
    このカラムには式番号が表示されます。[内容]カラムには展開された式の最初の部分が表示されます。[式]テーブルにズームして既存の式を選択するか、新たに式を定義することができます。
    データ項目がパラメータとしてすでに定義されている場合、[式]カラムはスキップされます。式をパラメータとして使用したい場合は、データ項目の識別子を削除します。

  • 説明 …… [説明]カラムには、[項目]または[式]のどちらのパラメータを使用しているかによって、項目名か式の最初の部分が表示されます。このカラムには、カーソルはパークできません。

  • スキップ …… [スキップ]カラムのチェックボックスをオンにすることで、その行のパラメータについての定義を省くことができます。チェックボックスがオンになっている場合は、コール先に値は渡されません。


処理コマンド イベント実行 出力先コンテキスト名

出力先コンテキスト名

メニューとヘルプ > メニュー > メニュー特性 > 特性タブ
ロジックエディタ > 処理コマンド > イベント実行 > イベント実行特性

この特性によって、処理されるイベントを使用してアプリケーションサーバ間との通信を実行することができます。ここにはイベントを実行するコンテキスト名を指定します。

コンテキストは、共有値とデータベースファイルを使用してリソースを共有することができます。

この特性はバッチタスクでのみ利用可能です。

この特性は、リッチクライアントタスクではサポートされません。


処理コマンド イベント実行 条件

条件 (デフォルト:Yes)

ロジックエディタ > 処理コマンド > イベント実行 > イベント実行特性

この特性には、論理条件を指定します。その論理条件から返る値を使用して、コマンドの実行を制御できます。

  • Yes …… 条件が常に「True」であることを示しています。

  • No …… 条件が常に「False」であることを示しています。処理コマンドは実行されません。

  • 式番号 …… 処理コマンドの実行条件を動的に制御する場合に指定します。ここから[式]エディタにズームして実行条件の論理式を選択してください。


処理コマンド アクション

アクション

ロジックエディタ > 処理コマンド

[アクション]処理コマンドを使用して、アクション関数を実行できます。関数は、式を使用して指定します。実行時、この式が評価され、アクション関数が実行されることになります。アクション関数は、入出力に関連する特殊な関数です。アクション関数の実行後、[結果]特性に論理値が返ります。この論理値で、アクション関数が正常に実行されたかどうかが分かります。

使用上の考慮事項

  • [アクション]処理コマンドは、アクション関数が定義されている場合のみ有効です。アクション関数を指定していない場合、この処理コマンドは無効になります。

  • 式では、アクション関数を複数指定することもできます。複数指定した時には、全てのアクション関数が成功した時に限って、戻りコードとして「True」が返ります。

アクション特性

アクション特性には、以下の特性値があります。

式

戻り値

条件


処理コマンド アクション アクション関数

アクション関数

ロジックエディタ > 処理コマンド > アクション

アクション関数には以下の関数があります。

  • Blb2File… BLOBオブジェクトをファイルとして保存します。

  • DbDel…データベースファイルを削除します。

  • DbCopy…データベースファイルをコピーします。

  • DbReload…実行時に常駐テーブルを読み込みます。

  • DDEGet…DDEサーバから文字列を取得します。

  • DDEPoke…DDEサーバへ文字列を転送します。

  • DDExec…MagicからDDEサーバへコマンド文字列を転送します。

  • Delay…処理を遅延させます。

  • EditSet…コントロールに値を設定します。

  • File2Req…リクエスタにファイルを送ります。

  • GroupAdd…セキュリティファイルに定義されているユーザグループに対して、ユーザをアプリケーション上で割当てます。

  • INIPut…MAGIC.INIファイルのパラメータを設定します。

  • FileCopy…入出力ファイルをコピーします。

  • FileDelete…入出力ファイルを削除します。

  • FileDlg…[ファイルを開く]ダイアログが開き、選択したファイル名が返ります。

  • FileRename…入出力ファイルのファイル名を変更します。

  • KBPut…キーボードからの入力（ショートカットを含む）をシミュレートします。

  • Logon……現在のアプリケーションにユーザとしてログオンさせます。

  • MMStop …現在のマルチマークハンドラの処理を中断します。

  • MnuCheck…メニュー項目の前に付加されるチェックマークを表示したり非表示にしたりします。

  • MnuEnabl…メニュー項目の有効、無効の切替を行います。

  • MnuShow…メニュー項目の表示、非表示の切替を行います。

  • RightAdd…セキュリティファイルに定義されているユーザに対して、アプリケーション上で権利を割当てます。

  • Rollback…ネスト上のセーブポイントを指定して、トランザクションをロールバックします。

  • SetLang…使用する言語を設定します。

  • SetParam…グローバル変数を設定します。

  • UDF…ユーザ定義関数を呼び出します。

  • UserAdd…アプリケーション上で、セキュリティファイルにユーザを追加します。

  • VarSet…項目に値を設定します。

  • WinMaximize…Magicのウィンドウを最大化します。

  • WinMinimize…Magicのウィンドウを最小化します。

  • WinRestore…Magicのウィンドウを通常のサイズに戻します。

詳細は、関数の説明を参照してください。


処理コマンド アクション 式

式

ロジックエディタ > 処理コマンド > アクション

アクション関数が定義されている式の識別番号を指定します。ズームすると[式]エディタが表示されますので、ここでアクション関数を選択するか、定義します。


処理コマンド アクション 条件

条件 (デフォルト:Yes)

ロジックエディタ > 処理コマンド > アクション

この特性には、論理条件を指定します。その論理条件から返る値を使用して、コマンドの実行を制御できます。

指定できる値は以下の通りです。

  • Yes …… 条件が常に「True」であることを示しています。

  • No …… 条件が常に「False」であることを示しています。処理コマンドは実行されません。

  • 式番号 …… 処理コマンドの実行条件を動的に制御する場合に指定します。ここから[式]エディタにズームして実行条件の論理式を選択してください。


処理コマンド ブロック

ブロック

ロジックエディタ > 処理コマンド

[ブロック]処理コマンドは、複数の処理コマンドを論理ブロックのグループとしてひとまとめに定義するものです。ブロック内の全ての処理コマンドの実行は、[ブロック]処理コマンドの[タイプ]や[条件]特性に依存します。

より構造化された効率的なコードを作成するには、[ブロック]処理コマンドを使用することを推奨します。ブロック処理コマンドの優位性を参照してください。

ブロックコマンドのタイプ

[ブロック]処理コマンドには以下の４つのタイプがあります。

  • If …… 基本的なブロック処理です。

  • Else …… [ブロックIf]処理コマンドの拡張機能です。1つのブロックユニットで複数の条件処理が定義できます。

  • While …… ブロック内の処理を繰り返し実行させることができます。

  • End …… ブロックを閉じます。[ブロックIf]または、[ブロックWhile]から[ブロックEnd]までが1つのブロックユニットになります。

用途

条件処理

[ブロック]処理コマンドは、指定された条件内にいくつかの処理を組み込むために使用されます。

このタイプの[ブロック]処理コマンドは以下の3つの部分で成り立っています。

  • Block If

  • Block Else

  • Bock End

ループ処理

[ブロック]処理コマンドは、Block While条件が満たされている限り、一連の処理を繰り返し実行させるために使用されます。

このタイプの[ブロック]処理コマンドは以下の2つの部分で成り立っています。

  • Block While

  • Block End

[ブロック]処理コマンド特性

[ブロック]処理コマンドには以下の特性があります。

フローモード

フロー方向

条件


処理コマンド ブロック 優位性

ブロック処理コマンドの優位性

ロジックエディタ > 処理コマンド > ブロック

ブロック内のすべての処理コマンドが1つの条件に依存するように、[ブロック]処理コマンドは論理ブロック内の一連の処理コマンドのグループを取り囲むように定義します。

[ブロック]処理コマンドを使用することで以下のような利点があります。

  • 開発者に対しては、条件を各処理コマンドに対して設定する必要がなく、１箇所の設定で済むため工数が削減できます。また、プログラムの保守性が向上します。実行条件を変更する必要がある場合、[ブロック]処理コマンドの条件を変更するだけで済みます。

  • 設計者に対しては、複数の処理コマンドを同じ条件で実行させる場合、複数の条件を設定する必要があります。[ブロック]処理コマンドを使用した場合は、Magicエンジンは[ブロック]処理コマンドの条件をチェックするだけで、各処理コマンドの条件を確認する必要がありません。

  • [ブロック]処理コマンドを使用することで、式を簡素化させることができます。複雑な式をいくつかの論理的なセクションに分割し、それぞれを[ブロック]処理コマンド内に１つの条件で実行するように定義することができます。

例えば、Country=‘ITALY’とCity=‘ミラノ’の条件で確認用の[エラー]処理コマンドを実行させたい場合、以下のようにロジックを定義することができます。

B=ブロック I=If 条件：Country='ITALY'

B=ブロック I=If 条件：City='MILAN'
V=エラー

B=ブロック E=End

B=ブロック E=End

  • [ブロック]処理コマンドは、ネストして定義することが可能です。もし一定の条件でいくつかの処理コマンドを実行する必要があり、処理コマンドのいくつかを異なる条件で実行させる必要がある場合、[ブロック]処理コマンドの中に別の[ブロック]処理コマンドを定義し、異なる条件を設定することで実現できます。この場合に、両方のブロック条件が満たされている場合のみ、ブロック内のすべての処理コマンドが実行されます。
    上記の例の場合、Country=‘ITALY’とCity=‘ミラノ’の２つの条件が成立した場合のみ[エラー]処理コマンドが実行されます。


処理コマンド ブロック If

If

ロジックエディタ > 処理コマンド > ブロック

[ブロックIf]処理コマンドは、基本的なブロック処理です。

このタイプは、[ブロックEnd]処理コマンドと対になっていなければなりません。Magic エンジンがこのタイプの処理を見つけた場合、処理コマンドの条件を評価します。条件に合えばブロック内の処理を実行します。条件に合わない場合は、[ブロックEnd]処理コマンドまでの処理をスキップします。[ブロックIf]処理コマンドで指定されたブロック内に別の[ブロック]処理コマンドをネストさせることができます。

参照

Else

While


処理コマンド ブロック Else

Else

ロジックエディタ > 処理コマンド > ブロック

[ブロックElse]処理コマンドは、[ブロックIf]処理コマンドの拡張機能です。

[ブロックElse]処理コマンドは、それ自身に対応した[ブロックEnd]処理コマンドを持っていません。その前に定義されている[ブロックIf]処理コマンドと同じロジック内にあるからです。同じ[ブロックIf]処理コマンドの拡張機能として複数の[ブロックElse]処理コマンドを定義することができます。

[ブロックIf]処理コマンドの指定条件に合えば、[ブロックIf]処理コマンドから[ブロックElse]処理コマンドまでの間の処理を実行し、[ブロックElse]処理コマンドから[ブロック終了]処理コマンドまでの処理をスキップします。

[ブロックIf]処理コマンドの指定条件に合わなければ、[ブロックIf]処理コマンドから[ブロックElse]処理コマンドまでの間の処理をスキップし、[ブロックElse]処理コマンドで指定された条件を評価します。この条件に合えば[ブロックElse]処理コマンドから次の[ブロックElse]処理コマンドまでの処理を実行します。このようにして[ブロックEnd]処理コマンドまでの各ブロックを評価していきます。

参照

If

While


処理コマンド ブロック While

While

ロジックエディタ > 処理コマンド > ブロック

[ブロックWhile]処理コマンドは、ブロック内の処理を繰り返し実行するように指定するものです。

Magicエンジンが[ブロックWhile]処理コマンドを見つけると、まず条件設定を評価します。その条件が満たされるのであれば、ブロック内の処理を実行します。

[ブロック終了]処理コマンドに達すると、[ブロックWhile]処理コマンドの先頭に戻り、再び条件を評価します。条件が満たされる限り、[ブロックWhile]処理コマンドの処理を実行します。条件が満たされない場合、[ブロック終了]処理コマンドを抜けて、タスクフローを続けます。

LoopCounter関数を使用して、[ブロックWhile]処理コマンドによって実行される回数を監視できます。


処理コマンド ブロック End

End

ロジックエディタ > 処理コマンド > ブロック

このオプションは、ブロックのユニットを終了させます。

使用の際の注意

  • [ブロックEnd]処理コマンドは、[ブロック]処理コマンドを定義すると、その下に自動的に定義されます。

  • [ブロックEnd]処理コマンドは、[ブロック]処理コマンドが定義されている限り、削除しないでください。また、別のコマンドに変更しないでください。

  • [ブロックEnd]処理コマンドを誤って削除した時には、手動で定義してください。

  • [ブロック]処理コマンドと[ブロックEnd]処理コマンドが対になっていないなど構文に誤りがある場合、構文チェック（[オプション／構文チェック]）でエラーになります。


処理コマンド ブロック 条件

条件 (デフォルト:Yes)

ロジックエディタ > 処理コマンド > ブロック

この特性には、論理条件を指定します。その論理条件から返る値を使用して、[ブロック]処理コマンドと[ブロックEnd]処理コマンドの間のコマンドを実行するかどうか制御できます。

指定できる値は以下の通りです。

  • Yes …… 条件が常に「True」であることを示しています。

  • No …… 条件が常に「False」であることを示しています。処理コマンドは実行されません。

  • 式番号 …… 処理コマンドの実行条件を動的に制御する場合に指定します。ここから[式]エディタにズームして実行条件の論理式を選択してください。[ブロックWhile]処理コマンドの場合は、ループの実行条件を指定する必要があります。


処理コマンド エラー

エラー

ロジックエディタ > 処理コマンド

[エラー]処理コマンドは、エンドユーザにエラーが発生したことを通知したり、入力ミスを防止するために使用します。

エラー特性

[エラー]処理コマンドには、以下の特性があります。

モード

テキスト

表示

フローモード

フロー方向

条件


処理コマンド エラー モード

モード (デフォルト:W=警告)

ロジックエディタ > 処理コマンド > エラー

[モード]特性の有効な値は以下のとおりです。

  • E=エラー……メッセージが表示され、その後、次の規則にしたがって動作が実行されます。

[エラー]処理コマンドがオンラインタスクのコントロールレベルで使用されている場合

    1. 処理が一時中断します。

    2. カーソルが対応するコントロールに止まります。

    3. エンドユーザがエラーを訂正するまで待機状態に入ります。

[エラー]処理コマンドがオンラインタスクの[レコード後]で使用されている場合

    1. 処理が一時中断します。

    2. カーソルは、フォーム上の現在のレコードでパーク可能項目のうち、カーソルが最後にパークしたコントロールに戻ります。

    3. エンドユーザがエラーを訂正するまで待機状態に入ります。

[エラー]処理コマンドがバッチタスクの[レコード後]で使用されている場合

    1. 処理が中断します。

    2. Magicは、現在のレコードをスキップしユーザの入力を待ちます。Esc以外のキーを押下すると、次のレコードからタスクの処理を再開します。Escキーを押下するとタスクを終了します。この場合のエラーメッセージは、エラーを訂正してからEscキー以外のキーを押下するような指示にしてください。プログラムのデバック機能として、この処理コマンドが使用できます。

上記以外のレベル（[タスク前／後]やグループレベル、[レコード前]）で使用する場合は、処理が中断し、そのレベルの実行がアボートされます。

  • W=警告……警告音が鳴ると同時に指定したメッセージが表示されます。ただし、タスクの実行は停止しません。メッセージステータスバーに表示される場合は、エンドユーザはメッセージを無視して作業を続けることができます。ユーザが次の操作を行なうとメッセージは見えなくなります。メッセージをダイアログボックスで表示させた場合は、[OK]ボタンをクリックすることでメッセージは見えなくなります。

  • R=復帰……メッセージが表示され、ハンドラ内をフローが逆方法に移動し、ハンドラの先頭に戻ります。この値は、以下のハンドラ内のみ有効です。

    • [イベント]ハンドラ

    • [コントロール前]ハンドラ

    • [コントロール後]ハンドラ

    • [コントロール検証]ハンドラ

[ブロックIf]処理コマンドが定義されている場合、ブロックユニット内を逆順に実行します。[ブロックWhile]処理コマンドが定義されている場合、ブロック処理を終了し[ブロックWhile]処理コマンドの前に定義されている処理コマンドを]を逆順に実行します。

参照

表示


処理コマンド エラー テキスト

テキスト

ロジックエディタ > 処理コマンド > エラー

テキストを入力するか、[式]エディタにズームして文字列が返る式を指定します。入力した文字列がテキスト入力欄の幅より大きい場合、自動的に広域ウィンドウが表示されます。式を指定した場合、式の最初の部分が表示されます。

テキスト（メッセージ）を指定し、実行時に[条件]特性が「True」と評価されると、メッセージ行にエラーメッセージが表示されるとともに警告音が鳴ります。[式]特性の値が「0」で、[テキスト]特性にメッセージを入力していない場合、メッセージは表示されませんし、警告音も鳴りませんが、処理は通常どおり実行されます。

参照

モード


処理コマンド エラー 表示

表示 (デフォルト：B=ボックス)

ロジックエディタ > 処理コマンド > エラー

[表示]特性では、[エラー]処理コマンドで表示されるメッセージの形式を指定できます。指定できるオプションは、以下の通りです。

  • B=ボックス …… メッセージがダイアログボックスで表示されます。Magicはこのダイアログが閉じられるまで次の処理に移行しません。[モード]特性が「E=エラー」の場合、エラーダイアログが表示され、「W=警告」の場合、警告ダイアログが表示されます。

  • S=ライン …… ウィンドウのステータス行にメッセージが表示されます。[モード]特性が「W=警告」の場合、Magicエンジンは直ちに次の処理に移行します。


処理コマンド エラー 条件

条件 （デフォルト：Yes）

ロジックエディタ > 処理コマンド > エラー

この特性には、論理条件を指定します。その論理条件から返る値を使用して、処理コマンドを実行するかどうか制御できます。

指定できる値は以下の通りです。

  • Yes …… 条件が常に「True」であることを示しています。

  • No …… 条件が常に「False」であることを示しています。処理コマンドは実行されません。

  • 式番号 …… 処理コマンドの実行条件を動的に制御する場合に指定します。ここから[式]エディタにズームして実行条件の論理式を選択してください。


処理コマンド フォーム

フォーム

ロジックエディタ > 処理コマンド

[フォーム]処理コマンドは、以下の処理を行うことができます。

  • 入力フォームによる読み込み……このオプションは、テキストファイルや入力デバイスからデータを読み込み、フォームに定義された項目に設定します。

  • 出力フォームによる書き込み……このオプションは、テキストファイルや出力デバイスに、フォームに定義されたレイアウトを使用してデータを出力します。この処理コマンドは通常、印刷処理で使用します。出力フォームを[マージ形式]フォームにした場合、書式が定義されたテンプレートファイルにデータをマージすることができます。

用途

[フォーム入力]処理コマンドは、以下のような場合に使用します。

  • [テキスト形式]フォームを使用したデータ入力

[フォーム出力]処理コマンドは、以下のような場合に使用します。

  • 帳票の出力

  • データをテキスト形式で出力

  • タスクのデータを定義済みテンプレートファイルにマージして出力

フォーム出力特性

[フォーム出力]処理コマンドには、以下の特性があります。

フォーム

入出力ファイル

ページ

フローモード

フロー方向

条件

フォーム入力特性

[フォーム入力]処理コマンドには、以下の特性があります。

フォーム

入出力ファイル

区切り方法

区切り文字

フローモード

フロー方向

条件


処理コマンド フォーム 出力

フォーム出力

ロジックエディタ > 処理コマンド > フォーム

この処理コマンドを使用して、レコードをテキストファイルや出力デバイスに出力することができます。レコードは、フォームに定義されているレイアウトにしたがって出力されます。このコマンドは、通常、帳票の出力に使用します。

出力フォームがマージフォームの場合に、このコマンドはデータを独立したテンプレートファイルにマージして出力します。

用途

[フォーム出力]処理コマンドは、以下のような場合に使用します。

  • 帳票の出力

  • データをテキスト形式で出力

  • タスクのデータを定義済みテンプレートファイルにマージして出力

使用の際の注意事項

  • データ出力プログラムは、APGを使用して自動的に作成することができます。

  • [フォーム出力]処理コマンドは、外部テキストファイル（出力ファイル）を処理するためのコマンドで、DBテーブルを処理するものではありません。

  • [フォーム出力]処理コマンドは、出力先を画面やディスクファイル、プリンタ、デバイスドライバにリダイレクトすることができます。

  • 帳票を出力する場合、帳票の構成要素（ヘッダ、フッタ、明細行）ごとにそれぞれ、[フォーム出力]処理コマンドを定義します。その場合、帳票の構成要素を全て、テキストファイルが定義されているタスク（[入出力ファイル]テーブルで定義します）に一括して定義することも可能ですし、そのタスクの子タスクに定義することもできます。

  • ページ終了（EOP）状態は、[ページ]特性を「A＝自動」または「T＝先頭」に設定した[フォーム出力]処理コマンドを実行することでクリアできます。

フォーム出力特性

[フォーム出力]処理コマンドには、以下の特性があります。

フォーム

入出力ファイル

ページ

フローモード

フロー方向

条件


処理コマンド フォーム 出力 フォーム

フォーム

ロジックエディタ > 処理コマンド > フォーム > フォーム出力

[フォーム]特性には、出力処理で使用するフォーム番号を指定します。ここからズームして[フォーム一覧]を開きフォームを選択できます。指定するフォームのクラスは、１以上でなければなりません。ここにフォームを指定すると、そのフォームのフォーマットでレコードが出力されます。ここでフォーマットとは、テキストファイルのレイアウトまたは帳票の各部分（ヘッダ、フッタ、ページヘッダ、ページフッタ、明細の各部）の形式をいいます。

フォームを作成する場合は、[プロジェクト／フォーム]（Ctrl+F）を実行するか、[フォーム]ツールバーボタンをクリックして[フォーム]エディタを開き、F4キーを押下して１行追加してください。


処理コマンド フォーム 出力 ファイル

入出力ファイル

ロジックエディタ > 処理コマンド > フォーム > フォーム出力

ここには、[入出力ファイル]テーブルの番号を指定します。[入出力ファイル一覧]で表示される番号を指定します。ここで指定した出力ファイルにデータが出力されます。デフォルトは、「1」です。

ここで指定したファイルは、[入出力ファイル]テーブルの[アクセス]カラムの値が[W＝書出]または[A＝追加]になっていなければなりません。フォームがマージ形式の場合には、[アクセス]カラムの値は[W＝書出]のものを指定します。

ここには、上位タスクで定義されているファイルを指定することもできます。

ここでズームすると[入出力ファイル一覧]が表示されますので、ここでファイルを指定します。

新規のファイルを定義したい場合、[タスク環境]の[入出力ファイル]（Ctrl+I）を選択して[入出力ファイル]テーブルを開き、ここで作成してください。


処理コマンド フォーム 出力 ページ

ページ (デフォルト:A=自動)

ロジックエディタ > 処理コマンド > フォーム > フォーム出力

この特性は、帳票をプリンタまたは画面に出力する場合に使用します。この特性を使用して、ページ終了（EOP）状態が発生した時の動作を指定できます。マージには関係しません。

ページ終了（EOP）状態は、出力対象のフォームが現在のページの残りのスペースより大きい場合に発生します。ページ終了（EOP）状態の識別にはページサイズ（行数）が使われますが、このページサイズは論理ページサイズで、プリンタの物理ページサイズとは無関係です。Magicの論理ページサイズとプリンタの物理ページサイズは、[プリンタ]テーブルで関係を指定できます。Magicの論理ページサイズは、次のどちらかの値により計算されます。

  • [フォーム出力]処理コマンドで指定されている入出力ファイルの[行]カラムの値。

  • [行]カラムに値が設定されていない時には、[フォーム出力]処理コマンドで指定されている入出力ファイルが出力されるプリンタの[行]カラムの値。

ページ終了（EOP）状態は、次の[フォーム出力]処理コマンドで改ページが実行されるように設定されている場合、そのコマンドでクリアされます。つまり、次の[フォーム出力]処理コマンドの[ページ]特性の値が「A＝自動」または「T＝先頭」の時にクリアされます。

Magicでは、複数の入出力ファイルや出力デバイスに対して同時に出力が可能ですが、この場合、ページ終了（EOP）状態は、入出力ファイルや出力デバイスごとに処理されます。つまり、特定の入出力ファイルでページ終了（EOP）状態が発生した時でも、別の入出力ファイルは通常どおり処理されます。

[ページ]特性に指定できる値は、次の通りです。

  • S＝スキップ……この設定にしておくと、フォームが出力される前に、現在のページにフォームを出力するスペースが十分あるかどうかがチェックされます。スペースがある場合、フォームが出力されます。スペースがない時には、そのフォームはスキップされ、出力先への書き込みは行われません。その場合、ページ終了（EOP）状態がオンになります。このオンのページ終了（EOP）状態は、EOP関数を使用してチェックできます。

  • A＝自動……現在のフォームを印刷する前に、Magicは、現在のページに印刷可能なスペースがあるかどうかをチェックします。十分なスペースが存在していれば現在のページのフォームを印刷します。十分なスペースがない場合、改ページが実行され、新しいページのフォームを印刷することによって、自動的にEDPを処理します。
    現在のフォームと同じクラスのヘッダフォームがある場合、Magicは最初にヘッダフォームを印刷し、その後、現在のフォームを印刷します。

  • T＝先頭……この設定にしておくと、プリンタに対して改ページコードが送られ、その後、フォームデータがプリンタに送られます。この場合、次のページの先頭から印刷が始まります。つまり、強制改ページが実行されます。この処理では、ヘッダがもう一度出力されることはありません。

注意：

ページ終了（EOP）状態が発生した時の処理は、必要に応じて決めます。例えば、ページ終了（EOP）状態が発生した時、強制的に改ページして出力を続けたい時は、[ページ]特性の値を「T＝先頭」にしておきます。

[ページ]特性の値を「S＝スキップ」にした場合、ページ終了（EOP）状態が発生すると、その後の出力は無視されます。その後、ページ終了（EOP）状態がクリアされると、出力が再開されます。

このため、「S＝スキップ」は、特にアプリケーションで出力関連の処理を制御したい場合に指定します。その場合、EOP関数、Line関数を使用して[フォーム出力]処理コマンドの実行を制御します。


処理コマンド フォーム 出力 条件

条件 (デフォルト:Yes)

ロジックエディタ > 処理コマンド > フォーム > フォーム出力

この特性には、論理条件を指定します。その論理条件から返る値を使用して、処理コマンドを実行するかどうか制御できます。

指定できる値は以下の通りです。

  • Yes …… 条件が常に「True」であることを示しています。

  • No …… 条件が常に「False」であることを示しています。処理コマンドは実行されません。

  • 式番号 …… 処理コマンドの実行条件を動的に制御する場合に指定します。ここから[式]エディタにズームして実行条件の論理式を選択してください。[ブロックWhile]処理コマンドの場合は、ループの実行条件を指定する必要があります。


処理コマンド フォーム 入力

フォーム入力

ロジックエディタ > 処理コマンド > フォーム

このオプションは、テキストファイルや入力デバイスからデータを読み込み、フォームに定義された項目に設定します。

用途

[フォーム入力]処理コマンドは、以下のような場合に使用します。

  • テキスト形式フォームを使用したデータ入力

フォーム入力特性

[フォーム入力]処理コマンドには、以下の特性があります。

フォーム

入出力ファイル

区切り方法

区切り文字

フローモード

フロー方向

条件

使用の際の注意事項

  • データ入力プログラムは、APGを使用して自動的に作成することができます。

  • データの読込先の項目に[代入]特性が指定されていたり、リンク式で使用されている場合、再計算（非手続き型処理）が実行されます。

  • 入力テキストファイルのレコードのレイアウトがレコードごとに異なる場合、各レコードごとに[フォーム入力]処理コマンドを指定しなければなりません。

  • バッチタスクでスクラッチファイル（ファイル番号0）を使用する場合、[タスク特性]の[タスク終了条件]特性を定義しなけばなりません。式は、EOF（ファイル終了）関数を使用してファイルの終了をチェックし、ファイルが終了した場合、バッチタスクを終了するようなものにします。または、レコードの数を定義しておき、その数のレコードが処理されればバッチタスクを終了するという式を定義することも可能です。

  • [フォーム入力]処理コマンドでは、複数行のフォームを使用して、その行の数だけのレコードを入力ファイルから読み込むという処理もできます。この方法は、入力ファイルのデータをコピーして、DBテーブルを作成する時に利用できます。この場合、入力ファイルのレコードは、読み込まれた順番にDBテーブルの各行に書き込まれます。

  • フォームの行サイズは、各最大9,999バイトです。したがって、[フォーム入力]処理コマンドでは、最大で9,999バイトまでのレコードの読込が可能です。

  • フォームの最大内容サイズ（フォームの行数と列数を掛けたサイズ）は、32KBです。

  • 入力ファイルの数値項目には、マイナス記号、カンマ、小数点（編集後の数値）を含めることができます。

  • [フォーム入力]処理コマンドの実行時、そのコマンドで使われているフォームの幅（サイズ）を基に入力ファイルのレコードが読み込まれます。このフォームの幅の読み取りが完了する前に行の改行コード（LF）が検出されると、その時点で[フォーム入力]処理コマンドは終了します。


処理コマンド フォーム 入力 フォーム

フォーム

ロジックエディタ > 処理コマンド > フォーム > フォーム入力

[フォーム]特性には、入力処理で使用するフォーム番号を指定します。[フォーム一覧]からフォームを選択します。指定するフォームのクラスは、１以上でなければなりません。タスクのメインウィンドウのフォーム番号を指定することはできません。

ズームすると[フォーム一覧]が表示されますので、ここからフォームを選択して指定できます。新規のフォームを指定したい場合、まず、フォームを[フォーム]エディタで定義しなければなりません。


処理コマンド フォーム 入力 ファイル

入出力ファイル

ロジックエディタ > 処理コマンド > フォーム > フォーム入力

ここには、[入出力ファイル]テーブルの番号を指定します。[入出力ファイル一覧]で表示される番号を指定します。ここで指定した入力ファイルのデータが読み込まれます。デフォルトは、「1」です。

ここで指定したファイルは、[入出力ファイル]テーブルの[アクセス]カラムの値が[R＝読込]になっていなければなりません。「入出力ファイル」のトピックも参照してください。

ここには、上位タスクで定義されているファイルを指定することもできます。

ここでズームすると[入出力ファイル一覧]が表示されますので、ここでファイルを指定します。

新規のファイルを定義したい場合、[タスク環境]の[入出力ファイル]（Ctrl+I）を実行して[入出力ファイル]テーブルを開き、ここで作成してください。


処理コマンド フォーム 入力 区切り方法

区切り方法

ロジックエディタ > 処理コマンド > フォーム > フォーム入力

[区切り方法]特性は、どのような方法でレコードのフィールドを区切って読み込むかを指定します。指定できる値は、以下の通りです。

  • C＝固定長……この設定の場合、フィールドは区切文字で区切られていないものとしてレコードが読み込まれます。つまり、レコードのフィールドは、実際の長さのまま読み込まれ、したがって、フォームのレイアウトは入力ファイルとまったく同じでなければなりません。フィールドに置かれているスペースもそのまま読み込まれます。
    「C＝固定長」にした場合、[区切り文字]特性は必要ありませんので、カーソルはパークしません。

  • S＝単区切……入力レコードのフィールドが何らかの区切文字で区切られている場合（各フィールドの値の右に何らかの文字が置かれている場合）、この設定にします。
    例えば、入力レコードが、「123, ABCDE, -23.57」というようにカンマ（,）で区切られている時には、この設定にします。また、[区切り文字]特性にカンマを指定します。この設定にした場合、フィールド間のスペースは無視されます。

  • D＝複区切……入力レコードのフィールドが何らかの区切文字で区切られており、その文字が２字、つまり、データの前後（左側と右側）にそれぞれ区切文字が使われている場合、この設定にします。
    例えば、入力レコードのフィールドが、「“23”“ABCDE”“23.57”」というように二重引用符（”）で区切られている時には、この設定にします。また、[区切り文字]特性に二重引用符を指定します。
    この設定にした場合、レコードのフィールド間のスペースは無視されます。なお、入力レコードのフィールドがカンマで区切られ、しかも、データの前後に二重引用符が付加されている場合、[区切り方法]特性の設定を「S＝単区切」にした[フォーム入力]処理コマンドを実行すると、データの前後の二重引用符は削除されます。例えば、入力レコードが次のようだったとします。
    “A”,“B”,“C”
    この場合、[フォーム入力]処理コマンドの実行後、データは「“A”,“B”,“C”」ではなく「A,B,C」の形で読み込まれます。


処理コマンド フォーム 入力 区切り文字

区切文字

ロジックエディタ > 処理コマンド > フォーム > フォーム入力

ここには、区切文字として使用する文字を指定します。[区切り方法]特性に「S=単区切」または「D=複区切」が指定された時に有効になります。


処理コマンド フォーム 入力 条件

条件 (デフォルト:Yes)

ロジックエディタ > 処理コマンド > フォーム > フォーム入力

この特性には、論理条件を指定します。その論理条件から返る値を使用して、処理コマンドを実行するかどうか制御できます。

指定できる値は以下の通りです。

  • Yes …… 条件が常に「True」であることを示しています。

  • No …… 条件が常に「False」であることを示しています。処理コマンドは実行されません。

  • 式番号 …… 処理コマンドの実行条件を動的に制御する場合に指定します。ここから[式]エディタにズームして実行条件の論理式を選択してください。


処理コマンド 項目変更

項目

ロジックエディタ > 処理コマンド

[項目]処理コマンドは、[ロジック]エディタ内で変数／パラメータ項目を定義します。

この処理コマンドは、[イベント]、[項目]，[関数]の各ロジックユニットでのみ有効です。

参照

[項目変更]ロジックユニット

項目変更特性


[フォーム]エディタ

[フォーム]エディタには、タスクのフォーム定義情報が含まれています。各エントリはフォームを表しています。先頭のフォームはタスクのメインウィンドウです。

[タスク環境]メニューから[フォーム]をクリックすると[フォーム]エディタが開きます。

プログラムを新規に作成すると、[フォーム]エディタに最初のエントリ（メインフォーム）を自動的に作成します。このエントリは、そのタスク固有のもので、削除したり、別の場所に移動することはできません。また、その前に別のエントリを作成することもできません。

サブタスクを作成すると、親タスクの[フォーム]エディタに定義されたエントリの下にサブタスク用のメインフォームが追加されます。このエントリはサブタスク固有のものでは削除できません。上位タスクの[フォーム]エディタでエントリを追加または削除すると、このエントリの[フォーム]エディタ内の位置が移動します。サブタスクの[フォーム]エディタからは、サブタスクに関する全てのフォームや上位タスクで作成されたエントリにアクセスすることができます。

[クラス]特性が「0」のフォームの場合、[フォーム]エディタは、プログラム階層上における全ての上位タスクのメインウィンドウの上位に表示されます。このため、実行時にどのように表示されるかを確認することができます。

オンラインタスクやブラウザタスクでは、表示フォームはデータ項目を表示したり、エンドユーザによる入力を行うために使用されます。

バッチタスクでは、タスクが実行中であることや、進捗状況などの処理に関する情報を表示するために使用します。また、表示フォームは、バッチタスクの位置付や範囲を設定するなど、エンドユーザが選択するテンプレートとしても役立ちます。

[フォーム特性]シート上の特性値によって、指定したフォームの定義を行なうことができます。

フォームエントリをダブルクリックするか、[オプション]メニューから[フォーム表示]（Ctral+M）をクリックすることで、[フォーム]エディタを開始することができます。

[コントロール]パレットからコントロールを選び、フォーム上にコントロールをドラッグ& ドロップすることで、コントロールをフォームに配置することができます。[コントロール特性]シートに表示された特性値を変更することでコントロールを定義することができます。

参照

[フォーム]エディタのカラム

フォームの操作

表示フォーム

出力フォーム


[フォーム]エディタ カラム

[フォーム]エディタのカラム

[フォーム]エディタ >

[フォーム]エディタには、以下のカラムがあります。

#（フォームID）

名前

クラス

区分

インタフェースタイプ


[フォーム]エディタ カラム ID

#（フォームID）

[フォーム]エディタ > [フォーム]エディタのカラム

テーブル内のフォームの位置を表す連番です。番号は自動的に設定され変更することはできません。タスクの最初のフォームは、[クラス]カラムが「0」になり、削除も移動もできません。


[フォーム]エディタ カラム 名前

名前

[フォーム]エディタ > [フォーム]エディタのカラム

フォームの名前を指定します。新規のプログラムやサブタスクを作成すると、そのタスクに対応する[フォーム]エディタのエントリが自動的に作成されますが、その際タスク名が、デフォルトのフォーム名として設定されます。この名前は、後で変更することができます。ただし、タスク名とフォーム名が同じデフォルト状態の場合、[タスク特性]で[タスク名]を変更すると、自動的にフォーム名に反映されます。

[フォーム]エディタ上で開発者が後から追加したエントリには、手動で名前を設定する必要があります。この名前は[クラス]が「0」のフォームの場合、表示ウィンドウのタイトルバーとして表示されます。

[名前]カラムからズームすると、[フォーム]エディタが起動され、フォームが編集できるようになります。フォームがブラウザフォームやマージフォームの場合、[動作環境]ダイアログの[アプリケーションサーバ]タブの[Webオーサリングツール]に設定されている外部エディタが起動されます。


[フォーム]エディタ カラム クラス

クラス

[フォーム]エディタ > [フォーム]エディタのカラム

Magicは、タスクのメインフォームとして[クラス]が「0」のフォームを自動的に割り当てます。開発者は、メインフォーム以外にも[クラス]が「0」のフォームを定義することができます。このフォームは、ユーザとの対話用のフォームです。

[クラス]が「0」より大きいフォームを定義することもできます。このフォームは、帳票や入出力データのレイアウトを定義したりマージ用のテンプレートの割り当てに使用されます。

１つのタスクで２種類の帳票を出力するようにしたい場合は、[クラス]が「1」のフォームを最初の帳票用として定義し、[クラス]が「2」のフォームを２番目の帳票用に定義します。

1つの帳票にヘッダやフッタ、明細を関連させるかどうかや、最後のページまで１つのフォームで出力するかどうかは、[クラス]を指定する上であまり重要ではありません。

クラス値が1以上の[フォーム]エディタのエントリからズームすると、同一のクラス値を持つ全てのフォームが表示されます。帳票フォームの場合は、ページヘッダ、ヘッダ、明細、フッタ、ページフッタの各フォームが存在する時、全てが同時に表示されます。

この時、同じクラス値（クラス値＞0）のグループのフォームに対し、[寸法単位]、[垂直精度]、[水平精度]の特性が自動的に調整され、同じ値になります。解像度については、同じクラスのいずれかのフォームで定義されている最高の解像度に統一されます。

参考

[クラス]の値を変更するとフォーム上のコントロールが削除される場合があります。


[フォーム]エディタ カラム 区分

区分

[フォーム]エディタ > [フォーム]エディタのカラム

[クラス]が「0」（対話型ウィンドウ）のフォームの場合、[区分]カラムは無効になります。帳票出力用のフォームに対して[区分]カラムは、以下のように設定できます。

  • D=詳細（デフォルト）

  • H=ヘッダ …… ヘッダは、見出しを出力する場合に使用されます。同じクラスの新しいページが出力され場合、その後に出力される２番目以降のページの見出しとして自動的に出力されます。[ヘッダ]フォームは、最初のページに対して出力されません。従って、最初のページ対して手動で出力させる必要があります。[タスク前]ロジックユニットは、プログラムが起動される際に1回だけ実行する処理を定義します。従って、[タスク前]ロジックユニットに、[ヘッダ]フォームを出力するためのフォーム出力処理コマンドを追加することで対応できます。

  • F=フッタ …… フッタは、帳票の概要出力用に使用されます。

  • P=ページヘッダ …… ページヘッダは、テキストのメインボディから分離され、出力されたるページの先頭に表示されます。

  • G=ページフッタ …… ページフッタは、ロゴなどの会社情報を出力する場合に使用されます。

データ入出力用のレイアウトとして使用する場合は、このカラムの設定は無視されます。

[フォーム]エディタにおける、ヘッダ、明細、フッタの各フォームエントリは、配置の仕方が重要になります。ヘッダフォームの次のエントリには、（対応するフッタが存在する場合には）必ずそのフッタフォームがなくてはなりません。全てのヘッダとフッタの対は、明細行よりも先に配置してください。ヘッダとフッタの対は、そのネスト構造の外側から順に配置されなければなりません。明細フォームは、最も内側にあるヘッダとフッタの対のフォームエントリの後ろに配置します。明細フォームは、レポートに表示される順に配置しなければなりません。フォームを編集する場合は、これらのフォームはネストしたヘッダ、明細、フッタの順で入れ子形式に表示され、実際の帳票に出力される順序に並びます。

参考

  • フッターフォームは帳票用のフッタで、帳票の最後のページに1回プリントされるものです。従って、[タスク後]ロジックユニットから出力するようにします（プログラム終了時に、一度だけ実行されます)。

  • ページヘッダとページフッタは、ページ内容を問わずどのようなページに対しても出力することができます。従って、[ページヘッダ]と[ページフッタ]フォームは、[入出力特性]で定義します。このようにして、Magicは常に出力されたページにこれらのフォームを含むことになります。


[フォーム]エディタ カラム インタフェースタイプ

インタフェースタイプ

[フォーム]エディタ > [フォーム]エディタのカラム

以下のテーブルのように、タスクタイプ毎に選択できるインタフェースタイプが変わります。

クラス | インタフェースタイプ | 目的
0 | B=ブラウザ | ブラウザクライアントタスク
 | G=GUI表示形式 | オンラインタスク
 | C=リッチクライアント表示形式 | リッチクライアントタスク
 | A=リッチクライアントフレーム形式 | リッチクライアントフォームを複数のフレームに分割して、複雑な表示を実現させます。
> 0 | G=GUI出力形式 | 帳票作成用
 | T=テキスト形式 | テキスト出力用
 | F=フレームセット形式 | ブラウザウィンドウを複数のフレームに分割することで、複雑なインターネットドキュメントを作成します。
 | M=マージ形式 | Magicタスクのデータをテンプレートファイルとマージさせて動的なHTMLページを作成します。

[クラス]が「0」より大きいフォームでは、既存のフォームの[インタフェースタイプ]を変更すると、現在の表示に上書きするかどうかを尋ねる、「変更しますか？」というダイアログが表示されます。ここでEnterキーを押下すると、変換が実行され、互換性がないコントロールが削除されます。

表示フォーム は、[インタフェースタイプ]が、「GUI表示形式」か「ブラウザ形式」または、「リッチクライアント形式」のフォームです。

出力フォーム は、[インタフェースタイプ]が、「テキスト形式」か「GUI出力形式」、「フレームセット形式」、「マージ形式」のフォームです。


[フォーム]エディタ フォームの操作

フォームの操作

[フォーム]エディタ >

エンドユーザは、フォームを使用してアプリケーションにアクセスします。フォームには、データを表示したり、エンドユーザにデータを入力させるためのコントロールが含まれています。

[フォーム]エディタは、指定された特性値を基にフレームと内容を表示します。フォーム特性を指定したり、コントロールを配置したり、コントロールの特性を定義することによってフォームを編集することができます。

フォームジェネレータ を使用することで、選択された項目を[フォーム]エディタ上に配置することができます。詳細は、フォーム作成の説明を参照してください。

参照

フォームの位置とサイズの変更

カラムのマーキング

コントロールロジックの操作

透過性

寸法単位

フォームパレット

フォームテンプレート

フォームモデル

フォームとコントロールの特性

描画メニュー

キーボードによる操作

マウスによる操作


[フォーム]エディタ フォームの操作 位置とサイズの変更

フォームの位置とサイズの変更

[フォーム]エディタ > フォームの操作

フォームのサイズを変更するには２つの方法があります。１つは、[フォーム特性]の[位置とサイズ]特性に表示されるサイズの値を変更するやり方です。もう１つは、フォームレイアウトが表示された状態で、Shift + カーソルキーを押下する方法です。[クラス]が「0」のフォームの場合、フォームレイアウトの右端や下辺部をマウスでドラッグして変更することも可能です。

フォームレイアウトを移動する場合は、カーソルキーやマウスでタイトルバーをドラッグします。

キーボードでのフォームのサイズ変更や移動を行った後、Enterキーを押下することで変更内容が確定され、Escキーで変更がキャンセルされます。

フォームサイズを小さくして配置されたコントロールが隠れるような状態になった場合、自動的にスクロールバーが表示されます。フォームのサイズ変更で配置されたコントロールが削除されることはありません。


[フォーム]エディタ フォームの操作 カラムのマーキング

カラムのマーキング

[フォーム]エディタ > フォームの操作

フォーム上で、カラムだけをマークする場合は、Altキーを押下した状態で、カラム([テーブル]コントロールの[ヘッダ]や第一行目を除いたカラムであればどこでも)を左クリックしてください。


[フォーム]エディタ フォームの操作 コントロールロジック

コントロールロジックの操作

[フォーム]エディタ > フォームの操作

[フォーム]エディタからコントロールに対応するロジックユニットを直接作成することができます。

[フォーム]エディタ内で、ロジックをサポートするコントロールを右クリックします。コンテキストメニューから[ロジック]を選択すると、[事前定義ロジック]テーブルに定義されたロジックユニットが表示されます。作成したいロジックユニットを選択すると、（タスクレベルやレコードレベルを除き）選択したコントロールに対するロジックユニットが作成され、[ロジック]エディタに表示が切り替わります。

[ロジック]エディタにコントロールに対応するロジックユニットが作成されると、そのコントロール上で表示されるコンテキストメニューの[ロジック]オプションには、作成されたロジックユニットが表示されます。

コンテキストメニューから作成済みのロジックユニットを選択すると、[ロジック]エディタ内の該当するロジックユニットに表示が切り替わります。

注意：

[コントロール名]特性が設定されていないコントロールの場合、このメニューは無効になります。


[フォーム]エディタ フォームの操作 透過性

透過性

[フォーム]エディタ > フォームの操作

Magicは、子タスクのフォーム(サブフォーム)や[テーブル]コントロール用に透過性をサポートしています。

フォームに透過色を指定することができます。透過色は、背景色の[基本色定義]パレットで[透過指定]のチェックボックスをチェックして指定します。子タスクのフォームではないフォームに透過色を指定すると、Magicは、背景色の[基本色定義]パレットに不透過色が設定されたように表示されます。

背景

背景を設定する際に、コントロールに透過色を指定して背景と一体化させたい場合があります。

コントロールの背景色を透過にするには、コントロールを平面指定にする必要があります。

最初に、コントロールの[スタイル]特性を「2=平面」に設定し、その後で[色]特性を透過色に変更します。


GUI表示フォーム 特性 詳細 寸法単位

寸法単位

[フォーム]エディタ > フォームの操作
表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 詳細

フォーム上のコントロールのサイズや位置は[寸法単位]に基づいて決まります。フォームの解像度も寸法単位によって決まります。寸法単位の設定は[フォーム特性]シートで指定します。

指定できる寸法単位は以下の通りです。

  • D=ダイアログ（文字）

  • C=センチメートル

  • I=インチ

「D=ダイアログ」を指定すると、その時のフォントサイズを基にコントロールが配置されます。このため、異なる解像度の画面を使用しても、1つのフォーム上の同じ特性を維持できます。

注意：

システムが異なると互換性が維持できない場合があるため、印刷帳票のフォームにおいては、「D=ダイアログ」以外の使用を推奨しています。

フォームの解像度を変更するためには、「ダイアログ」の分割単位を変更します。[フォーム特性]の[垂直精度]と[水平精度]の各特性を使用します。

HTMLフォームやテキストフォームの寸法単位は必ず、フォームのフォントを基準にした「D=ダイアログ」です。寸法単位によって、フォームの作成時に表示されるグリッドのサイズが決まります。

コントロールがフォーム上のどの行に置かれるかは、グリッドによって決まります。フォーマット済みコントロールの場合、パディング（余白埋め）のスペースの数によって、コントロールの位置が設定されます。

[寸法単位]特性は、以下のフォームで有効です。

  • GUI表示形式

  • GUI出力形式


[フォーム]エディタ フォームの操作 フォームパレット

フォームパレット

[フォーム]エディタ > フォームの操作

[フォーム]パレットには、配置するコントロールを選択したり、コントロールの書式を指定するためのアイコンが配置されています。

Magicには以下のパレットがあります。

  • [コントロール]パレット……フォーム上に配置するコントロールが選択できます。指定したフォームのタイプに基づいたコントロールのアイコンが表示されています。コントロールをフォームに配置する操作は「ドラッグ＆ドロップ」ではなく「クリック＆プレイス」になります。

  • [コマンド]パレット……フォームの編集コマンドを選択できます。フォーム上のコントロールを整列したり、サイズを変更したり、親子リンクを設定したり、グループを設定したりすることができます。

  • [色]パレット……コントロールに指定する色を選択できます。各色は、ボタンで表示されています。

  • [項目]パレット……フォーム上に配置する項目を選択できます。


[フォーム]エディタ フォームの操作 フォームパレット 項目パレット

項目パレット

[フォーム]エディタ > フォームの操作 > フォームパレット

[項目]パレットは[コントロール]パレットと同じ領域に表示されます。パレットのタブをクリックして、パレットを切り替えます。

[項目]パレットには、現在のタスクおよび上位タスクに定義されている項目の一覧があり、項目のID（文字）、名前、実ソース名または変数名が表示されます。

タスクの境界には、タスク名を含むセパレータが表示されます。

コントロールと同じように、項目をクリックして選択し、フォームにドロップできます。この時、項目名の[エディット]コントロールが一緒にドロップされます。

項目の選択をキャンセルするには、Escキーを押下するか区切りに表示されているタスク名をクリックしてください。

項目を[テーブル]コントロールへドロップした場合、項目名がカラムのタイトルとして設定されます。

[項目]パレットの端をドラッグすることで、サイズを自由に調整できます。変更されたパレットのサイズは保持されます。項目番号のカラムサイズは変わりません、またオリジナルのサイズより小さくできません。[項目]パレットサイズを変更しても[コントロール]パレット自体に影響を与えません。[コントロール]パレットの表示は左上に接した状態で変更されません。

[項目]パレットは、[ブラウザ形式]フォームのHTMLページの編集時も有効になります。外部HTMLエディタでオープンされたHTMLページに項目をドロップしてコントロールを作成することができます。


[フォーム]エディタ フォームの操作 フォームテンプレート

フォームテンプレート

[フォーム]エディタ > フォームの操作

現在のフォームレイアウトは、テンプレートとしてファイルに保存できます。デフォルトのファイル拡張子はMFT（Magic Form Template）です。テンプレートには、以下のものを除き、全てのコントロールとコントロール特性が格納されます。

  • コントロール名

  • [式]特性の内容

  • [データ]特性の内容

  • [ヘルプ画面]特性と[自動ヘルプ]特性の内容

  • [選択プログラム]特性の内容

上記の特性は、テンプレートファイルを読み込むと、空白になります。

テンプレートファイルを既存のフォームに読み込むと、テンプレートファイルによってフォームの全ての設定が上書きされるため、フォーム上の全てのコントロールが削除されます。

フォームテンプレートはGUI形式フォームのみで有効です。


[フォーム]エディタ フォームの操作 フォームモデル

フォームモデル

モデル > モデルリポジトリ > クラス
[フォーム]エディタ > フォームの操作

[フォーム]モデルには、フォームの書式が定義されています。[フォーム]モデルには、フォームの各インタフェースタイプごとにデフォルト値が割り当てられています。

  • ブラウザ形式……ブラウザタスクでのHTMLフォーム

  • GUI表示形式……オンラインタスクでのGUI表示フォーム

  • GUI出力形式……バッチタスクでのGUI出力フォーム

  • テキスト形式……バッチタスクでのテキスト形式の出力フォーム

  • フレームセット形式……ブラウザウィンドウが複数のフレームで分割されるような、複雑なインターネットドキュメントを作成するためのフォーム

  • マージ形式……あらかじめ作成されたテンプレートファイルを使用して、Magicのタスク内でデータをマージするために使用するマージ出力フォーム

[フォーム]エディタで特定のインタフェースタイプを定義すると、選択されたモデルの[特性]シートが表示されます。

例

プロジェクトで使用するフォームの形式は統一されており、背景に壁紙イメージが定義されているものとと仮定します。新規に作成するフォーム毎に[フォーム特性]を設定することは、時間画家かってしまいます。モデルを使用することで、設定するフォームの表示内容を確認することなく、設定することができるようになります。また、複数の特性を変更する必要がある場合、変更内容は、このモデルを使用しているすべてのフォームに反映されます。


[フォーム]エディタ フォームの操作 特性

フォームとコントロールの特性

[フォーム]エディタ > フォームの操作

[フォーム]特性はタスクの表示内容や書式を指定します。[コントロール]特性は、コントロールの表示内容や操作方法を指定します。フォームとコントロールの特性については、「表示フォーム」と「出力フォーム」に説明があります。

フォームやコントロールの特性は、モデルの情報を継承している場合があります。この場合は、[モデル]リポジトリのフォームモデルやコントロールモデルを定義することになります。詳細は、「モデル」を参照してください。


[フォーム]エディタ フォームの操作 描画メニュー

描画メニュー

[フォーム]エディタ > フォームの操作

[フォーム]エディタを開くと、[描画]メニューにアクセスすることができます。ここには、以下のオプションが含まれています。これらのオプションの多くは、[GUI表示コマンド]パレットでもアクセス可能です。

整列

以下のオプションの使用して、コントロールの位置を合わせることができます。

  • 選択左寄せ

  • 選択右寄せ

  • 選択上寄せ

  • 選択下寄せ

  • 選択水平センタリング

  • 選択垂直センタリング

センタリング

水平または垂直方向にフォームの中央にコントロールを寄せることができます。

均等揃え

水平または垂直方向に均等間隔でコントロールを配置することができます。

サイズ

表示される様々なオプションを使用することで、コントロールのサイズを変更することができます。

順序

コントロールの順番を表示したり変更することができます。選択したコントロールを最前面や最背面、一つ後ろや前に移動させることができます。また、以下のオプションを使用することもできます。

  • 自動Zオーダ …… 自動的にZオーダを定義するように指定します。コントロールのZオーダも参照してください。

  • Zオーダ表示 …… 現在のZオーダを表示します。

  • 自動TAB順序 …… 現在のフォーム上のすべてのコントロールに対して自動的にTAB IDを割り当てるように指定します。このオプションは、コントロール間のTAB順序を指定することになります。TABの順序も参照してください。

  • TAB順序表示 …… 現在のTAB順序を表示します。

リンク

ここには、以下のオプションが含まれています。

  • テーブルへのリンク調整…… [テーブル]コントロールに他のコントロールを親子リンクする場合の、コントロール動作を指定します。
    オンに設定されている場合、項目は移動し[テーブル]コントロールのカラムとして配置されます。オフに設定されている場合、項目は、現在の位置に留まった状態で、[テーブル]コントロールとリンクされます。[テーブル]コントロールの[スタイル]特性が｢Windows｣の場合は、この設定内容にかかわらず、リンクされたコントロールはカラムとして配置されます。

  • テーブルへの配置 …… フォーム上に配置済みのコントロールを、[テーブル]コントロールのカラムとしてリンクします。
    [テーブル]コントロールに追加したい大きなコントロールを持っている場合に、このオプションは有効です。コントロールを直接[テーブル]コントロールに配置した場合、配置後にコントロールのサイズを変更することは面倒です。従って、最初にコントロールをフォーム上に配置し、コントロールのサイズを編集してから、このオプションを使用して[テーブル]コントロール」にリンクした方が簡単になります。
    このオプションは、[テーブルへのリンク調整]がオンの状態でコントロールをリンクした場合と同じ動作になります。

  • 親子リンク作成 …… コントロール間の親子リンクを定義します。

  • 親子リンクを解除 …… コントロール間の親子リンクを解除します。

  • 親の表示 …… 現在のコントロールがどのコントロールにリンクされているかを表示します。

コントロールの追加

任意のコントロールをフォームに配置することができます。

コントロールツリー

フォーム上に配置されたコントロールの階層構造を表示します。

描画の終了 (F8)

フォームの編集処理を終了し、[タスク]エディタに戻ります。


[フォーム]エディタ フォームの操作 キーボード

キーボードによる操作

[フォーム]エディタ > フォームの操作

フォームに関連するキーボードショートカットには、次のものがあります。

キー | 追加キー | 状態 | 動作
F5 |  | コントロールが選択されている | コントロール特性
F5 |  | コントロールが選択されていない | フォーム特性
Space |  |  | 選択状態の解除
Delete |  |  | 選択されたコントロールの削除
Enter |  | [スタティック]コントロールが選択されている | テキスト入力の開始
Enter |  | チョイスコントロールが選択されている | 選択肢の変更
矢印キー |  | コントロールが選択されている | 選択されたコントロールの移動
矢印キー | Shift | コントロールが選択されている | 選択されたコントロールのサイズ変更
矢印キー |  | コントロールが選択されていない | フォームの移動
矢印キー | Shift | コントロールが選択されていない | フォームのサイズ 変更
Alt |  | [項目]パレットから項目をカラムにドラッグ | 選択したテーブルのカラムにコントロールを配置
Tab |  |  | 次のコントロールを選択
Tab | Shift |  | 前のコントロールを選択
Home |  |  | 最初のコントロールを選択
End |  |  | 最後のコントロールを選択
Ctrl |  | テーブルのカラム幅の調整 | プッシュモード
Ctrl | Shift | [項目]パレットから項目をカラムにドラッグする | プッシュモード（既存のテーブルのカラムの前にカラムを追加）
Ctrl |  | 既存のテーブルカラムの後にカラムを追加する | 挿入モード
Ctrl | Shift | テーブルにコントロールを配置 | タイトルなし
Shift | 矢印キー | フォームの高さの調整 | プッシュモード
Shift |  | [項目]パレットからコントロールをドロップする | タイトルなし
Esc |  | コントロールが選択されている | 終了
Esc |  | Zオーダの表示 | キャンセル
Ctrl | ↓ |  | マルチマークテーブルの次の行に移動
Ctrl | ↑ |  | マルチマークテーブルの前の行に移動
Ctrl | PageDown |  | マルチマークテーブルの次のページに移動
Ctrl | PageUp |  | マルチマークテーブルの前のページに移動
Ctrl | Space |  | テーブル行のマークまたはマーク解除
Shift | PageDown |  | 次のページにマーク
Shift | PageUp |  | 前のページにマーク
Shift | ↓ |  | 次の行に移動し、その行にマーク
Shift | ↑ |  | 前の行に移動し、その行にマーク
Esc |  |  | 終了


[フォーム]エディタ フォームの操作 マウス

マウスによる操作

[フォーム]エディタ > フォームの操作

[フォーム]エディタでは、マウスを使用した操作により、フォームを作成できます。マウスのクリックやドラッグで、コントロールを選択したり、グループ化することができます。1つまたは複数のコントロールを選択してマウスの右ボタンをクリックすると、コンテキストメニューが表示され、そこからコマンドを実行することもできます。

操作 | 追加キー | 動作
フォーム上でドラッグ |  | 境界線で囲んでコントロールを選択（子コントロールも選択される）
フォーム上でドラッグ | Ctrl | 境界線で囲んでコントロールを選択（子コントロールは選択されない）
コントロール上でクリック |  | コントロールの選択（子コントロールも選択される）
コントロール上でクリック | Ctrl | コントロールを選択しているグループに追加、または選択しているグループから削除（子コントロールは選択されない）
選択されたコントロールのドラッグ |  | 選択されたコントロールの移動
チョイスコントロール上でクリック | Shift | レイヤの変更
フォームのクリック |  | コントロールの選択解除
フォームのクリック | Shift | フォームの移動（クラス0のフォームのみ）
[コントロール]パレットをダブルクリック |  | フォームの左上にコントロールを挿入
コントロールをダブルクリック |  | [コントロール]特性
フォームをダブルクリック |  | [フォーム]特性
右クリック |  | [コンテキスト]メニューの表示
テーブルのカラムのクリック | Alt | カラムの選択
テーブルのカラムの境界線をドラッグ | Ctrl | テーブルのカラム幅の調整
項目をテーブルにドラッグ | Shift | 既存のテーブルのカラムの前にカラムを追加
項目をテーブルにドラッグ |  | 既存のテーブルのカラムの後ろにカラムを追加
項目をテーブルのカラムにドラッグ | Alt | 選択したテーブルのカラム（既存の項目の下）にコントロールを配置
項目をテーブルにドラッグ | Ctrl+Shift | テーブルにコントロールを（タイトルを入力しないで）配置


[式]エディタ

[式]エディタは、モーダルウィンドウです。ここではテーブル形式で式が表示され、内容を編集することができます。右クリックすることで、様々な[選択一覧]にアクセスすることができる[コンテキスト]メニューが表示されます。[式]エディタのウィンドウの上部に表示されているアイコンをクリックすることで各オブジェクトの一覧にアクセスすることもできます。項目一覧は、ウィンドウの右側に表示されており、F5を押下することで項目一覧に移動することができます。

式には、値を計算するための定数または公式を定義します。式は、アクションの実行を指示する一連の演算子と演算の実行対象であるオペランドから成り立っています。オペランドには、データ項目、関数、定数（リテラルと呼ぶ）、またはその他の下位の式が使用できます。

[式]エディタの各エントリは、評価されると、使用するデータ項目と関数の型に応じて、数値、文字列、BLOB、または論理値（「True」または「False」）になります。使用する型の組み合わせが不適切だと、エラーメッセージが表示されます。

関数はネストして使用することができます。例えば、データ項目Aに格納されている文字列の実際の長さ（後続の空白文字を除く）を求めるには、Len(LTrim(RTrim(A)))、あるいは Len(Trim(A))とします。
IF、AND、NOT、ORを含む論理式をネストすることにより、さらに複雑な式を作ることもできます。
不要な括弧は自動的に除去されます。

ここには、代数学や文字列、論理式の規則に従うどのような演算式も指定することができます。

関数は通常、1つまたは複数のパラメータ（カンマで区切る）を持ちます。パラメータは括弧で囲みます。関数にパラメータがなくても、括弧は必要です。例えば、今日の日付を返すDate関数を使用する場合には、Date()とします。

関数は全て値を返します。

構文チェック

編集中の式の構文をチェックするには、Tabキーを押下します。

拡張ウィンドウの状態で構文をチェックする場合は、Ctrl+Enterを押下するか、[編集]メニューかコンテキストメニューから[式の確認]を選択します。

ワードラップ

[式]エディタが複数行モードになっている場合に、[表示]メニュー/コンテキストメニューの[ワードラップ]をチェックすると（チェックマークが表示されます）、テーブル行に表示できない内容が折り返して表示されるようになります。[ワードラップ]のチェックを解除すると表示は折り返さなくなります。

複数行モード

式の入力行を拡張表示することで、複数行入力ができるようになります。

拡張表示されたテキストは全部または一部をコピーすることが可能です。またこの表示モードの場合、スペースやＴａｂを入力することができるため、複雑な式に改行やインデントを指定して見やすくすることができます。

以下の操作で複数行モードに移行できます。

  • F6の押下する

  • 表示されている入力行の範囲を超えて文字を入力する

  • 通常のモードでは表示できないほど大きい式を貼り付ける

拡張表示

拡張表示ウィンドウに表示されている式の内容をコピーすることができます。

参照

クイック式エディタ

実行時の式エディタ

リテラル

関数ディレクトリ

式とUnicode


選択一覧

式エディタの選択一覧

式エディタ >

以下の表に示されているショートカットキーを使用することで、[式]エディタからMagicオブジェクトにアクセスすることができます。

式一覧 | ショートカットキー | アイコン
関数 | Ctrl+1 |
イベント | Ctrl+2 |
ショートカット | Ctrl+3 |
権利 | Ctrl+4 |
コントロール | Ctrl+5 |
データソース | Ctrl+6 |
プログラム | Ctrl+7 |
エラー | Ctrl+8 |
メニュー | Ctrl+9 |
フォーム | Ctrl+0 |
論理名 | Ctrl+-(マイナス) |

これらの選択一覧は、Magicのプルダウンメニューやコンテキストメニューからもアクセスすることができます。

参照

選択一覧


選択一覧 選択一覧

選択一覧

式エディタ > 選択一覧

カラム名から文字を入力することでインクリメンタルサーチによる位置付けができます。

選択一覧内のインクリメンタルサーチは、検索している内容によってソートされない点を除いて、実行時のテーブル表示の検索処理と同じように動作します。


選択一覧 項目一覧

項目一覧

式エディタ > 選択一覧

[項目一覧]は、[式]エディタで使用する項目を選択して指定することができます。式には、データ項目を含めることができます。

[項目一覧]には、現在のタスクとその上位のタスクで定義された実項目、変数項目およびパラメータ項目が表示されます。プログラムの階層上の定義順に「シンボル名」と呼ばれる、アルファベットのコードが表示されています。例えば以下のように表示されます。

  • A …… 最初に定義された項目

  • B …… ２番目に定義された項目

  • BA …… 27番目に定義された項目

[全て表示]ボタンをクリックすると、[ロジック]ユニット定義された項目と[データビュー]エディタ内に定義された項目が全て表示されます。[適用表示]ボタンをクリックすると、利用可能な項目のみ表示されます。利用可能な項目は、[データビュー]エディタか、現在のロジックユニットに定義された項目です。

Enterを押下するか[選択]ボタンをクリックすることで、項目が選択され、選択された項目が式の中に追加されます。

Escを押下するか、[キャンセル]ボタンをクリックすると、項目は選択されずフォーカスが式に戻ります。

親タスクで定義された項目は、現在のタスクでは一覧の最後に表示されています。

式が評価された場合、Magicは項目を実際の値に置き換えて処理します。従って、項目が値を表しています。項目の定義位置が変更されると、式に定義された項目のシンボル名が自動的に更新されます。

式を定義する際、値ではなく項目を使用する場合、項目のシンボル名を正しき使用するには、VARリテラルを使用する必要があります。

参照

デフォルト値

開発／実行時の動作


選択一覧 項目一覧 デフォルト値

デフォルト値

式エディタ > 選択一覧 > 項目

デフォルト値とは、プログラムに値が明示的に設定されない場合に割り当てられる値です。Magicは、デフォルト値を定義することができます。

Magicは、２種類のデフォルト値を区別して使用します。

  • 実行時に新しい項目がインスタンス化された場合（タスクが実行した場合） 、データ項目の[代入]特性が定義されていなければ、項目のデフォルト値が使用されます。

  • [データ]リポジトリ上で、SQLデータベース使用してテーブルが定義された場合、デフォルト値はデータベースで定義されます。INSERTステートメントを使用し、カラムがステートメントの一部でない場合、デフォルト値がカラムに設定されます。

デフォルト値は、NULLか実際の値のどちらかとなります。

デフォルト値定義

デフォルト値は、以下のオブジェクトで定義することができます。

  • プロジェクトレベル …… MAGIC.INIファイルの[MAGIC_DEFAULTS]セクション

  • モデルレベル …… [モデル特性]シート

  • カラムレベル …… [カラム特性]シート

  • 変数項目レベル …… [項目特性]シート

デフォルト値の初期値

デフォルト値の初期値は、データ型に依存します。

型 | 初期値
文字 | 空白
数値 | 0
日付 | 1901/1/1
時刻 | 00:00:00
BLOB | NULL
論理 | False

参照

開発／実行時の動作


選択一覧 項目一覧 開発/実行時の動作

開発／実行時の動作

式エディタ > 選択一覧 > 項目

開発時の動作

各カラムには、２つのデフォルト定義があります。

  • 初期値

  • データベースデフォルト値

モデルが新しく作成されたり、モデルのデータ型が変更された場合、その型に対応したアプリケーションレベルのデフォルト値が、モデルのデフォルト値としてコピーされます。

カラムが作成されたり、カラムのデータ型やモデルが変更された場合、その型に対応したアプリケーションレベルのデフォルト値が、カラムのデフォルト値として設定されます。

[構文チェック]ユーティリティは、デフォルト値が有効であるかどうかを、カラムのデータ型に基づいてチェックします。

実行時の動作

タスクが実行され項目が初期設定された場合、全てのカラムは[項目特性]に従って、デフォルト値を設定します。


選択一覧 フォーム

フォーム一覧

式エディタ > 式エディタの選択一覧

[式]エディタ内でCtrl+0を押下すると、[フォーム一覧]が表示されます。

[フォーム一覧]は、アクセスされるタスクによって表示内容が異なります。一覧は、プロジェクトの[フォーム]エディタの定義内容に基づいて表示されます。


選択一覧 関数

関数一覧

式エディタ > 選択一覧

[式]エディタ内でCtrl+1を押下すると、[関数一覧]が表示されます。テーブル内で、関数名の頭文字を入力することで入力データに基づいて関数名に位置付けることができます。（Magic V9Plusでは、関数名の自動位置付けは１文字しか使用できませんでした。）

[関数一覧]にアクセスする別の方法として、[式]エディタで１行作成し、右クリックしてコンテキストメニューから[関数]を選択することができます。

[式]エディタでは、関数を入力するためのショートカットが提供されています。詳細は、「関数のオートコンプリート機能」を参照してください。

参照

関数ディレクトリ


選択一覧 関数 オートコンプリート

関数のオートコンプリート機能

式エディタ > 選択一覧 > 関数

関数のオートコンプリート機能は、関数の設定時に利用できます。

この機能を使用するには、関数の頭文字をまず入力します。その後、Ctrl+スペースを押します。

例えば、「ab」を入力した場合、[関数一覧]が開き、カーソルがABS()関数にパークします。

オートコンプリート機能は、入力されたテキストに従って照合された関数に位置付けられます。

照合された関数が1つだけの場合は、関数入力は自動的に完了されます。

複数の候補がある場合、整合する関数名がリストボックスに表示されます。その中から関数名をクリックすることで、使用する関数を選択することができます。

照合処理では、大文字/小文字を区別しません。

注意：

カーソルが文字列内にある場合は、オートコンプリート機能が動作しません。


選択一覧 ショートカット

ショートカット定義

式エディタ > 選択一覧

[式]エディタ内でCtrl+3を押下すると、[関数一覧]が表示されます。

カーソルが式の編集行にパークしている場合、以下の操作をすることで[キー定義]ダイアログが表示されます。ここでは以下のキー定義が指定できます。

  • 組み合わせキー（Shift+、Alt+ 、Ctrl+ ）

  • ファンクションキー

  • Esc、Enter、Home、およびEndなどのWindowsキー

ダイアログ上でショートカットキーや組み合わせキーを押下すると、Magicは押されたキーをテキストとして式に挿入します。

ダイアログを終了するには、[キャンセル]ボタンをクリックしてください。


選択一覧 権利

権利一覧

式エディタ > 選択一覧

[式]エディタ内でCtrl+4を押下すると、[権利一覧]が表示されます。

Rights関数で使用する権利の一覧が表示されます。

選択する権利名にカーソルをパークさせ、[選択]ボタンを押下するか、ダブルクリックしてください。


選択一覧 コントロール

コントロール一覧

式エディタ > 選択一覧

[式]エディタ内でCtrl+5を押下すると、[コントロール一覧]が表示されます。

[コントロール一覧]には、フォーム上に配置されたコントロールの[コントロール名]が表示されます。

[グループ名]セクションには、クラス0のすべてのフォームが一覧表示されています。

[コントロール名]セクションには、選択されたフォームに定義されているすべてのコントロールの名前が一覧表示されます。

グループが「全てのコントロール」の場合、[コントロール名]セクションには現在のタスクのすべてのクラス0のフォーム内に定義されているすべてのコントロールの名前が表示されます。


選択一覧 プログラム

プログラム一覧

式エディタ > 選択一覧

[式]エディタ内でCtrl+7を押下すると、[プログラム一覧]が表示されます。

[プログラム一覧]には、プロジェクトの[プログラム]リポジトリに定義されているプログラムが表示されています。


選択一覧 エラー

エラー一覧

式エディタ > 選択一覧

[式]エディタ内でCtrl+8を押下すると、[エラー一覧]が表示されます。

ここには、エラーに関連した関数で使用できるエラーの一覧が表示されます。


選択一覧 メニュー

メニュー一覧

式エディタ > 選択一覧

[式]エディタ内でCtrl+9を押下すると、[メニュー一覧]が表示されます。

メニュー一覧は、どこからアクセスされるかによって、様々な目的で使用されるメニューを選択することができます。一覧の内容は、[メニュー]リポジトリに定義されている内容をもとに表示されます。


選択一覧 論理名

論理名一覧

式エディタ > 選択一覧

[式]エディタ内でCtrl+-（マイナス）を押下すると、[論理名一覧]が表示されます。

[論理名一覧]には、動作環境の[論理名]テーブルに設定されている内容が表示されています。論理名を選択すると両端に「%」が付加されます。


クイック式エディタ

式エディタ >

このエディタは、[式]エディタを開かずに簡単な式を入力することができます。

式([代入]や[条件]特性などの)を必要とする[ロジック]エディタや[データビュー]エディタの[特性]シート上にパークしている時に、等号(=)キーを押下すると式を入力するテキストボックスが表示されます。このテキストボックスに式を入力した後、Enterキーを押下することで式が確定され、[式]エディタ内に追加されます。EscやF2を押下すると式を保存しないで終了します。

Enter以外の操作用のキー（カーソルキーやTab、PageUp、PageDown、エディットボックス以外をマウスクリックする操作）の操作でも式が保存されます。

注意：

このエディタは、[ロジック]エディタや[データビュー]エディタ、[特性]シートで有効です。

式が確定された場合、[式]エディタ内の既存の式に入力された式が追加されます。

すでに式が定義されている状態で式を定義した場合、既存の式は削除されず、既存の式の最後に入力された定義が追加され、その式の番号が設定されます。

入力した式にエラーが存在する場合、[式]エディタが開き、作成された式にカーソルがパークされます。

参照

実行時の式エディタ


実行時の式エディタ

式エディタ >

アプリケーションの実行時、エンドユーザは、オプションメニューの[範囲]欄から[式]エディタにズームすることでアクセスできます。この場合、プルダウンメニューやコンテキストメニューを使用して関数や項目のみにアクセスできます。

アクセス可能な関数のグループは以下の通りです。

  • 数値

  • 文字

  • 基本

  • 日付／時刻

  • 項目(VarSet関数以外)

エンドユーザが、上記外のグループの関数を使用とした場合、以下のエラーメッセージが表示されます。

関数は、使用できません。

参照

クイック式エディタ


リテラル

式エディタ >

リテラルとは、特定の意味を持った定数のことをいいます。

数値の場合、特に識別子を使用しなくても識別されます。例えば、「123」や「15.52」はそのまま、数値リテラルとして（それ自体がリテラルとして）解釈されます。

数値以外のリテラルは、文字列として扱われます。通常、文字列は単引用符（'）で囲みます。文字列のうち、テキスト以外の文字列には全て、その後ろにリテラルコードを付加します。このリテラルコードにより、単引用符（'）で囲まれた文字列の種類を示すことができます。リテラルコード自体は単引用符で囲む必要はありません。例えば、'abcd'はテキストとして、'95/01/01'DATE は日付として扱われます。

リテラルとしての文字列は、Magic の内部表現に変換されます。式に文字列が定義されている場合、その文字列は、Magic の内部表現を使用して解析されます。実行時の式の評価には、内部表現の値（内部値）が使用されます。内部値は、その変更がないかどうか常にMagic により追跡され、変更があった時には、内部値に対応するリテラルも変更されます。

例えば、文字列「'1'DSOURCE」は、[データ]リポジトリの最初のデータ（行）を表します。このデータの前に新しいデータを挿入すると、このデータは１つ繰り下がり、2 番目のデータになります。その場合、自動的にリテラル文字列が「'2'DSOURCE」に更新されます。したがって、式でリテラルコード（この場合は「DSOURCE」）を使用して文字列を指定しておくことで、式を訂正しなくても済みます。

リテラルを使用することで、Magic のプログラムを別の言語に移植する作業も楽になります。例えば、タスクモードは「'MCDQLRUSFOE'」などと定義することで多言語に対応が可能になります。この場合、MODEリテラルを使用して「'MCDQLRUSFOE'MODE 」としておくと、文字列の中のタスクモードが自動的に変換先の言語を所定の値に変更されます。

リテラルコードを使用することで、式はより確実になり、プロジェクトを手直ししても式に影響が及ぶことが少なくなります。

以下は、Magic で使用できるリテラルコードです。

DATE

DSOURCE

ERR

EVENT

EXP

FORM

INDEX

KBD

LOG

MENU

MODE

PROG

RIGHT

TIME

VAR


リテラル DATE

DATE

式エディタ > リテラル

例：'97/01/01'DATE

文字列は日付として解釈されます。日付の場合、Magic の内部表現は数値になります。このため、日付の算術計算が可能です。例えば、「'97/01/01'DATE＋14」は有効な式で、結果は、「97/01/15」になります。

日付の西暦年は、[動作環境]ダイアログの[西暦基準年]パラメータの値によって変わってきます。例えば、「'97/01/28'DATE」の場合、[西暦基準年]パラメータに設定されている値が1892を超え、1997以下の時には、日付の西暦年は2097 年となります。一方、[西暦基準年]パラメータに設定されている値が1997 を超え、2097 以下の時には、日付の西暦年は1997年となります。なお、Magicでは、西暦年は通常、4 桁で表示されます。


リテラル DSOURCE

DSOURCE

式エディタ > リテラル

例：'1'DSOURCE

文字列が[データ]リポジトリのデータソースの番号（連番）として解釈されます。したがって、DSOURCE リテラルコードを式で使用することで、[データ]リポジトリの行に変更が加えられた時でも、式で指定したデータソースの番号が自動的に更新されるようになります。例えば、「'5'DSOURCE」は、[データ]リポジトリの5 番目のデータソースであることを示し、「5」という番号は、行の削除や追加に応じて自動的に更新されます。

注意：

V9Plus 以前の FILEリテラルと同じです。


リテラル ERR

ERR

式エディタ > リテラル

例：'デッドロック'ERR

文字列がデータベースエラーのエラーとして認識されます。対象となるエラーは、自動的にリトライする を参照してください。


リテラル EVENT

EVENT

式エディタ > リテラル

例：'終了'EVENT

文字列は、Magicの内部イベントを示す文字列として解釈されます。イベントとは、ユーザの操作の結果、Magic に送られる命令をいいます。イベントは、ユーザにより[キーボード割付]テーブルで定義されているキー操作が行われた時に発生します。Magic の内部イベントは式の中で指定することができます。これによりユーザによる操作をチェックしたり、マクロを作ったりといった作業が可能です。

イベントの名前は、[設定／キーボード割付]テーブルの[内部イベント]カラムで確認できます。イベント文字列（例では、「'終了'EVENT」）では、このカラムに定義されているものを使用しなければなりません。なお、イベントの名前は最初の数文字を入力すると、後は自動的に入ります。ただし、名前が長い時には、少し長めに入力することも必要になります。

注意：

  • V9Plus 以前の ACTリテラルと同じです。

  • EVENTリテラルはリッチクライアントでは利用できません。


リテラル EXP

EXP

式エディタ > リテラル

例：'A'EXP

文字列が[式]エディタの式の番号として認識されます。このリテラルコードは、通常、ExpCalc関数で使用します。EXPリテラルコードを使用することで、式の定義されている位置が変更された場合、EXPリテラルコードの前の文字列も自動的に更新されます。


リテラル FORM

FORM

式エディタ > リテラル

例：'2'FORM

文字列が[フォーム]エディタ上の番号として認識されます。このリテラルコードは、通常、[タスク特性]の[メインフォーム]特性を定義する際に使用します。FORMリテラルコードを使用することで、フォームの定義位置が変更された場合、FORM リテラルコードの前の文字列も自動的に更新されます。


リテラル INDEX

INDEX

式エディタ > リテラル

例：'5'INDEX

文字列は、[インデックス]テーブルに定義されているインデックスの番号（連番）として解釈されます。このINDEX リテラルを使用することで、[インデックス]テーブルの行の位置に変更があった時でも、INDEXリテラルのインデックスが自動的に行使されます。例えば、「'5'INDEX」は、[インデックス]テーブルの5 番目のインデックスであることを示し、「5」という番号は、行の削除や追加に応じて自動的に更新されます。

注意：

V9Plus 以前の KEYリテラルと同じです。


リテラル KBD

KBD

式エディタ > リテラル

例：'F2'KBD

文字列は、キーボード値として解釈されます。キーボード値とは、キーボードから入力されるキー名を指し、この値は、[キーボード割付]テーブルの設定にしたがってイベントに変換されます。同じキーに複数のイベントを設定することもでき、その場合、イベントはコンテキストによって別のものが実行されます。キーボード値は式で使用できます。これによりユーザによる入力のチェックやマクロの作成が可能です。

キーボード値の名前は、[設定／キーボード割付]テーブルの[キー]カラムで確認できます。KBD リテラルの文字列には、このパラメータで定義されているものを使わなければなりません。

注意：

KBDリテラルはリッチクライアントタスクでは利用できません。


リテラル LOG

LOG

式エディタ > リテラル

例：'TRUE'LOG

文字列は論理値（「True」 または「False」）として解釈されます。つまり、LOG リテラルコードの文字列は、「'TRUE'LOG」または「'FALSE'LOG」のいずれかとなります。「True」または「False」以外の文字の場合、自動的に「'FALSE'LOG」となります。


リテラル MENU

MENU

式エディタ > リテラル

例：'1'MENU

文字列は、メニュー名として解釈されます。'1'MENUは、[メニュー]リポジトリ内の最初のメニュー（通常は、デフォルトのプルダウンメニューになります。）を示しています。


リテラル MODE

MODE

式エディタ > リテラル

例：'MC'MODE

文字列は、タスク処理モードとして解釈されます。文字列としては、[タスク特性]の[初期モード]特性に指定できるいずれかのモードが指定できます。


リテラル PROG

PROG

式エディタ > リテラル

例：'5'PROG

文字列は、[プログラム]リポジトリに定義されているプログラムの番号（連番）として解釈されます。PROG リテラルを使用すると、[プログラム]リポジトリのプログラム行の位置が変わった時、PROG リテラルの直前の文字列が自動的に更新されます。例えば、「'5'PROG 」は、[プログラム]リポジトリで5 行目に定義されているプログラムを示しますが、この「5」という文字は、[プログラム]リポジトリのプログラム行の位置が変わった場合、自動的に更新されます。


リテラル RIGHT

RIGHT

式エディタ > リテラル

例：'RIGHT #4'RIGHT

文字列が、権利IDとして認識されます。このRIGHTリテラルコードは、通常、Rights関数で使用します。開発者は、Rights関数を使用して、ユーザに与えられている権利をチェックできます。

なお、Rights関数を使用してユーザの権利を確認する場合、開発者に権利がない時には、そのリテラルが表示されます。


リテラル TIME

TIME

式エディタ > リテラル

例：'14:30:15'TIME

文字列は、時刻として解釈されます。時刻の内部表現は数値であるため、算術演算に使用できます。

例えば、「'14:30:15'TIME+5」は式として有効で、「'14:30:15'TIME」という値に「5」が追加されます。（この場合、「5」は秒です。）


リテラル VAR

VAR

式エディタ > リテラル

例：'A'VAR

文字列が項目のシンボル名として認識されます。このリテラルコードは、通常、VarAttr, VarCurr, VarMod, VarName, VarPrev, and VarSet の各関数で使用します。VAR リテラルコードを使用することで、項目の定義位置が変更された場合、VAR リテラルコードの前の文字列も自動的に更新されます。


関数ディレクトリ

式エディタ >

関数を使用することで、条件の設定、データの変換や操作、Magic のパラメータへのアクセス、結果の取り出し、アクションの実行などの処理が可能です。

関数グループ

Magicは、以下の関数グループを提供しています。

Base64 変換関数

DLL関数

DDE関数

HTTP 関数

Java 関数

Unicode関数

XML 関数

アプリケーションサーバ関数

インタフェース関数

ウィンドウダイアログ関数

セキュリティ関数

タスク関数

データベース関数

ドラッグ&ドロップ関数

バッファ保存関数

ベクトル関数

メール関数

ライセンス関数

項目関数

数値関数

他アプリ連携関数

動作環境関数

日付／時刻関数

日本語関数

入出力関数

文字列操作関数

変換関数

演算子

関数のアルファベット順の一覧

ABS

ACOS

AddDate

AddTime

AddDateTime

ANSI2OEM

ASCIIChr

AppName

ASCIIVal

ASIN

AStr

ATAN

Blb2File

BLOB2Req

BLOBFromBase64

BLOBSize

BLOBToBase64

BOM

BOY

BrowserGetContent

BrowserScriptExecute

BrowserSetContent

BufGetAlpha

BufGetBit

BufGetBLOB

BufGetDate

BufGetLog

BufGetNum

BufGetTime

BufGetUnicode

BufGetVariant

BufGetVector

BufSetAlpha

BufSetBit

BufSetBLOB

BufSetDate

BufSetLog

BufSetNum

BufSetTime

BufSetUnicode

BufSetVariant

BufSetVector

CallDLL

CallDLLF

CallDLLS

CallJS

CallOBJ

CallProg

CallProgURL

CallURL

CaretPosGet

CASE

CDOW

CHeight

ChkDgt

Cipher

CLeft

CLeftMDI

ClickCX

ClickCY

ClickWX

ClickWY

ClientBlb2File

ClientCertificateAdd

ClientCertificateDiscard

ClientFile2Blb

ClientFileCopy

ClientFileDelete

ClientFileExist

ClientFileListGet

ClientFileRename

ClientFileSize

ClientGetUniqueMachineID

ClientOSEnvGet

ClientOSEnvSet

ClipAdd

ClipRead

ClipWrite

ClrCache

CMonth

CndRange

CodePage

COMError

COMHandleGet

COMHandleSet

COMObjCreate

COMObjRelease

COS

Counter

CRC

CTop

CTopMDI

CtrlGoto

CtrlHWND

CtxClose

CtxGetAllNames

CtxGetId

CtxGetName

CtxKill

CtxLstUse

CtxNum

CtxProg

CtxSetName

CtxSize

CtxStat

CurRow

CurrPosition

CWidth

CX

CY

DataViewToHTML

DataViewToText

DataViewToXML

DataViewVars

Date

Day

DbCache

DbCopy

DbDel

DbDiscnt

DbERR

DbExist

DbName

DbRecs

DbReload

DbRound

DbSize

DbViewRowIdx

DbViewSize

DbXmlMixedGet

DbXmlMixedSet

DDEBegin

DDEEnd

DDEGet

DDEPoke

DDERR

DDExec

DeCipher

Del

Delay

DifDateTime

DirDlg

DiscSrvr

DOW

DragSetCrsr

DragSetData

DropFormat

DropGetData

DropMouseX

DropMouseY

DStr

DVal

EditGet

EditSet

EJBCreate

EJBExplore

EncryptionError

EOF

EOM

EOP

EOY

ErrDatabaseName

ErrDbmsCode

ErrDbmsMessage

ErrMagicName

ErrPosition

ErrTableName

EvalStr

EvalStrInfo

EXP

ExpCalc

File2Blb

File2Ole

FileCopy

FileDelete

FileDlg

FileExist

FileRename

FileSize

File2Req

FileListGet

Fill

Fix

Flip

Flow

FlwMtr

FlwMtrVars

FormStateClear

GetComponentName

GetGUID

GetLang

GetParam

GroupAdd

Han

HandledCtrl

HitZOrdr

Hour

HStr

HTTPGet

HTTPLastHeader

HTTPPost

HVal

Idle

IF

IN

INIGet

INIGetLn

INIPut

Ins

InStr

InTrans

IOCurr

IsComponent

IsDefault

IsFirstRecordCycle

ISNULL

JCall

JCallStatic

JCDOW

JCreate

JException

JExceptionOccurred

JExceptionText

JExplore

JGengo

JGet

JGetStatic

JInstanceOf

JMonth

JNDOW

JSet

JSetStatic

JYear

KbGet

KbPut

LastClicked

LastPark

LDAPError

LDAPGet

Left

Len

Level

LIKE

Line

LMChkIn

LMChkOut

LMUVStr

LMVStr

Lock

LOG

Logging

Logical

Logon

LoopCounter

Lower

LTrim

MailBoxSet

MailConnect

MailDisconnect

MailError

MailFileSave

MailLastRC

MailMsgBCC

MailMsgCC

MailMsgDate

MailMsgDel

MailMsgFile

MailMsgFiles

MailMsgFrom

MailMsgHeader

MailMsgId

MailMsgReplyTo

MailMsgSubj

MailMsgText

MailMsgTo

MailSend

MainDisplay

MainLevel

MarkText

MarkedTextGet

MarkedTextSet

MAX

MDate

Menu

MenuIdx

MID

MIDV

MIN

Minute

MlsTrans

MMClear

MMCount

MMCurr

MMStop

MnuAdd

MnuCheck

MnuEnabl

MnuName

MnuRemove

MnuReset

MnuShow

Month

MStr

MTblGet

MTblSet

mTime

mTStr

mTVal

MVal

NDOW

NMonth

NULL

OEM2ANSI

OSEnvGet

OSEnvSet

Owner

Page

ParamsPack

ParamsUnPack

PPD

Prog

ProgIdx

ProjectDir

RAND

Range

Rep

RepV

RepStr

Right

RightAdd

Rights

Rollback

Round

RqCtxInf

RqCtxTrm

RqExe

RqHTTPHeader

RqLoad

RqQueDel

RqQueLst

RqQuePri

RqReqInf

RqReqLst

RqRtApp

RqRtApps

RqRtCtx

RqRtCtxs

RqRtInf

RqRts

RqRtTrm

RqRtTrmEx

RqStat

RqTrmTimeout

RTrim

RunMode

Second

SetBufCnvParam

SetContextFocus

SetCrsr

SetLang

SetParam

SetWindowFocus

SharedValGet

SharedValPack

SharedValSet

SharedValUnpack

SIN

SNMPNotify

SoundX

SplitterOffset

StatusBarSetText

Stat

Str

StrBuild

StrToken

StrTokenCnt

StrTokenIdx

SubformExecMode

TAN

TDepth

Term

Text

THIS

Time

Translate

TranslateNR

TransMode

TreeLevel

TreeNodeGoto

TreeValue

Trim

TStr

TVal

UDF

UDFF

UDFS

UnicodeVal

UnicodeChr

UnicodeFromANSI

UnicodeToANSI

UnLock

Upper

User

UserAdd

UserDel

UTF8FromAnsi

UTF8ToAnsi

Val

VarAttr

VarCurr

VarCurrN

VarDbName

VariantAttr

VariantCreate

VariantGet

VariantGetVector

VariantType

VarIndex

VarInp

VarMod

VarName

VarPic

VarPrev

VarSet

VecCellAttr

VecGet

VecSet

VecSize

ViewMod

Visual

WinBox

WinHelp

WinHWND

WinMaximize

WinMinimize

WinRestore

WSConsumerAttachmentAdd

WSConsumerAttachmentGet

WSProviderAttachmentAdd

WSProviderAttachmentGet

WsSetIdentity

XMLBLOBGet

XMLCnt

XMLDelete

XMLExist

XMLFind

XMLGet

XMLGetAlias

XMLGetEncoding

XMLInsert

XMLModify

XMLSetEncoding

XMLSetNS

XMLStr

XMLVal

XMLValidate

XMLValidationError

Year

Zen

ZenS

ZIMERead

ZKana


関数ディレクトリ BAse64変換関数

Base64変換関数

式エディタ > 関数ディレクトリ

BLOBFromBase64 …… BASE64でエンコードされたBLOBデータをデコードします。

BLOBToBase64 …… BLOBデータをBASE64でエンコードします。


関数ディレクトリ BlobFromBase64

BlobFromBase64

式エディタ > 関数ディレクトリ

BLOBデータのデコード BASE64でエンコードされたBLOBデータをデコードします。
構文： | BlobFromBase64(BLOB データ)
パラメータ： | BLOB データ… BASE64でエンコードされたデータ
戻り値： | BLOB データ…デコードされたデータ


関数ディレクトリ BlobToBase64

BlobToBase64

式エディタ > 関数ディレクトリ

BLOBデータのエンコード BLOBデータ内の文字列を BASE64 でエンコードします。
構文： | BlobToBase64(BLOBデータ)
パラメータ： | BLOBデータ … エンコードするBLOBデータ
戻り値： | BASE64 でエンコードされたBLOB データを返します。


関数ディレクトリ DLL関数

DLL関数

式エディタ > 関数ディレクトリ

CallDLL …… Magic からCDECL呼び出し規約でDLLを呼び出します。

CallDLLF …… Magic からFASTCALL呼び出し規約でDLLを呼び出します。

CallDLLS …… Magic からSTDCALL呼び出し規約でDLLを呼び出します。


関数ディレクトリ CallDLL

CallDLL

式エディタ > 関数ディレクトリ

外部DLL のCDECL規約関数の呼び出し MagicからCDECL呼び出し規約でDLLを呼び出します。
構文： | CallDLL(モジュール名.関数名,引数型文字列,パラメータ１ ,パラメータ２ ,.)
パラメータ： | モジュール名.関数名…DLL のモジュール名と使用する関数名 引数型文字列…一つ一つの文字が引数の型を意味する文字列 最後の一文字が関数の戻り値の型を意味します。 パラメータ…DLL への引数
戻り値： | DLL 内の指定した関数が返す値
例： | CallDLL('mydll.lmath','1L44',A,B,C)
 | 対応するC関数は、long lmath(char action, long *a, long b)となり、DLL内の関数であるlmath からの戻り値が返ります。
 | CallDLL('mydll.add_str','AAA',A,B)
 | 対応するC関数はchar *add_str(char *a, char *b)となり、DLL内の関数のadd_str からの戻り値が返ります。
注意事項： | パラメータで結果を受け取る関数を実行しても、結果を受けることはできません。


関数ディレクトリ CallDLLF

CallDLLF

式エディタ > 関数ディレクトリ

外部DLLのFASTCALL規約関数の呼び出し

MagicからFASTCALL呼び出し規約でDLLを呼び出します。

構文：

CallDLLF(モジュール名.関数名,引数型文字列,パラメータ１ ,パラメータ２ ,..)

パラメータ：

モジュール名.関数名…DLL のモジュール名と使用する関数名

引数型文字列…一つ一つの文字が引数の型を意味する文字列
最後の一文字が関数の戻り値の型を意味します。

パラメータ…DLL への引数

戻り値：

DLL 内の指定した関数が返す値

例：

CallDLLF('mydll.lmath','1L44',A,B,C)

対応するC関数は、long lmath(char action, long *a, long b)となり、DLL内の関数であるlmath からの戻り値が返ります。

CallDLLF('mydll.add_str','AAA',A,B)

対応するC関数はchar *add_str(char *a, char *b)となり、DLL内の関数のadd_str からの戻り値が返ります。

注意事項：

  • FASTCALL は、DLL をコンパイルする際の呼び出し規約で、fastcall と指定されているものです。

  • パラメータで結果を受け取る関数を実行しても、結果を受けることはできません。


関数ディレクトリ CallDLLS

CallDLLS

式エディタ > 関数ディレクトリ

外部DLLのSTDCALL規約関数の呼び出し

MagicからSTDCALL呼び出し規約でDLLを呼び出します。

構文：

CallDLLS(モジュール名.関数名,引数型文字列,パラメータ１,パラメータ２ ,.)

パラメータ：

モジュール名.関数名…DLL のモジュール名と使用する関数名

引数型文字列…一つ一つの文字が引数の型を意味する文字列
最後の一文字が関数の戻り値の型を意味します。

パラメータ…DLL への引数

戻り値：

DLL 内の指定した関数が返す値

例：

CallDLLS('mydll.lmath','1L44',A,B,C)

対応するC関数は、long lmath(char action, long *a, long b)となり、DLL内の関数であるlmath からの戻り値が返ります。

CallDLLS('mydll.add_str','AAA',A,B)

対応するC関数はchar *add_str（char *a, char *b)となり、DLL内の関数のadd_str からの戻り値が返ります。

注意事項：

  • TDCALL とは、DLL をコンパイルする際の呼び出し規約で、stdcall と指定されているものです。

  • Windows のAPI を起動する場合、通常はこの関数を使用します。

  • パラメータで関数の結果を受け取る関数を実行しても、結果を受けることはできません。


関数ディレクトリ DDE関数

DDE関数

式エディタ > 関数ディレクトリ

DDE は、Magic の関数を使用して実行します。つまり、関数を使用してDDE 通信を開始し、その後、通信を終了し、Magic に戻るという操作が必要です。Magic でのDDE は「コールドリンク」です、必ず、Magic からDDE 通信を開始しなければなりません。また、DDE に関連するデータに対して、別のアプリケーションで変更が加えられても、その変更は自動的にはMagic には伝えられません。また、そのデータがDDE を介してMagic に取り込まれた時にも、その変更は認識されません。

DDE サーバアプリケーションとMagic との間で通信が実行される場合、そのDDE サーバアプリケーションがオンラインで稼働している必要があります。DDE サーバがオンラインで動作していない状態でMagicからDDE サーバに対してアクセスが試みられた時には、サーバはロードされず、そのためDDE 処理は実行されません。

クライアントアプリケーションからアクセスが実行された場合、DDE サーバ上では、フォーカスが発生することはありません。Magic のDDE 関数によりサーバアプリケーション上でエラーが引き起こされた時には、エラーダイアログが出力されますが、上記の理由から、このダイアログにはフォーカスは提供されません。したがって、Magic のDDE 処理はタイムアウトになり処理は失敗します。

DDE関数は同期モードで実行されます。これは、Magicが DDE関数の終了を待ってから次の処理に移ることを意味します。

注意：

DDE関数は、Windowsでのみ利用できます。異なるOSでこの関数を使用した場合、以下のように動作します。

  • DDEGet関数 …… 空白を返します。

  • DDEPoke／DDExec関数 …… 常に「False」を返します。

  • DDERR関数 …… 常に「15」が返ります。

参照

DDEBegin

DDEEnd

DDEGet

DDEPoke

DDERR

DDExec


関数ディレクトリ DDEBegin

DDEBegin

式エディタ > 関数ディレクトリ

DDE の開始

DDE サーバとのセッションの確立を明示的に開始します。

構文：

DDEBegin (サービス,トピック)

パラメータ：

サービス …DDE サービスの主な識別子です。通常は、WinWord （Microsoft Word）、Excel （Microsoft Excel）など、アプリケーションの名前を指定します。

トピック …文字列で、DDE サービスによって異なります。

戻り値：

論理値

  • True …DDE サーバがすでに接続されている場合、または、接続が完了した場合

  • False …DDE の初期化や接続に失敗した場合

例：

DDEBegin('Excel','c:\docs\budget.xls')では、Excel に関連するDDE セッションが開始されます。このDDE セッションはユーザによるもので、DDE プロセスとは無関係です。このセッションは、ユーザによりDDEEnd 関数が実行されるまで続きます。

補足事項:

DDEBegin/DDEEnd 関数を使用しなくても、DDExec など他のDDE 関数は使用可能です。

同一アプリケーションがDDE サーバとして複数起動されている場合、DDE 関数を発行するとどのサーバに対してセッションを確立するのかが確定できません。これを解決する手段として本関数を使用します。DDEBegin 関数が発行された時点で、同一アプリケーションが複数起動されている場合、もっとも最近起動されたものに対してセッションを確立します。この後、DDE 関数を発行した場合は必ずこのアプリケーションに対して通信を行うようになります。

このセッションは以下の時点まで有効です。

  • DDEEnd 関数が発行された時点

  • Magicを終わらせた時点

  • 対象となるDDEサーバが終了した時点

関連項目：

DDEEnd, DDEGet, DDEPoke, DDERR,DDExec


関数ディレクトリ DDEEnd

DDEEnd

式エディタ > 関数ディレクトリ

DDE の終了 DDE サーバとのセッションを明示的に終了させます。
構文： | DDEEnd (サービス,トピック)
パラメータ： | サービス …DDE サービスの主な識別子です。通常は、WinWord （Microsoft Word）、Excel （Microsoft Excel）など、アプリケーションの名前を指定します。 トピック …文字列で、DDE サービスによって異なります。
戻り値： | 論理値… 処理に成功した場合「True」が返ります。 サービスやトピックがDDEBegin 関数で開始されていない場合に、「False」が返ります。
例： | DDEEnd('Excel','c:\docs\budget.xls')
関連項目： | DDEBegin, DDEGet, DDEPoke, DDERR,DDExec


関数ディレクトリ DDEGet

DDEGet

式エディタ > 関数ディレクトリ

DDEサーバから文字列を取得

指定したDDEサービスから文字列を取得します。取り出す文字列のサイズも指定できます。文字列の取り出し元は、[サービス]、[トピック]、[項目]の3 つのパラメータを使用して指定します。この3 つのパラメータで、取り出す文字列の場所を特定できます。

構文：

DDEGet(サービス,トピック,項目,文字列長)

パラメータ：

サービス …DDE サービスの主な識別子です。通常は、WinWord （Microsoft Word）、Excel （Microsoft Excel）など、アプリケーションの名前を指定します。

トピック …データの取り出し元となる場所で、[サービス]パラメータで指定したサーバアプリケーションの中の領域です。WinWord やExcelの場合、トピックとしてはファイル名を指定できます。

DDE サーバアプリケーションとして、標準で、System トピックが用意されており、このSystem トピックにより、アプリケーションやトピックに関する情報が提供されます。この情報により、アプリケーションやトピックに対してDDE アクセスが可能になります。

また、システムトピックの中には各種項目（[項目]パラメータで指定）があり、この項目を介して要求を実行できます。例えば、Microsoft ExcelのSystem トピックには、アプリケーションがサポートするSystem トピックのリストを返す「System」があります。これを利用して
DDEGet('Excel','System','SysItems',2000)というDDEGet 関数を発行すると、Microsoft ExcelのSystem トピックで使用できる項目名を取得できます。System トピックによって返される情報のフォーマットはサーバアプリケーションによって異なります。

項目 …このパラメータを使用して、サーバアプリケーションの中のデータ取り出し元をさらに厳密に指定します。つまり、サービス、トピック、項目の3 つのパラメータにより、取り出すデータを特定できます。

例えば、Microsoft Word のファイル中の特定の段落を取り出したい場合、サーバアプリケーションとしてWinWord 、トピックとして、その段落が置かれているファイル名、項目として、その段落を指すブックマークを指定します。

文字列長 …このパラメータには、取り出すデータの最大サイズを指定します。取り出されたデータが、このサイズより小さい時には、残りの部分は空白（スペース）で埋められます。

戻り値：

文字列… [文字列長]パラメータで指定したサイズの文字列が返ります。処理に失敗した時には、空白の文字列が返ります。返る文字列は、[サービス]、[トピック]、[項目]の3 つのパラメータで指定されたデータです。

例：

DDEGet('WinWord', 'c:\docs\ddetest.doc', 'toMagic',2000)

Microsoft Wordのドキュメンからブックマークが設定された特定の項目を読み込みます。'c:\docs\ddetest.doc'はドキュメントファイル名、'toMagic'はブックマーク名、そして、2000 は、関数によって返されるパラグラフの最大長（バイト単位）です。

DDEGet('Excel','c:\docs\budget.xls','R19C1:R22C7', 2000)

Microsoft Excelのスプレッドシートから、一定の範囲のセルを読み込みます。'c:\docs\budget.xls'はスプレッドシートのファイル名、'R19C1:R22C7'はセルの範囲、2000 は関数によって返されるデータの最大長（バイト単位）です。

この例では、各セル内のデータの間にタブコード（X'09'）が入ります。例に示したように、Magic には、項目を文字列と識別させるための単引用符（'）が必要です。取り出されるデータは、最大で2000 バイトです。

関連項目：

DDEBegin, DDEEnd, DDEPoke, DDERR,DDExec


関数ディレクトリ DDEPoke

DDEPoke

式エディタ > 関数ディレクトリ

DDE サーバに対する文字列の転送 Magic からDDE サーバアプリケーションに対して文字列を転送します。文字列の送り先は、[サービス]、[トピック]、[項目]の3 つのパラメータを使用して指定します。この3 つのパラメータにより転送先が特定され、ここに文字列が送られることになります。
構文： | DDEPoke(サービス,トピック,項目,転送データ)
パラメータ： | サービス …DDE サービスの主な識別子です。通常は、WinWord （Microsoft Word）、Excel （Microsoft Excel）など、アプリケーションの名前を指定します。
 | トピック …データの送り先となる場所で、[サービス]パラメータで指定したサーバアプリケーションの中の領域です。WinWordやExcelの場合、トピックとしてはファイル名を指定できます。
 | 項目 …このパラメータを使用して、サーバアプリケーションの中のデータの送り先をさらに厳密に指定します。つまり、サービス、トピック、項目の3 つのパラメータにより、データの送り先を特定できます。例えば、Microsoft Word のファイル中の特定の段落にデータを送りたい場合、サーバアプリケーションとしてWinWord 、トピックとして、その段落が置かれているファイル名、項目として、その段落を指すブックマークを指定します。
 | データ …文字列で、この文字列がサーバアプリケーションに送られます。
戻り値： | 論理値 … 処理に成功した場合「True」が返ります。
例： | DDEPoke('WinWord', 'c:\docs\ddetest.doc', 'fromMagic', 'This paragraph was planted by eDeveloper using DDE')
 | Microsoft Wordのドキュメントの特定のブックマークに項目を書き込みます。'c:\docs\ddetest.doc'はドキュメントファイル名、'fromMagic'はブックマーク名、'This paragraph was planted by Magic using DDE'は関数によってサーバアプリケーションに転送されるデータです。
 | DDEPoke ('Excel', 'c:\docs\budget.xls', 'R1C1', '100')
 | Microsoft Excelスプレッドシートのセルに数値（100）を書き込みます。'c:\docs\budget.xls'はスプレッドシートのファイル名、'R1C1'は関数によって渡される情報を受け取る、スプレッドシートのセル番号です。例に示したように、項目を文字列と判断させるための単引用符（'）が必要です。
注意事項： | サーバアプリケーションによっては、あらかじめデータを所定の形式にしておかなければならないこともあります。データの形式については、サーバアプリケーションのマニュアルを参照してください。
関連項目： | DDEBegin, DDEEnd, DDEGet, DDERR, DDExec


関数ディレクトリ DDERR

DDERR

式エディタ > 関数ディレクトリ

DDE エラーの検出

DDERR 関数を使用して、Magic のDDE 処理の際に発生したエラーを取得できます。また、この関数をもう一度呼び出すと、直前のDDERR 関数で取り出されたエラーコードが消去されるとともに、戻り値がリセットされます。この関数は、デバッグに有効です。

構文：

DDERR ( )

パラメータ：

なし

戻り値：

数値…0 ～15の数値で、それぞれ次の意味です。

  • 0 …直前のDDE処理でエラーが発生しなかったことを示します。また、DDERR関数の呼び出し後、もう一度、DDERR関数を呼び出した時には、戻り値がリセットされたことを表します。

  • 1 …DDEMLシステムの初期化に失敗した時、この値が返ります。

  • 2 …サーバへの接続に失敗した時、この値が返ります（原因としては、先行のDDE 呼び出しで[サービス]パラメータの設定が不適当だったか、指定していなかったことが考えられます）。

  • 3 …DDE呼び出しの際、サーバが使用中で処理不可能だった時、この値が返ります。

  • 4 …サーバにより必要なDDEサービスが実行されなかった時、この値が返ります（パラメータの設定が不適当、パラメータの組み合わせが無効、必要なサービスが無効などが理由として考えられます）。

  • 5 …直前のDDEGet関数が処理に失敗した時（サーバ上で[項目]パラメータに指定されている項目が使用できなかった時）、この値が返ります。

  • 6 …DDEGetまたはDDEPokeで、[項目]パラメータが指定されていなかった場合、この値が返ります。

  • 7 …DDEEXECで、[コマンド]パラメータが指定されていなかった場合、この値が返ります。

  • 14 …特定不能のエラー

  • 15 …Windows 以外のOSでDDE処理が実行された場合、この値が返ります。

関連項目：

DDEBegin, DDEEnd, DDEGet, DDEPoke, DDExec


関数ディレクトリ DDExec

DDExec

式エディタ > 関数ディレクトリ

DDEサーバに対するコマンド文字列の転送

Magic から、この関数のパラメータで指定されたDDE サーバへ、コマンド文字列を転送します。３つの識別子「サービス」、「トピック」、「項目」を組み合わせて、各DDEサーバアプリケーションにアクセスできます。この３つの識別子によってアクセス対象を特定できます。

Magic によって転送されたコマンド文字列はサーバアプリケーションに転送され、サーバアプリケーションがそのコマンドを実行します。コマンド文字列は、DDE フォーマットについての厳しい規則に従う必要があります。コマンドの内容は、サーバアプリケーションのコマンドに対して有効でなければなりません。コマンドの文字列がサーバアプリケーションに無効な場合には、コマンドは失敗します。

構文：

DDExec (サービス,トピック,項目,コマンド)

パラメータ：

サービス …DDE サーバがサポートするサービス名です。通常、このパラメータには、WinWord （MS Word for Windows ）やExcel （Microsoft Excel）などのアプリケーション名を指定します。

トピック …System トピックによって表されるサーバアプリケーションが、サーバアプリケーション内にあるデータオブジェクトではなくデータ交換に対して責任がある場合には、「トピック」には通常、'System'を指定します。

項目 …データ項目をさらに詳しく定義します。DDExec 関数の場合は、通常はNULL値を指定します。

コマンド …サーバアプリケーションに渡されるコマンド文字列を指定します（サーバアプリケーションはこのコマンドを実行します）。DDE コマンドは角括弧（[]）で囲みます。

１ 個のコマンド文字列には、それぞれを角括弧で囲んだ、または空白で区切った複数のコマンドが含まれます。以下に、例を示します。

[コマンド１]
[コマンド２ （パラメータ１ ）]
[コマンド３ （パラメータ１ ,パラメータ２ ,パラメータ３ ）]
[コマンド１][コマンド３ （パラメータ１ ,パラメータ２ ,パラメータ３ ）]

コマンド文字列は、有効なサーバアプリケーションのコマンドでなければなりません。コマンドの構文についての詳細は、サーバアプリケーションのマニュアルを参照してください。

戻り値：

論理値… 処理に成功した場合「True」が返ります。

例：

DDExec('WinWord','System','','[FileOpen"c:\docs\ddetest.doc"]')

Microsoft Wordのドキュメントファイルをオープンします。'[FileOpen"c:\docs\ddetest.doc"]'は関数によってサーバアプリケーションに転送されるコマンドです。

DDExec('Excel','System','',[run("MACROS.XLM!FormatCells")]')

Microsoft Excelマクロ（FormatCells ）を実行します。

DDExec('Excel','System','',[Open("c:\docs\test.xls")]')

Microsoft Excelのスプレッドシートをオープンします。例に示したように、Magicには、項目を文字列と識別させるための単引用符（'）が必要です。コマンドのパラメータには、二重引用符（"）が必要です。

関連項目：

DDEBegin, DDEEnd, DDERR, DDEGet, DDEPoke


関数ディレクトリ HTTP関数

HTTP関数

式エディタ > 関数ディレクトリ

ClientCertificateAdd ……動作環境の[SSLクライアント証明書ファイル]に設定されたクライアント証明書以外の証明書を指定します。

HTTPGet …… HTTPリクエストの結果として返されるHTMLをBLOBとして返します。

HTTPLastHeader …… HTTPGet/HTTPPost関数で取得した 直近のHTTPリクエストのヘッダ情報を取得します。

HTTPPost …… HTTP メッセージ経由で情報を渡したり、HTTP リクエストの戻り値としてのHTML/XML 結果を形式で返します。

RqHTTPHeader …… バッチプログラムがHTTPリクエスタを送信する際の HTTPヘッダ情報を設定します。


関数ディレクトリ ClientCertificateAdd

ClientCertificateAdd

式エディタ > 関数ディレクトリ

証明書の定義

動作環境の[SSLクライアント証明書ファイル]に設定されたクライアント証明書以外の証明書を指定します。
起動WebサービスやHTTP Post/Get関数を呼び出す前に実行します。

構文：

ClientCertificateAdd (PKCS12証明書,パスワード [,SSLCACertificates])

パラメータ：

PKCS12証明書… 証明書のURL（またはパスを含んだファイル名）。PKCS12(Public Key Cryptography Standard #12 )の書式で作成された証明書ファイルを指定してください。

パスワード… 証明書ファイルのエクスポート用パスワード。パスワードなしで出力されている場合は、NULLになります。

SSLCACertificates … 中間的な認証局。例えば、Microsoftの証明書サービス (CertSrv)。[コールWebサービス]処理コマンドやHTTPPost/Get関数を行う対象サーバ用に、クライアントは、中間的な認証局のSSLCACertificates を渡すことができます。認証局は、セミコロン「;」を区切り文字にして複数指定することができます。このパラメータはオプションです。

戻り値：

論理値… 処理に成功した場合「True」が返ります。

以下の場合は失敗します。

  • 同じ認証局が複数指定された場合

  • 証明書が存在しない場合

  • 証明書がPKCS12フォーマットでない場合

  • パスワードが正しくない場合

例：

ClientCertificateAdd('my.pfx','%MY_PASS%','%ROOT_CERTS%')

パラメータは以下の通りです。

My.pfx… PKCS12 証明書

%MY_PASS%… パスワードの論理名

%ROOT_CERTS%… 中間的な認証局を表す論理名

注意事項：

  • 動作環境の「SSL CA証明書ファイル」で指定されたCAを基に認証されます。ここに指定されていないCA用の証明書が指定された場合はエラーになります。

  • 証明書が、ClientCertificateDiscard関数を使用して現在のコンテキストから削除されるまで、全てのクライアント証明書は、現在のコンテキスト上では以降の呼び出し処理でも有効になります。

  • 複数のクライアント証明書を追加する場合は、その都度ClientCertificateAdd関数を実行してください。ただし、同じクライアント証明書を追加することはできません。

  • 秘密キーを出力しないで作成された証明書では認証できません。

関連項目：

HTTPGet, HTTPPost, 起動Webサービス,SSL CA証明書ファイル,SSL クライアント証明書ファイル,SSLクライアント証明書パスワード


関数ディレクトリ ClientCertificateDiscard

ClientCertificateDiscard

式エディタ > 関数ディレクトリ

証明書の破棄 証明書のリストからクライアント証明書を破棄します。 クライアント証明書は、セキュアWebアプリケーションにアクセスする際にユーザの確認のために使用されます。
構文： | ClientCertificateDiscard (PKCS12 証明書)
パラメータ： | PKCS12 証明書… クライアント証明書ファイルを指定するURL（またはパスを含んだファイル名）。英数文字で指定してください。
戻り値： | 論理値… 処理に成功した場合「True」が返ります。 クライアント証明書のURLが、ClientCertificateAdd関数によって同じURLによって追加されされた場合や、動作環境の[SSLクライアント証明書ファイル]で指定された名前と合っている場合のみ、証明書は破棄されます。
例： | ClientCertificateDiscard('My.pfx')
 | パラメータは以下の通りです。 My.pfx…破棄するクライアントの証明書
注意事項： | 証明書がこの関数で実行中に破棄された場合でも、環境設定において指定された証明書は、実行モードから開発モードに切り換える時に再発行されます。


関数ディレクトリ HTTPGet

HTTPGet

式エディタ > 関数ディレクトリ

HTMLの取得

HTTPリクエストの結果として返されるHTMLをBLOBとして返します。

構文：

HTTPGet(URL,ヘッダ行 1, ヘッダ行 2, …)

パラメータ：

URL…取得したいページまたはファイルのHTTP アドレス

MagicクライアントがWebサーバにアクセスする場合にユーザ名やパスワードを渡したい場合は、URLを以下のようにしてください。

http://User:Password@[URL]

シークレット名を使用することで以下のように指定できます。

http://user_secretname:pass_secretname@[URL]

ヘッダ行 n …文字列:追加したいリクエストヘッダ情報。必要な数のヘッダ情報文字列を指定できます。

戻り値：

BLOBデータ… URL で取得した実ファイル。接続に失敗した場合は、NULL が返ります。

例：

HTTPGet('http://www.magicsoftware.com/idex.html', 'if-Modified-Since: Tue 7 Aug 12:00:00 2001', 'User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0)')

この例では、最初のパラメータ(URL)で指定されたファイルを取得します。

２番目のパラメータは、追加リクエストヘッダ情報のサンプルです。もし、ページが指定された日以降に変更された場合のみ、ページの受信要求を行います。

３番目のパラメータは、このリクエストをシミュレートするユーザエージェントのサーバタイプを指定します。

注意事項：

  • HTTPGet 関数は、Proxy サーバを通して接続できます。MAGIC.INI または、[動作環境]ダイアログで Proxy サーバの指定を行ってください。

  • 関数の取得処理に対するタイムアウトは、MAGIC.INI または、動作環境ダイアログ の「HTTPタイムアウト」で指定できます。

  • 受け取ったHTMLファイル、またはテキストファイルは、文字列操作関数を使用して内容を表示することができます。

  • Blb2File関数で、ファイルに保存することができます。


関数ディレクトリ HTTPLastHeader

HTTPLastHeader

式エディタ > 関数ディレクトリ

直近のHTTPリクエストのヘッダ情報

HTTPGet/HTTPPost関数で取得した直近のHTTPリクエストのヘッダ情報が返ります。ヘッダ名を指定することで、該当するHTTPヘッダの値が取得できます。

構文：

HTTPLastHeader(ヘッダタイトル)

パラメータ：

ヘッダタイトル…ヘッダタイトルを表す文字列

例：'Content-Type' または、'Expires'、'Content-Length' など

戻り値：

文字列…ヘッダとして定義された文字列

ヘッダタイトルが空白の場合、ヘッダ全てが返ります。

例：

HTTPGet関数実行後、HTTPLastHeader('Context-Type') を実行すると 'text/html' が返ります。

HTTPLastHeader('') を実行すると以下のような文字列が返ります。

‘HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Thu, 13 July 2000 05:46:53 GMT
Content-Length:2291
Content-Type: text/html
Cache-control: private’

注意事項：

  • HTTPGet/HTTPPost関数が実行されないと空白が返ります。

  • ヘッダタイトルが見つからない場合も空白が返ります。


関数ディレクトリ HTTPPost

HTTPPost

式エディタ > 関数ディレクトリ

HTMLデータの送信

HTTP メッセージ経由で情報を渡します。HTTP リクエストの戻り値としてのHTML/XML 結果を BLOBで受け取ることもできます。

構文：

HTTPPost(URL, 内容, ヘッダ行 1, ヘッダ行 2, …)

パラメータ：

URL…アクセスする HTTP アドレス

MagicクライアントがWebサーバにアクセスする場合にユーザ名やパスワードを渡したい場合は、URLを以下のようにしてください。

http://User:Password@[URL]

シークレット名を使用することで以下のように指定できます。

http://%user_secretname%:%pass_secretname%@[URL]

内容…指定したURLにPOSTするテキスト情報を含んだ BLOB 項目（例：var1=100&VAR2=200’）

ヘッダ行…HTTP リクエスタに追加するヘッダ情報。 必要な情報を追加できます。

戻り値：

BLOB項目… 指定した URLにPOSTした結果を含んだデータ。 失敗した場合は、NULL が返ります。

例：

HTTPPost（‘http://www.magicsoftware.com/Scripts/MGrqispi100x.dll’,Appnme=ApplicationName&Prgname=ProgramName'）

アプリケーションサーバ上のMagicアプリケーション（ApplicationName）を起動します。起動されたアプリケーション内でリクエストに対してデータ出力した場合、出力内容が戻り値として返ります。

注意事項：

  • HTTPPost 関数は、Proxy サーバを通して接続できます。MAGIC.INI または、動作環境ダイアログで Proxy サーバの指定を行ってください。

  • 関数の取得処理に対するタイムアウトは、MAGIC.INI または、動作環境ダイアログ の「HTTPタイムアウト」で指定できます。

  • 受け取ったHTMLファイル、またはテキストファイルは、文字列操作関数を使用して内容を表示することができます。

  • Blb2File関数で、ファイルに保存することができます。


関数ディレクトリ RqHTTPHeader

RqHTTPHeader

式エディタ > 関数ディレクトリ

HTTPリクエストのヘッダ情報を設定

バッチプログラムがHTTPリクエスタを送信する際の HTTPヘッダ情報を設定します。

構文：

RqHTTPHeader(ヘッダ文字列,[ヘッダ文字列]…)

パラメータ：

ヘッダ文字列… HTTPヘッダ情報を表わす文字列

次のような書式にしてください。：

[タイプ]:[値]

（例：‘Content-type: application/pdf’は、リクエスタの出力が PDFフォーマットでのデータであることを示しています。）

戻り値：

論理値 … 処理に成功した場合「True」が返ります。

例：

File2Req関数を使用してPDFファイルをPOSTするためには、以下のようにして送信するリクエストのHTTPヘッダを定義してください。

RqHTTPHeader('Content-type: application/pdf')

注意事項：

  • リクエストが完了直後で、出力がリクエスタに返される時点でリクエストのHTTPヘッダが設定されます。これは、リクエストの処理フローのどの段階でもRqHTTPHeader関数が実行できることを意味します。

  • 最後に実行されたRqHTTPHeader関数が有効になります。次のリクエストは、前のリクエストでのこの関数の実行結果に影響されることはありません。

  • この関数は、リッチクライアントではサポートされません。


関数ディレクトリ Java関数

Java関数

式エディタ > 関数ディレクトリ

CodePage …… Magic がデータの入出力時に使用するコードページを指定します。

EJBCreate …… EJB(Enterprise Java Bean) の新しいインスタンスを作成します。

EJBExplore …… EJBの内容を取得します。

JCall …… インスタンスメソッドを呼び出します。

JCallStatic …… スタティックメソッドを呼び出します。

JCreate …… Java クラスの新しいインスタンスを作成し、このインスタンスのハンドルを返します。

JException …… 現在のコンテキストの最後の例外の疑似参照を返します。

JExceptionOccurred …… 最後の、 Java関数かEJB 関数が例外をスローしたことを通知します。

JExceptionText …… 最後に発生した例外やスタックの任意のバックトレースの内容をテキストで返します。

JExplore …… クラス定義にアクセスし、クラスの構造を表すXMLデータを作成します。

JGet …… インスタンス変数の値を返します。

JGetStatic …… クラスのスタティック変数の値を返します。

JInstanceOf …… Javaの instanceof 演算子と同じような動作をします。

JSet …… Javaのインスタンス変数を更新します。

JSetStatic …… Javaのスタティック変数を更新します。

参照

Java と EJB の関数


関数ディレクトリ CodePage

CodePage

式エディタ > 関数ディレクトリ

コードページの指定 Magic がデータの入出力時に使用するコードページを指定します。 Magic がデータを受ける場合、指定されたコードページを基に Magic の内部書式に変換されます。またMagic がデータを送る場合も、Magic の内部書式から指定されたコードページを基に変換します。コードページは、現在のコンテキストによって次のコードページが指定されるまで、現在のコンテキストのみに対して有効です。デフォルトコードページは、OSに依存します。(日本語OS では、Shift-JIS)この関数は、Java 関数や Webサービスの処理で使用します。
構文： | CodePage(コードページ)
パラメータ： | コードページ…コードページを表す数値。 「0」の場合、コードページをOSのデフォルト値にします。
戻り値： | 論理値… 処理に成功した場合「True」が返ります。
例： | CodePage(932)は、コードページを 「Shift-JIS」 に設定します。
関連項目： | コードページ、Java関数


関数ディレクトリ EJBCreate

EJBCreate

式エディタ > 関数ディレクトリ

EJBのインスタンス作成 EJB(Enterprise Java Bean) の新しいインスタンスを作成します。
構文： | EJBCreate(JNDI 名[,Jndiプロパティ])
パラメータ： | JNDI名 … JNDI名を表す文字列 Jndiプロパティ … JNDIプロパティを表す文字列
戻り値： | BLOB値 …作成されたインスタンスの疑似参照が返ります。
例： | EJBCreate('JNDI_ejb1')
参照事項： | Java関数


関数ディレクトリ EJBExplore

EJBExplore

式エディタ > 関数ディレクトリ

EJBの参照 EJBの記述を取得します。
構文： | EJBExplore(JNDI 名'[,'Jndiプロパティ])
パラメータ： | JNDI名 … JNDI名を表す文字列 Jndiプロパティ … JNDIプロパティを表す文字列
戻り値： | 文字列 … EJB の XML 記述を表す文字列
参照事項： | Java関数


関数ディレクトリ JCall

JCall

式エディタ > 関数ディレクトリ

メソッドの呼出 Javaオブジェクトのインスタンスメソッドを呼び出します。
構文： | JCall (疑似参照、メソッド名,シグニチャ,パラメータ)
パラメータ： | 疑似参照 … JCreate 関数で取得した疑似参照 メソッド名 … 呼び出すメソッド名 シグニチャ … メソッドに渡すパラメータの型のシグニチャ パラメータ … メソッドに渡すパラメータの値
戻り値： | メソッドからの戻り値。データ型は、メソッドに依存します。
例： | JCreate('pkg.CLS_A','(I)V',1000) → 変数A に代入 JCall(A,'increment', '(I)Lpkg.CLS_B;',200)→ 変数B に代入
 | 'pkg.CLS_A' クラスの'increment'メソッドは、パラメータ(I) として 200 が渡されます。この戻り値として、新しい疑似参照が pkg.CLS_B(Lpkg.CLS_B:)クラスに返されます。疑似参照は、BLOB項目に格納できます。
参照事項： | Java関数


関数ディレクトリ JCallStatic

JCallStatic

式エディタ > 関数ディレクトリ

スタティックメソッドの呼出 Javaクラスのスタティックメソッドを呼び出します。
構文： | JCallStatic(クラス名.メソッド名,メソッドのシグニチャ,パラメータ)
パラメータ： | クラス名.メソッド名 … 呼び出すメソッド名をクラス名を含めて指定する メソッドのシグニチャ … メソッドに渡すパラメータの型のシグニチャ パラメータ … メソッドに渡すパラメータの値
戻り値： | メソッドからの戻り値。データ型は、メソッドに依存します。
例： | JcallStatic('pkg.A.increament_count','(I)Lpkg.CLS_B;',200) → 変数A に代入
 | 'pkg.CLS_A' クラスの'increment_count' メソッド は、パラメータ(I)として 200 が渡され起動されます。この戻り値として、新しい疑似参照が pkg.CLS_B(Lpkg.CLS_B:)クラスに返されます。疑似参照は、BLOB項目に格納できます。
参照事項： | Java関数


関数ディレクトリ JCreate

JCreate

式エディタ > 関数ディレクトリ

インスタンスの作成 Java クラスの新しいインスタンスを作成します。
構文： | JCreate(クラス名,コンストラクタのシグニチャ,パラメータ)
パラメータ： | クラス名 … インスタンスを作成するクラス名 コンストラクタのシグニチャ … コンストラクタに渡すパラメータの型のシグニチャ パラメータ … コンストラクタに渡すパラメータの値
戻り値： | BLOB項目 … 新しいインスタンスの疑似参照
例： | Jcreate('pkg.CLS_A','(I)V',1000)
 | 'pkg.CLS_A' クラスのインスタンスを作成し、疑似参照を返します。
注意時億： | JavaのCLASSPATHを設定することで、Javaクラスに対するインスタンスのみ作成することができます。
参照事項： | Java関数


関数ディレクトリ JException

JException

式エディタ > 関数ディレクトリ

Javaの例外処理 現在のコンテキストの最後の例外の疑似参照を返します。
構文： | JException ()
パラメータ： | なし
戻り値： | BLOB値…最後の、Java関数 かEJB関数の処理中にスローされた最後の例外に対する疑似参照。アクティブにされた場合は、例外をクリアします。
参照事項： | Java関数


関数ディレクトリ JExceptionOccurred

JExceptionOccurred

式エディタ > 関数ディレクトリ

例外通知 最後のJava関数かEJB 関数が例外をスローしたことを通知します。
構文： | JExceptionOccurred()
パラメータ： | なし
戻り値： | 論理値…最後に実行した関数が例外をスローした場合のみ「True」を返します。
例： | JExceptionText() の実行条件に JExceptionOccurred()を指定できます。
参照事項： | Java関数


関数ディレクトリ JExceptionText

JExceptionText

式エディタ > 関数ディレクトリ

例外情報の参照

最後に発生した例外やスタックの任意のバックトレースの内容をテキストで返します。この関数は、最後に実行した Java関数やEJB関数の実行中にスローした例外を参照する場合に使用します。

構文：

JExceptionText(摘要フラグ)

パラメータ：

摘要フラグ … 論理値

  • True … メッセージとスタックトレースを出力します。

  • False … メッセージのみ出力します。

戻り値：

文字列 … エラーメッセージ(ステータス行にも表示されます。)

参照事項：

Java関数


関数ディレクトリ JExplore

JExplore

式エディタ > 関数ディレクトリ

クラスの表示

クラスを表示します。

構文：

Jexplore(クラス名)

パラメータ：

クラス名 … 表示するクラス名

戻り値：

BLOB値 … クラスの XML記述

例：

Jexplore('pkg.CLS_A')

例えば、以下のようなXMLデータを返します。

<?xml version="1.0" encoding="UTF-8"?>
<ClassMetaData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Classes>
<Class name="java/lang/StringBuffer" abstract="N" interface="N">
<Dependencies>
<Extends>
<ClassName>java.lang.Object</ClassName>
</Extends>
<Implements>
<ClassName>java.io.Serializable</ClassName>
<ClassName>java.lang.CharSequence</ClassName>
</Implements>
</Dependencies>
<Structure>
<Constructors>
<Constructor idx="1">
<Signature>(I)V</Signature>
...
</Class>
</Classes>
</ClassMetaData>

注意事項：

  • 出力されるXMLデータのサイズが大きくなる可能性がある場合は、BLOB型項目に格納することを推奨します。

  • 指定されたJavaのCLASSPATHに基づいて参照できるJavaクラスのみが取得できます。

参照事項：

Java関数


関数ディレクトリ JGet

JGet

式エディタ > 関数ディレクトリ

インスタンス変数 インスタンス変数の値を返します。
構文： | JGet(疑似参照、変数名,変数のシグニチャ)
パラメータ： | 疑似参照 … JCreate関数で取得した疑似参照が格納されたBLOB項目 変数名 … インスタンス変数名 変数のシグニチャ … 変数の型のシグニチャ
戻り値： | 変数の値。データ型は、インスタンス変数の書式に依存します。
例： | JGet (A, 'elementCount', 'I')
 | 変数'elementCount'の値が返ります。｢A｣は、JCreate ('java.util.Vector','()V')の値を格納したBLOB型項目
参照事項： | Java関数


関数ディレクトリ JGetStatic

JGetStatic

式エディタ > 関数ディレクトリ

スタティック変数の値 クラスのスタティック変数の値を返します。
構文： | JGetStatic(クラス名.変数名,変数のシグニチャ)
パラメータ： | クラス名.変数名 … クラス変数の名前 変数のシグニチャ … 変数の型のシグニチャ
戻り値： | 変数の値。型は、データ型は、インスタンス変数の書式に依存します。
例： | JGetStatic('pkg.CLS_A.a2', 'I')
注意事項： | Javaでは、Private メンバとして定義された変数にアクセスできません.
参照事項： | Java関数


関数ディレクトリ JInstanceOf

JInstanceOf

式エディタ > 関数ディレクトリ

オブジェクトの確認 Javaの instanceof 演算子と同じような動作をします。オブジェクトが、特定のクラスのインスタンスを含んでいるかどうかを確認します。
構文： | JInstanceOf(疑似参照, クラス名)
パラメータ： | 疑似参照 … JCreate関数で取得した疑似参照が格納されたBLOB項目 クラス名 … 参照するクラス名を表す文字列
戻り値： | 論理値…オブジェクトがNULLでなく、例外を発生せずにクラスのCASTができる場合 「True」 が返ります。
例： | JInstanceOf(A, 'javax.jms.Message')
参照事項： | Java関数


関数ディレクトリ JSet

JSet

式エディタ > 関数ディレクトリ

インスタンス変数の更新

Javaのインスタンス変数を更新します。

構文：

JSet(疑似参照,変数名,変数のシグニチャ,値)

パラメータ：

疑似参照 … JCreate関数で取得した疑似参照

変数名 … 更新する変数名

変数のシグニチャ … 変数の型のシグニチャ

値 … 更新する値

戻り値：

論理値… 処理に成功した場合「True」が返ります。

以下の場合に、処理が失敗します。

  • 疑似参照が現在のコンテキストの一部でない場合

  • 指定した変数が見つからない場合

  • 値が、シグニチャに基づいて変換できなかった場合

例：

JSet(A, 'a', 'I', B)

参照事項：

Java関数


関数ディレクトリ JSetStatic

JSetStatic

式エディタ > 関数ディレクトリ

スタティック変数の更新

Javaのスタティック変数を更新します。

構文：

JSetStatic(クラス名.変数名,変数のシグニチャ,値)

パラメータ：

クラス名.変数名 … クラス変数の名前

変数のシグニチャ … 変数の型のシグニチャ

値 … 更新する値

戻り値：

論理値… 処理に成功した場合「True」が返ります。

以下の場合に、処理が失敗します。

  • 指定した変数が見つからない場合

  • 値がシグニチャに基づいて変換できなかった場合

例：

JSetStatic('pkg.CLS_A.a2', 'I', B)

参照事項：

Java関数


式とUnicode Unicode関数

Unicode関数

式エディタ > 関数ディレクトリ
Unicodeサポート > 式とUnicode

UnicodeChr …… 指定された文字コードをUnicode文字に変換します。

UnicodeFromANSI …… ANSI文字列を指定されたコードページに基づいてUnicode文字列に変換します。

UnicodeToANSI …… Unicode文字列を指定されたコードページに基づいてANSI文字列に変換します。

UnicodeVal …… Unicode文字を文字コードに変換します。


関数ディレクトリ UnicodeChr

UnicodeChr

式エディタ > 関数ディレクトリ

指定された文字コードをUnicode文字に変換 指定された数値を文字コード（10進）とするUnicode文字に変換します。
構文： | UnicodeChr(数値)
パラメータ： | 数値 … Unicodeの文字コードを表す数値 （0 ～ 65,535）
戻り値： | Unicode文字 … 指定された文字コードに基づくUnicode文字 文字コードが、0 ～ 65,535の範囲以外の場合、NULLが返ります。
例： | UnicodeChr(12355)
 | 10進数の「12355」は、「x'3043'」、これはUnicodeの「い」として返ります。
注意： | この関数では10進数で数値を指定する必要がありますが、通常Unicodeのコードページは16進数で表されています。Hval()関数を使用することで10進数に変換することができます。
関連項目： | UnicodeVal


関数ディレクトリ UnicodeFromANSI

UnicodeFromANSI

式エディタ > 関数ディレクトリ

ANSIをUnicodeに変換 指定されたコードページに基づいて、ANSI文字列をUnicode文字に変換します。
構文： | UnicodeFromANSI (ANSI 文字列, コードページ)
パラメータ： | ANSI 文字列（文字） … ANSI文字を含む文字列 コードページ（数値） … Unicodeに変換する際に使用されるコードページを表す数値。「0」が指定された場合、デフォルトのシステムコードページが使用されます。
戻り値： | Unicode文字列 … 変換されたUnicode文字列。コードページが正しくない場合やANSI文字列がNULLの場合、NULLが返ります。
関連項目： | UnicodeToANSI


関数ディレクトリ UnicodeToANSI

UnicodeToANSI

式エディタ > 関数ディレクトリ

UnicodeをANSIに変換 指定されたコードページに基づいて、Unicode文字列をANSI文字列に変換します。
構文： | UnicodeToANSI (Unicode文字列, コードページ)
パラメータ： | Unicode文字列（Unicode） … Unicode文字を含む文字列 コードページ（数値） … ANSIに変換する際に使用されるコードページを表す数値。「0」が指定された場合、デフォルトのシステムコードページが使用されます。
戻り値： | Unicode文字列 … 変換されたANSI文字列。コードページが正しくない場合やUnicode文字列がNULLの場合、NULLが返ります。
注意事項： | Unicode文字列内に指定されたコードページに含まれていない文字がある場合、変換処理時にスキップされます。
関連項目： | UnicodeFromANSI


関数ディレクトリ UnicodeVal

UnicodeVal

式エディタ > 関数ディレクトリ

Unicode文字を文字コードに変換 Unicode文字を対応する文字コード（10進）に変換します。
構文： | UnicodeVal (Unicode文字)
パラメータ： | Unicode文字(文字) … 数値に変換されるUnicode文字。複数の文字が含まれている場合、最初の文字だけ変換されます。
戻り値： | 数値 … Unicodeの文字コードを表す10進数の数値 空白が指定された場合、「0」が返ります。 NULLが指定された場合、NULLが返ります。 これ以外の場合は、指定された文字列の最初の文字が数値に変換されます。
例： | UnicodeVal ('あ')
 | 「あ」は、Unicodeでは、「x'3042'」のため、10進数の「12354」が返ります。
関連項目： | UnicodeChr


関数ディレクトリ XML関数

XML関数

式エディタ > 関数ディレクトリ
XML連携 > Magic関数を使用したXMLの使用

認証関数

XMLValidate …… 指定されたスキーマに対するXMLドキュメントを有効にします。

XMLValidationError …… 最後に実行したXMLValidate関数のエラーを返します。

ビュー関数

DbXmlExist …… XNLビューにレコードが存在するかどうかをチェックします。

DbXmlMixedGet …… 混在内容（Mixed-content）のXML要素からテキストを取り出します。

DbXmlMixedSet …… 混在内容（Mixed-content）のXML要素にテキストを設定します。

その他のXML関数

XMLBlobGet …… 要素パスに従って XML 要素／XML 属性の値を返します。

XMLCnt …… 指定したパス内のXML要素の数または、XML属性の数を返します。

XMLDelete …… 指定したパス内のXML要素または、XML属性を削除します。

XMLExist …… 指定したパス内にXML要素または、XML属性が存在すれば 「True」を返します。

XMLFind …… 指定した値とXML要素の値や属性値が一致した場合、そのインデックス値を返します。

XMLGet …… XML要素、またはXML属性の値を返します。

XMLGetAlias …… ネームスペース内部テーブルから、ネームスペースURIに対応したエイリアスを返します。

XMLInsert …… 指定された位置のXML要素をXMLドキュメントに追加したり、属性を既存のXML要素に追加します。

XMLModify …… XML要素または属性値を修正します。

XMLSetNS …… 指定したXMLファイルにネームスペースURIを書き込みます。

XMLStr …… 正規のXML表記を予約語を使用したXML表記に変換します。

XMLVal …… 予約語を使用したXML表記を正規のXML表記に変換します。

参照

CDATA セクション

参考

  • XMLデータの中に、encoding の指定を常に行うようにしてください。encoding の指定が無い場合に、タグ名にDBCSが使えないなどの問題が起こることがあります。

  • XML中のタグの指定に&lt; &gt; が使用されている場合は、処理されません。

  • データ内の文字列に、&lt; &gt; などの特殊文字（XMLStr を参照）が含まれている場合は、デコード（「<」、「>」文字への変換）されます。


関数ディレクトリ DbCache

DbCache

式エディタ > 関数ディレクトリ

キャッシュのヒット率 キャッシュのヒット率（整数）が返ります。キャッシュのヒット率とは、キャッシュの検索でレコードが見つかった回数をキャッシュが検索された合計回数で割った値です。この値が大きいほどキャッシュの効率が高いことになります。
構文： | DbCache (番号,世代番号)
パラメータ： | 番号…[データ]リポジトリに定義されているデータソースを示す番号（連番）です。このパラメータは、必ず指定しなければなりません。] 世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。
戻り値： | ヒット率…0～100の整数
例： | DbCache('1' DSOURCE, 0)では、[データ]リポジトリの最初のデータソースに関するヒット率が返ります。この関数では、リテラルコードDSOURCEが使用できます。


関数ディレクトリ DbXmlExist

DbXmlExist

式エディタ > 関数ディレクトリ

XMLデータのチェック BLOB項目内に格納されたXMLデータがビューが定義された要素を含んでいるかどうかをチェックします。 XMLビューには、1つのメインの複合型(Complex)または反復型(Repeatable)または再帰型(Recursion)の要素を含んでいなければなりません。 XMLビューを読み込むと、タスクのデータビューにはそのメイン要素のレコードが含まれます。 タスク内でデータソースに割り当てるXML(BLOB項目)が、そのXMLビューに対応するレコードを含んでいない場合、特定のXMLビューを処理するためにタスクを呼び出すことを回避する目的でこの関数が使用されます。 再帰的なXMLビューを処理する場合に、効率的な停止条件を定義する上でこの関数を使用すると、プログラムの性能を改善することができます。
構文： | DbXmlExist(データソース番号, BLOB項目)
パラメータ： | データソース番号 … [データ]リポジトリ上の番号 BLOB項目… XML項目名
戻り値： | 論理値 … データソース内に定義されたビューにXMLが要素が含まれている場合は、Trueが返ります。
注意事項： | これはサーバ側の関数です。DB SQL Where句ではサポートされません。また、実行時にエンドユーザによって利用することもできません。
関連項目： | DbXmlExist の例


関数ディレクトリ DbXmlMixedGet

DbXmlMixedGet

式エディタ > 関数ディレクトリ

混在内容XMLからテキストを取得

混在内容（Mixed-content）のXML要素からテキストを取り出します。

構文：

DbXmlMixedGet(ソース, パス, 要素)

パラメータ：

ソース … XMLタイプのデータソース（例：'1'DSOURCE）

パス（文字） … 混在内容の要素で構成されるXMLファイルをパス付きで指定します（例：/root /mixed_child）。パスには、複数存在する要素のインスタンス番号を指定するためのインデックスを指定することができます。（例： /root/mixed_child[2]）

要素（文字） … 混在内容要素内の要素の名前。この値は、どのテキストノードから取得するかを指定するために使用されます。この値が空白の場合、最初のノードから取得されます。値が空白でない場合、指定されたノードの次のノードから取得されます。要素が存在していない場合、空白が返ります。

戻り値：

文字列 … テキストノードの値を持つ文字列が返ります。指定されたデータソ－スがオープンされない場合、または指定されたパスが存在しない場合、NULLが返ります。テキストノードが存在しない場合、空白が返ります。

例：

[データ]リポジトリの１番目に、以下の内容のXMLがデータソースとして定義されているものとします。

<root>
<child>
Text1
<elem1>String</elem1>
<elem2>String</elem2>
Text2
</child>
</root>

DbXmlMixedGet('1'DSOURCE,'/root/child’,'')

最初のテキストノード「Text1」を取得します。

「elem1」と「elem2」の間には、テキストノードが存在しないため以下のようになります。

DbXmlMixedGet('1'DSOURCE,'/root/child','elem1')

空白が返ります。

DbXmlMixedGet('1'DSOURCE,'/root/child','elem2')

「Text2」が返ります。

DbXmlMixedGet('1'DSOURCE,'/root/child','elem3')

NULLが返ります。

DbXmlMixedGet('1'DSOURCE,'/root/child_not_exist','')

NULLが返ります。

関連項目：

DbXmlMixedSet


関数ディレクトリ DbXmlMixedSet

DbXmlMixedSet

式エディタ > 関数ディレクトリ

混在内容XMLにテキストを設定

混在内容（Mixed-content）のXML要素にテキストを設定します。

構文：

DbXmlMixedSet(ソース, パス, 要素, 値)

パラメータ：

ソース … XMLタイプのデータソース（例：'1'DSOURCE）

パス（文字） … 混在内容の要素で構成されるXMLファイルをパス付きで指定します（例：/root /mixed_child）。パスには、複数存在する要素のインスタンス番号を指定するためのインデックスを指定することができます。（例： /root/mixed_child[2]）

要素（文字） … 混在内容要素内の要素の名前。この値は、どのテキストノードを追加/置換するかを指定するために使用されます。この値が空白の場合、最初のノードに対して追加/置換が行われます。値が空白でない場合、指定されたノードの次のノードに設定します。要素が存在していない場合、「False」が返ります。

値 (文字/Unicode/BLOB) … 追加するテキストノードの値を指定します。指定したテキストノードがすでに存在する場合、値を置き換えます。

戻り値：

論理値… テキストノードの追加/置換が成功した場合、「True」が返ります。

XMLデータソースが読込専用の場合、「False」が返ります。

例：

[データ]リポジトリの１番目に、以下の内容のXMLがデータソースとして定義されているものとします。

<root>
<child>
Text1
<elem1>String</elem1>
<elem2>String</elem2>
Text2
</child>
</root>

DbXmlMixedSet('1'DSOURCE,'/root/child','','UpdatedText1')

最初のテキストノード「Text1」を「UpdatedText1」に更新します。

DbXmlMixedSet('1'DSOURCE, '/root/child','elem1','UpdatedText2')

/root/child の「elem1」の後にテキストノード「UpdatedText1」を追加します。

関連項目：

DbXmlMixedGet


関数ディレクトリ XMLBLOBGet

XMLBlobGet

式エディタ > 関数ディレクトリ

XML要素またはXML 属性の値

要素パスに従って XML要素またはXML属性の値を返します。

構文：

XMLBlobGet(世代番号, ファイル番号, 要素パス, 属性名, 存在確認)

パラメータ：

世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

ファイル番号 … 指定されたタスクの（「XMLダイレクトアクセス」または、「項目」が設定された）[入出力ファイル]テーブルの番号

要素パス … XML 要素のパスを表す文字列。 パス文字列の構文は、以下の通りです。

/要素名[[インデックス]] [/要素名[[インデックス]] ... ]

  • 要素名 … XML 要素の名前です。エイリアスを指定することができます。エイリアスは、「all:My_Element」のように、コロン(:)で要素名と分けて指定します。

  • インデックス … 複数存在する中の特定の要素を示すインデックス。インデックス値は、1以上の値を指定してください。

要素パスのスラッシュ「/」は、区切り文字です。

属性名 … 指定された要素の中に定義されたXML属性名

存在確認 … （オプション）要求する要素/属性が見つかった場合に知らせるかどうかを指定する論理値

戻り値：

BLOB値 … XMLの解析に成功した場合、要求される要素の値が返ります。

失敗した場合、[存在確認]オプションの設定内容に基づいて以下の内容を返します。

  • True … Nullが返ります。

  • False(または指定されていない場合) …空白が返ります。

例：

XMLBlobGet の例

関連項目：

XML のネームスペース , XML 関数のエラーコード , XMLGet


関数ディレクトリ XMLCnt

XMLCnt

式エディタ > 関数ディレクトリ

XML要素またはXML属性の数

指定したパス内のXML要素の数または、XML属性の数が返ります。

構文：

XMLCnt(世代番号,ファイル番号,要素パス ,属性名)

パラメータ：

世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

ファイル番号 …指定されたタスクの（「XMLダイレクトアクセス」または、「項目」が設定された）[入出力ファイル]テーブルの番号

要素パス … XML 要素のパスを表す文字列。 パス文字列の構文は、以下の通りです。

/要素名[[インデックス]] [/要素名[[インデックス]] ... ]

  • 要素名 … XML 要素の名前です。エイリアスを指定することができます。エイリアスは、「all:My_Element」のように、コロン（:）で要素名と分けて指定します。

  • インデックス … 複数存在する中の特定の要素を示すインデックス。インデックス値は、1以上の値を指定してください。

要素パスのスラッシュ「/」は、区切り文字です。

属性名 … 指定された要素の中に定義されたXML属性名

戻り値：

数値…指定したパス内の要素数。XMLの解析が完了しなかったり指定した要素が存在しない場合、0 が返ります。

例：

XMLCnt の例

関連項目：

XML のネームスペース , XML 関数のエラーコード


関数ディレクトリ XMLDelete

XMLDelete

式エディタ > 関数ディレクトリ

XML要素またはXML属性の削除

指定したパス内のXML要素または、XML属性を削除します。

構文：

XMLDelete (世代番号,ファイル番号,要素パス ,属性名)

パラメータ：

世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

ファイル番号 … 指定されたタスクの（「XMLダイレクトアクセス」または、「項目」が設定された）[入出力ファイル]テーブルの番号

要素パス … XML 要素のパスを表す文字列。 パス文字列の構文は、以下の通りです。

/要素名[[インデックス]] [/要素名[[インデックス]] ... ]

  • 要素名 … XML 要素の名前です。エイリアスを指定することができます。エイリアスは、「all:My_Element」のように、コロン（:）で要素名と分けて指定します。

  • インデックス … 複数存在する中の特定の要素を示すインデックス。インデックス値は、1以上の値を指定してください。

要素パスのスラッシュ「/」は、区切り文字です。

属性名 … 指定された要素の中に定義されたXML属性名。この値が空白の場合、要素パスで指定されたXML要素が削除されます。

戻り値：

数値

要素が正常に削除された場合は、「0」を返します。

関数の処理が失敗した場合、Magicは以下のエラーコードを返します。

  • -1…入出力ファイルの指定が正しくありません。

  • -2… 挿入された要素や属性が定義されていません

  • -3… 入出力ファイルを書き込みモードでオープンできません

  • -4 …指定した要素パスが存在していません

  • -11…要素パスやインデックスが正しくありません

  • -20… XML ファイルの構造が正しくありません（XML の解析に失敗しました）

例：

XML Delete の例

注意事項：

[入出力]テーブルの[メディア]カラムで「V=項目」を指定した場合は、以下のように使用してください。

  1. 親タスクでBLOB項目と入出力ファイルを定義します。

  2. XMLDeleteを実行する子タスクを定義し、BLOB型のパラメータ項目を定義します。

  3. 親タスクから子タスクを呼ぶ際、パラメータでBLOB項目を渡します。

関連項目：

XML のネームスペース , XML 関数のエラーコード


関数ディレクトリ XMLExist

XMLExist

式エディタ > 関数ディレクトリ

XML要素やXML属性の存在確認

指定したパス内にXML要素または、XML属性が存在するかどうかを確認します。

構文：

XMLExist(世代番号,ファイル番号,要素パス ,属性名)

パラメータ：

世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

ファイル番号 … 指定されたタスクの（「XMLダイレクトアクセス」または、「項目」が設定された）[入出力ファイル]テーブルの番号

要素パス … XML 要素のパスを表す文字列。 パス文字列の構文は、以下の通りです。

/要素名[[インデックス]] [/要素名[[インデックス]] ... ]

  • 要素名 … XML 要素の名前です。エイリアスを指定することができます。エイリアスは、「all:My_Element」のように、コロン（:）で要素名と分けて指定します。

  • インデックス … 複数存在する中の特定の要素を示すインデックス。インデックス値は、1以上の値を指定してください。

要素パスのスラッシュ「/」は、区切り文字です。

属性名 … 指定された要素の中に定義されたXML属性名

戻り値：

論理値

  • True…XML要素やXML属性が存在した場合

  • False…XML解析処理が成功しなかったり、要素が存在しない場合

例：

XMLExist の例

関連項目：

XML のネームスペース , XML 関数のエラーコード


関数ディレクトリ XMLFind

XMLFind

式エディタ > 関数ディレクトリ

XML要素の値や属性値と一致するインデックス値

指定した値とXML要素の値や属性値が一致した場合、そのインデックス値を返します。要素の配列形式の場合に使用します。

構文：

XMLFind (世代番号,ファイル番号,要素パス ,複数要素名、番号、子要素名／属性名、値)

パラメータ：

世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

ファイル番号 … 指定されたタスクの（「XMLダイレクトアクセス」または、「項目」が設定された）[入出力ファイル]テーブルの番号

要素パス … XML 要素のパスを表す文字列。 パス文字列の構文は、以下の通りです。

/要素名[[インデックス]] [/要素名[[インデックス]] ... ]

  • 要素名 … XML 要素の名前です。エイリアスを指定することができます。エイリアスは、「all:My_Element」のように、コロン（:）で要素名と分けて指定します。

  • インデックス … 複数存在する中の特定の要素を示すインデックス。インデックス値は、1以上の値を指定してください。

要素パスのスラッシュ「/」は、区切り文字です。

複数要素名…指定した要素パス上に複数存在するXML要素の名前

番号…数値。次のパラメータの意味を示します。

  • 0 …子要素を表します。

  • 1…属性名を表します。

子要素名…複合要素名の子要素を示すXML要素名。値パラメータと比較されます。値パラメータが空白の場合、複合要素名で指定された要素の値と比較されます。

属性名…指定された要素の中に定義されたXML属性名

値…この値が含まれた、子要素または属性を検索します。

戻り値：

数値…要素のインデックス。XMLの解析処理が正常に終わらなかったり、指定した要素が存在しない場合、0 が返ります。

例：

XMLFind の例

関連項目：

XML のネームスペース , XML 関数のエラーコード


関数ディレクトリ XMLGet

XMLGet

式エディタ > 関数ディレクトリ

XML要素や属性の値

XML要素、またはXML属性の値を返します。

構文：

XMLGet(世代番号,ファイル番号,要素パス ,属性名, 存在確認)

パラメータ：

世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

ファイル番号 … 指定されたタスクの（「XMLダイレクトアクセス」または、「項目」が設定された）[入出力ファイル]テーブルの番号

要素パス … XML 要素のパスを表す文字列。 パス文字列の構文は、以下の通りです。

/要素名[[インデックス]] [/要素名[[インデックス]] ... ]

  • 要素名 … XML 要素の名前です。エイリアスを指定することができます。エイリアスは、「all:My_Element」のように、コロン（:）で要素名と分けて指定します。

  • インデックス … 複数存在する中の特定の要素を示すインデックス。インデックス値は、1以上の値を指定してください。

要素パスのスラッシュ「/」は、区切り文字です。

属性名 … 指定された要素の中に定義されたXML属性名。

存在確認 … （オプション）要求する要素/属性が見つかった場合に知らせるかどうかを指定する論理値

戻り値：

文字列 …XMLの解析に成功した場合、要求される要素/属性の値が返ります。

失敗した場合、[存在確認]オプションの設定内容に基づいて以下の内容を返します。

  • True … Nullが返ります。

  • False(または指定されていない場合) …空白が返ります。

例：

XMLGet の例

関連項目：

XML のネームスペース , XML 関数のエラーコード , XMLBlobGet


関数ディレクトリ XMLGetAlias

XMLGetAlias

式エディタ > 関数ディレクトリ

XMLネームスペースのエイリアス

ネームスペース内部テーブルを基に、ネームスペースURIに対応したエイリアスが返ります。

構文：

XMLGetAlias (世代番号, ファイル番号, URI)

パラメータ：

世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

ファイル番号 … 指定されたタスクの（「XMLダイレクトアクセス」または、「項目」が設定された）[入出力ファイル]テーブルの番号

URI …ネームスペースURIを表す文字列。空白は無効です。

戻り値：

文字列…ネームスペースURIに対応したエイリアス

URIがXMLのデフォルトネームスペースの場合、空白が返ります。エラーが発生したり、URIに対応したエイリアスが存在しない場合、NULL値が返ります。

以下の場合この関数は失敗します。

  • URIに対応したエイリアスが存在しない場合

  • URIが正しくない場合

例：

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="schema.xml"
elementFormDefault="qualified"
targetNamespace="schema.xml">
<xsd:element name="bookstore" type="bookstoreType"/>
<xsd:complexType name="bookstoreType">
<xsd:sequence maxOccurs="unbounded">
<xsd:element name="book" type="bookType"/>
</xsd:sequence>
</xsd:complexType>

上記のスキーマのエイリアスを取得する場合

XMLGetAlias(0, 1, 'http://www.w3.org/2001/XMLSchema')

URI(http://www.w3.org/2001/XMLSchema)に対応したエイリアス（xsd）が返ります。

関連項目：

XML のネームスペース , XML 関数のエラーコード


関数ディレクトリ XMLGetEncoding

XMLGetEncoding

式エディタ > 関数ディレクトリ

XMLドキュメントのエンコード方法 XMLドキュメントのエンコード情報（encoding="XXXX"）を返します。
構文： | XMLGetEncoding (世代番号, ファイル番号)
パラメータ： | 世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。 ファイル番号 … 指定されたタスクの（「XMLダイレクトアクセス」または、「項目」が設定された）[入出力ファイル]テーブルの番号
戻り値： | 文字列…指定されたXMLファイルのエンコード方法を返します。エンコード指定がない場合は、空白が返ります。
関連項目： | XMLSetEncoding


関数ディレクトリ XMLInsert

XMLInsert

式エディタ > 関数ディレクトリ

XML要素や属性の追加

指定された位置のXML要素をXMLドキュメントに追加したり、属性を既存のXML要素に追加します。

構文：

XMLInsert (世代番号, ファイル番号, 要素パス, 属性名, 値 [,前置／後置フラグ,参照要素, 自動変換])

パラメータ：

世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

ファイル番号 … 指定されたタスクの（「XMLダイレクトアクセス」または、「項目」が設定された）[入出力ファイル]テーブルの番号

要素パス … XML 要素のパスを表す文字列。 パス文字列の構文は、以下の通りです。

/要素名[[インデックス]] [/要素名[[インデックス]] ... ]

  • 要素名 … XML 要素の名前です。エイリアスを指定することができます。エイリアスは、「all:My_Element」のように、コロン（:）で要素名と分けて指定します。

  • インデックス … 複数存在する中の特定の要素を示すインデックス。インデックス値は、0 以上の値を指定してください。要素を追加する場合、属性値は空白を指定します。要素パスの一番右端の要素に対するインデックスを指定することはできません。

要素パスの先頭のスラッシュ「/」は、区切り文字です。

属性名…指定された要素の中に追加されるXML属性名。この値が空白の場合、要素パスで指定されたXML要素として追加されます。

値… 挿入される要素／属性の値が含まれる文字型、BLOB型（リッチエディット）, Unicode型のデータです。

前置／後置フラグ（任意）…以下の値を表します。

  • A（前置）… 要素は、参照要素の後に追加されます。

  • B（後置）… 要素は、参照要素の前に追加されます。

XML要素の追加の時にこのパラメータが空白の場合、XML要素は親の要素内の最後の要素として追加されます。

属性の追加の場合は無視されます。

参照要素（任意） …XML要素を追加する際の参照用に使用するXML要素名。属性の追加の場合は無視されます。
参照要素が指定されていない場合、[前置／後置フラグ]を基に要素が追加されます。「前置」と指定された場合、親要素の最後の要素の前に追加します。「後置」と指定された場合、親要素の最初の要素として追加します。

自動変換（任意） …論理値

  • True… XMLVal関数のように正規のXMLフォーマットに変換します。

  • False …変換処理を行いません。

戻り値：

数値

要素が正常に追加された場合、追加された要素のインデックスを返します。属性が追加された場合は、「0」を返します。

関数の処理が失敗した場合、Magicは以下のエラーコードを返します。

  • -1…入出力ファイルの指定が正しくありません

  • -2… 挿入された要素や属性が定義されていません

  • -3… 入出力ファイルを書き込みモードでオープンできませんでした。

  • -4 …指定した要素パスが、すでに存在しています.

  • -6…指定した属性値が指定した要素内にすでに存在しています。

  • -7… 前置／後値フラグの文字が間違っています。

  • -8…参照要素が存在していません。

  • -9… ドキュメントがルート要素を含んでいて親のパスが空白です。

  • -10… 自動変換フラグが論理型ではありません。

  • -11…要素指定に対して、インデックスが正しくありません。

  • -13…要素か属性の名前が正しくありません。

  • -20…XMLファイルが正しくありません（解析に失敗）。

例：

XML Insert の例

関連項目：

XML のネームスペース , XML 関数のエラーコード


関数ディレクトリ XMLModify

XMLModify

式エディタ > 関数ディレクトリ

XML要素か属性値の修正

XML要素または属性値を修正します。

構文：

XMLModify (世代番号, ファイル番号, 要素パス, 属性値, 値[,自動変換])

パラメータ：

世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

ファイル番号 … 指定されたタスクの（「XMLダイレクトアクセス」または、「項目」が設定された）[入出力ファイル]テーブルの番号

要素パス … XML 要素のパスを表す文字列。 パス文字列の構文は、以下の通りです。

/要素名[[インデックス]] [/要素名[[インデックス]] ... ]

  • 要素名 … XML 要素の名前です。エイリアスを指定することができます。エイリアスは、「all:My_Element」のように、コロン（:）で要素名と分けて指定します。

  • インデックス … 複数存在する中の特定の要素を示すインデックス。インデックス値は、1以上の値を指定してください。

要素パスのスラッシュ「/」は、区切り文字です。

属性名 … XML 属性の名前。この値が空白の場合、要素パスで指定されたXML要素が修正されます。

値… 修正される要素／属性の値が含まれる文字列

自動変換（任意） …論理値

  • True… XMLVal関数のように正規のXMLフォーマットに変換します。

  • False …変換処理を行いません。

戻り値：

数値

変更処理が正常に終了した場合は、「0」が返ります。

関数の処理が失敗した場合、Magicは以下のエラーコードを返します。

  • -1…入出力ファイルの指定が正しくありません

  • -2… 挿入された要素や属性が定義されていません

  • -3… 入出力ファイルを書き込みモードでオープンできません

  • -4 …指定した要素パスが正しくありません

  • -5 …属性が見つかりません

  • -10… 自動変換フラグが論理型でありません

  • -11…要素指定に対して、インデックスが正しくありません

  • -20…XMLファイルが正しくありません（解析に失敗しました）

例：

XML Modify の例

関連項目：

XML のネームスペース , XML 関数のエラーコード


関数ディレクトリ XMLSetEncoding

XMLSetEncoding

式エディタ > 関数ディレクトリ

入出力ファイルのエンコード処理 書き込みモードでオープンされた入出力ファイルの内容をエンコードします。ドキュメント部分とヘッダ部分の両方に影響します。ヘッダ部分のエンコード指定を読み、パラメータで指定されたエンコード方法を基にエンコードされます。 ヘッダにエンコード方法が指定されている場合のみ有効です。
構文： | XMLSetEncoding (世代番号, ファイル番号, エンコード)
パラメータ： | 世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。 ファイル番号 … 指定されたタスクの（「XMLダイレクトアクセス」または、「項目」が設定された）[入出力ファイル]テーブルの番号 エンコード …エンコード方式を指定します。（例：'Shift_JIS' または、'UTF-8'）
戻り値： | 数値 …エンコード処理結果を返します。 正常終了時は、「0」が返ります。正常に終わらない場合は、負数が返ります。「-3」の場合、入出力ファイルが書き込みモードでオープンできなかったことを示します。
関連項目： | XMLGetEncoding


関数ディレクトリ XMLSetNS

XMLSetNS

式エディタ > 関数ディレクトリ

ネームスペースURIの定義

指定したXMLファイルにネームスペースURIを書き込みます。

構文：

XMLSetNS (世代番号, ファイル番号,エイリアス, URI)

パラメータ：

世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

ファイル番号 … 指定されたタスクの（「XMLダイレクトアクセス」または、「項目」が設定された）[入出力ファイル]テーブルの番号

エイリアス…ネームスペースエイリアスを表す文字列。先頭は必ず文字で指定してください。空白の場合、デフォルトのネームスペースを使用します。

URI …ネームスペースURIを表す文字列。空白は無効です。

戻り値：

数値

処理が正常に終了した場合は、「0」が返ります。

関数の処理が失敗した場合、Magicは以下のエラーコードを返します。

  • -3… 入出力ファイルを書き込みモードでオープンできませんでした。

  • -12…エイリアスがすでに存在しています。

  • -13…エイリアス名が正しくありません。

例：

<?xml version="1.0"?>
<order id="123">
<issued_by>
<name>John Smith</name>
<address>

XMLSetNS(0, 1, '', 'http://www.magicsoftware.com/mgns')

デフォルトのネームスペースをURI(http://www.magicsoftware.com/mgns)に割り当て以下のようになります。

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<order id="123" xmlns="http://www.magicsoftware.com/mgns">
<issued_by>
<name>John Smith</name>
<address>

XMLSetNS(0, 1, 'all', 'http://www.magicsoftware.com/mgns')

「all」というエイリアスをURI(http://www.magicsoftware.com/mgns)に割り当て以下のようになります。

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<order id="123" xmlns:all="http://www.magicsoftware.com/mgns">
<issued_by>
<name>John Smith</name>
<address>

関連項目：

XML のネームスペース , XML 関数のエラーコード


関数ディレクトリ XMLStr

XMLStr

式エディタ > 関数ディレクトリ

XMLデータの文字列変換 正規のXML 文字列を予約語を使用したXML表記に変換します。
構文： | XMLStr(ソース文字列)
パラメータ： | ソース文字列 … 正規のXML 文字列
戻り値： | 文字列 …予約語を使用した XML表記に変換された文字列
例： | XMLStr('&It;Hello &quot; World&gt;')
 | '<Hellow World>' を返します。


関数ディレクトリ XMLVal

XMLVal

式エディタ > 関数ディレクトリ

正規のXMLデータへの変換 予約語を使用したXML 文字列を正規のXML表記に変換します。
構文： | XMLVal(ソース文字列)
パラメータ： | ソース文字列 … 文字列表記のXMLデータ
戻り値： | 文字列 … 正規のXML表記に変換されたXML文字列
例： | XMLVal('<Hello World>')
 | '&It;Hello World!&gt;' を返します。


関数ディレクトリ XMLValidate

XMLValidate

式エディタ > 関数ディレクトリ

XMLドキュメントの検証

指定されたスキーマに対するXMLドキュメントを検証にします。XMLのスキーマは、以下のどちらかを使用して、XMLドキュメント内に指定することができます。

  • 「xsi：noNamespaceSchemaLocation=」または「xsi：SchemaLocation=」属性

  • 関数への(2番目)オプションパラメータ

構文：

XMLValidate (XML [,XSDスキーマURLl])

パラメータ：

XML … XMLドキュメントが含まれているBLOB項目

XSDスキーマURL … スキーマファイルのURL（(http/ローカル)。このパラメータはオプションです。

スキーマに targetNamespaceが指定されている場合、2番目のパラメータ（指定されていれば）は、スペースによって区切られたスキーマ位置の前にtargetNamespaceの接頭辞を指定する必要があります。（例：XmlValidate (File2BLOB ('my.xml'), 'MY_NS http://srvr/my.xsd')) schemaLocationが、XMLドキュメント自身内で指定された場合と同じようになります。

スキーマパスのスペースは、エスケープコードに変換されなければなりません。

(例： XmlValidate (File2BLOB ('my.xml'),'MY_NS http://my%20srvr/my.xsd'))

戻り値：

論理値 …処理が成功した場合、「True」が返ります。

注意事項：

XMLValidateを実行すると、以前のXMLValidateで発生したエラーがクリアされます。

関連項目：

XMLValidationError


関数ディレクトリ XMLValidationError

XMLValidationError

式エディタ > 関数ディレクトリ

XMLValidate関数のエラーの取得 最後に実行したXMLValidate関数に基づく検証エラーのリストを返します。
構文： | XMLValidationError ()
パラメータ： | なし
戻り値： | ベクトル値 … Unicode文字列が格納されたベクトル値 各セルは、低レベルのパーサ(XERCES)によるエラーや警告が以下のフォーマットで設定されます。 {ERROR|WARNING}:<parser-text>.
例： | ブロック if not ( XmlValidate (File2BLOB('my.xml’),’http://srvr/my.xsd’)) 'XmlValidate の結果が正常でない場合、エラーリストを作成 項目更新 ErrorsWarnings XmlValidationError() 項目更新 Count VecSize (ErrorsWarnings) ブロック While 1 .. Count 項目更新 ErrorWarning VecGet (ErrorsWarnings, LoopCounter()) ブロック End ブロック Else 'XmlValidate の結果が正常の場合、結果リストを作成 項目更新 Warnings XmlValidationError() 項目更新 Count VecSize (Warnings) ブロック While 1 .. Count 項目更新 Warning VecGet (Warnings, LoopCounter()) ブロック End ブロック End
注意事項： | この関数は、最後に起動されたXMLValidate関数のみを参照します。XMLValidateの実行により、その前に実行されたXMLValidate関数の結果はクリアされます。


関数ディレクトリ アプリケーションサーバ関数

アプリケーションサーバ関数

式エディタ > 関数ディレクトリ

BLOB2Req …… BLOB内のデータをリクエスタで送信します。

CtxClose …… コンテキストを正常にクローズさせます。

CtxGetAllNames …… アクティブになっているか実行可能な全コンテキストのリストを返します。

CtxGetId …… コンテキスト名よりコンテキストIDを返します。

CtxGetName …… 現在のコンテキストの名前を返します。

CtxKill …… コンテキストテーブルに存在する任意のコンテキストを削除します。

CtxLstUse …… コンテキストテーブルに存在する任意のコンテキストが最後に有効になってからの経過時間を秒単位で返します。

CtxNum …… アプリケーションサーバ上で有効なコンテキストの数を返します。

CtxProg …… コンテキストテーブルに存在する任意のコンテキストの最上位レベルのプログラム名を返します。

CtxSetName …… 現在のコンテキストの名前を設定します。

CtxSize …… コンテキストテーブルに存在する任意のコンテキストのサイズ（バイト単位）を返します。

CtxStat …… コンテキストテーブルに存在する任意のコンテキストの状態を返します。

DiscSrvr …… 不必要なサーバ接続を開放します。

File2Req …… 指定されたファイルの内容をMRBに送信します。

RqCtxInf …… コンテキストID に対応したコンテキストの情報を返します。

RqCtxTrm …… コンテキストを終了させます。

RqExe …… MRB が起動しているコンピュータにリクエストを送り、指定された実行可能エンジンをロードするように指示します。

RqHTTPHeader …… バッチプログラムがHTTPリクエスタを送信する際の HTTPヘッダ情報を設定します。

RqLoad …… サービスの起動に関する統計情報を返します。

RqQueDel …… サービスキューのエントリを削除します。

RqQueLst …… キューで待機状態にあるエントリの数を返します。

RqQuePri …… キューで待機状態にあるリクエストの優先順位を変更します。

RqReqInf …… キューまたはMRB の履歴ログから作られるリストによって、リクエストID 情報を取得します。

RqReqLst …… MRBのログ情報からリクエストIDの範囲によって指定されたリクエスト数が返ります。

RqRtApp …… MRB に登録された実行エンジンがサポートするアプリケーションの情報を返します。

RqRtApps …… MRB の実行エンジンを指定し、その実行エンジンでサポートされているアプリケーションの数を返します。

RqRtBlock …… アプリケーションサーバからの外部/内部リクエストをブロックします。

RqRtCtx …… 指定されたサービス／サーバ名の指定したコンテキストの情報を返します。

RqRtCtxs …… アプリケーションサーバのオープンされた全てのコンテキストの情報をロードします。

RqRtInf …… 指定した実行エンジンに関する情報を取返します。

RqRtResume …… リクエストの受信を許可します。

RqRts …… MRB の実行エンジンの数を返します。

RqRtTrm …… 実行エンジンを終了します。

RqRtTrmEx …… 指定されたアプリケーションサーバエンジンを時間指定で終了させます。

RqStat …… 特定のリクエストのステータスを返します。

RqTrmTimeout …… サーバ終了までの残りの時間を返します。

SharedValGet …… 指定された名前に基づいて共有された値を返します。

SharedValSet …… Magicのメモリ上に格納される共有値を作成します。

Text …… サーバがバックグラウンドモードで機能しているかどうかを確認します。

WSConsumerAttachmentAdd …… コンシューマWebサービスプログラムが使用することにより、SOAPリクエストにアタッチメントを付加します。

WSConsumerAttachmentGet …… コンシューマWebサービスプログラムが使用することにより、SOAP応答のからアタッチメントを取り出します。

WSProviderAttachmentAdd …… WebサービスメッセージにBLOB項目を添付します。

WSProviderAttachmentGet …… Webサービスメッセージに添付されているDIME仕様のデータを取り出します。

WsSetIdentity …… 現在のコンテキストに対するIDを設定します。


関数ディレクトリ CtxClose

CtxClose

式エディタ > 関数ディレクトリ

コンテキストのクローズ

コンテキストを正常にクローズします。
コンテキストをクローズする際、エンジンが処理している全てのプログラムを終了させます。

構文：

CtxClose (コンテキストID,ウェイト)

パラメータ：

コンテキストID…コンテキストを表す数値

この値は、現在のコンテキストリストの中のコンテキスト番号か実際のコンテキストIDのどちらかです。

ウェイト … 論理値

  • True … コンテキストの処理が終了されるまで待ち状態になります。

  • False（デフォルト） … 処理は待ちになりません。

戻り値：

論理値… 処理に成功した場合「True」が返ります。

以下のような場合、処理は失敗します。

  • コンテキストが見つからないな場合

戻り値は、以下の場合にFalseのままになります。

  • [ウェイト]パラメータが「Yes」で、自身のコンテキストをクローズさせるために関数が使用された場合。

  • [ウェイト]パラメータが「Yes」で、存在しないコンテキストをクローズさせるために関数が使用された場合。

注意事項：

  • ペンディング中のコンテキストのみ削除できます。

  • RqCTxTrm関数は、CtxClose 関数と同じ仕様です。したがって、CtxClose機能を実行する前に、CtxNum関数を実行してコンテキストリストを読み込むようにしてください。

関連項目：

CtxKill


関数ディレクトリ CtxGetAllNames

CtxGetAllNames

式エディタ > 関数ディレクトリ

実行可能なコンテキストのリストを取得 アクティブになっているか実行可能な全コンテキストのリストを返します。
構文： | CtxGetAllNames()
パラメータ： | なし
戻り値： | ベクトル値 … 全てのコンテキストを含んだ文字型のベクトル値。コンテキストが指定された名前を持っている場合は、その名前が含まれます。持っていない場合は、コンテキストIDが含まれます。 Magicエンジンが[アプリケーションサーバとして動作]設定が「No」の場合、空白のベクトル値が返ります。
注意事項： | この関数は、サーバエンジンでない場合、空のベクトルデータが返ります。


関数ディレクトリ CtxGetId

CtxGetId

式エディタ > 関数ディレクトリ

コンテキストIDの取得

コンテキスト名よりコンテキストIDを取り出します。
CtxSetName関数を使用することで、コンテキストIDに対応したコンテキスト名を割り当てることができます。

構文：

CtxGetId(コンテキスト名)

パラメータ：

コンテキスト名 … コンテキストの名前を表す文字列

戻り値：

数値…コンテキストIDを表す数値

例：

CtxGetId('Dispatcher')

「Dispatcher」というコンテキスト名に対するコンテキストIDを返します。

注意事項：

  • コンテキスト名が空白の場合、現在のコンテキストのIDが返ります。

  • 指定されたコンテキスト名が見つからない場合、「0」が返ります。


関数ディレクトリ CtxGetName

CtxGetName

式エディタ > 関数ディレクトリ

現在のコンテキスト名の取得 現在のコンテキスト名を取り出します。
構文： | CtxGetName ()
パラメータ： | なし
戻り値： | 文字 … 現在のコンテキストの名前 コンテキストが、CtxSetName関数を使用して名前を設定されている場合、この名前が返ります。 コンテキストに名前が設定されていない場合、コンテキストIDが返ります。 初期のコンテキスト上でこの関数が実行された場合、「Main」のコンテキストが返ります。
注意事項： | コンテキストIDを取得する場合は、CtxGetId関数を使用してください。


関数ディレクトリ CtxKill

CtxKill

式エディタ > 関数ディレクトリ

コンテキストの中断

コンテキストテーブルに存在する任意のコンテキストを削除します。

この関数は、終了処理やDLLの呼び出しなどの一定の処理の終了を待っているアクティブなコンテキストを終了させる場合に使用します。

構文：

CtxKill (エントリ)

パラメータ：

エントリ…コンテキストテーブル上の番号か、実行中のコンテキストID

戻り値：

論理値… 処理に成功した場合「True」が返ります。

以下のような場合、処理は失敗します。

  • コンテキストが見つからないな場合

注意事項：

  • 実行中のコンテキストは、[コールUDP]処理コマンドのような同期型の外部処理を含め、現在の実行中であっても終了させることができます。

  • CtxKill関数は、指定したコンテキストの全ての実行中のスレッドを終了させます。実行中のスレッドの終了によって、データベース接続やインスタンス化されたJavaやCOMオブジェクトのようなリソースの不適切な解放処理を行ってしまう可能性があります。(突然エンジンを終了させたような状態になります。）

  • 旧バージョンからの移行を行うと、CtxKill関数は（CtxCloseにではなく）現バージョンでのCtxKil関数になります。

  • CtxKill関数を実行する前に、CtxNum関数を実行してコンテキストリストを再読込してください。

関連項目：

CtxClose


関数ディレクトリ CtxLstUse

CtxLstUse

式エディタ > 関数ディレクトリ

コンテキストの最終使用時間を取得

コンテキストテーブルに存在する任意のコンテキストが最後に有効になってからの経過時間を秒単位で返します。

構文：

CtxLstUse (エントリ)

パラメータ：

エントリ…コンテキストテーブル上の番号

この値は、現在のコンテキストリストの中のコンテキスト番号か実際のコンテキストIDのどちらかです。

戻り値：

数値

  • 0 …動作中

  • 数値…ペンディング中の場合、コンテキストが最後に有効になってからの経過時間を返します。

  • -1 …終了済

  • -2 …不正なエントリ

注意事項：

CtxLstUse関数を実行する前に、CtxNum関数を実行してコンテキストリストを再読込してください。


関数ディレクトリ CtxNum

CtxNum

式エディタ > 関数ディレクトリ

コンテキスト数を取得 アプリケーションサーバ上で有効なコンテキストの数を返します。
構文： | CtxNum( )
パラメータ： | なし
戻り値： | 数値…アプリケーションサーバ上で有効なコンテキストの数
注意事項： | 以下の関数を実行する前に、コンテキストリストを再読込するためこの関数を実行する必要があります。 CtxClose, CtxKill, CtxLstUse, CtxNum, CtxProg, CtxSize, CtxStat


関数ディレクトリ CtxProg

CtxProg

式エディタ > 関数ディレクトリ

コンテキストのプログラム名を取得 コンテキストテーブルに存在する任意のコンテキストの最上位レベルのプログラム名を返します。
構文： | CtxProg (エントリ)
パラメータ： | エントリ…コンテキストテーブル上の番号 この値は、現在のコンテキストリストの中のコンテキスト番号か実際のコンテキストIDのどちらかです。
戻り値： | 文字列…コンテキストの上位レベルのプログラムの公開名 終了済、または不正なエントリを指定した場合、空白が返ります。
注意事項： | CtxProg関数を実行する前に、CtxNum関数を実行してコンテキストリストを再読込してください。


関数ディレクトリ CtxSetName

CtxSetName

式エディタ > 関数ディレクトリ

コンテキストへの名前の指定

現在のコンテキストの名前を設定します。この名前は、コンテキストに対するログインやメッセージのポストで使用されます。

構文：

CtxSetName (名前)

パラメータ：

名前 … コンテキストの名前を表す文字列（最大、128桁）

戻り値：

論理値… 処理に成功した場合「True」が返ります。

以下の場合、処理は失敗します。

  • NULL 値が渡された時

  • 空白が渡された時

  • 指定した名前を持つコンテキストがすでに存在している場合

注意事項：

コンテキスト名は、128桁以上指定できません。


関数ディレクトリ CtxSize

CtxSize

式エディタ > 関数ディレクトリ

コンテキストのサイズを取得 コンテキストテーブルに存在する任意のコンテキストのサイズ（バイト単位）を返します。
構文： | CtxSize (エントリ)
パラメータ： | エントリ…コンテキストテーブル上の番号 この値は、現在のコンテキストリストの中のコンテキスト番号か実際のコンテキストIDのどちらかです。
戻り値： | 数値 … コンテキストのサイズ 終了済、または不正なエントリを指定した場合は、0 が返ります。
注意事項： | CtxSize関数を実行する前に、CtxNum関数を実行してコンテキストリストを再読込してください。


関数ディレクトリ CtxStat

CtxStat

式エディタ > 関数ディレクトリ

コンテキストの状態を取得

コンテキストテーブルに存在する任意のコンテキストの状態を返します。

構文：

CtxStat (エントリ)

パラメータ：

エントリ…コンテキストテーブル上の番号

この値は、現在のコンテキストリストの中のコンテキスト番号か実際のコンテキストIDのどちらかです。

戻り値：

コンテキストの状態を表す文字

  • E …動作中

  • P …ペンディング中

  • T …終了済

  • I …不正なエントリ

注意事項：

CtxStat関数を実行する前に、CtxNum関数を実行してコンテキストリストを再読込してください。


関数ディレクトリ Blob2Req

Blob2Req

式エディタ > 関数ディレクトリ

BLOB項目の内容をリクエスタに送信

指定されたBLOB項目の内容をMRBに送信します。

構文：

Blob2Req(BLOB項目)

パラメータ：

BLOB項目…送信するBLOB項目

戻り値：

論理値… 処理に成功した場合「True」が返ります。

以下のような場合、処理は失敗します。

  • BLOB項目の内容が NULL の場合

  • アプリケーションサーバが実行していない場合

例：

Blob2Req(A)：リクエスタに シンボル名「A」で表されたBLOB項目の内容が送られます。

注意事項：

  • 送信する前に、RqHTTPHeader関数を使用することでHTTPヘッダ情報を定義することができます。

  • リモートコールで起動されたプログラムで実行することで、同期型で起動した起動元のプログラムの[結果ファイル]に保存されます。

  • この関数は、リッチクライアントタスクではサポートされません。

関連項目：

File2Req


関数ディレクトリ DiscSrvr

DiscSrvr

式エディタ > 関数ディレクトリ

不必要なサーバ接続の切断

不必要なサーバ接続を開放します。

構文：

DiscSrvr (文字列)

パラメータ：

文字列 …[サーバ]テーブルで定義されたサーバ名

戻り値：

論理値… 処理に成功した場合「True」が返ります。

以下の場合、処理が失敗します。

  • 指定されたサーバが[サーバ]テーブルに存在しない場合

  • 該当サーバに接続されていなかった場合

  • Magic はそのサーバとの接続がまだ必要な状態にある場合

  • 切断処理そのものに失敗した場合


関数ディレクトリ File2Req

File2Req

式エディタ > 関数ディレクトリ

ファイルの内容をリクエスタに送信 指定されたファイルの内容をMRBに送信します。
構文： | File2Req (ファイル名)
パラメータ： | ファイル名…ファイル名（文字列）
戻り値： | 論理値… 処理に成功した場合「True」が返ります。
例： | File2Req('C:\att1.doc')
 | リクエスタに「att1.doc」というファイルが送られます。
注意事項： | リモートコールで起動されたプログラムで実行することで、同期型で起動した起動元のプログラムの[結果ファイル]に保存されます。
関連項目： | Blb2File


関数ディレクトリ RqCtxInf

RqCtxInf

式エディタ > 関数ディレクトリ

コンテキスト情報

コンテキストID に対応したコンテキストの情報を返します。

構文：

RqCtxInf(サービス/サーバ名,コンテキストID,参照用パスワード)

パラメータ：

サービス/サーバ名 … [サービス／サーバ]テーブルに定義されているサーバ／サービス名

コンテキストID … コンテキストID を表す文字列

参照用パスワード … MGRB.INIファイルに設定されたPasswordQueryパラメータで設定された、照会用パスワード

戻り値：

文字列…以下の情報が、カンマ区切りの文字列で返ります。

  • アプリケーションサーバ…このコンテキストを処理しているアプリケーションサーバのホスト名とポート番号

  • アプリケーション名…コンテキストがオープンしているアプリケーション名

  • プログラム名…コンテキストが実行しているプログラム名

例：

RqCtxInf('My Service','1324543108','MY PASS')

指定されたコンテキストの情報が以下のように返ります。

machine1/1607,My Application,My Program

注意事項：

RqCtxInf関数は、ブラウザタスクや[タスク特性]の[作成コンテキストの保持]特性が「Yes」に設定されたタスクで有効です。


関数ディレクトリ RqCtxTrm

RqCtxTrm

式エディタ > 関数ディレクトリ

コンテキストの終了 コンテキストを終了させます。コンテキストは、RqRtCtxs 関数によって取得した番号を指定します。
構文： | RqCtxTrm(サービス/サーバ名,コンテキスト番号, Supervisor パスワード)
パラメータ： | サービス/サーバ名 … [サービス／サーバ]テーブルに定義されているサーバ／サービス名 コンテキスト番号 … RqRtCtxs 関数で取得したコンテキスト番号（RqRts関数をまず呼ぶ必要があります。） Supervisor パスワード … MGRB.INIファイルに設定されたPasswordSupervisorパラメータで設定されたパスワード
戻り値： | 論理値 …処理に成功した場合「True」が返ります。
例： | RqCtxTrm('My Service',14,'MY PASS')
 | この例では、RqRtCtxs 関数で取得した 14番目のコンテキストを終了させます。


関数ディレクトリ RqExe

RqExe

式エディタ > 関数ディレクトリ

リモートエンジンのロード MRB が起動しているコンピュータにリクエストを送り、指定された実行可能エンジンをロードするように指示します。
構文： | RqExe(サービス/サーバ名,実行登録名,引数,Supervisor パスワード)
パラメータ： | サービス/サーバ名 … [サービス／サーバ]テーブルに登録されているサーバ／サービス名 実行登録名 … MGRB.INI ファイル内の[MRB EXECUTABLES LIST]または[MRB REMOTE EXECUTABLES LIST]セクションに設定された実行ファイルリストを表す文字列。 引数 … ロードする実行ファイルのオプションの引数(例：/StartApplication=MyApplication.ecf) Supervisor パスワード … MGRB.INIファイルに設定されたPasswordSupervisorパラメータで設定されたパスワード
戻り値： | 論理値… 処理に成功した場合「True」が返ります。
例： | RqExe('Default Broker','Online','/StartApplication=MyApplication.ecf','Secret')
注意事項： | MRBは、実行可能ファイルを非同期コールで起動します。このため、この関数からMRBに対するアクセスが許可され、実行可能ファイルが読み込み可能の状態になった時に、戻り値が返ります。


関数ディレクトリ RqLoad

RqLoad

式エディタ > 関数ディレクトリ

リクエスタのロード

サービスの起動に関する統計情報を提供します。

構文：

RqLoad(サービス/サーバ名,参照用パスワード)

パラメータ：

サービス/サーバ名 …[サービス／サーバ]テーブルに定義されているサーバ／サービス名

参照用パスワード … MGRB.INIファイルに設定されたPasswordQueryパラメータで設定された、照会用パスワード

戻り値：

文字列…情報がカンマで区切られた文字列で返ります。情報の種類と形式は次のとおりです。

  • 平均待ち時間…小数点以下が2 桁の浮動小数点数値

  • リクエストの合計数…数値

  • 保留/待ち行列内のリクエスト数…数値

  • 処理中のリクエスト数（実行時）…数値

  • 実行済みのリクエスト数…数値

  • 実行に失敗したリクエスト数…数値

例：

RqLoad('Default Broker','Secret')

注意事項：

サービス名が不適当な場合、処理に失敗するとともに空白の文字列が返ります。また、パスワードが参照用パスワードでない場合は、処理に失敗します。


関数ディレクトリ RqQueDel

RqQueDel

式エディタ > 関数ディレクトリ

リクエスタのキューの削除 サービスキューのエントリを削除します。
構文： | RqQueDel(サービス/サーバ名,リクエストID,Supervisor パスワード)
パラメータ： | サービス/サーバ名 … [サービス／サーバ]テーブルに定義されているサーバ／サービス名 リクエストID … キュー上のエントリを示す文字型の数値 Supervisor パスワード … MGRB.INIファイルに設定されたPasswordSupervisorパラメータで設定されたパスワード
戻り値： | 論理値… 処理に成功した場合「True」が返ります。
例： | RqQueDel('Default Service', BA ,'Secret')
 | 変数項目BA のリクエストID を使用して、削除が実行されます。
注意事項： | サービス名やリクエストID が不適当な場合、処理に失敗するとともに「False」が返ります。Supervisorパスワードを空白の文字列にした時には、現在のユーザに関連するエントリだけが削除されます。パスワードがSupervisorパスワードでなかった場合は、処理に失敗します。


関数ディレクトリ RqQueLst

RqQueLst

式エディタ > 関数ディレクトリ

リクエスタのキュー一覧を取得 キューで待機状態にあるエントリの数を取得します。
構文： | RqQueLst(サービス/サーバ名,Supervisor パスワード)
パラメータ： | サービス/サーバ名 … [サービス／サーバ]テーブルに定義されているサーバ／サービス名 Supervisor パスワード … MGRB.INIファイルに設定されたPasswordSupervisorパラメータで設定されたパスワード
戻り値： | 数値 … 指定したサービスのキューで待機状態にあるキューの数
例： | RqQueLst('Default service', 'Secret')


関数ディレクトリ RqQuePri

RqQuePri

式エディタ > 関数ディレクトリ

リクエスタのキューの優先順位 キューで待機状態にあるリクエストの優先順位を変更します。
構文： | RqQuePri(サービス/サーバ名,リクエストID,新優先順位,Supervisor パスワード)
パラメータ： | サービス/サーバ名 … サービス/サーバ名 … [サービス／サーバ]テーブルに定義されているサーバ／サービス名 リクエストID … キュー上のエントリを示す数値 新優先順位 … 新規（変更後）の優先順位を示す数値（0 ～9） Supervisor パスワード … MGRB.INIファイルに設定されたPasswordSupervisorパラメータで設定されたパスワード
戻り値： | 論理値… 処理に成功した場合「True」が返ります。
例： | RqQuePri('Default service', BA,'Secret')
 | 変数項目のリクエストID を使用して処理が行われます。このリクエストID は、[コールリモート]コマンドで返った値です。
注意事項： | サービス名やリクエストID、新優先順位が不適当な場合、処理に失敗するとともに「False」が返ります。パスワードがSupervisorパスワードでない場合は、処理に失敗します。


関数ディレクトリ RqReqInf

RqReqInf

式エディタ > 関数ディレクトリ

リクエスタのリクエストID情報

キューまたはMRB の履歴ログから作られるリストによって、リクエストID 情報を取得します。この関数を呼ぶ前に、RqQueLst またはRqReqLst が呼ばれている必要があります。

構文：

RqReqInf(サービス/サーバ名,登録番号)

パラメータ：

サービス/サーバ名 … [サービス／サーバ]テーブルに定義されているサーバ／サービス名

登録番号 … キューのエントリを示す数値。この値は、1から、RqQueLstかRqReqLstのどちらかが返すエントリ数までにする必要があります。

戻り値：

文字列…カンマで区切られた、以下の情報が返ります。

  • アプリケーション名…リクエストに関連するアプリケーションの名前

  • プログラム名…実行されるプログラムの公開プログラム名

  • ユーザ名…アプリケーションにアクセスを行うユーザの名前

  • 優先順位…実行の優先順位

  • 送信ホスト…リクエストの送り先のホスト

  • PID …リクエストを提出したクライアントのプロセスID

  • 送信時刻…要求が送られた時の時刻（HH:MM:SS）

  • 実行経過時間…リクエストが実行された秒数

  • リクエストID …リクエストにつけられたリクエストID

  • ステータス…リクエストのステータス

1…待機

2…実行中

3…実行完了

4…失敗

5…クリア

  • リクエスタ戻り値…実行時の戻り値

  • エンジン戻り値…実行時の戻り値

  • DBMS 戻り値…実行時の戻り値（例えば、エラー発生の際の戻りコード）

  • 実行エンジンのアドレスとポート番号

例：

RqReqInf (Default service, C)

変数項目「C」にRqReqLst 関数の実行によって取得されたキューの数を基にエントリ番号を設定することで、RqReqLst 関数が実行させることができます。

注意事項：

  • この関数の前に呼ばれたRqQueLst またはRqReqLstでのSupervisorパスワードのパラメータ設定が空の場合、現在のユーザによって発行されたリクエストに関する情報のみが返されます。

  • サービス/サーバ名、エントリ番号、Supervisorパスワードが不正な場合、何も返されません。


関数ディレクトリ RqReqLst

RqReqLst

式エディタ > 関数ディレクトリ

リクエスタのリクエストエントリ数 MRBのログ情報から、リクエストID の範囲により指定されるリクエストエントリの数を返します。
構文： | RqReqLst(サービス/サーバ名,最小リクエストID,最大リクエストID,Supervisorパスワード)
パラメータ： | サービス/サーバ名 …[サービス／サーバ]テーブルに登録されているサーバ／サービス名 最小リクエストID …リクエストID の最小値 最大リクエストID …リクエストID の最大値 Supervisor パスワード … MGRB.INIファイルに設定されたPasswordSupervisorパラメータで設定されたパスワード
戻り値： | 数値 … 指定した範囲に該当するリクエストエントリの数
例： | RqReqLst('Web Server', BA, BB, 'Secret')
注意事項： | パスワードを空白の文字列にした時には、現在のユーザによって発行されたリクエストに関する情報だけが表示されます。サービス/サーバ名、最小リクエストID、最大リクエストID、Supervisorパスワードのいずれかが不適当だった場合、空白の文字列が返ります。


関数ディレクトリ RqRtApp

RqRtApp

式エディタ > 関数ディレクトリ

リクエスタ対応アプリケーションの情報

MRB に登録された１つまたは複数の実行エンジンがサポートする、ある１つのアプリケーションに関する情報を返します。

構文：

RqRtApp(サービス/サーバ名,アプリケーション番号)

パラメータ：

サービス/サーバ名 … [サービス／サーバ]テーブルに定義されているサーバ／サービス名

アプリケーション番号 …アプリケーションの内部番号を示す数値。ここで指定するアプリケーションは、RqRtApps 関数で検索したもののいずれかでなければなりません（したがって、この関数は、RqRtApps 関数の後で使用します）。

戻り値：

文字列 … カンマで区切られた、以下の文字列情報が返ります。

  • アプリケーション名…アプリケーションの名前。全てのアプリケーションを要求した場合（RqRtApps 関数で、[実行エンジン番号]パラメータを「0」にした場合）、次の情報も返ります。

  • ホスト名…実行エンジンが起動されるホストの名前

  • ポート番号…実行エンジンのチェック対象となるポートの番号

例：

RqRtApp('Default Broker', BD)

数値型の変数項目BD に格納されているアプリケーション番号を使用して処理が行われます。このアプリケーション番号は、RqRtApps 関数の実行により与えられます（アプリケーション番号は、RqRtApps関数で指定した実行エンジン番号によって異なってきます）。また、アプリケーション番号は、RqRts 関数を実行した時にも返ります。


関数ディレクトリ RqRtApps

RqRtApps

式エディタ > 関数ディレクトリ

リクエスタのアプリケーション数 MRB と接続している実行エンジンがサポートしているアプリケーションの数を返します。
構文： | RqRtApps(サービス/サーバ名、実行エンジン番号、Supervisorパスワード)
パラメータ： | サービス/サーバ名 … [サービス／サーバ]テーブルに定義されているサーバ／サービス名 実行エンジン番号 … 0 でない場合は、該当サービスに関連した全ての実行エンジンの内部番号を示す数値。ここで指定する実行エンジンは、RqRts 関数で検索したもののいずれかでなければなりません（したがって、この関数は、RqRts 関数の後で呼び出さなければなりません）。 Supervisor パスワード … MGRB.INIファイルに設定されたPasswordSupervisorパラメータで設定されたパスワード
戻り値： | 数値 … 指定したサービスの実行エンジンでサポートされているアプリケーションの数
例： | RqRtApps('Default Broker',BA,'')
 | 変数項目BA に格納されている実行エンジン番号を使用して、その実行エンジンでサポートされているアプリケーションの数が取り出されます。この実行エンジン番号は、RqRts 関数で返ったものです。
注意事項： | 不正なパラメータ値が与えられた時は、戻り値として0 が戻ります。


関数ディレクトリ RqRtBlock

RqRtBlock

式エディタ > 関数ディレクトリ

リクエストの受付をブロックします。

サーバによって発行された内部/外部リクエスト（同期か非同期に関わらず）がサーバに到達することを防ぎます。サーバがMRBと全く接続しなかったかのように、リクエストは処理されます。例えば、各リクエストのブローカータイムに基づいて待ち続けます。

構文：

RqRtBlock (サーバ/サービス名, 実行エンジン番号, Supervisor パスワード, 全て)

パラメータ：

サーバ/サービス名 … [サービス／サーバ]テーブルに定義されているサーバ／サービス名。サービス名が指定された場合、そのサービスに対応するサーバからのリクエストがブロックされます。

エントリ番号 … 実行エンジンの内部番号を示す数値。ここで指定する実行エンジンは、RqRts関数で検索したもののいずれかでなければなりません（したがって、この関数は、RqRts 関数の後で呼び出さなければなりません）。

  • この値を「0」に設定した場合、全ての実行エンジンがブロックされます。

  • この値を「-1」に設定した場合、現在のエンジンがブロックされます。

Supervisor パスワード …MGRB.INIファイルに設定されたPasswordSupervisorパラメータで設定されたパスワード

全て … 論理値

  • True … 全てのリクエストがブロックされます。

  • False …外部のリクエストのみブロックされます。

戻り値：

論理値 … アプリケーションサーバがブロックされたり、必要な状態の場合は「True」が返ります。ブロックできなかった場合は「False」が返ります。
アプリケーションサーバが以下の状態でない場合、この関数は失敗します。

  • AVAIL Idle

  • AVAIL Running

  • BUSY Request

  • BLOCKED

  • BLOCKED external

サービス名やエンジン番号が正しくない場合は、この関数は失敗します。また、Supervisorパスワードが正しくない場合も失敗します。

例：

RqRtBlock ('Default Broker', BA, 'Secret', 'FALSE'LOG)

変数項目「BA」には、エンジン番号が一時的に保存されているものとします。この番号は、RqRts関数で取得します。

注意事項:

特に、アプリケーションサーバから「I am alive」メッセージが送られなかったり、アプリケーションサーバが開発モードに切り替わったりするような場合でなければ、ブロックされたアプリケーションサーバは、RqRtResume関数によってロック状態が解除されます。


関数ディレクトリ RqRtCtx

RqRtCtx

式エディタ > 関数ディレクトリ

コンテキスト情報

指定されたサービス／サーバ名の指定したコンテキストの情報を返します。RqRtCtxs 関数を事前に実行する必要があります。

構文：

RqRtCtx(サービス/サーバ名, コンテキスト番号)

パラメータ：

サービス/サーバ名 … [サービス／サーバ]テーブルに定義されているサーバ／サービス名

コンテキスト番号 … RqRtCtxs 関数で取得したコンテキスト番号、RqRts関数をまず呼ぶ必要があります。

戻り値：

文字列 … 以下の情報が、カンマ区切りで返ります。

  • コンテキストID…コンテキストのID

  • リクエストID…このコンテキスト内で有効なリクエストのID

  • プログラム名…このコンテキストでオープンされたプログラムの名前

  • ユーザ名…このコンテキスト内でシステムにログインしたユーザ名

  • ステータス…コンテキストの状態

  • E…実行中

  • P …ペンディング（イベント待ち状態）

  • T… 終了

  • 最終使用経過時間…コンテキストが最後に実行してからの経過時間（HH:MM:SS の書式）

例：

RqRtCtx('My Service',14)

サービス'My Service'を使用している 14番目のコンテキストの情報が以下のように返ります。

1324543108,128,Customer Entry,George,E,00:00:00

注意事項：

  • リクエストID は、コンテキストが実行中のみ有効です。他の状態では、0 になります。

例：2314672146,0,Customer Entry,George,P,00:13:47

  • ブラウザタスクに対するリクエストのみ全ての値が正しく返ります。それ以外の場合は、プログラム名が「Internal」、最終使用経過時間は「00:00:00」になります。


関数ディレクトリ RqRtCtxs

RqRtCtxs

式エディタ > 関数ディレクトリ

コンテキスト情報の読込

アプリケーションサーバのオープンされた全てのコンテキストの情報をロードします。これらのコンテキストの総数を返します。RqRtCtxs 関数 は、RqRtCtx 関数がコンテキストを取得する前に実行する必要があります。

構文：

RqRtCtxs(サービス/サーバ名, 実行エンジン番号)

パラメータ：

サービス/サーバ名 … [サービス／サーバ]テーブルに定義されているサーバ／サービス名

実行エンジン番号 … 指定したサービスに対応した全ての実行エンジンのうちのどれかの番号、 RqRts関数をまず呼ぶ必要があります。

戻り値：

数値…コンテキストの総数

例：

RqRtCtxs('My Service',3)

サービス 'My Service' を実行している エンジン番号 3 によってオープンされた全てのコンテキスト情報がロードされ、エンジンによってオープンされたコンテキストの総数が返ります。

注意事項：

  • 各RqRtCtxs関数の動作によって、関数の以前の動作の内容がクリアされます。

  • この関数は、マルチスレッドで動作しているアプリケーション有効です。


関数ディレクトリ RqRtInf

RqRtInf

式エディタ > 関数ディレクトリ

リクエスタの実行エンジンに関する情報

実行エンジンに関する情報が返ります。

構文：

RqRtInf(サービス/サーバ名,実行エンジン番号)

パラメータ：

サービス/サーバ名 … [サービス／サーバ]テーブルに登録されているサーバ／サービス名

実行エンジン番号 … 実行エンジンの内部番号を示す数値。ここで指定する実行エンジンは、RqRts 関数で検索したもののいずれかでなければなりません（したがって、この関数は、RqRts 関数の後で呼び出さなければなりません）。

戻り値：

文字列…カンマで区切られた、以下の情報が返ります。

  • ホスト名…実行エンジンが起動されるホストの名前

  • ポート番号…実行エンジンのチェック対象となるポートの番号

  • IP アドレス…nnn.nnn.nnn.nnn の形式でアドレスが返ります。

  • プロセスID …ホスト上の実行エンジンのプロセスID

  • ステータス…値と内容は次の通りです。

  • 1…実行可能（アイドル状態）

  • 2…実行可能（実行中）

  • 3…実行不可（リクエスト処理中）

  • 4…実行不可（開発モード）

  • 5…応答なし

  • 6…クラッシュした

  • 7…参照のみ

  • 8…ライセンス制限を超えた

  • 9…接続障害

  • 14…シャットダウン中

  • 15…待ち状態（[コールリモート]または[コールDLL]などの処理コマンド実行時に制御が返る間のクライアントの待ち状態）

  • 16…ブロックされている（エンジンに対するすべてのリクエストがブロックされています）

  • 17…外部リクエストをブロックしている（外部のリクエストのみブロックされています - エンジン自身からのリクエストは受け付ける状態です）

  • アプリケーション名…オープンされたアプリケーション名

  • 実行スレッド数…現在実行中のスレッド数。リッチクライアントの場合は、ユーザ数が返ります。

  • 最大スレッド数…現在までにオープンされたスレッド数の最大値。リッチクライアントの場合は、ユーザ数が返ります。

  • 利用可スレッド数…使用可能な最大スレッド数。リッチクライアントの場合は、ユーザ数が返ります。
    動作環境で｢0｣ と設定されている場合、ライセンスの内容に基づいた最大利用可能数を返します。

  • 平均リクエスト時間…リクエストがアプリケーションサーバによって処理された平均時間（秒数）。

  • 処理リクエスト数…処理されたリクエストの数

例：

RqRtInf('Data Server',BA)

変数項目BA に格納されている実行エンジン番号を使用して、その実行エンジンに関する情報が取り出されます。この実行エンジン番号は、RqRts 関数で返ったものです。

注意事項：

サービス名や実行エンジン番号が無効の場合、空白の文字列が返ります。


関数ディレクトリ RqRtResume

RqRtResume

式エディタ > 関数ディレクトリ

リクエストのブロックを解除

サーバまたはサービスのリクエスト処理を受け付けるようにします。

構文：

RqRtResume (サーバ/サービス名, 実行エンジン番号, Supervisor パスワード)

パラメータ：

サーバ/サービス名 … [サービス／サーバ]テーブルに定義されているサーバ／サービス名。サービス名が指定された場合、そのサービスに対応するサーバからのリクエストがブロックされます。

エントリ番号 … 実行エンジンの内部番号を示す数値。ここで指定する実行エンジンは、RqRts関数で検索したもののいずれかでなければなりません（したがって、この関数は、RqRts 関数の後で呼び出さなければなりません）。

  • この値を「0」に設定した場合、全ての実行エンジンが解除されます。

  • この値を「-1」に設定した場合、現在のエンジンが解除されます。

Supervisor パスワード …MGRB.INIファイルに設定されたPasswordSupervisorパラメータで設定されたパスワード

戻り値：

論理値 … アプリケーションサーバのブロックが解除されたり、必要な状態の場合は「True」が返ります。解除できなかった場合は「False」が返ります。

サービス名やエンジン番号が正しくない場合は、この関数は失敗します。また、Supervisorパスワードが正しくない場合も失敗します。

例：

RqRtResume ('Default Broker', BA, 'Secret')

変数項目「BA」には、エンジン番号が一時的に保存されているものとします。この番号は、RqRts関数で取得します。

関連項目：

RqRtBlock


関数ディレクトリ RqRts

RqRts

式エディタ > 関数ディレクトリ

リクエスタの実行エンジン数 MRB による実行エンジンの数を返します。
構文： | RqRts (サービス/サーバ名,Supervisorパスワード)
パラメータ： | サービス/サーバ名 … [サービス／サーバ]テーブルに登録されているサーバ／サービス名 Supervisor パスワード … MGRB.INIファイルに設定されたPasswordSupervisorパラメータで設定されたパスワード
戻り値： | 数値 … 指定したサービスに登録されている実行エンジンの数。サービスを指定しなかった時には、MRBに登録されている実行エンジンの合計数が返ります。
例： | RqRts('Data Server', 'Secret')


関数ディレクトリ RqRtTrm

RqRtTrm

式エディタ > 関数ディレクトリ

実行エンジンを終了 実行エンジンを終了します。同一MRBが管理する全ての実行エンジンを終了させることもできます。
構文： | RqRtTrm(サービス/サーバ名,実行エンジン番号,Supervisorパスワード)
パラメータ： | サービス/サーバ名 … [サービス／サーバ]テーブルに登録されているサーバ／サービス名 実行エンジン番号 … 実行エンジンの内部番号を示す数値。ここで指定する実行エンジンは、RqRts 関数で返ったもののいずれかでなければなりません。「0」を指定すると、全ての実行エンジンが終了します。 Supervisor パスワード … MGRB.INIファイルに設定されたPasswordSupervisorパラメータで設定されたパスワード
戻り値： | 論理値… 処理に成功した場合「True」が返ります。
例： | RqRtTrm('Default Broker',BA,'Secret')
 | 数値型の変数項目BA に格納されている実行エンジン番号を使用して処理が行われます。この実行エンジン番号は、RqRts 関数で返った値です。
注意事項： | サービス名や実行エンジン番号が無効な場合、処理に失敗し「False」が返ります。また、パスワードがSupervisorパスワードでない場合も、処理に失敗します。
関連項目： | RqRtTrmEx


関数ディレクトリ RqRtTrmEx

RqRtTrmEx

式エディタ > 関数ディレクトリ

アプリケーションサーバを終了 指定したアプリケーションサーバエンジンを時間を指定して終了させます。
構文： | RqRtTrmEx(サービス名, エントリ番号, Supervisorパスワード, タイムアウト)
パラメータ： | サービス名 … [サービス]テーブルに定義されているサービス名 エントリ番号 …RqRts関数の戻り値として取得された実行エンジンの番号。「0」 の場合は、全てのエンジンが終了します。 Supervisor パスワード … MGRB.INIファイルに設定されたPasswordSupervisorパラメータで設定されたパスワード タイムアウト … サーバエンジンが終了するまでの秒数
戻り値： | 論理値 … 処理に成功した場合「True」が返ります。
例： | RqRtTrmEx('Data Server', BA, 'Secret', 900)
 | 変数'BA'VAR で指定された番号のエンジンを 900秒後に終了させます。この番号は、RqRts関数の実行結果より取得します。
注意事項： | サービス名やエンジン番号が正しくない場合は、処理が失敗します。パスワードがSupervisorパスワードでない場合も失敗します。タイムアウト値が設定されていなかったり正しい値でない場合、デフォルト値「0」と見なされます。
関連項目： | RqRtTrm


関数ディレクトリ RqStat

RqStat

式エディタ > 関数ディレクトリ

リクエストの状態

特定のリクエストのステータスを返します。

構文：

RqStat (サービス/サーバ名,リクエストID,Supervisorパスワード)

パラメータ：

サービス/サーバ名 … [サービス／サーバ]テーブルに定義されているサーバ／サービス名

リクエストID … [コールリモート]処理コマンドによって返されたリクエストID

Supervisor パスワード … MGRB.INIファイルに設定されたPasswordSupervisorパラメータで設定されたパスワード

戻り値：

リクエストのステータスを表す数値

  • 0 …検出不可

  • 1 …待機中

  • 2 …実行中

  • 3 …完了

  • 4 …失敗

  • 5 …クリア


関数ディレクトリ RqTrmTimeout

RqTrmTimeout

式エディタ > 関数ディレクトリ

サーバ終了時間 サーバ終了までの残りの時間を返します。
構文： | RqTrmTimeout()
パラメータ： | なし
戻り値： | 数値 … サーバ終了までの残りの時間を秒数で返します。サーバが終了しない場合は、「0」が返ります。
例： | サーバエンジンが終了するまで残り30秒の場合、「30」が返ります。


関数ディレクトリ RTrim

RTrim

式エディタ > 関数ディレクトリ

文字列の右側にある空白を削除 文字列の右側の空白を削除します。
構文： | RTrim(文字列)
パラメータ： | 文字列 … 空白の削除を行う文字列
戻り値： | 空白の削除後の文字列
例： | Rtrim('John')
 | 'John'が返ります。
関連項目： | LTrim, Trim


関数ディレクトリ SharedValGet

SharedValGet

式エディタ > 関数ディレクトリ

共有値の取得 指定された名前に基づいて共有された値を返します。共有値は、Magicのメモリ上に格納されます。一度作成されると、この値は全てのコンテキストで参照することができます。
構文： | SharedValGet(名前)
パラメータ： | 名前 … 共有値の名前
戻り値： | 定義された名前によって共有された値を返します。 戻り値の型は、SharedValueSet 関数によって設定された値の型によって決まります。共有値が存在しない場合は、NULL 値を返します。
例： | SharedValGet('RATIO')
 | 共有値名'RATIO'を基に値を返します。
関連項目： | SharedValSet,SharedValPack,SharedValUnpack


関数ディレクトリ SharedValSet

SharedValSet

式エディタ > 関数ディレクトリ

共有値の作成 Magicのメモリ上に格納される共有値を作成します。一度作成されると、この値は全てのコンテキストで参照することができます。
構文： | SharedValSet(名前, 値)
パラメータ： | 名前 … 共有値の名前 値 … 設定する値
戻り値： | 論理値 … 常に「True」 が返ります。
例： | SharedValSet('RATIO', 0.34)
 | 'RATIO' という名前で共有できる 数値 0.34 を作成します。
注意事項： | 共有値は、共有名を基に SharedValGet 関数で取得できます。
関連項目： | SharedValGet,SharedValPack,SharedValUnpack


関数ディレクトリ Text

Text

式エディタ > 関数ディレクトリ

バックグラウンドモードの確認

Magic をクライアント/サーバ環境で使用している場合、サーバがバックグラウンドモード（ユーザインタフェースなし）で機能しているかどうかを確認できます。

構文：

Text()

パラメータ：

なし

戻り値：

論理値

  • True …バックグラウンドモードの場合

  • False …バックグラウンドモードでない場合


関数ディレクトリ THIS

THIS

式エディタ > 関数ディレクトリ

イベントが発生したデータ項目のシンボル名またはタスクの階層 イベントが発生したデータ項目のインデックスまたはタスクの階層が返ります。この関数は独自で使用せず、下記に挙げるデータ項目関連の関数またはタスク世代関連の関数の引数として使用されます。 発生したイベントは、上位レベルタスクのハンドラが処理できます。この場合、ハンドラのタスクレベルより下のデータビューと実行ツリーは使用できません。 データ項目関連の関数（VarAttr、VarCurr、VarMod、VarName、VarPrev、VarSet）では、この関数の戻り値は、イベントが発生したデータ項目のインデックスを表します。 世代関連の関数（CHeight、CLeft、CLeftMDI、Counter、CTop、CTopMDI、CWidth、DbCache、EOF、EOP、LastPark、Level、Line、Page、Stat、ViewMod、WINBox、WINHWND）では、この関数の戻り値は、イベントが発生したタスクの階層の位置を表します。
構文： | THIS()
パラメータ： | なし
戻り値： | イベントが発生したデータ項目のインデックスまたはタスクの階層
例： | VarCurr(THIS())
 | イベントが発生した項目の値が返ります。
 | Stat(THIS(),'C'MODE)
 | イベントが発生したタスクが登録モードの時「True」が返ります。
関連項目： | この関数は、上記に挙げられていない関数には適用できません。単独で使用することもできません。その他の算術関数や変換関数をこの関数の後に続けることもできません。


関数ディレクトリ WSConsumerAttachmentAdd

WSConsumerAttachmentAdd

式エディタ > 関数ディレクトリ

WebサービスにBLOB項目を添付 [コールWebサービス]処理コマンドが実行される場合、WSDL内に定義されていないSOAP添付ファイルを送信します。 コンシューマWebサービスプログラムは、この関数を使用してSOAPレスポンスに添付処理を行ないます。BLOB項目の内容を添付します。
構文： | WSConsumerAttachmentAdd (添付項目)
パラメータ： | 添付項目 …メッセージに添付するBLOB項目
戻り値： | 文字列 …添付の際に自動的に作成されるUUID(Universally Unique IDentifier )値。これは、返されるXMLドキュメントの中を参照する場合に使用できます。 添付したBLOBデータが空か、プロバイダが実行されていない場合はNULLが返ります。
例： | WSConsumerAttachmentAdd(A)
 | 「A」はBLOB項目です。XMLメッセージ内に送られた時のUUIDが返されます。
注意事項： | [コールWebサービス]処理コマンドが実行される場合、Webサービスを呼び出す前に、全ての添付内容が追加れます。送信される添付内容は、Webサービスを呼び出した後に自動的にメモリから削除されます。


関数ディレクトリ WSConsumerAttachmentGet

WSConsumerAttachmentGet

式エディタ > 関数ディレクトリ

SOAPレスポンスから添付内容を取り出します。

この関数は、[コールWebサービス]処理コマンドによって受信したSOAPレスポンス内の添付にアクセスする場合に使用します。

この関数は、WSDLに定義されていないSOAP添付を処理する場合に使用します。

構文：

WSConsumerAttachmentGet (ID)

パラメータ：

ID …次のどちらかのタイプの値を指定してください。

  • UUID…DIME添付を識別するユニークな英数字。場合によっては、送信側はUDDIをXMLメッセージの中に追加することもできます。

  • インデクス（数値）…Magicが添付ファイルを取り出す際のインデックス値。1から始まるインデックス値に基づいて取り出します。

戻り値：

添付ファイルが含まれたBLOB値

指定されたUUIDやインデックスに該当する添付ファイルが見つからない場合、NULLが返ります。

プロバイダが実行していない場合もNULLが返ります。

例：

WSConsumerAttachmentGet(1)

メッセージ中の最初の添付ファイルを返します。

WSConsumerAttachmentGet('F2DA3C9C-74D3-4A46-B925-B150D62D9483')

指定したUUIDに基づいて 添付ファイルを返します。

注意事項：

  • 実行中に、以下の構文を使用することで、プロバイダプログラム間で受信メッセージの添付ファイルを取得できます。

WSConsumerAttachmentGet(UUID)／WSConsumerAttachmentGet(インデックス）

  • インデックスの場合、DIMEメッセージ内に添付されている順に取り出されます。

  • プロバイダプログラムの[タスク後]の実行後に、添付内容はメモリから削除されます。


関数ディレクトリ WSProviderAttachmentAdd

WSProviderAttachmentAdd

式エディタ > 関数ディレクトリ

WebサービスにBLOB項目を添付

Web サービス(WS) DIME は、XMLドキュメントの中にバイナリデータ（ビデオ、グラフィック、サウンド）を埋め込むための書式です。

プロバイダ用のWebサービスプログラムは、この関数を使用してSOAPレスポンスに添付処理を行ないます。BLOB項目の内容を添付します。

構文：

WSProviderAttachmentAdd (添付項目)

パラメータ：

添付項目 …メッセージに添付するBLOB項目

戻り値：

文字列 …添付の際に自動的に作成されるUUID(Universally Unique IDentifier )値。これは、返されるXMLドキュメントの中を参照する場合に使用できます。
添付したBLOBデータが空か、Magicエンジンがプロバイダとして実行されていない場合はNULLが返ります。

例：

WSProviderAttachmentAdd (A)

「A」はBLOB項目です。XMLメッセージ内に送られた時のUUIDが返されます。

注意事項：

  • Webサービスのプロバイダプログラムの[タスク後]の実行後に、添付内容はメモリから削除されます。

  • この関数は、リッチクライアントタスクではサポートされません。


関数ディレクトリ WSProviderAttachmentGet

WSProviderAttachmentGet

式エディタ > 関数ディレクトリ

Webサービスメッセージの添付ファイル

Webサービスメッセージに添付されているDIME仕様のデータが返ります。

プロバイダ用Webサービスプログラムは、SOAPリクエストから添付内容を取り出します。

構文：

WSProviderAttachmentGet (ID)

パラメータ：

ID…次のどちらかのタイプの値を指定してください。

  • UUID…DIME添付を識別するユニークな英数字。場合によっては、送信側はUUIDIをXMLメッセージの中に追加することもできます。

  • インデックス（数値）…Magicが添付ファイルを取り出す際のインデックス値。1から始まるインデックス値に基づいて取り出されます。

戻り値：

添付ファイルが含まれたBLOB値

指定されたUUIDやインデックスに該当する添付ファイルが見つからない場合、NULLが返ります。

プロバイダとして実行していない場合もNULLが返ります。

例：

WSProviderAttachmentGet (1)

メッセージ中の最初の添付ファイルを返します。

WSProviderAttachmentGet ('F2DA3C9C-74D3-4A46-B925-B150D62D9483')

指定したUUIDに基づいて 添付ファイルを返します。

注意事項：

  • 実行中に、以下の構文を使用することで、プロバイダプログラム間で受信メッセージの添付ファイルを取得できます。

WSProviderAttachmentGet (UUID)／WSProviderAttachmentGet (インデックス）

  • インデックスの場合、DIMEメッセージ内に添付されている順に取り出されます。

  • プロバイダプログラムの[タスク後]の実行後に、添付内容はメモリから削除されます。

  • この関数は、リッチクライアントタスクではサポートされません。


関数ディレクトリ WsSetIdentity

WsSetIdentity

式エディタ > 関数ディレクトリ

現在のコンテキスト用にIDを設定します。 SOAPサービスのセキュリティレベルが「Transport」か「WS-Security」に設定されている場合、IDは[コールWebサービス]処理コマンドによって使用されます。
構文： | WsSetIdentity (ID, パスワード)
パラメータ： | ID(文字) … [コールWebサービス]処理コマンドで指定されるユーザID パスワード(文字) … [コールWebサービス]処理コマンドで指定されるパスワード
戻り値： | 文字列 … コンテキストに設定される前のID
例： | 変数項目 A 文字型 30 項目更新 A WsSetIdentity ('ws-user-1’,'ws-user-pass’) … 外部コール Webサービス
注意事項： | （この関数を呼び出す前の）初期のIDは、MagicにログインされたユーザIDかリクエストによって渡されたユーザIDです。


関数ディレクトリ インタフェース関数

インタフェース関数

式エディタ > 関数ディレクトリ

CHeight …… 指定したコントロール、またはカーソルが最後にパークしたコントロールの高さを返します。

CLeft …… 指定したコントロール、またはカーソルが最後にパークしたコントロールのフォーム内でのX 座標値を返します。

CLeftMDI …… 指定したコントロール、またはカーソルが最後にパークしたコントロールの、Magic MDI 基準でのX 座標値を返します。

ClickCX …… 最後にクリックしたコントロールのクリック位置（X 座標）をコントロール上の座標で返します。

ClickCY …… 最後にクリックしたコントロールのクリック位置（Y 座標）をコントロール上の座標で返します。

ClickWX …… 最後にクリックしたウィンドウ（フォーム）のクリック位置（X 座標）を返します。

ClickWY …… 最後にクリックしたウィンドウ（フォーム）のクリック位置（Y 座標）を返します。

CTop …… 指定したコントロール、または最後にパークしていたコントロールの、フォーム基準のY 座標値を返します。

CTopMDI …… 指定したコントロール、または最後にパークしていたコントロールの、MAGIC MDI 基準のY 座標値を返します。

CtrlGoto …… カーソルを指定したコントロールに移動します。

CtrlHWND …… コントロールのウィンドウハンドル値を返します。

CurRow …… [テーブル]コントロール上での現在の行番号を返します。

CWidth …… 指定したコントロールまたはカーソルが最後にパークしたコントロールの幅の値を返します。

FormStateClear …… フォームの永続状態をクリアにします。

HitZOrdr …… コントロールのZ オーダ値を返します。

LastClicked …… 最後にクリックされたコントロールの名前を返します。

LastPark …… 指定タスクのフォーム内で、最後にカーソルがパークしていたコントロール名を返します。

SetCrsr …… カーソル形状を変更します。

SplitterOffset …… 現在の分割オフセット値または、分法単位を返します。

StatusBarSetText …… ステータスバーの文字列を返します。

TreeNodeGoto …… 指定されたツリーノードにパークします。

WinBox …… ウィンドウのX 座標、Y 座標、幅、高さを返します。

WinMaximize …… Magic のウィンドウを最大表示します。

WinMinimize …… Magic のウィンドウをアイコン化します。

WinRestore …… Magicのウィンドウを通常のサイズに戻します。

WinHWND …… Magic のウィンドウに対応するWindows のウィンドウハンドル（HWND ）を返します。


関数ディレクトリ CHeight

CHeight

式エディタ > 関数ディレクトリ

コントロールの高さを取得

指定したコントロール、またはカーソルが最後にパークしたコントロールの高さを返します。

構文：

CHeight(コントロール名,世代番号)

パラメータ：

コントロール名…指定するコントロールの名前。NULL文字列('')を指定した場合、カーソルが最後にパークしているコントロールが対象となります。

世代番号…タスクツリー表示における、タスクの階層的位置を示す数値です。例えば、「0」0 はそのタスク自身であり、「1」 はすぐ上位の親タスクを意味します。

戻り値：

数値…フォームの寸法単位での値

注意事項：

  • パーク可能コントロールだけが有効な値を返します。パーク可能コントロールとは、データを持つコントロールやアクションを返すコントロールのことで、具体的には次のものがあります。

  • チェックボックス，コンボボックス，エディット，イメージ，リストボックス，OLE，プッシュボタン，ラジオボタン，リッチエディット，スライダ，タブ


関数ディレクトリ CLeft

CLeft

式エディタ > 関数ディレクトリ

コントロールのフォーム内左位置（X 座標）を取得

指定したコントロール、またはカーソルが最後にパークしたコントロールのフォーム内でのX 座標値を返します。

構文：

CLeft(コントロール名,世代番号)

パラメータ：

コントロール名…指定するコントロールの名前。ヌル文字列（''）を指定した場合、カーソルが最後にパークしているコントロールが対象となります。

世代番号…タスクツリー表示における、タスクの階層的位置を示す数値です。例えば、0 はそのタスク自身であり、1 はすぐ上位の親タスクを意味します。

戻り値：

フォームの寸法単位での値

注意事項：

  • パーク可能コントロールだけが有効な値を返します。パーク可能コントロールとは、データを持つコントロールやイベントを返すコントロールのことで、具体的には次のものがあります。

  • チェックボックス，コンボボックス，エディット，イメージ，リストボックス，OLE，プッシュボタン，ラジオボタン，リッチエディット，スライダ，タブ


関数ディレクトリ CLeftMDI

CLeftMDI

式エディタ > 関数ディレクトリ

コントロールの左辺位置（Magic MDI 基準でのX 座標値）を取得

指定したコントロール、またはカーソルが最後にパークしたコントロールの、Magic MDI 基準でのX 座標値を返します。

構文：

CLeftMDI(コントロール名,世代番号)

パラメータ：

コントロール名…指定するコントロールの名前。ヌル文字列（''）を指定した場合、カーソルが最後にパークしているコントロールが対象となります。

世代番号…タスクツリー表示における、タスクの階層的位置を示す数値です。例えば、0 はそのタスク自身であり、1 はすぐ上位の親タスクを意味します。

戻り値：

フォームの寸法単位での値

注意事項：

  • パーク可能コントロールだけが有効な値を返します。パーク可能コントロールとは、データを持つコントロールやアクションを返すコントロールのことで、具体的には次のものがあります。

  • チェックボックス，コンボボックス，エディット，イメージ，リストボックス，OLE，プッシュボタン，ラジオボタン，リッチエディット，スライダ，タブ


関数ディレクトリ ClickCX

ClickCX

式エディタ > 関数ディレクトリ

コントロール内のクリック位置（X 座標）を取得 最後にクリックしたコントロールのクリック位置（X 座標）をコントロール上の座標で返します。
構文： | ClickCX()
パラメータ： | なし
戻り値： | 数値
 | コントロール上の座標は、コントロールの左上の座標が（0,0）となり、右下の座標が（水平精度×幅、垂直精度×高さ）となります。 「水平精度」、「垂直精度」はそれぞれ[フォーム特性]ダイアログの[水平精度]欄、[垂直精度]欄の値を示し、「幅」、「高さ」、はそれぞれ[コントロール特性]ダイアログの[幅]欄、[高さ]欄の値を示します。
関連項目： | ClickCY, ClickWX, ClickWY
注意事項： | タブコントロールではレイヤ番号を返します。


関数ディレクトリ ClickCY

ClickCY

式エディタ > 関数ディレクトリ

コントロール内のクリック位置（Y 座標）を取得 最後にクリックしたコントロールのクリック位置（Y 座標）をコントロール上の座標で返します。
構文： | ClickCY()
パラメータ： | なし
戻り値： | 数値
 | コントロール上の座標は、コントロールの左上の座標が（0,0）となり、右下の座標が（水平精度×幅、垂直精度×高さ）となります。 「水平精度」、「垂直精度」はそれぞれ[フォーム特性]ダイアログの[水平精度]欄、[垂直精度]欄の値を示し、「幅」、「高さ」、はそれぞれ[コントロール特性]ダイアログの[幅]欄、[高さ]欄の値を示します。
注意事項： | タブコントロールでは（-1）を返します。
関連項目： | ClickCX, ClickWX, ClickWY


関数ディレクトリ ClickWX

ClickWX

式エディタ > 関数ディレクトリ

ウィンドウ内のクリック位置（X 座標）を取得 最後にクリックしたウィンドウ（フォーム）のクリック位置（X 座標）を返します。
構文： | ClickWX()
パラメータ： | なし
戻り値： | 数値
 | 正確には、ウィンドウ内に表示されているフォームのクリック位置（座標）が返されます。
関連項目： | ClickCX, ClickCY, ClickWY


関数ディレクトリ ClickWY

ClickWY

式エディタ > 関数ディレクトリ

ウィンドウ内のクリック位置（Y 座標）を取得 最後にクリックしたウィンドウ（フォーム）のクリック位置（Y 座標）を返します。
構文： | ClickWY()
パラメータ： | なし
戻り値： | 数値
 | 正確には、ウィンドウ内に表示されているフォームのクリック位置（座標）が返されます。
関連項目： | ClickCX, ClickCY, ClickWX


関数ディレクトリ CTop

CTop

式エディタ > 関数ディレクトリ

コントロールの上辺位置

指定したコントロール、または最後にパークしていたコントロールの、フォーム基準のY 座標値を返します。

構文：

CTop(コントロール名,世代番号)

パラメータ：

コントロール名…指定するコントロールの名前。ヌル文字列（''）を指定した場合、カーソルが最後にパークしているコントロールが対象となります。

世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

数値…フォームで設定した寸法単位での値

注意事項：

  • パーク可能コントロールだけが有効な値を返します。パーク可能コントロールとは、データを持つコントロールやアクションを返すコントロールのことで、具体的には次のものがあります。

  • チェックボックス，コンボボックス，エディット，イメージ，リストボックス，OLE，プッシュボタン，ラジオボタン，リッチエディット，スライダ，タブ


関数ディレクトリ CTopMDI

CTopMDI

式エディタ > 関数ディレクトリ

コントロール上辺位置MDI

指定したコントロール、または最後にパークしていたコントロールの、MAGIC MDI 基準のY 座標値を返します。

構文：

CTopMDI(コントロール名,世代番号)

パラメータ：

コントロール名…指定するコントロールの名前。ヌル文字列（''）を指定した場合、カーソルが最後にパークしているコントロールが対象となります。

世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

数値…フォームで設定した寸法単位での値

注意事項：

  • パーク可能コントロールだけが有効な値を返します。パーク可能コントロールとは、データを持つコントロールやアクションを返すコントロールのことで、具体的には次のものがあります。

  • チェックボックス，コンボボックス，エディット，イメージ，リストボックス，OLE ，プッシュボタン，ラジオボタン，リッチエディット，スライダ，タブ


関数ディレクトリ CtrlGoto

CtrlGoto

式エディタ > 関数ディレクトリ

カーソルを移動する

カーソルを指定したコントロールに移動します。

構文：

CtrlGoto(コントロール名、行番号、世代番号)

パラメータ：

コントロール名…フォームにレイアウトしたコントロールのコントロール名

行番号…コントロールがテーブル内にある場合の行番号。0 の場合は、現在の行。テーブルに１つしかコントロールがない場合は無視されます。

世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

論理値… 処理に成功した場合「True」が返ります。

以下のような場合、処理は失敗します。

  • コントロールが見つからない場合

  • コントロールが不可視の場合

  • 指定した行が存在しない場合

  • 指定したタスクにウィンドウがない場合

  • 指定したタスクが存在しない場合

例：

CtrlGoto('Customer_Name',3,0)

現在のタスクのウィンドウに表示されるテーブルの３行目のコントロール「Customer_Name」にパークします。

補足事項:

フローモードは以下のようになります。

C1,C2,C3 の順でテーブルにカラムがあると仮定します。

  1. 同一行でC1からC3へは、順方向に高速モードで移動します。

  2. 同一行でC3からC1へは、逆方向に高速モードで移動します。

  3. 1行目のC1から、2行目のC3へ移動する場合は、

  • データが修正されていれば、1行目の最後まで高速移動 → [レコード後] → 2行目のC3まで高速移動になります。

  • データが修正されていなければ、2行目の最初からC3まで高速移動します。

  4. 1行目のC3から、2行目のC1へは、#3 と同じになります。

パーキング条件=No のコントロールを指定すると、指定したコントロールの次にパーク可能なコントロールに移動し、戻り値はTrueになります。ただし、移動方法によっては、前のコントロールに移動する場合もあります。

注意事項：

  • 関数の実行後、アプリケーションがアイドル状態になった時に、フォーカスが切り替わります。

  • ブラウザクライアントでは無効です。


関数ディレクトリ CtrlHWIND

CtrlHWND

式エディタ > 関数ディレクトリ

コントロールのウィンドウハンドルを取得 コントロールのウィンドウハンドル値を返します。外部DLLのユーザ関数内でこのハンドルを使用して、Magicアプリケーションの表示形式を決定します。
構文： | CtrlHWND(コントロール名)
パラメータ： | コントロール名…[フォーム]エディタで指定されるコントロール名
戻り値： | ウィンドウハンドル値（4 バイトのロング数値）。この値はユーザ関数(UDF ）またはユーザプロシージャ（UDP ）へ渡すことができます。
例： | CtrlHWND('Olecontrol')
 | Olecontrol はフォーム（クラス1 以上）上のコントロール名です。関数はこのコントロールのウィンドウズハンドル値を返します。
注意事項： | 具体的には次のコントロールで利用できます。 ラジオボタン，リストボックス，OLE コントロール，プッシュボタン，コンボボックス，スライダ，リッチエディットコントロール，テキストコントロール，チェックボックス


関数ディレクトリ CurRow

CurRow

式エディタ > 関数ディレクトリ

[テーブル]コントロール上での現在の行番号を取得

[テーブル]コントロール上での現在の行番号を返します。

構文：

CurRow(世代番号)

パラメータ：

世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

指定されたタスクに[テーブル]コントロールが存在している場合、現在パークしている行番号が返ります。以下の場合は、 0 が返ります。

  • [テーブル]コントロールが存在しない場合

  • 指定したタスクがないかバッチタスクの場合

例：

CurRow(0)

現在のタスクの[テーブル]コントロールのパークしている行の行番号が返ります。


関数ディレクトリ CWidth

CWidth

式エディタ > 関数ディレクトリ

コントロールの幅を取得 指定したコントロールまたはカーソルが最後にパークしたコントロールの幅の値を返します。
構文： | CWidth(コントロール名,世代番号)
パラメータ： | コントロール名…指定するコントロールの名前。ヌル文字列（''）を指定した場合、カーソルが最後にパークしているコントロールが対象となります。 世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。
戻り値： | 数値…フォームで設定された寸法単位での値
注意事項： | パーク可能コントロールだけが有効な値を返します。パーク可能コントロールとは、データを持つコントロールやアクションを返すコントロールのことで、具体的には次のものがあります。 チェックボックス，コンボボックス，エディット，イメージ，リストボックス，OLE，プッシュボタン，ラジオボタン，リッチエディット，スライダ，タブ


関数ディレクトリ FormStateClear

FormStateClear

式エディタ > 関数ディレクトリ

保存されているフォームの状態情報を初期化します。

プログラム終了後に保持されているフォームの位置やサイズなどの状態を初期化します。この関数の主な使用目的は、指定したフォームの状態をデフォルトに設定してユーザに提供することです。

構文：

FormStateClear (フォーム状態ID)

パラメータ：

フォーム状態ID（文字） … 初期化するフォームの[フォーム特性]の[フォーム状態ID]特性に定義されている文字

以下の予約語を使用することができます。

  • 空白 … 空白は、現在のフォームの状態を初期化します。

  • * … アスタリスクは、現在のプロジェクトの全てのフォームの状態情報を初期化します。

戻り値：

論理値 … 指定されたフォームに保存されている状態情報が存在する場合は、「True」が返ります。


関数ディレクトリ HitZOrdr

HitZOrdr

式エディタ > 関数ディレクトリ

コントロールのZ オーダ値 コントロールのZ オーダ値を返します。ウィンドウ単位で機能します。
構文： | HitZOrdr()
パラメータ： | なし
戻り値： | 数値（1 ～nの整数）…コントロールヒットイベントが発生したフォーム上のコントロールのZ オーダ値
注意事項： | コントロールのZオーダ番号は1からnまでの整数値です。[コントロールヒット]イベントが発行されると、この関数は数値を返します。


関数ディレクトリ LastClicked

LastClicked

式エディタ > 関数ディレクトリ

最終にクリックされたコントロール 最後にクリックされたコントロールの名前（[コントロール名]特性で指定された値）が返ります。
構文： | LastClicked()
パラメータ： | なし
戻り値： | 文字列 … 最後にクリックされたコントロール名
関連項目： | LastPark


関数ディレクトリ LastPark

LastPark

式エディタ > 関数ディレクトリ

最後にパークしたコントロールの名前 指定タスクのフォーム内で、最後にカーソルがパークしていたコントロール名を返します。
構文： | LastPark (世代番号)
パラメータ： | 世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。
戻り値： | 文字列 … ユーザが最後にカーソルをパークしていたコントロール名
例： | LastPark (1)
 | 親タスクで最後にカーソルがパークしていたコントロール名を返します。
関連項目： | CTop, CLeft, CTopMDI, CLeftMDI, CWidth, CHeight, LastClicked


関数ディレクトリ SetCrsr

SetCrsr

式エディタ > 関数ディレクトリ

カーソル形状の指定

カーソル形状を変更します。この関数 は[アクション]処理コマンドによって起動されます。

構文：

SetCrsr(番号)

パラメータ：

番号…カーソル形状を指定する以下の数値

  • 1 …標準の矢印

  • 2 …砂時計

  • 3 …手

  • 4 …標準の矢印と砂時計

  • 5 …十文字

  • 6 …矢印とクエスチョンマーク

  • 7 …I ビーム

  • 8 …禁止

  • 9 …四方向矢印

  • 10 …斜め両方矢印（左下がり）

  • 11 …上下両方矢印

  • 12 …斜め両方向矢印（右下がり）

  • 13 …左右両方向矢印

  • 14 …上向き矢印

戻り値：

論理値… 処理に成功した場合「True」が返ります。

注意事項：

Windows 以外のプラットフォームでは常に「False」が返ります。また、パラメータが1～14 以外の値の時にも「False 」が返ります。


関数ディレクトリ SplitterOffset

SplitterOffset

式エディタ > 関数ディレクトリ

フォームの分割単位

現在のフォームの分割割合（%または寸法単位）が返ります。

構文：

SplitterOffset(モード)

パラメータ：

モード … 以下のモードを表す数値です。

  • 0…分割割合を%で返します。

  • 1…分割割合を寸法単位で返します。

戻り値：

数値…分割割合が指定した単位で返されます。

注意事項：

タスクのフォームが分割指定されていない場合は、「0」が返ります。


関数ディレクトリ StatusBarSetText

StatusBarSetText

式エディタ > 関数ディレクトリ

Magicのステータスバーにテキストを設定する Magicのステータスバーに指定したテキストを表示させます。
構文： | StatusBarSetText(文字列)
パラメータ： | 文字列 …… ステータスバーに設定する文字列。文字型、Unicode型、BLOB型（[内容]特性が「ANSI」か「Unicode」）
戻り値： | 文字列… この関数によって以前に設定されたステータステキストの内容が返ります。
注意事項： | 起動元のタスクのステータスバーにテキストが設定されていても、新規の各コンテキストのステータスバーは空白になっています。


関数ディレクトリ TreeNodeGoto

TreeNodeGoto

式エディタ > 関数ディレクトリ

ノードの移動 ツリーコントロールの指定されたノードIDにカーソルを移動します。
構文： | TreeNodeGoto (ノードID)
パラメータ： | ノードID … ツリーのノードを表す値。書式は、データツリー用のID用項目に依存します。
戻り値： | 論理値… 処理に成功した場合「True」が返ります。
例： | TreeNodeGoto('A001')
 | ノードIDが'A001' のツリーに移動します。
注意事項： | ツリーコントロールがフォームに定義されている場合のみ有効です。


関数ディレクトリ WinBox

WinBox

式エディタ > 関数ディレクトリ

ウィンドウの位置とサイズ ウィンドウのX 座標、Y 座標、幅、高さのいずれかが返ります。
構文： | WinBox(世代番号,文字)
パラメータ： | 世代番号 …タスクの実行レベル。0 は、カレントのレベル、1 は親タスクのレベルを表します。 文字列 …取り出す情報を指定します。X を指定するとX 座標、Y ではY 座標、W では幅、H では高さが取り出されます。
戻り値： | 数値…サイズに関する情報
例： | WinBox (0,'W')


関数ディレクトリ WinHWND

WinHWND

式エディタ > 関数ディレクトリ

ウィンドウハンドル

Magic のウィンドウに対応するWindows のウィンドウハンドル（HWND）が返ります。

構文：

WinHWND(世代番号)

パラメータ：

世代番号 …タスクの実行レベル。0 は、カレントのレベル、1 は親タスクのレベルを表します。

戻り値：

数値 …Windows のウィンドウハンドル（HWND）

例：

WinHWND(1)

注意事項：

  • SDIウィンドウの場合、WinHWND(0)はフレームウィンドウ自身のハンドル値ではなくSDIフレームウィンドウで作成された内部ウィンドウのハンドル値を返します。

  • フレームウィンドウのハンドル値を取得したい場合は、以下の関数を実行してください。

CallDLL ('USER32.GetAncestor'、'444'、WinHWND(0)、2)


関数ディレクトリ WinMaximize

WinMaximize

式エディタ > 関数ディレクトリ

Magic のウィンドウを最大表示 Magic のウィンドウを最大表示します。 MDIプログラムで実行した場合、MDIが最大化されます。SDIプログラムで実行した場合、SDIが最大化されます。
構文： | WinMaximize()
パラメータ： | なし
戻り値： | 論理値 … 処理に成功した場合「True」が返ります。
注意事項： | V9Plus以前のMAXMagicと同じ機能です。


関数ディレクトリ WinMinimize

WinMinimize

式エディタ > 関数ディレクトリ

Magic のウィンドウを最小表示 Magic のウィンドウを最小表示します。 MDIプログラムで実行した場合、MDIが最小化されます。SDIプログラムで実行した場合、SDIが最小化されます。
構文： | WinMinimize()
パラメータ： | なし
戻り値： | 論理値 … 処理に成功した場合「True」が返ります。
注意事項： | V9Plus以前のMINMagicと同じ機能です。


関数ディレクトリ WinRestore

WinRestore

式エディタ > 関数ディレクトリ

Magic ウィンドウのサイズを通常サイズに戻す。 Magic のウィンドウを通常サイズに変更できます。SDIウィンドウから起動された場合で、開始モードが最大化／最小化のどちらかが指定されている場合、ウィンドウは、フォームの[位置]特性に定義された値を基に表示されます。
構文： | WinRestore()
パラメータ： | なし
戻り値： | 論理値 … 処理に成功した場合「True」が返ります。
注意事項： | V9Plus以前のResMagicと同じ機能です。


関数ディレクトリ ウィンドウズダイアログ関数

ウィンドウダイアログ関数

式エディタ > 関数ディレクトリ

DirDlg …… Windowsの[ディレクトリ選択]ダイアログボックスを開き、選択したディレクトリの名前を返します。

FileDlg …… Windows の[ファイルを開く]ダイアログをオープンします。


関数ディレクトリ DirDlg

DirDlg

式エディタ > 関数ディレクトリ

ディレクトリ選択

Windowsの[ディレクトリ選択]ダイアログボックスを開き、選択したディレクトリの名前を返します。

構文：

DirDlg(ウィンドウタイトル, タイトル, ルート, フラグ)

パラメータ：

ウィンドウタイトル（文字） … ダイアログボックスのウィンドウタイトルに表示される文字列

タイトル（文字） … ダイアログボックス内の説明文として表示される文字列

ルート （文字）… 最初にパークするディレクトリ

フラグ（数値） … 初期化で使用される組み合わせフラグ

注：このパラメータはリッチクライアントタスクでは無視されます。

以下の値を指定することができます。

  • 1… ReturnOnlyFSDirs (システムディレクトリのファイルのみ選択できます。)

  • 2 …DontGoBelowDomain (リストには、ドメインレベル配下のネットワークフォルダを含みません。)

  • 4… StatusText (ダイアログボックスのタイトル表示の下に、選択したディレクトリ名が表示されます。)

  • 8 …ReturnFSAncestors (上位のディレクトリがファイルシステムのディレクトリのみ表示されます。)

  • 16 … EditBox (ダイアログボックス内にディレクトリ名を入力するエディットボックスが表示されます。)

  • 32 …Validate (テキスト入力を有効にします。)

  • 64 … NewDialogStyle (ダイアログボックスのサイズを変更したり、ドラッグ&ドロップや新規フォルダの作成、フォルダの削除などが可能です。)

  • 128 … BrowseIncludeURLS (ダイアログボックスにURLを表示します。)

  • 256 … UAHint (使用上のヒントが追加されます。)

  • 512 … NoNewFolderButton ([新しいフォルダの作成]ボタンが無効になります。)

  • 4096 … BrowseForComputer (PCの選択のみ可能です。)

  • 8192 … BrowseForPrinters (プリンタの選択のみ可能です。)

  • 16384 …BrowseIncludFiles (フォルダ内のファイルが表示されます。)

  • 32768 … Shareable (リモートシステム上の共有可能なリソースを表示します。)

フラグには、複数の値を組み合わせて指定することができます。例えば、32+16（48）を指定した場合、エディットボックスに入力されたテキストが有効になります。

また、128+16+16384+64(16592)を指定すると、ダイアログボックスがURLを表示することを確認します。(フォルダがURLをサポートする場合)

戻り値：

文字列 … 選択したディレクトリのフルパスを表す文字列

例：

DirDlg('My Caption','My Description','d:\temp',0)

「Open Directory」というウィンドウタイトルのダイアログボックスが表示されます。説明文には、「My Description」と表示されます。

ダイアログボックスの[OK]ボタンをクリックすると選択したフォルダ名が返ります。

注意事項：

  • 選択したパスがパスが存在していない場合、現在の作業フォルダが返ります。

  • Escキーまたは[キャンセル]ボタンを押下すると、空白が返ります。

関連項目：

FileDLG


関数ディレクトリ FileDlg

FileDlg

式エディタ > 関数ディレクトリ

[ファイルを開く]ダイアログのオープン Windows の[ファイルを開く]ダイアログをオープンします。
構文： | FileDlg(ファイルタイプ,グループ)
パラメータ： | ファイルタイプ…[ファイルの種類]ボックスに表示されるファイル名 グループ…ファイル名のグループ。ワイルドカードが使用できます。セミコロン（;）で複数指定することもできます。
戻り値： | 文字列…「ファイルを開く」ダイアログで選択したファイル名
例： | FileDLG('DataFile',' *.dat;*.txt')
 | プロジェクトフォルダをカレントトした[ファイルを開く]ダイアログボックスが開き、拡張子が.datまたは.txtのすべてのファイルが表示されます。
 | FileDLG('MyFiles',' *.*')
 | ‘c：\temp\’をカレントトした[ファイルを開く]ダイアログボックスが開き、すべてのファイルが表示されます。
関連項目： | DirDlg


関数ディレクトリ セキュリティ関数

セキュリティ関数

式エディタ > 関数ディレクトリ

GroupAdd …… アプリケーション上で、セキュリティファイルのユーザグループにユーザを追加します。

LMChkIn …… 指定されたライセンスのユーザインスタンスの中でチェックインします。

LMChkOut …… ユーザが指定したフィーチャライセンスのユーザインスタンスをチェックアウトします。

LMUVStr …… LMChkOut関数でユーザによってチェックアウトしたライセンスのVENDOR_STRINGの値を返します。

LMVStr …… MagicエンジンがチェックアウトしたライセンスのVENDOR_STRINGの値を返します。

Logon …… 一時的に指定されたユーザとして現在のアプリケーションにアクセスします。

RightAdd …… セキュリティファイルに定義されているユーザに対して権利を割当てます。

Rights …… 権利がユーザに与えられているかどうかを確認します。

User …… [ユーザID]テーブルに記録されているユーザ情報を返します。

UserAdd …… セキュリティファイルにユーザを追加します。

UserDel …… Magicのセキュリティファイルから指定されたユーザを削除します。


関数ディレクトリ GroupAdd

GroupAdd

式エディタ > 関数ディレクトリ

ユーザをグループに割当てる アプリケーション上で、セキュリティファイルのユーザグループにユーザを追加します。
構文： | GroupAdd(ユーザ,ユーザグループ)
パラメータ： | ユーザ …ユーザのユーザID を指定します。このユーザが、ユーザグループに割当てられます。 グループ …ユーザが追加されるユーザグループ
戻り値： | 論理値… 処理に成功した場合「True」が返ります。
例： | GroupAdd('Accountant', 'Accounting')
 | 'Accountant'というユーザが'Accounting'というグループに追加されます。これで、'Accountant'には、'Accounting'に定義されている権利が全て与えられます。
注意事項： | この関数は、SUPERVISOR権利を持ったユーザだけが使用できます。ほかのユーザの場合、この関数を使用しても無視されます。
関連項目： | ユーザグループ権利


関数ディレクトリ LMChkIn

LMChkIn

式エディタ > 関数ディレクトリ

ライセンスのチェックイン

指定されたライセンスのユーザインスタンスの中でチェックインします。

構文：

LMChkIn (フィーチャ名)

パラメータ：

フィーチャ名…チェックアウトされたインスタンスの名前を示す文字列

戻り値：

処理結果を表す数値

  • 0…成功

  • 8 …ライセンスのユーザインスタンスのチェックインに失敗しました

注意事項：

この関数は、日本語版ではサポートしていません。


関数ディレクトリ LMChkOut

LMChkOut

式エディタ > 関数ディレクトリ

ライセンスのチェックアウト

ユーザが指定されたフィーチャライセンスのユーザインスタンスをチェックアウトします。関数の処理が成功した場合、1ユーザ分のインスタンスがカウントアップされます。インスタンスが最大値に達した場合、以後の関数に対して "7"（チェックアウト失敗） が返ります。

構文：

LMChkOut (ライセンスファイル名,フィーチャ名, バージョン)

パラメータ：

ライセンスファイル名…ライセンスファイルあるいはライセンスサーバの位置を示す文字列。ライセンス位置は、アプリケーション全体にわたってこの関数を最初に発行した時点で設定されます。

フィーチャ名…フィーチャの名前を指定する文字列

バージョン…指定されたフィーチャのバージョンを指定する文字列

戻り値：

数値… 処理結果を表します。

  • 0…成功

  • 1…ライセンスサーバへの接続の初期化の失敗

  • 2 …ライセンスファイルが破損しているか存在しません

  • 3 …フィーチャ名が指定されていません

  • 4 …指定されたフィーチャは、ライセンスファイル中で存在しません

  • 5 …フィーチャの有効期限は過ぎました

  • 6 …指定したフィーチャは、ライセンスサーバのライセンスファイル中に存在しません

  • 7 …ライセンスのユーザインスタンスのチェックアウトに失敗しました

注意事項：

この関数は、日本語版ではサポートしていません。


関数ディレクトリ LMUVStr

LMUVStr

式エディタ > 関数ディレクトリ

ユーザライセンスのVENDOR_STRINGを取得 LMChkOut関数でユーザによってチェックアウトしたライセンスのVENDOR_STRINGの値を返します。 VENDOR_STRINGは、ライセンスファイル内のライセンス項目の一部です。
構文： | LMUVStr ()
パラメータ： | なし
戻り値： | 文字列…ユーザによってチェックアウトされたライセンスのVENDOR_STRINGが返ります。
例： | LMUVStr()
 | PRODUCT=30,TRANS=50 といったような値が返ります。
注意事項： | この関数は、日本語版ではサポートしていません。
関連項目： | LMVStr, LMChkln, LMChkOut


関数ディレクトリ LMVStr

LMVStr

式エディタ > 関数ディレクトリ

VENDOR_STRINGを取得 MagicエンジンがチェックアウトしたライセンスのVENDOR_STRING列を返します。 VENDOR_STRINGは、ライセンスファイル内の制限値などのライセンス項目の一部です。
構文： | LMVStr()
パラメータ： | なし
戻り値： | 文字列…MagicエンジンによってチェックアウトされたライセンスのVENDOR_STRINGが返ります。
例： | ライセンス名が 「MGDEMO」で動作している場合は、LMVStr() は、以下のような値が返ります。
 | PT=MGCSRT,C=3FFFFFF,P=N,MR=300,MC=1 \DUP_GROUP=NONE ISSUER="Magic Demonstration" ck=59 SN=612345675
注意事項： | この関数は、日本語版ではサポートしていません。
関連項目： | LMChkln, LMChkOut, LMUVStr


関数ディレクトリ Logon

Logon

式エディタ > 関数ディレクトリ

アプリケーションへのログオン 一時的に指定されたユーザとして現在のアプリケーションにアクセスできます。プログラム終了時には以前のユーザに戻ります。現在のアプリケーションを閉じることなくユーザを切り替える必要がある場合に使用できます。
構文： | Logon (ユーザID,パスワード)
パラメータ： | ユーザID …ログオンさせるユーザID パスワード…ユーザID に対応したパスワード
戻り値： | 論理値 … 処理に成功した場合「True」が返ります。
例： | Logon('CARL',PASS321')
 | この関数は、「設定／ログオン」と同様の動作をします。ただし、Logon 関数ではユーザ名とパスワードをバッチモードで処理します。
注意事項： | Logon関数を使用してLDAPサーバにログオンすることもできます。


関数ディレクトリ RightAdd

RightAdd

式エディタ > 関数ディレクトリ

ユーザに権利を割当てる セキュリティファイルに定義されているユーザに対して権利を割当てます。
構文： | RightAdd(ユーザ,権利)
パラメータ： | ユーザ … ユーザを指定します。このユーザに、[権利]パラメータで指定した権利が割当てられます。 権利 … ユーザに割当てる権利を指定します。
戻り値： | 論理値… 処理に成功した場合「True」が返ります。
例： | RightAdd('Accountant','Issue Invoice')
 | 'Accountant'というユーザに対して'Issue Invoice'という権利が付与されます。
注意事項： | この関数は、SUPERVISOR権利を持つユーザだけが使用できます。


関数ディレクトリ Rights

Rights

式エディタ > 関数ディレクトリ

権利付与の照会

権利を指定し、その権利がユーザに与えられているかどうかを確認します。指定した権利が与えられていない場合、「False」 が返ります。

構文：

Rights(権利名)

パラメータ：

権利名 … 権利の名前で、RIGHT リテラルコマンドを付加します。

戻り値：

論理値

  • True …指定した権利が付与されている場合

  • False …権利が付与されていない場合

例：

Rights('right #4'RIGHT)

ユーザに「right #4」という権利が与えられていれば、「True」 が返ります。

関連項目：

GroupAdd, User


関数ディレクトリ User

User

式エディタ > 関数ディレクトリ

ユーザ情報

[ユーザID]テーブルに記録されているユーザ情報を取り出せます。

構文：

User(番号)

パラメータ：

番号 …0 、1 、2 のいずれか

  • 0…ユーザID

  • 1…ユーザ名

  • 2…[ユーザ情報]欄の値

戻り値：

文字列

例：

User(1)

現在のユーザのユーザ名が返ります。

関連項目：

INIGet, INIPut


関数ディレクトリ UserAdd

UserAdd

式エディタ > 関数ディレクトリ

ユーザの追加 セキュリティファイルにユーザを追加します。
構文： | UserAdd(ユーザID,名前,パスワード,情報)
パラメータ： | ユーザID …このユーザID がセキュリティファイルに挿入されます。 名前 …追加するユーザの名前 パスワード…ユーザのパスワード 情報 …ユーザの情報
戻り値： | 論理値… 処理に成功した場合「True」が返ります。
例： | UserAdd('John', 'John Doe', 'xyz', 'no info')
 | ユーザID が'John'、ユーザ名が'John Doe'、パスワードが'xyz'というユーザがセキュリティファイルに追加されます。また、ユーザ情報はとしては、'no info'という情報が追加されます。
注意事項： | この関数は、SUPERVISOR権利を持つユーザだけが使用できます。ほかのユーザの場合、この関数を使用しても無視されます。
関連項目： | INIGet,INIPut


関数ディレクトリ UserDel

UserDel

式エディタ > 関数ディレクトリ

ユーザの削除 Magicのキュリティファイルから指定されたユーザを削除します。
構文： | UserDel(ユーザID)
パラメータ： | ユーザID …削除されるユーザID
戻り値： | 論理値 … 処理に成功した場合「True」が返ります。
例： | UserDel('John')
 | ユーザ「John」がセキュリティファイルから削除されます。
注意事項： | この関数は、SUPERVISOR権利を持つユーザだけが使用できます。ほかのユーザの場合、この関数を使用しても無視されます。


関数ディレクトリ タスク関数

タスク関数

式エディタ > 関数ディレクトリ

CallProg …… Magic のプログラムを呼び出します。

Counter …… バッチタスクでレコードレベルの処理が何回行われたかをカウントします。

DataViewToHTML …… データビューからHTMLファイル作成します。

DataViewToText …… データビューからテキストファイル作成します。

DataViewToXML …… データビューからXMLファイル作成します。

DataViewVars …… [データ出力ウィザード]イベントが実行された時のフォーム上の項目を取得します。

Delay …… 現在の処理を一時的に中断します。

EmptyDataView …… データビューが空の場合、Trueを返します。

Flow …… 操作のフローモードを確認します。

FlwMtr …… Magic フローモニタにメッセージを表示させます。

FlwMtrVars …… フローモニタの現在の位置に項目の内容を追加するように指示します。

GetComponentName …… 現在のコンポーネントの名前を取得します。

GetGUID …… プロジェクトのGUIDを取得します。

GetLang …… 現在使用している言語が返ります。

GetParam …… プログラムにグローバルパラメータとして渡されているパラメータの値を返します。

HandledCtrl …… ハンドラが起動されたコントロールの名前を返します。

Idle …… キー操作が実行された後、操作が行われていない時間を返します。

InTrans …… トランザクションが現在オープンしているかどうかを確認します。

IsComponent …… 実行されたプログラムやハンドラがコンポーネントアプリケーションのものかホストアプリケーションのものかを確認します。

IsFirstRecordCycle …… タスク内の最初のレコードサイクルかどうかを確認します。

KbGet …… 直前のキー入力／アクションを返します。

KbPut …… アクションまたはキー操作をシミュレートします。

Level …… タスクの実行レベルを確認します。

Lock …… 一定の時間内に一人のユーザのみによって占有される仮想的なリソースを作成し、テーブルの行やタスクをロックします。

LoopCounter …… ブロックループ処理時の現在のループ回数を返します。

Menu …… メニュー経路を返します。

MenuIdx …… メニュー経路を返します。

MMClear …… マルチマークされた行をクリアします。

MMCount …… マルチマークされた行数を返します。

MMCurr …… マークされた行の中の現在処理中の行を返します。

MMStop …… マルチマークハンドラを中断します。

MnuAdd …… プログラム内で動的にメニュー構造を追加します。

MnuCheck …… メニュー項目の前のチェックマークの表示／非表示を設定します。

MnuEnabl …… メニュー項目の有効／無効を設定します。

MnuName …… 指定したメニューのユーザメニュー名を変更します。

MnuRemove …… メニュー構造を削除します。

MnuReset …… 動的に変更されたメニューを初期化します。

MnuShow …… メニュー項目の表示／非表示を設定します。

Prog …… 現在のタスクのパスを取得します。

ProgIdx …… プログラムリポジトリ番号を返します。

ProjectDir …… プロジェクトファイルが保存されているディレクトリ名を返します。

PublicName …… 実行中のプログラムの公開名を返します。

Rollback …… ネストレベルを指定し、その位置までトランザクションをロールバックします。

RunMode …… エンジンの実行モードに対応する数値コードを返します。

SetLang …… 使用する言語を設定します。

SetParam …… グローバルパラメータを設定します。

SharedValGet …… 指定された名前に基づいて共有された値を返します。

SharedValSet …… Magicのメモリ上に格納される共有値を作成します。

Stat …… タスクのモードを確認します。

SubformExecMode …… サブフォームの実行モードを返します。

TaskID …… 実行中のタスクIDを返します。

TDepth …… 現在のタスクのネスト情報を返します。

THIS …… イベントが発生したデータ項目のインデックスまたはタスクの階層を表します。

TransMode …… 現在アクティブなトランザクションのモードを返します。

TreeLevel …… データツリー上の選択されたノードの現在のレベルを返します。

TreeNodeGoto …… データツリーの指定されたノードIDにカーソルを移動します。

TreeValue …… 選択されたノードの現在のレベルによって決定されたノードIDを返します。

UnLock …… Lock関数によってロックされたリソースを解除します。

ViewMod …… データビューのレコードが読み込まれた後、そのレコードが修正されたかどうかを確認します。


関数ディレクトリ CallProg

CallProg

式エディタ > 関数ディレクトリ

Magic プログラムの呼び出し

Magic のプログラムを呼び出します。

構文：

CallProg(プログラム番号,パラメータ1,パラメータ２ ,..)

パラメータ：

プログラム番号…プログラムリポジトリ上の番号

パラメータ…プログラムに渡す引数

戻り値：

呼ばれたプログラムが返す戻り値(タスク特性で定義された戻り値）

例：

Str(CallProg('23'PROG,A,FG,'Preferd',23),'2P0')

23 番のプログラム呼び出され、数値が返ります。

注意事項：

  • [アクション]処理コマンドでCallProg関数の式を指定した場合、[戻り値]特性には「False」が返ります（呼び出されたプログラムの戻り値ではありません）。引数としてNULL値を渡すことはできません。

  • リッチクライアントの場合、CallProg関数によって呼び出されるプログラムは戻り値を返しません。これはプログラムが終了するまで待たないためです。

  • この関数で呼び出された並行起動設定のリッチクライアントプログラムは、並行起動されません。

以下の表は、CallProg関数と［コール］処理コマンドを比較したものです。

CallProg 関数 | ［コール］処理コマンド
プログラムのみ呼び出せます。 | プログラムまたはタスクを呼び出すことができます。
パラメータを受け取る事はできません。 | 任意のパラメータの受け渡しが可能です。
パラメータは、「値渡し」で渡されます。 | パラメータは、「値渡し」または「参照渡しで」で渡されます。
起動されるプログラムの［戻り値］特性に設定した値が戻り値として返ります。 | 起動されるプログラムの［戻り値］特性に設定した値が、［戻り値］特性に設定された項目に返ります。
式が定義できる場所であれば、タスクのどこにでも使用することができます。 | ［ロジック］エディタ内でのみ定義できます。
手続型または無手続き型のどちらの方法でも実行させることができます。 | 手続上の処理コマンドとしてのみ実行させることができます。


関数ディレクトリ Counter

Counter

式エディタ > 関数ディレクトリ

バッチ繰り返しカウンタ バッチタスクで、レコードレベル処理の実行回数を返します。
構文： | Counter(世代番号)
パラメータ： | 世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。
戻り値： | 数値
例： | [タスク終了条件]特性に式としてCounter(0)=5 を指定し、[チェック時期]を「A=後置」にした場合、現在のタスク（世代番号は0 ）は、レコードレベルの処理が5 回実行されると終了します。


関数ディレクトリ DataViewToHTML

DataViewToHTML

式エディタ > 関数ディレクトリ

データビューからHTMLファイルを作成

[データビュー]エディタに定義された項目を基にHTMLファイルを作成します。

構文：

DataViewToHTML (世代番号, タスクの項目名, 出力項目名, HTMLファイル名, テンプレートファイル名, 文字セット)

パラメータ：

世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

タスクの項目名（文字） …出力する項目の名前をカンマ区切りでリストアップした文字列

出力項目名（文字） … 出力される項目の名前をカンマ区切りでリストアップした文字列。空白の場合、ヘッダが出力されません。「@」が指定された場合、タスクに定義された項目名でヘッダが出力されます。名前にカンマが含まれている場合、その前に「\」を設定してください。

HTMLファイル名（文字） … 作成されるファイルの名前

テンプレートファイル名（文字） … HTMLファイルを作成する場合に使用するテンプレートファイルの名前。このパラメータはオプションです。

文字セット（数値） …出力データの文字セットを指定します。以下の数値が指定できます。

  • 0 …ANSI

  • 1 … Unicode

  • 2 … UTF-8

戻り値：

論理 … 成功した場合、「True」が返ります。

注意事項：

  • HTMLファイルが作成できなかった場合、「False」が返ります。

  • テンプレートファイルがオープンできなかった場合、無視されます。

  • タスク項目のリストが空白の場合、「False」が返ります。

  • 出力項目のリストがタスク項目で指定された項目数より少ない場合、ヘッダが出力されません。

  • 出力項目のリストがタスク項目で指定された項目数より多い場合、余分な項目名はヘッダに出力されません。

  • タスク項目名に誤りがある場合、「False」が返ります。

  • タスク項目名にOLEやBLOB、ActiveX、ベクトル型の項目がある場合は、「False」が返ります。

  • 文字セットの指定値が正しくない場合、「0」（ANSI）として動作します。


関数ディレクトリ DataViewToText

DataViewToText

式エディタ > 関数ディレクトリ

データビューからテキストファイルを作成

[データビュー]エディタに定義された項目を基にテキストファイルを作成します。

データソースをCSV形式でテキスト出力する際、文字列の前後をダブルクォーテーションで囲む形式で出力する場合は、この関数を使用すると便利です。

構文：

DataViewToText (世代番号, タスクの項目名, 出力項目名, テキストファイル名, 区切り文字, エンクォート文字,文字セット )

パラメータ：

世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

タスクの項目名（文字） …出力する項目の名前をカンマ区切りでリストアップした文字列

出力項目名（文字） … 出力される項目の名前をカンマ区切りでリストアップした文字列。空白の場合、ヘッダが出力されません。「@」が指定された場合、タスクに定義された項目名でヘッダが出力されます。名前にカンマが含まれている場合、その前に「\」を設定してください。

テキストファイル名（文字） … 作成されるファイルの名前.

区切り文字（文字） …出力されるテキストの区切り文字として使用されるする文字列.

エンクォート文字（文字）…文字列の識別（エンクォート）に使用される文字。文字型とUnicode型の文字列の前後に設定されます。

文字セット（数値） …出力データの文字セットを指定します。以下の数値が指定できます。

  • 0 …ANSI

  • 1 … Unicode

  • 2 … UTF-8

戻り値：

論理 … 成功した場合、「True」が返ります。

注意事項：

  • テキストファイルが作成できなかった場合、「False」が返ります。

  • 区切り文字や文字IDが指定されない場合、出力ファイルには、何も付加されません。

  • タスク項目のリストが空白の場合、「False」が返ります。

  • 出力項目のリストがタスク項目で指定された項目数より少ない場合、ヘッダが出力されません。

  • 出力項目のリストがタスク項目で指定された項目数より多い場合、余分な項目名はヘッダに出力されません。

  • タスク項目名に誤りがある場合、「False」が返ります。

  • タスク項目名にOLEやBLOB、ActiveX、ベクトル型の項目がある場合は、「False」が返ります。

  • 文字セットの指定値が正しくない場合、「0」（ANSI）として動作します。

  • データ内にエンクォート文字と同じ文字が存在する場合、その文字は2回繰り返されます。例えば、エンクォート文字が「"」、データが「A"B」の場合、「"A""B"」と出力されます。


関数ディレクトリ DataViewToXML

DataViewToXML

式エディタ > 関数ディレクトリ

データビューからXMLファイルを作成

[データビュー]エディタに定義された項目を基にXMLファイルを作成します。

構文：

DataViewToXML (世代番号, タスクの項目名, 出力項目名, XMLファイル名, スキーマファイル名, テンプレートファイル名, 文字セット)

パラメータ：

世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

タスクの項目名（文字） …出力する項目の名前をカンマ区切りでリストアップした文字列

出力項目名（文字） … 出力される項目のタグ名をカンマ区切りでリストアップした文字列。空白または、「@」が指定された場合、タスクに定義された項目名でヘッダが出力されます。名前にカンマが含まれている場合、その前に「\」を設定してください。

XMLファイル名（文字） … 作成されるファイルの名前

スキーマファイル名（文字） … 作成されるスキーマファイルの名前。空白の場合、スキーマファイルは作成されません。

テンプレートファイル名（文字） … XMLファイルを作成する場合に使用するテンプレートファイルの名前。このパラメータはオプションです。

文字セット（数値） …出力データの文字セットを指定します。以下の数値が指定できます。

  • 0 …ANSI

  • 1 … Unicode

  • 2 … UTF-8

戻り値：

論理 … 成功した場合、「True」が返ります。

注意事項：

  • XMLファイルが作成できなかった場合、「False」が返ります。

  • スキーマファイルが作成できなかった場合、ログに以下のエラーメッセージが書き込まれます。
    「XML schema file could not be created」

  • テンプレートファイルがオープンできなかった場合、無視されます。

  • タスク項目のリストが空白の場合、「False」が返ります。

  • 出力項目のリストがタスク項目で指定された項目数より少ない場合、ヘッダが出力されません。

  • 出力項目のリストがタスク項目で指定された項目数より多い場合、余分な項目名はヘッダに出力されません。

  • タスク項目名に誤りがある場合、「False」が返ります。

  • タスク項目名にOLEやBLOB、ActiveX、ベクトル型の項目がある場合は、「False」が返ります。

  • 文字セットの指定値が正しくない場合、「0」（ANSI）として動作します。

  • 出力項目名に日本語（DBCSコード）が含まれている場合、ブラウザによっては正常に表示できない場合があります。


関数ディレクトリ DataViewVars

DataViewVars

式エディタ > 関数ディレクトリ

データビューの取得

[データ出力]イベントが実行されたフォーム上に表示された項目を取り出します。

構文：

DataViewVars (世代番号, オプション)

パラメータ：

世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

オプション（数値） … 取得する項目の範囲を定義する数値。このパラメータは必須です。以下の値が指定できます。

  • 0 … タスクのデータビュー全体

  • 1 … フォーム上の全ての項目

  • 2 … 表示されたフォームの項目（表示される項目のみを対象とします。）

戻り値：

ベクトルデータ … 文字型項目を含むベクトル型の値が返ります。ここには、表示項目の項目名が含まれています。

オプションが「0」でない場合、ベクトル内の項目の順序は、画面に表示されている順番になります。

オプションが「0」の場合、ベクトル内の項目の順序は、[データビュー]エディタに定義されている順番になります。

[世代番号]で定義されたタスクの定義項目のみ出力されます。

注意事項：

  • この関数は、フォーム項目を取得するためにどのような段階でも使用できます。

  • ２番目のパラメータが「2」と評価された場合、表示されているかどうかは、現在のレコードで判断されます。データビューを取得できない[タスク前]で実行された場合、オプション指定は無視され、全てのフォーム項目を取得します。この場合、オプションの「1」と「2」では、同じ動作になります。

  • ２番目のパラメータが不正な値と評価された場合、関数は空のベクトルデータを返します。

  • ２番目のパラメータが「1」または「2」と評価され、フォーム上に項目が定義されていなかったり、タスクの[ウィンドウ表示]特性が「No」に設定されている場合、関数は空のベクトルデータを返します。


関数ディレクトリ Delay

Delay

式エディタ > 関数ディレクトリ

処理の一時停止（単位：1/10秒） 時間の長さを指定して、現在の処理を一時的に中断します。 処理は、指定した時間の経過後、または、ユーザがいずれかのキーを押下した時に再開されます。
構文： | Delay (数値)
パラメータ： | 数値 …処理を中断させる長さ。1/10秒を単位として指定します。
戻り値： | 論理値…常に「True」が返ります。
例： | Delay(10)では、処理が1秒間中断します。1秒経過後、処理が再開されます。また、1秒以内にユーザがいずれかのキーを押下すると、その時点で処理が再開されます。


関数ディレクトリ EmptyDataView

EmptyDataView

式エディタ > 関数ディレクトリ

タスクのデータビューの状態をチェック データビューか空の場合、Trueを返します。
構文： | EmptyDataView(世代番号)
パラメータ： | 世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。
戻り値： | 論理値 … データビューか空の場合、Trueを返します。

参照

データビューが空 イベント

空のデータビューを許可 特性


関数ディレクトリ Flow

Flow

式エディタ > 関数ディレクトリ

フローモードのチェック

操作のフローモードを確認します。

構文：

Flow(文字列)

パラメータ：

文字列 …フローモードを表す文字

  • N……順方向通常モード

  • F……順方向高速モード

  • P……逆方向通常モード

  • R……逆方向高速モード

  • S……選択終了（選択操作後に終了）

  • C……取消終了（選択操作なしで終了）

戻り値：

論理値

  • True …現在の処理モードが指定した処理モードの場合

  • False …指定した処理モードでない場合

例：

Flow('N')

通常モードでカーソルが次の項目に移動した場合、「True」が返ります。

関連項目：

ViewMod, VarMod


関数ディレクトリ FlwMtr

FlwMtr

式エディタ > 関数ディレクトリ

アクティビティモニタにメッセージを表示

Magicのアクティビティモニタにメッセージを表示させます。

構文：

FlwMtr(文字列,論理ブレイク)

パラメータ：

文字列…アクティビティモニタに表示させる文字列

論理ブレイク…「True 」を指定すると、フロー処理の実行が中断されます（ブレイクポイントと同じ働きをします）。以降は、アクティビティモニタのステップイン、ステップオーバ、継続によってフロー処理の実行が制御されます。

戻り値：

論理値

  • True …次のフロー処理で実行が中断された場合

  • False …中断されない場合

例：

FlwMtr(DSTR(B,'DDMMYYYY','FALSE'LOG)

処理を止めて項目をウォッチに追加することなく、日付項目「B」の値をログに追加するように指定します。アクティビティモニタを手動で停止させることなく項目の内容を確認したい場合に使用してください。


関数ディレクトリ FlwMtrVars

FlwMtrVars

式エディタ > 関数ディレクトリ

アクティビティモニタでの項目表示 アクティビティモニタの現在の位置に項目の内容表示を追加するように指定します。
構文： | FlwMtrVars()
パラメータ： | なし
戻り値： | 論理値… 処理に成功した場合「True」が返ります。
注意事項： | ベクトル項目は、拡張モード（セルの内容を表示する）で追加されます。


関数ディレクトリ GetComponentName

GetComponentName

式エディタ > 関数ディレクトリ

コンポーネント名の取得 現在のコンポーネントの名前を取り出します。これはプロジェクト用データの永続性のために必要になります。
構文： | GetComponentName ( )
パラメータ： | なし
戻り値： | 文字列… 関数を起動したコンポーネント名を表す文字列が返ります。


関数ディレクトリ GetGUID

GetGUID

式エディタ > 関数ディレクトリ

プロジェクトのGUID取得

プロジェクトのGUIDを取り出します。これはプロジェクト用データの永続性のために必要になります。

構文：

GetGUID (世代番号)

パラメータ：

世代番号（数値） … プロジェクトの階層的位置を示す数値。

  • 0… 現在のプロジェクト／コンポーネント

  • 1… 親のプロジェクト／コンポーネント

戻り値：

文字列 … GUIDを含む文字列


関数ディレクトリ GetLang

GetLang

式エディタ > 関数ディレクトリ

現在使用されている言語を取得 [動作環境]ダイアログの[デフォルト言語]に設定されている言語が返ります。SetLang関数で変更された場合、その言語が返ります。
構文： | GetLang( )
パラメータ： | なし
戻り値： | 文字列または空白
例： | GetLang()
関連項目： | SetLang


関数ディレクトリ GetParam

GetParam

式エディタ > 関数ディレクトリ

グローバルパラメータの取得

ハイパーリンクや[コールリモート]処理コマンドを使用してプログラムに渡されたパラメータの値やSetParam関数で設定されたグローバルパラメータの値が返ります。

構文：

GetParam (パラメータ名)

パラメータ：

パラメータ名 … グローバルパラメータの名前

パラメータがSetParam関数で設定された場合は、この関数のパラメータ名をSetParam関数で使用されたものと同じにする必要があります。

[コールリモート]コマンドのパラメータを取得する場合は、関数のパラメータ名を「MGARG##」とすることで「##」で指定された番号のパラメータ値が返ります。「MGARG0」と指定した場合は渡されたパラメータの数が返ります。

ハイパーリンクのパラメータを取得する場合は、関数のパラメータ名を[コールリモート]コマンドと同じように「MGARG##」にするか、ハイパーリンクか送信処理で指定されたパラメータの名前にします。

戻り値：

データ…データ型は、[パラメータ名]で指定したパラメータのデータ型になります。

例：

GetParam('MyArgument')

「MyArgument」というパラメータ名がSetParam関数で設定されたりハイパーリンクで渡された場合、このパラメータの値が返ります。

GetParam('MGARG0')

[コールプログラム]コマンドまたはハイパーリンクで渡されたパラメータの数が返ります。

GetParam('MGARG1')

[コールプログラム]コマンドまたはハイパーリンクで渡された、最初のパラメータの値が返ります。

GetParam('MGARG#')

パラメータ番号「#」の値が返ります。

SetParam と GetParam:

SetParam('P_DATE',EOM(Date())+1) は、メモリ内の「P_DATE」と呼ばれる項目を作成します。ここには、次月の1日の日付データが含まれています。

GetParam('P_DATE')を実行することで、同じ式を使用する代わりにメモリ内のこの値を取り出して日付型項目に設定することができます。

これは、２つのパラメータ間でデータのやり取りをする新しい方法です。

注意事項：

  • 戻り値を受け取る項目のデータ型がパラメータのデータ型と異なる場合、表示が化けるなどの結果になります。

  • パラメータ名を指定しなかったり、指定されたパラメータ名に対する値の設定が行われていない場合は、NULL が返ります。

  • ハイパーリンクで呼び出されるMagicプログラムでは、以下のような場合にも使用できます。

  • インターネットプログラムでグローバルパラメータとしてHTTP環境変数が渡された時にも、この関数を使用して値を取得することができます。

  • ハイパーリンクで「ARGUMENTS」値が指定されており、カンマで区切られた引数名が含まれている場合に限って、「MGARG##」を使用して引数を順番に取り出すことができます。

関連項目：

SetParam


関数ディレクトリ HandledCtrl

HandledCtrl

式エディタ > 関数ディレクトリ

コントロール名の取得

ハンドラが起動されたコントロールの名前を返します。

構文：

HandledCtrl()

パラメータ：

なし

戻り値：

文字列…現在のハンドラが起動されたコントロールの名前

注意事項：

  • 特定のコントロール（タスクやレコードレベルハンドラ、バッチタスクのハンドラ）から起動された場合は、空白が返ります。

  • この関数は、パークしていなくてもイベントを起動したコントロールの名前を返します。例えば、マウスオーバやマウスアウトイベントなどです。

  • コントロールレベルで実行しても値は返りません。


関数ディレクトリ Idle

Idle

式エディタ > 関数ディレクトリ

システムのアイドル時間の確認

Magic上でキー操作が実行された後、操作が行われていない時間を返します。なお、この関数は、[動作環境]テーブルの[キーボード休止秒数]パラメータの値と関連しており、この[キーボード休止秒数］に設定されている時間（単位秒）が経過した時に限って、0 以外の値が返ります。

また、結果は、[キーボード休止秒数］の値の1/10をしきい値として算出されます。さらに、結果は、[キーボード休止秒数］の値を10倍したものの累積値として返ります。

構文：

Idle()

パラメータ：

なし

戻り値：

数値

  • 0 …[キーボード休止秒数］の秒数の経過後、その秒数の1/10の時間が経過していない時には、0が返ります。

  • 休止秒数の倍数…[キーボード休止秒数］の秒数の経過後、ユーザによる操作がないまま、その秒数の1/10の時間が経過すると、時間が[キーボード休止秒数］の秒数の10倍の累積（つまり、5 、10 ，15 など）として返ります。

例：

[キーボード休止秒数］の秒数が「5」で、その5秒が経過した時には、Idle（）関数からは、経過した時間に応じて次の値が返ります。

  • 1 秒が経過…0

  • 2 秒が経過…0

  • 4 秒が経過…0

  • 5 秒が経過…5

  • 8 秒が経過…5

  • 10 秒が経過…10


関数ディレクトリ InTrans

InTrans

式エディタ > 関数ディレクトリ

トランザクションの確認 トランザクションが現在オープンしているかどうかを確認します。
構文： | InTrans()
パラメータ： | なし
戻り値： | 論理値


関数ディレクトリ IsComponent

IsComponent

式エディタ > 関数ディレクトリ

コンポーネントプログラムの確認

実行されたプログラムやハンドラがコンポーネントアプリケーションのものかホストアプリケーションのものかを確認します。

構文：

IsComponent( )

パラメータ：

なし

戻り値：

論理値

  • True … 関数を実行したプログラム（またはハンドラ）がコンポーネントアプリケーション内の場合

  • False … ホストアプリケーションの場合

例：

以下のような場合、「True」が返ります。

  • コンポーネントプログラムでこの関数を実行した場合

  • コンポーネントのタスク前／後でこの関数を実行した場合

  • ホストアプリケーション側のイベント実行によって、コンポーネントアプリケーションのグローバルハンドラが実行され、この関数を実行した場合

以下のような場合、「False」が返ります。

  • ホストアプリケーションのプログラムでこの関数を実行した場合

  • コンポーネントアプリケーション側のイベント実行によって、ホストアプリケーションのハンドラが実行され、この関数を実行した場合


関数ディレクトリ IsFirstRecordCycle

IsFirstRecordCycle

式エディタ > 関数ディレクトリ

最初のレコード処理の確認

タスク内の最初のレコードサイクルかどうかを確認します。この内容は、[タスク前]の後にフェッチされたデータの内容を処理したり、タスクに入って一回だけ実行する処理がある場合の判定に使用できます。

構文：

IsFirstRecordCycle (世代番号)

パラメータ：

世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

論理値

  • True … 現在のレコードがタスク開始後の最初のレコードサイクルの場合

  • False … [タスク前]以外で処理が実行中の場合

注意事項：

再表示イベント（ビュー再表示、画面再表示、など）の実行結果や、ユーザの操作による範囲指定やソート後のデータビューの再表示が行われた場合は、「False」が返ります。


関数ディレクトリ KbGet

KbGet

式エディタ > 関数ディレクトリ

直前のキー入力 直前のキー入力、または、直前のアクション（[キーボード割付]テーブルに定義されているアクション）を文字列で返します。
構文： | KbGet(数値)
パラメータ： | 数値…アクションの場合は「1」、キーの場合は「0」を指定します。
戻り値： | 文字列
例： | KbGet (0)
 | F2キーが押されていれば「F2」という文字列が返ります。


関数ディレクトリ KbPut

KbPut

式エディタ > 関数ディレクトリ

キー入力のシミュレーション 内部イベントやキー操作をシミュレートします。
構文： | KbPut(文字列)
パラメータ： | 文字列 …文字列、キーボードリテラル（KBD）、イベントリテラル（EVENT）を組み合わせて指定できます。
戻り値： | 論理値… 処理に成功した場合「True」が返ります。
例： | KbPut('F2'KBD&'Exit'EVENT&'abcd')
 | まず、F2キーが押され（シミュレート）、[キーボード割付]テーブルの[イベント]カラムに定義されているイベントが実行され、最後に、'abcd'という文字列が入力されます。
 | KBDとEVENTの各リテラルコードを使用して、<キーボード値>と<内部イベント値>を表すことができます。これによって複数のキーボード値と内部イベント値を指定することができます。また、リテラルを使用することで、他言語への移植も行いやすくなります。 この関数で指定した値は、内部キーボードバッファの最後に格納され、値は、その入力が必要になった時に取り出され使われます。このため、この関数を使用する場合、タイミングが大切になります。 以上のような理由から、この関数は、[アクション]コマンドで使用するようにします。 NumLock 、CapsLock 、ScrollLock などの操作はサポートしていません。
関連項目： | リテラル, KBGet


関数ディレクトリ Level

Level

式エディタ > 関数ディレクトリ

タスクの実行レベル

タスクの実行レベルを返します。

構文：

Level(世代番号)

パラメータ：

世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。タスク自身を、1 はそのすぐ上位の親タスクを指定し、以下同様です。

戻り値：

文字列…タスクレベルを意味する文字列が返ります。文字列の意味は次の通りです。

  • CP_<コントロール名>…[コントロール <コントロール名> 前]

  • CS_<コントロール名>…[コントロール <コントロール名> 後]

  • CV_<コントロール名>…[コントロール <コントロール名> 検証]

  • GP_<項目名> …[グループ <変数名> 前]

  • GS_<項目名>…[グループ<変数名> 後]

  • HE_<式イベント名>…式イベントによるハンドラ

  • HI_<内部イベント名>…内部イベントによるハンドラ

  • HR_<エラーイベント名>…エラーイベントによるハンドラ

  • HS_<システムイベント名>…システムイベントによるハンドラ

  • HT_<タイマイベント名>…タイマイベントによるハンドラ

  • HU_<ユーザイベント名>…ユーザイベントによるハンドラ

  • HX_<イベント名>…ActiveXイベントによるハンドラ

  • MP…[メインプログラム]

  • RM…[RM互換]

  • RP…[レコード前]

  • RS…[レコード後]

  • SUBFORM …[サブフォーム]（例： Level(1) は、親タスクの実行レベルを取得する目的で、サブフォームタスク内でこの関数を実行する場合。）

  • TP…[タスク前]

  • TS…[タスク後]

  • VC_<項目名>…[項目<項目名>変更]

  • FRAME … [フレーム]（例： Level(1) は、親タスクの実行レベルを取得する目的で、フレーム内のプログラムやタスクでこの関数を実行する場合。）

  • NULL または空白…タスクが見つからなかった

例：

Level(x)で、x （世代番号）が0 、1 などの場合、

Level(1)で'RP'が返った場合、親タスクのカレントの実行レベルが[レコード前]であることが分かります。

また、IF(Level(1)=",'親タスクが見つかりませんでした','')では、カレントのタスクに親タスクがなかった場合、「親タスクが見つかりませんでした」というメッセージが出力されます。

関連項目：

TDepth


関数ディレクトリ Lock

Lock

式エディタ > 関数ディレクトリ

リソースをロック

一定の時間内に一人のユーザのみによって占有される仮想的な要素（リソース）を作成し、テーブルの行やタスクをロックします。

構文：

Lock (リソース, タイムアウト)

パラメータ：

リソース…任意の文字列。長さは0～128。リソース名はユニークでなければいけません。

タイムアウト…リソースが別のユーザによりロックされている場合の待ち時間（秒）。負の値を指定した時は、無制限に待ちます。

戻り値：

処理結果を表す数値

  • 0…ロックが成功

  • 1…同一セッションで同じリソースに既にロックがかかっている場合

  • 2…別のセッションで同じリソースにロックがかかっていて、待ち時間がタイムアウトを越えた場合（ロックは失敗）

注意事項：

  • 通常項目更新の式で設定します。

  • Lockしたリソースは必ずUnlockして解放する必要があります。

関連項目：

UnLock


関数ディレクトリ LoopCounter

LoopCounter

式エディタ > 関数ディレクトリ

ブロックループ回数

[ブロックWhile]処理コマンドの現在の処理回数を返します。

構文：

LoopCounter()

パラメータ：

なし

戻り値：

数値 … 現在のブロックWhileの処理回数

例：

[ブロックWhile]処理コマンドの7回目に LoopCounter() を実行した場合、7 が返ります。

注意事項：

  • [ブロックWhile]処理コマンドの最初の処理にこの関数が評価された場合、１が返ります。ブロックループの外で評価された場合は、0 が返ります。

  • [ブロックWhile]処理コマンド内にエラーコマンドを定義する場合は、ブロックWhileが定義されるロジックユニットから抜け出せるように考慮してください。

  • [ブロックWhile]処理コマンドがネストしている場合に実行されると、現在のブロックWhile（内側のブロック）の処理回数を返します。

  • [ブロックWhile]処理コマンド内の既存のブロックオプション(IF/ELSE)で評価された時は、その時のカウンタを返します。


関数ディレクトリ Menu

Menu

式エディタ > 関数ディレクトリ

メニュー経路 現在のプログラムに至るまでのメニュー経路を返します。現在のプログラムのメニュー名のほか、それまでのメニュー名も取り出されます。メニュー名はセミコロン（;）で区切られます。
構文： | Menu()
パラメータ： | なし
戻り値： | 文字列
例： | Menu()では、メニュー名がセミコロンで区切られて出力されます。
注意事項： | プログラムが開発モードで呼び出されている場合、NULLが返ります。
関連項目： | Prog


関数ディレクトリ MenuIdx

MenuIdx

式エディタ > 関数ディレクトリ

メニュー番号の取得 メメニュ名からメニュリポジトリ上の（テーブル）番号を返します。ショートカットメニューを式で動的に指定する場合で、メニュー名で指定する必要がある場合は、この関数を利利用してください。また、MnuAdd関数やMnuRemove関数で使用することができます。
構文： | MenuIdx(メニュー名,'論理値)
パラメータ： | メニュー名 … [メニュー]リポジトリに定義されているメニュー名 論理値 … このパラメータは予約値です。必ず「False」を指定してください。
戻り値： | 数値 … 指定されたメニュー名が登録されている[メニュー]リポジトリ上の番号
例 | メニューリポジトリに以下のようにメニューが登録されているものとします。 #1 Default Pulldown menu #2 Default Context menu #3 Sample menu
 | MenuIdx('Sample menu','FALSE'LOG)では、「3」が返ります。


関数ディレクトリ MMClear

MMClear

式エディタ > 関数ディレクトリ

マーク行のクリア マルチマークされた行をクリアします。
構文： | MMClear( )
パラメータ： | なし
戻り値： | 論理値 … 処理に成功した場合「True」が返ります。
注意事項： | 関数が、マークされた行の処理中に実行されると、処理が終了した後にクリアされます。


関数ディレクトリ MMCount

MMCount

式エディタ > 関数ディレクトリ

マーク行数 マルチマークされた行数を取得します。
構文： | MMCount(世代番号)
パラメータ： | 世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。
戻り値： | 数値 …マークされた行数


関数ディレクトリ MMCurr

MMCurr

式エディタ > 関数ディレクトリ

現在処理中のマーク行 マークされた行の中の現在処理中の行を取得します。
構文： | MMCurr(0)
パラメータ： | 数値 …現在のタスクを表す「0」 を指定します。
戻り値： | 値 …マークされた行の中の現在処理中の行


関数ディレクトリ MMStop

MMStop

式エディタ > 関数ディレクトリ

マルチマークの中断 マルチマークハンドラを中断します。
構文： | MMStop()
パラメータ： | なし
戻り値： | 論理値 … 処理に成功した場合「True」が返ります。 現在実行中のレコードに対するハンドラの実行が停止します。レコードのマーク処理がキャンセルされ、この関数が実行されたレコード上にカーソルがパークします。
注意事項： | MMイベント内でMMStopの評価後の処理は実行されません。


関数ディレクトリ MnuAdd

MnuAdd

式エディタ > 関数ディレクトリ

メニューの追加

メニュー構造を現在実行中のプルダウンメニューに追加します。

構文：

MnuAdd (メニュー番号, メニューパス)

パラメータ：

メニュー番号 … 追加するメニュー構造となる[メニュー]リポジトリのテーブル番号。MENUリテラルが使用できます。

メニューパス … 追加されるメニューの論理メニュー名
指定されたメニューパスの右（または下）隣に追加されます。「M=メニュー」タイプのサブメニューとして追加する場合は、「\」で論理メニューをつなげてパス表記にします。 パスの末尾に｢\｣がない場合は、メニューの下に追加され、｢\｣がある場合は、指定されたメニューのサブメニューとして追加されます。

「メニューパスの設定」を参照してください。

戻り値：

論理値 … 処理が成功した場合、「True」が返ります。

追加されるメニューが以下の場合は、「False」が返ります。

  • メニューのタイプが「M=メニュー」以外

  • プロダウンメニュー以外

例：

MnuAdd('3’MENU,'Edit\Customers’)

[メニュー]リポジトリの３番目のメニューが[Edit]メニューの[Customers]サブメニューの後に追加されます。

注意事項：

  • アプリケーション実行時のプルダウンメニューを検索します。メニューが見つかった場合、指定されたメニュー構造を追加します。メニューパスが見つからない場合は、処理が失敗します。

  • 追加されたメニューはアプリケーション実行中のみ有効です。

  • メニューパスが空白の場合、最上位のプルダウンメニューに追加されます。

  • 以下のメニュー関数が、追加されたメニューに対して有効になります。

MnuEnabl, MnuShow, MnuName, MnuCheck.


関数ディレクトリ MnuCheck

MnuCheck

式エディタ > 関数ディレクトリ

メニュー項目のチェックマークの表示／非表示を設定

メニュー項目の前のチェックマークの表示／非表示を設定します。

構文：

MnuCheck(論理メニュー名,論理値)

パラメータ：

論理メニュー名…[メニュー定義]テーブルの[論理メニュー名]カラムの論理メニュー名

論理値…チェックマークの有効／無効を指定します。

  • True …チェックマークが表示されます。

  • False…チェックマークは表示されません。

戻り値：

論理値… 処理に成功した場合「True」が返ります。

例：

MnuCheck('ENTRY','TRUE'LOG)

注意事項：

  • この関数は、トップレベルのプルダウンメニューには使用できません。

  • メニューの階層の検索が行われた後、検索された項目に対して処理が実行されます。


関数ディレクトリ MnuEnabl

MnuEnabl

式エディタ > 関数ディレクトリ

メニュー項目の有効／無効を設定

メニュー項目の有効／無効を設定します。

構文：

MnuEnabl(論理メニュー名,論理値)

パラメータ：

論理メニュー名…[メニュー定義]テーブルの[論理メニュー名]カラムの論理メニュー名

論理値…メニュー項目の有効／無効を指定します。

  • True …メニュー項目が有効になります。

  • False …メニュー項目は無効になります。

戻り値：

論理値… 処理に成功した場合「True」が返ります。

例：

MnuEnabl('Prog1','TRUE'LOG)

注意事項：

  • メニューの階層の検索が行われた後、検索された項目に対して処理が実行されます。

  • 内部イベントが設定されたメニューの有効/無効は設定できません


関数ディレクトリ MnuName

MnuName

式エディタ > 関数ディレクトリ

メニュー名の変更 指定したメニューのユーザメニュー名を変更します。
構文： | MnuName(論理メニュー名、ユーザメニュー名)
パラメータ： | 論理メニュー名…変更したいメニューの論理メニュー名 ユーザメニュー名…置き換えるメニュー名
戻り値： | 論理値… 処理に成功した場合「True」が返ります。
例： | MnuName('entity_list', '&Customer list')
 | 'Customer list' は、変更するメニュー名です。 先頭の '&' は、先頭の文字がショートカットキーであることを示します。 'entry_list' は、論理メニュー名です。
注意事項： | メニューの階層の検索が行われた後、検索された項目に対して処理が実行されます。


関数ディレクトリ MnuRemove

MnuRemove

式エディタ > 関数ディレクトリ

メニューの削除

MnuAdd関数で追加されたメニュー構造を削除します。

構文：

MnuRemove (メニュー番号, メニューパス)

パラメータ：

メニュー番号 … 削除されるメニュー構造となる[メニュー]リポジトリのテーブル番号。MENUリテラルが使用できます。

メニューパス … 削除されるメニューの論理メニュー名

どちらも、MnuAdd関数にて指定された同じパラメータを指定します。同じメニューが複数追加されている場合、右（または下）隣から削除されます。

戻り値：

論理値 … 処理が成功した場合、「True」が返ります。

例：

MnuRemove('3’MENU,'Edit\Customers’)

実行時のメニューからMnuAdd('3’MENU,'Edit\Customers)によって追加されたメニューが削除されます。

注意事項：

  • プルダウンメニューからMnuAdd関数で追加されたメニューを検索して削除します。メニュー構造は、検索された最初の場所から削除されます。

  • メニューが存在しない場合、関数は「False」を返します。

  • 関数が実行されたコンテキスト内でのみ削除されます。

  • メニュー番号にデフォルトのプロダウンメニューの番号を指定し、メニューパスを空白にすることで、プルダウンメニューが全て削除されます。


関数ディレクトリ MnuReset

MnuReset

式エディタ > 関数ディレクトリ

デフォルトプルダウンメニューの復元 デフォルトのプルダウンメニュー構造を元に戻します。
構文： | MnuReset ()
パラメータ： | なし
戻り値： | 論理値 … 処理が成功した場合、「True」が返ります。
注意事項： | SDIの場合、この関数は[フォーム特性]の[プルダウンメニュー]特性で定義されたメニューの復旧を行います。


関数ディレクトリ MnuShow

MnuShow

式エディタ > 関数ディレクトリ

メニュー項目の表示／非表示を設定

メニュー項目の表示／非表示を設定します。

構文：

MnuShow (論理メニュー名,論理値)

パラメータ：

論理メニュー名…[メニュー定義]テーブルの[論理メニュー名]カラムの論理メニュー名

論理値 …メニュー項目を表示するか否かを指定します。

戻り値：

論理値… 処理に成功した場合「True」が返ります。

例：

MnuShow('Menu','TRUE'LOG)

注意事項：

  • メニューが表示されていない時には、ショートカットキーを使用できるメニュー項目であっても無効になります。

  • メニューの階層の検索が行われた後、検索された項目に対して処理が実行されます。


関数ディレクトリ Prog

Prog

式エディタ > 関数ディレクトリ

タスクのパス 現在のタスクのパスを返します。そのタスクのパスとタスク名が文字列で返ります。パスのタスク名はセミコロン（;）で区切られます。
構文： | Prog()
パラメータ： | なし
戻り値： | 文字列 … タスクの実行パス（文字列）
例： | Prog()
 | 例えば、「販売受注書（顧客別）;顧客（ヘッダ）;受注行」が返ります。
関連項目： | Menu


関数ディレクトリ ProgIdx

ProgIdx

式エディタ > 関数ディレクトリ

プログラム番号

[コール式]処理コマンドで使用される[プログラム]リポジトリ番号を返します。

構文：

ProgIdx(プログラム名,種別)

パラメータ：

プログラム名…[プログラム]リポジトリ上のプログラム名

種別…プログラム名の種別（論理値）

  • True …公開プログラム名を示します

  • False …プログラム名を示します

戻り値：

数値…[プログラム]リポジトリ上の番号

例：

ProgIdx('Calculate', 'FALSE'LOG)

ProgIdx(A,'TRUE'LOG) A は文字項目です。

この関数の使用例として、外部のデータベースに格納されているプログラム名を基にユーザメニューを動的に表示させることができます。プログラムの名前を変更することは、アプリケーション内の位置を変更するほど一般的でないため、この方法がプログラムを動的に呼び出すよい方法になります。

関連項目：

Menu


関数ディレクトリ ProjectDir

ProjectDir

式エディタ > 関数ディレクトリ

プロジェクトディレクトリ名の取得 プロジェクトファイルが保存されているディテクトリ名を返します。
構文： | ProjectDir ()
パラメータ： | なし
戻り値： | 文字列 … プロジェクトファイル（EDP）のディレクトリを表す文字列が返ります。
参照 | プロジェクトディレクトリの取得


関数ディレクトリ PublicName

PublicName

式エディタ > 関数ディレクトリ

公開プログラム名の取得 実行中のプログラムの公開名を返します。
構文： | PublicName (世代番号)
パラメータ： | 世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。
戻り値： | 文字列 … プログラムの公開名。世代番号がプログラムを指定していない（サブタスクやメインプログラムなど）場合、NULLが返ります。
例： | PublicName(0)
 | 現在実行中のプログラムの公開名が「LIST」の場合、「LIST」が返ります。
関連項目： | TaskID


関数ディレクトリ Rollback

Rollback

式エディタ > 関数ディレクトリ

トランザクションのロールバック

ネストレベルを指定し、その位置までトランザクションをロールバックします。

構文：

Rollback(論理値,ネストレベル)

パラメータ：

論理値…確認メッセージの表示の有無を指定します。

  • True…ロールバックの際に「トランザクションをロールバックしますか？」という確認メッセージが表示されます。

  • False…ロールバックの際に確認のメッセージは表示されません。

ネストレベル…数値。どのレベルまでロールバックするかを示す以下の数値です。

  • 1…最も内側のネストトランザクションをロールバックします。

  • 2…最も内側のすぐ上位のトランザクションをロールバックします。

  • 0…最も外側のトランザクションをロールバックします。

戻り値：

論理値

  • True…トランザクションがロールバックされた時

  • False…トランザクションがアボートされた時

例：

Rollback('TRUE'LOG,0)

注意事項：

  • この関数は、物理トランザクションモードの場合、使用するDBMSに対してトランザクションの破棄を行います。遅延トランザクションモードの場合、Magicエンジンのデータ処理内でトランザクションの破棄を行います。

  • ネストレベルは、遅延トランザクションの場合はネスト遅延を設定したレベルで制御できます。一方、物理トランザクションの場合は、もっとも外側のレベルのみサポートしています。

  • 現在のプログラム外のレベルにロールバックするネストレベルは指定しないでください。

  • 通常、「トランザクションロールバック」は、データベースエラーまたはシステムクラッシュのために用意されていますが、アプリケーションに関連する例外状況の処理にも役立ちます。

  • 例えば、財務トランザクションを処理するバッチプログラムがあり、現在、マスターレコードの残高の更新が行われていたとします。更新時、カレントのトランザクションレコードの読込後、通常は\5,000 から\100,000 までの間にある残高が\10,000,000 を超えていました。この場合、数字が余りにも大きく、間違いである可能性もあることから、マスターレコードや関連レコードを更新しない場合があります。こういった時には、残高をチェックする条件付きの[アクション]処理コマンドでRollback関数を使用することで、このような状況に対して対処が可能になります。

  • リッチクライアントタスクの場合は、Rollback(FALSE'LOG,1)のみがサポートされます。これ以外の値は'FALSE'LOGまたは1と評価されます。


関数ディレクトリ RunMode

RunMode

式エディタ > 関数ディレクトリ

実行モードに対応する数値コード

エンジンの実行モードに対応する数値コードを取得します。

構文：

RunMode()

パラメータ：

なし

戻り値：

実行モードを表す数値

  • -1 …
    最初にメインプログラムが実行された場合
    プロジェクトがクローズされ、他のプロジェクトが最初のコンテキストでオープンされた場合
    プロジェクトがマルチスレッドで最初にオープンされた場合
    （サブタスクや、サブプログラムで実行された場合は、0 になる。）

  • 0 …プログラムが実行版で動作しており、フォアグラウンドまたはバックグラウンドで動作している場合
    開発エンジンがバックグラウンドで動作している場合

  • 1 …アプリケーションがユーザ定義開発メニューから起動されている場合

  • 2 …プログラムが開発版で動作しており、プロジェクトが実行モードに切り替わった場合

  • 3 …プログラムが開発版で動作しており、[プログラム]リポジトリ上から実行されている場合


関数ディレクトリ SetLang

SetLang

式エディタ > 関数ディレクトリ

使用する言語を設定 使用する言語を設定します。ここで指定した言語変換ファイルを使用してMLS機能が動作します。
構文： | SetLang(文字列)
パラメータ： | 文字列 …[言語]テーブルに定義されている言語名を指定します。空白の場合、設定が解除されます。
戻り値： | 論理値 … 処理に成功した場合「True」が返ります。
例： | SetLang('French')
関連項目： | GetLang


関数ディレクトリ SetParam

SetParam

式エディタ > 関数ディレクトリ

グローバルパラメータの設定 グローバパラメータを設定します。値は現在のコンテキストに対して設定されます。グローバルパラメータは、タスク内で定義されない名前付きの変数です。
構文： | SetParam (パラメータ名,値)
パラメータ： | パラメータ名 … グローバル変数の名前。このグローバル変数に値が設定されます。 値 … グローバル変数に設定する値 NULLl（NULL関数または、'' のように長さが0の文字列）を指定するとエントリが削除されます。
戻り値： | 論理値… 処理に成功した場合「True」が返ります。
例： | SetParam('P-Employee name', BA)
 | 項目BA の値がグローバルパラメータ'P-Employee name'に格納されます。
 | SetParam('Param-name','')
 | 現在のコンテキストからグローバルパラメータを削除します。
 | SetParam('P_DATE’,EOM(Date())+1)
 | メモリ内の「P_DATE」と呼ばれる項目を作成します。ここには、次月の1日の日付データが含まれています。GetParam('P_DATE’)を実行することで、同じ式を使用する代わりにメモリ内のこの値を取り出して日付型項目に設定することができます。 これは、２つのグローバルパラメータ間でデータのやり取りをする新しい方法です。
関連項目： | GetParam


関数ディレクトリ Stat

Stat

式エディタ > 関数ディレクトリ

タスクの処理モードのチェック

タスクのモード（照会モード、修正モードなど）を確認します。

構文：

Stat(世代番号,モード)

パラメータ：

世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

モード … 確認する処理モードの頭文字を表す文字。MODEリテラルを指定してください。

  • 'C'MODE … 登録モード

  • 'M'MODE … 修正モード

  • 'Q'MODE … 照会モード

  • 'D'MODE … 削除モード

戻り値：

論理値

  • True … 指定した処理モードが正しい場合

  • False … 処理モードが合っていない場合

例：

現在のタスクのモードが登録モードまたは修正モードの場合、Stat（0,'CM'MODE）では、「True」 が返ります。

注意事項：

  • 削除（'D'MODE）モードは、[レコード後]でのみチェックが可能です。

  • ハンドラの[有効]欄に指定された場合、指定したタスクのモードではなく、イベントが実行されたタスクのモードで判断されます。

関連項目：

リテラル


関数ディレクトリ SubformExecMode

SubformExecMode

式エディタ > 関数ディレクトリ

サブフォームの実行モード

サブフォームの実行モードを返します。この情報は、サブフォームのロジックを実行時のモードによって切り替える必要がある場合に使用します。

構文：

SubformExecMode(世代番号)

パラメータ：

世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

数値 … 実行モードを表す数値。以下の値が返ります。

  • -1 … タスクは、サブフォームとして実行していない場合

  • 0 … フォーカスを設定することでサブフォーム内のタスクが実行された場合

  • 1 … サブフォーム内のタスクが初めて実行された場合

  • 2 … [自動再表示]特性や[サブフォーム再表示]イベントによってタスクが起動された場合

例：

SubformExecMode(0)

もしサブフォームが初めて現在のタスクで起動された場合、「1」が返ります。


関数ディレクトリ TaskID

TaskID

式エディタ > 関数ディレクトリ

タスクIDの取得 実行中のタスクのタスクIDを返します。
構文： | TaskID (世代番号)
パラメータ： | 世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。
戻り値： | 文字列 … タスクIDを表す文字列。世代番号で指定されたタスクが存在しない場合、NULLが返ります。
例： | TaskID(0)
 | 現在実行中のプログラムのタスクIDが「TSK_A12」の場合、「TSK_A12」が返ります。
参照 | PublicName


関数ディレクトリ TDepth

TDepth

式エディタ > 関数ディレクトリ

タスクの深さ 現在のタスクのネスト情報が返ります。
構文： | TDepth()
パラメータ： | なし
戻り値： | 数値（1～256） … 現在のタスクに対するタスク階層上の深さを示します。
例： | Depth()では、現在のタスクがメインプログラムから呼び出されている場合、1 が返ります。
関連項目： | Level


関数ディレクトリ TransMode

TransMode

式エディタ > 関数ディレクトリ

トランザクション情報

現在アクティブなトランザクションのモードを返します。

構文：

TransMode ()

パラメータ：

なし

戻り値：

文字…以下の値が返ります。

  • D…遅延トランザクション

  • P…物理トランザクション

トランザクションがアクティブでない場合は、空白が返ります。


関数ディレクトリ TreeLevel

TreeLevel

式エディタ > 関数ディレクトリ

ツリーレベルの取得 データツリー上の選択されたノードの現在のレベルを返します。
構文： | TreeLevel()
パラメータ： | なし
戻り値： | 選択されたノードのレベル


関数ディレクトリ TreeValue

TreeValue

式エディタ > 関数ディレクトリ

ノードID 選択されたノードの現在のレベルによって決定されたノードIDを返します。
構文： | TreeValue(ツリーレベル)
パラメータ： | ツリーレベル … データツリーにおけるノードの階層上の位置を表す数値。 0 は現在のノード、 1はその親を表します。
戻り値： | ノードID


関数ディレクトリ UnLock

UnLock

式エディタ > 関数ディレクトリ

リソースのロックを解除

Lock関数によってロックされたリソースを解除します。

構文：

UnLock(リソース)

パラメータ：

リソース … ロック済みのリソースを示す文字列。長さは0～128。スペースを渡すと、スペースのリソースのロックを解除します。

戻り値：

数値 … 処理結果を表します。

  • 0…失敗（リソースが同一セッション内においてロックされていない）

  • 1…成功

注意事項：

  • 長い式は切り捨てられます。

  • リソースをロックしたセッションに対してのみ、そのリソースのロックを解除することができます。

関連項目：

Lock


関数ディレクトリ ViewMod

ViewMod

式エディタ > 関数ディレクトリ

データビューのレコードが修正されたことの確認

データビューのレコードが読み込まれた後、そのレコードが修正されたかどうかを確認します。

構文：

ViewMod(世代番号)

パラメータ：

世代番号…タスクの階層上の位置を示す値で、カレントのタスクが0 、親タスクが1 、その親タスクが2 などとなります。

戻り値：

論理値

  • True…レコードの内容が修正されていた場合

  • False…修正されていない場合

例：

ViewMod（0）という式が[エラー]処理コマンドで条件として使われている場合、現在のタスクで現在のレコードが読込後に修正されていれば、エラーメッセージが表示されます。

関連項目：

VarMod


関数ディレクトリ データベース関数

データベース関数

式エディタ > 関数ディレクトリ

ClrCache …… 現在のタスクのデータキャッシュをクリアします。

CurrPosition …… 現在のタスクのメインソースのレコードの位置を返します。

DbCache …… キャッシュのヒット率（整数）を返します。

DbCopy …… 既存のデータソースのコピーを行います。

DbDel …… [データ]リポジトリに定義されているデータソースを削除します。

DbDiscnt …… データベースの現在の接続を切断します。

DbERR …… データベースのエラーメッセージを返したり消したりします。

DbExist …… データソースがディスクに存在するかどうかを確認します。

DbName …… [データ]リポジトリのデータソースの名前を返します。

DbRecs …… データソースにある行（レコード）の数をカウントします。

DbReload …… 実行時に常駐テーブルを読み込みます。

DbRound …… 指定した小数点で数値を四捨五入します。

DbSize …… データソースのサイズを返します。

DbViewRowIdx …… キャッシュされたビュー内のレコードの連番を取得します。

DbViewSize …… キャッシュされたレコード数を取得します。

DbXmlMixedGet …… 混在内容のXML要素からテキストを取得します。

DbXmlMixedSet …… 混在内容のXML要素にテキストを設定します。

EmptyDataView …… データビューが空の場合、Trueを返します。

ErrDatabaseName …… エラーが発生したデータベースの名前を返します。

ErrDbmsCode …… エラーが発生したDBMS のオリジナルのエラーコードを返します。

ErrDbmsMessage …… エラーが発生したDBMS のオリジナルのエラーメッセージを返します。

ErrMagicName …… 発生した（リテラル付きの）エラーメッセージを取得します。

ErrPosition …… エラーが発生したレコードの位置を返します。

ErrTableName …… エラーが発生したDB テーブル名を返します。

InTrans …… トランザクションが現在オープンしているかどうかをチェックします。

Logging …… プログラム内で動的にアクティビティモニタのフィルタ指定（有効／無効）を指定します。

MTblGet …… メモリテーブルの内容をBLOBデータに変換します。

MTblSet …… （MTblGetで作成された）BLOB項目の内容をメモリテーブルに展開します。

Rollback …… ネストレベルを指定し、その位置までトランザクションをロールバックします。

TransMode …… 現在アクティブなトランザクションのモードを返します。

ViewMod …… データビューのレコードが読み込まれた後、そのレコードが修正されたかどうかをチェックします。


関数ディレクトリ ClrCache

ClrCache

式エディタ > 関数ディレクトリ

現在のタスクのキャッシュをクリア 現在のタスクのデータキャッシュをクリアし、Magic が直接データベースからレコードを読むようにします。この関数はオンラインタスクとリッチクライアントタスクでのみ有効です。
構文： | ClrCache()
パラメータ： | なし
戻り値： | 論理値… 処理に成功した場合「True」が返ります。


関数ディレクトリ CurrPosition

CurrPosition

式エディタ > 関数ディレクトリ

メインソースの現在の位置を取得 現在のタスクのメインソースのレコードの位置を返します。 同じメインソースを使用するタスクの、[範囲／位置付]ウィンドウの[ポジション]特性に、この関数で取得したBLOB 変数を代入することにより、本関数発行時の位置に位置付けできます。
構文： | CurrPosition(世代番号)
パラメータ： | 世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。
戻り値： | BLOB値
注意事項： | この関数は、XMLソースでサポートされます。


関数ディレクトリ DbCopy

DbCopy

式エディタ > 関数ディレクトリ

データベーステーブルのコピー

この関数を使用して、既存のデータソースのコピーが可能です。データのほか、定義もコピーされます。このDbCopy は、ISAM とSQL の両方のファイルに使用できます。

構文：

DbCopy (番号,元データ,新データ)

パラメータ：

番号…[データ]リポジトリに定義されているデータソースを示す番号（連番）です。

元データ…コピー元のデータソース名です。[データ]リポジトリの[データソース名]カラムに指定された名前と違う名前を指定する場合に使用するオプション。

新データ…コピー先のデータソース名です。

戻り値：

論理値… 処理に成功した場合「True」が返ります。

以下の場合、処理は失敗します。

  • 元データが現在オープン中の場合

  • 元データが常駐テーブルである場合

  • 元データが存在しない場合…この時には、「データソースがみつかりません：<データソース名>」というエラーメッセージが表示されます。

  • 新データがすでに存在している場合…この時には、「目的のデータソースは既に存在しています。作成に失敗しました：<データソース名>」というエラーメッセージが表示されます。

  • 元データがビューの場合…この時には、「ビューの作成／移動／複写はできません.ビュー：<データソース名>」というエラーメッセージが表示されます。

  • 上記以外のエラーの場合…この時には、「データソースの複写に失敗しました. データソース：<元データ>」というエラーメッセージが表示されます。

例：

DbCopy (5,'c:\temp\firstfile.txt','c:\temp\copiedfile.txt')

注意事項：

Oracleのテーブルに対してDbCopyを実行するとインデックス名はKEY001＋ファイル名１２文字以下で作成されます。


関数ディレクトリ DbDel

DbDel

式エディタ > 関数ディレクトリ

データベーステーブルを削除

[データ]リポジトリに定義されているデータテーブルを削除します。

構文：

DbDel(番号,データソース名)

パラメータ：

番号…[データ]リポジトリに定義されているデータソースを示す番号です。

データソース名…上記の[番号]パラメータの代わりに、ここにデータソースの名前を指定することもできます。指定しない場合、「''」を入力しておきます。パスを指定することもでき、パスを指定していない場合、ディレクトリはカレントのディレクトリと解釈されます。

戻り値：

論理値… 処理に成功した場合「True」が返ります。

例：

DbDel(1,"）またはDbDel('1'DSOURCE,''）では、[データ]リポジトリの最初のデータソースが削除されます。処理に成功すると、「True」 が返ります。

また、DbDel (1,'FSTFIL.DAT'）では、カレントのディレクトリの「FSTFIL.DAT」というデータソース名を使用する[データ]リポジトリの最初のデータソースが削除されます。

関連項目：

DbRecs, DbExist, DbSize

注意事項：

  • リテラルコードのDSOURCEを使用してデータソースを指定しておくと、[データ]リポジトリのデータソースの順番が変わった時には自動的にデータソースの番号が更新されるため、指定したデータソースを正確に削除することができます。一方、DSOURCEを使用しなかった場合は、必ず指定された番号のデータソースが削除されます。

  • パラメータとして常駐テーブルが指定されると、DbDel関数は常駐テーブルから全ての行を削除します。このデータソースを次にオープンする時には、そのデータベースから行が再度読み込まれます。


関数ディレクトリ DbDiscnt

DbDiscnt

式エディタ > 関数ディレクトリ

現在のデータベース接続を切断

指定したデータベースの現在の接続を切断します。DbDiscnt はSQL データベースに関連した関数です。現在接続しているデータベースにおいて、オープンしているカーソルが存在しない場合にのみ、その切断を行うことが許されます。カーソルがオープンされている状態でDbDiscnt 関数が起動された場合には、エラーメッセージが表示されます。

現在のデータベース接続の切断は、アプリケーションで必要のなくなったデータベースからユーザを切断したり、あるいは別のユーザをそのデータベースに接続するために既接続ユーザを切断したりする目的で行われます。

構文：

DbDiscnt(文字列)

パラメータ：

文字列…データベース名を意味する英文字列

戻り値：

論理値… 処理に成功した場合「True」が返ります。

以下の場合、「False」が返ります。

  • 切断に失敗した場合

  • 接続そのものが存在しない場合

例：

DbDiscnt('MSSQL')

「MSSQL」は、[データベース]テーブルに定義されているデータベース名を表しています。


関数ディレクトリ DbERR

DbERR

式エディタ > 関数ディレクトリ

データベースからのエラーメッセージ データベースエラーメッセージを返します。内部処理エラーを引き起こすようなエラーのうちの最初のエラーメッセージ、または、複数のエラーが連鎖して発生するようなエラーの最初のエラーメッセージが返ります。この関数では、データベースエラーメッセージまたはデータベースエラーコードの取得のほか、ユーザにメッセージを表示することもできます。また、この関数では、エラーメッセージの消去も可能です。
構文： | DbERR(文字列)
パラメータ： | 文字列…文字列または文字列式で、データベースの名前を指定します。
戻り値： | SQL の場合…エラーメッセージが返ります。 ISAM の場合…エラーコマンドを指す数値が返ります。
例： | エラーチェックの直後、DbERR 関数を[項目更新]処理コマンドで使用することで、直前のエラーを消去することができます。
注意事項： | 戻り値の内容は、使用するDBMS に依存します。


関数ディレクトリ DbExist

DbExist

式エディタ > 関数ディレクトリ

ディスク上のデータソースの存在確認

データソースを指定し、ディスクに存在するかどうかを確認します。

構文：

DbExist(番号,データソース名)

パラメータ：

番号…[データ]リポジトリに定義されているデータソースの番号（連番）

データソース名…上の[番号]パラメータの代わりに、ここにデータソース名を指定することもできます。指定しない場合、「''」を入力しておきます。パスを指定することもでき、パスを指定していない場合、ディレクトリはカレントディレクトリと解釈されます。

戻り値：

論理値… テーブルが存在する場合「True」が返ります。

例：

DbExist(1,''）またはDbExist('1'DSOURCE,''）では、指定したデータソースが存在していた場合、「True」 が返ります。

DbExist (1,'FSTFIL.DAT'）では、カレントディレクトリの「FSTFIL.DAT」というデータソース名を使用して[データ]リポジトリの最初のデータソースが検索されます。

注意事項：

  • リテラルコードのDSOURCEを使用してデータソースを指定しておくと、[データ]リポジトリのデータソースの順番が変わった時には自動的にデータソースの番号が更新されるため、指定したデータソースを正しく検索することができます。一方、DSOURCEを使用しなかった場合は、必ず指定した番号のデータソースが検索されます。

  • [番号]パラメータに「0」を指定した場合、や[データ]リポジトリの最大の番号より大きい番号を指定した場合、「False」 が返ります。

関連項目：

DbDel, DbRecs, DbSize


関数ディレクトリ DbName

DbName

式エディタ > 関数ディレクトリ

データベーステーブル名 [データ]リポジトリのデータソース名が返ります。
構文： | DbName(番号)
パラメータ： | 番号…[データ]リポジトリの行（データソース）の番号です。この番号のデータソースの名前が返ります。
戻り値： | [データ]リポジトリの行(データテーブル）の名前
例： | DbName(3）またはDbName('3'SROURCE）では、どちらも、[データ]リポジトリの3 番目のデータソースの名前が返ります。
注意事項： | リテラルコードのDSOURCEを使用してデータソースを指定しておくと、[データ]リポジトリのデータソースの順番が変わった時には自動的にデータソースの番号が更新されます。このため、いつでも、指定したデータソース名を取り出すことができます。一方、DSOURCEを使用しない場合は、必ず指定した番号のデータソース名が取り出されます。


関数ディレクトリ DbRecs

DbRecs

式エディタ > 関数ディレクトリ

データソースの行数

データソースにある行（レコード）の数が返ります。

構文：

DbRecs(番号,データソース名)

パラメータ：

番号 …[データ]リポジトリに定義されているデータソースの番号（連番）

データソース名 …上記の[番号]パラメータの代わりに、ここにデータソース名を指定することもできます。指定しない場合、「''」を入力しておきます。パスを指定することもでき、パスを指定していない場合、ディレクトリはカレントディレクトリと解釈されます。

戻り値：

数値…レコードの数（レコードがない時には0 ）

例：

DbRecs(1,''）またはDbRecs（'1'DSOURCE,''）では、どちらも、[データ]リポジトリの最初のデータソースのレコード数が返ります。

DbRecs(1,'FSTFIL.DAT'）では、カレントディレクトリの「FSTFIL.DAT」という名前のデータソースのレコード数が返ります。

関連項目：

DbDel, DbExist, DbSize

注意事項：

  • リテラルコードのDSOURCEを使用してデータソースを指定しておくと、[データ]リポジトリのデータソースの順番が変わった時には自動的にデータソースの番号が更新されます。このため、いつでも、指定したデータソース名を正しく取り出すことができます。一方、DSOURCE を使用しない場合は、必ず指定した番号のデータソース名が取り出されます。

  • 指定されたデータソースがXMLソースの場合、この関数はフラットビュー内のレコード数を返します。これ以外の場合は、「0」が返ります。


関数ディレクトリ DbReload

DbReload

式エディタ > 関数ディレクトリ

実行時の常駐テーブルの読込

実行時に常駐テーブルを読み込みます。

第２パラメータにデータソースのパスを指定した場合、それまでのパスは削除され、指定したパスのデータソースが読み込まれます。

構文：

DbReload(番号,データソース名)

パラメータ：

番号 …[データ]リポジトリに定義されているデータソースの番号（連番）

データソース名 …上の[番号]パラメータの代わりに、ここにデータソース名を指定することもできます。指定しない場合、「''」を入力しておきます。パスを指定することもでき、パスを指定していない場合、ディレクトリはカレントディレクトリと解釈されます。

戻り値：

論理値… 処理に成功した場合「True」が返ります。

例：

DbReload(3,'')

注意事項：

  • DbReloadは現在のコンテキストの常駐テーブルのみを読み込みます。

  • この関数は、[常駐テーブル読込]特性が「Yes」に設定されている場合のみ有行です。

  • XMLソースの場合は使用できません。常に「False」が返ります。


関数ディレクトリ DbRound

DbRound

式エディタ > 関数ディレクトリ

SQL系DB用の四捨五入関数 指定した小数点で数値を四捨五入します。この関数は、SQL系のDBMSの動作に依存します。戻り値は、Round 関数と異なる場合があります。
構文： | DbRound(数値,小数部桁数)
パラメータ： | 数値…数値が返る式か、固定の数値 小数部桁数…四捨五入する小数点の位置。正数の場合は小数点以下として四捨五入されますが、負数の場合は小数点以上の桁数として処理されます。
戻り値： | 数値
注意事項： | DbRoundは必ず値が返ります。もしも、小数部の桁数が負数で、整数部の桁数よりも大きな値にすると、0 が返ります。
例： | DbRound(657.4545,2) = 657.45 DbRound(657.4552,2) = 657.46 DbRound(657.37,-4) = 0 DbRound(657.37,-1) = 660.00 DbRound(657.37,-2) = 700.00 DbRound(657.37,-3) = 1000.00


関数ディレクトリ DbSize

DbSize

式エディタ > 関数ディレクトリ

データソースのサイズ

データソースのサイズが返ります。

構文：

DbSize(数値,データソース名)

パラメータ：

番号…[データ]リポジトリに定義されているデータソースの番号（連番）

データソース名…上の[番号]パラメータの代わりに、ここにデータソース名を指定することもできます。指定しない場合、「''」を入力しておきます。パスを指定することもでき、パスを指定していない場合、ディレクトリはカレントディレクトリと解釈されます。

戻り値：

数値…テーブルサイズ（データソースがない時には0 ）

例：

DbSize(1,'')またはDbSize('1'DSOURCE,'')では、[データ]リポジトリの最初のデータソースのデータのサイズ(バイト数）が返ります。なお、ディスク上の実際のデータソースのサイズは、これより大きいことがあります。

DbSize(1,'FSTFIL.DAT')では、カレントディレクトリの「FSTFIL.DAT」という名前のデータソースのサイズが返ります。

注意事項：

  • リテラルコードのDSOURCEを使用してデータソースを指定しておくと、[データ]リポジトリのデータソースの順番が変わった時には自動的にデータソースの番号が更新されます。このため、いつでも、指定したデータソースの名前を正しく取り出すことができます。一方、DSOURCE を使用しない場合は、必ず指定した番号のデータソースの名前が取り出されます。

  • 指定されたデータソースがXMLソースの場合、この関数は（通常のデータソースのように）レコード長によって増加されたフラットビュー内のレコード数を返します。これ以外は「0」が返ります。

関連項目：

DbDel, DbExist, DbRecs


関数ディレクトリ DbViewRowIdx

DbViewRowIdx

式エディタ > 関数ディレクトリ

レコード番号の取得

タスクのデータビューがキャッシュされている場合、キャッシュ内のレコード番号を取り出します。この関数を使用することで、どの行に現在パークしているかが確認できます。

構文：

DbViewRowIdx (世代番号)

パラメータ：

世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

数値 … キャッシュされたビュー内のレコードの連番を表す数値

注意事項：

  • この関数は、タスクの[ビュー事前読込]特性が、「Yes」に設定された場合のみ有効です。

  • メインソースが定義されていなかったり、[ビュー事前読込]特性が「No」に設定されている場合は、「0」が返ります。

関連項目：

DbViewSize


関数ディレクトリ DbViewSize

DbViewSize

式エディタ > 関数ディレクトリ

キャッシュレコード数の取得

現在のデータビュー内のレコード数を取り出します。

構文：

DbViewSize(世代番号)

パラメータ：

世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

数値 … キャッシュされたレコード数を表す数値

注意事項：

  • メインソースが定義されていなかった場合は、「0」が返ります。

  • [ビュー事前読込]特性が「Yes」に設定されている場合は、ビュー定義によって取得された全てのレコード数が返ります。

関連項目：

DbViewRowIdx


関数ディレクトリ ErrDatabaseName

ErrDatabaseName

式エディタ > 関数ディレクトリ

エラーデータベース名 エラーが発生したデータベースの名前が返ります。
構文： | ErrDatabaseName( )
パラメータ： | なし
戻り値： | 文字列…エラーが発生したデータベースの名前


関数ディレクトリ ErrDbmsCode

ErrDbmsCode

式エディタ > 関数ディレクトリ

データベースエラーコード エラーが発生したDBMS のオリジナルのエラーコードが返ります。
構文： | ErrDbmsCode( )
パラメータ： | なし
戻り値： | 数値…DBMS のオリジナルのエラーコード
注意事項： | この関数は、致命的で予測できないエラーに対して使用できます。このエラーコードを基に開発者がDBMS のエラー原因を追求できます。


関数ディレクトリ ErrDbmsMessage

ErrDbmsMessage

式エディタ > 関数ディレクトリ

データベースエラーメッセージ エラーが発生したDBMS のオリジナルのエラーメッセージが返ります。
構文： | ErrDbmsMessage( )
パラメータ： | なし
戻り値： | DBMS のオリジナルのエラーメッセージ
注意事項： | この関数は、致命的で予測できないエラーに対して使用できます。Magic は、DBMS から内部メッセージを取得して表示します。


関数ディレクトリ ErrMagicName

ErrMagicName

式エディタ > 関数ディレクトリ

データベースエラー：Magicのエラーメッセージ 直前に発生したMagicのエラーメッセージが返ります。エラー一覧に表示されている文字列で返ります。 返されるエラーメッセージとERRリテラルを比較することで、発生したエラー内容を判断させることができます。
構文： | ErrMagicName( )
パラメータ： | なし
戻り値： | 文字…Magicのエラーメッセージ
注意事項： | この関数は、「任意のエラー」タイプのエラーハンドラ内でエラー内容を判別する場合に使用します。
関連項目： | リテラル


関数ディレクトリ ErrPosition

ErrPosition

式エディタ > 関数ディレクトリ

エラー情報：位置

エラーが発生したレコードの位置が返ります。

構文：

ErrPosition ( )

パラメータ：

なし

戻り値：

BLOB値 …エラーが発生したレコードの位置が含まれています。

注意事項：

  • エラーのスコープの外にある場合は空白を返します。この関数は、エラーが発生したレコードを表示させる時に使用します。

  • [範囲／位置付]ダイアログの[ポジション]特性に、本関数で取得したBLOB 変数を代入することにより、エラー発生時のレコードに位置付けできます。

  • XMLソースをサポートしています。


関数ディレクトリ ErrTableName

ErrTableName

式エディタ > 関数ディレクトリ

エラー情報：DB テーブル名

エラーが発生したDB テーブル名が返ります。

構文：

ErrTableName ( )

パラメータ：

なし

戻り値：

文字列…エラーが発生したDB テーブル名

関数が正常に処理されなかった場合は、空白が返ります。

注意事項：

  • エラーがメインソースで発生したか、リンクテーブルで発生したのかを調べるような場合に使用できます。

  • エラーハンドラが特定のテーブルに対して定義されている場合、この関数は必要ありません。


関数ディレクトリ Logging

Logging

式エディタ > 関数ディレクトリ

アクイティビティモニタの動的フィルタの制御

プログラム内で動的にアクイティビティモニタのフィルタ指定（有効／無効）を指定します。関数を実行すると即有効になります。また、MAGIC.INIは更新されません。

構文：

Logging (開始/停止, フィルタ)

パラメータ：

開始/停止 … フィルタの開始／停止を指定する論理値

  • True…フィルタを開始します。

  • False … フィルタを停止します。

フィルタ（文字） … フィルタオプションを表す文字列。以下のオプションが指定できます。

  • Task

  • Levels

  • DataView

  • Recompute

  • Flow

  • Events

  • LogBrowser

  • Gateway

  • TransCache

  • BackgroundMsg

  • BeginEndMsg

  • LogSynch

  • ExecutionLogFileName=(ファイル名)

  • Btrieve= (N,D,S,C のどれか) ← Pervasive.SQL(ISAM)

  • DB2400= (N,D,S,Cのどれか)

  • Oracle= (N,D,S,Cのどれか)

  • AS400= (N,D,S,Cのどれか)

  • DB2= (N,D,S,Cのどれか)

  • ODBC= (N,D,S,Cのどれか)

  • MicrosoftSQL = (N,D,S,Cのどれか)

  • Memory= (N,D,S,Cのどれか)

  • ALL

  • RESET

戻り値：

論理値 … 処理が成功した場合「True」が返ります。

例

Logging ('TRUE'LOG,'Oracle=D')

Orecleのログを開発者レベルに設定します。

Logging ('TRUE'LOG,'Levels')

レベルに対してログを取得するようにします。

Logging ('FALSE'LOG,'Recompute')

再計算処理に対するログを停止します。

Logging ('FALSE'LOG,'All')

全てのログを停止します。

Logging ('TRUE'LOG,'RESET')

Magic.ini に定義されている設定内容に戻します。

注意事項：

  • [フィルタ]の指定が正しくない場合、「False」が返ります。

  • 「ExecutionLogFileName」で外部ログファイル名が設定され、ファイルが作成できなかった場合、「False」が返ります。メッセージは mgerror.log に書き込まれます。（ログファイル名は、MAGIC.INI ファイルのGeneralErrorLogパラメータで変更できます。）

  • 外部ログが設定されず、デバッグモードも設定されていない場合、「False」が返ります。

  • [開始/停止]パラメータが「True」でDBMSパラメータが「N」と評価された場合（例：‘True’,’ODBC=N’）、ゲートウェイオプションは無視され、「False」が返ります。

  • 開発エンジンがデバッグモードでない場合、（指定されていれば）外部ログファイルのみに反映されます。

  • この関数は、MAGIC.INIを更新しません。設定された値は、現在のコンテキストでのみ有効です。開発エンジンに戻ると、値はMAGIC.INI に設定されているデフォルト値に戻ります。

  • [フィルタ]パラメータの「ALL」が停止(False)とともに使用された場合、全ての値はFalseに設定されます。

  • [フィルタ]パラメータの「ALL」が開始(True)とともに使用された場合、全ての非ゲートウェイ値はTrueに設定されます。

  • 「RESET」フィルタは、INIの値を全てリセットします。この場合、第一パラメータは、Trueとします。Falseが設定された場合、無視され「False」が返ります。

関連項目：

アクティビティモニタ


関数ディレクトリ MTblGet

MTblGet

式エディタ > 関数ディレクトリ

メモリテーブルのBLOB化

メモリテーブルの内容をBLOBデータに変換します。

構文：

MTblGet(テーブル番号, DB テーブル名)

パラメータ：

テーブル番号 … [データ]リポジトリ内のメモリテーブルのテーブル番号

DBテーブル名 … （指定された場合）同じテーブル構成の異なるインスタンスを参照します。

戻り値：

BLOB値 … メモリテーブルの内容が取り込まれたBLOB 。

注意事項：

  • メモリデータベース以外のテーブルで実行された場合、NULL値を返します。

  • BLOBデータ項目の内容は、テーブルの最後にコミットされたトランザクションの前に存在するメモリテーブル内容です。

  • DBテーブル名パラメータ(これによって別のテーブルを参照することが可能です。) で指定されたテーブルが、実行中のタスクでオープンされている場合は処理できません。


関数ディレクトリ MTblSet

MTblSet

式エディタ > 関数ディレクトリ

BLOBの内容をメモリテーブル化

（MTblGetで作成された）BLOB項目の内容をメモリテーブルに展開します。

構文：

MTblSet(BLOB項目、テーブル番号、DB テーブル名、 モード)

パラメータ：

BLOB項目 … メモリテーブルの内容を含んだBLOB項目

テーブル番号 … [データ]リポジトリでのメモリテーブルの番号

DBテーブル名 … （指定された場合）同じテーブル構成の異なる内容を参照します。

モード … メモリテーブルを更新する場合のモードを指定します。以下のモードがあります。

  • 0 … 重複レコードがある場合、アボートします。BLOBデータから新規レコードを追加しますが、重複レコードが見つかった場合、処理が中断され全ての追加レコードは破棄されます。

  • 1 … 重複レコードがある場合、スキップします。BLOBデータから新規レコードを追加し、重複レコードが見つかった場合、次のレコードの処理に移ります。

  • 2 … 重複レコードがある場合、上書きします。BLOBデータから新規レコードを追加し、重複レコードが見つかった場合、最新のデータで更新します。

  • 3 … 既存のテーブルを初期化します。既存のテーブルの内容が削除され新しく作り直されます。

上記以外の値が指定された場合は、「0」と見なされます。

戻り値：

数値 … 正常に終了した場合は 0 が返ります。それ以外の場合、以下のような負数が返ります。

  • -1 … 重複インデックスが発生した（モードが「0」の場合）

  • -2 … メモリテーブル構造が BLOBパラメータによって供給されたテーブル構造と合っていない。

  • -3 … 指定したテーブルがメモリテーブルではない

  • -4 … メモリテーブルが他の理由で更新できなかった

  • -5 … 既存のテーブルが削除できなかった（モードが「3」の場合）

注意事項：

  • 関数の実行中に発生した全ての DB エラーは、テーブル内容の終りまでスキップされます。

  • 現在のタスクのトランザクション設定に関係なく、ネストトランザクションとして、メモリテーブルが更新実行されます。 これは、関数が終了した時、全ての追加レコードがコミットされることを意味します。

  • この関数は、メモリテーブル構造と BLOB の内容の構造の整合性を確認します。テーブル構造は、カラムの順番、数、型のみ比較され、インデックスや外部キーはチェックされません。

  • DBテーブル名パラメータ(これによって別のテーブルを参照することが可能です。) で指定されたテーブルが、実行中のタスクでオープンされている場合は処理できません。


関数ディレクトリ ドラッグ&ドロップ関数

ドラッグ&ドロップ関数

式エディタ > 関数ディレクトリ

DragSetCrsr …… 指定したカーソルファイルがドラッグ操作によってコピー可か否かのモードとして定義します。

DragSetData ……自動的にドラッグ処理されないコントロールのデータ内容やフォーマットを定義ます。

DropFormat …… 定義されたデータフォーマットがMagicの Drop関数でサポートされているかどうかを確認します。

DropGetData ……定義されたフォーマットでドラッグしたデータを取り出します。

DropMouseX …… ドラッグしたデータをドロップした時のフォームの X座標（フォームの寸法単位）値を返します。

DropMouseY …… ドラッグしたデータをドロップした時のフォームのY座標（フォームの寸法単位）値を返します。


関数ディレクトリ DragSetCrsr

DragSetCrsr

式エディタ > 関数ディレクトリ

ドラッグ時のカーソル定義

指定したカーソルファイルがドラッグ操作によってコピー可か否かを定義します。

構文：

DragSetCrsr(モード、カーソルファイル)

パラメータ：

モード … カーソルモードを表す数値。指定できる値は、以下の通りです。

  • 1 … カーソルファイルは、「コピー可」モードとして設定されます。1つのオブジェクトが別のオブジェクトに対して複写を許可し、最初のオブジェクトが他方のオブジェクトの上にドラッグされた時、「コピー可」モードが有効になります。

  • 2 … カーソルファイルは、「コピー不可」モードとして設定されます。 1 つのオブジェクトが別のオブジェクトに対して複写を許可しない場合に、そのオブジェクトがもう一方のオブジェクト上にドラッグされた時、「コピー不可」モードが有効になります。

カーソルファイル … カーソルファイル名とファイルパス (*.cur)を表す文字列

戻り値：

論理値… 処理に成功した場合「True」が返ります。

例：

DragSetCrsr(1,'c:\images\dragcopy.cur')

「コピー可」モードで表示されるカーソルファイルを指定しています。

注意事項：

カーソルモード番号が指定された値以外の場合、カーソルファイルは、 「コピー可」モードに設定されます。


関数ディレクトリ DragSetData

DragSetData

式エディタ > 関数ディレクトリ

ドラッグデータの設定

自動的にドラッグ処理されないコントロールのデータ内容やフォーマットを定義します。また、異なるデータフォーマットにデータ内容を割り当てます。

構文：

DragSetData (データ内容、データフォーマット、ユーザ定義フォーマット)

パラメータ：

データ内容 … ドラッグ処理データを表す文字列

データフォーマット … OSによって格納されるデータフォーマットを表す数値。 指定できる値は、以下の通りです。

  • 0 … ユーザ定義

  • 1 … テキスト

  • 2 … OEM テキスト

  • 3 … リッチテキスト

  • 4 … HTML

  • 5 … ハイパーリンク

  • 6 … ファイル名とパス

  • 7 … Unicode

ユーザ定義フォーマット …ユーザ定義フォーマットを表す文字列。[データフォーマット]パラメータが「0」の時のみ有効です。

戻り値：

論理値… [ドラッグ開始]イベントの範囲内で評価された時のみ、「True」 を返します。

例：

DragSetData('ABC',1)

[ドラッグ開始]イベント発行時、'ABC' という文字列をテキスト形式のドラッグ処理データとします。

DragSetData('DEF',0,'My Format')

[ドラッグ開始]イベント発行時、'DEF' という文字列をユーザ定義形式のドラッグ処理データとします。

注意事項：

  • DragSetData 関数は、異なるタイプのデータフォーマットのデータを定義する場合は、複数回実行することができます。

  • 各データフォーマットは、1回のドラッグ処理でのデータに対し、１回設定されます。同じドラッグ処理に対して同じデータフォーマットで2回関数が実行された場合、２回目の内容が反映されます。また、DropGetData関数で同じフォーマットを指定しなければ、処理されません。


関数ディレクトリ DropFormat

DropFormat

式エディタ > 関数ディレクトリ

ドロップ操作の可否を確認

定義されたデータフォーマットがMagicのDrop関数でサポートされているかどうかを確認します。

構文：

DropFormat(データフォーマット,ユーザ定義フォーマット)

パラメータ：

データフォーマット … OSに格納されるデータフォーマットを表す数値。 指定できる値は、以下の通りです。

  • 0 … ユーザ定義

  • 1 … テキスト

  • 2 … OEM テキスト

  • 3 … リッチテキスト

  • 4 … HTML

  • 5 … ハイパーリンク

  • 6 … ファイル名とパス名

  • 7 … Unicode

ユーザ定義フォーマット …ユーザ定義フォーマットを表す文字列。[データフォーマット]パラメータが「0」の時のみ有効です。

戻り値：

論理値… データフォーマットがサポートされている場合、「True」 を返します。

例：

環境設定ダイアログに、'My Format' が定義されている場合、DropFormat(0,'My Format') は、「True」を返します。

注意事項：

ユーザ定義フォーマットのドロップデータを扱うためには、事前に、[動作環境]ダイアログの[外部参照]タブの[ドロップデータサポート・ユーザフォーマット]にユーザ定義フォーマットの名前を設定する必要があります。


関数ディレクトリ DropGetData

DropGetData

式エディタ > 関数ディレクトリ

ドロップデータを取得します。

指定したフォーマットでドロップされたデータを返します。

構文：

DropGetData(データフォーマット,ユーザ定義フォーマット)

パラメータ：

データフォーマット … OSに格納されるデータフォーマットを表す数値。 指定できる値は、以下の通りです。

  • 0 … ユーザ定義

  • 1 … テキスト

  • 2 … OEM テキスト

  • 3 … リッチテキスト

  • 4 … HTML

  • 5 … ハイパーリンク

  • 6 … ファイル名とパス名

  • ７ … Unicode

ユーザ定義フォーマット … ユーザ定義フォーマットを表す文字列。[データフォーマット]パラメータが「0」の時のみ有効です。

戻り値：

文字列 … 取得したデータとしての文字列。 フォーマットがサポートされない場合、NULL を返します。

例：

DropGetData(0,'My format') は、ユーザ定義フォーマットデータの文字列を返します。

DropGetData(1)は、テキストフォーマットデータの文字列を返します。

DropGetData(4)は、HTML フォーマットデータの文字列を返します。

DropGetData(6)は、ファイル名を返します。

注意事項：

  • ユーザ定義フォーマットのドロップデータを扱うためには、事前に、[動作環境]ダイアログの[外部参照]タブの[ドロップデータサポート・ユーザフォーマット]にユーザ定義フォーマットの名前を設定する必要があります。また、DragSetData関数で指定されたフォーマットと同じにする必要があります。

  • ユーザ定義フォーマットを使用してファイル名を取得すると DBCS を使用したファイル名の取得が正しく行えなくなる場合があります。


関数ディレクトリ DropMouseX

DropMouseX

式エディタ > 関数ディレクトリ

ドロップしたX座標の取得

ドラッグしたデータをドロップした時のフォームの X座標（フォームの寸法単位）値を返します。

構文：

DropMouseX()

パラメータ：

なし

戻り値：

数値…マウスカーソルの X 座標

注意事項：

  • Magic のフォーム外をドロップした場合（例：フォームタイトル）、負数が返ります。

  • 同じ場所でも、フォームの寸法単位によって値が変わります。


関数ディレクトリ DropMouseY

DropMouseY

式エディタ > 関数ディレクトリ

ドロップしたY座標の取得

ドラッグしたデータをドロップした時のフォームのY座標（フォームの寸法単位）値を返します。

構文：

DropMouseY()

パラメータ：

なし

戻り値：

数値…マウスカーソルの Y 座標

注意事項：

  • Magic のフォーム外をドロップした場合（例：フォームタイトル）、負数が返ります。

  • 同じ場所でも、フォームの寸法単位によって値が変わります。


関数ディレクトリ バッファ保存関数

バッファ保存関数

式エディタ > 関数ディレクトリ

BlobSize …… BLOBデータのサイズ(Byte)を取得します。

BufGetAlpha …… BLOBバッファの指定された位置の値を文字列に変換します。

BufGetBit …… BLOBバッファの指定された位置のビット値を返します。

BufGetBlob …… BLOBバッファの指定された位置の値をBLOB値に変換します。

BufGetDate …… BLOBバッファ内の指定された位置の値を日付データに変換します。

BufGetLog …… BLOBバッファ内の指定された位置の値を論理データに変換します。

BufGetNum …… BLOBバッファ内の指定された位置の値を数値データに変換します。

BufGetTime …… BLOBバッファ内の指定された位置の値を時刻データに変換します。

BufGetUnicode …… BLOBバッファ内の指定された位置の値をUnicodeデータに変換します。

BufGetVariant …… BLOBバッファ内の指定された位置の値をVariant値に変換します。

BufGetVector …… BLOBバッファ内の指定された位置の値をベクトル値に変換します。

BufSetAlpha …… 文字型またはRTFデータを BLOB バッファの指定した位置に挿入します。

BufSetBit …… 1バイトの内容をビットレベルで値を指定し、BLOB バッファの指定した位置に挿入します。

BufSetBlob …… BLOBデータをBLOBバッファの指定した位置に挿入します。

BufSetDate …… 日付データをBLOBバッファの指定した位置に挿入します。

BufSetLog …… 論理データをBLOBバッファの指定した位置に挿入します。

BufSetNum …… 数値データをBLOBバッファの指定した位置に挿入します。

BufSetTime …… 時刻データをBLOBバッファの指定した位置に挿入します。

BufSetUnicode …… UnicodeデータをBLOBバッファの指定した位置に挿入します。

BufSetVariant …… VariantデータをBLOBバッファの指定した位置に挿入します。

BufSetVector …… ベクトルデータをBLOBバッファの指定した位置に挿入します。

SetBufCnvParam …… バッファ間のデータの読み書きでの変換値を定義するためのパラメータを設定します。

VariantAttr …… Variant データのデータタイプに対する Magic側のデータ型を返します。

VariantCreate …… 指定したデータから Variant値を作成します。

VariantGet …… 指定したVariantデータに対する値を返します。

VariantGetVector …… Variantデータタイプのベクトル値を返します。

VariantType …… Variantデータタイプの記憶形式を返します。

VecCellAttr …… ベクトル項目のベクトルセルのデータ型を返します。

VecGet …… ベクトル項目の指定したセルのデータを返します。

VecSet …… ベクトル項目の指定したセルのデータを更新します。

VecSize …… ベクトル項目のセルの数を返します。


関数ディレクトリ BlobSize

BlobSize

式エディタ > 関数ディレクトリ

BLOBサイズの取得 BLOBデータのサイズ(Byte)が返ります。
構文： | BlobSize(BLOB データ)
パラメータ： | BLOBデータ …対称となる BLOBデータ
戻り値： | BLOBのサイズを表す数値。NULLの場合は、0 が返ります。


関数ディレクトリ BufGetAlpha

BufGetAlpha

式エディタ > 関数ディレクトリ

バッファから文字データを取得

BLOBバッファの指定された位置の値を文字列に変換します。

構文：

BufGetAlpha(参照項目、位置、記憶形式、長さ、ポインタ値)

パラメータ：

参照項目…バッファとなる BLOB項目。VARリテラルが必要です。

位置 …変換を開始する位置（Byte単位）を表す数値。バッファの先頭は1です。

記憶形式…Magic での記憶形式を表す数値。

長さ …記憶長を表す数値。（単位は、直前に実行したSetBufCnvParam関数によって設定されたエンコード指定に依存します。）

ポインタ値…文字データ値が、直接バッファ書き込まれるか、ポインタとして書かれるべきであるかどうかを示す論理値。「True」 の場合は、ポインタとして文字値を書き込みます。

戻り値：

変換が成功した時は文字列が返ります。失敗した場合は空白が返ります。

以下の場合は失敗します。

  • 位置パラメータに負数が指定された場合

  • 位置や長さパラメータが、 バッファの内容の範囲外を指定している場合

  • 記憶形式パラメータが正しくない場合

  • 長さパラメータが正しくない場合

注意事項：

記憶形式タイプとして「LString」または「ZString」を使用する場合、取得する文字長と位置の関係に注意してください。文字の末尾のNULLを考慮する必要があります。

例えば、半角５桁（5バイト）の文字が格納されている次の領域の位置は、６バイト分が加算され「7」になります。

BufGetAlpha('A'VAR,1,2,5,'TRUE'LOG）……'ABCDE'

BufGetAlpha（'A'VAR,7,2,5,'TRUE'LOG）……'FGHIJ'

関連項目：

SetBufCnvParam


関数ディレクトリ BufGetBit

BufGetBit

式エディタ > 関数ディレクトリ

バッファからビットデータを取得 BLOBバッファの指定された位置のビット値を返します。
構文： | BufGetBit(参照項目、位置、ビット番号)
パラメータ： | 参照項目…バイト値を含む BLOB項目。VARリテラルが必要です。 位置…BLOB項目のバイト位置を定義する数値。バッファの先頭は1です。 ビット番号…バイト内のビット番号を表す 1 ～ 8 からの値
戻り値： | 論理値…指定したビットが On の場合「True」 、Off の場合「False」 が返ります。ビット番号が間違っている場合NULL を返します。
例： | BufSetNum('A'VAR, 1,3,2,1)は、最初のバイトのバイナリ値を b'00000011' と設定します。 BufGetBit(A'VAR',1,1)は、 False を返します。 BufGetBit('A'VAR',1,7)は、True を返します。 BufGetBit('A'VAR',1,8)は、True を返します。


関数ディレクトリ BufGetBLOB

BufGetBlob

式エディタ > 関数ディレクトリ

バッファからBLOBデータを取得

BLOBバッファの指定された位置の値をBLOB値に変換します。

構文：

BufGetBlob(参照項目、位置、記憶形式、長さ、ポインタ値、セル記憶形式)

パラメータ：

参照項目…バッファとなるBLOB項目。VARリテラルが必要です。

位置…変換を開始する位置を表す数値。バッファの先頭は1です。

記憶形式…Magic での記憶形式を表す数値。

長さ … 記憶長を表す数値

ポインタ値…文字データ値が、直接バッファ書き込まれるか、ポインタとして書かれるべきであるかどうかを示す論理値。「True」 の場合は、ポインタとして文字値を書き込みます。

セル記憶形式…ベクトル値がバッファに書き込まれた場合、セルの記憶形式を指定する必要があります。

戻り値：

変換が成功した場合、BLOB 値が返ります。失敗した場合、空白が返ります。

以下の場合は失敗します。

  • 参照項目が正しくない場合

  • 参照項目が BLOB でない場合

  • 位置パラメータが負数の場合

  • 位置や長さパラメータが、バッファの内容に合っていない場合

  • 記憶形式パラメータが正しくない場合

関連項目：

SetBufCnvParam


関数ディレクトリ BufGetDate

BufGetDate

式エディタ > 関数ディレクトリ

バッファから日付データを取得

BLOBバッファ内の指定された位置の値を日付データに変換します。

構文：

BufGetDate(参照項目、位置、記憶形式)

パラメータ：

参照項目…バッファとなるBLOB項目。VARリテラルが必要です。

位置…変換を開始する位置を表す数値。バッファの先頭は1です。

記憶形式…Magic での記憶形式を表す数値

戻り値：

変換が成功した場合、日付データが返ります。失敗した場合 「0」 が返ります。

以下の場合は失敗します。

  • 位置パラメータが負数の場合

  • 位置や長さパラメータが、バッファの内容と合っていない場合

  • 記憶形式パラメータが正しくない場合

  • 変換エラーが発生した場合

関連項目：

SetBufCnvParam


関数ディレクトリ BufGetLog

BufGetLog

式エディタ > 関数ディレクトリ

バッファから論理データを取得

BLOBバッファ内の指定された位置の値を論理データに変換します。

構文：

BufGetLog(参照項目、位置、記憶形式)

パラメータ：

参照項目…バッファとなるBLOB項目。VARリテラルが必要です。

位置 …変換を開始する位置を表す数値。バッファの先頭は1です。

記憶形式…Magic での記憶形式を表す数値

戻り値：

変換が成功した場合は論理値が返ります。失敗した場合は、NULLが返ります。

以下の場合は失敗します。

  • 位置パラメータが負数の場合

  • 位置や長さパラメータが、バッファの内容に合っていない場合

  • 記憶形式パラメータが正しくない場合

  • 値が正しくない場合


関数ディレクトリ BufGetNum

BufGetNum

式エディタ > 関数ディレクトリ

バッファから数値データを取得

BLOBバッファ内の指定された位置の値を数値データに変換します。

構文：

BufGetNum(参照項目、位置、記憶形式、長さ)

パラメータ：

参照項目…バッファとなるBLOB項目。VARリテラルが必要です。

位置…変換を開始する位置を表す数値。バッファの先頭は1です。

記憶形式…Magic での記憶形式を表す数値。

長さ…記憶長を表す数値

戻り値：

変換が成功した場合は数値が返ります。 失敗した場合は、「0」が返ります。

以下の場合は失敗します。

  • 位置パラメータが負数の場合

  • 位置や長さパラメータが、バッファの内容に合っていない場合

  • 記憶形式パラメータが正しくない場合

  • 長さパラメータが正しくない場合

  • 変換でオーバーフローが発生した場合

関連項目：

SetBufCnvParam


関数ディレクトリ BufGetTime

BufGetTime

式エディタ > 関数ディレクトリ

バッファから時刻データを取得

BLOBバッファ内の指定された位置の値を時刻データに変換します。

構文：

BufGetTime(参照項目、位置、記憶形式)

パラメータ：

参照項目…バッファとなるBLOB項目。VARリテラルが必要です。

位置…変換を開始する位置を表す数値。バッファの先頭は1です。

記憶形式…Magic での記憶形式を表す数値

戻り値：

変換が成功した場合は時刻値が返ります。失敗した場合は、「0」が返ります。

以下の場合は失敗します。

  • 位置パラメータが負数の場合

  • 位置や長さパラメータが、バッファの内容に合っていない場合

  • 記憶形式パラメータが正しくない場合

  • 変換エラーが発生した場合

関連項目：

SetBufCnvParam


関数ディレクトリ BufGetUnicode

BufGetUnicode

式エディタ > 関数ディレクトリ

バッファからUnicodeデータを取得

BLOBバッファ内の指定された位置の値をUnicodeデータに変換します。

構文：

BufGetUnicode(参照項目、位置、記憶形式、長さ、ポインタ値)

パラメータ：

参照項目…バッファとなる BLOB項目。VARリテラルが必要です。

位置 …変換を開始する位置（Byte単位）を表す数値。バッファの先頭は1です。

記憶形式…Magicでの記憶形式を表す数値。

長さ …記憶長を表す数値。（単位は、直前に実行したSetBufCnvParam関数によって設定されたエンコード指定に依存します。）

ポインタ値…Unicodeデータ値が、直接バッファ書き込まれるか、ポインタとして書かれるべきであるかどうかを示す論理値。「True」 の場合は、ポインタとして文字値を書き込みます。

戻り値：

変換が成功した時はUnicode型の文字列が返ります。失敗した場合は空白が返ります。

以下の場合は失敗します。

  • 位置パラメータに負数が指定された場合

  • 位置や長さパラメータが、 バッファの内容の範囲外を指定している場合

  • 記憶形式パラメータが正しくない場合

  • 長さパラメータが正しくない場合

関連項目：

BufSetUnicode, SetBufCnvParam


関数ディレクトリ BufGetVariant

BufGetVariant

式エディタ > 関数ディレクトリ

バッファからVariantデータを取得 BLOBバッファ内の指定された位置の値をVariant値に変換します。
構文： | BufGetVariant(参照項目、位置、ポインタ値 )
パラメータ： | 参照項目…バッファとなるBLOB項目。VARリテラルが必要です。 位置…変換を開始する位置を表す数値。バッファの先頭は1です。 ポインタ値…Variantデータが、直接バッファ書き込まれるか、ポインタとして書かれるべきであるかどうかを示す論理値。「True」の場合は、ポインタとして書き込みます。
戻り値： | 変換が成功した場合はVariantデータが返ります。失敗した場合は、NULL が返ります。
関連項目： | SetBufCnvParam, BufSetVariant


関数ディレクトリ BufGetVector

BufGetVector

式エディタ > 関数ディレクトリ

バッファからベクトルデータを取得

BLOBバッファ内の指定された位置の値をベクトル値に変換します。

構文：

BufGetVector (参照項目、位置、ベクトル型、 エレメント番号、ポインタ値、セル記憶形式、セル長)

パラメータ：

参照項目…バッファとなるBLOB項目。VARリテラルが必要です。

位置…変換を開始する位置を表す数値。バッファの先頭は1です。

ベクトル型…ベクトルのデータ型を表す数。 以下のとおりです。

  • 1 … 文字型

  • 2 … 数値型

  • 3 … 論理型

  • 4 … 日付型

  • 5 … 時刻型

  • 6 … BLOB型

エレメント番号…ベクトル長を表す数値

ポインタ値…ベクトル値データをバッファに直接書き込むか、ポインタとして書き込むかを指定する論理値。 「True」ならば、ポインタとして書き込みます。

セル記憶形式…ベクトルセルの記憶形式。外部のベクトルがバッファから読み込まれた場合に指定します。このパラメータは、セルのデータ型に対応する記憶形式のうちのどれかを指定します。

セル長…ベクトルセルの記憶長タイプ。外部のベクトルがバッファから読み込まれた場合に指定します。このパラメータは、「セル記憶形式」に対応する長さを指定します。

戻り値：

変換が成功した場合はベクトルデータが返ります。失敗した場合は、NULL が返ります。

以下の場合は失敗します。

  • 位置パラメータが負数の場合

  • 位置や長さパラメータが、バッファの内容に合っていない場合

  • 記憶形式パラメータが正しくない場合

  • セル長パラメータが正しくない場合

関連項目：

BufSetVector


関数ディレクトリ BufSetAlpha

BufSetAlpha

式エディタ > 関数ディレクトリ

バッファに文字データを格納

文字型またはRTFデータを BLOB バッファの指定した位置に挿入します。

構文：

BufSetAlpha(参照項目、位置、値、記憶形式、長さ、ポインタ値)

パラメータ：

参照項目…バッファとなるBLOB項目。VARリテラルが必要です。

位置…データの挿入位置（Byte単位）を表す数値。バッファの先頭は1です。

値…挿入される文字データ

記憶形式…Magic での記憶形式を表す数値

長さ…文字の長さを表す数値。（単位は、直前に実行したSetBufCnvParam関数によって設定されたエンコード指定に依存します。）

ポインタ値…文字データが直接バッファ書き込まれるか、ポインタとして書かれるべきであるかどうかを示す論理値。 「True」の場合は、 ポインタとして 書き込みます。

戻り値：

論理値… 処理に成功した場合「True」が返ります。

以下のような場合、処理は失敗します。

  • 参照項目が正しくない場合

  • 参照項目が BLOB でない場合

  • 位置パラメータが負数の場合

例：

BufSetAlpha('A'VAR,1,'filler',1,6,'FALSE'LOG)

1桁目から 6桁分 "filler" という文字列を挿入します。

注意事項：

記憶形式タイプとして「LString」または「ZString」を使用する場合、取得する文字長と位置の関係に注意してください。文字の末尾のNULLを考慮する必要があります。

例えば、半角５桁(5バイト）の文字が格納されている次の領域の位置は、６バイト分が加算され「7」になります。

BufSetAlpha('A'VAR,1,'ABCDE',2,5,'TRUE'LOG)

BufSetAlpha('A'VAR,7,'FGHIJ',2,5,'TRUE'LOG)

関連項目：

SetBufCnvParam


関数ディレクトリ BufSetBit

BufSetBit

式エディタ > 関数ディレクトリ

バッファにビットデータを格納 1バイトの内容をビットレベルで値を指定し、BLOB バッファの指定した位置に挿入します。
構文： | BufSetBit(参照項目、位置、ビット番号、論理値)
パラメータ： | 参照項目…バッファとなるBLOB項目。VARリテラルが必要です。 位置…データの挿入位置を表す数値。バッファの先頭は1です。 ビット番号…１バイト内のビット番号を表す 1 ～ 8 の値 論理値…指定されたビットをセットするための論理値
戻り値： | 論理値… 処理に成功した場合「True」が返ります。


関数ディレクトリ BufSetBLOB

BufSetBlob

式エディタ > 関数ディレクトリ

バッファにBLOBデータを格納

BLOBデータをBLOBバッファ指定した位置に挿入します。

構文：

BufSetBlob(参照項目、位置、値、記憶形式、ポインタ値)

パラメータ：

参照項目…バッファとなるBLOB項目。VARリテラルが必要です。

位置…データの挿入位置を表す数値。バッファの先頭は1です。

値…挿入されるBLOBデータ

記憶形式…Magic での記憶形式を表す数値。

ポインタ値…BLOBデータをバッファに直接書き込むか、ポインタとして書き込むかを指定する論理値。 「True」ならば、ポインタとして書き込みます。

戻り値：

論理値… 処理に成功した場合「True」が返ります。

以下のような場合、処理は失敗します。

  • 参照項目が正しくない場合

  • 参照項目が BLOB でない場合

  • 位置パラメータが負数の場合

  • 記憶形式パラメータが正しくない場合

関連項目：

SetBufCnvParam


関数ディレクトリ BufSetDate

BufSetDate

式エディタ > 関数ディレクトリ

バッファに日付データを格納

日付データをBLOBバッファ指定した位置に挿入します。

構文：

BufSetDate(参照項目、位置、値、記憶形式)

パラメータ：

参照項目…バッファとなるBLOB項目。VARリテラルが必要です。

位置…データの挿入位置を表す数値。バッファの先頭は1です。

値…挿入される日付データ

記憶形式…Magic での記憶形式を表す数値

戻り値：

論理値… 処理に成功した場合「True」が返ります。

以下のような場合、処理は失敗します。

  • 参照項目が正しくない場合

  • 参照項目が BLOB でない場合

  • 位置パラメータが負数の場合

  • 記憶形式パラメータが正しくない場合

例：

BufSetDate('A'VAR,1,Date(),1)

項目'A' の 1バイト目に 現在の日付を挿入します。

関連項目：

SetBufCnvParam


関数ディレクトリ BufSetLog

BufSetLog

式エディタ > 関数ディレクトリ

バッファに論理データを格納

論理データをBLOBバッファ指定した位置に挿入します。

構文：

BufSetLog(参照項目、位置、値、記憶形式)

パラメータ：

参照項目…バッファとなるBLOB項目。VARリテラルが必要です。

位置…データの挿入位置を表す数値。バッファの先頭は1です。

値…挿入される論理データ

記憶形式…Magic での記憶形式を表す数値

戻り値：

論理値… 処理に成功した場合「True」が返ります。

以下のような場合、処理は失敗します。

  • 参照項目が正しくない場合

  • 参照項目が BLOB でない場合

  • 位置パラメータが負数の場合

  • 記憶形式パラメータが正しくない場合

関連項目：

SetBufCnvParam


関数ディレクトリ BufSetNum

BufSetNum

式エディタ > 関数ディレクトリ

バッファに数値データを格納

数値データをBLOBバッファ指定した位置に挿入します。

構文：

BufSetNum(参照項目、位置、値、記憶形式、長さ)

パラメータ：

参照項目…バッファとなるBLOB項目。VARリテラルが必要です。

位置…データの挿入位置を表す数値。バッファの先頭は1です。

値…挿入される数値データ

記憶形式…Magic での記憶形式を表す数値。

長さ…数値の長さを表す数値

戻り値：

論理値… 処理に成功した場合「True」が返ります。

以下のような場合、処理は失敗します。

  • 参照項目が正しくない場合

  • 参照項目が BLOB でない場合

  • 位置パラメータが負数の場合

  • 記憶形式パラメータが正しくない場合

  • 長さパラメータが正しくない場合

  • 変換時にオーバーフローが発生した場合

関連項目：

SetBufCnvParam


関数ディレクトリ BufSetTime

BufSetTime

式エディタ > 関数ディレクトリ

バッファに時刻データを格納

時刻データをBLOBバッファ指定した位置に挿入します。

構文：

BufSetTime(参照項目、位置、値、記憶形式)

パラメータ：

参照項目…バッファとなるBLOB項目。VARリテラルが必要です。

位置…データの挿入位置を表す数値。バッファの先頭は1です。

値…挿入される時刻データ

記憶形式…Magic での記憶形式を表す数値

戻り値：

論理値… 処理に成功した場合「True」が返ります。

以下のような場合、処理は失敗します。

  • 参照項目が正しくない場合

  • 参照項目が BLOB でない場合

  • 位置パラメータが負数の場合

  • 記憶形式パラメータが正しくない場合

関連項目：

SetBufCnvParam


関数ディレクトリ BufSetUnicode

BufSetUnicode

式エディタ > 関数ディレクトリ

バッファにUnicodeデータを格納

Unicode型データを BLOB バッファの指定した位置に挿入します。

構文：

BufSetUnicode(参照項目、位置、値、記憶形式、長さ、ポインタ値)

パラメータ：

参照項目…バッファとなるBLOB項目。VARリテラルが必要です。

位置…データの挿入位置（Byte単位）を表す数値。バッファの先頭は1です。

値…挿入されるUnicode型データ

記憶形式…Magicでの記憶形式を表す数値

長さ…文字の長さを表す数値。（単位は、直前に実行したSetBufCnvParam関数によって設定されたエンコード指定に依存します。）

ポインタ値…Unicodeデータが直接バッファ書き込まれるか、ポインタとして書かれるべきであるかどうかを示す論理値。 「True」の場合は、 ポインタとして 書き込みます。

戻り値：

論理値… 処理に成功した場合「True」が返ります。

以下のような場合、処理は失敗します。

  • 参照項目が正しくない場合

  • 参照項目が BLOB でない場合

  • 位置パラメータが負数の場合

例：

BufSetUnicode('A'VAR,1,'filler',1,6,'FALSE'LOG)

1バイト目から 6バイト分 "filler" という文字列を挿入します。

関連項目：

BufGetUnicode, SetBufCnvParam


関数ディレクトリ BufSetVariant

BufSetVariant

式エディタ > 関数ディレクトリ

バッファにVariantデータを格納 VariantデータをBLOBバッファ指定した位置に挿入します。
構文： | BufSetVariant(参照項目、位置、値、ポインタ値)
パラメータ： | 参照項目…バッファとなるBLOB項目。VARリテラルが必要です。 位置…データの挿入位置を表す数値。バッファの先頭は1です。 値…挿入されるVariantデータ ポインタ値…Variantデータをバッファに直接書き込むか、ポインタとして書き込むかを指定する論理値。 「True」ならば、ポインタとして書き込みます。
戻り値： | 論理値… 処理に成功した場合「True」が返ります。
関連項目： | SetBufCnvParam, BufGetVariant


関数ディレクトリ BufSetVector

BufSetVector

式エディタ > 関数ディレクトリ

バッファにベクトルデータを格納

ベクトルデータをBLOBバッファ指定した位置に挿入します。

構文：

BufSetVector (参照項目、位置、値、セル記憶形式、セル長、ポインタ値)

パラメータ：

参照項目…バッファとなるBLOB項目。VARリテラルが必要です。

位置…データの挿入位置を表す数値。バッファの先頭は1です。

値…挿入されるベクトルデータ

セル記憶形式…ベクトルセルの記憶形式。このパラメータは、セルのデータ型に対応する記憶形式のうちのどれかを指定します。Magic での記憶形式を表す数値を指定します。

セル長…ベクトルセルの記憶長タイプ。外部のベクトルがバッファから読み込まれた場合に指定します。このパラメータは、「セル記憶形式」に対応する長を指定します。

ポインタ値…ベクトル値データをバッファに直接書き込むか、ポインタとして書き込むかを指定する論理値。 「True」ならば、ポインタとして書き込みます。

戻り値：

論理値… 処理に成功した場合「True」が返ります。

以下のような場合、処理は失敗します。

  • 参照項目が正しくない場合

  • 参照項目が BLOB でない場合

  • 位置パラメータが負数の場合

  • 記憶形式パラメータが正しくない場合

関連項目：

BufGetVector


関数ディレクトリ SetBufCnvParam

SetBufCnvParam

式エディタ > 関数ディレクトリ

変換パラメータの設定 バッファ間のデータの読み書きでの変換方法を定義するためのパラメータを設定します。
構文： | SetBufCnvParam (変換パラメータ名, 変換パラメータ値)
パラメータ： | 変換パラメータ名 … 変換パラメータの名前を表す文字列（以下の表を参照） 変換パラメータ値 … 変換値
戻り値： | 論理値… 処理に成功した場合「True」が返ります。 パラメータ名や値が間違っていたりすると失敗します。

パラメータ名

説明

型

デフォルト

Low-Hi

数値が Windowsの標準の文字での昇順または降順、UNIXの標準の文字での昇順または降順で読み書きを行うことを示します。

論理型

True

Encoding

文字データに対するエンコードのタイプ

  • 1 …… ANSI

  • 2 …… EBCDIC

  • 3 …… UNICODE

数値型

1

Code Page

UnicodeかEBCDICでエンコードする場合に使用します。

数値型

なし


関数ディレクトリ VariantAttr

VariantAttr

式エディタ > 関数ディレクトリ

Variantデータのデータ型

Variant データのデータタイプに対するMagic側のデータ型を返します。

構文：

VariantAttr(Variant値)

パラメータ：

Variant値 … Variant データを保持するBLOBデータ

戻り値：

Magicのデータ型を表す文字

  • A … 文字型

  • U … Unicode型

  • N … 数値型

  • L … 論理型

  • D … 日付型

  • T … 時刻型

  • B … BLOB型

  • O … OLE型

  • V … ベクトル型

  • 0 … 該当する型がない

例：

Variant値が VT_BSTR データタイプの場合、'A' を返します。

Variant値が VT_I4または、VT_R8 データタイプの場合、'N' を返します 。

Variant値がサポートされていないデータタイプの場合、'0' を返します。


関数ディレクトリ VariantCreate

VariantCreate

式エディタ > 関数ディレクトリ

Variant値の作成 指定したデータから Variant値を作成します。
構文： | VariantCreate(VTタイプ、値、オプションの時間値)
パラメータ： | VTタイプ … Variant タイプを表す数値 値 … Variant に対する選択された値。ここには、どのようなデータ型（日付、文字、数値またはBLOB）でも指定できます。 オプションの時間値 … Magicのデータ型が時刻型で 'D' と設定されている場合のみ有効です。Variant の日付データタイプは、変日付と時間の両方で格納されます。[値]パラメータには日付を指定し、[オプションの時間値]パラメータには時間を指定してください。
戻り値： | 作成されたVariantを表す BLOB値。BLOB項目を更新したり、Variant値を保持したり、外部オブジェクトに直接BLOB値を渡す場合に使用できます。
例： | VariantCreate(8,'Hello')
 | 指定された文字列が設定された VT_BSTR データタイプのVariant 値を返します。
 | VariantCreate(7,Date(),Time())
 | 日付と時刻を基に設定された VT_DATE データタイプの Variant 値を返します。


関数ディレクトリ VariantGet

VariantGet

式エディタ > 関数ディレクトリ

Variant データ

指定したVariantデータに対する値を返します。

構文：

VariantGet (Variant値、型)

パラメータ：

Variant値 … Variantを含んだ BLOB値

型 … Magic の型を表す文字

  • A … 文字型

  • N … 数値型

  • L … 論理型

  • D … 日付型

  • T … 時刻型

  • B … BLOB型

  • U … Unicode型

戻り値：

VariantデータタイプとMagicのデータ型によって値が決まります。

例：

VariantGet(B,'A')

文字値を返します。

VariantGet(C,'D')

日付値を返します。


関数ディレクトリ VariantGetVector

VariantGetVector

式エディタ > 関数ディレクトリ

Variantデータの取得 Variantデータタイプのベクトル値を取り出します。
構文： | VariantGetVector (Variant値, ベクトルのプロトタイプ)
パラメータ： | Variant値 … Variantのデータタイプが保存されているBLOBデータ ベクトルのプロトタイプ … ベクトル構造のプロトタイプとして使用されるベクトル項目。VARリテラルが必要です。
戻り値： | ベクトルデータ
例： | VariantGetVector(B,'A'VAR)
 | 項目Aによって表されるベクトル構造に基づいて、項目Bによって表されるVariantのベクトル値が返ります。


関数ディレクトリ VariantType

VariantType

式エディタ > 関数ディレクトリ

Variantデータタイプ Variantデータタイプの記憶形式を返します。
構文： | VariantType(Variant 値)
パラメータ： | Variant値 … Variant データタイプを含んだBLOB値
戻り値： | 記憶形式を表す数値。BLOBパラメータが正当なVariantでない場合、NULL を返します。
例： | VariantType(B)
 | データタイプが「VT_I8」の場合、20 が返ります。
関連項目： | Variant の記憶形式


関数ディレクトリ VecCellAttr

VecCellAttr

式エディタ > 関数ディレクトリ

ベクトルセルの型

ベクトル項目のベクトルセルのデータ型が返ります。

構文：

VecCellAttr (ベクトル項目)

パラメータ：

ベクトル項目 … ベクトル項目を表すシンボル名

戻り値：

文字 … ベクトル項目のセルのデータ型を表します。

  • A … 文字型

  • N … 数値型

  • L … 論理型

  • D … 日付型

  • T … 時刻型

  • B … BLOB型

  • U … Unicode型

ベクトル項目が指定されていない場合は、空白が返ります。

関連項目：

ベクトルデータ


関数ディレクトリ VecGet

VecGet

式エディタ > 関数ディレクトリ

ベクトル項目からデータ

ベクトル項目の指定したセルのデータを返します。

構文：

VecGet(ベクトル項目、セルインデックス)

パラメータ：

ベクトル項目 … ベクトル項目を表すシンボル名

セルインデックス … データを取り出すセルのインデックス

戻り値：

格納されているデータ。型は、セルのデータ型に依存します。

以下の場合、NULL が返ります。

  • ベクトル項目でない場合

  • セルインデックスが負の場合

  • セルが更新されていない場合は、セルモデルのデフォルト値が返ります。

例：

VecGet(C,1)

項目C の最初のセルの内容が返ります。

関連項目：

ベクトルデータ


関数ディレクトリ VecSet

VecSet

式エディタ > 関数ディレクトリ

ベクトル項目にデータを格納

ベクトル項目の指定したセルのデータを更新します。

構文：

VecSet(ベクトル項目、セルインデックス、値)

パラメータ：

ベクトル項目 … ベクトル項目を表すシンボル名。VARリテラルが必要です。

セルインデックス … データを更新するセルのインデックス

値 … 更新する値

戻り値：

論理値… 処理に成功した場合「True」が返ります。

以下の場合、処理が失敗します。

  • ベクトル項目でない場合

  • セルインデックスが負の場合

例：

VecSet('B'VAR,1,'a')

項目B の最初のセルに「a」を設定します。

関連項目：

ベクトルデータ


関数ディレクトリ VecSize

VecSize

式エディタ > 関数ディレクトリ

ベクトル項目のセル数 ベクトル項目のセルの数を返します。
構文： | VecSize (ベクトル項目)
パラメータ： | ベクトル項目 … ベクトル項目を表すシンボル名
戻り値： | 数値 … データが格納されているセルの数 １つも格納されていない場合は0、ベクトル項目でない場合は -1 が返ります。
関連項目： | ベクトルデータ


関数ディレクトリ ベクトル関数

ベクトル関数

式エディタ > 関数ディレクトリ

Magic でのベクトルとは、指定されたセルインデックスからデータを格納したり検索することのできる配列です。ベクトル型は、[セルモデル]特性が追加された BLOB 型に基づいています。

ベクトルのセルは、[モデル]リポジトリで定義された項目モデルから指定しなければなりません。セルモデルには、あらゆる項目のデータ型（文字、数値、論理、時刻、日付、メモ、BLOB、OLE 、ActiveX 、ベクトル）を指定できます。

ベクトルのインデックス付けは、１から始まります。ベクトル型は、変数とパラメータ項目でのみ指定できます。テーブルのカラムには指定できません。

ベクトルのベクトル（2次元）を作成することができます。

セルモデルに同じベクトル型のモデルは使用できません。

再帰的ベクトル定義は、サポートされません。また、ベクトル型の項目を、フォームに配置できません。多量のデータをベクトルに格納しないようにしてください、この内容はメモリ上に格納されるためメモリを消費します。

ベクトル関数を使用することによってベクトルセルの内容を参照したり更新したりすることができます。

BufGetVector …… BLOBバッファ内の指定された位置の値をベクトル値に変換します。

BufSetVector …… ベクトルデータをBLOBバッファ指定した位置に挿入します。

VecCellAttr …… ベクトル項目のベクトルセルのデータ型が返ります。

VecSet …… ベクトル項目の指定したセルのデータを更新します。

VecGet …… ベクトル項目の指定したセルのデータを返します。

VecSize …… ベクトル項目のセルの数を返します。


関数ディレクトリ メール関数

メール関数

式エディタ > 関数ディレクトリ
接続性 > メール関数

ここでは、メール関数の説明を行います。

構文や戻り値などの詳細情報は、各関数名をクリックすると表示されます。

MailBoxSet …… 現在接続している IMAPメールサーバのメールボックス（フォルダ）を切り替えます。

MailConnect …… メールサーバに接続します。

MailDisconnect …… メールサーバとの接続を切断します。

MailError …… メール関数から戻されたエラーコードをエラーメッセージに変換します。

MailFileSave …… 受信メールに添付されているファイルを保存します。

MailLastRC …… 他のメール関数が失敗した場合の最後のエラーを返します。

MailMsgBCC …… 受信メールの BCC で指定されたアドレスを返します。

MailMsgCC …… 受信メールの CC で指定されたアドレスを返します。

MailMsgDate …… 受信メールの日付と時刻の情報を返します。

MailMsgDel …… メールボックスからメッセージを削除します。

MailMsgFile …… 受信メールに添付されているファイル名を返します。

MailMsgFiles …… 受信メールに添付されているファイル数を返します。

MailMsgFrom …… 受信メールの FROM で指定されたアドレスを返します。

MailMsgHeader …… 受信メールのヘッダ情報を返します。

MailMsgId …… 受信メールのメッセージID を返します。

MailMsgReplyTo …… 受信メールのREPLAY TO アドレスを返します。

MailMsgSubj …… 受信メールの件名を返します。

MailMsgText …… 受信メールの内容を返します。

MailMsgTo …… 受信メールの TO アドレスを返します。

MailSend …… メールの送信を行います。


関数ディレクトリ MailBoxSet

MailBoxSet

式エディタ > 関数ディレクトリ

IMAPメールサーバのメールボックス（フォルダ）の切替 現在接続している IMAPメールサーバのメールボックス（フォルダ）を切り替えます。
構文： | MailBoxSet(メールボックス名)
パラメータ： | メールボックス名…切り替えたい（既存の）メールボックス（フォルダ）の名前
戻り値： | 数値… 指定したメールボックス内にある文書数。処理が失敗した場合は、エラーコードである負数が返ります。
例： | MailBoxSet('Deleted')
 | 実行中のメールボックスとして、'Deleted' を設定します。この関数が発行されたあとに他のメール関数でアクセスする場合は、'Deleted' のメールボックスをアクセスします。
注意事項： | メールボックス名にDBCSコードは使用できません。また、メールボックスがネストしている場合指定できません。
関連項目： | メール 関数


関数ディレクトリ MailConnect

MailConnect

式エディタ > 関数ディレクトリ

メールサーバへの接続

メールサーバに接続します。SMTP サーバは、メールの送信に使用され、（通常は）ユーザID やパスワードを必要としません。この関数が、POP3 または、IMAP サーバに接続される場合は、ユーザID やパスワードが必要です。Magicは、ユーザIDに対応したサーバのメールボックスに接続され、メールを受け取ります。

接続後にメールサーバが受信したメールは、次に接続処理を行うまで無効です。接続処理は、送受信のどちらかしか有効になりません。もし、接続処理を２回発行した場合、２回目の接続処理が有効になります。

構文：

MailConnect(タイプ, サーバ, ユーザID, パスワード)

パラメータ：

タイプ…数値

  • 1…SMTP サーバ

  • 2…POP3 サーバ

  • 3…IMAP サーバ

サーバ…文字列メールサーバのアドレス（ポート番号がデフォルトでない場合は、「アドレス：ポート番号」という書式でポート番号を指定します。）

デフォルトのポート番号は以下の通りです。

  • SMTP…25

  • POP3…110

  • IMAP…220（IMAP3）

ユーザID, パスワード…文字列 メールボックスのIDとパスワード

戻り値：

SMTP サーバに接続する場合：

  • 0 … 接続に成功しました。

  • 負数… 接続に失敗しました。（エラーコード）

POP3/IMAP サーバに接続する場合：

  • 0 または正数値…接続に成功しました。正数値の場合、メールボックス内のメールの数を表します。

  • 負数…接続に失敗しました。（エラーコード）

注意事項：

  • POP3 サーバに接続する場合は、新しいメールのみ受信します。 IMAPサーバの場合は、存在する全てのメッセージを受信します。

  • ユーザIDとパスワードの両方が入力されている場合、CRAM-MD5方式 または LOGIN方式によるユーザ認証を行います。接続しようとするSMTPサーバがこれらのユーザ認証をサポートしていない場合には、-1 のエラーを返します（この場合、認証は行われません）。

  • 上記ユーザ認証をサポートしていないSMTPサーバに接続しようとする場合、ユーザIDとパスワードを省略するか戻り値を無視するようにプログラムに組み込む必要があります。

関連項目：

メール 関数


関数ディレクトリ MailDisconnect

MailDisconnect

式エディタ > 関数ディレクトリ

メールサーバとの接続を切断

メールサーバとの接続を切断します。

構文：

MailDisconnect(タイプ, 削除フラグ)

パラメータ：

タイプ …数値

  • 1…メール送信サーバ

  • 2…メール受信サーバ

削除フラグ …メールボックスのメールを全て削除するかどうかを指定する論理値

戻り値：

数値

  • 0 …切断に成功

  • 負数…切断に失敗（エラーコード）

注意事項：

  • POP3 サーバに接続していて、削除フラグ「True」で切断した場合、POP3サーバに接続した時に受信したメールのみ削除されます。

  • IMAPサーバの場合は、メールの削除は行われません。

関連項目：

メール 関数


関数ディレクトリ MailError

MailError

式エディタ > 関数ディレクトリ

メール関数のエラーメッセージ メール関数から戻されたエラーコードをエラーメッセージに変換します。
構文： | MailError(エラーコード)
パラメータ： | エラーコード… 数値 メール関数から返されるエラーコード
戻り値： | 文字列…エラーメッセージ
関連項目： | メール 関数


関数ディレクトリ MailFileSave

MailFileSave

式エディタ > 関数ディレクトリ

添付ファイルの保存

受信メールに添付されているファイルを保存します。

構文：

MailFileSave(インデックス,ファイルインデックス,保存先パス名,上書きフラグ)

パラメータ：

インデックス …メールボックス内のメールのインデックス番号

ファイルインデックス …受信メッセージに添付されているファイルのインデックス番号

保存先パス名 …ファイル名とパス または パス名のみ

上書きフラグ …同じファイル名が存在する場合に上書きするかどうかを指定する

戻り値：

数値

  • 0 … 保存に成功

  • 負数… 保存に失敗（エラーコード）

注意事項：

  • 保存先のファイル名にパス名のみ指定した場合、添付時のファイル名で保存されます。

  • ファイルインデックスが「0」の場合、添付された全てのファイルを指定されたパスに保存します。

関連項目：

メール 関数


関数ディレクトリ MailLastRC

MailLastRC

式エディタ > 関数ディレクトリ

直近のメール関数のエラー 他のメール関数が失敗した場合の最後のエラーコードを返します。
構文： | MailLastRC()
パラメータ： | なし
戻り値： | 数値…最後に発生したメール関数でのエラーコード
注意事項： | MailError関数を使用することで、エラーコードからエラーメッセージを取得できます。
関連項目： | メール 関数


関数ディレクトリ MailMsgBCC

MailMsgBCC

式エディタ > 関数ディレクトリ

BCC アドレス 受信メールの BCC で指定されたアドレスがカンマ区切りの文字列で返されます。
構文： | MailMsgBCC (インデックス)
パラメータ： | インデックス …メールボックス内のメールのインデックス番号
戻り値： | 文字列…受信メールの BCC で指定されたアドレス
例： | MailMsgBCC(12)
 | 例えば以下のようなデータが返ります。
 | John Smith <johnsmith@mymail.com>,Jane Doe <janedoe@mymail.com>
関連項目： | メール 関数


関数ディレクトリ MailMsgCC

MailMsgCC

式エディタ > 関数ディレクトリ

CC アドレス 受信メールの CC で指定されたアドレスがカンマ区切りの文字列で返されます。
構文： | MailMsgCC(インデックス)
パラメータ： | インデックス …メールボックス内のメールのインデックス番号
戻り値： | 文字列…受信メールの CC で指定されたアドレス
関連項目： | メール 関数


関数ディレクトリ MailMsgDate

MailMsgDate

式エディタ > 関数ディレクトリ

日付／時刻 受信メールの日付と時刻の情報を取得します。日付と時刻は文字列で返ります。
構文： | MailMsgDate(インデックス)
パラメータ： | インデックス …メールボックス内のメールのインデックス番号
戻り値： | 文字列…メールの日付と時刻が組み合わさっています。
例： | MailMsgDate(12)
 | 例えば以下のようなデータが返ります。 Wed, 26 Jul 2006 12:32:05.
関連項目： | メール 関数


関数ディレクトリ MailMsgDel

MailMsgDel

式エディタ > 関数ディレクトリ

メッセージの削除

メールボックスからメッセージを削除します。

構文：

MailMsgDel(インデックス)

パラメータ：

インデックス …メールボックス内のメールのインデックス番号

戻り値：

数値

  • 0 … 削除に成功

  • 負数… 削除に失敗（エラーコード）

注意事項：

  • IMAP サーバに対しては即削除されます。

  • POP3 サーバに対しては、メールサーバから切断した時点で削除されます。

関連項目：

メール 関数


関数ディレクトリ MailMsgFile

MailMsgFile

式エディタ > 関数ディレクトリ

添付ファイル名 受信メールに添付されているファイル名を返します。
構文： | MailMsgFile(インデックス,ファイルインデックス)
パラメータ： | インデックス …メールボックス内のメールのインデックス番号 ファイルインデックス …受信メッセージに添付されているファイルのインデックス番号
戻り値： | 文字列… 受信メールに添付されているファイル名
関連項目： | メール 関数


関数ディレクトリ MailMsgFiles

MailMsgFiles

式エディタ > 関数ディレクトリ

添付ファイル数 受信メールに添付されているファイルの数を返します。
構文： | MailMsgFiles(インデックス)
パラメータ： | インデックス …メールボックス内のメールのインデックス番号
戻り値： | 数値… 受信メールに添付されているファイルの数
関連項目： | メール 関数


関数ディレクトリ MailMsgFrom

MailMsgFrom

式エディタ > 関数ディレクトリ

FROM アドレス 受信メールの FROM で指定されたアドレスを返します。
構文： | MailMsgFrom(インデックス)
パラメータ： | インデックス …メールボックス内のメールのインデックス番号
戻り値： | 文字列…受信メールの FROM で指定されたアドレス
関連項目： | メール 関数


関数ディレクトリ MailMsgHeader

MailMsgHeader

式エディタ > 関数ディレクトリ

ヘッダ情報

受信メールのヘッダ情報を返します。

構文：

MailMsgHeader(インデックス, ヘッダキー)

パラメータ：

インデックス …メールボックス内のメールのインデックス番号

ヘッダキー…ヘッダ情報セグメントに対応した文字列

戻り値：

文字列

  • ヘッダキーが空白の場合、全てのヘッダ情報が返ります。

  • ヘッダキーが空白でない場合、ヘッダキーによって定義されたヘッダセグメントの値が返ります。

関連項目：

メール 関数


関数ディレクトリ MailMsgId

MailMsgId

式エディタ > 関数ディレクトリ

メッセージID 受信メールのメッセージ ID を返します。
構文： | MailMsgId(インデックス)
パラメータ： | インデックス …メールボックス内のメールのインデックス番号
戻り値： | 文字列…メッセージID
関連項目： | メール 関数


関数ディレクトリ MailMsgReplyTo

MailMsgReplyTo

式エディタ > 関数ディレクトリ

REPLAY TO アドレス 受信メールのREPLAY TO アドレスを返します。
構文： | MailMsgReplyTo(インデックス)
パラメータ： | インデックス …メールボックス内のメールのインデックス番号
戻り値： | 文字列…受信メールの REPLAY TO で指定されたアドレス
例： | MailMsgReplyTo(12)
 | 例えば以下のようなデータが返ります。
 | John Doe <johndoe@mymail.com>
関連項目： | メール 関数


関数ディレクトリ MailMsgSubj

MailMsgSubj

式エディタ > 関数ディレクトリ

件名 受信メールの件名を返します。
構文： | MailMsgSubj(インデックス)
パラメータ： | インデックス …メールボックス内のメールのインデックス番号
戻り値： | 文字列…受信メールの件名
関連項目： | メール 関数


関数ディレクトリ MailMsgText

MailMsgText

式エディタ > 関数ディレクトリ

メール内容 受信メールの内容を返します。
構文： | MailMsgText(インデックス)
パラメータ： | インデックス …メールボックス内のメールのインデックス番号
戻り値： | 文字列…受信メールの本文の内容
関連項目： | メール 関数


関数ディレクトリ MailMsgTo

MailMsgTo

式エディタ > 関数ディレクトリ

TO アドレス 受信メールの TO アドレスを返します。
構文： | MailMsgTo(インデックス)
パラメータ： | インデックス …メールボックス内のメールのインデックス番号
戻り値： | 文字列…受信メールの TO で指定されたアドレス
関連項目： | メール 関数


関数ディレクトリ MailSend

MailSend

式エディタ > 関数ディレクトリ

メールの送信

メールの送信を行います。送信するために必要な全ての情報を指定する必要があります。

構文：

MailSend(From, To, CC, BCC, 件名, メッッセージ, ファイル, …)

パラメータ：

From … 文字列：送信元のメールアドレス

To … 文字列：送信するメールアドレスをカンマ区切りの文字列として指定します。

CC … 文字列：CCで送信するメールアドレスをカンマ区切りの文字列で指定します。

BCC … 文字列：BCCで送信するメールアドレスをカンマ区切りの文字列で指定します。

件名 … 文字列：メッセージのタイトル。451文字まで指定できます。

メッセージ … 文字列： メッセージの内容。一行はSBCS だけの場合は、最大979桁です。これを超えると自動的に改行コードを挿入して送信します。DBCSが混在するとそれ以下の桁数で改行されます。

ファイル … 文字列：メールに貼り付けるファイルのパスとファイル名。カンマで区切ることで複数のファイル名を指定できます。

戻り値：

数値

  • 0 …送信に成功

  • 負数…送信に失敗（エラーコード）

注意事項：

  • カンマ区切りで複数のアドレスを連結して指定することができます。

  • 戻り値が0でない場合、MailError関数を使用してエラーメッセージを取得することができます。例えば、戻り値が項目BPに格納されている場合、以下のように指定することでエラーコードとメッセージを表示させることができます。
    '送信結果は、: '&Str (BP,'5NC')&' '&MailError (BP)

関連項目：

メール 関数


関数ディレクトリ ライセンス関数

ライセンス関数

式エディタ > 関数ディレクトリ

LMChkIn …… 指定されたライセンスのユーザインスタンスの中でチェックインします。

LMChkOut …… ユーザが指定したフィーチャライセンスのユーザインスタンスをチェックアウトします。

LMUVStr …… LMChkOut関数でユーザによってチェックアウトしたライセンスのVENDOR_STRINGの値を返します。

LMVStr …… MagicエンジンがチェックアウトしたライセンスのVENDOR_STRINGの値を返します。


関数ディレクトリ 項目関数

項目関数

式エディタ > 関数ディレクトリ

CaretPosGet …… エディットコントロールのキャレットの位置を返します。

DataViewToHTML …… データビューからHTMLファイル作成します。

DataViewToText …… データビューからテキストファイル作成します。

DataViewToXML …… データビューからXMLファイル作成します。

DataViewVars …… [データ出力]イベントが実行された時のフォーム上の項目を取得します。

EditGet …… ハンドラを起動したコントロールの値を返します。

EditSet …… ハンドラを起動したコントロールに値を設定します。

GetComponentName …… 現在のコンポーネント名を取得します。

GetGUID …… プロジェクトのGUIDを取得します。

IsDefault …… 項目の値が、デフォルト値であるかどうかを確認します。

ISNULL …… 値がNULL値であるかどうかを確認します。

MarkedTextGet …… マークされたテキストを返します。

MarkedTextSet …… マークされたテキストを指定された文字列で置き換えます。

MarkText …… 指定された位置からのマークされた文字数を返します。

Var関数

全てのVar関数は、メモリ内で項目へのポインタを使用します。メモリ内の各項目は、実行時のツリーに基づいた固有の番号を持っています。

例えば、プログラムAがプログラムBを呼び出すものとします。プログラムAには、３つの項目が定義されており、プログラムBには、２つの項目が定義されているものとします。実行時、プログラムA内の項目Aは数値「1」が設定され、プログラムB内の項目Aが数値「4」が設定されるというような処理を行うことができます。

Var関数は、動的な項目についての情報を取得することを可能にします。

VarAttr …… 項目の型を取り出します。

VarCurr …… 項目の現在の値を返します。

VarCurrN …… 項目名に対応した項目の現在の値を返します。

VarDbName …… 指定した項目のDBカラム名を返します。

VarIndex …… 項目名に対応した項目のシンボル名を返します。

VarInp …… カーソルが最後にパークした項目を確認します。

VarMod …… データビューのレコードが取り出されてから、項目の値が変更されているかどうかを確認します。

VarName …… 項目のオリジナルのデータソースとカラムnの名前を返します。

VarPic …… 指定した項目の書式を返します。

VarPrev …… 項目のオリジナルの値を返します。

VarSet …… 項目に値を設定します。


関数ディレクトリ CaretPosGet

CaretPosGet

式エディタ > 関数ディレクトリ

エディットコントロールのキャレットの位置を取得

エディットコントロール内の現在のキャレットの位置が返ります。位置は、表示内容の先頭からの文字数として返ります。エディットコントロールの一番左端は、「1」になります。

[複数行編集]特性が「Yes」の場合やリッチエディトコントロールの場合は、改行コードを２文字としてカウントします。

構文：

CaretPosGet( )

パラメータ：

なし

戻り値：

数値 … エディットコントロールの現在のキャレットの位置

以下の場合、「0」が返ります。

  • フォーカス内にコントロールが存在しない

  • フォーカス内のコントロールがエディットコントロールでない

  • Magicエンジンがエディットコントロール上にパークしていない時にこの関数が実行された。

  • ハンドラが、[強制終了]が「コントロール」や「レコード」に設定されているイベントで起動された

関連項目：

MarkText, MarkedTextGet, MarkedTextSet


関数ディレクトリ EditGet

EditGet

式エディタ > 関数ディレクトリ

コントロールの値

ハンドラを起動したコントロールの値が返ります。

構文：

EditGet ( )

パラメータ：

なし

戻り値：

ハンドラを起動した項目の入力値が返ります。

注意事項：

  • ハンドラによる処理でのみ有効です。

  • ハンドラを起動した最後のコントロールの項目に入力されている値が返ります。

  • 戻り値の型は、対象となる項目の型と同じになります。

  • エディットコントロール以外で、編集モードにならないコントロールの場合は、そのコントロールの現在値か、項目値が返ります。

  • どのコントロールにもパークしないような処理フローのなかで関数が実行された場合、NULLが返ります。

  • コントロールから起動されるハンドラの設定において、イベントの[強制終了]の設定が[R=レコード]の場合、NULLが返ります。

関連項目：

EditSet


関数ディレクトリ EditSet

EditSet

式エディタ > 関数ディレクトリ

コントロールに値を設定

ハンドラを起動したコントロールに値を設定します。

構文：

EditSet (値)

パラメータ：

値…コントロールに設定する値

戻り値：

論理値… 処理に成功した場合「True」が返ります。

注意事項：

  • ハンドラによる処理でのみ有効です。

  • 設定する値の型は、コントロールに関連付けられた項目の型と一致していなければいけません。異なる場合は、「False」 が返ります。

  • エディットコントロール以外のコントロールでは、そのコントロールに対応した変数項目の値を更新します。

  • どのコントロールにもパークしないような処理フローのなかで関数が実行された場合、「False」が返ります。

  • コントロールから起動されるハンドラの設定において、イベントの[強制終了]の設定が[R=レコード]の場合、「False」 が返ります。[C=コントロール]の場合、コントロールに対応する項目に値が設定されます。

関連項目：

EditGet


関数ディレクトリ IsDefault

IsDefault

式エディタ > 関数ディレクトリ

デフォルト値かどうかの確認

項目の値が、デフォルト値であるかどうかを確認します。

構文：

IsDefault (項目のシンボル名)

パラメータ：

項目のシンボル名…デフォルト値であるかどうかをチェックする項目のシンボル名。[項目一覧]で表示される値を指定します。VARリテラルが必要です。

戻り値：

論理値

  • True …項目の値がデフォルト値である場合

  • False …項目の値がデフォルト値でない場合

例：

IsDefault('C'VAR)では、項目C の値がデフォルト値（[カラム特性]ダイアログで指定した値）であるかどうかがチェックされます。


関数ディレクトリ ISNULL

ISNULL

式エディタ > 関数ディレクトリ

NULL値かどうかの確認

値がNULL値であるかどうかを確認します。

構文：

ISNULL(値)

パラメータ：

値…チェックする値。項目や式を指定します。

戻り値：

論理値

  • True …指定した項目がNULL値 の場合

  • False …指定した項目がNULL値 以外の場合

例：

ISNULL(BE)

項目BE の値がNULL の時「True」 が返ります。

関連項目：

NULL


関数ディレクトリ MarkedTextGet

MarkedTextGet

式エディタ > 関数ディレクトリ

マークされたテキスト マークされたテキストを返します。
構文： | MarkedTextGet ( )
パラメータ： | なし
戻り値： | 文字列 … マークされた文字列が返ります。[エディット]コントロールにテキストがなかったり、マークされていない場合は、空白が返ります。
関連項目： | CaretPosGet, MarkText, MarkedTextSet


関数ディレクトリ MarkedTextSet

MarkedTextSet

式エディタ > 関数ディレクトリ

マークされたテキストの設定

マークされたテキストを指定された文字列に置き換えます。マークされていないテキストは変更されません。テキストがマークされていない場合、何も変わりません。

構文：

MarkedTextSet(文字列)

パラメータ：

文字列 … マークされたテキストを置き換える文字列

戻り値：

論理値 … テキストが置き換わった場合、「True」が返ります。

以下の場合は処理が失敗し、「False」が返ります。

  • フォーカス上にコントロールがないか[エディット]コントロール以外の場合

  • Magicエンジンが[エディット]コントロールにパークしておらず、この関数がフロー上で評価された場合

  • [強制終了]が「コントロール」か「レコード」のイベントによって起動されたハンドラから実行された場合

  • テキストがマークされていない場合

関連項目：

CaretPosGet, MarkText, MarkedTextGet


関数ディレクトリ MarkText

MarkText

式エディタ > 関数ディレクトリ

テキストのマーク

実行時に文字列を処理するためにテキストをマークします。指定された位置から指定された文字数分がマークされます。

構文：

MarkText(開始位置, 文字数)

パラメータ：

開始位置（数値） … マークを開始する文字列上の位置を表す数値。「1」が文字列の先頭になります。

文字数（数値） … マークする文字数を表す数値。負数を指定した場合、逆方向にマークされます。複数行編集の[エディット]コントロールや[リッチエディット]コントロールの場合、改行コードは、２文字とカウントされます。

戻り値：

数値 … マークされた文字数

以下の場合、「0」が返ります。

  • フォーカス上にコントロールがない場合

  • フォーカス上のコントロールが[エディット]コントロールでない場合

  • Magicエンジンが[エディット]コントロールにパークしておらず、この関数がフロー上で評価された場合

  • [強制終了]が「コントロール」か「レコード」のイベントによって起動されたハンドラから実行された場合

  • 開始位置が、文字列のサイズより大きい場合

関連項目：

CaretPosGet, MarkedTextGet, MarkedTextSet


関数ディレクトリ 数値関数

数値関数

式エディタ > 関数ディレクトリ

乗算演算子

加算演算子

減算演算子

除算演算子

指数演算子

ABS …… 実数の絶対値が返ります。

ACOS …… 角度の逆余弦（アークコサイン）がラジアンで返ります。

ASIN …… 角度の逆正弦（アークサイン）がラジアンで返ります。

ATAN …… 角度の逆正接（アークタンジェント）がラジアンで返ります。

ChkDgt …… 検査数字（チェックディジット）を作成します。

COS …… 角度の余弦（コサイン）が返ります。

EXP …… 指数を計算します。

Fix …… 数値（実数または整数）を指定し、その一部を切り取ります。

HStr …… 10 進数を16 進数に変換します。

LOG …… 指定した数値の自然対数を返します。

MAX …… 複数の値を指定し、その中の最大値を返します。

MIN …… 複数の値を指定し、その中の最小値を返します。

MOD …… 整数を除算したときの余りが返ります。

MStr …… 数値を指定された長さ（バイト数）のMagic数字に変換します。

RAND …… 乱数を生成します。

Range …… 値と範囲を指定し、その値が指定した範囲にあるかどうかをチェックします。

Round …… 数値の一部を取り出し、その結果を四捨五入します。

SIN …… 角度の正弦（サイン）がラジアンで返ります。

Str …… 数値を文字列に変換します。

TAN …… 角度の正接（タンジェント）がラジアンで返ります。


関数ディレクトリ ABS

ABS

式エディタ > 関数ディレクトリ

絶対値 実数の絶対値が返ります。戻り値は必ず正の値です。
構文： | ABS(数値)
パラメータ： | 数値…数値
戻り値： | 数値の絶対値
例： | x=20 、y=30 の場合、ABS(x-y)では、10 が返ります。


関数ディレクトリ ACOS

ACOS

式エディタ > 関数ディレクトリ

逆余弦（アークコサイン） 数値の逆余弦がラジアンで返ります。
構文： | ACOS(数値)
パラメータ： | 数値…数値
戻り値： | 数値（ラジアン）
例： | x=1 、y=0.5 の場合、ACOS(x-y)では、1.04719755 が返ります。
関連項目： | COS, SIN, ASIN, TAN, ATAN


関数ディレクトリ ASIN

ASIN

式エディタ > 関数ディレクトリ

逆正弦（アークサイン） 数値の逆正弦（アークサイン）がラジアンで返ります。
構文： | ASIN(数値)
パラメータ： | 数値…数値
戻り値： | 逆正弦（ラジアン）
例： | x=1 、y=0.5 の場合、ASIN(x-y)では、0.52359878 が返ります。
関連項目： | SIN, COS, ACOS, TAN, ATAN


関数ディレクトリ ATAN

ATAN

式エディタ > 関数ディレクトリ

逆正接（アークタンジェント） 数値の逆正接（アークタンジェント）がラジアンで返ります。
構文： | ATAN (数値)
パラメータ： | 数値…数値
戻り値： | 逆正接（ラジアン）
例： | x=2 、y=1 の場合、ATAN(x-y)では、0.78539816 が返ります。
関連項目： | TAN, COS, ACOS, SIN, ASIN


関数ディレクトリ ChkDgt

ChkDgt

式エディタ > 関数ディレクトリ

検査数字を作成

検査数字（チェックデジット）を作成します。チェックデジットは、前後に数が追加された数値で、数値の整合性を高めるために使用されます。簡単なアルゴリズムが、チェックデジットを算出する数値の他の数値に適用されます。アルゴリズムを実行し、チェックデジットを比較することで数値が正しいかどうかを判定できます。チェックデジットは、クレジットカードやID番号の照合などに使用されます。

構文：

ChkDgt(文字列,数値)

パラメータ：

文字列…数値を文字列として指定します。この文字列について、検査数字が作成されます（処理対象の数値は、あらかじめ文字列に変換しておかなければなりません）。

数値…係数（モジュラス）が10 または11 を表す数値

  • 0…モジュラス10

  • 1…モジュラス11

戻り値：

数値

例：

ChkDgt('6789',0)では、2 が返ります。

x が文字列'6789'の場合、ChkDgt(x,0)では2 が返ります。

ChkDgt('6789',1)では、1 が返ります。

関連項目：

CRC


関数ディレクトリ COS

COS

式エディタ > 関数ディレクトリ

余弦（コサイン） 指定した角度の余弦（コサイン）が返ります。角度は、ラジアンで指定します。
構文： | COS(数値)
パラメータ： | 数値…ラジアンで示した角度
戻り値： | 数値
例： | COS(0.7854)では、0.70711 が返ります。
関連項目： | ACOS, SIN, ASIN, TAN, ATAN


関数ディレクトリ EXP

EXP

式エディタ > 関数ディレクトリ

指数 指数を計算します。
構文： | EXP(数値)
パラメータ： | 数値…指数関数の ex のx値
戻り値： | 数値… ex の値
例： | EXP（5）は、e5の値を返します。
関連項目： | LOG


関数ディレクトリ Fix

Fix

式エディタ > 関数ディレクトリ

数値の抽出（範囲外は切り捨て） 数値（実数または整数）を指定し、その一部を切り取ります。
構文： | Fix(数値,整数部桁数,小数部桁数)
パラメータ： | 数値 …処理対象の数値 整数部桁数 …指定した数値の整数部で切り取り後の桁数を指定します。整数部の場合、切り取りは左側から行われます。 小数部桁数 …指定した数値の小数部で切り取り後の桁数を指定します。小数部の場合、切り取りは右側から行われます。
戻り値： | 数値
例： | Fix(12345.6789,3,3)
 | 345.678 が返ります。
 | IF(Fix(M,2,0)=99,N+1,N)
 | 数値M がチェックされ、M の整数部で右側の2 桁が99であった場合、N が1だけ増加します。
関連項目： | Round


関数ディレクトリ HStr

HStr

式エディタ > 関数ディレクトリ

10 進数から16 進数に変換 10 進数を16 進数に変換します。
構文： | HStr(数値)
パラメータ： | 数値……10 進数、または10 進数を表す数値
戻り値： | 文字列……16 進数を表す文字列
例： | HStr(15)
 | 'F'が返ります。
 | HStr(16)
 | '10'が返ります。
注意事項： | 結果は、左寄せの形式で返ります。
関連項目： | HVal


関数ディレクトリ LOG

LOG

式エディタ > 関数ディレクトリ

自然対数 指定した数値の自然対数を返します。
構文： | LOG(数値)
パラメータ： | 数値…入力数値
戻り値： | 数値…対数
例： | LOG(2.71828)
 | 1 が返ります。
関連項目： | EXP


関数ディレクトリ MAX

MAX

式エディタ > 関数ディレクトリ

最大値

複数の値を指定し、その中の最大値を返します。値のデータ型は同じでなければなりません。

構文：

MAX(値1,値2,...値n)

パラメータ：

値1 …数値、文字列、論理値のいずれか

値2 …値1 と同じデータ型の値

：

値n …値1 と同じデータ型の値

戻り値：

最大値

例：

MAX(8,9.2,5,4)

9 が返ります。

MAX('ABC','ACD')

'ACD'が返ります。

注意事項：

  • パラメータの数は、最大で30です。

  • [式]エディタの式は、展開表示では最後に省略記号（'...'）が示されます。これはパラメータの数が下辺であることを表しています。

  • 値がBLOB項目の場合は、バイナリデータを数値として比較します。

関連項目：

MIN, IF


関数ディレクトリ MIN

MIN

式エディタ > 関数ディレクトリ

最小値

複数の値を指定し、その中の最小値を返します。値のデータ型は同じでなければなりません。

構文：

MIN(値1,値2,...値)

パラメータ：

値1 …数値、文字列、論理値のいずれか

値2 …値1 と同じデータ型の値

：

値n …値1 と同じデータ型の値

戻り値：

最小値

例：

MIN(8,9,2,5,4)

2 が返ります。

MAX('ABC', 'ACD')

'ABC'が返ります。

注意事項：

  • パラメータの数は、最大で30個です。

  • [式]エディタの式は、展開表示では最後に省略記号（'...'）が示されます。これはパラメータの数が下辺であることを表しています。

  • 値がBLOB項目の場合、バイナリデータを数値として比較します。

関連項目：

MAX, IF


関数ディレクトリ 演算子 剰余

剰余演算子(MOD)

式エディタ > 関数ディレクトリ > 演算子

モジュールは、整数を除算した時の余りを戻します。

例：17 MOD 10は、7を戻します。


関数ディレクトリ MStr

MStr

式エディタ > 関数ディレクトリ

数値を文字列に変換

数値を指定された長さ（バイト数）のMagic 数字に変換します。

構文：

MStr(数値,バイト数)

パラメータ：

数値…文字列に変換される数値

バイト数…変換後の文字列の長さ（バイト数）

戻り値：

文字列 … Magic 数字に変換された文字列

例：

MStr(123456,4)

数値123456 が4 バイトの文字列に変換されます。

注意事項：

  • この関数は、配列にデータを格納するすることを前提に設計されます。

  • 精度の最大値は、項目の[格納形式]特性が「MAGIC数値」として認識されます。

関連項目：

MVal


関数ディレクトリ RAND

RAND

式エディタ > 関数ディレクトリ

乱数 乱数を生成できます。
構文： | RAND(開始番号)
パラメータ： | 開始番号…乱数の生成に使われるシード値
戻り値： | 数値…乱数が１未満の小数値で返ります。
例： | 開始番号が「-1」の場合、シード値自体が乱数となります。 開始番号が「n」の場合（n は、0 または-1 以外）、シード値がn になります。 開始番号が「0」の場合、既存のシード値を基に次の乱数が生成されます。したがって、既存のシード値を基に乱数を生成したい場合、RAND(0)を使用します。


関数ディレクトリ Range

Range

式エディタ > 関数ディレクトリ

範囲チェック

値と範囲を指定し、その値が指定した範囲にあるかどうかを確認します。

構文：

Range(値,下限値,上限値)

パラメータ：

値…チェックの対象

下限値…範囲の下限となる値

上限値…範囲の上限となる値

戻り値：

論理値

  • True …値が指定した範囲内にある（境界値を含む）

  • False …値が指定した範囲内にない

例：

Range(10,5,15)

「True」 が返ります。

注意事項：

MIN やMAX と同じく、この関数でも、任意のデータ型の値が指定できます。ただし、値、下限値、上限値の各パラメータのデータ型は全て同じでなければなりません。BLOB は、全て「False」 が返ります。

関連項目：

MIN, MAX


関数ディレクトリ Round

Round

式エディタ > 関数ディレクトリ

数値の四捨五入 数値の一部を取り出し、その結果を四捨五入します。
構文： | Round(数値,整数部桁数,小数部桁数)
パラメータ： | 数値 … 処理の対象となる数値 整数部桁数 … 取り出したい桁の整数の桁数を指定します。指定した数の桁は、小数点から左に向かって取り出されます。 小数部桁数 … 取り出したい桁の少数の桁数を指定します。指定した数の桁は、小数点から右に向かって取り出されます。
戻り値： | 数値…取り出される小数部で一番右の次の桁が四捨五入され、その結果が返ります。
例： | Round(345.995,2,2)
 | 46.00 が返ります。
関連項目： | Fix


関数ディレクトリ SIN

SIN

式エディタ > 関数ディレクトリ

正弦（サイン）三角関数 角度のサインが返ります。角度はラジアンで指定します。
構文： | SIN(ラジアン)
パラメータ： | ラジアン … 角度を示すラジアン
戻り値： | 正弦値（サイン）
例： | SIN(0.7854)
 | 0.70711 が返ります。
関連項目： | ASIN, ACOS, ATAN, COS, TAN


関数ディレクトリ Str

Str

式エディタ > 関数ディレクトリ

数値を文字列に変換 数値を文字列に変換します。
構文： | Str(数値,書式)
パラメータ： | 数値 … この数値が文字列に変換されます。 書式 … この書式に従って数値が文字列に変換されます。
戻り値： | 変換された文字列
例： | Str(45.12,'##.#')
 | '45.1'が返ります。
注意事項： | この関数では書式を指定しますので、数値によっては四捨五入されることもあります。例えば、Str（39.999,'##.##'）では'40.00'が返ります。
関連項目： | Val


関数ディレクトリ TAN

TAN

式エディタ > 関数ディレクトリ

正接（タンジェント）三角関数 角度の正接（タンジェント）が返ります。角度は、ラジアンで指定します。
構文： | TAN(ラジアン)
パラメータ： | ラジアン … 角度で、ラジアンで指定します。
戻り値： | 数値 …正接値
例： | TAN(0.7853981634)
 | 1 が返ります。
関連項目： | ASIN, ACOS, ATAN, SIN, COS


関数ディレクトリ 他アプリ連携関数

他アプリ連携関数

式エディタ > 関数ディレクトリ

BLOBFromBase64 …… BASE64でエンコードされたBLOBデータをデコードします。

BLOBToBase64 …… BLOBデータをBASE64でエンコードします。

BrowserGetContent …… [ブラウザ]コントロール内に表示されたhtmlの内容を取得します。

BrowserScriptExecute …… [ブラウザ]コントロールに定義されたスクリプトコマンド（JavaScript、VBスクリプト）を実行します。

BrowserSetContent …… フォーム上の[ブラウザ]コントロールに表示内容を設定します。

CallDLL …… Magic からCDECL呼び出し規約でDLLを呼び出します。

CallDLLF …… Magic からFASTCALL呼び出し規約でDLLを呼び出します。

CallDLLS …… Magic からSTDCALL呼び出し規約でDLLを呼び出します。

CallJS …… ブラウザタスクにおいて使用するHTML ファイル内に埋め込まれているJavaスクリプトを呼び出します。

CallOBJ …… ブラウザタスクにおいて使用するHTML ファイル内に埋め込まれているActiveX オブジェクトを呼び出します。

CallProgURL …… ブラウザタスクから同一アプリケーションサーバ上のMagicプログラムを、HTTPリクエスタ経由で呼び出します。

CallURL …… ブラウザタスクから[アクション]処理コマンドを使用して URLを呼び出します。

Cipher …… 文字列 または、 BLOB を含むバッファを暗号化します。

ClientCertificateAdd ……動作環境の[SSLクライアント証明書ファイル]に設定されたクライアント証明書以外の証明書を指定します。

ClientCertificateDiscard …… 証明書のリストからクライアント証明書を破棄します。

ClipAdd …… OSのクリップボードに追加する値と型を定義してバッファに追加します。

ClipRead …… OSのクリップボードの内容を返します。

ClipWrite …… ClipAdd 関数で定義した内容をOSのクリップボードに書き込みます。

COMError …… MagicがCOM オブジェクトをアクセスした時に発生した最後のエラー情報を返します。

COMHandleGet …… ロードされたCOM オブジェクトのハンドルを取得します。

COMHandleSet …… COMHandleGet 関数によって返されたハンドル番号と、COM オブジェクト項目から以前にロードされたオブジェクトを参照します。

COMObjCreate …… オブジェクトが定義された変数項目を基にCOM オブジェクトのインスタンスを作成します。

COMObjRelease …… COMObjCreate関数や自動インスタンス化設定によってロードされたCOM オブジェクトを解放します。

DbXmlMixedGet …… 混在内容のXML要素からテキストを取得します。

DbXmlMixedSet …… 混在内容のXML要素にテキストを設定します。

DDEBegin …… DDE サーバとのセッションの確立を明示的に開始します。

DDEEnd …… DDE サーバとのセッションを明示的に終了させます。

DDEGet …… 指定したDDE サービスから文字列を取り出します。

DDEPoke …… Magic からDDE サーバアプリケーションに対して文字列を転送します。

DDERR …… Magic のDDE 処理の際に発生したエラーを返します。

DDExec …… Magic からDDE サーバへ、コマンド文字列を転送します。

DeCipher …… 暗号化されたバッファを 文字列や BLOBを含むバッファに変換します。

DragSetCrsr …… 指定したカーソルファイルがドラッグ操作によってコピー可か否かのモードとして定義します。

DragSetData ……自動的にドラッグ処理されないコントロールのデータ内容やフォーマットを定義ます。

DropFormat …… 定義されたデータフォーマットがMagicの Drop関数でサポートされているかどうかを確認します。

DropGetData ……定義されたフォーマットでドラッグしたデータを取り出します。

DropMouseX …… ドラッグしたデータをドロップした時のフォームの X座標（フォームの寸法単位）値を返します。

DropMouseY …… ドラッグしたデータをドロップした時のフォームのY座標（フォームの寸法単位）値を返します。

EncryptionError …… 暗号／復号化処理のエラーメッセージを返します。

HTTPGet …… HTTPリクエストの結果として返されるHTMLをBLOBとして返します。

HTTPLastHeader …… HTTPGet/HTTPPost関数で取得した 直近のHTTPリクエストのヘッダ情報を取得します。

HTTPPost …… HTTP メッセージ経由で情報を渡したり、HTTP リクエストの戻り値としてのHTML/XML 結果を形式で返します。

LDAPError …… LDAP サーバの直近のエラーメッセージを返します。

LDAPGet …… LDAPサーバのディレクトリに格納されているユーザ情報を返します。

MailBoxSet …… 現在接続している IMAPメールサーバのメールボックス（フォルダ）を切り替えます。

MailConnect …… メールサーバに接続します。

MailDisconnect …… メールサーバとの接続を切断します。

MailError …… メール関数から戻されたエラーコードをエラーメッセージに変換します。

MailFileSave …… 受信メールに添付されているファイルを保存します。

MailLastRC …… 他のメール関数が失敗した場合の最後のエラーを返します。

MailMsgBCC …… 受信メールの BCC で指定されたアドレスを返します。

MailMsgCC …… 受信メールの CC で指定されたアドレスを返します。

MailMsgDate …… 受信メールの日付と時刻の情報を返します。

MailMsgDel …… メールボックスからメッセージを削除します。

MailMsgFile …… 受信メールに添付されているファイル名を返します。

MailMsgFiles …… 受信メールに添付されているファイル数を返します。

MailMsgFrom …… 受信メールの FROM で指定されたアドレスを返します。

MailMsgHeader …… 受信メールのヘッダ情報を返します。

MailMsgId …… 受信メールのメッセージID を返します。

MailMsgReplyTo …… 受信メールのREPLAY TO アドレスを返します。

MailMsgSubj …… 受信メールの件名を返します。

MailMsgText …… 受信メールの内容を返します。

MailMsgTo …… 受信メールの TO アドレスを返します。

MailSend …… メールの送信を行います。

UDF …… C言語で書かれたユーザ関数呼び出します。

UDFF …… C言語で書かれたユーザ関数呼び出します。（FASTCALL形式）

UDFS …… C言語で書かれたユーザ関数呼び出します。（STDCALL形式）

SetContextFocus …… 指定されたコンテキストの現在のウィンドウにフォーカスを設定します。

SNMPNotify …… アプリケーションで定義されたトラップメッセージをNMSに送信します。

WSConsumerAttachmentAdd …… コンシューマWebサービスプログラムが使用することにより、SOAPリクエストにアタッチメントを付加します。

WSConsumerAttachmentGet …… コンシューマWebサービスプログラムが使用することにより、SOAP応答のからアタッチメントを取り出します。

WSProviderAttachmentAdd …… SOAPメッセージにDIME仕様のデータを添付します。

WSProviderAttachmentGet …… SOAPメッセージに添付されているDIME仕様のデータを取り出します。

WsSetIdentity …… 現在のコンテキストに対するIDを設定します。

XMLBLOBGet …… 要素パスに従ってXML要素／XML属性の値を返します。

XMLCnt …… 指定したパス内のXML要素の数または、XML属性の数を返します。

XMLDelete …… 指定したパス内のXML要素または、XML属性を削除します。

XMLExist …… 指定したパス内にXML要素または、XML属性が存在するかどうかを確認します。

XMLFind …… 指定した値とXML要素の値や属性値が一致した場合、そのインデックス値を返します。

XMLGet …… XML要素、またはXML属性の値を返します。

XMLGetAlias …… ネームスペース内部テーブルから、ネームスペースURIに対応したエイリアスを取り出します。

XMLGetEncoding …… XMLドキュメントのエンコード結果を取得します。

XMLInsert …… 指定された位置のXML要素をXMLドキュメントに追加したり、属性を既存のXML要素に追加します。

XMLModify …… XML要素または属性値を修正します。

XMLSetEncoding …… 書込アクセスでオープンされたXMLドキュメントのエンコードを設定します。

XMLSetNS …… 指定したXMLファイルにネームスペースURIを書き込みます。

XMLStr …… 正規のXML表記を予約語を使用したXML表記に変換します。

XMLVal …… 予約語を使用したXML表記を正規のXML表記に変換します。

XMLValidate …… スキーマに対するXMLドキュメントを有効にします。

XMLValidationError …… 最後に実行した XMLValidate関数に基づくエラーの一覧を取得します。


関数ディレクトリ BrowserGetContent

BrowserGetContent

式エディタ > 関数ディレクトリ

ブラウザデータの取得 [ブラウザ]コントロールで設定されたHTMLの内容を取得します。関数は、同じタスクのフォームに定義されたコントロールに対してのみ有効です。 テキストベース以外のオブジェクト（例：PDFファイル）が表示されている場合は、取得できません。
構文： | BrowserGetContent(コントロール名)
パラメータ： | コントロール名 … [ブラウザ]コントロールのコントロール名
戻り値： | [ブラウザ]コントロールの内容を表す文字列。エラーが発生した場合、Nullが返ります。
注意事項： | クライアント側でのみ実行されます。
関連項目： | BrowserScriptExecute, BrowserSetContent


関数ディレクトリ BrowserScriptExecute

内部的にOS固有のAPIを使用した、Java開発者向けのUIツールキットです。Eclipse自体もSWTを使用して作成されています。しかし、SWTはEclipseに依存するものではなく、スタンドアロン・アプリケーションを作成することも可能です。

BrowserScriptExecute

式エディタ > 関数ディレクトリ

スクリプトの実行

[ブラウザ]コントロールに定義されたスクリプトコマンド（JavaScript、VBスクリプト）を実行します。

これは、値をコントロールのパラメータに設定したり、コントロール内の特定のスクリプトを実行させるなどのコントロール処理を行う場合に便利です。

関数は、同じタスクのフォームに定義されたコントロールに対してのみ有効です。

構文：

BrowserScriptExecute(コントロール名, 値, 同期)

パラメータ：

コントロール名 … [ブラウザ]コントロールのコントロール名

値 …実行するスクリプトコマンドが格納された項目を指定します。指定できるデータ型は、文字型、Unicode型、またはBLOB型（[内容]特性は、「ANSI/Unicode」）です。

同期 …コマンド実行が終了するまでエンジンが処理を待つかどうかを指定します。

戻り値：

論理値… 処理に成功した場合「True」が返ります。

以下のような場合、処理は失敗します。

  • 指定されたコントロールが存在しない場合

  • SWT（Standard Widget Toolkit）からエラーが返された場合

例：

<script language="JavaScript"><!--

myStatusTbl = new Array(5);

myStatusTbl[0] = "お読みください";

myStatusTbl[1] = "難易度：★☆☆☆☆☆☆☆☆☆";

myStatusTbl[2] = "難易度：★★☆☆☆☆☆☆☆☆";

myStatusTbl[3] = "難易度：★★★☆☆☆☆☆☆☆";

myStatusTbl[4] = "難易度：★★★★☆☆☆☆☆☆";

function myIn( myTblNo ) {

window.status = myStatusTbl[myTblNo]; // ステータスバーに表示

return true;

}

[ブラウザ]コントロールに上記のようなスクリプトが設定されたHTMLが設定されている場合、以下のどちらを指定しても、ステータスメッセージが返ります。（ステータスメッセージは、[ブラウザステータスのテキスト変更]イベントで取得できます。）

BrowserScriptExecute('ControlName,'myIn(2)' ,'False'LOG)

BrowserScriptExecute('ControlName,'myStatusTbl(2)' ,'False'LOG)

注意事項：

クライアント側でのみ実行されます。

関連項目：

BrowserGetContent, BrowserSetContent


関数ディレクトリ BrowserSetContent

内部的にOS固有のAPIを使用した、Java開発者向けのUIツールキットです。Eclipse自体もSWTを使用して作成されています。しかし、SWTはEclipseに依存するものではなく、スタンドアロン・アプリケーションを作成することも可能です。

BrowserSetContent

式エディタ > 関数ディレクトリ

[ブラウザ]コントロール内に表示内容を設定

フォーム上の[ブラウザ]コントロールに表示内容を設定します。テキストベースの内容のみ指定できます。

関数は、同じタスクのフォームに定義されたコントロールに対してのみ有効です。

構文：

BrowserSetContent(コントロール名, 値)

パラメータ：

コントロール名 … [ブラウザ]コントロールのコントロール名

値 …設定する値が格納された項目を指定します。指定できるデータ型は、文字型、Unicode型、またはBLOB型（[内容]特性は、「ANSI/Unicode」）です。

戻り値：

論理値… 処理に成功した場合「True」が返ります。

以下のような場合、処理は失敗します。

  • 指定されたコントロールが存在しない場合

  • SWT（Standard Widget Toolkit）からエラーが返された場合

注意事項：

クライアント側でのみ実行されます。

関連項目：

BrowserGetContent, BrowserScriptExecute


関数ディレクトリ CallJS

CallJS

式エディタ > 関数ディレクトリ

Javaスクリプトの呼び出し ブラウザタスクで使用するHTMLテンプレートファイル内に埋め込まれているJavaスクリプトを呼び出します。
構文： | CallJS(関数名,パラメータ１ ,パラメータ２ ,.)
パラメータ： | 関数名…Javaスクリプトの関数の名前 パラメータ…Javaスクリプト関数に渡すパラメータをカンマ区切りで指定します。
戻り値： | 文字列…Javaスクリプト関数からの戻り値
例： | CallJS('my function','A',3)
 | 上記は文字と数を渡し、その文字を数の分だけ繰り返した文字列を返すJavaスクリプトを呼び出す例です。 この関数の戻り値は、'AAA'という文字列になります
参考： | [アクション]処理コマンドでこの関数を使用する場合、JavaScriptは実行時の位置で実行されます。実行されるJavaScriptは、HTML内に直接書き込まれているか、またはリンク先のファイルに定義されている必要があります。 単一の文字列をパラメータとして渡すこともできます。
 | CallJS(‘my_function(’A(‘、3’))
 | パラメータがない場合は、関数名の後に'()'を付加してください。
 | CallJS('my_function()')


関数ディレクトリ CallOBJ

CallOBJ

式エディタ > 関数ディレクトリ

ActiveXオブジェクトの呼び出し

ブラウザタスクで使用するHTMLテンプレートファイル内に埋め込まれているActiveX オブジェクトを呼び出します。

構文：

CallOBJ(オブジェクト名,パラメータ名１,値１ ,パラメータ名２,値２,...)

パラメータ：

オブジェクト名…HTML ファイルに埋め込まれているオブジェクトのID
objectタグ内の 「id」の値（ActiveXコントロールのプロパティ上では、[オブジェクトタグ]タブの[名前]の値として表示されます。）

パラメータ名…オブジェクトに設定するパラメータの名前

値…パラメータに設定する値

パラメータ名と値の組み合わせで複数のパラメータを指定できます。

パラメータ名と値には、param タグの「name」と「value」の組み合わせで指定された内容を参考にしてください。（ActiveXコントロールのプロパティ上では、[パラメータ]タブの[属性]と「値」として表示されます。)

戻り値：

オブジェクトからの戻り値

例：

CallOBJ(Calendar1','Year','2005')
CallOBJ(Calendar1','Month','12')
CallOBJ(Calendar1','Day','25')

カレンダーコントロールを配置したHTMLページを使用して、指定した日付（2005/12/25）を表示させる例です。

この関数の戻り値は、処理が成功すると「True」、失敗すると、「False」になります。

注意事項：

パラメータを複数指定する場合、パラメータ名と値を１つの関数の中で指定できますが、ActiveXオブジェクトによっては、正しく渡らない場合があります。このような時は、パラメータを個別に指定したCallOBJ関数を実行させるようにしてください。


関数ディレクトリ CallProgURL

CallProgURL

式エディタ > 関数ディレクトリ

アプリケーションサーバ上のMagic プログラムの起動 ブラウザタスクから同一アプリケーションサーバ上のMagicプログラムを、HTTPリクエスタ経由で呼び出します。
構文： | CallProgURL(アプリケーション名,プログラム名, 出力先,パラメータ1,パラメータ2,…)
パラメータ： | アプリケーション名…起動されるアプリケーションの名前 プログラム名… 実行するプログラム（の公開)名 出力先…表示したいフレーム名 パラメータn…プログラムに渡すパラメータ
戻り値： | 論理値… 処理に成功した場合「True」が返ります。
例： | CallProgURL('My App','My Prog','','A',5)
 | 同じ処理をURLで指定した場合、以下のようになります。
 | [HTTP Requester]?Appname=My App&Prgname=My Prog&Argument=A,-N5
注意事項： | フレーム名が空白の場合は、新しいウィンドウをオープンします。


関数ディレクトリ CallURL

CallURL

式エディタ > 関数ディレクトリ

URLの呼び出し ブラウザタスクから[アクション]処理コマンドを使用してURLを呼び出します。
構文： | CallURL(URL,出力先)
パラメータ： | URL…呼び出したいURLを表す文字列 出力先…表示したいフレーム名
戻り値： | 論理値… 処理に成功した場合「True」が返ります。
例： | CallURL('http://www.magicsoftware.com','Magic')
 | フレーム名'Magic'に指定したURLを表示します。
注意事項： | フレーム名が空白の場合は、新しいウィンドウをオープンします。


関数ディレクトリ Cipher

Cipher

式エディタ > 関数ディレクトリ

データの暗号化 文字列 または、バッファデータを暗号化します。
構文： | Cipher(暗号 ID 、バッファ、キー [ , モード , IV ])
パラメータ： | 暗号ID…指定された暗号のアルゴリズムを表す数値 バッファ…暗号化対象の文字列またはバッファデータを含んだBLOB項目 キー…暗号化キーを含む（BLOB）文字列 モード…暗号IDによって指定された暗号化方法によって選択されたモードを含む文字列。暗号化方法に対応したモードが指定されない場合、デフォルト値としてCBCが使用されます。 IV …初期化ベクトルを含むBLOB項目。このパラメータは任意です。
戻り値： | 暗号化された文字列またはBLOB値 暗号ID が正しくなかったり、キー長が 暗号IDに合わない場合は、NULL値を返します。
参照事項： | サポートする暗号化方法とモード, DeCipher


関数ディレクトリ ClipAdd

ClipAdd

式エディタ > 関数ディレクトリ

クリップボードに追加する値の定義 OSのクリップボードに追加する値と型を定義してバッファに追加します。
構文： | ClipAdd (値,書式, [値, 型,])
パラメータ： | １対のパラメータの組み合わせで複数の値を指定できます。 値…BLOB を除くMagic の項目 書式…項目の書式
戻り値： | 論理値… 処理に成功した場合「True」が返ります。 OS がクリップボードに対応してない場合は、「False」になります。
注意事項： | この関数は、クリップボードのバッファに値を置きます。 値の間にタブを挿入します。文字列の末尾に改行コードを入れます。
関連項目： | ClipRead,ClipWrite


関数ディレクトリ ClipRead

ClipRead

式エディタ > 関数ディレクトリ

クリップボードの読込 OSのクリップボードの内容を返します。
構文： | ClipRead()
パラメータ： | なし
戻り値： | BLOB値…クリップボードの内容がCF_TEXT 形式で返ります。処理が実行されなかった場合やクリップボードが空の場合は、NULL が返ります。
関連項目： | ClipAdd,ClipWrite


関数ディレクトリ ClipWrite

ClipWrite

式エディタ > 関数ディレクトリ

クリップボードの書込 ClipAdd 関数で定義した内容をOSのクリップボードに書き込みます。
構文： | ClipWrite()
パラメータ： | なし
戻り値： | 論理値… 処理に成功した場合「True」が返ります。
関連項目： | ClipAdd,ClipRead


関数ディレクトリ COMError

COMError

式エディタ > 関数ディレクトリ

COMとのアクセスエラー情報の取得

MagicがCOM オブジェクトをアクセスした時に発生した最後のエラー情報を返します。

構文：

COMError(情報タイプ)

パラメータ：

情報タイプ … 取得する情報を指定する数値。 以下の通りです。

  • 1 … エラー内容

  • 2 … エラーが発生したCOMオブジェクト

  • 3 … エラーが発生したインデックス番号

  • 4 … エラーに関するヘルプファイル

  • 5 … エラーに関するヘルプトピックのコンテキスト番号

  • 0 … 実際のエラー番号を示すHRESULT 値。16進コードで返ります。

戻り値：

情報タイプパラメータによって定義された文字列。 引数インデックスのような数値も文字列で返ります。 エラーがない時や、情報タイプの値が正しくない場合は空白が返ります。


関数ディレクトリ COMHandleGet

COMHandleGet

式エディタ > 関数ディレクトリ

COMオブジェクトのハンドルを取得

ロードされたCOM オブジェクトのハンドルを取得します。ハンドルは、数値で返ります。

構文：

COMHandleGet(オブジェクト)

パラメータ：

オブジェクト…COM オブジェクトが定義された BLOB項目

戻り値：

オブジェクトのハンドルを表す正数値

処理が失敗した場合は 以下の負数が返ります。

  • -1 … 項目の型が、ActiveXかOLE でない場合

  • -3 … オブジェクトがロードされない場合

注意事項：

COMHandleGetやCOMHandleSet 関数の扱いには十分注意してください。間違ったハンドルを誤ったオブジェクトに割り当てると、予期しない動作を実行する場合があります。


関数ディレクトリ COMHandleSet

COMHandleSet

式エディタ > 関数ディレクトリ

指定したハンドルのオブジェクトを参照

COMHandleGet 関数によって返されたハンドル番号と、COM オブジェクト項目から以前にロードされたオブジェクトを参照します。

構文：

COMHandleSet(参照項目、ハンドル)

パラメータ：

参照項目 … COMオブジェクトが定義された変数項目。VARリテラルが必要です。

ハンドル … 数値：COMHandleGet 関数で取得されたハンドル値

戻り値：

数値…処理が成功すると 0 が返ります。

失敗した場合は、以下のような負数が返ります。

  • -1 … 項目の型が、 ActiveXかOLE でない場合

  • -2 … 項目の[インスタンス化]特性が「A=自動」と設定されている場合

  • -3 … オブジェクトは、定義された項目によってロードされていない場合

  • -4 … 項目によって提供されたハンドルが正しくない場合

  • -5 … オブジェクトが既にインスタンス化されている場合

  • -6 … オブジェクトが更新できない場合

注意事項：

COMHandleGetやCOMHandleSet 関数の扱いには十分注意してください。間違ったハンドルを誤ったオブジェクトに割り当てると、予期しない動作を実行する場合があります。


関数ディレクトリ COMObjCreate

COMObjCreate

式エディタ > 関数ディレクトリ

COMオブジェクトのインスタンスを作成

オブジェクトが定義された変数項目を基にCOM オブジェクトのインスタンスを作成します。COMObjCreate関数は、[保存データ]特性が「R=参照」に設定された ActiveX か OLE項目のみ有効です。

構文：

COMObjCreate(項目)

パラメータ：

項目 … COMオブジェクトが定義された変数項目。VARリテラルが必要です。

戻り値：

数値 … ロードされたオブジェクトのハンドル数

処理が失敗した場合は、以下のような負数が返ります。

  • -1 … 項目の型が、ActiveXかOLE ではない場合

  • -2 … 項目の[インスタンス化]特性が「A=自動」と設定されている場合

  • -3 … オブジェクトは、定義された項目によって既にロードされていた場合

  • -4 … 原因不明のエラー

注意事項：

手動でロードされたCOM オブジェクトは、手動で解放してください。Magic エンジンは、この関数でロードされたオブジェクトを自動的に解放しません。 手動でロードされたオブジェクトを解放する場合は、COMObjRelease 関数を使用します。


関数ディレクトリ COMObjRelease

COMObjRelease

式エディタ > 関数ディレクトリ

COMオブジェクトの解放

COMObjCreate関数や自動インスタンス化設定によってロードされたCOM オブジェクトを解放します。

構文：

COMObjRelease(項目)

パラメータ：

項目 … COMオブジェクトが定義された変数項目。VARリテラルが必要です。

戻り値：

数値…処理が成功すると 0 が返ります。

失敗した場合は、以下のような負数が返ります。

  • -1 … 項目の型が、ActiveXかOLE ではない場合

  • -2 … 項目の[インスタンス化]特性が「A=自動」と設定されている場合

  • -3 … オブジェクトは、定義された項目によってロードされていない場合


関数ディレクトリ DeCipher

DeCipher

式エディタ > 関数ディレクトリ

データの復号化 暗号化されたバッファデータや文字列を元の値に変換します。
構文： | DeCipher(暗号 ID 、バッファ、キー [ , モード , IV ])
パラメータ： | 暗号ID … 指定された暗号のアルゴリズムを表す数値 バッファ … 暗号化された文字列またはBLOB値 キー … 暗号化キーを含む（BLOB）文字列。必要なキーの長さは、使用するアルゴリズムに依存します。 モード … 暗号IDによって指定された暗号化方法によって選択されたモードを含む文字列。暗号化方法に対応したモードが指定されない場合、デフォルト値としてCBCが使用されます。モードテーブルは次を参照してください。 IV … 初期化ベクトルを含むBLOB項目。このパラメータは任意です。
戻り値： | 復号化された文字列または、バッファを含むBLOB 暗号 ID が正しくなかったり、キー長が 暗号 ID に合わない場合は、NULL 値を返します。
関連項目： | サポート化する暗号化方法とモード , Cipher , EncryptionError


関数ディレクトリ EncryptionError

EncryptionError

式エディタ > 関数ディレクトリ

暗号／復号化処理のエラー情報の取得 Cipher/DeCipher 関数の直近のエラーメッセージを返します。この関数は、コンテキストごとに対応します。
構文： | EncryptionError()
パラメータ： | なし
戻り値： | 文字列…Cipher/DeCipher関数処理の直近のエラーメッセージ


関数ディレクトリ LDAPError

LDAPError

式エディタ > 関数ディレクトリ

LDAPサーバのエラー LDAP サーバの直近のエラーメッセージを返します。 関数の有効範囲は、コンテキスト単位です。
構文： | LDAPError()
パラメータ： | なし
戻り値： | 文字列 … LDAPサーバから直近に返されたエラーメッセージ


関数ディレクトリ LDAPGet

LDAPGet

式エディタ > 関数ディレクトリ

LDAPサーバの検索

LDAPサーバのディレクトリに格納されているユーザ情報を返します。

構文：

LDAPGet(検索ベース、検索レベル、検索フィルタ、属性、区切り)

パラメータ：

検索ベース …検索の開始点を指定した文字列。 空白の場合は、ドメインコンテキストの値が使用されます。

検索レベル …以下に示した検索レベルを指定します。

  • B…基本検索(検索ベースで指定したエントリのみ検索します。)

  • T…サブツリー検索(検索ベースを含んだサブツリー全体を検索します。)

  • O…１階層検索(検索ベースの一番直接のサブツリーのみを検索します。)

検索フィルタ …LDAPの検索フィルタを含む文字列(演算子が指定できます。空白を含めないでください。)

属性 …必要とされる情報タイプを定義する文字列

区切り …戻り値の値が複数の場合、値と値の間を区切る文字列を指定します。

戻り値：

文字列…要求された情報

例：

LDAP サーバのデータベースに以下のようなデータがあるものとします。

dn: uid=kvaughan, ou=People, o=airius.com
cn: Kirsten Vaughan
sn: Vaughan
givenname: Kirsten
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Sunnyvale
uid: kvaughan
mail: kvaughan@airius.com
telephonenumber: +1 408 555 5625
facsimiletelephonenumber: +1 408 555 3372
roomnumber: 2871
userpassword: bribery
........

LDAPGet('uid=kvaughan, ou=People,o=airius.com','B','objectclass=person','ou','$$$') は以下の値を返します。

Human Resources,People

LDAPGet('ou=People, o=airius.com','O','ou=Human Resources','mail','$$$') は以下の値を返します。

kvaughan@airius.com$$$........


関数ディレクトリ UDF

UDF

式エディタ > 関数ディレクトリ

ユーザ定義関数の呼び出し C 言語で書かれたCDECL形式のユーザ関数を呼び出します。
構文： | UDF('モジュール名.関数名',[パラメータ])
パラメータ： | モジュール名 …ユーザ定義関数が置かれている外部モジュールまたはプログラム。 関数名 …呼び出す関数 パラメータ …呼び出すユーザ定義関数にパラメータが必要な場合に指定できます。パラメータは、最大で30 までカンマで区切って指定できます。
戻り値： | 関数からの戻り値
注意事項： | UDF関数による呼び出しは、ユーザプロシージャの呼び出しと似ています。ただし、呼び出し方法は、プラットフォームによって異なります。詳しくは、使用しているプラットフォームのマニュアルを参照してください。


関数ディレクトリ UDFF

UDFF

式エディタ > 関数ディレクトリ

ユーザ定義関数の呼び出し（FASTCALL形式） C 言語で書かれたFASTCALL形式のユーザ関数を呼び出します。
構文： | UDFF('モジュール名.関数名',[パラメータ])
パラメータ： | モジュール名 …ユーザ定義関数が置かれている外部モジュールまたはプログラム。 関数名 …呼び出す関数 パラメータ …呼び出すユーザ定義関数にパラメータが必要な場合に指定できます。パラメータは、最大で30 までカンマで区切って指定できます。
戻り値： | 関数からの戻り値
注意事項： | UDF関数による呼び出しは、ユーザプロシージャの呼び出しと似ています。ただし、呼び出し方法は、プラットフォームによって異なります。詳しくは、使用しているプラットフォームのマニュアルを参照してください。


関数ディレクトリ UDFS

UDFS

式エディタ > 関数ディレクトリ

ユーザ定義関数の呼び出し（STDCALL形式） C 言語で書かれたSTDCALL形式のユーザ関数を呼び出します。
構文： | UDFS('モジュール名.関数名',[パラメータ])
パラメータ： | モジュール名 …ユーザ定義関数が置かれている外部モジュールまたはプログラム。 関数名 …呼び出す関数 パラメータ …呼び出すユーザ定義関数にパラメータが必要な場合に指定できます。パラメータは、最大で30 までカンマで区切って指定できます。
戻り値： | 関数からの戻り値
注意事項： | UDF関数による呼び出しは、ユーザプロシージャの呼び出しと似ています。ただし、呼び出し方法は、プラットフォームによって異なります。詳しくは、使用しているプラットフォームのマニュアルを参照してください。


関数ディレクトリ SetContextFocus

SetContextFocus

式エディタ > 関数ディレクトリ

コンテキストフォーカスの設定

与えられたコンテキストの現在のウィンドウにフォーカスを設定します。

構文：

SetContextFocus (コンテキスト名)

パラメータ：

コンテキスト名（文字） … コンテキスト名を表す文字列

戻り値：

論理値 … コンテキストが存在し、フォーカスがそのコンテキストに切り替わった場合「true」が返ります。

例：

SetContextFocus('Property Sheet')

「Property Sheet」という名前のコンテキストのウィンドウにフォーカスが設定されます。

注意事項：

  • コンテキストが存在している場合、フォーカスは実行中のコンテキストの現在のプログラムに切り替わります。

  • フォーカスが設定できない場合、（例えば他のコンテキストがモーダルウィンドウを開いている場合）関数の処理は失敗します。

  • コンテキストプログラムがウィンドウを持っていない場合、現在のウィンドウがそのまま残っているように表示され、他のウィンドウにフォーカスは移りません。

  • コンテキストが存在している場合、関数は常に「True」を返します。

  • コンテキストが存在していない場合、フォーカスは修正されず、関数は「False」を返します。

  • 起動されたプログラムにCtxSetName関数が定義されている場合、SetContextFocus関数は動作しません。従って、

  • 起動されたプログラム内でCtxSetName関数を実行させることで、プログラムにフォーカスが移ります。

  • この場合、コンテキスト名は、起動されたプログラムのコンテキストIDを指定します。

関連項目：

CtxSetName


関数ディレクトリ SNMPNotify

SNMPNotify

式エディタ > 関数ディレクトリ
分散アプリケーションアーキテクチャ > SNMPサポート

SNMPメッセージの送信 アプリケーショントラップメッセージを NMS(Network Management Station) に送信します。
構文： | SNMPNotify(メッセージ、重要度)
パラメータ： | メッセージ … 文字列 重要度 … 1 ( 最も高い) から 3 までの数値
戻り値： | 論理値… 処理に成功した場合「True」が返ります。
例： | SNMPNotify('The transaction failed',1)
 | 'Transaction faile' というメッセージを SNMP で送信します。
注意事項： | この関数は、アプリケーションのエラーメッセージ用です。


関数ディレクトリ 動作環境関数

動作環境関数

式エディタ > 関数ディレクトリ

ANSI2OEM …… ANSI文字セットの文字列をOEM文字セットに変換します。

AppName …… アプリケーションの名前を取得します。

INIGet …… MAGIC.INI ファイルの環境設定値を返します。

INIGetLn …… セクションと行番号を指定し、MAGIC.INI ファイル内のパラメータ名と値を取り出します。

INIPut …… MAGIC.INIファイルの環境値を更新します。

OEM2ANSI …… OEM文字セットの文字列をANSI文字セットに変換します。

OSEnvGet …… 指定したOSの環境変数の値を文字列で返します。

OSEnvSet …… 指定したOSの環境変数に値を指定します。指定された環境変数は、Magicが終了するまで有効です。

Owner …… Magic.ini のOwnerパラメータの値を返します。

ParamsPack …… （SetParam 関数で設定された） グローバル変数をBLOBにパッケージ化します。

ParamsUnPack …… ParamsPack 関数で作成されたBLOB値をグローバル変数に変換します。

SetLang …… 使用する言語を設定します。

SharedValPack …… SharedValSet関数によって設定され、共有化された値のコレクションをBLOB変数の中にパッケージ化します。

SharedValUnpack …… SharedValPack関数を使用して作成されたBLOB値から、SharedValGet関数によって作成された共有値を作成します。

Term …… [動作環境]ダイアログの[端末番号]欄に指定されている値を返します。


関数ディレクトリ ANSI2OEM

ANSI2OEM

式エディタ > 関数ディレクトリ

ANSI コードからOEM コードに変換 ANSI 文字セットの文字列をOEM 文字セットに変換します。
構文： | ANSI2OEM (文字列)
パラメータ： | 文字列…変換する文字列
戻り値： | 文字列…変換された文字列
注意事項： | 日本語環境においては、この関数を使用する必要はありません。


関数ディレクトリ AppName

AppName

式エディタ > 関数ディレクトリ

アプリケーション名の取得 アプリケーションの名前が返ります。
構文： | AppName()
パラメータ： | なし
戻り値： | 文字列 … アプリケーション名
例： | AppName() は、アプリケーション名が返ります。
関連項目： | Val


関数ディレクトリ INIGet

INIGet

式エディタ > 関数ディレクトリ

MAGIC.INI ファイルの環境設定値を取得

MAGIC.INI ファイルの環境設定値を返します。

構文：

INIGet(MAGIC.INI ファイルのエントリ)

パラメータ：

MAGIC.INIファイルのエントリ …文字列で、MAGIC.INI ファイルのセクションとパラメータ（'[セクション]パラメータ'の形式）を指定します。

戻り値：

指定したパラメータの値…そのパラメータに値が指定されていない時には、空白が返ります。

例：

INIGet('Owner')

現在のオーナーの値が返ります。

INIGet('[MYAPPL]LAST CUST')

[MYAPPL]セクションのLAST CUSTパラメータの値が返ります。

注意事項：

  • この関数でセクションを指定しなかった時には、デフォルトの[MAGIC_ENV]セクションのパラメータとして処理されます。この関数のパラメータは、大文字と小文字が区別しません。

  • この関数を使用して、Magicの項目を操作できます。また、アプリケーションのグローバルデータの取り出しも可能です。取り出すアプリケーションのデータが更新できる場合、ユーザごとにMAGIC.INI ファイルを用意します。一方、グローバルデータとカウンタを複数のユーザで共有する場合、標準のDB テーブルを使用するようにします。

  • [動作環境]ダイアログの[MAGIC.INI 常駐]パラメータを「Yes」にしておくと、処理速度が向上します。

関連項目：

INIPut


関数ディレクトリ INIGetLn

INIGetLn

式エディタ > 関数ディレクトリ

MAGIC.INI ファイルの値の取得

セクションと行番号を指定し、MAGIC.INI ファイル内のパラメータ名と値を取り出すことができます。

構文：

INIGetLn(セクション名,行番号)

パラメータ：

セクション名…内容を取得するパラメータが置かれているセクションの名前

行番号…内容を取得するパラメータの行番号（セクション行を基点とする）

戻り値：

文字列 … 指定した行のパラメータ名と値

例：

INIGetLn('[MAGIC_ENV]',3)

MAGIC.INI ファイルのMAGIC ENV セクションで3 番目の行の内容が返ります。

注意事項：

  • 指定した行番号が１より小さい場合、空白の文字列が返ります。

  • 最初の空白の行を指定すると、空白の文字列が返ります。

  • Magicの起動時にコマンドラインでパラメータを指定している場合は、[MAGIC]セクションの１行目としてその値が返ります。


関数ディレクトリ INIPut

INIPut

式エディタ > 関数ディレクトリ

MAGIC.INI ファイルの環境設定値を更新

MAGIC.INI ファイルの環境設定値を更新します。

構文：

INIPut(ファイルのエントリ, 強制書込)

パラメータ：

ファイルのエントリ…文字列で、MAGIC.INI ファイルのセクションとパラメータと値を指定（'[セクション]パラメータ=値'の形式）します。パラメータの値は、指定した値に更新されます。

強制書込 … 論理値

マルチスレッドで動作するMagicアプリケーションサーバでは、MAGIC.INI ファイルは、別々のメモリ領域内にあるそれぞれのコンテキストに格納されます。このパラメータを「False」にすると、更新した内容は、MAGIC.INIのローカルコピーのみに書き込まれます。マルチスレッドサーバでは、実行中スレッドのみに変更内容が反映されます。

このフラグを「True」に設定すると、INI更新は、物理的なMAGIC.INIファイルに書き込まれます。新しくロードされたスレッドでは、MAGIC.INIコピー内に新しい修正が反映されます。

戻り値：

論理値… 処理に成功した場合「True」が返ります。

例：

INIPut('Owner=John, Century=1920','FALSE'LOG)

現在のオーナーが「John」に、西暦基準年が「1920」に設定されます。

注意事項：

  • セクションが指定されない場合は、デフォルトの[MAGIC ENV]セクションのパラメータとして処理されます。

  • [動作環境]ダイアログの[MAGIC.INI 常駐]パラメータを「Yes」にしておくと、処理速度が向上します。

  • INIファイルを常駐に設定している場合、常に強制書込パラメータの値が「False」であると見なされます。

  • [ファイルのエントリ]パラメータは、大文字と小文字が区別されます。指定したエントリがなかった時には、そのエントリが挿入されます。

  • アプリケーションのグローバルデータを扱うことができます。アプリケーションのデータを更新する場合、ユーザごとにMAGIC.INIファイルを用意します。複数のユーザで情報の共有や更新を行うグローバルデータやカウンタの場合は、標準のデータベースに格納してください。

  • Magic.iniファイルの内容は、実行している各コンテキストが個別のメモリ領域を使用して格納されます。ただし、強制書込フラグを'TRUE'LOGに設定することで、特定のコンテキストから実行されたINIPut関数によってMagic.iniファイルを更新することができます。

  • Magic.iniファイルに追加情報を設定する場合はカンマが使用されます。このため、カンマを値として設定したい場合は、カンマの前に「\」を追加してください。
    例：INIPut('[HELLO_TEST]aa=1\、2'、'TRUE'LOG )

  • リッチクライアントタスクで、（INIPut関数を使用して）論理名を変更した場合、変更結果は次のアプリケーション起動時に反映されます。オンラインタスクの場合は、即時に反映されます。

INIPut(<assignment>,<force write>)(default - N)

関連項目：

INIGet, INIPut関数の動作


関数ディレクトリ OEM2ANSI

OEM2ANSI

式エディタ > 関数ディレクトリ

OEMコードから ANSIコードに変換 OEM文字セットの文字列をANSI文字セットに変換します。
構文： | OEM2ANSI(文字列)
パラメータ： | 文字列…変換されるOEM文字列
戻り値： | 文字列…ANSIに変換された文字列
注意事項： | 日本語環境においては、この関数を使用する必要はありません。
関連項目： | ANSI2OEM、変換ファイル


関数ディレクトリ OSEnvGet

OSEnvGet

式エディタ > 関数ディレクトリ

OSの環境変数の取得 指定したOSの環境変数の値を文字列で返します。
構文： | OSEnvGet(環境変数)
パラメータ： | 環境変数…… OSの環境変数の名前を指定します。
戻り値： | 文字列……指定された環境変数の実行値を返します。環境変数が指定されていない場合は、空白が返ります。
例： | OSEnvGet(‘PATH’)
 | 「PATH」という環境変数の実行値が返ります。
関連項目: | OSEnvSet


関数ディレクトリ OSEnvSet

OSEnvSet

式エディタ > 関数ディレクトリ

OSの環境変数に実行値を設定する 指定したOSの環境変数に値を指定します。指定された環境変数は、Magicが終了するまで有効です。
構文： | OSEnvSet(環境変数,値)
パラメータ： | 環境変数 …… OSの環境変数の名前を指定します。 値 …… 環境変数に設定する実行値
戻り値： | 論理値… 処理に成功した場合「True」が返ります。
例： | OSEnvSet(‘PATH’,’C:\Program Files\Dev;C:\winnt\system32’)
 | 「PATH」という環境変数に「C:\Program Files\Dev;C:\winnt\system32」という実行値を設定します。
 | OSEnvSet(‘PATH’,’C:\Program Files\Dev;’&OSEnvGet('PATH'))
 | 「PATH」という環境変数に「C:\Program Files\Dev」という実行値を追加します。
関連項目： | OSEnvGet


関数ディレクトリ Owner

Owner

式エディタ > 関数ディレクトリ

オーナ名を取得 [動作環境]ダイアログの[オーナ名]パラメータに設定されている現在の値を取り出します。取り出される文字列の最大サイズは30文字です。
構文： | Owner()
パラメータ： | なし
戻り値： | 文字列 …… [動作環境]ダイアログの[オーナ名]の値
関連項目： | INIGet
注意事項： | オーナ名は、この関数のほか、INIGet関数を使用して取り出すこともできます。ただし、INIGet関数ではオーナ名はディスクから取り出されるのに対して、このOwner関数ではメモリ上のオーナ名が返ります。このため、Owner関数のほうが処理速度は高速です。


関数ディレクトリ ParamsPack

ParamsPack

式エディタ > 関数ディレクトリ

グローバル変数のパッケージ化 （SetParam 関数で設定された） グローバル変数をBLOBにパッケージ化します。BLOB値は、他のコンテキストやプロセスでParamsUnpack 関数を使用してグローバル変数に変換できます。
構文： | ParamsPack()
パラメータ： | なし
戻り値： | パッケージ化したBLOB値を返します。
関連項目: | ParamsUnPack


関数ディレクトリ ParamsUnPack

ParamsUnPack

式エディタ > 関数ディレクトリ

（パッケージ化された）グローバル変数の取り出し ParamsPack 関数で作成されたBLOB値をグローバル変数に変換します。グローバル変数の値は、GetParam 関数で参照できます。
構文： | ParamsUnPack (パッケージ)
パラメータ： | パッケージ … ParamsPack 関数で作成された BLOB値
戻り値： | 論理値 … 常に「True」 を返します。
例： | ParamsUnpack(A)
 | 項目A（ BLOB型)の内容をグローバル変数に変換します。
関連項目： | ParamsPack
注意事項： | 現在のコンテキストに同じ名前のグローバル変数がすでに存在している場合は、変換する値で上書きされます。


関数ディレクトリ SharedValPack

SharedValPack

式エディタ > 関数ディレクトリ

共有値のパッケージ化 SharedValSet関数によって設定され、共有化された値のコレクションをBLOB変数の中にパッケージ化します。パッケージ化された内容は、SharedValUnpack関数で元の値に戻すことができます。
構文： | SharedValPack()
パラメータ： | なし
戻り値： | BLOB値 … 共有データの集まりをパッケージ化したものです。
関連項目： | SharedValGet,SharedValSet,SharedValUnpack


関数ディレクトリ SharedValUnpack

SharedValUnpack

式エディタ > 関数ディレクトリ

共有値の取得 SharedValPack関数を使用して作成されたBLOB値から、SharedValGet関数によって作成された共有値を作成します。
構文： | SharedValUnpack(パッケージ)
パラメータ： | パッケージ … SharedValPack関数で作成されたBLOB値
戻り値： | 論理値 … 処理に成功した場合「True」が返ります。
関連項目： | SharedValGet,SharedValSet,SharedValPack


関数ディレクトリ 日付／時刻関数

日付／時刻関数

式エディタ > 関数ディレクトリ

AddDate …… 日付を指定し、その日付に年数、月数、日数を加算します。

AddDateTime …… Datetime値に日付と時刻を加算します。

AddTime …… 時刻を指定し、その時刻に時数、分数、秒数を加算します。

BOM …… 指定した月の最初の日付が返ります。

BOY …… 指定した年の最初の日付が返ります。

CDOW …… 指定した日付または日付式に対応する、英語の曜日名（Sunday など）が返ります。

CMonth …… 指定した日付または日付式の月の名前（英語）が返ります。

Date …… システム日付が返ります。

Day …… 日付の日（1～31）が返ります。

DifDateTime …… Datetime値の差分を計算します。

DOW …… 日付から曜日番号を返します。

DStr …… 日付または日付式を文字列に変換します。

DVal …… 文字列を日付型に変換します。

EOM …… 日付を指定された月の最後の日付を返します。

EOY …… 日付を指定された年の最後の日付を返します。

Hour …… 時刻または時刻式の時間を返します。

MDate …… Magic の日付（[ログオン]ダイアログで入力された日付）を返します。

Minute …… 時刻または時刻式の分が数値で返ります。

Month …… 日付の月（1～12）が返ります。

mTime …… 現在の時間をミリ秒単位で返します。

mTStr …… 書式に基づいてミリ秒の時間値を文字列に変換します。

NDOW …… 曜日番号（1 、2 など）を曜日名（Sunday 、Monday など）に変換します。

NMonth …… 月番号（1 、2 など）を月名（January 、February など）に変換します。

Second …… 時刻のうち、秒の値を返します。

Time …… システムの時刻が返ります。

TStr …… 時刻を文字列に変換します。

TVal …… 文字型データで表された日付を数値に変換します。

Year …… 日付の年が返ります。


関数ディレクトリ AddDate

AddDate

式エディタ > 関数ディレクトリ

日付項目に関する計算 日付を指定し、その日付に年数、月数、日数を加算できます。結果は、常に有効な日付になります。
構文： | AddDate(日付,年数,月数,日数)
パラメータ： | 日付…日付 年数…この年数が日付に加算されます。0 を指定することも可能です。 月数…この月数が日付に加算されます。0 を指定することも可能です。 日数…この日数が日付に加算されます。0 を指定することも可能です。
戻り値： | 日付値
例： | AddDate('1992/01/01'DATE,1,2,2)では、1993/03/03 が返ります。
関連項目： | DVal


関数ディレクトリ AddDateTime

AddDateTime

式エディタ > 関数ディレクトリ

DateTime項目に関する計算 この機能は、Datetime値に、日付と時刻を加算します。Datetime値は、Magicでは、日付型項目と時刻型項目の組み合わせで表します。 指定された年数や月数、日数、時数、分数、秒数によって、日付と時刻の項目が更新されます。
構文： | AddDateTime (日付,時刻, 年数, 月数, 日数, 時数, 分数, 秒数)
パラメータ： | 日付と時刻 … Datetimeタイプのフィールドを参照しているMagicの日付型と時刻型の項目 年数 … 加算する年数を表す数値 月数 … 加算する月数を表す数値 日数 … 加算する日数を表す数値 時数 … 加算する時数を表す数値 分数 … 加算する分数を表す数値 秒数 … 加算する秒数を表す数値
戻り値： | 論理値 … 関数の処理が成功した場合「True」が返ります。
注意事項： | 日付と時刻のパラメータには、VARリテラルを指定する必要があります。
関連項目： | DifDateTime, AddDate, AddTime


関数ディレクトリ AddTime

AddTime

式エディタ > 関数ディレクトリ

時刻に関する計算 時刻を指定し、その時刻に時数、分数、秒数を加算できます。結果は、指定した時刻に、時、分、秒を加えた時刻になります。
構文： | AddTime(時刻,時数,分数,秒数)
パラメータ： | 時刻 … 時刻型のデータです。 時数 … この数値が時刻に加算されます。 分数 … この数値が時刻に加算されます。 秒数 … この数値が時刻に加算されます。
戻り値： | 時刻値
例： | AddTime('12:00:00'TIME,1,2,3)では、13:02:03 が返ります。
注意事項： | パラメータに「0」を指定した場合、その「0」は無視されます。
関連項目： | AddDate,TVal


関数ディレクトリ BOM

BOM

式エディタ > 関数ディレクトリ

月の最初の日付 指定した月の最初の日付が返ります。
構文： | BOM(日付)
パラメータ： | 日付…日付または日付式
戻り値： | 日付値
例： | BOM ('93/05/10'DATE)では、'93/05/01'が返ります。
関連項目： | BOY, EOM, EOY, AddDate,CDOW, Date


関数ディレクトリ BOY

BOY

式エディタ > 関数ディレクトリ

年の最初の日付 指定した年の最初の日付が返ります。
構文： | BOY(日付)
パラメータ： | 日付…日付または日付式
戻り値： | 日付値
例： | BOY ('93/10/05'DATE)では、'93/01/01'が返ります。
関連項目： | BOM, EOM, EOY, AddDate,CDOW, Date


関数ディレクトリ CDOW

CDOW

式エディタ > 関数ディレクトリ

週の曜日名（英語）を取得

指定した日付または日付式に対応する、英語の曜日名（Sunday 、Monday など）が返ります。

構文：

CDOW(日付)

パラメータ：

日付…日付または日付式

戻り値：

文字列で表した曜日

例：

CDOW('92/01/28'DATE)では、'Tuesday'が返ります。

また、x が92/01/28(Tuesday)）の場合、CDOW(x+1)では'Wednesday'が返ります。

注意事項：

  • '92/01/28'の右のDATE はリテラルコードです。この場合、DATE の直前の日付は文字列として認識されます。

  • 曜日の名前の長さは、その曜日が入る項目（文字型）のサイズを調節することで変更できます。例えば、曜日の最初の3 文字だけ（例えば、'Mon'、'Tue'など）を項目に表示したい場合、その項目のサイズを3 文字にします。

関連項目：

Day, DOW, NDOW


関数ディレクトリ CMonth

CMonth

式エディタ > 関数ディレクトリ

月の名前（英語）を取得

指定した日付または日付式の月の名前（英語）が返ります。

構文：

CMonth(日付)

パラメータ：

日付…日付または日付式

戻り値：

文字列

例：

CMonth('97/01/28'DATE)では、'January'が返ります。

また、X が97/01/28 の場合、CMonth(X+30)では'February'が返ります。

注意事項：

  • '92/01/28'の右のDATE はリテラルコードです。この場合、DATE の直前の日付は文字列として認識されます。

  • 月の名前の長さは、その月が入る項目（文字型）のサイズを調節することで変更できます。例えば、月の最初の3 文字だけ（例えば、'Jan'、'Feb'など）を項目に表示したい場合、その項目のサイズを3 文字にします。

関連項目：

Month, NMonth


関数ディレクトリ Date

Date

式エディタ > 関数ディレクトリ

システム日付 システム日付が返ります。
構文： | Date()
パラメータ： | なし
戻り値： | 日付
例： | システム日付が97/01/28 の場合、Date(）では97/01/28 が返ります。 また、Date(）+5 では、97/02/02 が返ります。
注意事項： | システムの日付は、MAGIC.INI で設定されている日付形式、または、日付が格納される項目に設定されている書式にしたがって表示されます。したがって、システムの日付の形式が「E 」に設定されている場合、MAGIC.INI のDateMode パラメータの値を「A」に設定することで、日付をアメリカ形式で表示できます。または、書式を使用して日付をアメリカ形式（MM/DD/YY ）にすることもできます。
関連項目： | MDate,DStr,DVal


関数ディレクトリ Day

Day

式エディタ > 関数ディレクトリ

日付の日（1～31） 日付の日（1～31）が返ります。
構文： | Day(日付)
パラメータ： | 日付…日付または日付式
戻り値： | 数値
例： | Day('96/01/28'DATE）では、28 が返ります。 また、IF(Day(Date(））>15,'延滞',''）という日付式では、システムの日付が15 日より遅い（16 日以後の）場合、「延滞」という文字が表示されます。
関連項目： | CDOW, DOW, NDOW


関数ディレクトリ DifDateTime

DifDateTime

式エディタ > 関数ディレクトリ

２つのDatetime値の差分の取得 Datetime1の値からDatetime2の値を減算した値を返します。結果は2つのDatetime値と日数の差分と秒数の差分の２つに分かれて表されます。
構文： | DifDateTime (日付1, 時刻1, 日付2, 時刻2, 結果用日数, 結果用時間)
パラメータ： | 日付1と時刻1 … 最初のDatetime値を参照する日付型、時刻型項目 日付2と時刻2 … ２番目のDatetime値を参照する日付型、時刻型項目 結果用日数 … 数値項目。Datetime値の差分の日数が格納されます。 結果用時間 … 時刻項目。Datetime値の差分の時間部分が格納されます。
戻り値： | 論理値 … 処理が成功した場合「True」が返ります。 変換結果は、結果用日数と結果用時間に設定された項目に返ります。
例： | 「November 25, 2004 at 10:00 AM」と、「November 24, 2004 at 11:10 AM」の差分を計算した場合、日数「1日」、時間「4200秒」が返ります。
注意事項： | 結果用日付と結果用時間のパラメータには、VARリテラルを指定する必要があります。
関連項目： | AddDateTime, AddDate, AddTime


関数ディレクトリ DOW

DOW

式エディタ > 関数ディレクトリ

日付の曜日を示す番号 日付から曜日番号を返します。
構文： | DOW(日付)
パラメータ： | 日付 …特定の日付
戻り値： | 数値…曜日番号 日…１ 、月…２ 、火…３ 、水…４ 、木…５ 、金…６ 、土…７
例： | DOW('92/01/29'DATE)
 | この日は水曜日なので4 が返ります。
 | IF(DOW(Date())=1,'Never on Sunday','')
 | この式では、システム日付が日曜日の場合、指定したメッセージが表示されます。
関連項目： | CDOW, Day, NDOW


関数ディレクトリ DStr

DStr

式エディタ > 関数ディレクトリ

日付を文字列に変換

日付または日付式を、指定された書式で文字列に変換します。

構文：

DStr(日付,書式)

パラメータ：

日付 …日付

書式 …ここで指定した書式にしたがって、日付が文字列に変換されます。

戻り値：

文字列

例：

DStr ('96/01/28'DATE,'WWWWWWWW,MMMMMMMMDD,YYYY'）

'Tuesday, January 28, 1996'が返ります。

DStr('96/01/28'DATE,'YY/MM/DD'）

'96/01/28' が返ります。

注意事項：

  • 日付の形式を設定するために、[動作環境]ダイアログの[日付モード]を指定する必要があります。

  • A=アメリカ … MM/DD/YY

  • E=ヨーロッパ … DD/MM/YY

  • J=日本 … YY/MM/DD

  • 指定された日付形式は、DATEリテラルを使用した際に参照されます。

  • 例えば、日付モードを「A=アメリカ」に指定した場合、DStr('01/28/96'DATE...)と日付を指定する必要があります。DATEリテラルが日付モードの指定と合っていない場合、構文チェックでエラーになります。

関連項目：

DVal


関数ディレクトリ DVal

DVal

式エディタ > 関数ディレクトリ

文字列を日付型に変換

文字列として入力された日付を日付型に変換します。変換後の内部の値は、西暦元年の最初の日（0001/01/01）を起点とした日数です。

構文：

DVal(日付文字列,書式)

パラメータ：

日付文字列 …日付を文字列または文字列式で指定します。例えば、'97/01/01'、'1997,Jan,1'などとします。

書式 …[日付文字列]で指定した日付の書式を指定します。[日付文字列]パラメータの日付は、この書式を使用して解釈されます。

戻り値：

日付型（数値型の場合は日数）

例：

DVal（'97/01/01','YY/MM/DD'）またはDVal（'1997,Jan,1','YYYY,MMM,DD'）は、どちらも'1997/01/01'DATE（内部では729025の数値） が返ります。

A が'1997,January ,1'の場合、DVal（A,'YYYY,MMMMMMM,DD'）は、'1997/01/01'DATE（内部では729025の数値） が返ります。

DVal('01/01/01','YY/MM/DD') と DVal('2001,Jan 1','YYYY,MMM D') は、'2001/01/01'DATE が返ります。

A が'2002,January,12'の場合、DVal(A,'YYYY,MMMMMMM,DD')は、'2002/12/01'DATEが返ります。

注意事項：

  • 書式が日付文字列の書式と合っていない場合には、「0」が返ります。

  • 書式と日付文字列の桁数を合わせてください。書式より短い日付を指定する場合は、空白で埋めてください。

関連項目：

DStr


関数ディレクトリ EOM

EOM

式エディタ > 関数ディレクトリ

月の最後の日付 日付を指定された月の最後の日付を返します。
構文： | EOM(日付)
パラメータ： | 日付…日付または日付式
戻り値： | 日付値
例： | EOM ('97/05/05'DATE)
 | '97/05/31'が返ります。
関連項目： | BOY, BOM, EOY, AddDate, CDOW, Date


関数ディレクトリ EOY

EOY

式エディタ > 関数ディレクトリ

年の最後の日付 日付を指定された年の最後の日付を返します。
構文： | EOY(日付)
パラメータ： | 日付…日付または日付式
戻り値： | 日付…日付または日付式
例： | EOY('97/11/17'DATE)
 | '97/12/31'が返ります。
関連項目： | BOY, BOM, EOM, AddDate, CDOW, Date


関数ディレクトリ Hour

Hour

式エディタ > 関数ディレクトリ

時刻の時間の値 時刻または時刻式の時間を返します。
構文： | Hour(時刻)
パラメータ： | 時刻…時刻または時刻式
戻り値： | 数値（1～99）
例： | Hour('12:00:00'Time)
 | 12 が返ります。
 | 項目A の時刻値が14:00:00 の場合、Hour(A)+2 では16 が返ります。
関連項目： | Minute, Second


関数ディレクトリ MDate

MDate

式エディタ > 関数ディレクトリ

Magic 日付 Magic 日付（ログオンウィンドウで入力された日付）を返します。
構文： | MDate()
パラメータ： | なし
戻り値： | 日付
例： | MDate()+5
 | Magic日付の5 日後の日付が返ります。加算または減算する数値は、日数です。
関連項目： | Date


関数ディレクトリ Minute

Minute

式エディタ > 関数ディレクトリ

時刻の分の値 時刻または時刻式の分が数値で返ります。
構文： | Minute(時刻)
パラメータ： | 時刻 …時刻または時刻式
戻り値： | 数値（0～59）
例： | Minute('12:15:00'TIME)
 | 15 が返ります。
 | 項目A の値が'12:15:00'TIMEの場合、Minute(A)+2 では17 が返ります。
関連項目： | リテラル, Second, Hour, Time


関数ディレクトリ Month

Month

式エディタ > 関数ディレクトリ

日付の月（1～12） 日付の月（1～12）が返ります。
構文： | Month(日付)
パラメータ： | 日付…日付
戻り値： | 数値（1～12）
例： | Month('1992/01/28'DATE)
 | 1 が返ります。


関数ディレクトリ mTime

mTime

式エディタ > 関数ディレクトリ

システム時刻の取得（ミリ秒単位） 現在の時間をミリ秒単位で返します。
構文： | mTime()
パラメータ： | なし
戻り値： | 数値 … 現在の時刻を表す数値をミリ秒単位で返します。
例： | 時刻が、02:30:21.5am の時に mTime()を実行すると 9021500 を返します。


関数ディレクトリ mTStr

mTStr

式エディタ > 関数ディレクトリ

時刻を文字列に変換（ミリ秒単位） 書式に基づいてミリ秒の時間値を文字列に変換します。
構文： | mTStr(時間値、書式)
パラメータ： | 時間値 … ミリ秒数を表す数値 書式 … 変換する書式。この書式に基づいて、文字列に変換します。
戻り値： | 文字列 … 指定した書式に基づいた時間値
例： | mTStr(52221123,'HH:MM:SS.mmm')
 | 文字列 '14:30:21.123' を返します。
 | mTStr(52221123,'HH:MM:SS')
 | 文字列 '14:30:21' を返します。


関数ディレクトリ NDOW

NDOW

式エディタ > 関数ディレクトリ

曜日番号の曜日名（英語）への変換 曜日番号（1 、2 など）を曜日名（Sunday 、Monday など）に変換します。
構文： | NDOW(曜日番号)
パラメータ： | 曜日番号…曜日を示す番号
戻り値： | 文字列…曜日名
例： | NDOW(1)
 | 'Sunday'が返ります。
 | NDOW(DOW('1992/01/28'DATE))
 | 'Tuesday'が返ります。
注意事項： | 曜日番号として7 より大きい番号を指定した場合、7 が差し引かれます（例えば、0 ,7 ，14 では全て、'Sunday'が返ります）。
関連項目： | DOW, CDOW


関数ディレクトリ NMonth

NMonth

式エディタ > 関数ディレクトリ

月番号の月名（英語）への変換 月番号（1 、2 など）を月名（January 、February など）に変換します。
構文： | NMonth(月番号)
パラメータ： | 月番号…月を示す番号（1～12）
戻り値： | 文字列…月名
例： | NMonth(1)
 | 'January'が返ります。
 | NMonth(Month('1992/01/28'DATE))
 | 'January'が返ります。
関連項目： | Month, CMonth, NDOW


関数ディレクトリ Second

Second

式エディタ > 関数ディレクトリ

時刻の秒の値 時刻のうち、秒の値を取り出します。
構文： | Second(時刻)
パラメータ： | 時刻 …時刻または時刻式
戻り値： | 数値（0～59）
例： | Second('12:15:48'TIME)
 | 48 が返ります。
 | A の値が'12:15:48'TIMEの場合、Second(A)+ 2 では50 が返ります。
関連項目： | Minute, Hour


関数ディレクトリ Time

Time

式エディタ > 関数ディレクトリ

システムの時刻 システムの時刻が返ります。
構文： | Time()
パラメータ： | なし
戻り値： | 時刻値 … 現在の時刻(デフォルトの書式は、'HH:MM:SS')
例： | Time()で、17:08:42 が返る場合、Time()+5 では、システムの時刻に5 秒が加えられ、17:08:47 が返ります。
関連項目： | Date, MDate


関数ディレクトリ TStr

TStr

式エディタ > 関数ディレクトリ

時刻を文字列に変換 時刻型のデータを文字列データに変換します。
構文： | TStr(時刻,書式)
パラメータ： | 時刻 … 文字列に変換する時刻 書式 … この書式にしたがって時刻が文字列に変換されます。
戻り値： | 時刻の変換後の文字列
例： | TStr ('14:30'TIME,'HH:MM PM')
 | '2:30 PM'が返ります。
注意事項： | 書式が空白の場合は、"HH:MM:SS" と見なされます。
関連項目： | TVal, DStr, DVal


関数ディレクトリ TVal

TVal

式エディタ > 関数ディレクトリ

文字列を時刻に変換 文字列として格納されている時刻を通常の時刻（数値）に変換します。書式も指定できます。
構文： | TVal(文字列,書式)
パラメータ： | 文字列 … 文字列の形式で格納されている時刻（例えば、'02:30:00 PM'） 書式 … 文字列として格納されている時刻に使われている書式。ここで指定した書式を基に、文字列として格納されている時刻が解釈されます。
戻り値： | 時刻
例： | Tval('02:30:00 PM','HH:MM:SS PM')
 | 14:30:00 が返ります。
注意事項： | 書式を指定しなかった場合、書式は'HH:MM:SS と解釈されます。
関連項目： | TStr, DVal, DStr


関数ディレクトリ Year

Year

式エディタ > 関数ディレクトリ

日付の年 日付の年が返ります。年は、4 桁で返ります。
構文： | Year(日付)
パラメータ： | 日付…日付
戻り値： | 数値…年（4 桁）
例： | システムの日付が97/01/28 の場合、Year(Date())では、1997 が返ります。


関数ディレクトリ 日本語関数

日本語関数

式エディタ > 関数ディレクトリ

以下の関数は、日本語版でのみ有効です。他言語版のMagicとアプリケーションを共有する場合、使用できなくなることを考慮してください。

Han …… 全角文字を１バイトの半角文字に変換します。

JCDOW …… 日付から日本語の曜日名が返ります。

JGengo …… 日付から元号名が返ります。

JMonth …… 月番号を、対応する月名に変換します。

JNDOW ……週の曜日番号を対応する曜日名に変換します。

JYear ……日付から元号年が返ります。

MIDV ……機能はMID関数と同じですが、全角文字を２分する場合でも半角スペースに置き換えません。

RepV ……機能はRep 関数と同じですが、全角文字を2 分しても半角スペースに置き換えません。

Zen ……１バイトの半角文字を全角文字に変換します。ただし、半角スペースは、全角スペースに変換しません。

ZenS ……機能はZen 関数と同じですが、半角スペースの処理を細かく設定できます。

ZIMERead ……直前にIMEにて入力した漢字の読みを取得します。

ZKana ……ひらがなからカタカナへ、またはカタカナからひらがなへの変換を行います。


関数ディレクトリ Han

Han

式エディタ > 関数ディレクトリ

全角文字を半角に変換 全角文字（英数字、またはカタカナ）を半角文字に変換します。
構文： | Han（文字列）
パラメータ： | 文字列 … 文字列
戻り値： | 文字列
例： | Han('１６ＫＢ')='16KB' Han('カタカナ')='カタカナ'
注意事項： | 日本語版のみ有効です。
関連項目： | Zen、Zens


関数ディレクトリ JCDOW

JCDOW

式エディタ > 関数ディレクトリ

週の曜日名（日本語） 日付から日本語の曜日名（日曜日、月曜日など）を求めます。
構文： | JCDOW(日付)
パラメータ： | 日付 …日付
戻り値： | 文字列
例： | JCDOW('97/11/01'DATE)='土曜日'
 | システム日付が97/11/03（YY/MM/DD）の場合
 | JCDOW(DATE())='月曜日'
注意事項： | この関数は日本語版でのみ有効です。
参考： | 曜日名を英語で求める場合は、「CDOW」を使用します。


関数ディレクトリ JGengo

JGengo

式エディタ > 関数ディレクトリ

元号名（日本語） 日付から元号名を求めます。文字数に「1」が指定されると、元号のシンボル名を返し、「2」または「4」が指定されると漢字名を返します。
構文： | JGengo(日付,文字数)
パラメータ： | 日付 … 日付
 | 文字数 … 数値(1,2,4)
戻り値： | 文字列
例： | 文字数の指定が「4」の場合
 | JGengo('97/11/01'DATE,4)='平成'
 | 文字数の指定が「1」の場合
 | JGengo('97/11/01'DATE,1)='H'
注意事項： | この関数は日本語版でのみ有効です。


関数ディレクトリ JMonth

JMonth

式エディタ > 関数ディレクトリ

月番号の月名（日本語）への変換

月番号（1～12）を、対応する月名（１月～12月）に変換します。

構文：

JMonth(月番号)

パラメータ：

月番号 … 数値（1～12）

戻り値：

文字列

例：

JMonth(5)= '_5月'（_は半角スペースを表す）

注意事項：

  • 月番号が12よりも大きい場合の結果は保証しません。

  • この関数は日本語版でのみ有効です。

参考：

月名を英語で求める場合は、「NMonth」を使用します。


関数ディレクトリ JNDOW

JNDOW

式エディタ > 関数ディレクトリ

曜日番号の曜日名（日本語）への変換 週の曜日番号（1,2など）を対応する曜日名（日曜日、月曜日など）に変換します。
構文： | JNDOW(曜日番号)
パラメータ： | 曜日番号 … 数値（1～7）
戻り値： | 文字列
例： | JNDOW(1)='日曜日'
注意事項： | この関数は日本語版でのみ有効です。
参考： | 曜日名を英語で求める場合は、「NDOW」を使用します。


関数ディレクトリ JYear

JYear

式エディタ > 関数ディレクトリ

日付の年を元号年に変換 日付から元号年を求めます。
構文： | JYear(日付)
パラメータ： | 日付 … 日付
戻り値： | 数値
例： | JYear('97/09/01'DATE)=9
注意事項： | この関数は日本語版でのみ有効です。


関数ディレクトリ MIDV

MIDV

式エディタ > 関数ディレクトリ

部分文字列の取り出し

機能はMID関数と同じですが、全角文字を２分する場合でも半角スペースに置き換えません。

構文：

MIDV(文字列,開始位置,文字数)

パラメータ：

文字列 … 入力文字列

開始位置 … 文字列内の部分文字列の開始位置を表す数

文字数 … 抜き出す文字の数（部分文字列の長さ）

戻り値：

取り出した文字列

例：

ASCVal(MIDV('あ',1,1)) =130

「あ」のShift-JIS コード（x'８２A0'）の1バイト目を取得します。（MIDを使用すると 32 が返ります。）

ASCVal(MIDV('あ',2,1)) =160

「あ」のShift-JIS コード（x'８２A0'）の2バイト目を取得します。（MIDを使用すると 32 が返ります。）

注意事項：

  • この関数は日本語版でのみ有効です。

  • この関数の結果には全角文字が2分されたコード (0x82など)が含まれる可能性があり、このようなデータを文字型項目に代入すると結果は予期できないものとなります。この関数は ASCVall関数などと組み合わせて使用するようにしてください。

関連項目：

Left、Right、RepV


関数ディレクトリ RepV

RepV

式エディタ > 関数ディレクトリ

文字列内の部分文字列の置き換え 機能はRep 関数と同じですが、全角文字を2 分しても半角スペースに置き換えません。
構文： | RepV(文字列１,文字列２,位置,文字数)
パラメータ： | 文字列１ … 置き換え対象となる文字列 文字列２ … 置き換える文字列 位置 … 文字列１の置き換え開始位置 文字数…置き換え文字数。文字列２から文字列１に複写される文字の数で、文字列２の一番左の文字から数えます。
戻り値： | 置き換え後の文字列
注意事項： | この関数は日本語版でのみ有効です。
関連項目： | Rep


関数ディレクトリ Zen

Zen

式エディタ > 関数ディレクトリ

半角文字を全角に変換 半角文字（英数字またはカタカナ）を全角文字に変換します。ただし、半角スペースは、全角スペースに変換しません。
構文： | Zen(文字列)
パラメータ： | 文字列…変換する文字列
戻り値： | 文字列…変換された文字列
例： | ZEN('16KB')='１６ＫＢ' ZEN('カタカナ')='カタカナ'
注意事項： | この関数は日本語版でのみ有効です。
関連項目： | Han


関数ディレクトリ ZenS

ZenS

式エディタ > 関数ディレクトリ

半角文字を全角に変換

機能はZen 関数と同じですが、半角スペースの処理を細かく設定できます。

構文：

ZenS(文字列,変換モード）

パラメータ：

文字列…変換する文字列

変換モード…0, 1, 2 のいずれか

  • 0…半角スペースを全角スペースに変換しません。（Zen 関数と同じ）

  • 1…半角スペースを全角スペースに変換します。

  • 2…半角スペースを2 個の半角スペースに変換します。

戻り値：

文字列…変換された文字列

例：

ZenS（'トウキョウト トシマク',0）='トウキョウト_ トシマク'

ZenS（'トウキョウト トシマクク',1）='トウキョウト＿トシマク'

ZenS（'トウキョウト トシマク',2）='トウキョウト_ _ トシマク'

注意事項：

この関数は日本語版でのみ有効です。


関数ディレクトリ ZIMERead

ZIMERead

式エディタ > 関数ディレクトリ

漢字の読みを取得

直前にIMEにて入力した漢字の読みを取得します。

構文：

ZIMERead(数値)

パラメータ：

数値 … 任意( 0でかまいません)

戻り値：

文字列(IMEの変換モードに依存します)

参考：

IMEがローマ字入力のモードの時にアルファベットに変換した場合

IMEをローマ字かなのモードで起動します。

キーボードで「Ｏ・Ｒ・Ａ・Ｎ・Ｇ・Ｅ」を入力するとIMEによって「おらんげ」というように表示されます。

ここでMS-IME97に場合、[F10]キーで「ORANGE」に変換して確定します。この時には取得される読みは、「ORANGE」ではなく入力時の「オランゲ」になってしまいます。

ローマ字の読みを取得したい時には、IMEの起動モードを「半角英数」にする必要があります。この場合には、入力時も「ORANGE」になりますので正しい読みが取得できます。

注意事項：

  • この関数は日本語版でのみ有効です。

  • IMEが起動していない場合は動作いたしません。

  • 読みの取得はIMEの確定後に行われます。

  • 入力時のIMEのモードによっては正しく変換されない場合があります。

  • 入力直後のビュー項目の内容に対してのみ有効です。

  • IMEの入力を一度確定後、入力したものを削除して再度入力した場合の戻り値は削除前のものを含んだ内容になります。

例）最初に「東京」と入力しIMEを確定した後、削除して「横浜」と入力して確定します。この場合、読みとして取得されるのは「ヨコハマ」ではなく、「トウキョウヨコハマ」になってしまいます。

取得例

IMEの入力モード | 入力時 | IME確定時 | 読み取得
全角ひらがな | おらんげ | ORANGE | オランゲ
英数半角 | ORANGE | ORANGE | ORANGE
直接入力(IME未起動) | ORANGE | ＊１ | ＊１

*1 IMEが起動していないため、読みは取得されません。


関数ディレクトリ ZKana

ZKana

式エディタ > 関数ディレクトリ

ひらがな/カタカナ変換

ひらがなからカタカナへ、またはカタカナからひらがなへの変換を行います。

構文：

ZKana（文字列, 変換モード）

パラメータ：

文字列…変換する文字列

変換モード…0, 1 のいずれか

  • 0…ひらがなをカタカナに変換

  • 1…カタカナをひらがなに変換

戻り値：

変換された文字列

例：

ZKana（' あいうえお',0）=' アイウエオ'

ZKana（' カキクケコ',1）=' かきくけこ'

ZKana（' サシすせそ',1）=' さしすせそ'

注意事項：

  • 半角カナの文字は変換されません。

  • この関数は日本語版でのみ有効です。


関数ディレクトリ 入出力関数

入出力関数

式エディタ > 関数ディレクトリ

Blb2File …… BLOB オブジェクトをファイルに保存します。

DirDlg …… Windowsの[ディレクトリ選択]ダイアログを表示して、ディレクトリを選択できるようにします。

EOF …… 入出力ファイルに指定されているデータが終了したどうかを確認します。

EOP …… 指定されたファイルの現在のページが終了したかどうかを確認します。

File2Blb …… ファイルをBLOB オブジェクトに変換します。

File2Ole …… ファイルをBLOB オブジェクトに変換します。（リンク、埋め込みが指定できます。’）

FileCopy …… ファイルをコピーします。

FileDelete …… ディスク上のファイルを削除します。

FileDlg …… Windows の[ファイルを開く]ダイアログをオープンします。

FileExist …… 指定したディレクトリにファイルかサブディレクトリがあるかどうかを確認します。

FileListGet …… ファイル名のフィルタの設定に基づきディレクトリ内のファイルリストを返します。

FileRename …… ディスク上のファイルかサブディレクトリの名前を変更します。

FileSize …… ディスク上のファイルのサイズ（バイト数）を返します。

IOCurr …… 現在、出力中の入出力ファイル番号が返ります。

Line …… 出力ファイルの現在処理中の行番号を返します。

Page …… 入出力ファイルの現在のページ番号を返します。


関数ディレクトリ Blb2File

Blb2File

式エディタ > 関数ディレクトリ

BLOBオブジェクトをファイルに保存 BLOB オブジェクトをファイルに保存します。
構文： | Blb2File (BLOB 項目,ファイル名)
パラメータ： | BLOB 項目…BLOB 型項目のシンボル名 ファイル名（文字列）…保存先のファイル名
戻り値： | 論理値… 処理に成功した場合「True」が返ります。
例： | Blb2File(BE, 'C:\bfile.blb')では、BLOB 項目であるBE の内容が、C ドライブのbfile.bl という名前のファイルに保存されます。


関数ディレクトリ EOF

EOF

式エディタ > 関数ディレクトリ

入出力ファイルの処理終了を確認 指定した入出力ファイルのデータが終了したかどうかを確認します。入出力ファイルのデータが終わった場合、EOF フラグが立てられますが、この関数を使用してEOF フラグを検索します。
構文： | EOF(世代番号,ファイル番号)
パラメータ： | 世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。 ファイル番号…指定されたタスクの[入出力ファイル]テーブルの番号
戻り値： | 論理値 … 最後のレコードの場合は、「True」が返ります。
例： | EOF(0,1)
 | 現在のタスクでの最初の入出力ファイルで最後のレコードが処理されると、「True」 が返ります。
注意事項： | EOF 関数は入力ファイルに使用します。OSのテキストファイル（入出力ファイル）のデータを読み込むタスクでは、EOF 関数を条件として使用できます。例えば、EOF（0,1）を指定しておくことで、ファイルの最後のレコードの読み込みが完了すると同時にタスクが終了します。
関連項目： | EOP, Line, Page


関数ディレクトリ EOP

EOP

式エディタ > 関数ディレクトリ

出力ファイルのページ終了の確認 出力ファイルを指定し、そのファイルでのカレントのページで行カウンタの値が、[行]カラムに設定されている行数を超えたかどうか（EOP 状態）をチェックします。[行]カラムの設定が「0」の場合、そのファイルに関連しているプリンタに設定されている行数が使用されます。
構文： | EOP(世代番号,ファイル番号)
パラメータ： | 世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。 ファイル番号…指定されたタスクの[入出力ファイル]テーブルの番号
戻り値： | 論理値 … 最後のページの場合は、「True」が返ります。
例： | EOP(0,1)
 | 現在のタスクでの最初の出力ファイルでEOP状態が検出されると、「True」が返ります。
関連項目： | EOF, Line, Page


関数ディレクトリ File2Blb

File2Blb

式エディタ > 関数ディレクトリ

ファイルをBLOB オブジェクトに変換 ファイルをBLOB オブジェクトに変換して保存します。
構文： | File2Blb (ファイル名)
パラメータ： | ファイル名…ファイル名（文字列）
戻り値： | BLOB値 …BLOB オブジェクトとして格納されたファイル
例： | File2Blb('C:\att1.rtf')
 | ファイル「att1.rtf」がBLOB 項目に格納されます。


関数ディレクトリ File2Ole

File2Ole

式エディタ > 関数ディレクトリ

ファイルをBLOBオブジェクトに変換

ファイルをBLOB オブジェクトに変換します。リンクまたは埋め込みの指定が可能です。

構文：

File2Ole (ファイル名,リンク)

パラメータ：

ファイル名…変換するファイルの名前

リンク…論理値

  • True…ファイルにリンクが設定されます。

  • False…ファイルが埋め込まれます。

戻り値：

BLOB値。BLOB がNULL の場合、この関数では変換は実行されません。

例：

File2OLE('C:\att1.doc','TRUE'LOG)

OLE2 のBLOB 変数に、「att1.doc」（Word ファイル）へのリンクが対応付けられます。


関数ディレクトリ FileCopy

FileCopy

式エディタ > 関数ディレクトリ

ファイルのコピー（ディスク上） ファイルをコピーします。
構文： | FileCopy(元ファイル,新ファイル)
パラメータ： | 元ファイル…コピー元となる既存のファイルの名前 新ファイル…コピー先となる新規のファイルの名前
戻り値： | 論理値… 処理に成功した場合「True」が返ります。
例： | FileCopy('MAGIC.FIL','MAGIC.SAV')
 | MAGIC.FIL という名前のファイルの内容が、MAGIC.SAV という新規のファイルにコピーされます。
注意事項： | ２つのパラメータにはそれぞれ、パスを指定することもできます。パスを省略した場合、カレントのディレクトリと解釈されます。
関連項目： | FileDelete, FileExist, FileRename, FileSize


関数ディレクトリ FileDelete

FileDelete

式エディタ > 関数ディレクトリ

ファイルの削除（ディスク上） ディスク上のファイルを削除します。
構文： | FileDelete(ファイル名)
パラメータ： | ファイル名…削除するファイルの名前。このパラメータにはパスを指定することもできます。パスを指定しなかった場合、カレントディレクトリが使用されます。
戻り値： | 論理値… 処理に成功した場合「True」が返ります。
例： | FileDelete('c:\MAGIC\MAGIC.FIL')
 | Cドライブ のMagic ディレクトリにあるMAGIC.FIL が削除されます。
注意事項： | ファイルは、[コールOSコマンド]処理コマンドを使用して削除することもできますが、できるだけこの関数を使用するようにしてください。
関連項目： | FileCopy, FileExist, FileRename, FileSize


関数ディレクトリ FileExist

FileExist

式エディタ > 関数ディレクトリ

ファイルの存在の確認（ディスク上） ドライブとディレクトリを指定し、そのディレクトリにファイルがあるかどうかを確認します。
構文： | FileExist(ファイル名)
パラメータ： | ファイル名…検索するファイルの名前。パスを指定することもできます。パスを指定しなかった場合、カレントのディレクトリに対して検索が行われます。
戻り値： | 論理値… 処理に成功した場合「True」が返ります。
例： | FileExist('c:\magic\magic.ini')
 | C ドライブのmagic ディレクトリにmagic.iniファイルがあれば、「True」 が返ります。
関連項目： | FileCopy, FileDelete, FileRename, FileSize


関数ディレクトリ FileListGet

FileListGet

式エディタ > 関数ディレクトリ

ファイル一覧の取得

指定したディレクトリ内のファイル一覧を返します。フィルタを指定することで取得内容を絞り込むことができます。

構文：

FileListGet(ディレクトリ名, フィルタ,サブディレクトリ検索フラグ)

パラメータ：

ディレクトリ名 … ファイル一覧を取得するディレクトリ名を表す文字列。論理名が使用できます。

フィルタ … 検索ファイルの名前を絞り込むフィルタを表す文字列。ワイルドカード(*)が指定できます。複数のフィルタを指定する場合は、「|」で区切ります。（例： ‘*.xml|*.xsd’）空白が指定された場合は、全てのファイル名が返ります。

サブディレクトリ検索フラグ… サブディレクトリも検索するかどうかを指定する論理値。

  • True…サブディレクトリも検索する

  • False…指定されたディレクトリのみ検索する

戻り値：

文字型のセルモデルが定義されたベクトル項目

各セルにファイル名が格納されます。ファイルが存在しない場合、NULLが返ります。サブディレクトリ内のファイルは、相対パスが付加された名前が返ります。

例：

FileListGet('c:\temp','*.xml|*.xsd','TRUE’LOG)

「c:\temp」ディレクトリ内のサブディレクトリを含んだファイル名の内、拡張子が、「xml」と「xsd」のファイルの一覧が返ります。


関数ディレクトリ FileRename

FileRename

式エディタ > 関数ディレクトリ

ファイルの名前の変更（ディスク上）

ディスク上のファイルの名前を変更します。

構文：

FileRename(元ファイル,新ファイル)

パラメータ：

元ファイル…名前を変更するファイルの名前

新ファイル…変更後の名前

戻り値：

論理値… 処理に成功した場合「True」が返ります。

例：

FileRename('MAGIC.FILE','MAGIC.SAV')

MAGIC.FIL という名前がMAGIC.SAVに変更されます。

注意事項：

  • 2 つのパラメータにはそれぞれ、パスを指定することもできます。パスを省略した場合、ディレクトリはカレントディレクトリと解釈されます。

  • （ドライブ名が間違っていたなどの理由で）リネームできなかった場合、指定されたドライブにファイルがコピーされます。

関連項目：

FileCopy, FileExist, FileDelete, FileSize


関数ディレクトリ FileSize

FileSize

式エディタ > 関数ディレクトリ

ファイルサイズの照会（ディスク上） ディスク上のファイルのサイズ（バイト数）を返します。
構文： | FileSize(ファイル名)
パラメータ： | ファイル名 … サイズを取り出すファイルの名前。パスを指定することもできます。パスを指定しなかった場合、カレントのディレクトリに対して検索が行われます。
戻り値： | 数値 … ファイルのサイズ（Byte）
例： | FileSize('c:\magic\magic.ini')
 | C ドライブのmagic ディレクトリのmagic.iniファイルのサイズ（バイト数）が返ります。
関連項目： | FileCopy, FileExist, FileDelete


関数ディレクトリ IOCurr

IOCurr

式エディタ > 関数ディレクトリ

出力中の入出力ファイル番号

現在、出力中の入出力ファイル番号が返ります。[入出力ファイル]テーブルの入出力ファイルの番号が返ります。

構文：

IOCurr()

パラメータ：

なし

戻り値：

数値 …[入出力ファイル]テーブルの入出力ファイルの番号が返ります。

注意事項：

  • この関数は、実際に入出力ファイルが処理されている時に実行します。

  • この関数は、[イベント]テーブルの[式]カラムで定義します。または、[イベント]テーブルの[イベント]カラムに指定しているイベントが「ページヘッダ」または「ページフッタ」の場合に使用します。

  • なお、ページヘッダやページフッタのフォームを、[メディア]カラムが[G=GUI 形式プリント]に設定された入出力ファイルに割当てられている場合に限り、この関数から入出力ファイルの番号が返ります。これ以外メディア指定の場合、この関数からは「0」が返ります。


関数ディレクトリ Line

Line

式エディタ > 関数ディレクトリ

出力ファイルのカレントの行番号 出力ファイルの現在処理中の行番号を返します。
構文： | Line(世代番号,ファイル番号)
パラメータ： | 世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。 ファイル番号…指定されたタスクの[入出力ファイル]テーブルの番号
戻り値： | 現在の出力行数。出力がテキスト形式の場合、テキストの行が返ります。GUI 出力の場合、出力フォームの寸法単位を使用して現在の出力位置が返ります。 寸法単位を「センチメートル」にした場合、Line関数で取得できるピクセル値のカウント方法は、「垂直精度」を「100」にすると、1センチを100に分割して1ピクセルとみなします。
例： | Line(1,1)
 | すぐ上の親タスクの最初の出力ファイルの現在の出力行数が返ります。
関連項目： | Page


関数ディレクトリ Page

Page

式エディタ > 関数ディレクトリ

出力ファイルのページ番号 入出力ファイルのカレントのページ番号を取り出します。
構文： | Page(世代番号,ファイル番号)
パラメータ： | 世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。 ファイル番号 … 指定されたタスクの[入出力ファイル]テーブルの番号
戻り値： | 数値…ページ番号
例： | Page(1,1)
 | 親タスクの最初の出力ファイルのページ番号が返ります。
関連項目： | Line


関数ディレクトリ 文字列操作関数

文字列操作関数

式エディタ > 関数ディレクトリ

& ……文字列を連結します。

ANSI2OEM …… ANSI文字セットの文字列をOEM文字セットに変換します。

ASCIIChr …… 数値をASCIIの文字セットに対応した文字に変換します。

ASCIIVal …… 文字列のASCIIを返します。

AStr …… 文字列を指定した書式に変換します。

CRC …… 文字列に対して、CRC方式で計算を実行します。

Del …… 文字列中の文字を削除します。

DStr …… 日付または日付式を文字列に変換します。

Fill …… 文字列または文字列式を繰り返します。

Flip …… 文字列または文字列式の結果を反転させます。

HVal …… 16進数を10進数に変換します。

Ins …… 文字列を別の文字列に挿入します。

InStr …… 指定した文字が文字列の中で何番目の文字であるかを確認します。

Left …… 文字列の左側にある文字を返します。

Len …… 文字列の長さを返します。

Lower …… 大文字を小文字に変換します。

LTrim …… 文字列の左側の空白（スペース）を削除します。

MID …… 文字列の中の文字を取り出します。

MIDV …… 文字列の中の文字を取り出します。(DBCS対応)

MlsTrans …… 多言語環境で、言語の変換を行います。

mTVal …… ミリ秒値を数値に変換します。

MVal …… Magic 数字（内部コード）を数値に変換します。

OEM2ANSI …… OEM文字セットの文字列をANSI文字セットに変換します。

Rep …… 文字列の一部を別の文字列に置き換えます。

RepV …… 文字列の一部を別の文字列に置き換えます。(DBCS対応)

RepStr …… 文字列内にある特定の部分文字列を検索し、別の文字列に置き換えます。

Right …… 文字列の右側にある文字を返します。

RTrim …… 文字列の右側の空白を削除します。

SoundX …… スペルが異なり発音が似ている２つの文字列の発音を比較します。

StrBuild …… テンプレート内のプレイスフォルダを文字列に置き換えます。

StrToken …… 複数の文字列で構成される文字列からトークンを取り出します。

StrTokenCnt …… 区切り文字で区切られている文字列からトークンの数を返します。

StrTokenIdx …… 区切り文字で連結された文字列内に対して、トークンを検索し、インデックス番号を返します。

Translate …… 論理名を実行名に変換します。

TranslateNR …… ネストされた論理名を含む全ての論理名を実際の値に変換します。

Trim …… 文字列の先頭と末尾の空白を削除します。

TVal …… 文字列として格納されている時刻を通常の時刻に変換します。

UnicodeChr …… 指定された文字コードをUnicode文字に変換します。

UnicodeFromANSI …… ANSIを指定されたコードページに基づいてUnicodeに変換します。

UnicodeToANSI …… Unicodeを指定されたコードページに基づいてANSIに変換します。

UnicodeVal …… Unicode文字を文字コードに変換します。

Upper …… 小文字を大文字に変換します。

Val …… 文字列を数値に変換します。


関数ディレクトリ 演算子 連結

連結演算子(&)

式エディタ > 関数ディレクトリ > 演算子

連結用の文字列演算子

&記号を使用して、文字型文字列を連結します。例えば、'John'&'Smith'は'JohnSmith'を戻します。


関数ディレクトリ ASCIIChr

ASCIIChr

式エディタ > 関数ディレクトリ

ASCIIコードを文字に変換

ASCIIコードを対応する文字に変換します。

構文：

ASCIIChr(数値)

パラメータ：

数値… 数値

戻り値：

文字

例：

ASCIIChr(78) は、「N」を返します。(ASCIIコードが 78)

変数X の値が「77」の場合、ASCIICｈｒ(X+1)でも同じく「N」が返ります。

注意事項：

  • V9Plus以前の CHR関数と同じ機能の関数です。

  • この関数は、1 以上のクラスのフォームでキーボードを使用して入力できない文字、また、その文字がWindows の画面でも表示できない文字の場合に使用します。こういった文字としては、例えば、右矢印文字があり、この文字はCHR(26）を使用することで表示できます。

関連項目：

ASCIIVal


関数ディレクトリ ASCIIVal

ASCIIVal

式エディタ > 関数ディレクトリ

文字をASCII コードに変換 文字列（英数字）の左端の文字をASCII コード値に変換します。
構文： | ASCIIVal('文字列')
パラメータ： | 文字列…文字または文字列
戻り値： | ASCII コード値
例： | ASC('N')、ASC('New')では、どちらも78 が返ります。
注意事項： | V9Plus以前の ASC関数と同じ機能の関数です。
関連項目： | ASCIIChr


関数ディレクトリ AStr

AStr

式エディタ > 関数ディレクトリ

文字列の書式変換

文字列を指定した書式に変換します。

構文：

AStr(元の文字列, 変換書式)

パラメータ：

元の文字列…変換される文字列

変換書式…変換する書式を表す文字列

下記の文字は位置指示記号および機能指示記号を表します。

  • X… 任意の文字

  • H…任意の文字(ヘブライ語用)

  • #… 任意の数字

  • U… 文字を大文字に変換します

  • L… 文字を小文字に変換します

「A」(オートスキップ)は無視されます。

数字はカウント値で、前に指定した記号が指定数を表します。前に記号がない場合、「X」があるものとして動作します。

（例： 2@3U5 は、XX@@@UUUUU と同じ意味です。）

エスケープ文字「\」は、その直後の文字がマスク文字であることを指定します。指示記号を無効化できます。

戻り値：

指定した書式に変換された文字列

例：

AStr('abcd','2@3A\U\5\A') は、 'ab@@@U5A' が返ります。

注意事項：

書式文字列の中で指定された位置指示記号の長さの合計が変換する文字列の長さより短い場合、残りの文字が切り詰められます。


関数ディレクトリ CRC

CRC

式エディタ > 関数ディレクトリ

CRC方式による計算

文字列に対して、CRC方式で計算を実行します。

構文：

CRC(文字列,数値)

パラメータ：

文字列…この文字列に対してCRC が実行されます。

数値…CRC アルゴリズムを示す数値。Magic では、0 を指定するとCRC-16が実行されます。

戻り値：

CRC 値が入った2 バイト文字列

例：

ABC&CRC('ABC',0)を送信したとします。ここで、ABC&CRC('ABC',0)は、「文字列」と呼びます。

受信側で、CRC(Left(文字列,3),0)=Right(文字列,1)という処理(比較）を行い、値が一致すれば、データは正常に転送されたことになります。

注意事項：

  • CRC は、主にデータストリームの検証に使用します。CRC 関数では、全ての入力データ（文字列）を使用して検証が可能です。このため、送信後の文字列が途中で変更されていないか、高い精度でチェックすることができます。

  • CRC は、一般に2 つのコンピュータ間でデータをやりとりする時のデータのチェックに使用します。その場合、送信側でデータのCRC 値（2 バイト）を算出し、そのCRC 値をデータに追加した後、データとCRC 値を別のコンピュータに送ります。受信側では、このデータ全体からCRC 値を取り出し、残りのデータのCRC 値を計算します。ここで、取り出したCRC 値と残りのデータから算出したCRC 値が合致すれば、送信中にデータが変更されていないことが分かります。合致しなければ、データは何らかの理由により転送中に変更されたことになります。

関連項目：

ChkDgt


関数ディレクトリ Del

Del

式エディタ > 関数ディレクトリ

文字列中の文字の削除 文字列中の文字を削除します。
構文： | Del(文字列,開始位置,文字数)
パラメータ： | 文字列 …文字列または文字式 開始位置 …文字列中の文字の位置（先頭から何番目か）で、この文字から右に向かって削除が始まります。 文字数 …削除する文字の数を指定します。[開始位置]で指定した位置から、右に向かって、この数の文字が削除されます。
戻り値： | 文字列…削除後の文字列が返ります。
例： | Del('ABCD',2,1)では、先頭から2 番目の文字だけが削除され、'ACD'が返ります。 また、X に2 字以上の文字が入っていると仮定すると、下の式では、Y の値が負の時にはX の文字列のうち最初の文字が、Y が正の場合はX の文字列のうち2 番目の文字が削除されます。Y が0 の時には、削除は行われません。
 | IF(Y<0,Del(X,1,1),IF(Y>0,Del(X,2,1),X))
関連項目： | Ins, Fill, Rep


関数ディレクトリ Fill

Fill

式エディタ > 関数ディレクトリ

文字列の繰り返し 文字列または文字列式を繰り返します。
構文： | Fill(文字列,回数)
パラメータ： | 文字列 …文字列または文字列式 回数 …文字列を繰り返す回数
戻り値： | 文字列
例： | Fill('*',5)
 | '*'が5 回繰り返され、'*****'という文字列が作成されます。
注意事項： | この関数の上限は、32KByteです。
関連項目： | Ins, Del, Rep


関数ディレクトリ Flip

Flip

式エディタ > 関数ディレクトリ

文字列を反転 文字列または文字列式の結果を反転します。文字列は鏡字イメージとなります。
構文： | Flip(文字列)
パラメータ： | 文字列…文字列または文字列式
戻り値： | 文字列
例： | Flip('Good')
 | 'dooG'が返ります。


関数ディレクトリ HVal

HVal

式エディタ > 関数ディレクトリ

16 進数の10 進数への変換 16進数を10進数に変換します。
構文： | HVal(文字列)
パラメータ： | 文字列…16 進数を表す文字列
戻り値： | 数値
例： | HVal('FF')
 | 255 が返ります。
 | HVal('10')
 | 16 が返ります。
関連項目： | HStr


関数ディレクトリ Ins

Ins

式エディタ > 関数ディレクトリ

文字列を別の文字列に挿入 文字列を別の文字列に挿入します。
構文： | Ins(文字列1,文字列2,位置,文字数)
パラメータ： | 文字列1 …文字列の挿入先となる文字列 文字列2 …挿入する文字列 位置 …文字列が挿入される位置で、先頭からの位置を数値で示します。 文字数 …挿入する文字列の文字のうち、実際に挿入する文字数を指定します。
戻り値： | 文字列
例： | Ins('abcde','xxx',3,1)
 | 'abxcd'が返ります。
関連項目： | Del, Rep, Fill


関数ディレクトリ InStr

InStr

式エディタ > 関数ディレクトリ

文字列内の検索文字列の最初の出現位置を検索 検索文字が文字列または文字列式の中で何番目の文字から始まるかを検索します。
構文： | InStr(文字列,検索文字列)
パラメータ： | 文字列 …文字列または文字列式で、この文字列または文字列式に対して検索が実行されます。 検索文字列…検索対象となる文字
戻り値： | 数値 … 検索対象の文字の位置を示す数値が返ります。文字が見つからなかった時には、0が返ります。
例： | InStr('abcd','b')
 | 2 が返ります。
 | InStr('ABCDEF','DE')
 | 4 が返ります。


関数ディレクトリ Left

Left

式エディタ > 関数ディレクトリ

文字列の左側の文字 文字列の左側にある文字を返します。
構文： | Left(文字列,文字数)
パラメータ： | 文字列…文字を取り出す文字列
 | 文字数…取り出す文字の数を指定します。この数の文字が、文字列の左側から取り出されます。
戻り値： | 文字列
例： | Left('abcdefg',3)
 | 'abc'が返ります。
関連項目： | Right, MID


関数ディレクトリ Len

Len

式エディタ > 関数ディレクトリ

文字列の長さ 文字列の長さ（文字数）を返します。
構文： | Len(文字列)
パラメータ： | 文字列…長さを取り出す文字列
戻り値： | 数値 … 長さ（文字数）
例： | Len('abcdefg')
 | 7 が返ります。
注意事項： | 文字型の項目に格納されている文字列の長さを取り出したい場合、Len(RTrim(項目))とします。これによって空白は計算されず、文字の数だけが取得できます。例えば、項目のサイズが20文字で、'John_'（'_'は空白）が格納されていたとします。この場合、Len(RTrim(項目))では、4 が返ります。
関連項目： | Trim, RTrim, LTrim


関数ディレクトリ Lower

Lower

式エディタ > 関数ディレクトリ

大文字を小文字に変換 大文字を小文字に変換します。（全角英文字を含む）
構文： | Lower(文字列)
パラメータ： | 文字列…変換する文字列または文字列式（大文字）
戻り値： | 変換された文字列（小文字）
例： | Lower('JOHN')
 | 'john'が返ります。
注意事項： | この関数の結果は使用するMgconstに依存する場合があります。
関連項目： | Upper


関数ディレクトリ LTrim

LTrim

式エディタ > 関数ディレクトリ

文字列の左側にある空白を削除 文字列の左側の空白（スペース）を削除します。
構文： | LTrim(文字列)
パラメータ： | 文字列…編集対象となる文字列
戻り値： | 空白が取り除かれた文字列
例： | LTrim(' John')
 | 'John'が返ります。
関連項目： | RTrim, Trim


関数ディレクトリ MID

MID

式エディタ > 関数ディレクトリ

部分文字列の取り出し 文字列を指定し、その文字列の中の文字を取り出します。取り出す文字の数も指定できます。
構文： | MID(文字列,開始位置,文字数)
パラメータ： | 文字列 …文字を取り出す文字列。 開始位置 …文字を取り出す位置。この位置から文字が取り出されます。 文字数 …取り出す文字の数を指定します。
戻り値： | 文字列 … 取り出した文字列
例： | MID('John',3,2)
 | 'hn'が返ります。
関連項目： | Left, Right


関数ディレクトリ MlsTrans

MlsTrans

式エディタ > 関数ディレクトリ

文字列を他の言語に変換 多言語環境で、言語の変換を行います。[言語]テーブルの設定にしたがって変換されます。
構文： | MlsTrans (文字列)
パラメータ： | 文字列 …変換する文字列。最大で32000 文字まで指定できます。
戻り値： | 変換された文字列
例： | MlsTrans('Cancel')


関数ディレクトリ mTVal

mTVal

式エディタ > 関数ディレクトリ

文字列を時刻に変換（ミリ秒単位） 書式に基づいて文字で表されたミリ秒値を数値に変換します。
構文： | mTVal(文字列、書式)
パラメータ： | 文字列 … 変換する文字列。例：'02:30:00.123 PM' 書式 … 変換する書式。この書式に基づいて変換されます。
戻り値： | 数値 … 時間値を表す数値（ミリ秒単位）
例： | mTVal('14:30:21.123','HH:MM:SS')
 | 14:30:21.123 のミリ秒数である数値 52221123 を返します。
 | mTVal('14:30:21.123', 'HH:MM:SS)
 | 52221000 を返します。
注意事項： | 時刻型データはミリ秒をサポートしませんので、結果は数値項目に格納してください。


関数ディレクトリ MVal

MVal

式エディタ > 関数ディレクトリ

文字例（Magic 数字）を数値に変換 Magic 数字（内部コード）を数値に変換します。
構文： | MVal(文字列)
パラメータ： | 文字列…Magic内部コードを含む文字列
戻り値： | 数値
例： | MVal(MStr(1234,4))
 | 1234 が返ります。
関連項目： | MStr


関数ディレクトリ Rep

Rep

式エディタ > 関数ディレクトリ

文字列内の部分文字列の置き換え 文字列中の位置と文字数を指定し、その部分を別の文字列に置き換えます。置き換えは、[位置]パラメータで指定された位置から始まります。
構文： | Rep(文字列1,文字列2,位置,文字数)
パラメータ： | 文字列1 …文字列または文字列式で、この文字列の中の文字列が置き換えられることになります。 文字列2 …文字列または文字列式で、この文字列が挿入されます。 位置…[文字列1 ]上の位置で、この位置から置き換えが始まります。 文字数…置き換えられる文字の数で、この数の文字が置き換えの対象となります。
戻り値： | 置き換え後の文字列
例： | Rep('12345','abcde',3,2)
 | '12ab5'が返ります。
関連項目： | RepV


関数ディレクトリ RepStr

RepStr

式エディタ > 関数ディレクトリ

文字列内の特定文字列を検索して置き換え

文字列内にある特定の部分文字列を検索し、別の文字列に置き換えます。

構文：

RepStr(文字列, 検索文字列,置換文字列)

パラメータ：

文字列 … 対象となる文字列

検索文字列 … この文字列で検索します。

置換文字列 … この文字列で置き換えます。

戻り値：

置き換え後の文字列

例：

RepStr('BB//CC//DD//EE','//','==',)

'BB==CC==DD==EE'が返ります。

注意事項：

  • 元の部分文字列と新しい部分文字列は文字列の長さが異なっていても構いません。

  • 新しい文字列が元の文字列より短い場合には、置き換え後の文字列は置き換え前よりも短くなります。

  • 逆に、新しい文字列が元の文字列よりも長い場合には、置き換え後の文字列は置き換え前よりも長くなります。


関数ディレクトリ Right

Right

式エディタ > 関数ディレクトリ

文字列の右側から文字を取り出す 文字列の右側にある文字を取り出します。
構文： | Right(文字列,文字数)
パラメータ： | 文字列…文字を取り出す文字列 文字数…取り出す文字の数を指定します。この数の文字が、文字列の右側から取り出されます。
戻り値： | 文字列
例： | Right('abcdefg',3)
 | 'efg'が返ります。
注意事項： | この関数では、文字列として文字列項目を指定した場合、その項目の長さ全体に対して働きます。例えば、項目A の長さが20 文字で、この項目に'abcdefg'という文字列が入っていた場合、Right(A,3)では''が返ります（20 文字のうち、'abcdefg'の右側は全て空白のためです）。このため、実際の文字列の右側から文字を取り出したい時には、Right(RTrim(A),3)とします。
参照項目： | Left, MID, RTrim


関数ディレクトリ SoundX

SoundX

式エディタ > 関数ディレクトリ

文字の読み方（発音）の比較

スペルは異なるものの発音が似ている2 つの文字列の発音を比較できます。

構文：

SoundX(文字列)

パラメータ：

文字列 … 発音をチェックする文字列

戻り値：

４文字からなる値

例：

SoundX('John Doe')=SoundX('Jhn De')

「True」 が返ります。

参考：

文字列の発音値は以下のように計算されます。

  • 先頭のスペースを無視します。

  • 文字：A,E,I,O,U,Y,H,W を無視します。

  • 大文字と小文字の区別を無視します。

  • 最初の（スペースを除いた）文字を大文字に変換して、戻り値の先頭とします。

  • B,F,P,V を1 に変換します。

  • C,G,J,K,Q,S,X,Z を２ に変換します。

  • D,T を3 に変換します。

  • L を４ に変換します。

  • M,N を5 に変換します。

  • R を６ に変換します。

  • 変換された数値が同じ値で連続する場合は、２ 番目を削除します。

  • 数値部分が３ 桁より短い場合は、0 で埋めます。

  • 数値部分が３ 桁より長い場合は３ 桁で切り捨てます。

注意事項：

  • この関数の戻り値は、4 文字で構成される値です。例えば、'John Doe'、'Jhn De'、'JOhN Deo'はいずれも、'J530'が返ります。また、'Steve'では'S310'が、'Svte'では'S130 が返ります。このように、SoundX 関数では4 文字の値が返るので、その戻り値を条件式で比較すると、文字列の発音の相違をチェックできます。また、SoundX 関数の戻り値はファイルに保存することもできますし、インデックスを設定することで直接アクセスすることもできます。

  • 日本語文字列（DBCSコード）では動作しません。


関数ディレクトリ StrBuild

StrBuild

式エディタ > 関数ディレクトリ

プレイスフォルダの置き換え

テンプレート内のプレースホールダを文字列で置き換えます。

この関数は以下のように動作します。

  1. @を検索します。

  2. @が見つかったら、別の@を検索します。

  3. 2つの@の間の文字列が数値であるかどうかをチェックします。

  4. 数値である場合、インデックスを持つパラメータがあるかどうかをチェックします。

  5. インデックスを持つパラメータがある場合、@数値@はパラメータ値と置き換えられます。条件に当てはまらない場合、置換は行われません。従って、例えば、@が１つしかなかったり、@間の値が数値でない場合は、置換しないで、そのままの値が返ります。

構文：

StrBuild (テンプレート文字列, 値1, 値2,...)

パラメータ：

テンプレート文字列 … 置換対象となるテンプレート。テンプレートは、以下の書式に基づいた通常のテキストとプレイスフォルダが含まれています。

@enumeration index@

enumeration index は、使用する値パラメータのインデックスです。

値 x … enumeration x 内に位置付けられる値

戻り値：

置換された文字列

例：

StrBuild (‘Hello @1@, You have @2@ reports’,A,str(B,’5’))

A='world'で B=20 の場合、「Hello world, You have 20 reports」が返ります。

この例では、以下の連結された式を置換しています。

’Hello ‘&Trim(A)&’, You have ‘&Trim(Str(B,’5’))&’ reports’

注意事項：

  • この関数は、パラメータ値をトリミングします。

  • この関数は、複合文の翻訳が可能なため、MlsTrans関数を使用する場合に便利です。

  • テキスト内の@数値@という文字列をそのまま表示する場合は、前にバックスラッシュ(\)を設定してください。例えば、\@1@は変換されずそのまま出力されます。


関数ディレクトリ StrToken

StrToken

式エディタ > 関数ディレクトリ

文字列のトークン

区切り文字で区切られている文字列から、指定された番号のトークンを取得します。

構文：

StrToken(ソース文字列,トークンインデックス,区切文字列)

パラメータ：

ソース文字列 … 複数の文字列で構成される文字列。区切文字で区切られ、トークンが置かれています。

トークンインデックス … 取り出したいトークンで、その位置をインデックス（順番を示す番号）で指定します。

区切文字列 … 区切文字の文字列。1文字以上の文字列を指定できます。

戻り値：

文字列（トークン）…トークンが見つからなかった場合は、空白が返ります。

例：

StrToken(A,2,',')

Aが'abcd,cdef,ghik,lmnp'の時、'cdef'が返ります。

注意事項：

  • ソース文字列は、文字型、Unicode型または、RTFのBLOB型が使用できます。

  • トークンインデックスが1で、区切文字がNULLの場合や、区切文字が見つからなかった場合、ソース文字列が返ります。

  • トークンインデックスが1より大きく、区切文字が見つからなかった場合は（区切文字がNULL、インデックスが範囲外、区切文字が存在しないなど）、空の文字列が返ります。

  • 区切文字はそれぞれ、インデックスの処理の際に個別にカウントされます（繰り返して処理されることはありません）。

  • スペースは区切文字には使用できません。


関数ディレクトリ StrTokenCnt

StrTokenCnt

式エディタ > 関数ディレクトリ

トークン数

区切り文字で区切られている文字列からトークンの数を返します。

構文：

StrTokenCnt(ソース文字列、区切文字列)

パラメータ：

ソース文字列 …複数の文字列で構成される文字列。区切文字で区切られ、トークンが置かれています。

区切文字列 … 区切文字の文字列。1文字以上の文字列を指定できます。

戻り値：

数値 … 区切り文字によって区切られるソース文字列内にあるトークンの数。区切り文字が見つからない場合は、1 が返ります。

例：

StrTokenCnt('abcd\cdef\ghik\lmnp','\')

4が返ります。

注意事項：

  • ソース文字列は、文字型、Unicode型または、RTFのBLOB型が使用できます。

  • スペースは、区切文字として使用できません。

関連項目：

StrToken,StrTokenIdx


関数ディレクトリ StrTokenIdx

StrTokenIdx

式エディタ > 関数ディレクトリ

トークンインデックス

区切り文字で区切られている文字列から、トークンを検索しインデックス番号を返します。

構文：

StrTokenIdx (ソース文字列、トークン文字列、区切文字列)

パラメータ：

ソース文字列 …複数の文字列で構成される文字列。区切文字で区切られ、トークンが置かれています。

トークン文字列 … 検索する文字列

区切文字列 … 区切文字の文字列。1文字以上の文字列を指定できます。

戻り値：

数値 …指定された区切り文字で区切られた文字列の位置する番号。トークン文字列が見つからない場合は、 0 が返ります。

例：

StrTokenIdx('AA,BB,CC,DD','CC','','')

3 が返ります。

注意事項：

  • ソース文字列は、文字型、Unicode型または、RTFのBLOB型が使用できます。

  • スペースは、区切文字として使用できません。


関数ディレクトリ Translate

Translate

式エディタ > 関数ディレクトリ

論理名の変換 論理名を実行名に変換します。ネストされた論理名を含めて変換されます。 シークレット名は変換されません。TransleteNR関数との違いは、指定された論理名が存在しない場合に、論理名以外を返すことです。
構文： | Translate(文字列)
パラメータ： | 文字列… 論理名（実際に指定した名前の前後に % を付加します。）
戻り値： | 文字列… 実行名が返ります。
例： | Driver = 'C:' と登録されている場合
 | Translate('チェックドライブ %Driver%) → 'チェックドライブ C:'
 | Temp = '%Driver%\temp\''と登録されている場合
 | Translate('%Temp% が見つかりません') → 'C:\temp\ が見つかりません'
注意事項： | 指定した論理名が見つからない場合は、戻り値から論理名が削除されます。
関連項目： | TranslateNR


関数ディレクトリ TranslateNR

TranslateNR

式エディタ > 関数ディレクトリ

論理名の変換 論理名を実行名に変換します。ネストされた論理名を含めて変換されます。 シークレット名は変換されません。Translete関数との違いは、指定された論理名が存在しない場合に、論理名を文字列として返すことです。
構文： | TranslateNR(文字列)
パラメータ： | 文字列 … 論理名（実際に指定した名前の前後に % を付加します。）
戻り値： | 文字列… 実行名が返ります。
例： | Driver = 'C:' と登録されている場合
 | Translate('チェックドライブ %Driver%) → 'チェックドライブ C:'
 | Temp = '%Driver%temp\''と登録されている場合
 | Translate('%Temp% が見つかりません') → 'C:\temp\ が見つかりません'
注意事項： | 指定した論理名が見つからない場合は、指定した文字列がそのまま返ります。
関連項目： | Translate


関数ディレクトリ Trim

Trim

式エディタ > 関数ディレクトリ

文字列の左右にある空白を削除 文字列の先頭と末尾の空白を削除します。
構文： | Trim(文字列)
パラメータ： | 文字列 …編集対象となる文字列
戻り値： | 文字列 …空白削除後の文字列
例： | Trim(' abc ')
 | 前後の空白が取り除かれ、'abc'が返ります。（アポストロフィを除きます。）
関連項目： | LTrim, RTrim,SpecialTrimTrailingNulls


関数ディレクトリ Upper

Upper

式エディタ > 関数ディレクトリ

小文字を大文字に変換 小文字を大文字に変換します。（全角英文字を含む）
構文： | Upper(文字列)
パラメータ： | 文字列 …変換する文字列
戻り値： | 文字列…大文字に変換された文字列
例： | Upper('john')
 | 'JOHN'が返ります。
注意事項： | この関数の結果は使用するMgconstに依存する場合があります。
関連項目： | Lower


関数ディレクトリ Val

Val

式エディタ > 関数ディレクトリ

文字列を数値に変換 文字列を数値に変換します。書式も指定できます。
構文： | Val(文字列,書式)
パラメータ： | 文字列 …数値に変換される文字列 書式 …この書式にしたがって文字列が数値に変換されます。
戻り値： | 数値
例： | Val('45.12','##.#')
 | 45.1 が返ります。
注意事項： | 書式を指定しなかった場合、標準の書式で数値が返ります。
関連項目： | Str


関数ディレクトリ 変換関数

変換関数

式エディタ > 関数ディレクトリ

ANSI2OEM …… ANSI文字セットの文字列をOEM文字セットに変換します。

ASCIIChr …… 数値をASCII文字セットの中の対応した文字に変換します。

ASCIIVal …… 文字列の一番左の文字を評価し、ASCIIコードに変換します。

AStr …… 文字列を指定した書式に変換します。

Blb2File …… BLOB オブジェクトをファイルに保存します。

DStr …… 日付または日付式を文字列に変換します。

DVal …… 文字列を日付型に変換します。

File2Blb …… ファイルをBLOB オブジェクトに変換して保存します。

File2Ole …… ファイルをBLOB オブジェクトに変換します。

HStr …… 10 進数を16 進数に変換します。

HVal …… 16 進数を10 進数に変換します。

Lower …… 大文字を小文字に変換します。

MStr …… 数値を指定された長さ（バイト数）のMagic 数字に変換します。

mTStr …… ミリ秒の時間値を指定された書式の文字列に変換します。

mTVal …… ミリ秒の文字値を指定された書式の数値に変換します。

MVal …… Magic 数字（内部コード）を数値に変換します。

OEM2ANSI …… OEM文字セットの文字列をANSI文字セットに変換します。

TStr …… 時刻を文字列に変換します。

TVal …… 文字列として格納されている時刻を通常の時刻（数値）に変換します。

Upper …… 小文字を大文字に変換します。

UnicodeChr …… 数値をUnicode文字セットに対応した文字に変換します。

UnicodeVal …… Unicode文字を、文字コードに変換します。

UTF8FromAnsi …… データをANSIからUTF8 にエンコードします。

UTF8ToAnsi …… データをUTF8からANSI にエンコードします。

Val …… 文字列を数値に変換します。


関数ディレクトリ 演算子

演算子

式エディタ > 関数ディレクトリ

Magic の式には、算術演算子、論理演算子、文字列演算子が指定できます。

算術演算子 | 論理演算子
加算演算子 減算演算子 乗算演算子 除算演算子 剰余演算子 指数演算子 単項否定 | 等しい 等しくない 以下 未満 以上 より大きい NOT AND OR
文字列演算子 |
連結演算子 |


関数ディレクトリ 演算子 加算

加算演算子(+)

式エディタ > 関数ディレクトリ > 演算子

加算に使用する算術演算子

例： A+B+C


関数ディレクトリ 演算子 減算

減算演算子(-)

式エディタ > 関数ディレクトリ > 演算子

減算に使用する算術演算子

例： A-B-C


関数ディレクトリ 演算子 乗算

乗算演算子(*)

式エディタ > 関数ディレクトリ > 演算子

乗算に使用する算術演算子です。

例：A*B


関数ディレクトリ 演算子 除算

除算演算子(/)

式エディタ > 関数ディレクトリ > 演算子

除算に使用する算術演算子。整数を除算した結果は、最も近い整数に丸められます。

例：A/B


関数ディレクトリ 演算子 指数

指数演算子(^)

式エディタ > 関数ディレクトリ > 演算子

指数に使用する算術演算子です。

例：A^Bは、AをB乗して戻します。


関数ディレクトリ 演算子 単項否定

単項否定

式エディタ > 関数ディレクトリ > 演算子

数式の符号を変更する算術演算子です。

例: -(3)


関数ディレクトリ 演算子 等しい

等しい(=)

式エディタ > 関数ディレクトリ > 演算子

論理演算子を含む式は全て、論理型の「True」または「False」を戻します。


関数ディレクトリ 演算子 等しくない

等しくない(<>)

式エディタ > 関数ディレクトリ > 演算子

論理演算子を含む式は全て、論理型の「True」または「False」を戻します。


関数ディレクトリ 演算子 未満

未満(<)

式エディタ > 関数ディレクトリ > 演算子

論理演算子を含む式は全て、論理型の「True」または「False」を戻します。


関数ディレクトリ 演算子 以下

以下(<=)

式エディタ > 関数ディレクトリ > 演算子

論理演算子を含む式は全て、論理型の「True」または「False」を戻します。


関数ディレクトリ 演算子 より大きい

より大きい(>)

式エディタ > 関数ディレクトリ > 演算子

論理演算子を含む式は全て、論理型の「True」または「False」を戻します。


関数ディレクトリ 演算子 以上

以上(>=)

式エディタ > 関数ディレクトリ > 演算子

論理演算子を含む式は全て、論理型の「True」または「False」を戻します。


関数ディレクトリ 演算子 NOT

NOT

式エディタ > 関数ディレクトリ > 演算子

オペランドの論理値が逆転されます。

論理演算子を含む式は全て、論理型の「True」または「False」を戻します。


関数ディレクトリ 演算子 AND

AND

式エディタ > 関数ディレクトリ > 演算子

両方のオペランドが「True」の時だけ、「True」が返ります。

論理演算子を含む式は全て、論理型の「True」または「False」を戻します。


関数ディレクトリ 演算子 OR

OR

式エディタ > 関数ディレクトリ > 演算子

どちらかのオペランドが「True」の場合、「True」が返ります。

論理演算子を含む式は全て、論理型の「True」または「False」を戻します。


関数ディレクトリ BufGetAlpha 記憶形式

記憶形式のタイプ

式エディタ > 関数ディレクトリ > BufGetAlpha

指定できる記憶形式タイプは以下の通りです。

# | 型 | ID | 記憶形式名 | 長さ
1 | 文字型 | 1 | String－NULL で終了しない | <32K
2 | 文字型 | 2 | Lstring－記憶長を含んだ short int で圧縮されている | 255
3 | 文字型 | 3 | Zstring－NULLで終了する | <32K
4 | 数値型 | 1 | Signed Integer | 1,2,4
5 | 数値型 | 2 | Unsigned Integer | 1,2,4
6 | 数値型 | 3 | Float | 4,8
7 | 数値型 | 4 | Float MS-Basic | 4,8
8 | 数値型 | 5 | Float Decimal | 4,8
9 | 数値型 | 6 | Packed Decimal |
10 | 数値型 | 7 | Numeric |
11 | 数値型 | 8 | Numeric Character |
12 | 数値型 | 10 | C-ISAM Decimal |
13 | 数値型 | 11 | Extended Float |
14 | 論理型 | 1 | Number containing 0,1 |
15 | 論理型 | 2 | Dbase containing T,F |
16 | 日付型 | 1 | Integer Date 1/1/1から開始 | 4
17 | 日付型 | 2 | Integer Date 1901/1/1から開始 | 4
18 | 日付型 | 3 | YYMD | 4
19 | 時刻型 | 1 | Integer | 4
20 | 時刻型 | 2 | HMSH | 4
21 | BLOB型 | 1 | 4Byte の記憶長 + バッファ(16 Byte) |
22 | BLOB型 | 2 | バッファ (16 Byte) |
23 | Unicode型 | 1 | Unicode－NULL で終了しない | <32K
24 | Unicode型 | 2 | ZUnicode－記憶長を含んだ short int で圧縮されている | 255


関数ディレクトリ CASE

CASE

式エディタ > 関数ディレクトリ

値による切り替え 指定された条件に基づいて、値の切り替えを行います。If 文のネストが不要になります。
構文： | CASE(条件式,ケース1,値1,ケース2,値2,...デフォルト値)
パラメータ： | 条件式…値を切り替えるための条件式 ケースn …条件によって指定される値。条件式の結果がケースn で指定したものと一致した場合、値n が関数の戻り値になります（n の最大値は14）。 値n …関数の戻り値 デフォルト値…条件式の結果がケースn に当てはまらない場合の戻り値
戻り値： | 条件式に当てはまるケースに対応する戻り値が返ります。どのケースとも一致しない場合は、デフォルト値が返ります。
例： | CASE（A,1,'赤',2,'緑',3,'青','黒')
 | A が1 の場合'赤'が返ります。 A が2 の場合'緑'が返ります。 A が3 の場合'青'が返ります。 A が1 ～3 以外の場合'黒'が返ります。


関数ディレクトリ Cipher 暗号化方法とモード

サポートする暗号化方法とモード

式エディタ > 関数ディレクトリ > Cipher

暗号 ID | 暗号名 | サポートされるモード(IV長) | キー長 | 対称
1 | BLOWFISH | ECB - NA CBC - 8 CFB - 8 OFB - 8 | 最小: 1 最大:56 推奨:16 | 対称
2 | CAST | ECB - NA CBC - 8 CFB - 8 OFB - 8 | 最小: 5 最大:16 推奨: 8 | 対称
3 | DES | ECB - NA CBC - 8 CFB - 8 OFB - 8 | 最小: 1 最大: 8 推奨: 8 | 対称
4 | IDEA | ECB - NA CFB - 8 OFB - 8 | 最小: 1 最大:16 推奨:16 | 対称
5 | RC2 | ECB - NA CBC - 8 CFB - 8 OFB - 8 | 最小: 5 最大:16 推奨: 8 | 対称
6 | RC4 |  | 最小: 1 最大:NR 推奨:16 | 対称
7 | RC5 | ECB - NA CBC - 8 CFB - 8 OFB - 8 | 最小: 1 最大:255 推奨:16 | 対称
8 | DES3 | ECB3 - NA CBC3 - 8 | 最小: 2 最大:16 / 24 推奨:24 | 対称
9 | RSA |  | 最小:48 最大:2048 推奨:128 | 非対称
10 | AES | ECB - NA CBC - 8 CFB - 8 OFB - 8 | 最小:1 最大:16 推奨:16 | 対称


関数ディレクトリ ClientBlb2File

ClientBlb2File

式エディタ > 関数ディレクトリ

クライアントのBLOBをファイルに変換 BLOB項目の内容をファイルに変換して保存します。
構文： | ClientBlb2File (BLOB項目, ファイル名)
パラメータ： | BLOB項目 … 項目 ファイル名 … ファイル名（文字型）
戻り値： | 論理値… 処理に成功した場合「True」が返ります。
例: | ClientBlb2File (BE, 'C:\bfile.blb')
 | BLOB項目「BE」の内容をCドライブ上のbfile.blbと名付けられたファイルに変換します。
注意事項： | この関数は、リッチクライアントタスクでのみ有効なクライアント側の関数です。サーバ側で同じ機能を利用する場合は、Blb2Fileを使用してください。


関数ディレクトリ ClientFile2Blb

ClientFile2Blb

式エディタ > 関数ディレクトリ

クライアントのファイルをBLOB化する ファイルをBLOB項目に変換します。これはクライアント側の関数です。
構文： | ClientFile2Blb (ファイル名)
パラメータ： | ファイル名 … ファイル名（文字型）
戻り値： | BLOB項目… BLOB型項目としてパッケージ化されたファイル
例： | ClientFile2Blb('C:\att1.rtf')
 | att1.rtfファイルがBLOB項目化して返ります。
注意事項： | この関数は、リッチクライアントタスクでのみ有効なクライアント側の関数です。サーバ側で同じ機能を利用する場合は、File2Blbを使用してください。


関数ディレクトリ ClientFileCopy

ClientFileCopy

式エディタ > 関数ディレクトリ

クライアントのファイルをコピーする

クライアント側のディスク上のファイルをコピーします。これはクライアント側の関数です。

構文：

ClientFileCopy(元ファイル,新ファイル)

パラメータ：

元ファイル…コピー元となる既存のファイルの名前

新ファイル…コピー先となる新規のファイルの名前

戻り値：

論理値… 処理に成功した場合「True」が返ります。

例：

ClientFileCopy('MAGIC.FIL','MAGIC.SAV')

MAGIC.FIL という名前のファイルの内容が、MAGIC.SAV という新規のファイルにコピーされます。

注意事項：

  • ２つのパラメータにはそれぞれ、パスを指定することもできます。パスを省略した場合、カレントのディレクトリ（JNLPファイル起動時の作業ディレクトリ）と解釈されます。

  • この関数は、リッチクライアントタスクでのみ有効なクライアント側の関数です。サーバ側で同じ機能を利用する場合は、FileCopyを使用してください。この場合は、サーバ側のファイルしかアクセスできません。

参照

ClientFileDelete, ClientFileExist, ClientFileRename, ClientFileSize


関数ディレクトリ ClientFileDelete

ClientFileDelete

式エディタ > 関数ディレクトリ

クライアントのファイルを削除する

クライアント側のディスク上のファイルを削除します。これはクライアント側の関数です。

構文：

ClientFileDelete(ファイル名)

パラメータ：

ファイル名…削除するファイルの名前。このパラメータにはパスを指定することもできます。パスを指定しなかった場合、カレントディレクトリが使用されます。

戻り値：

論理値… 処理に成功した場合「True」が返ります。

例：

ClientFileDelete('C:\TEMP\TMPFILE.TMP')

Cドライブ のTEMPディレクトリにあるTMPFILE.TMPが削除されます。

注意事項：

  • ファイルの削除は、[コールOSコマンド]処理コマンドではなく、、この関数を使用するようにしてください。

  • この関数は、リッチクライアントタスクでのみ有効なクライアント側の関数です。サーバ側で同じ機能を利用する場合は、FileDeleteを使用してください。この場合は、サーバ側のファイルしかアクセスできません。

参照

ClientFileCopy, ClientFileExist, ClientFileRename, ClientFileSize


関数ディレクトリ ClientFileExist

ClientFileExist

式エディタ > 関数ディレクトリ

クライアントのファイルの存在を確認 クライアント側のディスク上のファイルの存在を確認します。これはクライアント側の関数です。
構文： | ClientFileExist(ファイル名)
パラメータ： | ファイル名…確認するファイルの名前。このパラメータにはパスを指定することもできます。パスを指定しなかった場合、カレントディレクトリが使用されます。
戻り値： | 論理値… ファイルが存在する場合「True」が返ります。
例： | ClientFileExist('c:\magic\magic.ini')
 | C ドライブのmagic ディレクトリにmagic.iniファイルがあれば、「True」 が返ります。
注意事項： | この関数は、リッチクライアントタスクでのみ有効なクライアント側の関数です。サーバ側で同じ機能を利用する場合は、FileExistを使用してください。
関連項目： | ClientFileCopy, ClientFileDelete, ClientFileRename, ClientFileSize


関数ディレクトリ ClientFileListGet

ClientFileListGet

式エディタ > 関数ディレクトリ

クライアントのファイル一覧の取得

クライアント側のディスク上の指定したディレクトリ内のファイル一覧を返します。これはクライアント側の関数です。

構文：

ClientFileListGet(ディレクトリ名, フィルタ,サブディレクトリ検索フラグ)

パラメータ：

ディレクトリ名 … ファイル一覧を取得するディレクトリ名を表す文字列。論理名が使用できます。

フィルタ … 検索ファイルの名前を絞り込むフィルタを表す文字列。ワイルドカード(*)が指定できます。複数のフィルタを指定する場合は、「|」で区切ります。（例： ‘*.xml|*.xsd’）空白が指定された場合は、全てのファイル名が返ります。

サブディレクトリ検索フラグ… サブディレクトリも検索するかどうかを指定する論理値。

  • True…サブディレクトリも検索する

  • False…指定されたディレクトリのみ検索する

戻り値：

文字型のセルモデルが定義されたベクトル項目

各セルにファイル名が格納されます。ファイルが存在しない場合、NULLが返ります。サブディレクトリ内のファイルは、相対パスが付加された名前が返ります。

例：

ClientFileListGet('c:\temp','*.xml|*.xsd','TRUE’LOG)

「c:\temp」ディレクトリ内のサブディレクトリを含んだファイル名の内、拡張子が、「xml」と「xsd」のファイルの一覧が返ります。

注意事項：

この関数は、リッチクライアントタスクでのみ有効なクライアント側の関数です。サーバ側で同じ機能を利用する場合は、FileListGetを使用してください。


関数ディレクトリ ClientFileRename

ClientFileRename

式エディタ > 関数ディレクトリ

クライアントのファイルの名前の変更

クライアント側のディスク上のファイルの名前を変更します。これはクライアント側の関数です。

構文：

ClientFileRename(元ファイル,新ファイル)

パラメータ：

元ファイル…名前を変更するファイルの名前

新ファイル…変更後の名前

戻り値：

論理値… 処理に成功した場合「True」が返ります。

例：

ClientFileRename('MAGIC.FILE','MAGIC.SAV')

MAGIC.FIL という名前がMAGIC.SAVに変更されます。

注意事項：

  • 2 つのパラメータにはそれぞれ、パスを指定することもできます。パスを省略した場合、ディレクトリはカレントディレクトリ（JNLPファイル起動時の作業ディレクトリ）と解釈されます。

  • （ドライブ名が間違っていたなどの理由で）リネームできなかった場合、指定されたドライブにファイルがコピーされます。

  • この関数は、リッチクライアントタスクでのみ有効なクライアント側の関数です。サーバ側で同じ機能を利用する場合は、FileRenameを使用してください。

関連項目：

ClientFileCopy, ClientFileDelete, ClientFileExist, ClientFileSize


関数ディレクトリ ClientFileSize

ClientFileSize

式エディタ > 関数ディレクトリ

クライアントのファイルサイズの照会 クライアント側のディスク上のファイルのサイズ（バイト数）を返します。これはクライアント側の関数です。
構文： | ClientFileSize(ファイル名)
パラメータ： | ファイル名 … サイズを取り出すファイルの名前。パスを指定することもできます。パスを指定しなかった場合、カレントのディレクトリ（JNLPファイル起動時の作業ディレクトリ）に対して検索が行われます。
戻り値： | 数値 … ファイルのサイズ（Byte）
例： | ClientFileSize('c:\magic\magic.ini')
 | C ドライブのmagic ディレクトリのmagic.iniファイルのサイズ（バイト数）が返ります。
注意事項： | この関数は、リッチクライアントタスクでのみ有効なクライアント側の関数です。サーバ側で同じ機能を利用する場合は、FileSizeを使用してください。
関連項目： | ClientFileCopy, ClientFileDelete, ClientFileExist


関数ディレクトリ ClientGetUniqueMachineID

ClientGetUniqueMachineID

式エディタ > 関数ディレクトリ

クライアントIDの取得

クライアントPCのユニークなIDが返ります。

構文：

関数ディレクトリ ClientGetUniqueMachineID()

パラメータ：

なし

戻り値：

文字列 … クライアントPCを識別するためのユニークな英数字

IDは、ユニークで同じPCでは同じ値が返ります。

  1. そのPCからのリッチクライアントのすべての呼び出しに使用されます。

  2. 中間的なネットワークサーバに依存しません

  3. クライアントPCの再起動後も同じ値が返ります。

IDの書式は、Magic側に依存します。これを解析することはできません。返された値をそのまま使用してください。

注意事項：

このIDは、次の再起動やインターネットとの接続時に変更される場合があります。


関数ディレクトリ ClientOSEnvGet

ClientOSEnvGet

式エディタ > 関数ディレクトリ

クライアントの環境変数の取得 クライアント側のOSの環境変数の値を返します。これはクライアント側の関数です。
構文： | ClientOSEnvGet(環境変数)
パラメータ： | 環境変数…… OSの環境変数の名前を指定します。
戻り値： | 文字列……指定された環境変数の実行値を返します。環境変数が指定されていない場合は、空白が返ります。
例： | ClientOSEnvGet(‘PATH’)
 | 「PATH」という環境変数の実行値が返ります。
注意事項： | この関数は、リッチクライアントタスクでのみ有効なクライアント側の関数です。サーバ側で同じ機能を利用する場合は、OSEnvGetを使用してください。この場合、サーバPCの環境変数の値が返ります。


関数ディレクトリ ClientOSEnvSet

ClientOSEnvSet

式エディタ > 関数ディレクトリ

(現在、この関数は存在していません)

クライアントの環境変数の設定 クライアント側のOSの環境変数の値を設定します。これはクライアント側の関数です。
構文： | ClientOSEnvSet(環境変数,値)
パラメータ： | 環境変数 …… OSの環境変数の名前を指定します。 値 …… 環境変数に設定する実行値
戻り値： | 論理値… 処理に成功した場合「True」が返ります。
例： | ClientOSEnvSet(‘PATH’,’C:\Program Files\Dev;C:\winnt\system32’)
 | 「PATH」という環境変数に「C:\Program Files\Dev;C:\winnt\system32」という実行値を設定します。
注意事項： | この関数は、リッチクライアントタスクでのみ有効なクライアント側の関数です。サーバ側で同じ機能を利用する場合は、OSEnvSetを使用してください。


関数ディレクトリ CndRange

CndRange

式エディタ > 関数ディレクトリ

条件を使用して項目に値を設定

項目の値に関する条件付き範囲を指定します。

構文：

CndRange (条件,値)

パラメータ：

条件…実行時に評価される論理式

値…条件が「True」 の時に戻り値として返される値

戻り値：

指定した値

例：

CndRange('TRUE'LOG,10)では、10 が返ります。

一方、CndRange('FALSE'LOG, 20)は、実行されません。

注意事項：

この関数はデータ定義の[位置付]と[範囲]特性にのみ使用できます。また、この関数は他の式の一部としては使用できません。CndRange（条件,値）を範囲の小大に指定すると、範囲小にIF（条件,値,最小値）を設定し、範囲大にIF（条件,値,最大値）を設定した場合とほぼ同等の動作をします。項目特性のNULL値許可の設定に関わらず同一の式を使用できます。また、SQL ではより適切なWHERE句が発行できます。これによって、範囲処理に関わるSQL 文が出力されなくなるため、処理の高速化が図れます。

例えば、[範囲 最大]特性にCndRange(A<>0,A)とした場合、Aに「0」以外の数値が設定されている場合、A を最大値とした範囲値となりますが、A が「0」の場合、この指定は範囲条件としては処理されません。


関数ディレクトリ CX

CX

式エディタ > 関数ディレクトリ

コントロールのX軸

指定されたコントロールまたは、最後にパークしたコントロールのウンドウ上の相対的なX軸の位置を返します。

構文：

CX(コントロール名、世代番号)

パラメータ：

コントロール名 …… フォームに定義されたコントロール名を指定します。NULLが指定された場合、最後にパークされたコントロールとして動作します。

世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

数値… X軸の位置がピクセル単位で返ります。

注意事項：

  • パーク可能なコントロールだけが値を返します。パーク可能なコントロールとは、[データ]特性が定義されているか、イベントが定義されているコントロールです。

  • この関数は、リッチクライアントタスクでのみ有効です。クライアント側の関数になります。


関数ディレクトリ CY

CY

式エディタ > 関数ディレクトリ

コントロールのY軸

指定されたコントロールまたは、最後にパークしたコントロールのウィンドウ上の相対的なY軸の位置を返します。

構文：

CY(コントロール名、世代番号)

パラメータ：

コントロール名 …… フォームに定義されたコントロール名を指定します。NULLが指定された場合、最後にパークされたコントロールとして動作します。

世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

数値… Y軸の位置がピクセル単位で返ります。

注意事項：

  • パーク可能なコントロールだけが値を返します。パーク可能なコントロールとは、[データ]特性が定義されているか、イベントが定義されているコントロールです。

  • この関数は、リッチクライアントタスクでのみ有効です。クライアント側の関数になります。


関数ディレクトリ DbXmlExist 例

DbXmlExistの例

式エディタ > 関数ディレクトリ > DbXmlExist

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="A">
<xs:complexType>
<xs:sequence>
<xs:element name="R" type="RType" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="RType">
<xs:attribute name="ID" type="xs:int" />
</xs:complexType>
</xs:schema>

上記のXMLスキーマがデータソース#1に読み込まれ、ビューが要素｢A\R｣上で定義されている場合、以下のような結果になります。

1. BLOB項目：Aに以下のXMLデータが割り当てられた場合：

<A>

</A>

この場合、｢A\R｣が存在しないため

DbXmlExist ('1'DSOURCE, A)

この関数は、False が返ります。

2. BLOB項目：Aに以下のXMLデータが割り当てられた場合：

<A>

<R ID="1"/>

</A>

この場合、｢A\R｣は存在しているため

DbXmlExist ('1'DSOURCE, A)

この関数は、True が返ります。


関数ディレクトリ EvalStr

EvalStr

式エディタ > 関数ディレクトリ

文字列の評価

この関数は、指定された文字列をMagicの式として扱い、実行します。

例えばDBテーブル内に処理内容をマクロとして格納したい場合などに便利です。処理内容を1つのプログラムとして作成することで、別のプログラムから実行させることができます。

この関数は、どのようなMagic関数でも実行させることができます。

構文：

EvalStr(文字列, デフォルト値)

パラメータ：

文字列… Magicの定義式として評価される文字列

デフォルト値…式が正しくない場合に返される値。型は、評価式が返す値の型に合わせる必要があります。

例： 1+ EvalStr(string,default value)

この場合、default value は、数値にしなければいけません。

戻り値：

式の評価によって返される値。もしこの式が正しくない場合は、デフォルト値が返ります。

例：

EvalStr（A,0）：A='3 + 2’の場合、 戻り値は、5 になります。

EvalStr（A,0）：A='3 + ' の場合、 戻り値は、0 になります。

注意事項：

  • 式にシングルクォーテーションを含んだ文字列が含まれる場合（文字列やリテラル）は、各クォーテーションに対して２つのシングルクォーテーションを設定する必要があります。

例： EvalStr('DbDel('1'DSOURCE,'MYFILE.DAT')')

または

EvalStr('A' & 'B',)='AB'

  • もし文字列がクォーテーションで囲まれていない場合は、項目のシンボル名と見なされます。

例： EvalStr('A&B',) =項目A & 項目B

  • 項目のシンボル名が間違っている場合、参照内容は無効になります。VarCurrN関数 や VarIndex関数を使用して参照するようにしてください

例： EvalStr('VarCurrN('NAME') AND VarCurrN('LAST_NAME'),0)

  • CallProg関数でコールされたプログラムの戻り値に設定すると動作しないことがあります。 コールコマンドで使用してください。


関数ディレクトリ EvalStrInfo

EvalStrInfo

式エディタ > 関数ディレクトリ

EvalStr関数の評価情報

EvalStr関数を使用して評価される式に関する情報が返ります。

構文：

EvalStrInfo(式,オプション)

パラメータ：

式 …… EvalStr 関数を使用した式を表す文字列

オプション …… 取得する情報のタイプを表す数値

  • 1 ……戻り値のデータ型

  • 2 …… 実行時に発生するエラー内容（正常処理の場合は空白が返ります。）

  • 3 …… 式の内容（EvalStr で指定した内容がそのまま返ります。）

戻り値：

指定したオプションに基づく情報を表す文字列

オプション=1（戻り値のデータ型）の場合は、式が正しければ、その式の戻り値のデータ型を返します。

  • A …… 文字型

  • N …… 数値型

  • L …… 論理型

  • B …… BLOB型.（ベクタ型、OLE型、ActiveX型を含みます）

  • D ……日付型

  • T ……時刻型

  • * ……未定義の型

  • Error ……式に誤りがある場合

注意事項：

  • 日付型と時刻型の場合は、式の内容が、Date() のように日付や時刻に関した簡単なものの場合や、日付項目や時刻項目の簡単な組み合わせの時のみ戻り値が返ります。複雑な式の場合は、数値型で返ります。

  • 式が、数値だけの指定の場合は、数値型で返ります。例： EvalStrInfo('123',1)は、'N'　が返ります。

  • 式に誤りがある場合は、'Error' という文字列が返ります。例： EvalStrInfo('123+',1)は、'Error' が返ります。


関数ディレクトリ ExpCalc

ExpCalc

式エディタ > 関数ディレクトリ

式の実行

指定された式番号の定義式を実行します。

構文：

ExpCalc (式番号)

パラメータ：

式番号 …実行する式の番号

戻り値：

指定した式の評価後の値

例：

ExpCalc('2'EXP)

[式]テーブルの2 番目の式が実行されます。

ExpCalc(BA)

（BA）の式が実行されます。

NOT(ExpCalc('4'EXP))

式番号「4」に、「A>B AND G>10 OR F」と定義されており、同じ式を使用し、なおかつ「NOT」条件を追加したい場合。

注意事項：

  • 式としては、次のいずれかを指定できます。

  • EXPリテラル

  • 定数値

  • 変数項目

  • ExpCalc関数が参照する式の結果が小数になる場合、関数を含む計算式が期待する値と異なることがあります。この場合、式に対してRound関数を使用してください。


関数ディレクトリ IF

IF

式エディタ > 関数ディレクトリ

条件付き評価（IF-THEN-ELSE ） 条件を指定し、その条件から返る論理値（「True」 または「False」 ）に応じて、処理を分岐させることができます。If はネストして使用できます。
構文： | IF(論理式,値1,値2)
パラメータ： | 論理式 …論理値が返る式、または論理型項目 値1 …True が返った時に使用される値 値2 …False が返った時に使用される値
戻り値： | 値（パラメータで指定した 値1か値2のどちらか）
例： | IF(A=1,'Blue','Green')では、A=1 （「True」 ）の場合、'Blue'が返ります。A=1 でない（False ）場合、'Green'が返ります。


関数ディレクトリ IN

IN

式エディタ > 関数ディレクトリ

データの照合

カンマ区切りのデータ列内に指定したデータが存在するかどうかを照合します。

構文：

IN(検索データ、検索対象データ列)

パラメータ：

検索データ … 検索したいデータ。指定できるデータ型は、文字、数値、Unicode、日付、時刻です。

検索対象データ列 … 検索されるデータをカンマ区切りで複数指定します。日付と時刻の場合は、リテラルを付けて指定してください。

戻り値：

論理値

  • True…検索データ列内に検索データが存在する場合

  • False…検索データが存在しない場合

例：

IN('abcd','aa','abcd','bbb') では「True」が返ります。

IN('abcd','aa','bb','cc') では「False」が返ります。

IN(5,1,2,3,5) では「True」が返ります。

IN(A,'2003/01/01'DATE,'03/03/04'DATE) の場合、A が '2003/01/01'DATE ならば、「True」が返ります。

注意事項：

この関数は、iSeries の SQL ゲートウェイでは無効です。


関数ディレクトリ LIKE

LIKE

式エディタ > 関数ディレクトリ

文字列の比較（パターンマッチング）

文字列が指定したパターンに一致するかどうかを判断し、論理値を返します。

構文：

文字列 LIKE パターン

パラメータ：

文字列…比較の対象となる文字列

パターン…パターンの指定

戻り値：

論理値… パターンと一致した場合「True」が返ります。

例：

'abcd' LIKE 'a*d'

「True」が返ります

'abcd' LIKE 'a?d'

「False」が返ります

'abc' LIKE 'a?c'

「True」が返ります

注意事項：

  • パターンには、通常の文字とワイルドカード文字を含めることができます。次の文字がワイルドカードに使用されます。

  • * … 0個以上の文字列

  • ? … 1個の文字

  • ワイルドカードを通常の文字として比較させる場合には、「\」をワイルドカードの前に追加する必要があります。

  • LIKEを使用して文字列の比較を実行する時、先頭の空白や末尾の空白も対象となります。


関数ディレクトリ MainDisplay

MainDisplay

式エディタ > 関数ディレクトリ

使用中のメインフォーム 現在表示されているフォームのインデックスが返ります。
構文： | MainDisplay(世代番号)
パラメータ： | 世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。
戻り値： | 数値 … [フォーム]エディタ内の現在表示されているフォームのインデックスを表す番号
例： | MainDisplay(0)
 | 現在のタスクに２つのフォーム（#2、#3）が定義されており、#3が表示されていおる場合、「3」が返ります。
注意事項： | [ウィンドウ表示]特性が「No」の場合、「0」が返ります。


関数ディレクトリ MainLevel

MainLevel

式エディタ > 関数ディレクトリ

イベントが発生したタスクのメインレベル

タスクのメインレベルが返ります。Level関数との違いは、以下の通りです。

オンライン／ブラウザタスク

  • 同期モードで実行されたロジックユニットでこの関数が実行された場合、実行したロジックユニットではなくイベントを発行したロジックユニットの情報が返ります。

  • 非同期モードで実行されたロジックユニットでこの関数が実行された場合、「RM」が常に返ります。

  • プッシュボタンをクリックしたことによって実行されたイベントのロジックユニットでこの関数が実行された場合、「RM」が常に返ります。

バッチタスク

  • 非同期のイベントのロジックユニットを実行するバッチタスクのレベルは、実際のロジックユニットレベルの代わりに「RS」が返ります。タスクが非同期で起動されたイベントのロジックユニットから同期モードで起動されたイベントのロジックユニットを実行した場合も「RS」が返ります。

構文：

MainLevel(世代番号)

パラメータ：

世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

文字型…以下の文字列が返ります。

  • RP … レコード前

  • RM …RM互換/ユーザとの対話モード

  • RS … レコード後

  • GP_<Group depth> … グループ前

  • GS_<Group depth> … グループ後

  • TP … タスク前

  • TS … タスク後


関数ディレクトリ NULL

NULL

式エディタ > 関数ディレクトリ

NULL に設定

項目の値をNULL に設定できます。

構文：

NULL()

パラメータ：

なし

関連項目：

NULL値可

注意事項：

  • この関数にパラメータはなく、必要に応じて実行し、項目の値をNULL値にすることができます。

  • NULL値が許可されていない場合、項目の値はNULL にできません。


関数ディレクトリ SetBufCnvParam 変換パラメータ

変換パラメータ

式エディタ > 関数ディレクトリ > SetBufCnvParam

パラメータ名

説明

型

デフォルト

Low-Hi

数値が Windowsの標準の文字での昇順または降順、UNIXの標準の文字での昇順または降順で読み書きを行うことを示します。

論理型

True

Encoding

文字データに対するエンコードのタイプ

  • 1 …… ANSI

  • 3 …… UNICODE

数値型

1

Code Page

Unicodeでエンコードする場合に使用します。

数値型

なし


関数ディレクトリ SetWindowFocus

SetWindowFocus

式エディタ > 関数ディレクトリ

ウィンドウフォーカスの設定 フォーカスをウィンドウリスト内の別のウィンドウに移します。 ここでの「ウィンドウ名」とは、[フォーム]エディタで、[ウィンドウメニューに表示]特性が「Yes」に設定されたフォーム名を意味します。 Magic以外のアプリケーションのウィンドウ名を指定することで、そのアプリケーションにフォーカスを移すこともできます。
構文： | SetWindowFocus (ウィンドウ名)
パラメータ： | ウィンドウ名 …ウィンドウ名を表す文字列
戻り値： | 論理値 … 指定されたウィンドウが存在する場合、「True」が返ります。
例： | SetWindowFocus('Customer Transaction')
注意事項： | 実行中に、ウィンドウが存在していない場合(、[ウィンドウメニューに表示]特性が「Yes」に設定されているフォーム名前が存在していなか、空白になっているか、NULLの場合)、フォーカスは現在のウィンドウの上に残り、「False」が返ります。


関数ディレクトリ Term

Term

式エディタ > 関数ディレクトリ

端末番号 [動作環境]ダイアログの[端末番号]パラメータに指定されている値が返ります。
構文： | Term()
パラメータ： | なし
戻り値： | 数値 … 端末番号
注意事項： | マルチユーザ環境では、Term関数を使用して単一の端末番号を指定することができます。その場合、各ユーザごとに、MAGIC.INI ファイルの[Terminal]パラメータを設定することが必要です。この設定は、別個のMAGIC.INI ファイルを用意したり、コマンドラインを使用して指定することもできます。
関連項目： | INIGet, INIPut, User


関数ディレクトリ UTF8FromAnsi

UTF8FromAnsi

式エディタ > 関数ディレクトリ

UTF8へのエンコード データをANSIからUTF8 にエンコードします。
構文： | UTF8FromAnsi(文字列)
パラメータ： | 文字列 … 変換される文字列。データの型は、文字、Unicodeおよび RTF形式のBLOBです。
戻り値： | BLOB値 … UTF8でエンコードされたRTFデータ
例： | UTF8FromAnsi(A)
 | 項目'A'を UTF8にエンコードします。
 | UTF8FromAnsi('Hello World')
 | 'Hello World'という文字列をUTF8にエンコードします。
注意事項： | UTF-8でファイルを作成する場合は、この関数を使用しないで、[入出力特性]の[使用する文字セット]特性を「UTF-8」に設定して出力するようにしてください。
関連項目： | UTF8ToAnsi


関数ディレクトリ UTF8ToANSI

UTF8ToAnsi

式エディタ > 関数ディレクトリ

ANSIへのエンコード データをUTF8からANSI にエンコードします。この関数は、CodePage関数で指定されたコードページを使用します。CodePage関数を使用しない場合、OSのデフォルトのコードページが使用されます。
構文： | UTF8ToAnsi(文字列)
パラメータ： | 文字列 … 変換される文字列。データの型は、文字、Unicodeおよび RTF形式のBLOBです。
戻り値： | BLOB値 … ANSIでエンコードされたRTFデータ
例： | UTF8ToAnsi(A)
 | 項目'A'を ANSIにエンコードします。
関連項目： | UTF8FromAnsi


関数ディレクトリ VarAttr

VarAttr

式エディタ > 関数ディレクトリ

項目の型 項目の型が返ります。
構文： | VarAttr(シンボル名)
パラメータ： | シンボル名 … 型をチェックしたい項目で、[項目一覧]の項目のシンボル名を指定します。VARリテラルが必要です。
戻り値： | 文字列 … 項目の型を表します。
例： | VarAttr('BE'VAR)
関連項目： | VarCurr, VarInp, VarMod, VarName, VarPrev


関数ディレクトリ VarCurr

VarCurr

式エディタ > 関数ディレクトリ

項目の値（シンボル名） 項目を指定し、その項目の現在の値を返します。項目は、シンボル名を使用して指定します。
構文： | VarCurr(シンボル名)
パラメータ： | シンボル名…型をチェックしたい項目で、[項目一覧]の項目のシンボル名を指定します。VARリテラルが必要です。
戻り値： | 指定した項目の現在の値。値の型は、その項目の型と同じになります。
例： | VarCurr('BE'VAR)
 | 項目BE の現在の値が返ります。
 | VarCurr('CR'VAR + 7)
 | 項目CY （CR の項目から7 つ後ろの項目）の現在値が返ります。
関連項目： | リテラル, VarMod, VarPrev


関数ディレクトリ VarCurrN

VarCurrN

式エディタ > 関数ディレクトリ

項目の値（項目名） 項目名に対応した項目の現在の値を返します。
構文： | VarCurrN(項目名)
パラメータ： | 項目名…項目名を示す文字列
戻り値： | 指定した項目の現在の値。値の型は、その項目の型と同じになります。
例： | VarCurrN('Customer ID')
 | 項目名「Customer ID」の現在の値が返ります。
注意事項： | 指定した項目名が存在しない場合は、NULLが返ります。 同じ項目名の項目が複数ある場合は、タスクツリー上のもっとも下位の項目の値が返ります。


関数ディレクトリ VarDbName

VarDbName

式エディタ > 関数ディレクトリ

DBカラム名

指定した項目のDBカラム名を返します。

構文：

VarDbName(シンボル名)

パラメータ：

シンボル名 …項目示す識別コードで、[項目一覧]の項目のシンボル名を指定します。VARリテラルが必要です。

戻り値：

文字列 … 指定した項目のDBカラム名

  • 項目がSQLテーブルの実項目の場合、「テーブルオーナ名」や、「データソース名」、「DBカラム名」が、ピリオド（'.'）区切りで返ります。

  • 項目がSQLタスク内のSQLステートメントで定義された場合、関数はフィールド名を返します。

  • 項目がSQLテーブルの実項目でない場合、空白を返します。

例：

VarDbName('C'VAR)

オーナ名：dbo

データソース名:Customer

DBカラム名:CustomerID

の場合、「dbo.Customer.CustomerID」が返ります。

注意事項：

  • この関数は、SQLテーブルの実項目でのみ有効です。

  • Pervasive.SQL やMemory Table のような ISAM系テーブルや、ダイレクトSQL構文の一部でないローカル変数の場合は空白が返ります。


関数ディレクトリ VariantType 記憶形式

Variant の記憶形式

式エディタ > 関数ディレクトリ > VariantType

表1 – 基本タイプ

# | Variant の記憶形式 | 説明 | 範囲
0 | VT_EMPTY | 値が設定されていない |
1 | VT_NULL | NULL 値 |
2 | VT_I2 | 2バイト整数 （符号付） | -32,768 ～32,767
3 | VT_I4 | 4バイト整数 （符号付） | -2,147,483,648 ～ 2,147,483,647
4 | VT_R4 | 4バイト不動小数点数 | 1.1E -38 ～ 3.4E +38(7 桁)
5 | VT_R8 | 8バイト不動小数点数 | 2.2E -308 ～ 1.7 E +308(15 桁)
6 | VT_CY | 通貨型 |
7 | VT_DATE | 日付型 |
8 | VT_BSTR | サイズ情報をもった文字列型 |
9 | VT_DISPATCH | IDispatch インターフェイス |
10 | VT_ERROR | エラー型 |
11 | VT_BOOL | ブール型 |
12 | VT_VARIANT | バリアント型 （バリアント型配列にのみ使用） |
13 | VT_UNKNOWN | IUnknown インターフェイス |
14 | VT_DECIMAL | １2バイト数値 （符号付） |
16 | VT_I1 | 1バイト整数 （符号付） | -128 ～127
17 | VT_UI1 | 1バイト整数 （符号なし） | 0 ～255
18 | VT_UI2 | 2バイト整数 （符号なし） | 0 ～65,535
19 | VT_UI4 | 4バイト整数 （符号なし） | 0 ～ 4,294,967,295
22 | VT_INT | int 型 |
23 | VT_UINT | unsigned int 型 |
36 | VT_RECORD | ユーザ定義型 |

表２ – 配列と参照

以下の値は、基本タイプの値との論理和を使用して指定します。単独では有効になりません。

# | Variant の記憶形式 | 説明
8192 | VT_ARRAY | データ型の配列
16384 | VT_BYREF | データ型への参照

例

  • VT_I4|VT_BYREF …… 16387（16384 + 3）

  • VT_I4|VT_ARRAY …… 8195（8192 + 3）

注意：

  • 「VT_I4|VT_BYREF」での「|」という文字は、論理和を表します。実際に定義式内で使用する場合は、加算演算子（+）を使用してください。

  • VT_VARIANT は、単独では使用できません。表２の値と組み合わせて使用してください。

  • 以下の組み合わせは使用できません。

  • VT_NULL|VT_BYREF

  • VT_EMPTY|VT_BYREF

  • VT_NULL|VT_ARRAY

  • VT_EMPTY|VT_ARRAY


関数ディレクトリ VarIndex

VarIndex

式エディタ > 関数ディレクトリ

項目のシンボル名を取得

項目名に対応した項目のシンボル名が返ります。VarMod, VarAttr, VarPrev, VarSet, VarPic などの シンボル名を指定する関数と組み合わせて使用できます。

構文：

VarIndex(項目名)

パラメータ：

項目名 … 項目名を示す文字列

戻り値：

数値 … 指定された項目のシンボル名（インデックス）

例：

VarIndex('Customer ID')

項目名'Customer ID'のシンボル名が返ります。

注意事項：

  • 指定した項目名が存在しない場合は、0 が返ります。

  • 同じ項目名の項目が複数ある場合は、タスクツリー上のもっとも下位の項目の値が返ります。


関数ディレクトリ VarInp

VarInp

式エディタ > 関数ディレクトリ

最後の入力項目

カーソルが最後に置かれた項目（入力可能の項目）のシンボル名が返ります。

構文：

VarInp(世代番号)

パラメータ：

世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

シンボル名…指定したタスクでカーソルが最後に置かれた項目のシンボル名が返ります。シンボル名は、メインプログラムの最初の項目がA 、その後、別の項目が選択されるたびに、１つずつ大きくなります。子タスクの番号は、その上位のタスクの番号を基に順に付けられます。

例：

例えば、タスク１に２つの項目が定義されており、その子タスクにさらに２つの項目が定義されている場合、[項目一覧]には次のように表示されます。

A VAR 1
B VAR 2
----------
C VAR 3
D VAR 4

タスクの構造が上記のような場合、カーソルが項目'B'VAR に置かれていたとします。ここで、子タスクのレベルでVarInp（1）を実行すると、B （親タスクの項目）が返ります。

注意事項：

  • 同じ親タスクの配下で定義された子タスクでの定義項目は、親タスクで定義された項目以降の付番になります。

  • このため、各サブタスク内で定義された項目は、同じシンボル名から始まります。

関連項目：

VarAttr, VarCurr, VarMod, VarName, VarPrev


関数ディレクトリ VarMod

VarMod

式エディタ > 関数ディレクトリ

項目の値が変更されたことの確認

データビューのレコードが取り出されてから、項目の値が変更されているかどうかを確認します。

構文：

VarMod(シンボル名)

パラメータ：

シンボル名 … 値をチェックしたい項目。[項目一覧]の項目のシンボル名を指定します。VARリテラルが必要です。

戻り値：

論理値

  • True…項目の値が変更されていた場合

  • False…値が変更されていない場合

例：

VarMod('A'VAR)

データビューのレコードの取り出し後、項目A の値が変更されていれば「True」 が返ります。

関連項目：

ViewMod


関数ディレクトリ VarName

VarName

式エディタ > 関数ディレクトリ

オリジナルのテーブルと項目 項目のシンボル名を指定し、その項目のオリジナルのテーブルと項目の名前を返します。
構文： | VarName(シンボル名)
パラメータ： | シンボル名…[項目一覧]の項目のシンボル名を指定します。VARリテラルが必要です。
戻り値： | 文字列 … シンボル名で指定した項目名が、元のテーブル名と一緒に返ります。テーブル名と項目名はピリオド（.）でつながれます。項目が変数項目の場合、テーブル名は「変数項目」と表示されます。
例： | VarName('A'VAR)
 | 項目Aのオリジナルのテーブルと項目がそれぞれ、「顧客」、「顧客番号」の場合、「顧客.顧客番号」という文字列が返ります。
関連項目： | VarAttr, VarCurr, VarInp, VarMod, VarPrev


関数ディレクトリ VarPic

VarPic

式エディタ > 関数ディレクトリ

項目の書式

指定した項目の書式が返ります。

構文：

VarPic (シンボル名、モード)

パラメータ：

シンボル名 … [項目一覧]の項目のシンボル名を指定します。VARリテラルが必要です。

モード（数値） … 機能モード

戻り値：

文字列 … 書式を表す文字列です。

  • モード=0 の場合…カラム特性、変数特性で定義された書式が返ります。BLOBは、空白が返ります。

  • モード= 1の場合…その項目に対応するコントロールの特性で定義された書式が返ります。ただしクラス=0 のフォームに定義されたコントロールでのみ、この機能モードが有効です。

注意事項：

  • モード=1を指定した場合でも、コントロール特性に書式が定義されていない場合、モード=0と同じ結果が返ります。またフォームに定義されていない項目は、モード=0 と同じ結果になります。

  • モードに0,1以外を設定した時は、モード=0とみなされます。


関数ディレクトリ VarPrev

VarPrev

式エディタ > 関数ディレクトリ

項目のオリジナル値

項目のオリジナルの値が返ります。項目は、[項目一覧]のシンボル名で指定します。

構文：

VarPrev(シンボル名)

パラメータ：

シンボル名 … [項目一覧]の項目のシンボル名を指定します。VARリテラルが必要です。

戻り値：

指定した項目のオリジナルの値。その項目のデータ型で返ります。

例：

VarPrev('BE'VAR)

項目BE のオリジナルの値が返ります。

VarPrev('CR'VAR + 7)

項目CY （CR の7 つ後の項目）のオリジナル値が返ります。

VarPrev('W'VAR) <> W

項目の値が変更されているかどうかをチェックできます。結果は、VarMod('W'VAR）と同じになります。

注意事項：

  • この関数を使用して、データビューのレコードが読み込まれた時の項目の値を取り出すことができます。

  • なお、このVarPrev 関数は、レコードの初期化段階では使わないようにします。これは、レコードの初期化には、項目の値が入っていないためです。また、代入式で使用するのも避けるようにします。

  • いずれにしても、初期化段階では、値が変更されることはほとんどないため、VarPrev 関数は必要ありません。

関連項目：

リテラル, VarCurr, VarMod


関数ディレクトリ VarSet

VarSet

式エディタ > 関数ディレクトリ

値を設定 項目を指定し、その項目に値を設定します。
構文： | VarSet(シンボル名,値)
パラメータ： | シンボル名…[項目一覧]の項目のシンボル名を指定します。VARリテラルが必要です。 値 … 項目に格納する値
戻り値： | 論理値 … 常に「True」が返ります。
例： | VarSet('P'VAR, X+6)
 | 項目Pの内容を項目X+6の結果で更新します。
 | VarSet('P'VAR+1, X+6)
 | 項目Q（Pの次の項目）の内容を項目X+6の結果で更新します。このようにすることで、配列のように項目を扱うことができます。
注意事項： | [項目更新]処理コマンドでは加算更新はできず、代入更新のみとなります。再計算は、VarSet 関数の完了後に実行されます。


関数ディレクトリ WinHelp

WinHelp

式エディタ > 関数ディレクトリ

Windowsヘルプを開く

指定された ヘルプファイルを開き指定されたコマンドを実行します。

構文：

WinHelp(ヘルプファイル, コマンド, ヘルプキー)

パラメータ：

ヘルプファイル … ヘルプファイルのパス名とファイル名

コマンド … ヘルプファイルがオープンされる時に実行される ヘルプコマンドを指定する番号

以下の番号がサポートされるコマンドを表します。

  • 1 … Context

  • 2 … Contents

  • 3 … SetContents

  • 4 … ContextPopup

  • 5 … Key

  • 6 … Command

  • 7 … ForceFile

  • 8 … HelpOnHelp

  • 9 … Quit

ヘルプキー…ヘルプコマンドの追加パラメータとなる文字列。ヘルプキーが不要な場合は空白にしてください。

戻り値：

論理値 … 処理に成功した場合「True」が返ります。

例：

WinHelp('Support\MGHELPW.CHM',2,'')

Magicのヘルプ ファイルのコンテンツを指定してオープンします。

WinHelp('Support\MGHELPW.CHM',1,'1001')

Magicのヘルプファイルを開き、そして、コンテキスト番号(1001)に割り当てられた トピックを表示します。

注意事項：

CHMファイル（Htmlヘルプ）の場合、SetContents、ContextPopup、Key、Command、ForceFile、HelpOnHelp コマンドは動作しません。


関数ディレクトリ XMLBLOBGet 例

XMLBlobGet の例

式エディタ > 関数ディレクトリ > XMLBlobGet

<?xml version="1.0"?>
<order id="123">
<issued_by>
<name>John Smith</name>
<address>
<street>Somewhere</street>
<city>Nowhere</city>
</address>
</issued_by>
<item cat_num="2145451544">
<price>99.99</price>
<amount>2</amount>
</item>
<item cat_num="1384325456">
<price>19.99</price>
<amount>10</amount>
</item>
</order>

上記のXMLを「C:￥myxml.xml」に保存し、現在のタスクの[入出力ファイル]テーブルの先頭にこのXMLファイルが定義されている場合、次のように表現します。

XMLBlobGet (0, 1, '/order/issued_by', 'name')

John Smithを返します。

XMLBlobGet (0, 1, '/order/send_to', 'name')

空白を返します。（order に send_to 要素がないからです。）

XMLBlobGet (0, 1, '/order/item[2]', 'price')

19.99 を返します。

XMLBlobGet (0, 1, '/order/item[5]', 'price')

空白を返します。（order にはitem要素が2つしかないからです。）

XMLBlobGet (0, 1, '/order', 'id')

123 を返します。

XMLBlobGet (0, 1, '/order/issued_by', 'date')

空白を返します。（issued_by 要素にdate属性がないからです。）

XMLBlobGet (0, 1, '/order/issued_by', 'name')

空白を返します。（nameは、属性ではなく issued_by 要素の子要素であるからです。）


関数ディレクトリ XMLCnt 例

XMLCnt の例

式エディタ > 関数ディレクトリ > XMLCnt

<?xml version="1.0"?>
<order id="123">
<issued_by>
<name>John Smith</name>
<address>
<street>Somewhere</street>
<city>Nowhere</city>
</address>
</issued_by>
<item cat_num="2145451544">
<price>99.99</price>
<amount>2</amount>
</item>
<item cat_num="1384325456">
<price>19.99</price>
<amount>10</amount>
</item>
</order>

上記のXMLを「C:￥myxml.xml」に保存し、現在のタスクの[入出力ファイル]テーブルの先頭にこのXMLファイルが定義されている場合、次のように表現します。

XMLCnt (0, 1, '/order/issued_by/name')

戻り値=1

XMLCnt (0, 1, '/order/send_to/name')

戻り値= 0 ('send_to' という要素（タグ）が存在しないため。)

XMLCnt (0, 1, '/order/item')

戻り値= 2

XMLCnt (0, 1, '/order/item[2]', 'cat_num')

戻り値=1


関数ディレクトリ XMLDelete 例

XML Delete の例

式エディタ > 関数ディレクトリ > XMLDelete

<?xml version="1.0"?>
<order id="123">
<issued_by>
<name>John Smith</name>
<address>
<street>Somewhere</street>
<city>Nowhere</city>
</address>
</issued_by>
<item cat_num="2145451544">
<price>99.99</price>
<amount>2</amount>
</item>
<item cat_num="1384325456">
<price>19.99</price>
<amount>10</amount>
</item>
</order>

上記のXMLを「C:￥myxml.xml」に保存し、現在のタスクの[入出力ファイル]テーブルの先頭にこのXMLファイルが定義されている場合、次のように表現します。

XMLDelete (0, 1, '/order/item[2]/price','')

<price>19.99</price>が削除されます。

XMLDelete (0, 1, '/order','id')

order要素のid属性が削除されます。


関数ディレクトリ XMLExist 例

XMLExist の例

式エディタ > 関数ディレクトリ > XMLExist

<?xml version="1.0"?>
<order id="123">
<issued_by>
<name>John Smith</name>
<address>
<street>Somewhere</street>
<city>Nowhere</city>
</address>
</issued_by>
<item cat_num="2145451544">
<price>99.99</price>
<amount>2</amount>
</item>
<item cat_num="1384325456">
<price>19.99</price>
<amount>10</amount>
</item>
</order>

上記のXMLを「C:￥myxml.xml」に保存し、現在のタスクの[入出力ファイル]テーブルの先頭にこのXMLファイルが定義されている場合、次のように表現します。

XMLExist (0, 1, '/order/issued_by/name')

戻り値=「True」

XMLExist (0, 1, '/order/send_to/name')

戻り値=「False」（'send_to' 要素が存在しないため。）

XMLExist (0, 1, '/order/item[2]/price')

戻り値=「True」

XMLExist (0, 1, '/order/item[5]/price')

戻り値=「False」（item要素が2項目しか存在しないため。）

XMLExist (0, 1, '/order', 'id')

戻り値=「True」

XMLExist (0, 1, '/order/issued_by', 'date')

戻り値=「False」（'issued_by' 要素の中に'Date' 属性が存在しないため。）

XMLExist (0, 1, '/order/issued_by', 'name')

戻り値=「False」（name は、'issued_by' 要素の子要素であって、属性ではないため。）


関数ディレクトリ XMLFind 例

XMLFind の例

式エディタ > 関数ディレクトリ > XMLFind

<?xml version="1.0"?>
<order id="123">
<issued_by>
<name>John Smith</name>
<address>
<street>Somewhere</street>
<city>Nowhere</city>
</address>
</issued_by>
<item cat_num="2145451544">
<price>99.99</price>
<amount>2</amount>
</item>
<item cat_num="1384325456">
<price>19.99</price>
<amount>10</amount>
</item>
</order>

上記のXMLを「C:￥myxml.xml」に保存し、現在のタスクの[入出力ファイル]テーブルの先頭にこのXMLファイルが定義されている場合、次のように表現します。

XMLFind (0, 1, '/order/issued_by', 'name', 0, '', 'John Smith')

戻り値= 1

XMLFind (0, 1, '/order/issued_by','name', 0, '', 'John')

戻り値= 0 （'order.issued_by' のパスに 'John' という値を含んだname要素が存在しないため）

XMLFind (0, 1, '/order', 'item', 1, 'cat_num', '1384325456')

戻り値= 2

XMLFind (0, 1, '/order', 'item', 1, 'cat_num', '12345')

戻り値= 0（'order'パス内の'item'要素の'cat_num'属性の中に'12345' と言う値を含んだ属性が存在しないため。）

XMLFind (0, 1, '/order', 'item', 0, 'price', '99.99')

戻り値= 2


関数ディレクトリ XMLGet 例

XMLGet の例

式エディタ > 関数ディレクトリ > XMLGet

<?xml version="1.0"?>
<order id="123">
<issued_by>
<name>John Smith</name>
<address>
<street>Somewhere</street>
<city>Nowhere</city>
</address>
</issued_by>
<item cat_num="2145451544">
<price>99.99</price>
<amount>2</amount>
</item>
<item cat_num="1384325456">
<price>19.99</price>
<amount>10</amount>
</item>
</order>

上記のXMLを「C:￥myxml.xml」に保存し、現在のタスクの[入出力ファイル]テーブルの先頭にこのXMLファイルが定義されている場合、次のように表現します。

XMLGet (0, 1, '/order/issued_by/name')

戻り値= John

XMLGet (0, 1, '/order/send_to/name')

戻り値= 空白（'order' に'send_to' という要素が存在しないため。）

XMLGet (0, 1, '/order/item[2]/price')

戻り値= 19.99

XMLGet (0, 1, '/order/item[5]/price')

戻り値 = 空白（'item' という要素は2項目しか存在しないため。）

XMLGet (0, 1, '/order','id')

戻り値=123

XMLGet (0, 1, '/order/issued_by', 'date')

戻り値= 空白 （'issued_by' 要素の中に 'Date'属性が存在しないため。）

XMLGet (0, 1, '/order/issued_by', 'name')

戻り値= 空白 （'issued_by' 要素の中に 'name'属性が存在しないため。）


関数ディレクトリ XMLInsert 例

XML Insert の例

式エディタ > 関数ディレクトリ > XMLInsert

<?xml version="1.0"?>
<order id="123">
<issued_by>
<name>John Smith</name>
<address>
<street>Somewhere</street>
<city>Nowhere</city>
</address>
</issued_by>
<item cat_num="2145451544">
<price>99.99</price>
<amount>2</amount>
</item>
<item cat_num="1384325456">
<price>19.99</price>
<amount>10</amount>
</item>
</order>

属性名を指定しない

上記のXML DOMツリーが‘C:\myxml.xml’ファイルに保存され、現在のタスクの最初の入出力ファイルがXMLファイルの場合以下のような式にしてください。

XMLInsert (0, 1, '/order/issued_by/name','','','John Smith')

この例では、XML要素が追加され「1」が返り、[issued_by]セクションは以下のようになります。

<issued_by>
<name>John Smith</name>
<address>
<street>Somewhere</street>
<city>Nowhere</city>
</address>
<name>John Smith</name>
</issued_by>

要素名を指定

「state」という要素を「city」要素の前に追加するには以下のようにします。

XMLInsert (0,1, '/order/issued_by/address/state','','Some state', 'A', 'city')

この場合、[issued_by]セクションは以下のようになります。

<issued_by>
<name>John Smith</name>
<address>
<street>Somewhere</street>
<city>Nowhere</city>
<state>Some state</state>
</address>
<name>John Smith</name>
</issued_by>

属性を追加

「ID」属性を追加するには以下のようにします。

XMLInsert (0, 1, '/order/issued_by/name','','ID','1')

この場合、XML属性が追加され「0」が返り、[issued_by]セクションは以下のようになります。

<issued_by>
<address>
<street>Somewhere</street>
<city>Nowhere</city>
<state>Some state</state>
</address>
<name ID="1">John Smith</name>
</issued_by>

属性タイプを追加

番目の項目に属性タイプを追加する場合は以下のようにします。

XMLInsert (0, 1, '/order/item[2]', 'type', 'standard')

この場合、上記の２つの例では「0」が返ります。

XMLInsert (0, 1, order.item[3],'','')

インデックスが要素パスの右端を指定

XMLInsert (0, 1, '/order/item[3]','','')

この場合は処理が失敗し、エラーコード「-11」が返ります。これは、要素の追加で、インデックスが要素パスの右端を指定しているからです。


関数ディレクトリ XMLModify 例

XML Modify の例

式エディタ > 関数ディレクトリ > XMLModify

<?xml version="1.0"?>
<order id="123" xmlns="http://www.magicsoftware.com">
<issued_by>
<name>John Smith</name>
<address>
<street>Somewhere</street>
<city>Nowhere</city>
</address>
</issued_by>
<item cat_num="2145451544">
<price>99.99</price>
<amount>2</amount>
</item>
<item cat_num="1384325456">
<price>19.99</price>
<amount>10</amount>
</item>
</order>

要素の値を更新

XMLModify (0,1,'/order/item[2]/price','','30')

２番目の項目要素内の「price」要素の値を「19.99」から「30.00」に更新します。

属性値を更新

XMLModify (0,1,'/order/item[1]','cat_num','123456')

最初の項目要素内の「cat_num」属性値を「2145451544」から「123456」に更新します。


表示フォーム

表示フォームはオンライングラフィック表示に使用されます。インタフェースタイプは、ブラウザ形式（ブラウザ形式表示の場合）またはGUI表示形式（Magicクライアント表示の場合）のいずれかです。クラスは「0」と定義される必要があります。

ブラウザフォーム

GUI表示フォーム

リッチクライアントフォーム

参照

ブラウザコントロール特性

HTMLコントロールテーブル

GUI表示コマンド

GUI表示コントロール

リッチクライアントコントロール

TABの順序

MDIとSDI

ドラッグ&ドロップ


GUIコントロール 表示コントロール

表示コントロール

表示フォーム

以下の操作でコントロールにアクセスすることができます。

  • [GUIコントロール]パレット

  • [描画]メニュー > [コントロール追加]

  • フォームのコンテキストメニュー（コンテキストメニューから[コントロール追加]を選択）

以下は、GUI表示フォームでの[コントロール]パレット内のボタンを説明したものです。

ボタン | コントロール名 | 説明
 |  | [コントロール]パレットの選択ツール。コントロールの選択と選択解除はこのツールを使用して行います。コントロールの移動、サイズ変更、削除、[コントロール特性]シートへのズームを行うには、コントロールを選択しておく必要があります。
 | エディット | [エディット]コントロールを挿入します。このコントロールは、[コントロール特性]シートの[データ]特性のデータ項目または式に関連付けることができます。
 | テキスト | スタティックな[テキスト]コントロールを挿入します。
 | プッシュボタン | プロジェクトで特定のイベントを実行するために用いる[プッシュボタン]コントロールを挿入します。
 | チェックボックス | オン/オフを切り替えるのに使用する[チェックボックス]コントロールを挿入します。論理型の項目や論理式を表す時はこのコントロールを使用します。
 | ラジオボタン | [ラジオボタン]コントロールを挿入します。
 | タブ | 2つのデフォルトタブを含んでいる[タブ]コントロールを挿入します。このコントロールにはエディットやプッシュボタンなどコントロールを配置することができます。
 | リストボックス | 2つのデフォルト項目を含んでいる[リストボックス]コントロールを挿入します。
 | コンボボックス | 2つのデフォルト項目を含んでいる[コンボボックス]コントロールを挿入します。
 | グループ | スタティックな[グループ]コントロールを挿入します。四角形のボックスを描画し、複数のコントロールをグループにまとめて表示します。そのグループを説明するラベルを含めることができます。
 | 四角 | 四角形の[スタティック]コントロールを挿入します。[コントロール特性]シートで、四角形にテキストを追加したり、そのテキストの位置を指定することができます。
 | 楕円 | 楕円形の[スタティック]コントロールを挿入します。[コントロール特性]シートで、楕円内にテキストを追加したり、そのテキストの位置を指定することができます。
 | ライン | [ライン]コントロールを挿入します。
 | 垂直スライダ | 矢印付きの[垂直スライダ]コントロールを挿入します。
 | 水平スライダ | 矢印付きの[水平スライダ]コントロールを挿入します。
 | テーブル | [テーブル]コントロールを挿入します。このコントロールにエディットやプッシュボタンなどのコントロールを配置することができます。
 | イメージ | [イメージ]コントロールを挿入します。
 | OLE | OLEコンテナを挿入します。
 | リッチテキスト | 開発時に書式設定を行なうスタティックテキストを含んだ[リッチテキスト]コントロールを挿入します。リッチテキストの書式設定は、コントロール全体ではなく、コントロール中で選択したテキストに対して行ないます。
 | リッチエディット | [リッチエディット]コントロールを挿入します。[データ]特性に式やBLOB項目が設定されている場合、このコントロールは[リッチテキスト]コントロールとして機能します。
 | サブフォーム | [サブフォーム]コントロールを挿入します。現在のフォーム上に別のフォームを表示させることができます。
 | ツリー | [ツリー]コントロールを挿入します。親子関係のノードデータをツリー形式で表示します。
 | ブラウザ | HTMLファイルを表示するブラウザコントロールを挿入します。

注意：

ActiveXコントロールは、[コントロール]パレットから配置できません。ActiveX型の項目を[項目]パレットから配置する必要があります。

GUIコントロールは次のように分類されます。

[スタティック]コントロール

チョイスコントロール

[スライダ]コントロール

エディット、プッシュボタン、イメージコントロール

[テーブル]コントロール

[ツリー]コントロール

参照

テーブル内でのマルチマーキング

GUI 表示の項目パレット


ブラウザフォーム

表示フォーム >

ブラウザフォームは、Web形式アプリケーションの実行時に使用されます。

ブラウザフォームは、[タスク特性]ダイアログの[タスクタイプ]特性が「R=ブラウザ」と指定されている場合にのみ作成できます。

フォームのレイアウトの作成は、外部のWebオーサリングツールを使用して行います。HTMLファイルをブラウザタスクと統合させ、HTML内のオブジェクトをMagicのコントロールとして扱うことができます。

[フォーム]エディタのブラウザエントリからズームすると、[HTMLコントロール]テーブルが表示されます。

参照

ブラウザフォーム特性

ブラウザコントロール特性


ブラウザフォーム サブフォーム

ブラウザサブフォーム

表示フォーム > ブラウザフォーム

サブフォームは、複数のプログラムまたはタスクにより管理されている情報を１つのブラウザフォームとして実行／表示する場合に使用します。サブフォームを使用すると、呼び出すプログラムまたはタスクとブラウザフォームの間のリレーションを実装してインターネット用の高度な画面を作成することができます。

サブフォームは、選択したプログラムまたはタスクとブラウザフォームの間のリレーションを実行サーバに伝えることを目的としています。サブフォームの特性は、[HTMLコントロール]テーブルの[コントロール特性]シートに表示されます。ブラウザフォームは複数のサブフォームをサポートできます。

[フォーム]エディタ内のブラウザフォームエントリから[HTMLコントロール]テーブルにズームして、サブフォームを定義することができます。サブフォームの特性 には以下の特性値があります。

接続先

何を実行するかを指定します。

  • P=プログラム

  • S=サブタスク

プログラム
/タスク番号

接続先の指定に基づいてプログラムかサブタスクのIDを指定します。

パラメータ

接続先に渡すパラメータを指定します。

キャッシュ有効

親のブラウザタスクで読み込んだレコードに対するサブフォームのデータビューをクライアント側でキャッシュするかどうかを指定します。

  • Yes …… データビューをキャッシュします。これによって、エンドユーザが以前のレコードに戻った時、サブフォームのデータビューに対するサーバへのアクセス処理がなくなります。

  • No …… クライアントはサブフォームのデータビューをキャッシュせず、サーバに対してサブフォームのデータビューの変更内容を毎回アクセスします。

サブフォームのデータビューは以下の場合にキャッシュから削除されます。

  • [ビュー再表示]イベントが実行された時。

  • 登録モードに変更された場合。修正モードで行追加された場合は、クライアントはサブフォームのキャッシュを削除しません。

  • [ロールバック]イベントが使用された時。

  • ブラウザタスクが終了した時。

タブ順序

この特性は自動的に番号が設定され表示のみとなります。

タブで移動

Tabキーによる動作を指定します。

  • Yes …… エンドユーザは、Tabキーでサブフォームに移動できます。

  • No …… カーソルを（マウスで）サブフォームに移動しなければなりません。

参照

サブフォームへのキーボードアクセス


ブラウザフォーム サブフォーム キーボードアクセス

サブフォームへのキーボードアクセス

表示フォーム > ブラウザコントロール > ブラウザサブフォーム

[タブで移動]を「Yes」にすると、Tabキーを使用して親タスクからサブフォームにアクセスすることができます。

全てのサブフォームのタブ順序は、[HTMLコントロール]ダイアログでの位置を基に決定されます。

タブ順序によるサブフォームの位置は、サブフォームコントロールの前のHTMLコントロール内で定義された項目とサブフォームコントロール後に定義された項目の間で設定されます。

サブフォームにアクセスする時の動作は以下の通りです。

  • サブフォームの前に定義された、親タスクのパーク可能なコントロールで[次項目]イベントを実行すると、カーソルはサブフォームの最初のパーク可能なコントロールに表示されます。

  • カーソルがサブフォーム内の最後のパーク可能コントロールにある場合、[次項目]イベントを実行すると、カーソルは親タスクの[タブ順序]特性に基づいて次のパーク可能コントロールに移動します。

  • 次のコントロールが他のサブフォームにある場合、[次項目]イベントを実行すると、カーソルは次のサブフォーム内の最初のパーク可能コントロールに移動します。

  • サブフォームが[HTMLコントロール一覧]の先頭になく、カーソルがサブフォーム内の最初のパーク可能コントロールにある場合、[前項目]イベントを実行すると、カーソルは親タスクの[HTMLコントロール一覧]でサブフォームの前に定義されたパーク可能コントロールに移動します。

  • 前のコントロールが他のサブフォームにある場合、[前項目]イベントを実行すると、カーソルは前のサブフォーム内の最後のパーク可能コントロールに移動します。

  • サブフォームが現行タスクの最初のHTMLコントロールに定義されている場合、タスクはサブフォームの最初のパーク可能コントロールに直接パークします。ネストされたサブフォームでも同様です。

  • [タブで移動]特性が「Yes」の場合、サブフォームの[循環入力]特性は無視されます。

参考

[タブで移動]特性を「No」に設定することで、Tabキーによってサブフォームにアクセスすることを防ぐことができます。


ブラウザフォーム 特性

ブラウザ形式フォーム特性

表示フォーム > ブラウザフォーム

[ブラウザ形式]フォームの[フォーム特性]には以下の特性値があります。

モデル

詳細

表示

位置とサイズ


ブラウザフォーム 特性 詳細

詳細

表示フォーム > ブラウザフォーム > ブラウザフォーム特性

ウィンドウタイプ | ウィンドウの表示タイプを指定します。この設定によって表示や動作が変わります。
繰返し行数 | [テーブル]コントロールの最大行数を指定します。
HTMLファイル | ブラウザ形式フォームを[フォーム出力]処理コマンドで使用するためのテンプレートの名前を指定します。ここからズームしてファイルを選択するか、[式]エディタを開いてファイル名として評価される式を指定してください。
フォーム名 | タイトルバーに表示される文字列を指定します。 対応するHTMLコードは、<TITLE>Form Name</TITLE>です。


ブラウザフォーム 特性 表示

表示

表示フォーム > ブラウザフォーム > ブラウザフォーム特性

デフォルトクラス | 式でコントロールのクラス名を指定します。
ヘルプ画面 | ここからズームして、フォームと関連付けるヘルプ画面を指定します。
背景 | フォームの背景として使用するイメージファイル名を表す式番号を指定します。 対応するHTMLコードは、<BODY BACKGROUND="Wallpaper">です。
色 | フォームの色を表す式番号を指定します。ここから[式]エディタにズームして実行時に評価される色番号を指定します。 対応するHTMLコードは、<BODY bgcolor="#xxxxxx" text="#xxxxxx">です。


ブラウザフォーム 特性 位置と表示

位置とサイズ

表示フォーム > ブラウザフォーム > ブラウザフォーム特性

左辺位置 | ブラウザフォームの左端の位置を指定します。[式]エディタにズームして、フォームの左端の座標を表す式を定義します。
上辺位置 | ブラウザフォームの上端の位置を指定します。[式]エディタにズームして、フォームの上端の座標を表す式を定義します。
幅 | ブラウザフォームの幅を表す式番号を指定します。
高さ | ブラウザフォームの高さを表す式番号を指定します。

注意：

[フォーム特性]の[左辺位置]および[上辺位置]を設定していない場合、[コール]処理コマンドなどで新たに表示される子ウィンドウは、親ウィンドウより内側に表示さます。JavaScriptによってHTMLファイルのロード時にウィンドウの位置を指定していても、Magicのデフォルト位置が有効になります。


HTMLコントロールテーブル

表示フォーム >

[HTMLコントロール]テーブルには、Magicのデータ項目に割当てられているHTML入力タグが表示されます。このテーブルには、以下のカラムあります 。

# | 自動的に生成されるエントリ番号
HTMLコントロール名 | コントロールのラベル。コントロールに名前を付けた場合、次の[式]カラムは無効になります。
式 （HTMLコントロール名） | コントロールのラベルを表す式を定義します。式を定義した場合、[HTMLコントロール名]カラムは無効になります。
タイプ | データ項目に関連付けられているコントロールタイプを選択できます。
項目 | [項目一覧]からコントロールタイプと関連付けるデータ項目を選択できます。データ項目を選択した場合、[式]カラムは無効になります。
式 （項目） | データ項目を特定のコントロールタイプに関連付ける式を定義できます。式を定義した場合、[項目]カラムは無効になります。
[HTMLタグ追加]ボタン | クリックすると、[HTMLコントロール一覧]テーブルが開きます。このテーブルにはHTMLファイルに存在し、[HTMLコントロール]テーブルに定義されていないコントロールの一覧が表示されます。[HTMLコントロール]テーブルに追加するHTMLコントロールは、複数選択できます。

注意：

  • ブラウザフォームの[HTMLコントロール一覧]で移動、複写、上書きが可能です。

  • 行を複写した場合、[HTMLコントロール名]特性の値ユニークになるように変更しなければなりません。


HTMLコントロールテーブル 一覧

HTMLコントロール一覧

表示フォーム > HTMLコントロールテーブル

ここには、HTMLファイルから割り当てられていないHTMLコントロールの一覧が表示されます。ここからコントロールを選択してフォームに割り当てることができます。

複数のコントロールを選択するには：

  1. コントロールの[#]カラムでパークします。

  2. Shiftキーを押しながら、別のコントロールの[#]カラムをクリックします。これにより、クリックしたコントロールが連続的にマークされます。Shiftキーを押しながら、矢印キーを上下することも複数選択できます。

  3. テーブル上で連続しないコントロールを選択する場合は、Ctrlキーを押しながら別のコントロールをクリックします。

  4. [選択]ボタンをクリックすることで、選択したコントロールが確定されます。

[HTMLコントロール一覧]を開くには：

[HTMLコントロール]テーブルで[HTMLタグ追加]ボタンをクリックするか、[HTMLコントロール名]カラムからズームすることで[HTMLコントロール一覧]が開きます。

参照

HTMLコントロールテーブル


ブラウザコントロール特性

表示フォーム >

各ブラウザコントロールには、異なるコントロール特性があります。それぞれのブラウザコントロールの特性については、次の項目を参照してください。

エディットコントロール特性

ラジオボタンコントロール特性

ハイパーテキストコントロール特性

プッシュボタンコントロール特性

チェックボックスコントロール特性

リストボックスコントロール特性

コンボボックスコントロール特性

イメージコントロール特性

テーブルコントロール特性

サブフォームコントロール特性

IFRAMEコントロール特性

その他コントロール特性

ブラウザコントロール特性一覧


ブラウザコントロール特性 エディット

エディットコントロール特性

表示フォーム > ブラウザコントロール特性

ブラウザフォームの[エディット]コントロールには以下の特性があります。

モデル
詳細 | 表示 | パーク
書式 型 | デフォルトクラス マウスオーバクラス マウスダウンクラス | タブ順序 パーキング可 タブで移動
入力 | デフォルトスタイル | 位置とサイズ
必須入力 修正許可 複数行編集 パスワード編集 選択プログラム 起動モード | マウスオーバスタイル マウスダウンスタイル 色 ヘルプ画面 ツールチップ 自動ヘルプ 可視 有効 | 左辺位置 上辺位置 幅 高さ


ブラウザコントロール特性 エディット 詳細

詳細

表示フォーム > ブラウザコントロール特性 > エディットコントロール特性

書式 | コントロールの書式を指定します。データの入力や表示に影響します。
型 | コントロールに定義した項目の型が表示されます。項目を式で指定されている場合、[型]特性を設定することができます。


ブラウザコントロール特性 エディット 入力

入力

表示フォーム > ブラウザコントロール特性 > エディットコントロール特性

必須入力

エンドユーザが必ずコントロールに値を入力しなければならないかどうかを表す式番号を指定します。

修正許可

エンドユーザがコントロールの値を変更できるかどうかを表す式番号を指定します。

複数行編集

エンドユーザが複数行のテキストを入力できるかどうかを指定します。

パスワードエディット

エンドユーザがコントロールに入力した文字をアスタリスクで表示するかどうかを指定します。

選択プログラム

このコントロールからズームして起動するプログラムを指定します。

起動モード

[選択プログラム]特性で指定したプログラムの起動モードを指定します。

  • B=前置……[ズーム]イベントにより選択プログラムが実行されます。プログラム終了時、項目上にカーソルは残ったままになります。

  • P=自動……コントロールにカーソルが置かれた時点で自動的に選択プログラムが実行されます。

  • A=後置……[ズーム]イベントにより選択プログラムが実行されます。プログラム終了時、次の項目上にカーソルは移動します。


ブラウザコントロール特性 エディット 表示

表示

表示フォーム > ブラウザコントロール特性 > エディットコントロール特性

デフォルトクラス | この特性には、HTMLコントロールが表示されるクラス名を指定します。特性値は式で指定します。式が再評価されると、HTMLコントロールのクラスは新しい値で設定されます。HTMLページに定義されたクラス名を表す文字列を返す式を指定してください。 スタイルの名前と値は、HTMLファイルにあらかじめ<style>...</style>または、CSSで定義しておく必要があります。
マウスオーバクラス | コントロールの上にマウスカーソルが置かれた時の表示に利用されるスタイルのクラスを式で指定します。クラスの値は、[デフォルトクラス]と同じように設定します。 マウスカーソルがコントロールから離れた時には、デフォルトクラスに戻ります。
マウスダウンクラス | マウスカーソルをコントロールに置いて、ボタンをクリックした時の表示に利用されるスタイルのクラスを式で指定します。クラスの値は、[デフォルトクラス]と同じように設定します。 マウスカーソルがコントロール上にあり、クリックボタンを離した時には、マウスオーバークラスに戻ります。マウスカーソルをコントロール上から外した時には、デフォルトクラスに戻ります。
デフォルトスタイル | コントロールの属性を設定するスタイルを定義します。 ここからズームすると、[スタイル]テーブルが表示されます。[名前]カラムには「プロパティ名」を、[式]カラムにはプロパティに設定する値を式で指定します。式はスタイルの値に置き換えられます。式が再計算されると、新しい値で定義されます。 例：[名前]カラムを「color」。[式]カラムに式で「green」と設定した場合、該当するコントロールは実行時に緑色で表示されます。
マウスオーバスタイル | コントロールの上にマウスカーソルが置かれた時の表示に利用されるスタイルを定義します。スタイルの値は、[デフォルトスタイル]と同じように設定します。 マウスカーソルがコントロールから離れた時には、デフォルトスタイルに戻ります。
マウスダウンスタイル | マウスカーソルをコントロールに置いて、ボタンをクリックした時の表示に利用されるスタイルを定義します。スタイルの値は、[デフォルトスタイル]と同じように設定します。 マウスカーソルがコントロール上にあり、クリックボタンを離した時には、マウスオーバースタイルに戻ります。マウスカーソルをコントロール上から外した時には、デフォルトスタイルに戻ります。
色 | コントロールの色を表す式番号を指定します。
ヘルプ画面 | コントロールと関連付けるヘルプ画面を指定します。
ツールチップ | コントロールと関連付けるツールチップを指定します。
自動ヘルプ | コントロールと関連付ける自動ヘルプを指定します。
可視 | コントロールを表示するかどうか表す式番号を指定します。
有効 | 表示されているコントロールを有効にするかどうか表す式番号を指定します。


ブラウザコントロール特性 エディット パーク

パーク

表示フォーム > ブラウザコントロール特性 > エディットコントロール特性

タブ順序 | 実行時にTabキーによってカーソルが移動する順序が表示されます。修正はできません。
パーキング可 | 実行時にユーザがコントロールにパークできるかどうかを指定します。
タブで移動 | このコントロールに対して、Tabキーによってカーソルをパークできるようにするかどうかを指定します。「No」に指定されると、マウスクリックのみ有効になります。


ブラウザコントロール特性 エディット 位置とサイズ

位置とサイズ

表示フォーム > ブラウザコントロール特性 > エディットコントロール特性

左辺位置 | コントロールの左辺位置を表す式番号を指定します。
上辺位置 | コントロールの上辺位置を表す式番号を指定します。
幅 | コントロールの幅を表す式番号を指定します。
高さ | コントロールの高さを表す式番号を指定します。


ブラウザコントロール特性 ラジオボタン

ラジオボタンコントロール特性

表示フォーム > ブラウザコントロール特性

ブラウザフォームの[ラジオボタン]コントロールには以下の特性があります。

モデル |  |
入力 | 表示 | パーク
選択プログラム 起動モード | デフォルトクラス マウスオーバクラス マウスダウンクラス デフォルトスタイル マウスオーバスタイル マウスダウンスタイル 選択プログラム 起動モード 色 ヘルプ画面 ツールチップ 自動ヘルプ 可視 有効 | タブ順序 パーキング可 タブで移動


ブラウザコントロール特性 ラジオボタン 入力

入力

表示フォーム > ブラウザコントロール特性 > ラジオボタンコントロール特性

選択プログラム

このコントロールからズームして起動するプログラムを指定します。

起動モード

[選択プログラム]特性で指定したプログラムの起動モードを指定します。

  • B=前置……[ズーム]イベントにより選択プログラムが実行されます。プログラム終了時、項目上にカーソルは残ったままになります。

  • P=自動……コントロールにカーソルが置かれた時点で自動的に選択プログラムが実行されます。

  • A=後置……[ズーム]イベントにより選択プログラムが実行されます。プログラム終了時、次の項目上にカーソルは移動します。


ブラウザコントロール特性 ラジオボタン 表示

表示

表示フォーム > ブラウザコントロール特性 > ラジオボタンコントロール特性

デフォルトクラス | この特性には、HTMLコントロールが表示されるクラス名を指定します。特性値は式で指定します。式が再評価されると、HTMLコントロールのクラスは新しい値で設定されます。HTMLページに定義されたクラス名を表す文字列を返す式を指定してください。
マウスオーバクラス | この特性には、マウスカーソルがコントロール上に置かれた場合にHTMLコントロールが表示されるクラス名を指定します。特性値はデフォルトクラスと同じように指定します。マウスカーソルがコントロールから移動すると、[デフォルトクラス]特性で定義された内容に戻ります。
マウスダウンクラス | この特性は、マウスカーソルがコントロール上に置かれた状態で左のマウスボタンが押された場合に、HTMLコントロールが表示されるクラス名を指定します。特性値はデフォルトクラスと同じように指定します。 マウスの左ボタンがリリースされると、カーソルがコントロール上に残っている場合は、マウスオーバクラスと同じクラスになり、マウスが移動するとデフォルトクラスと同じになります。
デフォルトスタイル | この特性は、HTMLコントロールの属性を設定するスタイルリストを定義するものです。ここには、各スタイル毎に名前とその属性値を定義する必要があります。値は式で指定します。スタイル値を表す文字列を戻す式を指定します。式が再評価されると、HTMLコントロールのスタイルは新しい値で設定されます。
マウスオーバスタイル | この特性は、マウスカーソルがコントロール上に置かれた場合にHTMLコントロールが表示されるスタイル値を指定します。スタイルの値はデフォルトスタイルのように設定されます。マウスカーソルがコントロールから移動すると、[デフォルトスタイル]特性で定義された内容に戻ります。
マウスダウンスタイル | この特性は、マウスカーソルがコントロール上に置かれた状態で左のマウスボタンが押された場合に、HTMLコントロールが表示されるスタイル値を指定します。特性値はデフォルトスタイルと同じように指定します。 マウスの左ボタンがリリースされると、カーソルがコントロール上に残っている場合は、マウスオーバスタイルと同じスタイルになり、マウスが移動するとデフォルトスタイルと同じになります。
色 | コントロールの色を表す式番号を指定します。
ヘルプ画面 | コントロールと関連付けるヘルプ画面を指定します。
ツールチップ | コントロールと関連付けるツールチップを指定します。
自動ヘルプ | コントロールと関連付ける自動ヘルプを指定します。
可視 | コントロールを表示するかどうか表す式番号を指定します。
有効 | 表示されているコントロールを有効にするかどうか表す式番号を指定します。


ブラウザコントロール特性 ラジオボタン パーク

パーク

表示フォーム > ブラウザコントロール特性 > ラジオボタンコントロール特性

タブ順序 | 実行時にTabキーによってカーソルが移動する順序が表示されます。修正はできません。
パーキング可 | 実行時にユーザがコントロールにパークできるかどうかを指定します。
タブで移動 | このコントロールに対して、Tabキーによってカーソルをパークできるようにするかどうかを指定します。「No」に指定されると、マウスクリックのみ有効になります。


ブラウザコントロール特性 ハイパーテキスト

ハイパーテキストコントロール特性

表示フォーム > ブラウザコントロール特性

ブラウザフォームの[ハイパーテキスト]コントロールには以下の特性があります。

モデル |  |
詳細 | 表示 | 位置とサイズ
書式 型 | デフォルトクラス マウスオーバクラス マウスダウンクラス デフォルトスタイル マウスオーバスタイル マウスダウンスタイル 色 ツールチップ 可視 有効 | 左辺位置 上辺位置 幅 高さ
入力 | パーク |
ハイパーリンク | タブ順序 パーキング可 タブで移動 |


ブラウザコントロール特性 ハイパーテキスト 詳細

詳細

表示フォーム > ブラウザコントロール特性 > ハイパーテキストコントロール特性

書式 | コントロールの書式を指定します。データの入力や表示に影響します。
型 | コントロールに定義した項目の型が表示されます。項目を式で指定されている場合、[型]特性を設定することができます。


ブラウザコントロール特性 ハイパーテキスト 入力

入力

表示フォーム > ブラウザコントロール特性 > ハイパーテキストコントロール特性

ハイパーリンク

[ハイパーリンク]ダイアログを使用して、リンク先の情報を指定します。

  • ハイパーリンクタイプ……「Magicプログラム」か「URL」のどちらかを指定します。

  • プロジェクト名……「Magicプログラム」の場合、Magicプロジェクトを指定します。

  • 公開名……「Magicプログラム」の場合、公開プログラム名を指定します。

  • パラメータ……「Magicプログラム」の場合、プログラムに渡すパラメータを指定します。

  • URL……「URL」の場合、URLアドレスを指定します。

  • 式……「URL」の場合、動的に変更できるようにURLアドレスを式で指定します。

  • 出力先フレーム……表示するフレームの名前を指定します。


ブラウザコントロール特性 ハイパーテキスト 表示

表示

表示フォーム > ブラウザコントロール特性 > ハイパーテキストコントロール特性

デフォルトクラス | この特性には、HTMLコントロールが表示されるクラス名を指定します。特性値は式で指定します。式が再評価されると、HTMLコントロールのクラスは新しい値で設定されます。HTMLページに定義されたクラス名を表す文字列を返す式を指定してください。
マウスオーバクラス | この特性には、マウスカーソルがコントロール上に置かれた場合にHTMLコントロールが表示されるクラス名を指定します。特性値はデフォルトクラスと同じように指定します。マウスカーソルがコントロールから移動すると、[デフォルトクラス]特性で定義された内容に戻ります。
マウスダウンクラス | この特性は、マウスカーソルがコントロール上に置かれた状態で左のマウスボタンが押された場合に、HTMLコントロールが表示されるクラス名を指定します。特性値はデフォルトクラスと同じように指定します。 マウスの左ボタンがリリースされると、カーソルがコントロール上に残っている場合は、マウスオーバクラスと同じクラスになり、マウスが移動するとデフォルトクラスと同じになります。
デフォルトスタイル | この特性は、HTMLコントロールの属性を設定するスタイルリストを定義するものです。ここには、各スタイル毎に名前とその属性値を定義する必要があります。値は式で指定します。スタイル値を表す文字列を戻す式を指定します。式が再評価されると、HTMLコントロールのスタイルは新しい値で設定されます。
マウスオーバスタイル | この特性は、マウスカーソルがコントロール上に置かれた場合にHTMLコントロールが表示されるスタイル値を指定します。スタイルの値はデフォルトスタイルのように設定されます。マウスカーソルがコントロールから移動すると、[デフォルトスタイル]特性で定義された内容に戻ります。
マウスダウンスタイル | この特性は、マウスカーソルがコントロール上に置かれた状態で左のマウスボタンが押された場合に、HTMLコントロールが表示されるスタイル値を指定します。特性値はデフォルトスタイルと同じように指定します。 マウスの左ボタンがリリースされると、カーソルがコントロール上に残っている場合は、マウスオーバスタイルと同じスタイルになり、マウスが移動するとデフォルトスタイルと同じになります。
色 | コントロールの色を表す式番号を指定します。
ツールチップ | コントロールと関連付けるツールチップを指定します。
可視 | コントロールを表示するかどうか表す式番号を指定します。
有効 | 表示されているコントロールを有効にするかどうか表す式番号を指定します。


ブラウザコントロール特性 ハイパーテキスト パーク

パーク

表示フォーム > ブラウザコントロール特性 > ハイパーテキストコントロール特性

タブ順序 | 実行時にTabキーによってカーソルが移動する順序が表示されます。修正はできません。
パーキング可 | 実行時にユーザがコントロールにパークできるかどうかを指定します。
タブで移動 | このコントロールに対して、Tabキーによってカーソルをパークできるようにするかどうかを指定します。「No」に指定されると、マウスクリックのみ有効になります。


ブラウザコントロール特性 ハイパーテキスト 位置とサイズ

位置とサイズ

表示フォーム > ブラウザコントロール特性 > ハイパーテキストコントロール特性

左辺位置 | コントロールの左辺位置を表す式番号を指定します。
上辺位置 | コントロールの上辺位置を表す式番号を指定します。
幅 | コントロールの幅を表す式番号を指定します。
高さ | コントロールの高さを表す式番号を指定します。


ブラウザコントロール特性 プッシュボタン

プッシュボタンコントロール特性

表示フォーム > ブラウザコントロール特性

ブラウザフォームの[プッシュボタン]コントロールには以下の特性があります。

モデル |  |
詳細 | 表示 | 位置とサイズ
書式 型 実行イベント | デフォルトクラス マウスオーバクラス マウスダウンクラス デフォルトスタイル マウスオーバスタイル マウスダウンスタイル ヘルプ画面 ツールチップ 自動ヘルプ 可視 有効 | 左辺位置 上辺位置 幅 高さ
入力 | パーク |
選択プログラム 起動モード | タブ順序 パーキング可 タブで移動 |


ブラウザコントロール特性 プッシュボタン詳細

詳細

表示フォーム > ブラウザコントロール特性 > プッシュボタンコントロール特性

書式 | コントロールの書式を指定します。データの入力や表示に影響します。
型 | コントロールに定義した項目の型が表示されます。項目を式で指定されている場合、[型]特性を設定することができます。
実行イベント | プッシュボタンを押下した時に実行するイベントを指定します。


ブラウザコントロール特性 プッシュボタン入力

入力

表示フォーム > ブラウザコントロール特性 > プッシュボタンコントロール特性

選択プログラム

このコントロールからズームして起動するプログラムを指定します。

起動モード

[選択プログラム]特性で指定したプログラムの起動モードを指定します。

  • B=前置……[ズーム]イベントにより選択プログラムが実行されます。プログラム終了時、項目上にカーソルは残ったままになります。

  • P=自動……コントロールにカーソルが置かれた時点で自動的に選択プログラムが実行されます。

  • A=後置……[ズーム]イベントにより選択プログラムが実行されます。プログラム終了時、次の項目上にカーソルは移動します。


ブラウザコントロール特性 プッシュボタン表示

表示

表示フォーム > ブラウザコントロール特性 > プッシュボタンコントロール特性

デフォルトクラス | この特性には、HTMLコントロールが表示されるクラス名を指定します。特性値は式で指定します。式が再評価されると、HTMLコントロールのクラスは新しい値で設定されます。HTMLページに定義されたクラス名を表す文字列を返す式を指定してください。
マウスオーバクラス | この特性には、マウスカーソルがコントロール上に置かれた場合にHTMLコントロールが表示されるクラス名を指定します。特性値はデフォルトクラスと同じように指定します。マウスカーソルがコントロールから移動すると、[デフォルトクラス]特性で定義された内容に戻ります。
マウスダウンクラス | この特性は、マウスカーソルがコントロール上に置かれた状態で左のマウスボタンが押された場合に、HTMLコントロールが表示されるクラス名を指定します。特性値はデフォルトクラスと同じように指定します。 マウスの左ボタンがリリースされると、カーソルがコントロール上に残っている場合は、マウスオーバクラスと同じクラスになり、マウスが移動するとデフォルトクラスと同じになります。
デフォルトスタイル | この特性は、HTMLコントロールの属性を設定するスタイルリストを定義するものです。ここには、各スタイル毎に名前とその属性値を定義する必要があります。値は式で指定します。スタイル値を表す文字列を戻す式を指定します。式が再評価されると、HTMLコントロールのスタイルは新しい値で設定されます。
マウスオーバスタイル | この特性は、マウスカーソルがコントロール上に置かれた場合にHTMLコントロールが表示されるスタイル値を指定します。スタイルの値はデフォルトスタイルのように設定されます。マウスカーソルがコントロールから移動すると、[デフォルトスタイル]特性で定義された内容に戻ります。
マウスダウンスタイル | この特性は、マウスカーソルがコントロール上に置かれた状態で左のマウスボタンが押された場合に、HTMLコントロールが表示されるスタイル値を指定します。特性値はデフォルトスタイルと同じように指定します。 マウスの左ボタンがリリースされると、カーソルがコントロール上に残っている場合は、マウスオーバスタイルと同じスタイルになり、マウスが移動するとデフォルトスタイルと同じになります。
ヘルプ画面 | コントロールと関連付けるヘルプ画面を指定します。
ツールチップ | コントロールと関連付けるツールチップを指定します。
自動ヘルプ | コントロールと関連付ける自動ヘルプを指定します。
可視 | コントロールを表示するかどうか表す式番号を指定します。
有効 | 表示されているコントロールを有効にするかどうか表す式番号を指定します。


ブラウザコントロール特性 プッシュボタン パーク

パーク

表示フォーム > ブラウザコントロール特性 > プッシュボタンコントロール特性

タブ順序 | 実行時にTabキーによってカーソルが移動する順序が表示されます。修正はできません。
パーキング可 | 実行時にユーザがコントロールにパークできるかどうかを指定します。
タブで移動 | このコントロールに対して、Tabキーによってカーソルをパークできるようにするかどうかを指定します。「No」に指定されると、マウスクリックのみ有効になります。


ブラウザコントロール特性 プッシュボタン位置とサイズ

位置とサイズ

表示フォーム > ブラウザコントロール特性 > プッシュボタンコントロール特性

左辺位置 | コントロールの左辺位置を表す式番号を指定します。
上辺位置 | コントロールの上辺位置を表す式番号を指定します。
幅 | コントロールの幅を表す式番号を指定します。
高さ | コントロールの高さを表す式番号を指定します。


ブラウザコントロール特性 チェックボックス

チェックボックスコントロール特性

表示フォーム > ブラウザコントロール特性

ブラウザフォームの[チェックボックス]コントロールには以下の特性があります。

モデル |  |
詳細 | 表示 | 位置とサイズ
型 | デフォルトクラス マウスオーバクラス マウスダウンクラス デフォルトスタイル マウスオーバスタイル マウスダウンスタイル 色 ヘルプ画面 ツールチップ 自動ヘルプ 可視 有効 | 左辺位置 上辺位置 幅 高さ
入力 | パーク |
修正許可 選択プログラム 起動モード | タブ順序 パーキング可 タブで移動 |


ブラウザコントロール特性 チェックボックス 詳細

詳細

表示フォーム > ブラウザコントロール特性 > チェックボックスコントロール特性

型

コントロールに定義した項目の型が表示されます。項目を式で指定されている場合、[型]特性を設定することができます。


ブラウザコントロール特性 チェックボックス 入力

入力

表示フォーム > ブラウザコントロール特性 > チェックボックスコントロール特性

修正許可

エンドユーザがコントロールの値を変更できるかどうかを表す式番号を指定します。

選択プログラム

このコントロールからズームして起動するプログラムを指定します。

起動モード

[選択プログラム]特性で指定したプログラムの起動モードを指定します。

  • B=前置……[ズーム]イベントにより選択プログラムが実行されます。プログラム終了時、項目上にカーソルは残ったままになります。

  • P=自動……コントロールにカーソルが置かれた時点で自動的に選択プログラムが実行されます。

  • A=後置……[ズーム]イベントにより選択プログラムが実行されます。プログラム終了時、次の項目上にカーソルは移動します。


ブラウザコントロール特性 チェックボックス 表示

表示

表示フォーム > ブラウザコントロール特性 > チェックボックスコントロール特性

デフォルトクラス | この特性には、HTMLコントロールが表示されるクラス名を指定します。特性値は式で指定します。式が再評価されると、HTMLコントロールのクラスは新しい値で設定されます。HTMLページに定義されたクラス名を表す文字列を返す式を指定してください。
マウスオーバクラス | この特性には、マウスカーソルがコントロール上に置かれた場合にHTMLコントロールが表示されるクラス名を指定します。特性値はデフォルトクラスと同じように指定します。マウスカーソルがコントロールから移動すると、[デフォルトクラス]特性で定義された内容に戻ります。
マウスダウンクラス | この特性は、マウスカーソルがコントロール上に置かれた状態で左のマウスボタンが押された場合に、HTMLコントロールが表示されるクラス名を指定します。特性値はデフォルトクラスと同じように指定します。 マウスの左ボタンがリリースされると、カーソルがコントロール上に残っている場合は、マウスオーバクラスと同じクラスになり、マウスが移動するとデフォルトクラスと同じになります。
デフォルトスタイル | この特性は、HTMLコントロールの属性を設定するスタイルリストを定義するものです。ここには、各スタイル毎に名前とその属性値を定義する必要があります。値は式で指定します。スタイル値を表す文字列を戻す式を指定します。式が再評価されると、HTMLコントロールのスタイルは新しい値で設定されます。
マウスオーバスタイル | この特性は、マウスカーソルがコントロール上に置かれた場合にHTMLコントロールが表示されるスタイル値を指定します。スタイルの値はデフォルトスタイルのように設定されます。マウスカーソルがコントロールから移動すると、[デフォルトスタイル]特性で定義された内容に戻ります。
マウスダウンスタイル | この特性は、マウスカーソルがコントロール上に置かれた状態で左のマウスボタンが押された場合に、HTMLコントロールが表示されるスタイル値を指定します。特性値はデフォルトスタイルと同じように指定します。 マウスの左ボタンがリリースされると、カーソルがコントロール上に残っている場合は、マウスオーバスタイルと同じスタイルになり、マウスが移動するとデフォルトスタイルと同じになります。
色 | コントロールの色を表す式番号を指定します。
ヘルプ画面 | コントロールと関連付けるヘルプ画面を指定します。
ツールチップ | コントロールと関連付けるツールチップを指定します。
自動ヘルプ | コントロールと関連付ける自動ヘルプを指定します。
可視 | コントロールを表示するかどうか表す式番号を指定します。
有効 | 表示されているコントロールを有効にするかどうか表す式番号を指定します。


ブラウザコントロール特性 チェックボックス パーク

パーク

表示フォーム > ブラウザコントロール特性 > チェックボックスコントロール特性

タブ順序 | 実行時にTabキーによってカーソルが移動する順序が表示されます。修正はできません。
パーキング可 | 実行時にユーザがコントロールにパークできるかどうかを指定します。
タブで移動 | このコントロールに対して、Tabキーによってカーソルをパークできるようにするかどうかを指定します。「No」に指定されると、マウスクリックのみ有効になります。


ブラウザコントロール特性 チェックボックス 位置とサイズ

位置とサイズ

表示フォーム > ブラウザコントロール特性 > チェックボックスコントロール特性

左辺位置 | コントロールの左辺位置を表す式番号を指定します。
上辺位置 | コントロールの上辺位置を表す式番号を指定します。
幅 | コントロールの幅を表す式番号を指定します。
高さ | コントロールの高さを表す式番号を指定します。


ブラウザコントロール特性 リストボックス

リストボックスコントロール特性

表示フォーム > ブラウザコントロール特性

ブラウザフォームの[リストボックス]コントロールには以下の特性があります。

モデル |  |
詳細 | 表示 | 位置とサイズ
ソーステーブル 表示項目 リンク項目 インデックス 範囲 選択項目リスト 選択表示リスト 型 | デフォルトクラス マウスオーバクラス マウスダウンクラス デフォルトスタイル マウスオーバスタイル マウスダウンスタイル 表示行数 色 ヘルプ画面 ツールチップ 自動ヘルプ 可視 有効 | 左辺位置 上辺位置 幅 高さ
入力 | パーク |
修正許可 選択プログラム 起動モード | タブ順序 パーキング可 タブで移動 |


ブラウザコントロール特性 リストボックス 詳細

詳細

表示フォーム > ブラウザコントロール特性 > リストボックスコントロール特性

ソーステーブル

選択肢としてコントロールに関連付けるデータソースを[データ]リポジトリから指定します。

表示項目

[ソーステーブル]特性にデータソースが定義されている場合に有効です。リストボックスの選択肢として画面に表示されるデータソースのカラムを指定します。

リンク項目

[ソーステーブル]特性にデータソースが定義されている場合に有効です。リストボックスから選択した場合に、実際に格納されるデータソースのカラムを指定します。

インデックス

[ソーステーブル]特性にデータソースが定義されている場合に有効です。リストボックスに表示される順番を決める、データソースのインデックスを指定します。

範囲

[ソーステーブル]特性にデータソースが定義されている場合に有効です。リストボックスに表示されるレコードの範囲を定義します。

選択項目リスト

コントロールから選択することで返される値の範囲を指定します。選択値は、カンマ（,）区切りで複数指定できます。[特性が定義されていない場合は、この値で表示されます。[特性が定義されている場合は、この値は表示されません。[データ]への継承指定を行うことで、項目の[範囲]値を継承することができます。

選択表示リスト

コントロールに表示させる選択肢を指定します。表示のみで入力値にはなりません。選択値は、カンマ（,）区切りで複数指定できます。この特性が指定されている場合は、[選択項目リスト]特性に同じ順番で選択値が指定されている必要があります。

例えば、[選択項目リスト]に「1,2,3」と指定されていて、[表示項目リスト]に、「赤, 青, 緑」と指定されている場合。フォーム上の表示は、「赤, 青, 緑」になりますが、実際に入力される値は、「1,2,3」のどちらかになります。

型

コントロールに定義した項目の型が表示されます。項目を式で指定されている場合、[型]特性を設定することができます。


ブラウザコントロール特性 リストボックス 入力

入力

表示フォーム > ブラウザコントロール特性 > リストボックスコントロール特性

修正許可

エンドユーザがコントロールの値を変更できるかどうかを表す式番号指定します。

選択プログラム

このコントロールからズームして起動するプログラムを指定します。

起動モード

[選択プログラム]特性で指定したプログラムの起動モードを指定します。

  • B=前置……[ズーム]イベントにより選択プログラムが実行されます。プログラム終了時、項目上にカーソルは残ったままになります。

  • P=自動……コントロールにカーソルが置かれた時点で自動的に選択プログラムが実行されます。

  • A=後置……[ズーム]イベントにより選択プログラムが実行されます。プログラム終了時、次の項目上にカーソルは移動します。


ブラウザコントロール特性 リストボックス 表示

表示

表示フォーム > ブラウザコントロール特性 > リストボックスコントロール特性

デフォルトクラス | この特性には、HTMLコントロールが表示されるクラス名を指定します。特性値は式で指定します。式が再評価されると、HTMLコントロールのクラスは新しい値で設定されます。HTMLページに定義されたクラス名を表す文字列を返す式を指定してください。
マウスオーバクラス | この特性には、マウスカーソルがコントロール上に置かれた場合にHTMLコントロールが表示されるクラス名を指定します。特性値はデフォルトクラスと同じように指定します。マウスカーソルがコントロールから移動すると、[デフォルトクラス]特性で定義された内容に戻ります。
マウスダウンクラス | この特性は、マウスカーソルがコントロール上に置かれた状態で左のマウスボタンが押された場合に、HTMLコントロールが表示されるクラス名を指定します。特性値はデフォルトクラスと同じように指定します。 マウスの左ボタンがリリースされると、カーソルがコントロール上に残っている場合は、マウスオーバクラスと同じクラスになり、マウスが移動するとデフォルトクラスと同じになります。
デフォルトスタイル | この特性は、HTMLコントロールの属性を設定するスタイルリストを定義するものです。ここには、各スタイル毎に名前とその属性値を定義する必要があります。値は式で指定します。スタイル値を表す文字列を戻す式を指定します。式が再評価されると、HTMLコントロールのスタイルは新しい値で設定されます。
マウスオーバスタイル | この特性は、マウスカーソルがコントロール上に置かれた場合にHTMLコントロールが表示されるスタイル値を指定します。スタイルの値はデフォルトスタイルのように設定されます。マウスカーソルがコントロールから移動すると、[デフォルトスタイル]特性で定義された内容に戻ります。
マウスダウンスタイル | この特性は、マウスカーソルがコントロール上に置かれた状態で左のマウスボタンが押された場合に、HTMLコントロールが表示されるスタイル値を指定します。特性値はデフォルトスタイルと同じように指定します。 マウスの左ボタンがリリースされると、カーソルがコントロール上に残っている場合は、マウスオーバスタイルと同じスタイルになり、マウスが移動するとデフォルトスタイルと同じになります。
表示行数 | リストボックスに表示される行数を表す式番号を指定します。
色 | コントロールの色を表す式番号を指定します。
ヘルプ画面 | コントロールと関連付けるヘルプ画面を指定します。
自動ヘルプ | コントロールと関連付ける自動ヘルプを指定します。
可視 | コントロールを表示するかどうか表す式番号を指定します。
有効 | 表示されているコントロールを有効にするかどうか表す式番号を指定します。


ブラウザコントロール特性 リストボックス パーク

パーク

表示フォーム > ブラウザコントロール特性 > リストボックスコントロール特性

タブ順序 | 実行時にTabキーによってカーソルが移動する順序が表示されます。修正はできません。
パーキング可 | 実行時にユーザがコントロールにパークできるかどうかを指定します。
タブで移動 | このコントロールに対して、Tabキーによってカーソルをパークできるようにするかどうかを指定します。「No」に指定されると、マウスクリックのみ有効になります。


ブラウザコントロール特性 リストボックス 位置とサイズ

位置とサイズ

表示フォーム > ブラウザコントロール特性 > リストボックスコントロール特性

左辺位置 | コントロールの左辺位置を表す式番号を指定します。
上辺位置 | コントロールの上辺位置を表す式番号を指定します。
幅 | コントロールの幅を表す式番号を指定します。
高さ | コントロールの高さを表す式番号を指定します。


ブラウザコントロール特性 テーブル

テーブルコントロール特性

表示フォーム > ブラウザコントロール特性

ブラウザフォームの[テーブル]コントロールには以下の特性があります。

モデル |
詳細 | 表示
ハイライト表示 明細行 | デフォルトクラス デフォルトスタイル 色 ツールチップ 可視
 | 位置とサイズ
 | 左辺位置 上辺位置


ブラウザコントロール特性 テーブル 詳細

詳細

表示フォーム > ブラウザコントロール特性 > テーブルコントロール特性

ハイライト表示 | テーブルのカーソルのある行を強調表示するかどうかを指定します。
明細行 | [テーブル]コントロールに表示する行数を指定します。[フォーム特性]ダイアログの[繰返し行数]特性において指定された行数分を繰り返すテーブルの行を指定します。


ブラウザコントロール特性 テーブル 表示

表示

表示フォーム > ブラウザコントロール特性 > テーブルコントロール特性

デフォルトクラス | この特性には、HTMLコントロールが表示されるクラス名を指定します。特性値は式で指定します。式が再評価されると、HTMLコントロールのクラスは新しい値で設定されます。HTMLページに定義されたクラス名を表す文字列を返す式を指定してください。
デフォルトスタイル | この特性は、HTMLコントロールの属性を設定するスタイルリストを定義するものです。ここには、各スタイル毎に名前とその属性値を定義する必要があります。値は式で指定します。スタイル値を表す文字列を戻す式を指定します。式が再評価されると、HTMLコントロールのスタイルは新しい値で設定されます。
色 | コントロールの色を表す式番号を指定します。
ツールチップ | コントロールと関連付けるツールチップを指定します。
可視 | コントロールを表示するかどうか表す式番号を指定します。


ブラウザコントロール特性 テーブル 位置とサイズ

位置とサイズ

表示フォーム > ブラウザコントロール特性 > テーブルコントロール特性

左辺位置 | コントロールの左辺位置を表す式番号を指定します。
上辺位置 | コントロールの上辺位置を表す式番号を指定します。


ブラウザコントロール特性 コンボボックス

コンボボックスコントロール特性

表示フォーム > ブラウザコントロール特性

ブラウザフォームの[コンボボックス]コントロールには以下の特性があります。

モデル |  |
詳細 | 表示 | 位置とサイズ
ソーステーブル 表示項目 リンク項目 インデックス 範囲 選択項目リスト 選択表示リスト 型 | デフォルトクラス デフォルトスタイル 色 ヘルプ画面 自動ヘルプ 可視 有効 | 左辺位置 上辺位置 幅 高さ
入力 | パーク |
修正許可 選択プログラム 起動モード | タブ順序 パーキング可 タブで移動 |


ブラウザコントロール特性 コンボボックス 詳細

詳細

表示フォーム > ブラウザコントロール特性 > コンボボックスコントロール特性

ソーステーブル | 選択肢としてコントロールに関連付けるデータソースを[データ]リポジトリから指定します。
表示項目 | [ソーステーブル]特性にデータソースが定義されている場合に有効です。選択肢として画面に表示されるデータソースのカラムを指定します。
リンク項目 | [ソーステーブル]特性にデータソースが定義されている場合に有効です。コンボボックスから選択した場合に、実際に格納されるデータソースのカラムを指定します。
インデックス | [ソーステーブル]特性にデータソースが定義されている場合に有効です。コンボボックスに表示される順番を決める、データソースのインデックスを指定します。
範囲 | [ソーステーブル]特性にデータソースが定義されている場合に有効です。コンボボックスに表示されるレコードの範囲を定義します。
選択項目リスト | コントロールから選択することで返される値の範囲を指定します。選択値は、カンマ（,）区切りで複数指定できます。[特性が定義されていない場合は、この値で表示されます。[特性が定義されている場合は、この値は表示されません。[データ]への継承指定を行うことで、項目の[範囲]値を継承することができます。
選択表示リスト | コントロールに表示させる選択肢を指定します。表示のみで入力値にはなりません。選択値は、カンマ（,）区切りで複数指定できます。この特性が指定されている場合は、[選択項目リスト]特性に同じ順番で選択値が指定されている必要があります。
型 | コントロールに定義した項目の型が表示されます。項目を式で指定されている場合、[型]特性を設定することができます。


ブラウザコントロール特性 コンボボックス 入力

入力

表示フォーム > ブラウザコントロール特性 > コンボボックスコントロール特性

修正許可

エンドユーザがコントロールの値を変更できるかどうかを表す式番号指定します。

選択プログラム

このコントロールからズームして起動するプログラムを指定します。

起動モード

[選択プログラム]特性で指定したプログラムの起動モードを指定します。

  • B=前置……[ズーム]イベントにより選択プログラムが実行されます。プログラム終了時、項目上にカーソルは残ったままになります。

  • P=自動……コントロールにカーソルが置かれた時点で自動的に選択プログラムが実行されます。

  • A=後置……[ズーム]イベントにより選択プログラムが実行されます。プログラム終了時、次の項目上にカーソルは移動します。


ブラウザコントロール特性 コンボボックス 表示

表示

表示フォーム > ブラウザコントロール特性 > コンボボックスコントロール特性

デフォルトクラス | この特性には、HTMLコントロールが表示されるクラス名を指定します。特性値は式で指定します。式が再評価されると、HTMLコントロールのクラスは新しい値で設定されます。HTMLページに定義されたクラス名を表す文字列を返す式を指定してください。
デフォルトスタイル | この特性は、HTMLコントロールの属性を設定するスタイルリストを定義するものです。ここには、各スタイル毎に名前とその属性値を定義する必要があります。値は式で指定します。スタイル値を表す文字列を戻す式を指定します。式が再評価されると、HTMLコントロールのスタイルは新しい値で設定されます。
色 | コントロールの色を表す式番号を指定します。
ヘルプ画面 | コントロールと関連付けるヘルプ画面を指定します。
自動ヘルプ | コントロールと関連付ける自動ヘルプを指定します。
可視 | コントロールを表示するかどうか表す式番号を指定します。
有効 | 表示されているコントロールを有効にするかどうか表す式番号を指定します。


ブラウザコントロール特性 コンボボックス パーク

パーク

表示フォーム > ブラウザコントロール特性 > コンボボックスコントロール特性

タブ順序 | 実行時にTabキーによってカーソルが移動する順序が表示されます。修正はできません。
パーキング可 | 実行時にユーザがコントロールにパークできるかどうかを指定します。
タブで移動 | このコントロールに対して、Tabキーによってカーソルをパークできるようにするかどうかを指定します。「No」に指定されると、マウスクリックのみ有効になります。


ブラウザコントロール特性 コンボボックス 位置とサイズ

位置とサイズ

表示フォーム > ブラウザコントロール特性 > コンボボックスコントロール特性

左辺位置 | コントロールの左辺位置を表す式番号を指定します。
上辺位置 | コントロールの上辺位置を表す式番号を指定します。
幅 | コントロールの幅を表す式番号を指定します。
高さ | コントロールの高さを表す式番号を指定します。


ブラウザコントロール特性 イメージ

イメージコントロール特性

表示フォーム > ブラウザコントロール特性

ブラウザフォームの[イメージ]コントロールには以下の特性があります。

モデル |
詳細 | 表示
型 | デフォルトクラス マウスオーバクラス マウスダウンクラス デフォルトスタイル マウスオーバスタイル マウスダウンスタイル ツールチップ 可視
 | 位置とサイズ
 | 左辺位置 上辺位置 幅 高さ


ブラウザコントロール特性 イメージ 詳細

詳細

表示フォーム > ブラウザコントロール特性 > イメージコントロール特性

型

コントロールに定義した項目の型が表示されます。項目を式で指定されている場合、[型]特性を設定することができます。


ブラウザコントロール特性 イメージ 表示

表示

表示フォーム > ブラウザコントロール特性 > イメージコントロール特性

デフォルトクラス | この特性には、HTMLコントロールが表示されるクラス名を指定します。特性値は式で指定します。式が再評価されると、HTMLコントロールのクラスは新しい値で設定されます。HTMLページに定義されたクラス名を表す文字列を返す式を指定してください。
マウスオーバクラス | この特性には、マウスカーソルがコントロール上に置かれた場合にHTMLコントロールが表示されるクラス名を指定します。特性値はデフォルトクラスと同じように指定します。マウスカーソルがコントロールから移動すると、[デフォルトクラス]特性で定義された内容に戻ります。
マウスダウンクラス | この特性は、マウスカーソルがコントロール上に置かれた状態で左のマウスボタンが押された場合に、HTMLコントロールが表示されるクラス名を指定します。特性値はデフォルトクラスと同じように指定します。 マウスの左ボタンがリリースされると、カーソルがコントロール上に残っている場合は、マウスオーバクラスと同じクラスになり、マウスが移動するとデフォルトクラスと同じになります。
デフォルトスタイル | この特性は、HTMLコントロールの属性を設定するスタイルリストを定義するものです。ここには、各スタイル毎に名前とその属性値を定義する必要があります。値は式で指定します。スタイル値を表す文字列を戻す式を指定します。式が再評価されると、HTMLコントロールのスタイルは新しい値で設定されます。
マウスオーバスタイル | この特性は、マウスカーソルがコントロール上に置かれた場合にHTMLコントロールが表示されるスタイル値を指定します。スタイルの値はデフォルトスタイルのように設定されます。マウスカーソルがコントロールから移動すると、[デフォルトスタイル]特性で定義された内容に戻ります。
マウスダウンスタイル | この特性は、マウスカーソルがコントロール上に置かれた状態で左のマウスボタンが押された場合に、HTMLコントロールが表示されるスタイル値を指定します。特性値はデフォルトスタイルと同じように指定します。 マウスの左ボタンがリリースされると、カーソルがコントロール上に残っている場合は、マウスオーバスタイルと同じスタイルになり、マウスが移動するとデフォルトスタイルと同じになります。
ツールチップ | コントロールと関連付けるツールチップを指定します。
可視 | コントロールを表示するかどうか表す式番号を指定します。


ブラウザコントロール特性 イメージ 位置とサイズ

位置とサイズ

表示フォーム > ブラウザコントロール特性 > イメージコントロール特性

左辺位置 | コントロールの左辺位置を表す式番号を指定します。
上辺位置 | コントロールの上辺位置を表す式番号を指定します。
幅 | コントロールの幅を表す式番号を指定します。
高さ | コントロールの高さを表す式番号を指定します。


ブラウザコントロール特性 IFRAME

IFRAMEコントロール特性

表示フォーム > ブラウザコントロール特性

[IFRAME]コントロールは、ブラウザフォーム独自のコントロールです。Internet ExplorerのIFRAME機能を使用して既存のHTMLページ内にフレームを埋め込みます。IFRAMEは、HTMLドキュメントや他の外部オブジェクトの表示のためにインラインまたはフローティング形式で定義することができるコントロールです。

IFRAMEを使用すると、フレームを、サブシステムのスレッドとして実行しているプログラムに対する宛先フレームとし動作する、メニューシステムプログラムのHTMLフォーム内にフレームを設定することができます。

IFRAMEがメインのフレームとして実行している場合、メニュープログラムのHTMLページはメニューオプションとヘッダを表示します。これは、定義が必要なフレームセット構造を追加する必要がないことを意味しています。

最初のリクエスト

IFRAME要素を使用して実行する場合、アプリケーションを起動させるための最初のリクエストは、メニューシステムプログラムで実行されるURLになります。このプログラムの実行結果として作成されるHTMLページは、サブシステムスレッドに対してフレームを提供しています。

[IFRAME]コントロールには以下の特性があります。

モデル |
表示 | 位置とサイズ
ツールチップ 可視 デフォルトクラス デフォルトスタイル | 左辺位置 上辺位置 幅 高さ


ブラウザコントロール特性 IFRAME 表示

表示

表示フォーム > ブラウザコントロール特性 > IFRAMEコントロール特性

ツールチップ | コントロールと関連付けるツールチップを指定します。
可視 | コントロールを表示するかどうか表す式番号を指定します。
デフォルトクラス | この特性には、HTMLコントロールが表示されるクラス名を指定します。特性値は式で指定します。式が再評価されると、HTMLコントロールのクラスは新しい値で設定されます。HTMLページに定義されたクラス名を表す文字列を返す式を指定してください。
デフォルトスタイル | この特性は、HTMLコントロールの属性を設定するスタイルリストを定義するものです。ここには、各スタイル毎に名前とその属性値を定義する必要があります。値は式で指定します。スタイル値を表す文字列を戻す式を指定します。式が再評価されると、HTMLコントロールのスタイルは新しい値で設定されます。


ブラウザコントロール特性 IFRAME 位置とサイズ

位置とサイズ

表示フォーム > ブラウザコントロール特性 > IFRAMEコントロール特性

左辺位置 | コントロールの左辺位置を表す式番号を指定します。
上辺位置 | コントロールの上辺位置を表す式番号を指定します。
幅 | コントロールの幅を表す式番号を指定します。
高さ | コントロールの高さを表す式番号を指定します。


ブラウザコントロール特性 その他

その他コントロール特性

表示フォーム > ブラウザコントロール特性

[その他]（Opaque）コントロールは、ブラウザフォーム独自のコントロールです。Magicがサポートしない他のHTML要素として定義できるコントロールです。

[その他]コントロールには以下の特性があります。

モデル |
表示 | 位置とサイズ
ツールチップ 可視 有効 デフォルトクラス マウスオーバクラス マウスダウンクラス デフォルトスタイル マウスダウンスタイル マウスオーバスタイル | 左辺位置 上辺位置 幅 高さ


ブラウザコントロール特性 その他 表示

表示

表示フォーム > ブラウザコントロール特性 > その他コントロール特性

ツールチップ | コントロールと関連付けるツールチップを指定します。
可視 | コントロールを表示するかどうか表す式番号を指定します。
有効 | コントロールを有効にするかどうか表す式番号を指定します。
デフォルトクラス | この特性には、HTMLコントロールが表示されるクラス名を指定します。特性値は式で指定します。式が再評価されると、HTMLコントロールのクラスは新しい値で設定されます。HTMLページに定義されたクラス名を表す文字列を返す式を指定してください。
マウスオーバクラス | この特性には、マウスカーソルがコントロール上に置かれた場合にHTMLコントロールが表示されるクラス名を指定します。特性値はデフォルトクラスと同じように指定します。マウスカーソルがコントロールから移動すると、[デフォルトクラス]特性で定義された内容に戻ります。
マウスダウンクラス | この特性は、マウスカーソルがコントロール上に置かれた状態で左のマウスボタンが押された場合に、HTMLコントロールが表示されるクラス名を指定します。特性値はデフォルトクラスと同じように指定します。 マウスの左ボタンがリリースされると、カーソルがコントロール上に残っている場合は、マウスオーバクラスと同じクラスになり、マウスが移動するとデフォルトクラスと同じになります。
デフォルトスタイル | この特性は、HTMLコントロールの属性を設定するスタイルリストを定義するものです。ここには、各スタイル毎に名前とその属性値を定義する必要があります。値は式で指定します。スタイル値を表す文字列を戻す式を指定します。式が再評価されると、HTMLコントロールのスタイルは新しい値で設定されます。
マウスオーバスタイル | この特性は、マウスカーソルがコントロール上に置かれた場合にHTMLコントロールが表示されるスタイル値を指定します。スタイルの値はデフォルトスタイルのように設定されます。マウスカーソルがコントロールから移動すると、[デフォルトスタイル]特性で定義された内容に戻ります。
マウスダウンスタイル | この特性は、マウスカーソルがコントロール上に置かれた状態で左のマウスボタンが押された場合に、HTMLコントロールが表示されるスタイル値を指定します。特性値はデフォルトスタイルと同じように指定します。 マウスの左ボタンがリリースされると、カーソルがコントロール上に残っている場合は、マウスオーバスタイルと同じスタイルになり、マウスが移動するとデフォルトスタイルと同じになります。


ブラウザコントロール特性 その他 位置とサイズ

位置とサイズ

表示フォーム > ブラウザコントロール特性 > その他コントロール特性

左辺位置 | コントロールの左辺位置を表す式番号を指定します。
上辺位置 | コントロールの上辺位置を表す式番号を指定します。
幅 | コントロールの幅を表す式番号を指定します。
高さ | コントロールの高さを表す式番号を指定します。


ブラウザコントロール特性一覧

表示フォーム > ブラウザコントロール特性

以下のリンクをクリックすることで、ブラウザコントロ－ルの特性の説明が表示されます。

表示行数

型

色

デフォルトクラス

デフォルトスタイル

明細行

表示項目

有効

範囲

書式

高さ

自動ヘルプ

ヘルプ画面

インデックス

選択項目リスト

選択表示リスト

左辺位置

リンク項目

修正許可

マウスダウンクラス

マウスダウンスタイル

マウスオーバクラス

マウスオーバスタイル

複数行編集

必須入力

パスワード編集

実行イベント

ハイライト表示

選択モード

ソーステーブル

起動モード

選択プログラム

ツールチップ

上辺位置

可視

幅


ブラウザコントロール特性 一覧 インデックス

インデックス

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

[ソーステーブル]特性にデータソースが定義されている場合に有効です。リストボックスに表示される順番を決める、データソースのインデックスを[インデックス]テーブルから選択します。


ブラウザコントロール特性 一覧 ソーステーブル

ソーステーブル

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

選択肢としてコントロールに関連付けるデータソースを[データ]リポジトリから指定します。


ブラウザコントロール特性 一覧 タブで移動

タブで移動 （デフォルト：Yes）

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

この特性は、タブの移動によってコントロールにカーソルを移すことができるかどうかを指定します。

  • Yes ……タブの移動によってコントロールにカーソルを移すことができます。

  • No ……タブの移動でこのコントロールにはパークされず、マウスクリックでしかカーソルをコントロールに置くことができなくなります。

この特性は、[データ]特性に項目が割り当てられている場合のみ有効です。

参照

パーキング可

タブ順序


ブラウザコントロール特性 一覧 タブ順序

タブ順序

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

この特性には4桁までのタブID（数値）が表示されます。タブIDで指定された順番にTabキーによってカーソルが移動します。入力することはできません。

参照

パーキング可

タブで移動


ブラウザコントロール特性 一覧 ツールチップ

ツールチップ

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

コントロールと関連付けるツールチップを指定します。


ブラウザコントロール特性 一覧 デフォルトクラス

デフォルトクラス

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

この特性には、HTMLコントロールが表示されるクラス名を指定します。特性値は式で指定します。式が再評価されると、HTMLコントロールのクラスは新しい値で設定されます。HTMLページに定義されたクラス名を表す文字列を返す式を指定してください。

スタイルの名前と値は、HTMLファイルにあらかじめ<style>...</style>または、CSSで定義しておく必要があります。

例：HTMLファイルに以下のようにスタイル定義されているものとします。

<STYLE TYPE="text/css">
<!--
P.color1 { color: red; }
.color2 { color: blue; }
.color3 { color: yellow; }
.size { font-size: 10pt; }
-->
</STYLE>

「color1」を指定した場合、コントロールは赤色で表示されます。

「size color2」を指定した場合、コントロールは10ポイントの青色で表示されます。


ブラウザコントロール特性 一覧 デフォルトスタイル

デフォルトスタイル

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

コントロールの属性を設定するスタイルを定義します。
ここからズームすると、[スタイル]テーブルが表示されます。[名前]カラムには「プロパティ名」を、[式]カラムにはプロパティに設定する値を式で指定します。式はスタイルの値に置き換えられます。式が再計算されると、新しい値で定義されます。

例：[スタイル]テーブルに以下のように提議された場合、該当するコントロールは背景色が栗色、文字色が白色で表示されます。

名前 | 式
background | 'maroon'
color | 'white'


ブラウザコントロール特性 一覧 ハイライト表示

ハイライト表示

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

テーブルのカーソルのある行を強調表示するかどうかを指定します。


ブラウザコントロール特性 一覧 ハイパーリンク

ハイパーリンク

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

プログラムを呼び出すために以下の特性項目を[ハイパーリンク]ダイアログボックスから定義することができます。

  • ハイパーリンクタイプ …… ｢Magicプログラム｣または｢URL｣のどちらかを選択します。

  • Magicアプリケーション …… [ハイパーリンクタイプ]で｢Magicプログラム｣ を選択した場合に表示されます。実行させるMagicプアプリケーションファイルを指定します。

  • 公開名 …… [ハイパーリンクタイプ]で｢Magicプログラム｣ を選択した場合に表示されます。実行するプログラムの公開名を入力します。

  • パラメータ …… [ハイパーリンクタイプ]で｢Magicプログラム｣ を選択した場合に表示されます。起動プログラムに渡すムパラメータを指定します。

  • URL …… [ハイパーリンクタイプ]で｢URL｣ を選択した場合に表示されます。呼び出すURLを入力します。

  • 式 …… [ハイパーリンクタイプ]で｢URL｣ を選択した場合に表示されます。実行時にURLとして評価される式を指定します。

  • 出力先フレーム …… [ハイパーリンクタイプ]で｢URL｣ を選択した場合に表示されます。出力先のフレームの名前を入力します。


ブラウザコントロール特性 一覧 パーキング可

パーキング可

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

カーソルがコントロール上でパークできるかどうかを指定します。

「Yes」が設定された場合、タブ移動やマウスクリックによってこのコントロールにパークすることができます。式によって動的に指定することもできます。

この特性は、[データ]特性に項目が割り当てられている場合のみ有効です。

参照

タブ順序

タブで移動


ブラウザコントロール特性 一覧 パスワードエディット

パスワードエディット (デフォルト：No)

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

コントロールへのアクセスをパスワード保護するかどうかを指定します。

  • No …… パスワード保護を行いません。

  • Yes …… パスワード保護を行います。


ブラウザコントロール特性 一覧 ヘルプ画面

ヘルプ画面

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

コントロールと関連付けるヘルプ画面を指定します。


ブラウザコントロール特性 一覧 マウスオーバクラス

マウスオーバクラス

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

コントロール上にマウスカーソルが置かれた時の表示に利用されるクラスを式で指定します。

マウスカーソルがコントロールから離れた時には、デフォルトクラスに戻ります。


ブラウザコントロール特性 一覧 マウスオーバスタイル

マウスオーバスタイル

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

コントロールの上にマウスカーソルが置かれた時の表示に利用されるスタイルを定義します。

スタイルの値は、デフォルトスタイルと同じように設定されます。マウスカーソルがコントロールから離れた時には、デフォルトスタイルに戻ります。

スタイルの名前は、JavaScript で利用可能で、HTMLの構文として正しいものでなければなりません。


ブラウザコントロール特性 一覧 マウスダウンクラス

マウスダウンクラス

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

マウスカーソルをコントロールに置いて、ボタンをクリックした時の表示に利用されるクラスを式で指定します。

マウスカーソルがコントロール上にあり、クリックボタンを離した時には、マウスオーバークラスに戻ります。マウスカーソルをコントロール上から外した時には、デフォルトクラスに戻ります。


ブラウザコントロール特性 一覧 マウスダウンスタイル

マウスダウンスタイル

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

マウスカーソルをコントロールに置いて、ボタンをクリックした時の表示に利用されるスタイルを定義します。スタイルの値は、デフォルトスタイルと同じように設定されます。

マウスカーソルがコントロール上にあり、クリックボタンを離した時には、マウスオーバースタイルに戻ります。マウスカーソルをコントロール上から外した時には、デフォルトスタイルに戻ります。

スタイルの名前は、JavaScript で利用可能で、HTMLの構文として正しいものでなければなりません。


ブラウザコントロール特性 一覧 モデル

モデル

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

継承が解除されている特性の継承をし直したり、モデルの全ての特性の継承を解除することができます。さらに、別のモデルを選択することもできます。

他のモデルを選択する場合にクリックします。

デフォルトモデルの特性を表示する場合にクリックします。

モデル特性の継承を解除する場合にクリックします。

モデル特性を継承する場合にクリックします。


ブラウザコントロール特性 一覧 リンク項目

リンク項目

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

[ソーステーブル]特性にデータソースが定義されている場合に有効です。チョイスコントロールから選択した場合に、実際に格納されるデータソースのカラムを指定します。


ブラウザコントロール特性 一覧 可視

可視

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

コントロールを表示するかどうか表す式番号を指定します。


ブラウザコントロール特性 一覧 起動モード

起動モード

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

[選択プログラム]特性で指定したプログラムの起動モードを指定します。

  • B=前置……[ズーム]イベントにより選択プログラムが実行されます。プログラム終了時、項目上にカーソルは残ったままになります。

  • P=自動……コントロールにカーソルが置かれた時点で自動的に選択プログラムが実行されます。

  • A=後置……[ズーム]イベントにより選択プログラムが実行されます。プログラム終了時、次の項目上にカーソルは移動


ブラウザコントロール特性 一覧 型

型

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

項目の型を選択します。


ブラウザコントロール特性 一覧 高さ

高さ

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

コントロールの高さを表す式番号を指定します。


ブラウザコントロール特性 一覧 左辺位置

左辺位置

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

コントロールの左辺位置を表す式番号を指定します。


ブラウザコントロール特性 一覧 自動ヘルプ

自動ヘルプ

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

コントロールと関連付ける自動ヘルプを指定します。


ブラウザコントロール特性 一覧 実行イベント

実行イベント

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

プッシュボタンを押下した時に実行するイベントを指定します。


ブラウザコントロール特性 一覧 修正許可

修正許可

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

エンドユーザがコントロールの値を変更できるかどうかを表す式番号を指定します。


ブラウザコントロール特性 一覧 書式

書式

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

コントロールの書式を指定します。


ブラウザコントロール特性 一覧 上辺位置

上辺位置

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

コントロールの上辺位置を表す式番号を指定します。


ブラウザコントロール特性 一覧 色

色

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

コントロールの色を表す式番号を指定します。


ブラウザコントロール特性 一覧 選択プログラム

選択プログラム

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

このコントロールからズームして起動するプログラムを指定します。


ブラウザコントロール特性 一覧 選択項目リスト

選択項目リスト

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

チョイスコントロールから選択することで返される値の範囲を指定します。選択値は、カンマ（,）区切りで複数指定できます。[特性が定義されていない場合は、この値で表示されます。[選択表示リスト]特性が定義されている場合は、この値は表示されません。[データ]への継承指定を行うことで、項目の[範囲]値を継承することができます。


ブラウザコントロール特性 一覧 選択表示リスト

選択表示リスト

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

コントロールに表示させる選択肢を指定します。表示のみで入力値にはなりません。選択値は、カンマ（,）区切りで複数指定できます。

この特性が指定されている場合は、[選択項目リスト]特性に同じ順番で選択値が指定されている必要があります。

例えば、[選択項目リスト]に「1,2,3」と指定されていて、[表示項目リスト]に、「赤, 青, 緑」と指定されている場合。フォーム上の表示は、「赤, 青, 緑」になりますが、実際に入力される値は、「1,2,3」のどちらかになります。


ブラウザコントロール特性 一覧 範囲

範囲

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

[ソーステーブル]特性にデータソースが定義されている場合に有効です。チョイスコントロールに表示されるレコードの範囲を定義します。


ブラウザコントロール特性 一覧 必須入力

必須入力

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

エンドユーザが必ずコントロールに値を入力しなければならないかどうかを表す式番号指定します。


ブラウザコントロール特性 一覧 表示行数

表示行数

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

[リストボックス]コントロ－ルに表示される行数を表す式番号を指定します。


ブラウザコントロール特性 一覧 表示項目

表示項目

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

[ソーステーブル]特性にデータソースが定義されている場合に有効です。チョイスコントロールの選択肢として画面に表示されるデータソースのカラムを指定します。


ブラウザコントロール特性 一覧 幅

幅

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

コントロールの幅を表す式番号を指定します。


ブラウザコントロール特性 一覧 複数行編集

複数行編集

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

エンドユーザが複数行のテキストを入力できるかどうかを指定します。


ブラウザコントロール特性 一覧 明細行

明細行

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

[テーブル]コントロールに表示する明細行の行数を指定します。[フォーム特性]ダイアログの[繰返し行数]特性において指定された行数分を繰り返すテーブルの行を指定します。


ブラウザコントロール特性 一覧 有効

有効

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

表示されているコントロールを有効にするかどうか表す式番号を指定します。


GUI表示フォーム

表示フォーム >

GUI表示フォームは、オンラインタスクでのユーザ対話画面やバッチタスクでの処理経過を表示する画面で使用します。

参照

項目パレット

コマンドパレット

基本色パレット

GUI表示フォーム特性

コントロールの親子リンク


GUI表示フォーム 項目パレット

項目パレット

表示フォーム > GUI表示フォーム

[項目]パレットは、[コントロール]パレットと同じ領域を共有します。2 つのパレットを切り替えるには、パレットの下部にあるタブをクリックします。

現在のタスクおよび上位タスクに定義されている項目が一覧表示されます。一覧内の各エントリは、データ項目ID（文字）、カラム名、実項目、変数、パラメータを表示します。

タスクの境界には、タスク名を含むセパレータが表示されます。

コントロールと同じように、項目をクリックして選択し、フォームにドロップできます。項目を[テーブル]コントロールへドロップした場合、項目名がカラムのタイトルとして設定されます。

この時項目名の[エディット]コントロールが一緒にドロップされます。項目の選択をキャンセルするには、Escキーを押します。

[項目]パレットの端をドラッグすることで、サイズを自由に調整できます。変更されたパレットのサイズは保持されます。項目番号のカラムサイズは変わりません、またオリジナルのサイズより小さくできません。[項目]パレットサイズを変更してもコントロールパレット自体に影響を与えません。[コントロール]パレットの表示は左上に接した状態で変更されません。


GUI表示フォーム コマンドパレット

コマンドパレット

表示フォーム > GUI表示フォーム

[コマンド]パレットや[描画]メニュー、またはコンテキストメニューを使用して、フォームに配置したコントロールを編集することができます。[コマンド]パレットには、整列、サイズ変更、コントロールのZオーダ変更のためのツールが含まれています。

[GUIコマンド]パレットのアイコンをクリックすると簡単な説明が表示されます。

[描画]メニュー内の[リンク]サブメニューには、[テーブルへのリンク調整]オプションがあります。これは、テーブルに項目をリンクした場合の「親子リンクの作成」の動作を定義することができます。このオプションを有効にすると、項目は移動しテーブル内に配置されます。無効にすると、項目は現在の位置に留まります。（ただし、テーブルにリンクされた状態になります。）

[テーブルへの配置]オプションは、選択されたフォームに配置済みのコントロールを[テーブル]コントロールにリンクします。リンクされたテーブルは、[テーブル]コントロールに配置されます。この動作は、コントロールを選択し、[テーブルへのリンク調整]オプションが有効な状態で[テーブル]コントロールに対して「親子リンクの作成」を行うことと同じになります。

注意：

取り消しバッファに保存される操作の最大数は10です。

特性の編集の間に式が削除された場合、取り消されたコントロールは使用不可になり、バッファは消去されます。

参照

コントロールのZオーダ

GUI表示コントロールパレット


GUI表示フォーム コマンドパレット Zオーダ

コントロールのZオーダ

表示フォーム > GUI表示フォーム > コマンドパレット

フォーム中のコントロールのZ オーダは、コントロール表示上の上下関係を表します。Zオーダは、複数のコントロールの位置を重ねて定義する時に重要な意味を持ちます。

コントロールは、Z オーダに従って2 つのグループに分類されます。

第1 グループ | 第2 グループ
プッシュボタン | イメージ
チェックボックス | タブ
ラジオボタン | スタティック
スライダ | エディット
コンボボックス | ライン
リストボックス | グループ
OLE | テーブル
RTF |
ツリー |
サブフォーム |
ブラウザ |

Z オーダは、同じグループ内のコントロール間で変更できますが、別のグループ間ではできません。（第２グループのコントロールを、第１ グループのコントロールの上に置くことはできません。）

第１グループと第２グループのコントロール間のZ オーダの配列は、自動的に行われます。例えば、エディットをプッシュボタンの上に重ねると、Z オーダによってコントロールが配列されて、プッシュボタンが上に位置するようになります。

コントロールのZ オーダをフォームに表示するには、メニューで[描画／表示順／Zオーダ表示]を選択するかコマンドパレットの[Z オーダ表示]ボタンを押します。また、変更するには、変更しようとするコントロールを選択し、コンテキストメニューの[並べ換え]またはコマンドパレットのZ オーダ変更のためのボタンを使用します。


GUI表示フォーム 基本色パレット

基本色パレット

表示フォーム > GUI表示フォーム

[基本色]パレットは[コマンド]パレットと同じ領域を共有しています。2つのパレットを切り替えるには、パレットの下部にあるタブをクリックします。

パレットには、[アプリケーション用基本色]定義ファイルに定義された色の一部が一覧で表示されます。どの色も[色]ボタンで確認できます。[色]ボタンをクリックすると、選択したコントロールにその色が設定されます。

テキストやコントロールの背景の色を変更するには、フォームコントロールを選択して希望する色の組み合わせをクリックします。

注意：

[基本色]テーブルにて背景色を透過指定した場合、[フォーム]エディタ上の色パレットでは黒の背景色で表示されます。


GUI表示フォーム 特性

GUI表示形式フォーム特性

表示フォーム > GUI表示フォーム

[フォーム特性]シートでフォームの外観と動作を指定します。[編集/特性]を選択するか、[フォーム]エディタ内のエントリにカーソルを合わせてAlt+Enterキーを押下して、[フォーム特性]シートにアクセスします。

クラス値が0より大きいフォームの場合、[フォーム]エディタの同じクラスを持つフォームが同時に表示されます。あるフォームで次のフォーム特性を変更した場合、Magicは自動的に同じクラスのフォーム特性を新しい設定値に変更します。

[寸法単位]、[垂直精度]、[水平精度]、[グリッド間隔（X）]、[グリッド間隔（Y）]、[フォント]

GUIフォームの特性は、以下のセクション毎に分けられています。

モデル

詳細

SDI

入力

表示

分割

位置とサイズ


GUI表示フォーム 特性 モデル

モデル

表示フォーム > GUI表示フォーム > GUI表示フォーム特性
表示フォーム > リッチクライアントフォーム > リッチクライアント表示フォーム特性
 出力フォーム > フレームセットフォーム > フレームセットフォーム特性

継承が解除されている特性の継承をし直したり、モデルの全ての特性の継承を解除することができます。さらに、別のモデルを選択することもできます。

他のモデルを選択する場合にクリックします。

デフォルトモデルの特性を表示する場合にクリックします。

モデル特性の継承を解除する場合にクリックします。

モデル特性を継承する場合にクリックします。


GUI表示フォーム 特性 詳細

詳細

表示フォーム > GUI表示フォーム > GUI表示フォーム特性

[GUI表示フォーム]特性の[詳細]セクションには以下の特性があります。

ウィンドウタイプ

ウィンドウのタイプを設定します。この設定は、ウィンドウの外観や動作に影響します。

ウィンドウの一覧に表示

タスクが[ウィンドウの一覧]に表示されるかどうかを指定します。

寸法単位

フォームの寸法単位を指定します。寸法単位に基づいてフォームのサイズと位置が決定されます。また、フォームの解像度も決定されます。以下のオプションがあります。

  • D=ダイアログ（文字）

  • C=センチメートル

  • I=インチ

垂直精度

各単位内の垂直解像度を指定します。値が高いほど細かい解像度が得られます。

水平精度

各単位内の水平解像度を指定します。値が高いほど細かい解像度が得られます。

グリッド表示

[フォーム]エディタにグリッドを表示するかどうかを指定します。

  • Yes……フォームのレイアウトにグリッドが表示されます。

  • No……フォームのレイアウトにグリッドが表示されません。

グリッド間隔（X）

グリッド間隔（Y）

フォームのグリッド間の距離を指定します。

フォーム名

[フォーム]エディタの[名前]カラムの値であり、フォームのタイトルバーに表示されます。実行時に評価されるフォームのタイトルを表す式を選択することもできます。

フォーム状態ID

ここには、各ユーザごとにフォームの利用状態を保持する識別ID(255文字の文字列)を設定します。フォーム状態情報は、指定されたIDに基づいて各フォームごとに保持されます。これによって、ユーザ毎のフォームの情報を維持することができます。フォームの情報は、アプリケーションがクローズされた場合のみ保存されます。開発エンジンによって実行されている場合は、この情報は保持されません。

コンテキストメニュー

[メニュー一覧]からメニューを選択することで、フォーム用のコンテキストメニューを指定することができます。式で指定することで、実行時に動的にメニュー番号を指定することができます。

ドロップ許可

同一Magicアプリケーションの他のコントロールや、同一PC上の他のMagic以外のアプリケーションからフォームに対してデータのドロップを可能にします。フォーム上にドロップすると、ドロップイベントがトリガされます。

参照

[GUI出力フォーム]特性の[詳細]セクション


GUI表示フォーム 特性 詳細 ウィンドウタイプ

ウィンドウタイプ （デフォルト：D=デフォルト）

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 詳細

ウィンドウのタイプを設定します。この設定は、ウィンドウの外観や動作に影響します。

設定可能な値は以下の通りです。

値

オプション

1

D=デフォルト ……

  • フォームがMDIコンテナまたは他のMDIの子ウィンドウから直接オープンされた場合、ウィンドウは通常のMDI子ウィンドウとしてオープンされます。

  • フォームがフローティングウィンドウからオープンされた場合、フローティングウィンドウとしてオープンされます。

  • フォームがモーダルウィンドウ（または、アプリケーションモーダル）からオープンされた場合、モーダルウィンドウとしてオープンされます。

  • フォームがSDIウィンドウからオープンされた場合、フローティングウィンドウとしてオープンされます。

  • フォームが子ウィンドウまたは分割子ウィンドウとしてオープンされた場合子ウィンドウの[ウィンドウタイプ]の設定に基づいてオープンされます。

2

S=SDI …… ウィンドウは、新しいコンテキスト内で新しいSDIウィンドウとしてオープンされます。「SDIサポート」を参照してください。

3

C=子ウィンドウ …… 子ウィンドウとしてオープンされます。

4

P=分割子ウィンドウ …… 親タスクのフォームが分割フォームの場合、分割子ウィンドウとしてオープンされます。そうでない場合は、通常のMDI子ウィンドウとしてオープンされます。

5

F=フローティング ……フォームが、フローティングウィンドウとしてオープンされます。このウィンドウは、Magicメインウィンドウの外に移動することができます。フローティングウィンドウからデフォルトウィンドウをオープンした場合、フローティングでオープンされます。

6

M=モーダル ……フォームが、モーダルウィンドウとしてオープンされます。このウィンドウを閉じない限り他のウィンドウにフォーカスを移すことができません。モーダルウィンドウからデフォルトウィンドウやフローティングウィンドウをオープンした場合、モーダルでオープンされます。

7

A=アプリケーションモーダル …… ウィンドウはダイアログウィンドウとしてオープンされます。アプリケーションモーダルからフローティングウィンドウやモーダルウィンドウをオープンした場合、アプリケーションモーダルとしてオープンされます。アプリケーションモーダルは、オープン中はMagic処理の全てのコンテキスト内のタスクを停止させます。

8

T=ツール …… ウィンドウはツールウィンドウとしてオープンされます。ツールウィンドウの主な特徴は、小さなウィンドウタイトルを表示することです。

9

I=MDI調整 …… タスクのウィンドウをMagic のMDI に合わせて表示します。この特性によって、フォームを最大表示させた時と同じサイズになります。

この特性を式で指定した場合、フォームがオープンされた時点で1回だけ評価されます。

このオプションを指定した場合、[最大化ボタン]と[最小化ボタン]の各特性は自動的に「No」になります。また、[開始時の位置]特性は、無効になります。

この特性は、式で指定することもできます。式の場合は、数値が返る式を指定します。式は、フォームがオープンされる時点で評価されます。式の戻り値の内容に基づいてウィンドウタイプが決定されます。値が、上記に該当しない場合、「デフォルト（1）」として評価されます。

ウィンドウタイプの矛盾

ウィンドウが、オープンされるコンテキストに対して適切ではないウィンドウタイプが設定されている場合、「デフォルト」と評価されます。

以下のような場合、矛盾が発生します。

  • フローティングウィンドウが、モーダルウィンドウからオープンされた場合 …… モーダルウィンドウとしてオープンされます。

  • MDIコンテナから「子ウィンドウ」に指定されたウィンドウが直接オープンされた場合 …… デフォルトウィンドウとして表示されます。

  • SDIが並行実行の指定がないタスクでオープンされた場合 …… デフォルトウィンドウとして表示されます。

MDI/SDI

SDIプログラムは、他のSDIでない並行実行プログラムを呼び出すことができません。このタイプのプログラムがSDIプログラムから呼び出された場合、新しいSDIプログラムとして実行されます。

フォームがモーダルウィンドウで、並列実行として設定されている場合、プログラムは新しいコンテキスト内でアプリケーションモーダルウィンドウとして実行されます。

ブラウザクライアント

ブラウザクライアントフォームは、「デフォルト」と「モーダルウィンドウ」のタイプのみサポートしています。

リッチクライアント

リッチクライアントフォームは、S=SDI、C=子ウィンドウ、F=フローティング、M=モーダル（デフォルト）、T=ツールをサポートします。

以下の例外を除いて、GUI表示フォームと同じように動作します。

  • GUI表示フォームと同じようにリッチクライアントフォームもそれ自身のコンテキストが必要です。2つのSDIウィンドウは同じコンテキスト内で共存することはできません。

  • モーダルタイプウィンドウが親（オーナ）を持っている場合、その親に対するモーダルとなり、コンテキスト内の上位に当たります。

  • 子タスクは、サブフォームとして動作するタスクでのみ使用されます。

リッチクライアントフォームは、モーダルを除きタスクバーが表示されるため、各タスクをクリックすることが可能になります。

注意：

[フォーム]エディタは、ウィンドウタイプによって表示を変えることはありません。


GUI表示フォーム 特性 詳細 ウィンドウメニューに表示

ウィンドウの一覧に表示

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 詳細

この特性によって、タスクが[ウィンドウの一覧]に表示させるかどうか、操作イベントでアクセスできるかどうかを指定します。

この特性は、GUI表示形式のフォームのみ有効です。また、[ウィンドウタイプ]特性が「デフォルト」、「SDI」、「フローティング」、「ツ－ル」または、「ＭＤＩ調整」の場合のみ有効です。

式が指定された場合、タスクが最初に読み込まれた時点で評価されます。

フォーム名が、ウィンドウ用に表示されます。

注意：

この特性は、タスクがサブフォームとして実行している場合は、無効になります。

参照

ウィンドウの一覧


GUI表示フォーム 特性 詳細 垂直精度

垂直精度

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 詳細

各寸法単位内の垂直解像度を指定します。値が高いほど細かい解像度が得られます。

この特性は、以下のフォームで有効です。

  • GUI表示フォーム

  • GUI出力フォーム

  • テキスト形式フォーム


GUI表示フォーム 特性 詳細 水平精度

水平精度

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 詳細

各寸法単位内の水平解像度を指定します。値が高いほど細かい解像度が得られます。

この特性は、以下のフォームで有効です。

  • GUI表示フォーム

  • GUI出力フォーム

  • テキスト形式フォーム


GUI表示フォーム 特性 詳細 グリッド表示

グリッド表示

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 詳細

[フォーム]エディタにグリッドを表示するかどうかを指定します。

  • Yes……フォームのレイアウトにグリッドが表示されます。

  • No……フォームのレイアウトにグリッドが表示されません。

この特性は、以下のフォームで有効です。

  • GUI表示フォーム

  • GUI出力フォーム

  • テキスト形式フォーム


GUI表示フォーム 特性 詳細 グリッド間隔

グリッド間隔 X/Y

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 詳細

フォームのグリッド間の水平（X）／垂直（Y）方向の距離を指定します。

この特性は、以下のフォームで有効です。

  • GUI表示フォーム

  • GUI出力フォーム

  • テキスト形式フォーム


GUI表示フォーム 特性 詳細 フォーム名

フォーム名

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 詳細

[フォーム]エディタの[名前]カラムの値であり、フォームのタイトルバーに表示されます。実行時に評価されるフォームのタイトルを表す式を選択することもできます。


GUI表示フォーム 特性 詳細 ユーザ状態ID

フォーム状態ID

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 詳細

ここには、各ユーザごとに（フォームの位置やサイズなどの）フォームの利用状態を保持する識別ID(255文字の文字列)を設定します。フォーム状態情報は、指定されたIDに基づいて各フォームごとに保持されます。これによって、ユーザ毎のフォームの情報を維持することができます。フォームの情報は、プログラムの終了時に保存されます。開発エンジンによって実行されている場合は、この情報は保持されません。

フォーム状態IDは、大文字小文字を区別しません。例えば、「ＡＢＣ」と「abc」は同じフォーム状態を表します。

フォームの状態情報は、FormStateClear関数によって初期化することができます。


GUI表示フォーム 特性 詳細 コンテキストメニュー

コンテキストメニュー

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 詳細

[メニュー一覧]からメニューを選択することで、フォーム用のコンテキストメニューを指定することができます。式で指定することで、実行時に動的にメニュー番号を指定することができます。

フォーム上のコントロールに対して異なるコンテキストメニューを設定することもできます。

[コンテキストメニュー]特性から「プルダウンメニュー」を選択した場合も、コンテキストメニューとして表示されます。


GUI表示フォーム 特性 詳細 ドロップ許可

ドロップ許可

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 詳細

同一Magicアプリケーションの他のコントロールや、同一PC上の他のMagic以外のアプリケーションからフォームに対してデータのドロップを可能にします。フォーム上にドロップすると、[ドロップ]イベントがトリガされます。


GUI表示フォーム 特性 SDI

SDI

表示フォーム > GUI表示フォーム > GUI表示フォーム特性

[SDI]セクションは、SDIウィンドウとして表示される場合のみ有効です。これ以外の場合、[ウィンドウタイプ]特性の「SDI」の設定に基づいて表示されます。

[SDI]セクションには以下の特性があります。

プルダウンメニュー

SDIウィンドウが表示された場合に、表示されるメニューを指定することができます。

メニュー表示

SDIウィンドウを表示する際、プルダウンメニューを表示するかどうかを指定します。以下のオプションが指定可能です。

  • Yes ……[プルダウンメニュー]特性に有効なメニュー番号が設定されている場合、SDIコンテナにプルダウンメニューが表示されます。

  • No …… プルダウンメニューは表示されません。

  • 式 …… 論理値が返る式を指定します。式はタスクが最初に起動された時点でのみ評価され、再計算されません。

ツールバー表示

SDIウィンドウを表示する際、ツールバーを表示するかどうかを指定します。以下のオプションが指定可能です。

  • Yes ……[プルダウンメニュー]特性に有効なメニュー番号が設定されている場合、SDIコンテナにツールバーが表示されます。

  • No …… ツールバーは表示されません。

  • 式 …… 論理値が返る式を指定します。式はタスクが最初に起動された時点でのみ評価され、再計算されません。

ステータスバー表示

SDIウィンドウを表示する際、ツールバーを表示するかどうかを指定します。以下のオプションが指定可能です。

  • Yes ……SDIコンテナにステータスバーが表示されます。

  • No …… ステータスバーは表示されません。この場合、メッセージは表示されず、ログファイルやフローにのみ出力されます。

  • 式 …… 論理値が返る式を指定します。式はタスクが最初に起動された時点でのみ評価され、再計算されません。

開始モード

SDIウィンドウを最初にどのようにオープンするかを指定します。以下のオプションが指定可能です。

  • D=デフォルト ……フォームの[高さ]，[幅]、[左辺位置]、[上辺位置]の各特性に基づいて表示されます。

  • X=最大 …… SDIウィンドウは最大表示されます。[開始時の位置]特性は、無視されます。

  • N=最小 …… SDIウィンドウは最小表示されます。[開始時の位置]特性は、無視されます。


GUI表示フォーム 特性 SDI プルダウンメニュー

プルダウンメニュー (デフォルト値：0)

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > SDI

[プルダウンメニュー]特性には、SDIウィンドウが表示された場合に、表示されるメニューを指定することができます。

SDIコンテナは、それ自身のメニューシステムを持っています。

SDIプログラム用に表示されるメニューは、通常のプログラムと同じように表示されます。メインプログラムで定義されたメニューと、[タスク特性]で定義されたメニューをマージして表示されます。

唯一の違いは、フォームの[プルダウンメニュー]特性です。

この特性には、以下のオプションがあります。

  • この特性には、「9999」までの数値を指定できます。有効なメニュー番号のみ指定できます。存在しないメニュー番号が入力された場合、入力内容はリセットされます。この特性から、[メニュー一覧]にズームできます。

  • [検索]ボタン（ [image] ）をクリックすることで[メニュー一覧]にアクセスすることができます。メニューを選択すると、メニュー番号が設定されます。

  • 表示メニューの番号を返す式を指定することもできます。式は、タスクが最初に起動された時点で評価され、再計算はされません。

この特性が、有効なメニュー番号と評価された場合、メニューがSDIフレームに表示されます。メニュー番号が「0」か不当な番号の場合、メニューは表示されません。


GUI表示フォーム 特性 SDI メニュー表示

メニュー表示 （デフォルト値：Yes）

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > SDI

[メニュー表示]特性は、SDIウィンドウを表示する際、プルダウンメニューを表示するかどうかを指定します。

以下のオプションが指定可能です。

  • Yes ……[プルダウンメニュー]特性に有効なメニュー番号が設定されている場合、SDIコンテナにプルダウンメニューが表示されます。

  • No …… プルダウンメニューは表示されません。

  • 式 …… 論理値が返る式を指定します。式はタスクが最初に起動された時点でのみ評価され、再計算されません。


GUI表示フォーム 特性 SDI ツールバー表示

ツールバー表示 （デフォルト値：Yes）

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > SDI

SDIコンテナは、それ自身のツールバーを持っています。

ツールバーの表示は、[ツールバー表示]特性を使用することで制御できます。

この特性は、SDIウィンドウを表示する際、ツールバーを表示するかどうかを指定します。

以下のオプションが指定可能です。

  • Yes ……[プルダウンメニュー]特性に有効なメニュー番号が設定されている場合、SDIコンテナにツールバーが表示されます。

  • No …… ツールバーは表示されません。

  • 式 …… 論理値が返る式を指定します。式はタスクが最初に起動された時点でのみ評価され、再計算されません。


GUI表示フォーム 特性 SDI ステータスバー表示

ステータスバー表示 （デフォルト値：Yes）

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > SDI

SDIコンテナは、それ自身のステータスバーを持っています。

この特性は、SDIウィンドウを表示する際、ツールバーを表示するかどうかを指定します。

以下のオプションが指定可能です。

  • Yes ……SDIコンテナにステータスバーが表示されます。

  • No …… ステータスバーは表示されません。この場合、メッセージは表示されず、ログファイルやフローにのみ出力されます。

  • 式 …… 論理値が返る式を指定します。式はタスクが最初に起動された時点でのみ評価され、再計算されません。


GUI表示フォーム 特性 SDI 開始モード

開始モード （デフォルト値：D=デフォルト）

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > SDI

[開始モード]特性は、SDIウィンドウを最初にどのようにオープンするかを指定します。

以下のオプションが指定可能です。

  • D=デフォルト ……フォームの[高さ]，[幅]、[左辺位置]、[上辺位置]の各特性に基づいて表示されます。

  • X=最大 …… SDIウィンドウは最大表示されます。[開始時の位置]特性は、無視されます。

  • N=最小 …… SDIウィンドウは最小表示されます。[開始時の位置]特性は、無視されます。


GUI表示フォーム 特性 入力

入力

表示フォーム > GUI表示フォーム > GUI表示フォーム特性

[GUI表示フォーム]特性の[入力]セクションには以下の特性があります。

タイトルバー | GUIフォームにタイトルバーを表示するかどうかを指定します。タイトルバーがないと、エンドユーザはフォームを移動できません。また、[最小化]ボタンや[最大化]ボタンを表示できません。タイトルバーは、式を定義して指定することもできます。
システムメニュー | GUIフォームのタイトルバーの左側に[システムメニュー]ボタンを配置するかどうかを指定します。このボタンをクリックすると、Windowsの[システムメニュー]が表示されます。
最小化ボタン | GUIフォームの右上隅に[最小化]ボタンを配置するかどうかを指定します。
最大化ボタン | GUIフォームの右上隅に[最大化]ボタンを配置するかどうかを指定します。
パレット最適化 | 多くのグラフィックイメージを含むフォームでは、各イメージに異なるカラーパレットが使用されていることがあり、それらのカラーパレットの組み合わせによってフォーム内で適合しない解像度が生じることがあります。そのような場合、[パレット最適化]を「Yes」に設定して、選択したグラフィックイメージに標準色を与えるパレットが使用されるようにすることができます。
デフォルトボタン | フォームに配置された[プッシュボタン]コントロールの１つをデフォルトボタンとして定義します。


GUI表示フォーム 特性 入力 タイトルバー

タイトルバー (デフォルト:Yes)

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 入力

GUIフォームにタイトルバーを表示するかどうかを指定します。タイトルバーがないと、エンドユーザはフォームを移動できません。また、[最小化]ボタンや[最大化]ボタンを表示できません。タイトルバーは、[式]エディタで式を定義して指定することもできます。


GUI表示フォーム 特性 入力 システムメニュー

システムメニュー (デフォルト:Yes)

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 入力

GUIフォームのタイトルバーの左側に[システムメニュー]ボタンを配置するかどうかを指定します。このボタンをクリックすると、Windowsの[システムメニュー]が表示されます。


GUI表示フォーム 特性 入力 最小化ボタン

最小化ボタン (デフォルト:Yes)

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 入力

GUIフォームの右上隅に[最小化]ボタンを配置するかどうかを指定します。


GUI表示フォーム 特性 入力 最大化ボタン

最大化ボタン (デフォルト:Yes)

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 入力

GUIフォームの右上隅に[最大化]ボタンを配置するかどうかを指定します。


GUI表示フォーム 特性 入力 パレット最適化

パレット最適化 (デフォルト:Yes)

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 入力

多くのグラフィックイメージを含むフォームでは、各イメージに異なるカラーパレットが使用されていることがあり、それらのカラーパレットの組み合わせによってフォーム内で適合しない解像度が生じることがあります。そのような場合、[パレット最適化]を「Yes」に設定して、選択したグラフィックイメージに標準色を与えるパレットが使用されるようにすることができます。


GUI表示フォーム 特性 入力 デフォルトボタン

デフォルトボタン

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 入力

複数の[プッシュボタン]コントロールが配置されているフォームにおいて、ユーザがEnterキーを押下した場合、[OK]や[次へ]または[終了]などのような特定の１つのボタンに割り当てられたイベントを実行するような機能を持たせると便利な場合があります。

例えば、フォームがウィザード用に設計されている場合、Enterキーが押されたら、[次へ]のボタンを押下した場合と同じ動作になるようにした方がいいかもしれません。

この特性は、フォーム上に配置されたプッシュボタンのどれかを割り当てることで、上記の機能を持つデフォルトボタンとして使用することができます。式で指定することで、実行時に動的にコントロール名を指定することもできます。

有効化

実行中に、エンドユーザがEnterキーを押下すると、Magicは、[デフォルトボタン]特性に指定されたプッシュボタンに定義されたイベントを実行します。これによって、Enterキーを押下することで、特定のプッシュボタンをクリックしたように動作します。

デフォルトボタンの表示

デフォルトボタンと評価されたプッシュボタンは、周囲が1ピクセルの幅の黒い境界線で強調表示されます。

例外

[デフォルトボタン]特性の機能には以下のような制限があります。

  • エンドユーザが、[RTFエディット]コントロールか複数行編集の[エディット]コントロールでデータ入力中に、Enterキーを押下した場合は、無効になります。

  • [デフォルトボタン]特性に設定されたコントロール名が存在しないか、[プッシュボタン]コントロールでない場合は、無効になります。

  • [デフォルトボタン]特性に設定されたコントロール名がフォーム上に複数存在する場合、Zオーダで上位に定義されているコントロールが有効になります。

  • [タスク特性]で[選択テーブル]特性が「Yes」と評価された場合、[デフォルトボタン]特性が優先されます。

  • Enterキーを使用する[ActiveX]コントロールにパークしている場合は、[ActiveX]コントロールの動作が[デフォルトボタン]より優先されます。

  • 該当するプッシュボタンの[可視]特性や[有効]特性が「No」と評価された場合は、[デフォルトボタン]特性は無視されます。

注意：

テーブル選択プログラムに配置したプッシュボタンに[選択]イベントを割り当て、このボタンをデフォルトプッシュボタンに指定しても動作は変わりません。ただし、このボタン以外をデフォルトプッシュボタンに割り当てた場合、Enter キーでの選択ができなくなります。


GUI表示フォーム 特性 表示

表示

表示フォーム > GUI表示フォーム > GUI表示フォーム特性

[GUI表示フォーム]特性の[表示]セクションには以下の特性があります。

背景

タスクウィンドウの背景となるイメージファイル名を指定します。[式]エディタで式を定義して指定することもできます。ここからズームすることでファイルを開くダイアログが開き、イメージファイルを選択することができます。

参考： ファイルを開くダイアログでは、デフォルトでBMPファイルが選択可能です。ファイルタイプを変更することでこれ以外のタイプのイメージファイルを選択することができます。

背景スタイル

背景をフォームに合わせる方法を指定します。

フォント

フォームのフォントを指定します。[フォント]テーブルにズームしてフォントを選択できます。式で動的に指定することもできます。コントロールのフォントは、[コントロール特性]シートで定義します。コントロールのフォントが指定されていない場合、フォームのフォントが使用されます。

色

フォームの色を指定します。[基本色一覧]にズームして色を選択できます。[式]エディタにズームし、色番号を表す式を入力することによって動的に指定することもできます。

ヘルプ画面

フォームと関連付けるヘルプ画面を指定します。[ヘルプ一覧]にズームしてヘルプを選択できます。

境界スタイル

フォームの境界線のスタイルを指定します。

  • H=太線

  • T=細線

  • N=なし

参照

[GUI出力フォーム]特性の[表示]セクション


GUI表示フォーム 特性 表示 背景

背景

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 表示

タスクウィンドウの背景となるイメージファイル名を指定します。[式]エディタで式を定義して指定することもできます。

参照

透過性


GUI表示フォーム 特性 表示 背景スタイル

背景スタイル

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 表示

背景イメージをフォームに表示させる際の、表示方法を指定します。有効な値は以下の通りです。

  • T=タイル …… 背景イメージは、フォーム全体を埋めるために必要な限り何回もコピーして表示されます。

  • C=コピー …… 背景イメージは、そのままの状態でフォームに表示されます。イメージのサイズがフォームより大きい場合、切り取られて表示されます。フォームより小さい場合、余白部分は背景色が表示されます。

  • S=フィットスケール …… イメージのオリジナルの縦横比を維持した状態で、イメージがフォーム全体に収まるように縮尺/拡大されて表示されます。イメージとフォームの縦横の比率が同一でない場合、余白が生じることになります。

  • F=フィルスケール …… イメージのオリジナルの縦横比を維持した状態で、イメージがフォーム全体に収まるように縮尺されて表示されます。イメージとフォームの縦横の比率が同一でない場合、イメージの一部しか表示されません。

  • D=コントロールスケール …… イメージは、フォーム全体に収まるように縮小／拡大されて表示されます。イメージとフォームの縦横比率が同一でない場合、歪んだ状態で表示されます。


GUI表示フォーム 特性 表示 フォント

フォント

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 表示

フォームのフォントを指定します。[フォント]テーブルにズームしてフォントを選択できます。式で動的に指定することもできます。コントロールのフォントは、[コントロール特性]シートで定義します。コントロールのフォントが指定されていない場合、フォームのフォントが使用されます。

フォントは以下のフォームで有効です。

  • GUI表示形式フォーム

  • GUI出力形式フォーム


GUI表示フォーム 特性 表示 ヘルプ画面

ヘルプ画面

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 表示

フォームと関連付けるヘルプ画面を指定します。[ヘルプ一覧]にズームしてヘルプを選択できます。

ヘルプ画面は以下のフォームで有効です。

  • ブラウザ形式フォーム

  • GUI表示形式フォーム


GUI表示項目パレット フォーム特性 表示 色

色

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 表示

フォームの色を指定します。[基本色一覧]にズームして色を選択できます。[式]エディタにズームし、色番号を表す式を入力することによって動的に指定することもできます。


GUI表示フォーム 特性 表示 境界

境界スタイル

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 表示

フォームの境界線のスタイルを指定します。

  • H=太線

  • T=細線

  • N=なし

注意：

「T=細線」か「N=なし」に設定すると、実行時にウィンドウのサイズを変更することができなくなります。


GUI表示フォーム 特性 分割

分割

表示フォーム > GUI表示フォーム > GUI表示フォーム特性

ウィンドウを分割して別の内容を表示する指定を行います。[GUI表示フォーム]特性の[分割]セクションには以下の特性があります。

ウィンドウ分割

フォームの分割方向を指定します。

  • No……分割しません（デフォルト）

  • V=垂直……垂直に２分割します。

  • H=水平……水平に２分割します。

初期表示

分割された親フォームのどちらに現在のタスクの内容を表示するかを指定します。指定内容は、[ウィンドウの分割]特性の値によって変わります。

  • 「V=垂直」の場合

  • D=デフォルト……（日本語版の場合）「L=左」と同じです。

  • L=左……左側のウィンドウに表示されます。

  • R=右……右側のウィンドウに表示されます。

  • 「H=水平」の場合

  • D=デフォルト……「T=上」と同じです。

  • T=上……上側のウィンドウに表示されます。

  • B=下……下側のウィンドウに表示されます。

分割割合（%）

分割されたフォームの初期表示するフォームの割合を%で指定します。

分割位置

ウィンドウのサイズを変更した場合に、分割フォームの移動する割合を指定します。「0」から「100」までの数値で指定してください。デフォルト値は、「0」です。
「0」を指定すると、子ウィンドウ側のサイズは固定になり、親ウィンドウのみサイズが変わります。「100」の場合は、親ウィンドウ側のサイズは固定になます。

1番目の最小サイズ

1番目のウィンドウの最小サイズを設定します。

２番目の最小サイズ

2番目のウィンドウの最小サイズを設定します。

分割スタイル

分割フォームの分割線の表示方法を指定します。

  • 2=平面

  • 3=立体


GUI表示フォーム 特性 分割 ウィンドウ分割

ウィンドウ分割 (デフォルト:No)

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 分割

フォームの分割方向を指定します。

  • No……分割しません（デフォルト）

  • V=垂直……垂直に２分割します。

  • H=水平……水平に２分割します。


GUI表示フォーム 特性 分割 初期表示

初期表示

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 分割

分割された親フォームのどちらに現在のタスクの内容を表示するかを指定します。指定内容は、[ウィンドウの分割]特性の値によって変わります。

「V=垂直」の場合

  • D=デフォルト……「L=左」と同じです。

  • L=左……左側のウィンドウに表示されます。

  • R=右……右側のウィンドウに表示されます。

「H=水平」の場合

  • D=デフォルト……「T=上」と同じです。

  • T=上……上側のウィンドウに表示されます。

  • B=下……下側のウィンドウに表示されます。


GUI表示フォーム 特性 分割 分割割合

分割割合（%） (デフォルト:50)

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 分割

分割されたフォームの初期表示するフォームの割合を%で指定します。

例えば、「60」と指定した場合、親タスクのウィンドウはフォームの60%で表示されます。

有効な値は0から100です。デフォルト値は50です。


GUI表示フォーム 特性 分割 分割位置

分割位置 (デフォルト:0)

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 分割

ウィンドウのサイズを変更した場合の分割配分を指定します。

有効な値は0から100です。デフォルト値は0です。

例：

[分割割合]の値が「50」で、各分割ウィンドウの長さが「5」ピクセルとします。

[分割位置]の値が「100」にして、ウィンドウのサイズを、「10」ピクセルから「20」ピクセルに拡大すると、各分割ウィンドウは、「10」ピクセル拡大されます。

[分割位置]の値が「80」の場合は、各分割ウィンドウは、「8」ピクセル拡大されます。

注意：

分割ウィンドウフォーム上の空きスペースには、[フォーム]特性で指定された背景が表示されません。


GUI表示フォーム 特性 分割 1番目の最小サイズ

1番目の最小サイズ (デフォルト:0)

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 分割

この特性は、1番目のウィンドウ（分割時の親ウィンドウ）の最小のサイズを設定します。ここには、数値を指定します。

エンドユーザは、指定された最小サイズよりフォームサイズを小さくすることはできません。フォームの定義時に最小サイズより小さく設定された場合、エンドユーザはサイズを大きくすることはできますが、小さくしようとした場合、最小サイズより小さくはできなくなります。

式で指定された場合、フォームをオープンした時点で評価されます。

分割線

分割線によって1番目のウィンドウのサイズを小さくしようとした場合、この特性値で指定されたサイズより小さくなりません。

分割線は、[分割割合]特性を式で指定することで、1番目のウィンドウサイズを最初サイズより小さくさせることができます。

参照

２番目の最小サイズ

最小幅

最小高さ


GUI表示フォーム 特性 分割 2番目の最小サイズ

2番目の最小サイズ (デフォルト:0)

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 分割

この特性は、２番目のウィンドウ（分割時の子ウィンドウ）の最小のサイズを設定します。ここには、数値を指定します。

エンドユーザは、指定された最小サイズよりフォームサイズを小さくすることはできません。フォームの定義時に最小サイズより小さく設定された場合、エンドユーザはサイズを大きくすることはできますが、小さくしようとした場合、最小サイズより小さくはできなくなります。

式で指定された場合、フォームをオープンした時点で評価されます。

分割線

分割線によって２番目のウィンドウのサイズを小さくしようとした場合、この特性値で指定されたサイズより小さくなりません。

分割線は、[分割割合]特性を式で指定することで、２番目のウィンドウサイズを最初サイズより小さくさせることができます。

参照

１番目の最小サイズ

最小幅

最小高さ


GUI表示フォーム 特性 分割 分割スタイル

分割スタイル

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 分割

分割フォームの分割線の表示方法を指定します。

  • 2=平面

  • 3=立体


GUI表示フォーム 特性 位置とサイズ

位置とサイズ

表示フォーム > GUI表示フォーム > GUI表示フォーム特性

[GUI表示フォーム]特性の[位置とサイズ]セクションには以下の特性があります。

開始時の位置

この特性は、GUI表示形式フォームをどのように開くかを定義するものです。設定できるオプションは以下の通りです。

  • C=カスタム……ウィンドウは、フォームの[上辺位置]と[左辺位置]の特性で定義された位置に表示されます。フォームサイズは[高さ]と[幅]特性に基づいて表示されます。

  • T=デフォルト……ウィンドウは、OSで定義されたデフォルトの位置およびサイズで表示されます。[位置とサイズ]特性は無視されます。

  • P=親ウィンドウの中央……ウィンドウは、親タスクのウィンドウの中央に表示されます。フォームサイズは[幅]と[高さ]の特性によって定義されます。

  • M=MDIの中央……ウィンドウはMagicのクライアントエリアの中央に表示されます。フォームサイズは[幅]と[高さ]の特性によって定義されます。

  • D=デスクトップの中央……ウィンドウはデスクトップ領域の中央に表示されます。フォームサイズは幅と高さの特性によって定義されます。

もし親タスクがオープンするフォームを持たない場合、その上位のタスクのフォームを親のフォームとします。全ての上位タスクがオープンするフォームを持たない場合、「M=Magicウィンドウの中央」に設定されたフォームとして動作します。

位置

親フォームのサイズが変更された場合、子フォームとして定義されているGUIフォームのサイズを変更するかどうかを指定します。 単独のフォームの場合は、この特性はサポートされません。[位置]特性は、[位置]ダイアログ内の次の4つの設定（%）の組み合わせになります。[左辺割合]、[幅割合]、[上辺割合]、[高さ割合]。この特性からズームして[位置]ダイアログを開きます。

この特性は、［タイトルバー］特性が「No」で［境界線スタイル］特性が「太線」以外の場合のみ有効です。
GUI表示形式フォームの[位置]特性が「0」の場合、親フォームのサイズが実行時に変更されても相対サイズは変化しません。[位置]特性が「0」より大きい場合、親フォームのサイズが実行時に変更された時に相対サイズが変化します。
[位置]の値と[位置とサイズ]特性に対応した式の両方を定義します。実行時にこれらの値が組み合わされて表示されます。

左辺位置

フォームのフレームの左端の位置を指定します。[式]エディタにズームし、フォームにあるフレームの左端の座標を表す式を入力することもできます。

上辺位置

フォームのフレームの上端の位置を指定します。[式]エディタにズームし、フォームにあるフレームの上端の座標を表す式を入力することもできます。

幅

フォームを囲むフレームの水平方向の寸法を指定します。フレームが小さすぎてコントロールを表示できない場合、ウィンドウ内の内容をスクロールするためのスクロールバーが表示されます。フレームの幅は、フレームの右端をドラッグして変更できます。

高さ

フォームを囲むフレームの垂直方向の寸法を指定します。フレームが小さすぎてコントロールを表示できない場合、ウィンドウ内の内容をスクロールするためのスクロールバーが表示されます。フレームの高さは、フレームの下端をマウスでドラッグして変更できます。

最小幅

ウィンドウの幅の最小値を設定します。

最小高さ

ウィンドウの高さの最小値を設定します。


GUI表示フォーム 特性 位置とサイズ 開始時の位置

開始時の位置

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 位置とサイズ

この特性は、GUI表示形式フォームをどのように開くかを定義するものです。設定できるオプションは以下の通りです。

  • C=カスタム……ウィンドウは、フォームの[上辺位置]と[左辺位置]の特性で定義された位置に表示されます。フォームサイズは[高さ]と[幅]特性に基づいて表示されます。

  • T=デフォルト……ウィンドウは、OSで定義されたデフォルトの位置およびサイズで表示されます。[位置とサイズ]特性は無視されます。

  • P=親ウィンドウの中央……ウィンドウは、親タスクのウィンドウの中央に表示されます。フォームサイズは[幅]と[高さ]の特性によって定義されます。

  • M=MDIの中央……ウィンドウはMagicのクライアントエリアの中央に表示されます。フォームサイズは[幅]と[高さ]の特性によって定義されます。

  • D=デスクトップの中央……ウィンドウはデスクトップ領域の中央に表示されます。フォームサイズは幅と高さの特性によって定義されます。

注意：

もし親タスクがオープンするフォームを持たない場合、その上位のタスクのフォームを親のフォームとします。全ての上位タスクがオープンするフォームを持たない場合、「M=Magicウィンドウの中央」に設定されたフォームとして動作します。

SDIウィンドウでの[開始時の位置]特性

[開始時の位置]特性で、SDIウィンドウで「M=MDIの中央」か「P=親ウィンドウの中央」が指定された場合、「D=デスクトップの中央」を指定したような動作になります。これは、SDIウィンドウがMagicのMDIの外部に表示されるため、「M=MDIの中央」と「P=親ウィンドウの中央」のオプションは不適当なものと解釈されるからです。


GUI表示フォーム 特性 位置

位置

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 位置とサイズ

親フォームのサイズが変更された場合、子フォームとして定義されているGUIフォームのサイズを変更するかどうかを指定します。 単独のフォームの場合は、この特性はサポートされません。[位置]特性は、[位置]ダイアログ内の次の4つの設定（%）の組み合わせになります。[左辺割合]、[幅割合]、[上辺割合]、[高さ割合]。この特性からズームして[位置]ダイアログを開きます。

この特性は、［タイトルバー］特性が「No」で［境界線スタイル］特性が「太線」以外の場合のみ有効です。

GUIフォームの[位置]特性が「0」の場合、親フォームのサイズが実行時に変更されても相対サイズは変化しません。GUIフォームの[位置]特性が「0」より大きい場合、親フォームのサイズが実行時に変更された時に相対サイズが変化します。

Magicは、[位置]の値や[位置とサイズ]特性に対応した式の両方を定義します。実行時にこれらの値を組み合わせて表示されます。


GUI表示フォーム 特性 位置とサイズ 左辺位置

左辺位置

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 位置とサイズ

フォームのフレームの左端の位置を指定します。[式]エディタにズームし、フォームにあるフレームの左端の座標を表す式を入力することもできます。

参照

フォームの寸法


GUI表示フォーム 特性 位置とサイズ 上辺位置

上辺位置

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 位置とサイズ

フォームのフレームの上端の位置を指定します。[式]エディタにズームし、フォームにあるフレームの上端の座標を表す式を入力することもできます。

参照

フォームの寸法


GUI表示フォーム 特性 幅

幅

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 位置とサイズ

フォームを囲むフレームの水平方向の寸法を指定します。フレームが小さすぎてコントロールを表示できない場合、ウィンドウ内の内容をスクロールするためのスクロールバーが表示されます。フレームの幅は、フレームの右端をドラッグして変更できます。

参照

フォームの寸法


GUI表示フォーム 特性 位置とサイズ 高さ

高さ

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 位置とサイズ

フォームを囲むフレームの垂直方向の寸法を指定します。フレームが小さすぎてコントロールを表示できない場合、ウィンドウ内の内容をスクロールするためのスクロールバーが表示されます。フレームの高さは、フレームの下端をマウスでドラッグして変更できます。

参照

フォームの寸法


GUI表示フォーム 特性 位置とサイズ 最小幅

最小幅 (デフォルト：0)

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 位置とサイズ

この特性は、ウィンドウの幅の最小値を設定します。式で指定された場合、フォームをオープンした時点で評価されます。

この特性は、ウィンドウが小さすぎて、ウィンドウ内のコントロールが失われるような問題を防止します。また、エンドユーザがウィンドウサイズを変形させることで操作ができなくなるような問題も防止します。

フォームの最小のサイズは、エンドユーザがウィンドウ枠を動かしてサイズを変更するような場合にのみ有効です。これは、[境界]特性が「H=太線」に設定された境界線でのみに関係します。

最小サイズは、式によって動的に変更するフォームでは影響しません。

MDIウィンドウ

最小サイズが設定されたMDIやSDIウィンドウが、「MDI調整」でオープンされた場合、MDIのサイズを小さくしようとしても、指定された最小値のサイズより小さくできません。

フォームが「MDI調整」でオープンされた場合や、最大化モードでオープンされた場合、MDIコンテナの最小の幅は、オープンされたフォームの最も大きな「最小の幅」になります。

最小サイズが設定されたウィンドウでは、MDI内で最大化された状態でMDIのサイズを小さくすると、最大化されたフォーム内での最小サイズとなります。

SDIウィンドウ

SDIウィンドウもまた、最小サイズに影響されます。


GUI表示フォーム 特性 位置とサイズ 最小高さ

最小高さ (デフォルト：0)

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 位置とサイズ

この特性は、ウィンドウの高さの最小値を設定します。式で指定された場合、フォームをオープンした時点で評価されます。

この特性は、ウィンドウが小さすぎて、ウィンドウのコントロールの寸法精度の損失を起こ問題を防止します。この特性はまた、エンドユーザがウィンドウサイズを変形させて操作ができなくなるような問題を防止します。

フォームの最小のサイズは、エンドユーザがウィンドウの淵を動かしてサイズを変更するような場合にのみ有効です。これは、[境界]特性が「H=太線」に設定された境界線でのみに関係します。

最小サイズは、式によって動的に変更するフォームでは影響しません。

MDIウィンドウ

最小サイズが設定されたMDIやSDIウィンドウが、「MDI調整」でオープンされた場合、MDIのサイズを小さくしようとしても、指定された最小値のサイズより小さくできません。

フォームが「MDI調整」でオープンされた場合や、最大化モードでオープンされた場合、MDIコンテナの最小の高さは、オープンされたフォームの最も大きな「最小の高さ」になります。

最小サイズが設定されたウィンドウでは、MDI内で最大化された状態でMDIのサイズを小さくすると、最大化されたフォーム内での最小サイズとなります。

SDIウィンドウ

SDIウィンドウもまた、最小サイズに影響されます。


GUI表示フォーム 特性 位置とサイズ フォームの寸法

フォームの寸法

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 位置とサイズ

SDIフォームでは、[左辺位置]と[上辺位置]の特性はデスクトップの左上の端を基に決定されます。SDIウィンドウがデスクトップの左上の端でオープンされるように、初期値は「0」が設定されます。

[開始時の位置]特性が「M=MDIの中央」か「P=親ウィンドウの中央」または、「D=デスクトップの中央」に設定された場合、[左辺位置]と[上辺位置]の特性は無効になります。[幅]と[高さ]特性は、SDIクライアントの寸法に依存します。

  • SDIコンテナの幅は、フォームの[幅]特性で指定された値が評価されます。

  • SDIコンテナの高さは、[フォーム]特性の指定値に加え、表示される内容（例えば、メニューやツールバー、ステータスバー）のサイズによって決まります。メニューなどが表示されない場合は、フォームの[高さ]特性で定義された値で表示されます。

  • SDIコンテナのサイズは、フォームの[幅]や[高さ]特性に、コンテナのディメンジョンを加えたサイズになります。

  • [開始時の位置]特性が「T=デフォルト」でない場合、[左辺位置]と[上辺位置]の特性は無効になります。この場合でも、幅や高さの寸法は、[フォーム]エディタでのフォームの寸法になります。


コントロールの親子リンク

表示フォーム > GUI表示フォーム

親子リンクにより、コントロールの親子関係を定義できます。

有効化

  • リンクの定義は[フォーム]エディタで行います。

  • デフォルトでは、フォーム上の全てのコントロールがフォームの子という形式になります。

  • コントロールは、親コントロールに割当てることもできます。ただし、フォームに対して親コントロールを割り当てることはできません。

  • 他のコントロールの親であるコントロールでも、別のコントロールの子とすることができます。

  • 複数のコントロールを同一の親コントロールに割当てることができます。

  • 親子リンクは循環リンクにはできません。

  • [テーブル]コントロールの子であるコントロールは、他のコントロールを子としてリンクできません。

実行時の動作

  • 親コントロールが非表示になると、その子コントロールも全て非表示になります。

  • 親コントロールが無効になると、その子コントロールも全て無効になります。

  • ヘルプが定義されていないコントロールでヘルプを呼び出すと、親のコントロールのヘルプを探して呼び出します。どのコントロールにもヘルプが定義されていない場合は、フォームに定義されているヘルプを呼び出します。

参照

チョイスコントロールによる親子リンク

コントロールを複数選択した場合のコントロールの特性

全てのコントロールを選択


コントロールの親子リンク チョイスコントロール

チョイスコントロールによる親子リンク

表示フォーム > GUI表示フォーム > コントロールの親子リンク

チョイスコントロールには、ラジオボタン、タブ、リストボックス、コンボボックス、チェックボックスがあり、表示されるデータ値の一覧から値を選択することができます。選択できる値は、コントロールの[選択項目リスト]特性の内容で決まります。[選択項目リスト]特性にはカンマ区切の形式で複数登録できます。特性のデータ項目に割当てることができるデータ値は、その項目の書式に依存します。定義式をコントロールの[選択項目リスト]特性に割当てることで、有効な選択肢を動的に指定できます。

[表示項目リスト]特性に値を設定する場合は、[選択項目リスト]特性に指定した選択肢に対応した項目数を同じ順番で指定してください。

チョイスコントロールの値が、そのコントロールに対応する項目の範囲を外れている場合、その値はコントロール上では選択できません。

チョイスコントロールの選択肢は、キーボードショートカットを使用して表示などの操作が可能です。

チョイスコントロールに表示される選択肢には、それぞれ子コントロールを定義できます。選択肢に子コントロールが定義されている場合、その選択肢を選択すると、その選択肢の子コントロールが表示されます。選択されていない場合は表示されません。また、子となっているコントロールはピンク色の制御ボックスで囲まれます（通常のコントロールでは、制御ボックスは青色です）。

チョイスコントロールの選択肢を編集時に選択するには、Shiftキーを押しながらその選択肢をクリックします。

一方、チョイスコントロールの選択肢に定義されていない、チョイスコントロール自体の子コントロールは、選択肢を選択したかどうかにかかわらず、常時、表示されます。

この表示関係は、内部的にはコントロールレイヤという概念で制御しています。上記の内容をコントロールレイヤを使用して説明すると以下のようになります。

  • 新規のコントロールを親コントロールにドロップすると、新規のコントロールは、自動的に親チョイスコントロールの現在表示されているレイヤの子コントロールとなります。ただし、レイヤが特定されていない場合、新規のコントロールは、親コントロール（チョイスコントロール）の全てのレイヤで子コントロールとしてリンクされます。

  • チョイスコントロールの表示されているレイヤを切り替えると、切り替え後のレイヤにリンクしている子コントロールが表示され、他のレイヤにリンクしている子コントロールは全て非表示になります。

  • Altキーを併用すると、それぞれのレイヤにリンクされたコントロールだけが選択できます。


コントロールの親子リンク 複数選択

コントロールを複数選択した場合のコントロールの特性

表示フォーム > GUI表示フォーム > コントロールの親子リンク

コントロールを複数選択した場合、[コントロール特性]シートには、選択されているコントロールに共通した特性のみが有効表示されます。残された特性の値は、選択された最初のコントロールの特性と同一です。選択されたコントロールが異なるタイプの場合、モデルの特性は表示されません。選択されたコントロールが同じタイプの場合、モデルが有効になり、変更することができます。

1つのコントロールの特性を変更すると、選択されている全てのコントロールの特性が変更されます。ある特性の継承を解除すると、選択されている全てのコントロールにおいて継承が解除されます。ある特性の継承がすでに解除されている場合は、特性は変更されません。継承を行うように設定されていると、特性の継承が解除され、指定されたコントロールの値を取得してきます。継承を行うように設定しなおすと、選択されている全てのコントロールの特性が継承しなおされます。各コントロールは、それぞれのモデルから特性を継承します。

他の特性の設定によって、変更可能か否かが決定される特性は、常に有効表示されます。

他のコントロールにおいて無効な特性を変更した場合、特性の変更は他のコントロールに影響しません。その変更が反映されるのは、その特性が有効となっているコントロールに対してのみです。

[特性]シートには常に選択された最初のコントロールの値が表示されます。


コントロールの親子リンク 全て選択

全てのコントロールを選択

表示フォーム > GUI表示フォーム > コントロールの親子リンク

[フォーム]エディタの[編集]メニューから[全て選択]をクリックすると（Ctrl+A）フォーム上に配置されている全てのコントロールを選択することができます。[スタティック]コントロールの編集モードの時は、編集中のコントロールのテキストが全て選択されます。


GUIコントロール

表示フォーム >

フォームにコントロールを配置した後、このコントロールに特性を定義します。マウスでコントロールを選択し、F5キーを押下するか、ダブルクリックして[コントロール特性]シートをオープンしてください。

[コントロール特性]シートで、コントロールに対してデータ項目を割り当てます。また、ここで[タブ順序]特性を設定することで、実行時のコントロール間のタブの遷移順序が決まります。

フォーム上の複数のコントロールに同じデータ項目が割り当てられている場合、実行時は最後に設定された値によって更新されます。フォームレイアウト内でデータ項目を何回も表示させる必要がある場合は、その項目の更新契機によって専用の変数項目を用意して、その変数を表示させるようにしてください。

[コントロール特性]シートは、内容毎のセクションで分けられて表示されます。また、コントロールごとに適切な特性値が表示されます。

参照

GUIコントロールグループ

GUI表示コントロール

GUI表示コントロール特性

サポートするイメージフォーマット


GUIコントロールグループ

表示フォーム > GUIコントロール

参照

スタティックコントロール

スライダコントロール

チョイスコントロール

エディット,プッシュボタン,イメージコントロール

[テーブル]コントロール

サブフォームコントロール

ツリーコントロール


GUIコントロール グループ スタティック

スタティックコントロール

表示フォーム > GUIコントロール > GUIコントロールグループ

[スタティック]コントロールには、以下のものがあります。

グループ | 互いに関連付けて表示したいコントロールを配置するための四角形。グループ内のコントロールの論理的なリンク付けはありません。
テキスト | スタティックテキスト
四角形 | 四角形の図形
楕円形 | 楕円形の図形


GUIコントロール グループ スライダ

スライダコントロール

表示フォーム > GUIコントロール > GUIコントロールグループ

[スライダ]コントロールには、[垂直スライダ]コントロールと[水平スライダ]コントロールがあります。

スライダは範囲を持つ数値カラムと関係し、その値を示します。スライダは棒として表示され、棒上の移動インジケータの位置によって実際の値を示します。

フォーム上のスライダの外観は、[コントロール特性]シートの[幅]と[高さ]を設定して変更できます。フォーム内の任意の場所に垂直スライダや水平スライダを追加できます。


GUIコントロール グループ チョイス

チョイスコントロール

表示フォーム > GUIコントロール > GUIコントロールグループ

チョイスコントロールは、複数の値を表示します。チョイスコントロールをクリックしたり、Altキーを押下すると選択したレイヤに関連する全てのコントロールがマークされます。

チョイスコントロールには、以下のものがあります。

  • ラジオボタン……[ラジオボタン]コントロールは複数選択オブジェクトに使用されます。ラジオボタンは不連続な入力範囲を持つ項目に割り当てます。範囲内のそれぞれの値は、1つのラジオボタンとして表示され、ラジオボタンと一緒に値が表示されます。ボタンは、1つのコントロールとして、ボックス内にまとめられて表示されるが、各ボタンは別個の構成要素のように見えます。
    ユーザはグループから1つのボタンだけを選択します。ユーザがボタンを選択すると、円の中に黒い点が表示され、そのボタンが選択されていることを示します。カラムは選択されたボタンが表す値を取得します。論理型項目がラジオボタンとして表示されていて、その範囲が定義されていない場合、デフォルト値「True」または「False」が使用されます。

  • タブ……[タブ]コントロールは、ファイルキャビネットやノートの仕切りに似ています。タブを使用して、同一ウィンドウに複数の論理ページや論理セクションを定義できます。ユーザはタブタイトルを選択してタブカードを開きます。タブカードには、選択したタブタイトルの子としてのコントロールを含むことができます。

  • リストボックス……選択肢の一覧が表示されたコントロールです。[リストボックス]コントロールは一連の項目を表示するのに使用されます。ほとんどの場合、その一覧から1つの項目を選択できるようになっています。

  • コンボボックス……ユーザは、一覧からエントリを選択できます。[高さ]特性で、閉じた状態のコンボボックスの高さを設定します。開いているコンボボックスは、[動作環境]ダイアログの[プルダウンメニュータイムアウト]で指定されている時間が経過すると自動的に閉じます。

参照

チョイスコントロールによるデータの選択動作


GUIコントロール グループ チョイス 選択動作

チョイスコントロールによるデータの選択動作

表示フォーム > GUIコントロール > GUIコントロールグループ > チョイスコントロール

各チョイスコントロールは、データベーステーブルを定義して有効な選択範囲を指定することでデータ選択処理ができます。Magicでは、このように設定されたチョイスコントロールを「データコントロール」と表現しています。

このためには以下のようなコントロール特性の設定を行ってください。

  • ソーステーブル……チョイスコントロールのオプションを設定するデータソース

  • 表示項目……選択オプションとして画面に表示される項目

  • リンク項目……選択された場合に値を返す項目

  • インデックス……テーブルの表示順を決めるインデックス

  • 範囲項目……データソース内で選択対象を制限する場合に指定します。

データコントロールは、チョイスコントロールの表示項目の重複を許します。重複項目のどれかを選択するとそれに対応したリンク項目が返ります。リンク項目が重複している場合は無視されます。この場合は、最初に見つかった項目が表示されます。

チョイスコントロールによって作成されたビューは、各データコントロール用に取得されます。

  • ビューは、定義された範囲基準に基づいて取得されます。もし、取得条件がフェッチされたビューと合った場合だけ、データコントロールのビューとして取得されます。

  • 各ビューは、それぞれのデータコントロールごとに取得されるので、他のデータコントロールで、同じテーブルの同じ項目を指定しても、データを共有することはありません。


GUIコントロール グループ ETC

エディット,プッシュボタン,イメージコントロール

表示フォーム > GUIコントロール > GUIコントロールグループ

編集用やイメージ表示用に、以下のコントロールがあります。

[エディット]コントロール

[プッシュボタン]コントロール

[チェックボックス]コントロール

[イメージ]コントロール

[ライン]コントロール

[OLE]コントロール

[リッチテキスト]コントロール


GUIコントロール グループ ETC エディット

エディットコントロール

表示フォーム > GUIコントロール > GUIコントロールグループ > エディット,プッシュボタン,イメージコントロール

[エディット]コントロールは、[データ]特性の[値]か[式]欄にデータ項目か式を設定します。コントロールをカスタマイズするには、ここからズームして[特性]シートにアクセスしてください。

[エディット]コントロール内で選択されたテキストは、ドラッグ&ドロップ処理を実行することができます。


GUIコントロール グループ ETC プッシュボタン

プッシュボタンコントロール

表示フォーム > GUIコントロール > GUIコントロールグループ > エディット,プッシュボタン,イメージコントロール

プッシュボタンは、[ズーム]イベントなどのMagicの内部イベントを起動する手段として使用されます。 データ項目の値または[書式]特性の内容がボタンラベルになります。プッシュボタンのイベントは、[コントロール特性]シートの[実行イベント]特性で指定します。

実行時にボタンを押下すると、イベントが発行されます。そのイベントによって、[コール]処理コマンドや[イベント実行]処理コマンドなどを実行させることができます。

また、[OK]ボタン、[キャンセル]ボタン、[ヘルプ]ボタンという機能を持たせることができます。これらのボタンには、それぞれ[OK]、[キャンセル]、[ヘルプ]などの内部イベントを割当てます。ボタンに割当てられたイベントは、プログラムの状況に応じてプログラムで処理されます。

デフォルトのWindowsプッシュボタンのデザインを使用するだけでなく、コントロールを独自にデザインすることもできます。この場合、[コントロール特性]ダイアログの[ボタンスタイル]特性を「I=イメージボタン」か「T=イメージ上テキスト」に設定してください。

注意：

[コントロール特性／イベント実行]を設定しないプッシュボタンに対して、「クリック」イベントによるハンドラは使用しないでください。このような場合は、「ユーザアクション」を定義するようにしてください。

参照

イメージプッシュボタン

プッシュボタンチェッカーメッセージ


GUIコントロール グループ ETC プッシュボタン イメージ

イメージプッシュボタン

表示フォーム > GUIコントロール > GUIコントロールグループ > プッシュボタンコントロール

1つのイメージファイルを指定することで、４種類のボタンイメージを表現することができます。

4つの状態とは以下の通りです。

  • フォーカスがある状態

  • 選択された状態

  • 無効な状態

  • デフォルトの状態

イメージプッシュボタンは、1つのビットマップイメージを水平に４分割して、各ボタン状態に割当てます。このため、以下のような同じサイズのイメージを水平に４つ結合させたイメージファイルを指定するようにしてください。


GUIコントロール グループ ETC プッシュボタン チェック

プッシュボタンチェッカーメッセージ

表示フォーム > GUIコントロール > GUIコントロールグループ > プッシュボタンコントロール

[構文チェック]ユーティリティでは、プッシュボタンが[クリック]イベントによって処理されたり、プッシュボタンのハンドラによって内部の[クリック]イベントが発行されるような場合に、以下の警告メッセージを表示します。

  • 処理するプッシュボタンにユーザイベントを割り当ててください.

  • プッシュボタンでは、このタイプの内部イベントを[実行イベント]特性に割り当てることはできません.ユーザイベントを割り当ててください.


GUIコントロール グループ ETC チェックボックス

チェックボックスコントロール

表示フォーム > GUIコントロール > GUIコントロールグループ > エディット,プッシュボタン,イメージコントロール

チェックボックスを使用することで、論理型項目を「True」（チェックボックスがオンの場合）または「False」（チェックボックスがオフの場合）に設定することができます。

[テキスト]特性は、通常の項目と同様に内容の説明を入力します。チェックボックスの入力値はスペースバーを押下するか、チェックボックスをクリックして指定します。スペースバーまたはマウスクリックでチェックマークのオン／オフを切り替えることができます。

参照

チェックボックスコントロール特性


GUIコントロール グループ ETC イメージ

イメージコントロール

表示フォーム > GUIコントロール > GUIコントロールグループ > エディット,プッシュボタン,イメージコントロール

[イメージ]コントロールには、グラフィックイメージが格納されます。これらのグラフィックイメージを挿入するには、ファイル名を指定するか、グラフィックイメージと定義されたデータ項目を割り当てるか、グラフィックイメージを返す式を定義してください。

イメージには2つのモードで使用されます。

  • スタティックコントロール …… [データ特性]には指定しないで[デフォルトイメージ]特性にファイル名とパス名を指定した場合はスタティックになります。

  • ダイナミックコントロール …… [データ特性]にファイル名を含んだデータ項目か式を指定した場合、ダイナミックになります。

参照

イメージコントロール特性


GUIコントロール グループ ETC ライン

ラインコントロール

表示フォーム > GUIコントロール > GUIコントロールグループ > エディット,プッシュボタン,イメージコントロール

[ライン]コントロールは、2つのグリッド点間に線を描画します。線は、[テキスト]コントロールの中に配置することもできます。


GUIコントロール グループ ETC OLE

OLE コントロール

表示フォーム > GUIコントロール > GUIコントロールグループ > エディット,プッシュボタン,イメージコントロール

OLEを使用すると、異なるアプリケーションでサポートされているオブジェクトを結合することができます。Magicの[OLE]コントロールは、埋め込みまたはリンクOLEオブジェクト用のコンテナです。

  • OLE埋め込みオブジェクトは、データオブジェクトであり、移動またはコピーすると、そのオブジェクト固有の編集機能や処理機能が新しいコンテナで保持されます。

  • OLEリンクオブジェクトは、他の記憶場所や他のコンテナにあるデータオブジェクトへのポインタまたはリンクです。

[OLE]コントロールでは、Magicのドラッグ&ドロップ処理をサポートしていません。

参照

リンク自動更新

OLE表示形式

OLEクラス

OLE形式

OLEフレームタイプ使用


GUIコントロール グループ ETC RTF

リッチテキストコントロール

表示フォーム > GUIコントロール > GUIコントロールグループ > エディット,プッシュボタン,イメージコントロール

[リッチテキスト]コントロール

[リッチテキスト]コントロールは、[コントロール]パレットで上記に表示されたアイコンをクリックして配置します。このコントロールは、[スタティック]コントロールの一種で、開発時に各文字に対する色やフォントの指定、各行に対する割付指定を任意に行うことができます。

[リッチテキスト]コントロール内の文字の属性を変更するには以下のようにします。

  1. [リッチテキスト]コントロールにカーソルを移動します。

  2. Enterを押します。コントロールの境界の色が青からピンクに変わり、編集モードに変わります。

  3. コントロール内の文字をマークします。

  4. マウスの右クリックを行い、ショートカットメニューをオープンし、変更したい特性を選びます。

[リッチエディット]コントロール

[リッチエディット]コントロールは、[コントロール]パレットで上記に表示されたアイコンをクリックして配置します。[リッチエディット]コントロールでは、データ項目や式を指定することができます。

[リッチテキスト]コントロールと表示上は似ていますが、実行時の動作が異なります。[リッチエディット]コントロールでは、BLOB型のデータ項目を割り当てることができます。また、実行時に各文字に対する色やフォントの指定、各行に対する割付指定を任意に行うことができます。

[リッチエディット]コントロールは、Unicodeをサポートしていません。

[リッチエディット]／[リッチテキスト]コントロールで選択されたテキストは、ドラッグ&ドロップ処理することができます。


GUIコントロール グループ テーブル

[テーブル]コントロール

表示フォーム > GUIコントロール > GUIコントロールグループ

[テーブル]コントロールは、タイトル領域と繰返し領域に分かれています。これらの領域にはテーブルの線が表示されます。

[テーブル]コントロールを含むフォームのグリッドのサイズを変更すると、[テーブル]コントロールのサイズもそれに応じて変更されます。水平方向の変更に対して、サイズ変更率を制御する[位置]特性が影響します。例えば、[位置]特性を80%に設定して、フォームのサイズを10ピクセル増やした場合、[テーブル]コントロールのサイズは8ピクセル増えます。

垂直方向の配置の場合、フォームがどのようにサイズ変更されたかによって、[テーブル]コントロールに表示される行の数が増減します。使用できるデータがなくなると、[テーブル]コントロールには空の行が表示されます。カーソルが置かれている[テーブル]コントロールの行は常に表示されます。

[テーブル]コントロールでは、ドラッグ＆ドロップによってテキストを操作することができます。[テーブル]コントロールのレコードをマークすることで、全てのマークされたレコードに対して[ドラッグ開始]イベントを発生させることができます。マウスの左クリックを行い、コントロールを持ち上げると、Magicがドラッグ操作を認識し、編集モードでのオープンしなくなります。

注意：

  • フォームに配置できる[テーブル]コントロールは１つだけです。従って、フォーム上に既に[テーブル]コントロールが配置されている場合は、[コントロール]パレット上の[テーブル]コントロールアイコンは無効表示になります。

  • クラス>0のフォームに[テーブル]コントロールを配置すると、明細エリアでは出力するレコード毎に行が複写されます。これは、定義された行数分のみフォームに表示され、スクロールすることができるクラス=0のフォームとは異なります。この動作によって、テーブルのデザインを行わなくても表形式でデータを印刷できるようになります。

参照

開発時のサイズ変更

実行時のサイズ変更


GUIコントロール グループ テーブル 開発時のサイズ変更

開発時のサイズ変更

表示フォーム > GUIコントロール > GUIコントロールグループ > [テーブル]コントロール

開発モードの場合、テーブルのサイズ変更に応じて、各カラムのサイズが変更できます。

[カラム特性]の[位置]特性に「Yes」を設定した場合、カラムの総数に比例してカラムのサイズが変更されます。例えば、4つのカラムの[位置]特性を「Yes」に設定した場合、各カラムのサイズ変更の割合はテーブルのサイズの変更に対して25%になります。

[カラム特性]の[位置]特性を「No」に設定した場合、カラムのサイズは変化しません。例えば、幅が80ピクセルの[テーブル]コントロールがあるとします。[テーブル]コントロールの[位置]特性は100%に設定されているとします。このテーブルには幅が20ピクセルの4つのカラムがあるとします。2つのカラムの[位置]特性は「Yes」、他の2つのカラムの[位置]特性は「No」に設定されているとします。この場合、フォームのグリッドが8ピクセル増えると、2つのカラムの幅は20ピクセルのままとなり、他の2つのカラムの幅は24ピクセルになります。


GUIコントロール グループ テーブル 実行時のサイズ変更

実行時のサイズ変更

表示フォーム > GUIコントロール > GUIコントロールグループ > [テーブル]コントロール

エンドユーザは、[テーブル]コントロールの[サイズ変更可]特性が「Yes」に設定されている場合、テーブルのカラムサイズを変更できます。

右の分割線をドラッグした場合、そのカラムと隣接するカラムのサイズが変更され、テーブル全体のサイズは変更されません。Shiftキーを押下した状態で右の分割線をドラッグした場合、そのカラムのサイズが変更されます。この場合、そのほかのカラムのサイズは維持され、テーブル全体のサイズが変更されます。

[テーブル]コントロールの[ウィンドウ内テーブル］特性が「Yes」の場合、フォーム内ではテーブルの表示領域を固定にするため、表示されるカラム数が減ることがあります。テーブルのサイズが変更されてテーブルの各カラムを同時に表示できなくなった場合、そのテーブルの水平スクロールバーが表示されます。


GUIコントロール グループ テーブル マルチマーキング

テーブル内でのマルチマーキング

表示フォーム > GUIコントロール > GUIコントロールグループ > [テーブル]コントロール

[テーブル]コントロールでは、Windowsアプリケーションでのマルチマーキング機能と同様の処理を行うことができます。マルチマーキング機能は、開発モードと実行モードのオンラインフォームでのみ使用できます。

タスクの[テーブル]コントロールでマルチマーキングを有効にするには、[テーブル]コントロールの[マルチマーキング]特性を「Yes」に設定します。この特性は、オンラインタスクの場合にのみ有効です。

マークされた行は、色が反転されます。

マークされたレコードに対して、次の操作が実行できます。

  • 構文チェック……開発モード

  • コピー……開発モード

  • 削除……開発モードと実行モード

  • イベント……実行モード（マルチマーキング用ロジックユニットを作成して独自のロジックを定義）

参照

マルチマーキングのためのイベントロジックユニット


GUIコントロール グループ テーブル マルチマーキング イベント

マルチマーキングのためのイベントロジックユニット

表示フォーム > GUIコントロール > GUIコントロールグループ > [テーブル]コントロール > マルチマーキング

ユーザは、[マルチマーキング]特性を「Yes」に設定して、マークされている各テーブル行を処理する[イベント]ロジックユニットを作成できます。イベントが起動されると、選択された行ごとにデータビューの先頭から末尾まで実行されます。

例えば、ユーザがフォーム内に表示されているサマリテーブルの合計を再計算したいと考えているとします。ユーザは、合計を計算して更新するプログラムを呼び出します。イベントが実装されると、[イベント]ロジックユニットは選択された行ごとにプログラムを呼び出して、更新された合計を表示します。

マルチマーキング用の関数には以下のものがあります。

MMStop | マルチマーキングのロジックユニットの処理を停止します。
MMCount | マークされている行数を返します。
MMCurr | イベント実行中にマークされている行の現在の行を返します。
MMClear | レコードのマークを解除します。


GUIコントロール グループ サブフォーム

サブフォームコントロール

表示フォーム > GUIコントロール > GUIコントロールグループ

[サブフォーム]コントロールを使用することで、他のタスクのフォーム上にタスクのフォームを組み込むことができます。この場合、サブフォームのタスクのデータ処理やレコードサイクルは、親タスクとは独立して扱うことができます。

[サブフォーム]コントロールに対するロジックユニットを定義することはできません。

サブフォームの利点

親タスクのコントロール上にパークした状態で、サブタスクで詳細データを表示する1対多の関係のタスクを作成することができます。

Magicは、パラメータを渡すように設定するだけで親タスクの状況に従ってサブフォームをリフレッシュさせることができます。

サブフォームに入ったり抜けたりした場合、Magicはその時点での最終位置を保持します。

タブの移動サイクルがサブフォーム用に提供されます。

サブフォームの動作

[サブフォーム]コントロールは、オンラインプログラムでのみ動作します。メインプログラムやバッチプログラムでは動作しません。

[サブフォーム]コントロールは、子ウィンドウで表示されるタスクのように動作します。また、親タスクで発生したイベントを処理することができ、フォーカスがサブフォームに戻った時に以前の操作で最後にアクセスしたレコードに自動的に位置付けることができます。

実行エンジンは、親タスクとサブフォームに表示されたタスクの間での操作を自動的に処理します。

実行エンジンは、起動タスクに渡されるパラメータの値が変更された場合、自動的にサブフォームを再表示します。

サブフォームタスクは、親タスクの最初の[レコード前]の処理として初期実行されます。

実行エンジンは、サブタスクの[タスク前]と[レコード前]を実行し、サブタスクのデータビューを作成し、[レコード後]と[タスク後]を実行します。

注意：

起動されるタスクのメインソースにXMLテーブルが定義されている場合、（[サブフォーム]コントロールが定義されている）現在のタスクにも同じXMLテーブルを宣言定義する必要があります.

参照

サブフォームのコントロール特性

事前に設定される特性

サブフォーム用関数

[サブフォーム再表示]イベント

サブフォーム用のハンドラ

サブフォームの実行時の動作


GUIコントロール グループ サブフォーム 事前設定の特性

事前に設定される特性

表示フォーム > GUIコントロール > GUIコントロールグループ > サブフォームコントロール

フォーム特性

サブフォームで動作するタスクの[フォーム特性]は、あらかじめ以下のように自動的に設定されています。

  • ウィンドウタイプ …… 常に子ウィンドウとみなされます。

  • フォーム名 …… 無視されます。

  • タイトルバー　……　No

  • システムメニュー …… No

  • 最小化ボタン …… No

  • 最大化ボタン …… No

  • 境界 …… N=なし

  • MDI調整 …… No

  • 開始時の位置 …… 無視されます。

タスク特性

サブフォームで動作するタスクの[タスク特性]は、あらかじめ以下のように自動的に設定されています。

  • アイコンファイル名　……　無視されます。

  • ウィンドウ消去 …… No

  • 前面表示 …… Yes


GUIコントロール グループ サブフォーム 関数

サブフォーム用関数

表示フォーム > GUIコントロール > GUIコントロールグループ > サブフォームコントロール

以下の関数は、[サブフォーム]コントロールと一緒に使用することができます。

CtrlGoto

この関数は、コントロール名を指定することで[サブフォーム]コントロール上で評価されます。関数が評価されると、実行エンジンは現在のコントロールの[コントロール後]の処理と[サブフォーム]コントロールまでの検証ハンドラを実行します。実行エンジンは、サブタスクの最初のコントロールでパークします。詳細は、「CtrlGoto」の説明を参照してください。

SubformExecMode

この関数は、サブフォームの実行モードを返します。この情報は、サブフォームのロジックを実行時のモードによって切り替える必要がある場合に使用します。詳細は、「SubformExecMode」の説明を参照してください。


GUIコントロール グループ サブフォーム ハンドラ

サブフォーム用のハンドラ

表示フォーム > GUIコントロール > GUIコントロールグループ > サブフォームコントロール

実行エンジンが親タスク上にフォーカスがある場合、実行されたどのようなイベントも、有効なハンドラの階層を使用して親タスクのために処理されます。

サブフォームタスクに入った場合、実行エンジンがパークした最後のコントロールのために、コントロールハンドラが高速モードで起動されます。サブフォームの[コントロール前]のロジックユニットは、[タスク前]と[レコード前]の処理の後に実行されます。

[サブフォーム]コントロールに特有なユーザ定義ハンドラは、[コントロール検証]レベルではなく前処理と後処理のレベルでサポートされます。


GUIコントロール グループ サブフォーム 実行時の動作

サブフォームの実行時の動作

表示フォーム > GUIコントロール > GUIコントロールグループ > サブフォームコントロール

サブフォームには、Tabキーによるカーソル移動か、サブフォオームへのクリックで入ることができます。実行エンジンは、サブタスクの最初のコントロールにパークします。パーク可能なコントロールにクリックすると、実行エンジンはフォーカスをサブタスクに移動させ、選択したコントロールにパークします。この時、[タスク前]、[レコード前]、[コントロール前]の処理を実行します。パーク不可のコントロールをクリックした場合、実行エンジンはフォーカスをサブフォームのタスクに移動させ、最初のパーク可能なコントロールにパークします。

実行エンジンが[閉じる]イベントやサブフォーム以外の領域をクリックしたり、[タスク終了条件]特性によってサブタスクを終了させた場合、実行エンジンは、[コントロール後]、[レコード後]、[タスク後]の各処理を実行します。フォーカスは、親タスクで定義された[タブ順序]特性や[タブ移動方向]特性に基づいて、親タスクの次のコントロールに移動します。

サブタスクに戻り、データビューが再表示されなかった場合、これは、範囲、リンク、ソート、インデックス、結合リンク、または外部結合リンクの設定が修正されていないことを意味しています。サブタスクは、最後に表示された同じページまたはレコードを保持します。

参考

実行エンジンが親タスクにフォーカスを移した場合、サブタスクは自動的にクローズされるため、親タスクがクローズした時は、どの処理もサブタスクには必要としません。

同期

親タスクのトランザクションが「遅延」に設定されて、サブフォームタスクが「親と同じ」か「遅延」に設定されている場合、[コール]処理コマンドの[同期]特性が「Yes」に設定されているようにサブフォームタスクを呼び出します。

ロック

サブフォームタスクの呼び出しは、親タスクのレコード上で暗黙のロックを発生させません。[コール]処理コマンドの[ロック]特性が「No」に設定されているかのように、サブフォームタスクを呼び出します。


GUIコントロール グループ ツリー

ツリーコントロール

表示フォーム > GUIコントロール > GUIコントロールグループ

親と子の異なるレベルのデータを表すノードデータを持つツリー構造のテーブルをメインソース（または結合テーブル）として使用した場合、このデータビューを[ツリー]コントロールを使用して表示することができます。

異なるデータレベルを表示するには、[ツリー]コントロールの以下の特性を設定します。

  • ルート値 …… 実行エンジンがデータツリーを作成する開始ポイントとして使用される値を式で指定します。この値は、次のレベルのデータにつながる先頭のノードとして表示されます。ルート値が指定されない場合、次のレベルのデータにつながる先頭レコードがないことになります。この場合、実行エンジンは、次のレベルの個別の親ノードとして表示されたデータによってデータツリーを作成します。

  • 親のID ……タスクのデータビュー内の親レコードを表す項目。式で定義できません。

  • ノードID …… タスクのデータビュー内の子レコードを表す項目。式で定義できません。ノードIDは、ツリー内でユニークになるようにしてください。ノードIDとして割り当てる項目で、ユニークなインデックスを定義することをお勧めします。

[ツリー]コントロールは、1 つのデータベーステーブルで定義されたメインまたは結合リンクテーブルのレコードでのみ表示できます。

参照

ツリーコントロール特性

データツリーの作成

ツリーコントロールイベント

ノードの追加／削除

データツリーの操作

ノードテキストの編集

データツリーの再表示

複数のノード選択

ツリーコントロール関数


GUIコントロール グループ ツリー 作成

データツリーの作成

表示フォーム > GUIコントロール > GUIコントロールグループ > ツリーコントロール

[ツリー]コントロールを配置したオンラインタスクがメインフォームを開いた場合、以下のような動作をします。

  1. データビューの範囲指定が計算されます。

  2. ルート値が存在する場合、実行エンジンは、トップの親ノードとしてルート値を表示し、データベースからレコードをフェッチします。

  3. ツリーに対する初期拡大レベルは、[自動展開]特性で指定された値によって決まります。

  4. [ノード事前読込]特性が 「Yes」に設定された場合、実行エンジンは、データビューの範囲内で見つかった各親の子レコードを自動的に検索します。「No」に設定された場合、実行エンジンは、展開表示された子レコードのみ検索します。

  5. 検索された各レコードに対して、新しいノードが対応するノードの GUI データを持つツリーに追加されます。

  6. [自動展開]特性の指定に基づいて #4と#5 の処理が全レコード分繰り返し実行されます。


GUIコントロール グループ ツリー イベント

ツリーコントロールイベント

表示フォーム > GUIコントロール > GUIコントロールグループ > ツリーコントロール

[ツリー]コントロール用の内部イベントを使用することで、エンドユーザがデータツリー上でノードを移動したり、拡張/縮小を行うことができます。

[ツリー]コントロール用のイベントには、以下のものがあります。

  • ノード縮小

  • サブツリー縮小

  • 子ツリー作成

  • ノード編集

  • ノード展開

  • サブツリー展開

  • 親のノードに移動

  • 子ノードに移動

  • 前のノードに移動

  • 次のノードに移動

ノードの展開／縮小イベント

ノードのトリガに関する情報は、[ノード展開]／[ノード縮小]イベントによって渡されるパラメータによって提供されます。[ノード展開]／[ノード縮小]イベントのどちらかがロジックユニットのトリガイベントとして選択されると、Magicはツリーノードレベルやツリーノード値に対する変数項目をロジックユニットに作成にするかどうかの確認メッセージを表示します。

[ノード展開]／[ノード縮小]イベントがトリガされると、ロジックユニットに定義された変数は、トリガイベントに関連されたツリーノード値で更新されます。最初の定義項目は、ツリーノードレベルで更新され、二番目の定義項目には、ツリーノード値で更新されます。

[ノード展開]／[ノード縮小]イベントが、[ツリー]コントロールの範囲外で発生した場合、ツリーノードレベルとツリーノード値は更新されません。

[ノード展開]／[ノード縮小]イベントを[イベント実行]処理コマンドで発行した場合、指定されたパラメータは、最初の２つのハンドラ変数の後に定義された変数に渡されます。

ノード編集イベント

[ノード編集]イベントによって、開発／実行モードで[ツリー]コントロールのノードを編集することができます。このイベントをトリガすると現在パークしているノードを編集することができます。マウスの左クリックでノードが選択され、二回目のクリックでこのイベントがトリガされます。


GUIコントロール グループ ツリー ノード追加

ノードの追加／削除

表示フォーム > GUIコントロール > GUIコントロールグループ > ツリーコントロール

以下の場合に、F4を押下したり、[子ノード作成]イベントを実行することでノードをデータツリーに追加できます。

  • タスクが修正モードでオープンされている場合

  • メインスクリーンが表示されている場合

  • 選択された親ノードが、展開表示されている場合

F3 を押下することによってノードを削除できます。親ノードを削除する場合は、子ノードが全て削除されていなければなりません。ノードを削除した後、実行エンジンはデータツリーを自動的に再表示します。


GUIコントロール グループ ツリー 操作

データツリーの操作

表示フォーム > GUIコントロール > GUIコントロールグループ > ツリーコントロール

実行エンジンは、 フォーカスのある現在のノードで表示されたデータビューの現在のノードを常に示します 。別のノードに移動すると、 現在のノードが更新されます。

親ノードが最初に展開表示された時、 GUI レイヤは、展開された親ノードと関連するノードのレコードを検索するように、実行エンジンに要求を出します。すでに親ノードが展開表示されている場合は、 展開されたノードレベルを表示するだけで、レコードの検索要求は出しません。

展開された親ノードを縮小表示させた場合、 GUI レイヤは、閉じたノードを表示するだけで、実行エンジンへの要求は出しません。選択されたノードが縮小された親ノードの一部の場合、 GUI レイヤは選択されたものとして親ノードを表示し、現在のレコードを変更するように、実行エンジンに要求を送ります。

フォーカスがデータツリーから抜けた場合でも、実行エンジンは選択ノード上にパークし続けます。


GUIコントロール グループ ツリー 編集

ノードテキストの編集

表示フォーム > GUIコントロール > GUIコントロールグループ > ツリーコントロール

以下のようにしてノードテキストを変更することができます。

  1. マウスを 1回クリックし、編集したいノードにフォーカスを移します。

  2. ノードテキストを編集するために、再度マウスをクリックします。

  3. テキストが編集された後で、 Enterキーを押下します。更新されたテキストは保存され、実行上のフォーカスは選択されたノードに残ります。


GUIコントロール グループ ツリー 再表示

データツリーの再表示

表示フォーム > GUIコントロール > GUIコントロールグループ > ツリーコントロール

以下の場合、データツリーの内容が再表示されます。

  • 親または子ノードが、追加、修正、削除された場合

  • [画面再表示]イベントが実行された場合


GUIコントロール グループ ツリー 複数ノード

複数のノード選択

表示フォーム > GUIコントロール > GUIコントロールグループ > ツリーコントロール

[マルチマーキング]特性が 「Yes」 に設定された場合、複数のノードを選択することができます。


GUIコントロール グループ ツリー 関数

ツリーコントロール関数

表示フォーム > GUIコントロール > GUIコントロールグループ > ツリーコントロール

[ツリー]コントロール関数には以下のものがあります。

  • TreeLevel …… データツリー上の選択ノードの現在のレベルを返します。

  • TreeValue …… 選択ノードの現在のレベルによって決定されたノードIDを返します。

  • TreeNodeGoto …… 指定したノードにパークします。


GUIコントロール 特性 イメージタイプ

GUIフォームでサポートするイメージフォーマット

表示フォーム > GUIコントロール

GUIフォームでのイメージフォーマットの対応状況は以下の通りです。

タイプ | 種別 | エンコード |  | 表示
BMP | ビットマップ | OS/2 | RGB | ○
 |  |  | RLE | ○
 |  | Windows | RGB | ○
 |  |  | RLE | ○
BRK | Brooktrout社のFax |  |  | ×
CAL | CALSラスタ |  |  | ×
CLP | Windowsクリップボード |  |  | ×
CUT | Dr. Halo |  |  | ×
DIB | DIB | OS/2 | RGB | ○
 |  |  | RLE | ○
 |  | Windows | RGB | ○
 |  |  | RLE | ○
EMF | Windows エンハンストメタファイル |  |  | ×
EPS | Encapsulated PostScript |  |  | ×
FPX | FlashPix |  |  | ×
GIF | CompuServe Graphic Interface | Ver87a | ノンインタレース | ○
 |  |  | インタレース | ○
 |  | Ver89a | ノンインタレース | ○
 |  |  | インタレース | ○
IFF | Amiga | 圧縮 |  | ○
 |  | 非圧縮 |  | ○
IMG | GEM Paint |  |  | ×
JP2 | JPEG2000 |  |  | ×
JPG | JPEG | 標準 |  | ○
 |  | プログレッシブ |  | ○
 |  | ロスレス |  | ×
LBM | Deluxe Paint | 圧縮 |  | ○
 |  | 非圧縮 |  | ○
MAC | MacPaint |  |  | ×
MSP | Microsoft Paint |  |  | ×
NCR | NCG G4 |  |  | ×
PBM | Porttable Bitmap | ASCII |  | ○
 |  | Binary |  | ○
PCT | Macintosh PICT |  |  | ×
PCX | ZSoft Paintbrush | Version0 |  | ○
 |  | Version2 |  | ○
 |  | Version5 |  | ○
PGM | Portable Greymap | ASCII |  | ○
 |  | Binary |  | ○
PIC | PC Paint |  |  | ×
PNG | Portable Netwawork Graphics | インタレース | 最適化パレット | ○
 |  |  | 非最適化パレット | ○
 |  | ノンインタレース | 最適化パレット | ○
 |  |  | 非最適化パレット | ○
PPM | Portable Pixelmap | ASCII |  | ○
 |  | Binary |  | ○
PSD | Adobe Photoshop | Ver2.5 |  | ○
PSP | Animation Shop |  |  | ×
PSPIMAG | Paint Shop Pro Image |  |  | ×
RAS | Sun Raster Images |  |  | △
RAW | Raw ファイルフォーマット |  |  | ×
RGB | SGIイメージファイル |  |  | ×
RLE | Windows/Compuserve RLE | Compuserve |  | ×
 |  | Windows |  | ○
SCT | SciTex Continuous Tone |  |  | ×
TGA | Truevisopn Targa | 8Bit 非圧縮 |  | ○
 |  | 8Bit 圧縮 |  | ○
 |  | 16Bit 非圧縮 |  | ○
 |  | 16Bit 圧縮 |  | ○
 |  | 24Bit 非圧縮 |  | ○
 |  | 24Bit 圧縮 |  | ○
TIFF | Tagged Image File Format | Fax CITT3 | CMYK | ○
 |  |  | RGB | ○
 |  | Huffman 圧縮 | CMYK | ○
 |  |  | RGB | ○
 |  | LZW 圧縮 | CMYK | ○
 |  |  | RGB | ○
 |  | Packbits 圧縮 | CMYK | ○
 |  |  | RGB | ○
 |  | 非圧縮 | CMYK | ○
 |  |  | RGB | ○
WBMP | Wireless Bitmap |  |  | ×
WMF | Window Metafile |  |  | ×
WPG | WordPerfect Bitmap |  |  | ×
XBM | X Windows Bitmap |  |  | ○
XMP | X Windows Pixmap |  |  | ×
XWD | X Windows Dump |  |  | ×


GUIコントロール 特性

GUI表示コントロール特性

表示フォーム > GUIコントロール

コントロールをフォームに配置すると、そのコントロールに特性を割当てることができます。マウスでコントロールを選択し、[コントロール特性]シートにズーム（F5）してアクセスできます。

[コントロール特性]シートでは、コントロールに[データ]特性としてデータ項目を割当てて、コントロールの形式の特性を定義できます。

ある項目が、フォーム上の複数のコントロールに対して[データ]特性に割り当てられている場合、最後に選択されたコントロールの内容のみが実行時に更新されます。フォームに同一項目を繰り返して表示する場合は、２つ目以降の項目用に変数項目を作成し、変数項目が表示されるようにする必要があります。

GUI表示フォームには以下のコントロールがあります。

エディット

テキスト

プッシュボタン

チェックボックス

ツリー

ラジオボタン

タブ

リストボックス

コンボボックス

グループ

スタティック（四角）

スタティック（楕円）

ライン

垂直スライダ

水平スライダ

テーブル
カラム

イメージ

OLE

RTF

リッチエディット

サブフォーム

ActiveX


GUIコントロール 特性 エディット

エディットコントロール特性

表示フォーム > GUIコントロール > GUI表示コントロール特性

[エディット]コントロールで値を指定するには、[データ]特性に値を指定する場合と式を指定する場合の2通りの定義方法があります。[エディット]コントロールをカスタマイズするには、ズームして[コントロール特性]シートにアクセスします。

[エディット]コントロールからドラッグした場合、選択されたテキストのみがドラッグされます。

モデル |  |
詳細 | 表示 | 位置とサイズ
データ 項目 コントロール名 書式 型 漢字入力 コンテキストメニュー ドラッグ許可 ロップ許可 | フォント 色 ヘルプ画面 ツールチップ 自動ヘルプ 可視 有効 スタイル 境界 水平整列 垂直整列 | 位置 左辺位置 上辺位置 幅 高さ コントロールレイヤ
入力 | パーク |
必須入力 修正許可 選択プログラム 起動モード 複数行編集 水平スクロール 垂直スクロール スクロールバーの表示 CR許可 自動展開 広域ウィンドウ パスワードエディット | TAB順序 パーキング可 TABで移動 TAB移動方向 |


GUIコントロール 特性 エディット 詳細

詳細

表示フォーム > GUIコントロール > GUI表示コントロール特性 > エディットコントロール特性

データ | データは、データ項目または式として指定します。
項目 | [データ]特性で指定されたデータ項目の名前が表示されます。
コントロール名 | コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。LastClicked 関数の説明を参照してください。 [コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。
書式 | [エディット]コントロールの書式を指定します。ここで変更できるのは、現在のフォーム表示の形式だけです。初期設定値は、[項目]の[書式]特性から継承された書式になります。[式]エディタにズームして、コントロールの書式を表す式を入力することもできます。
型 | 選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。
漢字入力 | この特性は、かな漢字変換プログラム（IME）を自動起動するためのものです。IME を手動で起動する場合は、特にこの欄の設定は必要ありません。 かな漢字変換入力モードの値を返す式を[式]エディタに設定し、その式番号をこの式欄に設定します。ただし、式が返す値は0 ～9 で、式番号は255 以下でなければなりません。
コンテキストメニュー | コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。 式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。 デフォルト値は「0」です。
ドラッグ許可 | 同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。 このコントロールからコピーされたデータは、[ドラッグ開始]イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。
 | ここに設定された式は、タスク起動時にのみ評価されます。
ドロップ許可 | 同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic以外のアプリケーションとの間のデータのドロップ処理を可能にします。 このコントロールへのデータのコピーは、[ドロップ]イベントによるロジックユニットによって意図的に行われるか、Magic エンジンにより自動的に行われます。
 | ここに設定された式は、タスク起動時にのみ評価されます。


GUIコントロール 特性 エディット 入力

入力

表示フォーム > GUIコントロール > GUI表示コントロール特性 > エディットコントロール特性

必須入力

エンドユーザがコントロールに値を入力する必要があるかどうかを指定します。必須にするかどうかを表す論理値を返す式を使用できます。

修正許可

実行時にユーザがコントロール内の値を変更できるかどうかを指定します。

  • Yes……ユーザはコントロール内の値を変更できます。

  • No…… コントロールへのユーザアクセスは拒否されます。

選択プログラム

実行時にエンドユーザが[編集/ズーム]を使用してプログラムを起動することができるかどうかを指定します。プログラム番号を直接入力するか、[プログラム一覧]にズームしてプログラムを選択します。

起動モード

[選択プログラム]特性で定義されたプログラムを呼び出す時期を指定します。有効な値は以下のとおりです。

  • A=後置 …… 呼び出した選択プログラムが終了した時に、カーソルが次の項目に移動するように指定します。

  • B=前置 …… 呼び出した選択プログラムが終了した時に、カーソルが呼び出した項目に戻るように指定します。（デフォルト）

  • P=自動 …… 項目にカーソルが移動すると同時にプログラムが自動的に実行されるように指定します。これにより、ユーザは即座に値を選択できます。この場合は、選択プログラムが終了した後、前置モードの場合と同様にカーソルは呼び出した項目に戻ります。

複数行編集

[エディット]コントロールに複数行のテキストを含めることができるかどうかを指定します。

[テキスト形式]フォームで複数行編集コントロールを使用している場合、フォーム全体に収まるようにコントロールが拡大されます。このコントロールは、ページのサイズに合わせて拡大でき、複数のページにまたがることができます。ページ長を越えた複数行編集コントロールは、Magicの全てのヘッダ制御およびフッタ制御を維持しながら次のページに続きます。

テーブル内にこのコントロールがある場合、テーブルのセルは[エディット]コントロールのサイズに合わせて拡大されます。テーブルのタイトルは各ページに出力されます。そのほかのコントロールは、[エディット]コントロールの上または下に表示されます。

水平スクロール

水平方向のスクロールを可能にするかどうかを指定します。[複数行編集]が[Yes]に設定されているコントロールに適用されます。

垂直スクロール

コントロールの行の間を垂直方向にスクロールを可能にするかどうかを指定します。[複数行編集]が「Yes」に設定されているコントロールに適用されます。

スクロールバーの表示

[垂直スクロール]や[水平スクロール]特性に基づいて、垂直スクロールバーや水平スクロールバーを表示するかどうかを指定します。「Yes」の場合、[エディット]コントロールでスクロールバーを表示します。

CR許可

エンドユーザがEnterキーを押下した時にコントロール内の次の行に移動するか、コントロールを終了するかを指定します。[複数行編集]が「Yes」に設定されているコントロールに適用されます。

自動拡張

必要な時に自動的に拡張ウィンドウをオープンするかどうかを指定します。この特性が「Yes」に設定された場合、ユーザが現在のコントロールの幅を超えた位置にカーソルを動かしたり、テキストを入力すると拡張ウィンドウが自動的にオープンされます。

拡張ウィンドウ

コントロールの表示可能範囲を越えるテキストのための拡張表示用ウィンドウを指定します。[フォーム一覧]にズームして、コントロールに関連付ける拡張ウィンドウのフォームを選択できます。

パスワードエディット

コントロールへのアクセスをパスワード保護するかどうかを指定します。

  • No (デフォルト) …… 入力した内容は保護されず、そのまま表示されます。

  • Yes …… 入力した内容はアスタリスク（*）で表示され、保護されます。


GUIコントロール 特性 エディット 表示

表示

表示フォーム > GUIコントロール > GUI表示コントロール特性 > エディットコントロール特性

フォント

コントロールに表示されるテキストのフォントを指定します。[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。

色

コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。

ヘルプ画面

コントロールに関連付けるヘルプ画面を指定します。この指定はオンラインフォームでのみ有効です。 [ヘルプ一覧]にズームして、ヘルプ画面を選択できます。

ツールチップ

コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

自動ヘルプ

コントロールに関連付ける自動ヘルプを指定します。[ヘルプ一覧]にズームして自動ヘルプを選択できます。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

スタイル

コントロールの外観を指定します。有効な値は、以下の通りです。

  • D=Windows立体（デフォルト）

  • 3=凸立体

  • S=凹立体

  • 2=平面

境界スタイル

コントロールの境界スタイルを指定します。[スタイル]特性が「2=平面」の場合のみ有効です。有効な値は以下のとおりです。

  • T=細線……細線でコントロールを囲みます。

  • H=太線……太線でコントロールを囲みます。

  • N=なし……コントロールに境界線を表示しません。（デフォルト）

水平整列

コントロール内の水平方向のテキストの配置を指定します。有効な値は以下のとおりです。

  • L=左寄せ

  • C=センタリング

  • R=右寄せ

垂直整列

コントロール内の垂直方向のテキストの配置を指定します。有効な値は以下のとおりです。

  • T=上寄せ

  • C=センタリング

  • B=下寄せ


GUIコントロール 特性 ラジオボタン パーク

パーク

表示フォーム > GUIコントロール > GUI表示コントロール特性

TAB順序

[自動タブ順序]モードが無効な場合、この特性に4桁までのTab ID（数値）を入力することができます。Tab IDで指定された順番にTabキーによってカーソルが移動します。

[自動タブ順序]モードが有効な場合、この特性には自動的にTab IDが表示され、入力はできなくなります。

パーキング可

オンラインタスクにおいて、カーソルがコントロール上でパークできるかどうかを指定します。

「Yes」が設定された場合、Tab移動やマウスクリックによってこのコントロールにパークすることができます。式によって動的に指定することもできます。

この特性は、[データ]特性に項目が割り当てられている場合のみ有効です。[サブフォーム]コントロ－ルに対しては、常に有効です。

デフォルト値は、「Yes」です。

TABで移動

この特性は、Tabの移動によってこのコントロールにカーソルを移すことができるかどうかを指定します。「No」に設定された場合、Tabの移動でこのコントロールにはパークされず、マウスクリックでしかカーソルをコントロールに置くことができなくなります。

この特性は、[データ]特性に項目が割り当てられている場合のみ有効です。[サブフォーム]コントロ－ルに対しては、常に有効です。

デフォルト値は、「Yes」です。

TAB移動方向

この特性は、コントロール間のTAB移動をどのフロー方向で有効にするかを指定します。指定可能なオプションは以下の通りです。

  • B=両方向(デフォルト値)

  • F=前方のみ

  • C=後方のみ

この特性は、[GUI表示形式]フォームで[データ]特性に項目が割り当てられており、[パーキング可]特性が「Yes」に設定されている場合のみ有効です。

実行時、コントロールにパークしている時に、Tabキーを押下するとタブID順にカーソルが移動する場合を「前方」、Shift+Tabキーを押下するとタブIDの逆順に移動する場合を「後方」と呼びます。


GUIコントロール 特性 エディット 位置とサイズ

位置とサイズ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > エディットコントロール特性

位置

[位置]特性は、フォームのサイズを変更した時に、コントロールのサイズを変更するかどうかを制御します。[位置]特性は、[コントロールの位置付]ダイアログ内の[左辺割合]、[幅割合]、[上辺割合]、[高さ割合]の組み合わせになります。

この特性からズームして[コントロールの位置付]ダイアログを表示できます。

コントロールの[位置]特性が「0」の場合、フォームのサイズが実行時に変更されてもコントロールのサイズは変化しません。[位置]特性が「0」より大きい場合、フォームのサイズが実行時に変更された時に相対的にサイズが変化します。

[位置]特性を持つコントロールは、元のサイズより小さいサイズにはできません。

左辺位置

コントロールの左上のx座標を指定します。

上辺位置

コントロールの右上のy座標を指定します。

幅

コントロールの幅を指定します。

高さ

コントロールの高さを指定します。

コントロールレイヤ

コントロールがチョイスコントロールの子としてリンクされている場合、選択したコントロールのリンク先である親のチョイスコントロールの階層を表示します。

例えば、3つの選択肢が定義されたメニューを持つコンボボックスがフォームに配置されている場合、エディットを3番目の選択肢にリンクすると、この特性に番号3が表示されます。この特性は、常に無効になっており、フォームレイアウトでのみ変更できます。この特性は、チョイスコントロールにリンクされているコントロールにのみ有効です。

テーブルの子としてリンクされている場合は、カラム番号（[カラム]コントロールのレイヤ番号）が表示されます。


GUIコントロール 特性 ラジオボタン

ラジオボタンコントロール特性

表示フォーム > GUIコントロール > GUI表示コントロール特性

モデル |  |
詳細 | 表示 | 位置とサイズ
データ 項目 選択項目リスト 表示項目リスト コントロール名 型 ソーステーブル 表示項目 リンク項目 インデックス 範囲 コンテキストメニュー ドラッグ許可 ドロップ許可 | フォント 色 ヘルプ画面 ツールチップ 自動ヘルプ 可視 有効 表示方法 スタイル 複数行 境界 水平整列 垂直整列 列数 イメージファイル名 | 位置 左辺位置 上辺位置 幅 高さ コントロールレイヤ
入力 | パーク |
必須入力 修正許可 選択プログラム 起動モード 照会時修正許可 | TAB順序 パーキング可 TABで移動 TAB移動方向 |

参照

Windowsラジオボタンコントロール


GUIコントロール 特性 ラジオボタン Windowsコントロール

Windowsラジオボタンコントロール

表示フォーム > GUIコントロール > GUI表示コントロール特性 > ラジオボタンコントロール特性

Magicでは、[ラジオボタン]コントロールはWindowsコントロールとして設定できます。ボタンをWindowsコントロールとして設定すると、自由にラジオボタンを分散させることができます。

Magicは、同じ項目を複数のラジオボタンに割り当てることができます。

[ラジオボタン]コントロールは、[スタイル]特性で「3=凸立体」または「S=凹立体」に設定された場合、Windowsコントロールとして設定されます。

ラジオボタンは、複数選択オブジェクトのために使用されます。ラジオボタンは、不連続な入力範囲が指定されたカラムに割り当てることができます。それぞれの範囲値は、値が表示された１つのラジオボタンとして表示されます。ボタンは個別の要素のように見えますが、1つのコントロールとしてグループ化するボックスが表示されます。ユーザは、グループ内のコントロールから1つのボタンのみ選択できます。ユーザがボタンを選択した場合、黒いドットが丸の中に表示されるか、ボタンが押されたように表示されます。カラムには、ボタンを選択することで値が設定されます。

論理型の項目がラジオボタンとして表示され、範囲が指定されていない場合、「True」と「false」がデフォルトとして使用されます。

分離されたボタン

Magic V10では、ボタンを分散して配置できます。

データグループ化されたラジオボタン

規約として、同じ項目を異なるコントロールに割り当てることはできません。もしこのような設定を行った場合、1つのコントロールのみパーク可能になります。ただし、[ラジオボタン]コントロールは、この規約の対象外となります。同じ項目を異なるラジオボタンに割り当てることができます。

ラジオボタンの値を切り換えた場合、選択された値に基づいて割り当てられている項目が更新されます。１つのラジオボタンの選択状態を別のボタンに切り替えた場合、前のラジオボタンの選択状態は解除されます。

結合特性

同じ項目が割り当てられている全てのラジオボタンのコントロール特性は、同じ値にならなければなりません。これは、１つのラジオボタンの特性を修正した場合、同じ項目を割り当てた他のラジオボタンの特性も同じ値に変更されることを意味しています。

ラジオボタンが結合された時、以下の特性が共有されます。

モデル

コントロール名

必須入力

修正許可

選択プログラム

起動モード

照会モード時修正許可

タブ順序

パーキング可

タブで移動

タブ移動方向

コントロールレイヤ

結合特性の扱い

ラジオボタンに項目を割り当てる場合、すでに同じ項目が別のラジオボタンに割り付けられていると、Magicは現在のラジオボタンの特性に、既存のラジオボタンの特性を結合特性として設定します。

複数選択のラジオボタンに対してデータを設定した場合、結合特性には、最初に選択されたボタンと同じ特性値が設定されます。

コントロールレベルとコントロ－ル指定ハンドラ

同じ項目を持つ全てのラジオボタンは、同じコントロール名が設定されているものとして扱われます。[ラジオボタン]コントロールに対する操作を行うと、1つのコントロールのように動作します。

コントロール名関数

コントロール名に関する関数には以下のものがあります。

CtrlGoto

LastClicked

LastPark


GUIコントロール 特性 ラジオボタン 詳細

詳細

表示フォーム > GUIコントロール > GUI表示コントロール特性 > ラジオボタンコントロール特性

データ | データは、データ項目（値）または式として指定します。
項目 | [データ]特性で指定されたデータ項目の名前を表示します。
選択項目リスト | コントロールから選択することで返される値の範囲を指定します。選択値は、カンマ（,）区切りで複数指定できます。 [特性が定義されていない場合は、この値で表示されます。[特性が定義されている場合は、この値は表示されません。 [データ]への継承指定を行うことで、項目の[範囲]値を継承することができます。
表示項目リスト | コントロールに表示させる選択肢を指定します。表示のみで入力値にはなりません。選択値は、カンマ（,）区切りで複数指定できます。 この特性が指定されている場合は、[選択項目リスト]特性に同じ順番で選択値が指定されている必要があります。 例えば、[選択項目リスト]に「1,2,3」と指定されていて、[表示項目リスト]に、「赤,青,緑」と指定されている場合。フォーム上の表示は、「赤,青,緑」になりますが、実際に入力される値は、「1,2,3」のいずれかになります。 この特性は、Unicode文字で指定します。Magic V9Plus用のアプリケーションから移行した場合、デフォルトのコードページを使用してANSIからUnicodeへの変更が行われます。
コントロール名 | コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。 [コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。
型 | 選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。
ソーステーブル | コントロールと関連付けるテーブルの番号を指定します。[データソース一覧]からテーブルを選択することができます。 この特性を設定した場合、[表示項目]や[リンク項目]特性を指定する必要があります。
コンテキストメニュー | コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。 式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。 デフォルト値は「0」です。
ドラッグ許可 | 同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。 このコントロールからコピーされたデータは、[ドラッグ開始]イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。
 | ここに設定された式は、タスク起動時にのみ評価されます。
ドロップ許可 | 同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic以外のアプリケーションとの間のデータのドロップ処理を可能にします。 このコントロールへのデータのコピーは、[ドロップ]イベントによるロジックユニットによって意図的に行われるか、Magic エンジンにより自動的に行われます。
 | ここに設定された式は、タスク起動時にのみ評価されます。
表示項目 | 画面に表示されるテーブルのカラムを指定します。[ソーステーブル]特性で指定されたテーブルのカラムを[項目一覧]から選択できます。
リンク項目 | 実際に格納されるテーブルのカラムを指定します。[ソーステーブル]特性で指定されたテーブルのカラムを[項目一覧]から選択できます。
インデックス | 画面に表示される順序を決めるテーブルのインデックスを指定します。[ソーステーブル]特性で指定されたテーブルのインデックスを[インデックス一覧]から選択できます。
範囲 | 画面に表示されるレコードの範囲を決めるための各項目の開始および終了範囲を指定します。[ソーステーブル]特性で指定されたテーブルに対して、[項目範囲]テーブルから範囲を指定するカラムを選択できます。指定されたテーブルに範囲に該当するレコードが存在しない場合、選択肢は何も表示されません。


GUIコントロール 特性 ラジオボタン 入力

入力

表示フォーム > GUIコントロール > GUI表示コントロール特性 > ラジオボタンコントロール特性

必須入力

エンドユーザがコントロールに値を入力する必要があるかどうかを指定します。必須にするかどうかを表す論理値を返す式を使用できます。

修正許可

実行時にユーザがコントロール内の値を変更できるかどうかを指定します。

  • Yes……ユーザはコントロール内の値を変更できます。

  • No…… コントロールへのユーザアクセスは拒否されます。

選択プログラム

実行時にエンドユーザが[編集/ズーム]を使用してプログラムを起動することができるかどうかを指定します。プログラム番号を直接入力するか、[プログラム一覧]にズームしてプログラムを選択します。

起動モード

[選択プログラム]特性で定義されたプログラムを呼び出す時期を指定します。有効な値は以下のとおりです。

  • A=後置……呼び出した選択プログラムが終了した時に、カーソルが次の項目に移動するように指定します。

  • B=前置……呼び出した選択プログラムが終了した時に、カーソルが呼び出した項目に戻るように指定します。（デフォルト）

  • P=自動……項目にカーソルが移動すると同時にプログラムが自動的に実行されるように指定します。これにより、ユーザは即座に値を選択できます。この場合は、選択プログラムが終了した後、前置モードの場合と同様にカーソルは呼び出した項目に戻ります。

照会モード時修正許可

タスクが照会モードの場合も、チョイスコントロール（ラジオボタン、タブ、リストボックス、コンボボックス、チェックボックス）の切替操作ができるかどうかを指定します。


GUIコントロール 特性 ラジオボタン 表示

表示

表示フォーム > GUIコントロール > GUI表示コントロール特性 > ラジオボタンコントロール特性

フォント

コントロールに表示されるテキストのフォントを指定します。[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。

色

コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。[スタイル]特性が、「2= 平面」の場合のみ有効です。

ヘルプ画面

コントロールに関連付けるヘルプ画面を指定します。この指定はオンラインフォームでのみ有効です。 [ヘルプ一覧]にズームして、ヘルプ画面を選択できます。

ツールチップ

コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

自動ヘルプ

コントロールに関連付ける自動ヘルプを指定します。[ヘルプ一覧]にズームして自動ヘルプを選択できます。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

表示方法

コントロールの表示方法を指定します。以下のオプションがあります。

  • R=ラジオ(デフォルト) …… 通常のラジオボタンの表示になります。

  • U=ボタン …… コントロールはボタン表示になります。このオプションは、[スタイル]特性が、「S=凹立体」と「2=平面」の場合のみ有効です。選択された値のボタンが押されたような表示になります。

スタイル

コントロールの外観を指定します。有効な値は、以下の通りです。

  • 3=凸立体

  • S=凹立体

  • 2=平面

デフォルトは、APG で作成した場合「3=凸立体」、[フォーム]エディタ上で貼り付けた場合は「S=凹立体」になります。

複数行

表示されるテキストを複数行で表示するかどうかを指定します。このオプションは、[スタイル]特性が、「S=凹立体」と「2=平面」の場合のみ有効です。

  • Yes …… テキストが1行に収まらない場合、折り返して表示されます。

  • No …… テキストが1行分のみ表示されます。

境界スタイル

コントロールの境界スタイルを指定します。[スタイル]特性が「2=平面」の場合のみ有効です。有効な値は以下のとおりです。

  • T=細線……細線でコントロールを囲みます。（デフォルト）

  • H=太線……太線でコントロールを囲みます。

  • N=なし……コントロールに境界線を表示しません。

水平整列

コントロール内の水平方向のテキストの配置を指定します。有効な値は以下のとおりです。

  • L=左寄せ

  • C=センタリング

  • R=右寄せ

垂直整列

コントロール内の垂直方向のテキストの配置を指定します。有効な値は以下のとおりです。

  • T=上寄せ

  • C=センタリング(デフォルト)

  • B=下寄せ

このオプションは、[スタイル]特性が、「S=凹立体」と「2=平面」の場合のみ有効です。

列数

コントロールに表示する列数を指定します。

イメージファイル名

この特性には、ラジオボタンに表示するイメージファイルのファイル名を指定します。式で指定することで動的に変更することができます。

イメージはオリジナルのサイズで表示されます。また、[垂直整列]や[水平整列]の各特性値に基づいて表示位置が決まります。

デフォルト値は、空白です。


GUIコントロール 特性 ラジオボタン 位置とサイズ

位置とサイズ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > ラジオボタンコントロール特性

位置

[位置]特性は、フォームのサイズを変更した時に、コントロールのサイズを変更するかどうかを制御します。[位置]特性は、[コントロールの位置付]ダイアログ内の[左辺割合]、[幅割合]、[上辺割合]、[高さ割合]の組み合わせになります。

この特性からズームして[コントロールの位置付]ダイアログを表示できます。

コントロールの[位置]特性が「0」の場合、フォームのサイズが実行時に変更されてもコントロールのサイズは変化しません。[位置]特性が「0」より大きい場合、フォームのサイズが実行時に変更された時に相対的にサイズが変化します。

[位置]特性を持つコントロールは、元のサイズより小さいサイズにはできません。

左辺位置

コントロールの左上のx座標を指定します。

上辺位置

コントロールの右上のy座標を指定します。

幅

コントロールの幅を指定します。

高さ

コントロールの高さを指定します。

コントロールレイヤ

コントロールがチョイスコントロールの子としてリンクされている場合、選択したコントロールのリンク先である親のチョイスコントロールの階層を表示します。

例えば、3つの選択肢が定義されたメニューを持つコンボボックスがフォームに配置されている場合、エディットを3番目の選択肢にリンクすると、この特性に番号3が表示されます。この特性は、常に無効になっており、フォームレイアウトでのみ変更できます。この特性は、チョイスコントロールにリンクされているコントロールにのみ有効です。

テーブルの子としてリンクされている場合は、カラム番号（[カラム]コントロールのレイヤ番号）が表示されます。


GUIコントロール 特性 四角

スタティック（四角）コントロール特性

表示フォーム > GUIコントロール > GUI表示コントロール特性

モデル |  |
詳細 | 表示 | 位置とサイズ
テキスト コントロール名 RTF使用 スタティックタイプ コンテキストメニュー ドラッグ許可 ドロップ許可 | フォント 色 ツールチップ 可視 有効 スタイル 境界 水平整列 垂直整列 線種 線幅 | 位置 左辺位置 上辺位置 幅 高さ コントロールレイヤ
入力 |  |
複数行編集 |  |


GUIコントロール 特性 四角 詳細

詳細

表示フォーム > GUIコントロール > GUI表示コントロール特性 > スタティック（四角）コントロール特性

テキスト | コントロールに表示するテキストを指定します。
コントロール名 | コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。LastClicked 関数の説明を参照してください。 [コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。
RTFの使用 | リッチテキスト形式を有効にするかどうかを指定します。[スタティックタイプ]特性が「テキスト」の場合のみ有効です。
スタティックタイプ | [スタティック]コントロールのタイプを指定します。ここからズームして、[スタティックタイプ]ダイアログを表示できます。[RTFの使用]特性が「No」の場合のみ有効です。
コンテキストメニュー | コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。 式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。 デフォルト値は「0」です。
ドラッグ許可 | 同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。 このコントロールからコピーされたデータは、[ドラッグ開始]イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。
 | ここに設定された式は、タスク起動時にのみ評価されます。
ドロップ許可 | 同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic以外のアプリケーションとの間のデータのドロップ処理を可能にします。 このコントロールへのデータのコピーは、[ドロップ]イベントによるロジックユニットによって意図的に行われるか、Magic エンジンにより自動的に行われます。
 | ここに設定された式は、タスク起動時にのみ評価されます。


GUIコントロール 特性 四角 入力

入力

表示フォーム > GUIコントロール > GUI表示コントロール特性 > スタティック（四角）コントロール特性

複数行編集

コントロールに複数行のテキストを含めることができるかどうかを指定します。


GUIコントロール 特性 四角 表示

表示

表示フォーム > GUIコントロール > GUI表示コントロール特性 > スタティック（四角）コントロール特性

フォント

コントロールに表示されるテキストのフォントを指定します。[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。

色

コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。

ツールチップ

コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

スタイル

コントロールの外観を指定します。有効な値は、以下の通りです。

  • 2=平面

  • 3=凸立体（デフォルト）

  • S=凹立体

  • W=Window……このオプションが設定された場合、WindowスタイルのXPテーマは使用されません。

  • E=エンボス

注：他のスタティックタイプに長方形が指定されている場合、Windowsとエンボスの指定は無効になります。

境界スタイル

コントロールの境界スタイルを指定します。[スタイル]特性が「2=平面」の場合のみ有効です。有効な値は以下のとおりです。

  • T=細線……細線でコントロールを囲みます。

  • H=太線……太線でコントロールを囲みます。

  • N=なし……コントロールに境界線を表示しません。

水平整列

コントロール内の水平方向のテキストの配置を指定します。有効な値は以下のとおりです。

  • L=左寄せ

  • C=センタリング

  • R=右寄せ

垂直整列

コントロール内の垂直方向のテキストの配置を指定します。有効な値は以下のとおりです。

  • T=上寄せ

  • C=センタリング

  • B=下寄せ

線種

コントロールの線の外観を指定します。スタイルが平面の時のみ有効です。有効な値は以下のとおりです。

  • R=実線

  • T=点線

  • S=破線

  • A=一点鎖線

  • D=二点鎖線

線幅

コントロールの線の幅を指定します。幅はフォームの寸法単位により異なります。


GUIコントロール 特性 四角 位置とサイズ

位置とサイズ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > スタティック（四角）コントロール特性

位置 | [位置]特性は、フォームのサイズを変更した時に、コントロールのサイズを変更するかどうかを制御します。[位置]特性は、[コントロールの位置付]ダイアログ内の[左辺割合]、[幅割合]、[上辺割合]、[高さ割合]の組み合わせになります。 この特性からズームして[コントロールの位置付]ダイアログを表示できます。 コントロールの[位置]特性が「0」の場合、フォームのサイズが実行時に変更されてもコントロールのサイズは変化しません。[位置]特性が「0」より大きい場合、フォームのサイズが実行時に変更された時に相対的にサイズが変化します。 [位置]特性を持つコントロールは、元のサイズより小さいサイズにはできません。
左辺位置 | コントロールの左上のx座標を指定します。
上辺位置 | コントロールの右上のy座標を指定します。
幅 | コントロールの幅を指定します。
高さ | コントロールの高さを指定します。
コントロールレイヤ | コントロールがチョイスコントロールの子としてリンクされている場合、選択したコントロールのリンク先である親のチョイスコントロールの階層を表示します。 例えば、3つの選択肢が定義されたメニューを持つコンボボックスがフォームに配置されている場合、エディットを3番目の選択肢にリンクすると、この特性に番号3が表示されます。この特性は、常に無効になっており、フォームレイアウトでのみ変更できます。この特性は、チョイスコントロールにリンクされているコントロールにのみ有効です。 テーブルの子としてリンクされている場合は、カラム番号（[カラム]コントロールのレイヤ番号）が表示されます。


GUIコントロール 特性 テーブル

テーブルコントロール特性

表示フォーム > GUIコントロール > GUI表示コントロール特性

モデル |  |
詳細 | 表示 | 位置とサイズ
幅固定 コントロール名 コンテキストメニュー ドラッグ許可 ドロップ許可 | 色 テーブル色の指定 交互表示色 ツールチップ 可視 スタイル 境界 スクロールバー 区切り ハイライト行のスタイル ハイライト行の色 タイトル高さ 行高さ 下辺の間隔 カラム数 カラムの区切線 最終区切線 ウィンドウ内テーブル サイズ変更可 カラムの並べ替え可 マルチマーキング | 位置 左辺位置 上辺位置 幅 高さ コントロールレイヤ

参照

カラムコントロール特性


GUIコントロール 特性 テーブル 詳細

詳細

表示フォーム > GUIコントロール > GUI表示コントロール特性 > テーブルコントロール特性

幅固定

カラムの表示状態によってテーブルの表示幅を指定します。

  • Yes……カラムが表示／非表示で切り替わってもテーブルの幅は変わりません。

  • No ……カラムの表示／非表示によってテーブルの幅が変わります。

この設定によってテーブルは以下のように動作します。

[幅固定]=No でカラムが非表示の場合

テーブル中の全てのカラムは非表示カラムの幅によって変わり、テーブルの幅は非表示カラム幅によって小さくなります。

[幅固定]=No でカラムが表示の場合

テーブルの全てのカラムは表示カラムによって変わります。テーブルの幅は表示カラムの幅によって増加します。

[幅固定]=Yes でカラムが非表示の場合

連続するカラムは非表示カラムの位置によって変わります。非表示カラムのサイズによって拡大します。非表示カラムが最後のカラムの場合、最後の区切り線は、最後のカラムとテーブルのスライダの間の空白を削除して、非表示カラムの位置に変わります。

[幅固定]=Yes でカラムが表示の場合

連続するカラムは表示カラムの幅によって変わります。その幅は表示されたカラムの幅によって減少します。表示されたカラムの幅が連続するカラムのそれより大きな場合、連続するカラムは20ピクセルの最小幅にセットされます。また、表示されたカラムの残りの幅は、次のカラムから取られます。表示されたカラムが次のカラムの幅より大きな場合、このカラムはさらに20のピクセル減少し、その後のカラムも減少されます。

最後のカラムが縮小され、しかし、表示カラムの幅は分配されなければ、同じ処理が、テーブルの第1カラムまで表示されたカラムに先行するカラムのために実行されます。
第1のカラムが縮小されており、表示カラムが超過幅を持っている場合、表示カラムの幅は残りの幅を引いてオリジナルのカラム幅になります。

上記の計算のために使用されたカラム幅は[フォーム]エディタの中で固定に設定されたもので、式によって実行時に動的に指定されるものではありません。

式で指定された場合、計算の後にカラムは整列され、その後式によって幅が再計算されるだけです。

コントロール名

コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。LastClicked関数の説明も参照してください。

[コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。

コンテキストメニュー

コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。

式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。

デフォルト値は「0」です。

ドラッグ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。

このコントロールからコピーされたデータは、[ドラッグ開始]イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。

ここに設定された式は、タスク起動時にのみ評価されます。

ドロップ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic以外のアプリケーションとの間のデータのドロップ処理を可能にします。

このコントロールへのデータのコピーは、[ドロップ]イベントによるロジックユニットによって意図的に行われるか、Magic エンジンにより自動的に行われます。

ここに設定された式は、タスク起動時にのみ評価されます。


GUIコントロール 特性 テーブル 表示

表示

表示フォーム > GUIコントロール > GUI表示コントロール特性 > テーブルコントロール特性

色

コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。通常は、[スタイル]特性が「2=平面」の場合にのみ有効ですが、[テーブル色の指定]特性が「T=テーブルに依存」の場合は、全てのスタイル指定で有効になります。

テーブル色の指定

テーブルの背景色を各カラムごとに指定された色で表示するか、テーブル全体で同じ色によって表示するかを定義します。

  • C=カラムに依存……テーブルに配置された各カラムの[色]特性によって表示される色が決まります。[スタイル]特性が「3= 凸立体」の場合は、無効です。

  • T=テーブルに依存……[テーブル]コントロールの[色]特性によってテーブルの背景色が決まります。この場合、[カラム]コントロールの[色]特性は無効になります。[スタイル]特性によって以下のように決定されます。

  • 2=平面 …… カラムヘッダや空白表示、およびカラムの背景は[色]特性に指定された背景色で表示されます。カラムタイトルとテーブルの区切り線は[色]特性に指定され前景色が表示されます。

  • 3=凸立体 …… カラムタイトルは[色]特性に指定された前景色で表示されます。

  • D=Windows立体 …… カラムや空白表示の背景は[色]特性に指定された背景色で表示されます。カラムタイトルは、[色]特性に指定された前景色で表示されます。

  • W=Windows …… カラムの背景と空きスペースの背景は、[色]特性で設定されている背景色が表示されます。カラムタイトルは[色]特性で設定された前景色が表示されます。

交互表示色

テーブルの行の背景色を交互に変更して表示させる場合の変更色を指定します。デフォルト値は「0」です。この場合、全ての行の背景色は同じになります。定義式では指定できません。[テーブル色の指定]特性が「T= テーブルに依存」の場合のみ有効です。

実行時、行の背景色は、[色]特性で指定した色（奇数行）と、[交互表示色]特性で指定した色（偶数行）の交互に切り替わります。行が追加されたり削除された場合、奇数行と偶数業の関係に基づいて表示が切り替わります。データ行がテーブル全体にない場合（テーブルの下部に何も表示されない部分がある場合）も、交互に色が切り替わって表示されます。

ツールチップ

コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。

スタイル

コントロールの外観を指定します。有効な値は、以下の通りです。

  • W=Windows（デフォルト）

  • D=Windows立体

  • 3=凸立体

  • 2=平面

境界スタイル

コントロールの境界スタイルを指定します。[スタイル]特性が「2= 平面」と「W=Windows 立体」、「W=Windows」の時に有効です。有効な値は以下のとおりです。

  • T=細線……細線でコントロールを囲みます。

  • H=太線……太線でコントロールを囲みます。

  • N=なし……コントロールに境界線を表示しません。

スクロールバー

[テーブル]コントロールに垂直スクロールバーを配置するかどうかを指定します。

区切り

[テーブル]コントロールの行間に分割線を表示するかどうかを指定します。

ハイライト行のスタイル

現在の行を強調表示する方法を指定します。

  • N=なし……現在の行を強調表示しません。

  • F= フレーム……現在の行が、行を取り囲むフレームして強調表示されます。フレームの色は[ハイライト行の色]特性で指定された色の前景色になります。
    [区切り]特性が「No」の場合は、フレームは表示されません。

  • B=背景……現在の行が[ハイライト行の色]特性で指定された色の背景色によって強調表示されます。

  • C=背景とコントロール……現在の行が、背景オプションのような背景色で強調表示されます。強調された色を表示するために、このモードは、また現在行の全てのコントロールの色を変更します。

ハイライト行の色

[ハイライト行のスタイル]特性の設定によって強調表示される色を指定します。[基本色一覧]にズームして、色を選択できます。

タイトル高さ

[テーブル]コントロールのタイトルの高さを指定します。この特性は、[フォーム]エディタでタイトルバーの下端をクリックしてドラッグして設定することもできます。

行高さ

[テーブル]コントロールの行の高さを指定します。テーブルの先頭行の下端をクリックおよびドラッグして設定することもできます。

下辺位置

ウィンドウのサイズに応じてテーブルの下辺の位置を決める方法を指定します。

  • R=最下行内（デフォルト） …… テーブルの下辺とウィンドウの下辺の間隔が調整され、部分表示行（何も表示されず、行の高さが指定行より小さい行）が表示されないようにします。

  • N=最下行まで…… 部分表示行が表示され、テーブルの下辺とウィンドウの下辺の間隔が同じになるように調整されます。

カラム数

[テーブル]コントロール内のカラムの数を表示します。カラム数の変更はフォームレイアウト上でのみ行うことができます。

カラムの区切線

[テーブル]コントロールのカラムの間に区切り線を表示するかどうかを指定します。

最終区切線

タイトルバーに最終カラムの区切線を表示するかどうかを指定します。

  • Yes……タイトルバーに最終カラムの区切線を表示します。

  • No……区切線を表しません。

デフォルトの設定は以下の通りです。

  • GUI表示形式フォームの場合…Yes

  • GUI出力形式フォームの場合…No

ウィンドウ内テーブル

[テーブル]コントロールの[サイズ変更可]特性が[Yes]に設定されている場合、カラムのサイズが変更された時に[テーブル]コントロールの表示領域を変更するかどうかを指定します。テーブルのサイズが表示領域を超えた場合、スクロールバーが表示されます。

サイズ変更可

実行モードにおいて[テーブル]コントロールのカラムの区切り線をドラッグすることでカラムのサイズを変更できるようにするかどうかを指定します。

カラムのサイズを変更するには２つの方法があります。

  • カラムの区切り線をクリックしてドラッグします。この場合、区切りの両端のカラムの幅が変わります。

  • カラムの区切り線をクリックして、Shiftキーを押しながらドラッグします。この場合、区切りの左端のカラムの幅が変わり、テーブルの幅も変わります。

カラムの並び替え可

この特性は、[スタイル]特性が「W=Windows」に設定された場合のみ有効です。

アプリケーションの実行時にエンドユーザがカラムの順序を変更することができるかどうかを指定します。

  • Yes……カラムタイトルをドラッグし、別のカラムのタイトル部にドロップすることで、カラムの順番を変更することができます。

  • No……カラムの順序は変更できません。

エンドユーザが実行中にテーブルカラムの順番を変更した場合、そのコンテキスト内でのみ有効です。タスクを一度終了して再起動した場合、開発時の順番で表示されます。

マルチマーキング

[テーブル]コントロールのマルチマーキング機能を有効にするかどうかを指定します。

マークされたテーブルに対してユーザが定義した処理を実行したり、マーク行を削除したりすることができます。


GUIコントロール 特性 テーブル 位置とサイズ

位置とサイズ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > テーブルコントロール特性

位置

[位置]特性は、フォームのサイズを変更した時に、コントロールのサイズを変更するかどうかを制御します。[位置]特性は、[コントロールの位置付]ダイアログ内の[左辺割合]、[幅割合]、[上辺割合]、[高さ割合]の組み合わせになります。

この特性からズームして[コントロールの位置付]ダイアログを表示できます。

コントロールの[位置]特性が「0」の場合、フォームのサイズが実行時に変更されてもコントロールのサイズは変化しません。[位置]特性が「0」より大きい場合、フォームのサイズが実行時に変更された時に相対的にサイズが変化します。

[位置]特性を持つコントロールは、元のサイズより小さいサイズにはできません。

左辺位置

コントロールの左上のx座標を指定します。

上辺位置

コントロールの右上のy座標を指定します。

幅

コントロールの幅を指定します。

高さ

コントロールの高さを指定します。

コントロールレイヤ

コントロールがチョイスコントロールの子としてリンクされている場合、選択したコントロールのリンク先である親のチョイスコントロールの階層を表示します。

例えば、3つの選択肢が定義されたメニューを持つコンボボックスがフォームに配置されている場合、エディットを3番目の選択肢にリンクすると、この特性に番号3が表示されます。この特性は、常に無効になっており、フォームレイアウトでのみ変更できます。この特性は、チョイスコントロールにリンクされているコントロールにのみ有効です。


GUIコントロール 特性 カラム

カラムコントロール特性

表示フォーム > GUIコントロール > GUI表示コントロール特性

モデル |  |
詳細 | 表示 | 位置とサイズ
カラムタイトル ソート可 カラムのマーキング コンテキストメニュー | 上境界線 右境界線 水平整列 垂直整列 フォント 色 可視 | 位置 幅 コントロールレイヤ


GUIコントロール 特性 カラム 詳細

詳細

表示フォーム > GUIコントロール > GUI表示コントロール特性 > カラムコントロール特性

カラムタイトル | [テーブル]コントロール内のカラムのタイトルを入力します。広域表示ウィンドウ（F6）を表示することで、複数行入力ができます。
ソート可 | この特性を「Yes」に指定すると、このカラムを使用してテーブルをソートできるようになります。
カラムのマーキング | この特性を「Yes」に指定すると、このカラムを使用してテーブルの行をマークできるようになります。
コンテキストメニュー | コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。 式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。 デフォルト値は「0」です。


GUIコントロール 特性 カラム 表示

表示

表示フォーム > GUIコントロール > GUI表示コントロール特性 > カラムコントロール特性

上境界線

カラムの上の境界線を表示するか否かを指定します。

右境界線

カラムの右の境界線を表示するか否かを指定します。

水平整列

コントロール内の水平方向のテキストの配置を指定します。有効な値は以下のとおりです。

  • L=左寄せ

  • C=センタリング

  • R=右寄せ

垂直整列

コントロール内の垂直方向のテキストの配置を指定します。有効な値は以下のとおりです。

  • T=上寄せ

  • C=センタリング

  • B=下寄せ

フォント

コントロールに表示されるテキストのフォントを指定します。[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。

色

コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。


GUIコントロール 特性 カラム 位置とサイズ

位置とサイズ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > カラムコントロール特性

位置 | テーブルのサイズ変更によってカラムのサイズが変更されるかどうかを「Yes」または「No」で指定します。式で動的に指定することもできます。
幅 | フォームのオープン時のカラム幅を指定します。フォームの寸法単位に基づいた値を指定します。
コントロールレイヤ | コントロールがチョイスコントロールの子としてリンクされている場合、選択したコントロールのリンク先である親のチョイスコントロールの階層を表示します。 例えば、3つの選択肢が定義されたメニューを持つコンボボックスがフォームに配置されている場合、エディットを3番目の選択肢にリンクすると、この特性に番号3が表示されます。この特性は、常に無効になっており、フォームレイアウトでのみ変更できます。この特性は、チョイスコントロールにリンクされているコントロールにのみ有効です。


GUIコントロール 特性 タブ

タブコントロール特性

表示フォーム > GUIコントロール > GUI表示コントロール特性

モデル |  |
詳細 | 表示 | 位置とサイズ
データ 項目 選択項目リスト 表示項目リスト コントロール名 型 ソーステーブル 表示項目 リンク項目 インデックス 範囲 コンテキストメニュー ドラッグ許可 ドロップ許可 | フォント 色 ヘルプ画面 ツールチップ 自動ヘルプ 可視 有効 スタイル 水平整列 タブラベル位置 ホットトラック 複数行 タブ幅 イメージ一覧ファイル名 イメージ一覧インデックス | 位置 左辺位置 上辺位置 幅 高さ コントロールレイヤ
入力 | パーク |
必須入力 修正許可 選択プログラム 起動モード 照会モード時修正許可 | TAB順序 パーキング可 TABで移動 TAB移動方向 |


GUIコントロール 特性 タブ Windowsコントロール

Windowsタブコントロール

表示フォーム > GUIコントロール > GUI表示コントロール特性 > タブコントロール特性

Magicの[タブ]コントロールがWindowsコントロールと設定された場合、Windows OSのコンテナ上で実行されることになります。これは、コントロールの上辺や左辺の座標が[タブ]コントロール内にある場合、コントロールが自動的に[タブ]コントロールの子コントロールとなり、コントロールがタブの境界内に含まれていることを意味しています。

ドラッグ&ドロップ

左辺と上辺の座標が、[タブ]コントロール上にあるWindowsタブコントロール上でドラッグ&ドロップされた場合、そのコントロールはタブの現在のレイヤにリンクされ、タブに含まれます。コントロールが[タブ]コントロールの境界の外にドラッグされたり、ドロップされた場合、コントロールはタブにリンクされず、タブの子コントロールにはなりません。

V9Plus以前では、[上辺位置]と[左辺位置]の値は、コントロールがリンクされたかどうか、[タブ]コントロールの子コントロールかどうかを決定していました。Ver10では、[上辺位置]と[左辺位置]の特性値は無視されます。これは、開発時にコントロールが[タブ]コントロールの領域に配置された場合、実行エンジンは、コントロールが[タブ]コントロールにリンクされ、子コントロールとして認識されていることを意味しています。

別のコントロールの上辺と左辺の座標が、[タブ]コントロールの領域にある場合、リンクされたコントロールは[タブ]コントロールの子コントロールとして設定され、[タブ]コントロールに含まれます。別のコントロールの上辺と左辺の座標が、[タブ]コントロールの領域外にある場合、タブにリンクされていても、フォームの子コントロールになります。タブからコントロールのリンクを解除した場合、そのコントロールはフォームの子コントロールとなります。

Zオーダ

Windowsのタブコンテナは、非WindowsコントロールのZオーダより上位に扱われます。これは、Windowsコントロールが常に非Windowsコントロールより上位に配置されることを意味しています。

特性

Magicの[タブ]コントロールをWindowsタブコントロールとして指定するには、以下の特性を有効にする必要があります。

ホットトラック

複数行編集

タブ幅

イメージ一覧ファイル名

イメージ一覧インデックス


GUIコントロール 特性 タブ 詳細

詳細

表示フォーム > GUIコントロール > GUI表示コントロール特性 > タブコントロール特性

データ | データは、データ項目（値）または式として指定します。
項目 | [データ]特性で指定されたデータ項目の名前を表示します。
選択項目リスト | コントロールから選択することで返される値の範囲を指定します。選択値は、カンマ（,）区切りで複数指定できます。 [特性が定義されていない場合は、この値で表示されます。[特性が定義されている場合は、この値は表示されません。 [データ]特性への継承指定を行うことで、項目の[範囲]特性を継承することができます。 この特性には、Unicode値のみ有効です。V9Plus用のアプリケーションから移行した場合、デフォルトのコードページを使用してANSIからUnicodeへの変更が行われます。
選択表示リスト | コントロールに表示させる選択肢を指定します。表示のみで入力値にはなりません。選択値は、カンマ（,）区切りで複数指定できます。 この特性が指定されている場合は、[選択項目リスト]特性に同じ順番で選択値が指定されている必要があります。 例えば、[選択項目リスト]特性に「1,2,3」と指定されていて、[選択表示リスト]特性に、「赤,青,緑」と指定されている場合。フォーム上の表示は、「赤,青,緑」になりますが、実際に入力される値は、「1,2,3」のいずれかになります。 この特性には、Unicode値で指定できます。V9Plus用のアプリケーションから移行した場合、デフォルトのコードページを使用してANSIからUnicodeへの変更が行われます。
コントロール名 | コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。LastClicked関数の説明も参照してください。 [コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。
型 | 選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。
ソーステーブル | コントロールと関連付けるテーブルの番号を指定します。[データソース一覧]からテーブルを選択することができます。 この特性を設定した場合、[表示項目]や[リンク項目]特性を指定する必要があります。
表示項目 | 画面に表示されるテーブルのカラムを指定します。[ソーステーブル]特性で指定されたテーブルのカラムを[項目一覧]から選択できます。
リンク項目 | 実際に格納されるテーブルのカラムを指定します。[ソーステーブル]特性で指定されたテーブルのカラムを[項目一覧]から選択できます。
インデックス | 画面に表示される順序を決めるテーブルのインデックスを指定します。[ソーステーブル]特性で指定されたテーブルのインデックスを[インデックス一覧]から選択できます。
範囲 | 画面に表示されるレコードの範囲を決めるための各項目の開始および終了範囲を指定します。[ソーステーブル]特性で指定されたテーブルに対して、[項目範囲]テーブルから範囲を指定するカラムを選択できます。指定されたテーブルに範囲に該当するレコードが存在しない場合、選択肢は何も表示されません。
コンテキストメニュー | コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。 式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。 デフォルト値は「0」です。
ドラッグ許可 | 同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。 このコントロールからコピーされたデータは、[ドラッグ開始]イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。
 | ここに設定された式は、タスク起動時にのみ評価されます。
ドロップ許可 | 同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic以外のアプリケーションとの間のデータのドロップ処理を可能にします。 このコントロールへのデータのコピーは、[ドロップ]イベントによるロジックユニットによって意図的に行われるか、Magic エンジンにより自動的に行われます。
 | ここに設定された式は、タスク起動時にのみ評価されます。


GUIコントロール 特性 タブ 入力

入力

表示フォーム > GUIコントロール > GUI表示コントロール特性 > タブコントロール特性

必須入力

エンドユーザがコントロールに値を入力する必要があるかどうかを指定します。必須にするかどうかを表す理論値を返す式を使用できます。

修正許可

実行時にユーザがコントロール内の値を変更できるかどうかを指定します。

  • Yes……ユーザはコントロール内の値を変更できます。

  • No…… ユーザはコントロール内の値を変更できません。

選択プログラム

実行時にエンドユーザが[編集/ズーム]を使用してプログラムを起動することができるかどうかを指定します。プログラム番号を直接入力するか、[プログラム一覧]にズームしてプログラムを選択します。

起動モード

[選択プログラム]特性で定義されたプログラムを呼び出す時期を指定します。有効な値は以下のとおりです。

  • A=後置……呼び出した選択プログラムが終了した時に、カーソルが次の項目に移動するように指定します。

  • B=前置……呼び出した選択プログラムが終了した時に、カーソルが呼び出した項目に戻るように指定します。（デフォルト）

  • P=自動……項目にカーソルが移動すると同時にプログラムが自動的に実行されるように指定します。これにより、ユーザは即座に値を選択できます。この場合は、選択プログラムが終了した後、前置モードの場合と同様にカーソルは呼び出した項目に戻ります。

照会モード時修正許可

タスクが照会モードの場合も、チョイスコントロール（ラジオボタン、タブ、リストボックス、コンボボックス、チェックボックス）の切替操作ができるかどうかを指定します。


GUIコントロール 特性 タブ 表示

表示

表示フォーム > GUIコントロール > GUI表示コントロール特性 > タブコントロール特性

フォント

コントロールに表示されるテキストのフォントを指定します。[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。

色

コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。[スタイル]特性が、「2= 平面」の場合のみ有効です。

ヘルプ画面

コントロールに関連付けるヘルプ画面を指定します。この指定はオンラインフォームでのみ有効です。 [ヘルプ一覧]にズームして、ヘルプ画面を選択できます。

ツールチップ

コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

自動ヘルプ

コントロールに関連付ける自動ヘルプを指定します。[ヘルプ一覧]にズームして自動ヘルプを選択できます。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

スタイル

コントロールの外観を指定します。有効な値は、以下の通りです。

  • D=Windows立体（デフォルト） …… このオプションは、Windowsコントロールとして設定するものです。

  • 3=凸立体

  • 2=平面

水平整列

コントロール内の水平方向のテキストの配置を指定します。有効な値は以下のとおりです。

  • L=左寄せ

  • C=センタリング

  • R=右寄せ

タブラベル位置

タブコントロールに表示するタブの位置を指定します。有効な値は以下の通りです。

  • T=上

  • R=右

  • B=下

  • L=左

この特性は、[スタイル]特性が「W=Windows立体」の場合は動作しません。

ホットトラック

この特性は、[スタイル]特性が「W=Windows立体」の場合のみ有効です。

マウスカーソルがこのコントロールを通過すると、自動的にタブを強調表示するかどうかを指定します。有効なオプションは、Yes、No（デフォルト）または、式です。

式で指定された場合、フォームのオープン時に評価されます。

複数行

この特性は、[スタイル]特性が「W=Windows立体」の場合のみ有効です。

全てのタブが1辺に収まらない場合の表示方法を指定します。有効なオプションは、Yes、No（デフォルト）または、式です。

  • Yes …… タブを複数行で表示して、１辺に収まるように表示されます。

  • No …… タブは１行で表示され、矢印ボタンで表示されるタブを切り替えるようにします。

タブ幅

この特性は、[スタイル]特性が「D=Windows立体」の場合のみ有効です。

タブの表示幅の調整方法を指定します。有効なオプションは以下の通りです。

  • T=テキストに合わせる ……各タブの幅は、表示されるテキストの幅によって決まります。

  • F=固定 …… 各タブの幅は、テキスト長が最も長い選択肢によって決まります。

  • L=行幅に収める ……[複数行]特性によって異なります。

  • Yes …… 各タブの幅は、各行の幅に収まるように調整されます。

  • No …… 各タブの幅は、表示されるテキストの幅によって決まります。

イメージ一覧ファイル名

この特性は、[スタイル]特性が「D=Windows立体」の場合のみ有効です。

この特性には、[タブ]コントロール上に表示する画像のコレクションとして使用されるファイルの名前を指定します。推奨する画像ファイルは、高さが16ピクセルのものを横に並べたものです。[イメージ一覧インデックス名]特性の指定値に従って画像が表示されます。

デフォルト値は空白です。

イメージ一覧インデックス

この特性は、[スタイル]特性が「D=Windows立体」の場合のみ有効です。

[イメージ一覧ファイル名]特性に指定された画像ファイルから、実際にタブに表示するイメージを指定します。画像ファイル内の左端の画像を「1」としたインデックス値を、カンマ区切りで指定します。

例えば、「12,35,23,16」と指定した場合、最初のタブには、12番目の画像が、２番目のタブには35番目の画像が表示されます。

数値を指定しないで、空白にすることで画像を表示しないタブを指定することができます。（例：「12,35,,16」）12(最初のタブ)、35、(2番目のタブ)、16(4番目のタブ)。）

インデックスの数とタブの数が合わせる必要はありません。インデックスがタブより多い場合は、残ったインデックスは無視され、タブが少ない場合は、指定されないタブに画像が表示されません。


GUIコントロール 特性 タブ 位置とサイズ

位置とサイズ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > タブコントロール特性

位置

[位置]特性は、フォームのサイズを変更した時に、コントロールのサイズを変更するかどうかを制御します。[位置]特性は、[コントロールの位置付]ダイアログ内の[左辺割合]、[幅割合]、[上辺割合]、[高さ割合]の組み合わせになります。

この特性からズームして[コントロールの位置付]ダイアログを表示できます。

コントロールの[位置]特性が0の場合、フォームのサイズが実行時に変更されてもコントロールのサイズは変化しません。[位置]特性が「0」より大きい場合、フォームのサイズが実行時に変更された時に相対的にサイズが変化します。

[位置]特性を持つコントロールは、元のサイズより小さいサイズにはできません。

左辺位置

コントロールの左上のx座標を指定します。

上辺位置

コントロールの右上のy座標を指定します。

幅

コントロールの幅を指定します。

高さ

コントロールの高さを指定します。

コントロールレイヤ

コントロールがチョイスコントロールの子としてリンクされている場合、選択したコントロールのリンク先である親コントロールのチョイス階層を表示します。

例えば、3つの選択肢が定義されたメニューを持つコンボボックスがフォームに配置されている場合、エディットを3番目の選択肢にリンクすると、この特性に番号3が表示されます。この特性は、常に無効になっており、フォームレイアウトでのみ変更できます。この特性は、チョイスコントロールにリンクされているコントロールにのみ有効です。


GUIコントロール 特性 楕円

スタティック（楕円）コントロール特性

表示フォーム > GUIコントロール > GUI表示コントロール特性

モデル |  |
詳細 | 表示 | 位置とサイズ
テキスト コントロール名 RTF使用 スタティックタイプ コンテキストメニュー ドラッグ許可 ドロップ許可 | フォント 色 ツールチップ 可視 有効 スタイル 境界 水平整列 垂直整列 線種 線幅 | 位置 左辺位置 上辺位置 幅 高さ コントロールレイヤ
入力 |  |
複数行編集 |  |


GUIコントロール 特性 楕円 詳細

詳細

表示フォーム > GUIコントロール > GUI表示コントロール特性 > スタティック（楕円）コントロール特性

テキスト | スタティックコントロールに表示するテキストを指定します。
コントロール名 | コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。LastClicked 関数の説明を参照してください。 [コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。
RTFの使用 | リッチテキスト形式を有効にするかどうかを指定します。[スタティックタイプ]特性が「テキスト」の場合のみ有効です。
スタティックタイプ | [スタティック]コントロールのタイプを指定します。ここからズームして、[スタティックタイプ]ダイアログを表示できます。[RTFの使用]特性が「No」の場合のみ有効です。
コンテキストメニュー | コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。 式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。 デフォルト値は「0」です。
ドラッグ許可 | 同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。 このコントロールからコピーされたデータは、[ドラッグ開始]イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。
 | ここに設定された式は、タスク起動時にのみ評価されます。
ドロップ許可 | 同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic以外のアプリケーションとの間のデータのドロップ処理を可能にします。 このコントロールへのデータのコピーは、[ドロップ]イベントによるロジックユニットによって意図的に行われるか、Magic エンジンにより自動的に行われます。
 | ここに設定された式は、タスク起動時にのみ評価されます。


GUIコントロール 特性 楕円 入力

入力

表示フォーム > GUIコントロール > GUI表示コントロール特性 > スタティック（楕円）コントロール特性

複数行編集

コントロールに複数行のテキストを含めることができるかどうかを指定します。


GUIコントロール 特性 楕円 表示

表示

表示フォーム > GUIコントロール > GUI表示コントロール特性 > スタティック（楕円）コントロール特性

フォント

コントロールに表示されるテキストのフォントを指定します。[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。

色

コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。

ツールチップ

コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

スタイル

コントロールの外観を指定します。有効な値は、以下の通りです。

  • 3=凸立体

  • S=凹立体

  • 2=平面（デフォルト）

境界スタイル

コントロールの境界スタイルを指定します。[スタイル]特性が「2=平面」の場合のみ有効です。有効な値は以下のとおりです。

  • T=細線……細線でコントロールを囲みます。

  • H=太線……太線でコントロールを囲みます。

  • N=なし……コントロールに境界線を表示しません。

水平整列

コントロール内の水平方向のテキストの配置を指定します。有効な値は以下のとおりです。

  • L=左寄せ

  • C=センタリング

  • R=右寄せ

垂直整列

コントロール内の垂直方向のテキストの配置を指定します。有効な値は以下のとおりです。

  • T=上寄せ

  • C=センタリング

  • B=下寄せ

線種

スタティックコントロールの線の外観を指定します。スタイルが平面の時のみ有効です。有効な値は以下のとおりです。

  • R=実線

  • T=点線

  • S=破線

  • A=一点鎖線

  • D=二点鎖線

線幅

コントロールの線の幅を指定します。幅はフォームの寸法単位により異なります。


GUIコントロール 特性 楕円 位置とサイズ

位置とサイズ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > スタティック（楕円）コントロール特性

位置

[位置]特性は、フォームのサイズを変更した時に、コントロールのサイズを変更するかどうかを制御します。[位置]特性は、[コントロールの位置付]ダイアログ内の[左辺割合]、[幅割合]、[上辺割合]、[高さ割合]の組み合わせになります。

この特性からズームして[コントロールの位置付]ダイアログを表示できます。

コントロールの[位置]特性が「0」の場合、フォームのサイズが実行時に変更されてもコントロールのサイズは変化しません。[位置]特性が「0」より大きい場合、フォームのサイズが実行時に変更された時に相対的にサイズが変化します。

[位置]特性を持つコントロールは、元のサイズより小さいサイズにはできません。

左辺位置

コントロールの左上のx座標を指定します。

上辺位置

コントロールの右上のy座標を指定します。

幅

コントロールの幅を指定します。

高さ

コントロールの高さを指定します。

コントロールレイヤ

コントロールがチョイスコントロールの子としてリンクされている場合、選択したコントロールのリンク先である親のチョイスコントロールの階層を表示します。

例えば、3つの選択肢が定義されたメニューを持つコンボボックスがフォームに配置されている場合、エディットを3番目の選択肢にリンクすると、この特性に番号3が表示されます。この特性は、常に無効になっており、フォームレイアウトでのみ変更できます。この特性は、チョイスコントロールにリンクされているコントロールにのみ有効です。

テーブルの子としてリンクされている場合は、カラム番号（[カラム]コントロールのレイヤ番号）が表示されます。


GUIコントロール 特性 イメージ

イメージコントロール特性

表示フォーム > GUIコントロール > GUI表示コントロール特性

モデル |  |
詳細 | 表示 | 位置とサイズ
データ 項目 コントロール名 型 デフォルトイメージファイル名 コンテキストメニュー ドラッグ許可 ドロップ許可 | 色 ヘルプ画面 ツールチップ 自動ヘルプ 可視 有効 スタイル 境界 イメージスタイル イメージ効果 | 位置 左辺位置 上辺位置 幅 高さ コントロールレイヤ
入力 | パーク |
必須入力 修正許可 選択プログラム 起動モード | TAB順序 パーキング可 TABで移動 TAB移動方向 |


GUIコントロール 特性 イメージ 詳細

詳細

表示フォーム > GUIコントロール > GUI表示コントロール特性 > イメージコントロール特性

データ | データは、データ項目（値）または式として指定します。
項目 | [データ]特性で指定されたデータ項目の名前が表示されます。
コントロール名 | コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。LastClicked 関数の説明を参照してください。 [コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。
型 | 選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。
デフォルイメージファイル名 | 表示するイメージファイルの名前を指定します。
コンテキストメニュー | コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。 式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。 デフォルト値は「0」です。
ドラッグ許可 | 同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。 このコントロールからコピーされたデータは、[ドラッグ開始]イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。
 | ここに設定された式は、タスク起動時にのみ評価されます。
ドロップ許可 | 同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic以外のアプリケーションとの間のデータのドロップ処理を可能にします。 このコントロールへのデータのコピーは、[ドロップ]イベントによるロジックユニットによって意図的に行われるか、Magic エンジンにより自動的に行われます。
 | ここに設定された式は、タスク起動時にのみ評価されます。


GUIコントロール 特性 イメージ 入力

入力

表示フォーム > GUIコントロール > GUI表示コントロール特性 > イメージコントロール特性

必須入力

エンドユーザがコントロールに値を入力する必要があるかどうかを指定します。必須にするかどうかを表す論理値を返す式を使用できます。

修正許可

実行時にユーザがコントロール内の値を変更できるかどうかを指定します。

  • Yes……ユーザはコントロール内の値を変更できます。

  • No…… コントロールへのユーザアクセスは拒否されます。

選択プログラム

実行時にエンドユーザが[編集/ズーム]を使用してプログラムを起動することができるかどうかを指定します。プログラム番号を直接入力するか、[プログラム一覧]にズームしてプログラムを選択します。

起動モード

[選択プログラム]特性で定義されたプログラムを呼び出す時期を指定します。有効な値は以下のとおりです。

  • A=後置……呼び出した選択プログラムが終了した時に、カーソルが次の項目に移動するように指定します。

  • B=前置……呼び出した選択プログラムが終了した時に、カーソルが呼び出した項目に戻るように指定します。（デフォルト）

  • P=自動……項目にカーソルが移動すると同時にプログラムが自動的に実行されるように指定します。これにより、ユーザは即座に値を選択できます。この場合は、選択プログラムが終了した後、前置モードの場合と同様にカーソルは呼び出した項目に戻ります。


GUIコントロール 特性 イメージ 表示

表示

表示フォーム > GUIコントロール > GUI表示コントロール特性 > イメージコントロール特性

色

コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。この特性は、[スタイル]特性が「2=平面」の場合にのみ有効です。

ヘルプ画面

コントロールに関連付けるヘルプ画面を指定します。この指定はオンラインフォームでのみ有効です。 [ヘルプ一覧]にズームして、ヘルプ画面を選択できます。

ツールチップ

コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

自動ヘルプ

コントロールに関連付ける自動ヘルプを指定します。[ヘルプ一覧]にズームして自動ヘルプを選択できます。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

スタイル

コントロールの外観を指定します。有効な値は、以下の通りです。

  • 3=凸立体

  • S=凹立体（デフォルト）

  • 2=平面

境界スタイル

コントロールの境界スタイルを指定します。[スタイル]特性が「2=平面」の場合のみ有効です。有効な値は以下のとおりです。

  • T=細線……細線でコントロールを囲みます。

  • H=太線……太線でコントロールを囲みます。

  • N=なし……コントロールに境界線を表示しません。（デフォルト）

イメージスタイル

イメージをイメージコントロールに合わせる方法を指定します。有効な値は以下のとおりです。

  • T=タイル……領域全体が埋まるまで、イメージを繰り返しコントロールにコピーします。

  • C=コピー……イメージをそのままコントロールにコピーします。コントロールより大きいイメージはトリミングされます。イメージがコントロールより小さい場合、コントロールのカバーされていない部分に背景色が塗られます。

  • S=フィットスケール……イメージが、イメージコントロールの高さまたは幅に収まるようにサイズが調整されてコピーされます。この場合、イメージの縦横比は維持されます。イメージの縦横比とコントロールの縦横比が同じでない場合、コントロールの一部がカバーされないままになることがあります。

  • F=フィルスケール……イメージが、イメージコントロールの領域を全て埋めるようにコピーされます。イメージの縦横比は維持されます。イメージの縦横比とコントロールの縦横比が同じでない場合、イメージの一部だけがコントロールに表示されることがあります。

  • D=コントロールスケール……イメージの縦横比が調整され、イメージコントロールの領域を全て埋めるようにコピーされます。したがって、元のイメージは縦長または横長になります。イメージの縦横比とコントロールの縦横比が同じでない場合、縮小または拡大されたイメージは歪んでいます。

イメージ効果

イメージコントロールのイメージに対する特殊なビデオ表示効果を指定します。コンボボックスから効果を選択できます。デフォルト値は[N=なし]です。


GUIコントロール 特性 イメージ 位置とサイズ

位置とサイズ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > イメージコントロール特性

位置

[位置]特性は、フォームのサイズを変更した時に、コントロールのサイズを変更するかどうかを制御します。[位置]特性は、[コントロールの位置付]ダイアログ内の[左辺割合]、[幅割合]、[上辺割合]、[高さ割合]の組み合わせになります。

この特性からズームして[コントロールの位置付]ダイアログを表示できます。

コントロールの[位置]特性が「0」の場合、フォームのサイズが実行時に変更されてもコントロールのサイズは変化しません。[位置]特性が「0」より大きい場合、フォームのサイズが実行時に変更された時に相対的にサイズが変化します。

[位置]特性を持つコントロールは、元のサイズより小さいサイズにはできません。

左辺位置

コントロールの左上のx座標を指定します。

上辺位置

コントロールの右上のy座標を指定します。

幅

コントロールの幅を指定します。

高さ

コントロールの高さを指定します。

コントロールレイヤ

コントロールがチョイスコントロールの子としてリンクされている場合、選択したコントロールのリンク先である親のチョイスコントロールの階層を表示します。

例えば、3つの選択肢が定義されたメニューを持つコンボボックスがフォームに配置されている場合、エディットを3番目の選択肢にリンクすると、この特性に番号3が表示されます。この特性は、常に無効になっており、フォームレイアウトでのみ変更できます。この特性は、チョイスコントロールにリンクされているコントロールにのみ有効です。

テーブルの子としてリンクされている場合は、カラム番号（[カラム]コントロールのレイヤ番号）が表示されます。


GUIコントロール 特性 テキスト

テキストコントロール特性

表示フォーム > GUIコントロール > GUI表示コントロール特性

モデル |  |
詳細 | 表示 | 位置とサイズ
テキスト コントロール名 RTF使用 スタティックタイプ コンテキストメニュー ドラッグ許可 ドロップ許可 | フォント 色 ツールチップ 可視 有効 スタイル 境界 水平整列 垂直整列 線種 線幅 | 位置 左辺位置 上辺位置 幅 高さ コントロールレイヤ
入力 |  |
複数行編集 |  |


GUIコントロール 特性 テキスト 詳細

詳細

表示フォーム > GUIコントロール > GUI表示コントロール特性 > テキストコントロール特性

テキスト

コントロールに表示するテキストを指定します。

この特性には、Unicode値のみ有効です。Magic Ver9用のアプリケーションから移行した場合、デフォルトのコードページを使用してANSIからUnicodeへの変更が行われます。

コントロール名

コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。

[コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。

RTFの使用

リッチテキスト形式を有効にするかどうかを指定します。[スタティックタイプ]特性が「テキスト」の場合のみ有効です。

スタティックタイプ

[スタティック]コントロールのタイプを指定します。ここからズームして、[スタティックタイプ]ダイアログを表示できます。[RTFの使用]特性が「No」の場合のみ有効です。

このダイアログ内の選択肢は、コンボボックスで表示されます。特性の内容は次のとおりです。

  • 右上がり対角線……スタティックコントロールの右上角と左下角を結ぶ斜線を挿入します。

  • 右下がり対角線……スタティックコントロールの左上角と右下角を結ぶ斜線を挿入します。

  • 水平線……スタティックコントロールを横の線として定義します。

  • 垂直線……スタティックコントロールを縦の線として定義します。

  • 四角形……スタティックコントロールを四角形として定義します。

  • 丸四角形……スタティックコントロールを角の丸い四角形として定義します。

  • 楕円形……スタティックコントロールを楕円形として定義します。

  • グループ……スタティックコントロールをグループとして定義します。

コンテキストメニュー

コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。

式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。

デフォルト値は「0」です。

ドラッグ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。

このコントロールからコピーされたデータは、[ドラッグ開始]イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。

ここに設定された式は、タスク起動時にのみ評価されます。

ドロップ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic以外のアプリケーションとの間のデータのドロップ処理を可能にします。

このコントロールへのデータのコピーは、[ドロップ]イベントによるロジックユニットによって意図的に行われるか、Magic エンジンにより自動的に行われます。

ここに設定された式は、タスク起動時にのみ評価されます。


GUIコントロール 特性 テキスト 入力

入力

表示フォーム > GUIコントロール > GUI表示コントロール特性 > テキストコントロール特性

複数行編集

コントロールに複数行のテキストを含めることができるかどうかを指定します。


GUIコントロール 特性 テキスト 表示

表示

表示フォーム > GUIコントロール > GUI表示コントロール特性 > テキストコントロール特性

フォント

コントロールに表示されるテキストのフォントを指定します。[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。

色

コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。

ツールチップ

コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

スタイル

コントロールの外観を指定します。有効な値は、以下の通りです。

  • 3=凸立体

  • S=凹立体

  • 2=平面（デフォルト）

境界スタイル

コントロールの境界スタイルを指定します。[スタイル]特性が「2=平面」の場合のみ有効です。有効な値は以下のとおりです。

  • T=細線……細線でコントロールを囲みます。

  • H=太線……太線でコントロールを囲みます。

  • N=なし……コントロールに境界線を表示しません。

水平整列

コントロール内の水平方向のテキストの配置を指定します。有効な値は以下のとおりです。

  • L=左寄せ

  • C=センタリング

  • R=右寄せ

垂直整列

コントロール内の垂直方向のテキストの配置を指定します。有効な値は以下のとおりです。

  • T=上寄せ

  • C=センタリング

  • B=下寄せ

線種

スタティックコントロールの線の外観を指定します。[スタイル]特性が「2=平面」で[スタティックタイプ]特性のオプションのどれかが「Yes」の場合のみ有効です。有効な値は以下のとおりです。

  • R=実線

  • T=点線

  • S=破線

  • A=一点鎖線

  • D=二点鎖線

線幅

コントロールの線の幅を指定します。幅はフォームの寸法単位により異なります。[スタイル]特性が「2=平面」で[スタティックタイプ]特性のオプションのどれかが「Yes」の場合のみ有効です。


GUIコントロール 特性 テキスト 位置とサイズ

位置とサイズ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > テキストコントロール特性

位置

[位置]特性は、フォームのサイズを変更した時に、コントロールのサイズを変更するかどうかを制御します。[位置]特性は、[コントロールの位置付]ダイアログ内の[左辺割合]、[幅割合]、[上辺割合]、[高さ割合]の組み合わせになります。

この特性からズームして[コントロールの位置付]ダイアログを表示できます。

コントロールの[位置]特性が「0」の場合、フォームのサイズが実行時に変更されてもコントロールのサイズは変化しません。[位置]特性が「0」より大きい場合、フォームのサイズが実行時に変更された時に相対的にサイズが変化します。

[位置]特性を持つコントロールは、元のサイズより小さいサイズにはできません。

左辺位置

コントロールの左上のx座標を指定します。

上辺位置

コントロールの右上のy座標を指定します。

幅

コントロールの幅を指定します。

高さ

コントロールの高さを指定します。

コントロールレイヤ

コントロールがチョイスコントロールの子としてリンクされている場合、選択したコントロールのリンク先である親のチョイスコントロールの階層を表示します。

例えば、3つの選択肢が定義されたメニューを持つコンボボックスがフォームに配置されている場合、エディットを3番目の選択肢にリンクすると、この特性に番号3が表示されます。この特性は、常に無効になっており、フォームレイアウトでのみ変更できます。この特性は、チョイスコントロールにリンクされているコントロールにのみ有効です。


GUIコントロール グループ リストボックス

リストボックスコントロール特性

表示フォーム > GUIコントロール > GUI表示コントロール特性

モデル |  |
詳細 | 表示 | 位置とサイズ
データ 項目 選択項目リスト 表示項目リスト コントロール名 型 ソーステーブル 表示項目 リンク項目 インデックス 範囲 コンテキストメニュー ドラッグ許可 ドロップ許可 | フォント 色 ヘルプ画面 ツールチップ 自動ヘルプ 可視 有効 スタイル 境界 水平整列 列数 | 位置 左辺位置 上辺位置 幅 高さ コントロールレイヤ
入力 | パーク |
選択モード 必須入力 修正許可 選択プログラム 起動モード 選択モード 照会モード時修正許可 | TAB順序 パーキング可 TABで移動 TAB移動方向 |


GUIコントロール グループ リストボックス 詳細

詳細

表示フォーム > GUIコントロール > GUI表示コントロール特性 > リストボックスコントロール特性

データ | データは、データ項目（値）または式として指定します。
項目 | [データ]特性で指定されたデータ項目の名前を表示します。
選択項目リスト | コントロールから選択することで返される値の範囲を指定します。選択値は、カンマ（,）区切りで複数指定できます。 [特性が定義されていない場合は、この値で表示されます。[特性が定義されている場合は、この値は表示されません。 [データ]特性への継承指定を行うことで、項目の[範囲]特性を継承することができます。 この特性には、Unicode値のみ有効です。Magic V9Plus用のアプリケーションから移行した場合、デフォルトのコードページを使用してANSIからUnicodeへの変更が行われます。
選択表示リスト | コントロールに表示させる選択肢を指定します。表示のみで入力値にはなりません。選択値は、カンマ（,）区切りで複数指定できます。 この特性が指定されている場合は、[選択項目リスト]特性に同じ順番で選択値が指定されている必要があります。 例えば、[選択項目リスト]特性に「1,2,3」と指定されていて、[選択表示リスト]特性に、「赤,青,緑」と指定されている場合。フォーム上の表示は、「赤,青,緑」になりますが、実際に入力される値は、「1,2,3」のいずれかになります。 この特性には、Unicode値のみ有効です。Magic V9Plus9用のアプリケーションから移行した場合、デフォルトのコードページを使用してANSIからUnicodeへの変更が行われます。
コントロール名 | コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。 [コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。
型 | 選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。
ソーステーブル | コントロールと関連付けるテーブルの番号を指定します。[データソース一覧]からテーブルを選択することができます。 この特性を設定した場合、[表示項目]や[リンク項目]特性を指定する必要があります。
表示項目 | 画面に表示されるテーブルのカラムを指定します。[ソーステーブル]特性で指定されたテーブルのカラムを[項目一覧]から選択できます。
リンク項目 | 実際に格納されるテーブルのカラムを指定します。[ソーステーブル]特性で指定されたテーブルのカラムを[項目一覧]から選択できます。
インデックス | 画面に表示される順序を決めるテーブルのインデックスを指定します。[ソーステーブル]特性で指定されたテーブルのインデックスを[インデックス一覧]から選択できます。
範囲 | 画面に表示されるレコードの範囲を決めるための各項目の開始および終了範囲を指定します。[ソーステーブル]特性で指定されたテーブルに対して、[項目範囲]テーブルから範囲を指定するカラムを選択できます。指定されたテーブルに範囲に該当するレコードが存在しない場合、選択肢は何も表示されません。
コンテキストメニュー | コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。 式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。 デフォルト値は「0」です。
ドラッグ許可 | 同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。 このコントロールからコピーされたデータは、[ドラッグ開始]イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。
 | ここに設定された式は、タスク起動時にのみ評価されます。
ドロップ許可 | 同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic以外のアプリケーションとの間のデータのドロップ処理を可能にします。 このコントロールへのデータのコピーは、[ドロップ]イベントによるロジックユニットによって意図的に行われるか、Magic エンジンにより自動的に行われます。
 | ここに設定された式は、タスク起動時にのみ評価されます。


GUIコントロール グループ リストボックス 入力

入力

表示フォーム > GUIコントロール > GUI表示コントロール特性 > リストボックスコントロール特性

選択モード

[リストボックス]コントロールが複数選択をサポートするか否かを指定します。デフォルト値は、 「S=シングル」です。

[選択項目リスト]特性が指定されており、[型]特性が文字型、または、ベクトル型（ベクトルセルの型が 文字型、Unicode型、論理型、または、数値型の場合）の時 「M=マルチ」 が有効になります。

ベクトルが[型]特性として指定される時、[選択項目リスト]特性で指定された内容は、ベクトルの最初のセルに格納されます。[データ]特性は、指定された選択肢の総数を示します。「S=シングル」 の場合、[データ]特性は「1」になります。

  • S=シングル……[選択項目リスト]特性か[リンク項目]特性の選択肢の中から、ユーザが選択した値が1つだけ返されます。

  • M=マルチ……[選択項目リスト]特性か[リンク項目]特性の選択肢の中から、ユーザが選択した複数の値が返されます。文字型の場合は、カンマで区切られた値になります。値は選択された順ではなく、項目の定義された順に並びます。

「M=マルチ」と指定されたリストボックスにコントロールをリンクさせることはできません。他のコントロールにリンクされることはできます。

エンドユーザが複数項目選択するには以下のような複合キーを使用します。

必須入力

エンドユーザがコントロールに値を入力する必要があるかどうかを指定します。必須にするかどうかを表す論理値を返す式を使用できます。

修正許可

実行時にユーザがコントロール内の値を変更できるかどうかを指定します。

  • Yes……ユーザはコントロール内の値を変更できます。

  • No…… コントロールへのユーザアクセスは拒否されます。

選択プログラム

実行時にエンドユーザが[編集/ズーム]を使用してプログラムを起動することができるかどうかを指定します。プログラム番号を直接入力するか、[プログラム一覧]にズームしてプログラムを選択します。

起動モード

[選択プログラム]特性で定義されたプログラムを呼び出す時期を指定します。有効な値は以下のとおりです。

  • A=後置……呼び出した選択プログラムが終了した時に、カーソルが次の項目に移動するように指定します。

  • B=前置……呼び出した選択プログラムが終了した時に、カーソルが呼び出した項目に戻るように指定します。（デフォルト）

  • P=自動……項目にカーソルが移動すると同時にプログラムが自動的に実行されるように指定します。これにより、ユーザは即座に値を選択できます。この場合は、選択プログラムが終了した後、前置モードの場合と同様にカーソルは呼び出した項目に戻ります。

照会モード時修正許可

タスクが照会モードの場合も、チョイスコントロール（ラジオボタン、タブ、リストボックス、コンボボックス、チェックボックス）の切替操作ができるかどうかを指定します。


GUIコントロール グループ リストボックス 表示

表示

表示フォーム > GUIコントロール > GUI表示コントロール特性 > リストボックスコントロール特性

フォント

コントロールに表示されるテキストのフォントを指定します。[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。

色

コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。[スタイル]特性が、「2= 平面」の場合のみ有効です。

ヘルプ画面

コントロールに関連付けるヘルプ画面を指定します。この指定はオンラインフォームでのみ有効です。 [ヘルプ一覧]にズームして、ヘルプ画面を選択できます。

ツールチップ

コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

自動ヘルプ

コントロールに関連付ける自動ヘルプを指定します。[ヘルプ一覧]にズームして自動ヘルプを選択できます。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

スタイル

コントロールの外観を指定します。有効な値は、以下の通りです。以下の通りです。

  • 3=凸立体

  • S=凹立体

  • 2=平面

デフォルトは、APG で作成した場合「3=凸立体」、[フォーム]エディタ上で貼り付けた場合は「S=凹立体」になります。

境界スタイル

コントロールの境界スタイルを指定します。[スタイル]特性が「2=平面」の場合のみ有効です。有効な値は以下のとおりです。

  • T=細線……細線でコントロールを囲みます。（デフォルト）

  • H=太線……太線でコントロールを囲みます。

  • N=なし……コントロールに境界線を表示しません。

水平整列

コントロール内の水平方向のテキストの配置を指定します。有効な値は以下のとおりです。

  • L=左寄せ

  • C=センタリング

  • R=右寄せ

列数

コントロールに表示する列数を指定します。


GUIコントロール グループ リストボックス 位置とサイズ

位置とサイズ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > リストボックスコントロール特性

位置

[位置]特性は、フォームのサイズを変更した時に、コントロールのサイズを変更するかどうかを制御します。[位置]特性は、[コントロールの位置付]ダイアログ内の[左辺割合]、[幅割合]、[上辺割合]、[高さ割合]の組み合わせになります。

この特性からズームして[コントロールの位置付]ダイアログを表示できます。

コントロールの[位置]特性が「0」の場合、フォームのサイズが実行時に変更されてもコントロールのサイズは変化しません。[位置]特性が「0」より大きい場合、フォームのサイズが実行時に変更された時に相対的にサイズが変化します。

[位置]特性を持つコントロールは、元のサイズより小さいサイズにはできません。

左辺位置

コントロールの左上のx座標を指定します。

上辺位置

コントロールの右上のy座標を指定します。

幅

コントロールの幅を指定します。

高さ

コントロールの高さを指定します。

コントロールレイヤ

コントロールがチョイスコントロールの子としてリンクされている場合、選択したコントロールのリンク先である親のチョイスコントロールの階層を表示します。

例えば、3つの選択肢が定義されたメニューを持つコンボボックスがフォームに配置されている場合、エディットを3番目の選択肢にリンクすると、この特性に番号3が表示されます。この特性は、常に無効になっており、フォームレイアウトでのみ変更できます。この特性は、チョイスコントロールにリンクされているコントロールにのみ有効です。

テーブルの子としてリンクされている場合は、カラム番号（[カラム]コントロールのレイヤ番号）が表示されます。


GUIコントロール 特性 ライン

ラインコントロール特性

表示フォーム > GUIコントロール > GUI表示コントロール特性

モデル |  |
詳細 | 表示 | 位置とサイズ
コントロール名 ドラッグ許可 ドロップ許可 | 色 ツールチップ 可視 スタイル 線種 線幅 | 位置 X1 Y1 X2 Y2 コントロールレイヤ


GUIコントロール 特性 ライン 詳細

詳細

表示フォーム > GUIコントロール > GUI表示コントロール特性 > ラインコントロール特

コントロール名 | コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。 [コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。
ドラッグ許可 | 同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。 このコントロールからコピーされたデータは、[ドラッグ開始]イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。
 | ここに設定された式は、タスク起動時にのみ評価されます。
ドロップ許可 | 同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic以外のアプリケーションとの間のデータのドロップ処理を可能にします。 このコントロールへのデータのコピーは、[ドロップ]イベントによるロジックユニットによって意図的に行われるか、Magic エンジンにより自動的に行われます。
 | ここに設定された式は、タスク起動時にのみ評価されます。


GUIコントロール 特性 ライン 表示

表示

表示フォーム > GUIコントロール > GUI表示コントロール特性 > ラインコントロール特性

色

コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。この特性は、[スタイル]が「2=平面」の場合にのみ有効です。

ツールチップ

コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。

スタイル

コントロールの外観を指定します。有効な値は、以下の通りです。

  • 2=平面

  • 3=凸立体（デフォルト）

  • S=凹立体

線種

コントロールの線の外観を指定します。[スタイル]特性が「2=平面」の場合のみ有効です。有効な値は以下のとおりです。

  • R=実線

  • T=点線

  • S=破線

  • A=一点鎖線

  • D=二点鎖線

線幅

コントロールの線の幅を指定します。幅はフォームの寸法単位により異なります。


GUIコントロール 特性 ライン 位置とサイズ

位置とサイズ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > ラインコントロール特性

位置

[位置]特性は、フォームのサイズを変更した時に、コントロールのサイズを変更するかどうかを制御します。[位置]特性は、[コントロールの位置付]ダイアログ内の[左辺割合]、[幅割合]、[上辺割合]、[高さ割合]の組み合わせになります。

この特性からズームして[コントロールの位置付]ダイアログを表示できます。

コントロールの[位置]特性が「0」の場合、フォームのサイズが実行時に変更されてもコントロールのサイズは変化しません。[位置]特性が「0」より大きい場合、フォームのサイズが実行時に変更された時に相対的にサイズが変化します。

[位置]特性を持つコントロールは、元のサイズより小さいサイズにはできません。

X1

選択したラインの左側の点のx座標

Y1

選択したラインの左側の点のy座標

X1

選択したラインの右側の点のx座標

Y2

選択したラインの右側の点のy座標

コントロールレイヤ

コントロールがチョイスコントロールの子としてリンクされている場合、選択したコントロールのリンク先である親のチョイスコントロールの階層を表示します。

例えば、3つの選択肢が定義されたメニューを持つコンボボックスがフォームに配置されている場合、エディットを3番目の選択肢にリンクすると、この特性に番号3が表示されます。この特性は、常に無効になっており、フォームレイアウトでのみ変更できます。この特性は、チョイスコントロールにリンクされているコントロールにのみ有効です。


GUIコントロール 特性 OLE

OLE コントロール特性

表示フォーム > GUIコントロール > GUI表示コントロール特性

モデル |  |
詳細 | 表示 | 位置とサイズ
データ 項目 コントロール名 型 コンテキストメニュー | フォント 色 ヘルプ画面 ツールチップ 自動ヘルプ 可視 有効 | 位置 左辺位置 上辺位置 幅 高さ コントロールレイヤ
入力 | パーク | OLE2
必須入力 修正許可 | TAB順序 パーキング可 TABで移動 TAB移動方向 | OLE クラス OLE 表示形式 OLE 形式 リンク自動更新 OLEフレームタイプ使用


GUIコントロール 特性 OLE 詳細

詳細

表示フォーム > GUIコントロール > GUI表示コントロール特性 > OLE コントロール特性

データ | データは、データ項目（値）または式として指定します。[OLE]コントロールの場合、BLOB型のデータ項目を定義する必要があります。
項目 | [データ]特性で指定されたデータ項目の名前を表示します。
コントロール名 | コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。LastClicked 関数の説明を参照してください。 [コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。
型 | 選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。
コンテキストメニュー | コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。 式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。 デフォルト値は「0」です。

注意：

OLE コントロールは、ドラッグ&ドロップをサポートしていません。


GUIコントロール 特性 OLE 入力

入力

表示フォーム > GUIコントロール > GUI表示コントロール特性 > OLE コントロール特性

必須入力

エンドユーザがコントロールに値を入力する必要があるかどうかを指定します。必須にするかどうかを表す論理値を返す式を使用できます。

修正許可

実行時にユーザがコントロール内の値を変更できるかどうかを指定します。

  • Yes……ユーザはコントロール内の値を変更できます。

  • No…… コントロールへのユーザアクセスは拒否されます。


GUIコントロール 特性 OLE 表示

表示

表示フォーム > GUIコントロール > GUI表示コントロール特性 > OLE コントロール特性

フォント | コントロールに表示されるテキストのフォントを指定します。[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。
色 | コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。[スタイル]特性が、「2= 平面」の場合のみ有効です。
ヘルプ画面 | コントロールに関連付けるヘルプ画面を指定します。この指定はオンラインフォームでのみ有効です。 [ヘルプ一覧]にズームして、ヘルプ画面を選択できます。
ツールチップ | コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。 式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。
自動ヘルプ | コントロールに関連付ける自動ヘルプを指定します。[ヘルプ一覧]にズームして自動ヘルプを選択できます。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。
可視 | コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。
有効 | コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。


GUIコントロール 特性 OLE 位置とサイズ

位置とサイズ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > OLE コントロール特性

位置

[位置]特性は、フォームのサイズを変更した時に、コントロールのサイズを変更するかどうかを制御します。[位置]特性は、[コントロールの位置付]ダイアログ内の[左辺割合]、[幅割合]、[上辺割合]、[高さ割合]の組み合わせになります。

この特性からズームして[コントロールの位置付]ダイアログを表示できます。

コントロールの[位置]特性が0の場合、フォームのサイズが実行時に変更されてもコントロールのサイズは変化しません。[位置]特性が「0」より大きい場合、フォームのサイズが実行時に変更された時に相対的にサイズが変化します。

[位置]特性を持つコントロールは、元のサイズより小さいサイズにはできません。

左辺位置

コントロールの左上のx座標を指定します。

上辺位置

コントロールの右上のy座標を指定します。

幅

コントロールの幅を指定します。

高さ

コントロールの高さを指定します。

コントロールレイヤ

コントロールがチョイスコントロールの子としてリンクされている場合、選択したコントロールのリンク先である親コントロールのチョイス階層を表示します。

例えば、3つの選択肢が定義されたメニューを持つコンボボックスがフォームに配置されている場合、エディットを3番目の選択肢にリンクすると、この特性に番号3が表示されます。この特性は、常に無効になっており、フォームレイアウトでのみ変更できます。この特性は、チョイスコントロールにリンクされているコントロールにのみ有効です。


GUIコントロール 特性 OLE OLE2

OLE2

表示フォーム > GUIコントロール > GUI表示コントロール特性 > OLE コントロール特性

OLEクラス

OLEオブジェクトのクラスを指定します。この特性を空のままにして、実行時にエンドユーザが使用可能なオブジェクトタイプを[オブジェクトの挿入]ダイアログから選択できるようにできます。

開発時にOLEオブジェクトのタイプを指定するには、この特性からズームして、[ActiveXクラス]ダイアログまたは[Select Object Type]ダイアログを開きます。

これらのダイアログに、使用可能なクラスが表示されます。ダイアログの結果欄に表示される説明を参考にしてクラスを選択します。エンドユーザが[編集／オブジェクトの挿入]を選択すると、開発者が指定したクラスを処理するアプリケーションが開きます。

指定のオブジェクトクラスに対応した使用可能なアプリケーションをエンドユーザが持っていない場合、Windowsのエラーメッセージが表示されます。

OLE表示形式

OLEの表示形式を指定します。

  • I=アイコン……OLE オブジェクトをインストールすると、コンテナに格納されている情報のタイプを示すアイコンが表示されます。

  • C=内容……OLEオブジェクトをインストールすると、ファイルの内容を示すスナップショットが表示されます。

  • A=任意……オブジェクトをアイコンとして表示するか、またはオブジェクトの内容をスナップショットとして表示するかを、エンドユーザが選択できるようにします。この選択を行うには、[オブジェクトの挿入]ダイアログの[アイコンで表示]チェックボックスをオンまたはオフにします。

OLE形式

OLEの格納形式を指定します。

  • L=リンク……OLEオブジェクトをリンクオブジェクトとして保持します。

  • E=埋め込み……OLE オブジェクトを埋め込みオブジェクトとして保持します。

  • A=任意……OLE オブジェクトをリンクオブジェクトと埋め込みオブジェクトのどちらで保持するかを、エンドユーザが選択できるようにします。この選択を行うには、[オブジェクトの挿入]ダイアログの[リンク]チェックボックスをオンまたはオフにします。

リンク自動更新

リンクされたドキュメントのコンテンツビットマップを自動的に更新するかどうかを指定します。このオプションは、[OLE表示形式]を[内容]、[アイコン]、または[任意]に設定され、[OLE形式]を[リンク]または[任意]に設定した場合に有効です 。

  • Yes……コンテンツイメージがフォームに表示される前に、最新のものであることが確認されます。

  • No……最後に保存されたコンテンツのイメージを表示します。

OLEフレームタイプ使用

「Yes」に設定すると、オブジェクトの保存タイプに応じて、オブジェクトの周囲に異なるフレームスタイルを表示します。


GUIコントロール 特性 プッシュボタン

プッシュボタンコントロール特性

表示フォーム > GUIコントロール > GUI表示コントロール特性

モデル |  |
詳細 | 表示 | 位置とサイズ
データ 項目 コントロール名 書式 型 ボタンスタイル デフォルトイメージファイル名 実行イベント 実行元 コンテキストメニュー ドラッグ許可 ドロップ許可 | フォント 色 ヘルプ画面 ツールチップ 自動ヘルプ 可視 有効 | 位置 左辺位置 上辺位置 幅 高さ コントロールレイヤ
入力 | パーク |
修正許可 選択プログラム 起動モード クリックでパーク | TAB順序 パーキング可 TABで移動 TAB移動方向 |


GUIコントロール 特性 プッシュボタン 詳細

詳細

表示フォーム > GUIコントロール > GUI表示コントロール特性 > プッシュボタンコントロール特性

データ

データは、データ項目（値）または式として指定します。

項目

[データ]特性で指定されたデータ項目の名前を表示します。

コントロール名

コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。

[コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。

書式

[プッシュボタン]コントロールの書式を指定します。ここで変更できるのは、現在のフォーム表示の形式だけです。初期設定値は、[項目]特性の設定から継承された書式になります。[式]エディタにズームして、コントロールの書式を表す式を入力することもできます。

型

選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。

ボタンスタイル

P=プッシュボタン

デフォルトのWindowsプッシュボタンデザインが使用されます。
ボタンスタイルがプッシュボタンの時に、データ項目を定義するための条件は次のように制限されています。

  1. 名前の最大文字数は30文字です。

  2. 先頭と末尾に空白を使用できます。

  3. 名前には空白を使用できます。

  4. 数値および特殊文字を使用できます。

  5. 言語テーブルで定義した特定言語の文字を使用できます。

I=イメージボタン

[データ]特性または[デフォルトイメージファイル名]特性において指定されたイメージファイルが使用されます。このイメージファイルには、「ボタンにフォーカスがある時」、「選択した時」、「無効にした時」、「デフォルト」の４つのイメージを含めておく必要があります。

H=ハイパースタイル

Magicイベントはプッシュボタンコントロールにリンクされます。この設定にすると、プッシュボタンは下線付きテキストとして表示されます。
ボタンスタイルがハイパーテキストの時に、データ項目を定義するための条件は次のように制限されています。

  1. 名前の最大文字数は30文字です。

  2. 先頭と末尾に空白を使用できます。

  3. 名前には空白を使用できます。

  4. 数値および特殊文字を使用できます。

  5. 言語テーブルで定義した特定言語の文字を使用できます。

T=イメージ上のテキスト

実行時に[データ]特性で指定されたイメージファイル名と、[書式]特性で指定されたテキストを組み合わせてボタンを表示します。このオプションを使用することで以下のような利点があります。

  1. イメージファイルを変更しないでテキスト表示のみを変更することができます。

  2. [フォント]特性や[色]特性によってテキスト表示のフォントと色を変更できます。

指定するイメージの構成は、イメージボタンと同じように４種類の同じサイズのイメージを水平に並べたものにする必要があります。

開発時は、[デフォルトイメージファイル名]で指定されたファイル名でイメージ表示されます。

デフォルトイメージファイル名

[ボタンスタイル]特性が「I=イメージボタン」か「T=イメージ上のテキスト」の時に指定します。プッシュボタンとして表示するビットマップファイル名を指定します。

実行イベント

エンドユーザがボタンを選択した時に実行される内部イベントを指定します。[イベント一覧]にズームしてイベントを選択します。

実行元

イベントがどこで実行されるかを指定します。指定できるオプションは以下の通りです。

  • C=コンテナタスク（デフォルト） ……プッシュボタンが定義されたタスクでのみイベントが実行されます。

  • T=フォーカス上のタスク ……[パーキング可]特性が「No」の場合のみ有効です。「Yes」の場合、[実行元]特性は無視され、イベントはコンテナタスクで実行されます。この設定でイベントを実行した場合、フォーカス内の（サブ）タスクでイベントが実行されます。

コンテキストメニュー

コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。

式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。

ドラッグ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。

このコントロールからコピーされたデータは、[ドラッグ開始]イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。

ここに設定された式は、タスク起動時にのみ評価されます。

ドロップ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic以外のアプリケーションとの間のデータのドロップ処理を可能にします。

このコントロールへのデータのコピーは、[ドロップ]イベントによるロジックユニットによって意図的に行われるか、Magic エンジンにより自動的に行われます。

ここに設定された式は、タスク起動時にのみ評価されます。


GUIコントロール 特性 プッシュボタン 入力

入力

表示フォーム > GUIコントロール > GUI表示コントロール特性 > プッシュボタンコントロール特性

修正許可

実行時にユーザがコントロール内の値を変更できるかどうかを指定します。

  • Yes……ユーザはコントロール内の値を変更できます。

  • No…… コントロールへのユーザアクセスは拒否されます。

選択プログラム

実行時にエンドユーザが[編集/ズーム]を使用してプログラムを起動することができるかどうかを指定します。プログラム番号を直接入力するか、[プログラム一覧]にズームしてプログラムを選択します。

起動モード

選択プログラムの特性で定義されたプログラムを呼び出す時期を指定します。有効な値は以下のとおりです。

  • A=後置……呼び出した選択プログラムが終了した時に、カーソルが次の項目に移動するように指定します。

  • B=前置……呼び出した選択プログラムが終了した時に、カーソルが呼び出した項目に戻るように指定します。（デフォルト）

  • P=自動……項目にカーソルが移動すると同時にプログラムが自動的に実行されるように指定します。これにより、ユーザは即座に値を選択できます。この場合は、選択プログラムが終了した後、前置モードの場合と同様にカーソルは呼び出した項目に戻ります。

クリックでパーク

プッシュボタンをクリックするとそのコントロールにパークするかどうかを定義します。項目が定義されたプッシュボタンで有効です。

  • Yes …… プッシュボタンをクリックすると、該当する項目が定義された場所までフローが実行され、フォーカスがプッシュボタンに移動します。フォーカスが移動した後にプッシュボタンに定義されたイベントが発行されます。（デフォルト）

  • No ……フロー処理は実行されず、フォーカスも移動しません。


GUIコントロール 特性 プッシュボタン 表示

表示

表示フォーム > GUIコントロール > GUI表示コントロール特性 > プッシュボタンコントロール特性

フォント | コントロールに表示されるテキストのフォントを指定します。[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。
色 | [ボタンスタイル]特性が「T=イメージの上のテキスト」に設定された場合、この特性を設定できます。テキストの前景や背景の色を指定できます。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。
ヘルプ画面 | コントロールと関連付けるヘルプ画面を指定します。この指定はオンラインフォームでのみ有効です。 [ヘルプ一覧]にズームして、ヘルプ画面を選択できます。
ツールチップ | コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。 式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。
自動ヘルプ | コントロールと関連付ける自動ヘルプを指定します。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。
可視 | コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。
有効 | コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。


GUIコントロール 特性 プッシュボタン 位置とサイズ

位置とサイズ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > プッシュボタンコントロール特性

位置

[位置]特性は、フォームのサイズを変更した時に、コントロールのサイズを変更するかどうかを制御します。[位置]特性は、[コントロールの位置付]ダイアログ内の[左辺割合]、[幅割合]、[上辺割合]、[高さ割合]の組み合わせになります。

この特性からズームして[コントロールの位置付]ダイアログを表示できます。

コントロールの[位置]特性が「0」の場合、フォームのサイズが実行時に変更されてもコントロールのサイズは変化しません。[位置]特性が「0」より大きい場合、フォームのサイズが実行時に変更された時に相対的にサイズが変化します。

[位置]特性を持つコントロールは、元のサイズより小さいサイズにはできません。

左辺位置

コントロールの左上のx座標を指定します。

上辺位置

コントロールの右上のy座標を指定します。

幅

コントロールの幅を指定します。

高さ

コントロールの高さを指定します。

コントロールレイヤ

コントロールがチョイスコントロールの子としてリンクされている場合、選択したコントロールのリンク先である親のチョイスコントロールの階層を表示します。

例えば、3つの選択肢が定義されたメニューを持つコンボボックスがフォームに配置されている場合、エディットを3番目の選択肢にリンクすると、この特性に番号3が表示されます。この特性は、常に無効になっており、フォームレイアウトでのみ変更できます。この特性は、チョイスコントロールにリンクされているコントロールにのみ有効です。

テーブルの子としてリンクされている場合は、カラム番号（[カラム]コントロールのレイヤ番号）が表示されます。


GUIコントロール 特性 コンボボックス

コンボボックスコントロ－ル特性

表示フォーム > GUIコントロール > GUI表示コントロール特性

モデル |  |
詳細 | 表示 | 位置とサイズ
データ 項目 選択項目リスト 表示項目リスト コントロール名 型 ソーステーブル 表示項目 リンク項目 インデックス 範囲 コンテキストメニュー ドラッグ許可 ドロップ許可 | フォント 色 ヘルプ画面 ツールチップ 自動ヘルプ 可視 有効 スタイル 境界 水平整列 列数 表示行数 | 位置 左辺位置 上辺位置 幅 高さ コントロールレイヤ
入力 | パーク |
必須入力 修正許可 選択プログラム 起動モード 照会モード時修正許可 | TAB順序 パーキング可 TABで移動 TAB移動方向 |


GUIコントロール 特性 コンボボックス 詳細

詳細

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コンボボックスコントロ－ル特性

データ | データは、データ項目（値）または式として指定します。
項目 | [データ]特性で指定されたデータ項目の名前を表示します。
選択項目リスト | コントロールから選択することで返される値の範囲を指定します。選択値は、カンマ（,）区切りで複数指定できます。 [特性が定義されていない場合は、この値で表示されます。[特性が定義されている場合は、この値は表示されません。 [データ]特性への継承指定を行うことで、項目の[範囲]特性を継承することができます。 この特性には、Unicode値のみ有効です。Magic V9Plus用のアプリケーションから移行した場合、デフォルトのコードページを使用してANSIからUnicodeへの変更が行われます。
選択表示リスト | コントロールに表示させる選択肢を指定します。表示のみで入力値にはなりません。選択値は、カンマ（,）区切りで複数指定できます。 この特性が指定されている場合は、[選択項目リスト]特性に同じ順番で選択値が指定されている必要があります。 例えば、[選択項目リスト]特性に「1,2,3」と指定されていて、[選択表示リスト]特性に、「赤,青,緑」と指定されている場合。フォーム上の表示は、「赤,青,緑」になりますが、実際に入力される値は、「1,2,3」のどちらかになります。 この特性には、Unicode値のみ有効です。Magic V9Plus用のアプリケーションから移行した場合、デフォルトのコードページを使用してANSIからUnicodeへの変更が行われます。
コントロール名 | コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。LastClicked 関数の説明を参照してください。 [コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。
型 | 選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。
ソーステーブル | コントロールと関連付けるデータソースの番号を指定します。[データソース一覧]からデータソースを選択することができます。 この特性を設定した場合、[表示項目]や[リンク項目]特性を指定する必要があります。チョイスコントロールでのみ有効です。
表示項目 | 画面に表示されるテーブルのカラムを指定します。[ソーステーブル]特性で指定されたデータソースのカラムを[項目一覧]から選択できます。
リンク項目 | 実際に格納されるテーブルのカラムを指定します。[ソーステーブル]特性で指定されたデータソースのカラムを[項目一覧]から選択できます。
インデックス | 画面に表示される順序を決めるテーブルのインデックスを指定します。[ソーステーブル]特性で指定されたテーブルのインデックスを[インデックス一覧]から選択できます。
範囲 | 画面に表示されるレコードの範囲を決めるための各項目の開始および終了範囲を指定します。[ソーステーブル]特性で指定されたテーブルに対して、[項目範囲]テーブルから範囲を指定するカラムを選択できます。指定されたテーブルに範囲に該当するレコードが存在しない場合、選択肢は何も表示されません。
コンテキストメニュー | コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。 式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。 デフォルト値は「0」です。
ドラッグ許可 | 同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。 このコントロールからコピーされたデータは、[ドラッグ開始]イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。
 | ここに設定された式は、タスク起動時にのみ評価されます。
ドロップ許可 | 同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic以外のアプリケーションとの間のデータのドロップ処理を可能にします。 このコントロールへのデータのコピーは、[ドロップ]イベントによるロジックユニットによって意図的に行われるか、Magic エンジンにより自動的に行われます。
 | ここに設定された式は、タスク起動時にのみ評価されます。


GUIコントロール 特性 コンボボックス 入力

入力

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コンボボックスコントロ－ル特性

必須入力

エンドユーザがコントロールに値を入力する必要があるかどうかを指定します。必須にするかどうかを表す論理値を返す式を使用できます。

修正許可

実行時にユーザがコントロール内の値を変更できるかどうかを指定します。

  • Yes……ユーザはコントロール内の値を変更できます。

  • No…… コントロールへのユーザアクセスは拒否されます。

選択プログラム

実行時にエンドユーザが[編集/ズーム]を使用してプログラムを起動することができるかどうかを指定します。プログラム番号を直接入力するか、[プログラム一覧]にズームしてプログラムを選択します。

起動モード

[選択プログラム]特性で定義されたプログラムを呼び出す時期を指定します。有効な値は以下のとおりです。

  • A=後置……呼び出した選択プログラムが終了した時に、カーソルが次の項目に移動するように指定します。

  • B=前置……呼び出した選択プログラムが終了した時に、カーソルが呼び出した項目に戻るように指定します。（デフォルト）

  • P=自動……項目にカーソルが移動すると同時にプログラムが自動的に実行されるように指定します。これにより、ユーザは即座に値を選択できます。この場合は、選択プログラムが終了した後、前置モードの場合と同様にカーソルは呼び出した項目に戻ります。

照会モード時修正許可

タスクが照会モードの場合も、チョイスコントロール（ラジオボタン、タブ、リストボックス、コンボボックス、チェックボックス）の切替操作ができるかどうかを指定します。


GUIコントロール 特性 コンボボックス 表示

表示

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コンボボックスコントロ－ル特性

フォント

コントロールに表示されるテキストのフォントを指定します。[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。

色

コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。[スタイル]特性が、「2= 平面」の場合のみ有効です。

ヘルプ画面

コントロールに関連付けるヘルプ画面を指定します。この指定はオンラインフォームでのみ有効です。 [ヘルプ一覧]にズームして、ヘルプ画面を選択できます。

ツールチップ

コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

自動ヘルプ

コントロールに関連付ける自動ヘルプを指定します。[ヘルプ一覧]にズームして自動ヘルプを選択できます。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

スタイル

コントロールの外観を指定します。有効な値は、以下の通りです。以下の通りです。

  • 3=凸立体

  • S=凹立体（デフォルト）

  • 2=平面

境界スタイル

コントロールの境界スタイルを指定します。[スタイル]特性が「2=平面」の場合のみ有効です。有効な値は以下のとおりです。

  • T=細線……細線でコントロールを囲みます。

  • H=太線……太線でコントロールを囲みます。

  • N=なし……コントロールに境界線を表示しません。（デフォルト）

水平整列

コントロール内の水平方向のテキストの配置を指定します。有効な値は以下のとおりです。

  • L=左寄せ

  • C=センタリング

  • R=右寄せ

列数

コントロールに表示する列数を指定します。

表示行数

[コンボボックス]コントロールにアクセスした時に表示される行数を指定します。


GUIコントロール 特性 コンボボックス 位置とサイズ

位置とサイズ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コンボボックスコントロ－ル特性

位置

[位置]特性は、フォームのサイズを変更した時に、コントロールのサイズを変更するかどうかを制御します。[位置]特性は、[コントロールの位置付]ダイアログ内の[左辺割合]、[幅割合]、[上辺割合]、[高さ割合]の組み合わせになります。

この特性からズームして[コントロールの位置付]ダイアログを表示できます。

コントロールの[位置]特性が「0」の場合、フォームのサイズが実行時に変更されてもコントロールのサイズは変化しません。[位置]特性が「0」より大きい場合、フォームのサイズが実行時に変更された時に相対的にサイズが変化します。

[位置]特性を持つコントロールは、元のサイズより小さいサイズにはできません。

左辺位置

コントロールの左上のx座標を指定します。

上辺位置

コントロールの右上のy座標を指定します。

幅

コントロールの幅を指定します。

高さ

コントロールの高さを指定します。

コントロールレイヤ

コントロールがチョイスコントロールの子としてリンクされている場合、選択したコントロールのリンク先である親のチョイスコントロールの階層を表示します。

例えば、3つの選択肢が定義されたメニューを持つコンボボックスがフォームに配置されている場合、エディットを3番目の選択肢にリンクすると、この特性に番号3が表示されます。この特性は、常に無効になっており、フォームレイアウトでのみ変更できます。この特性は、チョイスコントロールにリンクされているコントロールにのみ有効です。

テーブルの子としてリンクされている場合は、カラム番号（[カラム]コントロールのレイヤ番号）が表示されます。


GUIコントロール 特性 スライダ

スライダコントロール特性

表示フォーム > GUIコントロール > GUI表示コントロール特性

[スライダ]コントロールには、水平方向と垂直方法のスライダがあります。スライダは、スライドの尺度を指定する[範囲]特性が設定された数値型項目に基づいて動作します。スライダは、一定の規則で動作するバーとして表示され、バー上の摘みの位置がカラムの値を指定します。

位置とサイズを変更することでスライダの外観を任意に変更させることができます。また、[スライダ形式]特性を変更することでスライダを水平表示させたり垂直表示させたりすることができます。

モデル |  |
詳細 | 表示 | 位置とサイズ
データ 項目 コントロール名 型 範囲 コンテキストメニュー | ヘルプ画面 ツールチップ 自動ヘルプ 可視 有効 スライダ形式 ステップ | 位置 左辺位置 上辺位置 幅 高さ コントロールレイヤ
入力 | パーク |
必須入力 修正許可 選択プログラム 起動モード | TAB順序 パーキング可 TABで移動 TAB移動方向 |


GUIコントロール 特性 スライダ 詳細

詳細

表示フォーム > GUIコントロール > GUI表示コントロール特性 > スライダコントロール特性

データ | データは、データ項目（値）または式として指定します
項目 | [データ]特性で指定されたデータ項目の名前を表示します。
コントロール名 | コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。LastClicked 関数の説明を参照してください。 [コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。
型 | 選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。
範囲 | スライダコントロールのスライダの値の範囲を指定します。
コンテキストメニュー | コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。 式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。 デフォルト値は「0」です。


GUIコントロール 特性 スライダ 入力

入力

表示フォーム > GUIコントロール > GUI表示コントロール特性 > スライダコントロール特性

必須入力

エンドユーザがコントロールに値を入力する必要があるかどうかを指定します。必須にするかどうかを表す論理値を返す式を使用できます。

修正許可

実行時にユーザがコントロール内の値を変更できるかどうかを指定します。

  • Yes……ユーザはコントロール内の値を変更できます。

  • No…… コントロールへのユーザアクセスは拒否されます。

選択プログラム

実行時にエンドユーザが[編集/ズーム]を使用してプログラムを起動することができるかどうかを指定します。プログラム番号を直接入力するか、[プログラム一覧]にズームしてプログラムを選択します。

起動モード

[選択プログラム]特性で定義されたプログラムを呼び出す時期を指定します。有効な値は以下のとおりです。

  • A=後置……呼び出した選択プログラムが終了した時に、カーソルが次の項目に移動するように指定します。

  • B=前置……呼び出した選択プログラムが終了した時に、カーソルが呼び出した項目に戻るように指定します。（デフォルト）

  • P=自動……項目にカーソルが移動すると同時にプログラムが自動的に実行されるように指定します。これにより、ユーザは即座に値を選択できます。この場合は、選択プログラムが終了した後、前置モードの場合と同様にカーソルは呼び出した項目に戻ります。


GUIコントロール 特性 スライダ 表示

表示

表示フォーム > GUIコントロール > GUI表示コントロール特性 > スライダコントロール特性

ヘルプ画面

コントロールに関連付けるヘルプ画面を指定します。この指定はオンラインフォームでのみ有効です。 [ヘルプ一覧]にズームして、ヘルプ画面を選択できます。

ツールチップ

コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

自動ヘルプ

コントロールに関連付ける自動ヘルプを指定します。[ヘルプ一覧]にズームして自動ヘルプを選択できます。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

スライダ形式

[スライダ]コントロールの方向を指定します。有効な値は以下のとおりです。

  • V=横型

  • H=縦型

ステップ

[スライダ]コントロールの範囲の目盛りのサイズを指定します。


GUIコントロール 特性 スライダ 位置とサイズ

位置とサイズ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > スライダコントロール特性

位置

[位置]特性は、フォームのサイズを変更した時に、コントロールのサイズを変更するかどうかを制御します。[位置]特性は、[コントロールの位置付]ダイアログ内の[左辺割合]、[幅割合]、[上辺割合]、[高さ割合]の組み合わせになります。

この特性からズームして[コントロールの位置付]ダイアログを表示できます。

コントロールの[位置]特性が「0」の場合、フォームのサイズが実行時に変更されてもコントロールのサイズは変化しません。[位置]特性が「0」より大きい場合、フォームのサイズが実行時に変更された時に相対的にサイズが変化します。

[位置]特性を持つコントロールは、元のサイズより小さいサイズにはできません。

左辺位置

コントロールの左上のx座標を指定します。

上辺位置

コントロールの右上のy座標を指定します。

幅

コントロールの幅を指定します。

高さ

コントロールの高さを指定します。

コントロールレイヤ

コントロールがチョイスコントロールの子としてリンクされている場合、選択したコントロールのリンク先である親のチョイスコントロールの階層を表示します。

例えば、3つの選択肢が定義されたメニューを持つコンボボックスがフォームに配置されている場合、エディットを3番目の選択肢にリンクすると、この特性に番号3が表示されます。この特性は、常に無効になっており、フォームレイアウトでのみ変更できます。この特性は、チョイスコントロールにリンクされているコントロールにのみ有効です。

テーブルの子としてリンクされている場合は、カラム番号（[カラム]コントロールのレイヤ番号）が表示されます。


GUIコントロール 特性 リッチテキスト

リッチテキストコントロール特性

表示フォーム > GUIコントロール > GUI表示コントロール特性

モデル |  |
詳細 | 表示 | 位置とサイズ
テキスト コントロール名 RTF使用 スタティックタイプ コンテキストメニュー ドラッグ許可 ドロップ許可 | フォント 色 ツールチップ 可視 有効 スタイル 境界 水平整列 垂直整列 線種 線幅 | 位置 左辺位置 上辺位置 幅 高さ コントロールレイヤ
入力 | パーク |
複数行編集 | タブ順序 パーキング可 タブで移動 タブ移動方向 |


GUIコントロール 特性 リッチテキスト 詳細

詳細

表示フォーム > GUIコントロール > GUI表示コントロール特性 > リッチテキストコントロール特性

テキスト | スタティックコントロールに表示するテキストを指定します。
コントロール名 | コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。 [コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。
RTFの使用 | リッチテキスト形式を有効にするかどうかを指定します。[スタティックタイプ]特性が「テキスト」の場合のみ有効です。
スタティックタイプ | スタティックコントロールのタイプを指定します。ここからズームして、[スタティックタイプ]ダイアログを表示できます。このダイアログ内の選択肢は、コンボボックスで表示されます。[RTFの使用]特性が「No」の場合のみ有効です。
コンテキストメニュー | コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。 式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。 デフォルト値は「0」です。
ドラッグ許可 | 同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。 このコントロールからコピーされたデータは、[ドラッグ開始]イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。
 | ここに設定された式は、タスク起動時にのみ評価されます。
ドロップ許可 | 同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic以外のアプリケーションとの間のデータのドロップ処理を可能にします。 このコントロールへのデータのコピーは、[ドロップ]イベントによるロジックユニットによって意図的に行われるか、Magic エンジンにより自動的に行われます。
 | ここに設定された式は、タスク起動時にのみ評価されます。


GUIコントロール 特性 リッチテキスト 入力

入力

表示フォーム > GUIコントロール > GUI表示コントロール特性 > リッチテキストコントロール特性

複数行編集

[エディット]コントロールに複数行のテキストを含めることができるかどうかを指定します。


GUIコントロール 特性 リッチテキスト 表示

表示

表示フォーム > GUIコントロール > GUI表示コントロール特性 > リッチテキストコントロール特性

フォント

コントロールに表示されるテキストのフォントを指定します。[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。

色

コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。この特性は、[スタイル]が「2=平面」の場合にのみ有効です。

ツールチップ

コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

スタイル

コントロールの外観を指定します。有効な値は、以下の通りです。

  • 3=凸立体

  • S=凹立体

  • 2=平面（デフォルト）

境界スタイル

コントロールの境界スタイルを指定します。[スタイル]特性が「2=平面」の場合のみ有効です。有効な値は以下のとおりです。

  • T=細線……細線でコントロールを囲みます。

  • H=太線……太線でコントロールを囲みます。

  • N=なし……コントロールに境界線を表示しません。

水平整列

コントロール内の水平方向のテキストの配置を指定します。有効な値は以下のとおりです。

  • L=左寄せ

  • C=センタリング

  • R=右寄せ

垂直整列

コントロール内の垂直方向のテキストの配置を指定します。有効な値は以下のとおりです。

  • T=上寄せ

  • C=センタリング

  • B=下寄せ

線種

コントロールの線の外観を指定します。有効な値は以下のとおりです。

  • R=実線

  • T=点線

  • S=破線

  • A=一点鎖線

  • D=二点鎖線

線幅

コントロールの線の幅を指定します。幅はフォームの寸法単位により異なります。


GUIコントロール 特性 リッチテキスト 位置とサイズ

位置とサイズ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > リッチテキストコントロール特性

位置 | [位置]特性は、フォームのサイズを変更した時に、コントロールのサイズを変更するかどうかを制御します。[位置]特性は、[コントロールの位置付]ダイアログ内の[左辺割合]、[幅割合]、[上辺割合]、[高さ割合]の組み合わせになります。 この特性からズームして[コントロールの位置付]ダイアログを表示できます。 コントロールの[位置]特性が「0」の場合、フォームのサイズが実行時に変更されてもコントロールのサイズは変化しません。[位置]特性が「0」より大きい場合、フォームのサイズが実行時に変更された時に相対的にサイズが変化します。 [位置]特性を持つコントロールは、元のサイズより小さいサイズにはできません。
左辺位置 | コントロールの左上のx座標を指定します。
上辺位置 | コントロールの右上のy座標を指定します。
幅 | コントロールの幅を指定します。
高さ | コントロールの高さを指定します。
コントロールレイヤ | コントロールがチョイスコントロールの子としてリンクされている場合、選択したコントロールのリンク先である親のチョイスコントロールの階層を表示します。 例えば、3つの選択肢が定義されたメニューを持つコンボボックスがフォームに配置されている場合、エディットを3番目の選択肢にリンクすると、この特性に番号3が表示されます。この特性は、常に無効になっており、フォームレイアウトでのみ変更できます。この特性は、チョイスコントロールにリンクされているコントロールにのみ有効です。 テーブルの子としてリンクされている場合は、カラム番号（[カラム]コントロールのレイヤ番号）が表示されます。


GUIコントロール 特性 チェックボックス

チェックボックスコントロール特性

表示フォーム > GUIコントロール > GUI表示コントロール特性

モデル |  |
詳細 | 表示 | 位置とサイズ
データ 項目 テキスト コントロール名 型 コンテキストメニュー ドラッグ許可 ドロップ許可 | フォント 色 ヘルプ画面 ツールチップ 自動ヘルプ 可視 有効 表示方法 スタイル 3ステータス 複数行 境界 水平整列 垂直整列 イメージファイル名 | 位置 左辺位置 上辺位置 幅 高さ コントロールレイヤ
入力 | パーク |
必須入力 修正許可 選択プログラム 起動モード | TAB順序 パーキング可 TABで移動 TAB移動方向 |


GUIコントロール 特性 チェックボックス 詳細

詳細

表示フォーム > GUIコントロール > GUI表示コントロール特性 > チェックボックスコントロール特性

データ | データは、データ項目（値）または式として指定します。
項目 | [データ]特性で指定されたデータ項目の名前を表示します。
テキスト | [チェックボックス]コントロールに表示するテキストを指定します。 この特性には、Unicode値のみ有効です。Magic V9Plus用のアプリケーションから移行した場合、デフォルトのコードページを使用してANSIからUnicodeへの変更が行われます。
コントロール名 | コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。LastClicked 関数の説明を参照してください。 [コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。
型 | 選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。
コンテキストメニュー | コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。 式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。 デフォルト値は「0」です。
ドラッグ許可 | 同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。 このコントロールからコピーされたデータは、[ドラッグ開始]イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。
 | ここに設定された式は、タスク起動時にのみ評価されます。
ドロップ許可 | 同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic以外のアプリケーションとの間のデータのドロップ処理を可能にします。 このコントロールへのデータのコピーは、[ドロップ]イベントによるロジックユニットによって意図的に行われるか、Magic エンジンにより自動的に行われます。
 | ここに設定された式は、タスク起動時にのみ評価されます。


GUIコントロール 特性 チェックボックス 入力

入力

表示フォーム > GUIコントロール > GUI表示コントロール特性 > チェックボックスコントロール特性

必須入力

エンドユーザがコントロールに値を入力する必要があるかどうかを指定します。必須にするかどうかを表す論理値を返す式を使用できます。

修正許可

実行時にユーザがコントロール内の値を変更できるかどうかを指定します。

  • Yes……ユーザはコントロール内の値を変更できます。

  • No…… コントロールへのユーザアクセスは拒否されます。

選択プログラム

実行時にエンドユーザが[編集/ズーム]を使用してプログラムを起動することができるかどうかを指定します。プログラム番号を直接入力するか、[プログラム一覧]にズームしてプログラムを選択します。

起動モード

[選択プログラム]特性で定義されたプログラムを呼び出す時期を指定します。有効な値は以下のとおりです。

  • A=後置……呼び出した選択プログラムが終了した時に、カーソルが次の項目に移動するように指定します。

  • B=前置……呼び出した選択プログラムが終了した時に、カーソルが呼び出した項目に戻るように指定します。（デフォルト）

  • P=自動……項目にカーソルが移動すると同時にプログラムが自動的に実行されるように指定します。これにより、ユーザは即座に値を選択できます。この場合は、選択プログラムが終了した後、前置モードの場合と同様にカーソルは呼び出した項目に戻ります。


GUIコントロール 特性 チェックボックス 表示

表示

表示フォーム > GUIコントロール > GUI表示コントロール特性 > チェックボックスコントロール特性

フォント

コントロールに表示されるテキストのフォントを指定します。[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。

色

コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。[スタイル]特性が、「2= 平面」の場合のみ有効です。

ヘルプ画面

コントロールと関連付けるヘルプ画面を指定します。この指定はオンラインフォームでのみ有効です。 [ヘルプ一覧]にズームして、ヘルプ画面を選択できます。

ツールチップ

コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

自動ヘルプ

コントロールに関連付ける自動ヘルプを指定します。[ヘルプ一覧]にズームして自動ヘルプを選択できます。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

表示方法

コントロールの表示方法を指定します。以下のオプションがあります。

  • B=ボックス(デフォルト) …… 通常のチェックボックス表示になります。

  • U=ボタン …… ボタン表示されます。[スタイル]特性が、「S=凹立体」か「2=平面」の場合のみ有効です。「凸立体」の場合、ボックス表示になります。「True」の状態の場合、ボタンが押されたような表示になります。

スタイル

コントロールの外観を指定します。有効な値は、以下の通りです。

  • 3=凸立体（デフォルト）

  • S=凹立体

  • 2=平面

3ステータス

この特性を「Yes」に設定した場合、チェックボックスは、３ステータス表示（「True」、「False」、「NULL」）をサポートします。

プログラムの実行時、以下のように表示されます。

  • False …… チェックされない（押されていない）

  • True …… チェックされている（押されている）

  • NULL …… チェックされている（押されている）。ただし、灰色で表示されます。

この特性を「Yes」にする場合、割り当てる項目の[NULL値可]特性も「Yes」にする必要があります。

複数行

[スタイル]特性が、「S=凹立体」か「2=平面」の場合のみ有効です。以下のオプションがあります。

  • Yes …… 表示テキストが1行に収まらない場合、折返し表示されます。

  • No …… 表示テキストが1行に収まらない場合、コントロールの幅分のみ表示されます。

境界スタイル

コントロールの境界スタイルを指定します。[スタイル]特性が「2=平面」の場合のみ有効です。有効な値は以下のとおりです。

  • T=細線……細線でコントロールを囲みます。

  • H=太線……太線でコントロールを囲みます。

  • N=なし……コントロールに境界線を表示しません。（デフォルト）

水平整列

コントロール内の水平方向のテキストの配置を指定します。有効な値は以下のとおりです。

  • L=左寄せ

  • C=センタリング

  • R=右寄せ

垂直整列

この特性は、[スタイル]特性が、「S=凹立体」か「2=平面」の場合のみ有効です。

コントロール内の垂直方向のテキストの配置を指定します。有効な値は以下のとおりです。

  • T=上寄せ

  • C=センタリング(デフォルト)

  • B=下寄せ

[表示方法]が「B=ボックス」で、[スタイル]特性が、「S=凹立体」か「2=平面」の場合

  • T=上寄せ ……ボックスとテキストが上寄せで表示されます。

  • C=センタリング ……ボックスとテキストがコントロールの中央に表示されます。

  • B=下寄せ ……ボックスとテキストが下寄せで表示されます。

[表示方法]が「U=ボタン」の場合

  • T=上寄せ ……テキストが上寄せで表示されます。

  • C=センタリング ……テキストがコントロールの中央に表示されます。

  • B=下寄せ ……テキストが下寄せで表示されます。

イメージファイル名

ここには、イメージファイル名を指定します。プログラム実行時にテキストの代わりに指定されたイメージが原寸で表示されます。

式で指定することでプログラム実行時に動的にイメージファイルを指定することができます。


GUIコントロール 特性 チェックボックス 位置とサイズ

位置とサイズ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > チェックボックスコントロール特性

位置

[位置]特性は、フォームのサイズを変更した時に、コントロールのサイズを変更するかどうかを制御します。[位置]特性は、[コントロールの位置付]ダイアログ内の[左辺割合]、[幅割合]、[上辺割合]、[高さ割合]の組み合わせになります。

この特性からズームして[コントロールの位置付]ダイアログを表示できます。

コントロールの位置特性が「0」の場合、フォームのサイズが実行時に変更されてもコントロールのサイズは変化しません。[位置]特性が「0」より大きい場合、フォームのサイズが実行時に変更された時に相対的にサイズが変化します。

[位置]特性を持つコントロールは、元のサイズより小さいサイズにはできません。

左辺位置

コントロールの左上のx座標を指定します。

上辺位置

コントロールの右上のy座標を指定します。

幅

コントロールの幅を指定します。

高さ

コントロールの高さを指定します。

コントロールレイヤ

コントロールがチョイスコントロールの子としてリンクされている場合、選択したコントロールのリンク先である親のチョイスコントロールの階層を表示します。

例えば、3つの選択肢が定義されたメニューを持つコンボボックスがフォームに配置されている場合、エディットを3番目の選択肢にリンクすると、この特性に番号3が表示されます。この特性は、常に無効になっており、フォームレイアウトでのみ変更できます。この特性は、チョイスコントロールにリンクされているコントロールにのみ有効です。

テーブルの子としてリンクされている場合は、カラム番号（[カラム]コントロールのレイヤ番号）が表示されます。


GUIコントロール 特性 グループ

グループコントロール特性

表示フォーム > GUIコントロール > GUI表示コントロール特性

モデル |  |
詳細 | 表示 | 位置とサイズ
テキスト コントロール名 RTF使用 スタティックタイプ コンテキストメニュー ドラッグ許可 ドロップ許可 | フォント 色 ツールチップ 可視 有効 スタイル 境界 水平整列 垂直整列 線種 線幅 | 位置 左辺位置 上辺位置 幅 高さ コントロールレイヤ
入力 |  |
複数行編集 |  |


GUIコントロール 特性 グループ 詳細

詳細

表示フォーム > GUIコントロール > GUI表示コントロール特性 > グループコントロール特性

テキスト | [スタティック]コントロールに表示するテキストを指定します。
コントロール名 | コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。 [コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。
RTFの使用 | リッチテキスト形式を有効にするかどうかを指定します。[スタティックタイプ]特性が「テキスト」の場合のみ有効です。
スタティックタイプ | [スタティック]コントロールのタイプを指定します。ここからズームして、[スタティックタイプ]ダイアログを表示できます。[RTFの使用]特性が「No」の場合のみ有効です。
コンテキストメニュー | コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。 式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。 デフォルト値は「0」です。
ドラッグ許可 | 同じプロジェクト間でのコントロールからコントロールへのデータのドラッグ処理や同一PC上の異なるアプリケーションとの間のデータのドラッグ処理を可能にします。 このコントロールからコピーされたデータは、[ドラッグ開始]イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。
 | ここに設定された式は、タスク起動時にのみ評価されます。
ドロップ許可 | 同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic以外のアプリケーションとの間のデータのドロップ処理を可能にします。 このコントロールへのデータのコピーは、[ドロップ]イベントによるロジックユニットによって意図的に行われるか、Magic エンジンにより自動的に行われます。
 | ここに設定された式は、タスク起動時にのみ評価されます。


GUIコントロール 特性 グループ 入力

入力

表示フォーム > GUIコントロール > GUI表示コントロール特性 > グループコントロール特性

複数行編集

コントロールに複数行のテキストを含めることができるかどうかを指定します。


GUIコントロール 特性 グループ 表示

表示

表示フォーム > GUIコントロール > GUI表示コントロール特性 > グループコントロール特性

フォント

コントロールに表示されるテキストのフォントを指定します。[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。

色

コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。この特性は、[スタイル]が「2=平面」の場合にのみ有効です。

ツールチップ

コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

スタイル

コントロールの外観を指定します。有効な値は以下の通りです。

  • 3=凸立体

  • S=凹立体

  • 2=平面

  • W=Windows（デフォルト）

  • E=エンボス

境界スタイル

コントロールの境界スタイルを指定します。[スタイル]特性が「2=平面」の場合のみ有効です。有効な値は以下のとおりです。

  • T=細線……細線でコントロールを囲みます。

  • H=太線……太線でコントロールを囲みます。

  • N=なし……コントロールに境界線を表示しません。

水平整列

コントロール内の水平方向のテキストの配置を指定します。有効な値は以下のとおりです。

  • L=左寄せ

  • C=センタリング

  • R=右寄せ

垂直整列

コントロール内の垂直方向のテキストの配置を指定します。有効な値は以下のとおりです。

  • T=上寄せ

  • C=センタリング

  • B=下寄せ

線種

[スタティック]コントロールの線の外観を指定します。スタイルが平面の時のみ有効です。有効な値は以下のとおりです。

  • R=実線

  • T=点線

  • S=破線

  • A=一点鎖線

  • D=二点鎖線

線幅

コントロールの線の幅を指定します。幅はフォームの寸法単位により異なります。


GUIコントロール 特性 グループ 位置とサイズ

位置とサイズ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > グループコントロール特性

位置

[位置]特性は、フォームのサイズを変更した時に、コントロールのサイズを変更するかどうかを制御します。[位置]特性は、[コントロールの位置付]ダイアログ内の[左辺割合]、[幅割合]、[上辺割合]、[高さ割合]の組み合わせになります。

この特性からズームして[コントロールの位置付]ダイアログを表示できます。

コントロールの[位置]特性が「0」の場合、フォームのサイズが実行時に変更されてもコントロールのサイズは変化しません。[位置]特性が「0」より大きい場合、フォームのサイズが実行時に変更された時に相対的にサイズが変化します。

[位置]特性を持つコントロールは、元のサイズより小さいサイズにはできません。

左辺位置

コントロールの左上のx座標を指定します。

上辺位置

コントロールの右上のy座標を指定します。

幅

コントロールの幅を指定します。

高さ

コントロールの高さを指定します。

コントロールレイヤ

コントロールがチョイスコントロールの子としてリンクされている場合、選択したコントロールのリンク先である親のチョイスコントロールの階層を表示します。

例えば、3つの選択肢が定義されたメニューを持つコンボボックスがフォームに配置されている場合、エディットを3番目の選択肢にリンクすると、この特性に番号3が表示されます。この特性は、常に無効になっており、フォームレイアウトでのみ変更できます。この特性は、チョイスコントロールにリンクされているコントロールにのみ有効です。

テーブルの子としてリンクされている場合は、カラム番号（[カラム]コントロールのレイヤ番号）が表示されます。


GUIコントロール 特性 リッチエディト

リッチエディットコントロール特性

表示フォーム > GUIコントロール > GUI表示コントロール特性

モデル |  |
詳細 | 表示 | 位置とサイズ
データ 項目 コントロール名 型 コンテキストメニュー | フォント 色 ヘルプ画面 ツールチップ 自動ヘルプ 可視 有効 スタイル 水平整列 | 位置 左辺位置 上辺位置 幅 高さ コントロールレイヤ
入力 | パーク |
必須入力 修正許可 選択プログラム 起動モード | TAB順序 パーキング可 TABで移動 TAB移動方向 |


GUIコントロール 特性 リッチエディト 詳細

詳細

表示フォーム > GUIコントロール > GUI表示コントロール特性 > リッチエディットコントロール特性

データ | データは、データ項目（値）または式として指定します。
項目 | [データ]特性で指定されたデータ項目の名前が表示されます。
コントロール名 | コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。LastClicked 関数の説明を参照してください。 [コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。
型 | 選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。
コンテキストメニュー | コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。 式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。 デフォルト値は「0」です。


GUIコントロール 特性 リッチエディト 入力

入力

表示フォーム > GUIコントロール > GUI表示コントロール特性 > リッチエディットコントロール特性

必須入力

エンドユーザがコントロールに値を入力する必要があるかどうかを指定します。必須にするかどうかを表す論理値を返す式を使用できます。

修正許可

実行時にユーザがコントロール内の値を変更できるかどうかを指定します。

  • Yes……ユーザはコントロール内の値を変更できます。

  • No…… コントロールへのユーザアクセスは拒否されます。

選択プログラム

実行時にエンドユーザが[編集/ズーム]を使用してプログラムを起動することができるかどうかを指定します。プログラム番号を直接入力するか、[プログラム一覧]にズームしてプログラムを選択します。

起動モード

[選択プログラム]特性で定義されたプログラムを呼び出す時期を指定します。有効な値は以下のとおりです。

  • A=後置……呼び出した選択プログラムが終了した時に、カーソルが次の項目に移動するように指定します。

  • B=前置……呼び出した選択プログラムが終了した時に、カーソルが呼び出した項目に戻るように指定します。（デフォルト）

  • P=自動……項目にカーソルが移動すると同時にプログラムが自動的に実行されるように指定します。これにより、ユーザは即座に値を選択できます。この場合は、選択プログラムが終了した後、前置モードの場合と同様にカーソルは呼び出した項目に戻ります。


GUIコントロール 特性 リッチエディト 表示

表示

表示フォーム > GUIコントロール > GUI表示コントロール特性 > リッチエディットコントロール特性

フォント

コントロールに表示されるテキストのフォントを指定します。[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。

色

コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。この特性は、[スタイル]が「2=平面」の場合にのみ有効です。

ヘルプ画面

コントロールに関連付けるヘルプ画面を指定します。この指定はオンラインフォームでのみ有効です。 [ヘルプ一覧]にズームして、ヘルプ画面を選択できます。

ツールチップ

コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

自動ヘルプ

コントロールに関連付ける自動ヘルプを指定します。[ヘルプ一覧]にズームして自動ヘルプを選択できます。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。

スタイル

コントロールの外観を指定します。有効な値は、以下の通りです。

  • D=Windows立体（デフォルト）

  • 3=凸立体

  • 2=平面

水平整列

コントロール内の水平方向のテキストの配置を指定します。有効な値は以下のとおりです。

  • L=左寄せ

  • C=センタリング

  • R=右寄せ


GUIコントロール 特性 リッチエディト 位置とサイズ

位置とサイズ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > リッチエディットコントロール特性

位置

[位置]特性は、フォームのサイズを変更した時に、コントロールのサイズを変更するかどうかを制御します。[位置]特性は、[コントロールの位置付]ダイアログ内の[左辺割合]、[幅割合]、[上辺割合]、[高さ割合]の組み合わせになります。

この特性からズームして[コントロールの位置付]ダイアログを表示できます。

コントロールの[位置]特性が「0」の場合、フォームのサイズが実行時に変更されてもコントロールのサイズは変化しません。[位置]特性が「0」より大きい場合、フォームのサイズが実行時に変更された時に相対的にサイズが変化します。

[位置]特性を持つコントロールは、元のサイズより小さいサイズにはできません。

左辺位置

コントロールの左上のx座標を指定します。

上辺位置

コントロールの右上のy座標を指定します。

幅

コントロールの幅を指定します。

高さ

コントロールの高さを指定します。

コントロールレイヤ

コントロールがチョイスコントロールの子としてリンクされている場合、選択したコントロールのリンク先である親のチョイスコントロールの階層を表示します。

例えば、3つの選択肢が定義されたメニューを持つコンボボックスがフォームに配置されている場合、エディットを3番目の選択肢にリンクすると、この特性に番号3が表示されます。この特性は、常に無効になっており、フォームレイアウトでのみ変更できます。この特性は、チョイスコントロールにリンクされているコントロールにのみ有効です。

テーブルの子としてリンクされている場合は、カラム番号（[カラム]コントロールのレイヤ番号）が表示されます。


GUIコントロール 特性 ツリー

ツリーコントロール特性

表示フォーム > GUIコントロール > GUI表示コントロール特性

モデル |  |
詳細 | 表示 | 位置とサイズ
ノードID 親のID ルート値 ルートの表示 コントロール名 イメージ一覧ファイル名 展開表示イメージインデックス 縮小表示イメージインデックス パーク展開表示イメージインデックス パーク縮小表示イメージインデックス 自動展開 ノード事前読込 コンテキストメニュー ドラッグ許可 ドロップ許可 ツリー表示を保持 | フォント 色 可視 ヘルプ画面 自動ヘルプ ツールチップ スタイル 境界 ボタンの表示 ラインの表示 ルートのライン表示 マウスオーバ表示 選択行のハイライト表示 | 位置 左辺位置 上辺位置 幅 高さ コントロールレイヤ
入力 | パーク |
表示項目 項目 書式 型 修正許可 有効 マルチマーキング | TAB順序 パーキング可 TABで移動 TAB移動方向 |

参考

フォームのクラスを「0」から「1」以上に変更した場合、[ツリー]コントロールは削除されます。


GUIコントロール 特性 ツリー 詳細

詳細

表示フォーム > GUIコントロール > GUI表示コントロール特性 > ツリーコントロール特性

ノードID

タスクデータビューのノードIDを定義する項目です。式では定義できません。

親のID

タスクデータビューの親レコードを定義する項目です。式では定義できません

ルート値

実行エンジンがツリーを作成する開始位置として使用される値です。

ルートの表示

ルートを表示するかどうかを指定します。ルート値が指定されない場合は、無効です。

  • Yes ……先頭のノードに表示されます。

  • No……表示されません。

コントロール名

コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。

[コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。

イメージ一覧ファイル名

クリックすることで表示される、「ノードの展開」、「縮小」、「パーク」を表すイメージファイルを指定します。指定されない場合は、Magicのデフォルトイメージを使用します。16×16ピクセルのイメージを横に並べて1つのイメージファイルとして結合したものが使用できます。

展開表示イメージインデックス

（イメージ一覧ファイル内の）ノードの展開表示に使用するイメージのインデックスを指定します。指定しない場合は、デフォルトイメージを使用します。

縮小表示イメージインデックス

（イメージ一覧ファイル内の）ノードの縮小表示に使用するイメージのインデックスを指定します。指定しない場合は、デフォルトイメージを使用します。

パーク展開表示イメージインデックス

（イメージ一覧ファイル内の）展開表示ノードのパーク状態を表すイメージのインデックスを指定します。 指定しない場合は、デフォルトイメージを使用します。

パーク縮小表示イメージインデックス

（イメージ一覧ファイル内の）縮小表示ノードのパーク状態を表すイメージのインデックスを指定します。 指定しない場合は、デフォルトイメージを使用します。

自動展開

「Yes」 が選択された場合、実行時にツリーの全てのノードが展開表示されます。

ノード事前読込

実行時にデータツリー用のレコードの読込方法を指定します。

  • Yes…… タスクデータビューの全てのレコードのデータを読み込みます。

  • No …… 拡張されたレコードのデータのみ読み込みます。データツリー表示は、 [自動拡張]特性によって指定されます。

コンテキストメニュー

コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。

式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。

デフォルト値は「0」です。

ドラッグ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。

このコントロールからコピーされたデータは、[ドラッグ開始]イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。

ここに設定された式は、タスク起動時にのみ評価されます。

ドロップ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic以外のアプリケーションとの間のデータのドロップ処理を可能にします。

このコントロールへのデータのコピーは、[ドロップ]イベントによるロジックユニットによって意図的に行われるか、Magic エンジンにより自動的に行われます。

ここに設定された式は、タスク起動時にのみ評価されます。

ツリー表示を保持

ツリーコントロールの制御から抜けた後、再度コントロールに入った場合に表示状態を保持するかどうかを指定します。通常、ファントムタスクでツールを表示させる場合に「Yes」を設定します。


GUIコントロール 特性 ツリー 入力

入力

表示フォーム > GUIコントロール > GUI表示コントロール特性 > ツリーコントロール特性

表示項目

ノードに表示される内容が格納された項目を指定します。

項目

[データ]特性で指定されたデータ項目の名前を表示します。

書式

表示項目の書式を指定します。ここで変更できるのは、現在のフォーム表示の形式だけです。初期設定値は、項目のカラムテーブルの設定から継承された書式になります。[式]エディタにズームして、コントロールの書式を表す式を入力することもできます。

型

選択した表示項目の型。この値は変更できません。

修正許可

実行時にユーザがコントロール内の値を変更できるかどうかを指定します。

  • Yes……ユーザはコントロール内の値を変更できます。

  • No…… コントロールへのユーザアクセスは拒否されます。

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

マルチマーキング

マルチマーキング機能を有効にするかどうかを指定します。


GUIコントロール 特性 ツリー 表示

表示

表示フォーム > GUIコントロール > GUI表示コントロール特性 > ツリーコントロール特性

フォント

コントロールに表示されるテキストのフォントを指定します。[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。

色

コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。

ヘルプ画面

コントロールと関連付けるヘルプ画面を指定します。この指定はオンラインフォームでのみ有効です。 [ヘルプ一覧]にズームして、ヘルプ画面を選択できます。

自動ヘルプ

コントロールと関連付ける自動ヘルプを指定します。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。

ツールチップ

コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

スタイル

コントロールの外観を指定します。有効な値は、以下の通りです。

  • D=Windows立体（デフォルト）

  • 3=凸立体

  • 2=平面

境界スタイル

コントロールの境界スタイルを指定します。[スタイル]特性が「2=平面」の場合のみ有効です。有効な値は以下のとおりです。

  • T=細線……細線でコントロールを囲みます。

  • H=太線……太線でコントロールを囲みます。

  • N=なし……コントロールに境界線を表示しません。（デフォルト）

ボタンの表示

データツリーのボタンイメージの表示を指定します。

  • Yes ……親ノードの隣にボタンイメージが表示されます。

  • No ……ボタンイメージは表示されません。この場合、エンドユーザは、ツリーレベルを拡張する場合、親ノードをダブルクリックする必要があります。

ラインの表示

データツリーのツリーラインの表示を指定します。

  • Yes ……ツリーラインを表示します。この場合、[選択行のハイライト表示]特性は無効になります。

  • No ……ラインは表示されません。

ルートのライン表示

ルートノードのライン表示を指定します。

  • Yes ……ルートにラインが表示されます。

  • No ……ラインは表示されません。

マウスオーバ表示

マウスカーソルがノードを通過したり、ノードにパークしたりした場合の動作を指定します。

  • Yes……ノードテキストの下にラインを表示します。

  • No ……表示されません。

選択行のハイライト表示

マウスカーソルがノードを通過したり、ノードにパークしたりした場合の動作を指定します。

  • Yes ……ノードテキストがハイライト表示します。この場合[ラインの表示] 特性が無効になります。

  • No ……ノードテキストの表示は変わりません。


GUIコントロール 特性 ツリー 位置とサイズ

位置とサイズ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > ツリーコントロール特性

位置

[位置]特性は、フォームのサイズを変更した時に、コントロールのサイズを変更するかどうかを制御します。[位置]特性は、[コントロールの位置付]ダイアログ内の[左辺割合]、[幅割合]、[上辺割合]、[高さ割合]の組み合わせになります。

この特性からズームして[コントロールの位置付]ダイアログを表示できます。

コントロールの[位置]特性が「0」の場合、フォームのサイズが実行時に変更されてもコントロールのサイズは変化しません。[位置]特性が「0」より大きい場合、フォームのサイズが実行時に変更された時に相対的にサイズが変化します。

[位置]特性を持つコントロールは、元のサイズより小さいサイズにはできません。

左辺位置

コントロールの左上のx座標を指定します。

上辺位置

コントロールの右上のy座標を指定します。

幅

コントロールの幅を指定します。

高さ

コントロールの高さを指定します。

コントロールレイヤ

コントロールがチョイスコントロールの子としてリンクされている場合、選択したコントロールのリンク先である親のチョイスコントロールの階層を表示します。

例えば、3つの選択肢が定義されたメニューを持つコンボボックスがフォームに配置されている場合、エディットを3番目の選択肢にリンクすると、この特性に番号3が表示されます。この特性は、常に無効になっており、フォームレイアウトでのみ変更できます。この特性は、チョイスコントロールにリンクされているコントロールにのみ有効です。


GUIコントロール グループ サブフォーム 特性

サブフォームコントロール特性

表示フォーム > GUIコントロール > GUI表示コントロール特性

モデル |  |
詳細 | 表示 | 位置とサイズ
接続先 プログラム/タスク番号 パラメータ 自動再表示 コントロール名 | 可視 境界 自動調整 | 位置 左辺位置 上辺位置 幅 高さ コントロールレイヤ
 | パーク |
 | TAB順序 パーキング可 TABで移動 TAB移動方向 |


GUIコントロール 特性 サブフォーム 詳細

詳細

表示フォーム > GUIコントロール > GUI表示コントロール特性 > サブフォームコントロール特性

接続先

サブフォームによって呼び出されるタスクのタイプを指定します。指定できるオプションは以下の通りです。

  • P=プログラム（デフォルト） …… プログラムを呼び出します。

  • S=サブタスク …… 現在のタスクの子タスクを呼び出します。

[モデル]リポジトリでこの特性を設定する場合、「P=プログラム」のみ有効です。

プログラム/タスク番号

サブフォームで呼び出すタスクまたはプログラムの番号を指定します。ここからズームしてプログラムやサブフォームを選択することができます。

  • [接続先]特性が「P=プログラム」の場合、ここからズームすると[プログラム一覧]が表示されます。

  • [接続先]特性が「S=サブタスク」の場合、ここからズームすると[サブタスク一覧]が表示されます。

パラメータ

ここには、起動するプログラム／タスクに渡すパラメータの数が表示されます。ここからズームすると[パラメータ]テーブルが表示され、このテーブルにパラメータを定義します。

接続先がサブタスクの場合でも、範囲指定に使用する項目をパラメータとして定義する必要があります。パラメータを使用しないとサブフォームに表示される表示は起動元と連動できません。

自動再表示

この特性は、（値渡しか参照渡しで）渡されたパラメータのどれか1つでも変更された場合に、サブフォームのビューが自動的に再表示されるかどうかを指定します。

サブタスクまたはサブプログラム内でサブフォームパラメータが更新されても再表示機能は実行されません。

この特性に「Yes」を設定すると、親タスクから渡されるパラメータが変更された時点でサブフォームの表示を自動的に更新するようになります。

範囲またはリンクの値が変更した場合も、サブフォームタスクは再表示されます。

コントロール名

コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。

[コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。


GUIコントロール 特性 サブフォーム 表示

表示

表示フォーム > GUIコントロール > GUI表示コントロール特性 > サブフォームコントロール特性

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。

境界スタイル

コントロールの境界スタイルを指定します。スタイルが平面の時のみ有効です。有効な値は以下のとおりです。

  • T=細線……細線でコントロールを囲みます。

  • H=太線……太線でコントロールを囲みます。

  • N=なし（デフォルト）……コントロールに境界線を表示しません。

自動調整

この特性は、サブフォームの内容をどのように表示するかを指定します。有効な値は以下のとおりです。

  • N=なし …… タスクのフォームはサブフォームのサイズに合うように調整されません。[サブフォーム]コントロールのサイズがタスクのフォームより小さい場合、サブフォーム内にスクロールバーが表示されます。[サブフォーム]コントロールのサイズが大きい場合は、空いた領域が親タスクの背景色で塗りつぶされます。

  • A=コントロールに合わせる（デフォルト） ……サブフォームタスクのフォームは、[サブフォーム]コントロールのサイズに収まるように調整されます。起動先タスク/プログラムのコントロールの[位置]特性の[幅割合]と[高さ割合]が「0」の場合、サイズの調整は行われません。

  • C=起動先フォームに合わせる …… [サブフォーム]コントロールのサイズは、起動されたタスクのフォームのサイズと同じになるように変更されます。親タスクのフォームに収まらない場合、親タスクのフォームにスクロールバーが表示されます。


GUIコントロール 特性 サブフォーム 位置とサイズ

位置とサイズ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > サブフォームコントロール特性

位置

[位置]特性は、フォームのサイズを変更した時に、コントロールのサイズを変更するかどうかを制御します。[位置]特性は、[コントロールの位置付]ダイアログ内の[左辺割合]、[幅割合]、[上辺割合]、[高さ割合]の組み合わせになります。

この特性からズームして[コントロールの位置付]ダイアログを表示できます。

コントロールの位置特性が「0」の場合、フォームのサイズが実行時に変更されてもコントロールのサイズは変化しません。[位置]特性が「0」より大きい場合、フォームのサイズが実行時に変更された時に相対的にサイズが変化します。

[位置]特性を持つコントロールは、元のサイズより小さいサイズにはできません。

左辺位置

コントロールの左上のx座標を指定します。

上辺位置

コントロールの右上のy座標を指定します。

幅

コントロールの幅を指定します。

高さ

コントロールの高さを指定します。

コントロールレイヤ

コントロールがチョイスコントロールの子としてリンクされている場合、選択したコントロールのリンク先である親のチョイスコントロールの階層を表示します。

例えば、3つの選択肢が定義されたメニューを持つコンボボックスがフォームに配置されている場合、エディットを3番目の選択肢にリンクすると、この特性に番号3が表示されます。この特性は、常に無効になっており、フォームレイアウトでのみ変更できます。この特性は、チョイスコントロールにリンクされているコントロールにのみ有効です。


GUIコントロール 特性 ActiveX

ActiveX コントロール特性

表示フォーム > GUIコントロール > GUI表示コントロール特性

モデル |  |
詳細 | 表示 | 位置とサイズ
データ 項目 コントロール名 型 コンテキストメニュー | 自動ヘルプ 可視 有効 | 位置 左辺位置 上辺位置 幅 高さ コントロールレイヤ
 | パーク | ActiveX
 | TAB順序 パーキング可 TABで移動 TAB移動方向 | ActiveXクラス ActiveXデフォルト


GUIコントロール 特性 ActiveX 詳細

詳細

表示フォーム > GUIコントロール > GUI表示コントロール特性 > ActiveXコントロール特性

データ | コントロールが定義されているデータ項目が表示されます。指定はできません。 ActiveXコントロールは、ActiveX型の項目をフォームに配置した場合のみ有効です。
項目 | [データ]特性で指定されたデータ項目の名前が表示されます。
コントロール名 | コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。 [コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。
型 | 選択したデータ項目または式の型です。「X=ActiveX」が表示されます。
コンテキストメニュー | コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。 式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。 デフォルト値は「0」です。

注意：

OLE コントロールは、ドラッグ&ドロップをサポートしていません。


GUIコントロール 特性 ActiveX 表示

表示

表示フォーム > GUIコントロール > GUI表示コントロール特性 > ActiveXコントロール特性

自動ヘルプ | コントロールに関連付ける自動ヘルプを指定します。[ヘルプ一覧]にズームして自動ヘルプを選択できます。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。
可視 | コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。
有効 | コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。


GUIコントロール 特性 ActiveX 位置とサイズ

位置とサイズ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > ActiveXコントロール特性

位置

[位置]特性は、フォームのサイズを変更した時に、コントロールのサイズを変更するかどうかを制御します。[位置]特性は、[コントロールの位置付]ダイアログ内の[左辺割合]、[幅割合]、[上辺割合]、[高さ割合]の組み合わせになります。

この特性からズームして[コントロールの位置付]ダイアログを表示できます。

コントロールの位置特性が0の場合、フォームのサイズが実行時に変更されてもコントロールのサイズは変化しません。[位置]特性が「0」より大きい場合、フォームのサイズが実行時に変更された時に相対的にサイズが変化します。

[位置]特性を持つコントロールは、元のサイズより小さいサイズにはできません。

左辺位置

コントロールの左上のx座標を指定します。

上辺位置

コントロールの右上のy座標を指定します。

幅

コントロールの幅を指定します。

高さ

コントロールの高さを指定します。

コントロールレイヤ

コントロールがチョイスコントロールの子としてリンクされている場合、選択したコントロールのリンク先である親コントロールのチョイス階層を表示します。

例えば、3つの選択肢が定義されたメニューを持つコンボボックスがフォームに配置されている場合、エディットを3番目の選択肢にリンクすると、この特性に番号3が表示されます。この特性は、常に無効になっており、フォームレイアウトでのみ変更できます。この特性は、チョイスコントロールにリンクされているコントロールにのみ有効です。


GUIコントロール 特性 ActiveX ActiveX

ActiveX

表示フォーム > GUIコントロール > GUI表示コントロール特性 > ActiveXコントロール特性

ActiveXクラス | ActiveXオブジェクトのクラスが表示されます。設定はできません。
ActiveXデフォルト | ActiveXオブジェクトのデフォルト値を指定します。ここからズームするとActiveXオブジェクト特有の[プロパティ]ダイアログが表示されます。設定内容は、定義されたオブジェクトに依存します。


GUIコントロール 特性 一覧

コントロール特性一覧

表示フォーム > GUIコントロール > GUI表示コントロール特性

GUIコントロール特性についての情報を表示するには、以下のリンクをクリックしてください。

3ステータス

ActiveXクラス

ActiveXデフォルト

CR許可

OLEクラス

OLEフレームタイプ使用

OLE形式

OLE表示形式

RTFの使用

TABで移動

TAB移動方向

TAB順序

X1

X2

Y1

Y2

イメージスタイル

イメージファイル名

イメージプッシュボタン

イメージ一覧インデックス

イメージ一覧ファイル名

イメージ効果

インデックス

ウィンドウ内テーブル

カラムのマーキング

カラムの並び替え可

カラムタイトル

カラム区切り線

カラム数

クリックでパーク

コンテキストメニュー

コントロールレイヤ

コントロール名

サイズ変更可

スクロールバー

スクロールバーの表示

スタイル

スタティックタイプ

ステップ

スライダ形式

ソーステーブル

ソート可

タイトル高さ

タブラベル位置

タブ幅

ツールチップ

ツリー表示を保持

テーブル色の指定

テキスト

データ

デフォルイメージファイル名

ドラッグ許可

ドロップ許可

ノードID

ノード事前読込

ハイライト行のスタイル

ハイライト行の色

パーキング可

パーク縮小表示イメージインデックス

パーク展開表示イメージインデックス

パスワードエディット

パラメータ (サブフォーム)

フォント

プログラム/タスク番号

ヘルプ画面

ホットトラック

ボタンの表示

ボタンスタイル

マウスオーバ表示

マルチマーキング

モデル

ラインの表示

リンク項目

リンク自動更新

ルートのライン表示

ルートの表示

ルート値

位置

位置(カラム)

右境界線

下辺の間隔

可視

拡張ウィンドウ

漢字入力

起動モード

境界スタイル

区切り

型

交互表示色

行高さ

項目

高さ

左辺位置

最終区切線

自動ヘルプ

自動拡張

自動再表示

自動調整

自動展開

実行イベント

実行元

修正許可

縮小表示イメージインデックス

書式

照会モード時修正許可

上境界線

上辺位置

色

色(テーブル)

色(プッシュボタン)

親のID

垂直スクロール

垂直整列

水平スクロール

水平整列

接続先

線種

線幅

選択プログラム

選択行のハイライト表示

選択項目リスト

選択表示リスト

展開表示イメージインデックス

範囲

範囲（スライダ）

必須入力

表示行数

表示項目(チョイスコントロール)

表示項目(ツリー)

表示方法

幅

幅固定

複数行

複数行編集

有効

列数


GUIコントロール 特性 一覧 3ステータス

3ステータス (デフォルト：No)

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[チェックボックス]コントロールにおいて、３ステータス表示（「True」、「False」、「NULL」）するかどうかを指定します。

プログラムの実行時、以下のように表示されます。

  • False …… チェックされない（押されていない）

  • True …… チェックされている（押されている）

  • NULL …… チェックされている（押されている）。ただし、灰色で表示されます。

この特性を「Yes」にする場合、割り当てる項目の[NULL値可]特性も「Yes」にする必要があります。


GUIコントロール 特性 一覧 ActiveXクラス

ActiveXクラス

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

ActiveXオブジェクトのクラスが表示されます。設定はできません。表示内容は、オブジェクトに依存します。


GUIコントロール 特性 一覧 ActiveXデフォルト

ActiveXデフォルト

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

ActiveXオブジェクトのデフォルト値を指定します。ここからズームするとActiveXオブジェクト特有の[プロパティ]ダイアログが表示されます。設定内容は、定義されたオブジェクトに依存します。


GUIコントロール 特性 一覧 CR許可

CR許可

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[複数行編集]特性が「Yes」に設定されている[エディット]コントロールにおいて、エンドユーザがEnterキーを押下した時にコントロール内の次の行に移動するどうかを指定します。


GUIコントロール 特性 一覧 OLEクラス

OLEクラス

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

OLEオブジェクトのクラスを指定します。この特性を空のままにして、実行時にエンドユーザが使用可能なオブジェクトタイプを

[オブジェクトの挿入]ダイアログから選択できるようにできます。

開発時にOLEオブジェクトのタイプを指定するには、この特性からズームして、[ActiveXクラス]ダイアログまたは[Select Object Type]ダイアログを開きます。

これらのダイアログに、使用可能なクラスが表示されます。ダイアログの結果欄に表示される説明を参考にしてクラスを選択します。エンドユーザが[編集／オブジェクトの挿入]を選択すると、開発者が指定したクラスを処理するアプリケーションが開きます。

注意：

指定のオブジェクトクラスに対応した使用可能なアプリケーションをエンドユーザが持っていない場合、Windowsのエラーメッセージが表示されます。


GUIコントロール 特性 一覧 OLEフレームタイプ使用

OLEフレームタイプ使用

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

「Yes」に設定すると、オブジェクトの保存タイプに応じて、オブジェクトの周囲に異なるフレームスタイルを表示します。


GUIコントロール 特性 一覧 OLE形式

OLE形式

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

OLEの格納形式を指定します。

  • L=リンク……OLEオブジェクトをリンクオブジェクトとして保持します。

  • E=埋め込み……OLE オブジェクトを埋め込みオブジェクトとして保持します。

  • A=任意……OLE オブジェクトをリンクオブジェクトと埋め込みオブジェクトのどちらで保持するかを、エンドユーザが選択できるようにします。この選択を行うには、[オブジェクトの挿入]ダイアログの[リンク]チェックボックスをオンまたはオフにします。


GUIコントロール 特性 一覧 OLE表示形式

OLE表示形式

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

OLEの表示形式を指定します。

  • I=アイコン……OLE オブジェクトをインストールすると、コンテナに格納されている情報のタイプを示すアイコンが表示されます。

  • C=内容……OLEオブジェクトをインストールすると、ファイルの内容を示すスナップショットが表示されます。

  • A=任意……オブジェクトをアイコンとして表示するか、またはオブジェクトの内容をスナップショットとして表示するかを、エンドユーザが選択できるようにします。この選択を行うには、[オブジェクトの挿入]ダイアログの[アイコンで表示]チェックボックスをオンまたはオフにします。


GUIコントロール 特性 一覧 RTFの使用

RTFの使用

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

リッチテキスト形式を有効にするかどうかを指定します。この特性を「Yes」にした場合、以下の特性が無効になります。

  • スタティックタイプ

  • スタイル

  • 境界

  • 水平整列

  • 垂直整列


GUIコントロール 特性 一覧 TABで移動

TABで移動 （デフォルト：Yes）

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

Tabキーによってコントロールにカーソルを移すことができるかどうかを指定します。

  • Yes ……Tabキーによってコントロールにカーソルを移すことができます。

  • No ……Tabキーこのコントロールにはパークされず、マウスクリックでしかカーソルをコントロールに置くことができなくなります。

参照

パーキング可

TAB移動方向

TAB順序


GUIコントロール 特性 一覧 TAB移動方向

TAB移動方向 (デフォルト:B=両方向)

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

コントロール間のTAB移動をどのフロー方向で有効にするかを指定します。指定可能なオプションは以下の通りです。

  • B=両方向

  • F=前方のみ

  • C=後方のみ

この特性は、GUI表示形式フォームで[データ]特性に項目が割り当てられており、[パーキング可]特性が「Yes」に設定されている場合のみ有効です。

実行時の動作

実行時、コントロールにパークしている時に、Tabキーを押下するとTab ID順にカーソルが移動する場合を「前方」、Shift+Tabキーを押下するとTab IDの逆順に移動する場合を「後方」と呼びます。

参照

パーキング可

TAB順序


GUIコントロール 特性 一覧 TAB順序

TAB順序

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

[自動TAB順序]モードが無効な場合、この特性に4桁までのTab ID（数値）を入力することができます。Tab IDで指定された順番にTabキーによってカーソルが移動します。

[自動TAB順序]モードが有効な場合、この特性には自動的にTab IDが表示され、入力はできなくなります。

参照

パーキング可

TABで移動

TAB移動方向


GUIコントロール 特性 一覧 X1

X1

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

選択したラインの左側の点のx座標

注意：

  • Y1,Y2のいずれか、または両方のパラメータを式で設定したい場合、X1,X2,Y1,Y2,全てのパラメータを、式で設定してください。

  • Y1,Y2のみ式を設定した場合、式の値がY1>Y2になると、ラインの傾きが左上がりから右上がりに変わります。

  • また、Y1のみ式を入れていると、Y1>Y2になると、Y2にもY1の値が入って、本来左上がりになるところが、横一直線になります。

  • 回避方法として、Y1,Y2のいずれか、あるいは両方が可変の場合、必ず全ての座標に式で固定値を設定しておく必要があります。


GUIコントロール 特性 一覧 X2

X2

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

選択したラインの右側の点のx座標

注意：

  • Y1,Y2のいずれか、または両方のパラメータを式で設定したい場合、X1,X2,Y1,Y2,全てのパラメータを、式で設定してください。

  • Y1,Y2のみ式を設定した場合、式の値がY1>Y2になると、ラインの傾きが左上がりから右上がりに変わります。

  • また、Y1のみ式を入れていると、Y1>Y2になると、Y2にもY1の値が入って、本来左上がりになるところが、横一直線になります。

  • 回避方法として、Y1,Y2のいずれか、あるいは両方が可変の場合、必ず全ての座標に式で固定値を設定しておく必要があります。


GUIコントロール 特性 一覧 Y1

Y1

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

選択したラインの左側の点のy座標.

注意：

  • Y1,Y2のいずれか、または両方のパラメータを式で設定したい場合、X1,X2,Y1,Y2,全てのパラメータを、式で設定してください。

  • Y1,Y2のみ式を設定した場合、式の値がY1>Y2になると、ラインの傾きが左上がりから右上がりに変わります。

  • また、Y1のみ式を入れていると、Y1>Y2になると、Y2にもY1の値が入って、本来左上がりになるところが、横一直線になります。

  • 回避方法として、Y1,Y2のいずれか、あるいは両方が可変の場合、必ず全ての座標に式で固定値を設定しておく必要があります。


GUIコントロール 特性 一覧 Y2

Y2

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

選択したラインの右側の点のy座標

注意：

  • Y1,Y2のいずれか、または両方のパラメータを式で設定したい場合、X1,X2,Y1,Y2,全てのパラメータを、式で設定してください。

  • Y1,Y2のみ式を設定した場合、式の値がY1>Y2になると、ラインの傾きが左上がりから右上がりに変わります。

  • また、Y1のみ式を入れていると、Y1>Y2になると、Y2にもY1の値が入って、本来左上がりになるところが、横一直線になります。

  • 回避方法として、Y1,Y2のいずれか、あるいは両方が可変の場合、必ず全ての座標に式で固定値を設定しておく必要があります。


GUIコントロール 特性 一覧 イメージスタイル

イメージスタイル

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

表示されるイメージを[イメージ]コントロールに合わせる方法を指定します。有効な値は以下のとおりです。

  • T=タイル……領域全体が埋まるまで、イメージを繰り返しコントロールにコピーします。

  • C=コピー……イメージをそのままコントロールにコピーします。コントロールより大きいイメージはトリミングされます。イメージがコントロールより小さい場合、コントロールの一部がカバーされないままになることがあります。

  • S=フィットスケール……イメージが、[イメージ]コントロールの高さまたは幅に収まるようにサイズが調整されてコピーされます。この場合、イメージの縦横比は維持されます。イメージの縦横比とコントロールの縦横比が同じでない場合、コントロールの一部がカバーされないままになることがあります。

  • F=フィルスケール……イメージが、[イメージ]コントロールの領域を全て埋めるようにコピーされます。イメージの縦横比は維持されます。イメージの縦横比とコントロールの縦横比が同じでない場合、イメージの一部だけがコントロールに表示されることがあります。

  • D=コントロールスケール……イメージの縦横比が調整され、[イメージ]コントロールの領域を全て埋めるようにコピーされます。したがって、元のイメージは縦長または横長になります。イメージの縦横比とコントロールの縦横比が同じでない場合、縮小または拡大されたイメージは歪んで表示されます。


GUIコントロール 特性 一覧 イメージファイル名

イメージファイル名

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[コンボボックス]コントロールに表示するイメージファイル名を指定します。プログラム実行時にテキストの代わりに指定されたイメージが原寸で表示されます。

式で指定することでプログラム実行時に動的にイメージファイルを指定することができます。


GUIコントロール 特性 一覧 イメージ一覧インデックス

イメージ一覧インデックス

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[タブ]コントロ－ルのタブ領域に表示するイメージファイルのインデックスを指定します。この特性は、[スタイル]特性が「W=Windows立体」の場合のみ有効です。

[メージ一覧ファイル名]特性に指定された画像ファイルから、実際にタブに表示するイメージを指定します。画像ファイル内の左端の画像を「1」としたインデックス値を、カンマ区切りで指定します。

例えば、「12,35,23,16」と指定した場合、最初のタブには、12番目の画像が、２番目のタブには35番目の画像が表示されます。

数値を指定しないで、空白にすることで画像を表示しないタブを指定することができます。（例：「12,35,,16」）12(最初のタブ)、35、(2番目のタブ)、16(4番目のタブ)。

インデックスの数とタブの数が合わせる必要はありません。インデックスがタブより多い場合は、残ったインデックスは無視され、タブが少ない場合は、指定されないタブに画像が表示されません。


GUIコントロール 特性 一覧 イメージ一覧ファイル名

イメージ一覧ファイル名

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[ツリー]や[タブ]コントロールに表示するためのイメージを集めた画像ファイルの名前を指定します。

[ツリー]コントロール

クリックすることで表示される、「ノードの展開」、「縮小」、「パーク」を表すイメージファイルを指定します。指定されない場合は、Magicのデフォルトイメージを使用します。

ノードの状態に対応したイメージを割り当てるには、[展開表示イメージインデックス]、[縮小表示イメージインデックス]、[パーク展開表示イメージインデックス]、[パーク縮小表示イメージインデックス] の各特性を使用します。

推奨するイメージは 16×16ピクセルのイメージを横に均等に結合したものです。

[タブ]コントロール

[イメージ一覧インデックス]特性に表示するイメージの番号を指定します。推奨するイメージは 16×16ピクセルのイメージを横に均等に結合したものです。


GUIコントロール 特性 一覧 イメージ効果

イメージ効果 (デフォルト:N=なし)

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[イメージ]コントロールのイメージに対する特殊な表示効果を指定します。コンボボックスから選択できます。

選択可能な値は以下の通りです。

  • N=なし

  • W=ワイプ(下)

  • U=ワイプ(上)

  • R=ワイプ(右)

  • L=ワイプ(左)

  • X=ピクセル

  • S=ボックス(小)

  • M=ボックス(中)

  • A=ボックス(大)

  • H=横線

  • V=縦線

  • E=縦(中)

  • D=横(中)

  • T=交差(横)

  • C=交差(縦)

  • O=アウト からイン

  • I=インからアウト

  • 1=アウト からイン(交差)

  • 2=インからアウト(交差)

  • 3=スパイラル イン

  • 4=スパイラルアウト


GUIコントロール 特性 一覧 インデックス

インデックス

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

チョイスコントロールの選択肢が画面に表示される順序を決めるテーブルのインデックスを指定します。[ソーステーブル]特性で指定されたテーブルのインデックスをインデックスの一覧から選択できます。

[リスト]、[タブ]、[ラジオ]及び[コンボボックス]でのみ有効です。


GUIコントロール 特性 一覧 ウィンドウ内テーブル

ウィンドウ内テーブル（デフォルト：Yes）

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[テーブル]コントロールの[サイズ変更可]特性が[Yes]に設定されている場合、カラムのサイズが変更された時に[テーブル]コントロールの表示領域を変更するかどうかを指定します。テーブルのサイズが表示領域を超えた場合、スクロールバーが表示されます。

この特性が「Yes」の場合、テーブルの[スタイル]特性が「W=Windows」に設定されていると標準的なWindowsの[テーブル]コントロールの表示と動作になります。


GUIコントロール 特性 一覧 カラムのマーキング

カラムのマーキング

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[テーブル]コントロールにおいて、このカラムを使用してテーブルの行をマークできるかどうかを指定します。


GUIコントロール 特性 一覧 カラムの並べ替え可

カラムの並び替え可 (デフォルト：Yes)

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

[テーブル]コントロールにおいて、アプリケーションの実行時にエンドユーザがカラムの順序を変更することができるかどうかを指定します。

[スタイル]特性が「W=Windows」に設定された場合のみ有効です。

  • Yes……カラムタイトルをドラッグし、別のカラムのタイトル部にドロップすることで、カラムの順番を変更することができます。

  • No……カラムの順序は変更できません。

エンドユーザが実行中にテーブルカラムの順番を変更した場合、そのコンテキスト内でのみ有効です。タスクを一度終了して再起動した場合、開発時の順番で表示されます。


GUIコントロール 特性 一覧 カラムタイトル

カラムタイトル

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[テーブル]コントロール内のカラムのタイトルを入力します。広域表示ウィンドウ（F6）を表示することで、複数行入力ができます。


GUIコントロール 特性 一覧 カラム区切り線

カラム区切り線

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[テーブル]コントロールのカラムの間に区切り線を表示するかどうかを指定します。


GUIコントロール 特性 一覧 カラム数

カラム数

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

[テーブル]コントロール内のカラム数を表示します。カラム数の変更はフォームレイアウト上でのみ行うことができます。


GUIコントロール 特性 一覧 クリックでパーク

クリックでパーク

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

プッシュボタンをクリックするとそのコントロールにパークするかどうかを定義します。項目が定義された[プッシュボタン]コントロールで有効です。

  • Yes …… プッシュボタンをクリックすると、該当する項目が定義された場所までフローが実行され、フォーカスがプッシュボタンに移動します。フォーカスが移動した後にプッシュボタンに定義されたイベントが発行されます。（デフォルト）

  • No ……フロー処理は実行されず、フォーカスも移動しません。


GUIコントロール 特性 一覧 コンテキストメニュー

コンテキストメニュー

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

コントロール上で使用されるコンテキストメニューを指定します。この特性には、[サブフォーム]コントロール以外の全てのコントロールで表示されます。

この特性には、「9999」までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。

式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。

マウスの右クリック操作やキーボード（Shift+F10）操作を行った場合、以下のような手順でコンテキストメニューの処理が実行されます。

  • Magicは、マウスカーソルが置かれているコントロールのコンテキストメニューを表示しようと試みます。

  • コントロールにコンテキストメニューが定義されていない場合、Magicはデフォルトのコンテキストメニューを表示しようと試みます。これは[リッチエディット]や[ツリー]、および[エディット]コントロールの場合、このような動作をします。

  • コントロールにデフォルトのコンテキストメニューが定義されていない場合、その親コントロールのコンテキストメニューを表示しようとします。コントロールの階層をさかのぼって検索します。[エディット]や[ツリー]または、[リッチエディット]コントロールには常にデフォルトのコンテキストメニューがあるため例外となります。Magicは、異なるコンテキストメニューがこれらのコントロールに定義されているかどうかを最初にチェックします。定義されていない場合、デフォルトのコンテキストメニューを表示します。

  • どのコンテキストメニューも有効でない場合、[フォーム特性]に定義されたコンテキストメニューを表示します。

  • デフォルトのコンテキストメニューも見つからない場合、コンテキストメニューは表示されません。

  • [メニュー]リポジトリで定義されたコンテキストメニューが空の場合、コンテキストメニューは表示されません。

  • コンテキストメニューがキーボード操作でオープンされる場合、パークされたコントロールに対するメニューが表示されます。

  • カーソルがパークしているコントロール上でコンテキストメニューが無効な場合、Magicは最初にそのコントロール（に対応した項目）に移動し、それからコンテキストメニューを表示します。この動作は、項目が定義されていて、コントロールがパーク可能な場合に有効です。これ以外の全てのコントロールの場合は、単純にコンテキストメニューを表示します。

  • コンテキストメニューが親タスクまたはファンントムタスクのどちらかで動作する場合、Magicは最初にフォーカスをそのタスクに移し、それからコンテキストメニューを表示します。

  • コントロールの[有効]特性が「No」の場合、コンテキストメニューを表示させることはできません。この場合に、親コントロールのコンテキストメニューが表示されます。

  • [OLE]/[ActiveX]コントロールがそれ自身のコンテキストメニューを持っている場合、このメニューが表示されます。

イメージ

イメージがメニューシステム(両方またはメニューのどちらかとして)に定義されている場合、コンテキストメニューに表示されます。

参照

実行時のコンテキストメニュー


GUIコントロール 特性 一覧 コントロールレイヤ

コントロールレイヤ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

コントロールがチョイスコントロールの子としてリンクされている場合、選択したコントロールのリンク先である親コントロールのチョイス階層を表示します。

例えば、３つの選択肢が格納されたメニューを持つコンボボックスがフォームに配置されている場合、エディットを３番目の選択肢にリンクすると、この特性に番号「３」が表示されます。

この特性は、常に無効になっており、フォームレイアウトでのみ変更できます。この特性は、チョイスコントロールにリンクされているコントロールにのみ有効です。


GUIコントロール 特性 一覧 コントロール名

コントロール名

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、LastClicked関数やコントロールハンドラで参照することができます。

[コントロール名]特性は30桁に制限されます。後続空白は使用できません。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。


GUIコントロール 特性 一覧 サイズ変更可

サイズ変更可

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

実行モードにおいて[テーブル]コントロールのカラムの区切り線をドラッグすることでカラムのサイズを変更できるようにするかどうかを指定します。

カラムのサイズを変更するには２つの方法があります。

  • カラムの区切り線をクリックしてドラッグします。この場合、区切りの両端のカラムの幅が変わります。

  • カラムの区切り線をクリックして、Shiftキーを押しながらドラッグします。この場合、区切りの左端のカラムの幅が変わり、テーブルの幅も変わります。


GUIコントロール 特性 一覧 スクロールバー

スクロールバー

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[テーブル]コントロールに垂直スクロールバーを配置するかどうかを指定します。


GUIコントロール 特性 一覧 スクロールバーの表示

スクロールバーの表示

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[エディット]コントロールに垂直スクロールバーや水平スクロールバーを表示するかどうかを指定します。


GUIコントロール 特性 一覧 スタイル

スタイル

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

コントロールの外観を指定します。有効な値はコントロールによって異なりますが、以下のオプションがあります。

  • D=Windows立体 /W=Windows立体（テーブル、エディット、リッチエディット、ツリー、タブの場合）

  • W=Windows（テーブル、グループ） …… 標準的なWindowsのスタイルで表示されます。

  • 3=凸立体

  • S=凹立体（チェックボックス、エディット、ラジオボタン、スタティック、グループ）

  • 2=平面

  • E=エンボス（グループ）

デフォルトは、

  • [エディット]、[ツリー]、[タブ]の場合……D=Windows立体

  • [ラジオボタン]、[チェックボックス]、[イメージ]、[リストボックス]の場合……S=凹立体

  • [グループ]、[テーブル]の場合…… W=Windows

  • [スタティック]の場合…… 2=平面

  • [ライン]……3=凸立体

プッシュボタン、OLE、スライダは無効です。


GUIコントロール 特性 一覧 スタティックタイプ

スタティックタイプ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[スタティック]コントロールのタイプを指定します。ここからズームして、[スタティックタイプ]ダイアログを表示できます。このダイアログ内の選択肢は、コンボボックスで表示されます。特性の内容は次のとおりです。

  • 右上がり対角線…… コントロールの右上角と左下角を結ぶ斜線を挿入します。

  • 右下がり対角線……コントロールの左上角と右下角を結ぶ斜線を挿入します。

  • 水平線……コントロールを横の線として定義します。

  • 垂直線……コントロールを縦の線として定義します。

  • 四角形……コントロールを四角形として定義します。

  • 丸四角形……コントロールを角の丸い四角形として定義します。

  • 楕円形……コントロールを楕円形として定義します。

  • グループ……コントロールをグループとして定義します。


GUIコントロール 特性 一覧 ステップ

ステップ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[スライダ]コントロールの範囲の目盛りのサイズを指定します。


GUIコントロール 特性 一覧 スライダ形式

スライダ形式

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[スライダ]コントロールの方向を指定します。有効な値は以下のとおりです。

  • V=横型

  • H=縦型


GUIコントロール 特性 一覧 ソーステーブル

ソーステーブル

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

チョイスコントロールと関連付けるデータソースの番号を指定します。[データソース一覧]から選択することができます。

この特性を指定した場合、[表示項目]や[リンク項目]特性を指定する必要があります。


GUIコントロール 特性 一覧 ソート可

ソート可

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

このカラムのタイトルをクリックすることでテーブルをソートできるかどうかを指定します。


GUIコントロール 特性 一覧 タイトル高さ

タイトル高さ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[テーブル]コントロールのタイトルの高さを指定します。この特性は、[フォーム]エディタでタイトルバーの下端をクリックしてドラッグして変更することもできます。


GUIコントロール 特性 一覧 タブラベル位置

タブラベル位置

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

[タブ]コントロールに表示するタブの位置を指定します。値は以下の通りです。

  • T=上

  • R=右

  • B=下

  • L=左


GUIコントロール 特性 一覧 タブ幅

タブ幅 （デフォルト：T=テキストに合わせる）

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[タブ]コントロールのタブの表示幅の調整方法を指定します。[スタイル]特性が「W=Windows立体」の場合のみ有効です。

有効なオプションは以下の通りです。

  • T=テキストに合わせる ……各タブの幅は、表示されるテキストの幅によって決まります。

  • F=固定 …… 各タブの幅は、テキスト長が最も長い選択肢によって決まります。

  • L=行幅に収める ……[複数行]特性によって以下のように表示されます。

  • Yes …… 各タブの幅は、各行の幅に収まるように調整されます。

  • No …… 各タブの幅は、表示されるテキストの幅によって決まります。


GUIコントロール 特性 一覧 ツールチップ

ツールチップ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

コントロールと関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

参照

ツールチップヘルプボックス


GUIコントロール 特性 一覧 ツリー表示を保持

ツリー表示を保持

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[ツリー]コントロールを持つタスクにフォーカスが再度移った時に、以前の表示内容を保持するかどうかを指定します。「Yes」に設定すると、ファントムタスクに表示されているツリーの表示内容が保持されます。


GUIコントロール 特性 一覧 テーブル色の指定

テーブル色の指定 （デフォルト：C=カラムに依存）

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

テーブルの背景色を各カラムごとに指定するか、テーブル全体に指定するかを定義します。

  • C=カラムに依存……平面指定のテーブルの場合、 [色]特性の指定がカラムの背景やカラムタイトルの背景に影響します。

  • T=テーブルに依存……[色]特性は、全てのスタイルで有効になり、カラムに割り当てられた色が無効になります。この時、テーブルのスタイルによって以下のように表示されます。

  • 2=平面……カラムヘッダの背景、空きスペースの背景、カラムの背景は、[色]特性の背景色で表示されます。カラムタイトルとテーブルの区切りは[色]特性の前景色でで表示されます。

  • 3=凸立体……カラムタイトルは[色]特性の前景色でで表示されます。

  • W=Windows立体……カラム背景と空きスペース背景は、[色]特性の背景色で表示されます。カラムタイトルは、[色]特性の前景色で表示されます。


GUIコントロール 特性 一覧 テキスト

テキスト

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

[スタティック]コントロールや[チェックボックス]コントロールに表示するテキストを指定します。

この特性には、Unicode値のみ有効です。Magic V9PLus用のアプリケーションから移行した場合、デフォルトのコードページを使用してANSIからUnicodeへの変更が行われます。


GUIコントロール 特性 一覧 データ

データ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

[データ]特性には、データ項目（値）または式を指定します。

注意:

[リッチクライアント表示]フォームの[イメージ]コントロールで、ここにイメージファイル名を指定する場合は、URL形式で指定してください。その際、パス名を論理名で指定すると保守が楽になります。


GUIコントロール 特性 一覧 デフォルトイメージファイル名

デフォルイメージファイル名

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[イメージ]コントロールや[プッシュボタン]コントロールに対して、表示するイメージファイルの名前を指定します。


GUIコントロール 特性 一覧 ドラッグ許可

ドラッグ許可

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
接続性 > ドラッグ&ドロップ

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。

以下のコントロールで有効です。

  • エディット

  • テキスト

  • プッシュボタン

  • チェックボックス

  • ラジオボタン

  • タブ

  • リストボックス

  • コンボボックス

  • スタティック（四角、楕円、グループ）

  • テーブル

  • イメージ

  • ツリー

このコントロールからコピーされたデータは、[ドラッグ開始]イベントによるハンドラで意図的に設定されるか、Magicエンジンにより自動的に設定されます。ントによるハンドラで意図的に設定されるか、Magicエンジンにより自動的に設定されます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。

参照

ドロップ許可

ドラッグ開始イベント

ドロップイベント

ドラッグ & ドロップの制限と環境設定

ドラッグ&ドロップ関数

ドラッグドロップの動作

ドラッグ&ドロップ使用時の考慮事項


GUIコントロール 特性 一覧 ドロップ許可

ドロップ許可

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
接続性 > ドラッグ&ドロップ

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic以外のアプリケーションとの間のデータのドロップ処理を可能にします。

以下のコントロールで有効です。

  • エディット

  • テキスト

  • プッシュボタン

  • チェックボックス

  • ラジオボタン

  • タブ

  • リストボックス

  • コンボボックス

  • スタティック（四角、楕円、グループ）

  • テーブル

  • イメージ

  • ツリー

このコントロールへのデータのコピーは、[ドロップ]イベントによるハンドラで意図的に行われるか、Magic エンジンにより自動的に行われます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。

参照

ドラッグ許可

ドラッグ開始イベント

ドロップイベント

ドラッグ&ドロップ関数

ドロップデータサポート・ユーザフォーマット

ドラッグドロップの動作

ドラッグ&ドロップ使用時の考慮事項


GUIコントロール 特性 一覧 ノードID

ノードID

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

タスクデータビューのノードIDを定義する項目です。式では定義できません。


GUIコントロール 特性 一覧 ノード事前読込

ノード事前読込

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

実行時にデータツリー用のレコードの読込方法を指定します。

  • Yes…… タスクデータビューの全てのレコードのデータを読み込みます。

  • No …… 拡張されたレコードのデータのみ読み込みます。データツリー表示は、[自動展開]特性によって指定されます。


GUIコントロール 特性 一覧 ハイライト行のスタイル

ハイライト行のスタイル

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[テーブル]コントロールの現在行をハイライト表示する場合の表示方法を指定します。指定できるオプションは以下の通りです。

  • N=なし……現在行はハイライト表示されません。

  • F=フレーム……現在行は列を囲む矩形のボックスによってハイライト表示されます。フレームの色は[ハイライト行の色]特性で定義された色です。[区切り]特性が「No」の場合、フレームは表示されません。

  • B=背景……現在行は[ハイライト行の色]特性で指定された背景色によってハイライト表示されます。

  • C=背景とコントロール……現在行は、背景オプションのような背景色によってハイライト表示されます。ハイライト表示の色を表示するために、このモードは現在の行の全てのコントロールの色を修正します。


GUIコントロール 特性 一覧 ハイライト行の色

ハイライト行の色

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

[ハイライト行のスタイル]特性に従って表示される行の色を指定します。

  • 指定された前景色によって、フレームがハイライト表示されます。

  • 選択された背景色によって、マークされる行の背景色が表示されます。

コントロールやカラム、マークされたカラムの背景色は、指定された背景色とハイライト時の背景色を排他論理和（XOR）した値で決まります。

マークされた行に表示される背景色の選択によって、ハイライトスタイルの背景色が決まります。デフォルト値は「4」で、前景色が黒、背景色が灰色になります。


GUIコントロール 特性 一覧 パーキング可

パーキング可 (デフォルト:Yes)

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

オンラインタスクにおいて、カーソルがコントロール上でパークできるかどうかを指定します。

「Yes」が設定された場合、タブ移動やマウスクリックによってこのコントロールにパークすることができます。式によって動的に指定することもできます。

参照

タブ移動方向

タブ順序

タブで移動


GUIコントロール 特性 一覧 パーク縮小表示画像インデックス

パーク縮小表示イメージインデックス

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

（イメージ一覧ファイル内の）ツリーの縮小表示ノードのパーク状態を表すイメージのインデックスを指定します。 指定しない場合は、デフォルトイメージを使用します。


GUIコントロール 特性 一覧 パーク展開表示画像インデックス

パーク展開表示イメージインデックス

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

（イメージ一覧ファイル内の）ツリーの展開表示ノードのパーク状態を表すイメージのインデックスを指定します。 指定しない場合は、デフォルトイメージを使用します。


GUIコントロール 特性 一覧 パスワードエディット

パスワードエディット（デフォルト:No）

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

[エディット]コントロールへのアクセスをパスワード保護するかどうかを指定します。

  • No …… パスワード保護を行いません。

  • Yes …… 入力内容がアスタリスク（*）で表示され、パスワード保護を行います。


GUIコントロール 特性 一覧 パラメータ

パラメータ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

ここには、サブフォーム表示のために起動されるプログラム／タスクに渡すパラメータの数が表示されます。ここからズームすると[パラメータ]テーブルが表示され、このテーブルにパラメータを定義することができます。

この特性は、[モデル]リポジトリでは無効です。


GUIコントロール 特性 一覧 フォント

フォント

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

コントロールに表示されるテキストのフォントを指定します。[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。


GUIコントロール 特性 一覧 プログラム/タスク番号

プログラム/タスク番号

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

サブフォームで呼び出すタスクまたはプログラムの番号を指定します。ここからズームしてプログラムやサブフォームを選択することができます。

  • [接続先]特性が「P=プログラム」の場合、ここからズームすると[プログラム一覧]が表示されます。

  • [接続先]特性が「S=サブタスク」の場合、ここからズームすると[サブタスク一覧]が表示されます。


GUIコントロール 特性 一覧 ヘルプ画面

ヘルプ画面

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

コントロールと関連付けるヘルプ画面を指定します。[ヘルプ一覧]にズームして、ヘルプ画面を選択できます。リッチクライアントコントロールの場合は、URLヘルプを指定します。


GUIコントロール 特性 一覧 ホットトラック

ホットトラック （デフォルト：No）

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

マウスカーソルが[タブ]コントロールを通過した場合の表示方法を定義します。

この特性は、[スタイル]特性が「W=Windows立体」の場合のみ有効です。

  • Yes ……マウスカーソルがコントロールを通過すると、自動的にタブを強調表示されます。

  • No …… タブは強調表示されません。

  • 式 …… 式で指定された場合、フォームのオープン時に評価されます。


GUIコントロール 特性 一覧 ボタンの表示

ボタンの表示 （デフォルト：Yes）

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[ツリー]コントロールのボタンイメージの表示を指定します。

  • Yes ……親ノードの隣にボタンイメージが表示されます。

  • No ……ボタンイメージは表示されません。この場合、エンドユーザは、ツリーレベルを拡張する場合、親ノードをダブルクリックする必要があります。


GUIコントロール 特性 一覧 ボタンスタイル

ボタンスタイル (デフォルト：P=プッシュボタン)

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[プッシュボタン]コントロールの表示方法を定義します。

P=プッシュボタン

プッシュボタンコントロールにデフォルトのWindowsプッシュボタンデザインが使用されます。
ボタンスタイルがプッシュボタンの時に、データ項目を定義するための条件は次のように制限されています。

  • 名前の最大文字数は30文字です。

  • 先頭と末尾に空白を使用できます。

  • 名前には空白を使用できます。

  • 数値および特殊文字を使用できます。

  • 言語テーブルで定義した特定言語の文字を使用できます。

I=イメージボタン

[データ]特性または[デフォルトイメージファイル名]特性において指定されたイメージファイルが使用されます。このイメージファイルには、ボタンにフォーカスがある時、選択した時、無効にした時、デフォルトの４つのイメージを含めておく必要があります。

T=イメージ上のテキスト

実行時に[データ]特性で指定されたイメージファイル名と、[書式]特性で指定されたテキストを組み合わせてボタンを表示します。このオプションを使用することで以下のような利点があります。

  • イメージファイルを変更しないでテキスト表示のみを変更することができます。

  • [フォント]特性や[色]特性によってテキスト表示のフォントと色を変更できます。

  • 指定するイメージの構成は、イメージボタンと同じように４種類の同じサイズのイメージを水平に並べたものにする必要があります。

  • 開発時は、[デフォルトイメージファイル名]で指定されたファイル名でイメージ表示されます。

H=ハイパースタイル

Magicイベントが[プッシュボタン]コントロールにリンクされます。この設定にすると、プッシュボタンは2本の下線付きテキストとして表示されます。
ボタンスタイルがハイパーテキストの時に、データ項目を定義するための条件は次のように制限されています。

  • 名前の最大文字数は30文字です。

  • 先頭と末尾に空白を使用できます。

  • 名前には空白を使用できます。

  • 数値および特殊文字を使用できます。

  • 言語テーブルで定義した特定言語の文字を使用できます。


GUIコントロール 特性 一覧 マウスオーバ表示

マウスオーバ表示

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

マウスカーソルが[ツリー]コントロールのノードを通過したり、ノードにパークした場合の動作を指定します。

  • Yes……ノードテキストの下にラインを表示します。

  • No ……表示されません。


GUIコントロール 特性 一覧 マルチマーキング

マルチマーキング

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[テーブル]コントロールのマルチマーキング機能を有効にするかどうかを指定します。マークされたテーブルに対してユーザが定義した処理を実行したりマーク行を削除したりすることができます。

注意：

[タスク特性／トランザクションモード]が「P=物理」で、[データソース特性／キャッシュ範囲]を「N=なし」に設定したテーブルをメインソースにした場合、実行時にマルチマーキングは機能しません。


GUI表示フォーム 特性 モデル

モデル

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧
 出力フォーム >

継承が解除されている特性の継承をし直したり、モデルの全ての特性の継承を解除することができます。さらに、別のモデルを選択することもできます。

他のモデルを選択する場合にクリックします。

デフォルトモデルの特性を表示する場合にクリックします。

モデル特性の継承を解除する場合にクリックします。

モデル特性を継承する場合にクリックします。


GUIコントロール 特性 一覧 ラインの表示

ラインの表示

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[ツリー]コントロールのツリーラインを表示するかどうかを指定します。

  • Yes ……ツリーラインを表示します。この場合、[選択行のハイライト表示]特性は無効になります。

  • No ……ラインは表示されません。


GUIコントロール 特性 一覧 リンク項目

リンク項目

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

実際に格納されるテーブルのカラムを指定します。[ソーステーブル]特性で指定されたテーブルのカラムを項目一覧から選択できます。

[リスト]、[タブ]、[ラジオ]及び[コンボボックス]でのみ有効です。


GUIコントロール 特性 一覧 リンク自動更新

リンク自動更新 （デフォルト：Yes）

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

リンクされたドキュメントのコンテンツビットマップを自動的に更新するかどうかを指定します。このオプションは、[OLE表示形式]特性が「C=内容」、「I=アイコン」、または「A=任意」に設定され、[OLE形式]特性が「L=リンク」または「A=任意」に設定した場合に有効です 。

  • Yes……コンテンツイメージがフォームに表示される前に、最新のものであることが確認されます。

  • No……最後に保存されたコンテンツのイメージを表示します。


GUIコントロール 特性 一覧 ルートのライン表示

ルートのライン表示

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[ツリー]コントロールのルートノードをライン表示するかどうかを指定します。

  • Yes ……ルートにラインが表示されます。

  • No ……ラインは表示されません。


GUIコントロール 特性 一覧 ルートの表示

ルートの表示

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

[ツリー]コントロールのルートを表示するかどうかを指定します。ルート値が指定されない場合は、無効です。

  • Yes ……先頭のノードに表示されます。

  • No……表示されません。


GUIコントロール 特性 一覧 ルート値

ルート値

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

実行エンジンが[ツリー]コントロールのツリーを作成する開始位置として使用される値を式で指定します。


GUIコントロール 特性 一覧 位置

位置

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

親フォームのサイズが変更された場合、子フォームとして定義されているGUIフォームのサイズを変更するかどうかを指定します。 単独のフォームには、この特性はサポートされません。[位置]特性は、[位置]ダイアログ内の次の4つの設定（%）の組み合わせになります。

  • 左辺割合

  • 幅割合

  • 上辺割合

  • 高さ割合

この特性からズームして[位置]ダイアログを開きます。

GUIフォームの位置特性が「0」の場合、親フォームのサイズが実行時に変更されても相対サイズは変化しません。GUIフォームの[位置]特性が「0」より大きい場合、親フォームのサイズが実行時に変更された時に相対サイズが変化します。


GUIコントロール 特性 一覧 位置（カラム）

位置(カラム)

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[位置]特性は、カラムが[テーブル]コントロールのサイズ変更によってカラムのサイズも変更されるかどうかを指定します。「Yes」か「No」を指定するか、論理型の式を定義することで動的に指定することもできます。


GUIコントロール 特性 一覧 右境界線

右境界線

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[カラム]コントロールの右の境界線を表示するか否かを指定します。


GUIコントロール 特性 一覧 下辺位置

下辺位置 (デフォルト：N=最下行まで)

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

ウィンドウのサイズに応じてテーブルの下辺の位置を決める方法を指定します。

  • R=最下行内（デフォルト） …… テーブルの下辺とウィンドウの下辺の間隔が調整され、部分表示行（何も表示されず、行の高さが指定行より小さい行）が表示されないようにします。

  • N=最下行まで…… 部分表示行が表示され、テーブルの下辺とウィンドウの下辺の間隔が同じになるように調整されます。


GUIコントロール 特性 一覧 可視

可視

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。


GUIコントロール 特性 一覧 拡張ウィンドウ

拡張ウィンドウ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

[エディット]コントロールの表示可能範囲を越えるテキストのためのウィンドウを指定します。[フォーム一覧]にズームして、コントロールに関連付ける拡張ウィンドウのフォームを選択できます。


GUIコントロール 特性 一覧 漢字入力

漢字入力

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

[漢字入力]特性は、かな漢字変換プログラム（IME）を自動起動するためのものです。IME を手動で起動する場合は、この特性の設定は必要ありません。

かな漢字変換入力モードの値を返す式を[式]エディタに設定し、その式番号をこの式欄に設定します。ただし、式が返す値は0 ～ 9 で、式番号は255 以下でなければなりません。

各値に対するかな漢字変換入力モードは、以下のようになります。

値 | 入力モード | サイズ | 入力方法 | 入力例
0 | OFF | - | - | -
1 | 全Ｒ かな | 全角 | ローマ字 | かな
2 | 全かな | 全角 | 直接 | のちみち（ＫＡＮＡ ）
3 | 全Ｒ カナ | 全角 | ローマ字 | カナ
4 | 全カナ | 全角 | 直接 | ノチミチ（ＫＡＮＡ ）
5 | 半Ｒ カナ | 半角 | ローマ字 | ｶﾅ
6 | 半カナ | 半角 | 直接 | ﾉﾁﾐﾁ（KANA ）
7 | 全英数 | 全角 | 直接 | ｋａｎａ
8 | 半英数 | 半角 | 直接 | kana
9 | - | - | - | -

注意：

  • この特性は、日本語版でのみ有効です。

  • IMEによっては、「1」と「2」、「3」と「4」、「5」と「6」が同じ結果になる場合があります。


GUIコントロール 特性 一覧 起動モード

起動モード(デフォルト：B=前置)

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[選択プログラム]特性で定義されたプログラムを呼び出す時期を指定します。有効な値は以下のとおりです。

  • A=後置……呼び出した選択プログラムが終了した時に、カーソルが次の項目に移動するように指定します。

  • B=前置……呼び出した選択プログラムが終了した時に、カーソルが呼び出した項目に戻るように指定します。

  • P=自動……項目にカーソルが移動すると同時にプログラムが自動的に実行されるように指定します。これにより、ユーザは即座に値を選択できます。この場合は、選択プログラムが終了した後、前置モードの場合と同様にカーソルは呼び出した項目に戻ります。


GUIコントロール 特性 一覧 境界

境界スタイル

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

コントロールの境界スタイルを指定します。[スタイル]特性が「2= 平面」と「W=Windows立体」の時に有効です。有効な値は以下のとおりです。

  • T=細線……細線でコントロールを囲みます。

  • H=太線……太線でコントロールを囲みます。

  • N=なし……コントロールに境界線を表示しません。


GUIコントロール 特性 一覧 区切り

区切り

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[テーブル]コントロールの行間に分割線を表示するかどうかを指定します。


GUIコントロール 特性 一覧 型

型

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

選択したデータ項目または式の型。データ項目を設定した場合、この値は変更できません。式を設定した場合、この値は変更できます。

旧バージョンでは、[型]特性のデフォルトは[データ]特性に指定した項目や式の戻り値の型と同じでした。Magic Ver10では、式によって定義されたデータの場合、「Unicode型」になります。

V9Plusのアプリケーションから移行した場合、[データ]特性が式で設定され、[型]特性が「A=文字型」になっている場合、「U=Unicode型」に変換されます。


GUIコントロール 特性 一覧 交互表示色

交互表示色

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

テーブルの交互に表示される行の色を指定します。デフォルトは「0」です。この特性は式を使用して動的に定義することはできません。[テーブル色の指定]特性が「C=カラムに依存」の場合は無効です。

実行時、行の背景色は[色]特性と[交互表示色]特性で交互に表示されます。表示順は、偶数行が[色]特性を、奇数行が[交互表示色]特性になります。行が追加されたり削除された場合、偶数／奇数の関係が変わった行の色が変わります。テーブルがいっぱいでない場合、残りの行も同じように表示されます。


GUIコントロール 特性 一覧 行高さ

行高さ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

[テーブル]コントロールの行の高さを指定します。テーブルの先頭行の下端をクリックおよびドラッグして変更することもできます。


GUIコントロール 特性 一覧 項目

項目

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

[データ]特性で指定されたデータ項目の名前を表示します。


GUIコントロール 特性 一覧 高さ

高さ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

フォームの[寸法単位]特性に基づいたコントロールの高さを指定します。[テーブル]コントロールにはありません。


GUIコントロール 特性 一覧 左辺位置

左辺位置

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

コントロールの左上のx座標を指定します。


GUIコントロール 特性 一覧 最終区切線

最終区切線

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[テーブル]コントロールにおいてタイトルバーに最終カラムの区切線を表示するかどうかを指定します。

  • Yes……タイトルバーに最終カラムの区切線を表示します。

  • No……区切線を表しません。

デフォルトの設定は以下の通りです。

  • GUI表示形式フォームの場合…Yes

  • GUI出力形式フォームの場合…No


GUIコントロール 特性 一覧 自動ヘルプ

自動ヘルプ

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

コントロールと関連付ける自動ヘルプを指定します。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。


GUIコントロール 特性 一覧 自動拡張

自動拡張 （デフォルト：No）

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

必要な時に自動的に拡張ウィンドウをオープンするかどうかを指定します。この特性が「Yes」に設定された場合、ユーザが現在の[エディット]コントロールの幅を超えた位置にカーソルを動かしたり、テキストを入力すると拡張ウィンドウが自動的にオープンされます。

拡張ウィンドウが自動的にオープンされた後、キャレットは拡張ウィンドウ内のテキストの同じ位置に表示されます。ただし、拡張ウィンドウがクローズされた場合、キャレットは文字列の先頭に表示されます。

ユーザ定義による拡張表示とデフォルトの拡張表示

[自動拡張]特性を設定すると、以下の場合に自動的に拡張ウィンドウが表示されます。

  • コントロールの幅を超えた長さのテキストを入力した場合

  • すでにコントロールの幅を超える長さのテキストが入力された[エディット]コントロールの処理（切取り、削除、マーク、置換、貼り付け、挿入）を行なった場合

  • [全てマーク]イベントや、複数マーク（Shift+カーソルキー や Shift+End）処理を実行して、コントロールの幅を超えるテキストをマークした場合.

  • すでにコントロールの幅を超える長さのテキストが入力された[エディット]コントロール内でキャレットの操作（次文字、項目末尾、行末）を行なった場合

マウスを使用したマーキング

マウスを使用して、[エディット]コントロールをマークした場合、コントロール内に表示されている最後の文字だけがマークされ、実際に入力されている最後の文字がマークされている訳ではありません。


GUIコントロール 特性 一覧 自動再表示

自動再表示 （デフォルト：Yes）

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

この特性は、（値渡しか参照渡しで）渡されたパラメータのどれか1つでも変更された場合に、サブフォームのビューが自動的に再表示されるかどうかを指定します。

注意：

サブタスクまたはサブプログラム内でサブフォームパラメータが更新されても再表示機能は実行されません。

この特性に「Yes」を設定すると、親タスクから渡されるパラメータが変更された時点でサブフォームの表示を自動的に更新するようになります。

範囲またはリンクの値が変更した場合も、サブフォームタスクは再表示されます。

リッチクライアントフォームの場合、この特性で使用された式は、ニュートラル（クライアントとサーバ側の両方で実行可能）でなければなりません。

[リッチクライアントフレーム]フォームの場合は、[接続先]特性が「フォーム」に設定されていると、この特性は無効になります。


GUIコントロール 特性 一覧 自動調整

自動調整 （デフォルト：A=コントロールに合わせる）

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントフォーム >リッチクライアントコントロール > コントロール特性一覧

この特性は、コントロールの内容をどのように表示するかを指定します。有効な値は以下のとおりです。

  • N=なし …… タスクのフォームはサブフォームのサイズに合うように調整されません。コントロールのサイズがタスクのフォームより小さい場合、スクロールバーが表示されます。コントロールのサイズが大きい場合は、空いた領域が親タスクの背景色で塗りつぶされます。

  • A=コントロールに合わせる ……サブフォームタスクのフォームは、[サブフォーム]コントロールのサイズに収まるように調整されます。

  • C=起動先フォームに合わせる …… コントロールのサイズは、起動されたタスクのフォームのサイズと同じになるように変更されます。

リッチクライアントフレーム

  • N=なし …… タスクのフォームはフレームのサイズに合うように調整されません。フレームのサイズがタスクのフォームより小さい場合、フレーム内にスクロールバーが表示されます。サイズが大きい場合は、空いた領域が親タスクの背景色で塗りつぶされます。

  • A=フレームに合わせる（デフォルト） ……タスクのフォームは、フレームのサイズに収まるように調整されます。


GUIコントロール 特性 一覧 自動展開

自動展開

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

「Yes」 が選択された場合、実行時にツリーの全てのノードが展開表示されます。


GUIコントロール 特性 一覧 実行イベント

実行イベント

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

エンドユーザがボタンを選択した時に実行されるイベントを指定します。

ここから[イベント]ダイアログにズームして以下のイベントを選択することができます。

  • S=システム …… キーの組み合わせ操作をトリガとするイベントを定義します。

  • I=内部 …… [イベント一覧]から内部イベントを選択します。

  • U=ユーザ …… ユーザ定義イベントを選択します。コンポーネントがホストプロジェクトのユーザイベントを起動するには、ホストプロジェクト内のメインプログラムにて、[イベント]テーブルの[公開]カラムをチェックする必要があります。

  • N=なし …… イベントは何も選択されません。


GUIコントロール 特性 一覧 実行元

実行元 （デフォルト：C=コンテナタスク）

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

イベントがどこで実行されるかを指定します。指定できるオプションは以下の通りです。

  • C=コンテナタスク …… [プッシュボタン]コントロールが定義されたタスクでイベントを実行します。

  • T=フォーカス上のタスク …… フォーカス内のタスクに対してイベントを実行するタスクに[プッシュボタン]コントロールが定義されていない場合に使用します。[パーキング可]特性が「No」の場合のみ有効です。「Yes」の場合、[実行元]特性は無視され、イベントはコンテナタスクで実行されます。この設定でイベントを実行した場合、フォーカス内の（サブ）タスクでイベントが実行されます。

この特性の利点は、1つのボタンの使用で複数のタスクから同じイベントを実行させることができることです。

例：

親タスクのフォームに[プッシュボタン]コントロールが定義されており、[削除]イベントが割り当てられているものとします。このコントロールの[実行元]特性の設定内容によって以下のように動作が変わります。

「C=コンテナタスク」の場合

プッシュボタンを押下すると、[削除]イベントが実行され親タスクで選択したコントロール内のデータを削除しますが、サブタスクのフォーム上に定義されたコントロールのデータは削除されません。

「T=フォーカス上のタスク」の場合

プッシュボタンを押下すると、選択したコントロールが親タスクに定義されたものであっても、子タスクに定義されていてもどちらも削除対象となります。


GUIコントロール 特性 一覧 修正許可

修正許可

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

実行時にユーザがコントロール内の値を変更できるかどうかを指定します。

  • Yes……ユーザはコントロール内の値を変更できます。

  • No…… コントロールへのユーザアクセスは拒否されます。


GUIコントロール 特性 一覧 縮小表示イメージインデックス

縮小表示イメージインデックス

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

（画像一覧ファイル内の）ツリーのノードを縮小表示させるボタンに使用するイメージのインデックスを指定します。指定しない場合は、デフォルトイメージを使用します。


GUIコントロール 特性 一覧 書式

書式

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

[エディット]と[プッシュボタン]コントロールで指定します。表示される項目の書式を指定します。現在のフォーム表示用として指定します。初期値は、項目定義の内容が引き継がれます。[式]エディタにズームして、式で書式を指定することで実行時に動的に書式を変更することができます。

プッシュボタンコントロール

[プッシュボタン]コントロールの[データ]特性に項目が定義されていない場合、プッシュボタン上に表示される文字を指定することができます。

アンパサンド(&)文字は、[プッシュボタン]コントロールのショートカットキーとして使用されます。アンパサンドの後の文字が下線表示されます。実行時、Alt+ショートカットキー（下線表示された文字）を押下するとプッシュボタンをクリックする操作が実行されます。[データ]特性に項目が定義されていないためプッシュボタンにパークできない場合に利用できます。


GUIコントロール 特性 一覧 照会モード時修正許可

照会モード時修正許可

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

タスクが照会モードの時にも、チョイスコントロール（ラジオボタン、タブ、リストボックス、コンボボックス、チェックボックス）を切り替えることがでるようにするかどうかを指定します。


GUIコントロール 特性 一覧 上境界線

上境界線

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

カラムの上の境界線を表示するか否かを指定します。


GUIコントロール 特性 一覧 上辺位置

上辺位置

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

コントロールの右上のy座標を指定します。


GUIコントロール 特性 一覧 色

色

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。[スタイル]特性が、「2=平面」の場合のみ有効です。


GUIコントロール 特性 一覧 色（テーブル）

色(テーブル)

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[テーブル]コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。

通常は、[スタイル]特性が、「2=平面」の場合のみ有効ですが、[テーブル色の指定]が「T= テーブルに依存」の場合は、全てのスタイル指定で有効になります。


GUIコントロール 特性 一覧 色（プッシュボタン）

色(プッシュボタン)

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[ボタンスタイル]特性が「T=イメージの上のテキスト」に設定された場合、この特性を設定できます。テキストの前景や背景の色を指定できます。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。


GUIコントロール 特性 一覧 親のID

親のID

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

[ツリー]コントロールにおいてデータビューの親レコードを定義する項目です。式では定義できません。


GUIコントロール 特性 一覧 垂直スクロール

垂直スクロール

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

コントロールの行の間を垂直方向にスクロールを可能にするかどうかを指定します。[複数行編集]が「Yes」に設定されているコントロールに適用されます。


GUIコントロール 特性 一覧 垂直整列

垂直整列

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

コントロール内の垂直方向のテキストの配置を指定します。有効な値は以下のとおりです。

  • T=上寄せ

  • C=センタリング

  • B=下寄せ

チェックボックスとラジオボタン

[表示方法]特性を「B=ボックス」／「R=ラジオ」に、[スタイル]特性を「2=平面」または「3=凸立体」に設定された[チェックボックス]と[ラジオボタン]の場合は、以下のように表示されます。

  • 「T=上寄せ」に設定された場合、ボックスの形とテキストが、コントロールの上辺にそろいます。

  • 「C=センタリング」に設定された場合、ボックスの形とテキストが、コントロールの中央にそろいます。

  • 「B=下寄せ」に設定された場合、ボックスの形とテキストが、コントロールの底辺にそろいます。


GUIコントロール 特性 一覧 水平スクロール

水平スクロール

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

水平方向のスクロールを可能にするかどうかを指定します。[複数行編集]特性が「Yes」に設定されているコントロールに適用されます。


GUIコントロール 特性 一覧 水平整列

水平整列

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

コントロール内の水平方向のテキストの配置を指定します。有効な値は以下のとおりです。

  • L=左寄せ

  • C=センタリング

  • R=右寄せ


GUIコントロール 特性 一覧 接続先

接続先 (デフォルト：P=プログラム)

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

サブフォームによって呼び出されるタスクのタイプを指定します。

この特性を、[フォーム]エディタ上に設定する場合、選択可能なオプションは｢P=プログラム｣(デフォルト)または｢S=サブタスク｣になります。[モデル]リポジトリに設定する場合は、｢P=プログラム｣のみ選択可能です。

リッチクライアントの[フレーム]コントロールの場合

  • すべてのフレームに対して、この特性を定義する必要があります。

  • １つのフレームだけは、｢F=フォーム｣を指定することができます。

  • ここでは、リッチクライアントタスクまたはリッチクライアントフォームのみ指定できます。


GUIコントロール 特性 一覧 線種

線種

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[スタティック]コントロールの線の外観を指定します。[複数行編集]特性が「平面」の時のみ有効です。有効な値は以下のとおりです。

  • R=実線

  • T=点線

  • S=破線

  • A=一点鎖線

  • D=二点鎖線


GUIコントロール 特性 一覧 線幅

線幅

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[スタティック]コントロールの線の幅を指定します。幅はフォームの寸法単位により異なります。


GUIコントロール 特性 一覧 選択プログラム

選択プログラム

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

実行時にエンドユーザが[編集/ズーム]を使用してプログラムを起動することができるかどうかを指定します。プログラム番号を直接入力するか、[プログラム一覧]にズームしてプログラムを選択します。

注意：

[選択プログラム]特性によってプログラムが起動される場合、[並行起動]特性は無視され、プログラムはMDIの子プログラム（MDIとして実行している場合）、またはフローティング（SDIとして実行している場合）で動作します。


GUIコントロール 特性 一覧 選択行のハイライト表示

選択行のハイライト表示 （デフォルト：No）

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

マウスカーソルがノードを通過したり、ノードにパークしたりした場合の動作を指定します。

  • Yes ……ノードテキストがハイライト表示します。この場合[ラインの表示]特性が無効になります。

  • No ……ノードテキストの表示は変わりません。


GUIコントロール 特性 一覧 選択項目リスト

選択項目リスト

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

コントロールから選択することで入力される値のリストを指定します。選択値は、カンマ（,）区切りで複数指定できます。

[選択表示リスト]特性が定義されていない場合は、ここに設定された値が表示されます。[選択表示リスト]特性が定義されている場合は、この値は表示されません。

[データ]特性への継承指定を行うことで、項目の[範囲]特性を継承することができます。

この特性には、Unicode値のみ有効です。Magic V9Plus用のアプリケーションから移行した場合、デフォルトのコードページを使用してANSIからUnicodeへの変更が行われます。

注意：

[選択項目リスト]特性にショートカット指定（例 「&A」）がある場合、[表示項目リスト]を設定するとこの指定が無効になり、「&」は通常の文字と同じように扱われます。


GUIコントロール 特性 一覧 選択表示リスト

選択表示リスト

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

[択項目リスト]特性で指定された値の範囲の内容に対応した表示項目を指定します。各選択値は、カンマ区切りで続けて入力します。表示項目は、[選択項目リスト]特性と同じ数で同じ順番に指定する必要があります。

例えば、「1,2,3」と入力されていて 1が赤、2が青、3が緑となっているとします。赤、青、緑の表示順は、1,2,3 の順になります。

[選択表示リスト]特性が空白の場合、[選択項目リスト]特性に入力された値をもとに表示され、その値で項目に設定されます。[選択項目リスト]特性と[ソーステーブル]特性の両方が設定されている場合、最初に[選択項目リスト]特性の値が表示され、次に[ソーステーブル]特性の値が表示されます。

この特性には、Unicode値のみ有効です。Magic V9Plus用のアプリケーションから移行した場合、デフォルトのコードページを使用してANSIからUnicodeへの変更が行われます。

注意：

[選択項目リスト]特性にショートカット指定（例 「&A」）がある場合、[選択表示リスト]特性を設定するとこの指定が無効になり、「&」は通常の文字と同じように扱われます。


GUIコントロール 特性 一覧 展開表示イメージインデックス

展開表示イメージインデックス

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

（イメージ一覧ファイル内の）ツリーのノードを展開表示させるボタンに使用するイメージのインデックスを指定します。指定しない場合は、デフォルトイメージを使用します。


GUIコントロール 特性 一覧 範囲

範囲

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

画面に表示されるレコードの範囲を決めるための各項目の開始および終了範囲を指定します。[ソーステーブル]特性で指定されたテーブルに対して、[項目範囲]テーブルから範囲を指定するカラムを選択できます。指定されたテーブルに範囲に該当するレコードが存在しない場合、選択肢は何も表示されません。

リッチクライアント形式フォームの場合、サーバ側の式のみ含めることができます。


GUIコントロール 特性 一覧 範囲（スライダ）

範囲（スライダ）

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[スライダ]コントロールのスライダの値の範囲を指定します。


GUIコントロール 特性 一覧 必須入力

必須入力

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

エンドユーザがコントロールに値を入力する必要があるかどうかを指定します。必須にするかどうかを表す論理値を返す式を使用できます。


GUIコントロール 特性 一覧 表示行数

表示行数

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

[コンボボックス]コントロールにアクセスした時に表示される行数を指定します。


GUIコントロール 特性 一覧 表示項目（チョイスコントロール）

表示項目(チョイスコントロール)

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

チョイスコントロールをデータコントロールとして定義した場合、画面に表示されるテーブルのカラムを指定します。[ソーステーブル]特性で指定されたテーブルのカラムを項目一覧から選択できます。

[リスト]、[タブ]、[ラジオ]及び[コンボボックス]でのみ有効です。


GUIコントロール 特性 一覧 表示項目（ツリー）

表示項目(ツリー)

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

[ツリー]コントロールのノードに表示される内容が格納された項目を指定します。


GUIコントロール 特性 一覧 表示方法

表示方法

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

コントロールの表示方法を指定します。以下のオプションがあります。

[チェックボックス]コントロールの場合

  • B=ボックス(デフォルト) …… 通常のチェックボックス表示になります。

  • U=ボタン …… ボタン表示されます。[スタイル]特性が「凸立体」の場合、ボックス表示になります。「True」の状態の場合、ボタンが押されたような表示になります。

[ラジオボタン]コントロールの場合

  • R=ラジオ(デフォルト) …… 通常のラジオボタンの表示になります。

  • U=ボタン …… コントロールはボタン表示になります。このオプションは、選択された値のボタンが押されたような表示になります。

注意：

[スタイル]特性が、「S=凹立体」と「2=平面」の場合のみ有効です。

参照

スタイル


GUIコントロール 特性 一覧 幅

幅

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧
 出力フォーム > 帳票フォーム > テキストコントロール特性 > 位置とサイズ

コントロールの幅を指定します。


GUIコントロール 特性 一覧 幅固定

幅固定

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

カラムの表示状態によってテーブルの表示幅を指定します。

  • Yes……カラムが表示／非表示で切り替わってもテーブルの幅は変わりません。

  • No ……カラムの表示／非表示によってテーブルの幅が変わります。

この設定によってテーブルは以下のように動作します。

[幅固定]=No でカラムが非表示の場合

テーブル中の全てのカラムは非表示カラムの幅によって変わり、テーブルの幅は非表示カラム幅によって小さくなります。

[幅固定]=No でカラムが表示の場合

テーブルの全てのカラムは表示カラムによって変わります。テーブルの幅は表示カラムの幅によって増加します。

[幅固定]=Yes でカラムが非表示の場合

連続するカラムは非表示カラムの位置によって変わります。非表示カラムのサイズによって拡大します。非表示カラムが最後のカラムの場合、最後の区切り線は、最後のカラムとテーブルのスライダの間の空白を削除して、非表示カラムの位置に変わります。

[幅固定]=Yes でカラムが表示の場合

連続するカラムは表示カラムの幅によって変わります。その幅は表示されたカラムの幅によって減少します。表示されたカラムの幅が連続するカラムのそれより大きな場合、連続するカラムは20ピクセルの最小幅にセットされます。また、表示されたカラムの残りの幅は、次のカラムから取られます。表示されたカラムが次のカラムの幅より大きな場合、このカラムはさらに20のピクセル減少し、その後のカラムも減少されます。

最後のカラムが縮小され、しかし、表示カラムの幅は分配されなければ、同じ処理が、テーブルの第1カラムまで表示されたカラムに先行するカラムのために実行されます。

第1のカラムが縮小されており、表示カラムが超過幅を持っている場合、表示カラムの幅は残りの幅を引いてオリジナルのカラム幅になります。

注意：

  • 上記の計算のために使用されたカラム幅は[フォーム]エディタの中で固定に設定されたもので、式によって実行時に動的に指定されるものではありません。

  • 式で指定された場合、計算の後にカラムは整列され、その後式によって幅が再計算されるだけです。


GUIコントロール 特性 一覧 複数行

複数行

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

コントロールに複数行のテキストを表示させることができるかどうかを指定します。

チェックボックス／ラジオボタン

[スタイル]特性が「2=平面」または、「3=凸立体」の場合のみ有効です。「Yes」に設定すると表示されるテキストの長さがコントロールの幅を超えると、折り返して表示されます。

タブ

「Yes」に設定するとタブラベルに表示されるテキストの長さが[タブ幅]特性で指定された長さを超えた場合、折り返して表示されます。


GUIコントロール 特性 一覧 複数行編集

複数行編集

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

コントロールに複数行のテキストを入力することができるかどうかを指定します。

エディット

[テキスト形式]フォームで複数行編集コントロールを使用している場合、フォーム全体に収まるようにコントロールが拡大されます。このコントロールは、ページのサイズに合わせて拡大でき、複数のページにまたがることができます。ページ長を越えた複数行編集コントロールは、Magicの全てのヘッダ制御およびフッタ制御を維持しながら次のページに続きます。

テーブル内のエディット

テーブル内にこのコントロールがある場合、テーブルのセルは[エディット]コントロールのサイズに合わせて拡大されます。テーブルのタイトルは各ページに出力されます。そのほかのコントロールは、[エディット]コントロールの上または下に表示されます。

チェックボックス／ラジオボタン

[スタイル]特性が「2=平面」または、「3=凸立体」の場合のみ有効です。「Yes」に設定すると表示されるテキストの長さがコントロールの幅を超えると、折り返して表示されます。

タブ

「Yes」に設定するとタブラベルに表示されるテキストの長さが[タブ幅]特性で指定された長さを超えた場合、折り返して表示されます。


GUIコントロール 特性 一覧 有効

有効

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。


GUIコントロール 特性 一覧 立体線

立体線

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[スタティック]コントロールにおいて表示される境界線を立体表示にするかどうかを指定します。


GUIコントロール 特性 一覧 列数

列数

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

[ラジオボタン]コントロールに表示する列数を指定します。


リッチクライアントフォーム

表示フォーム >

ここでは、以下の情報を提供しています。

リッチクライアント表示フォーム特性

リッチクライアントコントロール

リッチクライアントフレームフォーム特性

リッチクライアントフレームコントロール特性

参照

リッチクライアントアプリケーション


リッチクライアントフォーム 特性

リッチクライアント表示フォーム特性

表示フォーム > リッチクライアントフォーム

[フォーム特性]シートには、フォームの外観と動作を指定します。[編集/特性]を選択するか、[フォーム]エディタ上の[リッチクライアント形式]フォームからAlt+Enterを押下して[フォーム特性]シートにアクセスできます。

[リッチクライアント表示フォーム]特性は、以下のセクションに分かれています。

モデル

詳細

SDI

入力

表示

位置とサイズ


リッチクライアントフォーム 特性 詳細

詳細

表示フォーム > リッチクライアント表示フォーム > リッチクライアント表示フォーム特性

[リッチクライアント表示フォーム]特性の[詳細]セクションには以下の特性があります。

ウィンドウタイプ

ウィンドウのタイプを設定します。この設定は、ウィンドウの外観や動作に影響します。リッチクライアントの場合、以下のオプションが選択できます。リッチクライアントフォームの選択肢は以下の通りです。

  • S=SDI

  • C=子ウィンドウ

  • F=フローティング

  • M=モーダル（デフォルト）

  • T=ツール

ウィンドウタイプも参照してください。

寸法単位

フォームの寸法単位を指定します。寸法単位に基づいてフォームのサイズと位置が決定されます。また、フォームの解像度も決定されます。以下のオプションがあります。

  • D=ダイアログ（文字）

垂直精度

各単位内の垂直解像度を指定します。値が高いほど細かい解像度が得られます。

水平精度

各単位内の水平解像度を指定します。値が高いほど細かい解像度が得られます。

グリッド表示

[フォーム]エディタにグリッドを表示するかどうかを指定します。

  • Yes……フォームのレイアウトにグリッドが表示されます。

  • No……フォームのレイアウトにグリッドが表示されません。

グリッド間隔(X,Y）

フォームのグリッド間の距離を指定します。

フォーム名

[フォーム]エディタの[名前]カラムの値であり、フォームのタイトルバーに表示されます。実行時に評価されるフォームのタイトルを表す式を選択することもできます。

コンテキストメニュー

[メニュー一覧]からメニューを選択することで、フォーム用のコンテキストメニューを指定することができます。式で指定することで、実行時に動的にメニュー番号を指定することができます。


リッチクライアントフォーム 特性 SDI

SDI

表示フォーム > リッチクライアント表示フォーム > リッチクライアント表示フォーム特性

[SDI]セクションは、SDIウィンドウとして表示される場合のみ有効です。これ以外の場合、[ウィンドウタイプ]特性の「SDI」の設定に基づいて表示されます。

[SDI]セクションには以下の特性があります。

プルダウンメニュー

SDIウィンドウが表示された場合に、表示されるメニューを指定することができます。

メニュー表示

SDIウィンドウを表示する際、プルダウンメニューを表示するかどうかを指定します。以下のオプションが指定可能です。

  • Yes ……[プルダウンメニュー]特性に有効なメニュー番号が設定されている場合、SDIコンテナにプルダウンメニューが表示されます。

  • No …… プルダウンメニューは表示されません。

  • 式 …… 論理値が返る式を指定します。式はタスクが最初に起動された時点でのみ評価され、再計算されません。

ツールバー表示

SDIウィンドウを表示する際、ツールバーを表示するかどうかを指定します。以下のオプションが指定可能です。

  • Yes ……[プルダウンメニュー]特性に有効なメニュー番号が設定されている場合、SDIコンテナにツールバーが表示されます。

  • No …… ツールバーは表示されません。

  • 式 …… 論理値が返る式を指定します。式はタスクが最初に起動された時点でのみ評価され、再計算されません。

ステータスバー表示

SDIウィンドウを表示する際、ツールバーを表示するかどうかを指定します。以下のオプションが指定可能です。

  • Yes ……SDIコンテナにステータスバーが表示されます。

  • No …… ステータスバーは表示されません。この場合、メッセージは表示されず、ログファイルやフローにのみ出力されます。

  • 式 …… 論理値が返る式を指定します。式はタスクが最初に起動された時点でのみ評価され、再計算されません。

開始モード

SDIウィンドウを最初にどのようにオープンするかを指定します。以下のオプションが指定可能です。

  • D=デフォルト ……この特性のデフォルト値です。この設定にすると、[位置とサイズ]セクションで定義された値に従ってウィンドウが開きます。

  • X=最大 …… SDIウィンドウは最大表示されます。[位置とサイズ]セクションで定義された値は、無視されます。

  • N=最小 …… SDIウィンドウは最小表示されます。[位置とサイズ]セクションで定義された値は、無視されます。


リッチクライアントフォーム 特性 入力

入力

表示フォーム > リッチクライアント表示フォーム > リッチクライアント表示フォーム特性

[リッチクライアント表示フォーム]特性の[入力]セクションには以下の特性があります。

タイトルバー

リッチクライアント表示フォームにタイトルバーを表示するかどうかを指定します。タイトルバーがないと、エンドユーザはフォームを移動できません。また、[最小化]ボタンや[最大化]ボタンを表示できません。タイトルバーは、式を定義して指定することもできます。

システムメニュー

リッチクライアント表示フォームのタイトルバーの左側に[システムメニュー]ボタンを配置するかどうかを指定します。このボタンをクリックすると、Windowsの[システムメニュー]が表示されます。

最小化ボタン

リッチクライアント表示フォームの右上隅に[最小化]ボタンを配置するかどうかを指定します。 デフォルトは、「Yes」です。

最大化ボタン

リッチクライアント表示フォームの右上隅に[最大化]ボタンを配置するかどうかを指定します。 デフォルトは、「Yes」です。

デフォルトボタン

複数の[プッシュボタン]コントロールが配置されているフォームにおいて、ユーザがEnterキーを押下した場合、[OK]や[次へ]または[終了]などのような特定の１つのボタンに割り当てられたイベントを実行するような機能を持たせると便利な場合があります。

この特性は、フォーム上に配置されたプッシュボタンのどれかを割り当てることで、上記の機能を持つデフォルトボタンとして使用することができます。式で指定することで、実行時に動的にコントロール名を指定することもできます。


リッチクライアントフォーム 特性 表示

表示

表示フォーム > リッチクライアント表示フォーム > リッチクライアント表示フォーム特性

[リッチクライアント表示フォーム]特性の[表示]セクションには以下の特性があります。

背景

タスクウィンドウの背景となるイメージファイル名を指定します。[式]エディタで式を定義して指定することもできます。ここからズームすることで[ファイルを開く]ダイアログが開き、イメージファイルを選択することができます。

背景スタイル

背景をフォームに合わせる方法を指定します。

ファイル名で指定する場合は、イメージファイルのファイル名をURL形式で指定してください。その際、イメージが格納されているフォルダは、IISに定義されているエイリアスのスコープ内になるようにしてください。

フォント

フォームのフォントを指定します。[フォント]テーブルにズームしてフォントを選択できます。式で動的に指定することもできます。コントロールのフォントは、[コントロール特性]シートで定義します。コントロールのフォントが指定されていない場合、フォームのフォントが使用されます。

色

フォームの色を指定します。[基本色一覧]にズームして色を選択できます。[式]エディタにズームし、色番号を表す式を入力することによって動的に指定することもできます。

ヘルプ画面

フォームと関連付けるURLヘルプを指定します。[ヘルプ一覧]にズームしてヘルプを選択できます。

境界スタイル

フォームの境界線のスタイルを指定します。[ウィンドウタイプ]特性が「SDI」の場合は、指定できません。

  • H=太線

  • T=細線

  • N=なし


リッチクライアントフォーム 特性 位置とサイズ

位置とサイズ

表示フォーム > リッチクライアント表示フォーム > リッチクライアント表示フォーム特性

[リッチクライアント表示フォーム]特性の[位置とサイズ]セクションには以下の特性があります。

開始時の位置

この特性は、リッチクライアント表示フォームをどのように開くかを定義するものです。設定できるオプションは以下の通りです。

  • C=カスタム……ウィンドウは、フォームの[上辺位置]と[左辺位置]の特性で定義された位置に表示されます。フォームサイズは[高さ]と[幅]特性に基づいて表示されます。

  • T=デフォルト……ウィンドウは、OSで定義されたデフォルトの位置およびサイズで表示されます。[上辺位置]，[左辺位置]，[幅]，[高さ]の各特性は無視されます。

  • P=親ウィンドウの中央……ウィンドウは、親タスクのウィンドウの中央に表示されます。フォームサイズは[幅]と[高さ]の特性によって定義されます。

  • D=デスクトップの中央……ウィンドウはデスクトップ領域の中央に表示されます。フォームサイズは[幅]と[高さ]の特性によって定義されます。

もし親タスクがオープンするフォームを持たない場合、その上位のタスクのフォームを親のフォームとします。

X

フォームのフレームの左端の位置を指定します。[式]エディタにズームし、フォームにあるフレームの左端の座標を表す式を入力することもできます。

Y

フォームのフレームの上端の位置を指定します。[式]エディタにズームし、フォームにあるフレームの上端の座標を表す式を入力することもできます。

幅

フォームを囲むフレームの水平方向の寸法を指定します。フレームが小さすぎてコントロールを表示できない場合、ウィンドウ内の内容をスクロールするためのスクロールバーが表示されます。フレームの幅は、フレームの右端をドラッグして変更できます。

高さ

フォームを囲むフレームの垂直方向の寸法を指定します。フレームが小さすぎてコントロールを表示できない場合、ウィンドウ内の内容をスクロールするためのスクロールバーが表示されます。フレームの高さは、フレームの下端をマウスでドラッグして変更できます。

最小幅

ウィンドウの幅の最小値を設定します。

最小高さ

ウィンドウの高さの最小値を設定します。


リッチクライアントコントロール

表示フォーム > リッチクライアントフォーム

リッチクライアントフォームには、様々なコントロールがサポートされています。各コントロールの特性に関する情報は、以下を参照してください。

ラジオボタンコントロール特性

テーブルコントロール特性

エディットコントロール特性

タブコントロール特性

イメージコントロール特性

テキストコントロール特性

リストボックスコントロール特性

プッシュボタンコントロール特性

コンボボックスコントロ－ル特性

チェックボックスコントロール特性

グループコントロール特性

サブフォームコントロール特性

ブラウザコントロール特性

ツリーコントロール特性

参照

コントロール特性一覧


リッチクライアントコントロール ラジオボタン

ラジオボタンコントロール特性

表示フォーム > リッチクライアントコントロール

モデル |  |
詳細 | 表示 | 位置とサイズ
データ 項目 選択項目リスト 表示項目リスト コントロール名 型 コンテキストメニュー | フォント 色 ヘルプ画面 ツールチップ 自動ヘルプ 可視 有効 スタイル 列数 | 位置 X Y 幅 高さ コントロールレイヤ
入力 | パーク |
必須入力 修正許可 照会時修正許可 | TAB順序 パーキング可 TABで移動 |


リッチクライアントコントロール ラジオボタン 詳細

詳細

表示フォーム > リッチクライアントコントロール > ラジオボタンコントロール特性

データ | データは、データ項目（値）または式として指定します。
項目 | [データ]特性で指定されたデータ項目の名前を表示します。
選択項目リスト | コントロールから選択することで返される値の範囲を指定します。選択値は、カンマ（,）区切りで複数指定できます。 [選択表示リスト]特性が定義されていない場合は、この値で表示されます。[選択表示リスト]特性が定義されている場合は、この値は表示されません。 [データ]への継承指定を行うことで、項目の[範囲]特性を継承することができます。
表示項目リスト | コントロールに表示させる選択肢を指定します。表示のみで入力値にはなりません。選択値は、カンマ（,）区切りで複数指定できます。 この特性が指定されている場合は、[選択項目リスト]特性に同じ順番で選択値が指定されている必要があります。 例えば、[選択項目リスト]に「1,2,3」と指定されていて、[表示項目リスト]に、「赤,青,緑」と指定されている場合。フォーム上の表示は、「赤,青,緑」になりますが、実際に入力される値は、「1,2,3」のいずれかになります。 この特性は、Unicode文字で指定します。Magic V9Plus用のアプリケーションから移行した場合、デフォルトのコードページを使用してANSIからUnicodeへの変更が行われます。
コントロール名 | コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。LastClicked関数で指定されたコントロール名が返ります。 [コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。
型 | 選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。
コンテキストメニュー | コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。 式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。 デフォルト値は「0」です。


リッチクライアントコントロール ラジオボタン 入力

入力

表示フォーム > リッチクライアントコントロール > ラジオボタンコントロール特性

必須入力

エンドユーザがコントロールに値を入力する必要があるかどうかを指定します。必須にするかどうかを表す論理値を返す式を使用できます。

修正許可

実行時にユーザがコントロール内の値を変更できるかどうかを指定します。

  • Yes……ユーザはコントロール内の値を変更できます。

  • No…… コントロールへのユーザアクセスは拒否されます。

照会モード時修正許可

タスクが照会モードの場合も、チョイスコントロール（ラジオボタン、タブ、リストボックス、コンボボックス、チェックボックス）の切替操作ができるかどうかを指定します。


リッチクライアントコントロール ラジオボタン 表示

表示

表示フォーム > リッチクライアントコントロール > ラジオボタンコントロール特性

フォント

コントロールに表示されるテキストのフォントを指定します。[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。

色

コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。

ヘルプ画面

コントロールに関連付けるURLヘルプを指定します。 [ヘルプ一覧]にズームして選択できます。

ツールチップ

コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

自動ヘルプ

コントロールに関連付ける自動ヘルプを指定します。[ヘルプ一覧]にズームして自動ヘルプを選択できます。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

スタイル

コントロールの外観を指定します。有効な値は、以下の通りです。以下の通りです。

  • S=凹立体（デフォルト）

  • 2=平面

列数

選択オプションを何列で表示させるかを指定します。


リッチクライアントコントロール パーク

パーク

表示フォーム > リッチクライアントコントロール >

TAB順序 | [自動タブ順序]モードが無効な場合、この特性に4桁までのTab ID（数値）を入力することができます。Tab IDで指定された順番にTabキーによってカーソルが移動します。 [自動タブ順序]モードが有効な場合、この特性には自動的にTab IDが表示され、入力はできなくなります。
TABで移動 | この特性は、Tabの移動によってこのコントロールにカーソルを移すことができるかどうかを指定します。「No」に設定された場合、Tabの移動でこのコントロールにはパークされず、マウスクリックでしかカーソルをコントロールに置くことができなくなります。 デフォルト値は、「Yes」です。
パーキング可 | カーソルがコントロール上でパークできるかどうかを指定します。 「Yes」が設定された場合、Tabの移動やマウスクリックによってこのコントロールにパークすることができます。式によって動的に指定することもできます。 デフォルト値は、「Yes」です。


リッチクライアントコントロール 位置とサイズ

位置とサイズ

表示フォーム > リッチクライアントコントロール

位置

[位置]特性は、フォームのサイズを変更した時に、コントロールのサイズを変更するかどうかを制御します。[位置]特性は、[コントロールの位置付]ダイアログ内の[左辺割合]、[幅割合]、[上辺割合]、[高さ割合]の組み合わせになります。

この特性からズームして[コントロールの位置付]ダイアログを表示できます。

コントロールの[位置]特性が「0」の場合、フォームのサイズが実行時に変更されてもコントロールのサイズは変化しません。[位置]特性が「0」より大きい場合、フォームのサイズが実行時に変更された時に相対的にサイズが変化します。

[位置]特性を持つコントロールは、元のサイズより小さくはできません。

X

コントロールのフレームの左端の位置を指定します。実行時に評価される式で動的に指定することもできます。

Y

コントロールのフレームの上端の位置を指定します。実行時に評価される式で動的に指定することもできます。

幅

コントロールの幅の初期値を寸法単位で指定します。

高さ

コントロールの高さの初期値を寸法単位で指定します。

コントロールレイヤ

コントロールがチョイスコントロールの子としてリンクされている場合、選択したコントロールのリンク先である親のチョイスコントロールの階層を表示します。

例えば、3つの選択肢が定義されたメニューを持つコンボボックスがフォームに配置されている場合、エディットを3番目の選択肢にリンクすると、この特性に番号3が表示されます。この特性は、常に無効になっており、フォームレイアウトでのみ変更できます。この特性は、チョイスコントロールにリンクされているコントロールにのみ有効です。

注意:

[リッチクライアント表示]フォームでは、グループ、タブ、およびテーブルの各コントロールはコンテナコントロールになります。別のコントロールがコンテナコントロールにリンクされると、[GUI表示]フォームと同じように、[位置]、[X]、および[Y]特性はフォームとではなくコンテナコントロールに対する相対値になります。


リッチクライアントコントロール テーブル

テーブルコントロール特性

表示フォーム > リッチクライアントコントロール

モデル |  |
詳細 | 表示 | 位置とサイズ
コントロール名 コンテキストメニュー | フォント 色 テーブル色の指定 交互表示色 ツールチップ 可視 境界 ラインの表示 ハイライト行の色 行高さ カラム数 サイズ変更可 | 位置 X Y 幅 高さ コントロールレイヤ

実行時の動作

リッチクライアントの[テーブル]コントロールでは、選択されたレコードからフォーカスを移すことなくレコードのスクロールを行うことができます。テーブルのスクロールバーやマウスホイール、またはコンテキストメニューを使用してスクロールすることができます。

さらに、Ctrl+PgUp/PgDnを使用して、現在表示中の先頭／末尾レコードを選択することができます。

参照

カラム特性


リッチクライアントコントロール テーブル 詳細

詳細

表示フォーム > リッチクライアントコントロール > テーブルコントロール特性

コントロール名 | コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。LastClicked関数の説明も参照してください。 [コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。
コンテキストメニュー | コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。 式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。 デフォルト値は「0」です。


リッチクライアントコントロール テーブル 表示

表示

表示フォーム > リッチクライアントコントロール > テーブルコントロール特性

フォント

コントロールに表示されるテキストのフォントを指定します。指定されていない場合、フォームのフォント特性が有効になります。

[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。

色

コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。[テーブル色の指定]特性が「T=テーブルに依存」の場合に有効になります。

テーブル色の指定

テーブルの背景色を各カラムごとに指定された色で表示するか、テーブル全体で同じ色によって表示するかを定義します。

  • C=カラムに依存……テーブルに配置された各カラムの[色]特性によって表示される色が決まります。

  • T=テーブルに依存……[テーブル]コントロールの[色]特性によってテーブルの背景色が決まります。この場合、[カラム]コントロールの[色]特性は無効になります。

交互表示色

テーブルの行の背景色を交互に変更して表示させる場合の変更色を指定します。デフォルト値は「0」です。この場合、全ての行の背景色は同じになります。定義式では指定できません。[テーブル色の指定]特性が「T= テーブルに依存」の場合のみ有効です。

実行時、行の背景色は、[色]特性で指定した色（奇数行）と、[交互表示色]特性で指定した色（偶数行）の交互に切り替わります。行が追加されたり削除された場合、奇数行と偶数業の関係にもづいて表示が切り替わります。データ行がテーブル全体にない場合（テーブルの下部に何も表示されない部分がある場合）も、交互に色が切り替わって表示されます。

ツールチップ

コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。

境界

コントロールの境界を表するかどうかを指定します。

ラインの表示

[テーブル]コントロールのセルの間に分割線を表示するかどうかを指定します。

行高さ

[テーブル]コントロールの行の高さを指定します。テーブルの先頭行の下端をクリックおよびドラッグして設定することもできます。

カラム数

[テーブル]コントロール内のカラムの数を表示します。カラム数の変更はフォームレイアウト上でのみ行うことができます。

サイズ変更可

実行モードにおいて[テーブル]コントロールのカラムの区切り線をドラッグすることでカラムのサイズを変更できるようにするかどうかを指定します。

カラムのサイズを変更するには２つの方法があります。

  • カラムの区切り線をクリックしてドラッグします。この場合、区切りの両端のカラムの幅が変わります。

  • カラムの区切り線をクリックして、Shiftキーを押しながらドラッグします。この場合、区切りの左端のカラムの幅が変わり、テーブルの幅も変わります。


リッチクライアントコントロール カラム

カラム特性

表示フォーム > リッチクライアントコントロール

[カラム特性]には、以下の特性があります。

モデル

カラムモデルが設定できます。ここからダブルクリックすると[カラムモデル一覧]にアクセスすることができます。

詳細

カラムタイトル

[テーブル]コントロール内のカラムのタイトルを入力します。広域表示ウィンドウ（F6）を表示することで、複数行入力ができます。

コンテキストメニュー

コントロール上で使用されるコンテキストメニューを指定します。この特性には、「9999」までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。

式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。

デフォルト値は「0」です。

表示

水平整列

コントロール内の水平方向のテキストの配置を指定します。有効な値は以下のとおりです。

  • L=左寄せ

  • C=センタリング

  • R=右寄せ

色

コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を指定できます。

位置とサイズ

位置

テーブルのサイズ変更によってカラムのサイズが変更されるかどうかを「Yes」または「No」で指定します。式で動的に指定することもできます。

幅

フォームのオープン時のカラム幅を指定します。フォームの寸法単位に基づいた値を指定します。

コントロールレイヤ

コントロールがチョイスコントロールの子としてリンクされている場合、選択したコントロールのリンク先である親のチョイスコントロールの階層を表示します。

例えば、3つの選択肢が定義されたメニューを持つコンボボックスがフォームに配置されている場合、エディットを3番目の選択肢にリンクすると、この特性に番号3が表示されます。この特性は、常に無効になっており、フォームレイアウトでのみ変更できます。この特性は、チョイスコントロールにリンクされているコントロールにのみ有効です。


リッチクライアントコントロール エディット

エディットコントロール特性

表示フォーム > リッチクライアントコントロール

モデル |  |
詳細 | 表示 | 位置とサイズ
データ 項目 コントロール名 書式 型 漢字入力 コンテキストメニュー | フォント 色 ヘルプ画面 ツールチップ 自動ヘルプ 可視 有効 境界 水平整列 | 位置 X Y 幅 高さ コントロールレイヤ
入力 | パーク |
必須入力 修正許可 複数行編集 水平スクロール 垂直スクロール 自動拡張 広域ウィンドウ パスワードエディット | TAB順序 パーキング可 TABで移動 |


リッチクライアントコントロール エディット 詳細

詳細

表示フォーム > リッチクライアントコントロール > エディットコントロール特性

データ | データは、データ項目または式として指定します。
項目 | [データ]特性で指定されたデータ項目の名前が表示されます。
コントロール名 | コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。LastClicked関数の説明も参照してください。 [コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。
書式 | [エディット]コントロールの書式を指定します。ここで変更できるのは、現在のフォーム表示の形式だけです。初期設定値は、項目の[書式]特性から継承された書式になります。[式]エディタにズームして、コントロールの書式を表す式を入力することもできます。
型 | 選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。
漢字入力 | この特性は、かな漢字変換プログラム（IME）を自動起動するためのものです。IME を手動で起動する場合は、特にこの特性の設定は必要ありません。 かな漢字変換入力モードの値を返す式を[式]エディタに設定し、その式番号をこの式欄に設定します。ただし、式が返す値は0 ～9 で、式番号は255 以下でなければなりません。
コンテキストメニュー | コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。 式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。 デフォルト値は「0」です。


リッチクライアントコントロール エディット 入力

入力

表示フォーム > リッチクライアントコントロール > エディットコントロール特性

自動拡張

必要な時に自動的に拡張ウィンドウをオープンするかどうかを指定します。この特性が「Yes」に設定された場合、ユーザが現在のコントロールの幅を超えた位置にカーソルを動かしたり、テキストを入力すると拡張ウィンドウが自動的にオープンされます。

必須入力

エンドユーザがコントロールに値を入力する必要があるかどうかを指定します。必須にするかどうかを表す論理値を返す式を使用できます。

修正許可

実行時にユーザがコントロール内の値を変更できるかどうかを指定します。

  • Yes……ユーザはコントロール内の値を変更できます。

  • No…… コントロールへのユーザアクセスは拒否されます。

複数行編集

[エディット]コントロールに複数行のテキストを含めることができるかどうかを指定します。

[テキスト形式]フォームで複数行編集コントロールを使用している場合、フォーム全体に収まるようにコントロールが拡大されます。このコントロールは、ページのサイズに合わせて拡大でき、複数のページにまたがることができます。ページ長を越えた複数行編集コントロールは、Magicの全てのヘッダ制御およびフッタ制御を維持しながら次のページに続きます。

テーブル内にこのコントロールがある場合、テーブルのセルは[エディット]コントロールのサイズに合わせて拡大されます。テーブルのタイトルは各ページに出力されます。そのほかのコントロールは、[エディット]コントロールの上または下に表示されます。

水平スクロール

コントロールの幅を超えた入力が行われた場合の動作を指定します。[複数行編集]特性が[Yes]に設定されている[エディット]コントロールに適用されます。

  • W=ワードラップ (デフォルト)……自動的に折り返されます(GUI表示と同じ動作になります)。

  • Y=Yes……自動的にスクロールバーが表示されます。Enterを押下しない限り複数行表示されません。

  • N=No……コントロールの幅を超えて入力することができません。Enterを押下して改行することで入力を継続できます。

垂直スクロール

コントロールの行の間を垂直方向にスクロールを可能にするかどうかを指定します。[複数行編集]特性が「Yes」に設定されているコントロールに適用されます。

拡張ウィンドウ

コントロールの表示可能範囲を越えるテキストのための拡張表示用ウィンドウを指定します。[フォーム一覧]にズームして、コントロールに関連付ける拡張ウィンドウのフォームを選択できます。 [複数行編集]特性が「False」のときのみ有効になります。

パスワードエディット

コントロールへのアクセスをパスワード保護するかどうかを指定します。 [複数行編集]特性が「False」のときのみ有効になります。

  • No (デフォルト) …… 入力した内容は保護されず、そのまま表示されます。

  • Yes …… 入力した内容はアスタリスク（*）で表示され、保護されます。


リッチクライアントコントロール エディット 表示

表示

表示フォーム > リッチクライアントコントロール > エディットコントロール特性

境界

コントロールの境界線を表示するかどうかを指定します。

フォント

コントロールに表示されるテキストのフォントを指定します。[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。

色

コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。

ヘルプ画面

コントロールに関連付けるURLヘルプを指定します。 [ヘルプ一覧]にズームして選択できます。

ツールチップ

コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

自動ヘルプ

コントロールに関連付ける自動ヘルプを指定します。[ヘルプ一覧]にズームして自動ヘルプを選択できます。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

水平整列

コントロール内の水平方向のテキストの配置を指定します。有効な値は以下のとおりです。

  • L=左寄せ

  • C=センタリング

  • R=右寄せ


リッチクライアントコントロール タブ

タブコントロール特性

表示フォーム > リッチクライアントコントロール

モデル |  |
詳細 | 表示 | 位置とサイズ
データ 項目 選択項目リスト 選択表示リスト コントロール名 型 コンテキストメニュー | フォント ヘルプ画面 ツールチップ 自動ヘルプ 可視 有効 タブラベル位置 | 位置 X Y 幅 高さ コントロールレイヤ
入力 | パーク |
照会モード時修正許可 | TAB順序 パーキング可 TABで移動 |


リッチクライアントコントロール タブ 詳細

詳細

表示フォーム > リッチクライアントコントロール > タブコントロール特性

データ | データは、データ項目（値）または式として指定します。
項目 | [データ]特性で指定されたデータ項目の名前を表示します。
選択項目リスト | コントロールから選択することで返される値の範囲を指定します。選択値は、カンマ（,）区切りで複数指定できます。 [選択表示リスト]特性が定義されていない場合は、この値で表示されます。[選択表示リスト]特性が定義されている場合は、この値は表示されません。 [データ]への継承指定を行うことで、項目の[範囲]値を継承することができます。 この特性には、Unicode値のみ有効です。V9Plus用のアプリケーションから移行した場合、デフォルトのコードページを使用してANSIからUnicodeへの変更が行われます。
選択表示リスト | コントロールに表示させる選択肢を指定します。表示のみで入力値にはなりません。選択値は、カンマ（,）区切りで複数指定できます。 この特性が指定されている場合は、[選択項目リスト]特性に同じ順番で選択値が指定されている必要があります。 例えば、[選択項目リスト]に「1,2,3」と指定されていて、[選択表示リスト]に、「赤,青,緑」と指定されている場合。フォーム上の表示は、「赤,青,緑」になりますが、実際に入力される値は、「1,2,3」のいずれかになります。 この特性には、Unicode値で指定できます。V9Plus用のアプリケーションから移行した場合、デフォルトのコードページを使用してANSIからUnicodeへの変更が行われます。
コントロール名 | コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。LastClicked関数の説明も参照してください。 [コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。
型 | 選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。
コンテキストメニュー | コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。 式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。 デフォルト値は「0」です。


リッチクライアントコントロール タブ 入力

入力

表示フォーム > リッチクライアントコントロール > タブコントロール特性

照会モード時修正許可

タスクが照会モードの場合も、チョイスコントロール（ラジオボタン、タブ、リストボックス、コンボボックス、チェックボックス）の切替操作ができるかどうかを指定します。


リッチクライアントコントロール タブ 表示

表示

表示フォーム > リッチクライアントコントロール > タブコントロール特性

フォント

コントロールに表示されるテキストのフォントを指定します。[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。

ヘルプ画面

コントロールに関連付けるURLヘルプを指定します。 [ヘルプ一覧]にズームして選択できます。

ツールチップ

コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

自動ヘルプ

コントロールに関連付ける自動ヘルプを指定します。[ヘルプ一覧]にズームして自動ヘルプを選択できます。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

タブラベル位置

タブコントロールに表示するタブの位置を指定します。有効な値は以下の通りです。

  • T=上

  • B=下


リッチクライアントコントロール イメージ

イメージコントロール特性

表示フォーム > リッチクライアントコントロール

モデル |  |
詳細 | 表示 | 位置とサイズ
データ 項目 コントロール名 型 開発イメージファイル名 コンテキストメニュー | 色 ヘルプ画面 ツールチップ 自動ヘルプ 可視 有効 イメージスタイル | 位置 X Y 幅 高さ コントロールレイヤ
 | パーク |
 | TAB順序 パーキング可 TABで移動 |

注意：

次のイメージタイプがサポートされています：BMP、GIF、ICO、JPEG、PNG。


リッチクライアントコントロール イメージ 詳細

詳細

表示フォーム > リッチクライアントコントロール > イメージコントロール特性

データ | データは、データ項目（値）または式として指定します。
 | ファイル名で指定する場合は、イメージファイルのファイル名をURL形式で指定してください。その際、イメージが格納されているフォルダは、IISに定義されているエイリアスのスコープ内になるようにしてください。
項目 | [データ]特性で指定されたデータ項目の名前が表示されます。
コントロール名 | コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。LastClicked関数の説明も参照してください。 [コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。
型 | 選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。
開発イメージファイル名 | 開発時にエディタ上に表示されるイメージファイルの名前を指定します。
コンテキストメニュー | コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。 式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。 デフォルト値は「0」です。


リッチクライアントコントロール イメージ 表示

表示

表示フォーム > リッチクライアントコントロール > イメージコントロール特性

色

コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。この特性は、[スタイル]特性が「2=平面」の場合にのみ有効です。

ヘルプ画面

コントロールに関連付けるURLヘルプを指定します。 [ヘルプ一覧]にズームして選択できます。

ツールチップ

コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

自動ヘルプ

コントロールに関連付ける自動ヘルプを指定します。[ヘルプ一覧]にズームして自動ヘルプを選択できます。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

イメージスタイル

イメージをイメージコントロールに合わせる方法を指定します。有効な値は以下のとおりです。

  • T=タイル……領域全体が埋まるまで、イメージを繰り返しコントロールにコピーします。

  • C=コピー……イメージをそのままコントロールにコピーします。コントロールより大きいイメージはトリミングされます。イメージがコントロールより小さい場合、コントロールのカバーされていない部分に背景色が塗られます。

  • S=フィットスケール……イメージが、イメージコントロールの高さまたは幅に収まるようにサイズが調整されてコピーされます。この場合、イメージの縦横比は維持されます。イメージの縦横比とコントロールの縦横比が同じでない場合、コントロールの一部がカバーされないままになることがあります。

  • F=フィルスケール……イメージが、イメージコントロールの領域を全て埋めるようにコピーされます。イメージの縦横比は維持されます。イメージの縦横比とコントロールの縦横比が同じでない場合、イメージの一部だけがコントロールに表示されることがあります。

  • D=コントロールスケール……イメージの縦横比が調整され、イメージコントロールの領域を全て埋めるようにコピーされます。したがって、元のイメージは縦長または横長になります。イメージの縦横比とコントロールの縦横比が同じでない場合、縮小または拡大されたイメージは歪んでいます。


リッチクライアントコントロール テキスト

テキストコントロール特性

表示フォーム > リッチクライアントコントロール

モデル |  |
詳細 | 表示 | 位置とサイズ
テキスト コントロール名 コンテキストメニュー | フォント 色 ツールチップ 可視 有効 水平整列 | 位置 X Y 幅 高さ コントロールレイヤ
入力 |  |
複数行 |  |


リッチクライアントコントロール テキスト 詳細

詳細

表示フォーム > リッチクライアントコントロール > テキストコントロール特性

テキスト | コントロールに表示するテキストを指定します。 この特性には、Unicodeのみ入力できます。
コントロール名 | コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。LastClicked関数の説明も参照してください。 [コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。
コンテキストメニュー | コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。 式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。 デフォルト値は「0」です。


リッチクライアントコントロール テキスト 入力

入力

表示フォーム > リッチクライアントコントロール > テキストコントロール特性

複数行

コントロールに複数行のテキストを含めることができるかどうかを指定します。


リッチクライアントコントロール テキスト 表示

表示

表示フォーム > リッチクライアントコントロール > テキストコントロール特性

フォント

コントロールに表示されるテキストのフォントを指定します。[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。

色

コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。

ツールチップ

コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

水平整列

コントロール内の水平方向のテキストの配置を指定します。有効な値は以下のとおりです。

  • L=左寄せ

  • C=センタリング

  • R=右寄せ


リッチクライアントコントロール リストボックス

リストボックスコントロール特性

表示フォーム > リッチクライアントコントロール

モデル |  |
詳細 | 表示 | 位置とサイズ
データ 項目 選択項目リスト 選択表示リスト コントロール名 型 ソーステーブル 表示項目 リンク項目 インデックス 範囲 コンテキストメニュー | フォント 色 ヘルプ画面 ツールチップ 自動ヘルプ 可視 有効 境界 | 位置 X Y 幅 高さ コントロールレイヤ
入力 | パーク |
必須入力 修正許可 照会モード時修正許可 | TAB順序 パーキング可 TABで移動 |


リッチクライアントコントロール リストボックス 詳細

詳細

表示フォーム > リッチクライアントコントロール > リストボックスコントロール特性

データ | データは、データ項目（値）または式として指定します。
項目 | [データ]特性で指定されたデータ項目の名前を表示します。
選択項目リスト | コントロールから選択することで返される値の範囲を指定します。選択値は、カンマ（,）区切りで複数指定できます。 [選択表示リスト]特性が定義されていない場合は、この値で表示されます。[選択表示リスト]特性が定義されている場合は、この値は表示されません。 [データ]特性への継承指定を行うことで、項目の[範囲]特性を継承することができます。 この特性には、Unicode値のみ有効です。Magic V9Plus用のアプリケーションから移行した場合、デフォルトのコードページを使用してANSIからUnicodeへの変更が行われます。
選択表示リスト | コントロールに表示させる選択肢を指定します。表示のみで入力値にはなりません。選択値は、カンマ（,）区切りで複数指定できます。 この特性が指定されている場合は、[選択項目リスト]特性に同じ順番で選択値が指定されている必要があります。 例えば、[選択項目リスト]特性に「1,2,3」と指定されていて、[選択表示リスト]特性に、「赤,青,緑」と指定されている場合。フォーム上の表示は、「赤,青,緑」になりますが、実際に入力される値は、「1,2,3」のいずれかになります。 この特性には、Unicode値のみ有効です。Magic V9Plus9用のアプリケーションから移行した場合、デフォルトのコードページを使用してANSIからUnicodeへの変更が行われます。
コントロール名 | コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。LastClicked関数の説明も参照してください。 [コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。
型 | 選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。
ソーステーブル | コントロールと関連付けるテーブルの番号を指定します。[データソース一覧]からテーブルを選択することができます。 この特性を設定した場合、[表示項目]や[リンク項目]特性を指定する必要があります。
表示項目 | 画面に表示されるテーブルのカラムを指定します。[ソーステーブル]特性で指定されたテーブルのカラムを[項目一覧]から選択できます。
リンク項目 | 実際に格納されるテーブルのカラムを指定します。[ソーステーブル]特性で指定されたテーブルのカラムを[項目一覧]から選択できます。
インデックス | 画面に表示される順序を決めるテーブルのインデックスを指定します。[ソーステーブル]特性で指定されたテーブルのインデックスを[インデックス一覧]から選択できます。
範囲 | 画面に表示されるレコードの範囲を決めるための各項目の開始および終了範囲を指定します。[ソーステーブル]特性で指定されたテーブルに対して、[項目範囲]テーブルから範囲を指定するカラムを選択できます。 指定されたテーブルに範囲に該当するレコードが存在しない場合、選択肢は何も表示されません。 この特性の式は、サーバ側でのみ有効です。
コンテキストメニュー | コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。 式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。 デフォルト値は「0」です。


リッチクライアントコントロール リストボックス 入力

入力

表示フォーム > リッチクライアントコントロール > リストボックスコントロール特性

必須入力

エンドユーザがコントロールに値を入力する必要があるかどうかを指定します。必須にするかどうかを表す論理値を返す式を使用できます。

修正許可

実行時にユーザがコントロール内の値を変更できるかどうかを指定します。

  • Yes……ユーザはコントロール内の値を変更できます。

  • No…… コントロールへのユーザアクセスは拒否されます。

照会モード時修正許可

タスクが照会モードの場合も、チョイスコントロール（ラジオボタン、タブ、リストボックス、コンボボックス、チェックボックス）の切替操作ができるかどうかを指定します。


リッチクライアントコントロール リストボックス 表示

表示

表示フォーム > リッチクライアントコントロール > リストボックスコントロール特性

フォント | コントロールに表示されるテキストのフォントを指定します。[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。
色 | コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。
ヘルプ画面 | コントロールに関連付けるURLヘルプを指定します。 [ヘルプ一覧]にズームして選択できます。
ツールチップ | コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。 式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。
自動ヘルプ | コントロールに関連付ける自動ヘルプを指定します。[ヘルプ一覧]にズームして自動ヘルプを選択できます。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。
可視 | コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。
有効 | コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。
境界 | コントロールに境界を表示させるかどうかを指定します。


リッチクライアントコントロール プッシュボタン

プッシュボタンコントロール特性

表示フォーム > リッチクライアントコントロール

モデル |  |
詳細 | 表示 | 位置とサイズ
データ 項目 コントロール名 書式 型 実行イベント 実行元 コンテキストメニュー | フォント ヘルプ画面 ツールチップ 自動ヘルプ 可視 有効 | 位置 X Y 幅 高さ コントロールレイヤ
入力 | パーク |
クリックでパーク | TAB順序 パーキング可 TABで移動 |


リッチクライアントコントロール プッシュボタン 詳細

詳細

表示フォーム > リッチクライアントコントロール > プッシュボタンコントロール特性

データ

データは、データ項目（値）または式として指定します。

項目

[データ]特性で指定されたデータ項目の名前を表示します。

コントロール名

コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。LastClicked関数の説明も参照してください。

[コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。

書式

[プッシュボタン]コントロールの書式を指定します。ここで変更できるのは、現在のフォーム表示の形式だけです。初期設定値は、[項目特性]の設定から継承された書式になります。[式]エディタにズームして、コントロールの書式を表す式を入力することもできます。

型

選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。

実行イベント

エンドユーザがボタンを選択した時に実行される内部イベントを指定します。[イベント一覧]にズームしてイベントを選択します。

実行元

イベントがどこで実行されるかを指定します。指定できるオプションは以下の通りです。

  • C=コンテナタスク（デフォルト） ……プッシュボタンが定義されたタスクでのみイベントが実行されます。

  • T=フォーカス上のタスク ……[パーキング可]特性が「No」の場合のみ有効です。「Yes」の場合、[実行元]特性は無視され、イベントはコンテナタスクで実行されます。この設定でイベントを実行した場合、フォーカス内の（サブ）タスクでイベントが実行されます。

コンテキストメニュー

コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。

式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。

デフォルト値は「0」です。


リッチクライアントコントロール プッシュボタン 入力

入力

表示フォーム > リッチクライアントコントロール > プッシュボタンコントロール特性

クリックでパーク

プッシュボタンをクリックするとそのコントロールにパークするかどうかを定義します。項目が定義されたプッシュボタンで有効です。

  • Yes …… プッシュボタンをクリックすると、該当する項目が定義された場所までフローが実行され、フォーカスがプッシュボタンに移動します。フォーカスが移動した後にプッシュボタンに定義されたイベントが発行されます。（デフォルト）

  • No ……フロー処理は実行されず、フォーカスも移動しません。


リッチクライアントコントロール プッシュボタン 表示

表示

表示フォーム > リッチクライアントコントロール > プッシュボタンコントロール特性

フォント | コントロールに表示されるテキストのフォントを指定します。[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。
ヘルプ画面 | コントロールと関連付けるURLヘルプを指定します。 [ヘルプ一覧]にズームして選択できます。
ツールチップ | コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。 式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。
自動ヘルプ | コントロールと関連付ける自動ヘルプを指定します。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。
可視 | コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。
有効 | コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。


リッチクライアントコントロール コンボボックス

コンボボックスコントロ－ル特性

表示フォーム > リッチクライアントコントロール

モデル |  |
詳細 | 表示 | 位置とサイズ
データ 項目 選択項目リスト 選択表示リスト コントロール名 型 ソーステーブル 表示項目 リンク項目 インデックス 範囲 コンテキストメニュー | フォント 色 ヘルプ画面 ツールチップ 自動ヘルプ 可視 有効 表示行数 | 位置 X Y 幅 高さ コントロールレイヤ
入力 | パーク |
必須入力 修正許可 照会モード時修正許可 | TAB順序 パーキング可 TABで移動 |

注意：

リッチクライアントタスクでのコンボボックスは、[フォーム]エディタ上でも実行時でも立体表示になります。


リッチクライアントコントロール コンボボックス 詳細

詳細

表示フォーム > リッチクライアントコントロール > コンボボックスコントロ－ル特性

データ | データは、データ項目（値）または式として指定します。
項目 | [データ]特性で指定されたデータ項目の名前を表示します。
選択項目リスト | コントロールから選択することで返される値の範囲を指定します。選択値は、カンマ（,）区切りで複数指定できます。 [選択表示リスト]特性が定義されていない場合は、この値が表示されます。[選択表示リスト]特性が定義されている場合は、この値は表示されません。 [データ]特性への継承指定を行うことで、項目の[範囲]特性を継承することができます。 この特性には、Unicode値のみ有効です。
選択表示リスト | コントロールに表示させる選択肢を指定します。表示のみで入力値にはなりません。選択値は、カンマ（,）区切りで複数指定できます。 この特性が指定されている場合は、[選択項目リスト]特性に同じ順番で選択値が指定されている必要があります。 例えば、[選択項目リスト]特性に「1,2,3」と指定されていて、[選択表示リスト]特性に、「赤,青,緑」と指定されている場合。フォーム上の表示は、「赤,青,緑」になりますが、実際に入力される値は、「1,2,3」のどちらかになります。 この特性には、Unicode値のみ有効です。Magic V9Plus用のアプリケーションから移行した場合、デフォルトのコードページを使用してANSIからUnicodeへの変更が行われます。
コントロール名 | コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。LastClicked関数の説明も参照してください。 [コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。
型 | 選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。
ソーステーブル | コントロールと関連付けるデータソースの番号を指定します。[データソース一覧]からデータソースを選択することができます。 この特性を設定した場合、[表示項目]や[リンク項目]特性を指定する必要があります。チョイスコントロールでのみ有効です。
表示項目 | 画面に表示されるテーブルのカラムを指定します。[ソーステーブル]特性で指定されたデータソースのカラムを[項目一覧]から選択できます。
リンク項目 | 実際に格納されるテーブルのカラムを指定します。[ソーステーブル]特性で指定されたデータソースのカラムを[項目一覧]から選択できます。
インデックス | 画面に表示される順序を決めるテーブルのインデックスを指定します。[ソーステーブル]特性で指定されたテーブルのインデックスを[インデックス一覧]から選択できます。
範囲 | 画面に表示されるレコードの範囲を決めるための各項目の開始および終了範囲を指定します。[ソーステーブル]特性で指定されたテーブルに対して、[項目範囲]テーブルから範囲を指定するカラムを選択できます。指定されたテーブルに範囲に該当するレコードが存在しない場合、選択肢は何も表示されません。
コンテキストメニュー | コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。 式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。 デフォルト値は「0」です。


リッチクライアントコントロール コンボボックス 入力

入力

表示フォーム > リッチクライアントコントロール > コンボボックスコントロ－ル特性

必須入力

エンドユーザがコントロールに値を入力する必要があるかどうかを指定します。必須にするかどうかを表す論理値を返す式を使用できます。

修正許可

実行時にユーザがコントロール内の値を変更できるかどうかを指定します。

  • Yes……ユーザはコントロール内の値を変更できます。

  • No…… コントロールへのユーザアクセスは拒否されます。

照会モード時修正許可

タスクが照会モードの場合も、チョイスコントロール（ラジオボタン、タブ、リストボックス、コンボボックス、チェックボックス）の切替操作ができるかどうかを指定します。


リッチクライアントコントロール コンボボックス 表示

表示

表示フォーム > リッチクライアントコントロール > コンボボックスコントロ－ル特性

フォント | コントロールに表示されるテキストのフォントを指定します。[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。
色 | コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。
ヘルプ画面 | コントロールに関連付けるURLヘルプを指定します。 [ヘルプ一覧]にズームして選択できます。
ツールチップ | コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。 式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。
自動ヘルプ | コントロールに関連付ける自動ヘルプを指定します。[ヘルプ一覧]にズームして自動ヘルプを選択できます。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。
可視 | コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。
有効 | コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。
表示行数 | [コンボボックス]コントロールにアクセスした時に表示される行数を指定します。


リッチクライアントコントロール チェックボックス

チェックボックスコントロール特性

表示フォーム > リッチクライアントコントロール

モデル |  |
詳細 | 表示 | 位置とサイズ
データ 項目 テキスト コントロール名 型 コンテキストメニュー | フォント 色 ヘルプ画面 ツールチップ 自動ヘルプ 可視 有効 表示方法 スタイル | 位置 X Y 幅 高さ コントロールレイヤ
入力 | パーク |
必須入力 修正許可 | TAB順序 パーキング可 TABで移動 |


リッチクライアントコントロール チェックボックス 詳細

詳細

表示フォーム > リッチクライアントコントロール > チェックボックスコントロール特性

データ | データは、データ項目（値）または式として指定します。
項目 | [データ]特性で指定されたデータ項目の名前を表示します。
テキスト | [チェックボックス]コントロールに表示するテキストを指定します。 この特性には、Unicode値のみ有効です。
コントロール名 | コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。LastClicked関数の説明も参照してください。 [コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。
型 | 選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。
コンテキストメニュー | コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。 式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。 デフォルト値は「0」です。


リッチクライアントコントロール チェックボックス 入力

入力

表示フォーム > リッチクライアントコントロール > チェックボックスコントロール特性

必須入力

エンドユーザがコントロールに値を入力する必要があるかどうかを指定します。必須にするかどうかを表す論理値を返す式を使用できます。

修正許可

実行時にユーザがコントロール内の値を変更できるかどうかを指定します。

  • Yes……ユーザはコントロール内の値を変更できます。

  • No…… コントロールへのユーザアクセスは拒否されます。


リッチクライアントコントロール チェックボックス 表示

表示

表示フォーム > リッチクライアントコントロール > チェックボックスコントロール特性

フォント

コントロールに表示されるテキストのフォントを指定します。[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。

色

コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。

ヘルプ画面

コントロールと関連付けるURLヘルプを指定します。 [ヘルプ一覧]にズームして選択できます。

ツールチップ

コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

自動ヘルプ

コントロールに関連付ける自動ヘルプを指定します。[ヘルプ一覧]にズームして自動ヘルプを選択できます。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

表示方法

コントロールの表示方法を指定します。以下のオプションがあります。

  • B=ボックス(デフォルト) …… 通常のチェックボックス表示になります。

  • U=ボタン …… ボタン表示されます。[スタイル]特性が、「S=凹立体」か「2=平面」の場合のみ有効です。「凸立体」の場合、ボックス表示になります。「True」の状態の場合、ボタンが押されたような表示になります。

スタイル

コントロールの外観を指定します。有効な値は、以下の通りです。

  • S=凹立体（デフォルト）

  • 2=平面


リッチクライアントコントロール グループ

グループコントロール特性

表示フォーム > リッチクライアントコントロール

モデル |  |
詳細 | 表示 | 位置とサイズ
テキスト コントロール名 コンテキストメニュー | フォント 色 ツールチップ 可視 有効 | 位置 X Y 幅 高さ コントロールレイヤ


リッチクライアントコントロール グループ 詳細

詳細

表示フォーム > リッチクライアントコントロール > グループコントロール特性

テキスト | [チェックボックス]コントロールに表示するテキストを指定します。 この特性には、Unicode値のみ有効です。
コントロール名 | コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。LastClicked関数の説明も参照してください。 [コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。
コンテキストメニュー | コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。 式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。 デフォルト値は「0」です。


リッチクライアントコントロール グループ 表示

表示

表示フォーム > リッチクライアントコントロール > グループコントロール特性

フォント | コントロールに表示されるテキストのフォントを指定します。[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。
色 | コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。
ツールチップ | コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。 式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。
可視 | コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。
有効 | コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。


リッチクライアントコントロール サブフォーム

サブフォームコントロール特性

表示フォーム > リッチクライアントコントロール

モデル |  |
詳細 | 表示 | 位置とサイズ
接続先 プログラム/タスク番号 パラメータ 自動再表示 コントロール名 | 可視 境界 自動調整 | 位置 X Y 幅 高さ コントロールレイヤ
入力 | パーク |
キャッシュ | TAB順序 パーキング可 TABで移動 |


リッチクライアントコントロール サブフォーム 詳細

詳細

表示フォーム > リッチクライアントコントロール > サブフォームコントロール特性

接続先

サブフォームによって呼び出されるタスクのタイプを指定します。指定できるオプションは以下の通りです。

  • P=プログラム（デフォルト） …… プログラムを呼び出します。

  • S=サブタスク …… 現在のタスクの子タスクを呼び出します。

[モデル]リポジトリでこの特性を設定する場合、「P=プログラム」のみ有効です。

プログラム/タスク番号

サブフォームで呼び出すタスクまたはプログラムの4桁の番号を指定します。

[接続先]特性が「P=プログラム」の場合、ここからズームすると[プログラム一覧]が表示され、「S=サブタスク」の場合、ここからズームすると[サブタスク一覧]が表示されます。

パラメータ

ここには、起動するプログラム／タスクに渡すパラメータの数が表示されます。ここからズームすると[パラメータ]テーブルが表示され、このテーブルにパラメータを定義します。

接続先がサブタスクの場合でも、範囲指定に使用する項目をパラメータとして定義する必要があります。パラメータを使用しないとサブフォームに表示される表示は起動元と連動できません。

自動再表示

この特性は、（値渡しか参照渡しで）渡されたパラメータのどれか1つでも変更された場合に、サブフォームのビューがの自動的に再表示されるかどうかを指定します。

サブタスクまたはサブプログラム内でサブフォームパラメータが更新されても再表示機能は実行されません。

この特性に「Yes」を設定すると、親タスクから渡されるパラメータが変更された時点でサブフォームの表示を自動的に更新するようになります。

範囲またはリンクの値が変更した場合も、サブフォームタスクは再表示されます。

コントロール名

コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。LastClicked関数の説明も参照してください。

[コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。


リッチクライアントコントロール サブフォーム 入力

入力

表示フォーム > リッチクライアントコントロール > サブフォームコントロール特性

キャッシュ

クライアントがサブフォームのためにデータビューのキャッシュを有効にするかどうかを指定します。

注意：

呼び出されたプログラム/タスクの[範囲/位置付]特性にサーバ側で実行される式が定義されていない場合のみ、キャッシュは有効になります。


リッチクライアントコントロール サブフォーム 表示

表示

表示フォーム > リッチクライアントコントロール > サブフォームコントロール特性

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。

境界

コントロールの境界を表示するかどうかを指定します。

自動調整

この特性は、サブフォームの内容をどのように表示するかを指定します。有効な値は以下のとおりです。

  • N=なし …… タスクのフォームはサブフォームのサイズに合うように調整されません。[サブフォーム]コントロールのサイズがタスクのフォームより小さい場合、サブフォーム内にスクロールバーが表示されます。[サブフォーム]コントロールのサイズが大きい場合は、空いた領域が親タスクの背景色で塗りつぶされます。

  • A=コントロールに合わせる（デフォルト） ……サブフォームタスクのフォームは、[サブフォーム]コントロールのサイズに収まるように調整されます。起動先タスク/プログラムのコントロールの[位置]特性の[幅割合]と[高さ割合]が「0」の場合、サイズの調整は行われません。

  • C=起動先フォームに合わせる …… [サブフォーム]コントロールのサイズは、起動されたタスクのフォームのサイズと同じになるように変更されます。親タスクのフォームに収まらない場合、親タスクのフォームにスクロールバーが表示されます。


リッチクライアントコントロール サブフォーム キーボードアクセス

サブフォームへのキーボードアクセス

表示フォーム > リッチクライアントコントロール > サブフォームコントロール特性

Tabキーを使用することで親タスクからリッチクライアントのサブフォームにアクセスすることができます。

各サブフォームのTab順序は、その[TAB順序]特性によって決定されます。

サブフォームにアクセスする際のMagicエンジンの動作内容は、以下の通りです。

親タスクのパーク可能なコントロールから[次項目]イベントが発行された場合、コントロールがサブフォームの前に定義されていると、カーソルは、サブフォーム内の最初に定義されたパーク可能なコントロールに移動します。

カーソルがサブフォーム内の最後のパーク可能なコントロール上に位置している場合、[次項目]イベントが発行されると、カーソルはコントロールの[TAB順序]特性に基づき、親タスクの最後のパーク可能なコントロールの次に移動します。

次のコントロールが別のサブフォームの場合、カーソルは次のサブフォームの最初のパーク可能なコントロールに移動します。

サブフォームが最初のコントロールではなく、カーソルが最初のパーク可能なコントロールでパークしている場合、[全項目]イベントが発行されると、サブフォームの前に親タスクにで定義されているパーク可能なコントロールに移動します。

前のコントロールが別のサブフォームの場合、カーソルは前のサブフォーム内の最後のパーク可能なコントロールに移動します。

サブフォームが親タスクの最初のコントロールとして定義されると、タスクは直接サブフォームの最初のパーク可能なコントロール上にパークします。これは、ネストされたサブフォームでも同様です。

サブフォームのタスクに設定されている[循環入力]特性は無視されます。

注意：

[TABで移動]特性を「No」に設定することで、Tabキーによって故意にサブフォームにアクセスすることが防止できます。


リッチクライアントコントロール ブラウザ

ブラウザコントロール特性

表示フォーム > リッチクライアントコントロール

[ブラウザ]コントロールはHTMLファイルを表示し、HTMLファイル内のJavaScriptやActiveXが利用できるようにする機能があります。

[ブラウザ]コントロールは、リッチクライアントプログラムでのみサポートされています。

[ブラウザ]コントロールは、Internet Explorerの動作をシミュレーションし、ブラウザのActiveXコントロールが使用され場合と同じ動作を行います。このコントロールをフォームに配置することで、ブラウザとして埋め込むことができ、必要なコントロールを使用することができます。これによりHTMLファイル上のJavaScriptやActiveXを使用することができます。

以下のようなタイプのファイルを表示する場合に[ブラウザ]コントロールを使用することができます（クライアントにこのファイルに対応したビューワーがインストールされている必要があります）。

  • Wordの文書

  • Excelのスプレッドシート

  • PDFファイル

  • 音楽やムービーなどのマルチメディアファイル

文字型、Unicode型、またはBLOB型の項目と式だけが使用できます。

モデル |  |
詳細 | 表示 | 位置とサイズ
データ 項目 コントロール名 型 | 可視 境界 | 位置 X Y 幅 高さ コントロールレイヤ
 | パーク |
 | TABで移動 TAB順序 パーキング可 |

参照

BrowserSetContent

BrowserGetContent

BrowserScriptExecute


リッチクライアントコントロール ブラウザ 詳細

詳細

表示フォーム > リッチクライアントコントロール > ブラウザコントロール特性

データ | 表示させるHTMLファイル名を指定します。データは、データ項目（値）または式として指定します。
項目 | [データ]特性で指定されたデータ項目の名前を表示します。
コントロール名 | コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。LastClicked関数の説明も参照してください。 [コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。
型 | 選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。


リッチクライアントコントロール ブラウザ 表示

表示

表示フォーム > リッチクライアントコントロール > ブラウザコントロール特性

可視 | コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。
境界 | コントロールの境界を表示するかどうかを指定します。


リッチクライアントコントロール ツリー

ツリーコントロール特性

表示フォーム > リッチクライアントコントロール

モデル |  |
詳細 | 表示 | 位置とサイズ
ノードID 親のID ルート値 ルートの表示 コントロール名 自動展開 ノード事前読込 コンテキストメニュー | フォント 色 可視 ヘルプ画面 自動ヘルプ ツールチップ スタイル 境界 選択行のハイライト表示 | 位置 X Y 幅 高さ コントロールレイヤ
入力 | パーク |
表示項目 項目 書式 型 修正許可 有効 | TABで移動 TAB順序 パーキング可 |


リッチクライアントコントロール ツリー 詳細

詳細

表示フォーム > リッチクライアントコントロール > ツリーコントロール特性

ノードID

タスクデータビューのノードIDを定義する項目です。式では定義できません。

親のID

タスクデータビューの親レコードを定義する項目です。式では定義できません

ルート値

実行エンジンがツリーを作成する開始位置として使用される値です。

ルートの表示

ルートを表示するかどうかを指定します。ルート値が指定されない場合は、無効です。

  • Yes ……先頭のノードに表示されます。

  • No……表示されません。

コントロール名

コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。

[コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。

自動展開

「Yes」 が選択された場合、実行時にツリーの全てのノードが展開表示されます。

ノード事前読込

実行時にデータツリー用のレコードの読込方法を指定します。

  • Yes…… タスクデータビューの全てのレコードのデータを読み込みます。

  • No …… 拡張されたレコードのデータのみ読み込みます。データツリー表示は、 [自動拡張]特性によって指定されます。

レコード数の多いツリーで使用すると、タスクの起動が遅くなる場合があります。

ビューの事前読込も参照してください。

コンテキストメニュー

コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。

式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。

デフォルト値は「0」です。


リッチクライアントコントロール ツリー 入力

入力

表示フォーム > リッチクライアントコントロール > ツリーコントロール特性

表示項目

ノードに表示される内容が格納された項目を指定します。

項目

[データ]特性で指定されたデータ項目の名前を表示します。

書式

表示項目の書式を指定します。ここで変更できるのは、現在のフォーム表示の形式だけです。初期設定値は、項目のカラムテーブルの設定から継承された書式になります。[式]エディタにズームして、コントロールの書式を表す式を入力することもできます。

型

選択した表示項目の型。この値は変更できません。

修正許可

実行時にユーザがコントロール内の値を変更できるかどうかを指定します。

  • Yes……ユーザはコントロール内の値を変更できます。

  • No…… コントロールへのユーザアクセスは拒否されます。

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。


リッチクライアントコントロール ツリー 表示

表示

表示フォーム > リッチクライアントコントロール > ツリーコントロール特性

フォント

コントロールに表示されるテキストのフォントを指定します。[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。

色

コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。

ヘルプ画面

コントロールと関連付けるヘルプ画面を指定します。この指定はオンラインフォームでのみ有効です。 [ヘルプ一覧]にズームして、ヘルプ画面を選択できます。

自動ヘルプ

コントロールと関連付ける自動ヘルプを指定します。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。

ツールチップ

コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

境界

コントロールの境界スタイルを指定します。[スタイル]特性が「2=平面」の場合のみ有効です。有効な値は以下のとおりです。

  • T=細線……細線でコントロールを囲みます。

  • H=太線……太線でコントロールを囲みます。

  • N=なし……コントロールに境界線を表示しません。（デフォルト）

選択行のハイライト表示

マウスカーソルがノードを通過したり、ノードにパークしたりした場合の動作を指定します。

  • Yes ……ノードテキストがハイライト表示します。この場合[ラインの表示] 特性が無効になります。

  • No ……ノードテキストの表示は変わりません。


リッチクライアントコントロール 特性一覧

コントロール特性一覧

表示フォーム > リッチクライアントコントロール

TABで移動

TAB順序

X

Y

イメージスタイル

イメージ一覧ファイル名

カラムの並べ替え可

カラム数

クリックでパーク

コンテキストメニュー

コントロール名

コントロールレイヤ

キャッシュ

サイズ変更可

スタイル

タブラベル位置

ツールチップ

プログラム/タスク番号

プログ/タスク/フォーム #

データ

テキスト

ノードID

ノード事前読込

パスワードエディット

パーキング可

フォント

フレーム名

ヘルプ画面

モデル

ラインの表示

ルートの表示

ルート値

位置

可視

拡張ウィンドウ

漢字入力

境界

型

行高さ

項目

高さ

自動ヘルプ

自動拡張

自動再表示

自動展開

自動調整

実行イベント

実行元

表示項目

修正許可

書式

水平スクロール

水平整列

最小高さ

最小幅

接続先

選択行のハイライト表示

表示行数

開発イメージファイル名

選択項目リスト

選択表示リスト

有効

複数行編集

照会モード時修正許可

親のID

必須入力

列数

垂直スクロール

垂直位置

水平位置

幅

色


リッチクライアントコントロール 特性一覧 X

X

表示フォーム > リッチクライアントコントロール > コントロール特性一覧

コントロールのフレームの左端の位置を指定します。実行時に評価される式で指定することもできます。

注意：

リッチクライアントフォームでは、[グループ]や[タブ]、および[テーブル]コントロールはコンテナコントロールになります。別のコントロールをコンテナコントロールに配置した場合、オンラインフォームの場合と同じように、[位置]特性や[X]および[Y]特性はフォームではなくコンテナコントロールにリンクされます。


リッチクライアントコントロール 特性一覧 Y

Y

表示フォーム > リッチクライアントコントロール > コントロール特性一覧

コントロールのフレームの上端の位置を指定します。実行時に評価される式で指定することもできます。

注意：

リッチクライアントフォームでは、[グループ]や[タブ]、および[テーブル]コントロールはコンテナコントロールになります。別のコントロールをコンテナコントロールに配置した場合、オンラインフォームの場合と同じように、[位置]特性や[X]および[Y]特性はフォームではなくコンテナコントロールにリンクされます。


リッチクライアントコントロール 特性一覧 キャッシュ

キャッシュ

表示フォーム > リッチクライアントコントロール > コントロール特性一覧

クライアントがサブフォームのためにデータビューのキャッシュを行うかどうかを指定します。

「Yes」が設定されると、クライアントはデータビューをキャッシュします。


リッチクライアントコントロール 特性一覧 プログラム#

プログラム/タスク/フォーム #

表示フォーム > リッチクライアントコントロール > コントロール特性一覧

この特性では、サブフォームで呼び出すように、プログラムやタスク、またはフォームの番号を指定します。

[接続先]特性が「プログラム」または「サブタスク」に設定された場合、[プログラム一覧]や[サブタスク一覧]にズームすることができます。「プログラム」の場合は、[式]エディタにアクセスして式で指定することもできます。

「フォーム」に設定された場合は、[フォーム一覧]にズームすることで現在のタスクに定義されたリッチクライアントフォームを選択することができます。


リッチクライアントコントロール 特性一覧 パラメータ

パラメータ

表示フォーム > リッチクライアントコントロール > コントロール特性一覧

ここからズームして[パラメータ]テーブルを開き、起動先プログラムに渡すパラメータを指定することができます。

[接続先]特性が「フレーム」の場合、この特性は無効になります。


フレームセットフォーム コントロール特性 フレーム名

フレーム名

出力フォーム > フレームセットフォーム > フレームセットコントロール特性
表示フォーム > リッチクライアントコントロール > コントロール特性一覧

ブラウザクライアントの場合

フレームの名前を定義します。フレーム名は、別のフレームでハイパーリンクや送信ボタンをクリックした時に、要求された対象としてそのフレームを参照する場合に使用します。

これに対応するHTMLコードは以下のようになります。

<FRAME name="..."...>

リッチクライアントの場合

フレームの名前を定義します。フレーム名は、[コールプログラム]処理コマンドで起動するプログラムの表示フォームを指定する場合に使用します。


リッチクライアントコントロール 特性一覧 ライン表示

ラインの表示

表示フォーム > リッチクライアントコントロール > コントロール特性一覧

テーブルのセル間の区切り線を表示させるかどうかを指定します。


リッチクライアントコントロール 特性一覧 境界

境界

表示フォーム > リッチクライアントコントロール > コントロール特性一覧

コントロールの境界線を表示させるかどうかを指定します。


リッチクライアントコントロール 特性一覧 最小高さ

最小高さ

表示フォーム > リッチクライアントコントロール > コントロール特性一覧

フレームの高さの最小値を設定することができます。デフォルトは0です。式で指定した場合、フォームを開く際に計算されます。

この特性は、フレームフォームを小さくしすぎることで、フレーム内のコントロールが表示されなくなる問題を防止するためのものです。この特性は、エンドユーザがフレームエリアを使用できない状態に変形してしますことも防止します。

フレームサイズの最小値は、以下の方法によってのみ維持できます。

  • フレームの縁を動かすことで特定のフォームのサイズを変更する。

  • フレーム間の区切り線を動かすことでフレームのサイズを変更する。

フレームサイズが指定された最小値より小さい場合、エンドユーザは、最小値より小さい値であっても拡大させることができますが、縮小させることはできません。

サイズの最小値は、タスクの式によって定義されたフォームやフレームのサイズに影響されません。


リッチクライアントコントロール 特性一覧 最小幅

最小幅

表示フォーム > リッチクライアントコントロール > コントロール特性一覧

フレームの幅の最小値を設定することができます。デフォルトは0です。式で指定した場合、フォームを開く際に計算されます。

この特性は、フレームフォームを小さくしすぎることで、フレーム内のコントロールが表示されなくなる問題を防止するためのものです。この特性は、エンドユーザがフレームエリアを使用できない状態に変形してしますことも防止します。

フレームサイズの最小値は、以下の方法によってのみ維持できます。

  • フレームの縁を動かすことで特定のフォームのサイズを変更する。

  • フレーム間の区切り線を動かすことでフレームのサイズを変更する。

フレームサイズが指定された最小値より小さい場合、エンドユーザは、最小値より小さい値であっても拡大させることができますが、縮小させることはできません。

サイズの最小値は、タスクの式によって定義されたフォームやフレームのサイズに影響されません。


リッチクライアントコントロール 特性一覧 開発イメージファイル

開発イメージファイル名

表示フォーム > リッチクライアントコントロール > コントロール特性一覧

開発時にフォームエディタ上に表示されるイメージファイル名を指定します。


リッチクライアントコントロール 特性一覧 垂直位置

垂直位置

表示フォーム > リッチクライアントコントロール > コントロール特性一覧

この特性は、ウィンドウの高さを変更する場合に、フレームのサイズも変更するかどうかを指定します。

この特性が｢No｣に設定された場合、フレームのサイズは変更されません。

フォームのサイズが変更される場合、少なくとも1つのフレームのサイズが変更されることになることに注意してください。従って、すべてのフレームのこの特性が｢No｣に設定されている場合、最後のフレームのサイズが変更されます。


リッチクライアントコントロール 特性一覧 水平位置

水平位置

表示フォーム > リッチクライアントコントロール > コントロール特性一覧

この特性は、ウィンドウの高さを変更する場合に、フレームのサイズも変更するかどうかを指定します。

この特性が｢No｣に設定された場合、フレームのサイズは変更されません。

フォームのサイズが変更される場合、少なくとも1つのフレームのサイズが変更されることになることに注意してください。従って、すべてのフレームのこの特性が｢No｣に設定されている場合、最後のフレームのサイズが変更されます。


リッチクライアントフレームフォーム特性

表示フォーム > リッチクライアントフォーム

リッチクライアントフレームフォームは、複数のフレームを定義することが可能で、これらは各々サブフォームと同じように動作しますす。リッチクライアントフレームフォームは、手動でフレームを分割することができません。

[フォーム特性]シートには、フォームの外観と動作を指定します。[編集/特性]を選択するか、[フォーム]エディタ上の[リッチクライアント形式]フォームからAlt+Enterを押下して[フォーム特性]シートにアクセスできます。

[リッチクライアントフレームフォーム]特性は、以下のセクションに分かれています。

モデル

詳細

SDI

入力

表示

位置とサイズ

注意：

リッチクライアントフレームフォームは、フレームのレイアウトを指定する必要があります。

参照

リッチクライアントフレームコントロール


リッチクライアントフレーム フォーム 特性 詳細

詳細

表示フォーム > リッチクライアントフレームフォーム > リッチクライアントフレームフォーム特性

[リッチクライアントフレームフォーム]特性の[詳細]セクションには以下の特性があります。

ウィンドウタイプ

ウィンドウのタイプを設定します。この設定は、ウィンドウの外観や動作に影響します。リッチクライアントフレームの場合、以下のオプションが選択できます。リッチクライアントフレームフォームの選択肢は以下の通りです。

  • S=SDI

  • C=子ウィンドウ

  • F=フローティング

  • M=モーダル（デフォルト）

  • T=ツール

ウィンドウタイプも参照してください。

寸法単位

フォームの寸法単位を指定します。寸法単位に基づいてフォームのサイズと位置が決定されます。また、フォームの解像度も決定されます。リッチクライアントフレームの場合、この特性は、無効表示となり、「ダイアログ」に固定されています。

垂直精度

各単位内の垂直解像度を指定します。値が高いほど細かい解像度が得られます。

水平精度

各単位内の水平解像度を指定します。値が高いほど細かい解像度が得られます。

フォーム名

[フォーム]エディタの[名前]カラムの値であり、フォームのタイトルバーに表示されます。実行時に評価されるフォームのタイトルを表す式を選択することもできます。

コンテキストメニュー

[メニュー一覧]からメニューを選択することで、フォーム用のコンテキストメニューを指定することができます。式で指定することで、実行時に動的にメニュー番号を指定することができます。


リッチクライアントフレーム フォーム 特性 SDI

SDI

表示フォーム > リッチクライアントフレームフォーム > リッチクライアントフレームフォーム特性

[SDI]セクションは、SDIウィンドウとして表示される場合のみ有効です。これ以外の場合、[ウィンドウタイプ]特性の「SDI」の設定に基づいて表示されます。

[SDI]セクションには以下の特性があります。

プルダウンメニュー

SDIウィンドウが表示された場合に、表示されるメニューを指定することができます。

メニュー表示

SDIウィンドウを表示する際、プルダウンメニューを表示するかどうかを指定します。以下のオプションが指定可能です。

  • Yes ……[プルダウンメニュー]特性に有効なメニュー番号が設定されている場合、SDIコンテナにプルダウンメニューが表示されます。

  • No …… プルダウンメニューは表示されません。

  • 式 …… 論理値が返る式を指定します。式はタスクが最初に起動された時点でのみ評価され、再計算されません。

ツールバー表示

SDIウィンドウを表示する際、ツールバーを表示するかどうかを指定します。以下のオプションが指定可能です。

  • Yes ……[プルダウンメニュー]特性に有効なメニュー番号が設定されている場合、SDIコンテナにツールバーが表示されます。

  • No …… ツールバーは表示されません。

  • 式 …… 論理値が返る式を指定します。式はタスクが最初に起動された時点でのみ評価され、再計算されません。

ステータスバー表示

SDIウィンドウを表示する際、ツールバーを表示するかどうかを指定します。以下のオプションが指定可能です。

  • Yes ……SDIコンテナにステータスバーが表示されます。

  • No …… ステータスバーは表示されません。この場合、メッセージは表示されず、ログファイルやフローにのみ出力されます。

  • 式 …… 論理値が返る式を指定します。式はタスクが最初に起動された時点でのみ評価され、再計算されません。

開始モード

SDIウィンドウを最初にどのようにオープンするかを指定します。以下のオプションが指定可能です。

  • D=デフォルト ……この特性のデフォルト値です。この設定にすると、[位置とサイズ]セクションで定義された値に従ってウィンドウが開きます。

  • X=最大 …… SDIウィンドウは最大表示されます。[位置とサイズ]セクションで定義された値は、無視されます。

  • N=最小 …… SDIウィンドウは最小表示されます。[位置とサイズ]セクションで定義された値は、無視されます。


リッチクライアントフレーム フォーム 特性 入力

入力

表示フォーム > リッチクライアントフレームフォーム > リッチクライアントフレームフォーム特性

[リッチクライアントフレームフォーム]特性の[入力]セクションには以下の特性があります。

タイトルバー | リッチクライアントフレームフォームにタイトルバーを表示するかどうかを指定します。タイトルバーがないと、エンドユーザはフォームを移動できません。また、[最小化]ボタンや[最大化]ボタンを表示できません。タイトルバーは、式を定義して指定することもできます。
システムメニュー | リッチクライアントフレームフォームのタイトルバーの左側に[システムメニュー]ボタンを配置するかどうかを指定します。このボタンをクリックすると、Windowsの[システムメニュー]が表示されます。
最小化ボタン | リッチクライアントフレームフォームの右上隅に[最小化]ボタンを配置するかどうかを指定します。 デフォルトは、「Yes」です。
最大化ボタン | リッチクライアントフレームフォームの右上隅に[最大化]ボタンを配置するかどうかを指定します。 デフォルトは、「Yes」です。


リッチクライアントフレーム フォーム 特性 表示

表示

表示フォーム > リッチクライアントフレームフォーム > リッチクライアントフレームフォーム特性

[リッチクライアントフレームフォーム]特性の[表示]セクションには以下の特性があります。

フォント

フォームのフォントを指定します。[フォント]テーブルにズームしてフォントを選択できます。式で動的に指定することもできます。コントロールのフォントは、[コントロール特性]シートで定義します。コントロールのフォントが指定されていない場合、フォームのフォントが使用されます。

色

フォームの色を指定します。[基本色一覧]にズームして色を選択できます。[式]エディタにズームし、色番号を表す式を入力することによって動的に指定することもできます。

ヘルプ画面

フォームと関連付けるヘルプ画面を指定します。[ヘルプ一覧]にズームしてヘルプを選択できます。

境界スタイル

フォームの境界線のスタイルを指定します。[ウィンドウタイプ]特性が「SDI」の場合は、指定できません。

  • H=太線

  • T=細線

  • N=なし


リッチクライアントフレーム フォーム 特性 位置とサイズ

位置とサイズ

表示フォーム > リッチクライアントフレームフォーム > リッチクライアントフレームフォーム特性

[リッチクライアントフレームフォーム]特性の[位置とサイズ]セクションには以下の特性があります。

開始時の位置

この特性は、リッチクライアントフレームフォームをどのように開くかを定義するものです。設定できるオプションは以下の通りです。

  • C=カスタム……ウィンドウは、フォームの[上辺位置]と[左辺位置]の特性で定義された位置に表示されます。フォームサイズは[高さ]と[幅]特性に基づいて表示されます。

  • T=デフォルト……ウィンドウは、OSで定義されたデフォルトの位置およびサイズで表示されます。[上辺位置]，[左辺位置]，[幅]，[高さ]の各特性は無視されます。

  • P=親ウィンドウの中央……ウィンドウは、親タスクのウィンドウの中央に表示されます。フォームサイズは[幅]と[高さ]の特性によって定義されます。

  • D=デスクトップの中央……ウィンドウはデスクトップ領域の中央に表示されます。フォームサイズは[幅]と[高さ]の特性によって定義されます。

もし親タスクがオープンするフォームを持たない場合、その上位のタスクのフォームを親のフォームとします。

X

フォームのフレームの左端の位置を指定します。[式]エディタにズームし、フォームにあるフレームの左端の座標を表す式を入力することもできます。

Y

フォームのフレームの上端の位置を指定します。[式]エディタにズームし、フォームにあるフレームの上端の座標を表す式を入力することもできます。

幅

フォームを囲むフレームの水平方向の寸法を指定します。フレームが小さすぎてコントロールを表示できない場合、ウィンドウ内の内容をスクロールするためのスクロールバーが表示されます。フレームの幅は、フレームの右端をドラッグして変更できます。

高さ

フォームを囲むフレームの垂直方向の寸法を指定します。フレームが小さすぎてコントロールを表示できない場合、ウィンドウ内の内容をスクロールするためのスクロールバーが表示されます。フレームの高さは、フレームの下端をマウスでドラッグして変更できます。

最小幅

ウィンドウの幅の最小値を設定します。

最小高さ

ウィンドウの高さの最小値を設定します。


リッチクライアントフレームコントロール

表示フォーム > リッチクライアントフォーム

パレットからレイアウトを選択することでフレームのレイアウトを変更することができます。ただし、フレームを削除したり、ドラッグ＆ドロップすることはできません。

フレームは、すべての方向に対してサイズを変更することができます。フレームのサイズを変更すると隣り合ったフレームサイズも変更されます。この操作によってフォーム自体のサイズは変更されません。

フレームの幅や高さを｢0｣に設定することはできません。

マウス操作によって、フレームの幅を｢2｣まで、高さを｢0.5｣まで小さくすることができます。

周辺のフレームの幅（2まで）や高さ（0.5まで）を縮小することで、可能な限りフレームのサイズを大きくすることができます。

フレーム上で右クリックを行うと、コンテキストメニューに以下のオプションが表示されます。

  • 元に戻す

  • フォームに合わせる …… フレーム内で定義されたフォームに従ってフレームのサイズが調整されます。プログラムまたはタスクがフレームに定義された場合、最初のフォームサイズによって表示されます。このオプションは、フレームの[プログ/タスク/フォーム #]特性が設定されている場合のみ有効です。フレームのサイズを変更すると、周辺のフレームは以下のように変更されます。

  • フレームの幅 …… フォームのサイズと上下に隣接ずるフレームのサイズが変更されます。

  • フレームの高さ …… フォームサイズと左右に隣接するフレームのサイズが変更されます。

  • 特性

  • フォーム特性

参照

リッチクライアントフレームコントロール特性


リッチクライアントフレームコントロール特性

表示フォーム >

フレームセット内の各フレームには、以下のコントロール特性があります。

モデル
詳細 | パーキング
接続先 プログラム/タスク/フォーム # パラメータ 自動再表示 キャッシュ フレーム名 | TAB順序 パーキング可 TABで移動
表示 | 位置とサイズ
自動調整 | 水平位置 垂直位置 幅 高さ 最小幅 最小高さ


リッチクライアントフレーム コントロール 特性 詳細

詳細

表示フォーム > リッチクライアントフォーム > リッチクライアントフレームコントロール特性

接続先 | ここには、フレームから呼び出すオブジェクトを指定します。 [フォーム]エディタの場合は、ここには、｢プログラム｣か｢サブタスク｣、｢フォーム｣が指定できます。モデルの場合は、｢プログラム｣のみ指定できます。 この特性は、すべてのフレームで必須です。 ｢フォーム｣は、1つのフレームのみ設定できます。 ここに指定できるのは、リッチクライアントタスクまたはフォームのみです。
プログ/タスク/フォーム # | ここには、フレームから呼び出すプログラムやタスク、またはフォームの番号を指定します。 [接続先]特性が｢プログラム｣または｢サブタスク｣に設定される場合、[プログラム一覧]にズームすることができます。プログラムの場合は、[式]エディタにアクセスしてプログラム番号を指定することもできます。 [接続先]特性が｢フォーム｣に設定される場合、[フォーム一覧]にズームすることで現在のタスクに定義されているフォームを選択することができます。
パラメータ | ここには、起動するプログラム／タスクに渡すパラメータの数が表示されます。ここからズームすると[パラメータ]テーブルが表示され、このテーブルにパラメータを定義します。 [接続先]特性が｢フォーム｣の場合、この特性は無効になります。
自動再表示 | この特性は、（値渡しか参照渡しで）渡されたパラメータのどれか1つでも変更された場合に、フォーム上のビューが自動的に再表示されるかどうかを指定します。 この特性に「Yes」を設定すると、親タスクから渡されるパラメータが変更された時点でフレームの表示を自動的に更新するようになります。範囲またはリンクの値が変更した場合も、サブフォームタスクは再表示されます。 この特性で使用される式は、ニュートラル(クライアントとサーバ側の両方で実行可能）でなければなりません。 [接続先]特性が｢フォーム｣の場合、この特性は無効になります。
キャッシュ | この特性は、クライアントがフレーム表示のためにデータビューをキャッシュするかどうかを指定します。
 | 呼び出されたプログラム/タスクの範囲/位置付指定にサーバ側で実行される式が定義されていない場合のみ、キャッシュは有効です。
フレーム名 | フレームの名前を指定します。


リッチクライアントフレーム コントロール 特性 表示

表示

表示フォーム > リッチクライアントフォーム > リッチクライアントフレームコントロール特性

自動調整

この特性は、フレームの内容をどのように表示するかを指定します。有効な値は以下のとおりです。

  • N=なし …… タスクのフォームはフレームのサイズに合うように調整されません。フレームのサイズがタスクのフォームより小さい場合、フレーム内にスクロールバーが表示されます。サイズが大きい場合は、空いた領域が親タスクの背景色で塗りつぶされます。

  • A=フレームに合わせる（デフォルト） ……タスクのフォームは、フレームのサイズに収まるように調整されます。


リッチクライアントフレーム コントロール 特性 位置とサイズ

位置とサイズ

表示フォーム > リッチクライアントフォーム > リッチクライアントフレームコントロール特性

水平位置 | この特性は、ウィンドウの高さを変更する場合に、フレームのサイズも変更するかどうかを指定します。この特性が｢No｣に設定された場合、フレームのサイズは変更されません。 フォームのサイズが変更される場合、少なくとも1つのフレームのサイズが変更されることになることに注意してください。従って、すべてのフレームのこの特性が｢No｣に設定されている場合、最後のフレームのサイズが変更されます。
垂直位置 | この特性は、ウィンドウの高さを変更する場合に、フレームのサイズも変更するかどうかを指定します。この特性が｢No｣に設定された場合、フレームのサイズは変更されません。 フォームのサイズが変更される場合、少なくとも1つのフレームのサイズが変更されることになることに注意してください。従って、すべてのフレームのこの特性が｢No｣に設定されている場合、最後のフレームのサイズが変更されます。
幅 | 起動時のコントロールの幅を寸法単位で指定します。
高さ | 起動時のコントロールの高さを寸法単位で指定します。
最小幅 | フレームの幅の最小値を設定することができます。デフォルトは0です。式で指定した場合、フォームを開く際に計算されます。 この特性は、フレームフォームを小さくしすぎることで、フレーム内のコントロールが表示されなくなる問題を防止するためのものです。この特性は、エンドユーザがフレームエリアを使用できない状態に変形してしますことも防止します。
最小高さ | フレームの高さの最小値を設定することができます。デフォルトは0です。式で指定した場合、フォームを開く際に計算されます。 この特性は、フレームフォームを小さくしすぎることで、フレーム内のコントロールが表示されなくなる問題を防止するためのものです。この特性は、エンドユーザがフレームエリアを使用できない状態に変形してしますことも防止します。


タブの順序

TABの順序

表示フォーム >

この特性は、コントロール間でTabキーを押下した場合の移動順序を定義します。各コントロールには、Tab順序を決定する[TAB順序番号]特性があります。

[TAB順序番号]特性が「1」の場合、プログラム起動時に最初にパークするコントロールになります。[TAB順序番号]特性が「2」の場合、カーソルが最初のコントロール上にパークしている状態でエンドユーザがTabキーを押下すると、このコントロールに移動することを意味します。

オンラインタスクの[フォーム]エディタにて、[コマンド]パレットから[自動タブ順序]コマンドを選択することができます。この設定によって、フォーム上のコントロールのTab IDを自動的に設定することができます。

[自動TAB順序]が有効な場合、[コマンド]パレットから[自動TAB順序]のアイコンが押されたように表示されます。モードを無効にするには、このアイコンをクリックします。

自動TAB順序

[自動TAB順序]が動作していると、Magicはオンラインタスクのフォーム上のコントロールにTab IDを設定します。このTab IDは、ユーザがコントロールにパーク可能かどうかを問わず１からコントロール数分の連番を割り振ります。ブラウザタスクの場合は、常に自動設定になっています。

フォーム上に新しくコントロールを配置したり、既存のコントロールを移動した場合、Magicはコントロールの上辺位置、左辺位置、およびZオーダに基づいてタブの順序を設定します。

例えば：

最初のコントロール（幅：3、高さ：1.5）を（左辺位置：2、上辺位置：2）に配置した場合、タブIDは「1」と設定されます。２番目のコントロールを（2、4）に配置した場合、タブIDは「2」と設定されます。３番目のコントロールを（6、2）に配置した場合、Tab IDは「2」と設定され、２番目のコントロールのタブIDは「3」に変更されます。コントロールを削除すると、それ以降のコントロールのTab IDの値は全て1つ減算されます。

TAB順序が手動モードになっていない場合、コントロールの[Tab順序]特性には、4桁の数値が自動的に設定されます。

TAB順序の手動設定

TAB順序が手動モードになっていない場合、Magicがフォーム上の全てのコントロールのTAB順序を管理します。この場合、コントロールの追加、移動、削除によってTAB順序は自動的に変更されてしまいます。

TAB順序を手動モードに設定した場合、追加されるコントロールに対して、現在定義されている最も大きなTab IDの次の値を割り当てます。コントロールが移動した場合は、コントロールのTab IDは変更されません。コントロールが削除された場合、削除されたコントロール以降のTab IDを1つ減算します

コントロールの[Tab順序]特性を変更すると、TAB順序の再計算が発生します。

例えば、TAB順序が1から10までの定義されているものとします。あるコントロールの[Tab順序]特性を「8」から「4」に変更した場合、Magicは、TAB順序を以下のように変更します。

4 → 5

5 → 6

6 → 7

7 → 8

[Tab順序]特性に、フォーム上に定義されているTAB順序の最大値より大きい数値を入力した場合、最大値に設定し直し、その上でTAB番号を再計算します。

例えば、TAB順序が1から6までの定義されているものとします。あるコントロールの[Tab順序]特性を「2」から「8」に変更した場合、Magicは、このコントロールのTAB順序を「6」に設定した上で、その他のコントロールを以下のように変更します。

3 → 2

4 → 3

5 → 4

6 → 5

[Tab順序]特性に「0」を設定した場合、Magicは自動的に「1」に設定し直します。

コントロールの複数選択

[自動TAB順序]が無効な場合、複数のコントロールの[Tab順序]特性を変更すると、入力した値を基に順番に各コントロールにTab IDを割り振ります。

例えば、４つのコントロールがあり、それぞれのTab IDは、A=1、B=2、C=3、D=4とします。C、B、A、Dのコントロールを選択し、[Tab順序]特性に「1」を入力した場合、Magicは、タブIDを C=1、B=2、A=3、D=4に設定し直します。複数のコントロールを選択した場合、[Tab順序]特性は、「?」表示になります。

参照

パーキング可

TABで移動

TAB移動方向

TAB順序


MDIとSDI

表示フォーム >

Magicでは、SDI（Single Document Interface）だけでなく、MDI（Multiple Document Interface）を定義することができます。

MDIとSDIの機能によって、アプリケーションが並行して複数のタスクを実行させることが可能になります。これにより、新規のインスタンスをオープンすることなく複数のタスクを実行することができます。

Magicエンジンは、同じアプリケーション内や同じMagicエンジンのインスタンス内でプログラムを実行する、並行性を維持することができます。

並行実行は、コンテキストを使用して行われます。プログラムが同時に実行され、新しいコンテキストが開いた場合、新しいコンテキストは個別にメインプログラムを持つことになります。このメインプログラムとコンテキストは、同じプロセスで実行している他のコンテキストから独立しています。

MDIとSDI機能を使用して実行させる上で、Magicには以下のオブジェクトが提供されています。

[タスク特性]の[拡張]タブ

[フォーム特性]の[SDI]セクション

[フォーム特性]の[ウィンドウタイプ]特性

[フォーム特性]の[開始時の位置]特性

[動作環境]ダイアログの[実行モード]

マルチコンテキスト関数

マルチコンテキスト関連のイベント

戻り値としてのコンテキストID

[コール]特性

[メニュー]特性

参照

MDIとSDIとは？

実行時の動作

コンテキスト間のイベント

データ管理


MDIとSDI MDIとSDIとは

MDIとSDIとは

表示フォーム > MDIとSDI

MicrosoftR WindowsR OS内で、タイトルバーを持つウィンドウを「ドキュメント」と呼ぶことがあります。ウィンドウを処理する方法にはいくつかありますが、MDIとSDIもその中に含まれます。

  • MDI ……Multiple Document Interfaceの略です。MDIは、同時に複数のドキュメントをオープンすることができます。MDIは、1つの親ウィンドウと複数の子ウィンドウを持っています。子ウィンドウは通常、親のウィンドウインタフェース（メニューバーやツールバー、ステータスバーを含む）を共有しています。このため、MDIは、親ウィンドウに制約されます。

  • SDI …… Single Document Interfaceの略です。SDIは、独自のウィンドウでドキュメントを開きます。各ウィンドウは、独自のメニューバーやツールバー、ステータスバーを持っています。このため、SDIは、親ウィンドウに制約されません。これによって、ユーザが複数のウィンドウの内容を簡単に見ることができるようになります。

参照

MDIとSDI


MDIとSDI SDIサポート

SDI サポート

表示フォーム > MDIとSDI

SDIプログラムが呼ばれた場合、MagicはMDIコンテナの外に新しいコンテナをオープンします。この新しいコンテナは、それ自身のメニュー、ツールバー、およびステータスバーを持っています。

SDIコンテナのウィンドウタイトルはフォームのタイトルになります。タイトルに空白が設定された場合、空白で表示されます。

SDIウィンドウのアイコンは、以下のように扱われます。

  • [タスク特性]にアイコンファイルが指定されている場合、そのアイコンが表示されます。

  • [タスク特性]にアイコンファイルが指定されていない場合、起動したプログラムに定義されているアイコンが表示されます。

SDIウィンドウが別のオンラインプログラムを子ウィンドウとして呼び出し、起動されたプログラムの[ウィンドウタイプ]が「子ウィンドウ」に設定されている場合、プログラムはフローティングウィンドウで表示されます。

注意：

  • Alt+Tabキーを押下することでSDIウィンドウにアクセスすることができます。

  • SDIフォームを定義したフォームモデルを作成することができます。

SDIフォームにおいて、以下の[フォーム特性]を変更することでメニューやツールバー、ステータスバーを表示するかどうかを定義することができます。

[プルダウンメニュー]特性

[ツールバー表示]特性

[ステータスバー表示]特性

SDIの実行時の課題

SDIとして実行することになっているアプリケーションを準備する場合、メインプログラムの設定内容についていくつかの注意点があります。

  • メインプログラムの[タスク前]からSDIプログラムを呼び出します。このように定義しないと、メインプログラムの終了時にコンテキストがクローズされます。

  • [コールプログラム]処理コマンドの[条件]特性には、「CtxGetName() ='main'」と設定しなければなりません。このように定義しないと、コンテキストがロードされる度に、何度もプログラムが呼び出されるようになります。

  • メインプログラムの[ウィンドウを開く]特性（[タスク特性]の[インタフェース]タブ）が「No」に設定されていることを確認してください。この設定にしないと、実行時にエラーが発生します。

参照

SDIウィンドウのシステムタスクバー

SDI アプリケーション


MDIとSDI SDIサポート システムタスクバー

SDIウィンドウのシステムタスクバー

表示フォーム > MDIとSDI > SDI サポート

プログラムがSDIウィンドウとして実行した場合、Magicはシステムタスクバーにエントリを追加します。

タスクバーの中のタイトルとアイコンは、SDIウィンドウのタイトルバーと同じになります。

そのフォームがフォーカス上にない時に、SDIウィンドウ内にモーダルウィンドウが表示された場合、フォーカスがそのフォームに戻るまで、そのフォームのタスクバーは点滅表示します。


MDIとSDI SDIサポート SDIアプリケーション

SDI アプリケーション

表示フォーム > MDIとSDI > SDI サポート

Magicは、実行されるアプリケーションをSDIアプリケーションとだけ定義することができます。このような機能を定義するために、以下の環境設定を行う必要があります。

  • 実行モード …… 「S=SDI」と設定します。

  • デフォルトプロジェクト …… デフォルトプロジェクトを指定します。

参照

SDIアプリケーションの起動


MDIとSDI SDIサポート SDIアプリケーション 起動

SDIアプリケーションの起動

表示フォーム > MDIとSDI > SDI サポート > SDI アプリケーション

Magic実行エンジンがSDIモードで実行した場合([実行モード]を「S=SDI」に設定して）、エンジンは[開始アプリケーション]で定義されたアプリケーションが実行されます。

アプリケーションがロードされ、開始プログラムが実行されると、それ以降の動作は通常のSDIプログラムと同じになります。

MagicのMDIは表示されません。

既存のプロセスに追加する

実行エンジンがSDIモードで起動され、同じSDIアプリケーションがすでに実行されている場合、新しいコンテキストが現在実行中のプロセスに追加されます。この結果として、コンテキスト間でイベントの受け渡しを行うことが可能になります。詳細は、「コンテキスト間のイベント」を参照してください。

アプリケーションがSDIアプリケーションとして動作している状態で、異なるアプリケーションがロードされた場合、別のMagicプロセスが起動されます。

アプリケーションの終了

アプリケーションが終了した場合、エンジンも終了します。

アプリケーション内のSDIプログラムがクローズされた場合、アプリケーションはクローズされますが、エンジンは終了しません。

参照

エラー処理


MDIとSDI SDIサポート エラー処理

エラー処理

表示フォーム > MDIとSDI > SDI サポート

以下の条件の場合、エラーが発生すると、Magicはエラーメッセージを表示し、終了します。

  • アプリケーションが定義されていない場合

  • SDIプログラムとして定義されていないプログラムが実行された場合

  • プログラムのメインフォームにSDIフォームと定義されていない場合

[SDI開始プログラム]に定義された公開名がユニークでない場合、[プログラム]リポジトリ内の最初に該当するプログラムが起動されます。


MDIとSDI MDIサポート

MDI サポート

表示フォーム > MDIとSDI

Magicは、MDIアプリケーションを定義することができます。MDIは、同時に複数のプログラムを実行させることができます。MDIは、1つの親ウィンドウと複数の子ウィンドウを持っています。子ウィンドウは通常、親のウィンドウインタフェース（メニューバーやツールバー、ステータスバーを含む）を共有しています。このため、MDIは、親ウィンドウに制約されます。

参照

実行時の動作

SDIサポート


MDIとSDI MDIサポート 実行時の動作

実行時の動作

表示フォーム > MDIとSDI > MDI サポート

MDIプロジェクトがロードされた場合、メニューやツールバーが定義されたMagicのMDIコンテナがロードされます。

プログラムが並行モードで実行された場合、[ウィンドウタイプ]特性が「子ウィンドウ」に設定されていると、同じMDIコンテナの新しいコンテキスト内でプログラムがオープンされます。

プログラムが実行され、[ウィンドウタイプ]特性が「フォローティング」や「SDI」に設定されていない場合、プログラムは同じMDIコンテナを共有します。

新しいウィンドウが異なるコンテキスト内でオープンされた場合、ウィンドウはフォーカス内のウィンドウの上にオープンされます。

注意：

モーダルウィンドウが同じMDIコンテナ内で並行タスクを呼び出した場合、モーダルウィンドウがクローズされるまで、フォーカスはそのタスクに移りません。

参照

ウィンドウフォーカス


MDIとSDI MDIサポート 実行時の動作 ウィンドウフォーカス

ウィンドウフォーカス

表示フォーム > MDIとSDI > MDI サポート > 実行時の動作

異なるコンテキスト内のウィンドウにフォーカスが移った場合、Magicは現在のコンテキストに制御を残すことはしません。フォーカスがこのウィンドウに戻った時に、制御も同じコントロールに戻ります。

異なるコンテキストがウィンドウをオープンした場合、フォーカスはそのウィンドウに移ります。


MDIとSDI MDIサポート ウィンドウメニュー

ウィンドウの一覧

表示フォーム > MDIとSDI > MDI サポート

Magicは、アプリケーション用のメニューを定義することができます。この機能によって、メニューエントリやキーボードショートカットを使用してアクセスすることができます。

ウィンドウの一覧を定義するには、以下の手順を実行してください。

  1. [メニュー]リポジトリを開きます。

  2. メニューエントリからズームして、[メニュー定義]テーブルをオープンします。

  3. １行作成します。

  4. [タイプ]カラムから、「W=ウィンドウの一覧」を選びます。

  5. [論理メニュー名]カラムにメニュー名を入力します。

[フォーム特性]の[ウィンドウの一覧に表示]特性を「Yes」に設定すると、プログラムはWindowリスト内に表示されます。

Magicは、また以下のオブジェクトを提供します。これによって、[ウィンドウの一覧]機能が利用しやすくなります。

  • [全て閉じる]内部イベント

  • [コンテキストがフォーカス取得]内部イベント

  • [コンテキストがフォーカス喪失]内部イベント

  • [次のウィンドウ]内部イベント

  • [前のウィンドウ]内部イベント

  • SetContextFocus 関数

  • SetWindowFocus 関数

オープンWindowリスト

最高9つまでのタスクをWindowメニューに表示させることができます。これ以上のタスクがある場合、Windowメニューから[その他のウィンドウ]オプションを選択することができます。[オープンWindowリスト]が表示され[ウィンドウメニューに表示]特性が「Yes」に設定されたウィンドウが表示されます。リスト内のウィンドウは、アルファベット順に表示されます。このリストでは、[ソート]特性の影響は受けません。

オープンWindowリストでは、インクリメンタルサーチが可能です。例えば、「us」と入力すると、「us」で始まる項目に位置付けられます。

オープンMagicウィンドウ間の実行時の操作

（ウィンドウメニューから[次へ]や[戻る]を選択することによる）ウィンドウ間の動きの順番は、[ソート]特性によって定義された内容に依存します。

注意：

  • エンドユーザは、Ctrl+Tabキーを押下して、オープンウィンドウ間や、タブコントロール内のタブ間を移動することができます。

  • Ctrl+Tabキー以外を押下して、タブコントロール内のタブ間を移動することができるようにするには、[次のウィンドウ]や[前のウィンドウ]、[次のタブ]、[前のタブ]の内部イベントのキーボード割付を変更する必要があります。


MDIとSDI 関数

マルチコンテキスト関数

表示フォーム > MDIとSDI

Magicには、複数のコンテキスト内で使用できる以下のような関数が提供されています。

  • CtxGetName …… 現在のコンテキストの名前を取得します。

  • CtxSetName …… 現在のオンテキストに名前を設定します。この名前は、メッセージをコンテキストに送る場合に使用されます。

  • WinMaximize …… 関数が起動されたタスクのフォームを最大化します。

  • WinMinimize …… 関数が起動されたタスクのフォームを最小化します。

  • WinRestore …… タスクのフォームサイズを元に戻します。

WinMaximize、WinMinimize、およびWinRestore関数がSDIコンテキストで使用された場合、SDIコンテキスト内でのみ実行されます。これらの関数は、MDIフレーム全体で動作します。


MDIとSDI イベント

マルチコンテキスト関連のイベント

表示フォーム > MDIとSDI

Magicには、複数のコンテキスト内で使用できる以下のような内部イベントが提供されています。

  • アプリケーションを閉じる …… 現在のアプリケーション内の全コンテキストをクローズします。

  • コンテキストを閉じる …… 現在のコンテキストか、オープンしているコンテキストを閉じます。


MDIとSDI 実行時の動作

実行時の動作

表示フォーム > MDIとSDI

プログラムが並行して実行された場合、それぞれ別個のコンテキストの中で実行されます。

[式]イベントは、それらが「True」と評価される各コンテキスト内で処理されます。

[タイマ]イベントは、各コンテキスト内で個別に処理されます。

メニュー

メニューとツールバーは、フォーカス内のコンテキストに従って変更されます。

メニューオプションが選択された場合、指定されたプログラムやイベント、OSコマンドがフォーカス内のコンテキストで実行されます。

バックグラウンドエンジン

プログラムが並行起動されると、全てのGUI要素が無視され、プログラムが別個のコンテキスト内で実行されます。

参照

初期コンテキス

新しいコンテキストの開始

実行時の動作(MDI)

実行時の動作(SDI)

SDIアプリケーションの起動

コンテキスト間のイベント

データ管理


MDIとSDI 実行時の動作 初期コンテキスト

初期コンテキスト

表示フォーム > MDIとSDI > 実行時の動作

フォアグラウンドプロジェクトのメインプログラムが最初に実行された時点で、コンテキストは初期設定され、「main」という名前が設定されます。

プロジェクトがクローズされるまで、このコンテキストはオープンされ続けます。

このコンテキストがクローズされると、このプロジェクト用の実行中の全てのSDIコンテキストもクローズされます。このコンテキストがアボートされた場合、プロジェクトはクローズされます。

外部イベントとリクエストは、このコンテキスト内で処理されます。

このコンテキストは、MDIプロジェクトに対してのみ有効です。

タスクの[メインプログラムを初期化]特性は、新しいコンテキストのメインプログラムをどのように初期化するかを定義します。


MDIとSDI 実行時の動作 新しいコンテキスト

新しいコンテキストの開始

表示フォーム > MDIとSDI > 実行時の動作

現在のプログラムによって並行モードでプログラムが呼び出された場合、Magicは新しいコンテキストを作成し、コンテキストIDを割り当てます。このIDは、起動したプログラムに文字列で返ります。

この新しいコンテキストは、呼び出したプログラムと同時にロードされます。

新しいコンテキストは、それ自身のメインプログラムとメインツリーを持っています。これらは、起動したプログラムの環境とは独立しています。

新しいタスクがMDIとSDIのどちらで実行されるかは、[フォーム特性]の[ウィンドウタイプ]特性で決まります。

[タスク特性]の[拡張]タブを使用することで、新しいコンテキストをどのように開始するか定義できます。

参照

コンテキストに渡すパラメータ

CtxSetName


MDIとSDI 実行時の動作 パラメータ

コンテキストに渡すパラメータ

表示フォーム > MDIとSDI > 実行時の動作 > 新しいコンテキストの開始

（[コールプログラム]処理コマンドやメニューから）プログラムが並行モードで呼び出された場合、コンテキストに渡すパラメータは、「値渡し」で渡されます。「参照渡し」は使用できません。


MDIとSDI コンテキスト間のイベント

コンテキスト間のイベント

表示フォーム > MDIとSDI

[イベント実行]処理コマンドの[出力先コンテキスト名]特性を使用することで、他のコンテキストにイベントを送ることができます。

この機能は、同期型および非同期型のイベントのどちらに対しても有効です。

同期型のイベントが実行されると、コンテキストはハンドラの処理が終了するまで待ちます。


MDIとSDI データ管理

データ管理

表示フォーム > MDIとSDI

コンテキスト間で、トランザクションを共有することはできません。起動されるタスクがトランザクションをオープンするように定義されている場合、新しいトランザクションがオープンされます。

トランザクションモードによって以下のように動作します。

  • 遅延 …… 遅延トランザクションが新規にオープンされます。

  • ネスト遅延 …… 遅延トランザクションが新規にオープンされます。

  • 親と同じ …… Magicのデフォルト指定に基づいてトランザクションが新規にオープンされます。

キャッシュ機能は、コンテキスト単位です。

注意：

一方のコンテキストが他方をロックする可能性があります。もしこのようなことが発生した場合、「レコードは他のユーザによってロックされています。」というメッセージが表示されます。このメッセージの「他のユーザ」とは自分のことを示しています。

メモリテーブル

メモリテーブルの内容は、明示的に渡される必要があります。メモリテーブルは自動的にコピーされません。メモリテーブルをコピーするには、MTblSet関数を使用してください。

Mtblset関数が[タスク前]で定義され、テーブルが現在空の状態で、メモリテーブルがこのプログラムのデータソースとして定義されている場合であれば、テーブルは直ちに新しいデータによってオープンされ、プログラムが使用できる状態になります。


出力フォーム

出力フォームには、インターネットフォームと帳票フォームの２種類があります。どの出力フォームもバッチタスクがベースになっており、そのクラス値が１以上に定義されている必要があります。

インターネットフォームでは、以下のインタフェースタイプが利用できます。

フレームセット形式

マージ形式

帳票フォームには、以下のインタフェースタイプが利用できます。

GUI出力形式

テキスト形式

クラスが１以上の場合、[フォーム]エディタは同じクラスのフォームを全て表示します。従って、帳票フォームの場合、関連するヘッダ、明細、およびフッターの全てのフォームがラベル付きの区切り線とともに表示されます。

参照

GUI テーブルコントロール機能

複数行編集の印刷

プリンタ属性サポート

プリンタの設定

印刷スタイル


帳票フォーム

出力フォーム >

帳票フォームは、クラス>0で、[テキスト形式]、または[GUI出力形式]のインタフェースタイプのフォームです。

[GUI出力形式]フォームについては、以下を参照してください。

GUI出力形式フォーム特性

[テキスト形式]フォームについては、以下を参照してください。

テキスト形式フォーム特性

テキスト形式コントロール特性

クラスが１以上の場合、[フォーム]エディタは同じクラスのフォームを全て表示します。従って、帳票フォームの場合、関連するヘッダ、明細、およびフッターの全てのフォームがラベル付きの区切り線とともに表示されます。

参照

GUI テーブルコントロール機能

複数行編集の印刷

プリンタ属性サポート

プリンタの設定

印刷スタイル


帳票フォーム GUI出力形式フォーム特性

GUI出力形式フォーム特性

出力フォーム > 帳票フォーム

[GUI出力形式]フォームは、クラス>0にする必要があります。

以下の操作で、[GUI出力形式フォーム特性]シートにアクセスすることができます。

  • [インタフェースタイプ]が「G=GUI出力形式」に設定された[フォーム]エディタ内のエントリにカーソルを置き、[編集／特性]を選択します。

  • [インタフェースタイプ]が「G=GUI出力形式」に設定された[フォーム]エディタ内のエントリにカーソルを置き、Alt+Enterを押下します。

  • [インタフェースタイプ]が「G=GUI出力形式」に設定された[フォーム]エディタ内のエントリにカーソルを置き、右クリックでコンテキストメニューを開きます。[特性]を選択します。

  • [インタフェースタイプ]が「G=GUI出力形式」に設定されたフォームを開き、フォームのグリッドをダブルクリックします。

[GUI出力フォーム特性]シートは、以下の５つのセクションに分かれています。

モデル

詳細

入力

表示

位置とサイズ


帳票フォーム GUI出力形式フォーム特性 詳細

詳細

出力フォーム > 帳票フォーム > GUI出力フォーム特性

[GUI出力フォーム特性]の[詳細]セクションには以下の特性があります。

寸法単位

寸法単位に基づいてフォームのサイズと位置が決まります。また、フォームの解像度も決まります。

フォームの寸法単位は、ダイアログ（文字）、センチメートル、インチから選択します。

垂直精度

寸法単位に基づいた垂直解像度を指定します。値が高いほど細かい解像度が得られます。

水平精度

寸法単位に基づいた水平解像度を指定します。値が高いほど細かい解像度が得られます。

グリッド表示

[フォーム]エディタにグリッドを表示するかどうかを指定します。

  • Yes……フォームのレイアウトにグリッドが表示されます。

  • No……フォームのレイアウトにグリッドが表示されません。

グリッド間隔（X,Y）

フォームのグリッド間の距離を指定します。

フォーム名

[フォーム]エディタの[名前]カラムの値で、プログラム作成時にフォームを定義する上でわかりやすい名前を指定してください。


帳票フォーム GUI出力形式フォーム特性 入力

入力

出力フォーム > 帳票フォーム > GUI出力フォーム特性

[GUI出力フォーム特性]の[入力]セクションには以下の特性があります。

区分

帳票フォーム用です。以下の値が設定できます。

  • D=明細

  • H=ヘッダ

  • F=フッタ

  • P=ページヘッダ

  • G=ページフッタ

入出力レコードレイアウトとして用いるフォームでは、この特性値には意味がなく無視されます。

[フォーム]エディタにおける、ヘッダ、明細、フッタの各フォームエントリは、配置の仕方が重要になります。ヘッダフォームの次のエントリには、（対応するフッタが存在する場合には、）必ずそのフッタフォームがなくてはなりません。全てのヘッダとフッタの対は、明細行よりも先に配置してください。

ヘッダとフッタの対は、そのネスト構造の外側から順に配置されなければなりません。明細フォームは、最も内側にあるヘッダとフッタの対のフォームエントリの後ろに配置します。明細フォームは、レポートに表示される順に配置しなければなりません。フォームを編集する場合は、これらのフォームはネストしたヘッダ、明細、フッタの順で入れ子形式に表示され、実際の帳票に出力される順序に並びます。

フォーム拡大

フォームに定義されたコントロールに[複数行]特性が「Yes」に設定されたものがある場合、この特性を使用することでフォームのサイズを動的に調整することができます。以下のオプションがあります。

  • N=なし …… フォームは拡大されません。

  • O=1ページ …… [複数行]特性が「Yes」に設定された[エディット]コントロールの内容が全て出力されるように1ページの余白の大きさを拡張します。

  • M=複数ページ …… フォームは、[エディット]コントロールのすべての行が出力されるように複数のページにまたがって拡大されます。データが1行に納まらない場合は、テーブル行が拡大されます。

パレット最適化

多くのグラフィックイメージを含むフォームでは、各イメージに異なるカラーパレットが使用されていることがあり、それらのカラーパレットの組み合わせによってフォーム内で適合しない解像度が生じることがあります。

このような場合、[パレット最適化]を「Yes」に設定して、選択したグラフィックイメージに標準色を与えるパレットが使用されるようにすることができます.


帳票フォーム GUI出力形式フォーム特性 表示

表示

出力フォーム > 帳票フォーム > GUI出力フォーム特性

[GUI出力フォーム特性]の[表示]セクションには以下の特性があります。

フォント | フォームのフォントを指定します。[アプリケーション用フォント一覧]にズームしてフォントを選択できます。式で動的に指定することもできます。コントロールのフォントは、[コントロール特性]シートで定義します。コントロールのフォントが指定されていない場合、フォームのフォントが使用されます。
色 | フォームの色を指定します。[アプリケーション用基本色一覧]にズームして色を選択できます。[式]エディタにズームし、色番号を表す式を入力することによって動的に指定することもできます。


帳票フォーム GUI出力形式フォーム特性 位置とサイズ

位置とサイズ

出力フォーム > 帳票フォーム > GUI出力フォーム特性

[GUI出力フォーム特性]の[位置とサイズ]セクションには以下の特性があります。

幅 | フォームの横幅を指定します。指定された幅のフォームを超えてコントロールが定義されている場合、水平スクロールバーが表示されます。 フォームの右端をドラッグすることによって幅を変更することができます。
高さ | フォームの高さを指定します。指定された高さのフォームを超えてコントロールが定義されている場合、垂直スクロールバーが表示されます。 フォームの下辺の端をドラッグすることによって高さを変更することができます。


帳票フォーム テキスト形式フォーム特性

テキスト形式フォーム特性

出力フォーム > 帳票フォーム

[テキスト形式]フォームは、クラス>0にする必要があります。

以下の操作で、[テキスト形式フォーム特性]シートにアクセスすることができます。

  • [インタフェースタイプ]が「T=テキスト形式」に設定された[フォーム]エディタ内のエントリにカーソルを置き、[編集／特性]を選択します。

  • [インタフェースタイプ]が「T=テキスト形式」に設定された[フォーム]エディタ内のエントリにカーソルを置き、Alt+Enterを押下します。

  • [インタフェースタイプ]が「T=テキスト形式」に設定された[フォーム]エディタ内のエントリにカーソルを置き、右クリックでコンテキストメニューを開きます。[特性]を選択します。

  • [インタフェースタイプ]が「T=テキスト形式」に設定されたフォームを開き、フォームのグリッドをダブルクリックします。

[T=テキスト形式特性]シートは、以下の５つのセクションに分かれています。

モデル

詳細

入力

表示


帳票フォーム テキスト形式フォーム特性 詳細

詳細

出力フォーム > 帳票フォーム > テキスト形式フォーム特性

フォーム名

[フォーム]エディタの[名前]カラムの値で、プログラム作成時にフォームを定義する上でわかりやすい名前を指定してください。

グリッド表示

[フォーム]エディタにグリッドを表示するかどうかを指定します。

  • Yes……フォームのレイアウトにグリッドが表示されます。

  • No……フォームのレイアウトにグリッドが表示されません。


帳票フォーム テキスト形式フォーム特性 入力

入力

出力フォーム > 帳票フォーム > テキスト形式フォーム特性

区分

帳票フォーム用です。以下の値が設定できます。

  • D=明細

  • H=ヘッダ

  • F=フッタ

  • P=ページヘッダ

  • G=ページフッタ

入出力レコードレイアウトとして用いるフォームでは、この特性値には意味がなく無視されます。

フォーム拡大

[複数行編集]が設定されたいる[エディット]コントロール内のテキストを全て出力するために、コントロールのサイズを拡大するかどうかを指定します。以下の値が設定できます。

  • N=なし …… コントロールサイズは拡大されません。

  • O=１ページ …… このコントロールによって拡大できるフォームの最大サイズが1ページ分になります。

  • M=複数ページ …… [エディット]コントロールの全ての行が収まるまで、フォームは複数ページに渡って拡大されます。


帳票フォーム テキスト形式フォーム特性 表示

表示

出力フォーム > 帳票フォーム > テキスト形式フォーム特性

色

論理プリンタ属性に関連付けられている色番号を指定します。

この特性をダブルクリックすると、[プリンタ属性一覧]が表示されます。実行モードでの値は、この特性をダブルクリックして[式]エディタを表示し、[プリンタ属性一覧]のカラー番号の計算式を入力することによって動的に指定できます。式を使用すると、プリンタ属性設定は式の結果で上書きされます。デフォルトは「1」です。


帳票フォーム テキスト形式フォーム特性 位置とサイズ

位置とサイズ

出力フォーム > 帳票フォーム > テキスト形式フォーム特性

幅 | フォームの横幅を指定します。指定された幅のフォームを超えてコントロールが定義されている場合、水平スクロールバーが表示されます。 Ctrl+→（←）キーを押下することで幅を変更することができます。
高さ | フォームの高さを指定します。指定された高さのフォームを超えてコントロールが定義されている場合、垂直スクロールバーが表示されます。 Ctrl+↑（↓）キーを押下することで高さを変更することができます。


テキスト形式コントロール特性

出力フォーム > 帳票フォーム

[テキスト形式コントロール特性]シートは、[テキスト形式]フォーム上でコントロールからズームすると表示されます。

ここでは、コントロールのタイプごとに、各種の特性値を定義できます。現在のフォームでサポートされていないコントロール特性のオプションは使用できません。

[テキスト形式コントロール特性]シートは４つのセクションに分かれており、どのセクションが表示されるかは、選択したコントロールのタイプによって異なります。

モデル

詳細

表示

位置とサイズ

テキスト形式コントロールには以下のものがあります。

エディット

スタティック

ライン


テキスト形式コントロール特性 エディット

エディットコントロール特性

出力フォーム > 帳票フォーム > テキスト形式コントロール特性

モデル |
詳細 | 表示
データ 項目 書式 型 | 色 可視 水平整列 垂直整列
入力 | 位置とサイズ
複数行編集 | 左辺位置 上辺位置 幅 高さ


テキスト形式コントロール特性 スタティック

スタティックコントロール特性

出力フォーム > 帳票フォーム > テキスト形式コントロール特性

モデル |
詳細 | 表示
テキスト スタティックタイプ | 色 可視 水平整列 垂直整列
入力 | 位置とサイズ
複数行編集 | 左辺位置 上辺位置 幅 高さ


テキスト形式コントロール特性 ライン

ラインコントロール特性

出力フォーム > 帳票フォーム > テキスト形式コントロール特性

モデル |
表示 | 位置とサイズ
色 可視 | X1 Y1 X2 Y2


テキスト形式コントロール特性 モデル

モデル

出力フォーム > 帳票フォーム > テキスト形式コントロール特性

選択したコントロールに関連付けるモデルを指定します。
このコントロールに一覧される特性は、継承することも、継承を解除することもできます。継承を解除した特性の値は、モデルを更新しても更新されません。虫眼鏡のアイコンをクリックすると、コントロール特性が表示されます。


テキスト形式コントロール特性 詳細

詳細

出力フォーム > 帳票フォーム > テキスト形式コントロール特性

選択したコントロールに応じて、以下の特性が表示されます。

データ

項目

書式

型

スタティックタイプ

テキスト


テキスト形式コントロール特性 詳細 データ

データ

出力フォーム > 帳票フォーム > テキスト形式コントロール特性 > 詳細

データ項目または式として定義します。

  • データ項目 ……現在の位置に選択したデータ項目を定義します。データ項目を選択するには、データ項目のシンボル名を入力するか、ズームして[項目一覧]からデータ項目を選択してください。

  • 式……現在の位置に選択した式を定義します。式を入力するには、[値]特性を空にした状態で、[式]欄からズームして[式]エディタをオープンすることで可能です。
    暗黙的に決定されている式の型が[型]特性に表示されます。[書式]特性が有効になるので、ここでデフォルトの書式を上書きすることができます。ウィンドウレイアウトでは、数字のみの式は4桁に、英数字の式は30桁にデフォルト設定されています。これらのデフォルトを表示項目の実際のサイズに合わせて変更したい場合は、式の書式を修正して表示形式を変更してください。

  • BLOB……OLEコントロールのデータ特性は、BLOB型のデータ項目に指定する必要があります。このデータ項目には、埋め込みOLEオブジェクトの内容、または別のファイルに格納されているリンクオブジェクトの参照ポイントが保持されます。


テキスト形式コントロール特性 詳細 項目

項目

出力フォーム > 帳票フォーム > テキスト形式コントロール特性 > 詳細

ここには、データ項目名が表示されます。


テキスト形式コントロール特性 詳細 書式

書式

出力フォーム > 帳票フォーム > テキスト形式コントロール特性 > 詳細

項目に対応した書式を指定してください。書式を変更した場合、フォームの表示のみに影響します。デフォルトは、項目特性に定義された内容が引き継がれます。

[式]欄から[式]エディタにズームして式を定義することで動的に変更することができます。


テキスト形式コントロール特性 詳細 型

型

出力フォーム > 帳票フォーム > テキスト形式コントロール特性 > 詳細

選択された項目（または式）の型。初期値は空白です。項目を指定した場合は、[型]特性は変更できません。項目式を指定した場合のみ変更できます。


テキスト形式コントロール特性 詳細 スタティックタイプ

スタティックタイプ

出力フォーム > 帳票フォーム > テキスト形式コントロール特性 > 詳細

フォームに配置した[スタティック]コントロールのタイプが表示されます。この特性は、[スタティック]コントロールをフォームに配置すると、自動的に定義されます。ここからズームすると、[スタティックタイプ]ダイアログが表示されます。


テキスト形式コントロール特性 詳細 テキスト

テキスト

出力フォーム > 帳票フォーム > テキスト形式コントロール特性 > 詳細

[スタティック]コントロールに表示するテキストを指定できます。


テキスト形式コントロール特性 表示

表示

出力フォーム > 帳票フォーム > テキスト形式コントロール特性

選択したコントロールに応じて、以下の特性が表示されます。

複数行編集

色

可視

線幅

水平整列

垂直整列


テキスト形式コントロール特性 表示 複数行編集

複数行編集

出力フォーム > 帳票フォーム > テキスト形式コントロール特性 > 表示

[スタティック]コントロールに適用され、コントロールに複数行のテキストを含めることができるかどうかを指定できます。テキストが編集フレームまたはテキストフレームに入りきらない場合は、フォーム内に全てのテキストが表示されるようにフレームが拡張されます。拡張されたフレームからはみ出たコントロールは全て下に押し出され、新しいフレームの長さに対応する余白を形成します。

テキスト形式のフォームで複数行の[エディット]コントロールを使用すると、フォームの[フォーム拡大]特性を設定することによって、フォームを単一ページのサイズに設定できます。


テキスト形式コントロール特性 表示 色

色

出力フォーム > 帳票フォーム > テキスト形式コントロール特性 > 表示

[テキスト形式]フォームでは、プリンタの属性値を指定します。ここでズームすると[プリンタ属性一覧]が表示されます。


テキスト形式コントロール特性 表示 可視

可視

出力フォーム > 帳票フォーム > テキスト形式コントロール特性 > 表示

コントロールをユーザに表示するか非表示にするかを定義します。実行モード時に動的に値を設定するには、式を使用します。式の戻り値が論理値の「True」の場合はコントロールを表示し、「False」の場合はコントロールを非表示にします。


テキスト形式コントロール特性 表示 線幅

線幅

出力フォーム > 帳票フォーム > テキスト形式コントロール特性 > 表示

[スタティック]コントロールの境界線の幅を指定します。


テキスト形式コントロール特性 表示 水平整列

水平整列

出力フォーム > 帳票フォーム > テキスト形式コントロール特性 > 表示

コントロール内の横方向のテキスト配置を定義します。有効な値は以下の通りです。

  • L=左寄せ

  • C=センタリング

  • R=右寄せ


テキスト形式コントロール特性 表示 垂直整列

垂直整列

出力フォーム > 帳票フォーム > テキスト形式コントロール特性 > 表示

コントロール内の縦方向のテキスト配置を定義します。有効な値は以下の通りです。

  • T=上寄せ

  • C=センタリング

  • B=下寄せ


テキスト形式コントロール特性 位置とサイズ

位置とサイズ

出力フォーム > 帳票フォーム > テキスト形式コントロール特性

選択したコントロールに応じて、以下の特性が表示されます。

左辺位置

上辺位置

幅

高さ

ラインパラメータ


テキスト形式コントロール特性 位置とサイズ 左辺位置

左辺位置

出力フォーム > 帳票フォーム > テキスト形式コントロール特性 > 位置とサイズ

コントロールの左上のx座標を指定します。


テキスト形式コントロール特性 位置とサイズ 上辺位置

上辺位置

出力フォーム > 帳票フォーム > テキスト形式コントロール特性 > 位置とサイズ

コントロールの右上のy座標を指定します。


テキスト形式コントロール特性 位置とサイズ 高さ

高さ

出力フォーム > 帳票フォーム > テキスト形式コントロール特性 > 位置とサイズ

コントロールの高さを指定します。


テキスト形式コントロール特性 位置とサイズ ラインパラメータ

ラインパラメータ

出力フォーム > 帳票フォーム > テキスト形式コントロール特性 > 位置とサイズ

[ライン]コントロールには、以下の特性が表示されます。

  • X1…… 選択した線の左側の点のx座標

  • Y1…… 選択した線の左側の点のy座標

  • X2…… 選択した線の右側の点のx座標

  • Y2…… 選択した線の右側の点のy座標


帳票フォーム 帳票印刷フォーム

帳票印刷フォーム

出力フォーム > 帳票フォーム

Magicは、帳票を印刷フォーム用に以下の機能が提供されています。

GUIテーブルコントロールの機能

複数行編集の印刷

プリンタ属性サポート

プリンタの設定

印刷スタイル


帳票フォーム 帳票印刷フォーム GUIテーブルの機能

GUIテーブルコントロールの機能

出力フォーム > 帳票フォーム > 帳票印刷フォーム

GUI印刷機能を利用することで、[テーブル]コントロールの印刷が可能になります。これにより、複数行形式の帳票の作成が簡単かつすばやく実行できます。

[テーブル]コントロールは、[GUI出力形式]フォームに配置することが可能です。以下に示す[テーブル]コントロールの特性を利用すれば、グラフィカルな印刷を簡単に行うことができます。

固定サイズテーブル

有効な値は「Yes」または「No」です。「No」がデフォルトです。

  • No……テーブルにはレコード行が1つしかありません。この行はレコードごとに繰り返されます。テーブルの実際のサイズは、ページに印刷されるレコードの数によって異なります。

  • Yes……テーブルはフォームに定義されている行数で印刷されます。

全ページタイトル

有効な値は「Yes」または「No」です。「Yes」がデフォルトです。

  • No……テーブルヘッダはテーブルの先頭だけに印刷されます。

  • Yes……出力ページ全てにテーブルヘッダが印刷されます。

テーブルの最初のレコードを印刷する時点で、テーブルヘッダとフォーム上にある他の全てのコントロールも同時に印刷されます。

テーブルの一部ではないコントロールは、最初のレコードとヘッダを印刷する時点で一度だけ印刷されます。これらのコントロールの位置により、現在印刷しているテーブルの最小サイズが設定されます。テーブルの長さは、フォーム上で一番最後に位置するコントロールが十分に入るだけの長さとなります。

最初のレコードの後に続くレコードを印刷する場合、それらのレコードは直前に印刷されたレコードに隣接して印刷されます。フォーム内の他のコントロールはそれ以上印刷されません。また、レコード数に応じてテーブルの長さが大きくなります。

テーブルのレコードを印刷中にページ終了条件が検出されると、次の処理が実行されます。

  • テーブルの終了行が印刷されます。次のページにテーブルのヘッダ（およびフォーム内にある他の全てのコントロール）が繰り返し印刷されます。これは、現在印刷しているテーブルでの最初のレコードの印刷時と同じです。

  • テーブルのヘッダは、ページ終了条件で繰り返し印刷される他のヘッダがあれば、それら全てより後に出力されます。

  • 別のフォームを印刷する際に、直前に印刷していたフォームにテーブルが含まれていた場合は、そのテーブルがクローズされてテーブルの終了行（複数の場合もある）が印刷されます。

  • 別のフォームを印刷する際に、直前に印刷していたフォームにテーブルが含まれていた場合は、新しいフォームはそのテーブルを含むフォームの後で印刷されます。これはテーブルを含むフォームのレコードが途中で終わっている場合でも同様であります。このような場合、テーブルの終了行（複数の場合もある）はテーブルを含むフォームに印刷されます。


帳票フォーム 帳票印刷フォーム 複数行編集の印刷

複数行編集の印刷

出力フォーム > 帳票フォーム > 帳票印刷フォーム

可変長のテキスト形式データを持つクラス値が1以上のフォームは、複数行と定義された[エディット]コントロールの動的サイズ調整機能を利用して印刷することが可能です。

[GUI出力形式]フォームの場合、[フォーム拡大]を「O=1ページ」または「M=複数ページ」に設定します。このコントロールは、印刷時に、コントロールのフレーム内にテキスト全体が収まるようにサイズを変更します。複数行指定された[エディット]コントロールの下に位置する各コントロールは、[エディット]コントロールとの当初の距離を保ちながら下方に移動します。フォームのサイズも、[エディット]コントロールの増えた行が収まるように拡大します。

  • O＝1ページ……このコントロールによって拡大できるフォームの最大サイズが1ページ分になります。

  • M＝複数ページ……[エディット]コントロールの全ての行が収まるまで、フォームは複数ページに渡って拡大されます。

注意：

  • テーブル内の拡大したコントロールは、フォームにテーブル外の拡大コントロールがない場合にのみ、複数ページに印刷されます。テーブル外に拡大コントロールがある場合は、[フォーム拡大]は「O=1ページ」を設定した時と同じ動作をします。

  • [フォーム拡大]特性が「M=複数ページ」の場合、プレビュー機能でリッチエディットを拡大して出力できません。

  • テキスト形式のフォームでは、選択できますが機能しません。


帳票フォーム 帳票印刷フォーム プリンタ属性サポート

プリンタ属性サポート

出力フォーム > 帳票フォーム > 帳票印刷フォーム

GUI印刷機能として、フォントやカラーを利用した[GUI出力形式]フォームのWYSIWYG（What You See Is What You Get）印刷をサポートしています。色は、モノクロプリンタではグレー階調に変換されます。

[入出力ファイル]テーブルの[メディア]カラムは「G＝GUI形式プリンタ」として定義します。これにより、入出力ファイルの出力がWindowsプリンタドライバに送られ、標準のWindows印刷が有効になります。

Magicのプリンタ属性サポートを利用すると、印刷出力の表示状態を簡単に制御できます。プリンタ属性サポートは、テキスト形式の入出力ファイルのみを対象にしています。使用するプリンタがサポートしているフォント（明朝体、ゴシック体など）や字体（ボールド、イタリックなど）であれば出力することができます。

グラフィカルプリンタにTrue Typeフォント以外のフォントを使用して出力すると、該当するフォントがそのプリンタで使用できない場合は、文字が正常に印刷されないことがあります。


帳票フォーム 帳票印刷フォーム プリンタの設定

プリンタの設定

出力フォーム > 帳票フォーム > 帳票印刷フォーム

[プリンタ]テーブルで定義されている個々のプリンタについて、字体／フォントの組み合わせごとにどのプリンタ制御コードが使われているか、またどの色がどの印刷スタイルを表しているかを、Magicに認識させる必要があります。この情報は、「プリンタ属性ファイル」および「プリンタコマンドファイル」の2つのファイルに格納されます。


帳票フォーム 帳票印刷フォーム プリンタの設定 属性ファイル

プリンタ属性ファイル

出力フォーム > 帳票フォーム > 帳票印刷フォーム > プリンタの設定

プリンタ属性ファイルには、Magicの論理印刷スタイルのリストが含まれます。この印刷スタイルは実行時に実際のプリンタ制御コードに展開されます。スタイルの展開は実行時に行われるため、プロジェクトを作成する時は個々のシステムの物理プリンタに関してあらかじめ知っておく必要がありません。必要とされる情報は全て、プロジェクトのインストール時にMagicの環境設定に収められます。

それぞれの論理印刷スタイルに関しては、プリンタ属性ファイルでそのスタイルと実際のプリンタ制御コードとの対応付けが示されています。これらの印刷スタイルはプリンタコマンドファイルに格納されている実際のプリンタ制御コードに変換されます。複数の印刷スタイルを組み合わせて、1つの印刷スタイルを作成することも可能です。

プリンタ属性ファイルには、色番号が含まれています。この色番号は、[フォーム]エディタ上で論理プリンタに対する印刷属性を定義するパラメータとして使用されます。

スタイルの説明にある名前は、アプリケーションがその論理印刷スタイルを識別する時に使用されます。

このテーブルは他のテーブルと同様、[設定]メニューから変更できます。


帳票フォーム 帳票印刷フォーム プリンタの設定 コマンドファイル

プリンタコマンドファイル

出力フォーム > 帳票フォーム > 帳票印刷フォーム > プリンタの設定

プリンタコマンドファイルには、印刷スタイルごとの実際のプリンタ制御コード（エスケープシーケンス）が記述されています。各エントリは次のいずれかの形式になっています。

スタイル名=開始シーケンス:終了シーケンス

または

スタイル名=開始シーケンス

「スタイル名」はプリンタコマンドファイル内で使われているユーザ定義のスタイル名です。開始シーケンスは所定の印刷スタイルで表示されるテキストセクションの先頭で、プリンタに送られるプリンタ制御（エスケープシーケンス）文字列です。終了シーケンスはそのテキストセクションの末尾でプリンタに送られるエスケープシーケンス文字列です。 開始シーケンスと終了シーケンスは、コロン(:)で区切ります。

２番目の形式は、再起動コマンドのように、シーケンスの終了が不要なプリンタコマンドに使用します。

プリンタコマンドファイルを修正するにはテキストエディタを利用します。

Magicには、次のプリンタコマンドファイルがサンプルとして付属しています。

WPDRV.ATR


帳票フォーム 帳票印刷フォーム 印刷スタイル

印刷スタイル

出力フォーム > 帳票フォーム > 帳票印刷フォーム

[プリンタ属性]テーブルは、印刷スタイルをMagicの基本色と組み合わせた論理印刷スタイルを構築する時に使用します。これらの基本色は、後ほどフォーム領域を塗りつぶすのに使用します。このフォーム領域の出力には、色というプリンタ属性が使用されます。

[オプション]メニューの[設定／プリンタ属性]を選択することで、[プリンタ属性]テーブルにアクセスすることができます。

このテーブル内の各エントリは、Magicの論理印刷スタイルに対応しています。このテーブルの各カラムは以下のとおりです。

  • #……Magicによって割当てられる、連続した行番号です。このカラムは編集できません。

  • 名前……論理プリンタ属性の名前です。この名前は、指定のフォーム領域に対して論理プリンタ属性を選択する場合に、[プリンタ属性一覧]に表示されます。

  • プリンタコマンド……Magic論理プリンタ属性を構成する、1つまたは複数の印刷スタイルの集まりです。それぞれの印刷スタイルは、物理プリンタのフォントや印刷字体を表しています。この項目の値は、[プリンタコマンド一覧]をズームして選択します。[プリンタコマンド一覧]には、プリンタテーブル内の各Magicプリンタに割当てられているプリンタコマンドファイルから読み込まれた、スタイル名の集まりが含まれています。複数のコマンドファイルで使われているスタイル名は、[プリンタコマンド一覧]では一度だけ表示されます。

  • 色……論理的な印刷属性と関連する色の番号を指定します。このカラムからズームして[基本色一覧]を表示して色を選択できます。この色は、プリンタ属性をフォーム領域に割当てるために使用されます。色がこのように使用される理由は、実際のフォーム領域を消費することなく、プリンタ属性の設定の可否を示す視覚的なインジケータとして機能するからです。

実行時において印刷属性を実際のプリンタ制御コードに展開する場合、Magicは印刷属性に定義された全てのプリンタコマンドの前処理部分を、[プリンタコマンド]カラムでの出現順序に従ってプリンタに送信します。その後、フォームコントロールがプリンタに送信されます。コントロ－ルの後に、Magicは印刷属性に定義された全てのプリンタコマンドの後処理部分を、[プリンタコマンド]カラムでの出現順序に従って全て送信します。複数の印刷コマンドを組み合わせて1つの論理印刷属性にすることで、プロジェクトで利用できるカスタム印刷スタイルを作成できます。

参照

プリンタ属性

プリンタ属性の構成要素

印刷属性の実行時における展開


帳票フォーム 帳票印刷フォーム 印刷スタイル 属性の構成要素

プリンタ属性の構成要素

出力フォーム > 帳票フォーム > 帳票印刷フォーム > 印刷スタイル

フォームレイアウト上でブロックのマーキングと塗りつぶしを行うと、そのブロックに対してプリンタ属性を指定したのと同じことになります。プリンタ属性は、[プリンタ属性一覧]に含まれています。[プリンタ属性一覧]を開くには、選択したテキスト形式コントロールの色特性に関連付けられている楕円形のボタンをダブルクリックします。

[プリンタ属性]テーブルは、指定されている各プリンタ属性を実際のプリンタコマンド群に、また参照用として個々の色に関連付けています。

[プリンタ属性]テーブルに示されるプリンタコマンドは、[プリンタコマンド一覧]に入っている各種の構成要素で構成されています。この一覧は、Magicシステム内のあらゆるコマンドファイルに含まれているプリンタコマンドを全部まとめたものから生成されます。

[プリンタ]テーブルにはMagicプリンタや論理プリンタ名が、プリンタコマンドファイルおよび物理プリンタを表したキュー名に関連付けられています。


帳票フォーム 帳票印刷フォーム 印刷スタイル 実行時における展開

印刷属性の実行時における展開

出力フォーム > 帳票フォーム > 帳票印刷フォーム > 印刷スタイル

フォームレイアウトで指定したプリンタ属性は実行時に、指定されているMagic論理プリンタやコマンドファイルに従って、また[入出力ファイル]テーブルや[プリンタ属性]テーブルの設定値に従って展開されます。


マージフォーム

Web開発 > 動的Webページ
出力フォーム >

マージフォームは、Magicタスクからのデータを、あらかじめ定義されたテンプレートファイルとマージすることで、動的なHTMLファイルやXMLファイル、テキストファイルを作成する場合に使用します。

Webオーサリングツールを使用してマージフォームを設計する時は、[フォーム]エディタの[名前]カラムからズームします。このWebオーサリングツールは、[動作環境]ダイアログの[アプリケーションサーバ]タブの[Webオーサリングツール]欄で指定します。

参照

マージフォーム特性

テンプレートファイルのタグ

マージのタグ

マージの構文規則

マージの実行時の動作

ファイルマージの例

リクエスタのアップロード機能


マージフォーム 特性

マージ形式フォーム特性

出力フォーム > マージフォーム

[マージ形式フォーム特性]には、以下の特性があります。

モデル

詳細

ファイル名

トークン前付符号

トークン後付符号

タグテーブル

フォーム名

XML出力


マージフォーム 特性 詳細

詳細

出力フォーム > マージフォーム > マージフォーム特性

ファイル名

マージフォームを利用した[フォーム出力]処理コマンドで使用されるテンプレートファイルの名前を定義します。Magicの論理名も使用できます。[ファイルを開く]ダイアログから選択するには、ここからズームします。
定義式でファイル名を動的に指定する場合は、[式]特性からズームして[式]エディタに入り、ここでファイル名を指定する式を定義してください。

トークン前付符号

テンプレート内のマージタグで使われる前処理を定義します。マージメカニズムでは、この文字列で始まるタグを検索し、テンプレートファイル内のタグに従って値を置換します（デフォルト： <!$）。

トークン後付符号

テンプレート内のマージタグで使われる後処理を定義します。マージメカニズムでは、この文字列で終わるタグを検索し、テンプレートファイル内のタグに従って値を置換します（デフォルト： >）。

タグテーブル

関連付けられているテンプレートファイル内の該当するマージタグと突き合わせ、それらに置き換えるデータ要素を定義します。詳細は、テンプレートファイルのタグの説明を参照してください。

フォーム名

この名前はフォームの識別用です。

XML出力

XML ファイルの出力時に特殊記号（&<>'"）をキーワード(&amp;&lt;&gt;&apos;&quot;）に変換して出力するか否かを指定します。

  • Yes……マージされた文字値は、正規のXML 値に変換されます。

  • No ……変換処理を行いません。

式を使用した場合、式の評価はタスク開始時に1度だけ行われます。


マージフォーム 特性 ファイル名

ファイル名

出力フォーム > マージフォーム > マージフォーム特性

マージフォームを利用した[フォーム出力]処理コマンドで使用されるテンプレートファイルの名前を定義します。Magicの論理名も使用できます。[ファイルを開く]ダイアログから選択するには、ここからズームします。
定義式でファイル名を動的に指定する場合は、[式]特性からズームして[式]エディタに入り、ここでファイル名を指定する式を定義してください。


マージフォーム 特性 トークン前付符号

トークン前付符号 （デフォルト： <!$）

出力フォーム > マージフォーム > マージフォーム特性

テンプレートファイル内のマージタグで使われる前処理を定義します。

マージメカニズムでは、指定された文字列（[トークン前付符号]と[トークン後付符号]）によって開始/終了するタグを検索し、テンプレートファイル内のタグに従って値を置換します。


マージフォーム 特性 トークン後付符号

トークン後付符号 （デフォルト： >）

出力フォーム > マージフォーム > マージフォーム特性

テンプレートファイル内のマージタグで使われる後処理を定義します。

マージメカニズムでは、指定された文字列（[トークン前付符号]と[トークン後付符号]）によって開始/終了するタグを検索し、テンプレートファイル内のタグに従って値を置換します。


マージフォーム 特性 タグテーブル

タグテーブル

出力フォーム > マージフォーム > マージフォーム特性

関連付けられているテンプレートファイル内の該当するマージタグと突き合わせ、それらに置き換えるデータ要素を定義します。詳細は、テンプレートファイルのタグの説明を参照してください。


マージフォーム 特性 フォーム名

フォーム名

出力フォーム > マージフォーム > マージフォーム特性

この名前はフォームの識別用です。


マージフォーム 特性 XML出力

XML出力

出力フォーム > マージフォーム > マージフォーム特性

XML ファイルの出力時に特殊記号（&<>'"）をキーワード(&amp;&lt;&gt;&apos;&quot;）に変換して出力するか否かを指定します。

  • Yes……マージされた文字値は、正規のXML 値に変換されます。

  • No ……変換処理を行いません。

式を使用した場合、式の評価はタスク開始時に1度だけ行われます。


マージフォーム テンプレートファイルのタグ

テンプレートファイルのタグ

出力フォーム > マージフォーム

[タグ]テーブルは、関連付けられているテンプレートファイル内の該当するマージタグと突き合わせて置き換えるデータ要素を定義する場合に使用します。[タグ]テーブルを開くには、マージ形式フォームの[タグテーブル]特性でズームしてください。

[フォーム出力]処理コマンドが実行されると、項目／式および書式からタグと表示値がマージメカニズムに送られます。マージメカニズムがテンプレートファイル内でタグを検出できない場合、タグとマージ値は無視されます。

タグが繰り返し領域に定義されていない場合は、最初のタグのみマージ値に置き換えられ、同じタグが２回以上送られても２番目の以降は無視されます。 繰り返し領域内に定義されたれタグの場合は、[フォーム出力]処理コマンドを実行するたびにマージ値で置き換えられます。

IFブロックの先頭にあるタグ（MGIFタグの一部）の場合、そのタグの値は、このIFブロックを出力先にコピーするかどうかを指定する論理値とみなされるか、あるいはELSEブロック（存在する時は）とみなされます。IFブロックは繰り返し領域の内側に置くことができます。これは、このタグに複数の値があり、「True」ごとにIFブロックが複写されることを意味します。

非論理値が[フォーム出力]処理コマンドによってMGIFタグに「属する」タグに送られると、値は「True」とみなされます。

マージメカニズムに対する出力として送られる文字列の後に空白が入力されている場合は、全て削除されます。


マージフォーム タグテーブル

タグテーブル

出力フォーム > マージフォーム

[タグ]テーブルには以下のカラムがあります。

タグ名 | テンプレートファイル内のマージタグと突き合わせるデータ要素の名前を指定します。選択したマージファイルに対してテンプレートファイルの名前が明示的に指定されている場合は、ズームすることにより、そのテンプレートファイルを基に表示される[タグ名一覧]からタグ名を選択できます。
名前（式） | タグ名を定義式で動的に指定する場合は、ここから[式]エディタにズームして定義してください。
項目 | タグを置き換える値が入っている項目を定義します。BLOB項目だけは選択できません。使用可能な項目の一覧から項目を選択する時はズームします。
式（データ項目） | タグを置き換える値が入っている式を定義します。
名前 | 選択した項目または式の名前を表示します。
書式 | 項目または式のいずれかの値をテンプレートにマージする時に使用する書式を定義します。項目に対して定義されている書式、式のデフォルト書式のいずれかが書式のデフォルトとなります。
式（書式） | 書式を、実行時に評価される式として定義します。


マージフォーム マージのタグ

マージのタグ

出力フォーム > マージフォーム

Magicのマージタグが通常のASCII文字列として保存されている限り、テンプレートファイルはどの文字コードでも構いません。

マージの各タグの一般的な形式は次のとおりです。

{トークン前付符号}{Token[_name]}{トークン後付符号}

「トークン前付符号」と「トークン後付符号」は、[入出力ファイル]テーブルのエントリごとに定義します。デフォルトでは、「トークン前付符号」と「トークン後付符号」はそれぞれ「<!$」と「>」として定義されています。

タグの{Token[_name]}の部分は、以下のいずれかになります。

<!$MG_NAME>

<!$MGREPEAT>

<!$MGENDREPEAT>

<!$MGIF_NAME>

<!$MGELSE>

<!$MGENDIF>

<!$MGINCLUDE>

<!$MGENDINCLUDE>


マージフォーム マージのタグ <!$MG_NAME>

<!$MG_NAME>

出力フォーム > マージフォーム > マージのタグ

<!$MG_name>は、[マージ特性]ダイアログのタグテーブル内で定義されたデータ要素と、実行時に同一の名前で一致したデータタグ。一致が検出されると、[フォーム出力]処理コマンドの実行時にその値がタグと置き換えられることになります。


マージフォーム マージのタグ <!$MGREPEAT>

<!$MGREPEAT>

出力フォーム > マージフォーム > マージのタグ

<!$MGREPEAT>タグは、繰り返し領域の先頭を定義します。繰り返し領域は、[フォーム出力]処理コマンドごとに複写と処理が行われるため、データ行の数が不明な場合でも処理を実行できます。このタグは出力からは除去されます。


マージフォーム マージのタグ <!$MGENDREPEAT>

<!$MGENDREPEAT>

出力フォーム > マージフォーム > マージのタグ

<!$MGENDREPEAT>タグは、繰り返し領域の末尾を定義します。このタグは出力からは除去されます。


マージフォーム マージのタグ <!$MGIF_NAME>

<!$MGIF_NAME>

出力フォーム > マージフォーム > マージのタグ

<!$MGIF_name>タグは、IFブロックの先頭を定義します。指定した名前は、[マージ特性]ダイアログのタグテーブル内で定義されたデータ要素と突き合わされます。データは論理値として評価されます。このデータが「True」であれば、IFブロックの残りの部分が処理されます。それ以外の場合はELSEブロックが処理されます。データが論理値でないと評価されると、そのデータは「True」とみなされます。このタグは出力からは除去されます。


マージフォーム マージのタグ <!$MGELSE>

<!$MGELSE>

出力フォーム > マージフォーム > マージのタグ

<!$MGELSE>タグは、ELSEブロックの先頭と、IFブロックの末尾（ELSEブロックより前になければならない）を定義します。ELSEブロックは、IFブロックの名前データ値が「False」と評価された場合に処理されます。このタグは任意指定です。このタグそのものは出力からは除去されます。


マージフォーム マージのタグ <!$MGENDIF>

<!$MGENDIF>

出力フォーム > マージフォーム > マージのタグ

<!$MGENDIF>タグは、IFブロックの末尾、またはELSEブロック（もしあれば）の末尾を定義します。<!$MGIF_name>が存在する場合、このタグは必須。このタグは出力からは除去されます。


マージフォーム マージのタグ <!$MGINCLUDE>

<!$MGINCLUDE>

出力フォーム > マージフォーム > マージのタグ

<!$MGINCLUDE>タグを使用すると、マージ処理中にテンプレートファイル全体を組み込むことができます。開始タグの後ろに、組み込むファイルの名前を指定します。ファイル名としてタグそのものを指定できます。組み込み処理は、ファイルを完全にマージした後で実行されます。


マージフォーム マージのタグ <!$MGENDINCLUDE>

<!$MGENDINCLUDE>

出力フォーム > マージフォーム > マージのタグ

<!$MGENDINCLUDE>タグは、組み込みコマンドの末尾を定義します。MGINCLUDEタグが存在する場合、このタグは必須です。

例：

<!$MGINCLUDE> \tmp\t1.html <!$MGENDINCLUDE>

ファイルt1.htmlを現在のテンプレートファイルに組み込みます。

<!$MGINCLUDE> <!$MG_T1> <!$MGENDINCLUDE>

<!$MG_T1>タグで参照しているファイルを現在のテンプレートファイルに組み込みます。


マージフォーム マージの構文規則

マージの構文規則

出力フォーム > マージフォーム

  • <!$MGREPEAT>、<!$MGENDREPEAT>の各タグの数と順序は一致している必要があります。

  • <!$MGIF_name>、<!$MGELSE>、<!$MGENDIF>の各タグの数と順序は一致している必要があります。

  • <!$MGELSE>タグは、<!$MGIF_name>と<!$MGENDIF>の組み合わせの間にのみ入れることができます。

  • REPEATブロックとIF-ELSE-ENDIFブロックはネスト指定できます。


マージフォーム 実行時の動作

マージの実行時の動作

出力フォーム > マージフォーム

[フォーム出力]処理コマンドが実行されると、項目／式および書式からタグと表示値がマージメカニズムに送られます。マージメカニズムがテンプレートファイル内でタグを検出できない場合、タグとマージ値は無視されます。

タグが繰り返し領域に定義されていない場合は、最初のタグのみマージ値に置き換えられ、同じタグが２回以上送られても２番目の以降は無視されます。 繰り返し領域内に定義されたれタグの場合は、[フォーム出力]処理コマンドを実行するたびにマージ値で置き換えられます。

IFブロックの先頭にあるタグ（MGIFタグの一部）の場合、そのタグの値は、このIFブロックを（または、存在する時はELSEブロックを）出力先にコピーするかどうかを指定する論理値とみなされます。IFブロックは繰り返し領域の内側に置くことができます。これは、このタグに複数の値があり、「True」ごとにIFブロックが複写されることを意味します。

[フォーム出力]処理コマンドの実行時に、MGIFタグに属しているタグへ非論理値が送られると、その値は「True」とみなされます。


マージフォーム 例

ファイルマージの例

出力フォーム > マージフォーム

マージメカニズムを利用した簡単な例を以下に示します。

マージのパラメータ

データ要素 | 値
Number | counter
IsEven | (counter MOD 2=0)

ファイルの内容（マージ前）

コマンド | 引数
<!$MGREPEAT> |
<!$MG_number> | <!$MGIF_IsEven>Even
<!$MGELSE>Odd<!$MGENDIF> |
<!$MGENDREPEAT> |

ファイルの内容（マージ後）

Number | Even/Odd
1 | Odd
2 | Even
3 | Odd
4 | Even
5 | Odd
6 | Even
7 | Odd
8 | Even
9 | Odd
10 | Even


フレームセットフォーム

Web開発 > 動的Webページ
出力フォーム >

フレームセットは、ブラウザウィンドウを複数のフレームに分割して表示する、高度なインターネット文書を作成する時に使用します。各フレームにはソースがそれぞれ異なる、独立したHTMLページが表示されます。

フレームセットには、各フレームのURLと名前を定義します。各フレームの内容は、フレームセットに定義されているURLから最初に読み込まれます。フレーム名を使用することにより、ハイパーリンクでリンクされているフレームの内容や送信アクションで送られたフレームの内容を別のフレームで表示することが可能になります。この方法により、プロジェクトでは、サイトの操作メニューや会社ロゴなどの表示部分を持続的に表示しておくことができるため、プロジェクトのどのページにもそれらの部分を組み込んで毎回読み込ませる必要がなくなります。

HTMLフレームセットはその性質上、階層構造をとっています。各フレームセットには別のフレームセットを含めることができ、それを同じフレームの一部として、あるいはそのフレームのURLが参照するページとして定義します。

フレームセットは、[フォーム]エディタで1以上のクラス値を指定しなければなりません。[フレームセットフォーム]エディタにアクセスするには、[フォーム]エディタ内のフレームセットフォームエントリの名前をズームします。

参照

フレームセットフォーム特性

コマンドパレット

フレームパレット

フレームセットコントロール特性


フレームセットフォーム 特性

フレームセット形式フォーム特性

出力フォーム > フレームセットフォーム

[フレームセット形式]フォームの[フォーム特性]には以下のものがあります。

モデル
詳細 | 表示
境界線の表示 フレームの間隔 相対サイズ フォーム名 | HTML内部属性
入力 | 位置とサイズ
コンテキスト変数 | 幅 高さ


フレームセットフォーム 特性 詳細

詳細

出力フォーム > フレームセットフォーム > フレームセットフォーム特性

境界線の表示

このフレームセット内のフレーム枠を表示するかどうかを指定します。「No」を選択すると、フレームセット内の全てのフレームは枠なしでブラウザ内に表示されます。デフォルト設定は「Yes」です。
これに対応するHTMLコードは以下のようになります。

<FRAME SET frameborder=0/1...>

フレームの間隔

フレーム内の全てのフレーム枠の幅をピクセル単位で指定します。この特性は、[境界線の表示]が「No」に設定されている場合には無効となります。デフォルト設定は「1」です。
これに対応するHTMLコードは以下のようになります。

<FRAME SET framespacing=n...>

相対サイズ

相対サイズを「Yes」に設定すると、フレームセット内にある全てのフレームのサイズは、ブラウザウィンドウまたはコンテナフレームのサイズに対する割合で定義されます。ユーザがブラウザウィンドウをサイズ変更すると、全てのフレームもその変更に合わせてサイズ変更されます。

相対サイズを「No」に設定すると、全てのフレームのサイズはピクセル単位で定義されます。この設定では、ブラウザウィンドウをサイズ変更してもフレームのサイズには影響しません。デフォルト設定は「Yes」です。
相対サイズが「Yes」の場合は、対応するHTMLコードは以下のようになります。

<FRAME SET ... rows/cols="nn%,nn%,...,*">

相対サイズが「No」の場合は、対応するHTMLコードは以下のようになります。

<FRAME SET ... rows/cols="nn,nn,...,*">

フォーム名

フォームの名前を指定します。この名前はフォームの表示時に、ブラウザのタイトルバーに表示されます。
これに対応するHTMLコードは以下のようになります。

<TITLE>フォーム名</TITLE>


フレームセットフォーム コントロール特性 境界線の表示

境界線の表示

出力フォーム > フレームセットフォーム > フレームセットフォーム特性 > 詳細

このフレームセット内のフレーム枠を表示するかどうかを指定します。「No」を選択すると、フレームセット内の全てのフレームは枠なしでブラウザ内に表示されます。デフォルト設定は「Yes」です。
これに対応するHTMLコードは以下のようになります。

<FRAME SET frameborder=0/1...>


フレームセットフォーム 特性 詳細 フレームの間隔

フレームの間隔

出力フォーム > フレームセットフォーム > フレームセットフォーム特性 > 詳細

フレーム内の全てのフレーム枠の幅をピクセル単位で指定します。この特性は、[境界線の表示]特性が「No」に設定されている場合には無効となります。デフォルト設定は「1」です。
これに対応するHTMLコードは以下のようになります。

<FRAME SET framespacing=n...>


フレームセットフォーム コントロール特性 相対サイズ

相対サイズ

出力フォーム > フレームセットフォーム > フレームセットフォーム特性 > 詳細

相対サイズを「Yes」に設定すると、フレームセット内にある全てのフレームのサイズは、ブラウザウィンドウまたはコンテナフレームのサイズに対する割合で定義されます。ユーザがブラウザウィンドウをサイズ変更すると、全てのフレームもその変更に合わせてサイズ変更されます。
相対サイズを「No」に設定すると、全てのフレームのサイズはピクセル単位で定義されます。この設定では、ブラウザウィンドウをサイズ変更してもフレームのサイズには影響しません。デフォルト設定は「Yes」です。
相対サイズが「Yes」の場合は、対応するHTMLコードは以下のようになります。

<FRAME SET ... rows/cols="nn%,nn%,...,*">

相対サイズが「No」の場合は、対応するHTMLコードは以下のようになります。

<FRAME SET ... rows/cols="nn,nn,...,*">


フレームセットフォーム 特性 詳細 フォーム名

フォーム名

出力フォーム > フレームセットフォーム > フレームセットフォーム特性 > 詳細

フォームの名前を指定します。この名前はフォームの表示時に、ブラウザのタイトルバーに表示されます。
これに対応するHTMLコードは以下のようになります。

<TITLE>フォーム名</TITLE>


フレームセットフォーム 特性 入力

入力

出力フォーム > フレームセットフォーム > フレームセットフォーム特性

コンテキスト変数

[コンテキスト変数]特性からズームし、このフォームのコンテキスト変数を[コンテキスト変数]ダイアログで指定します。


フレームセットフォーム 特性 入力 コンテキスト変数

コンテキスト変数

出力フォーム > フレームセットフォーム > フレームセットフォーム特性 > 入力

[コンテキスト変数]特性からズームし、このフォームのコンテキスト変数を[コンテキスト変数]ダイアログで指定します。

[コンテキスト変数]ダイアログには以下のオプションがあります。

  • ドメイン制限 …… IPアドレスの範囲制限内のPCでのみアクセス可能なようにコンテキストを制限します。

  • 日付制限 と 時間制限 …… Cookieの有効期限を日付と時刻で指定できます。有効期限が定義されていない場合、Cookieは、デフォルトで、セッションの終了時（ブラウザがクローズされた時点）に期限切れとなります。現在の日時以前の有効期限が設定された場合、Cookieは直ちに期限切れとなり、削除されます。時間は日付と連動します。datetimeのペアで渡されます。

  • 保護チャネル …… 他のアクセスがコンテキストを使用することを防止します。

参照

コンテキスト変数


フレームセットフォーム 特性 表示

表示

出力フォーム > フレームセットフォーム > フレームセットフォーム特性

HTML内部属性

[HTMLスタイル]テーブルから、コントロールのタグに追加する属性を選択します。[式]カラムから[式]エディタにズームして、HTMLスタイルを指定した式を選択することもできます。

内部属性を使用することでフォーム上の要素を標準化することができます。これは、[HTMLスタイル]テーブルに特性を定義し、各コントロールの[HTML内部属性]特性でそれを参照することによって行います。


フレームセットフォーム コントロール特性 HTML内部属性

HTML内部属性

出力フォーム > フレームセットフォーム > フレームセットフォーム特性 > 表示
出力フォーム > フレームセットフォーム > フレームセットコントロール特性

[HTMLスタイル]テーブルから、<FRAME>タグに追加する属性を選択します。[式]カラムから[式]エディタにズームして、HTMLスタイルを指定した式を選択することもできます。

内部属性を使用することでフォーム上の要素を標準化することができます。これは、[HTMLスタイル]テーブルに特性を定義し、各コントロールの[HTML内部属性]特性でそれを参照することによって行います。


フレームセットフォーム 特性 位置とサイズ

位置とサイズ

出力フォーム > フレームセットフォーム > フレームセットフォーム特性

幅 | フォームの幅を指定できます。
高さ | フォームの高さを指定できます。


フレームセットフォーム 特性 位置とサイズ 幅

幅

出力フォーム > フレームセットフォーム > フレームセットフォーム特性 > 位置とサイズ

フォームの幅を指定できます。


フレームセットフォーム 特性 位置とサイズ 高さ

高さ

出力フォーム > フレームセットフォーム > フレームセットフォーム特性 > 位置とサイズ

フォームの高さを指定できます。


フレームセットフォーム コマンドパレット

フレームセットのコマンドパレット

出力フォーム > フレームセットフォーム

[コマンド]メニュー、ショートカットメニュー、またはフレームセットの[コマンド]パレットを使用して、フレームセットフォームのフレームを編集することができます。

フレームセットの[コマンド]パレットには、フレームまたはフレームセット全体を編集するためのコマンドが含まれています。

フレームセットの[コマンド]パレットの各ボタンについての説明は以下のとおりです。

コマンド | 名前 | 説明
 | 縦に分割 | カーソルを縦分割カーソルに変更するにはこのボタンをクリックします。フレームを左右2つに分割する時は、この状態で任意のフレームをクリックします。
 | 横に分割 | カーソルを横分割カーソルに変更するにはこのボタンをクリックするフレームを上下2つに分割する時は、この状態で任意のフレームをクリックします。
 | フレームセット選択 | 選択したフレームのコンテナフレームを選択します。
 | フレームセット表示 | 選択したフレームのコンテナフレームを選択せずに表示します。
 | 縦に均等分割 | 選択したフレームを縦方向に、2つの全く同じフレームとして分割します。
 | 横に均等分割 | 選択したフレームを横方向に、2つの全く同じフレームとして分割します。
 | 縦に３分割 | 選択したフレームを縦方向に、3つの全く同じフレームとして分割します。
 | 横に３分割 | 選択したフレームを横方向に、3つの全く同じフレームとして分割します。
 | ハイパーリンク | 選択したフレームと、MagicプログラムやURLとの間にハイパーリンクを確立します。
 | マーク解除 | 選択したフレームの選択状態を取り消します。
 | 枠なし | ブラウザ上でのフレーム境界線の表示と非表示を切り替えます。デフォルトでは、境界線が表示されます。
 | 相対サイズ | [相対サイズ]特性を「Yes」に設定します。
 | 削除 | フォーム上に表示されている選択したフレームまたはフレームセットを削除します。
 | 区切りなし表示 | フレームセットとフレームセット間の区切線を消去します。
 | 元に戻す | 直前のコマンドの操作内容を取り消します。
 | やり直し | [元に戻す]コマンドによって取り消された直前のコマンドの操作内容を繰り返します。
 | HTMLファイル書込 | HTML形式でフレームセットデザインファイルを保存します。
 | ブラウザで表示 | ブラウザを起動してフレームセットデザインを表示します。


フレームセットフォーム フレームパレット

フレームパレット

出力フォーム > フレームセットフォーム

[フレームセット形式]フォームの[フレーム]パレットはあらかじめ定義された多数の標準フレームセットデザインで構成されており、フレームセットの編集を開始する時にはこれらのデザインを利用できます。基になるフレームセットデザインを選択した後、そのデザイン内でフレームの追加、削除、サイズ変更を行い、フレームセット内のフレームごとに特性を定義することができます。

フレームセットの設計を開始する時、あるいは現在フォーム上にあるフレームセットデザインを置き換える時は、フレームセットの[フレーム]パレットにある任意のフレームセットを選択します。フレームセットの[フレーム]パレットからフレームセットデザインを選択すると、現在フォーム上にあるフレームセットデザインが自動的に置き換えられる点に注意してください。自動的に置き換えられたデザインを元に戻したい場合は、フレームセットの[コマンド]パレットの[元に戻す]ボタンを選択するだけで前のフレームセットに戻ります。


フレームセットフォーム コントロール特性

フレームセットコントロール特性

出力フォーム > フレームセットフォーム

フレームセットフォーム内にある各フレームのコントロール特性は以下のとおりです。

モデル
詳細 | 入力
フレーム名 スクロール サイズ変更 | ハイパーリンク
 | 表示
 | HTML内部属性


フレームセットフォーム コントロール特性 詳細

詳細

出力フォーム > フレームセットフォーム > フレームセットコントロール特性

フレーム名 | フレームの名前を定義します。フレーム名は、別のフレームでハイパーリンクや送信ボタンをクリックした時に、要求された対象としてそのフレームを参照する場合に使用します。 これに対応するHTMLコードは以下のようになります。
 | <FRAME name="..."...>
スクロール | 表示するHTMLコンテンツがフレームより大きい場合に、そのフレームに水平または垂直スクロールバーを表示するかどうかを指定します。デフォルト設定は「No」です。 これに対応するHTMLコードは以下のようになります。
 | <FRAME scrolling=no...>
サイズ変更 | フレーム枠のクリックとドラッグによるフレームのサイズ変更を可能にするかどうかを指定します。ドラッグする枠に隣接するどのフレームもこの特性が「Yes」に設定されている必要があります。デフォルト設定は「No」です。 これに対応するHTMLコードは以下のようになります。
 | <FRAME noresize...>


フレームセットフォーム コントロール特性 スクロール

スクロール

出力フォーム > フレームセットフォーム > フレームセットコントロール特性

表示するHTMLコンテンツがフレームより大きい場合に、そのフレームに水平または垂直スクロールバーを表示するかどうかを指定します。デフォルト設定は「No」です。

これに対応するHTMLコードは以下のようになります。

<FRAME scrolling=no...>


フレームセットフォーム コントロール特性 サイズ変更

サイズ変更

出力フォーム > フレームセットフォーム > フレームセットコントロール特性

フレーム枠のクリックとドラッグによるフレームのサイズ変更を可能にするかどうかを指定します。ドラッグする枠に隣接するどのフレームもこの特性が「Yes」に設定されている必要があります。デフォルト設定は「No」です。

これに対応するHTMLコードは以下のようになります。

<FRAME noresize...>


フレームセットフォーム コントロール特性 入力

入力

出力フォーム > フレームセットフォーム > フレームセットコントロール特性

ハイパーリンク | フレームの内容がある参照先を指定します。ハイパーリンクを定義するには、ハイパーリンク値特性をズームするかダブルクリックして[ハイパーリンク]ダイアログを開きます。選択したハイパーリンクがフレーム内部に表示されます。 これに対応するHTMLコードは以下のようになります。
 | <FRAME src="..."...>


フレームセットフォーム コントロール特性 ハイパーリンク

ハイパーリンク

出力フォーム > フレームセットフォーム > フレームセットコントロール特性

フレームの内容がある参照先を指定します。ハイパーリンクを定義するには、ここからズームするかダブルクリックして[ハイパーリンク]ダイアログを開きます。選択したハイパーリンクがフレーム内部に表示されます。

これに対応するHTMLコードは以下のようになります。

<FRAME src="..."...>

[ハイパーリンク]ダイアログボックス

フォームをWebサーバに送信したり、Magicプログラムを起動するためのハイパーリンクをクリックする時のために使用されるURLを定義することができます。

Magicのハイパーリンクは、以下のタイプの内どれかを指定することができます。

URL

「URL」が選択された場合、以下の項目が有効になります。

  • URL

Magicプログラム

[ハイパーリンク]ダイアログにて、「Magicプログラム」を選択すると他のプログラムに対するハイパーリンクを定義する音ができます。

フォームをHTMLに変換された場合、Magicは以下の内容でURLを構成します。

  • HTTPリクエスタ の設定：[動作環境]ダイアログの[アプリケーションサーバ]タブで定義されます。

  • ユーザによって提供されるMagicのシステム名と公開名

  • 設定されたパラメータ

[ハイパーリンクタイプ]で「Magicプログラム」を選択した場合、以下の設定を定義することができます。

  • Magicアプリケーション …… 呼び出されるプログラムが定義されているプロジェクト名を指定します。ここからズームして[プロジェクトを選択]ダイアログからプロジェクトファイルまたはキャビネットファイルを選択します。右側の式欄からズームすることで式で定義することもできます。

  • 公開名 …… 起動されるプログラムの公開名を指定します。この名前は、[プログラム]リポジトリに定義された公開名と同じ名前を指定します。ここからズームして[公開プログラム一覧]からプログラムを選択することができます。右側の式欄からズームすることで式で定義することもできます。

  • パラメータ ……Magicプログラムに渡されるパラメータを指定します。ここからズームして[パラメータ]テーブルを表示し、パラメータを選択することができます。マージフォームの入力フィールドを使用するMagicプログラムの呼び出しを指定する場合は、ここららズームして[パラメータ]テーブルを開きパラメータを設定します。

  • 項目 …… 項目一覧に表示されているMagicの項目を指定します。

  • 式 …… 固定値を渡す場合に使用します。

  • 説明 ……項目についての説明が表示されます。


フレームセットフォーム コントロール特性 表示

表示

出力フォーム > フレームセットフォーム > フレームセットコントロール特性

HTML内部属性

[HTMLスタイル]テーブルから<FRAME>タグに追加する属性を選択します。[式]カラムから[式]エディタにズームすることにより式を作成することもできます。


[テーブル]コントロール特性

出力フォーム >

出力用フォームの[テーブル]コントロールには、以下の特性があります。

モデル

表示

位置とサイズ


[テーブル]コントロール特性 表示

表示

出力フォーム > テーブルコントロール特性

カラムの区切線

[テーブル]コントロールのカラムの間に区切り線を表示するかどうかを指定します。

最終区切線

[テーブル]コントロールで表示されます。タイトルバーに最終カラムの区切線を表示するかどうかを指定します。

  • Yes……タイトルバーに最終カラムの区切線を表示します。

  • No……区切線を表しません。（デフォルト）

色

コントロールの色を指定します。[スタイル]が「2= 平面」の場合にのみ有効です[基本色一覧]にズームして、色を選択できます。

可視

コントロールをユーザに見えるようにするかどうかを指定します。可視にするかどうかを表す論理値を返す式を使用できます。

スタイル

コントロールの外観を指定します。有効な値は、以下の通りです。

  • D=Windows 立体（デフォルト）

  • 3=凸立体

  • 2=平面

境界

コントロールの境界スタイルを指定します。[スタイル]特性が「2= 平面」と「D=Windows 立体」の時に有効です。有効な値は以下のとおりです。

  • T=細線……細線でコントロールを囲みます。

  • H=太線……太線でコントロールを囲みます。

  • N=なし……コントロールに境界線を表示しません。

区切り

[テーブル]コントロールに行の間に分割線を表示するかどうかを指定します。

タイトル高さ

[テーブル]コントロールのタイトルの高さを指定します。この特性は、[フォーム]エディタでタイトルバーの下端をクリックしてドラッグして設定することもできます。

行高さ

[テーブル]コントロールの行の高さを指定します。テーブルの先頭行の下端をクリックおよびドラッグして設定することもできます。

カラム数

[テーブル]コントロール内のカラムの数を表示します。カラム数の変更はフォームレイアウトでのみ行うことができます。

固定サイズテーブル

有効な値は「Yes」または「No」です。「No」がデフォルトです。

  • No……テーブルにはレコード行が1 つしかありません。この行はレコードごとに繰り返されます。テーブルの実際のサイズは、ページに印刷されるレコードの数によって異なります。

  • Yes……テーブルはフォームに定義されているサイズで印刷されます。

全ページタイトル

有効な値は「Yes」または「No」です。「Yes」がデフォルトです。

  • No……テーブルヘッダはテーブルの先頭だけに印刷されます。

  • Yes……出力ページ全てにテーブルヘッダが印刷されます。

テーブルの最初のレコードを印刷する時点で、テーブルヘッダとフォーム上にある他の全てのコントロールも同時に印刷されます。

テーブルの一部ではないコントロールは、最初のレコードとヘッダを印刷する時点で１度だけ印刷されます。これらのコントロールの位置により、現在印刷しているテーブルの最小サイズが設定されます。テーブルの長さは、フォーム上で一番最後に位置するコントロールが十分に入るだけの長さとなります。


[テーブル]コントロール特性 位置とサイズ

位置とサイズ

出力フォーム > テーブルコントロール特性

左辺位置 | コントロールの左上のx 座標を指定します。
上辺位置 | コントロールの右上のy 座標を指定します。
幅 | コントロールの幅を指定します。
高さ | コントロールの高さを指定します。（[テーブル]コントロールでは無効です）


データ管理

データ管理機能によって、保存されたデータの更新時期や方法を決定したり、物理データベース内に保存されたデータを編成することができます。

参照

トランザクション処理

トランザクションと実行レベル

遅延トランザクション

トランザクションツリー

トランザクション処理リカバリ

Magicの内部トランザクション

デッドロックとトランザクション処理

ロールバック

Magicキャッシュ

エラー処理

SQLに関する考慮事項

データベース関数

データ管理（コンテキスト）


トランザクション処理

データ管理 >

トランザクション処理は、データベースの整合性を保つために使用されるデータ処理技法です。トランザクション処理は、論理的に関連する一連のデータ修正の実行であるといえます。この一連の処理は、1つのまとまりとして「コミット」（完了してディスクに書き込む）または「アボート」されます。このようなトランザクションの典型的な例として、予約業務と信用調査業務などがあります。

トランザクションは、読み取り／書き込み操作とは反対に、読み取り操作を安全に実行するためにも使用できます。読み取りトランザクションでは、トランザクション内で読み取られたデータが他のユーザによって修正されていないことが保証されます。

トランザクション処理技法では、トランザクションの全ての更新が、一時トランザクションファイルに自動的に記録されます。このファイルに記録された更新内容は、トランザクションが完了した場合、つまりすべての通常データベーステーブルの更新が正常に完了した場合に限って消去されます。トランザクションが影響するテーブル内で問題が検出されると、トランザクション全体がキャンセルされ、データベースは「ロールバック」されます。つまり、トランザクションが発生する前の元の状態に復元されます。ロールバックでは、トランザクションログファイル内に保存された情報を使用してプロジェクトが復元されます。

トランザクション処理の主な利点は、コンピュータシステムのクラッシュから保護されることです。オンラインデータ入力やバッチ処理の途中でコンピュータがクラッシュした場合には、トランザクション全体がアボートします。このため、データベースが不完全に更新されるのを防ぐことができ、データベースの一貫性が保たれます。

参照

トランザクションモード

トランザクション開始

トランザクションと実行レベル

遅延トランザクション

ネストトランザクション

トランザクションツリー

Magic内部トランザクション

データベースにトランザクションをマップする

トランザクション処理リカバリ

ロールバック


トランザクション処理 ネスト

ネストトランザクション

データ管理 > トランザクション処理

親タスクが子タスクを呼び出すと、次の動作が実行されます。

親トランザクション モード | 子トランザクション モード | トランザクション動作
遅延／ネスト遅延 | 物理 | 子トランザクションによって物理トランザクションがオープンされます。更新は、親タスクに関係なくデータベースに送信されます。
遅延／ネスト遅延 | 遅延／親と同一／なし | 子トランザクションは親トランザクション内で実行されます。子タスクのデータ操作（DM）ステートメントは、親タスクがコミットされた時に送信されます。
遅延／ネスト遅延 | ネスト遅延 | 子タスクは新しい遅延トランザクションとして開きます。トランザクションは、親タスクに関係なくデータベースにコミットされます。
物理 | 物理／親と同一 | 子タスクは、各レコードかタスクの後で親とともにデータベースへの更新を行ないます。親タスクと子タスクは、同じトランザクションを共有します。
物理 | 遅延／ネスト遅延 | 実行エラーです。
なし | なし | データ変更は許可されません。
なし | 遅延／ネスト遅延／親と同一 | 子タスクは新しい遅延トランザクションとして開きます。トランザクションは、親タスクに関係なくデータベースにコミットされます。

親が物理トランザクションを実際に開いていない場合は、遅延の子タスクか、ネスト遅延の子タスクを含めることができます。

あるタスクが、別のタスク用に定義された[イベント]ロジックユニットから開かれると、トランザクションのネスト関係は、開発モードの定義ではなく実行時トランザクションを基に決定されます。

例えば、次のように動作します。

  1. 遅延トランザクションとして定義されているタスクAが、物理トランザクションとして定義されているタスクBを開きました。

  2. タスクBは物理トランザクションとしてデータベースを更新し、イベントがトリガされます。このイベントのハンドラはタスクA内に定義されており、遅延トランザクションであるタスクCを呼び出します。

  3. 遅延トランザクションであるタスクCは、物理トランザクションであるタスクBの下では実行できないので、実行エラーが発生します。しかし、タスクCが「親と同じ」として定義されていたとすれば、物理トランザクションとして開くので実行エラーは発生しません。

トランザクションなしのタスクＡが、遅延タスクＢをコールした場合、タスクＢをクローズしないで、別の遅延タスクＣをコールすると、以下の実行エラーが発生します。

「１つのコンテキストでは、複数の遅延トランザクションをオープンすることができません。」


トランザクション処理 マップ

データベースにトランザクションをマップする

データ管理 > トランザクション処理

トランザクション処理メカニズムを実行するため、Magicでは、基礎となるデータベースのトランザクション処理機能を活用します。それぞれのデータベースには独自のトランザクション機能があるので、Magicでは、さまざまなデータベース内で使用できるトランザクションに内部トランザクションがマップされます。

参照

ISAMデータベース

SQLデータベース


トランザクション処理 マップ ISAM

ISAMデータベース

データ管理 > トランザクション処理 > データベースにトランザクションをマップする

ISAMデータベースがトランザクション処理を実行する方法に基づいて、Magicでは内部トランザクションが次の方法でマップされます。

  • 読み取りトランザクションとロックトランザクションはISAMデータベース内で実行されていません。したがって、MagicではこのトランザクションをISAMデータベースゲートウェイに転送しません。

  • 書き込みトランザクションをISAMトランザクションにマップし、更新を記録してロールバックも実行します。このようなトランザクションでは、テーブルの全てまたは一部をロックすることができます。


トランザクション処理 マップ SQL

SQLデータベース

データ管理 > トランザクション処理 > データベースにトランザクションをマップする

SQLデータベースがトランザクション処理を実行する方法に基づいて、Magicでは内部トランザクションが次の方法でマップされます。

  • 読み取りトランザクションをR/O（読み取り専用）トランザクションにマップします。このトランザクションでは、トランザクションが開いた場合にデータベースのスナップショットが取得されます。

  • ロックトランザクションか書き込みトランザクション内で全てのテーブルのアクセスモードが読み取りである場合は、このロックトランザクションや書き込みトランザクションをR/O（読み取り専用）トランザクションにマップします。アクセスモードが読み取りでない場合は、ロックトランザクションや読み取りトランザクションをR/Wトランザクションにマップします。このトランザクションでは、トランザクション範囲内で参照される全てのレコードがロックされます。


トランザクションと実行レベル

データ管理 >

[タスク特性]ダイアログの[データ]タブ内で[トランザクションモード]特性と[トランザクション開始]特性を設定することによってことにより、トランザクション処理を任意のタスク実行レベルで有効にすることができます。

[タスク特性]ダイアログ内で[タスクタイプ]特性を変更すると（例えばオンラインからバッチに）、そのタスクの全てのトランザクションパラメータ（トランザクションモード、トランザクション開始、ロック方式、キャッシュ範囲など）は、そのタスクタイプに固有の元のデフォルト値に戻ります。


トランザクションと実行レベル タスクレベル

タスクレベルの物理トランザクション

データ管理 > トランザクションと実行レベル

[トランザクション開始]特性を「T=タスク前の前」に定義した場合、Magicでは次のことが実行されます。

  • タスクのフェッチ前にトランザクションをオープンします。

  • [タスク後]の実行に続くデータファイル更新後のみにトランザクションをコミットします。

  • サブタスクも含む、オープンとコミット間の全ての処理コマンドをトランザクション範囲内に組み込みます。

考慮事項

トランザクションをタスクレベルで定義すると、タスクの実行中に行われる全ての更新は1つのトランザクションとして記録されます。このため、次のことに注意してください。

  • データビューに数レコードしか含まれていない状態で、バッチタスクのタスクレベルでトランザクションを使用して、平行処理を向上させます。パフォーマンスが重要である場合は、バッチタスクのタスクレベルでトランザクションを使用します（SQLデータベース）。ISAMタイプのデータベースでは、バッチの拡張トランザクションに大量のディスク容量が必要になることがあります。

  • オンラインタスクのタスクレベルでトランザクションを使用すると、トランザクション中にテーブルが長時間ロックされる可能性があるため、マルチユーザアプリケーションでは、同じテーブルにアクセスする他のユーザに問題が発生することがあります。

  • 大量のレコードをカバーするタスクレベルトランザクションでは、トランザクションログファイルが大きくなり、ディスクドライブ上の空き容量が減少します。ディスク容量が不足しないように注意してください。ディスク容量が不足すると、トランザクションはアボートします。


トランザクションと実行レベル グループレベル

グループレベルの物理トランザクション

データ管理 > トランザクションと実行レベル

グループレベルは、バッチタスクのみで使用することができます。

考慮事項

グループレベルトランザクションを使用すると、大きいテーブルの処理をレコードグループごとの処理に分割することができます。このため、トランザクションの範囲が狭くなり、トランザクション処理の利点を活かすことができます。


トランザクションと実行レベル レコードレベル

レコードレベルの物理トランザクション

データ管理 > トランザクションと実行レベル

[タスク特性]ダイアログの[トランザクション開始]特性のレコードレベルのトランザクションには、5種類の値を指定できます。

レコードロック時

[レコード前]の前

[レコード後]の前

レコード更新前

なし


トランザクションと実行レベル レコードレベル レコードロック

レコードロック時

データ管理 > トランザクションと実行レベル > レコードレベルの物理トランザクション

[トランザクション開始]特性を「L=レコードロック時」に定義すると、Magicは、レコードがロックされる前にトランザクションをオープンします。


トランザクションと実行レベル レコードレベル レコード前の前

[レコード前]の前

データ管理 > トランザクションと実行レベル > レコードレベルの物理トランザクション

[トランザクション開始]特性を「P=レコード前の前」に定義した場合、Magicは以下の処理を実行します。

  • レコードをフェッチする前にトランザクションをオープンします。

  • [レコード後]の実行に続くデータテーブル更新後にのみトランザクションをコミットします。

  • サブタスクも含む、オープンとコミット間の全ての処理コマンドをトランザクション範囲内に組み込みます。

考慮事項

対話状態の間はトランザクションがオープンされているので、通常マルチユーザ環境では、オンラインのタスクレベルでトランザクションを定義しないでください。トランザクションにはロックが関係し、同じレコードやテーブルにアクセスする他のユーザに問題が発生することがあります。


トランザクションと実行レベル レコードレベル レコード後の前

[レコード後]の前

データ管理 > トランザクションと実行レベル > レコードレベルの物理トランザクション

[トランザクション開始]特性を「S=レコード後の前」に定義した場合、Magicは以下の処理を実行します。

  • [レコード後]を実行する前にトランザクションをオープンします。

  • [レコード後]の実行に続くデータビュー更新後のみにトランザクションをコミットします。

考慮事項

サブタスクの呼び出しも含め、全ての[レコード後]での処理がトランザクションに含まれます。

トランザクションでエラーが発生した場合、[タスク特性]ダイアログの[エラー発生時]特性の設定に従って、エンジンは実行を復旧またはアボートします。また、独自のエラーハンドラを定義してエラーを中断することもできます。


トランザクションと実行レベル レコードレベル レコード更新

レコード更新前

データ管理 > トランザクションと実行レベル > レコードレベルの物理トランザクション

[トランザクション開始]特性を「U=レコード更新前」に定義した場合、Magicは以下の処理を実行します。

  • [レコード後]の実行後、データテーブル更新の実行直前にトランザクションをオープンします。

  • データファイル更新が実行された後にのみトランザクションをコミットします。

考慮事項

このトランザクション内には、[レコード後]の処理が含まれないことに注意してください。マルチユーザアプリケーションには、更新トランザクションをお勧めします。エンドユーザ間の平行処理の潜在的な問題が減少します。


トランザクションと実行レベル レコードレベル なし

なし

データ管理 > トランザクションと実行レベル > レコードレベルの物理トランザクション

他のレベルと同様、レコードレベルでトランザクション処理が必要ない場合に設定します。


遅延トランザクション

データ管理 >

遅延トランザクションでは、データビューのレコードに対する変更をコミットする必要が出るまで、DMステートメントの実行を遅らせます。すなわち、DMステートメントはキャッシュ内に保存されます。変更をデータベースにコミットする準備が整うと、全ての変更が同時に実行されます。これにより、トランザクションの時間が可能な限り短縮されます。

遅延トランザクションを使用することで以下の利点があります。

  • サーバ側の負荷を減らすことができます。

  • アプリケーションとデータベース間の通信処理を減らすことができます。

  • パフォーマンスが向上します。

  • 並行性が高くなります。

参照

トランザクション開始

ロック方式

DB SQL Where句

埋込みSQL

同期


遅延トランザクション トランザクション開始

トランザクション開始

データ管理 > 遅延トランザクション

[トランザクションモード]特性を「D=遅延」に設定すると、それぞれの[トランザクション開始]特性に対し、以下に示すアクションが発生します。

  • P=レコード前の前……レコードレベルの全ての更新がグループにまとめられます。レコード更新時にトランザクションがオープンされ、変更が適用されてトランザクションがコミットされます。

  • T=タスク前の前……タスクレベルの全ての更新がグループにまとめられます。[タスク後]の後でトランザクションがオープンされ、変更が適用されてトランザクションがコミットされます。

  • G=グループ……更新はタスクレベルで集められ、特定の項目で値が変化するたびに更新されます。グループレベルトランザクションの使用時は、グループ項目を定義する必要があります。


遅延トランザクション ロック方式

ロック方式

データ管理 > 遅延トランザクション

[トランザクションモード]特性を「D=遅延」の場合、[ロック方式]特性には以下のオプションがあります。

  • O=入力時……遅延トランザクションタスクで入力時ロック方式を選択すると、Magicロックメカニズムで処理されます。必要な場合は、Magicロック設定を使用してください。

  • N=なし……Magicロックメカニズムを使用しません。


遅延トランザクション DBSQLWere

DB SQL Where句

データ管理 > 遅延トランザクション

[DB SQL Where句]の設定は、遅延トランザクションモードタスクに適用されません。[Magic SQL Where句]という新しい設定を使用することにより、遅延トランザクションのタスクでデータベースにWhere句を直接送信することができます。

参照

範囲ウィンドウ


遅延トランザクション 埋込みSQL

埋込みSQL

データ管理 > 遅延トランザクション

埋込みSQLタスクは、物理トランザクションモードのみ、組み込むことができます。


遅延トランザクション 数値項目の更新

数値型項目の更新

データ管理 > 遅延トランザクション

[タスク特性]で[トランザクションモード]特性が「D=遅延」か「N=ネスト遅延」の場合、Magicは差分更新を行うことができます。

例えば、FLD1 という項目をX という値に更新する場合、更新前のFLD1 とX の差分x をMagic 内部で求めて（FLD1=FLD1+x）の形式でコマンドを発行します。

この制御を行うために、カラムの[更新形式]特性を使用します。特性値は以下の通りです。

  • A=値更新……Ver8以前と同じ方法で値を更新します：（FLD1=X）

  • D=差分更新……差分の値で更新します：（FLD1=FLD1+x）

このパラメータは、通常の保存タイプでSQLテーブルに関係する数値型フィールドタイプにのみ有効です。ISAMのテーブルではサポートされていません。また、「遅延」と「ネスト遅延」モードのタスク、または実行時に遅延と評価される「親と同じ」モードに設定されたタスクで有効です。

[データビュー]エディタの項目特性にも[更新形式]特性があります。この特性を「T=テーブルに依存」に設定するとカラム特性の値と同じになります。

参照

カラムテーブル


遅延トランザクション 更新削除ステートメント

更新／削除ステートメント

データ管理 > 遅延トランザクション

このパラメータは、遅延トランザクションモードのタスクで利用します。

発行されるそれぞれの更新ステートメントや削除ステートメントについて、MagicでWHERE句を作成する手続きを決定することができます。選択できる値は次のとおりです。

  • P=位置……位置の一部であるフィールドのみが組み込まれます。

  • U=位置と更新項目……更新されるフィールドと位置フィールドの元の値。

  • S=位置と選択項目……選択された全てのフィールドと位置フィールドの元の値。

[データソース]特性やタスクの[メインソース特性]には、[更新レコードの識別]特性があります。この特性では、上記の値を設定できます。

注意：

この特性は、遅延トランザクションタスクとネスト遅延トランザクションタスク、または実行に遅延トランザクションモードと評価される「親と同じ」トランザクションモードでのみ有効です。

参照

データソース


遅延トランザクション コール前のレコード未更新

コール前のレコード未更新への対応

データ管理 > 遅延トランザクション

この遅延トランザクションパラメータでは、DMステートメントの実行順序を制御することができます。

MagicのVer8以前では、[レコード後]の順序に従ってDMステートメント（挿入、更新、削除など）が送信されていました。

例えば、次のようになります。

親タスクが子タスクを呼び出す場合、子タスクが、処理を完了してから親タスクに戻って親タスクが処理を完了します。このためMagicでは、子タスクを呼び出す前に親タスクの変更を実行する場合でも、子タスクの[レコード後]を処理してから親タスクの[レコード後]を処理していました。

同期

この特性は、[コール特性]ダイアログにあります。このパラメータによって、以下のように動作します。

  • Yes……親タスクのDMステートメントが送信されてから子タスクのDMステートメントが送信されます。

  • No……Magicの処理フローに従って、DMステートメントの実行を行います。

  • 式……「Yes」か「No」に評価される論理式を定義します。

[同期]特性は、レコード、コントロール、イベントレベルの[コールタスク（プログラム）]処理コマンドで有効です。


トランザクションツリー

データ管理 >

ブラウザ・ベースのプログラムを実行している時、ユーザは、一度に複数のブラウザを開くことができます。個々のブラウザは、トランザクションとの接続を持たない異なるタスクを実行することができます。Magicは、論理的に枝分かれしている遅延トランザクションを分割することによって個々のブラウザをサポートします。各枝は、他の枝との接続のない個別のトランザクションツリーとなります。

Magicは、遅延トランザクションに指定されているモーダレスタスクではネストトランザクションをオープンします。親子タスク間の動作は、Ver8以前と変わりません。

オープントランザクション

イベントツリー上で呼び出すタスクがトランザクションをオープンしない場合、起動されたタスクは、[タスク特性]に従ってトランザクションをオープンします。タスクが、トランザクションをオープンするように定義されていれば、レコードまたはタスクレベルでトランザクションをオープンします。

イベントツリー上で呼び出すタスクがトランザクションをオープンする場合、起動されたタスクは、[タスク特性]に従って以下のように動作します。

  • 遅延トランザクション …… タスクは新たにトランザクションをオープンしません。

  • ネストトランザクション …… タスクは新しいトランザクションをオープンします。

  • なし …… 遅延タスクと同じように動作します。

クローズトランザクション

トランザクションは、オープンされたタスクでクローズされます。

例外として、親と同じトランザクションをもつ子プログラムが起動された場合があります。トランザクションが親プログラムによってクローズされ、子プログラムがオープン状態のままの時、「トランザクションなし」で残ります。

子プログラムは、トランザクションの一部でなければなりません。最初に呼ばれた子プログラムは、トランザクションとトランザクション内の全ての子プログラムを管理します。親タスクがクローズすると、トランザクションの管理は、イベントツリー上の下位に移動します。トランザクション階層は、タスクがオープンされる順番によって決まります。トランザクションがクローズされ、そのトランザクションの中にまだタスクがオープンされている時、別のトランザクションが即オープンされ、最初の子タスクによって管理されます。

トランザクション管理が新しいタスクに移動すると、新しいトランザクションは、[タスク特性]に定義された値に関係なく常にタスクレベルでオープンされます。

参照

実行時のツリーの例


トランザクションツリー 例

実行時のツリーの例

データ管理 > トランザクションツリー

以下に示す実行時のツリーの例は、多くのブラウザがオープンされたブラウザベースのタスクでのものです。

この例は、 5つのトランザクションが同時にオープンされることを表しています。

5 つのトランザクションは、次のタスクでオープンされます :

  • A

  • C

  • D

  • H

  • I

各トランザクションの終りに、タスクの処理に従ってデータがコミットされるかロールバックされます。

データがコミットされる前は、キャッシュデータは、異なる枝の間で共有することはできません。

「タスク E」 は、「タスク I」からデータを参照することができません。「タスク I」が変更内容をデータベースにコミットした後であれば、「タスク E」 は、更新されたデータをデータベースから参照できます。


トランザクション処理リカバリ

データ管理 >

トランザクション処理リカバリでは、さまざまなデータベースエラー用にMagicのデフォルト動作を決めることができます

参照

エラー処理


Magicの内部トランザクション

データ管理 >

Magicには、次のように２つのタイプの内部トランザクションがあります。

  • 読込……データファイルに対する読み取り専用操作に使用します。

  • 書出……データファイルに対する書き込み操作に使用します。

参照

データベースにトランザクションをマップする


デッドロックとトランザクション処理

データ管理 >

マルチユーザ環境では、デッドロックがトランザクションエラーの一般的な原因となります。デッドロック状況は、2人のユーザが、相手が所有する（ロックしている）リソースを互いに待つ場合に発生します。

各データベース管理システム（DBMS）によって、デッドロックが発生した際の動作はさまざまです。一部のDBMSでは、デッドロックを検出して警告を発することができます。この場合、Magicはトランザクションをロールバックし、タスク特性の[エラー発生時]特性の設定に従って実行を続けます。

一部のISAMデータベースではデッドロック状況でハングアップすることがあるので、MagicではISAMデータベースとSQLデータベース用にデッドロック防止メカニズムを提供しています。デッドロック防止メカニズムを有効にするには、[動作環境]ダイアログ内で[デッドロック防止]設定を「Yes」に設定します。デッドロック防止メカニズムでは、トランザクションが続く間、定義された順序に従って、書き込みアクセスで開かれた全てのテーブルが排他的にロックされます。一時テーブルはロックされません。


ロールバック

データ管理 >

Magicには、処理中にタスク内で発生する可能性がある状況に従ってトランザクションを強制的にロールバックする機能があります。この機能は、Rollback関数として提供されます。Rollback関数を使用すると、指定されたネストレベルまでトランザクションをロールバックしたり、トランザクションを完全にアボートしたりすることができます。

Rollback関数は、ロールバックするネストレベル数をパラメータとして受け取ります。この数値は、オープンされたネストトランザクション数の範囲内でなければなりません。Rollback関数でパラメータ値が「0」である場合は、トランザクション全体が最初のレベルトランザクションまでロールバックされます。ロールバックが行われた後は、レベルがロールバックされた[エラー発生時]パラメータの設定に従って処理が再開されます。

Rollback関数では、エンドユーザに確認ダイアログを表示してから実際のロールバック操作を開始するかどうかを指定することができます。

ブラウザベースプログラムでのロールバックの動作

ブラウザベースプログラムでロールバック実行されると、トランザクション内にオープンしている全てのタスクは、トランザクションをオープンしたタスクを除いて終了されます。ネストされたタスクは影響しません。

例えば、異なるトランザクション内のタスクがロールバックし、親のトランザクションをオープンした場合、子タスクは、オープンし続け影響されません。

例外は、子プログラムが上位のレベルからのトリガによるハンドラで起動された時です。

子プログラムは、自分のレベルのトランザクションをオープンします。子プログラムが複数ある場合、全て新しいトランザクション内にあり最初に起動されたプログラムによって管理されます。

[コール]処理コマンドで起動される場合は、タスク内の子プログラムは閉じていなければなりません。


Magicキャッシュ

データ管理 >

キャッシュという機能が求められる基本的な背景として、同じデータを複数回読み込まなければならない場合が想定されています。この場合、ディスクI/O処理を実行しないでデータを再び取り出すことができれば、全体的なパフォーマンスが向上します。

キャッシュに一般的なアルゴリズムを採用している汎用ディスクキャッシュとは異なり、Magicキャッシュでは、物理データとアプリケーションの性質に関する知識に従ってキャッシュを微調整したり、プロジェクト内でユーザごとに微調整することができます。

Magicキャッシュでは、その他のハードウェアキャッシュ手法やソフトウェアキャッシュ手法のようにファイルマネージャを呼び出しません。このためMagicキャッシュでは、これまでの手法のファイルマネージャのオーバヘッドを回避することができます。

参照

キャッシュできるもの

キャッシュを使用するタイミング

キャッシュの有効化

プログラム動作の変更

キャッシュと常駐タスク

キャッシュとロールバック処理

キャッシュとクライアント／サーバ

Magicキャッシュの内部実行


Magicキャッシュ できるもの

キャッシュできるもの

データ管理 > Magicキャッシュ

Magicキャッシュは、メインソースとリンクテーブルに使用できます。Magicキャッシュは、タスクとメインソースおよびリンクごとに実現されます。つまり、親タスクとサブタスクが同じテーブルにアクセスしており、両方のタスクでテーブル上のキャッシュが有効になっている場合は、２つのキャッシュが使用されます。１つのタスク内における、同じテーブルへの２つのリンク操作にも同じことが当てはまります。この場合も、２つのキャッシュが使用されます。


Magicキャッシュ 使用するタイミング

キャッシュを使用するタイミング

データ管理 > Magicキャッシュ

Magicが行をロックする必要がない場合に限り、データはキャッシュから読み取ることができます。ロックが必要かどうかは、次の3つの要素から判断されます。

  • [タスク特性]ダイアログの[データ]タブで定義されている[ロック方式]

  • [タスク特性]ダイアログの[データ]タブで定義されている[キャッシュ範囲]

  • [メインソース特性]の[アクセスモード]と[共有モード]の定義

ロックは、[アクセスモード]が「W=書込」で[共有モード]が「S=共有」に設定されているテーブルのみにかけることができます。ロックのタイミングは、[ロック方式]で決まります。

照会モードから修正モード、また修正モードから照会モードへの移行は、キャッシュを使用して行われます。読み込まれているレコードは、モードの切り替えが行われても、リフレッシュされません。

ソート操作では、ソートファイル用のキャッシュが自動的に作成されます。

作成モードにアクセスした場合や、ユーザ位置付け、ユーザ範囲、およびソート処理が実行された場合には、キャッシュは解放されます。

修正モードと照会モードとの間で切り替えを行うと、キャッシュにアクセスされるので、データベースからデータを再び取り出す必要がなくなります。


Magicキャッシュ 有効化

キャッシュの有効化

データ管理 > Magicキャッシュ

[リンク特性]の[キャッシュ]特性により、タスク単位でリンクテーブルのキャッシュを無効または有効に定義することができます。この特性は、「Yes」または「No」で設定します。

  • Yes……テーブルキャッシュが有効になります。

  • No…… タスク内のリンクテーブルのキャッシュは無効になります。

[キャッシュ]特性のデフォルト値は、[データソース特性]の[キャッシュ範囲]特性の設定によって決まります。


Magicキャッシュ プログラム動作の変更

プログラム動作の変更

データ管理 > Magicキャッシュ

Magicキャッシュを使用すると、プログラムの動作が変化します。データがキャッシュ内で見つかった場合には、そのデータがテーブル内のデータと同一でない可能性があります。したがってMagicはデータの更新前に、必ずレコードをディスクから読み取ります。

APGで作成した単純なオンラインプログラムを例に考えてみましょう。ある行から別の行にカーソルを移動した場合は、必ず新しい行のデータビューが自動的に再度読み取られます。

別のユーザがデータを変更した場合、データがキャッシュ内にあって、その行に留まっていると、変更内容を確認することはできませんが、データを修正しようとした時に、現在の値がディスクから読み取られて次のメッセージが表示されます。

このレコードは他のユーザが更新しました－再読み込みを行います。

プロジェクトによっては、キャッシュを使用してはいけない場合があります。例えば、書込共有で読み取り用に価格テーブルにアクセスする受注入力プロジェクトがあるとします。あるエンドユーザが価格を変更した場合、その項目の新価格がそのユーザのキャッシュ内に常駐すると、その他のエンドユーザは新しい価格を確認できません。


Magicキャッシュ キャッシュと常駐タスク

キャッシュと常駐タスク

データ管理 > Magicキャッシュ

Magicキャッシュが常駐タスク内で割当てられていると、タスクが終了してもキャッシュは終了しません。Magicがメニューに戻った場合に限り、キャッシュが終了します。このため、あるタスクで同じデータをリンクテーブルから読み取っており、全てのデータがキャッシュされている場合、次回そのタスクが呼び出された際はキャッシュが再利用されます。


Cache and The Rollback Operation

キャッシュとロールバック処理

データ管理 > Magicキャッシュ

ロールバック処理の場合、トランザクション中で更新された全てのキャッシュは無効になります。無効になると、全てのデータはキャッシュから消去されます。更新、削除、挿入の各処理が行われたキャッシュのみが無効になります。


Magicキャッシュ クライアントサーバ

キャッシュとクライアント／サーバ

データ管理 > Magicキャッシュ

Magicキャッシュはクライアントに常駐します。Magicキャッシュをクライアント／サーバ環境で使用すると、ディスクのアクセスが減るだけでなく、生成されるネットワークトラフィックが少なくなります。クライアント／サーバプロジェクトでは、一般にネットワークがボトルネックになるため重要な要因となります。


Magicキャッシュ 内部実行

Magicキャッシュの内部実行

データ管理 > Magicキャッシュ

Magicが読み込む全ての行はキャッシュに挿入されます。新しい行の修正、削除、挿入もキャッシュに置かれます。すでに存在する行がMagicで再度読み取られると、前の値は破棄されます。キャッシュ内に存在しない行が読み取られると、Magicキャッシュはそれをキャッシュに自動的に配置します。キャッシュが不足した場合は、LRU（Least Recently Used）アルゴリズムによってキャッシュから破棄される要素が決まります。

LRUメカニズムの使用により、頻繁に読み取られるデータはキャッシュからスワップアウトされる確率が低くなります。


エラー処理

データ管理 >

Magic のエラー処理機能により、プロジェクトの実行中に発生するさまざまなエラーに対するMagicのデフォルト動作を変更することができます。

参照

エラー処理の仕組み

エラー発生時の処理方式

エラーロジックユニットの作成

エラー情報

実行時のエラー処理

エラーレコードの位置に基づくタスクの範囲／位置付


エラー処理 エラー処理の仕組み

エラー処理の仕組み

データ管理 > エラー処理

エラー処理のメカニズムにより、アプリケーションの実行中に発生するさまざまなエラーに対するMagicのデフォルト動作を変更することができます。

エラー発生時のMagicの動作を制御するレベルは２つあります。

最初のレベルは、[タスク特性]ダイアログの[エラー発生時]特性から選択できる、２つの事前定義された処理方式です。

２つ目のレベルは、より細やかな対応を行わせることのできるエラー処理レベルで、エラーに対応する処理内容をMagicのプログラムとして記述し、エラーロジックユニットとして使用するものです。Magicエンジンは、検出できる既知のエラーや予想されるエラーの一覧を表示するとともに、使用するDBMS特有のエラーコードなど、その他のエラーに対応する処理を取り扱うことができるようにします。このレベルでは、新しいエンジンの動作仕様が組み込まれており、エラーロジックユニット実行後のMagicエンジンの動作を選択制御することができます。


エラー処理 エラー発生時の処理方式

エラー発生時の処理方式

データ管理 > エラー処理

エラー発生時の処理方式として、「アボート」と「復旧」という2つの事前定義された対応方法が用意されています。このオプションは、タスクレベルの設定として、[タスク特性]ダイアログの[データ]タブにある[エラー発生時]特性で設定します。

通常は、オプションを適切に選択することで、エラー処理のために特別なロジックユニットは必要ありません。デフォルトのオプションでは対応が適さない場合に、[エラー]ロジックユニットを作成することでデフォルト設定を変更します。

参照

アボート

復旧

処理方式とエラー発生時の動作


エラー処理 エラー発生時の処理方式 アボート

アボート

データ管理 > エラー処理 > エラー発生時の処理方式

エラーが発生すると、現在のトランザクションがロールバックされます。物理トランザクションおよび遅延トランザクションのいずれの場合にも、現在のデータビューを削除し、エラーが発生したタスクをアボートします。

この方式は、「ロックエラー」や「不正ログオン」のような、エンドユーザが回復できるエラーに対しては、適用されません。


エラー処理 エラー発生時の処理方式 復旧

復旧

データ管理 > エラー処理 > エラー発生時の処理方式

できる限り現在のデータビューを維持して現行タスクにとどまり、エンドユーザがエラーから回復できるようにします。「復旧」を使用すると、エンドユーザはエラー発生後でもアプリケーション内で作業を続行することができます。

この方式では、「ロックエラー」や「最大接続数超過」のエラーなどに対しては、 エンドユーザの介入なしに、Magicは自動的に処理を繰り返します。


エラー処理 エラー発生時の処理方式 動作

処理方式とエラー発生時の動作

データ管理 > エラー処理 > エラー発生時の処理方式

次に示すのは、エラーとその時に選択している処理方式によって自動的に適用されるMagicの動作一覧です。各方式の動作の詳細については、「詳細／対応」の説明を参照してください。

エラー | アボート | 復旧
テーブルロック不可 | 自動リトライ | 自動リトライ
レコードロック | 自動リトライ | 自動リトライ
最大接続数超過 | アボート | 自動リトライ
重複インデックス | アボート | ユーザリトライ
制約違反 | アボート | ユーザリトライ
トリガ失敗 | アボート | ユーザリトライ
レコードが更新されていた | アボート | ロールバック／ユーザリトライ
レコードを別ユーザが変更 | アボート | ロールバック／ユーザリトライ
タスクのオープンに失敗 | アボート | アボート


エラー処理 エラーハンドラの作成

エラーハンドラの作成

データ管理 > エラー処理

エラーハンドラは、[ロジック]エディタのイベントレベルに作成することができます。これは、[イベント]ロジックユニットの場合と同様です。

参照

レベル

イベント

詳細／対応

メッセージ

スコープ

伝播

条件


エラー処理 エラーハンドラの作成 レベル

レベル

データ管理 > エラー処理 > エラーハンドラの作成

[ロジック]エディタでエラーハンドラを定義するには、ヘッダ行を作成後、「E=イベント」を選択します。これは、[イベント]ロジックユニットを定義する方法と同じです。


エラー処理 エラーハンドラの作成 イベント

イベント

データ管理 > エラー処理 > エラーハンドラの作成

[イベント]特性からズームすると、[イベント]ダイアログが開きます。ここでは、[イベントタイプ]として、「R=エラー」を選択します。

また[イベント]でズームすると、下記内容の[エラー一覧]が表示されるので、この中からエラーハンドラの対象とするエラータイプを指定します。

  • 任意のエラー

  • レコードロック

  • 重複インデックス

  • 制約違反

  • トリガ失敗

  • レコードが更新されていた

  • レコードを別ユーザが変更

  • 挿入/更新/削除に失敗

  • 未定義エラー

エラータイプのデフォルトは、「任意のエラー」になります。このエラータイプは、発生する全てのエラータイプが対象になります。


エラー処理 エラーハンドラの作成 詳細/対応

詳細／対応

データ管理 > エラー処理 > エラーハンドラの作成

ユーザ定義のエラーハンドラを定義する場合、この特性でエンジンの対応動作内容を指定することにより、エラーロジックユニットの処理実行後にどのようなMagicの動作が起きるかを制御できます。

参照

タスク特性に依存

アボート

ロールバックして再起動

自動的にリトライする

ユーザがリトライする

無視する


エラー処理 エラーハンドラの作成 詳細/対応 ロールバックと再起動

ロールバックして再起動

データ管理 > エラー処理 > エラーハンドラの作成 > 詳細／対応

このオプションの場合、全てのエラーモードとトランザクションモードで同じ動作になりますが、[タスク特性]ダイアログの[タスクタイプ]特性と[トランザクション開始]特性の指定によって変化します。

タスクタイプ | トランザクション開始 | 動作
オンライン/ブラウザ | レコード前の前 | カーソルはトランザクションを開始したレコードにパークします。
 | タスク前の前 | カーソルはトランザクションを開始したタスク上にパークし、最初のレコードに位置付けます。
バッチ | レコード前の前 | 次のレコードに進む。
 | タスク前の前 | タスクをアボートします。


エラー処理 エラーハンドラの作成 詳細/対応 自動的にリトライ

自動的にリトライする

データ管理 > エラー処理 > エラーハンドラの作成 > 詳細／対応

ロックや最大接続数の超過のような一部のエラーの復旧では、エンドユーザによる入力なしに処理が自動的にリトライされます。Magicが自動的にリトライできるのは、次の表に示すエラーのみです。ほとんどのエラーでは、「ユーザがリトライする」で説明するような、ユーザによる介入が必要です。

エラー | 動作
テーブルロック不可 レコードロック 最大接続数超過 | Magicにより、処理コマンドが自動的にリトライされます。物理トランザクションであるか遅延トランザクションであるかに関係なく、トランザクションもデータビューもロールバックされません。カーソルは同じレコードにパークし、タイムアウト値に達するまでロックまたは接続がリトライされます。
重複インデックス 制約違反 トリガ失敗 | 遅延トランザクションのみ。 Magicにより、フラッシュ段階で物理トランザクション全体が自動的にリトライされます。
テーブルのオープン失敗 テーブル作成エラー テーブルの削除に失敗 テーブルのコピーに失敗 トランザクションのコミット失敗 トランザクションのオープン失敗 トランザクションの内部エラー デッドロック 接続に失敗 致命的なエラー 挿入/更新/削除に失敗 SQL 実行エラー 不当なSQL コマンド 不当なオープンQuery式 不当なテーブル名 テーブルが存在しない 読込専用テーブルを更新 レコードが更新されていた レコードを別ユーザが変更 レコードが失われていた | 不適用、設定はできません。

注意：

遅延トランザクションモードでは、自動リトライによって、遅延トランザクション中に蓄積されたコマンドについてトランザクションのフラッシュ段階で発生した全てのエラーが参照されます。物理トランザクションは、ロールバックされてから再起動されます。これには、実行済みの全ての処理コマンドも含まれます。


エラー処理 エラーハンドラの作成 詳細/対応 アボート

アボート

データ管理 > エラー処理 > エラーハンドラの作成 > 詳細／対応

トランザクションを開始したタスクのアボート、データのロールバック、データビューの削除が行われます。


エラー処理 エラーハンドラの作成 詳細/対応 ユーザがリトライ

ユーザがリトライする

データ管理 > エラー処理 > エラーハンドラの作成 > 詳細／対応

トランザクションやデータビューは自動的にロールバックされず、エラーが発生したレコード上にカーソルが置かれた状態で制御がエンドユーザに返されます。この設定は、物理トランザクションでは利用できません。

エンドユーザが復旧できるエラーを、次の表に示します。

エラー

動作

不正なログオン

全てのタスクタイプで有効です。

開発／実行モードにおいて、[ログオン]ウィンドウが表示され、エンドユーザに再度ログオンを要求します。

バックグラウンドモードで実行している場合は、[ログオン]ウィンドウが表示されません。

重複インデックス

制約違反

トリガ失敗

オンライン/ブラウザクライアント

  • 遅延トランザクション …… フラッシュフェーズのみロールバックされます。データビューは、現在のビューのままです。
    レコードレベルでは、レコード上に制御が残ります。
    タスクレベルでは、タスクは実行された状態で最初のレコード上にカーソルが置かれます。

  • 物理トランザクション …… トランザクションは、ロールバックされます。データビューは再作成されます。カーソルは、現在のレコードの先頭に移動します。
    タスクレベルでは、タスクは実行された状態で最初のレコード上にカーソルが置かれます。

バッチタスクには適用されません。

レコードが更新されていた

オンライン

データビューは更新後に値が表示され、カーソルは現在のレコードに留まります。
[トランザクション開始]欄が「レコード前の前」の場合、そのレコードはロールバックされ

ます。
[トランザクション開始]欄が「タスク前の前」の場合、そのタスクはロールバックされません。

バッチタスクには適用されません。

レコードロック
テーブルオープンに失敗
テーブル作成エラー
テーブル削除に失敗
テーブルコピーに失敗
トランザクションのコミット失敗
トランザクションのオープン失敗
トランザクションの内部エラー
デッドロック
接続に失敗
致命的なエラー
挿入/ 更新/ 削除に失敗
SQL実行エラー
不当なSQLコマンド
不当なオープンQuery式
不当なテーブル名
テーブルが存在しない
読込専用テーブルを更新レコードを別ユーザが変更
レコード紛失

適用されません。

これらのエラーに対してユーザリトライは指定できません。


エラー処理 エラーハンドラの作成 詳細/対応 無視する

無視する

デ ータ管理 > エラー処理 > エラーハンドラの作成 > 詳細／対応

このオプションは、エラーがスキップされ、以下に説明するように次のレコードから処理が続行されます。

物理トランザクション

  • バッチ……次のレコードに進みます。

  • オンライン／ブラウザクライアント……実行された処理コマンドに従って次のレコードに進みます。レコードがロックされていて次のレコードに移動できない場合、前のレコードにとどまります。

遅延トランザクション

フラッシュ以外の段階でエラーが発生した場合、Magicは物理トランザクションであるかのように動作します。フラッシュ段階でエラーが発生した場合、Magicは現行コマンドをスキップし、次のコマンドに進みます。

注意：

  • 物理トランザクションの「N=無視する」オプションは、レコードサイクル全体（レコード前、レコード後）がスキップされます。

  • 遅延トランザクションの「N=無視する」オプションでは、レコードサイクル全体ではなく、関連コマンドのみがスキップされます。遅延モードのコマンドは、レコードサイクルとの関連で実行されないためです。


エラー処理 エラーハンドラの作成 詳細/対応 タスク特性

タスク特性に依存

データ管理 > エラー処理 > エラーハンドラの作成 > 詳細／対応

このオプションの場合、[タスク特性]ダイアログの[エラー発生時]特性の処理方式に依存します。


エラー処理 エラーハンドラの作成 メセージ

メッセージ

データ管理 > エラー処理 > エラーハンドラの作成

致命的なエラーや予期せぬエラーに対してDBMSメッセージを表示するかどうかを指定することができます。

  • Yes……DBMSメッセージを表示します。この場合、[動作環境／動作設定]の[メッセージの詳細表示]が「Yes」と同じ動作になります。

  • No……DBMSメッセージを表示しません。


エラー処理 エラーハンドラの作成 スコープ

スコープ

データ管理 > エラー処理 > エラーハンドラの作成

[スコープ]特性には、次のオプションがあります。

  • T=タスク……特定タスク内でトリガされたエラーハンドラを実行します。

  • S=サブツリー……特定タスクとそのサブタスク内でトリガされたエラーハンドラを実行します。

  • G=グローバル……メインプログラムやそのサブプログラムでトリガされたエラーハンドラを実行します。


エラー処理 エラーハンドラの作成 伝播

伝播

データ管理 > エラー処理 > エラーハンドラの作成

イベントは、上位レベルで定義された[イベント]ロジックユニットに処理を伝播させることができます。Magicがイベントを処理しないものとみなした場合、次のレベルの[イベント]ロジックユニットを検索します。[伝播]特性には、以下の２つのオプションがあります。

  • Yes …… イベントを処理するために、Magicはより高いレベルのロジックユニットを検索します。該当するロジックユニットが見つからない場合、何も実行されません。

  • No …… イベントを処理するために、Magicはより高いレベルのロジックユニットを検索しません。

伝搬するかどうかを式で指定することで、実行時に動的に決定することもできます。


エラー処理 エラーハンドラの作成 条件

条件

データ管理 > エラー処理 > エラーハンドラの作成

エラーハンドラを実行するための条件を指定します。この特性は定義式で指定できます。 「No」と評価された場合、ロジックユニットは有効にならず、エラーを検出しません。


エラー処理 エラー情報

エラー情報

データ管理 > エラー処理

エラーに関する情報は、ハンドラでの処理に入る前に、一連の関数を使用することで得ることができます。この情報を使用して、ユーザ定義ロジックユニットを無効化するか有効化するかを決定することができます。

エラー情報を取得する関数には以下のものがあります。

  • ErrTableName……エラーが発生したテーブルの物理名を返します。メインソースとリンクテーブルがある場合は、この関数を使用することでエラーの発生場所を判断できます。この関数は、テーブルに関連するエラーにのみ関係します。

  • ErrDatabaseName……エラーが発生したデータベースの名前を返します。

  • ErrDbmsCode……DBMSエラーコードを返します。DBMS内部エラーコードに精通している場合は、致命的エラーと予期せぬエラーを識別するのに役立ちます。

  • ErrDbmsMessage……DBMSエラーメッセージを返します。致命的エラーと予期せぬエラーを識別するのに役立ちます。

  • ErrNativeName……エラーロジックユニットを「任意のエラー」に設定している場合に関連します。エラー名（Magicリテラル）を返します。この関数を使用すると、同じ処理コマンドで発生する複数のエラーの処理を取り扱うことができます。

  • ErrPosition……エラーが発生したレコードのポジション情報（BLOB型）を返します。


エラー処理 実行時のエラー処理

実行時のエラー処理

データ管理 > エラー処理

Magicがエラー状態になった場合、Magicのエラー処理メカニズムは、同じタスク内でエラーを検出し処理するために、定義された[エラー]ロジックユニットをエラー名に基づいて検索します。発生したエラーに対応する[エラー]ロジックユニットが存在する場合は、そのロジックユニットに定義された処理コマンドが実行され、次にロジックユニットが指定するエンジンの対応動作に従って対応するイベントが実行されます。

[エラー]ロジックユニットの検索は、[イベント]ロジックユニットの検索に似ています。ロジックユニットがタスク内に存在しない場合は、より上位のタスクレベルでエラー名に従って適切なロジックユニットが検索されます。

必要な[エラー]ロジックユニットが存在せず、「任意のエラー」のロジックユニットが定義されている場合、「任意のエラー」の[エラー]ロジックユニットが実行されます。


エラー処理 エラーレコードの位置に基づくタスクの範囲／位置付

エラーレコードの位置に基づくタスクの範囲／位置付

データ管理 > エラー処理

エラー処理の重要な機能は、ErrPosition関数を使用して取得したそのポジション情報に応じて、エラーレコードやレコードの範囲を表示する方法を提供することです。

Magic では以下のことができます。

  • ポジション情報に従ってタスクに位置付けることができます。

  • CurrPosition関数で現在レコードのポジション情報を返します。

  • ErrPosition関数でエラーが発生したレコードのポジション情報を返します。

範囲特性

[範囲]ウィンドウ（Ctrl+R）の[方法]特性（[式]タブ）に設定できる、範囲特性は以下の通りです。

  • O=このポジションで絞り込む……タスクが表示する1つのレコードの位置を示す式を入力できます。項目の[範囲]特性と、「このポジションで絞り込む」特性の間にはAND関係があります。レコードが存在しない場合、レコードは表示されません。

  • F=このポジションから開始する……タスクが範囲を開始するレコードの位置を示す式を入力できます。項目の[範囲]特性と、「このポジションから開始する」特性の間にはAND関係があります。レコードが存在しない場合、レコードは表示されません。

  • L=このポジションに位置付ける……タスクが位置付けされるレコードの位置を示す式を入力できます。項目の[位置付]特性と、「このポジションに位置付ける」特性の間には、AND関係があります。

この設定は、タスクのメインソースのみに適用されるものです。リンクテーブルについては、そのポジション情報から範囲指定や位置付けはできません。


SQL考慮事項

SQLに関する考慮事項

データ管理 >

SQLデータベースを使用して作業する際にMagicの環境を定義するには、フラグの定義方法とMAGIC.INIファイルの設定を理解しておく必要があります。

参照

Magic動作環境の構成と定義

Magicゲートウェイの命名規則

構成とパフォーマンス

Magic SQL データベース


SQL考慮事項 動作環境

Magic動作環境の構成と定義

データ管理 > SQLに関する考慮事項

SQLデータベースのMagicデータベースゲートウェイを使用するには、Magicクライアントと、DBMSのクライアント／サーバのインストール、および環境設定を行う必要があります。Magicでは、DBMSの番号を含む項目をMAGIC.INIに定義して、それぞれのゲートウェイをロードする必要があります。DBの番号は、実行可能なゲートウェイごとに決められています。

参照

Windows の場合


SQL考慮事項 動作環境 Windows

Windows の場合

データ管理 > SQLに関する考慮事項 > Magic動作環境の構成と定義

Windowsプラットフォームでは、MGDBnnは、MAGIC.INIファイルの[MAGIC_GATEWAYS]セクションで関連するDLLにアクセスするように設定します。例えば、Oracle は、DBMSセクションの番号は13なので、次のように指定します。

MGDB13= Gateways\MGOracle.dll

Windows におけるMAGIC. INIファイルのゲートウェイセクションの例は次のとおりです。

[MAGIC_GATEWAYS]
;MGCOMM01=mgwsock.dll
MGDB00=Gateways\MGpv2k.dll
;MGDB06=Gateways\MGdb2400.dll
MGDB13=Gateways\MGOracle.dll
;MGDB16=Gateways\MGeac32.dll
;MGDB18=Gateways\MGdb2.dll
;MGDB19=Gateways\MGodbc.dll
MGDB20=Gateways\MGmssql.dll
MGDB21=Gateways\MGmemory.dll


SQL考慮事項 命名規約

Magicゲートウェイの命名規則

データ管理 > SQLに関する考慮事項

ゲートウェイは、OSごとに異なります。したがって、ファイル名の構成は、OSごとに異なります。

WindowsTMの場合は、「MGyyyy.dll」になります。yyyyはOra8やODBCなどの特定のRDBMSを表します。

参照

ゲートウェイ名の構成

Magic のAPIの実装とバージョン


SQL考慮事項 命名規約 ゲートウェイ名の構成

ゲートウェイ名の構成

データ管理 > SQLに関する考慮事項 > Magicゲートウェイの命名規則

[ヘルプ]の[Magic情報]に表示されるMagicゲートウェイのバージョン情報の構成は、次のとおりです。

  • 最初の文字列には、名前とバージョンが表示されます。

  • 次の文字列には、Versionという単語が表示されます。

  • 3番めの文字列には、Magicのバージョン番号が表示され、その後に「-」が続きます。

  • 4番めの文字列には、ソースIDがX.Yの形式で表示されます。「X」は9や10などのメジャーソースバージョン、「Y」はマイナーソースバージョン、つまりソースが変更されるたびに変わる実行番号を表します。

  • 最後の文字列には、ゲートウェイが作成された日付が表示されます。

例えば、次のようになります。

Oracle 8 Version Magic 10.00 - 9.1 08-Jan-2006

Oracle 8はRDBMSの名前とバージョンを表し、その後にVersion、Magicのバージョン番号10.00、ソースID9.1、ゲートウェイの作成日08-Jan-2006が続きます。


SQL考慮事項 命名規約 API実装

Magic のAPIの実装とバージョン

データ管理 > SQLに関する考慮事項 > Magicゲートウェイの命名規則

Magicは、コンパイルやリンクの段階がないダイナミックなツールです。Magicプログラムは、必要な処理コマンドをタスクの[ロジック]エディタなどに定義するだけですぐに実行できます。Magicで定義されているデータビューもダイナミックなので、プログラム間やアプリケーション間で変更が可能です。Magicのデータビューは柔軟で、様々な形で利用できます。

この柔軟性に単一の規則に基づいたエンジンを提供するために、Magicでは、ダイナミックSQLを使用して、Magicプログラムに必要なSQLデータビューを構築します。SQLテーブルを使用するMagicの各タスクによって、適切なSQL文が発行され、必要なデータビューが指定されます。その後、SQL文がMagicデータベースゲートウェイ によって準備されます。この準備段階で、DBMSオプティマイザによってSQL文の分析と処理の準備が行われます。

3GLや4GLは、コンパイルによって実行時のSQL文の解析と最適化を行わなくてもすむように埋め込みSQLを使用しますが、Magicではコンパイルは使用しません。そのため、準備段階で繰り返し呼び出されるタスクを実行することによって、余分なオーバーヘッドが生じることがありますが、この場合、常駐タスクを利用すると、SQL文を一度だけ準備して解放しません。タスクが繰り返し呼び出される場合、新しいSQL文を準備する代わりに、既存のSQL文が使用されます。こうすれば、MagicのダイナミックSQLは、埋め込みSQLを使用したプログラムと同等のパフォーマンスになります。

各データベースゲートウェイ毎の情報は以下のリンクを参照してください。

Oracle

MS-SQL

DB2

ODBC


SQL考慮事項 命名規約 API実装 Oracle

Oracle

データ管理 > SQLに関する考慮事項 > Magicゲートウェイの命名規則 > Magic のAPIの実装とバージョン

Oracleデータベースゲートウェイは、OCI（Oracle Call Interface）インタフェースを使用して、最大の処理能力とパフォーマンスを実現するように記述されています。このゲートウェイは、Oracle8以降で動作するように設計されています。

参照

Oracle データベースゲートウェイ


SQL考慮事項 命名規約 API実装 MS-SQL

MS-SQL Server

データ管理 > SQLに関する考慮事項 > Magicゲートウェイの命名規則 > Magic のAPIの実装とバージョン

MS-SQL Serverデータベースゲートウェイは、OLE-DB（Object Link Embedding DB）インタフェースを使用して記述されています。最大限のパフォーマンスを得るために、クライアントのカーソルとコマンドが使用されます。このゲートウェイは、Microsoft SQL Server7以降で動作するように設計されています。

参照

MS-SQL Serverデータベースゲートウェイ


SQL考慮事項 命名規約 API実装 DB2UDB

DB2 UDB

データ管理 > SQLに関する考慮事項 > Magicゲートウェイの命名規則 > Magic のAPIの実装とバージョン

DB2 UDBデータベースゲートウェイは、DB2 UDBのCall Level Interface() プロシージャを使用して記述されています。このゲートウェイは、DB2 UDB Ver7.2 以降で動作するように設計されています。

参照

DB2 UDB データベースゲートウェイ


SQL考慮事項 命名規約 API実装 ODBC

ODBC

データ管理 > SQLに関する考慮事項 > Magicゲートウェイの命名規則 > Magic のAPIの実装とバージョン

ODBCデータベースゲートウェイは、ODBC 2.00 APIを使用して記述されています。このゲートウェイは、ODBCドライバのVer2以降で動作するように設計されています。

参照

ODBC データベースゲートウェイ

ODBC チェックドライバユーティリティ


SQL考慮事項 構成とパフォーマンス

構成とパフォーマンス

データ管理 > SQLに関する考慮事項

MagicとSQLの動作方法を理解できたら、次にMagicとSQLの効率的な動作方法について説明します。以下は、Magic と SQLのパフォーマンスを最適にするため、様々なコンセプトとテクニックについて説明しています。

トランザクション

ロック

NULL値

インデックスの定義と使用

範囲の定義

ソート

ストアドプロシジャ

ネットワークトラフィックを軽減する

照会モード位置付け

SQLコマンド

文字列日付の割付

SQLゲートウェイでサポートされるパラメータ


SQL考慮事項 構成とパフォーマンス トランザクション

トランザクション

データ管理 > SQLに関する考慮事項 > 構成とパフォーマンス

トランザクションは、1つ以上のSQL文で構成されます。トランザクションを構成するSQL文は、通常は相互に密接に関連していますが、実際には独立したアクションであり、論理的な作業単位と考えられます。

トランザクション内のSQL ステートメントは、それぞれ、タスクの一部として動作します。全てのステートメントは、タスクに必要なものです。SQL ステートメントが集まって単一ユニットになっているため、DBMSは１回の実行で一連の処理を行うことができます。DBMS 側から見ると、トランザクションを構成するSQLステートメントは、その処理の流れが一貫していることが必要になります。

アプリケーションでデータベース内の複数のテーブルを更新する場合、トランザクションによってデータベースの整合性が確保されるようにします。

参照

トランザクションのメカニズム


SQL考慮事項 構成とパフォーマンス トランザクション メカニズム

トランザクションのメカニズム

データ管理 > SQLに関する考慮事項 > 構成とパフォーマンス > トランザクション

トランザクションが正常に完了しなかった場合、データは、ROLLBACK文によってトランザクションのオープン前の状態に戻されます。正常に完了した場合は、データは、COMMIT文によってデータベースに永久に保存されます。

SQLおよびリレーショナルデータベースアーキテクチャでは、それぞれの更新は一度に1つのテーブルでしか行うことができません。このため2つの更新文は同時に実行されなければなりません。両方の更新文が成功してCOMMITするか、または失敗してROLLBACKするかのどちらかです。

1つのトランザクションでは、一連の更新は、共にCOMMITするか、またはROLLBACKするかのどちらかです。まず、トランザクションが宣言され、その後、トランザクションの宣言以降に発行された全ての文に対してCOMMITまたはROLLBACK SQL文が発行されます。


SQL考慮事項 構成とパフォーマンス ロック

ロック

データ管理 > SQLに関する考慮事項 > 構成とパフォーマンス

Magicには、物理および遅延トランザクションモードの概念が導入されています。両方のモードでのMagic SQLゲートウェイのデフォルトの動作は次のとおりです。

物理トランザクションモード

  • ODBCを除くSQLゲートウェイでは、デフォルトのロック方式として物理ロックが使用されます。

  • ODBCでは、トランザクションモードに関係なく、常に論理ロックが使用されます。

遅延トランザクションモード

  • 全てのSQLゲートウェイで、ロック方式として論理ロックが使用されます。

レコードは、データの整合性を確保し、各ユーザに共通のビューを提供するためにロックされ、一方では最大の同時実行性を実現します。ロックすることにより、ユーザが参照したり修正したりしている時に、レコードが変更されることを回避できます。ロックは、ほかのユーザがレコードを読み取ることさえできないように排他的にすることも、修正することはできなくても、ほかのユーザがレコードを読み取ることができるように共有にすることもできます。

トランザクションとロックは、RDBMSで密接に関連しています。SQLデータベースはマルチユーザ環境で実行されるので、無計画なロックによって、ユーザのアプリケーションへのアクセスが極端に制限されてしまうことがあります。全てのRDBMSでは、さまざまなロックのレベルを設定できます。

ISAMでは、更新の際にレコードがロックされ、更新が完了するとすぐに解放されます。RDBMSでは、トランザクションの開始時には必ずロックが行われ、COMMITまたはROLLBACK処理コマンドによってのみ解放されます。

参照

ロックレベル

テーブルロックへのエスカレート

強制的なロック

ロックの期間

ロックとトランザクション処理

テーブルのアクセスモードと共有モード

排他ロックと共有ロック

物理ロック

論理ロック


SQL考慮事項 構成とパフォーマンス ロック ロックレベル

ロックレベル

データ管理 > SQLに関する考慮事項 > 構成とパフォーマンス > ロック

通常の処理中は、RDBMSによってビュー構造がロックされます。「暗黙的なロック」が自動的に行われ、ユーザによる介入なしにデータが保護されます。デフォルトのロックを上書きすることを、「明示的なロック」といいます。

暗黙的なロックは、SQL文が実行されると自動的に行われます。例えば、INSERT、UPDATE、DELETEなどの文によって暗黙的なロックが行われ、トランザクション時にデータの一貫性と整合性が保たれます。

OracleなどのRDBMSでは、レコードレベルでロックを設定することができます。ページレベルのロックしか設定することができないRDBMSでは、同じページに属するほかのレコードもロックされてしまいます。


SQL考慮事項 構成とパフォーマンス ロック テーブルロック

テーブルロックへのエスカレート

データ管理 > SQLに関する考慮事項 > 構成とパフォーマンス > ロック

一部のデータベースシステムでは、あるレベルで多数のロックが行われると、RDBMSによって、これらのロックがテーブルロックなどのより高いレベルのロックに自動的に変更されるので、ロックのエスカレーションが起こります。この場合、ロックの数は減少しますが、ロックの範囲は広くなります。


SQL考慮事項 構成とパフォーマンス ロック 強制的なロック

強制的なロック

データ管理 > SQLに関する考慮事項 > 構成とパフォーマンス > ロック

明示的なロックは、暗黙的なロックと同じレベルで設定することができます。レコードを更新する場合、暗黙的な排他ロックがレコードレベルで設定されます。

Oracleで

select * from table where ... for update

という文、またはMS-SQL Serverで

select * from table （UPDLOCK NOWAIT） where ...

という文が開始されると、明示的な共有ロックがレコードレベルまたはページレベルで設定されるので、ロックが解放されるまでレコードを更新することができません。


SQL考慮事項 構成とパフォーマンス ロック 期間

ロックの期間

データ管理 > SQLに関する考慮事項 > 構成とパフォーマンス > ロック

データロックは、トランザクションの有効期間中のある時点で設定され、COMMITまたはROLLBACKコマンドが開始されるまで実行されません。ロックは、トランザクション中は解放されません。

例：

begin transaction;
update table set fld1= 1 where fld2= 2
update table set fld1= 3 where fld2= 4

両方のレコードが排他ロックによってロックされます。

commit;

両方のレコードが解放されます。


SQL考慮事項 構成とパフォーマンス ロック トランザクション処理

ロックとトランザクション処理

データ管理 > SQLに関する考慮事項 > 構成とパフォーマンス > ロック

ロックとトランザクション処理は、マルチユーザ環境では非常に重要です。最大限の同時実行性を得るには、オンライントランザクションを短くし、ユーザ処理に影響を与えないようにすることが大切です。

トランザクションは、プログラムレベルまたはシステムレベルで設定可能なMagicタスクのパラメータ設定に基づいて開きます。トランザクションを開き、ロックを強制する方法に影響を及ぼすパラメータには、次のようなものがあります。

  • マルチユーザおよびISAMトランザクションに関するパラメータ。[設定／動作環境]の[マルチユーザ]タブで、[ISAMトランザクション]を「Yes」に設定する必要があります。「Yes」に設定しないとトランザクションは発行されません。

  • テーブルのロックに関するデータベース設定

  • メインソース定義の[アクセス]と[共有モード]特性

  • [タスク特性]ダイアログの[タスクタイプ]特性。（オンライン、バッチ、ブラウザのいずれか。）

  • [タスク特性]ダイアログの[ロック方式]特性

  • [タスク特性]ダイアログの[トランザクションモード]特性

  • [タスク特性]ダイアログの[トランザクション開始]特性

  • [コールタスク]、または[コールプログラム]処理コマンドの[ロック]特性


SQL考慮事項 構成とパフォーマンス ロック アクセス共有

テーブルのアクセスモードと共有モード

データ管理 > SQLに関する考慮事項 > 構成とパフォーマンス > ロック

Magicでは、[メインソース特性]や[リンク特性]で指定したアクセスモードと共有モードの両方を使用してテーブルを開きます。テーブルを開くと、データベースからのテーブル構造の取得やテーブルの有無の確認などの内部タスクが実行されます。Magicロックが使用されている場合、関連する情報がmglockファイルに書き込まれます。

RDBMSを使用している場合は、Open FileコマンドもOpen Tableコマンドもありません。したがって、アクセスモードおよび共有モードは、ほとんど意味がありません。ただし、以下の場合は例外です。

  • 共有モードが「N=なし」の場合、SQLゲートウェイによって、SQLデータベースに[LOCK TABLE]コマンドが送信されます。これは、Oracleでのみ行われます。

  • アクセスモードが「R=読込」、共有モードが「W=書出」で、テーブルがリンクテーブルの場合、ロックが要求されても、リンクテーブルのレコードはロックされません。

  • アクセスモードが「W=書込」の場合は、リンクテーブルも更新されると想定し、リンクテーブルに対してもロックが発行されます。


SQL考慮事項 構成とパフォーマンス ロック 排他共有

排他ロックと共有ロック

データ管理 > SQLに関する考慮事項 > 構成とパフォーマンス > ロック

SQLのロックには、主に2つのレベルがあります。

  • 排他的ロック……UPDATE文が発行されると、自動的に生成されます。

  • 共有ロック……SELECT文によって発行されるか、またはSELECT文の終わりにFOR UPDATE句を追加することによって発行されます。共有ロックは、予定されているレコードの更新を、このロックが解放されてから実行するようにSQLサーバに指示します。レコードを更新しようとしたり、SELECT ... FOR UPDATE文を送信しようとしたりするユーザには、レコードがほかのユーザによってロックされているというエラーメッセージが表示されます。

参照

物理ロック

論理ロック


SQL考慮事項 構成とパフォーマンス ロック 排他共有 物理

物理ロック

データ管理 > SQLに関する考慮事項 > 構成とパフォーマンス > ロック > 排他ロックと共有ロック

SELECT ...FOR UPDATE文は、Oracle、MS-SQL Server、DB2 UDBで使用できます。これらのRDBMSでは、行レベルのロックがサポートされています。したがって、選択したロック方式に基づいてロックが要求されると、Magicは、ゲートウェイにロックを使用して再びレコードを読み取るように指示します。トランザクションが開始されていない場合は、ゲートウェイによって開始されます。その後、ゲートウェイは、FOR UPDATE句を使用して現在のレコードを読み取ります。MS-SQL Serverの場合は、UPDLOCKヒントを使用します。

上記のプロシージャによって、Magic以外のアプリケーションを含むどのアプリケーションでも、トランザクションが完了するまでレコードを更新することはできません。通常は、更新が行われた後、トランザクションが行われます。

例：

現在のレコードを取得します。

SELECT empnum, ename, deptno, rowid
FROM emp
WHERE empnum= 1

Returned values:1 , John, 30,1111

ロックを要求します。

SELECT empnum, ename, deptno, rowid
FROM emp
WHERE empnum= 1111
FOR UPDATE NO WAIT
Returned values:1 , John, 30,1111

deptnoが40に変更されたとします。

UPDATE emp SET deptno= 40
WHERE rowid= 1111

バッチタスクでは、[ロック方式]が「I=即時」に設定されている場合、ゲートウェイは、前もってデータビュー全体をロックすることができます。
Oracleでは、SELECT文にFOR UPDATE句およびORDER BY句を追加して発行することができます。したがって、カーソルがタスクの最初に定義されている場合、FOR UPDATE句を使用して宣言されます。その後、このカーソルから全てのレコードが取得されます。
DB2 UDB は、Oracleのようにプロシージャは使用できません。その代わりに、カーソルがオープンし、各レコードに対してFOR UPDATE句と一緒に他のカーソルがオープンされます。


SQL考慮事項 構成とパフォーマンス ロック 排他共有 論理

論理ロック

データ管理 > SQLに関する考慮事項 > 構成とパフォーマンス > ロック > 排他ロックと共有ロック

MS-SQL Serverでは、論理ロックと物理ロックの両方がサポートされています。論理ロックを使用するには、[データベース特性]ダイアログの[データベース情報]特性で「SQL_PHYSICAL_LOCKING=N」というフラグを指定する必要があります。

ODBCではページレベルのロックのみがサポートされていますが、ページレベルのロックはロックの問題を引き起こす可能性があります。したがって、実際にはレコードがロックされない論理ロック方式が使用されます。この場合、整合性を保つために、レコードが論理的にロックされた時から更新まで、レコードが変更されないことが保証されます。

ロックが要求され、Magicがゲートウェイにロックを使用してレコードを読み取るように指示すると、ゲートウェイはレコードを読み取り、読み取ったレコードの値を保持します。

その後、UPDATE文が[レコード後]で発行されると、全てのカラム、Magicで呼び出されたフィールドがWHERE句に追加されます。

その間、ロックされていないレコードが別のユーザによって変更された場合、ゲートウェイによって、レコードが別のユーザによって変更されたというメッセージが送信され、UPDATEは失敗します。

例：

現在のレコードを取得します。

SELECT empnum, ename, deptno
FROM emp
WHERE empnum= 1
values:1 , John, 30

ロックを要求します。

SELECT empnum, ename, deptno
FROM emp
WHERE empnum= 1
values:1 , John, 30

deptnoが40に変更されたとします。

UPDATE emp SET deptno= 40
WHERE
empnum= 1 AND ename= John' AND deptno= 30

ODBCゲートウェイは、アクセスしたテーブルでレコードロックまたはFOR UPDATE文が使用できることが想定できないため、論理ロック動作を使用します。


SQL考慮事項 構成とパフォーマンス NULL値

NULL値

データ管理 > SQLに関する考慮事項 > 構成とパフォーマンス

NULLは、データが存在しない場合や認識不可能な場合を表します。全てのSQLデータベースでNULL値がサポートされます。NULL値を持つフィールドは、ISAMファイルの空白フィールドとは異なります。NULLは、値が不明であることを意味し、特別な処理が必要です。数値カラムで計算を行う場合、1つ以上の値がNULLであれば、計算結果もNULLになります。文字型フィールドでNULL値を使用できる場合、空白フィールドの全てのレコードを選択しても、文字型フィールドにNULL値を持つレコードは選択されません。

NULL値は、インデックス検索には含まれません。NULL値が許可されているカラムにはインデックスを定義しないよう強くお勧めします。

例えば、

SELECT *
FROM Table1
WHERE Fld1>=4 or Fld1<4

というSELECT文によって、Fld1がNULLであるレコードを除く、Table1の全てのレコードが返ります。

NULLは、データベースごとに異なる順序で表示されます。例えば、OracleとMS-SQL Serverで次のSELECT文を実行すると、それぞれ異なる順序のレコードを受け取ります。

SELECT *
FROM Table1
Order by Fld1 ASC

Oracleでは、NULLは、最も高い値としてデータベースに保存されるので、カラムFld1にNULL値を持つレコードは、このSELECT文の最後のレコードとして表示されます。

一方、MS-SQL Serverでは最も低い値としてデータベースに保存されるので、カラムFld1にNULL値を持つレコードは、このSELECT文の最初のレコードとして表示されます。


SQL考慮事項 構成とパフォーマンス インデックス

インデックスの定義と使用

データ管理 > SQLに関する考慮事項 > 構成とパフォーマンス

応答時間を短縮するには、ほとんどのデータ取得でRDBMSインデックスを使用します。通常、RDBMSがインデックスのうちの1つを使用するのは、SQL文がそのインデックスの1つ以上の最初のセグメントにWHERE句を持っており、要求されたレコードの順序がそのインデックスと一致している場合です。

以下の例は、SQL文が使用するインデックスと、どのような場合にそのインデックスを使用するかを示します。これらの例では、TBL1のフィールドF1、F3、F5にインデックスIN1があり、F3、F4、F5には別のインデックスIN2があるとします。

最初のキーを使用し、FROMとTOに同じ式を使用してF1の範囲を指定し、2つの異なる式を使用してF3の範囲を指定する場合、次の文が発行されます。

例：

SELECT F1, F2, F3, F4, F5
FROM TBL1
WHERE F1= 1
AND F3= 100
AND F3= 200
ORDER BY F1, F3, F5

インデックスIN1は、F1とF3の範囲に使用されます。順序は、インデックスを使用して自動的に決まります。

最初のキーを使用し、FROMとTOに同じ式を使用してF1の範囲を指定し、2つの異なる式を使用してF2の範囲を指定する場合、次の文が発行されます。

例：

SELECT F1, F2, F3, F4, F5
FROM TBL1
WHERE F1= 1
AND F2<= 'x'
AND F2>= 'c'
ORDER BY F1, F3, F5

インデックスIN1は、F1の範囲に使用されます。RDBMSによって、F1= 1の全てのレコードが検索されます。そのうち、F2がc からx のレコードのみが結果テーブルに抽出されます。順序は、インデックスを使用して自動的に決まります。

最初のキーを使用し、FROMとTOに異なる式を使用してＦ１の範囲を指定し、2つの異なる式を使用してF3の範囲を指定する場合、次の文が発行されます。

例：

SELECT F1, F2, F3, F4, F5
FROM tbl1
WHERE F1>= 1
AND F1 <= 10
AND F3>= 100
AND F3<= 200
ORDER BY F1, F3, F5

インデックスIN1は、F1の範囲に使用されます。RDBMSによって、F1が1から10の全てのレコードが検索され、F3の範囲と比較されます。F3の範囲には、インデックスが使用されません。前のセグメントの範囲が単一の値でないためです。順序は、インデックスを使用して使用して自動的に決まります。

1つの式を使用してF1の範囲を指定し、2つの異なる式を使用してF3の範囲を指定し、2番めのキーを使用する場合、次の文が発行されます。

例：

SELECT F1, F2, F3, F4, F5
FROM TBL1
WHERE F1= 1
AND F3>= 100
AND F3<= 200
ORDER BY F3, F4, F5

インデックスIN1は、F1とF3の範囲に使用されます。RDBMSは、結果テーブルをソートすることでクエリ結果を並べます。2番めのインデックスを使用して、要求された順序を提供することはできません。最初のインデックスが範囲に使用されるからです。ソートを使用すると、結果テーブルのみがソートされるので、比較的高速です。結果テーブルがほとんどの場合、小さいためです。

注意：

インデックスは、データベースのスペースを消費し、データベースでレコードの挿入、更新、削除を行う際に時間がかかります。極端な場合、インデックスによってSELECT文のパフォーマンスが低下することがあります。

例えば、テーブルのデータがディスク容量の1ブロック以下の場合（通常のテーブルには、数千のレコードがあります）、SELECT文は十分に動作しません。インデックスを使用してテーブルにアクセスする場合、RDBMSは、実際には、インデックスの入出力とデータの入出力という2つの入出力を実行します。1つの入出力でメモリに読み込まれた1つのブロックで全テーブルのスキャンを実行すると、速くなります。メモリアクセスは常にディスクの入出力より速いためです。クエリで選択された全てのカラムがインデックス内にある場合、RDBMSはインデックスのみにアクセスし、データにはアクセスしません。これは、カバーインデックスクエリと呼ばれます。
しかし、ほとんどの場合、インデックスによってアプリケーションのスピードは向上します。


SQL考慮事項 構成とパフォーマンス 範囲

範囲の定義

データ管理 > SQLに関する考慮事項 > 構成とパフォーマンス

リレーショナルデータベースで大きいテーブルを参照する場合、範囲を使用して、ビュー内のレコード数を減らすことが重要です。範囲を使用しないでテーブルにアクセスすると、操作に長時間を要することがあります。特に位置付けやページアップなどの操作には時間がかかります。パフォーマンスを向上させるには、範囲は1つのインデックスのセグメントに指定します。

Magicでは、以下の4つの箇所から範囲を指定することができます。

  • Magic の項目定義の[範囲]特性……項目定義の[範囲]特性で指定した全ての範囲は、SELECT文の一部になります。その後、一連の検索中であっても、範囲はRDBMSおよびWHERE句によって処理されます。Magicは、クエリに一致したレコードのみを受け取ります。

  • タスクレベルの範囲式……タスクレベルの範囲式を使用すると、Magicによって、データベースから返された各レコードが式と比較され、レコードをビューの一部とするかどうかが決定されます。Magicは全てのレコードを受け取り、フィルタリングを実行します。

  • DB SQL範囲……データベースにそのまま送信されるWHERE句に連結されるフリーテキスト。これは、物理トランザクションモードのタスクでのみ実行されます。固有のデータベース構文を理解している必要があります。

  • Magic SQL範囲……データベースごとに適切な構文に変換されるMagicの式。これは、データベースに送信されるWHERE句に追加されます。固有のデータベース構文を理解していなくてもかまいません。

これら４つのオプションの動作は、まったく異なります。できるだけデータベースに送信できる箇所で、範囲を設定することをお勧めします。タスクレベルの範囲では、他で指定できない範囲条件のみ設定してください。


SQL考慮事項 構成とパフォーマンス ソート

ソート

データ管理 > SQLに関する考慮事項 > 構成とパフォーマンス

Magicの内部ソートは、パフォーマンスに大きく影響します。そのためデータのソートはRDBMSに指示し、その順序でMagicにレコードを取り込むことが、最善の方法です。これは、RDBMSのソート機能を使用して行われます。


SQL考慮事項 構成とパフォーマンス ストアドプロシジャ

ストアドプロシジャ

データ管理 > SQLに関する考慮事項 > 構成とパフォーマンス

ストアドプロシジャは、アプリケーションロジックの一部をサーバで実行するための強力な方法です。ストアドプロシジャは、SQLコマンドタスクを使用して、Magicから呼び出すことができます。

ストアドプロシジャの構文はデータベースによって異なります。したがって、この機能を使用するか、アプリケーションの移植性を優先するかを選択しなければなりません。


SQL考慮事項 構成とパフォーマンス ネットワークトラフィックの軽減

ネットワークトラフィックを軽減する

データ管理 > SQLに関する考慮事項 > 構成とパフォーマンス

ネットワークトラフィックの軽減は、パフォーマンスを向上させるための最善の方法です。ネットワークトラフィックを軽減するには、以下のガイドラインに従います。

  • 実際に必要なフィールドのみをレコードから選択します。選択したフィールドのみがデータベースから取得されます。

  • タスクの範囲ではなく、データベースに送信できる範囲を使用します。

  • [照会リンク]コマンドではなく、[結合／外部リンク]コマンドを使用します。

  • 可能な場合、リンクではなくRDBMSが提供するビューの機能を使用します。

テーブルを結合する場合、単純なテーブルの代わりにRDBMSビューを使用すると、パフォーマンスが向上します。Magicの[リンク]コマンドは、リンクテーブルごとに異なるSELECT文をデータベースに発行することで実行されます。バッチタスクをより効果的に実行するには、メインソースとリンクテーブルを結合するビューを使用するか、または[照会リンク]コマンドの代わりに[結合／外部リンク]コマンドを使用します。これにより、データベースによって結合が実行されます。

MagicとRDBMSでは、ビューという用語の意味が異なります。

  • Magicでは、ビューとは、メインソースから選択された項目とリンクテーブルから選択された項目、およびこれらの実項目の計算用に使用する変数項目を意味します。

  • SQLデータベースでは、ビューとは、内部のデータディクショナリに保存され、テーブルとして使用されるために事前に定義されたSELECT文を指します。ビュー定義では、複数のテーブルの結合、グループ関数の使用、およびテーブル内のレコードの一部を選択するためのWHERE句の使用などが可能です。

例：

10,000のレコードがあるメインソースと3つのリンクテーブルを使用するタスクがあるとします。通常の方法（[照会リンク]コマンド）で処理すると、タスクで開いたSELECTカーソル数は次のようになります。

1 + 3* 10,000 = 30,001

[結合／外部結合リンク]コマンドを[照会リンク]コマンドの代わりに使用する場合、そのタスクで実行するSELECT文の数は1になります。

データベースでDBビューを定義した場合は、タスクによって実行されるSELECT文の数は1になります。

ビューの更新は、データベースの制限によって実行できないこともあります。


SQL考慮事項 構成とパフォーマンス 照会モード位置付け

照会モード位置付け

データ管理 > SQLに関する考慮事項 > 構成とパフォーマンス

照会モード位置付けを使用すると、文字を入力するたびに、タスクの全てのSELECT文が再発行されます。アプリケーションの中では、照会モード位置付けを使用しないようお勧めします。

参照

インクリメンタルサーチ


SQL考慮事項 構成とパフォーマンス SQLコマンド

SQLコマンド

データ管理 > SQLに関する考慮事項 > 構成とパフォーマンス

SQLコマンドは、通常のMagicのプログラミングでは使用されないRDBMS機能を使用することで、パフォーマンスを向上させます。

テーブルの行に対するグローバルな更新やテーブルの行のグローバルな削除がよい例です。クライアント／サーバ環境で作業している場合、過剰なネットワークトラフィックを防ぐには、グローバルな文を使用することが特に重要です。

別の例として、SUM、MAX、AVGなどのグループ関数の使用があります。レコードをカウントする場合、SQLコマンドタスクでSELECT COUNT（*）を使用すると、カウントするためだけにレコードを読み込むよりも効率的です。


SQL考慮事項 構成とパフォーマンス 文字列日付

文字列日付の割付

データ管理 > SQLに関する考慮事項 > 構成とパフォーマンス

Magicはデータベース上にMagicの文字列日付のカラムを CHAR に割り付けます。もし、Date 型に割り当てる必要がある場合は（Oracleでは、 DATE、MS-SQL server では、 DATETIME） カラムの[タイプ]特性に 「MGTIME」と指定してください。


SQL考慮事項 構成とパフォーマンス サポートされるパラメータ

SQLゲートウェイでサポートされるパラメータ

データ管理 > SQLに関する考慮事項 > 構成とパフォーマンス

MagicでサポートするQLゲートウェイに関するパラメータは、以下のトピックで説明しています。

参照

DBMS

データベース

データソース

インデックス

カラム


SQL考慮事項 構成とパフォーマンス サポートされるパラメータ DBMS

DBMS

データ管理 > SQLに関する考慮事項 > 構成とパフォーマンス > サポートされるパラメータ

次の表は、[DBMS特性]についてサポートされるSQL特性です。

特性 | タイプ | デフォルト | 適用可能なゲートウェイ
最大接続数 | 数値型 | 3 | MS-SQL Server
分離レベル | 数値型 | 0 1 | MS-SQL Server DB2 UDB
テーブルの存在チェック | Yes/No | No | 全て


SQL考慮事項 構成とパフォーマンス サポートされるパラメータ データベース

データベース

データ管理 > SQLに関する考慮事項 > 構成とパフォーマンス > サポートされるパラメータ

次の表は、[データベース特性]についてサポートされるSQL特性です。

特性 | タイプ | デフォルト | 適用可能なゲートウェイ
テーブルの存在チェック | Yes/No | No | 全て
ヒント | 文字型 255 | N/A | Oracle MS-SQL Server
配列のサイズ | 数値型 | 0 | Oracle MS-SQL Server DB2 UDB
接続文字列 | 文字型 255 | N/A | Oracle


SQL考慮事項 構成とパフォーマンス サポートされるパラメータ テーブル

データソース

データ管理 > SQLに関する考慮事項 > 構成とパフォーマンス > サポートされるパラメータ

次の表は、[データソース特性]についてサポートされるSQL特性です。

特性 | タイプ | デフォルト | 適用可能なゲートウェイ
オーナ名 | 文字型 | N/A | 全て
位置 | デフォルト/重複不可インデックス/RowID | デフォルト | 全て
インデックス | 重複不可インデックス番号 | なし | 全て
テーブルの存在チェック | Yes/No/データベース依存 | データベース依存 | 全て
テーブルの タイプ | テーブル/ビュー | テーブル | 全て
ヒント フラグ | Yes/No | Yes | Oracle MS-SQL Server
ヒント | 文字型255 | N/A | Oracle MS-SQL Server
カーソル | デフォルト/Yes/No | デフォルト | MS-SQL Server
配列のサイズ | 数値型4 | N/A | Oracle MS-SQL Server DB2 UDB


SQL考慮事項 構成とパフォーマンス サポートされるパラメータ インデックス

インデックス

データ管理 > SQLに関する考慮事項 > 構成とパフォーマンス > サポートされるパラメータ

次の表は、[インデックス特性]についてサポートされるSQL特性です。

特性 | タイプ | デフォルト | 適用可能なゲートウェイ
クラスタ化 | Yes/No | No | MS-SQL Server
ヒント | 文字型255 | N/A | Oracle MS-SQL Server
再作成 | Yes/No | No | 全て


SQL考慮事項 構成とパフォーマンス サポートされるパラメータ カラム

カラム

データ管理 > SQLに関する考慮事項 > 構成とパフォーマンス > サポートされるパラメータ

次の表は、[カラム特性]についてサポートされるSQL特性です。

特性 | タイプ | デフォルト | 適用可能なゲートウェイ
タイプ | 文字型255 | N/A | 全て
ユーザタイプ | 文字型255 | N/A | MS-SQL Server DB2 UDB


SQL考慮事項 SQLDB

Magic SQL データベース

データ管理 > SQLに関する考慮事項

MagicのSQL系データベースゲートウェイについては、以下のトピックを参照してください。

Oracleデータベースゲートウェイ

MS-SQL Server データベースゲートウェイ

DB2 UDBデータベースゲートウェイ

ODBC データベースゲートウェイ


SQL考慮事項 SQLDB ORACLE

Oracleデータベースゲートウェイ

データ管理 > SQLに関する考慮事項 > Magic SQL データベース

Oracleデータベースと接続する際のMagicの機能については、以下のトピックを参照してください。

Magicのデータタイプ

Oracleのデータタイプ

ヒント

データベース情報

テーブルのロック

物理ロック

ビュー

一意の識別子

NLSSORTのサポート

ストアドプロシジャ


SQL考慮事項 SQLDB ORACLE Magicデータタイプ

Magicのデータタイプ

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Oracleデータベースゲートウェイ

Magicのデータ型とサポートされる保存タイプ、およびOracleで有効なデータ型の詳細については、以下のトピックを参照してください。

文字型

数値型

論理型

日付型

時刻型

BLOB型

Unicode型


SQL考慮事項 SQLDB ORACLE Magicデータタイプ 文字

文字型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Oracleデータベースゲートウェイ > Magicのデータタイプ

次の表は、Magicの文字型と有効なOracleのデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの記憶型式 | Magicの書式 | Magicの保存サイズ | Oracleのデータタイプ
String | n,1-4000 | n,1-4000 | VARCHAR2
 | n, 4001-32700 | n, 4001-32700 | CLOB
Lstring | n, 1-255 | n+1, 2-256 | VARCHAR2
Zstring | n, 1-4000 | n+1, 2-4001 | VARCHAR2
 | n, 4001-32700 | n+1, 4002-32701 | CLOB
String Memo | n, 1-1998 | n+2 | RAW
Magic Memo | n, 1999 and above | n+2 | LONG RAW

注意：

nは、指定された書式番号です。


SQL考慮事項 SQLDB ORACLE Magicデータタイプ 数値

数値型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Oracleデータベースゲートウェイ > Magicのデータタイプ

次の表は、Magicの数値型と有効なOracleのデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの記憶型式 | Magicの書式 | Magicの 保存サイズ | Oracleの データタイプ
Signed Integer | n,1-4 | 2 | NUMBER
 | n, 5-9 | 4 | NUMBER
Unsigned Integer | n, 1-2 | 1 | NUMBER
 | n, 3-4 | 2 | NUMBER
 | n, 5-9 | 4 | NUMBER
Float | n, 1-7 | 4 | NUMBER
 | n, 8-16 | 8 | NUMBER
Float MS-Basic | n, 1-7 | 4 | RAW
 | n, 8-16 | 8 | RAW
Float Decimal | n, 1-7 | 4 | RAW
 | n, 8-16 | 8 | RAW
Packed Decimal | n, 1-10 | 2*n-1 | RAW
Numeric | n ,1-18 | n | RAW
Character Number | n, 1-18 | n-1 | RAW
String Number | n, 1-19 1 | n+1 | NUMBER
Magic Number | n, 1-18 | n/2+1 1 | RAW
C-Isam Decimal | n, 1-32 | n/2+1 1 | RAW
Extended Float | n, 1-15 | 8 | RAW

注意：

  • nは、指定された書式番号です。

  • Magicでは、18桁までの数字がサポートされます。


SQL考慮事項 SQLDB ORACLE Magicデータタイプ 論理

論理型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Oracleデータベースゲートウェイ > Magicのデータタイプ

次の表は、Magicの論理型と有効なOracleのデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの記憶型式 | Magicの書式 | Magicの 保存サイズ | Oracleの データタイプ
Integer Logical | 5 | 1 | NUMBER
 | 5 | 2 | RAW
String Logical | 5 | 1 | RAW


SQL考慮事項 SQLDB ORACLE Magicデータタイプ 日付

日付型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Oracleデータベースゲートウェイ > Magicのデータタイプ

次の表は、Magicの日付型と有効なOracleのデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの記憶型式 | Magicの書式 | Magicの 保存サイズ | Oracleの データタイプ
String Date | ####/##/## | 8 | DATE (*1)
Integer Date | ####/##/## | 4 | NUMBER
Integer Date 1901 | ####/##/## | 4 | NUMBER
YYMMDD Date | ####/##/## | 4 | RAW
Magic Date | ####/##/## | 4 | RAW
Magic Date 1901 | ####/##/## | 4 | RAW

注意：

MagicのString DateをOracleのCHARにマップするには、[タイプ]特性でCHAR（8）を指定します。


SQL考慮事項 SQLDB ORACLE Magicデータタイプ 時刻

時刻型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Oracleデータベースゲートウェイ > Magicのデータタイプ

次の表は、Magicの時刻型と有効なOracleのデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの記憶型式 | Magicの書式 | Magicの 保存サイズ | Oracleの データタイプ
String Time | HH:MM:SS | 6 | CHAR
Integer Time | HH:MM:SS | 4 | NUMBER
HMSH Time | HH:MM:SS | 4 | NUMBER
Magic Time | HH:MM:SS | 4 | RAW

注意：

MagicのString TimeをOracleのDATEデータ型にマップするには、[タイプ]特性に「MGTIME」を指定することもできます。


SQL考慮事項 SQLDB ORACLE Magicデータタイプ BLOB

BLOB型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Oracleデータベースゲートウェイ > Magicのデータタイプ

次の表は、MagicのBLOB型と有効なOracleのデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの記憶型式 | Magicの書式 | Magicの 保存サイズ | Oracleの データタイプ
BLOB Binary |  |  | BLOB
BLOB Ansi |  |  | CLOB
BLOB Unicode |  |  | NCLOB


SQL考慮事項 SQLDB ORACLE Magicデータタイプ Unicode

Unicode型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Oracleデータベースゲートウェイ > Magicのデータタイプ

次の表は、MagicのUnicode型と有効なOracleのデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの記憶型式 | Magicの書式 | Magicの保存サイズ | Oracleのデータタイプ
ZUnicode | n,1-2000 >2000 | n*2+2 | NVARCHAR2 NCLOB
Unicode | n,1-2000 >2000 | n*2 | NVARCHAR2 NCLOB


SQL考慮事項 SQLDB ORACLE Oracleデータタイプ

Oracleのデータタイプ

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Oracleデータベースゲートウェイ

次の表は、Oracleテーブルに対するMagicの[定義取得]の結果、Oracleデータベースのデータタイプに対応するMagicのデータタイプの一覧です。

Oracleの データタイプ | 型 | Magicの 保存タイプ | 保存サイズ | 書式
CHAR(n) VARCHAR2(n) | 文字型 | Zstring | n+1,2-4001 | n,1-4000
LONG(*1) | 文字型 | Zstring | デフォルト(1) | デフォルト(0)
LONG RAW(*2) | BLOB型 | Binary Large Object | デフォルト(12) |
RAW (n) | 文字型 | String | n, 1-2000 | n, 1-2000
NUMBER | 数値型 | Float | 8 | 4.3
NUMBER (p,s) | 数値型 | Float | 8 | p-s,s
NUMBER (p) | 数値型 | Float | 8 | p
DATE | 日付型 | String Date | 8 | DD/MM/YY YY
ROWID | 文字型 | Zstring | 19 | 18
NVARCHAR2 | Unicode型 | ZUnicode | n*2+2 | n,1-2000
NCHAR | Unicode型 | ZUnicode | n*2+2 | n,1-2000
CLOB | BLOB型 | Ansi |  |
BLOB | BLOB型 | Binary |  |
NCLOB | BLOB型 | Unicode |  |

注意：

*1)テーブルの定義を取得したら、LONGおよびLONG RAWデータタイプカラムの書式を、アプリケーションに適したサイズに設定する必要があります。

*2)デフォルトでは、OracleのDATEデータタイプは、Magicの日付型保存タイプにマップされます。DATEカラムの全ての部分を「YYYY/MM/DD HH:MM:SS.mmm」形式で表示するには、OracleのDATEデータタイプをMagicの文字型にマップする必要があります。これは[DBMS]特性の[データベース情報]特性で「SQL_DATEALPHA=Y」を指定して実行できます。


SQL考慮事項 SQLDB ORACLE ヒント

ヒント

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Oracleデータベースゲートウェイ

ヒント文字列を使用すると、開発者は、チェックなしでそのままSELECT文に追加することができるハードコードされた文字列を指定することができます。ヒントの構文は次のとおりです。

/*+ Oracle Hint */

最適化ヒントは、特殊な場合にのみ使用するようお勧めします。Oracleに送信することができる最適化ヒントの完全な一覧については、Oracleのマニュアルを参照してください。


SQL考慮事項 SQLDB ORACLE DB情報

データベース情報

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Oracleデータベースゲートウェイ

[DBMS]テーブルの[パラメータ]カラムや、[データベース特性]、[データソース特性]、[カラム特性]、および[インデックス特性]の[SQLデータベース情報]特性を使用すると、MagicからDBMSにデータベース依存の情報を渡すことができます。このパラメータの使用は任意です。[データベース情報]特性によって渡すことができる値については、次のトピックを参照してください。

参照

データベース特性

データソース特性

インデックス特性


SQL考慮事項 SQLDB ORACLE DB情報 データベース特性

DBMS特性

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Oracleデータベースゲートウェイ > データベース情報

SQL_DATETOALPHA=Y

SQL_DATETOALPHA=Yを設定すると、定義取得の際にRDBMSのDATE型カラムが、長さ19文字、YYYY- MM- DD HH: MM: SS形式のMagicの文字型（Zstring）カラムに自動的に変換されます。

注意：

RDBMSでDATE型であっても、Magicは文字型として処理するため、日付型としてのデータの検証を行うことはできません。SQL_ DATETOALPHAパラメータを使用する場合、INSERTおよびUPDATE操作の妥当性検査をユーザが独自に制御する必要があります。行わない場合には、データベースに無効な日付が挿入される可能性があります。

NLSSORT= Y

NLSSORTのサポート機能を使用すると、アプリケーションはアルファベットの規則に準拠する文字列を突き合わせることができます。

CHECK_KEY=Y

インデックスチェックが有効になります。

注意：

インデックスの重複エラーになるとトランザクションの破棄を行うため、トランザクション開始時まで処理が戻ります。タスクレベルのトランザクションでは、タスクレベルまで破棄されます。

参照

NLSSORTのサポート


SQL考慮事項 SQLDB ORACLE DB情報 データソース特性

データソース特性

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Oracleデータベースゲートウェイ > データベース情報

Oracleでテーブルを作成している場合、[データソース特性]の[SQLデータベース情報]特性で以下のパラメータを指定することができます。

CLUSTER=cluster-name

表がクラスタの一部となるように指定します。なお、クラスタ名の後に(列名)を入れないと「新規登録できません」のエラーになります。 例．CLUSTER="TMP_USR(TMP_ID)" INITRANS=n 表に割り当てられた各データ・ブロック内で割り当てられるトランザクション・エントリの初期値を指定します。

MAXTRANS=n

表に割り当てられたデータ・ブロックを同時に更新することができるトランザクションの最大値を指定します。

PCTFREE=n

表の行に対する次回の更新に備えて、予約(確保)されている各表のデータ・ブロック中の領域の占有率を指定します。

PCTUSED=n

表の各データ・ブロックに対してOracleがメンテナンスしている使用中の領域の最小限の占有率を指定します。

STORAGE="strage-clause"

表に対する記憶特性を指定します。

TABLESPACE="tablespace-name"

Oracleがテーブルを作る表領域を示します。


SQL考慮事項 SQLDB ORACLE DB情報 インデックス特性

インデックス特性

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Oracleデータベースゲートウェイ > データベース情報

Oracleでテーブルを作成している場合、[インデックス特性]の[SQLデータベース情報]特性で以下のパラメータを指定することができます。

INITRANS=n

インデックスに割り当てられた各データ・ブロック内で割り当てられるトランザクション・エントリの初期値を指定します。

MAXTRANS=n

インデックスに割り当てられたデータ・ブロックを同時に更新することができるトランザクションの最大値を指定します。

PCTFREE=n

インデックスの行に対する次回の更新に備えて、予約(確保)されている各表のデータ・ブロック中の領域の占有率を指定します。

PCTUSED=n

インデックスの各データ・ブロックに対してOracleがメンテナンスしている使用中の領域の最小限の占有率を指定します。

STORAGE="strage-clause"

インデックスに対する記憶特性を指定します。

TABLESPACE="tablespace-name"

Oracleがインデックスを作る表領域を示します。


SQL考慮事項 SQLDB ORACLE テーブルロック

テーブルのロック

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Oracleデータベースゲートウェイ

テーブルのロックは、Magicトランザクション内でのみ使用可能です。トランザクション外でロックの要求が発行された場合は、無視されます。

また、共有モードが「N=なし」の場合は[排他モード]のテーブルロックを行い、共有モードが「R=読込」の場合は[共有モード]のテーブルロックを行います。


SQL考慮事項 SQLDB ORACLE 物理ロック

物理ロック

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Oracleデータベースゲートウェイ

物理ロックは、現在ロックされているレコードをどのユーザも修正できないようにする方法です。つまり、ユーザがレコードをロックした時から、そのユーザがレコードを解放するまで、別のユーザはそのレコードを修正することができません。物理ロックは、次のように実行されます。Magicのロック方式に基づいてレコードがロックされると、SELECT文がFOR UPDATE句とともに発行されます。

FOR UPDATE句によって、トランザクションが完了するまで、ほかのアプリケーションでそのレコードを変更することができなくなります。


SQL考慮事項 SQLDB ORACLE ビュー

ビュー

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Oracleデータベースゲートウェイ

ビューには、仮想のユニークインデックスを定義する必要があります。ビューではINSERT、UPDATEおよびDELETE操作を使用することができますが、ビューにROWIDがある場合のみです。複数のテーブルに定義されているビューにはROWIDはありません。したがって、[データソース特性]の[SQL]セクションの[位置]特性は、「D=デフォルト」または「R=ROWID」でなく、「U=重複不可インデックス」に設定する必要があります。

注意：

Magicでは、ビューは通常のテーブルと見なされます。Magicを使用して名前の変更または変換操作は実行できません。このような操作を実行した場合、エラーメッセージが表示され、データベース内のビューの変換や名前の変更は行われません。


SQL考慮事項 SQLDB ORACLE 一意の識別子

一意の識別子

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Oracleデータベースゲートウェイ

Magicで開かれる各テーブルには、一意の行識別子が必要です。Magicでは、可能な限り、一意の識別子としてOracleのROWIDが使用されます。データビューが複数のOracleデータベーステーブルのフィールドから作成されている場合は、OracleのROWIDがないので、一意のインデックスを入力する必要があります。このインデックスは仮想インデックスでもかまいません。


SQL考慮事項 SQLDB ORACLE NLSSORT

NLSSORTのサポート

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Oracleデータベースゲートウェイ

NLSSORTのサポート機能を使用すると、アプリケーションはアルファベットの規則に準拠する文字列を突き合わせることができます。通常、WHERE句内の文字列は、文字のバイナリ値を使用して比較されます。

WHERE句内でNLSSORTのサポート機能を使用すると、ユーザが外国語のOracleクライアントで作業している際に、ユーザの本来の言語でアルファベット順にデータを並べ替えることができます。

この機能を使用するには、データベーステーブルで[データベース特性]の[SQL]タブの[データベース情報]特性に次のフラグを追加します。

NLSSORT= Y

このフラグによって、次のように、Magicがデータベースに送信する全てのWHERE句にNLSSORT関数が追加されます。

NLSSORT （value) comparison_ operator NLSSORT（column)

例えば、次のようになります。

NLSSORT（'A'）=NLSSORT（FLD1）

注意：

このフラグを使用すると、パフォーマンスに関する問題が発生する可能性があります。また、OracleのMagicデータベースゲートウェイで大文字と小文字が区別されなくなります。


SQL考慮事項 SQLDB ORACLE ストアドプロシジャ

ストアドプロシジャ

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Oracleデータベースゲートウェイ

INOUTまたはOUTパラメータがないプロシージャは、PL/ SQLブロックとして呼び出す必要があります。

begin procname （par1 int, par2 int）; end;

プロシージャに複数のパラメータを使用することができる場合、パラメータをカンマで区切ります。OracleパラメータがINOUTまたはOUTでない場合は、APGボタンを選択してからプロシージャを実行する必要があります。ストアドプロシジャにはOUTパラメータを入力しないでください。代わりに、プレイスホルダとしてカンマを使用します。プロシージャの終わりに句読点を追加しないでください。


SQL考慮事項 SQLDB MS-SQL

MS-SQL Server データベースゲートウェイ

データ管理 > SQLに関する考慮事項 > Magic SQL データベース

MS-SQL Serverデータベースと接続する際のMagicの機能については、以下のトピックを参照してください。

Magicのデータタイプ

MS-SQL Serverのデータタイプ

TEXTデータタイプ

物理ロック

ヒント

IDENTITYカラム

ビュー

一時テーブル

カーソルとDBコマンド

データベース情報


SQL考慮事項 SQLDB MS-SQL Magicデータタイプ

Magicのデータタイプ

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MS-SQL Server データベースゲートウェイ

Magicのデータ型とサポートされる保存タイプ、およびMS-SQL Serverで有効なデータタイプの詳細については、以下のトピックを参照してください。

文字型

数値型

論理型

日付型

時刻型

BLOB型

Unicode型


SQL考慮事項 SQLDB MS-SQL Magicデータタイプ 文字

文字型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MS-SQL Server データベースゲートウェイ > Magicのデータタイプ

次の表は、Magicの文字型とMS-SQL Serverで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]タブの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの記憶型式 | Magicの書式 | Magicの保存サイズ | MS-SQL Serverの データタイプ
String | n,1-8000 | n,1-8000 | CHAR
 | n, 8001-32700 | n, 8001-32700 | TEXT
Lstring | n, 1-255 | n+1, 2-256 | BINARY
Zstring | n, 1-8000 | n+1, 2-8001 | CHAR
 | n, 8001-32700 | n+1, 8002-32701 | TEXT
String Memo | n, 1-7998 | n+2 | VARBINARY
Magic Memo | n, 7999 and above | n+2 | IMAGE

注意：

nは、指定された書式番号です。


SQL考慮事項 SQLDB MS-SQL Magicデータタイプ 数値

数値型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MS-SQL Server データベースゲートウェイ > Magicのデータタイプ

以下の表は、Magicの数値型とMS-SQL Serverで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]タブの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの 記憶型式 | Magicの書式 | Magicの 保存サイズ | MS-SQL Serverの データタイプ
Signed Integer | n,1-4 | 2 | SMALLINT
 | n, 5-9 | 4 | INTEGER
Unsigned Integer | n, 1-2 | 1 | BINARY
 | n, 3-4 | 2 | BINARY
 | n, 5-9 | 4 | BINARY
Float | n, 1-7 | 4 | REAL
 | n, 8-16 | 8 | DOUBLE PRECISION
Float MS-Basic | n, 1-7 | 4 | BINARY
 | n, 8-16 | 8 | BINARY
Float Decimal | n, 1-7 | 4 | BINARY
 | n, 8-16 | 8 | BINARY
Packed Decimal | n, 1-10 | 2*n-1 | BINARY
Numeric | n ,1-18 | n | BINARY
Character Number | n, 1-18 | n-1 | BINARY
String Number | n, 1-19 (*1) | n+1 | BINARY
Magic Number | n, 1-18 | n/2+1 | BINARY
C-Isam Decimal | n, 1-32 | n/2+1 | BINARY
Extended Float | n, 1-15 | 8 | BINARY

注意：

  • nは、指定された書式番号です。

  • Magicでは、18桁までの数字がサポートされます。


SQL考慮事項 SQLDB MS-SQL Magicデータタイプ 論理

論理型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MS-SQL Server データベースゲートウェイ > Magicのデータタイプ

次の表は、Magicの論理型とMS-SQL Serverで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]タブの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの 記憶型式 | Magicの書式 | Magicの 保存サイズ | MS-SQL Serverの データタイプ
Integer Logical | 5 | 1 | BIT
 | 5 | 2 | SMALLINT
String Logical | 5 | 1 | BINARY


SQL考慮事項 SQLDB MS-SQL Magicデータタイプ 日付

日付型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MS-SQL Server データベースゲートウェイ > Magicのデータタイプ

次の表は、Magicの日付型とMS-SQL Serverで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]タブの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの 記憶型式 | Magicの書式 | Magicの 保存サイズ | MS-SQL Serverの データタイプ
String Date | ####/##/## | 8 | DATETIME (*1)
Integer Date | ####/##/## | 4 | INTEGER
Integer Date 1901 | ####/##/## | 4 | INTEGER
YYMMDD Date | ####/##/## | 4 | BINARY
Magic Date | ####/##/## | 4 | BINARY
Magic Date 1901 | ####/##/## | 4 | BINARY

注意：

*1：MagicのString DateをMS-SQL ServerのCHARにマップするには、[タイプ]特性にCHAR（8）を指定します。


SQL考慮事項 SQLDB MS-SQL Magicデータタイプ 時刻

時刻型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MS-SQL Server データベースゲートウェイ > Magicのデータタイプ

次の表は、Magicの時刻型とMS-SQL Serverで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]タブの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの 記憶型式 | Magicの書式 | Magicの 保存サイズ | MS-SQL Serverの データタイプ
String Time | HH:MM:SS | 6 | CHAR
Integer Time | HH:MM:SS | 4 | INTEGER
HMSH Time | HH:MM:SS | 4 | BINARY
Magic Time | HH:MM:SS | 4 | BINARY

注意：

MagicのString TimeをMS-SQL ServerのDATETIMEデータ型にマップするには、[タイプ]特性に「MGTIME」を指定します。


SQL考慮事項 SQLDB MS-SQL Magicデータタイプ BLOB

BLOB型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MS-SQL Server データベースゲートウェイ > Magicのデータタイプ

次の表は、MagicのBLOB型とMS-SQL Serverで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]タブの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの記憶型式 | Magicの 書式 | Magicの 保存サイズ | MS-SQL Serverの データタイプ
Binary Large Object |  | 12（デフォルト） | IMAGE


SQL考慮事項 SQLDB MS-SQL Magicデータタイプ Unicode

Unicode型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MS-SQL Server データベースゲートウェイ > Magicのデータタイプ

次の表は、MagicのUnicode型とMS-SQL Serverで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]タブの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの記憶型式 | Magicの書式 | Magicの保存サイズ | MS-SQL Serverの データタイプ
ZUnicode | n,1-4000 >4000 | n*2+2 | nVARCHAR nTEXT
Unicode | n,1-4000 >4000 | n*2 | nVARCHAR nTEXT


SQL考慮事項 SQLDB MS-SQL MS-SQLデータタイプ

MS-SQL Serverのデータタイプ

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MS-SQL Server データベースゲートウェイ

次の表は、MS-SQL Serverテーブルに対するMagicの[定義取得]処理コマンドの結果の一覧です。また、Microsoft SQL Serverのデータタイプに対応するMagicのデータタイプも示します。

MS-SQL Serverのデータタイプ | 型 | Magicの保存タイプ | 保存サイズ | 書式
CHAR(n), VARCHAR(n) | 文字型 | Zstring | n+1, 2- 8001 | n, 1-8000
UNIQUEIDENTIFER | 文字型 | Zstring | 39 | 38
 | データソースの位置を「U=重複不可インデックス」に設定した場合、データベースのデフォルト値としてnewid()を指定する必要があります。 初期値が指定されているユニークIDを使用する場合は、[デフォルト値]特性でこの値を指定する必要があります。 両方の場合は、SQLタイプをUNIQUEIDENTIFIERと設定する必要があります。
VARCHAR(max) - for MSSQL 2005 | BLOB型 | Ansi |  |
TEXT | BLOB型 | Ansi |  |
n TEXT | BLOB型 | Unicode |  |
INTEGER | 数値型 | Signed Integer | 4 | 10
SMALLINT | 数値型 | Signed Integer | 2 | 5
TINYINT | 数値型 | Unsigned Integer | 1 | 3
NUMERIC(p, s) | 数値型 | Float | 8 | p-s, s
DECIMAL(p, s) | 数値型 | Float | 8 | p-s, s
DOUBLE PRECISION | 数値型 | Float | 8 | [DBMS特性]の[浮動小数点]特性に基づく（デフォルト10,3）
FLOAT, REAL | 数値型 | Float | 4 | 5.2
MONEY | 数値型 | Float | 8 | [DBMS特性]の[浮動小数点]特性に基づく（デフォルト10,3）
SMALLMONEY | 数値型 | Float | 4 | 5.2
DATETIME | 日付型 | String Date | 8 | ##/##/####
SMALLDATETIME | 日付型 | String Date | 8 | ##/##/####
BINARY( n) | 文字型 | String | n, 1- 8000 | n, 1-8000
VARBINARY( n) | BLOB型 | Binary |  |
VARBINARY(max) - for MSSQL 2005 | BLOB型 | Binary |  |
XML | BLOB型 | Ansi |  |
IMAGE | BLOB型 | Binary Large Object | デフォルト (12) |
BIT | 論理型 | Integer Logical | 1 | 5
TIMESTAMP | 文字型 | String | 8 | 8
nCHAR | Unicode型 | ZUnicode | n*2+2 | 1-4000
nVARCHAR | Unicode型 | ZUnicode | n*2+2 | 1-4000
nVARCHAR(max) - for MSSQL 2005 | BLOB型 | Unicode |  |

注意：

デフォルトでは、MS-SQL ServerのDATETIMEおよびSMALLDATETIMEデータ型は、Magicの日付型保存タイプにマップされます。DATETIME/SMALLDATETIMEカラムの全ての部分を、「YYYY/MM/DD HH:MM:SS.mmm」（DATETIME）/「YYYY/MM/DD HH:MM」（SMALLDATETIME）形式で表示するには、MS-SQL ServerのDATETIME/SMALLDATETIMEをMagicの文字型属性にマップする必要があります。

そのためには、[データベース特性]の[データベース情報]特性で「SQL_DATETOALPHA=Y」を指定します。


SQL考慮事項 SQLDB MS-SQL Textデータタイプ

TEXTデータタイプ

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MS-SQL Server データベースゲートウェイ

MS-SQL Serverテーブルで[定義取得]を実行したら、TEXTデータタイプのカラムの適切な書式を入力しなければなりません。デフォルトでは、このカラムを受け取るフィールドの書式は10ですが、1から32000までの有効な書式を入力する必要があります。


SQL考慮事項 SQLDB MS-SQL 物理ロック

物理ロック

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MS-SQL Server データベースゲートウェイ

物理ロックは、現在ロックされているレコードをどのユーザも修正できないようにする方法です。

つまり、ユーザがレコードをロックした時から、そのユーザがレコードを解放するまで、別のユーザはそのレコードを修正することができません。物理ロックは、次のように実行されます。Magicのロック方式に基づいてレコードがロックされると、SELECT文がUPDLOCKヒントとともに発行されます。

UPDLOCKヒントによって、トランザクションが完了するまで、ほかのアプリケーションでそのレコードを変更することができなくなります。

また、論理ロックを有効にするには以下のフラグを使用します。

SQL_PHYSICAL_LOCKING=N


SQL考慮事項 SQLDB MS-SQL ヒント

ヒント

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MS-SQL Server データベースゲートウェイ

ヒント文字列を使用すると、開発者は、チェックなしでそのままSELECT文に追加されるハードコードされた文字列を指定することができます。

[インデックス特性]でFORCE_ INDEXヒントを指定すると、そのインデックスのみに適用されます。[データソース特性]で[ヒント]特性に「FORCE_ INDEX」を指定すると、そのテーブル内の全てのインデックスに適用され、[データベース特性]でFORCE_ INDEXヒントを指定すると、データベース内の全てのテーブルの全てのインデックスに適用されます。

[データソース特性]または[インデックス特性]でFORCE_ INDEXヒントを指定した場合、ゲートウェイでオプティマイザが特定のインデックスのインデックス、または特定のテーブル内の全てのインデックスのインデックスを使用しないようにするには、[データソース特性]または[インデックス特性]で[ヒント]特性を「No」に設定します。これにより最適化ヒントが発行されなくなります。

FORCE_ INDEXヒントを使用すると、ゲートウェイで次のようにインデックスを強制することができます。

ゲートウェイによって生成されたSELECT文に次の文字列が追加されます。

（INDEX indname）

Indnameは、Magicのそのテーブルのインデックスの名前です。

最適化ヒントは、特殊な場合にのみ使用するようお勧めします。MS-SQL Serverに送信することができる最適化ヒントの完全な一覧については、MS-SQL Serverのマニュアルを参照してください。


SQL考慮事項 SQLDB MS-SQL IDENTITY

IDENTITYカラム

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MS-SQL Server データベースゲートウェイ

IDENTITY特性を持つカラムには、テーブル内の各行を一意に識別するシステム生成の値が含まれています。これを使用して、従業員のID番号などの一連の番号が生成されます。IDENTITYカラムがあるテーブルに値を挿入すると、MS-SQL Serverによって、最後に使用されたIDENTITY値（行の追加によって増加されます）とカラム作成時に指定された増分値に基づいて次の識別子が自動的に生成されます。

デフォルトでは、IDENTITYカラムにデータを直接挿入することはできません。

IDENTITYカラムは、通常、Magicのテーブルの位置として使用されるように定義されるので、Magicタスクで選択されなければなりません。つまり、タスクによって発行されるINSERTコマンドにこのカラムが含まれることになります。MS-SQL Serverではこのカラムの値を手動で更新することはできないので、データを挿入するとエラーメッセージが表示されます。解決策は、カラムがIDENTITYカラムであるため、MagicのINSERTコマンドではこのカラムを無視するようにMagicに知らせることです。

これは、Magic MS-SQL Serverゲートウェイに次のように実装されました。

  • [カラム特性]ダイアログの[SQLタイプ]にキーワード「IDENTITY」を追加することによって、カラムがIDENTITYカラムとして識別されます。これは、Magicのプログラマがテーブルを新規作成しても、定義取得を実行しても機能します。その結果、このカラムをIDENTITYとして処理するようゲートウェイに通知されます。

例：

IDENTITY特性をもつINTカラムは、[カラム特性]の[SQL]セクションの[タイプ]特性で次のように定義します。

INT IDENTITY

  • ゲートウェイによってINSERTコマンドが発行されても、IDENTITYカラムはスキップされます。

  • 定義取得では、IDENTITYカラムは[修正許可]が「No」になります。

注意：

プログラマがIDENTITYカラムの[修正許可]を「Yes」に変更した場合、タスクでカラムを更新すると、エラーメッセージが表示されます。


SQL考慮事項 SQLDB MS-SQL ビュー

ビュー

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MS-SQL Server データベースゲートウェイ

ビューには、仮想のユニークインデックスを定義する必要があります。ビューではINSERT、UPDATEおよびDELETE操作を行うことができます。MS-SQL Serverでは、複数のテーブルビューで更新を実行することができます。[データソース特性]の「位置」として指定されているインデックスのセグメントのいずれかが更新されると、画面に表示されるレコードが一致しなくなることがあります。Magicでは、[ビュー]は通常のテーブルとみなされることに注意してください。

また、Magicを使用して名前の変更または変換操作は実行できません。Magicを使用して名前の変更または変換操作を実行すると、エラーメッセージが表示され、データベース内のビューの変換や名前の変更は行われません。


SQL考慮事項 SQLDB MS-SQL 一時テーブル

一時テーブル

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MS-SQL Server データベースゲートウェイ

一時テーブルは、MS-SQL Serverによる処理が完了すると、自動的に消去されるテーブルです。一時テーブルには、ローカルとグローバルの2種類があります。

参照

ローカル一時テーブル

グローバル一時テーブル


SQL考慮事項 SQLDB MS-SQL 一時テーブル ローカル

ローカル一時テーブル

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MS-SQL Server データベースゲートウェイ > 一時テーブル

ローカル一時テーブルは、現在のセッション中のみ参照することができ、現在のセッションが終了すると自動的に消去されます。テーブル名には、先頭に記号が1つ付きます（#table_name）。

注意：

  • ローカル一時テーブルをサブタスクで作成することはできません。実行中にローカル一時テーブルを作成するには、親タスクの[メインソース特性]か[リンク特性]で定義する必要があります。また、グローバル一時テーブルを使用する方法もあります。

  • ローカル一時テーブルは、SQLコマンドを使用して参照することはできません。代わりに、グローバル一時テーブルを使用してください。


SQL考慮事項 SQLDB MS-SQL 一時テーブル グローバル

グローバル一時テーブル

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MS-SQL Server データベースゲートウェイ > 一時テーブル

グローバル一時テーブルは、全てのセッションで参照することができます。グローバル一時テーブルは、テーブルを作成したセッションが終了し、ほかの全てのタスクでテーブルが参照されなくなると自動的に消去されます。

セッションとテーブルとの関連は、1つのTransact-SQL文が有効な間のみ維持されます。つまり、グローバル一時テーブルは、テーブルを作成しているセッションが完了した時、そのテーブルを参照していた最後のTransact-SQL文が完了すると消去されます。

グローバル一時テーブル名には、先頭に記号が2つ付きます（##table_name）。

グローバル一時テーブルとローカル一時テーブルは、CREATEコマンドの発行元のデータベースに関係なく、MS-SQL Serverによって自動的にTempDBに作成されます。

一時テーブルは、DROP TABLEを使用して明示的に消去されていない限り、参照されなくなった時に自動的に消去されます。

MS-SQL Serverゲートウェイでは、[データ]リポジトリでテーブル名の前に番号記号（「#」または「##」）を追加するだけで、TempDBデータベースに一時テーブルを保存することができます。


SQL考慮事項 SQLDB MS-SQL カーソルとDBコマンド

カーソルとDBコマンド

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MS-SQL Server データベースゲートウェイ

MS-SQL Serverでの作業には、カーソルまたはDBコマンドを使用する2つの方法があります。

参照

DBコマンド

カーソル


SQL考慮事項 SQLDB MS-SQL カーソルとDBコマンド DBコマンド

DBコマンド

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MS-SQL Server データベースゲートウェイ > カーソルとDBコマンド

ゲートウェイでは、デフォルトでカーソルが使用されます。ファイルをスキャンするバッチタスクなど、Magicタスクで多数のレコードを処理する場合、[データソース特性]の[カーソル]特性を「No」に変更することによって、デフォルトの設定を変更することができます。この場合、ゲートウェイで、カーソルの代わりにDBコマンドが使われるようになり、結果セットごとに異なる接続が必要になります。接続の最大数はユーザによって定義されますが、デフォルトでは3に設定されています。

ゲートウェイでは、現在の接続で、多数のカーソルのほかにDBコマンドを1つだけ送信することができます。別のDBコマンドが発行されると、新しい接続が開かれます。DBコマンドは、リンクレコードの取得、CREATE TABLEコマンド、SQLコマンドタスクの実行など、1つのレコードやコマンドを実行するコマンドに使用されます。通常、ゲートウェイで使用される接続数が多いほど、クライアントのパフォーマンスが向上します。ただし、同時に多くのメモリが必要になり、サーバのパフォーマンスは低下します。保留中のコマンドによって既存の接続が全て使用されており、新しい接続が必要な場合、LRUアルゴリズムに基づいて既存の接続が解放されます。この場合、解放されたコマンドは最終的に再発行されるので、パフォーマンスに悪影響が生じる可能性があります。

SQLコマンドバッチタスクが使用されている場合（ストアドプロシジャまたはSELECT文）、全ての結果が取り出されるまで、ゲートウェイはこの接続を新たに使用することができません。ネストされているSQLコマンドバッチタスクが使用されており、ゲートウェイで使用可能な最大接続数が十分でない場合は、次のエラーメッセージが表示されます。

MS-SQL Gateway: No more connections available.

このエラーメッセージが表示された場合、[DBMS特性]の[最大接続数]特性の値を増やしてみてください。それでもエラーメッセージが表示される場合は、エラーメッセージに示されているパラメータの値を増やすか、またはネストされているSQLコマンドタスクを使用しないようにアプリケーションを修正してください。


SQL考慮事項 SQLDB MS-SQL カーソルとDBコマンド カーソル

カーソル

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MS-SQL Server データベースゲートウェイ > カーソルとDBコマンド

MS-SQL Serverゲートウェイでは、オンラインタスクには動的カーソル、バッチタスクにはキーセットカーソルが使用されます。

関連するパラメータ

  • [データソース特性]の[SQL]タブの[カーソル]特性を「No」に設定すると、特定のテーブルのカーソル使用が無効になり、代わりにDBコマンドが使用されます。

  • [DBMS特性]の[最大接続数]特性を設定すると、ゲートウェイで使用可能な最大接続数を制御することができます。デフォルト値は「3」です（追加接続が1つあります）。追加接続は、1つのレコードをSELECTするSQLコマンド、あるいはUPDATEなどの取得可能な結果がないSQLコマンドで使用されます。この数字は、サーバ/ユーザ名ごとに適用されます。[データベース]テーブルで複数のデータベースが定義されており、異なるサーバまたは異なるユーザ名を使用するデータベースがある場合、この数字は、異なるサーバまたはユーザ名を持つそれぞれのデータベースに適用されます。

Magicでは、SQL Serverのストアドプロシジャ内のDSQLステートメントでカーソルを使用することができます。

Magicは、結果セットを戻すDSQLステートメントに対してもカーソルの使用をサポートしています。

これは、DSQLステートメントに以下のような記述を追加することで可能です。

/*===CURSOR=Y ===*/


SQL考慮事項 SQLDB MS-SQL DB情報

データベース情報

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MS-SQL Server データベースゲートウェイ

[データベース特性]、[データソース特性]、[カラム特性]、および[インデックス特性]の[データベース情報]特性を使用すると、Magicが基になっているDBMSに渡すことができるデータベース依存の情報を指定することができます。このパラメータの使用は任意です。

[データベース情報]で送信することができる値については、次のトピックを参照してください。

参照

データベース特性

データソース特性

SQLコマンド


SQL考慮事項 SQLDB MS-SQL DB情報 データベース特性

データベース特性

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MS-SQL Server データベースゲートウェイ > データベース情報

SQL_ DATETOALPHA

SQL_ DATETOALPHA=Yを設定すると、RDBMSの日付型カラムが、長さ31文字、YYYY- MM- DD HH: MM: SS形式のMagicの文字型（Zstring）カラムに自動的に変換されます。

注意：

RDBMSでDATE型であっても、Magicは文字型として処理するため、日付型としてのデータの検証を行うことはできません。SQL_ DATETOALPHAパラメータを使用する場合、INSERTおよびUPDATE操作の妥当性検査をユーザが独自に制御する必要があります。行わない場合には、データベースに無効な日付が挿入される可能性があります。

SQL_PHYSICAL_LOCKING

MS-SQL Serverでは、Magic のデフォルトとして行レベルの物理ロックがサポートされています。論理ロックを使用するには、[データベース特性]の[データベース情報]特性で次のフラグを追加します。

SQL_PHYSICAL_LOCKING=N

このフラグが「Y」に設定されている場合、またはフラグがまったく設定されていない場合、次のように、FROM句内のUPDLOCKヒントが送信されます。

SELECT a,b
FROM tab1 （UPDLOCK NOWAIT）
ORDER BY a

このフラグが「N」に設定されている場合は、ロック動作は論理ロックになります。

CHECK_KEY=Y

インデックスチェックが有効になります。

注意：

インデックスの重複エラーになるとトランザクションの破棄を行うため、トランザクション開始時まで処理が戻ります。タスクレベルのトランザクションでは、タスクレベルまで破棄されます。


SQL考慮事項 SQLDB MS-SQL DB情報 データソース特性

データソース特性

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MS-SQL Server データベースゲートウェイ > データベース情報

SQLBLOB

パラメータSQLBLOB=nを使用すると、「n」、つまりテーブルの最大BLOBのバイト数を指定することができます。デフォルト値は「65534」で、最大値は「2147483647」です。SQLBLOBの値は、以下のSQLコマンドとデータ変換の2つの場合に関連があります。

  • SQLコマンドからBLOBを含むストアドプロシジャを実行する場合

  • 結果データベースとしてPervasive(ISAM)を設定してSQLコマンドを使用する場合、またはファイルをPervasive(ISAM)に変換する場合。
    Pervasive(ISAM)では、各BLOBに「65534」の制限があります。SQLBLOBの値を「65534」より少なくすることはできますが、「65534」より多くしようとしても変わりません。


SQL考慮事項 SQLDB MS-SQL DB情報 SQLコマンド

SQLコマンド

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MS-SQL Server データベースゲートウェイ > データベース情報

MS-SQL Serverデータベースを使用する場合、入力パラメータにBLOB型項目を指定することができません。


SQL考慮事項 SQLDB DB2

DB2 UDBデータベースゲートウェイ

データ管理 > SQLに関する考慮事項 > Magic SQL データベース

DB2 UDBデータベースと接続する際のMagicの機能については、以下のトピックを参照してください。

Magicのデータタイプ

DB2 UDBのデータタイプ

ビュー

物理ロック

DB2ハンドラの使用

データベース情報


SQL考慮事項 SQLDB DB2 Magicデータタイプ

Magicのデータタイプ

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > DB2 UDBデータベースゲートウェイ

Magicのデータ型とサポートされる保存タイプ、およびDB2 UDBで有効なデータ型の詳細については、以下のトピックを参照してください。

文字型

数値型

論理型

日付型

時刻型

Blob型

Unicode型


SQL考慮事項 SQLDB DB2 Magicデータタイプ 文字

文字型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > DB2 UDBデータベースゲートウェイ > Magicのデータタイプ

次の表は、Magicの文字型とDB2 UDBで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの 記憶型式 | Magicの書式 | Magicの保存サイズ | DB2 UDBの データタイプ
String | n,1-254 | n,1-255 | BINARY
 | n, 255-32700 | n, 256-32700 | LONGVARCHAR
Lstring | n, 1-253 | n+1, 2-254 | CHAR
 | n、254 | n+1、255 | LONGVARCHAR
Zstring | n, 1-254 | n+1, 2-255 | CHAR
 | n、255-3999 | n+1、256-4000 | VARCHAR
 | n、4000-32700 | n+1、4001-32701 | LONGVARCHR
String Memo | n, 1-255 | n+2 | BINARY
Magic Memo | n, 255 and above | n+2 | LONGVARBINARY

注意：

nは、指定された書式番号です。


SQL考慮事項 SQLDB DB2 Magicデータタイプ 数値

数値型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > DB2 UDBデータベースゲートウェイ > Magicのデータタイプ

次の表は、Magicの数値型とDB2 UDBで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの記憶型式 | Magicの書式 | Magicの 保存サイズ | DB2 UDBの データタイプ
Signed Integer | n,1-4 | 2 | SMALLINT
 | n, 5-9 | 4 | INTEGER
Unsigned Integer | n, 1-4 | 2 | SMALLINT
 | n, 5-9 | 4 | INTEGER
Float | n, 1-6 | 4 | FLOAT
 | n, 7-16 | 8 | DOUBLE
Float MS-Basic | n, 1-6 | 4 | BINARY
 | n, 7-16 | 8 | BINARY
Float Decimal | n, 1-6 | 4 | BINARY
 | n, 7-16 | 8 | BINARY
Packed Decimal | n, 1-10 | 2*n-1 | BINARY
Numeric | n ,1-18 | n | BINARY
Character Number | n, 1-18 | n-1 | BINARY
String Number | n, 1-19 | n+1 | BINARY
Magic Number | n, 1-18 | n/2+1 | BINARY
C-Isam Decimal | n, 1-32 | n/2+1 | BINARY
Extended Float | n, 1-15 | 8 | BINARY

注意：

  • nは、指定された書式番号です。

  • Magicでは、18桁までの数字がサポートされます。


SQL考慮事項 SQLDB DB2 Magicデータタイプ 論理

論理型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > DB2 UDBデータベースゲートウェイ > Magicのデータタイプ

次の表は、Magicの論理型とDB2 UDBで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの記憶型式 | Magicの 書式 | Magicの 保存サイズ | DB2 UDBのデータタイプ
Integer Logical | 5 | n,1-2 | CHARacter(1) FOR BIT DATA
String Logical | 5 | 1 | CHARacter(1) FOR BIT DATA

注意：

nは、指定された書式番号です。


SQL考慮事項 SQLDB DB2 Magicデータタイプ 日付

日付型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > DB2 UDBデータベースゲートウェイ > Magicのデータタイプ

次の表は、Magicの日付型とDB2 UDBで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの記憶型式 | Magicの書式 | Magicの 保存サイズ | DB2 UDBの データタイプ
String Date | ####/##/## | 8 | DATE(*1)
Integer Date | ####/##/## | 4 | BINARY
Integer Date 1901 | ####/##/## | 4 | BINARY
YYMMDD Date | ####/##/## | 4 | BINARY
eDeveloper Date | ####/##/## | 4 | BINARY
eDeveloper Date 1901 | ####/##/### | 4 | BINARY

注意：

MagicのString DateをDB2 UDBのCHARに割り当てるには、[タイプ]特性にCHAR（8）を指定します。


SQL考慮事項 SQLDB DB2 Magicデータタイプ 時刻

時刻型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > DB2 UDBデータベースゲートウェイ > Magicのデータタイプ

次の表は、Magicの時刻型とDB2 UDBで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの 記憶型式 | Magicの書式 | Magicの 保存サイズ | DB2 UDBのデータタイプ
String Time | HH:MM:SS | 6 | TIME
Integer Time | HH:MM:SS | 4 | BINARY
HMSH Time | HH:MM:SS | 4 | BINARY
Magic Time | HH:MM:SS | 4 | BINARY

注意：

MagicのString TimeをDB2 UDBのTIMEデータ型にマップするには、[タイプ]特性に「MGTIME」を指定します。


SQL考慮事項 SQLDB DB2 Magicデータタイプ BLOB

BLOB型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > DB2 UDBデータベースゲートウェイ > Magicのデータタイプ

次の表は、MagicのBLOB型とDB2 UDBで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの記憶型式 | Magicの 書式 | Magicの 保存サイズ | DB2 UDBの データタイプ
Binary Large Object |  | 12 (デフォルト) | BLOB


SQL考慮事項 SQLDB DB2 Magicデータタイプ Unicode

Unicode型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > DB2 UDBデータベースゲートウェイ > Magicのデータタイプ

次の表は、MagicのUnicode型とDB2 UDBで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの記憶型式 | Magicの 書式 | Magicの 保存サイズ | DB2 UDBの データタイプ
ZUnicode | n,1-127 >= 128 | n*2+2 | GRAPHIC DBCLOB
Unicode | n,1-127 >= 128 | n*2 | GRAPHIC DBCLOB


SQL考慮事項 SQLDB DB2 DB2データタイプ

DB2 UDBのデータタイプ

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > DB2 UDBデータベースゲートウェイ

次の表は、DB2 UDB テーブルに対するMagic の[定義取得]処理コマンドの結果の一覧です。また、DB2 UDB のデータタイプに対応するMagic のデータタイプも示します。

DB2 UDBの データタイプ | 型 | Magicの 保存タイプ | 保存サイズ | 書式
CHAR(n) | 文字型 | Zstring | n+1, 2- 255 | n, 1-254
VARCHAR(n) | 文字型 | Zstring | n+1, 2- 4001 | n, 1-4000
LONGVARCHAR | 文字型 | Zstring | n+1, 2- 32701 | n, 1-32700(*1)
INTEGER | 数値型 | Signed Integer | 4 | 10
SMALLINT | 数値型 | Signed Integer | 2 | 5
DECIMAL(p, s) | 数値型 | Float | 8 | p-s, s
DOUBLE | 数値型 | Float | 8 | [DBMS特性]の[浮動小数点]特性に基づく（デフォルト10,3）
FLOAT | 数値型 | Float | 4 | 5.2
DATE | 日付型 | String Date | 8 | ####/##/##
TIME | 時刻型 | String Time | 6 | ##:##:##
BLOB | BLOB型 | Binary Large Object | デフォルト(12) |
TIMESTAMP | 日付型 | String Date | 8 | ####/##/##

注意：

*1…定義取得した後、適切な書式を設定する必要があります。


SQL考慮事項 SQLDB DB2 ビュー

ビュー

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > DB2 UDBデータベースゲートウェイ

ビューには、仮想の一意インデックスを定義する必要があります。ビューではINSERT、UPDATEおよびDALETE操作を行うことができます。

Magicでは、[ビュー]は通常のテーブルとみなされることに注意してください。

また、Magicを使用して名前の変更または変換操作は実行できません。Magicを使用して名前の変更または変換操作を実行すると、エラーメッセージが表示され、データベース内のビューの変換や名前の変更は行われません。


SQL考慮事項 SQLDB DB2 物理ロック

物理ロック

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > DB2 UDBデータベースゲートウェイ

物理ロックは、現在ロックされているレコードをどのユーザも修正できないようにする方法です。

つまり、ユーザがレコードをロックした時から、そのユーザがレコードを解放するまで、別のユーザはそのレコードを修正することができません。物理ロックは、次のように実行されます。Magicのロック方式に基づいてレコードがロックされると、SELECT文がFOR UPDATE句とともに発行されます。

FOR UPDATE句によって、トランザクションが完了するまで、ほかのアプリケーションでそのレコードを変更することができなくなります。


SQL考慮事項 SQLDB DB2 ハンドラの利用

DB2ハンドラの使用

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > DB2 UDBデータベースゲートウェイ

DB2ゲートウェイは、ハンドルを使用するCLIで記述されています。

ハンドルは、1つのSQLステートメントの情報が含まれているデータオブジェクトです。ハンドルは、最初に割り当てられて、SQLステートメントが使用しなくなって時点で解放されます。Magicカーソルは、DB2ハンドルと対応しているSQLステートメントです。ステートメントハンドルは、カーソルがオープンされた最初の時点で割り当てられます。特に最初、Magicは、テーブルまたはファイルからレコードをフェッチしようとします。

カーソルが解放されるか、ドロップされた時だけ、ステートメントハンドルは解放されます。カーソルは何回もオープンされるので、このような処理が行われます。リンクカーソルは、次のページに行くたびに、メインカーソルが再びオープンされない間にフェッチされた各レコード用に再びオープンされます。ステートメントの再割り当てを何度も行うのは、性能を低下させることになります。

結果として、非常駐のタスクがクローズされた時にハンドルが解放されます。常駐タスクの場合は、Magicエンジンが終了した時点で、ハンドルは解放されます。

DB2 UDBでは、オープンされたハンドルの限界は分離レベルに依存します。各分離レベルに対応して、オープンされたハンドルの限界があります。Magicにおいて、分離レベルはデータベースレベルで設定することができ、テーブルはMagicが使用する異なるデータベースに割り当てることができます。

この結果、異なる分離レベルでオープンしている異なるハンドルと、オープンされたハンドラの数がより高くあり続けるようになります。


SQL考慮事項 SQLDB DB2UDB データベース情報

データベース情報

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > DB2 UDBデータベースゲートウェイ

[データベース特性]、[データソース特性]、[カラム特性]、および[インデックス特性]の[データベース情報]特性を使用すると、Magicが基になっているDBMSに渡すことができるデータベース依存の情報を指定することができます。このパラメータの使用は任意です。

[データベース情報]で送信することができる値については、次のトピックを参照してください。

参照

データベース特性


SQL考慮事項 SQLDB DB2UDB データベース情報 データベース特性

データベース特性

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > DB2 UDBデータベースゲートウェイ > データベース情報

SQL_ISOLATION_LEVEL=UR | CS | RS | RR

分離レベルを設定します。現在使用されている分離レベルを変更するには、DBDISCNT関数を使って、セッションを切断する必要があります。分離レベルの設定は、まず、ここでの設定値が検索され、次に[設定]／[DBMS]／[DBMS特性]での値が検索されます。有効な値が見つからない場合、DB2 UDBのデフォルトであるCSが設定されます。


SQL考慮事項 SQLDB ODBC

ODBC データベースゲートウェイ

データ管理 > SQLに関する考慮事項 > Magic SQL データベース

ODBCを使用して作業する際のMagicの機能については、以下のトピックを参照してください。

Magicのデータタイプ

ODBCのデータタイプ

ロック

トラブルシューティング

ビュー

データベースデフォルト値

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

SQLコマンド

参照

ODBC チェックドライバユーティリティ


SQL考慮事項 SQLDB ODBC Magicデータタイプ

Magicのデータタイプ

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ

Magicのデータ型とサポートされる保存タイプ、およびODBCで有効なデータ型の詳細については、以下のトピックを参照してください。

文字型

数値型

論理型

日付型

時刻型

BLOB型

Unicode型


SQL考慮事項 SQLDB ODBC Magicデータタイプ 文字

文字型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > Magicのデータタイプ

次の表は、Magicの文字型とODBCで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの 記憶型式 | Magicの書式 | Magicの 保存サイズ | ODBCの データタイプ
String | n,1-8000 | n,1-8000 | CHAR
 | n, 8001-32700 | n, 8001-32700 | TEXT
Lstring | n, 1-255 | n+1, 2-256 | BINARY
Zstring | n, 1-8000 | n+1, 2-8001 | CHAR
 | n, 8001-32700 | n+1, 8002-32701 | TEXT
String Memo | n, 1-7998 | n+2 | VARBINARY
Magic Memo | n, 7999 以上 | n+2 | IMAGE

注意：

nは、指定された書式番号です。


SQL考慮事項 SQLDB ODBC Magicデータタイプ 数値

数値型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > Magicのデータタイプ

次の表は、Magicの数値型とODBCで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの 記憶型式 | Magicの書式 | Magicの 保存サイズ | ODBCの データタイプ
Signed Integer | n,1-4 | 2 | SMALLINT
 | n, 5-9 | 4 | INTEGER
Unsigned Integer | n, 1-2 | 1 | BINARY
 | n, 3-4 | 2 | BINARY
 | n, 5-9 | 4 | BINARY
Float | n, 1-7 | 4 | REAL
 | n, 8-16 | 8 | FLOAT
Float MS-Basic | n, 1-7 | 4 | BINARY
 | n, 8-16 | 8 | BINARY
Float Decimal | n, 1-7 | 4 | BINARY
 | n, 8-16 | 8 | BINARY
Packed Decimal | n, 1-10 | 2*n-1 | BINARY
Numeric | n ,1-18 | n | BINARY
Character Number | n, 1-18 | n-1 | BINARY
String Number | n, 1-19 | n+1 | BINARY
Magic Number | n, 1-18 | n/2+1 | BINARY
C-Isam Decimal | n, 1-32 | n/2+1 | BINARY
Extended Float | n, 1-15 | 8 | BINARY

注意：

  • nは、指定された書式番号です。

  • Magicでは、18桁までの数字がサポートされます。


SQL考慮事項 SQLDB ODBC Magicデータタイプ 論理

論理型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > Magicのデータタイプ

次の表は、Magicの論理型とODBCで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの 記憶型式 | Magicの書式 | Magicの 保存サイズ | ODBCの データタイプ
Integer Logical | 5 | 1 | BIT
 | 5 | 2 | SMALLINT
String Logical | 5 | 1 | BINARY


SQL考慮事項 SQLDB ODBC Magicデータタイプ 日付

日付型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > Magicのデータタイプ

次の表は、Magicの日付型とODBCで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの 記憶型式 | Magicの書式 | Magicの 保存サイズ | ODBCの データタイプ
String Date | ##/##/#### | 8 | SQL_CHAR
Integer Date | ##/##/#### | 4 | INTEGER
Integer Date 1901 | ##/##/#### | 4 | INTEGER
YYMMDD Date | ##/##/#### | 4 | BINARY
Magic Date | ##/##/#### | 4 | BINARY
Magic Date 1901 | ##/##/#### | 4 | BINARY

注意：

MagicのString DateをODBCのCHARにマップするには、[タイプ]特性に「SQL_CHAR(8)」を指定します。


SQL考慮事項 SQLDB ODBC Magicデータタイプ 時刻

時刻型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > Magicのデータタイプ

次の表は、Magicの時刻型とODBCで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの 記憶型式 | Magicの書式 | Magicの 保存サイズ | ODBCの データタイプ
String Time | HH:MM:SS | 6 | CHAR
Integer Time | HH:MM:SS | 4 | INTEGER
HMSH Time | HH:MM:SS | 4 | BINARY
Magic Time | HH:MM:SS | 4 | BINARY

注意：

MagicのString TimeをODBCのDATETIMEデータ型にマップするには、[タイプ]特性に「MGTIME」を指定することもできます。


SQL考慮事項 SQLDB ODBC Magicデータタイプ BLOB

BLOB型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > Magicのデータタイプ

次の表は、MagicのBLOB型とODBCで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの記憶型式 | Magicの書式 | Magicの 保存サイズ | ODBCの データタイプ
Binary Large Object |  | 12 (デフォルト) | IMAGE


SQL考慮事項 SQLDB ODBC Magicデータタイプ Unicode

Unicode型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > Magicのデータタイプ

次の表は、MagicのUnicode型とODBCで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの記憶型式 | Magicの書式 | Magicの 保存サイズ | ODBCの データタイプ
ZUnicode | n,1-255 >= 256 & < 32000 >= 32000 | n*2+2 | SQL_WCHAR SQL_WVARCHAR SQL_WLONGVARCHAR
Unicode | n,1-255 >= 256 & < 32000 >= 32000 | n*2 | SQL_WCHAR SQL_WVARCHAR SQL_WLONGVARCHAR


SQL考慮事項 SQLDB ODBC ODBCデータタイプ

ODBCのデータタイプ

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ

次の表は、ODBCテーブルに対するMagicの[定義取得]処理コマンドの結果と、Microsoft ODBCのデータタイプに対応するMagicのデータタイプの一覧です。

ODBCのデータタイプ | 型 | Magicの保存タイプ | 保存サイズ | 書式
SQL_CHAR | 文字型 | Zstring | n+1, 2- 256 | n, 1-255
SQL_VARCHAR | 文字型 | Zstring | n+1, 2- 256 | n, 1-255
SQL_LONGVARCHAR | 文字型 | Zstring | デフォルト(0) | デフォルト(0)(*1)
SQL_BIGINT | 数値型 | Signed Integer | 4 | 10
SQL_INTEGER | 数値型 | Signed Integer | 4 | 10
SQL_SMALLINT | 数値型 | Signed Integer | 2 | 5
SQL_TINYINT | 数値型 | Unsigned Integer | 1 | 3
SQL_DOUBLE | 数値型 | Float | 8 | [DBMS特性]の[浮動小数点]特性に基づく（デフォルト10.3）
SQL_FLOAT | 数値型 | Float | 4 | 5.2
SQL_REAL | 数値型 | Float | 4 | 5.2
SQL_NUMERIC | 数値型 | Float | 8 | 15
SQL_DECIMAL | 数値型 | Float | 8 | 15
SQL_DATE | 日付型 | String Date | 8 | DD/MM/YYYY
SQL_TIME | 時刻型 | String Time | 6 | ##:##:##
SQL_BINARY | 文字型 | Zstring | N+1, 2- 256 | n, 1-255
SQL_VARBINARY | 文字型 | Zstring | N+1, 2- 256 | n, 1-255
SQL_LONGVARBINARY | BLOB | Binary Large Object | Default (12) |
SQL_BIT | 論理型 | Integer Logical | 1 | 5
TIMESTAMP | 日付型 | String Date | 8 | DD/MM/YYYY

注意：

*1…テーブルの定義を取得したら、SQL_LONGVARCHARデータタイプカラムの書式を、アプリケーションに適したサイズに設定する必要があります。


SQL考慮事項 SQLDB ODBC ロック

ロック

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ

ODBCには、明示的なテーブルロックはありません。したがって、共有モードが「N=なし」や「R=読込」に設定しても機能しません。基になっているデータベースエンジンによってロックが実行されます。


SQL考慮事項 SQLDB ODBC トラブルシューティング

トラブルシューティング

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ

ODBC用のMagicデータベースゲートウェイの使用中に発生した問題を解決するには、次の段階的なアプローチを使用します。

  1. ODBCドライバをテストします。

  2. データに正常にアクセスすることができても、ゲートウェイが正しく動作しない場合、Microsoft QueryやODBC Testなどのツールを使用してODBCドライバそのものをテストします。

  3. これらのツールを使用してデータにアクセスできる場合、ODBCドライバは正しくインストールされています。

Magicに付属しているODBC Check Driverユーティリティを使用することもできます。

参照

ODBC チェックドライバユーティリティ

PostgreSQL


SQL考慮事項 SQLDB ODBC ビュー

ビュー

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ

ビューには、仮想の一意インデックスを定義する必要があります。ビューではINSERT、UPDATEおよびDELETE操作を行うことができます。Magicでは、[ビュー]は通常のテーブルとみなされることに注意してください。Magicを使用して名前の変更または変換操作を実行しないでください。Magicを使用して名前の変更または変換操作を実行すると、エラーメッセージが表示され、データベース内のビューの変換や名前の変更は行われません。


SQL考慮事項 SQLDB ODBC デフォルト値

データベースデフォルト値

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ

ODBCでは、デフォルト値はサポートされません。


SQL考慮事項 SQLDB ODBC 一時データベース

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

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ

ODBCは、ソートまたは一時テーブル用のデータベースとして使用することはできません。


SQL考慮事項 SQLDB ODBC SQLコマンド

SQLコマンド

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ

ODBCは、SQLコマンドタスクの結果データベースとして使用することはできません。


SQL考慮事項 SQLDB ODBC チェックドライバ

ODBC チェックドライバユーティリティ(MGCHCKDRV.EXE)

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ

ODBC Check Driverユーティリティは、ODBCドライバに付属しています。このプログラムを実行するとODBCデータソースがテストされ、ドライバによって作成される関数の一覧が印刷されます。このテストによって、ODBCに対してMagicデータベースゲートウェイでそのドライバが使用できるかどうかがわかります。

Magicのインストール時にODBCゲートウェイをインストールすると、インストールフォルダ内のGatewaysサブフォルダ内にmgchkdrv.exeがコピーされます。

MGCHKDRVユーティリティは、ODBCドライバの情報をチェックするために提供しています。

ODBCユーティリティを実行すると、次の手順でSQL文が実行されます。

  1. Connect - Full Connect……データベースに接続します。

  2. Statement - AllocStmt……文ハンドルを割当てます。

  3. Statement - SQLExecDirect……必要なSQL文を実行します。

  4. Results - SQLGetData All……取り出されたデータを全て取得します。

  5. Statement - FreeStmt……文を解放します。

  6. Connect - Full Disconnect……データベースとの接続を解除します。

チェックドライバユーティリティでは、以下の8つのデータソースに関する情報が出力されます。

ドライバとDBMS製品情報

データソース情報

データソースでサポートされるSQL文

制限値

サポートしているデータタイプ

固有のキーワード

関数

DMLコマンドの例


SQL考慮事項 SQLDB ODBC チェックドライバ 製品情報

ドライバとDBMS製品情報

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ

このユーティリティは、選択されたデータソースに接続し、接続の割当てられたハンドルと関連付けられているドライバに関する一般情報を返すSQLGetInfo関数を送信します。

SQL_DBMS_NAME = ACCESS

ドライバによってアクセスされたDBMS製品の名前を含む文字列です。

SQL_ODBC_VER = 03.51

Driver Managerが準拠するODBCのバージョンを含む文字列です。バージョンの形式は##.##です。最初の2桁はメジャーバージョンで、次の2桁はマイナーバージョンです。これは、Driver Managerでのみ実行されます。

SQL_DRIVER_NAME = odbcjt32.dll

データソースへのアクセスに使用されたドライバのファイル名を含む文字列です。

SQL_DRIVER_ODBC_VER = 03.51, major = 3, minor = 51

ドライバでサポートされるODBCのバージョンを含む文字列です。バージョンの形式は##.##です。最初の2桁はメジャーバージョンで、次の2桁はマイナーバージョンです。SQL_SPEC_MAJORおよびSQL_SPEC_MINORによって、メジャーバージョン番号とマイナーバージョン番号が定義されます。このマニュアルで説明しているODBCのバージョンの場合、2と0です。したがって、ドライバによって「02.00」が返されます。ドライバでSQLGetInfoがサポートされていて、fInfoTypeパラメータのこの値がサポートされていない場合は、Driver Managerによって「01.00」が返されます。

SQL_DRIVER_VER = 04.00.3513

ドライバのバージョンを含む文字列です。任意でドライバの説明を含めることもできます。バージョンの形式は##.##.####です。最初の2桁はメジャーバージョン、次の2桁はマイナーバージョン、最後の4桁はリリースバージョンです。

SQL_DBMS_VER = 01.00.0000

ドライバによってアクセスされたDBMS製品のバージョンを表す文字列です。バージョンの形式は##.##.####です。最初の2桁はメジャーバージョン、次の2桁はマイナーバージョン、最後の4桁はリリースバージョンです。ドライバは、この形式でDBMS製品のバージョンを返しますが、DBMS製品固有のバージョンを追加することもできます。その場合、「04.01.0000 Rdb 4.1」のようになります。

SQL_DATABASE_NAME = C:\gateways\ODBCSDK\ACCESS\SAMPLE

データソースによって「データベース」という名前の付いたオブジェクトが定義されている場合、使用中のデータベースの名前を含む文字列です。

注意：

ODBC 2.0では、fInfoTypeのこの値は、SQL_CURRENT_QUALIFIER接続オプションに置き換えられました。ODBC 2.0ドライバでは引き続きSQL_DATABASE_NAME情報タイプがサポートされていますが、ODBC 2.0アプリケーションはODBC 1.0ドライバについてのみこの値を使用します。

SQL_ACTIVE_CONNECTIONS = 64

ドライバでサポートされるアクティブな接続ハンドルの最大数を示す16ビットの整数値です。この値には、ドライバまたはデータソースによって課せられる制限が反映されます。制限が指定されていない場合、または制限が不明の場合は、この値はゼロに設定されます。

SQL_ACTIVE_STATEMENTS = 0

接続ハンドルに対してドライバでサポートされるアクティブな文ハンドルの最大数を示す16ビットの整数値です。この値には、ドライバまたはデータソースによって課せられる制限が反映されます。制限が指定されていない場合、または制限が不明の場合は、この値はゼロに設定されます。

SQL_ODBC_API_CONFORMANCE = Level 1 Supported

ODBC適合のレベルを示す、以下の文字列が出力されます。

SQL_OAC_NONE = None
SQL_OAC_LEVEL1 = Level 1 supported
SQL_OAC_LEVEL2 = Level 2 supported
SQL_SEARCH_PATTERN_ESCAPE = \

検索パターンの有効な文字としてパターンマッチのメタ文字の下線（_）やパーセント（%）の使用を許可するエスケープ文字としてドライバでサポートされる文字列です。このエスケープ文字は、検索文字列をサポートするカタログ関数のパラメータにのみ適用されます。この文字列が空白の場合、ドライバで検索パターンのエスケープ文字がをポートしません。このfInfoTypeは、カタログ関数にのみ使用されされます。

SQL_SERVER_NAME = ACCESS

実際のデータソース固有のサーバ名を含む文字列です。SQLConnect、SQLDriverConnect、およびSQLBrowseConnectで、データソース名に利用します。


SQL考慮事項 SQLDB ODBC チェックドライバ データソース情報

データソース情報

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ

このユーティリティは、選択されたデータソースへの既存の接続を使用し、接続の割当てられたハンドルと関連付けられているデータソースに関する一般情報を返すSQLGetInfo関数を送信します。

SQL_DATA_SOURCE_NAME = try-access

接続時に使用されたデータソース名を含む文字列です。アプリケーションがSQLConnectを呼び出した場合、これはszDSNパラメータの値です。SQLDriverConnectまたはSQLBrowseConnectを呼び出した場合は、ドライバに渡される接続文字列内のDSNキーワードの値です。接続文字列にDSNキーワードが含まれていなかった場合は空の文字列です。（DRIVERキーワードが含まれている場合など）

SQL_ACCESSIBLE_TABLES = Y

この文字列は、ユーザがSQLTablesによって返される全てのテーブルにSELECT権限が付与されている場合、「Y」です。ユーザがアクセスできないテーブルがある場合、「N」です。

SQL_CONCAT_NULL_BEHAVIOR =Concatenation of a NULL value with no NULL value result is NULL valued

NULL値の文字型カラムと非NULL値の文字型カラムとの結合に対して、データソースが処理する方法を示す文字列です。

SQL_CB_NULL = Result is NULL valued.

の場合、NULLを返します。

SQL_CB_NON_NULL = Result is concatenation of non-NULL valued column or columns.

の場合、NULLでない文字列の結合を返します。

SQL_DATA_SOURCE_READ_ONLY = N

この文字列は、 データソースが読み取り専用モードに設定されている場合、「Y」です。データソースが読み取り専用モードに設定されていない場合、「N」です。この特性はデータソース自体にのみ関連するもので、データソースにアクセスすることができるドライバの特性ではありません。

SQL_CURSOR_COMMIT_BEHAVIOR = Close cursors

COMMIT処理コマンドがデータソースでカーソルおよび準備されている文にどのように影響するかを示す文字列です。

  • SQL_CB_DELETE …… カーソルを閉じ、準備されている文を削除します。カーソルを再び使用するには、アプリケーションは文ハンドルをもう一度準備して、再実行する必要があります。

  • SQL_CB_CLOSE …… カーソルを閉じます。準備されている文については、アプリケーションは、SQLPrepareを再度呼び出さなくても文ハンドルでSQLExecuteを呼び出すことができます。

  • SQL_CB_PRESERVE …… COMMIT処理コマンドの前と同じ位置にカーソルを維持します。アプリケーションは引き続きデータを取り出すことができます。また、カーソルを閉じて、文ハンドルをもう一度準備しなくても再実行することができます。

SQL_CURSOR_ROLLBACK_BEHAVIOR = Close cursors

ROLLBACK処理コマンドがデータソースでカーソルおよび準備されている文にどのように影響するかを示す文字列です。

  • SQL_CB_DELETE …… カーソルを閉じ、準備されている文を削除します。カーソルを再び使用するには、アプリケーションは文ハンドルをもう一度準備して、再実行する必要があります。

  • SQL_CB_CLOSE …… カーソルを閉じます。準備されている文については、アプリケーションは、SQLPrepareを再度呼び出さなくても文ハンドルでSQLExecuteを呼び出すことができます。

  • SQL_CB_PRESERVE …… COMMIT処理コマンドの前と同じ位置にカーソルを維持します。アプリケーションは引き続きデータを取り出すことができます。また、カーソルを閉じて、文ハンドルをもう一度準備しなくても再実行することができます。

SQL_DEFAULT_TXN_ISOLATION = SQL_TXN_READ_COMMITTED

ドライバまたはデータソースによってサポートされるデフォルトのトランザクション分離レベルを示す文字列です。データソースでトランザクションがサポートされていない場合は、ゼロです。トランザクション分離レベルの定義には、次の用語が使用されます。

  • ダーティリード……トランザクション1によって行が変更されます。トランザクション1によって変更がコミットされる前に、トランザクション2によって変更された行が読み取られます。トランザクション1によって変更がロールバックされると、それまで存在したことがないと考えられる行がトランザクション2によって読み取られることになります。

  • 反復不可能なリード……トランザクション1によって行が読み取られます。トランザクション2によってその行が更新または削除され、この変更がコミットされます。トランザクション1がその行をもう一度読み取ろうとすると、異なる値を受け取るか、またはその行が削除されたことがわかります。

  • ファントム……トランザクション1によって、検索条件に一致した行が読み取られます。トランザクション2によって、その検索条件に一致する行が挿入されます。トランザクション1がその行を読み取る文をもう一度実行すると、異なる行を受け取ります。

データソースでトランザクションがサポートされている場合、ドライバによって以下のビットマスクのいずれかが返されます。

  • SQL_TXN_READ_UNCOMMITTED …… ダーティリード、反復不可能なリード、およびファントムがサポートされます。

  • SQL_TXN_READ_COMMITTED …… ダーティリードはサポートされません。反復不可能なリードとファントムはサポートされます。

  • SQL_TXN_REPEATABLE_READ …… ダーティリードと反復不可能なリードはサポートされません。ファントムはサポートされます。

  • SQL_TXN_SERIALIZABLE …… トランザクションは直列化することができます。ダーティリード、反復不可能なリード、およびファントムはサポートされません。

  • SQL_TXN_VERSIONING …… トランザクションは直列化することができますが、SQL_TXN_SERIALIZABLEより同時実行数が増える可能性があります。ダーティリードはサポートされません。通常、SQL_TXN_SERIALIZABLEは同時実行数を削減するロックプロトコルを使用して実装され、SQL_TXN_VERSIONINGはレコードのバージョン化などの非ロックプロトコルを使用して実装されます。Oracleの読取り一貫性の分離レベルは、SQL_TXN_VERSIONINGの一例です。

SQL_MULT_RESULT_SETS = N

この文字列は、 データソースで複数の結果セットがサポートされている場合、「Y」です。それ以外の場合、「N」です。

SQL_MULTIPLE_ACTIVE_TXN = Y

この文字列は、 複数の接続でアクティブなトランザクションが許可されている場合、「Y」です。一度にアクティブなトランザクションを所有することができる接続が1つだけの場合、「N」です。

SQL_NEED_LONG_DATA_LEN = N

この文字列は、長いデータ値（データタイプがSQL_LONGVARCHAR、SQL_LONGVARBINARY、またはデータソース固有の長いデータタイプの場合）がデータソースに送信される前に、データソースでその値の長さが必要な場合、「Y」です。それ以外の場合、「N」です。

詳細は、SQLBindParameterと SQLSetpos 関数の説明を参照してください。

SQL_OWNER_TERM = NULL STRING

所有者のデータソースベンダの名前を含む文字列です。例えば、所有者、Authorization ID、Schemaなどです。

SQL_NULL_COLLATION = NULL

NULLデータがリストのどこにソーティングされるかを示す文字列です。

  • SQL_NC_END …… 並べ替え順に関係なく、NULLは一覧の末尾に格納されます。

  • SQL_NC_HIGH …… NULLは一覧の最上部に格納されます。

  • SQL_NC_LOW …… NULLは一覧の最下部に格納されます。

  • SQL_NC_START …… 並べ替え順に関係なく、NULLは一覧の先頭に格納されます。

次に説明するSQL_AUTOCOMMITの値を取得する場合、ユーティリティは選択されたデータソースへの既存の接続を使用し、接続オプションの現在の設定を返すSQLGetConneCToption関数を送信します。

SQL_AUTOCOMMIT on connection = SQL_AUTOCOMMIT_ON

自動コミットモードと手動コミットモードのどちらを使用するかを示す文字列です。

  • SQL_AUTOCOMMIT_OFFの場合、ドライバでは手動コミットモードが使用されるので、アプリケーションは、SQLTransactを使用して明示的にトランザクションをコミットまたはロールバックする必要があります。

  • SQL_AUTOCOMMIT_ONの場合、ドライバでは自動コミットモードが使用されます。各文は、実行されるとすぐコミットされます。これはデフォルトです。手動コミットモードから自動コミットモードに変更すると、接続上の開いているトランザクションが全てコミットされます。

注意：

一部のデータソースでは、文がコミットされるたびに、アクセスプランが削除され、接続上の全ての文ハンドルのカーソルが閉じられます。自動コミットモードでは、各文が実行された後、この動作が発生することがあります。詳細については、「SQLGetInfo」の「SQL_CURSOR_COMMIT_BEHAVIOR 」と「SQL_CURSOR_ROLLBACK_BEHAVIOR」情報タイプを参照してください。

SQL_USER_NAME = admin

特定のデータベースで使用する名前を含む文字列です。ログイン名と異なってもかまいません。


SQL考慮事項 SQLDB ODBC チェックドライバ SQL文

データソースでサポートされるSQL文

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ

このユーティリティは、選択されたデータソースへの既存の接続を使用し、割当てられた接続のハンドルと関連付けられているデータソースでサポートされるSQL文の型に関する情報を返すSQLGetInfo関数を送信します。

SQL_CORRELATION_NAME = XXXXX

テーブルの相関関係名がサポートされているかどうかを示す文字列です。

  • SQL_CN_NONE.の場合、相関関係名はサポートされていません。

  • SQL_CN_DIFFERENTの場合、相関関係名はサポートされていますが、表示されるテーブルの名前とは異なります。

  • SQL_CN_ANYの場合、相関関係名がサポートされており、ユーザが定義した有効な名前です。

SQL_IDENTIFIER_CASE = XXXXX

SQLの識別子について、大文字と小文字の識別の方法を示す文字列です。

  • SQL_IC_UPPER場合、SQLの識別子は大文字と小文字を区別せず、システムカタログに大文字で格納されます。

  • SQL_IC_LOWERの場合、SQLの識別子は大文字と小文字を区別せず、システムカタログに小文字で格納されます。

  • SQL_IC_SENSITIVEの場合、SQLの識別子は大文字と小文字を区別し、システムカタログに両方の文字で格納されます。

  • SQL_IC_MIXEDの場合、SQLの識別子は大文字と小文字を区別せず、システムカタログに両方の文字で格納されます。

SQL_NON_NULLABLE_COLUMNS = XXXX

データソースでNULL値が許容されていないカラムがサポートされているかどうかを示す文字列です。

  • SQL_NNC_NULLの場合、全てのカラムでNULL値が許容されている必要があります。

  • SQL_NNC_NON_NULLの場合、カラムでNULL値が許容されていない可能性があります（データソースでCREATE TABLE文内のNOT NULLカラム制約がサポートされています）。

SQL_ODBC_SQL_CONFORMANCE = XXXX

ドライバでサポートされるSQL文法を示す文字列です。

  • SQL_OSC_MINIMUMの場合、最低限の文法がサポートされています。

  • SQL_OSC_COREの場合、コアレベルの文法がサポートされています。

  • SQL_OSC_EXTENDEDの場合、拡張された文法がサポートされています。

SQL_QUOTED_IDENTIFIER_CASE = XXXX

引用符で囲まれた識別子について、大文字と小文字の識別の方法を示す文字列です。

  • SQL_IC_UPPERの場合、SQLの引用符で囲まれた識別子は大文字と小文字を区別せず、システムカタログに大文字で格納されます。

  • SQL_IC_LOWERの場合、SQLの引用符で囲まれた識別子は大文字と小文字を区別せず、システムカタログに小文字で格納されます。

  • SQL_IC_SENSITIVEの場合、SQLの引用符で囲まれた識別子は大文字と小文字を区別し、システムカタログに両方の文字で格納されます。

  • SQL_IC_MIXEDの場合、SQLの引用符で囲まれた識別子は大文字と小文字を区別せず、システムカタログに両方の文字で格納されます。


SQL考慮事項 SQLDB ODBC チェックドライバ 制限値

制限値

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ

このユーティリティは、選択されたデータソースへの既存の接続を使用し、識別子の最大長や選択リスト内のカラムの最大数など、SQL文内の識別子や句に適用される制限に関する情報を返すSQLGetInfo関数を送信します。

注意：

ドライバまたはデータソースによって制限が課せられます。

SQL_MAX_COLUMN_NAME_LEN = 64

データソース内のカラム名の最大長を示す16ビットの整数値です。最大長がない場合、または長さが不明の場合は、この値はゼロに設定されます。

SQL_MAX_QUALIFIER_NAME_LEN = 260

データソース内の修飾子名の最大長を示す16ビットの整数値です。最大長がない場合、または長さが不明の場合は、この値はゼロに設定されます。

SQL_MAX_TABLE_NAME_LEN = 64

データソース内のテーブル名の最大長を示す16ビットの整数値です。最大長がない場合、または長さが不明の場合は、この値はゼロに設定されます。

SQL_MAX_INDEX_SIZE = 255

インデックスの結合フィールドで許容される最大バイト数を示す32ビットの整数値です。制限が指定されていない場合、または制限が不明の場合は、この値はゼロに設定されます。

SQL_MAX_COLUMNS_IN_INDEX = 10

インデックスで許容されるカラムの最大数を示す16ビットの整数値です。制限が指定されていない場合、または制限が不明の場合は、この値はゼロに設定されます。

SQL_MAX_COLUMNS_IN_ORDER_BY = 10

ORDER BY句で許容されるカラムの最大数を示す16ビットの整数値です。制限が指定されていない場合、または制限が不明の場合は、この値はゼロに設定されます。

SQL_MAX_COLUMNS_IN_SELECT = 255

選択リストで許容されるカラムの最大数を示す16ビットの整数値です。制限が指定されていない場合、または制限が不明の場合は、この値はゼロに設定されます。

SQL_MAX_COLUMNS_IN_TABLE = 255

テーブルで許容されるカラムの最大数を示す16ビットの整数値です。制限が指定されていない場合、または制限が不明の場合は、この値はゼロに設定されます。


SQL考慮事項 SQLDB ODBC チェックドライバ データタイプ

サポートしているデータタイプ

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ

このユーティリティは、選択されたデータソースへの既存の接続を使用し、サポートされている全てのデータタイプに関する情報を返す、fInfoTypeがSQL_ALL_TYPESのSQLGetInfo関数を送信します。この情報を受け取った後、ユーティリティは、データタイプが検索可能かどうか（つまり、データタイプがWHERE句で使用可能かどうか）を確認するために全てのデータタイプにSQLGetTypeInfo関数を送信します。

  • 0-SQL_UNSEARCHABLE……データタイプがWHERE句で使用できない場合

  • 1-SQL_LIKE_ONLY LIKE……LIKE述語がある時だけでデータタイプがWHERE句で使用できる場合

  • 2- SQL_ALL_EXCEPT_LIKE……LIKE述語を除く全ての比較演算子とともにデータタイプがWHERE句で使用できる場合

  • 3- SQL_SEARCHABLE ……全ての比較演算子とともにデータタイプがWHERE句で使用できる場合

ユーティリティログファイル内の情報は、次の3つのカラムに表示されます。

  • DBMS Type Name……DBMSのデータタイプの名前

  • SQL Data Type……ODBCによって定義される、対応する主要なSQLのデータタイプ

  • Searchable……データタイプがWHERE句で使用できるかどうかを示すTrue/Falseの値

DBMS TYPE NAME | SQL DATA TYPE | SEARCHABLE
GUID | INVALID SQLTYPE | FALSE
BIT | SQL_BIT | TRUE
BYTE | SQL_TINYINT | TRUE
LONGBINARY | SQL_LONGVARBINARY | FALSE
VARBINARY | SQL_VARBINARY | FALSE
BINARY | SQL_BINARY | FALSE
LONGCHAR | SQL_LONGVARCHAR | FALSE
CHAR | SQL_CHAR | TRUE
CURRENCY | SQL_NUMERIC | TRUE
INTEGER | SQL_INTEGER | TRUE
COUNTER | SQL_INTEGER | TRUE
SMALLINT | SQL_SMALLINT | TRUE
REAL | SQL_REAL | TRUE
DOUBLE | SQL_DOUBLE | TRUE
DATETIME | SQL_TIMESTAMP | TRUE
VARCHAR | SQL_VARCHAR | TRUE


ODBCチェックドライバ 固有のキーワード

固有のキーワード

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ

このユーティリティは、選択されたデータソースへの既存の接続を使用し、fInfoTypeフィールドに「SQL_KEYWORDS」を持つSQLGetInfo関数を送信します。

その結果、データソース固有のキーワード全てのカンマ区切りの一覧を含む文字列が返されます。この一覧には、ODBCに固有のキーワードや、データソースとODBCの両方で使用されるキーワードは含まれません。キーワードは予約語です。構文に基づいて、特定の場所でのみ使用することができます。

SQL_KEYWORDS =

ALPHANUMERIC
AUTOINCREMENT
BINARY
BYTE
COUNTER
CURRENCY
DATABASE
DATABASENAME
DATETIME
DATETIME
DISALLOW
DISTINCTROW
DOUBLEFLOAT
FLOAT4
FLOAT8
GENERAL
IEEEDOUBLE
IEEESINGLE
IGNORE
INT
INTEGER1
INTEGER2
INTEGER4
LEVEL
LOGICAL
LOGICAL1
LONG
LONGBINARY
LONGCHAR

LONGTEXT
MEMO
MONEY
NOTE
NUMBER
OLEOBJECT
OPTION
OWNERACCESS
PARAMETERS
PERCENT
PIVOT
SHORT
SINGLE
SINGLEFLOAT
SMALLINT
STDEV
STDEVP
STRING
TABLEID
TEXT
TOP
TRANSFORM
UNSIGNEDBYTE
VALUES
VAR
VARBINARY
VARP
YESNO


SQL考慮事項 SQLDB ODBC チェックドライバ 関数

関数

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ

このユーティリティは、選択されたデータソースへの既存の接続を使用し、fFunctionフィールドにSQL_API_ALL_FUNCTIONSを持つSQLGetFunctions関数を送信します。

この関数は、ドライバでODBC関数の一覧がサポートされるかどうかに関する情報を返します。これらの関数はDriver Managerに実装されています。また、ドライバにも実装することができます。ドライバでSQLGetFunctionsが実行される場合、Driver Managerはドライバの関数を呼び出します。それ以外の場合は、Driver Managerによって関数が実行されます。

ユーティリティログファイル内の情報は、次の3つのカラムに表示されます。

  • Function……ODBC関数の名前

  • Supported by Driver……SQLGetFunctionsの結果から返されたTrue/Falseの値に基づく、サポート/非サポート（Supported/Not Supported）

  • Used by Magic……Magicで必要かどうか（Required/Not Required）

注意：

関数がMagicで必要であるにもかかわらず、データソースでサポートされていない場合、このデータソースを使用してMagicおよびODBCで作業する際に問題が発生する可能性があります。

詳細については、次のアルファベット順の関数一覧で関数をダブルクリックしてください。

SQLAllocConnect

SQLAllocEnv

SQLAllocStmt

SQLBindCol

SQLBindParameter

SQLBrowseConnect

SQLCancel

SQLColAttributes

SQLColumnPrivileges

SQLColumns

SQLConnect

SQLDataSources

SQLDescribeCol

SQLDescribeParam

SQLDisconnect

SQLDriverConnect

SQLDrivers

SQLError

SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLForeignKeys

SQLFreeConnect

SQLFreeEnv

SQLFreeStmt

SQLGetConnectOption

SQLGetCursorName

SQLGetData

SQLGetFunctions

SQLGetInfo

SQLGetStmtOption

SQLGetTypeInfo

SQLMoreResults

SQLNativeSql

SQLNumParams

SQLNumResultCols

SQLParamData

SQLParamOptions

SQLPrepare

SQLPrimaryKeys

SQLProcedureColumns

SQLProcedures

SQLPutData

SQLRowCount

SQLSetCursorName

SQLSetConnectOption

SQLSetParam

SQLSetpos

SQLSetScrollOptions

SQLSetStmtOption

SQLSpecialColumns

SQLStatistics

SQLTablePrivileges

SQLTables

SQLTransact


ODBCチェックドライバ 関数 SQLAllocConnect

SQLAllocConnect

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

接続ハンドルによって識別された環境内でハンドルにメモリを割当てます。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLAllocEnv

SQLAllocEnv

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

環境ハンドルにメモリを割当て、アプリケーションによって使用されるODBC Call Level Interfaceを初期化します。アプリケーションは、ほかのODBC関数より先にSQLAllocEnvを呼び出す必要があります。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLAllocStmt

SQLAllocStmt

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

構文ハンドルにメモリを割当て、その構文ハンドルを接続ハンドルによって指定された接続と関連付けます。アプリケーションは、SQL文を実行する前にSQLAllocStmtを呼び出す必要があります。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLBindCol

SQLBindCol

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

結果セット内のカラムに以下のようなストレージとデータタイプを割当てます。

  • データのカラムの内容を受け取る保存バッファ

  • 保存バッファの長さ

  • フェッチ処理によって返されたデータ内のカラムの実際の長さを保存するストレージ

  • データタイプの変換

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLBindParameter

SQLBindParameter

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

SQL文内のパラメータマーカにバッファをバインドします。

注意：

この関数は、ODBC 1.0のSQLSetParam関数に代わるものです。

ドライバによるサポート： | あり
Magicによる使用： | 不要


ODBCチェックドライバ 関数 SQLBrowseConnect

SQLBrowseConnect

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

データソースへの接続に必要な属性および属性値を反復して検出および列挙する方法をサポートします。SQLBrowseConnectへの各呼び出しによって、属性および属性値の連続するレベルが返されます。

全てのレベルが列挙されると、データソースへの接続が完了し、SQLBrowseConnectによって完全な接続文字列が返されます。SQL_SUCCESSまたはSQL_SUCCESS_WITH_INFOのリターンコードは、全ての接続情報が指定されており、現在、アプリケーションがデータソースに接続されていることを示します。

ドライバによるサポート： | なし
Magicによる使用： | 不要


ODBCチェックドライバ 関数 SQLCancel

SQLCancel

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

構文のハンドルの処理をキャンセルします。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLColAttributes

SQLColAttributes

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

結果セット内のカラムに関する記述子情報を返します。この関数を使用してブックマークカラム（カラム0）に関する情報を返すことはできません。記述子情報は、文字列、32ビットの記述子依存の値、または整数値で返されます。

ドライバによるサポート： | あり
Magicによる使用： | 不要


ODBCチェックドライバ 関数 SQLColumnPrivileges

SQLColumnPrivileges

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

指定されたテーブルに関するカラムと、関連する特権の一覧を返します。ドライバは、指定された文のハンドルの結果セットとして情報を返します。

ドライバによるサポート： | なし
Magicによる使用： | 不要


ODBCチェックドライバ 関数 SQLColumns

SQLColumns

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

指定されたテーブル内のカラム名の一覧を返します。ドライバは、指定された文のハンドルの結果セットとしてこの情報を返します。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLConnect

SQLConnect

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

ドライバを読み込み、データソースへの接続を確立します。接続ハンドルによって、状態、トランザクション状態、エラー情報など、接続に関するあらゆる情報のストレージが参照されます。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLDataSources

SQLDataSources

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

データソース名を一覧表示します。この関数は、Driver Managerによってのみ実行されます。

ドライバによるサポート： | あり
Magicによる使用： | 不要


ODBCチェックドライバ 関数 SQLDescribeCol

SQLDescribeCol

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

結果セット内の1つのカラムに関する結果記述子カラムの名前、タイプ、有効桁数、小数点部桁数、およびNULL値の許容を返します。この関数を使用してブックマークカラム（カラム0）に関する情報を返すことはできません。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLDescribeParam

SQLDescribeParam

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

準備されたSQL文と関連付けられているパラメータマーカの説明を返します。

ドライバによるサポート： | なし
Magicによる使用： | 不要


ODBCチェックドライバ 関数 SQLDisconnect

SQLDisconnect

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

特定の接続ハンドルと関連付けられている接続を閉じます。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLDriverConnect

SQLDriverConnect

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

SQLDriverConnectは、SQLConnectの代わりに使用します。SQLConnectの3つのパラメータより多くの接続情報を必要とするデータソース、全ての接続情報の入力をユーザに要求するダイアログボックス、ODBC.INIファイルまたはレジストリで定義されていないデータソースをサポートします。

SQLDriverConnectには、次のような接続オプションがあります。

  • データソース名、1つ以上のユーザID、1つ以上のパスワード、およびデータソースによって必要とされるその他の情報を含む接続文字列を使用して接続を確立する。

  • 部分的な接続文字列を使用して、または追加情報なしで接続を確立する。この場合、Driver Managerおよびドライバは、ユーザに接続情報の入力を要求することができる。

  • ODBC.INIファイルまたはレジストリで定義されていないデータソースへの接続を確立する。アプリケーションによって部分的な接続文字列が提供される場合、ドライバは、ユーザに接続情報の入力を要求できる。

接続が確立すると、SQLDriverConnectによって完全な接続文字列が返されます。アプリケーションは、それ以降の接続要求にこの文字列を使用できます。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLDrivers

SQLDrivers

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

ドライバの説明とドライバ属性キーワードを一覧表示します。

この関数は、Driver Managerによってのみ実行されます。

ドライバによるサポート： | あり
Magicによる使用： | 不要


ODBCチェックドライバ 関数 SQLError

SQLError

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

エラーや状態に関する情報を返します。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLExecDirect

SQLExecDirect

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

文内にパラメータがある場合、パラメータマーカ変数の現在の値を使用して、準備可能な文を実行します。SQLExecDirectを使用すると、1回の実行で最も速くSQL文を実行することができます。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQL Execute

SQL Execute

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

文内にパラメータマーカがある場合、パラメータマーカ変数の現在の値を使用して、準備された文を実行します。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLExtendedFetch

SQLExtendedFetch

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

次の方法で、SQLFetchの機能を拡張します。

  • バインドされた各カラムについて、配列の形式で行セットデータ（1つ以上の行）を返す。

  • スクロールタイプのパラメータの設定に基づいて、結果セットをスクロールする。

SQLExtendedFetchは、SQLSetStmtOptionとともに動作します。前方に一度に1行ずつ取り出す場合は、アプリケーションはSQLFetchを呼び出す必要があります。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLFetch

SQLFetch

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

結果セットからデータの行を取り出します。ドライバによって、SQLBindColを使用して保存場所にバインドされた全てのカラムのデータが返されます。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLForeignKeys

SQLForeignKeys

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

SQLForeignKeysは、以下の一覧を返すことができます。

  • 指定されたテーブルの外部キー（ほかのテーブルの主キーを参照する指定されたテーブル内のカラム）の一覧

  • 指定されたテーブルの主キーを参照するほかのテーブルの外部キーの一覧

ドライバは、指定された文のハンドルの結果セットとして各一覧を返します。

ドライバによるサポート： | なし
Magicによる使用： | 不要


ODBCチェックドライバ 関数 SQLFreeConnect

SQLFreeConnect

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

接続ハンドルを解放し、ハンドルと関連付けられている全てのメモリを解放します。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLFreeEnv

SQLFreeEnv

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

環境ハンドルを解放し、環境ハンドルと関連付けられている全てのメモリを解放します。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLFreeStmt

SQLFreeStmt

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

特定の文ハンドルと関連付けられている処理を停止し、その文ハンドルと関連する開いているカーソルを閉じ、保留中の結果を破棄します。さらに、オプションで、この文ハンドルに関連する全てのリソースを解放します。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLGetConnectOption

SQLGetConnectOption

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

接続オプションの現在の設定を返します。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLGetCursorName

SQLGetCursorName

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

指定された文ハンドルと関連付けられているカーソル名を返します。

ドライバによるサポート： | あり
Magicによる使用： | 不要


ODBCチェックドライバ 関数 SQLGetData

SQLGetData

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

現在の行内のバインドされていない1つのカラムの結果データを返します。アプリケーションは、SQLGetDataを呼び出す前に、データの行にカーソルを置くためにSQLFetch、またはSQLExtendedFetchおよびSQLSetPos（任意）を呼び出す必要があります。一部のカラムにSQLBindColを使用し、同じ行内のほかのカラムにSQLGetDataを使用することができます。

この関数を使用すると、文字型、バイナリ型、またはデータソース固有のデータ型を持つカラムから文字型またはバイナリ型のデータ値（SQL_LONGVARBINARYカラムやSQL_LONGVARCHARカラム内のデータなど）を部分的に取得することができます。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLGetFunctions

SQLGetFunctions

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

ドライバで特定のODBC関数がサポートされているかどうかに関する情報を返します。この関数はDriver Managerで実行されますが、ドライバで実行することもできます。ドライバでSQLGetFunctionsが実行される場合、Driver Managerはドライバの関数を呼び出します。それ以外の場合は、Driver Managerによって関数が実行されます。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLGetInfo

SQLGetInfo

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

接続ハンドルと関連付けられているドライバおよびデータソースに関する一般情報を返します。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLGetStmtOption

SQLGetStmtOption

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

構文プションの現在の設定を返します。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLGetTypeInfo

SQLGetTypeInfo

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

データソースでサポートされているデータ型に関する情報を返します。ドライバは、SQL結果セットの形式で情報を返します。

注意：

アプリケーションは、ALTER TABLE文およびCREATE TABLE文のTYPE_NAMEカラムに返されたタイプ名を使用する必要があります。SQLGetTypeInfoによって、DATA_TYPEカラムに同じ値を持つ複数の行が返されることがあります。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLMoreResults

SQLMoreResults

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

SELECT、UPDATE、INSERT、またはDELETE文を含む文ハンドルで使用可能なより多くの結果があるかどうかを判断します。より多くの結果がある場合は、それらの結果に対する処理を開始します。

ドライバによるサポート： | あり
Magicによる使用： | 不要


ODBCチェックドライバ 関数 SQLNativeSql

SQLNativeSql

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

ドライバによって変換されたSQL文字列を返します。

ドライバによるサポート： | あり
Magicによる使用： | 不要


ODBCチェックドライバ 関数 SQLNumParams

SQLNumParams

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

SQL文内のパラメータ数を返します。

ドライバによるサポート： | あり
Magicによる使用： | 不要


ODBCチェックドライバ 関数 SQLNumResultCols

SQLNumResultCols

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

結果セット内のカラム数を返します。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLParamData

SQLParamData

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

SQLPutDataとともに、文の実行時にパラメータデータを提供するために使用されます。

ドライバによるサポート： | あり
Magicによる使用： | 不要


ODBCチェックドライバ 関数 SQLParamOptions

SQLParamOptions

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

SQLBindParameterによって割り当てられたパラメータのセットにアプリケーションが複数の値を指定できるようにします。

パラメータのセットに複数の値を指定できれば、データソースがさまざまなパラメータ値を使用して複数回同じSQL文を処理しなければならない一括挿入などの作業を行う際に便利です。

例えば、アプリケーションがINSERT文と関連するパラメータのセットに3セットの値を指定することができる場合、INSERT文を一度実行して、3つの挿入操作を行うことができます。

ドライバによるサポート： | あり
Magicによる使用： | 不要


ODBCチェックドライバ 関数 SQLPrepare

SQLPrepare

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

SQL文字列を実行する準備をします。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLPrimaryKeys

SQLPrimaryKeys

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

テーブルの主キーを含むカラム名を返します。

ドライバは結果セットとして情報を返します。この関数では、1回の呼び出しで複数のテーブルから主キーを返すことはできません。

ドライバによるサポート： | なし
Magicによる使用： | 不要


ODBCチェックドライバ 関数 SQLProcedureColumns

SQLProcedureColumns

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

入力パラメータと出力パラメータの一覧、および指定されたプロシージャの結果セットを構成するカラムを返します。

ドライバは、指定された文ハンドルの結果セットとして情報を返します。

ドライバによるサポート： | あり
Magicによる使用： | 不要


ODBCチェックドライバ 関数 SQLProcedures

SQLProcedures

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

特定のデータソースに格納されているプロシージャ名の一覧を返します。

プロシージャとは、実行可能なオブジェクト、つまり入力パラメータおよび出力パラメータを使用して呼び出すことができる名前付きエンティティを表す一般的な用語です。プロシージャは、SQLのSELECT式によって返される結果と同様の結果セットを返すことができます。

ドライバによるサポート： | あり
Magicによる使用： | 不要


ODBCチェックドライバ 関数 SQLPutData

SQLPutData

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

構文の実行時に、アプリケーションからドライバへのパラメータまたはカラムに関するデータの送信を可能にします。この関数を使用すると、文字型、バイナリ型、またはデータソース固有のデータ型を持つカラムに文字型またはバイナリ型のデータ値（SQL_LONGVARBINARY型やSQL_LONGVARCHAR型のパラメータなど）を部分的に送信することができます。

ドライバによるサポート： | あり
Magicによる使用： | 不要


ODBCチェックドライバ 関数 SQLRowCount

SQLRowCount

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

UPDATE、INSERT、またはDELETE文、あるいはSQLSetPosのSQL_UPDATE、SQL_ADD、またはSQL_DELETE処理コマンドによって影響を受ける行の数を返します。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLSetConnectOption

SQLSetConnectOption

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

接続を制御するオプションを設定します。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLSetCursorName

SQLSetCursorName

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

カーソル名をアクティブな文ハンドルと関連付けます。

アプリケーションでSQLSetCursorNameが呼び出されない場合、ドライバによってSQL文の処理に必要なカーソル名が生成されます。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLSetParam

SQLSetParam

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

ODBC 2.0では、ODBC 1.0のSQLSetParam関数はSQLBindParameterに置き換えられました。詳細については、 SQLBindParameterを参照してください。

ドライバによるサポート： | あり
Magicによる使用： | 不要


ODBCチェックドライバ 関数 SQLSetpos

SQLSetpos

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

行セット内のカーソル位置を設定し、アプリケーションによるデータのリフレッシュ、更新、削除、または行セットへの追加を可能にします。

ドライバによるサポート： | あり
Magicによる使用： | 不要


ODBCチェックドライバ 関数 SQLSetScrollOptions

SQLSetScrollOptions

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

SQL文ハンドルと関連付けられているカーソルの動作を制御するオプションを設定します。SQLSetScrollOptionsを使用すると、同時実行の制御、ほかのトランザクションによって行われる変更への感度、および行セットのサイズの3つの分野で希望するカーソルの動作のタイプを指定することができます。

注意：

ODBC 2.0では、SQLSetScrollOptionsは、SQL_CURSOR_TYPE、SQL_CONCURRENCY、SQL_KEYSET_SIZE、およびSQL_ROWSET_SIZEの文プションに置き換えられました。ODBC 2.0ドライバでは旧バージョンとの互換性のためにこの関数がサポートされていますが、ODBC 2.0アプリケーションはODBC 1.0ドライバでのみこの関数を呼び出します。

アプリケーションによってSQLSetScrollOptionsが呼び出される場合、ドライバは、SQLGetStmtOptionを使用して前述の文プションの値を返すことができなければなりません。詳細については、SQLSetStmtOptionを参照してください。

ドライバによるサポート： | あり
Magicによる使用： | 不要


ODBCチェックドライバ 関数 SQLSetStmtOption

SQLSetStmtOption

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

構文ハンドルに関するオプションを設定します。特定の接続ハンドルと関連付けられている全ての文にオプションを設定する場合、アプリケーションはSQLSetConnectOptionを呼び出すことができます。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLSpecialColumns

SQLSpecialColumns

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

指定されたテーブル内のカラムに関する以下の情報を取得します。

  • テーブル内の行を一意に識別する最適なカラムのセット

  • 行内の値がトランザクションによって更新された際に自動的に更新されるカラム

ドライバによるサポート： | Supported
Magicによる使用： | Required


ODBCチェックドライバ 関数 SQLStatistics

SQLStatistics

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

１つのテーブルに関する統計情報の一覧とそのテーブルと関連付けられているインデックスを取得します。ドライバは結果セットとして情報を返します。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLTablePrivileges

SQLTablePrivileges

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

テーブルと各テーブルに関連付けられている特権の一覧を返します。ドライバは、指定された文ハンドルの結果セットとして情報を返します。

ドライバによるサポート： | なし
Magicによる使用： | 不要


ODBCチェックドライバ 関数 SQLTables

SQLTables

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

特定のデータソースに格納されているテーブル名の一覧を返します。ドライバは結果セットとして情報を返します。

ドライバによるサポート： | あり
Magicによる使用： | 必要


ODBCチェックドライバ 関数 SQLTransact

SQLTransact

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ > 関数

接続と関連付けられている全ての文ハンドル上の全てのアクティブな処理コマンドのコミットまたはロールバック操作を要求します。

また、環境ハンドルと関連付けられている全ての接続に対してコミットまたはロールバック操作を実行するように要求することもできます。

ドライバによるサポート： | あり
Magicによる使用： | 必要


SQL考慮事項 SQLDB ODBC チェックドライバ コマンド例

DMLコマンドの例

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ > ODBC チェックドライバユーティリティ

このユーティリティは、選択されたデータソースへの既存の接続を使用し、szSqlStrフィールドにSQLコマンドを持つSQLExecDirect関数を送信します。

各コマンドの後、ログにコマンドが成功したかどうかが記録されます。

テーブルとインデックスは、実際はデータソースがアクセスするデータベースから作成およびドロップされます。

CREATE TABLE T11025 (FLD1 CHAR(1), FLD2 CHAR(1))
**** Succeeded ****
CREATE UNIQUE INDEX I11025 ON T11025 (FLD1)
**** Succeeded ****
DROP INDEX I11025 ON T11025
**** Succeeded ****
DROP TABLE T11025
**** Succeeded ****

ユーティリティは、SQLDisconnect関数を使用してデータソースから切断します。

******* Disconnected Successfully ... ******
******************************************************


エンドユーザメニューとヘルプ

ここでは、プロジェクトのエンドユーザメニューとヘルプの設定について説明します。

メニューは、実行させる内容や、サイズ、使用権利を指定することができます。また、メニューをプルダウンメニューまたはコンテキストメニュー（ポップアップメニュー、ショートカットメニュー）のどちらにするかも指定できます。

Magic では、2種類のヘルプの表示方式をユーザに提供できます。１つは、一般的なヘルプの表示方式で、エンドユーザがフォームまたはフォームのコントロールで必要に応じて表示し、内容を読むことができます。もう１つは自動ヘルプやツールチップで、フォームのコントロールにカーソルを置くと自動的に表示されます。どちらのヘルプも、データ項目、モデル、フォーム、コントロール、メニュー項目を定義する際に併せて定義できます。

参照

メニュー

ヘルプ


メニュー

メニューとヘルプ >

Magicでは、プロジェクト内にメニューを定義することができます。エンドユーザがアプリケーションを実行する場合、このメニューを使用してプログラムを起動します。

Magicには、以下のメニューオプションがあります。

  • デフォルトプルダウンメニュー …… Magicはプロジェクトを作成する際にデフォルトプルダウンメニューを自動的に表示するように定義します。このメニューには、実行時に必要な基本的なオプションがすべて含まれています。

  • ツールバーメニュー …… プルダウンメニューの下に表示されるボタンの集まり。このボタンをクリックすることでプルダウンメニューに定義されている機能を簡単に起動させることができます。

  • 追加のメニュー構造 …… 必要に応じて作成することができます。これらのメニューは、コンテキストメニューとしてアプリケーションで使用することもできます。

参考

メニューは、エンドユーザが簡単に操作できることを考慮して配置してください。

参照

メニューリポジトリ

メニュー定義テーブル

権利設定

メニュー特性

プログラムメニューサポート

メニュー関数


メニューリポジトリ

メニューとヘルプ > メニュー

[メニュー]リポジトリには、1つのデフォルトプルダウンメニューが含まれています。

新規プロジェクトを作成すると、「デフォルトプルダウンメニュー」が作成され、アプリケーションの実行に必要な基本的なオプション（[ファイル]，[編集]，[オプション]，[ヘルプ]）が含まれています。このデフォルトメニューは変更したり、削除したり、拡張したりすることができます。

プルダウンメニューは、一番上のレベルにメニューバーを含め、最高10までの階層を持つように設計することができます。メニューバーは、ユーザが実行時にアプリケーションを選択すると表示されます。ほとんどのプロジェクトでは、少なくとも１つのメニューが定義されており、ここには、プログラム名が定義されており、[プログラム]リポジトリへのリンクが定義されています。

プルダウンメニューのオプションとして、ショートカットとなるツールバーボタンを定義することができます。

[メニュー]リポジトリには、プロジェクトで入手可能なメニュー構造を追加することができます。最高9,999までのメニューを含めることができます。

メニューのタイプは、メニューが使用されるコンテキストによって決まります。

例えば：

  • タスクのフォームの[コンテキストメニュー]特性から「デフォルトプルダウンメニュー」を選択した場合、「デフォルトプルダウンメニュー」がコンテキストメニューとして表示されます。

  • プルダウンメニューにメニューを追加した場合、実行時にプルダウンメニューの一部として表示されます。

[メニュー]リポジトリ内の各メニュー構造から[メニュー定義]テーブルにズームし、各メニュー構造の具体的なメニューとオプションを定義することができます。各メニュー構造には、最高10までのメニューレベルを定義することができます。

[メニュー]リポジトリには、デフォルトまたはユーザ定義のメニュー構造のどちらかが入力できます。

Magicでは、特定のプログラムとそのサブプログラムに特有なメニューを追加することができます。詳細については、「プログラムメニューサポート」を参照してください。

参照

メニュー名

論理メニュー名

メニュー関数

MENU リテラル

実行時のメニューコンテキスト

メニューパスの設定


メニュー リポジトリ メニュー名

メニュー名

メニューとヘルプ > メニュー > メニューリポジトリ

[メニュー名]カラムにはメニュー構造の論理的な名前を定義します。ここで定義された名前は、実行時には表示されません。


メニュー リポジトリ 論理メニュー名

論理メニュー名

メニューとヘルプ > メニュー > メニューリポジトリ

このカラムは、メニュー表示を制御するためのMagicのメニュー関数で使用されます。

[論理メニュー名]カラムには、メニューの表示に関する制御を行う場合に使用されます。この名前は、MnuEnable関数のようなMagicのメニュー関数を使用することでプルダウンメニューの表示を制御することができます。

[メニュー]リポジトリのトップレベルで定義されたこの名前を使用することで、メニュー全体を捧持させないようにすることができます。

参考

  • この関数を有効に利用するには、[論理メニュー名]にユニークな名前を定義する必要があります。

  • 「\」記号は、メニューパスを表す場合に使用するため、論理名には、使用しないでください。詳細は、「プログラムメニューサポート」を参考にしてください。

参照

プログラムメニューサポート

実行時のメニューコンテキスト


メニュー定義テーブル

メニューとヘルプ > メニュー

[メニュー]リポジトリの各メニュー構成項目からズームすることで、[メニュー定義]テーブルにアクセスできます。ここでは、各メニュー構成の具体的なメニューとオプションを定義することができます。各メニュー構成には、最大10レベルのメニューが定義できます。

[メニュー定義]テーブルには以下のカラムがあります。

タイプ

ユーザメニュー名

論理メニュー名

パラメータ

ショートキー


メニュー 定義テーブル タイプ

タイプ

メニューとヘルプ > メニュー > メニュー定義テーブル

[メニュー定義]テーブルのメニュー項目タイプは、起動内容を定義します。次のオプションがあります。

P＝プログラム

この値を指定した場合、[パラメータ]カラムを使用して[プログラム]リポジトリのプログラム番号を指定します。実行時には、指定したプログラムをエンドユーザが選択すると、そのプログラムが実行されます。また、各カラムでは、実行するプログラムに関する設定を行います。

O＝OSコマンド

この値を指定した場合、[パラメータ]カラムを使用してOSのコマンドを指定します。実行時には、指定したOSのコマンドをエンドユーザが選択すると、そのコマンドが実行されます。

リッチクライアントタスクでは、クライアント側だけでのみ動作します。

V＝イベント

[パラメータ]カラムには、Magicの内部のイベントが含まれます。実行時にエンドユーザによって選択された場合、内部のイベントと関連した機能が実行されます。

「V=イベント」タイプを選択した場合、[イベント]ダイアログボックスにズームし、以下のオプションのうち1つを選択することができます。

  • S=システム …… [キーボード割付]テーブルに定義された組み合わせキーによってトリガされたイベント

  • I=内部 …… [内部イベント一覧]から選択されるイベント

  • U=ユーザ …… [ユーザ定義イベント]として定義されたイベント。コンポーネントから呼び出す場合は、メインプログラムの[ユーザ定義イベント]テーブルの[公開]カラムをチェックする必要があります。

E＝ライン

この値を指定した場合、メニュー上、この位置に横線（区切り線）が表示されます。

M＝メニュー

メニューを階層化する場合に、この値を指定します。プルダウンメニューで、このメニューが最上位の場合、[パラメータ]カラムで指定した名前がメニューバーに表示されます。一方、メニューが下位のメニューの場合、またはコンテキストメニューの場合は、[パラメータ]カラムで指定した名前は、メニューの中のテキスト（コマンド名）になります。

実行時、このメニューの中のテキストをエンドユーザが選択すると、その下位のメニューが表示されます。また、プルダウンメニューの最上位を除くレベル、またはコンテキストメニューの全てのレベルで、実行時にメニューの中でテキストの文字の前に下線が表示されるように設定できます。その場合、下線付きで表示したい文字の前にアンパサンド（＆）を付けます。これで、実行時、メニューが表示された時、この文字をエンドユーザが入力すると、このテキスト（コマンド）を選択したことになります。

なお、プルダウンメニューの最上位のレベル（メニューバーのレベル）の場合には、Altキーとの組み合わせ文字によるショートカットキーが自動生成されます。ただし、ショートカットキーは、テキストベースのシステムだけ有効です。

W=ウィンドウリスト

この値を指定した場合、メニューは「ウィンドウの一覧」として表示されます。

このメニュータイプは、リッチクライアントタスクではサポートされません。


メニュー 定義テーブル ユーザメニュー名

ユーザメニュー名

メニューとヘルプ > メニュー > メニュー定義テーブル

このカラムには、実行時にメニューに表示されるテキスト（コマンド名）を定義します。エンドユーザは、このテキストを見ることになります。

最上位レベルのプルダウンメニューでは、[ユーザメニュー名]カラムに指定した名前がメニューバーに表示されます。プルダウンのサブメニューレベルと、全てのコンテキストメニューレベルでは、[ユーザメニュー名]カラムに指定した名前が、サブメニュー、関連表示、または動作を呼び出すメニューオプションになります。

下線の付いた文字の前にアンパサンド（&）を挿入すると、プルダウンまたはコンテキストメニューの任意のレベルにアクセスキーを指定できます。実行時にメニューが表示されたら、下線の付いた文字を入力すると、そのメニューオプションが選択されます。 例えば：ファイル(&F)と指定されたメニューは、Alt+Fキーを使用して起動させることができます。

このカラムではUnicodeを使用することができます。Magic V9Plusのアプリケーションから移行した場合、テキストはデフォルトコードページに従って自動的にUnicodeに変換されます。


メニュー 定義テーブル 論理メニュー名

論理メニュー名

メニューとヘルプ > メニュー > メニュー定義テーブル

このカラムには、メニュー項目（コマンド）の論理名を設定します。この論理名は、エンドユーザには見えません。プログラム内でメニュー関数を使用して指定する場合はこのメニュー名を使用します。


メニュー 定義テーブル パラメータ

パラメータ

メニューとヘルプ > メニュー > メニュー定義テーブル

このカラムの値は、[タイプ]カラムに指定した値（メニューのタイプ）によって異なります。このカラムからズームすると、[タイプ]カラムに指定した値に応じたメニュー定義画面が表示されます。

タイプ | パラメータ | 意味
M＝メニュー | サブメニュー | ズームすると、[メニュー定義]テーブルが表示されます。このテーブルは、１つ下のレベルのメニュー定義画面です。 ここには、このサブメニューレベルのオプション数が表示されます。
P＝プログラム | プログラム番号 | ズームすると[プログラム一覧]が表示され、プログラム番号が選択できます。 ここには、プログラム番号が表示されます。
E＝OSコマンド | OSコマンド | 一時的にOSに抜け、OSのコマンドを実行することができます。スクリプトやバッチファイルなどの実行可能なOSのコマンドを指定できます。 Windowsの「ファイルを開く」ダイアログでファイルを選択することもできます。 OSコマンドを指定しなかった時には、実行時、このメニュー項目をエンドユーザが選択するとOSシェルへ移行します。
V＝イベント | イベント | イベントを発行し、[イベント]ロジックユニットを実行させます。 [システム]、[内部]、[ユーザ]のいずれかのタイプに属するイベントを指定できます。 ここには、イベント名が表示されます。
L＝ライン | N/A | 前のメニュー項目と次のメニュー項目との間に横の区切り線を表示することができます。


メニュー 定義テーブル ショートキー

ショートキー

メニューとヘルプ > メニュー > メニュー定義テーブル

ショートカットキーを変更したい場合、このカラムからズームし[キー設定]ダイアログを表示し、定義する実際のキーの組み合わせを押します。アクティブなキーの組み合わせが、それぞれユニークである必要があります。

アクセスキーを変更したい場合、[キーボード割付]テーブルの[キー]カラムの内容変更する必要があります。

このカラムは、[メニュータイプ]が「プログラム」、「OSコマンド」、および「イベント」のみ有効です。


メニュー 権利設定

権利設定

メニューとヘルプ > メニュー

メニューを定義する時には、[オプション]メニューの[権利設定]を選択して、オプションを設定することができます。

[メニュー]リポジトリの画面で、[オプション／権利設定]を選択すると、[権利設定]ダイアログが表示されます。このダイアログでは、メニューシステムに対する開発者の使用権利を設定できます。使用権利は、「照会権利」、「修正権利」、「削除権利」、「登録権利」の4つについて個別に設定が可能です。

[メニュー特性]による権利設定

[メニュー特性]ダイアログの[特性]タブの[権利]特性を使用して、メニューの使用権利を指定することもできます。[権利]特性には使用権利を番号で指定します。

この番号により、エンドユーザが、そのメニューを使用できるかどうかが決まります。指定した使用権利が付与されていないユーザは、このメニューにはアクセスできず、メニュー項目を選択することもできません。具体的には、メニューは表示されず、他のメニューが寄せられて表示されます。


メニュー特性

メニューとヘルプ > メニュー

[メニュー定義]テーブル上で、[編集]メニューから[特性]を選択すると、[メニュー特性]ダイアログが表示されます。[特性]タブに表示される特性は、[メニュー定義]リポジトリの[タイプ]カラムの設定値によって異なります。

[メニュー特性]ダイアログは、次の3つのタブで構成されます。

[特性]タブ

[イメージ]タブ

[初期設定]タブ


メニュー 特性 特性タブ

[特性]タブ

メニューとヘルプ > メニュー > メニュー特性

[特性]タブでは、メニュー項目に対するアクセス権を割り当てることなどができます。[メニュー特性]ダイアログの[権利]に入力した番号によって、各エンドユーザがこのメニュー項目に対するアクセス権を持っているかどうかが判断されます。ここで指定する権利を持たないエンドユーザには、この項目がメニューに表示されません。

[OSコマンド]メニュー項目には、特別な[メニュー特性]ダイアログが表示されます。このダイアログでは、[権利]特性のほかに、[表示]および[ウエイト]ボックスでOSセッションの開き方を指定できます。

[特性]タブで設定する特性は次のとおりです。

権利

ヘルプ画面

自動ヘルプ

表示

ウェイト

パラメータ

コンテキストID

ソースコンテキスト

出力先コンテキスト


メニュー 特性 特性タブ 権利

権利

メニューとヘルプ > メニュー > メニュー特性 > 特性タブ

このカラムには使用権利を指定します。この使用権利により、実行時、エンドユーザがメニューにアクセスできるかどうかが決まります。

アクセス権を持たないエンドユーザは、このメニュー項目をアクセスすることができなくなります。このメニュー項目はメニューに表示されず、スペース表示もされません。


メニュー 特性 特性タブ ヘルプ画面

ヘルプ画面

メニューとヘルプ > メニュー > メニュー特性 > 特性タブ

この特性を使用して、アプリケーションメニューにヘルプ画面を関連付けることができます。ズームすると[ヘルプ一覧]が表示されますので、ここからヘルプ画面を指定します。


メニュー 特性 特性タブ 自動ヘルプ

自動ヘルプ

メニューとヘルプ > メニュー > メニュー特性 > 特性タブ

アプリケーションメニューに自動ヘルプを設定します。ズームすると[ヘルプ一覧]が表示されますので、ここから自動ヘルプを指定します。


メニュー 特性 特性タブ 表示

表示 (デフォルト: N=通常)

メニューとヘルプ > メニュー > メニュー特性 > 特性タブ

メニュー項目のタイプが[OSコマンド]の場合には、外部プログラムの表示形式を指定します。値は、「H=なし」、「N=通常」、「Ｘ＝最大化」、「Ｍ＝最小化」のいずれかが指定できます。

  • H＝なし……この値にしておくと、外部プログラムが、現在表示されているウィンドウの裏で実行されます。つまり、外部プログラムはエンドユーザには見えません。

  • N＝通常……デフォルト値です。この値にしておくと、外部プログラムが最前面のウィンドウで実行されます。

  • X＝最大化……外部プログラムが最前面のウィンドウで実行されるとともに、そのウィンドウが画面いっぱいに最大化されます。

  • M＝最小化……外部プログラムが最小化されて実行されます。つまり、外部プログラムはアイコン化されます。

注意: この特性は、リッチクライアントタスクでは無効です。


メニュー 特性 特性タブ ウェイト

ウェイト

メニューとヘルプ > メニュー > メニュー特性 > 特性タブ

[ウェイト]特性では、呼び出されているプログラムの実行と並行してMagicのプログラムを実行するか、または、プログラムの完了までMagicのプログラムをいったん待機させるかどうかを指定できます。

この特性は、[メニュー定義]テーブルの[タイプ]カラムを「OSコマンド」にしている時にだけ表示されます。

  • アンチェック……デフォルト値です。呼び出されているプログラムの実行と並行してMagicのプログラムが実行されます。

  • チェック…… 呼び出されているプログラムの完了後、Magicのプログラムが再開されます。

注意: この特性は、リッチクライアントタスクでは無効です。


メニュー 特性 特性タブ パラメータ

パラメータ

メニューとヘルプ > メニュー > メニュー特性 > 特性タブ

メニューのタイプが「プログラム」か「イベント」の場合に有効になります。

[パラメータ]特性からズームすると、[パラメータ一覧]が開きます。ここで、呼び出すプログラム／ハンドラに渡すパラメータを定義します。

[パラメータ一覧]には、以下のカラムがあります。

  • 項目 ……起動プログラムにパラメータとして渡すデータ項目を指定します。起動先から値を受け取ることもできます。パラメータは「参照渡し」で渡されます。このカラムからズームして、[項目一覧]を表示し、ここから項目を選択できます。パラメータを式で指定する場合は、ここをスキップしてください。

  • 式 ……起動プログラムにパラメータとして渡す値を式で指定します。この場合、起動先から値を受け取ることはできません。パラメータは「値渡し」で渡されます。このカラムからズームして、[式]エディタを表示し、ここでパラメータ値となる式を定義します。[項目]カラムに定義済の場合は、このカラムにパークできません。

  • 内容 ……このカラムには、[項目]カラムに定義した項目名か、[式]カラムに定義した式の内容が表示されます。

  • スキップ ……起動先にパラメータ項目が定義してあり、このパラメータを渡さない場合は、このカラムをチェックしてください。

参照

パラメータの受け渡し

コール処理コマンド


メニュー 特性 特性タブ コンテキストID

コンテキストID

メニューとヘルプ > メニュー > メニュー特性 > 特性タブ

[コンテキストID]特性は、メニュータイプが「プログラム」の場合に有効になります。この特性は、新しいセッションを表す文字列が返ります。この特性は、オプションです。

この欄に項目のシンボル名を入力するか、[項目一覧]にズームして文字型項目を選択してください。メインプログラムで定義された項目を定義することができます。

項目のデータ型が文字型かUnicode型でない場合、入力内容はキャンセルされます。

[コンテキストID]特性に設定されるIDは、各コンテキストごとにユニークで、動的です。従って、同じプログラムを何回も起動した場合に、各プログラムのコンテキストを区別したい時に、この特性が使用できます。このような場合、コンテキストIDはコンテキスト名より効果的です。（プログラムが１回実行されるだけの場合は、コンテキスト名の方が効果的です。）

この特性は、リッチクライアントタスクではサポートされません。


メニュー 特性 特性タブ ソースコンテキスト

ソースコンテキスト （デフォルト：M=メインコンテキスト）

メニューとヘルプ > メニュー > メニュー特性 > 特性タブ

この特性は、プログラムメニューでのみ有効です。

複数のプログラムが並行して起動され、直近で起動されたプログラムから他のコンテキストをロードした場合、新しいプログラムのメインプログラムやグローバルパラメータをどこからコピーするか指定します。並列起動のプログラムだけに影響します。

指定できるオプションは以下の通りです。

  • M=メインコンテキスト …… 最初に起動された並行プログラムからコピーされます。

  • C=現在のコンテキスト …… 現在フォーカスのある並行プログラムからコピーされます。

この特性は、コンテキストID特性に格納されるコンテキストに影響します。

この特性は、リッチクライアントタスクではサポートされません。


メニュー 特性 イメージタブ

[イメージ]タブ

メニューとヘルプ > メニュー > メニュー特性

[イメージ]タブで設定する特性は次のとおりです。

イメージ場所

ボタンイメージ

ツールチップ

表示グループ

イメージ番号

参照

メニュー項目イメージ


メニュー 特性 イメージタブ イメージ場所

イメージ場所

メニューとヘルプ > メニュー > メニュー特性 > イメージタブ

Magicは、メニューにツールイメージを表示させることができます。この特性は、オプションイメージが表示される場所を指定します。次のオプションから選択します。

  • N＝なし……メニューイメージを表示しません。

  • B＝両方……メニューイメージをツールバーとメニューに表示します。

  • T＝ツールバー……メニューイメージをツールバーだけに表示します。

  • M＝メニュー……メニューイメージをメニューだけに表示します。

参照

メニュー項目イメージ


メニュー 特性 イメージタブ ボタンイメージ

ボタンイメージ

メニューとヘルプ > メニュー > メニュー特性 > イメージタブ

Magicイメージファイルの記述に基づいて定義したユーザイメージファイルを指定します。指定したイメージがツールバーボタンに表示されます。ここからズームするとWindowsの[ファイルを開く]ダイアログが表示されます。ここから、イメージファイルを選択してください。

参照

メニュー項目イメージ


メニュー 特性 イメージタブ ツールチップ

ツールチップ

メニューとヘルプ > メニュー > メニュー特性 > イメージタブ

50桁以内の文字列を入力します。マウスカーソルをツールボタン上に置いた時に表示されます。ボタンの機能に関する簡単なヒントを記述します。


メニュー 特性 イメージタブ 表示グループ

表示グループ

メニューとヘルプ > メニュー > メニュー特性 > イメージタブ

ツールバーのボタンをグループ分けする場合のグループ番号（0～9999）を指定します。ツールボタンの表示位置を示すグループ番号を指定してください。

グループ間にはセパレータが挿入されます。

数値が小さい順に、左側から表示されます。


メニュー 特性 イメージタブ イメージ番号

イメージ番号

メニューとヘルプ > メニュー > メニュー特性 > イメージタブ

内部ツールボタンイメージの番号です。これらのイメージはMagicの内部に埋め込まれており、選択時に使用できます。イメージは、ここからズームして[表示内容を取得]ダイアログから選択します。

参照

メニュー項目イメージ


メニュー 特性 初期設定タブ

[初期設定]タブ

メニューとヘルプ > メニュー > メニュー特性

[初期設定]タブで設定する特性は次のとおりです。

チェックマーク

可視

有効


メニュー 特性 初期設定タブ チェックマーク

チェックマーク

メニューとヘルプ > メニュー > メニュー特性 > 初期設定タブ

メニュー項目の左にチェックマークを付けるかどうかを指定します。ツールボタンを指定している場合、このチェックを付けると、そのボタンが押されている状態で表示されます。


メニュー 特性 初期設定タブ 可視

可視

メニューとヘルプ > メニュー > メニュー特性 > 初期設定タブ

メニュー項目またはツールバーボタンの表示、非表示を指定します。


メニュー 特性 初期設定タブ 有効

有効

メニューとヘルプ > メニュー > メニュー特性 > 初期設定タブ

メニュー項目またはツールバーボタンの有効、無効を指定します。

注意：

内部イベントが設定されたメニューの場合は、この設定は無効です。メニューに無効なイベントが割り当てられている場合、実行中はメニューが無効になります。


メニュー プログラムメニューサポート

プログラムメニューサポート

メニューとヘルプ > メニュー

プログラムメニューは、通常いくつかのメニュー（デフォルトメニューや[顧客]メニュー、および[印刷]メニューなど）が組み合わされて表示されます。

Magicには、特定のプログラムやそのサブプログラムをメニューに追加する機能があります。

さらに、フォーム上の各コントロールごとに異なるコンテキストメニューを割り当てることができます。

メニューは、入力されたメニューの集まりです。メニューがコンテキストメニューか、プルダウンメニューかどうかは、それが使用されるコンテキスト内で定義されます。

メニュー関数を使用することで、プログラムによってメニューを操作することが可能です。

[論理メニュー名]カラムで指定された名前をメニュー関数で指定することで、メニューを表示したり、非表示にしたりすることができます。これらの機能を有効に利用するには、ユニークな名前を指定する必要があります。

コントロールの[コンテキストメニュー]特性には、コントロールで表示するためのコンテキストメニューを指定します。

参照

MENUリテラル

実行時のコンテキストメニュー

メニューパスの設定


メニュー プログラムメニューサポート 実行時のメニュー

実行時のコンテキストメニュー

メニューとヘルプ > メニュー > プログラムメニューサポート

メニューのタイプ（プルダウンまたはコンテキスト）は、使用されるコンテキストによって決まります。メニューは、使用されるコンテキストに依存し、プルダウンメニューやコンテキストメニューとして使用することができます。

例えば、フォームの[コンテキストメニュー]特性に「デフォルトプルダウンメニュー」を選択した場合、表示されるコンテキストメニューは「デフォルトプルダウンメニュー」と同じ構造を持っています。

この機能によって、新たにメニュー構造を定義することなく、コンテキストメニューを表示させることができるようになります。

参照

メニューパスの設定


メニュー プログラムメニューサポート メニューパスの設定

メニューパスの設定

メニューとヘルプ > メニュー > プログラムメニューサポート

MnuAdd関数でメニューパスを設定することができます。メニューパスは、「\」記号によってて区切られた論理メニュー名によって定義されます。「\」記号は、メニュー構造内のサブメニューを表しています。

例えば、以下の構造で説明します。(括弧内は、論理メニュー名です。)

ファイル (fle) | 編集 | 表示 | ヘルプ
新規 (nw) | 切り取り |  |
メッセージ (msg) | コピー |  |
Fax | 貼り付け |  |
開く (opn) |  |  |
メッセージ |  |  |

  • [ファイル]メニューに「プロジェクト」と呼ばれるエントリを追加します。このエントリは、[新規]サブメニューの下に同じレベルで表示するようにします。この場合、「fle\nw」を指定します。これにより、[ファイル]メニューには、[新規]、[プロジェクト]、[開く]が含まれます。

  • [ファイル]サブメニューの最初のエントリとして、「閉じる」を追加します。この場合、「fle\」を指定します。パスの最後に「\」記号が付いているため、入力すると新しいエントリは、最初のエントリになります。これにより、[ファイル]メニューには、[閉じる]、[新規]、[開く]が含まれます。

  • [ファイル]メニューの[新規]サブメニュー内に「接続」と呼ばれるエントリを追加します。この場合、「fle\nw\」を指定します。「新規」サブメニューの最初に新しいエントリが追加されます。これにより、[新規]サブメニューには、[接続]、[メッセージ]、[Fax]が含まれます。

  • [ファイル]メニューの[新規]サブメニュー内で[メッセージ]サブメニューの後に「接続」と呼ばれるエントリを追加します。この場合、「fle\nw\msg」を指定します。「メッセージ」サブメニューの後に新しいエントリが追加されます。これにより、[新規]サブメニューには、[メッセージ]、[接続]、[Fax]が含まれます。

  • もし名前が存在しない場合、見つかったパスの最後のメニューの次に追加されます。例えば、[印刷]メニューの後に「特性」というエントリを追加したい場合、「fle\prn」を指定したとします。しかし、「prn」が存在しないとしたら、「特性」エントリは、[ファイル]メニューの最後に追加されます。これにより、[ファイル]メニューには、[閉じる]、[新規]、[開く]、[特性]が含まれます。

参照

実行時のメニューコンテキスト


メニュー関数

メニューとヘルプ > メニュー

メニューの機能を拡張するために、以下のようなメニュー関数が提供されています。

  • Menu …… 現在のプログラムに至るまでのメニュー経路を返します。

  • MnuCheck …… メニュー項目の前のチェックマークの表示／非表示を設定します。

  • MnuEnabl …… メニュー項目の有効／無効を設定します。

  • MnuName …… 指定したメニューのユーザメニュー名を変更します。

  • MnuShow …… メニュー項目の表示／非表示を設定します。

  • MnuAdd …… プログラム実行時に動的にプルダウンメニューにメニューを追加します。

  • MnuRemove …… プログラム実行時に動的にプルダウンメニューからメニューを削除します。

  • MnuReset …… デフォルトのプルダウンメニュー構造に戻します。


ヘルプ

メニューとヘルプ >

参照

ヘルプリポジトリ

ヘルプタイプ

ヘルプとUnicode


ヘルプリポジトリ

メニューとヘルプ > ヘルプ

[ヘルプ]リポジトリでは、エンドユーザヘルプを定義します。

このリポジトリには以下のカラムがあります。

名前

タイプ

フォルダ

公開名


ヘルプ リポジトリ 名前

名前

メニューとヘルプ > ヘルプ > ヘルプリポジトリ

ヘルプの名前を入力します。


ヘルプ リポジトリ フォルダ

フォルダ

メニューとヘルプ > ヘルプ > ヘルプリポジトリ

ナビゲータで定義したヘルプフォルダの1つにヘルプを格納する場合は、[フォルダ]ボックスをクリックして格納先のフォルダを選択します。


ヘルプ リポジトリ 公開名

公開名

メニューとヘルプ > ヘルプ > ヘルプリポジトリ

ヘルプの公開名を指定します。そのヘルプ定義をコンポーネントとして外部から利用する場合に必須です。公開名はプロジェクトファイル内でユニークでなければなりません。


ヘルプ リポジトリ タイプ

ヘルプタイプ

メニューとヘルプ > ヘルプ

[ヘルプ]リポジトリの[タイプ]カラムには、ヘルプの種類を指定します。

Magicでは、以下の５種類のヘルプが使用できます。

  • I=内部 …… Magic独自形式の内部ヘルプです。簡単なテキスト形式のウィンドウを表示します。

  • P=自動 …… カーソルを置いた場合に自動的にステータスバーに表示される自動ヘルプです。

  • W=Window …… WindowsヘルプまたはHTMLヘルプを開きます。

  • T=ツールチップ …… ツールバーのボタンにカーソルを置いた場合に自動的に表示されるバルーンヘルプです。

  • U=URL …… ブラウザ形式のヘルプです。

タイプのデフォルト値は「I=内部」です。[タイプ]のコンボボックスをクリックすると、別のタイプを選択できます。

注意：

WindowsヘルプとURLヘルプの定義内容は、外部ツールで定義する必要があります。


ヘルプ リポジトリ タイプ 内部

内部ヘルプ

メニューとヘルプ > ヘルプ > ヘルプタイプ

Magic独自の形式のヘルプで、「内部ヘルプ」といいます。内部ヘルプの編集を行うには以下のようにします。

ヘルプリポジトリ上で、[編集]メニューから[特性]（Alt+Enter）を選択するかズームで[ヘルプ特性]シートを開きます。 [ヘルプ特性]シートの[テキスト]をクリックし、ヘルプの内容を入力します。用意されているスペースが十分でない場合は、[テキスト]カラムからズームすることでテキストボックスを開き、メッセージ全体を表示することができます。

設定可能な内部ヘルプの特性には以下のものがあります。

モデル |
詳細 | 表示
テキスト | 境界 フォント 色
入力 | 位置とサイズ
タイトルバー システムメニュー | 左辺位置 上辺位置 高さ 幅

参考

ブラウザタスクやリッチクライアントタスクでは使用できません。


ヘルプ リポジトリ タイプ 内部 モデル

モデル

メニューとヘルプ > ヘルプ > ヘルプタイプ > 内部ヘルプ

継承が解除されている特性の継承をし直したり、モデルの全ての特性の継承を解除することができます。さらに、別のモデルを選択することもできます。

他のモデルを選択する場合にクリックします。

デフォルトモデルの特性を表示する場合にクリックします。

モデル特性の継承を解除する場合にクリックします。

モデル特性を継承する場合にクリックします。


ヘルプ リポジトリ タイプ 内部 テキスト

テキスト

メニューとヘルプ > ヘルプ > ヘルプタイプ > 内部ヘルプ

内部ヘルプのテキストを入力します。


ヘルプ リポジトリ タイプ 内部 タイトルバー

タイトルバー

メニューとヘルプ > ヘルプ > ヘルプタイプ > 内部ヘルプ

タイトルバーの見出しスタイルを指定します。「Yes」か「No」のいずれを指定します。タイトルバーのテキストは、[ヘルプ]リポジトリの[名前]カラムから取り込まれます。

タイトルバーが表示されない場合、エンドユーザはヘルプウィンドウを移動することができず、また、最大化や最小化のボタンが表示されなくなります。


ヘルプ リポジトリ タイプ 内部 システムメニュー

システムメニュー

メニューとヘルプ > ヘルプ > ヘルプタイプ > 内部ヘルプ

[タイトルバー]特性を「Yes」とした場合、エンドユーザがシステムメニューからヘルプ画面にアクセスできるかどうかを指定します。システムメニューは、ここで「Yes」が設定されている場合のみ表示されます。


ヘルプ リポジトリ タイプ 内部 境界

境界

メニューとヘルプ > ヘルプ > ヘルプタイプ > 内部ヘルプ

フレームの種類を指定します。選択肢は以下の通りです。

  • T＝細線

  • H＝太線（デフォルト）

  • N＝なし


ヘルプ リポジトリ タイプ 内部 フォント

フォント

メニューとヘルプ > ヘルプ > ヘルプタイプ > 内部ヘルプ

ヘルプ画面のフォントスタイルを指定します。ズームすると[フォント]テーブルが表示されます。


ヘルプ リポジトリ タイプ 内部 色

色

メニューとヘルプ > ヘルプ > ヘルプタイプ > 内部ヘルプ

ヘルプ画面の色を指定します。ズームすると[基本色一覧]が表示されます。

注意：

[色]特性は、日本語版でのみ有効です。


ヘルプ リポジトリ タイプ 内部 左辺位置

左辺位置

メニューとヘルプ > ヘルプ > ヘルプタイプ > 内部ヘルプ

ヘルプ画面の左辺位置を指定します。


ヘルプ リポジトリ タイプ 内部 上辺位置

上辺位置

メニューとヘルプ > ヘルプ > ヘルプタイプ > 内部ヘルプ

ヘルプ画面の上辺位置を指定します。


ヘルプ リポジトリ タイプ 内部 幅

幅

メニューとヘルプ > ヘルプ > ヘルプタイプ > 内部ヘルプ

ヘルプ画面の幅を指定します。


ヘルプ リポジトリ タイプ 内部 高さ

高さ

メニューとヘルプ > ヘルプ > ヘルプタイプ > 内部ヘルプ

ヘルプ画面の高さを指定します。


ヘルプ リポジトリ タイプ 自動

自動ヘルプ

メニューとヘルプ > ヘルプ > ヘルプタイプ

[ヘルプ]リポジトリの[自動ヘルプ]行から、[編集]メニューの[特性]（Alt+Enter）を選択するかズームで[ヘルプ特性]シートを開き、自動ヘルプを作成します。

[テキスト]をクリックすると、自動ヘルプを起動した際にステータスバーに表示されるメッセージ（最大:250桁）を入力できます。

フォントは、[フォント]テーブルの「ステータスライン」で設定されたフォントが使用されます。


ヘルプ リポジトリ タイプ Windows

Windows形式ヘルプ

メニューとヘルプ > ヘルプ > ヘルプタイプ

Windows形式のヘルプは、Windowsヘルプシステムにより指定された Windows形式のヘルプファイル（HLP/CHM）を開きます。Windows形式ヘルプを[ヘルプ]リポジトリで指定してズームすると、[ヘルプ特性]シートを開くことができます。

Windows形式ヘルプのヘルプ特性には以下の特性があります。

モデル

ヘルプファイル名

ヘルプキー

ヘルプコマンド

注意：

  • Windowsのヘルプシステムについては、Windowsのヘルプ作成用のオーサリングツールのマニュアルを参照してください。

  • ブラウザタスクやリッチクライアントタスクでは使用できません。


ヘルプ リポジトリ タイプ Windows モデル

モデル

メニューとヘルプ > ヘルプ > ヘルプタイプ > Windows形式ヘルプ

継承が解除されている特性の継承をし直したり、モデルの全ての特性の継承を解除することができます。さらに、別のモデルを選択することもできます。

他のモデルを選択する場合にクリックします。

デフォルトモデルの特性を表示する場合にクリックします。

モデル特性の継承を解除する場合にクリックします。

モデル特性を継承する場合にクリックします。


ヘルプ リポジトリ タイプ Windows ファイル名

ヘルプファイル名

メニューとヘルプ > ヘルプ > ヘルプタイプ > Windows形式ヘルプ

ここには、専用のオーサリングツールなどを使用して作成したWindowsヘルプのファイル名（*.Hlp/*.CHM）を入力します。ここからズームして[ファイルを開く]ダイアログを開き、ヘルプファイルを指定することもできます。


ヘルプ リポジトリ タイプ Windows コマンド

ヘルプコマンド

メニューとヘルプ > ヘルプ > ヘルプタイプ > Windows形式ヘルプ

Windowsのヘルプコマンドを指定します。この欄には、デフォルトのヘルプコマンドが表示され、そのまま使用することもできます。また、コンボボックスを開いて、そこでコマンドを指定しても結構です。指定できるコマンドは次の通りです。

  • C＝コンテキスト……HELP_CONTEXTコマンドを発行します。
    [キー値]欄には、トピックのコンテキスト番号を示す数値を指定します。この設定の場合、.HPJファイルの[MAP]セクションで定義されているコンテキストのうち、[キー値]欄で指定したコンテキスト番号（マップ ID）に対応するトピックのヘルプが表示されます。

  • O＝目次……HELP_CONTENTSコマンドを発行します。
    [キー値]欄の値は無視されます。この設定の場合、.HPJファイルの[OPTIONS]セクションの「CONTENTS」オプションで定義されている目次トピックが表示されます。

  • S＝セットコンテキスト……HELP_SETCONTENTSコマンドを発行します。SetContent マクロを呼び出し、ヘルプ システムの目次トピックのコンテキスト文字列を定義します。
    [キー値]欄には、アプリケーションで目次トピックとして表示したいトピックのコンテキスト番号を指定します。エンドユーザがF1キーを押下した時、この欄で指定した目次トピックが表示されます。

  • P＝コンテキストポップアップ……HELP_CONTEXTPOPUPコマンドを発行します。
    [キー値]欄には、トピックのコンテキスト番号を示す数値を指定します。この設定の場合、.HPJファイルの[MAP]セクションで定義されているコンテキストのうち、[キー値]欄で指定したコンテキスト番号に対応するトピックのヘルプがポップアップウィンドウに表示されます。

  • K＝キーワードで検索……HELP_KEYコマンドを発行します。
    [キー値]欄には、表示したいトピックのキーワード文字列を指定します。この設定の場合、キーワード一覧のキーワードのうち、[キー値]欄で指定したキーワードに合致するキーワードがあった場合、そのキーワードで示されるトピックが表示されます。キーワード一覧に合致するキーワードが複数見つかった時には、[キーワードで検索]ダイアログが表示され、合致するキーワードが全て[ジャンプ一覧]に表示されます。

  • M＝ヘルプマクロ……HELP_COMMANDコマンドを発行します。
    [キー値]欄には、ヘルプマクロの文字列を指定します。この設定では、[キー値]欄で指定したヘルプマクロが実行されます。

  • F＝ForceFile……HELP_FORCEFILEコマンドを発行します。
    [キー値]欄の値は無視されます。この設定の場合、指定したヘルプファイルが表示されます。ヘルプファイルが適当でない場合、処理は行われません。

  • H＝Help on Help……HELP_HELPONHELPコマンドを発行します。
    [キー値]欄の値は無視されます。この設定の場合、「ヘルプの使い方」の目次トピックが表示されます。

  • Q＝終了……HELP_QUITコマンドを発行します。
    [キー値]欄の値は無視されます。この設定の場合、WinHelpに対してヘルプが必要でない旨のメッセージが送られ、ヘルプ表示をクローズします。

注意：

HTMLヘルプの場合は以下のみ有効です。

  • C＝コンテキスト

  • K=キーワードで検索

  • Q＝終了


ヘルプ リポジトリ タイプ Windows キー

ヘルプキー

メニューとヘルプ > ヘルプ > ヘルプタイプ > Windows形式ヘルプ

ここには、数値または文字列を指定しますが、この数値または文字列によりWindowsのヘルプシステムのヘルプ画面が識別されます。

  • [ヘルプコマンド]特性が「C=コンテキスト」、「S=セットコンテキスト」、または「P=コンテキストポップアップ」の場合、必要なヘルプトピックのコンテキスト番号を入力します。

  • [ヘルプコマンド]特性が「O=目次」、「F=ForceFile」、「H=Help on Help」、または「Q=終了」の場合、この特性は無視されます。

  • [ヘルプコマンド]特性が「M=ヘルプマクロ」の場合、実行するヘルプマクロを含む文字列を入力します。

  • [ヘルプコマンド]特性が「K=キーワードで検索」の場合、必要なトピックのキーワードを含む文字列を入力します。


ヘルプ リポジトリ タイプ ツールチップ

ツールチップ

メニューとヘルプ > ヘルプ > ヘルプタイプ

ツールチップは、エンドユーザがコントロール上にカーソルを置いた時に自動的に表示されます。

ツールチップヘルプを作成するには、[ヘルプ]リポジトリのツールチップヘルプ項目の[名前]設定から、[ヘルプ特性]シートにズームします。

ツールチップをコントロールに付加するには、[コントロール特性]シートの[ツールチップ]特性を使用します。この表示は、[設定／動作環境]で表示される[動作環境]ダイアログの[動作設定]タブにある[ツールチップ表示タイムアウト]設定に定義した時間まで、あるいはカーソルが移動するまでユーザの画面に残ります。

使用されるフォントは、フォントテーブルの[ツールチップ]で定義したフォントです。色は選択できません。ツールチップは最大500桁です。


ヘルプ リポジトリ タイプ URL

URLヘルプ

メニューとヘルプ > ヘルプ > ヘルプタイプ

URLヘルプは、ブラウザタスクとリッチクライアントタスクでのみ有効なヘルプで、F1キーを押下した時に開くブラウザページを指定します。[URLヘルプ特性]シートの[URL]特性をクリックし、ページのURLを入力します。


メニュー ヘルプとUnicode

ヘルプとUnicode

メニューとヘルプ > ヘルプ

以下のヘルプタイプでは、Unicode文字を使用することができます。

  • 内部ヘルプ

  • 自動ヘルプ

  • ツールチップ

V9Plus のアプリケーションを移行した場合、デフォルトコードページに従ってUnicodeに変換されます。


ソース管理

Magic V10は、ソースファイルを管理する簡単な方法を提供します。

Magic V10は、外部のバージョン管理ソフトを利用することでバージョン管理を行うことができます。この機能は、Magicの実行中にプロジェクトのバージョンを保存したり、過去のバージョンを検索したり、アクセスしたりすることができます。

また、バージョン管理機能は、チーム開発環境での作業をサポートします。チーム開発は、同じプロジェクトを複数の開発者が並行して開発することを意味します。


バージョン管理

ソース管理 >

Magic V10は、SCC (Source Code Control) API Ver1.01を使用するサードパーティーのバージョン管理ソフト（Visual SourceSafe や PVCSなど）を利用することで、バージョン管理機能をサポートしています。

このバージョン管理機能には、以下の利点があります。

  • バージョンの保存 …… プロジェクトのバージョンを保存し、後でどのバージョンのソースに対してもアクセスすることができます。チーム開発環境で作業する場合、この機能は有益です。1人の開発者で開発を行う場合でも、過去のバージョンを検索し、アクセスするためにこの機能を使用することができます。

  • ファイルの保護 …… ファイルを編集する場合、最初に、ファイルをチェックアウトする必要があります。この機能によって、他のユーザによる上書き操作からソースファイルは保護されます。

  • チーム開発 …… 複数の開発者によって並行してプロジェクトを開発することができます。各開発者は、プロジェクトのソースファイルのコピーを基に開発作業を行い、サーバ上に管理されているファイルとの同期を取る必要があります。詳細は、「チーム開発」を参照してください。

  • 変更の追跡 …… 過去に保存したバージョンと変更内容を比較することができます。

  • ユーザの追跡 …… 誰がどのバージョンに対して編集作業を行ったかを確認できます。

注意：

CVSを使用してバージョン管理を行う場合、以下のどちらかの条件が必要です。

  • クライアントのOSに対してPower User以上の権限を持ったユーザでログインする。

  • 以下のフォルダにフルコントロールの権限を割り当てる。

  • CVSDBのフォルダ(デフォルトではC:\Program Files\cvsnt\db)

  • CVSの一時フォルダ(デフォルトではC:\Program Files\cvsnt\TEMP)

CVSクライアントをMagic Studioのインストール処理とは別に行う場合、Magic Studioのインストールフォルダ内に「cvs_client」サブフォルダを作成し、以下のファイルをコピーしてください。

  • cvs.exe

  • expat.dll

  • iconv.dll

  • igloo.dll

  • pserver_protocol.dll

参照

バージョン管理による作業

リポジトリ入出力（バージョン管理）

バージョン管理用メニュー

チェックアウト一覧

キャビネットファイルの作成

デフォルトデータベース（バージョン管理）


バージョン管理 作業

バージョン管理による作業

ソース管理 > バージョン管理

バージョン管理機能を利用して作業を行うには、プロジェクトの作成時に[バージョン管理データベースに新規プロジェクトを作成します。]のオプションを選択する必要があります。プロジェクトの作成時に、このオプションを選択しなかった場合、[ファイル]メニューの[バージョン管理]サブメニューから[プロジェクトの追加]を選択することで、バージョン管理を有効にすることができます。

プロジェクトの作成時、プロジェクトに関する情報は多くのソースファイルに保持されます。ソースファイルは、プロジェクト情報を含む出力ファイルです。オブジェクト間の参照情報は、内部連続番号(ISN)に書き込まれます。各ソースファイルは、Magicのオブジェクト（リポジトリやプログラムなど）を含んでいます。プロジェクトを新規作成した時点で、空のプロジェクトには、各リポジトリやメインプログラムのためのソースファイルが作成されます。

プロジェクトの開発時、全てのプロジェクトソースファイルにアクセスできる必要があります。プロジェクトを実行する場合、プロジェクトソースファイルまたはプロジェクトソースファイルを含んだキャビネットファイルのどちらかが必要です。

バージョン管理機能を使用しないでプロジェクトを開発することもできます。この時は、プロジェクトを新規作成する際に、[バージョン管理データベースに新規プロジェクトを作成します。]のオプションを選択しないようにします。

バージョン管理モードでプロジェクトを開いた場合、ソースファイルはチェックアウトしないければ読込専用の状態になっています。

注意：

  • バージョン管理機能を使用して作業するように定義した後、この設定を解除した場合、変更されたオブジェクトが存在する場合、そのオブジェクトはまだチェックアウト状態で残ります。

  • 手動で読込専用モードを解除する必要があります。

参照

バージョン管理へのログオン

リポジトリ入出力（バージョン管理）

キャビネットファイルの作成

定義内容の登録

ソースファイルの紛失

プロジェクトのアクセス

バージョン管理の利用

デフォルトデータベース（バージョン管理）


バージョン管理 作業 ログオン

バージョン管理へのログオン

ソース管理 > バージョン管理 > バージョン管理による作業

バージョン管理サーバと接続するために、デフォルトでは、バージョン管理ソフトはOSのユーザIDを使用します。製品によっては、ユーザIDとパスワードを入力するためのログオンダイアログを表示するものもあります。

Visual SourceSafe上で作業する場合、[チェックアウト一覧]を開くか[ログオン]画面でチェックイン処理を行うと、以前入力したユーザIDを使用します。


バージョン管理 作業 リポジトリ入出力

リポジトリ入出力

ソース管理 > バージョン管理 > バージョン管理による作業

プロジェクトのリポジトリ出力ファイルは、出力ファイルに含まれるオブジェクトの種類を表すヘッダを持っています。オブジェクトを入力できるようにするためには、これらのオブジェクトをチェックアウトしなければなりません。ファイルに[プログラム]リポジトリなどの部分的なプロジェクト情報が含まれている場合、そのオブジェクトだけがヘッダ情報に記録されています。

注意：

リポジトリ入力できるのは、Magic V10から出力されたファイルのみです。

リポジトリ入力処理を開始する時に、[入力時にチェックアウト]ウィンドウを開きます。このウィンドウは、チェックアウトすべきオブジェクトを表示しています。

入力前にチェックアウトしないことを選択できる唯一のオブジェクトは、メインプログラムだけです。

Visual SourceSafeで作業する場合は、[コメント]欄にコメントを入力することができます。この情報は、ウィンドウ内で選択する全てのオブジェクトに適用されます。


バージョン管理 作業 キャビネットファイルの作成

キャビネットファイルの作成

ソース管理 > バージョン管理 > バージョン管理による作業

Magic V10では、プロジェクトをキャビネットファイルとして保存します。このファイルは、実行時にアプリケーションとして使用することができます。バージョン管理を使用してプロジェクトを開発する場合、キャビネットファイルの作成処理に関係することになります。

[ファイル]メニューから[キャビネットファイルの作成]を選択した場合、[キャビネットファイル]ダイアログボックスが開きます。[ファイル名]欄にキャビネットファイルの名前を入力します。また、ファイルをどこに保存するかを指定することもできます。デフォルトでは、Magicの作業フォルダに保存されます。


バージョン管理 作業 定義内容の登録

定義内容の登録

ソース管理 > バージョン管理 > バージョン管理による作業

プロジェクト開発時にバージョン管理ソフトを使用して行うことを指定した場合、Magic V10は、デフォルトでシステムレジストリーに定義されたバージョン管理ソフトを使用します。Magicは、以下のキーに示されたパスに登録されたバージョン管理ソフトにアクセスします。

HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\ProviderRegKey

このキーは、[InstalledSCCProviders]セクション内に定義されます。SCC APIをサポートする全ての製品は、このセクションに登録されます。

バージョン管理プロバイダを切り替える場合、[InstalledSCCProviders]セクション内の使用したい製品にカーソルを置き、データをコピーし、それを[SourceCodeControlProvider\ProviderRegKey]のデータとして貼り付けてください。

注意：

バージョン管理プロバイダを変更した場合、この変更を有効にするには、一旦Magicを終わらせて再起動する必要があります。


バージョン管理 作業 ソースファイルの紛失

ソースファイルの紛失

ソース管理 > バージョン管理 > バージョン管理による作業

ソースファイルが削除されたり、破損している場合、Magicはプロジェクトやプログラムをオープンできなくなります。

  • リポジトリ情報のソースファイルが存在しないか破損している場合 …… プロジェクトがオープンできません。

  • プログラムのソースファイルが存在しないか破損している場合 …… [プロジェクト]リポジトリの該当するプログラムの[名前]カラムにエラーメッセージが表示されます。

バージョン管理を使用して作業をしている場合、管理データベースの内容を基に最新の内容に復元することができます。

該当するプログラムのみを戻す場合

[プロジェクト]リポジトリの該当するプログラムの[名前]カラムにカーソルを移動し、[ファイル]メニューで[バージョン管理]を選択し、[最新バージョンの取得]をクリックすることで、プログラムがコピーされます。

プロジェクト全体を戻す場合

[プロジェクト]リポジトリの該当するプログラムの[名前]カラムにカーソルを移動し、[ファイル]メニューで[バージョン管理]を選択し、[最新プロジェクトの取得]をクリックすることで、プロジェクト全体がコピーされます。

プロジェクト全体を戻す場合（その２）

現在のプロジェクトがオープンできない場合は、[ファイル]メニューで[バージョン管理]を選択し、[サーバから開く]をクリックすることで、プロジェクト全体をコピーして開くことができます。


バージョン管理 メニュー

バージョン管理用メニュー

ソース管理 > バージョン管理

バージョン管理用メニューは、バージョン管理ソフトを使用して作業するように設定されたプロジェクトでのみ利用可能です。

バージョン管理用メニューは、[ファイル]メニューから[バージョン管理]を選択することでアクセスすることができます。

バージョン管理用メニューには、以下のサブメニューが表示されます。

  • チェックアウト

  • チェックイン

  • チェックアウト取消

  • 最新バージョンの取得

  • 最新プロジェクトの取得

  • バージョンの比較

  • 履歴

  • チェックアウト一覧

  • プロジェクトの追加

  • プロジェクトを除外

  • オフラインに設定

  • オフライン・オブジェクト

参照

バージョン管理による作業


バージョン管理 メニュー チェックアウト

チェックアウト

ソース管理 > バージョン管理 > バージョン管理用メニュー

[チェックアウト]オプションは、オブジェクトの最新バージョンをローカルPCにコピーし、更新作業を行うことができる状態にします。

[バージョン管理]メニューから［チェックアウト]を選択した場合、［オブジェクトのチェックアウト]ダイアログボックスが開きます。

このダイアログボックスは、オブジェクトをチェックアウトする前にコメントを入力することができます。(バージョン管理プロバイダーがチェックアウト処理でのコメントをサポートする場合)

開発者は、チェックアウトした後でのみオブジェクトを編集することができます。オブジェクトをチェックアウトしない場合、オブジェクトは読込のみに制限されます。[フォーム]エディタでは、編集操作ができる場合がありますが、チェックアウトされていない場合、全ての変更内容はソースに反映されません。

[プログラム]リポジトリ以外の全てのリポジトリは、リポジトリ全体がチェックアウトされます。例えば、[データ]リポジトリのチェックアウトは、[データ]リポジトリ全体がチェックアウトされます。プログラムは、個別にチェックアウトされます。

[プログラム]リポジトリをチェックするには、リポジトリのテーブルヘッダにパークし[バージョン管理]メニューの［チェックアウト]を選択します。

注意：

リポジトリ入力できるのは、eDeveloper V10で出力されたリポジトリ出力ファイルのみです。リポジトリ入力を実行すると［チェックアウト]ダイアログが表示されます。このダイアログに、入力するファイル内にあるチェックアウトすべきオブジェクトが表示されます。チェックアウトしないで入力できるオブジェクトはメインプログラムのみです。

リポジトリ入出力も参照してください。


バージョン管理 メニュー チェックイン

チェックイン

ソース管理 > バージョン管理 > バージョン管理用メニュー

[チェックイン]オプションは、現在作業中のオブジェクトを最新バージョンとして、バージョン管理サーバに保存します。このオプションは、現在のオブジェクトがチェックアウト状態の時のみ有効になります。

[バージョン管理]メニューから[チェックイン]を選択した場合、[オブジェクトのチェックイン]ダイアログボックスが開きます。このダイアログボックスは、オブジェクトをチェックインする前にコメントを入力することができます。

Visual SourceSafeを使用して作業を行う場合、オブジェクトをチェックアウトした時に入力したコメントが表示されます。コメントを入力しても表示されない場合、Magicのバージョン管理システムが、コメントを取り出すことができなかった可能性があります。複数のオブジェクトにコメントを入力していて、これらをチェックインした場合、全てのオブジェクトのうち1つが表示されます。

[オブジェクトのチェックイン]ダイアログボックスには、[チェックアウトを維持]のチェックボックスが含まれています。コピーをバージョン管理サーバに保存し、オブジェクトの編集作業を継続したい場合、このオプションを使用してください。このチェックボックスをチェックした場合、バージョン管理システムは、オブジェクトを一旦チェックインした後、即チェックアウトします。チェックボックスをチェックしない場合、オブジェクトはチェックインのみ行われます。

コメントなどのオブジェクト用の追加情報がある場合、[ログイン]ダイアログが表示されます。[キャンセル]をクリックすると、システムはオブジェクトに関するコメントや追加情報は表示されません。


バージョン管理 メニュー チェックアウト取消

チェックアウト取消

ソース管理 > バージョン管理 > バージョン管理用メニュー

[チェックアウト取消]オプションは、チェックアウトされたオブジェクトを解放し、チェックアウト前の状態に戻します。オブジェクトがチェックアウト状態にある場合のみ、この処理は有効です。

チェックアウトされている間に、オブジェクトが修正された場合、修正した内容が無効になる旨のメッセージが表示されます。

オブジェクトが修正されていなければ、操作の確認ダイアログを表示した後、オブジェクトを解放します。


バージョン管理 メニュー 最新バージョン

最新バージョンの取得

ソース管理 > バージョン管理 > バージョン管理用メニュー

[最新バージョンの取得]オプションは、バージョン管理サーバからオブジェクトの最新バージョンを取得します。このオプションを使用する場合、MagicはローカルPC内のオブジェクトのソースファイルを最新のバージョンで置き換えます。

プログラムの最新バージョンを取得

[プログラム]リポジトリのテーブルヘッダにパークした状態で、[バージョン管理]メニューの[最新バージョンの取得]を選択すると、最新バージョンを取得するかどうかを確認するダイアログボックスが表示されます。[プログラムの最新バージョンを取得]のチェックボックスをチェックすると、[プログラム]リポジトリ内の全てのプログラムの最新バージョンが取得されます。

複数のオブジェクトの最新バージョンを取得

アプリケーションオブジェクトとプログラムの２つのタイプの複数オブジェクトに対して最新バージョンを取得することができます。

注意：

[最新バージョンの取得]オプションのマージオプションは、バージョン管理サーバのソースコードをローカルPCのソースコードにマージしません。ローカルの状態が維持されます。（バージョン管理ソフトによっては利用できないものがあります。）

参照

最新プロジェクト・バージョン取得


バージョン管理 メニュー 最新プロジェクトバージョン

最新プロジェクトの取得

ソース管理 > バージョン管理 > バージョン管理用メニュー

[最新プロジェクトの取得]オプションは、バージョン管理サーバからプロジェクトの最新バージョンを取得します。

[バージョン管理]メニューから[最新プロジェクトの取得]を選択すると、[確認]ダイアログが表示され、「はい(Yes)」をクリックすると、バージョン管理サーバから最新のプロジェクトのソースファイルでローカルPCの内容を置き換えられ、置き換えられたオブジェクトが一覧表示されます。

全てのプロジェクトオブジェクトを取得したら、一旦プロジェクトをクローズし、再度オープンすることで、オブジェクトが置き換わったことが確認できます。


バージョン管理 メニュー バージョンの比較

バージョンの比較

ソース管理 > バージョン管理 > バージョン管理用メニュー

[差分]オプションを実行すると、バージョン管理ソフトの比較オプションが実行され、ローカル側のソースファイルとバージョン管理プロジェクト内のファイルの差分を表示します。

参照

差分ツールコマンドライン


バージョン管理 メニュー 履歴

履歴

ソース管理 > バージョン管理 > バージョン管理用メニュー

[履歴]オプションを実行すると、オブジェクトの異なるバージョンが表示された参照用ウィンドウが開きます。

Visual SourceSafeまたはPVCSを使用している場合、履歴の他にチェックインの時に入力したコメントが[コメント]欄に表示されます。これ以外のバージョン管理ソフトは、履歴が表示されるだけです。

[履歴]ウィンドウに表示されている[差分]ボタンをクリックすると、差分の履歴を参照することができます。PVCSの差分の履歴を参照するには、あらかじめ[動作環境]ダイアログの[差分ツールコマンドライン]パラメータに差分ツールを定義しておく必要があります。


バージョン管理 メニュー チェックアウト一覧

チェックアウト一覧

ソース管理 > バージョン管理 > バージョン管理用メニュー

[チェックアウト一覧]を選択すると[チェックアウト一覧]ウィンドウが表示されます。

[チェックアウト一覧]ウィンドウが表示される前に[ログイン]ダイアログが表示される場合があります。[ログイン]ダイアログによって、コメントなどのチェックアウト時の情報を取得することができます。ログインが失敗したり、[キャンセル]ボタンをクリックした場合、チェックアウト情報は無効になります。

このウィンドウには、チェックアウトされた全てのオブジェクトが一覧表示されます。また、誰がチェックアウトしたかも表示されます。

Visual SourceSafe や PVCS以外のバージョン管理ソフトを使用している場合、現在のユーザがどのオブジェクトをチェックアウトしているか、また他のユーザがどのオブジェクトをチェックアウトしているか表示されるだけです。他のユーザによってチェックされたオブジェクトは、[チェックアウトユーザ]カラムに「他のユーザ」と表示されます。これ以外の情報は表示されません。

現在のユーザによってチェックアウトされたオブジェクトは、青色で表示されます。

参照

PVCSの場合

Visual SourceSafeの場合


バージョン管理 メニュー チェックアウト一覧 PVCS

PVCSの場合

ソース管理 > バージョン管理 > バージョン管理用メニュー > チェックアウウト一覧

プロジェクトのバージョン管理情報が不正確な場合(例えば、パスが間違ってい場合）、バージョン管理プロジェクトに再接続する必要があります。

オブジェクトにチェックインやチェックアウトするするために[バージョン管理]メニューを使用することができます。


バージョン管理 メニュー チェックアウト一覧 Visual SourceSafe

Visual SourceSafeの場合

ソース管理 > バージョン管理 > バージョン管理用メニュー > チェックアウウト一覧

Visual SourceSafeを使用した場合、[チェックアウト一覧]の[チェックアウトユーザ]カラムには、現在のログインIDか「他のユーザ」のどちらかが表示されます。

ユーザが現在のPCの予期しない作業フォルダ上のオブジェクトのチェックアウトを行った場合、アスタリスク（*）がユーザIDとして表示されます。ユーザはこのタイプのオブジェクトを編集することができません。

また、プロジェクトの作業フォルダーに置かれるオブジェクトだけが、青色で表示され、チェックアウトやチェックインを行うことができます。

参考：

  • [チェックアウトユーザ]カラムは、オブジェクトをチェックしたユーザを示します。

  • [再表示]ボタンをクリックすると一覧が再読みされ、最新の情報を確認することができます。


バージョン管理 メニュー プロジェクトの追加

プロジェクトの追加

ソース管理 > バージョン管理 > バージョン管理用メニュー

プロジェクトの作成時に、バージョン管理の設定を行わなかった場合、[バージョン管理]メニューの[プロジェクトの追加]を実行することで、バージョン管理対象にすることができます。

このオプションを選択すると、[バージョン管理プロジェクトを作成]ダイアログが表示されます。ここでは、使用するバージョン管理製品に基づいて、表示される項目が異なります。例えばCVSの場合、サーバとリポジトリの名前を入力する必要があります。

注意：

ユーザ名は、現在のクライアント側のログオンID固定ですが、Magic.ini のSpecialCVSLogin パラメータを設定することで変更可能になります。


バージョン管理 メニュー プロジェクトの除外

プロジェクトを除外

ソース管理 > バージョン管理 > バージョン管理用メニュー

バージョン管理システムからプロジェクトを削除する場合、このオプションを選択してください。

当初、プロジェクトのバージョン管理を行うようにしていたが、後でスタンドアロンモードに変更したい場合、この操作を行います。


バージョン管理 メニュー オフラインに設定

オフラインに設定

ソース管理 > バージョン管理 > バージョン管理用メニュー

[オフラインに設定]オプションは、バージョン管理モードで動作するように設定されたプロジェクトをオフラインでアクセスできるようにします。このモードに設定すると、オブジェクトをチェックアウトすることなくプロジェクトを修正することができます。バージョン管理システムに再接続する時、変更内容の一覧が提供されます。

一旦プロジェクトをオフラインにすると、開発エンジンを終了するまでバージョン管理プロジェクトに接続できなくなります。

オブジェクトを更新する必要がある場合、そのソースファイル（XMLファイル）のバックアップが以下の名前で作成されます。

<Original name>_bck.xml

ソースファイルは、書込可能な状態に切り替わります。

開発エンジンを再起動して、オフラインモードに設定されたプロジェクトを最初にオープンしようとした時、バージョン管理サーバに再接続するかどうかを確認するダイアログボックスが表示されます。バージョン管理が有効でない場合、同じ開発セッション内で、バージョン管理サーバへの再接続要求処理は行われません。


バージョン管理 メニュー オフラインオブジェクト

オフライン・オブジェクト

ソース管理 > バージョン管理 > バージョン管理用メニュー

[バージョン管理]メニューから[オフラインオブジェクト]を選択すると、[オフライン変更オブジェクト]ウィンドウが表示されます。ここには、オフラインモードの状態で変更されたオブジェクト（書き込み可能なモードで、対応した*_bck.xmlファイルを持っている全てのオブジェクト）が一覧表示されます。

この一覧には、以下のカラムが表示されます。

  • オブジェクト名 …… オフラインモードでは、オフラインの[オブジェクト一覧]にオブジェクト名のみ表示されます。

  • チェックアウトユーザ …… バージョン管理に接続されている場合のみ有効になります。バージョン管理サーバに接続している場合は、現在のユーザ名か「他のユーザ」が表示されます。空白の場合は、全くチェックアウトされなかったことを示しています。

  • 競合 …… バージョン管理に接続されている場合のみ有効になります。バージョン管理サーバに接続している場合は、「競合なし」か「バージョンは、すでに変更済」が表示されます。

  • アクション …… バージョン管理サーバに接続している場合のみ有効です。以下のオプションがあります。

  • なし

  • 最新バージョン取得

  • チェックアウトと修正内容保持

  • チェックアウトと最新バージョン取得

このウィンドウには、[オブジェクト履歴]ボタンが含まれています。このボタンをクリックすと、現在のオブジェクトの履歴が表示されます。プロジェクトがバージョン管理サーバに接続している場合のみ、このボタンは有効です。


バージョン管理 デフォルトデータベース

デフォルトデータベース

ソース管理 > バージョン管理

Visual SourceSafe と PVCSの両方は、プロジェクトを取得するためにデフォルトデータベースを使用します。

このトピックは、各製品に対してどのようにデフォルトデータベースを設定するかを説明しています。

Visual SourceSafe | The Visual SourceSafeのウィンドウにて、[ファイル]メニューを選択し、[データベースを開く]を選択し、データベースを選び、[次回の起動時にこのデータベースを開く]のチェックボックスをチェックします。
PVCS | レジストリでデフォルトデータベースを設定します。 HKEY_LOCAL_MACHINE\ SOFTWARE\ PVCS\ Interfaces\ SCC\ DefaultProjectDB 例： PVCS Version Manager： d:\Pvcs_Db d:\Pvcs_Db ： データベースの位置を指定しています。 注意: PVCSをインストールした後で,デフォルトによって作成された共通データベースを使用します。
CVS | Service Control Panel を起動して、[Repositories]タブを開きます。[Add]ボタンを押下して、名前とルートディレクトリを入力します。


チーム開発

ソース管理 >

チーム開発は、複数の開発者環境で作業する場合に、開発者間の並行性を維持するものです。

開発者の作業内容を同期させ、プロジェクトでの変更内容の経緯を常に追跡し、プロジェクトの過去のバージョンを取得できるようにする要があります。

Magic V10では、チーム開発はバージョン管理機能によって可能になります。


Unicodeサポート

Unicodeは、全ての言語用の文字が含まれるようにデザインされた汎用の文字セットです。また、これは古くて歴史的な文字もサポートしています。

Magicは、データ変換や送信処理の際にUnicodeを標準で使用することができます。この機能は、MagicのANSIとOEMのサポートに追加されたものです。以下のような場合にUnicodeを使用することができます。

  • データベース内のUnicode項目への読み書き

  • フォームに対するUnicodeデータの入／出力

  • Unicodeデータに対するプログラムロジックの定義

  • Unicodeファイルに対するファイルの読み書き

  • 外部のシステムに対するUnicodeデータの送受信

参照

キャストとUnicode

データベースサポート

入出力

プレゼンテーションレイヤ

式とUnicode

リポジトリ出力とUnicode


キャストとUnicode

Unicodeサポート >

あるデータ型を別の型に変換することをキャストと呼ばれています。文字型からUnicode型へのキャストには、変換に使用されるコードページを定義する必要があります。Magic Ver10の暗黙のキャストメカニズムは、Unicode変換のために使用されるコードページを指定することができます。

[動作環境]ダイアログの[外部コードページ]を使用してコードページを指定することができます。コードページ定義を変更しない限り、Magicはデフォルトコードページを使用します。CodePage関数を使用して外部コードページを変更することもできます。関数を使用して外部コードページを設定した場合、関数が実行されたコンテキスト内でのみ有効です。

参照

暗黙的なキャスト

明示的なキャスト


キャストとUnicode 暗黙的

暗黙的なキャスト

Unicodeサポート > キャストとUnicode

暗黙的なキャストは、デフォルトのシステムコードページまたは[外部コードページ]の設定に基づいて、実行されます。

暗黙的なキャストは、タスク実行中に以下の処理で発生します。

  • パラメータを渡す場合

  • コールプログラム

  • コールタスク

  • イベントロジック

  • コールリモート

  • コールUDP

  • コールCOM

  • タスクの戻り値

  • 以下の操作による項目の更新

  • [項目更新]処理コマンド

  • [代入]特性

  • [エラー]処理コマンド

  • リンク（リンクされたカラムとデータカラムの型が合っていない場合、暗黙のキャストが実行されます。）

  • 範囲

  • 位置付け


キャストとUnicode 明示的

明示的なキャスト

Unicodeサポート > キャストとUnicode

Unicodeに対する変換処理を支援するため、Magicには以下の関数が提供されています。

  • UnicodeFromANSI

  • UnicodeToANSI


データベースサポート

Unicodeサポート >

MagicのUnicodeサポートは、複数バイトのデータを結合したUnicodeフィールドを使用することを意味しています。またUnicodeフィールドでは、フィールドレベルのどのようなMagicの操作も行うことができます。この操作には、範囲指定や位置付け、ソートが含まれています。

Unicodeのデータベースサポートは、いくつかのパラメータに従って決定されます。

  • テーブル定義におけるUnicodeカラムとインデックス（ステートメント内のUnicodeデータのバインドを含みます。）

  • 以下の表示で説明されるような、異なるデータベースによるUnicodeステートメントの実行（SELECTコマンドを含みます。）

データベース | カラム | ステートメント | 注意：
MS-SQL Server | ○ | ○ |
Oracle | ○ |  | Ver 9
ODBC | ○ |  | ODBC 3.5
DB2 UDB | ○ |  | Ver 8
Pervasive(SQL) | ○ |  | Ver 8
DB/2 400 | ○ |  |
ISAM 400 | ○ |  | インデックスをサポートしません

参照

Unicodeフィールド定義

明示的なSQL

ダイレクトSQL

SQLWhere句


データベースサポート Unicodeフィールド定義

Unicodeフィールド定義

Unicodeサポート > データベースサポート

Unicode型を持つフィールドは、以下の表示に従ってデータベース内に作成されます。

データベース | 長さ | 定義
SQL-Server | <=4000 | NCHAR NVARCHAR
 | >4000 | NTEX

定義取得

定義取得処理を実行すると、Unicodeデータを含むことができる全てのデータ型は自動的にUnicodeフィールドと定義されます。

V9Plusからの移行

文字型フィールドがUnicodeの文字セットを含んでいる場合、フィールドは文字型からUnicode型に変換されます。


データベースサポート 明示的なSQL

明示的なSQL

Unicodeサポート > データベースサポート

Magicは、タスク内でダイレクトSQLタスクまたはDB SQL WHERE句を使用して明示的なSQLコードを記述することができます。作成されたステートメントは、ゲートウェイにそのまま送られ、何も追加されません。この方法で作成された全てのステートメントは、ANSIフォーマットでデータベースに送られます。Unicodeフォーマットは、結果として返るSQLタスクの戻り値でのみサポートされます。


データベースサポート ダイレクトSQL

ダイレクトSQL

Unicodeサポート > データベースサポート

ダイレクトSQLコマンドのダイアログボックスからAPGを実行することで、新しいタスクを作成することができます。結果をもたらすステートメントが定義される場合、選択され、データベースのUnicodeフィールドと定義されたどのようなカラムでもUnicodeフィールドとして作成されます。


データベースサポート SQLWhere句

SQLWhere句

Unicodeサポート > データベースサポート

MagicのSQL Where句によって作成された文字列は、式が評価されゲートウェイにUnicodeフォーマットで送られます。ゲートウェイがステートメントのためにUnicode文字列をサポートしていない場合、ゲートウェイは、デフォルトのコードページを使用してANSIフォーマットに変換します。


入出力

Unicodeサポート >

このセクションは、Unicode形式のファイルの読み書きについて説明しています。

参照

物理ファイル名

使用する文字セット （入出力特性）

出力フォーム

入力フォーム

マージフォーム

項目入出力


入出力 物理ファイル名

物理ファイル名

Unicodeサポート > 入出力

Magicは、Unicodeベースのファイルシステムをサポートしていません。入出力名（式）で使用される式は、「キャストとUnicode」で定義されたキャストの規則に従ってANSIに変換されます。


入出力 出力フォーム

出力フォーム

Unicodeサポート > 入出力

ここでは、テキスト、エディット、および四角形の各コントロールを含んだ[テキスト形式]フォーム内でのUnicode文字の扱いについて説明しています。


プレゼンテーション層 コントロール特性 テキスト

テキスト

Unicodeサポート > 入出力 > 出力フォーム

[テキスト]コントロールにテキストが含まれている場合、テキストはUnicodeフォーマットとして定義されます。

[入出力特性]の[使用する文字セット]特性の設定値によって以下のように定義されます。

  • ANSI …… 返されるUnicode文字列は、Magicのキャスト規約に基づいてANSIフォーマットに変換されます。

  • UTF-8 …… 返されるUnicode文字列は、UTF-8フォーマットに変換されます。


入出力 出力フォーム エディット

エディット

Unicodeサポート > 入出力 > 出力フォーム

[エディット]コントロールで式を使用する場合、式の結果はUnicodeフォーマットで返されます。

選択された文字セットと項目の文字が合っていない場合、以下に説明された変換処理が必要となります。

 | 文字セット | 項目／式 | 変換
1 | ANSI | ANSI | なし
2 |  | Unicode (**) | デフォルトのコードページに基づくUnicodeからANSIへの変換
3 |  | 数値(*)(***) | 数値からANSI文字列への変換
4 |  | 論理値 (***) | 論理値からANSI文字列への変換
5 | OEM | ANSI (***) | ANSIから OEMへの変換
6 |  | Unicode (**) | デフォルトのコードページに基づくUnicodeからANSIへの変換と、ANSIからOEMへの変換
7 |  | 数値(*)(***) | 数値からANSI文字列への変換と、ANSIからOEMへの変換
8 |  | 論理値 (***) | 論理値からANSI文字列への変換と、ANSIからOEMへの変換
9 | UTF-8 | ANSI | デフォルトのコードページに基づく、ANSIからUTF-8への変換
10 |  | Unicode | UnicodeからUTF-8への変換
11 |  | 数値 (*) | 数値からANSIへの変換と、デフォルトのコードページに基づくANSIからUTF-8への変換
12 |  | 論理値 | 論理値からANSIへの変換と、デフォルトのコードページに基づくANSIからUTF-8への変換
13 | Unicode | ANSI | デフォルトのコードページに基づくANSIからUnicodeへの変換
14 |  | Unicode | なし
15 |  | 数値 (*) | 数値からANSIへの変換と、デフォルトのコードページに基づく ANSIからUnicodeへの変換
16 |  | 論理値 | 論理値からANSIへの変換と、デフォルトのコードページに基づくANSIからUnicodeへの変換
17 |  | Unicode（big endian） | あらゆるデータタイプ。データタイプは、上記で説明されるように、Unicodeに変換され、各単一のUnicode文字内のバイトは交換されます。

(*) 日付と時刻の値を含みます。

(**) 重要な情報を失うかもしれません。

(***) 既存の動作

big endian：多バイトの数値をメモリ中へ格納する場合の方式。（例：0123hという値を格納する時、01hを１byte目に、続いて23hを２byte目に格納する方式）


入出力 出力フォーム 四角形

四角形

Unicodeサポート > 入出力 > 出力フォーム

[スタティック（四角）]コントロールは、複数の文字が連続して出力されます。これによって、四角形の異なる角を表します。四角形を表す基本の文字は、MGCONSTファイル内に定義されているANSI文字列です。

Unicodeの出力が必要な場合、文字列はANSIからUnicodeに変換されます。

UTF-8の出力が必要な場合、文字列はANSIからUTF-8に変換されます。


入出力 入力フォーム

入力フォーム

Unicodeサポート > 入出力

入力処理の間、Magicの実行エンジンは[エディット]コントロールのみ処理します。[入出力特性]の[使用する文字セット]特性に設定された文字セットの内容と、読み込むファイルのエンコード内容が合っていない場合、実行エンジンはファイルから読み込むことができません。

参照

エディット


入出力 マージフォーム

マージフォーム

Unicodeサポート > 入出力

以下に、マージフォームとUnicodeに関する情報が記述されています。

マージタグ

マージテンプレートがUnicodeファイルであることを想定して、MagicのマージタグはUnicodeフィールドで処理されます。

マージユーティリティは、入力ファイルがUnicodeファイルであるかどうかを決定します。もしUnicodeファイルであれば、マージタグはそのまま返されます。ファイルがUnicodeではない場合、タグ名はデフォルトコードページに従ってANSIからUnicodeに変換されます。

出力される文字セット

この文字セットは、[入出力特性]の[使用する文字セット]特性で指定された値によって決定されます。

マージされる値

[テキスト形式]フォーム上の[エディット]コントロールのために定義された規則に従ってマージされた値は変換されます。


入出力 項目入出力

項目入出力

Unicodeサポート > 入出力

[入出力ファイル]テーブルので「項目」を定義した場合、出力フォームの宛先をBLOB項目に設定することができます。この場合、[入出力特性]で[使用する文字セット]特性を定義することができます。

「項目」が指定された場合の動作は、[フォーム入力]処理コマンドや[フォーム出力]処理コマンドの両方でテキスト形式フォームを使用した場合と同じように動作します。


プレゼンテーション層

Unicodeサポート >

OSのプレゼンテーション層によって複数のインタフェース(ANSI、Unicode)を維持することは複雑なため、MagicはUnicodeによってOSとアクセスします。

これは、文字列をプレゼンテーション層に送る全ての特性が、Unicodeセクション内で定義済みの規則に基づいてUnicodeに変換されることを暗示しています。

参照

エディタ

フォーム特性

コントロール特性


プレゼンテーション層 エディタ

エディタ

Unicodeサポート > プレゼンテーション層

MagicのGUIサブシステムは、Unicodeのみをサポートします。コントロールエディタは、入力が必要な文字セットに基づいていることを保障するため、入出力処理を容易にします。

以下のフォームは、Unicodeの出力をサポートしません。

  • マージ形式

  • フレームセット形式

Unicode型の項目がこれらのフォームに送られた場合、デフォルトコードページに従ってANSIに変換されます。


プレゼンテーション層 フォーム特性

フォーム特性

Unicodeサポート > プレゼンテーション層

以下の[フォーム特性]は、Unicodeデータに対応しています。

  • フォーム名 …… V9Plusのアプリケーションを移行すると、[フォーム名]特性はデフォルトのコードページに従ってANSIからUnicodeに変換されます。


プレゼンテーション層 コントロール特性

コントロール特性

Unicodeサポート > プレゼンテーション層

[書式]特性はUnicode文字に対応しています。

[型]に対するマスク文字と定義されなかった全ての文字は、実際の表示にのみ関係します。この動作は、現在の型の如何に関わらず、全てのコントロールに対して暗黙で行なわれます。

以下の表は、Unicode値に対応するコントロールを示しています。

コントロール | 特性
エディット(RTFを含む） | 書式
 | ツールチップ（式）
ラジオ | 選択項目リスト
 | 選択表示リスト
 | ツールチップ（式）
テキスト | テキスト
 | ツールチップ（式）
カラム | カラムタイトル
タブ | 選択項目リスト
 | 選択表示リスト
 | ツールチップ（式）
イメージ | ツールチップ（式）
リストボックス | 選択項目リスト
 | 選択表示リスト
 | ツールチップ（式）
OLE | ツールチップ（式）
プッシュボタン | 書式
 | ツールチップ（式）
コンボボックス | 選択項目リスト
 | 選択表示リスト
 | ツールチップ（式）
スライダ | ツールチップ（式）
RTF | ツールチップ（式）
チェックボックス | テキスト
 | ツールチップ（式）
ツリー | 書式
 | ツールチップ（式）


プレゼンテーション層 コントロール特性 エディット

エディット

Unicodeサポート > プレゼンテーション層 > コントロール特性

[エディット]コントロールは、文字型かUnicode型の指定に基づいて入力するデータ型が決まります。

入力される各文字は、[エディット]コントロールに対する型や書式、および範囲に対してテストされます。

追加テストが非Unicodeフィールドとして行われ、入力された文字が現在のコードページに対応するかどうかを確認します。このテストが失敗した場合、入力された文字は無効になります。

例えば、ANSIフィールド（現在のコードページがShift-JIS）にハングル文字を入力しようとした場合、この操作は失敗し、文字はコントロールに入力されません。

ANSIフィールドに関する規則は、キーボードからの直接入力にだけではなく、フィールドに値を設定するために行なわれる、以下のような操作に対しても当てはまります。

  • EditSet関数

  • MarkedTextSet関数

  • データのドロップ処理

  • クリップボードからの貼り付け


入出力 出力フォーム テキスト

テキスト

Unicodeサポート > プレゼンテーション層 > コントロール特性

[テキスト]コントロールは、常にUnicodeデータです。


プレゼンテーション層 コントロール特性 プッシュボタン

プッシュボタン

Unicodeサポート > プレゼンテーション層 > コントロール特性

[プッシュボタン]コントロールの[書式]特性は、[型]特性の指定内容に基づいて処理されます。


プレゼンテーション層 コントロール特性 ツリー

ツリー

Unicodeサポート > プレゼンテーション層 > コントロール特性

[表示項目]特性の書式は、[型]特性に基づいて決定されます。


式とUnicode

Unicodeサポート >

[式]エディタ定義された式はUnicodeで評価されます。

これは、[式]エディタで使用されるどのような文字項目も内部処理のためにUnicodeに変換されることを意味しています。文字型で返す必要がある式の場合、作成されたUnicodeはANSIに変換されます。

サブシステム内の全てがUnicodeに変換されないので、関数によってはUnicodeで入力しANSIに変換します。（逆も同様です。）

[式]エディタ内で行われる変換処理は、デフォルトのコードページに基づいて行われます。

注意：

式の中で[内容]特性が「バイナリ」に設定されているBLOB項目が使用されている場合は、変換されません。

参照

関数とUnicode変換

Unicode関数


式とUnicode 関数とUnicode変換

関数とUnicode変換

Unicodeサポート > 式とUnicode

以下の機能は、入力パラメータとして文字列が指定されたり、文字列を戻り値として戻します。

全ての文字列の入力パラメータは、デフォルトのコードページを使用してANSIに変換され、全ての戻り値はUnicodeに変換されます。

ANSI2OEM

Blb2File

BufGetAlpha

BufSetAlpha

BufGetUnicode

BufSetUnicode

CallDLL

CallDLLF

CallDLLS

CallProg

CallProgURL

CallURL

CtrlHWND

CtxGetAllNames

CtxGetId

CtxSetName

DbCopy

DbDel

DbDiscnt

DbERR

DbExist

DbName

DbRecs

DbReload

DbSize

DDEBegin

DDEEnd

DDEGet

DDEPoke

DDERR

DiscSrvr

ErrDatabaseName

ErrDbmsCode

ErrDbmsMessage

ErrMagicName

ErrTableName

File2Blb

File2Ole

File2Req

FileCopy

FileDlg

FileDelete

FileExist

FileRename

FileSize

Flow

GetLang

GetParam

GroupAdd

HandledCtrl

INIGet

INIGetLn

INIPut

IOCurr

LastClicked

LastPark

LMChkIn

LMChkOut

LMUVStr

LMVStr

Lock

Logon

MTblGet

MTblSet

OEM2ANSI

Owner

Prog

ProgIdx

Right

RightAdd

RqCtxInf

RqCtxTrm

RqExe

RqLoad

RqQueDel

RqQueLst

RqQuePri

RqReqInf

RqReqLst

RqRtApp

RqRtApps

RqRtCtx

RqRtCtxs

RqRtInf

RqRts

RqRtTrm

RqRtTrmEx

RqStat

SetLang

SetParam

SharedValGet

SharedValSet

Translate

UDF

UDFF

UDFS

UnLock

User

UserAdd

VarDbName

WinHelp


リポジトリ出力とUnicode

Unicodeサポート >

Magicのリポジトリ出力ファイルは、ANSIファイルです。使用しているUnicodeデータが現在のコードページと互換性がある場合、データはANSIで出力されます。互換性がない場合は、UTF-8で出力されます。

ヘッダ

リポジトリ出力ファイルは、以下のフォーマットでヘッダファイル内に追加エントリを含んでいます。

CodePage=現在のコードページ

現在のコードページは、リポジトリ出力実行のコードページを定義します。リポジトリ出力ファイルに対するコードページを定義することは、どのようにしてリポジトリ出力データを解析するかをあらかじめ知っておく必要があるからです。

例えば、現在のコードページと互換のUnicode特性がANSI文字列として出力されるため、異なるコードページでその文字列を出力しようとした場合、アプリケーションに関する情報が失われる場合ああります。

Unicodeデータ

データは、現在のコードページに対してテストされます。全てのデータがこのコードページの一部であれば、ANSIに変換されて、この方法で出力されます。現在のコードページと互換でない場合、UnicodeからUTF-8に変換されます。

出力される各オブジェクトのためのエントリ名には、接尾辞として「U」が付加されます。

例えば、ヘブライ語と日本語のUnicodeデータを含んでいるメニューエントリは、「DESC」の代わりに「DESCU」と出力されます。


アプリケーションのテスト

Magicには、アプリケーションをテストするためにデバッガ機能が提供されています。このツールは、アプリケーションに内在する問題の原因箇所を特定する場合に使用します。例えばブレイクポイントを設定したり、実行中に項目の内容を更新したり、アクティビティモニタを使用したり、動的にログを処理することができます。


デバッガ

アプリケーションのテスト >

この機能は、アプリケーションに内在する問題を正確に把握するための手助けとなります。

デバッグモード（[デバッグ]メニューから[デバッグモード]を選択した場合）にした場合、実行モードでプログラムを実行することがで、デバッガは、（ブレイクポイントに到達した時）プログラムのどこで処理されているかが判るように、読込専用の開発画面上で処理中の位置にパークします。

デバッガ内では以下のことができます。

  • タスクフロービュー内のブレイクポイントと項目の値を参照することができます。ブレイクポイントは、開発画面内の任意の位置でプログラムの実行を停止させることができます。

  • アクティビティモニタを使用して、開発エンジン内のMagicのフローを参照することができます。

  • ブレイクポイントに対する条件を指定できます。

  • 実行中に内容を参照したい項目を選択して、ウォッチリストを作成することができます。

  • 実行中に変数の内容を更新することができます。デバッガ内で値を更新すると、再計算が実行される旨の確認メッセージが表示されます。

  • 開発エンジン内からフローを参照することができます。

  • コールスタックを参照することができます。

  • デバッグのために異なるコンテキスト間で切り替えを行うことができます。

  • Logging関数を使用することで、動的にログを処理することができます。

デバッガによって提供されるオプションの詳細な説明は、「デバッグオプション」のトピックを参照してください。

デバッガの保存方法

デバッガは、以下のセッション間を保存します。

  • ブレイクポイント

  • ブレイクポイントのソート順

  • ウォッチ項目

  • コールスタック

これらの項目は、プロジェクトファイルの次に保存されるローカルファイルに保存されます。このファイルは、以下の名前で保存されます。

<プロジェクトファイル名>.opt

このファイルは、プロジェクトのソースセーフには保存されません。

注意：

リッチクライアントタスクの場合、デバッガはサーバ側のデバッグをサポートします。

参照

開発エンジンでのデバッグモード

クライアント側のデバッグ


デバッガ デバッグオプション

デバッグオプション

アプリケーションのテスト > デバッガ

デバッグオプションに関する様々な機能は、[デバッグ]メニューと[表示]メニューの両方で提供されます。

以下のオプションは、[デバッグ]メニューに表示されています。

メニュー

ショートカット

内容

実行/継続

F7

現在のプログラムを実行します。ブレイクポイントに達した場合、[継続]が表示されます。

ブラウザで実行

Ctrl+Shift+F7

現在のプログラムをブラウザで実行します。

プロジェクトの実行

Cｔｒｌ+F7

プロジェクトを実行します。

停止

実行を停止します。プロジェクトがデバッグモードで実行していない場合、このエントリは無効になります。

デバッグモード

このオプションを選択した場合、全てデバッガ内で実行されます。

ブレイク

Alt+Ctrl+F7

ブレイクポイントに達した場合、ブレイクが実行されます。

プロジェクトがデバッグモードで実行していない場合、このエントリは無効になります。

ステップ

F10

現在のプログラム内の次の操作に進みます。

別のタスクへの[コール]処理コマンドが定義されている場合、デバッガ内には反映されません。

プロジェクトがデバッグモードで実行していない場合、このエントリは無効になります。

ステップイン

F11

コールされたタスクやハンドルに入り、そのタスクのデバッグが可能になります。強調表示された処理コマンドが以下のどれかでない場合、ステップオプションが起動されたかのように動作します。

  • [コール]処理コマンド

  • CallProg関数

  • 同期イベント実行（ウェイト=Yes)

  • ユーザ定義関数の実行

ステップアウト

Shift+F11

現在のタスクのデバッグ中に、タスクのコール処理が定義されていても、タスク内には入らず、コール処理の次の処理に止まります。

プロジェクトがデバッグモードで実行していない場合、このエントリは無効になります。

ブレイクポイント

F9

現在の処理コマンドにブレイクポイントを設定したり、削除したりします。

「ブレイクポイントの動作」も参照してください。

ウォッチに追加

ウォッチリストに項目を追加します。

項目の定義行（データビュー、ハンドラ、関数）にパークしている状態で有効になります。

エンジンをリセット

Ctrl+Shift+F9

実行エンジンの動作環境や、メモリテーブル、グローバル変数、共有値がリセットされます。

以下のオプションは、[表示]メニューに表示されています。

メニュー | 内容
アクティビティモニタ | アクティビティモニタを開きます。これはプログラムの実行中に発生するコマンドのフロー（タスクやレベル、処理コマンドのフロー）をログに記録し、表示します。
ブレイクポイント | [ブレイクポイント]テーブルが開きます。ここには、プロジェクト内で定義されたブレイクポイントが表示されます。
項目 | [項目一覧]が開きます。ここには、現在の実行中のタスクがアクセスできる項目が表示されます。
コールスタック | 実行時の[コールスタック]テーブルが開きます。ここには、現在の実行タスクのセッション内のプログラムや新規プログラムによって起動されたハンドラの状態が表示されます。
実行コンテキスト | [実行コンテキスト]テーブルが開きます。ここには、現在オープンされているコンテキストの一覧が表示されます。
ウォッチ | [ウォッチ項目一覧]が開きます。ここには、現在設定されている項目が表示されます。


デバッガ デバッグオプション ブレイクポイントの動作

ブレイクポイントの動作

アプリケーションのテスト > デバッガ > デバッグオプション

[ブレイクポイント]オプションは、以下の通りに動作します。

  • パークした行にブレイクポイントが設定されていない場合、ブレイクポイントが作成されます。

  • パークした行にブレイクポイントが設定されていて、有効な処理が定義されている場合、ブレイクポイントは削除されます。

  • パークした行にブレイクポイントが設定されていて、無効になっている場合、ブレイクポイントは有効になります。

  • コメント行にはブレイクポイントを定義できません。ブレイクポイントが定義されている行を[コメント]処理コマンドに変更した場合、ブレイクポイントは削除されます。


デバッガ アクティビオティモニタ

アクティビティモニタ

アプリケーションのテスト > デバッガ

アクティビティモニタは、プログラムの実行中に発生するコマンドのフロー（タスクやレベル、処理コマンドのフロー）をログに記録し、表示します。

[表示]メニューの[アクティビティモニタ]を選択することで、アクティビティ・モニタが起動されます。

アクティビティモニタは、Magicエンジンからのアクティビティメッセージを受け取ります。

Logging関数の使用で、フィルタオプションを動的に有効／無効を切り替えることができます。

アクティビティモニタのコンテキストメニューとツールバーには、以下のオプションがあります。

  • 保存 …… ログをテキストファイルに保存します。

  • クリア …… ログ表示を消去します。

  • 検索 …… 指定された文字列でログ内容を検索します。

  • 再検索 …… 次の検索対象に位置付けます。

  • 開始/終了 チェック …… メッセージのブロックの最初にパークした時に、このオプションを実行すると、カーソルはブロックの終了に移動します。（逆も同様です。) このオプションは、デバッグ開始前に[ロギング]テーブルの[開始／終了メッセージ]オプションを「Yes」に設定されている場合のみ有効になります。

  • 出力開始 …… モニタへのログの出力を再開します。

  • 出力停止 …… モニタへのログの出力を停止します。

参考：

  • 開発エンジンがデバッグモード中かどうかにかかわらず、アクティビティモニタへのデータの書込は実行されます。モニタがオープンされている場合、ロギング情報は常に送られます。

  • リッチクライアントタスクの場合、アクティビティモニタの表示行の色は、サーバ側の処理はピンクで、クライアント側の処理は白になります。

参照

デバッガ

アクティビティモニタのログ

アクティビティモニタ特性

ブラウザクライアントでのアクティビティモニタ

クライアント側のデバッグ


デバッガ アクティビオティモニタ ログ

アクティビティモニタのログ

アプリケーションのテスト > デバッガ > アクティビティ・モニタ

Magicエンジン(開発エンジンか実行エンジンのどちらか）がロードされると、アクティビティモニタのログが作成されます。

アクティビティモニタのメッセージは、外部のログファイルに書き込まれます。このファイルへの出力は、開発エンジンがデバッグモードであるか否かには影響されません。

アクティビティモニタのメッセージフィルタは、[ロギング]設定によって定義できます。


デバッガ アクティビオティ・モニタ 特性

アクティビティモニタ特性

アプリケーションのテスト > デバッガ > アクティビティ・モニタ

開始/終了のメッセージを持っているアクティビティに対して、メッセージのどちらか、またはその両方をブロック化することができます。

ブレイクポイントが設定された場合に、アクティビティモニタはそのポイントでフローの実行を停止させます。FlwMtr関数を使用することで、プログラムの実行中にブレイクポイントを設定することもできます。フローが一定の回数分通過したら停止するように、ブレイクポイントに回数条件を設定することもできます。

ブレイクポイントに達した時に、ステップイン、ステップアウト、フローの継続の操作を実行することができます。

  • ステップインは、1度に1ステップづつ処理を進めます。

  • ステップアウトは、サブタスクへの呼出の場合に、サブタスク内のフローのロギングをスキップして同一タスク内の処理のみ進めます。

  • 継続は、ブレイクポイントを無視させ、フローの実行を継続させます。


デバッガ アクティビオティ・モニタ ブラウザクライアント

ブラウザクライアントでのアクティビティモニタ

アプリケーションのテスト > デバッガ > アクティビティ・モニタ

Magicは、ブラウザクライアントに対してもアクティビティモニタ機能を提供しています。ログの前景色を変更することで、サーバ側の操作とブラウザクライアント側の処理を区別して表示します。


デバッガ ブレイクポイント

ブレイクポイント

アプリケーションのテスト > デバッガ

ブレイクポイントは、デバッグ時に有用なツールです。これは、開発画面内でプログラムの任意の場所に一時停止する位置を指定することができます。

[表示]メニューから[ブレイクポイント]を選択すると、[ブレイクポイント]テーブルが表示されます。

ブレイクポイントを[ロジック]エディタ内に追加した場合、デフォルトの条件は「Ａ=常時」になります。

参考：

  • 定義情報は、プロジェクトファイルに保存されます。

  • 処理がブレイクポイントで停止した状態で、「ステップアウト」が要求された場合、ステップアウトの処理にしばらく時間がかかるかもしれません。この処理の間、別のコンテキストが、異なるブレイクポイントに達する場合があります。このような場合、デバッガは他のコンテキストのブレイクポイントに移動し、ステップアウトの処理が無効になってしまいます。

参照

[ブレイクポイント]テーブルのカラム

ブレイクポイントの持続性

ブレイクポイントの削除

データ変更ブレイクポイント

データ変更ブレイクポイントの追加

コンポーネントのデバッグ

実行コンテキスト


デバッガ ブレイクポイント カラム

[ブレイクポイント]テーブルのカラム

アプリケーションのテスト > デバッガ > ブレイクポイント

[ブレイクポイント]テーブルには、以下のカラムが含まれています。

  • # …… 識別子として自動的に設定される連番

  • 有効 …… このブレイクポイントを有効にするかどうかを指定できます。チェックボックスがチェックされていない場合、ブレイクポイントは無効となり、処理はここには停止しません。ブレイクポイントの有効／無効の設定も保存されます。

  • タスク …… プログラム／タスクの名前が「<プログラム名> <タスク名>」の書式で表示されます。最長120文字まで表示されます。

  • ハンドラ …… ブレイクポイントが設定されたタスク内のロジックユニットが表示されます。「<ハンドラ名>：<コントロール名／イベント名>」の書式で最長50文字まで表示されます。

  • 行 …… ブレイクポイントが設定されたタスク内の行番号が表示されます。

  • 条件 …… デバッガ内で、条件付きのブレイクポイントを定義することができます。[有効]カラムのチェックボックスがチェックされていない場合、この条件は評価されません。ブレイクポイントに到達するたびに、この条件が評価されます。条件が「Ｆａｌｓｅ」と評価された場合、「無効」と設定されたように動作します。[ブレイクポイント]テーブルでコンテキストメニューを開き、[特性]を選択すると[ブレイクポイント特性]ダイアログが開きます。ここで条件が設定できます。指定できるオプションは以下のとおりです。

  • A=常時 …… このブレイクポイントは常に実行（停止）されます。この値はデフォルトです。

  • C=カウント …… フローが[回数]欄に指定された回数分ブレイクポイントに達した場合、ブレイクポイントが有効になります。フローが前方から実行された場合のみカウントされます。[回数]欄に「0」が設定された場合は、回数条件は無効になります。

  • C=条件 …… [条件]欄には、ブレイクが有効になる場合の論理条件式を指定します。条件式が「Ｔｒｕｅ」と評価された場合のみブレイクが有効になります。このオプションは、条件が設定されたタスクがフォーカス上にある場合のみ有効になります。条件式には、タスクツリー内で定義された項目を使用することができます。

  • 値　……最長30文字までの内容が表示されます。

  • 条件を設定した場合、指定された条件が表示されます。

  • カウント値（回数）を設定した場合、指定された回数が表示されます。

  • データ変更条件を設定した場合、項目名が表示されます。

以下のツールボタンが表示されます。

1つのブレイクポイントを削除します。

全てのブレイクポイントを削除します。

全てのブレイクポイントを有効にします。

全てのブレイクポイントを無効にします。

[ブレイクポイント特性]ダイアログを表示します。

以下のコンテキストメニューが表示されます。

  • 削除

  • ソースに移動 …… 対応するプログラム内容にカーソルを移動します。

  • 特性


デバッガ ブレイクポイント 特性

ブレイクポイント特性

アプリケーションのテスト > デバッガ > ブレイクポイント

[ブレイクポイント特性]ダイアログボックスには、以下の特性が含まれています。

  • ブレイク …… この特性は、ブレイクをどのように実行するかを指定します。指定できるオプションは以下のとおりです。

  • A=常時 …… このブレイクポイントは常に実行（停止）されます。この値はデフォルトです。

  • C=カウント …… フローが[回数]欄に指定された回数分ブレイクポイントに達した場合、ブレイクポイントが有効になります。

  • C=条件 …… [条件]欄には、ブレイクが有効になる場合の論理条件式を指定します。条件式が「Ｔｒｕｅ」と評価された場合のみブレイクが有効になります。

  • 回数 …… [ブレイク]オプションが「C=カウント」に設定された場合に表示されます。フローに達する回数を指定します。「0」が設定された場合は、回数条件は無効になります。

  • 条件 …… [ブレイク]オプションが「Ｎ=条件」に設定された場合に表示されます。ここから[式]エディタにズームして論理条件を指定します。このオプションは、条件が設定されたタスクがフォーカス上にある場合のみ有効になります。条件式には、タスクツリー内で定義された項目を使用することができます。


デバッガ ブレイクポイント 持続性

ブレイクポイントの持続性

アプリケーションのテスト > デバッガ > ブレイクポイント

以下のポイントは、ブレイクポイントの持続性について説明しています。

  • ブレイクポイントの状態は、デバッガセッションの間は持続されます。

  • 設定した処理が移動した場合、移動内容に基づいてブレイクポイントも移動します。

  • 切り取り、コピー、貼り付け、複写登録、上書登録を行った場合は、設定されたブレイクポイントはコピーされません。

  • タスクの最新バージョンを取得した場合、ブレイクポイントは、以前存在していた処理コマンドやデータ定義のために保存されます。エントリが新規入力内容で上書きされた場合、ブレイクポイントは保存されません。


デバッガ ブレイクポイント 削除

ブレイクポイントの削除

アプリケーションのテスト > デバッガ > ブレイクポイント

[ブレイクポイント]テーブルで、コンテキストメニューを開き、[削除]を選択すると強調表示されたブレイクポイントが削除されます。（[ブレイクポイントリ]テーブルと、タスクの定義内容ともに）

考慮事項

  • ブレイクポイントを削除した場合、プロジェクトからも削除されます。

  • ブレイクポイントが定義された処理を削除した場合、定義されていたブレイクポイントも削除されます。

  • ブレイクポイントが定義されているタスクを削除した場合、ブレイクポイントも削除されます。

  • 項目の定義が削除され、その項目がブレイクポイント条件で使用されている場合、ブレイクポイントは自動的に無効になります。


デバッガ ブレイクポイント データ変更

データ変更ブレイクポイント

アプリケーションのテスト > デバッガ > ブレイクポイント

指定された項目の値が変更された場合、（再計算サイクルの終わりに）ブレイクが実行されます。

開発エンジンは、項目が定義された行にパークします。コールスタックオプションを使用すると、以下の処理に移動することができます。

  • 更新処理（例：[項目更新]、[アクション]）

  • [コール]処理コマンド（この項目が、参照渡しのパラメータで渡されている場合）

  • [代入]特性が設定された項目

  • タスクの戻り値

  • 関数の戻り値

  • コントロールによるユーザ入力

項目の定義行でブレイクポイントを定義すると、[ハンドラ]カラムは空白、[条件]カラムには「D=データ更新」が表示され、[値]カラムは項目の名前が表示されます。

参照

データ変更ブレイクポイントの追加


デバッガ ブレイクポイント データ変更の追加

データ変更ブレイクポイントの追加

アプリケーションのテスト > デバッガ > ブレイクポイント

項目に対するブレイクポイントは、その項目が定義されているタスクにパークしている場合のみ定義できます。

項目が定義されている行にパークした状態で[ブレイクポイント]オプションを選択すると、[ブレイクポイント]テーブルにデータ変更ブレイクポイントが追加されます。

参考：

処理がブレイクポイントで停止した状態で、「ステップアウト」が要求された場合、ステップアウトの処理にしばらく時間がかかるかもしれません。この処理の間、別のコンテキストが、異なるブレイクポイントに達する場合があります。このような場合、デバッガは他のコンテキストのブレイクポイントに移動し、ステップアウトの処理が無視されます。


デバッガ ブレイクポイント コンポーネント

コンポーネントのデバッグ

アプリケーションのテスト > デバッガ > ブレイクポイント

コンポーネントが現在のプロジェクトのモジュールとして定義された場合、コンポーネント内にブレイクポイントを追加することができます。

ブレイクポイントの定義内容は、現在のプロジェクトと一緒に保存されます。

コンポーネントが別のプロジェクトでオープンされた場合、（上記で定義された）ブレイクポイント情報は未定義状態になっています。


デバッガ 項目

項目

アプリケーションのテスト > デバッガ

[項目リスト]には、現在の実行ツリー内の項目が表示されます。

[表示]メニューから[項目]を選択すると表示されます。

[項目リスト]には、以下のエントリが含まれています。

  • 名前 …… 項目の名前が表示されます。

  • 型

  • データソース

  • 値 …… ここに入力される有効な値は、項目の型、書式、および範囲によって定義されます。

[項目リスト]には、以下のツールボタンがあります。この内容は、コンテキストメニューからアクセスすることもできます。

  • ウォッチに追加 …… 現在パークしている項目を[項目リスト]に追加します。このボタンは、プログラムヘッダや共有値、追加済の項目にパークしている場合、無効になります。

  • ソースに移動 …… 現在パークしているソースコードに移動します。

  • データ設定 …… 現在の項目の値を編集します。

  • データにNULLを設定 …… 現在の項目の値をNULLに設定します。

参考：

  • [項目リスト]内の値を更新しても、再計算は発生しません。

  • [データソース]が定義された項目を更新しても、データベースには書き込まれません。項目がデータベースに書き込まれた場合、新しい値によって書き込まれます。

  • ベクトル型の項目にパークしている状態で、[ベクトルセル一覧]にズームすることができます。

参照

項目の値の設定

グローバル変数


デバッガ 項目 値の設定

項目の値の設定

アプリケーションのテスト > デバッガ > 項目

[項目リスト]内で、強調表示された項目の[値]カラムでパークすると、その値を更新することができます。

ここで入力される有効な値は、項目の型や書式、範囲によって決まります。

無効な値が入力された場合、元の値に戻ります。

[値]カラムで値を更新した場合、再計算は発生しません。また、テーブルの値を更新しても、データベースには反映されません。そのテーブルのカラムの1つがデータベースに書き込まれた場合、この値は書き込まれます。

以下の種類のBLOB項目を編集することはできません。

  • BLOB

  • OLE

  • ActiveX

  • ベクトル（各セルを編集するためにベクトルの切替で使用することはできます。）

  • バッファ

  • Javaの疑似参照


デバッガ 項目 値の設定 ベクトルセル

ベクトルセル

アプリケーションのテスト > デバッガ > 項目 > 項目の値の設定

[ベクトル]オプション（ベクトル項目でパークし、コンテキストメニューから[ベクトル]を選択すると、セルの値を修正することができます。

ベクトルのセルがウィンドウ内に表示された場合、セルの数は[名前]カラムに表示され、２文字のインデントと、括弧([ ])によって囲まれて表示されます。


デバッガ 項目 グローバル変数

グローバル変数

アプリケーションのテスト > デバッガ > 項目

[項目リスト]では、グローバルで共有できる値の表示や更新が可能です。この機能は、通常の項目に対するものと同じです。

  • 共有値は、[項目リスト]の先頭に表示されます。

  • グローバル値は、共有値の次に表示されます。

デフォルト書式

グローバル変数には、書式がありません。書式は、以下のようにあらかじめ定義されています。

  • 文字型 …… 1000

  • Unicode型 …… 1000

  • 数値型 …… N9.2

  • 時刻型 …… HH:MM:SS

  • 日付型 …… ##/##/####

  • 論理型 …… True / False


デバッガ コールスタック

コールスタック

アプリケーションのテスト > デバッガ

[コールスタック]テーブルには、現在実行しているタスクツリー内のプログラムや新しいプログラムを呼び出したハンドラ状態を表示します。[表示]メニューから[コールスタック]を選択することで開きます。

タスクは、実行された順に表示されます。ホストアプリケーションのメインプログラムは、一番最初に表示され、現在のタスクは最後に表示されます。

[コールスタック]テーブルには、以下のカラムが含まれています。

  • （インジケータカラム） …… 現在行を示すインジケータ（矢印）が表示されます。

  • モジュール …… コンポーネント名(が表示されます。（実行プログラムがコンポーネントの一部の場合）

  • タスク …… 実行されたタスク名

  • ハンドラ …… タスク内のハンドラ（ロジックユニット）の名前

  • 行 …… 現在実行中の処理の行番号

[コールスタック]テーブルには、以下のツールボタンがあります。

  • タスクのみ表示 …… プログラムと最後のタスクまたはフルパスの名前だけを表示します。表示内に、1つのプログラムまたは1つのサブタスクがあるだけの場合は、この機能は効果的ではありません。複数のレベルがある場合、以下の方法で位置が表示されます。

<プログラム名>…<n番目のタスク名>

コンテキストメニューには、以下のオプションが表示されます。

  • ソースに移動 …… 現在パークしている行に対応するソースコードにカーソルを移動します。

参考：

コンポーネント詳細は、公開名が定義されたプログラムでのみ有効です。

複数プログラムのエントリ

タスクは、[コールスタック]テーブル内に何回も表示される場合があります。

「プログラムA」が「プログラムB」を呼び出し、「プログラムB」が次々と親タスク内（「プログラムA」）で処理されるイベントによって起動された場合、このような表示になります。


デバッガ コールスタック ハンドラ

ハンドラの詳細

アプリケーションのテスト > デバッガ > コールスタック

[ハンドラ]カラムは、タスク内の現在の位置が表示されます。ここには、以下の書式で表示されます。

<位置><:名前>

位置オプションには、以下のものがあります。

  • ハンドラ …… 実行中のハンドラ名が表示されます。例：「ハンドラ: Find City Code」／「ハンドラ: レコード後」

  • 関数 …… 実行中のユーザ定義関数名が表示されます。例：「関数：Calculate Parity」

  • コントロール …… パークしているコントロール名が表示されます。例：「コントロール：Add Address」

  • 定義 …… 定義された項目名が表示されます。例：「項目：Address Code」

  • レコード処理 …… これは、タスクが[レコード後]の終了状態であり、[レコード前]や[タスク後]のどちらでもないことを示しています。これは、バッチタスクで発生します。

  • サブフォーム呼出 …… サブフォームから起動されたタスク名。これが表示される場合、コントロール名が表示されます。例：「サブフォーム呼出：AddressList」

  • 選択プログラム …… コントロールの[選択プログラム]特性に定義されたプログラム名。これが表示される場合、コントロール名が表示されます。例：「選択プログラム ：City Code」

位置に空白が設定される場合があります。これは、[タスク前]の処理が終了したメインプログラムによって発生します。非同期のイベントは、ここには表示されません。


デバッガ 実行コンテキスト

実行コンテキスト

アプリケーションのテスト > デバッガ

[表示]メニューの[実行コンテキスト]を選択すると[実行コンテキスト]テーブルが表示されます。このテーブルは、コンテキストマネジャーとして動作し、現在のオープンされているコンテキストが一覧表示されます。

Magicがバックグラウンドモードで起動された場合、MagicのSDI/MDI機能としてコンテキストマネージャが有効になります。コンテキストマネジャーは、フォアグラウンドアプリケーションでも利用可能です。

指定された時間内で、1つのコンテキストだけを監視することができます。ツールイメージやコンテキストメニューに表示される[コンテキスト切替]を選択することで、別のコンテキストのフローを表示させることができます。

コンテキストは、最初に起動された順番に表示されます。コンテキストがクローズされると、テーブルから表示されなくなります。

現在デバッグ中のコンテキストは、強調表示されます。

[コンテキスト]テーブルのカラム

[コンテキスト]テーブルには、以下のカラムが表示されています。

  • # …… 現在実行中のコンテキストがインジケータ（矢印）で表示されます。

  • ID …… コンテキストIDが表示されます。

  • 名前 …… CtxSetName関数を使用して変更されない限り、コンテキストIDが表示されます。（MDI用の）最初のコンテキストは、「Main」と表示されます。

  • 状態 …… コンテキストの状態が表示されます。オプションは、「停止済」と「実行中」があります。コンテキストがブレイクポイントに達していない場合は、「実行中」になります。ブレイクポイントに達すると表示が更新されます。

参考：

コンテキストの切替を行うと、開発エンジンはタスクフロー内の現在の処理を表示します。

参照

ブレイクポイント


デバッガ 実行コンテキスト ブレイクポイント

ブレイクポイント

アプリケーションのテスト > デバッガ > 実行コンテキスト

現在のコンテキストで有効なブレイクポイントに達した場合、コンテキストは停止します。エンジンがブレイクポイントに達すると、実行中の全てのコンテキストを停止しようとします。以下の場合、コンテキストはブレイクされません。

  • 再計算サイクルの途中

  • 外部処理（COM、SQL、Java、DLLなど）の途中

コンテキストマネジャーを使用している場合、上記のコンテキストに切り換えることはできません。

[デバッグ]メニューから[ステップ]を選択した場合（または、F10）、全てのコンテキストは処理を1ステップ進めます。[デバッグ]メニューから[継続]を選択した場合（または、F7）、全てのコンテキスト処理は継続されます。


デバッガ ウォッチリスト

ウォッチリスト

アプリケーションのテスト > デバッガ

[ウォッチリスト]には、監視対象として定義された項目が表示されます。項目の値がどのように更新されたを参照することができます。

項目は、[項目リスト]と項目定義行から追加することができます。

ウォッチ項目がすでに実行ツリー内に存在しない場合、未定義値として表示されます。

ウォッチ項目は、デバッガセッション間は保存されます。

コンテキストメニューには、以下のオプションが表示されます。（ツールバーに表示されるオプションもあります。）

  • 削除

  • ウォッチに追加 …… 現在パークしている項目を[ウォッチリスト]に追加します。このオプションは、プログラムヘッダや共有値、追加済の項目にパークしている場合は無効になります。

  • ソースに移動 …… 現在パークしているエントリに対応するソースにカーソルを移動します。

  • データ設定 …… 現在の項目の値を更新します。

  • データにNULLを設定 …… 現在の項目の値をNULLに更新します。

  • データを展開 ……現在の項目の内容を展開表示します。このオプションは、セル数が1以上のベクトル項目で有効です。

  • データを縮小 …… 現在の項目の展開表示を閉じます。このオプションは、セル数が1以上のベクトル項目で有効です。


デバッガ リモートデバッガ

リモートデバッガ

アプリケーションのテスト > デバッガ

[デバッグ]メニューの[リモートエンジンに接続]と[リモートエンジンを切断]は、リモートPC上で実行エンジンによって動作しているアプリケーションのデバッグを可能にするものです。

Magic Studioで現在オープンしているプロジェクトによって作成されたキャビネットファイルを、リモートPC上の実行エンジンがオープンしている場合にデバッグが有効になります。

参照

接続先の指定

リモートアプリケーションからの切断

リモートデバッガの使用ポート

リモートデバッガの有効化


デバッガ リモートデバッガ コネクション

接続先の指定

アプリケーションのテスト > デバッガ > リモートデバッガ

[接続先の指定]ダイアログボックスには、以下の設定欄があります。

  • アクティビティモニタのみ … …このチェックボックスはすべてのデバッグ機能を有効にするか、アクティビティモニタとコンテキストの実行のみ有効にするかどうかを指定します。

注意：

Magic Studioでロードされているものと同じプロジェクトを実行しているリモートエンジンに接続している場合のみ、フル機能が有効になります。

  • ホスト名 … … リモートサーバのホスト名を指定します。

  • ポート番号 …… Magic エンジンが接続を監視するために使用するポート番号を指定します。リモートPCをデバッグする場合、以下のポートをオープンしておく必要があります。

  • 動作環境で設定されたポート番号

  • 通信ゲートウェイテーブルのTCP/IPとして定義されたポート番号の範囲。範囲指定には、少なくとも2つのポート番号が指定されていなければなりません。

  • ユーザ …… 動作環境の[システムログオン]で設定された方法に基づいて認証するためのユーザIDを指定します。

  • パスワード …… 動作環境の[システムログオン]で設定された方法に基づいて認証するためのパスワードを指定します。

[OK]ボタンをクリックすると、エンジンはコネクションの確立を行おうとします。ユーザIDとパスワードがリモートPCに送られ、解析されます。

コネクションが確立すると、Magicの認証処理として以下の動作を実行します。

  • Magic Studioは、接続用のダイアログに入力されたユーザIDとパスワードを実行エンジンに渡します。

  • 実行エンジンは、動作環境の[システムログオン]で設定された方法に基づいてユーザ認証を行います。

  • 認証に失敗した場合、エラーメッセージが表示され接続ダイアログに戻ります。

  • 認証に成功して、[アプリケーション特性]にリモートデバッグ権利キーが設定されている場合、実行エンジンは、権利キーをチェックします。

  • 権利キーがない場合、エラーメッセージが表示され接続ダイアログに戻ります。

参考：

  • ホスト名やＩＰアドレスが指定されない場合、Localhostを参照します。

  • 一度接続した場合、他のStudioエンジンからは接続できません。

参照

リモートデバッガの有効化

リモートデバッガの使用ポート

リモートデバッガ権利

リモートアプリケーションからの切断


デバッガ リモートデバッガ 切断

リモートアプリケーションからの切断

アプリケーションのテスト > デバッガ > リモートデバッガ

[デバッグ]メニューから[リモートエンジンを切断]を選択することで確認ダイアログが表示されます。

ここで切断を承認した場合以下のように動作します。

  • Magic Studioは、リモートPCのアプリケーションと切断します。

  • 他のMagic Studioは、このアプリケーションに接続できるようになります。

  • Magic Studioのウィンドウタイトルが、通常の表示に戻ります。

  • Magic Studioは、アプリケーションが編集可能なモードに戻ります。

  • フォーカスはそのままの状態に残ります（デバッグを開始する前の位置に戻りません）。

  • 実行が中断している場合は、処理が継続されます。

実行環境が普通（異常）に終了した場合、Magic Studioにメッセージが表示され編集モードに戻ります。

Magic Studioがクラッシュしたり切断しないで終了した場合、リモートアプリケーション他のMagicStudioからデバッグできるようになります。実行エンジンの実行が中断している場合、再開されます。


デバッガ 開発エンジン

開発エンジンでのデバッグモード

アプリケーションのテスト > デバッガ

開発エンジンがデバッグモードの時、新しいブレイクポイントを定義するか、既存のブレイクポイントを削除するために読込専用ーモードで開発エンジンに入ることができます。

ブレイクポイントが追加されたり、削除された場合、[ブレイクポイント]テーブルが開いていれば、即表示されます。

現在のコンテキストのブレイクポイントに達した場合、タスクのロジックエディタが開き、ブレイクポイントが定義された処理が強調表示され、カーソルがパークします。

ブレイクポイントが、無効の場合（または、不正な場合）、ブレイクポイントは無視されます。

フローがコンポーネント内にあり、コンポーネントのソースがプロジェクトの一部であれば、フォーカスはそのコンポーネントに移動します。


開発エンジンと実行エンジンの分離

アプリケーションのテスト >

Magic V10 では、開発エンジンは、「Magicスタジオ」と呼ぶようになり、実行エンジンの機能が分離されました。２つのエンジンを分離することは、以下のような利点があります。

  • 実行エンジンが異常終了しても、開発環境が終了することはありません。

  • 実行時にアプリケーションを終了する場合、アプリケーションクローズコマンドを使用することで、開発環境を終了することなく終わらせることができます。

  • 開発エンジンを終了させずに、実行エンジンのみを中断させることができます。

  • プロジェクトの実行中に開発エンジンのウィンドウを使用して処理フローやデバッグ情報を表示させたることができます。

  • プロジェクトをマルチスレッドのバックグラウンドモードで実行させることができます。

  • 開発エンジンの動作中に、実行エンジンのモードを切り替えることができます。

実行エンジンが開発エンジンから起動された場合、実行エンジン用の実行ファイルが処理され、開発エンジンとは別のウィンドウによって表示されます。開発エンジン用のウィンドウは、実行アプリケーション状態で残ります。

開発エンジンと実行エンジンの動作

開発エンジンのファイルは、「eDevStudio.exe」です。実行エンジンファイルは、「eDevRTE.exe」です。

開発エンジンがロードされると、実行エンジンもまたウィンドウが表示されない状態でロードされます。実行エンジンは、同期的に起動されます。これは、実行エンジンの起動中は開発エンジンも実行されていることを意味しています。

開発エンジンでプロジェクトファイルをオープンすると、プロジェクトは実行エンジンでもオープンされます。

開発エンジンが終了すると、現在のプロジェクトは停止され、開発エンジンと実行エンジンの両方は解放されます。

参照

実行エンジンの動作


開発エンジンと実行エンジンの分離 実行エンジンの動作

実行エンジンの動作

アプリケーションのテスト > 開発エンジンと実行エンジンの分離

実行エンジンの動作について以下にまとめました。

開発エンジンと実行エンジン

開発エンジンのファイルは、「eDevStudio.exe」です。実行エンジンファイルは、「eDevRTE.exe」です。

開発エンジンがロードされると、実行エンジンもまたウィンドウが表示されない状態でロードされます。実行エンジンは、同期的に起動されます。これは、実行エンジンの起動中は開発エンジンも実行されていることを意味しています。

開発エンジンでプロジェクトファイルをオープンすると、プロジェクトは実行エンジンでもオープンされます。

開発エンジンが終了すると、現在のプロジェクトは停止され、開発エンジンと実行エンジンの両方は解放されます。

開発エンジンで実行ウィンドウを開く

実行モードを実行すると、実行エンジンのウィンドウが現在のアプリケーション内に表示されます。開発モードからアプリケーションを実行することは、実行エンジンから直接アプリケーションを実行することと同じです。

実行エンジンの実行

メインプログラムの[タスク前]の処理やコンポーネントを実行しているアプリケーションによって、実行エンジンは個別のウィンドウを表示し、指定されたプログラムを実行します。ブラウザタスクとオンラインタスクは、ブラウザから自動的に動作します。バッチタスクは、ブラウザ実行特性を設定することによってブラウザから自動的に動作させることができます。

プログラムの実行が終了すると、実行エンジンは、メインプログラムの[タスク後]の処置やコンポーネントを含めて、実行ツリーを終了させます。

開発エンジンで実行ウィンドウを閉じる

実行プロジェクトがクローズされた場合、以下のように動作します。

  • プロジェクトは、実行エンジンによってクローズされます。

  • 実行エンジンのウィンドウは表示されなくなります。

  • 実行タブは、Windowsのタスクバーから削除されます。

  • 実行プロセスは動作し続けます。

  • エンジンのフォーカスは、開発エンジンに戻ります。

[エンジンをリセット]イベント

このイベントはデバッガ機能の一部で、メインプログラムを含んだ全てのタスクを終了することによって、グローバル値や共有値、メモリテーブルを解放し、新しい実行エンジンを再読込します。

応答しない実行エンジン

実行エンジンが応答しない場合、フォーカスは開発エンジンに戻り、例外が発生し実行エンジンが動作しなくなったたことを伝えるメッセージボックスを表示します。例外内容は、ログファイルで確認できます。

メッセージボックスを閉じると、フォーカスは開発エンジンに戻ります。実行エンジンは、自動的に再読込され、ウィンドウが非表示状態になります。

マルチコンテキストモードでプログラムが実行されると、コンテキストまたはスレッドが応答しない状態になると、開発エンジンは警告メッセージを表示します。この場合、以下のように対応してください。

  • トレースログを確認してください。

  • プロジェクトの実行を止めてください。

メッセージボックスを閉じると、フォーカスは開発エンジンに戻ります。

デバッグ機能

開発エンジンと実行エンジンの分離によって、Magicはマルチスレッドのバックグラウンドモード内の実行セグメントでプログラムを実行することができます。これによって、開発環境でサーバアプリケーションのデバッグを行うことができます。詳細は、「デバッガ」のトピックを参照してください。

リクエストブローカとして動作

実行エンジンだけが、リクエストブローカとして設定することができます。

通常の実行エンジンがリクエストによって起動されるたか、あるいは開発エンジンが終了した場合は実行されない、Autoloadオプション以外によって開発エンジンから起動されたかにかかわらず、同じように動作します。

開発エンジンと実行エンジンの環境の変更

開発／実行エンジンのどちらからで環境設定の変更を行った場合、両方のモジュールに影響します。

開発エンジン内での動作環境に関するメニューは、アプリケーションの実行時は無効になります。

エンジンの再起動が必要な動作環境の設定は、次のセッションまたは[エンジンをリセット]イベントを使用して環境設定をリセットし、実行エンジンのコンテキストを初期化した場合のみ有効になります。

参照

RunMode 関数

実行モード

MG_StudioMode グローバルパラメータ


認証システム

Magicには認証システムが用意されています。このシステムを使用することで、ユーザの識別やパスワードの認証が可能になります。このシステムでは、エンドユーザの管理のほか、プロジェクトの内容の管理も行えます。管理は、ユーザに対して権利を割当てるという方法で行います。

参照

権利リポジトリ

実行/APG権利

ユーザIDテーブル

ユーザグループテーブル

シークレット名テーブル

HTTP認証

LDAPサーバによる認証

Activeディレクトリによる認証


権利リポジトリ

認証システム >

[権利]リポジトリを使用して、権利の名前とキーを定義できます。ここで定義した権利がアプリケーションで使用されます。[権利]リポジトリには、最大9,999の権利を設定できます。

開発者は、権利を定義し、これらをアプリケーションの各リポジトリやオブジェクトに割り当てることができます。権利が割り当てられたオブジェクトに対し、その権利を持っていないユーザはアクセスすることができません。アプリケーションレイヤのセキュリティは、アプリケーション開発時にのみ定義できます。

[権利]リポジトリは、SUPERVISORグループのユーザ以外は修正/登録できません。内容の照会は、全てのユーザが可能です。ただし、ユーザが使用権利を照会した場合、そのユーザに付与されている使用権利だけが表示されます。ユーザに割当てられていない権利は、アスタリスク（＊）で表示されます。

[権利]リポジトリには以下のカラムがあります。

名前

キー

公開

フォルダ

公開名


権利リポジトリ 名前

名前

認証システム > 権利リポジトリ

このカラムには、例えば「登録－顧客」など、権利を示す名前を指定します。ここで指定した名前は、[利用可能権利一覧]などに表示されます。

この名前は、Rights関数のパラメータとして指定できます。


権利リポジトリ キー

キー

認証システム > 権利リポジトリ

このカラムには、コード名を指定します。このコード名を使用して、権利が識別されます。例えば、「顧客情報の更新権利」という例では、キーとしてXYZを使用しています。この場合、このXYZというキーをユーザの[権利テーブル]に定義することで、そのユーザに権利（例では、「顧客情報の更新権利」という権利）が付与されます。


権利リポジトリ 公開

公開

認証システム > 権利リポジトリ

このカラムには、「Yes」または「No」のいずれかの値が設定できます。

  • Yes……ユーザまたはユーザグループの[権利]リポジトリで定義されている権利が、プロジェクト外部から見えるようになります。つまり、SUPERVISORが、ユーザIDまたはユーザグループに関する処理を行う場合、[権利]リポジトリを開いて権利（ただし、公開されている権利のみ）を見ることができます。

  • No……SUPERVISORは、ユーザIDまたはユーザグループに関する処理を行っている時、権利リポジトリを開いて権利を見ることができなくなります。プロジェクトの重要な要素に対するアクセスを制限したい場合、通常はこの設定にしておきます。

SUPERVISORは、公開権利のキーを記録しておく必要はありません。これは、[権利一覧]に表示される権利名を使用して、その権利のキーを取得できるためです。SUPERVISORは、ユーザやユーザグループに対して非公開の権利を割当てることができます。この場合は、[権利一覧]には非公開の権利の名前は表示されません。SUPERVISORが直接、権利のキーを指定します。

通常、開発者だけに関係があり、エンドユーザには関係のない権利は、非公開にしておきます。また、プロジェクトの開発者は、別の開発者に非公開の権利を割当てることができます。これによって、この権利を付与された開発者だけが、プロジェクトの変更を行うことができるようになります。この方法を使用することで、例えば、プロジェクトの開発元のソフトウェアハウスが、ほかのプログラマにプロジェクトを販売した時でも、そのプロジェクトが無制限にカスタマイズされることを防ぐことができます。つまり、使用権利の内容を制限することで、ある程度のカスタマイズは可能ですが、その使用権利の範囲に制限されることになります。

公開権利が表示される[権利一覧]は、プロジェクト外部にあります。また、[権利一覧]の公開権利の名前を使用して、その権利のキーを取得することもできます。このため、公開権利は、状況によっては保護する必要があります。保護したい場合、[プロジェクト特性]ダイアログで[公開権利アクセスキー]を定義します。この場合、[公開権利アクセスキー]をSUPERVISORの[権利テーブル]に定義しない限り、[権利一覧]を表示できなくなります。この公開権利アクセスキーは、SUPERVISORでも取得することはできないようになっています。

ユーザに付与されている権利は、Rights関数を使用してチェックできます。[式]エディタでこの関数を利用する場合、Ctrl+4を押下して[利用可能権利一覧]を開き、チェックする（公開）権利を選択することができます。


権利リポジトリ フォルダ

フォルダ

認証システム > 権利リポジトリ

権利が登録されているフォルダ名が表示されます。権利の内容を必要に応じて整理したいばあいに使用します。[ナビゲータ]ペインで権利アイコンをクリックしてハイライト状態にし、行作成（F4）を実行することで登録できます。


権利リポジトリ 公開名

公開名

認証システム > 権利リポジトリ

権利をコンポーネントとして公開する場合、このカラムにユニークな名前を入力してください。


実行/APG権利

認証システム >

[オプション]メニューから[権利設定]を選択すると[権利設定]ダイアログが表示されます。[実行／APG]権の設定は、[プログラム]リポジトリでのみアクセスできます。

SUPERVISORグループのユーザとスーパー権利キーを持つユーザのみが、[権利設定]ダイアログにアクセスできます。

[実行／APG]欄には、[利用可能権利一覧]から選択した権利の番号が指定されます。この権利を与えられているユーザが、プログラムを実行することができます。

[実行／APG]権は、プログラムの実行または実行不可という基本的な設定しかできません。ただし、Rights関数とUser関数を使用することで、ユーザごとにプログラムに実行または実行不可を細かく指定できます。例えば、この2 つの関数を使用して、ユーザに付与されている権利を基にカーソルの停止や入力の制限といった処理が可能です。さらに、ユーザID と、そのユーザに与えられている権利を基に、コントロールの[可視]特性を制御することもできます。そのほか、条件付きの[項目更新]コマンドを使用することで、一定範囲外の値を項目に入力できるようにするといったことも可能です。


ユーザID 特性 権利

権利テーブル

認証システム > ユーザID > 権利

ここに個々のユーザに対する権利を割り当てます。

個々のユーザに権利を割り当てるには、次の手順を実行します。

  1. 行を作成します。

  2. 公開権利を割り当てる場合は、[キー]欄をダブルクリックして[公開権利]欄を表示し、そこから権利を選択します。

  3. 非公開権利を割り当てる場合は、その権利のキーを直接入力します。キーを直接入力する方法は、公開権利の割り当てにも使用できます。

ユーザに割り当てられている一連のキーは、プロジェクトによって変わることはありません。しかし、キーに対応付けられている権利は、プロジェクトごとに異なる可能性があります。SUPERVISORが[ユーザID]テーブルの[権利]欄をダブルクリックした時に、最初に表示される権利の一覧は、[プロジェクト一覧]の先頭のプロジェクトに対するユーザの権利です。そのプロジェクトの名前は、[権利]テーブルの上部に表示されます（[プロジェクト一覧]は、プロジェクトが何も開いていない状態で、[設定]から[プロジェクト]を選択すると表示されます）。別のプロジェクトに対するユーザの権利を表示するには、[ユーザ権利]テーブルが表示されている時に、画面の右下の[プロジェクト]ボタンをクリックして、リストから別のプロジェクトを選択します。

参照

キー


ユーザID 特性 グループにユーザを追加する

グループにユーザを追加する

認証システム > ユーザID > ユーザ特性
設定 > ユーザID > ユーザ特性

グループメンバー権をユーザに割り当てるには、次の手順を実行します。

  1. 行を作成します。

  2. [グループ]欄をダブルクリックして[グループ一覧]を表示します。

  3. 割り当てるグループを選択します。


HTTP認証

認証システム >

情報をポストするためHTTPアドレスを表す文字列です。

Magicクライアントが、ユーザネームとパスワードを必要としているHTTPサーバにアクセスする場合、URLは以下のように指定します。

HTTP：//User:Password@[URL]

シークレット名を使用することで以下のように指定できます。

HTTP：//%user_secretname%:%pass_secretname%@[URL]

HTTP認証は、HTTPGet 関数や HTTPPost関数で使用できます。


LDAPサーバによる認証

認証システム >

Magicでは、LDAPサーバに登録されているアカウントを使用してMagicにログインすることができます。これにより、アカウントの管理はLDAPサーバ上で行うことができます。

LDAP認証の場合、ログインダイアログ（または Logon関数）でログオン処理を行うと、MagicはLDAPサーバに対してアカウントの問い合わせを行います。登録されているユーザ情報でログインされた場合のみログインができます。

LDAPサーバ側のアカウント設定

登録内容はLDAPサーバによって異なります。ご使用のサーバのマニュアルを参考にしてください。ここでは、iPlanet（または、Netscape）のディレクトリサーバを使用した場合を前提に説明いたします。

LDAPサーバ上にユーザ（ou=People）とグループ（ou=Groups）を登録します。グループのメンバにユーザを含めてください。

この場合のディレクトリ構成を以下のように想定します。

dc=MyDomain | o=Airius.com |  |  |
 |  | ou=Groups |  |
 |  |  | cn=Account |
 |  |  |  | uniquemember: uid=username,ou=People,o=Airius.com,dc=MyDomain
 |  | ou=People |  |
 |  |  | uid=username uid:username |
 |  |  |  | userpassword:password

ユーザグループの登録

LDAPサーバに登録したグループ名と同じグループ（この例では：Account）を登録してください。このグループにMagicオブジェクトに対する権利設定（権利キー）を割り当ててください。

注意:

Active Directoryサーバで認証させる場合、グループ名は（Active Directory認証と同じように）｢Active Directory ユーザとコンピュータ｣に表示される、セキュリティグループ名で定義してください。

Magicの動作環境の設定

[動作環境]ダイアログの[外部参照]タブに以下のように指定します。

  • LDAP アドレス:ポート番号……servername:389

  • LDAP 接続文字列 …… uid=$USER$,ou=People,o=Airius.com,dc=MyDomain

  • LDAP ドメインコンテキスト …… o=Airius.com,dc=MyDomain

[動作環境]ダイアログの[システム]タブを開き、[システムログオン]を「L=LDAP」に変更します。

これで、[ログオン]ダイアログ（または Logon関数）によってユーザIDとパスワードを入力することでログオンすることができます。

[ログオン]ダイアログでは、「ユーザID@ドメイン名」と指定することもできます。

ユーザIDやパスワードが間違っている場合は、ステータスバーに「Invalid credentials」と表示されます。

ドメイン指定

Active Directory の｢ユーザーログオン名｣を使用して認証させる場合は、以下のように設定します。

  • LDAP 接続文字列 …… $USER$@ドメイン名

  • ログイン時のユーザID …… ユーザID@ドメイン名 （ユーザーログオン名）


Activeディレクトリによる認証

Active Directoryによる認証

認証システム >

Magicでは、Active Directoryに登録されているアカウントを使用してMagicにログインすることができます。これにより、ドメインにログオンされているPCからMagicを起動した場合、自動的にこのドメインユーザとしてMagicにもログインされます。この場合、Magicのログオンダイアログは無効になります。

Active Directoryサーバ側のアカウント設定

[Active Directory ユーザとコンピュータ]でユーザとグループを登録します。グループのメンバにユーザを含めてください。

Magicの動作環境の設定

シークレット名の登録

Supervisor でMagicにログインし、[設定／シークレット名]で[シークレット名]テーブルを開きます。ここに以下のようにシークレット名を登録します。

  • 名前……Directory_Binding

  • 実行名……WinNT://ドメイン名/
    例えば、MyADSServerと呼ばれるActive Directory Serverをドメインサーバとして使用している場合、すべてのクライアントPCがこのドメインと接続されるのであれば、文字列（大文字小文字は区別されます、マシンの名は大文字にあります）は、「WinNT://MYADSSERVER/」と指定します。（文字列の末尾に '/' を必ず入れてください。）
    ドメインサーバと接続されたPCのADSの詳細を取得したい場合は、、以下のように指定します：

WinNT://MYADSSERVER/

ユーザグループの登録

Active Directoryサーバに登録したグループ名と同じグループを登録してください。このグループにMagicオブジェクトに対する権利設定（権利キー）を割り当ててください。

注意:

グループ名をDBCS（日本語）で定義した場合、文字内容によってはMagicで認識できない場合があります。できるだけ、半角の英数字を使用することを推奨します。

動作環境の設定

[動作環境]ダイアログの[システム]タブを開き、[システムログオン]を「D=Active Directory」に変更します。

これで、Magicを再起動することによりActive Directoryによる認証が実行され、ステータスバーにユーザ名が表示されます。

ユーザ名が表示されない場合は、正常に認証されていません。ドメインの登録内容やシークレット名の指定を確認してください。


コンポーネント

プロジェクトのオブジェクトをコンポーネントとして定義することができます。コンポーネントを出力することにより、Magicプロジェクト間でリソースを共有することができます。また、プロジェクトの修正内容を簡単に配布することもできます。

Magicには、WebサービスやCOMオブジェクトなどをMagicのコンポーネントとして利用するためのウィザードツールが提供されています。また、コンポーネントインタフェースビルダを使用することで、Magicのオブジェクトを外部からアクセスできるコンポーネントを作成することもできます。

コンポーネントは、[コンポーネント]リポジトリに一覧表示されます。画面には、他のプロジェクトと共有できるオブジェクトが表示されます。共有できるオブジェクトは次のとおりです。

  • モデル

  • データソース

  • プログラム

  • ヘルプ

  • 権利

  • イベント

  • 関数

  • 動作環境

読み込まれたコンポーネントは、他のプロジェクトに統合され、[コンポーネント]リポジトリに表示されます。コンポーネントオブジェクトは、オブジェクト一覧から選択できます。


コンポーネントリポジトリ

コンポーネント >

[コンポーネント]リポジトリは、外部コンポーネントへの呼び出しが全て含まれています。

[プロジェクト]メニューまたは[ナビゲータ]ペインから[コンポーネント]を選択するか、Shift+F7を押下することで[コンポーネント]リポジトリにアクセスすることができます。

[コンポーネント]リポジトリでは、以下のことができます。

  • [オプション]メニューから[読込/再読込]を選択することで、コンポーネントインタフェースの読込または、再読込を行います。ECIファイルが読み込まれると、Magicはインタフェース内に定義されたコンポーネントタイプをチェックし、それに応じてリソースの[タイプ特性]を変更します。

  • 外部リソースと接続するコンポーネントを作成し、コンポーネントのインタフェースを作成するウィザードを起動します。

  • [名前]カラムからズームして、コンポーネントインタフェースファイルを参照することができます。

  • コンポーネントに権利を割り当てることができます。

  • 特定のコンポーネントタイプに位置付ける、位置付け機能が使用できます。

参照

[コンポーネント]リポジトリのカラム

コンポーネントの読み込み

コンポーネントの削除

コンポーネント特性

コンポーネント項目

コンポーネントジェネレータ

コンポーネント特性

[CRR_INTERFACES]セクション


コンポーネントリポジトリ カラム

[コンポーネント]リポジトリのカラム

コンポーネント > コンポーネントリポジトリ

[コンポーネント]リポジトリには、以下のカラムがあります。

特性 | 説明
# | 内部で自動的に作成される連番です。
名前 | ECIファイルに定義されたコンポーネント名。修正することができます。
説明 | ECIファイルに定義されたコンポーネントの情報が表示されます。
タイプ | ECIファイルに定義されたコンポーネントのタイプが表示されます。30文字以上の長さの場合、切り詰められます。この表示が空白の場合、Magicコンポーネントとして扱われます。
フォルダ | コンポーネントのエントリが保存されるフォルダを指定します。


コンポーネントリポジトリ コンポーネントの読込

コンポーネントの読み込み

コンポーネント > コンポーネントリポジトリ

空のコンポーネント行を作成し、ズームすると[ファイルを開く]ダイアログが開きます。ここで、コンポーネントインタフェースファイル（*.eci）を選択します。[オプション]メニューの[読込／再読込] を選択して同じようにインタフェースファイルを選択できます。

コンポーネントインタフェースとそれに対応するプロジェクトファイルが読み込まれます。


コンポーネントリポジトリ コンポーネントの削除

コンポーネントの削除

コンポーネント > コンポーネントリポジトリ

コンポーネントを削除すると、プロジェクトファイルからコンポーネントインタフェースが削除されます。プロジェクト内のコンポーネントへの参照は削除されません。削除されたコンポーネントにアクセスしようとすると、参照先が不明であることを示す2つのクェスチョンマーク（??）が表示されます。


コンポーネントリポジトリ コンポーネント特性

コンポーネント特性

コンポーネント > コンポーネントリポジトリ

特定のコンポーネントにカーソルをパークした状態で、Alt+Enterを押下するか、コンテキストメニューから[特性]を選択すると、[コンポーネント特性]ダイアログボックスが表示されます。ここには、[汎用特性]と[設定]の２つのセクションがあります。

[汎用特性]セクションには、以下の特性があります。

  • レビジョン …… コンポーネントのレビジョン番号が表示されます。

  • プロジェクトファイル名

  • キャビネットファイル名

  • 即時有効 …… プロジェクトの読込の際にコンポーネントも読み込むかどうかを指定します。デフォルトは、読み込むように設定されています。変更することができます。

注意:

キャビネットファイルが指定されていないコンポーネントはオープンすることができません。また、プロジェクトファイルとキャビネットファイルの内容が異なる場合も正しく読み込むことができなくなります。

[設定]セクションには、以下の特性があります。

  • ヘルプファイル …… コンポーネントについての説明が記述されたWindowsヘルプファイル名が表示されます。デフォルトのパスは、ECI と同じです。ファイル名はECIの中に設定されていますが、変更可能です。

  • ヘルプキー …… コンポーネントについての説明が記述されたWindowsヘルプファイル名の該当するヘルプキー（キーワード）が表示されます。変更可能です。

参照

使用コンポーネント


コンポーネントリポジトリ コンポーネント項目

コンポーネント項目

コンポーネント > コンポーネントリポジトリ

[コンポーネント]リポジトリの[名前]カラムからズームすると、[コンポーネント項目]テーブルが表示されます。

コンポーネントインタフェースは、コンポーネントに含まれている項目に基づきます。Magicコンポーネント項目は、タブで構成されています。

各タブには、リポジトリのタイプ（モデル、データ、プログラムなど)が表示されます。個々のコンポーネント項目は、コンポーネント項目のタイプごとに表示されます。

各タブには、以下のカラムが含まれています。

  • # …… 自動的に生成される連番

  • 名前 …… 項目の名前が表示されます。

  • 公開名 …… 項目に定義されている公開名が表示されます。

  • コメント …… 項目に関する情報が表示されます。

[環境設定]ボタンをクリックすると、コンポーネントの[動作環境]テーブルにアクセスできます。


コンポーネントリポジトリ 動作環境

動作環境のコンポーネント

コンポーネント > コンポーネントリポジトリ

動作環境のコンポーネントは、対応するコンポーネントオブジェクトがアクセスするものです。動作環境のコンポーネントは、[コンポーネント項目]テーブルに表示されている[環境設定]ボタンをクリックすることで表示されます。

コンポーネントで指定されなかった動作環境は、プロジェクトの動作環境が継承されます 。コンポーネントと関連付けることができる環境情報には、以下のものがあります。

西暦基準年

バッチイベント間隔

修正モードでの登録許可

照会モードでの修正許可

ISAMトランザクション

キーボード休止秒数

カーソルの画面中央位置付

修正後の再位置付

日付タイプ

コンポーネントが新規プロジェクトに読み込まれると、MAGIC.INIファイルに次の特性設定が追加されます。

データベース特性

DBMS特性

サーバ特性

サービス特性

論理名

コンポーネントに関係する特性を識別する追加行の前にコメントが表示されます。

コンポーネントが新規プロジェクトに読み込まれると、コンポーネントと関連付けられた特性は、全てのプロジェクトのオブジェクトで利用することができます。

コンポーネントを削除しても、MAGIC.INIファイルに追加されたコンポーネントに関する設定行は削除されません。

参照

INIPut関数の動作


コンポーネントリポジトリ INIPut関数の動作

INIPut関数の動作

コンポーネント > コンポーネントリポジトリ

マルチスレッドモードでMagicが動作している場合、INIPut関数の動作は、エンドユーザがコンポーネントにアクセスするコンテキストによって異なります。エンドユーザがコンポーネントのタスクにアクセスしてINIPut関数を使用する場合、次のように動作します。

  • [強制書き込みフラグ]が「True」 の場合、MAGIC.INIが更新され、変更内容は全てのアクティブなコンテキストに影響を及ぼします。

  • [強制書き込みフラグ]が「False」 で、動作環境の変更内容がコンポーネントのタスクに関連付けられている場合、変更内容は現在のコンテキスト内の全てのプログラムに影響を及ぼします。エンドユーザがコンポーネントタスクを再開した場合、環境設定値は、コンポーネントと関連付けられている環境特性から再度受け取る必要があります。

  • [強制書き込みフラグ]が「False」で、環境設定値がコンポーネントに指定されていない場合、この環境設定値は現在のタスクに対してのみ更新されます。

注意:

リッチクライアントタスク内で、（(INIPut関数を使用して）論理名を変更した場合、変更内容は次のアプリケーション起動に反映されます。オンラインタスクの場合は、即時に反映されます。


コンポーネントリポジトリ パラメータ一覧

パラメータ一覧

コンポーネント > コンポーネントリポジトリ

パラメータを持つコンポーネントプログラムを読み込んだ場合、[プログラム]テーブルでズームすると[パラメータ一覧]が表示されます。ここでパラメータの内容を確認できます。

このテーブルには以下のカラムが表示されています。

  • パラメータ名……パラメータ名が表示されます。

  • 型……パラメータの型が表示されます。

  • 書式……パラメータの書式が表示されます。


コンポーネントリポジトリ コンポーネント一覧

コンポーネント一覧

コンポーネント > コンポーネントリポジトリ

[コンポーネント一覧]には、プロジェクトの[コンポーネント]リポジトリに登録された内容が表示されます。


コンポーネントジェネレータ

コンポーネント >

Magicは、以下のウィザードを提供します。これらは、外部リソースを使用したコンポーネントを作成したり、外部リソースに基づく既存のコンポーネントを修正することができます。

  • ストアドプロシジャ

  • Webサービス

  • Java

  • MSMQサポート

[オプション]メニューから[コンポーネントジェネレータ]を選択するか、Ctrl+Shift+Gを押下するとウィザードにアクセスすることができます。

ジェネレータは、各コンポーネントに対して、プロジェクトファイルとECIファイルを作成します。

例えば、通貨換算のWebサービスにアクセスするコンポーネントを作成するために、Webサービスウィザードを使用することができます。

Magicが提供するウィザードは、以下のディレクトリにあります。

<Magicのインストールディレクトリ>\Add_On\CRR\Wizards

参照

メインウィザードモジュール


コンポーネントジェネレータ [CRR_Interfaces]

[CRR_INTERFACES] セクション

コンポーネント > コンポーネントジェネレータ

CRRオプションの構文は、MAGIC.INIファイル内の[CRR_Interfaces]セクションで定義されます。

Magicのインストール時に以下のデフォルトのパラメータが設定されます。

[CRR_INTERFACES]

Web サービス = Add_On\CRR\Wizards\CRRws.ecf, InvokeWizard, WS

ストアドプロシジャ = Add_On\CRR\Wizards\CRRSp.ecf, InvokeWizard, StoredProc

Java コンポーネント = Add_On\CRR\Wizards\CRRjcg.ecf, InvokeWizard, JAVA

参照

CRRエントリの定義


コンポーネントジェネレータ [CRR_Interfaces] CRRエントリ

CRRエントリの定義

コンポーネント > コンポーネントジェネレータ > [CRR_INTERFACES] セクション

各CRRエントリは、以下の構文で定義されます。

コンポーネント名 = キャビネットファイル名, 起動プログラム, コンポーネントタイプ, セットアップ文字列

各パラメータの内容は以下の通りです。

  • コンポーネント名 …… メインウィザード画面に表示されるコンポーネント名です。ユニークな名前を指定してください。

  • キャビネットファイル名 …… コンポーネントアプリケーションのキャビネットファイルの名前をフルパスで指定します。

  • 起動プログラム …… ウィザードによって起動されるプログラムの公開名。ウィザードの開始場所を示しています。Magicによって提供されたウィザードは、「InvokeWizard」と指定されています。

  • コンポーネントタイプ …… コンポーネントのタイプです。最大30文字まで指定できます。

  • セットアップ文字列 …… パラメータとしてウィザードに渡される文字列です。セットアップ文字列は、最大255文字まで指定できます。

指定例：

以下のように指定します。

[CRR_INTERFACES]

Webサービス = Add_On\CRR\Wizards\CRRws.ecf, InvokeWizard, WS

ストアドプロシジャ = Add_On\CRR\Wizards\CRRSp.ecf, InvokeWizard, StoredProc

Javaコンポーネント = Add_On\CRR\Wizards\CRRjcg.ecf, InvokeWizard, JAVA

MSMQ サポート = Add_On\CRR\Wizards\CRRMessaging.ecf,InvokeWizard, MSMQ

このパラメータを指定することで、コンポーネント作成用に様々なウィザードを使用することができます。


コンポーネントジェネレータ メインウィザード

メインウィザードモジュール

コンポーネント > コンポーネントジェネレータ

メインウィザードのモジュール「CRRwizard.ecf」は以下にあります。

<Magicのインストールディレクトリ>\Add_On

ウィザードは、以下の手順で実行されます。

  1. [オプション]メニューから[コンポーネントジェネレータ]を選択し、メインウィザードを起動します。

  2. 既存エントリかららウィザードを起動した場合、[更新か作成]ダイログが表示されます。現在のコンポーネントを更新するか、新規にコンポーネントを作成するかを選択し、[次へ]をクリックします。

  3. [コンポーネントの詳細]ダイアログが表示されます。ここに詳細情報を入力し、[次へ]をクリックします。

  4. [コンポーネント]リポジトリの既存のエントリにパークしていない状態でウィザードを起動すると、新規作成として実行されます。[コンポーネントの選択]ダイログが表示されます。
    この画面が表示される時点で、ウィザードはMAGIC.INIファイルの[CRR_Interfaces]セクションの内容を読み込み、有効なコンポーネントタイプのリストを作成します。「コンポーネント名」に基づいてリストに名前が表示されます。「コンポーネント名」重複して定義されている場合、２番目のエントリは無視されます。

  5. 作成したいコンポーネントを選択し、[次へ]をクリックします。ウィザードは、MAGIC.INIに定義されたウィザードアプリケーションの公開名呼び出します。

  6. 選択されたコンポーネントに基づいて以下のウィザードの内、1つが開始されます。

  3. [Webサービス]コンポーネントジェネレータ

  4. [ストアドプロシジャ]コンポーネントジェネレータ

  5. [Java]コンポーネントジェネレータ

  6. [MSMQ]コンポーネントジェネレータ


コンポーネントジェネレータ メインウィザード コンポーネント詳細表示

[コンポーネント詳細表示]画面

コンポーネント > コンポーネントジェネレータ > メインウィザードモジュール

[コンポーネント詳細表示]画面は、イベントパラメータから取得されたコンポーネントに関する情報を表示します。

画面には、以下のパラメータが含まれています。

パラメータ名 | 説明
コンポーネント名 | コンポーネント名は[コンポーネント]リポジトリ内のエントリから取得されます。 もし、どのエントリにもパークしていなければ、ここは空白になります。この入力は必須です。
コンポーネントの場所 | 全ての出力ファイルとキャビネットファイルが保存されているパスを指定します。この入力は必須です。 [ディレクトリ検索]ダイアログボックスで参照して、ディレクトリを選択することができます。
キャビネットファイル名 | キャビネットファイルの名前を指定します。 デフォルトは、<コンポーネント名>.ecf です。
[詳細]ボタン | クリックすると、詳細情報にアクセスできます。 詳細情報については、以下の最初のテーブルを参照してください。
[拡張]ボタン | クリックすると、拡張パラメータにアクセスできます。 拡張オプションの２番目のテーブルを参照してください。

[詳細]ダイアログボックスには、インタフェースファイルに書き込まれた以下のパラメータが含まれています。

パラメータ | 説明
説明 | コンポーネントの説明
レビジョン | コンポーネントのレビジョン番号
ヘルプファイル名 | コンポーネントヘルプファイル
ヘルプキー | コンポーネントに対するヘルプキー

[拡張]画面には、以下のパラメータが含まれています。

パラメータ | 説明
即時有効 | チェックボックスをチェックすると、[コンポーネント]リポジトリ内の[即時有効]特性がオンに設定されます。 「コンポーネント特性」を参照してください。
インタフェースファイル名と場所 | 作成されるECIファイルの名前とパスです。この設定は必須です。 ここからズームすることでファイルを参照することができます。
プロジェクトファイルの保存 | プロジェクトファイルを保存するかどうかを選択します。
モジュールとしてプロジェクトに保存 | ここを選択すると、作成されたプロジェクトが現在のプロジェクトのモジュールの一部として追加されます。[プロジェクトファイルの保存]が選択されていない場合、ここは無効になります。


コンポーネントジェネレータ Webサービス

Webサービスコンポーネントジェネレータ

コンポーネント > コンポーネントジェネレータ

このウィザードは、Webサービスにアクセスするコンポーネントを作成するために使用されます。

[Webサービス]コンポーネントジェネレータを使用して、以下の手順でコンポーネントを作成します。

  1. メインウィザードの操作手順に従って、コンポーネントジェネレータを起動します。

  2. [Webサービスの場所]ダイアログで、[SDL URL]または[UDDI検索]オプションをクリックします。

[WSDL URL]を選択した場合

  3. [WSDL URL]を選択した場合、WSDLのパスを入力します。[WSDL URL]欄には、最大256文字まで入力することができます。入力欄をダブルクリックすることで、ディスクの上のWSDLファイルを検索することができます。

  4. [次へ]をクリックするとMagicは指定されたWSDLファイルをアクセスし、構文解析を行います。WSDLファイルが存在しなかったり、不正なものであった場合、エラーメッセージが表示されます。

[UDDI検索]オプションを選択した場合

  3. [UDDI検索]オプションを選択した場合、[UDDIサーバと検索文字列]ダイアログが表示されます。

  4. [UDDIサーバと検索文字列]ダイアログ内では、サービスを検索するために、UDDIサーバと検索文字列を入力します。検索文字列では、ワイルドカードとして「%」を使用することができます。
    例えば、Windows2003 Server のUDDIサービスにアクセスする場合は、以下のようなURLを指定します。

http://Servername/uddipublic/inquire.asmx

  3. [次へ]をクリックすると、[サービス選択]ダイアログが表示されます。ここでは、使用したいサービスを選択します。このダイアログには、検索文字列によって照合されたサービスが表示されます。WSDLファイル(アクセスポイント)を持っているサービスのみ表示されます。サービスを選択して[次へ]をクリックすると[アクセスポイントの選択]ダイアログが表示されます。

  4. [アクセスポイントの選択]ダイアログには、選択されたサービスに対しアクセスポイントが複数存在する場合、アクセスポイントが選択できます。また、このサービスに関する詳細情報も表示されます。

（以下共通）

  5. [次へ]をクリックすると、[処理の追加]ダイアログが表示され、WSDLに定義されている処理の一覧が表示されます。この中から、使用したい処理を選択します。少なくとも1つの処理を選択してください。
    WSDLファイル内に処理が定義されていない場合、[Webサービスの位置]ダイアログに戻ります。

  6. [次へ]をクリックすると、[パラメータの変更]ダイアログが表示されます。ここには、WSDLに定義されているデータタイプと対応するMagicのデータタイプが表示されます。[書式]のみ変更できます。

  7. [次へ]をクリックすると、[コンポーネントの詳細]ダイアログが表示されます。ここには、作成するコンポーネントの情報が表示されます。この内容でよければ、[終了]をクリックしてください。Webアプリケーション（コンポーネント）が作成されます。

  8. [Webサービス]コンポーネントジェネレータを使用し終えたら、作成されたプログラムを確認してください。詳細は、「作成されるWebサービスコンポーネント」を参照してください。

注意:

  • コンポーネント名にDBCSコード（全角及び半角カタカナ）を含めないようにしてください。

  • [SOAP Spyのアドレス]こアドレスが設定された場合、SOAP Spyが実行していない状態で実行するとWSDLのURLのアクセスができません。


コンポーネントジェネレータ Webサービス 作成されたコンポーネント

作成されるWebサービスコンポーネント

コンポーネント > コンポーネントジェネレータ > [Webサービス]ウィザード

[Webサービス]コンポーネントジェネレータ使用すると、以下のようなコンポーネントが作成されます。

  • メインプログラムに以下の変数項目が作成されます。

  • WsFault (BLOB型)

  • 選択された各処理に対応した公開プログラムが作成されます。

  • 作成された公開プログラムに定義された、[コールWebサービス]処理コマンドの[エラー情報]特性には、メインプログラムに定義された、WsFault変数が割り当てられます。

  • サービスには、必要なパラメータや環境設定が全て設定されます。

  • メインプログラムに、２つのユーザ定義関数が作成されます。

  • <コンポーネント名>_Status …… Webサービスの起動処理が成功したか否かが返ります。WsFault変数の内容がNULLかどうかを判別する論理値として返ります。

  • <コンポーネント名>_Fault …… Webサービスを呼び出した際のエラー情報が返ります。メインプログラムに定義された、WsFault変数の値が返ります。


コンポーネントジェネレータ ストアドプロシジャ

ストアドプロシジャコンポーネントジェネレータ

コンポーネント > コンポーネントジェネレータ

このウィザードは、(MAGIC.INIで)指定されたデータベースからSQLの全てのストアドプロシジャ一覧を表示し、適切なパラメータと戻り値を持つSQLコマンドを実行するコンポーネントを作成します。

[ストアドプロシジャ]コンポーネントジェネレータを使用して、以下の手順でコンポーネントを作成します。

  1. メインウィザードの操作手順に従って、コンポーネントジェネレータを起動します。

  2. [コンポーネントの選択]ダイアログから「ストアドプロシジャ」を選択し、[次へ]をクリックします。

  3. [コンポーネント詳細]ダイログに詳細情報を入力し、[次へ]をクリックします。

  4. [データベース選択]ダイログでストアドプロシジャが含まれたデータベースを選択します。このデータベースには、MAGIC.INI に定義されたデータベースが一覧表示されます。表示されるデータベースは、DBMSが以下の場合のみです。

    • MS-SQL Server

    • Oracle

    • DB2 UDB

[次へ]をクリックします。

  5. [ストアドプロシジャ選択]ダイログで、使用するストアドプロシジャを選択します。このダイログには、データベースから取得されたストアドプロシジャが表示されます。

  6. ストアドプロシジャ上にパークしている間、[SPを表示]ボタンをクリックするとストアドプロシジャの内容が表示されます。[OK]をクリックし、[次へ]をクリックします。

  7. [書式の設定]ダイログには、フィールドに対応するMagicのデータタイプが表示されます。書式のみ変更できます。[次へ]をクリックします。

  8. [コンポーネントの詳細]ダイアログが表示されます。ここには、作成するコンポーネントの情報が表示されます。この内容でよければ、[終了]をクリックしてください。

  9. [ストアドプロシジャ]コンポーネントジェネレータを使用し終えたら、作成されたプログラムを確認してください。詳細は、「作成されるストアドプロシジャコンポーネント」を参照してください。

注意：

このウィザードを使用して、戻り値を返すストアドプロシジャを作成することができますが、フォームにテーブルの内容を表示するようなオンラインタスクを作成することはできません。

コンポーネント名にDBCSコード（全角及び半角カタカナ）を含めないようにしてください。


コンポーネントジェネレータ ストアドプロシジャ 作成されたコンポーネント

作成されるストアドプロシジャコンポーネント

コンポーネント > コンポーネントジェネレータ > [ストアドプロシジャ]ウィザード

[ストアドプロシジャ]コンポーネントジェネレータ使用すると、以下のようなコンポーネントが作成されます。

  • 指定したストアドプロシジャに対応した公開プログラムが作成されます。

  • 各ストアドプロシジャ用パラメータに対応した、パラメータ項目が定義されます。パラメータ項目は、モデルを使用するように定義されます。

  • ストアドプロシジャにアクセスするために、各プログラムはダイレクトSQLを使用するように定義されます。

  • パラメータ項目は、入力パラメータとしてダイレクトSQLステートメントに追加されます。

  • 戻り値は、出力パラメータとして追加されます。

  • ダイレクトSQLステートメントを生成するために、入／出力パラメータは「参照渡し」にする必要があります。

  • Oracleの場合、出力項目もパラメータとして作成されます。


コンポーネントジェネレータ MSMQ

MSMQコンポーネントジェネレータ

コンポーネント > コンポーネントジェネレータ

このウィザードは、MagicのMSMQ機能に簡単にアクセスすることができるコンポーネントを作成することができます。

[MSMQ]コンポーネントジェネレータを使用して、以下の手順でコンポーネントを作成します。

  1. メインウィザードの操作手順に従って、コンポーネントジェネレータを起動します。

  2. [コンポーネントの選択]ダイアログから「MSMQ」を選択し、[次へ]をクリックします。

  3. [コンポーネント詳細]ダイログに詳細情報を入力し、[次へ]をクリックします。

  4. [キューアドレス]ダイアログから、どのようにキューにアクセスするかを選択します。「直接」を選択した場合、メッセージサーバのホスト名を指定します。「TCP経由」を選択した場合、IPアドレスを入力する必要があります。PCのホスト名とIPアドレスの両方を空白にすることもできます。[次へ]をクリックします。

  5. [キューアクセス]ダイアログから、キューにアクセスする方法を選択します。コンポーネントにトランザクションをサポートする機能を追加したい場合は、「トランザクション機能の追加」を選択します。[次へ]をクリックします。

  6. [コンポーネントの確認]ダイアログから、[終了]をクリックします。

[MSMQ]コンポーネントジェネレータを使用して作成されたコンポーネントについては、「作成されるMSMQコンポーネント」のトピックを参照してください。

注意:

コンポーネント名やキュー名にDBCSコード（全角及び半角カタカナ）を含めないようにしてください。


コンポーネントジェネレータ MSMQ コンポーネント

機能：読込用のキューをオープンします.

パラメータ：

  • ComputerAddress……(A100)サーバPCのホスト名かIPアドレス

  • QueueName……(A124)受信するキュー名

戻り値：

  • QueueId……（N17）キューのハンドル値が返ります。

機能：書込用のキューをオープンします.

パラメータ：

  • ComputerAddress……（A100）サーバPCのホスト名かIPアドレス

  • QueueName……（A124）受信するキュー名

戻り値：

  • QueueId……（N17）キューのハンドル値が返ります。

機能：キューをクローズします.

パラメータ：

  • QueueId……（N18）キューID

戻り値：

  • 戻り値……（N17）処理結果が返ります。

機能：キューのエラー情報を取得します.

パラメータ：

なし

戻り値：

  • 戻り値コード……（N17）MQサーバからの戻り値を返します。

機能：メッセージを送信します.

パラメータ：

  • QueueID……(N17)オープン次に返されるキューのハンドル値

  • Message……(BLOB)送信するメッセージ

  • DataType……(A1)送信するメッセージのデータ型

  • Numeric picture……(A30)データが数値の場合、書式を指定します。

  • TransactionId……(N18)トランザクションのハンドル値

  • CorrelationId……(書式「3」の数値セルが定義されたベクトル型)相関データ

戻り値：

  • MessageID……（書式「3」の数値セルが定義された ベクトル型）メッセージIDが返ります。

機能：メッセージを読み込みます.

パラメータ：

  • QueueID……(N17)オープン次に返されるキューのハンドル値

  • TimeoutInterval……(N6)コンポーネントがメッセージを待つ時間(ミリ秒)

  • TransactionId……(N18)トランザクションのハンドル値

  • MessageId……(書式「3」の数値セルが定義されたベクトル型)相関データ

戻り値：

  • Message……（BLOB）受信されたメッセージ

機能：メッセージの説明を定義するラベルを指定します。設定後に送信されたメッセージから有効になります。

パラメータ：

  • QueueID……(N17)オープン次に返されるキューのハンドル値

  • Label……(A30)メッセージのラベル

戻り値：

なし

機能：メッセージに対する優先順位を指定します。0～7 の間の数値で 0 が最も低い優先順位です。デフォルトは、「3」です。

パラメータ：

  • QueueID……(N17)オープン次に返されるキューのハンドル値

  • Priority……(N6)コンポーネントがメッセージを待つ時間(ミリ秒)

戻り値：

なし

機能：肯定応答のメッセージタイプを指定します.

パラメータ：

  • QueueID……(N17)オープン次に返されるキューのハンドル値

  • Acknowledgement……(N1)メッセージタイプ

  • Acknowledgement Computer……(A100)応答先のPCのホスト名

  • Acknowledgement Queue……(A124)キュー名

戻り値：

なし

機能：メットランザクションを開始します.

パラメータ：

なし

戻り値：

  • TransactionID……（N17）トランザクションIDが返ります。

機能：トランザクションをコミットします.

パラメータ：

  • TransactionId……(N18)トランザクションのハンドル値

戻り値：

  • 戻り値……（N17)処理結果が返ります.

機能：トランザクションをロールバックします.

パラメータ：

  • TransactionId……(N18)トランザクションのハンドル値

戻り値：

  • 戻り値……（N17）処理結果が返ります.

作成されるMSMQコンポーネント

コンポーネント > コンポーネントジェネレータ > MSMQコンポーネントジェネレータ

[MSMQ]コンポーネントジェネレータによって作成されるコンポーネントは、MSMQ.eciをアクセスするようになっています。

MSMQ用のコンポーネント内に定義されているプログラムを関数形式で呼び出せるように、以下のグローバルなユーザ定義関数がメインプログラム内に作成されます。

  • MsmqOpenReadQueue …… [キューアクセス]で「メッセージの書込」以外を選択した場合に追加されます。

  • MsmqOpenWriteQueue …… [キューアクセス]で「メッセージの読込」以外を選択した場合のみ追加されます。

  • MsmqCloseQueue

  • MsmqLastError

  • MsmqSendMessage …… [キューアクセス]で「メッセージの読込」以外を選択した場合のみ追加されます。

  • MsmqReadMessage …… [キューアクセス]で「メッセージの書込」以外を選択した場合に追加されます。

  • MsmqSetLabel …… [キューアクセス]で「メッセージの読込」以外を選択した場合のみ追加されます。

  • MsmqSetPriority …… [キューアクセス]で「メッセージの読込」以外を選択した場合のみ追加されます。

  • MsmqSetAcknowledge …… [キューアクセス]で「メッセージの読込」以外を選択した場合のみ追加されます。

  • MsmqBeginTrans …… [トランザクション機能の追加]が選択された場合のみ追加されます。

  • MsmqCommitTrans …… [トランザクション機能の追加]が選択された場合のみ追加されます。

  • MsmqRollBackTrans …… [トランザクション機能の追加]が選択された場合のみ追加されます。

また、以下のグローバルイベントも作成されます。

  • MsmqPublicError …… MSMQの処理でエラーが発生した場合、このイベントが発行されます。


JCG

Javaコンポーネントジェネレータ

コンポーネント > コンポーネントジェネレータ
Javaとの連携 >

Javaコンポーネントジェネレータ（以下JCG と略します。）は、Magicが特定の JNI シグニチャを指定することなくJavaクラスやEJBファイルにアクセスできるように、コンポーネントを作成するユーティリティです。

  1. 以下のメインウィザードモジュールの手順に従って、コンポーネントジェネレータにアクセスします。

  2. JCGを起動するには、サブメニューからJavaコンポーネントを選択します。[オブジェクトタイプ]ダイアログからオプションを選択します。

注意：

オブジェクトブラウザには、クラスパス内のサブフォルダ名が表示されますが、そこに表示されるオブジェクトを選択しても無効になります。クラスファイルの場合は、<no package>内のクラス名を選択してください。

環境設定

Javaオブジェクトにアクセスするには、OSの環境変数かMagic.iniの[MAGIC_JAVA]セクションでCLASSPATHを指定する必要があります。クラスパスの設定方法や、クラスファイル（パッケージファイル）の場所によって、オブジェクトブラウザでの表示位置が異なります。

OSの環境変数による設定

Environment Class Path

Magic.iniによる設定

Magicエンジンのインストールフォルダ内クラスファイルが存在する場合

Environment Class Path

それ以外

Magic Class Path


コンポーネントビルダ

コンポーネントインタフェースビルダ

コンポーネント >

Magicは、以下のコンポーネントインタフェースビルダを使用することで、プロジェクトを外部のアプリケーションからアクセスできるようになります。

Magicインタフェースビルダ

リッチクライアントインタフェースビルダ

Webサービスインタフェースビルダ

EJBインタフェースビルダ

COMインタフェースビルダ

注意：

[動作環境]ダイアログの[外部コードページ]の設定によってコンポーネントインタフェースビルダが正常に動作しない場合があります。特に必要でない限り、デフォルトの「932」に設定しておいてください。


コンポーネントビルダ MIB

Magicインタフェースビルダ

コンポーネント > コンポーネントインタフェースビルダ

[オプション]メニューからに[インタフェースビルダ]をクリックし、ここから[Magic]をクリックすることによってMagicインタフェースビルダ（MIB）を起動することができます。

MIBは以下のことができます。

  • コンポーネントインタフェースファイル（ECI）を作成します。

  • コンポーネントインタフェースの表示や修正を行うことができます。

  • ECIファイルを指定したディレクトリに保存することができます。

参照

ECIファイル一覧

ECI の詳細とプロジェクト特性

リポジトリの選択

リポジトリ項目の選択

動作環境

サーバ

サービス

データベース

論理名

コンポーネントのパス

ECI エラーの詳細

ECI作成


コンポーネントビルダ MIB ECIファイル一覧

コンポーネント一覧

コンポーネント > コンポーネントインタフェースビルダ > Magicインタフェースビルダ

このダイアログには、有効なコンポーネントが一覧表示されます。既存のコンポーネントを選択するか、[作成]ボタンを押下してコンポーネントを新規に作成することができます。[新規]ボタンを押下したり、[次へ]をクリックすると[ECI の詳細とプロジェクト特性]ダイアログが表示されます。

コンポーネント名を選択し、[削除]をクリックするとコンポーネントを削除することができます。[削除]をクリックすると、確認ダイアログが表示されます。「Yes」をクリックすると選択されたコンポーネントと関連するデータが削除されます。


コンポーネントビルダ MIB ECIの詳細

コンポーネントとプロジェクトの設定

コンポーネント > コンポーネントインタフェースビルダ > Magicインタフェースビルダ

以下の特性に対する情報を入力することでコンポーネントとプロジェクトの詳細を設定することができます。

[コンポーネントの設定]セクション

  • コンポーネント名 …… コンポーネント名は必須入力です。最大30字まで入力できます。 コンポーネント名は、ECIファイルとディレクトリを作成するために使用されます。

  • 内容 …… コンポーネントに関する簡単な説明を入力することができます。

  • レビジョン …… コンポーネントのレビジョン番号を入力することができます。

  • 即時有効 …… コンポーネントを即読み込むかどうかを指定します。
    コンポーネントのユーザ定義関数は、ホストアプリケーションが使用する前にコンポーネントが読み込まれた場合のみ使用することができます。ユーザ定義関数が必要とされ、コンポーネントがまだ読み込まれていないような状況を避けるため、この設定は「Yes」にしてください。モジュールが組み込まれる前に、この特性をあらかじめ設定しておくことができます。ユーザ定義関数がコンポーネントに含まれている場合、この特性は自動的に「Yes」に設定されます。

  • コンポーネントタイプ …… コンポーネントのタイプを指定する文字列を入力することができます。デフォルトタイプは、「eDeveloper」です。

[プロジェクトの設定]セクション

  • プロジェクトファイル名 …… プロジェクトのソースファイルが保存されているフォルダ名を入力します。[ファイルを開く]ダイアログを開いて検索することもできます。[プロジェクトファイル名]または、[キャビネットファイル名]の指定は必須です。

  • キャビネットファイル名 ……キャビネットファイル名を入力します。デフォルト値は、<プロジェクト名>.ecf です。[ファイルを開く]ダイアログを開いて検索することもできます。[プロジェクトファイル名]または、[キャビネットファイル名]の指定は必須です。

  • ヘルプファイル名 …… コンポーネントに対応したヘルプファイル名を入力します。

  • ヘルプキー …… F1キーを押下した場合に対応するトピックが開くようにヘルプキーを入力します。

[次へ]をクリックすると、[リポジトリの選択]ダイアログが開きます。


コンポーネントビルダ MIB リポジトリの追加

リポジトリの追加

コンポーネント > コンポーネントインタフェースビルダ > Magicインタフェースビルダ

ECIファイルに割り当てることのできるリポジトリには以下のものがあります。

  • モデル

  • データソース

  • プログラム

  • ヘルプ

  • 権利

  • イベント

  • 関数

  • 動作環境

組み込みたいリポジトリまたは全てのリポジトリを選択し、[追加]または[全て追加]をクリックすることでコンポーネントを追加することができます。ここには、少なくとも1つの公開名が定義されているリポジトリが表示されます。[次へ]をクリックすると[リポジトリ項目の選択]ダイアログが表示されます。


コンポーネントビルダ MIB リポジトリ項目の追加

リポジトリ項目の追加

コンポーネント > コンポーネントインタフェースビルダ > Magicインタフェースビルダ

[リポジトリの追加]ダイアログでリポジトリを選択した後で[次へ]をクリックすると、選択された各リポジトリのための入力用ダイアログが表示されます。

例えば、モデルやプログラム、ヘルプを選択した場合、最初にモデルの一覧が表示されます。モデルの選択後、プログラムの一覧が表示されます。プログラムの選択後は、ヘルプの一覧が表示されます。

注意：

公開名が定義された項目のみ表示されます。

各リポジトリごとに項目を選択し、[詳細]ボタンをクリックして詳細情報を表示したり修正することができます。

リポジトリ項目の[パラメータ項目]ダイアログには、以下の設定欄があります。

  • 名前 …… 選択された項目の名前が表示されます。変更はできません。

  • 公開名 …… 選択された項目の公開名が表示されます。変更はできません。

  • コメント …… 項目に関する情報を入力することができます。

  • ヘルプキー …… この項目に対応するヘルプのトピックを表示するためのヘルプキーを指定します。最大30文字まで指定できます。


コンポーネントビルダ MIB 動作環境

環境設定

コンポーネント > コンポーネントインタフェースビルダ > Magicインタフェースビルダ

[動作環境の追加]ダイアログでは、コンポーネントに追加できる項目が表示され、この中から選択することができます。

  • 動作環境

  • サーバ

  • サービス

  • データベース

  • 論理名

選択された各区分に対して、詳細項目を選択するダイアログが表示されます。


コンポーネントビルダ MIB 動作環境

動作環境

コンポーネント > コンポーネントインタフェースビルダ > Magicインタフェースビルダ

コンポーネントで指定されなかった全ての環境情報は、プロジェクトの環境設定から引き継がれます。コンポーネントに組み込むことのできる動作環境は以下の通りです。

  • 西暦基準年

  • バッチイベント間隔

  • 修正モードでの登録許可

  • 照会モードでの修正許可

  • ISAMトランザクション

  • キーボード休止秒数

  • カーソルの画面中央位置付け

  • 修正後の再位置付け

  • 日付モード


コンポーネントビルダ MIB サーバ

サーバ

コンポーネント > コンポーネントインタフェースビルダ > Magicインタフェースビルダ

[環境設定]ダイアログにて[サーバ]を追加した場合、[サーバ追加]ダイアログが表示されます。ここには、プロジェクト内で有効なサーバが表示されます。サーバを追加した後で、[詳細]ボタンをクリックすると、各サーバの詳細情報を設定することができます。

[パラメータ詳細]ダイアログには、以下の特性値が表示されます。

  • サーバ名

  • サーバタイプ

  • サーバアドレス

  • ユーザ名

  • パスワード

  • タイムアウト

  • 代替サーバ


コンポーネントビルダ MIB サービス

サービス

コンポーネント > コンポーネントインタフェースビルダ > Magicインタフェースビルダ

[環境設定]ダイアログにて[サービス]を追加した場合、[サービス追加]ダイアログが表示されます。ここには、プロジェクト内で有効なサービスが表示されます。サービスを追加した後で、[詳細]ボタンをクリックすると、各サービスの詳細情報を設定することができます。

[パラメータ詳細]ダイアログには、以下の特性値が表示されます。

  • サービス名

  • サーバタイプ

  • エンドポイント

  • ユーザ名

  • パスワード


コンポーネントビルダ MIB データベース

データベース

コンポーネント > コンポーネントインタフェースビルダ > Magicインタフェースビルダ

[環境設定]ダイアログにて、[データベース]を追加した場合[データベースの追加]ダイアログが表示されます。ここには、プロジェクト内で有効なデータベースが表示されます。データベースを追加した後で、[詳細]ボタンをクリックすると、各データベースの詳細情報を設定することができます。

[パラメータ詳細]ダイアログには、以下の特性値が表示されます。

詳細 | ログイン | オプション | SQL情報
名前 データソースタイプ データベース名 DBMS 位置 | データベースサーバ ユーザ名 ユーザパスワード 接続文字列 | 開発モードでのテーブル変換 定義チェック インデックスチェック サーバソート Magic ロック ロックパス | データベース情報 ヒント テーブルの存在チェック 配列サイズ 照合順序ファイル

XML データベース

以下の特性がXMLデータソースに対して表示されます。

  • 一時データソース…… XMLデータベース以外を選択します。指定されたデータベースにXMLのフラットビューが保存されます 。

  • トランザクションは、ここで指定されたDBMSに依存します。

  • デフォルトは、「Memory」です。

  • プロジェクトをオープンする度に、ここで指定されたデータベースがフラットビューに適用されます。

  • 実行時にXMLソースをオープンすると、フラットビューテーブルは、このデータベースを使用してオープンされます。DBMSゲートウェイがロードされない場合、XMLテーブルもオープンされません。


コンポーネントビルダ MIB 論理名

論理名

コンポーネント > コンポーネントインタフェースビルダ > Magicインタフェースビルダ

[環境設定]ダイアログにて、[論理名]を追加した場合[論理名の追加]ダイアログが表示されます。ここには、プロジェクト内で有効な論理名が表示されます。論理名を追加した後で、[詳細]ボタンをクリックすると、各論理名の詳細情報を設定することができます。

[パラメータ詳細]ダイアログには、以下の特性値が表示されます。

  • 論理名

  • 実行名


コンポーネントビルダ MIB コンポーネントのパス

コンポーネントのパス

コンポーネント > コンポーネントインタフェースビルダ > Magicインタフェースビルダ

このダイアログには、コンポーネント（ECIファイル）の作成場所を指定します。指定されたディレクトリが存在していない場合、ディレクトリが作成されます。

指定された出力ファイルがすでに存在している場合、確認ダイアログボックスが表示され、ファイルを上書きするかどうか確認します。

[参照]ボタンをクリックすることで、出力先を参照することができます。

注意：

デフォルトパスは、MAGIC.INIファイルの中の[Magic_Builders]セクションから取得されます。このセクションが定義されていない場合、現在のプロジェクトパスをデフォルトとします。

エラーが発生した場合、[終了]ボタンが無効になります。[次へ]をクリックすると[ECIエラー詳細]ダイアログが表示されます。エラーがない場合、[ECI作成]ダイアログが表示されます。


コンポーネントビルダ MIB ECIエラー

ECI エラーの詳細

コンポーネント > コンポーネントインタフェースビルダ > Magicインタフェースビルダ

修正モードの場合、このダイアログには、削除されたり、リネームされた公開名を持つリポジトリ項目が表示されます。ウィザードを終了して、公開名を入力または修正して、コンポーネント作成時の公開名になるようにする必要があります。


コンポーネントビルダ MIB ECI作成

ECI作成

コンポーネント > コンポーネントインタフェースビルダ > Magicインタフェースビルダ

このダイアログには、コンポーネントの概要が表示されます。エラーがない場合、[終了]ボタンが有効になります。エラーがある場合、[終了]ボタンは無効となり、適切なメッセージがステータスバーに表示されます。

コンポーネントが作成されたかどうかを知らせるメッセージボックスが表示されます。処理の完了後、コンポーネントが作成されなくてもウィザードは終了します。


コンポーネントビルダ リッチクライアント

リッチクライアントインタフェースビルダ

コンポーネント > コンポーネントインタフェースビルダ
リッチクライアントアプリケーション >

リッチクライアントアプリケーションのインタフェースファイルは、JWS（Java Web Start）を使用して実行されます。

JWSを使用する場合、2つの環境設定ファイルが必要です。

  • HTMLファイル …… クライアントに対してJWSの必要性をチェックし、必要であればインストールします。

  • JNLPファイル …… アイコンや起動プログラム、およびサーバパスなどのアプリケーション環境が含まれています。

これらのファイルを作成するために、Magicはリッチクライアントインターフェイルビルダを提供します。

以下の操作でリッチクライアントインタフェースビルダを起動させることができます。

  1. [オプション]メニューを開き、[インタフェースビルダ]をクリックし、[リッチクライアント]をクリックします。

  2. [ウェルカム]ダイアログから、[次へ]をクリックします。[環境設定]ダイアログが表示されます。


コンポーネントビルダ リッチクライアント 環境設定

環境設定ダイアログ

コンポーネント > コンポーネントインタフェースビルダ > リッチクライアントインタフェースビルダ

このダイアログでは、動作環境設定の作成や修正、削除を行うことができます。

[新規]をクリックし、既存の環境情報を選択して、[次へ]をクリックすると、[インストール設定]ダイアログが表示されます。


コンポーネントビルダ リッチクライアント インストール設定

インストール設定ダイアログ

コンポーネント > コンポーネントインタフェースビルダ > リッチクライアントインタフェースビルダ

このダイアログでは、環境設定とプロジェクト設定を更新することができます。

以下の項目が設定できます。

設定 | 説明
アプリケーションタイトル （必須） | 作成されるJNLP/HTMLファイル名の初期値となるアプリケーション名。 ここで設定された名前が、[環境設定]ダイアログで一覧表示されます。
アプリケーションの説明 | アプリケーションがクライアントPC上で実行される際に表示されるアプリケーションの説明。 起動用のアイコンのプロパティの［コメント］欄に表示されます。
ベンダ名（必須） | アプリケーションがクライアントPC上で実行される際に表示されるアプリケーションのベンダ名。
アイコンイメージ | アプリケーションの起動用のショートカットに表示されるアプリケーションのアイコンのファイル名 指定可能なフォーマットはGIFとJPEGです。 JNLPファイルに反映されるのはファイル名のみですが、ファイルの存在の確認を行うためここには、実際にファイルが存在するパスも指定してください。URL指定は無効です。 JNLPファイルには、プロジェクトフォルダのエイリアス内のイメージファイルを参照するように定義されます。 [アプリケーション特性]の[アイコンファイル名]にファイル名が定義されている場合、このファイル名がデフォルトで設定されます。
デスクトップにショートカット作成 | インタフェースファイル作成時に、アプリケーションのデスクトップアイコンを作成するかどうかを指定します。

[次へ]をクリックすると、[サーバ情報]ダイアログが表示されます。


コンポーネントビルダ リッチクライアント サーバ情報

サーバ情報ダイアログ

コンポーネント > コンポーネントインタフェースビルダ > リッチクライアントインタフェースビルダ

このダイアログでは、Webサーバ上に設定する位置とエイリアスの環境情報を指定することができます。

[サーバ情報]ダイアログには、以下の特性が含まれています。

特性 | 説明
サーバ名 | サーバ名またはIPアドレス http://またはhttps://と入力すると、この指定は削除されます。 Webサーバの内容に基づいて、この特性を更新する必要があります。 他のクライアントからアクセス可能な値を指定してください。
リクエスタ名 | 使用するWebリクエスタ名
Scriptsフォルダのエイリアス | Webサーバ上のScriptsフォルダのエイリアス（デフォルト：インストール環境に依存）
RCモジュールフォルダのエイリアス | Webサーバ上のリッチクライアントとSWT Jarファイルが格納されるフォルダのエイリアス（デフォルト：インストール環境に依存）
プロジェクトフォルダのエイリアス | Webサーバ上のプロジェクトフォルダのエイリアス（デフォルト：インストール環境に依存）
セキュアプロトコル（https）の使用 | アプリケーションを実行する際に、httpかhttpsのどちらを使用するかを指定します。
JRE の位置 | クライアントにJREがインストールされていない場合、指定されたURLにアクセスしてインストールを行います。（デフォルト：http://java.sun.com/products/autodl/j2se）

[次へ]をクリックすると、[実行コマンド]ダイアログが表示されます。


コンポーネントビルダ リッチクライアント 実行コマンド

実行コマンドダイアログ

コンポーネント > コンポーネントインタフェースビルダ > リッチクライアントインタフェースビルダ

このダイアログでは、実行されるプログラムとアプリケーション起動時に読み込まれる環境変数を設定することができます。

特性

説明

アプリケーション名

起動用のアイコンに表示されるアプリケーション名

開始プログラム名

実行するリッチクライアントプログラムの公開名。

この特性は、手動で入力したり、選択リストから選択することができます。ユーザが選択可能なプログラムが存在する場合、[...]ボタンが表示されます。このボタンをクリックすると、現在のプログラム内の以下の条件にあてはまるプログラムの一覧が表示されます。

  • [タスクタイプ]特性が「リッチクライアント」に設定されている

  • 公開名が指定されている

  • [外部]カラムがチェックされている

環境変数

リッチクライアントの起動時に、クライアントPCから読み込まれる環境変数をカンマ区切りで指定します。

[次へ]をクリックすると、[環境設定パス]ダイアログが表示されます。


コンポーネントビルダ リッチクライアント 環境設定パス

環境設定パスダイアログ

コンポーネント > コンポーネントインタフェースビルダ > リッチクライアントインタフェースビルダ

このダイアログでは、ウィザードで作成される環境設定ファイルの位置を設定することができます。

特性 | 説明
ベンダ名でセルフサイン | MagicとSWT JARファイルがベンダ名によってセルフサインするかどうかを指定します。 この設定は、オフのままにしておいてください。
JNLPファイル名 | JNLPファイルが作成される位置とファイル名を指定します。
HTMLファイル名 | HTMLファイルが作成される位置とファイル名を指定します。

注意：

[JNLPファイル名]と[HTMLファイル名]は、Webサーバのエイリアスが設定されたディレクトリ内に置くようにしてください。通常は、RC用のプロジェクトファイル用のエイリアスが定義されているディレクトリ内にプロジェクト毎に作成するようにしてください。

[終了]をクリックすると、ビルダ結果セクションに設定された動作が実行され、ウィザードは終了し、[配備手順]ダイアログが表示されます。


コンポーネントビルダ リッチクライアント 配備手順

配備手順ダイアログ

コンポーネント > コンポーネントインタフェースビルダ > リッチクライアントインタフェースビルダ

ファイルが正常に作成され、エラーが発生しなかった場合、環境設定ファイルの配備手順を表示します。

デプロイ

開発環境で作成されたファイルを元に、以下の手順で実行環境を構築してください。

  1. プロジェクトのキャビネットファイル(ECF)を作成します。

  2. アプリケーションの実行環境をサーバにコピーします。デフォルトは、Magic RichClient Server のインストール先のProjectsサブフォルダになります。

  3. アプリケーションのコピー先がデフォルト以外の場合は、IISのエイリアスをコピー先に定義します。

  4. RCビルダで作成したJNLP/HTMLファイルをアプリケーションのコピー先にコピーします。

  5. JNLP/HTMLファイル内のサーバ名やエイリアス名などを実行環境に合わせて修正します。


コンポーネントビルダ CIB

COMインタフェースビルダ

コンポーネント > コンポーネントインタフェースビルダ
COMオブジェクトサポート >

COM(Component Object Model) は、カスタムアプリケーションを統合する際に使用するコンポーネントを作成し、種々のコンポーネントが相互に作用することを可能にするAPI(Application Programming Interface)を定義します。これらのコンポーネントは、マイクロソフトによって指定されたバイナリ構造を持ち、これによって異なる言語で書かれたコンポーネントの相互アクセスが可能になります。

MagicのCOMインタフェースビルダ（以下、CIBと略します。）は、COMオブジェクト(DLL)を作成することができます。

このCOMオブジェクトがOLEオートメーション用のインタフェースとなることで、Magicを含む様々なツールやアプリケーションがMagicエンジンを呼び出すことを可能とします。

[オプション]メニューの[インタフェースビルダ]を選択し、[COM]をクリックするとCIBが起動します。

[次へ]をクリックすると[COMコンポーネント一覧]画面が表示されます。

注意：

  • CIBは、BLOB型、OLE型、ActiveX型、ベクトル型をサポートしていません。

  • コンポーネント名や公開プログラム名、パラメータ名にDBCSは使用できません。また、数値から始まる名前や空白、ハイフンなどの記号を使用することもできません。

参照

ローカルCOMオブジェクトの実行時の動作

リモートCOMオブジェクトの実行時の動作

COM オブジェクトエラーとトラブルシューティング


コンポーネントビルダ WIB

Webサービスインタフェースビルダ

コンポーネント > コンポーネントインタフェースビルダ
Webサービス >

Webサービスインタフェースビルダは、公開名が定義されたバッチプログラムをWebサービス用に公開することができます。

ビルダは、サービスJARファイルを作成し、Systinet™サーバ（Webサービスのフレームワークとして、Magicと一緒にインストールすることができます。）上でオプションで実行させることができます。

Webサービスの作成とデプロイに成功したら、Systinet™サーバのWindowsサービスが実行されていることを確認してください。（サービス名：Systinet Server for Java）

Systinetサーバが実行されていることを確認するには、Webブラウザより以下のＵＲＬを開いてください。

http://localhost:6060

Systinetサーバコンソールのログインページを表示します。以下のパラメータでログインしてください。

  • ユーザ名：admin

  • パスワード：changeit

公開名を持ったバッチプログラムが少なくとも一つは定義されている必要があります。また、[外部]カラムがチェックされている必要があります。

[オプション]メニューから、[インタフェースビルダ]を選択し、[Webサービス]を選択することでWebサービスビルダが実行されます。

[次へ]をクリックすると[Webサービス一覧]画面が表示されます。

注意：

コンポーネント名や公開プログラム名、パラメータ名にDBCSは使用できません。また、数値から始まる名前や空白、ハイフンなどの記号を使用することもできません。


EIB

EJBインタフェースビルダ

コンポーネント > コンポーネントインタフェースビルダ

Javaとの連携 >

EJBインタフェースビルダ（EIB）は、既存のプログラムをEJBコンポーネントとして動作させるためのインタフェースファイルを作成します。EIBは、J2EE環境でディプロイするモジュールを作成し、パッケージ化して、.jar形式のファイルを作成します。このファイルには、クラスファイルやDDを含んだ全てのモジュールが含まれています。作成されるファイルを「ProxyEJB」と呼びます。

EIBを使用してProxyEJBを作成するには、バッチプログラムを選ぶ必要があります。モデルやデータソース、プログラム以外のオブジェクトを選択することはありません。これらのオブジェクトは、プロジェクト内部でプログラムからアクセスできるようになっていれば十分です。

MRBを使用することで、アプリケーションサーバを監視したり、エンジンの起動や停止の操作を行ったりすることができます。

[オプション]メニューの[インターフェースビルダ]を選択し、[EJB]をクリックするとEJBインタフェースビルダが起動します。

EIBは、以下のことができます。

  • EJBコンポーネントの作成と修正

  • EJBコンポーネントからプログラムやパラメータを追加／削除

  • 動作させるJ2EEサーバの追加

[ウェルカム]ダイアログで[次へ]をクリックすると[EJBコンポーネント一覧]画面が表示されます。

参照

動作環境

命名

戻り値

注意：

  • .jarファイルを作成するには、JDK Ver1.3以上がインストールされていることが必要です。

  • 公開プログラム名やパラメータ名にDBCS（全角文字、または半角カタカナ）を使用しないでください。また以下の文字も含めることができません。

~!@#$%^&*()-+= |\/?,''<.>;:"`


XML連携

XML（Extensible Markup Language）はフレキシブルな標準の書式を使用します。これによって、容易にインターネットやイントラネットなどでデータを共有することができます。

Magicは、標準のデータソースとしてXMLファイルを使用することができます。

XMLデータソースを使用する場合、XMLファイルをメインソースやリンクテーブルとして定義されたタスク（バッチとオンライン）を作成することができます。

[データ]リポジトリでXMLデータソースを定義し、XMLを処理するタスクを定義することができます。「XMLを使用した開発」のトピックを参照してください。

XMLデータソースを使用すると、XMLビューを使用してXMLドキュメントを読み込んだり、処理したリオするタスクを作成することができます。XMLビューは、タスクのメインソースやリンクテーブルとして定義することができます。

XMLValidateとXMLValidationError関数を使用して、XMLタスクがXMLスキーマと互換であることを確認することができます。「XMLの確認」のトピックを参照してください。

ネームスペースは、Magicによって自動的に処理されます。

注意：

XMLファイルを使用する２番目の方法は、様々なXML関連の関数を使用することです。しかし、この２つを組み合わせて使用することは推奨できません。このような方法は、下位互換性のために使用してください。「Magic関数を使用したXMLの使用」のトピックを参照してください。

参照

XMLの実行時の動作

デフォルトデータタイプ


XMLを使用した開発 定義取得

XMLデータソースの定義取得

XML連携 > XMLを使用した開発

XMLデータソースの定義は、スキーマファイル(XSD)から定義情報を読み込むことで行われます。

XMLのドキュメント構造を記述したスキーマファイルがない場合は、外部ツール（XMLSｐｙなど）を使用してXSDファイルを作成する必要があります。

[データ]リポジトリのタイトル行にパークしている状態で、指定したXMLスキーマに対するビューを定義することができます。

[データ]リポジトリのタイトル行にパークしている状態で、定義取得ユーティリティはXMLスキーマに対する必要なビューを作成します。またオプションで、このスキーマに基づくXMLドキュメントの読込/書込用のプログラムを作成します。この方法は、既存のビューを更新するためにスキーマを再読込します。

選択されたスキーマファイルが、複数のグローバル要素(ルート)を持っている場合、[ルート選択一覧]が表示されます。この中から、読み込むルートを1つ選択してください。定義されたネームスペースを持つスキーマのために、ネームスペースURIがグローバル要素名の隣に表示されます。

XMLスキーマの定義取得を行った際、[名前]カラムに値がない場合、カラムには以下のようなデフォルト値が割り当てられます。

<拡張子を除いたスキーマファイル名>.<ルート要素名>

例えば：po.xsdといる名前のスキーマファイルを使用して、ルート要素がpurchaseOrderの場合、[名前]カラムには、「po.purchaseOrder」という名前が定義されます。

同様に、[データソース名]カラムに値がない場合も、デフォルト値が割り当てられます。

<ルート要素名>.xml

例えば：po.xsdといる名前のスキーマファイルを使用して、ルート要素がpurchaseOrderの場合、[データソース名]カラムには、「purchaseOrder.xml」という名前が定義されます。

スキーマファイルの要素においてminOccurs属性またはmaxOccurs属性において同一要素が複数存在する設定がされている場合、その要素ごとに分割して複数のデータが作成されます。


XMLの実行時の動作

XML連携 >

実行時のXMLタスクに関する情報については、以下のトピックを参照してください。

  • フラットデータビュー

  • タスクフロー

  • エラー処理

  • XMLエラーコード


XMLの実行時の動作 フラットデータビュー

フラットデータビュー

XML連携 > XMLの実行時の動作

ここでは、XMLの階層モデルをMagicエンジンによって使用されたリレーショナル/ISAMモデルに対応させるための規則について説明しています。（記述された規則に従って作成/保守されるフラットビューを使用します。）

参照

anyType要素

hexBinaryとbase64Binary

日付と時刻のデータ型

ノードIDと親ID


XMLの実行時の動作 フラットデータビュー anyType

anyType要素

XML連携 > XMLの実行時の動作 > フラットデータビュー

anyType要素は、BLOB型項目に割り当てられます。XMLを読み込むと、要素の内容はビューに読み込まれます。XMLを書き込む際、この項目に入力されたどのような値も、そのままXMLに書き込まれます。


XMLの実行時の動作 フラットデータビュー HexBinary, Base64Binary

hexBinaryとbase64Binary

XML連携 > XMLの実行時の動作 > フラットデータビュー

hexBinary と base64Binaryは、ビューとの間で読み書きが行われると、自動的にバイナリデータとして変換されます。


XMLの実行時の動作 フラットデータビュー 日付と時刻

日付と時刻のデータ型

XML連携 > XMLの実行時の動作 > フラットデータビュー

  • date型は、（「XML Default」や開発エンジン内の）フィールドに対して選択された「表示用書式」に関係なく、XMLスキーマの書式「YYYY-MM-DD」を使用してXMLの読み書きを行います。

  • time型は、XMLスキーマの書式「HH:MM:SS」を使用してXMLの読み書きを行います。オプションのミリ秒とタイムゾーンにアクセスするには、XMLを読み込む前に、文字型に変更する必要があります。

  • 個別の日付情報を記述するgYearやgDay、gMonthの各型は、自動的に数値型に変換されます。

  • XMLを読み込む際に、数値は、解析されてフラットビューに読み込まれます。（例えば、gMonthの値「--10--」は、数値「10」として読み込まれます。）

  • フラットビュー内の値を修正すると、数値はスキーマの書式に従ってXMLに書き込まれます。(例えば、数値「11」は、「--11--」として書き込まれます。）

  • すべての日付と時間のタイプ（date、time、gYear、gDay&gMonthを含めます。）は、文字型に割り当てることもできます。この場合、フラットビュー内では、XML上での内容で読み込まれます。この場合、開発者は（書式に依存しないで値を更新することを考慮した上で）制限なく修正することができます。


XMLの実行時の動作 フラットデータビュー ノードIDと親ID

ノードIDと親ID

XML連携 > XMLの実行時の動作 > フラットデータビュー

ノードID は、XMLデータ構造の特定のノードを一意に識別する内部番号です。この値は実行エンジン内部で作成されるもので、プログラムから修正/作成を行うことはできません。
この値は、XMLファイルをオープンしてからクローズするまでは一定ですが、再度オープンすると別の値になっている可能性があります。従って、XMLファイルがオープンされている間だけ有効な内部識別番号として扱ってください。
親ID は、XMLのデータ構造において、現在のノードに対する親ノードのノードIDです。この値も実行エンジン内部で生成されるものです。ノードIDと同様、これもXMLファイルがオープンされている間だけ有効な内部識別番号です。


XMLの実行時の動作 タスクフロー

タスクフロー

XML連携 > XMLの実行時の動作

実行モードでは、XMLデータソースを使用して動作する時、以下の手順で実行されます。

  1. XMLの読込 ……タスクがオープンされると、[タスク前]の後にXMLソースがビューに読み込まれます。Magicは一度にXMLの全体を読み込みます。同じXMLスキーマの異なるテーブルを使用するサブタスクを起動した場合、XMLを再度読み込むうことは行われません。この手順では、テーブルを定義するだけで構いません。
    [アクセス]特性が「R=読込」に設定された空のXMLは、オープンできませんので注意してください。

  2. XMLドキュメントから取り出されたデータをもとにしたビューにレコードが格納されます。

  3. タスクは指定された処理を実行します。

  4. XMLの書込 …… （ステップ#3で）XMLのビューが変更され、XMLデータソースのアクセスモードが「W=書込」の場合、Magicはタスクの終了時に新しいXMLを出力先（BLOBやファイル）に書き込みます。新しいXMLによって、既存のXMLは置き換えられます。XMLドキュメントの更新/作成内容は、XMLドキュメントをアクセスした最初のタスクが終了した時点で書き込まれます。

注意：

  • XMLファイルの読み込みから書き出しまでの間、XMLファイル全体を排他する必要があるため、複数のユーザが同時に同一のXMLファイルをアクセスすることはできません。
    また、XMLファイルはトランザクションの対象外となります。

  • 親子関係のプログラムの場合、遅延トランザクションを使用してコール特性の「同期」の設定を行うことは可能ですが、Rollbackすることはできません。

参照

タスクの初期モード


XMLの実行時の動作 タスクフロー 初期モード

タスクの初期モード

XML連携 > XMLの実行時の動作 > タスクフロー

メインソースがXMLデータソースの場合、タスクの[初期モード]はすべて有効になります。

参照

登録モード

修正モード

削除モード


XMLの実行時の動作 タスクフロー 初期モード 登録

登録モード

XML連携 > XMLの実行時の動作 > タスクフロー > タスクの初期モード

存在しない親を参照しようとした場合、新しい親は作成されず、「存在していない親ID」というメッセージが表示されます。

登録モードには、処理にために２つの段階があります。

親の選択

親IDは、以下の２つの方法のうちの1つで設定することができます。

  • 明示的 …… 親ID項目を更新します。

  • 暗黙的 ……（明示的に設定されない場合のみ）修正された要素に依存します。上位の複合要素に属している挿入レコード内の修正項目に基づいて、実行エンジンが挿入レコードがどの親のものかを決定しようとします。位置付け機能は、ビューの上の複合要素に属している全ての修正項目を使用し、これらの値を使用して親のレコードを取得しようとします。

挿入の実行

前の段階（親の選択）で（明示的または暗黙的に）選択され、有効にされる親IDに基づいて行われます。

  • Magicは、明示的に親IDを使用したり、挿入されたレコード内で暗黙的に他の修正項目を使用したりして位置付けられた親レコードの下にレコードを挿入します。

  • レコードは、ビューの最後に挿入されます。

  • Magicは、暗黙的にはXMLを有効にしません。例えば、「A.E」または「A.D」は、制限するmaxOccurs属性を持つかもしれません。妥当性を保証するために、XMLValidate関数を明示的に実行する必要があります。


XMLの実行時の動作 タスクフロー 初期モード 修正

修正モード

XML連携 > XMLの実行時の動作 > タスクフロー > タスクの初期モード

ビューメイン要素は、単一要素の修正を制御します。

  • ビューメイン要素内の単一要素/属性だけが、[レコード後]で修正されることができます。

  • 上位の単一要素/属性は、変更できません。これは、再位置付けできないことを意味しています。要素を移動するには、現在の場所の内容を削除し、他の場所にその内容を入力する必要があります。

  • 開発者は、既存のレコードの親IDを修正することができません。このような操作を行った場合、エラーが発生します。


XMLの実行時の動作 タスクフロー 初期モード 削除

削除モード

XML連携 > XMLの実行時の動作 > タスクフロー > タスクの初期モード

複合レコードを削除すると、その子要素も削除されます。


XMLの実行時の動作 エラー処理

エラー処理

XML連携 > XMLの実行時の動作

XMLファイルののオープン／クローズの間に発生するエラーに対応するためのハンドラを定義することができます。

  • エラータイプ …… 「任意のエラー」と「未定義エラー」を定義できます。

  • [指示]特性…… A=アボート

  • ERRリテラル（ErrMagicName 関数で使用）

  • テーブルが存在する場合 …… XMLがオープンできない場合や解析エラーの場合、「テーブルのオープンに失敗」が発生します。

  • 新規の場合 …… XMLが書き込めなかったり、シリアライズできない場合、「テーブルのクローズに失敗」が発生します。

参照

XMLエラーコード


XMLの実行時の動作 エラーコード

XMLエラーコード

XML連携 > XMLの実行時の動作

以下のテーブルは、XMLエラーコードの一覧です。（ステータス表示やmgerror.logに書き込まれます。）

コード | メッセージと説明
1 | XML更新, レコードが他のビューで削除されました. 他のビュー内ですでに削除されたレコードを削除しようとしました。（ビューは、同じ「ビューメイン要素」または、上位のものを持っています。）
2 | XML挿入, 親が存在していません. 親IDまたは、上位の値が指定されたが、XML内のレコードに位置付けられませんでした。
3 | XML挿入, 親IDの階層に不整合があります. 親IDが指定され、既存の要素が識別されたが、その要素は挿入されたレコードの直接の親ではありませんでした。
4 | XML挿入, 親IDとその上位の値が競合しています. 親IDと上位の値が修正されました。（親IDが修正された場合、他の上位値を修正することはできません。）親は、親IDか上位値のどちらかで位置付けされなければなりません。
5 | XML挿入, ルート要素がすでに存在しています. ビューの中にすでに、ルートレコードがある間に、「ルートレコード」）を挿入しようとしました。


XMLの確認

XML連携 >

MagicのXML連携機能は、XMLがXMLスキーマと互換であることを確認するために以下の２つの関数を提供します。

  • XMLValidate …… XMLドキュメントがスキーマに対して有効かどうかを確認します。

  • XMLValidationError …… XMLValidate関数の最後のエラーを返します。


Magic関数を使用したXMLの使用

XML連携 >

色々なXML関数を使用してXMLを利用することもできます。しかし、XML連係機能と組み合わせて使用することは推奨できません。このような方法は、主に下位互換性のために使用されます。

XML関数を使用して、XMLファイルからデータを取得したり、XMLファイルを変更したり、ドキュメント内のデータを検索したりすることができます。

参照

XMLネームスペース

XMLエラーコード


Magic関数を使用したXMLの使用 ネームスペース

XML ネームスペース

XML連携 > Magic関数を使用したXMLの使用

XML関数をネームスペースモードと非ネームスペースモードの両方で使用することができます。

非ネームスペースモードでは、要素に対して接頭語を指定しません。

ネームスペースモードでは、要素に対するネームスペースのエイリアスとして接頭語を指定することができます。要素は、ネームスペースURIと要素名を元にアクセスされます。エイリアスとURIの間でマッピングされ、ネームスペース内部のテーブルが指定された各入出力ファイルに作成されます。XMLGetAliasとXMLSetNS関数を使用して、この内部テーブルをオープンし、更新することができます。接頭語は、XMLのURIの１つとして定義されたエイリアスと合わせる必要があります。XMLデフォルトネームスペースに対して、エイリアスは空白の文字列になります。

MagicがXMLの入出力ファイルを読み込む場合、この内部のテーブルは、XMLドキュメントの中の各ネームスペースURIで指定された内容を自動的更新します。

接頭語は、要素パスの各要素のために指定できます。接頭語が1つ以上の要素に指定された場合、Magicは、ネームスペースモードを開始します。ネームスペースモードの中で、接頭語が指定されていない要素はデフォルトのネームスペースURI をもとに比較されます。

例えば、要素パスa.al1：b.c.al2：dの場合

  • ルートの要素には、接頭語がありません。

  • 要素「b」は、「al1」というエイリアスを持っています。

  • 要素「c」には、接頭語がありません。

  • 要素「d」は、「al2」というエイリアスを持っています。

ネームスペースモードを使用しない場合は、要素パスに接頭辞を付けないでください。

参照

XML ネームスペースの例

XML 関数のエラーコード

XML関数の概要


関数ディレクトリ XMLネームスペース 例

XML ネームスペースの例

式エディタ > 関数ディレクトリ
XML 連携 > Magic関数を使用したXMLの使用 > XML ネームスペース

XML の読込

次のXMLファイルを読み込みます。

<? xml version="1.0" encoding="UTF-8" ?>
<person ID="123" xmlns="http://server/person">
<name>John Doe</name>
<gender>male</gender>
</person>

XML入出力ファイルをオープンした場合、エイリアスとネームスペースURIの間に以下の関係があります。

エイリアス | URI | コメント
 | http://server/person | デフォルトネームスペース

項目更新 項目1 XMLGetAlias(0,1,'http://server/person')

XMLGet(0,1, '/person/name','') | "John Doe" が返ります。
XMLGet(0,1, Trim(var1) &'/:person/name','') | "John Doe" が返ります。
XMLGet(0,1, '/person/'&Trim(var1) &':name','') | "John Doe" が返ります。
XMLGet(0,1, '/:person/name','') | "John Doe" が返ります。

新規XMLの作成

ここでは、XML関数を使用してデフォルトネームスペースを持ったXMLドキュメントを作成する方法を説明します。

<? xml version="1.0" encoding="UTF-8" ?>
<person ID="123" xmlns="http://server/person">
<name>John Doe</name>
<gender>male</gender>
</person>

XMLSetNS(0,1, '','http://server/person')

XMLInsert(0,1,'person','','')

XMLInsert(0,1,'person','ID','123')

XMLInsert(0,1,'/person/name','','John Doe')

XMLInsert(0,1,'/person/gender','','male')

注意：

person を :person に置き換えても同じ結果になります。

XMLドキュメントの修正

名前を更新するには以下のようにします。（ネームスペースは指定していません。）

XMLModify(0,1,'/person/name','','New name')

または

項目更新 項目1 XMLGetAlias(0,1,'http://server/person')

XMLModify(0,1,Trim(項目1) & ':person.name','','New name')

エイリアスとネームスペースURIの間の関係を設定する

XMLSetNS(0,1,'al2',' http://server/another_person')

間違ったエイリアスを使用

XMLModify(0,1,'/al2:person/name','','New name')

この関数は失敗し、（-4）「Element not found」というエラーを表示します。

エイリアスがネームスペースURIと関係ない場合

XMLModify(0,1,'/al3:person/name','','New name')

「al3」が、ネームスペースURIと関係ない場合は、この関数は失敗し、（-4）「Namespace alias not defined」というエラーを表示します。


関数ディレクトリ XMLエラーコード

XML エラーコード

式エディタ > 関数ディレクトリ
XML連携 > Magic関数を使用したXMLの使用

エラーコード | エラー内容
-1 | 入出力ファイルが正しくありません。
-2 | 挿入される要素やエイリアスが定義されていません。
-3 | 出力ファイルが書き込みモードでオープンされていません。
-4 | 要素パスが見つかりません。
-5 | 属性値が見つかりません。
-6 | 指定した属性値が指定した要素内にすでに存在しています。
-7 | 前置／後値フラグの文字が間違っています。
-8 | 参照要素が見つかりません。
-9 | ドキュメントにルート要素が含まれています。複数のルート指定は無効です。
-10 | 自動変換フラグが正しくありません。
-11 | 要素パスやインデックスが正しくありません。
-12 | エイリアスがすでに使用されています。
-13 | エイリアスや要素、属性の名前が正しくありません。
-14 | パラメータのタイプが正しくありません。（オプションのパラメータに対して）
-20 | XML ファイルが正しくありません。（XML の解析に失敗しました


COM オブジェクト

COM オブジェクトサポート

Magicは、プロジェクト内に登録されたCOMオブジェクトを簡単にアクセスすることができます。GUI 表示フォームに追加されたActiveX コントロールか、OLE オートメーションによって処理される一般的なOLE オブジェクトとして扱うことができます。

COM オブジェクトはActiveX型やOLE 型として定義される項目を通して処理されます。

参照

OLE とActiveX

COM オブジェクト項目の定義

コール COM処理コマンド

コレクションのアクセス

ActiveXイベント

実行時の動作

ActiveXコントロールの配置

OLE項目とBLOB項目との違い

COMインタフェースビルダ


COM オブジェクト OLEとActiveX

OLE とActiveX

COM オブジェクトサポート >

COM オブジェクト項目は、OLE か ActiveX のどちらかで定義できます。

ActiveX オブジェクトは、COM オブジェクトのグループを参照します。これは、ユーザインタフェースが埋め込まれていたりGUI表示フォームに配置されることを想定して提供されます。

ActiveX オブジェクトの実行時の操作は、GUI表示やOLE オートメーションコマンドによって行われます。

OLE オブジェクトは、ActiveX オブジェクトを含む全ての登録されたCOM オブジェクトを参照します。OLE オブジェクトはフォームに配置できず、実行時の操作はOLE オートメーションコマンドによってのみ行われます。


COM オブジェクト項目の定義

COM オブジェクトサポート >

COMオブジェクト項目は、タスク内で変数項目としたり、テーブルのカラムや[モデル]リポジトリでの項目モデルとして定義できます。

参照

COM オブジェクトの呼び出し

型

オブジェクト名とタイプライブラリの設定

ActiveX イベントの処理

実行時の動作

COMのエラーの取得

フォームへのActiveX コントロールの配置

OLE 項目とOLEコントロールとしてのBLOB項目


COM オブジェクト 項目の定義 型

型

COM オブジェクトサポート > COM オブジェクト項目の定義

COM オブジェクト項目用に二種類の[型]が用意されています。

この指定によって、表示用オブジェクト（ActiveX型）か一般的COMオブジェクト（OLE型）かを定義することができます。


COM オブジェクト 項目の定義 設定

オブジェクト名とタイプライブラリの設定

COM オブジェクトサポート > COM オブジェクト項目の定義

COMオブジェクトの場合

COM オブジェクト項目は、項目特性にてオブジェクトの定義を行う必要があります。

OLE オブジェクトの場合は、[タイプライブラリ]特性を最初に定義しなければなりません。

[タイプライブラリ]特性でズームすると、PCに登録されている全てのCOMオブジェクトが表示されます。

オブジェクトの[タイプライブラリ]特性を設定したら、[オブジェクト名]特性からズームして実際のオブジェクトを選択します。

ActiveXオブジェクトの場合

ActiveX オブジェクトの場合、最初に[オブジェクト名]特性でズームして、使用したい ActiveX のメソッドを指定します。[オブジェクト名]特性を指定すると、[タイプライブラリ]特性に適切な値が自動的に設定されます。

２つの特性が設定され項目特性が確定されると、オブジェクト名は修正できなくなります。[タイプライブラリ]特性は、既に選択されたタイプライブラリの異なるバージョンへの変更のみ可能になります。


COM オブジェクト ActiveXイベント

ActiveX イベントの処理

COM オブジェクトサポート >

実行時、ActiveX オブジェクトがイベントを発行することがあります。Magicの[イベント]ロジックユニットは、これらのイベントを処理することができます。

ActiveX イベントを処理するには、ハンドラを作成し、イベントタイプとして 「X=ActiveX」 を指定します。[イベント]欄からズームするとハンドルするオブジェクトを指定するダイアログが表示されます。

このダイアログの[オブジェクト]欄でズームすることで、ActiveXオブジェクトが定義されている項目を選択することができます。また、[イベント]欄からズームすると、指定したオブジェクトに対応したイベントを選択することができます。これによって、オブジェクトのインスタンスが発行するイベントをトリガとしてMagicのハンドラ処理を実行させることができます。

オブジェクトを選択し、[イベント]欄でズームすると、サポートされたイベントを確認して選択できます。

イベントを選択すると、オブジェクトがパラメータを必要とするかどうかがチェックされます。パラメータが必要であれば、以下のような確認ダイアログを表示の上、自動的にハンドラに変数項目が定義されます。

注意：

イベント登録できるのはActiveXコントロールのみで、OLEオブジェクトはサポートされません。


COM オブジェクト 実行時の動作

実行時の動作

COM オブジェクトサポート >

OLE項目やActiveX項目が定義されたタスクをオープンすると、Magicエンジン は定義されたオブジェクトを自動的にインスタンス化します。

[コールCOM]処理コマンドは、インスタンス化されたオブジェクトを呼び出します。

ActiveXオブジェクトがMagicプロジェクトによって処理されたイベントをトリガすると、対応するハンドラが実行されます。

オブジェクトをインスタンス化したタスクが終了すると、オブジェクトは自動的に解放されます。

参照

パラメータとしてオブジェクトを渡す

オブジェクトを手動でインスタンス化する

作成されたオブジェクトの参照


COM オブジェクト 実行時の動作 オブジェクトを渡す

パラメータとしてオブジェクトを渡す

COM オブジェクトサポート > 実行時の動作

パラメータとしてOLEオブジェクトを別のタスクに渡すことができます。これによって、パラメータを渡されたタスクは、継続してオブジェクトを処理することができます。

この場合、起動されるタスクでは、パラメータ項目を定義する必要があります。このタスクは、[コールCOM]処理コマンドや、[イベント]ロジックユニットを使用してオブジェクトを処理するようにプログラムを作成することができます。これによって、起動するタスクはインスタンス化されたオブジェクトを渡すことができます。

この時、パラメータ項目の[インスタンス化]特性は、「N=なし」にしてください。これは、このパラメータ項目が COM オブジェクトをインスタンス化するのではなく、すでにインスタンス化されているオブジェクトを参照していることを意味しています。


COM オブジェクト 実行時の動作 手動でインスタンス化

オブジェクトを手動でインスタンス化する

COM オブジェクトサポート > 実行時の動作

OLE項目 やActiveX 項目のデフォルト設定は、これらの項目が定義されたタスクをオープンした時に、Magicエンジンによって自動的にオブジェクトがインスタンス化されるように設定されています。タスクが終了するとそのオブジェクトは解放されます。

オブジェクトを手動でインスタンス化したり解放したりしたい場合は、項目特性の[インスタンス化]の指定を「N=なし」 に指定し、 COMObjCreate や COMObjRelease 関数を使用してオブジェクトの作成や解放を行ってください。

注意:

[インスタンス化]特性が無効な場合、オブジェクトは手動で作成できません。


COM オブジェクト 実行時の動作 オブジェクトの参照

作成されたオブジェクトの参照

COM オブジェクトサポート > 実行時の動作

全ての COM オブジェクトは、「ハンドル」という内部管理番号を持っています。

タスク上でオブジェクトを手動でインスタンス化し、そのハンドルを保持し、そのハンドルを使用してオブジェクトを別のタスクから参照させることができます。

このような処理は、COMHandleGetやCOMHandleSet関数を使用して行います。


COM オブジェクト 実行時の動作 COMエラー

COMのエラーの取得

COM オブジェクトサポート > 実行時の動作

COMError関数を使用して、最後に発生したCOMのエラーに関する情報を取得することができます。


COM オブジェクト ActiveXコントロールの配置

フォームへのActiveX コントロールの配置

COM オブジェクトサポート >

ActiveXオブジェクトの項目は、GUI表示フォームに配置できます。

ActiveX オブジェクトが定義されている項目をドラッグ&ドロップすることによってのみ ActiveX コントロールをフォームに置くことができます。[コントロール]パレットから 配置することはできません。


COM オブジェクト BLOB項目との違い

OLE項目とOLEコントロールとしてのBLOB項目

COM オブジェクトサポート >

OLE 型項目と[スタイル]特性で「OLE」として設定されたBLOB型項目には大きな違いがあります。

OLE コントロールとして設定されたBLOB項目は、OLEオブジェクトとしてフォームに埋め込まれ、OLE アプリケーションを表示したり手動で操作したりできます。Magicは、オブジェクトを単に表示するだけで、エンドユーザがオブジェクトを操作します。

一方、OLE 項目は OLE オートメーション用に使用されます。OLE 項目は、フォームに配置できず、Magicプロジェクトによって表示することができません。


コンポーネントビルダ CIB 一覧

COMコンポーネント一覧

COMオブジェクトサポート > COMインタフェースビルダ

[COMコンポーネント一覧]ダイアログには、今までに作成されたCOMコンポーネントが表示されます。ここでは、既存のコンポーネントを削除したり、追加することができます。コンポーネントを選択して、[次へ]をクリックすると既存のコンポーネントの修正を行うことができます。

[次へ]をクリックすると[COMコンポーネントの詳細]ダイアログが表示されます。


コンポーネントビルダ CIB コンポーネントの詳細

COMコンポーネントの詳細

COM オブジェクトサポート > COMインタフェースビルダ

[COMコンポーネントの詳細]ダイアログには以下の設定項目があります。

  • オブジェクト名 …… オブジェクト名は現在のプロジェクトの名前と同じです。この名前は修正することができます。オブジェクト名は修正できます。

  • オブジェクトタイプ …… 「ローカルエンジン」、または「リモートエンジン」のどちらかを選択してください。

  • ローカルエンジン …… COMオブジェクトと同じPC上でロードされるローカルなMagicエンジンが必要です。

  • リモートエンジン …… MRB を使用してアプリケーションサーバに対してMagicプログラムの実行要求を出します。

[次へ]をクリックすると[COMオブジェクトプロパティ]ダイアログが表示されます。


コンポーネントビルダ CIB オブジェクトのプロパティ

COMオブジェクトプロパティ

COM オブジェクトサポート > COMインタフェースビルダ

[COMオブジェクトプロパティ]ダイアログには、オブジェクトに対してサポートされたプロパティが表示されます。

プロパティ一覧は、オブジェクトタイプに従ってあらかじめ定義されたものです。この内容を追加／削除することはできません。

各プロパティに対して、デフォルト値が適用可能であれば設定でき、ヘルプキーやヘルプ文字列の指定もできます。

[次へ]をクリックすると[プログラムの選択]ダイアログが表示されます。

参照

ローカルエンジンのプロパティ

リモートエンジンのプロパティ


コンポーネントビルダ CIB オブジェクトのプロパティ ローカル

ローカルエンジンのプロパティ

COM オブジェクトサポート > COMインタフェースビルダ > COMオブジェクトプロパティ

ローカルエンジンのプロパティには、以下の指定があります。

  • アプリケーション名 …… 全てのメソッドが処理されるアプリケーションの名前です。
    メソッドコールに対応する公開プログラムは、ここで設定されたアプリケーション内になければいけません。
    アプリケーション名を修正すると、次のメソッドコールに影響を及ぼします。

  • ウィンドウハンドル …… 起動されたMagic エンジンのウィンドウハンドル値を保持します。Windowハンドルは、自動的に取得される値で変更できません。
    例 :MyObject.WindowHandle は、数値を返します。
    オブジェクトによって起動されたMagic エンジンが存在しない場合や、エンジンがバックグラウンドで起動された場合は、0 が返ります。

  • コマンドラインパラメータ …… Magic エンジンの起動時に指定されるコマンドラインパラメータです。MagicEngineLoadメソッドを呼び出す前に設定された場合のみ、この設定が有効になります。
    例： MyObject.CommandLineParams="/ApplicationStartup=B" は、バックグラウンドモードでエンジンを起動します。

  • Magicエンジンパス …… Magicの実行エンジンのパスを設定します。
    MagicEngineLoad　メソッドを呼び出す前に設定された場合のみ、この設定が有効になります。パスが設定されない場合、Magic のインストールディレクトリから起動されます。

  • エンジン起動タイムアウト …… Magicエンジンがロードできなかったり接続できなかったりして、MagicEngineLoad メソッドが失敗した時のタイムアウトを秒数で指定します。ゼロが指定された場合、MagicEngineLoad メソッドが即失敗することを意味します。


コンポーネントビルダ CIB オブジェクトのプロパティ リモート

リモートエンジンのプロパティ

COM オブジェクトサポート > COMインタフェースビルダ > COMオブジェクトプロパティ

リモートエンジンのプロパティには、以下の指定があります。

  • アプリケーション名 …… 全てのメソッドが処理されるアプリケーションの名前を保持します。
    メソッドコールに対応する公開プログラムは、ここで設定されたアプリケーション内になければいけません。

  • メッセージングサーバ …… リクエストを受け取るMRBのアドレスを指定します。「localhost\3300」 のように、ホスト名とポート番号の組み合わせで指定します。

  • ブローカタイムアウト …… COMオブジェクトがMRBによってMagicエンジンが有効になるまでを待つ最大の秒数。MRBが指定された時間内にエンジンを起動できなかった場合、メソッドコールは失敗します。

  • リクエストタイムアウト …… COMオブジェクトが起動プログラムからの戻りを待つ最大の秒数。 0 の場合は、無期限に 待つことになります。

  • 優先順位 …… メソッドコールによって生成されたリクエストに対する優先順位。その優先順位は、0 から 9 までの数値で指定され、9 が最も優先度が高くなります。

  • ユーザID …… コールメソッド実行時にMagicアプリケーションサーバに渡されるユーザ名

  • パスワード …… コールメソッド実行時にMagicアプリケーションサーバに渡されるパスワード

  • 代替サーバ …… 代替えのMRB のアドレスを定義します。メインのメッセージサーバとの接続に失敗した場合は、こちらのMRB との接続を試みます。

以下のプロパティは、最初のメソッドコールの前にのみ有効です。メソッドが呼ばれた後で値を変更しても無効です。

  • リトライ時間 …… COMオブジェクトが代替サーバ(MRB)に接続する時に、メインのMRBとの接続処理を繰返す時間を指定します。この時間を超えて接続できない場合は、代替えサーバへの接続に切り替えます。デフォルト値は5で最小値は 1 です。


コンポーネントビルダ CIB プログラムの選択

プログラムの選択

COM オブジェクトサポート > COMインタフェースビルダ

現在のプロジェクト内に作成された公開プログラムだけが表示されます。

[パラメータ]ボタンをクリックすると、[パラメータ]ダイアログが開きます。

[詳細]ボタンをクリックすると、[メソッドの詳細]ダイアログが開きます。

選択されたプログラムは、COMのメソッドとして公開されます。[次へ]をクリックすると、[COMオブジェクトの設定]ダイアログが開きます。


コンポーネントビルダ CIB パラメータ

パラメータ

COM オブジェクトサポート > COMインタフェースビルダ

[プログラムの選択]ダイアログで[パラメータ]をクリックすると[パラメータ]ダイアログが表示されます。ここには、選択されたプログラムに定義されている全てのパラメータ項目が表示されます。

パラメータ名は、選択されたプログラムのパラメータ項目の名前がデフォルトで表示されます。


コンポーネントビルダ CIB メソッドの詳細

メソッドの詳細

COM オブジェクトサポート > COMインタフェースビルダ

[メソッドの詳細]ダイアログには、オブジェクトに定義された全てのメソッドが表示されています。これらのメソッドは、COMインタフェースを使用したメソッドとして利用可能な、現在のプロジェクトでの選択された公開プログラムです。ローカルエンジンのタイプの場合、あらかじめ２つのメソッドが作成されています。

このダイアログには、以下の設定項目があります。

  • メソッド名 …… COMインタフェース内で指定されたメソッド名です。メソッド名は変更できますが、（特殊記号などの）不正な文字を含めることができません、また、名前の先頭に数字を指定することができません。

  • 公開名 …… 自動的に、選択されたプログラムの公開名が自動的に表示されます。ここは修正することができません。

  • ヘルプキー …… ヘルプのトピックに関連付けるためのヘルプキーを指定できます。4桁以内の数値が指定できます。

  • ヘルプ文字列 …… 512文字までのヘルプ文字列を入力することができます。

事前定義のローカルメソッド

ローカルエンジンを選択した場合、[プログラムの選択]ダイアログには、「MagicEngineLoad」と「MagicEngineUnload」の２つのメソッドが自動的に表示されます。これらのメソッドは、[ヘルプキー]と[ヘルプ文字列]以外は修正できません。


コンポーネントビルダ CIB オブジェクトの設定

オブジェクトの設定

COM オブジェクトサポート > COMインタフェースビルダ

[オブジェクトの設定]ダイアログは、以下の４つに分類されており、COM オブジェクトに対するオプション情報を設定することができます。

  • 汎用設定

  • ヘルプの設定

  • クラスID

  • 情報

[次へ]をクリックすると、[コンポーネントのパス]ダイアログに移ります。


コンポーネントビルダ CIB オブジェクトの設定 汎用

汎用設定

COM オブジェクトサポート > COMインタフェースビルダ > オブジェクトの設定

[汎用]タブには、以下の設定項目があります。

  • タイプライブラリ ……オブジェクトが登録されているタイプライブラリ名を表示します。タイプライブラリ名は、オブジェクト名やバージョンに基づいてCIB が自動的に作成します。変更することはできません。

  • バージョン …… COM オブジェクトのバージョン番号を入力できます。デフォルト値は、1.0 です。

  • プログラムID ……オブジェクトが登録されているCOM プログラムID を表示します。プログラムID はオブジェクト名に基づいてCIB が自動的に設定ます。変更できません。


コンポーネントビルダ CIB オブジェクトの設定 ヘルプ

ヘルプの設定

COM オブジェクトサポート > COMインタフェースビルダ > オブジェクトの設定

メソッドにヘルプキーが定義されている場合、ここで設定されたヘルプファイルを基にヘルプトピックを表示させることができます。

  • ライブラリヘルプファイル名 …… ライブラリに対応したヘルプファイルを定義します。

  • ライブラリヘルプキー …… ライブラリについて説明をしたトピックにリンクするためのコンテキストID を指定します。

  • ライブラリヘルプ文字列 …… ライブラリに関する初期情報を提供する文字列を定義します。

  • オブジェクトヘルプ …… COM オブジェクトに対応したヘルプファイルを定義します。

  • オブジェクトヘルプキー …… COM オブジェクトについて説明をしたトピックにリンクするためのコンテキストID を指定します。


コンポーネントビルダ CIB オブジェクトの設定 クラスID

クラスID

COM オブジェクトサポート > COMインタフェースビルダ > オブジェクトの設定

すでに設定済みのクラスID を変更しオブジェクトを作成したい場合、[GUIDの設定]をクリックし、[クラスID の変更]ダイアログを開いてください。新しくオブジェクトを作成する場合、GUIDの割り当てが自動的に行われます。意図的に変更する必要がある以外は空白のままにしてください。


コンポーネントビルダ CIB オブジェクトの設定 情報

情報

COM オブジェクトサポート > COMインタフェースビルダ > オブジェクトの設定

COM オブジェクトに関する参考情報を入力することができます。この情報は、生成されるオブジェクトの一部にはなりません。しかし、今後の保守のために利用できます。


コンポーネントビルダ CIB パス

コンポーネントのパス

COM オブジェクトサポート > COMインタフェースビルダ

[コンポーネントのパス]ダイアログでは、COMコンポーネントが保存されるディレクトリを指定します。

MAGIC.INIファイルの[Magic_Builders] セクションで「COM」の値を変更することで保存先のデフォルトを変更することができます。

[次へ]をクリックすると、[コンポーネントの作成]ダイアログに移ります。


コンポーネントビルダ CIB 作成

コンポーネントの作成

COM オブジェクトサポート > COMインタフェースビルダ

[コンポーネントのパス]ダイアログで、[次へ]をクリックすると、COMコンポーネント用に今まで選択された設定内容が表示されます。

[終了]をクリックすると、COMコンポーネントが作成されます。

COMオブジェクトのためのディレクトリが存在しない場合、CIBが自動的に作成します。

注意：

CIB は、OLE、ActiveX、ベクトルの各データ型をサポートしていません。

参照

オブジェクトの登録


コンポーネントビルダ CIB オブジェクトの登録

オブジェクトの登録

COM オブジェクトサポート > COMインタフェースビルダ

オブジェクトが作成された後、使用するPCにCOM オブジェクトを手動で登録する必要があります。

regsvr32.exe を使用することでオブジェクトの登録/削除ができます。


コンポーネントビルダ CIB LCOM実行

ローカルCOMオブジェクトの実行時の動作

COM オブジェクトサポート > COMインタフェースビルダ

ローカルな Magic のCOMオブジェクトがロードされても、Magic エンジンは自動的には起動されません。

ユーザは、MagicEngineLoad メソッドを使用してMagicエンジンを起動するように COM オブジェクトに指示しなければなりません。

参照

MyObject.MagicEngineLoad メソッド

メソッドの有効化

プロパティ


コンポーネントビルダ CIB LCOM実行 MyObject.MagicEngineLoad

MyObject.MagicEngineLoad メソッド

COM オブジェクトサポート > COMインタフェースビルダ > ローカルCOMオブジェクトの実行時の動作

オブジェクトがエンジンをロードするように指示されると、MagicEnginePath プロパティによって定義されたパスに位置する eDevRTE.exe が実行されます。パスが設定されていない場合、インストールディレクトリから 実行されます。

エンジンが起動されると、COM オブジェクトはエンジンに接続され、メソッドコールで呼び出すことができます。


コンポーネントビルダ CIB LCOM実行 メソッドの有効化

メソッドの有効化

COM オブジェクトサポート > COMインタフェースビルダ > ローカルCOMオブジェクトの実行時の動作

Magic COM エンジンへの接続が確立されると、コンテナは、指定されたプログラムを実行する COM オブジェクトのメソッドをアクティブにします。

例 :MyObject.AddCustomer('John','Smith' )

該当するプログラムが見つかると、これを実行します。プログラムが終了すると、メソッドは戻り値を返します。

公開プログラムは、同期モードで実行します。これは、呼ばれた公開プログラムが実行を完了した後でのみ、コールメソッドが完了するという意味です。


コンポーネントビルダ CIB LCOM実行 プロパティ

プロパティ

COM オブジェクトサポート > COMインタフェースビルダ > ローカルCOMオブジェクトの実行時の動作

ローカルCOM オブジェクトのプロパティには、以下のものがあります。

  • アプリケーション名(ApplicationName) …… 全てのメソッド（プログラム）が定義されているアプリケーションの名前です。メソッドとして呼び出す公開プログラムは、ここで設定されたアプリケーション内になければいけません。
    アプリケーション名を修正すると、次のメソッドコールに影響を及ぼします。

  • ウィンドウハンドル(WindowHandle) …… 起動されたMagic エンジンのウィンドウハンドル値を保持します。Windowハンドルは、自動的に取得される値で変更できません。
    例 :MyObject.WindowHandle は、数値を返します。
    オブジェクトによって起動されたMagic エンジンが存在しない場合や、エンジンがバックグラウンドで起動された場合は、0 が返ります。

  • コマンドラインパラメータ(CommandLineParameter) …… Magic エンジンの起動時に指定されるコマンドラインパラメータです。MagicEngineLoadメソッドを呼び出す前に設定された場合のみ、この設定が有効になります。
    例： MyObject.CommandLineParams="/ApplicationStartup=B" は、バックグラウンドモードでエンジンを起動します。

  • Magicエンジンパス(MagicEnginePath) …… Magicの実行エンジンのパスを設定します。
    MagicEngineLoad　メソッドを呼び出す前に設定された場合のみ、この設定が有効になります。パスが設定されない場合、Magic のインストールディレクトリから起動されます。

  • エンジン起動タイムアウト(EngineLoadTimeout) …… Magicエンジンがロードできなかったり接続できなかったりして、MagicEngineLoad メソッドが失敗した時のタイムアウトを秒数で指定します。ゼロが指定された場合、MagicEngineLoad メソッドが即失敗することを意味します。


コンポーネントビルダ CIB RCOM実行

リモートCOMオブジェクトの実行時の動作

COM オブジェクトサポート > COMインタフェースビルダ

リモートMagic エンジン用に設定されたCOM オブジェクトを使用することで、リモートリクエストによるアプリケーションサーバ上の公開プログラムの起動が可能になります。各メソッドコールは、Magic のリモートリクエストとして実行されます。COMオブジェクトは、この場合リクエスタとして動作し、様々なプロパティを設定することで動作を制御することができます。

リモートエンジン用のCOM オブジェクトを利用可能にするには、Magic アプリケーションサーバの動作環境を設定し、COM オブジェクトからアクセス可能になるようにしなければなりません。リモートの場合、MagicEngineLoadとMagicEngineUnloadの各メソッドはありません。

参照

メッセージレイヤ

メソッドの有効化

プロパティ

分散アプリケーションアーキテクチャ


コンポーネントビルダ CIB RCOM実行 メッセージレイヤ

メッセージレイヤ

COM オブジェクトサポート > COMインタフェースビルダ > リモートCOMオブジェクトの実行時の動作

リモートCOMオブジェクトがリクエスタとして動作する為には、オブジェクトを実行するアプリケーションがメッセージレイヤを有効に使用できることが必要となります。

リモートCOMオブジェクトを実行するアプリケーションが、メッセージレイヤ用のDLLファイル（Mgrqgnrc10x.dll）をロードできるように設定しなければなりません。 このファイルをホストアプリケーションの作業フォルダに置くか、OSのPATH 環境変数でこのファイルが配置されているパスを指定してください。


コンポーネントビルダ CIB RCOM実行 メソッドの有効化

メソッドの有効化

COM オブジェクトサポート > COMインタフェースビルダ > リモートCOMオブジェクトの実行時の動作

Magic の公開プログラムに対してメソッドコールを実行すると、COM オブジェクトは、MRBを使用して アプリケーションサーバに同期リクエストを発行します。

以下のように COM オブジェクトの設定を行ってください。

  • メッセージサーバとしてMRBが動作しており、利用可能な状態になっていなければなりません。COMオブジェクトの[MessagingServer]プロパティで、MRBのサーバアドレスとポート番号を指定してください。

  • Magicエンジンは、MRBと接続していなければなりません。

  • COM オブジェクトの [ApplicationName]プロパティで指定されたアプリケーションが、 アプリケーションサーバ側で定義されていなければなりません。


コンポーネントビルダ CIB RCOM実行 プロパティ

プロパティ

COM オブジェクトサポート > COMインタフェースビルダ > リモートCOMオブジェクトの実行時の動作

リモートCOM オブジェクトのプロパティには、以下のものがあります。

  • アプリケーション名(ApplicationName) …… 全てのメソッド（プログラム）が定義されているアプリケーションの名前です。メソッドとして呼び出す公開プログラムは、ここで設定されたアプリケーション内になければいけません。

  • メッセージングサーバ(MessagingServer) …… リクエストを受け取るMRBのアドレスを指定します。「localhost\3300」 のように、ホスト名とポート番号の組み合わせで指定します。

  • ブローカタイムアウト(BrokerTimeout) …… COMオブジェクトがMRBによってMagicエンジンが有効になるまでを待つ最大の秒数。MRBが指定された時間内にエンジンを起動できなかった場合、メソッドコールは失敗します。

  • リクエスタタイムアウト(RequesterTimeout) …… COMオブジェクトが起動プログラムからの戻りを待つ最大の秒数。 0 の場合は、無期限に 待つことになります。

  • 優先順位(Priority) …… メソッドの呼び出しによって生成されたリクエストに対する優先順位。その優先順位は、0 から 9 までの数値で指定され、9 が最も優先度が高くなります。

  • ユーザID(UserName) …… メソッドの呼び出し時にMagicアプリケーションサーバに渡されるユーザ名

  • パスワード(Password) …… メソッドの呼び出し時にMagicアプリケーションサーバに渡されるパスワード

  • 代替サーバ(AltMessagingServer) …… 代替えのMRB のアドレスを定義します。メインのメッセージサーバとの接続に失敗した場合は、こちらのMRB との接続を試みます。

以下のプロパティは、最初のメソッドコールの前にのみ有効です。メソッドが呼ばれた後で値を変更しても無効です。

  • リトライ時間(RetryMainTime) …… COMオブジェクトが代替サーバ(MRB)に接続する時に、メインのMRBとの接続処理を繰返す時間を指定します。この時間を超えて接続できない場合は、代替えサーバへの接続に切り替えます。デフォルト値は5で最小値は 1 です。


コンポーネントビルダ CIB エラー

COM オブジェクトエラーとトラブルシューティング

COM オブジェクトサポート > COMインタフェースビルダ

エラーの値は、結果ハンドルの書式で返ります。これはHRESULT として知られている 32 ビットの数値です。

参照

ローカル

リモート


コンポーネントビルダ CIB エラー ローカル

ローカルMagicエンジン

COM オブジェクトサポート > COMインタフェースビルダ > COM オブジェクトエラーとトラブルシューティング

以下の表は、ローカルMagic エンジンの COM オブジェクトによって返される HRESULTS の値です。

HRESULT

説明

対応

0x803307D2

Magicエンジンがロードされていない

メソッドが呼ばれたが、Magic エンジンが 動作していない場合に通常発生します。

他のメソッドをコールする前に MagicEngineLoad メソッドを使用して Magic エンジンをロードしてください。

0x803307D3

Magic エンジンのロードに失敗した

MagicEngineLoad メソッドが、Magic 実行エンジンのロードに失敗しました。このエラーは以下のような場合に発生します。

  • Magicの実行エンジンが、MagicEnginePath プロパティによって定義されたパス上に見つからなかった。

  • MagicEnginePath プロパティが、空白で、Magic実行エンジンのインストールディレクトリがレジストリから見つからなかった。

  • ライセンス上の制限により実行できないなど、実行環境に誤りがあった。Magicの実行エンジンが完全にインストールされているかどうか、また実行できる環境に設定されているかどうかを確認してください。

0x803307D4

Magic エンジンがロードできなかった - 間違ったレジストリパス

MagicEngineLoad メソッドは、 レジストリに登録されているインストールディレクトリ上のMagicの実行エンジンをロードできませんでした。これは、レジストリ上に該当するキーが見つからなかった場合に発生します。このエラーは以下のような場合に発生します :

  • 想定していたバージョンの Magic 製品が、インストールされていない。

  • レジストリキーが、修正されていた。

  • Magic 製品が正しくインストールされなかった。

Magic 製品が完全にインストールされたかどうかを確認してください。また、MagicEnginePath プロパティの指定が合っているかどうかも確認してください。

0x803307D5

Magic エンジンの終了ができなかった

MagicEngineUnload メソッドは、Magic エンジンの終了処理に失敗しました。このエラーは以下のような場合に発生します。

  • Magic エンジンが即、終了してしまった。

  • Magic エンジンが、 COM オブジェクトからの処理以外の処理を行っている。

0x803307D6

Magic エンジンのロードに失敗した。エンジンとの同期中にタイムアウトが発生した。

EngineLoadTimeout プロパティによって定義されたタイムアウト時間がMagicのロード中に経過してしまった。

Magic エンジンの起動に十分な時間をEngineLoadTimeout プロパティに設定してください。

0x803307D7

Magic エンジンのロードに失敗した - エンジンとの HTTP 接続がない

MagicEngineLoad メソッドは、 Magic エンジンと HTTP 接続を確立することができませんでした。このエラーは以下の場合に発生します。

  • TCP/IP 層（ドライバ）が、インストールされていない。

  • Magic エンジンは、リモートリクエストを処理するように設定されていた。
    TCP/IP 層がインストールされていることと、Magic エンジンがリクエストサーバとして実行するように設定されていないことを確認してください。

0x803307D1

一般的なエラー

上記外のエラー


コンポーネントビルダ CIB エラー リモート

リモートMagicエンジン

COM オブジェクトサポート > COMインタフェースビルダ > COM オブジェクトエラーとトラブルシューティング

リモートMagic エンジン用のCOM オブジェクトは、リモートリクエストとしてメソッドを実行します。

このため想定されるエラーは、リクエストに関連するエラーになります。リクエストエラー番号は、 HRESULT の一部（DWORD の 16 進番号）として送られます。HRESULT の下位のWord（16ビット）は、実際のエラー番号を表します。

例えば、 「メッセージサーバが見つからない」というエラーは、エラーコードは「102」で、HRESULT の下位ワードはこの数値の16進表記として「0066」になります。これにより、HRESULT は「0x80330066」 になります。


Javaとの連携

Java との連携機能とは、JavaクラスやEJB(Enterprise Java Beans)のインスタンスを表す「疑似参照」を用いることによって 、MagicがJava クラスやEJBと接続する機能です。Javaクラスに対しては、疑似参照を使用しないでスタティックメソッドや変数にアクセスすることもできます。インスタンスやスタティックメソッドまたは、変数は、JavaやEJB用の関数を使用してアクセスすることができます。

EJBインタフェースビルダは、JavaクラスまたはEJBメソッドを呼び出すプログラムを含んだコンポーネントを作成するウィザードです。

Java コンポーネントジェネレータは、JNIのシグニチャを使用しないでコンポーネントを作成することによって、自動的にJavaクラスやEJBメソッドにアクセスさせることができるウィザードです。

参照

Javaの用語

JavaとEJB用の関数

コードページ

タイプシグニチャ

実行エンジンの動作

J2EEとの連携


Javaの用語

Javaとの連携 >

以下の用語は、様々な Javaクラスの要素を表しています。

Java クラス (Java Class) | Javaクラスは、特別な種類のオブジェクト内にあるメソッドと変数のテンプレート定義です。オブジェクトは、クラスの特定のインスタンスとなることができ、変数の代わりに実数値を含めることができます。
クラスインスタンス (Class Instance) | Javaクラスの実体
スタティッククラスメソッド (Static Class Method) | クラスをインスタンス化せずに呼び出す事のできるクラスメソッド
スタティッククラス変数 (Static Class Variable) | クラスをインスタンス化せずにアクセスできるクラス変数
コンストラクタメソッド (Constructor Method) | 新しいクラスオブジェクトがインスタンス化された時に自動的に初期化される機能
疑似参照 (Pseudo-Reference) | クラスインスタンスを表すMagicのBLOB項目。新しいクラスインスタンスを作成するメソッドは、作成されたオブジェクトの「疑似参照」を返します。後で、オブジェクトと一緒に処理するプログラムは、IDを使用しなければなりません。
Javaのネイティブインタフェース (Java Native Interface) | 非Java プログラムとJavaプログラムを連動させます。
Java仮想マシン (Java Virtual Machine) | 実際のマシン上でJavaのバイナリコードを実行させるソフトウェア
JNDI (Java Name Directory Interface) | Javaアプリケーションが複数のネームサービスやディレクトリサービスへアクセスを可能にする機能
J2EE エンタープライズサーバ (J2EE Enterprise Server) | 標準化され再利用可能なコンポーネントモジュール(EJB)を実行するJavaプラットフォーム
EJB (Enterprise JavaBeans) | オブジェクト指向の分散型エンタープライズレベルアプリケーションの開発および配備に使用するコンポーネントアーキテクチャ。
JNI (Java Native Interface ) | Java から C++ など他の言語で書かれたライブラリを呼び出すための仕様です。既存のシステムとの接続や、実行速度が特に求められる場合などに使用することができます。
Java 開発キット (Java Development Kit) | Javaアプレットやアプリケーションを開発するためのプログラム開発環境


Java とEJBの関数

JavaとEJB用の関数

Javaとの連携 >

Magicは、メソッドを実行したり、疑似参照を使用して変数を参照したり更新したりするJavaクラスのインスタンスを作成することができます。疑似参照とは、Javaクラスのインスタンスを表すBLOB項目です。メソッドが呼び出されると関数の戻り値としてBLOB値をMagicに返します。

クラスのスタティックメソッドや変数は、クラス名とメソッドまたは変数名を指定することで、Java クラスのインスタンスを作成しないでアクセスすることができます。

以下のMagicの関数は、Javaでのメソッド呼び出しのように使用することができます。エンジンの各コンテキストは疑似参照と実参照の間で内部マップを作成します。

例えば、 Magicプログラムは、変数項目（A）として疑似参照を作成する場合、JCreate関数を使用します。インスタンスに対する実参照は、変数項目（A）と内部的にリンクしています。コンテキスト内のあらゆるMagicプログラムは、JCall(A,….) を使用することでメソッドやオブジェクトの変数にアクセスすることができます。

Java関数をMagicプログラムから呼び出すことで次のようなことができます。

  • Javaクラスの新しいインスタンス作成

  • Java クラスかインスタンスのメソッド呼び出し

  • 例外報告の取得

  • 変数の値の照会や更新

MagicのJava 関数には、以下のものがあります。

JCreate | Javaクラスの新しいインスタンスを作成します。
JCall | Javaクラスのインスタンスのメソッドを呼び出します。
CodePage | Javaの文字をMagicの文字型データに変換したり、その逆を行う場合に使用するコードページを指定します。
JCallStatic | Javaクラスのスタティックメソッドを呼び出します。
JException | 現在のコンテキストの最後の例外処理に対する疑似参照を返します。
JExceptionOccurred | 最後のJava関数または、EJB 関数が例外をスローした時に「True」 値を返します。
JExceptionText | 最後の例外情報やスタックの任意のトレースの内容を返します。この関数は、最後のJava関数または、EJB関数の処理の間にスローされた例外処理の内容を参照します。
JExplore | Javaクラスの内容を返します。
JGet | インスタンス変数の値を返します。
JGetStatic | クラス変数の値を返します。
JInstanceOf | Javaのinstanceof 演算子（あるオブジェクトの実行時の型が指定した型に合致するかどうかを判定します。）と同じような動作をします。
JSet | インスタンス変数を更新します。
JSetStatic | クラス変数を更新します。

以下のEJB関数によって、MagicはEJBを探して呼び出すことができます。

EJBCreate | EJBのインスタンスを作成し、実行可能な関連するJava関数から疑似参照を返します。
EJBExplore | EJBインスタンスの内容を返します。


コードページ

Javaとの連携 >

Javaの文字とMagicの文字を変換する際に使用されるCodePage関数で、指定できるコードページのIDは以下の通りです。

ID | 言語
037 | EBCDIC
437 | Latin(米国)
500 | EBCDIC 500V1
708 | アラビア語 (ASMO 708)
709 | アラビア語 (ASMO 449+, BCON V4)
710 | アラビア語 (Transparent Arabic)
720 | アラビア語 (Transparent ASMO)
737 | ギリシャ語 (formerly 437G)
775 | Baltic
850 | MS-DOS 西欧諸言語 (Latin I)
852 | MS-DOS 東欧諸言語 (Latin II))
855 | IBM キリル文字 (primarily Russian)
857 | IBM トルコ語
860 | MS-DOS ポルトガル語
861 | アイスランド語
862 | ヘブライ語
863 | MS-DOS カナダフランス語
864 | アラビア語
865 | MS-DOS 北欧語
866 | キリル語(ロシア語)
869 | ギリシャ語
874 | タイ語
875 | EBCDIC
932 | 日本語 Shift-JIS
936 | 中国語 簡体字
949 | 韓国語 ハングル
950 | 中国語 繁体語
1026 | EBCDIC
1200 | Unicode (BMP of ISO 10646)
1250 | 西欧諸国
1251 | キリル文字
1252 | US (ANSI)
1253 | ギリシャ語
1254 | トルコ語
1255 | ヘブライ語
1256 | アラビア語
1257 | Baltic
1361 | Korean (Johab)
10000 | Macintosh Roman
10001 | Macintosh Japanese
10006 | Macintosh Greek I
10007 | Macintosh Cyrillic
10029 | Macintosh Latin 2
10079 | Macintosh Icelandic
10081 | Macintosh Turkish
65001 | UTF-8


タイプシグニチャ

Javaとの連携 >

以下の表で示されるように、JNIでは、JVM で定義されている タイプシグニチャを使用します。

タイプシグニチャ | Javaタイプ
Z | boolean
B | byte
C | char
S | short
I | int
J | long
F | float
D | double
Lクラス名: | クラス名
[タイプ | タイプ[]
(パラメータタイプ)戻り値のタイプ | メソッドのタイプ

例：Javaのメソッド long f (int n, String s, int[] arr) は、(ILjava/lang/String;[I]J というタイプシグニチャを持っています。

この場合以下のように対応します。

  • int n …… I

  • String s …… Ljava/lang/String;

  • int[] arr …… [I

  • long f …… J

（クラスファイルを逆アセンブルする）JDKのコマンドラインユーティリティ、'javap -s〈クラス名〉' は、クラスを分析し、そのメソッドと変数のシグニチャーを出力します。

例：

class HelloJava
{
public static void main(String s[])
{
System.out.println("Hello Java Java.");
}
}

この場合、javap -s HellowJava は以下のように返ります。

Compiled from HelloJava1.java
class HelloJava1 extends java.lang.Object {
HelloJava1();
/* ()V */
public static void main(java.lang.String[]);
/* ([Ljava/lang/String;)V */
}


実行エンジンの動作

Javaとの連携 >

ここでは、Java関数を呼び出すプログラムの動作について説明します。Java 関数が実行時に機能するためには、Javaの開発キット(JDK)や、実行モジュール（JRE)がインストールされている必要があり、呼ばれるJavaクラスは、環境変数に定義されたクラスパス上に配置しなければなりません。

参照

ライフサイクル

マルチスレッド

ブラウザベースのプログラム

変換テーブル

疑似参照の戻り値

エラーと例外処理

ガーベッジコレクション機能


実行エンジンの動作 ライフサイクル

ライフサイクル

Javaとの連携 > 実行エンジンの動作

コンテキストの終了時、Java関数やEJB関数により獲得された全ての疑似参照がJVMから解放されます。


実行エンジンの動作 マルチスレッド

マルチスレッド

Javaとの連携 > 実行エンジンの動作

各エンジンのコンテキストは、自身の疑似参照を持っています。1つのエンジンのコンテキストの疑似参照は、同じJavaクラスのものであっても、別のエンジンのコンテキストの疑似参照に対して影響を与えません。スタティックなクラスメソッドや変数のアクセスは、メソッド内の同期化されたキーワードを使用することによってJavaサイドで同期化される必要があります。


実行エンジンの動作 ブラウザベースのプログラム

ブラウザベースのプログラム

Javaとの連携 > 実行エンジンの動作

Magicは、コンテキストのライフサイクル内でJCreate関数を使用して疑似参照を作成し、エンジンコンテキストのサブシーケンスイベント内で利用することができます。


実行エンジンの動作 変換テーブル

変換テーブル

Javaとの連携 > 実行エンジンの動作

以下のテーブルは、JCreate、JCall、JSet、JCallStatic、JsetStaticの各関数に渡される値と、Jcall、JGet、JCallStatic、JGetStatic の各関数の戻り値のシグニチャによって自動変換される内容です。

Magic の型 | Java の型 |
 | 基本関数型 | オブジェクト型
文字、BLOB | char, byte, char[ ], byte [ ] | String, StringBuffer, Character, Byte, Byte [ ], Character [ ]
論理 | boolean | Boolean
数値、日付、時刻 | byte, short, int, long, float, double | Byte, Short, Integer, Long, Float, Double

以下のテーブルは、戻り値の型に対応したデフォルトマッピングを表示しています。

Java の型 |  | Magic の型
基本関数型 | オブジェクト型 |
char, char[ ] | String, StringBuffer, Character | 文字(32Kまで) BLOB (32K超)
byte[ ] |  | BLOB
boolean | Boolean | 論理
byte, short, int, long, float, double | Byte, Short, Integer, Long, Float, Double | 数値


実行エンジンの動作 疑似参照の戻り値

疑似参照の戻り値

Javaとの連携 > 実行エンジンの動作

signature*p を使用することで前のセクションで説明した自動変換を無効にすることができます。

自動変換するには以下のようにします。

JCall(A,’increment2’,'()Ljava/lang/Long;')

関数はLong型の数値を返します。

自動変換を無効にするには以下のようにします。

JCall(A,'increment2','()Ljava/lang/Long;*p')

関数は、Long型の疑似参照 (BLOB項目) を返します。


実行エンジンの動作 エラーと例外処理

エラーと例外処理

Javaとの連携 > 実行エンジンの動作

MagicのJava関数は、クラスのロードや指定されたタイプシグニチャによって、要求されたコンストラクタを設置に失敗する場合があります。このような場合、Java関数によって例外をキャッチすることができます。

参照

メソッドに対する外部エラー

Javaクラスに対する内部エラー


実行エンジンの動作 エラーと例外処理 外部エラー

メソッドに対する外部エラー

Javaとの連携 > 実行エンジンの動作 > エラーと例外処理

Javaクラスのメソッドによって例外がスローされた場合、JCreate、JCall、JCallStaticの各関数は、NULL値を返します。

例外や例外テキストの疑似参照を受け取るためには、JExceptionかJExceptionTextのいずれかの関数を呼び出す必要があります。

Magicは、別の関数が呼ばれるまでJExceptionかJexceptionText関数を繰り返し呼び出すことができます。

JExceptionOccurred関数で、発生した例外の内容を確認することができます。


実行エンジンの動作 エラーと例外処理 内部エラー

Javaクラスに対する内部エラー

Javaとの連携 > 実行エンジンの動作 > エラーと例外処理

内部のエラーの場合、NULLか、Falseが返ります。

JExceptionText関数は、以下のメッセージのうちのどれか1つを返します。

  • JVM could not be loaded

  • Class not found

  • Method not found

  • Failure to convert parameters to JNI

  • Failure to convert return value from JNI

JException関数は、Javaの実行エラーをフックします。


実行エンジンの動作 ガーベッジコレクション機能

ガーベッジコレクション機能

Javaとの連携 > 実行エンジンの動作

タスクの終了時、更新されたパラメータや戻り値の更新内容を反映後、Magicは疑似参照の値を自動的に解放します。この値は、タスクを含むタスクツリー内の変数には割り当てられません。この動作によって、不必要なリソースを解放します。


J2EEとの連携

Javaとの連携 >

Magic Ver10は、J2EEとの連携するための２つの機能を提供します。

  • EJBサーバ機能……J2EEアプリケーションから、MagicアプリケーションをEnterprise Java Beans(EJBs)としてを呼び出す機能を提供します。Java 環境下で動作しているJava クライアントは、Magic のプログラムをEJBのメソッドと同様に実行することができます。実行はEJBとMagicを連携するためのEJB（以下、Proxy EJBと表記します。）を介して行われます。EJB インタフェースビルダ（以下、EIBと略します。）は、Proxy EJBを生成する機能を提供します。

  • EJBクライアント（コールEJB）機能……Magicアプリケーションから、EJBを呼び出す機能を提供します。

ここでは、EJB インタフェースビルダを使用して Proxy EJB を作成し、アプリケーションサーバとの接続する方法の概要を説明します。

参照

J2EE の用語

Proxt EJB の動作環境

ProxyEJBのデプロイ

Magic の環境設定と実行

MRBの動作環境と実行

コマンドラインリクエスタ

J2EE と Magic のインストール

EJBリクエスト証明書へのアクセス


J2EE の用語

Javaとの連携 > J2EEとの連携

以下は、J2EE 環境でよく使用される用語の一覧です。

J2EE | Java 2 Enterprise Edition Java2SDK を基に統合されたプラットフォームの規格です。このプラットフォームを使用することにより、多階層エンタープライズアプリケーションのソリューションを提供することができます。
EJB | Enterprise Java Beans Javaで記述されたサーバサイドのプログラムを作成する際のコンポーネントの標準仕様
Bean | プログラムをコンポーネント化する仕様をJavaBean と呼んでいますが、この仕様に基づいて作られたコンポーネントを Bean といいます。
JAR | Java Archive file このファイルは、EJB やクライアント、アプリケーションに保存する際に使用されます。ファイルの拡張子が JAR になります。
コンテナ | Enterprise Beans を制御し、システムレベルのサービスを提供する動作環境。EJBは、ここで動作します。
DD | Deployment Descriptor コンポーネントを記述するXMLファイル
JNDI | Java Naming and Directory Interface Java アプリケーションに、ネームサービスおよびディレクトリサービスへの統一したインタフェースを提供するAPIです。
ステートレスセッション Bean | クライアント側の状態情報を保持しないBeanで、Beanのインスタンスの生成・消滅は、全てEJBコンテナが独自に管理しています。 同じBeanのメソッドを続けて呼び出した場合にも、それらが同じインスタンスかどうかは分かりません。そのため、ステートレスセッション Beanでは、内部状態を保持して、複数メソッドで連続した処理を行うことはできず、１メソッドで完結するような処理を記述するのに向いています。


Proxt EJBの動作環境

Javaとの連携 > J2EEとの連携

EJBインタフェースビルダ（EIB）は、作成されたEJBの動作環境を定義したDD（Deployment Descriptor）ファイルを作成し、Jarファイル内にパッケージ化します。

ProxyEJBの動作環境には、アプリケーションサーバのアドレスとポート番号が含まれています。CIBでは、デフォルト値として「localhost：1500」と設定しています。この設定内容は、Proxy-EJBがデプロイされた後に、J2EEサーバ側のユーティリティで変更することができます。

デフォルト設定を使用した場合、アプリケーションサーバは、ポート番号1500でバインドしようとします。

バインドに失敗した場合、アプリケーションサーバは、MAGIC.INIファイルのCommunicationセクションで定された1500から2000番の範囲でポート番号を変えてバインドしようとします。

設定される２つのタイプは、「動作環境」と「リソース」です。

Proxy EJB の動作環境の設定

リソース


Proxt EJB の動作環境 設定

Proxy EJB の動作環境の設定

Javaとの連携 > J2EEとの連携 > Proxt EJB の動作環境

WebSphere のAAT(アプリケーション・アセンブリ・ツール）では、[環境エントリー]として表示されます。

MagicApplicationServers

Proxy EJB が接続できるアプリケーションサーバ名を設定します。URLリソースを参照して、 ',' を区切り文字とした名前で指定してください。

構文： | MagicURL[,MagicURL2..]
デフォルト： | MagicURL

MagicApplication

Proxy EJB が接続する Magic アプリケーションの名前を設定します。

構文：

アプリケーション名

CommunicationTimeout

Proxy EJB とアプリケーションサーバの間の接続、送受信のタイムアウト時間を秒単位で設定します。リクエストの処理時間は含まれません。

構文： | nnn （<=0 の場合、デフォルト値が使用されます）
デフォルト： | 10

PropagatePrincipal

ここには、論理値を指定します。EJBのリクエスト証明書をMagicアプリケーションサーバに渡すかどうかを指定します。

構文： | java.lang.Boolean type (true または false)
デフォルト： | true


Proxt EJB の動作環境 リソース

リソース

J avaとの連携 > J2EEとの連携 > Proxt EJB の動作環境

  • Interstageの場合、<Magic Dir>\EJB\<Bean_name>\Interstage に作成された jndi.properties というファイルを、%JAVA_HOME%\jre\lib にコピーします。

  • WebSphere の場合は、管理コンソールで設定します。

MagicURL

この設定は、アプリケーションサーバのURLを表します。MagicURL は、単一のリソースです。アプリケーションサーバの設定でこれを有効にするとリソースを追加して使用することができます。

デフォルト:

http://localhost:1500


ProxyEJBのデプロイ

Javaとの連携 > J2EEとの連携

Javaオブジェクトを使用するメソッドを持ったProxyEJBをデプロイするため、J2EEサーバは、EJBメソッド内で使用するJavaクラスにアクセスする必要があります。EJBをデプロイする前に、J2EEサーバがEJBによって使用されたJavaクラスにアクセスできることを確かめる必要があります。

これは、JREとJ2EEクラスの一部ではない全てのJavaクラスを含む1つ以上のJARファイルを作成したり、JARファイルをロードするためにJ2EEサーバをセットアップすることによって行われます。

Jarファイルを %J2EE_HOME%\lib\ext か %JAVA_HOME%\jre\lib\ext にコピーしなければなりません。


Magiｃの環境設定と実行

Magicの環境設定と実行

Javaとの連携 > J2EEとの連携

Proxy EJB は、J2EEをサポートするアプリケーションサーバでのみ動作します。ここでは、アプリケーションサーバに対する EJB の相互作用の異なった要素での影響について概要を記述します。

参照

動作環境

実行

汎用メッセージレイヤ

Javaオブジェクトを渡すための設定


Magiｃの環境設定と実行 動作環境

動作環境

Javaとの連携 > J2EEとの連携 > Magicの環境設定と実行

Magic によって作成された Proxy EJB は、Magicアプリケーションサーバの環境下でのみ使用できます。

Magic クライアントでは、[サービス]テーブルで 「J2EE」タイプのサーバで定義されているサービスをリモートコールで指定することはできません。指定した場合、プログラムチェックしたり、リモートコールを実行した場合に以下のようなエラーが表示されます。

注意：

J2EE タイプのサーバは、Proxy EJB からのリモートコールのみ受け付けます。


Magiｃの環境設定と実行 実行

実行

Javaとの連携 > J2EEとの連携 > Magicの環境設定と実行

Proxy EJB は、アプリケーションサーバにユーザ名やパスワードといったようなユーザ情報を渡すことができません。このような情報は、アプリケーションサーバのローカルなMAGIC.INIファイルを使用して指定することができます。また、Magicエンジンの起動時に以下のようなコマンドラインパラメータを使用して指定することができます。

eDevRTE.exe -User= -Password=


Magiｃの環境設定と実行 汎用メッセージレイヤ

汎用メッセージレイヤ

Javaとの連携 > J2EEとの連携 > Magicの環境設定と実行

アプリケーションサーバが Proxy EJB からのリクエストを受け付けられるように汎用メッセージレイヤの設定を変更する必要があります。指定しない場合は、Magicエンジンはリクエストを受け付けません。

参照

MGREQ.INI

アプリケーションサーバレイヤ

MRBの動作環境と実行

コマンドラインリクエスタ

(非EJBの)他のリクエスタからのリモートコール


Magiｃの環境設定と実行 汎用メッセージレイヤ MGREQ.INI

MGREQ.INI

Javaとの連携 > J2EEとの連携 > Magicの環境設定と実行 > 汎用メッセージレイヤ

変更に関するキーワードは以下のとおりです。

Gateway=5

Gateway を「5」に設定することは、Gateway がJ2EE のアプリケーションサーバであることを示します。これによる影響は以下の通りです。

  • 汎用メッセージレイヤは Proxy EJB がサポートされていることを通知します。

  • MQ/DQ のゲートウェイはロードされません。

  • EJB 以外のソースからのリクエストを受け付けません。

他のキーワード

Proxy EJBがサポートされている時は、Log パラメータのみ有効です。


Magiｃの環境設定と実行 汎用メッセージレイヤ APサーバレイヤ

アプリケーションサーバレイヤ

Javaとの連携 > J2EEとの連携 > Magicの環境設定と実行 > 汎用メッセージレイヤ

アプリケーションサーバレイヤには、Proxy EJB がアプリケーションサーバと接続する上で以下のような３つの設定内容があります。

  • 初期化

  • ライセンスの確認

  • MRB へのステータスメッセージ

初期化

Gateway=5 に設定されていると、アプリケーションサーバがMRBにアクセスすることは、オプションになります。MRBが指定したアドレス上に存在する場合、ログイン処理や管理目的で使用できます。MRB が存在しない場合は、アプリケーションサーバは、Gateway=1 の MRBに送る全てのメッセージを送信します。

アプリケーションサーバは、以下で指定されたポートでロードされます。

[MAGIC_COMMS]TCP/IP

ライセンスの確認

ライセンスによって、アプリケーションサーバで同時に処理できるリクエストの数を制限できます。Gateway=1 の場合この処理は MRB によって実行されます。しかし、Proxy EJB がサポートされた場合、ライセンスの確認はアプリケーションサーバ内で実行されます。

使用ライセンスを超えた場合、アプリケーションサーバは次のリクエストで終了し（エラー136を返す）、さらにリクエストが来ると エラー 109 が返されます。同時に処理できるリクエスト数を超えたことによりアプリケーションサーバがリクエストを処理できない 場合は、エラー 104 が返ります。

詳細は, 「エラーのタイプ」を参照してください。

MRB へのステータスメッセージ

Gateway=5 に設定されていて、MRBが稼働中という通知をアプリケーションサーバへ送った場合、MRBは、アプリケーションサーバのログ採取や 管理目的で使用されます。リクエストの完了通知は、リクエストID を持たずMRB には意味がないので送りません。


Magiｃの環境設定と実行 オブジェクトを渡すための設定

Javaオブジェクトを渡すための設定

Javaとの連携 > J2EEとの連携 > Magicの環境設定と実行

Javaオブジェクトを渡す場合は、EJBメソッドで使用されるJavaクラスに対応した、JarファイルやJavaのクラスパスをCLASSPATH環境変数に設定する必要があります。（MAGIC.INIの[MAGIC_JAVA]セクションではありません。）

MagicがEJB内のJavaクラスにアクセスできるようにするには、以下のどちらかにクラスやJarファイルを含める必要があります。

  • MAGIC.INI ファイル内の[CLASSPATH]パラメータ

  • CLASSPATH環境変数

MagicアプリケーションサーバがEJBからリクエストを受け取ると、アプリケーションサーバは、各Javaオブジェクトを自動的にデシリアライズ（復元）し、Javaの仮想参照として起動したMagicプログラムに渡します。プログラムのBLOBパラメータは、各オブジェクトに対応したJava参照を持っています。もし、戻り値がJavaオブジェクトであれば、EJBリクエストに応答した時にエンジンは自動的に、Javaオブジェクトをシリアライズします。


MRBの動作環境と実行

Javaとの連携 > J2EEとの連携

問い合わせ（アプリケーションサーバのみ）

MRBは、アプリケーションサーバが「問い合わせのみ」の状態 であることを認識し、マークします。「問い合わせのみ」のアプリケーションサーバはステータス情報のみを送ることができ、MRBからのリクエストも受け付けず、リクエスタの割当ても行いません。

終了

EJB がサポートされている場合、MRBが終了すると、問い合わせのみのアプリケーションサーバに XML ベースの終了リクエストを送ります。

アプリケーションサーバのロード

初期化時にコマンドラインリクエストやRQ関数を使用してアプリケーションサーバをロードできます。

Javaオブジェクトを渡すための設定

Magicは、EJBからのリクエストやEJBへの応答のJavaオブジェクトをシリアライズしたりデシリアライズする必要があります。この場合、以下の設定が必要です。

  • MAGIC.INI ファイルの[MAGIC_JAVA]セクション内の[JAVA_HOME]の設定

  • 「JAVA_HOME」環境変数の定義

  • jvm.dll ファイルのあるディレクトリを含んだパスをPATH環境変数に追加

EJBメソッド内のJavaクラスは、以下のどちらかの指定によってクラスやJarファイルを含めることによってMagicにアクセスできるようにしなければなりません。

  • MAGIC.INI ファイルの[MAGIC_JAVA]セクション内の[CLASSPATH]の設定

  • 「CLASSPATH」環境変数の定義

MagicアプリケーションサーバがEJBからリクエストを受け取ると、アプリケーションサーバは、各Javaオブジェクトを自動的にデシリアライズ（復元）し、Javaの仮想参照として起動したMagicプログラムに渡します。プログラムのBLOBパラメータは、各オブジェクトに対応したJava参照を持っています。もし、戻り値がJavaオブジェクトであれば、EJBリクエストに応答した時にエンジンは自動的に、Javaオブジェクトをシリアライズします。


コマンドラインリクエスタ

Javaとの連携 > J2EEとの連携

終了

MRB に対してはパスワードの確認が必要です。MRB がない場合、アプリケーションサーバは、他のプロセスと同じようにコンソールから終了させてください。

問い合わせ

MRB が必要です。

参照

他のリクエスタからのリモートコール


コマンドラインリクエスタ リモートコール

他のリクエスタからのリモートコール

Javaとの連携 > J2EEとの連携 > コマンドラインリクエスタ

コマンドラインリクエスタやWeb 等、他のリクエスタからのリモートコールは、Gateway=5 の時は使用できません。


J2EE と Magic のインストール

Javaとの連携 > J2EEとの連携

Magic eDeveloper をインストールすると、インストーラはJ2EE サーバを探します。J2EEサーバが見つかると、J2EEサーバのディレクトリ（%JAVA_HOME%\jre\lib\ext）に .jar ファイル（Mgejbgnrc.jar）をコピーします。 このファイルによってProxy EJB がアプリケーションサーバと接続することができます。

J2EE サーバが見つからない場合、.jar ファイルは、Magic のインストールディレクトリ上の EJB サブフォルダにコピーされます。J2EE サーバを後でインストールした場合、手動で%JAVA_HOME%\jre\lib\ext ディレクトリにファイルをコピーしてください。


J2EE と Magic のインストール 接続障害

接続障害

Javaとの連携 > J2EEとの連携 > J2EE と Magic のインストール

EJB がアプリケーションサーバと接続する際に問題が発生した場合、もし可能であれば、EJB は他のアプリケーションサーバとの接続を試みます。もし、EJB がどちらのサーバとの接続にも成功しなかった場合、エラー情報を送ります。Magic のエラー情報には、リクエスタのドキュメントに記述されているような数値のエラーコードや使用された URL リソースの名前（例えば、MagicURL のような） が含まれています。

参照

エラーのタイプ


J2EE と Magic のインストール 接続障害 エラーのタイプ

エラーのタイプ

Javaとの連携 > J2EEとの連携 > J2EE と Magic のインストール > 接続障害

アプリケーションサーバから返るエラーの一覧とその意味を以下に示します。

コード | エラーメッセージ／説明 | 発生契機 | 対応
104 | アプリケーションが使用中です | アプリケーション処理用のエンジンが全て、他のリクエストの処理中で、使用できるエンジンがない場合、このエラーが発生します。 | EJB は、通信タイムアウトで指定された時間内でアプリケーションサーバとの接続を試みます。もし、失敗した場合 「アプリケーションビジー」 をクライアントに返します。
109 | アプリケーションサーバからの接続が拒否されました | リクエスタとアプリケーションサーバ間の通信上の問題です。 | クライアントとサーバPC間のファイヤウォールの設定や、ホスト名の名前解決などを確認してください。
117 | J2EE タイプのサーバは、EJB からのリモートコールのみ受け付けます. | 異なるリクエスタによるリモートコールが実行された場合 | [サーバ]テーブルのサーバタイプが「J2EE」になっていることを確認してください。
128 | アプリケーションから拒否されました | どのアプリケーションも開いていなかったり、どのコンテキストもそのエンジンの中に存在していなかった場合に、2つ以上のリクエストによって同じエンジン内の異なるアプリケーションを開くことを試みた場合に発生します。 | EJB は、通信タイムアウトで指定された時間内でアプリケーションサーバとの接続を試みます。もし失敗した場合 「アプリケーションビジー」 をクライアントに返します。
136 | 最大ヒット数に達しました | サーバエンジンのリクエストカウントが最大値に達している状態でリクエストが送られた場合に発生します。 | アプリケーションサーバのスレッド数を増やすためのライセンス更新が必要です。 eDeveloper Studioのライセンスの場合は、2000リクエストまでの制限があります。
138 | 実行中にプログラムがアボートしました |  | EJB クライアントにアボートしたプログラム名を送ります。

参照

パーティショニングエラー


EJBリクエスト証明書へのアクセス

Javaとの連携 > J2EEとの連携

EJBメソッドを起動するユーザやアプリケーションのEJBリクエスト証明書は、 Javaオブジェクト（java.security.Principal クラス）を送信することでMagicアプリケーションサーバに渡されます。 この情報を送信しない場合は、EJBをデプロイする前にEJB のDD のPropagatePrincipal 環境の指定を「false」に設定してください。

証明書情報にアクセスするには、オブジェクトへのJava参照を保存するためのBLOB変数を定義して、以下の式で更新する必要があります。

GetParam('EJB_PRINCIPAL')

主要な情報が「java.security.Principal」のようにシリアライズされたオブジェクトに保存されている場合、Java参照は、JavaのStringオブジェクトへのリファレンスであり、その値はユーザ名となります。

主要な情報が、シリアライズされたオブジェクトに保存されていない場合、Java参照はjavax.security.auth.kerberos.KerberosPrincipalまたはjavax.security.auth.x500.X500Principalなどのjava.security.Principalを実装したクラスからJavaオブジェクトになります。

主要な名前にアクセスするために、JCall関数を使用して getNameメソッドを呼び出すことができます。例えば、以下の関数を実行することで<alpha variable> を更新することができます。

JCall(<Java ref var>,'getName','()Ljava/lang/String;')

Java参照が特定のクラスと関連性があるかどうかを確認するには、JInstanceOf関数を使用することができます。例えば以下のように指定します。

JInstanceOf(<Java ref var>,' javax.security.auth.kerberos.KerberosPrincipal')


EIB コンポーネント一覧

EJBコンポーネント一覧

Javaとの連携 > EJBインタフェースビルダ

[EJBコンポーネント一覧]ダイアログには、今までに作成されたEJBコンポーネントが表示されます。ここでは、既存のコンポーネントを削除したり、追加することができます。

[新規]ボタンをクリックするとコンポーネントの新規作成ができます。コンポーネントを選択して[次へ]をクリックすると既存のコンポーネントの修正を行うことができます。どちらの場合も、[EJBコンポーネントの詳細]ダイアログが表示されます。


EIB コンポーネントの詳細

EJBコンポーネントの詳細

Javaとの連携 > EJBインタフェースビルダ

[EJBコンポーネントの詳細]ダイアログには、作成されるEJBに関する情報が表示されます。修正できる項目もあります。ここには、以下の項目があります。

  • コンポーネント名 …… コンポーネント名は、必須です。最大30文字まで指定できます。コンポーネント名は、作成されるEJBファイルやディレクトリの名前に使用されます。

  • プロジェクト名 …… プロジェクト名は、EIBを起動したプロジェクトの名前が表示されます。この内容は変更できません。

[次へ]をクリックすると[プログラムの選択]ダイアログが表示されます。


EIB プログラムの選択

プログラムの選択

Javaとの連携 > EJBインタフェースビルダ

現在のプロジェクトに定義されている、公開プログラムが[有効値]リストに表示されます。追加したいプログラムをクリックして[追加]をクリックすると[選択値]リストに追加されます。[全て追加]をクリックすると全てのプログラムが追加されます。

[選択値]リストのプログラム名をクリックして[パラメータ]ボタンをクリックすると、[パラメータ]テーブルが表示されます。

使用するプログラムを選択して、[次へ]をクリックすると、[J2EEサーバの選択]ダイアログが開きます。

参照

Javaオブジェクトを渡す

MagicとJavaのデータタイプを比較


EIB プログラムの選択 パラメータ

パラメータ

Javaとの連携 > EJBインタフェースビルダ > プログラムの選択

[パラメータ]ボタンをクリックすると、[パラメータ]テーブルが表示されます。選択されたプログラムに定義された全てのパラメータ項目がテーブルに表示されます。これらは、Javaコード内に作成されます。

パラメータ名は、選択されたプログラムに定義されたパラメータ項目の名前がデフォルトで表示されます。Javaタイプは、選択されたプログラムに定義された項目の書式に基づいて変換されます。Javaタイプは、プログラムや式で定義された項目の書式に基づいて有効なタイプが表示されます。

精度を指定するスライダは、数値を返す式の場合のみ表示されます。[Java タイプ]と[式]欄は、数値型のパラメータや戻り値のないプログラムでは無効になります。

参照

Javaオブジェクトを渡す

MagicとJavaのデータタイプの比較


EIB プログラムの選択 パラメータ Javaオブジェクトを渡す

Javaオブジェクトを渡す

Javaとの連携 > EJBインタフェースビルダ > プログラムの選択 > パラメータ

パラメータや戻り値の項目がBLOB型の場合、[Javaタイプ]カラムで「Object」を選択できます。この場合、パラメータや戻り値に対するJavaクラスを指定するため、[クラス]カラムにJavaクラスを入力します。

入力されたJavaクラスは、java.io.Serializableクラスを実装してなけらばなりません。実装していない場合、またはJavaクラスが認識されない場合、警告メッセージが表示されます。


EIB プログラムの選択 パラメータ データタイプの比較

MagicとJavaのデータタイプの比較

Javaとの連携 > EJBインタフェースビルダ > プログラムの選択 > パラメータ

以下は、Magic での項目のタイプとこれに対応したJava でのタイプを示しています。

Magicタイプ | Java タイプ
文字型 | String / StringBuffer
BLOB型 | String / StringBuffer / byte [ ] /Object
数値型 | byte / short / long / float / double
論理型 | Boolean
日付／時刻型 | String

パラメータに対するJava のタイプはBLOB か文字型、項目名やFile2Blb のようにBLOB 値で返る戻り値の式、項目名やStr 関数を使用した文字型のどちらかを選択できます。

精度を維持するために、数値パラメータは実行するプログラムのパラメータを適切に配置しなければなりません。EIB は、パラメータの型や書式に基づいた設定をします。これらは、データベーステーブルのフィールドの記憶形式によって設定されるのと同じ方法で行われます。

タスクの[戻り値]が数値型で精度を要求する場合は、Float かDouble を選択してください。

デフォルトタイプは、精度が「2」のDoubleです。精度が「0」の場合、Longに変更されます。


EIB J2EEサーバの選択

J2EE サーバの選択

Javaとの連携 > EJBインタフェースビルダ

[プログラムの選択]ダイアログボックスで[次ヘ]をクリックすると[J2EE サーバの選択]ダイアログが表示されます。ここでは、ProxyEJB を動作させるJ2EE サーバを選択します。

以下のJ2EE サーバから選択することができます。

  • BEA WebLogic Ver. 5 or 6

  • Sun Reference Ver. 1.3

  • JBOSS

  • Oracle Enterprise Server Ver. 9i

  • Sun ONE Enterprise Server Ver. 7

  • Fujitsu Interstage Enterprise Server Ver.5

  • WebSphere Application Server Ver.4

[次ヘ]をクリックすると[コンポーネントのパス]ダイアログが表示されます。


EIB パス指定

コンポーネントのパス指定

Javaとの連携 > EJBインタフェースビルダ

[コンポーネントのパス指定]ダイアログでは、EJBコンポーネントファイルをどこに作成するかを指定します。

MAGIC.INIファイルの[Magic_Builders] セクションで「EJB_Data」の値を変更することで保存先のデフォルトを変更することができます。

[次へ]をクリックすると、[EJBコンポーネントの作成]ダイアログに移ります。


EIB コンポーネントの作成

EJBコンポーネントの作成

Javaとの連携 > EJBインタフェースビルダ

[コンポーネントのパス]ダイアログで、[次へ]をクリックすると、EJBコンポーネント用に今まで選択された設定内容が表示されます。

[終了]をクリックすると、EJBコンポーネントが作成されます。

.jarファイルの作成が終了すると、EIB は作成に成功したことを確認するためのメッセージダイアログが表示されます。

.jar ファイルが作成できなかった場合は、失敗したことを表すメッセージダイアログを表示します。[ログファイル表示]や[ステータスファイル表示]ボタンをクリックすると、処理中に発生したメッセージを記録したログファイルが表示されます。このファイルを基にエラーの原因を調べることができます。

注意：

Jarファイルを作成するには、JDKのVer1.13以上がインストールされている必要があります。WebLogicやWebSphere、Sun用のjarを作成する場合は、これらの製品があらかじめPCにインストールされている必要があります。


EIB 動作環境

動作環境

Javaとの連携 > EJBインタフェースビルダ

Magicは、OSの環境変数を設定しないでJavaクラスをロードし、有効にさせることができます。Java設定で必要な全ての環境変数は、MAGIC.INIファイルの[MAGIC_JAVA]セクションに設定できます。

[MAGIC_JAVA]セクションには、以下の設定項目があります。

  • JAVA_HOME …… この設定は、クライアントにインストールされたJVM のパスを定義します。これにより、OS 上のJAVA_HOME をMagic の動作環境で設定された内容で上書きします。

  • CLASSPATH ……この設定は、JVM 用の追加クラスのパスを定義します。これにより、Magic の識別子が、OS のCLASSPATH の設定に追加されます。複数のディレクトリを指定する場合は、セミコロン「;」を区切り文字として使用します。例えば、OSの環境変数で「C:\; C:\temp」と設定されていて、「D:\」を追加したい場合以下のように設定します。

CLASSPATH=D:\

  • JVM_ARGS …… JVMに渡される追加パラメータを指定します。例えば以下のように指定します。

JVM_ARGS=Djms.properties=F:\j2ee\config\jms_client.


EJBインタフェースビルダ 命名

命名

Javaとの連携 > EJBインタフェースビルダ

Proxy EJBを作成する場合、命名が重要になります。

  • EIBのコンポーネント名はクラス名として使用されます。

注意：

コンポーネント名は、Proxy EJB のデプロイでは使用されません。実行時に設定されるJNDI の名前を基にデプロイされます。

  • 各プログラムの公開名はメソッド名として使用されます。

  • 各プログラムのパラメータ名は、Java コードのパラメータ名として使用されます。

  • アプリケーション名や公開プログラム名、パラメータ名が正しくない場合、EIB終了してアプリケーションレベルで変更する必要があります。

  • EIBがパラメータの名前を変更する場合があります。例えば、空白は、アンダースコア('_') に置き換えられます。

注意：

コンポーネント名や公開プログラム名、パラメータ名にDBCS（全角文字や半角カタカナ）は指定できません。また、以下の文字も指定できません。

~!@#$%^&*()-+=|\/?_ ,''<.>;:"`{}[]

プロトコル

J2EEサーバ内のEJBとMagicアプリケーションサーバ間は、簡単なXMLでやり取りしています。

スケーラビリティ

J2EEサーバはスケーラビリティを管理します。EJBを追加したり、新しいインスタンスを作成する場合は、EJBサーバ側で行います。

セキュリティ

MagicアプリケーションサーバはJ2EEサーバのバックエンドで動作します。(Magicアプリケーションサーバに対する)クライアントは必要ありません。J2EEサーバがクライアント側との処理を行うため、EJBが処理するパケットのみファイヤウォールを通すようにしてください。

EJBサーバとMagicアプリケーションサーバ間のXMLでのやり取りは、J2EEサーバでのセキュリティ処理の対象外です。


EJBインタフェースビルダ 戻り値

戻り値

Javaとの連携 > EJBインタフェースビルダ

タスクの戻り値

  • [タスク特性]ダイアログで設定したタスクの[戻り値]はメソッドの戻り値として使用されます。

  • [入出力ファイル]テーブルでのリクエスタタイプは、無視され、Proxt EJB には返りません。

複合戻り値

  • 複合の戻り値には、配列と構造体が含まれています。これらは、ユーザが定義した XMLファイルを使用することで有効になります。XMLファイルの内容は、実行されたMagicプログラムやProxy EJB を起動するクライアントによって認識されます。

  • アプリケーションサーバは、XMLをProxy EJB に渡します。Proxy EJB は、折り返し XML を解析しないでクライアントに渡します。

  • 文字／メモ項目かBLOB項目のどちらかで XML ファイルを用意することができます。BLOBメソッドの場合、テキストファイルで処理して、File2Blb関数でロードします。


JCG JavaクラスやEJBタイプの指定

JavaクラスやEJBタイプの指定

Javaとの連携 > Javaコンポーネントジェネレータ

  1. メインウィザードの操作手順に従って、コンポーネントジェネレータを起動します。

  2. メインウィザードから「Javaコンポーネント」を選択し、[次へ]をクリックすると、[コンポーネントの詳細]ダイアログが表示されます。ここで、作成するコンポーネントの情報を入力します。

  3. [次へ]をクリックすると、JCGが起動され、作成するJavaコンポーネントのタイプ（Javaクラス、EJB）を選択するダイアログが表示されます。「Javaクラス」を選択して[次へ]をクリックすると[クラスの選択]ダイアログが表示されます。

  • 「クラスの選択」を選択して[次へ]をクリックすると[Javaオブジェクトブラウザ]のダイアログが表示されます。

  • 「特定のクラス」を選択するとクラス名の入力欄が表示されます。ここにクラス名を入力して[次へ]をクリックすると[Java クラス構造]のダイアログが表示されます。

  4. EJB を選択して[次へ]をクリックすると[EJBの詳細]ダイアログが表示され、以下の指定が有効になります。

  5. EJB 名…… JNDI に表示されるEJB 名を指定します。

例：WAS の petstore にアクセスする場合は、「ps/shoppingClientController」。Websphere Application Server Samplesの場合は、「WSsamples/HelloEJBHome」 になります。

  • JNDI プロパティ文字列…… 必要であれば、JNDI プロパティ文字列を指定します。例えば以下のように指定します。

java.naming.factory.initial=com.sun.jndi.cosnaming.CNCtxFactory,java.

カンマは区切り文字として使用されます。

EJB タイプが選択されると、EJB の定義を取得するためにEJBExplore 関数が自動的に呼び出されます。


JCG Javaオブジェクトブラウザ

Javaオブジェクトブラウザ

Javaとの連携 > Javaコンポーネントジェネレータ

Javaオブジェクトブラウザのツリーからクラスを選択することができます。

ブラウザには、パッケージ名が表示され、そのサブノードにクラスが表示されます。パッケージ化されていない場合は、<no package> というノード内にクラスが表示されます。

パッケージ名ではなく、サブフォルダ名で表示される場合もあります。ここから選択しても無効になります。

[次へ]ボタンをクリックすると、ウィザードが自動的にJExplore 関数を起動し、[Java クラス構造]ダイアログが表示されます。Java クラスにアクセスできなかった場合、以下のメッセージを表示します。

Failed to find the Java class.Please check that the class is avaiable.
java.lang.NoClassDefFoundError:XXXXX

注意：

一度JCGを実行した後にクラスパスを変更した場合、以前の情報がそのまま表示される場合があります。変更されたクラスパスの情報が表示されない場合、[再表示]ボタンをクリックしてください。それでも表示されない場合は、クラスパスの内容を確認してください。


JCG Javaクラス構造

Javaクラス構造

Javaとの連携 > Javaコンポーネントジェネレータ

コンポーネントインタフェースを作成するために、オブジェクトを選択することができます。

各Javaクラスでは、以下のインタフェースオブジェクトが表示されます。

  • コンストラクタ

  • メンバ変数

  • メソッド

  • スタティックメンバ変数

  • スタティックメソッド

コンテンツを持ったJava クラスのクラス構造だけが表示されます。例えば、スタティックメンバがない場合、スタティックメンバオブジェクトはツリーに表示されません。メソッドはパラメータを含めて表示されます。

オブジェクトブラウザにはクラスパス内のサブフォルダ名が表示されますが、そこに表示されるオブジェクトを選択しても無効になります。クラスファイルの場合は、<no package>内のクラス名を選択してください。

JCG は、配置されたノードから、そのノードの全ての子要素のオブジェクトを呼ぶプログラムを作成します。

[次へ]をクリックすると[書式の変更]ダイアログが表示されます。

Click Next and the Change the Picture screen opens.


JCG 型の変更

型の変更

Javaとの連携 > Javaコンポーネントジェネレータ

このダイアログは、JavaタイプとMagicタイプでのデータ型のマッピングを表示します。選択したクラスで見つかった各フィールドの書式を変更することができます。

[次へ]をクリックすると、[作成されるJavaコンポーネント]ダイアログが表示されます。


JCG 作成されるJavaコンポーネント

作成されるJavaコンポーネント

Javaとの連携 > Javaコンポーネントジェネレータ

Java コンポーネントが作成されると、JCG は、[完了]画面を表示します。JCG によって以下のようなMagic プログラムが作成されます。

ID

オブジェクトタイプ

Magicオブジェクト

1.

Java クラスまたは、EJB

２つのプログラムが作成されます。

  • JCre<クラス名>1 …… JCreate 関数を持つプログラムで、疑似参照のBLOB 値を返します。

  • JCallmain1 …… 各コンストラクタに対応したプログラム

2.

メソッド

  • JCall<メソッド名>n …… JCall 関数を持つプログラム。プログラムには、メソッドに渡すパラメータや戻り値用の変数も定義されています。

3.

メンバ変数

各メンバのごとに２つのプログラムが作成されます。

  • JSet<変数名>n ……変数に値を設定するJset 関数を持つプログラム。その関数の処理が成功したら「True」を、失敗した場合は「False」を返します。

  • JGet<変数名>n ……値を参照するJGet 関数を持つプログラム

4.

スタティックメンバ変数

各スタティックメンバごとに２つのプログラムが作成されます。

  • JSetSt<変数名>n ……JSetStatic 関数をもつプログラム

  • JGetSt<変数名>n ……JGetStatic 関数をもつプログラム

5.

スタティックメソッド

JCallSt<メソッド名>n ……JCallStatic 関数をもつプログラム。プログラムには、メソッドに渡すパラメータや戻り値用の変数も定義されています。

※n：各オブジェクトタイプ毎の通番です。

参照

作成されるファイル


JCG 作成されるファイル

作成されるファイル

Javaとの連携 > Javaコンポーネントジェネレータ

JCG は、指定されたディレクトリに以下のファイルを作成します。

  • ECF（eDeveloper Cabinet File） …… 実行エンジン用のアプリケーションのバイナリファイル

  • ECI（eDeveloper Component Interface） …… 必要なオブジェクトが含まれている、コンポーネントファイル

  • EDP（eDeveloper Developer Project） …… 作成されたコンポーエントのプロジェクトファイル


Web 開発

Magicは、Webベースのシステムを開発するための支援ツールを提供しています。

参照

ブラウザクライアントアプリケーション

動的 Webページ

リッチクライアントアプリケーション


動的 Webページ

Web 開発 >

Magicには、動的なWebページの開発に役立つ色々な機能を提供しています。

参照

マージフォーム

フレームセットフォーム

リクエスタのアップロード

コンテキスト管理


リクエスタのアップロード

Web開発 > 動的Webページ

インターネットリクエスタはファイルをアップロードし、Magic プログラムはそれを受信することができます。これらを可能にするにはHTML ファイルを以下のように定義してください。

1. form タグのmethod 属性は、post にしてください。

例）

<form action=”/scripts/mgrqispi10x.dll” method=”post”>

2. form タグには、以下のような属性を含めてください。

ENCTYPE=”multipart/form-data”

例）

<form action=”/scripts/mgrqispi10x.dll” method=”post” ENCTYPE=”multipart/form-data”>

3. フォームにtype 属性がfile のinput タグを追加してください。このタグは、ユーザがローカルのファイル名を入力するエディットコントロールおよび、ファイルを選択するダイアログを表示するためのプッシュボタンを作成します。

このinput タグにname 属性を定義してください。

例）

<input type=”file” name=”MyFile”>

4. ファイルをMagic プログラムへパラメータとして渡すため、type 属性がfile のinputタグのname 属性を、type 属性がhidden、name 属性がARGUMENTS となっているinput タグに追加してください。

例）

<input type=”hidden” name=”ARGUMENTS” value=”var1,var2,....,MyFile,...varn”>

5. 対応するBLOB 項目は、起動されたMagic プログラム内でパラメータとして定義してください。この項目に、更新ファイルの内容が入ります。

項目の内容は、Blb2File関数で物理ファイルに変換できます。

注意：

Microsoft の制限により、大きなファイル（3MB や4MB）を送信しようとした時に、Winsock のエラー10055 が発生して、正しくファイルを送信できない場合があります。

そのため、[コールリモート]処理コマンド、ファイルのアップロードなどにおいてBLOB 項目にファイルのデータを入れて、パラメータとしてやりとりする場合、ファイルサイズは1MB 以内にされることを推奨します。ファイルサイズが大きくなる場合、FTP などの代替手段を使用されることをご検討ください。

大きなBLOB 項目を転送する場合、ファイルサイズに応じてMGREQ.INI のCommTimeout を設定する必要があります。この値は、あらかじめFTP などでファイルの転送にかかる時間を計測して、その値にプラスアルファを加えた値に設定してください。

しかし、この値は、内部的な通信のリトライの間隔となるため、あまり大きな値を設定することは推奨できかねます。そのため、特に通信回線が細い場合など、この値が60 秒以内で転送できるサイズにとどめることを推奨します。


コンテキスト管理

Web開発 > 動的Webページ

対話型のWebアプリケーションに対するコンテキスト管理によって、リクエスト処理中のプログラムを実行し続けることができます。コンテキスト機能には、実行エンジンやタスクツリー、メモリテーブル、および入出力ファイルの状態が含まれています。

各コンテキストは、識別IDを持っています。このIDによって、実行環境でのコンテキストが識別されます。

コンテキストは、プログラムが終了するか、[非稼動タイムアウト]で指定された秒数を超えるまでアクティブです。[非稼動タイムアウト]の設定値を変更することで、コンテキストが有効な時間を変えることができます。

参照

コンテキストの保持


コンテキスト変数

Web開発 > 動的Webページ > コンテキスト管理

コンテキスト変数は、プロジェクトをあるHTMLフォームから別のHTMLフォームへ移動する時に、そのプロジェクト全体にわたるコンテキストを保持します。

以前に呼び出したプログラムで設定したコンテキスト変数の値を確認するには、MagicのGetParam関数を利用します。

コンテキスト変数は、Cookieまたは非表示項目のいずれかを使用して定義します。


BCアプリケーション

ブラウザクライアントアプリケーション

Web 開発 >

ブラウザが一度に1つのインタラクションと接続することで、Magicは、ブラウザ形式のアプリケーション用の総合的なソリューションを提供します。実際のアプリケーションは、複数のインタラクションに基づいています。クライアントは、各インタラクションを新しいページとして表示します。

ブラウザ用アプリケーションのオンラインインタフェースを構築する場合、クライアントとサーバが特定要件を満たす必要があります。この要件については、以下を参照してください。

注意：

ブラウザクライアントを実行するには、Microsoft .NET Framework Common Language Runtime(CLR)2.0がクライアントPCにインストールされている必要があります。

参照

ブラウザクライアントアプリケーションの概念

ブラウザクライアントタスク

クライアント側での処理

サーバ側での処理

クライアントとサーバ間の通信

ブラウザ／クライアントイベント

暗黙的イベント

外部イベントの起動

再計算

項目レベルの確認


BCアプリケーション 概念

ブラウザクライアントアプリケーションの概念

Web 開発 > ブラウザクライアントアプリケーション

ブラウザクライアントに対するアプローチが、通常のアプリケーションの形式と異なるかを以下に説明しています。

Magicのクライアント/サーバ環境

一般的なMagicのクライアント/サーバ環境では、各クライアントはMagic実行エンジンとデータベースクライアント環境を持っています。アプリケーションロジックのすべては、LANに接続しているクライアントPC上で実行され、エンドユーザはアプリケーションと対話することが可能になります。

この方式は非常に有益ですが、各クライアントPCでアプリケーションやデータベースクライアントをロードする必要があり、アプリケーションをロードするために高速なネットワーク環境が必要となります。

Web 環境

Web環境では、クライアントにはWebブラウザとインターネット接続が必要になります。Webサーバは、関連するHTMLページからのリクエストに応答します。Webサーバの機能は、HTMLページを戻すだけになります。クライアント側(ブラウザ)は、通常サーバから送られた結果を表示するために使用されます。

Magicのブラウザクライアント環境

Magicのブラウザクライアント環境は、クライアント/サーバ環境とWeb環境の両方の利点を持ち合わせています。これは、WebブラウザがWebサイトやWeb関連のファイル、Webアプリケーションをアクセスする上で最もよく使用される方法だからです。

アプリケーションをブラウザクライアント形式にすることで、共通のインターネットネットワークを使用して、世界中でアクセスすることができるWebアプリケーションになります。

Webブラウザは、様々なタイプの情報にアクセスするための標準的な方法となり、どのようなPCにもインストールされているものになっています。このため、ほとんどのユーザがWebブラウザを使用しています。

Magicは、Web環境上でシンクライアントとして動作します。クライアント側で専用のソフトウェアをインストールする必要がありません。

Magicのアプリケーションサーバは、要求に応じてWebブラウザに関連するデータやロジック、およびフロー管理モジュールを提供します。

すべてのアプリケーションのソフトウェア要素は、サーバ側に存在するため、管理や保守が容易になり、管理費用を低減させ拡張性が高くなります。


BCアプリケーション BCタスク

ブラウザクライアントタスク

Web 開発 > ブラウザクライアントアプリケーション

[タスク特性]の[タスクタイプ]特性で「R=ブラウザ」としてタスクを定義すると、オンラインタスクを開発する時と同じようなアプローチを使用してブラウザクライアントタスクを作成することができます。

APG

[APG]ダイアログの[オプション]欄で「R=ブラウザ」を指定してAPGを実行すると、基本的なブラウザ形式タスクを生成できます。

注意：

ブラウザクライアントを実行するには、Microsoft .NET Framework Common Language Runtime(CLR)2.0がクライアントPCにインストールされている必要があります。

参照

ロジックの作成

関数

BLOBのサポート

明示的なハンドラ

ヘルプイベントのサポート

インタフェースの作成

インタフェースの管理

プログラム/タスクの呼び出し

上書きされたブラウザタスクを閉じる

先頭のウィンドウの上書き


BCアプリケーション BCタスク ロジック

ロジックの作成

Web 開発 > ブラウザクライアントアプリケーション > ブラウザクライアントタスク

ブラウザタスクに必要なロジックは、Magicの処理コマンドと関数を使用して作成します。

処理コマンドは、全てのハンドラ内で使用できます。

以下の処理コマンドと関数の一覧は、クライアントでサポートされて、ローカルPCで実行されるものと、サーバ側で実行されるものに分類しています。

サーバ側で実行する処理コマンド

  • コール

  • フォーム入力

  • フォーム出力

  • OSコマンド

クライアント側で実行する処理コマンド

  • エラー

  • イベント実行

サーバとクライアントで実行する処理コマンド

  • ブロック

  • アクション

  • 項目更新


BCアプリケーション BCタスク 関数

関数

Web 開発 > ブラウザクライアントアプリケーション > ブラウザクライアントタスク

ブラウザタスクでサポートされる関数は以下の通りです。

サーバ側で実行される関数

クライアント側で実行される関数

サーバとクライアントで実行される関数


BCアプリケーション BCタスク 関数 サーバ側

サーバ側で実行される関数

Web 開発 > ブラウザクライアントアプリケーション > ブラウザクライアントタスク > 関数

以下の関数は、ブラウザクライアントタスクにおいてサーバ側のプロセスでのみ実行されます。

ANSI2OEM

AppName

Blb2File

CallDLL

CallDLLF

CallDLLS

CallProg

ClrCache

CndRange

Counter

CtxKill

CtxLstUse

CtxNum

CtxProg

CtxSize

CtxStat

CurrPosition

DbCache

DbCopy

DbDel

DbDiscnt

DbERR

DbExist

DbName

DbRecs

DbReload

DbSize

DDEBegin

DDEEnd

DDEGet

DDEPoke

DDERR

DDExec

Delay

DiscSrvr

EOF

EOP

ErrDatabaseName

ErrDbmsCode

ErrDbmsMessage

ErrMagicName

ErrPosition

ErrTableName

EvalStr

ExpCalc

File2Blb

File2Ole

FileCopy

FileDelete

FileExist

FileRename

FileSize

FlwMtr

GetLang

GetParam

GroupAdd

HTTPGet

HTTPPost

INIGet

INIGetLn

INIPut

InTrans

IOCurr

JMonth

JYear

KbGet

KbPut

LIKE

Line

LMChkIn

LMChkOut

LMUVStr

Lock

Logging

MailBoxSet

MailDisconnect

MailError

MailFileSave

MailLastRC

MailMsgBCC

MailMsgCC

MailMsgDate

MailMsgDel

MailMsgFile

MailMsgFiles

MailMsgFrom

MailMsgHeader

MailMsgId

MailMsgReplyTo

MailMsgSubj

MailMsgText

MailMsgTo

MailSend

MDate

MIDV

MlsTrans

OEM2ANSI

Owner

Page

Prog

ProgIdx

RepV

RightAdd

Rights

Rollback

RqExe

RqLoad

RqQueDel

RqQueLst

RqQuePri

RqReqInf

RqReqLst

RqRtApp

RqRtApps

RqRtCtx

RqRtCtxs

RqRtInf

RqRts

RqRtTrm

RqStat

RunMode

SetLang

SetParam

Term

Text

TransMode

UDF

Unlock

User

UserAdd

VarPic

XMLCnt

XMLExist

XMLFind

XMLGet


BCアプリケーション BCタスク 関数 クライアント側

クライアント側で実行される関数

Web 開発 > ブラウザクライアントアプリケーション > ブラウザクライアントタスク > 関数

以下の関数は、ブラウザクライアントタスクにおいてクライアント側のプロセスでのみ実行されます。

CallJS

CallOBJ

CHeight

CLeft

ClickCX

ClickCY

ClickWX

ClickWY

ClipAdd

ClipRead

ClipWrite

CtrlGoto

CurRow

EditGet

EditSet

HandledCtrl

LastPark

SetCrsr

WinBox

WinMaximize

WinMinimize


BCアプリケーション BCタスク 関数 サーバ/クライアント

サーバとクライアントで実行される関数

Web 開発 > ブラウザクライアントアプリケーション > ブラウザクライアントタスク > 関数

以下の関数は、ブラウザクライアントタスクにおいてサーバとクライアントの両方のプロセスで実行されます。

+
-
*
/
MOD
^
&
=
<>
<
<=
>
>=
OR

AND

NOT

ABS

ACOS

AddDate

AddTime

ASCIIChr

ASCIIVal

ASIN

ATAN

BOM

BOY

CASE

CMonth

COS

CRC

CTop

CWidth

Date

Day

DbRound

Del

DOW

DStr

DVal

EOM

EOY

EXP

Fill

Fix

Flip

Flow

Hour

HStr

HVal

Idle

IF

IsDefault

ISNULL

LastClicked

Left

Len

Level

LOG

Lower

LTrim

MAX

MID

MIN

Minute

Month

MStr

MVal

NDOW

NMonth

NULL

RAND

Range

Rep

RepStr

Right

Round

RTrim

SoundX

Stat

Str

StrToken

StrTokenCnt

TAN

TDepth

THIS

Time

Trim

TStr

TVal

Upper

Val

VarAttr

VarCurr

VarCurrN

VarIndex

VarInp

VarMod

VarName

VarPrev

VarSet

ViewMod

Year


BCアプリケーション BCタスク BLOB

BLOBのサポート

Web 開発 > ブラウザクライアントアプリケーション > ブラウザクライアントタスク

ブラウザクライアントは、ブラウザタスクのデータビューの一部としてBLOB項目をサポートしています。ブラウザクライアントでのBLOBの動作は以下の通りです。

  • BLOB項目は、HTMLのエレメントを使用して表示できません。

  • RTFを含んだBLOB項目は、文字列関数を使用してクライアント上で操作できます。

  • BLOB項目は、以下の文字列関数をサポートしています。

Del | OEM2ANSI
Flip | Rep
Ins | RepStr
InStr | Right
Left | RTrim
Left | StrToken
Lower | Trim
LTrim | Upper
MID |


BCアプリケーション BCタスク 明示的なハンドラ

明示的なハンドラ

Web 開発 > ブラウザクライアントアプリケーション > ブラウザクライアントタスク

ハンドラは、システム[イベント]ロジックユニットまたは内部[イベント]ロジックユニットとして定義できます。

  • システム[イベント]ロジックユニット……さまざまなキー入力の組合せに独自のハンドラを定義できます。ただし、キー入力の組合せにブラウザ独自の機能が対応する場合、その機能を上書きして変更することはできません。

  • 内部[イベント]ロジックユニット……ブラウザクライアントでは、次の内部イベントのみがサポートされています。

フォーム先頭

フォーム末尾

ライン先頭

ライン末尾

ページ先頭

ページ末尾

テーブル先頭

テーブル末尾

マウスアウト

マウスオーバ

クリック

ダブルクリック

ビュー再表示

画面先頭

画面末尾

行先頭

行末尾

前画面

次画面

前項目

次項目

次行

前行

次ページ

前ページ

次タブ

前タブ

項目先頭

項目末尾

照会

修正

登録

行削除

行作成

ヘルプ

キャンセル

終了

参照

インタフェースの作成

インタフェースの管理

クライアント側での処理

サーバ側での処理

クライアントとサーバ間の通信


BCアプリケーション BCタスク ヘルプイベント

ヘルプイベントのサポート

Web 開発 > ブラウザクライアントアプリケーション > ブラウザクライアントタスク

MagicのヘルプイベントはF1/Ctrl+F1を押下することで、ブラウザからヘルプイベントを起動し実行することができます。

ヘルプイベントが実行された場合、定義されたヘルプのURLを表示する新しいヘルプウィンドウが開きます。ブラウザのヘルプウィンドウは表示されません。

HTMLコントロールからヘルプを呼び出した場合、MagicはHTMLコントロールに割り当てられたヘルプを表示します。ヘルプがHTMLコントロールに割り当てられない場合、Magicはフォームに割り当てられたヘルプを表示します。ヘルプがフォームに割り当てられていない場合、Magicはブラウザの内部ヘルプを表示します。


BCアプリケーション BCタスク インタフェース作成

インタフェースの作成

Web 開発 > ブラウザクライアントアプリケーション > ブラウザクライアントタスク

ブラウザタスクのインタフェースは、HTMLベースのインタフェースです。ブラウザタスクのインタフェースは、実際のHTMLファイルに基づいています。

インタフェースの編集は、[設定／動作環境]ダイアログの[サーバ]タブにある[Webオーサリングツール]で指定されているツールを使用して行います。

このツールはブラウザ形式フォームの[HTMLコントロール]テーブルの[HTMLエディタ]ボタンを押下することで起動し、この時にこのフォームが使用するHTMLファイルが開きます。

参照

ツールイメージファイル


BCアプリケーション BCタスク インタフェース作成 イメージ

ツールイメージファイル

Web 開発 > ブラウザクライアントアプリケーション > ブラウザクライアントタスク > インタフェースの作成

ブラウザクライアントでは特定のファイル名のイメージファイルをHTMLテンプレートの中に配置することで、使用頻度の高い「次レコード」「次ページ」などの内部イベントを発生させることができまます。 ファイルは、インストール時に「BCモジュールの転送先ディレクトリ」で指定されたディレクトリにコピーされます。

ツールイメージファイルには以下のものがあります。

  • MG_VCR …… mgvcr.jpg

  • MG_EDIT …… mgedit.jpg

  • MG_CANCEL …… mgcancel.jpg

  • MG_EXIT …… mgexit.jpg

  • MG_QUIT …… mgquit.jpg


BCアプリケーション BCタスク インタフェース作成 イメージ MG_VCR

MG_VCR

Web 開発 > ブラウザクライアントアプリケーション > ブラウザクライアントタスク > インタフェースの作成 > ツールイメージファイル

イメージは6つに別れ、それぞれ左から以下のイベントが割り当てられます。

  • テーブル先頭

  • 前ページ

  • 前レコード

  • 次レコード

  • 次ページ

  • テーブル末尾

VCRイメージをHTMLインタフェースに挿入するには、以下のようにします。

  1. HTMLオーサリングツールを使用して、HTMLイメージタグを作成します。

  2. イメージタグのソースが正しくmgvcr.jpg ファイルを指していることを確認します。名前は「MG_VCR」です。例えば以下のように指定します。

<img src= "/Magic10BC/mgvcr.jpg" name = "MG_VCR">

  3. ブラウザクライアントはこのイメージを名前で識別し、自動的にVCRイメージとして扱います。


BCアプリケーション BCタスク インタフェース作成 イメージ MG_EDIT

MG_EDIT

Web 開発 > ブラウザクライアントアプリケーション > ブラウザクライアントタスク > インタフェースの作成 > ツールイメージファイル

イメージは3つに別れ、それぞれ右から以下のイベントが割り当てられます。

  • 行作成

  • 行削除

  • キャンセル

EDITイメージをHTMLインタフェースに挿入するには、以下のようにします。

  1. HTMLオーサリングツールを使用して、HTMLイメージタグを作成します。

  2. イメージタグのソースが正しくmgedit.jpg ファイルを指していることを確認します。名前は「MG_EDIT」です。例えば以下のように指定します。

<img src= "/Magic10BC/mgedit.jpg" name = "MG_EDIT">

  3. ブラウザクライアントはこのイメージを名前で識別し、自動的にEDITイメージとして扱います。


BCアプリケーション BCタスク インタフェース作成 イメージ MG_CANCEL

MG_CANCEL

Web 開発 > ブラウザクライアントアプリケーション > ブラウザクライアントタスク > インタフェースの作成 > ツールイメージファイル

「キャンセル」イベントが割り当てられます。

CANCELイメージをHTMLインタフェースに挿入するには、以下のようにします。

  1. HTMLオーサリングツールを使用して、HTMLイメージタグを作成します。

  2. イメージタグのソースが正しくmgcancel.jpg ファイルを指していることを確認します。名前は「MG_CANCEL」です。例えば以下のように指定します。

<img src= "/Magic10BC/mgcancel.jpg" name = "MG_CANCEL">

  3. ブラウザクライアントはこのイメージを名前で識別し、自動的にCANCELイメージとして扱います。


BCアプリケーション BCタスク インタフェース作成 イメージ MG_EXIT

MG_EXIT

Web 開発 > ブラウザクライアントアプリケーション > ブラウザクライアントタスク > インタフェースの作成 > ツールイメージファイル

「終了（E）」イベントが割り当てられます。

EXITイメージをHTMLインタフェースに挿入するには、以下のようにします。

  1. HTMLオーサリングツールを使用して、HTMLイメージタグを作成します。

  2. イメージタグのソースが正しくmgexit.jpg ファイルを指していることを確認します。名前は「MG_EXIT」です。例えば以下のように指定します。

<img src= "/Magic10BC/mgexit.jpg" name = "MG_EXIT">

  3. ブラウザクライアントはこのイメージを名前で識別し、自動的にEXITイメージとして扱います。


BCアプリケーション BCタスク インタフェース作成 イメージ MG_QUIT

MG_QUIT

Web 開発 > ブラウザクライアントアプリケーション > ブラウザクライアントタスク > インタフェースの作成 > ツールイメージファイル

「取消終了」イベントが割り当てられます。

QUITイメージをHTMLインタフェースに挿入するには、以下のようにします。

  1. HTMLオーサリングツールを使用して、HTMLイメージタグを作成します。

  2. イメージタグのソースが正しくmgquit.jpg ファイルを指していることを確認します。名前は「MG_QUIT」です。例えば以下のように指定します。

<img src= "/Magic10BC/mgquit.jpg" name = "MG_QUIT">

  3. ブラウザクライアントはこのイメージを名前で識別し、自動的にQUITイメージとして扱います。


BCアプリケーション BCタスク インタフェース管理

インタフェースの管理

Web 開発 > ブラウザクライアントアプリケーション > ブラウザクライアントタスク

インタフェースはHTMLの各エレメントから構成され、Magicの外部で定義されます。Magicでは、[HTMLコントロール]テーブルを使用してこれらのHTMLエレメントを処理します。

[HTMLコントロール]テーブルは、[ブラウザ形式]フォームからズームすると開きます。

このテーブルには、使用しているHTML要素のリストが表示されます。各要素では、データ項目や式を割当て、要素でサポートされている、さまざまな特性に動的な値を定義できます。

HTMLエレメントの共通特性の初期値および固定値は、HTMLオーサリングツールで定義する必要があります。


BCアプリケーション BCタスク プログラム呼出

プログラムやタスクの呼び出し

Web 開発 > ブラウザクライアントアプリケーション > ブラウザクライアントタスク ／ ブラウザ／クライアントイベント

プログラムやサブタスクを、[イベント]ロジックユニット内から呼び出すことができます。呼び出しを含む[イベント]ロジックユニットは、サーバで実行されてHTML文字列を返します。このHTML文字列は別のブラウザウィンドウ内に表示されます。このウィンドウには、独自のアプレットがないため、元のウィンドウのアプレットを呼び出してイベントを処理します。

ブラウザタスクからは、オンラインタスクを呼び出すことはできません。

ブラウザタスクは、直接呼び出す場合に限り、別のブラウザタスクを呼び出すことができます。つまり、中間にバッチタスクを介することはできません。

ブラウザタスクは単純なHTML出力を作成するバッチタスクを呼び出すことはできます。

参照

バッチタスクの呼び出し


BCアプリケーション BCタスク プログラム呼出 バッチタスク

バッチタスクの呼び出し

Web 開発 > ブラウザクライアントアプリケーション > ブラウザクライアントタスク > プログラムやタスクの呼び出し

ブラウザタスクは、[入出力ファイル]テーブルに登録されたリクエスタに出力送信するバッチタスクの起動をサポートします。マージフォームを作成するバッチタスクを呼び出しリクエストを送信する場合、出力内容は、[コール]処理コマンドの[出力先フレーム]特性に定義されたブラウザウィンドウに表示されます。

次の[コール]処理コマンドで他のバッチタスクを起動する場合、そこに定義された[出力先フレーム]特性は無視されます。ブラウザタスクが起動したバッチタスク内の[コール]処理コマンドで定義された[出力先フレーム]特性のみ使用されます。

現在のコンテキスト内のバッチタスク

[コール]処理コマンドで起動されたバッチタスクは起動したタスクのアクティブなコンテキスト内で実行されます。これは、変数やタスクツリー、グローバルパラメータ、メモリテーブル、トランザクションのような全てのコンテキストのリソースが起動されたバッチタスクで利用可能であることを意味します。バッチタスクが終了した時、コンテキストリソースへの変更はコンテキスト内で保持されます。

モーダレスウィンドウ

バッチタスクの結果ページは、モーダルウィンドウにはできません。常にモーダレスウィンドウとしてオープンします。

コンテキスト外となる結果ページ

バッチタスクが終了する時にオープンされる結果ページは、もとのコンテキストにアクセスできません。

ネストされたバッチタスクからの結果ページ出力

リクエスタへの出力は、ブラウザタスクから直接起動されたバッチタスクおよびさらにそこから起動されたバッチタスクによって行われます。結果ページは、先頭のバッチタスクが終了した時にクライアントに返されます。

結果ページ出力のないタスク

リクエスタに出力しないバッチプログラムが実行されると、結果ページもオープンされません。


BCアプリケーション BCタスク 上書きプログラムを閉じる

上書きされたブラウザタスクを閉じる

Web 開発 > ブラウザクライアントアプリケーション > ブラウザクライアントタスク ／ ブラウザ／クライアントイベント

ブラウザタスクが、現在開いている子タスク（タスクＡ）をクローズして、別の子タスク（タスクＢ）を起動した場合、以下のような処理手順で実行されます。

  1. タスクBがオープンされます。[タスク前]と最初の[レコード前]が実行されます。その結果としてのHTMLページが、ブラウザクライアントへ渡ります。

  2. タスクAが完全にクローズされます。[レコード後]と[タスク後]が実行されます。[終了時URL]は無視されます。

  3. タスクBがタスクAの代わりに表示されます。

  4. もしタスクAが適切にクローズされなかった場合（例えば、タスクAの[レコード後]で[アクション]や[エラー]処理コマンドの実行によって）、タスクBは、クローズされます。タスクＢで実行された、クライアントに影響する処理コマンド（例えば、ブラウザタスクの実行や[アクション]処理コマンド）は無視されます。この場合、タスクBをクローズさせないようにすることはできません。


BCアプリケーション イベント 先頭ウィンドウの上書き

先頭ウィンドウの上書き

Web 開発 > ブラウザクライアントアプリケーション > ブラウザクライアントタスク ／ ブラウザ／クライアントイベント

以下のようにしてコンテキストをクローズしないで、一番先頭のウィンドウ（ルートタスクのウィンドウ）を置き換えることができます。

  1. メインプログラムによってハンドラ定義された非同期イベント（[ウェイト]特性が「No」）を実行します。メインプログラムのハンドラには、[コールプログラム]処理コマンド（[出力先フレーム]特性が「_top」 ）が含まれています。
    この場合

  2. 新しいタスクの[タスク前]が実行されます。

  3. 以前の全てのタスクはクローズされます。

  4. 新しいタスクが画面に表示されます。

Magicが以前のタスクをクローズできない場合([エラー]処理コマンドが実行されたり、[エラー発生時]オプションが「R=回復」でデータエラーが発生した場合)、新しいタスクはその[タスク後]が実行されクローズされます。

  2. メインプログラムによってハンドル処理されるルートタスクの[タスク後]で非同期イベント（[ウェイト]特性が「No」）が実行されます。メインプログラムのハンドラは[コールプログラム]処理コマンドが定義されています。出力先フレームの指定内容や、ハンドラの実行契機はどのような設定でも構いません。全てのブラウザプログラムがクローズされます。起動されたプログラムは新しいタスクになります。


BCアプリケーション サーバ/クライアント

サーバ／クライアント処理の利用

Web 開発 > ブラウザクライアントアプリケーション

ブラウザクライアントにおける Magic の処理（コマンドや関数の実行）は、処理をどこで行うかにより、次の三つに分類できます。

  • クライアント……処理はクライアント側でのみ行うことができるもの。CallJS関数などがクライアント側関数の例です。

  • サーバ……処理はサーバでのみ行うことができるもの。INIGet関数などがサーバ側関数の例です。

  • クライアントとサーバ……処理はクライアント、サーバいずれでも実行可能なもの。

ブラウザクライアントモジュールは、上記のカテゴリに属する処理を行う上で、クライアントとサーバの間の通信が最小になるように最適化して、実行を行うようになっています。

サーバ側のエンジンは、処理フローのコマンドをチェックして、サーバ側で実行できる処理が続く限り、ブラウザクライアントモジュールとの通信を行わずに実行を続け、クライアントでしか実行できない処理に行き着いた時、あるいはひとつのハンドラの処理が最後まで行った時に初めて、クライアントに制御を返します。これにより、クライアントとサーバの間の通信オーバーヘッドを最小にすることができます。

開発モードでは、各ハンドラや処理コマンドおよび関数がどこで処理されるかを表示します。行番号カラムの左側に処理モードとして以下のような文字が表示されます。

  • C …… クライアント側で処理

  • S …… サーバ側で処理

  • M …… 両方で処理

文字が表示されない場合は、クライアントかサーバのどちらかで実行されます。

処理モードの表示は、[表示]メニューの[BC処理情報を表示]をクリックすることで、表示の有無を切り替えることができます。

このオプションは、メインプログラムとブラウザクライアントタスクでのみ有効です。

この指定は、以下のレジストリに登録されます。

HKEY_CURRENT_USER\SOFTWARE\Magic Software Japan\Magic\10.x\Browser Information\ShowHandlingInfo

  • 0 …… 処理モードを表示しない

  • 1 …… 処理モードを表示する（デフォルト）

「処理情報を表示」がオンになっている場合には、 それぞれ下記のように表示されます。

場所 | 表示の単位
処理テーブル | コマンド
[式]エディタ | 式
関数一覧 | 関数

また、以下のように実行の場所（クライアント／サーバ）に不整合がある場合、構文チェックでエラーになります。

  • クライアントのみで実行可能な関数を[タスク前]に設定した場合。[タスク前]では常にサーバで処理が行われます。

  • 一つの式にクライアントの関数とサーバの関数を混在して設定した場合。

例： CallProgURL (AppName(), 'Prog1', '' )

プログラムを開発する際には、プログラムロジックが許す限り、「S」あるいは「C」が連続して続くような形に処理フローを定義するようにしてください。これにより、通信なしで連続して実行できるコマンドの数が増えるので、実行効率が良くなります。


BCアプリケーション クライアント側

クライアント側での処理

Web 開発 > ブラウザクライアントアプリケーション

Magicが作成し、クライアント上で実行される出力内容は、.NETによって拡張されています。これらのモジュールは、次の機能を提供します。

  • ページ上で発生するイベントを処理します。

  • インタフェース要素のデータと外観を再計算してリフレッシュします。

  • クライアント側で実行できる関数を実行します。例えば、数値、文字列、日付、時刻を操作する関数を実行します。

  • データビューを更新します。

  • 項目レベルの書式チェックを行います。

  • ブラウザクライアントが表示できる範囲よりも多いデータをローカルキャッシュに維持します。このキャッシュでは、新しいデータをローカルにスクロールでき、クライアントとサーバ間で必要になる通信の量が減ります。


BCアプリケーション サーバ側

サーバ側での処理

Web 開発 > ブラウザクライアントアプリケーション

サーバ側の処理機能は、ブラウザ形式のアプリケーションで最も重要な役割を担っています。サーバは次の機能を提供します。

  • 各リモートクライアントを識別します。サーバは、ロジックが定義されたタスクをオープンしている各クライアントのコンテキストを維持します。

  • コンテキストを確立します。コンテキストは、タスク内でのクライアントの正確な位置やタスクのトランザクション内で操作されたデータを内部的に記録しています。

  • クライアントから送られたデータ操作を変換し、必要なデータベースに渡します。

  • クライアントでレコードをリンクしなおした時、新しくリンクされたレコードを取得します。

  • 新しくリンクされたレコードを取得するために、クライアントでレコードを再リンクします。

  • クライアントでローカルに実行させることのできない関数を実行させます。


BCアプリケーション クライアント/サーバ

クライアントとサーバ間の通信

Web 開発 > ブラウザクライアントアプリケーション

初期ロード時には、特別なメッセージがサーバに送信されます。このメッセージは、コンテキストIDとセッションカウンタを含んでいます。セッションカウンタは最初は0に設定されています。

クライアントからリクエストが送信されるたびに、セッションカウンタの値は増えてゆきます。値が0より大きいが、サーバが予期する値よりも小さいセッションカウンタを受け取ると、サーバは次のメッセージを返します。

Context is already in use

クライアント／サーバ時の動作として次のことに留意してください。

  • ページがアンロードされたが、タスクが適切に終了しない場合（ブラウザ機能としての「進む」と「戻る」、または「ブラウザの終了」を使用した場合など）、クライアントはデータビュー内の変更内容をサーバに送信し、一方サーバ側はペンディングステータスになります。クライアントは応答を待ってからアンロード処理を続けます。

  • 返されたコンテキストIDとセッションカウンタは、クライアントメッセージ内のものと同じになる必要があります。値が異なる場合、次のようなエラーメッセージが出されます。

Invalid context ID or Session Counter

コンテキストは、[設定／動作環境]ダイアログの[コンテキスト非稼動タイムアウト]欄または[コンテキストのアンロードタイムアウト]欄の設定に基づいて、タイムアウトに達するまでサーバ上でペンディングステータスのまま保持されます。


BCアプリケーション イベント

ブラウザ／クライアントイベント

Web 開発 > ブラウザクライアントアプリケーション

クライアントイベント

クライアント側の常駐アプレットは、暗黙的または明示的なMagicハンドラのトリガとなるブラウザイベントを捕らえ、処理します。データビューに対応するHTML内の各コントロールでは、次のブラウザイベントを処理できます。

  • コントロール前

  • コントロール後

  • 検証

  • クリック

  • ダブルクリック

  • マウスオーバ

  • マウスアウト

JavaScriptで記述されているブラウザの[イベント]ロジックユニットは、イベントを処理するアプレットのメソッドを呼び出します。このメソッドは暗黙的イベントか明示的イベントを識別し、必要な処理を行ないます。最初に暗黙的イベントが処理されてから明示的イベントが処理されます。

サーバイベント

それぞれのMagicの[イベント]ロジックユニットは、コマンドのリストに割当てられます。次のうちいずれかが該当する場合、クライアントはコマンドを実行できません。

  • メインの式か条件式に関わらず、クライアントが評価できない関数がコマンド内の式に含まれる場合。

  • 処理コマンドが、項目更新、コール、ブロック、ブロック終了、アクション、エラー以外の場合。

  • 処理コマンドが項目更新であり、対象項目がリンク項目の場合。

クライアント内で実行できないコマンドが[イベント]ロジックユニットに含まれている場合、クライアントはコマンドをサーバに送信し、サーバにイベントの処理を委ねます。

参照

暗黙的イベント

プログラムやサブタスクの呼び出し

上書きされたブラウザタスクを閉じる

先頭ウィンドウの上書き

最初のレコード前


BCアプリケーション イベント 暗黙的イベント

暗黙的イベント

Web 開発 > ブラウザクライアントアプリケーション > ブラウザ／クライアントイベント

暗黙的イベントは、[イベント]ロジックユニット内に定義されていないもので、次のものが含まれます。

  • タスク初期化……フォームコントロールとその特性に値を割当てます。

  • レコード前の前……レコードを取得して代入式と特性式を評価し、レコードを表示します。

  • 前／次レコード……クライアントキャッシュ内にレコードがある場合、それを取得して表示します。クライアントキャッシュ内にレコードがない場合、サーバからチャンクを取得してレコードを表示します。

  • 前／次ページ……クライアントキャッシュ内にページがある場合、それを取得して表示します。クライアントキャッシュ内にページがない場合、サーバからチャンクを取得してページを表示します。


BCアプリケーション イベント 最初のレコード前

最初のレコード前

Web 開発 > ブラウザクライアントアプリケーション > ブラウザ／クライアントイベント

タスクの開始時の最初のレコードに対する[レコード前]は、[タスク後]の後にサーバ側で実行されます。これ以外の[レコード前]はクライアント側で実行されます。

ページが表示され有効になった場合の最初の[レコード前]は、クライアント側で実行されます。この場合、全ての[レコード前]はクライアント側で実行されます。


BCアプリケーション 外部イベント

外部イベントの起動

Web 開発 > ブラウザクライアントアプリケーション

ブラウザクライアントページで出力されるHTMLページ内でMGExternalEvent（）が実行されると、Magicプログラム内で「外部イベント」として受け取ることができます。その際、関数内に指定したパラメータを[イベント]ロジックユニットで取得することもできます。

構文：

MGExternalEvent(パラメータ 1, パラメータ 2)

パラメータ：

パラメータ……パラメータとして渡す文字列。渡されるパラメータは、ハンドラに定義された変数で受け取ることができます。パラメータの数に制限はありません。

戻り値：

論理値

  • True…ブラウザクライアントがロードされた場合

  • False…ブラウザクライアントがロードされない場合


BCアプリケーション 再計算

再計算

Web 開発 > ブラウザクライアントアプリケーション

再計算は、データ項目の変化に伴って発生する暗黙的イベントです。いずれかの値が変更されるたびに、再計算対象となる項目がチェックされます。

  • その他のデータ項目の[代入]特性

  • 各コントロール特性

  • 式がトリガする[イベント]ロジックユニット

値の変化で再計算イベントが必要になり、その再計算イベントがサーバで処理すべきものである場合には、クライアントはコマンドをサーバに送信し、サーバは計算値を返します。


BCアプリケーション 項目レベルの確認

項目レベルの確認

Web 開発 > ブラウザクライアントアプリケーション

エンドユーザのデータ入力時、クライアントでは、項目の書式、マスク文字、および範囲をチェックします。チェックされるタイプは次のとおりです。

  • 数値型

  • 文字型

  • 日付型

  • 時刻型

  • 論理型

マスク文字は、エンドユーザ入力の項目書式の構成評価に使用します。

エンドユーザは、項目に任意の文字列を入力できます。入力された内容は、通常、フォーカスがその項目から他に移るタイミングでチェックされます。その他、項目レベルでは次の処理が実行されます。

  • コントロールの初期値は、フィールドの値と結合されたマスクです。

  • 文字型項目に、大文字や小文字のみ、または数字のみの書式指定がある場合は、チェックはただちに実行されます。

  • 数値型や日付型、時刻型のフィールドのチェックは、入力後に実行されます。

  • 入力文字列が項目のマスク指定に準拠しない場合、前の値に戻されます。

  • チェック後のデータが、フィールド内で正しく解釈できない場合、前の値に戻されます。

  • 範囲指定がある時は、範囲から外れた入力の場合、前の値に戻されます。

  • 入力データのチェックで問題がなければ、その文字列が入力項目内に表示され、フォーカスは他に移ります。前の値に戻された場合、ステータスバー上にメッセージが表示され、フォーカスがその項目に戻ります。

  • パラメータが再計算された時、新しい位置付値に従って再位置付けされます。


リッチクライアントアプリケーション

Web 開発 >

Magicでは、リッチクライアントアプリケーションを開発することができます。リッチクライアントは、リモート環境で運用するためのビネスアプリケーションの開発／実行を行うためのプラットフォームです。

注意:

  • リッチクライアントプログラムをMagic Studioから実行させるには、PCにJREをインストールさせる必要があります。

  • リッチクライアントで扱われるXMLデータを暗号化させる場合は、MAGIC.INI ファイルの[MAGIC_SPECIALS]セクションに「SecureBrowserClient=Y」を設定してください。

リッチクライアントアプリケーションの開発や実行環境の構築のために、Magicでは以下のユーティリティを提供しています。

  • リッチクライアントインタフェースビルダ

  • リッチクライアント準備ユーティリティ

  • リッチクライアント配備アシスタ

以下のトピックは、リッチクライアントアプリケーションの開発に必要な情報が提供されています。

  • リッチクライアントタスク

  • リッチクライアント関数

  • リッチクライアントのデータビューの規則

  • クライアントへの大きなデータの送信

  • リッチクライアントのパーティショニング

  • リッチクライアントの内部イベント

  • クライアント/サーバ処理

  • 並行実行

  • クライアント側のデバッグ

  • 共通エラー

利便性と優位性

リッチクライアントの利便性と優位性は以下の通りです。

  • リモートでアクセスするアプリケーション …… リッチクライアントの基本原則は、新しいユーザであっても、ネットワークに接続している限り、何処からでもアプリケーションに接続し、実行させることができるということです。

  • 完全なインタラクティブ機能 …… ページ毎の対話機能とフィードバックを提供するWebアプリケーションと異なり、リッチクライアントは完全にインタラクティブなエンドユーザ機能を提供します。

  • TCO（Total Cost of Ownership）の削減

  • リッチクライアントアプリケーションにアクセスし、実行するための特別なセットアップは必要ありません。

  • アプリケーションメンテナンスのためにエンドユーザのPCを操作する必要がありません。

  • クライアントPCにデータベース接続環境やプリンタドライバなどのソフトウェアのインストールを行う必要がありません。

  • クロスプラットフォームクライアントのサポート …… クライアント側のモジュールは、WindowsやLinuxなどの様々なOS上で実行させることができます。

  • 統合された[フォーム]エディタ …… ユーザーインターフェイスの設計作業は、Magic Studioの[フォーム]エディタを使用して行うことができます。

  • 総合的なソリューション …… 完全なインタラクティブ機能を持つクライアントと集中的に管理できるサーバ機能による統合的なソリューションです。

  • 1つに統合された開発環境とパラダイム …… リッチクライアントは、ユーザインタフェースを含めたサーバ側とクライアント側のロジックの定義を、1つに統合された開発環境とパラダイムによってサポートしています。

  • ロジックのパーティショニングの自動化 …… リッチクライアントの実行モジュールは、クライアントとサーバ間のロジックのパーティショニングを容易に最適化することができます。

  • パフォ－マンスを意識した開発 …… リッチクライアントの開発環境は、パフォーマンスを向上させるため、実際の処理がサーバ側かクライアント側のどちらで行われるかを意識しやすいように表示されます。

  • ネイティブなルック&フィール …… リッチクライアントは、使用するクライアントPC（のOS）でのネイティブなルック＆フィールで表示されます。

  • ブラウザに依存しないソリューション …… リッチクライアントは、ブラウザの種類やバージョンに依存しません。

  • ローカルPCのリソースの操作性 …… リッチクライアントは、クライアント側で実行させる様々な動作をサポートします。例えば以下のような処理が可能です。

  • OSコマンド

  • ファイル操作

  • OS環境の操作


リッチクライアントアプリケーション 準備ユーティリティ

リッチクライアント準備ユーティリティ

Web 開発 > リッチクライアントアプリケーション

このユーティリティは、オンラインタスクをリッチクライアントタスクに変換する作業を支援するものです。

  • すべての[GUI表示形式]クラスのモデルを[リッチクライアント表示形式]クラスのモデルとしてコピーします。

  • 項目モデルやカラム、変数項目の各特性に対し、[GUI表示形式]特性の内容を[リッチクライアント形式]特性にコピーします。特性が継承されていない場合は、このコピー処理が実行されます。

この変換ユーティリティを使用することで、フォームを作成する際の作業を一部省くことができます。

このユーティリティを使用する前に以下の作業が必要です。

  1. プロジェクトが使用する全てのコンポーネント用プロジェクトを用意します。

  2. これらのコンポーネントに対するECIファイルを作成し直します。

  3. プロジェクトにECIファイルを再度読み込ませます。

  4. プロジェクトファイルをバックアップします。

  5. プロジェクトがバージョン管理されている場合、最新バージョンを取得し、他のユーザによってチェックアウトされていない状態にします。

以下の操作で、このユーティリティにアクセスすることができます。

  1. [オプション]メニューを開き、[リッチクライアント準備]を選択します。[リッチクライアント準備]ウィザードが起動されます。

  2. [ウェルカム]ダイアログから、[次へ]をクリックします。

  3. [準備方法]ダイアログが表示された段階で、既に変更するプロジェクトが準備されていることを確認します。準備ができたら、[実行]をクリックします。

  5. [実行]をクリックすると、ウィンドウの下にプログレスバーが表示されます。これは、処理が実行されていることを示しています。処理が終了すると、終了メッセージが表示されます。

  6. [OK]をクリックするとウィザードは終了します。


リッチクライアント実行アシスタ

リッチクライアント配備アシスタ

Web 開発 > リッチクライアントアプリケーション

リッチクライアント実行アシスタは、Javaのインストール内容を分析し、問題がある場合は必要な操作をアナウンスすることができるActiveXモジュールです。

このActiveXモジュールは、RichClientModulesフォルダ内にインストールされたHtmlファイルを開くことでインストールされます。

以下のURLで実行させることができます。

http://server/eDevRCModules/RCDeploymentAssistor.htm


リッチクライアントアプリケーション タスク

リッチクライアントタスク

Web 開発 > リッチクライアントアプリケーション

[タスク特性]の[タスクタイプ]特性で「リッチクライアント」と定義することでリッチクライアントタスクを作成することができます。

リッチクライアントサブタスク

リッチクライアントタスクでサブタスクを作成する場合、作成されるタスクもリッチクライアントタスクになります。

タスクタイプの変更

  • オンライン/バッチタスクをリッチクライアントに変更する

    [タスクタイプ]を「O=オンライン/B=バッチ]から「C=リッチクライアント」に変更した場合、以下のように処理されます。

  • [タスク特性]は、リッチクライアントのデフォルト値が設定されます。

  • 項目の[GUI表示スタイル]特性や[GUIテーブル表示スタイル]特性の継承が解除されており、[リッチクライアント表示スタイル]特性が設定されていない場合、[GUI表示スタイル]特性の内容が[リッチクライアント表示スタイル]にコピーされます。

  • すべてのGUI表示フォームは、別の新規行にコピーされます。

  • すべてのGUI表示フォームは、リッチクライアント表示フォームに変換されます。

  • ブラウザタスクをリッチクライアントに変更する

[タスクタイプ]を「B=ブラウザ]から「C=リッチクライアント」に変更した場合、以下のように処理されます。

  • [タスク特性]は、リッチクライアントのデフォルト値が設定されます。

  • 空のリッチクライアントフォームがこのタスクのメインフォームとして作成されます。

  • リッチクライアントから別のタスクタイプに変更する

    [タスクタイプ]を「C=リッチクライアント」から別のタイプに変更した場合、以下のように処理されます。

  • [タスク特性]は、変更されたタスクタイプのデフォルト値が設定されます。

  • サブタスクのタスクタイプが変更できないため、すべてのサブタスクのタスクタイプを個別に変更する必要があります。

フォームのタイプをリッチクライアントから別のタイプに変更する（またはその逆）

  • [ブラウザ形式]フォームを[リッチクライアント形式]フォームに変更すると、すべてのコントロールは削除され、すべての[フォーム特性]はデフォルト値に設定されます。

  • [リッチクライアント形式]フォームから他のフォームに変更すると、すべてのコントロールは削除され、すべての[フォーム特性]はデフォルト値に設定されます。

  • [GUI表示形式]フォームを[リッチクライアント形式]フォームに変更すると、フォームとコントロールは以下のように変換されます。

  • リッチクライアントタスクでサポートされないコントロールは、フォームからすべて削除されます。

  • [テーブル]コントロールに配置されたコントロールは以下のように扱われます。

    • [グループ]と[タブ]の各コントロールは削除されます。

    • [リストボックス]コントロールに配置された[コンボボックス]コントロールに変換されます。

    • [ラジオボタン]コントロールは、[コンボボックス]コントロールに変換されます。

参照

リッチクライアントのタスクロジック

処理コマンドの色


リッチクライアントアプリケーション タスク ロジック

リッチクライアントのタスクロジック

Web 開発 > リッチクライアントアプリケーション > リッチクライアントタスク

リッチクライアントタスクで必要なロジックは、処理コマンドと関数を使用して作成します。

処理コマンドは、内容に応じてクライアントでサポートされるものと、サーバ上で実行されるものがあります。

サーバ側でサポートされる処理コマンド

  • [コール]処理コマンド…… リッチクライアントタスクは、リッチクライアントタスクからのみ呼び出すことができます。またリッチクライアントタスクは、リッチクライアントタスクかバッチタスクのみを呼び出すことができます。呼び出すプログラム/タスクがバッチの場合、[コール]処理コマンドはサーバ側で実行されます。これ以外は、混在モードで処理されます。

  • [外部コール（UDP、Webサービス）]処理コマンド

クライアント側でサポートされる処理コマンド

  • [エラー]処理コマンド

クライアント側とサーバ側でサポートされる処理コマンド

  • [アクション]処理コマンド

  • [ブロック（If、Else、End）]処理コマンド

  • [ブロックWhile]処理コマンド

  • [項目更新]処理コマンド……項目の再計算処理に依存します。項目がサーバとしてマークされている場合、サーバ側で実行されます。それ以外は、ニュートラル(どちらでも実行可能)で実行されます。

  • [コールOSコマンド]処理コマンド …… [実行]特性に依存します。

  • [イベント実行]処理コマンド …… 発行されるイベントによって実行されるハンドラが、どちらで実行されるかによって決定されます。

注意：

  • [ウェイト]特性が「No」と定義されている[イベント実行]処理コマンドがサーバ側でサポートされる処理コマンドの集合の一部として定義されている場合、サーバに対する多重アクセスを避けるために[イベント実行]処理コマンドをサーバ側処理の集まりの外に移動させることを推奨します。

  • サーバ側の処理コマンド群に処理場所が不明な[イベント実行]処理コマンドが含まれている場合、実行時にエラーが発生する可能性があります。

以下の処理コマンドは、リッチクライアントタスクではサポートされません。

  • [コールCOM]処理コマンド

  • [フォーム]処理コマンド

注意：

  • クライアント側の処理とサーバ側の処理の両方を必要とする処理コマンドは、リッチクライアントタスクではサポートされません。

  • [入出力ファイル]テーブルは、リッチクライアントタスクでは使用できません。


リッチクライアントアプリケーション タスク 色

処理コマンドの色

Web 開発 > リッチクライアントアプリケーション > リッチクライアントタスク

[ロジック]エディタ内の処理コマンドの背景色は、処理コマンドがサーバ側であるか、クライアント側であるか、混在であるか、不明であるかを示しています。表示される色は、[開発用基本色]テーブルで変更することができます。

以下の表は、色の違いを説明しています。

色

説明

#1の背景色

  • クライアント側でサポートされる処理コマンド

  • クライアント側でサポートされる処理コマンドだけを含むロジックヘッダ

  • クライアント側の処理コマンドの後に定義されているニュートラルな処理コマンド

  • 混在しているようなサポートされていない処理コマンド

#10の背景色

  • サーバ側で実行される処理コマンド

  • サーバ側の処理コマンドを含むロジックヘッダ

  • サーバ側の処理コマンドの後に定義されたニュートラルな処理コマンド

#11の背景色

  • 処理する場所が不明な処理コマンド
    処理コマンドがサーバ側かクライアント側のどちらで実行されるか不明な場合、この色で表示されます。


リッチクライアントアプリケーション 関数

リッチクライアント関数

Web 開発 > リッチクライアントアプリケーション

リッチクライアント関数は、実行される場所に応じて分類できます。

サーバ側で処理される関数

クライアント側で処理される関数

サーバ/クライアント側の両方で処理可能な関数


リッチクライアントアプリケーション 関数 サーバ側

サーバ側で処理される関数

Web 開発 > リッチクライアントアプリケーション > リッチクライアント関数

以下の関数は、リッチクライアントアプリケーションのサーバ側の処理でのみ利用可能です。

AddDateTime

ANSI2OEM

AppName

Blob2Req

BlobFromBase64

BlobSize

BlobToBase64

BufGetAlpha

BufGetBit

BufGetBlob

BufGetDate

BufGetLog

BufGetNum

BufGetTime

BufGetUnicode

BufGetVariant

BufGetVector

BufSetAlpha

BufSetBit

BufSetBlob

BufSetDate

BufSetLog

BufSetNum

BufSetTime

BufSetUnicode

BufSetVariant

BufSetVector

Blb2File

CallDLL

CallDLLF

CallDLLS

CallProg

Cipher

ClrCache

CndRange

CodePage

CtxClose

CtxGetAllNames

CtxGetId

CtxGetName

CtxKill

CtxLstUse

CtxNum

CtxProg

CtxSetName

CtxSize

CtxStat

DataViewToHTML

DataViewToText

DataViewToXML

DataViewVars

DbCache

DbCopy

DbDel

DbDiscnt

DbERR

DbExist

DbName

DbRecs

DbReload

DbRound

DbSize

DDEBegin

DDEEnd

DDEGet

DDEPoke

DDERR

DDExec

DeCipher

DifDateTime

DiscSrvr

EJBCreate

EJBExplore

EncryptionError

ErrDatabaseName

ErrDbmsCode

ErrDbmsMessage

ErrMagicName

ErrPosition

ErrTableName

EvalStr

EvalStrInfo

File2Blb

File2Ole

File2Req

FileCopy

FileDelete

FileExist

FileListGet

FileRename

FileSize

FlwMtr

FlwMtrVars

GetComponentName

GetGUID

GetLang

GroupAdd

HTTPGet

HTTPLastHeader

HTTPPost

INIGet

INIGetLn

INIPut

InTrans

LDAPError

LDAPGet

LMChkIn

LMChkOut

LMUVStr

LMVStr

Lock

Logging

Logon

MailBoxSet

MailConnect

MailDisconnect

MailError

MailFileSave

MailLastRC

MailMsgBCC

MailMsgCC

MailMsgDate

MailMsgDel

MailMsgFile

MailMsgFiles

MailMsgFrom

MailMsgHeader

MailMsgId

MailMsgReplyTo

MailMsgSubj

MailMsgText

MailMsgTo

MailSend

MlsTrans

MTblGet

MTblSet

mTime

mTStr

mTVal

OEM2ANSI

OSEnvGet

OSEnvSet

ParamsPack

ParamsUnPack

ProgIdx

ProjectDir

PublicName

RightAdd

Rights

Rollback

RqCtxInf

RqCtxTrm

RqExe

RqHTTPHeader

RqLoad

RqQueDel

RqQueLst

RqQuePri

RqReqInf

RqReqLst

RqRtApp

RqRtApps

RqRtBlock

RqRtCtx

RqRtCtxs

RqRtInf

RqRtResume

RqRts

RqRtTrm

RqRtTrmEx

RqStat

RqTrmTimeout

RunMode

SetBufCnvParam

SetLang

SharedValGet

SharedValPack

SharedValSet

SharedValUnpack

TaskID

Term

Translate

UnicodeChr

UnicodeFromANSI

UnicodeToANSI

Unlock

User

UserAdd

UserDel

UTF8FromAnsi

UTF8ToAnsi

VarDbName

WSConsumerAttachmentAdd

WSConsumerAttachmentGet

WSProviderAttachmentAdd

WSProviderAttachmentGet

WsSetIdentity

リテラル

DSOURCE

ERR

EVENT

EXP

FORM

INDEX

PROG

RIGHT

参照

クライアント側で処理される関数

サーバ側/クライアント側で処理される関数


リッチクライアントアプリケーション 関数 クライアント

クライアント側で処理される関数

Web 開発 > リッチクライアントアプリケーション > リッチクライアント関数

以下の関数は、リッチクライアントアプリケーションのクライアント側の処理でのみ利用可能です。

CHeight

ClickCX

ClickCY

ClickWX

ClickWY

ClientBlb2File

ClientFile2Blb

ClientFileCopy

ClientFileDelete

ClientFileExist

ClientFileListGet

ClientFileRename

ClientFileSize

ClientGetUniqueMachineID

ClientOSEnvGet

ClientOSEnvSet

ClipAdd

ClipRead

ClipWrite

CtrlGoto

CurRow

CWidth

CX

CY

DirDlg

EditGet

EditSet

FileDlg

HandledCtrl

LastClicked

LastPark

Menu

MenuIdx

MnuCheck

MnuEnabl

MnuName

MnuShow

SetCrsr

SetWindowFocus

StatusBarSetText

WinBox

WinMaximize

WinMinimize

WinRestore

参照

サーバ側で処理される関数

サーバ側/クライアント側で処理される関数


リッチクライアントアプリケーション 関数 クライアント/サーバ

サーバ/クライアント側の両方で処理可能な関数

Web 開発 > リッチクライアントアプリケーション > リッチクライアント関数

以下の関数は、「ニュートラル」として実行される処理コマンドや関数の組み合わせによって実行場所が異なるものや、「不明」扱いでＭａｇｉｃエンジンによって実行場所が最適化されるものです。

+

-

*

/

MOD

^

&

=

<>

<

<=

>

>=

OR

AND

NOT

ABS

ACOS

AddDate

AddTime

ASCIIChr

ASCIIVal

ASIN

AStr

ATAN

BOM

BOY

CASE

CDOW

ChkDgt

CMonth

COS

CRC

Date

Day

DbRound

Del

Delay

DOW

DStr

DVal

EOM

EOY

EXP

Fill

Fix

Flip

Flow

Hour

HStr

HTTPLastHeader

HVal

Idle

IF

IN

Ins

InStr

IsComponent

IsDefault

IsFirstRecordCycle

ISNULL

Left

Len

Level

LIKE

LOG

LoopCounter

Lower

LTrim

MainDisplay

MainLevel

MAX

MID

MIN

Minute

Month

MStr

MVal

NDOW

NMonth

NULL

Owner

Prog

RAND

Range

Rep

RepStr

Right

Round

RTrim

Second

SIN

SoundX

Stat

Str

StrBuild

StrToken

StrTokenCnt

StrTokenIdx

TAN

TDepth

THIS

Time

Translate

Trim

TStr

TVal

UnicodeVal

Upper

Val

VarAttr

VarCurr

VarCurrN

VarIndex

VarInp

VarMod

VarPic

VarName

VarPrev

VarSet

VecCellAttr

VecGet

VecSet

VecSize

ViewMod

Year

参照

サーバ側で処理される関数

クライアント側で処理される関数


リッチクライアントアプリケーション データビューの規則

リッチクライアントのデータビューの規則

Web 開発 > リッチクライアントアプリケーション

各項目の再計算を実行する際に、データビューに対して以下の規則が適用されます。

  • [リンク]コマンドによる再計算が行われる場合（リンクカラムの[位置付]特性に項目が定義されている場合）、この項目はサーバ側の再計算項目となります。

  • 項目の[代入]特性は、各レコードに対してサーバとクライアントの両方で実行されます。

  • 再計算処理にクライアント側の関数が含まれている場合（クライアント側の関数が定義された項目の[代入]特性に再計算項目が定義されている場合）、項目はクライアント側の再計算項目となります。

  • この項目に対する[項目変更]ロジックユニットが定義され、ここにサーバ側の処理コマンドが定義されている場合、項目はサーバ側の再計算項目となります。

  • この項目に対する[項目変更]ロジックユニットが定義され、ここにクライアント側の処理コマンドが定義されている場合、項目はクライアント側の再計算項目となります。

  • 再計算定義と[項目変更]ロジックユニットにニュートラルな関数のみが含まれている場合、項目はニュートラルな再計算項目となります。

  • 項目の再計算定義で使用されるすべての処理コマンドはクライアント側か、サーバ側でサポートされるものでなければなりません。

  • ActiveX型とOLE型は、リッチクライアントタスクでは変数項目として利用できません。

  • ActiveX型とOLE型の項目は、リッチクライアントタスクでは定義できません。


リッチクライアントアプリケーション 大きなデータの送信

クライアントへの大きなデータの送信

Web 開発 > リッチクライアントアプリケーション

大きなデータをクライアントに送る場合、考慮すべき4つの問題があります。

1. エンジンによるデータビューの送信

メモリ上の制限は、各クライアント側のPCに依存します。メモリの上限を超えた場合、Magicエンジンはクラッシュします。従って、[タスク特性]の[チャンクサイズ]特性に適切な値を設定することでメモリの割り当てをコントロールする必要があります。チャンクサイズの指定値は、1レコードのサイズと利用するPCで利用可能なメモリ容量に依存します。

[チャンクサイズ]特性を｢1｣に設定すると、1度に1レコードずつ送信されます。

2. クライアントが受け取るデータビュー

適切なデータビューがサーバから送られると、JVMはそれを受け取るために適切なメモリ領域を準備する必要があります。JVMのメモリ領域の上限は、-Xms256m -Xmx750mをJVMパラメータに設定することによってコントロールすることができます。このパラメータは、Magic.iniファイル内の[MAGIC_JAVA]セクションで以下のように設定できます。（m：メガ）

JVM_ARGS = -Xms256m -Xmx750m

  • -Xms : 初期ヒープサイズ

  • -Xmx :最大ヒープサイズ

3. 通信

送受信の両方で対応した場合、通信のための時間を十分に確保できるように適切なHTTPタイムアウトを設定する必要性が発生します。

4. 表示モード

スクリーンモードの場合は、1レコード分のみメモリを使用しますが、ラインモード（[テーブル]コントロールを使用する）のフォームは、各ページ毎にテーブルのサイズ分のメモリを使用します。スクリーンモードで表示させるようにして必要なレコードのみを取得することで、クライアント側で使用するメモリーをコントロールすることができます。


リッチクライアントアプリケーション パーティショニング

リッチクライアントのパーティショニング

Web 開発 > リッチクライアントアプリケーション

以下は、リッチクライアントタスクで式を使用した動作に関する情報をまとめたものです。

サーバ側でのみ実行される関数とクライアント側でのみ実行される関数の両方によって構成される式は、両方をアクセスすることになり定義できません。

ユーザ定義関数

  • （メインプログラムを除く）開発時のタスクツリー内に定義され、サーバ側の処理コマンドが含まれているユーザ定義関数は、式をサーバ側で使用するものとして変換します。

  • （コンポーネントを含む）メインプログラムで定義されたユーザ定義関数は、式をどちらで処理されるか不明なものとして変換します。

  • ユーザ定義関数には、クライアント側およびサーバ側の処理コマンドの両方を含めることができません。

クライアント側の式

以下の式は、クライアント側で評価される式のみを使用することができます。

  • [フォーム／コントロール]特性

  • [タスク終了条件]特性

  • [循環入力]特性

  • [確認確認]特性

  • [キャンセル確認]特性

  • [強制レコード後]特性

  • [修正]特性

  • [照会]特性

  • [削除]特性

  • [登録]特性

サーバ側の式

以下の式は、タスクの初期設定処理で評価され、クライアント側の式を含めることはできません。

  • メインソースとリンクテーブルの各カラムの範囲式と位置付式

  • SQL Where句

ニュートラルな式と処理コマンド

サーバ側とクライアント側の両方で評価することができるものを「ニュートラル」と呼びます。以下の式は、サーバ側とクライアント側の両方で評価することができるため、これらはニュートラルとなります。

  • 項目の[代入]特性

  • [範囲／位置付]ウィンドウ内の[範囲式]と[位置付式]

ニュートラルな式や処理コマンドが実際にどちらで評価されるかは、定義される場所や定義内容によって異なります。

  • クライアントでのみ評価される式を持つニュートラルな処理コマンドは、クライアント側の処理コマンドとみなされます。

  • サーバでのみ評価される式を持つニュートラルな処理コマンドは、サーバ側の処理コマンドとみなされます。

混在の式と処理コマンド

混在式（クライアント側の関数とサーバ側の関数を両方とも含んでいる式）は使用できません。

混在処理コマンド（少なくとも1回はクライアント側とサーバ側の両方での実行が要求される処理コマンド）は使用できません。

ロジックユニットでの推奨事項

  • [コントロール]と[レコード前／後]は、ユーザがレコードを参照している間に実行されます。このため、サーバにアクセスする処理を定義しないようにすることを推奨します。

  • [項目変更]は、ユーザがレコードを参照している間に実行されます。このため、サーバにアクセスする処理を定義しないようにすることを推奨します。

  • [エラー]は、サーバ上で実行されます。

  • サーバに対する混在アクセスの実行は推奨されません。従って、クライアント側の定義群の次にサーバ側の処理が定義され、さらに、別のサーバ側の処理が続くようになっている場合、サーバ側のアクセス処理をまとめて定義するようにしてください。

  • [ブロックWhile]処理コマンド内で、クライアント側とサーバ側の両方の処理群が定義されている場合、サーバへの混在アクセスが発生することになります。このような設定は推奨しておりません。


リッチクライアントアプリケーション 内部イベント

リッチクライアントの内部イベント

Web 開発 > リッチクライアントアプリケーション

以下の内部イベントは、クライアント側でサポートしています。

項目先頭

フォーム先頭

ライン先頭

次行先頭

行先頭

ページ先頭

画面先頭

テーブル先頭

ボタンを押す

キャンセル

クリック

全て閉じる

クローズ

コントロールヒット

コピー

行作成

切り取り

ダブルクリック

現文字削除

前文字削除

行削除

複写

項目末尾

フォーム末尾

行末尾

ページ末尾

ライン末尾

テーブル末尾

画面末尾

(Magic)終了

終了

外部イベント

関連ヘルプ表示

マーク次文字

マルチマーキングで次行

マルチマーキングで前行

マーク前文字

項目末尾までマーク

その他のウィンドウ

マウスアウト

マウスオーバー

次文字

次項目

次行

次ページ

次画面

次タブ

次のウィンドウ

次語

貼り付け

前文字

前項目

前行

前ページ

前画面

前タブ

前のウィンドウ

前語

取消終了

サーバ終了

NULLに設定

変更取消

広域表示

ウィンドウヒット

ウィンドウ位置変更

ウィンドウサイズ変更

ズーム

以下の内部イベントは、サーバ側でサポートしています。

レコード書込

画面再表示

サーバ終了

サブフォーム再表示

ビュー再表示


リッチクライアントアプリケーション ヘルプ

リッチクライアントのヘルプ

Web 開発 > リッチクライアントアプリケーション

[ヘルプ画面]特性には、URLヘルプのみ指定できます。

ヘルプは、[ブラウザ]コントロールが含まれたクライアント専用のウィンドウを使用して表示されます。すなわち、既にヘルプウィンドウが開いた状態で[ヘルプ]イベントが発行されると、このウィンドウ内のヘルプトピックの内容を差し変えて表示されます。

ウィンドウはアプリケーションが終了すると閉じます。


リッチクライアントアプリケーション クライアント/サーバ

クライアント/サーバ処理

Web 開発 > リッチクライアントアプリケーション

リッチクライアントタスクでは、各ハンドラや処理コマンド、および関数の処理モードが表示されます。

以下のような処理モードを表す文字が、[行番号]カラムの左側に表示されます。

  • C …… クライアント側の処理。処理コマンドは、クライアント側で実行されます。

  • S …… サーバ側の処理。処理コマンドは、サーバ側で実行されます。

  • M …… 混在モードの処理。処理コマンドは、クライアントとサーバの両方で実行されます。

  • U …… 不明。どちらで実行されるか分からない処理になります。例えば、[イベント実行]処理コマンドを定義し、発行するイベントに対応したイベントロジックユニットが定義されていない場合にこの状態になります。

  • E …… エラー。[フォーム出力]処理コマンドのように、サポートされない処理コマンドが定義された場合がこの状態になります。

  • 文字が表示されない場合 …… クライアントまたはサーバのどちらかで実行されるニュートラルであることを表します。

リッチクライアントの処理モードの表示は、リッチクライアントタスクでは常に有効になります。メインプログラムでは、[表示]メニューの[RC処理情報を表示]をクリックすることで、表示の有無を切り替えることができます。


リッチクライアントアプリケーション 並行実行

並行実行

Web 開発 > リッチクライアントアプリケーション

リッチクライアントプログラムは、[並列実行]特性を指定することで同時に実行させることができます。例えば、プログラムに対する認証処理を繰り返して実行させることなく、従業員管理のプログラムと財務管理プログラムを1つの起動ファイル（JNLPファイル）を使用して実行させることができます。

並列実行のリッチクライアントプログラムは、別のリッチクライアントプログラムからのみ起動させることができます。[プログラム]リポジトリでのF7キー操作やエンジンにリクエストを送ることで起動させた場合、プログラムは並行実行されません。

リクエスト（コマンドライン、リモートコールなど）によって並行起動設定のリッチクライアントプログラムを呼び出すと、プログラムは並行起動ではなくなります。

起動プログラムを終了させても、（オンラインプログラムによるのように）呼び出された並行プログラムは終了しません。

[コンテキストID]特性は使用できません。項目を割り当てても削除されます。

ライセンス

並行起動する各リッチクライアントプログラムは、ライセンスからスレッドを消費することになります。

終了

上位のプログラムが終了しても、並列実行のリッチクライアントプログラムは終了しません。


Web開発 リッチクライアント クライアント側のデバッグ

クライアント側のデバッグ

Web開発 > リッチクライアントアプリケーション

リッチクライアントタスクでは、アクティビティモニタを使用することでサーバ側のデバッグを行うことができます。クライアント側の処理は、次のイベントが処理される際に、アクティビティモニタに追加されます。これは、別のイベントが実行される前に、リッチクライアントタスクが異常終了したり、ハングアップした場合、アクティビティモニタの最後の処理内容は残らないことを意味しています。従って、クライアント側のデバッグができるようにすることでこの問題が解決できるようにします。

[ロギング]テーブルの[クライアントの動作]を「Yes」に設定することで、アクティビティモニタにクライアント側の処理が表示されます。

クライアント側の処理コマンドを実行する間に、リッチクライアントタスクが異常終了したり、応答が無くなったりした場合、その状態はアクティビティモニタには表示されません。従って、クライアント側のデバッグを行う場合は、以下のような方法で行ってください。

クライアント側の異常終了をデバッグするには

  1. JNLPファイル内のLogClientSequenceForActivityMonitorフラグを「Yes」に設定します。JNLPファイルは、リッチクライアントインタフェースビルダを使用することで作成されます。このフラグを「Yes」に設定すると、クライアント側の実行内容がクライアントPC内のログファイルとして作成されます。 このログファイルには、まだサーバに送信されなかったすべての情報が含まれます。ログファイルは、各イベントが実行された後やアプリケーションが終了する際に削除されます。

  2. クライアントでアプリケーションを実行させるには、JNLPファイルを使用します。Magicは、既存のログファイルを検索し、前回の異常終了情報が見つかった場合、その情報をサーバに送信します。これによって、アクティビティモニタに表示されます（モニタに表示されるタイムスタンプで前回の内容かどうかを確認できます）。

  3. 異常終了が発生した場合、（異常処理プロセス以外のログファイルが正常に削除されるように）すべての並行実行プロセスを終了してください。

  4. アプリケーションを再起動します。これで、最後のクライアント処理が記録されたログファイルがサーバに送られ、アクティビティモニタに表示されます。

  5. アクティビティモニタは、クライアントログによって更新され、問題の箇所を確認することができます。

注意：

  • アクティビティモニタの表示行は、サーバ側の処理がピンク、クライアント側の処理は白で表示されます。

  • ログファイルは暗号化されているため、ログファイルを直接参照することはできません。

  • [ロギング]テーブルの[クライアントの動作]が「No」に設定された場合、ログファイルは作成されません。この設定を「Yes」にすると、パフォーマンスが低下するため、通常の運用時は「No」に設定してください。

内部ログの出力

以下の設定で内部用のログ情報が出力されます。

<argument>InternalLogLevel=NONE</argument>
<argument>InternalLogFile=InternalClient.log</argument>

  • InternalLogLevel：ログレベルを指定します。

  • NONE …… ログは出力されません(ログファイルは作成されます)。

  • SERVER ……サーバ側の実行エンジンのログが出力されます。

  • SUPPORT ……サーポートセンタ用のログが出力されます。

  • DEVELOPMENT ……開発部用ののログが出力されます。

  • InternalLogFile：ログファイル名を指定します。

このパラメータが無効な場合（タグが正しく設定されていない場合）、ログファイルは作成されません。


リッチクライアントアプリケーション 共通エラー

リッチクライアントの共通エラー

Web 開発 > リッチクライアントアプリケーション

リッチクライアントアプリケーション起動時のエラー

JNLPファイルを使用してリッチクライアントアプリケーションを起動した場合に、発生する可能性のあるエラーについて説明します。

1. このアプリケーションを起動できません

このエラーは、以下のような原因で発生する可能性があります。

  • 実行されるJNLPの位置が、JNLP hrefタグに書き込まれている内容と異なっています。この場合に、エラーは、Javaの起動画面の後に表示されます。

  • IISのMIMEマップに拡張子「.jnlp」が登録されていない可能性があります。IISの「規定のWebサイト」（Windows XPの場合）または「Default Web Site」（Windows Vistaの場合）のプロパティを開いて［MIIMEマップ］（WindowsXP の場合）または［MIMEの種類］（Windows Vistaの場合）の内容を確認してください。登録されていない場合は、追加登録してください。

このエラーは、JNLPファイル内のresourcesタグに定義されたjarファイルが見つからない場合に発生します。

どちらも[詳細]ボタンをクリックすることでエラーの詳細情報が表示されます。

2. The Web server is inaccessible

このエラーは、以下のような原因で発生する可能性があります。

  • eDevScriptsエイリアスが、Webサーバ上に定義されていない場合。

  • JNLPファイルのapplication-descタグ内に指定されたサーバ名やエイリアス名が正しくない場合。

3. Application not supported by any Enterprise Server

JNLPファイルのapplication-descタグ内に定義されたアプリケーション名が正しくない可能性があります。

4. Program not found

JNLPファイルのapplication-descタグ内に定義されたプログラム名が正しくないか、該当するプログラム名がアプリケーションの[公開名]に定義されていないか、［外部］タブがオンになっていない可能性があります。

5. Java.lang.ClassNotFound

JAVA_HOMEの環境変数がJavaディレクトリを示していない可能性があります。

6. You have exceeded the number of users allowed.

このエラーは、以下のような原因で発生する可能性があります。

  • Magic エンジンがフォアグランドで実行され、2ユーザ以上のクライアントからアクセスされた場合。

  • ［動作環境］ダイアログの［最大並行ユーザ数］に指定されたユーザ数以上のクライアントからアクセスされた場合。接続可能な最大ユーザ数は、ブローカモニタの［最大スレッド数］として表示されます。

  • アプリケーションがオープンされていない場合も発生します。バックグラウンドで実行している場合は、ブローカモニターでどのアプリケーションがオープンされているかを確認することができます。

7. The current session was disconnected due to inactivity timeout.

［動作環境］ダイアログの［コンテキスト非稼動タイムアウト］に指定された時間内に操作が行われなかった場合にこのエラーが 発生します。「0」に設定するとタイムアウトは発生しなくなります。

注意：

JNLPファイルの内容を変更しても現象が変わらない場合は、Webブラウザのキャッシュ(一時ファイル)やJavaのインターネット一時ファイルを削除してみてください。


Webサービス

Magic V10は、Webサービスのプロバイダ/コンシューマ機能のフレームワークとして「Systinet Server for Java」を使用します。

MagicのWebサービス機能は以下をサポートしています。

  • SOAP 1.1 / SOAP 1.2

  • WSDL 1.1

  • SOAPアタッチメント

  • WS-I Conformance

  • 転送セキュリティ（Transport level security） …… クライアントとサーバ両者の信頼性、および Web サーバとそのクライアントの間でやり取りされるデータの整合性と機密性を保証する一連のセキュリティです。

  • Webサービスセキュリティ（WS-Security） …… SOAPメッセージレベルのセキュリティです。

Magicのインストール処理時に、「Systinet Server for Java」を一緒にインストールことができます。

WebサービスコンシューマとしてMagicを使用するために、Webサービスコンポーネントジェネレータや[コールWebサービス]処理コマンドを使用することができます。

WebサービスプロバイダーとしてMagicを使用するためには、Webサービスインタフェースビルダを使用してサービスを作成してください。サービスを配置し使用するには、以下のようにWindows OSの「Systinet Server for Java」サービスを起動する必要があります。（Systinet のプログラムメニューから起動できます。）

Magic V9PlusのWebサービスのアプリケーションを Ver10用にマイグレーションする方法については、「変換結果(マイグレーション)」参照してください。

Magicは、Webサービス機能を実現するために以下の環境設定や関数を提供しています。

  • SOAP クライアントモジュールパス

  • SOAP スパイアドレス

  • WsConsumerAttachmentAdd

  • WsConsumerAttachmentGet

  • WsProviderAttachmentAdd

  • WsProviderAttachmentGet

  • WsSetIdentity


コンポーネントビルダ WIB Webサービス一覧

Webサービス一覧

Webサービス > Webサービスインタフェースビルダ

[Webサービル一覧]ダイアログには、今までに作成されたWebサービスが表示されます。ここでは、既存のWebサービスを削除したり、追加することができます。Webサービスを選択して、[次へ]をクリックすると既存のWebサービスの修正を行うことができます。

WSDLビルダが起動されると、「New_Service」コンポーネントが自動的に作成されます。このコンポーネントを削除することはできません。

[割り当て修正]ボタンをクリックすると、[割り当て表示／修正]ダイアログが表示されます。

[サーバ]ボタンをクリックすると、[サーバ詳細]ダイアログが表示されます。

[次へ]をクリックすると、[Webサービス詳細]ダイアログが表示されます。

削除をクリックした時に、確認ダイアログで「はい」を選択した場合、ウィザードは、WSDLファイルとビルダが作成したJarファイルを削除します。Jarがデプロイされても、ビルダはデプロイしません。


コンポーネントビルダ WIB 割り当て表示/修正

割り当て表示／修正

Webサービス > Webサービスインタフェースビルダ

[割り当て表示/修正]ダイアログでは、有効なWSDLのデータタイプとMagicのデータ型との割り当てを参照したり、修正りすることができます。

[Webサービス一覧]ダイアログで、[割り当て修正]ボタンをクリックするとアクセスすることができます。


コンポーネントビルダ WIB サーバ詳細

サーバ詳細

Webサービス > Webサービスインタフェースビルダ

[サーバ詳細]ダイログには、以下の設定項目があります。

  • サーバ …… サービスを配置するために必要な Systinet サーバのアドレスを指定します。デフォルト値は、 Magic.iniファイルから取得されます。

    [Magic_Builders]Soap Server Address = http://localhost:6060

  • ユーザID …… サーバにログインするためのユーザIDを指定します。（論理名やシークレット名を使用することができます。）

  • 配置 …… 成されたJarファイルをサーバに配置するかどうかを指定します。

  • 詳細を保存 …… ユーザIDとパスワードを保存するかどうかを指定します。Magic.iniファイルの[Magic_Builders] セクションに保存されます。

  • [Magic_Builders]SoapUser = <ユーザID>

  • [Magic_Builders]SoapPass = <パスワード>

  • パスワード …… サーバにログインするためのパスワードを指定します。（Admin のデフォルトのパスワードは 「changeit」です。アカウントは、SystinetのAdministration Consoleで変更できます。）

  • パスワードの保存 …… パスワードをMagic.iniの[Magic_Builders]セクションに保存するかどうかを指定します。


コンポーネントビルダ WIB Webサービス詳細

Webサービスの詳細

Webサービス > Webサービスインタフェースビルダ

[Webサービスの詳細]ダイアログには、作成されるWebサービスについての情報を設定します。

このダイログには、以下の設定項目があります。

  • サービス名 …… ユーザ定義のサービス名です。サービス名の入力は必須で、プロジェクト毎にユニークな名前にしてください。サービス名には、以下の文字のみ有効です。
    A-Z、z、0-9、アンダーバ（_）。
    サービス名は、Webサービスモジュールを作成するために使用されます。

  • 説明 …… WSDL ファイルの説明を入力します。

  • サービスネームスペース ……現在のMagicのインストールによって組み込まれたすべてのWebサービスのための基本のネームスペースとなる、サービスネームスペースの識別子です。
    デフォルト値は、以下のようになります。

com.edeveloper.<[MAGIC_ENV]Owner>.<host name>

小文字の英数字、およびアンダーバのみ有効です。不正な文字（空白など）は、アンダーバに置き換えられます。

大文字は、小文字に変換されます。

この設定を修正すると、Magic.iniファイルに保存されます。

[MAGIC_BUILDERS]SoapServiceNamespace

  • SOAPプロトコル …… このWSDLファイルで使用するSOAPプロトコルを指定します。SOAP1.1 または、SOAP1.2 のどちらかを選択してください。

  • SOAPのバインド/エンコード …… 以下の値から選択してください。

  • Document/Literal (デフォルト)

  • Wrapped/Literal

  • RPC/Literal

  • RPC/Encoded

  • 添付タイプ …… サービスレベルアタッチメント（パラメータとして送信されません）がDIMEまたはMIMEとしてSOAPリクエストに添付されるかどうかを指定します。デフォルトは、「MIME」です。

[次へ]をクリックすると、[プログラム一覧]ダイアログが表示されます。


コンポーネントビルダ WIB 処理一覧

処理一覧

Webサービス > Webサービスインタフェースビルダ

[処理一覧]ダイアログには、Webサービスとして定義されたプログラムが表示されます。

この一覧は、入力順に表示されます。一覧内の全ての処理は、WSDLに追加されます。

ここには、以下の２つのボタンがあります。

  • 新規 ……[Webサービス処理の詳細]ダイアログが開きます。ここでプログラムを追加することができます。

  • 削除 ……一覧内で選択した処理を削除します。

  • 特性 ……[Webサービス処理の詳細]ダイアログが開きます。ここでは、WSDLファイルに追加する処理の詳細情報の表示／修正を行うことができます。

[次へ]をクリックすると、[WSDLコンポーネントの作成]ダイアログが表示されます。


コンポーネントビルダ WIB プログラム一覧

プログラム一覧

Webサービス > Webサービスインタフェースビルダ

選択可能なプログラムは、公開名が定義されたバッチプログラムで、[外部]カラムがチェックされているものです。WSDLに追加したいプログラムをここで選択してください。

[次へ]をクリックすると、[処理一覧]に移動します。


コンポーネントビルダ WIB 処理の詳細

Webサービス処理の詳細

Webサービス > Webサービスインタフェースビルダ

ここでは、処理の詳細情報を定義することができ生ます。

  • プログラム …… ここには、Magicのプログラム名が表示されます。表示のみで入力はできません。ボタンをクリックして、[有効な処理一覧]ダイアログを表示することでプログラムを選択することができます。
    このプログラムのパラメータ（または、戻り値）の１つはOLEかActiveX、またはベクトルである場合、[OK]ボタンが無効になり、エラーメッセージが表示されます。このプログラムのパラメータは無効で、処理として定義できません。

  • 戻り値 …… Webサービス処理の戻り値です。

パラメータテーブル

ここには、選択されたプログラムのパラメータが表示されます。詳細を変更することができます。WSDLタイプへパラメータの初期割り当ては、デフォルトの割り当てテーブルに基づいて表示されます。

  • パラメータ名 …… パラメータの名前です。小文字や、数字、およびアンダーバ以外の文字は、アンダーバに変換されます。パラメータ名を修正後に、変換処理が実行されます。

  • タイプ …… Magicのデータ型に対するWSDLのデータタイプがコンボボックスで表示されます。

  • データ型がBlob型の場合、[添付]と呼ばれるコンボボックスのエントリが追加されます。

  • データ型が、文字型やUnicode型、Blob型の場合、「ドキュメント」と呼ばれるエントリが追加されます。「ドキュメント」が選択された場合、[参照]ボタンを押下すると[スキーマ形式ドキュメント]ダイアログが表示されます。

  • 方向 ……３つのオプションが表示されるコンボボックスです。

  • IN …… パラメータの値は、値渡しで渡されます。

  • IN/OUT …… パラメータの値は、参照渡しで渡されます。

  • XSDタイプ …… WSDLタイプのデフォルト割り当てに基づくビルダは、Magicのデータ型との割り当てを定義します。ユーザはこのカラムを修正することができます。

数値型 | xsd:long - （Int型のパラメータ/戻り値に対するデフォルトです。） xsd:int xsd:short xsd:unsignedLong xsd:unsignedInt xsd:unsignedShort xsd:double - （非Int型のパラメータ/戻り値に対するデフォルトです。） xsd:float
文字型 | xsd:string
Unicode型 | xsd:string
論理型 | xsd:boolean
Blob型 | 'XML Document' （開発者は、別のダイアログボックスでスキーマと要素名を選択します。） Attachment （WSDL内でなく、補完するXMLに定義されます。） xsd:base64Binary （デフォルト） xsd:string
日付型 | xsd:int
時刻型 | xsd:int


コンポーネントビルダ WIB 有効な処理一覧

プログラム一覧

Webサービス > Webサービスインタフェースビルダ

このダイアログボックスには、左側にまだ選択されていないプログラムの一覧が表示されます。[追加]をクリックすることでWSDLファイルに追加したいプログラムを選択することができます。


コンポーネントビルダ WIB スキーマ形式ドキュメント

スキーマ形式ドキュメント

Webサービス > Webサービスインタフェースビルダ

このダイアログは、Unicode型、文字型、およびBlob型のパラメータに対して有効です。ルートは、既存のXSDスキーマから選択される場合があります。

  • 位置 …… WSDLファイルの場所を指定します。

  • 要素 …… 選択されたWSDL内のすべてのルート要素が一覧表示されます。

Webサービスを生成するパスを定義することができます。パスが指定されない場合、[OK]ボタンは無効になります。指定された出力ファイルがすでに存在している場合、ファイルを上書きする[確認]ダイアログが表示されます。


コンポーネントビルダ WIB コンポーネントの作成

WSDLコンポーネントの作成

Webサービス > Webサービスインタフェースビルダ

このダイアログボックスは、WSDLコンポーネントの概要が表示されます。エラーがない場合、[終了]ボタンが有効になります。[終了]ボタンをクリックすると、[コンポーネントの状態]ボックスが表示されます。

エラーがある場合、[終了]ボタンが無効となり、該当するメッセージがダイアログボックスの下に表示されます。

パブリッシュサービスウィザードを進めるのチェックボックスをチェックした場合、[UDDIサーバを提供]ダイアログが表示され、UDDIに登録するWebサービスをパブリッシュすることができます。

メッセージボックスが、WSDLコンポーネントが作成されているかどうかを知らせるために表示されます。処理の完了後、WSDLコンポーネントが作成されなくても、ウィザードは終了します。


コンポーネントビルダ WIB コンポーネントの状態

コンポーネントの状態

Webサービス > Webサービスインタフェースビルダ

ここには、コンポーネント作成処理の状態が表示されます。

コンポーネントの作成に成功した場合、その旨のメッセージが表示され、ウィザードは終了します。

[>>]ボタンをクリックすると、以下の詳細が表示されるダイアログボックスを開きます。

  • Webサービスのアドレス

  • 作成されたJARファイル

コンポーネントの作成に成功した場合、その旨のメッセージが表示され、ウィザードは終了します。


SOAPサーバリクエスト

Webサービス >

Webサービス機能をサポートするmgrqsoap.dllファイルをロードする場合は、MGREQ.INIファイルのMGSRVR06行からセミコロンを取り除いてください。mgrqsoap.dll ファイルがMagicとSOAPサーバの間のメッセージの送受信を処理します。


接続性

Magicプロジェクトと他のアプリケーション間を接続する機能には､「ドラッグ&ドロップ」や「メール機能」などがあります。


ドラッグ&ドロップ

接続性 >

ドラッグ＆ドロップ機能は、同一PC上のMagicプロジェクトと他のアプリケーション間やMagicプロジェクト間でサポートされています。ドラッグ＆ドロップすることによって、標準的なWindowsアプリケーションのようにデータの受け渡しができるようになります。

参照

ドラッグ開始イベント

ドロップイベント

ドラッグ許可コントロール特性

ドロップ許可コントロール特性

ドラッグ＆ドロップ関数

ドロップデータサポート・ユーザフォーマット

ドラッグ&ドロップの動作

ドラッグ＆ドロップ使用時の考慮事項


ドラッグ&ドロップ ドラッグ開始

ドラッグ開始イベント

Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧
接続性 > ドラッグ&ドロップ

「ドラッグ許可」特性が「Yes」 に設定されたコントロール上でマウスの左ボタンをクリックし、その状態でマウスポインタを移動させることで、コントロールをドラッグさせることができます。

ドラッグ処理が始まると、以下に示すように、 Magic エンジンは、ドラッグ処理が行われるコントロールのタイプに従ってドラッグするデータを自動的に設定することができます。

コントロールタイプ | データ | フォーマット
エディット | マークされたテキスト | テキスト
テキスト | データは自動的に設定されない | N/A
プッシュボタン | データは自動的に設定されない | N/A
チェックボックス | データは自動的に設定されない | N/A
ラジオボタン | 選択項目の表示値 | テキスト
タブ | 選択項目の表示値 | テキスト
リストボックス | 選択項目の表示値 | テキスト
コンボボックス | 選択項目の表示値 | テキスト
スタティック（グループ、四角、など） | データは自動的に設定されない | N/A
テーブル | データは自動的に設定されない | N/A
イメージ | データは自動的に設定されない | N/A
ツリー | データは自動的に設定されない | N/A

「データは自動的に設定されない」と説明されているコントロールでは、以下の方法でユーザ定義ハンドラを作成することで対応できます。このハンドラでは、タスクデータを処理したり、ドラッグ操作やドラッグ＆ドロップ関数の機能が有効になるように[ドラッグ開始]イベントをトリガとして定義します。

  • DragSetData関数を使用して、ドラッグ処理データをコントロールします。

  • DragSetCrsr関数を使用して、ドラッグ処理コマンドアイコンをコントロールします。

レコードがマークされた[テーブル]コントロール上でドラッグ処理を実行すると、[ドラッグ開始]イベントがマークされたレコード毎に発行されます。

参照

ドロップイベント

ドラッグ許可特性

ドロップ許可特性

ドラッグ＆ドロップ関数


ドラッグ&ドロップ ドロップ開始

ドロップイベント

接続性 > ドラッグ&ドロップ

[ドロップ許可] 特性が 「Yes」 に設定されたコントロールでマウスの左ボタンを離すことで、コントロールのドロップ処理が可能です。[ドロップ]イベントをトリガとしたユーザ定義ハンドラを作成することで、タスクデータを処理し、以下のようにドロップ処理を行うことができます。

  • DropFormat 関数を使用した現在のドラッグ & ドロップ処理の有効／無効の確認

  • DropGetData 関数を使用した定義フォーマットのデータの取得

  • DropMouseX および、DropMouseY 関数を使用したドロップ処理時のマウス カーソルの位置の取得

参照

ドラッグイベント

ドラッグ許可特性

ドロップ許可特性

ドラッグ＆ドロップ関数

ドラッグ&ドロップの動作

ドロップデータサポート・ユーザフォーマット


ドラッグ&ドロップ 関数

ドラッグ＆ドロップ関数

接続性 > ドラッグ&ドロップ

タスクデータを処理したり、ドラッグ＆ドロップ操作を有効にするため以下の関数を使用することができます。

DragSetCrsr | 指定したカーソルファイルがドラッグ操作によってコピー可か否かのモードとして定義します。
DragSetData | 自動的にドラッグ処理されないコントロールのデータ内容やフォーマットを定義します。また、異なるデータフォーマットにデータ内容を割り当てます。
DropFormat | 定義されたデータフォーマットがMagicの Drop関数でサポートされているかどうかを確認します。
DropGetData | 定義されたフォーマットでドラッグしたデータを取り出します。
DropMouseX | ドラッグしたデータをドロップした時のフォームの X座標（フォームの寸法単位）値を返します。
DropMouseY | ドラッグしたデータをドロップした時のフォームのY座標（フォームの寸法単位）値を返します。

参照

ドラッグ開始イベント

ドロップイベント

ドラッグ許可特性

ドロップ許可特性

ドロップデータサポート・ユーザフォーマット

ドラッグ&ドロップの動作

ドラッグ&ドロップ使用時の考慮事項


ドラッグ&ドロップ 動作

ドラッグ&ドロップの動作

接続性 > ドラッグ&ドロップ

アプリケーションの実行中、ドラッグ＆ドロップ処理によってエンジンは以下のように動作します。

ドラッグが許可されていないか、パークしないコントロール

ドラッグが許可されていないコントロ－ルはドラッグできませんが、パークできないコントロールでのドラッグは可能です。

伝播特性

ユーザによって定義された[ドラッグ開始]イベントのハンドラの[伝播]特性が「No」に設定されている場合、ドラッグデータ自動処理は実行されません。

ユーザによって定義された[ドロップ]イベントのハンドラの[伝播]特性が「No」に設定されている場合、ドロップデータ自動処理は実行されません。

[エディット]コントロールの自動処理

[エディット]コントロールの場合、コントロール上でドロップすると、Magicはドラッグデータの内容を基に自動的に更新処理を実行します。

ドラッグ許可＆ドロップ許可特性を持つコントロール

[ドラッグ許可]と[ドロップ許可]特性を持つコントロールには以下のものがあります。

  • フォーム（[ドロップ許可]特性のみ）

  • エディット

  • テキスト

  • プッシュボタン

  • チェックボックス

  • ラジオボタン

  • タブ

  • リストボックス

  • コンボボックス

  • スタティック（グループ、四角 など）

  • テーブル

  • イメージ

  • ツリー

ドラッグ＆ドロップ許可特性のないコントロール

[ドラッグ許可]と[ドロップ許可]特性を持たないコントロールには以下のものがあります。

  • スライダ

  • RTFエディット

  • RTF

  • OLE

  • ActiveX

参照

ドラッグ開始イベント

ドロップイベント

ドラッグ許可特性

ドロップ許可特性

ドラッグ＆ドロップ関数

ドロップデータサポート・ユーザフォーマット

ドラッグ&ドロップ使用時の考慮事項


接続性 ドラッグ&ドロップ 考慮事項

ドラッグ＆ドロップ使用時の考慮事項

接続性 > ドラッグ&ドロップ

ドラッグが許可されていないコントロ－ルはドラッグできませんが、パークできないコントロールでのドラッグは可能です。

ユーザによって定義された[ドロップ]イベントのハンドラの[伝播]特性が「No」に設定されている場合、データのドラッグやドロップ自動処理は実行されません。

[エディット]コントロールのみ、コントロール上でドロップすると、Magicはドラッグデータの内容を基に自動的に更新処理を実行します。

ドラッグ処理の結果として、ドロップイベントの範囲内で検索されるユーザ定義フォーマットの名前を指定する必要があります。


メール機能

接続性 >

Magicは、メールの送信用にSMTPを、受信用にPOP3やIMAPをサポートしたメール関数が提供されています。

また、メールサーバへの接続やメール処理のためのタイムアウト値を設定することもできます。

参照

メール関数

メール環境の設定


メール機能 環境設定

メール環境の設定

接続性 > メール関数

メールサーバとの接続やメール操作のために、[動作環境]ダイアログでタイムアウトの設定を行うことができます。

メール接続タイムアウト (デフォルト: 0)

MailConnect関数でメールサーバに接続する場合のタイムアウトを秒で指定します。もし指定した秒数以内に接続できない場合は、MailConnect関数は、エラーコードを返します。

0 の場合は、5秒です。

変更の反映: 即時

MAGIC.INIとコマンドラインでの名前: MailConnectionTimeout

メール処理タイムアウト (デフォルト: 0)

メール関数が処理する場合のタイムアウトを秒で指定します。もし指定した秒数以内に処理が完了しない場合、メール関数はエラーコードを返します。

変更の反映: 即時

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

参照

メール関数


メッセージング

分散アプリケーション環境において、２つの異なるアプリケーションが情報を交換するには、相互に通信を行う必要があります。これを解決するひとつの方法としてメッセージキューイングがあります。

Magicは、MSMQ （Micorsoft） 、JMS （Java） 、WebSphere （IBM） の３つの標準的なメッセージングキューシステムに対応したインタフェースをもつメッセージングキューコンポーネントを提供しています。

参照

Magicのメッセージング機能

セットアップ

エラー

メッセージのテスト


メッセージング メッセージングとは

メッセージキューイングとはどのようなものか ?

メッセージング >

メッセージキューイングとは、アプリケーション間でメッセージを交換する場合、一旦サーバ上にデータを保管して相手の処理の完了を待つことなく次の処理を行う方式です。アプリケーションプログラムはメッセージキューを作成し、API （アプリケーションプログラムインタフェース） を使用してメッセージの送受信を行います。

アプリケーションは、メッセージキューにメッセージを送信する場合に応答を待つことなく、次の処理を継続させることができます。他のアプリケーションは、空いた時にメッセージを受け取り、そのデータに従って処理を行うようにできます。

メッセージキューは、プログラムのインスタンスが、システムで管理されたメッセージ待ち行列にインタフェースを使用して、データを交換することができる方法です(それはオペレーティングシステムによって管理されます)。

アプリケーションプログラムはメッセージ待ち行列を作成し、アプリケーションプログラムインタフェース(API)を使用して、メッセージを送受信します。

メセージング処理には２種類の型があります。Point to Point型とPublish/Subscriber型です。

Point to Point型

これは相手を特定した１対１通信です。送り手はキューという仮想的なチャネルにメッセージを送り、受け手はそのチャネルからメッセージを取得します。お互いに相手を意識する必要はありません。

Publisher/Subscriber型

これは特定の種類のメッセージを受け取りたい側（Subscriber）がメッセージサーバに対してメッセージ購読を申し込みます（サブスクライブといいます）。

メッセージを送りたい側（Publisher）は、誰に対して送るかは考えず、とりあえずメッセージサーバに対してメッセージを発行します（パブリッシュといいます）。それを受け取ったメッセージサーバは、メッセージの種類や属性をみて、そのメッセージを欲しがっている購読者に対してメッセージを送ります。（Magicコンポーネントを使用する場合は、メッセージの取得処理を実行する必要があります。）

２つの方法はどちらも、ユーザに対してメッセージの配信を保証するものです。

メソッドキューへの各アクセス（オープンやクローズ、送信など）は、コンポーネントプログラムを呼び出すことで実行されます。


メッセージング メッセージング接続

Magicのメッセージング機能

メッセージング >

コンポーネントは、サポートするメッセージキューイングシステムに対して、以下の4つの基本プログラムを提供しています。

  • キューのオープン

  • メッセージの送信

  • メッセージの読み込み

  • キューのクローズ

例えば、メッセージの読み込み処理を実行する場合は、最低限以下のプログラムを呼び出す必要があります。

  • キューのオープン

  • メッセージの読み込み

  • キューのクローズ

さらに、コンポーネントは、簡易送信用のプログラムを提供しています。これは、キューをオープンし、メッセージを送信し、キューをクローズする処理を全て行うものです。

「キューのオープン」プログラムは、オープンしたキューのハンドル値を返します。この値は、オープンしたキューにアクセスする場合に使用されます。

基本プログラムとは別に、各メッセージキューシステム用に応じた追加プログラムも提供しています。


メッセージング セットアップ

セットアップ

メッセージング >

メッセージングコンポーネントは以下のような2 つの論理名を使用します。通常は、コンポーネントを読み込むことで自動的に設定されますが、MAGIC.INI に設定されていない場合、追加する必要があります。

  • MessagingComponentDir …… メッセージングコンポーネントの場所を指定します。この論理名は、「\」で終了させます。

  • MessagingErrorLogFile …… エラーログファイル名を指定します。ファイルは、「MessagingComponentDir」に作成されます。


メッセージのテスト

メッセージング >

メッセージングコンポーネントを実行している場合、[ツール]メニューで[メッセージのテスト]のオプションが有効になります。この機能によって、各メッセージングシステムの接続確認を行うことができます。

各メッセージングシステムのテストに関する情報に関しては、以下のトピックを参照してください。

MSMQ

JMS

WebSphere MQ


メッセージング バージョン

コンポーネントのバージョン

メッセージング >

コンポーネントのバージョンを確認する場合は、以下に説明するコンポーネントプログラムを呼び出してください。

Version

メッセージングコンポーネントのバージョンを返します。

戻り値 …… 文字（20）：バージョン番号が返ります。


MSMQ

MSMQとの接続

メッセージング >

Magic のMSMQ メッセージングコンポーネントは、MagicプロジェクトがMicrosoft Messaging Queue（以下MSMQ と略します）との間でメッセージの送受信を行うようにするものです。このドキュメントは、MSMQ をサポートするMagic のメッセージング機能について説明するもので、MSMQ の基礎的な知識を持っている事を想定して記述しています。

MSMQ との接続用のコンポーネントを利用する場合は、Messaging サブフォルダ上のMSMQ.eci を使用してコンポーネントを組み込んでください。

参照

必要条件

コンポーネントプログラム

列挙コード一覧ユーティリティ

メッセージセットアップテーブル

メッセージのテスト


MSMQ 必要条件

必要条件

メッセージング > MSMQ との接続

MSMQメッセージング用コンポーネントを有効にするには、MSMQクライアント／サーバ用ソフトをMagicがインストールされているPCにインストールする必要があります。


MSMQ コンポーネントプログラム

コンポーネントプログラム

メッセージング > MSMQ との接続

ここでは、MSMQにアクセスするためのコンポーネントプログラムとパラメータについて説明します。

プログラム名の先頭には、「MSMQ」という文字が付いています。またパラメータ名の前に入力用の場合は、「i」、出力用の場合は「o」が付いています。

MSMQ Open Queue

MSMQ Close Destination

MSMQ Send Message

MSMQ Quick Send Message

MSMQ Read Message

MSMQ Begin Transaction

MSMQ Commit Transaction

MSMQ Rollback Transaction

MSMQ Message Setup

MSMQ Setup Numeric Picture

MSMQ Fetch References


MSMQ コンポーネントプログラム OpenQueue

MSMQ Open Queue

メッセージング > MSMQ との接続 > コンポーネントプログラム

メッセージキューをオープンし、キューのハンドルを返します。

パラメータ

説明

Queue Format Name

数値（1）／入力：キューを参照する際に使用する形式名を表します。

  • 0 …… 直接形式名(OS指定)

  • 1 …… 直接形式名(IPアドレス指定)

  • 2 …… パブリック形式(Public)

  • 3 …… 専用形式名(Private)

Computer Address

文字列 （250）／入力：[Queue Format Name]の内容によって指定する値が異なります。

  • Queue Format Name=0 …… ホスト名

  • Queue Format Name=1 …… IP アドレス

  • Queue Format Name=2 …… （空白）

  • Queue Format Name=3 …… コンピュータ識別子

Queue Name

文字列（250）／入力：オープンする、キューの名前を表す文字列。[Queue Format Name]の内容によって指定する値が異なります。

  • Queue Format Name=0 …… キュー名

  • Queue Format Name=1 …… キュー名

  • Queue Format Name=2 …… キューGUID

  • Queue Format Name=3 …… キュー番号

Access method

文字（1） ／入力：アクセス処理を表す文字

  • V …… メッセージを読み、キューに残す。

  • W …… メッセージをキューに書き込む。

  • R …… メッセージを読み、キューから削除する。

Share method

文字（1）／入力：キューの共有方法を表す文字

  • A …… 共有可能です。[Access method]が「W」、または「V」の場合この設定にしてください。

  • W …… 他のセッションは、このキューを読み出せません。

戻り値

数値（18）：接続が成功した場合、キューのハンドル値が返されます。接続が成功しない場合は、負の値（エラーコード）が返され、エラーがError Log に書き込まれます。


MSMQ コンポーネントプログラム CloseDestination

MSMQ Close Destination

メッセージング > MSMQ との接続 > コンポーネントプログラム

メッセージキューをクローズして、キューメモリテーブル上のエントリを削除します。

パラメータ | 説明
Queue Handle | 数値（18）／入力：クローズするキューのハンドル（オープン時に返された数値）

戻り値

数値（17）：処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


MSMQ コンポーネントプログラム SendMessage

MSMQ Send Message

メッセージング > MSMQ との接続 > コンポーネントプログラム

メッセージキューにメッセージを送信します。

パラメータ

説明

Queue Handle

数値（18）／入力：メッセージの送信先のキューのハンドル（オープン時に返された数値）

Message

BLOB／入力：メッセージデータ を含んだ RTF 形式の BLOB

Data type

文字（1）

  • A …… 文字

  • N …… 数値

  • D …… 日付： 日付（スペース）時間の書式になっているDateTime形式。（例： 31/12/2002 14:39:46）

  • L …… 論理：「1」がTrue 、それ以外は False になります。

  • V …… ベクトル（配列）：書式「3」の数値セルが定義された Magicのベクトル型です。ベクトルデータを渡す場合は、一旦BLOB項目にデータを渡してからパラメータに指定してください。

  • B …… BLOB

Picture

文字列（30）／入力（オプション）：Magicの項目の書式。VARPIC関数を使用して送ることができます。このパラメータは、データ型が 「N」 の時だけ指定する必要があります。

Transaction Mode

文字（1） ／入力

  • N ……トランザクションなし

  • S …… 単一メッセージトランザクション

  • T …… 定義されたトランザクション内

Transaction Handle

数値（18）／入力（オプション）：「Begin Transaction」プログラムから返された数値を指定します。定義されたトランザクション内を指定した場合はこの値を指定する必要があります。

Correlation Id

ベクトル ／入力（オプション）：送信／応答用。書式「3」の数値セルが定義された Magicのベクトル型です。20のセルを渡します。

Message Id

ベクトル／出力：書式「3」の数値セルが定義された Magicのベクトル型です。20のセルが返ります。

戻り値

数値（17）：処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。

注意：

XMLファイルは、文字列として送信されます。


MSMQ コンポーネントプログラム QuickSendMessage

MSMQ Quick Send Message

メッセージング > MSMQ との接続 > コンポーネントプログラム

メッセージキューをオープンし、メッセージを送り、メッセージキューをクローズします。このプログラムは、簡単にメッセージを送りたい場合は有効ですが、大量のメッセージを送る場合は、効率的ではありません。

このプログラムは、「Open Queue」、「Message Setup」、「Send message」の各プログラムを順に呼び出します。

パラメータ

説明

Queue Format

数値（1） ／入力：キューの参照に使用する名前を表す数値

  • 0 …… 直接形式(OS指定)

  • 1 …… 直接形式(IPアドレス指定)

  • 2 …… パブリック形式(Public)

  • 3 …… 専用形式(Private)

Computer Name

文字列（250）／入力：[Queue Format Name]の内容によって指定する値が異なります。

  • Queue Format Name=0 …… ホスト名

  • Queue Format Name=1 …… IP アドレス

  • Queue Format Name=2 …… （空白）

  • Queue Format Name=3 …… コンピュータ識別子

Queue Name/
GUID/
Number

文字列（250） ／入力：オープンする、キューの名前を表す文字列。[Queue Format Name]の内容によって指定する値が異なります。

  • Queue Format Name=0 …… キュー名

  • Queue Format Name=1 …… キュー名

  • Queue Format Name=2 …… キューGUID

  • Queue Format Name=3 …… キュー番号

Message

BLOB／入力：メッセージデータ を含んだ RTF 形式の BLOB

Data Type

文字（1）

  • A …… 文字

  • N …… 数値

  • D …… 日付： 日付（スペース）時間の書式になっているDateTime形式（例： 31/12/2002 14:39:46）

  • L …… 論理

  • V …… ベクトル（配列）：書式「3」の数値セルが定義された Magicのベクトル型です。

  • B …… BLOB：配列として分類され送信されます。

  • O …… オブジェクト：このまま送信されます。

Picture

文字列（25）／入力（オプション）：Magicの項目の書式。VARPIC関数を使用して送ることができます。このパラメータは、データ型が 「N」 の時だけ指定する必要があります。

Message Setup BLOB

BLOB／入力：メッセージセットアップテーブルをBLOB化した値

Transaction Mode

文字（1） ／入力

  • N ……トランザクションなし

  • S …… 単一メッセージトランザクション

  • T …… 定義されたトランザクション内

Transaction Handle

数値（18） ／入力（オプション）：「Begin Transaction」プログラムから返された数値を指定します。定義されたトランザクション内を指定した場合はこの値を指定する必要があります。

Correlation Id

ベクトル ／入力（オプション）：送信／応答用。書式「3」の数値セルが定義された Magicのベクトル型です。20のセルを渡します。

Message Id

ベクトル／出力：書式「3」の数値セルが定義された Magicのベクトル型です。20のセルが返ります。

戻り値

数値（17）：処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


MSMQ コンポーネントプログラム ReadMessage

MSMQ Read Message

メッセージング > MSMQ との接続 > コンポーネントプログラム

メッセージを受け取ったり、データ型を返したりします。

パラメータ

説明

Queue Handle

数値（18） ／入力：メッセージの送信先のキューのハンドル（オープン時に返された数値）

Timeout

数値（5）／入力（ミリ秒）： コンポーネントがメッセージを待つ時間を指定します。（-1） を指定すると、キューにメッセージがあるまで待つことになります。これは受信側で設定します。

Transaction Mode

文字（1）／入力

  • N ……トランザクションなし

  • S …… 単一メッセージトランザクション

  • T …… 定義されたトランザクション内

Transaction Handle

数値（18） ／入力（オプション）：「Begin Transaction」プログラムから返された数値を指定します。定義されたトランザクション内を指定した場合はこの値を指定する必要があります。

Numeric Picture

文字列（30） ／入力（オプション）：Magicの項目の書式。VARPIC関数を使用して送ることができます。このパラメータは、データ型が「N」 の時だけ指定する必要があります。この値が空白の場合、パラメータは渡されず、グローバルなデフォルト値が使用されます。この指定は、数値書式のセットアップユーティリティの指定で上書きされます。

Message Identifier

数値（9）／入力（オプション）：このパラメータが渡されると、コンポーネントは全てのメッセージをスキャンし、渡された値と等しいプロパティを持ったメッセージを見つけるまでAppSpecific プロパティを検索します。

Message LookupId

文字（40）／入力（オプション）：このパラメータが渡されると、コンポーネントはLookupId プロパティに応答するメッセージをフェッチします。MSMQ 3.0（Windows XP） 以上でのみ有効です。

Convert Vector to BLOB

論理／入力：このパラメータは、配列データを BLOB に変換するようにコンポーネントに指示します。受信したメッセージが配列（ベクトル型）の場合のみ関係します。この値が「True」の場合、BLOB が返され、Blb2File 関数でファイルに保存できます。

Message

BLOB／出力：メッセージデータを含んだRTF形式のBLOB

Data type

文字（1）／出力

  • A …… 文字

  • N …… 数値

  • D …… 日付： 「日付（スペース）時間」の書式になっているDateTime形式（例： 2002/12/31 14:39:46）

注意：日付が送られない場合、日付の一部は 1899/12/31になります。

  1. L …… 論理

  2. V …… ベクトル（配列）：3桁の数値型セルを持つように定義された Magicのベクトル型です。

Correlation ID

ベクトル ／入出力（オプション）：送信／応答用。書式「3」の数値セルが定義された Magicのベクトル型です。20のセルを渡します。

入力の場合は、このIDに合ったメッセージのみ送信されます。

Message ID

ベクトル ／出力（オプション）：書式「3」の数値セルが定義された Magicのベクトル型です。20のセルを渡します。

ここに設定された項目に、送信されたメッセージのメッセージＩＤが格納されます。

戻り値

数値（17）：処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。

参考

Ackキューのメッセージを読むこともできます。この場合、Ackメッセージは、通常のメッセージとして返されます。

この方法は、MsgClass特性が「0」でない場合に有効です。Ackメッセージと送信メッセージを照合するためには、「Correlation ID」を使用しなけばなりません。


MSMQ コンポーネントプログラム BeginTransaction

MSMQ Begin Transaction

メッセージング > MSMQ との接続 > コンポーネントプログラム

このプログラムによって、MSMQトランザクションが開始されます。

パラメータ

説明

Transaction Type

文字（1） ／入力

  • I …… MSMQ内部の環境を使用します。

  • M …… Microsoft Transactional Server環境を使用します。

戻り値

数値 （17）：処理が成功するとトランザクションのハンドル値が返り、エラーが発生すると負の値が返ります。


MSMQ コンポーネントプログラム CommitTransaction

MSMQ Commit Transaction

メッセージング > MSMQ との接続 > コンポーネントプログラム

このプログラムは、トランザクションをコミットします。トランザクションを継続して使用する場合は、新しいトランザクションを開始しなくてはなりません。

パラメータ | 説明
Transaction handle | 数値（18） ／入力：「Begin Transaction」プログラムから返された数値を指定します。

戻り値

数値（17）：処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


MSMQ コンポーネントプログラム RollbackTransaction

MSMQ Rollback Transaction

メッセージング > MSMQ との接続 > コンポーネントプログラム

このプログラムは、トランザクションをロールバックします。トランザクションを継続して使用する場合は、新しいトランザクションを開始しなくてはなりません。

パラメータ | 説明
Transaction Handle | 数値（18） ／入力：「Begin Transaction」プログラムから返された数値を指定します。

戻り値

数値（15）：処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


MSMQ コンポーネントプログラム MessageSetup

MSMQ Message Setup

メッセージング > MSMQ との接続 > コンポーネントプログラム

デフォルトと異なるプロパティを設定してメッセージをセットアップします。MSMQ の場合、読み込み用にオープンされたキューに対する意味があまりありません。

パラメータ | 説明
Queue Handle | 数値（17）／入力：メッセージの送信先のキューのハンドル（オープン時に返された数値）
Message Setup BLOB | BLOB／入力：「メッセージセットアップテーブル」の内容をBLOB化したものを指定します。この中に MSMQプロパティが指定されています。

戻り値

数値（17）：処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


MSMQ コンポーネントプログラム SetupNumericPicture

MSMQ Setup Numeric Picture

メッセージング > MSMQ との接続 > コンポーネントプログラム

数値メッセージを受け取る場合、データをMagic の数値項目に変換する必要があります。このため、データの書式が何であるかをあらかじめ確認する必要があります。受信プログラムは、受け取ったメッセージのデータ型が数値の場合の書式を指定することができますが、指定しない場合はデフォルト値として 「N12.5Z」を使用します。「Setup Numeric Picture」 プログラムは、このデフォルト値を変更する場合に使用します。

パラメータ | 説明
Numeric Picture | 文字（30）／入力：数値型の書式を指定します。空白は指定できません。

戻り値

数値（15）：処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


MSMQ コンポーネントプログラム FetchReferences

MSMQ Fetch References

メッセージング > MSMQ との接続 > コンポーネントプログラム

ホストアプリケーションがサポートされない処理を実行する必要がある時、 このプログラムは、実際のMSMQ 接続ハンドルを返します。

パラメータ | 説明
Queue Handle | 数値（18）／入力：メッセージキューのハンドル（オープン時に返された数値）
MSMQ Queue Handle | 数値 （18）／出力

戻り値

数値（15）：処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


MSMQ 列挙コード一覧

列挙コード一覧ユーティリティ

メッセージング > MSMQ との接続

[ツール]メニューから列挙コード一覧ユーティリティを起動することで、エラーに対する独自のメッセージを定義することができます。メッセージデータは、Messaging.dat に保存されます。エラーコードは、MSMQの MsgClass特性から発行されます。

[エラーコードメッセージ]ウィンドウには、以下の4つのボタンがあります。

  • 保存 …… 変更内容を保存します。

  • 出力 …… エラーメッセージをテキストファイルに出力します。内部のエディタでこの内容を編集することができます。出力ファイル名を指定するダイアログが表示されます。

  • 入力 …… エラーメッセージを含んだテキストファイルを入力します。入力の際、エラーコードを基に照合します。このため、エラーコードの番号を変えないでください。

  • 閉じる …… ウィンドウを閉じます。

エラーメッセージを変更したい場合、出力／入力オプションを使用することは、効果的です。アップグレード時にエラー内容が上書きされないように、あらかじめテキストファイルに出力しておいてください。

MsgClass に関しては、MSMQのガイドを参照してください。


MSMQ セットアップテーブル

メッセージセットアップテーブル

メッセージング > MSMQ との接続

「MSMQ External Message Setup」という名前の公開テーブルです。

メッセージセットアップテーブルは、ホストアプリケーションとメッセージセットアップを作成するコンポーネント間のインタフェース用に使用します。このテーブルは、BLOBデータ化されて渡され、コンポーネントプログラムによってメモリテーブルに戻されます。

以下のカラムで構成されています。

カラム名

説明

Property Name

文字（30）：プロパティ名

プロパティについては、MSMQプロパティを参照してください。

Data Type

文字（1）

  • A …… 文字

  • N …… 数値

  • D …… 日付：これは、「日付（スペース）時間」の書式になっているDateTime（例： 2002/12/31 14:39:46）

  • L …… 論理

  • V …… ベクトル（配列）：３桁の数値型セルを持つように定義されています。

Property Data

BLOB：これはデータがどこにあるかを示します。

Delete

論理：データを削除するかどうかを指定します。


MSMQ セットアップテーブル プロパティ

MSMQプロパティ

メッセージング > MSMQ との接続 > メッセージセットアップテーブル

現在サポートされるプロパティは、以下の通りです。

Ack

AdminPath

AppSpecific

Delivery

Extension

Journal

Label

LookupId

MaxTimeToReachQueue

MaxTimeToReceive

Priority


MSMQ セットアップテーブル プロパティ Ack

Ack

メッセージング > MSMQ との接続 > メッセージセットアップテーブル > MSMQプロパティ

数値：

肯定応答メッセージのタイプを指定します。肯定応答が要求される時、管理キュー内にメッセージキューが入ります。

  • MQMSG_ACKNOWLEDGMENT_FULL_REACH_QUEUE …… メッセージがキューに渡ったか否かによって肯定または否定応答が入ります。メッセージの到達制限時間タイマの期限を超えた場合、否定応答が入ります。数値は、5 です。

  • MQMSG_ACKNOWLEDGMENT_NACK_REACH_QUEUE …… メッセージがキューに到達できなかった場合、否定応答が入ります。メッセージの到達制限時間タイマの期限を超えた場合、否定応答が入ります。数値は、4 です。

  • MQMSG_ACKNOWLEDGMENT_FULL_RECEIVE …… 受信までの到達制限時間タイマの期限を超える前に、メッセージがキューから取り出されるかどうかによって肯定または否定応答が入ります。数値は、14 です。

  • MQMSG_ACKNOWLEDGMENT_NACK_RECEIVE …… 受信までの到達制限時間タイマの期限を超える前に、メッセージをキューから取り出すことができない時、否定応答が入ります。数値は、12 です。

  • MQMSG_ACKNOWLEDGMENT_NONE …… （デフォルト）受信の成功、失敗にかかわらず肯定応答メッセージは入りません。数値は、0 です。


MSMQ セットアップテーブル プロパティ AdminPath

AdminPath

メッセージング > MSMQ との接続 > メッセージセットアップテーブル > MSMQプロパティ

文字：

Ackメッセージを送るAckキューを指定します。これは、Ack特性と連携して使用され、Ackキューがデフォルトと異なる場合にのみ使用します。

書式は以下の通りです。

<computer name>\<QueueType>\<Queue Name>

例

msmq_Comp\private$\ackQ


MSMQ セットアップテーブル プロパティ AppSpecific

AppSpecific

メッセージング > MSMQ との接続 > メッセージセットアップテーブル > MSMQプロパティ

数値：

アプリケーションによって生成される情報を指定します。これは、単一のメッセージやメッセージセットの識別に使用できます。


MSMQ セットアップテーブル プロパティ Delivery

Delivery

メッセージング > MSMQ との接続 > メッセージセットアップテーブル > MSMQプロパティ

数値：

PCが再起動した後に、メッセージがキュー残っているかどうか指定します。

  • ０ …… MQMSG_DELIVERY_EXPRESS:：（デフォルト）メッセージは残りません。

  • １ …… MQMSG_DELIVERY_RECOVERABLE ：メッセージは、PCの再起動後も残ります。


MSMQ セットアップテーブル プロパティ Extension

Extension

メッセージング > MSMQ との接続 > メッセージセットアップテーブル > MSMQプロパティ

ベクトル：

メッセージに関連付けられたアプリケーション定義の追加情報を指定します。3桁の数値型セルを持ったMagicのベクトルデータです。コンポーネントやMSMQでは、チェックされません。


MSMQ セットアップテーブル プロパティ Journal

Journal

メッセージング > MSMQ との接続 > メッセージセットアップテーブル > MSMQプロパティ

数値：

メッセージが送信先キューに送られた時に、メッセージキューでメッセージのコピーを保持するかどうかを指定します。

  • MQMSG_JOURNAL …… ポジティブなソースのジャーナル化を要求します。メッセージが次のコンピュータに正常に配信された場合は、メッセージのコピーがPCのコンピュータジャーナルに保存されます。しかし、配信に失敗した場合は、該当する配信不能キューにメッセージが保存されません。数値は2 です。

  • MQMSG_DEADLETTER …… ネガティブなソースのジャーナル化を要求します。メッセージの配信に失敗した場合は、該当する配信不能キューにメッセージを保存します。 これは、 MSMQ 3.0以上 で有効です。数値は1 です。

  • MQMSG_JOURNAL | MQMSG_DEADLETTER …… ポジティブなソースのジャーナル化とネガティブなソースのジャーナル化を要求します。メッセージの送信が成功した場合はコンピュータ ジャーナルにメッセージのコピーが保存され、失敗した場合は該当する配信不能キューに保存されます。これは、 MSMQ 3.0以上 で有効です。数値は3 です。

  • MQMSG_JOURNAL_NONE …… （デフォルト）ソースのジャーナル化は無効です。メッセージの送信が成功した場合でも、メッセージのコピーはコンピュータ ジャーナルに保存されず、失敗した場合も該当する配信不能キューに保存されません。 数値は0 です。


MSMQ セットアップテーブル プロパティ Label

Label

メッセージング > MSMQ との接続 > メッセージセットアップテーブル > MSMQプロパティ

文字列（250）：

メッセージの説明を指定する文字列です。


MSMQ セットアップテーブル プロパティ LookupId

LookupId

メッセージング > MSMQ との接続 > メッセージセットアップテーブル > MSMQプロパティ

文字列（40）：

メッセージの参照識別子を示します。ある特定のメッセージを読む場合にのみ有効です。また、MSMQ Ver3.0（XP） 以上でのみ有効です。


MSMQ セットアップテーブル プロパティ MaxTimeToReachQueue

MaxTimeToReachQueue

メッセージング > MSMQ との接続 > メッセージセットアップテーブル > MSMQプロパティ

秒数を表す数値（9）：

メッセージの送信キューへの到達制限時間。指定時間を経過した場合、 メッセージのキューは、メッセージと動作を放棄します。デフォルトは、90 日（7776000 秒）です。


MSMQ セットアップテーブル プロパティ MaxTimeToReceive

MaxTimeToReceive

メッセージング > MSMQ との接続 > メッセージセットアップテーブル > MSMQプロパティ

秒数を表す数値（9）：

メッセージを送信先キューから取得するまでの制限時間。この時間には、メッセージが送信先キューに到達するのに要する時間と、メッセージがアプリケーションによって取得されるまでにキュー内で待機する時間が含まれます。デフォルトは、 0（無制限）です。


MSMQ セットアップテーブル プロパティ Priority

Priority

メッセージング > MSMQ との接続 > メッセージセットアップテーブル > MSMQプロパティ

メッセージに対する優先順位を指定します。0～7 の間の数値で 0 が最も低い優先順位です。デフォルトは、「3」です。


MSMQ テスト

メッセージのテスト

メッセージング > MSMQ との接続

実行エンジンにて"Messaging\messaging.ecf"をオープンすると、[ツール]メニュー上で利用可能になります。各メッセージングシステムとの接続性を確認する場合に使用します。

[Test Messaging System]ダイアログより、以下の手順でメッセージングシステムの確認を行います。

  1. [Choose Messaging System]で[MSMQ]を選択します。

  2. [Computer Name]にホスト名を指定します。（IPアドレスではありません）

  3. [Queue Name]にキュー名（例えば、private$\Magic）を指定します。

  4. メッセージボックスに送信メッセージを入力し、[Send Message]ボタンをクリックします。

  5. [Read Message]ボタンをクリックすると、メッセージボックスにメッセージが返ります。


JMS

JMSとの接続

メッセージング >

Magicの JMS との接続機能は、MagicのプログラムがJava Messaging Service（以下 JMSと略します）との間でメッセージの送受信を行うようにするものです。

JMS との接続用のコンポーネントを利用する場合は、Messaging サブフォルダ上のJMS.eci を使用してコンポーネントを組み込んでください。

このドキュメントは、JMSをサポートするMagicのメッセージング機能について説明するもので、JMS の基礎的な知識を持っている事を想定して記述しています。

参照

必要条件

コンポーネントプログラム

バッファテーブル

メッセージのテスト

環境設定


JMS 必要条件

必要条件

メッセージング > JMS との接続

JMSメッセージングコンポーネントを使用するには、JMSのクライアントソフトをMagicがインストールしているPCにインストールする必要があります。


JMS コンポーネントプログラム

コンポーネントプログラム

メッセージング > JMS との接続

ここでは、JMSにアクセスするためのコンポーネントプログラムとパラメータについて説明します。

プログラム名の先頭には、「JMS」という文字が付いています。またパラメータ名の前に入力用の場合は、「i」、出力用の場合は「o」が付いています。

JMS Open Destination

JMS Close Destination

JMS Send Message

JMS Quick Send Message

JMS Read Message

JMS Unsubscribe

JMS Commit Transaction

JMS Rollback Transaction

JMS Setup Message

JMS Fetch References

JMS Define Codepage


JMS コンポーネントプログラム OpenDestination

JMS Open Destination

メッセージング > JMS との接続 > コンポーネントプログラム

メッセージキューをオープンし、キューのハンドルを返します。

パラメータ

説明

Connection Factory Name

文字（500）／入力：JMS接続ファクトリの名前。 キューに対してはキュー接続ファクトリであり、トピックに対してはトピック接続ファクトリとなります。

Queue Name

文字（500）／入力：オープンするキューまたはトピックの名前

User name

文字（25）／入力（オプション）：接続時のユーザ名

Password

文字（25）／入力（オプション）：接続時のパスワード

Transacted Operations

論理値／入力：セッションがトランザクション配下にあるかどうかを指定する論理値。「True」にするとトランザクションが自動的に開始されます。

AcknowledgeMode

数値（1）／入力：確認応答モードを指定します。

  • 1：AUTO_ACKNOWLEDGE …… セッションが receive の呼び出しからの復帰に成功するか、メッセージを処理するためにセッションが呼び出したメッセージリスナーが復帰に成功すると、セッションはクライアントのメッセージ受信を自動的に確認応答します。

  • 2： CLIENT_ACKNOWLEDGE ……クライアントは、メッセージの acknowledge メソッドを呼び出して処理済みのメッセージを確認応答します。処理済みのメッセージを確認応答すると、セッションが処理した全てのメッセージが確認応答されます。
    クライアントの確認応答モードを使用すると、クライアントは処理を実行している間に大量の未確認応答メッセージを構築する場合があります。JMS プロバイダはクライアントの過剰実行を制限する手段を管理者に提供して、クライアントがリソースを使い果たすのを防ぎ、使用中のリソースが一時的にブロックされた場合には確実に処理を失敗させる必要があります。

  • 3：DUPS_OK_ACKNOWLEDGE ……セッションに対し、メッセージ配信の遅延確認応答を指示します。この確認応答モードでは、JMS プロバイダに障害が発生するとメッセージが重複して配信される可能性が高いため、重複メッセージを許容可能なコンシューマのみで使用する必要があります。このモードを使用する場合、セッションが実行する作業を最小化して重複を防ぐことにより、セッションのオーバーヘッドを減少させることが可能です。

Message selector

文字（2000）／入力（オプション）：受信処理のみ有効です。どちらのメッセージを受信するか定義する「メッセージセレクタ」という文字列を指定できます。詳細は、 JMS API のドキュメントを参照してください。
メッセージセレクタは、送信処理時に[JMS.Type]や[Setup string]パラメータを指定することで送信されます。
例えば、送信時に[JMS.Type]パラメータで「Magic」と指定されたメッセージのみ受信する場合は、以下のように指定します。

例： JMSType = 'Magic'

注意事項： コンポーネントプログラム内で文字列のチェックは行われませんが、文字列が正しくない場合、JMSからエラーが返ります。

Topic ?

論理値／入力： オープン処理がキュー用かトピック用かを定義する論理値

Durable Subscription ?

論理値／入力： 恒久サブスクリプションかどうかを定義する論理値

Durable subscription name

文字（250）／入力： 恒久サブスクリプションの名前。恒久サブスクリプションがない場合必要となります。必須です。

Publish/Subscribe Options

文字（1）／入力：サブスクライバのタイミングを定義します。トピックの場合は必須です。

  • P …… パブリッシュ：必要ならばサブスクライバのみ開始されます。

  • S …… サブスクライバ：オープン処理中にサブスクライバが開始され、メッセージも送信できます。

戻り値

数値（15）：接続が成功した場合、キューハンドルが返されます。接続が成功しない場合は、負の値が返され、エラーがError Log に書き込まれます。


JMS コンポーネントプログラム CloseDestination

JMS Close Destination

メッセージング > JMS との接続 > コンポーネントプログラム

メッセージキューをクローズします。

パラメータ | 説明
Queue handle | 数値（18）／入力：クローズするキューのハンドル（オープン時に返された数値）

戻り値

数値（15）：接続が成功した場合、キューのハンドル値が返されます。接続が成功しない場合は、負の値（エラーコード）が返され、エラーがError Log に書き込まれます。


JMS コンポーネントプログラム SendMessage

JMS Send Message

メッセージング > JMS との接続 > コンポーネントプログラム

メッセージキューにメッセージを送信します。

パラメータ

説明

Queue Handle

数値（18）／入力：送信先のキューのハンドル（オープン時に返された数値）

Message type

文字（1）：JMSメッセージタイプを指定します。

  • T ……テキストメッセージ：XMLファイルのコンテンツのようなJava言語のStringオブジェクト

  • B …… バイトメッセージ：BLOB のようなバイナリデータストリーム

  • M …… マップメッセージ：名前が文字列、値がJavaプリミティブ型である複数の名前と値の組み合わせ。名前を指定することによって、順次にもランダムにも読み取ることができます。
    このタイプを指定した場合、バッファテーブルを使用してメッセージを送信します。詳細は、「バッファテーブル」を参照してください。

  • S …… ストリームメッセージ：Javaプリミティブ型のストリーム。データの順番は重要です。
    このタイプを指定した場合、バッファテーブルを使用してメッセージを送信します。詳細は、「バッファテーブル」を参照してください。

  • O …… オブジェクトメッセージ：シリアライズ可能なJavaオブジェクトの疑似参照を指定します。

  • H …… ヘッダメッセージ：メッセージ本文以外のメッセージヘッダとプロパティだけを含みます。

JMS のAPIには、「ヘッダメッセージ」というメッセージタイプは存在しません。Messageオブジェクトの疑似参照を送信することでそのメッセージのヘッダのみ送信されます。

Message

BLOB／入力：メッセージデータ を含んだ RTF 形式の BLOB。メッセージタイプが 「マップメッセージ」 か「ストリームメッセージ」の場合、メモリテーブルの内容をBLOBデータ化してください。詳細は、「バッファテーブル」を参照してください。

Correlation Id

文字（200） ／入力（オプション）：応答用相関IDを指定します。

Message Id

文字（200） ／出力：JMS から返されるメッセージIDが設定されます。

戻り値

数値（15）：処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


JMS コンポーネントプログラム QuickSendMessage

JMS Quick Send Message

メッセージング > JMS との接続 > コンポーネントプログラム

メッセージキューをオープンし、メッセージを送り、メッセージキューをクローズします。このプログラムは、簡単にメッセージを送りたい場合は有効ですが、大量のメッセージを送る場合は、効率的ではありません。

このプログラムは、「Open Queue」、「Message Setup」、「Send message」、「Close Queue」の各プログラムを順に呼び出します。

パラメータ

説明

Connection Factory

文字（250）／入力：JMS接続ファクトリの名前。 キューに対してはキュー接続ファクトリを、トピックに対してはトピック接続ファクトリを指定します。

Queue Name

文字（250）：オープンするキューまたはトピックの名前

Username

文字（25）／オプション：接続時のユーザ名

Password

文字（25）／オプション： 接続時のパスワード

Acknowledgement mode

数値（1）／入力：確認応答モードを指定します。

  • 1：AUTO_ACKNOWLEDGE ……セッションが receive の呼び出しからの復帰に成功するか、メッセージを処理するためにセッションが呼び出したメッセージリスナーが復帰に成功すると、セッションはクライアントのメッセージ受信を自動的に確認応答します。

  • 2：CLIENT_ACKNOWLEDGE …… クライアントは、メッセージの acknowledge メソッドを呼び出して処理済みのメッセージを確認応答します。処理済みのメッセージを確認応答すると、セッションが処理した全てのメッセージが確認応答されます。

  • 3：DUPS_OK_ACKNOWLEDGE …… セッションに対し、メッセージ配信の遅延確認応答を指示します。

JMS Message Type

文字（1）：JMSメッセージタイプを指定します。

  • T ……テキストメッセージ：XMLファイルのコンテンツのようなJava言語のStringオブジェクト

  • B …… バイトメッセージ：BLOB のようなバイナリデータストリーム

  • M …… マップメッセージ：名前が文字列、値がJavaプリミティブ型である複数の名前と値の組み合わせ。名前を指定することによって、順次にもランダムにも読み取ることができます。
    このタイプを指定した場合、バッファテーブルを使用してメッセージを送信します。詳細は、「バッファテーブル」を参照してください。

  • S …… ストリームメッセージ：Javaプリミティブ型のストリーム。データの順番は重要です。
    このタイプを指定した場合、バッファテーブルを使用してメッセージを送信します。詳細は、「バッファテーブル」を参照してください。

  • O …… オブジェクトメッセージ：シリアライズ可能なJavaオブジェクトの疑似参照を指定します。

  • H …… ヘッダメッセージ：メッセージ本文以外のメッセージヘッダとプロパティだけを含みます。

Message

BLOB（ 入力 ）：メッセージデータ を含んだ RTF 形式の BLOBデータ。メッセージタイプが 「マップメッセージ」 か「ストリームメッセージ」の場合、メモリテーブルの内容をBLOBデータ化してください。詳細は、「バッファテーブル」を参照してください。

JMS.TimeToLive

数値（9）／入力：メッセージの寿命をミリ秒で指定します。デフォルトは、0（無期限）です。

JMS.Priority

数値（1）／入力：デフォルトは 4。9が最も優先度が高くなります。

JMS.DeliveryMode

数値（1）／入力：恒久性を指定します。

  • 1 …… 恒久性なし：プロバイダがダウンした場合、メッセージは失われます。

  • 2 …… 恒久性あり：メッセージは失われません。デフォルトです。

JMS.Type

文字（200）／入力：メッセージのフィルタリングを行う場合に使用します。このパラメータに値を設定することで、受信側で指定されたメッセージのみを受け取るようすることができます。
例えば、 このパラメータを「Magic」と設定してメッセージを送信した場合、受信側の「OpenDestination」プログラムで[Message selector]を「JMSType = 'Magic'」と指定してキューをオープンし、メッセージの受信処理を行うと、このタイプのメッセージのみ受信対象となります。

Setup string

文字（2000）／入力：メッセージセレクタの Stringプロパティを指定します。Stringプロパティは名前と値の一対で一組の値となり、[Delimiter]パラメータで指定された区切り文字で分離されて送られます。
例えば、「Sender」というプロパティを設定し、その値として「Magic」を指定する場合は、「Sender!Magic」 となります（! が区切り文字になります）。この指定で送信されたメッセージを受信する場合のメッセージセレクタは、「Sender = 'Magic'」となります。
複数のプロパティを設定できます。

Delimiter

文字（5）／入力：[Setup string]パラメータの区切り文字を指定します。

Correlation Id

文字（200）／入力（オプション）：相関IDを指定します。

Message Id

文字（200）／出力：メッセージIDが返ります。

戻り値

数値（15）：処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


JMS コンポーネントプログラム ReadMessage

JMS Read Message

メッセージング > JMS との接続 > コンポーネントプログラム

メッセージを受け取ったり、返したり、 メッセージタイプを返したりします。

パラメータ

説明

Queue Handle

数値（15）／入力：メッセージの受信元のキューのハンドル（オープン時に返された数値）

Timeout

数値（5）／入力（ミリ秒）：コンポーネントがメッセージを待つ時間です。（0） を指定すると、キューにメッセージがあるまで待つことになります。これは、受信側で設定します。

Message

BLOB／入力：メッセージデータ を含んだ RTF 形式の BLOB。メッセージタイプが マップメッセージ か ストリームメッセージ の場合、メモリテーブルの内容をBLOBデータ化してださい。詳細は、「バッファテーブル」 セクションを参照してください。

Message Type

文字（1）：JMSメッセージタイプを指定します。

  • T ……テキストメッセージ：XMLファイルのコンテンツのようなJava言語のStringオブジェクト

  • B …… バイトメッセージ：BLOB のようなバイナリデータストリーム

  • M …… マップメッセージ：名前が文字列、値がJavaプリミティブ型である複数の名前と値の組み合わせ。名前を指定することによって、順次にもランダムにも読み取ることができます。
    このタイプを指定した場合、バッファテーブルを使用してメッセージを送信します。詳細は、「バッファテーブル」を参照してください。

  • S …… ストリームメッセージ：Javaプリミティブ型のストリーム。データの順番は重要です。
    このタイプを指定した場合、バッファテーブルを使用してメッセージを送信します。詳細は、「バッファテーブル」を参照してください。

  • O …… オブジェクトメッセージ：シリアライズ可能なJavaオブジェクトの疑似参照を指定します。

  • H …… ヘッダメッセージ：メッセージ本文以外のメッセージヘッダとプロパティだけを含みます。

Correlation Id

文字（200）／出力：メッセージの送信先で定義されます。

戻り値

数値（15）：処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


JMS コンポーネントプログラム Unsubscribe

JMS Unsubscribe

メッセージング > JMS との接続 > コンポーネントプログラム

恒久サブスクリプションをキャンセルします。

パラメータ | 説明
Queue Handle | 数値（18）／入力：キャンセルするキューのハンドル（オープン時に返された数値）

戻り値

数値：処理が成功した場合 0 、失敗した場合 負の数が返り、ErrorLog にエラーが書き込まれます。


JMS コンポーネントプログラム CommitTransaction

JMS Commit Transaction

メッセージング > JMS との接続 > コンポーネントプログラム

キューがトランザクションとしてオープンされた時、これをコミットし、JMS は自動的にトランザクションのコミット処理を開始します。

パラメータ | 説明
Queue Handle | 数値（18）／入力：コミットするキューのハンドル（オープン時に返された数値）

戻り値

数値（15）：処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


JMS コンポーネントプログラム RollbackTransaction

JMS Rollback Transaction

メッセージング > JMS との接続 > コンポーネントプログラム

キューがトランザクションとしてオープンされた時、これをアボートし、JMSは、自動的に　トランザクションのロールバック処理を実行します。キューがまだオープンされている場合、JMS は、自動的に新しいトランザクションを開始します。

パラメータ | 説明
Queue Handle | 数値（18）／（入力）：アボートするキューのハンドル（オープン時に返された数値）

戻り値

数値（15）：処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


JMS コンポーネントプログラム SetupMessage

JMS Setup Message

メッセージング > JMS との接続 > コンポーネントプログラム

デフォルトと異なるプロパティを設定してメッセージをセットアップします。このプロパティのいくつかは、JMSのメッセージングフィルタリング機能に対応します。一度設定されると、それ以降の送信処理で有効になります。

パラメータ

説明

Queue Handle

数値（18） ／入力：オープンプログラムから返された数値

Expiration

数値（9）／入力：メッセージの寿命をミリ秒で指定します。デフォルトは、0（無制限）です。

Priority

数値（1）／入力：デフォルトは 4。9が最も優先度が高く 0 が最も低くなります。

DeliveryMode

数値（1）／入力：恒久性を指定します。

  • 1 …… 恒久性なし：プロバイダがダウンした場合、メッセージは失われます。

  • 2 …… 恒久性あり：メッセージは失われません。デフォルトです。

JMS Type

文字（200）／入力：メッセージのフィルタリングを行う場合に使用します。このパラメータに値を設定することで、受信側で指定されたメッセージのみを受け取るようすることができます。
例えば、 このパラメータを「Magic」と設定してメッセージを送信した場合、受信側の「OpenDestination」プログラムで[Message selector]を「JMSType = 'Magic'」と指定してキューをオープンし、メッセージの受信処理を行うと、このタイプのメッセージのみ受信対象となります。

String property value

文字（2000）／入力：メッセージセレクタの Stringプロパティを指定します。Stringプロパティは名前と値の一対で一組の値となり、[Delimiter]パラメータで指定された区切り文字で分離されて送られます。
例えば、「Sender」というプロパティを設定し、その値として「Magic」を指定する場合は、「Sender!Magic」 となります（! が区切り文字になります）。この指定で送信されたメッセージを受信する場合のメッセージセレクタは、「Sender = 'Magic'」となります。
複数のプロパティを設定できます。

Delimiter

文字（5）／入力：Stringプロパティ用の区切り文字

戻り値

数値（15）：処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


JMS コンポーネントプログラム FetchReferences

JMS Fetch References

メッセージング > JMS との接続 > コンポーネントプログラム

ホストアプリケーションがコンポーネントプログラムでサポートできない処理を実行する必要がある時、 このプログラムを使用して実際のJMSのオブジェクトの疑似参照を取得することができます。この疑似参照とMagicのJava関数を使用することで直接JMSのオブジェクトにアクセスすることができます。

パラメータ | 説明
Queue Handle | 数値（18）／入力：オープンプログラムから返される数値
Connection | BLOB／出力：Connectionオブジェクトの疑似参照が返ります。キューをオープンした場合はQueueConnection、トピックをオープンした場合はTopicConnectionになります。
Session | BLOB／出力：Sessionオブジェクトの疑似参照が返ります。キューをオープンした場合はQueueSession、トピックをオープンした場合はTopicSessionになります。
Destination | BLOB／出力：Destinationオブジェクトの疑似参照が返ります。キューをオープンした場合はQueue、トピックをオープンした場合はTopicになります。
Receiver/Subscriber | BLOB／出力：MessageConsumerオブジェクトの疑似参照が返ります。キューをオープンした場合はQueueReceiver、トピックをオープンした場合はTopicSubscriberになります。

戻り値

数値（15）：処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


JMS コンポーネントプログラム DefineCodepage

JMS Define Codepage

メッセージング > JMS との接続 > コンポーネントプログラム

通常使用するコードページと異なるデータを受信した場合に指定します。このプログラムを用いて、JMS を使用して作業をするための新しいコードページを定義します。

パラメータ | 説明
CodePage | 数値 （5）／入力：変更するコードページを示す数値


JMS バッファテーブル

バッファテーブル

メッセージング > JMS との接続

「JMS_MessageBuffer」という名前の公開テーブルです。

ホストアプリケーションと、マップメッセージとストリームメッセージ用のバッファを作成して逆アセンブルするコンポーネント間のインタフェースであるバッファテーブルは、実行時に以下のようなデータを含んでいる必要があります。

以下のカラムで構成されています。

カラム名

説明

Order

数値（4） ：テーブルのユニークなインデックスで、バッファフォーマットにおいて項目の順番を指定します。ストリームメッセージの場合は、項目はこの順番に送られます。マップメッセージの場合、このパラメータは無関係です。

Pair Name

文字（30）： ペア名かマップメッセージを表示します。ストリームメッセージには関係しません。

Name Size

数値（4）： 名前の長さ （ 名前に空白が使われる時は、重要になります） 。

Magic Datatype

文字（1）：Magicのデータ型を指定します。

  • A …… 文字

  • N …… 数値

  • L …… 論理

  • B …… BLOB（配列として処理されます。）

Magic Picture

文字（30）：Magicデータの書式を指定します。

Java Primitive Type

文字（2）：Java のプリミティブ型として以下の値が指定できます。

  • Bo …… Boolean

  • By …… Byte

  • Sh …… Short

  • Ch …… Char

  • In …… Int

  • Lo …… Long

  • Fl …… Float

  • Do …… Double

  • St …… String

  • Ar …… Byte Array （byte[]）

Object Value

BLOB


JMS テスト

メッセージのテスト

メッセージング > JMS との接続

実行エンジンにて"Messaging\messaging.ecf"をオープンすると、[ツール]メニュー上で利用可能になります。各メッセージングシステムとの接続性を確認する場合に使用します。

[Test Messaging System]ダイアログより、以下の手順でメッセージングシステムの確認を行います。

  1. [Choose Messaging System]で[JMS]を選択します。

  2. [Connection Factory]を指定します。

  3. [Queue Name]にキュー名（例えば、private$\Magic）を指定します。

  4. 必要であれば、[User]と[Password]を指定します。

  5. メッセージボックスに送信メッセージを入力し、[Send Message]ボタンをクリックします。

  6. [Read Message]ボタンをクリックすると、メッセージボックスにメッセージが返ります。


JMS 環境設定

環境設定

メッセージング > JMS との接続

使用するメッセージシステムのドキュメントを確認して、環境設定を行ってください。

以下の環境設定内容は、Java2 SDK Enterprise Edition（以下J2EE SDK） 1.3.xの場合の設定例です。メッセージングサーバ上で、JMS を使用する前に、Windows や Unix で J2EE アプリケーションを実行するために必要な以下のような環境変数を確認しておく必要があります

プラットフォーム | 環境変数 | 値
Microsoft Windows | %JAVA_HOME% | Java2 SDK(Standard Edition)がインストールされているディレクトリ
 | %J2EE_HOME% | J2EE SDK 1.3.1 がインストールされているディレクトリ (通常は、C:\j2sdkee1.3.1)
 | %CLASSPATH% | 以下を含めてください。 .;%J2EE_HOME%\lib\j2ee.jar;%J2EE_HOME%\lib\locale
 | %PATH% | %J2EE_HOME%\bin を含みます。
UNIX | $JAVA_HOME | Java2 SDK(Standard Edition)がインストールされているディレクトリ
 | $J2EE_HOME | J2EE SDK 1.3.1 がインストールされているディレクトリ (通常は、$HOME/j2sdkee1.3.1)
 | $CLASSPATH | 以下を含めてください。 ;$J2EE_HOME/lib/j2ee.jar;$J2EE_HOME/lib/locale
 | $PATH | $J2EE_HOME/bin を含めてください。
MAGIC.INI | CLASSPATH | .\JAVA_CLASSES を含めてください。
 | JVM_ARGS | 以下を含めてください。 -Djms.properties=c:\Java\j2sdkee1.3.1 \config\jms_client.properties
 | 注意： | c:\Java\j2sdkee1.3.1 は、J2EE_HOME のパスでなければなりません。


WMQ

WebSphere MQとの接続

メッセージング >

Magicの WebSphere MQ メッセージング機能は、Magic のプログラムが WebSphere MQ（以下 WMQと略します）との間でメッセージの送受信を行うようにするものです。このドキュメントは、WMQをサポートするMagicのメッセージング機能について説明するもので、WMQの基礎的な知識を持っている事を想定して記述しています。

WebSphere MQとの接続用のコンポーネントを利用する場合は、Messaging サブフォルダ上のWMS.eci を使用してコンポーネントを組み込んでください。

参照

必要条件

コンポーネントプログラム

バッファテーブル

メッセージのテスト

環境設定


WMQ 必要条件

必要条件

メッセージング > WebSphere MQ との接続

WebSphere MQメッセージングコンポーネントを使用するには、IBM WebSphere MQ V. 5.3のクライアントソフトがMagicがインストールしているPCにインストールする必要があります。

（メッセージングサーバは、すでに存在しているものとします。）


WMQ コンポーネントプログラム

コンポーネントプログラム

メッセージング > WebSphere MQ との接続

ここでは、WMQにアクセスするためのコンポーネントプログラムとパラメータについて説明します。

プログラム名の先頭には、「WMQ」という文字が付いています。またパラメータ名の前に入力用の場合は、「i」、出力用の場合は「o」が付いています。

WMQ.Open Destination

WMQ.Open Dynamic

WMQ Close Queue

WMQ Send Message

WMQ.Quick Send

WMQ.Get Message

WMQ.Unsubscribe

WMQ.Delete Publication

WMQ Commit Transaction

WMQ Rollback Transaction

WMQ Disconnect

WMQ Message Handle Setup

Get Language Encoding

Get Low-Hi Word Order

Analyze BLOB

WMQ_GetqueueInfo

WMQ.Global Setup

WMQ.Set Max Buffer Length

Get Text From Buffer

Set Text into Buffer

WMQ_BeginWMQLog

Set Activity Log File Name

Set Activity Log On/Off

Fetch Last Error

WMQ.Fetch Last Error

WMQ_CountMessages


WMQ コンポーネントプログラム OpenDestination

WMQ.Open Destination

メッセージング > WebSphere MQ との接続 > コンポーネントプログラム

メッセージキューをオープンし、キューのハンドルを返します。

パラメータ

説明

Queue Manager

文字（48）／入力：MQ キューマネージャの名前

Queue Name

文字（48）／入力：通常のメッセージング用にオープンするキュー名かパブリッシュやサブスクライブ用のブローカ名

Topic Name

文字（50）／入力：トピック名。パブリッシュかサブスクライブの場合のみ指定します。

Broker Stream

文字（50）／入力：ブローカストリーム。パブリッシュかサブスクライブの場合のみ指定します。（例： SAMPLE.BROKER.RESULTS.STREAM）

Queue Access Mode

文字（1）／入力：アクセスを表す文字

  • W …… 書込：メッセージがキューに書き込まれます。

  • R …… 読込：メッセージが読み込まれ、削除されます。

  • P …… パブリッシュ：メッセージがトピックに配信されます。

  • S…… サブスクライブ：メッセージがトピックに申し込みされます。

Share Mode

文字（1）／入力：キューの共有を表す文字列。

  • A …… キューは全てに利用可能

  • E …… 他のセッションは、このキューを読めません

Fetch Order

文字 （1）／入力

  • P …… 物理順：入力順

  • L …… 論理順：グループまたはトランザクションに依存します。パブリッシュ とサブスクライブでは意味がありません。

Message Fetch Mode

文字（1）／入力：読み込みメッセージの処理を指定します。

  • R …… 削除：メッセージは読み込まれた後削除されます。

  • B …… 参照メッセージは読み込まれますが削除されません。このオプションは、アクセスモードが R（読込） の場合のみ有効です。パブリッシュ とサブスクライブでは意味がありません。

Participate in Broadcast

論理値／入力：そのキューがメッセージブロードキャストに参加するかどうかを指定します。このパラメータは、メッセージ送信用にオープンしたキューのみ関係します。ブロードキャストを使用して、1つのメッセージが、パブリッシュのように、いくつかのオープンキューへ送信されます。

Subscription Scope

文字（1）／入力：サブスクリプションの有効範囲。 このパラメータはサブスクリプションのみ関係します。 指定できる値は以下の通りです。

  • L …… ローカルなパブリケーションがサブスクリプションと同じブローカキューから送信します。

  • G …… グローバルなパブリケーション

Receive On Request

論理値／入力：パブリケーションは、リクエストがあった場合のみ受信されます。このパラメータはパブリケーションのみ有効です。

Receive New

論理値／入力：パブリケーションは、サブスクライビングを行う場合サブスクリプションが受信される前に送信します。このパラメータは、サブスクリプションのみ有効です。

Unsubscribe on Close Queue

論理値／入力：このパラメータが「True」の場合、キューがクローズした時にコンポーネントが自動的にトピックから登録を取り消します。これは、コンポーネントがクローズするとトピックから登録を取り消すことを意味します。

Low-Hi order

論理値／入力（オプション）：番号の語順が書き込まれ、昇順に読み込むかどうかを指定します。Windowsの規格では「True」 、UNIX の規格では、降順なので「False」 になります。
このパラメータが渡されない時、フェッチされた値はグローバル設定から取得されます。詳細は、「環境設定」を参照してください。

Encoding

数値（1）／入力：文字項目のエンコードタイプ

  • 1 …… ANSI

  • 2 ……EBCIDIC

  • 3 ……UNICODE

Code Page

数値（5）／入力（オプション）：メッセージのエンコードで使用するコードページ。このパラメータが渡されない場合、フェッチされた値は、グローバル設定値から取得します。グローバルな値がグローバルセットアッププログラムか論理名で設定されていない場合、エラーが返されます。詳細は、「環境設定」を参照してください。

Correlation ID

BLOB／入力：サブスクリプションのみ有効です。このパラメータは、確実にサブスクライブされたメッセージの受信のみのフィルタを定義します。

指定できる最大サイズは、24バイトです。

Msg Persistence

文字（1）／入力：そのメッセージがシステム障害に耐えられるかどうかを示します。 サブスクリプションのみ有効です。

  • P …… 持続性あり。メッセージがシステム障害およびキュー・マネージャーの再始動後も存続することを意味します。

  • N …… 持続性なし。メッセージが通常はシステム障害およびキュー・マネージャーの再始動後は存続しないことを意味します。

  • D …… キューに依存します。

Subscription period

数値（10）／入力：メッセージの寿命をミリ秒で指定します。サブスクリプションのみ有効です。-1 の場合、無期限になります。

Disconnect on Close

論理／入力：メッセージの読み込みと書込で関係します。キューがクローズされた後でMQサーバへの接続をクローズします。同じキューマネージャでオープンされている他のキューもクローズする場合がありますので注意してください。

Remote Queue Manager

文字 (48)／入力：リモートキューマネージャの名前を指定します。このパラメータは、ローカルのキューマネージャへの接続時、指定されたリモートキューマネージャにメッセージを送信します。

戻り値

数値（18）：接続が成功した場合、キューハンドルが返されます。接続が成功しない場合は、負の値が返され、エラーがError Log に書き込まれます。


WMQ コンポーネントプログラム CloseQueue

WMQ Close Queue

メッセージング > WebSphere MQ との接続 > コンポーネントプログラム

メッセージキューをクローズします。

パラメータ | 説明
Queue Handle | 数値（18）／（入力）：クローズするキューのハンドル

戻り値

数値（17）：処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


WMQ コンポーネントプログラム SendMessage

WMQ.Send Message

メッセージング > WebSphere MQ との接続 > コンポーネントプログラム

メッセージキューにメッセージを送信します。

パラメータ

説明

Queue Handle

数値（18）／入力：オープンされたキューのハンドル値です。

Message

BLOB／入力：メッセージデータ を含んだバッファ形式の BLOB。[SetTextIntoBuffer]プログラムを使用することで文字項目をバッファ形式に変換できます。

Buffer Identifier index

数値（4）／入力：

  • 0 の場合、メッセージは、BLOB内になければなりません。

  • 0 より大きい場合、メッセージ構造と値はメモリテーブル（バッファテーブル）にあることになり、この値がインデックスになります。

詳細は、「バッファテーブル」を参照してください。

Transacted Msg

論理値／入力：「True」 の場合、メッセージはトランザクションの一部です。トランザクションがオープンされていない場合は、WMQ が自動的に開始します。

Message type

数値（1）／入力：メッセージのタイプを指定します。

  • 0 …… メッセージ（MQ データグラム）

  • 1 …… リクエスト

  • 2 …… 応答

コンポーネントは、指定された 送信タイプに従ってメッセージを送ります。このパラメータは、パブリッシュでは無効です。

Broadcast This Message

論理値／入力：キューのハンドルが送信されない場合（すなわち 0 の場合）、この値は「True」 にしなければなりません。その場合、同じメッセージが、ブロードキャスト用にオープンしている全てのキューに送信されます。詳細は、 [Open Destination]の[Participate in Broadcast]パラメータを参照してください。キューハンドルが送信され、値が「True」 の場合、エラーが作成されます。キュー送信されず、値が「False」 の場合、やはりエラーが作成されます。

Retain

論理値／入力：指定できる値は以下の通りです。

  • False …… メッセージは将来のサブスクライバ用に保存されません。

  • True …… メッセージは将来のサブスクライバ用に保存されます。

このパラメータは、パブリッシュのみ有効です。

Correlation ID

BLOB／入出力（オプション）：リクエスト メッセージの相関関係を確認します。共有されたキューにおける特定のサブスクライバのために サブスクリプションを確認します。

指定できる最大サイズは、24バイトです。

Message ID

BLOB／入出力（オプション）：このパラメータはメッセージ ID を返します。メッセージ IDが送信された場合、呼出しアプリケーションは ID を管理しなければなりません。

指定できる最大サイズは、24バイトです。

Reply 2 Queue Manager

文字（48）／入力（オプション）：応答が送信されるキューマネージャの名前。このパラメータは、リクエスト とパブリッシングのみ有効です。

Reply 2 Queue Name

文字（48）／入力（オプション）：応答が送信されるキューの名前。送信タイプリクエスト とパブリッシングのみ有効です。

Message Format

数値（2）／入力（オプション）：メッセージの書式を指定します。以下の値を指定します。

  • 0 …… フォーマットなし（デフォルト）

  • 1 …… MQ Series が変換を実行(MQSTR)

  • 2 …… Admin (MQADMIN)

  • 3 …… CHANNEL_COMPLETED (MQCHCOM)

  • 4 …… Dead letter header (MQDEAD)

  • 5 …… Trigger (MQTRIG)

  • 6 …… XMIT_Q_Header (MQXMIT)

戻り値

数値（17）：処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


WMQ コンポーネントプログラム QuickSend

WMQ.Quick Send

メッセージング > WebSphere MQ との接続 > コンポーネントプログラム

メッセージキューをオープンし、メッセージを送り、メッセージキューをクローズします。このプログラムは、簡単にメッセージを送りたい場合は有効ですが、大量のメッセージを送る場合は、効率的ではありません。

このプログラムは、「Open Queue」、「Message Setup」、「Send message」、「Close Queue」の各プログラムを順に呼び出します。

パラメータ

説明

Queue Manager

文字（48）／入力：MQ キューマネージャの名前

Queue Name

文字（48）／入力：キューの名前です。

Message Data

BLOB／入力：メッセージデータ を含んだバッファ形式の BLOB。[SetTextIntoBuffer]プログラムを使用することで文字項目をバッファ形式に変換できます。

Buffer Identifier index

数値（4）／入力

  • 0 の場合、メッセージは、BLOB内になければなりません。

  • 0 より大きい場合、メッセージ構造と値はメモリテーブル（バッファテーブル）にあることになり、この値がインデックスになります。

詳細は、「バッファテーブル」を参照してください。

Msg Persistence

文字（1）／入力：そのメッセージがシステム障害に耐えられるかどうかを示します。 サブスクリプションのみ有効です。

  • P …… 持続性あり

  • N …… 持続性なし

  • D …… キューに依存します。

Message ID

BLOB／入出力（オプション）：このパラメータはメッセージ ID を返します。メッセージ IDが送信された場合、呼出しアプリケーションは ID を管理しなければなりません。

指定できる最大サイズは、24バイトです。

Correlation ID

BLOB／入出力（オプション）：リクエスト メッセージの相関関係を確認します。共有されたキューにおける特定のサブスクライバのために サブスクリプションを確認します。

指定できる最大サイズは、24バイトです。

Group ID

BLOB：一緒に処理されるメッセージグループのID

指定できる最大サイズは、24バイトです。

Sequence Number

数値（10）：グループ内のメッセージのシーケンス番号を指定します。この値が 0 でグループID に値が設定されている場合、コンポーネントはエラーを返します。

Priority

数値（2）：メッセージの優先順位。デフォルトは 0 です。

Msg Life span

数値（10）：メッセージの寿命をミリ秒で指定します。サブスクリプションのみ有効です。-1 の場合、無期限になります。

Transacted Msg

論理値／入力：「True」 の場合、メッセージはトランザクションの一部です。トランザクションがオープンされていない場合は、Websphere MQ が自動的に開始します。

Message Format

数値（2）／入力（オプション）：メッセージの書式を指定します。以下の値を指定します。

  • 0 …… フォーマットなし（デフォルト）

  • 1 …… MQ Series が変換を実行(MQSTR)

  • 2 …… Admin (MQADMIN)

  • 3 …… CHANNEL_COMPLETED (MQCHCOM)

  • 4 …… Dead letter header (MQDEAD)

  • 5 …… Trigger (MQTRIG)

  • 6 …… XMIT_Q_Header (MQXMIT)

WMQ Error Code

数値（17）／出力：送信処理が失敗した場合、MQサーバの内部エラーコードが返ります。正常に終了した場合は、「0」が返ります。

戻り値

数値（17）：処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


WMQ コンポーネントプログラム GetMessage

WMQ.Get Message

メッセージング > WebSphere MQ との接続 > コンポーネントプログラム

メッセージを受け取ったり、データタイプを返したりします。

パラメータ

説明

Queue Handle

数値（18）／入力：オープン時に返された数値

TimeOut

数値（10）／入力（ミリ秒）：コンポーネントがメッセージを待つ時間です。（-1） の値は、無限 （ キューにメッセージがあるまで待つ ） を意味します。これは、リスナ側で設定します。

Message

BLOB／入力：メッセージデータ を含んだ RTF 形式の BLOB

Buffer Identifier Index

数値（4）／入力

  • 0 の場合、メッセージは、BLOB内になければなりません。

  • 0 より大きい場合、メッセージ構造と値はメモリテーブル（バッファテーブル）にあることになり、この値がインデックスになります。

詳細は、「バッファテーブル」を参照してください。

Transaction MSG

論理値／入力：「True」 の場合、メッセージはトランザクションの一部です。トランザクションがオープンされていない場合は、WMQ が自動的に開始します。

Message ID

BLOB／入出力（オプション）：このパラメータはメッセージ ID を返します。

指定できる最大サイズは、24バイトです。

Correlation ID

BLOB／入出力（オプション）：リクエスト メッセージの相関関係を確認します。共有されたキューにおける特定のサブスクライバのために サブスクリプションを確認します。

指定できる最大サイズは、24バイトです。

Group ID

BLOB／入出力（オプション）：一緒に処理されるメッセージグループのID

指定できる最大サイズは、24バイトです。

Seq Number

数値（10）／入出力（オプション）：グループ内のメッセージのシーケンス番号を指定します。この値が「0」で[Group ID]に値が設定されている場合、コンポーネントは、エラーを返します。

Message Type

数値（1）／出力

  • 1 …… リクエストメッセージ

  • 2 …… 応答メッセージ

  • 3 …… 通常メッセージ

  • 4 …… サブスクリプション

Returned Description

文字（100）／出力（オプション）：カンマ区切りで指定します。（例：Reply2QM, Reply2Q, Format, Sent Date, Sent Time）

Code Page

数値（5）／出力：メッセージのコードページ

WMQ Message Encoding

数値（10）／出力：文字項目のエンコードタイプ

  • 1 …… ANSI

  • 2 …… EBCIDIC

  • 3 …… UNICODE

Get First Msg?

論理値／入力：キューの中の最初のメッセージや次のメッセージを読むかどうか指定します。

Feedback

数値（10）／出力：レポートメッセージ内のフィードバックコードを返します。

戻り値

数値（17）：処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


WMQ コンポーネントプログラム GetMessage フィードバックコード

フィードバックコード

メッセージング > WebSphere MQ との接続 > コンポーネントプログラム > WMQ.Get Message

リポートタイプメッセージ用のフィードバックコードの一覧です。

コード | 意味
0 | MQFB_NONE
1 | MQFB_SYSTEM_FIRST
256 | MQFB_QUIT
258 | MQFB_EXPIRATION
259 | MQFB_COA
260 | MQFB_COD
262 | MQFB_CHANNEL_COMPLETED
263 | MQFB_CHANNEL_FAIL_RETRY
264 | MQFB_CHANNEL_FAIL
265 | MQFB_APPL_CANNOT_BE_STARTED
267 | MQFB_APPL_TYPE_ERROR
268 | MQFB_STOPPED_BY_MSG_EXIT
271 | MQFB_XMIT_Q_MSG_ERROR
275 | MQFB_PAN
276 | MQFB_NAN
277 | MQFB_STOPPED_BY_CHAD_EXIT
279 | MQFB_STOPPED_BY_PUBSUB_EXIT
280 | MQFB_NOT_A_REPOSITORY_MSG
281 | MQFB_BIND_OPEN_CLUSRCVR_DEL
291 | MQFB_DATA_LENGTH_ZERO
292 | MQFB_DATA_LENGTH_NEGATIVE
293 | MQFB_DATA_LENGTH_TOO_BIG
294 | MQFB_BUFFER_OVERFLOW
295 | MQFB_LENGTH_OFF_BY_ONE
296 | MQFB_IIH_ERROR
298 | MQFB_NOT_AUTHORIZED_FOR_IMS
300 | MQFB_IMS_ERROR
301 | MQFB_IMS_FIRST
399 | MQFB_IMS_LAST
401 | MQFB_CICS_INTERNAL_ERROR
402 | MQFB_CICS_NOT_AUTHORIZED
403 | MQFB_CICS_BRIDGE_FAILURE
404 | MQFB_CICS_CORREL_ID_ERROR
405 | MQFB_CICS_CCSID_ERROR
406 | MQFB_CICS_ENCODING_ERROR
407 | MQFB_CICS_CIH_ERROR
408 | MQFB_CICS_UOW_ERROR
409 | MQFB_CICS_COMMAREA_ERROR
410 | MQFB_CICS_APPL_NOT_STARTED
411 | MQFB_CICS_APPL_ABENDED
412 | MQFB_CICS_DLQ_ERROR
413 | MQFB_CICS_UOW_BACKED_OUT
65535 | MQFB_SYSTEM_LAST
65536 | MQFB_APPL_FIRST
999999999 | MQFB_APPL_LAST


WMQ コンポーネントプログラム Unsubscribe

WMQ.Unsubscribe

メッセージング > WebSphere MQ との接続 > コンポーネントプログラム

このプログラムうはトピックを取り消します。

パラメータ | 説明
Subscribe Queue Manager | 文字（48）／入力：キューマネージャ名
Subscribe Queue Name | 文字（48）／入力：キュー名
Broker Stream | 文字（50）／入力：ブローカストリーム名です。 例：SAMPLE.BROKER.RESULTS.STREAM.
Topic | 文字（50）／入力：トピック名
Correlation ID | BLOB／入力：相関ID 指定できる最大サイズは、24バイトです。

戻り値

数値（17）：処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


WMQ コンポーネントプログラム DeletePublication

WMQ.Delete Publication

メッセージング > WebSphere MQ との接続 > コンポーネントプログラム

トピックに対して全ての未読の パブリケーションを削除します。

パラメータ | 説明
Queue Manager | 文字（48）／入力：キューマネージャ名
Broker Stream | 文字（50）／入力：ブローカストリーム名 例：SAMPLE.BROKER.RESULTS.STREAM.
Topic | 文字（50）／入力：トピック名

戻り値

数値（17）：処理が成功した場合は「0」、失敗した場合は負の数（エラーコード）が返ります。


WMQ コンポーネントプログラム CommitTransaction

WMQ Commit Transaction

メッセージング > WebSphere MQ との接続 > コンポーネントプログラム

オープンしたトランザクションをコミットします。トランザクションを継続して使用する場合は、新しいトランザクションを開始しなくてはなりません。

パラメータ | 説明
Queue Manager | 文字（48）／入力：キューマネージャ名

戻り値

数値（17）：処理が成功した場合は「0」、失敗した場合は負の数（エラーコード）が返ります。


WMQ コンポーネントプログラム RollbackTransaction

WMQ.Rollback Transaction

メッセージング > WebSphere MQ との接続 > コンポーネントプログラム

この処理は、トランザクションをロールバックします。トランザクションを継続して使用する場合は、新しいトランザクションを開始しなくてはなりません。

パラメータ | 説明
Queue Manager | 文字（48）／入力：キューマネージャ名

戻り値

数値（17）：処理が成功した場合は「0」、失敗した場合は負の数（エラーコード）が返ります。


WMQ コンポーネントプログラム Disconnect

WMQ Disconnect

メッセージング > WebSphere MQ との接続 > コンポーネントプログラム

MQサーバとの接続をクローズします。

パラメータ | 説明
Queue Manager | 文字（48）／入力：キューマネージャ名

戻り値

数値（17）：処理が成功した場合は「0」、失敗した場合は負の数（エラーコード）が返ります。

  • -110…… 切断に失敗した場合

  • -111…… [Queue Manager]が指定されていない場合


WMQ コンポーネントプログラム MessageHandleSetup

WMQ.Message Handle Setup

メッセージング > WebSphere MQ との接続 > コンポーネントプログラム

メッセージのプロパティを設定します。キューのオープン時のデフォルト設定を変更する場合に実行します。変更された内容は、キューがクローズされるまで有効になります。

パラメータ

説明

Queue Handle

数値（18）／入力：オープン時に返された数値

Persistence

文字（1）／入力：そのメッセージがシステム障害に耐えられるかどうかを示します。 サブスクリプションのみ有効です。

  • P ……持続性あり

  • N …… 持続性なし

  • D …… キューに依存します。

Msg Life Time

数値（10）／入力：メッセージの寿命をミリ秒で指定します。-1 の場合、無期限になります。

Msg Priority

数値（2）／入力：メッセージの優先順位. デフォルトは 0 です。

Group ID

BLOB／入力：一緒に処理されるメッセージグループのID

指定できる最大サイズは、24バイトです。

Start Sequence ID

数値（10）／入力： グループ内のメッセージのシーケンス番号を指定します。この値が「0」で[Group ID]に値を設定している場合、コンポーネントが処理し値を順に設定します。番号は、各オープンキューに対してこの値から始まります。

Message Fetch Order

文字（1）／入力： 順番がオープンキューモードの指定と異なる場合、メッセージが読み込まれる順番を指定します。

  • P …… 物理順 （FIFO）

  • L …… 論理順 （グループとトランザクション）

論理順に指定した場合、同一グループのメッセージを読み終えるとキューにメッセージが残っていても、メッセージがないものと判断され読み込めません。一旦キューをオープンし直す必要があります。

Message Fetch Mode

文字（1）／入力： 読み込みメッセージをどのように処理するかを指定します。

  • D …… 読み込まれた後キューから削除されます。

  • B …… 読み込まれた後もキューに残ります。

戻り値

数値（17）：処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


WMQ コンポーネントプログラム GetLanguageEncoding

Get Language Encoding

メッセージング > WebSphere MQ との接続 > コンポーネントプログラム

指定したコードページに対応するエンコード方法を取得する場合に使用します。

パラメータ | 説明
pCode Page | 数値（5）／入力：コードページを指定します。コードページが指定されない場合、グローバル設定が有効になります。グローバル値が設定されていない場合は、エラーが返ります。

戻り値

数値：エンコード方法を以下の数値で返します。

  • 1 …… ANSI

  • 2 …… EBCDIC

  • 3 …… UNICODE


WMQ コンポーネントプログラム GetLow-HiWordOrder

Get Low-Hi Word Order

メッセージング > WebSphere MQ との接続 > コンポーネントプログラム

エンコード方法とデータタイプを基にビットデータの並び順を取得します。

パラメータ

説明

pMachine Encoding

数値（6）／入力：エンコード方法を指定します。

pInteger/Decimal/Float

文字（1）／入力：データタイプを指定します。

  • I …… Integer

  • D …… Decimal

  • F …… Float

戻り値

論理値：指定したデータタイプのビットレベルの並び順を返します。


WMQ コンポーネントプログラム AnalyzeBLOB

Analyze BLOB

メッセージング > WebSphere MQ との接続 > コンポーネントプログラム

バッファの内容を表示します。デバッグ時に使用します。

パラメータ | 説明
BLOB | BLOB／入力：バッファ用のBLOB項目を指定します。
BLOBSize | 数値（10）／入力：表示するテーブルサイズをバイト値で指定します。デフォルトは 32000 です。
Show Window | 論理／入力：ウィンドウをオープンするかどうかを指定します。デフォルトは「True」です。


WMQ コンポーネントプログラム GetQueueInfo

WMQ.Get Queue Info

メッセージング > WebSphere MQ との接続 > コンポーネントプログラム

このプログラムは現在のWMQの情報を取得します。ホストアプリケーションが処理を実行する上で、情報が必要な場合に使用します。

パラメータ

説明

Queue Handle

数値（18）／入力：オープンした相手のプログラムから返される数値

Connection ID

数値（18）／出力：Websphere MQ キューへの接続ハンドル

Messaging System

文字（1）／出力：常に　W が返ります。（Websphere MQ 用）

Queue Manager Name

文字（48）／出力：MQ キューマネージャの名前

Queue Name

文字（48）／出力：キューの名前

Access Mode

文字（1）／出力：アクセスを表す文字

  • W …… 書込

  • R …… 読込

  • P …… パブリッシュ

  • S…… サブスクライブ

Broker Stream

文字（50）／出力：ブローカストリーム。例：SAMPLE.BROKER.RESULTS.STREAM

Topic

文字（50）：予約されトピック

Unsubscribe on Close

論理値／出力：このパラメータが「True」の場合、キューがクローズした時にコンポーネントが自動的にトピックから登録を取り消します。これは、コンポーネントがクローズするとトピックから登録を取り消すことを意味します。

Correlation ID

BLOB／出力：サブスクリプションのみ有効です。このパラメータは、確実にサブスクライブされたメッセージの受信のみのフィルタを定義します。

指定できる最大サイズは、24バイトです。

Disconnect on Close

論理／出力：メッセージの読込／書込に関係します。キューがクローズされた後でMQサーバへの接続をクローズします。同じキューマネージャでオープンされている他のキューもクローズする場合がありますので注意してください。

戻り値

数値：処理が成功した場合 0 、失敗した場合は 負の値 が返ります。


WMQ コンポーネントプログラム GlobalSetup

WMQ.Global Setup

メッセージング > WebSphere MQ との接続 > コンポーネントプログラム

WMQへのアクセスを実行する上で動作環境を変更する場合に実行します。このプログラムは、他のプログラムを実行する前に実行しなければなりません。

パラメータ

説明

Module Name

文字（1）：インストールのタイプ

  • C …… クライアント

  • S …… サーバ

Low-Hi bit order

論理値／入力（オプション）：数値の読み書きの順番を指定します。Windows基準では 昇順なので、「True」 が返り、Unix 標準の場合、降順なので「False」 が返ります。このパラメータが渡されない場合、グローバル設定値を取得します。

Encoding

数値（1）／入力：文字項目のエンコードタイプ。

  • 1 …… ANSI

  • 2 …… EBCIDIC

  • 3 …… UNICODE

Code Page

数値（5）／入力（オプション）：メッセージのエンコードで使用されるコードページ。パラメータが渡されない場合、グローバル設定値を基に指定されます。グローバルセットアッププログラムや論理名にグローバル値が設定されていない場合、エラーが返ります。


WMQ コンポーネントプログラム SetMaxBufferLength

WMQ.Set Max Buffer Length

メッセージング > WebSphere MQ との接続 > コンポーネントプログラム

コンポーネントプログラムは、WMQでメッセージの送受信にバッファを使用します。バッファを割り当てるための必要なメモリを確保するためバッファサイズを知る必要があります。このプログラムは、処理で使用できる最大サイズのメモリをあらかじめ確保するようにします。このプログラムが実行されない場合は、論理名（[WMQ_MaxMessageSize]）の値が有効になります。論理名も指定されていない場合は、32768Byte がデフォルトになります。

パラメータ | 説明
Buffer Length | 数値（10）


WMQ コンポーネントプログラム GetTextFromBuffer

WMQ.Get Text From Buffer

メッセージング > WebSphere MQ との接続 > コンポーネントプログラム

バッファ内の文字列を取得することができます。

パラメータ | 説明
Buffer | BLOB：バッファとして使用しているBLOB項目を指定します。
Start position | 数値（10）：取得開始位置
Length | 数値（10）：取得データ長

戻り値

文字：バッファから取得された文字列が返ります。


WMQ コンポーネントプログラム SetTextintoBuffer

WMQ.Set Text into Buffer

メッセージング > WebSphere MQ との接続 > コンポーネントプログラム

バッファに文字列を格納します。

パラメータ | 説明
Text | 文字（32,768）：バッファに格納する文字列を指定します。
Position | 数値（10）：格納開始位置

戻り値

BLOB：文字列が格納されたバッファが返ります。 （現在1つのバッファに複数のデータを格納することはできません。）


WMQ コンポーネントプログラム BeginWMQLog

WMQ_BeginWMQLog

メッセージング > WebSphere MQ との接続 > コンポーネントプログラム

この処理は、MQサーバの低レベルログの採取を実行します。

注意：

一度ログファイルが初期化されると、ファイルを停止することはできません。ホストアプリケーションでの停止はできます。

パラメータ | 説明
pFile Name | 文字（255）／入力：ログファイル名を指定します。

戻り値

数値（17）：処理が成功した場合 0 、失敗した場合はエラーコード が返ります。


WMQ コンポーネントプログラム SetActivityLogFileName

WMQ.Set Activity Log File Name

メッセージング > WebSphere MQ との接続 > コンポーネントプログラム

この処理は、アクティビティログのファイル名を指定します。論理名の「MessagingActivityLogFile」の値を上書きします。

パラメータ | 説明
File name | 文字（256）／入力：ログファイル名を指定します。


WMQ コンポーネントプログラム SetActivityLogOnOff

WMQ.Set Activity Log On/Off

メッセージング > WebSphere MQ との接続 > コンポーネントプログラム

この処理は、アクティビティログの有効無効を指定します。

パラメータ

説明

Set Activity Log On/Off

論理／入力

  • True ……有効にします。

  • False ……無効にします。


WMQ コンポーネントプログラム FetchLastError

WMQ.Fetch Last Error

メッセージング > WebSphere MQ との接続 > コンポーネントプログラム

この処理は、MQサーバから最後に発生したエラーを取得します。エラー内容は、WebSphereMQ のマニュアルを参照してください。

パラメータ | 説明
Queue Handle | 数値（18）／入力：オープンした相手のプログラムから返される数値

戻り値

数値（17）：処理が成功した場合 0 、失敗した場合はエラーコード が返ります。


WMQ コンポーネントプログラム CountMessages

WMQ CountMessages

メッセージング > WebSphere MQ との接続 > コンポーネントプログラム

キュー内のメッセージ数を返します。

パラメータ | 説明
Queue Handle | 数値（18）／（入力）：クローズするキューのハンドル

戻り値

数値（17）：キュー内のメッセージ数を、失敗した場合は負の数（エラーコード）が返ります。


WMQ バッファテーブル

バッファテーブル

メッセージング > WebSphere MQ との接続

「MessageBuffer」という名前の公開テーブルです。

バッファテーブルを使用してデータを送受信することができます。メッセージの送受信を行う際に[Buffer Identifer Index]を指定することでバッファテーブルをアクセスすることができます。
送信する場合は、ホストアプリケーション側でこのテーブルにデータを格納することで、メッセージを送信できます。
受信する場合は、受信メッセージが指定された行に格納されます。

メッセージ送信時は、全てのカラムにデータを設定してください。また受信時は、[Value]以外に受信データに対応した値をあらかじめ設定しておく必要があります。

以下のカラムで構成されています。

カラム名

説明

Structure Index

数値（4）：テーブル行の識別番号です。[Buffer Identifer Index]と照合されます。

Buffer Index Level

数値（4）： ネストバッファ用に使用されます。先頭のレベルは、 「0」 です。

Order

数値（4）：同一の[Buffer Index Level]内の内部順序です。

Nested Buffer Index

数値（4）：[Datatype]が「M」（メッセージバッファ）の場合、このパラメータは[Buffer Index Level]のインデックスを指定します。

Datatype

文字（1）：Magic のデータ型です。

  • A …… 文字

  • N …… 数値

  • L …… 論理

  • D …… 日付

  • T …… 時刻

  • B …… BLOB

  • M …… ネストされたバッファ用のメッセージバッファ

Picture

文字（30）：Magicの書式。VARPIC関数を使用して設定できます。

Storage

数値（2）：データタイプの記憶形式

Position

数値（10）：バッファ内の項目の位置

Length

数値（10）： データタイプの長さ。[Storage] の指定に依存します。文字の場合、文字列の長さになります。

Value

BLOB ：実際のデータです。


WMQ バッファテーブル 記憶形式

記憶型式

メッセージング > WebSphere MQ との接続 > バッファテーブル

バッファテーブルにデータを格納したり、格納されたデータをメッセージとして取り出す際に使用される記憶型式です。
指定できる値は以下の通りです。

データタイプ | Storage ID | 記憶型式 | 長さ
文字 | 1 | String … NULLで終了しない | <32K
 | 2 | ZString … NULLで終了する | <32K
 | 3 | LString … 文字列とShort Int の文字長を含んだ圧縮文字列 | <32K
数値 | 1 | Signed integer | 1,2,4
 | 2 | Unsigned integer | 1,2,4
 | 3 | IEEE float | 4,8
 | 4 | Float MS-Basic | 4,8
 | 5 | Float decimal | 4,8
 | 6 | Packed decimal |
 | 7 | Numeric |
 | 8 | Character numeric |
 | 10 | C-ISAM decimal |
 | 11 | Extended float |
論理 | 1 | Number (0,1 を含む) |
 | 2 | Database (T,Fを含む) |
日付 | 1 | Integer … 1/1/1 から開始 | 4
 | 2 | Integer … 1/1/1901 から開始 | 4
 | 3 | YYMD | 4
時刻 | 1 | Integer | 4
 | 2 | HMSH | 4
BLOB | 1 | 4バイトの長さデータとその後にバッファデータが続く |
 | 2 | The buffer |


WMQ テスト

メッセージのテスト

メッセージング > WebSphere MQ との接続

実行エンジンにて"Messaging\messaging.ecf"をオープンすると、[ツール]メニュー上で利用可能になります。各メッセージングシステムとの接続性を確認する場合に使用します。

[Test Messaging System]ダイアログより、以下の手順でメッセージングシステムの確認を行います。

  1. [Choose Messaging System]で[Websphere MQ]を選択します。

  2. [Queue Manager]を指定します。

  3. [Queue Name]にキュー名を指定します。

  4. メッセージボックスに送信メッセージを入力し、[Send Message]ボタンをクリックします。

  5. [Read Message]ボタンをクリックすると、メッセージボックスにメッセージが返ります。


WMQ 環境設定

環境設定

メッセージング > WebSphere MQ との接続

WMQ用コンポーネントプログラムのためのMagicの論理名として以下のものが指定できます。

WMQ_MaxMessageSize

WMQ_ModuleName

WMQ_StartupCodePage

W MQ_StartupLowHiOrder

WMQ_StartupEncoding

WMQ_SubscriptionLogFile

MessagingActivityLogFile

MessagingActiviyLogFile_AutoStart

WMQ_ModuleLogFile


WMQ_MaxMessageSize

メッセージング > WebSphere MQ との接続 > 環境設定

数値（10）：最大バッファサイズ


WMQ_ModuleName

メッセージング > WebSphere MQ との接続 > 環境設定

文字（1）：インストールタイプ

  • C …… クライアント

  • S …… サーバ


WMQ_StartupCodePage

メッセージング > WebSphere MQ との接続 > 環境設定

数値（5）：メッセージを作成する際のコードページ

OS の "MODE CON CP" コマンドで、使用するPC のコードページを確認できます。


WMQ_StartupLowHiOrder

メッセージング > WebSphere MQ との接続 > 環境設定

数値（1）：数字がどの語順で読み書きされるかを指定します。

  • 1 …… 昇順：Windows の標準

  • 0 …… 降順：UNIX の標準


WMQ_StartupEncoding

メッセージング > WebSphere MQ との接続 > 環境設定

数値（1）：文字項目のエンコードタイプです。

  • 1 …… ANSI

  • 2 …… EBCIDIC

  • 3 …… UNICODE


WMQ_SubscriptionLog

WMQ_SubscriptionLogFile

メッセージング > WebSphere MQ との接続 > 環境設定

指定されたログファイルには、異なるブローカに送られたサブスクライブとアンサブスクライブの情報を書き込みます。


WMQ 環境設定 MessagingActivityLogFile

MessagingActivityLogFile

メッセージング > WebSphere MQ との接続 > 環境設定

指定されたログファイルには、コンポーネント内部の動作が記録されます。コンテキスト番号がファイル名に追加されます。例えば、「MessagingActivity」と指定された場合、「MessagingActivity_1234567890.log」というようなファイル名で出力されます。コンポーネントがロードされた時点でこの名前が設定されますが、[SetActivityLogFileName]プログラムを使用することで変更できます。


WMQ 環境設定 MessagingActivityLogFile_AutoStart

MessagingActivityLogFile_AutoStart

メッセージング > WebSphere MQ との接続 > 環境設定

「Yes」に設定されると、アクティビティログが自動的に開始されます。


WMQ_ModuleLogFile

メッセージング > WebSphere MQ との接続 > 環境設定

MQサーバの低レベルなログ採機能用のログファイル名を指定します。ここにファイル名が指定されるとログが採取されます。


エラー

メッセージング >

メッセージング接続コンポーネントを使用する場合、様々な実行エラーが発生する場合があります。これらのエラーのいくつかは、メッセージの読込用にオープンされたキューにメッセージを送信した場合に発生するような確認チェックの結果かもしれません。また、特定のベンダーのメッセージ・サービスという場合もあります。ここでは、Magicのメッセージングコンポーネントのエラー処理について最低限の事項を記述しています。

参照

エラー処理

エラーコード一覧

エラーコードメッセージ


エラー処理

メッセージング > エラー

エラー処理のいくつかはコンポーネントによって実行されます。各エラー情報は、Magicのカレントディレクトリーに作成される messaging_error.log というログファイルに書き込まれます。

エラーイベント

[エラー]イベントは、「Public Error」という名前で公開され、自分のアプリケーション内でイベント実行コマンドを使用することで、エラーハンドリングを実行するように同期イベントとして起動されます。イベント実行時に渡すパラメータには以下のものがあります。

パラメータ

説明

Messaging System

文字（1）：メッセージシステムの種類を指定します。

  • M …… MSMQ

  • J …… JMS

  • W …… WebSphere MQ

Error Code

数値（15）：エラーコードは、負の数値で指定します。

[エラーコード一覧]は、別表を参照してください。MSMQやJMS、WebSphere から返されるエラーコードとしてこの一覧には含まれないもあります。

Validation Error

論理値

  • True …… エラーが内部確認文チェックの結果であることを示します。

  • False …… エラーが内部のメッセージングキューのエラー処理結果です。

Error

文字（100）：メッセージテキスト

Java エラーイベント

JMSを使用してエラーが発生した時に、「Java Error」と呼ばれるイベントが実行されます。このイベントには、以下のパラメータがあります。

パラメータ | 説明
JException Error | BLOB型 このBLOBは、JException関数の戻り値が設定されます。 JMSエラーが発生した場合、エラー文字列（ErrorExceptionイベントによって渡されます。）は、発生したエラーに関連するJavaクラスが付加されます。（それは、ブラケット[ ]によって囲まれます。）


エラーコード一覧

メッセージング > エラー

[ツール]メニューから[エラーコード一覧]を起動することで、エラーに対する独自のメッセージを定義することができます。メッセージデータは、Messaging.dat に保存されます。

[エラーコードメッセージ]ウィンドウには、以下の4つのボタンがあります。

  • 保存 …… 変更内容を保存します。

  • 出力 …… エラーメッセージをテキストファイルに出力します。外部のエディタでこの内容を編集することができます。出力ファイル名を指定するダイアログが表示されます。

  • 入力 …… エラーメッセージを含んだテキストファイルを入力します。入力の再、エラーコードを基に照合します。このため、エラーコードの番号を変えないでください。

  • 閉じる …… ウィンドウを閉じます。

エラーメッセージを変更したい場合、出力／入力オプションを使用することは、効果的です。アップグレード時にエラー内容が上書きされないように、あらかじめテキストファイルに出力しておいてください。


エラー メッセージ

エラーコードメッセージ

メッセージング > エラー

発生する可能性のあるメッセージとエラーコードは以下の通りです。

コード | エラー／警告 | メッセージ
-10 | W | メッセージが見つかりませんでした.
-11 | W | String プロパティがあります.現在の値を無視します.
-12 | W | ブロードキャストオプションは、読込モードでは無効です.
-20 | E | コンピュータのアドレスが空白です.
-21 | E | キューかトピックの名前が空白です.
-22 | E | 無効なアクセスモードです.
-23 | E | 無効なフォーマット名ID です.
-24 | E | 無効な共有モードです.
-25 | E | アクセスモードと互換性のない共有モードです.
-26 | E | キューがオープンしていません.
-27 | E | 無効なデータタイプが Send Message メソッドに渡されました.
-28 | E | 無効なキューハンドルが Send Message メソッドに渡されました.
-29 | E | キューがメッセージ送信用にオープンしていません.
-30 | E | これはトランザクションキューです.トランザクションが定義されていません.
-31 | E | キューはトランザクションキューではありません.
-33 | E | これは、MSMQ トランザクションキューではありません.
-34 | E | 無効なトランザクションタイプです.
-35 | E | キューは、メッセージの読込用にオープンされていません.
-36 | E | これは、MSMQキューではありません.
-37 | E | 無効な書式です.
-39 | E | これは、最新のMSMQ でのみ有効です.
-40 | E | セットアッププロパティが渡されませんでした.
-41 | E | 無効なキューハンドルが、メッセージセットアッププログラムに渡されました.
-42 | E | メッセージセットアップ文字列がメッセージセットアッププログラムに渡されませんでした.
-43 | E | 無効なメッセージセットアップ文字が渡されました.
-44 | W | メッセージの優先順位は、0～7 の範囲で指定してください.無視されました.
-46 | W | メッセージ配信は、0 か 1 のみ有効です.無視されました.
-47 | W | Ack は、 0 か 4,5,12 または 14 のみ有効です.無視されました.
-51 | W | ラベルの文字列が長すぎます。切り捨てました。
-52 | W | コードページに 0 は指定できません.無視されました.
-53 | W | 無効なAppSpecificプロパティです.無視されました.
-54 | W | CorrelationID は、 20セルのベクトルにしなければなりません.無視されました.
-55 | W | ジャーナルは、 0 と 2 の間になければなりません。無視されました.
-56 | W | 拡張は、ベクトルでなければなりません.
-57 | W | プロパティは、負数を指定できません.
-62 | E | オープントランザクションが見つかりませんでした.
-63 | E | 空の配列です.
-71 | E | トランザクションがオープンしていません.
-72 | E | 接続ファクトリ名が提供されませんでした.
-73 | E | キュー名かトピックが指定されませんでした.
-74 | E | 無効な肯定応答モードです.
-75 | E | 無効なキューハンドルが Send Message プログラムに渡されました.
-76 | E | NULL メッセージリクエストです.
-77 | E | キューがオープンされていません.
-78 | E | これは、 JMS キューではありません.
-79 | E | このキューは、JMS メッセージの読込用にオープンしていません.
-80 | E | パスワードが、ユーザ名なしで渡されました.
-81 | E | 無効なPublish / Subscribeオプションです.
-82 | E | 無効なキューハンドル番号です.
-83 | E | 無効なメッセージタイプです.
-84 | E | メッセージが送信されませんでした．
-85 | E | durable subscriber name が渡されませんでした．
-86 | E | durable subscriptionがオープンされていません．
-87 | W | ストリングプロパティが渡されませんでした．無視されます．
-88 | E | これは、Websphere MQ のキューではありません．
-89 | E | 無効なハンドルが渡されました．
-90 | E | コードページが渡されませんでした．
-91 | E | 無効なエンコーディングの設定です．
-92 | E | バッファサイズは、0 より大きくしてください．WMQ_SetMaxBufferLength プログラムを使用してください．
-93 | E | 不当なsubscription scope モードです.
-94 | E | 無効なキューマネージャかキューの名前です.
-95 | E | 無効な Send Type です.
-96 | E | ファイルが見つかりません.
-97 | E | テーブルバッファが設定されていません.
-98 | E | キューが、subscription用にオープンしていません.
-99 | E | キューが、 publishing用にオープンしていません.
-100 | E | ブロードキャストが失敗しました.
-101 | E | ブロードキャストが一部失敗しました.
-102 | E | メッセージが長すぎます.
-103 | E | 永続的なサブスクリプションは、トピックとして送信されるだけです。
-104 | W | メッセージの優先度は、0～9 の値で指定してください。設定は無視されました。
-105 | W | メッセージの配信モードは、1 か 2 のみ有効です。設定は無視されました。
-106 | W | 優先度の設定は、このキューで無視されました。
-107 | E | 不当な TCP/IP 文字列です。
-108 | E | サブスクリプションのCorrelation IDが正しくありません。
-109 | E | Publishプログラムがサポートしていないメッセージフォーマットが指定されています。
-110 | E | Disconnect処理に失敗しました。
-111 | E | Disconnect処理でキューマネージャが指定されていません。
-112 | W | サブスクライブに対するOpen Queue処理の場合、[フェッチモード]を「B（参照）」には指定できません。無視されます。
-113 | E | Get Message処理の場合、[フェッチモード]を「B（参照）」にするとトランザクションがサポートされません。
-114 | E | [Reply2Q] または、[Reply2QM]の値を指定しないでリクエストを送信することはできません。
-115 | E | チャネル名が空白になっています。
-116 | E | 接続名が空白になっています。
-117 | E | 動的接続がクライアントモードで使用されました。
-1000 | E | 認証に問題があり、送信先のオープンに失敗しました.
-1001 | E | JMSサーバの接続に失敗しました.
-1002 | E | Open Queueプログラムで指定されたキュー名かファクトリ名が正しくありません.
-1003 | E | 不当な構文がメッセージ選択文字列に送られました。
-1004 | E | StreamMessage か BytesMessageの読込時に、予期しないストリームの終端がありました.
-1005 | E | メッセージでサポートされないデータタイプか、間違ったタイプのメッセージのデータを読み込みました.
-1006 | E | 書き込み専用のメッセージを読み込もうとしました.
-1007 | E | 読込専用のメッセージを書き込もうとしました.
-1008 | E | COMMIT処理によって現在のトランザクションがロールバックされました.
-1009 | E | トランザクション処理中のため、処理ができません.
-1010 | E | JNDI 名が正しくありません.
-9999 | E | COM エラーです.


エンドユーザ機能

ここでは、実行時に起動することができるエンドユーザ機能について説明します。

プロジェクトの開発前に、Magicの照会、修正、登録モードを使用してデータを表示したり、編集したりする時に、エンドユーザの立場でどのようにMagicを使用するかを知っておく必要があります。

エンドユーザとしての立場でこれらのことを知っておくことは、開発作業を行う上でも有効になります。

参照

データ表示ツール

タスクモード

項目の編集

データ出力ウィザード


データ表示ツール

エンドユーザ機能 >

ここでは、データを表示するオンラインプログラムを実行した場合、照会モードや修正モードなどに関するデータ表示ツールについて説明しています。

[オプション]メニューには、以下のデータ表示ツールがあります。

  • 位置付

  • 位置付／次候補

  • 範囲

  • インデックス

  • ソート

  • 入出力ファイル

  • データ出力

これらのツールは、エンドユーザの意向に従ってデータを検索したり表示したりする場合に使用されます。

参照

データ操作


データ表示ツール 位置付

位置付

エンドユーザ機能 > データ表示ツール

位置付機能は、特定のカラムのデータを検索するために使用します。レコードを位置付けるためには、少なくともカラムのデータ型やカラムの内容の一部を知っていなければなりません。これは、数値型のカラムには数値を指定して位置付ける必要があり、文字型のカラムで検索するには、文字列の一部分を知っていなければならないということです。

オンラインプログラムで最初にDBテーブルを開き、[オプション]メニューから[位置付]をクリックしてください。該当するカラムが、「顧客コード」のような数値型の値を持っている場合、位置付けしたい数値を入力し、Enter キーを押下してください。その結果として、入力した数値を持つレコードが位置付けられます。

検索したりカラムが文字列の値を持っている場合、文字列を入力することで検索できます。例えば、「S*」のように入力すると、指定された条件に当てはまる最初のレコードに位置付き、カーソルがパークします。

注意：

  • アスタリスク「*」は、文字列の長さに関係なく指定できるワイルドカードになります。

  • 位置付け機能は、大文字と小文字を区別します。


データ表示ツール 位置付 位置付オプション

位置付オプション

エンドユーザ機能 > データ表示ツール > 位置付

以下のオプションは、[オプション]メニューで[位置付]をクリックし、位置付けフォームにカーソルを置いた時に利用できます。

全項目をクリア(F3) | 全てのカラムの位置付値を消去します。
項目クリア(F4) | カーソルがパークしているカラムの位置付値を消去します。
式定義(Ctrl+E) | カラムに[式]エディタを使用して式で位置付値を指定します。この場合、式の結果がカラムの型と同じになるように定義しなければなりません。 例えば、「顧客コード」として、10～15 の範囲で位置付けする場合、以下のような式を指定します。 RANGE (A,10,15) (A=顧客コード)
NULLに設定(Ctrl+U) | 現在のカラムをNULLに設定します。
開始値 (F7) | 位置付けの最小値を指定します。
終了値 (F8) | 位置付けの最大値を指定します。

参照

データ表示ツール

位置付

インクリメンタルサーチ

位置付エラー


データ表示ツール 位置付 インクリメンタルサーチ

インクリメンタルサーチ

エンドユーザ機能 > データ表示ツール > 位置付

インクリメンタルサーチは、照会モードのオンラインタスクでのみ有効です。この機能を有効にするには、[タスク特性]の[照会モード位置付]特性を「Yes」に設定する必要があります。

エンドユーザが入力した１桁の文字や数値に合う最初のレコードに対し、位置付け処理が実行されます。エンドユーザが２文字目を入力すると、この２つの文字を含んだ文字列で再度位置付け処理が行われます。

例えば、照会モードで顧客情報を表示するオンラインプログラムを想定します。「顧客名」カラムで「T」を入力すると、「T」で始まる顧客名の最初のレコードに位置付けられます。次に「o」を入力すると、「To」で始まる顧客名の最初のレコードに位置付けられます。

注意：

インクリメンタルサーチ処理は、[位置付]イベントとワイルドカード「???」の組み合わせで、シミュレートすることができます。

参照

照会モード位置付け


データ表示ツール 位置付 エラー

位置付エラー

エンドユーザ機能 > データ表示ツール > 位置付

オンラインプログラムのDBテーブル内に存在しないレコードに位置付けようとした場合、Magicは、エラーメッセージを表示して、位置付け条件に最も近いレコードに位置付けます。

例えば、顧客コード「30」で位置付けを行おうとした場合、該当するテーブルには、顧客コード「２５」以上のレコードがないと、以下のエラーメッセージを表示して最初のレコードに位置付けます。

該当するレコードがありません - 先頭に位置付けます.

また、顧客コードが「30」以上で指定した場合、カーソルは最初のレコードにパークして、以下のエラーメッセージを表示します。

該当するレコードがありません - 次に位置付けます.


データ表示ツール 次候補

位置付／次候補

エンドユーザ機能 > データ表示ツール

[オプション]メニューの[位置付／次候補]をクリックすることで、位置付け条件内の次のレコードに位置付けることができます。


データ表示ツール 範囲

範囲

エンドユーザ機能 > データ表示ツール

範囲処理は、オンラインプログラムで表示するデータベーステーブルのレコード数に制限を加える機能です。範囲機能は、位置付け機能と同じようなものです。

レコードの範囲設定をするには、カラムの型とカラム内容（少なくとも一部分でも）を知っておく必要があります。すなわち、数値型のカラムの場合は、数値を入力する必要があり、文字型カラムの場合は、入力されている文字列の一部分でも知っておく必要があります。

例えば、顧客コードと名前を表示するプログラムで、顧客コードが10から15までのレコードが作成されているものとします。

  1. [オプション]メニューの[範囲]をクリックします。

  2. ステータスボックスのメッセージが「範囲」と表示されていることを確認して、範囲の最小値として[顧客コード]カラムに「10」を入力します。

  3. [オプション]メニューの[終了値]（F8）をクリックします。

  4. ステータスボックスのメッセージが「終値-範」と表示されていることを確認して、範囲の最大値として[顧客コード]カラムに「15」を入力します。

  5. Enter を入力すると、結果が表示されます。

「S*」を入力すると、「S」で始まる顧客名の範囲指定を行うことができます。


データ表示ツール 範囲 範囲オプション

範囲オプション

エンドユーザ機能 > データ表示ツール > 範囲

以下のオプションは、[オプション]メニューで[範囲]をクリックし、範囲フォームにカーソルを置いた時に利用できます。

全項目クリア(F3) | 全てのカラムの範囲値を消去します。
項目クリア(F4) | カーソルがパークしているカラムの範囲値を消去します。
式定義(Ctrl+E) | カラムに[式]エディタを使用して式で範囲値を指定します。この場合、式の結果がカラムの型と同じになるように定義しなければなりません。 例えば、「顧客コード」として、偶数の範囲条件でレコードを表示したい場合、以下のような式を指定します。 (A MOD 2)=0 (A=顧客コード)
開始値 (F7) | 範囲の最小値を指定します。
終了値 (F8) | 範囲の最大値を指定します。


データ表示ツール 範囲 エラー

範囲エラー

エンドユーザ機能 > データ表示ツール > 範囲

テーブル内に存在しないレコードの範囲を指定した場合、Magicは以下のエラーメッセージを表示します。

範囲内のレコードがありません.

例えば、顧客番号が「54」までのレコードを表示するオンラインプログラムがあるとします。ユーザが55から61の範囲でレコードを表示させようとした場合、範囲内のレコードは存在しないため、範囲のエラーメッセージを表示し、フォームには何も表示されません。

範囲内のレコードがありません.

Magicは範囲モードのままで、再度範囲条件が入力できます。この状態で、ユーザが Enterキーを押下すると、タスクは登録モードとなり、新規のレコードが入力できるようになります。


データ表示ツール インデックス

インデックス

エンドユーザ機能 > データ表示ツール

インデックス機能は、メインソースを表示するインデックスを切り替えて、別の表示順に並べ替えるものです。

例えば、製品情報を表示するオンラインタスクがあるものとします。[タスク特性]で製品コードをインデックスとして表示している状態で、製品名をインデックスに切り替える操作の手順を以下に説明します。

  1. プログラムを実行します。

  2. [オプション]メニューから[インデックス]をクリックします。

  3. [インデックス一覧]から「製品名」のインデックスを選択します。

  4. 指定されたインデックスをもとにレコードがソートされて表示されます。


データ表示ツール ソート

ソート

エンドユーザ機能 > データ表示ツール

個別の一時インデックスを作成してレコードをソートすることができます。作成されるインデックスは、既存のインデックスと同じように動作します。このインデックスは、ソートが定義されたタスクでのみ有効で、タスクが存在する限り有効になります。

プログラムを開いて、[オプション]メニューから[ソート]を選択すると、[ソート]テーブルが表示されます。[ソート]テーブルは、以下のウィンドウからなる複合ウィンドウです。

  • ウィンドウの左側にあるセグメントテーブル

  • ウィンドウの右側にある項目一覧

左側のテーブルには以下のカラムがあります。

  • # …… この番号には自動生成された順序番号が含まれ、セグメント識別子としてMagicで使用されます。この特性を編集することはできません。

  • 項目 …… セグメントとして使用する実データ項目または変数項目のシンボル名。シンボル名を入力するか、右側にある[項目一覧]にズームして、データ項目を選択します。[項目一覧]がら[カラム]テーブルにズームして、補足情報を取得できます。

  • 項目名 …… この特性には、セグメントとして選択されたデータ項目の名前が表示されます。この特性を編集することはできません。

  • サイズ …… 選択されたデータ項目の属性が文字型の場合のみ、この特性を変更して、セグメント項目の中でソートの対象となるデータの最大サイズを短縮することができます。デフォルトでは、データ項目のサイズがそのまま設定されます。

  • 方向 …… ソートの方向を指定します。

定義された一時インデックスは、[インデックス一覧]に表示されます。

式エディタ > 関数ディレクトリ

注意：

[ソート]テーブルに定義できるセグメントの数に制限はありません。

参照

テーブルソート


データ表示ツール ソート テーブルソート

テーブルソート

エンドユーザ機能 > データ表示ツール > ソート

テーブルにおいてデータをソートする簡単な方法はテーブルソートです。この機能を使用すると、テーブルカラムに基づいて迅速にデータのソートが実行されます。カラムタイトル（例：顧客名）にマウスポインタを置き、1回クリックしてください。テーブルは、顧客名の内容でソートされます。カラムタイトルに小さな黒い矢印が表示され、ソートが昇順か降順かが判るようになっています。

[オプション]メニューの[インデックス]をクリックすると、一時インデックスに顧客名が追加された状態でソートされます。


データ表示ツール 入出力ファイル

入出力ファイル

エンドユーザ機能 > データ表示ツール

実行中での[入出力ファイル]オプションを使用すると、エンドユーザが帳票やデータの出力先を変更することができます。このオプションによって、タスクで定義された出力先が無効になります。

参照

入出力ファイル


タスクモード

エンドユーザ機能 >

ここでは、実行中に有効なデータに関する処理モードについて説明しています。

照会モード

照会モードは、データを参照する場合に使用されます。レコードの更新や削除に関する全ての処理がブロックされます。

テーブルが修正モードでオープンされた場合、照会モードに切り替えるには、[オプション]メニューの[照会]を選択する必要があります。

照会モードに切り替えると、ステータスボックスに「照会」と表示されます。

修正モード

既存のデータを変更したり削除する場合は、[オプション]メニューから[修正]を選択し、修正モードに変更する必要があります。

修正モード中に、[行作成]イベントを発行することでデータを追加することができます。この場合、タスクは登録モードになります。[動作環境]ダイアログで[修正モード時の登録許可]を「Yes」に設定した場合にこの動作が有効になります。

登録モード

登録モードでは、オンラインプログラムのDBテーブルに新規レコードを追加することができます。

[オプション]メニューから[登録]を選択して登録モードに変更した場合、ユーザは現在のセッション上で追加されたレコードのみ参照することができます。

以下で表された操作オプションを使用することで、レコード間の操作を行うことができます。

キー操作 | 説明 | [オプション]メニュー | ツールバーアイコン
PgDown | 次のレコードに移動 | 次画面 |
PgUp | 前のレコードに移動 | 前画面 |
↑ | 前の行に移動 | 前行 |
↓ | 次の行に移動 | 次行 |
Ctrl+Home | 最初のレコードに移動 | テーブル先頭 |
Ctrl+End | 最後のレコードに移動 | テーブル末尾 |

[タスク特性]で許可されたモードを[初期モード]特性に設定することができます。

エンドユーザは、タスク実行中に許可されたモード変更を行うことができます。例えば、初期モードが「照会」と設定されたプログラムの実行中に、「修正」または「登録」モードに変更することができます。

参照

タスクフローでの処理モード


項目の編集

エンドユーザ機能 >

項目の編集時には以下の操作を行うことができます。

  • キャンセル

  • 広域表示

  • ズーム

  • カット＆ペースト

  • 全て選択

  • 論理型項目の変更


データ操作 取消

キャンセル

エンドユーザ機能 > 項目の編集

この操作を実行すると、カラムに対する変更が取り消されます。このオプションは、カラムを抜ける前の修正のみ有効です。

カラムを抜ける前に、[編集]メニューの[変更取消]を選択するか、Alt+Backを押下すると、コントロールの修正前の内容に戻ります。


データ操作 広域表示

広域表示

エンドユーザ機能 > 項目の編集

この操作は、現在のカラムの入力幅を最大長まで拡張して表示します。このオプションは、[複数行編集]特性が無効になっているカラムのみ有効になります。[編集]メニューの[広域表示]を選択するか、F6を押下することで実行されます。

広域表示可能なフィールドにパークした場合、ステータスボックスに[広域]と表示されます。ここで、F6を押下すると、広域表示欄が表示され、ステータスボックスは、[標準]に切り替わります。再度F6を押下すると広域表示ウィンドウが閉じます。


データ操作 ズーム

ズーム

エンドユーザ機能 > 項目の編集

ズームは、エンドユーザがドリルダウン（下位の階層での処理を参照する）を行うことを可能にするものです。

最も一般的な使用方法は、一覧表示の実行です。

[編集]メニューから[ズーム]を選択するか、F5を押下することで実行されます。

フィールドがズーム可能な場合、ステータスボックスに[ズーム]と表示されます。

参照

データ操作


データ操作 カット＆ペースト

カット＆ペースト

エンドユーザ機能 > 項目の編集

Magicでのコピー、貼り付け、切り取りの各処理は、テキスト上でのみ実行できます。オブジェクトの上ではできません。

コピー

この操作は、マークされた文字をクリップボードにコピーします。

テキストをコピーするには、[編集]メニューから[コピー]を選択するか、Ctrl+C（またはCtrl+Ins）を押下してください。

切り取り

この操作は、マークされた文字を削除しクリップボードにコピーします。

テキストを切り取るには、[編集]メニューから[切り取り]を選択するか、Ctrl+X（またはCtrl+Del）を押下してください。

貼り付け

この操作は、クリップボードにコピーされたテキストを現在のカーソル位置に貼り付けます。

テキストを貼り付けるは、[編集]メニューから[貼り付け]を選択するか、Ctrl+V（またはShift+Ins）を押下してください。貼り付けるテキストの書式は、貼り付け先と同じにする必要があります。


データ操作 全て選択

全て選択

エンドユーザ機能 > 項目の編集

この操作は、カラムの内容全てを強調します。

この操作は、[編集]メニューから[全て選択]を選択するか、Ctrl+Aを押下してください。


データ操作 論理型項目の変更

論理型項目の変更

エンドユーザ機能 > 項目の編集

論理型項目は、TrueかFalseの値のみ持つことができます。Magicでは、論理型項目のデフォルトはFalseです。

論理型項目の値を変更するには、最初の文字（T：True、F：False）を入力するだけで、Magicエンジンが自動的に解釈します


データ出力ウィザード

エンドユーザ機能 >

オンラインタスクの場合、[タスク特性]ダイアログの[データ出力]を「Yes」に設定すると「データ出力ウィザード」を使用することができるようになります。データ出力ウィザードを使用することで、エンドユーザが実行時に画面に表示されているデータを印刷したり、テキストファイルに出力したりすることができます。

データ出力ウィザードは、ダイアログボックスが開いて実行時に画面に表示されているデータを以下の設定を基に出力することができます。

  • 出力形式の指定

  • カラムの順序

  • 区切り文字と文字識別子

参照

実行時の動作

XML テンプレートの構造

XSD データタイプ

HTML テンプレート構造


データ出力ウィザード 出力タイプ

出力形式の指定

エンドユーザ機能 > データ出力ウィザード

実行モード時に[オプション]メニューの[データ出力]（Ctrl+P）を実行することで起動されます。

  • タイプ……画面に表示されているデータの出力形態を指定します。「H=HTMLファイル」 、「X=XMLファイル」、または、「T=テキストファイル」が指定できます。

  • ファイル名……出力するファイル名を指定します。パスが指定されない場合は、Magic実行時の作業フォルダに作成されます。[ファイルを開く]ダイアログでパスを確認することもできます。この場合、[タイプ]の指定によってファイルの種類の指定が変わります。

  • テンプレート……HTML、または、XMLファイルを出力する場合は、[テンプレート]を指定することができます。ここで指定されたテンプレートファイルは、[環境設定]ダイアログの[データ出力用HTMLテンプレートファイル]や[データ出力用XML テンプレートファイル]で設定されたデフォルトファイルを上書きします。この設定が空白の場合は自動的にデフィルトのテンプレートファイルを使用するようになります。

  • アクション……ファイル作成後の処理を指定できます。

  • C=ファイルの作成……ファイルの作成のみ行います。（デフォルト）

  • O=ファイルの作成とオープン……作成したファイルを参照することができます。ファイルをオープンする場合、指定したファイル名の拡張子に関連づけられているアプリケーションが起動されます。例えば、 .txt の拡張子の場合は、メモ帳などのテキストエディタによって開きます。

  • P=ファイルの作成と印刷……作成したファイルをプリンタへ出力します。必要に応じて[プリンタダイアログを開く]を指定してください。

  • 使用する文字セット……出力時に使用する文字セットを指定します。

  • プリントダイアログを開きます …… [アクション]欄が「ファイルの作成と印刷」の場合に有効になります。印刷字に、[プリント]ダイアログを開くかどうかを指定します。

カラムの順番や、区切りをデフォルトの設定で出力する場合は、ここで[終了]をクリックしてください。カラムの順番や区切り文字を変更したい場合は、[次へ]をクリックして[カラムの選択]ダイアログを開いてください。


データ出力ウィザード カラムの順序

カラムの順序

エンドユーザ機能 > データ出力ウィザード

出力したくないカラムは、[カラムの順番] 欄を「0」にしてください。

「0」以外の数値を指定することで、出力する順番を変更することができます。順番を変更した後、出力したい場合は、[終了]をクリックしてください。

テキストファイルの場合は、[次へ]をクリックすることで出力時の区切り文字を指定するダイアログを開くことができます。


データ出力ウィザード 区切り文字と文字識別子

区切り文字と文字識別子

エンドユーザ機能 > データ出力ウィザード

テキストファイルの場合は、区切り文字を選択したり、文字識別子を指定することができます。

文字列識別子として、シングルかダブルのクォーテーションマークを指定するか、任意の文字を指定することができます。

[終了]をクリックすると指定した内容でファイルが出力されます。

データは、常に一覧形式で出力されます。また、マルチマーキングでの選択は無効になります。


データ出力ウィザード 動作

実行時の動作

エンドユーザ機能 > データ出力ウィザード

以下のコントロールについては、表示されている値が出力されます。

  • ラジオボタン

  • エディット

  • リストボックス

  • コンボボックス

  • RTF

チェックボックスの場合、チェック状態ならば「1」が、チェックがはずされている状態ならば「0」が出力されます。

コントロールのデータが、項目を特定できない式で指定され、かつコントロール名が空欄の場合、データが出力されません。

データがない場合は、「出力するデータがありません．」が表示されます。指定したテンプレートファイルが見つからない場合、「テンプレートファイルがオープンできません．」、内容が間違っている場合、「テンプレートファイルにエラーがあります．」のエラーがステータス行に出力されます。

スタイル定義がない場合は、データはスタイルシートに定義されていない形で出力されます。


データ出力ウィザード XMLテンプレート構造

XML テンプレートの構造

エンドユーザ機能 > データ出力ウィザード

XMLを出力タイプにした場合、XMLテンプレートにデータをマージして出力します。XML テンプレートは、<Print_data>タグと</Print_data>タグの間にテキストを記述しないXMLファイルです。Magicは、このタグの間に<Record> タグを使用してレコードデータをマージします。

テンプレートの使用は必須ではありません。テンプレートに、以下のように XSLスタイルシートを指定することにより表示内容をカスタマイズすることができます。

<?xml version="1.0" encoding="utf-8" ?>

<?xml:stylesheet type="text/xsl" href="Sample.xsl" ?>

<Print_data>

</Print_data>

この場合、データ出力ウィザードは、以下のように <Print_data> タグ の間に<Record> タグとレコードのデータを挿入します。

<?xml version="1.0" encoding="utf-8" ?>

<?xml:stylesheet type="text/xsl" href="Sample.xsl" ?>

<Print_data>

<Record><Code>S001</Code><Name>Twentieth Century Fox Home Video</Name><Number_of_Titles>143</Number_of_Titles></Record>

<Record><Code>S002</Code><Name>Buena Vista Home Video</Name><Number_of_Titles>232</Number_of_Titles></Record>

<Record><Code>S003</Code><Name>Universal Studios</Name><Number_of_Titles>132</Number_of_Titles></Record>

<Record><Code>S004</Code><Name>Paramount</Name><Number_of_Titles>123</Number_of_Titles></Record>

<Record><Code>S005</Code><Name>Warner Home Video</Name><Number_of_Titles>422</Number_of_Titles></Record>

<Record><Code>S006</Code><Name>New Line Home Entertainment</Name><Number_of_Titles>54</Number_of_Titles></Record>

</Print_data>

スタイルシート「Sample.xsl」を以下のようｊに作成した場合

<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
<title>スタジオ</title>
</head>

<body>
<h1>スタジオ</h1>
<table>
<tr>
<th>コード</th>
<th>名前</th>
<th>タイトル数</th>
</tr>
<xsl:apply-templates select="Print_data/Record"/>
</table>
</body>
</html>

</xsl:template>

<xsl:template match="Record">
<tr>
<td><xsl:value-of select="Code"/></td>
<td><xsl:value-of select="Name"/></td>
<td><xsl:value-of select="Number_of_Titles"/></td>
</tr>
</xsl:template>

</xsl:stylesheet>

ブラウザで以下のように表示させることができます。


データ出力ウィザード XSDデータタイプ

XSD データタイプ

エンドユーザ機能 > データ出力ウィザード

[スキーマファイル作成]のチェックボックスがチェックされた場合、以下に示すXSDデータタイプに基づいてMagicはXMLファイルにデータを作成します。

Magic型 | XSDデータタイプ
文字型 | string
論理型 | boolean
数値型（浮動小数点がない） | integer
時刻型 | time
日付型 | date

注意：

  • Magicの日付型と時刻型は、XSDのdateとtimeタイプに変換されます。

  • XSDデータタイプは、書式に従って定義されます。数値、日付、および時刻では、書式には数字と小数点のみ含めることができます。書式に他の文字が含まれている場合、MagicはStringデータタイプを含んだXSDファイルを作成します。

参照

XSD ヘッダ

XML要素

XMLの例


データ出力ウィザード XSDデータタイプ XSDヘッダ

XSD ヘッダ

エンドユーザ機能 > データ出力ウィザード > XSD データタイプ

XSD ヘッダを、以下に示します。

<?xml version="1.0" encoding="UTF-8"?>
<!--W3C Schema generated by Magic 10.0 (http://www.magicsoftware.com)-->
<schema targetNamespace="http://www.magicsoftware.com/printdata100"xmlns="http://www.w3.org/2001/XMLSchema">


データ出力ウィザード XSDデータタイプ 要素

XML要素

エンドユーザ機能 > データ出力ウィザード > XSD データタイプ

XMLファイルの全ての要素は、XMLスキーマに定義する必要があります。

要素名に不正な文字が含まれている場合、以下に示されるように下線表示になります。

<xs:element name="element_name">
<xs:simpleType >
<xs:restriction base="xs:type">
<xs: maxLength value="n"/>
</xs:restriction>
</xs:simpleType>
</xs:element>

注意：

  • 「element_name」は、コントロール名に置き換えられます。

  • 「xs:type」は、コントロールのデータ型に基づいて設定されます。

  • 「value」は、コントロールの書式に置き換わります。

  • 「Record」という Complex Type は以下のように表します。

<xs:complexType name="Record">
<xs:sequence>
<xs:element ref="element1"/>
<xs:element ref="element2"/>
<xs:element ref="element3"/>
<xs:element ref="element14"/>
</xs:sequence>
</xs:complexType>


データ出力ウィザード XSDデータタイプ XMLの例

XMLの例

エンドユーザ機能 > データ出力ウィザード > XSD データタイプ

要素は、以下に表示されるように、XMLファイルに定義された順に要素名に置き換わります。

<?xml version="1.0" encoding="UTF-8"?>
<!--W3C Schema generated by eDeveloper 10.0 (http://www.magicsoftware.com)-->
<schema targetNamespace=http://www.magicsoftware.com/printdata100

xmlns="http://www.w3.org/2001/XMLSchema">
<xs:element name="EMPLOYEE_ID">
<xs:simpleType >
<xs:restriction base="xs:integer">
<xs: maxLength value="5"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="FIRST_NAME">
<xs:simpleType >
<xs:restriction base="xs:string">
<xs: maxLengthvalue="30"/>
</xs:restriction >
</xs:simpleType>
</xs:element>
<xs:element name="HIRE_DATE">
<xs:simpleType >
<xs:restriction base="xs:date">
<xs: maxLengthvalue="8"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="LAST_NAME">
<xs:simpleType >
<xs:restriction base="xs:string">
<xs: maxLengthvalue="30"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="PHONE_NUMBER">
<xs:simpleType >
<xs:restriction base="xs:string">
<xs: maxLengthvalue="15"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:complexType name="Record">
<xs:sequence>
<xs:element ref="EMPLOYEE_ID"/>
<xs:element ref="FIRST_NAME"/>
<xs:element ref="LAST_NAME"/>
<xs:element ref="PHONE_NUMBER"/>
<xs:element ref="HIRE_DATE"/>
</xs:sequence>
</xs:complexType>
</xs:schema>


データ出力ウィザード HTMLテンプレート構造

HTML テンプレート構造

エンドユーザ機能 > データ出力ウィザード

HTMLを出力タイプにした場合、以下のようなHTMLテンプレートにデータをマージして出力します。

<html>
<head>
<title> </title>
</head>
<body>
<MGTABLE>
</body>
</html>

<MGTABLE>タグに RowStyle 、ColumnStyle を指定することができます。

RowStyle

  • All …… 各行に対して異なったスタイル（MG_ROWn：nは行番号）を指定します。

  • EvenAndOdd …… MG_Even_Row（偶数行） と MG_Odd_Row（奇数行） の２つのスタイルを指定します。

  • Equal …… 全ての行に対して同じスタイル（MG_ROW）を指定します。

ColumnStyle

  • All …… 各カラムに対して異なったスタイル（MG_TITLEn：nはカラム番号）を指定します。

  • Equal …… 全てのカラムに対して同じスタイル（MG_TITLE）を指定します。

例：

4 つのカラムを持つテーブルに対してHTMLを出力した場合で、テンプレートの<MGTABLE>タグに、

<MGTABLE RowStyle=ALL ColumnStyle=ALL >

と定義されている場合、以下のようなHTMLファイルが出力されます。

<table border="1" width="100%" class="MG_TABLE">
<THEAD>
<tr >
<td width="25%" class="MG_TITLE1">t1</td>
<td width="25%" class="MG_TITLE2">t2</td>
<td width="25%" class="MG_TITLE3">t3</td>
<td width="25%" class="MG_TITLE4">t4</td>
</tr>
</THEAD>
<TBODY>
<tr class="MG_ROW1">
<td width="25%" class="MG_DATA1">d11</td>
<td width="25%" class="MG_DATA2">d12</td>
<td width="25%" class="MG_DATA3">d13</td>
<td width="25%" class="MG_DATA4">d14</td>
</tr>
<tr class="MG_ROW2">
<td width="25%" class="MG_DATA1">d21</td>
<td width="25%" class="MG_DATA2">d22</td>
<td width="25%" class="MG_DATA3">d23</td>
<td width="25%" class="MG_DATA4">d24</td>
</tr>
</TBODY>
</table>


分散アプリケーション

Magicは、異なるコンピュータ環境における相互運用性を実現しています。相互運用性とは、マルチデータベースやマルチプラットフォーム、マルチネットワークでのデータ処理におけるMagicアプリケーションの運用能力を表しています。全てのMagicアプリケーションに共通のインタフェースを使用すると、全てのユーザは、どのワークステーションからでもあらゆるタイプのローカルデータベースやリモートデータベースへのアクセス、クエリの実行、データの更新ができます。

LAN（ローカルエリアネットワーク）やWAN（ワイドエリアネットワーク）で複数のコンピュータが接続されている環境において、Magicの分散アプリケーションアーキテクチャはここで解説している所定の分散処理を行います。

参照

アプリケーションサーバの環境構成

アプリケーションサーバのセットアップ

サポートされるミドルウェア

Magicのリクエスタ

インターネットリクエスタ

第3世代言語の呼び出し

SNMPサポート

バッチ形式のHTMLプログラム

アプリケーションパーティショニング

Brokerモニタ


アプリケーションサーバの環境構成

分散アプリケーション >

アプリケーションサーバ環境を構成すると、クライアントがMagicアプリケーションサーバと通信できるようになります。

以下に、アプリケーションサーバ環境に必要なモジュールについて説明します。

  • Magicアプリケーションサーバ……サポートされているミドルウェアモジュールにMagic実行エンジンを接続すると、Magic実行エンジンは、サポートされている各タイプのリクエスタのアプリケーションサーバとして動作します。

  • リクエスタ……クライアントからアプリケーションサーバにリクエストを送信するには、サポートされているリクエスタを通す必要があります。クライアントにはそれぞれ専用のリクエスタがあり、次に示すタイプがあります。

  • Magicリクエスタ……Magicエンジンには、エンジンの一部としてリクエスタモジュールが含まれています。

  • インターネットリクエスタ……Magicは、CGI、ISAPIという2種類のインターネットリクエスタを提供します。

  • コマンドラインリクエスタ……Magicは、OSシェルから実行できるコマンドラインリクエスタを提供します。

  • ミドルウェア……リクエスタからMagicクライアントにリクエストを転送するためにソフトウェアモジュールを使用できます。Magicでは、次のミドルウェアがサポートされています。

  • Magic Request Broker（以下MRB）……Magicは独自のミドルウェアモジュールとしてMRBを提供します。

  • J2EE


アプリケーションサーバのセットアップ

分散アプリケーション >

ここでは、ネットワーク内の複数のコンピュータにアプリケーションロジックを分散させるためのユーティリティのインストールと設定について説明します。Magicでは、以下のミドルウェアソフトウェアをサポートしています。

  • MRB……ネットワークからのリクエストの受信と処理を実行します。

参照

Magic実行エンジンの動作

ミドルウェアゲートウェイのロード

サポートされるミドルウェア

Magicのリクエスタ


アプリケーションサーバのセットアップ ロード

ミドルウェアゲートウェイのロード

分散アプリケーション > アプリケーションサーバのセットアップ

ミドルウェアゲートウェイがロードされ、Magicエンジンをミドルウェアゲートウェイに接続するようにするには、以下の設定が必要です。

  1. 必要なミドルウェアゲートウェイをロードします。
    Magicエンジンの作業フォルダ内にあるMGREQ.INIファイルの[MAGIC_MESSAGING_GATEWAYS]セクション内で、必要なゲートウェイの定義されている行のコメントを解除してください。なお、Magicエンジンは、デフォルトでいつでもMRBに接続が可能であり、MRBに関しては、MGREQ.INIでの設定は必要ありません。
    複数のミドルウェアゲートウェイをロードできますが、1つのサーバエンジンは、1つのミドルウェアモジュールにしか接続できないことに注意してください。

  2. [設定／サーバ]テーブルでサーバ設定を定義します。
    詳細については、関連するミドルウェアのセクションを参照してください。

  3. [設定／動作環境]ダイアログの[サーバ]タグにある[メッセージサーバ]欄に前のステップで定義したサーバを指定し、このサーバがこのエンジンに対するメッセージサーバとなるようにします。

  4. [設定／動作環境]ダイアログの[アプリケーションサーバ]タグにある [アプリケーションサーバとして動作]欄で「Yes」を選択し、アプリケーションサーバとして実行するようにエンジンを定義します。

  5. ミドルウェアエージェントを有効にします。

  6. 設定を有効にするために、Magicエンジンを再起動します。

参照

サポートされるミドルウェア

Magicのリクエスタ


アプリケーションサーバのセットアップ エンジンの動作

Magic実行エンジンの動作

分散アプリケーション > アプリケーションサーバのセットアップ

実行エンジンはリモートサービスのリクエストを実行します。実行エンジンは、アプリケーションをローカルで実行するために使用するものと同一の実行エンジンのインスタンスです。Magic リクエストゲートウェイは、実行エンジンがMRB（または他のミドルウェア）およびリクエスタクライアントと通信できるようにするソフトウェアレイヤです。

実行エンジンは、リクエストとステータスに関する情報を1つのミドルウェアのみに返します。一方、リクエスタクライアントは複数のミドルウェアと通信でき、ミドルウェアは複数の実行エンジンと通信できます。

実行エンジンが接続するミドルウェアのアドレスはMAGIC.INIファイル内に保存されています。実行エンジンは、起動されると、実行エンジンが使用可能であることをミドルウェアに通知します。メッセージには、実行エンジンでサポートされるアプリケーションのリストも含まれます。次に、実行エンジンはMAGIC.INIファイル内で指定されているポート上で待機します。リクエストを受信すると、実行エンジンがアイドル状態である場合、実行エンジンはリクエストされたアプリケーションを開きます。

実行エンジンは、リクエスト内で指定されているユーザ名とパスワードをリクエストログ内に入力します。次に、リクエストされたプログラムを実行し、実行結果をリクエスタクライアントに送信します。

実行エンジンは、リクエストの実行中、ミドルウェアまたはリクエスタクライアントに「I AM ALIVE」というメッセージを[サーバ特性]の[タイムアウト]特性で指定された間隔で送信します。[タイムアウト]特性は、リクエスタクライアントがリクエストとともに送信する値です。

リクエストが有効でない場合、または実行エンジンが使用中である場合、所定のメッセージがリクエスタクライアントに送信されます。

Magicアプリケーションサーバは、クライアントのタイプに関係なく、同じ方法で構築されます。各構成におけるアプリケーションサーバの唯一の相違点は、ミドルウェアモジュールです。


サポートされるミドルウェア

分散アプリケーション >

Magicでは、次のミドルウェアゲートウェイがサポートされています。

  • Magic Request Broker (MRB)


サポートされるミドルウェア MRB

Magic Request Broker (MRB)

分散アプリケーション > サポートされるミドルウェア

MRBコンポーネントは、ネットワークからリクエストを受信して処理します。リクエストとは、リモートプログラムの実行を要求するものであり、これにはパラメータとオプションが含まれています。リクエストはMagicエンジンに最終的に送信されて実行されます。

MRBの主要な機能は次のとおりです。

  • クライアントリクエストのキューイング

  • リクエストに対する使用可能な実行時エンジンの割当て

  • リクエストのステータスの管理と通知

  • 非同期モードでのプログラム起動

  • 処理内容をログに記録

参照

前提条件

インストールと設定

MGRB.INI

MRBの動作


サポートされるミドルウェア MRB 前提条件

前提条件

分散アプリケーション > サポートされるミドルウェア > MRB

MRBでは、WINSOCK互換TCP/IPスタックがWindows OSにインストールされている必要があります。

MRBを起動したユーザ（mgrb.iniで指定されたユーザではなく）は、ローカルなセキュリティポリシー（コントロールパネル→管理ツール→ローカルセキュリティポリシー-->ユーザ権利の割り当て）において、以下の権利を設定する必要があります。

  • プロセスレベルトークンの置き換え

  • プロセスのメモリクオータの増加


サポートされるミドルウェア MRB インストールと設定

インストールと設定

分散アプリケーション > サポートされるミドルウェア > MRB

MRBを構成する全てのファイルは、同じディレクトリに存在する必要があります。

  • MGrqmrb.exeは、MRBの実行プログラムです。Windows版のMRBはサービスとして実行させることができます。（サービスとして実行する場合は、Magicのインストール時に指定する必要があります。）
    MRBの処理を開始するには、MGrqmrb.exeをコマンドラインから実行するか、ショートカットから実行します。普通のプログラムとして実行した場合、Windowsタスクバー上にアイコンが表示されます。

  • MGrqgnrc10x.DLLは汎用メッセージレイヤで、これにはサポートライブラリが含まれています。

  • MGRB.INIは、MRB用の環境設定ファイルです。


サポートされるミドルウェア MRB Mgrb.ini

MGRB.INI

分散アプリケーション > サポートされるミドルウェア > MRB

MGRB.INIは、MRB用の環境設定ファイルです。MGRB.INIファイルは、MRBの初期設定処理中に読み込まれます。MGRB.INIファイルが見つからない場合、MRBはデフォルト値で初期設定を行います。

以下のパラメータが定義されています。

キーワード

意味

BrokerPort

MRB のポート番号を指定します。このポートにリクエストが送られてきていないか、MRB により常時チェックされます。MRBは、指定されたポート番号で始まる５つの連続したポートを開くことができます。

構文：BrokerPort =ポート番号

ポート番号のデフォルトは、Magicのレビジョンによって変わります。

EnginesPriority

コンピュータ名の一覧で（最高で9つまで）、サーバエンジンを割当てるために使用します。この一覧の順序に基づいてエンジンが選択され、クライアントからのリクエストが処理されます。つまり、実行可能であれば一覧の最初のコンピュータのエンジンが実行され、そうでなければ、2 番目のコンピュータのエンジンが実行される、という具合になります。

構文：EnginesPriority=[<コンピュータ名１>][,<コンピュータ名2>]

ServerTimeout

タイムアウト（単位：秒）で、非同期コールの実行中、この時間が経過するとエンジンからMRB に対してI-AM-ALIVE メッセージが送出されます。

この値を0 にした場合、エンジンからMRB にはI-AM-ALIVE メッセージは送られなくなります。このため、タスクの実行中、エンジンが何らかの原因でクラッシュしたり異常終了した時でも、エンジンからI-AM-ALIVE メッセージが送られることがなくなるため、その状態はMRB には認識不可能になります。

構文：ServerTimeout = n

CommTimeout

TCP/IP操作(接続/送信/受信）が、失敗する前にリトライする最大時間（単位：秒）です。

MRBによって送信されたメッセージに対してMGRB.INIファイル内のこの設定はMGREQ.INIファイル内の設定を上書きします。「通信タイムアウト」のトピックを参照してください。

汎用のリクエスタレイヤーの低レベルのメッセージは、MGREQ.INIファイルの設定が使用されます。

デフォルトは10秒です。最小値は1秒です。

PasswordSupervisor

このキーワードを使用して、ユーザからのMRB に対するアクセスを制限できます。

パスワードを指定した場合、MRB の次の処理でセキュリティチェックが実行されます。

  • 新しいエンジンのロード

  • MRB またはエンジンの終了

  • キューにあるリクエストの削除または優先順位の変更

指定を省略した場合には、MRB の処理ではセキュリティチェックは行われないため、ユーザ名とパスワードはチェックされません。

PasswordQuery

オプションで省略できます。このキーワードを使用して、ユーザからのMRB に対するアクセスを制限できます。

パスワードを指定した場合、あるユーザから別のユーザのリクエストの照会が実行された時、そのユーザのユーザ名とパスワードがチェックされます。リクエストは提出時に使用されたユーザ名とパスワードを使用して行なわれるため、自分のリクエストを照会する場合には、制限はありません。

リクエストの提出時に使用されるユーザ名とパスワードとして、[設定／サービス]のユーザ名とパスワード、Magic のアプリケーションのログオンに使用されたユーザ名とパスワード、MGREQ.INI ファイルに保存されているユーザ名とパスワードは全てMRB により受け入れられます。

この指定を省略した場合、ユーザ名とパスワードはチェックされません。そのためリクエストは、どのユーザからも照会が可能となり、ユーザは別のユーザのリクエストを確認できます。

ReLoad

Magicアプリケーションサーバのインスタンスが異常終了した場合、MRBが自動的にMagicアプリケーションサーバを再ロードするかどうかを指定します。

構文：Reload=YまたはN

Log

上位レベルのMRBの動作（初期化、リクエストの受信、アプリケーションサーバの割当、アプリケーションサーバ情報の送信など）を記録するログファイルを指定します。このログにより、特定のリクエストの処理を確認できます。

構文：LOG=ファイル名 同期 レベル

ファイル名……ログファイル名を指定します。ファイル名に空白を含むことはできません。

同期

  • Y……ログファイルは、行ごとに開閉されます。これにより、コンポーネントがメモリ内にロードされている時にも、ファイルを削除できます。複数のモジュールでログファイルを共有することも可能です。

  • N……ログファイルは、コンポーネントの初期化と終了の時のみに開閉されます。

  • F……印刷用に書式化された各行がログファイルに送られます。ログファイルは、コンポーネントの初期設定と終了操作の間でのみ開閉されます。

レベル

  • C……ユーザレベル（概要ログ）

  • S……サポートレベル（中間ログ）

  • R……MSJ社の開発者デバッグ用のレベル（詳細ログ）

低レベルのMRBの動作（接続、送信、受信など）を記録できるようにするには、MRBのカレントディレクトリにあるMGREQ.INIファイルでのログ設定を行います。

ReqHistorySize

MRBは、処理した各リクエストについての履歴ログを持っています。(MagicのRQ関数やコマンドラインリクエスタのQUERY=LOG パラメータでアクセス可能です。)

このキーワードは、MRBが履歴ログに保持するリクエストの数を制御します。

構文：ReqHistorySize = 数値

デフォルトは、20,000、最小値は5,000、最大価値は100,000です。

ActivityLog

MRB の動作イベント内容を記録するログファイルのファイル名を指定します。

構文：ActivityLog= パス名\ ファイル名

指定されない場合、「mrb_event.log」という名前で作成されます。

ShutdownTimeout

この値は、全てのアプリケーションサーバに対し、指定された期間内に段階的にシャットダウンするように指示するための数秒です。

構文：ShutdownTimeout = 数値

デフォルト(=1)では、全てのアプリケーションに対して、直ちにシャットダウンするように指示し、MRB自身をも直ちにシャットダウンされます。

DelayServiceStart

MRBをサービスで起動した場合、起動を指定した秒数分遅らせるように指定できます。

EnableFilters

「Filters」パラメータで指定されたフィルタ処理を有効にするかどうかを指定します。

構文：EnableFilters = Y またはN

この指定が「N」の場合、「Filters」や「AllowReserve」の指定は意味がありません。

デフォルトは、「N」です。

Filters

リクエストのフィルタ機能を利用すると、複数の異なるリクエストに対してMRB やMagic エンジンが利用できるスレッド数に応じて処理が案分されます。

設定方法

フィルタ機能を有効にするには、MGRB.INIの[MRB_ENV]セクションにて以下のパラメータを指定します。

  • EnableFilters = Y

  • Filters = フィルタ用キーワード

  • AllowReserve ……Y

フィルタ用キーワードの指定

コールリモートの場合

  • 呼出側……MAGIC.INIの[サービス]特性（MAGIC.INI の[MAGIC_SERVICES]セクション）にフィルタキーワードを指定します。

例： Default Service = Default Broker,,,,RMC

  • 受信側……MGRB.INIの[MRB_ENV]セクションとMAGIC.INI の[MAGIC_ENV]セクションに以下のように指定します。

Filters = HTTP:10% | SOAP:30% | RMC:20%

この場合、20 スレッドのライセンスを持つアプリケーションサーバが、異なる種類のリクエストを処理する際に、以下のような割合を指定することになります。

  • HTTP …… 2 スレッド

  • SOAP …… 6 スレッド

  • RMC …… 4 スレッド

  • フィルタを指定しないリクエスト…… 8 スレッド

注意：

  • キーワードの名前自体に意味はありません。呼出側で指定したキーワードと合っているかどうかで判断されます。上記の例の場合、呼出側では、キーワードは「RMC」になっているため、アプリケーションサーバは、4スレッド分の処理しか実行されません。

  • MAGIC.INIの[MAGIC_ENV]セクションの設定が優先されます。MAGIC.INI にフィルタが指定されていない場合、MGRB.INI側が有効になります。

インターネントリクエスタ/ コマンドラインリクエスタの場合

  • 呼出側…… MGREQ.INIの[REQUESTER_ENV]

Filters = HTTP

  • 受信側…… コールリモートの時と同じです。

AllowReserve

Filterキーワードの割合の合計が100% に満たない場合、残りの割合を他のフィルタ用に利用できるようにするかどうかを指定します。

構文：AllowReserve = Y（デフォルト）またはN

QueueMaxSize

デフォルトは無制限です。

MRBがすでにそのキュー内にQueueMaxSizeリクエストを持っている場合、直ちに送信できない以降のリクエスト(同期または非同期)は、キューに入らず、リクエスタは、エラー-198(キューの上限に達した)を受け取ります。

[APPLICATIONS_LIST]

オプションのセクションで省略できます。このセクションには、コマンドライン実行ファイルまたはシェルコマンドを記述します。

ここで記述した実行ファイルまたはシェルコマンドは、リクエスタから実行することができます。また、MRB の初期化時に起動することもできます。

構文：エントリ名=<コマンド>,[<作業フォルダ>],[<ユーザ名>], [<パスワード>],[<MRB の初期化時に実行される回数>],[<起動されるエンジンの最大数>]

[REMOTE_APPLICATIONS_LIST]

オプションのセクションで省略できます。マルチコンピュータ環境で、各コンピュータでエンジンがMRB とは別個に機能している時に、このセクションを記述します。

MRBのインスタンスはローダとして機能しますが、インスタンスは、エンジンが機能しているコンピュータ全てに対して有効でなければなりません。マルチコンピュータ環境の場合、このセクションに実行可能ファイルを一覧で指定しておきます。これで、ローカルのMRB からリモートのMRB に対して自動的に接続が実行されるとともに、このセクションに指定した実行可能ファイルがロードされます。なお、リモートMRB にパスワードが設定されている場合、PasswordSupervisor を指定しなければなりません。指定しない場合、パスワードとしてはローカルのMRB のパスワードが使用されます。

構文：エントリ名=<リモートMRB のノード名／ポート番号>,[<リモートMRB のPasswordSupervisor>],[<リモートMRB に定義されているエントリ名>],[<MRB の初期化時に実行される回数>]

<リモートMRB に定義されているエントリ名>の値が1に設定されている場合、定義されたアプリケーションの1つのインスタンスを起動します。

[APPLICATION_CLIENTS_MAP]

オプションのセクションで省略できます。開発者に対して、リクエストの受信先のエンジンを制御できます。

例えば、同一のプロジェクトファイルに対して複数の開発者で開発を行っている場合、ある開発者が、オブジェクトをチェックアウトし、MRBに自分のエンジンを割当てるといった作業が可能です。

構文：<エンジンのホスト名>:<クライアントのノード名>[,<クライアントのノード名x>]

注意：

リモートコールの実行中（このセクションでエンジンがマッピングされている場合）、リクエストゲートウェイでは、リクエストとともに送られてきたユーザ名とパスワードを使用して処理が行われます。

したがって、開発者がまだエンジンにログオンしていない時には、ログオンの際、ユーザ名とパスワードを指定しなければなりません。これで、その開発者が使用できるプロジェクトファイルであるかを確認できます。

なお、ユーザ名とパスワードは、インターネットとコマンドラインではMGREQ.INI ファイル、Magicクライアントでは[サービス]テーブルにおいて定義できます。

[SNMP]

SNMPサポート用のパラメータを指定します。「SNMPサポート」の説明を参照してください。


サポートされるミドルウェア MRB 動作

MRBの動作

分散アプリケーション > サポートされるミドルウェア > MRB

参照

MRBのキュー

自動再起動

アプリケーションサーバの自動終了

ロードバランシング機能

MRBのエラー


サポートされるミドルウェア MRB 動作 MRBのキュー

MRBのキュー

分散アプリケーション > サポートされるミドルウェア > MRB > MRBの動作

MRB（MRB）では、0から9の優先順位に従ってリクエストキューが管理されます。0は最低優先順位を表します。キュー内には、次の情報が含まれます。

  • リクエストID

  • 優先順位

  • 実行ステータス

  • アプリケーション名

  • オリジナルのリクエストパケット

  • エラーコード

MRBでは、次の情報を含む関連実行エンジンの各リストが管理されます。

  • アドレス

  • ステータス

  • 現在のアプリケーション

  • 使用可能アプリケーション


サポートされるミドルウェア MRB 動作 自動再起動

自動再起動

分散アプリケーション > サポートされるミドルウェア > MRB > MRBの動作

MRBが異常終了した場合、そのMRBを監視している管理処理を介して自動的に再起動を実行します。


サポートされるミドルウェア MRB 動作 自動終了

アプリケーションサーバの自動終了

分散アプリケーション > サポートされるミドルウェア > MRB > MRBの動作

MRBが、正常か異常かに関係なく終了して再起動されると、MRBに接続したアプリケーションサーバは、60秒以内に終了します。これは、バックグラウンドモードで実行しているアプリケーションサーバのみに当てはまります。


サポートされるミドルウェア MRB 動作 ロードバランシング

ロードバランシング機能

分散アプリケーション > サポートされるミドルウェア > MRB > MRBの動作

MagicのMRBのロードバランシング機能は、優先度や、パフォーマンスおよびコンテキストの処理情況に基づいてリクエストをエンジン振り分けるようにします。


サポートされるミドルウェア MRB 動作 エラー

パーティショニングのエラーメッセージ

トラブルシューティング >

分散アプリケーション > サポートされるミドルウェア > MRB > MRBの動作

以下は、 パーティショニングアプリケーションの実行時に発生する可能性のあるエラーメッセージです。

4 RQ INF RETRY

11 RQGNRC INF NO RESULT

60 INF TIMEOUT

102 ERR CNCT REFUSED MRB

103 ERR APP NOT FOUND

104 ERR APP IN USE

105 ERR MRB NOT RSPND

106 ERR RT NOT RSPND

107 ERR CNCT RESET

108 ERR INVALID REQ HDL

109 ERR CNCT REFUSED RT

110 ERR REQUEST TIMEOUT

111 RQGNRC ERR NOT MRB

113 RQGNRC ERR APPNAME REQUIRED

114 RQGNRC ERR PRGNAME REQUIRED

117 RQGNRC ERR RMC DISABLED FOR J2EE

118 RQGNRC ERR TIME STAMP

128 ERR APP REJECTED

130 ERR APP OPEN FAIL

131 ERR BAD PRG

133 ERR ACCESS DENIED

134 RQMRI ERR LIMITED LICENSE PART

135 RQMRI ERR LIMITED LICENSE HTTP

136 ERR LIMITED LICENSE CS

137 ERR REQ REJECTED

138 ERR RT ERROR MSG

139 ERR THREAD ABORTED

142 ERR BIND FAIL

143 ERR CNCT REFUSED

144 ERR CNCT RESET

146 ERR BIND HOST NOT FOUND

147 ERR CNCT HOST NOT FOUND

148 ERR CNCT CLOSED

149 RQTCP ERR OUT OF SOCKETS

150 ERR CNCT REFUSED MRB

151 ERR CNCT CLOSED BY REQ

156 RQMRG ERR OUT OF SEQ MSG

180 RQMRB WRN EXE NOT FOUND

181 RQMRB WRN RT NOT FOUND

182 RQMRB WRN REQ NOT FOUND

183 RQMRB WRN REQ NOT MATCH

185 RQMRB ERR REGISTER SERVICE

186 RQMRB ERR REPORT SERVICE STATUS

187 RQMRB ERR CNCT REFUSED REMOTE MRB

197 ERR CTX NOT FOUND

198 ERR QUE LIMIT

200 ERR UNEXPECTED

201 ERR NOT INITIALIZED

202 ERR OPEN RESULT FILE

203 RQLIB ERR INI FILE

204 RQCMDL ERR BAD ARGS

205 RQ ERR WRONG MSG SRVR

206 ERR SOAP SRVR PARSE

210 RQMRILOW ERR RECV FAIL

211 RQMRILOW ERR NOT MRI

212 RQMRILOW ERR OLD MRI

260 RQHTTP ERR UPLOAD TOO BIG

参照

J2EEエラーのタイプ


Magicのリクエスタ

分散アプリケーション >

さまざまなタイプのクライアントが、Magicアプリケーションサーバのサービスを使用できます。サポートされている、各クライアントでは、必要なリクエスタモジュールを使用する必要があります。また、リクエスタモジュールはクライアントのタイプごとに指定します。

リクエスタの設定

Magicクライアント、インターネットリクエスタ、コマンドラインリクエスタなどの、リクエスタインタフェースに対する設定は、MGREQ.INIファイルにて行います。このファイルは、リクエスタモジュールおよび、汎用メッセージモジュール（MGrqgnrc10x.dll）が存在するディレクトリ内に存在する必要があります。

MGREQ.INIファイルは、リクエスタの初期化時に読み込まれます。

参照

MGREQ.INI

MRBとサーバのセットアップ


Magicのリクエスタ MGREQ.INI

MGREQ.INI

分散アプリケーション > Magicのリクエスタ

Magic クライアント、インターネットリクエスタ、コマンドラインリクエスタなどの、リクエスタインタフェースに対する設定は、MGREQ.INIファイルにて行います。このファイルは、リクエスタモジュールおよび、汎用メッセージモジュール（MGrqgnrc10x.dll）が存在するディレクトリ内に存在する必要があります。

MGREQ.INIファイルは、リクエスタの初期化時に読み込まれます。

注意：

MGREQ.INIファイルは、MRBでも使用されます。MRBの低レベルの動作（接続、送信、受信）を追跡する場合に使用する必要があります。

MGREQ.INIファイルは、Magicのパーティショニング機能に関わる全てのモジュール（リクエスタ、アプリケーションサーバ、MRB）で使用されます。これらの３つのモジュールが起動する際、それぞれMGREQ.INIファイルを検索します。

MGREQ.INIファイルには、次のパラメータを定義します。

キーワード

説明

[REQUESTER_ENV]セクション

Gateway

リクエスタが使用するミドルウェア。

  • Gateway = 1 … MRBを使用します。

  • Gateway = 5 … J2EEを使用します。

構文：Gateway = n（デフォルト：1　（MRB））

MessagingServer

リクエストを受信するミドルウェアアドレス。

構文：MessagingServer = ノード名/ポート番号

AltMessagingServer

代替となる同じ種類の別のミドルウェアのアドレス。

メインメッセージサーバへの接続がエラーになった場合、リクエスタはこのアドレスを参照します。

構文：AltMessagingServer = ノード名/ポート番号

BrokerTimeout

リクエストがMRB に送られた後、MRB から使用可能なエンジンを割当てることができたことが報告されるまで待機する時のタイムアウト時間（単位：秒）です。この時間内に使用可能なエンジンが見つからなかった場合、MRB から次のいずれかのエラーコードが返されます。

  • APP-NOT-FOUND …このエラーコードは、MRB の内部データベースにアプリケーションが定義されていないことを示します。

  • APP-IN-USE…アプリケーションは定義されているものの、エンジンが使用中であることを示します。

この値を0 に設定した場合、MRB からエンジンに関する情報は返されません。

構文：BrokerTimeout = n　（デフォルト：10秒）

KeepAlive

MGrqgnrc10x.dll が接続のためのリクエスタオプションを設定したり、接続監視間隔を制御するためにOSレベルでの設定を行う場合に使用します。

この設定は、OSの設定が使用される時のみ有効です。システム管理者は、OSの設定間隔を指定しなければなりません。

注意：

日本語版では現在サポートされていません。

構文：KeepAlive = Y or N （デフォルト：Y）

RequesterTimeout

タスクが完了するまでのMRB が待機するタイムアウト時間（単位：秒）で、この時間が経過するとタイムアウトになります。

この値を0 に設定した場合、タスク完了のメッセージは、MRB には送られません。

構文：RequesterTimeout = n

CommTimeout

TCP/IP操作(接続/送信/受信）が、失敗する前にリトライする最大時間（単位：秒）です。

MRBによって送信されたメッセージに対してMGRB.INIファイル内のこの設定はMGREQ.INIファイル内の設定を上書きします。「通信タイムアウト」のトピックを参照してください。

汎用のリクエスタレイヤーの低レベルのメッセージは、MGREQ.INIファイルの設定が使用されます。

デフォルトは10秒です。最小値は1秒です。

構文：CommTimeout = n

Priority

オプションで省略できます。リクエストのデフォルトの優先順位で、キューに優先順位が割当てられていない時に、この優先順位の値が使用されます。0 が最低、9 が最大です。この優先順位は、MRB でのみ有効です。

構文：Priority =n

Username, Password

オプションで省略できます。アプリケーションに対するデフォルトのユーザ名とパスワードを指定することができます。リクエストにユーザ名とパスワードが含まれていなかった場合、このデフォルトのユーザ名とパスワードが使用されます。

構文：

Username =ユーザ名

Password =パスワード

DefPath, DefName

オプションで省略できます。デフォルトのディレクトリとファイル名です。リクエストのFILENAME パラメータにパス名およびファイル名が指定されていない場合、このディレクトリとファイル名が使用されます。

構文：

DefPath =ディレクトリ名

DefName =ファイル名

DefHtml

オプションで省略できます。デフォルトのHTML ファイル名です。呼び出されたプログラムからHTMLデータが返らなかった場合やエラーが発生した場合、インターネットリクエスタによって、このファイルが検索され表示されます。

構文：DefHtml=ファイル名

Http Vars

HTTP プロトコル上で使用される環境変数の名前を指定することで、その変数がHTTPサーバからMagic プログラムに送られます。プログラム内でGetParam 関数を使用することでこの変数の値を取得することができます。ISAPI 、CGI の各リクエスタで使用されます。

注意：

MG_POST_BODYを変数として指定した場合、MagicサーバにBLOB形式でボディー全体を渡します。GetParam('MG_POST_BODY')を使用することで変数項目を使用すること無くアクセスできます。リクエスタは、ボディー（アプリケーション名や他のパラメータ）から情報を取得し、エンジンに対しては渡しません。

構文：HttpVars=変数名1,変数名2,...

HttpSigVars

コンテキストを保持するように定義したバッチプログラム（マージWebプログラム）を、コンテキストIDを指定したリクエストで実行する場合に関係します。

クライアントの識別情報を持たずに実行されたコンテキストは、どのユーザからでもコンテキストIDが合っていれば処理されてしまいます。

この問題を避ける必要がある場合、クライアントを識別するための認証情報をここで指定します。以下のHTTP環境変数を指定することでコンテキストを作成したクライアントと異なるクライアントからリクエストを送られた場合、コンテキストIDが合っていてもエラーを返して拒否するようになります。

  • REMOTE_ADDR…クライアント側のIPアドレス

  • REMOTE_HOST…クライアント側のホスト名

  • REMOTE_USER…クライアント側のユーザ名

  • HTTPS, SSL_CLIENT_KEY_SIZE…SSL関連情報

  • HTTP_COOKIE …ユーザ定義Cookie項目

Appl

許可されているアプリケーションの名前で、複数指定する場合、カンマで区切ります。アプリケーションを指定しなかった場合、全てのアプリケーションが使用できます。

構文：Appl=アプリケーション1,アプリケーション2, ...

AutoLoopBack

パーティショニングモジュール（MRBやアプリケーションサーバ）が同一PC上にある場合、ネットワークが切断された時に問題が発生する場合があります。

例えば、ネットワークケーブルが外れた場合、WIndows はネットワーク上に接続されているPCの接続を全てアボートします。このフラグを使用することでこのような問題を防止することができます。

このフラグが指定された場合、DHCPを使用してホスト名の名前解決を行う代わりに、MagicはLocalhost(127.0.0.1)を使用します。この結果として、ネットワーク接続が失われても、モジュールの間の接続はそのまま維持されます。

構文：AutoLoopBack=Y (デフォルト：Y)

SpecialAffinity

MRBを実行しているサーバがマルチCPU（または、ハイパースレディング）で動作している場合、1つのCPUで動作するように指定します。

構文：SpecialAffinity = Y or N （デフォルト：N）

MaxUploadKB

インターネットリクエスタを通してアップロードするファイルサイズの上限を指定します。

構文：MaxUploadKB=nnnn （単位 KByte）

上限を超えるとエラー260が返ります。

エラーメッセージは、

"File upload failed: file size exceeds maximum size limitation."

パラメータが設定されていないか、0 の場合、制限がかかりません。この場合は、ネットワークまたはアプリケーションサーバ上に負荷をかける場合があります。

Handles

MRB やアプリケーションサーバ、リクエスタによってオープンできるソケットの最大数を指定します。

デフォルト：500

注意：

日本語版では現在サポートされていません。

RetryMainTime

リクエスタがその主要なMRBに再接続する前に待機する最小時間（分）を指定します。この設定は、ISAPIとApache用のリクエスタのみ有効です。

デフォルトは5、最小値は1です。

注意：

日本語版では現在サポートされていません。

SpecialAffinity

マルチプロセッサを使用しているPCに対して、1つのCPU（スレッド）のみ使用するように現在のプロセス(例：MRBやアプリケーションサーバ)に強制する場合に使用します。

構文：SpecialAffinity = Y/N （デフォルト：N）

Filter

リクエストに追加するフィルタ用のキーワードを指定します。

構文：Filter = < キーワード>

コマンドラインリクエスタやインターネットリクエスタからキーワードを送る場合に指定します。（リモートコールの場合は、MAGIC.INI で指定されたキーワードが送られます。）

MRBのFilterの説明を参照してください。

LocalHost

このキーワードは、ポート番号を持っているアドレスにアクセスする場合に、ホスト名を強制的に使用させることができます。デフォルトでは、現在のホスト名が使用されます。

構文：LocalHost = text

CloseWaitTimeout

準切断状態（例：クライアントによって接続を閉じられた状態）の接続を閉じる方法を指定することができます。

シャットダウンしたMRB やMagic エンジンと以前に接続されていて、再起動後に同じアドレスで再接続する場合、接続を開始するモジュールは、シャットダウンされておらず、準切断状態として接続が存在しています。

このキーワードを使用することで、次のリクエストを受信した時や、指定した時間が経過した時に、接続を自動的に閉じるようにできます。

注意：

MRB やMagic エンジンを止めることはできますが、HTTP サーバを停止させることはできません。

構文：CloseWaitTimeout = 数値（デフォルト：-1）

以下のキーワードを指定できます。

  • 継続分数…全ての準切断状態の定期的な終了処理期間
    例えば、「5」と指定した場合、Magic エンジンは、5 分ごとに準切断状態を閉じます。更に、リクエストが送られてきた時点でも閉じます。

  • -1…定期的に閉じることはありません。準切断状態は、リクエストが送られてきた時点でのみ閉じます。

  • 0…準切断状態は、決して閉じることはありません。

ConvertAlphaFromUTF8ToUnicode

インターネットリクエスタで受け付けるリクエスト(GETおよびPOST)のパラメータの文字コードを指定します。

構文：ConvertAlphaFromUTF8ToUnicode = Y/N（デフォルト：N）

以下のキーワードを指定できます。

  • N…リクエストの文字コードは Shift-JIS として処理されます。

  • Y…リクエストの文字コードは UTF8 として処理されますが、もし UTF8 としての解釈に失敗したら、Shift-JISであるとして処理します。

Log

低レベルのリクエスタの動作を記録するログファイルを指定します。

構文：LOG=ファイル名 同期 レベル

ファイル名……ログファイル名を指定します。ファイル名に空白を含むことはできません。

同期：

  • Y……ログファイルは、行ごとに開閉されます。これにより、コンポーネントがメモリ内にロードされている時にも、ファイルを削除できます。複数のモジュールでログファイルを共有することも可能です。

  • N……ログファイルは、コンポーネントの初期化と終了の時のみに開閉されます。

レベル：

  • C……ユーザレベル（概要ログ）

  • S……サポートレベル（中間ログ）

  • D……MSE社の開発者向けレベル（詳細ログ）

[MAGIC_MESSAGING_GATEWAYS]

ロードする必要のあるモジュールのゲートウェイを指定します。

各リクエスタが処理できるミドルウェアタイプは1つのみです。必要なミドルウェアモジュールをロードするには、ミドルウェアゲートウェイエントリのマークを外します。

構文：MGSRVR##=DLL,レベル,ファイル名,同期 ,パラメータ

##：ミドルウェアタイプの番号

  • 05……J2EE

レベル：

  • C……ユーザレベル（概要ログ）。

  • S……サポートレベル（中間ログ）。

  • D……開発レベル（詳細ログ）。

ファイル名：ログファイルの名前

同期：

  • Y……ログファイルは、行ごとに開閉されます。これにより、コンポーネントがメモリ内にロードされている時にも、ファイルを削除できます。複数のモジュールでログファイルを共有することも可能です。

  • N……ログファイルは、コンポーネントの初期化と終了の時のみに開閉されます。

パラメータ： ミドルウェアに渡す必要があるパラメータ。MRBを使用している場合、この設定は不要。

SNMPに関する設定については、ここを参照してください。


Magicのリクエスタ セットアップ

MRBとサーバのセットアップ

分散アプリケーション > Magicのリクエスタ

MRBは、Magicエンジンが実行されるPCと同じPCでも異なるPC上でも動作させることができます。どちらの場合でも、MRBと実行エンジン間の通信はTCP/IPソケットで実行されます。


インターネットリクエスタ

分散アプリケーション >

インターネットリクエスタを使用すると、Magicアプリケーションサーバは、Webサーバを通してブラウザからのリクエストに応答できます。リクエストされたMagicプログラムは、HTMLファイルを作成してブラウザに返します。

ブラウザは、Webサーバ上に常駐するインターネットリクエスタをアクティブにしてMagicアプリケーションに接続します。

インターネットリクエスタがアクティブになると、リクエストは使用可能な実行エンジンに渡されます。アプリケーションサーバタスクの結果はリクエスタに戻され、ブラウザに表示されます。

参照

インターネット上でのMagicの利用

インターネットリクエスタのセットアップ

リクエスタの使用方法


インターネットリクエスタ Magicの利用

インターネット上でのMagicの利用

分散アプリケーション > インターネットリクエスタ

MagicとHTMLファイルのオーサリングツールを組み合わせることでブラウザベースのアプリケーションを開発することができます。Magicでは、以下のアプローチにより、インターネットとイントラネット用のアプリケーションを設計して開発することができます。

  • ブラウザクライアント

  • フレームセット

  • マージ

  • XML

これらの方法は、個別に、または組み合わせて使用できます。

参照

アプリケーション開発のコンセプト

インターネットアプリケーションのパラダイム


インターネットリクエスタ Magicの利用 パラダイム

インターネットアプリケーションのパラダイム

分散アプリケーション > インターネットリクエスタ > インターネット上でのMagicの利用

インターネットアプリケーションを構築するため、Magicでは次のようなパラダイムを提供しています。

  • オンライン指向のパラダイム……ブラウザタスクとして定義されたプログラムを使用して、専用の.NETベースのクライアントエンジンと統合されたHTMLファイルを作成します。

  • バッチ指向のパラダイム……バッチタスクとして定義されたプログラムを使用して、ブラウザからパラメータを受け取り、必要なインタフェースとデータからHTMLファイルを作成します。

注意：

インターネットプログラムにて、日付項目にパラメータとして不正な値を渡した場合、日付は「7908/01/04」となります。


インターネットリクエスタ Magicの利用 開発のコンセプト

アプリケーション開発のコンセプト

分散アプリケーション > インターネットリクエスタ > インターネット上でのMagicの利用

主要コンポーネント

インターネットアプリケーションの主要コンポーネントは次のとおりです。

  • アプリケーションサーバ

  • Webサーバと対応インターネットリクエスタ

  • Webブラウザ

  • MRB

ソフトウェア要件

  • サポートされるミドルウェア……Magicアプリケーションサーバでサポートされているミドルウェアモジュールをロードして実行する必要があります。詳細については、「サポートされるミドルウェア」を参照してください。

  • Webサーバ……インターネット用Magicアプリケーションを開発するには、Webサーバをインストールする必要があります。Webサーバ上には、インターネットリクエスタモジュールをインストールする必要があります。通常のMagicのインストール処理で、インストールされているWebサーバをインストールプログラムが自動的に検出し、必要なインターネットリクエスタモジュールの定義と設定を行います。


インターネットリクエスタ セットアップ

インターネットリクエスタのセットアップ

分散アプリケーション > インターネットリクエスタ

Magicでは、さまざまなタイプのWebサーバ用に対応するインターネットリクエスタが提供されます。

  • MGrqispi10x.dll……Microsoft Webサーバで使用できるインターネットリクエスタ。

  • MGrqcgi10x.exe……ほとんどのWebサーバへのアクセスに使用できるインターネットリクエスタ。このCGIベースのリクエスタは、上の特化したリクエスタよりパフォーマンスが低下します。

インターネットリクエスタモジュールには、次のようなファイルも必要です。

  • MGrqgnrc10x.dll……汎用メッセージレイヤ

  • MGrqhttp10x.dll……HTTPサービスレイヤ

  • MGREQ.INI……初期化ファイル

参照

Microsoft Web サーバ

その他のWebサーバ

インターネットアプリケーションのパラダイム


インターネットリクエスタ セットアップ IIS

Microsoft Web サーバ

分散アプリケーション > インターネットリクエスタ > インターネットリクエスタのセットアップ

Microsoft Webサーバを使用する場合、以下の操作を実行します。

注意：

MagicがインストールされるPCにWebサーバが既にインストールされている場合は、Magicのインストーラによって環境設定を行います。

ここでは、Webサーバが別のPCにある場合を想定した手動での環境設定を例として説明しています。

  1. MGrqispi10x.dllファイル、MGrqgnrc10x.dllファイル、MGrqhttp10x.dllファイル、MGREQ.INIファイルをMagicノインストールディレクトリ内のScriptsサブディレクトリに配置します。

  2. ScriptsサブディレクトリにWebサーバのエイリアスを割り当て、実行権利を設定します。

  3. [設定/動作環境]ダイアログの[サーバ]タブで、[HTTPリクエスタ]欄を次のような形式で指定します。

http://server address/Mgscripts/MGrqispi10x.DLL

//の後ろは実際のサーバアドレスで置き換えます。

  4. Webサーバに仮想ディレクトリを追加し、このディレクトリにMGBCL10x_XXXX.XXを配置します。

  5. このディレクトリに読取権利を設定します。

  6. [設定/動作環境]ダイアログの[Webドキュメントパスの別名]欄にこのディレクトリのエイリアスを指定します。また、[Webドキュメントパス]欄にこのディレクトリのパスを指定します。

  7. Webサーバを再起動します。

注意：

Webサーバのエイリアスを使用して独自のディレクトリを定義し、そのディレクトリに実行権利を付与して使用することも可能です。


インターネットリクエスタ セットアップ CGI

その他のWebサーバ

分散アプリケーション > インターネットリクエスタ > インターネットリクエスタのセットアップ

Microsoft以外のWebサーバを使用する場合、以下を実行します。

注意：

Microsoft のWebサーバ以外は、Magicのインストーラによる環境設定ができません。

ここでは、Webサーバが別のPCにある場合を想定した手動での環境設定を例として説明しています。

  1. MGrqcgi10x.exeファイル、MGrqgnrc10x.dllファイル、MGrqhttp10x.dllファイル、MGREQ.INIファイルをWebサーバの実行可能ディレクトリ（CGI-BINなど）に配置します。

  2. このディレクトリに実行権利を設定します。

  3. [設定/動作環境]ダイアログの[アプリケーションサーバ]タブで、[HTTPリクエスタ]欄を次のように設定します。

    http://your server address/CGI-BIN/MGRQCGI10x.EXE

//の後ろは実際のサーバアドレスで置き換えます。

  4. Webサーバに仮想ディレクトリを追加し、このディレクトリにMGBCL10x_XXXX.XXを配置します。

  5. このディレクトリに読取権利を設定します。

  6. [設定/動作環境]ダイアログの[Webドキュメントパスの別名]欄にこのディレクトリのエイリアスを指定します。また、[Webドキュメントパス]欄にこのディレクトリのパスを指定します。

  7. Webサーバを再起動します。

注意：

Webサーバのエイリアスを使用して独自のディレクトリを定義し、そのディレクトリに実行権利を付与して使用することも可能です。


第3世代言語の呼び出し

分散アプリケーション >

[コールUDP]処理コマンドを使用することにより、第3世代言語（Cなど）によるプログラムを実行することができます。必要であれば、パラメータを渡すこともできます。このコマンドでプログラムを呼び出す場合、Cの呼び出し規則が使われます。また、呼び出しはメモリ上で実行され、ユーザプロシージャはMagicの内部ルーチンとして扱われます。

次のような用途で[コールUDP]処理コマンドを使用します。

  • このコマンドを使用して、Magicの機能を拡張できます。例えば、ユーザが作成したルーチンを呼び出して、Magicではサポートされていないタスクや機能の実現が可能です。

  • Magic以外の環境で作成されたコードをMagic上で利用できます。

  • 外部プロシージャを使用して、特殊な計算を高速で処理できます。


SNMPサポート

分散アプリケーション >

SNMP(Simple Network Management Protocol) は、ネットワーク管理を制御し、ネットワークデバイスやそれらの機能をモニタするためのプロトコルです。アプリケーションやMagic モジュールは、あらかじめ設定されているネットワーク管理ステーション（NMS）にトラップメッセージを送ることができ、この内容はSNMPモニタで参照することができます。

エラーや、異常終了などの例外的なイベントが発生した場合、システム管理者は、このようなメッセージを基にアプリケーションやMagic モジュールを確認したり制御したすることができます。

Magic のSNMP 機能を利用するには、OSにSNMPエージェントがインストールされている必要があります。

Magic のインストール処理時にSNMP拡張モジュール（MGsnmp.dll ファイル）が選択されている場合、Magic のインストールフォルダにコピーされます。

Magicは、Supportサブフォルダ内にMagic.mib とMagic_trap.mib という２つのMIB ファイルをインストールします。このMIB ファイルは、インストールされているNMS 用に（拡張子などを）変更してNMS サーバ環境にコピーしてください。使用するNWS サーバによっては、MIB ファイルのロード処理を実行する必要があります。

MRBがトラップメッセージを送信するための環境設定情報を、MGREQ.INI と MGRB.INIに設定します。

参照

Magic リクエスタの設定

MRB の設定

環境設定

SNMPNotify 関数

トラップ

NMS からアプリケーションサーバ情報を参照

NMS からアプリケーションを制御

SNMP モジュールのインストール

サポートされるSNMPエージェント


SNMPサポート MGREQ.INI

Magic リクエスタの設定

分散アプリケーション > SNMPサポート

MGREQ.INIの、[SNMP]セクションで以下のように指定します。

EnableAgent = Y, N

Magic のSNMP 拡張モジュールを有効にするかどうかを指定します。

EnableAgent = Yes の場合、NMS でMagic をモニタすることができるようになります。

通常は、SNMP 拡張モジュールのインストール処理によってこのパラメータは、「Yes」に設定されます。

EnableTraps = Y, N

Magic がトラップメッセージをSNMP モニタに送るかどうかを指定します。

NMSAddress

NMS がインストールされたサーバのホスト名かIP アドレスを指定します。

Version = 1,2

NMS がサポートするSNMP のバージョンを指定します。

Community

コミュニティ名を指定します

ReportStatusCode = 107,109,127-150

SNMP モニタに送られるエラーコードを指定します。カンマやハイフンの組み合わせで、値の範囲を指定できます。例えば、103,104,105、または、102-107,109 と指定できます。全てのエラーコードをモニタするには、0-9999 と指定してください。

エラーコードは負値ですが、エラーコードの範囲を指定している場合は、正値で指定します。


SNMPサポート Mgrb.ini

MRB の設定

分散アプリケーション > SNMPサポート

MGRB.INIの[SNMP]セクションを以下のように指定します。

AverageWaitTime = N (秒)　(デフォルト値：3)

リクエストが利用可能なアプリケーションサーバを待つ平均時間を秒数で指定します。平均待ち時間がこの指定値を超えた場合、SNMP トラップメッセージがNMS に送られます。

AverageProcessTime = N (秒)　(デフォルト値：30)

リクエストがアプリケーションサーバで処理される平均時間を秒数で指定します。リクエストが送られるたびに、この値は登録された全アプリケーションサーバに対してチェックされます。平均処理時間がこの指定値を超える場合は、SNMP トラップメッセージがNMS に送られます。

DelayThresholdTraps = N (分)

指定されたタイプのリクエストがしきい値の間に待たなければならない時間を分数で指定します。これはNMS 側がオーバフローすることを回避するためです。デフォルト値は1 分です。


SNMPサポート 環境設定

環境設定

分散アプリケーション > SNMPサポート

SNMP データベース接続しきい値

[環境設定] ダイアログの[外部参照ファイル]タブにある[SNMP データベース接続しきい値]に値を指定することで、Magic がDBMS に対して指定した接続数に対するしきい値（割合）を超えて接続した場合に、トラップを送るように指定することができます。

例えば、あるDBMS の[最大接続数]が「10」と指定され、[SNMP データベース接続しきい値]が「50」と指定された場合、Magic は、DBMS へ5 接続（10 の50%）に達した場合、トラップメッセージをNMS に送ります。


SNMPサポート トラップ

トラップ

分散アプリケーション > SNMPサポート

MagicのSNMP サポートには、トラップと呼ばれるイベント通知機能があります。トラップは、重要なイベントをNMS に非同期で送信する機能です。

Magicが通知するトラップには、Magicのモジュールが自動的に発行するものと、アプリケーションによって意図的に通知させることができるものの２種類があります。

自動的に通知するもの

Magic エンジンから自動的に通知されるトラップ

以下のような場合、Magic エンジンは自動的にトラップメッセージをNMS に送信します。

  • Magic やMagic ゲートウェイでスレッドクラッシュや致命的エラーが発生した場合

  • ライセンス制限によって終了した場合

  • 指定されたDBMS に接続できなかった場合

  • データベース接続のしきい値を超えた場合

MRB から自動的に通知されるトラップ

以下のような場合、MRB は自動的にトラップメッセージをNMS に送信します。

  • アプリケーションサーバが停止したり起動した場合。この場合トラップメッセージには、アプリケーションサーバのアドレス（ホスト名／ポート番号）が含まれます。

  • アプリケーションサーバが、MRB との接続をアボートした場合

  • MRBがアボートした場合（再起動後に送信します。）

  • タイムアウトが発生した場合

リクエスタから自動的に通知されるトラップ

  • リクエスタのエラーが発生した場合、そのエラーコードを送信します。

アプリケーションによって通知するもの

以下のような方法で、Magic アプリケーションよりトラップメッセージを送信させることができます。

SNMPNotify 関数の使用

SNMPNotify 関数を使用することで、Magic アプリケーションよりNMS にトラップメッセージを送ることができます。


SNMPサポート サーバ情報取得

NMS からアプリケーションサーバ情報を参照

分散アプリケーション > SNMPサポート

NMS のGet オペレーションを利用することで、Magic アプリケーションサーバの情報を取得することができます。

Get オペレーションのパラメータとして、[private.enterprises.magic.query]以下のMIB オブジェクトID を指定します。

具体的な実行方法は、使用するNMS によって異なります。

参照

アプリケーションサーバ情報

リクエストキュー情報

統計情報


SNMPサポート サーバ情報取得 APサーバ情報

アプリケーションサーバ情報 (QUE=RT)

分散アプリケーション > SNMPサポート > NMSからアプリケーションサーバ情報を参照

QueryRTTable 内の以下のキーワードを指定することで、NMSからMagicアプリケーションサーバに関する情報を取得することができます。

# | 参照情報 | MIB ノード
1 | ユニークなID | entServerEntryIndex
2 | アプリケーションサーバのホスト名 | entServerHost
3 | アプリケーションサーバのポート番号 | entServerPort
4 | オープンされたアプリケーション名 | openedApplication
5 | アプリケーションサーバの優先順位 | entPriority
6 | 実行中のスレッド数 | runningThreads
7 | 最大スレッド数 | peakThreads
8 | 現在のコンテキスト数 | runningContexts
9 | 最大コンテキスト数 | peakContexts
10 | 処理されたリクエスト数 | requestsServed
11 | 発生したエラー数 | executionErrors


SNMPサポート サーバ情報取得 リクエストキュー

リクエストキュー情報 (QUE=QUE)

分散アプリケーション > SNMPサポート > NMSからアプリケーションサーバ情報を参照

QueryQueTable内の以下のキーワードを指定することで、NMSからキューの情報を取得することができます。

# | 参照情報 | MIB ノード
1 | ユニークなID | entServerQueEntryIndex
2 | アプリケーション名 | application
3 | ユーザ名 | username
4 | リクエストの優先順位 | priorityNum
5 | リクエストID | requestId
6 | クライアントのホスト名 | clientHostName
7 | クライアントのプロセスID | clientProcessId
8 | リクエスト送信時間 | requestSubmittingTime


SNMPサポート サーバ情報取得 統計情報

統計情報 (QUE=LOAD)

分散アプリケーション > SNMPサポート > NMSからアプリケーションサーバ情報を参照

QueryLoad 内の以下のキーワードを指定することで、NMSから、MRBが管理している統計情報を取得できます。

# | 参照情報 | MIB ノード
1 | MRBのホストアドレス | brokerHost
2 | MRBのポート番号 | brokerPort
3 | 平均待ち時間 | averageWaitTime
4 | MRBに送ったリクエストの総数 | totalRequestsNumber
5 | ペンディングリクエストの総数 | pendingRequestsNumber
6 | 処理中のリクエストの総数 | inProgressRequestsNumber
7 | 終了したリクエストの総数 | completedRequestsNumber
8 | 失敗したリクエストの総数 | failedRequestsNumber


SNMPサポート サーバ制御

NMSからアプリケーションを制御

分散アプリケーション > SNMPサポート

NMSのSetオペレーションによってMRBの情報を設定したり、Magicエンジンを制御したりすることができます。Setオペレーションのパラメータとして、[private.enterprises.magic.manage]以下のMIB オブジェクトIDを指定します。

具体的な実行方法は、使用するNMSによって異なります。

例：IBM Tivoli NetView の場合は、MIBブラウザよりMIBオブジェクトIDを指定してから、[MIBインスタンス]と[新規値]を指定して、[設定]ボタンをクリックします。

制御内容 | MIB ノード | パラメータ
Magic エンジンの停止 | [shutdownEntServerRequest] shutdownEntServer graceful | Host/Port 数値（シャットダウン時間：秒数）
Magic エンジンの起動 | [startEntServerRequest] exeEntryEntServer startupParameters | [MRB_EXECUTABLE_LIST]に登録されたキーワード 起動時のパラメータ
エンジンの優先順位を指定 | [priorityEntServerRequest] priorityEntServer priority | サーバアドレス 優先順位（1～5）
指定したエンジンの最大スレッドカウンタをリセット | [resetPeakThreadCount] resetEntServerThreadCount | サーバアドレス
指定したエンジンの最大コンテキストカウンタをリセット | [resetPeakContextCount] resetEntServerPeakContextCount | サーバアドレス
送信リクエスト数をリセット | [resetNumRequestServed] resetEntServerNumRequest Served | サーバアドレス
実行エラー数のリセット | [resetNumExecutionError] resetEntServerNumExecuti onError | サーバアドレス
全てのカウンタ値のリセット | [resetAllCounters] resetEntServerAllCounters | サーバアドレス

ホストやポートのパラメータの値がアスタリスク (*) の時、Setコマンドは、実行中の全てのアプリケーションサーバに影響します。


SNMPサポート インストール

SNMPモジュールのインストール

分散アプリケーション > SNMPサポート

MagicでSNMPをサポートするには、OSにSNMPエージェント（SNMPサービス）がインストールされていなければなりません。

すでにOSにインストールされている場合は、Magicのインストール処理時にMagicのSNMPモジュールが自動的にインストールされます。また、MGREQ.INI の EnableAgentパラメータも「Yes」に設定し、SNMPサービスを再起動します。


SNMPサポート サポートするSNMPエージェント

サポートされるSNMPエージェント

分散アプリケーション > SNMPサポート

サポートされるSNMPエージェントには以下のものがあります。

  • Windows …… Microsoft SNMP サービス

  • Linux …… Net-SNMP エージェント

  • iSeries …… ネイティブ SNMP エージェント

SNMP サービスのプロパティを以下のように指定します。

セキュリティ

  • 受け付けるコミュニティ名……「public」の権利を「READ WRITE」（または「読み取り、書き込み」）に設定します。

トラップ

  • コミュニティ名……public

  • トラップ送信先……送信先のホスト名かIP アドレス


バッチ形式のHTMLプログラム

分散アプリケーション >

従来形式のインターネットアプリケーションフロー

従来形式のインターネットアプリケーションは、ブラウザクライアント形式のアプリケーションと異なり、Magicアプリケーションサーバとの間で、常時接続が確保されているわけではありません。この形式のアプリケーションは、バックグラウンドでMagicサーバがHTMLページを生成するバッチ処理になります。イメージ、データ、スタティックテキストなどを含むHTMLページを生成すると、その内容がクライアント上のブラウザに送信され、この時点でMagicのタスクは終了します。HTMLページは、クライアントのブラウザ上で独立したエンティティになり、MagicアプリケーションサーバとMRBの接続は切断されます。

このようなバッチ形式のインターネットアプリケーションは、通常の場合、ページ単位で動作します。ブラウザは、ハイパーリンクかURLアドレスで、次のHTMLページを取得するリクエストを送信します。

Webサーバは、パラメータを含めてリクエストの内容を読み取ります。WebサーバはHTMLファイルをブラウザに送信します。ブラウザは、情報をWebサーバに送信できるようになります。

クライアントパラメータを含むリクエストをブラウザから受け取ると、Magicアプリケーションサーバは、HTMLファイルを生成し、使用中のインターネットリクエスタでクライアントブラウザに直接送信します。


パーティショニング

アプリケーションパーティショニング

分散アプリケーション >

「アプリケーションパーティショニング」という用語は、ネットワーク上の複数のコンピュータにアプリケーションロジックを分散するアプリケーションの開発プロセスについて説明するために使用されます。最も単純な構成では、アプリケーションを1つのPC上でリモートサービスとして実行し、タスクの実行要求をサーバに送信できます。より複雑な構成では、アプリケーションロジックを複数のサーバに分散できます。

参照

アプリケーションパーティショニングの利点

コールリモート処理コマンド

同期実行と非同期実行

パーティショニングの割当て

アプリケーションの設定

コマンドラインリクエスタ

マルチスレッド

MRBモニタ

アプリケーションパーティショニングの関数


パーティショニング 利点

アプリケーションパーティショニングの利点

分散アプリケーション > アプリケーションパーティショニング

アプリケーションパーティショニングには、次のような利点があります。

環境からの独立

アプリケーションパーティショニングでは、サーバのネットワークにアプリケーションサービスを分散できます。パーティショニングにより、複数のハードウェアプラットフォーム、オペレーティングシステム、ネットワーク、GUI、インターネット、データベース管理システムがサポートされます。その他にも、次のような利点があります。

  • 最適化されたサーバの使用

  • ネットワークトラフィックの減少

  • 資源配分と負荷バランスの改善

  • タスクの並列処理

保守性の向上

アプリケーションパーティショニングでは、一般的に多くのリモートユーザがアプリケーションにアクセスできるようになり、アプリケーションの機能が増します。この機能を使用すると、複数のアプリケーションの同じサービスを再利用できます。その他にも、次のような利点があります。

  • 集中コード管理

  • 複数アプリケーション設定の容易な展開

  • 移植や書換えをせずに既存ソフトウェアとシステムを利用

信頼性の向上

アプリケーションパーティショニングによって、アプリケーションコンポーネントのフェイルオーバが提供され、システムの可用性を向上させることができます。


パーティショニング 同期非同期

同期実行と非同期実行

分散アプリケーション > アプリケーションパーティショニング

リクエスタクライアント、MRB、Magicアプリケーションサーバ（以下、実行エンジン）の間のメッセージのフローは、リクエストが同期（待機あり）であるか非同期（待機なし）であるかによって異なります。

MRB は、リクエストクライアントから同期リクエストを受信すると、リクエストに対するリクエストID を割当てます。利用できる実行エンジンを検索し、リクエストID と実行エンジンアドレスをリクエストクライアントに送信します。MRB がリクエストID と実行エンジンアドレスを返すと、リクエストクライアントと実行エンジンの間で、MRB の仲介なくやり取りが直接行われます。リクエストが完了すると、実行エンジンはリクエスト結果をリクエスタクライアントに直接送信するとともに、実行エンジンが使用可能になったことをMRB に通知します。このリクエスト処理の間、クライアントは実行エンジンがリクエスト結果を返すまで待機する必要があります。

MRB は、リクエストクライアントから非同期リクエストを受信すると、リクエストにリクエストID を割当てます。リクエスタクライアントは、リクエスト結果を待たずに処理を再開します。MRB は実行エンジンアドレスをクライアントに返さず、クライアントと実行エンジンは直接やり取りしません。そのため、必要に応じて、MRB にそのリクエストの状態を問い合わせる必要があります。

参照

同期リクエストの処理

非同期リクエストの処理


パーティショニング 同期非同期 同期

同期リクエストの処理

分散アプリケーション > アプリケーションパーティショニング > 同期実行と非同期実行

MRB は、リクエストクライアントから同期リクエストを受信すると、次のように応答します。

  • リクエストにリクエストID を割当てます。

  • 使用できる実行エンジンを検索し、リクエストID と実行エンジンアドレスをリクエストクライアントに送信します。

MRB がリクエストID と実行エンジンアドレスを返すと、リクエストクライアントと実行エンジンの間で、MRB の仲介なくやり取りが直接行われます。リクエストが完了すると、実行エンジンはリクエスト結果をリクエスタクライアントに直接送信するとともに、実行エンジンが使用可能になったことをMRB に通知します。このリクエスト処理の間、クライアントは実行エンジンがリクエスト結果を返すまで待機する必要があります。


パーティショニング 同期非同期 非同期

非同期リクエストの処理

分散アプリケーション > アプリケーションパーティショニング > 同期実行と非同期実行

MRB は、リクエストクライアントから非同期リクエストを受信すると、次のように応答します。

  • リクエストにリクエストID を割当てます。

  • 使用できる実行エンジンを検索し、クライアントのリクエストを送信します。

  • リクエストの実行が完了すると、MRB は通知を受け、実行エンジンを次のクライアントリクエストに再度割当てます。

リクエスタクライアントは、リクエスト結果を待たずに処理を再開します。MRB は実行エンジンアドレスをクライアントに返さず、クライアントと実行エンジンは直接やり取りしません。そのため、必要に応じて、MRB にそのリクエストの状態を問い合わせる必要があります。


パーティショニング 割り当て

パーティショニングの割当て

分散アプリケーション > アプリケーションパーティショニング

Magic は、[ビジュアル接続]ダイアログでサーバとサービスの接続をドラッグ&ドロップすることでパーティショニングの設定をダイナミックに変更することができます。


パーティショニング 設定

アプリケーションの設定

分散アプリケーション > アプリケーションパーティショニング

パーティショニング対象を選択する

アプリケーションパーティショニングの第1段階は、1つあるいは複数のサーバPC上で実行するアプリケーション構成要素を選択することです。選択する構成要素は、サーバ上で実行した場合に、パフォーマンスと保守性の大幅な向上が見込まれるものでなければなりません。プログラムやタスクをクライアントとアプリケーションサーバのどちらで実行するかは、アプリケーションの設計段階で決定する必要はありませんが、考慮に入れる必要はあります。パーティショニングに適するのは、バックグラウンドモードで実行するタスクです。

実行時の動作

実行時、[コールリモート]処理コマンドが実行されると、実行エンジンによって有効なサーバが検索されます。その後、リモートコマンドがMagicのリクエスタに渡されます。一方、[コールリモート]処理コマンドの[ウェイト]欄の値が「No」の場合、クライアントの待機は行われません。ここで[ウェイト]欄の値が「Yes」の場合、クライアントはいったん待機状態に入り、そのコマンドによる処理が完了すると（または、タイムアウトに達すると）、通常の動作に戻ります。その後、処理コマンドが完了すると、送られたパラメータ項目が必要に応じて再計算され、後続のプログラムフローが再開されます。

[コールリモート]処理コマンドの実行時にエラーが発生した場合のエラーコードやエラーメッセージは、「パーティショニングエラー」を参照してください。


パーティショニング コマンドラインリクエスタ

コマンドラインリクエスタ

分散アプリケーション > アプリケーションパーティショニング

コマンドラインリクエスタを使用することで、以下のような処理を実行することができます。

  • リモートMagic実行エンジンの起動

  • MRBの終了とMagic実行エンジンの起動と終了

  • Magic実行エンジンに送信された特定リクエストのステータス照会

  • Magic実行エンジンのステータス照会

コマンドラインインタフェース

コマンドラインリクエスタはMGrqcmdl.exeプログラムであり、DOSプロンプトウィンドウで実行できます。その他のMagicリクエスタと同じように、コマンドラインリクエスタではMGREQ.INIファイルを使用して、やり取りするMRBのアドレスを指定できます。

コマンドラインリクエスタを使用するための構文は、パラメータを指定せずにMGrqcmdlコマンドを実行すると表示されます。

パラメータ | サブパラメータ | 説明
-APPNAME |  | 実行するアプリケーション名を指定します。
 |  | 例：-APPNAME=PetShopDemo
-PRGNAME |  | 実行するプログラム名を指定します。
 |  | 例：-PRGNAME=OrderList
[-ARGUMENTS] |  | プログラムに渡すパラメータを指定します。（カンマ区切）
 |  | 例：-ARGUMENTS=-AStringValue,-N1000,-LTRUE,-U
[-VARIABLES] |  | グローバル変数を指定します。（カンマ区切）
 |  | 例：-VARIABLES=var1=AStringValue,var2=-N1000,var3=LTRUE
[-PRIORITY] |  | 実行優先度を指定します。（0～9）
 |  | 例：-PRIORITY=4
[-USERNAME] |  | アプリケーションに対応したユーザ名を指定します。
 |  | 例： -USERNAME=supervisor
[-PASSWORD] |  | アプリケーションまたはMRB に対応したパスワードを指定します。
 |  | 例： -PASSWORD=mypass
[-FILENAME] |  | 結果ファイルの名前を指定します。
 |  | 例：-FILENAME=MGRQCMDL.OUT
[-NOWAIT ] |  | 非同期モード指定を行います。
[-HOST, -PORT] |  | MRB のアドレス(ホスト名、ポート番号) を指定します。
 |  | 例： -HOST=my server -PORT=2001
-QUERY |  | リクエストの参照を行います。
 | RT[(appname)] | 登録されたエンジンの参照を行います。
 |  | 例：-QUERY=RT -QUERY=RT(Pet Shop Demo)
 | APP[(host/port)] | エンジンでサポートされるアプリケーションの参照を行います。
 |  | 例： -QUERY=APP(my server/1500)
 | QUEUE[(appname)] | キュー内のリクエストの参照を行います。
 |  | 例： -QUERY=QUEUE
 | LOG[(appname)][=reqid[-reqid]] | 履歴情報の参照を行います。
 |  | 例： -QUERY=LOG=100-90
 | LOAD [(appname)] | アプリケーションやMRB についての統計情報の参照を行います。
 |  | 例： -QUERY=LOAD(Pet Shop Demo)
 | PENDING =<reqid> | 指定したリクエスト以前のペンディング状態のリクエストの数を参照します。
 |  | 例： -QUERY=PENDING=1
-REQID | =<reqid> | リクエストの操作(優先度, 削除) の際にリクエストID を指定します。
 |  | 例： -REQID=1
-CLEAR |  | キューからリクエストを削除します。
 |  | 例： -CLEAR -REQID=1
-PRIORITY |  | キューの中のリクエストの優先度を変更します。
 |  | 例： -PRIORITY=3 -REQID=1
-EXE | =<RuntimeName> [/< args>] | MRB によって、実行モジュールを起動します。「RuntimeName」は、MGRB.INIの[APPLICATIONS LIST]セクションに定義されている名前です。
-TERMINATE |  | リクエストを終了します。
 | ALL | MRB を含めた全てのエンジンを指定します。
 |  | 例： -TERMINATE=ALL
 | RTS | MRB を除いた全てのエンジンを指定します。
 | host/port | エンジンを指定します。
 |  | 例： -TERMINATE=my_server/1500
 | -TIMEOUT | 終了までの時間を指定します。（秒数）


パーティショニング マルチスレッド

マルチスレッド

分散アプリケーション > アプリケーションパーティショニング

バックグラウンドで動作するMagicアプリケーションサーバや並行起動を有効に設定されたオンラインプログラムは、マルチスレッドで動作します。

各スレッドは異なる実行モードのコンテキストにアクセスするので、ほかのスレッドに影響することはありません。

オンラインプログラムをマルチスレッドで動作させるための設定については、「MDIとSDI」を参照してください。

参照

マルチスレッドの設定

マルチスレッドにおける考慮事項

共有リソース

実行関数

外部プログラムの呼び出し

マルチスレッド（Javaとの連携）


パーティショニング マルチスレッド 環境設定

マルチスレッドの設定

分散アプリケーション > アプリケーションパーティショニング > マルチスレッド

Magicはマルチスレッド処理を実行する上で、以下の動作設定や関数を提供しています。

最大並行リクエスト数

最大へ移行ユーザ数

INIGet 関数

INIPut 関数

RqRtCtx 関数

RqRtCtxs 関数


パーティショニング マルチスレッド 考慮事項

マルチスレッドにおける考慮事項

分散アプリケーション > アプリケーションパーティショニング > マルチスレッド

マルチスレッドで動作させる場合、以下の点を考慮してください。

  • 常駐テーブルは全てのコンテキストで共有されます。これによって、コンテキストが個別に常駐テーブルをロードする必要がないため、パフォーマンスが向上します。

  • アプリケーションサーバは、他のリクエストが処理中ではない場合に限り、リクエストによって現在のアプリケーションを終了し、別のアプリケーションを開くことができます。

  • ユーザは、関数を使用して、各スレッドのユーザ権限の追加や削除を行うことができます。

  • 各アプリケーションサーバでは、1 つのTCP/IP ポートが使用されます。

  • 各実行モードコンテキストでは、メインプログラムの異なるコピーを使用します。

  • 各スレッドごとに独立した個別の処理として動作します。しかしスレッド間のロックはメモリ内で共有されます。各処理に対して、1 つの端末番号が使用されます。


パーティショニング マルチスレッド 共有リソース

共有リソース

分散アプリケーション > アプリケーションパーティショニング > マルチスレッド

次のリソースは、全ての実行モードスレッドで共有されます。

  • DBMS接続

  • 外部デバイス


パーティショニング マルチスレッド 実行関数

実行関数

分散アプリケーション > アプリケーションパーティショニング > マルチスレッド

以下の実行関数が有効です。

  • RqExe …… MRBに[MRB_EXECUTABLE_LIST]に定義されているエンジンを起動するように要求します。

  • RqRtTrm …… アプリケーションサーバを終了します。

  • RqRtInf …… 処理中のスレッド数、ライセンスで使用可能な最大スレッド数、使用できるスレッド数を取得します。

  • DiscSrvr …… 不要なスレッドを切断します。

  • DbReload …… 常駐テーブルの内容を再読込し、全スレッドがアクセスする常駐テーブルの内容を置き換えます。

  • DbDel …… 常駐テーブルの内容を削除します。テーブルの物理レコードは削除されません。


パーティショニング マルチスレッド 外部プログラム

外部プログラムの呼び出し

分散アプリケーション > アプリケーションパーティショニング > マルチスレッド

DLLやユーザプロシジャの呼び出し

外部DLL は、マルチスレッド環境との互換性を有している必要があります。

アプリケーションサーバの終了

1つ以上のリクエストの処理中にリクエスタから終了リクエストが送信された場合、指定されたフラグに基づいてリクエストの処理が終了してからアプリケーションサーバを終了するか否かが決定されます。終了を待たない場合、リクエスタは警告メッセージを受け取ります。

構文

RQRTTRM(..., ‘T’log | ‘F’log)

mgrqcmdl -ter=server/port -wait


パーティショニング MRBモニタ

MRBモニタ

分散アプリケーション > アプリケーションパーティショニング

Magic には、MRB の実行状況をモニタするアプリケーションが添付されています。このアプリケーションは、MRB のモニタリングツールとして利用できるだけでなく、Magic のアプリケーションパーティショニング関数の具体的な使用例として、プログラム内容を公開しています。

モニタアプリケーションではサービスを選択でき、次の機能が提供されます。

  • サーバエンジンと特性のリストの表示

  • サーバエンジンがサポートするアプリケーションのリストの表示

  • リクエストキューの表示

  • 保留中リクエストのリストの表示

  • MRBが起動後に処理したリクエストに関する統計の表示

  • 新しいサーバインスタンスの起動

  • サーバインスタンスの終了


パーティショニング 関数

アプリケーションパーティショニングの関数

分散アプリケーション > アプリケーションパーティショニング

以下は、アプリケーションパーティショニングをサポートする関数です。

関数 | 説明
GetParam | グローバルパラメータとして渡されているパラメータ値を取得します。
RqExe | MRB に登録されている実行可能モジュールのリストから、新しいエントリを実行します。
RqLoad | MRB で処理されるサービスに関しての統計情報を取得します。
RqQueDel | キュー内で待ち状態にあるリクエストを削除します。
RqQueLst | キュー内で待ち状態にあるリクエストの数を取得します。
RqQuePri | キュー内で待ち状態にあるリクエストの優先順位を再設定します。
RqReqInf | MRBのキューまたは履歴ログから得られる、あるリクエストに関する一連の情報を取得します。この機能を利用するためには、この実行前にRqQueLst またはRqReqLstを実行しておく必要があります。
RqReqLst | MRB の履歴ログから得られるリクエストID の範囲によって識別される、リクエストエントリの数を取得します。
RqRtApp | MRB に登録された１つまたは複数の実行エンジンによってサポートされるアプリケーションに関する情報を取得します。
RqRtApps | MRB に登録された１つまたは全てのアプリケーションサーバによってサポートされるアプリケーションの数を取得します。
RqRtInf | MRB に登録されたアプリケーションサーバ情報を取得します。
RqRts | MRB に登録されたアプリケーションサーバの数を取得します。
RqRtTrm | リクエスタによって起動されている１つまたは複数のアプリケーションサーバの処理を終了させます。
RqStat | あるリクエストの状態を示す数値を取得します。
SetParam | グローバルパラメータのパラメータ値を設定します。


MRBのモニタ

Brokerモニタ

分散アプリケーション >

Brokerモニタは、指定されたMRB経由でアプリケーションサーバを監視するものです。

以下のどれかの方法で、Brokerモニタを実行することができます。

  • Magicのインスト－ルディレクトリ内のMGRQMonitor.exeとういう実行ファイルをダブルクリックします。

  • Windowsの[スタート]メニューから[Magic Studio V10（またはMagic Enterprise Server V10）] > [ブローカとリクエスタ] > [Brokerモニタ]を選択します。

  • ステータスバーのMRBのアイコンを右クリックして[Broker Monitor]を選択します。

Brokerモニタは、以下のウィンドウで構成されています。

  • アプリケーションサーバ

  • コンテキスト

  • リクエスト

  • 統計

  • 利用可能アプリケーション

  • ウィンドウ表示

  • サーバのモニタ


MRBのモニタ コンテンツ

コンテキスト

分散アプリケーション > Brokerモニタ

このウィンドウは、選択したMRB のコンテキストスレッドを表示します。[コンテキスト]ウィンドウには以下のカラムがあります。

  • コンテキストID……コンテキストのID が表示されます。

  • リクエストID……コンテキスト内で有効なリクエストID が表示されます。

  • プログラム名……コンテキストでオープンされたプログラム名が表示されます。

  • ユーザ名……コンテキスト内でシステムにログインしたユーザ名が表示されます。

  • 状態……コンテキストの状態が表示されます。

  • 未使用時間……コンテキストが最後に実行してからの経過時間が表示されます。

[動作]メニューから[コンテキスト破棄]をクリックすると、選択したコンテキストを破棄することができます。

コンテキストが破棄される際に、確認表示のダイアログボックスが表示されます。アクティブなコンテキストに対して[OK]をクリックすると、コンテキストは破棄されます。コンテキストがアクティブでない場合、モニタユーティリティは、エラーメッセージを表示します。コンテキストが破棄された場合、カーソルは次のコンテキストにパークします。


MRBのモニタ アプリケーションサーバ

アプリケーションサーバ

分散アプリケーション > Brokerモニタ

このウィンドウには、全てのアクティブなサーバが表示されます。[動作]メニューから[アプリケーションサーバ起動]や[アプリケーションサーバ停止]をクリックすることで、アプリケーションサーバエンジンを起動したり停止させたりできます。

[アプリケーションサーバ]ウィンドウには以下のカラムがあります。

  • ホスト/ポート……エンジンが実行されているホスト名とポート番号が表示されます。

  • PID……エンジンプロセスのプロセスID が表示されます。

  • アプリケーション……エンジンが実行しているアプリケーション名が表示されます。

  • 状態……エンジンの状態が表示されます。

  • 現在のスレッド数……現在実行中のスレッド数が表示されます。リッチクライアントエンジンの場合は、ユーザ数が表示されます。

  • ピークスレッド数……今までの同時実行スレッド数のピーク値が表示されます。リッチクライアントエンジンの場合は、ユーザ数が表示されます。

  • 最大スレッド数……同時実行可能な最大スレッド数が表示されます。リッチクライアントエンジンの場合は、ユーザ数が表示されます。

  • リクエスト数……処理されたリクエストの数が表示されます。

  • コンテキスト数……有効なコンテキストの数が表示されます。

  • 平均リクエスト時間……リクエストの平均処理時間が表示されます。

アプリケーションサーバを停止させると、確認表示のダイアログボックスが表示されます。稼働中のアプリケーションサーバに対して[OK]をクリックすると、エンジンは終了します。サーバが動作していない場合、モニタユーティリティは、エラーメッセージを表示します。


MRBのモニタ リクエスト

リクエスト

分散アプリケーション > Brokerモニタ

このウィンドウは、選択したMRB によってサーバに送られたリクエストを表示します。

[動作]メニューから[リクエスト削除]をクリックすることで、指定したリクエストを削除することができます。

[リクエスト]ウィンドウには以下のカラムがあります。

  • アプリケーション／プログラム……リクエストの処理を実行しているアプリケーション名とプログラム名が表示されます。

  • クライアント……リクエストを送信したクライアントのホスト名が表示されます。

  • 状態……リクエストの状態を表示します。（失敗、完了、処理中、ペンディング）

  • 送信時刻……リクエストがMRB によって送信された時刻を表示します。

  • 経過時間……リクエストがMRB に送信され、完了するまでの時間（秒数）を表示します。

  • 処理サーバ……リクエストが処理されたサーバのホスト名とポート番号が表示されます。

リクエストが削除される際に、確認表示のダイアログボックスが表示されます。ペンディングのリクエストに対して[OK]をクリックすると、リクエストは削除されます。リクエストがすでに処理されている場合は、削除できません。


MRBのモニタ 利用可能なアプリケーション

利用可能アプリケーション

分散アプリケーション > Brokerモニタ

[表示]メニューの[利用可能アプリケーション]をクリックすると、有効なアプリケーションを表示するウィンドウをオープンすることができます。

[利用可能アプリケーション]ウィンドウには以下のカラムがあります。

  • アプリケーション……リクエストの処理を実行しているアプリケーション名が表示されます。

  • アプリケーションサーバ……アプリケーションが実行されているホスト名が表示されます。


MRBのモニタ 統計

統計

分散アプリケーション > Brokerモニタ

このウィンドウでは、リクエストの統計情報が表示されます。以下の内容が表示されます。

  • 失敗したリクエスト……完了できなかったリクエストの数

  • 完了したリクエスト……完了したリクエストの数

  • 処理中のリクエスト…… 処理中のリクエストの数

  • ペンディング状態のリクエスト……処理待ち状態のリクエストの数

  • 全リクエスト…… 上記の全リクエストの総数

リクエストの数は、色分けされた棒グラフで表示されます。この色は、[オプション]メニューの[リクエストフィルタ]で起動される[リクエストフィルタ]ダイアログで指定できます。[デフォルト]ボタンをクリックするとデフォルト状態に戻すことができます。


MRBのモニタ ウィンドウの表示

ウィンドウ表示

分散アプリケーション > Brokerモニタ

[表示]メニューから表示するウィンドウを選択することができます。

[ウィンドウ]メニューでは、ウィンドウの表示方法を選択できます。[デフォルト配置]をクリックするとオリジナルの表示方法に戻ります。[動作／再表示]（F5）を実行するとウィンドウ表示がリフレッシュされます。

[オプション]メニューの[再表示設定]を実行することで、モニタユーティリティの表示のリフレッシュするタイミングを指定できます。再表示間隔を秒数で指定し、一度の再表示時に取得するリクエストの最大数を指定できます。


MRBのモニタ サーバのモニタ

サーバのモニタ

分散アプリケーション > Brokerモニタ

[モニタ]メニューから、[モニタ開始]をクリックすることで、監視を始めることができます。サブメニューには、選択可能なサーバが表示されます。「Local Broker」がデフォルトです。

[オプション]メニューの[MRB 一覧]をクリックすることで、監視するサーバ（MRB）を追加したり、削除することができます。

[モニタ停止]をクリックすると、サーバの監視を止めることができます。


マルチユーザ環境

マルチユーザアプリケーションを開発する場合、データの共有の方法や範囲が問題になります。つまり、マルチユーザアプリケーションの場合、ワークステーションは多数存在することになりますが、そういったワースステーションでどのようにデータが共有されるようにするか、その処理について検討しなければなりません。

ここではマルチユーザ環境について焦点を当てており、同じデータを複数のユーザで共有する時の設定について記述しています。

参照

定義事項

並行性

テーブルモード

マルチユーザ環境の設定

コンテキスト


マルチユーザ環境 用語

用語

マルチユーザ環境 >

以下は、マルチユーザについての説明を理解する上で必要な用語です。

  • 分離レベル

  • ロック

  • プロセス

  • トランザクション


マルチユーザ環境 用語 分離レベル

分離レベル

マルチユーザ環境 > 用語

分離レベルは、同じトランザクションを同時に使用する間に何が発生するかを定義します。この設定をはデータベース上でのみ変更できます。設定できる分離レベルは使用するDBMSによって異なります。

MS-SQL Server

  • 0……READ UNCOMMITTED（共有ロックは実行されず、排他ロックも使用されません。このオプションが設定されている場合には、コミットされていないデータ、つまりダーティ データを読み取ることができます。トランザクションが終了する前にデータ内の値を変更でき、行がデータ セットに現れたり消えたりします。）

  • 1……READ COMMITTED（データが読み取られている間、ダーティ リードを回避するために共有ロックが保持されるように指定します。しかし、トランザクションが終了する前にデータを変更することができるので、反復不能読み取りやファントム データが発生する可能性があります。）

DB2 UDB

  • 0……非コミット読み取り（UR：アプリケーションが他のトランザクションの非コミット変更にアクセスするのを可能にします。 他のアプリケーションが表を消去または変更しようとしない限り、アプリケーションは自分が読み取っている行以外のアプリケーションをロックしません。）

  • 1……カーソル固定（CS：カーソルが任意の行上に置かれている時に、アプリケーションのトランザクションがアクセスするその行をロックします。 次の行が取り出されるか、またはトランザクションが終了するまで、そのロックは有効のままになります。行内のいずれかのデータが変更された場合、データベースに対してその変更内容がコミットされるまでロックは保持されます。）

  • 2……読み取り固定（RS：アプリケーションがトランザクション中に検索する行のみをロックします。 行の読み取りの修飾がトランザクションが完了するまで他のアプリケーション・プロセスによって変更されないようにします。また、他のアプリケーション・プロセスによって変更された行の読み取りは、変更がプロセスによってコミットされるまで行われません。）

  • 3……反復可能読み取り（RR：トランザクション中に参照される、アプリケーション内の行全てをロックします。 プログラムが反復可能読み取り保護を使用する場合、プログラムによって参照される行は、そのプログラムが現行のトランザクションを終了しない限り他のプログラムによって変更できません。）

Oracle

指定は無効です。

分離レベルによって発生する現象

分離レベルによって発生する現象には以下のものがあります。

  • ダーティリード……トランザクション処理において、あるトランザクションが更新されている最中に、他のトランザクションからデータを読み出すことができてしまう現象です。ダーティーリードを禁止すると一貫性は向上しますが、オーバーヘッドを生じさせてしまうことになり、アプリケーションの実行速度を低下させてしまいます。同様に、システムの平行性を低下させてしまうことがあります。

  • 反復不可能なリード……1度目と2度目の読み込みの間にトランザクションをコミットすると，1度目に読み込んだ内容と2度目に読み込んだ内容が異なる可能性があります。このように，複数回の読み込みの結果が，ほかのトランザクションのコミットのタイミングによって変わってくる現象です。反復不可能なリードでは一貫性は向上しますが、並行性は低下します。

  • ファントム……2回の読み込みの間にユーザー1のトランザクションが行を追加したり削除したら，2回目の読み込みでは1回目には無かったレコードが現れたり，それまであったレコードが無くなったりすることになります。この現象を「ファントム」と呼びます。

各分離レベルは、許容する現象によって異なります。以下の表は分離レベルとトランザクション処理を同時実行させた場合に起こる問題の相関関係を示しています。

# | 分離レベル／現象 | ダーティーリード | 反復不可能読み取り | ファントム
0 | READUNCOMMITTED 非コミット読み取り | X | X | X
1 | READCOMMITTED カーソル固定 |  | X | X
2 | 読み取り固定 |  | X | X
3 | 反復可能読み取り |  |  |


マルチユーザ環境 用語 ロック

ロック

マルチユーザ環境 > 用語

ロックは、データを完全に保存するために使用されます。

ユーザがデータを更新した時、何らかの通知が発生することで他のユーザが更新できなくなります。他のユーザはこのデータが現在更新中であることを示す通知を受け取ります。この通知をロックと呼びます。

ロックが発行されない場合、更新情報が失われてしまします。もし、各ユーザのトランザクションが他のユーザについて知らない状態にいると、最終的な更新処理によって、他のユーザの更新内容が上書きされてしまいます。


マルチユーザ環境 用語 プロセス

プロセス

マルチユーザ環境 > 用語

プロセスとは、コンピュータ上で実行中のプログラムのインスタンスを意味します。タスクのように、プロセスが処理を記録できるようにデータの特定のセットが関連付けられて実行しているプログラムです。複数のユーザによって共有されるアプリケーションは、一般的に、各ユーザごとに実行できるステージ上で１つのプロセスを持っています。


マルチユーザ環境 用語 トランザクション

トランザクション

マルチユーザ環境 > 用語

トランザクションとは、データベースでデータ操作のステップの１つです。これは、データベースが実際に更新される前に完全に終わらせなければなりません。もし、この処理に失敗した場合全ての変更内容は取り消されます（これをロールバックといいます。）。

つまり、トランザクションとして管理された処理は「すべて成功」か「すべて失敗」のいずれかであることが保証されます。例えば、資金移動システムをコンピュータで処理する場合、出金処理と入金処理は「どちらも成功」か「どちらも失敗」のどちらかであることが要求されます。「


マルチユーザ環境 並行性

並行性

マルチユーザ環境 >

並行性とは、少なくとも２人のユーザが同じデータを同時にアクセスすることを言います。ここでは、どのようにしてユーザに対してデータの損失が発生することなく同じデータのアクセスを許可するかを説明します。次の例では、並行動作環境下でデータの完全性の重要性を説明しています。

２人のユーザは、｢在庫マスタ｣と呼ばれるデータベーステーブルをアクセスしているものとします。現在９４個の在庫があります。最初のユーザは、（１個の販売実績があったことで）在庫を９３に更新しました。２番目のユーザは（２個の販売実績があったことで）在庫を９２に更新しました。この場合３個販売されたことになりますが、データの完全性が保証されない場合、２個の販売実績のみが反映されてしまいます。

参照

ロック

更新レコードの識別

トランザクション

ロック方式

タスクのネストとロック

分離レベル

差分更新


マルチユーザ環境 並行性 ロック

ロック

マルチユーザ環境 > 並行性

別のトランザクションと競合しているために、実行時に、トランザクションが、テーブルかレコードを開くことができない場合、Magicはテーブルをオープンし続けようとします。アクセス待ちの間、Magicはテーブルかレコードが現在ロックされることを示すメッセージを表示します。

他のユーザがEscキーを押下してタスクをアボートさせたり、トランザクション処理が終了した場合、Magicはテーブルやレコード内容の取得しようとします。もし両方のユーザのトランザクションに矛盾がなければ、テーブルやレコードへのアクセス待の必要はありません。

Magicには、ロック方式として３種類の方法があります。

  • 物理ロック……DBMSによって定義された方法を使用して実行するデータベースロックです。例えば、Oracle で 「SELECT....FOR UPDATE」を使用する場合や、MS-SQL Serverで「SELECT...UPDLOCK」を使用する場合です。

  • 論理ロック……タスクで位置や選択カラムを含んだ Where句を使用することでMagic内でUPDATEコマンドを発行します。

  • Magicロック……Mglocを使用して実行される論理ロックです。

デフォルトは、ODBCを除くSQL系のGateway では物理ロックが使用されます。


マルチユーザ環境 並行性 更新レコード識別

更新レコード識別

マルチユーザ環境 > 並行性

[メインソース特性]や[リンク特性]の[更新レコード識別]特性は、Magicが行の更新を認識する方法を定義します。選択されたオプションは他のユーザが行のフィールドのどの部分をアクセスするかを定義します。

[更新レコード識別]特性のオプションは以下の通りです。

  • P=位置……これは一番低位のレベルです。Magicは、 （Oracleの Row ID のような）ユニークな IDのみを使用してデータベース上のレコードを更新します。この場合は、最後に更新されたものは成功します。複数のユーザが同じ項目を更新するような場合は問題が発生することがあります。一般的に、ID が更新されるか（Oracleではありえませんが）行が削除された場合でなければ、Magicは（更新データを失ったという結果かもしれませんが）この行が更新されたかどうかを認識することはありません。

  • U=位置と更新項目……Magicは、ユニークなIDと更新されたカラムを使用してデータベースのレコードを更新します。例えば、もしユーザが「在庫数」の値を更新するためにレコードをアクセスした場合、Magicは、ユニークなIDと「在庫数」の値を使用してレコードをフェッチします。この方法では、他のユーザが「在庫数」の値を更新しようとした場合、そのユーザは更新データを失ったことを示すメッセージを受け取ります。しかし、あるユーザが「在庫数」の値を更新して、他のユーザが「受注数」欄の値を更新した場合にはデータ損失は発生しません。

  • S=位置と選択項目……Magicは、ユニークなIDとタスク内で選択された全てのカラムを使用してデータベースのレコードを更新します。言い換えると、同じタスクで受注数の値と「受注数」の値を[セレクト]コマンドで定義されていれば、Magicは、ユニークなIDと受注数と「受注数」の値を使用してレコードをフェッチします。この方法では、他のユーザがこれらの値を更新しようとした場合そのユーザは更新データを失ったことを示すメッセージを受け取ります。

例えば、「在庫数」と「受注数」を持ったレコードのあるデータベースを同時にUser-AとUser-B が更新した場合、[更新レコード識別]特性の内容によって以下のような結果になります

設定値 | 「在庫数」の 更新ユーザ | 「受注数」の 更新ユーザ | データの損失 | メッセージ
P=位置 | User-Aと User-B | User-Aと User-B | Yes | No
P=位置 | User-A | User-B | No | No
U=位置と更新項目 | User-Aと User-B | User-Aと User-B | Yes | Yes
U=位置と更新項目 | User-A | User-B | No | No
S=位置と選択項目 | User-A | User-B | Yes | Yes
S=位置と選択項目 | User-B | User-A | Yes | Yes


マルチユーザ環境 並行性 トランザクション

トランザクション

マルチユーザ環境 > 並行性

トランザクションの問題については色々考慮していく必要があります。１つの トランザクションでは、ロック機能によってデータの完全性は増加しますが、並行性は減ります。トランザクションを長くすると並行性はより小さくなります。タスク特性ダイアログの[データ]タブで[トランザクションモード]特性を選択できます。

参照

タスクレベルのトランザクションの使用


マルチユーザ環境 並行性 トランザクション タスクレベル

タスクレベルのトランザクションの使用

マルチユーザ環境 > 並行性 > トランザクション

[トランザクション開始]特性を｢タスク前の前｣に設定すると、シングルトランザクションとして全ての更新処理が記録されます。これは、マルチユーザ環境の場合、並行性は減少しますが、パフォーマンスはよくなります。以下のような点を考慮してください。

  • 並行性を改善するには、データビューに数レコードしかない状態でバッチタスクの[タスク前]でトランザクションを開始してください。もちろん、多くのレコードをロックしたい場合もあるので、これはアプリケーションに依存します。(SQLデータベースの使用時で)パフォーマンスを優先させる場合は、バッチタスクでタスクレベルのトランザクションを使用してください。ISAMタイプのデータベースは、バッチの場合拡張されたトランザクションを利用するために、たくさんのディスクストレージを必要とする可能性があります。

注意：

遅延モードで動作させている場合は、トランザクションを「タスク前の前」で実行するようにはしないでください。これらの処理はキャッシュに保存されますが、キャッシュサイズには限りがあります。

  • オンラインタスクの場合、データソースは長時間ロックされる可能性があります。

  • タスクがトランザクション内で呼ばれた場合、ロックされた行は、そのトランザクションの一部になり、他のユーザからはアクセスできません。

  • 大量のレコードを処理するタスクレベルのトランザクションは、大きなサイズのトランザクションログファイルを作成し、ディスクドライブ上の開き領域を占有することになります。この結果、トランザクションを中止させることになる場合がありますので、ディスクス要領を使い尽くさないように注意してください。

  • トランザクションがすでにオープンされていたり、タスクレベルのトランザクションの場合、Oracleは入力したタスクのデータビューをロックします（範囲内の全てのレコード）。いくつかの場合、これは意図的な動作です。もし、レコードのいくつかをロックしたい場合、それに応じた範囲の調整が必要です。
    この動作は、データの完全性とパフォーマンスに対して有効です。全てのレコードはデータビューの作成でフェッチした場合と同じようにロックされます。他のデータベースでは、データはレコードにパークした時のみロックされます。これは、各レコードに対してデータがロックされるためパフォーマンスに影響します。しかし他方では、並行性は最も高くなります。

参照

データ管理


マルチユーザ環境 並行性 トランザクション レコード前の前

[レコード前]の前でのトランザクション使用

マルチユーザ環境 > 並行性 > トランザクション

トランザクションはデータビューがフェッチされる前にオープンされます。このため、レコードが同時にロックされます。オンラインタスクの場合、人為的要因でデータビューがロックされる時間が決定されます。マルチユーザ環境で[トランザクションモード]を「P=レコード前の前」にするとことはお奨めできません。


マルチユーザ環境 並行性 トランザクション レコード更新前

[レコード更新]前でのトランザクションの使用

マルチユーザ環境 > 並行性 > トランザクション

[トランザクションモード]を「U=レコード更新前」にすると、トランザクションはレコードを更新する手前でオープンされます。Magicは、[更新レコードの識別]特性の設定に基づいてレコードのロック要求のみを行います。この場合の優位点は、トランザクション期間が小さく並行性がよくなることです。ロックはほんのわずか実行されるだけなので、他のユーザがデータを更新することができます。しかし、更新データを失う危険性はあります。


マルチユーザ環境 並行性 ロック方式

ロック方式

マルチユーザ環境 > 並行性

[ ロック方式]特性は、オンラインタスクとバッチタスクの両方で有効です。ロックがかけられるタイミングを指定します。ロックがかけられた場合、そのレコードには、ほかのユーザは（書き込み用の）アクセスができなくなります。

また、ロックがかけられると同時に、オリジナルのデータ（レコードが最初に読み取られた時の内容）とメモリに格納されているデータ（ロックの実行時に読み取られた内容）の比較が行われます。詳細については、「データ管理」を参照してください。

[ ロック方式]特性には、次のいずれかの値を指定することができます。

  • I=即時……この値を指定しておくと、レコードが読み込まれると同時に、そのレコードにロックがかけられます。したがって、レコードの内容の比較は不要です。ロックは、解除されるまで有効です。この設定は、データの完全性は高くなりますが並行性は低くなります。
    バッチタスクでは、この設定がデフォルトです。マルチユーザ環境のオンラインタスクでは、この設定にしておくと、レコードのロックが異常に継続することがあります。これは、長時間にわたって同じレコードに対して作業を行うユーザもいるためです。この値は、物理的トランザクションモードにのみ適用されます。

  • O=入力時……この値にしておくと、レコードが読み込まれた後、ユーザがレコードの更新を始めた時にロックがかけられます。オンラインタスクでは、この設定がデフォルトです。オンラインタスクのタスク特性でのデフォルト設定は、[トランザクションモード]は「遅延トランザクション」、[ロック方式]は、「なし」になります。
    バッチタスクでは、ユーザとの対話がないため、最初の項目処理（[レコード後]で実行されます）の際にロックが実行されます。または、ロックが必要な最初のタスクまたはプログラムがコールされた時に、ロックがかけられます。詳細は、「コール処理コマンド」を参照してください。
    この設定の場合、レコードの内容の比較が必要になります。この設定は、[更新レコードの確認]特性で行います。
    Magicは、以下の場合にロックを発行します。

    • 入力項目を更新した時

    • [ロック]特性を 「Yes」 にしてタスクやプログラムをコールした時

    • [項目更新]処理コマンドの[更新取消可]特性を「No」 にしたタスクを実行した時

    • データ入力コマンドを実行した時

    • イベントプログラムがイベントのデータビューをロックした時

  • B=更新時……この設定では、データがデータベースに書き込まれる時にロックが実行されます。この場合、オンラインタスクでは、ユーザがレコードの入力を行っている時にはロックはかけられません。また、オンラインタスクとバッチタスクのいずれの場合も、[レコード後]の実行中にロックがかけられることはありません。この設定ではレコードの内容の比較が行われますが、比較で内容が異なった時には、データベースへのデータの書出は実行されず、その旨のメッセージが表示されます。
    なお、現在のタスクから子タスクが呼び出されている時には、その子タスクによって別のテーブルにデータが書き込まれることもあります。その一方、タスクのレコードがデータベースに書き込まれていない場合、データの整合性に問題が発生します。トランザクションの継続時間が短ければ並行性はあがりますが、データの完全性を犠牲にすることになります。
    したがって、この「更新時」は、データの書込先のデータベースでロック処理による負荷が大きい時、または、比較で内容が異なっても、タスクの構造上、データの整合性を維持できる時に限って指定するようにします。この値は、物理的トランザクションモードにのみ適用されます。

  • N=なし……この設定では、レコードにロックはいっさいかけられません。
    そのため、この設定は注意して使わなければなりません。つまり、現在、アクセスされているレコードに対しては別のユーザも変更が可能で、したがって、データの整合性に問題が起こります。

参照

データ管理


マルチユーザ環境 並行性 ネストとロック

タスクのネストとロック

マルチユーザ環境 > 並行性

タスクまたはプログラムが呼び出されると、現在のレコードの処理が一時中断され、その後、そのタスクまたはプログラムが完了すると処理が再開されます。その間、呼び出されたタスクまたはプログラムからは、現在のレコードの項目全てに対してアクセスが可能になります。

プログラムの場合、項目へのアクセスはパラメータを介して行われます。一方、タスクの場合、アクセスは直接実行されます。タスク、プログラムでは、どちらの場合も、現在のレコードの項目に対して更新を行うことができます。その場合、更新時のロックの状態が問題になります。ユーザによるレコードの変更では、ロック方式として「入力時」が設定されている時には（ロック方式は[タスク特性]ダイアログで設定できます）、レコードの変更が始まると同時にロックがかけられます。

タスクやプログラムを使用して現在のレコードを変更する場合も、レコードをロックしておくこと重要です。つまり、子タスクやプログラムでは相応の処理が実行され、処理の完了に時間もかかります。このため、タスクやプログラムの実行中は、他のユーザには現在のレコードに対して変更ができないようにしておくことが必要になります。変更が可能な場合、他のユーザによってレコードが操作されているため、タスクやプログラムの終了時に変更をディスクへ書き込めないということも起こります。

以上のことから、呼び出したタスクやプログラムで現在のレコードを変更する時には、あらかじめレコードにロックを設定しておきます。ただし、タスクやプログラムでレコードの更新を行わない時には、ロックは必要ありません。

タスクやプログラムでレコードの更新を行う時には、[コール特性]の[ロック]特性を使用してレコードにロックをかけるかどうかを指定できます。指定できる値は、次の通りです。

  • No……タスクやプログラムの実行時、現在のレコードにはロックはかけられません。この場合、タスクやプログラムでは、呼び出し側のタスクのレコードの更新は行わないようにします。ロックが設定されていない状態でレコードの更新を行うと、タスクやプログラムの終了時にユーザがレコードを変更していた場合、更新したレコードをディスクに書き込むことができず、そのため、更新した結果が失われることがあります。

  • Yes…… 呼び出されたタスクやプログラムが実行されると同時に、現在のレコードにロックがかけられます。したがって、呼び出されたタスクやプログラムで現在のレコードを更新する時には、「Yes」 を指定します。また、タスクやプログラムの処理で間接的にレコードが更新される時も、「Yes」 にしておきます。この値は、遅延および物理トランザクションモードに適用されます。


マルチユーザ環境 並行性 分離レベル

分離レベル

マルチユーザ環境 > 並行性

データベースが「0」の分離レベルを持っている場合、全てのロックはこのセッションで容認されます。たとえテーブルが排他でロックされていてもどのユーザも待ちになりません。アプリケーションのデータ構成によりますが、この分離レベルの設定は、並行性を高くしますが、データの完全性は低くなります。

MS-SQL Server とDB2 UDBは、分離レベル=0 をサポートしますが、Oracle にはありません。

Oracle は、分離レベル=1 をサポートしていて、他のユーザによってロックされたデータを読み込むことを許可しています。この場合、すでにコミットされたデータではなく更新されていないデータを表示します。


マルチユーザ環境 並行性 差分更新

差分更新

マルチユーザ環境 > 並行性

SQLデータベースの場合、[項目特性]の[更新形式]特性で「差分更新」が選択できます。 差分更新は、更新データを失うという問題を小さくします。

以下の例は、[A=値更新]が設定された場合に発生する問題を表しています。

在庫の中の項目として９４個になっており（「在庫」カラムの値からフェッチされた）、User-Aが「在庫」カラムの値を９３に更新したとします（1個販売したため）。また、User-Bが、カラムの値を９２に更新した（２個販売したため）とします。この場合、更新データの損失が発生します。

しかし、差分更新の場合は、以下のように更新されます。

  • 「在庫」の値-1 があるユーザによって更新されます。

  • 「在庫」の値-2 が別のユーザによって更新されます。

「在庫」の値の最終値は、-3の更新となりこの例では、91になります。このように更新データの損失は発生しません。


マルチユーザ環境 テーブルモード

テーブルモード

マルチユーザ環境 >

多数のワークステーションまたはインスタンス間のデータの共有では、同期処理が大切になります。この同期処理の設定により、テーブルへのアクセスの制御と制限が可能になります。テーブルに対する処理としては、次の２種類があります。テーブルに対しプロセスで設定できるモードは以下の通りです。

  • R=読込……レコードの内容を読み取だけで、レコードの更新は行われません。

  • W=書出……レコードの内容を更新できます。この処理では、読込も可能です。なお、読込は「読込専用」、書込は「読込／書出」などということもあります。

参照

アクセスモード

共有モード

マルチユーザ環境でのテーブルモードの設定

テーブルモードの定義方法

テーブル共有の仕組み


マルチユーザ環境 テーブルモード アクセスモード

アクセスモード

マルチユーザ環境 > テーブルモード

アクセスモードとは、テーブルに対する処理の方式をいいます。テーブルに対するアクセスモードは事前に設定しておくことができ、この設定にしたがってアクセスが実行されます。設定されているモードは、Magicに内蔵されている自動システムマネージャにより識別され、その結果、実際のアクセスが実行されます。ただし、2 つの処理（タスク）が同時に実行され、各処理で矛盾を起こしても、その状態は自動システムマネージャには認識されません。

例えば、処理Aがテーブルに対して読込専用アクセスを実行し、同時に、処理Bが同じテーブルに対して読込／書出のアクセスを実行したとします。

上記の場合、矛盾が発生しますが、この矛盾はシステムマネージャには認識されません。つまり、処理A がテーブルのレコードの数をカウントするという内容の場合、処理B によりレコードの内容が変更されても、処理A のカウントには影響ありません。一方、処理A の内容が数値計算だった時には、処理A と処理B では矛盾が起こりるため、どちらかの処理を制限することが必要になります。この矛盾は、繰り返しますが、システムマネージャでは認識されないため、アクセスに関して何らかの設定を行うことが必要です。Magicでは、この設定を「共有モード」と呼んでいます。


マルチユーザ環境 テーブルモード 共有モード

共有モード

マルチユーザ環境 > テーブルモード

アクセスモードの指定に加えて、処理に対して「共有モード」を指定することもできます。この共有モードにより、テーブルに対して最終的にアクセスできるかどうかが決まります。

例えば、統計処理プログラムの場合、アクセスモードは「R=読込」、共有モードも「R=読込」にします。これで、テーブルに対して読込処理が実行されている時でも、同時にほかの処理により同じテーブルの内容の読込が可能になります。

アクセスモードと共有モードの設定は、システムマネージャに伝えられ、最終的に処理が実行されるかどうかが決定されます。

テーブルを排他モードで開きたい時には、共有モードを「N=なし」にしておきます。この設定の場合、そのテーブルに対する別のユーザからのアクセスは、いっさい禁止されます。


マルチユーザ環境 テーブルモード 設定

マルチユーザ環境でのテーブルモードの設定

マルチユーザ環境 > テーブルモード

テーブルロックは、[メインソース特性]や[リンク特性]の[共有]特性の設定を「N=なし」 または、「R=読込」 に設定した時に発行されます。「N=なし」の場合、Magicはテーブルを排他的にロックします。排他ロックに対する動作は、使用するDBMSに依存します。多くのDBMSは、排他ロックをサポートしています。例えば、Oracle の場合は、テーブルは排他的にロックされますが他のユーザがそのテーブルを読み込むことができます。このため、[共有]特性の設定を「N=なし」 にすることは正しくありません。

開発者は、使用するDBMSの排他ロックについての制限をあらかじめ知っておく必要があります。

  • ロックはトランザクション内でのみ有効です。従って、テーブルロックと一緒にレコードレベルのトランザクションを使用することはできません。Magicは、テーブル全体がロックされたように動作します。他のユーザは、同じテーブルの他のレコードをアクセスすることはできません。

  • 並行性が失われるため、テーブルロックは、できる限り回避するようにしなけばなりません。

  • 開発者によって意図的にテーブルレベルでのロックを発行させることができます。ただし、排他ロックをかけると上記のように並行性が失われることになります。

  • [アクセス]モードと[共有]モードの両方で「W=書込」に設定することで、Magicはデータベースロックを発行します。もしトランザクションが遅延モードであれば、データベースロックは発行されず、Mglockファイルを使用するMagicロックが発行されます。Magicロックの場合は、トランザクションが終了した時だけロックが解除されます。

  • ブラウザタスク内では、物理トランザクションがないためデータベースロックやテーブルロックは発行されません。論理的な Magicロックのみが発行されます。

  • MS-SQL Server の場合、レコードロックのデフォルトは物理ロックです。Magic は、データベースに対して SELECT...UPDLOCK のコマンドを送ります。（Oracleの SELECT...FOR UPDATEのようなものです。）旧バージョンのデフォルトは論理ロックでした。（通常の SELECTステートメントが全てのセレクトされたカラムに対して送られます。）デフォルトの違いについては、「SQLに関する考慮事項」の「MS-SQL Serverデータベースゲートウェイ」の説明を参照してください。

  • テーブルロック時にリトライする時間は、[動作環境／動作設定タブ／コマンド処理のリトライ間隔] (MAGIC.INIのRetryOperationTime) で制御されます。デフォルト値は600秒です。

注意：

ブラウザタスクでは、論理ロックのみ使用します。


マルチユーザ環境 テーブルモード 定義方法

テーブルモードの定義方法

マルチユーザ環境 > テーブルモード

アクセスモードと共有モードはいずれも、[メインソース特性]や[リンク特性]で行うことができます。これらには、以下の２つの特性値が用意されています。

アクセス

アクセスモードを指定します。以下のいずれかを指定できます。

  • W=書出（デフォルト）

  • R=読込

共有

共有モードを指定します。以下のいずれかを指定できます。

  • W=書出（デフォルト）

  • R=読込

  • N=なし

「N=なし」を指定しておくと、テーブルの共有はできなくなります。


マルチユーザ環境 テーブルモード テーブル共有

テーブル共有の仕組み

マルチユーザ環境 > テーブルモード

次の表は、2 つのタスクで同じテーブルに対して同時にアクセスが実行される場合、そのテーブルの共有の仕組みをまとめたものです。表で、マイナス記号（-）がある場合、2 つのタスクのモードが矛盾を起こすことを示しています。これに対して、プラス記号（+）がある場合、2 つのタスクのモードは矛盾を起こさず、正常に機能することを表しています。

 | プロセスA |  |  |  |  |  |  |
 | アクセスモード |  | 読込 |  |  | 書出 |  |
 |  | 共有 | 読込 | 書出 | なし | 読込 | 書出 | なし
プロセスB | 読込 | 読込 | + | + | - | - | - | -
 |  | 書出 | + | + | - | + | + | -
 |  | なし | - | - | - | - | - | -
 | 書出 | 読込 | - | + | - | - | - | -
 |  | 書出 | - | + | - | - | + | -
 |  | なし | - | - | - | - | - | -

例えば、

  • タスクA でテーブルがR ／R モード（アクセスモードがR 、共有モードがR の意味）で開かれている場合、タスクB では、そのテーブルをR ／R またはR ／W で開くことができます。

  • タスクA でテーブルがR ／W モードで開かれている場合、タスクB では、そのテーブルをR ／R 、R ／W 、W ／W で開くことができます。

矛盾が発生した場合、後からアクセスしたプロセスでテーブルロック待ちが発生し、次のプロセスではテーブルロックが解除されるまで待たされます。


マルチユーザ環境 設定

マルチユーザ環境の設定

マルチユーザ環境 >

[動作環境]ダイアログには、マルチユーザ環境に関する設定欄がいくつか用意されています。こういった設定欄を使用して、環境がマルチユーザの場合の設定を行うことができます。

[動作環境]ダイアログの設定欄はいずれもグローバルパラメータです。Magic の環境全体に対して有効です。このダイアログの設定欄の値は、MAGIC.INI ファイルの[MAGIC_ENV]セクションに保存され、各欄を使用してMagic 環境のカスタマイズを行うことができます。[動作環境]ダイアログで設定欄を変更した場合、変更は全て自動的にMAGIC.INI ファイルに記録されます。設定の値を変更した場合、設定欄によってはすぐに有効になることもありますし、Magic を次回起動した時に有効になるものもあります。

Magic の[動作環境]ダイアログの設定欄は、OSの環境変数とは関係ありません。また、Magic は、実行時、コマンドラインパラメータ（オプション）を付加して起動するとこともでき、その場合、パラメータに指定した設定が[動作環境]ダイアログの対応する値に設定されます。この場合、コマンドラインパラメータの設定が、MAGIC.INI ファイルの設定より優先されます。一方、開発モードの場合、[動作環境]ダイアログの設定欄の値を変更すると、その変更は実行モードと同じくMAGIC.INIファイルに自動的に記録されますが、開発モードで[動作環境]ダイアログの設定を変更した場合、この設定内容が優先されます。

参照

端末番号

ロックファイル


マルチユーザ環境 設定 ロックファイル

ロックファイル

マルチユーザ環境 > マルチユーザ環境の設定

Magic には、レコードとテーブルの２つのレベルのロック機能があります。レコード／テーブル共にDBMSによってサポートされる機能とMagic独自のロック機能をサポートしています。Magicのロック機能は、アクセスするテーブルのある各ディレクトリにロックファイルを作成します。

最初のユーザがディレクトリ上の共有テーブルにアクセスすると、そのディレクトリ上で、Magic ロックファイルがオープンされます。最後のユーザがMagicから抜けるとロックファイルは削除されます。

参照

ロックファイル


マルチユーザ環境 設定 端末番号

端末番号

マルチユーザ環境 > マルチユーザ環境の設定

[端末番号]欄には、マルチユーザ環境のエンドユーザごとに別個の番号を指定します。なお、値を「0」にしておくと、ユーザごとに自動的に番号が振られます。ただし、この場合は、Term（）関数にて端末番号を取得できません。


マルチユーザ環境 コンテキスト

コンテキスト

マルチユーザ環境 >

各コンテキストは独自の環境を持っています。次の内容は、共有されず、現在のコンテキストでのみ有効なオブジェクトです。

  • グローバル変数

  • メモリテーブル

  • 常駐されたMAGIC.INI ファイル

  • （遅延トランザクションの）キャッシュ


ユーティリティ

Magic には多数のユーティリティが用意されています。こういったユーティリティを利用して、Magicアプリケーションの開発や修正、保守や移植などを容易に行うことができます。

Magic Studioの内部ユーティリティ

構文チェック

リポジトリ入出力

クロスリファレンス

定義取得

APG

コマンドラインユーティリティ

MGSTATIONS

MGUSRDMP

MSG2MGIC

ODBC チェックドライバ

開発用ユーティリティ

文字列抽出ユーティリティ

ユーザ定義開発メニュー


APG

ユーティリティ >

プログラムは、[データ]リポジトリまたは[プログラム]リポジトリから作成することができます。

MagicのAPG（Automatic Program Generator）を使用すると、自動的にプログラムを作成することができます。APGでは以下のようなプログラムを作成します。

  • データ入力／保守を行うオンラインプログラム

  • データベーステーブルのデータをテキストファイルに出力するバッチプログラム

  • テキストファイル読み込んで、データベーステーブルに書き込むバッチプログラム

  • 印刷プログラム

  • ブラウザクライアントプログラム

[APG]ダイアログには、以下の２つのタブがあります。

  • [APG]タブ

  • [スタイル]タブ

参照

APG（プログラムリポジトリから）

APG（データリポジトリから）

フォーム作成


APG プログラムリポジトリ

APG（プログラムリポジトリから）

ユーティリティ > APG

APGを使用すると、[プログラム]リポジトリからプログラムを作成することができます。また、タスクツリーからは、プログラム内の個々のサブタスクを作成することもできます。[プログラム]リポジトリ上で作成されたプログラムは一時的なプログラムではなく、自動的に実行されません。

[プログラム]リポジトリからAPGを実行するには、まず新しい行を作成（F4）してから[オプション]メニューの[APG]（Ctrl+G）を実行します。プログラム名が自動的に決定され、[プログラム]リポジトリに追加されます。プログラム名は、APGの[オプション]の指定内容（「照会」、「出力」、「入力」など）とメインソースの名前で構成されます。例えば、テーブル名「顧客マスタ」の出力プログラムを作成する場合、プログラム名は「出力 - 顧客マスタ」になります。この名前は、作成後に編集することができます。

タスクツリーからAPGを実行すると。「上書きしますか？」という[確認]ダイアログが開きます。[Yes]を選択すると、既存のタスクが上書きされます。

[APG]ダイアログには、[プログラム]リポジトリとタスクツリーのどちらから実行した場合も同じ特性が表示されます。

ダイアログには、デフォルト値が表示されており、これらの値を使用して実行することができます。

参照

[APG]タブ

[スタイル]タブ

データリポジトリからのAPG

フォーム作成


APG プログラムリポジトリ APGタブ

APGタブ

ユーティリティ > APG > APG（プログラムリポジトリから）

[APG]タブには以下の特性があります。

オプション

メインソース

テキスト／HTMLファイル

テンプレートファイル名


APG プログラムリポジトリ APGタブ オプション

オプション (デフォルト: B=照会)

ユーティリティ > APG > APG（データリポジトリから） > APGタブ

[オプション]欄では、プログラムの機能を指定します。指定できる機能は以下の通りです。

  • B＝照会 …… オンラインのデータ入力／保守プログラムを実行（実行モード）したり、作成（作成モード）します。XMLデータソースを使用する場合は、このオプションのみ有効です。

  • E＝出力 …… 現在、選択しているデータテーブルのデータを出力するプログラムを作成、実行します。データは、テキストファイルで出力されます。

  • I＝入力 …… テキストファイルからデータを取り込むためのプログラムを作成、実行します。読み込むファイル構造は、「E=出力」で出力したファイル構造と同じにしなければなりません。

  • P＝印刷 …… データテーブルの内容を印刷するプログラムを作成、実行します。このオプションは、[データ]リポジトリから実行した場合は、無効です。

  • R＝ブラウザ …… ブラウザベースでのプログラムを作成します。作成されたプログラムとは別にテンプレートファイルが作成されます。

  • C=リッチクライアント …… リッチクライアントプログラムを作成します。


APG プログラムリポジトリ APGタブ ソーステーブル

メインソース

ユーティリティ > APG > APG（プログラムリポジトリから） > APGタブ

[データ]リポジトリのテーブルを指定します。

[プログラム]リポジトリからAPGを実行した場合、この指定は必須です。

タスクツリーからAPGを実行させた場合、オープン中のタスクのメインソースがデフォルト設定されます。この設定は変更可能です。

ここからズームして、[データソース一覧]を表示させ選択することができます。


APG プログラムリポジトリ APGタブ テキスト/HTML

テキスト／HTMLファイル

ユーティリティ > APG > APG（プログラムリポジトリから） > APGタブ

データの入出力処理時にアクセスするテキストファイルの名前か、ブラウザクライアントで使用するHTMLファイルの名前を指定します。

出力／入力／印刷

[オプション]で「E=出力」か「I=入力」を指定した場合、Magicは自動的に出力／入力用のファイル名を設定します。この名前は、[データ]リポジトリの[データソース名]カラムの入力値を基に拡張子「.TXT」を付加した名前になります。

例えば、[データ]リポジトリの「顧客マスタ」というデータを基にプログラムを作成する場合、このデータのデータソース名が「Customer_dat」とするとテキストファイルの名前は「Customer_dat.TXT」になります。

テキストファイル名は、変更することができます。その際、OSのファイルの命名規約を基に指定してください。ファイル名に、パス名を付加することもできます。パス名が指定されない場合、Magicの作業フォルダ上のファイルをアクセスします。

入力処理を実行する場合は、指定されたパスにファイルが存在していることを確認してください。

出力処理を実行する場合は、指定したパスが存在していることを確認してください。また、指定されたパスに同じファイル名が存在している場合、ファイルは上書きされます。

ブラウザクライアント

[オプション]で「R=ブラウザ」を指定した場合、Magicは自動的にHTMLファイル名を設定します。この名前は変更することができます。


APG プログラムリポジトリ APGタブ テンプレートファイル

テンプレートファイル名

ユーティリティ > APG > APG（プログラムリポジトリから） > APGタブ

ブラウザクライアント用のHTMLファイルの基になるテンプレートファイルの名前です。


APG プログラムリポジトリ スタイルタブ

スタイルタブ

ユーティリティ > APG > APG（プログラムリポジトリから） / APG（データリポジトリから）

[スタイル]タブには以下の特性があります。

表示モード

スタイル

モデルを使用

フォームサイズ

タイトル


APG プログラムリポジトリ スタイルタブ 表示モード

表示モード (デフォルト: L=ライン)

ユーティリティ > APG > APG（プログラムリポジトリから） / APG（データリポジトリから） > スタイルタブ

ここには、画面上に表示されるレコードの形式を指定します。指定できる形式は以下の通りです。

  • L＝ライン……レコードの検索を行ったり、最小の情報を簡易表示させたい場合に通常使用されます。このモードでは、複数のレコードが１画面に表示されます。各行が１レコードに対応します。

  • S＝スクリーン……特定のレコードに関して詳細な情報を表示させたい場合に通常使用されます。このモードでは、1レコードだけが1画面に表示されます。

  • N=なし…… レコードは表示されません。このオプションは、[データ]リポジトリのヘッダ行にカーソルがパークしている状態でAPGを起動すると表示されます。


APG プログラムリポジトリ スタイルタブ スタイル

スタイル (デフォルト: 3=立体)

ユーティリティ > APG > APG（プログラムリポジトリから） / APG（データリポジトリから） > スタイルタブ

ここでは、画面を２次元または３次元のどちらの形式で表示するかを指定します。

  • 3=立体

  • 2=平面

  • O=オリジナル（スクリーンモードのみ有効）


APG プログラムリポジトリ スタイルタブ モデルを使用

モデルを使用

ユーティリティ > APG > APG（プログラムリポジトリから） / APG（データリポジトリから） > スタイルタブ

作成するプログラムのフォームに対して、使用するフォームモデルを定義できます。


APG プログラムリポジトリ スタイルタブ フォームサイズ

フォームサイズ

ユーティリティ > APG > フォーム作成

GUIフォームの表示を定義します。以下のオプションがあります。

  • M＝モデルに依存……フォームの幅と高さは指定したモデルによって定義されます。

  • C＝表示内容に依存……フォームの幅と高さは画面に表示される内容に依存します。[ライン]モードの場合は、フォームの高さは、「M＝モデルに依存」の時と同じになります。

  • D＝MDI内に納める……フォームの幅と高さは画面に表示される内容に依存します。しかし、各寸法は、MDIよりは大きくなりません。 このオプションは、リッチクライアントプログラムでは表示されません。

注意：

表示内容の幅が、MDIより大きい場合は、MDIと同じになります。MDIより小さい場合は、表示内容に依存した幅になります。

ブラウザ形式の場合は無効です。


APG プログラムリポジトリ スタイルタブ タイトルバー

タイトル

ユーティリティ > APG > フォーム作成

ここでは、フォーム上にタイトルを表示するかどうかを指定します。


APG データリポジトリ

APG（データリポジトリから）

ユーティリティ > APG

[データ]リポジトリからAPG(Auto Program Generator)を実行すると、プログラムを実行または作成することができます。これには、次の２つの方法があります。

  • [データ]リポジトリ内の複数、または全てのデータソース用のプログラムを実行または作成する。

  • 特定のデータソース用の１つのプログラムを実行または作成する。

複数のデータソースからプログラム作成

一度の実行で複数のデータソース用のプログラムを実行または作成するには以下のようにします。

  1. カーソルを[データ]リポジトリのタイトル行に移動します。

  2. [オプション]メニューの[APG]（Cｔｒｌ＋G）を実行すると、全てのデータソースに対してチェックを実行します。一つでもエラーがあると作成処理は実行されません。エラーがない場合は[APG]ダイアログを開きます。

  3. [APG]タブの[タグテーブル]と[選択テーブル]を選択します。[APG]ダイアログのこれ以外のオプションは、基本的に一つのテーブルでAPGを実行した場合と同じです。

  4. [OK]をクリックすると選択したテーブルをメインソースとしたプログラムが作成/実行されます。

[APG]ダイアログには、以下の２つのタブがあります。

APGタブ

スタイルタブ

参照

プログラムリポジトリからのAPG

特定のテーブルでのAPG


APG データリポジトリ APGタブ

APGタブ

ユーティリティ > APG > APG（データリポジトリから）

[APG]タブには以下の特性があります。

タグデータ

選択

処理モード

フォルダ

オプション

カラム

プログラム名

テキスト／HTMLファイル

テンプレートファイル名

リンク


APG データリポジトリ APGタブ タグデータ

タグデータ (デフォルト：N=なし)

ユーティリティ > APG > APG（データリポジトリから） > APGタブ

[タグデータ]欄には、データソースの選択方法を指定します。以下の3つのオプションがあります。

  • A=全部 …… データベースが定義された全てのデータソースに対するプログラムを作成します。

  • S=選択 …… 選択されたデータソースに対するプログラムのみ作成します。このオプションを選択した場合、[データソースの選択]ダイアログが表示されます。作成したいデータソースにカーソルを移動し、スペースキーを押下することで[選択]カラムに「V」が表示され、選択状態になります。[選択]ボタンをクリックすることで[APG]ダイアログに戻ります。

  • N=なし …… このセッションのAPGは無効となり、プログラムは作成されません。


APG データリポジトリ APGタブ 選択

選択

ユーティリティ > APG > APG（データリポジトリから） > APGタブ

[選択]欄には、選択されたデータソースの数が表示されます。ここからズームすると[データソースの選択]ダイアログが表示され、データソースを選択することができます。


APG データリポジトリ APGタブ 処理モード

処理モード (デフォルト: E=実行)

ユーティリティ > APG > APG（データリポジトリから） > APGタブ

APGの処理モードは、実行モード（E＝実行）と作成モード（G＝作成）の２つがあります。

実行モードは、選択されたデータソースを基に一時的なプログラムを作成し、実行します。例えば、[オプション]特性で「B=照会」を指定して実行すると、エンジンは実行モードに切り替わり、データソースを表示したり、入力したりできます。ESCキーを押下すると実行モードが終了し、[データ]リポジトリに戻ります。[オプション]特性で「E=出力／I=入力」を指定した場合も同じようになります。この場合は、プログラムを実行する前に、実行確認のダイアログボックスが表示され、プログラム実行後には、再実行の確認ダイアログが表示されます。

作成モードで作成したプログラムは保存され、[プログラム]リポジトリに追加されます。作成モードでは、作成されたプログラムは自動的に実行されません。

リッチクライアントプログラムは、作成オプションの場合のみ有効になります。


APG データリポジトリ APGタブ フォルダ

フォルダ

ユーティリティ > APG > APG（データリポジトリから） > APGタブ

作成されるプログラムに割り当てるフォルダを指定できます。このオプションは、[処理モード]欄が「G=作成」の場合のみ有効です。


APG データリポジトリ APGタブ 選択カラム数

カラム

ユーティリティ > APG > APG（データリポジトリから） > APGタブ

ここには、現在選択しているデータソースのカラム数が表示されます。[カラム選択]テーブルの３番目のカラムである[カラム]欄の順番を変更することができます。 「0」を入力することで表示させないようにできます。 （外部キーによる）リンクテーブルの順番は変更できません。


APG データリポジトリ APGタブ プログラム名

プログラム名

ユーティリティ > APG > APG（データリポジトリから） > APGタブ

[プログラム]リポジトリに定義されるプログラムの名前です。作成モードの場合のみ表示されます。


APG データリポジトリ APGタブ リンク

リンク

ユーティリティ > APG > APG（データリポジトリから） > APGタブ

[リンク]欄でズームすると、[外部キーの選択]ダイアログが表示されます。

[リンク]欄は、外部キーを含んだテーブルを使用してプログラムを作成する場合のみ表示されます。


APG データリポジトリ 特定のテーブル

特定のテーブルでのAPG

ユーティリティ > APG > APG（データリポジトリから）

  1. 特定のデータベーステーブル用の1つのプログラムを実行または作成するには、[データ]リポジトリの該当するテーブルの行にカーソルを移動します。

  2. 次に、[オプション]メニューの[APG]（Ctrl+G）を実行します。テーブル定義のエラーを確認するために構文チェックユーティリティが実行されます。テーブルが適切な場合、[APG]ダイアログが開きます。

  3. ダイアログにはデフォルト値が設定されていますので、このままAPGを実行することができます。

  4. [処理モード]で「E=実行」にしてAPGを実行した場合、プログラムの作成および実行は行われますが、[プログラム]リポジトリには保存されません。[オプション]で「E=出力」または「I=入力」を指定した場合は、バッチプログラムが実行されます。この場合、[確認]ダイアログが表示されます。実行が終了すると、再び[確認]ダイアログが表示され処理を繰り返し実行することができます。


APG フォーム作成

フォーム作成

ユーティリティ > APG

APGを使用することで、プログラムのフォームのみを作成することもできます。

[フォーム]エディタから [オプション]メニューの[フォーム自動作成]（Ctrl+G）を実行すると[フォーム作成]ダイアログが表示されます。

タスクに定義されている項目を基にフォームを自動作成します。このダイアログには以下の設定欄があります。

インタフェースタイプ

表示モード

スタイル

モデルを使用

フォームサイズ

タイトル

HTMLファイル名

テンプレートファイル名


APG フォーム作成 インタフェースタイプ

インタフェースタイプ

ユーティリティ > APG > フォーム作成

フォームの[インタフェースタイプ]を指定します。以下の2つが指定できます。

クラスが｢0｣の場合

  • G=GUI表示形式

  • R=ブラウザ形式

  • C=リッチクライアント表示形式

クラスが｢1｣以上の場合場合

  • G=GUI出力形式

  • T=テキスト形式


APG プログラムリポジトリ スタイルタブ 表示モード

表示モード

ユーティリティ > APG > フォーム作成

プログラムのオンライン画面へのレコードの表示形式です。[L=ライン]と[S=スクリーン]の2つのオプションがあります。

  • L=ライン…… レコードが行として表示されます。各行は1レコードに相当します。画面ごとに多数の行が表示されます。

  • S=スクリーン…… 画面ごとに1つのレコードが表示されます。


APG フォーム作成 スタイル

スタイル

ユーティリティ > APG > フォーム作成

[スクリーン]モードの場合、次のオプションを選択することができます。

  • 3=立体

  • 2=平面

  • O=オリジナル

[ライン]モードの場合、次のオプションを選択することができます。

  • 3=立体

  • 2=平面

注意：

リッチクライント表示形式の場合は無効です。


APG プログラムリポジトリ スタイルタブ モデルを使用

モデルを使用

ユーティリティ > APG > フォーム作成

既存のモデルを割り当てることができます。


APG フォーム作成 HTMLファイル

HTMLファイル名

ユーティリティ > APG > フォーム作成

ブラウザフォームの場合、HTMLファイルを指定します。


APG フォーム作成 テンプレートファイル名

テンプレートファイル名

ユーティリティ > APG > フォーム作成

作成するHTMLファイルの元になるテンプレートファイルの名前を指定します。


構文チェック

構文チェックユーティリティ

ユーティリティ >

このユーティリティは、モデル、データソース、プログラム、ヘルプ、メニューの文法についてのエラーをチェックします。

開発者が迅速に開発を進めるために、定期的に構文チェックやプログラムのロジックをチェックしてください。

もし、エラーが内在したプログラムを実行すると、予期できない動作を引き起こし、場合によってはデータを失うことがありますので、作成後には、常にプログラムチェックを行うようにしてください。

構文チェックは、F8を押下するか[オプション]メニューで[構文チェック]を選択することで実行されます。

参照

チェック結果表示

構文チェック処理


構文チェック 結果

チェック結果表示

ユーティリティ > 構文チェック

構文チェックの結果は、[チェック結果]ウィンドウに表示されます。

[チェック結果]ウィンドウは、 MagicのMDI スクリーンとドッキングさせたり、フローティングウィンドウとして表示させることができます。[特性シート]や、[ナビゲーター]にも結合できます。

チェック結果はツリー表示され、結果表示グループを選択すると、最初のレベルのツリーが表示されます。構文チェックの結果は、以下のように表示されます。

  • タイプ ……メッセージタイプ（エラー、警告、推奨）によって区分けされます。メッセージは、発見された順に表示されます。

  • オブジェクト……Magicのオブジェクト（モデル、テーブル、プログラム、サブタスク、ヘルプ、メニュー）によって区分けされます。メッセージは、発見された順に表示されます。

  • オブジェクトとタイプ……Magicのオブジェクトと、メッセージタイプの両方によって区分けされます。

チェック結果の表示については、「メッセージのグループ化」を参照してください。


構文チェック処理

ユーティリティ > 構文チェック

構文チェックユーティリティを実行すると、メッセージボックスが表示されます。

チェック処理の終了前にキャンセルされた場合、チェック結果 ウィンドウは、チェックユーティリティが中止された時点でのチェック内容を表示します。

構文チェック処理が終了すると、以下のようなメッセージのうちの 1 つが表示されます。

エラーまたは警告 レベル :

構文チェックが終了しました - チェック結果ペインを確認してください.

推奨または 未使用オブジェクト レベル :

プログラムは正常です.：チェック結果ペインを参照してください.

不正な構文が見つからなかった:

プログラムは正常です.

注意：

[動作環境]の[チェック項目の自動位置付]の指定が「No」の場合、最初のチェック項目をハイライト表示せず位置付けも行いません。

参照

未使用オブジェクト

チェック項目の自動位置付け


構文チェック 処理 未使用オブジェクト

未使用オブジェクト

ユーティリティ > 構文チェック > 構文チェック処理

構文チェックユーティリティが、使用していないオブジェクトを見つけた場合、次のコマンドのうちの 1 つを選択するよう要求を出します。

  • 削除 …… 現在のオブジェクトを削除します。

  • 全て削除 …… 現在のオブジェクトと、同一オブジェクト内の全ての未使用オブジェクトを削除します。

  • スキップ …… 現在のオブジェクトを保持します。

  • 全てスキップ …… 現在のオブジェクトと、全ての未使用オブジェクトをそのまま残します。

未使用オブジェクトに対するメッセージは、[チェック結果]ウィンドウに表示されます。


リポジトリ入出力

ユーティリティ >

Magicのリポジトリ入出力ユーティリティを使用するこことで、プロジェクトのオブジェクトを外部に出力したり、または入力したりできます。

出力または入力を行いたい場合、[ファイル／リポジトリ入出力]（Ctrl+Shift+E）を選択し、[リポジトリ入出力]ダイアログを開きます。

入力ユーティリティでは、出力ユーティリティで出力されたオブジェクトを取り込むことができます。入力されたオブジェクトは所定のリポジトリに追加されます。例えば「顧客ファイル」という名前のデータソースを取り込むと、そのデータソースが現在のプロジェクトの[データ]リポジトリの最後に追加されます。また、「顧客一覧印刷」という名前のプログラムを取り込むと、そのプログラムが[プログラム]リポジトリに追加されます。

各オブジェクトがフォルダ情報を含めて出力されている場合、同じ名前のフォルダの最後にされます。フォルダが存在しない場合は、新たにフォルダを追加します。

出力/入力を組み合わせることで、プロジェクト内のオブジェクトの一部を他のプロジェクトにコピーすることができます。これにより、オブジェクトの再利用が可能となります。

[リポジトリ入出力]ダイアログには以下のような設定欄があります。ユーザが入力した値は、その前の入力項目の内容と照合され、正しくない場合はエラーメッセージを表示します。

オプション | 範囲 | ファイル名
処理 タイプ モデルの出力 フォルダ情報を入力 | フォルダ 開始/終了番号 | ファイル名 入力時のエラーメッセージ

参照

バージョン管理


リポジトリ入出力 操作

処理 (デフォルト：E=出力）

ユーティリティ > リポジトリ入出力

実行する処理を指定します。処理としては、「E＝出力」、「I＝入力」のいずれかが指定できます。

  • E＝出力……プロジェクトのオブジェクトを出力します。

  • I＝入力……Magic Ver10で作成されたプロジェクトを入力する場合に指定します。

注意：

  • "CALL-MODAL が解読不可能な文字"　である旨のエラーが出た場合は、出力ファイルからこの文字を削除してください。

  • V9Plus のアプリケーションのリポジトリ出力ファイルは、変換ユーティリティを使用してV10形式に変換する必要があります。

参照

リポジトリタイプ


リポジトリ入出力 リポジトリタイプ

タイプ

ユーティリティ > リポジトリ入出力

出力を行う時に使用します。ここには、出力するプロジェクトのオブジェクトを指定します。

プロジェクトのオブジェクトであれば、どのオブジェクトでも指定できます。この欄をクリックするとコンボボックスが開きますので、ここでオブジェクトを選択します。コンボボックスには、次のようなオプションが表示されます。

  • E=プロジェクト……プロジェクト全体を出力します。

  • O=モデル……[モデル]リポジトリを出力します。

  • S=データソース……[データ]リポジトリを出力します。

  • P=プログラム……[プログラム]リポジトリを出力します。

  • H=ヘルプ……[ヘルプ]リポジトリを出力します。

  • R=権利……[権利]リポジトリを出力します。

  • M=メニュー……[メニュー]リポジトリを出力します。

  • C=コンポーネント……[コンポーネント]リポジトリを出力します。

  • T=アプリケーション特性……[アプリケーション特性]データを出力します。

注意：

オブジェクトは、相互に参照関係にあるため、全て取り込まなければなりません。また、オブジェクトの取り込みは、1回のセッションで行うようにしてください。これで、リポジトリとリポジトリ、またはリポジトリ内の参照関係が維持されます。

例えば、[プログラム]リポジトリを何回かに分けて入力すると、最初の入力で取り込まれたプログラムの間でだけ参照関係が維持されます。また、既存のプロジェクトにプログラムを取り込むと、内部の参照関係が崩れることがあります。

参照

開始/終了番号


リポジトリ入出力 モデルの出力

モデルの出力

ユーティリティ > リポジトリ入出力

「E＝出力」操作を行う場合、[リポジトリタイプ]が「モデル」や「データソース」、「プログラム」、「ヘルプ」の時、[リポジトリ入出力]ダイアログに「モデルの出力」チェックボックスが表示されます。

ここをチェックすることで、プロジェクトのオブジェクトモデルが出力されるようになります。チェックしない場合にはモデル情報は出力されないため、リポジトリ入力を行うプロジェクトのモデル情報か、またはデフォルトモデルが利用されるようになります。ただし項目モデルについては、入力先に対応するモデルが存在していないと書式が未定義状態になり、プロジェクトが正しく動作しなくなりますので注意してください。


リポジトリ入出力 フォルダ情報を入力

フォルダ情報を入力

ユーティリティ > リポジトリ入出力

リポジトリの入力時に表示されます。

このチェックボックスをチェック状態にすることによりフォルダ情報が入力されます。フォルダがすでに存在している場合、既存のフォルダの最後に追加されます。フォルダが存在していない場合は追加されます。

チェックをはずすとフォルダ情報は入力されません。


リポジトリ入出力 フォルダ

フォルダ

ユーティリティ > リポジトリ入出力

フォルダが定義されたリポジトリの出力時に有効になります。

ここでは、リポジトリに登録されているフォルダ名を選択することができます。フォルダを選択すると、フォルダ内のオブジェクトのみ出力されます。選択しない場合は、全てのオブジェクトが出力対象となります。

リポジトリの出力時は、フォルダ情報を含めて出力されます。


リポジトリ入出力 開始/終了番号

開始/終了番号

ユーティリティ > リポジトリ入出力

モデル、データソース、プログラム、ヘルプを出力する場合、このパラメータを使用して、出力の範囲を指定することができます。例えば、[データ]リポジトリのデータベーステーブルのうち、最初の3つのデータソース（[データ]リポジトリの最初の3行のテーブル）を出力したい場合、

[開始番号]欄を「1」、[終了番号]欄を「3」とします。

[開始番号]または[終了番号]のどちらの欄も、ズームすると[テーブル一覧]、[プログラム一覧]、[ヘルプ一覧]が表示されます。どの一覧が表示されるかは、[リポジトリタイプ]欄の設定によります。


リポジトリ入出力 ファイル名

ファイル名

ユーティリティ > リポジトリ入出力

入出力処理で使用されるファイルの名前を指定します。


リポジトリ入出力 エラーメッセージ

入力時のエラーメッセージ

ユーティリティ > リポジトリ入出力

Magicはリポジトリ入力処理に失敗した場合、エラーメッセージが表示されます。

このメッセージに表示される行番号から、入力ファイルの中のエラー箇所を特定することができます。


クロスリファレンス

ユーティリティ >

Magicのクロスリファレンスユーティリティを使用することで、モデル、カラム、プログラムなどがどこで使用されているかという情報を取得することができます。例えば、特定のカラム、インデックス、またはデータソースを参照するプログラムの一覧を表示させることができます。

このユーティリティは、特定のオブジェクトを変更することによる影響を確認する必要がある場合に使用できます。例えば、特定のデータソースをリポジトリから削除する場合、このデータソースを使用しているオブジェクト（プログラムなど）が存在していないことを事前に検索することができます。

参照

オブジェクトの検索を実行する場所

検索結果

クロスリファレンス - インタフェース


クロスリファレンス 検索を実行する場所

オブジェクトの検索を実行する場所

ユーティリティ > クロスリファレンス

次のテーブルは、クロスリファレンスが起動する場所によってどのオブジェクトが検索対象になるかを示したものです。

検索対象となるオブジェクト | 実行される場所
データソース | プログラム チョイスコントロール チョイスコントロールモデル 外部キー
カラム | プログラム インデックス 外部キー チョイスコントロール チョイスコントロールモデル
インデックス | プログラム チョイスコントロール チョイスコントロールモデル 外部キー
プログラム | プログラム モデル/コントロールモデル データソース/カラム メニュー コールタスク/プログラム処理コマンド 変数項目 コントロール特性 サブフォーム
ヘルプ画面 | データソース/カラム プログラム/実、変数項目 フォーム特性 コントロール メニュー 項目モデル コントロールモデル フォームモデル
自動ヘルプ | データソース/カラム プログラム/実、変数項目 コントロール メニュー 項目モデル コントロールモデル
ツールチップ | データソース/カラム プログラム/実、変数項目 フォーム特性 コントロール 項目モデル コントロールモデル
権利 | モデル データソース プログラム/タスクの権利リテラル ヘルプ メニュー アプリケーションイベント コンポーネント
メニュー | プログラム
項目モデル | データソース/カラム プログラム/タスク (変数,パラメータ)
コントロールモデル | データソース/カラム プログラム/タスク (変数,パラメータ) コントロール 項目モデル
タスクモデル | プログラム
ヘルプモデル | ヘルプ
フォームモデル | フォーム
コンポーネント | コンポーネントは全体をオブジェクトとしたり、コンポーネントの単一のアイテムとしてリファレンス対象となります。
メインプログラムのイベント | プログラム
タスクイベント | プログラムツリー

[編集]メニューから[クロスリファレンス]（Ctrl+F）を実行することで、Magic のリポジトリの選択したオブジェクトから実行することができます。


クロスリファレンス 検索結果

検索結果

ユーティリティ > クロスリファレンス

クロスリファレンスの結果は、[ナビゲータ]ペインの[クロスリファレンス]セクションにリポジトリ名ごとに表示されます。クロスリファレンスの結果は、複数の結果が一緒に表示されます。

各オブジェクトは、以下の情報とともに表示されます。

  • リポジトリ名

  • エントリ名

  • （エントリ番号）

末端のノード（その下に別のノードが表示されていないもの）をクリックすると[ワークスペース]ペインの関連するリポジトリが表示され、選択した内容にパークします。

クロスリファレンスには次のような特徴があります。

  • 検索結果を削除できます。

  • 検索結果から検索処理を再度実行させることができます。

  • 検索結果を印刷したりテキストファイルに出力することができます。

  • 検索が完了すると、自動的に[ナビゲータ]ペインの検索結果が開きます。結果はグレーで強調表示されます。

  • プロジェクトが閉じると、検索結果は、プロジェクトファイルの存在するパス名やプロジェクトファイル名、ファイル拡張子（.xrf）を基にファイル名が決定され、ユーザのパーソナルディレクトリ（"マイドキュメント"）にバイナリ形式で保存されます。


定義取得

ユーティリティ >

定義取得ユーティリティは、[オプション]メニューから[定義取得]をクリックするか F9 で実行されます。

定義取得ユーティリティには、[DBMS]タブと[XML]タブが含まれています。

DBMSテーブル

定義取得ユーティリティを使用することで、RDBMSのデータ辞書からMagicの[データ]リポジトリにテーブル定義を直接読み込むことができます。1つまたは複数のテーブル定義をデータベースから読み込むこともできます。

ただし、このユーティリティでは、MagicとRDBMSのデータ辞書間でテーブル定義のどちらか一方が変更されても、もう一方の定義が自動で変更されることはありません。このため、テーブル定義の同期化は手動で処理を行わなければなりません。

この機能は、既存のシステムで使用されているデータベースをMagicで利用する場合、そのテーブル定義を、手動で[データ]リポジトリに定義する手間を省きます。これにより、エラー発生の可能性も低くなるため、作業を迅速に進めることができます。

注意：

[定義取得]オプションは、SQL系のゲートウェイでのみ機能します。

XMLデータソース

定義取得ユーティリティで、XMLスキーマ(XSD)の読み込みやXMLビューの定義を行うことができます。

[データ]リポジトリ上でパークした状態で、XMLスキーマに対するビューを定義することができます。

[データ]リポジトリのタイトル行にパークしている場合、このユーティリティはXMLスキーマに対する必要なビューを作成し、オプションでこのスキーマに基づくXMLドキュメントの読込/書込プログラムを作成します。この方法は、既存のビューを更新するためにスキーマを再読込します。

注意：

同じ構成でファイル名や位置が異なって設定されているスキーマファイルから定義取得されたデータソースを1つのプログラム内に定義させることはできません。 構成が同じ場合、同じ名前、同じパス上のスキーマファイルから定義取得するようにしてください。

定義取得の動作について

既存のテーブル定義を読み込む場合に、Magicは各データベースカラムで最適なMagicのデータ型を使用します。

Floatデータ型の場合、MagicはDBMSリポジトリからデフォルト書式を使用します。

参照

ビューの定義取得

Datetimeデータの定義取得


定義取得 DBMSタブ

DBMSタブ

ユーティリティ > 定義取得

[定義取得]ダイアログの[DBMS]タブには、以下の設定欄があります。

設定欄

内容

データベース

定義情報を取得するデータベースを指定します。ここからズームして[データベース一覧]を開き、選択してください。

タグデータ

データソースの選択方法を指定します。以下の３つのオプションがあります。

  • A=全部 …… データベース内の全てのデータソースを読み込みます。

  • S=選択 …… 指定したデータソースのみを読み込みます。このオプションを選択すると、[データソース選択一覧]が表示されます。使用したいデータソースにカーソルを移動し、スペースバーを押下することでデータソースにタグ（チェックマーク）が設定され選択状態になります。チェックマークは、データソース名の隣に表示されます。[選択]ボタンをクリックすると[定義取得]ダイアログに戻ります。

  • N=なし(デフォルト) …… データソースは選択されません。

データソース

ここには、選択されたデータソースの数が表示されます。


定義取得 XMLタブ

XMLタブ

ユーティリティ > 定義取得

[データ]リポジトリのXMLデータベースを使用しているデータソースのどれかから定義取得ユーティリティ（F9）を実行すると、[定義取得]ダイアログにスキーマURLの入力欄が表示されます。ここには、読み込むスキーマファイルの位置（ファイルパスまたはURLのどちらか）を指定します。既に取得済みのデータソース上で定義取得ユーティリティを実行すると、XMLビューの再読込のボックスが開きます。

定義取得ユーティリティが[データ]リポジトリのタイトル行から実行された場合、[定義取得]ダイアログに[XML]タブが含まれます。ここには、以下の設定欄があります。

設定欄

内容

データベース

定義情報を取得するデータベース（XML）を指定します。ここからズームして[データベース一覧]を開き、選択してください。

スキーマURL

ビューが作成されるスキーマURLを指定します。指定すると[ルート要素]が表示されます。

ルート要素

ルート要素は、表示のみで変更できません。

ビューの再読込

現在のプロジェクトやコンポーネントから既存のビューを再利用します。

フォルダに挿入

作成されるデータとプログラムを含むフォルダの名前を指定します。

デフォルト値は、ルート要素の名前です。空白の場合、ビューやプログラムはフォルダなしで作成されます。

テンプレートプログラム

作成するテンプレートプログラムを指定します。指定できるオプションは以下のとおりです。

  • A=全て（デフォルト）……作成プログラムと検索プログラムの両方を作成します。

  • C=作成……データをXML化するためのテンプレートプログラムを作成します。プログラム名は、CreateXML_<データソース名>になります。

  • S=検索……XMLデータからデータを取得するためのテンプレートプログラムを作成します。プログラム名は、ScanXML_<データソース名>になります。

  • N=なし……テンプレートプログラムは作成されません。

値をXMLに入力

ここをチェックすると、XML作成プログラムがデフォルト値を反映させたXMLを作成します。[テンプレートプログラム]の指定が「A=全て」または「C=作成」の場合のみ有効です。

注意：

作成されたプログラムにはTODOコメントが含まれます。開発者は、必要に応じて内容を修正してください。


定義取得 XML定義の再読込

XMLビューの再読込

ユーティリティ > 定義取得

すでに定義されているXMLデータエントリ上で定義取得ユーティリティを実行すると、スキーマが再度読み込まれ、既存のデータエントリが更新されます。

[XMLビューの再読込]ダイアログで、[関連するビューの検索と再読込を行う]のチェックボックスの設定によって、更新されたスキーマをもとにする全てのXMLビューを更新するか、該当するXMLビューだけを更新するかを決めることができます。

デフォルトは、チェック状態になっています。


定義取得 ビュー

ビューの定義取得

ユーティリティ > 定義取得

SQL ではまた、テーブルの定義取得と同じ方法でビューの定義情報を取得できます。SQLのビューは、クエリによって定義される仮想テーブルです。SQLビューはテーブルと同じようにアクセスできますが、格納されている行は物理行ではありません。SQLビューへは照会モードでアクセスできます。また、RDBMSによっては、RDBMSのテーブルと同じように行の更新ができるものもあります。

ビューには、インデックスはありません。しかし、ビューを取得する時は仮想のユニークなインデックスが必要です。これは、Magicは処理を行う上でテーブルの位置情報が必要なためです。

ROWIDを持つOracleでは、ビューが1つのテーブルに基づいている場合、そのROWIDが取得され、このROWIDが位置情報になります。ROWIDがないRDBMSの場合は、仮想ユニークインデックスを定義しなければなりません。


データソース テーブルソース カラム 特性 Datetime 定義取得

Datetimeデータの定義取得

ユーティリティ > 定義取得

定義取得処理の間、最初のDatetimeフィールドが見つかると、Magicは以下のようなポップアップウィンドウが表示されます。

SQLの Date-Time のカラムを Magicの日付と時刻の項目の組み合わせに変換しますか？

「はい」を選択すると、以下のように動作します。

  • Magicが、Datetimeフィールドを含むテーブルの定義を取得する際に、Magicエンジンは自動的に２つのカラム（日付と時間）を作成します。[Datetimeの一部]特性がそれに対応して設定されます。

  • 定義取得処理は、00-23:59の制約で時間値を取得します。

  • Magicでの時間部分のカラム名を、_timeで連結された実際のフィールド名とします。


MGSTATIONS

ユーティリティ >

ネットワーク上の指定されたライセンスのライセンス数を確認するユーティリティです。 ライセンスサーバを使用している場合は使用できません。
構文： | MGSTATIONS.EXE<ライセンス名>, [<ライセンスファイル>]
パラメータ： | <ライセンス名> … ライセンス名を表す文字列です。 <ライセンスファイル> … ライセンスファイルとパス名です。ファイル名が指定されない場合、現在の作業フォルダ上のLicense.dat ファイルを基に検索します。
戻り値： | ライセンスファイルによって指定されたライセンスの使用状況が表示されます。
注意事項： | このユーティリティは、同一ネットワーク上で同じユーザ名、同じシリアル番号のライセンスを使用しているユーザ数をカウントするものです。 Magicが実行されていないPC上で実行してください。そうでない場合は、正確にユーザ数が取得できません。
例： | MGSTATIONS MGCSTK “c:\eDeveloper 10.1\license.dat”


MGUSRDMP

ユーティリティ >

ユーザ定義ファイルからユーザ名を取得し、XMLファイル形式のリストを出力します。 MGUSRDMPユーティリティを実行させるには、SUPERVISORパスワードが必要です。
構文： | MGUSRDMP.EXE /P=SupervisorPassword /N=UsersFileName /O=OutputFileName
パラメータ： | SupervisorPassword … SUPERVISORのパスワード。パスワードが設定されていない場合は、省略できます。 UsersFileName … アクセスするユーザ定義ファイルの名前。このパラメータは必須です。 OutputFileName…出力ファイル名。指定しない場合は、「Users.LOG」という名前で出力されます。
例： | MGUSRDMP /N=usr_std.eng /O=users.xml
注意事項： | ユーザIDに日本語（全角、半角カタカナ）が含まれている場合、正しいXMLファイルとして認識されません。


MSG2MGIC

ユーティリティ >

Magicアプリケーション内に定義された[外部イベント]に対するロジックユニットの呼出しを検証するユーティリティです。

構文：

MSG2MGIC -[A/N/F/L]value

パラメータ：

A/N/F/L … 送信するメッセージのデータ型を指定します。

  • A … 文字データ

  • N … 数値データ

  • F … 浮動小数点型ポインタ

  • L … 論理型データ（F/T）

例：

MSG2MGIC –ABill –N123 -LT

注意実行：

デモライセンスで実行している場合は、外部イベントは起動されません。


ODBC チェックドライバ

ユーティリティ >

ODBC チェックドライバユーティリティ（Mgchkdrv.exe）は、ODBCドライバに付属しています。このプログラムを実行するとODBCデータソースがテストされ、ドライバによって作成される関数の一覧が印刷されます。このテストによって、ODBCに対してMagicデータベースゲートウェイでそのドライバが使用できるかどうかがわかります。

参照

SQLに関する考慮事項


文字列抽出ユーティリティ

ユーティリティ >

開発者が、多言語対応インタフェースのアプリケーションを開発したい場合、アプリケーション内に定義されている語句をすべて含む変換辞書を作成する必要があります。このユーティリティを使用することで、アプリケーション内の語句を抽出することができるため、辞書作成の手間を省くことができます。

このユーティリティは、以下のように使用します。

ユーザ定義開発メニューから起動する場合

  1. [ツール]メニューを開き、[文字列抽出]を選択して[文字抽出]ウィザードを起動します。

  2. [ウェルカム]ダイアログから、[次へ]をクリックします。

  3. [プロジェクト詳細]ダイアログから、すべてのプログラムをスキャンするか、前回の処理以降に更新された内容のみをスキャンするかを選択します。初めてスキャンするプロジェクトに場合は、この選択オプションは利用できません。

  4. 式内の文字をすべて対象にするか、MLSTrans()内の文字のみを対象にするかを選択します。

  5. [出力ファイル]欄に出力ファイル名を入力します。

  6. [実行]をクリックすると、ウィンドウの下にプログレスバーが表示されます。これは、抽出処理が実行されていることを示しています。処理が終了すると、終了メッセージが表示されます。

  7. [OK]をクリックするとウィザードは終了します。

注意：

  • このツールのソースファイルは、以下のフォルダ内にあります。スキャンするプロジェクトに合わせてこのユーティリティを修正することも可能です。

%EngineDir%Add_On\StringExtractor

  • 出力結果は、XMLファイルとして作成されます。スキーマファイル（StringExtractor.xsd）を使用することでアプリケーションで利用することもできます。

コンポーネントアプリケーションとして起動する場合

  1. [コンポーネント]リポジトリを開き、1行追加します。

  2. ズームして%EngineDir%Add_On\StringExtractor\StringExtractor.eciを選択します。

  3. 起動したいプログラムに[コールプログラム]処理コマンドを定義し、StringExtractor.String Extract を選択します。

  4. 以下のパラメータを指定します。

  5. pProject File …… スキャンするプロジェクトファイル名

  6. pScan Date …… スキャンの開始日付（通常は、Date()関数で指定します）

  7. pScan Time …… スキャンの開始時刻（通常は、Time()関数で指定します）

  8. pMLSTrans Only …… 式内のスキャン対象をMLSTrans()内の文字のみにするかどうかの選択

  9. pOutput File …… 結果として出力するファイル名


ユーザ定義開発メニュー

ユーティリティ >

開発時に使用する様々なMagicプロジェクトの起動メニューを提供するものです。このメニューに、「アプリケーションウィザード」 や他のウィザードなどのツールを含めることができます。このメニューは、開発モードでプロジェクトを開いた時に[ツール]というプルダウンメニューとして表示されます。

参照

メニューの登録

開発メニュー指定の例

処理コマンド

自動処理

グローバルパラメータ情報


ユーザ定義開発メニュー 登録

メニューの登録

ユーティリティ > ユーザ定義開発メニュー

ユーザ定義開発メニューは、開発エンジンでのみ有効です。MAGIC.INI ファイルの[TOOLS_MENU]セクションを修正することで次のセッションから有効になります。

[TOOLS_MENU]セクションへの登録順に ツールメニューの表示順とサブメニューが定義されます。

開発メニューは、MAGIC.INI ファイルに以下のような構文で定義します。

メニュー名= メニュータイプ,表示メニュー名,親メニュー名,ECF パス/コマンド,アクセスキー,事前処理ファイル,事後処理ファイル、ツールメニュー番号

構文に誤りがある場合は、メニューは表示されません。

指定したファイルがない場合は、メニューは表示されますが実行時にエラーが表示されます。

参照

メニュータイプ

表示メニュー名

親メニュー名

ECF パス/コマンド

アクセスキー

事前処理ファイル

事後処理ファイル

ツールメニュー番号


Menu Type

メニュータイプ

ユーティリティ > ユーザ定義開発メニュー > メニューの登録

メニュータイプとして以下の文字が指定できます。

  • A …… アプリケーション。ECF形式のMagic アプリケーションを実行する場合に指定します。

  • O …… OS コマンド

  • M …… サブメニュー。別のメニューのサブメニューにする場合に指定します。

  • S …… 区切り。メニューとメニューの間に区切り線を表示します。

例：: Menu4=A


ユーザ定義開発メニュー 登録 表示メニュー名

表示メニュー名

ユーティリティ > ユーザ定義開発メニュー > メニューの登録

実行時に表示されるメニュー名を指定します。

メニュータイプが、A（アプリケーション）、O（OSコマンド）、および、M（サブメニュー）の場合は必須です。S（区切り）の場合は不要です。表示メニュー名には、アクセラレータキーとして、アンパサンド (&) を含めることができます。


ユーザ定義開発メニュー 登録 親メニュー名

親メニュー名

ユーティリティ > ユーザ定義開発メニュー > メニューの登録

親の[メニュー名]を指定します。指定されていない場合は、[ツール]メニューの下に表示されます。


ユーザ定義開発メニュー 登録 ECFパス/コマンド

ECF パス/コマンド

ユーティリティ > ユーザ定義開発メニュー > メニューの登録

メニュータイプがA（アプリケーション）の場合、ここにアプリケーションのECFファイルをパスを付けて指定します。

例：Menu2=A,Magic Wizard, ,%Tools%Wizard.ECF,

ECFパスが指定されていない場合は、このメニューは無効となり表示されません。

指定されたアプリケーションが起動される前に、現在のアプリケーションは一端終了します。アプリケーションに関する情報は、グローバルパラメータとして設定されます。

メニュータイプがO（OS コマンド）の場合は、実行するOS コマンドを指定します。

例： Menu7=O,Notepad, ,notepad.exe,

MFF のパスとコマンドでは、論理名を使用することができます。


開発拡張 開発メニュー 指定構文 アクセスキー

アクセスキー

ユーティリティ > ユーザ定義開発メニュー > メニューの登録

定義されたメニューを起動するためのアクセスキーを割り当てます。この設定はオプションで、メニュータイプが、A（アプリケーション）、O（OS コマンド）で有効です。

例：Menu7=C,Notepad, ,notepad.exe,Ctrl+1

注意：

開発用のアクセスキーと重ならないように指定してください。同じアクセスキーが指定された場合、こちらが優先されます。


ユーザ定義開発メニュー 登録 事前処理ファイル

事前処理ファイル

ユーティリティ > ユーザ定義開発メニュー > メニューの登録

現在のプロジェクトを閉じる前に、実行される処理の手順リストを提供する自動処理手順ファイル名を指定します。このパラメータは、論理名をサポートします。利用可能な処理については、「処理コマンド」を参照してください。


ユーザ定義開発メニュー 登録 事後処理ファイル

事後処理ファイル

ユーティリティ > ユーザ定義開発メニュー > メニューの登録

起動したプロジェクトが終了して、現在のプロジェクトが再開する時に、実行される処理の手順を提供する自動処理手順ファイル名を指定します。このパラメータは、論理名をサポートします。利用可能な処理については、「処理コマンド」を参照してください。


ユーザ定義開発メニュー 指定例

開発メニュー指定の例

ユーティリティ > ユーザ定義開発メニュー

[TOOLS_MENU]

Menu1 = A,検索と置換ツール(&S),Add_On\SearchReplace.ecf,Ctrl+W,pre.txt, post.txt,ImageFor = B ToolNumber= 60 ToolGroup = 1
Menu2 = O,メモ帳(&N), ,notepad.exe magic.ini,
Menu3 = S,,,,,
Menu4 = M,サブメニュー(&U),,,,
Menu5 = M,ウィザード集(&M),Menu4,,,
Menu6 = A,ウィザード&1,Menu5,Add_On\wizard1.ecf
Menu7 = A,ウィザード&2,Menu5,Add_On\wizard2.ecf
Menu8 = A,ウィザード&3,Menu5,%Tools%wizard3.ecf

注意：

上記の例は、折り返しで記述されているように見えますが、実際は、1つのメニュー指定に改行を含めないでください。

[検索と置換ツール]メニューを実行すると以下のような手順で動作します。

  1. pre.txt という名前の事前処理ファイルに記述された処理が実行されます。（例：プロジェクトのリポジトリ出力）

  2. 現在のプロジェクトを終了します。（例：customers.ecf）

  3. Magicエンジンが SearchReplace.ecf ファイルをオープンします。

  4. SearchReplace.ecf をクローズするとMagicは、自動的に元のプロジェクト（customers.ecf）に戻ります。

  5. post.txt という名前の事後処理ファイルに記述された処理が実行されます。（例：プロジェクトのリポジトリ入力）

「メモ帳」のメニューを選んだ場合、ノートパッドが起動され、MAGIC.INI ファイルを開きます。（現在のプロジェクトはクローズされません。）


ユーザ定義開発メニュー 処理コマンド

処理コマンド

ユーティリティ > ユーザ定義開発メニュー

事前／事後処理ファイルで定義する処理コマンドは、以下の構文で指定できます。

処理タイプ, メイン情報, 番号, スイッチ

事前／事後処理で指定できる処理タイプには以下のものがあります。

  • Export …… プロジェクトのリポジトリ出力を実行します。

  • Import …… プロジェクトのリポジトリ入力を実行します。

  • ECF …… プロジェクトをキャビネットファイルとして保存

  • Project …… プロジェクトを切り替える

  • Getdef …… 定義取得を行う

  • OS …… OS コマンドを実行

  • Simulate …… キーボード処理をシミュレートする（例：リポジトリにパークする）

  • ObjectList …… プロジェクトのオブジェクト一覧を出力

  • ECI …… コンポーネントインタフェースファイルのロード

  • AddModule …… 現在のプロジェクトの参照用としてプロジェクトをロード


ユーザ定義開発メニュー リポジトリ出力

リポジトリ出力

ユーティリティ > ユーザ定義開発メニュー

現在のプロジェクトのリポジトリ出力処理を実行するように指定します。

この処理では以下のように指定します。

Export, <ファイル名>, <スイッチ>

参照

ファイル名

スイッチ


ユーザ定義開発メニュー リポジトリ出力 ファイル名

ファイル名

ユーティリティ > ユーザ定義開発メニュー > リポジトリ出力

出力ファイル名を指定します。ファイル名の指定には、論理名が使用できます。

実際に出力されるファイル名には、指定されたファイル名に「.XML」という拡張子が付加されます。


ユーザ定義開発メニュー リポジトリ出力 スウィッチ

スイッチ

ユーティリティ > ユーザ定義開発メニュー > リポジトリ出力

追加情報を指定します。

Repository=X

出力するリポジトリを指定します。以下の文字が指定できます。

  • M …… モデル

  • T …… データソース

  • P …… プログラム

  • H …… ヘルプ

  • R …… 権利

  • U …… メニュー

  • C …… コンポーネント

  • D …… アプリケーション特性

  • A …… プロジェクト全体

Range=

リポジトリを出力する場合の範囲を指定します。ハイフンによって開始と終了の値を指定します（例：13-18）。１つだけ出力する場合は、その番号だけを指定するか、同じ番号で範囲指定してください（例：7または7-7）。

現在カーソルのあるオブジェクトのみを出力する場合は、「Range=@」と指定してください。この時、指定されたリポジトリと異なるリポジトリ上にカーソルがある場合は、指定されたリポジトリの内容を全て出力します。

範囲指定がなかったり、正しくない場合、指定したリポジトリ全体を出力します。

出力するリポジトリが、メニュー、権利、プロジェクト特性、プロジェクトの場合は、範囲指定は不要です。

WithModels=Y\N

データソースかプログラムのリポジトリ出力を行う際に、関連するモデルを出力するかどうかを指定します。デフォルト値は、「No」です。

例：Export, %Path%AllTables.exp, Repository=T WithModels=Y


ユーザ定義開発メニュー リポジトリ入力

リポジトリ入力

ユーティリティ > ユーザ定義開発メニュー

現在のプロジェクトに指定されたファイルをリポジトリ入力処理するように指定します。

この処理では以下のように指定します。

Import, <ファイル名>, <スイッチ>

参照

ファイル名

スイッチ


ユーザ定義開発メニュー リポジトリ入力 ファイル名

ファイル名

ユーティリティ > ユーザ定義開発メニュー > リポジトリ入力

入力ファイル名を指定します。ファイル名の指定には、論理名が使用できます。


ユーザ定義開発メニュー リポジトリ入力 スウィッチ

スイッチ

ユーティリティ > ユーザ定義開発メニュー > リポジトリ入力

追加情報を指定します。

ImportFolderInfo=Y/N

フォルダを含めて入力するかどうかを指定します。デフォルト値は、「No」 です。

OverwriteMainProgram=Y/N

メインプログラムを上書きして入力するかどうかを指定します。デフォルト値は、「No」 です。

OverwriteTarget=テーブルの行番号

上書きしたい行番号を指定します。入力するファイル内に１行分のオブジェクトがある場合のみ有効です。 このパラメータが指定されていないか、指定した行番号が存在していない場合、テーブルの最後に追加されます。

メインプログラムはこのスイッチでは上書きされません。メインプログラムを上書きする場合は、OverWriteMainProgram　指定します。

メニュー、アプリケーション特性、権利は、常に入力されます。（このスイッチは、無視されます。）

該当するオブジェクトが見つかった場合、ImportFolderInfoは無視されます。

AutoCheckOut=Y/N

チーム開発が有効に定義されているアプリケーションの場合、自動チェックアウトを有効にするかどうかを指定します。

例：
Import, a.exp, ImportFolderInfo=Y OverwriteMainProgram=Y OverwritePulldownMenu=N


ユーザ定義開発メニュー ECFとして保存

ECFとして保存

ユーティリティ > ユーザ定義開発メニュー

現在のプロジェクトを、ECFで保存するように指定します。

この処理では以下のように指定します。

ECF, <ファイル名>

  • ファイル名……ECFとして出力するファイル名を指定します。指定されたファイル名のまま出力されます。（「.ecf」という拡張子は付加されません。）


ユーザ定義開発メニュー プロジェクトのオープン

プロジェクトのオープン

ユーティリティ > ユーザ定義開発メニュー

指定されたプロジェクトファイルを開くように指示することができます。プロジェクトは、プロジェクトファイル名とパスを使用して指定します。

この処理では以下のように指定します。

Project, <edp ファイル/パス名>


ユーザ定義開発メニュー 定義取得処理

定義取得処理

ユーティリティ > ユーザ定義開発メニュー

Getdefコマンドは、直接SQLテーブルからMagicの[データ]リポジトリにデータソース定義をロードするために使用されます。

SQLテーブルをロードする場合、このコマンドは以下ようにパラメータを指定します。

Getdef, <データベース名>, <テーブル名>, <スイッチ>

  • データベース名……定義取得するデータベース名を指定します。この名前は、[データベース]テーブルに定義されている名前を指定してください。

  • テーブル名……オーナ名を含んだテーブル名を指定します。

  • スイッチ(オプション)……作成されるテーブルのフォルダ名が指定できます。"FolderName=フォルダ名" と指定します。

例:Getdef, Mssql, dbo.GA_table, FolderName = folder1

XMLスキーマをロードする場合、このコマンドは以下のようにパラメータを指定します。

Getdef,<XMLデータベース>,<スキーマURL>,[FolderName=<フォルダ>],[SchemaRoot=<グローバル要素>],[MainViewNode=<ビュー要素>],[All= <Y/N>]

  • スキーマURL……取得するスキーマファイルを指定するURL。必要に応じてプロトコル（http,https,ファイルシステム）が指定できます。

  • グローバル要素……指定されたスキーマに定義されているグローバル要素名

  • ビュー要素……グローバル要素の配下に定義されている複合要素または反復可能な単一要素

  • All……Yが設定されると、すべてのインクルードフィールドは以下の例のようにアドレスとしてビューに含まれることになります。

例:GETDEF,Default XML Database,Store.xsd,FolderName=MyFolder,SchemaRoot="Store", MainViewNode="Store\Book",All=Y

この例では、すべてのインクルードフィールド（BookのAuthorとStoreのAddress）を含んだ[データ]リポジトリ内のStoreグローバル要素の下にBook要素のビューが作成されます。


ユーザ定義開発メニュー OSコマンド

OS コマンド

ユーティリティ > ユーザ定義開発メニュー

この処理では以下のように指定します。

OS, <OS コマンド>, <スイッチ>

参照

OS コマンド

スイッチ


ユーザ定義開発メニュー OSコマンド OSコマンド

OS コマンド

ユーティリティ > ユーザ定義開発メニュー > OS コマンド

実行する OSコマンドを指定します。


ユーザ定義開発メニュー OSコマンド スウィッチ

スイッチ

ユーティリティ > ユーザ定義開発メニュー > OS コマンド

OSコマンドを実行させる上でのオプション指定です。

Wait=Y/N

OSコマンドが終了するまで次の処理を待つかどうかを指定します。

Show =[Hide, Normal (デフォルト), Maximize, Minimize]

DOSボックス（コマンドプロンプト）をどのように表示させるかを指定します。

  • Hide…… 非表示

  • Normal……通常

  • Maximize……最大

  • Minimize……最小

例：OS, notepad, wait=Y show=hide.


ユーザ定義開発メニュー シミュレート

シミュレート

ユーティリティ > ユーザ定義開発メニュー

この処理では以下のように指定します。

Simulate, <有効なトークンの集まり>, <スイッチ>

以下の３つのトークンによってMagicにオブジェクトにパークさせたり、キーボード操作をシミュレートさせたりすることができます。トークンは、セミコロン（;）で区切りることで複数指定することができます。

参照

WIN

TXT

KEY


ユーザ定義開発メニュー シミュレート WIN

WIN

ユーティリティ > ユーザ定義開発メニュー > シミュレート

このトークンは指定したリポジトリにカーソルをパークさせるようにMagicに指示します。

各リポジトリの指定は以下の文字列で行います。

  • MDL_REP …… モデル

  • TBL_REP …… データソース

  • PRG_REP …… プログラム

  • HLP_REP …… ヘルプ

  • RGT_REP …… 権利

  • MNU_REP …… メニュー

  • CMP_REP …… コンポーネント

これらの文字列に、リポジトリ上のオブジェクト番号を表す番号を接尾語として付加します。

例：Simulate, WIN=MDL_REP#15

モデルリポジトリの15番目のモデルにパークします。

オプションとして以下のトークンも指定できます。

  • Simulate, WIN=PRV_LCT …… 前の位置にパークします.

  • Simulate, WIN=PRV_ENT …… 前にパークしたメインエントリにパークします。（以前パークしたタスクを含んだプログラム など）

  • Simulate, WIN=NO_REP …… ワークスペースが閉じられた状態になります。


ユーザ定義開発メニュー シミュレート TXT

TXT

ユーティリティ > ユーザ定義開発メニュー > シミュレート

このトークンは、キーボード操作をシミュレートさせます。

例：Simulate, TXT= <テキスト>

現在の位置にテキストを入力します。

このトークンでは、「=」以降をフリーの文字列として処理します。空白も文字として扱います。


ユーザ定義開発メニュー シミュレート KEY

KEY

ユーティリティ > ユーザ定義開発メニュー > シミュレート

このトークンは、組み合わせキーのキーボード操作をシミュレートさせます。サポートするサポートする組み合わせは以下のとおりです。

  • F1 ～ F12 …… Shift+やCtrl+、Alt+ を接頭語として指定できます。

  • Ctrl+<キー文字>

  • Home …… Shift+やCtrl+、Alt+ を接頭語として指定できます。

  • End …… Shift+やCtrl+、Alt+ を接頭語として指定できます。

  • Up …… ↑カーソルキー。 Shift+ や Ctrl+ 、 Alt+ を接頭語として指定できます。

  • Down …… ↓カーソルキー。 Shift+ や Ctrl+ 、 Alt+ を接頭語として指定できます。

  • PgUp …… Shift+ や Ctrl+ 、 Alt+ を接頭語として指定できます。

  • PgDn …… Shift+ や Ctrl+ 、 Alt+ を接頭語として指定できます。

  • Tab …… Shift+ や Ctrl+ 、 Alt+ を接頭語として指定できます。

  • Esc …… Shift+ や Ctrl+ 、 Alt+ を接頭語として指定できます。

  • Del …… Shift+ を接頭語として指定できます。

  • Back…… Back Spaceキー。Alt+ を接頭語として指定できます。

  • Enter …… Ctrl+ を接頭語として指定できます。

  • Space …… スペースキー。Ctrl+ を接頭語として指定できます。

  • Ins …… Insertキー。Shift+ や Ctrl+ を接頭語として指定できます。

  • Plus…… + キー

  • Minus…… - キー

  • Clear

  • Help

例：Simulate,KEY=SHIFT+F10;KEY=Enter

注意：

OSコマンドとキーボード処理をシミュレートするコマンドを並べて書く時は、OSコマンドを先に指定してください。

例： OS,C:\WINNT\system32\cmd.exe /c del MGWizard*.tmp,Show = Hide Simulate,WIN=PRG_REP#5

（OSコマンドでTMPファイルを削除し、プログラムリポジトリを開きその５番目にカーソルをパーキングさせます。）


ユーザ定義開発メニュー オブジェクト一覧出力

オブジェクト一覧出力

ユーティリティ > ユーザ定義開発メニュー

このコマンドはMagicエンジンに、指定されたリポジトリのリストを出力するように指示します。

書式

この処理では以下のように指定します。

ObjectList,<出力ファイル>,Repository=<リポジトリコード>

  • 出力ファイル …… 結果ファイルのファイル名とパス名

  • リポジトリコード …… リポジトリを表すコードを指定します。

  • M …… モデル

  • T（または D） …… データ

  • P …… プログラム

  • H …… ヘルプ

  • R …… 権利

  • C …… コンポーネント

出力結果

以下のような書式のテキストファイルが出力されます。

位置（桁） | 内容
1-6 | インデックス(6文字)
8-37 | 名前（30桁)
39-68 | フォルダ名（30桁)
70-99 | 公開名（30桁）
101-110 | 最終更新日 （10桁：[yyyy/mm/dd]） プログラムのみ （[動作環境]の日付タイプの指定に依存します。）
112-119 | 最終更新時刻( 8桁：[hh/mm/ss]） プログラムのみ

全てのリポジトリに対して、119桁の文字長で出力されます。各項目間は、1桁の空白で入ります。

リポジトリコードが正しくない場合、処理は正しく行われず何も出力されません。


ユーザ定義開発メニュー ECIファイルのロード

ECIファイルのロード

ユーティリティ > ユーザ定義開発メニュー

コンポーネントインタフェースファイルの読み込みを指定します。ECIをロードすることで[コンポーネント]リポジトリにコンポーネントが追加されます。

この処理では以下のように指定します。

ECI,<ECIファイル>,スイッチ

  • ECIファイル …… コンポーネントインタフェースファイルのファイル名とパス名

  • スイッチ …… 指定可能なスイッチは以下の通りです。

KeepInterface=Y/N (デフォルト Y)

ECIファイルへのパスがコンポーネントのXMLファイルに保存されるかどうかを指定します。「Y」が設定された場合、エンジンはECIファイル名とパスをXMLの<ECIFile>タグの中のcomps.xmlファイルに保存します。


AddModule Operation

モジュールの追加

ユーティリティ > ユーザ定義開発メニュー

指定されたプロジェクトファイルが、現在のプロジェクトのモジュールとして追加されます。

この処理では以下のように指定します。

AddModule,<ファイル名>

  • ファイル名 …… モジュールとして追加するプロジェクトファイル名とパスを指定します。


ユーザ定義開発メニュー グローバルパラメータ情報

グローバルパラメータ情報

ユーティリティ > ユーザ定義開発メニュー

ユーザ定義開発メニューから起動されたツールアプリケーションが、起動元のプロジェクト情報を取得する必要がある場合、GetParam関数を使用することで可能になります。

この場合のプロジェクトに関するグローバルパラメータは以下の通りです。

パラメータ名

型

値

MG_ApplicationName

文字

プロジェクト名

MG_CurrentObject

数値

現在カーソルがパークしているオブジェクトの行番号を表す数値

MG_CurrentObjectIsn

数値

現在カーソルがパークしているオブジェクトのISN（内部番号）を表す数値

MG_CurrentObjCheckedOut

論理

最後にパークしたか処理したオブジェクトがチェックアウト状態の場合「True」が返ります。チェックイン状態の場合は「False」が返ります。

プロジェクトがチーム開発モードに定義されていない場合は、値は設定されません。

MG_CurrentRepository

数値

現在カーソルがパークしているリポジトリを表す数値が返ります。数値は以下のようにリポジトリに対応しています。

  • 1 … モデル

  • 2 … データソース

  • 3 … プログラム

  • 4 … ヘルプ

  • 5 … 権利

  • 6 … メニュー

  • 7 … コンポーネント

MG_TeamDev

論理

プロジェクトがチーム開発モードかどうかを返します。

チーム開発モードの場合、「True」が返ります。

MG_ToolEntry

文字

現在実行中のツールメニューの指定内容が返ります。

MG_TotalModels

数値

コンポーネントを除いたモデルの総数

例：アプリケーションが 20 のモデルを持っているならば、この値は 20 を返します。

MG_TotalTopModels

数値

フォルダーなしで定義されているモデルの総数

MG_TotalTables

数値

コンポーネントを除いたテーブルの総数

MG_TotalTopTables

数値

フォルダーなしで定義されているテーブルの総数

MG_TotalPrograms

数値

コンポーネントを除いたプログラムの総数

MG_TotalTopPrograms

数値

フォルダーなしで定義されているプログラムの総数

MG_TotalHelpScreens

数値

コンポーネントを除いたヘルプ画面の総数

MG_TotalTopHelpScreens

数値

フォルダーなしで定義されているヘルプ画面の総数

MG_TotalRights

数値

コンポーネントを除いた権利の総数

MG_TotalTopRights

数値

フォルダーなしで定義されている権利の総数

MG_TotalComponents

数値

コンポーネントの総数

MG_TotalTopComponents

数値

フォルダーなしで定義されているコンポーネントの総数


ユーザ定義開発メニュー 自動処理

自動処理

ユーティリティ > ユーザ定義開発メニュー

AutomaticProcessingSequenceFile

開発エンジンは、バックグラウンド処理を自動的に処理することができます。

MAGIC.INIファイルの[MAGIC_ENV]セクションで

AutomaticProcessingSequenceFile=ファイル名

と指定された場合、開発エンジンが起動されると、ファイルで指定された処理を自動的に実行します。ファイルに記述する構文は、前述の処理コマンドと同じです。

この機能は、特定の指定した時間に一連の処理を実行させたい場合に有効です。

ファイルに指定には、論理名が使用できます。「自動処理手順の例」を参照してください。

AutomaticProcessingMode

環境設定「AutoamticProcessMode」は、バックグラウンドでの自動処理に対する実行モードを指定します。

この特性はMAGIC.INIファイルの[MAGIC_ENV]セクションに設定します。

AutoamticProcessMode=B または b

この特性は、「AutomaticProcessingSequenceFile」が指定されている場合のみ有効になります。このファイルが指定されていない場合、「AutoamticProcessMode」は無視され、開発エンジンはフォアグラウンドで起動されます。

この特性が「b」または「B」以外、または何も指定されない場合も、開発エンジンはフォアグラウンドで起動されます。

この特性が「b」または「B」と設定された場合、開発エンジンはバックグラウンドで起動され「AutomaticProcessingSequenceFile」に指定された処理を自動的に実行します。

処理が終了すると、エンジンは終了します。

この特性は、[動作環境]ダイログでは設定できません。また、デフォルトのMAGIC.INIファイルには設定されていません。

注意：

実行エンジンのウィンドウモードを制御する「実行モード」は、自動処理を行わず、開発エンジンの処理に影響を与えません。


ユーザ定義開発メニュー 自動処理 例

自動処理手順の例

ユーティリティ > ユーザ定義開発メニュー > 自動処理

指定したプロジェクトファイルのリポジトリ出力を自動的に行うには以下のようにします。

MAGIC.INI ファイルの[MAGIC_ENV]セクションに 次のように追加します。

AutomaticProcessingSequenceFile=c:\tools\operations.txt

operations.txtファイルには以下のように記述します。

Project\c:\projects\myproject\myproject.edp
Export, %Path%MyProject.xml, Repository=A WithModels=Y

これで、Magic Studioが起動されると指定された処理が自動的に実行されます。

Magicを起動するショートカットにコマンドラインパラメータとして指定することもできます。必要に応じて、[デフォルトプロジェクト]やMagicの実行に必要なユーザ名やパスワードを指定してください。例えば以下のように指定できます。

"C:\program files\eDeveloper 10\eDevStudio.exe" /user=guest /password=guest /AutomaticProcessingSequenceFile=AutoProcess1.txt


テーブル変換

データソース変換

ユーティリティ >

データソース変換は、データソースの物理構造が変更され、データソースが存在する場合に、自動で実行される処理です。例えば、データソースにカラムが追加されたり削除されたり、カラムの属性が変更されたりインデックスの定義が変更されたり、使用されているモデルが変更された場合に自動的に変換処理が実行されます。

インデックスを重複可から重複不可なものに変換した場合、インデックスが重複したレコードは自動的に削除されてしまいますので注意してください。

データソース変換処理が開始されるのは、[データ]リポジトリの行の設定を終了しようとした時や[データ]リポジトリを終了しようとした時です。

[モデル]リポジトリを変換した場合は、自動的に変更処理が実行されません。変更が必要であることを示す警告を表示します。この場合は、[データ]リポジトリで一旦構文チェックを実行し、該当するデータソース上で手動で変換ユーティリティを実行してください。実行するには、[オプション]メニューの[データソース変換]（Ctrl+O）を選択してください。

変更する前に存在していたデータソース構造は、[データ]リポジトリでのレコードの設定または[データ]リポジトリを終了するまで新規のデータソース構造とともに維持されます。変換処理を途中でキャンセルした時には、データソースの物理構造と論理構造に矛盾が生じることがあります。この場合、その後、自動変換が不可能になります。このため、Magicが矛盾が起こっているデータソースにアクセスすると、エラーメッセージが表示されることもあります。

変換処理は、次のようにして作業を進めます。

  1. [変換処理確認]ダイアログボックスが開きます。「Yes」を選択すると、データソースが自動的に変換されます。「キャンセル」を選択すると、変換処理は実行されません（この場合、修正された部分を手動で元に戻さなければならないこともあります）。

  2. 変換処理の開始を確認すると、使用しているデータベースによっては、[バックアップ処理確認]ダイアログボックスが表示されます。オリジナルのデータソース（修正される前のデータソース）のバックアップを作成したい時には、「Yes」を選択します。バックアップファイル（例えば、DMBCK001.DAT というファイル名）は、カレントディレクトリ上に作成されます。 ここには、十分な空きスペースを確保しておく必要があります。

  3. 変換処理の開始を確認すると、[データソース変換]ダイアログボックスが表示されます。このダイアログボックスで、データベーステーブルを既存のインデックスのいずれかに従って再構成するようにMagicに対して要求できます。「インデックス0」では、行を物理順番で配置し直します。インデックスを使用してデータソースを再構成するには、インデックスの番号（[インデックス]テーブルのものを使用します）を入力するか、[インデックス一覧]にズームしてインデックスを選択します。選択したインデックスによるデータソースのスキャンや入出力処理において処理速度を向上させるために、使用頻度が一番高いインデックスを指定してデータソースを再構成するようにしてください。

  4. [データソース変換]ダイアログで「Yes」を選択すると、Magic側で変換が行われます。

  5. [データソース変換]ウィンドウが表示され、変換済みの行数が表示されます。データソースの変換が完全に終了すると、ウィンドウが閉じます。

可能であれば、Magicはテーブル変換でデータベース用のユーティリティを使用します。例えば、SQL系の場合、SQL ALTERTステートメントを使用します。


アプリケーション開発

プロジェクトの作成時にプログラムを実行する場合、Magic Studioを使用します。

エンドユーザに対してアプリケーションの実行環境を作成する場合は、プロジェクト作成時に設定した動作環境をもとに構築する必要があります。

エンドユーザは、プロジェクトファイル(.edp)を開いたり、[プログラム]リポジトリからプログラムを実行することのできるMagic Studioを持っていません。キャビネットファイル(.ecf)を開いて実行することができる、実行エンジン（Magic ClientやMagic Enterprise Server）のみ保有しています。従って、アプリケーションをキャビネットファイル形式で保存する必要があります。

以下は、エンドユーザ用にアプリケーションの実行環境を構築するための手順です。

  • アプリケーションデータの出力

  • アプリケーションデータの入力

  • メニューの作成

  • プロジェクトの出力

  • キャビネットファイルの作成

  • 実行環境でアプリケーションを開く

  • 別のPC上のアプリケーションを実行する


アプリケーションデータの出力

アプリケーション開発 >

プロジェクトを作成する場合、一般的に以下の異なる目的のデータソースを使用します。

  • 国名や都道府県名、市町村名、および測定単位などの標準データを含む汎用データソース。

  • 顧客名、取引先名、および製品名などユーザ独自のデータとして入力する必要のあるユーザ関連データソース。

通常は、アプリケーションと一緒に汎用データソースを提供する必要があります。

プロジェクトのデータソースからデータを出力するには、APGを使用することができます。APGを使用することでデータファイルの入出力を簡単に行うことができます。ここをクリックすると例が表示されます。

次のステップは、アプリケーションデータの入力です。


アプリケーションデータの入力

アプリケーション開発 >

アプリケーションの実行環境を構築する場合、使用するデータベースにアプリケーションデータを入力する必要があります。

データベースのデータを作成／更新を行うためにデータベース関連のユーティリティを使用することができます。

Magicを使用してデータベースのデータを更新することもできます。

エンドユーザ側のPCには、Magic Studioがインストールされていないため、入力プログラムを作成し、このプログラムを起動するためのメニューを定義する必要があります。

APGを使用することでこのようなプログラムを簡単に作成することができます。ここをクリックすると例が表示されます。

次のステップは、メニューの作成です。


メニューの作成

アプリケーション開発 >

アプリケーションを実行する場合、エンドユーザは実行メニューを使用してプログラムを実行します。従って、実行環境を構築する場合は、エンドユーザが使用するすべてのプログラムが実行メニューに定義されていることを確認する必要があります。

次のステップは、プロジェクトの出力です。


プロジェクトの出力

アプリケーション開発 >

プロジェクトをバックアップしたり、プロジェクト間で複数のオブジェクトをコピーする必要があるかもしれません。

Magicの[リポジトリ入出力]ユーティリティを利用することで、プロジェクト全体または一部を1つのファイルに出力することができます。この出力ファイルは、別のプロジェクトファイルに入力することもできます。ここをクリックすると例が表示されます。

プロジェクトを出力することで、プロジェクトのバックアップを作成することができます。この処理で作成されたファイルは、そのままでは利用できません。リポジトリ入出力ユーティリティを利用して、空のプロジェクトに入力することで利用することができます。

次のステップは、キャビネットファイルの作成です。


キャビネットファイルの作成

アプリケーション開発 >

アプリケーションを実行環境で使用するには、プロジェクトのキャビネットファイルを作成する必要があります。

キャビネットファイルは、キャビネット形式でパッケージ化されたプロジェクトのファイルです。これは、Magicの実行エンジンでのみ利用できます。

Magic Studioでキャビネットファイルを開くことはできません。

プロジェクトのキャビネットファイルを作成するには

  1. プロジェクトを開きます。

  2. [ファイル]メニューから、[キャビネット作成]を選択します。
    [キャビネットファイル]ダイアログが開きます。このダイアログボックスでキャビネットファイル名とパスを指定する必要があります。

  3. キャビネットファイルを保存するディレクトリを選択します。
    キャビネットファイル（.ecf）は、プロジェクトファイルと同じディレクトリに保存するように推奨します。

  4. [ファイル名]欄には、キャビネットファイルの名前を入力します。デフォルトのファイル名はプロジェクト名と同じです。

  5. [保存]ボタンをクリックします。これで、キャビネットファイルは作成されます。

次のステップは、実行環境でアプリケーションを開くです。


実行環境でアプリケーションを開く

アプリケーション開発 >

Magic Studioと実行エンジンの両方が停止していることを確認してください。

以下の方法のどちらかを行って、Magicの実行エンジンを起動します。

  • Windowsの[スタート]メニューから[Magic Client V10]を選択します。

  • デスクトップ上の[Magic Client V10]のアイコンをクリックします。

キャビネットファイルを開く

  1. [ファイル]メニューから、[アプリケーションを開く]を選択します。[アプリケーションを開き]ダイアログが開きます。

  2. プロジェクトディレクトリを開きます。

  3. プロジェクトの.ecfファイルを選択する。

  4. [開く]ボタンをクリックします。

結果を確認する

アプリケーションが実行モードで開始されます。実行メニューを選択することでプログラムを実行することができます。

次のステップは、別のPC上のアプリケーションを実行するです。


別のPC上のアプリケーションを実行する

アプリケーション開発 >

開発環境と同じPC上でアプリケーションを実行させることで、間違えを起こすかもしれません。

実行エンジンとStudioエンジンは同じ実行環境を共有しています。

従って、キャビネットファイル（.ecf）を作成し、実行エンジンでこのアプリケーションを実行させることができます。

別のPC上でアプリケーションを実行する場合、開発環境と同じ環境設定を行う必要があります。

設定は、データベースの接続定義、論理名、プロジェクトのフォントファイル、基本色定義や開発時に設定した追加設定が含まれます。これらの設定が反映されたMagic.iniファイルや関連する外部ファイルをアプリケーションの実行環境にコピーする必要があります。

アプリケーションを別のPCにインストールする場合、以下の作業も必要になります。

  1. Magicの実行エンジンをインストールします。

  2. アプリケーションディレクトリにキャビネットファイルや（イメージファイルなどの）関連するファイルを配置します。アプリケーションで使用するデータソースを置く場合もあります。これらのデータソースの内容は、アプリケーションの実行環境として新しいデータベースで利用できるようにする必要があります。

  3. 新しいPC上の[データベース]テーブルでデータベースを設定します。

  4. アプリケーションが論理名を使用している場合、その設定も新しいPCにコピーする必要があります。

  5. Notepadなどのテキストエディタを使用して、Magic.iniファイルを開きます。Magici.iniファイルの内容をもとに、開発環境での論理名の設定内容を実行環境にコピーします。新しいPCのディレクトリ名に基づいて実行名を変更します。

  6. Magicの実行エンジンを起動し、[動作環境ダイアログ]（オプション→設定→動作環境→システムタブ）の[開始アプリケーションョン]を選択します。

  7. この設定からズームしてアプリケーションの.ecfファイルを選択します。これで実行エンジンが起動されると自動的にこのアプリケーションが開くようになります。


マイグレーション

Magic eDeveloper V10は、新しい方法でプロジェクトを作成し、保存し、処理します。

Magic eDeveloper V10では、以前のバージョンのリポジトリ出力ファイルの構造をサポートしていません。以前のバージョンから移行する場合は、リポジトリ出力ファイルを一旦Magic eDeveloper V10の構造に変換する必要があります。

アプリケーションをMagic eDeveloper V10用にマイグレーションするには、以下の３つの手順で行います。

  1. 旧バージョンのアプリケーションを準備します。

  2. アプリケーションのリポジトリ出力を行います。

  3. 変換ユーティリティ を使用して、Magic V9Plus（SP6以上）のアプリケーションをMagic eDeveloper V10のプロジェクトファイルに変換します。

Magic eDeveloper V10は、以下のようなユーティリティも提供しています。

  • GUIエンハンサユーティリティ …… 移行されたアプリケーションを処理し、Magic eDeveloper V10用のスタイルに対応するようにGUI表示フォームを修正します。

  • ビルダデータ変換ユーティリティ ……V9Plusの各インタフェースビルダ（Magic、COM、WSDL、EJB）によって作成されたデータをMagic eDeveloper V10のプロジェクトファイルに変換します。

  • MAGIC.INI変換ユーティリティ ……V9PlusのMAGIC.INI ファイルをMagic eDeveloper V10用に変換します。

参照

キーボード割付

新機能ガイド （PDFドキュメント）


旧バージョンのアプリケーションの準備

マイグレーション >

アプリケーションのリポジトリ出力を行う前に、以下に挙げるようなVer10でサポートされない機能を修正する必要があります。これらの機能は、変換処理では、無視されてしまいます。

削除されたり名前が変更された関数

表記の変更

メモ型

Web オンライン

HTMLフォーム

[エディット]処理コマンド

削除された機能

基本色とフォント

アプリケーションの基本色とフォント定義を継続して使用したい場合は、変換されたプロジェクトのアプリケーション用基本色／フォント定義ファイルや内部用基本色／フォント定義ファイルを設定しなければなりません。

セキュリティファイル

旧バージョンのセキュリティファイル（usr_std.jpnなどの）の内容を継続して使用したい場合は、既存のセキュリティファイルを変換する必要があります。コマンドラインからusrupd.exeユーティリティを実行することによって、変換処理を行うことができます。この場合の構文は、以下のようになります。

usrupd <入力ファイル名> <出力ファイル名>

<入力ファイル名> ：V9Plusのセキュリティファイルの名前を指定します。

<出力ファイル名> ：変換されるファイルの名前を指定します。

注意：

Magic V10では、実行権利のみ割り当てることができます。


旧バージョンのアプリケーションの準備 関数

削除されたり名前が変更された関数

マイグレーション > 旧バージョンのアプリケーションの準備

以下の関数は、サポートされなくなりました。

Pref

WebRef

EuroCnv

EuroDel

EuroGet

EuroSet

EuroUdp

以下の関数は、名前が変更されました。

Magic V9Plus | Magic eDeveloper V10
CTRLName | LastClicked
ASC | ASCIIVal
CHR | ASCIIChr
IODel | FileDelete
IOExist | FileExist
IORen | FileRename
IOSize | FileSize
ErrMagicName | ErrNativeName
MaxMagic | WinMaximize
MinMagic | WinMinimize
ResMagic | WinRestore
WSAttachmentGet | WSProviderAttachmentGet
WSAttachmentAdd | WSProviderAttachmentAdd


旧バージョンのアプリケーションの準備 用語の変更

用語の変更

マイグレーション > 旧バージョンのアプリケーションの準備

以下の項目の名前が変更されました。

V9Plus | Magic eDeveloper V10
アクション | 内部イベント
ASC 関数 | ASCIIVal 関数
[コールCOM]処理コマンド | [（外部）コールCOM]処理コマンド
[コールUDP]処理コマンド | [（外部）コールUDP]処理コマンド
CHR 関数 | ASCIIChr 関数
CTRLName 関数 | LastClicked 関数
レコードメインのサイクル | レコードのサイクル
ErrMagicName 関数 | ErrNativeName 関数
FILE リテラル | DSOURCE リテラル
ハンドラレベル | ロジックユニット
HTMLマージ形式フォーム | マージ形式フォーム
[データ入力]処理コマンド | [フォーム入力]処理コマンド
IODel 関数 | FileDelete 関数
IOExist 関数 | FileExist 関数
IORen 関数 | FileRename 関数
IOSize 関数 | FileSize 関数
KEY リテラル | INDEX リテラル
メインテーブル | メインソース
MaxMagic 関数 | WinMaximize 関数
MCF | EDP
MCI | ECI
MFF | ECF (eDeveloper Cabinet File)
Mggenw.exe | eDevStudio.exe
Mgrntw.exe | eDevRTE.exe
MinMagic 関数 | WinMinimize 関数
MRB_EXECUTABLES_LIST | APPLICATIONS_LIST
MRB_REMOTE_EXECUTABLES_LIST | REMOTE_APPLICATIONS_LIST
MTblSet1 関数 | MTblSet 関数
[データ出力]処理コマンド | [フォーム出力]処理コマンド
ResMagic 関数 | WinRestore 関数
テーブル一覧 | データソース一覧
テーブル特性 | データソース特性
[テーブル]リポジトリ | [データソース]リポジトリ
開発エンジン | スタジオ（開発エンジン）
WSAttachmentGet 関数 | WSProviderAttachmentGet 関数
WSAttachmentAdd 関数 | WSProviderAttachmentAdd 関数


旧バージョンのアプリケーションの準備 メモ型

メモ型

マイグレーション > 旧バージョンのアプリケーションの準備

メモ型の項目は全て文字型に変換されます。

メモ型に定義されているデータベースフィールドは、格納形式が「Memo」の文字型に変換されます。

このため、VarAttr関数も「M」が返ることはありません。ただし、コンバート処理によってVarAttr関数の戻り値を修正することはありません。これらの処理は、検索機能を利用して手動で変換する必要があります。


旧バージョンのアプリケーションの準備 Webオンライン

Webオンライン

マイグレーション > 旧バージョンのアプリケーションの準備

Webオンラインは、Magic eDeveloper V10ではサポートされません。

[Webオンライン応答形式]フォームは、Magic eDeveloper V10ではサポートされません。

アプリケーションを変換すると、これらのタイプのフォームは削除され、これらのフォーム定義している[フォーム出力]処理コマンドのフォーム定義は、フォームが定義されていない状態になります。

リポジトリ出力を行う前に、このタイプのフォームをあらかじめ削除するようにしてください。


旧バージョンのアプリケーションの準備 HTMLフォーム

HTMLフォーム

マイグレーション > 旧バージョンのアプリケーションの準備

Magic eDeveloper V10は、[HTML形式]フォームをサポートしません。

アプリケーションを変換すると、これらのタイプのフォームは削除され、これらのフォーム定義している[フォーム出力]処理コマンドのフォーム定義は、フォームが定義されていない状態になります。

リポジトリ出力を行う前に、このタイプのフォームをあらかじめ削除するようにしてください。

注意：

  • [HTML形式]特性は、変数項目、カラム、およびモデルの各特性の[スタイル]セクションから削除されました。

  • [HTML形式]クラスは、[モデル]リポジトリから削除されました。

  • [インターネット開発ファイルルート]特性は、[アプリケーション特性]から削除されました。

  • インターネットAPG機能は、サポートされなくなりました。

  • [HTMLマージ形式]のインタフェースタイプは、[マージ形式]となりました。変換ユーティリティは、[HTMLマージ形式]の指定を[マージ形式]に変換します。


旧バージョンのアプリケーションの準備 エディット処理コマンド

[エディット]処理コマンド

マイグレーション > 旧バージョンのアプリケーションの準備

[エディット]処理コマンドは、Magic eDeveloper V10ではサポートされなくなりました。

変換ユーティリティは、この処理コマンドを[コールOSコマンド]処理コマンドに変換します。

リポジトリ出力を行う前に、[エディット]処理コマンドをあらかじめ削除するようにしてください。


旧バージョンのアプリケーションの準備 機能

削除された機能

マイグレーション > 旧バージョンのアプリケーションの準備

以下の特性は、Magic eDeveloper V10ではサポートされなくなりました。

変換処理によって、これらの特性値は削除されます。

通貨変換サポート

通貨変換機能が削除されました。

  • [通貨変換ファイル]設定は、[動作環境]ダイアログボックスから削除されました。

  • MAGIC.INI の[MAGIC_ENV] セクションで「EuroFile」の設定が削除されました。

  • [基準通貨]と[通貨変換ファイル]特性は、[アプリケーション特性]ダイアログボックスから削除されました。

  • 以下のユーロ関数もサポートされません。

  • EuroCnv

  • EuroDel

  • EuroGet

  • EuroSet

  • EuroUpd

Javaブラウザクライアント

Javaを利用したブラウザクライアントは、サポートされなくなりました。このため[ブラウザクライント方式]設定は、[動作環境]ダイアログボックスから削除されました。

Javaコンポーネントジェネレータ(JCG)

Javaコンポーネントジェネレータは、[コンポーネント]リポジトリの一部となりました。

XMLコンポーネントジェネレータ(XCG)

XMLコンポーネントジェネレータは、削除されました。（[データ]リポジトリでの定義取得機能の一部となりました。）

アプリケーション特性

[インターネット開発ファイルルート]特性は、[アプリケーション特性]から削除されました。

DBMS

[DBMS] テーブルから、以下のカラムが削除されました。

  • 2相コミット

  • 排他トラン

  • ID

MAGIC.INI の[MAGIC_DBMS] セクションから以下のパラメータが削除されました。

  • OnePhaseCommit

  • TwoPhaseCommit

  • NotTransLockExcl

  • TransLockExcl

データベース

[データベース] テーブルから、以下のカラムが削除されました。

  • Magic サーバ

[データベース] 特性から、以下のカ特性が削除されました。

  • 共通のデータ辞書

  • XA トランザクション

インターネットAPG

インターネットAPG機能は、サポートされません。APG ダイアログから[インターネット]タブは削除されました。

ドキュメント出力

[リポジトリ入出力]ダイアログから、ドキュメント出力オプションが削除されました。

メモ型

メモ型は、独立したデータ型としては削除され、文字型項目の記憶型としては使用できません。Magic V9Plusのアプリケーションを移行した場合、メモ型項目は文字型に変換され、変換ログにメッセージが出力されます。

テーブルオプションモード

[DB テーブル]テーブルの[オープン] カラムでサポートされていた以下のモードが削除されました。

  • F=高速

  • D=破損

開発用の権利

開発用の権利設定は削除されました。

[メニュー]リポジトリでのメニューフォーム作成機能

メニューに複数のプログラムを追加する機能は、SP4から削除されました。


変換ユーティリティ

マイグレーション >

Magic eDeveloper V10は、V9PlusのアプリケーションをMagic eDeveloper V10用のプロジェクトに変換する変換ユーティリティを提供しています。このユーティリティは、Magic eDeveloper V9Plus SP6以上で作成されたアプリケーションを変換することができます。

変換ユーティリティにアクセスするには、以下のように操作します。

Windowsの[スタート]メニュー > プログラム > Magic Studio V10 > マイグレーション > V9Plusアプリケーションの変換ユーティリティ

ウェルカムダイアログが表示されたら、[次へ]をクリックします。V9Plusアプリケーションダイアログが表示されます。

注意：

V9Plus でアプリケーションのリポジトリ出力を行う場合、CONSTファイルは、「Mgconstw.jp2」を使用するようにしてください。

コマンドラインによる変換

コマンドラインプログラムによって変換することもできます。 詳細は、コマンドラインコンバータを参照してください。

注意：

アプリケーションの一部を変換する場合は、コマンドラインプログラムで変換してください。


変換ユーティリティ V9Plusアプリケーションダイアログ

V9Plusアプリケーションダイアログ

マイグレーション > 変換ユーティリティ

アプリケーションとそのコンポーネントを変換する場合、[追加]ボタンをクリックして[V9Plusアプリケーション]ダイアログに追加する必要があります。

すでに変換されているコンポーネントに対するすべての参照情報も同時に変換したい場合も[追加]ボタンをクリックしてください。

  • [追加]ボタンをクリックすると、[変換の詳細]ダイアログが表示されます。

  • [次へ]ボタンをクリックすると、[一般的な設定]ダイアログが表示されます。


変換ユーティリティ コマンドラインコンバータ 変換詳細ダイアログ

変換の詳細ダイアログ

マイグレーション > 変換ユーティリティ

このダイアログでは、アプリケーションとコンポーネントを変換するのか、以前に変換されたコンポーネントを参照しているかどうかを指定します。

各出力ファイルに対して、4つの選択肢があります（入力した順番は重要でありません）。

  • アプリケーションの変換 …… ユーティリティはアプリケーションをV10用に変換します。

  • コンポーネントの変換 …… ユーティリティはアプリケーションをV10用に変換し、変換リスト(最初のダイアログ)内のコンポーネントリポジトリに定義されているMCFまたはMFFへの参照情報を取得します。そして、それらの参照情報を新しく作成されたECFに反映させます。

  • 既に変換されたコンポーネントに対する参照の保存 …… ユーティリティは、以前変換されたキャビネットファイルをコンポーネントとして参照するように変更します。これによって、同じアプリケーションを何回も変換する必要がありません。一般的に異なるアプリケーションで利用されている可能性があるため、モデル用のコンポーネントを持っている場合は、この方法が便利です。

  • アプリケーションの一部の変換 …… このオプションは、部分的に出力されたアプリケーションのオブジェクトを変換する場合に使用します。リポジトリの出力ファイル形式で元のV9のリポジトリファイルと同じ場所に作成されます。プログラムのみOSの一時フォルダ内にプロジェクト形式で作成されます。

選択されたオプションに基づいて、V9Plusのアプリケーションの詳細やV10のプロジェクトの詳細情報を入力してください。

アプリケーションとそのコンポーネントを変換する場合、ユーティリティは、コンポーネント名（[コンポーネントファイル名]欄に入力します。）を取得して、V10のキャビネットファイル(V10プロジェクトの[プロジェクト名]欄で指定された)を持つ[コンポーネント]リポジトリ内のファイル名を参照するように変換します。

[キャビネットファイル名]欄には、同時に作成されるキャビネットファイルの保存先を指定します。

参照

汎用設定ダイアログ


変換ユーティリティ 一般的な設定ダイアログ

一般的な設定ダイアログ

マイグレーション > 変換ユーティリティ

このダイアログでは、V9Plusのアプリケーションで使用されたMagic.iniファイルを指定し、ログファイルの保存先のパスを指定します。

V9Plusにおけるモーダルウィンドウのタイトルは、V10ではフルサイズのタイトルがより幅が狭くなっています。

このため、モーダルウィンドウの高さを表示内容に応じて広げたい場合は、[V9Plusで”SpecialModalWindow”が使用される]というチェックボックスを選択してください。

[一般的な設定]ダイアログには以下の設定欄があります。

V9PlusのMagic.ini ファイル……V9Plusアプリケーションで使用されたMagic.iniファイル

  • ログファイルディレクトリの位置……ログファイルが作成されるディレクトリ

  • ログレベル……以下のオプションがあります。

  • P=一部……エラーと動作の変更内容のみ記録されます。

  • F=全部……すべて記録されます。

  • 空のMagicハンドラも変換する……レコード前/後、タスク前/後に処理が定義されていなくても変換対象とするかどうかを指定します。V9Plus以前は、これらのハンドラはMagicの組み込みハンドラのため自動的に作成されていました。V10では、処理が存在しなければ不要になります。このチェックボックスをチェックすると変換されたアプリケーションに空のハンドラが作成されます。

  • SpecialModalToolWindowを使用……V9Plusでは、モーダルウィンドウのウィンドウタイトルがV10のそれより狭くなっています。モーダルウィンドウの高さを内容に合わせて拡大させたい場合は、このチェックボックスをチェックしてください。


変換ユーティリティ コマンドラインコンバータ

コマンドラインコンバータ

マイグレーション > 変換ユーティリティ

Magic V10 は、Magic V9Plus までのリポジトリ出力ファイルを入力することができません。しかし、v9converter.exe と呼ばれるコマンドライン形式の変換ユーティリティを利用することで、V9Plus(Ver9.4SP6以上)のリポジトリ出力ファイルをMagic V10 のプロジェクトファイルに変換することができます。

v9converter.exe ファイルは、Magic V10のインストールディレクトリにあります。

パラメータを指定しないでユーティリティを実行したり、/? パラメータを付けて実行した場合、コンソール上にヘルプを表示します。

ユーティリティを実行すると、変換結果が画面に表示されます。

変換処理が失敗した場合、コマンドラインパラメータを確認したり、リポジトリ出力ファイルがV9Plus のものであるかどうかを確認してください。このユーティリティは、指定されたプロジェクトディレクトリに.edp ファイルを、Sourceサブディレクトリ内にソースファイルを作成します。

変換ログファイル名とパスはLOG= parameter によって設定できます。パスに空白が含まれている場合は、引用符で囲む必要があります。このパラメータが設定されない場合、デフォルトファイル名が使用されます。デフォルトファイル名はV9Plusの出力ファイル名を基に以下のように決定されます。

注意：

V9Plus でアプリケーションのリポジトリ出力を行う場合、CONSTファイルは、「Mgconstw.jp2」を使用するようにしてください。

参照

構文

変換処理

トラブルシューティング

ConversionUtility.iniファイル


変換ユーティリティ コマンドラインコンバータ 構文

構文

マイグレーション > 変換ユーティリティ > コマンドラインコンバータ

変換ユーティリティは、2つの出力内容のうちの1つを作成することで、V9PlusのアプリケーションをV10のプロジェクトファイルに変換します。

  • 必要なソースファイルを持つプロジェクト全体。これは-PROJECTパラメータを指定することで作成されます。プロジェクト全体を移行する場合は、、このオプションを使用します。

  • V10互換のリポジトリ出力ファイル。これは-V10EXPORTパラメータを指定することで作成されます。V9Plusのアプリケーションからオブジェクト指定して移行する場合は、このオプションを使用します。作成されたファイルをV10で入力することでプロジェクトに反映されます。

変換処理で必要なパラメータは、コマンドラインパラメータをとして指定します。

例： V9converter -EXPORT=C:\Myapp.exp -PROJECT="c:\my prjs\prj1" -LANG=JPN -LOCALS=J,.-:

パラメータ

説明

-Export

V9Plusアプリケーションのリポジトリ出力ファイル（とパス）を指定します。このパラメータは必須です。

例： V9converter -EXPORT=C:\Myapp.exp

-Project

Magic eDeveloper V10のプロジェクトディレクトリを指定します。このパラメータは必須です。

指定されたプロジェクトディレクトリがすでに存在している場合、別のディレクトリを指定するように求めるメッセージが表示されます。

指定されたプロジェクトディレクトリに.edp ファイルを、ソースサブディレクトリ内にソースファイルを作成します。

参考：プロジェクト名と.edp ファイル名はプロジェクトのサブディレクトリ名を使用します。

例： V9converter -EXPORT=C:\Myapp.exp -PROJECT="c:\my prjs\prj1"

-V10EXPORT

作成されるV10用のリポジトリ出力ファイル名を指定します。

このパラメータを指定すると、1つのxmlファイルがV10のプロジェクト構造に基づいて作成されます。

-PROJECTパラメータを使用しない場合、必須パラメタとなります。-PROJECTパラメータと一緒に指定することはできません。

例：V9converter -EXPORT=C:\Magic94\ChA -V10EXPORT= C:\Magic10\CH.XML

-LANG

出力ファイルの言語が英語でない場合、出力ファイルの言語を指定する必要があります。この情報は、ACT およびMODE リテラルや日本語関数が含まれる文字列の処理で必要になります。言語は、-LANGパラメータで指定します。

言語を表す以下の3桁の文字列を指定します。大文字と小文字は区別されません。文字の長さが三文字以上あるかどうかのチェックは行います。三文字より長い場合は、最初の三文字で判断されます。

これらは、言語対応の環境ファイルの拡張子と同じ文字列です。

この情報は、EVENT およびMODE リテラルが含まれる文字列の処理で必要になります。

CHN …… 中国語

DAN ……デンマーク語

ENG ……英語

FRE ……フランス語

GER …… ドイツ語

HAN ……韓国語

HEB ……ヘブライ語

HUN ……ハンガリー語

NLD ……オランダ語

POL ……ポーランド語

POR ……ポルトガル語

RUS ……ロシア語

SPN ……スペイン語

SWD ……スウェーデン語

TWN ……台湾語

JPN ……日本語

このパラメータはオプションです。このパラメータが設定されない場合、デフォルト値の「ENG」として処理されます。

例： V9converter -EXPORT=C:\Myapp.exp -PROJECT="c:\my prjs\prj1" -LANG=JPN

-LOCALS

ローカライズ指定を表す5桁の文字列を指定します。各桁は、以下の情報を表します。

  • 日付タイプ

  • ３桁区切文字

  • 小数点

  • 日付区切文字

  • 時刻区切文字

このパラメータの値は、５ 種類のローカライズ値を以下の順番で一文字づつ並べて指定します。

[Date][Thousands][Decimal][Date][Time]

日付タイプ …… 最初の文字は、[日付タイプ]を指定します。

  • E …… ヨーロッパ（デフォルト）

  • A …… アメリカ

  • J …… 日本

これ以外の文字が指定された場合、デフォルトの「ヨーロッパ」として処理されます。

３桁区切文字 …… 2番目の文字は、[３桁区切文字]を指定します。（デフォルトは、「,」です。)

小数点 …… 3番目の文字は、[小数点]を指定します。（デフォルトは、「.」です。)

日付区切文字 …… 4番目の文字は、[日付区切文字]を指定します。（デフォルトは、「/」です。)

時刻区切文字 …… 4番目の文字は、[時刻区切文字]を指定します。（デフォルトは、「:」です。)

文字列が５文字以上の場合、最初の５文字をチェックします。このパラメータが指定されていない場合、デフォルト値として「E,./:」が指定されたものとして処理されます。このパラメータはオプションです。

-LOG

変換ログファイル名とパスを指定します。このパラメータはオプションです。

デフォルトファイル名は、[Ver9 の出力ファイル名] _cnv.log　です。このファイルは、ユーティリティのカレントディレクトリに作成されます。

-PREFIX

Magic V9Plusアプリケーションの識別子を指定します。これは、テーブル名が指定されていないISAM テーブルを変換するために必要です。

このパラメータはオプションです。指定されない場合、識別子は、「XX」として処理されます。

-ModalResize

このパラメータはツールウィンドウのサイズに影響します。SpecialModalToolWindow=NがV9PlusのアプリケーションのMagic.iniファイルで指定されている場合、V10側も「N」に設定する必要があります。

このパラメータはオプションである。デフォルト値はYです。

-INI

上記のパラメータを定義したパラメータファイル（テキストファイル）を指定することで複数のアプリケーションを一括して変換できます。

パラメータファイルの定義内容は、ConversionUtility.iniファイルのトピックを参考にして下さい。

注意：

  • パスに空白が含まれている場合は、引用符で囲む必要があります。

  • パラメータを指定しないでユーティリティを実行したり、/? パラメータを付けて実行した場合、コンソール上にヘルプを表示します。


変換ユーティリティ コマンドラインコンバータ 変換結果

変換結果

マイグレーション > 変換ユーティリティ > コマンドラインコンバータ

変換ユーティリティによって、V9Plus のアプリケーションがどのように変更されるかを以下に示します。

項目

変更結果

Blob項目

GUI表示形式の[スタイル]特性が「I=リッチエディット」と定義されたV9PLusのBlob項目は、[内容]特性が「A=ANSI」のBlob項目に変換されます。他のすべてのBlob項目は「B=バイナリ」に変換されます。

[コールWebサービス]処理コマンド

V9Plusの[コールWebサービス]処理コマンドは、[外部コール]処理コマンドに変更されます。（マニュアルの表記は、[コールWebサービス]処理コマンドとしています。）

サービス名やWSDL、URL、処理名は、V9Plusで定義されたものが引き継がれます。

[コール公開名]処理コマンド

V9Plusのアプリケーションファイル名は変換されません。

変換後のプロジェクトファイに定義されている MFF/MCFファイルを文字検索機能で検索し、手動で変更してください。

[コントロール変更]ハンドラ

[コントロール変更]ハンドラは、[項目変更]ロジックユニットに変換されます。

コントロールに割り当てられた項目は、[項目変更]ロジックユニットに割り当てられます。

同じコントロールが割り当てられ、異なる[有効]特性値が設定された複数の[コントロール変更]ハンドラは、その機能が保持されます。

同じ項目が、異なるフォームで表示され、それぞれのコントロールハンドラに割り当てられている場合、新しい[項目変更]ロジックユニットは各項目に対して作成され、[有効]特性値は、新しいMainDisplay関数に基づいて設定されます。

[項目変更]ロジックユニット内の処理は、条件式:CHG_REASON = 0が指定された[ブロック]処理コマンド内に作成されます。V9Plusの[コントロール変更]ハンドラはCHG_REASON = 0が指定された[項目変更]ロジックユニットと同じです。

[コントロール]ハンドラの処理

コントロールに対するハンドラの設定は、コントロール名によって参照されたコントロールのISNによって参照されるように変更されます。

あらゆる[コントロール]ロジックユニットの[スコープ]特性は、タスクに設定されます。

これは、V9Plusと同じ動作を保持します。V9Plus以来、[コントロール]ハンドラは同じタスク内でのみ実行されます。

同じ名前の異なるコントロール上にハンドラが定義されている場合、変換ユーティリティは実行されません。従って、同じコントロール名に対して重複するロジックユニットが作成されます。重複したハンドラが作成されたことを示すメッセージがログファイルに出力されます。

異なるクラス「0」のフォームから同じコントロール名に対して設定されたハンドラがある場合、[メインフォーム]特性に条件が設定されていると、条件はフォームに従って各ロジックユニットの[有効]特性に設定されます。

[メインフォーム]特性に式が設定されていない場合、メインフォームのコントロールに対するロジックユニットの[有効]特性は、「Yes」に設定されます。他のフォームのコントロールに対するロジックユニットの[有効]特性は、「No」に設定されます。

[DBテーブル]テーブル

[DBテーブル]の設定内容は、タスクの[データビュー]エディタ内の定義処理（メインソースやリンクテーブルの特性）に変換されます。

[オープン]特性では、「高速」や「破損」モードがサポートされなくなりました。また、「再索引」モードは、SQLデータソースではサポートされなくなりました。サポートされなくなってモードは全て「標準」モードに変換されます。

サポートされないモードは正常なオープンなモードによって交換されます。

オープン/共有モード

オープンモードの高速モードと破損モードは、すべてのデータソースにサポートされておらず、また再インデックスモードはSQL系のデータソースではサポートされません。このためサポートされないオープンモードは通常モードに変換されます。

イベントとハンドラ

全ての処理は、Magicの同等機能に変換されます。

強制レコード終了

[強制終了]特性に「レコード」が設定されたイベントは、「レコード更新前」に変換されます。

HTMLマージ

「HTMLマージ」 は、「マージ」に変更されます。

[リンク]コマンドの[確認]特性

[リンク]コマンドの[確認]特性は、Magic V10ではサポートされません。

変換ユーティリティは、[確認リンク]コマンドを[照会リンク]に変換し、[RM互換]ロジックユニットに[エラー]処理コマンドを追加します。

[リンク]コマンドの[戻り値]特性に項目が設定されている場合、この項目を確認条件に指定します。そうでない場合、ユーティリティは、位置付け式とリンク結果が一致するかどうかをチェックする条件を設定します。

V9Plusの[確認]特性に条件が設定されている場合、条件には、新しい条件が追加されます。

変換処理が終了すると、以下のメッセージが表示されます。

Link Validate migrated as Link Query + Verify Error.

参考：[エラー]処理コマンドのメッセージテキストは、英語表記のままになっています。変換の後に、メッセージ内容を変更するために、テキストの[検索]と[置換]機能が利用できます。

リテラル

[ACT]リテラルは、[EVENT]に変換されます。

[KEY]リテラルは、[INDEX]に変換されます。

[FILE]リテラルは、[DSOURCE]に変換されます。

メモ型

メモ型項目は、記憶形式が「String Memo」に設定された文字型項目に変換されます。

メニュー

[デフォルトプルダウンメニュー] は、メインプログラムの中で参照するように設定されます。

処理コマンド

Magic V10の処理コマンドの中には、V9Plusと異なるものがあります。これらの処理コマンドは、全て同等の処理コマンドに変換されます。

レコードメイン

レコードメインに定義された処理（ビュー定義を除きます。）は、[RM互換]ロジックユニットに変換されます。ここでは、V9Plusと同じように項目定義の間に処理が定義されているように設定されます。

四角コントロールのスタイル

四角コントロールのスタイル特性は、以下のように変更されます。

  • V9で、スタイル特性が凸立体で立体線特性が=Yesに設定されている場合、V10ではWindowsに変換されます。

  • V9で、スタイル特性が凹立体で立体線特性が=Yesに設定されている場合、V10ではエンボスに変換されます。

関数の名前

名前が変更される関数は、該当する名前に変換されます。

タブ

パーキング可

[セレクト]処理コマンドの[条件]は、コントロールの[パーク可]特性に変換されます。

コントロールが項目が割り当てらていない場合、[パーク可]特性は「Yes」に設定され、無効表示になります。

タブ移動方向

[セレクト]処理コマンドの[カーソル方向]（[フロー]カラムの2番目）の設定は、[タブ移動方向]特性に変換されます。

「C=両方向」は、「B=両方向」に変換されます。

「F=前方」は、「F=前方のみ」に変換されます。

「B=後方」は、「C=後方のみ」に変換されます。

タブ順序

レコードメイン内の[セレクト]処理コマンドの定義順によって決まっていたタブの順序は、コントロールの[タブ順序]特性に変換されます。

項目が割り当てられていないコントロールの[タブ順序]特性は、データが割り当てられているコントロールの次から始まって、[上辺位置]、[左辺位置]、[Zオーダ]の各特性の組み合わせに基づいて設定されます。

自動タブ順序

フォーム上のコントロールのタブ順序が、（[上辺位置]、[左辺位置]、[Zオーダ]に基づいた）自動タブ順序の設定内容と一致している場合、フォームの[自動タブ順序]の設定は、「On」に設定されます。そうでない場合、「Off」に設定されます。

タブで移動

この特性の値は、全てのコントロールで「Yes」に設定されます。

タスクとレコードハンドラ

V9Plusの[タスク前/後]と[レコード前/後]のハンドラは、対応するロジックユニットに変換されます。ハンドラ内の処理は、ロジックユニットに移動します。

タスクレイヤ

ユーティリティは、新しいタスク構造内にタスクを作成します。

この結果、以下のように変更されます。

  • メインソース定義、リンク定義、および項目の定義は、タスクの[データビュー]エディタに移動します。

  • タスクのロジックは、 [ロジック]エディタに設定されます。

  • タスクの様々なフォームは、[フォーム]エディタに設定されます。

Unicode

Magic V10は、Unicodeをサポートします。

V9Plusのアプリケーションを変換すると、以下のオブジェクトはMagic V10のデフォルトコードページに基づいて自動的にUnicodeに変換されます。

  • Unicode文字を含んでいるカラムの型は、文字型からUnicode型に変換されます。

  • [メニュー定義]テーブルの[ユーザメニュー名]カラム

  • ヘルプに指定されたテキスト

  • ツールチップに指定されたテキスト

  • 文字型の式が定義されているコントロールの型は、Unicode型に修正されます。

  • 様々な特性に指定されたテキスト（例えば、[フォーム名]や[表示項目リスト]特性など）

フォーム特性

フォーム特性の[モーダルウィンドウ]、[フローティングウィンドウ]、[子ウィンドウ]、[ウィンドウ分割]の各特性は、フォーム特性の[ ウィンドウタイプ]特性に変換されます。この特性は、[フロート]、[モーダル]、[分割子ウィンドウ] に変換されます。


変換ユーティリティ コマンドラインコンバータ トラブルシューティング

トラブルシューティング

マイグレーション > 変換ユーティリティ > コマンドラインコンバータ

ここでは、変換処理で発生すると予想される問題について説明します。

省略できないパラメータ

-V10EXPORT または、-PROJECT パラメータは省略できません。指定されない場合ヘルプが表示されます。

不当な出力ファイル

変換処理中に、出力ファイルが正しいものでないと判断した場合、以下のようなメッセージをコンソール上に表示します。

V9 export file is invalid

プロジェクトディレクトリがすでに存在している

プロジェクトディレクトリがすでに存在していて、同じ名前の.edp ファイルがあったり、ソースサブディレクトリがある場合は、処理を継続できません。変換ユーティリティは、このどちらかの状態であると判断した場合、変換処理を中断し、以下のメッセージをコンソールに表示します。

The project directory already contains project files

変換処理が失敗

変換処理が失敗した場合、コマンドラインパラメータを確認したり、リポジトリ出力ファイルがVer9 のものであるかどうかを確認してください。


変換ユーティリティ コマンドラインコンバータ INIファイル

ConversionUtility.iniファイル

マイグレーション > 変換ユーティリティ > コマンドラインコンバータ

変換ユーティリティでは、変換処理に必要なパラメータをテキストファイルに定義することで、複数のアプリケーションを一括で変換することができます。このテキストファイルをMagicのインストールディレクトリ内のConversionUtility.iniとして提供しています。

ConversionUtility.iniを使用して変換ユーティリティを実行するには、以下のように指定します。

例： V9converter -INI=ConversionUtility.ini

ConversionUtility.ini ファイルの書式

ConversionUtility.iniに定義するパラメータは、基本的にはコマンドラインパラメータと同じですが、セクションに分けて指定します。

[MG_CONVERSION]セクション

LogLevel

ログの出力レベル

  • LogLevel =F ……すべて記録されます。

  • LogLevel =P ……エラーと動作の変更内容のみ記録されます。

OverwriteTargetDir

同じ名前の出力ファイルが存在した場合、上書きするかどうかを指定します。

  • OverwriteTargetDir = Y …… 上書きされます。変換後にプログラムの追加などを行なっている場合、ソースファイルの同期が取れなくなることがあります。このような場合は上書きせずに別のフォルダ上に新規作成してください。

  • OverwriteTargetDir = N …… 上書きされません。出力ファイルが存在する場合、変換に失敗します。

RemoveEmptyHandlers = N/Y

レコード前/後、タスク前/後に処理が定義されていなくても変換対象とするかどうかを指定します。

  • RemoveEmptyHandlers = Y ……処理が定義されていない場合は、変換されません。

  • RemoveEmptyHandlers = N ……レコード前/後、タスク前/後等が必ず作成されます。

LANG

言語を表す以下の3桁の文字列。コマンドラインコンバータの構文を参照してください。

例：LANG = JPN ……日本語

LOCALS

ローカライズ指定を表す5桁の文字列。コマンドラインコンバータの構文を参照してください。

例：LOCALS = J,./:

ModalResize

モーダルウィンドウの高さを内容に合わせて拡大させるかどうかを指定します。Ver9.4のMAGIC.INIの[MAGIC_SPECIALS]SpecialModalToolWindowの設定と同じ値を指定してください。

  • ModalResize = Y …… モーダルウィンドウの高さを内容に合わせて拡大させます。

  • ModalResize = N ……考慮されません。

[COMPONENT_REDIRECTION]セクション

コンポーネントリポジトリに定義されているアプリケーションファイル名の変更指定を行います。左側は、V9Plusのコンポーネント用アプリケーションファイル（パス名は不要）。右側は、V10のコンポーネント用アプリケーションファイル（必要に応じてパス名を指定してください）。

例：Base1_app1.mff = F:\magic\eDev10\Projects\EVAL10\Migration\Base\BaseApp1\BaseApp1.ecf

[APPLICATION_n]セクション

各アプリケーション毎の変換情報を指定します。nは、0から開始されます。

PREFIX

アプリケーションの拡張子。V9Plusのプログラムに定義されたPref()関数はここの値に置き換わります。

例：PREFIX = L1

PROJECT

プロジェクトファイルの作成場所

例：PROJECT = F:\magic\eDev10\Projects\EVAL10\Migration\CMP1\CompApp1

V10Export

V10のリポジトリ出力ファイルのファイル名と保存場所

例：V10Export = F:\magic\eDev10\Projects\EVAL10\Migration\CMP1\CompApp1\Export\CompApp1.xml

CreateECF

キャビネットファイル（ECF)を作成するかどうかを指定します。

CreateECF = Y ……ECFを作成する。ファイル名は、PROJECTパラメータの内容に依存します。

CreateECF = N ……ECFは作成しません。

LOG

ログファイル名

例：LOG = MyFirstApp.log

Componentn

（nは、0から始まる数値）

リンクする コンポーネントファイル名を指定します。[COMPONENT_REDIRECTION]セクションで全てのコンポーネントが定義されている場合は不要です。

コンポーネントファイルがECFの場合は、ファイル名の右側に「Y」を付加します。EDPの場合は、「N」を付加します。

例：

Component0=F:\magic\eDev10\Projects\EVAL10\Migration\Base\BaseApp1\BaseApp1.ecf,Y

Component1=F:\magic\eDev10\Projects\EVAL10\Migration\Base\BaseApp1\BaseApp2.edp,N

注意：

  • パスに空白が含まれている場合でも、引用符で囲まないでください。

  • [APPLICATION_n]セクションの内容は、指定されたアプリケーションに対してのみ有効ですが、[MG_CONVERSION]セクションと[COMPONENT_REDIRECTION]セクションの内容は、INIファイル内で定義された全てのアプリケーションに対して有効です。


MAGIC.INI コンバータ

MAGIC.INI変換ユーティリティ

マイグレーション >

Magic V9PLusからMagic eDeveloper V10に移行すると、V9PlusのMAGIC.INIファイル内の環境設定は、Magic eDeveloper V10と互換性のあるように修正する必要があります。

MAGIC.INI変換ユーティリティは、この目的のためにMagic eDeveloper V10と一緒にインストールされるMagicアプリケーションです。

MAGIC.INI コンバータの実行

MAGIC.INI コンバータを起動するには、以下のようにします。

Windows の[スタート]メニュー > プログラム > Magic Studio V10 > マイグレーション > INI変換ユーティリティ

[ウェルカム]ダイアログで[次へ]をクリックすると、[INI情報]ダイアログが表示されます。ここでは、以下の情報を入力します。

  • V9Plusのインストールディレクトリ

  • V9PlusのMAGIC.INIファイル

  • V10のMAGIC.INIファイル（オリジナル）

  • V10のMAGIC.INIファイル（移行用）

[実行]ボタンをクリックすると、V10のMAGIC.INIファイルが作成されます。

V10のMAGIC.INIファイルがすでに存在している場合、上書するかどうかを確認するダイアログが表示されます。「Yes」をクリックすると上書きされます。

MAGIC.INIの移行内容

MAGIC_ENV

V10とV9Plusの[MAGIC_ENV]セクションの内容がチェックされ、値が異なる場合は、V9Plus側からコピーされます。

MAGIC_SYSTEMS

V9Plusの[MAGIC_SYSTEMS]セクションの内容はコピーされません。

MAGIC_SERVERS

V10の[MAGIC_SERVERS]セクションの内容がコピーされます。ポート番号が変更されます。

MAGIC_DBMS

V10とV9Plusの[MAGIC_DBMS]セクションの内容がチェックされ、いくつかのオプションを削除した上で、V9Plus側から適切なデータがコピーされます。また、V10用の構成に変更されます。

MAGIC_DATABASES

V9Plusの[MAGIC_DATABASES]セクションの内容がコピーされまが、いくつかのオプションが削除されます。また、V10用の構成に変更されます。

MAGIC_SERVICES

V10の[MAGIC_SERVICES]セクションの内容がコピーされます。

MAGIC_COMMS

V10の[MAGIC_COMMS]セクションの内容がコピーされます。

MAGIC_LOGICAL_NAMES

V9Plusの[MAGIC_LOGICAL_NAMES]セクションの内容がコピーされます。

MAGIC_PRINTERS

V9Plusの[MAGIC_PRINTERS]セクションの内容がコピーされます。

MAGIC_LANGUAGE

V9Plusの[MAGIC_LANGUAGE]セクションの内容がコピーされます。

MAGIC_JAVA

V9Plusの[MAGIC_JAVA]セクションの内容がコピーされます。

MAGIC_GATEWAYS

V10の[MAGIC_GATEWAYS]セクションの内容がコピーされます。

TOOLS_MENU

V10の[TOOLS_SECTION]セクションの内容がコピーされます。

INTERFACE_BUILDERS

V10の[MAGIC_BUILDERS]セクションの内容がコピーされます。

MAGIC_SPECIALS

V9Plusの[MAGIC_SPECIALS]セクションの内容がコピーされます。

ライセンス

[LicenseFile]と[LicenseName]のパラメータは、V10からコピーされます。

基本色

[RuntimeApplicationColorDefinitionFile]は、V9Plusの[FontDefinitionFile]からコピーされます。相対パスが指定されている場合、V9Plusのインストールディレクトリが追加されます。

[StudioColorDefinitionFile]と[RuntimeInternalColorDefinitionFile]は、V10側からコピーされます。

フォント

[RuntimeApplicationFontDefinitionFile]は、V9Plusの[ColorDefinitionFile]からコピーされます。相対パスが指定されている場合、V9Plusのインストールディレクトリが追加されます。

[StudioFontDefinitionFile]と[RuntimeInternalFontDefinitionFile]は、V10側からコピーされます。

ユーザ定義ファイル

user_std ファイルは、V10の内容がコピーされます。

キーボード割付

[RuntimeKeyboardMappingFile]は、V9Plusの[KeyboardMappingFile]からコピーされます。相対パスが指定されている場合、V9Plusのインストールディレクトリが追加されます。

[StudioKeyboardMappingFile]は、V10側からコピーされます。

Web ファイル

以下のファイルの指定は、V10側からコピーされます。

  • WebDocumentPath

  • InternetDispatcherPath

  • WebDocumentAlias

  • CTLCacheFilesPath

  • CTLCacheFilesAlias

パラメータ名の変更

以下のパラメータ名は変更されます。

  • [StartApplication]は、空白に設定されます。

  • [ApplicationStartup]は、[DeploymentMode]に変更され、「T」が設定されている場合、「R」に設定し直します。

パラメータの削除

以下のパラメータは削除されます。

  • MultiUser

  • FlowModify

  • AccessApplications

  • AccessToolkit

  • TempPath

  • RequestsServerCanReplaceCtl

  • EuroFile

  • LoadMonitor

  • Monitor2File

  • RemoteFlowMonitor

  • RemoteFlowPortNumber

  • Ansi2Unicode

  • ForegroundContextManagement

V9Plusの特殊なパラメータ

MDIClientImageFileSomeパラメータは、オリジナルのMAGIC.INIには存在していませんが追加されます。 もしこのパラメータが見つかった場合、V10のMAGIC.INIにコピーされます。

V9Plus側のINIに手動で追加されたパラメータは、コピーされます。

ユーザ定義セクション

V9Plus側のINIに追加されたユーザ定義セクションは、コピーされます。

ログファイル

INIConvert.logと呼ばれるログファイルが、V10のインストールディレクトリに作成されます。

各セクションやパラメータごとにどのように処理されたかが記録されます。


ビルダデータコンバータ

ビルダデータ変換ユーティリティ

マイグレーション >

ビルダーデータ変換ユーティリティは、Magic V9Plusの各インタフェースビルダ（COM、WSDL、EJB、およびMCI）によって作成されたデータを、Magic eDeveloper V10のプロジェクト用に変換するユーティリティです。

ビルダコンバータの実行

  1. ビルダコンバータを起動するには、以下のようにします。

Windows の[スタート]メニュー > プログラム > Magic Studio V10 > マイグレーション > ビルダデータ変換ユーティリティ

  2. [ウェルカム]ダイアログで[次へ]をクリックすると、[コンポーネントの詳細]ダイアログが表示されます。ここでは、以下の情報を入力します。

    • V10のプロジェクトファイル……V9Plusのコンポーネントアプリケーションを移行したプロジェクトファイル

    • キャビネットファイル……上記のプロジェクトに対するキャビネットファイル

    • ビルダデータファイル…… V9Plusの Componetsサブフォルダ内に保存されている co_metadataファイル。ビルダのタイプによって以下のサブフォルダに分かれて保存されています。

    • Magic …… MCI

    • COM …… COM

    • EJB …… EJB

    • Webサービス …… WS

    • ビルダのタイプ……コンボボックスから選択します。

    • ECIの作成……インタフェース(ECI)ファイルを作成する場合はチェックします。(ビルダのタイプが「magic」の場合のみ有効です。)

  3. [次へ]ボタンをクリックすると、[アプリケーションの選択]ダイアログが表示されます。ここには、ビルダデータ内に格納されているアプリケーション名が表示されます。インタフェースファイルを作成するアプリケーション名をクリックして[次へ]ボタンをクリックします。

  4. [コンポーネントの選択]ダイアログが表示されます。ここには、ビルダデータ内に格納されているコンポーネント名が表示されます。V10で使用するコンポーネントを選択し、[追加]ボタンをクリックします。

  5. [次へ]ボタンをクリックすると、作成されるインタフェースの内容が表示されます。[終了]ボタンをクリックすると、V10用のECIファイルが作成されます。

Magic eDeveloper V10で各インタフェースビルダを起動すると、変換されたコンポーネントが表示されます。必要に応じて修正してください。


GUIエンハンサウィザード

GUIエンハンサユーティリティ

マイグレーション >

GUIエンハンサユーティリティは、移行されたアプリケーションを処理し、Magic eDeveloper V10の表示スタイル合うようにGUI表示形式フォームを修正するものです。このウィザードによって以下のコントロール特性が変更されます。

[テーブル]コントロール

  • [スタイル]特性 …… 「W=Windows」に変更

  • [テーブル色の指定]特性 …… 「T=テーブルに依存」に変更

  • [色]特性 /[交互表示色]特性……色を変更

  • [区切り]特性 …… 「Yes」に設定

  • [カラムの区切線]特性 …… 「Yes」に設定

注意：

[テーブル]コントロールのカラムタイトルを[カラム]コントロールの[カラムタイトル]特性で指定せず、[テキスト]コントロールを配置している場合（Ver8以前のアプリケーションから移行された場合にこの状態になります）、[テーブル]コントロールの[スタイル]特性が「W=Windows」に変更されることで、[テキスト]コントロールの表示が見えなくなります。
ＧＵＩエンハンサ起動前に[カラム]コントロールの[カラムタイトル]特性を設定しておくか、変換後に[カラムタイトル]特性を設定するようにしてください。[スタイル]特性を「W=Windows」以外に変更することで、[テキスト]コントロールの内容が表示されます。

その他のコントロール

  • [スタイル]特性を「平面」から「Windows立体」に変更 …… エディット、タブ

  • [スタイル]特性を「平面」から「凹立体」に変更 …… ラジオボタン、チェックボックス、リストボックス、コンボボックス、イメージ

アプリケーション用基本色テーブル

テーブルの[色]特性と[交互表示色]特性に割り当てる色を追加します。

GUIエンハンサユーティリティの実行

ビルダコンバータを起動するには、以下のようにします。

Windows の[スタート]メニュー > プログラム > Magic Studio V10 > マイグレーション > GUIエンハンサユーティリティ

ウィザードで表示されるダイアログの指示に従って操作することで、データが変換されます。

[プロジェクトの詳細]ダイアログ

[ウェルカム]ダイアログの次に表示されるダイアログでは、変更するプロジェクトファイルとプロジェクトが使用する基本色定義ファイルを指定します。

GUIエンハンサーを実行する場合は、変更するプロジェクトがMagic Studioによってオープンされていないことを確認してください。ファイルがオープンされていると、変更処理が行われません。

ユーティリティは、プロジェクトが使用する基本色定義ファイルも変更します。プロジェクトが使用している定義ファイルを指定するようにしてください。基本色定義ファイルは、Magic.iniファイルだけでなく[アプリケーション特性]に定義されている場合もあります。

Magic Studioが再起動されると、基本色定義ファイルの変更内内容が反映されます。

[修正項目の選択]ダイアログ

このダイアログでは、変更内容を選択することができます。

  • すべてのGUI表示テーブルの[交互表示色]特性を設定 …… 2つの新しい色が基本色定義ファイルに追加されます。この色は、テーブルの行を交互に表示させるために使用されます。各[テーブル]コントロールに対してこのユーティリティは以下のように処理します。

  • [色]特性の継承は解除され、追加された最初の色（代替え色#1）が設定されます。

  • [テーブル色の指定]特性の継承は解除され、「T=テーブルに依存」に設定されます。

  • [交互表示色]特性に追加された２番目の色（代替え色#2）が設定されます。

  • すべてのGUI表示テーブルの[区切り]特性を設定 …… ここがチェックされた場合、ユーティリティは、[区切り]特性があるかどうかをチェックします。特性がない場合、この特性が追加されます。チェックされていない場合、、[区切り]特性があるかどうかをチェックし、特性が見つかった場合、システムを基に再継承します。

  • すべてのGUI表示テーブルの[カラム区切り線]特性を設定 …… これは[区切り]特性と同じように処理されます。

  • 平面コントロールをV10用のスタイルに変更 …… GUIエンハンサーはコントロール用のモデルを基に[モデル]リポジトリを検索します。モデルが見つかった場合、[スタイル]特性が継承されているかどうかを確認します。継承が解除されているスタイル特性は、再継承されます。これは平面でないコントロールの場合に有効です。スタイルが平面の場合、この特性がチェックされているかどうかに依存します。

注意：

このウィザードは、オンラインタスクに対してのみ処理されます。


キーボード割付

マイグレーション >

Magic eDeveloper V10は、２つのキーボード割付ファイルを提供します。

act_std_V9.jpnファイルは、Magic V9Plusのショートカットと互換性があります。

act_std.jpnファイルは、MicrosoftR WindowsR と互換性のあるキーの組み合わせを提供しています。

参照

組み合わせキー


トラブルシューティング

ここには、トラブルシューティング用の情報が記述されています。

エラーコードなどの内容を基に、現在の状況を確認することができます。

参照

パーティショニングエラー

名前解決

タイムアウト

ログファイルの設定

ウィンドウの初期化

データ実行防止機能の対応

ライセンスエラー


4 RQ INF RETRY

トラブルシューティング > パーティショニングエラー

内部ステータスコードです。

  • リクエスタに対して …… MRBがリクエスタにいつ再送要求を出すか指定します。

  • エンジンに対して …… エンジンがMRBへの接続をいつ繰り返すか指定します。

  • MRBに対して …… 同期リクエストの再送をいつ行うかを指定します。

このステータスコードは、他のエラーステータスコードと一緒に発行されない限り無視してください。


60 INF TIMEOUT

トラブルシューティング > パーティショニングエラー

このエラーは、低レベルの要因で発生します。かく要因では、異なった処理が実行されます。

例：

  • リクエスタは、MRBを経由して未サポートのアプリケーショントへリクエストを送信した場合、「103 ERR APP NOT FOUND」か、「104 ERR APP IN USE」を返します。MRBは、Ackメッセージを発行し、リクエスタは、有効なアプリケーションサーバを待ち続けます。その際、MGREQ.INI の「BrokerTimeout」の設定や、MAGIC.INI のサーバテーブル内の設定に従います。もし指定時間内に有効なアプリケーションサーバが見つからなかった場合、リクエスタはステータス(60 INF TIMEOUT)をTCP/IPレイヤから受け取ります。これは、ステータスコードの（103 ERR APP NOT FOUND）か（104 ERR APP IN USE）として扱われます。

  • リクエスタは、MRBにリクエストを送っても、MRBから応答が返ってこない場合、エラー(105 ERR MRB NOT RSPND)として扱われます。

  • リクエスタがアプリケーションサーバと通信を行い、リクエストを送信し、その応答を待ち始めた場合。もし、「Request Timeout」が設定されていてアプリケーションサーバがリクエストの処理を終わっていない場合、リクエスタは、TCP/IPレイヤからステータス（60）を受け取ります。これは、ステータス（110 ERR REQUEST TIMEOUT） として処理されます。


102 ERR CNCT REFUSED MRB

トラブルシューティング > パーティショニングエラー

MRBとの接続が拒否されました。

MRB で使用されるホスト名またはポートが不適当な場合、このエラーが発生します。MRB の接続先のポートが適当かどうか、接続が正常かどうかを確認してください。


103 ERR APP NOT FOUND

トラブルシューティング > パーティショニングエラー

アプリケーションがエンジンによりサポートされていない場合、このエラーが発生します。

また、MGREQ.INIファイルの「Appl=」キーワードで正しくアプリケーションを指定していない場合にも、このエラーが発生します。

アプリケーションサーバの状態を表示するには、ブローカモニタを使用してください。


104 ERR APP IN USE

トラブルシューティング > パーティショニングエラー

アプリケーションをサポートする全てのアプリケーションサーバがビジー状態です。

MRBのフィルタ指定の制限を超えた場合も（実際には、ビジー状態ではなくても）発生します。

このエラーは、デフォルト設定の場合、通常10秒後に表示されます。この設定は、同期型のリクエストに対するMRBのタイムアウトになります。「タイムアウト」を参照してください。

このタイムアウトを解決するには以下のようにします。

  1. インターネットリクエスタの場合、Scriptsディレクトリ内のMGREQ.INIファイル(BrokerTimeout)を編集します。コールリモートの場合は、MAGIC.INIファイルを編集します。「タイムアウト」の値は、「10秒」より大きくしてください。例えば、300秒（5分）

  2. またこの設定の代わりに、MRBがあるMagicディレクトリ内でMGRB.INI 内の[MRB_EXECUTABLES_LIST]セクションの起動エンジン数を増やしてみても効果的です。エンジンは、バックグラウンドで実行するようにします。MGRB.INI の設定後に、MRBを再起動してください。

  3. もし、アプリケーションサーバエンジンや、Webサーバ、MRBが異なるマシン上で実行されている場合、互いのマシン間の通信をIPアドレスのみで行うのでなく、ホスト名も使用できるようにしなければなりません。「ping」コマンドでこの件の確認ができます。

  4. MRBモニタでアプリケーションサーバの状態を確認できます。

J2EE環境で使用する場合、EJBは「CommunicationTimeout」で設定された時間内でアプリケーションサーバに接続し続けます。EJBが、接続に失敗した場合、アプリケーションビジーの例外通知を、起動したクライアントに返します。


105 ERR MRB NOT RSPND

トラブルシューティング > パーティショニングエラー

MRBはリクエスタに対して、Ackメッセージも応答も返しませんでした。

問い合わせや管理用のリクエストのために、BrokerTimeout の値を増やすことができます。

MRBがCPUやメモリに負荷を与える場合は以下のようにしてください：

  • リクエスタとMRBの両方のためにMGREQ.INI中の「CommTimeout」の値を増やしてください。

  • 他のパフォーマンスの高いマシンでMRBを実行するようにシステム構成を検討してください。

  • MRBをリクエスタと同じホストに置き、アプリケーションサーバを他のホストで実行するようにしてください。


106 ERR RT NOT RSPND

トラブルシューティング > パーティショニングエラー

リクエスタは、リクエストを、MRBによって割り当てられたエンジンに送信できませんでした。

エンジンが稼働していることを確認してください。（例えば、タスクマネージャや、MRBのステータスウィンドウでProcessIDを確認してください。)

問題の原因の切り分けのため、コマンドラインリクエスタを使用して、Magicエンジンを呼び出してみてください。（コネクションの作成や切断ができるかどうかの確認ができます。）


107 ERR CNCT RESET

トラブルシューティング > パーティショニングエラー

アプリケーションサーバによって接続がリセットされました。

このメッセージは以下の場合に表示されます。

  • アプリケーション処理用のエンジンがリクエスト実行中にアボートした。

  • ネットワーク接続の失敗が原因で接続がリセットされた。


108 ERR_INVALID_REQ_HDL

トラブルシューティング > パーティショニングエラー

リクエスタAPIが使用された場合、APIに不正なパラメータが渡された場合にこのエラーが発生します。


109 ERR CNCT REFUSED RT

トラブルシューティング > パーティショニングエラー

リクエスタとMagicエンジンとの間のセッションを確立できませんでした。

リクエスタとMagicエンジンとのネットワーク間にファイアウォールやルータなどがある場合、それらのパケットフィルタリングの設定が要因として考えられます。

また、名前解決が正しくできていないことも要因として考えられます。ネットワーク環境を確認してください。


110 ERR REQUEST TIMEOUT

トラブルシューティング > パーティショニングエラー

リクエストされたタスクの処理が完了しない状態で、MAGIC.INI ファイルまたはMGREQ.INI ファイルの「RequestTimeout 」キーワードの値（時間）が経過した時、このエラーが発生します。

タイムアウトの値を増やしてみてください。


111 RQGNRC ERR NOT MRB

トラブルシューティング > パーティショニングエラー

リクエスタは、MRBではない TCP/IPサーバと接続しようとしました。


113 RQGNRC ERR APPNAME REQUIRED

トラブルシューティング > パーティショニングエラー

[コールリモート]処理コマンドで、アプリケーション名が指定されませんでした。


114 RQGNRC ERR PRGNAME REQUIRED

トラブルシューティング > パーティショニングエラー

[コールリモート]処理コマンドで、プログラム名が指定されませんでした。


117 RQGNRC ERR RMC DISABLED FOR J2EE

トラブルシューティング > パーティショニングエラー

J2EEタイプのサーバは、EJBからの呼び出しにのみ応じます。

異なるリクエスタによって呼び出された場合に、このエラーが発生します。

MGREQ.INI でGateway=5 と設定された場合、コマンドラインリクエスタやインターネットリクエスタから呼び出すことはできません。


118 RQGNRC ERR TIME STAMP

トラブルシューティング > パーティショニングエラー

リクエスタはMRBから、他のリクエストの応答を受け取りました。

これは、ログファイルでは見つからないような困難なエラーです。

暫定的な解決策として、ブローカタイムアウトの値を増やしてみてください。


128 ERR APP REJECTED

トラブルシューティング > パーティショニングエラー

アプリケーションがオープンされておらず、コンテキストも存在していない状態で、同じMagicエンジンに異なるアプリケーションをオープンしようとする複数のリクエストが送られた場合に発生します。

リクエストを再送してみてください。

J2EE環境で使用する場合、EJBは「CommunicationTimeout」で設定された時間内でアプリケーションサーバに接続し続けます。EJBが、接続に失敗した場合、アプリケーションビジーの例外通知を、起動したクライアントに返します。


130 ERR APP OPEN FAIL

トラブルシューティング > パーティショニングエラー

アプリケーションサーバがアプリケーションをオープンできませんでした。

指定されたアプリケーションファイルがローカルでオープンできるかどうかを確認してください。


131 ERR BAD PRG

トラブルシューティング > パーティショニングエラー

指定されたプログラムがアプリケーションに見つからなかった場合、このエラーが発生します。

プログラムの公開名を確認してください。


133 ERR ACCESS DENIED

トラブルシューティング > パーティショニングエラー

ユーザ名またはパスワードが不適当な場合このエラーが発生します。

また、指定されたユーザにアプリケーションのアクセス権およびプログラムの実行権利がない場合もこのエラーが発生します。


134 RQMRI ERR LIMITED LICENSE PART

トラブルシューティング > パーティショニングエラー

パーティショニング用のリクエストのみのライセンスです。


135 RQMRI ERR LIMITED LICENSE HTTP

トラブルシューティング > パーティショニングエラー

インターネット用のリクエストのみのライセンスです。


136 ERR LIMITED LICENSE CS

トラブルシューティング > パーティショニングエラー

アクセス数がライセンスの制限を超えました。

アプリケーションサーバのライセンス以外では、アクセス数は2000に制限されています。

アプリケーションサーバのライセンスを使用してください。


137 ERR REQ REJECTED

トラブルシューティング > パーティショニングエラー

アプリケーションサーバは、タイミング問題のためリクエストを実行することができませんでした。

Magicエンジンが実行モードから開発モードに切り替わったタイミングでリクエストが送られた場合、処理を実行することができずこのエラーが発生します。


138 ERR RT ERROR MSG

トラブルシューティング > パーティショニングエラー

アプリケーションサーバで実行中のプログラムが処理を正常に終わらすことができなかった場合に発生します。

プログラムが完了できなかった場合、プログラムで発生したエラーメッセージはリクエスタに送られます。

エラーメッセージが表示されていても、プログラムが正常に実行された場合、そのプログラムの出力が戻され、エラーメッセージを無効にします。

  • リクエスタがインターネットリクエスタの場合、エラーメッセージはリモートブラウザへ送られます。

  • リクエスタがコマンドラインリクエスタの場合、エラーメッセージはコンソールに表示されます。

  • リクエスタがMagic エンジンの場合、このエラーメッセージは表示されません。

構文チェック（F8）でプログラムをチェックしてください。

J2EE環境の場合、EJBはアボートしたプログラムのエラーメッセージをEJBクライアントに返します。


139 ERR THREAD ABORTED

トラブルシューティング > パーティショニングエラー

プログラムの実行中に異常終了した場合に発生します。


142 ERR BIND FAIL

トラブルシューティング > パーティショニングエラー

サーバモジュール（MRBやアプリケーションサーバ）がローカルアドレスにバインドする処理に失敗しました。アドレスが使用中の可能性がありますl。


143 ERR CNCT REFUSED

トラブルシューティング > パーティショニングエラー

クライアントモジュール間の接続が拒否されました。このような状況は、他のモジュール間でも発生する可能性があります。

例えば、リクエスタからMRB（またはアプリケーションサーバ）へ、アプリケーションサーバからMRBへの接続があります。


144 ERR CNCT RESET

トラブルシューティング > パーティショニングエラー

接続がリセットされました。この接続は使用できません。

リクエスタ（またはアプリケーションサーバ）からMRBまでの接続がリセットされた場合、mrb_event.logは以下のフォーマットでエラーを書き込みます：

1092 23:29:54,03534 01/05/2002 Error: "TCP/IP error: Connection reset" (-144) (server2/1501)

  • 1092 … スレッドid(MRBの内部番号)。これはデバッグ時に、MGRB.INIまたはMGREQ.INIファイルの指定によって出力される他のログの情報と同期化するための開始点として使用できます。

  • (server2/1501) … 接続がリセットされたモジュール。アプリケーションサーバに問題があると思われる場合、アプリケーションサーバの起動時に登録され、ここにアプリケーションサーバのアドレスが出力されます。リクエスタに問題があると思われる場合（例えば、IISがクラッシュするような場合）、アドレスは表示されません。

アプリケーションサーバに問題がある場合は、以下のように対応してください。

  1. タスクマネージャや同等機能のユーティリティソフトでプロセスの確認を行ってください。

  2. アプリケーションサーバがタスク一覧から削除されていたら、問題は、ログファイル、フローモニタなどを使用して、アプリケーションサーバの問題として詳細に調べる必要があります。
    MRBの履歴ログ（mgrqcmdl -query=log で指定するか、モニタアプリケーションのログ）によって、アプリケーションサーバが異常終了した場合、どのプログラムが実行していたかを特定する手がかりを得ることができます。

  3. アプリケーションサーバがタスク一覧から削除されいない場合は、MRBがアプリケーションサーバとの接続をリセットしてしまう問題が考えられます。このような場合、双方(MRBとアプリケーションサーバ)の MGREQ.INI で指定されたログファイルを確認して原因を調べてください。


146 ERR BIND HOST NOT FOUND

トラブルシューティング > パーティショニングエラー

MGRB.INIファイルの「BrokerPort」キーワードに正しいホスト名または、IPアドレスが指定されていない場合、このエラーが発生します。

名前解決ができないため、サーバモジュールがローカルアドレスにバインドできません。例えば、MAGIC.INI の[MAGIC_COMMS]セクションの[TCP/IP]に指定されたアドレスなどです。

MGREQ.INI のLocalhost の指定や、MAGIC.INIでの TCP/IPパラメータの /Localhostの指定に誤りがあります。（例：TCP/IP = 2,30,1500-2000 /LocalHost=myserver）

正しいアドレス(ホスト名)を指定してください。


147 ERR CNCT HOST NOT FOUND

トラブルシューティング > パーティショニングエラー

ホストが見つかりません。

名前解決が正しく行われていないため、クライアントはサーバとの接続を設立することができません。ある特定のコンピュータの上のリクエスタがMRBからアプリケーションサーバのアドレスを受信する場合に、このようなことが発生する場合があります。アプリケーションサーバは、リクエスタではなくMRBによって認識できる名前でホストに配置されています。DNSやDHCPを利用するとでこのような問題を防ぐことができます。

このエラーはERR-BIND_HOST_NOT_FOUNDによく似ています。リクエスタは、未知のMRBやアプリケーションサーバと接続することができません。MGREQ.INIファイル内の[MessagingServer]キーワードを確認してください。MRBアドレスには、「88.0.184/2001」のようにインターネットアドレスが含まていなければなりません。


148 ERR CNCT CLOSED

トラブルシューティング > パーティショニングエラー

接続が中断されました。

mrb_event.logには、以下のフォーマットでエラーが出力されます：

377 17/07/2002 8:19:50,23562 TCP/IP: Connection was closed by peer (-148) (128.1.1.204/1500)

  • 377 … スレッドid(ブローカの内部番号)。 これはデバッグ時に、MGRB.INIまたはMGREQ.INIファイルの指定によって出力される他のログの情報と同期化するための開始点として使用できます。

  • (128.1.1.204/1500) … 接続がリセットされたモジュール。アプリケーションサーバに問題があると思われる場合、アプリケーションサーバの起動時に登録され、ここにアプリケーションサーバのアドレスが出力されます。リクエスタに問題があると思われる場合（例えば、IISがクラッシュするような場合）、アドレスは表示されません。

接続をクローズした相手はリクエスタかアプリケーションサーバのどちらかの可能性があります。

注意：

  • エラー：148は、回復可能なエラーです。MRBは、エラーを報告したアプリケーションサーバに送ったリクエストを保持し、アプリケーションサーバはリクエストが完了した時点でMRBとの接続を再度確立できます。

  • このエラーの重要性は、TCP/IPスタックの低レベルのエラーであることを表しているということです。アプリケーションサーバとリクエスタとの間では、107 という他のエラーが発生するかもしれません。


149 RQTCP ERR OUT OF SOCKETS

トラブルシューティング > パーティショニングエラー

現在のモジュールは、オープンソケット（デフォルト：1000）の最大値に達しました。MGREQ.INI の[Handles]キーワードを指定して増やしてください。


150 ERR CNCT REFUSED MRB

トラブルシューティング > パーティショニングエラー

アプリケーションサーバがMRBと接続できない場合、このエラーが発生します。

MRBが起動されている場合、アプリケーションサーバから認識するMRBのホスト名とIPアドレスが正しいかを確認してください。

アプリケーションサーバがインストールされているディレクトリ内の MGREQ.INI にて「Log」パラメータを有効にすることで問題の原因を調べることができます。(例：log = reg.log Y R)


151 ERR CNCT CLOSED BY REQ

トラブルシューティング > パーティショニングエラー

リクエストの実行中に、リクエスタはステータス「110 ERR REQUEST TIMEOUT」の受信後に、接続をクローズしました。

この時は、アプリケーションサーバからリクエスタに何も返されません。クライアントPCとアプリケーションサーバのリクエスタをチェックしてください。

可能ならば、リクエスタやアプリケーションサーバのログ（MGREQ.INI の Logキーワードで指定します。）を有効にして問題を再現してみてください。

これはステータス 「110」と関係した内部ステータスコードであり、クライアント側で対応する必要があります。


156 RQMRG ERR OUT OF SEQ MSG

トラブルシューティング > パーティショニングエラー

ブラウザクライアントを提供しているコンテキストは、予期しないセッションカウンターを含んだリクエストをクライアントから受け取りました。（クライアントからの各リクエストのセッションカウンタは、前のセッションカウンター+1にならなければなりません。）

可能ならば、リクエスタやアプリケーションサーバのログ（MGREQ.INI の Logキーワードで指定します。）を有効にして問題を再現してみてください。


180 RQMRB WRN EXE NOT FOUND

トラブルシューティング > パーティショニングエラー

MGRB.INIの[MRB_EXECUTABLES_LIST]に定義されていない実行モジュールの起動要求がMRBに送られました。


181 RQMRB WRN RT NOT FOUND

トラブルシューティング > パーティショニングエラー

MRBに、登録されないホスト/ポートのエンジンに対する処理の実行を要求されました。（例えば、エンジンの終了要求）

可能ならば、MRBのログ（MGRB.INIの Logキーワードで指定します。）を有効にして問題を再現してみてください。


182 RQMRB WRN REQ NOT FOUND

トラブルシューティング > パーティショニングエラー

MRBは、不明なリクエストによる操作要求を受けました。（例えば、プライオリティの修正依頼）

可能ならば、MRBのログ（MGRB.INIの Logキーワードで指定します。）を有効にして問題を再現してみてください。


183 RQMRB WRN REQ NOT MATCH

トラブルシューティング > パーティショニングエラー

MRBに、リクエスタアプリケーション名と合わない処理要求を受けたました。

可能ならば、MRBのログ（MGRB.INIの Logキーワードで指定します。）を有効にして問題を再現してみてください。


185 RQMRB ERR REGISTER SERVICE

トラブルシューティング > パーティショニングエラー

MRBは、サービスとしての初期設定処理に失敗しました。

MRBのログ（MGRB.INIの Logキーワードで指定します。）を有効にして問題を再現してみてください。


186 RQMRB ERR REPORT SERVICE STATUS

トラブルシューティング > パーティショニングエラー

MRBは、サービスとしての初期設定処理に失敗しました。

MRBのログ（MGRB.INIの Logキーワードで指定します。）を有効にして問題を再現してみてください。


187 RQMRB ERR CNCT REFUSED REMOTE MRB

トラブルシューティング > パーティショニングエラー

MRBは、MGRB.INIの[MRB_REMOTE_EXECUTABLES_LIST]セクションで定義されたリモートの実行モジュールを開始するために、リモートのMRBへの接続に失敗しました。

リモートMRBの設定（ホスト名/ポート番号）を確認してください。


197 ERR CTX NOT FOUND

トラブルシューティング > パーティショニングエラー

コンテキストが見つかりません。

ブラウザクライアントによって送信されたコンテキストIDがアプリケーションサーバに存在していません。

ブラウザクライアントセッションが開始される場合は常に、アプリケーションサーバはそのセッションに対応したユニークなコンテキストIDを生成します。このコンテキストIDは、この次に送信されるリクエストをブラウザクライアントからアプリケーションサーバに結びつけます。

アプリケーションサーバは、MAGIC.INI で定義された「コンテキスト非稼働タイムアウト」で設定された時間内でコンテキストの内容を保持します。このタイムアウトの値は、最後のリクエストを受信してから、指定時間を超えてもリクエストが受信されない場合をタイムアウトとするものです。

ブラウザクライアントとアプリケーションサーバ間でのセッションに影響する可能性のある別の環境設定として、「コンテキストのアンロードタイムアウト」があります。

以下にトラブル例とその解決策を記述します：

例1

ブラウザクライアントのセッション間に、[コンテキスト非稼働タイムアウト]で設定された値より長い時間、エンドユーザがアプリケーションサーバにアクセスできない。

対策：[コンテキスト非稼働タイムアウト]の値を少しずつ増やしてみてください。値を大きくすると、アプリケーションサーバがコンテキストをより長い時間オープンするようになります。ただし、使用しているリソースに対して悪影響を及ぼす場合もあります。[コンテキスト非稼働タイムアウト]は、0.1 秒単位で設定されます。例えば、「600」と設定すると「1分」になります。

例2

ブックマークが保存されているような、コンテキストを含んだURLが、コンテキストの使用期限を過ぎてからアクセスされた場合。

例３

ブラウザクライアントが実行中に、エンドユーザが（ブックマークのような）他のURLを指定し、[コンテキストのアンロードタイムアウト]で指定された時間を経過後に、IEの[戻る]機能でMagicのブラウザのセッションに戻ろうとした場合

対策：[コンテキストのアンロードタイムアウト]の値を少しずつ増やしてみてください。値を大きくすると、アプリケーションサーバがコンテキストをより長い時間オープンするようになります。ただし、使用しているリソースに対して悪影響を及ぼす場合もあります。

[コンテキストのアンロードタイムアウト]は、0.1 秒単位で設定されます。例えば、「1200」と設定すると「2分」になります。

開発モード時は、このタイムアウトの値が 0.1秒に制限されていることに注意してください。

F7キーで起動されたブラウザプログラムを（Webブラウザを閉じたり、他のURLを指定したりして）止めると、すぐにMagicの開発画面に戻ります。


198 ERR QUE LIMIT

トラブルシューティング > パーティショニングエラー

キューの最大数に達しました。

MGRB.INIの [QueueMaxSize]パラメータの値を増やしてください。


200 ERR UNEXPECTED

トラブルシューティング > パーティショニングエラー

予期しないエラーです。

他のエラーコードと一緒に表示される場合は、そのエラーの対応を行ってみてください。


201 ERR NOT INITIALIZED

トラブルシューティング > パーティショニングエラー

コードパーティショニングエラーです。

TCP/IPのサービスがインストールされていない可能性があります。


202 ERR OPEN RESULT FILE

トラブルシューティング > パーティショニングエラー

リクエスタは、出力内容をファイルに書き込むように依頼しましたが、指定されたファイル（またはパス）名が正しくありません。

クライアントのMagicバージョンが異なっていたり、MGREQ.INI や コマンドラインリクエスタによる指定に誤りがあるかもしれません。


203 RQLIB ERR INI FILE

トラブルシューティング > パーティショニングエラー

INI ファイルをオープンできませんでした。


204 RQCMDL ERR BAD ARGS

トラブルシューティング > パーティショニングエラー

コマンドラインリクエスタは、パラメータの解析ができませんでした。コマンドラインリクエスタのヘルプを参考に、パラメータの指定内容を見直してください。


205 RQ ERR WRONG MSG SRVR

トラブルシューティング > パーティショニングエラー

要求処理をサポートしないミドルウェアに要求が送られました。（例えば、EJBからのリクエストによるエンジンの起動要求）


206 ERR SOAP SRVR PARSE

トラブルシューティング > パーティショニングエラー

受信したSOAPデータのEnvelope に不正な要素が含まれています。HTTPトレースを使用して不正な要素を確認してください。


210 RQMRILOW ERR RECV FAIL

トラブルシューティング > パーティショニングエラー

メッセージの受信中に内部エラーが発生しました。

可能ならば、リクエスタやアプリケーションサーバのログ（MGREQ.INI の Logキーワードで指定します。）を有効にして問題を再現してみてください。


211 RQMRILOW ERR NOT MRI

トラブルシューティング > パーティショニングエラー

メッセージの受信中に内部エラーが発生しました。

通信相手がMagicモジュールではありませんでした。メッセージはInternet Explorerなどの別のTCP/IPモジュールによって送信された可能性があります。


212 RQMRILOW ERR OLD MRI

トラブルシューティング > パーティショニングエラー

メッセージの受信中に内部エラーが発生しました。

エンジンとリクエスタのバージョンが合っていない可能性があります。

可能ならば、リクエスタやアプリケーションサーバのログ（MGREQ.INI の Logキーワードで指定します。）を有効にして問題を再現してみてください。


260 RQHTTP ERR UPLOAD TOO BIG

トラブルシューティング > パーティショニングエラー

ブラウザからリクエスタにアップロードされたファイルのサイズが最大値を超えました。

MGREQ.INI の MaxUploadKB キーワードを使用して上限値を増やしてください。


トラブルシューティング 名前解決

名前解決

トラブルシューティング >

Magicのパーティショニング機能によって、異なるモジュール（MRB、クライアント、アプリケーションサーバ）を異なるマシン上に配置することができます。その際、各マシンは互いのマシンのホスト名を認識できるようにしなければなりません。、

例えば、MRBが「SRVR_1」というホスト名のマシンにインストールされ、別のマシン「SRVR_2」と「SRVR_3」にそれぞれアプリケーションサーバがインストールされているものとします。

アプリケーションサーバは、MRBに対して「SRVR_2」と「SRVR_3」のホスト名で認識してもらうようにします。このホスト名は、クライアントが同期リクエストを送信する際にMRBに渡されます。従って、各クライアントは各マシンのホスト名の名前解決ができるようにする必要があります。

一番推奨する方法は、DNSやDHCPを利用するtことです。

他には、Hostsファイルを使用することもできます。この場合は、常に最新の環境になるように各クライアントのHostsファイルをメンテナンスをする必要があります。


トラブルシューティング タイムアウト

タイムアウト

トラブルシューティング >

INIファイルの中で定義されている様々なタイムアウトの説明を以下に挙げています。これらは、トラブルの解決に有効な場合があります。

INIファイル/ 使用するモジュール | リクエスタ | MRB | アプリケーションサーバ
ブローカタイムアウト |  |  |
リクエスタタイムアウト |  |  |
通信タイムアウト |  |  |
サーバタイムアウト |  |  |
終了待ち |  |  |
シャットダウンタイムアウト |  |  |


トラブルシューティング タイムアウト ブローカ

ブローカタイムアウト

トラブルシューティング > タイムアウト

ブローカタイムアウトは、リクエスタが同期リクエストを実行するためにMRBがアプリケーションサーバのアドレスを取得するための待ち時間（秒数）を定義します。

これは、インターネットリクエスタやコマンドラインリクエスタの場合MGREQ.INI (BrokerTimeout)で指定します。リモートコールの場合は、[動作環境]の[サーバ]特性の[タイムアウト]（MAGIC.INI の[MAGIC_SERVERS]セクション）で指定します。

QUERY RT、QUERY APPS、TERMなどのように管理や照会など、MRBに負荷のかかる処理の実行を可能にするため、リクエスタは、ブローカタイムアウトで指定された値の5倍の時間を待つようにしています。

デフォルトは10秒です。


トラブルシューティング タイムアウト リクエスタ

リクエスタタイムアウト

トラブルシューティング > タイムアウト

リクエスタタイムアウトは、アプリケーションサーバがリクエスタ処理を終わらるまでリクエスタが待つ最大時間を指定します。

これは、インターネットリクエスタやコマンドラインリクエスタの場合MGREQ.INI (RequesterTimeout)で指定します。リモートコールの場合は、[動作環境]の[環境設定]の[リクエスタタイムアウト]で指定します。

指定された時間を超えた場合、アプリケーションサーバはリクエストを中断しません。この場合、リクエストは出力を待たずに処理を継続することができます。

デフォルト:0（無期限）

リクエストは、TCP/IPのスタック設定によって制限される場合があります。この場合、アプリケーションサーバとの接続がTCP/IPスタックによってリセットされ、「107 ERR CNCT RESET」が返る可能性があります。このタイムアウトに「0」以外が設定され、タイムアウトが発生した場合、「110 ERR REQUEST TIMEOUT」が返ります。


トラブルシューティング タイムアウト 通信

通信タイムアウト

トラブルシューティング > タイムアウト

TCP/IP操作(接続/送信/受信）が、失敗する前にリトライする最大時間（単位：秒）です。以下の時間も含まれます。

  • クライアントが同期リクエストでサーバと接続する場合に、クライアントが待つ時間

  • サーバがリクエストを受け取り、それを処理し始めことを示すAckメッセージを、 クライアントが待つ時間

  • クライアントがリクエスト結果を受け取ったことを示すAckメッセージを、サーバが待つ時間

MRBによって送信されたメッセージに対してMGRB.INIファイル内のこの設定はMGREQ.INIファイル内の設定を上書きします。

汎用のリクエスタレイヤーの低レベルのメッセージは、MGREQ.INIファイルの設定が使用されます。

デフォルトは10秒です。最小値は1秒です。


トラブルシューティング タイムアウト サーバ

サーバタイムアウト

トラブルシューティング > タイムアウト

サーバタイムは秒数で指定します。

アプリケーションサーバの起動時にMRBからアプリケーションサーバ「I-AM-ALIVE」メッセージが送信されます。サーバタイムアウトは、アプリケーションサーバからMRBへの「I-AM-ALIVE」メッセージの送信間隔を指定します。

これは、MGRB.INI(ServerTimeout)で指定します。


トラブルシューティング タイムアウト 終了待ち

終了待ちタイムアウト

トラブルシューティング > タイムアウト

終了待ちタイムアウトは、接続を自動的に終了させる機能を定義するものです。

例えば、ScriptsフォルダのMGREQ.INIファイルにこのキーワードを設定した場合、以前に接続されたMRB/エンジンがシャットダウンされ、（同じアドレスの上で）再起動された場合、以前の接続は次のリクエストが送られる間、または定期的に自動終了します。

有効な値：

  • 正値 …… 全ての終了待ち接続を定期的に終了するまでの時間を秒数で指定します。また、指定された時間が経過すると、終了待ち接続がすぐに終了されます。

  • -1 …… 定期的に終了しません。指定された時間が経過すると、終了待ち接続が終了されます。

  • 0 …… 定期的に終了しません。すぐに終了することはありません。

デフォルト = -1


トラブルシューティング ログファイルの設定

ログファイルの設定

トラブルシューティング >

３つのログファイルがあります。

  • MGREQ.INI で定義…… TCP/IP、スレッド、イベントなどの低レベルの動作を記録します。

  • MGRB.INI で定義 …… リクエストの受信、アプリケーションサーバの位置付、アプリケーションサーバへのリクエスタの送信や初期設定などのハイレベルのMRBの動作を記録します。このログは、MRBがリクエストを受け付けたかどうか、またリクエストをどのように処理したかなどを確認することができます。

  • Mrb_event.log …… MRBが記録し、どのINIファイルにも関係しないログです。MRBとアプリケーションサーバの起動やシャットダウンなどの重要なMRBの動作を記録します。


トラブルシューティング ウィンドウの初期化

ウィンドウの初期化

トラブルシューティング >

開発用テーブルのカラムが（カラムサイズが｢0｣になったり、位置がずれるため）表示されなくなるような場合は、以下のファイルを削除することで表示を初期化することができます。

Windows2000/Xp の場合

C:\Documents and Settings\(user id)\Local Settings\Application Data\MSJ\eDeveloper10\FormsUserState_jpn.xml

Windows Vistaの場合

C:\Users\(user id)\AppData\Local\MSJ\eDeveloper10\FormsUserState_jpn.xml


トラブルシューティング DEP

データ実行防止機能の対応

トラブルシューティング >

OSによってはMagicの実行中に以下のダイアログが表示される場合があります。

これは、OSの保護機能が働いているためです。このような場合は、Magicをこの保護機能の対象外に指定する必要があります。

  1. ［設定の変更］をクリックします。以下のようなダイアログが表示されます。

  2. ここで「eDeveloper runtime」のチェックボックスをチェックするか、「重要なWindowsのプログラムおよびサービスについてのみ有効にする」をチェックした後、［OK］ボタンをクリックします。

  3. OSを再起動してください。これで、Magicを実行させることができます。


トラブルシューティング ライセンスエラー

ライセンスエラー

トラブルシューティング

以下のエラーは、ライセンスに関係するものです。

システム日付が正しくありません

MGDEMOライセンスは、開発エンジンでのみ利用できます.

ライセンスのバージョンが合っていません.

ライセンスのメンテナンス日付を過ぎています.

使用ユーザ数の制限を超えました.

開発用ライセンスではありません.

インストールガイドを参考の上ライセンスを設定してください.

ライセンスの使用期限を過ぎています.

ライセンスが指定されていません.

製品のライセンスが指定されていないか、不正なライセンスです.

ホストへの接続に失敗しました - 通信に失敗したか、ホスト名が間違っています.

ライセンスサーバは、このライセンスをサポートしていません.


トラブルシューティング ライセンスエラー システム日付

システム日付が正しくありません

トラブルシューティング > ライセンスエラー

PCのシステム日付が現在より24時間以上古かったり、Windowsディレクトリ内に現在の日付より新しいタイムスタンプのファイルやフォルダが存在する場合に発生します。

PCのクロックやファイルのタイムスタンプを確認してください。


トラブルシューティング ライセンスエラー DEMOライセンス

MGDEMOライセンスは、開発エンジンでのみ利用できます.

トラブルシューティング > ライセンスエラー

実行エンジン（eDevRTE.exe）をデモライセンス（MGDEMO）で実行させた場合に発生します。


トラブルシューティング ライセンスエラー バージョン

ライセンスのバージョンが合っていません.

トラブルシューティング > ライセンスエラー

指定されたライセンスがVer10用のものでない場合に発生します。


トラブルシューティング ライセンスエラー メンテナンス日付

ライセンスのメンテナンス日付を過ぎています.

トラブルシューティング > ライセンスエラー

Magic EnterpriseServer と Magic RichClientServer は、ライセンスのメンテナンス日付をチェックしています。ライセンス上のメンテナンス日付よりも新しいバージョンのMagicエンジンを起動した場合、このエラーが発生します。


トラブルシューティング ライセンスエラー ユーザ数制限

使用ユーザ数の制限を超えました.

トラブルシューティング > ライセンスエラー

ライセンスで指定されたユーザ数を越えたクライアントが同じライセンスを使用した場合に発生します。

Magic Clientを同一クライアントで起動させた場合、5インスタンスを越えると1ユーザづつ使用ユーザ数が加算されます。


トラブルシューティング ライセンスエラー 開発用ライセンス

開発用ライセンスではありません.

トラブルシューティング > ライセンスエラー

実行用ライセンス（MGCSRTXやMGENTX1）でMagic Studioを実行させた場合に発生します。


トラブルシューティング ライセンスエラー 参照エラー

インストールガイドを参考の上ライセンスを設定してください.

トラブルシューティング > ライセンスエラー

指定されたライセンス情報が正しくない場合に発生します。ライセンス情報に誤りがないか確認してください。


トラブルシューティング ライセンスエラー 使用期限

ライセンスの使用期限を過ぎています.

トラブルシューティング > ライセンスエラー

指定されたライセンスには、使用期限が設定されており、その期限が過ぎている場合に発生します。


トラブルシューティング ライセンスエラー 指定されていない

ライセンスが指定されていません.

トラブルシューティング > ライセンスエラー

ライセンス名が指定されていない場合に発生します。


トラブルシューティング ライセンスエラー 不正なライセンス

製品のライセンスが指定されていないか、不正なライセンスです.

トラブルシューティング > ライセンスエラー

指定されたライセンスファイル情報が正しくない場合や、ライセンスファイル名が指定されていない場合に発生します。

また（アクセス権がないなどの理由で）ライセンスファイルにアクセスできない場合も発生します。


トラブルシューティング ライセンスエラー 通信エラー

ホストへの接続に失敗しました - 通信に失敗したか、ホスト名が間違っています.

トラブルシューティング > ライセンスエラー

アプリケーションの起動中にライセンスサーバとの間の通信処理ができなくなった場合に発生します。ネットワーク環境やライセンスサーバのプロセス状態を確認してください。


トラブルシューティング ライセンスエラー 未サポート

ライセンスサーバは、このライセンスをサポートしていません.

トラブルシューティング > ライセンスエラー

指定されたライセンスがライセンスサーバ上で無効扱いになっている場合に発生します。

ライセンスファイル内のホストIDが正しくなかったり、ライセンスファイルのパラメータに誤りがある可能性があります。


CopyRight

本マニュアルに記載の内容は、将来予告なしに変更することがあります。これらの情報についてMSE（Magic Software Enterprises Ltd.）およびMSJ（Magic Software Japan K.K.）は、いかなる責任も負いません。

本マニュアルの内容につきましては、万全を期して作成していますが、万一誤りや不正確な記述があったとしても、MSE およびMSJ はいかなる責任、債務も負いません。

MSE およびMSJ は、この製品の商業価値や特定の用途に対する適合性の保証を含め、この製品に関する明示的、あるいは黙示的な保証は一切していません。

本マニュアルに記載のソフトウェアは、製品の使用許諾契約書に記載の条件に同意をされたライセンス所有者に対してのみ供給されるものです。 同ライセンスの許可する条件のもとでのみ、使用または複製することが許されます。当該ライセンスが特に許可している場合を除いては、いかなる媒体へも複製することはできません。

ライセンス所有者自身の個人使用目的で行う場合を除き、MSE またはMSJ の書面による事前の許可なしでは、いかなる条件下でも、本マニュアルのいかなる部分も、電子的、機械的、撮影、録音、その他のいかなる手段によっても、コピー、検索システムへの記憶、電送を行うことはできません。

サードパーティ各社商標の引用は、MSE およびMSJ の製品に対するコンパチビリティに関しての情報提供のみを目的としてなされるものです。

本マニュアルにおいて、説明のためにサンプルとして引用されている会社名、製品名、住所、人物は、特に断り書きのないかぎり、すべて架空のものであり、実在のものについて言及するものではありません。

Magic はMagic Software Enterprises Ltd. のイスラエルその他の国での商標または登録商標です。

Magic eDeveloper®とMagic Client®は、は Magic Software Japan K.K. の登録商標です。

Magic Studio、Magic Enterprise Server、およびMagic RichClient Serverは Magic Software Japan K.K. の商標です。

Pervasive.SQL®は Pervasive Software, Inc. の商標です。

IBMR, iSeries™,xSeriesR,DB2®およびWebSphere®は、 IBM Corporation の商標または登録商標です。

Microsoft® および FrontPage® は、Microsoft Corporation の登録商標です。また、Windows™, WindowsNT™ およびActiveX ™はMicrosoft Corporation の商標です。

Oracle® はOracle Corporation の登録商標です。

Linux® はLinus Torvalds の登録商標です。

GLOBEtrotter® とFLEXlm® は、Macrovision Corporation の登録商標です。

Interstage® は、富士通株式会社の登録商標です。

JBoss™ は、JBoss Inc. の商標です。

Systinet™ は、Systinet Corporation の商標です。

一般に、会社名、製品名は各社の商標または登録商標です。

MSE およびMSJ は、本製品の使用またはその使用によってもたらされる結果に関する保証や告知は一切していません。この製品のもたらす結果およびパフォーマンスに関する危険性は、すべてユーザが責任を負うものとします。

この製品を使用した結果、または使用不可能な結果生じた間接的、偶発的、副次的な損害（営利損失、業務中断、業務情報の損失などの損害も含む）に関し、事前に損害の可能性が勧告されていた場合であっても、MSE およびMSJ、その管理者、役員、従業員、代理人は、いかなる場合にも一切責任を負いません。


End User License Agreement

使用許諾

MSE LICENSE AGREEMENT

Carefully read all the terms and conditions of this MSE License Agreement ('Agreement' prior to opening this package and/or installing, copying, downloading, accessing and/or using the software. This is a legal agreement between you (either an individual or a corporation) and Magic Software Enterprises Ltd. (溺SE・ (in the event that you purchased the Product in North America, 'MSE' shall include Magic Software Enterprises Inc.) pertaining to the use of the software product accompanied by this Agreement, including associated media, printed materials, and "online" or electronic documentation, and any updates and supplements to the original software product which may be provided to you by MSE in accordance herewith ('Product'. By opening the package and/or installing, copying, downloading, accessing and/or using the Product you agree to be bound by these terms and conditions. If you do not agree to the terms of this MSE License Agreement, do not open the package and/or install or use the Product.

LICENSE

Subject to the payment by you to MSE of the applicable license fees, MSE grants you a personal, non-transferable, non-exclusive license to use the enclosed Product on a single CPU, or in the case that the Product is marketed for use in a local area network, on a single network for up to the number of users specified on the medium. You may transfer the Product from one CPU to another or from one network to another provided that at any given time only one copy of the Product is installed on one CPU or on one network, as applicable. You may not electronically transfer, reverse engineer, disassemble, reverse translate or in any manner decode in order to derive any source code from the Product, except to the extent that any such activity is expressly permitted by law. Only the original licensee will be entitled to updates.

PROPRIETARY RIGHTS OF MSE

The MAGIC logo, Product name, Product manuals, training materials, documentation and other support materials are either patented, copyrighted, trademarked or owned by MSE as trade secrets and/or proprietary information. MSE retains exclusive ownership of the MSE Product, of the MSE printed materials and of the MSE trademarks. All techniques, algorithms and processes contained in MSE's Product or any modification or extraction thereof constitute trade secrets and/or proprietary information of MSE and will be protected by this Agreement. You agree to exercise due care and diligence under this Agreement to protect the interests and rights of MSE and its suppliers. You may not copy the Product or the documentation except to load the Product on your computer. You may not transfer the Product or the documentation to any person not a party to this Agreement. All other copies of the Product and the documentation are in violation of this Agreement.

BACKUP

Subject to MSE's prior written consent, and payment of applicable fees, you may keep one copy of the Product solely for backup purposes. You must label the backup copy to include the copyright and trademark notices, the Product name, version numbers and serial number.

LIMITED WARRANTY

a. The magnetic media, hardware components and documentation enclosed herein are warranted to be free of defects in materials and workmanship under normal use for a period of 60 (sixty) days from the date of purchase. In the event of notification, within the warranty period, of defects in materials or workmanship, your sole and exclusive remedy and MSE's sole and exclusive obligation is to replace the defective magnetic medium, documentation or hardware component at no cost to you.

b. The Product will perform substantially in accordance with the enclosed documentation for a period of 60 (sixty) days from the date of purchase. In the event of notification, within the warranty period, of a failure of the Product to perform properly, your sole and exclusive remedy and/or MSE's or any MSE Product distributor's or dealer's sole and exclusive obligation shall be, at MSE's option either (i) to replace the Product or the documentation so that the Product will perform substantially in accordance with the documentation, or (ii) to refund to you the amount paid by you for this copy of the Product.

c. EXCEPT AS SPECIFIED IN THIS PARAGRAPH THERE ARE NO WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF FITNESS AND MERCHANTABILITY FOR A PARTICULAR PURPOSE, AND THE PROGRAMS, DOCUMENTATION AND OTHER FILES ON THE MEDIA ARE PROVIDED "AS IS". (Some states do not allow the exclusion of implied warranties so the above exclusion may not apply to you).

d. THESE ARE YOUR SOLE AND EXCLUSIVE REMEDIES for any and all claims that you may have against MSE or any distributor or dealer of MSE Product(s) arising out of or in connection with the Product, whether made or suffered by you or another person and whether based in contract or tort.

e. IN NO EVENT WILL MSE, OR ANY DISTRIBUTOR OR DEALER OF MSE痴 PRODUCT(S), BE LIABLE TO YOU FOR CONSEQUENTIAL, INCIDENTAL, SPECIAL OR EXEMPLARY DAMAGES ARISING OUT OF A BREACH OF THIS AGREEMENT OR YOUR USE OF THE PRODUCT(S), INCLUDING BUT NOT LIMITED TO LOST PROFITS OR LOSS OF BUSINESS, EVEN IF MSE, OR ITS DISTRIBUTOR OR DEALER, HAS BEEN ADVISED OF THE LIKELIHOOD OF SUCH DAMAGES OCCURRING. (Some states do not allow the exclusion or limitation of incidental or consequential damages, so the above exclusion may not apply to you).

Under no circumstances will MSE's total liability to you of all kinds arising out of or related to this license Agreement (including but not limited to any warranty claims hereunder), regardless of the form, and regardless of whether any action or claim is based in contract, tort or otherwise, exceed the total purchase price paid by you for the right to use a single copy of the Product(s). MSE's Product's pricing reflects the allocation of risk and the limitation on liability contained in this Limited Warranty.

f. Because it is impossible for MSE or the distributors or dealers of MSE Product(s) to know the purposes for which you acquired this Product or the uses to which you will put this Product, you assume full responsibility for the selection of the Product, and for its installation and use and the results of that use.

g. While every reasonable effort has been made to ensure that you will receive a Product that you can use and enjoy, neither MSE nor the distributors and dealers of MSE's Product(s) warrant that the functions of the Product will meet your requirements or that the operation of the Product will be uninterrupted or error-free. Due to the complex nature of computer programs, the Product in this package (like all large programs) will probably never be completely error-free.

h. This Limited Warranty does not cover any magnetic medium which has been the subject of abuse or damage, nor does it cover any Product which has been altered or changed by anyone other than MSE.

i. Neither MSE nor the distributors and dealers of MSE Product(s) are responsible for problems caused by changes in the operating characteristics of the hardware or operating system software you are using which are made after the release date of this version of the Product, nor for problems in the interaction of the Product with any other software.

j. MSE expressly disclaims any representation in relation to the Product's capability of correctly processing monetary data in the Euro denomination. Furthermore, MSE disclaims any representation that the product is able to respect the Euro currency formatting conversions and shall not be liable for any damage caused due to the Product's in ability to perform such tasks relating to the Euro currency.

k. No action for breach of warranty may be commenced more than 1 (one) year following the expiration date of the above Limited Warranty.

UPDATES

MSE may from time to time, at its sole discretion, make available for download from its web site, updates and service packs ('Ppdates' that correct errors in and/or provide added functionality to the Product. You shall be eligible to download the Updates and install them only if you have entered into a separate maintenance agreement with MSE.

MSE reserves the right to prohibit the download and/or installation of the Updates for any copy of the Product not under a maintenance agreement in force using technical means.

You therefore agree that MSE may check your license information of the Product to ensure that you are eligible to receive Updates.

MSE will not retrieve any personally identifiable information, or any other information, from any computer via such technical mean and shall comply with all applicable laws and regulations concerning the protection of privacy.

TERMS OF LICENSE

This License is valid until terminated. Licensee may terminate it by destroying the programs and documentation and all copies thereof. If any of the terms and conditions of the Agreement are violated by the Licensee, in addition to all other legal rights and remedies, MSE may terminate this license. Upon termination, Licensee shall destroy the Product. The provisions of this license which protect the proprietary rights of MSE shall remain in force after the termination of this Agreement.

ACKNOWLEDGMENT

Licensee acknowledges reading this Agreement, understanding it, and agrees to be bound by its terms and conditions. Licen参照 agrees that this Agreement is the complete and exclusive statement of agreement between the parties and supersedes all proposals or prior agreements, verbal or written, and any other communications between the parties relating to the subject matter of this Agreement.

GOVERNING LAW AND FORUM SELECTION

This Agreement shall be governed and construed with the laws of the State of Israel, without giving effect to its conflict of law provisions, and the courts in Tel Aviv, Israel, shall have sole and exclusive jurisdiction over any conflict and/or dispute arising our of or in connection to this Agreement.

If you purchased the Product in North America, this Agreement shall be governed and construed in accordance with the laws of the State of California, without giving effect to its conflict of law provisions, and the state or federal Courts sitting in Orange County, California shall have sole and exclusive jurisdiction over any conflict and/or dispute arising out of or in connection to this Agreement.

U.S. GOVERNMENT RESTRICTED RIGHTS

The Product and any accompanying documentation are provided with restricted rights. Use, duplication or disclosure by the Government is subject to restrictions as set forth in subparagraph (b) (3) and (c) (1) (ii) of The Rights in Technical Data and Computer Software clause at DFARS 252.227-7013 or subparagraphs (c) (1) and (2) of the Commercial Computer Software - Restricted Rights at 48 CFR 52.227 - 19, as applicable.

Contractor/manufacturer is Magic Software Enterprises Ltd., 5 HaPlada St., Or-Yehuda 60218, Israel.


FAQ - Special Settings

What Is a Special Setting?

A special setting, sometimes referred to as a special flag, is an entry in the INI file that modifies the behavior of the product in specific aspects.

What Purpose Do the Special Settings Serve?

Sometimes, a specific behavior of the product is acknowledged as an erroneous behavior, which should be remedied. There are developers who knowingly or unintentionally define their applications in a way that relies on the erroneous behavior. The special settings are the means of enabling the developer to keep the previous behavior.

Is There a Special Setting for Every Modified Behavior?

Most of the modified erroneous behaviors cannot be reverted back using a special setting. This is because in many cases, there is no justification to rely on the erroneous behavior and in other cases the previous behavior is profoundly incorrect and developers relying on such modified behavior should introduce proper advancements in their applications.

How Do I Use a Special Setting?

If you wish to activate a special setting, you should enter it as a new line under a section called [MAGIC_SPECIALS] in the INI file. For example:

[MAGIC_SPECIALS]
MergeTrim = Y

How Is Each Setting Described in This Section?

The name of each setting is the actual name to be used in the INI file.

A short description is provided for each setting along with additional information, such as the valid values, the default values, and the version in which this flag was implemented.


定義取得

定義取得処理コマンドを実行すると、Unicodeデータを含むことができるすべてのデータ型は自動的にUnicodeフィールドとして定義されます。


Release_Notes

eDeveloper Special Settings

T

his document lists and describes the various special settings supported by eDeveloper.

Magic Software Enterprises Ltd provides the information in this document as is and without any warranties, including merchantability and fitness for a particular purpose. In no event will Magic Software Enterprises Ltd be liable for any loss of profit, business, use, or data or for indirect, special, incidental or consequential damages of any kind whether based in contract, negligence, or other tort. Magic Software Enterprises Ltd may make changes to this document and the product information at any time without notice and without obligation to update the materials contained in this document.

Magic and Magic eDeveloper are trademarks of Magic Software Enterprises Ltd.

Copyright ｩ Magic Software Enterprises, June 2007


Select or Specify Class

Java Integration > Java Component Generator

In this screen, you decide whether to select a class from a list on the next screen or if you know the name of the class, you can select the Specify Class option and enter the name of the class.

If you selected Select Class, click Next and select a class from the Select a Class screen.

You can select a Java class from the tree or specify the Java class name in the Class Name field.

After the Next button is clicked, the JExplore function is automatically called by the wizard. If the function fails, eDeveloper displays the following message:

Failed to find the Java class. Please check that the class is available.

If a new class is added to your classpath, click the Refresh button.

When you have selected a class, click Next and the Java Class Structure screen opens.


Third Party License Agreements

The following notices are included to ensure compliance with the 3rd party products included within this Magic product.

--------------------------------------------------------------------

Apache License

--------------------------------------------------------------------

====================================================================

The Apache Software License, Version 1.1

Copyright (c) 2000-2002 The Apache Software Foundation. All rights

reserved.

Redistribution and use in source and binary forms, with or without

modification, are permitted provided that the following conditions

are met:

1. Redistributions of source code must retain the above copyright

notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright

notice, this list of conditions and the following disclaimer in

the documentation and/or other materials provided with the

distribution.

3. The end-user documentation included with the redistribution,

if any, must include the following acknowledgment:

"This product includes software developed by the

Apache Software Foundation (http://www.apache.org/)."

Alternately, this acknowledgment may appear in the software itself,

if and wherever such third-party acknowledgments normally appear.

4. The names "Apache" and "Apache Software Foundation" must

not be used to endorse or promote products derived from this

software without prior written permission. For written

permission, please contact apache@apache.org.

5. Products derived from this software may not be called "Apache",

nor may "Apache" appear in their name, without prior written

permission of the Apache Software Foundation.

THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED

WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES

OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE

DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR

ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,

SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT

LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF

USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND

ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,

OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT

OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF

SUCH DAMAGE.

====================================================================

This software consists of voluntary contributions made by many

individuals on behalf of the Apache Software Foundation. For more

information on the Apache Software Foundation, please see

<http://www.apache.org/>.

Portions of this software are based upon public domain software

originally written at the National Center for Supercomputing Applications,

University of Illinois, Urbana-Champaign.

Apache License

Version 2.0, January 2004

http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction,

and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by

the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all

other entities that control, are controlled by, or are under common

control with that entity. For the purposes of this definition,

"control" means (i) the power, direct or indirect, to cause the

direction or management of such entity, whether by contract or

otherwise, or (ii) ownership of fifty percent (50%) or more of the

outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity

exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications,

including but not limited to software source code, documentation

source, and configuration files.

"Object" form shall mean any form resulting from mechanical

transformation or translation of a Source form, including but

not limited to compiled object code, generated documentation,

and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or

Object form, made available under the License, as indicated by a

copyright notice that is included in or attached to the work

(an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object

form, that is based on (or derived from) the Work and for which the

editorial revisions, annotations, elaborations, or other modifications

represent, as a whole, an original work of authorship. For the purposes

of this License, Derivative Works shall not include works that remain

separable from, or merely link (or bind by name) to the interfaces of,

the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including

the original version of the Work and any modifications or additions

to that Work or Derivative Works thereof, that is intentionally

submitted to Licensor for inclusion in the Work by the copyright owner

or by an individual or Legal Entity authorized to submit on behalf of

the copyright owner. For the purposes of this definition, "submitted"

means any form of electronic, verbal, or written communication sent

to the Licensor or its representatives, including but not limited to

communication on electronic mailing lists, source code control systems,

and issue tracking systems that are managed by, or on behalf of, the

Licensor for the purpose of discussing and improving the Work, but

excluding communication that is conspicuously marked or otherwise

designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity

on behalf of whom a Contribution has been received by Licensor and

subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of

this License, each Contributor hereby grants to You a perpetual,

worldwide, non-exclusive, no-charge, royalty-free, irrevocable

copyright license to reproduce, prepare Derivative Works of,

publicly display, publicly perform, sublicense, and distribute the

Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of

this License, each Contributor hereby grants to You a perpetual,

worldwide, non-exclusive, no-charge, royalty-free, irrevocable

(except as stated in this section) patent license to make, have made,

use, offer to sell, sell, import, and otherwise transfer the Work,

where such license applies only to those patent claims licensable

by such Contributor that are necessarily infringed by their

Contribution(s) alone or by combination of their Contribution(s)

with the Work to which such Contribution(s) was submitted. If You

institute patent litigation against any entity (including a

cross-claim or counterclaim in a lawsuit) alleging that the Work

or a Contribution incorporated within the Work constitutes direct

or contributory patent infringement, then any patent licenses

granted to You under this License for that Work shall terminate

as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the

Work or Derivative Works thereof in any medium, with or without

modifications, and in Source or Object form, provided that You

meet the following conditions:

(a) You must give any other recipients of the Work or

Derivative Works a copy of this License; and

(b) You must cause any modified files to carry prominent notices

stating that You changed the files; and

(c) You must retain, in the Source form of any Derivative Works

that You distribute, all copyright, patent, trademark, and

attribution notices from the Source form of the Work,

excluding those notices that do not pertain to any part of

the Derivative Works; and

(d) If the Work includes a "NOTICE" text file as part of its

distribution, then any Derivative Works that You distribute must

include a readable copy of the attribution notices contained

within such NOTICE file, excluding those notices that do not

pertain to any part of the Derivative Works, in at least one

of the following places: within a NOTICE text file distributed

as part of the Derivative Works; within the Source form or

documentation, if provided along with the Derivative Works; or,

within a display generated by the Derivative Works, if and

wherever such third-party notices normally appear. The contents

of the NOTICE file are for informational purposes only and

do not modify the License. You may add Your own attribution

notices within Derivative Works that You distribute, alongside

or as an addendum to the NOTICE text from the Work, provided

that such additional attribution notices cannot be construed

as modifying the License.

You may add Your own copyright statement to Your modifications and

may provide additional or different license terms and conditions

for use, reproduction, or distribution of Your modifications, or

for any such Derivative Works as a whole, provided Your use,

reproduction, and distribution of the Work otherwise complies with

the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,

any Contribution intentionally submitted for inclusion in the Work

by You to the Licensor shall be under the terms and conditions of

this License, without any additional terms or conditions.

Notwithstanding the above, nothing herein shall supersede or modify

the terms of any separate license agreement you may have executed

with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade

names, trademarks, service marks, or product names of the Licensor,

except as required for reasonable and customary use in describing the

origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or

agreed to in writing, Licensor provides the Work (and each

Contributor provides its Contributions) on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or

implied, including, without limitation, any warranties or conditions

of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A

PARTICULAR PURPOSE. You are solely responsible for determining the

appropriateness of using or redistributing the Work and assume any

risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,

whether in tort (including negligence), contract, or otherwise,

unless required by applicable law (such as deliberate and grossly

negligent acts) or agreed to in writing, shall any Contributor be

liable to You for damages, including any direct, indirect, special,

incidental, or consequential damages of any character arising as a

result of this License or out of the use or inability to use the

Work (including but not limited to damages for loss of goodwill,

work stoppage, computer failure or malfunction, or any and all

other commercial damages or losses), even if such Contributor

has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing

the Work or Derivative Works thereof, You may choose to offer,

and charge a fee for, acceptance of support, warranty, indemnity,

or other liability obligations and/or rights consistent with this

License. However, in accepting such obligations, You may act only

on Your own behalf and on Your sole responsibility, not on behalf

of any other Contributor, and only if You agree to indemnify,

defend, and hold each Contributor harmless for any liability

incurred by, or claims asserted against, such Contributor by reason

of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following

boilerplate notice, with the fields enclosed by brackets "[]"

replaced with your own identifying information. (Don't include

the brackets!) The text should be enclosed in the appropriate

comment syntax for the file format. We also recommend that a

file or class name and description of purpose be included on the

same "printed page" as the copyright notice for easier

identification within third-party archives.

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");

you may not use this file except in compliance with the License.

You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

--------------------------------------------------------------------

CYRUS-SASL License

--------------------------------------------------------------------

CMU libsasl

Tim Martin

Rob Earhart

Rob Siemborski

Copyright (c) 2001 Carnegie Mellon University. All rights reserved.

Redistribution and use in source and binary forms, with or without

modification, are permitted provided that the following conditions

are met:

1. Redistributions of source code must retain the above copyright

notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright

notice, this list of conditions and the following disclaimer in

the documentation and/or other materials provided with the

distribution.

3. The name "Carnegie Mellon University" must not be used to

endorse or promote products derived from this software without

prior written permission. For permission or any other legal

details, please contact

Office of Technology Transfer

Carnegie Mellon University

5000 Forbes Avenue

Pittsburgh, PA 15213-3890

(412) 268-4387, fax: (412) 268-7395

tech-transfer@andrew.cmu.edu

4. Redistributions of any form whatsoever must retain the following

acknowledgment:

"This product includes software developed by Computing Services

at Carnegie Mellon University (http://www.cmu.edu/computing/)."

CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO

THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY

AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE

FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES

WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN

AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING

OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

--------------------------------------------------------------------

EasySoap License

--------------------------------------------------------------------

GNU LESSER GENERAL PUBLIC LICENSE

Version 2.1, February 1999

Copyright (C) 1991, 1999 Free Software Foundation, Inc.

59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Everyone is permitted to copy and distribute verbatim copies

of this license document, but changing it is not allowed.

[This is the first released version of the Lesser GPL. It also counts

as the successor of the GNU Library Public License, version 2, hence

the version number 2.1.]

Preamble

The licenses for most software are designed to take away your

freedom to share and change it. By contrast, the GNU General Public

Licenses are intended to guarantee your freedom to share and change

free software--to make sure the software is free for all its users.

This license, the Lesser General Public License, applies to some

specially designated software packages--typically libraries--of the

Free Software Foundation and other authors who decide to use it. You

can use it too, but we suggest you first think carefully about whether

this license or the ordinary General Public License is the better

strategy to use in any particular case, based on the explanations below.

When we speak of free software, we are referring to freedom of use,

not price. Our General Public Licenses are designed to make sure that

you have the freedom to distribute copies of free software (and charge

for this service if you wish); that you receive source code or can get

it if you want it; that you can change the software and use pieces of

it in new free programs; and that you are informed that you can do

these things.

To protect your rights, we need to make restrictions that forbid

distributors to deny you these rights or to ask you to surrender these

rights. These restrictions translate to certain responsibilities for

you if you distribute copies of the library or if you modify it.

For example, if you distribute copies of the library, whether gratis

or for a fee, you must give the recipients all the rights that we gave

you. You must make sure that they, too, receive or can get the source

code. If you link other code with the library, you must provide

complete object files to the recipients, so that they can relink them

with the library after making changes to the library and recompiling

it. And you must show them these terms so they know their rights.

We protect your rights with a two-step method: (1) we copyright the

library, and (2) we offer you this license, which gives you legal

permission to copy, distribute and/or modify the library.

To protect each distributor, we want to make it very clear that

there is no warranty for the free library. Also, if the library is

modified by someone else and passed on, the recipients should know

that what they have is not the original version, so that the original

author's reputation will not be affected by problems that might be

introduced by others.

Finally, software patents pose a constant threat to the existence of

any free program. We wish to make sure that a company cannot

effectively restrict the users of a free program by obtaining a

restrictive license from a patent holder. Therefore, we insist that

any patent license obtained for a version of the library must be

consistent with the full freedom of use specified in this license.

Most GNU software, including some libraries, is covered by the

ordinary GNU General Public License. This license, the GNU Lesser

General Public License, applies to certain designated libraries, and

is quite different from the ordinary General Public License. We use

this license for certain libraries in order to permit linking those

libraries into non-free programs.

When a program is linked with a library, whether statically or using

a shared library, the combination of the two is legally speaking a

combined work, a derivative of the original library. The ordinary

General Public License therefore permits such linking only if the

entire combination fits its criteria of freedom. The Lesser General

Public License permits more lax criteria for linking other code with

the library.

We call this license the "Lesser" General Public License because it

does Less to protect the user's freedom than the ordinary General

Public License. It also provides other free software developers Less

of an advantage over competing non-free programs. These disadvantages

are the reason we use the ordinary General Public License for many

libraries. However, the Lesser license provides advantages in certain

special circumstances.

For example, on rare occasions, there may be a special need to

encourage the widest possible use of a certain library, so that it becomes

a de-facto standard. To achieve this, non-free programs must be

allowed to use the library. A more frequent case is that a free

library does the same job as widely used non-free libraries. In this

case, there is little to gain by limiting the free library to free

software only, so we use the Lesser General Public License.

In other cases, permission to use a particular library in non-free

programs enables a greater number of people to use a large body of

free software. For example, permission to use the GNU C Library in

non-free programs enables many more people to use the whole GNU

operating system, as well as its variant, the GNU/Linux operating

system.

Although the Lesser General Public License is Less protective of the

users' freedom, it does ensure that the user of a program that is

linked with the Library has the freedom and the wherewithal to run

that program using a modified version of the Library.

The precise terms and conditions for copying, distribution and

modification follow. Pay close attention to the difference between a

"work based on the library" and a "work that uses the library". The

former contains code derived from the library, whereas the latter must

be combined with the library in order to run.

GNU LESSER GENERAL PUBLIC LICENSE

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License Agreement applies to any software library or other

program which contains a notice placed by the copyright holder or

other authorized party saying it may be distributed under the terms of

this Lesser General Public License (also called "this License").

Each licensee is addressed as "you".

A "library" means a collection of software functions and/or data

prepared so as to be conveniently linked with application programs

(which use some of those functions and data) to form executables.

The "Library", below, refers to any such software library or work

which has been distributed under these terms. A "work based on the

Library" means either the Library or any derivative work under

copyright law: that is to say, a work containing the Library or a

portion of it, either verbatim or with modifications and/or translated

straightforwardly into another language. (Hereinafter, translation is

included without limitation in the term "modification".)

"Source code" for a work means the preferred form of the work for

making modifications to it. For a library, complete source code means

all the source code for all modules it contains, plus any associated

interface definition files, plus the scripts used to control compilation

and installation of the library.

Activities other than copying, distribution and modification are not

covered by this License; they are outside its scope. The act of

running a program using the Library is not restricted, and output from

such a program is covered only if its contents constitute a work based

on the Library (independent of the use of the Library in a tool for

writing it). Whether that is true depends on what the Library does

and what the program that uses the Library does.

1. You may copy and distribute verbatim copies of the Library's

complete source code as you receive it, in any medium, provided that

you conspicuously and appropriately publish on each copy an

appropriate copyright notice and disclaimer of warranty; keep intact

all the notices that refer to this License and to the absence of any

warranty; and distribute a copy of this License along with the

Library.

You may charge a fee for the physical act of transferring a copy,

and you may at your option offer warranty protection in exchange for a

fee.

2. You may modify your copy or copies of the Library or any portion

of it, thus forming a work based on the Library, and copy and

distribute such modifications or work under the terms of Section 1

above, provided that you also meet all of these conditions:

a) The modified work must itself be a software library.

b) You must cause the files modified to carry prominent notices

stating that you changed the files and the date of any change.

c) You must cause the whole of the work to be licensed at no

charge to all third parties under the terms of this License.

d) If a facility in the modified Library refers to a function or a

table of data to be supplied by an application program that uses

the facility, other than as an argument passed when the facility

is invoked, then you must make a good faith effort to ensure that,

in the event an application does not supply such function or

table, the facility still operates, and performs whatever part of

its purpose remains meaningful.

(For example, a function in a library to compute square roots has

a purpose that is entirely well-defined independent of the

application. Therefore, Subsection 2d requires that any

application-supplied function or table used by this function must

be optional: if the application does not supply it, the square

root function must still compute square roots.)

These requirements apply to the modified work as a whole. If

identifiable sections of that work are not derived from the Library,

and can be reasonably considered independent and separate works in

themselves, then this License, and its terms, do not apply to those

sections when you distribute them as separate works. But when you

distribute the same sections as part of a whole which is a work based

on the Library, the distribution of the whole must be on the terms of

this License, whose permissions for other licensees extend to the

entire whole, and thus to each and every part regardless of who wrote

it.

Thus, it is not the intent of this section to claim rights or contest

your rights to work written entirely by you; rather, the intent is to

exercise the right to control the distribution of derivative or

collective works based on the Library.

In addition, mere aggregation of another work not based on the Library

with the Library (or with a work based on the Library) on a volume of

a storage or distribution medium does not bring the other work under

the scope of this License.

3. You may opt to apply the terms of the ordinary GNU General Public

License instead of this License to a given copy of the Library. To do

this, you must alter all the notices that refer to this License, so

that they refer to the ordinary GNU General Public License, version 2,

instead of to this License. (If a newer version than version 2 of the

ordinary GNU General Public License has appeared, then you can specify

that version instead if you wish.) Do not make any other change in

these notices.

Once this change is made in a given copy, it is irreversible for

that copy, so the ordinary GNU General Public License applies to all

subsequent copies and derivative works made from that copy.

This option is useful when you wish to copy part of the code of

the Library into a program that is not a library.

4. You may copy and distribute the Library (or a portion or

derivative of it, under Section 2) in object code or executable form

under the terms of Sections 1 and 2 above provided that you accompany

it with the complete corresponding machine-readable source code, which

must be distributed under the terms of Sections 1 and 2 above on a

medium customarily used for software interchange.

If distribution of object code is made by offering access to copy

from a designated place, then offering equivalent access to copy the

source code from the same place satisfies the requirement to

distribute the source code, even though third parties are not

compelled to copy the source along with the object code.

5. A program that contains no derivative of any portion of the

Library, but is designed to work with the Library by being compiled or

linked with it, is called a "work that uses the Library". Such a

work, in isolation, is not a derivative work of the Library, and

therefore falls outside the scope of this License.

However, linking a "work that uses the Library" with the Library

creates an executable that is a derivative of the Library (because it

contains portions of the Library), rather than a "work that uses the

library". The executable is therefore covered by this License.

Section 6 states terms for distribution of such executables.

When a "work that uses the Library" uses material from a header file

that is part of the Library, the object code for the work may be a

derivative work of the Library even though the source code is not.

Whether this is true is especially significant if the work can be

linked without the Library, or if the work is itself a library. The

threshold for this to be true is not precisely defined by law.

If such an object file uses only numerical parameters, data

structure layouts and accessors, and small macros and small inline

functions (ten lines or less in length), then the use of the object

file is unrestricted, regardless of whether it is legally a derivative

work. (Executables containing this object code plus portions of the

Library will still fall under Section 6.)

Otherwise, if the work is a derivative of the Library, you may

distribute the object code for the work under the terms of Section 6.

Any executables containing that work also fall under Section 6,

whether or not they are linked directly with the Library itself.

6. As an exception to the Sections above, you may also combine or

link a "work that uses the Library" with the Library to produce a

work containing portions of the Library, and distribute that work

under terms of your choice, provided that the terms permit

modification of the work for the customer's own use and reverse

engineering for debugging such modifications.

You must give prominent notice with each copy of the work that the

Library is used in it and that the Library and its use are covered by

this License. You must supply a copy of this License. If the work

during execution displays copyright notices, you must include the

copyright notice for the Library among them, as well as a reference

directing the user to the copy of this License. Also, you must do one

of these things:

a) Accompany the work with the complete corresponding

machine-readable source code for the Library including whatever

changes were used in the work (which must be distributed under

Sections 1 and 2 above); and, if the work is an executable linked

with the Library, with the complete machine-readable "work that

uses the Library", as object code and/or source code, so that the

user can modify the Library and then relink to produce a modified

executable containing the modified Library. (It is understood

that the user who changes the contents of definitions files in the

Library will not necessarily be able to recompile the application

to use the modified definitions.)

b) Use a suitable shared library mechanism for linking with the

Library. A suitable mechanism is one that (1) uses at run time a

copy of the library already present on the user's computer system,

rather than copying library functions into the executable, and (2)

will operate properly with a modified version of the library, if

the user installs one, as long as the modified version is

interface-compatible with the version that the work was made with.

c) Accompany the work with a written offer, valid for at

least three years, to give the same user the materials

specified in Subsection 6a, above, for a charge no more

than the cost of performing this distribution.

d) If distribution of the work is made by offering access to copy

from a designated place, offer equivalent access to copy the above

specified materials from the same place.

e) Verify that the user has already received a copy of these

materials or that you have already sent this user a copy.

For an executable, the required form of the "work that uses the

Library" must include any data and utility programs needed for

reproducing the executable from it. However, as a special exception,

the materials to be distributed need not include anything that is

normally distributed (in either source or binary form) with the major

components (compiler, kernel, and so on) of the operating system on

which the executable runs, unless that component itself accompanies

the executable.

It may happen that this requirement contradicts the license

restrictions of other proprietary libraries that do not normally

accompany the operating system. Such a contradiction means you cannot

use both them and the Library together in an executable that you

distribute.

7. You may place library facilities that are a work based on the

Library side-by-side in a single library together with other library

facilities not covered by this License, and distribute such a combined

library, provided that the separate distribution of the work based on

the Library and of the other library facilities is otherwise

permitted, and provided that you do these two things:

a) Accompany the combined library with a copy of the same work

based on the Library, uncombined with any other library

facilities. This must be distributed under the terms of the

Sections above.

b) Give prominent notice with the combined library of the fact

that part of it is a work based on the Library, and explaining

where to find the accompanying uncombined form of the same work.

8. You may not copy, modify, sublicense, link with, or distribute

the Library except as expressly provided under this License. Any

attempt otherwise to copy, modify, sublicense, link with, or

distribute the Library is void, and will automatically terminate your

rights under this License. However, parties who have received copies,

or rights, from you under this License will not have their licenses

terminated so long as such parties remain in full compliance.

9. You are not required to accept this License, since you have not

signed it. However, nothing else grants you permission to modify or

distribute the Library or its derivative works. These actions are

prohibited by law if you do not accept this License. Therefore, by

modifying or distributing the Library (or any work based on the

Library), you indicate your acceptance of this License to do so, and

all its terms and conditions for copying, distributing or modifying

the Library or works based on it.

10. Each time you redistribute the Library (or any work based on the

Library), the recipient automatically receives a license from the

original licensor to copy, distribute, link with or modify the Library

subject to these terms and conditions. You may not impose any further

restrictions on the recipients' exercise of the rights granted herein.

You are not responsible for enforcing compliance by third parties with

this License.

11. If, as a consequence of a court judgment or allegation of patent

infringement or for any other reason (not limited to patent issues),

conditions are imposed on you (whether by court order, agreement or

otherwise) that contradict the conditions of this License, they do not

excuse you from the conditions of this License. If you cannot

distribute so as to satisfy simultaneously your obligations under this

License and any other pertinent obligations, then as a consequence you

may not distribute the Library at all. For example, if a patent

license would not permit royalty-free redistribution of the Library by

all those who receive copies directly or indirectly through you, then

the only way you could satisfy both it and this License would be to

refrain entirely from distribution of the Library.

If any portion of this section is held invalid or unenforceable under any

particular circumstance, the balance of the section is intended to apply,

and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any

patents or other property right claims or to contest validity of any

such claims; this section has the sole purpose of protecting the

integrity of the free software distribution system which is

implemented by public license practices. Many people have made

generous contributions to the wide range of software distributed

through that system in reliance on consistent application of that

system; it is up to the author/donor to decide if he or she is willing

to distribute software through any other system and a licensee cannot

impose that choice.

This section is intended to make thoroughly clear what is believed to

be a consequence of the rest of this License.

12. If the distribution and/or use of the Library is restricted in

certain countries either by patents or by copyrighted interfaces, the

original copyright holder who places the Library under this License may add

an explicit geographical distribution limitation excluding those countries,

so that distribution is permitted only in or among countries not thus

excluded. In such case, this License incorporates the limitation as if

written in the body of this License.

13. The Free Software Foundation may publish revised and/or new

versions of the Lesser General Public License from time to time.

Such new versions will be similar in spirit to the present version,

but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number. If the Library

specifies a version number of this License which applies to it and

"any later version", you have the option of following the terms and

conditions either of that version or of any later version published by

the Free Software Foundation. If the Library does not specify a

license version number, you may choose any version ever published by

the Free Software Foundation.

14. If you wish to incorporate parts of the Library into other free

programs whose distribution conditions are incompatible with these,

write to the author to ask for permission. For software which is

copyrighted by the Free Software Foundation, write to the Free

Software Foundation; we sometimes make exceptions for this. Our

decision will be guided by the two goals of preserving the free status

of all derivatives of our free software and of promoting the sharing

and reuse of software generally.

NO WARRANTY

15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO

WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.

EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR

OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY

KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE

IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR

PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE

LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME

THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN

WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY

AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU

FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR

CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE

LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING

RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A

FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF

SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH

DAMAGES.

END OF TERMS AND CONDITIONS

How to Apply These Terms to Your New Libraries

If you develop a new library, and you want it to be of the greatest

possible use to the public, we recommend making it free software that

everyone can redistribute and change. You can do so by permitting

redistribution under these terms (or, alternatively, under the terms of the

ordinary General Public License).

To apply these terms, attach the following notices to the library. It is

safest to attach them to the start of each source file to most effectively

convey the exclusion of warranty; and each file should have at least the

"copyright" line and a pointer to where the full notice is found.

<one line to give the library's name and a brief idea of what it does.>

Copyright (C) <year> <name of author>

This library is free software; you can redistribute it and/or

modify it under the terms of the GNU Lesser General Public

License as published by the Free Software Foundation; either

version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,

but WITHOUT ANY WARRANTY; without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU

Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public

License along with this library; if not, write to the Free Software

Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Also add information on how to contact you by electronic and paper mail.

You should also get your employer (if you work as a programmer) or your

school, if any, to sign a "copyright disclaimer" for the library, if

necessary. Here is a sample; alter the names:

Yoyodyne, Inc., hereby disclaims all copyright interest in the

library `Frob' (a library for tweaking knobs) written by James Random Hacker.

<signature of Ty Coon>, 1 April 1990

Ty Coon, President of Vice

That's all there is to it!

--------------------------------------------------------------------

Expat License

--------------------------------------------------------------------

Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd

and Clark Cooper

Permission is hereby granted, free of charge, to any person obtaining

a copy of this software and associated documentation files (the

"Software"), to deal in the Software without restriction, including

without limitation the rights to use, copy, modify, merge, publish,

distribute, sublicense, and/or sell copies of the Software, and to

permit persons to whom the Software is furnished to do so, subject to

the following conditions:

The above copyright notice and this permission notice shall be included

in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,

EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF

MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.

IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY

CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,

TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE

SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

--------------------------------------------------------------------

NetSnmp License

--------------------------------------------------------------------

Various copyrights apply to this package, listed in 3 separate parts

below. Please make sure that you read all the parts. Up until 2001,

the project was based at UC Davis, and the first part covers all code

written during this time. From 2001 onwards, the project has been

based at SourceForge, and Networks Associates Technology, Inc hold the

copyright on behalf of the wider Net-SNMP community, covering all

derivative work done since then. An additional copyright section has

been added as Part 3 below also under a BSD license for the work

contributed by Cambridge Broadband Ltd. to the project since 2001.

Code has been contributed to this project by many people over

the years it has been in development, and a full list of contributors

can be found in the README file under the THANKS section.

---- Part 1: CMU/UCD copyright notice: (BSD like) -----

Copyright 1989, 1991, 1992 by Carnegie Mellon University

Derivative Work - 1996, 1998-2000

Copyright 1996, 1998-2000 The Regents of the University of California

All Rights Reserved

Permission to use, copy, modify and distribute this software and its

documentation for any purpose and without fee is hereby granted,

provided that the above copyright notice appears in all copies and

that both that copyright notice and this permission notice appear in

supporting documentation, and that the name of CMU and The Regents of

the University of California not be used in advertising or publicity

pertaining to distribution of the software without specific written

permission.

CMU AND THE REGENTS OF THE UNIVERSITY OF CALIFORNIA DISCLAIM ALL

WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED

WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL CMU OR

THE REGENTS OF THE UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY SPECIAL,

INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING

FROM THE LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF

CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN

CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

---- Part 2: Networks Associates Technology, Inc copyright notice (BSD) -----

Copyright (c) 2001-2002, Networks Associates Technology, Inc

All rights reserved.

Redistribution and use in source and binary forms, with or without

modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice,

this list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright

notice, this list of conditions and the following disclaimer in the

documentation and/or other materials provided with the distribution.

Neither the name of the Networks Associates Technology, Inc nor the

names of its contributors may be used to endorse or promote

products derived from this software without specific prior written

permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS

IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,

THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR

PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR

CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,

EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,

PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;

OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR

OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF

ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

---- Part 3: Cambridge Broadband Ltd. copyright notice (BSD) -----

Portions of this code are copyright (c) 2001-2002, Cambridge Broadband Ltd.

All rights reserved.

Redistribution and use in source and binary forms, with or without

modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice,

this list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright

notice, this list of conditions and the following disclaimer in the

documentation and/or other materials provided with the distribution.

The name of Cambridge Broadband Ltd. may not be used to endorse or

promote products derived from this software without specific prior

written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER ``AS IS'' AND ANY

EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR

PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE

LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR

CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF

SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR

BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE

OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN

IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

--------------------------------------------------------------------

OpenLdap License

--------------------------------------------------------------------

The OpenLDAP Public License

Version 2.7, 7 September 2001

Redistribution and use of this software and associated documentation

("Software"), with or without modification, are permitted provided

that the following conditions are met:

1. Redistributions of source code must retain copyright statements

and notices,

2. Redistributions in binary form must reproduce applicable copyright

statements and notices, this list of conditions, and the following

disclaimer in the documentation and/or other materials provided

with the distribution, and

3. Redistributions must contain a verbatim copy of this document.

The OpenLDAP Foundation may revise this license from time to time.

Each revision is distinguished by a version number. You may use

this Software under terms of this license revision or under the

terms of any subsequent revision of the license.

THIS SOFTWARE IS PROVIDED BY THE OPENLDAP FOUNDATION AND ITS

CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,

INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY

AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT

SHALL THE OPENLDAP FOUNDATION, ITS CONTRIBUTORS, OR THE AUTHOR(S)

OR OWNER(S) OF THE SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,

INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,

BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;

LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER

CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT

LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN

ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE

POSSIBILITY OF SUCH DAMAGE.

The names of the authors and copyright holders must not be used in

advertising or otherwise to promote the sale, use or other dealing

in this Software without specific, written prior permission. Title

to copyright in this Software shall at all times remain with

copyright holders.

OpenLDAP is a registered trademark of the OpenLDAP Foundation.

Copyright 1999-2001 The OpenLDAP Foundation, Redwood City,

California, USA. All Rights Reserved. Permission to copy and

distribute verbatim copies of this document is granted.

--------------------------------------------------------------------

OpenSSL License

--------------------------------------------------------------------

LICENSE ISSUES

==============

The OpenSSL toolkit stays under a dual license, i.e. both the conditions of

the OpenSSL License and the original SSLeay license apply to the toolkit.

See below for the actual license texts. Actually both licenses are BSD-style

Open Source licenses. In case of any license issues related to OpenSSL

please contact openssl-core@openssl.org.

OpenSSL License

---------------

====================================================================

Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved.

Redistribution and use in source and binary forms, with or without

modification, are permitted provided that the following conditions

are met:

1. Redistributions of source code must retain the above copyright

notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright

notice, this list of conditions and the following disclaimer in

the documentation and/or other materials provided with the

distribution.

3. All advertising materials mentioning features or use of this

software must display the following acknowledgment:

"This product includes software developed by the OpenSSL Project

for use in the OpenSSL Toolkit. (http://www.openssl.org/)"

4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to

endorse or promote products derived from this software without

prior written permission. For written permission, please contact

openssl-core@openssl.org.

5. Products derived from this software may not be called "OpenSSL"

nor may "OpenSSL" appear in their names without prior written

permission of the OpenSSL Project.

6. Redistributions of any form whatsoever must retain the following

acknowledgment:

"This product includes software developed by the OpenSSL Project

for use in the OpenSSL Toolkit (http://www.openssl.org/)"

THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY

EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR

PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR

ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,

SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT

NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;

LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)

HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,

STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)

ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED

OF THE POSSIBILITY OF SUCH DAMAGE.

====================================================================

This product includes cryptographic software written by Eric Young

(eay@cryptsoft.com). This product includes software written by Tim

Hudson (tjh@cryptsoft.com).

Original SSLeay License

-----------------------

Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)

All rights reserved.

This package is an SSL implementation written

by Eric Young (eay@cryptsoft.com).

The implementation was written so as to conform with Netscapes SSL.

This library is free for commercial and non-commercial use as long as

the following conditions are aheared to. The following conditions

apply to all code found in this distribution, be it the RC4, RSA,

lhash, DES, etc., code; not just the SSL code. The SSL documentation

included with this distribution is covered by the same copyright terms

except that the holder is Tim Hudson (tjh@cryptsoft.com).

Copyright remains Eric Young's, and as such any Copyright notices in

the code are not to be removed.

If this package is used in a product, Eric Young should be given attribution

as the author of the parts of the library used.

This can be in the form of a textual message at program startup or

in documentation (online or textual) provided with the package.

Redistribution and use in source and binary forms, with or without

modification, are permitted provided that the following conditions

are met:

1. Redistributions of source code must retain the copyright

notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright

notice, this list of conditions and the following disclaimer in the

documentation and/or other materials provided with the distribution.

3. All advertising materials mentioning features or use of this software

must display the following acknowledgement:

"This product includes cryptographic software written by

Eric Young (eay@cryptsoft.com)"

The word 'cryptographic' can be left out if the rouines from the library

being used are not cryptographic related :-).

4. If you include any Windows specific code (or a derivative thereof) from

the apps directory (application code) you must include an acknowledgement:

"This product includes software written by Tim Hudson (tjh@cryptsoft.com)"

THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND

ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE

FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS

OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)

HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT

LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY

OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF

SUCH DAMAGE.

The licence and distribution terms for any publically available version or

derivative of this code cannot be changed. i.e. this code cannot simply be

copied and put under another distribution licence

[including the GNU Public Licence.]

--------------------------------------------------------------------

Xerces 2_6 License

--------------------------------------------------------------------

Apache License

Version 2.0, January 2004

http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction,

and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by

the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all

other entities that control, are controlled by, or are under common

control with that entity. For the purposes of this definition,

"control" means (i) the power, direct or indirect, to cause the

direction or management of such entity, whether by contract or

otherwise, or (ii) ownership of fifty percent (50%) or more of the

outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity

exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications,

including but not limited to software source code, documentation

source, and configuration files.

"Object" form shall mean any form resulting from mechanical

transformation or translation of a Source form, including but

not limited to compiled object code, generated documentation,

and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or

Object form, made available under the License, as indicated by a

copyright notice that is included in or attached to the work

(an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object

form, that is based on (or derived from) the Work and for which the

editorial revisions, annotations, elaborations, or other modifications

represent, as a whole, an original work of authorship. For the purposes

of this License, Derivative Works shall not include works that remain

separable from, or merely link (or bind by name) to the interfaces of,

the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including

the original version of the Work and any modifications or additions

to that Work or Derivative Works thereof, that is intentionally

submitted to Licensor for inclusion in the Work by the copyright owner

or by an individual or Legal Entity authorized to submit on behalf of

the copyright owner. For the purposes of this definition, "submitted"

means any form of electronic, verbal, or written communication sent

to the Licensor or its representatives, including but not limited to

communication on electronic mailing lists, source code control systems,

and issue tracking systems that are managed by, or on behalf of, the

Licensor for the purpose of discussing and improving the Work, but

excluding communication that is conspicuously marked or otherwise

designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity

on behalf of whom a Contribution has been received by Licensor and

subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of

this License, each Contributor hereby grants to You a perpetual,

worldwide, non-exclusive, no-charge, royalty-free, irrevocable

copyright license to reproduce, prepare Derivative Works of,

publicly display, publicly perform, sublicense, and distribute the

Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of

this License, each Contributor hereby grants to You a perpetual,

worldwide, non-exclusive, no-charge, royalty-free, irrevocable

(except as stated in this section) patent license to make, have made,

use, offer to sell, sell, import, and otherwise transfer the Work,

where such license applies only to those patent claims licensable

by such Contributor that are necessarily infringed by their

Contribution(s) alone or by combination of their Contribution(s)

with the Work to which such Contribution(s) was submitted. If You

institute patent litigation against any entity (including a

cross-claim or counterclaim in a lawsuit) alleging that the Work

or a Contribution incorporated within the Work constitutes direct

or contributory patent infringement, then any patent licenses

granted to You under this License for that Work shall terminate

as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the

Work or Derivative Works thereof in any medium, with or without

modifications, and in Source or Object form, provided that You

meet the following conditions:

(a) You must give any other recipients of the Work or

Derivative Works a copy of this License; and

(b) You must cause any modified files to carry prominent notices

stating that You changed the files; and

(c) You must retain, in the Source form of any Derivative Works

that You distribute, all copyright, patent, trademark, and

attribution notices from the Source form of the Work,

excluding those notices that do not pertain to any part of

the Derivative Works; and

(d) If the Work includes a "NOTICE" text file as part of its

distribution, then any Derivative Works that You distribute must

include a readable copy of the attribution notices contained

within such NOTICE file, excluding those notices that do not

pertain to any part of the Derivative Works, in at least one

of the following places: within a NOTICE text file distributed

as part of the Derivative Works; within the Source form or

documentation, if provided along with the Derivative Works; or,

within a display generated by the Derivative Works, if and

wherever such third-party notices normally appear. The contents

of the NOTICE file are for informational purposes only and

do not modify the License. You may add Your own attribution

notices within Derivative Works that You distribute, alongside

or as an addendum to the NOTICE text from the Work, provided

that such additional attribution notices cannot be construed

as modifying the License.

You may add Your own copyright statement to Your modifications and

may provide additional or different license terms and conditions

for use, reproduction, or distribution of Your modifications, or

for any such Derivative Works as a whole, provided Your use,

reproduction, and distribution of the Work otherwise complies with

the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,

any Contribution intentionally submitted for inclusion in the Work

by You to the Licensor shall be under the terms and conditions of

this License, without any additional terms or conditions.

Notwithstanding the above, nothing herein shall supersede or modify

the terms of any separate license agreement you may have executed

with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade

names, trademarks, service marks, or product names of the Licensor,

except as required for reasonable and customary use in describing the

origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or

agreed to in writing, Licensor provides the Work (and each

Contributor provides its Contributions) on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or

implied, including, without limitation, any warranties or conditions

of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A

PARTICULAR PURPOSE. You are solely responsible for determining the

appropriateness of using or redistributing the Work and assume any

risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,

whether in tort (including negligence), contract, or otherwise,

unless required by applicable law (such as deliberate and grossly

negligent acts) or agreed to in writing, shall any Contributor be

liable to You for damages, including any direct, indirect, special,

incidental, or consequential damages of any character arising as a

result of this License or out of the use or inability to use the

Work (including but not limited to damages for loss of goodwill,

work stoppage, computer failure or malfunction, or any and all

other commercial damages or losses), even if such Contributor

has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing

the Work or Derivative Works thereof, You may choose to offer,

and charge a fee for, acceptance of support, warranty, indemnity,

or other liability obligations and/or rights consistent with this

License. However, in accepting such obligations, You may act only

on Your own behalf and on Your sole responsibility, not on behalf

of any other Contributor, and only if You agree to indemnify,

defend, and hold each Contributor harmless for any liability

incurred by, or claims asserted against, such Contributor by reason

of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following

boilerplate notice, with the fields enclosed by brackets "[]"

replaced with your own identifying information. (Don't include

the brackets!) The text should be enclosed in the appropriate

comment syntax for the file format. We also recommend that a

file or class name and description of purpose be included on the

same "printed page" as the copyright notice for easier

identification within third-party archives.

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");

you may not use this file except in compliance with the License.

You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

--------------------------------------------------------------------

ICU License

--------------------------------------------------------------------

ICU License - ICU 1.8.1 and later

COPYRIGHT AND PERMISSION NOTICE

Copyright (c) 1995-2003 International Business Machines Corporation and others

All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a

copy of this software and associated documentation files (the

"Software"), to deal in the Software without restriction, including

without limitation the rights to use, copy, modify, merge, publish,

distribute, and/or sell copies of the Software, and to permit persons

to whom the Software is furnished to do so, provided that the above

copyright notice(s) and this permission notice appear in all copies of

the Software and that both the above copyright notice(s) and this

permission notice appear in supporting documentation.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS

OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF

MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT

OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR

HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL

INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING

FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,

NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION

WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Except as contained in this notice, the name of a copyright holder

shall not be used in advertising or otherwise to promote the sale, use

or other dealings in this Software without prior written authorization

of the copyright holder.

--------------------------------------------------------------------------------

All trademarks and registered trademarks mentioned herein are the property of their respective owners.


コレクションのアクセス

COM オブジェクトサポート >

COM オブジェクトによっては、サブオブジェクトのコレクションを持つものがあります。コレクションは通常 ID フィールドにより識別されますが、ID が非連続的な場合には、ID をすべて知っていない限りコレクションをすべてアクセスすることができませんでした。

コールCOM処理コマンドで このようなコレクションのサブオブジェクトを扱う場合は、「MGItemSequential」という名前の（Magic が追加した）メソッドを指定してください。このメソッドにより、非連続なコレクションであっても、1から始まる連続なインデックス番号を指定してアクセスできるようになります。


コンポーネントジェネレータ iSeries 作成されたコンポーネント

作成されたiSeries コンポーネント

コンポーネント > コンポーネントジェネレータ > iSeries コンポーネントジェネレータ

iSeriesウィザードを終了すると、以下のようになります。

  • プログラムと関数は、各要求されたiSeriesオプションに対応して作成されます。

  • 各プログラムはホストアドレス、ユーザID、およびパスワード用の項目が定義されます。

  • 関数は、定義されたパラメータと一致したパラメータを持っています。パラメータが戻り値として定義された場合、コール処理コマンドのInput/Outputに割り当てられます。

  • ウィザードは、dll関数'@MGEAC32.iseries'のために[コールUDP]処理コマンドを作成します。

  • 一般的なユーザ機能は、ユーザの選択内容に基づいて作成されます。

  • iSeries ISAMゲートウェイが作成されます。これはQTEMPライブラリをアクセスします。


iSeries Composite Generator

Components > Composite Generators

The iSeries wizard creates an eDeveloper component that access objects in iSeries.

The following steps will guide you through the iSeries wizard:

  1. Access the composite generators by following the Main Wizard Module steps.

  2. From the Component Selection screen, select iSeries. Click Next.

  3. Fill in the Component Details Display screen. Click Next.

  4. In the Interface with an iSeries Server screen, enter the details about the host that you will work with. Click Next.

  5. In the Define the type of component screen, select one of the following:

    • Generic component - a component with standard iSeries connectivity programs.

    • Interface with native programs - a component that accesses a specific library. You can also select to include generic programs.

  6. Click Next.

  7. If you selected Generic component, the Choose the generic programs screen appears.

  8. If you selected Interface with native programs and the Include generic programs, the Choose the generic programs screen appears and then the Display Libraries screen appears.

  9. If you just selected Interface with native programs, the Display Libraries screen appears.

  7. In the Choose the generic programs screen, initially, all of the generic programs will be selected. Decide which ones you want to leave as selected and which, if any, you want to remove. The generic programs are as follows:

    8. Displayed Name | Description
Access IFS File | This will access an IFS file
Copy Spooled File | This will save a spooled file to a database file
End Session | This will end a session to the iSeries host
Execute iSeries Command | This executes an iSeries command
Retrieve System Values | When provided with a system value, this will be return the current value
Start Session | This will start a session to the iSeries host

  8. The Display Libraries screen displays the libraries that the user is able to access for this particular server. One library must be requested. Select a library and click Next.

  9. From the Choose the programs screen, select the programs that you want to use.

  10. Click the Parameters button to define and order the parameter list for a particular program. From the Defining Parameters screen, you can also edit or add new parameters.

  11. Click Finish to generate the iSeries component.


eDeveloper Data Types - Btrieve

Magicのデータタイプ

Data Management > SQL Considerations > Configuration and Performance > Transactions > eDeveloper SQL Databases > Btrieve Database Gateway

Magicの記憶形式 | Magicのデータ型 | Magicの記憶サイズ | Pervasiveのデータタイプ
文字型 |  |  |
String | n,1-4088 | n,1-4088 | CHAR
Lstring | n, 1-254 | n, 2-255 | LSTRING
 | n, 255-4087 | n, 256-4088 | CHAR
Zstring | n, 1-254 | n, 2-255 | ZSTRING
 | n, 255-4087 | n, 256-4088 | CHAR
数値型 |  |  |
Signed Integer | n, 1-9 | n, 2-4 | INTEGER
Unsigned Integer | n, 1-9 | n, 2-4 | UNSIGNED
Float | n, 1-15 | n, 4-8 | FLOAT
Float MS-Basic | n, 1-16 | n, 4-8 | BFLOAT
Float Decimal | n, 1-14 | n, 4-8 | CHAR
Packed Decimal | n, 1-37 | n/2+1 | DECIMAL
Numeric | n, 1-38 | n, 1-38 | NUMERIC
Character Number | n, 1-37 | n+1 | CHAR
String Number | n, 1-38 | n, 1-38 | CHAR
Magic Number | n, 1-38 | n/2+1 | CHAR
C-ISAM Decimal | n, 1-38 | n/2+1 | CHAR
Extended float | n, 1-14 | 8 | CHAR
論理型 |  |  |
Integer logical | n | n, 1-2 | LOGICAL
String logical | n | n, 1 | CHAR
日付型 |  |  |
Integer date | ##/##/#### | 4 | INTEGER
Integer date - 1901 | ##/##/#### | 4 | INTEGER
String date | ##/##/#### | 6,8 | CHAR
YYMD date | ##/##/#### | 4 | DATE
Magic date | ##/##/#### | 4 | CHAR
Magic date - 1901 | ##/##/#### | 4 | CHAR
時刻型 |  |  |
Integer time | HH:MM:SS | 4 | INTEGER
String time | HH:MM:SS | 6 | CHAR
HMSH time | HH:MM:SS | 4 | TIME
Magic time | HH:MM:SS | 4 | CHAR
Unicode型 |  |  |
String | n,1-2044 | n*2 | WSTRING
Zstring | n,1-2043 | n*2+2 | WZSTRING


SQL考慮事項 SQLDB Pervasive Magicデータタイプ 数値

数値型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Pervasive SQL データベースゲートウェイ > Magicのデータタイプ

次の表は、Magicの数値型属性とPervasive SQLで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの 記憶型式 | Magicの書式 | Magicの 保存サイズ | Pervasive SQLの データタイプ
Signed Integer | n,1-4 | 2 | SMALLINT
 | n, 5-9 | 4 | INTEGER
Unsigned Integer | n, 1-2 | 1 | BINARY
 | n, 3-4 | 2 | BINARY
 | n, 5-9 | 4 | BINARY
Float | n, 1-7 | 4 | REAL
 | n, 8-16 | 8 | DOUBLE PRECISION
Float MS-Basic | n, 1-7 | 4 | BINARY
 | n, 8-16 | 8 | BINARY
Float Decimal | n, 1-7 | 4 | BINARY
 | n, 8-16 | 8 | BINARY
Packed Decimal | n, 1-10 | 2*n-1 | BINARY
Numeric | n ,1-18 | n | BINARY
Character Number | n, 1-18 | n-1 | BINARY
String Number | n, 1-19 | n+1 | BINARY
Magic Number | n, 1-18 | n/2+1 | BINARY
C-Isam Decimal | n, 1-32 | n/2+1 | BINARY

注意：

  • nは、指定された書式番号です。

  • Magicでは、18桁までの数字がサポートされます。


エラー処理 エラーハンドラの作成 処理

処理

データ管理 > エラー処理 > エラーハンドラの作成

フロー処理テーブルにあるコマンド数が表示されます。


SQL考慮事項 SQLDB MySQL Magicデータタイプ 文字

文字型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MySQL データベースゲートウェイ > Magicのデータタイプ

次の表は、Magicの文字型属性とMySQLで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの 記憶型式 | Magicの書式 | Magicの 保存サイズ | MySQLの データタイプ
String | n,1-32700 | n,1-32700 | SQL_LONGVARBINARY
Lstring | n, 1-255 | n+1, 2-256 | SQL_BINARY
Zstring | n, 1-7999 | n+1, 2-8000 | SQL_VARCHAR
 | n, 8001-32700 | n+1, 8002-32701 | SQL_LONGVARCHAR
String Memo | n, 1-32700 | n+2 | SQL_VARBINARY
Magic Memo | n, 32700 | n+2 | SQL_LONGVARBINARY

注意：

nは、指定された書式番号です。


SQL考慮事項 SQLDB Pervasive Magicデータタイプ 文字

文字型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Pervasive SQL データベースゲートウェイ > Magicのデータタイプ

次の表は、Magicの文字型属性とPervasive SQLで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの 記憶型式 | Magicの書式 | Magicの 保存サイズ | Pervasive SQLの データタイプ
String | n,1-8000 | n,1-8000 | CHAR
 | n, 8001-32700 | n, 8001-32700 | TEXT
Lstring | n, 1-255 | n+1, 2-256 | BINARY
Zstring | n, 1-8000 | n+1, 2-8001 | CHAR
 | n, 8001-32700 | n+1, 8002-32701 | TEXT
String Memo | n, 1-7998 | n+2 | VARBINARY
Magic Memo | n, 7999 以上 | n+2 | IMAGE

注意：

nは、指定された書式番号です。


SQL考慮事項 SQLDB MySQL Magicデータタイプ BLOB

BLOB型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MySQL データベースゲートウェイ > Magicのデータタイプ

次の表は、MagicのBLOB属性とODBCで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの記憶型式 | 内容 | Magicの 保存サイズ | MySQLの データタイプ
BLOB | バイナリ |  | SQL_LONGVARBINARY
BLOB | ANSI |  | SQL_LONGVARCHAR


SQL考慮事項 SQLDB Pervasive Magicデータタイプ BLOB

BLOB型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Pervasive SQL データベースゲートウェイ > Magicのデータタイプ

次の表は、MagicのBLOB属性とPervasive SQLで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの記憶型式 | Magicの書式 | Magicの 保存サイズ | Pervasive SQLの データタイプ
Binary Large Object |  | 12 (デフォルト) | IMAGE


SQL考慮事項 SQLDB MySQL Magicデータタイプ 日付

日付型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MySQL データベースゲートウェイ > Magicのデータタイプ

次の表は、Magicの日付型属性とMySQLで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの 記憶型式 | Magicの書式 | Magicの 保存サイズ | MySQLの データタイプ
String Date | ##/##/#### | 8 | SQL_DATE
Integer Date | ##/##/#### | 4 | SQL_INTEGER
Integer Date 1901 | ##/##/#### | 4 | SQL_INTEGER
YYMMDD Date | ##/##/#### | 4 | SQL_BINARY
Magic Date | ##/##/#### | 4 | SQL_BINARY
Magic Date 1901 | ##/##/#### | 4 | SQL_BINARY


SQL考慮事項 SQLDB Pervasive Magicデータタイプ 日付

日付型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Pervasive SQL データベースゲートウェイ > Magicのデータタイプ

次の表は、Magicの日付型属性とPervasive SQLで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの 記憶型式 | Magicの書式 | Magicの 保存サイズ | Pervasive SQLの データタイプ
String Date | ##/##/#### | 8 | SQL_CHAR
Integer Date | ##/##/#### | 4 | INTEGER
Integer Date 1901 | ##/##/#### | 4 | INTEGER
YYMMDD Date | ##/##/#### | 4 | BINARY
Magic Date | ##/##/#### | 4 | BINARY
Magic Date 1901 | ##/##/#### | 4 | BINARY


SQL考慮事項 SQLDB MySQL Magicデータタイプ

Magicのデータタイプ

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MySQL データベースゲートウェイ

Magic属性とサポートされる保存タイプ、およびMySQLで有効なデータ型の詳細については、以下のトピックを参照してください。

文字型

数値型

論理型

日付型

時刻型

BLOB型

注意: MySQL は、Unicode データ型をサポートしません。


SQL考慮事項 SQLDB Pervasive Magicデータタイプ

Magicのデータタイプ

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Pervasive SQL データベースゲートウェイ

Magic属性とサポートされる保存タイプ、およびPerviasive SQLで有効なデータ型の詳細については、以下のトピックを参照してください。

文字型

数値型

論理型

日付型

時刻型

BLOB型


SQL考慮事項 SQLDB MySQL ロック

ロック

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MySQL データベースゲートウェイ

MySQLには、明示的なテーブルロックはありません。したがって、共有モードが「N=なし」や「R=読込」に設定しても機能しません。基になっているデータベースエンジンによってロックが実行されます。


SQL考慮事項 SQLDB Pervasive ロック

ロック

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Pervasive SQL データベースゲートウェイ

Pervasive SQLには、明示的なテーブルロックはありません。したがって、共有モードが「N=なし」や「R=読込」に設定しても機能しません。基になっているデータベースエンジンによってロックが実行されます。


SQL考慮事項 SQLDB MySQL Magicデータタイプ 論理

論理型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MySQL データベースゲートウェイ > Magicのデータタイプ

次の表は、Magicの論理型属性とMySQLで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの 記憶型式 | Magicの書式 | Magicの 保存サイズ | MySQLの データタイプ
Integer Logical | 5 | 1 | SQL_BIT
String Logical | 5 | 1 | SQL_BINARY


SQL考慮事項 SQLDB Pervasive Magicデータタイプ 論理

論理型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Pervasive SQL データベースゲートウェイ > Magicのデータタイプ

次の表は、Magicの論理型属性とPervasive SQLで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの 記憶型式 | Magicの書式 | Magicの 保存サイズ | Pervasive SQLの データタイプ
Integer Logical | 5 | 1 | BIT
 | 5 | 2 | SMALLINT
String Logical | 5 | 1 | BINARY


SQL考慮事項 SQLDB ORACLE LONG

LONGおよびLONG RAWデータタイプ

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Oracleデータベースゲートウェイ

Oracleテーブルで[定義取得]を実行したら、LONGまたはLONG RAWデータタイプのカラムの適切な書式を入力しなければなりません。デフォルトでは、このカラムを受け取るフィールドの書式は0になっていますが、この書式は無効なので、1から32000までの有効な書式を入力する必要があります。


SQL考慮事項 SQLDB MySQL データタイプ

MySQLのデータタイプ

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MySQL データベースゲートウェイ

次の表は、MySQLテーブルに対するMagicの[定義取得]処理コマンドの結果と、My SQLのデータタイプに対応するMagicのデータタイプの一覧です。

MySQLのデータタイプ | 型 | Magicの保存タイプ | 保存サイズ | 書式
SQL_CHAR | 文字型 | Zstring | n+1, 2- 256 | n, 1-255
SQL_VARCHAR | 文字型 | Zstring | n+1, 2- 256 | n, 1-255
SQL_LONGVARCHAR | 文字型 | Zstring | デフォルト(0) | デフォルト (0)

注意：

テーブルの定義を取得したら、SQL_LONGVARCHARデータタイプカラムの書式を、アプリケーションに適したサイズに設定する必要があります。

SQL_BIGINT | 数値型 | Signed Integer | 4 | 10
SQL_INTEGER | 数値型 | Signed Integer | 4 | 10
SQL_SMALLINT | 数値型 | Signed Integer | 2 | 5
SQL_TINYINT | 数値型 | Unsigned Integer | 1 | 3
SQL_DOUBLE | 数値型 | Float | 8 | [DBMS特性]の[浮動小数点]特性に基づく（デフォルト10.3）
SQL_FLOAT | 数値型 | Float | 4 | 5.2
SQL_REAL | 数値型 | Float | 4 | 5.2
SQL_NUMERIC | 数値型 | Float | 8 | [DBMS特性]の[浮動小数点]特性に基づく（デフォルト10.3）
SQL_DECIMAL | 数値型 | Float | 8 | [DBMS特性]の[浮動小数点]特性に基づく（デフォルト10.3）
SQL_DATE | 日付型 | String Date | 8 | DD/MM/YYYY
SQL_TIME | 時刻型 | String Time | 6 | ##:##:##
SQL_BINARY | 文字型 | Zstring | N+1, 2- 256 | n, 1-255
SQL_VARBINARY | 文字型 | Zstring | N+1, 2- 256 | n, 1-255
SQL_LONGVARBINARY | BLOB 型 | Binary Large Object | Default (12) |
SQL_BIT | 論理型 | Integer Logical | 1 | 5
TIMESTAMP | 日付型 | String Date | 8 | DD/MM/YYYY


SQL考慮事項 SQLDB MySQL

MySQL データベースゲートウェイ

データ管理 > SQLに関する考慮事項 > Magic SQL データベース

参照

MySQLのデータタイプ

MySQLのデータタイプ

Magicのデータタイプ

ロック

ビュー


SQL考慮事項 SQLDB MySQL Magicデータタイプ 数値

数値型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MySQL データベースゲートウェイ > Magicのデータタイプ

次の表は、Magicの数値型属性とMySQLで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの 記憶型式 | Magicの書式 | Magicの 保存サイズ | MySQLの データタイプ
Signed Integer | n,1-4 | 2 | SQL_SMALLINT
 | n, 5-9 | 4 | SQL_INTEGER
Unsigned Integer | n, 1-2 | 1 | SQL_TINYINT
 | n, 3-4 | 2 | SQL_SMALLINT
 | n, 5-9 | 4 | SQL_SMALLINT
Float | n, 1-7 | 4 | SQL_FLOAT
 | n, 8-16 | 8 | SQL_DOUBLE
Float MS-Basic | n, 1-7 | 4 | SQL_BINARY
 | n, 8-16 | 8 | SQL_BINARY
Float Decimal | n, 1-7 | 4 | SQL_BINARY
 | n, 8-16 | 8 | SQL_BINARY
Packed Decimal | n, 1-10 | 2*n-1 | SQL_BINARY
Numeric | n ,1-18 | n | SQL_BINARY
Character Number | n, 1-18 | n-1 | SQL_BINARY
String Number | n, 1-19 | n+1 | SQL_BINARY
Magic Number | n, 1-18 | n/2+1 | SQL_BINARY
C-Isam Decimal | n, 1-32 | n/2+1 | SQL_BINARY
Extended Float | n, 1-15 | 8 | SQL_BINARY

注意：

  • nは、指定された書式番号です。

  • Magicでは、18桁までの数字がサポートされます。


SQL考慮事項 SQLDB Pervasive データタイプ

Pervasive SQLのデータタイプ

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Pervasive SQL データベースゲートウェイ

次の表は、Pervasive SQLテーブルに対するMagicの[定義取得]処理コマンドの結果と、Pervasive SQLのデータタイプに対応するMagicのデータタイプの一覧です。

Pervasive SQLの データタイプ | 型 | Magicの保存タイプ | 保存サイズ | 書式
SQL_CHAR | 文字型 | Zstring | n+1, 2- 256 | n, 1-255
SQL_VARCHAR | 文字型 | Zstring | n+1, 2- 256 | n, 1-255
SQL_LONGVARCHAR | 文字型 | Zstring | デフォルト(0) | デフォルト(0)(*1)
SQL_BIGINT | 数値型 | Signed Integer | 4 | 10
SQL_INTEGER | 数値型 | Signed Integer | 4 | 10
SQL_SMALLINT | 数値型 | Signed Integer | 2 | 5
SQL_TINYINT | 数値型 | Unsigned Integer | 1 | 3
SQL_DOUBLE | 数値型 | Float | 8 | [DBMS特性]の[浮動小数点]特性に基づく（デフォルト10.3）
SQL_FLOAT | 数値型 | Float | 4 | 5.2
SQL_REAL | 数値型 | Float | 4 | 5.2
SQL_NUMERIC | 数値型 | Float | 8 | [DBMS特性]の[浮動小数点]特性に基づく（デフォルト10.3）
SQL_DECIMAL | 数値型 | Float | 8 | [DBMS特性]の[浮動小数点]特性に基づく（デフォルト10.3）
SQL_DATE | 日付型 | String Date | 8 | DD/MM/YYYY
SQL_TIME | 時刻型 | String Time | 6 | ##:##:##
SQL_BINARY | 文字型 | Zstring | N+1, 2- 256 | n, 1-255
SQL_VARBINARY | 文字型 | Zstring | N+1, 2- 256 | n, 1-255
SQL_LONGVARBINARY | BLOB | Binary Large Object | Default (12) |
SQL_BIT | 論理型 | Integer Logical | 1 | 5
TIMESTAMP | 日付型 | String Date | 8 | DD/MM/YYYY

注意：

*1…テーブルの定義を取得したら、SQL_LONGVARCHARデータタイプカラムの書式を、アプリケーションに適したサイズに設定する必要があります。

Pervasive SQLは、Unicodeデータ型をサポートしていません。


SQL考慮事項 SQLDB Pervasive

Pervasive SQL データベースゲートウェイ

データ管理 > SQLに関する考慮事項 > Magic SQL データベース

Pervasive SQLを使用して作業する際のMagicの機能については、以下のトピックを参照してください。

Pervasive SQLのデータタイプ

Magicのデータタイプ

ロック

ビュー


SQL考慮事項 命名規約 API実装 PervasiveSQL

Pervasive SQL

データ管理 > SQLに関する考慮事項 > Magicゲートウェイの命名規則 > Magic のAPIの実装とバージョン

Pervasive.SQL 2000/V8 のISAM エンジンにはPervasive.SQL 2000ゲートウェイ、SQLエンジンにはODBCゲートウェイを使用することで、両方のインタフェースをサポートします。


SQL考慮事項 SQLDB ODBC PostgreSQL

PostgreSQL

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > ODBC データベースゲートウェイ

PostgreSQL DBMSにアクセスするには、ODBCゲートウェイを使用します。ただし、PostGreSQLの制限のため、降順インデックスを作成することができません。


SQL考慮事項 SQLDB MySQL Magicデータタイプ 時刻

時刻型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MySQL データベースゲートウェイ > Magicのデータタイプ

次の表は、Magicの時刻型属性とMySQLで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの 記憶型式 | Magicの書式 | Magicの 保存サイズ | MySQLの データタイプ
String Time | HH:MM:SS | 6 | SQL_TIME
Integer Time | HH:MM:SS | 4 | SQL_INTEGER
HMSH Time | HH:MM:SS | 4 | SQL_BINARY
Magic Time | HH:MM:SS | 4 | SQL_BINARY

注意：

MagicのString TimeをMySQLのDATETIMEデータ型にマップするには、[タイプ]特性に「MGTIME」を指定することもできます。


SQL考慮事項 SQLDB Pervasive Magicデータタイプ 時刻

時刻型

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Pervasive SQL データベースゲートウェイ > Magicのデータタイプ

次の表は、Magicの時刻型属性とPervasive SQLで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magicの 記憶型式 | Magicの書式 | Magicの 保存サイズ | Pervasive SQLの データタイプ
String Time | HH:MM:SS | 6 | CHAR
Integer Time | HH:MM:SS | 4 | INTEGER
HMSH Time | HH:MM:SS | 4 | BINARY
Magic Time | HH:MM:SS | 4 | BINARY

注意：

MagicのString TimeをPervasive SQLのDATETIMEデータ型にマップするには、[タイプ]特性に「MGTIME」を指定することもできます。


SQL考慮事項 SQLDB MySQL ビュー

ビュー

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MySQL データベースゲートウェイ

ビューには、仮想の一意インデックスを定義する必要があります。ビューではINSERT、UPDATEおよびDELETE操作を行うことができます。Magicでは、[ビュー]は通常のテーブルとみなされることに注意してください。Magicを使用して名前の変更または変換操作を実行しないでください。Magicを使用して名前の変更または変換操作を実行すると、エラーメッセージが表示され、データベース内のビューの変換や名前の変更は行われません。


SQL考慮事項 SQLDB Pervasive ビュー

ビュー

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > Pervasive SQL データベースゲートウェイ

ビューには、仮想の一意インデックスを定義する必要があります。ビューではINSERT、UPDATEおよびDELETE操作を行うことができます。Magicでは、[ビュー]は通常のテーブルとみなされることに注意してください。Magicを使用して名前の変更または変換操作を実行しないでください。Magicを使用して名前の変更または変換操作を実行すると、エラーメッセージが表示され、データベース内のビューの変換や名前の変更は行われません。


変数項目特性 汎用

汎用

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性

データビューエディタ > 変数項目特性

[汎用]セクションには、以下の特性があります。

項目番号

項目名

位置付

範囲

更新形式 （プログラムの項目定義でのみ有効）

代入


データソース テーブルソース カラム 特性 入力 複数行編集

複数行編集

データソース > データソースタイプ > テーブルソース > カラムテーブル > カラム特性 > 入力

[エディット]コントロールに複数行のテキストを含めることができるかどうかを指定します。


XMLソース ビュー アイコン

[ビュー]タブのアイコン

データソース > データソースタイプ > XMLソース > ビュー

[ビュー]タブには、以下のアイコンが表示されます。

  1. 単一要素

  2. 複合要素

  3. 単一要素の繰り返し

  4. 複合要素の繰り返し

  5. 選択不可能な単一要素

  6. 選択不可能な複合要素

  7. 選択不可能な単一要素の繰り返し

  8. 選択不可能な複合要素の繰り返し

  9. ビュー内の単一要素

  10. ビュー内の複合要素

  11. ビュー内の単一要素の繰り返し

  12. ビュー内の複合要素の繰り返し


データビューエディタ 項目特性 更新形式

更新形式

データビューエディタ > 項目特性

[更新形式]特性は、[プログラム]リポジトリの[カラム特性]に表示されます。この特性には、以下の値が設定できます。

  • A=値更新 …… Ver8以前のMagicで有効な固定値による更新(FLD1=X)

  • D=差分更新 …… 差分による更新を行います。(FLD1=FLD1+X)

  • T=テーブルに依存 …… [データ]リポジトリの[カラム特性]の[更新形式]特性に依存します。

この特性は、通常の記憶形式を持っていて、SQLテーブルと関連している数値型の項目でのみ有効です。この特性は、タスクのトランザクションモードが「遅延」や「ネスト遅延」に設定されていたり、実行時に「遅延」と評価される「親と同じ」に設定される場合に有効です。ISAMテーブルではサポートされません。

例：FLD1 という項目をX という値に更新する場合、（FLD1=X）の形式でコマンドを発行します。


項目特性 項目名

項目名

データソース > データソースタイプ > テーブルソース > [カラム]タブ > カラム特性 > 汎用

データビューエディタ > 変目特性

ここには、カラムまたは項目名が表示されます。タスク階層内に同じカラムが複数定義されている場合、項目名を変更することで区別しやすくなります。

変数またはパラメータ項目の場合、デフォルト値は空白です。


項目特性 項目番号

項目番号

データソース > データソースタイプ > テーブルソース > [カラム]タブ > カラム特性 > 汎用

データビューエディタ > 項目特性

[項目番号]カラムをダブルクリックすると[カラム選択]テーブルが表示されます。ここからメインソースやリンクテーブルのカラム項目を選択することができます。変数項目の場合は、表示のみで入力できません。

カラムを追加する場合のみ、[カラム選択]テーブルでマルチマーキングすることで複数のカラムを一度に選択することができます。一度設定したカラムを変更する場合は、マルチマーキングできません。


項目特性 代入

代入

データソース > データソースタイプ > テーブルソース > [カラム]タブ > カラム特性 > 汎用

データビューエディタ > 項目特性

ここには、式を示す番号を指定します。実行時には、ここで指定した番号の式が評価され、その結果の値が、この項目の初期値として格納されます。この特性の値を「0」にしておくと、式は使用されません。

設定された値が他の項目値に依存する場合、これらの値が変更されると再計算が実行されます。

[代入]特性は、表計算ソフトのセルに式を割り当てるように、式によって計算された値をMagicのデータ項目に割り当てるものです。

[代入]特性に定義する式には、「=」は必要ありません。指定された値は自動的に項目に代入されます。

例えば、項目「注文合計」の初期値として「価格*量」を設定する必要がある場合、単に[代入]特性に「価格*量」で定義された式を割り当てるだけで済みます。

参照

代入特性の動作

非手続き型方式での代入特性値による自動再計算


項目特性 位置付け

位置付：最小/最大

データソース > データソースタイプ > テーブルソース > [カラム]タブ > カラム特性 > 汎用

データビューエディタ > 項目特性

[位置付：最小]特性には最小値、[位置付：最大]特性には最大値が返る式を指定します。実行時には、この最小値と最大値の間にあるレコードが検索され、最初に見つかったレコードがデータビューで位置付されます。式は、その項目のデータ型と同じデータ型の値が返るようにします。

論理条件を使用して最初のレコードの位置付を行いたい時には、[範囲／位置付]ウィンドウの[位置付式]特性で指定できます。位置付式は、データビュー自身に影響しません。

オンラインタスクでの位置付の後、レコードがどのように表示されるかは、[動作環境]ダイアログの[カーソルの画面中央位置付]欄の設定によります。このパラメータの値が「Yes」の場合、位置付されたレコードは画面の中央に表示されます。また、カーソルは、そのレコードの最初のパーク可能項目に置かれます。[カーソルの画面中央位置付]パラメータの値が「No」の時には、位置付されたレコードは画面の一番上に表示されます。

位置付の場合、エンドユーザは実行時、位置付式（最小／最大）で指定された範囲以外のレコードを表示することができます。また、範囲外のレコードにカーソルを置くこともできます。

位置付式（最小／最大）を指定し、その項目がタスクのインデックス項目、またはインデックスセグメントで、位置付の実行時に条件を満たすレコードが見つからなかった時には、位置付式の最大より上位のインデックスを持つレコードのうち、最初のレコードにカーソルが位置付けられます。また、「レコードが見つかりません-次のレコードに位置付を行います.」というメッセージが表示されます。位置付式の最大より大きいインデックスを持つレコードが見つからなかった時には、カーソルはデータビューの最初のレコードに移動するとともに、「レコードが見つかりません-最初のレコードに位置付を行います.」というメッセージが表示されます。

また、位置付式として最小の位置付式だけを指定し、実行時に条件に該当するレコードが見つからなかった場合、カーソルは上位のインデックスで最初のレコードに位置付けられます。この場合、メッセージは表示されません。一方、位置付式として最大の位置付式だけを指定し、実行時に条件に該当するレコードが見つからなかった場合、カーソルはデータビューの最初のレコードに位置付けられます。

位置付式を指定した項目がインデックス項目ではなく、実行時、条件に該当するレコードが見つからなかった場合、カーソルはデータビューの最初のレコードに位置付けられます。


項目特性 範囲

範囲：最小/最大

データソース > データソースタイプ > テーブルソース > [カラム]タブ > カラム特性 > 詳細

データビューエディタ > 項目特性

ここには範囲式を指定できます。この範囲式を使用して、タスクのデータビューに表示するレコードを絞り込むことができます。

[範囲：最小]特性には、最小値が返る式の番号を指定します。[範囲：最大]特性には、最大値が返る式の番号を指定します。この2つの式で指定された範囲のレコードがタスクのデータビューに表示されることになります。範囲式は、メインソースやリンクテーブルの項目（実データ項目）でも、変数項目でも有効です。

範囲式から返る値のデータ型は、項目のデータ型と同じでなければなりません。また、論理条件を使用して範囲を限定することもできます。その場合、条件は、[範囲／位置付]ウィンドウの[範囲式]特性で指定できます。また、SQLの場合はDB SQL Where句で条件を指定することができます。

[範囲]特性に定義した範囲式は、タスクの実行開始の際に評価されます。このため、タスクが開始された時、範囲式に定義された項目にはすでに値が入っていることが必要になります。範囲式の項目としては、親タスクの項目が使用できます。また、タスクに渡されるパラメータも使用できますし、定数を指定することもできます。

オンラインタスクの場合、指定した範囲以外のレコードは、エンドユーザには表示されません。そのほか、エンドユーザが[オプション]メニューの[範囲]（Ctrl+R）を選択して、さらにレコードを限定することもできます。

このパラメータの範囲式のほか、[範囲／位置付]ウィンドウの[範囲式]特性、[オプション]メニューの[範囲]、およびDB SQL Where句の結果が全てANDで連結され、その最終の結果がデータビューに表示されます。

範囲式を指定しない場合は、全範囲のレコードが表示されます。


GUIコントロール 特性 一覧 基本色一覧

基本色一覧

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[基本色一覧]は、フォームやコントロールの色を選択して指定する場合にオープンします。プロジェクトが使用する[基本色]テーブルの内容が表示されます。

[色]特性からズームすることでオープンできます。


ブラウザフォーム 特性 デフォルトクラス

デフォルトクラス

表示フォーム > ブラウザフォーム > ブラウザフォーム特性

式でコントロールのクラス名を指定します。


GUIコントロール 特性 一覧 項目範囲

項目範囲

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

コンボボックスやリストボックスの[範囲]特性からズームすることでオープンされます。[ソーステーブル]特性が定義されている場合、このテーブルのカラムを基にした範囲定義を指定できます。

[ソーステーブル]が定義されていない場合は、この特性は無効です。


GUI表示フォーム 特性 位置とサイズ MDI調整

MDI調整

表示フォーム > GUI表示フォーム > GUI表示フォーム特性 > 位置とサイズ

タスクのウィンドウをMagicのMDIに合わせて表示します。この特性によって、フォームを最大表示させた時と同じサイズになります。

この特性を式で指定した場合、フォームがオープンされた時点で1回だけ評価されます。

[MDI調整]特性を「Yes」に設定した場合、モーダルウィンドウやフローティングウィンドウ、最大化／最小化ボタン、子ウィンの各特性は自動的に「No」になります。また、[開始時の位置]特性は、無効になります。


GUIコントロール 特性 一覧 固定サイズテーブル

固定サイズテーブル （デフォルト：No）

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

  • No……テーブルにはレコード行が1 つしかありません。この行はレコードごとに繰り返されます。テーブルの実際のサイズは、ページに印刷されるレコードの数によって異なります。

  • Yes……テーブルはフォームに定義されているサイズで印刷されます


GUIコントロール 特性 一覧 ヘルプ一覧

ヘルプ一覧

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[ヘルプ一覧]は、アクセスされる場所に応じて、様々な目的でヘルプを選択して、指定するものです。[ヘルプ画面]、[ツールチップ]や[自動ヘルプ]特性からズームすると[ヘルプ一覧]が表示されます。


GUIコントロール 特性 一覧 区切り線の色

区切り線の色

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[テーブル]コントロールの区切り線の色を指定します。


ブラウザフォーム 特性 繰り返し行数

繰り返し行数

表示フォーム > ブラウザフォーム > ブラウザフォーム特性

[テーブル]コントロールの表示行数の最大値を指定します。


Row Highlight

選択行のハイライト表示 （デフォルト：No）

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

表示フォーム > リッチクライアントコントロール > コントロール特性一覧

マウスカーソルがノードを通過したり、ノードにパークしたりした場合の動作を指定します。

  • Yes ……ノードテキストがハイライト表示します。この場合[ラインの表示]特性が無効になります。

  • No ……ノードテキストの表示は変わりません。


ブラウザコントロール特性 一覧 選択モード

選択モード (デフォルト：S=シングル)

表示フォーム > ブラウザコントロール特性 > ブラウザコントロール特性一覧

リストボックスコントロールが複数選択をサポートするか否かを指定します。デフォルト値は、「S= シングル」です。

  • S=シングル……[選択項目リスト]特性か[リンク項目]特性の選択肢の中から、ユーザが選択した値が1 つだけ返されます。

  • M=マルチ……[選択項目リスト]特性か[リンク項目]特性の選択肢の中から、ユーザが選択した複数の値が返されます。文字型の場合は、カンマで区切られた値になります。値は選択された順ではなく、項目の定義された順に並びます。

エンドユーザが複数項目選択するには以下のような複合キーを使用します。

クリック | クリックした項目を選択状態にしたり解除したりします。
Ctrl+クリック | 他の選択項目に影響しないでクリックされた項目を選択したり解除したりします。
Shift+クリック | 最初に選択された項目から連続してアイテムを選択します。
Shift+↑ | クリックした項目より上の項目を全て選択します。
Shift+↓ | クリックした項目より下の項目を全て選択します。
↑ | 選択項目を全て解除して、現在選択されている項目より上を選択します。
↓ | 選択項目を全て解除して、現在選択されている項目より下を選択します。

[選択項目リスト]特性が指定されており、[型]特性が文字型、RTF-BLOB型、または、ベクトル型の時「M= マルチ」が有効になります。

「S= シングル」の場合、[選択項目リスト]または[リンク項目]特性によって決定される型のデータが返ります。

ベクトルが[型]特性として指定される時、[選択項目リスト]特性で指定された内容は、ベクトルの最初のセルに格納されます。[データ]特性は、指定された選択肢の総数を示します。「S= シングル」の場合、[データ]特性は、「1」になります。

「M= マルチ」と指定されたリストボックスにコントロールをリンクさせることはできません。他のコントロールに子としてリンクされることはできます。


GUIコントロール 特性 一覧 単一拡張

単一拡張

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

  • Yes …… 1つの親ノードだけを一度に拡張させることができます。他の親ノードが拡張された場合、最初の親ノードは縮小表示されます。

  • No …… ノードの拡張を行なうと、全てのレベルで拡張表示されます。


GUIコントロール 特性 一覧 全ページタイトル

全ページタイトル （デフォルト：Yes）

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

  • No……テーブルヘッダはテーブルの先頭だけに印刷されます。

  • Yes……出力ページ全てにテーブルヘッダが印刷されます。

テーブルの最初のレコードを印刷する時点で、テーブルヘッダとフォーム上にある他の全てのコントロールも同時に印刷されます。

テーブルの一部ではないコントロールは、最初のレコードとヘッダを印刷する時点で１度だけ印刷されます。これらのコントロールの位置により、現在印刷しているテーブルの最小サイズが設定されます。テーブルの長さは、フォーム上で一番最後に位置するコントロールが十分に入るだけの長さとなります。

  • 最初のレコードの後に続くレコードを印刷する場合、それらのレコードは直前に印刷されたレコードに隣接して印刷されます。フォーム内の他のコントロールはそれ以上印刷されません。また、レコード数に応じてテーブルの長さが大きくなります。

  • テーブルのレコードを印刷中にページ終了条件が検出されると、次のイベントが実行されます。

  • テーブルの終了行が印刷されます。次のページにテーブルのヘッダ（およびフォーム内にある他の全てのコントロール）が繰り返し印刷されます。これは、現在印刷しているテーブルでの最初のレコードの印刷時と同じです。

  • テーブルのヘッダは、ページ終了条件で繰り返し印刷される他のヘッダがあれば、それら全てより後に出力されます。

  • 別のフォームを印刷する際に、直前に印刷していたフォームにテーブルが含まれていた場合は、そのテーブルがクローズされてテーブルの終了行（複数の場合もある）が印刷されます。

  • 別のフォームを印刷する際に、直前に印刷していたフォームにテーブルが含まれていた場合は、新しいフォームはそのテーブルを含むフォームの後で印刷されます。これはテーブルを含むフォームのレコードが途中で終わっている場合でも同様であります。このような場合、テーブルの終了行（複数の場合もある）はテーブルを含むフォームに印刷されます。


GUIコントロール 特性 一覧 項目一覧

項目一覧

表示フォーム > GUIコントロール > GUI表示コントロール特性 > コントロール特性一覧

[項目一覧]には、選択可能な項目が表示されます。

[コントロール特性]の内[データ]、[表示項目]、または[リンク項目]の各特性からズームすると表示されます。[マージ形式]フォームの[フォーム特性]の[タグテーブル]特性の[項目]カラムからズームしても表示されます。

[項目一覧]から、[変数]テーブルや[カラム]テーブルにアクセスすることができます。

参照

項目一覧


ユーザ定義関数 定義 名前

名前

Magicエンジン > ユーザ定義関数 > ユーザ定義関数の定義

ユーザ定義関数の名前を入力します。最大30字の文字を入力できます。同じ名前を入力することもできます。関数名には、文字や数字、アンダスコアを含めることができます。空白のままにすることはできません。


式 式一覧 イベント一覧 データの再表示

データの再表示

M agicエンジン > エンジン実行レベル > イベントレベル > 内部イベント一覧

以下の表は、データの再表示で使用できる内部イベントです。

レコード書込 | 現在のレコードのデータを更新し再読込みします。
画面再表示 | 表示レコードの内容を再読込みします。
ビュー再表示 | 範囲/ソートの処理を再実行します。新しい範囲指定に従ってデータビューが読み込まれます。

参照

ウィンドウ再表示


ユーザ定義関数 定義 戻り値

戻り値

Magicエンジン > ユーザ定義関数 > ユーザ定義関数の定義

呼出したタスクに返す値を式で設定することができます。

戻り値の設定は、必須でありません。

戻り値は、どのような型の値でも指定できます。


ユーザ定義関数 定義 スコープ

スコープ

Magicエンジン > ユーザ定義関数 > ユーザ定義関数の定義

以下のオプションがあります。

  • T=タスク …… 関数は、現在のタスクでのみ有効です。

  • S=サブツリー …… 関数は、サブタスクでも有効です。

  • G=グローバル（メインプログラム） …… 関数をコンポーネントの一部として公開することができます。


エンジン実行レベル 項目レベル 項目変更

項目変更

Magicエンジン > エンジン実行レベル> 項目レベル

[項目変更]には、項目の内容が変化した場合の処理が定義されます。[項目変更]は、項目の内容が変更されたことをトリガとして起動されます。項目として、BLOB型や、ベクトル型、ActiveX型のデータ項目も定義できます。OLE型は定義できません。

項目レベルが選択された場合、コンボボックスの中の表示が変わります。

[項目]カラムでクリックすると、[項目一覧]が表示されます。[項目一覧]は、現在のデータビューの内容が表示されます。ハンドラや関数から項目を選択することはできません。

項目を選択すると、２つのパラメータを追加するかどうかを確認するためのメッセージダイアログが表示されます。[はい]を選択すると、以下のパラメータが追加されます。

  • CHG_REASON_<項目名> …… 書式「2」の数値型。このパラメータは、以下の数値を使用してエンジンがこのハンドラに入った理由を保持します。

  • 0 …… 対話処理による理由です。フォームの上のコントロールの値を変更したことによって実行されたことを示します。

  • 1 …… 対話処理によるものではありません。再計算処理や項目更新処理などによって、フォームから入力以外の変更要因が発生したことを示しています。

  • CHG_PRV_<項目名> …… 再計算処理が前の項目の値が保存されます。

注意：

[項目]特性で項目の内容を変更し、そのデータ型が異なる場合、パラメータの型を変更する必要があります。

参照

項目レベル

項目レベルの実行時の動作

Level関数

MainDisplay関数


EP0186: ) expected

「)」がありません.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


EP0189:A Call By Name operation must be set with a cabinet name expression

[キャビネットファイル名]が指定されていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コール公開名]処理コマンド／[キャビネットファイル]特性

意味：

[キャビネットファイル]特性が指定されていない場合に発生します。


EP0070:A Command Name must be entered

コマンド名を入力してください.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


EP0067:A Hyperlink must be entered

ハイパーリンクを設定してください.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


EP0215:A push button should not be set to raise this type of internal event. Consider raising user event instead.

プッシュボタンでは、このタイプの内部イベントを[実行イベント]特性に割り当てることはできません.ユーザイベントを割り当ててください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[プッシュボタン]コントロール／[実行イベント]特性

意味：

[プッシュボタン]コントロールにサポートされていない内部イベントが定義されている場合にこのエラーが発生します。ユーザイベントを利用することで該当するイベントを発行させるようにしてください。


EP0002:A Range Must Exist for a Column with a Choice Control

チョイスコントロールの[選択項目リスト]特性が設定されていません.

設定 > チェックメッセージテーブル

発生場所： [プログラム]リポジトリ／[フォーム]エディタ／チョイスコントロール／[選択項目リスト]特性

チョイスコントロールに範囲指定が定義されていないか、論理型項目を定義していない場合に発生します。

対応方法: 範囲を指定してください。


WP0006:A Variable operation is illegal on this level type

[項目]処理コマンドは、このレベルタイプでは指定できません.

設定 > チェックメッセージテーブル

発生場所

プログラム/コールリモート/サービス


EP0197:A vector field cannot be used in Web Service, Hyper Link or Context variables

ベクトル項目は、Webサービスやハイパーリンク、コンテキスト変数には使用できません.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


WP0022:ActiveX class does not exist

ActiveXのクラスが指定されていません.

設定 > チェックメッセージテーブル

発生場所：

プログラム/フォーム/ヘルプ画面


EP0194:ActiveX control cannot be placed in Table control

[ActiveX]コントロールは、[テーブル]コントロールに配置できません.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


ET0029:All index segments must have String attribute

セグメントは、文字型でなければなりません.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


EP0090:All variables must be from parent or virtual or from the main source

親タスク、変数、メインソースのいずれかの項目から使用してください.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


WP0087:An expression or Associated blob variable must be defined for XML source

式または関連するBLOB項目は、XMLソースに対して定義される必要があります.

設定 > チェックメッセージテーブル

発生場所： データリポジトリ/インデックス/名前


EP0069:An Input Field Name must be entered

入力項目名を指定しなければなりません.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


EP0001:An Items List must exist for a Choice control with no 'AsData' Items List

チョイスコントロールを使用するためには、[選択項目リスト]特性を指定してください..

設定 > チェックメッセージテーブル

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／チョイスコントロール／[選択項目リスト]特性


WT0003:An Items List must exist for a column with a Choice control and no Range defined

[範囲]特性が定義されていないチョイスコントロールを使用するためには、[ラベル]特性を指定してください..

設定 > チェックメッセージテーブル

発生場所： フォームエディタ/チョイスコントロール/特性

チョイスコントロールに[範囲]特性と[ラベル]特性のどちらも設定されていない場合に発生します。


WP0071:An operation that requires client side handling cannot be executed at the Task Prefix level

クライアント側で実行される処理はタスク前では実行できません.

設定 > チェックメッセージテーブル

発生場所： プログラム/ブラウザフォーム/コントロール/名前


WP0253:Argument modified in SoapClientModules

SoapClientModulesのパラメータが変更されました.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド／[パラメータ]特性

意味：

Webサービス側のパラメータの内容が変更されたため、[コールWebサービス]処理コマンドで定義されているパラメータと合わなくなった場合に発生します。


WT0018:Associated model has inappropriate Class

モデルの[クラス]特性が適当ではありません.

設定 > チェックメッセージテーブル

発生場所：

各オブジェクトの[モデル]特性

意味：

[モデル]特性に指定されたモデルのクラスが正しくない場合に発生します。


EP0225:Attribute mismatch.

型が合っていません.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


EM0005:Attribute mismatch - variable should be Alpha

型が合っていません - 項目は、文字型にしてください.

設定 > チェックメッセージテーブル

発生場所：

意味：


EP0189:Bad time

時間が正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

式に指定された時刻データが正しくない場合に発生します。


WP0007:Before or after modes cannot be used with Blob variable

BLOB項目では 前置/後置の指定はできません

設定 > チェックメッセージテーブル

発生場所： データリポジトリ/インデックス/セグメント


EP0091:Blob variables cannot be used for values

BLOB項目は、この値では使用できません.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


WP0104:Cached Table - Linked table cannot be cached on client when its 'Success Indication' is a server-side variable

キャッシュテーブル - 戻り値にがサーバ側の項目が設定されている場合、リンクテーブルは、クライアント側でキャッシュできません.

設定 > チェックメッセージテーブル

発生場所： タスク/GUI表示形式フォーム/ツリーコントロール/[イメージファイル名]特性


WP0103:Cached Table - Linked table cannot be cached on client when one of its variable is server side

キャッシュテーブル - 項目に範囲式が指定された変数に位置付式が指定された場合、リンクされたテーブルは、クライアント側ではキャッシュできません.

設定 > チェックメッセージテーブル

発生場所： タスク/GUI表示形式フォーム/ツリーコントロール/[イメージファイル名]特性


EP0097:CALLPROG function cannot appear in Task Properties

CallProg関数は、タスク特性では使用できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／タスク環境／タスク特性

意味：

タスク特性のパラメータとしてCndRange関数が指定された場合にこのエラーメッセージが表示されます。


WP0017:CALLPROG function cannot appear in this option

CallProg関数は、この処理コマンドでは使用できません.

設定 > チェックメッセージテーブル

発生場所： プログラム/リンク処理コマンド


ET0065:Cannot alter database

データベースを変更できません.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


EP0020:Cannot Browse a Browser-Based Form

ブラウザ形式フォームは指定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

[エディット]処理コマンドで指定したフォームが[ブラウザ形式]フォームの場合に発生します。


EP0191:Cannot call Main Program

リテラル値が間違っています.メインプログラムはコールできません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コール式]処理コマンド／[プログラムID]特性

意味：

指定されたプログラム番号が、メインプログラムを指している場合に発生します。


ET0054:Column DB Name length is too long for DBMS

DBカラム名が長すぎます.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


ET0055:Column length must be greater than zero

書式が不適当です.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


ET0056:Column type cannot have a null value

この項目タイプには、NULL値を設定できません.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


WP0051:Control Name Must Be Entered

コントロール名を入力してください

設定 > チェックメッセージテーブル

発生場所：

プログラム/ブラウザフォーム/コントロール/ハイパーリンク/コントロール名

ハイパーリンクのタイプが「コントロール」でコントロール名が指定されていない場合にこのエラーが発生します。


WP0082:Control not applicable for the current Task

コントロールは、現在のタスクには対応しません.

設定 > チェックメッセージテーブル

発生場所： データリポジトリ/インデックス/名前


Create error

新規登録できません

設定 > チェックメッセージテーブル

発生場所：

データ
レコードの登録ができない場合に発生します。


Damaged data source

破損データソースです

設定 > チェックメッセージテーブル

発生場所：

データ/データソース名
[データソース名]カラムに定義されたデータソースに問題がある場合に発生します。


EP0166:Data control must have variable as Data

データコントロールは、[データ]特性に値を設定してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／データコントロール

意味：

データコントロールとして定義していながら[データ]特性に項目を設定されていない場合にこのエラーが発生します。


WT0002:Database gateway not loaded

データベースゲートウェイがロードされていません

設定 > チェックメッセージテーブル

発生場所：

環境設定/MAGIC.INI

意味：

指定されたデータベースに対応するデータベースゲートウェイがロードされない場合に発生します。また、データベースのクライアントソフトがインストールされていない可能性もあります。


ET0057:Database supports one Memo column in row

メモ項目は１個しか使用できません.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


WP0080:Destination frame name should consist of at least one alpha numeric character

[出力先フレーム名]特性が指定されていません.

設定 > チェックメッセージテーブル

発生場所： プログラム/ブラウザフォーム/コントロール/名前


RP0002:Details line # property of table control is missing

[テーブル]コントロールの[明細行]特性を設定してください.

設定 > チェックメッセージテーブル

発生場所： フォームエディタ/テーブルコントロール/特性

[テーブル]コントロールの[明細行]特性に値が設定されていない場合に発生します。


EP0164:Duplicate Control Change

項目変更が重複しています.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

同じ項目に対する[項目変更]ロジックユニットが複数定義されている場合にこのエラーが表示されます。


EP0003:Duplicate value in a Choice control Items List

チョイスコントロールの[選択項目リスト]特性の指定に重複があります.

設定 > チェックメッセージテーブル

発生場所： [プログラム]リポジトリ／[フォーム]エディタ／チョイスコントロール／[選択項目リスト]特性


EP0004:Duplicate value in a Choice control range

チョイスコントロールの[選択項目リスト]特性の指定に重複があります.

設定 > チェックメッセージテーブル

発生場所： [プログラム]リポジトリ／[フォーム]エディタ／チョイスコントロール／[選択項目リスト]特性


WT0009:Duplicate value in a Items List for a column with a Choice control

チョイスコントロールを指定した項目の[ラベル]特性に重複があります.

設定 > チェックメッセージテーブル

発生場所： プログラム/データビュー/項目定義


EP0224:Empty or invalid entry

指定されていないか値が正しくありません.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


EP0156:Expression Attribute is not supported for this control

このコントロールに対して、使用できないデータ式です.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


EP0158:Attribute mismatch - variable should be logical from virtual

型が合っていません.－項目は、変数の論理型でなければなりません.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


EP0193: ) expected

「)」がありません.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


EP0149:Expression Attribute is not supported for this control

[式]特性は、このコントロールでは指定できません.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


EP0190:Expression too complex

式が複雑すぎます.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

式の内容が複雑すぎて解析できない場合に発生します。


EP0145:Field does not support this type of control

項目は、このタイプのコントロールをサポートしません.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


RP0004:Field is recommended as a parent locate index segment

項目は、親の位置付インデックスセグメントとすることを推奨します.

設定 > チェックメッセージテーブル

発生場所： データリポジトリ/インデックス/XML


ET0022:First index must be unique

第１インデックスはユニークでなければいけません.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル

意味：

[インデックス]テーブルに定義された最初のイデックスが重複可に設定されている場合にこのエラーが発生します。


WP0030:Font number can only be between 1 - number of fonts

フォント番号は、1 - 登録番号 以外は指定できません.

設定 > チェックメッセージテーブル

発生場所：

プログラム/フォーム/ヘルプ画面


WP0012:Group level Is Not Allowed for the Batch Task Create Mode

[グループ]ロジックユニットは、バッチタスクの登録モードでは指定できません

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

登録モードのバッチタスクで[グループ]ロジックユニットが定義されている場合にこのエラーが発生します。


WP0085:Handling a push button should be done using a user event

処理するプッシュボタンにユーザイベントを割り当ててください.

設定 > チェックメッセージテーブル

発生場所： データリポジトリ/インデックス/名前


EP0125:HTML File Name Property Is Empty

HTMLファイル名が指定されていません.

設定 > チェックメッセージテーブル

発生場所： プログラム/HTMLフォーム/HTMLコントロール

[HTMLファイル名]が指定されていない場合に発生します。

対応方法: 正しいファイル名を指定してください。


WP0032:Illegal expression. The condition column of handler includes a function that can be executed only at server side

式が正しくありません.ロジックユニットの[条件]特性に、サーバ側でしか実行できない関数が含まれています.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

ロジックユニットの[条件]特性に、サーバ側でしか実行されない関数が定義されている場合にこのエラーが発生します。


WT0017:Illegal Items List for type with Choice control

チョイスコントロールを使用するためには、項目に[ラベル]特性を指定してください.

設定 > チェックメッセージテーブル

発生場所：

[モデル]リポジトリ／[項目特性]

[データ]リポジトリ／[カラム]テーブル／[項目特性]

[プログラム]リポジトリ／[データビュー]エディタ／[項目特性]

意味：

チョイスコントロールに設定された項目の[範囲]特性に、チョイスコントロールでは使用できない値（例：1-100）が指定された場合に発生します。


EP0005:Illegal range for a Choice control

チョイスコントロールに対して、[選択項目リスト]特性の指定が適当ではありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／チョイスコントロール／[選択項目リスト]特性


WP0019:Illegal right

権利が正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

指定された権利名が存在しないかアクセス権がない場合にこのエラーが発生します。


EP0104:Illegal variable

項目が正しくありません.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


ET0028:Index DB Name length is too long for DBMS

DBインデックス名が長すぎます.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[インデックス]特性／[SQL]カラム

意味：

[DBインデックス名]特性の長さが、使用するDBMSの制限を超えた場合に発生します。


EP0182:Instantiation property of a parameter should be set to None

パラメータ項目の[インスタンス化]特性は、「なし」にしてください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

ActiveX型/OLE型のデータ項目の[インスタンス]特性が「A=自動」に設定されている（サポートされていない）場合に発生します。


WP0180:Instantiation property of an argument or a returned value should be set to None

パラメータや戻り値の項目の[インスタンス化]特性は、「なし」に設定してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／[変数項目]特性

意味：

OLE型やActiveX型のパラメータ項目の[インスタンス化]特性が「A=自動」になっている場合に発生します。


WP0035:Invalid action

内部イベントが正しくありません.

設定 > チェックメッセージテーブル

発生場所：

プログラム/フォーム/ヘルプ画面


Invalid data source name

データソース名が正しくありません

設定 > チェックメッセージテーブル

発生場所：

データ/データソース名
[データソース名]カラムに定義された名前が正しくない場合に発生します。


EP0162:Invalid Expression - Browser Task

式の記述が正しくありません.

設定 > チェックメッセージテーブル

発生場所：

各[式]欄

意味：

式欄に設定された式の内容が正しくない場合に発生します。


EP0226:Invalid second parameter - attribute must be Numeric

２番目のパラメータが正しくありません - 数値型にしてください.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


EP0011:Invalid Table

テーブル番号が無効です

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／リンク／データソース

意味：

データソースが指定されていないか、指定されたデータソースが削除された場合に発生します。

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／チョイスコントロール／[ソーステーブル]特性

意味：

[ソーステーブル]特性に指定されたテーブルが削除された場合に発生します。


WT0019:Invalid table Open Mode. An SQL / XML table may only be opened with Normal mode.

データソースの[オープン]特性が正しくありません. SQL/XMLテーブルは、「標準」しか指定できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／[メインソース特性]／[オープン]特性

[プログラム]リポジトリ／[データビュー]エディタ／[リンク特性]／[オープン]特性

意味：

SQLテーブルやXMLデータソースを定義した場合に[オープン]特性が「R=再索引」に設定されている場合に発生します。


ET0063:Invalid type for Differential Update

[更新形式]特性のタイプが正しくありません.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[カラム]テーブル

意味：

[更新形式]特性の設定値に誤りがある場合に発生します。


EP0124:Java File Does Not Exist

Javaファイルが存在していません

設定 > チェックメッセージテーブル

発生場所： プログラム/HTMLフォーム/Javaコントロール

Jacaコントロールの[Javaファイル名]特性にファイル名が指定されていないか、指定されたファイルが正しいものではない場合に発生します。


WT0003:Labels for a Column with a Choice Control

[範囲]特性が定義されていないチョイスコントロールを使用するためには、[選択項目リスト]特性を指定してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ/[フォーム]エディタ／[GUI表示形式]フォーム／チョイスコントロール

意味：

[選択項目リスト]特性か[範囲]特性が指定されておらず、論理型でない場合にこのエラーメッセージが表示されます。

[選択項目リスト]特性は、ラジオボタン、タブ、リスト、およびコンボボックスの各コントロールでのみ有効です。


EP0231:Mode mismatch a variable must be selected.

モードが合っていません. 項目を選択してください.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


EP0204:Multiple selection list box does not support layering of controls

リストボックスの複数選択は、コントロールのレイヤ定義をサポートしていません.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


WP0015:Must Choose Object for Control

コントロールを指定してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コントロール]ロジックユニット

意味：

[コントロール]ロジックユニットにコントロールが定義されていない場合にこのエラーが発生します。


ET0059:Null values are only allowed for SQL DBMSs

NULL値は、SQL DBMS 以外では使用できません.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


WP0252:Number of Arguments modified in SoapClientModules

SoapClientModulesのパラメータ数が変更されました.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド／[パラメータ]特性

意味：

Webサービス側のパラメータ数が変更されたため、[コールWebサービス]処理コマンドで定義されているパラメータの数と合わなくなった場合に発生します。


ET0016:Number of blobs exceeds DBMS limit

BLOBの数がDBMSの制限値を超えました.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


ET0069:Number of memos exceeds DBMS limit

メモ項目の数がDBMSの制限を超えました.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


WP0023:Number of Repeated Lines Greater Than 0 and No Table Defined in Form

[繰返し行数]特性が指定されていますが、フォームに[テーブル]コントロールがありません.

設定 > チェックメッセージテーブル

発生場所： プログラム/ブラウザフォーム/データソース特性

[データソース特性]の[明細行]特性が指定されているが、フォーム上にテーブルが定義されていない場合にこのエラーが発生します。


EP0183:Object defined as a field in a table cannot be a reference

テーブルのカラムとして定義されたオブジェクトは、「R=参照」として設定できません.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


WP0171:Object does not exist on computer

PCにオブジェクトがありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／変数項目特性

意味：

ActiveX型やOLE型の変数に定義されたタイプライブラリはPCにインストールされているが、オブジェクトが存在しない場合にこのエラーが発生します。


EP0175:Object selected is not an ActiveX control

選択されたオブジェクトは ActiveX コントロールではありません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

ActiveX型/OLE型のデータ項目の[オブジェクト]特性にActiveX以外のコントロールが定義されている場合に発生します。


EP0191:OLE control defined as a non insertable object

[OLE]コントロールは挿入できないオブジェクトとして定義されます.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


EP0031:Only a Class 0 Form Can Be Selected

クラスが「0」のフォームしか選択できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

クラスが 1 以上のフォームを定義した場合に発生します。


EP0222:Operation Nesting Too Deep

式のネストが深すぎます.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

式のネストの階層が深すぎる場合にこのエラーが発生します。


EP0134:Parameter Name Already Exists

このパラメータ名は、既に存在しています.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム/マージイベント／マージコマンド／ハイパーリンク／パラメータ

意味：

パラメータテーブルに同じ名前のパラメータがある場合に発生します。


EP0133:Parameter Name Required

パラメータ名を入力してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム/マージイベント／マージコマンド／ハイパーリンク／パラメータ

意味：

[パラメータ]テーブルにパラメータ名が定義されていない場合に発生します。


ET0062:Parameter not allowed in this column

この項目にはパラメータを設定できません.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


WT0005:Parent Locate Index should have segment(s) of ancestor records

親の位置付インデックスは、上位レコードのセグメントでなければなりません.

設定 > チェックメッセージテーブル

発生場所： プログラム/ブラウザフォーム/名前

XMLデータソースの[ブラウザ形式]フォームに項目が1つも配置されていないか、配置された項目が正しくない場合に発生します。


ET0038:Primary index cannot be modifiable

１次インデックスの変更はできません.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


WP0049:Properties of Forms and Controls Do Not Support Server Side Expressions

サーバ側で実行される関数をフォーム上に直接定義できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[リッチクライアント形式]フォーム

意味：

[フォーム特性]や[コントロール特性]に設定された式に、サーバ側で実行される関数が含まれている場合に発生します。

サーバ関数からの値を、一旦変数項目に格納してから使用するように検討してください。


Root Value Must Be Defined

[ルート値]特性を定義してください.

設定 > チェックメッセージテーブル

発生場所：プログラム/GUI表示フォーム/ツリーコントロール/ルート値

[ルート値]特性に式が定義されていない場合にこのエラーが発生します。


ET0039:Segment length must be equal to the column length

セグメント長をカラム長と等しくしてください.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


ET0071:Segment length must be even for unicode type field

セグメントの長さをUnicode型の項目と同じにする必要があります.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[セグメント]テーブル

意味：

データソースのインデックスセグメントのサイズが合っていない場合に発生します。


ET0035:Segments must start at first column and be contiguous

セグメントは、第１カラムから連続していなければいけません.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


WP0088:Setting image list indexes requires setting an image list file name

[イメージ一覧ファイル名]特性が指定されていません.イメージインデックスを指定する場合は必須です.

設定 > チェックメッセージテーブル

発生場所： データリポジトリ/インデックス/名前


WP0041:Sound Control Must Have Either Data or a Sound File Name

サウンドコントロールには、データかサウンドファイルを指定してください.

設定 > チェックメッセージテーブル

発生場所： プログラム/HTMLフォーム/サウンドコントロール/サウンドファイル名

サウンドコントロールに[項目]か[サウンドファイル名]が定義されていない場合に発生します。


EP0165:SQL form must be executed within a task transaction

SQLフォームは、タスクのトランザクション内で実行しなければいけません.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


EP0172:Storage data must be Reference

サブオブジェクトは、[保存データ]特性を「R=参照」に指定してください.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

ActiveX型/OLE型のデータ項目の[保存データ]特性が定義されていない場合に発生します。


EP0141:Cannot mix different types of forms

型が合っていません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

[プログラム]リポジトリ／[ロジック]エディタ

意味：

指定されたパラメータのデータ型が合わない場合にこのエラーが発生します。


EP0174:Sub object cannot be defined as a field in table

サブオブジェクトは、テーブルのカラムとして定義できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

ActiveX型/OLE型のデータ項目の[サブオブジェクト]特性がテーブルのカラムに定義されている場合に発生します。


WP0255:Subform program' may not be a parallel program. The program will execute as non-parallel program

サブフォームには、並行実行プログラムを指定できません.プログラムは単一スレッドのプログラムとして実行されます.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[サブフォーム]コントロール／[プログラム/タスク番号]特性

意味：

[サブフォーム]コントロールに指定されたプログラムが、並行起動プログラムの場合にこのエラーが発生します。


WP0021:Submit form must have link specified

送信フォームには、ハイパーリンクを指定してください.

設定 > チェックメッセージテーブル

発生場所：

プログラム/フォーム/ヘルプ画面


WP0042:Submit/Link Button must have Hyperlink

送信／リンクボタンはハイパーリンクが指定されていなければなりません.

設定 > チェックメッセージテーブル

発生場所：

プログラム/フォーム/ヘルプ画面


ET0009:Table should include at least one index

インデックスが定義されていません.

設定 > チェックメッセージテーブル

発生場所：

[データ]リポジトリ／[インデックス]テーブル

意味：

テーブルにインデックスが定義されていない場合に発生します。


WP0048:Tables in HTML Documents Have Different Numbers of Lines

HTMLドキュメントで使用するテーブルは、指定された行数で登録できません.

設定 > チェックメッセージテーブル

発生場所： プログラム/ブラウザフォーム/[テーブル]コントロール/明細行特性

[明細行]特性で指定された値と異なるテーブルが定義された場合に発生します。


WP0069:Task has more than 256 select parameter operations

１つのタスクに256以上のパラメータを指定できません.

設定 > チェックメッセージテーブル

発生場所：

プログラム/フォーム/ヘルプ画面


EP0077:Template file error: Duplicate Field name

テンプレートファイルエラー:項目名が重複しています.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[ファイル名]特性

意味：

[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイルの 項目名が重複して定義されている場合に発生します。


EP0078:Template file error: Duplicate Tag name

テンプレートファイルエラー:タグ名が重複しています.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[ファイル名]特性

意味：

[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイルのタグ名が重複して定義されている場合に発生します。


EP0079:Template file error: Non matching IF-ELSE tags

テンプレートファイルエラー:IF-ELSE のタグに不整合があります.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[ファイル名]特性

意味：

[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイルの「MGIF」タグか「MGENDIF」タグのどちらかが定義されていない場合に発生します。


EP0087:Template file error: Token is too big for variable token number

テンプレートファイルエラー:トークンが大きすぎます.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


EP0093:The @ operator can only be used on alpha and unicode variables which are displayed as value

@ コマンドは値として表示される文字型/Unicode型の項目しか使用できません.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／タスク環境／範囲/位置付／DBH SQL Where句

意味：

DB SQL Where句で、文字型/Unicode型以外のカラムに @コマンドを指定した場合に、このエラーメッセージが表示されます。


EP0205:The attribute of the vector's cell must match the attribute of the linked field

ベクトルのセルの[型]特性がリンク項目の型と合っていません.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


The CVS client installation is incomplete

CVSクライアントのインストールが不完全です.もう一度インストールし直してください.

設定 > チェックメッセージテーブル

発生場所：

Magic起動時

意味：

CVSクライアントをインストールしたにも関わらず、Magicのインストール先にcvs_clientサブフォルダが存在しない場合に発生します。このフォルダ内には、CVS関係のファイルを置く必要があります。


EP0160:The Date and Time fields of Datetime pair must be selected

日付時刻フィールドは日付と時刻の組み合わせにしてください.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


WP0070:The event 'On Control Change' is not allowed in Browser task

「コントロール変更」イベントは、ブラウザタスクで使用できません.

設定 > チェックメッセージテーブル

発生場所： プログラム/ブラウザフォーム/コントロール/名前


WP0016:The Handler Is Specified for a Control That Does Not Exist

存在しないコントロールが定義されています.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

ロジックユニットに存在しないコントロール名がが定義されている場合にこのエラーが発生します。


WP0084:The Items List should be defined

[項目リスト]特性を指定してください.

設定 > チェックメッセージテーブル

発生場所： データリポジトリ/インデックス/特性/DB インデックス名


WP0075:The selected control doesn't have the Allow Drag property

選択したコントロールは、ドラッグ可になっていません.

設定 > チェックメッセージテーブル

発生場所： プログラム/ブラウザフォーム/コントロール/名前


WP0076:The selected control doesn't have the Allow Drop property

選択したコントロールは、ドロップ可になっていません.

設定 > チェックメッセージテーブル

発生場所： プログラム/ブラウザフォーム/コントロール/名前


EP0192:Too many parameters

パラメータが多すぎます.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


WP0235:Type mismatch possible precision lost

タイプが合っていません.精度が指定されていません.

設定 > チェックメッセージテーブル

発生場所

プログラム/リンク処理コマンド/データソース

データソースが指定されていないか、指定されたデータソースが削除された場合に発生します。


EP0185:Unused end of expression

式の記述が正しくありません.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


EP0110:Variable attached to Image control need to be of alpha type

[イメージ]コントロールには、文字型/Unicode型の項目を指定してください.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


EP0181:Variable must be defined as array or a blob

項目は、配列かBLOBとして定義してください.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


EP0188:Variable selected can be only ole or ActiveX

選択できる項目は、OLEかActiveXのみです.

設定 > チェックメッセージテーブル

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／[変数項目]特性

意味：

OLE型やActiveX型のパラメータ項目の[インスタンス化]特性が「A=自動」になっている場合に発生します。


WP0046:Variable with a Name Assigned to Another Control

この名前の項目は他のコントロールで使用されています.

設定 > チェックメッセージテーブル

発生場所： プログラム/HTMLフォーム/コントロール/項目名

他のコントロールに同じ項目が定義されている場合にこのエラーが発生します。


EP0032:Variables referenced from link join locate must be part of the join

結合リンクで参照する項目は、結合リンクの一部でなければなりません.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


EP0196:Vector's Cell model attribute mismatch

ベクトルの[セルモデル]の型が合っていません.

設定 > チェックメッセージテーブル

発生場所： タスク特性/初期モード


WT0008:When unique ID is specified, column must be of length

一意IDを指定したときには、項目長を4にしてください.

設定 > チェックメッセージテーブル

発生場所：


Access External Use Database when MultiUser flag is No, data source

[マルチユーザアクセス]が「No」の時は[開発モードでのテーブル変換]が「No」のデータベースをアクセスできません.

設定 > チェックメッセージテーブル

発生場所：


Bad Open Query Selection Expression

Open Query のセレクト式が正しくありません.

設定 > チェックメッセージテーブル

発生場所：


Cannot create/drop/copy a view, view

ビューの作成／移動／複写はできません.

設定 > チェックメッセージテーブル

発生場所：


Communication Gateway not loaded, data source

通信ゲートウェイがロードされていません.

設定 > チェックメッセージテーブル

発生場所：


Database gateway version mismatch, data source

データベースゲートウェイのバージョンが違います.

設定 > チェックメッセージテーブル

発生場所：


Error in executing SQL command

SQLコマンド実行中にエラーが発生しました.

設定 > チェックメッセージテーブル

発生場所：


Exceeded database protection limits, data source

ゲートウェイのプロテクション制限を超えました.

設定 > チェックメッセージテーブル

発生場所：


Failed to abort transaction

トランザクションのアボートに失敗しました.

設定 > チェックメッセージテーブル

発生場所：


Failed to clear Access Key, data source

アクセスキーをクリアできませんでした.

設定 > チェックメッセージテーブル

発生場所：


Failed to commit transaction

トランザクションのコミットに失敗しました.

設定 > チェックメッセージテーブル

発生場所：


Failed to delete, data source

削除できません.

設定 > チェックメッセージテーブル

発生場所：

データ
他のユーザによってロックされたレコード／テーブルをアクセスした場合に発生します。


Failed to open transaction, data source

トランザクションのオープンに失敗しました.

設定 > チェックメッセージテーブル

発生場所：


Not enough memory - Cache not started, data source

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

設定 > チェックメッセージテーブル

発生場所：


Operation failed. Record has been changed by another user, data source

処理に失敗しました.他のユーザがレコードを変更しました.

設定 > チェックメッセージテーブル

発生場所：


Previous DBMS or database unknown, data source

変更前のDBMS/データベースが不明です.

設定 > チェックメッセージテーブル

発生場所：


Reached maximum eDeveloper file handlers. No available handlers left

Magicのファイルハンドラの最大値になりました.使用できるハンドラはありません.

設定 > チェックメッセージテーブル

発生場所：


Server login failed. Invalid user/password, data source

ユーザ名/パスワードが正しくないためサーバにログインできません.

設定 > チェックメッセージテーブル

発生場所：


Target data source exists. Create failed for data source

目的のデータソースは、既に存在しています.作成に失敗しました.

設定 > チェックメッセージテーブル

発生場所：


Team Development: Data source inaccessible due to maintenance

チーム開発: 変更のためにデータソースを取得することができませんでした.

設定 > チェックメッセージテーブル

発生場所：


Unable to connect to Server: Maximum connections reached.

サーバに接続できません.最大接続数に達しました.

設定 > チェックメッセージテーブル

発生場所：


Unable to lock the data source

データソースのロック待ちです

設定 > チェックメッセージテーブル

発生場所：

データ
他のユーザによってロックされたレコード／テーブルをアクセスした場合に発生します。


Waiting to open transaction

トランザクションのオープン待ちです.

設定 > チェックメッセージテーブル

発生場所：

データ
他のユーザによってロックされたレコード／テーブルをアクセスした場合に発生します。


Drop Event

e Developer Engine > Engine Execution Levels > Event Level > Internal Event List

Connectivity > Drag-and-Drop

Releasing the left mouse button over a control where the Allow Drop property has been set to Yes allows the control to be dropped. A user-defined handler can be defined so that you can handle the task data and affect the drop operation in the following ways:

  • Check if a certain format is supported by the current drag and drop operation using the DropFormat function.

  • Retrieve the data of a defined format using the DropGetData function.

  • Retrieve the Mouse coordinates at the time of the Dropoperation using the DropMouseX and DropMouseY functions.

See also

Drag Begin Event

Allow Drag Control Property

Allow Drop Control Property

Drag-and-Drop Functions

Drag-and-Drop Behavior

Drop Data Supported User Formats


選択一覧 フォーム2

フォーム一覧

式エディタ > 選択一覧

[タスク]エディタ内で複写する先頭から末尾までの連続行を選択します。選択をクリックすると、元のダイアログボックス（複写登録、移動、または上書き）に戻ります。


関数ディレクトリ Logical

Logical

式エディタ > 関数ディレクトリ

文字列をビジュアル形式から論理形式に変換

Magic 内にビジュアル形式と論理形式が混在している文字列を変換します。

論理形式とは、Magicが内部的に扱うことのできる文字列を意味します。しかし時々ビジュアル形式で提供されることがあります。このため、ビジュアル形式を論理方式に変換する必要があります。

構文：

Logical(文字列, 反転)

パラメータ：

文字列 …入力文字列

反転 …論理値

結果を反転するかどうかを指定します。文字列の順序が左から右の場合は指定する必要がありません。

戻り値：

論理値

  • True … 文字列は、文字列の順序が右から左に変換されます。

  • False … 文字列は、文字列の順序が左から右に変換されます。

注意事項：

この関数は、日本語版では動作しません。（ヘブライ語用です。）

関連項目：

Logical AND, OR, NOT


Logical AND

AND

Expression Editor > Function Directory > Logical Function

Returns True only if both operands are true.


Logical NOT

Expression Editor > Function Directory > Logical Function

Reverses the logical value of its operand.

Not ('False' log) returns True

Not (A) Logical returns True


Logical OR

Expression Editor > Function Directory > Logical Function

Returns True if either of its operands is true.


関数ディレクトリ PPD

PPD

式エディタ > 関数ディレクトリ

プロテクションデバイスを読み込む プロテクションデバイスを使用する場合に、アプリケーション内でプログラムされたプロテクションデバイスコードを読み込みます。
構文： | PPD()
パラメータ： | なし
戻り値： | 文字列 … PPDコード
例： | PPD（）では、PPDコードを含む、10文字の文字列が返されます。
注意事項： | この関数は日本語版ではサポートされていません。


関数ディレクトリ ベクトルデータ

ベクトルデータ

式エディタ > 関数ディレクトリ

Magicでのベクトルとは、指定されたセルインデックスからデータを格納したり検索する事のできる配列です。ベクトル型は、セルモデル特性が追加されたBLOB 型に基づいています。

ベクトルのセルは、[モデル]リポジトリで定義された項目モデルから指定しなければなりません。セルモデルには、あらゆる項目のデータ型（文字、数値、論理、時刻、日付、Unicode、BLOB、OLE 、ActiveX 、ベクトル）を指定できます。

ベクトルのインデックス付けは、1 から始まります。ベクトル型は、変数とパラメータ項目でのみ指定できます。テーブルのカラムには指定できません。

ベクトル型の項目を、フォームに配置できません。多量のデータをベクトルに格納しないようにしてください、この内容はメモリ上に格納されるためメモリを消費します。

ベクトル関数を使用することによってベクトルセルの内容を参照したり更新したりすることができます。

参照

VecCellAttr

VecGet

VecSet

VecSize


関数ディレクトリ Visual

Visual

式エディタ > 関数ディレクトリ

この関数は、ヘブライ語のアプリケーションをサポートします。この関数を使用すると、開発者は、Magicによる混合文字列の処理方法を変更することができます。

混合文字列の処理方法にはロジカルとビジュアルがあります。ロジカルは、エンジンによって文字列が内部で処理される方法ですが、文字列がビジュアルとして提供されることもあります。その場合、開発者が「論理型」文字列をビジュアルとして表示するには、ビジュアル関数を使用して処理方法を変換します。同様に、開発者が「ビジュアル」として提供されたデータのセットを処理しなければならない場合、Magicエンジンによる文字列の処理方法と同様に処理するには、Logical関数を使用して処理方法を変換します。

構文：

Visual(文字列, 処理モード)

パラメータ：

文字列…入力された文字列

処理モード…論理値

戻り値：

処理モードによって結果が異なります。

  • Trueの場合、文字列が右から左に表示されます。

  • Falseの場合は、文字列が左から右に表示されます。


関数ディレクトリ XML関数 CDATA セクション

CDATAセクション

式エディタ > 関数ディレクトリ > XML関数

CDATA セクションには、XML で利用可能な文字を全て記述することできます。（唯一の例外は、「]]>」という文字列です。この文字列を指定するとCDATA セクションの終了と解釈されます。）

CDATA セクションは、「<![CDATA[」という文字列で始まり、「]]>」という文字列で終わります。

XML 関数でCDATA セクションを扱うことができます。

XML ファイルが以下の場合を想定します。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<object>
<![CDATA[
<?xml version="1.0"?>
<document>
Kitty on your lap &amp; Tokyo mew mew
</document>
]]>
</object>

以下のXML 関数を実行します。

XMLGet (0,1,'object')

この場合、以下のような結果が返ります。

<?xml version="1.0"?>
<document>
Kitty on your lap &amp; Tokyo mew mew
</document>


関数ディレクトリ XML関数 要素パスの指定方法

要素パスの指定方法

式エディタ > 関数ディレクトリ > XML関数

XML の要素パスを指定するには２つの方法があります。以下のXML を例に指定方法を説明します。

<?xml version="1.0" encoding="UTF-8" ?>
<person ID="123" xmlns="http://server/person">
<name>John Doe</name>
<gender>male</gender>
</person>

区切り文字にドット（.）を使用する方法

XMLGet(0,1, 'person.name','')

区切り文字にスラッシュ（/）を使用する方法

XMLGet(0,1, '/person/name','')

パスの先頭にもスラッシュを指定する必要があります。


APBUT01

選択左寄せ

選択したコントロールを、選択フレームの左端に揃えます。


APBUT02

選択水平センタリング

選択したコントロールを、選択フレームの中央に横に並べます。


APBUT03

水平センタリング

選択したコントロールを、フォームの中央に横に並べます。


APBUT04

水平均等揃え

選択したコントロールを、選択フレーム内に均等間隔で横に並べます。


APBUT05

選択右寄せ

選択したコントロールを、選択フレームの右端に揃えます。


APBUT06

選択上寄せ

選択したコントロールを、選択フレームの上部に揃えます。


APBUT07

選択垂直センタリング

選択したコントロールを、選択フレームの中央に縦に並べます。


APBUT08

垂直センタリング

選択したコントロールを、フォームの中央に縦に並べます。


APBUT09

垂直均等揃え

選択したコントロールを、選択フレーム内に均等間隔で縦に並べます。


APBUT10

選択下寄せ

選択したコントロールを、選択フレームの下部に揃えます。


APBUT11

幅最大化

選択したコントロールを、最も幅の広いコントロールに合わせて拡張します。


APBUT12

幅最小化

選択したコントロールを、最も幅の狭いコントロールに合わせて縮小します。


APBUT13

高さ最大化

選択したコントロールを、最も縦に長いコントロールに合わせて拡張します。


APBUT14

高さ最小化

選択したコントロールを、最も縦に短いコントロールに合わせて縮小します。


APBUT15

Zオーダ表示

コントロールのZオーダをフォームに表示します。


APBUT16

前面移動

選択したコントロールを、フォームの1つ手前のレイヤに移動します。


APBUT17

背面移動

選択したコントロールを、フォームの1つ後ろのレイヤに移動します。


APBUT18

最前面移動

選択されているコントロールのレイヤを一番先頭にします。


APBUT19

最背面移動

選択されているコントロールのレイヤを一番後ろにします。


APBUT20

テーブルへの配置

[テーブル]コントロールに選択されたコントロールを選択した順序で配置します。


APBUT21

自動Zオーダ

フォーム内のコントロールの自動 Z オーダを有効にします。


APBUT22

区切りなし表示

フォーム内のブレイクとブレークの間の仕切を除去します。


APBUT23

やり直し

最後に戻した処理を実行します。


APBUT24

元に戻す

最後に行った[フォーム]エディタでの処理を取り消します。


APBUT25

親子リンクの作成

コントロール間の親子リンクを確立します。


APBUT26

親子リンクの解除

コントロール間の親子リンクを破棄します。


APBUT27

親の表示

親コントロールを表示します。


APBUT28

サイズ調整

コントロールのフレームをコントロールの書式サイズに合わせます。


APBUT29

自動タブ順序

自動タブ順序のを有効／無効を切り替えます。


APBUT30

タブ順序表示

タブ順序を表示します。


APBUT31

テーブルへの配置

[テーブル]コントロールにコントロールを配置します。


Component Interface Path

コンポーネントインタフェースパス

Javaとの連携 > EJBインタフェースビルダ

[コンポーネントのパス指定]ダイアログでは、EJBコンポーネントファイルをどこに作成するかを指定します。

MAGIC.INIファイルの[Magic_Builders] セクションで「EJB_Data」の値を変更することで保存先のデフォルトを変更することができます。

[次へ]をクリックすると、[EJBコンポーネントの作成]ダイアログに移ります。


EJBインタフェースビルダ Jarファイルの作成

.jarファイルの作成

Javaとの連携 > EJBインタフェースビルダ

.jar ファイルを作成するには、[オプション]メニューから[Jar ファイルの作成] を選択します。

[Jar ファイルの作成]ダイアログでは、以下のものがない場合、手動で入力する必要があります。

  • 中間ファイルの場所……環境変数"TEMP" が見つからない場合

  • J2EE Home ディレクトリ……環境変数「J2EE_HOME」 が見つからない場合

  • Java Home ディレクトリ……環境変数「JAVA_HOME」 が見つからない場合

パスを直接入力するかズームして選択できます。

.jarファイルの作成が終了するとEIBは、作成に成功したことを確認し、以下のような内容のメッセージを表示します。

Bean XYZ を Path\EJB\<BeanName>\<BeanName>.JAR にパッケージ化することに成功しました.

注意：

  • .jarファイルを作成するには、JDK Ver1.3　以上がインストールされていることが必要です。

  • アプリケーション名、公開プログラム名、パラメータ名にDBCS（全角文字、または半角カタカナ）を使用しないでください。また以下の文字も含めることができません。

~!@#$%^&*()-+= |\/?,''<.>;:"`


ホストIDの表示

ライセンスマネージャが起動されているPCのホストIDが表示されます。

ダイアログの表示内容をもとにホストID を確認してください。

PC にNIC が複数装着されている場合、コンボボックスをクリックすると有効なNIC に対応したホストID が表示されます。このうちのどれかを使用してください。（コンボボックスでホストID を選択後、[確認]ボタンをクリックするとライセンス登録時のホストID の確認時にデフォルトで表示されます。）

ここで表示される番号を、ホストID としてください。

注意：

  • ホストID を取得したPC でのみ、ライセンスサーバの実行が有効になります。ライセンスサーバ用PC の選定は、変更が発生しないように考慮してください。

  • NIC のMAC アドレスをホストID として使用しています。

  • NIC が２つ以上装着されていて、１つしか使用しない場合。ホストID の確認やユーザ登録は、必ず同じNIC のみにケーブルを接続した状態で行ってください。（NIC にケーブルが接続されていないと、ホストID が取得できない場合があります。）

  • ライセンスを登録する場合は、必ずユーザ登録時に使用したホストID を持つPC上でライセンス登録処理を実施してください。（別のPC で行った場合、ライセンスは有効になりません。）


ライセンスの確認

入力されたライセンス情報の妥当性が表示されます。

  • ライセンスが妥当な場合……その旨のメッセージが表示されます。OKボタンをクリックするとダイアログが閉じ、[追加]ボタンが有効になります

  • ライセンスが正しくない場合……ライセンスが正しくない旨のメッセージが表示されます。追加ボタンが有効になりません。

  • 既に同じ製品のライセンスが登録されている場合……登録済みである旨のメッセージが表示されます。この場合は、登録されているライセンスを削除する必要があります。


ライセンスの削除

[ライセンスの削除]ボタンをクリックすると削除確認のダイアログが表示されます。デフォルトボタンは「No」になっています。一旦、ライセンスを削除する、ライセンスを登録し直さない限り無効になります。

ライセンスの削除は、ユーザ数を増やすなど同じ製品のライセンス情報を変更する場合に使用します。


ライセンスの入力

ライセンスマネージャの右側にある [ライセンスの追加] というボタンをクリックすると表示されます。ここから以下のライセンス情報を入力します。

  • ライセンスコード

  • Activation Key（２カ所あります）

  • シリアル番号

  • ユーザ登録名

ユーザ登録名を入力したら、Tab または、↓ キーを押してください。入力欄の下に入力したライセンス内容が表示されますので、確認の上[ライセンスの確認]ボタンをクリックしてください。確認ダイアログが表示されます。


ライセンスマネージャ

MAGIC ユーザ登録センターからライセンスコードを入手されたら、ライセンスマネージャを使用してライセンス登録処理を実行してください。

ライセンスマネージャを起動すると現在登録されているライセンスが一覧表示されます。ここに表示されている内容は、以下のライセンス情報をもとにしています。

  • Magic Studio/Magic Client …… Magicのインストールディレクトリ内に存在するLicense.datの内容

  • Magic Enterprise Server …… C:\FlexLM ディレクトリ（固定）に存在するLicense.datの内容

右側には操作用のボタンが表示されています。

  • ライセンスの追加 …… 新たにライセンスを追加します。クリックするとライセンスの入力ダイアログが表示されます。

  • ライセンスの削除 …… 既存のライセンスを削除します。一覧表示のライセンス名にカーソルを置いてクリックするとそのライセンスが削除されます。デモライセンスやVer9のライセンスは削除できません。

  • ホストIDの表示 …… 現在のPCのホストIDが表示されます。ユーザ登録時にホストIDが必要な場合に使用します。

  • 再表示 …… ライセンスファイルの内容を再度読み込みます。

  • ユーザ表示 …… Magic Enterprise Server の場合のみ有効です。ライセンスを使用しているユーザ名（ユーザID）が表示されます。

  • 閉じる …… ライセンスマネージャーを終了します。


パラメータタイプ

1 | Char
W | Wchar
2 | Short
4 | Long
F | Float
8 | Double
0 | Void
A | null で終了する文字列pointer
U | LPCWSTR
T | Buffer pointer
L | Long pointer
E | Float pointer
D | Double pointer
V | Void pointer


処理コマンド 外部コール 特性 ReturnCode

ReturnCode

ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性

Webサービスが正常に終了したかどうかを表す論理型の項目を設定します。


項目特性 代入 自動再計算

非手続き型方式での代入式の自動再計算

データビューエディタ > 項目特性 > 代入

レコードレベルの実行時には、項目（実データ項目または変数項目）の値が変更された場合、その項目に定義されている[代入]特性が自動的に実行（再計算）されます。この再計算は、タスクのモードとは関係なく実行され、ちょうどスプレッドシートのセルの再計算と同じと考えることができます。再計算処理は、以下のルールで実行されます。

  • [代入]特性の式に使用されている項目のどれかを修正した場合

  • [代入]特性が設定されている項目より前に、修正項目が定義されている場合

この２つの条件が満たされた時、[代入]特性が再計算されます。[データビュー]エディタでの再計算は、順方向（処理テーブルの上から下へ向かって）にだけ処理されます。

[レコード後]では、項目のいずれかが変更されると、項目に定義されている[代入]特性に対して再計算が実行されます。再計算は、まず、データビューエディタ内の変更された項目が定義されている行から始まり、テーブルの最後の行に向かって実行されます。

[代入]特性の再計算は、Magicエンジンの非手続的処理の1つです。

なお、これ以降の説明では、項目のうち、[代入]特性が「0」以外の項目（[代入]特性が定義されている項目）を「代入項目」と呼びます。また、[代入]特性で使用されている項目のうち、項目が変更されたことにより、[代入]特性の再計算で使用される項目を「修正項目」と呼びます。

例えば、実データ項目Aに「5」が、実データ項目Bに「6」が入っていたとします。また、実データ項目Cに「A*B」という[代入]特性が定義されていたとします。この場合、エンドユーザがタスクを登録モードで実行すると、実データ項目Cには「30」という値が初期値として代入されます。その後、エンドユーザが実データ項目Aの値を「7」に変更すると、実データ項目Cの[代入]特性が自動的に再計算され、実データ項目Cの値は「42」になります（非手続き型処理）。したがって、エンドユーザは項目Cにカーソルを移動し、「42」という値を入力する手間が省けます。上記では、実データ項目Aが修正項目ということになります。

修正項目の値は、次のような時に変更されます。

  • エンドユーザが手動で値を変更した時

  • [項目更新]処理コマンドの実行時

  • 修正項目がタスクまたはプログラムでパラメータとして使用された時

  • [データ入力]処理コマンドでデータが入力された時

  • 修正項目が[戻り値]として使用された時

修正モードに対する変更は、データビュー（エンドユーザによる対話型操作）のほか、そのレコードレベルから呼び出される子タスクがあれば、その子タスクでも発生します。また、[レコード後]レベル（非対話型操作）でも発生します。

項目を含んだ代入式を持つ項目に対して、再計算は以下のモードで実行されます。

  • モードが、登録モードまたは修正モードの場合

  • タスクが、オンラインタスクまたはバッチタスクの場合

  • 高速モードまたは通常モードの場合

再計算は、再計算される全ての代入項目に対して継続して実行されます。再計算が続くのは、再計算される項目自体が他の項目の[代入]特性で使用されていることがあるためです。１サイクルの再計算が終わると別のサイクルが開始され、関連する代入式が全て実行されるまで続きます。

再計算されるためには、代入項目は以下の２つの条件が両方とも満たされる必要があります。

  • 代入項目が、[データビュー]エディタ上で修正項目の後に定義されていること

  • 代入定項目の代入式に修正項目が使用されていること


項目特性 代入 動作

代入特性の動作

データビューエディタ > 項目特性 > 代入

[代入]特性の実行方式には、手続き型と非手続き型の２種類があります。また、手続き型方式の場合、変数項目とパラメータ項目には同じルールが適用されますが、カラム項目と変数/パラメータ項目とで計算の方法が異なります。

  • カラム項目は、タスクが登録モードで実行される時にだけ作成されます。この関係から、代入式は、タスクが登録モードで実行され、レコードが画面に表示される前に実行されます。また、カラム項目にリンクが設定されている場合、そのリンク処理が失敗した時に初期設定値が設定されます。

  • 変数/パラメータ項目は、必要に応じて作成されます。このため、初期設定値はモードとは関係なく設定され、画面に表示されます。

  • 変数/パラメータ項目を選択し、[代入]特性を定義しなかった時は、項目には、[項目更新]処理コマンドによって値が設定されます。こういった項目は、レコード処理の開始時に値が「0」になることはなく、それまでの値がそのまま格納されています。したがって、[代入]特性を定義しない変数/パラメータ項目は、累計用の項目として使用できます。

参照

非手続き型方式での代入式の自動再計算


処理コマンド コール 特性 プログラム名（式）

プログラム名（式）

ロジックエディタ > 処理コマンド > コール > コール特性

ここから[式]エディタにズームして公開プログラム名が返る式を指定することで、実行時に起動するプログラムを動的に指定することができます。


処理コマンド 外部コール 特性 Result

Result

ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性

この特性は、[オプション]特性の選択内容によって異なります。

  • M=メソッド …… ここからズームすると戻り値の詳細が表示され、値を設定することができます。

  • G=プロパティの取得 …… ここからズームすると戻り値の詳細が表示され、値を設定することができます。

  • S=プロパティの設定 …… ここからズームすると戻り値の詳細が表示され、設定する値を指定することができます。


処理コマンド コール 特性 戻り値

結果

ロジックエディタ > 処理コマンド > コール > コール特性

この特性は、オプションです。[項目一覧]にズームし、戻り値を格納するデータ項目を選択します。

起動するプログラムに[戻り値]特性が定義されている場合、この値が返ります。


メニュー項目イメージ

Magicは、メニューに表示するテキストに対応したイメージを提供しています。これらのイメージは、メニュー項目のアイコン画像を提供しています。同じメニュー項目イメージは、ツールバーに表示させることができます。

[メニュー特性]にてメニュー項目に対応するイメージを設定することができます。[イメージ場所]特性で、メニューに表示するかツールバーに表示するかを指定できます。イメージはツールバーまたは両方の中でメニュー項目の隣で表示されることができます。

[イメージ番号]特性からズームして、表示するイメージを選択することができます。

指定されたイメージは、実行時メニューテキストの前に表示されます。コンテキストメニューとツールバーの両方にイメージを設定することはできません。コンテキストメニューが選択された場合ツールバーは無効になります。

メニュー項目イメージには、以下の特徴があります。

  • メニュー項目が無効の場合、そのイメージは灰色で表示されます。

  • メニュー項目イメージが選択された場合、イメージは立体表示されます。

  • ユーザによって指定されたイメージが見つからない場合、イメージは表示されません。


ヘルプ リポジトリ テキスト

テキスト

メニューとヘルプ > ヘルプ > ヘルプタイプ

内部ヘルプ、自動ヘルプ、ツールチップの表示テキストを入力します。自動ヘルプの最大文字長は、256桁です。


MQMSG_ACKNOWLEDGMENT_FULL_REACH_QUEUE

メッセージング > MSMQ との接続 > メッセージセットアップテーブル > MSMQプロパティ > Ack

メッセージがキューに渡ったか否かによって肯定または否定応答が入ります。メッセージの到達制限時間タイマの期限を超えた場合、否定応答が入ります。

数値は、5 です。


MQMSG_ACKNOWLEDGMENT_FULL_RECEIVE

メッセージング > MSMQ との接続 > メッセージセットアップテーブル > MSMQプロパティ > Ack

受信までの到達制限時間タイマの期限を超える前に、メッセージがキューから取り出されるかどうかによって肯定または否定応答が入ります。

数値は、14 です。


MQMSG_ACKNOWLEDGMENT_NACK_REACH_QUEUE

メッセージング > MSMQ との接続 > メッセージセットアップテーブル > MSMQプロパティ > Ack

メッセージがキューに到達できなかった場合、否定応答が入ります。メッセージの到達制限時間タイマの期限を超えた場合、否定応答が入ります。

数値は、4 です。


MQMSG_ACKNOWLEDGMENT_NACK_RECEIVE

メッセージング > MSMQ との接続 > メッセージセットアップテーブル > MSMQプロパティ > Ack

受信までの到達制限時間タイマの期限を超える前に、メッセージをキューから取り出すことができない時、否定応答が入ります。

数値は、12 です。


MQMSG_ACKNOWLEDGMENT_NONE

メッセージング > MSMQ との接続 > メッセージセットアップテーブル > MSMQプロパティ > Ack

（デフォルト）受信の成功、失敗にかかわらず肯定応答メッセージは入りません。

数値は、0 です。


MQMSG_DEADLETTER

メッセージング > MSMQ との接続 > メッセージセットアップテーブル > MSMQプロパティ > Journal

ネガティブなソースのジャーナル化を要求します。メッセージの配信に失敗した場合は、該当する配信不能キューにメッセージを保存します。 これは、 MSMQ 3.0以上 で有効です。

数値は1 です。


MQMSG_JOURNAL

メッセージング > MSMQ との接続 > メッセージセットアップテーブル > MSMQプロパティ > Journal

ポジティブなソースのジャーナル化を要求します。メッセージが次のコンピュータに正常に配信された場合は、メッセージのコピーがPCのコンピュータジャーナルに保存されます。しかし、配信に失敗した場合は、該当する配信不能キューにメッセージが保存されません。

数値は2 です。


MQMSG_JOURNAL | MQMSG_DEADLETTER

メッセージング > MSMQ との接続 > メッセージセットアップテーブル > MSMQプロパティ > Journal

ポジティブなソースのジャーナル化とネガティブなソースのジャーナル化を要求します。メッセージの送信が成功した場合はコンピュータ ジャーナルにメッセージのコピーが保存され、失敗した場合は該当する配信不能キューに保存されます。これは、 MSMQ 3.0以上 で有効です。

数値は3 です。


WMQ コンポーネントプログラム MessagingVersion

WMQ.Messages in queue

メッセージング > WebSphere MQ との接続 > コンポーネントプログラム

メッセージングコンポーネントのバージョンが返ります。（文字：20）

パラメータ | 説明
Queue Handle | 数値（18）／（入力）：キューのハンドル


MQMSG_JOURNAL_NONE

メッセージング > MSMQ との接続 > メッセージセットアップテーブル > MSMQプロパティ > Journal

（デフォルト）ソースのジャーナル化は無効です。メッセージの送信が成功した場合でも、メッセージのコピーはコンピュータ ジャーナルに保存されず、失敗した場合も該当する配信不能キューに保存されません。

数値は0 です。


WMQ コンポーネントプログラム Open Dynamic

WMQ.Open Dynamic

メッセージング > WebSphere MQ との接続 > コンポーネントプログラム

WMQ.Open Dynamicプログラムは、複数のキューマネジャーに対してクライアントモードで同時に接続できるようにします。

プログラムは、チャンネル名やWMQホストURL、およびチャンネルのリスナーポート番号に基づいてWMQとの接続をオープンします。プログラムはキューのハンドル値を返します。

パラメータ

説明

Queue Manager

文字 (48)／入力：MQ キューマネージャの名前

Queue Name

文字 (48)／入力：通常のメッセージングに対してはオープンするキューの名前を指定します。パブリッシュやサブスクライブの場合は、ブローカ名を指定します。

Topic Name

文字 (50)／入力：トピック名を指定します。パブリッシュとサブスクライブの場合のみ指定します。

Broker Stream

文字 (50)／入力：ブローカストリームを指定します。パブリッシュとサブスクライブの場合のみ指定します。（例：SAMPLE.BROKER.RESULTS.STREAM）

Queue Access Mode

文字 (1)／入力：アクセスを表す文字

  • W …… 書込：メッセージがキューに書き込まれます。

  • R …… 読込：メッセージが読み込まれ、削除されます。

  • P …… パブリッシュ：メッセージがトピックに配信されます。

  • S…… サブスクライブ：メッセージがトピックに申し込みされます。

Share Mode

文字 (1)／入力：キューの共有を表す文字列。

  • A …… キューは全てに利用可能

  • E …… 他のセッションは、このキューを読めません

Fetch Order

文字 (1)／入力：

  • P …… 物理順：入力順

  • L …… 論理順：グループまたはトランザクションに依存します。パブリッシュ とサブスクライブでは意味がありません。

Message Fetch Mode

文字 (1)／入力：読み込みメッセージの処理を指定します。

  • R …… 削除：メッセージは読み込まれた後削除されます。

  • B …… 参照メッセージは読み込まれますが削除されません。このオプションは、アクセスモードが R（読込） の場合のみ有効です。パブリッシュ とサブスクライブでは意味がありません。

Participate in Broadcast

論理値 (5)／入力：そのキューがメッセージブロードキャストに参加するかどうかを指定します。このパラメータは、メッセージ送信用にオープンしたキューのみ関係します。ブロードキャストを使用して、1つのメッセージが、パブリッシュのように、いくつかのオープンキューへ送信されます。

Subscription Scope

文字 (1)／入力：サブスクリプションの有効範囲。 このパラメータはサブスクリプションのみ関係します。 指定できる値は以下の通りです。

  • L …… ローカルなパブリケーションがサブスクリプションと同じブローカキューから送信します。

  • G …… グローバルなパブリケーション

Receive On Request

論理値 (5)／入力：パブリケーションは、リクエストがあった場合のみ受信されます。このパラメータはパブリケーションのみ有効です。

Receive New

論理値 (5)／入力：パブリケーションは、サブスクライビングを行う場合サブスクリプションが受信される前に送信します。このパラメータは、サブスクリプションのみ有効です。

Unsubscribe on Close Queue

論理値 (5)／入力：このパラメータが「True」の場合、キューがクローズした時にコンポーネントが自動的にトピックから登録を取り消します。これは、コンポーネントがクローズするとトピックから登録を取り消すことを意味します。

Low-Hi order

論理値 (5)／入力（オプション）：番号の語順が書き込まれ、昇順に読み込むかどうかを指定します。Windowsの規格では「True」 、UNIX の規格では、降順なので「False」 になります。このパラメータが渡されない時、フェッチされた値はグローバル設定から取得されます。詳細は、「環境設定」を参照してください。

Encoding

数値 (1)／入力：文字項目のエンコードタイプ

  • 1 …… ANSI

  • 2 ……EBCIDIC

  • 3 ……UNICODE

Code Page

数値 (5)／入力（オプション）：メッセージのエンコードで使用するコードページ。このパラメータが渡されない場合、フェッチされた値は、グローバル設定値から取得します。グローバルな値がグローバルセットアッププログラムか論理名で設定されていない場合、エラーが返されます。詳細は、「環境設定」を参照してください。

Correlation ID

BLOB／入力：サブスクリプションのみ有効です。このパラメータは、確実にサブスクライブされたメッセージの受信のみのフィルタを定義します。

指定できる最大サイズは、24バイトです。

Msg Persistence

文字 (1)／入力：そのメッセージがシステム障害に耐えられるかどうかを示します。 サブスクリプションのみ有効です。

  • P …… 持続性あり。メッセージがシステム障害およびキュー・マネージャーの再始動後も存続することを意味します。

  • N …… 持続性なし。メッセージが通常はシステム障害およびキュー・マネージャーの再始動後は存続しないことを意味します。

  • D …… キューに依存します。

Subscription period

数値 (N10)／入力：メッセージの寿命をミリ秒で指定します。サブスクリプションのみ有効です。-1 の場合、無期限になります。

Disconnect on Close

BLOB／入力：メッセージの読み込みと書込で関係します。キューがクローズされた後でMQサーバへの接続をクローズします。同じキューマネージャでオープンされている他のキューもクローズする場合がありますので注意してください。

Remote Queue Manager

文字 (48)／入力：リモートキューマネージャの名前を指定します。このパラメータは、ローカルのキューマネージャへの接続時、指定されたリモートキューマネージャにメッセージを送信します。

Channel Name

文字 (48)／入力：WebSphereクライアントに設定されたチャネル名を指定します。

MQ HOST

文字 (100)／入力：WebSphere MQ ホストのURLを指定します。

Port

数値 (6)／入力：チャネルのリスナーポート番号。指定は任意です。このパラメータを空白にした場合、デフォルトでWebSphere MQは1414などが設定されます。

戻り値

数値 (15)：接続が成功した場合、キューハンドルが返されます。接続が成功しない場合は、負の値が返され、エラーがError Log に書き込まれます。


変換ユーティリティ パラメータ

パラメータ

マイグレーション > 変換ユーティリティ

変換ユーティリティは、以下のパラメータが指定できます。

パラメータ

説明

-Export

V9Plusアプリケーションのリポジトリ出力ファイル（とパス）を指定します。
このパラメータは必須です。

例： V9converter -EXPORT=C:\Myapp.exp

-Project

Magic eDeveloper V10のプロジェクトディレクトリを指定します。

このパラメータは必須です。

指定されたプロジェクトディレクトリがすでに存在している場合、別のディレクトリを指定するように求めるメッセージが表示されます。

参考：プロジェクト名と.edp ファイル名はプロジェクトのサブディレクトリ名を使用します。

例： V9converter -EXPORT=C:\Myapp.exp -PROJECT="c:\my prjs\prj1"

-LANG

言語を表す以下の3桁の文字列を指定します。

この情報は、ACT およびMODE リテラルが含まれる文字列の処理で必要になります。

CHN …… 中国語

DAN ……デンマーク語

ENG ……英語

FRE ……フランス語

GER …… ドイツ語

HAN ……韓国語

HEB ……ヘブライ語

HUN ……ハンガリー語

NLD ……オランダ語

POL ……ポーランド語

POR ……ポルトガル語

RUS ……ロシア語

SPN ……スペイン語

SWD ……スウェーデン語

TWN ……台湾語

JPN ……日本語

例： V9converter -EXPORT=C:\Myapp.exp -PROJECT="c:\my prjs\prj1" -LANG=JPN

このパラメータはオプションです。このパラメータが設定されない場合、デフォルト値の「ENG」として処理されます。

-LOCALS

ローカライズ指定を表す5桁の文字列を指定します。

日付タイプ …… 最初の文字は、[日付タイプ]を指定します。

  • E …… ヨーロッパ（デフォルト）

  • A …… アメリカ

  • J …… 日本

これ以外の文字が指定された場合、デフォルトの「ヨーロッパ」として処理されます。

３桁区切文字 …… 2番目の文字は、[３桁区切文字]を指定します。（デフォルトは、「,」です。)

小数点 …… 3番目の文字は、[小数点]を指定します。（デフォルトは、「.」です。)

日付区切文字 …… 4番目の文字は、[日付区切文字]を指定します。（デフォルトは、「/」です。)

時刻区切文字 …… 4番目の文字は、[時刻区切文字]を指定します。（デフォルトは、「:」です。)

-LOG

変換ログファイル名とパスを指定します。

このパラメータはオプションです。デフォルトファイル名は、[Ver9 の出力ファイル名] _cnv.log　です。このファイルは、ユーティリティのカレントディレクトリに作成されます。

-PREFIX

Magic V9Plusアプリケーションの識別子を指定します。これは、テーブル名が指定されていないISAM テーブルを変換するために必要です。

このパラメータはオプションです。指定されない場合、識別子は、「XX」として処理されます。

-INI

上記のパラメータを定義したパラメータファイル（テキストファイル）を指定することで複数のアプリケーションを一括して変換できます。

パラメータファイルの定義内容は、Magicノインストールディレクトリ内のConversionUtility.iniファイルを参考にして下さい。


モデルリポジトリ クラス フレームセットクラス

フレームセットモデルクラス

モデル > モデルリポジトリ > クラス

フレームセットモデルクラスは、ブラウザウィンドウを分割するためにフレームセットを表示します。


テキスト形式コントロール特性 表示 境界

境界

出力フォーム > 帳票フォーム > テキスト形式コントロール特性 > 表示

コントロールの境界線のスタイルを定義します。有効な値は次のとおりです。

  • T=細線……細線でコントロールを囲みます。

  • H=太線……太線でコントロールを囲みます。

  • N=なし……コントロールに境界線を表示しません。

デフォルト設定はコントロールのタイプによって異なります。


テキスト形式コントロール特性 詳細 コントロール名

コントロール名

出力フォーム > 帳票フォーム > テキスト形式コントロール特性 > 詳細

コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数やコントロールハンドラで参照することができます。

[コントロール名]特性は30桁に制限されます。後続空白は使用できません。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。


テキスト形式コントロール特性 詳細 RTF有効

RTF有効

出力フォーム > 帳票フォーム > テキスト形式コントロール特性 > 詳細

[Yes]に設定すると、リッチテキスト形式が有効になります。


帳票フォーム GUI出力形式フォーム特性 フォーム拡大

フォーム拡大

出力フォーム > 帳票フォーム > GUI出力形式フォーム特性

フォームに定義されたコントロールに[複数行]特性が「Yes」に設定されたものがある場合、この特性を使用することでフォームのサイズを動的に調整することができます。以下のオプションがあります。

  • N=なし …… フォームは拡大されません。

  • O=1ページ …… [複数行]特性が「Yes」に設定された[エディット]コントロールの内容が全て出力されるように1ページの余白の大きさを拡張します。

  • M=複数ページ …… フォームは、[エディット]コントロールのすべての行が出力されるように複数のページにまたがって拡大されます。データが1行に納まらない場合は、テーブル行が拡大されます。

参考

  • 印刷プレビューを実行した場合、ラップされた項目の最後の行が正しく表示されない場合があります。これは、プレビュー機能の問題で、印刷では正常に出力されます。

  • フォーム上の[テーブル]コントロール以外に複数行のコントロールが含まれていなければ、[テーブル]コントロール内の複数行コントロールは複数のページにまたがって印刷されます。この場合、「1ページ」と設定されているように動作します。

参照

複数行編集

SpecialSkipInMultiEdit


テキスト形式コントロール特性 表示 フォント

フォント

出力フォーム > 帳票フォーム > テキスト形式コントロール特性 > 表示

コントロールに表示するテキストのフォントを定義します。この特性に値を入力しない場合は、フォームの[フォント]特性に定義されているフォームのフォントが有効になります。


帳票フォーム テキスト形式フォーム特性 区分

区分

出力フォーム > 帳票フォーム > テキスト形式フォーム特性

帳票用フォームの種類を指定します。ヘッダ、明細、フッタ、ページヘッダ、またはページフッタが指定できます。


テキスト形式コントロール特性 表示 線種

線種

出力フォーム > 帳票フォーム > テキスト形式コントロール特性 > 表示

[ライン]コントロールの外観を定義します。有効な値は以下の通りです。

  • R=実線

  • S=破線

  • T=点線

  • A=一点鎖線

  • D=二点鎖線


テキスト形式コントロール特性 詳細 複数行編集

複数行編集

出力フォーム > 帳票フォーム > テキスト形式コントロール特性 > 詳細

スタティックコントロールに適用され、コントロールに複数行のテキストを含めることができるかどうかを指定できます。テキストが編集フレームまたはテキストフレームに入りきらない場合は、フォーム内に全てのテキストが表示されるようにフレームが拡張されます。拡張されたフレームからはみ出たコントロールは全て下に押し出され、新しいフレームの長さに対応する余白を形成します。

テキスト形式のフォームで複数行のエディットコントロールを使用すると、フォームの[フォーム拡大]特性を設定することによって、フォームを単一ページのサイズに設定できます。


マージフォーム 特性 位置とサイズ

位置とサイズ

出力フォーム > マージフォーム > マージフォーム特性

左辺位置 | フォームにあるフレームの左端の位置を指定します。[式]エディタにズームして、フォームのフレームの左端の座標を返す式を入力することにより、実行時に値を指定できます。
上辺位置 | フォームにあるフレームの上端の位置を指定します。[式]エディタにズームして、フォームにあるフレームの上端の座標を返す式を入力することにより、値を実行時に指定できます。
幅 | フォームを表示するウィンドウの幅を指定します。
高さ | フォームを表示するウィンドウの高さを定します。


Sizeable (Frame Set Control Properties - Details)

Output Forms > Frame Set Forms > Frame Set Control Properties

Specifies whether the frame can be resized by clicking and dragging on any of the frame borders. All frames adjacent to the border to be dragged must have this property set to Yes. The default setting is number. The corresponding HTML code is: <FRAME noresize...>


Flip Line

Programs > I/O Files > I/O Properties

This property controls the flipping of a line as it is exported or imported. It applies to right-to-left applications only.

When set to Yes, the line is flipped. When set to No, the line does not change as it is exported or imported.

The Flip Line property is enabled only when the Visual to Logical Translation property is set to Yes or evaluates to a True value.


Flow List

フロー一覧

[タスク]エディタ内に定義されている処理行の最初と最後を選択します。選択ボタンをクリックすることで、複写や移動などのダイアログボックスにも取り、選択された行番号が設定されます。


Path

You can specify in the Path column any valid operating system file name. Optionally you can include server/path to the file name or use a logical name in the expression. In these cases, eDeveloper will read/write according to the specified criteria.


Preview

The Preview option allows the you to redirect the output of a report to the print preview system. The print preview system opens a separate window from which you display the report on the screen, choose a printer, and print.

Note: Print preview is available for graphic printers only.


Visual to Logical Translation

Programs > I/O Files > I/O Properties

This property controls conversions from visual to logical for the processed data. Applies only to File and Printer media. This property applies to right-to-left applications only

When set to Yes, the output process of each field is converted from logical to visual. The entire line is converted from visual to logical. The default value is Yes.

When set to No, no conversion occurs.

You can set an expression, from the Expression field. It is required that the expression returns a Boolean value.


New PPD Password

Projects and Applications > Project Development > Application Properties > PPD Protection Device button

The PPD dialog box lets you program a password into a special protection module. Using this password in conjunction with a protection device allows you to create applications that have an additional measure of protection, beyond that provided by the authorization system.

Enter the new password into this field and click OK to confirm the changes, or click Cancel to return to the Application Properties dialog box without making any changes.

If you click OK a Confirmation dialog box appears. Click Yes to confirm the PPD changes which will then be written to the protection device (the plug), or No to abandon the operation without making any changes to the PPD.


Old PPD Password

Projects and Applications > Project Development > Application Properties > PPD Protection Device button

The PPD dialog box lets you program a password into a special protection module. Using this password in conjunction with a protection device allows you to create applications that have an additional measure of protection, beyond that provided by the authorization system.

Enter the Old Password in the Old Password field.


PPD Content

Projects and Applications > Project Development > Application Properties > PPD Protection Device button

The PPD dialog box lets you program a password into a special protection module. Using this password in conjunction with a protection device allows you to create applications that have an additional measure of protection, beyond that provided by the authorization system.

Enter the PPD content into this field and click OK to confirm the changes, or click Cancel to return to the Application Properties dialog box without making any changes.

If you click OK a Confirmation dialog box appears. Click Yes to confirm the PPD changes which will then be written to the protection device (the plug), or No to abandon the operation without making any changes to the PPD.


PPD Protection Device button

Projects and Applications > Project Development > Application Properties

Use the PPD (Programmable Protection Device) button to access the PPD dialog box. The PPD dialog box provides the facility to program a password into a special protection module. Using this password in conjunction with a protection device lets you create applications that have an additional measure of protection, beyond that provided by the authorization system.

A confirmation dialog box appears when the insertion point leaves the PPD Content property on the PPD dialog box. Selecting No on the dialog box cancels the changes entered in the PPD dialog box.

Selecting Yes in the Save Changes dialog box causes the updated PPD information to be written to the PPD plug, and the insertion point returns to the Application Properties dialog box.

参照

Old PPD Password

New PPD Password

PPD Content


実行レベル イベント 実行

実行

ロジックユニットの実行先を指定します。この特性はリッチクライアントタスクでのみ表示されます。

オプションは以下の通りです。

  • O=最適化：(デフォルト) …… 処理フローに基づいてサーバ上かクライアント上で実行されます。

  • S=サーバ …… サーバ上で実行されます。

この特性は、[関数]か[イベント]ロジックユニットでのみ有効です。

「サーバ」と指定されたロジックユニット内では、ニュートラル（どちらでも実行可能）、またはサーバ側の処理コマンドのみ有効です。


リッチクライアントアプリケーション 動作

実行時の動作

Web 開発 > リッチクライアントアプリケーション

ロジックユニット

[実行]特性が「S=サーバ」と設定されているロジックユニットは、すべてサーバで実行されます。

[実行]特性が「O=最適化」と設定されたロジックユニット内で、最初にクライアント側の処理を実行し、次にサーバ側の処理コマンドを実行した場合、Magicはその処理内容をサーバに送ります。この処理は、クライアント側の処理コマンドに到達するまで継続します。

イベント実行

[ウェイト]特性が「No」に設定された[イベント実行]処理コマンドの動作は、サーバでは変更され、サーバ内でこのイベントのロジックユニット全体を実行することができるかどうかをチェックします。全体を実行することができる場合、処理コマンドはサーバ上で実行されます。チェックできない場合は、処理コマンドはクライアントで実行されます。

ユーザ定義関数

ユーザ定義関数が動作する場合、実行エンジンはクライアント側とサーバ側の両方で処理を実行させることはできません。

ブロックWhile

[ブロックWhile]処理コマンドにサーバ側の処理コマンドが含まれ、残りがニュートラル（どちらでも実行可能）であれば、[ブロック]処理全体は、複数のサーバアクセスを防止するようにサーバに送られます。


リッチクライアントコントロール ツリー 位置とサイズ

位置とサイズ

表示フォーム > リッチクライアントコントロール > ツリーコントロール特性

位置

[位置]特性は、フォームのサイズを変更した時に、コントロールのサイズを変更するかどうかを制御します。[位置]特性は、[コントロールの位置付]ダイアログ内の[左辺割合]、[幅割合]、[上辺割合]、[高さ割合]の組み合わせになります。

この特性からズームして[コントロールの位置付]ダイアログを表示できます。

コントロールの[位置]特性が「0」の場合、フォームのサイズが実行時に変更されてもコントロールのサイズは変化しません。[位置]特性が「0」より大きい場合、フォームのサイズが実行時に変更された時に相対的にサイズが変化します。

[位置]特性を持つコントロールは、元のサイズより小さいサイズにはできません。

X

コントロールのフレームの左端の位置を指定します。実行時に評価される式で動的に指定することもできます。

Y

コントロールのフレームの上端の位置を指定します。実行時に評価される式で動的に指定することもできます。

幅

コントロールの幅を指定します。

高さ

コントロールの高さを指定します。

コントロールレイヤ

コントロールがチョイスコントロールの子としてリンクされている場合、選択したコントロールのリンク先である親のチョイスコントロールの階層を表示します。

例えば、3つの選択肢が定義されたメニューを持つコンボボックスがフォームに配置されている場合、エディットを3番目の選択肢にリンクすると、この特性に番号3が表示されます。この特性は、常に無効になっており、フォームレイアウトでのみ変更できます。この特性は、チョイスコントロールにリンクされているコントロールにのみ有効です。


開発拡張

開発モードでの拡張設定

設定 >

MAGIC.INI に以下のオプションが追加され、開発環境でユーザ定義アプリケーションを実行させるように指定させることができます。

参照

ユーザ定義開発メニュー

プロジェクトファイルの管理


開発拡張 開発メニュー 指定構文 ECF

ECFパス/コマンド

設定 > 開発モードでの拡張設定 > ユーザ定義開発メニュー > ツールメニューの指定構文

メニュータイプがA（アプリケーション）の場合、ここにアプリケーションのECFファイルをパスを付けて指定します。

例：Menu2=A,Magic Wizard, ,%Tools%Wizard.ECF,

ECFパスが指定されていない場合は、このメニューは無効となり表示されません。

指定されたアプリケーションが起動される前に、現在のアプリケーションは一端終了します。アプリケーションに関する情報は、グローバルパラメータとして設定されます。

メニュータイプがO（OS コマンド）の場合は、実行するOS コマンドを指定します。

例： Menu7=O,Notepad, ,notepad.exe,

MFF のパスとコマンドでは、論理名を使用することができます。


開発拡張 開発メニュー 開発モード

開発モード

設定 > 開発モードでの拡張設定 > ユーザ定義開発メニュー

アプリケーションを開発モードでオープンすると、MAGIC.INI の [TOOLS_MENU] セクションで定義されたメニューが表示されます。

[ツール]メニューは、[オプション]メニューの次に表示されます。「T」がショートカットキーになります。


開発拡張 プロジェクト管理 操作構文 ファイル名

ファイル名

設定 > 開発モードでの拡張設定 > プロジェクトファイルの管理 > 操作指定の構文

ファイル名とパス名を指定します。

  • 処理タイプが「Export」の場合、出力ファイル名を指定します。

  • 処理タイプが「Import」の場合、入力ファイル名を指定します。

  • 処理タイプが「ECF」の場合、出力するECFのファイル名を指定します。

ファイル名の指定には、論理名が使用できます。

例：Operation1=Export,c:\temp\a...


動作環境 デフォルト値

デフォルト値

アプリケーションのデフォルト値とデフォルトのNULL表示文字列を、MAGIC.INI の [MAGIC_DEFAULTS] セクションで定義します。

注意：

これらの設定は、MAGIC.INI ファイルの変更のみで行います。動作環境ダイアログではできません。

この設定がない場合は、Magic内のデフォルト値を使用します。

MAGIC.INI 内で指定できるキーワードは以下の通りです。

[MAGIC_DEFAULTS]
DefaultDate = [date value]
NULLAlphaDisplay = [string value]
NULLNumericDisplay = [string value]
NULLLogicalDisplay = [string value]
NULLDateDisplay = [string value]
NULLTimeDisplay = [string value]
NULLMemoDisplay = [string value]
NULLBLOBDisplay = [string value]

注意：

DefaultDate の書式は、日付モードに依存します。実行中にこの値を変更した場合、次に起動した時に有効になります。


MAGIC.INI 特殊パラメータ MAGIC_SPECIAL

[MAGIC_SPECIALS]セクション

設定 > MAGIC.INIファイル > 特殊パラメータ

ClosePrintedTablesInSubtasks

ExceptionMessageBoxDisplay

MergeTrim

SpecialCenteredFloatingWindow

SpecialDefaultTransactionMode

SpecialFlat2DCombo

XXLNumericSize

SpecialRMCompatibleLogic

SpecialExitNoParkable

SpecialOldZorder

SpecialV9BlobInVectorCompatible

SpecialAnsiExpression

SpecialCVSLogin

SpecialEditIncreasedHeight

Special3Dstyle

SpecialBrowserNewWindow

SpecialWebClient


ユーザID 特性 情報

詳細

認証システム > ユーザID > ユーザ特性

設定 > ユーザID > ユーザ特性

ユーザの追加情報を表示する、フリーテキストの注釈です。このメモ項目に入力した情報は、プログラムでUser (2)関数を使用して照会できます。


ユーザID 特性 キー

キー

認証システム > ユーザID

設定 > ユーザID

アプリケーションのいずれかに定義されている権利を表す実際のキー値です。

公開権利を割り当てる場合は、この欄をダブルクリックして[公開権利一覧]を表示し、そこから権利を選択できます。

非公開権利を割り当てる場合は、その権利のキーを直接入力します。キーを直接入力する方法は、公開権利の割り当てにも使用できます。


開発拡張 開発メニュー ツールメニューの読込

ツールメニューの読込

設定 > 開発モードでの拡張設定 > ユーザ定義開発メニュー

ツールメニュー定義は、開発モードの時に読み込まれます。

MAGIC.INIファイルの[TOOLS_MENU]セクションが変更された場合、次のセッションから有効になります。


開発拡張 プロジェクト管理

プロジェクトファイルの管理

設定 > 開発モードでの拡張設定

Magic eDeveloperには、ユーザ定義開発メニューから起動されるツールアプリケーション用の自動処理機能があります。これによってプロジェクトファイルの操作（例えば、アプリケーションのキャビネットファイル化やリポジトリ入出力など）をバックグラウンドで自動的に行うことができます。

MAGIC.INI ファイルの[MAGIC_ENV]セクションで以下のように指定します。

AutomaticProcessingSequenceFile= ファイル名

この場合、エンジンがバックグラウンドモードで起動されると、ファイルで指定された処理を自動的に実行します。

バックグラウンドモードで起動し、アプリケーションサーバとして動作していない場合は、自動処理の終了後にエンジンが終了します。

この機能は、特定の指定した時間に一連の処理を実行させたい場合に有効です。

参照

操作指定の構文


開発拡張 開発メニュー 指定構文 表示メニュー名

表示メニュー名

設定 > 開発モードでの拡張設定 > ユーザ定義開発メニュー > ツールメニューの指定構文

実行時に表示されるメニュー名を指定します。

メニュー名には、アクセラレータキーとして、アンパサンド(&) を含めることができます。

メニュータイプが、A（アプリケーション）、O（OS コマンド）、および、S（サブメニュー）の場合は必須です。S（区切り）の場合は不要です。

例：Menu5=M,My Systems


開発拡張 開発メニュー 指定構文 メニュータイプ

メニュータイプ

設定 > 開発モードでの拡張設定 > ユーザ定義開発メニュー > ツールメニューの指定構文

メニュータイプとして以下の文字が指定できます。

  • A …… アプリケーション。ECF形式のMagic アプリケーションを実行する場合に指定します。

  • O …… OS コマンド

  • M …… サブメニュー。別のメニューのサブメニューにする場合に指定します。

  • S …… 区切り。メニューとメニューの間に区切り線を表示します。

例：: Menu4=A


Non-Displayed INI Parameters

S ettings > Environment Settings

Magic.ini parameters that are not displayed in the Environment dialog box are:

Application Public Name

Default XML Encoding

MDI Client Edge

MDIClientImageFile

MDIClientImageStyle

General Error Log

Automatic Processing parameters


開発拡張 プロジェクト管理 操作構文 識別番号

識別番号

設定 > 開発モードでの拡張設定 > プロジェクトファイルの管理 > 操作指定の構文

各処理の前に指定する識別番号です。

例： Operation3=


開発拡張 開発メニュー 指定構文 メニューID

メニューID

設定 > 開発モードでの拡張設定 > ユーザ定義開発メニュー > ツールメニューの指定構文

メニューを識別するための管理用IDです。ユニークな名前を指定してください。

例：Menu15=

[ツール]メニューの順番は、 [TOOLS_MENU] セクションの設定順で決まります。


開発拡張 プロジェクト管理 操作構文 処理タイプ

処理タイプ

設定 > 開発モードでの拡張設定 > プロジェクトファイルの管理 > 操作指定の構文

処理タイプには以下のものがあります。

  • Export …… プロジェクトのリポジトリ出力

  • Import …… プロジェクトのリポジトリ入力

  • ECF…… プロジェクトをECFとして保存

例： Operation1=Export...


開発拡張 プロジェクト管理 操作構文

操作指定の構文

設定 > 開発モードでの拡張設定 > プロジェクトファイルの管理

自動処理の内容を指定する構文は以下の通りです。

識別番号=処理タイプ, ファイル名,リポジトリ,範囲, スイッチ

参照

識別番号

処理タイプ

ファイル名

リポジトリ

範囲

スイッチ


開発拡張 開発メニュー 指定構文 親メニュー名

親メニュー名

設定 > 開発モードでの拡張設定 > ユーザ定義開発メニュー > ツールメニューの指定構文

親のメニュー名を指定します。指定されていない場合は、[ツール]メニューの下に表示されます。

例：Menu6=0,Bug,System,Menu5


開発拡張 プロジェクト管理 操作構文 範囲

範囲

設定 > 開発モードでの拡張設定 > プロジェクトファイルの管理 > 操作指定の構文

リポジトリを出力する場合の範囲を指定します。ハイフンによって開始と終了の値を指定します（例：13-18）。１つだけ出力する場合は、その番号だけを指定するか、同じ番号で範囲指定してください（例：7 または7-7）。

範囲指定がなかったり、正しくない場合、指定したリポジトリ全体を出力します。

出力するリポジトリが、メニュー、権利、アプリケーション特性、アプリケーションの場合は、範囲指定は不要です。

例：Operation2=Export,c:\temp\a.txt,P,3-10,


動作環境 MAGIC_REPORTSセクション

MAGIC_REPORTSセクション

設定 > 動作環境

MAGIC.INIファイルの[MAGIC_REPORTS]セクションには、帳票用コンポーネントに関する設定が含まれています。

セクションには、以下の特性が含まれています。

  • Data Analysis Tool …… 分析を実行する時に起動するアプリケーション（とパラメータ）を定義します。

  • Persistent Data Path …… 帳票用コンポーネントのデータ保存先のファイル名とパス名を定義します。インストーラはデフォルト値としてここに、「My Documents\eDevReports.dat」と設定します。この設定が空白の場合、BLOBデータを取り出すことができなくなります。メモリテーブルがデータベースとして定義されていない場合、コンポーネント用のテーブルは、空になります。

  • UseMemoryTable …… コンポーネントがメモリテーブルを使用するかどうかを指定します。Y か N で設定します。

  • N …… メモリテーブルを使用しません。開発者の責任でデータを保存する必要があります。

  • Y …… メモリテーブルを使用します。Persistent Data Path の設定が空白の場合 、BLOBデータを取り出すことができなくなります。

参照

データ出力ウィザード


開発拡張 プロジェクト管理 操作構文 リポジトリ

リポジトリ

設定 > 開発モードでの拡張設定 > プロジェクトファイルの管理 > 操作指定の構文

処理の対象となるアプリケーションのリポジトリを指定します。

  • M …… モデル

  • T …… データ

  • P …… プログラム

  • H …… ヘルプ

  • R …… 権利

  • U …… メニュー

  • C …… コンポーネント

  • D …… アプリケーション特性

  • A …… アプリケーション（Exportのみ有効）

例：Operation1=Export,c:\temp\a,export,M...


チェックメッセージ 変更の保存

変更の保存

設定 > チェックメッセージ

修正された[チェックメッセージ]テーブルで内容は、専用のファイルに保存されます。このファイルは、[動作環境]ダイアログの[チェックメッセージファイル]に設定されたファイルが使用されます。デフォルトのファイル名は、「CHK_STD.JPN」です。

[チェックメッセージ]テーブルの編集を行なった場合、[ファイル保存]ダイアログが表示されます。[ファイル保存]ダイアログには[ファイル名]欄があります。現在使用しているテーブルファイル以外のファイルに設定を保存したい場合、そのファイルの名前を変更します。

[チェックメッセージ]テーブルで行った変更は、次にMagic を起動した時に有効になります。ただし、[ファイル保存]ダイアログの[即時有効]欄を「Yes」にした場合には変更が直ちに有効になります。


動作環境 システム ライセンス 設定ダイアログ

ライセンスの設定ダイアログ

Magicの起動時にライセンスファイルとライセンス名を読み込みます。指定されたライセンスファイルが存在していなかったり、ライセンス名が正しくない場合、ライセンスファイルとライセンス名を指定するためのライセンスダイアログボックスが開きます。

ダイアログボックスは、ヘルプメニューから表示させることもできます。これによって、新しいライセンスファイルに切り替えることもできます。

Studioまたは実行エンジンの起動時に、ライセンス管理関係のエラーが発生した場合は、このダイアログボックスは表示されません。

注意：

  • [ライセンスファイル]欄にはライセンスファイル名のみ指定できます。ライセンスサーバは指定できません。

  • ここでライセンス情報を設定すると、Magic.iniファイルの設定内容が更新されます。

参照

ライセンスファイルの設定

ライセンス名の設定


開発拡張 プロジェクト管理 操作構文 スイッチ

スイッチ

設定 > 開発モードでの拡張設定 > プロジェクトファイルの管理 > 操作指定の構文

このパラメータは、定義された処理に追加情報を指定するものです。スイッチには以下のものがあります。

  • WithModels ……Export で有効です。[データ]か[プログラム]のリポジトリ出力を行う際に、関連するモデルを出力するかどうかを指定します。デフォルト値は、「No」です。

  • ImportFolderInfo …… Import で有効です。フォルダを含めてリポジトリ入力するかどうかを指定します。デフォルト値は、「No」です。

  • OverwriteMainProgram …… Import で有効です。メインプログラムを上書きして入力するかどうかを指定します。デフォルト値は、「No」です。

  • OverwritePulldownMenu …… Import で有効です。 プルダウンメニューを上書きして入力するかどうかを指定します。デフォルト値は、「No」です。

  • OverwriteContextMenu …… Import で有効です。 コンテキストメニューを上書きして入力するかどうかを指定します。デフォルト値は、「No」です。


開発拡張 開発メニュー 指定構文

ツールメニューの指定構文

設定 > 開発モードでの拡張設定 > ユーザ定義開発メニュー

ツールメニューは、MAGIC.INI ファイルに以下のような構文で定義します。

メニューID= メニュータイプ, 表示メニュー名, 親メニュー名,ECFのパス/ コマンド,アクセスキー,事前処理ファイル,事後処理ファイル、ツールメニュー番号

参照

メニューID

メニュータイプ

表示メニュー名

親メニュー名

ECFパス/コマンド

アクセスキー


開発拡張 開発メニュー

ユーザ定義開発メニュー

設定 > 開発モードでの拡張設定

ユーザ定義開発メニューを使用することで、Magic の開発環境で使用できるツールアプリケーションを提供させることができます。

開発者は、開発モード時に[ツール]メニューに表示される内容を MAGIC.INI の [TOOLS_MENU]セクションに定義することができます。

参照

ツールメニューの指定構文

ツールメニューの読込

開発モード


User-Defined Tool Menu

ユーザ定義開発メニュー

設定 > 開発モードでの拡張設定

ユーザ定義開発メニューを使用することで、Magic の開発環境で使用できるツールアプリケーションを提供させることができます。

開発者は、開発モード時に[ツール]メニューに表示される内容を MAGIC.INI の [TOOLS_MENU]セクションに定義することができます。

参照

ツールメニューの指定構文

ツールメニューの読込

開発モード


バージョン管理 メニュー チェックアウト 検索と置換

検索と置換

ソース管理 > バージョン管理 > バージョン管理用メニュー > チェックアウト

[検索と置換]処理を実行する場合、「置換」処理のためにオブジェクトをチェックアウトする必要があります。[検索と置換]処理を実行し、チェックアウト処理が失敗した場合、システムは、処理を中止するか、現在のプログラムの処理をスキップするかの確認メッセージが表示されます。


SpecialPDFResolution

Special Settings > Input/Output and Web-Related Special Settings

This flag sets the DPI to be used when printing a form into PDF format.

Valid values: any number

Default value: 96

Since version: 10.1 SP4


デバッガ リモートデバッガ 開発エンジンでのデバッグ

開発エンジンでのデバッグ

アプリケーションのテスト > デバッガ > リモートデバッガ

プロジェクトのデバッグする場合、3つのケースが可能になります。

  • [アクティビティモニタのみ]がチェックされた場合

  • [デバッグ]メニューの[リモートエンジンを切り離す]オプションのみ有効になります。

  • [表示]メニューの[アクティビティモニタ]と[実行コンテキスト]オプションのみ有効になります。

  • その他のウィンドウがオープンされている場合、これらはクローズされます。

  • [アクティビティモニタのみ]のチェックが外され、現在のプロジェクトが実行しているアプリケーションと合っていない場合（または、アプリケーションが実行されていない場合）

  • エラーメッセージが表示され、Magic Studioは、接続ダイアログに戻ります。

  • [アクティビティモニタのみ]のチェックが外され、現在のプロジェクトが実行しているアプリケーションと合っている場合

  • Magic Studoはデバッグモードに入ります。


11 RQGNRC INF NO RESULT

トラブルシューティング > パーティショニングエラー

リモートアプリケーションから何も返りませんでした。

リクエストによって実行されたリモートアプリケーションのプログラムがリクエスタに値を返さない場合に、このステータスが返ります。

プログラムは、以下のいずれかの方法で値を返すことができます。

  • メディアタイプを｢リクエスト｣に設定した[入出力]テーブルを使用してフォーム出力処理コマンドを実行する。

  • File2ReqまたはBlob2Req関数を起動する。


129 RQMRI ERR MODE REJECTED

トラブルシューティング > パーティショニングエラー

リクエストは、開発モード上のエンジンや他のアプリケーションを実行中のアプリケーションサーバに渡りました。アプリケーションサーバを、実行可能な状態に切り替えてください。


トラブルシューティング タイムアウト シャットダウンタイムアウト

シャットダウンタイムアウト

トラブルシューティング > タイムアウト

この値は、全てのアプリケーションサーバに対し、指定された期間内に段階的にシャットダウンするように指示するための数秒です。

構文：ShutdownTimeout = 数値

デフォルト(=1)では、全てのアプリケーションに対して、直ちにシャットダウンするように指示し、MRB自身をも直ちにシャットダウンされます。


構文チェック 区分

チェックメッセージの区分

ユーティリティ > 構文チェック

チェック結果は、以下の３つに分類されます。

  • E=エラー……予期しない動作を起こしかねない記述を示します。

  • W=警告……必要ではないが、場合によっては予期しない動作を起こしかねない記述を示します。

  • R=推奨……よりよい設定内容に関する情報を提供します。

チェックレベルについての詳細は、「最小チェックレベル」の説明を参照してください。


ユーザ定義開発メニュー 定義取得処理 データベース名

データベース名

ユーティリティ > ユーザ定義開発メニュー > 定義取得処理

定義取得するデータベース名を指定します。この名前は、[データベース]テーブルに定義されている名前を指定してください。


ユーザ定義開発メニュー 定義取得処理 スウィッチ

スイッチ

ユーティリティ > ユーザ定義開発メニュー > 定義取得処理

作成されるテーブルのフォルダ名を指定します。この指定は任意です。

例： Getdef, Mssql, dbo.GA_table, FolderName = folder1


Generate Forms - Task APG

作成フォーム

タスク > APG > データリポジトリからのAPG > APGタブ

作成フォーム欄は、作成するプログラムにどのようなフォームを作成するかどうかを指定します。

参照

ここには、照会プログラムに含める項目を指定します。

出力

ここには、出力プログラムに含める項目を指定します。


Output Columns

The Output Columns property defines which columns will be included in the generated output program and therefore displayed in the HTML report returned by the program.

Zoom or double click on the property to select the columns from the Column list.


Query Columns

The Query Columns property defines which columns will be included in the generated query program and the optional form.

Zoom or double click on the property to select the columns from the Column list.


ユーザ定義開発メニュー 定義取得処理 テーブル名

テーブル名

ユーティリティ > ユーザ定義開発メニュー > 定義取得処理

オーナ名を含んだテーブル名を指定します。


Using the MakeKey Utility

MakeKey の使用

ユーティリティ > MakeKey

以下に示す手順で、新しいライセンスを作成することができます。

  1. Makekey.exeユーティリティを実行します。

  2. 実行時のフォルダにライセンスファイル（License.dat）がある場合、ユーティリティは出力ファイル名の入力を要求します。

"license.dat exists, please enter output filename:"

ライセンスファイルが存在しない場合、ユーティリティは自動的に出力ファイルを選択します。

  3. ライセンスファイルのSERVERとDAEMONヘッダを作成するために、独自のヘッダ詳細を指定するか、既存のライセンスファイルから取り出すかを指定します。

"Do you want to use an existing file for SERVER and DAEMON lines [y/n] ?" Yes, No

  4. ヘッダのために既存のファイルを使用する場合、既存のlicense.datファイルを使用するかどうかの確認が要求されます。

"Do you want to use C:\FlexLM\license.dat ? [y/n]:" Yes, No

  5. デフォルトファイルを使用しない場合、ソースファイル名を入力するように要求されます。

"What file do you want to use?"

ヘッダとして使用するファイル名を入力し、処理を継続します。

  6. ヘッダのために既存のファイルを使用しない場合、サーバ名やホストIDというヘッダ情報を指定する必要があります。サーバの情報入力手続は、周期的に表示されます。空白のホスト名を入力することによってこの手続を終了することができます。

  7. ホストPC名の入力要求が表示されます。

"Enter hostname:"

ホストPCの名前を入力します。サーバの入力手続を終了する場合は、空白を入力します。

  8. ホストIDの入力要求が表示されます。

"Enter the hostid:"

PCのホストIDを入力します。IDによる定義を行わない場合は、「any」を入力します。

  9. IPXプロトコルの入力要求が表示されます。

"Use IPX as transport protocol? [y/n]:" Yes, No

IPXを使用する場合は、「Yes」を入力します。（通常は、IPを使用するため、「No」を入力します。）

  10. IPXのソケット番号の入力要求が表示されます。

"Enter the IPX socket number [1234]:"

デフォルトのソケット番号は、「1234」です。

  11. IPXのノード番号の入力要求が表示されます。

"Enter the IPX node number [000000000001]:"

デフォルトのノード番号は、「000000000001」です。

  12. IPXのネットワーク番号の入力要求が表示されます。

"Enter the IPX network number [00000000]:"

デフォルトのネットワーク番号は、「00000000」です。

  13. TCP/IPプロトコルの入力要求が表示されます。

"Use TCP/IP as transport protocol? [y/n]:" Yes, No

TCP/IPを使用する場合は、「Yes」を入力します。

  14. TCP/IPのポート番号の入力要求が表示されます。

"Enter the TCP/IP port number [7412]:"

デフォルトのポート番号は、「7412」です。

他のサーバに対しても詳細を入力することができます。

  15. LMG.exe のデーモンのパスの入力要求が表示されます。

"Enter DAEMON "MAGIC" path:"

  16. ヘッダ情報の入力が完了すると、必要な機能ライセンスを作成するための情報を入力する必要があります。機能情報の入力は、いくつかの機能を入力するために周期的な手続が実行されます。機能名に空白を入力するとこの手続が終了します。

  17. 作成したい機能の名前を入力します。

"Feature name:"

  18. 「FEATURE」か「INCREMENT」か、「UPGRADE」かの区別を指定します。「f」（FEATURE）を指定してください。

"FEATURE/INCREMENT/UPGRADE line? [f/i/u, default: f]:"

  19. FEATUREライセンスに対するバージョンを指定します。

"Version of [Feature name][default 1.0]:"

  20. このFEATUREが許可するインスタンス数を指定します。

"Number of licenses [default: 4]:"

  21. このFEATUREによって許可されるオーバドラフトの数を指定します。オーバドラフトライセンスは、指定されたライセンスを超過して許可するライセンス数を表します。

"Number of OVERDRAFT licenses [default: 0]:"

  22. 「Not specified option」を使用するために、Enterを押下してください。

"Duplicate grouping parameter [NONE, SITE, [UHDV], default: not specified]:"

  23. ここで、ライセンスにコメントを追加することができます。指定されたコメントは、「NOTICE」と呼ばれる特性値として作成され、ライセンスファイルに書き込まれます。

"Intellectual Property Notice [default: ""]:"

  24. ライセンスの使用制限日付を入力します。日付制限をしない場合は、「1-jan-0」を指定します。

"Expiration date [dd-mmm-yyyy, default: 1-jul-97]:"

OSのシステム日付以前の日付を指定した場合、以下の確認メッセージが表示されます。

" If you want to use 1jul-97, type "y":"

  25. このライセンスが有効になる開始日付を入力します。

"Start date [dd-mmm-yyyy, default: 1-jan-95]:"

  26. 使用するライセンスのタイプを指定します。ライセンスサーバを使用するライセンスを作成する場合は、「P=S」という文字列を指定します。ライセンスサーバを使用しないライセンスを作成する場合は、「P=N」を指定します。

"Your vendor-defined string:"

  27. 「any」を入力します。

"Host id (if locking to a single host):"

  28. 別の機能を追加したい場合、#17に戻って機能名を入力します。

  29. MakeKeyへの入力処理が完了すると、作成されたライセンスファイルをアプリケーションで使用することができます。


Using the Requesters

リクエスタの使用

分散アプリケーション > インターネットリクエスタ >

インターネットリクエスタは、ブラウザの上のHTMLファイルからMagicプログラムを実行したりブラウザにプログラム結果を返す際に使用されます。

以下の方法でリクエスタやパラメータを指定することができます。

  • リクエスタを参照するURLを指定したりHiddenフィールドとして送信する設定を埋め込む

  • リクエスタを参照するURLを使用してハイパーリンクを定義する

  • URLを指定する特性値にリクエスタを参照するURLを指定する

リクエスタを参照

外部のHTMLページやブラウザから直接リクエスタを使用する方法について説明します。

Magicプログラムによって作成されたページからリクエスタを使用している場合、Magicは自動的に適切なHTMLコードを作成します。

URLの中でリクエスタを参照するために使用された方法は、どのリクエスタが使用されるか、そしてそれがどのようにインストールされたかに依存します。いくつかの例を示します。

リクエスタ | URLの指定例
CGI | http://servername/cgi-bin/mgrqcgixx.exe
ISAPI | http://servername/scripts/mgrqispixx.dll

パラメータ

インターネットパラメータで指定可能なパラメータは、他のリクエスタと同じように指定できます。以下のパラメータがあります。

APPNAME, PRGNAME, ARGUMENTS, PRIORITY, USER, PASS

パラメータの指定

パラメータはHiddenフィールドやURLの一部として指定できます。

以下は、ISAPIリクエスタを使用した指定例です。

  1. PetShopDemoアプリケーション内のHTMLOrdersListプログラムを呼び出します。

  2. リクエストの優先順位を指定します。

  3. ユーザIDとパスワードを指定します。

Hiddenフィールドで指定する場合の例

<FORM action="/scripts/mgrqispi.dll" method="POST">
<INPUT type="hidden" name="APPNAME" value="PetShopDemo">
<INPUT type="hidden" name="PRGNAME" value="HTMLOrderList">
<INPUT type="hidden" name="PRIORITY" value="4">
<INPUT type="hidden" name="USER" value="supervisor">
<INPUT type="hidden" name="PASS" value="12345">
<INPUT type="submit" name="" value="Submit">
</FORM>

URLで指定する場合の例

URLで指定する場合は、以下のようになります。

<A href="/scripts/mgrqispi.dll?APPNAME=PetShopDemo&PRGNAME=HTMLOrderList&PRIORITY=4&USER=supervisor&PASS=12345>
Call PetShopDemo - HTMLOrdersList
</A>

URLを使用してパラメータを指定する場合、使用できない文字がパラメータに含まれている場合、URLでエンコードする必要があります。

例えば、スペースを入力させる場合は、URLにエンコードされた文字列%20を指定します。

「Pet Shop Demo」をアプリケーション名とした場合のパラメータは以下のようになります。

APPNAME=Pet%20Shop%20Demo


定義取得 XMLタブ 作成プログラム

作成プログラム（CreateXML_XXXX）

ユーティリティ > 定義取得 > XMLタブ

Magicの項目データの内容をもとにXMLデータ化するプログラムです。通常は、Webサービスのプロバイダに渡すパラメータを作成する場合に利用します。

作成されたテンプレートプログラムは、以下のように修正してください。

パラメータ項目の追加

テンプレートプログラムには、XMLデータが格納されるBLOB型項目がパラメータとして定義されています。これにXMLデータとして追加したいデータ項目をパラメータとして追加します。

リンクコマンドの修正

データリポジトリに作成されたXMLデータソースが、登録リンクで定義されています。このリンクを以下のように修正します。

  1. リンクモードを書込リンクに変更します。

  2. ノードID、親ID以外のカラムでデータを追加したいカラムの代入特性に、パラメータ項目を設定します。

タスク特性の変更

タスク特性の以下の特性値を変更します。

  • タスク終了条件：Yes

  • チェック時期：A=後置

注意：

修正されたプログラムにパラメータを渡して起動すると、BLOB項目にXML形式のデータが格納されます。このデータのエンコード指定は、UTF-8固定になっています。データ内に日本語（Shift_JIS）が入っている場合は、BLOB項目をUTF8ToAnsi()関数でUTF-8にエンコードしてください。


定義取得 XMLタブ 検索プログラム

検索プログラム（ScanXML_XXXX）

ユーティリティ > 定義取得 > XMLタブ

XMLデータからMagicで利用できるデータ項目の形でデータを取り出すプログラムです。通常は、Webサービスのプロバイダに返されたパラメータからデータを取得する場合に利用します。

作成されたテンプレートプログラムは、XMLの構成によってルートタスクのみの場合と子タスクも定義される場合があります。このプログラムを以下のように修正してください。

パラメータ項目の追加

テンプレートプログラムには、XMLデータが格納されるBLOB型項目がパラメータとして定義されています。これに検索キーとなる項目と取得したいデータ項目をパラメータとして追加します。

XMLデータ内に1レコード分のデータしか格納されていない場合は、取得したいデータ項目のみをパラメータとして定義します。

範囲条件の設定

XMLデータに複数のレコードデータが定義されている場合、範囲条件を指定してレコードを絞ります。

実際に取得したいカラムがデータ項目として定義されているタスクを開きます（ノードIDと親IDのみ定義されているタスクはそのまま）。検索対象のカラムの範囲特性に検索キーを割り当てます。

（XMLデータ内に1レコード分のデータしか格納されていない場合は、必要ありません）

タスク特性の変更

XMLデータ内に1レコード分のデータしか格納されていない場合は、タスク特性の以下の特性値を変更します。

  • タスク終了条件：Yes

  • チェック時期：A=後置

注意：

修正されたプログラムにパラメータを渡して起動すると、BLOB項目に格納されているデータを取り出すことができます。このデータのエンコード指定は、UTF-8固定になっています。データ内に日本語（Shift_JIS）が入っている場合は、事前にBLOB項目をUTF8FromAnsi()関数でShift_JISにエンコードしてください。


Provide the UDDI Server

UDDIサーバを提供

Webサービス > Webサービスインタフェースビルダ

コンポーネントが生成されると、UDDIサーバを提供ダイアログが表示されます。ここで、UDDIをパブリッシュするのチェックボックスをチェックします。

  1. 問い合わせとパブリッシュの入力欄では、プロバイダー詳細を確認したり、登録後にサービスを修正／追加のために、UDDIサーバのURLを指定します。この情報は自動的にMagic.iniファイルに保存されます。

  2. ユーザ名（最大：100文字）とパスワード（最大：30文字）を入力し、[次へ]をクリックします。

  3. .プロバイダの選択ダイアログでは、ログインしたユーザによって定義されたプロバイダのリストから、プロバイダを選択します。[次へ]をクリックします。

  4. プロバイダオプションダイアログでは、サービスを作成するか、既存のサービスを修正するかどうかを選択します。[次へ]をクリックします。

  5. サービス詳細ダイアログが表示されます。作成を選択した場合、サービス名やサービスの説明、およびアクセスポイント(URL)を入力します。修正を選択した場合、前のセッションで更新されたされたサービスが表示されます。

  6. 作成をクリックするとUDDIのプロバイダ情報が更新されます。


XMLの実行時の動作 タスクフロー 初期モード 登録 挿入の実行

挿入の実行

XML連携 > XMLの実行時の動作 > タスクフロー > タスクの初期モード > 登録モード

前の段階（親の選択）で（明示的または暗黙的に）選択され、有効にされる親IDに基づいて行われます。

  • Magicは、明示的に親IDを使用したり、挿入されたレコード内で暗黙的に他の修正項目を使用したりして位置付けられた親レコードの下にレコードを挿入します。

  • レコードは、ビューの最後に挿入されます。

  • Magicは、暗黙的にはXMLを有効にしません。例えば、「A.E」または「A.D」は、制限するmaxOccurs属性を持つかもしれません。妥当性を保証するために、XMLValidate関数を明示的に実行する必要があります。


XMLの実行時の動作 タスクフロー 初期モード 登録 親の選択

親の選択

XML連携 > XMLの実行時の動作 > タスクフロー > タスクの初期モード > 登録モード

親IDは、以下の２つの方法のうちの1つで設定することができます。

  • 明示的 …… 親ID項目を更新します。

  • 暗黙的 ……（明示的に設定されない場合のみ）修正された要素に依存します。上位の複合要素に属している挿入レコード内の修正項目に基づいて、実行エンジンが挿入レコードがどの親のものかを決定しようとします。位置付け機能は、ビューの上の複合要素に属している全ての修正項目を使用し、これらの値を使用して親のレコードを取得しようとします。


Table Setting

You have to define the database that should be used for the created component tables. The default is the Memory database, but you can select any database defined in your environment. You can zoom (F5) to select a database from the Database List.