FAQ

Magic xpaについてよく出る質問(FAQ)とその回答です。

Q. Magic xpaは、Windowsのショートカット キーをサポートしますか？

A. はい、Magic xpaはWindows互換のショートカットを提供します。ショートカットの詳細は、Magic xpaのヘルプの「組み合わせキー」のトピックを参照してください.

Q. ソースコードはどのように保護することができますか？

A. 開発環境において、Magic xpaは、SCC(Source Code Control) API Ver1.01を使用するサードパーティーのバージョン管理ソフ（例：Visual SorceSafe や、PVCSなど）を使用したバージョン管理機能によって保護することができます。
実行環境では、ECF(eDeveloper Cabinet File)によって保護されます。

Q. MCFファイルは、どこで配置されますか？

A. Magic xpaでは、プロジェクト情報はMCFに保存されません。プロジェクト情報はXMLソースファイルに保存されます。

Q. Magic V9Plusで作成されたコンポーネントを使用することができますか?

A. いいえ、使用できません。Magic V9PlusのアプリケーションやコンポーネントはMagic xpa用に移行する必要があります。

Q. 旧バージョンのMVCS機能を使用することができますか？

A. いいえ、MVCS機能は使用できません。Magic xpaは、サードパーティのバージョン管理ソフトを利用してバージョン管理を行うようになりました。

Q. 旧バージョンのレコードメインはどこにありますか？

A. Magic xpaは、レコードメインを必要としません。ただし、レコードメインの互換機能を利用することができます。
Magic V9PlusのアプリケーションをMagic xpaのプロジェクトに変換すると、RM互換のロジックユニットに変換されます。
このロジックユニットは、[データビュー]エディタに定義された入力されたデータ項目が全て表示され、項目定義処理の間に処理コマンドを定義することができます。

Q. レコードメインがない場合、何を使用してTabの順序を決めるのですか？

A. オンラインタスクの[フォーム]エディタで指定します。フォームを開いて[コマンド]パレットで[自動タブ順序]を指定することで設定できます。[自動タブ順序]を無効にすると、各コントロール特性の[タブ順序]特性を指定することでタブの順序を定義できます。

Q. ライセンスメカニズムどうなっていますか？

A. ネットワークに接続されているPC上で実行されているMagic xpaのインスタンス間で通信を行い、ライセンスをチェックしています。この機能は、提供されたライセンスの不正利用を防止するためのものです。この機能によって、許可されたライセンス数のみ同時に使用することができます。

Q. 複数のウィンドウを並行して実行する場合、別途ライセンスを購入する必要がありますか？

A. いいえ、並行起動するウィンドウのために新たにライセンスを購入する必要はありません。

Q. フォントや基本色の定義ファイルを移行するツールはありますか？

A. Magic xpaでは、フォントや基本色の定義ファイルを移行するツールは必要ありません。現在使用しているV9Plusの定義ファイルは、Magic xpaのアプリケ－ション（基本色／フォント）定義ファイルとして使用することができます。

Q. V9Plusのユーザ定義ファイル（usr_std）が使用できますか？

A. usrupd.exeユーティリティを使用して、Magic xpa用に移行する必要があります。

Q. Ver8.2のアプリケーションをMagic xpaに移行できますか？

A. いいえ、移行できません。xpaへの移行は、V9PlusのSP6a移行からのみ可能です。移行が必要な場合は、MSJの担当営業までご連絡ください。

Q. Magic xpaとそれ以前のバージョンのMagicを同じPCにインストールできますか？

A. はい、Magic xpaとそれ以前のバージョンを同じPCにインストールすることができます。

Q. [サーバ一覧]に「Default SOAP Server」が表示されません.どのようにしてWebサービスを呼び出すのですか?

A. Magic xpaでは、[サーバ]テーブルに「Default SOAP Server」を定義する必要がありません。Magic xpaでは、[サービス]テーブルでWebサービス（[サーバタイプ]を「SOAP」に設定）を定義する必要があります。

Q. Magic xpaは、Btrieve6.15をサポートしますか？

A. いいえ、Magic xpaはBtrieve6.15をサポートしません。

Q. 複合アプリケーション開発ツールとは何ですか？

A. 複数のサービスを結合することによって構築される"複合アプリケーション"は、SOA(Service Oriented Architectures)内のいくつかの異なるソースから得られる機能から成り立っています。
コンポーネントは、個々のWebサービスや他のアプリケーション内から選択された機能、または出力結果がWebサービスとしてパッケージ化されたシステム全体（レガシーシステムの場合がしばしばあります。）です。

Q. バンドルデータベースには何がありますか？

A. Magic xpa の製品CDには、Pervasive SQLとMS-SQL Server のExpress版が同梱されています。

Q. Magic xpaでは、どのデータベースをサポートしていますか？

A. Pervasive SQL, Microsoft SQL Server, Oracle, DB400 がサポートされています。ODBCも利用できますがサポート対象外です。

Q. どのようにして、アプリケーションをMagic xpa用に変換するのですか？

A. アプリケーションの移行方法についての詳細は、リファレンスヘルプの「マイグレーション」のトピックを参考にしてください。

Q. Magic xpaは、Unicodeをサポートしていますか？

A. はい、Magic xpaはUnicodeをサポートしています。詳細は、リファレンスヘルプの「Unicodeサポート」のトピックを参照してください。

Q. 新しいバージョン管理とチームの開発の概念とはどのようなものですか？

A. 新しいバージョン管理とチームの開発の概念の詳細な説明は、リファレンスヘルプの「ソース管理」のトピックを参照してください。

Q. Magic xpaは、どのようなOSをサポートしていますか？

A. Magic xpaは、Windows XP Professional、Windows2003 Server、Windows Vista、Windows 2008 Server、Windows 7をサポートしています。

Q. Magic xpaのサンプルプログラムはありますか？

A. はい。Magic Studioをインストールするとサンプルプログラムもデフォルトでインストールされます。

Q. Magic xpaのデモは、どこにありますか？

A. xpaのデモは、Magic Software Japans のWebサイト内にあります。

Q. Magic V9PlusのMAGIC.INI を使用することができますか？

A. いいえ、そのままでは利用できません。
MAGIC.INI変換ユーティリティを使用することで、Magic xpa で利用できるように変換することができます。


製品概要

Magic xpaとは？

Magic SoftwareのMagic xpa Application Platformは、一つの開発パラダイムを使用してクライアントとサーバの機能分割を自動的に処理することができるリッチインターネットアプリケーション（RIA)とSaaS対応のアプリケーションプラットホーム（SEAP)です。Magic xpaを使用することで、モバイルやフルクライアント、またはWebのいずれかで、自社運用かオンデマンド、ソフトウェアかクラウドが可能なサービス型ソフトウェア（SaaS)、あるいは、グローバルかローカルというように、アプリケーションの実行形式を選択することができます。

Magic xpaの複合型実行機能は、広範囲な実行アーキテクチャーのサポートを提供します。クライアントにおいて、これらは自社運用（クライアント/サーバ)、デスクトップ、Web（HTML5)、ブラウザから独立したリッチインターネットアプリケーション（RIA)、クラウドが可能なサービス型ソフトウェア（SaaS)、AndroidやiOSを含むモバイルプラットフォームが含まれており、そして、サーバではMicrosoft WindowsやIBM i をサポートしています。さまざまな実行モードの全ては、同じアプリケーションのメタデータと開発プロジェクトで定義されます。アプリケーションを変更することで、様々な実行モードで自動的に伝播されることを意味します。

Magic xpa Studioと既存のビジネスアプリケーション・エンジンは、すべての主要なフレームワーク（例えばJavaや.NET）や、主要なデータベース、標準的な通信規約を使用しています。

Magic xpaでサポートするデータベースとOSは、以下の通りです。

ODBCは、さまざまなデータベースに対する汎用的なゲートウェイとしてサポートしています。

注意：

SQLiteデータベースは、Magic xpaで常にインストールされます。

機能的なアーキテクチャー

以下は、Magic xpaの機能的なアーキテクチャーの略図です。

関連トピック：

基本原理

サービス型ソフトウェア(SaaS)

実行アーキテクチャーのサポート

開発パラダイム

エラー処理

複合アプリケーション

接続性

アプリケーションのソース管理

プロジェクトの文書化

アプリケーションのデバッギング、モニタリングとロギング

レポートと帳票出力

ユーティリティ


基本原理

メタデータ駆動型コンパイル済みエンジン

ビジネス・アプリケーションの大部分のプログラムは、一般的な概略フローを共有します。Magic xpa実行エンジンの基本原理は、ビジネスタスクの一般的なフローをサポートするためのコードがすでに記述されており、コンパイルされ、テストされており、指定したビジネスプログラムの開発が容易になるということです。そして、実際のプログラムでの要求を満たすために、ビジネス・プログラムの骨組みを微調整することができます。アプリケーションの概略と予めコンパイルされたプログラムユニットの微調整は、プログラムによって処理される実際の中間生成物が何か、プログラムによって実行されるために必要となる正確なロジックが何か、プログラムで要求されるユーザ・インタフェースの設計は何かを定義することによって行われます。

プログラムのこのメタデータ定義は、メタデータフォーム（モデルやデータソース、ヘルプ画面など）内に記述されたアプリケーションの他の構成要素といっしょに、アプリケーションのソースコードを構成するXMLベースのファイルで保存されます。

コンパイル済みの実行エンジンは、アプリケーションの仮想化を提供するための、様々なビジネス・アプリケーション機能でをサポートするように設計されています。エンジンは様々な技術的要求を満たして、メタデータ駆動型の仕様にもとづいてユニークな個々のアプリケーションへと変化してゆきます。

仮想マシン

コンパイル済みでメタデータ駆動型のため、Magic xpaサーバエンジンは仮想マシンとなります。そして、アプリケーションのメタデータを修正することなく、様々なサーバ・マシンでアプリケーションを実装できるようになります。仮想マシンは、個別の環境定義とアプリケーションのビジネスロジックを明確に分離し、新しい実行に対するカスタム化を可能にします。

下位互換性

Magic xpaは、Magic eDeveloperやMagic uniPaaSを含む既存のMagicアプリケーションとの互換性を提供します。これは、既存の業務機能としての要求を満たすと同時に、従来のビジネスアプリケーションがWebで利用できるように移行できることを意味します。

多言語サポート

異なる単位のITが集中する企業間共通アプリケーションを開発する上での課題の1つは、アプリケーションのユーザインタフェースと収集して提示された生のデータに関して適切に複数の言語をサポートする機能です。

アプリケーションを開発するとき、エンドユーザがどのような言語を使用しているかは必ずしも分かりません。Magic xpaには複数の言語に対する内部サポート機能があるため、アプリケーションの開発後に言語サポート機能を追加することができます。

これは、MLSまたはMagic言語サービスとして使用してされます。MLSは、ユーザに表示される部分を変換します。実際のソース・アプリケーションは変更されません。

Unicodeサポート

Magic xpaは、データの変換や伝送に対してUnicode基準を使用しています。この機能は、Magic xpaのANSIとOEMサポートに追加されています。


サービス型ソフトウェア

ホーム > 製品概要 > サービス型ソフトウェア

サービス型ソフトウェア（SaaS)

Magic xpaはマルチテナント機能のフォームでインターネット・アプリケーションの実装を要求と管理に対応します。そして、それはSaaSモデルでエンタープライズ・アプリケーションを提供する基本原理になります。

SaaS対応アプリケーション・プラットホーム（SEAP)

Magic xpaは、プラットホームレベルでのマルチテナント機能サポートを提供することによって、SaaS対応アプリケーションに様々なインターネット・ベースのアプリケーションを導入することができるようになります。そして、開発者に対して複雑なテナント対応アプリケーションの設計と開発を行う必要性から解放します。

マルチテナント・サポート

テナントのカプセル化

Magic xpaは、SaaSタイプのアプリケーションの一つの実装のために、各テナントが完全にカプセル化されます。

データスペースの共有と分離

マルチテナント機能のためのプラットホーム・レベルのサポートによりアプリケーション・ベンダはマルチテナント設計に対して特別に注意することなくアプリケーションを設計することができて、アプリケーションの基本的な設計に集中するだけで済みます。

Magic xpaプラットホームは、アプリケーションをテナントのデータスペースに対応させ、独立したプロセスによって各テナントに提供することで、アプリケーションをマルチテナント・アプリケーションに変換します。

しかも、Magic xpaのプラットホームは、複数のテナント間で共有し、共通化されたデータスペースを利用できるテナントでカプセル化された環境をアプリケーション・ベンダで微調整することが可能です。

カスタム化

Magic xpaプラットホームの環境依存とコンポーネント・ベースのアーキテクチャーは、アプリケーションのあらゆる要素のカスタム化を可能にします。そして、それによって、各テナントが適合したアプリケーションを取得するようになるマルチテナント機能を実現する単一アプリケーション配備を提供します。

ローカルまたはリモートホスト

Magic xpaプラットホームは、アプリケーションベンダ、またはエンドユーザから独立して、Magic xpaのホスティングサービス・プロバイダの機能を使用して、全体としてクラウド上で実行させることができます。


実行アーキテクチャーのサポート

Magic xpaは、柔軟でスケーラブルなアーキテクチャを使用して、さまざまな実行モードの要求に対応しています。

実行アーキテクチャーは、（モバイルアプリケーションを含む）リッチインターネットアプリケーションに至るフルクライアントアプリケーションからバックエンドサービスの提供までの全ての範囲を容易にします。

Magic xpaは、以下のモデルによる様々なアプリケーションの実行を考慮に入れています。

  • リッチインターネットアプリケーション …… 様々な場所から実行することができる、フルインタラクティブで完全に接続した状態で実行するインターネットベースのアプリケーション。これは、Android、iOS上でのモバイルアプリケーションを含みます。

  • フルクライアントアプリケーション …… クライアントPC上で完全に接続した状態で実行するアプリケーションを提供しているアプリケーション。

  • 分割されたフルクライアントアプリケーション …… 中央のサーバで実行するように、指定されたタスクを分割することでフルクライアントアプリケーションのサービスレベルを強化するアプリケーション。

  • Webアプリケーション …… AjaxベースのアプリケーションによるプレーンなダイナミックHTMLページから、Flashベースのアプリケーションに至るWeb技術に基づいたアプリケーション。

  • サービスプロビジョニング　…… 他のアプリケーションやポータルサイト、マッシュアップその他を提供するバックエンドアプリケーション。


リッチインターネットアプリケーション

使いやすさとデスクトップアプリケーションの生産性を維持し、それを効率的なアーキテクチャーと広い有効性を結合することによって、リッチインターネットアプリケーション（RIA)は内外のどちらのビジネス・アプリケーションに対しても最も好ましい選択肢となりました。

モバイル実行

Magic xpaアプリケーション・プラットホームは、モバイル環境に対応した適した中核となるビジネスアプリケーションを構築するためのツールを提供しています。そして、一つの統一インタフェースでデバイスに依存しないエンタープライズモビリティを提供します。

Magic xpaアプリケーションは、AppleのiOS、Googleの AndroidというモバイルOSをサポートする一つの統一ビジネスロジックのリポジトリを実装するネイティブなクライアントモジュールを使用することにより、スマートフォン上でネイティブに動作させることができます。モバイルデバイス上でのネイティブ実行に加えて、Magicの技術は、複合型やWebベースのモバイルアーキテクチャーでの実行もサポートします。

Magic xpaはエンタープライズ・アプリケーションのために特別に設計されています。そして、エンタープライズのモバイルユーザがリアルタイムに様々なビジネスタスクを実行させることができます。Magic xpaは、企業向けのセキュリティをモバイルエンタープライズ・アプリケーションに対して提供します。転送データやキャッシュデータ、ユーザ認証や権利情報の暗号化をサポートし、デスクトップ・アプリケーションと比較してセキュリティを引き下げることなく、セキュアなレイヤ上で動作します。

関連トピック：

モバイルRIA開発ガイド

RIAアーキテクチャ

RIAをサポートするアーキテクチャは、以下のモジュールから構成されています。

  • Magic xpaサーバ …… リモートクライアント機能を提供する中核となるプロセス。

  • Webサーバ …… 標準的なWebサーバは、リモートHTTPベースのリクエストを処理するために使用されます。

  • Magicインターネットリクエスタ …… クライアントモジュールとMagic xpaサーバ、またはその逆の環境による接続のために使用されるWebサーバの拡張機能。

  • MRB（Magic Requests Broker） …… MagicのインターネットリクエスタとMagic xpaサーバの間で通信フローを管理するミドルウェア。MRBは、各リクエストが最も適当にMagic xpaサーバプロセスに向けられるようにロードバランシングを担当しています。MRBも、フォールトトレランスとキャパシティサージに対するポリシーを実行する能力があります。

  • Magic xpa RIAクライアントモジュール …… アプリケーションのフロントエンドとしての機能を提供する汎用的なクライアントモジュールです。

統一パラダイム

他のRIA技術（これはクライアント側、サーバ側とクライアント/サーバ通信を実装するためにツールセットのコレクションを呼び出します）と異なり、Magic xpaのRIA開発パラダイムは、開発者をエンティティの実行内容の分離作業から解放し、開発者がアプリケーションのビジネス機能に集中できるようにしています。

Magic xpaは、自動的にアプリケーション分割することで、自動的にビジネスロジックを実質的な実行処理に変換します。

自動的なロジック分割

一旦RIAが実行されると、Magic xpaプラットホームはプラットホームが実行しようとしている各処理の性質にもとづいて自動的にアプリケーションのロジックを分割します。クライアントで実行している間、サーバ側のみの処理に遭遇すると、サーバ側に自動的に制御を移します。そして、サーバ側で実行中にクライアント側のみの処理に遭遇したり、サーバ側の動作が終了すると、アプリケーションはクライアント側に制御を移します。自動的なロジック分割はMagic xpaプラットホームの基本的な機能です。これによって、クライアント/サーバ/通信モジュールに分けることなくロジックを定義することができます。

パフオーマンスに基づいた開発

アプリケーション制御がクライアントとサーバの間を頻繁に往復しないように、Magic xpa Studioは開発者がアプリケーションの機能を微調整して、最適化することができるための様々なツールを提供しています。タスクロジックは統合化されており、クライアントとサーバ側のロジックは同じエディタで定義することができますが、Magic xpa Studioは、処理コマンドの種類や定義されたエンティティの使用内容にもとづいて、クライアント側かサーバ側、またはニュートラルかを定義行に表示します。

さらに、Magic spx Studioの構文チェック機能によって、開発者がパフォーマンス改善のために行った修正ロジックを再検討することを推奨するかもしれません。

透過的なコンテキスト管理

Magic xpa RIAの開発者は、ユーザセッションとユーザコンテキストを明示的に定義したり維持することに対して考慮する必要がありません。Magic xpaのプラットホームは、自動的に各リクエストのコンテキストを確認して、エンドユーザの現在のセッションに従うために、暗黙のうちにコンテキストを維持します。

開発者は、コンテキスト特有の情報を定義し、利用することができて、さらに関数の組み合わせることで、実行内容の個別化を強化することができます。

ローカルリソースのアクセスしやすさ

完全に独立した.NETアプリケーションのため、クライアント側のモジュールは、直接ローカルアプリケーションを呼び出すためにローカルのクライアントPCにアクセスすることができ、ローカルのデバイスと対話（ファイルの読み込みやOS環境のアクセスなど）を行うことができます。

このオプションは、クライアント側のニーズに柔軟に対応するようにし、クライアントPC上の永続的な情報を維持することができるようにすることで、追加された値を結果アプリケーションに追加します。

堅固なアプリケーションとデータ保護

Magic xpa RIAの実装は、セキュリティー対策を強化しています。

データのような機密に関わるリソースが、他アプリケーション（それはデータの不正使用になるかもしれません）を使用しているユーザによって直接アクセスすることができる従来のクライアント・アプリケーションと比較して、Magic xpa RIAは、エンドユーザが機密に関わるするべてのリソースを直接アクセスできないようにしています。

ブラウザベースのRIAソリューションと比較して、Magic xpa RIAの専有クライアントモジュールは、エンドユーザがクライアントとサーバの間で内部の通信を利用することを防止します。

Magic xpaは、以下の機能を提供しています。

  • 管理 …… この側面は、ユーザグループ、ユーザ管理と組織の定義の問題におよびます。OSは、使いやすい管理機能を提供します。そして、Magic xpa機能は、Active DirectoryとLDAPのプロトコルを使用してOSからセキュリティ情報を問い合わせます。

  • 認証 …… これは人とシステムの確認に適用されます。彼らは自分が誰であるかを主張し、情報にアクセスするための権利を持ちます。Magic xpaは、Active DirectoryとLDAP標準を使用した自動的なユーザ認証機能を提供します。これらの標準は、開発者が認証サーバを指定することで、ログイン中は自動的に認証できるようになります。OSのユーザに依存しない内部のユーザファイルを使用する内部ユーザ認証機能もあります。

  • 認可 …… この用語は、個人化、アプリケーションの権利管理、トランザクションの権利管理、プロビジョニングとデータ権利管理に適用されます。Magic xpaでは、ビジネスロジックを使用している様々な認可ポリシーを強化することができます。ダイナミックな認可機能と広範囲にわたる権利がアプリケーション・オブジェクトごとにあります。OSのユーザグループと内部認可メカニズムの間の連結も利用できます。

  • 暗号化 …… これは、ネットワーク上のデータを認可されていない人が見ることができないようにすることを意味します。Magic xpaは内部の暗号処理／複合処理を使用しています。これは、独自のキーまたは以下のような標準的な方式でデータバッファを暗号化したり、複合化することができる関数を使用します。
    BLOWFISH, CAST, DES, RC2, RC4, RC5, DES3, RSA, AES

  • 検査 …… この用語は、ログインと否認防止のアクションに適用されます。Magic xpaは、SNMP機能を使用することでこの要求に対応しています。統合プロジェクトの様々なセキュリティ機能によって、SNMPの管理モニタに通知することができます。

  • HTTPサポート …… 一般にMagic xpa RIAとMagic xpaの内部のセキュリティ機能に加えて、セキュアなHTTPレイヤを使用したMagic xpa RIAを実行させることもできます。

一般的な.NETモジュール

RIAのフロントエンドは、一般的な.NETクライアントモジュールによって実行されます。このモジュールは、すべてのMagic xpa RIAアプリケーションで使用されます。

Magic xpaエンジンは、アプリケーションのGUIのフロントエンドとして、Windowsフォームの.NETライブラリを使用します。

基本的なサーバOSに関係なく、クライアント側のコンテナのこの基本的原理は、.NET機能を利用して、アプリケーションの設計や機能、相互運用と全体的なユーザ操作性をかなり強化させるためにMicrosoftの .NET Frameworkとの統合機能を提供します。

ブラウザフリー

Magic xpa の.NETベースのクライアントモジュールで最も重要な利点のうちの1つは、様々に追加されるクライアント側のレイヤ（例えば、Webブラウザ）からクライアントレイヤが独立しているということです。

N-階層

オープンアーキテクチャモデルを使用したMagic xpaは、スケーラビリティや柔軟性、堅固なセキュリティを実現するN階層のモデルで設計され実行されるアプリケーションを提供します。


フルクライアント・アプリケーション

ホーム > 製品概要 > 実行アーキテクチャーのサポート > フルクライアントアプリケーション

フルクライアントアプリケーション

Magic xpaは、スタンドアロンアプリケーションとマルチユーザアプリケーションの機能を提供するクライアントモジュールの開発が可能となるフルクライアントアプリケーションの開発と実行をサポートします。

1～3階層アーキテクチャーのサポート

Magic xpaのフルクライアントアプリケーションは、スタンドアロンアプリケーションとして動作することができます。これは、スタンドアロンでメモリに保存するデータベースを使用したり、業務データをサーバに置いて共有できるようにカスタマイズして操作することができるマルチユーザエンタプライズ・アプリケーションを使用することで可能になります。

フルクライアントアプリケーションの機能は、ロジック分割用に追加階層として設計され供給されたアーキテクチャーを拡張することによって、微調整することができます。

ダイレクトデータ・アクセス

フルクライアントのMagic xpaアプリケーションには、ローカルまたはサーバのデータベースに直接に接続する機能があります。さらに、フルクライアントアプリケーションは、クライアント側でアプリケーションデータを永続的に保存できるようにしてクライアント機能を強化するために、ローカルのXMLベースのデータに直接アクセスすることができます。

パーティショニング

Magic xpaのフルクライアントアプリケーションは、複雑で重いタスクを実行するために、中央に定義されたサーバを呼び出すことで、サーバPCのCPUを利用することができます。


多目的なWebアプリケーション

アプリケーションベンダは、Magic xpaを使用することで、様々なタイプのWebベースのアプリケーションを開発、提供することができます。

プレーンなHTMLページから始めて、AjaxからFlashに至るWebベースの様々なスタイルのアプリケーションを作成することで、様々なタイプのWeb応答に対応する汎用的なフォームを開発することができます。Magic xpaは、マッシュアップやソーシャル・ネットワークにいたるｅコマースからエンタープライズ・ポータルまで、変動する様々なタイプのWebアプリケーションの開発を可能にします。

フレキシブルなHTTPインタフェースの処理

Magic xpaのマージ技術やXMLビューは、アプリケーションが様々なHTTPベースのリクエストに応答して、XMLや他のマークアップ言語によるダイナミックな内容に応答することをを可能にします。

マージ技術は、データをテンプレートにマージすることで実行時に作成される様々な応答用マークアップ言語のテンプレートを定義するすることができます。そして、これを使用することで臨機応変な応答を返すことができます。

開発者は、この技術を使用してでHTTPベースのリクエストを呼び出すことで様々なWebクライアントの技術に対応することができます。


サービスプロビジョニング

いろいろなクライアント・ベースのアプリケーションに加えて、Magic xpaはサービスという形でデータ操作とビジネスプロセスの実行を提供することで、非インタラクティブなアプリケーションや様々なサードパーティのアプリケーションをサポートすることができます。

SOA対応

Magic xpaは、任意の実行形式で企業の様々なSOA（Service Oriented Architecture）を促進したり、着実に実行する、プロビジョニングやサービスの消費を可能にします。

SOAベースのアプリケーションは、例えば、Magic xpaによって本質的にサポートされる以下のような様々な手段で提供することができます。

  • Webサービス

  • 簡単なWebアクセス

  • メッセージング

Magic xpaは、複合アプリケーションの作成のためのサービスを提供する機能として、簡単に統合することができるユーザフレンドリーなウィザードを提供しています。

Webサービスサポート

Webサービスインタフェース定義（WSDL)に含めることで、様々な非インタラクティブなMagic xpaタスクのメソッドをWebサービスに変えることができます。

このように、Webサービスの形式にすることで、様々なMagic xpaタスクを、サードパーティのアプリケーションから呼び出すことができます。

さらに、Magic xpaアプリケーションはサーバ上の情報を読み出し、処理を実行させることができるWebサービスのコンシューマとして設計することができます。

メッセージング接続

分散型アプリケーションでは、2つの異なるアプリケーションが情報を転送するために、互いに通信する必要があります。これを実現する方法のう1つがメッセージキューイングです。そして、これは保証された転送を確実にします。

Magic xpaは、以下の3つの標準的なメッセージング・キューシステムのインタフェースに対応したメッセージキューコンポーネントを提供しています。

  • Microsoft MSMQ

  • JMS

  • IBM WebSphere

注意：

JMSとWebSphere は、サポート対象外です。


開発パラダイム

Magic xpaはメインストリームのプログラミング技法をサポートしており、開発サイクルを補完する広範囲にわたるツールやユーティリティを提供しています。

関連トピック：

コンパイル済みのアプリケーションエンジンをカスタマイズ

リポジトリ

タスク

イベント駆動

論理データビュー

式エディタ

トランザクション処理

統合フォームエディタ


コンパイル済みのアプリケーションエンジンをカスタマイズする

ホーム > 製品概要 > 開発パラダイム > コンパイル済みのアプリケーションエンジンをカスタマイズ

コンパイル済みのアプリケーションエンジンをカスタマイズ

Magic xpaの実行エンジンは、主として開発者とエンドユーザを透過的にする複雑なデータ操作を実行するMagic xpaの能力を支える原動力です。

エンジンは、処理コマンドのセットとロジックユニットと呼ばれる実行ステップの構造を開発者に提供します。これらは一緒になって、エンドユーザ向けのタスクのセットとして実行します。

エンジンは、"ファイルを開く"、"レコードの読込"、"ソート"、"データの画面への表示"などの処理があらかじめ組み込まれています。これは、これらのほとんどの処理を開発者によってプログラムする必要がある他アプリケーション開発ツールと異なります。これらのすべては、組み込み処理としてMagic xpaによって提供されます。


リポジトリ

Magic xpaアプリケーションのワークスペースは、アプリケーションの構成要素が定義されて、アクセス、管理されるリポジトリのコレクションから成り立っています。Magic xpaのプロジェクトは、非常に大きくミッションクリティカルなアプリケーションになる場合があります。Magic xpa Studio 自体は、開発内容を整理しリポジトリ内に区分けする作業をサポートしています。これらのリポジトリの中で、フォルダに分類することができます。

Magic xpaアプリケーションは、以下のリポジトリを利用します。

  • モデル …… データと表示の要素を含むアプリケーションの基本的な構成要素のためのプロトタイプ定義のコレクション。

  • データソース …… データベースやXMLドキュメントを含むアプリケーションのすべてのデータソースのコレクション。

  • プログラム …… アプリケーションの中心的な構成要素。アプリケーションの実行と機能を実現する実行可能な要素です。

  • ヘルプ画面 …… アプリケーションで使用するヘルプやツールチップ、コメント画面のコレクションです。

  • 権利 …… すべての実行権のコレクションです。ユーザがアプリケーションを実行できる権利の定義内容にもとづいて自動対応するアプリケーションによって参照されます。

  • メニュー …… アプリケーションを通して使用されるメニューとコンテキストメニューのコレクション。

  • コンポーネント …… アプリケーションで使用されるすべてのコンポーネントのコレクション。

継承

各リポジトリ内の各要素に対する様々な修正は、フル継承とアプリケーションをまたがる変更に対する即時反映機能を提供する参照要素に即時反映されます。

アプリケーション管理

Magic xpaの開発パラダイムは、全ての機能的適用に様々な要素を結合させるアプリケーション全体を通して作成される参照情報に基づいています。

Magic xpaのリポジトリは、背後で様々なオブジェクトの経過を追跡するために、これらの内部の参照番号を使用します。したがって、リポジトリのエントリを削除したり移動した場合、Magic xpa Studio上の管理番号は付け直されます。しかし、エントリの全ての参照情報が失われることがないように、内部の番号を使用しています。

オブジェクトの再利用

アプリケーションの様々な要素の事前定義は、あらかじめ定義された要素を恒常的に再利用することを考慮しています。一番いい例は、Magic xpaのモデルとコンポーネントです。モデルは、テキスト、ラジオボタン、テーブル、テーブル・カラム、帳票フォーマットなどを含む様々なインタフェース・オブジェクトのルック＆フィールを定義するために使用することができます。モデルやデータソース、そしてプロジェクト全体で再利用できるプログラムのライブラリを作成することで、再利用をさらに進めることができます。これらを利用するプロジェクトを変更することなく、ライブラリをアップグレードすることもできます。これらのライブラリは、Magic xpaコンポーネントと呼ばれています。


タスク

Magic xpaのアプリケーションで最も重要な構成要素は、タスクです。タスクは、プログラムを構成し、手順を実装するために使用される基本的なオブジェクトです。エンジンは、タスクのために定義されるデータソースを通してループすることによって、タスクを実行します。

インタラクティブタスクでは、エンドユーザがレコードからレコードに移動することで、データソースを画面に表示させることができます。これは、レコード処理のみがエンドユーザに表示されることを意味しています。

非インタラクティブタスクでは、Magic xpaのエンジンはデータソースを通してループされます。そして、最後のレコードに達するまで、データビュー内の最初のレコードから全てのレコードに制御が移ります。一旦データソースとタスクタイプが指定されると、Magic xpaまたはエンドユーザがデータソースのレコードを通してループする間、タスクは実行させたい処理コマンドを指定することによってカスタマイズすることができます。


イベント駆動

Magic xpa はイベント駆動アーキテクチャを使用してビジネスロジックを定義することができます。イベント駆動アーキテクチャのパラダイムによるプログラミングによって、ロジックに基づいたアプリケーションをより明確に構築することができます。

イベント駆動アーキテクチャによるアプリケーションでは、エンドユーザからのイベントやビジネスロジックの一部として開発者が設計したイベントに対応した処理を行わせることができます。


論理データビュー

複雑なデータ処理は、タスクに提供する論理的データビューの一元化され分かりやすい定義によって提供されます。論理的データビューは、SQLから複雑なXMLドキュメントにつながるISAMやメモリデータテーブルに至様々なデータソースから構成することができます。そして、データ処理を基本となるソースから完全に独立させることができます。これによって、開発者はデータソースのレコードとカラムの実際の処理に集中することができます。

Magic xpaでは、［データビュー］エディタでこの処理を行うことができます。

XML ビュー

Magic xpaは、開発者がXMLドキュメントを処理して、XML構成の低レベルの複雑さを隠蔽することによって、それらの内容を自動抽出して操作することができます。

様々なXMLドキュメントのスキーマをアプリケーションに読み込ませることで、XMLドキュメントを通常のデータソースのように、タスクのデータビュー定義としてアクセスできる単純なXMLビューに変換することができます。XMLの内容のすべての物理的処理は、一般的な動作（例えば、レコードの取得、レコードの挿入や更新、削除）に応じて、Magic xpaによって透過的に行われます。

DBMS透過性

様々なSQLデータベースのネイティブなゲートウェイは、論理的データビューの表示上の定義を基礎となるデータベースの仕様に合うように調整されたSQLスクリプトに自動的に変換します。

これによって、開発者は高水準のデータ定義を使用しているビジネスアプリケーションを開発して、あるデータベースから別のものに自動的に切り替えたり、Magic xpaが新しいデータベースに対応できるようなネイティブ・ゲートウェイを持つことができます。

ダイレクトSQLスクリプト

各タスクで指定したデータビューの高水準の表示上の定義に加えて、開発者は明示的なSQLスクリプトを直接定義することによって、データを読み出す方法を選択するかもしれません。Magic xpaは、SQLスクリプトを作成するためのジェネレータを提供することで開発者をサポートしています。Magic xpaは、アプリケーションを新しいデータベースに適応させる機能を提供しています。


式エディタ

タスクのすべての式は、1つのテーブル（式テーブル）に保持されます。これらは、ツール内に提供される関数を利用するための手段で、アプリケーションのビジネスルールを実装するために使用されます。

式は、定数または値を計算する式、実行されるアクションや、どの処理が実行されるかといったものを含む一連の処理から構成されています。演算対象には、固定値や関数、リテラルまたは他の下位式が含まれています。

クイック式エディタ

クイック式エディタは、［式］エディタを開くことなく単純な式を入力する手っ取り早い方法を提供します。式（例えば、［代入］または［条件］特性)を必要とするロジックまたは［データビュー］エディタで特性の上にパークした場合、等号（=)を入力すると、式を入力することができるテキストボックスが開きます。


製品概要 データ管理 トランザクション処理

ホーム > 製品概要 > 開発パラダイム > トランザクション処理

トランザクション処理

トランザクション処理は、データベースの整合性を保つために使用されるデータ処理技法です。トランザクション処理は、論理的に関連する一連のデータ修正の実行であるといえます。この一連の処理は、1つのまとまりとして「コミット」（完了してディスクに書き込む）または「アボート」されます。

トランザクションは、読み取り／書き込み操作とは対照的に、読み取り操作を安全に実行するためにも使用できます。読み取りトランザクションでは、トランザクション内で読み取られたデータが他のユーザによって修正されていないことが保証されます。

トランザクション処理の主な利点は、コンピュータシステムのクラッシュから保護されることです。オンラインデータ入力やバッチ処理の途中でコンピュータがクラッシュした場合には、トランザクション全体がアボートされます。このため、データベースが不完全に更新されるのを防ぐことができ、データベースの一貫性が保たれます。

遅延トランザクション

遅延トランザクションでは、データビューのレコードに対する変更をコミットする必要が発生するまで、DMLステートメントの実行を遅らせます。すなわち、DMLステートメントはキャッシュ内に保存されます。変更をデータベースにコミットする準備が整うと、全ての変更が同時に実行されます。これにより、トランザクションの時間が可能な限り短縮されます。

トランザクションツリー

ブラウザベースのプログラムを実行している時、ユーザは、一度に複数のブラウザを開くことができます。個々のブラウザは、トランザクションとの接続を持たない異なるタスクを実行することができます。Magic xpaは、論理的に枝分かれしている遅延トランザクションを分割することによって個々のブラウザをサポートします。各枝は、他の枝との接続のない個別のトランザクションツリーとなります。

Magic xpaは、遅延トランザクションに指定されているモーダレスタスクではネストトランザクションをオープンします。

デッドロックとトランザクション処理

マルチユーザ環境では、デッドロックがトランザクションエラーの一般的な原因となります。デッドロック状況は、2人のユーザが、相手が所有する（ロックしている）リソースを互いに待つ場合に発生します。

各データベース管理システム（DBMS）によって、デッドロックが発生した際の動作は様々です。一部のDBMSでは、デッドロックを検出して警告を発することができます。この場合、Magic xpaはトランザクションをロールバックし、［タスク特性］の[エラー発生時]特性の設定に従って実行を続けます。

一部のISAMデータベースではデッドロック状況でハングアップすることがあるため、Magic xpaではISAMデータベースとSQLデータベース用にデッドロック防止メカニズムを提供しています。デッドロック防止メカニズムを有効にするには、[動作環境]ダイアログ内で[デッドロック防止]設定を「Yes」に設定します。デッドロック防止メカニズムでは、トランザクションが続く間、定義された順序に従って、書き込みアクセスで開かれた全てのテーブルが排他的にロックされます。一時テーブルはロックされません。

ロールバックトランザクション

Rollback関数を使用すると、指定されたネストレベルまでトランザクションをロールバックしたり、トランザクションを完全にアボートしたりすることができます。

Magicキャッシュ

キャッシュに一般的なアルゴリズムを採用している汎用ディスクキャッシュとは異なり、Magicキャッシュでは、物理データとアプリケーションの性質に関する知識に従ってキャッシュを微調整したり、プロジェクト内でユーザごとに微調整することができます。

Magicキャッシュでは、その他のハードウェアキャッシュ手法やソフトウェアキャッシュ手法のようにファイルマネージャを呼び出しません。このためMagicキャッシュでは、これまでの手法のファイルマネージャのオーバヘッドを回避することができます。


統合フォームエディタ

Magic xpaは、インタラクティブと非インタラクティブのタスクのユーザインタフェースを作成することができるビルトインのWYSWYGの［フォーム］エディタを提供しています。フォーム上の様々なコントロールは、コントロールにデータ要素をリンクさせるだけでデータに連動した内容や特性を持たせることができます。

タスクの［イベント］ロジックユニットは、コントロールに定義されたイベントに対応して処理するように設定することができ、拡張された双方向のユーザ操作を提供することができます。

パレットからフォームに直接コントロールやデータ項目をドラッグ＆ドロップすることができます。

MDIとSDI

Magic xpaでは、SDI（Single Document Interface）だけでなく、MDI（Multiple Document Interface）を定義することができます。

MDIとSDIの機能によって、アプリケーションが並行して複数のタスクを実行させることが可能になります。これにより、新規のインスタンスをオープンすることなく複数のタスクを実行することができます。

Magicエンジンは、同じアプリケーション内や同じMagicエンジンのインスタンス内でプログラムを実行する、並行性を維持することができます。


エラー処理

エラー発生時のMagic xpaの動作を制御するレベルは２つあります。Magic xpaにおける事前定義された対応方法は以下の通りです。

  • アボート …… エラーが発生すると、現在のトランザクションがロールバックされます。物理トランザクションおよび遅延トランザクションのいずれの場合にも、現在のデータビューを削除し、エラーが発生したタスクをアボートします。

  • 復旧 …… できる限り現在のデータビューを維持して現行タスクにとどまり、エンドユーザがエラーから回復できるようにします。「復旧」を使用すると、エンドユーザはエラー発生後でもアプリケーション内で作業を続行することができます。

高度なエラー処理によって、［エラー］ロジックユニットを定義することでエラーに対応したMagic xpaコードを記述することができます。Magicエンジンは、検出できる既知のエラーや予想されるエラーの一覧を表示するとともに、使用するDBMS特有のエラーコードなど、その他のエラーに対応する処理を取り扱うことができるようにします。このレベルでは、新しいエンジンの動作仕様が組み込まれており、［エラー］ロジックユニット実行後のMagicエンジンの動作を選択制御することができます。


複合アプリケーション

内部コンポーネント

Magic xpaアプリケーションの内部のオブジェクトは、独立したコンポーネントとしてカプセル化することができます。そして、それは他のMagic xpaアプリケーション内に埋め込むことができます。これによって、アプリケーションはアプリケーションの汎用的な骨組みであったり、アプリケーションの機能拡張として、作成された既存のコンポーネントを利用することができます。

ユーザ機能コンポーネント

ユーザ機能コンポーネントは、エンドユーザに対して範囲や位置付、ソート機能を提供します。アプリケーションに対応してカスタマイズできるように、このコンポーネントはソースコードも提供されています。

埋め込み外部コンポーネント

異なるツールで作成された様々なタイプの外部オブジェクトを、ユーザインタフェースと機能強化のためにMagic xpaアプリケーションに組み込むことができます。

オープン環境

Magic xpaは、サードパーティのリソースをアプリケーションと簡単に結合させることができる高度なオープン環境を提供します。さらに、Magic xpaアプリケーションは、外部アプリケーションからアクセスしたり、起動することもできます。

.NETオブジェクトの挿入

Magic xpaアプリケーションのインタフェースやフローに様々な.NETオブジェクトを直接挿入することができます。このように、開発者は.NET環境で利用できる様々なリソースから恩恵を得ることができます。


製品概要 接続性

ホーム > 製品概要 > 接続性

接続性

Magicプロジェクトと他のアプリケーション間を接続する機能には、「メッセージング」や「ドラッグ&ドロップ」、「メール機能」などがあります。

第3世代言語の呼び出し

[コールUDP]処理コマンドを使用することにより、第3世代言語（Cなど）によるプログラムを実行することができます。必要であれば、パラメータを渡すこともできます。このコマンドでプログラムを呼び出す場合、Cの呼び出し規則が使用されます。

次のような用途で[コールUDP]処理コマンドを使用します。

  • この処理コマンドを使用して、Magic xpaの機能を拡張できます。例えば、ユーザが作成したルーチンを呼び出して、Magic xpaではサポートされていないタスクや機能の実現が可能です。

  • Magic xpa以外の環境で作成されたコードをMagic xpa上で利用できます。

  • 外部プロシージャを使用して、特殊な計算を高速で処理できます。

SNMPサポート

SNMP(Simple Network Management Protocol) は、ネットワーク管理を制御し、ネットワークデバイスやそれらの機能をモニタするためのプロトコルです。アプリケーションやMagicモジュールは、あらかじめ設定されているネットワーク管理ステーション（NMS）にトラップメッセージを送ることができ、この内容はSNMPモニタで参照することができます。

Magic xpaのSNMP機能を利用するには、OSにSNMPエージェントがインストールされている必要があります。

MRBがトラップメッセージを送信するための環境設定情報を、MGREQ.INI と MGRB.INIに設定します。

Java連携

Java との連携機能とは、JavaクラスやEJB(Enterprise Java Beans)のインスタンスを表す「疑似参照」を用いることによって 、Magic xpaがJava クラスやEJBと接続する機能です。Javaクラスに対しては、疑似参照を使用しないでスタティックメソッドや変数にアクセスすることもできます。インスタンスやスタティックメソッドまたは、変数は、JavaやEJB用の関数を使用してアクセスすることができます。

メール機能

Magic xpaは、メール関数によって電子メール機能をサポートしています。これは、SMTPを使用してメールを送信し、POP3やIMAPを使用してメールを受信します。

また、メールサーバとの接続やメール処理のためのタイムアウト値を設定することもできます。

ドラッグ&ドロップ機能

ドラッグ＆ドロップ機能は、同一PC上のMagicプロジェクトと他のアプリケーション間やMagicプロジェクト間でサポートされています。ドラッグ＆ドロップすることによって、標準的なWindowsアプリケーションのようにデータの受け渡しができるようになります。


アプリケーションのソース管理

Magic xpaのアプリケーションは、バージョン管理サーバを使用することでソース管理と並列開発を簡単に行うことができます。

Magic xpaは、標準的なSCC（Source Code Control) のAPI V1.01をサポートします。そして、Magic xpa Studioは、バージョン管理機能を提供する様々な外部バージョン管理ソフトウェア（例えば、Visual SourceSafe ）を利用することができます。

外部ソフトウェアはソース管理のために使用されますが、すべてのソース管理に関係する機能は内部のコマンドやツールバー、メニューから直接アクセスすることができます。


プロジェクトの文書化

Magic Optimizerユーティリティを使用することで、Magic xpaアプリケーションは、アプリケーション全体を記述するドキュメントとして、全ての定義情報と設定内容を出力することができます。

このドキュメンテーションは、アプリケーションの重要な参考資料となり、コードのレビューやアプリケーションの保守の際に利用できます。


アプリケーションのデバッギング、モニタリングとロギング

アプリケーションの品質やパフォーマンス、完全性の経過を追跡するには、Magic xpaの組込ユーティリティを使用して、モニタリングやロギング、デバッグを行います。

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

Magic xpa Studioは、アプリケーションのバグを最大限に見つけ出すためのデバッグ機能を備えています。デバッグ機能には、簡易／条件付のブレイクポイントや項目ウォッチ、ダイレクト項目更新、コールスタック表示が含まれています。

実行内容のモニタ

サーバベースのアプリケーションかクライアントベースのアプリケーションかに関わらず、配備されたアプリケーションはその実行の内容や、その堅牢さ最適化を適切に評価するために詳細にモニタすることができます。

リモートデバッグ

予想外の動作が実行時にのみ発生する場合、それらがリモート環境で実行しているのであれば、Magic xpaもアプリケーションをデバッグすることが可能です。

Magic xpa Studioは、TCP/IP接続を使用して実行しているアプリケーションに接続することができ、開発者はリモートアプリケーションをデバッグすることができます。


レポートと帳票出力

Magic xpaは、テキスト形式のレポートから非常に高度なレポートまで、様々なタイプのレポートの出力を設計することができる機能を内蔵しています。

非インタラクティブなタスクに内蔵されている機能によって、カスタマイズされた様々なブレイクレベルの階層を作成したり、ブレイクレベルの切り替えを変更することができます。


製品概要 ユーティリティ

ホーム > 製品概要 > ユーティリティ

ユーティリティ

ここでは、Magic xpaで利用可能なユーティリティについて説明しています。

APG

プログラムは、[データ]リポジトリまたは[プログラム]リポジトリから作成することができます。Magic xpaのAPG（Automatic Program Generator）を使用すると、自動的にプログラムを作成することができます。

APGでは以下のようなプログラムが作成できます。

  • データ入力／保守を行うオンラインプログラム

  • データベーステーブルのデータをテキストファイルに出力するバッチプログラム

  • テキストファイル読み込んで、データベーステーブルに書き込むバッチプログラム

  • 印刷プログラム

  • リッチクライアントプログラム

構文チェック

この構文チェックユーティリティは、モデル、データソース、プログラム、ヘルプ、メニューの文法についてのエラーをチェックします。

リポジトリ入出力

リポジトリ入出力ユーティリティを使用するこことで、プロジェクトのオブジェクトを外部に出力したり、または入力したりすることができます。

このユーティリティには、以下の機能があります。

  • 移植 …… 別のMagicプロジェクトに移植するために、プロジェクトのオブジェクトを出力することができます。

  • プロジェクトの再構築 …… プロジェクトファイルを整理するために、出力し、新規プロジェクトに入力することができます。

クロスリファレンス

クロスリファレンスユーティリティを使用することで、モデル、カラム、プログラムなどがどこで使用されているかという情報を取得することができます。

定義取得

定義取得ユーティリティを使用することで、RDBMSのデータ辞書からMagic xpaの[データ]リポジトリにテーブル定義を直接読み込むことができます。1つまたは複数のテーブル定義をデータベースから読み込むこともできます。

この機能は、既存のシステムで使用されているデータベースをMagic xpaで利用する場合、そのテーブル定義を、手動で[データ]リポジトリに定義する手間を省きます。これにより、エラー発生の可能性も低くなるため、作業を迅速に進めることができます。

Brokerモニタ

Brokerモニタは、指定されたMRB経由でアプリケーションサーバを監視するものです。Brokerモニタは、以下の情報を表示します。

  • 実行中のアプリケーションサーバ

  • 選択したMRBに対するコンテキストのスレッド情報

  • 選択したMRBが管理するサーバに発行されたリクエスト

  • リクエストの統計

  • 利用可能アプリケーション

ODBC チェックドライバ

ODBC チェックドライバユーティリティは、ODBCドライバに付属しています。このプログラムを実行すると、ODBCデータソースがテストされ、ドライバによって作成される関数の一覧が印刷されます。このテストによって、ODBCに対してMagicデータベースゲートウェイでそのドライバが使用できるかどうかがわかります。

データソース変換

データソース変換は、データソースの物理構造が変更され、データソースが存在する場合に、自動で実行される処理です。例えば、データソースにカラムが追加されたり削除されたり、カラムの属性が変更されたりインデックスの定義が変更されたり、使用されているモデルが変更された場合に自動的に変換処理が実行されます。

ユーザ定義開発メニュー

ユーザ定義開発メニューは、開発時に使用する様々なMagicプロジェクトの起動メニューを提供するものです。このメニューに、「アプリケーションウィザード」 や他のウィザードなどのツールを含めることができます。


Magic xpa V1Plusリファレンスガイド

ホーム > リファレンスガイド

Magic® xpa™ Application Platform リファレンスガイド

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

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

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

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

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

Magicエンジン

設定

データ項目

モデル

データソース

プログラム

データビューエディタ

ロジックエディタ

フォームエディタ

フォーム

式エディタ

データベース

SQLに関する考慮事項

メニュー

ヘルプ

バージョン管理

Unicodeサポート

デバッガ

認証システム

ライセンス管理

コンポーネント

XML連携

COM オブジェクトサポート

.NET連携

Javaとの連携

Web 開発

Webサービス

メッセージング

エンドユーザ機能

分散アプリケーション

SNMPサポート

マルチユーザ環境

ユーティリティ

アプリケーション実行

実行時の必要条件

開発リソース

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

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

  • マイグレーション

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

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

©2014


ナビゲータ

ホーム > リファレンスガイド > ナビゲータとワークスペース

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

Magic xpaには、ダイナミックな開発リポジトリと、以下のような[ナビゲータ]、[特性シート]、[コメント]の各ペインがあります。

関連トピック：

[ナビゲータ]ペイン

[特性]シート

チェック結果

[コメント]ペイン

ステータスライン

モジュール

ペインの切り替え

ペインの統合

リポジトリの操作

ショートカットキー

操作方法とワークスペース(Mastering Magic xpa)


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

ホーム > リファレンスガイド > ナビゲータとワークスペース > ［ナビゲータ］ペイン

［ナビゲータ］ペイン

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

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

［パレット結合可］の設定を使用することでペインを結合することが可能になります。

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

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

［ナビゲータ］ペインは、Magic xpaのMDIに結合させたり､フローティング表示させたりすることができます。


ナビゲータ 特性シート

ホーム > リファレンスガイド > ナビゲータとワークスペース > ［特性］シート

［特性］シート

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

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

特性に [image] アイコンが表示されている場合、それをクリックしたり、特性値上でダブルクリックして値を選択することができます。

特性に [image] ボタンが表示されている場合は、それをクリックしたり、実行時に評価される式を式エディタで入力することができます。

変更された特性は、青色で表示されます。

「データ」から値を継承するように設定された特性は、緑色に表示されます。

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

  • モデル

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

  • フォーム

  • コントロール

  • ヘルプ画面

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

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

修正された特性は異なる色(青)で表示されます。

［特性］シートの操作

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

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

  • サブツリー展開 …… 指定されたセクションが展開表示されます。

  • サブツリー縮小 …… 指定されたセクションが展開表示されます。

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

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

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

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

関連トピック：

特性シートのセクション表示を切り替えるには

複数のコントロールの特性を同時に設定するには


ナビゲータ チェック結果

ホーム > リファレンスガイド > ナビゲータとワークスペース > ［チェック結果］ペイン

［チェック結果］ペイン

［チェック結果］ペインには、構文チェックのチェック結果が表示されます。

［表示］メニューから［チェック結果］をクリックするか、Alt+F3で、チェックペインにアクセスできます。

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

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

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

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


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

ホーム > リファレンスガイド > ナビゲータとワークスペース > ［コメント］ペイン

［コメント］ペイン

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

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


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

ホーム > リファレンスガイド > ナビゲータとワークスペース > ステータスライン

ステータスライン

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

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

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

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

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

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

注意：

このボックスは、文字入力のカラムでのみ有効です。このボックスには、現在の状況で可能な操作内容が表示されます。したがって、広域モードの場合は「通常」が表示されます。

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

注意：

リッチクライアントの場合

  • "ズーム"や、"挿入"、"上書"などは表示されません。

  • 「SpecialShowStatusBarPanes」の設定を使用することで、ステータスバーにタスクモードを表示させることができます。


プロジェクト モジュール

ホーム > リファレンスガイド > ナビゲータとワークスペース > モジュール

モジュール

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

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

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

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

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

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


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

ホーム > リファレンスガイド > ナビゲータとワークスペース > モジュール > プロジェクト間の操作

プロジェクト間の操作

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

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

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

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

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

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

ノードを拡張します。

ノードを縮小します。

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

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

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

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

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

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

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

関連トピック：

プロジェクトを切り替えるには


ナビゲータ ペインの切替

ホーム > リファレンスガイド > ナビゲータとワークスペース > ペインの切り替え

ペインの切り替え

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

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

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

関連トピック：

ペイン間の移動を行うには


ナビゲータ ペインの統合

ホーム > リファレンスガイド > ナビゲータとワークスペース > ペインの統合

ペインの統合

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

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

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

  • Alt+F1 …… ［ナビゲータ］ペイン

  • Alt+F2 …… ［特性シート］ペイン

  • Alt+F12 …… ［コメント］ペイン

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

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

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

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

関連トピック：

パレットを分離するには


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

ホーム > リファレンスガイド > ナビゲータとワークスペース > リポジトリの操作

リポジトリの操作

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

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

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

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

テキストの入力

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

カラムの編集

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

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

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

関連トピック：

カーソルの移動

マルチマーキング機能

複写登録

移動登録

上書登録

フォルダ

ブックマーク

コメントボックス

検索と置換

クイックアクセス

ツリー


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

ホーム > リファレンスガイド > ナビゲータとワークスペース > リポジトリの操作 > カーソルの移動

カーソルの移動

移動先 | キー
カラムの先頭 | Home
カラムの最後 | End
次のフィールド | Tab
前のフィールド | Shift + Tab
次の行 | ↓
前の行 | ↑
前のページ | PageUp
次のページ | PageDown
リポジトリまたはダイアログの先頭 | Ctrl+Home
リポジトリまたはダイアログの最後 | Ctrl+End
行の最後 | Alt+ →
行の先頭 | Alt+ ←
次行に移動してマークする | Shift + ↓
前行に移動してマークする | Shift + ↑
マルチマーク用テーブルで次の行 | Ctrl + ↓
マルチマーク用テーブルで前の行 | Ctrl + ↑
マルチマーク用テーブルで次のページ | Ctrl + PageDown
マルチマーク用テーブルで前のページ | Ctrl + PageUp
テーブル行のマーク／マーク解除 | Ctrl + Space
次ページをマーク | Shift + PageDown
前ページをマーク | Shift + PageUp


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

ホーム > リファレンスガイド > ナビゲータとワークスペース > リポジトリの操作 > マルチマーキング機能

マルチマーキング機能

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

マーキングの方法

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

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

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

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

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

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

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

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

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

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

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

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


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

ホーム > リファレンスガイド > ナビゲータとワークスペース > リポジトリの操作 > 複写登録

複写登録

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

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

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

  2. 複写登録オプション（［編集］→［登録］→［複写登録］または、Ctrl+Shift+R）を選択します。

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

関連トピック：

プロジェクトをバックアップするには


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

ホーム > リファレンスガイド > ナビゲータとワークスペース > リポジトリの操作 > 移動登録

移動登録

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

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

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

  2. 移動登録オプション（［編集］→［登録］→［移動登録］または、Ctrl+Shift+M）を選択します。

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

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

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

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


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

ホーム > リファレンスガイド > ナビゲータとワークスペース > リポジトリの操作 > 上書登録

上書登録

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

オブジェクトを上書きするには：

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

  2. 上書登録オプション（［編集］→［登録］→［上書登録］または、Ctrl+Shift+O）を選択します。

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

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

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

その内部の要素（カラムやインデックス）がプロジェクト内の他のオブジェクトから参照することができるという点で、［データ］リポジトリのデータソース・オブジェクトは他のオブジェクトと異なります。データソースが他のデータソースによって上書きされると、デフォルトでは、カラムとインデックス内部の参照情報は、連続した順番に従って上書きされたデータソースの既存の参照情報に基づいて保持されます。

［上書］ダイアログの［拡張］ボタンをクリックすると上書き処理に対する拡張オプションが表示されます。ここには、以下の内容が表示されます。

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

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

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

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

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

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

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

関連トピック：

入力行を他の行の内容に置き換えるには


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

ホーム > リファレンスガイド > ナビゲータとワークスペース > リポジトリの操作 > フォルダ

フォルダ

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

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

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

  • フォルダ名の入力

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

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

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

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

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

  • データ

  • プログラム

  • ヘルプ

  • 権利

  • モデル

  • コンポーネント

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

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

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

注意：

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

  • ［編集］メニュー上の［クイックアクセス/フォルダ指定］（または、Ctrl+Shift+J）を選択し、移動したいフォルダを選択することでリポジトリ内の異なるフォルダに簡単に移動することができます。

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

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

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

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

関連トピック：

プロジェクトのオブジェクトを整理するには


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

ホーム > リファレンスガイド > ナビゲータとワークスペース > リポジトリの操作 > ブックマーク

ブックマーク

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

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

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

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

  • ブックマークされたオブジェクトを選択することで、エントリをリストの先頭に移動します。

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

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

参考：

ブックマークの情報は、プロジェクトフォルダ内のBookMark.BMKというファイルにバイナリ形式で保存されます。

関連トピック：

よく使用するオブジェクトにブックマークを設定するには


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

ホーム > リファレンスガイド > ナビゲータとワークスペース > リポジトリの操作 > コメントボックス

コメントボックス

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

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

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

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

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

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

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

  • 各オブジェクトに、"/* ... */" という書式でコメントを定義した場合、一覧表示の［説明］欄にコメントが表示されます。また、タスクエディタ上でこのオブジェクトを使用しているカラムにカーソルが置かれた場合、下の［説明］欄にコメントが表示されます。表示するコメントの内容をMAGIC.INIで切り替えることができます。例えば以下のように定義すると、/J ～ J/ で囲まれたコメントが表示対象となります。

ShortDescriptionChar=J

  • デフォルトでは、コンポーネントのコメントは公開されません。コンポーネントの［アプリケーション特性］の［コンポーネントとして使用する場合、コメントを公開］のチェックボックスをチェックすることで、公開することができます。


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

ホーム > リファレンスガイド > ナビゲータとワークスペース > リポジトリの操作 > 検索と置換

検索と置換

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

オプション

ショートカット

説明

クロスリファレンス

Ctrl+F

Magic xpaのオブジェクトがどこで使用されているかを検索します。

オブジェクトの置換

同じタイプのオブジェクトであれば置換することができます。置換したいオブジェクトにパークし、これをどのオブジェクトに変換するかを指定します。

テキスト検索

Alt+Ctrl+F

プロジェクト内で使用されているテキストを検索することができます。入力テキストとインタフェースに表示されるテキストの両方を検索することができます（この点で位置付け機能とは異なります）。このオプションを選択すると、［テキスト検索］ダイアログボックスが開きます。

  • 大文字と小文字を区別して検索する場合は、［大文字と小文字を区別］をチェックしてください。

  • 全て一致している文字列を検索する場合は、［完全に一致する単語］をチェックしてください。

  • マスク文字を使用する場合は、［正規表現］をチェックしてください。

  • 検索対象のオブジェクト選択する場合は、［>>］ボタンをクリックしてください。

検索が終了すると、［ナビゲーション］ペインに検索リストが表示されます。検索結果をクリックすると、対応するオブジェクトに移動します。検索結果のリスト上では、必要であれば［編集／行削除］（F3）で結果を削除することができます。検索結果がたくさんある場合は、この方法が便利な場合があります。検索対象を処理する度に毎にリストを削除します。

注意：

検索と置換ユーティリティは、継承が解除された特性のテキストのみ検索します。検索されたテキストに対する参照内容を継承する特性は、検索結果に含まれません。

テキスト置換

プロジェクト内で使用されているテキストを別のテキストに置換できます。

検索結果の保存

検索結果にパークして、このオプションを選択すると結果を保存します。

検索結果の印刷

検索結果にパークして、このオプションを選択すると結果を印刷します。


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

ホーム > リファレンスガイド > ナビゲータとワークスペース > リポジトリの操作 > クロスリファレンス

クロスリファレンス

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

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

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

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

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

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

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

注意：

クロスリファレンス・ユーティリティは、継承が解除された特性でのみ指定されたオブジェクトを検索します。検索されたオブジェクトに対する参照内容を継承する特性は、検索結果に含まれません。

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

関連トピック：

オブジェクトがどこで使用されているかを確認するには

オブジェクト内のテキストを検索/置換するには


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

ホーム > リファレンスガイド > ナビゲータとワークスペース > リポジトリの操作 > クイックアクセス

クイックアクセス

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

オプション

ショートカット

説明

位置付

Ctrl+L

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

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

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

関連トピック： 開発用テーブルの行位置付けを行うには

次に位置付

Ctrl+N

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

前に位置付

Ctrl+Shift+N

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

行ジャンプ

Ctrl+J

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

関連トピック： 行番号を指定して移動するには

フォルダ指定

Ctrl+Shift+J

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

次のヘッダ行

Alt+Ctrl+N

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

前のヘッダ行

Alt+Ctrl+P

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

照合移動

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

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

  • タスク前 - タスク後

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

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

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

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

対応する行がある行にパークしている状態で［照合移動］を実行すると、Magicエンジンは［ロジック］エディタ内の対応する行までスキップします。エンジンが対応する行を見つけられない場合は、エンジンがパークすることができる行に到達するまで先頭から検索します。

対応するヘッダ行に切り替えるには、ヘッダ行でパークしていなければなりません。詳細行にパークしている状態でヘッダ行を切り替えることはできません。

参照に移動

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

定義に移動

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


ナビゲータ リポジトリ操作 フロー一覧

ホーム > リファレンスガイド > ナビゲータとワークスペース > リポジトリの操作 > フロー一覧

フロー一覧

［タスク］エディタ内で複写、移動、上書きを行う際に、連続する処理行の最初と最後を選択します。［選択］ボタンをクリックすることで、複写や移動などのダイアログボックスに戻り、選択された行番号が設定されます。


ナビゲータ リポジトリ操作 フォーム一覧

ホーム > リファレンスガイド > ナビゲータとワークスペース > リポジトリの操作 > フォーム一覧

フォーム一覧

［タスク］エディタ内で複写する先頭から末尾までの連続するフォームを選択します。選択をクリックすると、元のダイアログボックス（複写登録、移動、または上書き）に戻ります。


ナビゲータ リポジトリ操作 イベントパラメータ一覧

ホーム > リファレンスガイド > ナビゲータとワークスペース > リポジトリの操作 > イベントパラメータ一覧

イベントパラメータ一覧

［タスク］エディタ内で複写、移動、上書きを行う際に指定する、最初と最後の連続的なパラメータ行を指定します。元のダイアログボックス（複写、移動、または上書き)に戻るには、［選択］ボタンをクリックしてください。


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

ホーム > リファレンスガイド > ナビゲータとワークスペース > リポジトリの操作 > ツリー

ツリー

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

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


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

ホーム > リファレンスガイド > ナビゲータとワークスペース > ショートカットキー

ショートカットキー

Magic xpaは、全てのファンクションキー（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
テキスト検索 | Ctrl+Shift+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 xpaは、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

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

Magic xpaは、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 | 編集
行を無効化/有効化 | Ctrl+Shift+D (［ロジック］エディタでのみ有効) | 編集
ズーム | F5 | 編集
広域表示 | F6 | 編集
特性 | Alt+Enter | 編集
クロスリファレンス | Ctrl+F | 編集／検索と置換
テキスト検索 | Ctrl+Shift+F | 編集／検索と置換
複写登録 | Ctrl+Shift+R | 編集／登録
移動登録 | Ctrl+Shift+M | 編集／登録
上書登録 | Ctrl+Shift+O | 編集／登録
位置付 | Ctrl+L | 編集／クイックアクセス
位置付／次候補 | Ctrl+N | 編集／クイックアクセス
行ジャンプ | Ctrl+J | 編集／クイックアクセス
フォルダ指定 | Ctrl+Shift+J | 編集／クイックアクセス
次のヘッダ行 | Alt+Ctrl+N | 編集／クイックアクセス
前のヘッダ行 | Alt+Ctrl+P | 編集／クイックアクセス
照合移動 | Alt+Ctrl+M | 編集／クイックアクセス
ツリー編集 | F2 | 編集／ツリー
サブツリー展開 | Plus | 編集／ツリー
サブツリー縮小 | Minus | 編集／ツリー
全て展開 | Ctrl+Plus | 編集／ツリー
全て縮小 | Ctrl+Minus | 編集／ツリー
次のセクション | Ctrl+↓ | 編集／ツリー
前のセクション | Ctrl+↑ | 編集／ツリー


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

ホーム > リファレンスガイド > ナビゲータとワークスペース > ショートカットキー > キー割付 - プロジェクトが開いた状態2

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

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

コマンド | キーの組み合わせ | メニュー名
ナビゲータ | Alt+F1 | 表示
特性シート | Alt+F2 | 表示
チェック結果 | Alt+F3 | 表示
コメントペイン | Alt+F12 | 表示
ペインの切替 | Ctrl+Tab | 表示
行番号表示 | Ctrl+Shift+N | 表示
モデル | Shift+F1 | プロジェクト
データ | Shift+F2 | プロジェクト
プログラム | Shift+F3 | プロジェクト
ヘルプ | Shift+F4 | プロジェクト
権利 | Shift+F5 | プロジェクト
メニュー | Shift+F6 | プロジェクト
コンポーネント | Shift+F7 | プロジェクト
タスク特性 | Ctrl+P | タスク環境
データビュー | Ctrl+1 | タスク環境
ロジック | Ctrl+2 | タスク環境
フォーム | Ctrl+3 | タスク環境
データソース | Ctrl+D | タスク環境
式 | 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+F5 | オプション
オブジェクトから戻る | Ctrl+Shift+F5 | オプション
コンポーネントジェネレータ | Ctrl+Shift+G | オプション
実行/継続 | F7 | デバッグ
ブラウザで実行 | Ctrl+Shift+F7 （ブラウザタスクで有効） | デバッグ
プロジェクトの実行 | Ctrl+F7 | デバッグ
ステップ | F10 | デバッグ
ステップイン | F11 | デバッグ
ステップアウト | Shift+F11 | デバッグ
ブレイク | Alt+Ctrl+F7 | デバッグ
ブレイクポイント | F9 | デバッグ
ウォッチに追加 | Ctrl+F11 | デバッグ
エンジンをリセット | Ctrl+Shift+F9 | デバッグ
関連ヘルプ表示 | F1 | ヘルプ


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

ホーム > リファレンスガイド > ナビゲータとワークスペース > ショートカットキー > キー割付 - フォームエディタ

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

汎用

キー | 契機 | 結果
F5 | コントロールが選択されている | コントロール特性が開く
F5 | 何も選択されていない | フォーム特使が開く
コントロール上でクリック |  | コントロール特性が開く 子コントロールも選択される
コントロール上でクリック | Ctrl | 子コントロールは選択されない
フォーム上でクリック |  | フォーム特使が開く
コントロールをドラッグ |  | 子コントロールも選択される
スペース | コントロールが選択された | コントロールの選択が解除される
Enter | ［スタティック］コントロールが選択されている | テキストを入力
Enter | ［チョイス］コントロールが選択されている | 選択肢を変更
［チョイス］コントロールをクリック | Shift | レイヤを変更
コントロールアイコンをダブルクリック |  | フォーム上の左上角にコントロールが表示されます
矢印キー | コントロールが選択され、Enterを押下する | 選択されたコントロールが移動する
矢印キー+Shift | コントロールが選択され、Enterを押下する | 選択されたコントロールのサイズが変更される
矢印キー | 何も選択されず、Enterを押下する | フォームが移動する
矢印キー+Shift | 何も選択されず、Enterを押下する | フォームのサイズが変更される
Tab |  | 次のコントロールを選択
Tab+Shift |  | 前のコントロールを選択
Home |  | 最初のコントロールを選択
End |  | 最後のコントロールを選択
Ctrl+A | （［編集］メニュー→［全て選択］]も同じ） | フォーム上の全てのコントロールを選択 ［スタティック］コントロールの編集モードの場合、編集中のコントロールのテキストを選択します。
クリック | コンテナコントロール上 | コンテナコントロールとそれにリンクされている全てのコントロールを選択
Ctrl+クリック | コンテナコントロール上 | コンテナコントロールを選択し、リンクされているコントロールは選択しない。 Ctrl+クリックを使用してコントロールを一つずつ選択した場合、タブに配置されたコントロールが選択されます。 これによって、タブにリンクされたコントロールを操作（移動、削除、特性の変更）することができます。
Shift+クリック | コンテナコントロール上 | 選択肢を切り替えます。 任意の選択肢にコントロールを追加したい場合に使用します。
Shift | ［項目］パレットからコントロールをドロップ | タイトルは追加されません
右クリック |  | コンテキストメニューが表示されます。

［テーブル］コントロール

キー | 契機 | 結果
クリック | テーブルのカラムをドラッグ中 | カラムの区切り線のみ移動する。カラムにリンクされたコントロールは移動しません
Ctrl+クリック | テーブルのカラムをドラッグ中 | 全てのカラムを調整します。右側のカラムとリンクされているコントロールを全て移動します。
クリック | コントロールをテーブルにドロップ中 | 既存のカラムの後にカラムを追加する。
Shift+クリック | コントロールをテーブルにドロップ中 | 既存のカラムの前にカラムを追加する。
Alt+クリック | コントロールをドラッグ中のカラム上 | 既存のカラムにコントロールを追加
Alt+クリック | カラムエリア（テーブルタイトルと最初の行を除く任意の行にパーク) | カラムをマーク
Tab | 一つのカラムを選択 | 次のカラムに移動
Alt+Ctrl+クリック |  | 複数のカラムを選択
Ctrl+Alt+Shift | 最初と最後のカラムをクリック中 | 全てのカラムを選択
Ctrl+クリック | テーブルにコントロールをドロップ | 既存のカラムの後に複数のコントロールを追加
Ctrl+Shift+クリック | テーブルにコントロールをドロップ | 既存のカラムの前に複数のコントロールを追加
クリック | コントロールの外の全てのコントロールが入る四角形の領域をドラッグする | 領域内の全てのコントロールを選択
クリック | 新規の位置にカラムをドラッグする | テーブルのカラムを移動する

[コマンド]パレット

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

コマンド | キーの組み合わせ | メニュー名
終了 | 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 (Magic xpaではサポートされません) | オプション
ソート | Ctrl+T | オプション
入出力ファイル | Ctrl+I (Magic xpaではサポートされません) | オプション
データ出力 | Ctrl+P | オプション
テーブル先頭 | Ctrl+Home | オプション
テーブル末尾 | Ctrl+End | オプション
前画面 | PageUp | オプション
次画面 | PageDown | オプション
前行 | ↑ | オプション
次行 | ↓ | オプション
次のウィンドウ | Cｔｒｌ+Tab | ウィンドウ
前のウィンドウ | Cｔｒｌ+Shift+Tab | ウィンドウ

注意：

F10キーは、Windows OSのデフォルト機能が動作する場合があるため、Magicアプリケーションでは利用しないことを推奨します。


ヘルプの使い方

以下は、Magicのヘルプを使用する上でのガイダンスです。

トピックの検索

Magicの各ウィンドウ上からF1キーを押下することで、関連するヘルプのトピックが表示されます。これ以外のトピックを参照するには、以下の［タブ］からアクセスしてください。

  • 目次

  • キーワード

  • 検索 …… より効果的に検索するには、以下の機能を使用してください。

  • 論理演算子 …… AND、OR、NEAR、NOT。検索フィールドにこれらの演算子を入力するか、フィールドの右に表示されている三角形をクリックして、ポップアップリストから1つを選択することができます。

  • 引用符または括弧('''") …… これらは、正確な語句で検索する場合に指定します。例えば：「Scheduling Flows」と入力すると、「Scheduling」と「Flows」を含んだトピックが検索されますが、「"Scheduling Flows"」と入力すると、「Scheduling Flows」という語句が検索対象となります。

  • チェックボックス …… パラメータ検索を制限する場合は、検索結果リストの下に表示されているチェックボックスを使用してください。

自動同期

キーワードリストや検索リストからヘルプトピックを検索した後、目次リストを表示すると自動的に該当するトピックに位置付きます。選択されたトピックは、強調表示されています。


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

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

関連トピック：

プロジェクト開発

アプリケーション実行

プロジェクトとアプリケーション (Mastering Magic xpa)


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

ホーム > リファレンスガイド > プロジェクトとアプリケーション > プロジェクト開発

プロジェクト開発

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

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

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

関連トピック：

プロジェクトの作成

プロジェクトの新規作成

プロジェクトのバックアップ

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

プロジェクトモジュール

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

プロジェクトの環境設定

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

アプリケーション特性

アプリケーション実行

アプリケーション公開名

ファイル名の正しい使い方


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

ホーム > リファレンスガイド > プロジェクトとアプリケーション > プロジェクト開発 > プロジェクトの作成

プロジェクトの作成

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

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

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

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

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

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

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

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

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

関連トピック：

アプリケーションとは？

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


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

ホーム > リファレンスガイド > プロジェクトとアプリケーション > プロジェクト開発 > プロジェクトの新規作成

プロジェクトの新規作成

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

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

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

パラメータ

内容

プロジェクト名

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

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

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

ローカルフォルダ

［参照］ボタンをクリックすることでプロジェクトディレクトリを参照するためのダイアログが表示されます。デフォルト値は、［Magicディレクトリ］\Projects\です。
プロジェクト名と同じ名前のサブフォルダが、ローカルフォルダの配下に作成されます。

指定されたプロジェクトディレクトリがすでに存在している場合、以下のエラーメッセージがステータスバーに表示されます。

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

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

バージョン管理データベースに新規プロジェクトを作成します.

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

関連トピック： バージョン管理ソフトによって管理されるプロジェクトを作成するには

現在のプロジェクトに追加する

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

ローカルファイルの定義方法

ローカルフォルダにプロジェクトのすべてのオブジェクトを含めるか、チェックアウトオブジェクトのみを含めるかを指定します。バージョン管理サーバがシャドウフォルダをサポートしている場合のみ、チェックアウトオブジェクトのみの指定が可能です。

関連トピック： ソースファイルをローカルにコピーしないで、バージョン管理を行うには

シャドウフォルダ

［ローカルファイル対応］パラメータが「チェックアウトオブジェクトのみ」に設定されている場合のみ有効になります。Magic xpaは、ここで定義されたフォルダから残りのフォルダを使用するようになります。

関連トピック： シャドウフォルダの定義

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

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

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

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

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

注意：

チェックアウトオブジェクトのみ保存する方法を使用した場合、別のユーザがシャドウフォルダから読み込んだファイルを同時にチェックインしようとすると、バージョン管理クライアントからエラーが発生し、ファイルが更新されません。

このような場合は、再度チェックアウトとチェックインを実行することで、更新内容がシャドウフォルダに反映されるようになります。

関連トピック：

プロジェクトのアクセス

デフォルトプロジェクト

プロジェクトを新規作成するには


プロジェクトのバックアップ

作業結果をバックアップすることは、常に重要です。ソース管理ソフトを持っていない場合でも、以下のような方法で簡単にバックアップすることができます。

  • OSのシステムファイルとしてバックアップを行う

  • Magic xpaのリポジトリ出力機能の利用

  • プログラムのコピー機能の利用

これらの処理内容について以下に説明します。

OSのシステムファイルをバックアップする

Magic xpaが新しいプロジェクトを作成すると、ルートレベル（.edpファイル）のプロジェクトファイルといくつかのサブフォルダから構成される複数のファイルが作成されます。実際のプログラムソースは、Sourcesサブディレクトリ内の一連のXMLファイルになります。通常、イメージファイルやHTMLテンプレートなどの他サポートファイルを別のサブディレクトリに配置することになります。

従って、プロジェクト全体をバックアップする最も迅速で、簡単な方法は、ルートレベルから全てのフォルダを圧縮することです。必要であれば、バージョン毎に複数の圧縮ファイルを保持することができます。この方法は、現在のプロジェクトの完全なスナップショットが格納されることを保証します。

ハードウェア障害に対応する方法として、CD-ROMのようなメディアの内容をあらかじめコピーしておくことも検討してください。

注意：

Magic.iniファイルは、インストール方法によってバックアップ対象のディレクトリ内に存在するか否かが決まります。Magic.iniはプロジェクトの運用後に変更する可能性が高いため、バックアップするようにしてください。もし、紛失したり破損した場合は、バックアップファイルから復元することができます。

リポジトリ出力ファイルの作成

Magicプロジェクトからオブジェクトを出力したり、プロジェクト全体を出力することができます。この機能を利用することにより、使用するMagicの最新バージョンに対応したプロジェクトを作成することができます。リポジトリ入出力機能を使用することで、実現できます。

プログラムのコピー

プログラムの修正作業を行う前に、［編集／登録／複写登録］(Ctrl+R)を使用して、プログラムのバックアップコピーを作成することができます。この方法は、プロジェクト全体をバックアップすることはできませんが、変更前の状態を簡単に確認することができます。実験的に修正作業を行うような場合に有効です。


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

ホーム > リファレンスガイド > プロジェクトとアプリケーション > プロジェクト開発 > サーバから開く

サーバから開く

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

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

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

SourceSafeのようなSCC(Microsoft Source Code Control)-APIを使用したクライアントの場合は、以下のような項目が表示されます。

パラメータ

内容

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

ここからズームするとことでプロジェクトを選択し、プロジェクトファイルが保存される位置を参照することができます。デフォルトの位置は、Magic xpa Studioのインストールフォルダ内のProjects\［プロジェクト名］ になります。

位置

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

ローカルファイル方式

ローカルフォルダにプロジェクトのすべてのオブジェクトを含めるか、チェックアウトオブジェクトのみを含めるかを指定します。バージョン管理サーバがシャドウフォルダをサポートしている場合のみ、チェックアウトオブジェクトのみの指定が可能です。

VCシャドウフォルダ

［ローカルファイル対応］パラメータが「チェックアウトオブジェクトのみ」に設定されている場合のみ有効になります。この場合、チェックアウトされたオブジェクトのみがローカルに保存され、ここで定義された中心となるフォルダ（シャドウフォルダ）残りのフォルダを使用するようになります。シャドウフォルダは、バージョン管理サーバで管理されます。

Magic xpaは、VCのシャドウフォルダの配下にあるプロジェクトのサブフォルダ内にあるファイルを検索します。このため、たとえば、シャドウフォルダがバージョン管理サーバによって、\\Server\Shadow\myProj として定義されている場合、Magic xpaでは、バージョン毎に \\Server\Shadow\.を指定する必要があります。

関連トピック： シャドウフォルダの定義

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

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

注意：

チェックアウトオブジェクトのみ保存する方法を使用した場合、別のユーザがシャドウフォルダから読み込んだファイルを同時にチェックインしようとすると、バージョン管理クライアントからエラーが発生し、ファイルが更新されません。VSSの場合、エラーメッセージが表示されます。

このような場合は、再度チェックアウトとチェックインを実行することで、更新内容がシャドウフォルダに反映されるようになります。

関連トピック：

バージョン管理プロジェクトを新たにオープンするには


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

ホーム > リファレンスガイド > プロジェクトとアプリケーション > プロジェクト開発 > プロジェクトとバージョン管理

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

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

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

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

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

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

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


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

ホーム > リファレンスガイド > プロジェクトとアプリケーション > プロジェクト開発 > プロジェクトのアクセス

プロジェクトのアクセス

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

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

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

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

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

関連トピック：

アプリケーションとは？

プロジェクト開発

アプリケーション実行

既存のプロジェクトをオープンするには

最近開いたプロジェクトの表示数を変更するには?


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

ホーム > リファレンスガイド > プロジェクトとアプリケーション > プロジェクト開発 > プロジェクトのキャビネットファイル

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

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

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

関連トピック：

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

プロジェクトのソースファイルの格納場所を変更するには


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

ホーム > リファレンスガイド > プロジェクトとアプリケーション > プロジェクト開発 > プロジェクトの環境設定

プロジェクトの環境設定

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

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

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

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

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


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

ホーム > リファレンスガイド > プロジェクトとアプリケーション > プロジェクト開発 > プロジェクトディレクトリの取得

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

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

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

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

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

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

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

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

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

注意：

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

リッチクライアントタスクでは、上記の論理名はサーバ側の環境情報として扱われます。カレントフォルダは、以下のようになります。

  • 開発モード時(F7起動) …… (Magic xpaのインストールフォルダ)\RIAModules\Desktop

  • 実行モード時(Windows7) …… %LOCALAPPDATA%Apps\2.0\XXXXX.PAY\YYYYY.ZZZ\(Application Name)_NNNNNNNNN

内部論理名の変更

内部論理名の%WorkingDir%と%TempDir%は、Magic xpa 起動時のコマンドラインでのみ変更できます。

例：'MgxpaStudio.exe /[MAGIC_LOGICAL_NAMES] WorkingDir =C:\\temp'

%EngineDir%は、変更できません。

上記の予約論理名は、MAGIC.INIファイルで手動で定義しても無視されます。INIPut関数で予約論理名を指定しても影響しません。また、INIGet関数を使用しても値は取得できません。また、［LOGICAL_NAMES］セクションに定義してもINIGet関数を使用して取り出すことができません。

関連トピック：

プロジェクトのディレクトリのファイルを読み書きするには

Magicディレクトリのファイルを読み書きするには

システム一時ディレクトリ内のファイルを読み書きするには


ファイル名の正しい使い方

Windowsでは、ファイルはURLかファイル名、相対パス、または絶対パス/URLなどで指定することができます。

非Windowsプラットホーム（例：UNIXやIBM i）では、ファイルはURLでのみ参照できます。スラッシュ（/)が付加されたファイル名への参照指定は、絶対パスか相対パスのどちらかとして扱われます。以下の設定でRIAを動作させたい場合は、サーバ上のMAGIC.INIファイルで明確にURLを定義する必要があります。

InternetDispatcherPath = protocol://server:port/alias/requester.

相対URLを使用しないで、絶対URLを使用することを推奨します。

例：

/etc/home1/a.jpg (フルパス)

http://myserver:port/myalias/a.jpg (フル、相対URL)

myalias/a.jpgは、（相対URLではなく）相対パス名として扱われます。

InternetDispatcherPath = http://myserver:80/myscripts/mgrequest022


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

ホーム > リファレンスガイド > プロジェクトとアプリケーション > プロジェクト開発 > アプリケーション特性

アプリケーション特性

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

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

関連トピック：

［スタートアップ］タブ

［外部参照ファイル］タブ

［セキュリティ］タブ


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

ホーム > リファレンスガイド > プロジェクトとアプリケーション > プロジェクト開発 > アプリケーション特性 > ［スタートアップ］タブ

［スタートアップ］タブ

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

特性

内容

NULL計算

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

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

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

  • D=デフォルト …… 結果は、［カラム特性］の［NULL 計算値］特性の値を基に計算されます。

［NULL計算］特性は、［モデル］リポジトリの各項目モデルでも指定できます。アプリケーションのデフォルトは、［モデル］および［カラム］レベルで上書きできます。

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

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

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

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

注意：

［ウィンドウメニュー］は、現在サポートされていません。

デフォルトコンテキストメニュー

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

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

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

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

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

関連トピック： アプリケーションにコンテキストメニューを設定するには

コンポーネントとして使用する場合、コメントを公開する。

コンポーネントアプリケーションの各オブジェクトに定義されたコメントをホストアプリケーションで表示させるかどうかを指定します。

ホストアプリケーション側で、参照しているコンポーネントオブジェクトにカーソルを置くと［説明］欄にコメントが表示されます。


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

ホーム > リファレンスガイド > プロジェクトとアプリケーション > プロジェクト開発 > アプリケーション特性 > ［外部参照ファイル］タブ

［外部参照ファイル］タブ

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

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

特性

内容

プリンタ属性ファイル

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

注意：

カレントディレクトリは、Magicエンジンが存在するディレクトリ（%EngineDir% ）になります。

HTML スタイルファイル

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

注意：

カレントディレクトリは、Magicエンジンが存在するディレクトリ（%EngineDir% ）になります。

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

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

注意：

カレントディレクトリは、Magicエンジンが存在するディレクトリ（%EngineDir% ）になります。

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

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

注意：

カレントディレクトリは、Magicエンジンが存在するディレクトリ（%EngineDir% ）になります。

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

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

注意：

カレントディレクトリは、Magicエンジンが存在するディレクトリ（%EngineDir% ）になります。

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

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

注意：

カレントディレクトリは、Magicエンジンが存在するディレクトリ（%EngineDir% ）になります。

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

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

注意：

カレントディレクトリは、Magicエンジンが存在するディレクトリ（%EngineDir% ）になります。

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

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

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

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

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

関連トピック：

アプリケーション用に基本色、フォント、キーボード割付を設定するには


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

ホーム > リファレンスガイド > プロジェクトとアプリケーション > プロジェクト開発 > アプリケーション特性 > ［セキュリティ］タブ

［セキュリティ］タブ

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

特性

内容

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

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

注意：

権利キーを持たないユーザは、実行エンジンでアプリケーションファイルにアクセスすることができませんが、開発エンジンでプロジェクトファイルをオープンすることは可能です。

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

  1. ［ユーザID］テーブルを開きます。

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

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

公開権利キー

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

この公開権利アクセスキーがない場合、実行環境ではアプリケーションにどういったキーが割当てられているか知ることはできません。つまり、［ユーザID］テーブルの［権利］カラムをズームしても、［権利名］カラムの内容を見ることができません。また、［キー］カラムでズームして［公開権利一覧］を表示することもできません。

注意：

権利キーを持たないユーザでも、開発エンジンでプロジェクトファイルをオープンすることは可能です。また、アクセスキーを参照することができます。

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

  1. ［ユーザID］テーブルを開きます。

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

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

スーパー権利キー

スーパー権利キーの所有者は、アプリケーションの実行時に対して全ての権利を持つことになります。したがって、このキーの所有者は、アプリケーションの各オブジェクトに対する個別の権利を持っている必要はありません。

注意：

権利キーを持たないユーザでも、開発エンジンでプロジェクトファイルをオープンすることは可能です。また、アクセスキーを参照することができます。

リモートデバッガ権利

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

関連トピック：

アプリケーション全体のアクセスを制限するには


アプリケーション実行

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

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

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

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

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

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

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

関連トピック：

アプリケーションとは？

プロジェクト開発

アプリケーション公開名

アプリケーション実行


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

ホーム > リファレンスガイド > プロジェクトとアプリケーション > アプリケーション実行 > アプリケーションとは？

アプリケーションとは？

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

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

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

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

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

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

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

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

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

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

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

関連トピック：

プロジェクトの作成

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

プロジェクト開発

アプリケーション実行


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

ホーム > リファレンスガイド > プロジェクトとアプリケーション > アプリケーション実行 > アプリケーションとは？ > アプリケーションのテスト

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

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

デバッガ

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

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

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

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

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

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

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

  • 実行の継続／停止

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

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

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

関連トピック：

アプリケーションとは？

プロジェクトの作成


Magicエンジン

Magicエンジンは、Magic xpaの実行の全体を管理するモジュールであり、プロジェクトで定義された処理を実行します。

エンジンには、開発者が使用する処理機能とロジックユニットと呼ばれるプログラムを実行する上での処理構造が含まれています。エンジンは、あらかじめ決まった手順に従って、ファイルを読み込み、レコードを読み込み、ソートし、画面にデータを表示するなどの動作を実行します。他のアプリケーション開発ツールと異なる点は、これらの決まりがMagicエンジン内にあらかじめ組みこまれており、アプリケーション開発者があまり意識する必要がないと言うことです。

知っておかなければいけない重要な点は、どのような設定をするとMagicエンジンがどのように処理を実行するかということです。これらの内容は、あらかじめ定義されていることで開発者が制御できるものではありません。

この内容を理解した上で、プログラムを開発する必要があります。この内容を理解しないでプロジェクトを開発した場合、問題が発生する可能性があります。

関連トピック：

タスク

エンジン実行レベル

Magicエンジンの実行規則（インタラクティブ）

Magicエンジンの実行規則（バッチ）

ユーザ定義イベント

ユーザ定義関数

タスクデータビュー

タスクフローでの処理モード

マルチスレッド

Magicエンジン (Mastering Magic xpa)


タスク

プロジェクトは複数のプログラムから構成され、各プログラムは複数のタスクで構成されます。

注意：

タスクとプログラムには次のような違いがあります。タスクは、プログラムを構成するための基本的なユニットです。プログラムは主要なタスクとサブタスクで構成されます。

従って、タスクはプロジェクトの処理を定義するプログラムの最も基本となる単位です。データベース関連の処理では、ほとんどの場合、データベーステーブル中のレコードに対するループ処理が必要になります。このような、テーブルに対するループ処理を行う単位がタスクです。タスクでのループ処理はタスクごとに決められたデータベーステーブルに対して行われ、これをタスクの「メインソース」と呼んでいます。

  1. まず最初に、タスクの［データビュー］エディタでメインソースを定義します。プロジェクトの［データ］リポジトリ内で定義されたデータソースの内１つを指定するか、またはメインソースを指定しないかを選択します。

  2. 続いて［タスク特性］ダイアログでタスクの種類を指定します。タスクの種類には、オンラインタスク、バッチタスク、あるいはリッチクライアントタスクがあります。
    オンラインタスクやリッチクライアントタスクの場合、タスクの実行時、ユーザにメインソースが表示されます。メインソース内でレコード間の移動が可能で、ユーザはレコードを見ながら編集を行うことができます。したがって、データ入力画面を表示したり、検索ウィンドウを開いたりするような、ユーザとの対話処理が必要になる場合には、タスクはオンラインタスクかリッチクライアントタスクにしなければなりません。
    バッチタスクや非インタラクティブなリッチクライアントタスクの場合、ユーザとの対話処理なしに、テーブルの最初のレコードから最後のレコードまで各レコードが順に処理されます。処理の対象となるレコードを範囲や条件などで制限することも可能で、これはタスクの「データビュー」を定義することにより行います。レポートの作成やテーブル全体にわたるデータの更新など、自動処理を行いたい場合、バッチタスクにします。

  3. 以上のようにして、メインソースとタスクの種類（オンラインタスク、バッチタスク、あるいはリッチクライアントタスク）を選択したら、その後、タスクの具体的な処理内容を定義します。つまり、タスク、レコード、コントロール、グループ（バッチタスクの場合のみ）の各レベルのループ処理において、処理コマンドや実行イベント、パラメータなどを定義します。

関連トピック：

エンジン実行レベル

ユーザ定義イベント

ユーザ定義関数

タスクデータビュー

タスクフローでの処理モード

マルチスレッド


エンジン実行レベル

Magic xpaのタスクの実行レベルには、以下の６つがあります。

  • タスクレベル …… タスクの開始から終了までのレベルです。

  • グループレベル …… レコードグループの最初から終了までのレベルです。バッチタスクの場合必要に応じて定義することができます。

  • レコードレベル …… レコードをフェッチしてから、処理して保存するまでのレベルです。

  • 項目レベル …… このハンドラでは、コントロールタイプと関連付ける項目を選択します。項目を選択すると、［式］特性は無効になります。指定したコントロールに対して、実行する処理を定義することができます。項目ハンドラは、オンラインタスクでの有効です。

  • コントロールレベル …… フォーム上のコントロールがアクセスされてからそのコントロールを抜けるまでのレベルです。オンラインタスクかブラウザタスクでコントロールレベルの処理が必要な場合に定義します。

  • イベントレベル …… ［イベント選択］ダイアログで指定したイベントのトリガが発生してから、ハンドラ内の処理が終了するまでのレベルです。

コントロールレベルがレコードレベルの一部であるように、タスクやグループ、レコード、およびコントロールレベルは互いにネストされます。例えば、グループレベルの一部であったり、タスクレベルの一部であったりします。

グループ、レコード、およびコントロールレベルは周期的で、複数回(複数のグループ、レコード、およびコントロールのために)実行される場合があります。

概要

以下の表は、Magic xpaの基本的なロジックユニットとそれらのトリガについて説明したものです。

ロジックユニット名 | ロジックユニットトリガ | 実行数
タスク前 | タスク実行時 | 1
タスク後 | タスク終了時 | 1
レコード前 | レコードのデータ取得時 | 1/レコード毎
レコード後 | レコード処理の終了時 | 0 ～ 2/レコード毎*
コントロール前 | エンドユーザがコントロール上にパークした時 | -
コントロール検証 | エンドユーザがコントロールを抜ける前 ［コントロール後］の前 | -
コントロール後 | エンドユーザがコントロールを抜ける時 | -
項目変更 | 項目の値が変更された時 | -

*削除モードの場合、［レコード後］が２回実行されます。

関連トピック：

ユーザ定義イベント

ユーザ定義関数


エンジン実行レベル タスクレベル

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > タスクレベル

タスクレベル

タスクレベルでは、タスクの起動時と終了時の処理を定義できます。

タスク前

タスクの初期設定処理を指定します。

データソースから最初のレコードを読み込まれる前で、タスクの開始時に一度だけ実行されます。

帳票のヘッダの印刷やローカルのパラメータの初期化などで使用されます。

タスク後

タスクの終了時に実行される終了処理を定義します。

データソースに対する接続がクローズされた後、このロジックユニットはタスクの終了時に一度だけ実行されます。

呼び出し元のタスクに返すパラメータを更新する処理や、帳票の総合計を出力する処理などで使用されます。


エンジン実行レベル グループレベル

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > グループレベル

グループレベル

[グループ]ロジックユニットは、データビューの処理中にブレイク処理をさせるものです。

グループレベルは、バッチタスクの場合にのみ有効です。

一定のレベルでの合計値を計算したり、グループ毎にデータを表示したり、帳票でグループに分けて出力したりする場合に使用することができます。

グループレベルは、指定した項目でレコードをグループ分けします。例えば、顧客番号や購入数に対するグループレベルを定義することができます。グループレベルで定義された項目の内容が変わった場合、前処理と後処理にその変更内容に応じた処理を定義します。

１つのタスク内に異なる項目に対する[グループ]ロジックユニットを定義することができます。

ロジックユニットの定義順は、タスクのソート処理で定義されたセグメントの順番と合わせるようにしてください。例えば、タスクのメインソースのインデックスセグメントがCountry_Code、City_Codeの順番の場合、[グループ]ロジックユニットも同じ順序で定義する必要があります。

ソートセグメントの途中に定義された項目から始まる[グループ]ロジックユニットを定義すると、正しい結果にならない場合があります。

グループ前

［グループ前］には、ブレークパラメータの値が変わった後に実行する処理コマンドを定義します。つまり、ブレークパラメータ内の新しい値をもとにレコードのグループ処理を開始します。

このレベルは、通常は、帳票のグループヘッダを印刷する場合に使用されます。定義することが可能なグループレベルの数は制限がありません。

グループ後

［グループ後］には、変更されたブレークパラメータの値を持つレコードを処理する前に実行する処理コマンドを定義します。［グループ後］も、帳票のグループフッタを印刷するために使用される処理コマンドを定義します。

注意：

［グループ後］は、［グループ前］の後に定義する必要があります。この間に新しい［グループ］ロジックユニットを定義しないでください。

関連トピック：

グループレベルの実際の流れ

バッチタスクのイベント処理

グループレベルの例


エンジン実行レベル グループ 実際の流れ

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > グループレベル > グループレベルの実際の流れ

グループレベルの実際の流れ

ロジックユニットの実行順序は以下の通りです。

  • タスク前

  • グループ前（最初のレコード、またはグループの項目値が変更された時点）

  • レコード前

  • レコード後

  • グループ後

  • タスク後

Magicエンジンがバッチタスクの実行を開始すると、最初に［タスク前］を実行します。次に、最初のレコードに対して、全てのグループレベルの［グループ前］を、上位のグループレベルから下位のグループレベルの順で実行していきます。その後、エンジンは、メインソースから１レコードづつフェッチしてレコード処理を進めていきます。

レコードをフェッチした時に、いずれかのグループ項目の値に変化を検出すると、［レコード後］の後に、最下位のグループレベルから、変化があったグループ項目のグループレベルまで、［グループ後］が全て実行されます。［グループ後］は、この時点で処理済みのレコードに対して実行されます。この後、グループ項目に変化があったグループレベルから、最下位にあるグループレベルまで、［グループ前］が全て実行されます。この［グループ前］も、この時点での処理済みのレコードに対して実行されます。

続いて、次のグループの最初のレコードがレコードレベルで処理されます。その後も引き続きグループ項目の値がチェックされ、変化があった時には同様の処理が繰り返されます。最後に、レコードが全て処理し終わった時、あるいは［タスク終了条件］特性の式が「True」に評価された時には、レコードの処理が終了し、最下位のグループレベルから最上位のグループレベルまで、グループ後が実行されます。この処理は、最後に処理されたレコードに対して実行されます。その後［タスク後］が実行され、タスクが終了します。

関連トピック：

バッチタスクのイベント処理

グループレベルの例


エンジン実行レベル グループ ソート

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > グループレベル > データのソート

データのソート

データビューは２つの方法でソートすることができます。

  • メインソースのインデックスを使用する …… この場合、インデックスセグメントの順番は［グループ］ロジックユニットの順番と同じにしなければなりません。

  • タスクの［ソート］テーブルを使用する …… ［グループ］ロジックユニットの順番と合うインデックスが定義されていない場合、このオプションを使用することができます。

［グループ］ロジックユニットはネストすることができますが、2つの基本的な規則を守る必要があります。

  • インデックスセグメントの順番は、［グループ］ロジックユニットの順番と合わせなけらばなりません。インデックス内の上位セグメントは、上位の［グループ］ロジックユニットにする必要があります。

  • ［グループ後］は［グループ前］の次に定義してください。この間に、別の［グループ］ロジックユニットを定義しないでください。

これらのロジックユニットに定義する処理コマンドがない場合、［グループ前］または［グループ後］のロジックユニットを作成する必要はありません。

以下の例は、上記の説明をもとにしたものです。

国名、都道府県名、および市町村名が含まれるアドレス情報を顧客データに含まれているものとします。

また、住所毎の顧客リストを印刷したいと仮定します。この場合、２つの［グループ］ロジックユニットを定義する必要があります。

  1. 最初の［グループ］ロジックユニットは国名の項目で定義します。このロジックユニットは、最上位に定義します。

  2. ２番目の［グループ］ロジックユニットは、都道府県名の項目で定義します。この場合は、国名の［グループ］ロジックユニットの次に定義する必要があります。

インデックスのセグメントは以下の順番で定義されている必要があります。

  1. 国名

  2. 都道府県名

注意：

データソースレコードをソートするために、Magic xpaが一時的なインデックスを作成するため、大きなデータソースでソートするとタスクの性能が低下する可能性があります。


エンジン実行レベル グループ 例

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > グループレベル > グループレベルの例

グループレベルの例

例えば、［受注］データを基に集計を行うとします。このデータは、「顧客コード」（上位グループレベル）、「受注番号」（中位グループレベル）、「商品コード」（下位グループレベル）でソートされているものとします。つまり、「商品コード」の値が変化すると下位のグループレベルの値が、「受注番号」の値が変化すると中位のグループレベルの値が、「顧客コード」の値が変化すると上位のグループレベルの値がそれぞれ、変化（ブレイク発生）することになります。

この場合、まず、最初のレコードについて、上位のグループレベルから下位のグループレベルまで、各グループレベルの［グループ前］が実行されます。その後、最初の顧客の最初の受注番号の最初の商品の処理が完了すると、「商品コード」の［グループ後］（最初のグループレベル）が実行されます。

最初の受注番号に属する全ての商品について処理が終わると、中位のグループレベル（つまり、受注番号）の［グループ後］が実行され、ここで、最初の注文の合計が出力されます。続いて、最初の顧客について「商品コード」と「受注番号」の両方のグループレベルの処理が終わると、次の顧客について［グループ前］が実行されます。

以上のようにしてレコードのチェックが進み、途中、上位のグループレベルの値が変化した場合、そのグループレベルの下位のグループレベルから、値が変化したグループレベルまでの［グループ後］が全て実行されます。その後、再度、次のレコードが処理されることになります。

このようにして、全てのレコードについて処理が完了すると、［タスク後］が実行されます。この処理により、全ての顧客の注文の合計価格が出力されます。

関連トピック：

グループレベルの実際の流れ

バッチタスクのイベント処理


エンジン実行レベル レコードレベル

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > レコードレベル

レコードレベル

レコードレベルには、前処理と後処理があります。

レコード前

［レコード前］では、レコードがディスクから読み込まれてから、ユーザが対話処理を始める直前までに実行される各レコードに対する初期化処理を定義します。［レコード前］には、レコードの初期設定段階で使用される処理コマンド（そのパラメータを処理の開始前にレコード上で実行する必要がある手続き的な処理）を定義します。

レコードループ

オンラインタスクではユーザが参照している各レコードについて、以下に説明する「レコード初期化」処理が実行されます。また、バッチタスクでは、処理対象となる全レコードについて、［データビュー］エディタのメインソース定義の［インデックス］特性で指定されたインデックスの順番あるいは［ソート］テーブルに指定された順番で、最初のレコードから最後のレコードまで、１レコードずつ処理が実行されます。

  1. データビューの最初のレコードに位置付け、レコードを取得します。

注意：

オンラインタスクでは、レコードが見つからない場合、作成モードでタスクがオープンされます。［タスク特性］の［登録］特性が「Yes」に設定されている場合のみこのように動作します。「No」の場合は、タスクは終了します。

  2. ［代入］特性はすべての変数項目で評価されます。タスクが登録モードの場合、カラムの［代入］特性も評価されます。

  3. データソースに対するすべてのリンクが、現在のレコードに対して実行されます。

  4. ［タスク特性］の［チェック時期］特性が、「B=前置」に設定されている場合、Magic xpaは［タスク終了条件］特性を評価します。

  5. レコードループが実行されます。つまり、この時点からデータソースカラムを処理することができます。

  6. ［レコード前］ロジックユニットの処理コマンドが実行されます。

レコード後

［レコード後］は、エンドユーザーがレコードをコミットした後、そして、レコードがデータソースに書き込まれる前に実行されます。

［レコード後］には、次のような処理を定義します。

  • バッチタスクの場合 …… データビューのレコードに関する処理

  • オンラインタスク/リッチクライアントタスクの場合 …… 参照と変更が行われたレコードに関する処理
    レコードがユーザの入力などで変更されていない時には、通常、［レコード後］が実行されません。レコードが変更されていない場合にも［レコード後］を実行させたい場合には、［タスク特性］の［強制レコード後］特性で指定できます。

レコード終了処理

オンラインタスクやインタラクティブなリッチクライアントでは、ユーザが参照している各レコードについて、以下に説明する「レコード終了」処理が実行されます。また、バッチタスクや非インタラクティブなリッチクライアントでは、処理対象となる全レコードについて、［タスク特性］の［インデックス］で指定されたインデックスの順番あるいは［ソート］テーブルに指定された順番で、最初のレコードから最後のレコードまで、１レコードずつ処理が実行されます。

  1. ［レコード後］の処理が実行されます。

  2. タスクがバッチタスクまたは非インタラクティブなリッチクライアントの場合 …… ［レコード後］は常に実行されます。レコードが変更されていない場合でも常にデータベースへの書き込みを行います。

  3. タスクがオンラインまたはインタラクティブなリッチクライアントの場合 …… 現在の論理レコードが変更されている時に限って、［レコード後］が実行されます。
    ［タスク特性］ダイアログの［強制レコード後］特性を使用して強制的に実行させることができます。
    現在のレコードは、次のような操作が行われた場合、変更されたと解釈されます。

    • エンドユーザが、キーボードやマウスを使用し別のレコードに移動した場合

    • ［オプション］メニューでタスクモードを変更した場合

    • レコードの削除が実行された場合

    • エンドユーザの操作や［タスク終了条件］特性によってタスクの実行が終了した場合

    • ［選択テーブル］特性が「Yes」に設定されたタスクで、エンドユーザがEntertを押下した場合。

    • ［強制レコード後］特性が、「Yes」に設定されている場合。

  2. 必要に応じてレコード削除を実行します。

  3. タスクの［チェック時期］特性が「後置」に設定されている場合、［タスク終了条件］が評価された場合。


レコードの削除

タスクの［初期モード］特性が「修正」で、レコードが削除されると、［編集］メニューから「行削除」を選択したり、F3を押下したり強制レコード削除が「True」に設定されたいる場合、エンジンは以下のように削除処理を実行します。

  • レコードが修正されない場合は、削除モードで、［レコード後］が１回だけ実行されます。

  • レコードが修正されたり、［強制レコード後］特性が「True」の場合、次のような処理が実行されます。

  • 修正モードで、［レコード後］の処理が実行されます。これで、リポジトリの処理に定義されている更新処理が実行され、更新が行われます。

  • 続いて、今度は削除モードで、再度、［レコード後］の処理が実行されます。これは、１対多のリレーションにより関係づけられているレコードなど、レコードの削除に関する処理を行うため、または、加算更新モードで更新を行うために必要です。

タスクの［初期モード］が「削除」（バッチや非インタラクティブなリッチクライアントタスク)の場合、Magicエンジンは以下のような削除処理を実行します。

  • バッチタスクの場合、Magic エンジンは、削除モードで一度だけ［レコード後］を実行します。

  • 非インタラクティブなリッチクライアントタスクの場合は、修正モードで［レコード後］を実行し、次に削除モードで実行します。コード後］特性が「True」に設定されたように動作するからです。)


エンジン実行レベル 項目レベル

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > 項目レベル

項目レベル

項目レベルで利用可能なオプションは、［項目変更］ロジックユニットです。これは項目の値が変更された場合に実行されます。

［項目変更］には、項目の内容が変化した場合の処理が定義されます。［項目変更］は、項目の内容が変更されたことをトリガとして起動されます。項目として、BLOB型や、ベクトル型、ActiveX型のデータ項目も定義できます。OLE型や.NET型は定義できません。

項目レベルが選択された場合、コンボボックスの中の表示が変わります。

［項目］カラムでクリックすると、［項目一覧］が表示されます。［項目一覧］は、現在のデータビューの内容が表示されます。ハンドラや関数から項目を選択することはできません。

項目を選択すると、２つのパラメータを追加するかどうかを確認するためのメッセージダイアログが表示されます。［はい］を選択すると、以下のパラメータが追加されます。

  • CHG_REASON_<項目名> …… 書式「2」の数値型。このパラメータは、以下の数値を使用してエンジンがこのハンドラに入った理由を保持します。

  • 0 …… 対話処理による理由です。フォームの上のコントロールの値を変更したことによって実行されたことを示します。

  • 1 …… 対話処理によるものではありません。再計算処理や項目更新処理などによって、フォームから入力以外の変更要因が発生したことを示しています。

  • CHG_PRV_<項目名> …… 変更前の項目の値が保存されます。

注意：

［項目］特性で項目の内容を変更し、そのデータ型が異なる場合、パラメータの型を変更する必要があります。

関連トピック：

項目レベルの実行時の動作

項目変更特性

Level関数

MainDisplay関数


エンジン実行レベル 項目レベル 実行時の動作

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > 項目レベル > 項目レベルの実行時の動作

項目レベルの実行時の動作

項目の値が更新され、再計算処理が完了すると、Magic xpaは［項目変更］に入り、［項目変更］イベントを実行します。

項目は、［項目更新］処理コマンドや［代入］特性や、VarSet()関数、入力フォーム、パラメータ渡し、戻り値、ユーザ操作、およびドラッグ＆ドロップによって更新することができます。キャンセルやロールバック処理は実行されません。

更新前の項目値

ハンドラ内の項目の値は更新された値になります。再計算前の項目の値は、CHG_PRV_<項目名>パラメータに保存されています。

実行の順番

複数の［項目変更］が定義されている場合、実行の順番は、［データビュー］エディタに定義された順番で決定されます。

コントロール変更

コントロールの変更に対して、CHG_REASON_<項目名>パラメータは常に「0」になります。チョイスコントロールでオプションを変更した場合、［項目変更］イベントが実行されます。

関連トピック：

Level 関数

MainDisplay関数

項目変更と再計算


ロジックユニット 項目変更特性

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > 項目レベル > 項目変更特性

項目変更特性

［項目変更］ロジックユニットのヘッダ行で、Alt+Enter を押下するか、コンテキストメニューから［特性］を選択することで、［項目変更特性］が表示されます。

ここには、以下の特性値が表示されます。

特性

内容

ユニット

ロジックユニットのタイプを定義します。この特性は、ヘッダ行でのみ修正できます。

レベル

ロジックユニットの実際のレベルを設定します。現在「C=変更」のみ有効です。

項目

処理される項目を設定します。項目の値が変更された場合、このロジックユニットが実行されます。

条件

ロジックユニット全体の実行条件を設定します。

ここには、処理を実行するかどうかを決定する論理条件を指定します。指定可能な値は以下の通りです。

  • Yes（デフォルト） …… 処理は常に実行されます。

  • No …… 処理は常に実行されません。

  • 式 ……ここから［式］エディタにズームできます。 ［式］エディタに指定された論理式の結果で条件が決定されます。


エンジン実行レベル コントロールレベル

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > コントロールレベル

コントロールレベル

コントロールレベルでは、特定コントロールの実行時の動作を制御できます。例えば、値の設定と表示、入力チェック、その他の処理の実現を行うことができます。コントロールレベルは、［ロジック］エディタで定義できます。

コントロールレベルには、以下の定義項目があります。

特性

内容

ユニットレベル

  • 前 …… ［コントロール前］は、カーソルが特定のコントロールに移動した時、ユーザとの対話が始まる前に実行される必要のある初期化のための処理コマンドを定義します。コントロールハンドラは、レコードハンドラの後に定義します。

  • 後 …… ［コントロール後］は、カーソルが特定のコントロールから離れる際に実行され、各コントロールごとの終了化のための処理コマンドを定義します。
    カーソルが、コントロールから離れてフォーカスを失いと必ず実行されます。通常、エンドユーザが別のコントロールにカーソルを移動するか、別のレコードに移動するか、タスクを終了した場合に発生します。また、コントロールレベルが終了するように定義されたイベントが発行された場合も、必ず実行されます。
    ［ビュー再表示］のような内部イベントは、コントロールやレコードレベルを終了するために指定されます。
    イベント実行によってコントロールループ処理を終了する場合、以下の処理を実行します。

    1. コントロールの編集処理を終了します。

    2. 項目の実行値を設定します。

    3. 新しい項目値にしたがって再計算します。

    4. コントロール後を終了します。

  • 検証 …… ［コントロール検証］は、カーソルが特定のコントロールから離れたり、高速モードでコントロールを通過した場合に［コントロール後］の前に必ず実行されます。

関連トピック： エンドユーザが入力したデータを検証するには

コントロール名

フォーム上のコントロール名を直接入力するか、［コントロール名一覧］から選択します。

条件

  • Yes …… コントロールハンドラが有効であることを意味します。

  • No …… コントロールハンドラが無効であることを意味します。

  • 式 …… コントロールハンドラの有効／無効を式によって動的に指定できます。


エンジン実行レベル コントロールレベル コントロール名一覧

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > コントロールレベル > コントロール名一覧

コントロール名一覧

現在のタスクの、クラス「0」のGUI表示フォームやブラウザフォーム上のコントロールのコントロール名を表示します。

グループ名

ここには、GUIとブラウザのフォーム名が表示されます。フォームに対応するコントロールを表示する場合は、フォーム名を指定します。全てのコントロール名を表示させるには、「全コントロール」を指定します。

コントロール名

指定されたフォームのコントロール名が表示されます。

「全コントロール」が選択された場合、現在のタスクのGUI表示フォームの全てのコントロールが表示されます。先頭行は空白で、選択済みの内容を消す場合に使用します。

注意：

同じコントロール名が存在している場合、１つしか表示されません。


エンジン実行レベル イベントレベル

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル

イベントレベル

イベントレベルでは、無手順で発生したイベントに対して、対応するハンドラを処理します。ハンドラは、タスクレベルとレコード、またはグループやコントロールレベルの間に定義できます。

イベントレベルには、以下の定義項目があります。

特性

内容

ユニット

イベント

イベント

［イベント］ダイアログによって、イベントのタイプとイベントの内容を設定します。

コントロール名

コントロール名を指定します。

フォーム上のコントロール名を直接入力するか、［コントロール名一覧］から選択します。

コントロール名を入力することで、以下の利点があります。

  • コントロールを定義する前に、コントロールハンドラを作成できます。

  • 異なるGUIフォーム上に同じ名前のコントロールがある場合に対応できます。

  • 一度コントロールが削除されても、同じ名前で再定義することでハンドラとのリンクが確保されます。

注意：

フォームに追加する前にコントロール名を入力することができます。

関連トピック：

特定のコントロールにパークしている時にのみ実行されるイベントロジックユニットを定義するには

イベントの処理を特定のコントロールに限定するには

指示

エラーイベントによってMagicエンジンがどのように処理するかどうかを指定します。

メッセージ

致命的なエラーや予期せぬエラーに対してDBMSメッセージを表示するかどうかを指定することができます。

  • Yes …… DBMSメッセージを表示します。この場合、［動作環境／動作設定］の［メッセージの詳細表示］が「Yes」と同じ動作になります。

  • No …… DBMSメッセージを表示しません。

スコープ

以下のどちらかを指定できます。

  • T=タスク(デフォルト） …… ハンドラは、そのタスク内でのみ有効です。

  • S=サブツリー …… ハンドラは、そのタスク内、およびその全てのサブタスク内で有効です。

  • G=グローバル …… プロジェクト内の全てのプログラムで有効です。メインプログラムでのみ定義できます。

注意：

この特性は、フォームに配置されていない.NETオブジェクトによる.NETイベントではサポートされません。

関連トピック：

同一イベントで複数のハンドラを実行させるには

イベントが定義されたタスクでのみ有効にするには

アプリケーション全体で利用できるハンドラを定義するには

伝播

［イベント］ロジックユニットでイベントが処理された後、そこでイベント処理が終わるか、あるいは、より上位（親タスクなど）に定義されている［イベント］ロジックユニットを探しに行くかを制御します。

  • Yes …… Magicエンジンは、この［イベント］ロジックユニットを実行した後に、イベントを未処理のものとみなし、より上位レベルで［イベント］ロジックユニットが定義されていないか検索し、定義されていれば、その［イベント］ロジックユニットを実行します。

  • No …… Magicエンジンは、［イベント］ロジックユニットを実行した後、それ以上同じイベントの［イベント］ロジックユニットを探すことはせず、そこでイベント処理を終了します。

  • 式 …… ［イベント］処理の伝播を式によって動的に指定できます。

注意：

上位のユーザ定義の［ドラッグ開始］/［ドロップ］イベントのロジックユニットに対する［伝播］特性が「No」に設定された場合、ドラッグ/ドロップ・データの自動処理は実行されません。

この特性は、フォームに配置されていない.NETオブジェクトによる.NETイベントではサポートされません。

関連トピック：

イベントの階層を利用するには

同一イベントで複数のハンドラを実行させるには

ユーザハンドラによって実行された内部イベントに処理を定義するには

内部イベントを処理しないようにするには

条件

  • Yes …… ［イベント］ロジックユニットが有効であることを意味します。

  • No …… ［イベント］ロジックユニットが無効であることを意味します。

  • 式 …… ［イベント］ロジックユニットの有効／無効を式によって動的に指定できます。

実行

ロジックユニットの実行先を指定します。この特性はリッチクライアントタスクでのみ表示されます。オプションは以下の通りです。

  • O=最適化(デフォルト) …… 処理フローに基づいてサーバ上かクライアント上で実行されます。

  • S=サーバ …… サーバ上で実行されます。

この特性は、［関数］か［イベント］ロジックユニットでのみ有効です。「サーバ」と指定されたロジックユニット内では、ニュートラル（どちらでも実行可能）、またはサーバ側の処理コマンドのみ有効です。.NETイベントでは無効になります。

実行時、Magicエンジンは実行中のタスクツリーに沿って上方に現在のタスクから指定されたコントロールに対応する［イベント］ロジックユニットを検索します。該当するコントロールに対応した［イベント］ロジックユニットが見つからない場合、コントロールが指定されていない［イベント］ロジックユニットを探します。

関連トピック：

イベント処理

同一イベントで複数のロジックユニットを処理する

内部イベント

イベントとハンドラ (Mastering Magic xpa)


エンジン実行レベル イベントレベル イベントタイプ

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > イベントタイプ

イベントタイプ

イベントレベルでは、［イベント］カラムからズームするか、F5を押下すると［イベント］ダイアログが開きます。

［イベント］ダイアログから選択できるイベントタイプは、以下の通りです。

S=システム

キーの組み合わせを定義することで発生するイベントです。［イベント］欄でズームすると［キー設定］ダイアログが表示され、キーの組み合わせを定義できます。

I=内部

［イベント］欄でズームすると［イベント一覧］が表示され、Magic xpaの内部イベントが選択できます。

U=ユーザ

［ユーザイベント］テーブルに定義されたイベントです。［イベント］欄でズームすると［イベント一覧］が表示され、ユーザ定義イベントが選択できます。

T=タイマー

定義された間隔で発生するイベントです。

関連トピック： 一定時間の経過後に処理を実行させるは

E=式

式が「True」と評価された場合に発生するイベントです。［イベント］欄でズームすると［式］エディタが表示され、イベントを定義できます。

関連トピック： 条件が満たされた場合に処理が実行されるようにするには

R=エラー

データベースによって発生しうるエラーによって発生するイベントです。［イベント］欄でズームすると［エラー一覧］が表示され、以下のエラーを選択できます。

  • 任意のエラー

  • レコードロック

  • 重複インデックス

  • 制約違反

  • トリガ失敗

  • レコードが更新されていた

  • レコードを別ユーザが変更

  • 挿入/更新/削除に失敗

  • 未定義エラー

エラーのタイプを指定しない場合、「任意のエラー」が割り当てられます。「任意のエラー」は、どのようなエラーに対しても処理されます。

関連トピック： データベースエラーまたは例外を処理するには

A＝ActiveX

COMオブジェクトから発生するイベントです。［イベント］欄でズームすると［ActiveXイベント］ダイアログが表示され、対象となるオブジェクトとイベントを選択できます。ActiveXタイプは、リッチクライアントタスクでは利用できません。

注意：

このイベントは、Ver2.xではサポートされなくなりました。

.=.NET

［イベント］欄でズームすると、.NETイベントダイアログが表示されます。ここには、.NET項目やイベントを選択することができます。イベントが組み込み変数を持っている場合は、ロジックユニットに対応する.NET型のパラメータ項目を作成します。また、パラメータ項目を定義しないで［イベント］ロジックユニットを定義することもできます。このような場合、選択したいイベント用のオブジェクトを記述することができます。

モバイル端末の場合は、サポートするコントロールが制限されます。

.NETイベントのロジックユニットの動作は、リッチクライアントとオンラインタスクで異なります。

  • リッチクライアントタスク …… 複数のタスクが同時に実行されるため、動作は標準ではなく、伝播指定に関係なく、.NETイベントはすべてのタスクで発生します。

  • オンラインタスク …… 1つのタスクツリーが常にあるため、コントロールでない.NETオブジェクトの動作は、.NETコントロールと同じで、MAgic xpaの他のイベントと同じように動作します。

関連トピック：

.NETイベントの処理

.NETオブジェクトのイベントを処理するには


エラー処理 エラーハンドラの作成 詳細/対応

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > エンジンの対応

指示

ユーザ定義のエラーハンドラを定義する場合、この特性でエンジンの対応動作内容を指定することにより、エラーロジックユニットの処理実行後にどのようなMagic xpaの動作が起きるかを制御できます。

関連トピック：

タスク特性に依存

アボート

ロールバックして再起動

自動的にリトライする

ユーザがリトライする

無視する


エラー処理 エラーハンドラの作成 詳細/対応 ロールバックと再起動

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > エンジンの対応 > ロールバックと再起動

ロールバックと再起動

このオプションの場合、全てのエラーモードとトランザクションモードで同じ動作になりますが、［タスク特性］ダイアログの［タスクタイプ］特性と［トランザクション開始］特性の指定によって変化します。

タスクタイプ | トランザクション開始 | 動作
オンライン/リッチクライアント | レコード前の前 | カーソルはトランザクションを開始したレコードにパークします。
 | タスク前の前 | カーソルはトランザクションを開始したタスク上にパークし、最初のレコードに位置付けます。
バッチ | レコード前の前 | 次のレコードに進む。
 | タスク前の前 | タスクをアボートします。


エラー処理 エラーハンドラの作成 詳細/対応 自動的にリトライ

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > エンジンの対応 > 自動的にリトライ

自動的にリトライする

ロックや最大接続数の超過のような一部のエラーの復旧では、エンドユーザによる入力なしに処理が自動的にリトライされます。Magic xpaが自動的にリトライできるのは、次の表に示すエラーのみです。ほとんどのエラーでは、「ユーザがリトライする」で説明するような、ユーザによる介入が必要です。

エラー | 動作
テーブルがロックできない レコードロック 最大接続数に到達 | Magic xpaにより、処理コマンドが自動的にリトライされます。物理トランザクションであるか遅延トランザクションであるかに関係なく、トランザクションもデータビューもロールバックされません。カーソルは同じレコードにパークし、タイムアウト値に達するまでロックまたは接続がリトライされます。
重複インデックス 制約違反 トリガ失敗 | 遅延トランザクションのみ。 Magic xpaにより、フラッシュ段階で物理トランザクション全体が自動的にリトライされます。
テーブルのオープンに失敗 テーブル作成エラー テーブルの削除に失敗 テーブルのコピーに失敗 トランザクションのコミット失敗 トランザクションのオープン失敗 内部トランザクションエラー デッドロック 接続に失敗 致命的なエラー 挿入/更新/削除に失敗 SQL 実行エラー SQL コマンドが正しくない オープンQueryの式が正しくない テーブル名が正しくない テーブルが存在しない 読込専用テーブルは更新不可 レコードが更新されていた レコードを別ユーザが変更 レコードが失われていた | 不適用、設定はできません。

注意：

  • 遅延トランザクションモードでは、自動リトライによって、遅延トランザクション中に蓄積されたコマンドについてトランザクションのフラッシュ段階で発生した全てのエラーが参照されます。物理トランザクションは、ロールバックされてから再起動されます。これには、実行済みの全ての処理コマンドも含まれます。

  • 別のユーザによってデータが変更された場合、(データがキャッシュ内に存在する場合)行にパークしている時点では、何も変わりませんが、データの修正を行おうとした時点で、現在の値がディスクから読み込まれ、レコードが更新され、再読込のメッセージが表示されます。
    ［キャッシュ範囲］特性で「位置とデータ」を指定した場合、Magic xpaは行の実データをキャッシュします。その行を再度読み込んだ場合、キャッシュ内の古い値が読み込まれます。別のタスクによってこのデータが修正されていても、現在のタスクには表示されません。別のタスクによって変更されたレコードを更新しようとした場合、前述のメッセージが表示されます。


エラー処理 エラーハンドラの作成 詳細/対応 アボート

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > エンジンの対応 > アボート

アボート

トランザクションを開始したタスクのアボート、データのロールバック、データビューの削除が行われます。


エラー処理 エラーハンドラの作成 詳細/対応 ユーザがリトライ

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > エンジンの対応 > ユーザがリトライ

ユーザがリトライする

トランザクションやデータビューは自動的にロールバックされず、エラーが発生したレコード上にカーソルが置かれた状態で制御がエンドユーザに返されます。この設定は、物理トランザクションでは利用できません。

エンドユーザが復旧できるエラーを、次の表に示します。

エラー

動作

不正なログオン

全てのタスクタイプで有効です。

開発／実行モードにおいて、［ログオン］ウィンドウが表示され、エンドユーザに再度ログオンを要求します。

バックグラウンドモードで実行している場合は、［ログオン］ウィンドウが表示されません。

重複インデックス

制約違反

トリガ失敗

オンライン

  • 遅延トランザクション …… フラッシュフェーズのみロールバックされます。データビューは、現在のビューのままです。
    レコードレベルでは、レコード上に制御が残ります。
    タスクレベルでは、タスクは実行された状態で最初のレコード上にカーソルが置かれます。

  • 物理トランザクション …… トランザクションは、ロールバックされます。データビューは再作成されます。カーソルは、現在のレコードの先頭に移動します。
    タスクレベルでは、タスクは実行された状態で最初のレコード上にカーソルが置かれます。

バッチタスクには適用されません。

レコードが更新されていた

オンライン

データビューは更新後に値が表示され、カーソルは現在のレコードに留まります。
［トランザクション開始］欄が「レコード前の前」の場合、そのレコードはロールバックされ

ます。
［トランザクション開始］欄が「タスク前の前」の場合、そのタスクはロールバックされません。

バッチタスクには適用されません。

レコードロック
テーブルオープンに失敗
テーブル作成エラー
テーブル削除に失敗
テーブルコピーに失敗
トランザクションのコミット失敗
トランザクションのオープン失敗
内部トランザクションエラー
デッドロック
接続に失敗
致命的なエラー
挿入/ 更新/ 削除に失敗
SQL実行エラー
SQLコマンドが正しくない
オープンQueryの式が正しくない
テーブル名が正しくない
テーブルが存在しない
読込専用テーブルは更新不可
レコードが失われた

適用されません。

これらのエラーに対してユーザリトライは指定できません。


エラー処理 エラーハンドラの作成 詳細/対応 無視する

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > エンジンの対応 > 無視する

無視する

このオプションは、エラーがスキップされ、以下に説明するように次のレコードから処理が続行されます。

物理トランザクション

  • バッチ …… 次のレコードに進みます。

  • オンライン／リッチクライアント …… 実行された処理コマンドに従って次のレコードに進みます。レコードがロックされていて次のレコードに移動できない場合、前のレコードにとどまります。

遅延トランザクション

書込以外の段階でエラーが発生した場合、Magic xpaは物理トランザクションであるかのように動作します。書込の段階でエラーが発生した場合、Magic xpaは現行コマンドをスキップし、次のコマンドに進みます。

注意：

  • 物理トランザクションの「N=無視する」オプションは、レコードサイクル全体（レコード前、レコード後）がスキップされます。

  • 遅延トランザクションの「N=無視する」オプションでは、レコードサイクル全体ではなく、関連コマンドのみがスキップされます。遅延モードのコマンドは、レコードサイクルとの関連で実行されないためです。


エラー処理 エラーハンドラの作成 詳細/対応 タスク特性

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > エンジンの対応 > タスク特性に依存

タスク特性に依存

このオプションの場合、［タスク特性］ダイアログの［エラー発生時］特性の処理方式に依存します。

注意：

他の全てのエラー対応は「タスク特性に依存」の例外処理となります。


エンジン実行レベル イベントレベル イベント処理用語

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > イベント処理

イベント処理

Magic xpaは、タスクの実行中に暗黙的または明示的に発生するイベントに対応した処理を定義することができます。

イベントドリブンに関する用語を以下に示します。

  • イベント …… 発生事象を論理的に定義したものです。イベントは、［イベント］ロジックユニットが処理コマンドを実行することによって処理されます。

  • トリガ …… イベントは、他のユーザ定義イベントのトリガとして定義できます。イベント要因が発生した場合、定義されてユーザイベントを起動します。

  • ハンドラ …… 指定されたイベントが発生した場合、処理される処理の集合体です。

イベントは、複数のトリガと複数のハンドラを持つことができます。各トリガは異なるシナリオでイベントを発行することができます。複数のハンドラが各シナリオに対するイベントを処理することができます。

Magicイベントは、アプリケーションイベントとして定義することができます。これはメインプログラムで定義され、プロジェクト全体で利用することができます。これらのイベントは、プロジェクト内のどのプログラムが実行している場合でも発行することができます。イベントは、タスクイベントとして定義できます。これは特定のタスク内で定義され、定義されたタスクかそのサブタスクに対してのみ有効になります。

関連トピック：

同一イベントで複数のロジックユニットを処理する

イベントタイプ

イベントドリブンアーキテクチャ

イベントとハンドラ (Mastering Magic xpa)


同一イベントで複数のロジックユニットを処理する

同一イベントに対して複数の［イベント］ロジックユニットが定義されている場合があります。

このような場合、Magic xpaの実行規則に基づき最初のロジックユニットが実行され、これ以降のイベントはクリアされます。従って、他のロジックユニットは実行されません。

例えば、［印刷］という2つのユーザ定義イベントが定義されているものとします。1つは注文データを印刷するもので、もう1つは送り状を印刷するものです。Magic xpaの実行規則によると、このうち1つのロジックユニットのみ実行されます。

どちらのロジックユニットが処理されるのか？

Magic xpaの実行規則によると、実行ツリーの中で最も実行レベルの低いロジックユニットが処理されます。上記の例では、送り状の印刷処理の下位（ロジックエディタ内の下位の位置）に注文データ印刷のロジックユニットが定義されている場合、注文データのロジックユニットが実行されます。

両方のロジックユニットを処理させたい場合は？

上記の例で、両方のロジックユニットを処理させたい場合、注文データ印刷のロジックユニットの［伝播］特性を「Yes」に設定します。この設定により、注文データ印刷のロジックユニットが終了した後に［印刷］イベントが保持されるようになります。

内部ハンドラの処理を追加することができるか？

Magic xpaの内部ハンドラにアクセスすることはできません。しかし、Magic xpaの内部のハンドラを実行する前に内部イベントを処理するための［イベント］ロジックユニットを定義することはできます。

Magic xpaの内部ハンドラは、常に実行ツリー内の最も高いハンドラとして位置しているため、このようにすることが可能になります。

例えば、［終了］イベントの処理で説明します。

エンドユーザに対して、プログラムを終了する前に注文データを印刷するかどうか確認させたい場合、［終了］イベントを処理する必要があります。しかし、［終了］イベントに対するロジックユニットを定義すると、Ｍａｇｉｃの内部ハンドラとしての［終了］イベントは実行されなくなり、プログラムは終了しなくなります。［終了］イベントのロジックユニットを処理し、またMagic xpaに［終了］イベントに対する内部ハンドラを実行させるためには、ロジックユニットの［伝播］特性を「Yes」に設定する必要があります。

関連トピック：

同一イベントで複数のハンドラを実行させるには


選択一覧 イベント一覧

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント

内部イベント

[式]エディタ内でCtrl+2を押下すると、[イベント一覧]が表示されます。[イベント一覧]には、[イベント実行]処理コマンドやハンドラの定義の際に参照するMagic xpaの内部イベントが表示されます。

[イベント一覧]は、以下のイベントグループで分類されています。

  • ナビゲーション

  • 編集

  • アプリケーション

  • タスク

  • マルチマーキング

  • ユーザアクション

  • 設定

  • オフライン

[イベント実行]処理コマンドを使用することで、実行時にイベントにアクセスすることができます。

関連トピック：

データ再表示イベント

印刷イベント

リッチエディットコントロールのイベント

ツリーコントロールのイベント

範囲／位置付イベント


選択一覧 イベント一覧 アプリケーションイベント

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント > アプリケーションイベント

アプリケーションイベント

イベント名

説明

デフォルトキーボード割付

モバイルサポート

Magic情報

サポートされなくなりました。

実行エンジンでMagic情報を出力するには、コマンドラインパラメータを指定して起動してください。

OSコマンド

OSに一時的に制御を移します。Magic xpaは、OS側の処理の終了を待ちません。

参考：

リッチクライアントアプリケーションでは利用できません。

アプリケーション・オープン

再度ログインすることなく、Magicアプリケーションを切り換えることができます。

このイベントは、オプションパラメータとしてecfファイル名を指定することができます。パラメータを指定してこのイベントを発行した場合、パラメータで指定されたアプリケーションがオープンされます。

このイベントによって有効なアプリケーションを指定することで、ユーザによる操作を必要とせずにアプリケーションをオープンすることができます。

参考：

このイベントは、アプリケーションが正しく指定されない場合は動作しません。また、Studio環境でも動作しません。

リッチクライアントアプリケーションでは利用できません。

Ctrl+O

アプリケーション・クローズ

現在実行中のアプリケーションを閉じます。このイベントは、オンラインアプリケーションの実行モードでのみ有効です。

[（Magic）終了]イベントと異なり、Magicエンジンは終了しません。

参考：

このイベントは、、Studio環境では動作しません。

リッチクライアントアプリケーションでは利用できません。

プリンタの設定

Windowsの[プリンタの設定]ダイアログを開きます。

サーバ終了

サーバがMRBによって終了指示が発行され、Mgrb.iniのShutdownTimeoutキーワードに値が設定されている場合、サーバは自動的にこの内部イベントを発行します。そして、実行中のプログラムが終了処理を実行します。

RqTrmTimeout と RqRtTrmEx も参照してください。

外部イベント

外部のプログラムから発行されたイベントとデータをMagicが受け取ることによって、同一コンピュータ内のMagic と外部プログラムの間での連携を可能にすることができます。

Android

iOS

終了

現在実行しているタスクを終了します。

モバイル仕様：

Androidの場合、Backキーをタップすることで発生します。

Esc

Android

iOS

(Magic)終了

オンラインアプリケーション：Magic xpaと実行中の全てのアプリケーションを終了します。

リッチアプリケーション：クライアント側で実行中のアプリケーションを終了し、サーバに全てのコンテキストを終了するように通知します。

参考：

イベント一覧には、終了（X)、またはExit Systemと表示されています。

Alt+F4

Android

iOS


ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント > オフラインイベント

オフラインイベント

イベント名

説明

無効サーバ

サーバリクエストの終了に問題がある場合に発生します。

サポートバージョン：

2.4


選択一覧 イベント一覧 ナビゲーションイベント

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント > ナビゲーションイベント

ナビゲーションイベント

クリック | マウスオーバ | 次のウィンドウ | 親のノードに移動
コントロールヒット | ライン先頭 | 次のノードに移動 | 前のウィンドウ
ズーム | ライン末尾 | 次画面 | 前のノードに移動
ダブルクリック | その他のウィンドウ | 次語 | 前画面
テーブル先頭 | 下行 | 次行 | 前語
テーブル末尾 | 画面先頭 | 次行先頭 | 前行
フォーム先頭 | 画面末尾 | 次項目 | 前項目
フォーム末尾 | 行先頭 | 次文字 | 前文字
ページ先頭 | 行末尾 | 次ページ | 前ページ
ページ末尾 | 項目先頭 | 終了 | 全て閉じる
ボタンを押す | 項目末尾 | (Magic)終了 | 親による再表示後
マウスアウト | 子ノードに移動 | 上行 | 長押し

イベント名

説明

デフォルトキーボード割付

モバイルサポート

クリック

コントロールをマウスクリックした場合にトリガされます。

Android

iOS

コントロールヒット

コントロールがマウスでクリックされた時にアクティブになります。

このイベントは、コントロールのタイプに依存して動作が異なります。

  • オンラインタスクの場合……（[プッシュボタン]コントロールを除く）すべてのコントロールに対して、マウスをクリックすることで、[コントロールヒット]イベントが発行されます。このイベントに対するハンドラが定義されており、[伝播]特性が「No」に設定されている場合、マウスクリックのデフォルトの動作が実行されなくなります。例えば、リストボックスやコンボボックスからの選択ができなくなります。
    [プッシュボタン]コントロールに対して、マウスボタンがリリースされると[コントロールヒット]イベントが発行されます。

  • リッチクライアントタスクの場合……[コントロールヒット]イベントはオンラインタスクと同じように発行されますが、[コントロールヒット]ハンドラでこのイベントの[伝播]特性を「No」にした場合の動作が異なります。オンラインタスクの場合は、デフォルトの動作（リストボックスからの選択などの）ができなくなりますが、リッチクライアントタスクの場合は、デフォルトの動作が実行されません。

Android

iOS

ズーム

[ズーム]イベントを発行します。

F5

ダブルクリック

コントロールをマウスでダブルクリックした場合にトリガされます。

テーブル先頭

カーソルを現在のテーブルの先頭行に移動します。

参考：

.NETコントロールをデータビューとして使用している場合はサポートされません。

Ctrl+Home

Android

iOS

テーブル末尾

カーソルを現在のテーブルの末尾の行に移動します。

Ctrl+End

フォーム先頭

カーソル位置を現在のコントロールの先頭に移動します。

Ctrl+Home

フォーム末尾

カーソル位置を現在のコントロールの最後に移動します。

Ctrl+End

Android

iOS

ページ先頭

カーソルを現在のページの先頭に移動します。

Ctrl+PgUp

Android

iOS

ページ末尾

カーソルを現在のページの最後に移動します。

Ctrl+PgDn

Android

iOS

ボタンを押す

ボタンを押下する処理を実行します。プッシュボタン上にカーソルがある場合に限り有効です。

Enter

Android

iOS

マウスアウト

マウスカーソルがコントロールの境界線を出た場合にトリガされます。

マウスオーバ

マウスカーソルがコントロールの境界線内に入った場合にトリガされます。

ライン先頭

カーソルを現在の行の先頭に移動します。[エデット]コントロール上のみで有効です。

Alt+Home

ライン末尾

カーソル位置を現在の行の最後に移動します。[エデット]コントロールのみで有効です。

Alt+End

その他のウィンドウ

このイベントが発行されると、Magic xpaは[その他のウィンドウ]ダイアログを読み込みます。

参考：

このイベントは、Ver2.xではサポートされません。

下行

次の行の同じコントロールに移動します。

このイベントは、複数行表示のコントロールや［リッチエディット］コントロールでのみ有効です。

参考：

.NETコントロールをデータビューとして使用している場合はサポートされません。

Down

画面先頭

カーソルを現行画面の最初の行に移動します。

Ctrl+PgUp

画面末尾

カーソルを現行画面の最終行に移動します。

Ctrl+PgDn

行先頭

カーソルを現在の行にパーク可能な最初のコントロールに移動します。

Alt+Rght
Alt+Left

行末尾

レコード内の行の最後にカーソルを移動します。

Alt+Left
Alt+Right

項目先頭

カーソル位置を現在のカラムの先頭に移動します。

Home

項目末尾

カーソル位置を現在のカラムの最後に移動します。[エデット]コントロールのみで有効です。

End

子ノードに移動

現在のノードの最初の子ノードにカーソルを移動します。

次のウィンドウ

ウィンドウ一覧の次のウィンドウにカーソルを移動する。

参考：

リッチクライアントではサポートされません。

サポートバージョン：

2.3

Ctrl+TAB

次のノードに移動

次の子ノードにカーソルを移動します。

次画面

次の画面の先頭に移動します。

参考：

.NETコントロールをデータビューとして使用している場合はサポートされません。

PgDn

次語

カーソル位置を次の文字列に移動します。[エデット]コントロールのみで有効です。

参考：

.NETコントロールをデータビューとして使用している場合はサポートされません。

リッチクライアントではサポートされません。

Rght

次行

次の行の同じコントロールに移動します。

参考：

.NETコントロールをデータビューとして使用している場合はサポートされません。

リッチクライアントではサポートされません。

Down

Android

iOS

次行先頭

カーソル位置を次の行の先頭に移動します。

Enter

次項目

パーク可能な次のコントロールにカーソル位置を移動します。

参考：

.NETコントロールをデータビューとして使用している場合はサポートされません。

Tab
Down
Left
Right

Android

iOS

次文字

カーソル位置を次の文字に移動します。[エデット]コントロールのみで有効です。

Right

次ページ

カーソル位置を次のページに移動します。

このイベントは、複数行表示のコントロールや［リッチエディット］コントロールでのみ有効です。

参考：

.NETコントロールをデータビューとして使用している場合はサポートされません。

PgDn

Android

iOS

終了

現在実行しているタスクを終了します。

Esc

Android

iOS

(Magic)終了

Magic xpaと実行中の全てのアプリケーションを終了します。

参考：

イベント一覧には、終了（X)、またはExit Systemと表示されています。

Alt+F4

Android

iOS

上行

上の行の同じコントロールにカーソルを移動します。

このイベントは、複数行表示のコントロールや［リッチエディット］コントロールでのみ有効です。

参考：

.NETコントロールをデータビューとして使用している場合はサポートされません。

親のノードに移動

カーソルを親のノードに移動します。

前のウィンドウ

ウィンドウ一覧の前のウィンドウにカーソルを移動する。

参考：

リッチクライアントではサポートされません。

サポートバージョン：

2.3

CTRL+SHIFT+TAB

前のノードに移動

カーソルを前のド表示ノードに移動します。

前画面

前画面の先頭に移動します。

参考：

.NETコントロールをデータビューとして使用している場合はサポートされません。

PageUp

Android

iOS

前語

カーソル位置を前の文字列に移動します。[エデット]コントロールのみで有効です。

参考：

.NETコントロールをデータビューとして使用している場合はサポートされません。

リッチクライアントではサポートされません。

CTRL+Left

前行

前の行の同じコントロールにカーソル位置を移動します。

参考：

.NETコントロールをデータビューとして使用している場合はサポートされません。

リッチクライアントではサポートされません。

Up

Android

iOS

前項目

パーク可能な前のコントロールにカーソル位置を移動します。

参考：

.NETコントロールをデータビューとして使用している場合はサポートされません。

SHIFT+TAB

Up

Left

Right

前文字

カーソル位置を前の文字に移動します。[エデット]コントロールのみで有効です。

Left

前ページ

カーソル位置を前のページに移動します。

このイベントは、複数行表示のコントロールや［リッチエディット］コントロールでのみ有効です。

PgUp

全て閉じる

このイベントが発行されると、ウィンドウ一覧の全てのウィンドウが閉じます。

Magic xpaは、[オープンモーダル]ダイアログを持っているので閉じませんが、他のタスクを閉じる処理を続けます。

参考：

リッチクライアントではサポートされません。

サポートバージョン：

2.3

親による再表示後

［親による再表示後］イベントは、サブフォームが親タスクによって再表示された時にサブフォームタスク内で発生します。

長押し

モバイル用デバイスでのコントロール上での長押しを処理します。

操作方法によっては、同時に［クリック］イベントも発生する場合があります。

サポートバージョン：

2.3

Android

iOS


式 式一覧 イベント一覧 タスクイベント

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント > タスクイベント

タスクイベント

OK | コンテキストを閉じる | ブラウザステータス テキスト変更 | 行削除
インデックス | コントロールヒット | プログラム再呼出 | 取消終了
ウィンドウ位置変更 | サブフォーム再表示 | ヘルプ | 修正
ウィンドウサイズ変更 | ズーム | レコード書込 | 終了
ウィンドウヒット | ソート | 位置付 | 終了値
カラムクリック | ダブルクリック | 位置付／次候補 | 照会
キャンセル | データビューが空 | 位置付／前候補 | 登録
クローズ | ドラッグ開始 | 画面再表示 | 入出力ファイル
コンテキストがフォーカス取得 | ドロップ | 開始値 | 範囲
コンテキストがフォーカス喪失 | ビュー再表示 | 行作成 | 親による再表示後

イベント名

トリガ

動作

デフォルトキーボード割付

モバイルサポート

OK

OKボタンがクリックされると、このイベントが発行されます。

Enter

インデックス

参考：

このイベントは、Ver2.xではサポートされません。

Ctrl+K

ウィンドウ位置変更

ウィンドウの位置が変更された場合に発行されます。

ウィンドウサイズ変更

ウィンドウのサイズが変更された場合に発行されます。

全て

ウィンドウヒット

ウィンドウがマウスでクリックされた場合に発行されます。

カラムクリック

カラムのタイトルをクリックした場合に発行されます。

関連トピック： ユーザがカラムをクリックした後にロジックを実行させるには

［イベント］ロジックユニットの［伝播］特性が「No」に定義された場合、ユーザがカラムのタイトルをクリックしても、カラムはソートされません。

［伝播］特性を「Yes」に設定することで、処理されます。

このイベントが手動で発行された場合は、何も動作しません。

キャンセル

現在の行の編集を取り消します。全てのデータ項目をその行が読み取られた時の値に戻します。

同期された（つまり、遅延トランザクションのキャッシュが書き込まれた）後では、レコードをキャンセルされません。

リッチクライアントタスクで、［キャンセル］イベントが発行された場合、［コントロール検証］と［コントロール後］のロジックユニットは実行されません。［コントロール前］は実行されます。

トランザクションが開始されたタスクでない場合、タスク内でキャンセルを実行するとそのタスクでのみキャンセルされます。

参考：

レコードをキャンセルすると、レコードに入り直すため［レコード前］ロジックユニットが実行されます。

Ctrl+F2

Android

iOS

クローズ

現在表示中のウィンドウを閉じ、実行しているタスクを終了します。

Ctrl+F4

Android

iOS

コンテキストがフォーカス取得

コンテキストがフォーカスを受け取った場合、この非同期イベントが実行されます。

[コンテキストがフォーカス取得]イベントは、前のコンテキストのコンテキストID/コンテキスト名を表す文字列パラメータをサポートします。

コンテキストがフォーカス喪失

コンテキストがフォーカスを失った場合、この非同期イベントが実行されます。

[コンテキストがフォーカス喪失]イベントは、次のコンテキストのコンテキストID/コンテキスト名を表す文字列パラメータをサポートします。

コンテキストを閉じる

現在のコンテキストまたはオープン中のコンテキストが終了します。この内部イベントが発行されると、通常のタスク終了処理が実行されます。この内部イベントによって、コンテキスト内の全てのタスクが終了します。

終了するコンテキストがメインコンテキストであっても無視され、ログモニタに記録されます。

コントロールヒット

マウスの左クリックでコントロールをクリックした場合に発生します。

Android

サブフォーム再表示

サブフォームの再表示を行います。

ズーム

データ項目が定義されていないプッシュボタンをクリックした場合は、［プッシュボタン］コントロール上にパークしている場合のみ発行されます。

F5

ソート

エンドユーザ機能用コンポーネントが起動され､[ソートウィンドウを開きます。

Ctrl+T

ダブルクリック

コントロールをマウスでダブルクリックした場合に発行されます。

データビューが空

このイベントは、タスクの範囲指定によってデータビューが空の状態になった場合に発生します。

[レコード前]が実行される代わりにこのイベントが実行されます。

Android

iOS

ドラッグ開始

コントロールのドラッグを開始した時点で発行されます。

［ドラッグ許可]特性が「Yes」 に設定されたコントロール上でマウスの左ボタンがクリックし、その状態でマウスポインタを移動させることで、コントロールをドラッグさせることができます。

関連トピック：

ドラッグ&ドロップでデータをコピーするには

外部アプリケーションにデータをドラッグ&ドロップするには

データが自動的に設定されないコントロールの場合、[ドラッグ開始]イベントを処理するためにユーザ定義のロジックユニットを定義することでタスクのデータを処理し、以下の方法でドラッグ処理を行うことができます。

  • DragSetData 関数を使用したドラッグデータの制御

  • DragSetCrsr 関数を使用したドラッグ時のアイコン制御

レコードがマークされた[テーブル]コントロール上でドラッグ処理を実行すると、[ドラッグ開始]イベントに対応するロジックユニットは、マークされたレコードに対して実行されます。

ドロップ

[ドロップ許可] 特性が 「Yes」 に設定されたコントロールでマウスの左ボタンを離すことで発行されます。

［ドロップ］ イベントをトリガとした［イベント］ロジックユニットを作成することで、タスクデータを処理し、以下のようにドロップ処理を行うことができます。

  • DropFormat 関数を使用した現在のドラッグ & ドロップ処理の有効／無効の確認

  • DropGetData 関数を使用した定義フォーマットのデータの取得

  • DropMouseX および、 DropMouseY 関数を使用したドロップ処理時のマウス カーソルの位置の取得

ビュー再表示

ビューの再表示を行います。

Android

iOS

ブラウザステータス テキスト変更

[ブラウザ]コントロールのステータスバーに表示されるテキストが変更された場合に発行されます。

プログラム再呼出

[タスク特性]で、[並行実行]特性を有効にし、[単一インスタンス]有効にすると、このプログラムが２度目に起動された場合に、フォーカスがすでに実行中のインスタンス上に設定されます。しかし、（データビューの準備のような）初期化処理が行なわれません。

[プログラム再呼出]イベントは、フォーカスが再呼出されたタスク上で発行されます。

呼ばれたプログラムを再表示するには、[プログラム再呼出]イベントロジックユニット内で[ビュー再表示]イベントを実行してください。

ヘルプ

F1を押下するか、［ヘルプ］メニューからヘルプにアクセスすることで［ヘルプ］イベントが暗黙的に発行されます。

現在の項目に割り当てられたヘルプを表示します。

F1

レコード書込

[レコード書込]イベントは、データベースに現在のレコードの書き込みを行います。

Android

iOS

位置付

エンドユーザ機能用コンポーネントが起動され､[レコードの位置付]ウィンドウを開きます。

Ctrl+L

位置付／次候補

次の該当レコードに位置付けます。

Ctrl+Shift+L

位置付／前候補

前の該当レコードに位置付けます。

Ctrl+Shift+N

画面再表示

表示レコードのデータを再読み込みします。

実行モードでこのイベントが発行された場合、実行エンジンが現在のレコードの処理を終了し、画面に表示されている位置に従って全てのレコードを再読込します。通常、カーソルは現在のレコードに残った状態になります。

開始値

参考：

このイベントは、Ver2.xではサポートされません。

F7

行作成

新しい行を作成します。

F4

Android

iOS

行削除

行を削除します。

F3

Android

iOS

取消終了

レコードの更新を取り消し、タスクを終了します。

現在のレコードの編集をキャンセルし、行の全ての項目の内容は元に戻り、現在のタスクを終了します。

［取消終了］イベントは、［キャンセル］イベントと［終了］イベントの両方を結合したもので、レコードの更新をキャンセルし、タスクの終了を簡単に行うための方法を提供するものです。

iOS

修正

レコードの修正モードになります。

Ctrl+M

Android

iOS

終了

データを保存し、現在実行しているタスクを終了します。

モバイル仕様：

Androidの場合、Backキーをタップすることで発生します。

Esc

Android

iOS

終了値

参考：

このイベントは、Ver2.xでは現在サポートされません。

F8

照会

レコードの照会モードになります。

Ctrl+Q

Android

iOS

登録

レコードの登録モードになります。

Ctrl+E

Android

iOS

入出力ファイル

参考：

このイベントは、Ver2.xではサポートされません。

Ctrl+I

範囲

エンドユーザ機能用コンポーネントが起動され､[範囲指定]ウィンドウを開きます。

Ctrl+R

親による再表示後

サブフォームが親タスクによって再表示された場合に、サブフォーム内で発生します。


選択一覧 イベント一覧 マルチマーキングイベント

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント > マルチマーキングイベント

マルチマーキングイベント

注意：

マルチマーキングイベントは、Ver2.2ではサポートされていません。

全てマーク］、［最後までマーク］、［先頭までマーク］、［マークを反転］の各イベントは、タスクのデータビューをを全て読み込む必要がある場合があります。

非常に大きなデータビューを読み込むタスクでこれらのイベントを発行した場合、処理に時間がかかるかもしれません。

イベント名 | 説明 | デフォルトキーボード割付
マーク/マーク解除 | 行をマークしたり解除したりします。 | Ctrl+Space
マークを全て解除 | このイベントは、現在のタスクビューのマークを全て解除します。 実行モード イベントが非同期で実行された時のみ処理されます。 |
マークを反転 | このイベントは、現在のタスクビューのレコードのマーク状態を反転します。（マークされていたレコードが解除され、マークされていないレコードがマークされます。） 実行モード イベントが非同期で実行された時のみ処理されます。 |
マルチマーキングで次行 | マークしながら次行に移動します。[エディット]コントロールのみ有効です。 | Ctrl+Down
マルチマーキングで次ページ | マークしながら次ページに移動します。 | Ctrl+PgDn
マルチマーキングで前行 | マークしながら前の行に移動します。 | Ctrl+Up
マルチマーキングで前ページ | マークしながら前のページに移動します。 | Ctrl+PgUp
マーク次文字 | 次の文字をマークします。[エデット]コントロールのみで有効です。 | Shift+Rght
マーク前文字 | 前の文字をマークします。[エデット]コントロールのみで有効です。 | Shift+Left
次ページにマーク | マークしながら次ページに移動します。 | Shift+PgDn
前ページにマーク | テーブルの前のページをマークします。 | Shift+PgUp
項目先頭までマーク | 先頭までの全ての文字をマークします。[エデット]コントロールのみで有効です。 | Shift+Home
項目末尾までマーク | 項目の最後までの全ての文字をマークします。[エデット]コントロールのみで有効です。 | Shift+End
最後までマーク | このイベントは、現在のレコードから最後のレコードまでをマークします。 実行モード イベントが非同期で実行された時のみ処理されます。 |
次行でマーク | 次の行をマークします。[エデット]コントロールのみで有効です。 | Shift+Down
先頭までマーク | 現在のタスクビューの現在のレコードから先頭のレコードまでをマークします。 実行モード イベントが非同期で実行された時のみ処理されます。 |
前行でマーク | テーブルの前の行をマークします。 | Shift+Up
全てマーク | 現在のタスクビューの全レコードをマークします。 実行モード イベントが非同期で実行された時のみ処理されます。 |


選択一覧 イベント一覧 リッチテキスト用イベント

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント > リッチエディットコントロールのイベント

リッチエディットコントロールでのイベント

以下の内部イベントは、[リッチエディット]コントロール上で有効です。

イベント名

説明

デフォルトキーボード割付

左揃え

選択されたテキストを左側に寄せます。

右揃え

選択されたテキストを右側に寄せます。

箇条書き

選択されたテキストを箇条書き表示にします。

センタリング

選択されたテキストをセンタリングします。

色の変更

［色の設定］ダイアログが開き、選択されたテキストの色を変更します。

フォントの変更

［フォントの設定］ダイアログが開き、選択されたテキストのフォントを変更します。

インデント

選択されたテキストにインデントを追加します。

OLE2

OLEオブジェクトを追加します。

参考：

OLEコントロールはサポートされなくなりました。

インデント解除

選択されたテキストのインデントを削除します。

注意：

Magic xpaでは、オンラインタスクの場合も［リッチエディット］コントロール上で上記のイベントを発行するコンテキストメニューは表示されません。［フォーム］エディタで定義しておく必要があります。


表示コントロール ツリー イベント

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント > ツリーコントロールのイベント

［ツリー］コントロールのイベント

［ツリー］コントロール用の内部イベントを使用することで、エンドユーザがデータツリー上でノードを移動したり、拡張/縮小を行うことができます。

［ツリー］コントロール用のイベントには、以下のものがあります。

イベント名

説明

デフォルトキーボード割付

ノード縮小

［ツリー］コントロールのサブノードが表示されなくなります。

ノードのトリガに関する情報は、ノード展開／縮小イベントによって渡されるパラメータによって提供されます。［ノード展開／縮小］イベントのどちらかがハンドラのトリガイベントとして選択されると、Magic xpaはツリーノードレベルやツリーノード値に対する項目をハンドラに作成にするかどうかの確認メッセージを表示します。

［ノード展開／縮小］イベントがトリガされると、ハンドラに定義された項目は、トリガイベントに関連したツリーノード値で更新されます。最初に定義された変数には、ツリーノードレベルの値が格納され、２番目に定義された変数には、ツリーノード値が格納されます。

［ノード展開／縮小］イベントが、［ツリー］コントロールの範囲外で発生した場合、ツリーノードレベルとツリーノード値は更新されません。

［ノード展開／縮小］イベントを［イベント実行］処理コマンドで発行した場合、指定されたパラメータは、最初の２つのハンドラ変数の後に定義された変数に渡されます。

Minus
Left

ノード編集

このイベントによって、［ツリー］コントロールのノードの名前を編集することができます。

このイベントをトリガすると現在パークしているノードが編集モードに変わります。マウスの左クリックでノードが選択され、２回目のクリックすることでもこのイベントがトリガされます。

F2

ノード展開

［ツリー］コントロールのノードを展開表示します。

ノードのトリガに関する情報は、［ノード展開／縮小］イベントによって渡されるパラメータによって提供されます。［ノード展開／縮小］イベントのどちらかがハンドラのトリガイベントとして選択されると、Magic xpaはツリーノードレベルやツリーノード値に対する変数をハンドラに作成にするかどうかの確認メッセージを表示します。

［ノード展開／縮小］イベントがトリガされると、ハンドラに定義された変数は、トリガイベントに関連されたツリーノード値で更新されます。最初に定義された変数には、ツリーノードレベルの値が格納され、２番目に定義された変数には、ツリーノード値が格納されます。

［ノード展開／縮小］イベントが、［ツリー］コントロールの範囲外で発生した場合、ツリーノードレベルとツリーノード値は更新されません。

［ノード展開／縮小］イベントを［イベント実行］処理コマンドで発行した場合、指定されたパラメータは、最初の２つのハンドラ変数の後に定義された変数に渡されます。

Plus
Right

親のノードに移動

カーソルを親のノードに移動します。

子ノードに移動

現在のノードの最初の子ノードにカーソルを移動します。

子ノード作成

現在のノードの子ノードを作成します。

前のノードに移動

カーソルを前のド表示ノードに移動します。

次のノードに移動

次の子ノードにカーソルを移動します。

ノードの展開／縮小イベント

ノードのトリガに関する情報は、［ノード展開］／［ノード縮小］イベントによって渡されるパラメータによって提供されます。［ノード展開］／［ノード縮小］イベントのどちらかがロジックユニットのトリガイベントとして選択されると、Magic xpaはツリーノードレベルやツリーノード値に対する変数項目をロジックユニットに作成にするかどうかの確認メッセージを表示します。

［ノード展開］／［ノード縮小］イベントがトリガされると、ロジックユニットに定義された変数は、トリガイベントに関連されたツリーノード値で更新されます。最初の定義項目は、ツリーノードレベルで更新され、二番目の定義項目には、ツリーノード値で更新されます。

［ノード展開］／［ノード縮小］イベントが、［ツリー］コントロールの範囲外で発生した場合、ツリーノードレベルとツリーノード値は更新されません。

［ノード展開］／［ノード縮小］イベントを［イベント実行］処理コマンドで発行した場合、指定されたパラメータは、最初の２つのハンドラ変数の後に定義された変数に渡されます。

ノード編集イベント

［ノード編集］イベントによって、開発／実行モードで［ツリー］コントロールのノードを編集することができます。このイベントをトリガすると現在パークしているノードを編集することができます。マウスの左クリックでノードが選択され、二回目のクリックでこのイベントがトリガされます。

関連トピック：

実行時にツリーノードを明示的に展開/縮小させるには

エンドユーザが行ったノード展開/縮小の操作に対応する処理を実行させるには


式 式一覧 イベント一覧 印刷イベント

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント > 印刷イベント

印刷イベント

イベント名

説明

デフォルトキーボード割付

ページフッタ

[入出力ファイル]特性で定義されたページフッタフォームが出力される前に、このイベントが発行されます。

注意：

このイベントは、[入出力ファイル]特性にページフッタフォームが定義されている場合のみ実行されます。

このイベントの処理間は、他のどのようなフォームも出力できません。

ページヘッダ

[入出力ファイル]特性で定義されたページヘッダフォームが出力される前に、[ページヘッダ]イベントが実行されます。

注意：

このイベントは、[入出力ファイル]特性にページフッタフォームが定義されている場合のみ実行されます。

このイベントの処理間は、他のどのようなフォームも出力できません。

データ出力

データ出力ウィザードを実行します。

ユーザ機能コンポーネントがロードされ、[タスク特性]にて[データ出力]特性が「Yes」に設定されているタスクが実行している場合のみ有効です。

Ctrl+P

関連トピック：

ページ毎に計算処理を実行させるには


式 式一覧 イベント一覧 範囲／位置付イベント

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント > 範囲／位置付イベント

範囲／位置付イベント

注意：

Ver2.x では、範囲／位置付は、ユーザ機能コンポーネントを利用するように変更されたため、このイベントは、サポートされなくなりました。

イベント名 | 説明 | デフォルトキーボード割付
全項目クリア | Magic xpa内部の（位置付／範囲の）ダイアログの項目の全ての入力値を削除します。 | F3
項目クリア | Magic xpa内部の（位置付／範囲の）ダイアログの現在の項目の入力値を削除します。 | F4
式エディタ | 実行時用の式エディタが表示されます。 |


式 式一覧 イベント一覧 編集イベント

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント > 編集イベント

編集イベント

NULLに設定 | 現文字削除 | 照会
オブジェクトの挿入 | 前文字削除 | 前行を複数行マーク
キャンセル | 切り取り | 前ページにマーク
コピー | 先頭までマーク | 貼り付け
コントロール修正 | 広域表示 | 登録
ノード編集 | 行作成 | すべて選択
マーク次文字 | 行削除 | 選択
マーク前文字 | 次行を複数行マーク | 複写
レコード書込 | 次ページにマーク | 変更取消
最後までマーク | 修正 |

イベント名

説明

デフォルトキーボード割付

モバイルサポート

NULLに設定

現行カラムをNULLに設定します。

Ctrl+U

オブジェクトの挿入

OLEオブジェクトを挿入します。OLE2コントロールのみで有効です。

参考：

OLEコントロールはサポートされなくなりました。

キャンセル

現在の行の編集を取り消します。全てのデータ項目をその行が読み取られた時の値に戻します。

同期された（つまり、遅延トランザクションのキャッシュが書き込まれた）後では、レコードをキャンセルされません。

リッチクライアントタスクで、［キャンセル］イベントが発行された場合、［コントロール検証］と［コントロール後］のロジックユニットは実行されません。［コントロール前］は実行されます。

トランザクションが開始されたタスクでない場合、タスク内でキャンセルを実行するとそのタスクでのみキャンセルされます。

参考：

レコードをキャンセルすると、レコードに入り直すため［レコード前］ロジックユニットが実行されます。

Ctrl+F2

Android

iOS

コピー

選択したテキストをクリップボードにコピーします。

Ctrl+C
Ctrl+Ins

コントロール修正

[コントロール修正]イベントは、入力フィールド内にキーボードが押された後の処理を定義するためのものです。

コントロールの値はEditGet関数を使用することで変更された値が取得できます。通常の参照機能では、更新前の値が表示されます。

（キーが押されたり、マウス操作によって）コントロールの値が変更された場合に（コントロールを抜けることなく）発生します。これはすべてのタイプのコントロールに対応します。

このイベントでは、再計算は行われません。

このイベントは､.NETコントロールでは動作しません。

Android

iOS

ノード編集

このイベントによって、[ツリー]コントロールのノードの名前を編集することができます。

このイベントをトリガすると現在パークしているノードが編集モードに変わります。マウスの左クリックでノードが選択され、２回目のクリックすることでもこのイベントがトリガされます。

F2

マーク次文字

次の文字をマークします。[エデット]コントロールのみで有効です。

参考：

このイベントは、リッチクライアントタスクではサポートされません。

Shift+Rght

マーク前文字

前の文字をマークします。[エデット]コントロールのみで有効です。

参考：

このイベントは、リッチクライアントタスクではサポートされません。

Shift+Left

レコード書込

[レコード書込]イベントは、データベースに現在のレコードの書き込みを行います。

Android

iOS

最後までマーク

このイベントは、現在のレコードから最後のレコードまでをマークします。

実行モード

イベントが非同期で実行された時のみ処理されます。

参考：

このイベントは、Ver2.3でサポートされます。

Shift+End

現文字削除

カーソル位置の後ろの文字を削除します。

Del

前文字削除

カーソル位置の前の文字を削除します。

Back

切り取り

選択したテキストを切り取りクリップボードにコピーします。

Ctrl+X
Shift+Del

先頭までマーク

現在のタスクビューの現在のレコードから先頭のレコードまでをマークします。

実行モード

イベントが非同期で実行された時のみ処理されます。

参考：

このイベントは、Ver2.3でサポートされます。

SHIFT+Home

広域表示

現行の項目の広域表示ウィンドウを開きます。

F6

行作成

新しい行を作成します。

F4

Android

iOS

行削除

行を削除します。

F3

Android

iOS

次行を複数行マーク

次の行をマークします。[エデット]コントロールのみで有効です。

Shift+Down

次ページにマーク

マークしながら次ページに移動します。

参考：

このイベントは、Ver2.3でサポートされます。

Shift+PgDn

修正

レコードの修正モードになります。

Ctrl+M

Android

iOS

照会

レコードの照会モードになります。

Ctrl+Q

Android

iOS

前行を複数行マーク

前の行をマークします。[エデット]コントロールのみで有効です。

Shift+Up

前ページにマーク

テーブルの前のページをマークします。

参考：

このイベントは、Ver2.3でサポートされます。

Shift+PgUp

貼り付け

クリップボードからテキストを貼り付けます。

Ctrl+V
Shift+Ins

登録

レコードの登録モードになります。

Ctrl+E

Android

iOS

すべて選択

［エディット］コントロール内の全てのテキストを選択状態にします。

Ctrl+A

選択

選択プログラムでEnterを押下した場合のような選択動作を実行します。

Enter

複写

前の行の同じコントロールの内容をコピーします。

Ctrl+D

変更取消

現在のコントロールの編集を取り消します。

Alt+Back


選択一覧 イベント一覧 環境設定イベント

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント > 設定イベント

動作設定用イベント

注意：

これらのイベントは、Magic xpaではアプリケーション内ではサポートされなくなりました。

以下の内部イベントが発行されると、該当する動作環境用のテーブルが開きます。例えば[DBMS]イベントは[DBMS]テーブルが開きます。

  • 基本色

  • 通信ゲートウェイ

  • DBMS

  • データベース

  • 動作環境

  • フォント

  • HTMLスタイル

  • キーボード割付

  • 言語

  • 論理名

  • ログオン

  • プリンタ属性

  • プリンタ

  • シークレット名

  • サーバ

  • サービス

  • ユ－ザグループ

  • ユーザID

  • ビジュアル接続


式 式一覧 イベント一覧 データの再表示

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント > データ再表示イベント

データ再表示イベント

以下の表は、データの再表示で使用できる内部イベントです。

イベント名 | 説明 | デフォルトキーボード割付
レコード書込 | 現在のレコードのデータを更新し再読込みします。 |
画面再表示 | 表示レコードの内容を再読込みします。 |
ビュー再表示 | 範囲/ソートの処理を再実行します。新しい範囲指定に従ってデータビューが読み込まれます。 |
サブフォーム再表示 | ［自動再表示］特性が「No」に設定されていたり、タスクのデータ項目が更新されない場合、このイベントでサブフォームを再表示させることができます。 |

関連トピック：

ウィンドウ再表示


選択一覧 イベント一覧 ユーザイベント

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント > ユーザアクション

ユーザアクション

処理を定義することができるダミーのイベントとして使用できます。

注意：

[ユーザアクションxx]イベントは、リッチクライアントタスクでは使用できません。

メインプログラムの[ユーザイベント]テーブルに同じ名前のユーザイベントを事前に登録しておくと、オンラインタスクからリッチクライアントタスクに変更した時点で、自動的に変更されます。

デフォルトキーボード割付

なし


選択一覧 イベント一覧 フォーム末尾 ブラウザステータスのテキスト変更

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント > ブラウザステータスのテキスト変更

ブラウザステータスのテキスト変更

このイベントは、［ブラウザ］コントロールのステータスバーに表示されるテキストが変更されたことをMagicエンジンが認識するためのものです。

これは、コントロールと通信する場合に便利です。JavaScript関数を使用することでコントロールのステータスバーにデータを書き込んだり、イベント発生時に取得することができるステータスバーのメッセージを表示させることができます。［ブラウザ］コントロール上には、ステータスバーは表示されません。このイベントを利用することで、［ブラウザ］コントロール内で表示されるべきステータスバーの内容を、リッチクライアント形式フォームのステータスバーに表示させることができます。

ロジックユニットでこのイベントを設定すると、パラメータの作成確認のダイアログが表示されます。［はい］をクリックすると、以下の特性を持つパラメータ項目が作成されます。

  • パラメータ名 …… Status Text

  • データ型 …… BLOB型（［内容］特性は、「Unicode」）

実行時、ブラウザコントロールのステータステキストに変更がある場合、このベントが自動的に発生し、パラメータにステータスメッセージが表示されます。

注意：

ステータスメッセージがShift-JISで返される場合は、パラメータ項目の［内容］特性を「ANSI」に変更してください。

リッチクライアントタスクでのみサポートされます。

モバイルデバイスではサポートされません。

デフォルトキーボード割付

なし

関連トピック：

外部イベント


式 式一覧 イベント一覧 コントロール修正

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント > コントロール修正

コントロール修正

［コントロール修正］イベントは、入力フィールド内にキーボードが押された後の処理を定義するためのものです。

コントロールの値はEditGet関数を使用することで変更された値が取得できます。通常の参照機能では、更新前の値が表示されます。

（キーが押されたり、マウス操作によって）コントロールの値が変更された場合に（コントロールを抜けることなく）発生します。これはすべてのタイプのコントロールに対応します。

複数選択したコントロールの場合は以下のように動作します。

  • リッチクライアントタスクの場合、選択処理後に発行されます。

  • オンラインタスクの場合､コントロールを抜けた時点で発行されます。このイベントでは、再計算は行われません。

このイベントは［.NET］コントロールでは動作しません、またブラウザタスク内でも動作しません。

利用例

［エディット］コントロール内の値を条件にして［プッシュボタン］コントロールを使用可能にするためには、以下のようなロジックを定義します。

  1. 論理型変数の"EnableButton"を定義します。

  2. ［プッシュボタン］コントロールの［有効］特性に、この変数項目を設定します。

  3. ［エディット］コントロールの［コントロール修正］イベントに対応した、ロジックユニットを定義します。

  4. ロジックユニット内で、EditGet()<>''の条件の場合変数項目"EnableButton"を'TRUE'LOGに更新します。

プログラムを実行すると、［プッシュボタン］コントロールは［エディット］コントロールが空白の場合に無効となり、空白でない場合に利用できるようになります。

モバイル仕様：

このイベントで実行される処理コマンドは、スピナーを表示しません。これらの処理コマンドの実行中は、文字を入力できるようになりました。（サポートバージョン：2.5）

関連トピック：

エンドユーザがコントロールにデータを入力する時に実行されるロジックを定義するには


選択一覧 イベント一覧 外部イベント

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント > 外部イベント

外部イベント

このイベントは、Magic xpaが外部プログラムからイベントとデータを受け取り、処理することを可能にすることによって、同じコンピュータ上で動作しているMagic xpaと外部プログラムの間を簡単に統合させることができます。

リッチクライアント

このイベントは、［ブラウザステータステキスト変更］イベントの代わりに利用できます。［ブラウザステータステキスト変更］イベントは、Internet Explorer7でデフォルトでブロックされるためです。

このイベントは、以下の構文を使用してブラウザコントロール内のHTMLページのスクリプトによって発行することができます。

window.external.MGExternalEvent(パラメータ)

リッチクライアントタスクでは、1つの（Unicode）BLOBパラメータのみ渡すことができます。

モバイル仕様

iOSでは、以下の構文を使用することで［ブラウザ］コントロールから発行することができます。

window.location.href=’MGExternalEvent：’+msg

モバイルOSの外部アプリケーションからこのイベントを発行する場合は、以下のようなコードを組み込んでください。

iOS

-(void)invokeExternalEvent:(NSString *)str

{

if ( _coreViewController )

{

if ( [_coreViewController respondsToSelector:@selector(addExternalEventWithString:)] )

[_coreViewController performSelector:@selector(addExternalEventWithString:) withObject:str];

}

}

Android

public void invokeExternalEvent(String str) {

try {

Events.OnBrowserExternalEvent(null, str);

}

catch (Exception e) {

e.printStackTrace();

}

}

例

以下の例のようにすることで、VBスクリプトスクリプトから3つのパラメータ（年数、月数、日数）を渡してMGExternalEventを呼び出すことができます。［イベント］ロジックユニットは、これら3つのパラメータを受け取り、項目を更新し、画面を再表示させることで対応できます。

注意：

リッチクライアントでは、1つのパラメータしか渡せません。従って、これらの値を結合して1つの文字列にして渡す必要があります。

Windows APIの使用

Magic xpaで外部イベントを発行させる場合、WM_COPYDATAメッセージタイプを持つSendMessageのWidowsAPIコマンドを使用します。このメッセージは、COPYDATASTRUCT構造のポインタが含まれています。Magic xpaは、これらのパラメータをイベントキューに置き、ハンドラによるイベントの受け取りによってパラメータも受け取ります。

COPYDATASTRUCTの書式 ……この構造体には以下の3つのメンバが含まれています。

  • dwData …… 送られたパラメータの数

  • lpData …… パラメータを含むバッファのポインタ

  • cbData …… lpData内のデータ長

パラメータ ……cbDataメンバ内に配置されたパラメータは、バッファ内にNULLで終了する文字列です。Magic xpaは、パラメータを以下の4つのデータ型として受け取ることができます。

  • -A …… 文字列

  • -N …… 整数値

  • -F …… 浮動小数点数値

  • -L …… 論理値

例：

次の４つのパラメータを送る場合を想定します。店舗名、17、True、643.23。作成されるバッファは、以下のようになります。

-AXXX＾-N17＾-LT＾-F643.23　　　＾：NULL文字を表します。

ロジックユニットの定義

外部イベントを処理する場合、［外部イベント］という内部イベントを指定した［イベント］ロジックユニットを作成する必要があります。このロジクユニット内で、渡されるパラメータを受け取るためのパラメータ項目を定義することができます。

実行可能なデモファイルやCPPファイル

Magic xpaをインストールすると、外部イベントの呼出しを行うことのできる実行可能ファイルとしてMsg2mgic.exeが提供されます。詳細については、MSG2MGICユーティリティを参照してください。

外部イベントは、デフォルトでキーボードが割り当てられていません。

関連トピック：

ブラウザコントロールで実行しているWebページを操作するには


選択一覧 イベント一覧 親による再表示後

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント > 親による再表示後

親による再表示後

［親による再表示後］イベントは、サブフォームが親タスクによって再表示された時にサブフォームタスク内で発生します。

以下のどちらかで発生します。

  1. サブフォームの［自動再表示］特性が「Yes」に設定され、項目が変更された場合

  2. ［サブフォーム再表示］イベントが発行された場合

このイベントは、ビューの再表示後で［レコード前］の前に発行されます。

サブフォームタスクが初めて実行されるときも、このイベントが発行されます。

以下の場合は、イベントは発行されません。

  • ［ビュー再表示］イベントがサブフォームタスクで発行された場合

  • サブフォームとして動作していないタスクの場合

このイベントは、［レコード前］にロジックを作成し、IsFirstRecordCycle関数で実行する条件付けを行う代わりに使用することができます。

このイベントを使用する利点は、サブフォーム内にレコードが存在しない（空のデータビュー)場合にも発生するということです。

注意：

  • この内部イベントは、リッチクライアントタスクでのみサポートされます。

  • サブフォームがネストしている場合、この［イベント］ロジックユニットの［スコープ］を「タスク」に設定してください。この設定を行わない場合、このイベントは、ネストされたサブフォームタスクから伝播されます。


選択一覧 イベント一覧 レコード書込

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント > レコード書込

レコード書込

［レコード書込］イベントは、データベースに現在のレコードの書き込みを行います。

通常、オンラインタスクでは、次のレコードに移動したり、タスクを終了することで、ユーザがそのレコードを抜けた場合に、Magic xpaは現在のレコードの書き込みを行います。しかし、ユーザがタスクを終了する前にレコードを保存したい場合もあります。例えば、現在のレコードを印刷するために［印刷］ボタンを画面に追加したい場合などが考えられます。印刷対象として現在のレコードを含むようにする場合は、印刷処理が実行される前にレコードが書き込まれている必要があります。

これは、［レコード書込］の内部イベントを使用することで簡単に実現できます。

このイベントが発行されると、Magicエンジンは以下のような処理を実行します。

  1. ［レコード後］を実行します。

  2. データベースにレコードを書き込みます。

  3. データベースからレコードを読み直します。(キャッシュの指定内容にかかわらず。)

  4. 同じレコードの［レコード前］を実行します。

  5. 最初にパークしていたカラムにカーソルが移動します。

この内部イベントは、オンラインタスクとリッチクライアントタスクでのみ有効です。

マルチユーザ環境での考慮事項

  • レコードが削除されたり、他のユーザによって変更された場合、カーソルは次のレコードにパークし、「レコードは失われました」というメッセージが表示されます。

  • レコードが範囲外の場合、そのレコードの位置付けに変更がない限り、画面上に表示が残ります。

  • インデックスが他のユーザによって変更され、レコードが書き込まれた場合、更新されたレコードで表示されます。

  • タスクレベルのトランザクション上で、修正されたレコード書き込まれた後、ロールバックが実行されると、変更前のレコードが表示されます。

  • レコードレベルのトランザクション上で修正されたレコード書き込まれた後、ロールバックが実行されると、修正後のレコードが表示されます。

注意：

  • トランザクションが開始された同じタスク内でイベントが発行された場合のみ、レコードが書き込まれます。

  • ［レコード書込］イベントを明示的に発行する代わりに、ユーザイベントの［強制終了］カラムを「レコード」に設定することでも対応できます。これにより、イベントが発行される前に現在のレコードに対する書き込み処理が実行されます。

デフォルトキーボード割付

なし

関連トピック：

データの再表示

データベースに現行レコードを強制的に書き込むには


式 式一覧 イベント一覧 サブフォーム再表示

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント > サブフォーム再表示

サブフォーム再表示

サブフォームを再表示するには、自動と手動の2つの方法があります。

  • 自動 …… ［サブフォーム］コントロールの［自動再表示］特性が「Yes」に設定され、パラメータがサブフォームに渡される場合、サブフォームは、パラメータの値が変更されると自動的に再表示されます。

  • 手動 …… ［サブフォーム再表示］イベントによってサブフォームを手動で再表示させることができます。たとえば、［自動再表示］特性が「No」に設定されている場合や、タスクの値が変更されず、実行エンジンにサブフォームをリフレッシュさせたい場合などです。［サブフォーム再表示］イベントでは、「サブフォームコントロール名」というパラメータを渡す必要があります。

注意：

  • このイベントは、フレームにも関連します。

  • オンラインタスクで、サブフォームが再表示されると、サブフォーム・タスクは一旦終了してから再実行されるため、サブフォーム・タスクの［タスク前］と［タスク後］が実行されます。

  • リッチクライアント・タスクでは、サブフォーム・タスクは常に動作中となるため、サブフォームが再表示されても、サブフォーム・タスクの［タスク前］と［タスク後］は実行されません。

  • サブフォームの再表示が実行され親タスクで遅延トランザクションが設定されている場合、サブフォーム再表示は、［同期］特性が「Yes」に設定された［コール］処理コマンドと同じように動作します。これは、親タスクのデータ操作ステートメントが実行されることを意味します。

このイベントは、以下のように使用します。

サブフォームを配置した親タスクがあり、サブフォームに渡すパラメータが定義されているものとします。この場合、項目の内容が入力された後でなく、項目が更新された後でのみサブフォームが再表示されるようにするプログラムを作成します。

これを実現するには、［自動再表示］特性を「No」に設定し、全てのパラメータが設定された時点で［サブフォーム再表示］イベントを実行します。

デフォルトキーボード割付

なし

関連トピック：

データ再表示イベント

サブフォームの再表示を手動にするには

複数のパラメータをサブフォームに渡した場合、最後のパラメータを修正した時のみ再表示するには


選択一覧 イベント一覧 ビュー再表示

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > 内部イベント > ビュー再表示

ビュー再表示

ビューを再度読み込みます。

［イベント実行］コマンドによって［ビュー再表示］イベントを実行する場合、数値パラメータを指定することで、再表示後のレコードの位置付け方法を指定することができます。

パラメータとして指定できる値は、以下の通りです。

  • 再位置付モード …… 再表示後のレコードの位置付け方法を指定することができます。

    • 0 …… 最後にパークしたレコードに再位置付けされます（デフォルト）。パラメータが渡されなかったり、「1」か「2」以外の場合、「0」と見なされます。

    • 1 …… タスクの位置付け指定に基づいて再位置付けされます。

    • 2 …… 位置付けされません。新しいビューの先頭のレコードに位置付けされます。

  • ユーザソートの保持 …… ユーザがテーブルカラムをクリックしてデータをソートした後、ビューが再表示されても（カラムをクリックすることなく）ソート条件や（インデックスのように）プログラム内のソート定義を保持することができます。

注意：

ダイレクトSQLを使用する場合、再位置付けモード=0で［ビュー再表示］イベントを発行した場合、レコードを表示するための位置がないため、最後にパークされたレコード上には位置付けられません。

まず、（［レコード書込］イベントが発生したように)現在のレコードサイクルが完了します。次に、データビューは、現在のデータビュー定義（範囲、位置付、ソート)に基づいて作成されます。完全にデータビューを再表示させたい場合は、このイベントを使用しなければなりません。Magic xpaは、同じ現在のレコード上にカーソルを維持しようとします。

これらの内部イベントを使用するとき、定義取得の段階が失敗すると、エラー（"レコードは、既にビューにはありません"）が表示されます。そして、次の行が（データビュー定義に基づいて)データベースから取得されます。別のデータベースユーザがレコードを削除したか、位置情報を修正したため、Get Current処理が失敗も場合もあります。

ツリー再表示

［ビュー再表示］イベントが［ツリー］コントロールを含んだタスクで実行された場合、各ノードの状態は保持され、ロード済みのノードだけを再表示するようにできます。この内部イベントは通常、ツリー構造を部分的に修正した場合にその表示を反映するために必要になります。

［ツリー］コントロールを含んだタスクで［ビュー再表示］イベントを実行すると、位置付けされたノードがすでにロードされている場合のみ、タスクの位置付け機能に基づいて修正されたノードに位置付けることができます。

リッチクライアントタスクでは、［ビュー再表示］イベントが［ツリー］コントロールが配置されたタスクで発行された場合、［ノード事前読込］と［自動展開］などの各特性に従ってツリーは再表示されます。

サブフォームの再表示

リッチクライアントタスクでは、［ビュー再表示］イベントが［サブフォーム］コントロールが配置されたタスク内で発行された場合、サブフォームが再表示されます。

デフォルトキーボード割付

なし

関連トピック：

データ再表示イベント


エンジン実行レベル イベントレベル DotNetイベントダイアログ

ホーム > リファレンスガイド > Magicエンジン > エンジン実行レベル > イベントレベル > .Netイベントダイアログ

.NETイベントダイアログボックス

.NET型項目や.NETクラスを定義することで.NETイベントを選択することができます。

  • 項目の番号を直接入力したり、［項目］特性からズームすることで.NET項目を選択することができます。

  • ［クラス］特性にクラスを入力することができます。Ctrl+Spaceを押下することでオートコンプリート機能が実行され、有効なクラスのリストが表示されます。

項目を選択するか、クラスを入力すると［イベント］特性が有効になります。ここからズームすると、［.NETイベント選択］テーブルが表示されます。

関連トピック：

.NETイベントの処理


エンジンの実行規則（オンライン）

ホーム > リファレンスガイド > Magicエンジン > Magicエンジンの実行規則（インタラクティブ）

Magicエンジンの実行規則（オンライン）

概要

以下の表は、Magic xpaのロジックユニットのトリガや実行規則、およびロジックユニットがインタラクティブなタスクで実行される順序について要約したものです。

ロジックユニット | トリガ | 次のロジックユニット | 次のロジックユニットの実行条件 | 条件外の場合の動作
タスク前 | タスク実行時 | レコード前 | データビューにレコードが存在する場合 | タスク後
レコード前 | レコードを取得した時 | コントロール前 | オンラインタスク または リッチクライアントタスク | レコード後
コントロール前 | カーソルがコントロールにパークした時 | コントロール検証 | 無条件 |
コントロール検証 | コントロールの編集が終了したり、カーソルがコントロール上でスキップした場合 | コントロール後 | 無条件 |
コントロール後 | コントロールの編集が終了した時 | 項目変更 | 項目の値が変更された場合 | レコード後
項目変更 | 項目の値が変更された場合 | レコード後 | オンラインタスク または リッチクライアントタスクでレコードが書き込まれた場合 | タスク後
レコード後 | レコードが書き込まれた場合 | タスク後 | 無条件 |
タスク後 | タスク終了時 |  |  |

参考：

  • 上記の表は各、ロジックユニットに対する1つの命令実行サイクルを表しています。レコードまたはコントロールサイクルが終了しない場合、このサイクルが（前処理から後処理まで）繰り返し実行されます。

  • ［コントロール］ロジックユニットは、［レコード］ロジックユニットのサイクル内でのみ実行される場合があり、［レコード］ロジックユニットは［タスク］ロジックユニット内でのみ実行されます。

  • サブロジックユニットが終了しない限り、親ロジックユニットは終了することができません。

これらの処理についての詳細は、以下を参照してください。

タスクの初期設定

レコード処理

タスクの終了処理

関連トピック：

Magicエンジンの実行規則（バッチ）


エンジンの実行規則（オンライン） 初期設定

ホーム > リファレンスガイド > Magicエンジン > Magicエンジンの実行規則（インタラクティブ） > タスクの初期設定

タスクの初期設定

データビューの準備

  1. ［データビュー］エディタで定義されたデータソースのすべてがオープンされます。

  2. Magic xpaはタスクのデータビューの処理を確認し、タスクの論理レコードが下の内容に基づいて作成されます。

  • メインソースのカラム定義とリンクされたデータソース

  • 変数項目とパラメータ項目

  3. 起動元タスクからのパラメータ値を受け取ります。

  4. 変数項目は、項目のデータ型に対応した値（数値型の場合は0、文字型の場合は、空白等）で初期化されます。

  5. タスク範囲は、範囲ウィンドウに定義された範囲条件に従って定義されます。

  6. 指定されたソート定義（ソートテーブルで定義された場合）に従って、エンジンはデータビューをソートします。

追加の準備処理

次の手順には、タスクを初期設定する処理が含まれます。

  1. (［入出力ファイル］テーブルで定義されている場合)入出力デバイスがオープンされます。これはリッチクライアントタスク以外でのみ行われます。

  2. ［タスク前］ロジックユニットの処理コマンドが実行されます。

注意：

この段階では、メインソースやリンクテーブルからデータを取得することはできません。

次にレコード処理に移ります。


エンジンの実行規則（オンライン） レコード処理

ホーム > リファレンスガイド > Magicエンジン > Magicエンジンの実行規則（インタラクティブ） > レコード処理

レコード処理

［タスク前］が実行された後、データビューレコードは以下のように処理されます。

レコード前

  1. データビューの最初のレコードに位置付け、レコードを取得します。

注意：

オンラインタスクやインタラクティブなリッチクライアントタスクでは、レコードが見つからない場合、「登録モード」でタスクがオープンされるかタスクが終了します。この動作は、［タスク特性］の［空のデータビュー許可］特性の設定内容によって決まります。

  2. ［代入］特性はすべての変数項目で評価されます。タスクが登録モードの場合、カラムの［代入］特性も評価されます。

  3. データソースに対するすべてのリンクが、現在のレコードに対して実行されます。

注意：

リッチクライアントタスクの場合、タスクがサーバ上で実行する度に、ユーザが現在どのレコード上に位置付けているかを、（サーバ側では把握できないため)Magicエンジンに知らせる必要があります。このような場合が発生すると、タスクを抜ける度に、サーバはキャッシュ/データベースから再度レコードを検索します。

  4. ［タスク特性］の［チェック時期］特性が、「B=前置」に設定されている場合、Magic xpaは［タスク終了条件］特性を評価します。

  5. レコードループが実行されます。つまり、この時点からデータソースカラムを処理することができます。

  6. ［レコード前］ロジックユニットの処理コマンドが実行されます。

コントロールの処理

インタラクティブなタスクでは、各レコードに対しアクセスされた［コントロール］ロジックユニットが実行されます。エンドユーザは、キーボード（TabまたはShift+Tab）を使用するか、マウスでコントロールをクリックすることで、コントロールにアクセスすることができます。

  • コントロール前 …… エンドユーザによってアクセスされる各コントロールに対し、［コントロール前］ロジックユニットの処理コマンドが実行されます。

  • コントロール検証 …… ［コントロール検証］ロジックユニットが設定されたコントロールからカーソルが抜けたり、（高速モードの場合）コントロールをスキップして通過した場合、［コントロール検証］に定義された処理コマンドが実行されます。このコントロールをスキップして異なるコントロールにカーソルが移動した場合、高速モードでスキップされたことになります。

  • コントロール後 …… カーソルがコントロールから抜けた場合、［コントロール後］が実行されます。エンドユーザが別のコントロールにカーソルを移動させたり、（別のレコードに移動することで）レコード処理を終了させたり、タスクを終了した場合に、このトリガが発生します。

項目の処理

オンラインタスクやリッチクライアントタスクの場合、項目の値が変更されると［項目変更］ロジックユニットが実行されます。

レコード後

オンラインタスクやリッチクライアントタスクとブラウザタスクでは、修正されたレコードに対してのみ［レコード後］ロジックユニットが実行されます。

バッチタスクの場合は、常に［レコード後］が実行されます。

オンラインタスクやリッチクライアントタスクとブラウザタスクでは、エンドユーザがレコードの処理を抜けた時点で［レコード後］ロジックユニットが実行されます。これは以下のような場合に発生します。

  • キーボードまたはマウスのどちらかを使用して、エンドユーザが別のレコードに移動した場合。

  • エンドユーザは、タスクモード（修正、登録、照会）を変更した場合。

  • エンドユーザがレコードを削除した場合。

  • エンドユーザの操作やタスク終了条件が評価されたことによって、タスクの実行が終了した場合

タスクの処理を終了する場合、レコードループが最初に終了します。

レコードの終了処理

レコードが修正された場合、レコードが保存され［レコード後］ロジックユニットが実行されます。レコードが修正されない場合は、これらの処理は実行されません。

次にタスクの終了処理に移ります。

注意：

リッチクライアントタスクの場合、サーバへのアクセスがあるたびに、サーバは現在のデータビューレコード（ユーザがレコード間で移動しかどうかを、サーバはわからないため)上で再位置付けが必要になります。この時、サーバは現在のレコードを読み込み、リンクを再評価するために、もう一度キャッシュ/データベースにアクセスします。

変数項目

オンラインタスクの場合、テーブル内の変数項目を更新すると、現在のレコードだけが新しい値で更新されます。

リッチクライアントタスクの場合は、全てのレコードが新しい値で更新されます。変数項目の［代入］特性に値が設定されていない場合にのみ、このような動作になります。［代入］特性に値が設定されている場合、他の全てのレコードに対してこの値が表示されます。

以下の例のように、「変数項目」は、［レコード前］で更新される変数項目です。オンラインタスクの場合は、現在パークしているレコードだけが更新されます。


エンジンの実行規則（オンライン） 終了処理

ホーム > リファレンスガイド > Magicエンジン > Magicエンジンの実行規則（インタラクティブ） > タスクの終了処理

タスクの終了処理

エンドユーザがタスクを終了させたり、［タスク実行条件］特性がTrueと評価されたり、［終了］イベントが発行されたり等と色々な方法でタスクを終了させることができます。

タスクの終了時、以下の処理が実行されます。

  • ［タスク後］ロジックユニットの処理コマンドが実行されます。

  • 入出力デバイスがクローズされます。これはリッチクライアントタスク以外でのみ行われます。

  • タスクのデータソースがクローズされます。

注意：

［タスク後］ロジックユニットは、レコードループの終了後に実行されます。従って、この段階ではデータソースにアクセスすることはできません。


エンジンの実行規則（バッチ）

ホーム > リファレンスガイド > Magicエンジン > Magicエンジンの実行規則（バッチ）

Magicエンジンの実行規則（バッチ）

バッチタスクのエンジンの実行規則は、インタラクティブなのタスクとは異なります。

インタラクティブなタスクのエンジンサイクル

バッチタスクのエンジンサイクル

  • タスク前

  • レコード前

    • コントロール前

    • コントロール検証

    • コントロール後

    • 項目変更

  • レコード後

  • タスク後

  • タスク前

  • グループ後

    • レコード前

    • レコード後

  • グループ後

  • タスク後

見て分かるとおり、バッチタスクではコントロール関連のロジックユニットが存在しませんが、レコードのグループ処理を可能にするためのロジックユニットがあります。

これらの処理に関する詳細な説明は、以下を参照してください。

タスクの初期設定

グループとレコードの処理

タスクの終了処理

関連トピック：

バッチタスクの動作

バッチタスクの使用方法

バッチタスクのイベント処理


エンジンの実行規則（バッチ） 初期設定

ホーム > リファレンスガイド > Magicエンジン > Magicエンジンの実行規則（バッチ） > タスクの初期設定

タスクの初期設定

データビューの準備

  1. ［データビュー］エディタで定義されたデータソースのすべてがオープンされます。

  2. Magic xpaはタスクのデータビューの処理を確認し、タスクの論理レコードが下の内容に基づいて作成されます。

  • メインソースのカラム定義とリンクされたデータソース

  • 変数項目とパラメータ項目

  3. 起動元タスクからのパラメータ値を受け取ります。

  4. 変数項目は、項目のデータ型に対応した値（数値型の場合は0、文字型の場合は、空白等）で初期化されます。

  5. タスク範囲は、範囲ウィンドウに定義された範囲条件に従って定義されます。

  6. 指定されたソート定義（ソートテーブルで定義された場合）に従って、エンジンはデータビューをソートします。

追加の準備処理

次の手順には、タスクを初期設定する処理が含まれます。

  1. (［入出力ファイル］テーブルで定義されている場合)入出力デバイスがオープンされます。

  2. ［タスク前］ロジックユニットの処理コマンドが実行されます。

注意：

この段階では、メインソースやリンクテーブルからデータを取得することはできません。

次にグループとレコード処理に移ります。


エンジンの実行規則（バッチ） グループとレコードの処理

ホーム > リファレンスガイド > Magicエンジン > Magicエンジンの実行規則（バッチ） > グループとレコードの処理

グループとレコードの処理

グループ前処理

  1. 最初のレコードがメモリ内に取り込まれます。

  2. ［タスク特性］の［チェック時期］特性が、「B=前置」に設定されている場合、Magic xpaは［タスク終了条件］特性を評価します。

  3. ユーザがEscを押下したかどうかにかかわらず、終了イベントがチェックされます。

  4. ［グループ後］ロジックユニットの処理コマンドは、最初のタスクサイクルと、［グループ］ロジックユニットに定義された項目の値が前のレコード値と異なる場合に実行されます。

レコード処理

  1. ［レコード前］ロジックユニットの処理コマンドが実行されます。

  2. ［レコード後］ロジックユニットの処理コマンドが実行されます。

  3. レコードは新しい値で保存されます。タスクモードが「削除」の場合、レコードは削除されます。

グループ後処理

新しいレコードを取得し、［グループ後］ロジックユニットに定義された項目の値が前のレコード値と異なる場合、［グループ後］ロジックユニットの処理コマンドが前のレコードに対して実行されて、［グループ前］ロジックユニットの処理コマンドが現在のレコードに対して実行されます。


エンジンの実行規則（バッチ） 終了処理

ホーム > リファレンスガイド > Magicエンジン > Magicエンジンの実行規則（バッチ） > タスクの終了処理

タスクの終了処理

エンドユーザがタスクを終了させたり、［タスク実行条件］特性がTrueと評価されたり、［終了］イベントが発行されたり等と色々な方法でタスクを終了させることができます。

タスクの終了時、以下の処理が実行されます。

  • ［タスク後］ロジックユニットの処理コマンドが実行されます。

  • 入出力デバイスがクローズされます。

  • タスクのデータソースがクローズされます。

注意：

［タスク後］ロジックユニットは、レコードループの終了後に実行されます。従って、この段階ではデータソースにアクセスすることはできません。

（エンドユーザが任意にタスクを終了させられる）オンラインタスクと異なり、バッチタスクでは、以下の特性やイベントによって終了します。

  • タスク終了条件

  • チェック時期

  • エンドユーザの介入 …… エンドユーザは、ESCキーを押下することで実行中のタスク実行を終了させることができます。


エンジンの実行規則（バッチ） 動作

ホーム > リファレンスガイド > Magicエンジン > Magicエンジンの実行規則（バッチ） > バッチタスクの動作

バッチタスクの動作

バッチタスクの動作は、以下の点がオンラインタスクと異なります。

メインソースを持つバッチタスク

バッチタスクはメインソースレコード（指定された範囲条件で）をもとにループします。タスクは、各レコード毎に［レコード前］と［レコード後］のロジックユニットを繰り返し処理します。

以下の条件のうち1つが満たされた場合、タスク実行は終了します。

  • (タスク特性の)タスク終了条件特性が「True」と評価された場合

  • エンジンは、（指定された範囲内の）最後のレコードに達した場合

メインソースを持たないバッチタスク

メインソースが定義されない場合、バッチタスクは［タスク終了条件］特性が「True」と評価されない限り実行されます。

このタイプのタスクは、0メインソースバッチタスクと呼ばれます。

例えば、変数項目を使用して処理するプログラムを作成した場合、［タスク終了条件］特性が「True」と評価されるまでレコードループは無限に実行されます。

メインソースを持ち、登録モードのバッチタスク

メインソースが定義され、［初期モード］特性が「登録」に設定された場合、タスクは0メインソースバッチタスクと同じように動作します。

例えば、レコードをデータソースに追加するだけのプログラムを作成する場合、［タスク終了条件］が「True」と評価されるまで、レコードループが無限に実行されます。

注意：

リッチクライアントからタスクが呼び出された場合、バッチタスクのフォームは表示されません。これは、バッチタスクがサーバ側のバックグラウンドエンジンによって実行されているためです。

関連トピック：

永久ループするバッチタスクを止めるには

wタスクがバッチタスクから繰り返し呼ばれる場合のパフォーマンスを改善するには


エンジンの実行規則（バッチ） 使用方法

ホーム > リファレンスガイド > Magicエンジン > Magicエンジンの実行規則（バッチ） > バッチタスクの使用方法

バッチタスクの使用方法

バッチタスクは、様々な使用方法があります。多くの場合、バッチタスクモードとその使用方法の間には明確な関連があります。

以下は、タスクモードに依存しているバッチタスクの使用方法に関する概要です。

タスクモード | 使用方法
Q=照会 | メインソースを読み込み、帳票や集計処理のような結果を出力するために使用します。
C=登録 | データを入出力デバイスから入力したり、複数のデータソースからデータをコピーするために使用されます。
M=修正 | データソースを連続して更新したり、データソースのレコードの集計処理を行う場合に使用されます。
D=削除 | 決まった条件下でのデータソースのレコードを連続して削除する場合に使用します。


エンジン実行レベル グループ バッチタスクのイベント処理

ホーム > リファレンスガイド > Magicエンジン > Magicエンジンの実行規則（バッチ） > バッチタスクのイベント処理

バッチタスクのイベント処理

バッチタスク処理は、インタラクティブなタスクの処理とは異なり、実行エンジンがユーザからの入力を待機せずにレコードが処理されます。

バッチタスクでは、保留されているイベントをポーリングできます。バッチタスクエンジンがイベントをポーリングするタイミングは、次の表に示すように、タイマ、処理済みレコード数、またはこの両方によって指定できます。

# | バッチイベント間隔 | レコードイベント間隔 | 動作
1 | 0 | 0 | そのタスク内でポーリングしません
2 | 0 | N | Nレコードごとにポーリング
3 | M | 0 | Mミリ秒ごとにポーリング
4 | M | N | Mミリ秒とNレコードごとにポーリング

［動作環境］ダイアログ内にある［バッチイベント間隔］パラメータは、バッチタスクのイベントポーリング用にタイマを設定できます。「0」を入力すると、バッチイベント間隔は無効になります。この場合、イベントのポーリングは、レコードイベント間隔の数値によってのみ決定されます。

［タスク特性］ダイアログ内にある［レコードイベント間隔］は、タスクごとに式で指定することができます。「0」以外を指定した場合にはレコード数として解釈され、指定された数のレコードが処理されるたびに、イベントのポーリングが行われます。「0」を入力すると、レコード数はチェックされなくなり、イベントのポーリングは、バッチイベント間隔パラメータ内に設定された数値によってのみ決定されます。

関連トピック：

グループレベルの実際の流れ

グループレベルの例


ユーザ定義イベント

Magic xpaの全ての処理は、あらかじめ決められた内容に従って実行されます。

Magic xpaは、以下の順番で処理を実行します。

  1. タスク前

  2. レコード前

  3. ［データビュー］のデータ定義

  4. レコード後

  5. タスク後

イベントを使用することで、これとは別の方法で処理を実行させることができます。

イベントは、特定の順序によって起動されません。イベントが発生するには、「トリガ」を定義する必要があります。

トリガには、以下のものがあります。

  • ショートカットキーや組み合わせキー

  • Magic xpaの内部イベント

  • タイマー

  • 式（式の評価結果が「True」の場合）

  • イベント実行処理コマンド

イベントは、Magicエンジンに、対応すべき何かがあることを知らせるフラグのようなものです。イベントレベルのロジックユニットを使用することで、Magic xpaは発生したイベントに対応することができます。

関連トピック：

イベントのタイプ

イベントテーブル

イベントレベルハンドラ


ユーザ定義イベント イベントテーブル

ホーム > リファレンスガイド > Magicエンジン > ユーザ定義イベント > イベントテーブル

イベントテーブル

［イベント］テーブルには、各プロジェクトごとに固有なユーザ定義イベントを定義できます。

例えば、Ctrl+F というキーの組み合わせでトリガされる「新規顧客登録」というイベントを定義するとします。

定義したユーザ定義イベントは、システムイベントなどと全く同様に、［ロジック］エディタでロジックユニットを定義するトリガとして使用することができます。このロジックユニットには、処理コマンドを定義することで、［イベント］ロジックユニットの処理内容を定義することができます。

定義された「新規顧客登録」の［イベント］ロジックユニットは、実行時にエンドユーザがCtrl+F を押下するたびに実行されます。

［イベント］テーブルには、以下のカラムがあります。

カラム

内容

名前

イベントの名前を指定します。ハンドラを定義する際にこの名前でイベントを選択します。

タイプ

イベントのためのトリガとして使用するイベントのタイプを指定します。以下のタイプが指定できます。

  • S=システム …… キーボード操作の組み合わせ

  • I=内部 …… Magicエンジンに組み込まれているイベント

  • T=タイマ …… 定義された間隔ごとに発生するイベント

  • E=式 …… 式が「True」と評価された場合に発生するイベント

  • N=なし …… トリガの指定は不要です。「ユーザイベント」と同じように開発者が任意に定義することのできるイベントです。

トリガタイプが［N= なし］（トリガなし）に設定されている場合、このイベントは［イベント実行］処理コマンドかプッシュボタンコントロールの［実行イベント］特性に定義されている場合のみ発生します。「ユーザイベント」のように開発者が任意に定義することのできるイベントです。

トリガ

ユーザ定義イベントを発生させるためのトリガを指定します。

［タイプ］で「なし」と設定された場合以外は、トリガを指定する必要があります。ここからズームすると［タイプ］の指定に基づいて以下のトリガを指定します。

  • S=システム …… ［キー設定］ダイアログが表示され、そのイベントをトリガするキーの組み合わせを入力できます。

  • I=内部 …… ［イベント一覧］が表示され、ここから内部イベントを選択します。

  • T=タイマ …… イベントの発生間隔を指定します。

  • E=式 …… ［式］エディタが表示されます。ここに条件式を定義します。

タイプが設定されない場合、［イベント実行］処理処理コマンドでのみ起動できます。

パラメータ

プロジェクトとユーザ定義イベントの間でデータの受け渡しをする場合、ここで使用するデータ属性を定義することができます。パラメータも参照してください。

強制終了

Magicエンジンが［イベント］ロジックユニットとして定義されている一連の処理コマンドを実行する前に、終了するレベルを指定します。強制終了も参照してください。

公開名

メインプログラムでのみ指定できます。イベントをコンポーネント化する場合に指定します。アプリケーション内でユニークな名前を指定してください。

公開

メインプログラムでのみ指定できます。このチェックボックスを選択すると、［イベント実行］処理コマンドの公開イベントオプションを使用することで、このイベントを呼び出すことができます。

この設定が有効な場合、［公開イベント名］も指定する必要があります。

注意：

  • ［イベント］テーブルでは、発行するトリガのタイプと値を定義することができます。トリガが［イベント］テーブルに定義されているかどうかにかかわらず、イベントはアプリケーションロジックに基づいて発行される必要があります。このため、イベントを発行するために［イベント実行］処理コマンドを使用することができます。

  • /* ... */ という書式でコメントを定義した場合、［イベント一覧］の［説明］欄にコメントが表示されます。


ユーザ定義イベント イベントテーブル パラメータ

ホーム > リファレンスガイド > Magicエンジン > ユーザ定義イベント > イベントテーブル > パラメータ

パラメータ

プロジェクトとユーザ定義イベントの間でデータの受け渡しをする場合、ここで使用するデータ属性を定義することができます。ここからズームすると［パラメータ］テーブルが開きます。

テーブルには以下のカラムがあります。

カラム

内容

名前

パラメータの名前を入力します。［モデル］を定義する場合、このカラムを空白にするとモデルの名前が設定されます。ここには、最大30桁の文字を入力できます。

モデル

ダブルクリックして［モデル一覧］から項目モデルを選択することで、パラメータにモデルを定義することができます。

項目モデルを定義すると以下のような設定されます。

  • 項目モデルの特性が継承されます。

  • ［名前］カラムが空白の場合、モデルの名前が設定されます。

型

Magic xpaのデータ型を指定できます。

書式

  • 文字型、Unicode型 …… 長さの指定が最低限必要です。必要に応じて他の設定も指定できます。

  • 数値型 …… 桁数や小数点、３型区切りの指定が最低限必要です。

  • 論理型、日付型、時刻型 …… デフォルトの書式が表示されますが、必要に応じて変更できます。

  • ベクトル型、OLE型、.Net型、BLOB型 …… 書式を指定する必要がありません。

［イベント］ロジックユニットを定義する際、ロジックユニットにパラメータ項目を定義するかどうかを確認するダイアログが表示されます。「Yes」を指定すると、ロジックユニット内にパラメータ項目が定義されます。このようなロジックユニットを起動させる場合、パラメータを指定する必要があります。

注意：

ハンドラや関数内で項目の値が設定された場合、その値は残ったままになり、ハンドラや関数が別の処理で呼び出された場合も初期化されません。


ユーザ定義イベント イベントテーブル 強制終了

ホーム > リファレンスガイド > Magicエンジン > ユーザ定義イベント > イベントテーブル > 強制終了

強制終了

Magicエンジンが［イベント］ロジックユニットとして定義されている一連の処理コマンドを実行する前に、終了するレベルを指定します。

N=なし

どのレベルに対しても終了処理を行わず、イベントが発生したコントロールの編集モード内でロジックユニットの処理を実行します。

E=編集

イベントは、タスクに対しイベント処理を行うロジックユニットを実行する前に現在のコントロールの編集モードを抜けるように指示します。これは、イベントのロジックユニットが実行される際に、コントロールの入力内容値によって対応する項目が更新されることを意味します。全てのイベントのロジックユニットが実行された後と、タスクは編集モードに戻ります。

このイベントを処理する場合、Magicエンジンは以下の順番に処理を実行します。

  1. 編集モードを終了します。

  2. 編集項目の内容を更新します。

  3. 更新された項目に関係する全ての値を再計算します。

  4. データが変更されたら［項目変更］ロジックユニットを実行します。

  5. ［イベント］ロジックユニットを実行します。

  6. コントロールの編集モードに戻ります。

実行されたロジックユニット内でコントロール項目を参照する場合、その項目は編集された値として参照されます。

［強制終了］におけるこのレベルは、現在のコントロールに新しく入力された値を参照する必要があるイベントを処理する場合に有効です。たとえば、特定のコントロールに対する［ズーム］イベントを処理したい場合で、ズームのロジックユニットから呼び出されたタスク内で新しく入力された値を参照したい場合、［ズーム］イベントをトリガとするユーザ定義イベントを作成して［強制終了］特性を「編集」に設定してください。

このオプションはエディット、リッチエディット、および複数選択の［リストボックス］コントロールで有効で、編集状態の時に項目の内容と異なる値の場合に更新されます。

関連トピック： イベント処理中にエディットコントロールの値を取得するには

注意：

［強制終了］特性が「なし」に設定され、イベントを処理するロジックユニットで現在の項目を更新する場合、更新される値はコントロールからタブ移動した場合のみ表示されます。これは、コントロールが最後に編集した値によって編集モードを維持しているからです。しかし、［強制終了］が「編集」に設定されると、エンジンが編集モードを一旦抜けて、再度入るのため、新しい編集モードは新しく更新された値を表示します。

C=コントロール

イベントは、タスクに対しイベント処理を行うロジックユニットを実行する前に現在のコントロールを抜けるように指示します。

このイベントを処理する場合、Magicエンジンは以下の順番に処理を実行します。

  1. 編集モードを終了します。

  2. 編集項目の内容を更新します。

  3. 更新された項目に関係する全ての値を再計算します。

  4. ［項目変更］ロジックユニットを実行します。

  5. ［コントロール検証］と［コントロール後］のロジックユニットを実行します。

  6. ［イベント］ロジックユニットを実行します。

  7. ［コントロール前］ロジックユニットを実行します。

  8. コントロールの編集モードに戻ります。

一旦イベント処理が完了すると、タスクは同じコントロールに戻ります。これは、Magicエンジンが現在のコントロールに対する全てのコントロールレベルのロジックユニットを実行することを意味しています。すなわち、コントロールを抜けるため［コントロール検証］、［コントロール後］を実行し、再入力するため［コントロール前］を実行します。

R=レコード更新前

イベントは、タスクにイベントを処理するために対応するロジックユニットを処理する前に現在のレコードを抜けるように指示します。ユーザイベントはイベント処理を終了して、動作中のトランザクションでレコードを更新します。一旦この手続きが完了すると、タスクは同じレコードに戻り［レコード前］を実行します。

言い換えると、データベースを更新する直前に［レコード後］が実行されます。一旦処理が終了すると、レコードはデータベースで更新されます。

このイベントを処理する場合、Magicエンジンは以下の順番に処理を実行します。

  1. 編集モードを終了します。

  2. 編集項目の内容を更新します。

  3. 更新された項目に関係する全ての値を再計算します。

  4. ［項目変更］ロジックユニットを実行します。

  5. ［コントロール検証］及び［コントロール後］のロジックユニットを実行します。

  6. レコードが変更された場合、［レコード後］ロジックユニットを実行します。

  7. ［イベント］ロジックユニットを実行します。

  8. レコードが更新された場合、テーブルを更新します。

  9. ［レコード前］ロジックユニットを実行します。

  10. ［コントロール前］ロジックユニットを実行します。

  11. コントロールの編集モードに戻ります。

イベントレベルが実行された場合、レコードはまだ更新されていないため、イベントレベルからレコードを参照してもレコードがまだ更新されていないものと見なされます。

イベント処理が終了された直後にレコードが現在のトランザクションで更新させたい場合は、［強制終了］特性を「レコード更新前」に設定してください。

注意：

［強制終了］特性が「レコード更新前」に設定されると、エンジンがレコードを抜けて、トランザクション内でレコードを更新するとき、実行するロジックユニットで実行されるいかなる［項目更新］処理コマンドも実行されます。

P=レコード更新後

イベントはタスクが終了するように指示します。そして、イベントを処理するために対応するロジックユニットを実行する前に、現在のレコードを更新します。このオプションは、「レコード更新前」と似ています。しかし、「レコード更新後 」の場合は、エンジンは最初にデータベース内のレコードを更新して、更新されたレコードに再度入り、その［レコード前］ロジックユニットを実行します。このため、トリガとなるイベントのロジックユニットのみ実行します。

このようなイベントを処理する場合、以下の処理を実行します。

  1. 編集モードを終了します。

  2. 項目を更新します。

  3. 更新された項目をもとに再計算処理が実行されます。

  4. ［項目変更］ロジックユニットを実行します。

  5. ［コントロール検証］及び［コントロール後］のロジックユニットを実行します。

  6. レコードが修正されていた場合、［レコード後］ロジックユニットを実行します。

  7. レコードが修正されていた場合、レコードを更新します。

  8. ［レコード前］ロジックユニットを実行します。

  9. ［イベント］ロジックユニットを実行します。+

  10. ［コントロール前］ロジックユニットを実行します。

イベントレベルが実行された場合、レコードはすでに更新されているので、イベントレベルからレコードを参照すると、更新された内容として参照できます。

［イベント］ロジックユニットが現在のレコードを参照する他のタスクを呼び出すように設定されていて、レコードはそのタスクが呼び出される前にデータベース内で修正される必要がある場合、［強制終了］特性を「レコード更新後」に設定されたイベントが利用できます。この方法は、呼び出されたタスクが新しく更新されたレコードを取得します。

注意：

イベントの［強制終了］特性を「レコード更新後」に設定した場合、現在のレコード上で実行されるロジックユニットを通して行われる、いかなる［項目更新］処理コマンドもレコードが更新された後で実行され、ユーザによって暗黙的か明示的のどちらかによってにエンジンがレコードを再度抜けた後でのみデータベースに反映されます。

メインプログラムでは、対応するロジックユニット検索する時にMagic xpaが（プログラムではなく）ユーザイベントの公開名を使用するため、ユーザイベントに公開名を定義しておく必要があります。

関連トピック： データベースに現行レコードを強制的に書き込むには

関連トピック：

確定されていない更新値で強制的に更新するには


ユーザ定義イベント 動作

ホーム > リファレンスガイド > Magicエンジン > ユーザ定義イベント > イベントの動作

イベントの動作

イベントが発生するたびに、実行中コンテキストのイベントキューにイベントが入ります。

Magic xpaは、以下のタイミングでペンディング中のイベントを、イベントキューから取り出します。

  • オンラインタスクとリッチクライアントとブラウザタスク

  • エンドユーザがキーを押下した時

  • タスクがアイドル状態になった時。タスクがキー入力待ちの状態になり、[バッチイベント間隔]（[環境設定]ダイアログ）に指定された時間が経過した時

  • バッチタスク …… [バッチイベント間隔]（[環境設定]ダイアログ）に指定された時間が経過した時、または[レコードイベント間隔]（[タスク特性]ダイアログ）に指定されたレコード数が処理された時。

  • [イベント実行]処理コマンドが実行された場合

Magic xpaは、[イベント実行]処理コマンドの実行条件を確認します。[ウェイト]特性が「No」に設定されている場合、該当するイベントを即実行します。「Yes」に設定された場合、イベントはイベントキューに追加され、タスクタイプに従って以下のように動作します。

Magicエンジンは、イベントをイベントキューから取り出した後、そのイベントをトリガとして定義されている[イベント]ロジックユニットを検索します。このイベントのロジックユニットが見つかると、Magic xpaはその[イベント]ロジックユニットを実行します。

Magicエンジンが[イベント]ロジックユニットの実行を完了すると、その[イベント]ロジックユニットの[伝播]パラメータをチェックし、「Yes」に設定されているか「True 」に評価される場合には、より上位のレベルで定義されている、同一のイベントをトリガとする[イベント]ロジックユニットを検索します。例えば、イベントA が発生した場合にイベントA のロジックユニットがイベントB を発生したとすると、イベントB のロジックユニットが見つかって実行された場合、イベントA ではなく、イベントB のみで伝播処理が実行されます。

Magicエンジンは、現在実行中のタスクから始まってメインプログラムに至るまで、各タスク内では[ロジック]エディタ内に定義されている[イベント]ロジックユニットを下から上に向かって検索していきます。このため、同じタスク内で同じイベントのハンドラが2つ以上ある場合は、[ロジック]エディタで一番下に定義されている[イベント]ロジックユニットが一番先に実行されます。ロジックユニットの[伝播]特性が「Yes」の場合、その上に定義されている（同じイベントの）ロジックユニットが二番目に実行されます。[伝播]特性が「No」の場合は、一番下のロジックユニットのみ実行されます。

ユーザイベントは、伝播できません。

関連トピック：

イベントレベル

イベント一覧

イベントの用語


ユーザ定義関数

ユーザ定義関数は、パラメータや処理コマンドおよび戻り値を組み合わせて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 xpaの組み込み関数と同じ名前のユーザ定義関数を定義した場合、組み込み関数がオーバライドされます。例えば、STRというユーザ定義関数を作成した場合、Magic xpaの組み込み関数は無効になります。

注意：

組み込み関数と同じ名前のユーザ定義関数内で、同じ名前の関数をネストさせて使用した場合の動作は保証されません。

ユーザ定義関数の削除やリネーム

ユーザ定義関数の名前が変更されても、式に定義された関数名は自動的に変更されません。また、関数定義が削除されても、式内の関数は削除されません。関数名の変更や関数定義の削除は開発者の責任で行ってください。

関数名が変更されたり関数定義が削除され、以前の名前に該当する関数が存在しなくなった場合、この関数名を参照している式定義は全て無効になります。構文チェックユーティリティは、エラーとして扱います。

関数名が変更されたり関数定義が削除されても、同じ名前の関数が別に存在している場合は、全ての式は、存在している既存の関数を参照することになります。

関連トピック：

ユーザ定義関数の定義

ユーザ定義関数とコンポーネント

ユーザ定義関数の実行時の動作


ユーザ定義関数 コンポーネント

ホーム > リファレンスガイド > Magicエンジン > ユーザ定義関数 > ユーザ定義関数とコンポーネント

ユーザ定義関数とコンポーネント

メインプログラム内で定義されたユーザ定義関数は、［スコープ］を「G=グローバル」に設定された場合、Magic xpaのコンポーネントの一部として公開することができます。関数は、公開名を必要とせず、定義された関数名で参照することができます。

コンポーネントが、メインプログラム内のグローバル定義されたユーザ定義関数と一緒に読み込まれた場合、ユーザ定義関数はホストアプリケーションで参照することができるようになります。関数が(他のプログラムやデータソースなどの)リソースを使用する場合、コンポーネント内のリソースがアクセスされます。

関数が公開されない場合でも、EvalStr関数を使用してこのユーザ定義関数を実行させるようにすることもできます。

関連トピック：

ユーザ定義関数の定義

ユーザ定義関数の動作

ユーザ定義関数の実行時の動作


ユーザ定義関数 実行時の動作

ホーム > リファレンスガイド > Magicエンジン > ユーザ定義関数 > ユーザ定義関数の実行時の動作

ユーザ定義関数の実行時の動作

ユーザ定義関数は、組み込み関数と同じように実行時に評価されます。

関数は、同期型の［イベント］ロジックユニットと同じように実行されます。

タスク関連の関数において世代番号が「0」に指定された場合、関数を実行したタスク自身を示します。ユーザ定義関数が親タスクで定義され、子タスクから実行された場合、ユーザ定義関数によって実行されたタスク関連関数における世代番号「0」は、ユーザ定義関数を実行した子タスクを示します。

また、ユーザ定義関数から呼び出されたタスクは、その関数を実行したタスクの子タスクとみなされます。

注意：

ハンドラや関数内で項目の値が設定された場合、その値は残ったままになり、ハンドラや関数が別の処理で呼び出された場合も初期化されません。

パラメータ渡し

一般的に、全てのパラメータは、関数に値が渡されます。パラメータの値を更新しても、更新された値を戻して参照することはできません。

VarCurrとVarSetまたはVarCurrNとVarIndexのような様々なVAR関数によって処理できる項目参照を渡すことができます。

戻り値

関数が実行されると、戻り値の式が評価され、その式の値が関数の戻り値と認識されます。関数が戻り値を持たない場合、関数は NULL を返します。

注意：

ユーザ定義関数は、EvalStr または EvalStrInfo関数を使用して評価することができます。

たとえば：パラメータ（値を返すことなく)を+1加算する関数をメインプログラムに定義したとします。

VARリテラルを使用して以下のようにデータ項目への参照符を関数に渡す必要があります。increment ('G'VAR)

関数内では、データ項目のインデックス（varindex)である数値パラメータを追加します。そして、以下の式を使用してデータ項目の値を加算することができます：VarSet（varindex、VarCurr（varindex)+1)

ユーザ定義関数と起動されたタスク

ユーザ定義関数が、起動されたタスク用に定義され、そのタスクが下位のタスクから起動された上位タスクのハンドラを持っている場合、ユーザ定義タスクは全体のハンドラ実行に対して有効です。

再帰的な呼出

ユーザ定義関数内に定義された処理コマンドで同じユーザ定義関数を呼び出すような再帰的な方法は使用しないでください。このような場合の実行結果は保証されません。

注意：

内部関数と同じ名前のユーザ定義関数を呼び出すことはできません。

関連トピック：

ユーザ定義関数の定義

ユーザ定義関数の動作

ユーザ定義関数とコンポーネント


タスクのデータビュー

タスクは、データベースから選択された一連のレコードに対して処理を実行します。

処理の対象となる個々のデータは、メインソースやリンクテーブルに定義されているカラムの中から［カラム］コマンドにより定義されますが、このようなデータ項目を「実データ項目」あるいは「実項目」と呼びます。

また、タスクの処理を行うために、実データ項目のほかに、一時的な計算結果などを格納しておくデータ項目も必要になることがあります。このようなデータ項目は、タスクの実行中にだけ存在することから、実データ項目に対して「変数項目」と呼んでいます。また、［コール］コマンドでタスクやプログラムを呼び出す時に、呼び出し側タスクとの間でデータの受け渡しを行いたい場合がありますが、この場合には、「パラメータ項目」というデータ項目を使用します。

パラメータ項目は、［コール］処理コマンドの設定時などに変数項目と区別して扱われますが、それ以外には、タスクの実行中にだけ存在する変数項目と同じです。

タスクの項目は、実項目、変数項目、パラメータ項目のいずれも、全てタスクの［項目一覧］に登録されます。一覧では、各項目にシンボル名という文字コードが割当てられます。式中で項目を参照したい場合、このコードを使用して項目を指定します。また、親タスクで定義された項目は、サブタスクでも使用することができ、サブタスクの［項目一覧］から選択することができます。

関連トピック：

Magic xpaによるデータビューの準備処理

データビューのチューニング

レコードデータビュー

［データビュー］エディタ


タスクのデータビュー 準備処理

ホーム > リファレンスガイド > Magicエンジン > タスクのデータビュー > Magic xpaによるデータビューの準備処理

Magic xpaによるデータビューの準備処理

Magicエンジンがタスクの実行を開始すると、エンジンはタスクのデータビューを構成するレコードの範囲条件をチェックします。このチェックに通過したレコードに対してだけ、［タスク前］が実行されます。このチェックは、次のようにして行われます。

  1. まず、エンジンは、メインソースやリンクテーブルから［カラム］コマンドや、［変数］コマンドや［パラメータ］コマンドで定義された項目を検索し、これらを論理レコードの中に含めます。

  2. 次に、タスクの［範囲］式と、［データビュー］エディタに表示されている順に項目の［範囲：最小］と［範囲：最大］の設定を評価します。範囲の評価結果は、データビューに含まれるレコードの範囲を絞り込みます。実行時にユーザが入力したデータによって、更に表示を絞り込むことができます。SQLテーブルから作成されたデータビューの場合は、DBのWhere句によって絞り込み条件を追加することができます。

  3. タスクの［ソート］テーブルでソートが設定されている場合、Magicエンジンは、タスクの実行に先立ち、［ソート］テーブルに指定されたデータ項目の値に従って、昇順あるいは降順にメインソースのレコードをソートします。ここでは、範囲条件に合致したレコードだけがソートの対象になります。実行モードでソート機能を有効にすると、エンドユーザがデータビューのソート条件を設定することもできます。

注意：

埋め込みSQL タスクの場合、Magicエンジンは「SQL コマンド」で定義されているSQL 文をRDBMS に送って実行させ、結果として得られた一連のレコードをメインソースとして、タスクの処理を行います。この場合、上記のMagicエンジンによるデータビューの準備は全て割愛され、すぐに準備処理以降の処理が実行されます。埋め込みSQL タスクにおいては、SQL文によって作成されたデータビューの項目は実項目ではなく、変数項目となります。Magic xpaでは、実項目は［データ］リポジトリ中に定義されているテーブルの定義を基にして認識されますが、SQL 文が定義されている時には、テーブルの定義が［テーブル］リポジトリ中に存在しないからです。

関連トピック：

データビューのチューニング

レコードデータビュー

［データビュー］エディタ


タスクのデータビュー チューニング

ホーム > リファレンスガイド > Magicエンジン > タスクのデータビュー > データビューのチューニング

データビューのチューニング

データビュー中のデータの値をより細かく制限するには、以下のような方法があります。

タスクの処理対象となるレコードは、タスクの［範囲］ダイアログの［範囲］式を使用してより詳細に絞り込むこともできます。この方法は条件を任意の式で指定することができるため柔軟性が高く、複数の非連続な範囲を指定することもできますし、実項目だけでなく、変数項目の値を基に範囲条件を設定することもできます。

また、［範囲］ダイアログの［範囲順序］パラメータを使用して、レコードが処理あるいは表示される順序（昇順または降順）を設定することもできます。

なお、［範囲］ダイアログの［範囲］式と、［カラム］特性の［範囲：最大］/［範囲：最小］特性の両方で範囲が指定されている場合には、範囲条件はAND で結合され、全ての条件を満たすレコードが、タスクの処理の対象となります。

その他、以下のような範囲を設定するパラメータがあります。

  • 項目モデルには［範囲］という特性を設定することができます。ここには、このモデルを使ったデータ項目がとりうる値を設定することができます。ただし、この設定は、ユーザのデータ入力時にチェックされるだけで、すでにデータベースに格納されているデータに対しては適用されません。

  • ［データ］リポジトリの［カラム］テーブルでは、各カラムのデータがとりうる値を［範囲］特性に設定することができます。この設定も項目モデルの［範囲］特性と同じく、ユーザのデータ入力時にのみチェックされます。

  • メインソースがSQL系のRDBMSの場合、［SQLWhere句］ダイアログを使用して、Magic xpaの項目を使用したSQL文を定義することで範囲指定を行うことができます。

関連トピック：

Magic xpaによるデータビューの準備処理

レコードデータビュー

［データビュー］エディタ


タスクのデータビュー レコードデータビュー

ホーム > リファレンスガイド > Magicエンジン > タスクのデータビュー > レコードデータビュー

レコードデータビュー

エンジンがタスクのデータビューから特定のレコードを処理している時には、このデータビューには[変数]テーブルにある変数の値も含まれています。これを「論理レコード」と呼びます。

論理レコードには、タスク全体のデータビューやリンクテーブルの値がまとまって含まれています。

関連トピック：

Magic xpaによるデータビューの準備処理

データビューのチューニング

[データビュー]エディタ


タスクフローでの処理モード

Magicアプリケーションエンジンの動作は、タスクのタイプ（オンライン、ブラウザ、バッチ、リッチクライアント）と「処理モード」によって変わります。

関連トピック：

修正モードから登録モードへの自動切替

修正モードでユーザが編集を行っている時の登録モードへの一時的切替

照会モードと修正モードの違い

エンドユーザによる画面での操作


タスクフローでの処理モード 自動切り替え

ホーム > リファレンスガイド > Magicエンジン > タスクフローでの処理モード > 修正モードから登録モードへの自動切替

修正モードから登録モードへの自動切替

登録モードへの自動切り替えを有効にするには、［タスク特性］の［空のデータビュー許可］特性が「No」に設定する必要があります。

［初期処理モード］特性が修正モードに設定されたオンラインタスクが実行された時、タスクにメインソースが定義されていない場合や、データソースは存在しても指定された範囲のレコードがなかった場合は、処理モードが修正モードから登録モードに自動的に変更されます。この自動切り替え機能により、データソースの作成用と更新用のプログラムを別々に用意しなくても済みます。

しかし、メインソースとして使用されたデータソースが正常な状態でない場合、この切替処理が正常に働かなくなる場合があります。例えば、データソースが指定されたディレクトリが突然削除されたり、パス名が変更されたりした場合などが考えられます。

関連トピック：

修正モードでユーザが編集を行っている時の登録モードへの一時的切替

照会モードと修正モードの違い

エンドユーザによる画面での操作


タスクフローでの処理モード 一時的切替

ホーム > リファレンスガイド > Magicエンジン > タスクフローでの処理モード > 修正モードでユーザが編集を行っているときの登録モードへの一時的切替

修正モードでユーザが編集を行っている時の登録モードへの一時的切替

修正モードの場合、エンドユーザはタスクのデータビューにあるレコードを更新することができます。編集中、ユーザの操作によっては、修正モードが一時的に登録モードに自動的に切り替わることがあります。この場合、タスクのフォームに表示されている情報はそのまま残ります。この一時的自動切替が実行されると、空のレコードが表示され、ユーザがデータの入力を行うことができます。入力後、ユーザが別のレコードに移動すると（つまり、レコードの入力を確定すると）、処理モードは自動的に修正モードに変わります。また、［動作環境］ダイアログの［修正後の再位置付］の値を「Yes」にしている時には、新規のレコードは、タスクのソート順にしたがって再位置付けされます。この一時的自動切替は、ユーザが次のような操作を行った時に実行されます。

  • ユーザが［行作成］イベント（F4）を実行した時。この場合、現在のレコードの後ろに新規のレコードが表示されます。

  • カーソルがテーブルの一番最後のレコードにある時に、ユーザが［次行］イベント（「↓」）を実行した時。この場合、最後のレコードの後ろに新規のレコードが表示されます。

  • ［修正後の再位置付］の設定はオンラインタスクでのみ有効です。バッチタスクでは機能しません。

関連トピック：

修正モードから登録モードへの自動切替

照会モードと修正モードの違い

エンドユーザによる画面での操作


タスクフローでの処理モード 違い

ホーム > リファレンスガイド > Magicエンジン > タスクフローでの処理モード > 照会モードと修正モードの違い

照会モードと修正モードの違い

照会モードと修正モードでは、タスクの実行フローは似ています。ただし、厳密には、照会モードと修正モードとでは、次の点が異なります。

バッチタスクの場合

照会モードと修正モードの実行フローはほぼ同じですが、照会モードではデータベースの更新が行われない点が異なります。つまり修正モードでは、レコードが全て読み込まれ、処理後、データベースにレコードが書き込まれます。照会モードでは、タスクに関連するデータベーステーブルは全て読み込み専用で開かれ、データに対しては読込処理しか行われません。このため、照会モードは、通常、データを出力する場合に使用します。また、修正モードより照会モードの方が処理が高速です。

オンラインタスクとリッチクライアントタスクの場合

照会モードでは、レコードと項目に対する更新と削除は全て拒否されます。レコードや変数がユーザにより入力されたものでも、また手続き型タスクによるものでも、更新と削除はいっさい拒否されます。このように更新と削除はできませんが、照会モードでは、照会モード位置付（インクリメンタルサーチ）と呼ばれる特殊な位置付機能を利用することができます。この機能を利用するために、フォーム上にデータを入力することができます。この機能によってデータベーステーブルに対して柔軟な検索が可能です。また、検索でデータが損害を受けることもありません。

関連トピック：

修正モードから登録モードへの自動切替

修正モードでユーザが編集を行っている時の登録モードへの一時的切替

エンドユーザによる画面での操作


設定

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

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

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

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

  • 基本色

  • フォント

  • キーボード割付

  • プリンタ属性

  • HTMLスタイル

注意：

Magic xpa Studio以外の製品の場合は、プログラムメニューから［環境設定ユーティリティ］を起動してください。

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

動作環境

基本色

フォント

キーボード割付

サーバ

サービス

ビジュアル接続

通信ゲートウェイ

DBMS

データベース

ロギング

論理名

言語

プリンタ

HTMLスタイル

プリンタ属性

チェックメッセージ

事前定義ロジック

シークレット名

ユーザグループ

ユーザID

ログオン

関連トピック：

MAGIC.INI ファイル

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


動作環境

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

注意：

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

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

MgxpaStudio.exe /terminal=%terminal%

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

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

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

システム

マルチユーザ

動作設定

国別指定

外部参照

アプリケーションサーバ

デフォルト値

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

関連トピック：

特殊パラメータ


動作環境 システム

ホーム > リファレンスガイド > 設定 > 動作環境 > ［システム］タブ

[システム]タブ

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

オーナ名

システムログオン

Magic日付

ユーザID

パスワード入力

デフォルトプロジェクト

開始アプリケーション

実行モード

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

西暦基準年

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

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

修正モードでの登録許可

照会モードでの修正許可

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

動作環境テーブル表示

外部テストツール使用

最大ファイル数

ライセンス

ライセンスファイル

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

リモートデバッガ


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

ホーム > リファレンスガイド > 設定 > 動作環境 > ［システム］タブ > オーナ名

オーナ名

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

デフォルト: | Magic Software Japan K.K.
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | Owner


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

ホーム > リファレンスガイド > 設定 > 動作環境 > ［システム］タブ > システムログオン

システムログオン

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

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

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

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

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

注意：

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

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

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

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

デフォルト: | N=なし
変更の反映: | 次のセッションから有効
MAGIC.INIおよびコマンドライン名: | SystemLogin


動作環境 システム Magic日付

ホーム > リファレンスガイド > 設定 > 動作環境 > ［システム］タブ > Magic日付

Magic日付

Magic xpaは、2種類の日付が使用できます。 １つはOSの日付で、「システム日付」と呼びます。もう１つはユーザが設定した日付です。この日付はMagic xpaに保存され、「Magic日付」と呼びます。デフォルトでは、Magic日付とシステム日付は同じです。Magic日付は、MDate 関数を使用して取得できます。

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

注意：

INIGet()関数やコマンドラインパラメータを使用して日付を更新する場合、2桁の年数を指定してください。

デフォルト: | システム日付
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | Date

関連トピック：

日付モード


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

ホーム > リファレンスガイド > 設定 > 動作環境 > ［システム］タブ > ユーザID

ユーザID

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

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

デフォルト: | なし
変更の反映: | 直後から有効
MAGIC.INIおよびコマンドライン名: | User


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

ホーム > リファレンスガイド > 設定 > 動作環境 > ［システム］タブ > パスワード入力

パスワード入力

有効な値: Yes, No

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

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

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

モバイル仕様：

モバイル環境では、サポートされません。

デフォルト: | No
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | InputPassword


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

ホーム > リファレンスガイド > 設定 > 動作環境 > ［システム］タブ > デフォルトプロジェクト

デフォルトプロジェクト

開発エンジンを起動した時に、自動的に開くプロジェクトを指定します。ここからズームすると[プロジェクトを選択]ダイアログが表示されます。ここから、プロジェクトファイル（edp）を選択することができます。最大260バイトまで入力できます。

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

変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | DefaultProject

関連トピック：

Magic xpa Studio起動時に自動的にプロジェクトをオープンするようにするには


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

ホーム > リファレンスガイド > 設定 > 動作環境 > ［システム］タブ > 開始アプリケーション

開始アプリケーション

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

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

変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | StartApplication

関連トピック：

実行エンジンがキャビネットファイルを自動的に読み込むように設定するには


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

ホーム > リファレンスガイド > 設定 > 動作環境 > ［システム］タブ > 実行モード

実行モード

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

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

  • O=オンライン …… ウィンドウを表示して実行します。クライアントアプリケーションの通常の実行形態です。

  • B=バックグラウンド …… Magic xpaのウィンドウは表示されません。サーバアプリケーションの実行形態です。プログラムでエラーが発生した場合、エラーメッセージは「mgerror.log」という名前のファイルに出力されます。サーバ製品（Magic xpa Enterprise Server、Magic xpa RichClient Server）では、このモードで実行しないとマルチスレッドで動作しません。

各製品ごとにサポートする実行モードは以下の通りです。

製品名/実行モード | Ｏ＝オンライン | B=バックグラウンド
Magic xpa Studio | ○ | ○※
Magic xpa Client | ○ |
Magic xpa Enterprise Server |  | ○
Magic xpa RichiClient Server |  | ○

注意：

Magic xpa Studioでサーバアプリケーションのテストを行う場合は、「B=バックグランド」に設定してください。

デフォルト: | O=オンライン
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | DeploymentMode

関連トピック：

SDIアプリケーションとして実行するように指定するには


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

ホーム > リファレンスガイド > 設定 > 動作環境 > ［システム］タブ > スクリーンモードプロンプト

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

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

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

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

注意：

パラメータ値の後の空白は、トリミングされます。

デフォルト: | :
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | ScreenModePrompt


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

ホーム > リファレンスガイド > 設定 > 動作環境 > ［システム］タブ > 西暦基準年

西暦基準年

西暦年を４桁（通常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 と判定されます。

デフォルト: | 1920
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | Century

関連トピック：

DATE リテラル


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

ホーム > リファレンスガイド > 設定 > 動作環境 > ［システム］タブ > バッチイベント間隔

バッチイベント間隔

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

この設定が「0」の場合、イベントは発生しません。この環境設定は汎用的で、あらゆるバッチタスクに影響します。

バッチタスクの実行中にフォームに処理カウンタを表示させたいような場合、この設定によって更新値の表示がリフレッシュされる間隔が変わります。この値を小さくすると表示間隔が短くなりますが、バッチ処理のパフォーマンスが低下します。

注意：

Magicエンジンは、［バッチイベント間隔］と［タスク特性］の［レコードイベント間隔］特性の両方をもとにイベントキューからイベントを取り出します。これらの間隔のうちのどちらか1つに達すると、エンジンはイベントを取り出します。

デフォルト: | 1000［1秒］
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | BatchPaintTime

関連トピック：

バッチタスクでの画面の再表示間隔を指定するには


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

ホーム > リファレンスガイド > 設定 > 動作環境 > ［システム］タブ > タスクキャッシュサイズ

タスクキャッシュサイズ

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

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

デフォルト: | 0
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | TaskCacheSize


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

ホーム > リファレンスガイド > 設定 > 動作環境 > ［システム］タブ > 修正モードでの登録許可

修正モードでの登録許可

有効な値: Yes, No

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

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

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

デフォルト: | Yes
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | AllowCreateInModify


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

ホーム > リファレンスガイド > 設定 > 動作環境 > ［システム］タブ > 照会モードでの修正許可

照会モードでの修正許可

有効な値: Yes, No

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

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

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

デフォルト: | No
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | AllowUpdateInQuery


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

ホーム > リファレンスガイド > 設定 > 動作環境 > ［システム］タブ > 照会モード位置付で確認表示

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

有効な値: Yes, No

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

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

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

デフォルト: | Yes
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | LocateModeQueryWarning


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

ホーム > リファレンスガイド > 設定 > 動作環境 > ［システム］タブ > 動作環境テーブル表示

動作環境テーブル表示

有効な値: Yes, No

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

デフォルト: | Yes
変更の反映: | 即時

設定名 | MAGIC.INIおよびコマンドライン名
動作環境テーブル表示 | AccessEnvironment
基本色テーブル表示 | AccessColors
フォントテーブル表示 | AccessFonts
キーボード割付テーブル表示 | AccessKeyboardMapping
サーバテーブル表示 | AccessServers
サービステーブル表示 | AccessServices
ビジュアル接続表示 | AccessVisualConnection
通信ゲートウェイテーブル表示 | AccessCommunications
DBMSテーブル表示 | AccessDBMS
データベーステーブル表示 | AccessDatabases
ロギングテーブル表示 | AccessLogging
論理名テーブル表示 | AccessLogicalNames
言語テーブル表示 | AccessLanguages
プリンタテーブル表示 | AccessPrinters
HTMLスタイルテーブル表示 | AccessHTMLStyles
プリンタ属性テーブル表示 | AccessPrintAttributes
ログオン許可 | AccessLogon
チェックメッセージ表示 | AccessCheckerMessages
事前定義ロジックテーブル表示 | AccessPreferredEventList


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

ホーム > リファレンスガイド > 設定 > 動作環境 > ［システム］タブ > 外部テストツール使用

外部テストツール使用

有効な値: Yes, No

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

  • Yes …… 外部テストツールを使用したテスト環境が有効になり、各コントロールに関する情報が外部テストツールで認識できるようになります。
    この設定を「Yes」 にするとMagic xpaをマルチインスタンスで実行することができなくなります。

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

デフォルト: | No
変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | AllowTesting

注意：

このパラメータは、日本語版ではサポートしておりません。


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

ホーム > リファレンスガイド > 設定 > 動作環境 > ［システム］タブ > 最大ファイル数

最大ファイル数

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

デフォルト: | 0
変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | FileHandles


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

ホーム > リファレンスガイド > 設定 > 動作環境 > ［システム］タブ > ライセンス

ライセンス

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

デフォルト: | MGDEMO
変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | LicenseName


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

ホーム > リファレンスガイド > 設定 > 動作環境 > ［システム］タブ > ライセンスファイル

ライセンスファイル

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

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

デフォルト: | インストール環境に依存
変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | LicenseFile


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

ホーム > リファレンスガイド > 設定 > 動作環境 > ［システム］タブ > リモートデバッガ

リモートデバッガ

実行時に、他の Magic xpa Studioからリモートで実行エンジンに接続できるかどうかを指定します。

デフォルト: | No
変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | EnableRemoteDebugger


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

ホーム > リファレンスガイド > 設定 > 動作環境 > ［システム］タブ > リモートデバッガの使用ポート

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

Magic xpa Studioの場合、ここにはデバッガが実行時エンジンと接続するためのデフォルトのポート番号を指定します。

実行環境の場合、ここには、Magic xpa Studioと接続するために使用するポート番号を指定します。

一つのポート番号か、ポートの範囲（例えば1200-1205）を定義することができます。

注意：

2台の実行エンジンが［リモートデバッガ］の設定を「Yes」にして同じPCで実行された場合、以下のように動作します。

  • ポートの範囲が定義されている場合は、各エンジンは独自のポートを使用します。

  • 一つのポートが定義されている場合は、最初に起動されたエンジンが指定されたポートを使用します。2番目に起動されたエンジンはエラーを表示し、リモートデバッガが利用できない状態で実行します。

変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | RemoteDebuggerPortNumber


動作環境 システム ライセンス 設定ダイアログ

ホーム > リファレンスガイド > 設定 > 動作環境 > ［システム］タブ > ライセンス 設定ダイアログ

ライセンスの設定ダイアログ

Magic xpaの起動時にライセンスファイルとライセンス名を読み込みます。指定されたライセンスファイルが存在していなかったり、ライセンス名が正しくない場合、ライセンスファイルとライセンス名を指定するためのライセンスダイアログボックスが開きます。

ダイアログボックスは、ヘルプメニューから表示させることもできます。これによって、新しいライセンスファイルに切り替えることもできます。

Studioまたは実行エンジンの起動時に、ライセンス管理関係のエラーが発生した場合は、このダイアログボックスは表示されません。

注意：

  • [ライセンスファイル]欄にはライセンスファイル名のみ指定できます。ライセンスサーバは指定できません。

  • ここでライセンス情報を設定すると、MAGIC.INIファイルの設定内容が更新されます。

関連トピック：

ライセンスファイルの設定

ライセンス名の設定


動作環境 マルチユーザ

ホーム > リファレンスガイド > 設定 > 動作環境 > ［マルチユーザ］タブ

[マルチユーザ]タブ

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

端末番号

ISAM トランザクション

デッドロック防止

ロックファイル

リソースロックファイル

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


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

ホーム > リファレンスガイド > 設定 > 動作環境 > ［マルチユーザ］タブ > 端末番号

端末番号

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

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

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

デフォルト: | No
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | Terminal


動作環境 マルチユーザ ISAMトランザクション

ホーム > リファレンスガイド > 設定 > 動作環境 > ［マルチユーザ］タブ > ISAM トランザクション

ISAMトランザクション

有効な値: Yes, No

Magic xpaは通常、使用するデータベースシステムの機能を利用してトランザクション処理を行います。しかし、Pervasive.SQL(MicroKernel)などのISAMファイルが使用される場合は、トランザクションの使用はオプションによる指定となります。プログラムの中でトランザクションが定義されている時、Magic xpaはプログラムで使用しているテーブルのデータベースが何であるかをチェックします。テーブルがISAMデータベースの場合、この設定に基づいて、トランザクション処理を実行するか否かを決定します。

  • Yes …… ISAM データファイルに対してトランザクション処理が実行されるようになります。トランザクションを実行した場合、データの整合性が高くなります。トランザクションの実行範囲は、プログラムの定義によります。

  • No …… ISAMデータファイルに対するトランザクション処理は実行されません。

デフォルト: | No
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | ISAMTransaction

関連トピック：

ISAMファイルのトランザクションを組み込むには


動作環境 マルチユーザ デッドロック防止

ホーム > リファレンスガイド > 設定 > 動作環境 > ［マルチユーザ］タブ > デッドロック防止

デッドロック防止

有効な値: Yes, No

Magic xpaには、デッドロックの検出や予防機能がないISAMタイプのデータベース用にデッドロック予防のためのメカニズムが組み込まれています。デッドロック状況は、2人のユーザが所有するリソースをそれぞれのユーザが待っている場合に発生します。例えば、次のようになります

ステーションA | ステーションB
テーブルxをロック | テーブルyをロック
yの読み取りを試行 | xの読み取りを試行

ステーションAはトランザクション内にテーブルxを所有しており、ステーションBが所有しているテーブルyを読み取ろうとしています。ステーションBはテーブルyを所有しており、ステーションAが所有しているテーブルxを読み取ろうとしています。

  • Yes …… 例のようなデッドロックを予防することができます。

  • No …… デッドロックを予防するための特別なアクションは行われません。

デッドロックの検出や予防の機能が組み込まれていないデータベースでは、[デッドロック防止]を「Yes」に設定することをお勧めします。システムで使用されるデータベースに関連する個別の情報については、対応するゲートウェイのドキュメントも参照してください。

注意：

デッドロック防止を有効にすると、システムのパフォーマンスが劣化することがあります。

デフォルト: | No
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | DeadlockPrevent


動作環境 マルチユーザ ロックファイル

ホーム > リファレンスガイド > 設定 > 動作環境 > ［マルチユーザ］タブ > ロックファイル

ロックファイル

Magic xpaは、レコードとテーブルの2つのレベルのロック機能を実装しています。最初のレベルは、DBMSのベンダーによって供給されているロック機構を使用します。第2の（オプションの）レベルは、Magic xpa 独自のロック機構です。Magic xpaのロック機構は、そのテーブル（データまたはシステムファイル)のうちの少なくとも1つを含むあらゆるディレクトリでロックファイルを作成することが必要になります。

ここにはロック機能を実現するために使用するファイルの名前を指定します。ロックファイルの名前には、パス名を指定しないでください。パス名は自動的にサポートされます。

ロックファイルはロックされているファイルが存在するディレクトリに作成されます。データの位置は、[データベース]テーブルの[位置]カラムや[データ]リポジトリの[データソース名]カラムで指定することができます。

ディレクトリ内の共有テーブルにアクセスしている最初のユーザは、ディレクトリの Magicロックファイルをオープンすることになります。Magic xpaから終了すると、Magicロックファイルが削除されます。

ロックファイルがネットワークドライブ（例、複数のサーバで使用されている)に作成される場合、場所は（UNC名ではなく）サーバアドレスで指定してください。例：\\143.132.311.11\uplock.dat。

デフォルト: | mglock.dat
変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | LockFile

関連トピック：

Magicロック

ロックパス

ロック

Magic xpaのロックファイルの位置を指定するには


動作環境 マルチユーザ リソースロックファイル

ホーム > リファレンスガイド > 設定 > 動作環境 > ［マルチユーザ］タブ > リソースロックファイル

リソースロックファイル

リソースロック関数で使用するリソースロックファイルのパスおよびファイル名を指定します。リソースロックは、Magic xpa独自のロック機能で、各データベースのロックファイル機能を使用していません。

デフォルト: | mgres.loc
変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | ResourceLockFilePath


動作環境 マルチユーザ ロック前にトランザクション開始

ホーム > リファレンスガイド > 設定 > 動作環境 > ［マルチユーザ］タブ > ロック前にトランザクション開始（ISAM）

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

有効な値: Yes, No

この設定は、ISAMファイルを開発モードでオープンした場合のみ関係します。「Yes」に設定すると以下のように動作します。

リポジトリ入力時、タスク内で発行されたロックがトランザクション内でない場合、[トランザクション開始]特性は、オープンしたトランザクション内でロックされるように変更されます。

ISAMファイルを使用したタスクのトランザクションのデフォルト設定は、以下のように変更されます。

設定 | バッチタスク | オンラインタスク
Yes | タスク前 | レコードロック時
No | なし | レコード更新前

注意：

この表は、物理トランザクションでのみ有効です。タスクのトランザクションモードが「遅延」から「物理」に変更された場合、[トランザクション開始]特性の値は、このテーブルに基づいて変更されます。

この設定が「Yes」の場合、[トランザクション開始]特性と、[ロック方式]特性の値は、以下のようになります。

 | レコード前の前 | レコード後の前 | レコード更新前 | なし | レコードロック時
即時 | × |  |  |  | ×
入力時 | × |  |  |  | ×
更新時 | × | × | × |  | ×
なし | × | × | × | × | ×

デフォルト: | Yes
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | LockWithinTran

関連トピック：

ISAMファイルのトランザクションを組み込むには


動作環境 動作設定

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ

[動作設定]タブ

[動作設定]タブには、以下の設定項目が含まれています。

デフォルトデータベース

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

範囲／位置付ポップアップ秒数

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

キーボード休止秒数

自動終了時確認

MAGIC.INI 常駐

常駐テーブル読込

メッセージの詳細表示

カーソルの画面中央位置付

修正後の再位置付

デフォルト色

デフォルトフォント

ツールチップ表示タイムアウト

ブックマークの最大登録数

クロスリファレンスの結果の最大登録数

コマンド処理のリトライ間隔

入出力デバイスのオープンタイミング

フロートパレットを常に全面表示

パレット結合可

単一拡張パレット

特性シートの自動操作

最小チェックレベル

メッセージのグループ化

チェック項目の自動位置付

未使用の式に対するチェック処理

Windows XP のテーマを使用

ロジックユニットの自動作成

最近のプロジェクト数

使用コンポーネント

デフォルトソースディレクトリ

デフォルト出力ディレクトリ

開発エンジン開始モード

テキスト形式互換

プリントキューの区切り文字

印刷中断許可

プッシュボタン用イメージのイメージ数

デフォルトのタスクタイプ

親タスクをアクティブにすると子（RC）タスクを閉じる


動作環境 動作設定 デフォルトデータベース

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > デフォルトデータベース

デフォルトデータベース

システムデフォルトとしてMagic xpaによって使用されるデータベースの名前を指定します。XMLデータベースを指定することもできます。

このデフォルトはプロジェクトやレポート、およびデータベースファイルで使用され、これらのレベルで上書きすることができます。この名前は、データベーステーブルであらかじめ定義されているものから選択します。データベース一覧を参照するには、[編集／ズーム]（F5）を実行してください。

デフォルト: | Default Database
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | DefaultDatabase


動作環境 動作設定 ソート一時データベース

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > ソート／一時用データベース

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

ソートテーブル、または一時保存用（埋め込みSQLの結果テーブルなど）として必要なその他の一時データベーステーブルを作成するためにMagic xpaによって使用されるデータベースの名前を指定します。

例えば、メモリを使用する高速なISAMデータベース（メモリテーブルなど）を指定することで、ソートのパフォーマンスを向上させることができます。

ここには、［データベース］テーブルであらかじめ定義されているものから選択します。［データベース一覧］を参照するには、［編集／ズーム］（F5）を実行してください。ただしXMLデータベースや、ODBCはソートデータベースとして使用することはできません。

注意：

［ソート／一時用データベース］に指定するデータベースは、［データベース］テーブルの［位置］カラムを指定しないでください。

デフォルト: | Memory
変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | TempDatabase


動作環境 動作設定 範囲位置付ポップアップ秒数

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > 範囲／位置付ポップアップ秒数

範囲／位置付ポップアップ秒数

[範囲]または[位置付]のポップアップウィンドウを最初に表示し、その後更新するまでの時間（秒数）を指定します。[範囲]または[位置付]ポップアップウィンドウは、データベーステーブルで逐次検索処理を実行した場合に必ず表示され、すでに検索されているレコードの数を表示します。ウィンドウを表示しない場合は、このフラグを「0」に設定します。

デフォルト: | 10
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | RangePopTime


動作環境 動作設定 ソート一時用ポップアップ秒数

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > ソート／一時用ポップアップ秒数

ソート／一時用ポップアップ秒数 (デフォルト:10)

［ソート/一時用］ポップアップウィンドウを最初に表示し、その後更新するまでの表示時間（秒数）を指定します。［ソート/一時用］ポップアップウィンドウは、ソート処理コマンドがデータベースファイルで実行された場合に必ず表示されます。　［ソート/一時用］ポップアップウィンドウは、すでにソートされているレコードの数を表示します。ウィンドウを表示しない場合は、このフラグを「0」に設定します。

デフォルト: | 10
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | TempPopTime


動作環境 動作設定 キーボード休止秒数

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > キーボード休止秒数

キーボード休止秒数

キーボード操作がない時の休止信号間の時間（秒数）を指定します。対話型のセッション中、Magic xpaはユーザ入力を待ちます。ユーザ入力がないと、休止信号が出され、他の処理が実行できるようになります。［キーボード休止秒数］の値は、休止信号が出されるまでの非活動時間です。

この設定は、Idle関数の戻り値に影響します。

注意：

非同期の［イベント実行］処理コマンドは、次の休止状態中でも実行されるため、イベントは想定とは異なる場所で処理されるかもしれません。たとえば、別のタスクで［コール］処理コマンドの前に非同期の［閉じる］イベントが発行された場合、イベントを発行したタスクでなく呼び出されたタスクに影響する場合があります。これは、イベントがキューに入れられた後の次の休止期間に呼び出されたタスクが実行されるからです。

デフォルト: | 1秒
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | IdleTime


動作環境 動作設定 自動終了確認

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > 自動終了時確認

自動終了時確認

有効な値: Yes, No

Magic xpaのダイアログボックスまたはテーブルの項目を修正し、ダイアログまたはリポジトリ内の編集処理の終了（Esc）を指示すると、[変更を保存しますか?]確認ダイアログが表示されます。終了動作が暗黙である場合もあります。

例えば、あるタスクの[ロジック]エディタの編集時に、[プロジェクト／データ]（Shift+F2）を選択して、[データ]リポジトリに切り替えたとします。この場合、Magic xpaは、[タスク]エディタから内部的な[終了]要求を受け取ります。すでに[ロジック]エディタを修正していれば、[データ]リポジトリに制御が渡される前に[変更を保存しますか?]確認ダイアログが表示されます。このような内部的「終了」動作のことを「自動終了」と呼びます。

  • Yes …… ユーザ要求による自動終了時に確認ダイアログが表示されます。このため、現在の内容（修正されたテーブルまたはダイアログ）と要求された内容との間の変更について、修正されたダイアログまたはテーブルごとにユーザに明示的な確認を要求します。例えば、現在の内容が、[ロジック]エディタの編集中にオブジェクトとして呼び出されたタスクの[イベント]テーブルであり、[イベント]と[ロジック]エディタの両方が修正されたとします。
    この時に、[プロジェクト／データ]（Shift+F2）を選択して[データ]リポジトリ（要求した内容）を編集する場合、最初に[イベント]テーブルに対する確認ダイアログが表示され、次に[ロジック]エディタに対して確認ダイアログが表示されます。両方の確認を受け取った時のみ、Magic xpaは[データ]リポジトリに進みます。

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

この設定における取消しとは、オブジェクトの修正内容を反映せずにリポジトリに戻ることを意味しています。

デフォルト: | No
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | ConfirmAutoExit


動作環境 動作設定 MAGIC.INI常駐

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > MAGIC.INI 常駐

MAGIC.INI 常駐

有効な値: Yes, No

MAGIC.INIファイルの内容をメモリに常駐させるかどうかを指定します。

  • Yes …… MAGIC.INIファイルの内容がメモリ内に常駐します。常駐させることにより、MAGIC.INI変数への読み取りアクセスが速くなるためシステムのパフォーマンスが向上します。MAGIC.INIの内容が更新された時は、Magic xpaが終了する時に値がディスクに書き込まれます。

  • No …… MAGIC.INIIファイルに対する照会または更新のたびに、ディスクへの読み取りと書き込みが行われます。

デフォルト: | No
変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | ResidentINI


動作環境 動作設定 常駐テーブル読込

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > 常駐テーブル読込

常駐テーブル読込

有効な値: Yes, No

常駐テーブル読込の有効無効をグローバルに設定します。

  • Yes …… 常駐テーブル読込は有効になりますが、各々のテーブルに対して、常駐テーブルにするための設定が必要です。

  • No …… 常駐テーブル読込は無効となります。

デフォルト: | No
変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | LoadResidentFiles


動作環境 動作設定 メッセージの詳細表示

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > メッセージの詳細表示

メッセージの詳細表示 (デフォルト:Yes)

有効な値: Yes, No

SQLデータベースを使用するアプリケーションを実行中に、制約違反などが発生すると、RDBMSがエラーを返します。Magic xpaはRDBMSから受け取った最後のエラーをバッファに保持します。

  • Yes …… 実行時のエラーが全て表示され、バッファはクリアされます。

  • No …… 実行時のエラーは表示されません。プログラムでDbERR関数やErrDbmsMessage関数などを使用してバッファから内容を文字列として変数に取得し、処理することができます。

注意：

[メッセージの詳細表示」を「Yes」に設定している時は、エラーメッセージが表示され、バッファをクリアしてしまいます。このため、DbERRやErrDbmsMessage 関数でエラーメッセージを取得できません。アプリケーションの要求仕様によって、どちらの設定にすべきかを判断してください。

デフォルト: | Yes
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | DisplayFullMsgs

関連トピック：

データベースエラーまたは例外を処理するには


動作環境 動作設定 カーソルの中央位置付

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > カーソルの画面中央位置付

カーソルの画面中央位置付 (デフォルト:No)

有効な値: Yes, No

デフォルトでは、現在のレコードはテーブルの先頭に表示されます。この場合、ユーザによってはそれ以前のレコードが存在しないもの受け取られる場合があります。このような場合、このパラメータをYesに設定することで、現在のレコードはテーブルの中央に表示されるようになります。

この設定は、[テーブル]コントロールを使用してデータベーステーブルにアクセスを行う場合、オンラインタスクの性能に影響します。つまり、フォーム上に[テーブル]コントロールが配置されたオンラインタスクだけがこの設定に影響されます。

この設定は、インデックスを使用するかどうかにかかわらず、双方向でメインソースの照会を行う時に有効です。フォームの上に[テーブル]コントロールを配置したオンラインタスクのみ有効です。

  • Yes …… 画面の再描画に先立って、まず画面の中央に現在のレコードを位置付けし、画面の残りの部分を埋めるために、現在のレコードの前後のレコードを読み込みます。
    その結果、２ つのカーソルをオープンします。１ つは、現在のレコード位置から前方を読むため、もう１ つは、後方を読むために使用されます。

  • No …… 現在のレコードを画面の最上部に位置付けるように設定します。再描画された画面には表示されないため、現在のレコード位置から前のレコードを参照するためのカーソルをオープンする必要性がなくなります。

注意

リッチクライアントタスクではサポートされません。

この欄は以下の状況で有効です。

  • タスクのモードを「修正」、「照会」、「位置付」、「インデックス変更」、「ソート」から「修正」または「照会」に変更した後。

  • [次に位置付]の操作後。

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

無効になる場合

  • 新規の範囲を指定するかどうかにかかわらず、「範囲」モードから別のモードに移り、範囲の最初のレコードに移動した場合。

  • 新規のソートを行い、「ソート」モードから別のモードに移り、範囲の最初のレコードに移動した場合。

  • 「登録」モードから別のモードに移り、範囲の最初のレコードに移動した場合。

この設定は、Magic xpaのエンジン自体によって制御されるため、ゲートウェイが異なっても機能は有効です。

デフォルト: | No
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | CenterScreenInOnline


動作環境 動作設定 修正後の再位置付

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > 修正後の再位置付

修正後の再位置付

有効な値: Yes, No

フォームに[テーブル]コントロールが配置されているオンラインタスクの性能に影響します。

  • Yes …… タスクのメインソースのインデックスセグメント値に変更があった場合、または修正モードで新規のレコードが挿入された場合、既存のレコードに対して以下の処理が実行されます。

  • 現在のレコードをデータベースに書き込みます。

  • 現在のテーブルの一画面分のレコードを上から下まで再読込されます。この後、変更されたレコードが、そのレコードの表示順に応じた位置に表示されます。もし、レコードが表示順の関係でテーブルの外に表示されるような場合、レコードはユーザからは見えなくなります。

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

  • No …… 上記の2 番目の処理（再読込）が実行されなくなります。このため、スクロールによりテーブルの外に出るまでレコードは以前の位置に表示されます。この場合、位置が変わらないため表示順序は規則から外れることになります。

なお、この欄の値より、タスク制御の[ウィンドウ再表示]欄の値が優先されます。つまり、[ウィンドウ再表示]欄を「Yes 」とした場合、[修正後の再位置付]の設定にかかわらず、レコードが更新されるごとにデータベースからレコードが再読込されます。この処理は、メインソースのインデックスセグメントの値の変更とは関係なく実行されます。

注意：

この設定を「Yes」とした場合、表示の更新が行われなくなるため、場合によっては同じレコードがテーブルに2 つ表示されることがあります。

マルチマーキング

［修正後の再位置付］が「Yes」に設定されている場合で、マルチマーキング処理中にレコードが修正されると、再位置付けは、マルチマーキング処理の最後にのみ発生します。 この場合、レコードのマーキングはクリアされます。

デフォルト: | Yes
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | RepositionAfterModify


動作環境 動作設定 デフォルト色

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > デフォルト色

デフォルト色

基本色テーブルに新しい行を作成した時の初期値となる色番号を指定します。この設定は、実行アプリケーション内での色指定がない場合に初期値として使用されます。

新しい行を基本色テーブルに追加すると、Magic xpaはこのデフォルト色を初期値として使用します。デフォルト色の指定がされていない場合、Magic xpaのシステムデフォルト値として以下の色が使用されます。

  • 前景色 …… システム色[ウィンドウ内の文字]

  • 背景色 …… システム色[ボタンの表面]

アプリケ－ションが実行している時、そのプログラム内部で色指定が行われない場合は、Magic xpaは、ここで指定された色番号を使用します。この設定値が指定されていない場合は、上記のシステムデフォルト値を使用します。

デフォルト: | 1
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | DefaultColor


動作環境 動作設定 デフォルトフォント

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > デフォルトフォント

デフォルトフォント

フォントテーブルに新しい行を作成した時の初期値となるフォント番号を指定します。この値は、実行アプリケーションでフォントの指定がない場合、デフォルトフォントとして使用されます。開発者が新しい行をフォントテーブルに追加すると、Magic xpaは、このデフォルトフォントを初期値として使用します。

デフォルトフォントが指定されていない場合は、Magic xpaのシステムデフォルト値として「MS Sans Serif 8pt」が指定されます。アプリケーションを実行している時、プログラム内部でフォント指定が行われていない場合は、Magic xpaは、ここで指定されたフォント番号を使用します。また、この値が指定されていない場合には、Windows のデフォルトフォントを使用します。

デフォルト: | 1
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | DefaultFont


動作環境 動作設定 ツールチップ表示タイムアウト

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > ツールチップ表示タイムアウト

ツールチップ表示タイムアウト

有効な値: 0-99

プロジェクトの開発時の式や、実行時のコントロール上に表示されるツールチップの表示時間を秒数で指定します。最大値は31秒です。

ツールチップを非表示にするには、[ツールチップ表示タイムアウト]を「0」に設定します。

デフォルト: | 5秒
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | TooltipTimeout


動作環境 動作設定 ブックマークの最大登録数

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > ブックマークの最大登録数

ブックマークの最大登録数

有効な値: 1-9999

保存するブックマークの最大登録数を定義します。各プロジェクトのブックマーク情報は、各プロジェクトのカレントフォルダに「BookMark.BMK」というファイルに保存されます。

デフォルト: | 10
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | MaxBookMarks


動作環境 動作設定 X-Ref結果の最大登録数

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > クロスリファレンスの結果の最大登録数

クロスリファレンスの結果の最大登録数

有効な値: 1-9999

保存するクロスリファレンス（クロスリファレンス）結果の最大数を定義します。各プロジェクトのブックマーク情報は、各プロジェクトのカレントフォルダに「CrossRef.XRF」というファイルに保存されます。

デフォルト: | 5
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | MaxCrfResults


動作環境 動作設定 コマンド処理のリトライ間隔

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > コマンド処理のリトライ間隔

コマンド処理のリトライ間隔

この設定は、定義された操作が再試行されるまでの時間を秒数で指定します。

テーブルロック時にリトライする時間もこの設定で制御されます。アプリケーションサーバの実行時など、ユーザが強制終了できないプログラムでテーブルロックが発生した場合、常にこの値までリトライします。

「0」に設定すると、リトライしません。

デフォルト: | 600秒（10分）
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | RetryOperationTime


動作環境 動作設定 入出力デバイスのオープンタイミング

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > 入出力デバイスのオープンタイミング

入出力デバイスのオープンタイミング

入出力デバイスのオープンタイミングは以下の２つの方法で制御できます。

  • I=即時 …… 入出力を定義したタスクがオープンされた時点で実行されます。

  • O=利用時 …… [フォーム出力／入力]処理コマンドを実行したり、入出力デバイスを制御する関数EOF, EOP, Line, Page など）が実行された時点で実行されます。

デフォルト: | I=即時
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | IOTiming

関連トピック：

出力する内容がない場合にファイルを作成したり空白ページを出力させないようにするには

入出力ファイルが実際に使用されるまで作成されないようにするには


動作環境 動作設定 フロートパレットを前面表示

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > フロートパレットを常に全面表示

フロートパレットを常に前面表示

有効な値： Yes, No

[ナビゲータ]、[特性シート]、[コメント]の各ペインがフローティング表示している場合の動作を指定します。

  • Yes …… EscまたはEnterキーを押下しても フローティングパレットは閉じません。カーソルは[ワークスペース]ペインに移動します。この設定は、[パレット結合可]の動作に影響しません。

  • No …… EscまたはEnterキーで Magic xpaのフローティングパレット（ナビゲータ、特性シート、コメント）は閉じます。カーソルは[ワークスペース]ペインに移動します。
    複数のパレットが同じフローティングウィンドウ上にある場合も、Escまたは Enterキーでウィンドウが閉じます。

デフォルト: | Yes
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | PalettesAlwaysOnTop


動作環境 動作設定 パレット結合可

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > パレット結合可

パレット結合可

有効な値：Yes,No

  • Yes …… フローティング状態のペインを[ワークスペース]ペインの境界にドラッグ＆ドロップすることで結合させることができます。

  • No …… フローティング状態のペインを[ワークスペース]ペインに結合させることはできません。
    このオプションは、すでに結合されているペインには影響しません。ただし、一旦フローティング状態にすると元に戻せなくなります。

デフォルト: | Yes
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | DockablePalettes


動作環境 動作設定 単一拡張パレット

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > 単一拡張パレット

単一拡張パレット

有効な値：Yes,No

[特性シート]のツリー表示を全て展開して表示するか否かを指定します。

  • Yes …… 指定したセクションのみ展開して表示します。別のセクションを展開表示させると、今までのセクション表示が閉じます。

  • No …… [特性シート]のツリー表示を全て展開して表示します。

デフォルト: | No
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | SingleExpandPalettes

関連トピック：

1つのセクションを表示している特性シートを保持するには


動作環境 動作設定 特性シートの自動操作

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > 特性シートの自動操作

特性シートの自動操作

有効な値：N=無効、C=閉じる、O=開く、F=全て

リポジトリを開いた時に関連する［特性シート］を自動的に開くかどうかを指定します。

  • N=無効 …… ［特性シート］のオープン／クローズを自動制御しません。

  • C=閉じる …… 現在のリポジトリと関係ない特性に移動すると［特性シート］は自動的に閉じます。関連する特性に戻っても閉じたままになります。

  • O=開く …… リポジトリを開くと関連する［特性シート］が自動的に開きます。ただし、自動的は閉じません。

  • F=全て …… リポジトリのオープン／クローズに連動して、関連する［特性シート］も自動的にオープン／クローズします。

［特性シート］が自動的に開いても、フォーカスはワークスペース上に残り、［特性シート］には移動しません。

デフォルト: | C=閉じる
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | AutomaticPropertySheet

関連トピック：

特性シートやナビゲータペインが自動的に表示されないようにするには


動作環境 動作設定 最小チェックレベル

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > 最小チェックレベル

最小チェックレベル

有効な値：E=エラー、W=警告、R=推奨

構文チェックユーティリティがチェックする最小レベルを指定します。

  • E=エラー …… エラーメッセージのみ表示する

  • W=警告 …… エラーおよび、警告メッセージを表示する

  • R=推奨 …… エラー、および、警告メッセージ、推奨を表示します。

デフォルト: | R=推奨
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | CheckerLevel

関連トピック：

用していない式を検索するには

構文チェックの表示メッセージを絞るには


動作環境 動作設定 メッセージのグループ化

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > メッセージのグループ化

メッセージのグループ化

有効な値：T=タイプ、O=オブジェクト

構文チェックの結果メッセージを、結果ウィンドウ上にどのようなグループ化で表示するかを指定します。

  • O=オブジェクト …… Magic xpaのオブジェクト（例： モデル、データソース、および、プログラム）ごとにグループ化します。そのグループ内でエラーが発見される順に並んで表示されます。

  • T=タイプ …… メッセージのタイプ（エラー、警告、推奨）ごとにグループ化します。そのグループ内でエラーが発見される順に並んで表示されます。

  • B=オブジェクトとタイプ …… メッセージのタイプとMagic xpaのオブジェクトの組み合わせでグループ化されます。

デフォルト: | O=オブジェクト
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | CheckerGroups


動作環境 動作設定 チェック項目の自動位置付

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > チェック項目の自動位置付

チェック項目の自動位置付 (デフォルト:Yes)

有効な値：Yes,No

オブジェクトの構文チェックを（F8）を実行した後、自動的に最初のチェックメッセージをハイライト表示し、エラー箇所にカーソルを移動させるかどうかを指定します。

デフォルト: | No
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | CheckerJumpAuto

関連トピック：

構文チェックユーティリティ


動作環境 動作設定 未使用の式に対するチェック処理

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > 未使用の式に対するチェック処理

未使用の式に対するチェック処理

使用していない式が見つかった場合、構文チェッカーの動作を定義します。選択可能な動作タイプは以下の通りです。

  • O=ダイアログを開く …… 従来の確認用ダイアログボックスを開きます。

  • E=全て削除 …… 確証ダイアログを表示することなく、使用していない全ての式を削除します。プログラムが読出し専用モードの場合、使用していない式はスキップされます。

  • S=全てスキップ …… 使用していない式はスキップされます。

デフォルト: | O=ダイアログを開く
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | CheckerUnusedExp

関連トピック：

すべての未使用の式を削除するには


動作環境 動作設定 WindowsXPテーマ

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > Windows XP のテーマを使用

Windows XP のテーマを使用

有効な値：Yes,No

この設定は、OSが WindowsXP の時のみ有効です。

  • Yes …… コントロールの［スタイル］特性が「W=Windows」に設定されている場合、Windows XP のテーマを使用して表示します。

  • No …… ［コントロール特性］の設定内容に関わらずテーマは使用されません。

注意：

  • OSのThemesサービスが実行されており、［画面のプロパティ］で「Windows XPスタイル」が設定されている場合この設定が有効になります。

  • 以下のコントロールには影響しません。

  • スタティック

  • ライン

  • サブフォーム

  • イメージ

  • OLE

デフォルト: | Yes
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | UseWindowsXPThemes


動作環境 動作設定 ロジックユニット自動作成

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > ロジックユニットの自動作成

ロジックユニットの自動作成

有効な値：N=なし,T=タスク,R=レコード,A=タスクとレコード

この設定は、プログラムを新規作成した時に、自動的にタスク前／後、レコード前／後などのデフォルトのロジックユニットを作成するかどうかを指定します。

  • N=なし …… [ロジック]エディタには、何も定義されません。

  • T=タスク …… [ロジック]エディタには、タスク前／後が定義されます。

  • R=レコード …… [ロジック]エディタには、レコード前／後が定義されます。

  • A=タスクとレコード …… [ロジック]エディタには、タスク前／後とレコード前／後が定義されます。

デフォルト: | N=なし
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | AutoCreateTaskLogicUnits

関連トピック：

タスク作成時にタスクレベルのロジックユニットを自動的に作成するようにするには

タスク作成時にロジックユニットが作成されないようにするには


動作環境 動作設定 最近のプロジェクト数

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > 最近のプロジェクト数

最近のプロジェクト数

有効な値：99までの数値

この設定は、最近開いたプロジェクトの履歴を保存する数を指定します。

最大「99」まで指定できます。

デフォルト: | 4
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | NumberOfRecentProjects


動作環境 動作設定 使用コンポーネント

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > 使用コンポーネント

使用コンポーネント

有効な値：C=キャビネットファイル,P=プロジェクト

この設定は、コンポーネントをキャビネットファイルで呼び出すか、プロジェクトファイルで呼び出すかを指定します。ファイルの指定は、コンポーネント特性に設定された値が使用されます。開発エンジンでのみ有効です。

  • C=キャビネットファイル ………コンポーネントをキャビネットファイルで呼び出します。

  • P=プロジェクトファイル ………コンポーネントをプロジェクトファイルで呼び出します。

アプリケーションを配布する場合、キャビネットファイルとしてコンポーネントを配布する方法がコンパクトで安全です。

しかし、コンポーネントを作成したりテストする場合は、プロジェクトファイルで実行させた方が便利です。この設定により、コンポーネントを迅速に差し替える場合に、キャビネットファイルを再作成しないで動作の違いを確認することができます。また、プロジェクトファイルを使用している場合、デバッガを使用してコンポーネントの内容を確認することができます。

デフォルト: | C=キャビネットファイル
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | OpenComponentsUsing

関連トピック：

プロジェクトファイルをコンポーネントとしてアプリケーションを開発するには


動作環境 動作設定 デフォルトソース

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > デフォルトソースディレクトリ

デフォルトソースディレクトリ

有効な値：文字列（ディレクトリ名）

プロジェクトのソースファイルは、プロジェクトディレクトリ内のサブディレクトリに作成されます。

この設定は、ソースファイル用のサブディレクトリの名前を指定するものです。プロジェクトが作成された場合、ソースサブディレクトリ名はプロジェクトファイルに保持されます。この設定の値を変更しても、作成されたプロジェクトには影響しません。

ソースファイルは、ソースサブディレクトリ内に保持されて処理されます。

例えば、サブディレクトリ名がMAGIC.INIファイルで「SRC」と設定され、C:\Apps\ ディレクトリにプロジェクト「ABC」が作成された場合、以下のようになります。

  • プロジェクトディレクトリ …… C:\Apps\ABC

  • プロジェクトファイル …… C:\Apps\ABC\ABC.edp

  • ソースサブディレクトリ …… C:\Apps\ABC\SRC\

  • XMLファイルの作成ディレクトリ …… C:\Apps\ABC\SRC\

デフォルト: | Source
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | DefaultSourceDir

関連トピック：

プロジェクトのソースファイルの格納場所を変更するには


動作環境 動作設定 デフォルト出力

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > デフォルト出力ディレクトリ

デフォルト出力ディレクトリ

有効な値：文字列（ディレクトリ名）

この設定は、リポジトリ出力を行なう際の出力先のサブディレクトリのデフォルト値を指定します。例えば、「EXP」と指定した場合、出力先は「'プロジェクトのフォルダ'\EXP」となります。

プロジェクトが作成された場合、デフォルト出力ディレクトリの名前はプロジェクトファイルに保持されます。この設定の値を変更しても、作成されたプロジェクトには影響しません。

デフォルト: | Exports
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | DefaultExportsDir


動作環境 動作設定 開発エンジン開始モード

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > 開発エンジン開始モード

開発エンジン開始モード （デフォルト：）

有効な値：W,E,R

開発エンジンが起動した時に最初に表示するウィンドウを指定します。

  • W=ウェルカムダイアログを表示 …… Magic xpa Studio用のウェルカムダイアログが表示されます。ここには、最近オープンしたプロジェクトが一覧表示されます。このウィンドウからプロジェクトを選択したり、新規作成を実行したりすることができます。

  • E=空のダイアログを表示 …… ウェルカムダイアログは表示されず、Magic xpaのMDIが表示されます。

  • R=最近使ったプロジェクトを開く …… 直近でオープンしたプロジェクトがオープンされます。

デフォルト: | W=ウェルカムダイアログを表示
変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | StudioStartupMode


動作環境 動作設定 テキスト形式互換

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > テキスト形式互換

テキスト形式互換 （デフォルト：No）

有効な値：Yes,No

この欄は、過去のバージョンとの互換性のために用意されています。

  • Yes …… V5.xでの[エディット]コントロールの複数行テキストは、拡張ウィンドウ内でEnterキーを押下した時、[CR]，[LF]コードの挿入により改行を実現するのではなく、行末まで空白を埋めることで、見かけ上の複数行編集表示を実現していました。
    つまり、項目内のデータは、実際のテキストと、編集ウィンドウのサイズに整形するための空白とから成っていました。このような編集方法を互換性維持のために使用する必要がある時に、このパラメータを[Yes]に設定します。

  • No …… 複数行を許可したエディットコントロールの拡張ウィンドウ内でEnterキーを押下すると、[CR]，[LF]のコードがテキストに挿入され、次行へ移動します。Ver6以降では、これが標準の方法です。

デフォルト: | No
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | MLETextbaseCompatible


動作環境 動作設定 プリントキューの区切り文字

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > プリントキューの区切り文字

プリントキューの区切り文字

有効な値：任意の文字

MAGIC.INI のプリンターキュー定義中の区切り文字を指定します。

デフォルト: | /
変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | PrintQueueDelimit


動作環境 動作設定 印刷中断許可

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > 印刷中断許可

印刷中断許可

有効な値：任意の文字

Yesに設定すると、印刷のキャンセルができるようになります。

デフォルト: | Yes
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | PrintCancel


動作環境 動作設定 プッシュボタン用イメージ数

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > プッシュボタン用イメージ数

プッシュボタン用イメージ数

この設定は、アプリケーションに定義されているイメージプッシュボタンに含まれているイメージ数を指定します。この設定には以下のオプションがあります。

  • 4 …… プッシュボタンは4つのイメージ（パーク、押下、無効、通常）を持ちます。

  • 6 …… プッシュボタンは6つのイメージ（パーク、押下、無効、通常､ホットトラック、デフォルトボタン）を持ちます。

  • ホットトラック …… マウスがボタン上にある状態

  • デフォルトボタン …… プッシュボタンがフォームのデフォルトボタンと設定されている状態

この設定は､GUI表示フォームとリッチクライアント表示フォームのみ有効です。

同じMagic.iniファイルを異なるアプリケーションで使用している場合、アプリケーションのすべてが同じイメージ数で表示させるようにするか、メインプログラムのタスク前でIniput関数を使用して切り替えるようにする必要があります。

デフォルト: | 6
変更の反映: | 即時： すでに表示されているウィンドウに対しては変更されません。パラメータの変更後に表示されたウィンドウのみ変更されます。
MAGIC.INIおよびコマンドライン名: | PBImagesNumber


動作環境 動作設定 デフォルトタスクタイプ

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > デフォルトのタスクタイプ

デフォルトのタスクタイプ

この設定は､デフォルトのタスクタイプを指定します。

タスクを新規作成する場合、ここで指定されたタイプがデフォルトのタスクとなります。

オプションは以下の通りです（ショートカットの文字は、Magic.iniファイル内で指定される値になります)。

  • O=オンライン …… RIA Edition の場合は、表示されません。

  • B=バッチ

  • C=リッチクライアント

デフォルト: | O=オンライン
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | DefaultTaskType

関連トピック：

タスクタイプのデフォルト値を変更するには


動作環境 動作設定 親タスクで起動されたリッチクライアントタスクを閉じる

ホーム > リファレンスガイド > 設定 > 動作環境 > ［動作設定］タブ > 親タスクをアクティブにすると子（RC）タスクを閉じる

親タスクをアクティブにすると子（RC）タスクを閉じる

親タスクのウィンドウをクリックした場合に、子タスクのウィンドウを自動的に閉じるようにするかどうかを指定します。

  • No …… タスクウィンドウは自動的に閉じません。呼び出されたタスクと親タスクは開いたままになります。

  • Yes …… 親タスクのウィンドウをクリックすると、現在のタスクは自動的に閉じます。

現在のタスクは、次の場合は閉じません。

  • タスクが並行実行の場合

  • MDIウィンドウの領域やメニューをクリックした場合

  • サブフォーム上でタスクが実行している状態で、親の領域をクリックした場合

  • 親のSDIメニューをクリックした場合

デフォルト: | No
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | RCCloseTaskOnParent


動作環境 国別指定

ホーム > リファレンスガイド > 設定 > 動作環境 > ［国別設定］タブ

[国別設定]タブ

［国別設定］タブには、以下の設定項目が含まれています。

日付タイプ

３桁区切文字

小数点

日付区切文字

時刻区切文字

外部コードページ

IMEの初期入力状態

IMEを自動的にオフ


動作環境 国別設定 日付タイプ

ホーム > リファレンスガイド > 設定 > 動作環境 > ［国別設定］タブ > 日付タイプ

日付タイプ

有効な値: 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

モバイル仕様：

モバイル環境ではサポートされません。各デバイスの日付仕様が使用されます。

デフォルト: | J=日本
変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | DateMode

関連トピック：

アプリケーションを別の言語用に変換するには


動作環境 国別設定 3桁区切り文字

ホーム > リファレンスガイド > 設定 > 動作環境 > ［国別設定］タブ > ３桁区切文字

３桁区切文字

数値型の項目に使用される区切文字を指定します。ここで指定した文字は、実行モード時に使用されます。

開発モードでは、この設定にかかわらず、3 桁区切文字としてはカンマが使用されます。

デフォルト: | ,(カンマ)
変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | ThousandSeparator


動作環境 国別設定 小数点

ホーム > リファレンスガイド > 設定 > 動作環境 > ［国別設定］タブ > 小数点

小数点

数値型の項目の整数部と小数部を分ける区切文字を指定します。ここで指定した文字は、実行モード時に使用されます。

開発モードでは、この欄の設定にかかわらず、小数点としてはピリオドが使用されます。

モバイル仕様：

Android では、数値キーボードで小数点としてカンマをサポートしないため、ピリオドを使用する必要があります。数値が入力された後で、Magic xpaはコンマとして小数点を自動的に表示します。

デフォルト: | .（ピリオド）
変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | DecimalSeparator


動作環境 国別設定 日付区切文字

ホーム > リファレンスガイド > 設定 > 動作環境 > ［国別設定］タブ > 日付区切文字

日付区切文字

日付型の項目の月、日、年を分ける区切文字を指定します。ここで指定した文字は、実行モード時に使用されます。日付の表示順は、前述の[日付モード]欄で指定できます。

開発モードでは、この欄の設定にかかわらず、日付区切文字としては、スラッシュ（/）が使用されます。

デフォルト: | /
変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | DateSeparator


動作環境 国別設定 時刻区切り文字

ホーム > リファレンスガイド > 設定 > 動作環境 > ［国別設定］タブ > 時刻区切文字

時刻区切文字

時刻型の項目の時間、分、秒を分ける区切文字を指定します。ここで指定した文字は、実行モード時に使用されます。

開発モードでは、この欄の設定にかかわらず、時刻区切文字としてはコロンが使用されます。

デフォルト: | :
変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | TimeSeparator


動作環境 国別設定 外部コードページ

ホーム > リファレンスガイド > 設定 > 動作環境 > ［国別設定］タブ > 外部コードページ

外部コードページ

この設定は、外部データ変換で使用されるコードページを指定します。JavaやCOM、DLL、Webサービスとのインタフェースで使用されます。

何も指定されていない場合、Magic xpaはシステムのデフォルトコードページを使用します。CodePage関数を使用して変更することもできます。外部コードページはコンテキストに依存します。

デフォルト: | 932
変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | ExternalCodePage

関連トピック：

ANSIをUnicodeに変換するためのコードページを指定するには


動作環境 国別設定 IMEの初期入力状態

ホーム > リファレンスガイド > 設定 > 動作環境 > ［国別設定］タブ > IMEの初期入力状態

IMEの初期入力状態

有効な値：　N=無効、Y=有効、R=ローマ字、K=カナ

IME を起動する場合の初期入力方式を指定します。

  • N=無効 …… IME の初期入力方式の設定を無視します。

  • Y=有効 …… 現在IME で設定されている初期入力方式をそのまま使用します。

  • R=ローマ字 …… IME の初期入力方式をローマ字として起動します。

  • K=カナ …… IME の初期入力方式をかなとして起動します。

デフォルト: | N=無効
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | NewIMECtrl


動作環境 国別設定 IMEを自動的にオフ

ホーム > リファレンスガイド > 設定 > 動作環境 > ［国別設定］タブ > IMEを自動的にオフ

IMEを自動的にオフ

有効な値：　Yes、No

任意に起動したIMEの状態を、項目間移動時に引き継ぐか否かを決定します。

  • Yes …… 状態を引き継がず、IMEをオフの状態にします。

  • No …… 状態を引き継ぎます。

デフォルト: | No
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | IMEAutoOff


動作環境 外部参照

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ

[外部参照]タブ

[外部参照]タブには、以下の設定項目が含まれています。

CONSTファイル

ヘルプファイル

開発用基本色定義ファイル

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

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

開発用フォント定義ファイル

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

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

開発用キーボード割付ファイル

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

HTMLスタイルファイル

プリンタ属性ファイル

セキュリティファイル

OEMからANSIへの変換ファイル

照合順序ファイル

デフォルト言語

チェックメッセージファイル

チェック結果の出力ファイル

ドロップデータサポート・ユーザフォーマット

コマンドプロセッサ

HTTP Proxy :アドレス:ポート

HTTP タイムアウト

データ出力用HTML テンプレート

データ出力用XML テンプレート

SOAPクライアントモジュールのパス

SOAPSpyのアドレス

メール接続タイムアウト

メール処理タイムアウト

SNMP データベース接続しきい値

LDAP アドレス：ポート番号

LDAP 接続文字列

LDAP ドメインコンテキスト

LDAP タイムアウト

SSL CA 証明書ファイル

SSL クライアント証明書ファイル

SSL クライアント証明書パスワード

差分ツールコマンドライン


動作環境 外部参照 CONSTファイル

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > CONSTファイル

CONSTファイル

Constファイルの（パス名を含んだ）ファイル名を指定します。

Constファイルには、Magic xpaのユーザインタフェースや言語に関する情報が格納されています。

デフォルト: | SUPPORT\mgconstw.jpn
変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | ConstFile


動作環境 外部参照 ヘルプファイル

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > ヘルプファイル

ヘルプファイル

Magicシステム用のヘルプファイルを指定します。アプリケーションが定義するヘルプではありません。

デフォルト: | SUPPORT\mghelpw.chm
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | HelpFile

注意：

ここで定義されたヘルプファイルを（アップデート処理なので）置き換えた場合、Magic xpaを再起動した時点で置き換えられたファイルを読み込みます。


動作環境 外部参照 開発用基本色定義ファイル

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > 開発用基本色定義ファイル

開発用基本色定義ファイル

Magic xpaの開発モード時に使用される基本色定義が保存されるファイルの場所とファイル名を指定します。

この項目からズームすると、［基本色定義］テーブルが開き、基本色定義ファイルに格納されている内容が表示されます。

開発用の［基本色定義］テーブルは、追加したり名前を変更することはできません。色の変更のみ可能です。

デフォルト: | SUPPORT\clr_std.jpn
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | StudioColorDefinitionFile

関連トピック：

使用するフォントや色を変更するには


動作環境 外部参照 AP基本色定義

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > アプリケーション用基本色定義ファイル

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

実行するアプリケーションに定義する基本色定義が保存されるファイルの場所とファイル名を指定します。

この項目からズームすると、［基本色定義］テーブルが開き、基本色定義ファイルに格納されている内容が表示されます。

アプリケーション用の［基本色定義］テーブルは、エントリを追加したり名前を変更することができます。

デフォルト: | SUPPORT\clr_rnt.jpn
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | RuntimeApplicationColorDefinitionFile


動作環境 外部参照 内部用基本色定義

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > 内部用基本色定義ファイル

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

［動作環境］ダイアログや［範囲／位置付］ウィンドウのように、実行時に使用されるMagic xpaの内部ウィンドウに影響する基本色定義のみが含まれているファイルの場所とファイル名を指定します。

この項目からズームすると、［基本色定義］テーブルが開き、基本色定義ファイルに格納されている内容が表示されます。

内部用の［基本色定義］テーブルは、追加したり名前を変更することはできません。色の変更のみ可能です。

デフォルト: | SUPPORT\clr_int.jpn
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | RuntimeInternalColorDefinitionFile


動作環境 外部参照 開発用フォント定義ファイル

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > 開発用フォント定義ファイル

開発用フォント定義ファイル

Magic xpaの開発モード時に使用されるフォント定義が保存されるファイルの場所とファイル名を指定します。

この項目からズームすると、［フォント定義］テーブルが開き、フォント定義ファイルに格納されている内容が表示されます。

開発用の［フォント定義］テーブルは、追加したり名前を変更することはできません。フォントの変更のみ可能です。

デフォルト: | SUPPORT\fnt_std.jpn
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | StudioFontDefinitionFile

関連トピック：

使用するフォントや色を変更するには


動作環境 外部参照 APフォント定義

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > アプリケーション用フォント定義ファイル

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

実行するアプリケーションに定義するフォント定義が保存されるファイルの場所とファイル名を指定します。

この項目からズームすると、［フォント定義］テーブルが開き、フォント定義ファイルに格納されている内容が表示されます。

アプリケーション用の［フォント定義］テーブルは、エントリを追加したり名前を変更することができます。

デフォルト: | SUPPORT\fnt_rnt.jpn
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | RuntimeApplicationFontDefinitionFile


動作環境 外部参照 内部用フォント定義

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > 内部用フォント定義ファイル

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

［動作環境］ダイアログや［範囲／位置付］ウィンドウのように、実行時に使用されるMagic xpaの内部ウィンドウに影響するフォント定義のみが含まれているファイルの場所とファイル名を指定します。

この項目からズームすると、［フォント定義］テーブルが開き、フォント定義ファイルに格納されている内容が表示されます。

内部用の［フォント定義］テーブルは、追加したり名前を変更することはできません。フォントの変更のみ可能です。

デフォルト: | SUPPORT\fnt_int.jpn
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | RuntimeInternalFontDefinitionFile


動作環境 外部参照 開発用キーボード割付ファイル

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > 開発用キーボード割付ファイル

開発用キーボード割付ファイル

Magic xpaの開発モード時に使用されるキーボード割付定義が保存されるファイルの場所とファイル名を指定します。

この項目からズームすると、［キーボード割付］テーブルが開き、キーボード割付ファイルに格納されている内容が表示されます。

デフォルト: | SUPPORT\act_std.jpn
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | StudioKeyboardMappingFile


動作環境 外部参照 実行用キーボード割付

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > 実行用キーボード割付ファイル

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

Magic xpaの実行モード時に使用されるキーボード割付定義が保存されるファイルの場所とファイル名を指定します。

この項目からズームすると、［キーボード割付］テーブルが開き、キーボード割付ファイルに格納されている内容が表示されます。

デフォルト: | SUPPORT\act_rnt.jpn
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | RuntimeKeyboardMappingFile


動作環境 外部参照 HTMLスタイルファイル

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > HTMLスタイルファイル

HTMLスタイルファイル

フレームセット形式フォームで使用するHTMLスタイルテンプレートが保存されているファイルの場所とファイル名を指定します。

デフォルト: | SUPPORT\html_std.jpn
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | HTMLStyles


動作環境 外部参照 プリンタ属性ファイル

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > プリンタ属性ファイル

プリンタ属性ファイル

論理的なプリンタ属性が格納されているファイルの場所と名前を指定します。

プリンタ属性は論理オブジェクトであり、Magic xpaの出力フォームに関連する処理で使用されます。フォームの出力時、このオブジェクトにより必要な情報がプリンタ制御コードに変換されます。プリンタ属性ファイルには、プリンタコマンドファイル中の実際のエスケープコードと論理属性との関係を定義します。

ここからズームすると、［プリンタ属性］テーブルが開き、プリンタ属性ファイルが表示されます。

デフォルト: | SUPPORT\html_std.jpn
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | PrintAttr


動作環境 外部参照 セキュリティファイル

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > セキュリティファイル

セキュリティファイル

ファイルが指定されていない場合や存在しない場合、Magic xpaによりデフォルトのファイルが作成されます。

ここには、以下の情報が格納されているファイルの場所を名前を指定します。

  • 各ユーザのユーザID 、パスワードおよび権利

  • ユーザグループおよび権利

  • シークレット名

セキュリティファイルの内容は暗号化され、不法な第三者によるシステムへの進入を防止できます。Magic xpaのセキュリティシステムについては、「認証システム」を参照してください。

注意：

  • Magicエンジンがバックグラウンドで実行されている場合、この値の変更内容やセキュリティファイルの変更内容は、エンジンを再起動した時点で有効になります。

  • マルチユーザ環境の場合は、以下の点に注意してください。

  • セキュリティファイルは共有ディレクトリに置き、各ユーザに同じ情報が提供されるようにしてください。

  • マルチユーザ環境での同時編集（編集と読込との同時実行も含む）は想定されていないため、編集は独立した環境で行うようにしてください。

  • 同時編集を行っている場合、「セキュリティファイルが置き換わっています.もう一度ログインしてください.」というメッセージが表示され、ログオンダイアログが表示されることがあります。

デフォルト: | SUPPORT\usr_std.jpn
変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | UsersPath


動作環境 外部参照 OEMからANSI変換ファイル

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > OEMからANSIへの変換ファイル

OEMからANSIへの変換ファイル

ここには、Magic xpa内部の文字シンボルと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


動作環境 外部参照 デフォルト言語

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > デフォルト言語

デフォルト言語

有効な値: 空白または［言語］テーブルに登録されている言語

多言語表示サポート環境で、Magic xpa起動時に使用する言語を設定します。

ここからズームして、言語一覧から言語を選択することができます。

変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | StartingLanguage

関連トピック：

アプリケーションを別の言語用に変換するには


動作環境 外部参照 チェッカー用ファイル

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > チェックメッセージファイル

チェックメッセージファイル

構文チェックユーティリティ用のメッセージファイル（Chk_std.dat）のファイル名とパス名を指定します。

このファイルの内容は、［チェックメッセージ］テーブルに表示されます。

注意：

メッセージ内容は、Mgconstw ファイルで管理されており、メッセージ区分のみをこのファイルで管理します。

デフォルト: | SUPPORT\chk_std.jpn
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | CheckerMessageTable


動作環境 外部参照 チェック結果の出力ファイル

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > チェック結果の出力ファイル

チェック結果の出力ファイル

この設定は、構文チェックの結果をファイルに出力するかどうかを指定します。

構文チェックによるエラーは、個々に設定されたファイルに書き込まれます。チェックを実行する度に、ファイルは上書きされます。

ファイルが設定されない場合や、ファイルにアクセスできない場合、結果はファイルに保存されません。

変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | CheckerOutputFile


動作環境 外部参照 ドロップデータユーザフォーマット

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > ドロップデータサポート・ユーザフォーマット

ドロップデータサポート・ユーザフォーマット

ドラッグ&ドロップ関数でユーザ定義フォーマットのデータを扱う場合、ここにフォーマット名を指定する必要があります。この設定は、カンマ区切りで複数指定できます。

例えば、ユーザ定義フォーマットが ABC と EFG の場合、「ABC,EFG」 と指定します。

この設定は、リッチクライアントタスクでは使用されません。指定された値でも無視されます。

デフォルト: | なし
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | DropUserFormats

関連トピック：

外部アプリケーションがデータを取得できないようにMagic xpa内だけでドラッグ＆ドロップを許可するには


動作環境 外部参照 コマンドプロセッサ

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > コマンドプロセッサ

コマンドプロセッサ

OS が使用するコマンドプロセッサの場所と名前を絶対パスを使用して指定します。これは［OS コマンド］の実行時に使用されます。

デフォルト値は、Magic xpaのインストール時にOSの内容に基づいて設定されます。

デフォルト: | OSに依存
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | CommandProcessor


動作環境 外部参照 HTTP Proxyアドレス

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > HTTP Proxy :アドレス:ポート

HTTP Proxy:アドレス:ポート

HTTPGet/HTTPPost 関数または、WSDLアシストや[コールWebサービスライト]処理コマンド及び[コールWebサービス]処理コマンドをProxyサーバを通して実行する場合は、この設定が必要です。

Proxy サーバのIPアドレスとポート番号を「アドレス:ポート番号」の形式で指定してください。

プロキシサーバが認証用にユーザIDとパスワードを必要とするな場合、以下のプロキシ設定文字列で指定することができます。

[username]:[password]@[Proxy Server IP\Host name]:[port number]

例：

myuser:mypass@10.1.1.1:8080

サポートされた認証スキーマ

 | HTTP関数 | コールWebサービス | コールWebサービスライト
基本認証 | ○ | ○ | ○
ダイジェスト認証 | ○ | ○ | ○
統合Windows認証 |  | ○ |

デフォルト: | なし
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | HTTPProxyAddress


動作環境 外部参照 HTTPタイムアウト

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > HTTP タイムアウト

HTTP タイムアウト

HTTPGet/HTTPPost 関数を実行する場合のタイムアウトを秒数で指定します。

「0」が指定された場合、2分になります。

この値はサーバとの通信中にリッチクライアントに送られて、クライアント/サーバ間のHTTPリクエストのタイムアウト（すなわち、リッチクライアントがサーバからの反応を待つ時間）としても使用されます。リッチクライアントがサーバからの応答のために待つ最大値は5分です。

注意：

ネットワーク回復メカニズムが有効な場合（クライアントネットワーク復旧間隔 ＞0)、クライアントはクライアントネットワーク復旧間隔の値の1/3の回数をリトライします。

この設定は、Magic xpaの内部のコンポーネントの間での内部接続に影響し、（未知のIPにアクセスしようとするような）OSとの通信には影響しません。

デフォルト: | 0
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | HTTPTimeout


動作環境 外部参照 データ出力HTMLテンプレート

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > データ出力用HTMLテンプレートファイル

データ出力用HTMLテンプレートファイル

データ出力ウィザードで HTML ファイルを作成する場合に使用するHTMLテンプレートファイルを指定します。

この設定が空白の場合、ユーザが指定した最後の値が使用されます。

デフォルト: | なし
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | PrintDataHtmlTemplate


動作環境 外部参照 データ出力XMLテンプレート

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > データ出力用XMLテンプレートファイル

データ出力用XMLテンプレートファイル

データ出力ウィザードで XMLファイルを作成する場合に使用するXMLテンプレートファイルを指定します。

この設定が空白の場合、ユーザが指定した最後の値が使用されます。

デフォルト: | なし
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | PrintDataXmlTemplate


動作環境 外部参照 SOAPクライアントモジュールのパス

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > SOAPクライアントモジュールのパス

SOAPクライアントモジュールのパス

Webサービスクライアントモジュールを保存するパスを指定します。

論理名やシークレット名を使用できます。文字列の長さは、最大260文字です。

変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | SoapClientModulesPath


動作環境 外部参照 SOAPスパイのアドレス

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > SOAP Spyのアドレス

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 のインストール先（xpaのインストールフォルダと並行するSSJフォルダ）のbinサブフォルダ内のSoapSpy.batを実行することで起動されます。

  • ここにアドレスが設定された場合、SOAP Spyが実行していない状態で[コールWebサービス]処理コマンドやWebサービス コンポーネントジェネレータを実行するとエラーが発生します。

  • SOAP Spyは、日本語データに対応していません。

  • ［コールWebサービスライト］処理コマンドには対応していません。

変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | SoapSpyAddress


動作環境 外部参照 メール接続タイムアウト

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > メール接続タイムアウト

メール接続タイムアウト

有効な値：秒数

MailConnect関数でメールサーバに接続する場合のタイムアウトを秒数で指定します。指定した秒数以内に接続できない場合は、MailConnect関数は、エラーコードを返します。

0 の場合は、5秒です。

デフォルト: | 0
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | MailConnectionTimeout


動作環境 外部参照 メール処理タイムアウト

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > メール処理タイムアウト

メール処理タイムアウト

有効な値：秒数

メール関数が処理する場合のタイムアウトを秒数で指定します。指定した秒数以内に処理が完了しない場合、メール関数はエラーコードを返します。

デフォルト: | 0
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | MailOperationTimeout


動作環境 外部参照 SNMPデータベース接続しきい値

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > SNMP データベース接続しきい値

SNMP データベース接続しきい値

有効な値：数値

Magic xpaがトラップメッセージを送信する前に、DBMSの最大接続数の設定のように、DBMSに対して許可された接続数を超過する割合をパーセントで指定します。

「0」以外の値が特定のDBMS用に許容する最大接続数として存在する場合、アプリケーションサーバはそのDBMSに対するオープン接続数がその値のN%を上回る場合に自動的にトラップを送信します。

確立した接続数が新しいピーク（この設定で選択される接続数のN%を上回った後に)に達する度に、新しいトラップが送信されます。

例えば、最大接続数が「10」と設定されたDBMSを使用して、[SNMPデータベース接続しきい値]を「50」と設定した場合、DBMSとの5接続目でSNMPメッセージが送信されます。

デフォルト: | 0
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | DatabaseConnectionsUtilizationThreshold


動作環境 外部参照 LDAPアドレス

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > LDAP アドレス：ポート番号

LDAP アドレス：ポート番号

LDAPサーバのIPアドレスとポート番号を指定します。

例： 127.1.1.0:389

デフォルト: | なし
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | LdapAddress


動作環境 外部参照 LDAP接続文字列

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > LDAP 接続文字列

LDAP 接続文字列

LDAPサーバへの接続文字列を指定します。LDAPサーバによってこの設定は異なります。

Magic xpa がLDAPサーバに接続する際、DN(Distinguished Name)とパスワードが送られます。

ここには、LDAPサーバに対してユーザ認証を行う際のユーザ情報を検索するためのUserDNを指定します。接続文字列にはユーザ名が必要となります。 この場合、ユーザ名を直接指定するか、$USER$ という特殊な論理名を指定することができます。Magic xpaは、この名前をログイン時のユーザIDに変換します。

例えば、iPlanet でユーザグループの登録のために接続する場合、以下のように指定します。

uid=$USER$,ou=people,dc=mydomain

パスワードは、ログオンダイアログやLogon関数で指定された値が送られます。

以下の書式で指定することで、user@domain（Active Directoryで「ユーザログオン名」として指定するID）で認証させることができます。

$USER$@ドメイン名

この書式をサポートするLDAPサーバに対してのみ接続することができます。

この場合、区切り文字として "~~" を使用することで、UserDNと一緒に使用することができます。

例：$USER$@domain.com~~CN=user, OU=users, DC=mycompany, DC=com.

ユーザIDとパスワードには、LDAP_USERとLDAP_PASSの2つのシークレット名を使用することができます。接続文字列内の $USER$ エイリアスは、実行時にこの2つのシークレット名に置き換えられます。 また、LDAP関数内で、%LDAP_USER%と%LDAP_PASS%と指定することで利用できます。

注意：

  • 「user@domain」の指定がない場合はcnを使用し、指定された場合はuserPrincipalNameを使用して認証されます。

  • ユーザ認証の情報は、平文でLDAPサーバに渡されます。

  • 書式は、接続するLDAPサーバによって異なります。

デフォルト: | なし
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | LdapConnectionString


動作環境 外部参照 LDAPドメインコンテキスト

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > LDAP ドメインコンテキスト

LDAP ドメインコンテキスト

LDAPサーバに登録されているグループ情報を検索する場合に必要な BaseDNを指定します。

例えば、iPlanet のディレクトリサーバに接続する場合、以下のように指定します。

o=groups, dc=mydomain

デフォルト: | なし
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | LdapDomainContext

参考：

書式は、接続するLDAPサーバによって異なります。


動作環境 外部参照 LDAPタイムアウト

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > LDAP タイムアウト

LDAP タイムアウト

LDAPサーバにアクセスする際のタイムアウト値を秒数で指定します。 指定時間内に、LDAP サーバからの応答を受信できない場合、エラーメッセージが表示されます。

デフォルト: | 0
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | LdapTimeout


動作環境 外部参照 SSLCA証明書ファイル

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > SSL CA 証明書ファイル

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 クライアント証明書ファイル

SSL クライアント証明書ファイル

PKCS12形式証明書ファイル（*.pfx）を指定します。選択されたクライアント証明書は、 コールWebサービスやHTTPの呼び出しの際に割り当てられます。

アプリケーションのオープン時に、以下のクライアント証明書エラーがステータスバーに表示される場合があります。

  • クライアント証明ファイルが存在しません.

  • クライアント証明ファイルが PKCS12形式ではありません.

  • クライアント証明ファイルを使用できません-パスワードが正しくありません.

  • クライアント証明ファイルに、CA証明がありません.

  • クライアント証明ファイルはすでに存在しています.

ClientCertificateDiscard 関数は、実行時に証明書を破棄します。

実行モードから開発モードに切り換えると、アプリケーションはWebサービスやHTTPSの呼び出しの際に、証明書を再登録します。

デフォルト: | なし
変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | SSLClientCertificateFile


動作環境 外部参照 SSLクライアント証明書パスワード

ホーム > リファレンスガイド > 設定 > 動作環境 > ［外部参照］タブ > 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 xpaがMRB に接続して、アプリケーションサーバとして動作するかどうかを指定します。

  • Yes …… Magic xpaがアプリケーションサーバとしてMRBとの通信処理を行います。したがって、プログラムを実行するためのリクエストを受け取ることができます。MRBが起動されていない場合、定期的に警告ダイアログが表示されます。

  • No …… Magic xpaは、MRBとの通信処理を行いません。このため、クライアントからのリクエストを受け取ることができません。

一時的にMRBからのリクエストを受け付けないようにするには、RqRtBlock関数とRqRtResume関数を使用します。

デフォルト: | インストーラで設定
変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | ActivateRequestsServer

関連トピック：

実行エンジンがMRB のリクエストを受けないようするするには


動作環境 サーバ メッセージサーバ

ホーム > リファレンスガイド > 設定 > 動作環境 > ［アプリケーションサーバ］タブ > メッセージサーバ

メッセージサーバ

有効値：空白または[サーバ]テーブルに登録されているサーバ

[アプリケーションサーバとして動作]欄を「Yes」とした場合、ここにMRBが動作するサーバを指定します。ここで指定したサーバのMRB にMagic xpaが接続され、Magic xpaがアプリケーションサーバとして動作することになります。

汎用メッセージレイヤと呼ばれる拡張されたクライアント/サーバインタフェースにより、各種の異なるネットワークに接続しアプリケーションを呼び出すなど、大変柔軟な構成が可能です。呼び出し側のクライアントは、汎用メッセージレイヤを利用することで、MRB などのメッセージサーバを介して、アプリケーションサーバを呼び出すことができます。

サーバタイプをJ2EEに指定したサーバを選択した場合、アプリケーションサーバはJ2EEサーバにリクエストを送ります（Mgreq.iniのMGSRVR05 を設定した場合と同じように動作します）。

デフォルト: | Default Broker
変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | MessagingServer


動作環境 サーバ HTTPリクエスタ

ホーム > リファレンスガイド > 設定 > 動作環境 > ［アプリケーションサーバ］タブ > HTTPリクエスタ

HTTPリクエスタ

有効な値：空白またはURL とMagicインターネットリクエスタモジュールの名前

URL とMagicインターネットリクエスタモジュールの名前を指定します。このURL を使用して、Magicインターネットリクエスタモジュールの名前と場所がプログラムに伝えられます。

デフォルトのHTTP リクエスタは、インストール時に設定されます。

デフォルト: | インストーラで設定
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | InternetDispatcherPath


動作環境 サーバ Webドキュメントパスの別名

ホーム > リファレンスガイド > 設定 > 動作環境 > ［アプリケーションサーバ］タブ > Webドキュメントパスの別名

Webドキュメントパスの別名

[Webドキュメントパス]のエイリアスを指定します。このエイリアスを使用して、インターネットサーバ上に一時ファイルが作成されます。エイリアスは、Web の全ての一時ファイルに対して追加され、Web サーバでは、このエイリアスを使用してアクセスが実行されます。

デフォルトのドキュメントパスの別名は、インストール時に設定されます。

デフォルト: | インストーラで設定
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | WebDocumentAlias


動作環境 サーバ Webドキュメントパス

ホーム > リファレンスガイド > 設定 > 動作環境 > ［アプリケーションサーバ］タブ > Webドキュメントパス

Webドキュメントパス

HTMLで使用するイメージ、Java 、ActiveX のデータが置かれているパスを指定します。パスは、実行時のWeb サーバのルートを基に指定します。

デフォルトのドキュメントパスは、インストール時に設定されます。

デフォルト: | インストーラで設定
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | WebDocumentPath


動作環境 サーバ リクエスタのタイムアウト

ホーム > リファレンスガイド > 設定 > 動作環境 > ［アプリケーションサーバ］タブ > リクエスタのタイムアウト

リクエスタのタイムアウト

リクエスタがタスク処理の終了を待つ最大秒数です。この時間を超えると、エラーメッセージが表示されます。

デフォルト設定の「0」の場合、タイムアウトは発生しません。

エンジンからのリモートコールが実行された場合、この設定はmgreq.iniファイルのRequesterTimeoutキーワードを上書きします。

デフォルト: | 0
変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | RequesterTimeout


動作環境 サーバ 最大並行リクエスト数

ホーム > リファレンスガイド > 設定 > 動作環境 > ［アプリケーションサーバ］タブ > 最大並行リクエスト数

最大並行リクエスト数

有効値：ライセンスユーザ数以下の値

アプリケーションサーバが作成することができるスレッドの最大数を制限することができます。スレッドの上限数は、ライセンスおよびマシンの能力によって制限されます。

デフォルトの「0」は、ライセンスサーバによって管理される、ライセンスの上限値までスレッドが立ち上がることを意味します。

「0」以外の数値を設定すると、その数値とライセンスの上限値を比較し、小さいほうの値が有効になります。

デフォルト: | 0
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | MaxConcurrentRequests

関連トピック：

最大並行ユーザ数

Magic xpa が同時に処理するリクエスト数を制限するには


動作環境 サーバ 最大並行ユーザ数

ホーム > リファレンスガイド > 設定 > 動作環境 > ［アプリケーションサーバ］タブ > 最大並行ユーザ数

最大並行ユーザ数

有効値：ライセンスユーザ数以下の値

リッチクライアントアプリケーションにアクセスできるユーザ数の最大数を指定します。リッチクライアント用のライセンスを使用してバックグラウンドモードでエンジンを実行させた場合にのみ有効になります。

デフォルトの「0」の場合、使用するライセンスで有効な最大ユーザ数をチェックアウトします。

値が「-1」の場合、サーバはライセンスで有効なユーザ数分をチェックアウトしません。サーバでRIAプログラムが実行されていない場合は、ライセンスを他の処理用にで利用することができます。

「0」以外の数値を設定すると、指定されたユーザ数までリッチクライアントアプリケーションにアクセスすることができます。アプリケーションサーバが起動された時点でここに指定された数だけライセンスが消費されます。使用するライセンス数以上の値を指定した場合は、ライセンス数が最大値となります。

すでに別のアプリケーション用にライセンスを消費している状態で、合計のユーザ数がライセンス数を越えるユーザ数を指定して起動させた場合もエラーが発生します。

デフォルト: | -1～99999
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | MaxConcurrentUsers

関連トピック：

最大並行リクエスト数


動作環境 サーバ ロードバランシング優先度

ホーム > リファレンスガイド > 設定 > 動作環境 > ［アプリケーションサーバ］タブ > ロードバランシングの優先度

ロードバランシングの優先度

有効値：1から5までの数値

MRBのロードバランシング機能におけるMagicエンジンの優先順位を定義します。

1から5までの数値を設定できます。5がもっとも優先度が高く、1が最も低くなります。リクエストは、優先度の高いアイドル状態のエンジンに送られます。

デフォルト: | 3
変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | LoadBalancingPriority

関連トピック：

LoadBalancing

ロードバランシングを実装するには


動作環境 サーバ Webオーサリングツール

ホーム > リファレンスガイド > 設定 > 動作環境 > ［アプリケーションサーバ］タブ > Webオーサリングツール

Webオーサリングツール

マージフォームの編集で使用する外部のWebオーサリングツールを指定します。

［フォーム］エディタでマージフォームのエントリにズームすると、[フォーム特性]ダイアログで指定したファイルがWebオーサリングツールで呼び出され、データ項目パレットが表示されます。WebオーサリングツールでOLEのドラッグアンドドロップがサポートされている場合、Magic xpaからテンプレートファイルにデータ項目を直接ドラッグ&ドロップしたり、コピー/貼り付けしたりすることができます。

デフォルト: | インストーラで設定
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | AuthoringToolPath


動作環境 サーバ コンテキスト非稼働タイムアウト

ホーム > リファレンスガイド > 設定 > 動作環境 > ［アプリケーションサーバ］タブ > コンテキスト非稼動タイムアウト

コンテキスト非稼動タイムアウト

サーバ側で保持されるコンテキスト情報はメモリリソースを必要とします。多くのシステムリソースを使用することで、たくさんのコンテキストを保持することになるサーバの負荷を軽減させるため、コンテキストにタイムアウトを設定することができます。

ユーザが起動したリッチクライアントプログラムが、非稼働状態になるまでMagicサーバとの接続状態を維持している時間を1/10秒単位で指定することができます。 コンテキストの非稼働状態とは、リッチタスクの実行中にクライアント/サーバ間のユーザ操作がない状態を意味しています。

コンテキスト非稼働タイムアウトに到達すると、コンテキストがサーバから削除されます。このようなタイムアウトを設定することで、廃棄されたコンテキストがサーバ上に蓄積されることを防止することができます。この時間内であれば、ネットワークが切断された状態になっていても接続状態を維持することができます。

値が「0」の場合、タイムアウトは発生しません。

RIAのプログラムがスタジオから起動されるときは、無限になります。

デフォルト: | 864000 (24時間)
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | ContextInactivityTimeout


動作環境 サーバ コンテキストのアンロードタイムアウト

ホーム > リファレンスガイド > 設定 > 動作環境 > ［アプリケーションサーバ］タブ > コンテキストのアンロードタイムアウト

コンテキストのアンロードタイムアウト

ブラウザは、現在のページから戻ったり、進めたり、ブラウザウィンドウを閉じることで、実行しているタスクを終了させることができます。これらのアクションは、コンテキストをペンディングモード（ブラウザがブラウザタスクのページに戻る場所）に移します。

ブラウザがブラウザタスクに戻ると、コンテキストが再読み込みされ、サーバ上に保持されていた情報はリフレッシュされ、エンドユーザはブラウザタスクを使用し続けることができます。

Webブラウザ側の操作（[戻る]、[進む]、別のURLなど）を使用して、タスクページが別のページに切り替えられた時のコンテキストのタイムアウト値を指定します。タイムアウト値を超えていない場合、前のページに戻ると、最後に配置されたコンテキストが再度読み込まれます。タイムアウト値を超えると、前のタスクページのコンテキストは終了します。

タイムアウト値は1/10秒単位で定義されます。「0」に設定された場合、タイムアウトの時間は設定されず、コンテキストは即終了します。

デフォルト: | 1200 (2分)
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | ContextUnloadTimeout


動作環境 サーバ BCサブバージョン

ホーム > リファレンスガイド > 設定 > 動作環境 > ［アプリケーションサーバ］タブ > ブラウザクライアントのサブバージョン

ブラウザクライアントのサブバージョン

ブラウザベースのプログラムにおいて使用するモジュールにおいて、Magic xpaが管理するサブバージョンを指定します。

この設定は文字列で[03]のように指定します。[03]と指定した場合、使用されるファイルは以下のようになります。

MGBCL100_03.CAB または MGBCL100_03S.CAB

この指定がない場合、Magic xpaに標準添付されているファイルが使用されます。

変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | BrowserClientSubVersion

注意

ブラウザクライアント機能は、利用できません。


動作環境 サーバ BC環境エラーURL

ホーム > リファレンスガイド > 設定 > 動作環境 > ［アプリケーションサーバ］タブ > ブラウザクライアント環境エラーURL

ブラウザクライアント環境エラーURL

ブラウザクライアントを実行する環境（.NETフレームワーク）がクライアントにインストールされていない場合に表示するエラーメッセージ用のページのURLを指定することができます。

デフォルト: | /Browser_Client_Tech_err.htm
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | BrowserClientTechnologyErr

注意

ブラウザクライアント機能は、利用できません。


動作環境 サーバ クライアントネットワーク復旧間隔

ホーム > リファレンスガイド > 設定 > 動作環境 > ［アプリケーションサーバ］タブ > クライアントネットワーク復旧間隔

クライアントネットワーク復旧間隔

注意

この設定は、サポートされなくなる可能性があります。

クライアントアプリケーションをナローバンドで実行する場合に有効です。

この値を指定すると、クライアントは、指定された時間で処理されなかったリクエストの復旧処理を試みます。復旧処理を無効にする場合は、「0」（デフォルト値）を指定してください。

  • インターネットリクエスタによって実行されているリクエストは、指定された時間で待機します。

  • インターネットリクエスタによって実行されたリクエストが存在しない（受け取らなかったか処理が失敗した）場合は、以下の回数分リトライされます。

  • RIAの場合 …… 3

デフォルト: | 0
変更の反映: | 次のセッションから
MAGIC.INIおよびコマンドライン名: | ClientNetworkRecoveryInterval


動作環境 サーバ BCキャッシュパス

ホーム > リファレンスガイド > 設定 > 動作環境 > ［アプリケーションサーバ］タブ > ブラウザクライアントのキャッシュパス

ブラウザクライアントのキャッシュパス

ブラウザクライアントのキャッシュ機能によって、サーバからクライアントまでのデータ送信最小限にし、クライアント側のページのXMLのロジックのセグメントをキャッシュすることで、ブラウザクライアントアプリケーションのパフォーマンスを改善します。

この設定には、エンジンがキャッシュファイルを作成する物理パスを指定します。

デフォルト: | インストーラで設定
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | CTLCacheFilesPath

注意

ブラウザクライアント機能は、利用できません。


動作環境 サーバ BCキャッシュエイリアス

ホーム > リファレンスガイド > 設定 > 動作環境 > ［アプリケーションサーバ］タブ > ブラウザクライアントのキャッシュエイリアス

ブラウザクライアントのキャッシュエイリアス

ブラウザクライアントの結果ページは、ブラウザクライアントがキャッシュしたファイルを参照するためのURLが必要です。

ここで、キャッシュパスのエイリアスを指定できます。

デフォルト: | インストーラで設定
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | CTLCacheFilesAlias

注意

ブラウザクライアント機能は、利用できません。


動作環境 サーバ リッチクライアントのキャッシュパス

ホーム > リファレンスガイド > 設定 > 動作環境 > ［アプリケーションサーバ］タブ > リッチクライアントキャッシュパス

リッチクライアントキャッシュパス

クライアント側のページのXMLロジックセグメントをキャッシュすることによって、サーバからクライアントへのデータ通信量を最小化し、リッチクライアントアプリケーションの性能を改善します。

ここには、キャッシュされたファイルを作成する物理パスを指定します。

注意

（基本色定義以外の）動作環境ファイルが異なる複数のリッチクライアントアプリケーションを同一サーバ上で実行させる場合は、異なるキャッシュパスを指定するようにしてください。

デフォルト: | インストーラで設定
変更の反映: | 即時
MAGIC.INIおよびコマンドライン名: | RIACacheFilesPath


基本色

ここには、３種類の［基本色定義］テーブルがあります。各テーブルの表示は、タブで切り替えることができます。

  • ［開発用基本色］テーブル …… 開発時のMagicウィンドウに影響する色のみが含まれています。開発者は、色を追加したり、名前を変更することはできません。色の設定を変更することだけが可能です。

  • ［内部用基本色］テーブル …… ［動作環境］ダイアログや［範囲／位置付］ウィンドウのように、実行時に使用されるMagic xpaの内部ウィンドウに影響する色のみが含まれています。色を追加したり、名前を変更することはできません。色の設定を変更することだけが可能です。

  • ［アプリケーション用基本色］テーブル …… アプリケーションで指定できる色が含まれています。ここでは、色の追加／削除／名前の変更／色の変更が可能です。各基本色に対して、名前と、前景色、背景色を設定することができます。登録できる色の数に制限はありません。

［基本色定義］テーブルには、以下のカラムがあります。

カラム

内容

#

テーブルの行番号を表す連番が自動的に表示されます。

名前

色を割当てる場所や機能を説明するテキストを指定します。この名前は、保守しやすくするため、できるだけ分かりやすい表現にしてください。

前景/背景色

前景と背景カラムは、前景色と背景色を定義します。

前景や背景の構成要素の色を変更するには、変更する［前景］または［背景］の上にカーソルを移動させます。次に、［基本色定義］パレットにズーム（F5）します。

このパレット上では、以下のような方法で色を定義することができます。

  • 基本色選択から選択する

  • グラディエーションパレットから選択する

  • HSL（色相、飽和、輝度）から選択する

  • RDBから選択する

  • システム色から選択する

注意：

システム色以外の色を選択する場合は、システム色の指定を空白にする必要があります。

背景色は、透過を指定することができます。

モバイル仕様：

パレット内の［文字］欄で非システム色の不透過度を定義することができます。モバイルデバイスでは半透過のコントロールの設定に使用することができます。有効な値は0～255です。0は透過色（［透過］のチェックボックスを設定した場合と同じ）で、255は不透過（デフォルト）になります。

サポートバージョン：2.5

サンプル

［基本色定義］パレットで指定した背景と前景の色を使用したサンプルが表示されます。

関連トピック：

コントロールを透過表示するには

使用するフォントや色を変更するには


基本色 基本色パレット

ホーム > リファレンスガイド > 設定 > 基本色 > ［基本色定義］パレット

基本色定義パレット

色を変更する場合、変更する［前景］カラムまたは［背景］カラムにカーソルを置きズームを実行し、［基本色定義］パレットをオープンします。ダイアログの左上部には基本色が一覧表示されていますので、ここから基本となる色をクリックして選択します。選択すると、その色が太い境界線で囲まれます。

選択した色に対して、［赤］、［緑］、［青］、［色合］、［濃さ］、［輝度］、［アルファ］の各数値を変更して色の調整を行なうことができます。

［基本色定義］パレットのタイトルバーには、［基本色］テーブルの現在行の［名前］と［前景］または［背景］が表示されます。

また、［基本色定義］ダイアログには［システムカラー］コンボボックスがあり、Windows のシステムで使用している色を設定できます。

背景色は、［透過指定］のチェックボックスが有効になります。

［Alfa］値を設定することで、モバイル用に透過の度合いを指定することができます。［システム色］が定義されていない場合にのみ有効になります。「255」が指定された場合、［透過指定］がオンになった状態と同じになります。

［OK］ボタンをクリックすると、色の設定が受け付けられ、［ファイル保存］ダイアログが表示されます。

［キャンセル］ボタンをクリックすると、色の設定が全て取り消され、［基本色定義］パレットが閉じます。


フォント

ここには、３種類の［フォント定義］テーブルがあります。各テーブルの表示は、タブで切り替えることができます。

  • ［開発用フォント］テーブル …… 開発時のMagicウィンドウに影響するフォントのみが含まれています。開発者は、フォントを追加したり、名前を変更することはできません。フォントの設定を変更することだけ可能です。

  • ［内部用フォント］テーブル …… ［動作環境］ダイアログや［範囲／位置付］ウィンドウのように、実行時に使用されるMagic xpaの内部ウィンドウに影響するフォントのみが含まれています。フォントを追加したり、名前を変更することはできません。フォントの設定を変更することだけ可能です。

  • ［アプリケーション用フォント］テーブル …… アプリケーションで指定できるフォントが含まれています。ここでは、フォントの追加／削除／名前の変更／フォントの変更が可能です。登録できる色の数に制限はありません。

ここで定義された各フォントによって、アプリケーションにおける表示や出力文字に実際のフォントを関連付けることができます。開発用のフォントには、デフォルトテーブル編集やデフォルトダイアログテキスト、プッシュボタン、またはステータス行テキストなどのようにあらかじめ割り当てられたフォント定義を含む100の項目が含まれています。

フォントテーブルの登録数には制限がありません。

［フォント］テーブルの内容は、フォント定義ファイルに保存されます。使用するフォント定義ファイルは、［動作環境］／［外部参照ファイル」タブで指定できます。

フォントテーブルには以下のカラムがあります。

カラム

内容

#

テーブルの行番号を表す連番が自動的に表示されます。

名前

フォントを割当てる場所や機能を説明する名前を入力します。この名前は、保守しやすくするため、できるだけ分かりやすい表現にしてください。

フォント

MS 明朝、MS ゴシックなどのフォント名です。フォントを変更したい場合、この欄から実行し、［フォント定義］ダイアログをオープンします。このダイアログで［フォント名］、［スタイル］（ボールド、イタリックなど）、［文字飾り］（取消線、下線など）、［サイズ］および［傾き］を選択します。

ユーザが追加登録した場合、［動作環境］／［動作設定］タブの「デフォルトフォント」欄で設定されている番号のフォントを複写します。この欄が「0」の場合、フォント名「MSP ゴシック」でサイズ「8」となります。

注意：

Magic xpaは、TrueTypeフォントといくつかのOpenTypeフォントをサポートします。サポートしないフォント、またはインストールされていないフォントを使用した場合、Microsoft Sans Serifフォントが使用されます。

スタイル

フォントの［スタイル］や［文字飾り］の選択状態を記号で表示します。

  • B …… ボールド体

  • I …… イタリック体

  • S …… 取り消し線

  • U …… アンダーライン

サイズ

［フォント］欄から［フォント定義］ダイアログへズームし、フォントを選択してフォントサイズ（ポイント）を設定します。フォントのサイズは、［サイズ］欄に表示されます。

フォントサイズは1-999までの1ポイント単位で指定します。（小数点での指定はできません。）

傾き

Windows OSの［ラベル］コントロールとカラムヘッダのみサポートされます。

サポートバージョン：

2.4

サンプル

サンプルボックスでは、選択したフォントによって実際にどのように表示されるかが確認できます。

［フォント定義］テーブルの内容を修正後、Enterを押下するか、［OK］ボタンをクリックすると変更内容を保存するかどうかを確認するための［ファイル保存］ダイアログが表示されます。この時点でファイル名を変更することで、異なるフォント定義ファイルを作成し、使用することができます。

注意：

Magic xpaのダイアログ上では、Windows用のフォントのみ定義可能です。モバイル用のフォントを定義する場合は、フォント邸意義ファイルを直接修正するようにしてください

関連トピック：

使用するフォントや色を変更するには


キーボード割付

［キーボード割付］テーブルは、Magic xpaの内部イベントとキーストロークの対応が定義されています。

ここには、２種類の［キーボード割付］テーブルがあります。各テーブルの表示は、タブで切り替えることができます。

  • ［開発用キーボード割付］テーブル …… 開発用キーボード割付ファイルに反映されます。

  • ［実行用キーボード割付］テーブル …… 実行用キーボード割付ファイルに反映されます。

［キーボード割付］テーブルは、以下のカラムがあります。

カラム

内容

#

テーブルの行番号を表す連番が自動的に表示されます。

内部イベント

Magic xpaの内部イベントの名前が表示されています。このカラムにはパークできません。内部イベント名は固定で、変更できません。

同じ内部イベント名が複数の行に表示されることもありますが、これは、同じイベントに複数のキーが割当てられていることを示しています。この場合、複数のキーを使用して、そのイベントを実行することができます。

Magic xpaには内部コマンドが用意されており、このようなコマンドを「Magic xpaの内部イベント」または単に「内部イベント」と呼びます。内部イベントは低レベルのコマンドで、Magic xpaでのみ解釈が可能です。内部イベントにはそれぞれ独自の機能が用意されており、ユーザが何らかの操作を行った場合、その操作はMagic xpa により所定の処理を実行する内部イベントに変換されます。

例えば、［終了］イベントでは、現在の処理が終了します。

ショートカットキーを使用して操作するユーザのため、内部イベントにキーを割当てておくと便利です。この内部イベントのキーボードへの割当には、［キーボード割付］テーブルを使用します。

Magic xpaには多くの内部イベントが組み込まれており、それぞれ、独自の機能が割当てられています。いくつかの内部イベントはグローバルであり、Magic xpaの全ての環境で動作します。また、いくつかの内部イベントは特定の条件でのみ有効です。特定の条件でのみ有効な内部イベントは、その条件でのみ機能することから、異なる内部イベントに同じキーを割当てることができます。キーが同じでも、条件が異なれば、実行される内部イベントも異なるからです。

キー

内部イベントに割当てられているキーが表示されます。キーを指定する場合、この欄からズームを実行し、［キー設定］ダイアログをオープンします。このダイアログで内部イベントに設定したいキーを実際にキーボードで押下します。

そのキーが有効だった場合、登録されます。［キャンセル］ボタンをクリックすると設定を取り消します。［キー設定］ダイアログではスペースバーを使用して、キーをクリアできます。

注意：

この欄に「内部」という文字が表示されている場合、そのイベントに対する操作が許されず、再定義もできないことを示しています。

関連トピック： メニューにショートカットキーを定義するには

ステータス

内部イベントに設定されているステータスの数が表示されます。この数の条件が全て満たされた場合にその内部イベントが実行されます。この欄からズームを実行すると、［ステータス］一覧にカーソルが移動します。このウィンドウを使用して、内部イベントとの条件を設定することができます。

内部イベントのステータス

内部イベントには、実行される条件を設定することができます。この条件を「キーボードステータス」といい、全てのステータスが満たされた場合にのみ内部イベントが実行されます。ステータスは、最高で4つまで指定できます。４つのステータスは、AND条件で動作します。ステータスに関連する状況としては、「表」と「編」、「ツリー」の３種類があります。

  • 表 …… テーブルの行やカラムの編集を行ったり、テーブルのスクロールを行ったり、ダイアログボックス内のカラム間で移動を行う場合を意味します。

  • 編 …… 項目エディタによって広域表示領域や複数行項目を編集する場合を意味します。

  • ツリー …… ツリー表示されたノードを編集する場合を意味します。

「表」では、テーブルに関連する各種ステータスが有効になります。また、「編」では、項目エディタに関連する各種ステータスが、「ツリー」ではツリー表示に関連するステータスが有効になります。各イベントには複数のステータスを定義することができ、現在、どのようなステータスにあるかはユーザの操作状況によって決まります。また、この複数のステータスの組み合わせによって、キーと状況が同じであっても、異なる内部イベントとして判断させることができます。

キーボード状態の例

例えば以下のように実行用キーボード割付が設定されているものとします。

内部イベント | キー | キーボード状態
テーブル末尾 | Ctrl+End | 表:画面末尾
画面末尾 | Ctrl+End | 表:非画面末尾
フォーム末尾 | Ctrl+End | 編:編集モード

テーブルを編集している状態では、Ctrl+Endキーは［テーブル末尾］イベントが割り当てられます。これは、「カーソルをテーブルの最後のレコード行に移動する」ことを意味しています。［画面末尾］イベントは、「画面上に表示されたテーブルの最後の行にカーソルを移動する」ことを表しています。両方の内部イベントは同じコンテキスト(テーブル編集)内で有効であり、同じキー操作（Ctrl+End）に割り当てられています。この曖昧な状況を解決するのが［キーボード状態］の設定内容です。

［テーブル末尾］イベントは、「表:画面末尾」のステータスが割り当てられており、カーソルがテーブルの最後に表示されている行にある状態でCtrl+Endキーが押下された場合のみ有効になります。［画面末尾］イベントは、「表:非画面末尾」のステータスが割り当てられており、カーソルがテーブルの最後の行に無い状態でCtrl+Endキーが押下された場合のみ有効になります。また、［フォーム末尾］イベントは、「編:編集モード」のステータスが割り当てられており、項目を広域表示させて編集している状態で有効になります。この3種類のステータスは排他的なため、キーが同じであってもそれぞれのステータスに応じた内部イベントが実行されます。

これらの設定の結果、Ctrl+Endキーを最初に押下すると、（［画面末尾］イベントが発行され）カーソルはテーブルの最後の表示行に移動します。これにより、「画面末尾」の状態になり、次にCtrl+Endキーを押下すると、（［テーブル末尾］イベントが発行され）カーソルがデータビュー上の最後のレコード行に移動することになります。

［キーボード割当］テーブルでは、内部のイベント/キー操作の割り当てを変更／削除／追加することが可能ですが、内部イベントの最後のキー操作割り当てを削除することはできません。新しい行を追加すると、前行の内容がコピーされます。

モバイル仕様：

キーボード割付は、モバイルデバイスではサポートされません。このため、内部イベント（例えばズームに対するF5キー)に割り当てられたシステムイベントを発生させることはサポートされません。直接、内部イベントを発行させるようにする必要があります。


キーボード割付 ステータス一覧

ホーム > リファレンスガイド > 設定 > キーボード割付 > ステータス一覧

ステータス一覧

ステータスを設定する場合、［キーボードステータス］のいずれかの欄にカーソルを置き、ズームを実行し、表示された［ステータス一覧］からステータスを選択します。ステータスは、１ つの内部イベントにつき最高で4 つまで設定できます。ここで指定したステータスが全て満たされた場合にその内部イベントが実行されます。

［ステータス一覧］には、内部イベントへの割り当てを行う際の条件となる２８の状態が含まれています。

  • 「表」という接頭語が付いている場合は、フォームやレコードレベルで参照されます。

  • 「編」という接頭語が付いている場合は、コントロールの広域表示領域や複数行編集状態で編集中の場合に参照されます。

  • 「ツリー」という接頭語が付いている場合は、ツリー表示で編集中の場合に参照されます。


サーバ

アプリケーションサーバは、Magic xpaに組み込まれているクライアント/サーバ機能を実現するための基本構成要素です。これは、リモートのMagicアプリケーションにて、データベース処理や入出力ファイル処理を実行するMagicエンジンです。クライアントにMagic xpaをインストールすることにより、各種プラットフォームやOSで稼働するアプリケーションサーバに対して、TCP/IPプロトコルを介してアクセスすることができます。

［サーバ］テーブルでは、ローカルのMagicエンジンがアプリケーションサーバと通信する方法を定義します。

［サーバ］テーブルには、以下のカラムがあります。

カラム

内容

#

テーブルの行番号を表す連番が自動的に表示されます。

サーバ名

Magic xpaが利用する際に参照するアプリケーションサーバ名を定義します。

サーバタイプ

［サーバタイプ］では、ホストサーバとのデータ送受信が可能なサーバタイプを指定します。この欄からズーム（F5）し、使用できるサーバタイプの一覧から選択することで設定します。有効な通信ドライバが認識できなかった場合、この欄は「Unknown」と表示され、この状態でサーバと通信しようとしても失敗します。

使用できるサーバタイプは次のとおりです。

  • MRB …… MRB（Magic Requester Broker）との接続が可能です。MRBが［サーバタイプ一覧］に表示されるのは、MRBが適切なMAGIC.INIセクションで定義されていて、通信サポートがインストールされている場合のみです。

  • J2EE …… Magic xpaは、J2EE環境のクライアントからアクセス可能なJavaで記述されたサーバコンポーネントを作成します。サーバタイプをJ2EEに設定し、動作環境ダイアログのメッセージサーバの設定でこのサーバを選択すると、Magic xpaのアプリケーションサーバからJ2EEサーバにリクエストが送られます。

  • Magic xpi …… （現在サポートしていません）Magic xpa から Magic xpi (Magic Software Enterprises' integration platform) を呼び出す場合に指定します。Magic xpi がインストールされている場合のみ表示されます。

サーバアドレス

［サーバアドレス］欄には、ローカルのMagic xpaが接続しているネットワーク上のサーバアドレスを指定します。このアドレスを使用して、サーバとローカルのMagic xpa との接続が行われます。サーバアドレスは、「/」で区切られた2つの部分から構成されます。例えば、サーバがWindowsサーバ上に置かれており、通信プロトコルがTCP/IP の場合、書式は次のようになります。

XXXXX/YYYYY

XXXXXは、サーバのコンピュータ名（または、IPアドレス）です。コンピュータ名を指定する場合は、クライアント側のhostsファイルにサーバのコンピュータ名とIPアドレスの情報を設定しておく必要があります（例：MGSRV1）。

YYYYYは、サーバコンピュータ上のMagic TCP/IPディスパッチャ（MRB など）のソケット番号です（例：3001など）。

上記の例では、MGSRV1/3001が、アプリケーションサーバのTCP/IPアドレスになります。

［サーバ］テーブルには、デフォルトで［DEFAULT］という名前のサーバが登録されており、このサーバだけは削除することができません。DEFAULTサーバは、ローカルにインストールされているMagic xpaの「ローカルサーバ」であり、通信ドライバやアドレスは必要ありません。

［サーバ］テーブルの設定情報は、MAGIC.INIの［MAGIC_SERVERS］ セクションにあります。

関連トピック：

サーバ特性


サーバ 特性

ホーム > リファレンスガイド > 設定 > サーバ > サーバ 特性

サーバ特性

［サーバ］テーブルの各サーバには対応する［サーバ特性］ダイアログがあります。サーバを選択し、［編集］メニューから［特性］を選択するか、Alt+Enterキーを押下するか、マウス右ボタンをクリックしてコンテキストメニューを開き、［特性］を選択すると開きます。

［サーバ特性］ダイアログには、以下の特性があります。

特性 | 内容
ユーザ名 | データサーバの場合のみ有効です。サーバへログオンするためのユーザIDを指定します。
パスワード | アプリケーションサーバの場合MRB のPasswordSupervisor の内容と同じ設定をします。 サーバにアクセスする場合、通常ユーザ名とパスワードが必要になりますが、［特性］ダイアログで［ユーザ名］と［パスワード］を指定しておくことで、接続時にそれらを入力する必要がなくなります。 関連トピック： MRB のパスワードを定義するには
タイムアウト | この特性は、MGREQ.INIファイルのBrokerTimeoutと同じ意味を持っています。エンジンからコールリモートが実行された場合、MGREQ.INIの設定が上書きされます。
代替サーバ | 代替サーバの名前を指定します（省略可）。 ［サーバ］テーブルのサーバが使用できない場合、この代替サーバが使用されます。ズームすると同じサーバタイプの［サーバ一覧］が表示されます。
通信ゲートウェイ | ホストサーバとの間でデータの送受信を行う場合に使用する通信プロトコルを設定します。 通信プロトコルを設定する場合、この欄からズームを実行し、表示された通信ドライバの一覧から使用するプロトコルを選択します。なお、この一覧に表示される通信ドライバは、Magic xpaを起動する際にロードされていたものに限られます。ローカルのMagic xpaで使用する通信プロトコルとサーバの通信プロトコルは同じでなければなりません。 ここはデータサーバのみ有効です。


サービス

各サービスは、サーバと関連しています。サーバ特性からズームして［サーバ一覧］にアクセスします。

［サービス］テーブルには以下のカラムがあります。

カラム

内容

#

テーブルの行番号を表す連番が自動的に表示されます。

名前

サービスの名前です。ユニークな名前を指定してください。

サーバ

サーバを指定します。ここからズーム（F5）を実行し、表示された［サーバ一覧］から使用するサーバを選択します。

リモートアプリケーション
/エンドポイント

［サーバ］カラムが「SOAP」以外の場合、サービスに対応するMagicアプリケーションの名前を指定します。ここからズームして、［プロジェクトを選択］ダイアログからアプリケーションのECF/EDPファイルを選択してください。

［サーバ］カラムが「SOAP」の場合、ここには、Webサービスプロバイダが公開しているWSDLにアクセスするためのURLを指定してください。この設定を変更することで、別のエンドポイントにアクセスすることができます。ここには、論理名を使用することができます。

ここに指定するアプリケーション名は、デフォルトではプロジェクト名と同じ名前になります。ただし、MAGIC.INIファイルの［MAGIC_ENV］セクションにApplicationPublicName パラメータを設定することで、任意に変更することができます。

Alt + Enter または、［編集］メニューまたはコンテキストメニューから［特性］を選択することで［サービス特性］にアクセスできます（Webサービスライトでは指定できません）。

［サービス特性］には２種類あります。

［サーバ］カラムに、MRBに対応したサーバが設定されている場合、［サービス特性］ダイアログが表示されます。

［サーバ］カラムに、「SOAP」と設定されている場合、［Webサービス特性］ダイアログが表示されます。

Magic xpa Studioで［コールWebサービス ライト］をプログラムに定義すると、｢SOAP LITE｣と設定されたサービスが自動的に追加されます。実行環境には、この内容をそのままコピーしてください。


サービス 特性

ホーム > リファレンスガイド > 設定 > サービス > サービス特性

サービス特性

指定されたサービスのサービス特性にアクセスするには、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のフィルタ」の説明も参照してください。

定義されたユーザIDとパスワードは、Magicサーバが定義されたサービスを使用して、リモートコールの認証を行うために使用されます。


サービス Webサービス特性

ホーム > リファレンスガイド > 設定 > サービス > Webサービス特性

Webサービス特性

［Webサービス特性］ダイアログボックスでは、SOAPサービスについての情報を設定することができます。

SOAPサーバを設定したサービスからAlt+Enter を押下することで［Webサービス特性］ダイアログボックスにアクセスできます。

このダイアログボックスには、以下の２タブが含まれています。

［汎用］タブ

［セキュリティ］タブ


サービス Webサービス特性 汎用

ホーム > リファレンスガイド > 設定 > サービス > Webサービス特性 > 汎用

汎用

［汎用］タブには、以下の特性があります。

特性

内容

WSDL URL

WSDLの場所を指定します。最高260文字まで入力することができます。

URL(http、 https)またはファイルパスのどちらかで指定してください。

クライアントモジュール

［WSDL URL］が入力されると、Webサービスクライアントモジュールの位置が自動的に設定されます。［読込］ボタンをクリックすると、Webサービスクライアントモジュールが作成されます。

最高260文字まで入力することができます。

注意：

  • クライアントモジュールが作成できるのは、開発エンジンのみです。実行エンジンの場合は、［読込］ボタンが無効になります。

  • 実行環境では、開発環境で作成されたJarファイルの名前をここに指定してください。ズームして［ファイルを開く］ダイアログを表示させることで選択できます。

  • Jarファイルは、各クライアントPCのローカルディスク上に置いてください（ネットワークフォルダ上に置いた場合、正常に動作しない場合があります）。

添付方式

ファイルを添付する場合の添付方式を指定します。以下のオプションがあります。

  • DIME 任意の形式のデータからなる複数のレコードをまとめてストリーム化するメカニズムです。レコードは順々にストリームにシリアライズされ、効率よくバイナリのヘッダーで区分けされます。DIME メッセージの最初のレコードには、ヘッダーに MB （Message Begin） フラグが立っており、最後のレコードにはME（Message End）フラグが立っています。ヘッダーにはレコードの長さを示す固定長のデータを記述できます。

  • MIME インターネットなどのTCP/IPネットワーク上でやりとりされる電子メールで、各国語や画像、音声、動画などを扱うための規格です。RFC 2045～2049で規定されています。画像のようなバイナリデータをASCII文字列に変換(エンコード)する方法や、データの種類を表現する方法などを規定しています。

タイムアウト

Webサービスクライアントが、サービスが有効になるまでの待つ時間を秒数で指定します。「0」またはスペースが設定されると無限に待つようになります。

関連トピック：

Webサービスにアクセスするには

Webサービス定義の再読込を行うには


サービス Webサービス特性 セキュリティ

ホーム > リファレンスガイド > 設定 > サービス > Webサービス特性 > セキュリティ

セキュリティ

クライアントモジュールが存在している場合、［セキュリティ］タブには、以下の特性があります。

特性

内容

セキュリティレベル

セキュリティレベルを指定します。

  • W=WS-Security …… WS-Security を使用します。

  • T=Transport …… Transport Layer Securityを使用します。

関連トピック： SSL経由でWebサービスにアクセスするには

  • N=なし …… セキュリティレベルを指定しません。

関連トピック： SOAPヘッダ付きのリクエストを送ったり、戻り値を取得するには

認証方式

認証方法を指定します。［セキュリティレベル］特性が「WS-Security」か「Transport」の場合のみ有効です。

  • K=Kerberos …… ［セキュリティレベル］特性が「Transport」の場合のみ有効です。

  • S=SSL …… ［セキュリティレベル］特性が「Transport」の場合のみ有効です。

  • D=DIGEST …… ［セキュリティレベル］特性が「WS-Security」の場合のみ有効です。

  • B=BASIC …… ［セキュリティレベル］特性が「WS-Security」の場合のみ有効です。

  • N=なし …… 認証方式を指定しません。

以下の特性は、［セキュリティレベル］特性が「WS-Security」の場合のみ有効です。

特性 | 内容
暗号化/署名アルゴリズム | 暗号化で使用するアルゴリズムを指定します。
タイムスタンプを含める | このチェックボックスをオンにすると、タイムスタンプがSOAPリクエストに追加されます。
処理 | 処理の名前を指定します。
リクエスト | SOAPリクエストをどのように機密化するかを指定します。
応答 | SOAPの応答をどのように機密化するかを指定します。

注意：

セキュリティの設定は、Systinet Server の設定内容と同じ内容にする必要があります。

関連トピック：

Webサービスに安全にアクセスするには


ビジュアル接続

［ビジュアル接続］ダイアログでは、特定のMagicサービスと使用可能なサーバの一覧との関係を見ることができます。また、接続を示す線を動かして、接続先のサーバを変更することもできます。

サービスは、メッセージングサーバとのみ関連します。

一次サーバを代替サーバと関連付ける時は、両方のサーバが同じタイプであることを［ビジュアル接続］画面で確認します。別のタイプの一次サーバと代替サーバをと関連付けようとしても拒否されます。


通信ゲートウェイ

［通信ゲートウェイ］テーブルは、Magic xpaの初期化時に自動的に生成されます。このテーブルには、Magic xpaの起動前にロードされている通信ドライバが全て表示されます。なお、通信ドライバは、［通信一覧選択］ウィンドウにも表示されます。ローカルのMagic xpaとホストのMagicサーバとは、通信ドライバを使用して接続されます。

通信テーブル情報は、MAGIC.INIファイルの［MAGIC_COMMS］セクションにあります。

［通信ゲートウェイ］テーブルには以下のカラムがあります。

カラム | 内容
# | テーブルの行番号を表す連番が自動的に表示されます。
名前 | 通信ドライバの名前です。ここには、Magic xpaでサポートされている通信ドライバの名前を指定します。
タイムアウト | タイムアウト時間を秒数で指定します。接続先から応答がないまま、この時間が経過すると、ドライバからMagic xpaに対して通信エラーが報告されます。
パラメータ | 実行時に通信ドライバーに渡されるカスタマイズ情報を指定します。アプリケーションサーバがアクセスするTCP/IPのポート番号の範囲を指定することができます。
ID | ここの値は、変更しないでください。この値は内部ID で、この値を基にMagic xpaにより通信プロトコルが識別されます。


DBMS

［DBMS］テーブルには、Magic xpaでサポートされるDBMS （データベース管理システム）が表示されます。この［DBMS］テーブルには、後述の［データベース］テーブルとは異なり、DBMSの特性についての一般的な情報は含まれていますが、個々のデータベースの固有設定情報は含みません。

［DBMS］テーブルには以下のカラムがあります。

カラム

内容

#

テーブルの行番号を表す連番が自動的に表示されます。

名前

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

注意：

「XML File」以外は変更できます。

NULL

使用する DBMSの NULL の扱いを指定します。

  • Yes …… DBMS でNULL 値がサポートされており、Magicアプリケーションでテーブルの値としてNULL を使用したい場合、「Yes」に指定します。

  • No …… DBMS でNULL 値がサポートされていない時、またはアプリケーションで必要ない時には、このカラムは「No」にします。

この値は、開発モードで新規のカラムや項目モデルを作成する時のデフォルト設定に影響します。

  • このカラムの値を「Yes」にしておくと、作成されるカラムや項目モデルのNULL 属性は、［NULL 値許可］が「Yes」になります。

  • このカラムを「No」にしておくと、カラムや項目モデルのNULL 属性は、［NULL 値許可］が「No」になります。

このカラムは通常「No」に設定しておき、NULLが本当に必要なカラムがある時のみ、その［カラム特性］の、［NULL値許可］を「Yes」に修正することを推奨します。

パラメータ

カスタマイズ情報を入力します。この情報は、実行時にRDBMSに送られます。

Oracleでの例：ALPHA_DATE=Y

このカラムはデータベースに文字列として日付値を格納します。

浮動小数点

定義取得ユーティリティを使用してテーブル定義情報をDBMSから取得すると、ほとんどの設定パラメータは、そのまま所定の書式を使用してMagic xpaに取り込まれます。ただし、浮動小数点形式の書式設定については、Magic xpa内で使用される書式が自動的に選択されることはありません。

この［浮動小数点］カラムには、浮動小数点用のデフォルトの書式を指定します。ここで指定した書式が定義取得時に使用されるようになり、Magic xpaのテーブル定義情報に取り込まれるようになります。デフォルトの設定は、「10.3」です。

［DBMS］テーブルには、「XML File」という名前のエントリがあります。このエントリは、削除ができません。また、同じ名前で追加することもできません。

DBMSによって構成された各データベースに対し、物理的アクセスができるようにするためには、Magic xpaのロードに先立って、該当DBMS に対応するデータベースゲートウェイをロードしておかなければなりません。データベースゲートウェイは、Magic xpaとDBMS との間のインタフェースとして機能します。例えば、Microsoft SQL ServerやOracleデータベースにアクセスするためには、Magic xpaをロードする前に、Microsoft用またはOracle用のMagicデータベースゲートウェイをロードする必要があります。

［DBMS］テーブルは、データファイルをDBMSタイプに関連付けるために使用するDBMS一覧の基になります。Magic xpaをロードする前に適切なMagicデータベースゲートウェイモジュールをロードしたDBMSだけが、DBMS一覧に表示されます。

DBMSテーブル情報は、MAGIC.INI ファイルの［MAGIC_SERVERS］セクションにあります。

関連トピック：

DBMS特性


DBMS 特性

ホーム > リファレンスガイド > 設定 > DBMS > DBMS特性

DBMS特性

指定したDBMSの［DBMS特性］にアクセスするには、Alt+Enter を実行するか［編集］メニューやコンテキストメニューの［特性］を選択してください。

XML データソースの場合は、XMLのデフォルトデータタイプ に関する情報を表示する［DBMS特性］ダイアログが表示されます。

「XML File」以外の［DBMS特性］には、以下の特性があります。

特性

内容

照合順序ファイル

照合順序(ACS)ファイルは、範囲と位置付けで使用される変換ファイルです。このファイルは、英字がANSIコードでソートされないデータベースで使用されます。範囲/位置付を行う場合に使用します。

使用するDBMSがこの機能をサポートしている場合、個別のデータベースに対して独自のACSファイルを定義することができます。

［照合順序ファイル］特性でズームすると、［ファイルを開く］ダイアログが表示されます。このダイアログでACS ファイルを指定します。

最大接続数

MS SQL ServerなどのRDBMSでは、内部実装でさまざまな接続数を使用します。

最大接続数を指定すると、ゲートウェイが使用できる接続数の最大値を制御することができます。デフォルト値は3接続です。

この特性値は、定義されたDBMSを使用するデータベースに適用されます。

ゲートウェイが使用する接続数が大きいほど、クライアントの並行性がよくなりまが、RDBMS側のリソースがより消費されます。

デフォルトの接続数を使用するには、「0」を指定します。データベースへの接続数を制限するには、「0」より大きな値を指定してください。

AS/400用のISAM または SQL のDBMSを使用する場合、AS/400 に接続できる数を指定してください。この数は、AS/400のライセンスに依存します。

サーバ環境（Magic xpa Enterprise Server、Magic xpa RIA Server）での推奨値

各インスタンス毎で使用する最大スレッド数又はユーザ数の3倍を設定してください。

(例）

  • 5スレッド（Enterprise Server）の場合 …… 15

  • 20ユーザ（RIA Server）の場合 …… 60

それでも最大接続数を超えるエラーが発生した場合は、設定値を大きくしてください。最大接続数を超えた場合、mgerror.logに「サーバに接続できません.最大接続数に達しました.」のエラーが記録されます。

注意：

最大接続数を超えてもMagicエンジンが継続して動作していれば、メッセージダイアログは表示されません。SNMP機能を利用して監視するようにすることを推奨します。

関連するゲートウェイ：MS-SQL、DB2/400

デフォルト値：3

分離レベル

分離レベルは、同じトランザクションを使用して並行実行している場合の処理内容について定義したものです。並行トランザクションの分離レベルを数値で指定します。指定できる値は使用するゲートウェイによって異なります。詳細は、分離レベルを参照してください。

関連するゲートウェイ：MS-SQL

デフォルト値：0

テーブルの存在チェック

アクセス先のテーブルが存在するかどうかをファイルオープン時に確認するかどうかを指定します。

この欄をチェックすると、テーブルが存在するかどうかを確認し、テーブルが見つからなかった時にはMagic xpaはデータベースにテーブルを新規作成します。実行時にアクセスするテーブル全てについて存在するかどうかを確認するため負荷がかかり、処理速度は低下します。

チェックを外した場合には、処理速度が向上しますが、テーブルが存在しない場合には処理中にRDBMSエラーとなります。

注意：

この特性は、DBMSを使用する［データベース］テーブルに継承されます。


DBMS 特性 分離レベル

ホーム > リファレンスガイド > 設定 > DBMS > DBMS特性 > 分離レベル

分離レベル

分離レベルは、同じトランザクションを使用して並行実行している場合の処理内容について定義したものです。並行トランザクションの分離レベルを数値で指定します。指定できる値は使用するゲートウェイによって異なります。

MS-SQL Server

  • 0 …… READ UNCOMMITTED（共有ロックは実行されず、排他ロックも使用されません。このオプションが設定されている場合には、コミットされていないデータ、つまりダーティデータを読み取ることができます。トランザクションが終了する前にデータ内の値を変更でき、行がデータセットに現れたり消えたりします。）

  • 1 …… READ COMMITTED（データが読み取られている間、ダーティリードを回避するために共有ロックが保持されるように指定します。しかし、トランザクションが終了する前にデータを変更することができるので、反復不能読み取りやファントムデータが発生する可能性があります。）

Oracle

指定は無効です。

分離レベルとトランザクション処理

以下の表は分離レベルとトランザクション処理を同時実行させた場合に起こる問題の相関関係を示します。

分離レベル／現象 | ダーティリード | 反復不可読み取り | ファントム
READ UNCOMMITTED 非コミット読み取り | ○ | ○ | ○
READ COMMITTED カーソル固定 | × | ○ | ○
読み取り固定 | × | × | ○
反復可能読み取り | × | × | ×

  • ダーティリード …… 別のトランザクションによって作成された未確定レコードまたは変更レコードがSQL処理で読み込まれると、1つのトランザクション内で異なる結果が返されます。例えば、あるユーザがトランザクションをコミットする前に、別のユーザによってコミットされることで、変更されたデータによって表示が変わる場合が発生します。ロールバックが実行された場合も表示が変わります。ダーティリードでは並行性は向上しますが、一貫性は低下します。

  • 反復不可能読み取り …… SQL処理でテーブルの同じ行が2回読み込まれると、1つのトランザクション内で異なる結果が返されます。反復不可能な読み取りは、トランザクションの読み込みの間に別のトランザクションが行への変更を更新して確定すると発生します。反復不可能読み取りは一貫性は向上しますが、並行性は低下します。

  • ファントム …… SQL処理で一連のデータ値が2回読み出された時に、1つのトランザクション内のさまざまな結果を返します。ファントムは、一連の読み出しの実行の間に、別のトランザクションが新しいレコードを挿入して挿入を確定すると発生します。各分離レベルは、許容する現象によって異なります。

参照：

詳細は、「マルチユーザ環境」の 分離レベル を参照してください。


DBMS 特性 デフォルトデータタイプ

ホーム > リファレンスガイド > 設定 > DBMS > DBMS特性 > デフォルトデータタイプ

デフォルトデータタイプ

［デフォルトデータタイプ］テーブルには、XMLのデフォルトのデータマップが含まれています。ここには、XSDの全てのタイプとMagic xpaのデータタイプが割り当てられています。

定義取得の間、要素/属性のタイプが、SimpleTypeを使用して定義されたり、グローバル要素への参照として定義された場合、そこから派生する適切なPrimitive XSDデータ型に変換されます。Primitive XSDデータ型は、対応するMagic xpaのデータ型に割り当てられます。

デフォルトの型が（テーブルに指定されるたように）割り当てられます。タイプが、SimpleType（長さを定義します）に基づく場合、型はSimpleTypeに対応て指定された長さによって更新されます。

Magicデータの型と書式は、変更できます。デフォルトの設定と異なる値に変更すると、変更値の色が緑色に変わります。この設定値は、ダイアログを閉じるとMAGIC.INI の［XML_DEFAULT_DATATYPES］セクションに保存されます。MAGIC.INIファイルがロードされると、MAGIC.INIファイルに保存された値が読み込まれて、［デフォルトデータタイプ］テーブルに反映されます。

関連トピック：

XMLデータ型に対応するMagic xpaのデータ型を決定するには


データベース

ここには、デフォルトデータベースとして、「Default Database」と「Default XML Database」、「Memory」が定義されています。

データソース定義における最初の手順は、データソースが格納されるデータベースを定義することです。

［データベース］テーブルでは、Magic xpa からアクセスする物理データベースやXMLデータソースの詳細設定を行います。

［データベース］テーブルには以下のカラムがあります。

カラム

内容

#

テーブルの行番号を表す連番が自動的に表示されます。

名前

物理データベースの名前、または簡単な説明です。データベースを示す文字列で、［テーブル］リポジトリや［アプリケーション］テーブルなどの処理でデータベースの参照が必要になった場合、この名前を基にデータベースが識別されます。データベースの識別にはインデックスも使用できますが、文字列を使用することで、同じ名前が別の開発者に使用される可能性も少なくなり、アプリケーションの移植性が高くなります。

この名前の入力は必須で、大文字と小文字が区別されます。

データソースタイプ

［データソースタイプ］カラムは、基本的なデータソースのタイプを指定します。

エントリを追加すると、指定したDBMSの特性を継承します。

ここには、以下の値から1つを選択できます。

  • DBMS …… RDBMSを使用します。

  • X=XMLファイル …… XML形式のデータソース。このオプションを選択すると、［DB名］と［DBMS］のカラムは使用不可になります。［位置］カラムには、XMLファイルのパス名かURL（HTTP/HTTPS）を設定できます。
    ［位置］カラムが指定されていない場合、［データ］リポジトリ内のデータソース名を接頭語とする位置でアクセスされます。

注意：

  • XMLデータベースは、［動作環境］ダイアログの［デフォルトデータベース］で設定することができます。

  • XMLデータベースは、［ソート/一時用データベース］には設定できません。

DB名

ここには、サブデータベースの名前を指定します。サブデータベースとは、DBMS のサーバによって操作されるデータベース全てからアクセスが実行されるようなデータベース（下位データベース）をいいます。このパラメータは、単一の論理エンティティ（通常は、データベースサーバ）内で複数のデータベースが管理されるようなDBMS の場合に使用します。

DB名は、DBMSで定義されたデータベースの名前です。ODBCでは、DB名はODBCアドミニストレータで定義されたデータソースの名前です。

ここには、論理名を指定することもできます。

この設定はオプションです。

注意：

データベース名が数値から始まったり、スペースが含まれている場合、角括弧で名前を囲ってください。（[305n]または[v tablename]）

DBMS

ここには、［名前］カラムで指定したデータベースの元となるDBMS を指定します。ここからズームするとロードしているゲートウェイに基づいた［DBMS一覧］が表示されます。（［DBMS］テーブルに定義されている名前ではありません。）

［DBMS］カラムの値は必ず指定しなければなりません。［DBMS］カラムによって、この項目で指定した物理データベースのデータベース管理システムのタイプが識別されます。

位置

ISAMデータベースまたはXMLファイルのみ関係します。ここには、ファイルの物理的な位置を指定します。

Magic xpaによって作成されるファイルは、ここで指定された場所に作成されます。

このカラムの値には論理名を指定できます。 このカラムの設定はオプションです。

デフォルトでは、以下の設定が自動的に定義されます。

  • Default Database …… データソースを新規に定義した場合、意図的に変更しない限り、これがデフォルトのデータベースとして使用されます。

  • Default XML Database …… XMLデータソースを新規に定義した場合、このオプションがデフォルトのデータベースとして使用されます。

  • Memory …… メモリテーブルが必要な場合、このデータベースを使用することでMagic xpa実行時にのみ有効なデータベースとして使用できます。

  • Default XML Memory database …… このデータベースは、デフォルトのXML格納用（XMLの［DBMS特性］で定義されています）として使用されます。

注意：

背後で動作するデータベースがないため、メモリデータベースはトランザクションをサポートしません。メモリゲートウェイは、アプリケーション側で意図的に使用する場合のみ利用できます。入力したデータは、他のユーザによって変更されることはありません。

Magic xpaは、複数のDBMSに接続することができます。これらのDBMS によっては、同一のコンピュータ上の異なる場所にデータを配置したり、異なるコンピュータ上にデータを分散配置したりできるものがあります。また、DBMS の中には、複数の物理データベースを単一の論理エンティティに格納して管理できるものがあります。Magic xpaは、［データベース］テーブルを使用して、これらの異なる物理データベースへのアクセスを管理します。

［データベース］テーブルには、Magic xpaのデータベースオブジェクトに必要な基本情報を設定します。［データベース特性］ダイアログでは、オブジェクトに関する追加情報を設定します。［データベース特性］ダイアログは、［データベース］のコンテキストメニューから［特性］を選択するか、Alt+Enter を実行することでアクセスできます。

同一のDBMSを使用して複数のMagicデータベースを作成することができ、各データベースにそれぞれ個別に特性を定義することができます。

［データベース］テーブルにあるデータベースの定義は論理的な定義で、実際のSQLデータベースには影響しませんが、Magicアプリケーションの表示や動作仕様を定義します。

［データベース］テーブルでは、複数のMagicデータベースのエントリが同一のSQLデータベースを指示するように定義できます。

例えば、データベースの一連のテーブルに対してあるユーザがアクセスし、別の一連のテーブルに対して別のユーザがアクセスする場合、2つの同一の定義をそれぞれのユーザ名で行うことができます。

データベーステーブルの情報は、MAGIC.INIファイルの［MAGIC_DATABASES］セクションにあります。

注意：

データベースへの接続が確立したら、その切断は（DbDiscnt関数を使用するか DBAによって）明示的に行うか、Magic xpaを終了させることによって行います（アプリケーションを終了させても接続は維持されます）。

データベース特性で行った変更が有効になるのは、次にデータベースに接続した時です。Magicゲートウェイの動作に影響するデータベースの特性を変更した場合は、必ず一旦Magic xpaを終了し、再起動してください。

関連トピック：

データベース (Mastering Magic xpa)


データベース 特性

ホーム > リファレンスガイド > 設定 > データベース > データベース特性

データベース特性

[データベース特性]ダイアログにアクセスするには、[データベース]テーブルから、Alt+Enter を実行するか、コンテキストメニューから[特性]を選択してください。

[データベース特性]は、次の3つのタブに分かれています。

[ログイン]タブ | [オプション]タブ | [SQL]タブ
データベースサーバ ユーザ名 ユーザパスワード 接続文字列 | 開発モードでのテーブル変換 定義チェック インデックスチェック サーバソート Magicロック ロックパス | データベース情報 ヒント 照合順序ファイル 配列サイズ 存在チェック

[データソース]が「X=XMLファイル」の場合、[XML設定]ダイアログが表示されます。


データベース 特性 データベースサーバ

ホーム > リファレンスガイド > 設定 > データベース > データベース特性 > データベースサーバ

データベースサーバ

ここには、RDBMSサーバの名前か、IPアドレスを指定します。

DBMS サーバを使った場合、リモートのデータへのアクセスはDBMS サーバによって実行され、このためデータはMagic xpaからはローカルデータのように見えます。

SQL系サーバの場合、［データベースサーバ］には、SQLサーバ名が表示されます。Oracleでは、これはエイリアス（別名）になります。

エイリアスは、RDBMS定義のための代替の名前です。この名前は、コード内で参照する際の名前を短縮したり、可能な限り曖昧な参照を防止したり、クエリー内の記述名として使用されます。

ODBC の場合は、データベースがDNS（［データベース］テーブルの［DB名］カラムに指定します。）を持っているため、この設定は不要です。

この特性はオプションです。

この特性は、SQLiteでは使用しません。


データベース 特性 ユーザ名

ホーム > リファレンスガイド > 設定 > データベース > データベース特性 > ユーザ名

ユーザ名

データベースによっては、アクセスにユーザ名とパスワードが必要になります。これは、MagicサーバやDBMS のデータベースサーバのアクセス対象となるデータベースについても同様です。また、Magicクライアント/サーバモデルを使用してリモートのホストマシンにアクセスする場合、ユーザ名とパスワードは必須になります。データベースでユーザ名が必要な場合、［ユーザ名］欄を空白にしておくと、データベースのテーブルに最初にアクセスを実行した時にMagic xpaによりダイアログが表示され、ユーザ名とパスワードが必要なことを通知します。

ここにユーザ名を指定した場合、データベースのテーブルが置かれているホストのセキュリティシステムによって、そのユーザ名が認識されます。なお、MAGIC.INI ファイルは保護されていないため、ユーザ名はシークレット名で指定してください。

この特性はオプションです。

注意：

Windows認証の場合は、以下のようになります。

  • MS-SQL Server …… ［ユーザ名］と［パスワード］は空白にします。

  • Oracle …… ［ユーザ名］は先頭にスラッシュ（/)を入れる必要があります。そして、［パスワード］は空白にしてください。


データベース 特性 ユーザパスワード

ホーム > リファレンスガイド > 設定 > データベース > データベース特性 > ユーザパスワード

ユーザパスワード

ここには、ユーザのパスワードを指定します。指定したパスワードは、アクセス先のデータベースのテーブルが置かれているホストのセキュリティシステムによって認識されます。なお、MAGIC.INI ファイルの［パスワード］欄は保護されていないため、パスワードはシークレット名で指定しなければなりません。

この特性はオプションです。

注意：

Windows認証の場合は、以下のようになります。

  • MS-SQL Server …… ［ユーザ名］と［パスワード］は空白にします。

  • Oracle …… ［ユーザ名］は先頭にスラッシュ（/)を入れる必要があります。そして、［パスワード］は空白にしてください。


データベース 特性 接続文字列

ホーム > リファレンスガイド > 設定 > データベース > データベース特性 > 接続文字列

接続文字列

接続文字列は、Oracleにのみ関連します。ここに文字列を指定する場合、データベースサーバが上書きされます。

SQLデータベースを操作したり、SQLコマンドを実行するには、最初に、ユーザは接続文字列をデータベースに送信しSQLサーバに接続する必要があります。接続文字列に含まれるのは、接続するユーザのユーザ名とパスワード、およびデータベースサーバに関する設定です。

各データベースには、それぞれ独自の接続文字列があります。

リモート上のOracleサーバで動作するとき、ユーザ名とパスワードに加えて、リモートサーバを示すエイリアスを追加する必要があります。

この特性は、倫理名をサポートしません。

例：

ローカル： sqlplus username/password

リモート ： sqlplus username/ password@alias


データベース 特性 開発モードでのテーブル変換

ホーム > リファレンスガイド > 設定 > データベース > データベース特性 > 開発モードでのテーブル変換

開発モードでのテーブル変換

この特性を「有効」とすることによって、開発モードのMagicプロジェクトで、基礎となるデータベーステーブルのテーブル構造を変更できるようになります。

この特性を有効にすると、［データ］リポジトリでテーブル定義を変更した場合、Magic xpaは自動的に物理テーブルを変更します。Magic xpaは、データが存在している場合、テーブルの定義とともに実データの変更も行います。

この設定のデフォルトは、［動作環境］の［Default Database］設定で選択されているデータベースのタイプによって異なります。ISAM データベースの場合、この欄のデフォルト値は「有効」になります。一方SQL データベースの場合には、この欄のデフォルト値は「無効」になります。

テーブル構造を作成中の時や、データがまだ入力されていない状態の時、プロジェクトが運用に入る前などには「有効」にして変更ができるようにします。

注意：

データ入力が一度でも行われており、この設定が「有効」の場合は、Magic xpaは基になるテーブルをデータベースからドロップし、新しい修正内容を反映したテーブルを新しく作ります。このため、アプリケーションの運用段階では、この設定は「無効」にしてください。ISAMデータベースと異なり、SQL系のデータベースでは、基になっているテーブル構造の規則に影響を与えるためです。

データベース仕様

  • メモリテーブル …… メモリテーブルを削除する場合は、この特性は影響しません。これはテーブルが削除されることを意味します。

  • Localテーブル …… この特性はサポートされません。

関連トピック：

Magic xpaとデータベース間でのテーブル構造の不整合に対応するには


データベース 特性 定義チェック

ホーム > リファレンスガイド > 設定 > データベース > データベース特性 > 定義チェック

定義チェック

Magic xpaには独自の［データ］リポジトリが用意されていますが、アクセス先のDBMSにも独自のデータ辞書が用意されていることもあります。［データ］リポジトリのテーブル構造は、Magic xpaで変更することもできますし（Magic xpaを使用して変更した場合、DBMSのデータ辞書も自動的に変更されます）、外部DBMSのユーティリティを使用して変更することも可能です（ただし、こういったユーティリティでの変更によっては、Magic xpaの［データ］リポジトリの変更はできません）。

Magic xpaの［データ］リポジトリを変更した場合、［データ］リポジトリとMagicプログラムによって使用されるテーブルの構造が異なることもあります。これは、Magicプログラムの動作に異常が発生する原因になります。

［定義チェック］を「無効」にした場合、テーブルオープン時にテーブル構造のチェックを行いません。

［定義チェック］を「有効」にした場合、データテーブルが開かれる際、物理ファイルのテーブルの構造とMagic xpaの［データ］リポジトリの定義がチェックされるようになります。このチェックで、物理ファイルの構造とMagic xpaの［データ］リポジトリの定義が異なった時には、エラーメッセージが表示されるとともに、Magic xpaの処理がアボートされます。なお、この特性は、テーブル構造に関する情報が提供されるDBMS でのみ意味があります。テーブル構造に関する情報がどの程度詳しいかは、DBMSに依存します。

注意：

この特性は、DBMSには影響しません。

関連トピック：

Magic xpaとデータベース間でのテーブル構造の不整合に対応するには


データベース 特性 インデックスチェック

ホーム > リファレンスガイド > 設定 > データベース > データベース特性 > インデックスチェック

インデックスチェック

ISAMデータベースでのみ有効です。

Magic xpaにはインデックスチェック機能があり、この機能を使用することでデータの整合性を維持できます。

この特性を「有効」にしておくと、ユーザがレコードにデータを入力しようとした際、データテーブルが検索され、そのデータと同じインデックスがないかどうかチェックされます。ユーザが入力しようとしたデータが、Magic xpaの［データ］リポジトリで［重複不可］として定義されているインデックスと重複する場合、［重複インデックス］エラーメッセージが出力されます。また、その時点で処理は停止し、ユーザは別のデータを入力しなければならなくなります。

この機能はMagic xpaの機能であり、プログラミングは不要です。ただし、DBMS によっては、このチェックには時間がかかることもあります。その場合、この機能は「無効」にしても結構です。この場合の動作は、DBMS 側の重複データ処理の仕様に依存することになります。

デフォルト設定は、データベース項目のDBMSタイプによって異なります。

［インデックスチェック］特性の設定値は、以下の通りです。

  • オン ………Magic xpaのユニークなインデックスチェックを有効にします。

  • オフ……… Magic xpaのユニークなインデックスチェックを無効にします。

デフォルト値は、データベースで使用するDBMSのタイプに依存します。


データベース 特性 サーバソート

ホーム > リファレンスガイド > 設定 > データベース > データベース特性 > サーバソート

サーバソート

この設定は、IBM i データベースでのみ有効です。

Query フィールドをオープンするために、Magic xpaで定義された仮想インデックスを使用して、ソート処理を行うかどうかを指定します。

サーバソートが設定された場合、Magic xpaは独自のソート処理を実行せず、仮想インデックスを現在のテーブルに追加して使用します。


データベース 特性 Magicロック

ホーム > リファレンスガイド > 設定 > データベース > データベース特性 > Magicロック

Magicロック （SQL系：N=なし，ISAM系：T=テーブル）

この特性は、主にISAMデータベース用です。

Magic xpaのロック機能は、トランザクションなしで、MGLOCKファイルによって、レコードレベルおよびテーブルレベルで管理されます。このロック機能はMagicロックと呼ばれ、Magicロック特性を[レコード]や[テーブル]に設定すると有効になります。SQL RDBMSロックは常に起動されているので、物理トランザクションモードタスクでSQLデータベースへアクセスする場合、通常はロック機能を追加する必要ありません。

この設定を[N=なし]に設定すると、使用するデータベースのロック制御のみが有効になります。

  • N=なし …… Magic xpaによるロック制御は行われず、データベースによる同時アクセス制御機能のみが働きます。

  • R=レコード …… １つのレコードに対して同時にアクセスできるユーザの制御にMagic xpaによるロックを使用します。

  • T=テーブル …… １つのテーブルに対して同時にアクセスできるユーザの制御にMagic xpaによるロックを使用します。

  • B=両方 …… 「R=レコード」と「T=テーブル」の両方の機能が働きます。

（ただし、これらの設定を行った場合にも、データベースによる同時アクセス制御機能は働きます）。

「テーブル」や「両方」が設定された場合、実行エンジンはテーブルを無限にオープンしようとします。「なし」が設定され、ロックのためテーブルのオープンに失敗した場合、タスクは終了します。

この特性は、SQLiteでは使用しません。


データベース 特性 ロックパス

ホーム > リファレンスガイド > 設定 > データベース > データベース特性 > ロックパス

ロックパス

RDBMSを使用してデータにアクセする時、Magic xpaはデータの物理位置を認識していません。データがリモートのホストマシンにあっても、ローカルデータとして処理されます。この場合には、Magic xpaのロック機能は働きません。この機能では、同じデータにアクセスする全てのユーザが同一のロックファイルを共有している必要があるためです。

Ver8では、テーブルロックは、プログラムのアクセスモードと共有モードの設定（［プログラム］リポジトリの［DB テーブル］）によって決まりました。このため、マルチユーザによりアクセスが実行されるオンライン環境では、アクセスモードと共有モードの設定によっては、タスクの実行中はテーブルがロックされてしまうということが発生しました。この問題は、データベースがSQL の場合は改善されています。つまり、DBMS のテーブルロック機能を使用することで、ロック時間を縮小することができるようになりました。

Magicロックを「N=なし」または「R=レコード」にしておくと、Magic xpaによるテーブルレベルのロックは実行されません。この場合、DBMS によって実行されるトランザクションの種類によって、テーブルの共有モードが決まります。したがって、DBMS の保護書込トランザクションを使用したい時には、Magic Magicロックを「N=なし」または「R=レコード」にしておきます。

この特性を「R=レコード」または「B=両方」に設定しておくと、レコードロックについても、データベースのロックメカニズムに加えて、Magic xpaの内部ロックメカニズムも使用されるようになります。この場合、データベースにアクセスする全てのユーザによって共同で使用されるディレクトリを指定しなければなりません。このディレクトリは、この［ロックパス］特性で指定します。

この［ロックパス］特性は、他の関連パラメータ全てに優先されます。

ここでロックパスを指定した場合、データベースのロックは、そのパス上にあるロックファイルにしたがって行われるようになります。また、ロックパスを指定する場合、そのパスは、テーブルにアクセスを実行するユーザ全てが使用できなければなりません。さもなければ、データの競合が発生する危険が生じます。

この値には論理名を指定できます。 この特性はオプションです。

この特性は、SQLiteやLocalデータベースでは利用できません。

関連トピック：

Magicロック

ロックファイル

ロック

ロック方式

タスクのネストとロック


データベース 特性 データベース情報

ホーム > リファレンスガイド > 設定 > データベース > データベース特性 > データベース情報

データベース情報

ここには、データベース独自の情報を指定します。指定した情報は実行時にRDBMSに渡されます。

空白を区切り文字にして複数のキーワードを指定することができます。

キーワードと値は、全て大文字で指定してください。

この特性は、オプションです。

関連トピック：

データベース情報(Oracle)

データベース情報(MS-SQL Server)

データベース情報(ODBC)


データベース 特性 ヒント

ホーム > リファレンスガイド > 設定 > データベース > データベース特性 > ヒント

ヒント

ＭS-SQL ServerなどのRDBMSでは、照会処理にオプティマイザを指定することができます。ここには、SELECT文に連結する文字列が指定できます。

特殊な場合にのみ、オプティマイザ・ヒントを使用することを推奨します。MS-SQLまたはOracleに送ることができるオプティマイザ・ヒントの一覧は、MS-SQLまたはOracleのドキュメントを参照してください。

MS-SQL

［データベース特性］ダイアログボックスでFORCE_INDSEXヒントを指定すると、このデータベースを使用するすべてのデータソースのすべてのインデックスに適用されます。

Oracle

ヒントの構文は、以下の通りです。

/*+ Oracle Hint */

関連トピック：

SQLに関する考慮事項

データベースオプティマイザの動作を制御するには


設定 データベース 特性 照合順序

ホーム > リファレンスガイド > 設定 > データベース > データベース特性 > 照合順序ファイル

照合順序（ACS）ファイル

ここでズームすると、「ファイルを開く」ダイアログが表示されます。このダイアログでACS ファイルを指定します。

ファイルが指定されない場合は、［データベース情報］特性のACS文字列を参照します。そこにも指定されていない場合は、［動作環境］ダイアログの［照合順序ファイル］特性の定義内容を参照します。

ここで指定されたファイルは、DBMS の照合順序ファイルより優先されます。新しいDBMS が選択された場合は、照合順序ファイルも指定し直してください。

この設定で表示されるデフォルトのACSファイルは、DBMSの設定値が反映されています。DBMSを変更すると、ACSファイルも変更されます。

一旦データベースへの接続が作成されると、明示的に切断されたりMagic xpa を終了するまで変わりません。現在の実行しているアプリケーションは、接続をオープンしたままになります。したがって、［データベース特性］の変更内容は、データベースへの次の接続時に反映されます。［データベース特性］の変更を反映させるにはMagic xpaを再起動してください。

関連トピック：

SQLに関する考慮事項


設定 データベース 特性 配列サイズ

ホーム > リファレンスガイド > 設定 > データベース > データベース特性 > 配列のサイズ

配列のサイズ

SQLに対するMagicゲートウェイは、配列処理をサポートしています。データベースからレコードを取得する場合、ゲートウェイは1度に1レコードずつ取得するのではなく、まとめて取得することによってネットワークのトラフィックを減らします。

Magic xpaはレコードに関して独自の配列サイズを使用していますが、変更することもできます。大きなテーブルを照会する場合、配列サイズを増やすと処理能力が向上しますが、Magic xpaのデフォルト値を使用することをお勧めします。デフォルト値は、特別な場合にのみ変更してください。

配列サイズは、新しいテーブルを作成した時にだけ、［データソース特性］にコピーされます。

関連するゲートウェイ：MS-SQL、Oracle

デフォルト値：0


データベース 特性 テーブルの存在チェック

ホーム > リファレンスガイド > 設定 > データベース > データベース特性 > テーブルの存在チェック

テーブルの存在チェック

実行時、アクセス先のSQL テーブルが存在するかどうかのチェックを行うか否かを指定します。

この特性が「有効」な場合、チェックを実行し、テーブルがない場合には、そのテーブルをMagic xpaが作成します。なお、この機能を使用すると、チェックのために処理速度が低下する場合があるので注意が必要です。

この特性が「無効」な時は、存在チェックを行わないため、もしテーブルが存在しない場合は、RDBMS からエラーが出力されます。

関連トピック：

Magic xpaからデータベーステーブルを作成するには


データベース 特性 XMLの設定

ホーム > リファレンスガイド > 設定 > データベース > データベース特性 > XML設定

XMLの設定

以下の実行特性は、［データソースタイプ］が「X=XMLファイル」の場合に［データベース特性］を開くと表示されます。

  • 一時データベース …… XML以外のデータベースを選択してください。フラットビューを保存する場合に使用されます。

  • トランザクションサポートは、指定されたDBMSに依存します。

  • デフォルトのフラットビューは「Default XML Memory Database」です。

  • アプリケーションがオープンされると、定義取得で使用されたXMLデータベースか否かに関わらず、フラットビューのDBMSが使用する全てのXMLソースに自動的に追加されます。

  • 実行時にXMLデータソースをオープンすると、［フラットビュー］テーブルは、フラットビューデータソースの特性（位置や、ユーザ名、パスワードなど）を使用してオープンされます。 DBMSゲートウェイがロードされない場合は、テーブルはオープンされません。


ロギング

［設定］メニューから［ロギング］を選択すると［ロギング］テーブルにアクセスすることができます。

［ロギング］ダイアログには、［設定］タブと［DBMS］タブから構成されています。

［動作設定］ダイログの［ロギングテーブル表示］を「Yes」にした場合のみ有効になります。

Magic xpaでは、BASICロギングレベルを使用することができます。

このレベルは、製造（そして、テスト)システム、特に通信範囲とコンポーネントのハンドシェークに関するトラブルシューティングで使用できます。（サポートバージョン：2.4）

関連トピック：

デバッガによって記録される情報を制御するには


ロギング 設定

ホーム > リファレンスガイド > 設定 > ロギング > ［設定］タブ

［設定］タブ

以下のオプションが利用可能です。

オプション | 出力される内容 | MAGIC.INI とコマンドラインの名前
タスク | タスクのオープン／クローズに対応するイベント | Task
レベル | （前／後のような）様々な処理レベル | Levels
データビュー | （データ定義、範囲／位置付のような）様々なデータビューオプション | DataView
再計算 | 再計算処理 | Recompute
処理フロー | （項目更新やコールのような）処理コマンド | Flow
イベント | トリガされるイベント | Events
クライアントの動作 | クライアント側の動作 初期接続時にこのオプションが「No」に設定されている場合、クライアントにログが作成されません（作成されないか、サーバに送信されません）。 何度もサーバと接続する必要があるため、「Yes」に設定された場合、パフォーマンスが低下する可能性があります。 | LogClient
ゲートウェイ | ゲートウェイの処理 | Gateway
トランザクションキャッシュ | トランザクションキャシュ（遅延トランザクションのレコード操作命令を表示するために使用します) | TransCache
バックグラウンドメッセージ | バックグラウンドメッセージがフィルタされるかどうかを指定します。 | BackgroundMsg
開始/終了 メッセージ | ロギングモニタの処理の開始と終了の整合処理を有効にするかどうかを指定します。 | BeginEndMsg
ログ同期 | ログのオープン／クローズを毎回行うかどうかを指定します。「No」に設定された場合、Magic xpaは全てのステートメントをログファイルに書き込みません。 | LogSynch
外部ログファイル名 | ログ情報を外部ファイルに書き込むかどうかを指定します。パスを指定しない場合、アプリケーションの作業フォルダ上に作成されます。 | ExternalLogFileName

Magic xpa StudioにてF7またはCtrl+F7を押下してプログラムを実行させた場合、ロギング処理は以下のように動作します。

  • ロギングオプションの少なくとも1つが「Yes」に設定され、［外部ログファイル名］特性は空白ではなくなります。

  • ロギングオプションの少なくとも1つが「Yes」に設定され、アクティビティモニタが表示されます。

Magic実行エンジンによってアプリケーションが実行された場合、ロギング処理は以下のように動作します。

  • ロギングオプションの少なくとも1つが「Yes」に設定され、［外部ログファイル名］特性は空白ではなくなります。

  • ロギングオプションの少なくとも1つが「Yes」に設定され、アクティビティモニタが表示されます。リモートのMagic xpa Studioが実行エンジンに接続され、Magic xpa Studio側のアクティビティモニタが表示されます。

上記の設定は、即時有効になります。

ログは、［デバッグ］メニューの［デバッグモード］に影響されません。ログ情報は、ロギングの停止状態以外は、ログに送られます。

有効なファイル名があれば、Magic xpaの実行エンジンが起動されるとロギングか開始されます。

関連トピック：

［DBMS］タブ


ロギング DBMS

ホーム > リファレンスガイド > 設定 > ロギング > ［DBMS］タブ

［DBMS］タブ

［DBMS］タブには、ログをフィルタリングするためのオプションがあります。

ここに設定された内容は、即時に有効になります。

［ログレベル］カラムには、Magic xpaのデータベースゲートウェイによって作成されるログのレベルを定義します。以下のオプションがあります。

  • N=なし …… ログファイルが作成されません。

  • D=開発者用 …… MSJの技術部門向けのログファイルが作成されます。

  • S=サポート用 …… アプリケーション開発者向けのログファイルが作成されます。

  • C=ユーザ用 …… SQLコマンドが出力するログのみ出力されます。

ログレベルはMAGIC.INIファイルの［MAGIC_DBMS］セクションの5番目の項目でも指定できます。ここで、"N"、"C"、"D"、"S" を設定します。

たとえば、"N"を設定した場合は以下のようになります。

［MAGIC_DBMS］

Btrieve = 1、NotAllowNull、10.3、Btrieveパラメータ、N、NotLogSync、0、+ 0、NotCheckExist、

注意：

ログレベルの設定によってアプリケーションのパフォーマンスに影響します。このため、ログレベルの設定は、デバッグの間だけ行うようにお勧めします。

この設定は、顧客の環境では無効（"N"）に設定することを推奨します。

Localゲートウェイのロギングは、InternalLogLevel設定で行われ、このカラムではサポートされません。

関連トピック：

［設定］タブ

データベースの動作を記録するには

データベースに送信されるSQLステートメントを参照するには


BASICロギングレベル

Magic xpaでは、BASICロギングレベルを使用することができます。

このレベルは、システムの開発やテストでのトラブルシューティング（特に通信範囲やコンポーネントのハンドシェークに関するもの）で使用できます。（サポートバージョン：2.4）

ロギングレベルを"B"に設定することによって、いくつかのモジュールで基本的なロギング機能を使用することができます。モジュールとロギングレベルの設定に対応する位置は以下の通りです。

  • Magic RIAクライアント …… Windows RIAモジュール用。これは、RIAの実行特性ファイル（publish.html)のInternalLogLevelで定義されます。他のログレベルでは、クライアントはサーバ（Magic.iniファイルの［MAGIC_RIA］セクションのInternalLogLevelで設定)で定義されるレベルによるログレベルを使用します。"B"ログレベルはこのメカニズムを使用せず、サーバ側でどの様なログレベルが定義されても無視します。

  • インターネットリクエスタ …… これは、Mgreq.iniファイルのLogパラメータで定義されます。

  • MRB …… インターネットリクエスタと同様で、MRBは同じフォルダにあるMgreq.iniによる基本的なリクエスタレベルのメッセージを記録します。 さらに、Mgrb.iniファイルのLogパラメータに基づいて、BASICレベルのロギングをMRBのレベルで定義することができます。

  • Magicサーバ …… RIAクライアント用です。インターネットリクエスタと同様で、サーバは同じフォルダにあるmgreq.iniで定義されリクエスタレベルのメッセージを記録します。さらに、BASICレベルのロギングは、サーバレベルに定義することもできます。logingパラメータで定義されたり、ExternalLogFileNameに記述されたサーバログとは異なり、'B'ログレベルは［MAGIC_RIA］セクションから取得され、GeneralErrorLogで定義されたエントリに出力されます。

注意：

  • 各RIAクライアントは、ローカル側のディスクにローカルに情報を記録します。管理者がこのローカルディスクにアクセスした場合、このログファイルを読み出すことができます。パフォーマンスの視点から、ネットワーク経由でサーバ側に絶えずこのログを送ることはできません。

  • logの値はカンマで区切られ、ハイフン(-)は存在しない値を意味します。

  • logファイルのサイズがしきい値に達すると、新しいlogファイルが作成され、古いファイルはクローズされます。

  • 並行プログラムが呼び出されると、新しい実行エンジンが起動され、新しいログファイルが作成されます。

各モジュールのBASICレベルで出力される情報は、以下の通りです。

RIA クライアント

  • モジュール名(RIA)

  • PID

  • 次のフォーマットのUTCタイムスタンプ：YYYY-MM-DDThh:mm:ss.sZ

  • Message entering / Message leaving

  • コンテキストID

  • セッション・カウンタ …… 各コンテキスト内の各リクエストに対するカウンタ

  • リクエストID …… リクエストに対するユニークなID

  • クライアントID…… RIAクライアントの発信元を示すリクエスト内のID

  • サーバID（Magicサーバのホスト名)

  • 応答時間

  • HTTPの戻り値

  • HTTPヘッダ

  • HTTPメッセージサイズ（バイト）

例：

RIA,5628,2014-02-13T11:20:21.2729430Z,REQ,498685225412187200,2,-,000000003C082C7C_D_5628,10.9.6.191,93,0,MgxpaRuntimeExecutionTime: 94,0|MgBrokerWaitTime: 0|uniCompressedMessage: Y|Content-Length: 1384|Content-Type: text/html|Date: Thu, 13 Feb 2014 11:20:21 GMT|Server: Microsoft-IIS/7.5|X-Powered-By: ASP.NET,1510

リクエスタ

  • モジュール名 (WebReq)

  • PID

  • 次のフォーマットのUTCタイムスタンプ：YYYY-MM-DDThh:mm:ss.sZ

  • Message entering / Message leaving

  • コンテキストID

  • セッション・カウンタ …… 各コンテキスト内の各リクエストに対するカウンタ

  • リクエストID …… リクエストに対するユニークなID

  • クライアントID…… RIAクライアントの発信元を示すリクエスト内のID

  • サーバID（Magicサーバのホスト名/ポート番号)

  • HTTPメッセージのサイズ（バイト)

  • HTTPヘッダ

例：

WebReq,5624,2014-02-13T12:04:37.15310Z,REQ,533973341325014016,10,1234,00000000F1CCF3C8_D_5624,my_server/5115,1510,InitialCookieName=Mycookie1 AuthenticationCookieName=Mycookie2

MRB/Magicエンジン

  • モジュール名 (Broker/Server)

  • PID

  • 次のフォーマットのUTCタイムスタンプ：YYYY-MM-DDThh:mm:ss.sZ

  • Message entering / Message leaving

  • コンテキストID

  • セッション・カウンタ …… 各コンテキスト内の各リクエストに対するカウンタ

  • リクエストID …… リクエストに対するユニークなID

  • クライアントID…… RIAクライアントの発信元を示すリクエスト内のID

  • サーバID（Magicサーバのホスト名/ポート番号)

  • 実行時間

例：

Broker,5423,2014-02-13T12:09:59.38045Z,REQ,566513635659557952,1510,3668,000000003C082C7C_D_5423,my_server/5115,2300

エラー処理

エラーが発生した場合、ログレベルが"B"に設定さているすべてのモジュールが自動的に（現在のリクエストのみの）追加情報（処理されるリクエストに関する情報）を書き込みます。エラーに関する追加情報は、エラーが発生したモジュールによって記録されます。

ここには以下の情報が含まれています。

  • タイムスタンプ

  • エラーコード

  • エラーの内容

  • Magic xpaサーバに対しては、Magic xpa（アプリケーション)の実行時ツリーが記録されます。

  • Magic xpaサーバについては、現在動作中の全てのデータベース接続のリストが、関連するSQLエラーや情報と一緒に記録されます。.

  • スタックトレース

例：

セクション内に以下の様な情報が書き込まれます。

04/12/2013 16:49:30.123 Error: 120 test error

Runtime Tree: Prg A, Prg B.

Database Connections:

Oracle, my user, 153, error 153 description

MSSQL, my user2, ,

Stack trace:

Xxxxx xxx xx xx

リクエストが適切に終了し、その応答を返すことができないどのようなエラーも、エラーとして扱われます。 重複インデックスは単にエラーではなく実用的な問題と考えられます。

スレッドの異常終了、OSからのシグナルとコンテキストを終了することを強制する他の致命的エラーがエラーとして考えられます。

注意：

データベースで発生したエラーの場合、SQLステートメントが記録されます。

MgxpaRIABuildNumber

クライアントのログレベルがBASICの場合、MgxpaRIABuildNumberヘッダがリクエストに追加されます。この場合、全てのリクエストに対して（クライアントのLeavingメッセージとWebリクエスタのEnteringメッセージとして)クライアントから送られます。


論理名

Magic xpaには論理名機能が用意されています。この機能は、アプリケーションを移植する時に有効です。この機能を使用することで、物理記憶媒体やOSのネーミング規則から離れて、アプリケーションを開発できます。つまり、アプリケーションの移植の際、［論理名］テーブルが変換テーブルとして使用され、その設定にしたがってアプリケーションが変換されるようになります。論理名は、ファイル名またはパスに使用できます。

［論理名］テーブルには以下のカラムがあります。

カラム

内容

#

テーブルの行番号を表す連番が自動的に表示されます。

名前

プロジェクトで使用する論理名を指定します。この論理名は、実行時、［実行名］カラムで指定された値に置き換えられます。論理名は、同じプロジェクトであれば、プラットフォームやOSが変わっても同じです。

注意：

論理名の大文字と小文字は区別されます。

論理名には、以下の文字が使用できません。

  • 0x1F以下の制御コード（エスケープシーケンス）

  • ?

  • *

  • <

  • >

実行名

ここには、実際の名前を指定します。ファイルへのアクセスの際には、論理名に代わって、この名前が使用されます。この名前は、Magic xpaのインストール環境に応じて変更してください。

論理名の前後に「%」を付加することで実行名の中に別の論理名を使用することができます。

Magic xpaは［論理名］テーブルの設定内容に基づいて実行時に論理名を変換します。

詳細は、論理名の使用法を参照してください。

注意：

以下の論理名は、予約語のため登録できません。［論理名］テーブルに登録された状態になっています。この論理名は削除することも、修正することもできません。

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

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

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


論理名 論理名の使用方法

ホーム > リファレンスガイド > 設定 > 論理名 > 論理名の使用方法

論理名の使用方法

実行時、入出力処理を行うためにファイル名を確定させる時などに、［論理名］テーブルの論理名が参照されます。ファイル名は左から右にスキャンされ、［論理名］記述が検出されると、［論理名］テーブルから［実行名］カラムの値を持ってきて、置き換えます。論理名は、1 つのファイル名の中に複数個使用することもできます（例えば、ディスクドライブ、ディレクトリ、ファイル名にそれぞれ論理名を使用する。 等）。

論理名情報は、MAGIC.INIファイルの［MAGIC_LOGICAL_NAMES］セクションにあります。

注意：

リッチクライアントタスクでは、サーバ側の関数としてのみサポートされます。

論理名の構文

論理名の構文は、次のようになります。

%logicalname%

ここで、最初の"%"は、論理名が始まることを示します。logicalname は、論理名自体です。最後の"%"は、論理名が終わることを示しています。

注意：

論理名の大文字と小文字は区別されます。

論理名の使用に関する規則

  • "%"という文字は、倫理名を区切ること以外の目的で、ファイル名に使用することはできません。

  • 変換中は、倫理名とその区切り文字が［倫理名］テーブルによって実行値に置き換えられます。このため、式で倫理名を使用したい場合、それは文字列の一部でなければなりません。これは、シングルクオーテーションで囲みます。

  • ［倫理名］テーブルに該当する倫理名が見つからない場合、ファイル名から削除されます。

  • 終了の区切り文字がない場合、テキストの最後までが倫理名として扱われます。

  • 複数行編集や［リッチテキスト］コントロールではサポートされません。

  • MLSシステムで使用するため設定されたプロジェクトで使用される文字列は、ANSIからUnicodeに変換されます。


言語

ここでは、言語表示を切り替えるための変換ファイルを指定します。この変換ファイルは、Magic xpaの実行時に使用されます。

Magic xpaには多言語サポート機能が用意されています。この機能を利用して、いずれかの言語向けに作成したアプリケーションを別の言語向けのアプリケーションとして提供することができます。

［言語］テーブルには以下のカラムがあります。

カラム | 内容
# | テーブルの行番号を表す連番が自動的に表示されます。
名前 | 変換後に表示される言語が分かりやすく識別できるような名前を入力します。テキストは128バイトまで入力できます。
実行名 | 言語変換ファイルをフルパスで指定します。このファイルが、アプリケーション実行時の表示言語の変換に使用されます。ここからズームすると、Windows 標準の［ファイルを開く］ダイアログが表示され、ファイルを選択できます。 アプリケーション実行時に使用する最初の言語は、［動作環境］ダイアログの［デフォルト言語］（［外部参照］タブ）で指定します。 アプリケーションでは、関数を利用して必要に応じて言語（言語変換ファイル）を変更し、実行中に表示を切り替えることができます。

Magic xpaの多言語サポートには、次のような制限があります。

  • Magic xpaのWindowsバージョンのみでサポートします。

  • テキストが左から右に入力される言語でのみ有効です。

  • 複数行編集やリッチテキストコントロールでは無効です。

  • プロジェクト内の文字列は、Unicodeに変換されます。

関連トピック：

多言語ファイルの作成

言語サポートの設定

多言語システムの使い方

マルチ言語サポート (Mastering Magic xpa)


言語 多言語ファイルの作成

ホーム > リファレンスガイド > 設定 > 言語 > 多言語ファイルの作成

言語変換ファイルの作成

言語変換ファイルは、コマンドラインユーティリティの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 | キリル

コマンドラインユーティリティ（MLS_BLD）は、作成ファイルの存在をチェックしないため、同じファイル名が存在した場合、常に上書きします。


言語 言語サポートの設定

ホーム > リファレンスガイド > 設定 > 言語 > 言語サポートの設定

言語サポートの設定

［開始言語］を設定するには

  1. ［オプション］メニューから［設定／言語］を選択し、［言語］テーブルを開きます。

  2. 言語名と多言語ファイルの名前を定義します。

  3. アプリケーションで多言語サポートを実行するためには、［デフォルト言語］（［設定／動作環境／外部参照ファイル］）に、使用する言語を言語テーブルから選択します（次セッションから有効）。または、直接MAGIC.INIファイルの［MAGIC_ LANGUAGE］セクションにエントリを登録し、その言語変換ファイルが使用されるように指定します。

  4. 言語を動的に変更するには、SetLang関数を使用してください。また、GetLang関数を使用することで現在利用している言語を確認することができます。

MLS機能は、テキスト表示のみ反映されます。実際のデータは変換されません。


言語 多言語システムの使い方

ホーム > リファレンスガイド > 設定 > 言語 > 多言語システムの使い方

多言語システムの使い方

言語を指定しておくと、アプリケーションの実行時には、次の個所のテキストが言語変換ファイルを用いて自動的に変換表示されます。

  • テキストコントロール

  • メニュー項目テキスト

  • 自動ヘルプのテキスト

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

  • ウィンドウタイトルテキスト

  • セレクト項目名のテキスト

  • インデックス名のテキスト

  • インデックスセグメント名のテキスト

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

  • グループコントロールのタイトル

  • チェックボックスのタイトル

  • プッシュボタンのタイトル

  • チョイスコントロール（ラジオボタン、コンボボックス、リストボックス、タブコントロール）の選択肢のテキスト

各コントロールのフォント属性は式の形で定義できます。実行時には、この式が評価され、言語変換ファイルを基に変換が行われます。

開発時に、テキストのサイズのチェックが実行されるような処理（サイズ調整やAPG など）を使用してコントロールを作成した場合、そのコントロールは、開発時に使用する言語（基準言語）のテキストのサイズを使用して作成されます。したがって、実行時に別の言語に変換した時の表示サイズまでは考慮されていませんので、ご注意ください。

選択コントロールのテキストを変換する場合、そのコントロールの選択肢の数が、変換前と変換後で同じになるようにします。数が合わない場合の動作は保証されません。

言語関連の関数としては、GetLang とSetLang があります。


プリンタ

［プリンタ］テーブルには、アプリケーションの実行時に利用可能な印刷デバイスと属性を設定します。このテーブルの印刷デバイスはいずれも、Magic xpaの論理プリンタです。この論理プリンタに対しては、Magicアプリケーション内でのみ参照が可能です。［プリンタ］テーブルでは、入出力ファイル（OSのテキストファイル）を印刷デバイスに出力するための設定を行うこともできます。

アプリケーションの実行時、プリンタメディアに対する出力処理が実行されると、［プリンタ一覧］から［プリンタ］テーブルの設定内容を参照して物理プリンタの属性を取得します。

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

プリンタテーブル情報は、MAGIC.INIファイルの［MAGIC_PRINTERS］セクションにあります。

255行まで登録可能です。

［プリンタ］テーブルには以下のカラムがあります。

カラム

内容

#

テーブルの行番号を表す連番が自動的に表示されます。

名前

論理プリンタの名前です。この名前は、［プリンタ一覧］に表示されます。このプリンタ名は、データ文字列としてMagicプログラム内に登録され、プリンタ識別子として使用されます。アプリケーションの実行時には、このプリンタ名によって［プリンタ］テーブルが検索され、実際の物理プリンタデータと関連付けられます。

キュー

ここには、物理プリンタを指定します。カレントの論理プリンタに対する出力データは全て、この物理プリンタに送られます。ここにはOSに登録されているプリンタ名を指定します。該当するプリンタが見つからない場合は、OSのデフォルトプリンタ（例えばWindowsではLPT1など）に割当てられます。

GUI形式印刷の場合、［プリンタ］テーブルの［キュー］カラムに印刷マージンのパラメータを設定することで用紙の周りの余白を設定することができます。この設定により、用紙の左上隅から指定した左上マージン値を移動した位置を原点として、設定した余白でフォームのレイアウトを印字するようになります。 本指定がない場合には、プリンタモデルの印字可能領域の左上を原点として、フォームレイアウトを印字します。

パラメータは、スタイル設定ユーティリティ（Setstyle.exe）または、プリンタ設定ユーティリティ（Mgprn.exe）で設定ができます。 設定方法の詳細に関しましては、ユーティリティの使用方法 (UTIL.HLP） を参照してください。

注意：

キュー名の先頭の２文字に、'WP'または'DB'（大小文字区別なし）が指定されている場合、テキスト形式印刷では使用できません。

コマンドファイル

この設定は、テキスト形式印刷を行う場合のみ関係します。

ここには、プリンタ制御コードが格納されているファイルの場所と名前（OSでの名前）を指定します。このファイルを使用して、Magic印刷属性が解析されます。コマンドファイルはラベルとプリンタ制御コードで構成され、Magic印刷属性はラベルを使用して指定します。Magic xpaのフォーム印刷に際しては、コマンドファイルの情報にしたがってMagic xpaの論理的印刷属性が変換されることになります。

ラベルは、同じものを複数のコマンドファイルで使用することがあります。したがって、異なるコマンドファイルを用意することで、同じアプリケーションでも異なる印刷結果が得られることになります。

変換ファイル

この設定は、テキスト形式印刷を行う場合のみ関係します。

ここには、印刷に必要な変換ファイルの場所と名前（OSでの名前）を指定します。この変換ファイルには、Magic xpaの内部キャラクタコードと物理プリンタのコードの対応表を置きます。変換ファイルには256までの文字列を定義することができ、それぞれ、ASCII キャラクタコード（Magic xpaの内部キャラクタセット）を対応させます。

このファイルで指定した文字列がプリンタに送られます。プリンタに送られる文字列には、シングルバイトコードのほか、マルチバイトコードを定義することもできます。また、この文字列に制御コードを含めることもできます。

行

印刷の際のページサイズを指定します。このページサイズは、物理プリンタのページサイズと同じである必要はありません。ページサイズは行数を使用して指定し、通常は物理プリンタのページサイズ（行数）より小さい値にしておきます。

ここで指定された値は、プリンタ出力が実行される時、Magic xpaによる内部的にカウント処理に使用されます。ここで指定されている行数のデータが送られた後、Magic xpaからプリンタにフォームフィード信号が送信されます。この値は、カレントのプリンタのデフォルトの行数として使用されますが、上書きすることもできます。［フォーム出力］処理コマンドで使用される［入出力ファイル］テーブルの［行］カラムに値を指定することでこちらが優先されます。


HTMLスタイル

［HTML スタイル］テーブルでは、HTMLスタイルタグの設定が可能です。ここで設定したタグは、HTMLフレームセット［フォーム］エディタで使用できます。

［プリンタ］テーブルには以下のカラムがあります。

カラム | 内容
# | テーブルの行番号を表す連番が自動的に表示されます。
名前 | HTML スタイルを示す名前です。テーブル内で同じ名前は使えません。
HTMLタグ | HTML スタイルを定義するタグ（複数可）で、ここで指定したタグは、Magic xpaによって作成されるタグと組み合わされます。 例： BORDER=0 では、ハイパーリンクオブジェクトの境界が表示されなくなります。


プリンタ属性

Magic xpaの論理的なプリンタ属性を定義します。［プリンタ属性］テーブルは、次の方法でアクセスすることができます。

［プリンタ属性］テーブルは、プリンタの印刷スタイルとMagic xpaの色を組み合わせた論理的な印刷スタイルの構築に使用されます。色は、選択されたプリンタ属性を表すために使用されます。論理印刷スタイルは、実行時に実際の印刷制御コードとして出力されます。論理スタイルの変換は実行時に行われるため、アプリケーションには特定のインストール処理における物理プリンターに関する事前知識を必要としないで定義できます。印刷スタイルは、プリンター制御ファイルで定義された実際のプリンター制御コードに変換されます。

複数の印刷スタイルが、Magicの1つの論理的な印刷スタイルを作成するために結合されます。

このテーブルで編集された設定内容は、プリンタ属性ファイルに保存されます。

このテーブルの項目は、それぞれ特定のMagic xpaの論理的な印刷スタイルに対応します。

注意：

［テキスト形式］コントロールの［色］特性からズームすることで有効なプリンタ属性が表示されます。

［プリンタ属性］テーブルは、［オプション→設定→プリンタ属性］を選択することでアクセスされることができます。

［プリンタ属性］テーブルには以下のカラムがあります。

カラム

内容

#

テーブルの行番号を表す連番が自動的に表示されます。

名前

プリンタ属性の名前を指定します。この名前は、指定のフォーム領域のプリンタ属性を選択した時に、［プリンタ属性一覧］に表示されます。

プリンタコマンド

［プリンタコマンド］は、Magic xpaのプリンタ属性を構成する、1つまたは複数のプリンタ印刷スタイルの集合です。プリンタ印刷スタイルは、物理プリンタのフォントまたは印刷書体が定義されています。複数のプリンタコマンドを1つの論理印刷属性にまとめることで、プロジェクトで使用するカスタム印刷スタイルを作成することができます。

この設定の値は、［プリンタコマンド一覧］を表示して選択します。［プリンタコマンド一覧］には、［プリンタ］テーブルの各Magicプリンタに指定されているプリンタコマンドファイル内のスタイル名が一覧表示されます。

複数のコマンドファイルに存在するスタイル名があっても、［プリンタコマンド一覧］には１度しか表示されません。

実行時には、論理印刷属性が実際のプリンタ制御コードに変換されると、その印刷属性に定義されている全てのプリンタコマンドの接頭辞部分が、［プリンタコマンド］設定に登録されている順番にプリンタに送信されます。続いて、フォームの項目がプリンタに送られます。フォーム項目が送られると、次に、印刷属性に定義されている全てのプリンタコマンドの接尾辞部分が、［プリンタコマンド］設定に登録されている順に送信されます。

色

プリンタ属性に関連付けられている色の番号です。色を選択するには、このカラムをダブルクリックして、［動作環境］ダイアログで定義されている［基本色定義］テーブルにズームします。

色は、プリンタ属性をフォームに割り当てる場合に使用されます。色は印刷されません。プリンタ属性の使用内容を視覚的に表現しているだけです。

色がこのように利用される理由は、フォームの実際の領域を消費することなく、プリンタ属性の設定の可否を示す視覚的なインジケータとして機能するからです。

出力テキストのセクションに印刷スタイルを指定するも参照してください。

関連トピック：

帳票印刷フォーム


構文チェック メッセージテーブル

ホーム > リファレンスガイド > 設定 > チェックメッセージ

チェックメッセージテーブル

[チェックメッセージ]テーブルで、構文チェッカーの各メッセージのレベルを変更することができます。

各メッセージに対して、エラー、警告、推奨、または無視のレベル設定を行うことができます。全てのメッセージがテーブルに表示されます。

[設定]メニューの[チェックメッセージ]をクリックすると、[チェックメッセージ]テーブルが開きます。

ここでは、メッセージを追加したり、削除したり、メッセージ内容を変更したりすることはできません。

チェックメッセージテーブルにおいてユーザによって変更された区分情報は、外部の Chk_std.dat ファイルに保持されます。[動作環境]ダイアログの[外部参照]タブの[チェックメッセージテーブルファイル]でこのファイル名を指定できます。指定されない場合は、Magic xpaのデフォルト設定が有効になります。

チェック結果は、以下の４つに分類されます。

  • E=エラー …… 文法上間違っている記述を示します。

  • W=警告 …… 文法上は間違えではないが、効率が良くなかったり、ロジック上の間違いとなる記述を示します。

  • R=推奨 …… よりよい設定内容に関する情報を提供します。

  • I=無視 …… チェック対象になりません。

チェックレベルについての詳細は、「最小チェックレベル」の説明を参照してください。

チェックメッセージの一覧は、ここを参照してください。

関連トピック：

構文チェックの表示メッセージを絞るには


構文チェッカーのメッセージ

推奨

[テーブル]コントロールの[明細行]特性を設定してください.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム／[テーブル]コントロール／[明細行]特性

意味：[テーブル]コントロールの[明細行]特性の値が 「0」 で式が指定されていない場合にこのエラーが発生します。

項目は、親の位置付インデックスセグメントとすることを推奨します.

結合リンクの[位置付]特性に指定された変数項目は無視されます.SQL Where句を使用してください.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ

意味：結合リンクの[位置付]特性に変数項目が設定された場合にこのエラーが発生します。

このフォームには、フォーム名が定義されていません.Windowsメニューには、フォーム名が表示されません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[フォーム名]特性

意味：フォーム名が設定されていない場合に発生します。

警告

[繰返し行数]特性が指定されていますが、フォームに[テーブル]コントロールがありません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム

意味：[フォーム特性の[繰り返し行数]特性に行数が指定されているにも関わらず、[テーブル]コントロールが定義されていない場合にこのエラーが発生します。

[チェックボックス]コントロールの[3ステータス]特性を指定した場合、[NULL値許可]特性を「Yes」に設定してください.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[チェックボックス]コントロール

意味：[チェックボックス]コントロールの[３ステータス]特性が｢Yes｣に設定され、[データ]特性に設定された項目の[NULL値可]特性が｢No｣に設定されている場合に発生します。

チョイスコントロールの[選択項目リスト]特性が設定されていません.

発生場所： [プログラム]リポジトリ／[フォーム]エディタ／チョイスコントロール／[選択項目リスト]特性

意味：チョイスコントロールに範囲指定が定義されていないか、論理型項目を定義していない場合に発生します。

対応方法: 範囲を指定してください。

サブフォームには、並行実行プログラムを指定できません.プログラムは単一スレッドで実行されます.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[サブフォーム]コントロール／[プログラム/タスク番号]特性

意味：[サブフォーム]コントロールに指定されたプログラムが、並行起動プログラムの場合にこのエラーが発生します。

[イベント]特性が指定されていません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[イベント実行]処理コマンド／[イベント]特性

意味：[イベント実行]処理コマンドの[イベント]特性にイベントの公開名が指定されていない場合に発生します。

[項目]処理コマンドは、このロジックユニットでは指定できません.

発生場所：プログラム/コールリモート/サービス

意味：［イベント］ロジックユニットにデータ項目が定義されている可能性があります.

式または関連するBLOB項目は、XMLソースに対して定義される必要があります.

発生場所： データリポジトリ/インデックス/名前

[範囲]特性が定義されていないチョイスコントロールを使用するためには、[ラベル]特性を指定してください.

発生場所： フォームエディタ/チョイスコントロール/特性

意味：チョイスコントロールに[範囲]特性と[ラベル]特性のどちらも設定されていない場合に発生します。

MDIフォームが定義されていません.

クライアント側で実行される処理はタスク前では実行できません.

発生場所：プログラム/ブラウザフォーム/コントロール/名前

リッチクライアントフレームプログラムは、並行実行にすることはできません.

リッチクライアントフレームプログラムは、並行実行にすることはできません.このプログラムは、非並行プログラムとして起動されます.

SoapClientModulesのパラメータが変更されました.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド／[パラメータ]特性

意味：Webサービス側のパラメータの内容が変更されたため、[コールWebサービス]処理コマンドで定義されているパラメータと合わなくなった場合に発生します。

モデルの[クラス]特性が適当ではありません.

発生場所：各オブジェクトの[モデル]特性

意味：[モデル]特性に指定されたモデルのクラスが正しくない場合に発生します。

BLOB項目では 前置/後置の指定はできません

発生場所：データリポジトリ/インデックス/セグメント

使用されるBLOB項目は、RTF形式ではありません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド／[戻り値]特性

意味：RTF形式以外のBLOB型が定義された場合に発生します。

ブロックWhile の条件を「Yes」に設定すると無限ループが実行されます.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[ブロック]処理コマンド

意味：[ブロックWhile]の[条件]特性に「Yes」と設定すると、ブロック内の処理が永久に実行されるようになります。ここには、ループ処理が継続する場合の条件式を指定するようにしてください。

キャッシュテーブル - リンクがサーバ側の式で行われた場合、リンクテーブルは、クライアント側でキャッシュできません.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／[リンク]コマンド

意味：ブラウザクライアントのリンクテーブルが常駐テーブルの場合（[動作環境]の[常駐テーブル読込]が「Yes」衣設定され、[データ]リポジトリでデータソースの[常駐]特性が「B=ブラウザ上で常駐」に設定されている状態を示します）、[位置付]特性に設定された式にサーバ側で実行されるが関数が含まれている場合、このエラーが発生します。

キャッシュテーブル - 項目に範囲式が指定された変数に位置付式が指定された場合、リンクされたテーブルは、クライアント側ではキャッシュできません.

発生場所：タスク/GUI表示形式フォーム/[ツリー]コントロール/[イメージファイル名]特性

キャッシュテーブル - 戻り値にがサーバ側の項目が設定されている場合、リンクテーブルは、クライアント側でキャッシュできません.

発生場所：タスク/GUI表示形式フォーム/[ツリー]コントロール/[イメージファイル名]特性

キャッシュテーブル - カラムに範囲式が設定されている場合、リンクテーブルは、クライアント側でキャッシュできません.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／[リンク]コマンド

意味：ブラウザクライアントのリンクテーブルが常駐テーブルの場合（[動作環境]の[常駐テーブル読込]が「Yes」衣設定され、[データ]リポジトリでデータソースの[常駐]特性が「B=ブラウザ上で常駐」に設定されている状態を示します）、[範囲]特性に式が定義されている場合、このエラーが発生しま

キャッシュテーブル - 変数項目に範囲/位置付が設定されている場合、リンクテーブルは、クライアント側でキャッシュできません.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／[リンク]コマンド

意味：ブラウザクライアントのリンクテーブルが常駐テーブルの場合（[動作環境]の[常駐テーブル読込]が「Yes」衣設定され、[データ]リポジトリでデータソースの[常駐]特性が「B=ブラウザ上で常駐」に設定されている状態を示します）、リンク内に変数項目を定義し、この変数の[位置付]／[範囲]特性に式が設定されている場合、このエラーが発生します。

キャッシュテーブル - リンクが照会モードでない場合、リンクテーブルは、クライアント側でキャッシュできません.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／[リンク]コマンド

意味：ブラウザクライアントのリンクテーブルが常駐テーブルの場合（[動作環境]の[常駐テーブル読込]が「Yes」衣設定され、[データ]リポジトリでデータソースの[常駐]特性が「B=ブラウザ上で常駐」に設定されている状態を示します）、照会リンク以外の場合、このエラーが発生します。

キャッシュテーブル - タスクの[範囲/位置付]ダイアログで範囲式や位置付式が設定されている場合、リンクテーブルは、クライアント側でキャッシュできません.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／[リンク]コマンド

意味：ブラウザクライアントのリンクテーブルが常駐テーブルの場合（[動作環境]の[常駐テーブル読込]が「Yes」衣設定され、[データ]リポジトリでデータソースの[常駐]特性が「B=ブラウザ上で常駐」に設定されている状態を示します）、[範囲/位置付]ダイアログの[範囲式]や[位置付式]に式が定義されている場合、このエラーが発生します。

CallProg関数は、この処理コマンドでは使用できません.

発生場所：プログラム/リンク処理コマンド

NULLの使用が許可されていないため、デフォルト/NULLは使用できません

発生場所：[データ]リポジトリ／[カラム]テーブル／[カラム]特性

[プログラム]リポジトリ／[データビュー]エディタ／[項目]特性／[項目]特性

意味：[NULL値可]特性が、「No」に設定されていて、[NULLデフォルト]が「Yes」に設定されている場合にこのエラーが発生します。

基本色番号は、1 - 登録番号 以外は指定できません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[テーブル]コントロール／[ハイライト行の色]特性

意味：[テーブル]コントロールの[ハイライト行の色]特性の番号が「0」か、[基本色定義]テーブルに登録されている数より大きい値を指定している場合に発生します。

基本色番号は、1 - 登録番号 以外は指定できません

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[色]特性

[プログラム]リポジトリ／[フォーム]エディタ／コントロール／[色]特性

意味：[色]特性の番号が「0」か、[基本色定義]テーブルに登録されている数より大きい値を指定している場合に発生します。

[テーブル]コントロールの[マルチマーキング]特性が｢No｣の状態で、[カラム]コントロールの[カラムのマーキング]特性を｢Yes｣に設定できません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ

意味：[テーブル]コントロールの[マルチマーキング]特性が「No」で[カラム]コントロールの[カラムのマーキング]特性が「Yes」の場合に発生します。

BLOBコントロールに対して、カラムソートを使用することはできません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[カラム]コントロール／[ソート可]特性

意味：BLOB項目を[テーブル]コントロールにカラムとして配置し、[カラム]コントロールのの[ソート可]特性を「Yes」にした場合にこのエラーが発生します。

[イメージ]コントロールに対して、カラムソートを使用することはできません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[カラム]コントロール／[ソート可]特性

意味：[イメージ]コントロールを[テーブル]コントロールにカラムとして配置し、[カラム]コントロールの[ソート可]特性を「Yes」にした場合にこのエラーが発生します。

メインソースを指定していない場合は、カラムソートを使用することができません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[カラム]コントロール／[ソート可]特性

意味：SQLタスクでなく、かつメインソースが定義されいないタスクで、[カラム]コントロールの[ソート可]特性を「Yes」にした場合にこのエラーが発生します。

項目を指定しないでカラムソートを使用することはできません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[カラム]コントロール／[ソート可]特性

意味：カラムに配置されたコントロールの[データ]特性が設定されていない状態で、[カラム]コントロールの[ソート可]特性を「Yes」にした場合にこのエラーが発生します。

項目のステップ値が大きすぎます

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[スライダ]コントロール

意味：[スライダ]コントロールの[範囲]特性の値に対して[ステップ]特性の値が大きすぎる場合に発生します。

メインプログラムで使用されるコンポーネントは、[即時有効]を「ON」にしてください.

発生場所：[コンポーネント]リポジトリ／[コンポーネント特性]

意味：メインプログラムで使用しているコンポーネントの[即時有効]特性がOFFに設定されている場合に発生します。

[コントロール]ロジックユニットは、バッチタスクでは定義できません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ

意味：バッチタスクに[コントロール]ロジックユニットが定義されている場合にこのエラーが発生します。

コントロールには、現在のタスクの項目を定義してください.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[コントロール]ロジックユニット

意味：[コントロール]ロジックユニットに定義されたコントロールに、上位タスクで定義されたデータ項目が設定されている場合にこのエラーが発生します。

コントロール名を入力してください

発生場所：プログラム/ブラウザフォーム/コントロール/ハイパーリンク/コントロール名

意味：ハイパーリンクのタイプが「コントロール」でコントロール名が指定されていない場合にこのエラーが発生します。

コントロールは、現在のタスクには対応しません.

発生場所：データリポジトリ/インデックス/名前

データコントロールの[範囲]特性に、範囲式を定義してください.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／データコントロール

意味：データコントロールの[範囲]特性に項目が定義されているが、[開始]と[終了]カラムに範囲式が定義されていない場合に表示されます。

データのタイプが合っていません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[コールCOM]処理コマンド／[パラメータ]テーブル

意味：パラメータのデータ型が合っていない場合にこのエラーが発生します。

データベースゲートウェイがロードされていません

発生場所：環境設定/MAGIC.INI

意味：指定されたデータベースに対応するデータベースゲートウェイがロードされない場合に発生します。また、データベースのクライアントソフトがインストールされていない可能性もあります。

DB SQLは、リッチ/ブラウザクライアントのタスクでは無視されます.

発生場所：[プログラム]リポジトリ／[範囲i位置付]／DB SQL

意味：リッチクライアントタスクやブラウザクライアントタスクにDB SQL が定義されている場合にこのエラーが発生します。

[デフォルトボタン]特性に指定されたコントロールがありません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[デフォルトボタン]特性

意味：[デフォルトボタン]特性に指定されたコントロール名に該当するコントロールがフォームに定義されていない場合にこのエラーが発生します。

[出力先フレーム名]特性が指定されていません.

発生場所：プログラム/ブラウザフォーム/コントロール/名前

チョイスコントロールを指定した項目の[ラベル]特性に重複があります.

発生場所：プログラム/データビュー/項目定義

チョイスコントロールの[選択項目リスト]特性の指定に重複があります.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／チョイスコントロール／[選択項目リスト]特性

意味：チョイスコントロールの[選択項目リスト]特性の値に、重複した値が設定されている場合に発生します。

別のロジックユニットで定義された項目が指定されています.

発生場所：[プログラム]リポジトリ／[式]エディタ

意味：別のロジックユニット内で定義されたデータ項目が使用されている場合にこのエラーが発生します。

[タブ]コントロールの[タブ幅]特性を「テキストに合わせる」に設定する場合は、[複数行]特性を「Yes」に設定してください.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[タブ]コントロール

意味：[タブ]コントロールの[複数行]特性が「No」で、[タブ幅]特性が「T=テキストに合わせる」に設定されている場合に発生します。

フォント番号は、1 - 登録番号 以外は指定できません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[フォント]特性

[プログラム]リポジトリ／[フォーム]エディタ／コントロール／[フォント]特性

意味：[フォント]特性の番号が「0」か、[フォント]テーブルに登録されている数より大きい値を指定している場合に発生します。

リッチクライアントフォームは、フォントの傾きをサポートしません

GUI出力形式/テキスト形式以外のフォームでは印刷できません.

発生場所：[プログラム]リポジトリ／[フォーム出力]処理コマンド／[フォーム]特性

意味：[フォーム出力]処理コマンドの[フォーム]特性に、[フレームセット形式]や[ブラウザ形式]のフォームを指定した場合にこのエラーが発生します。

[フレーム]コントロールの[ハイパーリンク]特性に、現在のプログラムが指定されています.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[フレームセット形式]フォーム／[フレーム]コントロール／[ハイパーリンク]特性

意味：[フレームセット形式]フォームに配置された[フレーム]コントロールの[ハイパーリンク]特性に、現在のプログラムが指定されている場合にこのエラーが発生します。

[グループ]ロジックユニットは、バッチタスクでのみ有効です.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ

意味：バッチタスク以外で[グループ]ロジックユニットが定義されている場合にこのエラーが発生します。

[グループ]ロジックユニットは、バッチタスクの登録モードでは指定できません

発生場所：[プログラム]リポジトリ／[ロジック]エディタ

意味：登録モードのバッチタスクで[グループ]ロジックユニットが定義されている場合にこのエラーが発生します。

処理するプッシュボタンにユーザイベントを割り当ててください.

発生場所：データリポジトリ/インデックス/名前

HTMLスタイルファイルが存在しません.

発生場所：アプリケーション起動時

意味：[アプリケーション特性]に定義された[HTMLスタイルファイル]が存在しない場合に、このエラーが発生します。

[ウィンドウ消去]特性の設定が正しくありません. 並行実行に設定されたプログラムでは、「No」に設定できません.

発生場所：[プログラム]リポジトリ／タスク特性／[ウィンドウ消去]特性

意味：並行実行が有効になっているタスクの[ウィンドウ消去]特性が「No」に設定されている場合に、このエラーが発生します。

式が正しくありません.ロジックユニットの[条件]特性に、サーバ側でしか実行できない関数が含まれています.

発生場所：[プログラム]リポジトリ／[式]エディタ

意味：ロジックユニットの[条件]特性に、サーバ側でしか実行されない関数が定義されている場合にこのエラーが発生します。

[初期モード]特性が正しくありません. [並行実行]が設定されたプログラムでは、「親と同じ」は設定できません.

発生場所：[プログラム]リポジトリ／タスク特性／[初期モード]特性

意味：並行実行が有効になっているタスクの[初期モード]特性が「P=親と同じ」に設定されている場合に、このエラーが発生します。

[戻り値]特性が正しくありません.[並行実行]が設定されたプログラムでは、[戻り値]特性は設定できません.

発生場所：[プログラム]リポジトリ／タスク特性／[戻り値]特性

意味：並行実行が有効になっているタスクの[戻り値]特性に式が設定されている場合に、このエラーが発生します。

チョイスコントロールを使用するためには、項目に[ラベル]特性を指定してください.

発生場所：[モデル]リポジトリ／[項目特性]

[データ]リポジトリ／[カラム]テーブル／[項目特性]

[プログラム]リポジトリ／[データビュー]エディタ／[項目特性]

意味：チョイスコントロールに設定された項目の[範囲]特性に、チョイスコントロールでは使用できない値（例：1-100）が指定された場合に発生します。

リテラル値が正しくありません.

発生場所：[プログラム]リポジトリ／[式]エディタ

意味：リテラルを指定したオブジェクト（例：式の場合、'999'EXP）が存在しない場合にこのエラーが発生します。

項目の[範囲]特性に、チョイスコントロールでは利用できない値が指定されています.

発生場所：[モデル]リポジトリ／[項目特性]

[データ]リポジトリ／[カラム]テーブル／[項目特性]

[プログラム]リポジトリ／[データビュー]エディタ／[項目特性]

意味：チョイスコントロールに設定された項目の[範囲]特性に、チョイスコントロールでは使用できない値（例：1-100）が指定された場合に発生します。

権利が正しくありません.

発生場所：[プログラム]リポジトリ／[式]エディタ

意味：指定された権利名が存在しないかアクセス権がない場合にこのエラーが発生します。

[イメージ]コントロールに、データまたは式が定義されていません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム／[イメージ]コントロール

意味：[イメージ]コントロールの[項目]カラム（または「式」カラム）が定義されていない場合にこのエラーが発生します。

[データ]特性または、[デフォルトイメージファイル]特性を設定してください.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI形式]フォーム／[イメージ]コントロール

意味：[イメージ]コントロールの[データ]特性か[デフォルトイメージファイル]特性が定義されていない場合にこのエラーが発生します。

[イメージ一覧ファイル名]特性が正しくありません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[ツリー]コントロール／[イメージ一覧ファイル名]特性

意味：[ツリー]コントロールの[イメージ一覧ファイル名]特性に指定されたファイルが読み込めなかった場合にこのエラーが発生します。

XMLデータソースでは、[アクセス]特性が｢書出｣の場合、[共有]特性を｢書出｣に設定できません.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／[メインソース特性]

[プログラム]リポジトリ／[データビュー]エディタ／[リンク]特性

意味：XMLデータソースを定義する際に、[アクセス]特性と[共有]特性がどちらも「W=書出」の場合に、このエラーが発生します。

加算更新は、非インタラクティブタスクではサポートしていません.

発生場所：[プログラム]リポジトリ／［ロジック］エディタ

意味：［インタラクティブ］特性がOFFに設定されたリッチクライアントタスクに、［加算］特性が「Yes」に設定された［項目更新］処理コマンドが定義されている場合にこのエラーが発生します。

加算更新は、バッチタスクでは指定できません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[項目更新]処理コマンド／[加算]特性

意味：バッチタスク内で、[項目更新]処理コマンドの中の[加算]特性が「Yes」に定義されている場合に発生します。

[フォーム入力]処理コマンドでは、フレームセット/マージ/ブラウザフォームを指定できません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[フォーム入力]処理コマンド／[フォーム]特性

意味：[フォーム入力]処理コマンドの[フォーム]特性に、[フレームセット形式]、[マージ形式]、[ブラウザ形式]の各フォームが指定されている場合に発生します。

パラメータや戻り値の項目の[インスタンス化]特性は、「なし」に設定してください.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／[変数項目]特性

意味：OLE型やActiveX型のパラメータ項目の[インスタンス化]特性が「A=自動」になっている場合に発生します。

内部イベントが正しくありません.

発生場所：プログラム/フォーム/ヘルプ画面

ヘルプが正しくありません.

発生場所：[モデル]リポジトリ

[データソース]リポジトリ／[カラム]テーブル

[プログラム]リポジトリ／[フォーム]エディタ

[メニュー]リポジトリ

意味：[ヘルプ画面]特性や、[自動ヘルプ]特性、[ツールチップ]特性に指定されたヘルプが[ヘルプ]リポジトリに定義されていない場合に発生します。

データソースの[オープン]特性が正しくありません. SQL/XMLテーブルは、「標準」しか指定できません.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／[メインソース特性]／[オープン]特性

[プログラム]リポジトリ／[データビュー]エディタ／[リンク特性]／[オープン]特性

意味：SQLテーブルやXMLデータソースを定義した場合に[オープン]特性が「R=再索引」に設定されている場合に発生します。

[ウィンドウタイプ]特性が正しくありません.並行実行プログラムでは指定できないタイプです.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[ウィンドウタイプ]特性

意味：[並行実行]特性がONに設定されたタスクのメインフォームの[ウィンドウタイプ]特性が以下の場合に発生します。

  • C=子ウィンドウ

  • I=MDI調整

[ウィンドウタイプ]特性が正しくありません.「SDI」は、並行実行プログラムでのみ指定できます.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[ウィンドウタイプ]特性

意味：[並行実行]特性がONに設定されたタスクのメインフォームの[ウィンドウタイプ]特性が「S=SDI」に設定されている場合に発生します。

[ウィンドウタイプ]特性が正しくありません.「SDI」は、並行実行プログラムまたはリッチクライアントフォームでのみ指定できます.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[フォーム特性]／[ウィンドウタイプ]特性

意味：[並行実行]特性がOFFになっているタスクのメインフォームの[ウィンドウタイプ]特性が「S=SDI」になっている場合に発生します。

[ウィンドウタイプ]特性が正しくありません.[ウィンドウ消去]特性が「No」の場合、SDIフォームは定義できません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[ウィンドウタイプ]特性

意味：[ウィンドウ消去]特性が「No」に設定されたタスクのメインフォームの[ウィンドウタイプ]特性が、「S=SDI」に設定されている場合に発生します。

XMLデータソースを使用して、結合リンクや外部リンクはできません.XMLデータソースをタスクのメインデータソースにした場合も同様です.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ

意味：[結合リンク]が[外部リンク]でXMLデータソースを指定した場合に発生します。また、メインソースがXMLデータで、[結合リンク]や[外部リンク]でSQLテーブルを指定した場合にもエラーになります。

注意：

このエラーは登録時にもステータスバーに表示されます。

ブラウザタスクでは、[メディア]カラムが「リクエスタ」に指定されている入出力ファイルを使用できません.

発生場所：[プログラム]リポジトリ／[入出力ファイル]テーブル

意味：[タスクタイプ]特性が「R=ブラウザ」で[入出力ファイル]テーブルに「メディア」と定義されたテーブルがある場合に発生します。

[選択モード]特性の「マルチ」は、文字型項目かUnicode型かベクトル型項目でのみ有効です.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[リストボックス]コントロール

意味：[リストボックス]コントロールの[選択モード]特性が「M=マルチ」に設定されており、[データ]特性に文字型かUnicode型、ベクトル型以外の項目が定義されている場合にこのエラーが発生します。

コントロールを指定してください.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[コントロール]ロジックユニット

意味：[コントロール]ロジックユニットにコントロールが定義されていない場合にこのエラーが発生します。

オプションが「No」と設定されたパラメータに項目が設定されていません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[コールCOM]処理コマンド

意味：[コールCOM]処理コマンドの[パラメータ]特性や[値]特性で[オプション]カラムが「No」に設定されているパラメータに項目が設定されていない場合にこのエラーが発生します。

自動ヘルプ以外のヘルプは、ここには指定できません.

発生場所：[モデル]リポジトリ

[データソース]リポジトリ／[カラム]テーブル

[プログラム]リポジトリ／[フォーム]エディタ

意味：[自動ヘルプ]特性に指定されたヘルプが自動ヘルプでない場合に発生します。

ツールチップ以外は、ここでは指定できません.

発生場所：[モデル]リポジトリ

[データソース]リポジトリ／[カラム]テーブル

[プログラム]リポジトリ／[フォーム]エディタ

意味：[ツールチップ]特性に指定されたヘルプがツールチップでない場合に発生します。

SQLデータベースを指定してください.

発生場所：[プログラム]リポジトリ／[SQLコマンド]ダイアログ／[データベース]欄

意味：指定されたデータベースがSQL系のデータベースとして定義されていない場合に発生します。

実行場所が不明な処理をサーバ側のロジックユニットに定義すると、実行時にクライアント側で評価され、エラーが発生する場合があります.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ

意味：サーバ側で実行されるロジックユニット（例：[タスク前]）に、実行場所が不明な処理（左端に「U」と表示されます）が定義されている場合、この処理がクライアント側で実行されるとエラーが発生する可能性があります。このような設定を行った場合に、この警告が表示されます。

SoapClientModulesのパラメータ数が変更されました.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド／[パラメータ]特性

意味：Webサービス側のパラメータ数が変更されたため、[コールWebサービス]処理コマンドで定義されているパラメータの数と合わなくなった場合に発生します。

パラメータの数が合っていません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[コール]処理コマンド／[パラメータ]特性

[プログラム]リポジトリ／[フォーム]エディタ／[サブフォーム]コントロール／[パラメータ]特性

意味：パラメータの数が呼ぶ側と呼ばれる側で合っていない場合に、このエラーが発生します。

[部数]特性を指定してください.

発生場所：[プログラム]リポジトリ／[入出力ファイル]テーブル／[入出力ファイル]特性／[部数]特性

意味：[プリンタ]カラムが「GUI形式プリンタ」と定義され、[部数]特性が指定されていない場合にこのエラーが発生します。

SQLコマンドの[入力パラメータ]特性の数が、実際のパラメータ数と合っていません.

発生場所：[プログラム]リポジトリ／[SQLコマンド]ダイアログ

意味：[入力パラメータ]に定義されたの数と、SQLコマンドで指定されたパラメータ（:n）の数が合っていない場合に発生します。

ロジックユニット内のパラメータ項目の数が[イベント]テーブル内のパラメータ数と合っていません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[イベント]ロジックユニット

意味：[ユーザイベント]テーブル内に定義されたイベントに設定されたパラメータの数と、このイベントを使用した[イベント]ロジックユニット内のパラメータ項目の数が合っていない場合に、このエラーが発生します。

PCにオブジェクトがありません.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／変数項目特性

意味：ActiveX型やOLE型の変数に定義されたタイプライブラリはPCにインストールされているが、オブジェクトが存在しない場合にこのエラーが発生します。

[オープン]特性が「再索引」のデータソースは、排他になるように設定してください.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／[メインソース特性]

[プログラム]リポジトリ／[データビュー]エディタ／[リンク]特性

意味：[メインソース特性]や[リンク特性]の[オープン]特性が「R=再索引」に設定されていて、[共有]特性が「W=書出」や「R=読込」に設定されている場合に発生します。

テキスト形式/マージ形式フォームのみ「項目」メディアを指定することができます.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[フォーム出力]処理コマンド／[フォーム]特性

意味：[フォーム出力]処理コマンドの[入出力ファイル]特性に、[メディア]カラムが「V=項目」に設定された入出力ファイルが指定されていて、[フォーム]特性に「テキスト形式」か「マージ形式」以外のフォームが定義されている場合に発生します。

テキスト形式フォームのみ「項目」メディアを指定することができます.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[フォーム入力]処理コマンド／[フォーム]特性

意味：[フォーム入力]処理コマンドの[入出力ファイル]特性に、[メディア]カラムが「V=項目」に設定された入出力ファイルが指定されていて、[フォーム]特性に「テキスト形式」以外のフォームが定義されている場合に発生します。

１つのタスクには１つのリクエスタしか指定できません.

発生場所：[プログラム]リポジトリ／[入出力ファイル]テーブル

意味：[入出力ファイル]テーブルに一つ以上のリクエスタが定義されている場合にこのエラーが発生します。

RCフォームは、TrueTypeフォントのみサポートします. 異なるフォントタイプを使用した場合、実行時のフォームやコントロールのサイズや表示内容に影響が出る場合があります.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／各コントロールの[フォント]特性

意味：[リッチクライアント形式]フォーム上のコントロールにTrueType以外のフォントが定義されている場合にこの警告が発生します。

親の位置付インデックスは、上位レコードのセグメントでなければなりません.

発生場所：プログラム/ブラウザフォーム/名前

意味：XMLデータソースの[ブラウザ形式]フォームに項目が1つも配置されていないか、配置された項目が正しくない場合に発生します。

[ブロックWhile]処理コマンド内でクライアント側とサーバ側の処理コマンドを一緒に実行させると、サーバへの多重アクセスが発生します.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ

意味：[ブロックWhile]処理コマンドで定義されたブロック内に、サーバ側で実行される処理とクライアント側で実行される処理が混在している場合に、この警告が表示されます。できるだけ、異なるループ処理処理に分けるように検討してください。

[項目変更]ロジックユニットに、クライアントとサーバの処理を混在して定義することは推奨できません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ

意味：[項目変更]ロジックユニットに、サーバ側で実行される処理とクライアント側で実行される処理が混在して定義されている場合に、この警告が表示されます。どちらかの処理だけにするように検討してください。

サーバへの多重アクセスが発生します.サーバ側の処理をまとめて定義するようにしてください.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ

意味：サーバ側で実行される処理とクライアント側で実行される処理が混在しているため、パフォーマンスが低下する可能性がある場合に、この警告が表示されます。サーバ側の処理だけをまとめて実行できるように検討してください。

レコードレベルの処理でのサーバアクセスは推奨できません.

書式が格納サイズより大きくなっています.

発生場所：[データ]リポジトリ／[カラム]テーブル／[サイズ]特性

意味：[カラム特性]の[サイズ]特性に指定されたサイズより大きなデータ長で[書式]特性を指定した場合に発生します。

[ツリー]コントロールが定義されたタスクには、[位置方法]は定義できません.

発生場所：[プログラム]リポジトリ／[範囲／位置付]ダイアログ／[式]タブ／位置

意味：[ツリー]コントロールが定義されたタスクの[範囲/位置付]ダイアログに[位置/方法]の式が指定されている場合に発生します。

[ビュー事前読込]特性を有効にするには、[キャッシュ範囲]特性を「位置とデータ」に設定する必要があります.

発生場所：[プログラム]リポジトリ／タスク特性／[データ]タブ

意味：[タスク特性]の[ビュー事前読込]特性が「Yes」に設定され、[キャッシュ範囲]特性が「P=位置とデータ」意外に設定されている場合にこのエラーが発生します。

[プリンタ]テーブルにプリンタが定義されていません.

発生場所：[プログラム]リポジトリ／[入出力ファイル]テーブル

意味：[メディア]カラムが「G=GUI形式プリンタ」か「P=テキスト形式プリンタ」で、[プリンタ]カラムに定義されたプリンタが存在しない場合に発生します。

プログラムの[外部]カラムがチェックされていません.

発生場所：[プログラム]リポジトリ

意味：ブラウザクライアントやリッチクライアント用のプログラムの[外部]カラムがチェックされていない場合にこのエラーが発生します。

公開プログラム名が指定されていません.

発生場所：[プログラム]リポジトリ／公開名

意味：ブラウザプログラムやリッチクライアントプログラムに公開プログラム名が指定されていない場合に発生します。

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[コールリモート]処理コマンド／[プログラム名]

意味：公開プログラム名（または式）が指定されていない場合に発生します。

自動ヘルプ／ツールチップは、[ヘルプ画面]特性には設定できません.

発生場所：[モデル]リポジトリ

[データソース]リポジトリ／[カラム]テーブル

[プログラム]リポジトリ／[フォーム]エディタ

[メニュー]リポジトリ

意味：[ヘルプ画面]特性に指定されたヘルプが、自動ヘルプやツールチップの場合に発生します。

この公開名は既に存在しています

発生場所：[モデル]リポジトリ／[公開名]カラム

[データ]リポジトリ／[公開名]カラム

[プログラム]リポジトリ／[公開名]カラム

[ヘルプ]リポジトリ／[公開名]カラム

[権利]リポジトリ／[公開名]カラム

[イベント]テーブル／[公開名]カラム

意味：同じ公開名のオブジェクトが定義されている場合に、このエラーが発生します。

[データ]特性または、有効な[実行イベント]特性を設定してください.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[プッシュボタン]コントロール

意味：以下の場合にこのエラーが発生します。

[データ]特性に項目が指定されていない。

[実行イベント]特性が指定されていない。

フォーカスのあるタスクのイベントを実行するには、[パーキング可]特性を「No」に設定する必要があります.

発生場所：タスク/GUI表示形式フォーム/[ツリー]コントロール/[イメージファイル名]特性

[範囲]特性の[項目]カラムに、項目を指定してください.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式ｆフォーム／データコントロール

意味：データコントロールの[範囲]特性に[項目]カラムが「0」になっている行がある場合に表示されます。

冗長なデータソース定義です. - このデータソースは、すでにこのタスク内で使用されています.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／宣言

意味：同じタスク内のメインソースやリンクテーブルに定義されているデータソースを宣言定義している場合に、発生します。

[タブラベル位置]特性が、｢右｣または｢左｣の[タブ]コントロールは、[複数行]特性を｢Yes｣に設定してください.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[タブ]コントロール

意味：[タブ]コントロールの[タブラベル位置]特性が｢R=右｣または｢L=左｣に設定され、[複数行]特性が｢No｣に設定されている場合に発生します。

[RM互換]ロジックユニットは、オンラインタスクでのみサポートします.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ

意味：バッチタスクに[RM互換]ロジックユニットが定義されている場合にこのエラーが発生します。

[コンテキストID]特性には、文字型またはUnicode型を指定してください.

発生場所：[メニュー]リポジトリ／メニュー特性／[コンテキストID]特性

意味：[コンテキストID]特性に文字型かUnicode型以外の項目が定義されている場合に発生します。

選択した項目は、すでにこのフォームで使用されています.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム／[HTMLコントロール]テーブル

意味：コントロールに割り当てられた項目が、同じフォーム内の別のコントロールに割り当てられている場合に発生します。

サーバ側で実行される式は、フォーム特性に直接定義できません.

サーバ実行関数はコントロール特性に指定できません.

発生場所：[プログラム]リポジトリ／[ﾌｫｰﾑ]エディタ／[リッチクライアント形式]フォーム／コントロール

意味：[リッチクライアント形式]フォーム上のコントロールの[コントロール特性]に、サーバ側で処理される関数を含む式が指定されている場合に発生します。

[イメージ一覧ファイル名]特性が指定されていません.イメージインデックスを指定する場合は必須です.

発生場所： [プログラム]リポジトリ／[フォーム]エディタ／[タブ]コントロール

意味：[タブ]コントロールの[イメージ一覧ファイル名]特性に値が設定されていない状態で、[イメージ一覧インデックス]特性に値が設定されている場合に発生します。

サウンドコントロールには、データかサウンドファイルを指定してください.

発生場所：プログラム/HTMLフォーム/サウンドコントロール/サウンドファイル名

意味：サウンドコントロールに[項目]か[サウンドファイル名]が定義されていない場合に発生します。

[サブフォーム]コントロールは、[RM互換]ロジックユニットを持ったタスクではサポートされません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ

意味：[RM互換]ロジックユニットが定義されているタスクのメインフォームに[サブフォーム]コントロールが配置されている場合に発生します。サブフォームは表示されますが、カーソルは移動しません。

送信フォームには、ハイパーリンクを指定してください.

発生場所：プログラム/フォーム/ヘルプ画面

送信／リンクボタンはハイパーリンクが指定されていなければなりません.

発生場所：プログラム/フォーム/ヘルプ画面

[同期]特性は、物理トランザクションモードでは無視されます.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[コール]処理コマンド／[同期]特性

意味：[タスク特性]の[トランザクションモード]特性が「P=物理」に設定されたタスクに定義された[コール]処理コマンドで、[同期]特性が「Yes」に設定されている場合に発生します。

HTMLドキュメントで使用するテーブルは、指定された行数で登録できません.

発生場所：プログラム/ブラウザフォーム/[テーブル]コントロール/明細行特性

意味：[明細行]特性で指定された値と異なるテーブルが定義された場合に発生します。

SDIプログラムでは、[開始時の位置]特性を「MDIの中央」に設定することはできません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[開始時の位置]特性

意味：[ウィンドウタイプ]特性が「S=SDI」に設定され、[開始時の位置]特性が「M=MDIの中央」に設定されている場合に発生します。

[デフォルト値]特性が列の長さより長くなっています.

発生場所：[モデル]リポジトリ／[項目特性]

[データ]リポジトリ／[カラム]テーブル／[項目特性]

[プログラム]リポジトリ／[データビュー]エディタ／[項目特性]

意味：[デフォルト値]特性に指定された値のデータ長が、[書式]特性で指定された長さより長い場合に発生します。

［コントロール変更］イベントは、ブラウザタスクで使用できません.

発生場所： プログラム/ブラウザフォーム/コントロール/名前

存在しないコントロールが定義されています.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ

意味：ロジックユニットに存在しないコントロール名が定義されている場合にこのエラーが発生します。

[選択項目リスト]特性が指定されていません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／チョイスコントロール／[選択項目リスト]特性

意味：[選択表示リスト]特性が指定されているが、[選択項目リスト]特性が指定されていない場合に発生します。

[NULL計算値]特性がカラム長より長くなっています.

発生場所：[モデル]リポジトリ／[項目特性]

[データ]リポジトリ／[カラム]テーブル／[項目特性]

[プログラム]リポジトリ／[データビュー]エディタ／[項目特性]

意味：[NULL計算値]特性に指定された値のデータ長が、[書式]特性で指定された長さより長い場合に発生します。

メインソースが定義されていない場合、[ビュー事前読込]特性は無効になります.

発生場所：[プログラム]リポジトリ／タスク特性／[データ]タブ

意味：メインソースが定義されていないタスクの[タスク特性]の[ビュー事前読込]特性が「Yes」に設定されている場合にこのエラーが発生します。

復帰モードは、このロジックユニットでは指定できません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[エラー処理]コマンド／[モード]特性

意味：以下のロジックユニットで、[エラー]処理コマンドの[モード]特性が｢R=復帰｣に設定されている場合発生します。

  • レコードレベル

  • タスクレベル

  • 項目レベル

選択したコントロールは、ドラッグ可になっていません.

発生場所： プログラム/ブラウザフォーム/コントロール/名前

選択したコントロールは、ドロップ可になっていません.

発生場所： プログラム/ブラウザフォーム/コントロール/名前

選択された[ウィンドウタイプ]特性は、メインプログラムでは指定できません.

発生場所：[プログラム]リポジトリ／メインプログラム／[フォーム]エディタ／[GUI表示形式]フォーム／[ウィンドウタイプ]特性

意味：メインプログラムのメインフォームの[ウィンドウタイプ]特性が以下の設定の場合に発生します。

  • C=子ウィンドウ

  • P=分割子ウィンドウ

  • M=モーダル

  • A=アプリケーションモーダル

プログラムファイルのサイズは、nnnMBです.プログラムの読み込みに時間がかかるかもしれません.

発生場所：[プログラム]リポジトリ

意味：プログラムのXMLファイル上のサイズがSpecialProgXMLSizeWarningで指定された値を超えた場合にこの警告が表示されます。

タイプが合っていません.精度が指定されていません.

発生場所：プログラム/リンク処理コマンド/データソース

意味：データソースが指定されていないか、指定されたデータソースが削除された場合に発生します。

URLヘルプは、ブラウザフォームまたはそのコントロール以外で指定できません

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム

意味：[GUI表示形式]フォームやフォーム上のコントロールにURLヘルプが定義された場合に発生します。

URLを入力してください.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム／[HTMLコントロール]テーブル／ハイパーテキスト／[ハイパーリンク]特性

[プログラム]リポジトリ／タスク環境／タスク特性／[終了時URL]特性

意味：リンク先のURLが指定されていない場合に発生します。

式が正しくありません.定義式には、ブラウザプログラムでしか使用できない関数が含まれています.

発生場所：[プログラム]リポジトリ／[式]エディタ

意味：メインプログラム以外のオンライン／バッチタスクにブラウザタスクでしか使用できない関数が定義されている場合に発生します。現在、以下の 2つ関数が該当します。

  • CallOBJ

  • CallJS

DB SQLを遅延トランザクションタスクで使用すると、別のタスクから更新された同じデータソースの内容を表示しない場合があります.

発生場所：[プログラム]リポジトリ／［範囲／位置］／［SQL Where句］

意味：［トランザクションモード］特性を遅延に設定したタスクでDB SQL を定義した場合にこの警告が表示されます。

この特性にサーバ側の式を定義することは推奨できません.

発生場所：[プログラム]リポジトリ

意味：クライアント側で処理される特性値にサーバ側で処理される式が定義されている場合に、この警告が表示されます。

同じ項目は１つしか指定できません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ

意味：同じフォーム上の複数のコントロールに同一項目が割り当てられている場合に発生します。

このコントロールに対して、使用できない項目です

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／各コントロール／[データ]特性

意味：以下のコントロールに対して定義された項目が正しない場合にこのエラーが発生します。

以下のコントロールに対して定義された項目が正しない場合にこのエラーが発生します。

  • プッシュボタン …… 文字型/Unicode型項目以外が定義された場合

  • スライダ …… 数値型項目以外が定義された場合

  • チェックボックス …… 論理型項目以外が定義された場合

  • エディット …… BLOB型項目が定義された場合

  • サブフォーム …… 文字型/Unicode型項目以外が定義された場合

  • リッチエディット …… BLOB型項目以外が定義された場合

  • OLE …… BLOB型項目以外が定義された場合.

  • イメージ …… 文字型/Unicode型またはBLOB型項目以外が定義された場合

  • ツリー …… 文字、Unicode、数値、日付、時刻の各型の項目以外が定義された場合

  • チョイス …… 文字、/Unicode、数値、日付、時刻、論理の各型の項目以外が定義された場合

この名前の項目は他のコントロールで使用されています.

発生場所：プログラム/HTMLフォーム/コントロール/項目名

意味：他のコントロールに同じ項目が定義されている場合にこのエラーが発生します。

一意IDを指定したときには、項目長を4にしてください.

推奨レベルのメッセージが25以上あります.最初の25行分のみ表示されます.

発生場所：[チェック結果]ペイン

意味：［R=推奨］に設定されているチェックメッセージが、大量にある場合に表示されます。パフォーマンスを上げるためには、できるだけこのメッセージを減らすように工夫してください。

エラー

外部キーの項目を指定してください.

発生場所：[データ]リポジトリ／[インデックス]テーブル／[外部キー]テーブル

意味：SQLテーブルで外部キーのセグメントが定義されていない場合に発生します。

タグ名を入力してください.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[タグテーブル]特性

意味：[タグ名]または[式]のどちらかにタグの名前が定義されていない場合に発生します。

すべての結合リンクは同じデータベースを使用しなければなりません.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／リンク

意味：結合テーブルがメインソースと異なるデータベースの場合に発生します。

[HTMLコントロール名]にコントロール名を入力してください.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザクライアント形式]フォーム／HTMLコントロール

意味：[HTMLコントロール]カラムが空白の場合にこのエラーが発生します。

コールWebサービスの[処理]特性が指定されていません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド/[処理]特性

意味：[コールWebサービス]処理コマンドの[処理]特性が指定されていない場合にこのエラーが表示されます。

型が合っていません.－項目は、文字型かUnicode型、またはBLOB型でなければなりません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド/[エラー情報]特性

意味：[コールWebサービス]処理コマンドの[エラー情報]特性に定義された項目の型が文字型かUnicode型、BLOB型でない場合に発生します。

式が不適当です.

発生場所：[データ]リポジトリ／[カラム]テーブル

[プログラム]リポジトリ／[データビュー]エディタ

[プログラム]リポジトリ／[ロジック]エディタ

[プログラム]リポジトリ／[フォーム]エディタ

意味：BLOB型以外で[書式]が定義されていない項目か、書式の指定が間違っている項目が定義された場合に発生します。

BLOBは、ソートのセグメントとして指定できません.

発生場所：[プログラム]リポジトリ／タスク環境／ソートテーブル

意味：BLOB項目がソートセグメントとして定義された場合にこのエラーが発生します。

BLOB項目は、ブラウザフォーム上の参照項目として使用できません

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム／HTMLコントロール

意味：[ブラウザ形式]フォームにBLOB項目が配置された場合にこのエラーが発生します。

BLOB項目は、インデックスとして使用できません.

発生場所：[データ]リポジトリ／[インデックス]テーブル／[セグメント]テーブル

意味：セグメントカラムの型がBLOB型の場合に、このエラーが発生します。

BLOB項目は、マージパラメータとして指定できません.

発生場所：[プログラム]リポジトリ/[フォーム]エディタ／[マージ]形式フォーム/[タグテーブル]特性

意味：マージ項目としてBLOB項目を定義した場合にこのエラーが発生します。

ブロックIf が定義されていないため、ブロックElseは定義できません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[ブロック]処理コマンド

意味：[ブロック処理]コマンドの 「Else」オプションが「If」オプションを指定しないで定義されている場合に発生します。

ブラウザ形式フォームまたはそのコントロールでは、URLヘルプしか指定できません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム

意味：[ヘルプ画面]特性に定義されたヘルプがURLヘルプでない場合に発生します。

ブラウザフォームに項目が１つも配置されていません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム

意味：[ブラウザ形式]フォームのコントロールにデータ項目が全く割り当てられていない場合にこのエラーが発生します。

ブラウザタスクのメインフォームは、ブラウザ形式フォームでなければなりません.

発生場所：[プログラム]リポジトリ／タスク特性／[メインフォーム]特性

意味：ブラウザタスクの[メインフォーム]特性に[ブラウザ形式]フォーム以外が定義された場合に発生します。

ブラウザタスクでは、[キャッシュ範囲]特性を｢なし｣には指定できません.

発生場所：[プログラム]リポジトリ／タスク環境／タスク特性／[データ]タブ

意味：メインソースが指定されたブラウザタスクにおいて、[タスク特性]の[キャッシュ範囲]特性が「No」の場合に発生します。

ブラウザ形式フォームを表示できません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ

意味：[エディット]処理コマンドで指定したフォームが[ブラウザ形式]フォームの場合に発生します。

[エディット]処理コマンドが無くなったため、発生しない

ブラウザタスクをコールできません.ブラウザタスクはブラウザタスクからしか起動できません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[コールプログラム]処理コマンド

意味：オンラインまたはバッチプログラム(タスク)からブラウザプログラム(タスク)を呼び出すように定義されている場合に発生します。

ブラウザタスクからオンラインタスクを起動できません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[コールプログラム]処理コマンド

意味：ブラウザプログラム（タスク）からオンラインプログラム（タスク）を呼び出すように定義されている場合に発生します。

Datetime型のカラム指定のため、参照されるカラムもDatetime型にする必要があります.

発生場所：[データ]リポジトリ／[外部キー]テーブル

意味：外部キーにDateET0076:Datetime型のカラム指定のため、参照されるカラムもDatetime型にする必要があります.time型のカラムが設定され、参照テーブルのカラムがDatetime型でない場合にこのエラーが発生します。

[テーブル]コントロールの[マルチマーキング]特性が｢No｣の状態で、[カラム]コントロールの[カラムのマーキング]特性を｢Yes｣に設定できません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ

意味：[テーブル]コントロールの[マルチマーキング]特性が「No」で[カラム]コントロールの[カラムのマーキング]特性が「Yes」の場合に発生します。

[位置]特性が｢U=重複不可インデックス｣の場合は、[インデックス]特性を指定してください.

発生場所：[データ]リポジトリ／データソース特性／[SQL]タブ

意味：SQLテーブルの[位置]特性に「重複不可インデックス」が定義されていて、[インデックス]特性に重複可インデックスが定義された場合に発生します。

[コントロール]レベルのロジックユニットは、非インタラクティブなリッチクライアントタスクでは定義できません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ

意味：［インタラクティブ］特性がOFFに設定されているリッチクライアントタスクに、［コントロール］ロジックユニットが定義されている場合にこのエラーが発生します。

コントロールには、現在のタスクの項目を定義してください.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[コントロール]ロジックユニット

意味：[コントロール]ロジックユニットに定義されたコントロールに、上位タスクで定義されたデータ項目が設定されている場合にこのエラーが発生します。

コントロール名を入力してください.

このクラスで、コントロールは使用できません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI出力形式]フォーム／コントロール

意味：出力フォームにチョイスコントロールや[プッシュボタン]、[スライダ]コントロールが定義されている場合にこのエラーが発生します。

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[テキスト形式]フォーム／コントロール

意味：[テキスト形式]フォームに[イメージ]コントロールや[OLE]、[リッチテキスト]、[四角（楕円）]コントロールが定義されている場合にこのエラーが発生します。

サーバが見つからないか、サーバタイプが間違っています.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[コールリモート]処理コマンド／[サービス]特性

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド／[サービス]特性

意味：[コールWebサービス]処理コマンドで定義されているサービスが SOAP以外のサーバを使用している場合に発生します。

[コールリモート]処理コマンドで定義されているサービスが SOAPのサーバを使用している場合に発生します。

データコントロールの[範囲]特性に、範囲式を定義してください.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／データコントロール

意味：データコントロールの[範囲]特性に項目が定義されているが、[開始]と[終了]カラムに範囲式が定義されていない場合に表示されます。

データを定義してください！

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／各コントロール

意味：コントロールの[データ]特性が定義されていない場合に発生します。このエラーは以下のコントロールで発生します。

エディット、イメージ、プッシュボタン、リストボックス、ラジオボタン、コンボボックス

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[ツリー]コントロール

意味：[ツリー]コントロールの[ノードID]特性や[表示項目]特性に項目が定義されていない場合に発生します。

日付セグメントに対応する時刻セグメントも定義してください.

発生場所：[データ]リポジトリ／[インデックス]テーブル／[セグメント]テーブル

意味：項目選択値が日付または時刻に設定され、Datetime特性の一部であるが、対応するカラムがインデックス内に定義されていない場合に発生します。

Date-Timeの組み合わせは、結合リンクで位置付けなければなりません.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／リンク／位置付

意味：定義された時刻型項目か日付型項目が、[Datetimeの一部]特性で参照する内容と合っていない場合にこのエラーが発生します。

[デフォルトの位置]が見つかりません.重複不可インデックスを定義してください.

発生場所：[データ]リポジトリ／データソース特性／[SQL]タブ

意味：SQLテーブルに対する[位置]特性が「D=デフォルト」で、インデックスが定義されていない場合に発生します。データソースに重複不可のインデックスが１つも定義されていない可能性があります。

埋込SQLを使用する場合は、[トランザクションモード]特性を｢P=物理｣にしてください.

発生場所：[プログラム]リポジトリ／タスク環境／タスク特性／[トランザクションモード]特性

意味：タスクにSQLコマンドが定義されていて、[トランザクションモード]特性が「物理」に設定されていない場合に発生します。

データコントロールには、[表示項目]特性が必須です.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／データコントロール

意味：データコントロールの[ソーステーブル]特性が定義されているにもかかわらず、[表示項目]特性が定義されていない場合に発生します。

[表示項目]特性の型と[データ]特性の型が合っていません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／データコントロール

意味：[表示項目]特性に定義された項目の型が、コントロールに割り当てられた項目の型と合っていない場合に発生します。

解像度の値が大きすぎます.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[位置とサイズ]セクション

意味：フォームの[左辺位置]、[上辺位置]、[高さ]、[幅]の各特性値が大きすぎる場合に発生します。

カラムの[DB名]特性が重複しています.

発生場所：[データ]リポジトリ／[カラム]テーブル／[DBカラム名]特性

意味：SQLテーブルでDBカラム名が重複したカラムを定義した場合に発生します。

[コントロール前]が重複しています.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ

意味：タスクに同じコントロールに対する[コントロール前]ロジックユニットが複数定義された場合にこのエラーが発生します。

[コントロール後]が重複しています.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ

意味：タスクに同じコントロールに対する[コントロール後]ロジックユニットが複数定義された場合にこのエラーが発生します。

[コントロール検証]が重複しています.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ

意味：タスクに同じコントロールに対する[コントロール検証]ロジックユニットが複数定義された場合にこのエラーが発生します。

DBのインデックス名が重複しています.

発生場所：[データ]リポジトリ／[インデックス]テーブル／[インデックス]特性／[SQL]タブ

意味：[DBインデックス名]特性に他のインデックスと同じ名前が定義されている場合に発生します。

同じ外部キー名があります.

発生場所：[データ]リポジトリ／[インデックス]テーブル／[外部キー]テーブル

意味：同じ名前の外部キーが複数登録されている場合に発生します。

インデックス定義が重複しています.

発生場所：[データ]リポジトリ／[インデックス]テーブル

意味：インデックスのセグメント定義が重複している場合にこのエラーが発生します。

セグメント定義が重複しています.

発生場所：[データ]リポジトリ／[インデックス]テーブル／[インデックス]特性／[セグメント]テーブル

意味：インデックスセグメント内に同じカラムが定義されている場合に発生します。

同じ実項目が２回以上定義されています.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ

意味：[データビュー]エディタに同じ実項目が２回以上定義されている場合、このエラーが発生します。

イベントが指定されていないか、正しくありません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[イベント]ロジックユニット

意味：[イベント]ロジックユニットにイベントが定義されていない場合に発生します。

［ユーザイベント］テーブルの［トリガタイプ］が「なし」以外の場合、［トリガ］にイベントが定義されていない場合も発生します。

論理型を使用してください.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[アクション]処理コマンド／[戻り値]特性

意味：[戻り値]特性に設定された項目が論理型でない場合に発生します。

数値型を使用してください.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[コールOSコマンド]処理コマンド／[戻り値]特性

意味：[戻り値]特性に定義された項目が数値型でない場合に発生します。

式が使用されていません.

発生場所：[プログラム]リポジトリ

意味：各パラメータで指定された式が[式]エディタ内に定義されていない場合にこのエラーが発生します。

フォント番号は、1 - 登録番号 以外は指定できません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[フォント]特性

[プログラム]リポジトリ／[フォーム]エディタ／コントロール／[フォント]特性

意味：[フォント]特性の番号が「0」か、[フォント]テーブルに登録されている数より大きい値を指定している場合に発生します。

外部キーが参照しているテーブルのインデックスは、正しくありません.

発生場所：[データ]リポジトリ／[インデックス]テーブル／[外部キー]テーブル

意味：SQLテーブルで外部キーの参照キーが定義されていないか設定されたインデックスにアクセスできない場合に発生します。

外部キーにセグメントを定義してください.

発生場所：[データ]リポジトリ／[インデックス]テーブル／[外部キー]テーブル

意味：SQLテーブルで外部キーのセグメントが定義されていない場合に発生します。

外部キー名を入力してください.

発生場所：[データ]リポジトリ／[インデックス]テーブル／[外部キー]テーブル

意味：SQLテーブルで外部キーの名前が指定されていない場合に発生します。

[フォーム入力]処理コマンドでは、フレームセット/マージ/ブラウザフォームを指定できません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[フォーム入力]処理コマンド／[フォーム]特性

意味：[フォーム入力]処理コマンドの[フォーム]特性に、[フレームセット形式]、[マージ形式]、[ブラウザ形式]の各フォームが指定されている場合に発生します。

フォームが大きすぎてコンソールに出力できません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[フォーム出力]処理コマンド／[入出力ファイル]特性

意味：[入出力ファイル]特性に指定された[入出力ファイル]テーブルの[メディア]カラムが「コンソール」で、[行数]指定が「0」 より大きい場合に発生します。

[フォーム出力]処理コマンドでは、ブラウザフォームを指定できません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[フォーム出力]処理コマンド

意味：[フォーム出力]処理マンドで[ブラウザ形式]フォームが定義されている場合に発生します。

このフォームタイプは、テンプレートファイルが必要です.

発生場所：[プログラム]リポジトリ/[フォーム]エディタ／[マージ]形式フォーム/[ファイル名]特性

意味：[ファイル名]特性にテンプレートファイルの名前が指定されていない場合にこのエラーが発生します。

フォームのクラスを１以上にしてください.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[フォーム出力]処理コマンド／[入出力ファイル]特性

[プログラム]リポジトリ／[フォーム]エディタ／[入出力]テーブル／入出力特性

意味：指定されたフォームのクラスが「0」の場合に発生します。

GUI出力形式/テキスト形式以外のフォームでは印刷できません.

発生場所：[プログラム]リポジトリ／[フォーム出力]処理コマンド／[フォーム]特性

意味：[フォーム出力]処理コマンドの[フォーム]特性に、[フレームセット形式]や[ブラウザ形式]のフォームを指定した場合にこのエラーが発生します。

同じ名前のコントロール名がすでに登録されています.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザクライアント形式]フォーム／HTMLコントロール

意味：同じコントロール名が[HTMLコントロール]テーブル上に複数定義されている場合に発生します。

注意：

このエラーは登録時にステータスバーに表示されます。

[フレーム]コントロールの[ハイパーリンク]特性に、現在のプログラムが指定されています.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[フレームセット形式]フォーム／[フレーム]コントロール／[ハイパーリンク]特性

意味：[フレームセット形式]フォームに配置された[フレーム]コントロールの[ハイパーリンク]特性に、現在のプログラムが指定されている場合にこのエラーが発生します。

[グループ]ロジックユニットは、バッチタスクでのみ有効です.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ

意味：バッチタスク以外で[グループ]ロジックユニットが定義されている場合にこのエラーが発生します。

HTMLファイルが存在しません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザクライアント形式]フォーム／[HTMLファイル]特性

意味：[HTMLファイル]特性にファイル名が指定されていないか、指定されたHTMLファイルが存在しない場合に発生します。

HTMLファイル名が指定されていません.

発生場所： プログラム/HTMLフォーム/HTMLコントロール

[HTMLファイル名]が指定されていない場合に発生します。

対応方法: 正しいファイル名を指定してください。

HTMLスタイルファイルが存在しません.

発生場所：アプリケーション起動時

意味：[アプリケーション特性]に定義された[HTMLスタイルファイル]が存在しない場合に、このエラーが発生します。

項目が定義されていません.

発生場所：[プログラム]リポジトリ／タスク環境／ソートテーブル

意味：[ソート]テーブルに項目が定義されない時場合に発生します。

[イメージ]コントロールに、データまたは式が定義されていません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム／[イメージ]コントロール

意味：[イメージ]コントロールの[項目]カラム（または「式」カラム）が定義されていない場合にこのエラーが発生します。

[データ]特性または、[デフォルトイメージファイル]特性を設定してください.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI形式]フォーム／[イメージ]コントロール

意味：[イメージ]コントロールの[データ]特性か[デフォルトイメージファイル]特性が定義されていない場合にこのエラーが発生します。

[イメージ一覧ファイル名]特性が正しくありません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[ツリー]コントロール／[イメージ一覧ファイル名]特性

意味：[ツリー]コントロールの[イメージ一覧ファイル名]特性に指定されたファイルが読み込めなかった場合にこのエラーが発生します。

イメージ番号が[イメージ一覧]にありません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[ツリー]コントロール

意味：[ツリー]コントロールの[展開表示イメージインデックス]、[縮小表示イメージインデックス]、[パーク展開表示イメージインデックス]、[パーク縮小表示イメージインデックス]

の各特性に設定されたイメージ番号が登録されている数より大きい場合に発生します。

加算更新は、バッチタスクでは指定できません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[項目更新]処理コマンド／[加算]特性

意味：バッチタスク内で、[項目更新]処理コマンドの中の[加算]特性が「Yes」に定義されている場合に発生します。

加算更新は、この項目では指定できません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[項目更新]処理コマンド／[加算]特性

意味：[項目更新]処理コマンドの更新項目が 文字型、Unicode型、論理型、BLOB型の時に、[加算]特性が「Yes」に指定されている場合に発生します。

SQLテーブルでは、[DBインデックス名]を設定する必要があります.

発生場所：[データ]リポジトリ／[インデックス]テーブル／[インデックス]特性／[SQL]カラム

意味：SQLデータベースで[DBインデックス名]特性にインデックス名が指定されていない場合にこのエラーが発生します。

セグメントが定義されていません.

発生場所：[データ]リポジトリ／[インデックス]テーブル

意味：データソースのインデックスにインデックスセグメントが定義されていない場合に発生します。

セグメントサイズの合計が大きすぎます

セグメントサイズの合計が大きすぎます.

発生場所：[データ]リポジトリ／[インデックス]テーブル／[セグメント]テーブル

意味：セグメントサイズの合計値が、DBMSのインデックスサイズの制限を超える場合に発生します。

例：

  • ODBC: 254

  • DB2/400: 2000

  • Btrieve: 255

  • MS-SQL Server 7: 700

  • Oracle: 2000

初期モードの[式]パラメータを指定してください.

発生場所：[プログラム]リポジトリ／タスク環境／タスク特性／[初期モード]特性

意味：[初期モード]を式で設定するようになっているが、式が設定されていない場合に発生します。

[HTMLコントロール名]の文字が正しくありません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザクライアント形式]フォーム／HTMLコントロール

意味：[HTMLコントロール]カラムに定義されたコントロール名にクォーテーションや空白が含まれていたり、先頭の文字が数字の場合に発生します。

注意：

このエラーは登録時にステータスバーに表示されます。

拡張ウィンドウが正しくありません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／GUI表示形式フォーム／[エディット]コントロール

意味：[拡張ウィンドウ]特性で定義されたウィンドウが、[GUI表示形式]/［リッチクライアント表示形式］フォーム以外の場合に発生します。

式番号が正しくありません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[コール式]処理コマンド

[プログラム]リポジトリ／[ロジック]エディタ／[コールUDP]処理コマンド

[プログラム]リポジトリ／[ロジック]エディタ／[アクション]処理コマンド

[プログラム]リポジトリ／[ロジック]エディタ／[項目更新]処理コマンド

意味：[式]特性に式番号が指定されていない場合に発生します。

フォーム番号が正しくありません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[フォーム]処理コマンド／[フォーム]特性

意味：[フォーム]処理コマンドの[フォーム]特性が指定されていなかったり、存在しないフォーム番号が指定されている場合にこのエラーが発生します。

ヘルプが正しくありません.

発生場所：[モデル]リポジトリ

[データソース]リポジトリ／[カラム]テーブル

[プログラム]リポジトリ／[フォーム]エディタ

[メニュー]リポジトリ

意味：[ヘルプ画面]特性や、[自動ヘルプ]特性、[ツールチップ]特性に指定されたヘルプが[ヘルプ]リポジトリに定義されていない場合に発生します。

内部イベントが正しくありません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI形式]フォーム／[プッシュボタン]コントロール／[実行イベント]特性

意味：[プッシュボタン]コントロールの[実行イベント]特性に内部イベントが定義されているが、指定されたいベントが存在しない場合に発生します。

ファイル番号が正しくありません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[フォーム]処理コマンド／[入出力ファイル]特性

意味：[フォーム]処理コマンドの[入出力ファイル]特性が指定されていなかったり、存在しないファイル番号が指定されている場合にこのエラーが発生します。

リンク方法が正しくありません.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／リンク

意味：[リンク]と[リンク終了]の間に別の[リンク]コマンドが定義されている場合に発生します。

プログラムが正しくありません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／各コントロール

意味：選択プログラムが無効な場合に発生します。例えば、[選択プログラム]で指定されたプログラムがプロジェクト（またはコンポーネント）から削除された場合です。

[行高さ]特性が正しくありません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI形式]フォーム／[テーブル]コントロール

意味：[テーブル]コントロールの[行高さ]特性が「0」か、テーブルの高さより大きく指定されている場合に発生します。

項目番号が無効です.

発生場所：[データ]リポジトリ／[インデックス]テーブル／[インデックス]特性／[セグメント]テーブル

意味：カラムが設定されていない行がある場合にこのエラーが発生します。

サービスが正しくありません－サービステーブルに登録されていません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[コールリモート]処理コマンド／[サービス]特性

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド／[サービス]特性

意味：定義されたサービスが[サービス]テーブルに定義されていない場合に発生します。

サービスが正しくありません－サーバに割り当てられていません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[コールリモート]処理コマンド／[サービス]特性

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド／[サービス]特性

意味：[サービス]特性に定義されたサービスが使用するサーバが[サーバ]テーブルに定義されていない場合に発生します。

サービスが正しくありません－存在しないサーバに割り当てられています.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[コールリモート]処理コマンド／[サービス]特性

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド／[サービス]特性

意味：サービスで定義されたサーバが[サーバ]テーブルに定義されていない場合に発生します。

サポートされるデータタイプは、文字,数値,日付,時刻 のみです.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[ツリー]コントロール／[ルート値]特性

意味：[ルート値]として指定された値が文字, 数値、日付、時刻でない場合に発生します。

テーブル番号が無効です.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／リンク／データソース

意味：データソースが指定されていないか、指定されたデータソースが削除された場合に発生します。

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／チョイスコントロール／[ソーステーブル]特性

意味：[ソーステーブル]特性に指定されたテーブルが削除された場合に発生します。

タスクまたはプログラム番号が無効です.

発生場所：[プログラム]リポジトリ／[コールプログラム]処理コマンド／[プログラムID]特性

[プログラム]リポジトリ／[コールタスク]処理コマンド／[タスクID]特性

意味：以下の場合に発生します。

  • プログラム（またはタスク）が選択されていない

  • [コールタスク]処理コマンドで指定したタスクが存在しない

  • [コールプログラム]処理コマンドで指定したプログラムが存在しない

[タイトル高さ]特性が正しくありません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI形式]フォーム／[テーブル]コントロール

意味：[テーブル]コントロールの[タイトル高さ]特性が「0」か、テーブルの高さより大きく指定されている場合に発生します。

項目が正しくありません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[パラメータ]テーブル

[プログラム]リポジトリ／[フォーム]エディタ／[パラメータ]テーブル

[メニュー]リポジトリ／[パラメータ]テーブル

意味：[項目]カラムが指定されず、[スキップ]カラムが「OFF」になっていたりしている場合に発生します。

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[グループ]ロジックユニット

意味：[グループ]ロジックユニットにブレイク項目が設定されていない場合に発生します。

発生場所：[プログラム]リポジトリ／[データビュー]エディタ

意味：実項目の定義でカラムが指定されていない場合に発生します。

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[項目更新]処理コマンド

意味：[項目更新]処理コマンドで項目が指定されていない場合に発生します。

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[タグテーブル]特性

意味：[項目]（または[式]）が定義されていない場合に発生します。

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[項目]ロジックユニット

意味：[項目]ロジックユニットに項目が定義されていない場合に発生します。

[項目]特性が定義されていません.

発生場所：[プログラム]リポジトリ／タスク環境／タスク特性／[データ]タブ

意味：[トランザクション開始]特性を「グループ」と定義して、[項目]特性が定義されていない場合にこのエラーが発生します。

入出力ファイルの[アクセス]モードが正しくありません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[フォーム]処理コマンド／[入出力ファイル]特性

意味：[フォーム出力]処理コマンドで定義された出力ファイルの[アクセス]特性が「読込」になっている場合に発生します。

[フォーム入力]処理コマンドで定義された入力ファイルの[アクセス]特性が「追加」になっている場合に発生します。

Javaファイルが存在していません.

発生場所：プログラム/HTMLフォーム/Javaコントロール

意味：Jacaコントロールの[Javaファイル名]特性にファイル名が指定されていないか、指定されたファイルが正しいものではない場合に発生します。

結合リンクは、SQLデータベースでしか使用できません.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／リンク／メインソース

意味：メインソースがSQLテーブルでないタスクで、結合リンクを使用した場合に発生します。

結合リンクのインデックスセグメントは、[位置付：最小/最大]特性に同じ値を設定してください.

発生場所：[プログラム]リポジトリ/[データビュー]エディタ/リンク／[位置付]特性

意味：結合リンク内に指定されたインデックス用のセグメント項目が全て定義されていない場合に発生します。

結合リンク内の項目定義の[位置付:最小]特性が指定されていないか、[位置付:最大]特性に指定されている値と異なっている場合に発生します。

[範囲]特性が定義されていないチョイスコントロールを使用するためには、[選択項目リスト]特性を指定してください.

発生場所：[プログラム]リポジトリ/[フォーム]エディタ／[GUI表示形式]フォーム／チョイスコントロール

意味：[選択項目リスト]特性か[範囲]特性が指定されておらず、論理型でない場合にこのエラーメッセージが表示されます。

[選択項目リスト]特性は、ラジオボタン、タブ、リスト、およびコンボボックスの各コントロールでのみ有効です。

[テーブル]コントロールの[明細行]を設定してください

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム／[テーブル]コントロール／[明細行]特性

意味：[テーブル]コントロールの[明細行]特性の値が 「0」 で式が指定されていない場合にこのエラーが発生します。

実線以外は、[線幅]特性には｢1｣しか指定できません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[スタティック]コントロール

意味：[スタイル]特性が「平面」で、[線種]特性が「実線」でなく、[線幅]特性が「1」より大きい場合に発生します。

データコントロールには、[リンク項目]特性が必須です.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／チョイスコントロール/[リンク項目]特性

意味：データコントロールの[ソーステーブル]特性が定義されているにもかかわらず、[リンク項目]特性が定義されていない場合に発生します。

結合リンクの位置付指定には、自分自身のカラムを指定できません.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／リンク／[位置付け]特性

意味：結合リンクの[位置付]特性に、結合リンクによって定義されたカラムが指定されている場合に発生します。

論理型か数値型項目を使用してください.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／照会リンク／[戻り値]特性

意味：[リンク特性]の[戻り値]特性に設定された項目が数値型、論理型以外の場合に発生します。

[リンク項目]特性の型が項目の型と合っていません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／データコントロール

意味：データコントロールの[リンク項目]特性に定義された項目の型が、コントロールに定義された型と異なる場合にこのエラーが発生します。

メインプログラムの項目定義に対する[位置付]指定は、リンクでのみ可能です.

発生場所：[プログラム]リポジトリ／メインプログラム／[データビュー]エディタ／項目定義

意味：メインプログラムの項目に対する[位置付]特性は、リンク定義でのみ有効です。

メインプログラムの項目に対して[位置付]が定義された場合にこのエラーが発生します。

ブラウザタスクでは、[メディア]カラムが｢R=リクエスタ｣に指定されている入出力ファイルを使用できません.

発生場所：[プログラム]リポジトリ／[入出力ファイル]テーブル

意味：[タスクタイプ]特性が「R=ブラウザ」で[入出力ファイル]テーブルに「メディア」と定義されたテーブルがある場合に発生します。

フレームセット/マージフォームでは、[メディア]が｢R=リクエスタ｣か｢F=ファイル｣に定義された入出力ファイルしか使用できません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[フォーム出力]処理コマンド／[入出力ファイル]特性

意味：[フォーム出力]処理コマンドで「フレームセット形式」や「マージ形式」の各フォームを使用した時、[入出力ファイル]テーブルの［メディア]カラムの指定が「リクエスタ」か「ファイル」以外のものを指定した場合に発生します。

｢ブロックIf/While｣がありません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[ブロック]処理コマンド

意味：[ブロック終了]処理コマンドの「End」オプションのみが定義され、「If」または「While」が定義されていない場合にこのエラーが表示されます。

[リンク終了]がありません.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／リンク

意味：[リンク]コマンド対する[リンク終了]が定義されていない場合にこのエラーが表示されます。

｢リンク｣がありません.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／リンク

意味：「リンク終了」に対する[リンク]コマンドが定義されていない場合にこのエラーが表示されます。

[リンク]コマンドのヘッダ行を削除すると[リンク終了]も削除されるため、発生しない。

サービスが指定されていません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[コールリモート]処理コマンド／[サービス]特性

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド／[サービス]特性

意味：サービス名が指定されていない場合にこのエラーが発生します。

[ブロックEnd]がありません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[ブロック]処理コマンド

意味：[ブロック]処理コマンド対する「End」オプションが定義されていない場合にこのエラーが表示されます。

コントロールを指定してください.

データベースが見つかりません.

発生場所：[データ]リポジトリ／[データベース]カラム

意味：[データベース]カラムにデータベースが設定されていない場合に発生します。

[ノードID]特性と[親のID]特性では、メインソースか結合リンクテーブルのカラムまたはパラメータ項目のみ有効です.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[ツリー]コントロール

意味：[ツリー]コントロールの[ノードID]または[親ID]特性に定義された項目が、変数項目の場合、またはメインソースか結合リンクテーブル以外のカラムの場合にこのエラーが発生します。

[ノードID]、[親のID]と[表示項目]の各特性は、カレントタスクで定義した項目を指定してください.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[ツリー]コントロール

意味：[ツリー]コントロールの[ノードID]、[親ID]、[表示項目]の各特性に設定された項目が現在のタスクで定義されたものでない場合にこのエラーが発生します。

自動ヘルプ以外のヘルプは、ここには指定できません.

発生場所：[モデル]リポジトリ

[データソース]リポジトリ／[カラム]テーブル

[プログラム]リポジトリ／[フォーム]エディタ

意味：[自動ヘルプ]特性に指定されたヘルプが自動ヘルプでない場合に発生します。

ツールチップ以外は、ここでは指定できません.

発生場所：[モデル]リポジトリ

[データソース]リポジトリ／[カラム]テーブル

[プログラム]リポジトリ／[フォーム]エディタ

意味：[ツールチップ]特性に指定されたヘルプがツールチップでない場合に発生します。

重複可のインデックスは、[インデックス]特性に設定できません.

発生場所：[データ]リポジトリ／[データソース特性]／[SQL]タブ

意味：SQLテーブルの[位置]特性に「重複不可インデックス」が定義されていて、[インデックス]特性に重複可インデックスが定義されている場合に発生します。

パラメータの数が合っていません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[コール]処理コマンド／[パラメータ]特性

[プログラム]リポジトリ／[フォーム]エディタ／[サブフォーム]コントロール／[パラメータ]特性

意味：パラメータの数が呼ぶ側と呼ばれる側で合っていない場合に、このエラーが発生します。

BLOBカラムが多すぎます.

発生場所：[データ]リポジトリ／[カラム]テーブル

意味：SQLテーブルの場合：BLOB項目の定義数が DBMSの制限を超えた場合にこのエラーが発生します。 （例：Oracleの場合は 7、Pervasive ISAMは1、Memoryは1）

[部数]特性を指定してください.

発生場所：[プログラム]リポジトリ／[入出力ファイル]テーブル／[入出力ファイル]特性／[部数]特性

意味：[プリンタ]カラムが「GUI形式プリンタ」と定義され、[部数]特性が指定されていない場合にこのエラーが発生します。

[繰返し行数]特性が指定されていますが、フォームに[テーブル]コントロールがありません.

発生場所： プログラム/ブラウザフォーム/データソース特性

意味：[データソース特性]の[明細行]特性が指定されているが、フォーム上にテーブルが定義されていない場合にこのエラーが発生します。

クラスが｢0｣のフォームしか選択できません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ

意味：クラスが 1 以上のフォームを定義した場合に発生します。

クラスタ化インデックスとして指定できるのは１つのインデックスだけです.

発生場所：[データ]リポジトリ／[インデックス]テーブル／[インデックス]特性／[SQL]カラム

意味：SQLデータベースで複数のインデックスに[クラスタ化]特性が設定されている場合にこのエラーが発生します。

ブロックIfに条件が指定されていない場合、Elseは使用できません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[ブロック]処理コマンド

意味：If-Else のブロックに[条件]が指定されていない場合に発生します。条件なしの場合は、Else指定ができません。

１つのタスクには１つのリクエスタしか指定できません.

発生場所：[プログラム]リポジトリ／[入出力ファイル]テーブル

意味：[入出力ファイル]テーブルに一つ以上のリクエスタが定義されている場合にこのエラーが発生します。

このパラメータ名は、既に存在しています.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム/マージイベント／マージコマンド／ハイパーリンク／パラメータ

意味：パラメータテーブルに同じ名前のパラメータがある場合に発生します。

パラメータ名を入力してください.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム/マージイベント／マージコマンド／ハイパーリンク／パラメータ

意味：[パラメータ]テーブルにパラメータ名が定義されていない場合に発生します。

このパラメータは、このインデックスタイプに使用できません.

発生場所：[データ]リポジトリ／[インデックス]テーブル／[インデックス]特性

意味：[方向]特性が「T=双方向」で、[データベース情報]特性で「ORDER_BY_NON_UNIQUE=Yes」に設定されている場合にこのエラーが発生します。 Oracleの場合のみ関係します。

[プリンタ]テーブルにプリンタが定義されていません.

発生場所：[プログラム]リポジトリ／[入出力ファイル]テーブル

意味：[メディア]カラムが「G=GUI形式プリンタ」か「P=テキスト形式プリンタ」で、[プリンタ]カラムに定義されたプリンタが存在しない場合に発生します。

[サブフォーム]コントロールに、プログラム番号かタスク番号を指定してください.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザクライアント形式]フォーム／HTMLコントロール／[サブフォーム]コントロール／[プログラム/タスク番号]特性

意味：[サブフォーム]コントロールの[プログラム/タスク番号]特性にタスク／プログラムの指定がない場合に発生します。プログラム番号がメインプログラムを指定していたり、指定したプログラム番号が削除された場合も発生します。

公開プログラム名が指定されていません.

発生場所：[プログラム]リポジトリ／公開名

意味：ブラウザプログラムやリッチクライアントプログラムに公開プログラム名が指定されていない場合に発生します。

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[コールリモート]処理コマンド／[プログラム名]

意味：公開プログラム名（または式）が指定されていない場合に発生します。

自動ヘルプ／ツールチップは、[ヘルプ画面]特性には設定できません.

発生場所：[モデル]リポジトリ

[データソース]リポジトリ／[カラム]テーブル

[プログラム]リポジトリ／[フォーム]エディタ

[メニュー]リポジトリ

意味：[ヘルプ画面]特性に指定されたヘルプが、自動ヘルプやツールチップの場合に発生します。

サーバ側で実行される関数をフォーム上に直接定義できません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[リッチクライアント形式]フォーム

意味：[フォーム特性]や[コントロール特性]に設定された式に、サーバ側で実行される関数が含まれている場合に発生します。

サーバ関数からの値を、一旦変数項目に格納してから使用するように検討してください。

この公開名は既に存在しています.

発生場所：[モデル]リポジトリ／[公開名]カラム

[データ]リポジトリ／[公開名]カラム

[プログラム]リポジトリ／[公開名]カラム

[ヘルプ]リポジトリ／[公開名]カラム

[権利]リポジトリ／[公開名]カラム

[イベント]テーブル／[公開名]カラム

意味：同じ公開名のオブジェクトが定義されている場合に、このエラーが発生します。

プッシュボタンに設定されたイベントが正しくありません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[プッシュボタン]コントロール

意味：[実行イベント]特性に無効なイベントが定義された場合にこのエラーが発生します。

[データ]特性または、有効な[実行イベント]特性を設定してください.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[プッシュボタン]コントロール

意味：以下の場合にこのエラーが発生します。

  • [データ]特性に項目が指定されていない。

  • [実行イベント]特性が指定されていない。

[範囲]特性の[項目]カラムに、項目を指定してください.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式ｆフォーム／データコントロール

意味：データコントロールの[範囲]特性に[項目]カラムが「0」になっている行がある場合に表示されます。

埋込SQL の出力パラメータに 範囲は指定できません

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／[範囲]特性

意味：[SQLコマンド]ダイアログの[出力パラメータ]欄が設定されている場合、出力パラメータとなるカラムの[範囲]特性が定義されている場合に発生します。

指定された[選択項目リスト]特性が、項目やコントロールの書式と合っていません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／チョイスコントロール／[選択項目リスト]特性

意味：チョイスコントロールの[選択項目リスト]特性に定義された値が、コントロールのデータ型と合っていない場合に発生します。

BLOB項目には、範囲/位置付の指定はできません.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／項目定義

意味：BLOB項目を定義し、以下の特性値が定義されている場合にこのエラーが発生します。

  • 範囲（最小）

  • 範囲（最大）

  • 位置付（最小）

  • 位置付（最大）

外部キーには、参照するテーブルを指定してください.

発生場所：[データ]リポジトリ／[インデックス]テーブル／[外部キー]テーブル

意味：SQLテーブルで外部キーの参照テーブルが指定されていない場合に発生します。

参照キーはユニークでなければなりません.

発生場所：[データ]リポジトリ／[インデックス]テーブル／[外部キー]テーブル

意味：外部キーに定義された参照キーが重複可に設定されている場合に発生します。

[ルート値]特性を定義してください.

発生場所：プログラム/GUI表示フォーム/[ツリー]コントロール/ルート値

意味：[ルート値]特性に式が定義されていない場合にこのエラーが発生します。

レコードサイズが大きすぎます.

発生場所：[データ]リポジトリ／[カラム]テーブル

意味：カラムサイズの合計がデータベースの制限を超えている場合に発生します。

例：

  • MS-SQL:32767

  • Pervasive：固定長サイズが 4088

  • DB2UDB:32767

  • ODBC：32767

  • Oracle：32511

レコードサイズが正しくありません.

発生場所：[データ]リポジトリ／[カラム]テーブル

意味：カラムサイズの合計が「0」の場合に発生します。

ツリーの[ルート値]、[ノードID]と[親のID]の各特性は、同じデータ型でなければなりません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[ツリー]コントロール

意味：[ルート値]や[ノードID]と[親のID]の各特性に定義された項目の型が合っていない場合に発生します。

セグメントカラムは、NULL値可に設定できません.

発生場所：[データ]リポジトリ／[インデックス]テーブル／[セグメント]テーブル

意味：セグメントカラムに設定したカラムの[NULL値可]特性が｢Yes｣に設定されている場合に、このエラーが発生します。

セグメントサイズが正しくありません.

発生場所：[データ]リポジトリ／[インデックス]テーブル／[セグメント]テーブル

意味：セグメントサイズが「0」か、セグメントカラムの長さより大きい場合に発生します。

インデックスのセグメントサイズが正しくありません.

発生場所：[プログラム]リポジトリ／タスク環境／ソートテーブル

意味：インデックスセグメントに文字項目が定義されており、サイズが 「0」か元の項目長より大きく指定された場合に発生します。

注意：

このエラーは登録時にステータスバーに表示されます。

プライマリキーで使用されるセグメントカラムは、NULL値可に設定できません.

発生場所：[データ]リポジトリ／[インデックス]テーブル／[セグメント]テーブル

意味：プライマリキーとして設定されたインデックスのセグメントカラムとして設定されたカラムの[NULL値可]特性が｢Yes｣に設定されている場合に、このエラーが発生します。

選択した項目は、すでにこのフォームで使用されています.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム／[HTMLコントロール]テーブル

意味：コントロールに割り当てられた項目が、同じフォーム内の別のコントロールに割り当てられている場合に発生します。

メインソースが定義されていないため、ソートテーブルは定義できません.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ

意味：メインソースが定義されておらず、SQLタスクでない場合、[ソート]テーブルは定義できません。[ソート]テーブルに項目が定義されている場合にこのエラーが発生します。

BLOBのみのデータソースは作成できません.

発生場所：[データ]リポジトリ／[カラム]テーブル

意味：データソースのカラムが全てBLOB項目の場合にこのエラーが発生します。

SQLテーブルには、DBテーブル名が必須です.

発生場所：[データ]リポジトリ／[カラム]テーブル／[DBカラム名]特性

意味：SQLテーブルにアクセスする場合には、カラムに[DBカラム名データソース名]にデータベーステーブル名を定義する必要があります。この設定がありません。

DBテーブル名が長すぎます.

発生場所：[データ]リポジトリ／[データソース]カラム

意味：ファイル名の長さが、データベースで定義されるものより大きい場合にこのエラーが発生します。

iSeriesの場合は、ファイル名が10桁を超えた場合に発生します。

SQLテーブルで定義されたDBテーブル名がDBMSの制限を超えた場合に発生します。

HTMLドキュメントで使用するテーブルは、指定された行数で登録できません.

結合リンクで使用するデータソースは、常駐できません.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／リンク／データソース

意味：結合リンクしたデータソースが常駐テーブルになっている場合に発生します。

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／リンク／メインソース

意味：メインソースが常駐テーブルのタスクで、結合リンクを行っている場合に発生します。

このタスクタイプは指定できません.

発生場所：[プログラム]リポジトリ／タスク特性／[タスクタイプ]特性

意味：オンラインタスクのサブタスクにブラウザタスクが定義されていたり、ブラウザタスクのサブタスクとしてオンラインタスクが定義されている場合にこのエラーが発生します。

指定されたフォームは空です.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[フォーム入力]処理コマンド／[入出力フォーム]特性

意味：入力フォーム上にコントロールが一つも配置されていない場合に発生します。

存在しないコントロールが定義されています.

結合リンクでは、重複不可インデックスしか使用できません.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／リンク／インデックス

意味：結合リンクにインデックスが定義されていないか、重複可のインデックスが指定されている場合に発生します。

プライマリキーのセグメントと現在のテーブルのカラムが合っていません.

発生場所：[データ]リポジトリ／[インデックス]テーブル／[外部キー]テーブル

意味：外部キーと参照キーのセグメントの数が異なる場合に発生します。

[トランザクション開始]特性と[ロック方式]特性に矛盾があります.

発生場所：[プログラム]リポジトリ／タスク環境／タスク特性／[データ]タブ

意味：以下の場合にこのエラーが発生します。

  • [トランザクション開始]特性が「レコード更新前」に設定されて、[ロック方式]が「即時」か、「更新時」の場合

  • [トランザクション開始]特性が「なし」に設定されて、[ロック方式]が「なし」の場合

[トランザクションモード]特性と[ロック方式]特性に矛盾があります.

発生場所：[プログラム]リポジトリ／タスク環境／タスク特性／[データ]タブ

意味：[トランザクションモード]特性が「遅延」に設定されて、[ロック方式]が「即時」か、「修正後」、「更新前」の場合にこのエラーが発生します。

[トークン前付符号]と[トークン後付符号]は異なっていなければなりません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[トークン前付符号]特性

意味：[マージ形式]フォームの[トークン前付符号]（式）特性の指定値と[トークン後付符号]（式）特性が同じ場合や、[HTMLファイル]特性にファイル名が指定されていない場合に発生します。

[トークン前付符号]を入力してください.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[タグテーブル]特性

意味：[マージ形式]フォームの[トークン前付符号]（式）特性が指定されていない場合に発生します。

[トークン後付符号]を入力してください.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[タグテーブル]特性

意味：[マージ形式]フォームの[トークン後付符号]（式）特性が指定されていない場合に発生します。

カラム数が多すぎます.

発生場所：[データ]リポジトリ／[カラム]テーブル

意味：データソースに定義されたカラムの数がデータベースゲートウェイの制限を超えた場合に発生します。

例：

  • Oracle: 1000

  • DB2/400: 8000

  • MS-SQL Server7: 1024

  • ODBC: 500

セグメント数が多すぎます.

発生場所：[データ]リポジトリ／[インデックス]テーブル／[インデックス]特性／[SQL]カラム

意味：[DBインデックス名]特性の長さが、使用するDBMSの制限を超えた場合に発生します。

インデックス数が限界を超えています.

発生場所：[データ]リポジトリ／[インデックス]テーブル

意味：インデックスの数がデータベースゲートウェイの制限を超えた場合に発生します。

例：

  • Oracle 8: 255

  • MS-SQL Server7: 249

  • ODBC: 254

  • DB2/400: 32767

セグメント数が限界を超えています.

発生場所：[データ]リポジトリ／[インデックス]テーブル

意味：セグメントの数がデータベーステーブルに定義された値より大きい場合に発生します。

インデックスのセグメントの合計値がデータベース内のインデックスの数より大きい場合に発生します。（例：DB2 UDB: 120）

インデックスのセグメントの合計値がデータベースゲートウェイの最大値を超えた場合に発生します。

特定のインデックスのセグメント長がデータベースゲートウェイの最大値を超えた場合に発生します。

型が合っていません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／データコントロール／[範囲]特性

意味：データコントロールの[範囲]特性に定義された項目と[開始]／[終了]カラムに定義された式のデータ型が合わない場合にこのエラーが発生します。

発生場所：[プログラム]リポジトリ／SQLコマンド／戻り値

[プログラム]リポジトリ／[条件]特性

意味：指定した項目のデータ型が論理型でない場合に発生します。

発生場所：[プログラム]リポジトリ／[入出力ファイル]テーブル／[式/項目]カラム

意味：指定された式の戻り値が合わない場合に発生します。

型が合っていません.－項目は、文字型でなければなりません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[コールリモート]処理コマンド／[メッセージID]特性

意味：[コールリモート]処理コマンドの[メッセージID]特性に定義された項目の型が文字型でない場合に発生します。

パラメータの型が合っていません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[コール]処理コマンド

[プログラム]リポジトリ／[フォーム]エディタ／[サブフォーム]コントロール／[パラメータ]特性

意味：パラメータや戻り値のデータ型が起動先の定義内容と合っていない場合にこのエラーが発生します。

Magic SQL Where句は、常駐テーブルをメインソースにしているタスクでは定義できません.

発生場所：[プログラム]リポジトリ／タスク環境／範囲/位置付／SQL Where句

意味：SQL Where句は、常駐テーブルをメインソース にしたタスクには定義できません。

範囲式とメインソースで常駐テーブルが定義された場合に、このエラーメッセージが表示されます。

アプリケーション名と公開プログラム名は必須入力です.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム／[HTMLコントロール]テーブル／ハイパーテキスト／[ハイパーリンク]特性

[プログラム]リポジトリ／タスク環境／タスク特性／[終了時URL]特性

意味：ハイパーリンクのタイプが「Magicプログラム」の場合で、プロジェクト名や公開プログラム名が指定されていない場合に発生します。

URLヘルプは、ブラウザフォームまたはそのコントロール以外で指定できません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム

意味：[GUI表示形式]フォームやフォーム上のコントロールにURLヘルプが定義された場合に発生します。

式が正しくありません.定義式には、ブラウザプログラムでしか使用できない関数が含まれています.

発生場所：[プログラム]リポジトリ／[式]エディタ

意味：メインプログラム以外のオンライン／バッチタスクにブラウザタスクでしか使用できない関数が定義されている場合に発生します。現在、以下の 2つ関数が該当します。

  • CallOBJ

  • CallJS

同じ項目は１つしか指定できません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ

意味：同じフォーム上の複数のコントロールに同一項目が割り当てられている場合に発生します。

インデックスが定義されていません.

発生場所：[データ]リポジトリ／[インデックス]テーブル

意味：SQLテーブルの場合：テーブルにインデックスが定義されていない場合に発生します。

ISAMテーブルの場合：インデックスセグメントの項目長が「0」の場合に発生します。

式の値と型が一致していません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／各コントロール

意味：コントロールの[型]特性が[データ（式）]特性の型と合っていない場合に発生します。

結合リンクで参照する項目は、同じ記憶形式でなくてはなりません.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／リンク

意味：[結合リンク]／[外部結合リンク]によって定義された項目の[位置付]（最小／最大）特性の指定値の記憶形式が合っていない場合に発生します。

このコントロールに対して、使用できない項目です.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／各コントロール／[データ]特性

意味：以下のコントロールに対して定義された項目が正しない場合にこのエラーが発生します。

  • プッシュボタン …… 文字型/Unicode型項目以外が定義された場合

  • チェックボックス …… 論理型項目以外が定義された場合

  • エディット …… BLOB型項目が定義された場合

  • サブフォーム …… 文字型/Unicode型項目以外が定義された場合

  • リッチエディット …… BLOB型項目以外が定義された場合

  • OLE …… BLOB型項目以外が定義された場合.

  • イメージ …… 文字型/Unicode型またはBLOB型項目以外が定義された場合

  • ツリー …… 文字、Unicode、数値、日付、時刻の各型の項目以外が定義された場合

  • チョイス …… 文字、/Unicode、数値、日付、時刻、論理の各型の項目以外が定義された場合

この名前の項目は他のコントロールで使用されています.

結合リンクで参照する項目は、結合リンクの一部でなければなりません.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／リンク

意味：[結合リンク]／[外部結合リンク]によって定義された項目の[位置付]（最小／最大）特性の指定値の記憶形式が合っていない場合に発生します。

このタイプのフォームは、ページヘッダ／ページフッタとして指定できません.

発生場所：[プログラム]リポジトリ／[入出力ファイル]テーブル／[入出力ファイル]特性

意味：[ページヘッダ]や[ページフッタ]特性に[マージ形式]フォームが定義されている場合にこのエラーが発生します。

ブラウザフォームのサブフォームコントロールは、ブラウザタスクでのみ有効です.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ表示表示形式]フォーム／[サブフォーム]コントロール／[プログラム/タスク番号]特性

意味：ブラウザクライアントタスクの表示フォームに定義された[サブフォーム]コントロールに、オンラインやリッチクライアントタスクが設定されている場合に、このエラーが発生します。

ベクトルがネストされています.終端の[セルモデル]にベクトル型以外のモデルを指定してください.

発生場所：[モデル]リポジトリ／[セルモデル]特性

意味：ベクトル型の項目モデルの[セルモデル]特性に別のベクトル型の項目モデルが設定されていますが、末端のベクトル型モデルの[セルモデル]特性に何も設定されていない場合にこのエラーが発生します。ここには、ベクトル型以外の項目モデルを指定してください。

このベクトルは、再帰ベクトル定義の一部になっています.

発生場所：[モデル]リポジトリ／[セルモデル]特性

意味：ベクトル型の項目モデルの[セルモデル]特性が再帰定義（自分自身を指定している）されている場合に発生します。再帰定義はサポートされていません。

終端の[セルモデル]の書式が正しくありません.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／[セルモデル]特性

意味：[セルモデル]特性で指定したモデルの書式が正しくない場合に発生します。

起動されるプログラムは、新しいセッションで実行されません. [コンテキストID]の指定は不要です.

発生場所：[メニュー]リポジトリ／メニュー特性／[コンテキストID]特性

意味：[並行起動]特性が「No」に設定されているプログラム対して[コンテキストID]特性が設定されている場合に発生します。

型が合っていません.－項目は、数値型でなければなりません.

発生場所：[プログラム]リポジトリ／[ロジック]エディタ／[コールリモート]処理コマンド／[戻り値コード]特性

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド／[エラーコード]特性

意味：[コールリモート]処理コマンドの[戻り値]特性や[エラーコード]特性に定義された項目の型が数値型でない場合に発生します。

結合リンクによる位置付は、項目か定数で指定してください.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／リンク／[位置付]特性

意味：結合リンクで定義されたカラムの[位置付]特性に、関数や演算子が含まれた式が指定された場合に発生します。

外部結合リンクの[位置付]特性に設定する項目は、[リンク]コマンドより前に定義しなくてはなりません.

発生場所：[プログラム]リポジトリ／[データビュー]エディタ／リンク

意味：外部結合リンクによって定義されたカラムの[位置付]特性に、このリンクコマンドより後に定義された項目が設定されている場合に発生します。

メインプログラムでは、項目定義に範囲を設定できません.

発生場所：[プログラム]リポジトリ／メインプログラム／[データビュー]エディタ

意味：メインプログラムに定義されている項目の[範囲]特性が設定されている場合に発生します。

[ツリー]コントロールは、オンラインタスクでのみ有効です.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[ツリー]コントロール

意味：バッチタスクの[GUI表示]フォームに[ツリー]コントロールが配置されている場合に発生します。

テンプレートファイルエラー:ELSE が重複しています.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[ファイル名]特性／テンプレートファイル

意味：[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイルの 「MGELSE」トークンが重複して定義されている場合に発生します。

テンプレートファイルエラー:IF-ELSE のタグに不整合があります.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[ファイル名]特性／テンプレートファイル

意味：[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイルに｢MGELSE｣タグが定義されているにもかかわらず、「MGIF」タグや「MGENDIF」タグのどちらか（または両方）が定義されていない場合に発生します。

テンプレートファイルエラー:IF-ENDIF のタグに不整合があります.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[ファイル名]特性／テンプレートファイル

意味：[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイルの「MGENDIF」タグに対応する「MGIF」タグが定義されていない場合に発生します。

テンプレートファイルがオープンできませんでした.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[ファイル名]特性

意味：[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイルが存在しないか、（権利上の制限のために）アクセスできない場合に発生します。

テンプレートファイルエラー:IF-ENDIF のタグに不整合があります.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[ファイル名]特性／テンプレートファイル

意味：[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイルの「MGIF」タグに対応する「MGENDIF」タグが定義されていない場合に発生します。

テンプレートファイルエラー:REPEAT-ENDREPEATの間に他のタグが必要です.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[ファイル名]特性／テンプレートファイル

意味：[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイルの「MGREPEAT」タグと「MGENDREPEAT」タグの間に他のマージタグが定義されていない場合に発生します。

テンプレートファイルエラー:トークン後付符号がありません.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[トークン後付符号]特性

意味：[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイルに定義されたトークンの後付符号が[トークン後付符号]特性に設定された値と合っていないか、[トークン後付符号]特性に値が設定されていない場合に発生します。

テンプレートファイルエラー:REPEAT-ENDREPEATのタグに不整合があります.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[ファイル名]特性／テンプレートファイル

意味：[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイルの「MGREPEAT」タグとこれに対応する「MGENDREPEAT」タグが対になって定義されていない場合に発生します。

テンプレートファイルエラー:IF や REPEAT タグの間に矛盾があります.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[ファイル名]特性／テンプレートファイル

意味：[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイルの「MGIF」タグと「MGENDIF」タグ、「MGREPEAT」タグと「MGENDREPEAT」タグの組み合わせが合っていない場合に発生します。

テンプレートファイルエラー:トークンが大きすぎます.

発生場所：[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[ファイル名]特性／テンプレートファイル

意味：[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイル内のトークン名（デフォルト：<!$MG_XXXX>の｢XXXX｣）の長さが31バイト以上の場合に発生します。

親タスク、変数、メインソースのいずれかの項目から使用してください.

発生場所：[プログラム]リポジトリ/[範囲／位置付]ダイアログ／SQL Where句/[式]特性

意味：SQL Where句で使用されているデータ項目が、（結合リンク／外部結合リンク以外の）通常のリンク項目の場合にこのエラーが発生します。

DB SQLは、常駐テーブルをメインソースにしているタスクでは定義できません.

発生場所：[プログラム]リポジトリ／タスク環境／範囲/位置付／DBH SQL

意味：DB SQLは、常駐テーブルをメインソース にしたタスクには定義できません。

範囲式とメインソースで常駐テーブルが定義された場合に、このエラーメッセージが表示されます。

@ コマンドは値として表示される文字型/Unicode型の項目しか使用できません.

発生場所：[プログラム]リポジトリ／タスク環境／範囲/位置付／DBH SQL Where句

意味：DB SQL Where句で、文字型/Unicode型以外のカラムに @コマンドを指定した場合に、このエラーメッセージが表示されます。

記述の中の項目番号が無効です.

発生場所：[プログラム]リポジトリ／タスク環境／範囲/位置付／DBH SQL Where句

意味：DB SQL Where句に存在しない項目番号が定義された場合にこのエラーメッセージが表示されます。

注意：

このエラーは登録時にステータスバーに表示され、該当する項目は削除されるため、構文チェックには表示されません。

CndRange関数は、項目定義の[範囲／位置付]特性にしか指定できません.

発生場所：[プログラム]リポジトリ

意味：CndRange関数は、[範囲/位置付]の条件設定用の関数のため、これ以外の目的（例：[項目更新]処理コマンド）で使用された場合にこのエラーメッセージが表示されます。

CndRange関数は、他の式の一部としては使用できません.

発生場所：[プログラム]リポジトリ／[式]エディタ

意味：別の関数の一部にCndRange関数が指定された場合にこのエラーメッセージが表示されます。

注意：

このエラーは登録時にもステータスバーに表示されます。

CallProg関数は、タスク特性では使用できません.

発生場所：[プログラム]リポジトリ／タスク環境／タスク特性

意味：[タスク特性]のパラメータとしてCallProg関数が指定された場合にこのエラーメッセージが表示されます。


事前定義ロジック

［事前定義ロジック］テーブルに表示される情報は、すべてのプロジェクトで利用できます。この情報は、ユーザ毎に管理されます。

ここに入力された内容は、各ユーザ毎にドキュメントフォルダ内のApplication Data\MSJ\xpa\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グループに登録されたユーザだけに限られます。

  • シークレット名は、［動作環境］ダイアログで指定されたセキュリティファイルに保存されます。このセキュリティファイルは、暗号化されます。サーバパスワードに対するシークレット名は、［サーバ］の設定ダイアログで設定されます。

  • シークレット名は、以下のような認証欄でのみ使用できます。

  • ［データベース特性］のユーザ名とパスワード

  • LDAP特性のユーザ名とパスワード

  • ［データソース特性］のアクセスキー

  • ［動作環境］の［SOAPクライアントモジュールパス］

  • HTTPCallとHTTPGet、HTTPPostの各関数

  • シークレット名と論理名の両方が使用されている場合、まず、［シークレット名］テーブルでシークレット名が解析され、その後、［論理名］テーブルで検索が行われます。

関連トピック：

論理名

データベースのログイン情報を非表示にするには


ユーザグループ

［ユーザグループ］テーブルには、各ユーザグループの名前と権利が一覧表示されます。このテーブルで、Supervisorはグループを宣言し、各グループの権利を定義します。

ユーザまたはユーザグループに権利を定義して割り当てる方法については、「グループの権利を定義する」および「ユーザにグループメンバシップを割り当てる」を参照してください。

［ユーザグループ］テーブルには、以下のカラムがあります。

カラム

内容

名前

ユーザグループの名前です。 最大127文字が入力できます。

権利

［権利］欄には、グループに割り当てられている権利キーの数が表示され、ここからズームすると［グループ権利］テーブルがオープンされます。権利キーは複数の権利に対応付けることが可能なため、キーの数がグループの権利の合計数より少ない場合もあります。

Supervisorは［権利］欄をダブルクリックして［グループ権利］を表示し、特定のグループに割り当てられている権利を確認することができます。

グループに割り当てられている一連のキーは、プロジェクトによって変動することはありません。しかし、キーに対応付けられている権利は、プロジェクトごとに異なる可能性があります。Supervisorが［ユーザグループ］テーブルの［権利］欄をダブルクリックした時に、最初に表示される権利一覧は、［アプリケーション一覧］の先頭のプロジェクト対するグループの権利です。そのプロジェクト名は、［グループ権利］テーブルの最上段に表示されます。グループの［権利］テーブルが表示されている時に、画面の右下の［プロジェクト］ボタンをクリックすると、別のプロジェクトに対するグループの権利を表示できます。

SUPERVISORグループ

Supervisorは、SUPERVISORグループにユーザを割り当てたり、追加することができます。SUPERVISORグループに所属するユーザは全て、そのプロジェクトに設定されている全てのSUPERVISORの権利を自動的に継承します。

関連トピック：

権利グループを定義するには


ユーザグループ グループメンバシップを割り当てる

ホーム > リファレンスガイド > 設定 > ユーザグループ > ユーザにグループメンバシップを割り当てる

ユーザにグループメンバシップを割り当てる

ユーザにグループメンバシップを割り当てるには

  1. SUPERVISORでログインします。

  2. ［オプション］メニューから［設定/ユーザID］を選択し、対象のユーザを強調表示させます。

  3. ［ユーザID］テーブルの［グループ］カラムから［グループ］テーブルにズームします。対象のグループを選択します。


ユーザグループ 権利を定義

ホーム > リファレンスガイド > 設定 > ユーザグループ > グループの権利を定義する

グループの権利を定義する

グループの権利を定義するには

  1. SUPERVISORとしてログインします。

  2. ［オプション］メニューから［設定/ユーザグループ］を選択します。

  3. 行を作成します。

  4. ［権利］カラムから［公開権利一覧］にズームし、権利を選択するか、または権利キーを直接入力します。


ユーザID

［ユーザID］テーブルには以下のカラムがあります。

カラム | 内容
ユーザID | ログオン時に、ユーザが［ログオン］ダイアログの［ユーザID］欄に入力した文字列と比較される英数字の文字列です。［環境設定］ダイアログの［パスワード入力］パラメータが「No」に設定されている場合は、［ログオン］ダイアログは自動表示されません。［ユーザID］欄は、プログラムでUser(0)関数を使用して参照できます。 最大127文字が入力できます。
名前 | ユーザ名を指定します。この欄は、ログオン時にはチェックされません。SUPERVISORは、この値を使用してユーザを識別できます。また、この値は、プログラムでUser (1)関数を使用して照会できます。
パスワード | ログオン時に、ユーザが［ログオン］ダイアログの［パスワード］欄に入力した文字列と比較される英数字の文字列です。［環境設定］ダイアログの［パスワード入力］が「No」に設定されている場合は、［ログオン］ウィンドウは自動表示されません。 ユーザIDとパスワードは、大文字小文字を区別しません。 F5キーを押下すると［パスワード］ダイアログボックスが表示されます。ここに新しいパスワードを入力することができます。
権利 | ［権利］欄には、ユーザに割り当てられている個々の権利キーの数が表示されると共に、ユーザの［権利］テーブルを開くためにダブルクリックする位置も示されます。権利キーは複数の権利に対応付けることが可能なため、キーの数がユーザの個々の権利の合計数より少ない場合もあります。 SUPERVISORは［権利］欄からユーザの［権利］テーブルを表示して、ユーザに実行時の権利を追加することができます。 ユーザに個別の権利を必ずしも割り当てる必要はありません。
グループ | ［グループ］欄には、そのユーザが所属するグループの数が表示されます。グループのメンバシップを定義するには、［グループ］欄をダブルクリックして［グループ］テーブルを表示し、そのユーザにグループを選択します。1人のユーザを複数のグループに割り当てることもできます。 グループに属するユーザは、そのグループの全ての権利を継承します。グループも参照してください。

［ユーザID］テーブルには、9,999のユーザを登録できます。

［ユーザID］テーブルへの限定的なアクセス権を所持するSUPERVISORは、［オプション］メニューの［設定］から［ユーザID］を選択して、このテーブルを編集することができます。ユーザIDの追加または削除は、開発時や実行時に行うことができます。

SUPERVISORは、［編集］メニューの［特性］ (Alt+Enter)を選択して、［ユーザ特性］ダイアログにユーザに関する情報を入力することができます。

ただし、SUPERVISORは、ユーザのパスワードは見ることはできません。パスワードは、空白でない限り、アスタリスクの文字列として表示されます。SUPERVISORはユーザのパスワードは変更できますが、既存のパスワードを表示することはできません。パスワードを変更するには、このテーブルをダブルクリックしてパスワードボックスを表示し、パスワードを2度入力する必要があります。パスワードは入力中は表示されません。一方、SUPERVISOR以外のユーザは、［ユーザID］テーブルに入って、各自のパスワードを修正することができます。パスワードの変更は、［ユーザID］テーブルでSUPERVISOR以外のユーザに唯一許可されています。

権利を定義するには、次の3つの手順を実行します。

  • ［権利］テーブルに権利を追加します。

  • ［権利設定］ダイアログで、その権利を特定のMagic xpaの処理に関連付けます。

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

権利の割り当て方法の詳細については、「ユーザに権利を割り当てる」を参照してください。

ユーザがMagic xpaにログオンすると、［ログオン］ダイアログに入力された［ユーザID］および［パスワード］の文字列が、［ユーザID］テーブルのものと比較されます。環境設定でそのユーザにユニークなユーザIDとパスワードが設定されていても、アプリケーションごとに、そのユーザに異なるセキュリティスキーマが適用されている可能性があります。［ユーザID］テーブルに1つでも入力があれば、ユーザがデータまたはプログラムにアクセスしようとするたびに、Magic xpaでセキュリティチェックが行われます。ユーザが実行権利のない操作を実行しようとして拒否された場合は、その結果に対するメッセージがメッセージ行に表示されます。

［権利］テーブルは、実行モード時のエンドユーザによるアクセスのみ制御します。プログラム内で実行モード時のセキュリティを細かく制御するには、RightsおよびUser関数を使用します。これらの関数を使用すると、カスタムセキュリティシステムを作成して、タスク内の要素に対するアクセスの制御だけでなく、プログラムレベルでのアクセス制御も組み込むことができます。

注意：

Magic xpaではセキュリティファイルに定義されているユーザを取得するために、MGUSRDMPユーティリティを提供しています。

関連トピック：

権利グループを定義するには


ユーザID 特性 権利

ホーム > リファレンスガイド > 設定 > ユーザID > 権利テーブル

権利テーブル

ここに個々のユーザに対する権利を割り当てます。

［キー］カラムには、プロジェクト内に定義されている権利を表す実際のキー値が含まれています。

個々のユーザに権利を割り当てるには、次の手順を実行します。

  1. 行を作成します。

  2. 公開権利を割り当てる場合は、［キー］欄をダブルクリックして［公開権利］欄を表示し、そこから権利を選択します。

  3. 非公開権利を割り当てる場合は、その権利のキーを直接入力します。キーを直接入力する方法は、公開権利の割り当てにも使用できます。

ユーザに割り当てられている一連のキーは、プロジェクトによって変わることはありません。しかし、キーに対応付けられている権利は、プロジェクトごとに異なる可能性があります。SUPERVISORが［ユーザID］テーブルの［権利］欄をダブルクリックした時に、最初に表示される権利の一覧は、［プロジェクト一覧］の先頭のプロジェクトに対するユーザの権利です。そのプロジェクトの名前は、［権利］テーブルの上部に表示されます（［プロジェクト一覧］は、プロジェクトが何も開いていない状態で、［設定］から［プロジェクト］を選択すると表示されます）。別のプロジェクトに対するユーザの権利を表示するには、［ユーザ権利］テーブルが表示されている時に、画面の右下の［プロジェクト］ボタンをクリックして、リストから別のプロジェクトを選択します。

関連トピック：

アプリケーション全体のアクセスを制限するには

権利グループを定義するには


ユーザID グループ

ホーム > リファレンスガイド > 設定 > ユーザID > グループ

グループ

［グループ］欄には、そのユーザが所属するグループの数が表示されます。グループのメンバシップを定義するには、［グループ］欄をダブルクリックして［グループ］テーブルを表示し、そのユーザにグループを選択します。1人のユーザを複数のグループに割り当てることもできます。

グループに属するユーザは、そのグループの全ての権利を継承します。

ユーザがMagic xpaにログオンすると、［ログオン］ダイアログに入力された［ユーザID］および［パスワード］の文字列が、［ユーザID］テーブルのものと比較されます。動作環境レベルでそのユーザにユニークなユーザIDとパスワードが設定されていても、プロジェクトごとに、そのユーザに異なるセキュリティスキーマが適用されている可能性があります。［ユーザID］テーブルに1つでも入力があれば、ユーザがデータまたはプログラムにアクセスしようとするたびに、Magic xpaでセキュリティチェックが行われます。ユーザが実行権利のない操作を実行しようとすると、その結果に対するメッセージがメッセージ行に表示されます。

［権利設定］ダイアログボックスは、実行時のエンドユーザのアクセスを制限することができます。プログラム内で実行制御する方法として、Rights 関数やUser関数を使用することができます。これらの関数を使用して、プログラムレベルでアクセスを制御するようにすることで、タスク内の要素に対するアクセス制御を含むカスタムのセキュリティシステムを作成することができます。

F5 を押下すると［グループ一覧］が表示され、グループを割り当てることができます。


ユーザID 特性 グループにユーザを追加する

ホーム > リファレンスガイド > 設定 > ユーザID > グループ > グループにユーザを追加する

グループにユーザを追加する

グループメンバ権をユーザに割り当てるには

  1. 行を作成します。

  2. ［グループ］欄をダブルクリックして［グループ一覧］を表示します。

  3. 割り当てるグループを選択します。


ユーザID 特性

ホーム > リファレンスガイド > 設定 > ユーザID > ユーザ特性

ユーザ特性

［ユーザID］テーブルが表示されたら、SUPERVISORは、［編集］メニューの［特性］ (Alt+Enter)を選択して、［ユーザ特性］ダイアログにユーザに関する情報を入力することができます。入力された情報は、プログラムでUser (2)関数を使用して照会できます。


ログオン

［ログオン］ダイアログでは、Magicユーザの［ユーザID］と［パスワード］を指定します。これらの値は、ユーザのアクセス権を決定するために、［ユーザID］テーブルでチェックされます。入力されたユーザIDとパスワードが［ユーザID］テーブルの項目と一致しない場合は、エラーメッセージが表示されて、ダイアログはオープンしたままになります。

［ユーザID］テーブルにユーザIDとパスワードがある場合は、プロジェクト内のユーザの権利が設定されます。ユーザIDとパスワードは、開発と実行の両方の機能で有効です。［ログオン］ダイアログは、［動作環境］ダイアログ内の以下の設定によって制御されます。

  • パスワード入力

  • ログオン許可

［ログオン］ダイアログには以下のカラムがあります。

カラム | 内容
ユーザID | ユーザの名前です。任意の英数字を入力できます。ユーザIDは、［ユーザID］テーブルに存在する必要があります。［動作環境］ダイアログで［パスワード入力］が［Yes］に設定されていると、［ログオン］ダイアログに［ユーザID］欄が表示されます。
パスワード | ユーザIDと組み合わされるパスワードです。任意の文字を入力できます。ユーザIDとパスワードの対は、［ユーザID］テーブルでも定義されている必要があります。［動作環境］ダイアログの［パスワード入力］を「Yes」に設定すると、［ログオン］ダイアログに［ユーザID］欄と［パスワード］欄が表示されます。 ユーザIDとパスワードのチェックでは、大文字と小文字が区別されます。［ユーザID］欄と［パスワード］欄が表示されたら、その入力が済むまで［ログオン］ダイアログは表示されたままになります。

関連トピック：

アプリケーションの管理者権利を定義するには


MAGIC.INIファイル

MAGIC.INIファイルには、Magic xpaの全ての動作環境情報が格納されています。MAGIC.INIファイルは、Magic xpaが起動する作業フォルダ内に存在していなければなりません。［オプション］メニューの［設定］サブメニューから選択する各設定テーブルを使用することで、MAGIC.INIのパラメータを編集することができます。MAGIC.INIは、外部のテキストエディタで編集可能な自由形式のテキストファイルです。さらにMagic xpaは、アプリケーション内からMAGIC.INIファイルにアクセスするためのINIPut およびINIGet関数も備えています。

MAGIC.INIファイルは複数のセクションに分割されます。それぞれのセクションは、関連設定のグループを含みます。Magic xpaでは一部のMAGIC.INIファイルセクションを使用します。ユーザ情報が含まれているセクションもあります。MAGIC.INIファイルには以下のセクションがあります。

  • 動作環境 …… ［MAGIC_ENV］ グローバルな環境パラメータ

  • サーバ …… ［MAGIC_SERVERS］ インストール済みのアプリケーションで利用可能なリモートサーバの一覧

  • サービス …… ［MAGIC_SERVICES］ サーバ別の利用可能なMagicアプリケーションの一覧

  • 通信ゲートウェイ …… ［MAGIC_COMMS］ Magic通信ドライバの一覧

  • DBMS …… ［MAGIC_DBMS］ Magic xpaでサポートされているDBMSの一覧

  • データベース …… ［MAGIC_DATABASES］ Magic xpaでサポートされているデータベースの一覧

  • 論理名 …… ［MAGIC_LOGICAL_NAMES］ 論理名の設定

  • プリンタ …… ［MAGIC_PRINTERS］プリンタ情報

  • ゲートウェイ …… ［MAGIC_GATEWAYS］ Magicゲートウェイの一覧

  • 言語 …… ［MAGIC_LANGUAGE］ サポートされている言語の一覧

  • Java …… ［MAGIC_JAVA］Javaの環境情報

  • RIA環境 …… ［MAGIC_RIA］ RIAの環境情報

  • ロギング …… ［MAGIC_LOGGING］ロギング情報

  • コンポーネント …… ［CRR_INTERFACES］

  • 開発ツール …… ［TOOLS_MENU］ユーザ定義開発メニューを定義します。

  • ビルダユーティリティ …… ［MAGIC_BUILDERS］

  • 特殊 …… ［MAGIC_SPECIALS］

  • 日本語版環境 …… ［dbMAGIC_ ENV］

  • 日本語印刷環境 …… ［WINDOWSJ_PRINTER］印刷環境の設定

MAGIC.INIファイルのユーザ用のセクションには、そこ収められる情報であればどのような情報でも格納できます。代表的な用途としては次のようなものがあります。

  • 異なるファイルやプログラム内の最後の位置（例えば、最後に処理された顧客）などのアプリケーションがによって作成される中間値の格納。データベーステーブルの使用によるオーバーヘッドがありません。

  • アプリケーション内の異なるプログラムで共有できるグローバル変数への値の格納。

  • 特定のエンドユーザアプリケーション用のデータ（例えば総勘定元帳）の格納

MAGIC.INIファイルには、インストール固有の情報と、ユーザ固有の情報が記述されているUserセクションの両方が含まれます。したがって、Magic xpaのマルチユーザインストールでは、各ユーザは別々のディレクトリにMAGIC.INIファイルのコピーを別々に置くようにしてください。

MAGIC.INIファイルにアクセスする時には、並行処理の制御はありません。マルチユーザインストールでMAGIC.INIファイルを複数のユーザが共有する場合は、読み取り専用で使用しなければなりません。複数のユーザが同時にMAGIC.INIファイルに書き込もうとすると、一方のユーザが他方のユーザの更新を上書きすることになります。

関連トピック：

MAGIC.INIファイルのフォーマット

特殊パラメータ

Magic.ini を指定して起動するには

Magc.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 xpaが決定し、アプリケーションセクションについては開発者が決定します。パラメータ値を複数の行にまたがらすには、行の末尾に+記号を付けます。すると、次の行が前の行の継続行として取り扱われます。+記号をパラメータの一部として明示的に指定するには、「\+」という組み合わせを使用します。

; Remark lines

「;」記号が行の先頭にあると、その行の末尾まで全て無視されます。


MAGIC.INI 特殊パラメータ

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ

特殊パラメータ

[動作環境]のダイアログには含まれませんが、MAGIC.INI に記述することで有効になるパラメータがあります。

  • [MAGIC_ENV]セクション

  • [MAGIC_SPECIALS]セクション

  • [dbMAGIC_ENV]セクション

  • [WINDOWSJ_PRINTER]セクション …… [WINDOWSJ_PRINTER]セクションについては、テキスト印刷ユーティリティの説明を参照してください。

  • [MAGIC_BUILDERS]セクション

  • [MAGIC_DEFAULTS]セクション

  • [MAGIC_RIA]セクション


MAGIC.INI 特殊パラメータ MAGIC_ENV

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_ENV

[MAGIC_ENV]セクション

ApplicationPublicName

GeneralErrorLog

Filters

DefaultXMLEncoding

ShortDescriptionChar


特殊パラメータ MAGIC_ENV ApplicationPublicName

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_ENV > ApplicationPublicName

ApplicationPublicName

アプリケーション公開名

環境設定「ApplicationPublicName」は、MRBがプロジェクトを識別するため別のプロジェクトの名前を提供するものです。この設定には、最大30字の文字列が指定できます。

この設定が空白または、パラメータ自体が設定されていない場合、アプリケーションの公開名は、プロジェクトのファイル名（拡張子を除く。）となります。

例えば、APPNAME="ABC"として参照したい場合、[MAGIC_ENV]セクションに以下のように設定してください。

ApplicationPublicName=ABC

実行時にINIPut関数を使用して変更した場合、次のセッションから有効になります。


特殊パラメータ MAGIC_ENV Default XML Encoding

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_ENV > DefaultXMLEncoding

Default XML Encoding

エンコード指定

XMLエンコード方法のデフォルト値を指定します。デフォルトは、UTF-8です。

無効な値が指定された場合は、結果が保証されません。

例：DefaultXMLEncoding = UTF-8


特殊パラメータ MAGIC_ENV Filters

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_ENV > Filters

Filters

フィルタ用キーワードの割合指定

リクエストに付加されたキーワードを基に処理を按分する割合を指定します。

例：Filters = HTTP:10% | SOAP:30% | RMC:20%


特殊パラメータ MAGIC_ENV General Error Log

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_ENV > GeneralErrorLog

General Error Log

ログファイル名の指定

GeneralErrorLogパラメータは、エラーログのファイル名とパスを指定します。

この設定は、それをMAGIC.INIファイルの[MAGIC_ENV]セクションに手動で設定することによってのみ有効になります（動作環境ダイアログボックスからは指定できません）。

例えば、エラーログファイル名とパスを定義するために、以下のように入力します。

GeneralErrorLog=C:\MyLogs\MGError.log

この指定が空白の場合、エラーログファイルは作成されません。


特殊パラメータ MAGIC_ENV ShortDescriptionChar

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_ENV > ShortDescriptionChar

ShortDescriptionChar

コメント表示内容指定

［コメント］ボックスに定義されたコメント内容からオブジェクトの説明として表示される内容を指定します。

例：

［コメント］ボックスに以下のように定義するとします。

Comment to Data Source CUSTMST

/E Customer Master E/

/J 顧客マスタJ/

MAGIC.INI に以下のように定義します。

ShortDescriptionChar = J

この場合、［説明］欄には、「顧客マスタ」が表示されます。

注意：

［コメント］ペインには、入力内容が全て表示されます。


特殊パラメータ MAGIC_SPECIALS

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS

[MAGIC_SPECIALS]セクション

以下のトピックは、MAGIC.INIファイルの[MAGIC_SPECIALS]セクションの内容を機能別に分類したものです。

入出力とWeb関連の設定

エンジンフローとオンラインタスク関連の設定

開発環境に関連する設定

データ管理に関連する設定

その他の設定


特殊パラメータ MAGIC_SPECIALS 入出力とWeb関連

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > 入出力とWeb関連の設定

入出力とWeb関連の設定

入出力とWeb関連の特殊なパラメータには以下のものがあります。

ClosePrintedTablesInSubtasks

CompressBrowserXML

MergeFlushSize

MergeTrim

SecureBrowserClient

SpecialClientCompressMessages

SpecialCloseBCMainWindowOnClosingTask

SpecialConvAddSlash

SpecialImageResize4Printing

SpecialPrintWhiteTillEOP

SpecialRelativeImport


特殊パラメータ MAGIC_SPECIALS 入出力とWeb関連 ClosePrintedTablesInSubtasks

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > 入出力とWeb関連の設定 > ClosePrintedTablesInSubtasks

ClosePrintedTablesInSubtasks （デフォルト：Y）

フォーム出力時の子タスクの処理の設定

親タスク上の[入出力ファイル]テーブルを使用して子タスクでテーブル印刷をする場合、子タスクを終了した時点で、そのテーブルをクローズするか否かを指定します。

  • Yes …… テーブルをクローズします。次回子タスクが呼ばれた時、別テーブルとして印刷出力されます。

  • No …… テーブルをクローズしません。全て同じテーブルに出力されます。

設定例

ClosePrintedTablesInSubtasks=N


特殊パラメータ MAGIC_SPECIALS 入出力とWeb関連 CompressBrowserXML

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > 入出力とWeb関連の設定 > CompressBrowserXML

CompressBrowserXML （デフォルト：A）

リッチクライアントの圧縮指定

注意：

Magic xpaでは、SpecialClientCompressMessagesを使用してください。


特殊パラメータ MAGIC_SPECIALS 入出力とWeb関連 MergeFlushSize

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > 入出力とWeb関連の設定 > MergeFlushSize

MergeFlushSize （デフォルト：51200）

このフラグは、マージ出力時のメモリバッファサイズ（バイト）を定義できます。

利用可能なメモリリソースの範囲内で最も最適なパフォーマンスになるように定義してください。

設定例

MergeFlushSize=51200


特殊パラメータ MAGIC_SPECIALS 入出力とWeb関連 MergeTrim

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > 入出力とWeb関連の設定 > MergeTrim

MergeTrim （デフォルト：N）

マージされたデータのトリミング指定

マージされたデータの右側の空白を削除するかどうかを指定します。

  • Y …… マージ出力時に文字列の右側の空白が削除されます。

  • N …… 空白の削除は行われません。

設定例

MergeTrim=Y


特殊パラメータ MAGIC_SPECIALS 入出力とWeb関連 SecureBrowserClient

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > 入出力とWeb関連の設定 > SecureBrowserClient

SecureBrowserClient （デフォルト：N）

リッチクライアントの各データの暗号化

注意：

Magic xpaでは、SpecialClientSecureMessagesを使用してください。


特殊パラメータ MAGIC_SPECIALS 入出力とWeb関連 SpecialClientCompressMessages

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > 入出力とWeb関連の設定 > SpecialClientCompressMessages

SpecialClientCompressMessages

リッチクライアントの圧縮指定

リッチクライアントタスクのロジック全体が､XMLフォーマットでクライアントに送られます。

Magic xpaのアプリケーションサーバはXMLデータを圧縮することで､より小さなサイズになり、ネットワークトラフィックを減少させることができます。XMLが圧縮される場合、クライアントモジュールは、それを解凍するための処理が必要となります。この処理によって、クライアントにタスクが読み込まれる初期設定時間が長くなる場合があります。

この特別フラグには以下のオプションがあります。

  • Y …… XMLのサイズが3KB以上の場合に圧縮を行います。

  • N …… XMLデータは圧縮されません。

  • A …… （デフォルト）接続が遅いか否かを判断して自動的に決定します。接続が遅くかつ、データのサイズが3KB 以上の場合、XMLは圧縮されます。接続の速度は各エンドユーザの最初のリクエストで評価されます。

設定例

SpecialClientCompressMessages=N

参考：

この機能を有効にするには、XML 暗号化の設定を行う必要があります。

Magic uniPaaS V1Plusまでは､CompressBrowserXML というフラグでした。


特殊パラメータ MAGIC_SPECIALS 入出力とWeb関連 SpecialCloseBCMainWindowOnClosingTask

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > 入出力とWeb関連の設定 > SpecialCloseBCMainWindowOnClosingTask

SpecialCloseBCMainWindowOnClosingTask

ハンドラ内で呼び出したプログラムを終了し、プログラムの[タスク後]でCallJS('Window.close()')を使用する際に、Magicエンジンが正常に終了せず、ウィンドウが開き続ける場合があります。

このフラグをYに設定することで、BCモジュールに、タスク終了時にメインウィンドウやフレームに対してwindow.close()を実行させるように指定します。

設定例

SpecialCloseBCMainWindowOnClosingTask=Y


SpecialConvAddSlash

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > 入出力とWeb関連の設定 > SpecialConvAddSlash

SpecialConvAddSlash （デフォルト：N）

オンラインタスクのGUI表示フォーム上に配置されるイメージファイルのパスの先頭にバックスラッシュ（\）を付加するかどうかを指定します。

「Y」が設定された場合、特性の式以外でイメージファイルのパスを指定した場合、先頭にバックスラッシュ（\）が付加されるため、実行時にイメージが表示されなくなる場合があります。

  • Y …… この機能が有効になります（バックスラッシュが付加されます）。

  • N …… この機能は無効になります。

設定例

SpecialConvAddSlash=N


特殊パラメータ MAGIC_SPECIALS 入出力とWeb関連 SpecialImageResize4Printing

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > 入出力とWeb関連の設定 > SpecialImageResize4Printing

SpecialImageResize4Printing

プリンターで出力されるイメージの変更方法を指定します。

  • Yes …… プリンターで出力されるイメージは、独自のアルゴリズムを使用して大きさが変更されます。

  • No …… プリンターで出力されるイメージは、StretchDIBits（)関数を使用して大きさが変更されます。

設定例

SpecialmageResize4Printing=Y


特殊パラメータ MAGIC_SPECIALS 入出力とWeb関連 SpecialPrintWhiteTillEOP

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > 入出力とWeb関連の設定 > SpecialPrintWhiteTillEOP

SpecialPrintWhiteTillEOP

空白行の印刷

  • N …… （デフォルト）ページの最後（EOP)まで何も印刷されません。

  • Y …… EOPまで空白が印刷されます。

設定例

SpecialPrintWhiteTillEOP=Y


特殊パラメータ MAGIC_SPECIALS 入出力とWeb関連 SpecialRelativeImport

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > 入出力とWeb関連の設定 > SpecialRelativeImport

SpecialRelativeImport （デフォルト：Y）

プログラムの入力時の参照関係の制御

このフラグは、入力するプログラムの範囲指定を制御するものです。

  • Yes …… 入力時に指定範囲内の参照関係が維持されます。（例：A→B という参照関係を出力し、入力すると、今までは　Copy:A → B だったのが Copy:A → Copy:B となります。 ）

  • No …… （Ver9と同じように）入力時に、現状の参照情報をそのまま利用します。このため、出力時と同じプログラム番号を参照するようになります。

設定例

SpecialRelativeImport=N


特殊パラメータ MAGIC_SPECIALS フローとオンライン

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > エンジンフローとオンラインタスク関連の設定

エンジンフローとオンラインタスク関連の設定

エンジンフローとオンラインタスク関連の特殊パラメータには、以下のものがあります。

SpecialAppServerAllowVerifyInBox

SpecialCancelOnCreate

SpecialEditIncreasedHeight

SpecialKeyboardBuffering

SpecialLinkWriteAccess

SpecialModifiedDecimalSeparator

SpecialNullTerminateBlobs

SpecialSkipInMultiEdit

SpecialTrimTrailingNulls


SpecialAppServerAllowVerifyInBox

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > エンジンフローとオンラインタスク関連の設定 > SpecialAppServerAllowVerifyInBox

SpecialAppServerAllowVerifyInBox （デフォルト：N）

このフラグは、エンジンがオンラインモードでアプリケーションサーバとして実行している場合、［エラー］処理コマンドのメッセージボックスを開くことができるようにするものです。

  • Y …… メッセージボックスが開くようになります。

  • N …… メッセージボックスは開きません。

設定例

SpecialAppServerAllowVerifyInBox=Y

サポートバージョン：

2.3


特殊パラメータ MAGIC_SPECIALS フローとオンライン SpecialCancelOnCreate

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > エンジンフローとオンラインタスク関連の設定 > SpecialCancelOnCreate

SpecialCancelOnCreate

登録モード時に、[キャンセル]イベントを処理するかどうかを指定します。これは、V9Plus/Ver10.1SP4b と SP4a で動作に違いが発生したための互換フラグです。

  • Yes …… 新規レコードの入力データが取り消され、カーソルが修正モード時にパークしていた位置に戻ります（Ver10.1SP4a以前の動作です）。

  • No …… レコードが作成された状態で、このレコードの先頭にカーソルが移ります。タスクは、登録モードのままになります（V9Plus/Ver10.1SP4bと同じ動作です）。

このフラグは、オンラインプログラムでのみ有効です。

設定例

SpecialCancelOnCreate=Y


特殊パラメータ MAGIC_SPECIALS フローとオンライン SpecialEditIncreasedHeight

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > エンジンフローとオンラインタスク関連の設定 > SpecialEditIncreasedHeight

SpecialEditIncreasedHeight （デフォルト：N）

サイズ調整の動作を指定

サイズ調整を実行した場合の[エディット]コントロールのトの高さを1ピクセル大きくするかどうかを指定します。これは、フォントサイズによって文字の下辺が表示されなくなる問題に対応したものです。

  • Yes …… 高さが1ピクセル大きくなります。

  • No …… SP2以前と同じように表示されます。

設定例

SpecialEditIncreasedHeight=Y

幅を調整する場合は、EditIncreasedWidth を使用してください。


SpecialKeyboardBuffering

これは、リッチクライアントタスクで修正可能な［エディット］コントロール上にパークしている場合のみ関連します。

キーボード入力のバッファリングの動作を定義します。

  • Yes …… すぐに処理できないキーストロークはバッファリングされ、コントロールに送られます。

  • No（デフォルト） …… キーストロークはバッファリングされません。

設定例

SpecialKeyboardBuffering=Y

サポートバージョン：

2.4


特殊パラメータ MAGIC_SPECIALS フローとオンライン SpecialModifiedDecimalSeparator

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > エンジンフローとオンラインタスク関連の設定 > SpecialModifiedDecimalSeparator

SpecialModifiedDecimalSeparator （デフォルト：N）

このフラグがYに設定されると、[動作環境数]ダイアログの[小数点]の指定内容に関わらず、ドット(.)キーが押されると小数点として扱われます。

注意：

表示される小数点は、動作環境で設定された文字になります。


特殊パラメータ MAGIC_SPECIALS フローとオンライン SpecialNullTerminateBlobs

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > エンジンフローとオンラインタスク関連の設定 > SpecialNullTerminateBlobs

SpecialNullTerminateBlobs （デフォルト：Y）

このフラグは、文字データによってBLOB項目を更新する処理の扱い方を指定します。

  • Y …… 文字データの最後に空白文字を追加します。

  • N …… 空白文字は追加されません。

設定例

SpecialNullTerminateBlobs =Y


特殊パラメータ MAGIC_SPECIALS フローとオンライン SpecialLinkWriteAccess

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > エンジンフローとオンラインタスク関連の設定 > SpecialLinkWriteAccess

SpecialLinkWriteAccess

Magic xpa V1Plusより、[リンク]コマンドをプログラムに追加する場合の動作が変更され､リンクタイプに従って[アクセス]特性の内容が変わるようになりました。

この動作を､旧バージョンと同じようにする（常に「書出」）には､このフラグを「Y」に設定してください。

設定例

SpecialLinkWriteAccess=Y


特殊パラメータ MAGIC_SPECIALS フローとオンライン SpecialSkipInMultiEdit

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > エンジンフローとオンラインタスク関連の設定 > SpecialSkipInMultiEdit

SpecialSkipInMultiEdit （デフォルト：N）

通常は、[テーブル]コントロール内の複数行の[エディット]コントロール上にパークしている場合、上/下のカーソルキーはテーブル行ではなく[エディット]コントロール内の行をスクロールします。このフラグは、この動作を制御するものです。

  • Y …… 複数行の[エディット]コントロール上にパークしている場合も、テーブル行をスクロールすることができます。

  • N …… [エディット]コントロール内の行スクロールのみ動作します。

設定例

SpecialSkipInMultiEdit=Y


特殊パラメータ MAGIC_SPECIALS フローとオンライン SpecialTrimTrailingNulls

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > エンジンフローとオンラインタスク関連の設定 > SpecialTrimTrailingNulls

SpecialTrimTrailingNulls （デフォルト：N）

文字型データの後尾にNULL文字がある場合、Trim関数で削除するかどうかを定義します。Ver9.30JSP5以前はNULL文字も削除していましたが、Ver9.40JSP1以降は削除しないようになりました。

  • Y …… Trim関数でNULL文字を削除します。（Ver9.30JSP5以前と同じ）

  • N …… NULLの削除を行いません。

設定例

SpecialTrimTrailingNulls=Y

注意：

リッチクライアントタスクでは無効です。


特殊パラメータ MAGIC_SPECIALS 開発環境

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > 開発環境に関連する設定

開発環境に関連する設定

開発環境に関する特殊パラメータには以下のものがあります。

SpecialAnsiExpression

SpecialDefaultTransactionMode

SpecialRMCompatibleLogic

SpecialRelativeImport

SpecialSetParamRemoveEmptyStrings

SpecialShowCheckInScreen

SpecialShowCheckOutScreen

SpecialShowStatusBarPanes


特殊パラメータ MAGIC_SPECIALS 開発環境 SpecialAnsiExpression

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > 開発環境に関連する設定 > SpecialAnsiExpression

SpecialAnsiExpression （デフォルト：N）

文字列関数評価時に、常に Shift-JISで 評価する

文字列関数を評価する際、通常は「実行エンジンの動作」に従って評価されますが、このフラグが「Y」 にセットされていた場合には、常に Shift-JIS 文字として評価されるようになります。

V10以前の過去のバージョンとの互換性を重視する場合に設定します。

注意：

このフラグが有効な場合には、UNICODE固有文字を使用しないでください。「？」 に変換されてしまう可能性があります。

設定例

SpecialAnsiExpression=N


特殊パラメータ MAGIC_SPECIALS 開発環境 SpecialDefaultTransactionMode

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > 開発環境に関連する設定 > SpecialDefaultTransactionMode

SpecialDefaultTransactionMode（デフォルト：D）

デフォルトのトランザクションモードの指定

オンラインタスクのデフォルトのトランザクションモードを指定します。

  • D …… 「遅延」がデフォルトになります。

  • P …… 「物理」がデフォルトになります。

設定例

SpecialDefaultTransactionMode=P

注意：

オンラインモードのルートタスクでのみ有効です。バッチタスクやサブタスクでは関係しません。


特殊パラメータ MAGIC_SPECIALS 開発環境 SpecialRMCompatibleLogic

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > 開発環境に関連する設定 > SpecialRMCompatibleLogic

SpecialRMCompatibleLogic （デフォルト：N）

[RM互換]ロジックユニットの有効指定

[RM互換]ロジックユニットを新規作成できるかどうかを指定します。

[RM互換]ロジックユニットでは、[データビュー]エディタに入力されたデータビュー項目が全て表示され、データビュー定義の間にロジックを定義させることができるようになります。ここでは、データビューの定義はできません。

  • Yes …… 新規作成にタスクで[RM互換]ロジックユニットが定義できるようになります。

  • No …… [RM互換]ロジックユニットは、V9Plusから移行した場合のみ有効になります。

設定例

SpecialRMCompatibleLogic=Y


特殊パラメータ MAGIC_SPECIALS 開発環境 SpecialSetParamRemoveEmptyStrings

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > 開発環境に関連する設定 > SpecialSetParamRemoveEmptyStrings

SpecialSetParamRemoveEmptyStrings （デフォルト：Y）

このフラグは、SetParam関数の処理を制御します。

このフラグを「N」に設定すると、SetParam関数で空白値を指定しても、現在のコンテキスト内でグローバル変数を削除しなくなります（GetParame関数でこのパラメータの値を取得しても、NULLは返りません）。

  • Yes …… 空白値を指定するとグローバル変数が削除されます。

  • No …… 空白値を指定してもグローバル変数は削除されません。

設定例

SpecialSetParamRemoveEmptyStrings=N


特殊パラメータ MAGIC_SPECIALS 開発環境 SpecialShowCheckInScreen

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > 開発環境に関連する設定 > SpecialShowCheckInScreen

SpecialShowCheckInScreen

Magic xpaがチェックインする度にコメントダイアログを表示させるかどうかを指定します。

  • Yes …… （デフォルト）常にダイアログを表示します。

  • No …… ダイアログは表示されません。

設定例

SpecialShowCheckInScreen=N


特殊パラメータ MAGIC_SPECIALS 開発環境 SpecialShowCheckOutScreen

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > 開発環境に関連する設定 > SpecialShowCheckOutScreen

SpecialShowCheckOutScreen

Magic xpaがチェックアウトする度にコメントダイアログを表示させるかどうかを指定します。

  • Yes …… （デフォルト）常にダイアログを表示します。

  • No …… ダイアログは表示されません。

設定例

SpecialShowCheckOutScreen=N


SpecialShowStatusBarPanes

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > 開発環境に関連する設定 > SpecialShowStatusBarPanes

SpecialShowStatusBarPanes （デフォルト：N）

リッチクライアントタスクの実行時にタスクモードをステータスバーに表示するかどうかを指定します。

  • N …… タスクモードは表示されません。（デフォルト)

  • Y…… タスクモードがステータスバーに表示されます。

このフラグは、リッチクライアントの実行時にのみ影響します。

また、［ウィンドウタイプ］特性が「SDI」で、［ステータスバー表示］特性が「Yes」の場合のみ有効です。

設定例

SpecialShowStatusBarPanes=Y


特殊パラメータ MAGIC_SPECIALS 開発環境 SpecialWaitForRuntimeSimulateOperation

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > 開発環境に関連する設定 > SpecialWaitForRuntimeSimulateOperation

SpecialWaitForRuntimeSimulateOperation （デフォルト：N）

このフラグは、ユーザ定義開発メニューのシミュレーション処理の動作を制御します。

  • Yes …… Magicエンジンは、1つの処理が終了して次の処理に移るまで処理を待たせます。

  • No …… 前の処理の終了を待たずに次の処理を行います（旧バージョンのデフォルトの動作です）。

設定例

SpecialWaitForRuntimeSimulateOperation=Y


特殊パラメータ MAGIC_SPECIALS データ管理

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > データ管理に関連する設定

データ管理に関連する設定

データ管理に関する特殊パラメータには、以下のものがあります。

RtfBufferSize

SpecialDatabaseConnectionPooling

SpecialNoCheckIndexInDeferred

XXLNumericSize

SpecialTrimParamDSQL


特殊パラメータ MAGIC_SPECIALS データ管理 RtfBufferSize

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > データ管理に関連する設定 > RtfBufferSize

RtfBufferSize （デフォルト：OSに依存）

実行時に[リッチエディット]コントロールに入力できるデータサイズの最大値(KByte)を指定できます。

新しいウィンドウが表示される（つまり[タスク前]の前で）度に、MAGIC.INIの設定値が読み込まれます。これは、タスクが起動される前に（上位タスクで）INIPut関数を使用することで、各RTFのサイズを設定できることを意味しています。タスク内でMAGIC.INIの設定を変更しても、すでに作成されていた[リッチエディット]コントロール内の内容には影響しません。

また、File2Blob関数によって読み込む場合も影響しません。

設定例

RtfBufferSize=1

入力可能なデータは、1Kbyte(実際は、約1.3KByte程度)に制限されます。


SpecialDatabaseConnectionPooling

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > データ管理に関連する設定 > SpecialDatabaseConnectionPooling

SpecialDatabaseConnectionPooling （デフォルト：N）

データベース接続を異なるコンテキスト間で分配するかどうかを定義します。

  • Y …… コンテキストがクローズされた場合、そのデータベース接続はオープンされたままになり、将来のコンテキストのために使用されることを意味します。

  • N…… コンテキストがクローズされた場合、そのデータベース接続もクローズされることを意味します。

設定例

SpecialDatabaseConnectionPooling=Y

サポートバージョン：

2.2


特殊パラメータ MAGIC_SPECIALS データ管理 SpecialNoCheckIndexInDeferred

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > データ管理に関連する設定 > SpecialNoCheckIndexInDeferred

SpecialNoCheckIndexInDeferred （デフォルト：N）

遅延トランザクションモードでインデックスチェック機能を無効にする必要がある場合に指定します。遅延トランザクションモードで重複レコードのエラーを出したくない場合に使用してください。

  • Y …… 遅延トランザクションモードでインデックスチェック機能が無効になります。

  • N …… インデックスチェック機能は有効です。

設定例

SpecialNoCheckIndexInDeferred=Y


特殊パラメータ MAGIC_SPECIALS データ管理 SpecialTrimParamDSQL

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > データ管理に関連する設定 > SpecialTrimParamDSQL

SpecialTrimParamDSQL

ダイレクトSQLステートメントに送られるパラメータをトリミングするかどうかを指定することができます。

  • Y …… 空白をトリミングします。

  • N …… （デフォルト）トリミングを行いません。

注意：

Magic uniPaaS Ver1.8までは、[dbMAGIC_ENV]セクションのTrimParamDSQLパラメータで行われた処理と同じ機能です。

関連トピック：

埋め込みSQL


特殊パラメータ MAGIC_SPECIALS データ管理 XXLNumericSize

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > データ管理に関連する設定 > XXLNumericSize

XXLNumericSize（デフォルト：N）

数値項目の桁数の上限指定

数値項目が扱うことのできる桁数の上限を指定します。

  • Yes …… 19 桁～ 38 桁までの数値項目を扱う場合、に「Yes」設定します。ただし、この設定を行うとパフォーマンスに影響がでる場合があります。

  • No …… 数値項目は18 桁までです。

設定例

XXLNumericSize=Y


特殊パラメータ MAGIC_SPECIALS その他

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > その他の設定

その他の設定

その他の特殊パラメータには、以下のものがあります。

ExceptionMessageBoxDisplay

SpecialClientSecureMessages

SpecialEventQMaxInterval

SpecialEventQSizeLimit

SpecialLicenseLog

SpecialLicenseServerInterval

SpecialProgXMLSizeWarning

SpecialRecordCriticalLockWait

SpecialSchemaSizeLimit

SpecialTableCriticalLockWait

SpecialV9BlobInVectorCompatible


特殊パラメータ MAGIC_SPECIALS その他 ExceptionMessageBoxDisplay

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > その他の設定 > ExceptionMessageBoxDisplay

ExceptionMessageBoxDisplay （デフォルト：N）

バックグラウンドモード時のエラーメッセージの扱いを設定

マルチスレッドのバックグラウンドモードで実行中にエラーが発生した場合の動作を指定します。

  • Yes …… エラーのメッセージボックスが表示され、エンジンは終了します。

  • No …… エラーが発生したスレッドが終了し、エンジンは実行し続けます。

設定例

ExceptionMessageBoxDisplay=Y


特殊パラメータ MAGIC_SPECIALS 入出力とWeb関連 SpecialClientSecureMessages

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > その他の設定 > SpecialClientSecureMessages

SpecialClientSecureMessages （デフォルト：N）

リッチクライアントデータの暗号化

リッチクライアントタスクの全てのロジックは、XMLフォーマットでクライアントに送られます。このフラグは、サーバからクライアントに送られるメッセージが暗号化され、圧縮されるかどうかを指定します。

XMLデータは、デフォルトでは暗号化されていません。このフラグをYに設定することによって、Magic xpaはクライアントに送信されるXMLを暗号化します。

この特別フラグには以下のオプションがあります。

  • Yes …… 暗号化されます。

  • No …… (デフォルト)暗号化されません。

設定例

SpecialClientSecureMessages=Y

参考：

Magic uniPaaS V1以前までは、SecureBrowserClient というフラグでした。


特殊パラメータ MAGIC_SPECIALS その他 SpecialEventQMaxInterval

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > その他の設定 > SpecialEventQMaxInterval

SpecialEventQMaxInterval（デフォルト：0）

イベントキュー内の空き領域を再確認する前の待ち時間（ミリ秒）を指定します。

イベントキューのサイズが、SpecialEventQSizeLimitフラグによって制限されている場合に有効です。

設定例

SpecialEventQMaxInterval=60


特殊パラメータ MAGIC_SPECIALS その他 SpecialEventQSizeLimit

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > その他の設定 > SpecialEventQSizeLimit

SpecialEventQSizeLimit（デフォルト：0）

実行先コンテキストを使用して[イベント実行]処理コマンドの実行させる場合の動作を制御します。

このフラグは、イベントをコンテキストに送るために使用されるイベントキューの最大サイズを指定します。キューのサイズがこのフラグで指定された値と等しい場合、キュー内に空きができるまでキューの送信が待たされます。

フラグが0に設定された場合、キューの最大長は仮想記憶のサイズによって制限されます。

設定例

SpecialEventQSizeLimit=60

関連トピック：

SpecialEventQMaxInterval


SpecialLogInternalExceptions

このフラグは、内部で発生した例外処理をmgerror.logファイルに書き込むかどうかを指定します。

  • Yes …… Logに書き込みます。

  • No …… 書き込みを行いません。

設定例

SpecialLogInternalExceptions =Yes

関連するインタフェース: クライアント／サーバ

サポートバージョン：

2.5


特殊パラメータ MAGIC_SPECIALS その他 SpecialLicenseLog

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > その他の設定 > SpecialLicenseLog

SpecialLicenseLog

このフラグは、ライセンスファイルを指定している場合にのみ有効です。ライセンスサーバを指定している場合には、該当しません

ライセンスのブロードキャスト機能に対して作成されるログファイルを指定します。ログファイル名が指定されない場合は、ログは作成されません。

設定例

SpecialLicenseLog=LogFileName.txt


特殊パラメータ MAGIC_SPECIALS その他 SpecialLicenseServerInterval

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > その他の設定 > SpecialLicenseServerInterval

SpecialLicenseServerInterval（デフォルト：1）

このフラグはライセンスサーバのチェック間隔を指定します。

実際の間隔は、以下の通りです。

バックグラウンドエンジンの場合

一律 6分後に、エンジンが終了します。

オンラインエンジンの場合

最初は指定された値×3(秒)[最低値は、40秒]、その後、指定された秒数毎にチェックされ、4回目にエンジンが終了します。


特殊パラメータ MAGIC_SPECIALS 開発環境 SpecialProgXMLSizeWarning

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > その他の設定 > SpecialProgXMLSizeWarning

SpecialProgXMLSizeWarning（デフォルト：N）

サイズの大きなプログラムのチェック指定

構文チェックユーティリティが、一定の値よりサイズが大きいプログラム上で実行されると、以下の警告メッセージを表示します。

「プログラムファイルのサイズは、%sMBです.プログラムの読み込みに時間がかかるかもしれません」

この機能でチェックするプログラムのXMLファイルのサイズを指定します(Mbyte 単位)。

この設定を「0」に指定するか、[チェックメッセージ]テーブルの[レベル]指定を変更することで、警告が出ないようにすることができます。

設定例

SpecialProgXMLSizeWarning=2000

この場合、2000Mbyte以上のプログラムがチェック対象になります。


SpecialRecordCriticalLockWait

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > その他の設定 > SpecialRecordCriticalLockWait

SpecialRecordCriticalLockWait （デフォルト：0）

レコードのクリティカルロックを防止

このフラグは、レコードのクリティカルロックが発生した場合に、無限ループの発生を防止するために使用されます。このフラグは、Magic xpaがロック情報の取得後にスリープ状態にする時間（ミリ秒数）を指定します。これにより、OSがコンテキストの切り替えを実行できるようになります。

設定例

SpecialRecordCriticalLockWait=100


特殊パラメータ MAGIC_SPECIALS その他 SpecialSchemaSizeLimit

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > その他の設定 > SpecialSchemaSizeLimit

SpecialSchemaSizeLimit

スキーマ内の複合要素の制限値

このフラグは、スキーマ(XMLビュー)から構文解析される複合要素の数を制限する場合に使用されます。

設定例

SpecialSchemaSizeLimit=NNNN


SpecialTableCriticalLockWait

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > その他の設定 > SpecialTableCriticalLockWait

SpecialTableCriticalLockWait （デフォルト：0）

テーブルのクリティカルロックを防止

このフラグは、テーブルのクリティカルロックが発生した場合に、無限ループの発生を防止するために使用されます。このフラグは、Magic xpaがロック情報の取得後にスリープ状態にする時間（ミリ秒）を指定します。これにより、OSがコンテキストの切り替えを実行できるようになります。

設定例

SpecialTableCriticalLockWait=100


特殊パラメータ MAGIC_SPECIALS その他 SpecialV9BlobInVectorCompatible

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_SPECIALS > その他の設定 > SpecialV9BlobInVectorCompatible

SpecialV9BlobInVectorCompatible （デフォルト：N）

ベクトル形式のBLOB項目の扱いを指定

Magic xpaでのベクトルデータ内のBLOBのフォーマットと、Magic eDeveloper V10 SP1以前で作成されたデータとの互換性を維持する場合に、本フラグを指定してください。

  • Yes …… 旧フォーマットで処理されます。

  • No …… 新フォーマットで処理されます。

設定例

SpecialV9BlobInVectorCompatible=Y


MAGIC.INI 特殊パラメータ dbMAGIC_ENV

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > dbMAGIC_ENV

[dbMAGIC_ENV]セクション

MAGIC.INIファイルの[MAGIC_SPECIALS]セクションに、日本語版でのみサポートされている環境設定用のフラグがあります。

As400Set

EditIncreasedWidth

LocateProgramList

NoDocumentName

PrecedeProgramList

PrintLine

ShowComponentError

ShowItemSymbolSelect

TripletNonAsciiUrl

PrintTextByteMode


特殊パラメータ dbMAGIC_ENV As400Set

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > dbMAGIC_ENV > As400Set

AS400Set （デフォルト：Y）

IBM i用の文字型書式の機能拡張

IBM i(AS/400）のDBCS対応のために、Magic xpaの文字型書式の「位置指示記号」をスイッチを指定することにより、機能拡張します。

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


特殊パラメータ dbMAGIC_ENV EditIncreasedWidth

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > dbMAGIC_ENV > EditIncreasedWidth

EditIncreasedWidth

［エディット］コントロールのサイズ調整

APGでプログラムを作成した場合や、サイズ調整機能を実行した場合の［エディット］コントロールの幅を大きめに調整します。オンラインプログラムのGUI表示フォームの［エディット］コントロールでのみ有効です。

コントロールの幅が小さくて表示が欠ける問題に対応する場合に使用します。

指定できるパラメータは以下の通りです。

  • No …… （デフォルト）加算処理は行われません。

  • Yes …… 1ピクセルがコントロールの幅に加算されます。

  • 数値 ……指定された数値分のピクセルがコントロールの幅に加算されます。

以下の場合は反映されません。

  • テーブルのカラムとして定義されている場合

  • BLOB項目が定義されている場合

  • ［境界］特性が｢No｣に設定されている場合

他にも、特性値の組み合わせによって反映されない場合があります。

設定例

［書式］が｢10｣の［エディット］コントロールにサイズに 14ptの（プロポーショナルでない）フォントを指定した場合、「サイズ調整」を行うとコントロールの［幅］特性の値は以下のようになります。

（フォームの［寸法単位］は｢ダイアログ｣）

EditIncreasedWidth=N …… 17.25 （先頭の文字が半分くらい欠けて表示されます）

EditIncreasedWidth=Y …… 17.50

EditIncreasedWidth=2 …… 17.75

高さを調整する場合は、SpecialEditIncreasedHeight を使用してください。

サポートバージョン：

2.3b PT2


特殊パラメータ dbMAGIC_ENV LocateProgramList

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > dbMAGIC_ENV > LocateProgramList

LocateProgramList （デフォルト：N）

プログラム一覧の動作制御

[プログラム一覧]（[コールプログラム]処理コマンドでズームした時等）の操作性を向上させるため、 コンボボックス（全て、同一アプリケーション、コンポーネント）を切り替えた時に、カーソルを常に先頭行にするのではなく、直前までカーソルのあったプログラムに位置付します。

  • Y …… この機能を有効にします。

  • N …… 無効です。

設定例

LocateProgramList=Y


特殊パラメータ dbMAGIC_ENV NoDocumentName

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > dbMAGIC_ENV > NoDocumentName

NoDocumentName （デフォルト：N）

印刷ドキュメント名の制御

GUI形式印刷を行った場合、印刷キューに追加されるドキュメント名は、通常入出力ファイルの「名前」欄の名称の前に「Magic -」が付加されます。これを付加するかどうかを指定します。

  • Y …… ドキュメント名に「Magic -」が付加されません。

  • N …… 「Magic -」が付加されます。

設定例

NoDocumentName=Y


特殊パラメータ dbMAGIC_ENV PrecedeProgramList

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > dbMAGIC_ENV > PrecedeProgramList

PrecedeProgramList （デフォルト：N）

プログラム一覧の動作制御

［プログラム一覧］の操作性を向上させるため、「コンポーネント名.オブジェクト名」の順ではなく、「オブジェクト@コンポーネント名」の順で表示します。

  • Y …… この機能を有効にします。

  • N …… 無効です。

設定例

PrecedeProgramList=Y


特殊パラメータ dbMAGIC_ENV PrintLine

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > dbMAGIC_ENV > PrintLine

PrintLine （デフォルト：S）

空白行の印刷制御

［ページ当たりのレコード件数］特性が指定されている場合、出力レコードの処理が終了した時点での各コントロールの印字を終了させるかどうかを制御します。

印字を終了させたくない場合、レコードが終了しても、レコード件数分コントロールを印字させることができます。

  • Y …… [ライン]コントロールと[スタティック]コントロール両者を印字させます。

  • N …… [ライン]コントロールと[スタティック]コントロール両者とも印字させません。

  • L …… [ライン]コントロールのみ印字させます。

  • S …… [スタティック]コントロールのみ印字させます。

設定例

PrintLine=Y


特殊パラメータ dbMAGIC_ENV ShowComponentError

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > dbMAGIC_ENV > ShowComponentError

ShowComponentError （デフォルト：N）

コンポーネントエラーの動作制御

コンポーネントの読込に失敗した場合にエラーメッセージを表示するかどうかを指定します。

  • Y …… コンポーネントの読込に失敗した場合にエラーメッセージを表示します。

  • N …… （デフォルト）コンポーネントの読込に失敗してもエラーメッセージを表示しません。

設定例

ShowComponentError=Y


特殊パラメータ dbMAGIC_ENV ShowItemSymbolSelect

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > dbMAGIC_ENV > ShowItemSymbolSelect

ShowItemSymbolSelect （デフォルト：N）

[データビュー]エディタでのシンボル名表示制御

[データビュー]エディタで、項目名と一緒にシンボル名 (A、 B、...) を表示させます。

  • Y …… この機能を有効にします。

  • N …… 無効です。

設定例

ShowItemSymbolSelect=Y


特殊パラメータ dbMAGIC_ENV TripletNonAsciiUrl

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > dbMAGIC_ENV > TripletNonAsciiUrl

TripletNonAsciiUrl （デフォルト：N）

URLのASCII以外の文字変換制御

ハイパーリンクのタイプがMagicアプリケーションの場合、パラメータに非ASCII文字が含まれている場合に、そのコードを%##（##は 16進コード）という形式に変換するかどうかを指定します。

  • Y …… コードを%##（##は 16進コード）という形式に変換します。このコードはシフトJISとなります。

  • N …… URLを表す文字列の変換は行いません。

設定例

TripletNonAsciiUrl=Y


特殊パラメータ dbMAGIC_ENV PrintTextByteMode

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > dbMAGIC_ENV > PrintTextByteMode

PrintTextByteMode （デフォルト：N）

テキスト印刷の出力調整

テキスト形式印刷を行う場合に発生する以下の問題に対応させるためのパラメータです。

  • 罫線が接続されない場合がある

  • [テキスト]コントロール上の一部に別の[テキスト]コントロールや[エディット]コントロール貼り付けて印刷すると、上に貼り付けた別のコントロールの印字位置や次行のテキストコントロールの位置がずれる場合がある

パラメータの設定内容によって、以下のように動作します。

  • Y …… 出力内容が調整されます。

  • N …… 出力の調整は行われません。

設定例

PrintTextByteMode=Y


MAGIC.INI 特殊パラメータ MAGIC_BUILDERS

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_BUILDERS

[MAGIC_BUILDERS]セクション

各インタフェースビルダユーティリティが管理するコンポーネント情報が保存される場所を指定します。インタフェースビルダが起動されるとこのフォルダ上のファイルをメモリテーブルに展開します。

  • COM= (COMインタフェースビルダ用)

  • WS= (Webサービスインタフェースビルダ用)

  • ECI= (Magicインタフェースビルダ用)

  • EJB= (EJBインタフェースビルダ用)

  • RC= (リッチクライアントインタフェースビルダ用)

指定されない場合は、Magic xpaのインストール先のComponentsサブフォルダの各対応するサブフォルダ上をデフォルトとします。この指定を変更する場合は、インタフェースビルダ起動前にファイルを変更先にコピーしておいてください。作成されるファイルは、全て同じ名前ですのでフォルダ名を同じにしないでください。

注意：

COM/EJB の各インタフェースビルダはサポート対象外です。

Webサービスインタフェースビルダ用

以下のパラメータは、WebサービスインタフェースビルダがWebサービス用フレームワーク（Sysinet Server for Java）にアクセスする際に使用するパラメータです。Webサービスインタフェースビルダが作成するため、必要がない限り変更しないでください。

  • Soap Server Address =(Systinet ServerのURL)

  • SoapUser = (Systinet ServerにアクセスするためのユーザID)

  • SoapPass = (Systinet Serverにアクセスするためのパスワード)

  • SoapServiceNamespace = (Systinet Serverにアクセスするためのネームスペース)


MAGIC.INI 特殊パラメータ MAGIC_DEFAULTS

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_DEFAULTS

[MAGIC_DEFAULT]セクション

アプリケーションのデフォルト値とデフォルトのNULL表示文字列を定義します。 この設定がない場合は、Magic xpa内のデフォルト値を使用します。

MAGIC.INI 内で指定できるキーワードは以下の通りです。

  • DefaultDate …… 日付型

  • NullAlphaDisplay …… 文字型のNULL表示文字列

  • NullNumericDisplay …… 数値型のNULL表示文字列

  • NullLogicalDisplay …… 論理型のNULL表示文字列

  • NullDateDisplay …… 日付型のNULL表示文字列

  • NullTimeDisplay …… 時刻型のNULL表示文字列

  • NullBlobDisplay …… BLOB型のNULL表示文字列

  • MergePrefix …… マージ処理で参照するトークン前付符号

  • MergeSuffix …… マージ処理で参照するトークン後付符号

変更内容は、次のセッション起動時に反映されます。

注意：

DefaultDate の書式は、日付モードに依存します。実行中にこの値を変更した場合、次に起動した時に有効になります。


MAGIC.INI MAGIC_RIA

ホーム > リファレンスガイド > 設定 > MAGIC.INIファイル > 特殊パラメータ > MAGIC_RIA

[MAGIC_RIA]セクション

MAGIC.INIファイルの[MAGIC_RIA]セクションには、以下の設定内容が含まれています。

この設定は、開発環境でのみ有効です。実行環境で表示させる場合は、公開用Webページのパラメータを設定してください。

InternalLogLevel

InternalLogLevel=NONE、SERVER、SUPPORT、GUI、またはDEV

  • NONE …… ログを出力しません。

  • BASIC …… HTTPリクエストの受信と送信についてのみ記録されます。このレベルは、製造（そして、テストの)システム、特に通信範囲とコンポーネントのハンドシェークのトラブルシューティングで使用されるはずです。（サポートバージョン：2.4）

  • SERVER …… HTTPリクエストと応答のみ出力します。

  • SUPPORT …… SERVER指定の内容に加え、サーバ間のデータの内容を出力します。

  • GUI …… SUPPORT指定の内容に加え、クライアントによって記録されたGUIメッセージの一部を出力します。

  • DEV …… クライアントによって記録されたすべてのメッセージを出力します。

注意：

ログの内容はSUPPORTレベル以外は暗号化され、圧縮されます。

開発中は、指定されたキーワードがクライアントのログレベルになります。InternalLogFileが定義されていて、InternalLogLevelが空白の場合、ログには警告とエラーのみ記録されます。

実行中は、クライアントのログレベルの最大値に設定されます。

キーワードが設定されない場合は、デフォルトのSERVERになります。

Localゲートウェイのロギングはこの設定に基づいて動作します。ロギングレベルはサーバ上のゲートウェイに対する定義にはなりません。例えば、クライアントのログレベルがSUPPORTとして定義された場合、ログにはSupportレベルのゲートウェイログがを含まれます。

[Logging]セクションで定義されたり、［外部ログファイル名］に書き込まれる他のサーバログとは異なりて、BASICログレベルは［MAGIC_RIA］セクションを参照して、GeneralErrorLogに書き込まれます。

InternalLogFile

InternalLogFile= file name

設定されない場合、クライアントのデスクトップに以下のファイル名で保存されます。

Magicxpa_YYYY_MM_DD[.Process ID].log

InternalLogSync

InternalLogSync=Message, Session, または None

  • None …… .NETフレームワークのデフォルトにもとづいてログファイルが自動的に作成されます。

  • Session …… ログファイルは自動的には作成されません。このレベルは最も処理が早くなります。

  • Message …… ログファイルは、各メッセージ毎にオープン/クローズされます。このレベルは、ログの保全性には優れていますが動作が遅くなります。

DisplayStatisticInformation

DisplayStatisticInformation=Y または N

Y に設定した場合

  • ツールチップ……最上位のタスクのステータスバーの一番右端に直近の5つのHTTPリクエストのリストを表示します。

  • セッション概要……セッション完了時に、InternalLogFileに概要を書き込みます。

HTTPRequestTimeout

この値はサーバとのハンドシェイクの間、リッチクライアントに送信されて、クライアントからサーバまでのHTTPリクエストのタイムアウト（つまり、クライアントがサーバにリクエストを再送する時間）として使用されます。

iOSではサポートされません。

デフォルト値：5秒

サポートバージョン：

2.4

Magic xpa Studioは、F7を押下してプログラムを実行する度に、InternalLogLevel、InternalLogSuyncおよびDisplayStatisticsInformationをプロジェクトフォルダ内のexecution.propertiesファイルにマージします。また、ClientModulesPathで指定されたクライアント実行モジュール（MgxpaRIA.exe）を起動します。

RIAコンポーネントビルダは、これらの内容をHTMLファイル(ClickOnce)にも実行プロパティ(モバイル)のどちらにもマージしません。

しかし、これらのキーワードは、手動で以下のファイルに反映させることができます。

  • ClickOnce …… 作成されたhtmlまたは、基になるテンプレートファイル
    <インストールフォルダ>\Add_On\Builders\templates\PublishHtml.tpl

  • RIAモバイル …… 実行プロパティ用テンプレート：
    <インストールフォルダ>\Add_On\Builders\Templates\ExecutionProperties.tpl

関連トピック：

ClientSessionStatisticsGet


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

Magic.iniファイルには、Magic xpaの設定環境の情報が含まれています。Magic xpa Studioの［動作環境］ダイアログ（オプション→設定→動作環境)のスタジオから更新したり、ファイルで直接変更することができます。

時々、異なる設定ファイル（Magic.ini)を使用する必要があったり、いくつかの設定のみ変更したい場合があるかもしれません。このような場合は、コマンドラインパラメータを使用することで可能になります。これは通常、Windowsのショートカットの［リンク先］フィールドで設定します。

このような設定方法は、Magic xpa StudioとRuntimeの両方で使用することができます。

コマンドラインの値は、基本的に一時的で、セッション期間中のみ有効になります。コマンドラインでパラメータを指定してMagic xpa を起動すると、これらの値は［動作環境］ダイアログに表示されます。

コマンドラインオプションの構文

Magic xpaのコマンドラインオプションの構文は次の通りです。

MgxpaStudio.exe（または、MgxpaRuntime.exe） [/環境設定値=Value1] [/環境設定値 =Value2] [/環境設定値 …] [/ini=Value] [@filename] [-ver]

Magic xpa .exe は、Magic xpa Studio の場合は、MgxpaStudio.exe、実行製品の場合は、MgxpaRuntime.exe になります。

注意：

  • 角括弧は、オプションパラメータを示しています。構文の一部として使用しないでください。

  • コマンドラインファイル内の項目は、それぞれ一つの行に定義しなければなりません。

下記のセクションは、構文の各部分について説明しています。

環境設定値

コマンドラインパラメータとして指定することによってMagic.iniファイルに記述されているMagic xpa環境設定情報を上書きすることができます。

パラメータとして環境設定値を使用した場合、以下の構文を使用します。

[/環境設定値=Value]

カラム | 内容
環境設定値 | Magic.iniファイルに定義されている環境設定のID。ここには、セクション名を含めることができます。 セクション名が指定された場合、環境設定値パラメータはそのセクション内のパラメータとして限定されます。セクション名が指定されない場合、［MAGIC_ENV］セクションがデフォルトとして使用されます。
= | 環境設定値とその値の間のセパレーター。環境設定値とセパレーターと値の間に空白は指定できません。
Value | 環境設定値パラメータに割り当てられる値。有効な値の指定してください。

Magic.iniファイル内で識別子を捜したり、リファレンスヘルプで検索することができます。各設定のヘルプトピックごとに、以下の記述で行を参照することができます。「Magic.iniとコマンドライン名」

例えば、/DeploymentMode=B を指定した場合、DeploymentModeは実行モードを指定する値で、Bは実行エンジンをバックグラウンドモードで起動することを指定します。

カンマ（,）、バックスラッシュ（\）、プラス記号（+）、または等号（=）をコマンドラインのテキストのリテラル部分として入力する場合は、接頭語として「\」文字を付ける必要があります。カンマを含む例を次のセクションに示します。それとは別に、一対の一重引用符（'）で値を囲み、値をそのまま受け付けるようMagic xpaに指示することもできます。この方法では、バックスラッシュを文字として入力できます。Magic xpaに送られる値の一部として、OSの環境変数を指定することもできます。

例：

/CommandProcessor = '%comspec%'

コマンドラインパラメータの値にアスタリスク（*）を指定することで、値全体を終わりまで受け取り、ターミネータと引用符を無視するようにMagic xpaに指示できます。

ファイルにこれらの環境情報を保存して、追加された環境ファイルとして読み込ませることもできます。

以下は、コマンドラインの例です。

MgxpaStudio.exe /DefaultProject = d: \Program Files\MSE\Magic xpa x.x\Projects\myproject.edp

このコマンドはMagic xpa Studioを開始hして、指定されたプロジェクトを自動的に開きます。

MgxpaStudio.exe /[MAGIC_LOGICAL_NAMES]Drive=C:

このコマンドはMagic xpa Stuidioを開始して、”Drive”という論理名を”C：”に設定します。論理名"Drive"がMagic.iniファイルの［MAGIC_LOGICAL_NAMES］セクションに存在しない場合は、新しい一時的な論理名はMagic xpaのセッション期間中のみ有効になります。

MgxpaStudio.exe /DefaultProject = d: \Program Files\MSE\Magic xpa x.x\Projects\myproject.edp /[MAGIC_LOGICAL_NAMES]Drive=C:

このコマンドは、上記の2つの例で示されるコマンドラインパラメータを結合したものです。

INIファイル

さまざまな環境設定が必要な場合、（Magic xpaのインストールの異なる設定毎に）複数のMagic.iniファイルを定義することができます。そして、Magic xpaにこれらのファイルを使用して起動させるために、コマンドラインオプションを使用することができます。

デフォルトのMagic.iniとは異なる環境設定ファイルを読み込ませたい場合は、以下の構文を使用します。

[/ini=Value]

Value は、Magic xpaの起動時に設定したい環境ファイルの名前です。

filenameは、使用したい環境設定ファイルを

例：

MgxpaStudio.exe/ini=mydef.ini

追加するINIコンテンツ

複数のプロジェクトに対して1つの環境設定ファイルを指定しており、いくつかの設定のみが異なる場合があります。例えば、データベース接続や倫理名などがあります。追加設定ファイルを読み込ませることでこれを可能にすることができます。このファイルには、一組の環境環境と対応する値がこれらはコマンドラインで設定する場合と同じ書式で定義されます。

同じ設定がが通常の環境ファイルと追加される環境ファイルに定義されている場合、Magic xpaは追加された.iniファイルの情報を使用します。実行中にMagic xpa Studioからこれらの環境を変更した場合、変更内容はMagic.iniファイル（追加ファイルではなく）に書き込まれます。

@filenameパラメータを使用して追加環境ファイルを定義します。構文は以下の通りです。

Magic xpa .exe @filename

Magic xpa .exe は、Magic xpa Studio の場合は、MgxpaStudio.exe、実行製品の場合は、MgxpaRuntime.exe になります。

filename は、使用したい追加環境ファイルの名前です。

例：

MgxpaRuntime.exe @c：\Magicxpa\FrenchMagic.ini

Magic xpaの実行エンジンは、通常のMagic.iniファイルを読み、次に、c:\Magicxpaフォルダ内のFrenchMagic.iniファイルを読み込みます。

ファイルの内容は、コマンドラインパラメータの上述のルールに従います。異なるオプションは、ファイル内の異なる行で定義する必要があります。

パス値の先頭ににアスタリスク（*)を設定することでMagic xpaに行の最後まで全ての値をそのまま読み込むように指示することができます。これによって、バックスラッシュ（\)文字をエスケープ文字と解釈しなようにすること動作します。

以下は、ファイル内容の例です。

/[MAGIC_ENV]ColorDefinitionFile=usrclr2.eng

/[MAGIC_LOGICAL_NAMES]TEMP=*C: \temp\

Magic情報の出力

コマンドラインパラメータを指定して実行エンジン(MgxpaRuntime.exe)を実行することでMagic情報を出力することができます。

MgxpaRuntime.exe -VERSION

結果は、mgxpaver.txt ファイルでテキスト形式で出力されます。


データ項目

データ項目は、他のプログラミング言語のフィールドとして参照される場合もありますが、データビューの構成要素です。一般的に、それらはタスクによって必要な情報を保存します。

Magic xpaは、以下のような異なる項目タイプを使用しています。

  • カラム …… カラムは、データソースのカラムです。カラムは、メインソースまたは、リンクテーブルから選択されます。カラム特性を使用してカラムの表示と動作を定義することができます。

  • 変数項目 …… 変数項目は、タスクの実行中のみ保存される、一時的なデータ項目です。それらは、計算や一時的な保存のために使用されます。変数項目特性を使用することでデータ項目の表示と動作を定義することができます。

  • パラメータ …… パラメータ項目は、タスクまたはプログラムにデータを渡すために使用される変数項目です。変数項目特性を使用することで項目の表示と動作を定義することができます。パラメータは、データビューに表示されル順番に渡されます。Magic xpaは、パラメータがデータビューの何処に配置されるかを区別をしません。データビュー内でパラメータを分散させることができます。しかし、可読性と保守性を向上させるには、これらの項目を集めておく方が効果的です。パラメータは、通常データビューの先頭に定義されます。

カラムと変数項目そしてパラメータは、一緒にタスクの論理レコードを構成します。タスクの範囲ルールに従ってメインソースとリンクテーブルから選択される論理レコードのセットは、タスクのデータビューを構成します。

各項目には、シンボル名が割り当てられます。タスクで項目を参照したい場合は常に、このシンボル名を使用します。そして、これは以下のようなプログラム階層上の位置を表しています。

  • A …… 最初の選択された項目

  • B…… 2番目に選択された項目

  • BA…… 27番目に選択された項目

といった具合です。

式で項目が必要で、それを示す値でない場合、Magic xpaに項目IDとして正しく利用させるにはVARリテラルを使用しなければなりません。項目が再配置した場合、Magic xpaは変更されたシンボル名で項目を参照するように自動的に更新します。

［項目一覧］内の項目は、項目のタイプにもとづいて色分けされています。

関連トピック：

デフォルト値

開発/実行時の動作


選択一覧 項目一覧 デフォルト値

ホーム > リファレンスガイド > データ項目 > デフォルト値

デフォルト値

デフォルト値とは、プログラムに値が明示的に設定されない場合に割り当てられる値です。Magic xpaは、デフォルト値を定義することができます。

Magic xpaは、２種類のデフォルト値を区別して使用します。

  • 実行時に新しい項目がインスタンス化された場合（タスクが実行した場合） 、データ項目の［代入］特性が定義されていなければ、項目のデフォルト値が使用されます。

  • ［データ］リポジトリ上で、SQLデータベース使用してテーブルが定義された場合、デフォルト値はデータベースで定義されます。INSERTステートメントを使用し、カラムがステートメントの一部でない場合、デフォルト値がカラムに設定されます。

デフォルト値は、NULLか実際の値のどちらかとなります。

デフォルト値定義

デフォルト値は、以下のオブジェクトで定義することができます。

  • プロジェクトレベル …… MAGIC.INIファイルの［MAGIC_DEFAULTS］セクション

  • モデルレベル …… ［モデル特性］シート

  • カラムレベル …… ［カラム特性］シート

  • 変数項目レベル …… ［項目特性］シート

デフォルト値の初期値

デフォルト値の初期値は、データ型に依存します。

型 | 初期値
文字 | 空白
数値 | 0
日付 | 1901/1/1
時刻 | 00:00:00
BLOB | NULL
論理 | False

関連トピック：

開発／実行時の動作


選択一覧 項目一覧 開発/実行時の動作

ホーム > リファレンスガイド > データ項目 > 開発/実行時の動作

開発／実行時の動作

開発時の動作

各カラムには、２つのデフォルト定義があります。

  • 初期値

  • データベースデフォルト値

モデルが新しく作成されたり、モデルのデータ型が変更された場合、その型に対応したアプリケーションレベルのデフォルト値が、モデルのデフォルト値としてコピーされます。

カラムが作成されたり、カラムのデータ型やモデルが変更された場合、その型に対応したアプリケーションレベルのデフォルト値が、カラムのデフォルト値として設定されます。

［構文チェック］ユーティリティは、デフォルト値が有効であるかどうかを、カラムのデータ型に基づいてチェックします。

実行時の動作

タスクが実行され項目が初期設定された場合、全てのカラムは［項目特性］に従って、デフォルト値を設定します。


変数とカラムの特性

以下の特性は、変数やカラムやモデルの特性として表示されます。

モデル

詳細

汎用

スタイル

XSD

入力

OLE

表示

デフォルト/NULL

格納

.NET

SQL

関連トピック：

書式

型


データ項目 型

ホーム > リファレンスガイド > データ項目 > 変数とカラムの特性 > 型

型

データ項目の型は、［モデル］リポジトリまたは［カラム］テーブルのいずれかの［型］欄を使用して指定します。Magic xpaで使用できる型は以下の通りです。

型

内容

文字

文字型は、文字列を格納する場合に使用するデータ型です。文字型では、数値も文字列として格納されます。文字型がデフォルトのデータ型です。

変数項目の最大長は32Kですが、使用するデータベースにより制限を受けることもあります。例えば、Pervasive ゲートウェイを使用する時、DBMSパラメータで「/P:4096」と指定すると、Pervasiveデータベースの内部のページサイズが4096バイトとなりますが、この時には、最大レコード長も4096バイトとなるので、その中に定義されている文字型の最大長も4096バイトということになります。

Unicode

Magic xpaは、データの変換と転送用にUnicode標準を使用します。この機能は、Magic xpaのANSIとOEMサポートに追加されたものです。

以下のような場合にUnicodeを使用することができます。

  • データベース内のUnicodeのフィールドを読み書きする場合

  • フォームにUnicodeデータを入力したり、画面上にUnicodeデータを表示する場合

  • Unicodeデータ用のプログラムロジックを定義する場合

  • Unicode形式のテキストファイルを読み書きする場合

  • 外部のシステム間でUnicodeデータの送受信を行う場合

現在、Unicode型項目の修正に適用される全ての規則は、文字型項目のものと同じです。

数値

整数または小数。Magic xpaでは18桁までサポートされます。全体の桁数および小数部の桁数は、それぞれ最も近い偶数に切り上げられます。

モバイル仕様：

編集可能な数値型のコントロール上でパークすると、数値キーボードが開きます。

論理

0または1の値を持ち、通常、内部的に1バイトとして格納されます。「True/False」、「黒/白」、「はい/いいえ」などの値の組み合わせを格納する場合、論理型を使用します。

論理型は通常、同等の数値型よりもアクセスが速くなります。0は「False」を、1は「True」を表します。

日付

日付を表すデータで、年、月、日からなります。内部的には数値型として格納されていて、西暦1年1月1日を基点(1)として数えた日数が格納されています。日付型データは、画面に表示される場合のみ日付の形式に変換され、Magic xpa内部での計算は、全て数字データとして行われます。

モバイル仕様：

編集可能な日付型のコントロールをタップすると、日付ピッカーが開きます。

時刻

内部的に秒数のカウンタとして格納されます。時刻型を使用して、時間の長さ、または任意の時刻を表します。日付型と同様、時刻型は数値であるため、加減算できます。時刻型は、画面に表示される時に時刻型式に変換されます。

モバイル仕様：

編集可能な時刻型のコントロールをタップすると、時刻ピッカーが開きます。

BLOB

Binary Large Objectの略です。

Magic xpaで作成されていないバイナリ情報を含み、サイズも不明です。この情報は、内容が解読されずにそのまま格納されます。BLOBは一般に、OLEオブジェクトまたはイメージビットマップを格納するために使用されます。BLOBが空の場合、NULLとして扱われます。
構造体を扱うことが可能な「バッファ」として利用することもできます。バッファ関数を使用することによって「バッファ」を参照したり修正することができます。

リッチクライアントプログラムでは、データビューとして沢山のコンテンツを含んだBLOB項目が含まれている場合、各BLOB項目は、サーバとクライアント間で受け渡しを行うため、プログラムのパフォーマンスを低下させます。

OLE

Magic xpaのフォーム外で実行されるOLE COM オブジェクトのインスタンスを作成するために使用されるBLOB項目です。

ActiveX

Magic xpaのフォームに配置可能なActiveX COM オブジェクトのインスタンスを作成するために使用されるBLOB項目です。

ActiveXオブジェクトの実行時の操作は、GUI表示やOLEオートメーションコマンドを通して行われます。

注意：

Ver2.xではサポートされません。

ベクトル

Magic xpaの ベクトルデータ は、基本的に指定されたセルインデックスを使用してデータを格納したり、検索することのできる配列です。ベクトル型は、追加のセルモデル特性を持つBLOB型に基づいています。
ベクトルのセルには、［モデル］リポジトリで定義されているMagic xpaの項目モデルを指定します。モデルとしてあらゆる型（文字、Unicode、数値、論理、日付、時刻、BLOB、OLE、ActiveX）を指定することができます。
ベクトルデータのインデックスは、1から始まります。ベクトル型は、変数項目やパラメータ項目からのみ選択できます。テーブルのカラムのとして定義することはできません。
再帰的なベクトル定義は、サポートされていません。GUI フォームやブラウザフォームに、ベクトル項目を配置することはできません。また、配列はメモリ上に格納されるため多量のデータをベクトルに格納することはお勧めできません。
ベクトル関数を使用することによってベクトルセルを参照したり修正することができます。

.NET

.NETアセンブリは、Microsoft .NETによって開発されたコンポーネントの用の標準オブジェクトで、最新のWindowsアーキテクチャに基づいたCOMコンポーネントに相当するものです。


データソース テーブルソース カラム 特性 モデル

ホーム > リファレンスガイド > データ項目 > 変数とカラムの特性 > モデル

モデル

モデルの継承を設定または解除します。

詳細は、「モデル」を参照してください。


データソース テーブルソース カラム 特性 詳細

ホーム > リファレンスガイド > データ項目 > 変数とカラムの特性 > 詳細

詳細

［詳細］セクションには、以下のカラム特性があります。

特性

内容

書式

データ項目の表示方法を指定します。

［型］ボタンをクリックすると［書式］ダイアログを開くことができます。デフォルト値は、0です。

  • 文字型の場合 …… 必要最低限の書式はデータ長です。必要に応じて、その他の書式を指定することができます。

  • 数値型の場合 …… 必要最低限の書式は、数値の整数部の桁数と、小数以下の桁数です。必要に応じて、その他の書式を指定することができます。

  • 論理型、時刻型、日付型の場合 …… 推奨する書式を指定するか、必要に応じて他の書式を追加することができます。

  • BLOB項目の場合 …… データの内容にかかわらず格納することができるため書式を指定する必要がありません。

型

カラムのデータ型を指定します。コンボボックスから選択するか、型を表すアクセラレタキーを入力することで指定できます。

範囲

カンマで区切り、カラムに有効な値を入力します。有効な値の連続する範囲を指定するには、最小値と最大値をハイフンでつなげます。Unicodeで指定することができます。

デフォルト値は、0です。

内容

［エディット］コントロール経由で処理される時、または式（BLOB文字列がANSかUnicodeかを知る必要がある）によって処理される時のBLOB型モデルを指定します。［内容］特性は、BLOB項目モデルの期待値が提供されます。

有効なオプションは、以下の通りです。

  • A=ANSI …… BLOBデータがANSIとして扱われます。これは、必要であればデータがUnicodeに変換される（そして、ANSIに戻すことも)ことを意味します。UnicodeデータでBLOBを更新すると、自動変換が実行されます。

  • U=Unicode …… BLOBがUnicodeデータとして扱われます。ANSIデータでBLOBを更新すると、自動変換が実行されます。

  • B=バイナリ(デフォルト) …… BLOBデータをそのままの内容で扱います。これは、バイナリデータを変換処理を行わないことを意味します。したがって、ANSIデータでバイナリのBLOB項目を更新すると、ANSIデータを保存され、Unicodeデータで更新すると、Unicodeデータのままで保存されます。

［内容］特性を修正すると、［記憶形式］特性が自動的に修正されます。

BLOB項目がバイナリデータとして設定され、文字列として処理されると、そのまま文字列と見なされます（バイナリとして変換されません）。

セルモデル

ベクトル型の項目を定義する場合、ベクトル内にどのようなタイプのセルにするかを指定する必要があります。これは、ベクトルのセルモデルに別のモデルを選択することで実現できます。

ここからズームして項目モデルを選択してください。この特性はベクトル型項目のみ利用可能です。

ベクトル型のセルモデルを定義することで、ベクトルのベクトルを定義することもできます。［モデル］リポジトリで定義した場合と同じように、Magic xpaの項目モデルから指定してください。

データビューの一部

変数項目やパラメータ項目をタスクのデータビューの一部とするかどうかを指定します。タスクのデータビューとして指定された場合、項目を更新すると、現在の論理レコードが変更され、以下の動作が実行されます。

  • ViewMod関数は、Trueを返します。

  • ［ロック方式］特性が「O=入力時」に設定されている場合、タスクはレコードをロックします。

  • （レコードを抜けた時点で）［レコード後］が実行されます。

この特性を「Yes」に設定した場合、項目はデータビューの一部となり上記の動作を維持するようにします。

この特性を「No」に設定した場合、変数項目やパラメータ項目は、データビューの一部にはなりません。このため、この設定によって論理レコードは変更されず、上記の動作を実行しません。

注意：

  • タスク上でロールバックを実行した場合も、この特性値の内容にかかわらず項目の値がロールバックされます。

  • この特性はパラメータ項目と変数項目でのみ有効です。ブラウザタスクでは、この特性は表示されません。

関連トピック：

空のデータビュー許可

変数を更新した後にレコード後が実行されることを防止するには


変数項目特性 汎用

ホーム > リファレンスガイド > データ項目 > 変数とカラムの特性 > 汎用

汎用

［汎用］セクションには、以下の特性があります。

特性

内容

項目番号

［項目番号］カラムをダブルクリックすると［カラム選択］テーブルが表示されます。ここからメインソースやリンクテーブルのカラム項目を選択することができます。変数項目の場合は、表示のみで入力できません。

カラムを追加する場合のみ、［カラム選択］テーブルでマルチマーキングすることで複数のカラムを一度に選択することができます。一度設定したカラムを変更する場合は、マルチマーキングできません。

項目名

ここには、カラムまたは項目名が表示されます。タスク階層内に同じカラムが複数定義されている場合、項目名を変更することで区別しやすくなります。

変数またはパラメータ項目の場合、デフォルト値は空白です。

位置付

［位置付：最小］特性には最小値、［位置付：最大］特性には最大値が返る式を指定します。位置付 最大/最小を参照してください。

範囲

ここには範囲式を指定できます。この範囲式を使用して、タスクのデータビューに表示するレコードを絞り込むことができます。範囲 最大/最小を参照してください。

更新形式 （プログラムの項目定義でのみ有効）

［更新形式］特性は、［プログラム］リポジトリの［カラム特性］に表示されます。この特性には、以下の値が設定できます。

  • A=値更新 …… Ver8以前のMagicで有効な固定値による更新(FLD1=X)

  • D=差分更新 …… 差分による更新を行います。(FLD1=FLD1+X)

  • T=テーブルに依存 …… ［データ］リポジトリの［カラム特性］の［更新形式］特性に依存します。

この特性は、通常の記憶形式を持っていて、SQLテーブルと関連している数値型の項目でのみ有効です。この特性は、タスクのトランザクションモードが「遅延」や「ネスト遅延」に設定されていたり、実行時に「遅延」と評価される「親と同じ」に設定される場合に有効です。ISAMテーブルではサポートされません。

例：FLD1 という項目をX という値に更新する場合、（FLD1=X）の形式でコマンドを発行します。

代入

ここには、式を示す番号を指定します。実行時には、ここで指定した番号の式が評価され、その結果の値が、この項目の初期値として格納されます。この特性の値を「0」にしておくと、式は使用されません。

設定された値が他の項目値に依存する場合、これらの値が変更されると再計算が実行されます。

［代入］特性は、表計算ソフトのセルに式を割り当てるように、式によって計算された値をMagic xpaのデータ項目に割り当てるものです。

［代入］特性に定義する式には、「=」は必要ありません。指定された値は自動的に項目に代入されます。

例えば、項目「注文合計」の初期値として「価格*量」を設定する必要がある場合、単に［代入］特性に「価格*量」で定義された式を割り当てるだけで済みます。

関連トピック：

代入特性の動作

非手続き型方式での代入特性値による自動再計算


項目特性 位置付

ホーム > リファレンスガイド > データ項目 > 変数とカラムの特性 > 汎用 > 位置付

位置付：最小/最大

［位置付］特性は、指定された式にもとづく値で位置付けることができます。

［位置付］特性には､2つの式を指定することができます。［位置付：最小］特性には最小値、［位置付：最大］特性には最大値が返る式を指定します。実行時には、この最小値と最大値の間にあるレコードが検索され、最初に見つかったレコードがデータビューで位置付されます。位置付式から返る値のデータ型は、項目のデータ型と同じでなければなりません。

論理条件を使用して最初のレコードの位置付を行いたい時には、［範囲／位置付］ウィンドウの［位置付式］特性で指定できます。

位置付式は、データビュー自身に影響しません。

オンラインタスクでの位置付の後、レコードがどのように表示されるかは、［動作環境］ダイアログの［カーソルの画面中央位置付］欄の設定によります。このパラメータの値が「Yes」の場合、位置付されたレコードは画面の中央に表示されます。また、カーソルは、そのレコードの最初のパーク可能項目に置かれます。［カーソルの画面中央位置付］パラメータの値が「No」の時には、位置付されたレコードは画面の一番上に表示されます。

範囲指定と異なり、位置付の場合、エンドユーザは実行時、位置付式（最小／最大）で指定された範囲以外のレコードを表示することができます。また、範囲外のレコードにカーソルを置くこともできます。

位置付式（最小／最大）を指定し、その項目がタスクのインデックス項目、またはインデックスセグメントで、位置付の実行時に条件を満たすレコードが見つからなかった時には、位置付式の最大より上位のインデックスを持つレコードのうち、最初のレコードにカーソルが位置付けられます。また、「レコードが見つかりません-次のレコードに位置付を行います.」というメッセージが表示されます。位置付式の最大より大きいインデックスを持つレコードが見つからなかった時には、カーソルはデータビューの最初のレコードに移動するとともに、「レコードが見つかりません-最初のレコードに位置付を行います.」というメッセージが表示されます。

また、位置付式として最小の位置付式だけを指定し、実行時に条件に該当するレコードが見つからなかった場合、カーソルは上位のインデックスで最初のレコードに位置付けられます。この場合、メッセージは表示されません。一方、位置付式として最大の位置付式だけを指定し、実行時に条件に該当するレコードが見つからなかった場合、カーソルはデータビューの最初のレコードに位置付けられます。

位置付式を指定した項目がインデックス項目ではなく、実行時、条件に該当するレコードが見つからなかった場合、カーソルはデータビューの最初のレコードに位置付けられます。

注意：

  • アスタリスク（*）は、範囲や位置付でワイルドカードとして使用することができます。アスタリスクは、文字列の最後の文字としてのみ使用できます。

  • 範囲や位置付でアスタリスクを文字として使用する場合は、前にバックスラッシュ（\)を付加してください。

設定例：

  • a*：a*で範囲指定をします（*は、ワイルドカードになります)

  • a\*：a*で範囲指定をします（*は、文字として処理されます)

  • a\\：a\ で範囲指定をします。

  • a\\*：a\* で範囲指定をします（*は、ワイルドカードになります)

  • a\b：a\b として動作します。


項目特性 範囲

ホーム > リファレンスガイド > データ項目 > 変数とカラムの特性 > 汎用 > 範囲

範囲：最小/最大

ここには範囲式を指定できます。

この範囲式を使用して、タスクのデータビューに表示するレコードを絞り込むことができます。これによって、データビューのために選択された物理ファイルから、レコードのサブセットを定義することができます。

［範囲］特性には､2つの式を指定することができます。

［範囲：最小］特性には、最小値が返る式の番号を指定します。［範囲：最大］特性には、最大値が返る式の番号を指定します。この2つの式で指定された範囲のレコードがタスクのデータビューに表示されることになります。

範囲式は、メインソースやリンクテーブルの項目（実データ項目）でも、変数項目でも有効です。

範囲式から返る値のデータ型は、項目のデータ型と同じでなければなりません。また、論理条件を使用して範囲を限定することもできます。その場合、条件は、［範囲／位置付］ウィンドウの［範囲式］特性で指定できます。また、SQLの場合はDB SQL Where句で条件を指定することもできます。

［範囲］特性に定義した範囲式は、タスクの実行開始の際に評価されます。このため、タスクが開始された時、範囲式に定義された項目にはすでに値が入っていることが必要になります。範囲式の項目としては、親タスクの項目が使用できます。また、タスクに渡されるパラメータも使用できますし、定数を指定することもできます。

オンラインタスクの場合、指定した範囲以外のレコードは、エンドユーザには表示されません。そのほか、エンドユーザが［オプション］メニューの［範囲］（Ctrl+R）を選択して、さらにレコードを限定することもできます。

注意：

  • 範囲にスペースを含めることはできません。たとえば、"1 - 10"は指定できません。"1-10"にする必要があります。

  • 範囲値に負数を使用したい場合は、数値の前にバックスラッシュ（\)を指定してください。例：\-7-\2は、-7～-2の範囲になります。

  • アスタリスク（*）は、範囲や位置付でワイルドカードとして使用することができます。アスタリスクは、文字列の最後の文字としてのみ使用できます。

  • 範囲や位置付でアスタリスクを文字として使用する場合は、前にバックスラッシュ（\)を付加してください。

設定例：

  • a*：a*で範囲指定をします（*は、ワイルドカードになります)

  • a\*：a*で範囲指定をします（*は、文字として処理されます)

  • a\\：a\ で範囲指定をします。

  • a\\*：a\* で範囲指定をします（*は、ワイルドカードになります)

  • a\b：a\b として動作します。


項目特性 代入

ホーム > リファレンスガイド > データ項目 > 変数とカラムの特性 > 汎用 > 代入

代入

ここには、式を示す番号を指定します。実行時には、ここで指定した番号の式が評価され、その結果の値が、この項目の初期値として格納されます。この特性の値を「0」にしておくと、式は使用されません。

設定された値が他の項目値に依存する場合、これらの値が変更されると再計算が実行されます。

［代入］特性は、表計算ソフトのセルに式を割り当てるように、式によって計算された値をMagic xpaのデータ項目に割り当てるものです。

［代入］特性に定義する式には、「=」は必要ありません。指定された値は自動的に項目に代入されます。

例えば、項目「注文合計」の初期値として「価格*量」を設定する必要がある場合、単に［代入］特性に「価格*量」で定義された式を割り当てるだけで済みます。

注意：

リッチクライアントタスクの場合、代入式にクライアント側で評価される式を指定できません。

関連トピック：

代入特性の動作

非手続き型方式での代入特性値による自動再計算

［代入］特性


項目特性 代入 動作

ホーム > リファレンスガイド > データ項目 > 変数とカラムの特性 > 汎用 > 代入特性の動作

代入特性の動作

［代入］特性の実行方式には、手続き型と非手続き型の２種類があります。また、手続き型方式の場合、変数項目とパラメータ項目には同じルールが適用されますが、カラム項目と変数/パラメータ項目とで計算の方法が異なります。

  • メインソースのカラム項目 …… オンラインタスクが登録モードで実行される時にだけ初期化が実行されます。この場合、代入式は、レコードが画面に表示される前に代入式が評価され、値が設定されます。バッチタスクの場合は、初期化は実行されません。また、登録リンクのカラムは、そのリンク処理が失敗した時に初期化処理が実行されます。この動作は、バッチでもオンラインでも実行されます。

  • 変数項目 …… 必要に応じて作成されます。このため、レコードが画面に表示される前に代入式が評価され、値が設定されます。

  • パラメータ項目 …… 変数項目と同じように動作します。［代入］特性が定義されない変数項目は、［項目更新］処理コマンドによって値が設定されます。こういった項目は、レコード処理の開始時に値が「0」になることはなく、それまでの値がそのまま格納されています。したがって、［代入］特性を定義しない変数/パラメータ項目は、累計用の項目として使用できます。

関連トピック：

非手続き型方式での代入式の自動再計算


項目特性 代入 自動再計算

ホーム > リファレンスガイド > データ項目 > 変数とカラムの特性 > 汎用 > 非手続き型方式での代入式の自動再計算

非手続き型方式での代入式の自動再計算

レコードレベルの実行時には、項目（実データ項目または変数項目）の値が変更された場合、その項目に定義されている［代入］特性が自動的に実行（再計算）されます。この再計算は、タスクのモードとは関係なく実行され、ちょうどスプレッドシートのセルの再計算と同じと考えることができます。再計算処理は、以下のルールで実行されます。

  • ［代入］特性の式に使用されている項目のどれかを修正した場合

  • ［代入］特性が設定されている項目より前に、修正項目が定義されている場合

この２つの条件が満たされた時、［代入］特性が再計算されます。［データビュー］エディタでの再計算は、順方向（処理テーブルの上から下へ向かって）にだけ処理されます。

［レコード後］では、項目のいずれかが変更されると、項目に定義されている［代入］特性に対して再計算が実行されます。再計算は、まず、データビューエディタ内の変更された項目が定義されている行から始まり、テーブルの最後の行に向かって実行されます。

［代入］特性の再計算は、Magicエンジンの非手続的処理の1つです。

なお、これ以降の説明では、項目のうち、［代入］特性が「0」以外の項目（［代入］特性が定義されている項目）を「代入項目」と呼びます。また、［代入］特性で使用されている項目のうち、項目が変更されたことにより、［代入］特性の再計算で使用される項目を「修正項目」と呼びます。

例えば、実データ項目Aに「5」が、実データ項目Bに「6」が入っていたとします。また、実データ項目Cに「A*B」という［代入］特性が定義されていたとします。この場合、エンドユーザがタスクを登録モードで実行すると、実データ項目Cには「30」という値が初期値として代入されます。その後、エンドユーザが実データ項目Aの値を「7」に変更すると、実データ項目Cの［代入］特性が自動的に再計算され、実データ項目Cの値は「42」になります（非手続き型処理）。したがって、エンドユーザは項目Cにカーソルを移動し、「42」という値を入力する手間が省けます。上記では、実データ項目Aが修正項目ということになります。

修正項目の値は、次のような時に変更されます。

  • エンドユーザが手動で値を変更した時

  • ［項目更新］処理コマンドの実行時

  • 修正項目がタスクまたはプログラムでパラメータとして使用された時

  • ［データ入力］処理コマンドでデータが入力された時

  • 修正項目が［戻り値］として使用された時

修正モードに対する変更は、データビュー（エンドユーザによる対話型操作）のほか、そのレコードレベルから呼び出される子タスクがあれば、その子タスクでも発生します。また、［レコード後］レベル（非対話型操作）でも発生します。

項目を含んだ代入式を持つ項目に対して、再計算は以下のモードで実行されます。

  • モードが、登録モードまたは修正モードの場合

  • タスクが、オンラインタスクまたはバッチタスクの場合

  • 高速モードまたは通常モードの場合

再計算は、再計算される全ての代入項目に対して継続して実行されます。再計算が続くのは、再計算される項目自体が他の項目の［代入］特性で使用されていることがあるためです。１サイクルの再計算が終わると別のサイクルが開始され、関連する代入式が全て実行されるまで続きます。

再計算されるためには、代入項目は以下の２つの条件が両方とも満たされる必要があります。

  • 代入項目が、［データビュー］エディタ上で修正項目の後に定義されていること

  • 代入定項目の代入式に修正項目が使用されていること

［項目変更］ロジックユニット

データ項目が更新されると、［項目変更］ロジックユニットが常に実行されます。

データ項目が更新された場合、この更新処理によって他のデータ項目が再計算されることがあります（例えば、データ項目が別のデータ項目の代入式で使用されている場合)。

データ項目の値が一旦変更されると、以下の順番に実行されます。

  1. ［項目変更］ロジックユニットが実行されます。

  2. この変更が他のデータ項目（例えば、代入式)に影響する場合、この変更によって影響を受けるすべてのデータ項目がキューに追加されます。

データビューに定義された最後のデータ項目は、キューやその他に追加された最初のデータ項目になります。エンジンがこの処理を終了すると、エンジンはキューでデータ項目を処理する準備ができています。エンジンはキューからデータ項目を取得し、この処理を実行します。

データ項目の取得は、追加された順番の逆に行われます。言い換えると、最後に追加されたものが最初に取得されます。これは、LIFO（後入れ先出し)として知られています。


データソース テーブルソース カラム 特性 詳細 スタイル

ホーム > リファレンスガイド > データ項目 > 変数とカラムの特性 > スタイル

スタイル

次示す各フォームスタイルをクリックし、コントロールの一覧より選択することでコントロールの特性を設定することができます。次のフォームモデルのいずれかに割当てるコントロールが選択できます。

特性 | 内容
ブラウザ形式 | ［ブラウザ形式］フォームで表示できるコントロ－ル
ブラウザ形式テーブル | ［ブラウザ形式］フォーム上のテーブルで表示できるコントロ－ル
GUI表示形式 | ［GUI表示形式］フォームで表示できるコントロ－ル
GUI表示形式テーブル | ［GUI表示形式］フォーム上のテーブルで表示できるコントロ－ル
リッチクライアント形式 | ［リッチクライアント形式］フォームで表示できるコントロ－ル
リッチクライアント形式テーブル | ［リッチクライアント形式］フォーム上のテーブルで表示できるコントロ－ル
GUI出力形式 | ［GUI出力形式］フォームで表示できるコントロ－ル
GUI出力形式テーブル | ［GUI出力形式］フォーム上のテーブルで表示できるコントロ－ル
テキスト形式 | ［テキスト形式］フォームで表示できるコントロ－ル

関連トピック：

プロジェクトのデータ項目とコントロールを標準化するには


データソース テーブルソース カラム 特性 XSD

ホーム > リファレンスガイド > データ項目 > 変数とカラムの特性 > XSD

XSD

［XSD］セクションは、XMLデータソースの場合のみ表示されます。

複合要素にパークした場合、［特性シート］は空白が表示されます。

このセクション内の特性は、スキーマから取得された情報によるもので表示のみです。以下の特性があります。

特性

内容

タイプ

タイプ変換と構文チェック用に使用される、オリジナルなXSDタイプが表示されます。最高260文字まで格納できます。

属性

項目が属性か要素かを表示します。この特性は、出力XMLを構築する際に必要です。

  • Yes …… 項目は属性を表しています。

  • No …… 項目は要素を表しています。

名前

スキーマ内の要素名が表示されます。名前は最高260文字まで含めることができます。

パス

XMLスキーマツリー内のフィールドの構成を表します。


データソース テーブルソース カラム 特性 入力

ホーム > リファレンスガイド > データ項目 > 変数とカラムの特性 > 入力

入力

［入力］セクションには、以下のカラム特性があります。

特性

内容

選択プログラム

実行時にエンドユーザが［編集/ズーム］を使用してデータ選択用プログラムを起動することができるかどうかを指定します。プログラム番号を直接入力するか、［プログラム一覧］にズームしてプログラムを選択します。

メインプログラムを設定することはできません。

注意：

［選択プログラム］特性を設定した場合、［オプション］メニューの［オブジェクトに移動］を選択することで簡単に指定したプログラムに移動することができます。また、［オプション］メニューの［オブジェクトから戻る］を選択することで、［選択プログラム］特性に戻ることもできます。

起動モード

［選択プログラム］特性が指定された場合に有効になります。

［選択プログラム］特性で定義されたプログラムを呼び出す時期を指定します。有効な値は以下の通りです。

  • B=前置 …… 呼び出した選択プログラムが終了した時に、カーソルが呼び出した項目に戻るように指定します。

  • A=後置 …… 呼び出した選択プログラムが終了した時に、カーソルが次の項目に移動するように指定します。

  • P=自動 …… 項目にカーソルが移動すると同時にプログラムが自動的に実行されるように指定します。これにより、ユーザは即座に値を選択できます。この場合は、選択プログラムが終了した後、前置モードの場合と同様にカーソルは呼び出した項目に戻ります。


ActiveX - Model Field Class Properties

ホーム > リファレンスガイド > データ項目 > 変数とカラムの特性 > ActiveX

ActiveX

注意：

［ActiveX］コントロールは、Ver2.xでサポートされなくなりました。


OLE - Model Field Class Properties

ホーム > リファレンスガイド > データ項目 > 変数とカラムの特性 > OLE

OLE

タイプライブラリ

使用されるオブジェクトのタイプを定義します。

最初に設定する必要があります。ここからズームするとPCに登録されているオブジェクトが一覧表示され、ここから選択できます。

この特性と［オブジェクト名］特性が設定され、定義内容が確定すると、オブジェクト名は修正できなくなります。タイプライブラリは、選択済みのタイプライブラリの異なるバージョンに対してのみ修正することができます。

関連トピック： COMオブジェクトの参照先を変更するには

オブジェクト名

タイプライブラリ内の実際のオブジェクトを指定します。タイプライブラリは、複数のオブジェクトタイプをサポートしています。

タイプライブラリを選択した後でここでズームします。オブジェクトの一覧が表示され、選択したタイプライブラリによってサポートされているオブジェクト名を選択します。

この特性と［タイプライブラリ］特性が設定され、定義内容が確定すると、オブジェクト名は修正できなくなります。タイプライブラリは、選択済みのタイプライブラリの異なるバージョンに対してのみ修正することができます。

サブオブジェクト名

オブジェクトはサブオブジェクトの階層で構成されていることがあります。選択したオブジェクトがサブオブジェクトを持っている場合、ここでズームすることでサブオブジェクトを選択できます。

サブオブジェクトを指定することで、実行時に取得されるサブオブジェクトの参照を保存できます。

COMオブジェクトの中には、コレクションタイプのサブオブジェクトを含むものがあります。コレクション項目は、通常IDフィールドから取り出すことができます。MGItemSequentialという内部メソッドを使用して連続したインデックスを指定することによって、コレクションから項目を取り出すことができます。

保存データ

データの保存方法を指定します。オプションは以下の通りです。

  • オブジェクト …… フィールドは、オブジェクトのハンドルをオブジェクトの永続的なデータを保存します。

  • 参照 …… フィールドは、オブジェクトのハンドルを保存するだけです。

インスタンス化

オブジェクトのインスタンス化する方法を指定します。

  • A=自動 …… Magic xpaは、タスクのオープン時に自動的にオブジェクトをインスタンス化し、タスク終了時に解放します。

  • N=なし …… COMObjCreateやCOMObjRelease関数を使用して手動でオブジェクトのインスタンスを作成したり解放したりします。

この特性が無効の場合、オブジェクトは手動で作成できません。

リモートホスト

ホストのIPアドレス（またはホスト名）を指定することで、指定されたリモートPC上でインスタンス化されたDCOMオブジェクトを定義することができます。リモートPCの定義には、「%DCOM_Host%」というように「%」文字を使用することでシークレット名や論理名を使用することができます。デフォルト値は、空白です。リモートPCが指定されない場合、オブジェクトはローカルPC上でインスタンス化されます。


データソース テーブルソース カラム 特性 表示

ホーム > リファレンスガイド > データ項目 > 変数とカラムの特性 > 表示

表示

[表示]セクションには、以下のカラム特性があります。

特性 | 内容
ヘルプ画面 | ヘルプ画面とカラム/変数を関連付けます。ヘルプ画面は、ユーザが実行時にヘルプを要求した場合に表示されます。内部ヘルプを参照してください。
ツールチップ | ツールチップヘルプとカラム/変数を関連付けます。ツールチップを参照してください。
自動ヘルプ | この特性を使用し、自動ヘルプとカラム／変数を関連付けます。自動ヘルプを参照してください。


データソース テーブルソース カラム 特性 デフォルト

ホーム > リファレンスガイド > データ項目 > 変数とカラムの特性 > デフォルト/NULL

デフォルト/NULL

［デフォルト/NULL］セクションには、以下のカラム特性があります。

特性

内容

NULL値可

エンドユーザがNULL値をテーブルカラムに入力できるかどうかを指定します。新規テーブルを作成する場合、この特性によってNULL 制約が生じます。デフォルト値は、MAGIC.INI ファイルの［DBMS］セクションの「NULL」の値が使用されます。

  • Yes …… 実行時には、エンドユーザはデータベースにNULL値を渡すことができます。

  • No …… Magic xpaではNULL値が許可されません。

NULL計算値

［NULL計算値］特性の入力は、［NULL値可］特性が「Yes」に設定されている場合に限られます。

NULL計算値は、このカラムにNULL値が含まれ、その値が計算で使用される場合に値を指定します。

［アプリケーション特性］の［NULL計算］特性が「D=デフォルト」の場合のみ、実行時に有効になります。Unicodeを入力することができます。

NULL表示文字列

この特性は、［NULL値可］特性が「Yes」に設定されている場合に限られます。ここには、NULL値の表示に使用する文字列が指定できます。

Unicodeを入力することができます。

NULLデフォルト

NULL値またはデフォルト値のどちらをカラムに割当てるかを指定します。有効な値は以下の通りです。

  • Yes …… NULLがデフォルト値となります。

  • No …… デフォルト値の特性が使用されます。

デフォルト値

NULLカラムに割り当てられたデフォルト値です。Unicode文字を入力することができます。

注意：

XMLデータソースの場合は、継承されなかったデフォルト値だけがXMLに要素を記述する時に考慮されます。従って、デフォルト値として0を渡す場合は、この特性の継承を解除する必要があります。

データベースデフォルト値

これはデータベースのデータベースデフォルト値です。プログラムでレコードを作成する際、ビュー項目としてカラムが定義されていない場合、RDBMSがデフォルト値を割当てます。

新たにテーブルを作成する場合は、そのカラムのデフォルト値として、CREATETABLE 文にこの文字列が追加されます。

例えば、データベースデフォルト「defvalue」をMS-SQL Server テーブルに作成する場合、Magic xpaでは以下のSQL文が生成されます。

CREATE TABLE owner1.table1 （Col1 CHAR（10） NOT NULL DEFAULT 'defvalue'）

Magic xpaでは、CREATE TABLE 文にフォーマットを行わず、この文字列がそのまま追加されます。


データソース テーブルソース カラム 特性 格納形式

ホーム > リファレンスガイド > データ項目 > 変数とカラムの特性 > 格納

格納

［格納］セクションには、以下のカラム特性があります。

特性

内容

文字セット

以下から指定ができます。

  • A=ANSI

  • O=OEM

SQLデータベースの文字型フィールドを使用している場合、ANSIまたはOEMから文字セットを選ぶことができます。

注意：

XMLデータソースの場合のデフォルトの文字セットは、データソースに依存します。

デフォルト記憶形式

Magic xpaは、カラムの書式や使用しているDBMSゲートウェイに従って、最適な記憶形式を自動的に割り当てます。

この機能によって、使用するDBMSを変更することが容易になります。

  • Yes …… カラムの記憶形式は、DBMS ゲートウェイによって定義されたデフォルト指定に割り当てられます。

  • No …… カラムの［記憶形式］特性の指定に依存します。

この特性は、また、SQLコマンドタスクで使用される変数項目に対しても有効です。

カラム作成時のデフォルト値は、以下の通りです。

  • Yes …… SQLiteデータ・ソース

  • No …… 他の全てのデータ・ソース

SQL コマンドタスクの変数項目の場合は、デフォルトが「Yes」になります。

関連トピック： 複数のDBMSで動作するように設定するには

記憶型式

データをStringやLString、またはZStringやString Memoとして保存できます。

Magic xpa内の全ての属性には、いくつかの保存タイプがあります。指定されていない場合は、SQLゲートウェイで関連するRDBMSデータタイプに最適なデフォルトマッピングが使用されます。

例えば、文字型の場合はZstringとして保存されます。この保存はMagic xpa内部のみ行われます。RDBMSから別のものに切り替えた場合、Magic xpaは同じ記憶形式で保存するように試みます。ただし、整合性の理由から、記憶形式が異なる場合があります。Magic xpaのデフォルトの記憶形式は変更しないでください。

Magic xpaのUnicodeサポートによって、UnicodeやZUnicodeでデータを格納することができます。ZUnicodeは、NULLで終了するUnicode文字列です。

BLOBカラムの場合、［記憶形式］特性に以下のオプションがあります。

  • Binary Large Object

  • Ansi BLOB

  • Unicode BLOB

［内容］特性を修正すると、［記憶形式］特性が自動的に修正されます。

修正許可

カラムの作成後に修正することができるかどうかを指定します。

オンラインタスクの場合、カーソルを［修正許可］特性が「No」と指定されたカラムに移動し、データを入力しようとしても、新規入力は拒否されます。

サイズ

データベースのパラメータサイズを指定します。

カラムサイズは、データベースによって制限があります。

例：

  • MS-SQL、ODBCとメモリー：32767、

  • Pervasive：8000

  • Oracle：32511

データベース定義

［データベース定義］ボックスから「N=標準」または「S=文字列」を選択し、データベース特性を定義できます。

注意：

［記憶型式］、［サイズ］、［データベース定義］特性により、カラムに格納するデータ形式を指定します。Magic xpaでは、型、書式、使用するデータベースによって、デフォルトの保存タイプとサイズを割り当てます。

通常はMagic xpaからこれらの特性に割り当てられたデフォルト値を使用します。Magic xpa以外のアプリケーションで作成したDBテーブルを使用する場合、それらのパラメータを調整する必要がある場合があります。

更新形式

数値型で通常の記憶形式、またSQLテーブルのカラムが定義されたタスクでは、差分更新を行うことができます。差分更新は、トランザクションのモードが遅延やネスト遅延または、現在の遅延トランザクション内で実行するタスクで処理されます。この設定は、ISAMファイルには適用されません。

差分更新を指定することで、値FLD1+Xを使用してFLD1を更新することができます。（FLD1=FLD1+X）

この特性は、［データ］リポジトリの［カラム特性］に表示されています。

有効なオプションは以下の通りです。

  • A=値更新 …… 固定値による更新

  • D=差分更新 …… 差分による更新

同様な特性は、［データビュー］エディタの［項目特性］にも表示されます。この［更新形式］特性は［データ］リポジトリの特性の設定内容を上書きします。

関連トピック： 複数のユーザが同じレコードを修正した場合のMagic xpa の動作を決定するには


項目特性 .NET

ホーム > リファレンスガイド > データ項目 > 変数とカラムの特性 > .NET

.NET

[.NET］セクションには、以下のカラム特性があります。

特性

内容

オブジェクトタイプ

.NETオブジェクトを定義します。

Ctrl+Spaceを押下することでオートコンプリート機能を使用することができます。ドットを入力すると、有効なオプションを持つ選択リストが表示されます。

配列として定義する場合は、配列を意味するブラケットとランクを意味するカンマを追加することができます（例えばSystem.String[,][]）。

［.NET］コントロールのモデルで利用できるオブジェクトタイプは、以下の通りです：

  • エイリアス

  • ネームスペース

  • 汎用的でないクラス

関連トピック： .NETオブジェクトを定義するには


データソース テーブルソース カラム 特性 SQL

ホーム > リファレンスガイド > データ項目 > 変数とカラムの特性 > SQL

SQL

［SQL］セクションには、以下のカラム特性があります。

特性

内容

Datetimeの一部

この特性は、SQLデータベース内のDatetime型のフィールドが日付カラムと結合された同じデータベーステーブルの時刻カラムを参照するように指定します。

データベース情報

この特性を使用して、Magic xpaがRDBMSに渡すことのできるデータベース固有の情報を指定できます。このパラメータはオプションです。

DBカラム名

RDBMSに実際に定義されるカラムの名前を入力します。この名前は、使用できない予約語など、RDBMSによって制限される場合があります。

カラムを作成する場合、カラム名がDBカラム名にコピーされますが、その際空白はアンダーバに置き換えられます。DBカラム名は変更できますが、空白にはできません。また、接頭辞に論理名をカラム名に追加することで、カラムに対して使いやすい名前を付けることができます。

定義取得によってダブルクォーテーションのないDBカラム名が取得されます。カラム名にダブルクォーテーションがある場合、定義取得を実行後に、手動でダブルクォーテーションを追加する必要があります。

タイプ

RDBMSにおけるSQLデータ型です。定義取得を行うと、自動的に設定されます。テーブルを作成する場合、Magic xpaがデフォルトで割り当てるため、この設定は省略できます。Magic xpaが設定したデフォルトのデータ型以外にしたい場合は、この設定を変更します。

例えば、日付型のカラムはOracleでは「DATE」という型が設定されますが、この欄に「CHAR（8）」と指定することで、「CHAR」という型にマッピングされます。Magic xpaとRDBMSとの有効なデフォルトマッピングの一覧については「SQLに関する考慮事項」を参照してください。

関連トピック： 特定のSQL タイプにアクセスするには

ユーザタイプ

データベース内で定義されるユーザ定義データ型（UDT）です。ほとんどのRDBMSでは、ユーザ定義データ型を作成し、システムデータ型を再定義できます。

例えば、UDT「説明」は「VARCHAR（20）」に基づいているとします。UDTが作成されると、CREATE TABLE文とALTER TABLE文に使用され、デフォルトが適用され、それにルールが作成されます。

テーブル定義がロードされると、Magic xpaは各カラムのUDTとその基礎となるシステムデータ型をロードします。Magic xpaにテーブルを作成する場合は、SQLデータ型のみ使用します。UDTを含んだカラムは作成しません。

対応するゲートウェイ：MS-SQL


データソース テーブルソース カラム 特性 Datetimeの一部

ホーム > リファレンスガイド > データ項目 > 変数とカラムの特性 > SQL > Datetimeの一部

Datetimeの一部

現在のデータベースは、通常Datetimeフィールドをサポートしています。

この種類のフィールドには、日付と時間の組み合わせが含まれています。ここには、例えば、「May 3rd, 10:00 PM」という日付と時刻のデータがそのまま入っています。Magic xpaは、SQLデータベースのDatetimeフィールドを日付データと時間データの組み合わせることで対応しています。

［Datetimeの一部］特性は、日付型カラムと時刻型カラムに表示されます。SQLタスクでは、変数として表示されます。この特性は、日付型カラムでのみ有効で、時間型カラムでは表示だけになります。

日付カラムの［Datetimeの一部］特性は、同じデータベーステーブルの時刻カラムを参照しています。これによって、SQLデータベース内で指定された時刻カラムと結合されることを示しています。

注意：

［Datetimeの一部］特性は、ISAMでは無効です。

この特性からズームして結合する時刻カラムを選択することができます。

［Datetimeの一部］特性が定義された日付カラムか時刻カラムが削除された場合は、datetimeの値はキャンセルされ、通常の日付型または時刻型のカラムとして動作します。その際、他の特性値は全て有効で、カラムの値は［Datetimeの一部］特性が設定される前の値が返ります。

［Datetimeの一部］特性が設定された日付または時刻カラムのデータ型を変換すると、以下のような確認用のメッセージダイアログが表示されます。

型を変更するとDatetimeとの接続が無効になります.よろしいですか？

「はい」がクリックされるとdatetimeの値がキャンセルされます。

他の特性

［Datetimeの一部］特性が設定された場合、［カラム特性］の他の特性は、日付カラムのみ表示されます。時間カラムは、日付型カラムの以下の特性値が引き継がれるため表示されなくなります。

  • データベースデフォルト値

  • DBカラム名

  • タイプ

  • ユーザタイプ

  • データベース情報

日付カラムの特性値がモデルから引き継がれており、モデルの特性値が変更された場合、時刻カラムの特性値も変更されます。しかし、時間カラムの特性値がモデルから引き継がれている場合、時間カラムに［Datetimeの一部］特性が設定されている限り、時間モデルから特性が引き継がれません。

関連トピック：

Datetimeの実行時の動作

Datetimeフィールドの定義取得

AddDateTime

DifDateTime


データソース テーブルソース カラム 特性 Datetime 実行時の動作

ホーム > リファレンスガイド > データ項目 > 変数とカラムの特性 > SQL > Datetimeの実行時の動作

Datetimeの実行時の動作

SQLデータベースのDatetimeフィールドにアクセスする実行時の動作は以下の通りです。

NULL値

ユーザが、Datetimeに組み合わせたカラムのどちらかにNULL値を入力し、他方にNULL以外の値を入力した場合、レコード更新時に実行エラーが表示され、レコードはデータベースに書き込まれません。

Datetime項目の範囲／位置付け指定

範囲は、カラムとローカル変数の［範囲］特性、または日付部分や時間部分、または両方の部分に対して実行時のエンドユーザによる範囲指定で定義できます。エンドユーザが両方の部分を選択した場合、Magicエンジンは定義内容を統合して範囲制限を実行します。これによって、データベース上の実際のフィールドで範囲制限を行なう場合と同じ処理を実行します。

変数項目では、このような自然な形で範囲処理を行なうことはできません。これは、統合された範囲指定は、日付項目と時刻項目に分離された状態での範囲指定と異なることを意味します。

日付部分だけが選択された場合、Magic xpaは通常の範囲処理を実行します。この場合、時刻の範囲は、"00:00:00"から"23:59:99" として処理されます。

時刻部分だけが選択された場合、Magic xpaはレコードを絞る込むためにデータベース側の機能を使用します。

Datetimeフィールドの範囲／位置付けの一方の値がNULLで、他方がNULLでない場合、Where句は、NULL になります。

Magic SQL

MagicSQLによる範囲指定は、Datetimeカラムの日付部分や時刻部分を個別にアクセスします。MagicSQLでは、Datetimeカラムを1つのカラムとして扱うことができません。日付カラムや時間カラム（Datetimeの一部です。)を参照するように記述すると、Magic xpaは対応レコードの検索に、データベース固有の機能を使用します。

DB SQL

DB SQLによる範囲指定は、データベースに送るSQLコマンドを記述することができます。日付または時刻フィールドへの参照指定をDB SQLで定義した場合、データベースのフィールド名が表示されます。

Datetimeフィールドを使用したソート

ソートは範囲処理に似ています。日付と時刻の両方のフィールドを使用したり、片方を指定してソートすることができます。Magic xpaはデータベースのDatetimeカラムに対してデータベース本来のソート機能を使用するため、日付フィールドとそれに続く時刻フィールドの両方のソート処理が迅速に行なわれます。Datetimeフィールドの日付部分のソートは、このフィールドがソート一覧の最後に表示された場合、データベースでDatetimeカラム上での本来のソート処理が使用されます。

注意：

異なるソート定義を必要としない限り、日付カラムと時刻カラムの両方を指定してソートするほうがパフォーマンスの上でも推奨します。

結合リンク

Datetimeペアの一部を含んでいるジョインキーによる結合リンクを使用する場合、時間と日付部分の両方を位置付け式に指定する必要があります。これらの式の値は、適用されたキー制限に従って自動的に適用されます。

Datetimeフィールドが結合リンクに表示されるがキーとして定義されていない場合、さらに位置付け式が指定されている場合、（メインソースの他のカラムを参照していて、両方のカラムがメインソースのDatetimeペアを参照しているように）位置付け式がリンク条件として設定されている場合、ただ1つの条件がステートメントに表示されます。これ以外の場合、適切な関数がWhere句に追加されます。

Datetimeカラムを含んだテーブルのAPG

Datetimeペアの一方のカラムがAPGの［カラム一覧］で「0」に設定した場合、他方のカラムも「0」になります。Datetimeペアの一方のカラムをAPGの［カラム一覧］で再選択すると、他方のカラムが最後のカラムとして追加されます。


書式

書式は、データをどのように入力または表示するかを指定する文字列です。書式は［書式］ダイアログで指定できます。このダイアログには、［項目特性］シートの［詳細］の［書式］属性からアクセスします。Magic xpaでは、日付などの一般的な属性を持つデータ項目については、最もよく使用される書式が自動的に定義されます。

書式の指定は、次の3 つの状況で必要となります

  • ［モデル］リポジトリまたは［テーブル］リポジトリにおいてデータ項目の実際のサイズとデフォルトの記憶型式を定義する場合。

項目 | 型 | 書式 | 意味
タイトル | 文字 | 15 | 15 桁の英数字
ID 番号 | 数値 | ### または3 | 3桁の整数値
期限 | 日付 | YY/MM/DD | 年、月、日を表す日付
パーセント | 数値 | ###.## または3.2 | 3 桁の整数部と2 桁の小数部を持つ実数値

  • 画面または帳票におけるデータ項目のデフォルトの書式を定義する場合。

  • 型の変換関数において、データの変換規則を定義する場合。詳細は、「［式］エディタ」を参照してください。Str 関数を例にあげると、Str （712.93,’###.####’） は文字列712.9300 を返します。

書式の文字列は、次の3 種類の文字で構成されます。

  • 機能指示記号として扱われる記号

  • 位置指示記号として扱われる記号

  • マスク文字として扱われる上記以外の文字

各型ごとに使用される書式指示記号が定義されています。

各型に属する機能指示記号および位置指示記号の詳細については、以下のトピックを参照してください。

関連トピック：

文字型／Unicodeの指示記号

数値型の指示記号

論理型の位置指示記号

日付型の指示記号

時刻型の指示記号

構文規則

文字型書式の位置指示記号の拡張


書式 機能指示記号

ホーム > リファレンスガイド > データ項目 > 書式 > 機能指示記号

機能指示記号

機能指示記号は、書式のどの位置に置いても同じ意味に解釈される書式文字です。例えば、次の3つの書式があるとします。

N####、####N、##N##

  • これらはいずれも、正および負の値を持つことのできる4桁の整数を表します。

  • 機能指示記号Nは、この型に負の値が含まれる可能性があることを示します。書式文字列内のNの挿入位置はどこでもかまいません。これはほかの機能指示記号も同様です。

機能指示記号は、［書式］ダイアログで［Y］を入力すると挿入されます。また、［書式］欄で書式文字列を編集して、手動で挿入することもできます。

機能指示記号は全て大文字で指定する必要があります。


書式 位置指示記号

ホーム > リファレンスガイド > データ項目 > 書式 > 位置指示記号

位置指示記号

位置指示記号は、書式内で位置を指定する書式文字です。したがって、書式文字列内の挿入位置に基づいて解釈されます。例えば、次の3つの書式があるとします。

UXX、XUX、XXU

  • これらはそれぞれ、異なる3バイトの文字を表します。

  • 位置指示記号Uは、キーボードからデータが入力された時に、「U」の位置に対応する文字を大文字に変換するよう指定します。したがって、書式「UXX」は最初の入力文字を大文字に変換し、「XUX」は2番目の入力文字を大文字に変換します。このように、位置指示記号の挿入位置は非常に重要です。

位置指示記号は全て大文字で指定する必要があります。

位置指示記号は書式内にいくつでも使用できます。続けて繰り返しマスク文字を指定する簡単な方法については、「カウント値」の説明を参照してください。


文字型/Unicode型の指示記号

ホーム > リファレンスガイド > データ項目 > 書式 > 文字型／Unicodeの指示記号

文字型／Unicode型の指示記号

以下の表は、文字型とUnicode型の指示記号です。

機能指示記号

指示記号

機能

A

この指示記号は、データ入力時に最後の文字が入力されたら、次の動作を待たずに、自動的に次のデータに移動するよう指示します。

オートスキップを「Yes」に設定すると、書式に機能指示記号「A」が挿入されます。

モバイル仕様：

モバイル環境ではサポートしていません。

位置指示記号

指示記号 | 機能
X{n} | 任意の文字
U{n} | 入力した英文字を大文字に変換 全角／半角のどちらも有効です。
L{n} | 入力した英文字を小文字に変換 全角／半角のどちらも有効です。
#{n} | 1桁の数値。データ入力時に、#の位置に数字やシンボル記号（. , - + * /）が入力されたかどうかが検証されます。 数字以外の文字が#の位置に入力された場合、入力は拒否され、エラーメッセージが表示されます。

  • n …… カウント値を表しています。

  • ｛｝ …… オプションを表しています。

注意：

文字型の場合、「X」は1バイト分を表しますが、Unicode型の場合は1文字に対応します。これは、Unicode型で半角文字を入力した場合は、文字型と同じ位置に表示されますが、全角文字を入力した場合、「X」は全角文字の1文字になるため、半角文字の２倍分の位置を使用することを意味しています。このため、全角文字を扱う場合[フォーム]エディタ上での「X」の表示と実行時の表示の位置が異なります。


書式 指示記号 数値型

ホーム > リファレンスガイド > データ項目 > 書式 > 数値型の指示記号

数値型の指示記号

機能指示記号は、各属性の［書式］ダイアログで以下のようなオプションが表示されます。

機能指示記号

指示記号

名前

機能

A

オートスキップ

この指示記号は、データ入力時に最後の文字が入力されたら、次の動作を待たずに、自動的に次のデータに移動するよう指示します。

デフォルトは、「No」です。

モバイル仕様：

モバイル環境ではサポートしていません。

N

負数入力

この指示記号は、データ入力時に負数が入力できることを指示します。「Yes」を選択すると、書式の表示サイズがテンプレートの記述に従って自動的に拡大され、負数記号を表示できるようになります。

デフォルトは、「No」です。

C

3 桁区切

この指示記号は、データを3桁ごとにカンマで区切るように指示します。「Yes」を選択すると、書式の表示サイズがテンプレートの記述に従って自動的に拡大され、区切り文字を表示できるようになります。このカンマは、［環境環境］ダイアログの［３桁区切文字］で指定された文字に置き換えることができます。

デフォルトは、「No」です。

L

左詰

この指示記号は、データを左寄せで表示するよう指示します。

デフォルト（No）では、右寄せで表示されます。

Pc

余白埋

この指示記号は、データ数字が含まれていない部分に、[文字]欄にて指定した文字を表示するように指示します。文字を指定しない場合、空白で表示されます。

デフォルトは、「No」です。

Zc

0 値表示

この指示記号は、データがゼロの場合、全ての桁に、「文字」欄にて指定した文字を表示するように指示します。文字を指定しない場合、空白で表示されます。

デフォルトは、「空白」です。

-c{,S};

負数符号

負の値の前に通常のマイナス記号（－）以外の文字列を表示する場合、［負数符号］欄に表示したい文字を指定します。負の値の末尾に文字列を表示する場合、［後付符号］欄に表示したい文字を指定します。これらの文字列は「符号文字列」と呼ばれ、以下の［符号文字列の規則］で説明する規則に従って書式文字列に挿入されます。

  • 機能指示記号「－」または「＋」が、書式文字列の末尾に挿入されます。

  • 符号の指示記号の直後には、前付符号、カンマ、後付符号が順に挿入され、最後にセミコロン（;）が付けられます。
    例えば、負の数字5.2 を括弧で囲む場合は、5.2-（,）; という書式になります。書式4.3+,CR;-,DB; は、正の数字の末尾に文字列CR を付け、負の数字の末尾に文字列DB を付けます。文字列を前付符号と後付符号に分ける文字として、カンマが使用されます。

+c{,S};

正数符号

正の値の前に文字列を表示する場合、［正数符号］欄に表示したい文字を指定します。正の値の末尾に文字列を表示する場合、［後付符号］欄に表示したい文字を指定します。これらの符号文字列は、次の［符号文字列の規則］で説明する規則に従って書式文字列に挿入されます。

  • 機能指示記号「－」または「＋」が、書式文字列の末尾に挿入されます。

  • 符号の指示記号の直後には、前付符号、カンマ、後付符号が順に挿入され、最後にセミコロン（;）が付けられます。
    例えば、負の数字5.2 を括弧で囲む場合は、5.2-（,）; という書式になります。書式4.3+,CR;-,DB; は、正の数字の末尾に文字列CR を付け、負の数字の末尾に文字列DB を付けます。文字列を前付符号と後付符号に分ける文字として、カンマが使用されます。

位置指示記号

指示記号 | 機能
#{n} | 1桁の数値。データ入力時に、#の位置に数字やシンボル記号（. , - + * /）が入力されたかどうかが検証されます。 数字以外の文字が#の位置に入力された場合、入力は拒否され、エラーメッセージが表示されます。
. | ［動作環境］で定義された、小数点の位置を示します。

数値型の項目では、#指示記号やカウント値、オプション小数点の文字によって数値全体、または小数点部分を定義します。これは、デフォルト記憶形式や項目の長さを定義します。

注意：

n …… カウント値を表しています。

｛｝ …… オプションを表しています。

c …… マスク文字を表します。指示記号として予約されている文字（例えばX）をマスク文字として使用したい場合、その文字の前に円記号（\）を置きます。

［書式］ダイアログの一番下には、データがどのように表示されるかを示すテンプレートが表示されます。すなわち、表示されるマスク文字や、データにより使用される画面またはレポートフォームの桁数を確認できます。

関連トピック：

数値型書式の例


書式 機能指示記号 数値型 例

ホーム > リファレンスガイド > データ項目 > 書式 > 数値型の指示記号 > 数値型書式の例

数値型書式の例

属性の値 | 書式 | 変換結果 | コメント
-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桁のスペース文字を表します。


書式 指示記号 論理型

ホーム > リファレンスガイド > データ項目 > 書式 > 論理型の位置指示記号

論理型の指示記号

次の表は、論理型書式の位置指示記号の一覧です。

機能指示記号

指示記号

機能

A

この指示記号は、データ入力時に最後の文字が入力されたら、次の動作を待たずに、自動的に次のデータに移動するよう指示します。

オートスキップを「Yes」に設定すると、書式に機能指示記号「A」が挿入されます。

モバイル仕様：

モバイル環境ではサポートしていません。

位置指示記号

指示記号 | 意味
X | 内部値を表示値または入力値に変換する際に使用される文字です。1は「True」を、0は「False」を表します。また、パラメータの範囲が指定された場合は、男性、女性などの別の表示値/入力値を使用できます。


書式 指示記号 日付型

ホーム > リファレンスガイド > データ項目 > 書式 > 日付型の指示記号

日付型の指示記号

次の表は、日付型書式の位置指示記号の一覧です。

機能指示記号

指示記号

名前

機能

A

オートスキップ

この指示記号は、データ入力時に最後の文字が入力されたら、次の動作を待たずに、自動的に次のデータに移動するよう指示します。

デフォルトは、「No」です。

モバイル仕様：

モバイル環境ではサポートしていません。

Zc

0 値表示

この指示記号は、データがゼロの場合、全ての桁に、「文字」欄にて指定した文字を表示するように指示します。

文字を指定しない場合、空白で表示されます。

'c'は、マスク文字を表します。指示記号として予約されている文字（例えばX）をマスク文字として使用したい場合、その文字の前に円記号（\）を置きます。

T

空白詰

この指示記号は、位置指示記号の「WWW...（曜日）」「MMM...（月）」「DDDD（日付の英語表記）」により挿入された空白を削除するよう指示します。これらの位置指示記号は、使用可能な最大の桁数で書式文字列に指定されるため、指定した長さより短い名前には不要な空白が作成されることがあります。この指示記号は、これらの空白を全て削除します。

空白が必要な場合、マスク文字として明示的に書式文字列に挿入する必要があります。^は、1桁のスペースを表します。

TWWWWWWWWW^DDDD^MMMMMMMMM,YYYY

デフォルトは、「No」です。

サンプル

日付型のデフォルトの書式は##/##/##として定義されています。この場合、［動作環境］ダイアログの［日付タイプ］欄の指定（［A=アメリカ］、［E=ヨーロッパ］、または［J=日本］）に応じて、MM/DD/YY、DD/MM/YY、またはYY/MM/DDの型式で日付が表示されます。

デフォルトの書式を変更すると、この欄にはデータが実際にどのように出力されるかを示すテンプレートが表示されます。すなわち、表示されるマスク文字や、属性が画面または帳票フォームで使用する桁数を確認できます。

位置指示記号

書式 | 意味 | 範囲
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

関連トピック：

日付型書式の例


書式 機能指示記号 日付型 例

ホーム > リファレンスガイド > データ項目 > 書式 > 日付型の指示記号 > 日付型書式の例

日付型書式の例

次の例で使用されている日付は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桁のスペース文字を表します。


書式 指示記号 時刻型

ホーム > リファレンスガイド > データ項目 > 書式 > 時刻型の指示記号

時刻型の指示記号

次の表は、時刻型書式の位置指示記号の一覧です。

機能指示記号

指示記号

名前

機能

A

オートスキップ

この指示記号は、データ入力時に最後の文字が入力されたら、次の動作を待たずに、自動的に次のデータに移動するよう指示します。

デフォルトは、「No」です。

モバイル仕様：

モバイル環境ではサポートしていません。

Zc

0 値表示

この指示記号は、データがゼロの場合、全ての桁に、「文字」欄にて指定した文字を表示するように指示します。

文字を指定しない場合、空白で表示されます。

'c'は、マスク文字を表します。指示記号として予約されている文字（例えばX）をマスク文字として使用したい場合、その文字の前に円記号（\）を置きます。

T

空白詰

この指示記号は、位置指示記号の「WWW...（曜日）」「MMM...（月）」「DDDD（日付の英語表記）」により挿入された空白を削除するよう指示します。これらの位置指示記号は、使用可能な最大の桁数で書式文字列に指定されるため、指定した長さより短い名前には不要な空白が作成されることがあります。この指示記号は、これらの空白を全て削除します。

空白が必要な場合、マスク文字として明示的に書式文字列に挿入する必要があります。^は、1桁のスペースを表します。

デフォルトは、「No」です。

サンプル

Magic xpaでは、時刻型属性のデフォルトの書式マスクがHH:MM:SSとして定義されているので、この表示領域にも、最初はHH:MM:SSの型式で時刻が表示されます。

デフォルトの書式を変更すると、この領域にはパラメータが実際にどのように出力されるかを示すテンプレートが表示されます。すなわち、表示されるマスク文字や、パラメータが画面または帳票フォームで使用する桁数を確認できます。

位置指示記号

書式 | 意味 | 範囲
HH | 時間 | 00-23
MM | 分 | 00-59
SS | 秒 | 00-59
: | 時刻区切文字の挿入位置（挿入される文字は［動作環境］ダイアログの［時刻区切文字］欄にて指定） |
PM | amまたはpmを表示し、時間を12時間制（1～11）にて表示 | AM or PM

関連トピック：

時刻型書式の例


書式 機能指示記号 時刻型 例

ホーム > リファレンスガイド > データ項目 > 書式 > 時刻型の指示記号 > 時刻型書式の例

時刻型書式の例

値 （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までとなります。これ以上の時間、分、秒を表示させる必要がある場合は、データを加工する必要があります。


書式 位置指示記号 デフォルト

ホーム > リファレンスガイド > データ項目 > 書式 > デフォルトの位置指示記号

デフォルトの位置指示記号

文字型とUnicode型、数値型において最もよく使用される属性を、位置指示記号の省略形で定義できます。

書式をカウント値のみで記述した場合、デフォルトの位置指示記号が繰り返されているものと解釈されます。解釈されるデフォルトの指示記号は、型に応じて次のようになります。

型 | デフォルトの指示記号
文字/Unicode | X（任意の文字の位置を示します）
数値 | #（1 桁の数値の位置を示します）

この方法により、次の表に示すように、最も頻繁に使用される書式を簡単に定義できます。

型 | 省略形の書式 | 同義の書式
文字/Unicode | 7 | XXXXXXX またはX7
文字/Unicode | 3U2 | XXXU2 またはX3UU
数値 | 4 | #### または#4


書式 マスク文字

ホーム > リファレンスガイド > データ項目 > 書式 > マスク文字

マスク文字

書式文字列の中で、機能指示記号と位置指示記号以外の文字は、全てマスク文字です。マスク文字は、実際のデータ値に挿入されて表示されます。例えば、文字列$#####は、常に先頭にドル記号を付けて表示される5桁の整数の属性を定義します。

マスク文字の挿入位置は重要です。 #####$というように、ドル記号を右端に指定すると、ドル記号はデータの右端に表示されます。

マスク文字は、格納される型のサイズや内部表現には影響しません。

マスク文字は書式内にいくつでも使用できます。続けてマスク文字を指定する簡単な方法については、「カウント値」の説明を参照してください。

マスク文字は、大文字でも小文字でも使用できます。しかし、マスク文字として大文字を使用する場合、エスケープ文字を使用する必要があります。


書式 構文規則

ホーム > リファレンスガイド > データ項目 > 書式 > 構文規則

書式作成時の構文規則

書式を作成する際の構文規則には、次のものがあります。

大文字/小文字の区別

機能指示記号と位置指示記号は、全て大文字で指定します。小文字はマスク文字として解釈されます。

例えば、次のようになります。

  • 書式XXXXXは、5文字の文字型属性を定義します。

  • 書式XXxXXは、マスク文字xが含まれる4文字のデータを表します。

エスケープ文字

エスケープ文字「\」は、その直後の文字がマスク文字であることを明示的に指定します。これにより、指示記号によって暗黙的に指定された意味を無効にし、マスク文字として使用できるようになります。

例えば、次のようになります。

  • 書式XX\XXは、真中にマスク文字Xが挿入された4文字のデータを表します。この例の場合、文字「\」って、その直後のXがマスク文字として解釈されます。

  • 重量をポンドで表現した4桁の数値を想定し、この値の前にPを付けて表示するものとします。この場合、単に書式をP####と指定すると、Pが余白部分を埋める機能指示記号として解釈されるため、希望どおりに表示されません。そのため、\P####と指定します。

注意：

「\」文字自体をマスク文字として使用する場合は、「\\」というように2回指定してください。

カウント値

カウント値は、書式に同じ文字を繰り返し使用する時に使用できます。カウント値は繰り返し使用する文字の後ろに配置して、その文字の繰り返し回数を指定します。

例えば、次のようになります。

  • $#4は$####と同義です。

  • X6はXXXXXXと同義です。

  • X3U2はXXXUUと同義です。

カウント値は、位置指示記号またはマスク文字に使用できます。


書式 位置指示記号 文字型 拡張

ホーム > リファレンスガイド > データ項目 > 書式 > 文字型書式の位置指示記号の拡張

文字型書式の位置指示記号の拡張

Magic xpaでは、下記のような拡張位置指示記号をデフォルトで使用できるようになっています。

DDSフィールド | 位置指示記号 | 制限事項
DBCS 専用フィールド（J） | J | 全角のみ入力可
DBCS 混用フィールド（O） | X | 全角、半角の混在入力可
DBCS 択一フィールド（E） | T | 全て全角か、全て半角で入力可
DBCS 図形フィールド（G） | G | 全角のみ入力可。シフトコード無し
SBCS （A） | S | 半角のみ入力可

注意：

  • これらの書式は iSeries DB2/400 のDBCS対応のためのものですが、IBM i以外でも使用することが可能です。この場合、G は J と同一の動作になります。

  • Magic位置指示記号の（J、T、G）は、必ず２文字単位で記述します。

  • 追加された位置指示記号と、Magic位置指示記号文字（J, X, T, G, S)は混在して記述することができません。例．JJJJXXXXなど

  • 追加された位置指示記号（J、T、G、S）は、U、L、# を使用できません。

  • この機能を無効化したい場合は、MAGIC.INI にて以下の設定を行ってください。

[dbMAGIC_ENV]
AS400Set = N


モデル

モデルは、オブジェクトによって引き継がれることができる特性の集まりです。オブジェクトがモデルを利用すると、継承しないように明示的に定義された特性以外はモデルの特性を引き継ぐようになります。

オブジェクトの特性値を個別に設定することで、その値の継承関係は切れてしまうことになります。特性値が定義されると、モデルによって継承されていた値が無効になります。

モデルクラスの特性が更新されると、個別に定義されている特性値を除いた全ての値が関連するオブジェクトに対して反映されます。

モデルに定義されている特性の値が変更されると、そのモデルの特性値を継承している全てのオブジェクトの特性値に自動的に反映されます。

モデルの使用は必須ではありませんが、モデルを使用することでプロジェクトの開発と保守の効率が上がります。また、異なるテーブルでの書式の整合性を保つ上でも効果的になります。

詳細は、モデル定義の利点を参照してください。

関連トピック：

モデルリポジトリ

データ項目

書式

項目モデル特性

モデルの使用

モデル (Mastering Magic xpa)


モデルリポジトリ

［モデル］リポジトリには、開発者が定義したモデルが表示されます。

同じオブジェクトクラスの複数のモデルを選ぶことができます。［モデル特性］シートには、指定したモデルの特性値が表示されます。

［モデル］リポジトリには、以下のカラムがあります。

カラム | 内容
名前 | モデルの名前を定義します。モデル名の長さは、最大30桁です。
クラス | モデルはクラスタイプを分類して定義します。クラスタイプは、モデルに割り当てることができるMagic xpaのオブジェクトです。クラスタイプは、各クラスタイプ個有な「型」により細分類されます。クラスを参照してください。 関連トピック： モデルのクラスを変更するには
型 | ［クラス］で選択された内容にもとづいたオブジェクトのタイプを選択することができます。例えば、項目クラスの場合はデータ項目の型（数値型、文字型、日付型など）のどれか1つを選択することができます。型も参照してください。
フォルダ | 登録されているモデルが保存されているフォルダの名前が表示されます。フォルダを作成するには、［ナビゲータ］ペインで［モデル］アイコンをクリックし、F4を押下します。フォルダを作成すると、登録されているモデルをグループ化することができます。詳細については、フォルダを参照してください。
公開名 | モデルの公開名を定義します。そのモデル定義をコンポーネントとして外部から利用する場合に必要です。公開名はプロジェクトファイル内でユニークでなければなりません。

注意：

［モデル］リポジトリでは、［キャンセル］イベント（F2）が無効です。入力内容を取り消すことができませんので注意してください。

/* ... */ という書式でコメントを定義した場合、［モデル一覧］の［説明］欄にコメントが表示されます。

関連トピック：

複数のプロジェクトでモデルを共有するには


モデルリポジトリ クラス

ホーム > リファレンスガイド > モデル > モデルリポジトリ > クラス

クラス

モデルはクラスタイプを分類して定義します。クラスタイプは、モデルに割り当てることができるMagic xpaのオブジェクトです。クラスタイプは、各クラスタイプ個有な「型」により細分類されます。

次のようなクラスタイプがあります。

ヘルプ

項目

GUI 表示形式

GUI 出力形式

テキスト形式

フレームセット形式

マージ形式

リッチクライアント表示形式

リッチクライアントフレーム形式

GUIフレーム形式


モデルリポジトリ クラス ヘルプ

ホーム > リファレンスガイド > モデル > モデルリポジトリ > クラス > ヘルプ

ヘルプ

ヘルプモデルには、次の型があります。

実行時にエンドユーザーがこのフィールドクラスに関連したカラム上でヘルプを呼び出した場合に有効になります。

  • I=内部 …… Magicアプリケーション内で定義されるヘルプ

  • W=Windows形式 …… Windowsヘルプ形式の外部ファイルに定義されるヘルプ


モデルリポジトリ クラス 項目

ホーム > リファレンスガイド > モデル > モデルリポジトリ > クラス > 項目

項目

［クラス］カラムから「F=項目」を選択し、［型］カラムから項目の型を選択します。このモデルとリンクされたオブジェクトは、オブジェクト側で変更されない限り、ここで定義された特性が使用されます。

例

「Customer_Code」オブジェクトがプロジェクト全般で使用されているものと仮定します。［型］特性や［書式］特性などのオブジェクトの特性を［モデル］リポジトリに設定することで、プロジェクト全体でこのモデルを使用することができます。

さらに、オブジェクトの書式を（例えば、9桁から10桁に）修正する必要がある場合、［モデル］リポジトリで変更するだけですみます。これにより、Magic xpaが対応するすべてのオブジェクトの特性を更新します。このオブジェクトの色やフォントを定義することもできます。

関連トピック：

項目モデル特性

再利用可能なデータオブジェクトを定義するには


モデルリポジトリ クラス ブラウザ

ホーム > リファレンスガイド > モデル > モデルリポジトリ > クラス > ブラウザ形式

ブラウザ形式

ブラウザモデルのクラスには、ブラウザタスクで表示されるフォームとコントロールに対応した型があります。ブラウザモデルには次の型があります。

注意

ブラウザクライアント機能は、利用できません。

  • F=フォーム …… ［ブラウザフォーム特性］が表示されます。

  • E=エディット …… ［エディットコントロール特性］が表示されます。

  • H=ハイパーテキスト …… ［ハイパーテキストコントロール特性］が表示されます。

  • P=プッシュボタン …… ［プッシュボタンコントロール特性］が表示されます。

  • K=チェックボックス …… ［チェックボックスコントロール特性］が表示されます。

  • B=ラジオボタン …… ［ラジオボタンコントロール特性］が表示されます。

  • L=リストボックス …… ［リストボックスコントロール特性］が表示されます。

  • C=コンボボックス …… ［コンボボックスコントロール特性］が表示されます。

  • T=テーブル …… ［テーブルコントロール特性］が表示されます。

  • M=イメージ …… ［イメージコントロール特性］が表示されます。

  • S=サブフォーム …… ［サブフォーム特性］が表示されます。

  • I=IFRAME …… ブラウザフォームの［IFRAMEコントロール特性］が表示されます。

  • O=その他 …… ブラウザフォームの［その他コントロール特性］が表示されます。


モデルリポジトリ クラス GUI表示

ホーム > リファレンスガイド > モデル > モデルリポジトリ > クラス > 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コントロール特性］が表示されます。（Ver2.xでは、サポートされません）

  • U=サブフォーム …… ［サブフォームコントロール特性］が表示されます。

  • .=.NET …… ［.NETコントロール特性］が表示されます。


モデルリポジトリ クラス GUI出力

ホーム > リファレンスガイド > モデル > モデルリポジトリ > クラス > GUI 出力形式

GUI出力形式

GUI出力形式モデルのクラスには、GUI出力フォームとコントロールに対応した型があります。GUI出力モデルタイプには次の型があります。

  • F=フォーム …… ［GUI出力フォーム特性］が表示されます。

  • E=エディット …… ［エディットコントロール特性］が表示されます。

  • S=スタティック …… ［スタティックコントロール特性］が表示されます。

  • N=ライン …… ［ラインコントロール特性］が表示されます。

  • T=テーブル …… ［テーブルコントロール特性］が表示されます。

  • U=カラム …… ［カラムコントロール特性］が表示されます。

  • M=イメージ …… ［イメージコントロール特性］が表示されます。

  • I=リッチエディット …… ［リッチエディットコントロール特性］が表示されます。


ホーム > リファレンスガイド > モデル > モデルリポジトリ > クラス > フレームセット

フレームセットクラス

フレームセットモデルクラスは、ブウザウインドウを分割するために表示されます。


モデルリポジトリ クラス テキスト

ホーム > リファレンスガイド > モデル > モデルリポジトリ > クラス > テキスト形式

テキスト形式

テキスト形式モデルのクラスには、テキスト出力／入力フォームとコントロールに対応した型があります。テキスト形式モデルタイプには次の型があります。

  • F=フォーム …… ［テキスト形式フォーム特性］が表示されます。

  • E=エディット …… ［エディットコントロール特性］が表示されます。

  • S=スタティック …… ［スタティックコントロール特性］が表示されます。

  • N=ライン …… ［ラインコントロール特性］が表示されます。


モデルリポジトリ クラス マージ

ホーム > リファレンスガイド > モデル > モデルリポジトリ > クラス > マージ形式

マージ形式

マージ形式のモデルタイプには、マージ形式フォームのフォーム特性が表示されます。このモデルは、データをテンプレートファイルにマージするために使用されます。


モデルリポジトリ クラス リッチクライアント

ホーム > リファレンスガイド > モデル > モデルリポジトリ > クラス > リッチクライアント表示形式

リッチクライアント表示形式

リッチクライアント表示モデルのクラスには、リッチクライアント表示フォームとコントロールに対応した型があります。リッチクライアント表示モデルには次の型があります。

  • F=フォーム …… ［リッチクライアント表示フォーム特性］が表示されます。

  • E=エディット …… ［エディットコントロール特性］が表示されます。

  • B=ラベル …… ［ラベルコントロール特性］が表示されます。

  • P=プッシュボタン …… ［プッシュボタンコントロール特性］が表示されます。

  • K=チェックボックス …… ［チェックボックスコントロール特性］が表示されます。

  • D=ラジオボタン …… ［ラジオボタンコントロール特性］が表示されます。

  • A=タブ …… ［タブコントロール特性］が表示されます。

  • L=リストボックス …… ［リストボックスコントロール特性］が表示されます。

  • C=コンボボックス …… ［コンボボックスコントロール特性］が表示されます。

  • O=グループ …… ［グループコントロール特性］が表示されます。

  • T=テーブル …… ［テーブルコントロール特性］が表示されます。

  • M=カラム …… ［カラムコントロール特性が表示］されます。

  • G=イメージ …… ［イメージコントロール特性］が表示されます。

  • U=サブフォーム …… ［サブフォームコントロール特性］が表示されます。

  • R=ツリー …… ［ツリーコントロール特性］が表示されます。

  • W=ブラウザ …… ［ブラウザコントロール特性］が表示されます。

  • H=リッチエディット …… ［リッチエディットコントロール特性］が表示されます。

  • I=リッチテキスト …… ［リッチテキストコントロール特性］が表示されます。

  • N=ライン …… ［ラインコントロール特性］が表示されます。

  • .=.NET …… ［.NETコントロール特性］が表示されます。


モデルリポジトリ クラス リッチクライアントフレーム形式

ホーム > リファレンスガイド > モデル > モデルリポジトリ > クラス > リッチクライアントフレーム形式

リッチクライアントフレーム形式

リッチクライアント表示モデルのクラスには、リッチクライアント表示フォームとコントロールに対応した型があります。リッチクライアント表示モデルには次の型があります。

  • F=フォーム …… ［リッチクライアントフレーム特性］が表示されます。

  • M=フレーム …… ［フレームコントロール特性］が表示されます。


GUIフレーム形式

GUIフレームセット形式のクラスには、オンラインフォーム上で表示されるフレームフォームに対応した型があります。GUIフレーム形式のモデルには次の型があります。

  • F=フォーム …… ［GUIフレーム特性］が表示されます。

  • M=フレーム …… ［GUIフレームコントロール特性］が表示されます。


項目モデル特性

［クラス］欄のコンボボックスで［項目］を選択し、［型］欄のコンボボックスからデータ項目の属性を選択します。 項目モデルの［特性シート］には、格納形式やSQL特性も表示されます。

モデル …… ［モデル］リポジトリでは、この値は常に「（デフォルト）」です。変更することはできません。

詳細

入力

表示

スタイル

デフォルト/NULL

格納

SQL

ActiveX （Ver2.xではサポートされません）

OLE

.NET


データ項目

データ項目は、データ構造の構成単位です。通常はテーブルに物理的に格納されるので、カラムまたは変数と呼ばれます。

Magic xpaのデータ項目は、以下のいずれかになります。

  • カラム …… 実際のデータ値が入ったデータテーブルの構成要素。プロジェクトの実データは、［データ］リポジトリで定義されます。同じ特性を持つカラムが複数ある場合、それらの項目モデルを［モデル］リポジトリで定義できます。

  • 変数 …… タスク内で使用する計算および一時保存のローカル変数。タスクを定義する時は、必要な変数項目を定義します。［モデル］リポジトリで事前に定義した項目モデルを使用することもできます。変数項目は、プログラムの実行中のみ格納内容が有効で、実行が終了するとその値は保存されません。これは、プログラムが終了すると、項目の値がデフォルト値に戻ることを意味しています。

  • パラメータ …… 呼び出したタスクまたはプログラムから値を受け取るように指定されたローカル変数。

データ項目は、型や書式だけでなく、範囲などのほかの特性についても定義できます。

関連トピック：

フォーム

コントロール


モデルリポジトリ クラス フォーム

ホーム > リファレンスガイド > モデル > データ項目 > フォーム

フォーム

フォームモデルは、以下のモデルクラスに割り当てられています。

  • ブラウザ形式 …… ［ブラウザ形式］フォーム用

  • GUI表示形式 …… ［GUI表示形式］フォーム用

  • GUI出力形式 …… ［GUI出力形式］フォーム用

  • テキスト形式 …… ［テキスト形式］フォーム用

  • フレームセット形式 …… ［フレームセット形式］フォーム用

  • マージ形式 …… ［マージ形式］フォーム用

  • リッチクライアント表示形式 …… ［リッチクライアント形式］フォーム用

  • リッチクライアントフレーム形式 …… ［リッチクライアントフレーム形式］フォーム用

  • GUIフレーム形式 …… ［GUIフレーム形式］フォーム用

［フォーム］エディタ内で特定のタスクに対するフォームタイプを定義すると、選択された［特性］シートが表示されます。

注意：

［フォーム］クラスはどのインタフェース・タイプにもありますが、［モデル］リポジトリの［型］カラムで「フォーム」に設定する必要があります。

例

作成するプロジェクトでは、フォームを統一し、背景としてイメージを表示させるようにすると仮定します。新しいフォームを作成する度にこれらの特性を設定するには、時間がかかります。モデルを使用して、これらの特性を継承させることで、各フォームに個別に特性を設定する必要がなく、どのように表示させるかを覚えておく必要もなくなります。さらに、特性を変更する必要がある場合は、そのモデルを使用するフォームの全てにおいて変更内容が反映されます。


モデルリポジトリ クラス コントロール

ホーム > リファレンスガイド > モデル > データ項目 > コントロール

コントロール

必要なコントロールを［属性］リストボックス（例えば、エディットやテキスト、プッシュボタン、チェックボックス、ラジオボタンなど)から選択することにで、特定のフォームクラスに対するコントロールのモデルを定義することができます。

全てのコントロールが、各モデルクラスによってサポートされている訳ではありません。


モデルの使用

開発するプロジェクトに必要となるオブジェクト項目を検討する場合、それらが一般的な属性に基づいてまとめられているかどうかを考慮してください。［モデル］リポジトリでは、グループごとにモデルを定義することによってカラムのグループを定義することができます。これは、グループの共通の特性を持つプロトタイプ・クラスとなります。

デフォルトでは、新しいオブジェクトはシステムベースのモデルと関連付けられます。新しいアプリケーションが作成されると、システムベースのモデルの特性値が自動的に使用されます。システムベースの特性値はイタリック表示されます。

システムベースの特性値を再定義することによって、ユーザ定義のモデルを作成することができます。特性シートにアクセスするには、新規作成したモデルをダブルクリックしてください。モデルエントリが保存されると、読み込み専用になります。プロジェクト安定性を保持するため、既存のモデル（の型）は修正できなくなります。

ユーザ定義のモデルは削除することができます。モデルが削除されるとき、モデルに関連付けられていたすべてのオブジェクトは未定義となり、構文チェックによってエラーになる場合があります。

関連トピック：

モデル定義の利点

継承


モデル定義の利点

プロジェクトに必要なオブジェクトを設計する場合、共通の属性に基づいてグループ化すべきかどうかを考慮することは、アプリケーションの設計、実装、保守の容易さのために重要です。［モデル］リポジトリでは、各グループにモデルを定義することによって、これらのグループに共通な特性を定義することができ、個々のオブジェクトはこのように定義されたモデルを参照することにより、簡単に定義できるようになります。

モデル定義を使用するかどうかは開発者の設計次第ですが、使用するとプロジェクトの開発や管理に便利です。［モデル］リポジトリを使用すると、次のような利点があります。

プロジェクト開発に要する時間を節約できます。

  • オブジェクトモデルを作成すると、同様の特性を持つオブジェクトはそのモデルを参照するだけで定義でき、個々のオブジェクトごとにいちいち同じ特性値を設定する必要がなくなります。

管理が容易になります。

  • モデルの特性値を変更すると、そのモデルに関連する全てのオブジェクトの特性値に自動的に継承されます。

項目モデルを使用することでさまざまなテーブルやプログラムの変数・パラメータなどで特性を一致させることができます。

  • カラムをリンク定義する場合などには、両カラムの属性が正確に一致していなければなりませんが、同じモデルを使用してカラムを定義すると簡単に実現することができます。

例

項目モデル

Customer_Codeオブジェクトがプロジェクト内で頻繁に使用されると仮定します。型特性（数値）と書式特性（9桁）などの特性値を［モデル］リポジトリに設定することで、プロジェクトに内でこのモデルを使用することができます。さらに、オブジェクトの書式（例えば9桁から10桁へ）を修正する必要がある場合、［モデル］リポジトリで変更するだけで該当するオブジェクトの書式にすべて反映されます。

フォームモデル

プロジェクト内のフォームのすべてが均一で、［背景］特性にイメージが定義されているものと仮定します。この特性をフォームを新規に作成するたびに設定することは時間の無駄遣いになります。モデルを使用してこれらの特性を継承させることで、どのようなイメージで表示させるかを考える必要がなくなります。さらに、特性を変更する必要が発生した場合も、モデルの特性値を変更することで簡単に反映させることができます。


モデルの使用 継承

ホーム > リファレンスガイド > モデル > モデルの使用 > 継承

継承

Magic xpaの継承機能は、以下のように動作します。

  • モデルを新しいオブジェクトに割り当てると、オブジェクトの特性はモデルから引き継がれます。

  • 特性の値を変更することで、該当する特性の継承が解除されます。

  • モデルを既存のオブジェクトに割り当てると、個別に値が設定されていない特性だけがモデルから引き継がれます。

  • オブジェクトのモデルを別のモデルに変更すると、継承されている特性値は変更されたモデルの特性値に変更されます。

  • モデルをオブジェクトから外すと、オブジェクトの特性は、オブジェクトのデフォルト値に変更されます。

以下のトグルボタンを使用することで、各特性に対して継承機能を制御することができます。

このボタンは、現在の特性の継承状態の反対の状態で表示されます。つまり、継承が解除されている場合、継承アイコンが表示されます。

  • 継承解除 …… 特性の継承を解除する場合は、このボタンを使用します。

  • 継承 …… モデルから特性を継承させる場合は、このボタンを使用します。

修正された特性（継承が解除された特性）は青色の太字で表示されます。

継承関係が変更される要因について以下に説明します。

継承関係の解除

個々のモデルの特性の値を、継承されてきたデフォルトの値ではなく、別の値に定義しなおすことができます。特性値を再定義すると、関連付けられているモデルの現在の特性値または更新された特性値が継承されなくなります。継承が「切れた」特性値は、[継承設定]ボタンで継承を設定し直すことができます。

オブジェクトに別のモデルを選択

モデルを別のモデルに変更すると、関連付けられているオブジェクトには新しいモデルの特性が継承され、元のモデルの特性は無視されます。

オブジェクトからモデルを削除

モデルの選択状態を削除すると、ユーザ定義モデルと関連付けられていたオブジェクトが置き換えられ、オブジェクトには、そのオブジェクトタイプのシステムベースのモデルの特性値が継承されます。

関連トピック：

モデル特性の変更内容をオブジェクトに反映させないようにするには

継承が解除された特性を継承させるには


データソース

Magic xpaは、データベースとXMLソースの両方をデータソースとして扱います。［データ］リポジトリには、アプリケーションで使用する全てのデータソースが定義されています。

各データソースは、関連する項目モデルと特性、インデックス、およびデータベースゲートウェイとカラムによって定義されます。

関連トピック：

データリポジトリ

データソースタイプ

データソース特性

データの変換

データベースのメタデータ

データソースの削除

データソースの定義 (Mastering Magic xpa)


データリポジトリ

［データ］リポジトリには、プロジェクトで使用する全てのデータソースが定義されています。

各データソースは、関連する項目モデルと特性、インデックス、およびデータベースゲートウェイとカラムによって定義されます。

［データ］リポジトリの上部のペインには、以下のカラムが含まれています。

カラム

内容

#

このカラムには、Magic xpaによってデータソースIDとして使用される連番が自動的に入ります。このカラムは編集できません。

名前

データソースの名前を入力します。Magic xpaがエンドユーザにエラーメッセージを表示する場合、この名前が使用されます。テーブル名の長さは、最大30桁です。

テーブルを初めて作成する際、［データソース名］カラムにDB名が明示的に定義されていない場合、［名前］カラムの内容が設定されます。

データソース名

このカラムには、データソースがデータベースの場合、テーブル名を入力することができます。データソースがXMLデータファイルの場合は、デフォルトのMLファイル名とパス名を入力します。

XMLファイルを指定した場合、ユーザはこのカラムから［ファイルを開く］ダイアログにズームし、XMLファイルとファイルパス(何も指定しないか、file://を先頭に付加して)やURL(HTTP/HTTPS)形式で指定することができます。

データベースを指定した場合、このカラムから［ファイルを開く］ダイアログにズームしファイルを選択することができます。［データベース］テーブルの［位置］カラムに設定された値が、このカラムに指定された値の接頭語として使用されます。データソース名の最大長は260桁です。このカラムの入力は必須です。（空白にはできません。）

注意：

データソース名が数値で始まっていたり、スペースが含まれている場合、データソース名を角括弧で囲む必要があります。例：［305n］、［v sourcename］

［データソース名］カラムには、以下の内容を定義するオプションがあります。

  • テーブルへのフルパス

  • Magic xpaがデフォルトで付加する名前より優先される物理テーブル名

SQL データベースでは、テーブルの実際の名前が基礎となるデータベースに定義されます。この名前はデータベースの仕様に応じて制限されます。例えば、Oracle ではデータベース名は30 文字までに制限されており、また文字で開始しなければなりません。

オブジェクトの完全な名前が「Owner.Tablename」または「Database.Owner.Tablename」の場合、Magic xpaでは［データソース特性］の［オーナ名］特性を使用します。そこでオーナーが指定されていない場合、オーナーは［データベース特性］で定義された［ユーザ名］特性になります。

Magic xpaでは、選択したデータベースがSQL データベースであると、テーブルの［名前］を［DB テーブル］にコピーします。この時、空白は下線に変換されます。DB テーブルを変更することができますが、空白にすることはできません。例えば、テーブル名「my emp table」は、Magic xpaでは「my_emp_table」と表示されます。事前に定義されたMagic xpaの論理名をテーブル名の一部として使用することで、命名規則を適用しやすくなります。

注意：

  • このカラムに表示されるデフォルト名は、［データ］リポジトリの［名前］カラムに入力された名前になります。

  • このカラムには、論理名を使用することができます。

関連トピック：

データリポジトリに定義されている名前と異なるデータソース名を使用するには

同じスキーマを使用した異なるXMLドキュメントを作成するには

データベース

このカラムには、［データベース］テーブルに定義されたデータベースを定義します。［データベース一覧］で選択することができます。

データベースとして、DBMSでアクセスするデータベースと、XMLファイルとしてアクセスするデータソースの2種類が設定できます。この２種類は、一旦データ定義が行なわれると他方の形式に変更できなくなります。

例えば、XMLデータソースに設定して定義取得を行なうと、［データベース］カラムからズームしても［データベース一覧］には、XMLで定義されたデータベース以外は表示されなくなります。

フォルダ

エントリが所属するフォルダを指定します。リポジトリにフォルダが作成されていない場合、この欄にカーソルは止まりません。フォルダを作成するには、［ナビゲータ］ペインで［データソース］アイコンをハイライト表示し、F4 を押します。フォルダを作成すると、登録されているテーブルをグループ化することができます。

詳細は、「フォルダ」を参照してください。

公開名

データソースの公開名を入力します。このデータソースをコンポーネントとして外部から利用する場合に必要です。公開名はプロジェクトファイル内でユニークでなければなりません。

［データ］リポジトリの下部のペインには、ソースがテーブルかXMLソースのどちらかによって異なるタブが表示されます。

注意：

  • データソース(テーブルとXMLソース)を削除しても、DBMSからは自動的に削除されません。 詳細については、「データソースの削除」を参照してください。

  • 作成または編集されたデータソース行を終了する前に、データソース(オプション/チェック)を変換するかどうかを確認するダイアログが表示されます。このチェックを実行することで、デバッグ時のエラー発生頻度が低くなる場合があります。

  • /* ... */ という書式でコメントを定義した場合、［データ一覧］の［説明］欄にコメントが表示されます。

関連トピック：

データソース特性

データの変換

データベースのメタデータ


データソース タイプ

ホーム > リファレンスガイド > データソース > データソースタイプ

データソースタイプ

Magic xpaは、テーブルとXMLソースの両方を定義することができます。

［データ］リポジトリの下部のペインには、ソースがテーブルかXMLソースのどちらかによって異なるタブが表示されます。


データソース テーブルソース

ホーム > リファレンスガイド > データソース > データソースタイプ > テーブルソース

テーブルソース

データソースが「テーブル」の場合、以下のタブが表示されます。

［カラム］タブ

［インデックス］タブ

［外部キー］タブ


データソース テーブルソース カラム

ホーム > リファレンスガイド > データソース > データソースタイプ > テーブルソース > ［カラム］タブ

カラムテーブル

［カラム］テーブルには、データテーブルを構成するカラムに関連する定義情報が含まれています。

［カラム］タブをクリックすることで、［カラム］テーブルにアクセスできます。

カラム

内容

#

このカラムには、Magic xpaによって使用される連番が自動的に入ります。このカラムは編集できません。

名前

カラムの名前を入力します。モデルをカラムに関連付ける場合、カラム名を空白のままにすると自動的にモデル名がコピーされます。カラム名の長さは、最大30 桁です。

モデル

［モデル］カラムをダブルクリックすると、項目モデルが表示された［モデル一覧］にアクセスできます。項目モデルには次の特性があります。

  • 全ての項目モデル特性はカラムに継承されます。

  • カラム名が空白の場合は、項目モデル名が設定されます。

関連トピック： モデルを使用してデータソースのカラムを定義するには

型

Magic xpaのデータ項目型から１つを選択します。型のコードを入力するかコンボボックスをクリックして、型を指定することができます。

以下のデータ項目型を指定できます。

  • A=文字型（デフォルト）

  • U=Unicode型

  • N=数値型

  • L=論理型

  • D=日付型

  • T=時刻型

  • B=BLOB型

  • O=OLE型

  • X=ActiveX型（Ver2.xではサポートされません）

  • V=ベクトル型

  • .=.NET型

型特性のコンボボックスまたはアクセラレータキーを入力することで、選択できます。

書式

文字型項目では、最低限の書式として長さが必須になっています。また、必要に応じて他の書式設定を行います。

数値型項目では、整数の桁数が最低限の書式であり、必要な場合には小数と小数点以下の桁数を設定します。必要であれば、その他の書式設定を追加できます。

データ型が論理、時刻または日付のカラムの場合、デフォルトの書式を受け入れるか、必要に応じて他の書式設定を追加できます。

BLOB やActiveX、OLE型はバイナリオブジェクトが保存されているものであり、Magic xpaではデータ解釈は行われません。このため書式を設定できません。

参考：

  • ［カラム］テーブルには999行まで登録可能ですが、データソースとして利用できるかどうかは、使用するDBMSに依存します。

  • ”/* ... */という書式でコメントを定義した場合、［カラム一覧］の［説明］欄にコメントが表示されます。

関連トピック：

カラム特性


データソース テーブルソース カラム 特性

ホーム > リファレンスガイド > データソース > データソースタイプ > テーブルソース > ［カラム］タブ > カラム特性

カラム特性

［カラム特性］で、特定のデータ型の特性値を定義します。

この特性は、以下のセクションで構成されます。

モデル

汎用

詳細

入力

表示

スタイル

デフォルト/NULL

格納形式

SQL

XSD


データソース テーブルソース インデックス

ホーム > リファレンスガイド > データソース > データソースタイプ > テーブルソース > ［インデックス］タブ

インデックステーブル

［インデックス］テーブルでは、重複不可または重複可のインデックスを定義することができます。インデックスは、特定のテーブルのカラム（ID、電子メールアドレス、電話番号など）を、インデックスセグメントとして組み合わせることで定義されます。

［インデックス］テーブルにアクセスするには、［データ］リポジトリの下に表示されているウィンドウの［インデックス］タブをクリックしてください。

インデックスの定義は論理的で、Magic xpaでのみ有効です。データベースのインデックスは、Magic xpaで定義したインデックスとは異なる場合があります。定義取得を行うと、データベースの実際のインデックス構造を確認することができます。

Magic xpaにインデックスを定義する上で最善な方法は、データベースのインデックスと一致させ、オプティマイザを使用してソート処理が不要になるようにすることです。Magic xpaとデータベースのインデックスが合致していれば、パフォーマンスも向上します。

Magic xpaでインデックスを定義すると、以下のように動作します。

  • インデックスのデータ型を「実キー」にして新しいテーブルに割当てると、データベース内にMagic xpaインデックスと一致するインデックスが作成されます。

  • 実行時には、Magic xpaが発行するSELECT文にORDER BY句を追加するかどうかが決定されます。インデックス内で設定されたセグメントは、ORDER BY句で指定されるカラムとなります。

インデックステーブルは、以下の内容で構成されます。

カラム

内容

#

このカラムには、Magic xpaによって使用される連番が自動的に入ります。このカラムは編集できません。

名前

インデックスの名前を入力します。

タイプ

以下のどちらかを指定します。

  • U=重複不可 …… ユニークなインデックス値のみ入力できます。SQLゲートウェイの場合、少なくとも１つの重複不可インデックスが必要な場合があります。

  • N=重複可 …… 重複した値をインデックス値として入力できます。

プライマリキー

このチェックボックスは、インデックスをプライマリキーにするかどうかを指定するものです。

「U=重複不可」に設定されているインデックスのみプライマリキーに指定できます。

参考：

［インデックス］テーブルには119行まで登録可能ですが、データソースとして利用できるかどうかは、使用するDBMSに依存します。

「/* ... */」という書式でコメントを定義した場合、［インデックス一覧］の［説明］欄にコメントが表示されます。

関連トピック：

インデックスセグメント

インデックス特性

SQLに関する考慮事項


データソース テーブルソース インデックス セグメント

ホーム > リファレンスガイド > データソース > データソースタイプ > テーブルソース > ［インデックス］タブ > インデックスセグメント

インデックスセグメント

テーブルにおけるセグメントの定義順序によって、検索時の階層レベルが決定されます。セグメントの定義順序は、このインデックスを使用したソート順にも影響します。［インデックスセグメント］テーブルには、32,767個のエントリが定義できます。

［インデックスセグメント］テーブルには、以下の各カラムがあります。

カラム

内容

#

このカラムには、Magic xpaによって使用される連番が自動的に入ります。このカラムは編集できません。

カラム

セグメントとして使用できるテーブルカラムの番号です。番号を入力するか、右側に表示されている［カラム一覧］にズームし、任意のカラムを選択できます。

名前

セグメントとして選択したカラムの名前を表示されます。カーソルはこのカラムをスキップします。

サイズ

データが文字型の場合のみ、ここにカラムのサイズを入力できます。通常、インデックスセグメントのカラムのサイズを小さくする場合に使用します。

カラムのサイズを小さくすると、検索の際の処理速度が向上します。サイズを小さくする場合は、インデックスを重複可インデックスに設定します。これで、カラムのサイズが小さくなり、データが切り取られた時でも、行の喪失を最小限に抑えることができます。

重複可インデックスにすると処理速度が落ちるため、カラムのサイズを小さくしても、処理効率が必ずしも向上するとは限りません。

注意：

  • SQLデータベースを使用する場合には、この特性を変更しないでください。

  • Unicode型は、書式に指定した長さの2倍の値が表示されます。

順

インデックスセグメントのソート方向を定義します。以下の２つから選択します。

  • A=昇順 …… セグメントのソート方向は「昇順」です。

  • D=降順 …… セグメントのソート方向は「降順」です。

セグメント順序は、［動作環境］ダイアログで［照合順序ファイル］の指定があれば、これを利用することができます。これはセグメントが文字型カラムで定義されており、その［データベース定義］特性が「標準」に設定されている場合に利用できます。

Magic xpaは、一度に１つの照合順序指定のみサポートしています。照合順序の実行時にアクセスするテーブルは全て、同一のソート順で作成されていなければなりません。そうでない場合は、Magic xpa側でこれらのテーブルの正しい照合順序を認識できず、範囲/位置付の照会の結果が間違ったものになる場合があります。


データソース テーブルソース インデックス 特性

ホーム > リファレンスガイド > データソース > データソースタイプ > テーブルソース > ［インデックス］タブ > ［インデックス］特性

インデックス特性

［インデックス特性］には、インデックスの動作特性が定義されます。［インデックス特性］には以下のタブがあります。

［高度な設定］タブ

特性

内容

方向

以下のどちらかを指定します。

  • T=双方向 …… このデータソースを順方向および逆方向にソートできるようになります。通常は、双方向へのアクセスがサポートされないデータベースをオンラインタスクで使用する場合などに指定します。インデックスをバッチタスクで使用したり、データベースが双方向のインデックスをサポートしていない場合は、通常、片方向として定義します。データベースゲートウェイによっては、この特性を無視し、双方向のインデックスをデフォルトとしているものもあります。しかし、SQL系のデータベースでは、この情報を使用することでインデックスを双方向とするか、片方向とするかを指定することができます。

  • O=片方向 …… 順方向のアクセスのみを実行します。

注意：

データベースに応じてこの設定を切り替えると、処理速度が向上します。

範囲処理モード

  • Q=高速 …… 定義したインデックスは、インデックスを使用した高速範囲処理をサポートしています。

  • F=全走査 …… 範囲処理は順次操作方式で実行されます。この設定にすると、処理速度が大幅に低下します。

［SQL］タブ

特性

内容

データベース情報

SQLデータベースの情報をここに設定することで、データベース特有の情報をRDBMSに渡すことができます。この特性の使用はオプションです。

使用するフラグのほとんどは、SQL_flagname=Valueという構造を持ちます。

DBインデックス名

RDBMSに設定されるインデックスの名前です。通常、この名前はデータベースの命名規則に従う必要があります。

テーブルに新規のインデックスを追加すると、そのインデックスの名前が、この［DBインデックス名］特性にコピーされます。また、文字間の空白は自動的にアンダーバに置き換えられます。コピーされたインデックス名は変更できますが、空白にすることはできません。

例えば、Magic xpaのインデックス名「emp ind1」は、DBインデックス名「emp_ind1」になります。

インデックスタイプ

対象となるインデックスをデータベースに入れるか、Magic xpaだけで定義するかを指定します。

使用できる値は、「R=実キー」または「V=仮想キー」です。テーブルの新規作成時にそのインデックスをMagic xpaで作成する場合は、インデックスタイプを「R=実キー」に指定しなければなりません。

［インデックスタイプ］特性は、実行時には既存のテーブルに影響しません。例えば、エンドユーザがデータビューにアクセスする場合には、実インデックスを追加する必要があります。

特にRDBMSのソート機能が利用できる場合は、プログラム内でソート処理の代わりに仮想インデックスを使用することはなるべく避けてください。この機能を利用することでレコードを任意の順序で取り出せるため、Magic xpaではソート機能が不要になります。

ヒント

一部のRDBMSでは、クエリ処理の際にオプティマイザに対するヒントが指定できます。プログラマはSELECT文に連結する文字列をここに指定することができます。

対応するゲートウェイ：MS-SQL、Oracle

関連トピック： データベースオプティマイザの動作を制御するには

クラスタ化

MS-SQL Serverの場合、この特性を使用して、テーブルを作成する際に、そのテーブルのインデックスをクラスタ化インデックスとして作成するかどうかを指定できます。

レコードの挿入が多いテーブルの場合、クラスタ化インデックスによって処理速度を低下させることがあります。

クラスタ化インデックスのカラムでは、物理データは、そのインデックスの順にしたがって格納されます。このインデックスでは、順番に並んでいるデータのうち、複数のデータをまとめて取り出す時には処理効率は上がりますが、単一のデータを取り出す時には効率は下がります。

対応するゲートウェイ：MS-SQL

デフォルト値：No

関連トピック：

SQLに関する考慮事項


データソース テーブルソース 外部キー

ホーム > リファレンスガイド > データソース > データソースタイプ > テーブルソース > ［外部キー］タブ

外部キーテーブル

外部キーは、プライマリテーブルと別テーブルのレコード間の参照整合性を維持するために使用されるSQLデータベースのポインタです。

外部キーを持つ各レコードはプライマリキーによってレコードを示しており、［外部キー］テーブルはこれらのレコードの間の関係を定義します。［外部キー］テーブルは、［外部キー定義］テーブルと［外部キーセグメント］テーブルの２つのテーブルで構成されています。

プライマリキーと外部キーの関係を定義することで参照整合性が維持されます。RDBMSでは、テーブルの宣言または整合性の制限により参照制約を設定できます。

［外部キー］テーブルは、［外部キー定義］テーブルと［外部キーセグメント］テーブルの2つのテーブルを組み合わせたものです。

［外部キー定義］テーブルには、以下のカラムがあります。

カラム | 内容
外部キー番号（#） | 自動的に生成された連番が表示されます。この番号は、識別子として使用され、ユーザが変更することはできません。
名前 | Magic xpaでの外部キーの名前です。この名前を使用して、RDBMSにおいて外部キーを定義します。外部キーは１つまたは複数のカラムの集合で、他のテーブルのプライマリキーを使用して１つのテーブル内の行を他のテーブルのユニークな行に関連付けます。
参照テーブル | 参照するテーブル番号を指定します。直接入力できるほか、ズームして、［テーブル一覧］から選択することもできます。
プライマリキー | 参照されるテーブル用のプライマリキーの名前です。 プライマリキーは、１つまたは複数のカラムで構成されたユニークなキーで、アクセスする場合の主要なキーとして使用されます。 テーブルは、１つ以上のユニークなキーがあっても、プライマリキーは１つしかありません。
DBに作成 | 外部キーの設定をRDBMSにも適用するか否かを指定します。 この欄がチェックされていない場合、外部キーの設定はMagic xpaの内部にのみ適用されます。設定を行うテーブルと参照するテーブルが同じデータベースの場合、この欄はデフォルトでチェックされます。 データベースが異なる場合、この欄は無効となり、外部キーの設定はRDBMSに適用されません。

この制約は、テーブル内のカラムの値を無条件に参照するテーブルのカラムと同じになるように制限します。現在のANSI規約では、この制約をテーブルの作成時または修正時に行う必要があります。

［外部キー］セグメントテーブルには、以下のカラムがあります。

カラム | 内容
カラム番号（#） | 自動的に生成された連番が表示されます。この番号は、識別子として使用され、ユーザが変更することはできません。
カラム | 参照テーブルのインデックスに対応するカラムを指定します。この欄からズームして、［テーブル一覧］から選択します。 現在のテーブルの中の各セグメントは、参照テーブル中に対応するセグメントを持っている必要があります。
参照テーブルのカラム番号（#） | 参照テーブルのセグメントの連番が表示されます。
参照テーブルのカラム | 参照テーブルのインデックスセグメントのカラム名が表示されます。参照キーを設定すると、自動的に設定されます。他のインデックスと交換すると、新しいインデックスセグメントに上書きされます。

注意：

  • 外部キーが定義できるのは、プライマリキーが存在している場合のみです。プライマリキーは、［インデックス］テーブルで定義します。

  • XMLソースは、他のテーブルの外部キーの参照テーブルとして選択できます。

  • ［外部キー］テーブルには119行まで登録可能ですが、データソースとして利用できるかどうかは、使用するDBMSに依存します。

関連トピック：

外部キー選択テーブル


XMLソース

データソースがXMLソースの場合、以下のタブが表示されます。

［ビュー］タブ

［インデックス］タブ


XMLソース ビュー

ホーム > リファレンスガイド > データソース > データソースタイプ > XMLソース > ［ビュー］タブ

［ビュー］タブ

［ビュー］タブをクリックすると、XML構造の詳細が画面の下に表示されます。ここには、（XSDの階層に基づいた）複合／単一要素の全てを含んだパスと、単一要素の定義内容が含まれた要素テーブルが含まれています。

ビュー内の異なるタイプの要素を簡単に区別するために、いくつかのアイコンが使用されています。

ツリーノードは、最高256文字まで含めることができます。

［ビュー］タブには、以下のアイコンが表示されます。

単一要素

複合要素

単一要素の繰り返し

複合要素の繰り返し

ビュー内の単一要素

ビュー内の複合要素

ビュー内の単一要素の繰り返し

ビュー内の複合要素の繰り返し

［ビュー］タブで右クリックするとコンテキストメニューが表示されます。ここには、以下のようなオプションメニューが表示されています。

  • 特性 …… クリックすると［カラム特性］が表示されます。

  • ビューに含める …… ビューに要素を含める場合にこのオプションを選択します。このオプションを選択すると、要素のアイコンは、ビューに含められ使用できることを表す表示に切り替わります。

  • ビューから削除 …… カラムを［カラム］テーブルから削除することはできません。このオプションを選択し、カラムを表示しないようにすることができます。

  • 簡易非表示 …… クリックすると全ての単一要素が非表示になります。デフォルトでは、表示されません。

  • 簡易表示 …… クリックすると全ての単一要素が表示されます。

  • 全て展開 …… クリックするとノードツリーが展開表示されます。

  • 全て縮小 …… クリックするとノードツリーが縮小表示されます。

注意：

  • Magic xpaがビューを設定する場合、［DBMS］テーブル内で設定されるデフォルトが使用されます。この設定が、実際のデータと合っているかどうかを確認するために、書式などをチェックしてください。

  • 1つのBLOBだけがXMLビュー毎に利用できます。


XMLソース ビュー 単一要素テーブル

ホーム > リファレンスガイド > データソース > データソースタイプ > XMLソース > ［ビュー］タブ > 単一要素テーブル

単一要素テーブル

［単一要素］テーブルには、常に以下の２つのエントリが含まれます。

  • ノードID

  • 親ID

テーブルは、「前順走査」で表示されます。（すなわち、各複合要素を構成する単一要素は、下位の要素の前に一覧表示されます。）

［単一要素］テーブルには、以下のカラムがあります。

カラム | 内容
カラム番号（#） | 単一要素IDとして自動的に作成されます。
名前 | 単一要素の名前が表示されます。最高30までの文字が含まれます。開発者はこの名前を変更することができます。
モデル | 要素の書式を定義するための項目モデルを指定できます。ここからズームして［モデル一覧］を表示することで選択できます。
型 | Magic xpaのデータ型を指定します。Magic xpaは、XSDタイプをMagic xpaのデータ型に変換します。
書式 | Magic xpaのデータ書式を指定します。最高30までの文字を入力できます。

注意：

複合／単一要素の全てが［データ］テーブルに表示されますが、これらの要素を追加したり削除することはできません。


XMLソース ビュー 単一要素テーブル ノードID

ホーム > リファレンスガイド > データソース > データソースタイプ > XMLソース > ［ビュー］タブ > 単一要素テーブル > ノードID

ノードID

ノードIDには、レコードの連番が含まれます。XMLが読み込まれたり、タスク実行時にレコードが挿入された場合、ノードIDが内部で割り当てられます。

このカラムの型や書式は変更できません。

ノードIDをタスクのデータビューの一部として定義することができます。

ノードIDは、Magic xpa内部で使用されます。基本的に、データを管理するためにメモリ上に存在する乱数です。これらはXMLファイル内には保存されず、同一レコードであっても実行時間によっては異なる値になります。

関連トピック：

ノードID と親ID を更新するには


XMLソース ビュー 単一要素テーブル 親ID

ホーム > リファレンスガイド > データソース > データソースタイプ > XMLソース > ［ビュー］タブ > 単一要素テーブル > 親ID

親ID

親IDには、現在のレコードの親のノードIDが含まれます。

Magic xpaは、XMLファイルをフラットファイルに保存するため、ファイル内の各レコードには親IDの値が格納されています。この値は、階層を表します。

(親レコードを選ぶために、)登録モードでこの項目を更新することができます。

このカラムの型や書式を変更することはできません。

このカラムはタスクのデータビューの一部として定義できます。

データソースに新しいレコードを作成する時だけ、親レコードのノードIDの値にもとづいて親IDの値を修正することができます。

関連トピック：

ノードID と親ID を更新するには


XMLソース インデックス

ホーム > リファレンスガイド > データソース > データソースタイプ > XMLソース > ［インデックス］タブ

［インデックス］タブ

［インデックス］タブをクリックすると、フラットビューインデックスが表示されます。

「ノード依存」インデックスが自動的作成されます。

  • このインデックスは削除／修正／移動ができません。

  • このインデックスはユニークです。


データソース 特性

ホーム > リファレンスガイド > データソース > データソース特性

データソース特性

［データソース特性］ダイアログには、データについての追加情報が含まれています。

［データソース特性］には、以下の３つのタブ（［XML］タブは、XMLデータでのみ表示されます）で構成されています。

［高度な設定］タブ

［SQL］タブ

［XML］タブ


データソース 特性 高度な設定

ホーム > リファレンスガイド > データソース > データソース特性 > ［高度な設定］タブ

［高度な設定］タブ

［高度な設定］タブには、以下の特性があります。

特性

内容

アクセスキー

［アクセスキー］特性には、DBMSのテーブルセキュリティ機構で使用されるアクセスキーを指定します。この特性値は、テーブルがオープンされる度にデータベースに送られます。外部プログラムや他のMagicアプリケーションからテーブルにアクセスしようとする場合は、同じアクセスキーをDBMSに渡す必要があります。指定されない場合、データへのアクセスは拒否されます。

この機能は、アクセスするDBMSのサポート状況に依存します。

注意：

アクセスキーでは、シークレット名を使用するようにしてください。シークレット名を使用することで、アクセスキーの内容を参照できる人をシステム管理者に限定することができます。

テーブルの暗号化

［テーブル暗号化］特性は、［アクセスキー］特性が定義されていない場合は無効化されています。［アクセスキー］特性が定義されている場合、以下のように動作します。

  • Yes …… アクセスキーを暗号化シードとして使用して、そのテーブルを暗号化することができます。

  • No …… テーブルは暗号化されません。

注意：

［アクセスキー］または［テーブル暗号化］の値を変更すると、変更を確認するメッセージが表示されます。

関連トピック： テーブルのデータを暗号化するには

キャッシュ範囲

ここでは、テーブルで使用するキャッシュ範囲を指定します。

この特性の有効な値は、以下の通りです。

  • P=位置 …… キャッシュはフェッチしたレコードの位置に関する情報を保持します。この設定は、テーブルをメインソースとして使用する場合にのみ実行されます。後方スクロールを行うと、レコードの物理的な位置が読み込まれ、データが再びフェッチされます。

  • D=位置とデータ …… 位置のほかに、レコードの実際のデータがキャッシュされます。事前にフェッチされているデータを読み込む場合には、キャッシュにすでに保存されている値が表示されます。

  • N=なし …… キャッシュは行われません。レコードの再読み込が行われる度に、データベースからの読み込みが行われます。

注意：

［キャッシュ範囲］を「No」に設定すると、レコードのマルチマーク機能が無効になります。

常駐

常駐パラメータを使用すると、テーブルを常駐テーブルとして定義し、テーブルをロードする時期を指定することができます。

この特性の有効な値は、以下の通りです。

  • N=なし ……（デフォルト） テーブルは常駐されません。タスクが終了すると、テーブルもクローズされます。

  • I=即時 …… テーブルは常駐テーブルになります。アプリケーションが起動されると同時にテーブルがロードされ、アプリケーションが終了するまでオープンされたままになります。アプリケーションが開始されると全てのユーザによって使用されるテーブルは、即時に読み込まれなければなりません。

  • D=利用時 …… テーブルは常駐テーブルになります。プログラムがそのテーブルをアクセスした時点でオープンされ、アプリケーションが終了するまでオープンされたままになります。頻繁に使用するが、アプリケーションの特定のプログラムでのみ利用するテーブルでは、利用時に読み込むようにします。

  • B=クライアントで即時 …… テーブルはレジデント・テーブルで、リッチクライアントから直接読み込まれ、クライアント側に保存されます。この設定によりリンクテーブルの再計算処理がローカルPCで実行されます。リンクが再評価されると、テーブルはクライアント側に読み込まれます。

Magic xpaの常駐テーブル機能はMagicキャッシュと同じ前提に基づいています。つまり、アプリケーション内の特定のデータが何度も使用されます。常駐テーブル機能は、Magicプログラムのディスク入出力を削減します。クライアント/サーバ環境の場合はネットワークのトラフィックを軽減し、システムのパフォーマンスを向上させる効果が期待されます。

テーブルの事前読込を行うことは、そのデータがクライアント側のメモリに読み込まれて保存されることを意味します。そして、すべてのアクセスはメモリ内に読み込まれたデータを通して行われます。

実行中のタスクの［データソース特性］ダイアログで指定されたパラメータに従い、データはアプリケーションまたはテーブルをオープンすると、即座に読み込まれます。常駐テーブルは、アプリケーションをクローズすると、即座に消去されます。

テーブルをクライアントのメモリーに読み込ませるとクライアントの空きメモリを減らすため、小さなテーブルで常駐オプションを使用することを推奨します。

注意：

常駐テーブルは読み取り専用であり、メモリに保存されている間は修正できません。

関連トピック：

データベーステーブルから一度にデータを取り込むには

読込専用データのアクセスを最小化するには

更新レコードの識別

データベースを更新する前に、別のユーザが修正した行を識別できるようにするため、SQLテーブルに対するWhere句の作成方法を指定できます。

この特性の有効な値は、以下の通りです。

  • P=位置

  • S=位置と選択項目

  • U=位置と更新項目

遅延トランザクションを使用しているタスクにのみ適用されます。


データソース 特性 SQL

ホーム > リファレンスガイド > データソース > データソース特性 > ［SQL］タブ

［SQL］タブ

注意：

データフィールド名は、基礎となるSQLデータベースの原則に従う必要があります。

［SQL］タブには、以下の特性があります。

特性

内容

データベース情報

このパラメータを使用して、Magic xpaがRDBMSに渡すことのできるデータベース固有の情報を指定します。このパラメータはオプションです。

オーナ名

テーブルまたはビューの所有者を指定します。論理名を使用することができます。

位置

Magic xpaは、DBMSの種類によってデフォルトで使用できる位置インデックスが決まっています。Oracleの場合、ROWIDカラムが使用されます。これ以外のRDBMSでは、最小の重複不可インデックスが使用されます。そのほか、重複不可インデックス以外のインデックスを指定することもできます。

この特性の有効な値は、以下の通りです。

  • D=デフォルト …… Magic xpa独自のデフォルト値をテーブルの位置インデックスとして使用します。

  • R=ROWID …… Oracle のテーブルには、ROWID カラムを使用します。

  • U=重複不可インデックス …… 他のRDBMSには、最も短い重複不可インデックスを使用します。このインデックスは、他のインデックスを位置キーとして使用することで上書きできます。

注意：

「重複不可インデックス」を指定した場合、性能を改善するためにデータベースの実際のインデックスを使用してください。

インデックス

［位置］特性で 「U=重複不可インデックス」を指定した場合、ここで「重複不可インデックス」を位置として指定します。

デフォルト位置

［位置］パラメータで「D=デフォルト」を指定した場合、「デフォルト位置インデックス」として使用するインデックスを指定します。この特性は読み取り専用です。

Magic xpaは最小のセグメント（最も短いということではありません）を使用して自動的にユニークな識別子を選択します。

テーブルの存在チェック

この設定により、実行時にアクセスするSQLテーブルの存在をチェックし、存在しない場合にSQLテーブルを作成するかを指定します。

この特性の有効な値は、以下の通りです。

  • Yes …… データベースにテーブルが作成されます。また、アクセスするテーブル全ての存在がチェックされます。このチェックにより処理速度が低下する可能性があることに注意してください。

  • No …… アクセス前にテーブルの存在がチェックされません。テーブルが存在しない場合、RDBMSからエラーが出力されます。実行モードでは、処理速度を高めるために「No」に設定してください。

  • D=データベースに依存 …… 使用するデータベースの［データベース特性］に依存します。［データベース特性］の［テーブルの存在チェック］特性が有効になります。

テーブルのタイプ

テーブルタイプは「T=テーブル」または「V=ビュー」のいずれかになります。

  • T=テーブル …… ユーザがDBテーブルを作成できるようになります。

  • V=ビュー …… ビュー（仮想テーブル）を作成できるようになります。ビューはMagic xpaで作成、削除、または変更できないため、DbDel とDbCopy関数が無効になります。ビューを作成する場合、位置キーとして重複不可インデックスを定義する必要があります。

ヒント

Oracle、MS-SQL ServerなどのRDBMSでは、照会処理にオプティマイザを指定することができます。ここには、SELECT文に連結する文字列が指定できます。

  • Yes …… ［ヒント］特性が有効になります。

  • No …… ［ヒント］特性が無効になります。

Magic xpaは、入力された文字列をチェックしません。開発者は、構文が正しいかどうかをあらかじめ確認する必要があります。ヒントは特殊な場合にのみ使用することをお勧めします。

この特性が「Yes」に設定され右側の［ヒント］特性が空白の場合は、［データベース］特性の［ヒント］特性が継承されます。

対応するゲートウェイ：MS-SQL

関連トピック： データベースオプティマイザの動作を制御するには

カーソル

MS-SQL Server でのみ有効です。

MS-SQL Serverゲートウェイの場合、内部DBコマンドとカーソルのどちらでも指定できます。DBコマンドを使用する場合は、各結果セットに対する個別の接続が必要になります。結果セットが大きいほど、処理速度は向上します。

この特性の有効な値は、以下の通りです。

  • Yes …… テーブル上のカーソルが使用できます。

  • No …… テーブル上のカーソルが使用できません。代わりにDBコマンドを使用します。

  • D=デフォルト …… Magic xpaは、以下のことを考慮してカーソルかDBコマンドを使用します。

  • MS-SQL Serverテーブルがメインソースとして定義されている場合は、Magic xpaはカーソルを使用します。

  • MS-SQL Serverテーブルがリンクテーブルとして使用されている場合は、Magic xpaはDBコマンドを使用します。

配列サイズ

いくつかのMagic xpaのSQLデータベースゲートウェイは、配列処理をサポートしています。データベースからレコードをフェッチする場合、ゲートウェイは１度に１レコードずつフェッチするのではなく、レコードをまとめてフェッチすることによってネットワークのトラフィックを減らします。配列サイズは、一回のフェッチ処理でデータベースから取ってくることのできるレコード数です。データは、Magicエンジン側の配列として保存されます。

デフォルトでは、配列のサイズは「0」ですが、Magic xpaは独自のデフォルトサイズを使用しています。

このサイズは変更ができます。大規模なテーブルをスキャンする場合、配列のサイズを増やすと処理速度が向上します。ただし、Magic xpaのデフォルト値を使用することをお勧めします。この値は、テーブルとあらかじめ定義されたボリュームデータサイズのレコード長を考慮します。

テーブル内の配列のサイズを変更すると、［データベース特性］の設定が上書きされます。

  • Oracleのデフォルトは、1テーブル当たりのレコード長が1200として計算されます。

  • MSSQLのデフォルトは、1テーブル当たりのレコード長が4096として計算されます。

ダイアログボックスの左下の隅のに表示される数は、データソースのレコード長です。

オンラインとバッチタスクに対する影響

  • Oracleデータベースで動作する場合、配列サイズの変更はオンラインとバッチタスクで影響します。

  • MS-SQLデータベースで動作する場合、エンジンがデフォルトのカーソルに設定されたバッチタスクに対するKeySetカーソルをエンジンが使用する場合のみ影響します。これは、MSSQLのデフォルトで、動的なカーソルが使用されるため、オンラインタスクには影響しません。

開発者レベルのゲートウェイログを参照することで、フェッチ処理の違いを確認することができます。データベースからの実際のフェッチは、［配列サイズ］特性によって行われます。

ログに、実際のフェッチ処理の記録を確認します。そして、この行は、データベースから取り出されるレコード数が配列サイズの計算値（デフォルトの「0」の場合、上記で説明したような計算方法か、に開発者によって定義された値)に基づいていることが示されています。

対応するゲートウェイ：MS-SQL

関連トピック： データベースのアクセス頻度を減らすには


データソース 特性 XML

ホーム > リファレンスガイド > データソース > データソース特性 > ［XML］タブ

［XML］タブ

データソースがXMLの場合のみ［XML］タブが表示されます。

［XML］タブには、以下の特性があります。

特性

内容

XSDスキーマファイル

XSDファイルの名前がパス付きで表示されます。最高260までの文字を含むことができます。

ここは、表示のみで入力はできませんが、表示されたファイル名はコピーして他の場所に貼り付けることができます。

注意：

同じ構成のスキーマでファイル名や位置が異なって設定されているデータソースを1つのプログラム内に定義させることはできません。 同じ構成のスキーマは同じ名前、同じパス上で定義取得するようにしてください。

ルート要素名

選択されたルート要素の名前が表示されます。Magic xpaのデータソース定義は、1つのルート要素をサポートします。定義取得の際、要素が複数のルートを持っている場合、使用するルート要素の選択ダイアログが表示されます。

ここには、最高260までの文字を含めることができます。ここは、表示のみで入力はできませんが、表示されたファイル名はコピーして他の場所に貼り付けることができます。

ルート要素名には、ネームスペースが付きません(すなわちローカル名)です。

ビューのメイン要素

ビューの中の要素を含めることにより、要素が利用可能になります。

ビューの中には、以下を含めることができます。

  • まだ含まれない要素のみ。

  • 1つだけの結合／繰り返し要素

  • 複合／繰り返し要素がビューに含まれた後でのみ、単一要素または属性を含めることができます。

ビューに含まれている複合／繰り返し要素は、ビューのメイン要素です。

ビューのメイン要素を含めた場合、その配下の単一要素/属性のすべてが自動的に含まれることになります。

ビューのメイン要素や繰り返さない降順の複合要素は、「Element Of/Under the View」を名付けられます。

（ビューのメイン要素の）上位の要素や、反復可能でない降順の合成要素は、「Elements Above the View」と呼ばれます。ビュー上の要素を含む場合、カラム名が先頭にスラッシュ(/)が付いた状態で前置されます。

親の位置付インデックス

この特性によって、XMLビューのインデックスの1つを選択することができます。このインデックスは、実行時に親のレコードを位置付けるために使用されます。デフォルトでは、親IDが使用されます。

設定されたインデックスが削除された場合、この特性の値はリセット（0）されます。


常駐テーブルの変更

ホーム > リファレンスガイド > データソース > 常駐テーブルの変更

常駐テーブルの修正

常駐テーブルは読み込み専用で、メモリーで保存されている間は修正することができません。（データベース内の)物理テーブルが修正されると、DbReload関数を使用してテーブルを再読み込みすることができます。

このテーブルを修正するには、［常駐］特性の設定のみが異なる［データ］リポジトリ上の複製エントリを作成する必要があります。

このテーブルを修正する必要がある場合、複製エントリを使用して物理テーブルにアクセスして、テーブルを修正できるプログラムを作成しなければなりません。

注意：

テーブルが各クライアントのメモリ上で読み込まれるため、アプリケーションが各クライアントで再ロードされるか、アプリケーションの実行中にテーブルが手動で再読み込みされるまで、物理テーブルへの修正内容は読み込まれるテーブルには反映されません。

アプリケーション実行中での常駐テーブルの再読み込み

DbReload関数を使用することで、アプリケーション実行中に常駐テーブルを再読み込みすることができます。

注意：

このような処理がアプリケーションでどこでも有効になるアプリケーションイベントを定義しておくことを推奨します。


データソース 変換

ホーム > リファレンスガイド > データソース > データの変換

データの変換

［データ］リポジトリを終了したり、別のデータの行に移動した場合、データのカラムやインデックス、［データソース特性］の定義内容を変更していると、自動的に変換処理が起動されます。

以下の２つのケースでＭａｇｉｃはデータソースの変換処理を行います。

  • ［カラム特性］を直接変更したり、カラムやインデックス、外部キーを追加したり変更した場合。この場合、Magic xpaは自動的に変換用のダイアログボックスを表示します。

  • データソースのカラムが使用している項目モデルの特性を変更した場合。この場合、変換用のダイアログボックスは自動的に表示されません。開発者がデータソースを指定し［オプション］メニューの［データソースの変換］を選択することで変換処理を行うことができます。

注意：

インデックスを「重複可」から「重複不可」に変更した場合、重複したインデックス条件と一致する行は変換処理によって削除されます。

Magic xpaは、テーブル行の処理を終了したり［データ］リポジトリを終了するまで、修正の前後のテーブル構成を保持します。変換処理を中止すると、DBMSテーブルの物理的構成と論理的構成に不整合が生じることがあります。この場合、Magic xpaは自動調整することができず、次にテーブルにアクセスした場合エラーが発生する場合があります。

変換処理は、以下の手順で実行されます。

  1. 変換処理の［確認］ダイアログが開きます。［はい］を選択すると、テーブルが自動的に変換されます。処理を中止した場合には変換は行われず、修正を手作業で戻す必要があります。

  2. 変換処理が確定されると、使用するデータベースに応じてバックアップ処理の［確認］ダイアログが開きます。元のDBMSテーブルのコピーを修正前のままで保持したい場合は、［はい］を選択します。この処理では、BCK ファイル(例えばDMBCK001.DAT）がカレントディレクトリに作成されます。ただし、カレントディレクトリには十分なディスクスペースが必要です。

  3. 変換処理が確定されると、［データソース変換］ダイアログが表示されます。このダイアログでは、DBMSテーブルを以前に定義したインデックスに合わせて再配置するように指定できます。インデックス「0」の場合、行が物理順序に配列されます。テーブルをあるインデックスに合わせて配列したい場合、インデックステーブルの番号を入力するか、［インデックス一覧］にズームしてインデックスを選択します。

注意：

［インデックス一覧］には、変更前のインデックスのみ表示され、新たに定義されたインデックスは利用できません。テーブルを頻繁に使用するインデックスに合わせて配列することで、テーブルの検索や入出力処理でのパフォーマンスの向上が期待できます。

  4. ［データソース変換］ダイアログで「OK」を選択すると、変換処理が実行されます。変換ウィンドウが現れ、変換された行数が表示されます。ウィンドウが閉じると、テーブルの変換が完了したことになります。

  5. 「キャンセル」を選択するとダイアログボックスは閉じます。Ｍａｇｉｃはモデルが変更されていることを記憶しており、再度［オプション／データソースの変換］が選択されたとき、同じダイアログが表示されます。

注意：

  • フォーム内のコントロールの書式を必ず修正し、カラムの変更内容との整合をとるようにしてください。Magic xpaは、［データ］リポジトリを変更した場合にフォームに表示されるコントロールの書式は変更しません。クロスリファレンスユーティリティ（Ctrl+F）を使用し、変更したいコントロールを検索することができます。

  • 可能であれば、Ｍａｇｉｃはデータソース変換に基本的なデータベースユーティリティを使用します。例えば、ＳＱＬ系のデータベースを使用している場合、ＳＱＬ　ＡＬＴＥＲを使用します（SQLに関する考慮事項を参照してください）。

関連トピック：

データソース特性


データベースのメタデータ

データベースのメタデータは、［データ］リポジトリで定義／管理されます。

使用するデータベースの［開発モードでのテーブル変換］特性が有効になっている場合、［データ］リポジトリの全ての修正は、データベースと同期を取って反映されます。

Magic xpaは、データベースの構造を最適化することはありません。また、データベース特性を調整することもありません。これらの処理は、データベース管理者が外部ツールを使用して行う必要があります。Magic xpaが作成した新規テーブルは、一般的なフォームで作成されています。このため、運用環境に最適になるようにカスタマイズする必要があります。

［データ］リポジトリに定義されたているテーブルは、Magicプログラムによって認識できる論理定義です。データベースでは、テーブルはテーブルまたはビューとして表示することができます。CREATE TABLEステートメントには、Magic xpaが管理できるデータソース特性以外の設定が含まれています。このステートメントを使用して、Magic xpaで定義されているテーブルを定義してみることも最適化には有効です。


データソースの削除

データソース(テーブルとXMLソース)を削除しようとすると、DBMSから自動的に削除されません。この場合は、確認のためのメッセージボックスが表示されます。

メッセージボックスは、［開発モードでのテーブル変換］特性の設定内容によって異なります。

  1. ［開発モードでのテーブル変換］特性が「Yes」と設定されている場合、データソースを削除しようとすると、物理データ（ファイル）も削除するかどうかを確認するメッセージボックスが表示されます。この場合の操作によって、以下のように実行されます。

  • いいえ …… ［データ］リポジトリ内でのみ削除が実行されます。

  • はい …… ［データ］リポジトリからエントリが削除されるとともに、物理データも削除されます。Magic xpaがDBMSからデータソースを削除できない場合、エラーメッセージが表示され、手動で削除する必要になります。

  • キャンセル …… 削除処理が中断され、データソースはどちらも削除されません。

例外

メモリテーブルとXMLデータソースは、［データ］リポジトリからの削除のみになります。従って、メモリテーブルやXMLデータソースを削除する場合、確認ダイアログボックスは表示されません。

  2. ［開発モードでのテーブル変換］特性が「No」と設定されている場合、データソースを削除しようとすると、データソースの削除確認のメッセージボックスが表示されます。この場合の操作によって、以下のように実行されます。

  • OK …… データソースが［データ］リポジトリから削除されます。

  • キャンセル …… データソースは［データ］リポジトリから削除されません。


プログラム

ここでは、プログラム作成に関する情報が含まれています。

プログラムは、以下の手順で作成します。

  • ［プログラム］リポジトリに必要な設定を行ないます。（メインプログラムを含みます。）

  • ［タスク特性］を定義します。

  • ［タスク］エディタを使用して、データビューやハンドラ、処理コマンド、フォームを定義します。［タスク］エディタは、［データビュー］エディタと［ロジック］エディタ、［フォーム］エディタで構成されています。また、［データソース］テーブルを開くことで、プログラムが使用しているデータソースの一覧を参照することができます。

  • ［範囲/位置付］ウィンドウでデータビューの範囲を定義します。

  • ［ソート］ウィンドウでデータのソート処理を定義します。

  • タスクが読み書きできる入出力ファイルを定義します。

注意：

タスクとプログラムには以下の違いがあります。

  • タスクは、プログラムを構成するための基本的なユニットです。

  • プログラムはメインタスクとサブタスクで構成されています。

タスクは、26階層まで定義できます。

関連トピック：

タスク (Mastering Magic xpa)


プログラムリポジトリ

［プログラム］リポジトリには、プロジェクト内の各プログラムが定義されています。

タスクやそのオブジェクトの1つ（フォームなど）を編集している時に［編集］メニューから［キャンセル］（Ctrl+F2）を選択すると、修正内容を取り消すことができます。タスクエディタでの編集中に［キャンセル］を選択した場合、そのセッション中に行った全ての変更は取り消され、プログラムテーブルに戻ります。［フォーム］エディタでの編集中に［キャンセル］を選択すると、タスクエディタに戻ります。

参考：

/* ... */ という書式でコメントを定義した場合、［プログラム一覧］の［説明］欄にコメントが表示されます。また、サブタスクにコメントを定義した場合、［サブタスク一覧］の［説明］欄にコメントが表示されます。

［プログラム］リポジトリには、以下のカラムがあります。

特性

内容

# (プログラム識別子）

ここには、プログラムIDが入ります。この番号は自動的に生成される連番で、変更することができません。

［プログラム］リポジトリ内でプログラムを移動したり、追加や削除を行なった場合、プログラム番号を自動的に割当て直され、プロジェクト全体にわたって更新されます。例えば、メニューにプログラム番号を指定した場合、［プログラム］リポジトリが修正されると、プログラム番号の変更が反映され、関連付けが維持されます。

式の中でプログラムIDを使用する場合、「PROG」リテラルを使用してプログラム識別子を明示的に指定する必要があります。つまり、プログラム番号nnを、「'nn'PROG」のように指定します。例えば、［式］エディタ内で「'3'PROG」をプログラム式として入力したとします。その後、新しいプログラムを［プログラム］リポジトリ内の３番目に位置するプログラムの直前に挿入し、結果として元からあったプログラムが#3から#4に変更されると、Magic xpaは自動的に式定義の「'3'PROG」を「'4'PROG」に変更します。

注意：

クロスリファレンスユーティリティを使用することで、PROGリテラルを使用しているプログラムを検索することができます。

名前

プログラムの名前です。

プログラム名には、任意の名前を入力することができます。

プログラム名は、ルートタスクのタスク名としても使用され、［ナビゲータ］ペインのルートタスク名、［タスク特性］ダイアログの［タスク名］特性に表示されます。

これらは全て関連しており、いずれかを変更すると、ほかの箇所も変更されます。

フォルダ

同じフォルダにいくつかのプログラムをグループ分けすることができます。ここから、格納したいフォルダを選択することができます。

注意：

このカラムでは、既存のフォルダを選択するだけが可能です。

プログラムが置かれるフォルダの名前が表示されます。コンボボックスをクリックしてフォルダを変更することができます。

［ナビゲータ］ペインの［プログラム］アイコンにカーソルを置き、F4を押下することによってフォルダを作成することができます。フォルダを指定することで、プログラムをグループ分けすることができます。

詳細は、フォルダを参照してください。

公開名

インターネットリクエスタや［コールリモート］処理コマンドなどによってプログラムを呼び出す場合に使用されるプログラムの公開名を指定します。同一のプロジェクト内に、同じ公開名を指定しないでください。

注意：

DBCSや特殊文字を使用しないことを推奨します。

外部

ここでは、プログラムの呼出し制限を設定します。

このカラムのチェックボックスがチェックされていない場合、プログラムに公開名が設定されていても外部から呼び出すことができません。

チェックボックスがチェックされている場合、外部から呼び出すことができます。

このチェックボックスは、［公開名］カラムにプログラムの公開名が入力されている場合のみ有効です。

［外部］カラムがチェックされたプログラムは、以下の方法で呼び出すことができます。

  • インターネットリクエスタ

  • ［コールリモート］処理コマンド

  • コマンドラインリクエスタ

  • SOAPリクエスタ

  • COMメソッドによる呼び出し

  • EJBメソッドによる呼び出し

  • リッチクライアントプログラムの起動

オフライン

この特性は、プログラムがサーバ上で実行するかどうかを示します。ここをチェックすると、［タスク特性］の［オフライン］特性もチェックされます。

関連トピック： ローカル（オフライン）ストレージ

最終更新日

ここには、プログラムが最後に変更された日付が自動的に入ります。変更することはできません。

時刻

ここには、プログラムが最後に変更された時刻が自動的に入ります。変更することはできません。

関連トピック：

メインプログラム

タスク特性

タスクエディタ

範囲ウィンドウ

入出力ファイル


メインプログラム

メインプログラムは、プログラムのディスパッチを主目的としたプログラムです。他のプログラムは、メインプログラムから起動されます。このため、プロジェクトが実行している間はメインプログラムは常にアクティブになっています。

メインプログラムは、プロジェクトを開いた時に最初に起動されるプログラムであると同時に、最後に閉じるプログラムでもあります。

メインプログラムで定義されたリソースは、プロジェクト内でグローバルな扱いとなります。

関連トピック：

メインプログラムのアクセスと使用

実行モードでの特徴と動作

開発モードでの特徴と動作

メインプログラムの動作

メインプログラムのリポジトリ入力

メインプログラムとコンポーネント

オフラインアプリケーショのフロー

メインプログラム (Mastering Magic xpa)


メインプログラム アクセスと使用

ホーム > リファレンスガイド > プログラム > メインプログラム > メインプログラムのアクセスと使用

メインプログラムのアクセスと使用

メインプログラムは、以下の場合に自動的に実行されます。

  • ユーザがプロジェクトを開発モードで開いた後に実行モードに切り替えた場合

  • 開発モードでプログラムを実行している場合。［プログラム］リポジトリから［プログラム実行］アクション（F7）を実行したり、［テーブル］リポジトリから［APG］イベント（Ctrl+G）を使用することで実行されます。どちらの場合でも、メインプログラムは、現在のプログラムの前に実行されます。

メインプログラムは、以下の目的で使用されます。

  • プロジェクト全体の初期化と終了時の処理のために、メインプログラムの［タスク前］と［タスク後］をそれぞれ利用します。

  • プロジェクト全体のグローバル変数として、メインプログラムのレコードメインで定義する変数項目を使用します。

  • プロジェクト全体で有効な、グローバルな［イベント］ロジックユニットは、メインプログラムの［イベント］ロジックユニットとして定義します。

  • プロジェクト全体で有効な、グローバルなユーザ定義イベントは、メインプログラムでユーザ定義イベントとして定義します。


メインプログラム 開発モード

ホーム > リファレンスガイド > プログラム > メインプログラム > 開発モードでの特徴と動作

開発モードでの特徴と動作

メインプログラムは常に、［プログラム］リポジトリの最初のプログラムとして表示されます。メインプログラムは、新しいプロジェクが作成されると自動的に生成され、デフォルト名は「メインプログラム」となります。

メインプログラムの削除や複写、上書きはできません。さらに、メインプログラムを実行することはできません。［メインプログラム］行にカーソルが位置付けされている場合、実行オプションは無効になります。

タスク特性

メインプログラムの［タスク特性］ダイアログは、以下の設定になっています。

  • タスクタイプ …… 「B=バッチ」に固定されています。

  • 初期モード …… 「Q=照会」に固定されています。

  • タスク終了条件 …… 「No」に設定されています。開発者は式を設定することができます。

  • イベント可 …… ［No］に固定されています。

  • メインフォーム …… 「0」に設定されています。開発者は式を設定することができます。

  • ［データ］タブ …… 全て無効化されています。［ロック方式］特性は、「N=なし」に固定されています。

  • ［オプション］タブ …… 全て無効化されています。

  • ［拡張］タブ …… 全て無効化されています。

[フォーム]エディタ

プログラムは、デフォルトでクラス「0」のフォームをもっています。フォームは追加できますが、このフォームにはシステムメニューがありません。「0」より大きい番号のクラスのフォームは、全てのプロジェクト内のプログラムでデータ出力用として利用できます。

［入出力ファイル］テーブル

メインプログラムには入出力はありません。したがって、［入出力ファイル］テーブルは無効になっています。

［ロジック］エディタ

メインプログラムは、[タスク前]と[タスク後]に処理コマンドを定義できます。[レコード前]と[レコード後]はサポートされていません。

ユーザ定義のロジックを設定することで、プロジェクト全体で利用することができます。

  • タスク前 ……メインプログラムの[タスク前]は、プロジェクト全体の前処理段階として機能します。このロジックユニットは、アプリケーションの初期化段階で実行する処理を定義するために使用します。
    [項目更新]処理コマンドを使用してメインプログラムのグローバル変数を初期化したり、[コール]処理コマンドやその他の関連する処理コマンドを使用して初期化用のサブプログラムを呼び出したりすることができます。

  • タスク後 …… メインプログラムの[タスク前]と同様、[タスク後]はプロジェクト全体の後処理段階とみなすことができます。このロジックユニットは、アプリケーションの終了段階で実行する処理を定義するために使用できます。

データ項目の可用性

メインプログラムで定義されたデータ項目は、プロジェクト内の全てのプログラムで使用できます。[項目一覧]では、他のプログラムのデータ項目より前に表示されます。データ項目のシンボル名（識別名）名は、3桁の文字で表されます。データ項目を選択すると、そのシンボル名が自動的に設定されます。

バージョン管理

メインプログラムのデータ項目はプロジェクト全体で使用されるので、バージョン管理はそれを独立したエンティティとみなし、共有アクセスを許可します。メインプログラムのリソースの修正は、データソースとプログラムの場合がそうであるように排他的にしか行えません。

メインプログラムを使用するオブジェクトが編集されている場合は、メインプログラムはチェックインできません。

チェックインしようとすると、「オブジェクトはすでにチェックアウトされています.」というエラーメッセージが表示されます。

［コール］処理コマンド

［コール］処理コマンドでメインプログラムを呼び出すことはできません。


メインプログラム 動作

ホーム > リファレンスガイド > プログラム > メインプログラム > 実行モードでの特徴と動作

実行モードでの特徴と動作

データビュー

他のプログラムと異なり、メインプログラムにはメインソースを指定できません。メインプログラムには、実行の開始時に初期化され、プロジェクト全体で使用できるグローバルな変数項目が定義できます。

プロジェクトが実行されると同時に特定のテーブルをオープンする場合は、メインプログラム内でそのテーブルをオープンするように宣言します。またメインプログラム内で、特定のレコードを［リンク］コマンドで読み込むと、プロジェクト全体で使用することができます。

メインプログラム内でリンク定義によって取り出されたレコードは更新できません。更新処理を実行しても無視されます。また、更新処理に関するタスク特性もありません。メインプログラムは、レコードロックコマンドやトランザクション管理コマンドは実行しません。ただし、テーブルロックはメインプログラムによってオープンされるテーブルには使用できます。

フロー

メインプログラムは、レコードサイクルが１回実行されるバッチタスクとして実行されます。この動作は、［タスク終了条件］で制御することはできません。プロジェクトが実行されると、メインプログラムのデータソースがオープンされ、［タスク前］が実行されます。その後、メインプログラムの変数項目が初期化され、リンクレコードが読み込まれます。

プロジェクトを終了する場合、メインプログラムの［タスク後］がプロジェクト終了の直前に実行されます。メインプログラムのデータソースもクローズされます。

サブタスク

メインプログラムは、通常のタスクとして実行されるサブタスクを持つことができます。これらのサブタスクには、メインソースと、通常のタスクと同様の機能を持たせることができます。ただし、サブタスク内で定義された変数項目はグローバル変数ではありません。グローバル変数は、メインプログラムのルートタスクに定義された変数だけになります。

再計算

メインプログラム中の変数は、他のプログラムと同様に、親タスクで定義された変数をサブタスクから更新されても再計算されないという規則に従います。

コール式

メインプログラムは、［コールプログラム］処理 コマンドで明示的に呼び出すことはできません。［コール式］処理コマンドで、プログラム番号が「'1'PROG」と指定された場合、エラーメッセージが表示され実行されません。

終了条件

メインプログラムの［タスク終了条件］が「True」と評価されると、プロジェクト全体の実行が停止します。


コンポーネントリポジトリ メインプログラム

ホーム > リファレンスガイド > プログラム > メインプログラム > メインプログラムとコンポーネント

メインプログラムとコンポーネント

メインプログラムは、［コール］処理コマンドでは実行できないので、コンポーネントの一部として出力することはできません。

プログラム、テーブル、イベントなど、別のコンポーネントのオブジェクトを使用する場合は、まずそのオブジェクトが定義されているプロジェクトのメインプログラムが実行されます。つまり、最初に別のMagicコンポーネントのオブジェクトを使用する時には、そのメインプログラムの［タスク前］が実行され、その変数が初期化されます。

ただし、コンポーネントをすぐに使用する場合（即時有効=Yes）、つまり、 コンポーネントを実際に使用する時ではなく、プロジェクトを開いた時にコンポーネントを読み込む場合は例外です。このようなコンポーネントの場合は、読み込まれるとすぐにコンポーネントのメインプログラムが実行されます。

実行タスク用スタックは、コンポーネントのメインプログラムの実行による影響を受けません。このコンポーネントのプログラムは、メインプログラムではなく、親プログラムによって呼び出されます。 コンポーネントのメインプログラムは、プロジェクトのメインプログラムの直後、その他の全てのプログラムの前に実行タスク用スタックに挿入されます。

Magicコンポーネントのプログラムを実行すると、コンポーネントアプリケーションのメインプログラムは、Magic xpaの実行タスクツリーの一部として動作します。しかし、Levelや、StateまたはEOFのような関数を使用してタスクのリソースや情報を参照する場合、コンポーネントのメインプログラムはタスクの世代対象には入りません。

例：タスクAがコンポーネントのタスクBを呼び出す場合、関数 Level(1)はタスクAを参照し、コンポーネントのメインプログラムは参照しません。

メインプログラムの［タスク後］が実行される前にプロジェクトを終了すると、［タスク後］は、［タスク前］の実行と逆の順序で実行されます。


メインプログラム リポジトリ入力

ホーム > リファレンスガイド > プログラム > メインプログラム > メインプログラムのリポジトリ入力

メインプログラムのリポジトリ入力

メインプログラムが格納されているファイルをリポジトリ入力すると、現在のメインプログラムを置き換えるかどうかを確認するメッセージが表示されます。「Yes」を選択すると、現在のメインプログラムがリポジトリ入力したファイル内のメインプログラムに置き換えられます。「No」を選択すると、リポジトリ入力したファイル内のメインプログラムは置き換わりません。メインプログラムを通常プログラムとして入力することはできません。


タスク特性

タスク特性は、［タスク特性］ダイアログを使用して定義できます。このダイアログは、［データビュー］エディタまたは［ロジック］エディタ内において、［タスク環境/タスク特性］（Ctrl+P）または［編集/特性］（Alt+Enter）を選択して開くことができます。

［タスク特性］ダイアログは、６つのタブから構成されます。

［汎用］タブ

［動作］タブ

［インタフェース］タブ

［データ］タブ

［オプション］タブ

［拡張］タブ

参考：

［タスク特性］で［タスクタイプ］特性を変更すると（たとえば、オンラインからバッチへ)、タスクのすべてのトランザクション特性が変更されたタスクタイプのデフォルト値に戻ります。


タスク特性 汎用

ホーム > リファレンスガイド > プログラム > タスク特性 > ［汎用］タブ

［凡用］タブ

［凡用］タブには以下の特性があります。

タスク名

タスクタイプ

インタラクティブ （リッチクライアントタスクでのみ有効）

オフライン（リッチクライアントタスクでのみ有効）

初期モード

初期モード（式）

タスク終了条件

チェック時期

戻り値

選択テーブル

タスク常駐

タスクID

ソースファイル名


タスク特性 汎用 タスク名

ホーム > リファレンスガイド > プログラム > タスク特性 > ［汎用］タブ > タスク名

タスク名

タスクボックスに表示される名前を指定します。現行タスクがルートタスクの場合、［プログラム］リポジトリに表示されるプログラム名にもなります。

タスク実行時に表示されるタスクウィンドウのタイトルは、このタスク名から継承されます。この名前は上書きできます。

［タスク特性］ダイアログで名前を変更すると、［フォーム］エディタのエントリやフォームのウィンドウタイトルなど、その名前が使用されている全ての名前が自動的に更新されます。ただし［フォーム］エディタの名前は、タスク名を変更する前からそれがタスク名と異なっていた場合、その名前は変更されません。


タスク特性 汎用 タスクタイプ

ホーム > リファレンスガイド > プログラム > タスク特性 > ［汎用］タブ > タスクタイプ

タスクタイプ

タスクタイプは以下のいずれかになります。

O=オンライン | 対話型プログラムです。ユーザとの対話処理を行う場合のデフォルトになります。
B=バッチ | バッチタスクは、データソースからレコードを取り出して処理を実行させるために使用されます。データソースを使用しないで処理を実行させることもできます。バッチタスクは帳票出力やレコード更新、または削除や計算処理などを行うために使用されます。バッチタスクにもフォームがありますが、ほとんどのバッチタスクはエンドユーザに対して何も表示しないで実行します。
R=ブラウザ | プログラムやタスクはブラウザ上で実行されます。（利用できません）
C=リッチクライアント | リッチクライアントとして実行されます。

上のアイコンは、タスクのタイプを示すために、タスクツリーに表示されます。

この特性のデフォルトを変更する場合は、［環境設定］ダイアログの［デフォルトのタスクタイプ］を使用してください。

タスクタイプを変更すると(例えばオンラインからバッチに)、タスクに設定されていた全てのトランザクション特性(トランザクションモード、トランザクション開始、ロック方式、およびキャッシュ範囲)は、変更されたタスクタイプのデフォルト値に設定されます。

注意：

RIA_Editionの場合、「O=オンライン」は選択できません。

関連トピック：

簡単なバッチプログラムを作成するには

タスクの比較

オンラインタスク | バッチタスク
エンドユーザとの対話処理が可能になります。 | エンドユーザとの対話処理はありません。
エンドユーザがメインソースのレコードをアクセスすることができます。スクロールされるレコードだけが、読み込まれます。 | タスクは、指定された範囲条件でメインソースのレコードをすべて読み込みます。メインソースが定義されていなかったり、タスクが登録モードで起動された場合、［タスク終了条件］特性が満たされるまでタスクはループします。
［コントロール］ロジックユニットが利用できます。エンジンは、エンドユーザの操作に関連するロジックを処理します。 | エンドユーザの操作が存在せず、コントロール上にパークすることもないため、コントロールロジックユニットは無効になります。
［グループ］ロジックユニットは利用できません。 | ［グループ］ロジックユニットを定義することで、データのグループ処理を行うことが可能になります。
（画面表示用）タスクフォームは、タスクの作成と実行の各処理に不可欠なオブジェクトです。 | （画面表示用）タスクフォームはオプションで、フォーム設計に時間をかける必要はありません。
データが変更された場合、［レコード後］ロジックユニットが実行されデータが保存されます。 | データが変更されなくてもレコードは常にデータベースに保存されます。また、［レコード後］ロジックユニットは常に実行されます。
タスクがアイドル状態の時に、イベントを処理することができます。 | イベントは、指定された時間毎、または処理レコード数毎に処理されます。


タスク特性 汎用 インタラクティブ

ホーム > リファレンスガイド > プログラム > タスク特性 > ［汎用］タブ > インタラクティブ

インタラクティブ

［タスクタイプ］特性で「リッチクライアント」を選択すると、［インタラクティブ］特性が表示されます。

このチェックボックスのチェックを外すとユーザの操作を受け付けなくなり、バッチタスクのような動作になります。この機能を利用することによりバッチタスクからリッチクライアントタスクを呼び出すような処理が実現できます。

このチェックボックスのチェックを外すと、タスクは以下のように動作します。

  • すべてのレコードは、ユーザの入力処理を待つことなく自動的に処理されます。

  • 最後のレコードが処理されるか、［タスク終了条件］特性が「True」と評価された場合、タスクは終了します。

  • ［レコード後］は常に実行されます。

  • インタラクティブでないRCタスクからインタラクティブな（並行起動でない）RCタスクを呼び出した場合、呼び出されたタスクの処理が終了するまで、起動元のタスクは処理を待つことになります。

  • インタラクティブなRCタスクからインタラクティブでない（並行起動でない）RCタスクを呼び出した場合、バッチタスクを呼び出す場合と同じように、起動元のタスクの処理は、呼び出されたタスクの処理が終了するまで待つことになります。

  • ［ウィンドウ表示］特性は、「No」に変更されます。

注意：

  • ［選択テーブル］特性が｢Yes｣に設定されたプログラムを非インタラクティブにすると、選択テーブル用プログラムとして動作しなくなります。

  • 非インタラクティブなプログラムは、MDI子タスクを呼び出せません。［ウィンドウタイプ］特性が「MDI子ウィン」または、「MDI調整」に設定されたリッチクライアントプログラムを呼び出すように定義した場合、この特性は無視され、モーダルで表示されます。

  • 非インタラクティブなタスクでは、トランザクションがレコードレベルで開始される場合、トランザクションの開始と終了を行うためにレコード毎にサーバにリクエストを送ります。

表示フォームを持たない非インタラクティブなリッチクライアントタスクでは、［イベント可］特性が「No」に設定されている場合と同じように動作します。

関連トピック：

リッチクライアントで管理プログラムを作成するには


オフライン

［タスクタイプ］特性で「リッチクライアント」のを選択した場合、［オフライン］のチェックボックスが表示されます。

この特性は、プログラムがサーバにアクセスしないで実行するかどうかを定義します。

オフラインプログラムとは：

  • クライアント側だけで実行します。

  • （プログラムの開始／終了時の場合も)サーバには接続しません。

  • サーバ関連の処理（例えばサーバ関数や、非オフラインプログラムの呼び出し)を実行することができません。

オフラインプログラムだけのアプリケーションを使用する場合は、必要なすべてのファイル（例えばキーボード定義やオフラインプログラム)のダウンロードで必要となる最初の実行を除いて、アプリケーションはサーバとの接続なしで実行することができます。

コンポーネントからオフラインプログラムを呼び出す必要がある場合、コンポーネントの［即時有効］特性をチェックする必要があります。

オフラインプログラムは、メインプログラム内で処理されるイベントの発行によって、そして、そのイベント・ハンドラから通常のプログラムを呼び出すことによってのみ、通常（非オフライン)のプログラムを間接的に呼び出すことができます。これは、クライアントとサーバの両方で、オフラインプログラムから呼び出される全ての非オフラインプログラムはメインプログラムの配下でオープンされることを意味します。

注意：

オフラインプログラムを閉じた場合、呼び出された非オフラインプログラムが自動的に終了しない場合があります。

オフラインタスクは、リッチクライアントのサブタスクのみが定義できます。

サポートバージョン：

2.4

関連トピック：

オフラインアプリケーションの開発


タスク特性 汎用 初期モード

ホーム > リファレンスガイド > プログラム > タスク特性 > ［汎用］タブ > 初期モード

初期モード

この特性では、タスク実行を開始する時の処理モードを定義します。

初期モードはエンドユーザがプログラムの実行中に変更することが可能ですが、エンドユーザが変更可能な実行モードを制限したい場合には、［オプション］タブで設定することができます。

初期モードを式で定義することで、動的に指定することもできます。

以下のモードが指定できます。

モード

エンドユーザが行うことができる処理

M=修正

このモードでは、エンドユーザが既存のレコードを編集したり、削除することができます。修正モードでは、レコードを作成することもできます。これは、修正モード時の登録処理と呼ばれる特殊なモードです。Ctrl+Mを押下することで修正モードに切り替えることができます。

バッチタスクの場合、レコードの修正が行われなくても、レコードがデータベースから読み込まれ、更新が行われます。

C=登録

このモードは、エンドユーザによってレコードを新規作成することができます。登録モードでは、現在のセッションで追加したレコードのみ参照できます。すべてのレコードを参照するには、照会または修正モードに切り換える必要があります。Ctrl+Eを押下することで、このモードに切り替えることができます。

D=削除

データビューのすべてのレコードを削除します。削除モードは、バッチタスクの［レコード後］のみ動作します。

非インタラクティブのリッチクライアントでもサポートされます。

サポートバージョン：

2.4

Q=照会

このモードは、レコードの更新や削除を行うことなく、レコード内容を参照することができます。Ctrl+Qを押下することでこのモードに切り替えることができます。これは、参照だけを行うタスクのモードです。［タスク特性］で修正モードを無効にしていなければ、［オプション/修正］（Ctrl+M）を選択することで、修正モードに変更することができます。

バッチタスクでは、データソースが「読込」でオープンされ更新することができません。

照会モードと修正モードの違い参照してください。

P=親と同じ

実行時の親タスクの初期モードと同じモードで実行されます。メニューから直接起動された場合は、照会モードになります。［タスク特性］の［並列実行］特性が「Yes」に設定されている場合、構文チェックユーティリティでエラーとしてチェックされます。

「親と同じ」モードが定義されたプログラムがサブフォーム内で呼び出された場合、この特性は以下のように評価されます。

  • オンライン …… サブフォームタスクがオープンされた場合、常に評価されます。

  • リッチクライアント…… 親タスクのモードが変更された場合、常に評価されます。（サポートバージョン：2.2）

E=式

［初期モード(式)］特性に式を指定します。この式は、実行時に動的に評価され、初期モードを決定します。

オンラインタスクでは、［タスク特性］で許可された初期モードであれば、エンドユーザが実行時に変更することができます。バッチタスクでは、タスクの実行中に初期モードを変更することができません。

エンジンは初期モードにかかわらず、処理コマンドをチェックし、実行します。［条件］特性にStat関数を含む条件式を設定することで、初期モードによって実行される処理コマンドを制限させることができます。

タスクの初期モードは、メインソースにだけ関係します。

メインソースにリンクされたデータベーステーブルの作成や修正には影響しません。使用される［リンク］コマンドのタイプによってレコードの作成や修正が決定されます。詳細は、［リンク］コマンドのトピックを参照してください。

デフォルト:

M=修正

関連トピック：

XMLデータソースに対応したタスクモードの動作

修正モードから登録モードへの自動切替

修正モードでユーザが編集を行っているときの登録モードへの一時的切替

照会モードと修正モードの違い

エンドユーザ機能

データソースからレコードをまとめて削除するには


タスク特性 汎用 初期モード（式）

ホーム > リファレンスガイド > プログラム > タスク特性 > ［汎用］タブ > 初期モード（式）

初期モード（式）

［初期モード］特性で「E=式」を指定した場合、カーソルはここに移動し、式番号を指定できるようになります。この式は実行時に評価され、初期モードを決定します。

注意事項

  • 式の評価結果は有効なタスクモード用の略字（M、C、D、Q、P、E）の1つでなければなりません。
    例えば次のような式があったとします。

IF （A='QUERY','Q'MODE,'M'MODE"）

上記の式は、タスク内にある項目Aの値が「QUERY」であれば、Magic xpaがこのタスクの実行をQ（照会）モードで開始することを意味します。それ以外の場合は、M（修正）モードで実行を開始します。

  • ｢親と同じ｣は、式ではサポートされません。

  • 初期モードの評価は、タスクの実行開始と同時に行われます。［初期モード式］の評価中には、現在のタスクのデータ項目を使用することはできません。したがって、式にデータ項目が使用されている場合、これらのデータ項目は、パラメータや親タスクのデータ項目でなければなりません。式を使用して処理コマンドの初期モードを動的に定義している場合、その式の有効な値が実行時に見つからない旨のエラーメッセージがメッセージボックスで表示され、タスクが終了します。

上記の例のように［初期モード式］の中でMODEリテラルを使用することにより、Magic xpaに文字列の内容を調べさせて有効なタスクモードが指定されているかどうかを確認できます。有効でないタスクモードがその文字列に含まれていると、該当する文字は自動的に除去されます。文字列内の各文字で表されている値は、内部表現の形式で保存されます。


タスク特性 汎用 タスク終了条件

ホーム > リファレンスガイド > プログラム > タスク特性 > ［汎用］タブ > タスク終了条件

タスク終了条件

この特性の値を「No」を指定した場合、以下のように動作します。

  • リッチクライアントタスク、オンラインタスクの場合、ユーザがタスクを終了したり、プログラムで［終了］イベントが発生した時に終了します。

  • バッチタスクの場合、データビューの全レコードの処理が完了すると終了します。タスクが取り消し可能な場合は、エンドユーザがEscキーを押下してそのタスクを取り消すと終了します。

「Yes」を指定した場合、タスクが終了するのは［チェック時期］特性の設定に応じて、レコードレベルを実行する前、あるいは１つの行を処理した後になります。この特性から［式］エディタにズームすることで、［タスク終了条件］を有効にする条件を設定できます。

注意：

バッチタスクでは無限ループを回避するため、次のような場合にタスク終了条件が必要となります。

  • バッチタスクでループを実行させるため、スクラッチファイル（メインソース=0）を指定した場合

  • バッチタスクで登録モードにして、入出力ファイルの読み込みを行う場合

デフォルト:

No

関連トピック：

チェック時期


タスク特性 汎用 チェック時期

ホーム > リファレンスガイド > プログラム > タスク特性 > ［汎用］タブ > チェック時期

チェック時期

［タスク終了条件］をどの時点で評価するかを定義します。

  • B=前置 …… レコードの入力前に評価します。

  • A=後置 …… レコードの更新後に評価します。この設定により最後に処理した行のデータ項目をタスク終了条件に組み込むことができます。

  • I=即時 …… レコードが変更されると同時に評価されます。

タスク終了条件によるタスクの終了

［チェック時期］特性を「I=即時」に設定した場合、［タスク終了条件］は全てのレベルにおいて各処理コマンドごとに毎回検査されます。また、［タスク終了条件］が「True」の場合、Magic xpaは内部的な終了状況を設定します。この状況は対話レベルでのみチェックされ、タスクは即時に終了します。

［タスク終了条件］が「True」の場合、タスクは以下のように終了されます。

  1. 行が修正されていた場合は、ブラウザタスクとオンラインタスクの［レコード後］を実行します。（バッチタスクは必ず実行されます。）

  2. バッチタスクの場合は、グループレベルがあればグループレベルを実行します。

  3. ［タスク後］を実行します。

  4. タスクを終了します。

［タスク終了条件］と［チェック時期］の例

  • １つの行を処理する場合は、［タスク終了条件］を「Yes」に、また［チェック時期］を「A＝後置」に設定します。

  • どの行も処理しない場合は、［タスク終了条件］を「Yes」に、また［チェック時期］を「B＝前置」に設定します。

  • １５の行を処理する場合は、［タスク終了条件］に式として「Counter（）=15」を指定し、［チェック時期］を「A＝後置」に設定します。

デフォルト:

B=前置


タスク特性 汎用 戻り値

ホーム > リファレンスガイド > プログラム > タスク特性 > ［汎用］タブ > 戻り値

戻り値

タスクの戻り値を指定します。この特性は式で定義します。ここから[式]エディタにズームして、変数や式を割り当てることができます。

コールコマンドやCOMプログラムなどからこのプログラムが呼び出された場合、戻り値としてここで指定された値が返ります。

注意：

NULL値は、返すことができません。

関連トピック：

起動元のプログラムに戻り値を返すように設定するには


タスク特性 汎用 選択テーブル

ホーム > リファレンスガイド > プログラム > タスク特性 > ［汎用］タブ > 選択テーブル

選択テーブル

この特性は、オンラインタスクとブラウザタスクのみ関連します。この特性を「Yes」に設定すると、Magic xpaは選択テーブルタスクとして動作するようになります。

選択テーブルと指定されたプログラムは、Enterキーを押下すると、［レコード後］を実行して終了します。パラメータ項目を定義して、［レコード後］でパラメータ項目を現在のメインソースのデータで更新することで選択プログラムが実現できます。

注意：

非インタラクティブに設定されたリッチクライアントタスクを選択プログラムにすることはできません。

ブラウザとリッチクライアントタスク

通常のオンラインタスクと同じように、［レコード後］ロジックユニットを実行し、選択イベントを発行することでタスクが終了します。

デフォルト:

No

関連トピック：

選択プログラムを作成するには


タスク特性 汎用 タスク常駐

ホーム > リファレンスガイド > プログラム > タスク特性 > ［汎用］タブ > タスク常駐

タスク常駐

この特性を「Yes」に設定すると、呼び出される側のタスクまたはプログラムは、呼び出す側のタスクの読み込み時にメモリに読み込まれ、呼び出し側のタスクが終了するまでの間、メモリに常駐します。これによってメモリが占有される代わりに、親タスクが繰り返し呼び出すタスクをなるべくメモリ内に保持しておくことでパフォーマンスが向上します。

メモリのリソースが限られているシステム上では、この特性の使用は避けてください。

デフォルト: | No
関連インタフェース： | オンライン、バッチ


タスク特性 汎用 タスクID

ホーム > リファレンスガイド > プログラム > タスク特性 > ［汎用］タブ > タスクID

タスクID

［タスクID］特性は、開発者レベルでタスクの識別用IDを設定するためのものです。

この特性は、サブタスクでだけでなくトップレベルのタスクでも利用可能です。

開発エンジンは、タスクIDをチェックしません。

TaskID関数を使用すると、実行中のタスクのタスクIDを取得することができます。

開発者はタスクIDを使用することで、例えば実行中のタスクがユニークかどうかや、タスク間の依存状態を確認することができます。


タスク特性 汎用 ソースファイル名

ホーム > リファレンスガイド > プログラム > タスク特性 > ［汎用］タブ > ソースファイル名

ソースファイル名

ここには、プログラムのソースファイル名（XMLファイル）が表示されます。この特性は、プログラム（ルートタスク）のみ表示され、サブタスクには表示されません。


タスク特性 動作

ホーム > リファレンスガイド > プログラム > タスク特性 > ［動作］タブ

［動作］タブ

［動作］タブには以下の特性があります。

汎用 | バッチタスク
循環入力 タブサイクル 更新確認 キャンセル確認 強制レコード後 レコード削除 ウィンドウ再表示 | イベント可 レコードイベント間隔 ページ当りレコード件数


タスク特性 動作 循環入力

ホーム > リファレンスガイド > プログラム > タスク特性 > ［動作］タブ > 循環入力

循環入力

  • Yes …… エンドユーザが現行のレコードにある最後のカラムの処理を終了すると、カーソルはその同じレコードの先頭にあるカラムに戻ります。この処理はユーザがそのレコードから別のレコードへ移動するか、そのタスクを終了するまで続きます。

  • No …… カーソルがその行にある最後のカラムから、データビューの次のレコードにある最初のカラムへ自動的に移動します。

デフォルト: | Yes
関連インタフェース： | バッチタスクやリッチクライアントタスクでは無効です。リッチクライアントの場合は、［タブサイクル］特性を利用します。


タスク特性 動作 タブサイクル

ホーム > リファレンスガイド > プログラム > タスク特性 > ［動作］タブ > タブサイクル

タブサイクル

この特性は、フォーム内の先頭/末尾のコントロールにパークしている場合のTab移動の動作を定義するものです。

サブフォームやフレーム上で動作しているタスクの動作は、親タスクではなく各タスク内のこの特性で定義された内容に基づいて動作します。リッチクライアントタスクでは、この特性が［循環入力］特性の代わりに表示されます。

サブフォームやフレーム内に定義されたタスクは、親レコードの一部として動作します。これは、ネストされたタスクの末尾のコントロールからTab移動した場合、そのタスクを抜け、親タスクにフォーカスを移すことを意味しています。Tab移動があってもサブフォームやフレーム内に留まりたい場合は、この動作では問題があります。この特性はこのような問題を解決するためのものです。

注意：

この特性は、インタラクティブでないリッチクライアントタスクでは無効になります。

この特性のオプションは以下の通りです。

  • R=現在のレコードに留まる …… このオプションが選択されると、タスク内の末尾のコントロールにパークしている状態でTab移動（［次項目］イベント）を行うと、キャレットはタスクの同じレコード内の先頭のコントロールに移動します。キャレットが親タスク内にあったり、サブフォームやフレーム内のタスク内にある場合も同じ動作になります。
    この動作は、オンラインタスクの［循環入力］特性が「Yes」に設定されている場合と同じような動作になります。

  • N=次のレコードに移動 …… このオプションが選択されると、タスク内の末尾のコントロールにパークしている状態でTab移動（［次項目］イベント）を行うと、キャレットはタスクの次のレコード内の先頭のコントロールに移動します。
    注：修正モードの場合、キャレットが最後のレコードにある場合、新規レコードが追加されます。
    キャレットが親タスクやサブフォーム/フレーム内のタスク上にある場合、同じ動作になります。
    この動作は、オンラインタスクの［循環入力］特性が「No」に設定されている場合と同じような動作になります。

  • P=親タスクに移動 …… このオプションが選択されると、タスク内の末尾のコントロールにパークしている状態でTab移動（［次項目］イベント）を行うと、キャレットは親タスクの次のコントロールに移動します。
    現在のタスクがサブフォームやフレームとして動作している場合、このような動作になります。
    タスクがサブフォームやフレーム上で動作していない場合、デフォルト値の設定（現在のレコードに留まる）と同じように動作します。

関連トピック： サブフォーム上の最後のコントロールから親タスクに移動するには

参考：

  • タスクの先頭のコントロールでShift+Tabを押下したり、［前項目］イベントが発行された場合も同じように動作します。

  • サブフォームやフレーム上でEscを押下すると、この設定に関係なくタスク全体が終了します。これは、この特性の最初の２つのオプションの設定によって、ユーザがキー操作によってサブフォームやフレーム内で実行しているタスクから抜け出せないことを意味しています。

関連インタフェース：

非インタラクティブなリッチクライアントタスクでは無効です。


タスク特性 動作 更新確認

ホーム > リファレンスガイド > プログラム > タスク特性 > ［動作］タブ > 更新確認

更新確認

更新や登録処理を実行した後、タスクを終了したりレコードを移動したりした場合に、更新確認ダイアログを表示するかどうかを指定します。

  • Yes …… 登録および修正処理時に確認ダイアログが表示されます。

  • No …… 削除処理時のみ確認ダイアログを表示します。

  • 式 …… 式を使用してこの動作を動的に変更できます。例えばStat（0,'C'MODE）のように指定すると、登録処理の場合のみ確認ダイアログが表示されます。

デフォルト:

No


タスク特性 動作 キャンセル確認

ホーム > リファレンスガイド > プログラム > タスク特性 > ［動作］タブ > キャンセル確認

キャンセル確認

変更処理に対する取り消しを行った場合に、［キャンセル確認］ダイアログを表示するかどうかを指定します。

  • Yes …… ［キャンセル確認］ダイアログが表示されます。取消を実行すると、変更内容が取り消されて、レコードの値が元に戻ります。取消を中止すると、変更内容は更新されます。

  • No …… ［キャンセル確認］ダイアログを表示します。

  • 式 …… 式を使用してこの動作を動的に変更できます。

注意：

この特性は、インタラクティブでないリッチクライアントタスクでは無能になります。

デフォルト: | No
関連インタフェース： | 非インタラクティブなリッチクライアントタスクでは無効です。


タスク特性 動作 強制レコード後

ホーム > リファレンスガイド > プログラム > タスク特性 > ［動作］タブ > 強制レコード後

強制レコード後

この特性は、ブラウザとオンラインタスクのみに関連します。

  • Yes …… 該当する行に修正が加えられたかどうかに関係なく、［レコード後］が実行されます。

  • No …… 現行のデータビュー行が変更されている場合、つまりタスクのデータ項目の１つが変更された場合にのみ［レコード後］が実行されます。

  • 式 …… 式を使用してこの動作を変更することも可能です。

注意：

この特性は、インタラクティブでないリッチクライアントタスクでは無能になります。

デフォルト: | No
関連インタフェース： | 非インタラクティブなリッチクライアントタスクでは無効です。

関連トピック：

レコードが更新されなくてもレコード後を実行させるには


タスク特性 動作 レコード削除

ホーム > リファレンスガイド > プログラム > タスク特性 > ［動作］タブ > レコード削除

レコード削除

この特性を利用することで、タスクのデータビューから条件付きで行を削除できます。

削除条件式は、Magic xpaが［レコード後］を開始する前に評価されます。評価の結果が「True」の場合、対象となる行はユーザが削除キー（F3）を押下した時と同じ仕組みで削除されます。

削除の仕組み

対象となる行が修正されている場合、またはタスクがバッチモードで実行されている場合は、［レコード後］が一旦「修正モード」で実行されます。これは、そこで定義されている更新処理を全て実行して処理を完了するためです。その後、削除関連の処理を実行するため、「削除モード」で２回目の［レコード後］が行われます。

このような処理には、１対多関係にある相互連結した行の削除や［加算］モードによる［項目更新］処理コマンドなどがあります。詳細については、「項目更新」を参照してください。対象となる行が修正されていない場合は、［レコード後］は「削除モード」のみ実行されます。

［レコード削除］特性によって［レコード後］で２重に処理が実行されることを回避するには、処理コマンドの［条件］カラムに指定する条件式の中で、Stat関数を使用して特定の処理モードでのみ実行するようにします。

例：Stat (0,'D'MODE)

デフォルト: | No
関連インタフェース： | この特性はオンライン、バッチの各タスクで利用可能です。


タスク特性 動作 ウィンドウ再表示

ホーム > リファレンスガイド > プログラム > タスク特性 > ［動作］タブ > ウィンドウ再表示

ウィンドウ再表示

この特性は、行の処理と［レコード後］の実行後にタスクウィンドウの表示を更新するかどうか指定します。オンラインタスクとバッチタスクのみ関係します。

Magic xpaでは、一度に１行づつ処理します。ラインモードによる複数行表示の場合も、ハイライト表示されている行だけが更新され、再表示されます。他の行は、フォーカスが移った時点で表示が更新されます。このため、ハイライトされていない行は、データビューの行の内容が変わっていても、最新の値が反映されない場合があります。

また、現在のデータビュー行に含まれている一部のカラムがリンク定義によって、同じデータビューの別の行と関連している場合もあります。この場合、残りのデータビュー行はラインモード表示であったり、親タスクのフォームであったりして、同じ画面上に表示される可能性があります。

このようなカラムを変更すると、変更内容は現在ハイライト表示されているデータビュー行のみ反映されます。こういった場合、［ウィンドウ再表示］特性を「Yes」設定することで、現在表示している全てのデータビュー行の変更内容をすぐに反映することができます。

「Yes」を設定すると、常に再表示が実行されるため処理速度が低下します。このため、式を使用して必要な場合のみ有効にするようにしてください。

注意：

［トランザクションモード］特性が「D=遅延」、または「P=物理」でキャッシュが有効になっているプログラムでは、［ウィンドウ再表示］特性は機能しません。再表示が必要な場合、［ビュー再表示］イベントを発行する必要があります。

デフォルト: | No
関連インタフェース： | オンライン、バッチ

関連トピック：

データの再表示


タスク特性 動作 イベント可

ホーム > リファレンスガイド > プログラム > タスク特性 > ［動作］タブ > イベント可

イベント可

バッチタスクの時のみ有効です。

バッチタスクで、ハンドラがイベントを処理するか否かを定義します。

  • Yes …… ハンドラは、イベントを処理します。

  • No …… ハンドラは、イベントを処理しません。この場合、例えばバッチタスク実行中にエンドユーザはタスクをキャンセルできません。もし10秒間のタイマーイベントが定義されているとすると、イベントが発生しても、Magicエンジンはこのイベントを処理しません。

  • 式 …… イベントを処理するかどうかを定義式で動的に指定できます。

デフォルト:

Yes


タスク特性 動作 レコードイベント間隔

ホーム > リファレンスガイド > プログラム > タスク特性 > ［動作］タブ > レコードイベント間隔

レコードイベント間隔

Magic xpaがイベントキュー内のペンディング中のイベントを検索するまでに処理するレコード数を表す式を指定します。この式の評価結果は数値であり、評価はタスクの初期段階で行われます。

例えば式の評価結果が「500」の場合、エンジンは500レコードごとにイベントキュー内のペンディングイベントを検索します。あるイベントのハンドラと一致するハンドラがキュー内で見つかった場合、そのハンドラが実行されます。

バッチタスクの実行中にフォームに処理カウンタを表示させたいような場合、この設定によって更新値の表示がリフレッシュされる間隔が変わります。この値を小さくすると表示間隔が短くなりますが、バッチ処理のパフォーマンスが低下します。

注意：

Magicエンジンは、［バッチイベント間隔］と［タスク特性］の［レコードイベント間隔］特性の両方をもとにイベントキューからイベントを取り出します。これらの間隔のうちのどちらか1つに達すると、エンジンはイベントを取り出します。

デフォルト: | 0（レコード数は、チェックされません）
関連インタフェース： | この特性は、バッチタスクのみ有効です。


タスク特性 動作 ページ当りレコード件数

ホーム > リファレンスガイド > プログラム > タスク特性 > ［動作］タブ > ページ当りレコード件数

ページ当りレコード件数

これは帳票を出力する際に改ページを行うレコード数を指定します。通常、帳票のヘッダとフッタは定位置にあり、各ページの行数は固定されています。

ここでレコード数を指定することで、帳票を出力する場合に決まった数のレコードが各ページに出力され、最後のページには空行が埋め込まれます。

デフォルト: | 0
関連インタフェース： | この特性は、バッチタスクのみ有効です。


タスク特性 インタフェース

ホーム > リファレンスガイド > プログラム > タスク特性 > ［インタフェース］タブ

［インタフェース］タブ

［インタフェース］タブには以下の特性があります。

ウィンドウ表示

ウィンドウ消去

メインフォーム

アイコンファイル名

以下は、メインプログラムでのみ有効です。

メニューからプログラムを実行した場合はタスクを閉じる

プロジェクトでの実行タイプ


タスク特性 インタフェース ウィンドウ表示

ホーム > リファレンスガイド > プログラム > タスク特性 > ［インタフェース］タブ > ウィンドウ表示

ウィンドウ表示

インタラクティブなタスクでは、ウィンドウは必ずオープンされるため、この特性は非インタラクティブ（バッチ、非インタラクティブなリッチクライアント）タスクだけが関係します。

バッチタスクに対して「No」を指定すると、画面にタスクウィンドウが表示されなくなります。なおオンラインタスクに対して「No」を指定すると、タスクは実行されません。

メインプログラムの場合は、マインプログラムで定義されたMDIフレームを表示するかどうかを指定することになります。


タスク特性 インタフェース ウィンドウ消去

ホーム > リファレンスガイド > プログラム > タスク特性 > ［インタフェース］タブ > ウィンドウ消去

ウィンドウ消去

  • Yes …… タスクの終了時にタスクウィンドウがクローズされます。

  • No …… タスクが終了してもタスクウィンドウはクローズしません。同じタスクが実行された場合、表示されていたタスクウィンドウを使用して表示します。ウィンドウに影響する特性（例えば、［メインフォーム］やフォームサイズ、位置など）は無視されます。この特性は、ファントムタスクを定義する場合に使用します。

注意：

  • ファントムタスクは、リッチクライアントタスクではサポートされません。

  • この特性が「No」の場合、SDIフォームを選択することはできません。

親タスクがモーダルウィンドウで表示していて、タスクがそのフォームの子ウィンドウでない場合、この設定は無効になります。

［並行実行］特性が「Yes」に設定され、［初期モード］特性が「親と同じ」に設定されている場合、構文チェックでエラーになります。

下記の表は、［ウィンドウ表示］と［ウィンドウ消去］特性の値の組み合わせと、その組み合わせの時に、どういったタスクで有効かをまとめたものです。

ウィンドウ表示 | ウィンドウ消去 | 有効なタスク
Yes | Yes | 全てのタスク
Yes | No | オンラインタスクとバッチタスク
No | No | バッチタスクのみ
No | Yes | バッチタスクと非インタラクティブなリッチクライアントタスク

デフォルト:

Yes

関連トピック：

ファントムタスクの呼び出し


タスク特性 インタフェース ファントムタスクの呼び出し

ホーム > リファレンスガイド > プログラム > タスク特性 > ［インタフェース］タブ > ウィンドウ消去 > ファントムタスクの呼び出し

ファントムタスクの呼び出し

ファントムタスクは、ウィンドウがフォーカスに無い場合に、［ウィンドウ消去］特性が「No」に設定されたタスクを閉じます。ロジックユニット内に定義された［コール］処理コマンドを実行させることでファントムタスクを開くことができます。ファントムタスクは、プログラムや公開プログラムまたは式から呼び出すこともできます。

ファントムタスクのウィンドウをクリックすると、Magicエンジンは親およびその上位タスクのロジックユニット内の対応する［コール］処理コマンドを検索し、そのロジックユニットに移ります。

Magicエンジンは、以下のロジックユニットを検索します：

  • コントロール前

  • コントロール確認

  • コントロール後

  • システム

  • ユーザイベント

  • 内部イベント

システムやユーザ、内部イベントは、コントロールを指定したり、指定しないでロジックユニットに定義することができます。Magicエンジンは、ファントムタスクの親タスクや上位タスクを下位から上位の方向でロジックユニットを検索します。

対応するロジックユニットを見つけるには、以下の3つの条件がTrueと評価されなければりません：

  • ［ロジックユニット特性］が有効になっている。

  • ［コール］処理コマンドは、ファントムタスクを呼び出している。

  • ブロック条件は、ブロックLoopでない。

注意：

［ブロックLoop］処理コマンドは常にFalseと評価されます。

無効な［コール］処理コマンドに位置付けされた場合、Magicエンジンは最後に定義されたコントロール上にとどまり、ファントムタスクを開きません。

対応する［コール］処理コマンドがコントロールを指定していないロジック宇ニット内に定義されている場合、Magicエンジンはファントムタスクのために［コール］処理コマンドを起動させるためのイベントを発行のみを行います。ファントムタスクが実行された後、Magicエンジンは［イベント］テーブルに定義された内容に基づいて現在のイベントを通常どうりに再開します。

［コントロール］ロジックユニット内で［コール］処理コマンドの条件がTrueと評価された場合、Magicエンジンはそのコントロールに移動し、ファントムタスクのために対応する［コール］処理コマンドを実行します。

対応する処理コマンドが［コントロール前］ロジックユニット内に定義されている場合、Magicエンジンはそのコントロール上で［コール］処理コマンドを実行し、コントロールにパークします。対応する［コール］処理コマンドが［コントロール確認］または［コントロール後］のロジックユニットで定義されている場合、Magicエンジンは次のコントロール上で［コール］処理コマンドを実行し、コントロールにパークします。


タスク特性 インタフェース メインフォーム

ホーム > リファレンスガイド > プログラム > タスク特性 > ［インタフェース］タブ > メインフォーム

メインフォーム (デフォルト:0)

この特性は、メインフォームに使用するフォーム番号を返す式を指定します。これにより、実行時にメインフォームを動的に切り替えることができます。

フォームがサブフォーム内で使用されている場合、この特性は評価されません。

メインプログラムの場合、この特性はMDIに影響します。

注意：

  • 定義式においてフォーム番号を使用する場合、そのフォーム番号を自動的に更新されるようにするため、FORMリテラルを使用して「'nn'FORM」という形式でフォーム番号を指定することができます。

  • ［フォーム］テーブルにおいて２番目の行の前に行を追加したとします。この場合、これまで２番目だったフォームは３番目になりますが、FORMリテラルを使用していると、「'2'FORM」が自動的に「'3'FORM」に更新されます。

デフォルト:

0

関連トピック：

表示するメインフォームを動的に指定するには


タスク特性 インタフェース アイコンファイル名

ホーム > リファレンスガイド > プログラム > タスク特性 > ［インタフェース］タブ > アイコンファイル名

アイコンファイル名

この特性には、Windows OS上でプログラムを最小化した時に表示されるアイコンファイル名を指定します。この特性が設定されない場合、メインプログラムのタスク特性に定義されたアイコンが表示されます。

注意：

リッチクライアントタスクの場合、サーバ上のファイルをパス指定できます。

アイコンが最大化されたMDI子フォームで使用された場合、アイコンは実際のサイズで表示されます。

関連インタフェース：

オンライン、バッチ、リッチクライアント

関連トピック：

アプリケーションのアイコンを設定するには

フォームのアイコンを設定するには

ウィンドウにアイコンを設定するには


タスク特性 インタフェース メニューからプログラムを起動した場合はタスクを閉じる

ホーム > リファレンスガイド > プログラム > タスク特性 > ［インタフェース］タブ > メニューからプログラムを起動した場合はタスクを閉じる

メニューからプログラムを起動した場合はタスクを閉じる

リッチクライアントのMDIのプルダウンメニューやコンテキストメニューから非並行プログラムが起動された場合、現在のタスクを自動的に終了させるかどうかを定義します。

  • チェックを外す …… 既存のタスクは、開いた状態で残ります。

  • チェック …… 既存の非並行のプログラムは終了します。これは、オンラインアプリケーションのMDIと同じような動作になります。

SDIプログラムのプルダウンメニューからプログラムを開いた場合は、この特性は影響しません。SDIのプルダウンメニューや、コンテキストメニューからプログラムを呼び出した場合は、この特性に関係なく、呼び出し元の子プログラムとして実行されます。

関連インタフェース：

この特性は、メインプログラムのみ有効です。


タスク特性 インタフェース プロジェクトの実行タイプ

ホーム > リファレンスガイド > プログラム > タスク特性 > ［インタフェース］タブ > プロジェクトの実行タイプ

プロジェクトの実行タイプ

Magic xpa Studioからプロジェクト（Ctrl+F7）を実行する場合、オンラインMDIかリッチクライアントMDIのどちらを開くかを定義します。

メインプログラムの［ウィンドウ表示］特性が「Yes」に定義されていて、Magic xpa Studioからプロジェクトが実行された場合のみこの特性が有効になります。

この特性は、次の場合は有効になりません。

  • プログラムを指定した実行（F7）

  • ［ウィンドウ表示］特性が「No」

  • 実行エンジンを使用したアプリケーションの実行

リッチクライアントアプリケーションを、Magic xpa Studioで実行する場合、この特性と［ウィンドウ表示］特性の組合せによって クライアントからのリクエストは以下のように処理されます。

［実行モード］が「O=オンライン」の場合

ウィンドウ表示 | プロジェクトの実行タイプ | 結果
Yes | オンライン | -274が返ります。
No | オンライン | 実行
Yes/No | リッチクライアント | -119が返ります。

［実行モード］が「B=バックグラウンド」の場合は、すべてのパターンで動作します。

デフォルト: | (プロジェクトの新規作成時) O=オンライン
関連インタフェース： | この特性は、メインプログラムのみ有効です。


タスク特性 データ

ホーム > リファレンスガイド > プログラム > タスク特性 > ［データ］タブ

［データ］タブ

［データ］タブには以下の特性があります。

トランザクション | 管理
トランザクションモード トランザクション開始 空のデータビューを許可 | キャッシュ範囲 ビュー事前読込 ロック方式 エラー発生時
 | SQLステートメントの出力
 | SQLステートメントの出力


タスク特性 データ トランザクションモード

ホーム > リファレンスガイド > プログラム > タスク特性 > ［データ］タブ > トランザクションモード

トランザクションモード

オンラインとバッチタスク

オンラインとバッチタスクでは、トランザクション処理に対応した4つのモード設定があります。

D=遅延

データ操作(DML)ステートメントが一時的にキャッシュに保存され、すぐには物理データベースに送信されません。他のユーザはそのデータにアクセスすることはできません。このトランザクションが終了した時点で、トランザクション間に記録された様々な処理コマンドによってデータベースが更新されます。データベースの更新は、［更新レコードの識別］特性の設定内容に従って実行されます。キャッシュに蓄積されたすべてのDMLステートメントはすぐに実行され、トランザクションはクローズされます。修正内容がコミットされる前に、選択されたデータが修正された場合、エラーメッセージが表示され、更新内容が失われます。この場合、更新処理をやり直すしか方法はありません。更新されたデータが遅延トランザクション内にある場合、失われる可能性があることに注意してください。

DMLステートメントが失敗した場合、Magic xpaはトランザクション全体をまとめて再送します。

遅延トランザクションでは、親タスクと子タスクで同じトランザクションを共有します。子タスクのレベルでロールバックした場合、子タスク内での更新はロールバックされ、親タスクの変更は更新されます。子タスクの変更を親タスクと独立させたい場合、ネスト遅延トランザクションを使用してください。

例外：遅延トランザクションは、ローカルデータソースではにサポートされません。

参考： SpecialNoCheckIndexInDeferred

N=ネスト遅延

遅延トランザクションが追加作成されます。タスクが終了すると、ネスト遅延トランザクションは親の遅延トランザクションに従ってコミットされます。親/子タスクにおいて、子タスクで行われる変更は、親タスクから独立しています。

Magic xpaは、ネストトランザクションを実装するためにデータベースに直接指示を出すことはありません。ネスト機能はMagic xpa自体によって行われます。

W=親と同じ

タスクは、動作中のトランザクション内で実行されます。

  • 物理トランザクションが開いている場合は、現在のタスクは物理トランザクションの一部となります。

  • 遅延トランザクションが開いている場合は、現在のタスクはその遅延トランザクションの一部となります。

  • 親タスクがトランザクションを開始していない場合、現在のタスクはトランザクションを使用しません。

P=物理

物理トランザクションでは以下のように動作します。

  1. データベースでトランザクションを開きます。
    Magic xpaは、一度に1つのトランザクションだけが有効になります。ネストトランザクションの選択はできません。

  2. ［レコード後］の後で各DMコマンドをデータベースに送信します。これに対する例外は、DML(Data Manipulation Language)ステートメントを明示的にロックするためにあります。そして、それは［ロック方式］特性にもとづいて送信されます。
    Magic xpaは遅延トランザクションのようにキャッシュにコマンドを保存せず、それがデータベースに発生したように各コマンドを送信します。

  3. COMMITまたはROLLBACKコマンドをデータベースに送信します。

ほとんどのデータベースのDDLコマンド（例えば、CREATEやDROP、ALTER）は、自動的にトランザクションを開始し終了します。DDLコマンドを発行すると直ぐに、データベースによって自動COMIMTが発行されます。トランザクションの最中にDDLを使用することは避けてください。たとえば、テーブルはトランザクション中に作成したりドロップしないようにしてください。

注意：

  • 定義された分離レベルに従って、更新されたデータをコミットされる前に他のユーザが参照することができます。

  • ODBCでは、物理ロックはありません。ISAMデータベースを使用する場合は、動作環境の「ISAM トランザクション」を参照してください。

注意：

  • トランザクションを開始することなく多くのレコードを作成したり更新した場合、自動コミットモードが動作します。この場合、パフォーマンスが低下します。

  • タスクで物理トランザクションが定義されていても、タスクにデータソースが定義されていない場合は、データベースの物理トランザクションは開きません。これは、［トランザクション］モードが「親と同じ」に定義されたサブタスクでは、トランザクションの一部ではないため、ゆっくり動作するかもしれないことを意味します。このようなシナリオでは、少なくとも1つのデータソースを定義してトランザクションに含めるように則すメッセージが表示されます。

リッチクライアントタスク

リッチクライアントタスクでは、以下のモードが選択できます。

W=有効な遅延トランザクション内

デフォルト。このモードは、上記の遅延トランザクションモードと同じような動作になります。このモードで定義されたタスクを実行すると、(［トランザクション開始］特性に基づいて)以下のようにトランザクションが開始されます。

  • トランザクションが開始されている場合は、タスクはそのトランザクションの一部になります。

  • トランザクションが開始されていない場合、新規の遅延トランザクションを開始します。

親タスクのトランザクションがロールバックされると、子タスクのトランザクションもロールバックされます。

1つの親タスクに対して、子タスク内で多くのトランザクションを開くことができるため、注意して使用しなければなりません。一度に複数のタスクレベルのロールバックするには、正当な理由がない限り、「新規の遅延トランザクション」を指定した方がより安全です。

N=新規の遅延トランザクション

このモードは、上記のネスト遅延トランザクションモードと同じような動作になります。このモードで定義されたタスクを実行すると、(［トランザクション開始］特性に基づいて)以下のようにトランザクションが開始されます。

  • 新しい遅延トランザクションが開始されます。

  • (コールトランザクションにかかわらず、)トランザクションが終了した後に、このトランザクションによるどのような更新内容もコミットされます。

  • トランザクションがまだオープン中の場合、コールトランザクションを終了させることができます。コールトランザクションを終了させても、このトランザクションには影響しません。

  • 新規のトランザクションは、独自のトランザクションキャッシュを持っています。トランザクションキャッシュはトランザクション間で共有することができず、一方のトランザクション内での更新内容は他のトランザクションで参照することはできません。

O=なし

Magic xpaは、タスクのためにトランザクションを開始しません。データの保存を行わないタスク上でのみ使用しなければなりません。これによって、子タスク内でトランザクションをバンドルする、トランザクション・ラッパを開くようなことを防止します。バックグラウンドで使用するメイン画面やフレームを作成する場合は、これを使用してください。

注意：

  • サブフォームやフレーム上で実行しているタスクは、上記のリッチクライアントタスクでのトランザクションモードのどれかを設定することができます。

  • ［出力先］特性を設定した［コール］処理コマンドを使用した場合、サブフォームやフレーム内で実行しているタスクは終了します。

    • タスク内のトランザクションが遅延している場合、トランザクションが（開始したタスクで）終了するまで、データはコミットされません。

    • タスクが新規に開始したトランザクションが遅延の場合、そのトランザクションは終了し、データはコミットされます。

オフラインタスク

ローカルデータソースでは、物理トランザクションとして動作します。ローカルデータソースを含むすべてのタスクは、同じトランザクション内で動作します。

ローカルデータのコミットは、トランザクションを開いたタスクで行ってください。トランザクションが兄弟タスクでも開始されている場合、これらのタスクのデータもコミットされます。

ローカルデータソースを持つタスクをロールバックした場合、以下をロールバックします。

  • ローカルデータソースを持つすべてのタスク。

  • 親タスクの遅延トランザクション

関連トピック：

データ管理

データベース制約がある場合に、1 対多の関係を実現するには

ネストされたトランザクションを実現するには

トランザクションをオープンしないようにするには

データベーストランザクションを初期化するには


タスク特性 データ トランザクション開始

ホーム > リファレンスガイド > プログラム > タスク特性 > ［データ］タブ > トランザクション開始

トランザクション開始

この特性は、以下のいずれかを設定できます。

オプション

内容

オンライン

バッチ

リッチクライアント

T=タスク前の前

トランザクションは［タスク前］の前にオープンされ、［タスク前］の後でクローズされます。

このオプションが選択された場合、以下のように動作します。

  • タスク起動前にトランザクションをオープンします。

  • データファイルの更新後にのみトランザクションがコミットされます（これは［タスク後］が実行された後で処理されます)。

  • サブタスクを含む、オープンとコミットの間のすべての処理コマンドをがトランザクション範囲になります。

タスクレベルのトランザクションの使用を参照してください。

✓

✓

✓

G=グループ

トランザクションは［グループ前］の前にオープンさます。グループトランザクションのトリガとなる項目を指定する必要があります。この項目は、タスクの「グループレベル」のロジックユニットが定義されている必要があります。

大きなテーブルの処理を、レコードグループで分割して処理する場合にこのトランザクションを使用することができます。この方法を使用してトランザクションの範囲を減らすことで、トランザクション処理の利点が維持されます。

✓

L=レコードロック時

トランザクションはレコードがロックされる前にオープンされ、レコードが更新された後にクローズされます。

✓

✓

P=レコード前の前

トランザクションは［レコード前］の前にオープンされ、レコードが更新された後にクローズされます。

このオプションが選択された場合、以下のように動作します。

  • レコードをフェッチする前に、トランザクションはオープンされます。

  • ［レコード後］の実行に続いていてデータファイルを更新した後でのみ、トランザクションはコミットされます。

  • サブタスクを含め、オープンとコミットの間のすべての処理コマンドがトランザクション範囲内として含まれます。

トランザクションはユーザとの対話状態でオープンされているため、トランザクションはロックを伴い、同じレコードやテーブルにアクセスしようとしている他のユーザに対して問題を発生させる可能性があります。このため、マルチユーザ環境では、通常、オンラインタスクの前処理レベルでのトランザクションを定義するべきでありません。

✓

✓

✓

S=レコード後の前

トランザクションは［レコード後］の前にオープンされ、レコードが更新された後にクローズされます。

このオプションが選択された場合、以下のように動作します。

  • ［レコード後］を実行する前に、トランザクションがオープンされます。

  • ［レコード後］が実行された後でデータビューが更新された後でのみトランザクションがコミットされます。

サブタスクの呼び出し処理を含むすべての［レコード後］での処理コマンドはトランザクション内に含められています。

トランザクションが失敗した場合、［エラー発生時］特性の設定にしたがって、エンジンの実行処理は復旧または中断します。この設定の動作の代わりに、タスクに［エラー］ロジックユニットを定義することで対応させることもできます。

✓

✓

U=レコード更新前

トランザクションはデータベースに対して物理更新処理が送られる前にオープンさます。

このオプションが選択された場合、以下のように動作します。

  • トランザクションは、データファイルの更新処理の直前で［レコード後］の実行後にオープンされます。

  • データファイルの更新が実行された後でのみ、トランザクションはコミットされます。

このオプションを選択すると、トランザクションはレコードを更新する直前にオープンされます。この場合のみ、［更新レコードの識別］特性の設定内容に従って、レコードをロックする要求を送信します。

このオプションの有利な点は、トランザクション範囲が最小（並行性が最大）になることです。しかし、ロックが最後の瞬間に実行されるため、別のユーザがデータを更新することも考えられます。この場合、更新されたデータが失われる可能性があります。

「更新」と定義されたレコードレベルのトランザクションは、［レコード後］の処理コマンドを含まないことに注意してください。これによってエンドユーザ間での並行処理での潜在的な問題を減らすため、「更新」と定義されたトランザクションは、マルチユーザ処理のアプリケーションで最も推薦されます。

✓

✓

N=なし

トランザクションはオープンされません。トランザクションをオープンしたタスクからこのタスクが起動された場合、そのトランザクションを使用しているように動作します。

 ✓ ✓ ✓

注意：

［トランザクションモード］特性が「O=なし」の場合、［トランザクション開始］特性は無効になります。

メインソースが変更された場合、「トランザクション開始」特性は、SQL DBMSにおけるロックとトランザクションに関する一般的な制限規則（ロックに先立って、必ずトランザクションが開始されていなければならない）に適合するように、以下のように自動的に変更されます。

  1. 「トランザクションモード」、「トランザクション開始」、「ロック方式」、「タスクタイプ」などの特性をチェックします。

  2. もし設定が上記制限規則に適合していなければ、この制限規則を満たし、かつトランザクションが最小になるような設定に「トランザクション開始」特性が設定されます。

  3. もし現在の設定で制限規則をすでに満たしている場合には、設定は変更されません。

［トランザクションモード］特性が「P=物理」の場合、［トランザクション開始］特性が「N=なし」または「L=レコードロック時」に設定すると［キャンセル］イベントが発行されても変数項目の値が初期化されません。

関連トピック：

トランザクションをオープンしないようにするには

データベーストランザクションを初期化するには


タスク特性 データ 空のデータビューを許可

ホーム > リファレンスガイド > プログラム > タスク特性 > ［データ］タブ > 空のデータビュー許可

空のデータビュー許可

データビューにレコードが全くないメインソースを使用してタスクが実行される場合でも、現在のタスクを実行し続ける（終了しない）ことができます。

この特性は、メインソースが定義されていて、さらに［RM互換］ロジックユニットがない照会または修正モードのオンラインタスクまたはリッチクライアントタスクで有効です。

注意：

  • この特性は、インタラクティブでないリッチクライアントタスクでは無能になります。

  • リッチクライアントタスクでは、サブフォーム上のタスクのデータビューが無い場合は、実行できません。この問題については、.テクニカルノートを参照してください。

上記の条件が満たされていて、この特性が「Yes」に設定された場合、以下のように動作します。

  • タスクモードは変更されません（登録モードになりません）。

  • データが割り当てられているコントロールにはパークできません。

  • これらの項目の値は、［タスク前］で定義された値になります。

  • これらの項目の代入値は無視されます。

  • フォームの上にパーク可能なコントロールがある場合、キャレットはそこに置かれます。存在しない場合は、キャレットはどこにもパークしません。.

  • ［レコード前］と［レコード後］は実行されません。

  • リンクは実行されません。

  • ［データビューが空］イベントが実行されます。（この［イベント］ロジックユニットにロジックを定義することができます。）

  • データビューに1レコードが存在するタスクの照会モードと同じように、［次行］などのイベントは動作します。

  • ［サブフォーム］コントロールはパーク可能ではありませんが、通常と同じように動作します。

  • ［ツリー］コントロールはパーク可能ではありませんが、ツリーは表示され、コンテキストメニューも有効になります。

  • ［テーブル］コントロールは、ハイライト行を表示しません。

｢No｣が設定された場合、レコードが無いとタスクは登録モードになります。

ここでズームすることで式を設定することもできます。（サポートバージョン：2.4）

この特性は、［RM互換］ロジックユニットが定義されたタスクでも有効です。（サポートバージョン：2.4）

関連インタフェース：

非インタラクティブなリッチクライアントタスクでは無効です。

関連トピック：

データビューが空 イベント

EmptyDataView関数


タスク特性 データ キャッシュ範囲

ホーム > リファレンスガイド > プログラム > タスク特性 > ［データ］タブ > キャッシュ範囲

キャッシュ範囲

タスクのメインソースで使用するキャッシュ範囲を指定します。

オンラインタスクが定義されており、物理トランザクションを使用しているオンラインタスクの場合は、以下の４つのオプションが有効になります。最初の２つは遅延トランザクションでも利用可能です。

  • P=位置 …… キャッシュはフェッチしたレコードの位置に関する情報を保持します。この設定は、テーブルをメインソースとして使用する場合にのみ実行されます。次に後方スクロールを行うと、レコードの物理的な位置が読み込まれ、データが再びフェッチされます。

  • D=位置とデータ …… 位置のほかに、レコードの実際のデータがキャッシュされます。事前にフェッチされているデータを読み込む場合には、キャッシュにすでに保存されている値が表示されます。別のタスクで修正されたレコードを更新しようとするとエラーが発生します。

  • N=なし …… キャッシュは行われません。レコードの読み込み処理が行われる度に、データベースからの読み込みが行われます。レコードのマルチマークができなくなります。

  • T=メインソースに依存 …… （デフォルト）メインソースの［データソース特性］の［キャッシュ範囲］の指定に依存します。

注意：

この特性が「N=なし」に設定された場合、レコードのマルチマーク処理ができなくなります。

キャッシュメカニズムによって、レコードレベルでデータを保存することができます。取得されたレコードは、クライアント・キャッシュに保存することができます。レコードはタスク実行中、キャッシュに保存され、通常はタスクの終了時に解放されます。複数のレコードを処理するタスクでは、キャッシュを使用することで、パフォーマンスを向上させるための現実的な選択肢となります。

キャッシュに格納されたテーブルを使用して動作する場合、以下の点に注意してください。

  • キャッシュに格納されたテーブルは、メモリを消費します。したがって、クライアントPCに必要なメモリが確保されていることを確認してください。

  • キャッシュから読み出されるデータは、必ずしも直近で更新されたデータではない場合があります。

クライアントPCに十分なメモリリソースが確保されていない場合、パフォーマンスは低下する可能性があります。［キャッシュ範囲］は、テーブルレベルで定義することでき、タスクレベルで上書きすることができます。タスクのデフォルトは、テーブルから継承されます。

インタラクティブなタスクでは、メインソースとリンクテーブルのに関連します。バッチタスクでは、リンクテーブルのみ関連します（メインソースの同じレコードを何度もアクセスすることはできません。しかし、同じリンクは異なるレコードので使用することができます)。

バッチタスクでは、リンクによって同じ範囲のレコードを何度もアクセスすることがあります。キャッシュがメインソースから各レコード毎のリンクテーブルのために使用されない場合、リンクレコードは再度データベースから読み込まれます。キャッシュを使用する場合、リンクテーブルはクライアントに保存されて、取得されます。これによって、バッチタスク全体の処理時間が改善されます。


タスク特性 データ ビュー事前読込

ホーム > リファレンスガイド > プログラム > タスク特性 > ［データ］タブ > ビュー事前読込

ビュー事前読込

この特性は、事前にデータビュー全体を読み込むために使用されます。

  • Yes …… データビュー用にテーブルのレコードがすべて事前に読み込まれます。

  • No …… テーブルのレコードが最初の処理分のみ読み込まれます。

  • 式 …… 式が使用された場合、(［タスク前］の後で)レコードの取得時前に評価されます。従って、［タスク前］で更新される変数項目を式が使用している場合、変更された値をもとに処理されます。

この特性は、［キャッシュ範囲］特性が、「位置とデータ」または「メインソースに依存」に設定されている場合のみ有効になります。

［ビュー再表示］イベントを実行すると、再度テーブルの内容が事前読み込みされます。従って、この特性が式で定義されている場合、再評価されます。

タスクの［ビュー事前読込］が「Yes」に設定された場合、［ツリー］コントロールに対するこの特性も「Yes」と見なされます。

注意：

［ビュー事前読込］特性が「Yes」に設定されている場合、その仕様上、範囲設定条件を満たすレコードがタスクオープン時にすべて読み込まれます。対象レコード数が多い場合には、それに比例して時間がかかります。実用的なスピードを得るために、キー項目で範囲を絞り込んで、対象レコード数がせいぜい数百程度になるように設計することを推奨します。

この特性は、インタラクティブでないリッチクライアントタスクでは無効になります。

リッチクライアントタスクでは、この特性を「Yes」に設定した場合、［チャンクサイズ（式）］特性をデータベースから全てのレコード数が取得できるだけの値を指定しておくことを推奨します。

スクロールバーのつまみ

この特性は、スクロールバーのつまみの位置を決めるためにも利用できます。 スクロールバーのつまみは、実行中のタスクが取り出したレコード数に基づいて位置を決定されます。

タスクがオープンされると、テーブルに表示するレコードとして最初の一式を読み込み、その内容に基づいてテーブル全体の大きさが決定されます。そして、エンドユーザがレコードをスクロールすると、つまみ用のレコードサイズが随時更新されます。

スクロールバーのつまみの位置を適切に表示させるためには、これらのレコードを事前に読み込む必要があります。

テーブルのつまみは、常にレコード数に反映されます。レコードが追加されたり、削除されると、つまみ用のレコードサイズも増えたり減ったりします。

注意：

リッチクライアントプログラムでは、データはサーバ側で読み込まれるだけでクライアントには送られません。スクロールバーのつまみは、クライアント側のデータに基づいて表示されるため、スクロールバーのつまみ表示はこのフラグには影響されません。しかし、［ビュー事前読込］特性を「Yes」に設定し、［チャンクサイズ］特性の値を増やした場合、データがクライアントに送られ、つまみが正確に表示されるようになります。

関連インタフェース：

非インタラクティブなリッチクライアントタスクでは無効です。

関連トピック：

データベースのアクセス頻度を減らすには


タスク特性 データ ロック方式

ホーム > リファレンスガイド > プログラム > タスク特性 > ［データ］タブ > ロック方式

ロック方式

この特性は、オンラインタスクとバッチタスクの両方で利用することができます。現行タスクが処理しているレコードに他のユーザがアクセスしないようにするために、Magic xpaがロックをかける時期とメモリ内で保持している情報に関して制御するかどうかを指定できます。

ロックの検証は、[更新レコードの識別]特性の指定内容に基づいて実行されます。この特性は、レコードを更新するために、Magic xpaがレコードの再読込をどのように行うかを指定するものです。

この特性の値としては、次のいずれかが指定できます。

  • I=即時 …… レコードが読み込まれると同時に、そのレコードにロックがかけられます。この場合、検証は行われません。ロックは、解除されるまで有効です。通常、レコードループは非常に短いため、この方式はバッチタスクのデフォルトで使用され、推奨されます。この方式は、データの完全性を増大させますが、並行性を減少させることになります。マルチユーザ環境のインタラクティブなタスクでは、ユーザが同じプログラムを使い続ける時間が予期できないため、この設定にしておくと、レコードのロックが異常に継続することがあります。
    この値は物理トランザクションにのみ適用されます。

  • O=入力時 …… ユーザがレコードの更新を始めた時に、ロックがかけられます。更新を始めた時とは、オンラインとリッチクライアントタスクの場合、入力カラムの先頭に文字を入力したり、チョイスコントロールで値を選択した場合にあたります。バッチタスクの場合は、ユーザによる操作がないため、[レコード後]や[レコード前]で実行される最初の[項目更新]処理コマンド、あるいはタスクやプログラムを最初に呼び出す際にロックが実行されます。このロック方式では検証が行われます。
    レコードが最初に読み込まれた時とロックされた時の間で変更されると、エンジンはレコードを再読して、更新された値を表示します。
    この値は遅延トランザクションと物理トランザクションに適用されます。
    このオプションは、ユーザがレコードを更新する場合だけ、レコードをロックしたいオンラインまたはリッチクライアントタスクで推奨しています。

注意：

  • デフォルトは、MAGIC.INIファイルの「SpecialDefaultTransactionMode」の設定によって変更することができます。

  • 遅延トランザクションの場合、データベースに対して物理ロックを行わないため、Magicエンジンを経由してロックが行われます。詳細は、Magicロックを参照してください。

  • 入力時ロックでは、[更新レコードの識別]特性を使用した修正検証が必要となります。Magic xpaは以下の場合にロックを行います。

  • 入力カラムが修正された場合

  • [ロック]特性が「Yes」に設定された[コールタスク/プログラム]処理コマンドが実行された場合

  • [強制更新]特性が「Yes」に設定された[項目更新]処理コマンドが実行された場合

  • [フォーム入力]処理コマンドが実行された場合

  • イベントによってプログラムが実行された場合。イベントのデータビューがロックされます。

  • B=更新時 …… Magic xpaがロックするレコードは、実際にデータベースに書き込まれる前のレコードに限られます。対話レベル（オンライン）と[レコード後]（オンライン、バッチ）の実行中に、ロックがかけられることはありません。ロックの検証段階でエラーが発生すると（レコードを読み取った後で別のユーザがそれを更新した場合）、更新は実行されず、その旨を報告するメッセージが表示されます。現在のタスクによって呼び出されたサブタスクは、他のテーブルに対して情報を更新していることがあり、そのため現行レコードがディスクに対して更新されていないとデータの整合性に問題が発生します。データの整合性で問題が生じないようにするため、この値を使用する時は注意してください。基礎となるデータベースでロック処理による負荷が大きい時や、検証に失敗しても、タスクの構造上、データの整合性を維持できる時に限って使用するようにしてください。
    この値は物理トランザクションにのみ適用されます。

  • N=なし …… レコードはロックされません。このため、他のクライアントがアクセスして更新したばかりのレコードを更新してしまい、データの整合性が失われる可能性があるため、このオプションの設定は、注意して使用しなければなりません。オンラインタスクのデフォルトです。
    Magic xpaは、変更内容をデータベースに送る前にデータベースをロックしません。このオプションは、レコードの削除/更新を行う物理トランザクションタスクでは推奨されません。「なし」を使用すると、2つの問題が発生します：

  • レコードが変更されたかどうかをチェックしませんん。ユーザは、古い値をもとにレコードを更新するかもしれません。

  • Magic xpaは、レコードをロックすることなく、関連したDMLコマンドを発行します。DMLコマンドには“NOWAIT”パラメータがありません。そして、レコードが別のユーザによってロックされるとMagic xpaはレコードのロックが解放されるまで待ちます。Magic xpaは、これに対するコントロールを持ちません。このため、Magic xpaが応答しないように受け取られるかもしれません。

注意：

[トランザクションモード]が「O=なし」の場合、[トランザクション開始]特性は無効になります。

関連インタフェース：

非インタラクティブなリッチクライアントタスクでは無効です。

関連トピック：

マルチユーザ環境


タスク特性 データ エラー発生時

ホーム > リファレンスガイド > プログラム > タスク特性 > ［データ］タブ > エラー発生時

エラー発生時

エラー発生時のデフォルトの対応方法を指定します。「R=復旧」または「A=アボート」のいずれかを指定します。

通常は、オプションを適切に選択することで、エラー処理のための特別なユニットは必要ありません。デフォルトのオプションでは対応が適当でない場合に、エラーイベントのユニットを作成することでデフォルト設定を変更します。

  • A=アボート …… エラーが発生すると、現在のトランザクションがロールバックされます。
    物理トランザクションおよび遅延トランザクションのいずれの場合にも、現在のデータビューを削除し、エラーが発生したタスクをアボートします。
    この方式は、「ロックエラー」や「不正ログオン」のような、エンドユーザが回復できるエラーに対しては、適用されません。エラーによってタスクが中断された場合、実行時のタスクツリーはそのトランザクションを開いたタスクより上位で適切に閉じられます。さらに、エラー・イベントのハンドラが適切に実行されます。

  • R=復旧 …… できる限り現在のデータビューを維持して現行タスクにとどまり、エンドユーザがエラーから回復できるようにします。復旧を使用すると、エンドユーザはエラー発生後でもアプリケーション内で作業を続行することができます。
    この方式では、「ロックエラー」や「最大接続数超過」のエラーなどに対しては、 エンドユーザの介入なしに、Magic xpaは自動的に処理を繰り返します。

以下は、エラーのリストと選択された対応動作に基づいて自動的に行われる処理内容について説明したものです。各動作の詳細は、「エンジンの対応」を参照してください。

エラー | アボート | 復旧 遅延トランザクションを使用したオンライン、またはインタラクティブなリッチクライアント | 復旧 物理トランザクションを使用したオンライン、バッチと非インタラクティブなリッチクライアント
テーブルがロックできない | 自動リトライ※※ | 自動リトライ 失敗した場合は、ユーザによってリトライ | 自動リトライ 失敗した場合は、ロールバックと再起動
レコードロック | 自動リトライ | 自動リトライ 失敗した場合は、ユーザによってリトライ | 自動リトライ 失敗した場合は、ロールバックと再起動
最大接続数に到達 | タスクをアボート | 自動リトライ 失敗した場合は、ユーザによってリトライ | 自動リトライ 失敗した場合は、ロールバックと再起動
重複インデックス | タスクをアボート | ユーザによってリトライ | ユーザによってリトライ
制約違反 | タスクをアボート | ユーザによってリトライ | ユーザによってリトライ
トリガ失敗 | タスクをアボート | ユーザによってリトライ | ユーザによってリトライ
レコードが更新されていた | タスクをアボート | ロールバックと再起動 | ロールバックと再起動
レコードを別ユーザが変更※ | タスクをアボート | ロールバックと再起動 | ロールバックと再起動
テーブルのオープンに失敗 | タスクをアボート | タスクをアボート | タスクをアボート

注意：

※他のユーザによってレコードが変更された場合、レコードにパークした時、（データはキャッシュにあるため）変更されたことを確認することができません。しかし、データを修正しようとした時点で、現在の値がディスクから読まれ、「レコードは変更されました-再読み込みします」のメッセージが表示されます。

※※自動リトライは、動作環境の［コマンド処理のリトライ間隔］の設定に依存します。

［キャッシュ範囲］特性を「位置とデータ」に設定すると、レコードの実際のデータもキャッシュに保存します。このレコードから再度読み込んだ場合、キャッシュに保存されている古い値を取得することになります。別のタスクによってこのデータが変更されても、現在のタスクからは参照できないため注意してください。別のタスクで修正されたレコードを更新しようとすると、エラーメッセージが表示されます。


タスク特性 データ SQL SQLステートメントの出力

ホーム > リファレンスガイド > プログラム > タスク特性 > ［データ］タブ > SQLステートメントの出力

SQLステートメントの出力

［SQLステートメントの出力］には、タスクによって作成されたSQLステートメントが表示されます。メインソースがSQLコマンドでない場合、ここは無効になっているか、何も表示されません。

テキスト領域は表示のみで入力はできません。表示されているテキストをクリップボードにコピーすることは可能です。


タスク特性 オプション

ホーム > リファレンスガイド > プログラム > タスク特性 > ［オプション］タブ

［オプション］タブ

ここでは、実行モードの際に［オプション］メニューで有効になる処理モードを指定できます。これは、タスクの初期モードとして指定できるモードの設定にもなります。

［オプション］タブの全ての特性は、「Yes」、「No」または式で指定します。式で指定した場合は、実行モード時に動的に指定されます。

注意：

ここで「No」と指定された処理モードをが［初期モード］特性で指定されている場合、タスク実行時にエラーメッセージが表示され、タスクが終了します。

特性

内容

実行モード

オプション

この特性を「No」にすると、エンドユーザ用のオプションメニューが無効になります。つまり、タスクは初期モードで動作し、その初期モードをエンドユーザが変更できなくなります。

オンラインタスクのデフォルトは「Yes」、バッチタスクのデフォルトは「No」です。このオプションは、オンラインかバッチタスクでのみ有効です。

修正

この特性を「No」にすると、エンドユーザは修正モードが使えません。この特性が「No」に設定された場合、新しく作成されたレコードの修正は可能です。

関連トピック： エンドユーザがレコードを修正することを防止するには

登録

この特性を「No」にすると、エンドユーザは登録モードが使えません。

関連トピック： エンドユーザがレコードを追加することを防止するには

削除

この特性を「No」にすると、エンドユーザは削除モードが使えません。

関連トピック： エンドユーザがレコードを削除することを防止するには

照会

この特性を「No」にすると、エンドユーザは照会モードが使えません。

位置付

この特性を「No」にすると、［位置付］イベントが発行されなくなります。また、照会モードでの自動位置付処理が実行されなくなります。

このオプションは、オンラインかインタラクティブなリッチクライアントタスクでのみ有効です。

このイベントは、Magicエンジンによって処理されません。ユーザ機能コンポーネントが読み込まれると、イベントが発行されると、コンポーネントはこのイベントを処理して、［位置付］ダイアログを表示します。

（リッチクライアント-サポートバージョン：2.2、オンライン：-サポートバージョン：1.9）

範囲

この特性を「No」にすると、、［範囲］イベントが発行されなくなります。

このオプションは、オンラインかインタラクティブなリッチクライアントタスクでのみ有効です。

このイベントは、Magicエンジンによって処理されません。ユーザ機能コンポーネントが読み込まれると、イベントが発行されると、コンポーネントはこのイベントを処理して、［範囲］ダイアログを表示します。

（リッチクライアント-サポートバージョン：2.2、オンライン：-サポートバージョン：1.9）

エンドユーザ機能

インデックス変更

この特性を「No」にすると、［インデックス］イベントが発行されなくなります。また、自動インデックス最適化も行われなくなります。

このオプションは、オンラインでのみ有効です。

注意：

現在、この機能は利用できません。

ソート

この特性を「No」にしておくと、［ソート］イベントが発行されなくなります。また、自動インデックス最適化も行われなくなります。

このオプションは、オンラインかインタラクティブなリッチクライアントタスクでのみ有効です。

このイベントは、Magicエンジンによって処理されません。ユーザ機能コンポーネントが読み込まれると、イベントが発行されると、コンポーネントはこのイベントを処理して、［ソート］ダイアログを表示します。

入出力ファイル

この特性を「No」にすると、エンドユーザは入出力ファイルの指定が変更できなくなります。

このオプションは、オンラインかバッチタスクでのみ有効です。

注意：

現在、この機能は利用できません。

インデックス最適化

［位置付/範囲］特性で指定されている項目を判断し、最適なインデックスを検索します。指定されている項目のいずれかがインデックスのセグメントに含まれ、使用中のインデックスのセグメントにその項目が含まれない場合、使用中のインデックスを［位置付/範囲］において指定されている項目が第一セグメントとなるインデックスに自動的に変更します。その項目は、そのインデックス内で唯一のデータ項目であっても構いません。

この特性を「No」にしておくと、インデックス最適化処理ができなくなります。

照会モード位置付

この特性を「No」にすると、照会モードでの自動位置付処理が行われなくなります。

このオプションは、オンラインかインタラクティブなリッチクライアントタスクでのみ有効です。

（リッチクライアント-サポートバージョン：1.9）

注意：

照会モードで［エディット］コントロールにフォーカスがある場合の背景色は、この特性の設定値によって以下のように表示されます。

  • Yes …… 背景色が白になります。

  • No …… フォーカスのないコントロールと同じ表示になります。

データ出力

この特性を「No」にすると、［データ出力］イベントが発生しなくなります。

このオプションは、インソースが定義されている オンラインタスクやインタラクティブなリッチクライアントタスクで有効です。

このイベントは、Magicエンジンによって処理されません。ユーザ機能コンポーネントが読み込まれると、イベントが発行されると、コンポーネントはこのイベントを処理して、データ出力ウィザードを起動します。

（リッチクライアント-サポートバージョン：2.2、オンライン：-サポートバージョン：1.9）

関連トピック：

エンドユーザがタスクモードを変更することを防止するには


タスク特性 拡張

ホーム > リファレンスガイド > プログラム > タスク特性 > ［拡張］タブ

［拡張］タブ

［拡張］タブには以下の特性があります。

並行性 | サーバでの動作
並行実行 メインプログラムの初期化 グローバル変数の複写 単一インスタンス | SOAPヘッダ 作成コンテキストの保持 チャンクサイズ（式） 終了時URL


タスク特性 拡張 並行実行

ホーム > リファレンスガイド > プログラム > タスク特性 > ［拡張］タブ > 並行実行

並行実行

この特性は、他の実行プログラムと並行して新しいコンテキストでタスクが実行するかどうかを指定します。

この特性は、一番上位のタスクでのみ有効です。つまり、プログラムは並行実行できますが、サブタスクは並行には動作しません。

ブラウザタスクをオンラインタスクやバッチタスクに変更した場合、この特性は「No」に設定されます。

［並行実行］特性が設定されたプログラムが呼び出された場合、全てのGUI要素は無視され、プログラムは個別のコンテキストで実行されます。

各コンテキストは、メインプログラムと独自のメモリテーブルのそれ自身のコピーで、個別のインスタンスのように動作します。

注意：

  • 並列プログラムがサーバで実行されるたびに、別スレッドが使用されます。これは、同時に実行することのできる並列プログラム数がライセンスで定義されたスレッド数やMAGIC.INIで定義された同時ユーザ数のどちらかより少ない値で実行されることを意味しています。

  • エンジンがクライアントライセンスで実行された場合、同時に実行することのできるバッチプログラム数は、ライセンスで指定される数に基づきます。

  • プログラムが、データ項目やコントロールの［選択プログラム］特性を使用して呼び出された場合、［並行実行］特性は無視され、プログラムはMDI（MDIで実行した場合）またはフローティング（SDIで実行した場合）で実行されます。

並行実行が設定されたプログラムには、以下の特性が無効になります。

  • 戻り値（［タスク特性］の［汎用］タブ）

  • ウィンドウ消去（［タスク特性］の［インタフェース］タブ）での「No」の設定

  • 初期モード（［タスク特性］の［汎用］タブ）での「P=親と同じ」の設定

すでにロードされているすべてのコンポーネントは、新しいコンテキスト内で再度ロードされます。しかし、新しい（［即時有効］特性がFalseにされている）コンポーネントが、新しいコンテキスト内でロードされた場合、そのコンテキストでだけ利用可能です。

モバイル仕様：

モバイル環境ではサポートされません。

例外：

オフラインプログラムは、並行プログラムになりません。非並行プログラムとして動作します。

関連トピック：

２つのタスクを並行に実行させるには


タスク特性 拡張 メインプログラムを初期化

ホーム > リファレンスガイド > プログラム > タスク特性 > ［拡張］タブ > メインプログラムの初期化

メインプログラムの初期化

新しいコンテキストのメインプログラムが実行されるか、コピーされるかを指定します。

この特性は、［並列実行］特性がチェックされた場合のみ有効です。

この特性がチェックされた場合、メインプログラムが新しいコンテキスト内で実行されます。全てのコンポーネントが読み込まれます（［即時有効］がチェックされている場合）。新規コンテキスト内で「オンデマンド」で初期設定されるコンポーネントは、必要な時にコンテキスト内で初期設定され、他のコンテキストに影響を及ぼしません。

プログラムがメニューまたはリクエストから呼び出される場合、データ項目は「メイン」のコンテキストからコピーされます。

この特性がチェックされない場合、メインプログラムは実行されず、新規コンテキスト内のメインプログラムの変数は、呼出したコンテキストのメインプログラムの項目値がコピーされます。ただし、OLE型とActiveX型の項目はコピーされません。従って、すでにインスタンス化されている場合は、新しいコンテキストの中でインスタンス化されません。

注意：

この特性がチェックされない場合、メインプログラムの［タスク前］ユニットは実行されません。しかし、［タスク後］ユニットはコンテキストがクローズされる時に実行されます。

BLOB型項目の動作については、「BLOB項目」のトピックを参照してください。

関連インタフェース：

非インタラクティブなリッチクライアントタスクでは無効です。


タスク特性 拡張 グローバルパラメータを複写

ホーム > リファレンスガイド > プログラム > タスク特性 > ［拡張］タブ > グローバル変数の複写

グローバル変数の複写

（SetParam関数を使用して定義する）グローバル変数を新規コンテキス内でどのように初期化するかを指定します。

この特性は、［並列実行］特性がチェックされた場合のみ有効です。

この特性をチェックすると、グローバル変数の値をコピーすることができます。コピー後は、個別に存在することになります。一方のコンテキスト内の値を変更しても、他方のコンテキストには影響しません。

プログラムがメニューまたはリクエストから呼び出される場合、パラメータは「メイン」のコンテキストからコピーされます。

プログラムがメニューから呼ばれるた場合、パラメータは、［ソースコンテキストメニュー］特性に基づいて、メインのコンテキストまたは現在のコンテキストからコピーされます。

SharedValGetとSharedValSet関数を使用することで、全てのコンテキストで1つのグローバル変数を共有させることができます。

BLOB型項目の動作については、「BLOB項目」のトピックを参照してください。


タスク特性 拡張 単一インスタンス

ホーム > リファレンスガイド > プログラム > タスク特性 > ［拡張］タブ > 単一インスタンス

単一インスタンス

並行実行タスクを使用してプログラムを再度呼び出した場合、デフォルトは新しいインスタンスでプログラムはオープンされます。

例えば、Internet Explorerを開く場合を考えます。最初にInternet Explorerを開くと、1つのインスタンスが開きます。そのインスタンスが開いている状態で、再びInternet Explorerを開くと、2番目のインスタンスが開きます。しかし、別のインスタンスが開いてほしくない場合もあります。2番目を呼び出す場合に、オリジナルのインスタンス上で起動させることになります。

２番目に起動するタスクも同じインスタンスで起動させたい場合、この特性をチェックします。

この特性がチェックされた場合、プログラムが２回目に起動されると、フォーカスはすでに実行されているインスタンス上に設定されます。しかし、（データビューの準備など）初期設定の処理は実行されません。

この特性は、オンラインタスクとバッチタスクでのみ有効です。

［単一インスタンス］特性をチェックすると、タスクは以下のように動作します。

  • タスクがまだ実行されてない状態で呼び出すと、タスクは実行されます。［コールプログラム］や［コール式］、［コール公開名］の各処理コマンド、やメニューや［選択プログラム］特性はこの特性に影響されます。

  • タスクがすでに実行されている場合、フォーカスはすでに実行中のタスクに設定されます。［プログラム再呼出］イベントは、フォーカスがタスクに設定されたことを示すために起動されます。

関連インタフェース：

非インタラクティブなリッチクライアントタスクでは無効です。


タスク特性 拡張 ヘッダ

ホーム > リファレンスガイド > プログラム > タスク特性 > ［拡張］タブ > SOAPヘッダ

SOAPヘッダ

[SOAPヘッダ]特性にはデータ項目を指定します。ここには、コンシューマから受け取った（リクエストの）ヘッダ情報が格納されます。また、任意の数の（応答の）ヘッダブロックをコンシューマに渡します。

[SOAPヘッダ]特性の内容はEDEV_SOAP_HEADERSという名前のルート要素を持ったXMLドキュメントです。このXMLドキュメントには、1つ以上のヘッダブロックを含める必要があります。

この特性はバッチプログラム（タスクツリー上のルートタスク）でのみ有効です。

この特性から[項目一覧]にズームし、BLOB型、文字型およびUnicode型の項目を選択してください。

実行時の考慮事項

Webサービスとして動作するプログラムに[SOAPヘッダ]特性が定義されている場合、受信リクエストのすべてのヘッダ内容がこの項目内に自動的に格納されます。

リクエスト処理の完了時にヘッダ項目の内容は、コンシューマに返されます。ヘッダをコンシューマに返さないようにするには、起動されたプログラムでヘッダ項目をNULLにする必要があります。

ヘッダ項目が定義され、項目がNULLではなく、XMLルート要素の名前がEDEV_SOAP_HEADERSでない場合、タスクはアボートします。その際、ヘッダ処理に失敗しましたというエラーが発生し、エラーログに書き込まれます。

関連インタフェース：

バッチプログラム（タスクではありません）

関連トピック：

SOAPヘッダの受信／送信を行うには


タスク特性 拡張 コンテキストの保持

ホーム > リファレンスガイド > プログラム > タスク特性 > ［拡張］タブ > 作成コンテキストの保持

作成コンテキストの保持

「Yes」（または、「True」を返す式）が指定されると、バッチタスクかオンラインタスクでリクエストを受け取るとコンテキストをオープンし、継続するリクエストに対してそのコンテキストを保持します。この特性は、バッチまたはオンラインプログラムのみ有効です。サブタスクでは無効になります。

この特性は、基本的にはバッチプログラムで使用されることを前提にしています。ただし、デバッグ用としてオンラインプログラムでも利用できるようにしています。

この特性は一般的に、各リクエストに対してコンテキストIDを渡しながら同一コンテキスト上でHTMLページを切り替えるマージプログラムで、利用されます。

この特性を使用した場合、コンテキストは[コンテキストの非稼働タイムアウト]の値を受け取ります。この値は、リクエストの処理が完了した時点でリセットされます。

コンテキストリクエストには、以下のHTTPパラメータを含めることができます。

  • CTX

  • TRMCTX

デフォルト: | No
関連インタフェース： | オンライン、バッチプログラム（タスクではありません）

関連トピック：

クライアント側ID


タスク特性 拡張 コンテキストの保持 CTX

ホーム > リファレンスガイド > プログラム > タスク特性 > ［拡張］タブ > 作成コンテキストの保持 > CTX

CTX

CTX HTTPパラメータは、サーバ上に保存されるコンテキストIDです。

例：

http://MyServer/Magic22Scripts/Mgrqisipi.dll? APPNAME=MyApp&PRG NAME=MyProg&CTX=9755586289880

CTXコンテキストID は、GetParam関数やCTXGetId関数を使用して、現在のURLによって作成されたたタスクによって受け取ることができます。

実行時、以下のように動作します。

  • コンテキストは存在しているが非稼働（ペンディング） …… CTXパラメータで設定されたコンテキストは存在していますが稼働していない場合、コンテキストは稼働し、要求されたプログラムはコンテキスト内で実行されます。

  • コンテキストは存在しているが稼働中（実行中） …… 特定のコンテキスト用のリクエストが送信され、コンテキストがそのリクエストに応答した場合、送信されるリクエストは前のリクエスト処理が完了するまで保持されます。複数のリクエストが同じコンテキスト内で実行待ちになっている場合、到着順に随時処理を行います。ペンディング中のリクエストがタイムアウトを超えた場合、リクエストの処理は失敗します。

  • 指定したコンテキストが存在しない …… リクエストは失敗し、次のエラーメッセージが表示されます。

-197, Context not found.

  • コンテキストが指定されていない …… CTXが指定されていない場合、リクエストは新しいコンテキストをオープンします。

注意：

コンテキストのオープンとともに、バッチやブラウザプログラムは、CTXパラメータを使用して実行されます。


タスク特性 拡張 コンテキストの保持 TRMCTX

ホーム > リファレンスガイド > プログラム > タスク特性 > ［拡張］タブ > 作成コンテキストの保持 > TRMCTX

TRMCTX

TRMCTX HTTPパラメータには、Yまたは、N を指定します。

例：

http://MyServer/Magic2xScripts/Mgrqisipi.dll? APPNAME=MyApp&PRG NAME=MyProg&CTX=9755586289880&TRMCTX=Y

TRMCTX パラメータは、リクエストにCTXパラメータが指定されていて、サーバ上にコンテキストが存在している時のみ有効です。

リクエストによってコンテキストが定義され、 TRMCTX=Y が指定されている場合以下のように動作します。

  • 要求されたプログラムは、設定されたコンテキスト内で実行されます。

  • 先頭のプログラムが完了した場合、コンテキストはクローズされます。


タスク特性 拡張 コンテキストの保持 クライアント側ID

ホーム > リファレンスガイド > プログラム > タスク特性 > ［拡張］タブ > 作成コンテキストの保持 > クライアント側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］で指定することができます。


タスク特性 拡張 チャンクサイズ

ホーム > リファレンスガイド > プログラム > タスク特性 > ［拡張］タブ > チャンクサイズ（式）

チャンクサイズ（式）

この特性は、ブラウザタスクとリッチクライアントタスクにのみ関連し、一度にクライアントに送信するレコード数を表す式を指定します。これにより、新しいレコードやページを表示する時にローカルのキャッシュを参照し、アプリケーションサーバへ戻る回数を減らすことにより、ネットワークの負荷を軽減します。この特性には、数値が返る式を指定します。この式の評価はタスクを初期化する時点で行われます。

例えば、この特性が「100」に設定された場合、タスク起動時にアプリケーションサーバから最初の100レコード分がクライアントに渡されます。これにより、エンドユーザがローカル上で最初の100レコードが参照できるようになります。エンドユーザが、指定されたレコード数を越えてスクロールしようとした場合、クライアントはサーバにアクセスし、追加の100レコードを受け取ります。

受け取ったレコードデータは、ローカルキャッシュとしてクライアントに蓄積されます。エンドユーザがテーブルの先頭か末尾に移動した場合、ローカルキャッシュはクリアされ、１回の処理分の100レコードのみが格納された状態になります。

メインソースが定義されている場合

データビューが簡単なラインモードで表示されている場合、各レコードのサイズとエンドユーザによってスクロールされるであろうレコードの概算値に従って、必要なチャンクサイズが変更されます。頻繁に大量のレコードをスクロールするようにタスクが設計されている場合は、チャンクサイズを増やす必要があります。またレコードサイズが大きい場合は、チャンクサイズは小さくすることを推奨します。これによって各データのチャンクによて送信されるデータ量を減らすことができます。

チャンクサイズが指定されていない場合、デフォルト値は「30」になります。

メインソースが定義されていない場合

メインソースが定義されていないタスクは、レコードを取得する必要がありません。1レコードのみを仮想レコードとして提供するだけで十分です。このようなタスクは、［チャンクサイズ］特性を「1」に設定することを推奨します。チャンクサイズを「1」より大きな値を設定した場合、タスクは不要な仮想レコードを取得するように動作するためタスクの起動に時間がかかる場合があります。

チャンクサイズが指定されていない場合、デフォルト値は「1」になります。

デフォルト: | 0
関連インタフェース： | リッチクライアント


タスク特性 拡張 終了時URL

ホーム > リファレンスガイド > プログラム > タスク特性 > ［拡張］タブ > 終了時URL

終了時URL

ブラウザタスクの終了時に実行するハイパーリンクを指定します。[ハイパーリンクの設定]ダイアログでは、Magic xpaのプログラムだけでなく、URLも指定できます。これは内部的な終了アクションが発行された場合に実行されますが、ブラウザを終了した場合には実行されません。

関連インタフェース：

この特性は、ブラウザタスクにのみ関連します。

注意

ブラウザクライアント機能は、利用できません。


タスク特性 拡張 終了時URL ハイパーリンク設定

ホーム > リファレンスガイド > プログラム > タスク特性 > ［拡張］タブ > 終了時URL > ハイパーリンクの設定

ハイパーリンクの設定

フォームをHTTPサーバに送信する場合や、ハイパーリンクをクリックしてMagicプログラムを呼び出す場合に、使用するURLを定義することができます。

［終了時URL］特性からズームすることで、［ハイパーリンク］ダイアログにアクセスすることができます。

Magic xpaのハイパーリンクでは、以下のタイプのうちどれか1つを指定できます。

Magicプログラム

「M=Magicプログラム」を選択すると、以下の特性値を指定できます。

  • Magicアプリケーション（プロジェクト/アプリケーション）

  • 公開名

  • パラメータ

  • 出力先フレーム

詳細は、「Magicプログラム」を参照してください。

URL

「U=URL」を選択すると、以下の特性値を指定できます。

  • URL


タスク特性 拡張 終了時URL Magicプログラム

ホーム > リファレンスガイド > プログラム > タスク特性 > ［拡張］タブ > 終了時URL > Magicプログラム

Magicプログラム

［ハイパーリンク設定］ダイアログ内で、「M=Magicプログラム」を選択すると、他のプロジェクトのMagicプログラムに対するハイパーリンクを設定することができます。

フォームをHTMLに変換する際に、Magic xpaは以下の内容を基にURLを作成します。

  • ［環境設定］ダイアログの［アプリケーションサーバ］タブに設定されたHTTPリクエスタ

  • ［ハイパーリンク設定］ダイアログで指定された［アプリケーション名］と［公開名］の各特性

  • ［パラメータ］特性に指定されたパラメータ

ハイパーリンクタイプとして「M=Magicプログラム」を選択した場合、以下の特性値を定義することができます。

  • Magicアプリケーション …… 起動するプログラムが定義されているMagic xpaのシステム（プロジェクト/アプリケーション）の名前を指定します。左側の入力欄からズームすると、［プロジェクトを選択］ダイアログが表示されます。ここからプロジェクト/キャビネットファイルを選択できます。また、右側の入力欄からズームすることで定義式で指定することができます。

  • 公開名 …… 起動するプログラムの公開名を指定します。左側の入力欄からズームすると、指定されたプロジェクト内のプログラム一覧が表示されます。ここからプログラムを選択できます。また、右側の入力欄からズームすることで定義式で指定することができます。

  • パラメータ …… プログラムに渡すパラメータを指定します。入力欄からズームすると、［パラメータ］テーブルが表示されます。ここからパラメータを選択できます。

マージフォームの入力項目を使用するMagicプログラムへの呼び出しを指定した場合、パラメータ設定から［パラメータ］テーブルにズームできます。

  • 項目 …… ［データ項目］リストの項目名

  • 式 …… 指定した値を渡す場合に使用します。

  • 内容 …… データ項目の説明が表示されます。


タスクエディタ

ホーム > リファレンスガイド > プログラム > タスクエディタ

［タスク］エディタ

［タスク］エディタには、データビュー、タスクロジック、およびフォームを定義するためのエディタが提供されています。

［データビュー］エディタ

このウィンドウは、タスク定義の一部としてタスクのデータビューインタフェースを定義します。データビューの要素には、テーブル、データ項目、ソート、および範囲が含まれています。［データビュー］エディタは、V9Plus以前のMagic xpaのレコードメインや［DBテーブル］テーブルに相当するものです。

［データビュー］タブをクリックするか、［タスク環境］メニューの［データビュー］をクリックすることで［データビュー］エディタがオープンされます。

［ロジック］エディタ

このウィンドウは、タスクレベルのハンドラや［イベント］ロジックユニット、コントロールハンドラ、および関数などのタスクのロジックセグメントを定義します。［ロジック］タブをクリックするか、［タスク環境］メニューの［ロジック］をクリックすることで［ロジック］エディタがオープンされます。

［フォーム］エディタ

このウィンドウは、タスクのフォーム表示を定義します。［フォーム］タブをクリックするか、［タスク環境］メニューの［フォーム］をクリックすることで［フォーム］エディタがオープンされます。

［説明］欄

各オブジェクトのコメント（F12）として、「/*」と「*/」で囲まれた文字列を入力すると、［タスク］エディタ上でこのオブジェクトを使用している場所にカーソルを置くと、下の説明欄にコメントの内容が表示されます。

以下の図は、［データ］リポジトリで「/*DVDタイトル*/」と定義されたデータソースを［データビュー］エディタで定義した場合の表示例です。

関連トピック：

［タスク］エディタの動作


タスクエディタ 動作

ホーム > リファレンスガイド > プログラム > タスクエディタ > タスクエディタの動作

［タスク］エディタの動作

［タスク］エディタの動作について以下に説明しています。

エディタ間の切替

Ctrl+Tabを押下することで［タスク］エディタ内の現在のタブから別のタブに移動できます。タスクを作成して最初に［タスク］エディタに入った場合、［タスク］特性が自動的に開きます。［タスク］エディタを最初に開いた場合、［フォーム］エディタ以外は空の状態になっています。

一方のタブから別のタブに切り換えた時点で、現在の修正内容が確定されます。

  • ［データビュー］エディタに切り換えるためには、Ctrl+1キーを押下するか［データビュー］タブをクリックしてください。

  • ［ロジック］エディタに切り換えるためには、Ctrl+2キーを押下するか［ロジック］タブをクリックしてください。

  • ［フォーム］エディタに切り換えるためには、Ctrl+3キーを押下するか［フォーム］タブをクリックしてください。

タスクエディタからロジックユニットの作成／アクセスを行う

右クリックで表示されるコンテキストメニューから［ロジック］を選択し、ハンドラを選択することで、［タスク］エディタから直接ロジックユニットを作成したり、アクセスすることができます。［ロジック］メニューは、［データビュー］エディタや［ロジック］エディタ、［フォーム］エディタのどこでも表示されます。［ロジック］メニューには、以下のオプションが表示されます。

  • コントロールに対応した既存のロジックユニット …… （現在のタスク内に定義された）コントロールに対応した既存のロジックユニットがすべて表示されます。［実行イベント］特性にイベントが定義された［プッシュボタン］コントロールの場合、このイベントが定義されたロジックユニットをグループ化した状態で表示されます。

  • 項目に対応した既存のロジックユニット …… この項目に対応する（現在のタスクに定義されている）ずべての［項目変更］ロジックユニットが表示されます。コントロール上でパークしている場合ば、そのコントロールに設定されている項目のロジックユニットが表示されます。

  • ［イベント実行］処理コマンドに対応したロジックユニット …… のイベントに対応する（現在のタスクに定義された）既存のロジックユニットがすべて表示されます。

  • プッシュボタンの実行イベントに対応したロジックユニット …… ［プッシュボタン］コントロールの［実行イベント］特性に定義されたイベントに対応するロジックユニットが表示されます。

  • 事前定義のロジックユニット …… ［事前定義ロジック］ テーブルに定義されたすべてのロジックユニットが表示されます。

  • 新規作成 …… そのコントロールや項目に対応する［イベント］ロジックユニットを作成します。コントロールや項目にパークしていない状態で実行すると、新規ヘッダ行が［ロジック］エディタの最終行に作成されます。

変更内容の保存

データビュー、ロジック、またはフォームの各エディタでの変更処理は、タスク全体が変更されたものとみなさます。一方のタブから別のタブに切り換えた時点では、変更内容の保存確認は表示されません。各エディタでの更新は、タスク全体の更新内容として保存されるか、キャンセルされます。

編集位置の保持

一方のエディタから他方に移動した場合、Magic xpaはその時点での状態（行の位置、項目、ノードの拡張／縮小状態）を保持します。

例えば、［ロジック］エディタで、いくつかのロジックユニットを拡張表示したり、特定行や特定の項目でパークすることができます。この状態で他のエディタに切り替えた後、再び［ロジック］エディタに戻った場合、同じように表示され、同じ場所にパークされています。

エディタ内での複数行選択

  1. ある行の［#］カラムでパークしてください。

  2. Shiftキーを押しながら他の行をクリックすることで、連続した複数の行をマークすることができます。Shiftキーを押しながら上下のカーソルキーを押下しても複数選択できます。

  3. Ctrlキーを押しながら他の行をクリックすることで、連続的でない複数の行をマークすることができます。


データソーステーブル

［データソース］テーブル（Ctrl+D)は、メインソースを含むプログラムで使用されるデータソースと関連する処理コマンドによって使用されるデータソースの全てを一覧表示します。これらの表示内容は削除できません。特性を変更することのみ可能です。

実行するタスクが使用するデータソースなど、追加で使用したいものを含めることができます。たとえば、子タスクのデータソースを親タスクで定義しておくことでは、子タスク起動時にデータソースのオープン／クロースにかかる時間を減らすことができます。このような場合、これらのデータソースは、子タスクの［データソース］テーブルにも表示されます。

［データソース］テーブルには、以下のカラムが含まれています。

カラム

内容

#

この読出し専用カラムには、データソースIDとして使用される連番が自動的に表示されます。

データソース

この読出し専用カラムには、データソースのインデックスが表示されます。

説明

メインソースやリンク、宣言としてタスクに1つだけ定義されたデータソースの場合は、タスクに定義されているデータソース名が表示されます。

同じデータソースがタスク内で複数定義されている場合は、［データ］リポジトリに定義されているデータソース名が表示されます。

コントロールに定義されているデータソースの場合は、［データ］リポジトリに定義されているデータソース名が表示されます。

アクセス

アクセス特性はマルチユーザ環境に関連しており、テーブルがどのようにアクセスされるかについて定義します。

  • 読込 …… 読込アクセスのみ可能になります。

  • 書込 …… 読み書きが可能です。

この特性は、コントロールに定義されたデータソースに対しては影響せず、カラムにパークしません。

共有

共有特性は、マルチユーザ環境で関連しており、他の並行タスクがどのようにテーブルにアクセスすることができるかについて定義します。

  • 読込 …… 他のタスクからは、読込アクセスのみ可能です。

  • 書込 …… 他のタスクからは、読み書きのアクセスが可能です（これにより、ロックが発生する場合があります)。

  • なし …… 共有できません。他のタスクからアクセスした場合、テーブルロックが発生します。

［アクセス］特性と［共有］特性の組合せによって、テーブルのオープンモードが自動的に決定されます。

このように、［アクセス］特性が「書込」で［共有］特性が「書込」の場合、.レコードロックが発生する可能性があり、［アクセス］特性が「書込」で［共有］特性が「読込」の場合、テーブルを共有することができます。「共有」が「なし」の場合、テーブルは排他的に使用されます。

この特性は、コントロールに定義されたデータソースに対しては影響せず、カラムにパークしません。

オープン

オープン特性は、データソースをどのようにオープンするかを定義します。

有効な値は以下の通りです。

  • N=標準 …… 通常の利用目的で有効なオープンモード。

  • R=再検索 …… データソースをオープンすると、全てのインデックスがドロップされ、処理を実行し、セッション終了時に作成し直します。再検索オープンは、使用するデータベースゲートウェイに依存しています。

データソースがコントロールにのみ定義されている場合は、「標準」に設定され、パークできません。

この特性は、コントロールに定義されたデータソースやXMLデータソースに対しては影響せず、カラムにもパークしません。

名前

データソースの実際の物理的な名前を指定できます。

XML 項目

XMLソースの項目

キャッシュ

この特性は、リンクテーブルがキャッシュされるかどうかを指定します。この特性は、リンクされたデータソースに対してのみ関連します。

更新レコードの識別

この特性は、データベースを更新する前に、他のユーザによって修正されたレコードを選択する方法かについて定義します。

以下のオプションが選択できます。

  • P=位置

  • S=位置と選択項目

  • U=位置と更新項目

  • T=メインソースに依存

この特性は、遅延トランザクションとSQLテーブルを使用したタスクでのみ有効です。

この特性は、コントロールに定義されたデータソースやXMLデータソースに対しては影響せず、カラムにもパークしません。


ソートウィンドウ

ホーム > リファレンスガイド > プログラム > ソートウィンドウ

ソートテーブル

［ソート］テーブルは、以下からなる複合ウィンドウです。

  • ウィンドウの左側にあるセグメントテーブル

  • ウィンドウの右側にある項目一覧

セグメントがテーブル内に表示される順序は、大から中、小となっており、この順序で、ソート順が決まります。

実行時にレコードをソートする方法については、ソートを参照してください。

左側には、以下のカラムがあります。

カラム

説明

ソートタイプ

この特性では、ソートで使用するカラムがユニークであることをMagic xpaに通知できます。

ソートタイプは、XMLデータソースには関係ないため、使用できません。

利用できるオプションは以下の通りです。

  • ユニーク …… ソートで使用されるカラムはユニークです。SQLゲートウェイは、位置の値をORDER BY句に追加しません。

  • インデックスに依存 （デフォルト） …… 既知の全てのインデックスをスキャンして、ソートのユニーク性を判別します。ソートセグメントにユニークなインデックスが含まれている場合、ソートはユニークと定義されます。そうでない場合は、ソートはユニークでないと定義されます。

#

テーブルの連番を表す数値が自動的に設定されます。修正はできません。

項目

セグメントとして使用する実データ項目または変数項目のシンボル名を指定します。

直接入力するか、右側にある［項目一覧］にズームしてデータ項目を選択することができます。［項目一覧］から［メンバー］テーブルにズームすることで、カラムの情報を確認することができます。

項目名

ここには、セグメントとして選択されたデータ項目の名前が表示されます。このカラムを編集することはできません。

サイズ

選択されたデータ項目が文字型/Unicode型の場合のみ、この特性を変更してセグメント項目の中でソートの対象となるデータの最大サイズを短縮することができます。デフォルトでは、データ項目のサイズがそのまま設定されます。

この特性は、パフォーマンスとメモリを考慮するためのものです。ソートの対象となる文字数が、項目の実サイズよりも小さいことがわかっている場合には、必要なデータ長を調整してソートすることにより、インデックスセグメントを短くすることができます。この場合、インデックス空間の利用率が高まるため、ソート処理は速くなり、ソートファイルが小さくなります。

SQL データベースでは、フィールドの一部でのソートをサポートしていません。

方向

照合順序に基づくソートの方向を指定します。

  • A=昇順 …… セグメントのソート方向は「昇順」です。

  • D=降順 …… セグメントのソート方向は「降順」です。

Magic xpaで使用できるデータベースには、例えば、セグメントの個数やインデックスに使用できる最大サイズなどに関する固有の制限がある場合があります。ソートテーブルを作成するには、［設定/動作環境］ダイアログの［動作設定］タブにある［ソート/一時用データベース］を使用します。

いかなる場合も特定のデータベースゲートウェイで開発する時には、データベース制限に関して定義がチェックされ、その結果に応じて入力が求められます。

SQLデータベースでのソートでは、［RDBMSによるソート］機能が使用できます。

注意：

ローカルデータベースは、ソート方向を降順に設定した場合、リンクテーブルのカラムに対してはサポートされません。

関連トピック：

データベースのレコードの取得順を指定するには


ソートテーブル RDBMSによるソート

ホーム > リファレンスガイド > プログラム > ソートウィンドウ > RDBMSによるソート

RDBMSによるソート

SQL データベースを使用する場合、RDBMS エンジンはORDER BY句を使用して、行を動的にソートすることができます。この時、ISAM ファイルで要求されているインデックスを定義する必要はありません。プログラムでのソートの定義方法は変わりませんが、メインソースと結合テーブルの一部として全てのカラムがソートされると、RDBMSでソートできるようになります。RDBMS でソートすることができない場合、Magic xpaではMAGIC.INI ファイルで定義されているソートデータベース内の一時ファイルを使用して行をソートします。

タスクでのソート方法はこのテーブルの仮想インデックスの定義方法と同じです。さらに、このソート方法は追加仮想インデックスを定義する必要性を最小限に抑え、エンドユーザからのインデックスの要求を満たします。

ソートを定義すると、Magic xpaではタスクのSELECT文を再発行します。そして次の条件が満たされていると、インデックスに準拠して生成されたORDER BY 句をソートで使用されるカラム名に置き換えます。

  • ソートセグメントは全てメインソース、または内部リンク、外部リンクテーブル中の一部でなければなりません。それ以外の場合、RDBMS によるソート機能は使用されず、一時ソートファイルが作成されます。

  • 全てのソートセグメントは、RDBMS でソート可能なデータ型であること。例えば、MS-SQL Server ではBIT データ型をソートすることはできません。そのため、データベース内でBIT にマッピングされるソートセグメントを使用してソートする時には、RDBMS によるソート機能は使用されず、MAGIC.INI ファイルで定義されたソートデータベースを使った一時ソートテーブルを作成します。

Magic xpaでは、常にユニークなORDER BY句が必要となります。ORDER BY句がユニークであると指定しない場合や、Magic xpaでソートセグメントの組み合わせがユニークであると決定できない場合、位置インデックスセグメントがORDER BY 句に追加されます。さらに、ソートで選択されるカラムがメインソースや結合テーブルのカラムでない場合、Magic xpaは一時的なソートファイルを作成します。

最終的にORDER BY句となるソートを定義すると、RDBMSオプティマイザはインデックスを使用せずにクエリを実行しますが、さらに効率的な方法でクエリを実行するために異なるアクセス方法を使用した方が良い場合があります。


範囲／位置付ウィンドウ

このウィンドウでは、範囲定義を行うための以下の3つのタブがあります。

  • 範囲 …… 1つのデータビューの範囲を、最小値と最大値で指定したり、複数の範囲条件を1つの項目に指定したりすることができます。指定された範囲条件は、タスクが開く前に評価されます。

  • SQL Where句 …… このウィンドウでは、Magic xpaまたはDB SQLを使用して範囲を指定できます。Magic xpaのビュー項目を使用したSQL文による範囲を指定することができ、指定内容は［Where句の全体表示］の表示で確認できます。

  • 式 …… 範囲式を使用することで、タスクのデータビューを微調整することができます。行は、タスクの［範囲］タブで指定された範囲条件によって最初にデータビューに含まれます。範囲式を使用することで、より複雑で、動的な条件に基づいた範囲定義ができます。この範囲条件は、レコードがフェッチされる度に評価されます。

参考：

  • アスタリスク（*)は、範囲または、位置付けでワイルドカードとして使用されます。

  • 範囲値または位置付値としてアスタリスクを使用する場合は、バックスラッシュ（\)をアスタリスクの前に付加してください。

  • a* …… a*（*はワイルドカード)で範囲／位置付を行います。

  • a\* …… a*（*は文字)で範囲／位置付を行います。

  • a\\ …… a\として扱われます。

  • a\\* …… a\*（*はワイルドカード)で範囲／位置付けを行います。

  • a\b …… a\bとして扱われます。

関連トピック：

SQL Where句

式


範囲ウィンドウ 範囲

ホーム > リファレンスガイド > プログラム > 範囲/位置付ウィンドウ > 範囲

範囲

このウィンドウでは、タスクのデータビューの範囲を定義します。以下のカラムがあります。

特性

内容

#

自動的に生成された内部識別番号

項目

対象とする項目のシンボル名を入力するか、ズームして［項目一覧］から選択します。

モード

範囲のタイプを指定します。以下のオプションがあります。

  • F=最小値

  • T=最大値

  • E=同じ

式

ここから［式］エディタにズームして、範囲条件の値や式を定義することができます。

関連トピック：

SQL Where句

式


範囲ウィンドウ SQL Where句

ホーム > リファレンスガイド > プログラム > 範囲/位置付ウィンドウ > SQL Where句

SQL Where句

［SQL Where句］を使用すると、Magic xpaで自動的に生成されたWhere句のほかに、SQL固有のWhere句を使用できます。これにより、複雑な条件でレコードの範囲を指定したい場合にも、ダイレクトSQLを使用する必要性が少なくなります。

ここでは、Magic xpaのデータ項目を使用してSQL構文に基づく範囲を記述することができます。ここで指定された範囲条件は、Magic SQL Where句で定義された範囲条件と連動して動作します。

指定されたWhere句の内容は、［Where句の全体表示］欄で確認することができます。

関連トピック：

Magic SQL 式

DB SQL

Where句の全体表示

Magic SQL WhereとDB SQL Whereの機能

Magic SQL WhereとDB SQL Whereの使用上の考慮事項

Magic xpaの SQL関数

範囲

範囲式

独自のSQLステートメントをデータベースに送るには


範囲ウィンドウ SQL Where句 Magic SQL式

ホーム > リファレンスガイド > プログラム > 範囲/位置付ウィンドウ > SQL Where句 > Magic SQL式

Magic SQL式

遅延トランザクションにSQL Where句を使用するためには、通常［Magic SQL式］で定義します。

この範囲は、1つの点を除き、既存のDB SQLと変わりません。異なる点は、この範囲の定義にMagic xpaの式のサブセットが使用されるという点です（既存のDB SQL にはフリー形式のテキストが使用されます）。構文は、Magic xpaのものと同じですが、実行時にSQL Where句のコマンドに変換されます。MagicエンジンでSQLに変換できる式だけを含めることができます。

例

例えば、次の場合を想定します。

AはEmployee.BirthDateというDB名の実カラムだとします。ここで［Magic SQL式］をA = Date（）と記述すると、［Where句の全体表示］領域には次のように表示されます。

Employee.BirthDate = Date（）

（テーブル名はリンク結合が発生した場合のみ追加されます）

ここでは、DB専用の関数ではなく、Magic xpaの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 xpaでは、データベースごとに、［Magic SQL式］が適切なSQLのWHERE句に変換されます。

既知の制限

Magic SQL式を使用する場合、以下の制限が適用されます。

Magic xpaは、式の中で使用されるカラムは、デフォルトのマッピングを使用してデータベースのカラムにマッピングされることを想定しています。このため、式で使用されるどのような値でも、決まったデータ型を使用して送られます。例えば、以下の式を使用した場合：

B>='03:03:03'TIME

Maguc xpaは、時刻のBは、データベースでChar(6)にマッピングされているものとします。従ってこの式は、Where句の一部として‘030303’として‘03:03:03’TIMEを送ります。

関連トピック：

Magic SQL WhereとDB SQL Whereの使用上の考慮事項

Magic xpaのSQL関数

複数のDBMSで動作するように設定するには


範囲ウィンドウ SQL Where句 DB SQL

ホーム > リファレンスガイド > プログラム > 範囲/位置付ウィンドウ > SQL Where句 > DB SQL

DB SQL

DB SQL は、SQLテーブルがメインソースに設定されているタスクで使用できます。

DB SQL機能の目的は、プログラマーがSQLタスクを使用しなくても、Magic xpaで自動的に生成されたWhere句のほかに、SQL専用のWhere句も使用できるようにすることや、Magic xpaで生成されたWhere句を表示できるようにすることにあります。

注意：

遅延トランザクションタスクでDB SQLを使用する場合、別のタスクで更新されたデータソースの更新内容は表示されません。

ここでは、Magic xpaのカラムを使用した、SQL構文によって範囲を記述します。記述された範囲条件は、Magic SQL Where句で定義された範囲条件に追加されます。

［DB SQL］特性でダブルクリックすると［項目一覧］が表示されます。ここには、［DB SQL］特性で使用できる全てのデータ項目が表示されます。

  • メインソースや結合テーブルの実データ …… DBカラム名に置き換わります。

  • 親タスクのデータ項目 …… 親タスクの値に置き換わります。

  • 現在のタスクの変数項目とその他の実データ …… それぞれの値に置き換わります。

［DB SQL］は、DB SQL が記述されているフリーテキストを参照します。［DB SQL］領域には、２種類の文字列が記述できます。詳細は次のとおりです。

項目番号（A、B、Cなど）の先頭に':'記号を付けて記述

このカラムがメインソースまたは結合テーブルである場合は、そのDBカラム名に置き換わります。その他の場合は、データの型に応じた値に置き換わります。文字型カラムの場合は、末尾の空白が削除され、引用符が付加されます。

項目番号（A、B、Cなど）の先頭に'@'記号を付けて記述

メインソースまたは結合テーブルの実データでなく、型が文字型の場合はこの方法を使用します。この場合、カラムが値に置き換わりますが、引用符は付加されません。

Magic xpaは、カラムをその内容で置き換える場合、カラムの型と記憶域がチェックされます。文字型の場合は、必要に応じて引用符が付加されます。文字型カラムに引用符が付加されないように、記述するプログラムの全ての種類を有効にするには、@記号を接頭辞としてカラムに追加する必要があります。

例えば、次の場合を想定します。

「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の使用上の考慮事項


範囲ウィンドウ SQL Where句 全体表示

ホーム > リファレンスガイド > プログラム > 範囲/位置付ウィンドウ > SQL Where句 > Where句の全体表示

Where句の全体表示

［DB SQL］特性で指定されたWhere句は、Magic xpaで生成されたSQL文で使用されるとおりに、［Where句の全体表示］領域に表示されます。画面の下部の［表示］ボタンをクリックすると、［Where句の全体表示］が更新されます。

［Where句の全体表示］は、次の3つの部分で構成されます。

  • ［データビュー］エディタ（メインソースのデータ項目や［結合／外部リンク］コマンドによるリンク項目の範囲指定が含まれます。）を使用したWhere句の式

  • AND句と共に括弧内に挿入され、［データビュー］範囲に連結されるMagic SQL。

  • AND句と共に括弧内に挿入され、［データビュー］範囲に連結されるDB SQL。

カラム一覧に表示されているカラムは全て、Where句でカラム名に置き換わります。メインソースおよび結合テーブルの実データは、'Column DB name'または'A column DB name'書式に置き換わり、変数項目はそれぞれの名前に置き換わります。

Where句の全体表示は、すべてのSELECTステートメントに追加されます。項目の値はタスクに入る時点でのみ評価され、再計算はされません。

内部のGet CurrentとHook(ロック方式によって決定されます)処理に対応するSELECTステートメントをMagic xpaが作成する時だけDB SQL 範囲またはMagic xpa SQL範囲が使用されません。これらの処理内で、レコードを取得するために、Magic xpaはポジションキーを使用し、SQL範囲は不要です。


範囲ウィンドウ SQL Where句 機能

ホーム > リファレンスガイド > プログラム > 範囲/位置付ウィンドウ > SQL Where句 > Magic SQL WhereとDB SQL Whereの機能

Magic SQL WhereとDB SQL Whereの機能

タスクでデータビューが作成されると、Magic xpaはWhere句を使用してSELECT文を作成します。

  • Where句の最初の部分は、データビュー内のカラムの範囲指定に基づいています。

  • ２番目の部分は、［結合／外部リンク］コマンドに基づきます。

  • ３番目は、Magic SQL Where句で、全てのSELECT文に追加されます。

  • ４番目は、DB SQL Where句で、全てのSELECT文に追加されます。

カラムの値は、タスクがオープンされた時に１度だけ評価され、再計算は行われません。

SQL Whereが使用されないのは、Magic xpaで内部のGet Currentおよび「フック処理（ロック方式で制御）」のSELECT文が生成される場合だけです。これらの処理コマンドでは、位置インデックスによって行が取得されるので、SQL Whereは不要になります。

Unicode対応

Magic SQL Where句によって作成された構文は、式が評価された上でゲートウェイにUnicodeで送られます。

ゲートウェイが、Unicodeをサポートしない場合、デフォルトのコードページを使用してANSIに変換して送ります。

関連トピック：

Magic SQL WhereとDB SQL Whereの使用上の考慮事項


範囲ウィンドウ SQL Where句 考慮事項

ホーム > リファレンスガイド > プログラム > 範囲/位置付ウィンドウ > SQL Where句 > Magic SQL WhereとDB SQL Whereの使用上の考慮事項

Magic SQL WhereとDB SQL Whereの使用上の考慮事項

  • SQL Where句は、タスクの実行開始時に評価され決定します。この時には、タスクのデータ項目はまだ初期化されていないので、呼び出しタスクから渡されるパラメータ項目以外はデフォルトの値（文字型は空文字、数値型は0）となっています。したがって、Where句の中で使用される「:v」の形式でのパラメータは、パラメータ項目か、あるいは親タスクのデータ項目しか使用することができません。

注意：

代入式はその後に計算されるため、使用できません。

  • BLOB型項目は、SQL Where句には使用できません。

  • Magic xpaはSQL Where句をプログラムチェック対象にしていません。したがって、無効なSQLWhere句を使用すると、実行時にRDBMSからエラーメッセージが発行される場合があります。

  • Magic xpaは、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関数

ホーム > リファレンスガイド > プログラム > 範囲/位置付ウィンドウ > SQL Where句 > Magic xpaのSQL関数

Magic xpaのSQL関数

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

** :SQLite では使用できません。


範囲ウィンドウ 式

ホーム > リファレンスガイド > プログラム > 範囲/位置付ウィンドウ > 式

式

［範囲式］を使用することで、タスクのデータビューを微調整することができます。行は、タスクの［範囲］タブで指定された範囲条件によって最初にデータビューに含まれます。範囲式を使用することで、より複雑で、動的な条件に基づいた範囲定義ができます。この範囲条件は、レコードがフェッチされる度に評価されます。

例

  • 範囲式が「True」と評価された場合、その行はデータビューに含まれます。

  • 範囲式が「False」と評価された場合、その行はスキップされます。

  • 範囲式が指定されていない場合、「True」と評価されます。

範囲式は、次の場合に必要になります。

  • 範囲基準が、タスクの初期化時点で使用できない変数の値に依存する場合。

  • 範囲基準が、カラムの［範囲下限］と［範囲上限］だけで定義できないような複雑な場合。

注意：

［範囲式］はデータベースには送られません。Magic xpaは、データベースから取り込まれたレコードをフィルタリングします。

以下の特性値を指定して範囲や位置付けの定義を行うこともできます。

範囲順序

位置付式

位置付順序

ポジション

方法

関連トピック：

範囲

SQL Where句


範囲ウィンドウ 式 範囲順序

ホーム > リファレンスガイド > プログラム > 範囲/位置付ウィンドウ > 式 > 範囲順序

範囲順序

[範囲順序]特性は、データビューに含める行の範囲の取得方向を、先頭行から始まる「昇順」にするか、または最後の行から始まる「降順」にするかを決定します。

デフォルト：A=昇順


範囲ウィンドウ 式 位置付式

ホーム > リファレンスガイド > プログラム > 範囲/位置付ウィンドウ > 式 > 位置付式

位置付式

［位置付式］は、タスクの実行が開始される際に、データビューが特定のレコードから始まるように位置付ける場合に使用します。タスクが開始されると、Magic xpaは、位置付式で「True」と評価されるレコードが現れるまで、データビューを先頭からスキャンします。「True」と評価されたレコードは取り出され、カーソルがそのレコードの上に置かれます。方向キーを使用してデータビュー内の前後に移動することができるようになります。

位置付け式の動作の考慮事項

  • ［位置付式］は、オンラインタスクでのみ関係します。

  • ［位置付式］は、位置付け条件が1つの連続する範囲に限られない場合のような、検索条件が複雑な場合に使用してください。その他の場合は、項目の［範囲下限］特性または［範囲上限式］特性を使用した方が、処理速度が速くなります。

  • ［位置付式］に含まれる全ての項目は、タスクの初期化時に評価されるため、特性の項目、または上位タスクの項目しか含まれない場合があります。

  • ［位置付式］が指定されていない場合、カーソルは取得された最初のデータビューの行に位置付けされます。

  • オンラインタスクの開始時にデータビューの開始レコードが見つからない場合は、警告メッセージが表示され、カーソルがデータビューの先頭レコード、または次の直近値（存在する場合）に位置付けされます。


範囲ウィンドウ 式 位置付順序

ホーム > リファレンスガイド > プログラム > 範囲/位置付ウィンドウ > 式 > 位置付順序

位置付順序

この特性は、データビューの位置付けレコードを決定する際の検索方向を、先頭行から始まる昇順にするか、または最後の行から始まる降順にするかを指定します。特定の基準に一致した最後のレコードが必要な場合は、降順を指定します。例えば、データビューを日付でソートする時に、[位置付順序]を「D=降順」を使用して、この日付の最終トランザクションに位置付けします。

注意：

[位置付順序]は、[位置付式]または[範囲下限]/[範囲上限]の指定がなくても使用できます。

デフォルト：A=昇順


範囲ウィンドウ 式 ポジション

ホーム > リファレンスガイド > プログラム > 範囲/位置付ウィンドウ > 式 > ポジション

ポジション

位置に従ってレコードを表示したり、特定位置から開始される一連のレコードを表示することができます。この特性は、タスクのメインソースに対してのみ設定できます。リンクテーブルでは、位置に従った範囲の指定や位置付けはできません。

ポジションの動作の考慮事項

この特性にはBLOB式を使用して、タスクを開始または位置付ける先頭レコードの位置を示すことができます。

  • ［ポジション］特性はタスクのメインソースのみ有効です。

  • この特性に、レコード位置としてBLOB型の戻り値が返る式を定義できます。

  • Magic xpaには、レコードの位置を返す関数として、次の2つがあります。

  • CurrPosition …… 現在のタスクのメインソースの現在のレコードの内部の位置を取得します。

  • ErrPosition …… エラーが発生したレコードの位置を取得します。


範囲ウィンドウ 式 方法

ホーム > リファレンスガイド > プログラム > 範囲/位置付ウィンドウ > 式 > 方法

方法 (デフォルト:O=このポジションで絞り込む)

［方法］特性は、［ポジション］特性が「0」以外の場合のみ有効になります。いったん［ポジション］特性を指定すると、次のオプションから［方法］特性を選択できるようになります。

  • O=このポジションで絞り込む …… 特定のレコードのみが表示されます。Magic xpaではget currentコマンドが実行され、open cursorコマンドは実行されません。

  • F=このポジションから開始する …… 開始位置レコードから全てのレコードが表示されます。Magic xpaでは、この位置を開始位置として、open cursorコマンドが実行されます。

注意：

上記2つの範囲オプションでは、選択処理コマンドの範囲、タスクの範囲式、およびこの条件の間に、AND演算子が使用されます。
また、このレコードが存在しない場合、レコードは何も表示されません。

  • L=このポジションに位置付ける …… 他の全てのタスク範囲に応じて、全てのレコードが表示され、特定の位置のレコードにカーソルが位置付けされます。
    項目の［位置付］特性、タスクの「位置付式］特性、およびこの条件の間には、AND演算子が使用されます。
    このレコードが存在しない場合、位置付けコマンドは失敗し、「該当するレコードがありません - 先頭に位置付けます。」という警告メッセージが表示されます。


入出力ファイル

Magic unitesでは、入出力ファイルを定義することが可能です。これらのデバイスは、以下の処理に使用できます。

  • データを外部ファイルから入力する

  • GUIプリンタやファイルなどへのデータを出力する

［入出力ファイル］テーブルには、現行タスクで読み取り/書き込みに使用する入出力デバイスやファイルを定義することができます。各入出力ファイルを［フォーム出力］または［フォーム入力］処理コマンドで参照するには、それらをあらかじめ定義しておく必要があります。

［入出力ファイル］テーブルにアクセスするには、［タスク］メニューから［入出力ファイル］を選択します。

印刷オプションやマージの特性を選択するには、［編集／特性］（Alt+Enter）を選択して、［入出力特性］ダイアログを開いてください。

［入出力ファイル］テーブルには以下のカラムがあります。

カラム

内容

#

テーブルの行番号を表す連番が自動的に表示されます。

名前

このカラムに入力される名前は、テーブルの認識用に使用されます。入力された名前は、ドキュメント名としてOSのプリンタキューに表示されます。

入出力名は、論理名で指定することができます。プリンタに送られたドキュメントのスプール名を動的に変更したい場合に利用できます。プリンタへのスプール名は、ここで定義された名前と同じになります。

INIPut（）関数でこの論理名に対する実行名を指定することで、スプール名を動的に変更することができます。

メディア

ファイルの物理的な入出力先（出力ファイルの出力先、または入力ファイルの入力元）を定義します。指定できるパラメータは、メディアを参照してください。

プリンタ

このカラムは、［メディア］カラムの値として「GUI形式プリント」または「テキスト形式プリント」を指定した場合にのみ関連します。ここには、［プリンタ］テーブルに定義されている論理プリンタのいずれかを指定します。

デフォルトとして、［プリンタ］テーブルに定義されている最初のプリンタの名前が表示されます。別のプリンタを選択するには、このカラムをダブルクリックして［プリンタ一覧］を表示し、必要なプリンタを選択するか、あるいはプリンタの名前を直接入力します。

実行時には、さまざまなエラー状態を示すエラーメッセージが表示されることがあります。例えば、「プリンタが接続されていません」、「プリンタの電源が入っていません」、「プリンタが選択されていません」、「用紙切れです」といったメッセージがあります。

アクセス

ファイルを開く時のモードを定義します。指定できる値はアクセスを参照してください。

書式

このカラムでは、出力ファイルへ自動的に書き出す制御文字、あるいは入力ファイル中で予期される制御文字を定義します。設定できる値は以下の通りです。

  • P=ページ …… 「改ページ」制御文字がページの終わりに、また「改行」制御文字が行の終わりに付加されます。

  • L=ライン …… 「改行」制御文字が行の終わりに付加されます。「改ページ」制御文字は付加されません。

  • N=なし …… 「改行」「改ページ」制御文字が付加されません。

式／項目

実行モードで使用する［式］エディタ内の式の番号を定義します。この式には、OSでのファイル名を指定します。

ファイル名にパスを含めたり、式に論理名を使用することもできます。このような場合は、Magic xpaでは指定された条件に従って、読み込みまたは書き込みが行われます。式は、タスク初期化段階で評価されるため、タスク内では動的に変更できません。

［メディア］カラムが「項目」の場合は、ここには項目の番号を指定します。［項目一覧］にズームして選択することもできます。BLOB項目のみ指定できます。

ダイアログ

このカラムの有効な値は、「Yes」、「No」、または「式」のいずれかです。

［ダイアログ］カラムは、［メディア］カラムが「GUI形式プリント」の場合にのみ有効です。

  • 「Yes」に設定された場合、タスクが入出力ファイルを開いた時に、Windowsの［印刷］ダイアログを表示します。ここで、エンドユーザは印刷特性を変更できます。

  • 「No」を指定すると、Windowsの［印刷］ダイアログは表示されず、印刷特性はエンドユーザの操作なしでプリンタに直接送られます。

  • 式を使用して、Yes/Noの設定を動的に指定することができます。

行数

このカラムは、［フォーマット］カラムの設定が［ページ］の時で、［メディア］カラムの設定が［テキスト形式プリント］または［コンソール］の場合のみ有効になります。

このカラムには、出力ファイルの1ページあたりの行数、つまり2つの連続する改ページと改ページの間の行数を指定します。デフォルト値は使用するプリンタによって異なります。詳細は、「［プリンタ］テーブル」を参照してください。デフォルト値は「0」で、この場合出力ページは60行になります。これには、ヘッダ領域（3行）とフッタ領域（3行）が含まれます。

［タスク特性］の［入出力ファイル］を「Yes」に設定しておくと、実行モードの時に［入出力ファイル］テーブルを表示させることができ、行数をエンドユーザが変更できます。

サブタスクはその親タスクで定義されている入出力ファイルにアクセスできます。サブタスクの［入出力ファイル］テーブルには、その上位タスクで定義されている全ての入出力ファイルが含まれています。

メインプログラムで定義された入出力ファイルは、全てのプログラムでアクセスすることができます。

参考：

/* ... */ という書式でコメントを定義した場合、［入出力ファイル一覧］の［説明］欄にコメントが表示されます。

［入出力］テーブルで定義される全ての値は、［入出力］デバイスのオープン時にのみ影響します。一旦オープンされると、［入出力］テーブルが定義されたタスクが終了されるまでクローズされません。

［入出力ファイル］テーブルは、リッチクライアントタスクでは利用できません。

関連トピック：

入出力ファイルの定義


入出力ファイル メディア

ホーム > リファレンスガイド > プログラム > 入出力ファイル > メディア

メディア

ファイルの物理的な入出力先（出力ファイルの出力先、または入力ファイルの入力元）を定義します。

指定できるパラメータは、以下の通りです。

オプション

内容

G=GUI形式プリント

この入出力ファイル定義に基づいた入出力処理によって、GUIプリンタやディスクファイルに出力されるグラフィカルな情報を作成することができます。

注意：

GUIプリンタに出力するには、PCにプリンタドライバをインストールしておく必要があります。プリンタドライバがインストールされていない場合、代わりのオプションとして［メディア］カラムで「コンソール」を選択することができます。

P=テキスト形式プリント

テキスト印刷用ドライバを経由して、Magic xpaの論理プリンタ（プリンタテーブル中に定義されているプリンタ）のいずれかに出力できます。式を定義してプリンタファイルをファイルにリダイレクトすることもできます。その場合、［式］カラムに式番号を指定し、実行時に有効なファイル名が返る式を定義します。

F=ファイル

入力、出力いずれかのファイルを定義します。ファイルのパスと名前は［式/項目］カラムで指定します。

R=リクエスタ

リクエスタは、［コールリモート］処理コマンドやインターネットリクエスタによって起動されるアプリケーションのバッチタスクによって使用されます。出力結果は、起動されたタスクの終了と同時に、呼び出し元のタスクまたはWebブラウザに送り返されます。

D=XMLダイレクトアクセス

XML関数（XMLCnt, XMLExist, XMLFind、XMLGet）を使用することによって問い合わせることのできるXMLファイルをアクセスする場合に使用します。

XMLInsert, XMLModify、およびXMLDelete関数を使用して、XMLの要素や属性を作成したり、修正したり、削除したりすることができます。

V=項目

入出力ファイルを使用してBLOB項目の送受信を行う場合に使用します。このオプションは、XMLファイルの保存や変換用としても使用できます。

［式］カラムには、BLOB項目を指定します。

  • ［アクセス］カラムを「R=読込」にした場合、XMLCnt, XMLExist, XMLFindや XMLGet 関数で使用できます。

  • ［アクセス］カラムを「W=書込」にした場合、XMLInsert, XMLModifyや XMLDelete 関数で使用できます。

  • ［アクセス］カラムを「A=追加」にした場合、XMLInsert, XMLModifyや XMLDelete 関数で使用できます。

「GUI形式プリンタ」や「テキスト形式プリンタ」、「コンソール」、「リクエスタ」では、必ずしも［式］カラムを定義する必要はありません。しかし、［式］カラムを指定した場合は、式の評価結果が出力先になります。

デフォルト：G=GUI形式プリント


入出力ファイル アクセス

ホーム > リファレンスガイド > プログラム > 入出力ファイル > アクセス

アクセス

ファイルを開く時のモードを定義します。指定できる値は以下の通りです。

オプション | 内容
R=読込 | ファイルを［読込］モードで開きます。ファイルに対する［フォーム入力］処理コマンドを［ロジック］エディタで定義した場合にこのモードを指定します。ファイルに対する［データ出力］処理コマンドは無視されます。 ［メディア］カラムで「XMLダイレクトアクセス」や「項目」を定義してXMLドキュメントを開く場合、XMLドキュメントを保存しないで挿入されたXML要素や属性を参照することができます。
W=書出 | ファイルを［書出］モードで開きます。ファイルに対する［フォーム出力］処理コマンドを［ロジック］エディタで定義する場合にこのモードを指定します。書出アクセスの入出力ファイルに対する［フォーム入力］処理コマンドは無視されます。 名前が式によって定義され同名のファイルがすでに存在する場合は、このファイルの内容は上書きされます。
A=追加 | ファイルを［書出］モードで開きます。ファイルに対する［フォーム出力］処理コマンドを［ロジック］エディタで定義する場合にこのモードを指定します。このオプションの場合のみ、［フォーム出力］処理コマンドでテキスト項目を送ることができます。 同名のファイルがすでに存在する場合、このファイルの末尾に追加されます。

注意：

XMLを変更しない場合、「読込」に設定することを推奨します。「書込」に設定した場合、シリアル番号が追加され書込処理が実行されます。


入出力ファイル 特性

ホーム > リファレンスガイド > プログラム > 入出力ファイル > 入出力特性

入出力特性

［入出力ファイル］テーブルでAltl+Enterを押下すると［入出力特性］ダイアログが表示されます。ここには、以下の特性が設定できます。

特性

内容

用紙サイズ

［メディア］カラムで「GUI形式プリント」を選択した場合、この特性が指定できます。出力する用紙のサイズをコンボボックスから選択してください。

ページヘッダフォーム

ここには、［フォーム］エディタに定義されたフォームのうちページヘッダとして使用するフォームを選択します。このフォームは、改ページするたびに自動的に出力されます。

注意：

帳票の印刷の場合、最初に入出力ファイルを開いたタスクからページヘッダとフッタが印刷されることに注意してください。また、自動的に印刷されるのは、現在印刷中のタスクのヘッダフォームだけです。最初に入出力ファイルを開いたタスクのヘッダは自動的に印刷されません。

関連トピック：

ページヘッダ/フッタの情報を定義するには

グローバルなページヘッダ/フッタを定義するには

ページフッタフォーム

ここには、［フォーム］エディタに定義されたフォームのうちページフッタとして使用するフォームを選択します。このフォームは、改ページするたびに自動的に出力されます。

注意：

帳票の印刷の場合、最初に入出力ファイルを開いたタスクからページヘッダとフッタが印刷されることに注意してください。また、自動的に印刷されるのは、現在印刷中のタスクのヘッダフォームだけです。最初に入出力ファイルを開いたタスクのヘッダは自動的に印刷されません。

部数

［部数］特性［メディア］カラムで「GUI形式プリント」が選択されている場合のみ有効です。グラフィックプリンタで印刷される帳票の部数を指定します。

注意：

GUIﾌﾟﾘﾝﾀの場合のみ有効です。

式

ここには、GUIプリンタで印刷される帳票の部数を式で動的に指定することができます。［式］エディタに定義されている式の番号が入ります。

注意：

［部数］と［式］は、同時に有効にすることはできません。

印刷方向

ここでは、GUIプリンタから出力する帳票の印刷方向を指定します。縦方向か横方向かのどちらかを指定します。

縦方向の印刷はページの左側から右に出力され、横方向の印刷は、ページの先頭から最後の方向に出力されます。

注意：

入出力特性の［用紙サイズ］、［印刷方向］および［部数］の指定より、MGPRN ユーティリティでの指定が優先されます。

プレビュー

プリンタの出力先をMagic xpaのプレビューシステムに変更します。有効な値は［Yes］、［No］です。論理結果を返す式も使用できます。プレビューを使用すると、エンドユーザは帳票の出力内容をプレビュー表示で確認してから印刷することができます。この場合、出力開始時に指定されたプリンタに印刷されます。

［プレビュー］特性は、［メディア］カラムが「GUI形式プリント」を選択している場合のみ使用できます。

［プレビュー］特性には、以下のように使用します。

  • エンドユーザが帳票の出力結果を表示し、プリンタを選択し印刷することが可能になります。有効な値は、Yes、No、および論理値が返る式です。

注意：

  • プレビュー表示では、プリンタ固有のマージンの設定を考慮しておりません。このため、左右上下の余白部分が実際の印刷結果と異なります。

  • 印刷時の［印刷］ダイアログで［部単位で印刷］がチェックされている場合、［印刷］ダイアログの［部数］ × プレビューの［印刷］ダイアログの［部数］ 分が印刷されます。

使用する入出力名

［使用する入出力名］を使用すると、現在のプログラムで使用する入出力ファイルを別のプログラムでオープンされた入出力ファイルから指定できます。

ここからダブルクリックして［式］エディタを開き、実行時にオープンされる入出力ファイル名として評価される式を入力します。Magic xpaは、ここで設定された名前の入出力ファイルを検索します。ファイルが検出された場合は、現在のタスクで使用されます。

関連トピック： 数のプログラムで同じ入出力ファイルを使用して出力するには

使用する文字セット

この特性は、［メディア］カラムで「ファイル」または「リクエスト」を選択している場合にのみ関係します。

入出力ファイルの文字セットを定義します。選択できるオプションは以下の通りです。

  • A=Ansi …… 文字セットの変換は行われません。Magic xpaでは内部的にANSI文字コードが使用されているためです。

  • O=OEM …… OEM2ANSI変換ファイルを使用して、ANSIからOEMにデータが変換されます。ファイルが定義されていない場合は、OSのコード変換機能を使用してコード変換が行われます。

  • U=Unicode …… ANSIからUnicodeにデータが変換されます。

  • T=UTF-8 …… ANSIからUTF-8にデータが変換されます。

Magic xpaは内部のUnicode変換機能を使用しているため、「Unicode」に設定された場合、Magic xpaはデータの変換処理を行いません。

「ANSI」または「UTF-8」に設定された場合、UnicodeからANSI/UTF-8に変換します。

「OEM」に設定された場合、UnicodeからOEM2Unicode変換ファイルを使用してOEMに変換します。ファイルが定義されていない場合、Magic xpaはOSの変換機能を使用します。

関連トピック： Unicodeのテキストファイルの作成/読み込みを行うには


入出力ファイルの定義

［入出力ファイル］テーブルでは、［メディア］カラムで指定された内容に基づいて指定できるカラムの内容が異なります。

設定可能な各カラムの組み合わせ

メディア | プリンタ | アクセス | 書式 | 式/項目 | ダイアログ | 行数
G=GUI形式プリント | プリンタ名 | W=書出 | P=ページ | オプション | Yes、No、式 | N/A
P=テキスト形式プリント | プリンタ名 | R=読込 W=書出 A=追加 | P=ページ L=行 N=なし | オプション | 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）を選択して、［入出力特性］ダイアログを開きます。


データビューエディタ

ホーム > リファレンスガイド > データビューエディタ

［データビュー］エディタ

［データビュー］エディタは、タスク定義の一部としてタスクのデータビューインタフェースを定義します。データビューの要素には、ソーステーブル、データ項目、ソート、および範囲が含まれています。［データビュー］エディタは、V9Plus以前のMagic xpaのレコードメインや［DBテーブル］テーブルに相当するものです。

［データビュー］エディタでは以下の処理を行うことができます。

  • タスクのメインソースやダイレクトSQLステートメントの定義

  • その他のデータソースのリンク定義

  • データソースのカラムや変数項目、およびパラメータ項目の定義

  • サブタスクで利用するデータソースの宣言定義

ここには、以下の２種類の行を入力することができます。

  • ヘッダ行 …… この行は、データソースのタイプを指定したり、データソースへのリンクを定義したり、データソースの宣言定義を行うことができます。各定義に対する特性値は、［特性シート］に表示されます。

  • 詳細行 …… この行はヘッダ行の下に表示されます。ここには、以下の項目を設定できます。

  • コメント

  • カラム …… メインソースが選択された場合のみ表示されます。

  • 変数

  • パラメータ

注意：

  • ［データビュー］エディタは、10000行まで定義できますが、一つのタスクに大量の項目を定義すると、タスクの起動に時間がかかる可能性があります。また、項目番号は、AからZZZまでの17576個分までしかタスクツリー内で処理できません。

  • 項目定義に、"/* ... */" という書式でコメントを定義した場合、［項目一覧］の［説明］欄にコメントが表示されます。

関連トピック：

メインソース特性

変数とカラムの特性

リンク定義

埋め込みSQL

範囲ウィンドウ

ソートテーブル

プログラムのデータビューを定義するには

データビュー (Mastering Magic xpa)


ヘッダ行

先頭のヘッダ行では、メインソースを使用するタスクにするか、SQLコマンドタスクにするかを指定できます。

  • M=メインソース …… タスクのメインソース（データベース/XMLドキュメント）を指定します。

  • Q=SQLコマンド …… SQLタスクとして定義します。［SQLコマンド］ダイログを開いてSQLデータベースの情報を設定します。

コンテキストメニューから［ヘッダ行作成］を選択するかCtrl+Hを押下することで、次のヘッダ行を作成することができます。２番目以降のヘッダ行では、以下のオプションがあります。

  • コメント …… 128文字内のコメントを入力することができます。ヘッダ行のオプションを「コメント」に変更することで、ヘッダ行を削除しないで処理を無効にするだけにすることができます。

  • リンク定義 …… リンクを定義します。 リンク定義を設定すると、次の行に「リンク終了」の行が自動的に追加されます。

  • 宣言 …… データソースを確保しておきたい場合や、サブタスクで使用するデータソースを（パフォーマンスの改善のため）あらかじめオープンしておきたい場合にこのオプションを指定します。
    XMLデータソースを使用する場合、XMLドキュメントを宣言定義することができます。これによって、Magic xpaが、階層構造を表すフラットビューを作成することができます。

関連トピック： データベーストランザクションを初期化するには
宣言には、以下の特性があります。

  1. データソース番号

    アクセス

    データソース名

    XMLソース項目

    共有

    オープン

    キャッシュ

    更新レコード識別

関連トピック：

詳細行


詳細行

ヘッダ行の下に詳細行を作成する場合、以下の行タイプを選択することができます。

  • コメント …… 次の詳細行の情報などを入力することができます。

  • C=カラム …… ヘッダ行でメインソースやリンク定義が選択された場合のみ表示されます。［カラム選択一覧］によってデータオブジェクトのカラムを定義することができます。

  • V=変数 …… プログラム実行中に一時的に情報を格納する変数項目を定義します。［変数項目特性］を使用することで表示や動作を定義できます。

  • P=パラメータ …… 別のプログラムやタスクなどから呼び出された場合にパラメータを受け取るための変数項目を定義します。［変数項目特性］を使用することで表示や動作を定義できます。
    パラメータは、［データビュー］エディタ内に定義されている順番に渡されます。［データビュー］エディタ内の定義場所による区別はありません。［データビュー］エディタ内に分散して定義することもできますが、見やすさや、保守性を考慮した場合、パラメータ項目はグループ分けして定義することを推奨します。通常は、［データビュー］エディタの最初に定義します。

関連トピック： プログラムに受け渡しするパラメータを定義するには

関連トピック：

ヘッダ行

タスクのデータ項目を定義するには


メインソース特性

［データビュー］エディタ内のメインソース定義でパークした場合、［メインソース特性］シートが表示されます。表示されない場合、Alt+Enterを押下するか、［編集］メニューやコンテキストメニューから［特性］を選択してください。

［メインソース特性］では、［データ］リポジトリからデータソースを選択することができます。このデータソースのレコードは、実行タスクで随時読み込まれます。

オンラインタスクやブラウザタスクの場合、エンドユーザがレコードからレコードに移動することでメインソースにアクセスすることができます。この方法が、エンドユーザにとっての唯一のレコード処理であることを意味しています。

バッチタスクの場合は、データソースのレコードは自動的に繰り返しアクセスされます。バッチタスクの動作を参照してください。

ヘッダ行に「SQLコマンド」が定義されている場合、［メインソース特性］にアクセスできません。

データベースファイルの代わりにスクラッチファイルを使用する場合、メインソース定義は、デフォルトの「0」のままにしてください。バッチタスクでスクラッチファイルを使用すると、タスクを無限ループさせることができます。

オンラインタスクの場合、カスタマイズメニューや印刷処理の起動プログラムのように、データベースを使用する必要がない場合にスクラッチファイルが使用できます。

［メインソース特性］には、以下の特性があります。

特性

内容

詳細

データソース番号

［データ］リポジトリに定義されたXMLドキュメントやデータベーステーブルを指定することができます。このデータソースのレコードは、実行タスクで随時読み込まれます。

データソースを選択すると、［データソース名］特性にデータソースの名前が表示されます。

ヘッダ行に「SQLコマンド」が定義されている場合、［メインソース特性］にアクセスできません。

データソース名

ここには、データソース名が表示されます。同じ名前のデータソースが複数リンクされた場合、名前を区別するために、この特性を変更することができます。ただし、空白にすることはできません。

SQLコマンドの場合は、タスクが発行するSQLコマンドが表示されます。SQLコマンドは、１つのデータベースにのみ発行することができ、２つの物理的に隔てられているデータベース上のテーブルを参照することができません。Magic xpaがサポートする機能によって複数のデータベースのテーブルから構成されているデータビューを取得することができます。

インデックス

デフォルトのインデックスは、［インデックス］テーブルの最初に定義されたインデックスです。インデックスを指定すると、タスクがデータビューレコードを取り出す順番が決まります。［インデックス（式）］特性を使用して定義することもできます。

［インデックス］の値が「0」に設定されており、［インデックス（式）］が使用されない場合は、インデックスを使用せずに物理的な順序でレコードが取り出されます。

SQLコマンド定義の場合は、この特性にアクセスできません。

関連トピック：

レコードの表示順を動的に変更するには

データベースのレコードの取得順を指定するには

アクセス

この特性は、マルチユーザ環境でのテーブルのアクセス方法を指定します。

  • R＝読込 …… 読み取り専用アクセスの場合です。

  • W＝書出 …… 読み取り/書き込みアクセスの場合に指定します。

プログラムに［リンク］コマンドを定義する場合、［リンクタイプ］にもとづいて以下のように設定されます。

  • R＝読込 …… 照会リンク、結合リンク、外部結合リンク

  • W＝書出 …… 書込リンク、登録リンク

APGを実行してリンクが定義されるプログラムを作成した場合、アクセスモードは、「読込」になります。

SpecialLinkWriteAccess という特殊フラグを使用することで、旧バージョンと同じような動作にすることができます。

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

関連トピック： 読み込み専用のテーブルにアクセスするには

データ

データソース(式)

この特性には、実行中にデータソースの物理ファイル名を式で指定します。この特性が指定されていない場合、［データソース番号］で指定された［データ］リポジトリに定義されているデータソース名を使用します。

この特性を利用することで、同じデータ構成の異なるデータソースを使用することができます。

XMLソースに対するデータソース（式）

［データソース（式）］特性は、［XMLソース項目］特性が空白の場合のみ有効です。この特性は、英数字が返る式のみ指定できます。

この特性には、XMLファイルをパスやURLで指定する式を定義します。

ここには、XMLの内容そのものではなくファイル名で指定します。例えば、“c:\my.xml”, "http:/localhost/my.xml" と言うように指定します。

XML ソース項目

［XMLソース項目］特性は、XMLソースでのみ有効です。この特性には、BLOB型項目を指定できます。指定された項目はXMLに変換されます。タスクは、この項目を読み書きすることができます。

ここからズームして［項目一覧］を表示できます。ここには、メインプログラムを除く上位タスクと自タスクのBLOB型項目が表示されます。

関連トピック： Magic xpaのデータ項目に格納されたXMLドキュメントにアクセスするには

拡張

共有

この特性は、マルチユーザ環境で同時実行している他のタスクがどのようにテーブルにアクセスできるかを指定します。

  • R=読込 …… 他のタスクに読み取り専用アクセスだけを許可する時に使用します。

  • W=書出 …… 他のタスクにも読み取りと書き込みアクセスを許可する時に使用します。この場合には、行ロックによる排他制御が行われます。

  • N=なし …… 共有アクセスを許可しない時に使用します。この場合にはテーブルレベルで排他ロックがかかります。

［アクセス］と［共有］が両方とも「W=書出」の場合、レコードロックが実行されます。また、［アクセス］が「W=書出」で［共有］が「R=読込」の場合、テーブルの共有が可能になります。さらに、［共有］が「N=なし」の時には、テーブルは排他使用となります。

アクセス/ 共有モードの詳細については、「マルチユーザ環境」を参照してください。

関連トピック： データソースを複数のユーザ間でアクセスさせるには

オープン

この特性には、以下のオプションがあります。

  • N=標準 …… 通常はこのオープンモードを利用します。

  • R=再索引 …… ISAM系のデータベースでのみ有効です。このオープンモードは、テーブルをオープンする時にMagic xpaが全てのインデックスを削除し、タスクの実行が終了し、テーブルをクローズする時にインデックスを再構築するように指示します。作成モードで大きなテーブルをインポートする場合、あるいはテーブルに対して大量のインデックス値の修正を実行しなければならない場合などに、［再索引］オープンモードはパフォーマンスを向上させる機能があります。全てのインデックスを除去しておくことにより、挿入または修正のたびに行われるインデックス操作（Pervasive SQL のB ツリーをバランス化する処理など）のための時間が不要になります。処理が終了すると、Magic xpaはテーブル全体に対してインデックス構造を作成します。
    ［再索引］オープンモードが使えるか否かは、データベースゲートウェイがサポートしているかどうかに依存します。このオープンモードを指定した場合、重複不可のインデックスに重複するキー値を入力すると、インデックス再構築の処理で予期しない結果が生じることがあります。例えば、Pervasive SQL はインデックス再構築の処理をそのまま中止します。他のデータベースゲートウェイはその重複する行をスキップする場合があります。

更新レコードの識別

データベースを更新する前に、別のユーザが修正した行を識別できるようにするため、SQL テーブルに対するWhere 句の作成方法を指定できます。

この特性には、以下のいずれかのオプションを指定できます。

  • P=位置

  • S=位置と選択項目

  • U=位置と更新項目

  • S=メインソースに依存

この特性は、遅延トランザクションを使用しているタスクのSQL系のリンクテーブルにのみ適用されます。

XMLソースの場合は、「S=メインソースに依存」の状態で無効になっています。共有は、「N=なし」に設定されています。

関連トピック：

XMLのアクセス/共有

実行時のXMLのアクセス/共有

タスクのメインソースを定義するには


メインソース特性 インデックス（式）

ホーム > リファレンスガイド > データビューエディタ > メインソース特性 > インデックス（式）

インデックス（式）

［インデックス（式）］特性を使用するには、［インデックス］特性は「0」に設定しておきます。データビュー中のレコードの並び順を決めるインデックスの番号を実行時に動的に決定したい場合にこの特性を使用します。

［インデックス（式）］特性を使用する場合は、以下の点に注意してください。

  • 式の評価結果は、選択したメインソースで有効なインデックス番号でなければなりません。式の評価の結果として得られた番号がインデックス番号として不適当な場合、あるいは［インデックス］特性も［インデックス（式）］特性も「0」のままだった場合には、Magic xpaは物理順をデフォルトとして動作します。

  • ［インデックス（式）］特性はタスクが実行開始時に、タスクのビュー定義が有効になる前に評価されます。そのため［インデックス（式）］特性には、呼び出し元から渡されるパラメータ項目か、親タスクのデータ項目を使用しなければなりません。それ以外のタスクのデータ項目はまだ初期化されていないのでゼロのままです。

式の中でインデックス番号を使用する場合、「INDEX」リテラルを使用すれば、開発者が［データ］リポジトリでインデックスを追加削除などした場合にも、Magic xpaはインデックスの番号を自動的に更新してくれます。つまり、式の中でインデックス番号を使用する時に、インデックス番号「nn」を「'nn'INDEX」 として指定します。

例えば、［式］エディタ内で「'2'INDEX」をインデックス式として入力したとします。その後、新しいインデックスを［インデックス］テーブル内の既存のインデックスより前の位置に挿入し、結果として元からあったインデックスが#2 から#3 に変更されると、Magic xpaは自動的に式の中の「'2'INDEX」を「'3'INDEX」に変更します。

SQLコマンド定義の場合は、この特性にアクセスできません。

XMLソースに対する式特性

式特性は、［XMLソース項目］特性が空白の場合のみ有効です。この特性には、英数字が返る式を指定します。

この特性には、XMLファイルのパスやURLが返る式を定義することができます。

この特性には、XMLの内容ではなくファイル名を指定します。file:\\（省略できます。）またはhttp://（https://）で始まるパスを付加して指定します。例：「“c:\my.xml”, "http:/localhost/my.xml"」

「0」以外が指定された場合、物理テーブル名として評価される式が定義されているものと扱われます。ここには、論理名を使用することができます。評価されたテーブル名は、［データ］リポジトリで定義されたテーブル名より優先されます。


メインソース特性 XMLのアクセス/共有

ホーム > リファレンスガイド > データビューエディタ > メインソース特性 > XMLのアクセス/共有

XMLのアクセス/共有

XMLデータソースの場合、以下のアクセス/共有の組み合わせが指定できます。

アクセス | 共有
W=書出 | N=なし
W=書出 | R=読込
R=読込 | R=読込
R=読込 | W=書出

［XMLソース項目］特性に項目を設定した場合、［共有］特性は無効になります。［共有］特性の内容に関わらず、項目には値が設定され、物理ファイルに保存されます。［アクセス］特性は、タスクやリンクのモードに基づいて実行中に評価されます。

［データソース（式）］特性の式が使用された場合、アクセス／共有の各設定は、実行時に評価されます。「XML実行時のアクセス/共有 」を参照してください。

フラットビューテーブル

タスクで使用するフラットビューテーブルは、ソースが項目か式にかかわらず、(テーブルを保存するDBMSが同時使用を許可していても）常に排他的な方法でオープンされます。

アクセス／共有の各設定は、式の値に基づいて評価されます。

関連トピック：

同じXMLドキュメントを異なるユーザで共有させるには


メインソース特性 XML実行時のアクセス/共有

ホーム > リファレンスガイド > データビューエディタ > メインソース特性 > 実行時のXMLのアクセス/共有

実行時のXMLのアクセス/共有

  • （［データ］リポジトリまたはタスク内の式で使用される）データソース名が、「http://」または「https://」という接頭辞を持っているXMLソースは、［アクセス］特性が「R=読込」になります。

  • XMLソースの［アクセス］特性が「R=読込」に設定されている場合、その要素の1つを更新しようとすると、エラーメッセージが表示されます。

  • XMLソースの［アクセス］特性が「W=書出」に設定されている場合、実際のファイルが指定されている場合に限って、式で指定されたXMLソースに書き込み（フラットビュー→XML）を行うことができます。http（または、https）で指定されたソースに書き込みを行おうとすると、エラーメッセージが表示されます。

タスクの階層

  • (［データ］リポジトリの)同じXMLソースを使用すると、階層内の各タスクに対して、同じフラットビューが使用されます。

  • 各タスク内で、XMLソースはタスクの［アクセス］特性に基づいて変更することができます。

  • サブタスクに入った場合、［アクセス］特性が「R=読込」でオープンされている間、サブタスクはXMLソースを「W=書出」でオープンし直します。


リンク定義

［リンク］コマンドは、異なるデータベーステーブル間に一対一のリレーションを作成します。リンクは、タスクのメインソースの現在のレコードと、別のデータベーステーブル（リンクテーブル）のレコードとの間に張ることができます。リンクにはインデックスセグメントを使用し、その値が等しい場合、レコードとレコードとの間でリンクが作成されます。

リンクを行うことで以下のことができます。

  • 妥当性の確認

  • リンクテーブル内に特定のレコードが存在しているかどうかの確認

  • リンクテーブルから項目を選択することによるレコードのデータビューの拡張

  • リンクテーブルのレコードの表示、修正、登録

［データビュー］エディタで［リンク］コマンドを定義することができます。

［リンク］コマンドは、レコードのデータビューの準備と同時に実行されます。リンクの作成後、リンク定義内で項目を定義することで、リンクテーブルのカラムがデータビューに追加されます。リンク項目は、メインソースから選択したデータ項目と同じように扱うことができます。

リンクの特徴は、その処理が動的であることです。つまり、メインソースの処理中、リンク定義で指定した式の値が変わると、リンクが自動的に再設定され、リンクされているレコードの値が再設定されます。

用途

  • メインソースと他のデータベーステーブルとの間に１対１のリレーションを作成できます。

  • データオブジェクト内の特定のレコードが検索できます。

  • 他のデータオブジェクトに対するデータ検証を行うことができます。

配置

［リンク］コマンドは、［データビュー］エディタでのみ定義できます。ここでは、タスクのデータビューを定義します。

関連トピック：

リンクの定義内容

リンク条件

リンク式の再計算

リンクの種類

リンク特性


リンク定義 特性

ホーム > リファレンスガイド > データビューエディタ > リンク定義 > リンク特性

リンク特性

リンク特性には［リンク］コマンドにおいてどのように評価されるかを指定します。ここには、以下のセクションで分類された特性があります。

詳細

データ

拡張

関連トピック：

リンクの定義内容

リンク条件

リンク式の再計算


リンク定義 特性 特性

ホーム > リファレンスガイド > データビューエディタ > リンク定義 > リンク特性 > 詳細

詳細

［リンク］特性の［詳細］セクションには、以下の特性があります。

特性

内容

データソース番号

ここには、リンクテーブルの識別番号を指定します。ここからズームすると、［データソース一覧］が表示されます。この一覧でリンクするデータソースを選択できます。

データソースを選択すると、［データソース名］特性に名前が入力されます。

データソース名

ここには、データソース名が表示されます。

同じ名前のデータソースが複数リンクされた場合、名前を区別するために、この特性を変更することができます。ただし、空白にすることはできません。

SQLコマンドの場合は、タスクが発行するSQLコマンドが表示されます。SQLコマンドは、１つのデータベースにのみ発行することができ、２つの物理的に隔てられているデータベース上のテーブルを参照することができません。Magic xpaがサポートする機能によって複数のデータベースのテーブルから構成されているデータビューを取得することができます。

インデックス

インデックスの番号を指定します。

メインのデータソースとリンクされたテーブルの間のリンクは、リンクされたデータソースのインデックスセグメントに基づいて実行されます。インデックスを適切に設定することで、レコードの検索時間を短縮することができます。

［インデックス］特性から、ズームしてリンクで使用するインデックスを選択できます。

この特性を選んだ場合、Magic xpaは自動的にインデックスセグメントを構成するカラムをデータ項目として定義します。

メインソースとリンクテーブルの関係（1対多のリレーション）を構築するには、重複不可のインデックス以外は使用できません。

方向

ここでは、レコードが検索される方向を指定します。検索は、リンクに指定されているインデックスを基に実行されます。以下のオプションが指定できます。

  • D=デフォルト …… インデックスの定義内容に基づいて検索されます。

  • R=逆方向 …… インデックスの定義内容とは反対の方向に検索されます。つまり、［リンク］コマンドと［リンク終了］の間に定義されているデータ項目の［位置付］特性や［範囲］特性は全て、逆方向に評価されます。

この特性は、照会リンク、書込リンク、登録リンクで有効です。

戻り値

［リンク］処理が成功したかどうかを示す値が返ります。ここには、論理型か数値型の項目を設定することができます。処理結果によって以下のような値が返ります。

  • リンクが成功した場合 …… 「True」たは「0」が返ります。

  • リンクが失敗した場合 …… 「False」たは「1」が返ります。

リンクに失敗した場合、エンドユーザに警報を出すような場合に使用することができます。

リンク評価

この特性は、リンクテーブルの評価をタスクレベルで行うか、レコードレベルで行うかを指定します。

  • T=タスク …… リンクテーブルは、データビュー全体を取得する前に１度だけ評価されます。［条件］特性が「No」に設定されている場合、または設定された式が「False」と評価された場合、リンクテーブルはデータビューには含まれません。

  • R=レコード …… リンクテーブルは、各レコードごとに評価されます。［条件］特性が「No」に設定されている場合、または設定された式が「False」と評価された場合、リンクは実行されず、［戻り値］特性に設定された値を含め、全てのリンク項目は、デフォルト値が設定されます。

アクセス

この特性は、マルチユーザ環境でのデータソースのアクセス方法を指定します。

  • R＝読込 …… 読み取り専用アクセスの場合です。

  • W＝書出 …… 読み取り/書き込みアクセスの場合に指定します。

プログラムに［リンク］コマンドを定義する場合、［リンクタイプ］にもとづいて以下のように設定されます。

  • R＝読込 …… 照会リンク、結合リンク、外部結合リンク

  • W＝書出 …… 書込リンク、登録リンク

APGを実行してリンクが定義されるプログラムを作成した場合、アクセスモードは、「読込」になります。

SpecialLinkWriteAccess という特殊フラグを使用することで、旧ﾊﾞｰｼﾞｮﾝと同じような動作にすることができます。

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

条件

この特性は、リンク条件を定義します。

［条件］特性に「Yes」、「No」、「式」のいずれかを入力することで、リンク条件を定義できます。式の評価対象は論理値でなければなりません。

  • Yes（式の評価結果が「True」） …… 必要なレコードがそのリンク条件によって取り出されます。

  • No（式の評価結果が「False」） …… レコードの取り出しは実行されません。このレコードはリンクに失敗したものとして動作し、以下の処理が行われます。

    • 定義されたリンク項目の全ての値がデフォルトに戻されます。

    • リンクの［戻り値］特性は「False」となります。

    • ［レコード後］の終了時にリンク条件の評価結果が「False」である場合には、現在の論理レコードの［レコード前］が無視されると同時に、変更内容も全て無視されます。


リンク定義 特性 データ

ホーム > リファレンスガイド > データビューエディタ > リンク定義 > リンク特性 > データ

データ

［データ］特性の［詳細］セクションには、以下の特性があります。

特性 | 内容
データソース(式) | この特性には、実行中にデータソースの物理ファイル名を式で指定します。この特性が指定されていない場合、［データソース番号］で指定された［データ］リポジトリに定義されているデータソース名を使用します。 この特性を利用することで、同じデータ構成の異なるデータソースを使用することができます。 XMLソースに対するデータソース（式） ［データソース（式）］特性は、［XMLソース項目］特性が空白の場合のみ有効です。この特性は、英数字が返る式のみ指定できます。 この特性には、XMLファイルをパスやURLで指定する式を定義します。 ここには、XMLの内容そのものではなくファイル名で指定します。例えば、“c:\my.xml”, "http:/localhost/my.xml" と言うように指定します。
XMLソース項目 | ［XMLソース項目］特性は、XMLソースでのみ有効です。この特性には、BLOB型項目を指定できます。指定された項目はXMLに変換されます。タスクは、この項目を読み書きすることができます。 ここからズームして［項目一覧］を表示できます。ここには、メインプログラムを除く上位タスクと自タスクのBLOB型項目が表示されます。


リンク定義 特性 拡張

ホーム > リファレンスガイド > データビューエディタ > リンク定義 > リンク特性 > 拡張

拡張

［リンク］特性の［詳細］セクションには、以下の特性があります。

特性

内容

共有

この特性は、マルチユーザ環境で同時実行している他のタスクがどのようにテーブルにアクセスできるかを指定します。

  • R=読込 …… 他のタスクに読み取り専用アクセスだけを許可する時に使用します。

  • W=書出 …… 他のタスクにも読み取りと書き込みアクセスを許可する時に使用します。この場合には、行ロックによる排他制御が行われます。

  • N=なし …… 共有アクセスを許可しない時に使用します。この場合にはテーブルレベルで排他ロックがかかります。

［アクセス］と［共有］が両方とも「W=書出」の場合、レコードロックが実行されます。また、［アクセス］が「W=書出」で［共有］が「R=読込」の場合、テーブルの共有が可能になります。さらに、［共有］が「N=なし」の時には、テーブルは排他使用となります。

アクセス/ 共有モードの詳細については、「マルチユーザ環境」を参照してください。

オープン

この特性には、以下のオプションがあります。

  • N=標準 …… 通常はこのオープンモードを利用します。

  • R=再索引 …… ISAM系のデータベースでのみ有効です。このオープンモードは、テーブルをオープンする時にMagic xpaが全てのインデックスを削除し、タスクの実行が終了し、テーブルをクローズする時にインデックスを再構築するように指示します。作成モードで大きなテーブルをインポートする場合、あるいはテーブルに対して大量のインデックス値の修正を実行しなければならない場合などに、［再索引］オープンモードはパフォーマンスを向上させる機能があります。全てのインデックスを除去しておくことにより、挿入または修正のたびに行われるインデックス操作（Pervasive SQL のB ツリーをバランス化する処理など）のための時間が不要になります。処理が終了すると、Magic xpaはテーブル全体に対してインデックス構造を作成します。
    ［再索引］オープンモードが使えるか否かは、データベースゲートウェイがサポートしているかどうかに依存します。このオープンモードを指定した場合、重複不可のインデックスに重複するキー値を入力すると、インデックス再構築の処理で予期しない結果が生じることがあります。例えば、Pervasive SQL はインデックス再構築の処理をそのまま中止します。他のデータベースゲートウェイはその重複する行をスキップする場合があります。

キャッシュ

［キャッシュ］特性は、リンクテーブルにのみ関連します。この特性の設定値により、リンクテーブルをキャッシュするかどうかを指定します。

設定可能な値は以下の通りです。

  • Yes …… リンクテーブルに対してキャッシュを使用します。

  • No …… リンクテーブルに対してキャッシュを使用しません。

デフォルト値は、［データソース］特性にある［キャッシュ範囲］特性の指定によって異なります。

位置キャッシュはリンクテーブルに対しては無意味である点に注意してください。そのため、［キャッシュ範囲］特性の設定が「P=位置」の時には、「No」とみなされます。

デフォルトの設定値は、［データソース］特性の内容によって以下のように決まります。

  • Yes …… ［データソース］特性で「D=位置とデータ」を指定した場合

  • No …… ［データソース］特性で「P=位置」または「N=なし」を指定した場合

更新レコード識別

データベースを更新する前に、別のユーザが修正した行を識別できるようにするため、SQL テーブルに対するWhere 句の作成方法を指定できます。

この特性には、以下のいずれかのオプションを指定できます。

  • P=位置

  • S=位置と選択項目

  • U=位置と更新項目

  • S=メインソースに依存

この特性は、遅延トランザクションを使用しているタスクのSQL系のリンクテーブルにのみ適用されます。

XMLソースの場合は、「S=メインソースに依存」の状態で無効になっています。共有は、「N=なし」に設定されています。

更新レコードの識別も参照してください。


リンク定義 定義内容

ホーム > リファレンスガイド > データビューエディタ > リンク定義 > リンクの定義内容

リンクの定義内容

リンクは、データビューに関連する処理です。このため、タスクの［データビュー］エディタでのみ定義できます。リンクは、基本的に次の順序で定義します。

  1. ヘッダ行の作成 …… ［編集］メニューの［ヘッダ行作成］(Ctrl+H)を選択し、ヘッダ行を作成します。

  2. リンク定義 …… ［リンク］コマンドを指定し、リンク対象となるデータベーステーブルを指定します。また、リンク方式、インデックスも指定します。

  3. 項目定義 …… 位置付式（最小／最大）を使用して、リンクテーブルのインデックスセグメントを指定します。また、各インデックスセグメントについて、リンク条件を設定します。

上記は、リンク処理を行う場合の最小限の設定で、この設定は、Magic xpaにより半自動的に行われます。［リンク］定義を選択すると、対応する［リンク終了］が自動的に作成されます。また、リンク先のテーブルとリンクで使用するインデックスを選択すると、［リンク］コマンドと［リンク終了］の間に、自動的にデータ項目が挿入されます。挿入されたデータ項目はそれぞれ、指定したインデックスのインデックスセグメントに対応します。

例えば、指定したインデックスにインデックスセグメントが２つある場合、［リンク］コマンドの後にデータ項目が２つ挿入されます。この２つのデータ項目はそれぞれ、指定したインデックスの２つのインデックスセグメントに対応しています。その後、必要に応じて、各インデックスセグメントについて、位置付式を指定します。

リンクテーブルとのリンクに使用するインデックスを変更すると、変更後のインデックスのインデックスセグメントに対応するデータ項目が、自動的に追加されます。

上記のように、リンクテーブルのデータ項目は自動的に定義されますが、リンクテーブルの項目を追加選択することもできます。項目を指定する場合、［リンク］コマンドと［リンク終了］の間に行を追加します。指定したデータ項目は、レコードのデータビューに追加されます。

［リンク］コマンド内に別の［リンク］コマンドをネストして指定することはできません。リンクをネストにしたい場合、まず、最初のリンクの直後に２番目のリンクを作成し、最初のリンクで指定した項目を２番目のインデックスセグメントの位置付式で指定します。これで、ネストと同じ処理ができます。


リンク定義 条件

ホーム > リファレンスガイド > データビューエディタ > リンク定義 > リンク条件

リンク条件

新規のレコードの作成ではなく、リンクを既存のレコードへのアクセス（照会、修正）に使用する場合、リンクされているレコードのうち、インデックスセグメントの値とリンク条件（そのリンクの総合条件）から返った値が一致するレコードが見つかった時、リンクは成功したと判断されます。この場合、［戻り値］特性には「True（論理型）」または「0（数値型）」が返ります。一方、値が一致するレコードが見つからなかった場合は、「False（論理型）」または「1（数値型）」が返ります。

リンクの値の照合条件としては、次の４種類を指定することができます。

  • ユニーク値による照合 …… 単一の特定のインデックス値を使用して照合を行う方法で、この場合、項目特性の［位置付 最小］特性と［位置付 最大］特性の両方に同じ式を指定します。この方法が標準です。

  • 範囲による照合 …… 範囲を指定して値を照合する方法です。この場合、項目特性の［位置付 最小］特性と［位置付 最大］特性に異なる位置付式を指定します。この設定では、リンクテーブルのレコードのうち、インデックスセグメントの値が指定した範囲の最初のレコードに対してリンクが設定されます。なお、この照合の場合、［リンク特性］の［方向］特性を使用して、リンクテーブルのレコードに対するアクセスの方向を指定できます。つまり、指定された範囲のレコードのうち、値が一致する最初のレコードにリンクを設定するか、または最後のレコードにリンクを設定するかを指定できます。

  • 部分照合 …… インデックスがマルチセグメントの場合、リンクに使用したいセグメントを指定して照合を行う方法です。この方法では、照合に使用したいインデックスセグメントの［項目特性］で、位置付式（最小／最大）を指定します。この場合、リンクテーブルのレコードのうち、インデックスセグメントの値が指定した範囲にある最初のレコードに対してリンクが設定されます。

  • 拡張照合 …… 以上のように、位置付式は、一般にリンクに使用したいインデックスセグメントの項目特性で指定しますが、そのほか、次のような設定も可能です。

  • ［リンク］コマンドでインデックスを指定すると、そのインデックスのセグメントに対応するデータ項目が作成されます。この項目特性で位置付式（最小／最大）を指定できます。リンクの中では、このほかにも必要に応じて項目（実データ項目または変数項目）を指定し、その項目に対して位置付式（最小／最大）を指定できます。こういった位置付式を指定した場合、指定した位置付式が全て満足された時に初めて、リンクが設定されます。
    位置付け指定をインデックスセグメント項目で行った場合と、それ以外の項目で行った場合とでは、値の照合方法が異なります。標準のインデックスセグメントに定義した場合、検索はインデックスを使用して高速に行われます。一方、それ以外の項目に定義した場合は、値の照合がインデックスセグメントの値が一致したところから順次検索で実行されます。

  • リンクの中では、データ項目（実データ項目または変数項目）を定義し、その項目に対して範囲式（最小／最大）を指定できます。こういった項目が複数ある場合、各コマンドの範囲式は全てタスクの実行時に評価されます。（データ項目がメインソースに関連しているか、リンクテーブルに関連しているかは無関係です。）
    その後、リンクが設定され、リンクされたレコードの項目がデータビューに追加されます。最後に、範囲式が指定されている項目に対して、範囲内にあるかどうかがチェックされます。範囲内に無いレコードはスキップされ、次のレコードのチェックが実行されます。


リンク定義 再計算

ホーム > リファレンスガイド > データビューエディタ > リンク定義 > リンク式の再計算

リンク式の再計算

リンクはMagic xpaの処理の中では非手続き型の処理に入ります。Magic xpaでは以下の場合、リンク式が再計算されると同時にリンクが再作成されます。

  • リンク定義で使用されている位置付式（最小／最大）に項目が定義されている場合

  • ［データビュー］エディタ上でリンク定義の前にその項目が定義されている場合

  • 項目の値が更新された場合

このため、リンク定義内の項目の値が全て変更されることがあります。式の再計算については、「非手続き型方式での代入式の自動再計算」を参照してください。

リンク式の項目のうち、値の変更を引き起こす項目を「修正項目」と呼んでいます。つまり、［データビュー］エディタ上でリンクの前に定義されており、その項目の値が変わるとリンクの再計算が引き起こされるような項目が修正項目となります。修正項目の値は以下の場合に変更されます。

  • エンドユーザが手動で変更した時

  • ［項目更新］処理コマンドが実行された時

  • ［フォーム入力］処理コマンドでデータが入力された時

  • コールされたタスクに渡され、そのタスクで変更された時

リンクの再計算は、「登録モード」または「修正モード」で実行されます。また、レコードレベル内のどこでも実行することができます。

注意：

［レコード後］で［項目更新］処理コマンドを使用する場合、その対象となる項目が、リンクの位置付式（最小／最大）で使用されているかどうかを確認する必要があります。こういった項目に対して［項目更新］コマンドを実行すると、リンク式が再評価され、リンクが再実行されます。その結果、リンクされているレコードの項目のうち、リンクに使用されていない項目の更新済みの値が失われる場合があります。

リンク失敗と代入式

リンクの実行に失敗すると、そのリンクのデータ項目に定義されている［代入］特性が再評価され、その値が項目に渡されます。この場合の処理の規則は、メインソースのデータ項目と同じです。

注意：

リンク方式が「登録」の場合、その性質上リンクは必ず失敗します。


リンク定義 種類

ホーム > リファレンスガイド > データビューエディタ > リンク定義 > リンクの種類

リンクの種類

先頭のヘッダ行以外のヘッダ行から、以下のリンク処理を選択することができます。

  • L=照会リンク …… 既存のレコードの検索を行いたい時に指定します。

  • W=書出リンク …… レコードが存在するかどうかをチェックし、存在している時には読込を、存在していない時には作成したい時に指定します。

  • C=登録リンク …… インデックス項目を使用して新規のレコードを作成したい場合に指定します。

  • I=結合リンク …… SQL系のデータベースで使用できます。プログラムのデータビューは、リンクされたデータソース内の存在するリンクレコードを持つレコードのみを含めます。

  • O=外部リンク …… SQL系のデータベースで使用できます。この処理コマンドは、「照会リンク」と同じ動作をしますが、データビューの扱いが異なります。プログラムのデータビューは、リンクされたデータソース内にリンクレコードが存在するか否かにかかわらず、メインソースの全てのレコードが含まれます。

  • E=リンク終了 …… 対応するリンク定義をクローズします。

関連トピック：

リンク特性

リンクの定義内容

リンク条件

リンク式の再計算


リンク定義 種類 照会

ホーム > リファレンスガイド > データビューエディタ > リンク定義 > リンクの種類 > 照会

照会

リンクの作成に成功すると、リンクテーブルからデータ項目として定義されているカラムがデータビューに含められます。

リンクに失敗した時は、以下のように動作します。

  • リンク項目の［代入］特性が設定されていない場合は、データ型が数値型、日付型、時刻型であれば、「0」で埋められます。また、文字型であれば空白が入り、BLOB 型であれば空になります。論理型の場合は「False」が入ります。なお、この値はいずれもデフォルト値で、このデフォルト値は、モデルレベルおよびカラムレベルで変更できます。

  • リンク項目の［代入］特性が設定されている場合は、その特性値の内容に基づいて初期化されます。

ヒント：

照会リンクを使用すると、リンクの失敗時に表示されるエラーメッセージをカスタマイズすることができます。これを行うには、リンクの［戻り値］特性の値をもとに［エラー］処理コマンドを実行する条件式としてください。

注意：

  • 照会リンクを使用してリンクが失敗した場合に表示されるエラーメッセージをカスタマイズすることができます。リンクの［戻り値］特性に指定した項目を基にした実行条件で、［エラー処理］コマンドを定義することでエラーメッセージを表示させることができます。

  • 照会リンクは、登録モードとして定義されたバッチタスクでは動作しません。


リンク定義 種類 書出

ホーム > リファレンスガイド > データビューエディタ > リンク定義 > リンクの種類 > 書出

書出

リンク方式として「W ＝書出」を指定すると、Magic xpaによりリンクの作成が試みられます。リンク処理に成功すると、リンクレコードからデータ項目として定義されているカラムの値がデータビューに含められます。

リンク処理に失敗すると、以下の規則に従って新規のレコードが作成されます。

  • リンク項目の［代入］特性が設定されていない場合は、データ型が数値型、日付型、時刻型であれば、「0」で埋められます。また、文字型であれば空白が入り、BLOB 型であれば空になります。論理型の場合は「False」が入ります。なお、この値はいずれもデフォルト値で、このデフォルト値は、モデルレベルおよびカラムレベルで変更できます。

  • リンク項目の［代入］特性が設定されている場合は、タスクがオンラインタスク、または修正モードのバッチタスクであれば、［代入］特性によって値が設定されます。


リンク定義 種類 登録

ホーム > リファレンスガイド > データビューエディタ > リンク定義 > リンクの種類 > 登録

登録

リンク方式として「C ＝登録」を指定した場合は、リンクの作成は行われません。この方式では、必ず、新規のレコードが作成されます。レコードの項目には、次の規則にしたがって値が設定されます。

  • リンク項目の［代入］特性が設定されていない場合は、データ型が数値型、日付型、時刻型であれば、「0」で埋められます。また、文字型であれば空白が入り、BLOB 型であれば空になります。論理型の場合は「False」が入ります。なお、この値はいずれもデフォルト値で、このデフォルト値は、モデルレベルおよびカラムレベルで変更できます。

  • リンク項目の［代入］特性が指定されている場合は、［代入］特性によって値が設定されます。

注意：

重複不可インデックスでリンクしているテーブルに重複したレコードを登録しないようにしてください。この場合、重複レコードは作成されず、重複エラーのメッセージが表示されます。


リンク定義 種類 結合

ホーム > リファレンスガイド > データビューエディタ > リンク定義 > リンクの種類 > 結合

結合

「結合リンク」方式は、Magic xpaの機能と併せて、RDBMS の結合機能を使用して複数のデータベーステーブルの読込を行ったり、結合を行ったりする時に使用します。この方式では、1 対多のリレーションの作成が可能です。この「結合リンク」は、エンドユーザがレコードを更新したり、Magic xpaにより再計算が実行されると「照会リンク」として機能します。

「結合リンク」によって、関連する全てのテーブルにおいてSQL 内部結合のクエリが作成されます。これに対して、通常のリンクコマンド（「照会リンク」）の場合は、次のようなデータ処理によってリンクを実現します。

  • リンクテーブルがある場合、メインソースから行が読み込まれるたびに、Magic xpaによりSELECT ステートメントがもう１つ追加されます。このSELECTステートメントによって、リンクテーブルの行が取り出されます。

  • メインソースの行はループしながら、取り出し（フェッチ）処理が行われます。よって、リンクが設定されている時には、メインソースの行が取り出されるたびに別のカーソル（SELECT ステートメント）がオープンされ、リンクテーブルの行が取り出されることになります。

  • メインソースが２つのテーブルとリンクされている場合、まず、メインソースのカーソルがオープンされ、その後、ループで次のような処理が繰り返し実行されます。

  1. メインソースの行が取り出されます。

  2. 最初のリンクテーブルのカーソルが開かれ、行が取り出されます。

  3. ２番目のリンクテーブルのカーソルが開かれ、行が取り出されます。

通常のリンクコマンド（「照会リンク」）と、「結合リンク」は次の点が異なります。

  • 「結合リンク」の場合、結合テーブルに行が存在しない時には、行の取り出しは行われません。

  • 複数のテーブルを結合すると、単一のテーブルになります。したがって、テーブルのカーソルは1 つで、このカーソルを使用して行の取り出しが行われます。

  • 通常のリンク処理は、「結合リンク」よりも効率が悪くなります。これは、リンクの場合、結合に比較して、Magic xpaとSQL サーバとの間の通信量とリクエストが増えるためです。

以上の点から、複数のテーブルを使用して帳票出力や照会表示を行いたい場合、次のようにすると効率が上がります。

  • 複数のテーブルを結合し、ビューを使用して帳票出力や照会表示を実行します。

  • リンクテーブルはキャッシュに置くようにします。特に、リンクテーブルに格納されている行の数が少ない時や、リンクテーブルの行の取り出しで同じ行が返る頻度が高い場合、リンクテーブルをキャッシュに置きます。

「結合リンク」は「照会リンク」と次の点で異なります。

  • 「照会リンク」では、リンクテーブルの各行に対して取り出しが試みられます。ここで指定された行が見つからない場合でも、その行に対応するメインソースの行が有効になります。

  • 「結合リンク」では、内部結合のSELECTステートメントを使用してメインソースとジョインテーブルが処理されます。このため、制約定義が重要になります。

「結合リンク」を指定した場合、タスクでデータビューが作成される際、Magic xpaにより結合テーブルに関するJOIN 構文が生成されます。また、定数と一致条件が入ったWhere句もMagic xpaによって作成され、このWhere 句では、メインソースと結合テーブルのカラムの名前が指定されます。次に残りのデータビューが構築されます。

「結合リンク」でJOIN 構文が生成されると、「結合リンク」からは戻り値として常に「True」が返ります。その後、「結合リンク」が「照会リンク」として機能した場合（つまり、エンドユーザによるレコードの更新やMagic xpaによる再計算が実行された場合）、リンクの作成が試みられ、その結果、リンクレコードの項目の値がレコードのデータビューに表示されます。

「結合リンク」を使用する場合の一般的な規則

  • 結合テーブルのインデックスセグメントを全て［データビュー］エディタ内に定義する必要があります。また、各インデックスセグメントには、それぞれ、［位置付］特性を定義しなければなりません。

  • 結合テーブルでは、厳密な範囲の指定が必要です。このため、［位置付 最小］と［位置付 最大］は同じ値を指定しなければなりません。

  • 結合テーブルに対する［位置付］特性には、次の要素が指定できます。

  • 定数

  • タスクのメインソースのデータ項目

  • タスクに定義された別の結合テーブルのデータ項目

  • 簡単な式

「結合リンク」で使用されたキャッシュは、次の場合にクリアされます。

  • インデックスが変更された場合

  • 結合テーブルのデータ項目の値が更新された場合

  • 位置付、範囲、ソートが実行された場合

  • タスクモードが登録モードに変わった場合

注意：

  • 「結合リンク」は、データベースがSQL データベースの場合にのみ有効です。また、結合できるテーブルは同一種類のデータベースのものに限ります。

  • DB2 UDBは各テーブルに対して個別のロックを要求するため、即時ロックになっているバッチタスクでの結合リンクは、結合された各テーブルに対してロックしないような結合リンク処理として動作し、フェッチされた各行に対する照会リンクとして動作します。

  • Magic xpaによってSELECT文が生成され、そのSELECT 文で複数のテーブルが指定されている場合、テーブル名にはいずれもエイリアスが使用されます。例えば、メインソースにはA、最初のジョインテーブルにはB、次のジョインテーブルにはC などというエイリアスが使用されます。

  • ユニークインデックスを使用した場合、Magic xpaは重複レコードが作成できません（作成できない場合でもメッセージは表示されません）

関連トピック：

ロック処理


リンク定義 種類 結合 ロック処理

ホーム > リファレンスガイド > データビューエディタ > リンク定義 > リンクの種類 > 結合 > ロック処理

ロック処理

物理トランザクションのみにおいて、Magic xpaがレコードをロックする必要がある場合、使用するRDBMSの機能を使用してロックを行います。

論理的なロックを使用するSQLゲートウェイでは、メインソースの［アクセス/共有］の設定が「書出/書出」の場合、論理的なロックはメインソースと結合テーブルに対して同時に実行されます。

物理的なロックを使用するSQLゲートウェイでは、RDBMSが結合テーブルに対してFOR UPDATE 句を許可するかどうかを確認します。

Oracleのような結合テーブルに対してFOR UPDATE 句を許可するRDBMSの場合、「書出」のアクセスモードでメインソースと結合テーブルに対して同時にロックが実行されます。

DB2 UDBのような結合テーブルに対してFOR UPDATE 句を許可しないRDBMSの場合、ロックは各テーブルごとに個別に行われます。

結合テーブルが「読込」アクセスでオープンされた場合、Magic xpaはメインソースのみをロックしようとします。

Magic xpaがデータベースを更新する必要がある場合、テーブルの位置キーに基づいて各結合テーブルを個別に更新します。


リンク定義 種類 外部

ホーム > リファレンスガイド > データビューエディタ > リンク定義 > リンクの種類 > 外部

外部

「外部リンク」は、メインソースと結合テーブルの両方が同じデータベースのSQLテーブルの場合に使用できます。

また、メインソースと結合テーブルは、多対１の関係にならなければなりません。結合テーブル内にメインソースと関連するレコードが１つだけあるか、または１つもない状態が必要です。

「外部リンク」は、メインソースのレコードと関連のある、結合テーブルのレコードを結合します。もし、関連するレコードがない場合は、NULL を設定します。関連するテーブルがあれば、「True」を返します。ない場合は、「False」を返します。

関連トピック：

データベース毎の外部リンクの構文


リンク定義 種類 外部 構文

ホーム > リファレンスガイド > データビューエディタ > リンク定義 > リンクの種類 > 外部 > データベース毎の外部結合リンクの構文

データベース毎の外部結合リンクの構文

各DBMSの外部結合リンクのSQL構文は以下のようになっています。

DBMS | 構文 | 例
MS-SQL Server 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データベース

［データビュー］エディタで、メインソースに関係なく［外部結合宇］リンクを選択することができます。Magic xpaは、テーブルを開き、照会リンクと同じようにリンクデータを取得します。


リンク定義 種類 リンク終了

ホーム > リファレンスガイド > データビューエディタ > リンク定義 > リンクの種類 > リンク終了

リンク終了

［リンク終了］によって、リンク定義の終了を表します。リンクテーブルの項目とは、［データビュー］エディタで、［リンク］コマンドと［リンク終了］の間に定義されているデータ項目をいいます。一方、リンクの外側で定義されている実データ項目は、メインソースのカラムになります。

使用の際の注意

  • ［データビュー］エディタで［リンク］コマンドのヘッダ行が追加されると、自動的に［リンク終了］が挿入されます。

  • ［リンク終了］は、単独では削除できません。［リンク］コマンドのヘッダ行が削除されると一緒に削除されます。

  • ［リンク終了］は、別のコマンドに変更することができません。

  • ネストされたリンクや対になっていないリンクが定義されている場合、構文チェックユーティリティによってチェックされます。


宣言特性

［宣言］コマンドは、データソースを確保したいときや、サブタスクのデータソースを開いたままにしたい場合に使用します。

バッチタスクでは、サブタスクが何回も呼び出される場合がある場合、サブタスクのデータソースのオープン処理は、パフォーマンスに影響します。

XMLデータソースを使用している場合、XMLドキュメントの定義に使用することができます。この場合、Magic xpaは、階層構造を表すフラットビューを作成することができます。

［宣言］には、以下の特性があります。

特性

内容

データソース番号

使用するデータソースの識別番号を指定します。ここからズームすると、［データソース一覧］が表示されます。この一覧でデータソースを選択できます。

アクセス

この特性は、マルチユーザ環境でのデータソースのアクセス方法を指定します。

  • R＝読込 …… 読み取り専用アクセスの場合です。

  • W＝書出 …… 読み取り/書き込みアクセスの場合に指定します。

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

データソース名

ここには、データソース名が表示されます。

実行時に使用するデータソースの物理名を定義する式を設定します。この特性に値が設定されていない場合、［データソース番号］特性に設定された値に基づいた［データ］リポジトリ上の名前を使用します。

この特性を使用すると、同じ構造の異なるデータソースにアクセスすることができます。このデータソースが上位タスクで開くように定義されていない場合だけ、データソースの物理名を決定するために使用されます。上位タスクで定義されている場合は、この式は無視されます。

関連トピック：

データソースに動的な名前を設定するには

データリポジトリに定義されている名前と異なるデータソース名を使用するには

XML ソース項目

［XMLソース項目］特性は、XMLソースでのみ有効です。この特性には、BLOB型項目を指定できます。指定された項目はXMLに変換されます。タスクは、この項目を読み書きすることができます。

ここからズームして［項目一覧］を表示できます。ここには、メインプログラムを除く上位タスクと自タスクのBLOB型項目が表示されます。

共有

この特性は、マルチユーザ環境で同時実行している他のタスクがどのようにテーブルにアクセスできるかを指定します。

  • R=読込 …… 他のタスクに読み取り専用アクセスだけを許可する時に使用します。

  • W=書出 …… 他のタスクにも読み取りと書き込みアクセスを許可する時に使用します。この場合には、行ロックによる排他制御が行われます。

  • N=なし …… 共有アクセスを許可しない時に使用します。この場合にはテーブルレベルで排他ロックがかかります。

［アクセス］と［共有］が両方とも「W=書出」の場合、レコードロックが実行されます。また、［アクセス］が「W=書出」で［共有］が「R=読込」の場合、テーブルの共有が可能になります。さらに、［共有］が「N=なし」の時には、テーブルは排他使用となります。

アクセス/ 共有モードの詳細については、「マルチユーザ環境」を参照してください。

オープン

この特性には、以下のオプションがあります。

  • N=標準 …… 通常はこのオープンモードを利用します。

  • R=再索引 …… ISAM系のデータベースでのみ有効です。このオープンモードは、テーブルをオープンする時にMagic xpaが全てのインデックスを削除し、タスクの実行が終了し、テーブルをクローズする時にインデックスを再構築するように指示します。作成モードで大きなテーブルをインポートする場合、あるいはテーブルに対して大量のインデックス値の修正を実行しなければならない場合などに、［再索引］オープンモードはパフォーマンスを向上させる機能があります。全てのインデックスを除去しておくことにより、挿入または修正のたびに行われるインデックス操作（Pervasive SQL のB ツリーをバランス化する処理など）のための時間が不要になります。処理が終了すると、Magic xpaはテーブル全体に対してインデックス構造を作成します。
    ［再索引］オープンモードが使えるか否かは、データベースゲートウェイがサポートしているかどうかに依存します。このオープンモードを指定した場合、重複不可のインデックスに重複するキー値を入力すると、インデックス再構築の処理で予期しない結果が生じることがあります。例えば、Pervasive SQL はインデックス再構築の処理をそのまま中止します。他のデータベースゲートウェイはその重複する行をスキップする場合があります。

キャッシュ

この特性は、リンクされたデータソースに対してのみ関連します。この特性は、リンクテーブルがキャッシュされるかどうかを指定します。

メインソースでは指定しないでください。以下のオプションがあります。

  • Yes …… リンクテーブルでキャッシュを使用します。

  • No…… リンクテーブルでキャッシュを使用しません。

デフォルト値は、［データソース特性］の［キャッシュ範囲］に依存します。

リンクテーブルでは、「位置」の設定は意味がないことに注意してください。このため、「位置」を設定した場合、「No」として扱われます。

デフォルトの設定は、［データソース特性］から以下のように扱われます。

  • Yes …… ［データ］特性で「位置とデータ」が定義された場合

  • No…… ［データ］特性で「位置」または「なし」が定義された場合

関連トピック： データベースのアクセス頻度を減らすには

更新レコード識別

データベースを更新する前に、別のユーザが修正した行を識別できるようにするために使用します。

この特性には、以下のいずれかのオプションを指定できます。

  • P=位置

  • S=位置と選択項目

  • U=位置と更新項目

  • S=メインソースに依存

この特性は、遅延トランザクションを使用しているタスクのデータソースに適用されます。

XMLソースの場合は、「S=メインソースに依存」の状態で無効になっています。共有は、「N=なし」に設定されています。

関連トピック：

更新レコードの識別

複数のユーザが同じレコードを修正した場合のMagic xpa の動作を決定するには

関連トピック：

データベーストランザクションを初期化するには


埋め込みSQL

埋め込みSQLは、RDBMS に渡すSQL文を開発者が直接記述します。

SELECT文が複雑な場合は、RDBMSサーバに行の結合と制約を行わせて、指定した行だけをMagicタスクのデータビューに反映させる方がより高速に処理できます。この機能は、ネットワークトラフィックが小さいほどシステム全体のパフォーマンスが向上する、クライアント/ サーバ環境において特に有用です。

RDBMSは１つのSQL文、カーソル、単純なトランザクションだけで垂直方向の更新と削除が実行できます。Magicタスクは、データビューの処理を１レコードずつ行います。挿入、更新、削除の各タスクは、全レコードを１回のトランザクションで処理できる場合であっても、レコードの処理を個別に実行します。

DDL（Data Definition Language）処理が実行時に特定される場合に、明示的なSQLを使用することができます。例えば、特定の帳票処理のために特別なテーブルインデックスを作成し、処理が終了したらそのインデックスを削除するような場合に必要になります。また、RDBMSの中で一時テーブルを作成したい場合にも使用できます。

一般的には、Magic xpaからDDLを実行するのは望ましくありません。

SQLコマンドダイアログには、以下のパラメータがあります。

  • データベース

  • 結果データベース

  • SQLコマンド

  • 入力パラメータ

  • 出力パラメータ

  • 戻り値

  • アシストユーティリティ

［SQLコマンド］ダイアログには以下のボタンが表示されます。

  • クリア …… ［SQLコマンド］ダイアログ内の表示を消去します。

  • アシスト …… SQLアシストユーティリティを起動します。

  • APG …… SQLコマンド用のAPGを起動します。

埋め込みSQLの使用における制約事項のトピックを確認しておいてください。

関連トピック：

埋め込みSQL の使用

埋め込みSQL の構成要素

SQLコマンドのAPG

埋め込みSQLのSELECT文の動作

埋め込みSQLの使用における制約事項

バインディング変数

遅延トランザクション内での埋め込みSQL

独自のSQLステートメントをデータベースに送るには


埋め込みSQL 使用

ホーム > リファレンスガイド > データビューエディタ > 埋め込みSQL > 埋め込みSQL の使用

埋め込みSQLの使用

［SQLコマンド］ダイアログを利用することで、MagicアプリケーションにネイティブのSQL文を埋め込むことができます。SQL コマンドを使用する場合、タスクの［メインソース］は「SQLコマンド」と表示されます。

  1. ［プロジェクト］メニューの［プログラム］を選択します。

  2. 新しい行を作成します。

  3. プログラム名として「デモ（または任意の名前）」を入力します。

  4. タスクツリーへズームします。

  5. ［タスク環境］メニューから［SQL コマンド］を選択します（Ctrl+Q）。［SQL コマンド］ダイアログが表示されます。

Magic xpaは、［タスク前］を実行する前に、SQLコマンドを実行します。タスクは、戻ってきたデータをデータビューの一部として使用することができます。

Magic xpaはコマンドの構文とセマンティクスの分析は行いません。これによってプログラミングの自由度は高くなりますが、それと同時にプログラマがプログラミング作業を慎重に計画する必要も生じます。Magic xpaには、埋め込みSQL のエラーからデータを保護する仕組みはありません。

埋め込みSQLの動作について

Magic xpaの埋め込みSQL機能は、パフォーマンスを改善するためのチューニングツールとして用意されています。この機能はパフォーマンスが大幅に向上することが見込める場合に必要に応じて使用してください。

以下のような場合に埋め込みSQL機能を使用します。

  • データベースに関する統計、例えばある特性を持つレコードの数や、当月の給与額総計などを出さなければならない場合。

  • データに対して垂直方向の更新をかける場合。例えば、全ての給与に対する５パーセントの増額処理、古くなったレコードに対する削除処理、あるテーブルの一部を別のテーブルにコピーする処理などです。

  • 以前にSQL DBMSツールで開発してコンパイルした既存のコード、例えばストアドプロシジャなどを活用する場合。


埋め込みSQL 構成要素

ホーム > リファレンスガイド > データビューエディタ > 埋め込み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 xpaから呼び出されるストアドプロシジャは、パラメータを値として受け取ります。

  • 出力パラメータを結果として得ることができるのはSELECT文の場合に限られます。

MS-SQL Serverでのストアドプロシジャ

戻り値の指定

MS-SQL Serverでのストアドプロシジャで戻り値をサポートします。

これを実現するには、［SQLコマンド］ダイアログで以下の構文を含むステートメントを定義してください。

？=

例えば以下のように指定します。

EXEC ? = proc_name

また、［戻り値］欄に変数項目を指定する必要があります。

戻り値がBOOLEANか、ステートメント上で指定された構文または戻り値が含まれていない場合、Magic xpaはストアドプロシジャのステータス（成功/失敗）の表示のみを行います。

結果セットのROWSET

ダイレクトSQL内でどのSELECTステートメントが戻るかを指定することができます。

これを実現するには、［SQLコマンド］ダイアログで以下の構文をSQLステートメントに追加する必要があります。

/*=== ROWSET=n ===*/

nは、戻り値として返したいSELECTステートメントの番号

例えば以下のように指定します。

/*=== ROWSET=5 ===*/

この場合、5番目の結果セットが返ります。

現存していないROW-IDを指定するとエラーメッセージが返ります。

Magic xpaでは、SQL Serverのストアドプロシジャ内のDSQLステートメントでカーソルを使用することができます。また、結果セットを戻すDSQLステートメントでのカーソルの使用をサポートしています。

これは、ダイレクトSQLステートメントに以下の構文を追加することで可能になります。

/*===CURSOR=Y ===*/

明示的なSQL

Magic xpaは、埋め込みSQLやタスク内のDB SQL を使用することで明示的なSQLを記述することができます。作成した構文は、ゲートウェイにそのまま送られ、追加もされずバインドされます。この方法で作成された全てのステートメントは、ANSI形式でデータベースに送られます。Unicode形式は、結果としてSQLタスクに戻される値でのみサポートされます。

関連トピック：

入力パラメータ

出力パラメータ


埋め込みSQL データベース

ホーム > リファレンスガイド > データビューエディタ > 埋め込みSQL > データベース

データベース

［データベース］欄には、SQLコマンドを実行するデータベースを指定します。

SQLコマンドは、１つのデータベースに対してのみ発行できます。物理的に２つに分かれているデータベースに対してリポジトリを参照することはできません。このような場合は、Magic xpaに組みこまれている機能を利用してアクセスする必要があります。

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コマンド］欄には、SQLコマンドが入力されます。

４つの選択テーブルからキーワード、演算子、テーブル名、およびカラム名を選択したり、直接ステートメントを入力することができます。

一覧をダブルクリックすると選択できます。選択された値がカーソル位置に挿入されます。選択値の挿入モードはMagic xpaの現在の挿入モードに依存します。挿入状態の場合は既存のテキストの間に挿入され、上書き状態の場合は、カーソル位置から上書きされます。

これらの操作は、マウスを使用しなくても以下の内部イベントを利用することでキーボード操作によって実行できます。

  • SQLキーワード

  • SQL演算子

  • SQLテーブル

  • SQLカラム

注意：

Magic xpa Studioでは、［SQLコマンド］には、最大10,000文字まで入力できます。

実行時は、ステートメントの実際の長さに制限はありません。また、パラメータとしてデータ項目を使用している場合、その長さにも制限がありません。

例：Select * from table where f1=:1 and f2=:2

  • 1と：2がデータ項目の場合、実行時は制限がありません。

  • ：1が式の場合、10,000文字までに制限されます。

関連トピック：

アシストユーティリティ


埋め込みSQL 入力パラメータ

ホーム > リファレンスガイド > データビューエディタ > 埋め込みSQL > 入力パラメータ

入力パラメータ

埋め込みSQL コマンドには、「コロン（:）＋数値」の形式でパラメータ識別子を指定できます。この「コロン（:）＋数値」は、SQL コマンドフォームの［入力パラメータ］テーブルの値に置き換えられます。この場合、パラメータは、SQL コマンドの準備処理の直前に計算され、続いて「コロン（:）＋数値」が計算済みの値に置き換えられます。その後、SQL ステートメントがRDBMS に送られ、構文がチェックされた後に実行されます。

SQL コマンドの構文は、必ずそのSQL コマンドの実行前に評価されます。これは、タスクが常駐タスクであっても同じです。一般的に、入力パラメータはWHERE句のプレイスホルダとして使用されます。

関連トピック：

パラメータ

パラメータテーブル

パラメータの受け渡し


埋め込みSQL 入力パラメータ テーブル

ホーム > リファレンスガイド > データビューエディタ > 埋め込みSQL > 入力パラメータ > パラメータテーブル

パラメータテーブル

［パラメータ］特性からズームすると、［パラメータ］テーブルが開きます。左側には、渡されるパラメータ、右側にはデータ項目のリストが表示されます。

［パラメータ］テーブルの［項目］カラムからズームすることで、［項目一覧］にアクセスすることができます。

［パラメータ］テーブルには、以下のカラムがあります。

カラム | 内容
# | ここには、Magic xpaによって生成された連番が表示されます。このカラムはカーソルはパークできません。
項目 | このカラムには、パラメータとなる項目のシンボル名を指定します。サブルーチンのデータを取り込む時にも使用されます。なお、項目を使用してパラメータを渡す方法を「参照渡し」といいます。一方、式を使用してパラメータを渡す方法を「値渡し」といいます。 項目のシンボル名を直接入力するか、ズームして［項目一覧］から選択します。項目を指定すると、［名前］カラムに、その項目の名前が表示されます。なお、パラメータとして式を使用して定数や動的な値を渡したい時には、この［項目］カラムはパスして、［式］カラムに進んでください。 すでに 式が定義されている場合は、［項目］カラムにカーソルは止まりません。
式 | ［式］カラムは、サブルーチンに定数や動的な値を渡したい時に使用します。式の結果の値をサブルーチンに渡す方法を「値渡し」といいます。なお、この場合サブルーチンからパラメータを通して値を受け取ることができません。 ［式］カラムには、式を示す番号が表示され、また、［名前］カラムには、式のテキストの最初の部分が表示されます。このパラメータをズームすると［式］エディタが表示されますので、ここで式を定義します。式は、既存の式から選択することもできます。式からは、Magic xpaの有効なデータ型が返らなければなりません。 ［項目］カラムにパラメータ項目が指定されている場合は、このカラムにカーソルは止まりません。［式］カラムを使用したい場合は、［項目］カラムのシンボル名を削除してください。
説明 | ［説明］カラムには、［項目］または［式］のどちらのパラメータを使用しているかによって、項目名か式の最初の部分が表示されます。このカラムには、カーソルはパークできません。
スキップ | ［スキップ］カラムのチェックボックスをオンにすることで、その行のパラメータについての定義を省くことができます。チェックボックスがオンになっている場合は、コール先には値は渡されません。

関連トピック：

パラメータの受け渡し


埋め込みSQL 入力パラメータ 受け渡し

ホーム > リファレンスガイド > データビューエディタ > 埋め込みSQL > 入力パラメータ > パラメータの受け渡し

パラメータの受け渡し

Magic xpaでは、次のようにして実行時にパラメータのやりとりが行われます。

  1. 実行時、［コールタスク］または、［コールプログラム］や［コール式］処理コマンドを実行する場合、現在のタスクの［パラメータ］テーブルに定義されているパラメータの現在の値が、呼び出されたタスクの対応するパラメータ項目または変数項目にコピーされます。

  2. 呼び出されたプログラムまたはタスクでパラメータ項目が定義されていると、渡されたパラメータが順番にパラメータ項目にコピーされます。この場合、変数項目はいずれも無視されます。パラメータ項目が設定されていない場合、パラメータは変数項目にコピーされます。
    呼び出されたタスクのパラメータ項目または変数項目には、呼び出し側のタスクの情報（パラメータの値）のコピーが入ることになります。こうして渡された項目は、表示やエンドユーザによる入力など、呼び出されたタスクで任意に使用できます。

  3. 呼び出されたタスクが終了すると、パラメータの値の格納に使用されていたパラメータ項目または変数項目の内容が、再度、呼び出し側のタスクの［パラメータ］テーブルのパラメータにコピーされます。ただし、呼び出し側のタスクの［パラメータ］テーブルで、［項目］カラムではなく［式］カラムを使用していた時には、この戻り置のコピーは行われず、情報は一方通行になります。つまり、呼び出されたタスクでパラメータの値が変更された時でも、その変更は一切、呼び出し側のタスクには伝えられません。
    これを整理すると次のようになります。

    • 参照渡し …… 呼び出し側のタスクでパラメータを［項目］で渡す場合。戻り値のコピーが行われます。呼び出されたタスクでパラメータの値が変更された場合、呼び出し側のタスクにも反映し、同じ値になります。

    • 値渡し …… 呼び出し側のタスクで［式］欄を使用していた場合。戻り値のコピーは行われません。呼び出されたタスクでパラメータの値が変更されても、呼び出し側のタスクには反映しません。

「参照渡し」の場合、呼び出されたタスクで変更されたパラメータは呼び出し側に転送されるため、その変更がきっかけで、呼び出し側のタスクで［代入］特性やリンク式（リンク条件）の再計算が実行されることがあります。その場合の再計算は、項目定義やリンク定義にしたがって行われます。呼び出されたタスクでは、パラメータの値の変更は、エンドユーザの入力や［項目更新］コマンドの実行によって発生します。呼び出し側のタスクでパラメータ項目が画面に表示されている場合、そのパラメータ項目の値が呼び出されたタスクで変更された後、制御が呼び出されたタスクから呼び出し側のタスクに戻ると同時に、呼び出し側のタスク画面の表示が更新されることになります。


埋め込みSQL 出力パラメータ

ホーム > リファレンスガイド > データビューエディタ > 埋め込みSQL > 出力パラメータ

出力パラメータ

SQL SELECT文またはストアドプロシジャは、通常使用されている標準のメインソースに代わる別のデータビューをMagic xpaに提供します。SQLコマンドの結果によって結果テーブルやデータストリームが生成されると、Magic xpaはそのデータの受け入れに必要なバッファを用意します。これらのバッファは、SQLコマンドのタスク内に定義された変数項目という形をとります。これらの変数項目の型と書式は、SQLコマンドが生成したデータと一致している必要があります。

関連トピック：

パラメータ


埋め込みSQL 戻り値

ホーム > リファレンスガイド > データビューエディタ > 埋め込みSQL > 戻り値

戻り値

UPDATEやDELETEなどのいくつかのSQLステートメントは、結果テーブルを戻しません。これらはバッチ処理コマンドと定義されます。このようなコマンドの戻り値には、コマンド処理結果を返す［戻り値］があります。

［戻り値］からズームすると、［パラメータテーブル］が表示され、ここで、コマンドの戻り値を受け取る項目を指定します。

SQLコマンドの結果を受け取るための項目は、論理型を使用します。親または、自タスクで定義された項目を定義できます。全てのタイプのSQLコマンドは、戻り値に値を返しますが、この使用は任意です。

戻り値が定義された場合は「1」、定義されない場合は空白が返ります。


埋め込みSQL アシスト

ホーム > リファレンスガイド > データビューエディタ > 埋め込みSQL > アシストユーティリティ

アシストユーティリティ

アシストユーティリティを利用すれば、テーブルやカラムのデータベース名が組み込まれたSQL 文を簡単に作成できます。SQL コマンドアシストユーティリティは、SQL コマンドを使用する時の前提条件となる、SQL 言語の知識に代わるものではありません。

アシストユーティリティのウィンドウには、以下のアクションボタンと選択一覧で構成されています。

ボタン

  • 表示切替 …… ［SQLコマンド］欄の表示を、Magic xpaでのテーブル名とRDBMSでのテーブル名で相互に切り替えることができます。

  • クリア …… ［SQLコマンド］欄をクリアする場合に使用します。

選択一覧

  • キーワード一覧 …… ［キーワード一覧］には、SQLコマンドで使用できるSQLのキーワードの一覧が含まれています。SQLコマンドの規則に従って、選択された値が［SQLコマンド］欄に挿入されます。

  • 演算子一覧 …… ［演算子一覧］には、SQLコマンドで使用できるSQLの演算子の一覧が含まれています。SQLコマンドの規則に従って、選択された値が［SQLコマンド］欄に挿入されます。

  • テーブル一覧 …… ［テーブル一覧］には、［SQLコマンド］ダイアログの［データベース］欄で指定されたデータベース内のテーブルに含まれている全てのテーブルが表示されます。これらは、Magic xpaでデータビューを構成できるテーブルです。データベースの中には、Magic xpaが対応できないテーブルが含まれているかもしれません。このような場合は、［SQLコマンド］欄に手動でSQLコマンドを入力してください。［テーブル一覧］からテーブルを選択すると、使用するRDBMSに対応した書式でSQLコマンドが挿入されます。
    テーブルとカラムの名を指定する際、データベースによっては完全な表記法によって指定する必要があります。(SQLコマンド表記法については、使用するRDBMSのドキュメントを参照してください。）
    一覧には、デフォルトでMagic xpaの［データ］リポジトリ上での名前が表示されます。
    SQLコマンドの規則に従って、値を選択してください。

  • メンバー一覧 …… ［メンバ一覧］には、［テーブル一覧］で選択されたテーブルの全てのカラムが表示されます。一覧からカラムを選択すると、カラムのデータベース名が、使用するDBMSに対応した書式で［SQLコマンド］欄に挿入されます。
    カラム名を指定する際、データベースによっては完全な表記法によって指定する必要があります。(SQLコマンド表記法については、使用するRDBMSのドキュメントを参照してください。）
    一覧には、Magic xpaの［データ］リポジトリ上でのカラム名が表示されます。
    SQLコマンドの規則に従って、値を選択してください。

アシストユーティリティを使用してデータベース内にあるテーブルやカラムの名前を参照することができますが、このユーティリティを利用して構文を組み立てる場合は注意が必要です。

例えば、アシストユーティリティは次のような構文を作成します。

SELECT ALL FROM EMPLOYEE

しかし、これは正しい構文ではありません。正確な構文は以下のようなものです。

SELECT * FROM EMPLOYEE

関連トピック：

アシストユーティリティの使用


埋め込みSQL アシスト 使用

ホーム > リファレンスガイド > データビューエディタ > 埋め込みSQL > アシストユーティリティ > アシストユーティリティの使用

アシストユーティリティの使用

アシストユーティリティを使用するには：

  1. ［SQLコマンド］ダイアログの［アシスト］ボタンをクリックします。［SQLアシスタ］ダイアログが表示されます。

  2. ［キーワード一覧］から１つのキーワードを選択してEnterキーを押し、［SQLコマンド］ボックスにその選択したキーワードを挿入します。続いてメンバ名、テーブル名、演算子も同じ方法でそれぞれの一覧から選択します。

［テーブル一覧］は、Magic xpaにおける名前とRDBMSにおける名前のどちらかで表示させることができます。［表示切替］ボタンをクリックすると、Magic xpaでのテーブル名とRDBMSでのテーブル名を相互に切り替えることができます。Magic xpa名とRDBMS名のどちらから選択した場合でも、SQL文にはRDBMS名が示されます。

［テーブル一覧］には、Magic xpaの［データ］リポジトリに定義されているテーブルだけが表示されます。ただし、［データ］リポジトリで定義されていないテーブルであっても、データベース内で使用可能なそれらのテーブルにアクセスするSELECT文を定義することはできます。


埋め込みSQL APG

ホーム > リファレンスガイド > データビューエディタ > 埋め込みSQL > SQLコマンドのAPG

SQLコマンドのAPG

SQL APG ユーティリティは、プログラマが入力したSQL 文を使用してMagicプログラムを作成します。SQL APG の実行だけが、SELECT文の実行前にその構文を検査できる唯一の方法です。このユーティリティは、SELECT文やストアドプロシジャに基づくMagicタスク構造を生成します。

生成されるタスクには、次の項目が含まれています。

  • 元のSQL コマンド

  • 選択したテーブルの全カラムに対応した変数項目

  • 自動的に作成された全ての変数項目を含んだ[出力パラメータ]

  • ユーザとの対話に使用するデフォルトのフォーム

開発者は、SQL コマンドの[入力パラメータ]を必要に応じて定義したり、デフォルトのフォームを変更するだけで基本的なプログラムを作成できます。

Unicode対応

[SQLコマンド]ダイアログからAPGを実行すると、Magic xpaはタスクを作成します。

結果が返るステートメントが定義された場合、定義されたカラムがデータベース上ではUnicodeのフィールドとして定義されている場合、Unicodeのカラムとして作成されます。


埋め込みSQL SELECT文の動作

ホーム > リファレンスガイド > データビューエディタ > 埋め込みSQL > 埋め込みSQLのSELECT文の動作

埋め込みSQLのSELECT文の動作

結果データベースを持つ埋め込みSQL文の中には、Magic xpaでの動作が異なるものがいくつかあります。

埋め込みSQL文は常に、［タスク前］の前に実行されます。このため［タスク前］が実行される時点では、そのSQL文はすでに実行されていることになります。

オンラインタスクとバッチタスクの比較

オンラインタスクの場合は、以下のようになります。

  • SELECT文の結果を表示する必要があります。

  • Magic xpaは一時的な結果テーブル/ファイルを作成して全部のレコードをそこに挿入するため、ユーザはそれらのレコードをスクロールできます。このテーブルはタスク終了時に削除されます。

バッチタスクの場合は、以下のようになります。

  • レコードは全て１度限り読み込まれるため、前に戻る必要はありません。

  • Magic xpaはSELECT文に従ってカーソルをオープンし、全てのレコードを１つずつ順番にフェッチします。

結果データベースと入力データベースが同じ場合

このオプションを選択すると、結果データベースを入力データベースと同じにすることができます。ほとんどの場合、基礎となるRDBMS では次の文を使用できます。

INSERT INTO table AS SELECT...

この文は1 回のコマンドで全データをテーブルにコピーしています。この方法はカーソルをオープンするよりも高速です。レコードは全てクライアントから取得され、結果テーブルに挿入されます。

このような場合、SQL ゲートウェイはデータベース内にテーブルを作成し、次の文を送信します。

INSERT INTO temp_table AS direct SELECT statement

その後、ユーザはこのテーブルをスクロールしてSELECT 文の実行速度を向上させることができます。この方法では一時ファイルから個々のレコードを取り出したりそこへ挿入したりする処理がないため、結果セットが大きい場合には特に有効です。

結果データベースと入力データベースが異なる場合

結果データベースが入力データベースと異なる場合は、一時テーブルが作成され、SELECT 文の結果のレコードが全てこの一時テーブルに格納されます。その後、タスクはこの一時テーブルをメインソースとしてスクロールできます。

推奨事項

  • 結果が大量になる場合は、結果データベースを入力データベースと同じにするオプションを利用するのが最善です。

  • 結果が比較的小さくなる場合は、結果データベースとして、クライアントに常駐するISAM データベースを指定するのが最善です。そうすることで、結果を作成してそれをスクロールする時の作業がクライアント上だけで済むため、ネットワークトラフィックが減少します。

  • 結果が比較的小さくなる場合は、メモリゲートウェイを使用することでパフォーマンスが向上します。

関連トピック：

結果データベース


埋め込みSQL 制約事項

ホーム > リファレンスガイド > データビューエディタ > 埋め込みSQL > 埋め込みSQLの使用における制約事項

埋め込みSQLの使用における制約事項

メインソースの代わりに埋め込みSQLが定義されているタスクは、通常のMagicタスクと同じ機能を持ちます。ただし、以下のような制約事項があります。

  • SQLコマンドで使用されている全てのテーブルは、［SQLコマンド］ダイアログの［データベース］欄で宣言されているデータベースのものでなければなりません。異なるデータベースのテーブルを組み合わせることはできません。

  • オンラインタスクでは、SQL コマンドのビュー（結果テーブル）のカラムを更新することはできません。また、更新しても、その更新はディスクには書き込まれません。これは、結果テーブルはタスクが終了すると同時に削除されるためです。更新を行いたい時には、別のテーブルをリンクして使用してください。

  • レコードが親タスクの現在のビューである場合、そのレコードの状態を変更するようなコマンドは使用しないでください。

  • バッチタスクの場合、項目のグループレベルを更新しないでください。グループレベル処理では、一つ前のレコードの更新が必要になりますが、バッチタスクの場合、タスクのデータストリームは一方通行で停止することができず、ブレイクレベルの更新を行うことができません。

  • バッチSQLコマンドでは、タスクレベルのトランザクションを使用します。

  • 埋め込みSQLでCOMMIT、ROLLBACK の各コマンドを使用した場合、それらがMagic xpaのトランザクション内で生成されないと、その結果は予測できません。COMMITとROLLBACKは、Magic xpaのタスクレベルテーブルで適切なトランザクションモードを選ぶことによってのみ正常に機能します。

  • SQL文はRDBMSによって実行されます。コマンドの構文を決めるのは開発者の責任であり、開発者はDBMS 固有の拡張機能を自由に利用できます。ただし、各種のSQL DBMS間でアプリケーションの可搬性が必要とされる場合は、DBMS 固有のSQL 拡張を埋め込みSQL に組み込まないように注意してください。これはMagic xpaが作成したSQL 文では問題となりません。Magicゲートウェイはデータベースごとに、正確で最適化された構文を生成します。

  • 埋め込みSQLをオンラインタスクで使用すると、Magic xpaによって一時テーブルが作成されます。このテーブルは任意にデータベース内に作成できます。通常は、Magic xpaに各レコードの読み取りと書き込みを行わせるより、RDBMSのユーティリティを利用してその同じRDBMS内に一時テーブルを作成する方が効率が高くなります。

  • 埋め込みSQLタスクの範囲指定は使用できません。

  • ストアドプロシジャを実行する時は、以下の形式で名前のすぐ前にexec を指定します。

exec sp_order_update

  • APGで作成されたステートメントは、ゲートウェイにより実行されます。この場合、結果セットの形式も正しく解釈されます。また、データの取り出しだけでなく、データを変更するステートメントも作成できます。

  • ODBCは、埋め込みSQLの結果データベースとして利用できません。

  • MS-SQL Serverの場合、戻り値はSelectステートメントの結果でのみ設定可能です。出力パラメータでは指定できません。

  • ローカルデータベースは、埋め込みSQLのステートメントで使用できません。

  • 埋め込みSQLは、オフラインタスクで使用できません。

  • 埋め込みSQLを使用するとき、表示されるレコードに対する位置情報がないため、［再位置付けモード］を「0」に設定した［ビュー再表示］イベントは、最後にパークされたレコードに位置付けされません。


埋め込みSQL 遅延トランザクション

ホーム > リファレンスガイド > データビューエディタ > 埋め込みSQL > 遅延トランザクション内での埋め込みSQL

遅延トランザクション内での埋め込みSQL

Magic xpaは、全てのタイプのタスクモード（ブラウザ、オンライン、およびバッチ）で埋め込みSQL を定義することができます。

［SQL コマンド］ダイアログからタスクを作成する場合、APG の［オプション］から「R=ブラウザ」を選択することで、埋め込みSQL のブラウザタスクを作成することができます。

ブラウザタスクで、ステートメントを選択し、ストアドプロシジャを呼び出すことができます。UPDATEやINSERTといったDMLステートメントは使用できません。

埋め込みSQL の行が、他のテーブルにリンクされている場合、埋め込みSQL でない行にリンクされたデータは、トランザクションキャッシュ内に保存されます。これは、遅延トランザクション内で通用のリンクとして動作します。


ロジックエディタ

ホーム > リファレンスガイド > ロジックエディタ

［ロジック］エディタ

［ロジック］エディタは、１つのエディタ内でタスクの論理セグメントを全て定義します。ここは、大きく分けて２つの種類のユニットで構成されています。

  • ヘッダ行 …… ロジックユニットを定義します。［編集］メニューから［ヘッダ行作成］（Ctrl+H）をクリックすると作成されます。

  • 詳細行 …… 処理コマンドを定義します。［編集］メニューから［行作成］（F4）をクリックすると作成されます。

ヘッダ行で定義された全ての処理コマンドは、そのロジックユニットの一部になります。詳細行は、ヘッダ行の下にインデント表示されます。これによって定義された処理コマンドがロジックユニットの一部であることがわかります。

注意：

［ロジック］エディタでは、重複したロジックユニットを定義できません。

［編集］メニューから［行を無効化］または［行を有効化］（CTRL+SHIFT+D）を選択することで処理コマンドを使用不可または使用可にすることができます。この切り替え機能は、コンテキストメニューからも指定できます。行の無効オプションは、定義行を使用できなくするため、プログラムを実行する時も実行されなくなります。

［特性］シートには、各ロジックユニットや処理コマンドに対応した特性値が表示されます。

関連トピック：

ロジックユニット

処理コマンド

タスクにロジックを作成するには


ロジックエディタ ロジックユニット

ホーム > リファレンスガイド > ロジックエディタ > ロジックユニット

ロジックユニット

ヘッダ行は、ロジックユニットを表しています。

各ロジックユニットは、先頭行（ヘッダ行）に表示されるコンボボックスで、ユニットのタイプが指定されます。

  • タスク前／後 …… これらのロジックユニットには、タスクの起動／終了時に実行される処理コマンドを定義します。
    ［タスク前］ロジックユニットは、タスクの初期設定処理のために使用されます。
    ［タスク後］ロジックユニットは、タスクの終了処理（タスク呼び出しのパラメータの更新や合計値の印刷処理など）のために使用されます。

  • グループ前／後 …… これらのロジックユニットには、ブレイク項目の値が変化すると実行される処理コマンドを定義します。バッチタスクでのみ有効です。
    ［グループ前］ロジックユニットは、ブレイク項目に新しい値が入力されるとレコードグループの開始処理として呼ばれます。このロジックユニットは、通常、グループヘッダを印刷する処理で使用されます。
    ［グループ後］ロジックユニットは、変更されたブレイク項目をもったレコードの処理を実行するために呼ばれます。このロジックユニットは、通常、グループフッタを印刷する処理で使用されます。

  • レコード前／後 …… ［レコード前］ロジックユニットには、ディスクからレコードが読み込まれる直後で、対話処理を開始する前に、各レコードごとに実行される処理コマンドを定義します。このロジックユニットは、レコードの初期設定に関わる処理にために使用されます。
    ［レコード後］ロジックユニットには、変更されたレコードの更新を行うための処理コマンドを定義します。オンラインタスクの場合、レコードが変更されていなければ実行されません。バッチタスクの場合は、各レコードごとに実行されます。

  • コントロール前／検証／後 …… ［コントロール前］ロジックユニットは、特定のコントロールにカーソルが入った場合に実行される処理コマンドを定義します。このユニットは、特定のコントロールの初期設定処理を行う場合に使用されます。コントロールのロジックユニットは、レコードのロジックユニットの後に実行されます。
    ［コントロール検証］ロジックユニットは、特定のコントロールからカーソルが出た場合に実行される処理コマンドを定義します。このユニットは、［コントロール後］の前に高速モードでコントロールを通過した場合も実行されます。
    ［コントロール後］ロジックユニットは、カーソルがコントロールを離れる直前にコントロールの終了処理を実行する処理コマンドを定義します。

  • 項目 …… このロジックユニットでは、「C=変更」のみ有効です。特定のデータ項目が変更された場合に実行される処理コマンドを定義します。

  • イベント …… 指定されたイベントが実行された時に実行される処理コマンドを定義します。［イベント］ダイアログにズームして、イベントを選択します。詳細については、「ユーザ定義イベント」を参照してください。

  • 関数 …… ユーザ定義関数を定義します。

注意：

ロジックユニットは、基本的には、指定されたレベルにかかわらずどの位置にも定義できます。例えば、［タスク後］は、［ロジック］エディタ内のどの位置にも定義できます。

ただし［グループ］レベルの場合は、一番最初にブレイクが発生する順に［ロジック］エディタの上から（前、後の順に）定義する必要があります。

関連トピック：

ロジックユニットの自動作成

Magicエンジン


ロジックエディタ ロジックユニット RM互換

ホーム > リファレンスガイド > ロジックエディタ > ロジックユニット > RM互換

RM互換

Magic xpaは、タスクロジックとデータビューのエディタが個別に用意されていますが、V9Plus以前までサポートされていたレコードメインの互換機能が提供されています。

Magic V9PlusのアプリケーションをMagic xpaのプロジェクトに移行すると、レコードメインは［RM互換］ロジックユニットに変換されます。ここではロジック（処理コマンド）が、V9Plusのレコードメインと同じように定義することができます。

関連トピック：

［RM互換］ロジックユニット

［データビュー］エディタとの同期処理

RM互換での操作

RM互換とタブ順序


ロジックエディタ ロジックユニット RM互換 ロジックユニット

ホーム > リファレンスガイド > ロジックエディタ > ロジックユニット > RM互換 > RM互換 ロジックユニット

［RM互換］ロジックユニット

Magic V9Plusのアプリケーションをmagic xpaのプロジェクトに移行すると、レコードメインは［RM互換］に変換されます。ここではロジック（処理コマンド）が、V9Plusのレコードメインと同じように定義することができます。

このロジックユニットは、［データビュー］エディタで入力されたデータ項目の全てが表示され、そのデータ項目の間にロジックを定義することができます。ただし、ここでデータ項目を定義することはできません。

RM互換は、MAGIC.INIの［MAGIC_SPECIALS］セクションで SpecialRMCompatibleLogic=Y と設定し、Magic xpaを再起動した場合のみ定義することができます。［ロジック］エディタで、コンボボックスから「M=RM互換」を選択することができます。

［RM互換］のヘッダ行では、詳細行を追加できません。各タスクに登録できる［RM互換］は、オンラインタスクに1つのみです。このロジックユニットが割り当てられると、これ以外のヘッダ行のコンボボックスに［M=RM互換］が表示されなくなります。［RM互換］のヘッダ行を削除すると、［RM互換］を再び定義できるようになります。

このロジックユニットの、項目定義は灰色で表示されており修正できない状態になっていますが、詳細行を追加するような修正処理を行うことができます。

ロジックユニットを［RM互換］に変更する場合、あらかじめ詳細行を空にしておく必要があります。このため、ロジックの詳細行を持つロジックユニットが定義されている場合、詳細行を削除しなければなりません。ロジックユニットが空になっていない場合、ロジックユニットのコンボボックスには、「RM互換」が表示されません。詳細行が定義されていない場合のみ、［RM互換］ロジックユニットを別のロジックユニットに変更することができます。

タスクのタイプをオンラインからバッチまたはブラウザタスクに変更した場合、［RM互換］は、無効状態に変更されます。タスクのタイプをオンラインに戻した場合、［RM互換］は有効になります。

このロジックユニットは以下の動作します。

  • ［データビュー］エディタで定義されたデータ項目が自動的に作成されます。また、［データビュー］エディタでの変更内容が同期を取って更新されます。

  • コントロールに対するタブ順序は、ロジックユニットに表示されるデータ項目の順番になります。

  • オンラインタスクには、1つの［RM互換］のみ定義できます。ブラウザタスクやバッチタスクでは無効です。

  • Magic V9Plusアプリケーションを、Magic xpaのプロジェクトに移行すると、［ロジック］エディタに［RM互換］として変換します。この変換処理には、SpecialRMCompatibleLogicフラグの設定は不要です。

  • ［RM互換］では、［ブロック］処理コマンドの「While」オプションが指定できません。

  • 項目の参照定義は、ユーザでは定義できません。［クロスリファレンス］ユーティリティでは、この参照定義を検索することができません。

関連トピック：

［データビュー］エディタとの同期処理

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互換］を削除すると、［自動タブ順序］特性が有効になります。

GUI表示フォームの全てのコントロールの［タブで移動］特性と［タブ順序］特性は、無効です。

オンラインタスクに［RM互換］が定義されている場合、サブフォームがタブ順序において最後のコントロールとなります。サブフォームが複数定義されている場合、［データ］特性が定義されたコントロールの最終タブ順序以降のタブ順序から始まり、上辺位置、左辺位置、Zオーダに基づいて順番に設定されます。

［RM互換］ロジックユニットが有効な場合、［サブフォーム］コントロールにはパークできません。

［RM互換］ロジックユニットの削除

オンラインタスクで［RM互換］ロジックユニットを削除すると、［データビュー］エディタ内に定義された項目の順番がパーク可能なコントロールの順番と同じ場合は、フォーム上のパーク可能なコントロールの［Zオーダ］が以下のようにチェックされます。

  • ［Zオーダ］が項目の順番と同じ場合、コントロールの［TAB順序］は「自動TAB順序」機能によって定義されます。

  • ［Zオーダ］が項目の順番と異なる場合、項目の定義順に従ってコントロールの［TAB順序］が設定されます。

関連トピック：

［RM互換］ロジックユニット

［データビュー］エディタとの同期処理

RM互換での操作


処理コマンド

Magic xpaは、［ロジック］エディタで使用できる10の処理コマンドを提供しています。式を追加したり、Magic関数や内部イベントなど使用してこれらの処理コマンドをカスタマイズすることができます。

コマンド名やショートカットキーを入力したり、コンボボックスから処理を選択することで処理コマンドを指定できます。処理コマンドには以下のものがあります。

処理コマンド | オプション
コメント (デフォルト) |
項目更新 |
コール | プログラム サブタスク 式 公開名 リモート
外部コール | COM OS コマンド UDP(ユーザ定義) Web サービス Webサービスライト .NET
イベント実行 | システム 内部 ユーザ 公開イベント
アクション |
ブロック | If Else While End
エラー | エラー 警告 復帰
フォーム | 入力 出力
項目 | 変数 パラメータ

関連トピック：

ロジックユニット

タスクに処理コマンドを設定するには


ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 共通特性

処理コマンド - 共通特性

条件

フロー方向

フローモード

フォーム


条件

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 共通特性 > 条件

条件 (デフォルト:Yes)

[条件]特性には、処理コマンドを実行する論理条件を指定します。

  • Yes …… 条件が常に「True」であることを示しています。

  • No …… 条件が常に「False」であることを示しています。処理コマンドは実行されません。

  • 式番号 …… 処理コマンドの実行条件を動的に制御する場合に指定します。ここから[式]エディタにズームして実行条件の論理式を選択してください。

関連トピック：

項目の値を処理コマンドの実行条件に設定するには


処理コマンド 項目更新 特性 フロー方向

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 共通特性 > フロー方向

フロー方向

この特性は、カーソルの移動方向によって処理の実行を制御する場合に使用します。この特性は、［コントロール］レベルのロジックユニットで有効です。

以下のオプションが選択できます。

  • F=前方 …… Tabキーを押下した場合、カーソルがフォームの先頭から下方向に移動するフローを有効にします。

  • B=後方 …… Tabキーを押下した場合、カーソルがフォーム終端から上方向に移動するフローを有効にします。

  • C=両方向 …… 両方向の移動を有効にします。

関連トピック：

Flow 関数


処理コマンド 項目更新 特性 フローモード

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 共通特性 > フローモード

フローモード

［フローモード］を使用して、タスクのメインウィンドウ上でのエンドユーザの操作に応じて、論理ブロックのコマンドをどのように実行させるかを指定できます。この特性は、［コントロール検証］と［RM互換］、［イベント］ロジックユニットでのみ有効です。

以下のオプションから選択できます。

  • S=通常 …… デフォルトの検索モードの場合のみ実行されます。 エンドユーザが［次項目］や［前項目］のイベントを使用して、カーソルを現在のコントロールから同じレコード内の前後のコントロールに移動した場合にこのモードになります。

  • F=高速 …… マウスクリックやイベント実行によって別レコードのコントロールにカーソルが移動した場合、このモードになります。フローが高速モードで動作した場合、エンジンはテーブルのレコードを検索し、この特性になっている処理コマンドのみ実行されます。必要に応じて［項目特性］の［代入］特性やリンク式が再計算される場合があります。

  • C=両用 …… 「高速」モードと「通常」モードの両方で有効になります。

以下のオプションは、［RM互換］でのみ有効です。

  • B=前置 …… このオプションが設定されている場合、エンドユーザが現在のコントロール上にてズーム操作（F5）を行うことで処理コマンドが実行されます。このオプションは、［RM互換］ユニットでのみ有効です。

  • A=後置 …… このオプションが設定されている場合、エンドユーザが次のコントロール上にてズーム操作（F5）を行うことで処理コマンドが実行されます。このオプションは、［RM互換］でのみ有効です。


フォーム

この特性は、入力フォームまたは出力フォームに対するフォーム名を入力するか、フォーム一覧から選択します。選択するフォームは、クラスが 0より大きいものでなければなければなりません。指定するフォームは、入力または出力レコードのフォーマットを定義します。

ここでフォーマットとは、テキストファイルのレイアウトまたは帳票の各部分（ヘッダ、フッタ、ページヘッダ、ページフッタ、明細の各部）の形式を表します。

フォームを作成する場合は、［プロジェクト／フォーム］（Ctrl+F）を実行するか、ツールバーの［フォーム］ボタンをクリックして［フォーム］エディタを開き、F4キーを押下して１行追加してください。


処理コマンド コメント

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コメント

コメント

目的

  • テーブルを読みやすくするためや、グループ間の区切りとして［データビュー］エディタや［ロジック］エディタに空白行を挿入します。

  • プログラムにコメントを入力します。

［コメント］コマンドの行には、実際のコマンドは定義できません。

用途

  • プログラムの注釈文

特性

  • テキスト …… デフォルトでは、その行が空白になります。この行には、文字を入力できます。最大128桁の文字が入力できます。


処理コマンド 項目更新

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 項目更新

項目更新

項目に値を代入する処理を行ないます。この処理コマンドを使用することで以下のようなことができます。

  • 項目に特定の値を入力します。

  • 帳票印刷処理やオンラインタスクで、値の合計処理を行うことができます。

  • バッチタスクで更新処理を行うことができます。

  • 異なるテーブル間で、レコードのコピーを行うことができます。

［項目更新］処理コマンドは、Magicエンジンが処理コマンドを通るたびに実行される手続き的な処理コマンドです。

データソース間でレコードをコピーする場合は、［強制更新］特性を「Yes」に設定した加算モードで項目更新を行うことで、データの整合性を維持することができます。

［代入］特性は、データ項目の値を初期化する場合に使用することもできます。

関連トピック：

項目更新特性

データ項目を更新するには


処理コマンド 項目更新 特性

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 項目更新 > 項目更新特性

項目更新特性

Alt+Enterを押下するか、マウスを右クリックしてコンテキストメニューから［特性］を選択することによって、［項目更新］処理コマンドの［特性シート］に入ることができます。

［項目更新］処理コマンドには、以下の特性があります。

条件

フロー方向

項目

値

加算

強制更新


処理コマンド 項目更新 特性 項目

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 項目更新 > 項目更新特性 > 項目

項目

ここには、更新対象となる項目のシンボル名を入力します。直接入力するか、ズームして[項目一覧]から選択します。

上位タスクの項目を指定することもできます。


処理コマンド 項目更新 特性 更新値

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 項目更新 > 項目更新特性 > 値

値

［式］エディタに定義されている式番号を指定します。指定された式の内容で項目が更新されます。

［項目更新］処理コマンドでは、「代入更新」と「加算更新」の2 種類の更新が可能です。どちらの更新を行うかは、［加算］特性で指定できます。代入更新と加算更新では、式（更新式）の作成方法が異なります。

代入更新の場合の更新式

代入更新の場合、更新式から返った値が更新項目に入れられます。例えば、項目Bの値を累計し、その結果を項目A に入れたい場合、更新式は「A+B」となります。

加算更新の場合の更新式

加算更新は、リンクテーブルを扱っている場合に、データの整合性を維持したい時に使用します。この方法では、更新項目の現在の値が更新式の値の分だけ増加します。したがって、更新式には、加算する値だけを指定します。例えば、更新項目A の値を項目B の値の分だけ増加させたい時には、更新式は「A+B」ではなく「B」となります。

加算更新は、オンラインタスクでのみ動作します。


処理コマンド 項目更新 特性 加算

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 項目更新 > 項目更新特性 > 加算

加算 (デフォルト:No)

Magic xpaでは、項目の加算更新機能が可能です。これは、更新される式の内容が評価され、特定の規則に基づいて更新対象の項目に加算したり、減算したりするものです。

加算更新を使用する場合は、［レコード後］に［項目更新］処理コマンドを定義してください。この場合、レコードが編集された後に一回だけ［項目更新処］理コマンドが実行されます。

親タスクやリンクレコードのカラムに合計値を格納するような場合に加算更新を使用することができます。これらの場合に、サブタスクのレコード処理が実行された後に親レコードの処理が取り消されることを防止するために、［強制更新］特性を「Yes」に設定してください。

ここでは、加算更新を行なうかどうかを指定します。指定できる値は、以下のいずれかです。

注意：

加算更新は、オンラインタスクでのみ動作します。

  • No …… 代入更新を行いたい時に指定します。この場合、更新式から返った値が、更新項目に代入されます。項目の値の更新を行う場合、普通は、この方法を使用します。

  • Yes …… 加算更新を行いたい時、この値を指定します。Magic xpaは更新式を評価して、以下の規則に従ってこの値を加算したり減算します。

  1. タスクの現在の処理モードが「登録モード」の場合、更新式の値が更新項目の値に加算されます。

  2. タスクの現在の処理モードが「修正モード」の場合、まず、更新項目の値から更新式の以前の値（a）が差し引かれ、その後、更新式の新規の値（b）が更新項目の値に加算されます。
    更新式の以前の値（a）とは、レコードが読み込まれた後、更新式で指定されている項目に値が入った時に更新式が評価され、その結果、返った値を意味します。
    更新式の新規の値（b）とは、［項目更新］処理コマンドが実行された時に更新式が評価され、その結果返った値を意味します。

  3. タスクの現在の処理モードが「削除モード」の場合、更新項目の値から更新式の値が差し引かれます。

  4. 更新項目としてリンクテーブルの項目が指定されており、エンドユーザがレコードを操作している間にリンク条件が変更されたことにより、リンクレコードが新たに読み込まれた場合、次の処理が行われます。この処理は、データの整合性の維持のための処理です。
    まず、以前のリンクレコードの項目（更新項目となっている項目）の値から更新式の以前の値が差し引かれ、その後、新規のレコードの項目（更新項目となっている項目）の値に更新式の新規の値が加算されます。

    たとえば、オンラインタスクの受注入力プログラムが修正モードで実行している場合、ユーザは顧客番号を変更するとします。この番号は、受注総額を計算するために顧客ファイルとのリンク条件として使用されているものとします。この場合、Magic xpaが［項目更新］処理コマンドを実行すると、受注総額の変更の有り無しに関わらず、現在の受注データから更新前の顧客のレコードを差し引き来、更新後の顧客レコードを追加します。

  5. 通常は、加算更新では［項目更新］処理コマンドの加算式に、定数を使用しないでください。タスクが「修正モード」の場合、このような定数は加算や減算の処理によってキャンセルされます。しかし、そのような式はタスクが「登録モード」や「削除モード」の場合は、正しく動作します。たとえば、定数"1"が加算更新の更新式で使用され、サブタスクのデータビューのレコード数のカウンターとして使用する場合、この値は、親タスクで定義されたデータ項目か、現在のタスクのリンクレコードによて定義された項目で維持されます。サブタスクが「修正モード」である限り、カウンターの変更は発生しません.しかし、サブタスクのデータビューからレコードが削除されたり、レコードが追加された場合、カウンターは正しく更新されます。

加算更新の例

［仕入ファイル］と［商品ファイル］があり、［商品ファイル］は［仕入ファイル］にリンクされているとします。［商品ファイル］には［在庫］項目があり、ここに在庫数が格納されます。また、［仕入ファイル］には［数量］項目があり、この［数量］項目を使用して［在庫］項目の値を更新するとします。ここで、［在庫］項目を項目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」にしておくだけで、エンドユーザによる更新の取消は防げます。


処理コマンド コール

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール

コール

この処理コマンドは、以下のオプションで指定したプログラムを呼び出す場合に使用します。

  • コールプログラム …… Magic xpaのプログラムを呼び出します。呼び出す際にパラメータや戻り値を指定することができます。

  • コールサブタスク …… 子タスクを呼び出します。［戻り値］特性はサポートしていません。

  • コール式 …… 呼び出すプログラムを式で定義することにより、実行時に呼出先を動的に指定できます。

  • コール公開名 …… 実行時にプロジェクトによって認識されたコンポーネントを呼び出します。

  • コールリモート …… リモートアプリケーションのプログラムを呼び出します。

Alt+Enter を実行すると［コール特性］にアクセスできます。

注意：

メインプログラムは、［コール］処理コマンドで呼び出せません。


処理コマンド コール プログラム

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール > プログラム

コールプログラム

プロジェクト内に定義されているMagicプログラム番号を指定することで、このプログラムを呼び出すことができます。これによって以下の処理が実現できます。

  • １対多のリレーションの処理が可能です。

  • 選択または参照用のデータ一覧の表示に利用できます。

  • エンドユーザに確認や入力を促す様々なウィンドウを表示できます。

特性

［コールプログラム］処理コマンドには、以下の特性があります。

プログラムID

パラメータ

戻り値

フォーム

出力先 (リッチクライアントプログラム用)

フォーカスを保持(リッチクライアントプログラム用)

ロック

同期

コンテキストID

条件

使用の際の注意事項

  • ［コールプログラム］処理コマンドは、通常、ズーム可能ウィンドウを表示したい時に使用します。

  • プログラムは以下の３つの方法で起動することができます。

  • ［コールプログラム］処理コマンド

  • CallProg 関数

  • メニューを使用して独立したプログラムとして起動する。メニューによる起動の場合、渡されるパラメータには全てNULL値が割当てられます。

  • スタンドアロンプログラムと同ように、パラメータでNULL値を渡すことができます。この場合、数値型の場合は「0」、文字型の場合は空白、BLOB型の場合は、空データとして渡されます。

  • Magicプログラムは、そのプログラム自身を呼び出すこともできますし、パラメータを渡すこともできます。つまり、Magic xpaのプログラムは、ネストを使用して有効範囲の中で再帰呼び出しが可能です。

注意：

  • ［プログラム］リポジトリでプログラムを追加したり削除したりすると、追加や削除を行ったプログラムの行以降の番号が変わります。この［呼び出される式番号］として、そういった番号が返る式を指定していた場合、式も変更しなければなりません。その場合、PROGリテラルを使用することで自動的に番号が更新されるようにすることができます。例えば、論理項目「AB」を使い、その値に応じて「プログラム3」または「プログラム4」のどちらかが実行されるように指定していたとします。この時には、「IF（BA,ﾂ鄀3ﾂ単ROG,ﾂ鄀4ﾂ単ROG）」という式を作成します。

  • リッチクライアントの場合、起動されたプログラムがバッチかモーダルの場合のみ、プログラムは値を返します。これは、［コールプログラム］処理コマンドがサーバ上で実行され、クライアント側で実行されるリッチクライアントプログラムが終了するまで待たないからです。

  • ［選択プログラム］特性を設定した場合、［オプション］メニューの［オブジェクトに移動］を選択することで簡単に指定したプログラムに移動することができます。また、［オプション］メニューの［オブジェクトから戻る］を選択することで［選択プログラム］特性に戻ることもできます。

関連トピック：

コール処理コマンド

コール特性


処理コマンド コール サブタスク

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール > サブタスク

コールサブタスク

サブタスクは、サブルーチンとして実行されるプログラムと似ています。プログラムとサブタスクの違いは以下の通りです。

  • サブタスクは、上位タスクで定義されたデータ項目を直接参照することができます。プログラムは、パラメータとして渡された場合に限り共有することができます。

  • サブタスクは、親タスクに付属しており、他のプログラムから呼び出すことはできません。プログラムは、再使用可能です。

  • サブタスクは［戻り値］を指定できません。

用途

［コールサブタスク］処理コマンドは、以下のように利用します。

  • サブルーチンの呼び出しに利用できます。

  • 一対多のリレーションの処理が可能です。

  • 選択または参照用のデータ一覧の表示に利用できます。

  • エンドユーザに確認や入力を促す様々なウィンドウを表示できます。

注意：

［選択プログラム］特性を設定した場合、［オプション］メニューの［オブジェクトに移動］を選択することで簡単に指定したプログラムに移動することができます。また、［オプション］メニューの［オブジェクトから戻る］を選択することで、［選択プログラム］特性に戻ることもできます。

特性

［コールサブタスク］処理コマンドには、以下の特性があります。

タスクID

パラメータ

フォーム

ロック

同期

条件

関連トピック：

コール処理コマンド

コール特性


処理コマンド コール 式

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール > 式

コール式

プロジェクト内に定義されているMagicプログラムを式で指定することで、このプログラムを呼び出すことができます。これによって実行時に起動するプログラムを動的に指定できます。

コールプログラムとの違いは、呼び出すプログラムの指定方法だけです。

  • コールプログラム …… ［プログラム一覧］からプログラムIDを選択します。

  • コール式 …… ［式］エディタに定義されているプログラムIDが返る式を指定します。

関連インターフェース：この処理コマンドは、オフラインタスクではサポートされません。この処理コマンドからオフラインプログラムを呼び出すことはできません。

用途

［コール式］処理コマンドは、以下のように利用します。

  • サブルーチンの呼び出しに利用できます。

  • １対多のリレーションの処理が可能です。

  • 選択または参照用のデータ一覧の表示に利用できます。

  • エンドユーザに確認や入力を促す様々なウィンドウを表示できます。

特性

［コール式］処理コマンドには、以下の特性があります。

プログラムID

パラメータ

戻り値

フォーム

ロック

同期

コンテキストID

条件

関連トピック：

コール処理コマンド

コール特性

プログラム番号を指定して動的にプログラムを呼び出すには


処理コマンド コール 公開プログラム

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール > 公開名

コール公開名

実行時にアプリケーションによって認識されたコンポーネントを呼び出します。以下のような場合に利用します。

  • まだ作成されていなかったり、手元にまだ存在しないMagicアプリケーションをコンポーネントとしたい場合

  • 動的に起動プログラムを指定したい場合

［公開プログラム名］や［キャビネットファイル名］を指定することで、公開プログラムを呼び出すことができます。

関連インターフェース：この処理コマンドは、オフラインタスクではサポートされません。この処理コマンドからオフラインプログラムを呼び出すことはできません。

特性

［コール公開名］処理コマンドには、以下の特性があります。

公開プログラム名

キャビネットファイル名

パラメータ

戻り値

フォーム

ロック

同期

コンテキストID

条件

関連トピック：

ローカルの公開プログラムの呼出

実行時の動作

公開名でプログラムを呼び出すには

コンポーネントとして定義されない別のアプリケーション内のプログラムを呼び出すには


処理コマンド コール 公開プログラム ローカル

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール > 公開名 > ローカルの公開プログラムの呼出

ローカルの公開プログラムの呼出

公開プログラム名またはキャビネットファイル名が定義されていない場合、公開名は現在のプロジェクトの公開名とロードされたコンポーネントとして扱われます。

公開名だけで処理コマンドを実行すると、Magic xpaはホストプロジェクトと、ロードされたコンポーネント（事前に定義されたコンポーネントや［コール公開名］処理コマンドによって前回呼び出されたプロジェクト)内のプログラムを検索します。

最初に検索されたプログラムが実行されます。

プログラムが見つからない場合は、処理は失敗し、フローが継続されます。アクティブモニターには、ロジックユニットの例外処理として表示されます。


処理コマンド コール 公開プログラム 実行時の動作

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール > 公開名 > 実行時の動作

実行時の動作

［公開プログラム名］や［キャビネットファイル名］が正しく指定されている場合、以下のように動作します。

  1. アプリケーションがロードされます。

  2. メインプログラムの ［タスク前］が実行されます。

  3. 指定された公開プログラム名に対応するプログラムが実行され、指定されたパラメータがプログラムに渡されます。

  4. 呼ばれたプログラムが終了するとコマンド処理は完了し、パラメータや戻り値として指定された項目が更新されます。

  5. メインプログラムの［タスク後］が実行されます。


処理コマンド コール リモート

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール > リモート

コールリモート

［コールリモート］処理コマンドは、Magicプログラムからリモートサービスを呼び出すことができます。処理コマンドから返るステータスコードには、MRBに送信した際のリクエストIDや、エラーが発生した場合のエラーメッセージがあります。

リモートサービスにパラメータを渡すことができ、またパラメータを戻り値として使用することもできます。

［コールリモート］処理コマンドは、同期モードまたは非同期モードで実行することができます。

特殊な事例としてリモートサービスが起動元と同じシステム上で実行している場合があります。このような場合、同一システム内のMagicプロジェクト間で処理が行われることになります。

関連インターフェース：この処理コマンドは、オフラインタスクではサポートされません。この処理コマンドからオフラインプログラムを呼び出すことはできません。

カーソルを「リモート」と表示されているカラムの右隣に移動し、ズームすると［コールリモート］ダイアログが表示されます。このダイアログには、以下のカラムがあります。

カラム | 内容
サービス | ［サービス］テーブルに定義されているサービス名を指定します。ここからズームして［サービス一覧］から選択できます。
プログラム名 | ［コールリモート］処理コマンドで起動するプログラムの公開名を指定します。動的に指定する場合は式で指定します。
プログラム名(式） | ここから［式］エディタにズームすることができます。プログラムの実行時にプログラム番号として評価される式を定義してください。

実行時の動作

実行時、［コールリモート］処理コマンドが検出されると、実行エンジンによって有効なサーバが検索されます。その後、リモートコマンドがMagic xpaのリクエスタに渡されます。リモートコマンドの［ウェイト］特性の値が「No」の場合、クライアントの待機は行われません。［ウェイト］特性の値が「Yes」の場合、クライアントはいったん待機状態に入り、そのコマンドによる処理が完了すると（または、タイムアウトに達すると）、通常の動作に戻ります。その後、リモートコマンドが完了すると、リモートコマンドにより送られた項目が再計算され、後続のプログラムフローが再開されます。

特性

［コールリモート］処理コマンドには、以下の特性があります。

詳細 | 拡張
サービス プログラム名 パラメータ 戻り値 ロック ウェイト 条件 | 結果ファイル 戻り値コード エラーコード リクエストID 優先順位

関連トピック：

コール処理コマンド

コール特性

コンポーネントとして定義されない別のアプリケーション内のプログラムを呼び出すには


処理コマンド コール 特性

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール > コール特性

コール特性

Alt+Enterを押下するかマウスで右クリックして、コンテキストメニューから［特性］を選択すことで［特性］シートにアクセスすることができます。

［コール］処理コマンドには、以下の特性があります。

パラメータ

キャビネットファイル名

条件

出力先フレーム

出力先

フロー方向

フローモード

フォーカスを保持

フォーム

ロック

リクエストID

優先順位

公開プログラム名

プログラム名

プログラム/タスクID 戻り値コード

エラーコード

戻り値

結果ファイル

コンテキストID

サービス

同期

ウェイト


処理コマンド コール 特性 パラメータ

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール > コール特性 > パラメータ

パラメータ

Magic xpaは、パラメータを渡すために以下の2つのテーブルを使用します。

  • 一方の［パラメータ］テーブルは、呼び出し元のタスクのパラメータのみ表示します。ここには、渡したいパラメータとしてデータ項目や式を定義します。

  • もう一方の［パラメータ］テーブルは、呼び出し先のプログラムで定義されているパラメータ項目の一覧が表示されます。

ここからズームして［パラメータ］テーブルを表示させ、パラメータを定義します。

関連トピック：

パラメータの受け渡し


処理コマンド コール 特性 キャビネットファイル名

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール > コール特性 > キャビネットファイル名

キャビネットファイル名

呼び出したい公開プログラムが定義されているプロジェクトのキャビネットファイル名（*.ECF）を式で指定します。データベーステーブルの指定は必要ありません。


処理コマンド コール 特性 条件

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール > コール特性 > 条件

条件

[条件]特性には、処理コマンドを実行する論理条件を指定します。

  • Yes …… 条件が常に「True」であることを示しています。

  • No …… 条件が常に「False」であることを示しています。処理コマンドは実行されません。

  • 式番号 …… 処理コマンドの実行条件を動的に制御する場合に指定します。ここから[式]エディタにズームして実行条件の論理式を選択してください。式がTrueと評価された場合、［フロー］特性にもとづいて実行されます。

デフォルト:Yes


処理コマンド コール 特性 出力フレーム

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール > コール特性 > 出力先フレーム

出力先フレーム

この特性は、ブラウザクライアントプログラムで使用されます。特定のフレームセットを使用してタスクをオープンする場合に使用されます。該当するフレームが存在しない場合は、このフレーム名を持つ新規ウィンドウが開きます。

注意

ブラウザクライアント機能は、利用できません。


処理コマンド コール 特性 出力先

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール > コール特性 > 出力先

出力先

この特性は、呼び出されたプログラム（またはサブタスク）が、現在動作しているタスクの［サブフォーム］コントロールで開くか、独自のウィンドウで開くかを指定します。

SDIアプリケーションを開発する際、呼び出された各プログラムは独自のウィンドウを開きます。異なるプログラムを同じウィンドウで開く必要があるような場合にこの特性を使用します。例えば以下のようなケースが考えられます。

  • 現在実行中のプログラムを置き換えるために、他のプログラムやタスクを呼び出すウィザードのようなアプリケーション

  • 現在動作しているプログラムを閉じ、同じウィンドウに別のプログラムを実行させるようにメニューから（MDIのように）プログラムを実行する場合

この特性は、タスクフォーム上の決められた位置にプログラムを開く簡単な方法を提供します。

この特性は、オンラインとリッチクライアントタスクで有効です。

  • リッチクライアントでは、実行時のツリーで出力先を探します。

  • オンラインでは、出力先がサブフォームの場合、特性は現在のタスクの子となるサブフォームのみを探します。

  • オンラインでは、出力先がフレームの場合、実行ツリーをもとに出力先を探します。この機能によって、分割フォームとして定義されたプログラムを別のプログラムに定義されたフレームに表示させる下位互換機能が提供されます。（バージョン 2.5）。この動作の例外は、以下の下位互換性の説明に記述しています。

この特性には、コントロール名を指定します。ここからズームしてリストから選択するか、直接入力します。リストには、現在または上位のタスクの［サブフォーム］コントロールが表示されます。直接値を入力することもできます。

フォーム上の［サブフォーム］コントロールのコントロール名が変更（または削除）されても、この特性の設定値は変更されません。

注意：

  • メインプログラムではサポートされません。

  • Unicodeはサポートされません。

  • ［サブフォーム］コントロールに定義されたプログラムが実行する前に、現在動作しているプログラムが終了します。エラーやプログラムが終了できない問題が発生した場合、この問題を解決してから再度呼び出す必要があります。

  • ［出力先］特性が定義された［コール］処理コマンドが、（［タスク前］から起動された場合のように）タスクのフォームが読み込まれる前に実行された場合、フォーム表示が一回行われるだけで終わります。

  • ［出力先］特性が定義された［コール］処理コマンドが、（［タスク後］から起動された場合のように）タスクが終了された後に実行された場合、この特性は無視され、起動されたプログラム（またはタスク）は別のウィンドウを開きます。起動されたプログラムが非モーダルのウィンドウタイプの場合、即終了します。

  • 実行時、指定された出力先でタスクをオープンできなかった場合、タスクは別のウィンドウを開きます。

出力先のサブフォームで実行するタスクを呼び出すとき、そのサブフォームはこれらの内の一つによって定義することができます。

  • 呼び出すタスク …… 出力先のサブフォームは、呼び出す側のタスク内に定義されています。

  • 親タスク …… 出力先のサブフォームは、呼び出す側のタスクの上位タスクになります。呼び出すタスクがサブフォームの場合のみサポートされます。

複数のサブフォームが同じ名前で定義されている場合、Magic xpaは現在のタスクから上位タスク方向に検索を行います（現在のタスク、親タスク、その他)。検索は、現在のタスク（またはその上位タスク)が実行しているサブフォームは含まれません。サブフォームが見つからない場合、［出力先］特性が指定されていないものとして、プログラムは呼び出されます。

下位互換性

バージョン：2.5

オンラインタスクの場合、（Magic uniPaasで）分割フォームを使用している場合の以下のシナリオがサポートされました。

  • フォーム分割が定義されたタスク内で、親タスクで定義されたイベントを発行します。親タスクの［イベント］ロジックユニットでは、分割子ウィンドウが指定された（別の）プログラムを呼び出すと、呼び出されたプログラムは子タスクに定義された分割フォームに表示されます。

  • バッチプログラムがフォーム分割が定義された子タスクと（別の）オンラインプログラムを呼び出すように設定されています。オンラインプログラムは分割子ウィンドウが定義されています。この場合、呼び出されたプログラムは、子タスクの指定された分割フォームに表示されます。

この動作は、フレームを使用した場合も有効になりますが、これらのタスクはファントムタスクとしてオープンします。これは、以下の制限があることを意味しています。

  • フレーム上でクリックすると、フレームプログラムを呼び出すロジックユニット内のロジックが実行されます。

  • エンドユーザはフレームにタブ移動で入ることができません。

  • ［自動再表示］と［非表示で再表示］の各特性はサポートされません。

  • フレームで実行しているプログラムに渡された引数が変更されると、再計算が現在のタスクのコントロール上でのみ再計算し、サブタスク／フレームタスクに対する呼び出しタスクは親タスクににるため、ビューは自動的に再表示されません。

  • ［フォーカスを保持］特性と［サブフォーム再表示］イベントは、サポートされません。

転送先のプログラムを呼び出すロジックユニットは、メインプログラムで定義できないことに注意してください。

関連トピック：

フォーカスを保持

サブフォームの表示内容を動的に置き換えるには


処理コマンド コール 特性 フォーカスを保持

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール > コール特性 > フォーカスを保持

フォーカスを保持

［コール］処理コマンドを実行した後に、フォーカスを現在のコントロール上に残すか､起動されたプログラム/タスクの最初のコントロールに移動するかを指定します。

タスクやレコード、またはコントロール以外のロジックユニットに定義された［コール］処理コマンドで､［出力先］特性にサブフォームやフレームが設定されている場合にこの特性は有効になります。

この特性は、メインプログラムでは無効です。

関連トピック：

新しいタスクを呼び出すときにフォーカスを現在のタスクに保持するには


処理コマンド コール 特性 フォーム

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール > コール特性 > フォーム

フォーム

［フォーム］特性は、起動するプログラムを表示するフォームIDをオプションで指定します。

デフォルト設定「0」の場合は、起動元タスクのメインフォームに起動プログラムのフォームが表示されます。ここにフォームの番号を指定すると、起動されたプログラムは対応するフォームを使用して表示されます。

ここからズームして、［フォーム一覧］からフォームを選択できます。

指定できるのは、クラスが「0」のフォームのみです。

［コンテキストID］特性を使用して起動された場合、この特性は無視されます。

注意：

この特性は、リッチクライアントタスクではサポートされません。


処理コマンド コール 特性 ロック

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール > コール特性 > ロック

ロック

タスクまたはプログラムが呼び出されると、現在のレコードの処理が一時中断され、その後、そのタスクまたはプログラムが完了すると処理が再開されます。その間、呼び出されたタスクまたはプログラムからは、現在のレコードの項目全てに対してアクセスが可能になります。［コールプログラム］の場合、項目へのアクセスはパラメータを介して行われます。一方、［コールタスク］の場合、直接アクセスされます。現在のレコードの項目に対しては、どちらの場合も更新を行うことができます。

その場合、更新時のロックの状態が問題になります。エンドユーザによるレコードの変更では、ロック方式として「入力時」が設定されている時には（ロック方式は、［タスク特性］ダイアログで設定できます）、レコードの変更が始まると同時にロックがかけられるか、または項目の変更が完了した時にロックが設定されます。

同様に、タスクやプログラムを使用して現在のレコードを変更する場合も、現在のレコードをロックしておく事が重要です。これは、子タスクやプログラムの処理が完了するまでに時間がかかる場合があるからです。このため、タスクやプログラムの実行中は、エンドユーザに対して現在のレコードへのアクセスや変更ができないようにしておくことが必要になります。アクセスが可能な場合、エンドユーザによってレコードが操作されているため、タスクやプログラムの終了時に変更をディスクへ書き込めないということも起こります。

以上の事情から、呼び出したタスクやプログラムで現在のレコードを変更する時には、あらかじめレコードにロックを設定しておきます。ただし、タスクやプログラムでレコードの更新を行わない時には、ロックは必要ありません。これで、エンドユーザによるレコードの変更が可能になります。

タスクやプログラムでレコードの更新を行う時には、このパラメータを使用してレコードにロックをかけるかどうかを指定できます。指定できる値は、以下の通りです。

  • No …… この値を指定しておくと、タスクやプログラムの実行時、現在のレコードにはロックはかかりません。この場合、タスクやプログラムでは、呼び出し側のタスクのレコードの更新は行わないようにします。ロックが設定されていない状態でレコードの更新を行うと、タスクやプログラムの終了時にエンドユーザがレコードを変更していた場合、更新したレコードをディスクに書き込むことができず、そのため、更新した結果が失われることがあります。

  • Yes …… この値にしておくと、呼び出されたタスクやプログラムが実行されると同時に、現在のレコードにロックがかけられます。したがって、呼び出されたタスクやプログラムでカレントのレコードを更新する時には、「Yes」を指定します。また、タスクやプログラムの処理で間接的に現在のレコードが更新される時も、「Yes」にしておきます。

  • 式番号 …… ［ロック］特性に式を指定することもできます。ズームすると［式］エディタが表示されますので、ここで式を定義します。

この特性は、メインプログラムでは無効です。

なお、［ロック］特性を「Yes」にしていても、次の場合には現在のデータビューのレコードにロックはかかりません。

  • ［タスク特性］の［ロック方式］が、「B=更新時」または「N=なし」の時。この場合、この設定が［ロック］特性の設定より優先されます。

  • 呼び出されたプログラムにパラメータが渡されない時。または、パラメータが全て、式で渡される（値渡し）場合。


処理コマンド コール 特性 メッセージID

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール > コール特性 > リクエストID

リクエストID

この特性はオプションで、リモートコール処理コマンドでのみ有効です。ここには、リモートコール処理によって受け取るリクエストIDを格納するデータ項目が指定できます。

リクエストIDは、呼び出した非同期リクエストを監視する場合に必要になります。

設定する項目を選択するには、この特性からズームして項目一覧を開きます。


処理コマンド コール 特性 優先順位

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール > コール特性 > 優先順位

優先順位

この特性から［式］エディタにズームし、［コールリモート］処理コマンドが実行する優先順位を式で指定します。

優先順位は、0～16の数値で指定します。「0」が最も高くなります。


処理コマンド コール 公開プログラム 公開プログラム名

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール > コール特性 > 公開プログラム名

公開プログラム名

［コール公開名］処理コマンドで起動するプログラムの公開名を指定します。

ローカルアプリケーション内のプログラムを呼び出す場合は、［公開プログラム名］のみを式で指定します。Magic xpaは、現在のプロジェクトやロードされたコンポーネントや内のプログラムを検索します。最初に検索されたプログラムが実行されます。プログラムが見つからない場合は、処理は失敗します。

動的に指定する場合は式で指定します。


処理コマンド コール 特性 プログラム名

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール > コール特性 > プログラム名

プログラム名

［コールリモート］処理コマンドで起動するプログラムの公開名を指定します。動的に指定する場合は式で指定します。


処理コマンド コール 特性 エラー情報

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール > コール特性 > 戻り値コード

戻り値コード

この特性はオプションで、［コールリモート］処理コマンドで有効です。処理が失敗したかどうかを示すコードが返ります。

ここからズームすると[項目一覧]が表示されますので、戻り値コードを格納する項目を指定します。ここに設定する項目は、数値型でなければなりません。

この項目には、以下の値が返ります。

  • 0 …… 正常

  • 1 …… 警告

  • 2 …… エラー

注意：

MRBでエラーが発生した場合、MRBのエラー番号が含まれる場合があります。


処理コマンド コール 特性 エラーコード

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール > コール特性 > エラーコード

エラーコード

この特性はオプションです。

ここからズームすると［項目一覧］が表示されますので、エラーコードを格納する項目を指定します。この項目は、数値型でなければなりません。0 が返された場合は正常です。負数の値が戻された場合は、リモートコールを実施しようとした時にエラーがあったことを示しています。コードの意味は、「パーティショニングエラー」を参照してください。


処理コマンド コール 特性 結果ファイル

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール > コール特性 > 結果ファイル

結果ファイル

［結果ファイル］特性から［ファイルを開く］ダイアログにズームしファイル名を指定します。全ての結果データは、指定されたファイルに書き込まれます。


処理コマンド コール 特性 コンテキストID

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール > コール特性 > コンテキストID

コンテキストID

［コンテキストID］特性は、［コールプログラム］や［コール式］、［コール公開プログラム］で有効です。ここには、新しいコンテキストの名前が返ります。この特性はオプションです。

この特性には、文字型のデータ項目を指定します。シンボル名を直接入力するか、［項目一覧］にズームして選択することで設定できます。メインプログラムを含む全ての上位タスクの項目を指定できます。

指定した項目が文字型かUnicode型でない場合、設定がキャンセルされます。

［コンテキストID］特性を使用すると、［コール］処理コマンドの［フォーム］特性は無視されます。

この特性は一般的に、２つのプログラムが互いに参照し合えるようにしたい場合に使用します。

例えば、プログラムAがプログラムBを呼び出し、［コンテキストID］特性に文字型項目を指定すると、プログラムBのコンテキストIDがプログラムAに返ります。「コンテンツ間のイベント送信」を参照してください。

［コンテキストID］特性に設定されるIDは、各コンテキストごとにユニークで、動的です。従って、同じプログラムを何回も起動した場合に、各プログラムのコンテキストを区別したい時に、この特性が使用できます。このような場合、コンテキストIDはコンテキスト名より効果的です。（プログラムが１回実行されるだけの場合は、コンテキスト名の方が効果的です。）

注意：

CtxSetName関数が呼び出されたプログラム（またはメインプログラム）の［タスク前］で使用された場合、この特性に値は返りません。これは、コンテキストがロードされた時点でコンテキストIDが設定されますが、コンテキストがすでにロードされる前に［タスク前］が有効になるからです。

CtxSetNameを使用してコンテキスト名を変更した場合、コンテキスト名はユニークではないかもしれません。この場合、コンテキスト間での対話を行う場合に問題が発生する可能性があります。


処理コマンド コール 特性 結果

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール > コール特性 > 戻り値

戻り値

この特性はオプションです。ここには、コール先のタスク／プログラムの［戻り値］特性の値が返ります。［戻り値］特性に定義した値と同じデータ型の変数項目を指定します。

データを返すだけのパラメータと同じ働きをしますが、処理コマンドの実行結果を判断する場合等に利用できます。

参考：

［ウェイト］特性が「No」に設定された［コールリモート］処理コマンドの場合、戻り値は正しく取得できません。


処理コマンド コール 特性 プログラム/タスクID

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール > コール特性 > プログラム/タスクID

プログラム/タスクID

この特性には、コールのタイプによって指定内容が異なります。

  • コールプログラム／タスク …… 呼び出すタスクやプログラムの番号を指定します。指定するとその名前が表示されます。

  • コール式 …… 呼び出すプログラムを表す式の番号を指定します。指定すると式の内容が表示されます。

注意：

［コールプログラム］処理コマンドで使用する場合、［オプション］メニューの［オブジェクトに移動］を選択することで簡単に指定したプログラムに移動することができます。

また、［オプション］メニューの［オブジェクトから戻る］を選択することで、［選択プログラム］特性に戻ることもできます。


処理コマンド コール 特性 サービス

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール > コール特性 > サービス

サービス

［サービス］テーブルに定義されているサービス名を指定します。ここからズームして［サービス一覧］から選択できます。


処理コマンド コール 特性 同期

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール > コール特性 > 同期

同期

この特性は、DMLステートメントの実行順序を制御することができます。

通常は、（Insertや、Update、Deleteなどの）DMLステートメントは、［レコード後］で送信されます。

これは、例えば、親タスクが子タスクを呼び出した場合、子タスクがその処理を終了すると、親タスクに戻ることで処理が完了することを意味しています。子タスクが親タスクの前に終了したため、親タスクで行った変更が、子タスクを呼び出す前に実行されても、Magic xpaは親タスクの［レコード後］の前に子タスクの［レコード後］の処理が実行されます。

［同期］特性を以下のように使用することで、この動作を変更することができます。

  • Yes …… 親タスクのDMLステートメントが送信されてから、子タスクのDMLステートメントが送信されます。

  • No …… Magic xpaの処理フローに従って、DML ステートメントの実行を行います。

  • 式番号 …… 「Yes」か「No」に評価される論理式を定義します。

この特性は、［レコード］、［コントロール］、および［イベント］の各レベルのロジックユニットで定義された、［コールタスク］、［コールプログラム］、［コール式］、および［コール公開名］の処理コマンドで有効です。また［タスク特性］の［トランザクションモード］が「遅延」、「ネスト遅延」、および「親と同一」の場合でのみ有効です。

制限：

メインプログラムでは無効です。

関連トピック：

データベース制約がある場合に、1 対多の関係を実現するには


処理コマンド コール 特性 ウェイト

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > コール > コール特性 > ウェイト

ウェイト

［コールリモート］処理コマンドが実行されると、Magicエンジンは有効なサーバをチェックし、その後コマンドをリクエスタに送ります。その際、［ウェイト］特性の設定内容によって以下のように動作します。

  • Yes …… リクエスト処理が完了するまでウェイト状態に入り、リクエスト処理が完了した時点でプログラムが継続されます。

  • No …… リクエスト処理完了のチェックは行われずに処理が継続されます。

  • 式 …… 定義式で動的に変更できます。


処理コマンド 外部コール

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール

外部コール

［外部コール］処理コマンドは、（Webサービス、COMなどの）Magicアプリケーション以外のプログラムにアクセスする場合に使用されます。この処理コマンドには、以下のオプションがあります。

  • C=COM …… タスクに定義されたCOMオブジェクトを操作します。

  • O=OSコマンド …… スプレッドシートやワードプロセッサなどの外部アプリケーションを実行します。

  • U=UDP …… 第３世代言語によって作成されたプログラム（.dll）を実行して、値を受け取ります。

  • W=Webサービス …… SOAPプロトコルを使用してWebサービスを呼び出します。

  • L=Webサービスライト …… Webサービスを直接呼び出します（Magic V9Plusと同じ方式です）。

  • .NET …… タスクに定義された.NETオブジェクトを処理します。

Alt+Enterを押下することで、［外部コール特性］にアクセスできます。

注意：

このヘルプでは、［外部コール］処理コマンドの表記を［コール］処理コマンドと同じように表記しています。


処理コマンド 外部コール COM

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > COM

COM オブジェクト

ここには、COMオブジェクトが定義されたActiveX型／OLE型の変数項目を設定します。設定されたCOMオブジェクトのメソッドを呼び出したり、COMオブジェクトの特性を設定したり、参照したりすることができるようになります。

「COM」オプションを選択後、Tabキーで次のカラムに移動してズームすると［COMオブジェクト］ダイアログが表示されます。

注意：

リッチクライアントタスクではサポートされません。

特性

［コールCOM］処理コマンドには、以下の特性があります。

オブジェクト

オプション

要素

パラメータ

値

戻り値

エラーコード

条件

関連トピック：

外部コール特性


処理コマンド 外部コール COM ダイアログ

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > COM > ［COMオブジェクト］ダイアログ

［COMオブジェクトの起動］ダイアログ

［COMオブジェクトの起動］ダイアログには、以下の設定欄があります。［外部コール］特性でも設定できます。

パラメータ

内容

オブジェクト

アクセスしたいオブジェクトを定義します。ズームすると、［項目一覧］が表示されます。選択する項目はOLE かActiveX項目でなければなりません。

オプション

コンボボックスより実行したい処理のタイプを選択します。利用可能なオプションは、以下の通りです。

  • M=メソッドの呼出 …… オブジェクト内のサブルーチンの1つを実行させることができます。

  • G=プロパティの取得 …… オブジェクトの現在の設定内容を返します。

  • S=プロパティの設定 …… オブジェクトの現在の設定内容を変更することができます。

これらの間の境界はあいまいな部分があります。オブジェクトによっては、プロパティを設定するメソッドがあり、メソッドを設定することは、メソッドを呼び出すことと同じような場合があるからです。しかし、通常は、選択項目を確認することで、何を選択する必要があるかは理解できると思います。

メソッド／プロパティ

ここは選択されたオプションによって変わります。

  • 「M=メソッドの呼出」の場合 …… 呼び出したいメソッドを選択できます。ここからズームすると、選択したオブジェクトでサポートされているメソッドが表示されます。
    COM オブジェクトによっては、サブオブジェクトのコレクションを持つものがあります。コレクションは通常IDフィールドにより識別されますが、ID が非連続的な場合には、ID を全て知っていない限りコレクションを全てアクセスすることができませんでした。このようなコレクションサブオブジェクトを扱う場合は、「MGItemSequential」という名前の（xpaが追加した）メソッドを指定してください。このメソッドにより、非連続なコレクションであっても、0 より始まる連続なインデックス番号を指定してアクセスできるようになります。

  • 「G=プロパティの取得」及び「S=プロパティの設定」の場合 …… 処理したいプロパティを選択できます。ここからズームすると選択したオブジェクトでサポートされているプロパティが表示されます。

参考：

［メソッド］特性や［プロパティ］特性からズームすることで表示される［オブジェクト一覧］は、オブジェクトから直接情報を取得しています。このため、［コメント］欄は、英語表記になる場合があります。

また、［ヘルプ］ボタンをクリックした場合、オブジェクト内に定義されているヘルプファイルを呼び出そうとします。このヘルプイファイルは、Magic Magic製品では提供されないため、エラーになる場合があります。

関連トピック：

コレクションのアクセス

COMオブジェクトのメソッドを呼び出すには

COMオブジェクトのプロパティを設定/取得するには


処理コマンド 外部コール OSコマンド

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > OSコマンド

OSコマンド

この処理コマンドは、OS上で外部プログラムやバッチファイル、コマンドファイルを実行したい時に使用します。Magic xpaの動作中、このコマンドが検出されると、現在のタスクの実行が一時中断されます。［ウェイト］特性が「Yes」の場合、外部プログラムやバッチファイル、コマンドファイルが終了すると、［OS コマンド］の次のコマンドから現在のタスクが再開されます。

特性

［コールOSコマンド］処理コマンドには、以下の特性があります。

OSコマンド

結果

ウェイト

表示

条件

実行

モバイル仕様

iOS／Android上では、コマンドのURLを指定することでデバイス機能を実行することができます。例えば電話を呼び出したり、SMSを送信したり、Webブラウザーを開くことができます。その際、［実行］特性は、「クライアント」に定義する必要があります。

例：

  • tel: 1-408-555-5555

  • sms: 1-408-555-1212

  • mailto:support@magicsoftware.com

  • mailto:? to=support@magicsoftware.com&subject=this is a test&body= test mail

  • http://magicsoftware.com

『モバイルRIA開発者ガイド』も参照してください。

注意

メールを送信する際、題名と本文で利用できない文字がいくつかあります。iOSの場合、アンパサンド（＆)は%26に置き換える必要があります。また、Androidの場合は、以下の文字を削除する必要があります。

#,%,&, :, =

サードパーティのアプリケーションを呼び出すための表記を使用することもできます。これはURLフォーマットでアクセスすることができます。例えば、以下のように使用することができます。

//?q=New York' は、Waze GPSアプリを開き、ニューヨークを表示します。

'geo: 59.915494,30.409456’は、ナビゲーションアプリ（GoogleマップやWazeなど）を開き、経度：59.915494、緯度：30.409456を表示します。

iOS

AirPrintプロトコルを使用してPDFを印刷することができます。OSコマンドで、"Print:filename"を実行することで印刷されます。

fifilenameは、以下のどちらかで指定してください。

  • ローカルファイルのパス（ServerFileToClient関数で取得した値も使用できます）。

  • Webサーバ上のファイルのURL

サポートバージョン：

2.3

Android

サードパーティのPDFビューアアプリケーションを使用してPDFを表示させることができます。

［コールOS］処理コマンドを使用して "pdf:ファイル名" を実行させること表示されます。”ファイル名”は、デバイスの公開フォルダ（例：/SDCARDフォルダ）内に保存されているPDFのファイル名とパス名を指定します。

たとえば、以下のコマンドは、サーバ上のC:\MagicフォルダからReleaseNotes.pdfファイルを デバイスの/SDCARDCフォルダにコピーして表示します。

  1. ClientFileCopy(ServerFileToClient('C:\Magic\ReleaseNotes.pdf'),'/sdcard/tmpfile.pdf') を実行

  2. ［コールOSコマンド］処理コマンドで、 'pdf:/sdcard/tmpfile.pdf' を実行(［実行元］特性は、「クライアント」)

例

［コールOSコマンド］処理コマンドで md(ディレクトリ作成)のDOSコマンドを実行させる場合は以下のように指定します。

'cmd.exe /c md d: \a2'

  • cmd.exe …… cmdを実行します。

  • /c…… OSのコマンドを識別するために、cドライブのcmdを実行します。

  • md…… 呼び出したいコマンド。

  • d:\a2 …… コマンドが必要とする引数（この例では、パスとディレクトリ名）

関連トピック：

［外部コール］処理コマンド

外部コール特性


処理コマンド 外部コール UDP

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > UDP

UDP

［コールUDP］処理コマンドは、第３世代言語（C など）によるプログラムを実行したい時に使用します。必要であれば、パラメータを渡すこともできます。このコマンドでプログラムを呼び出す場合、C の呼び出し規則が使用されます。また、呼び出しはメモリ上で実行されます。したがって、UDPはMagic xpaの内部ルーチンとして扱われます。この場合の呼び出しには、マシンのコールまたはジャンプ命令のうち一番簡単なものが使用されます。

用途

  • このコマンドを使用して、Magic xpaの機能を拡張できます。例えば、ユーザが作成したルーチンを呼び出して、Magic xpaではサポートされていないタスクや機能の実現が可能です。

  • Magic xpa以外の環境で作成されたコードをMagic xpa上で利用できます。

  • 外部プロシージャを使用して、特殊な計算を高速で処理できます。

参考：

  • ［コールUDP］を使用する場合、最も低いレベルで通信を行います。これは、データのフォーマット化や大文字小文字の扱いに注意して行う必要があることを意味しています。

  • NULLをUDPに送るもっともよい方法は、BufSetAlpha()関数を使用することです。

  • 式を選択すると、［名前］カラムには式の最初一部が表示されます。例えば、Windowsの SetForegroundWindow関数を呼び出すように指定した場合、@user32.SetForegroundWindow が表示されます。

  • パラメータとして文字データが式で直接指定された場合、［動作環境］の［外部コードページ］で指定されたコードページに基づいて値がエンコードされます。このようなプログラムを使用する場合は、CodePage()関数でコードページを「932」に設定するか、文字型変数項目を指定するか、UnicodeToANSI()関数で変換する必要があります。

特性

［コールUDP］処理コマンドには、以下の特性があります。

UDP

パラメータ（UDPを呼び出す場合の例）

規約

条件

関連トピック：

［外部コール］処理コマンド

外部コール特性

DLL関数を呼び出すには


処理コマンド 外部コール UDP パラメータ

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > UDP > UDPへのパラメータの例

UDPへのパラメータの例

例えば、Windowsの SetForegroundWindow関数（@user32.SetForegroundWindow）を呼び出すように指定した場合、パラメータは以下のように指定します。

この関数は、1つのパラメータ（ウィンドウハンドル）を受け取ります。

以下の3つのパラメータを定義する必要があります。

  • 44 …… 以下のパラメータの書式を表す文字列。最後の文字は、関数の戻り値の型を表しています。パラメータのタイプ一覧は、ここをクリックすると表示されます。この例では、関数のパラメータと戻り値の両方がLongタイプのため、‘44’が使用されます。

  • WINHWIN …… 関数のパラメータ。この例では、Magic xpaのウィンドウハンドラを送るため、この値を取得するためにWinHWND(0)を使用します。

  • RETUDL …… 関数の戻り値（が格納される項目）


処理コマンド 外部コール UDP パラメータ タイプ

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > UDP > パラメータタイプ

パラメータタイプ

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


処理コマンド 外部コール Webサービス

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > Webサービス

Webサービス

［コールWebサービス］処理コマンドは、Systinet Server for Java（SSJ）という外部製品を利用してWeb サービスを呼び出します。

［外部コール］処理コマンドで「W=Webサービス」を選択した後、［サービス］テーブルで「SOAP」が選択されているサービスを選択します。「W=Webサービス」が選択された右側のカラムでズームすると［Webサービス］ダイアログが表示されます。ここで、以下の特性値を設定することができます。

Systinet Server for Java(SSJ)製品は、WSセキュリティを利用できるなど様々な利点を持っています。しかし、あらかじめJDK（実行環境では、JRE）とSSJをクライアント側にインストールしておく必要があります。SSJの機能を利用する必要がなく、不要なインストール処理を行いたくない場合は、［コールWebサービスライト］処理コマンドを使用してください。

注意

  • Magic xpaの配列は［コールWebサービス］処理コマンドの複合タイプに自動的に変換されません。また、Magic xpaがWebサービスプロバイダとして実行している時も、複合タイプとして値を戻しませんせん。

  • Webサービスを呼び出す場合、XMLレスポンス内のコメント行は自動的に削除されます。コメントは、(スキーマで定義されていないため)データ構造の一部ではないので、これは仕様になります。従って、XMLパーザはこれらを無視します。コメント行の使用したい場合は、コメントを定義する代わりに、それを含めた要素を定義することで実現できます。

特性

［コールWebサービス］処理コマンドには、以下の特性があります。

SOAPヘッダ

サービス

処理

パラメータ

戻り値

エラー情報

条件

関連トピック：

Webサービスにアクセスするには


処理コマンド 外部コール Webサービスライト

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > Webサービスライト

Webサービスライト

［コールWebサービスライト］処理コマンドは、（Magic V9Plusと同じように）Webサービスを直接呼び出すことができます。

［コールWebサービス］処理コマンドは、Systinet Server for Java (SSJ)を利用して呼び出します。

SSJを利用する方法は、WS-securityやSOAP1.2などの多くの利点を持っています。しかし、Javaの実行環境やSSJをインストールする必要があります。SSJの機能が不要でインストールを行いたくないような場合、この処理コマンドを使用することができます。

キャッシュファイルは、［動作環境］の［SOAPクライアントモジュールのパス］で定義されたフォルダ内のSOAPLITEフォルダに保存されます。

注意：

Magic xpaの配列は、［コールWebサービス］処理コマンドのComplex Typeに自動的に変換されません。また、Webサービスプロバイダとして実行されている場合も、Complex Typeとして値を返すことができません。

［コールWebサービスライト］処理コマンドを選択すると、［サービス］テーブルに［サーバ］タイプが｢SOAP LITE｣に定義されたサービスが自動的に追加されます。

［Webサービスライト］の右側でダブルクリックするか、F5を押下すると［Webサービス］ダイアログボックスが開きます。ここでは、以下の特性を設定できます。

特性

内容

サービス

SOAPタイプのサーバが定義されたサービスを指定します。［サービス］特性からズームすると［Webサービス］一覧が表示されます。

SOAPアクション

Webサービスプロバイダが提供するWSDLファイルに定義された"soapAction"の値が表示されます。

スタイル

以下のどちらかを指定します。

  • R=RPC …… Magicは、起動するタスクで定義されているパラメータタイプに基づいてパラメータを渡します。開発者は、Webサービスプロバイダで定義されているパラメータに合わせて開発する必要があります。"Remote Process Call"の略です。

  • D=ドキュメント …… MagicはXMLドキュメントとして1つのパラメータを送り、戻り値も XML で受け取ります。開発者は、Webサービスプロバイダが提供するWSDLに記述されているように、容認されたXMLのスキーマに基づいてドキュメントを作成する必要があります。

入力XSD

［スタイル］欄で「D=ドキュメント」と指定された場合に有効です。プロバイダに送信する XMLファイル名が表示されます。

出力XSD

［スタイル］欄で「D=ドキュメント」と指定された場合に有効です。プロバイダから受信する XMLファイル名が表示されます。

処理

［スタイル］欄で「R=RPC」と指定された場合に有効です。WSDLの"operation name"に記述されているメソッド名を表示します。

ネームスペース

［スタイル］欄で「R=RPC」と指定された場合に有効です。WSDLの"namespace"に記述されているユニークな識別名を表示します。

戻り値

Webサービスからの戻り値を格納する項目を定義式に指定します。書式は、プロバイダ側に合わせる必要があります。

完了

論理型の項目を指定してください。ここには、処理が正常に終了したか否かの結果が返ります。

エラー情報

文字型項目を指定してください。Webサービス処理が失敗した場合、エラー情報が文字列で返ります。

［アシスト］ボタンをクリックすると、［WSDLアシスト］ダイアログが表示されます。

注意：

パラメータや戻り値、およびエラー情報には、［内容］特性が「ANSI」か「Unicode」に設定されたBLOBが指定できます。

出力パラメータは、Unicodeとして扱われ、入力パラメータのByrefパラメータ/戻り値は、Unicodeとして保存されます。

特性

Webサービスの特性(ALT+Enter)は、以下の通りです。

条件

サービス

処理

パラメータ

戻り値

エラー情報


処理コマンド 外部コール Webサービスライト WSDLアシスト

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > Webサービスライト > WSDLアシスト

WSDLアシスト

［WSDLアシスト］ダイアログは、WSDLのファイルを指定することで［コールWebサービス］に必要なパラメータの大部分を自動的に設定することができます。

［URL］欄にWSDLファイル名を入力します。F5キーを押下すると［ファイルを開く］ダイアログで選択できます。また、インターネット上にある場合は、そのURLを指定することができます。その際、ユーザIDやパスワードを以下のように指定することができます。

HTTP：//User:Password@［URL］

シークレット名を使用することで以下のように指定することもできます。

HTTP：//%user_secretname%:%pass_secretname%@［URL］

WSDLファイルを指定してTabキーを押下すると使用できる処理がテーブルに表示されます。ここには、以下のカラムがあります。

項目 | 内容
# | Magicが自動的に採番する識別番号です。
処理名 | WSDLファイルに記述されている処理名が表示されます。
スタイル | RPC方式かドキュメント方式かが表示されます。

［履歴］ボタンをクリックすることで、過去に指定したWSDLファイルの一覧が表示されます。

実行させる処理にカーソルを置いた状態で、［選択］ボタンを押すことで［Webサービス］ダイアログボックス戻り、パラメータが入力されます。また、［サービステーブル］にもサービスが追加されます。

使用の際の注意

処理は１つだけしか選択できません。選択されない場合は先頭の処理が読み込まれます。

［Webサービス］ダイアログの設定を変更したり、WSDLアシストで別の処理に変更した場合、上書き確認のメッセージダイアログを表示します。

関連トピック：

WSDLパラメータ


処理コマンド 外部コール Webサービスライト WSDLアシスト パラメータ

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > Webサービスライト > パラメータ

WSDLパラメータ

［パラ］カラムからズームするとWSDLのパラメータテーブルが表示されます。ここには以下の指定カラムを指定します。

カラム

内容

項目

ここからズームして［項目一覧］からパラメータにする項目を指定します。

式

ここからズームしてパラメータとなる［式］を指定できます。

説明

WSDLパラメータの内容が表示されます。

リモート名

リモートサーバを指定できます。

ネームスペース

WSDLのネームスペースIDを指定できます。

XSD タイプ

XMLのデータタイプを指定できます。

（Complexタイプのような）サポートされないXSDタイプの要素は、値がそのままは送られます。そのため正規のXML要素を送信しているかどうかを確認する必要があります。

モード

WSDLパラメータのタイプを指定します。

  • I=入力 …… サーバに渡すだけ

  • N=入出力 …… 双方向

  • O=出力 …… サーバからの戻りのみ

ヘッダ

このチェックボックスを選択すると、SOAPヘッダにパラメータ含めます。SOAPヘッダを送信しない場合は、F3キーでSOPAヘッダに含まれるパラメータを削除してください。

注意

ヘッダを手動で作成された場合、プロバイダによって除外されたように、ヘッダ名と名前空間を割り当てなければなりません。


処理コマンド 外部コール NET

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > .NET

.NET

［外部コール］処理コマンドの.NETオプションを使用して、.NETオブジェクトのメソッドを呼び出したり、.NETオブジェクトのプロパティを設定したり、値を取得したりすることができます。

複数の.NETコードを呼び出す必要がある場合、ユーザ定義関数の中で必要な［コール.NET］処理コマンドを定義する方法が利用できます。

.NETコードで使用したいすべてのアセンブリは、［コンポーネント］リポジトリにあらかじめ登録しておく必要があります。

［.NETコード］ダイアログにアクセスするには、［外部コール］処理コマンドで「.NET」を選択し、Tab移動後にズームします。

［コール.NET］処理コマンドには、以下の特性があります。

条件

.NETコード

パラメータ

戻り値

関連トピック：

簡単な.NETコードを実行するには


処理コマンド 外部コール NET NETコード

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > .NET > .NET コード

.NETコード

［.NETコード］ダイアログボックスには、以下の設定項目があります。

項目

内容

.NET言語

コードを以下のどちらでコンパイルするかを指定します。

  • C#

  • VB.NET

モバイル用コンパイル

ここをチェックすると、Compact Frameworkでコードがコンパイルされます。Compact Frameworkがインストールされていない場合は、このチェックボックスは表示されません。

メソッド名

ここには、関数名として表示されます。名前を変更した場合、［.NETコード］セクション内の名前も変わります。先頭文字は､文字かアンダーバーのどちらかになります。

パラメータ

［パラメータ］テーブルに定義されたパラメータ数が表示されます。

ここからズームすると［パラメータ］テーブルが表示されます。

戻り値のタイプ

メソッドからの戻り値のデータタイプです。この設定を変更した場合､［.NETコード］セクションも変更されます。

Ctrl+スペースを押下するとオートコンプリートが実行され、有効なクラス名が表示されます。

戻り値が返らない場合、'void'を指定することができます。

戻り値

関数の戻り値を格納する項目。

ここからズームして、［項目一覧］にアクセスすることができます。

.NETコード

.NETコードを表示します。この領域でコードを編集することができ、上記の対応する設定を変更することによりメソッド名や戻り値の型を変更することができます。コードや関数を追加することもできます。

必要であれば、Visual Studioにコード全体をコピーしてコンパイルしたりチェックすることもできます。

.NETコードのキーボードショートカットを参照してください。

OKをクリックすると、Magic xpaは.NETのアセンブリを作成せず、.NETコンパイラに.NETコードを渡します。それは.NETフレームワークの一部として提供されます。コンパイラは、指定した.NET言語によって、コードをコンパイルします。コードのコンパイル誤りがある場合、エラーメッセージが表示されます。

コンパイラは、Magic xpaにコンパイルされたコードを返します、次に、Magic xpa Studioはタスクのソースコードの一部としてBase 64でコンパイルされたコードを保存します。実行中は、コンパイルされたコードが実行クライアントに渡されます。

注意：

  • ［コンポーネント］リポジトリで作成されたエイリアスは、利用できません。しかし、ショートカットとして"usingステートメント"を利用することができます。これは、（Systems.Windows.Formsのように）.NETコードで標準的に使用されます。

  • .NETコードのセクションは、純粋な.NET機能を提供します。このセクションでのみ利用できるキーボードのショートカットがいくつかあります。

  • Magic xpaの通常の .NET機能と同じようなオートコンプリート機能を使用することができます。

  • これらが.NETとして知っていないと、Magic関数またはデータ項目を使用することができません。

  • Magicのコードで定義されたオブジェクトを直接参照することはできません。これらのオブジェクトは、パラメータとして渡す必要があります。

  • Magic xpaのテキスト検索機能は、このセクション内のテキストを見つけることもできます。


処理コマンド 外部コール 特性 NETコード ショートカット

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > .NET > .NETコードでのショートカット

.NETコードでのショートカット

［.NETコード］エディタでは、以下のショートカットが使用できます。

キー | 操作
改行
Enter | 行の挿入して分割する
Ctrl + Enter | 先頭に行を挿入する
Ctrl + Shift + Enter | 末技に行を挿入する
削除/バックスペース
Del | 削除
Ctrl + Shift + L | 行削除
Ctrl + Del | 次の単語まで削除
Backspace | バックスペース
Ctrl + Backspace | 前の単語までバックスペース
クリップボード/取り消し
Ctrl + C | クリップボードにコピー
Ctrl + Ins | クリップボードにコピー
Ctrl + L | １行を切り取りクリップボードにコピー
Ctrl + X | 切り取りクリップボードにコピー
Shift + Del | 切り取りクリップボードにコピー
Ctrl + V | クリップボードから貼り付け
Shift + Ins | クリップボードから貼り付け
Ctrl + Z | 取り消し
Ctrl + Y | やり直し
Ctrl + Shift + Z | やり直し
移動
Down | 1行下へ
Up | 1行上へ
Left | 1文字左へ
Right | 1文字右へ
Ctrl + Left | 前の単語まで
Ctrl + Right | 次の単語まで
Home | 行の先頭まで
End | 行の末尾まで
Ctrl + Home | コードの先頭まで
Ctrl + End | コードの末尾まで
Page Up | 前ページ
Page Down | 次ページ
Ctrl + Page Up | 表示内容の先頭まで
Ctrl + Page Down | 表示内容の末尾まで
Ctrl + ] | 対応するブラケットまで
スクロール
Ctrl + Down | スクロールダウン
Ctrl + Up | スクロールアップ
インデント
Tab | インデント
Shift + Tab | インデントを戻す
選択
Shift + Down | 選択して次行へ
Shift + Up | 選択して前行へ
Shift + Left | 選択して次文字へ
Shift + Right | 選択して前文字へ
Ctrl + Shift + Left | 選択して単語の先頭へ
Ctrl + Shift + Right | 選択して単語の末尾へ
Shift + Home | 選択して行の先頭へ
Shift + End | 選択して行の末尾へ
Ctrl + Shift + Home | 選択してコードの先頭へ
Ctrl + Shift + End | 選択してコードの末尾へ
Shift + Page Up | 選択して前ページへ
Shift + Page Down | 選択して次ページへ
Ctrl + Shift + Page Up | 選択して表示内容の先頭へ
Ctrl + Shift + Page Down | 選択して表示内容尾の末尾へ
Ctrl + A | 全て選択
Ctrl + Shift + W | 単語を選択
Ctrl + Shift + ] | 対応するブラケットまでを全て選択
Shift + Alt + Down | ブロック選択で次行へ
Shift + Alt + Up | ブロック選択で前行へ
Shift + Alt + Left | ブロック選択で左へ
Shift + Alt + Right | ブロック選択で右へ
Ctrl + Shift + Alt + Left | ブロック選択で前の単語へ
Ctrl + Shift + Alt + Right | ブロック選択で次の単語へ
オートコンプリート
Ctrl + Space | 選択候補の表示
Ctrl + Shift + Space | パラメータ情報の表示
その他
Ctrl + Shift + U | 選択文字を大文字に変換する
Ctrl + U | 選択文字を小文字に変換する
Ctrl + I | インクリメンタルサーチ（下へ）
Ctrl + Shift + I | インクリメンタルサーチ（上へ）
Insert | 上書きモードの切り替え
Ctrl + T | 文字の入れ替え
Ctrl + Shift + T | 単語の入れ替え
Ctrl + Shift + Alt + T | 行の入れ替え
Magic xpaとの統合処理
Ctrl + Tab | ［コード］エディタを終了し、次のMagicコントロールに移動
Ctrl + Shift + Tab | ［コード］エディタを終了し、前のMagicコントロールに移動


処理コマンド 外部コール NET パラメータテーブル

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > .NET > パラメータテーブル

パラメータテーブル

.NET用の［パラメータ］テーブルは、［コール.NET］処理コマンドの［パラメータ］特性からズームすることでアクセスできます。［パラメータ］テーブルの［項目］カラムからズームすることで、［項目一覧］にアクセスできます。

［パラメータ］テーブルには、以下のカラムがあります。

カラム

内容

#

Magic xpaによって自動的に割り当てられた連番です。ここには、カーソルはパークしません。

項目

ここには、.NETコードとのデータの受け渡しに使用する項目の番号を指定します。項目を指定した場合､パラメータは参照渡しで渡され､式で定義された場合は、値渡しになります。

項目の番号を入力するか､ズームして［項目一覧］を開いて選択してください。入力された項目のコードがここに表示され、［名前］カラムに項目名が表示されます。

固定値を渡す場合は、このカラムをスキップして［式］カラムに式で指定してください。式がすでに定義されている場合、このカラムはスキップされます。

式

［式］カラムは、式によって特定の値を.NETコードに渡すために使用されます。この場合、値渡しになります。

.NETコード側からデータを受け取ることはできません。式番号がこのカラムに表示され、［名前］カラムに式の内容の一部が表示されます。

ここからズームして［式］テーブルを開くことで､既存の式を選択したり、新たに式を定義することができます。式では、有効なMagicデータ型で評価されます。

［項目］カラムにパラメータが定義されている場合は、［式］カラムはパスされます。項目の代わりに式を指定したい場合は、項目の指定を削除してください。

名前

このカラムには、設定された項目名か式の内容が表示されます。

.NETタイプ

.NET項目のタイプ(設定された項目が変換される.NETタイプ)を指定します。

Ctrl+スペースを押下するとアシスタが起動され、利用可能なクラスが表示されます。

注意：

  • 値は、Magic xpaの型に合うために推奨されるタイプで更新されます。この値は変更することができます。

  • 項目のタイプが変更されても、パラメータのタイプは変更されません。別の項目を選択した場合のみ変更されます。

  • メソッドへのポインタを渡すことはできません。［参照］のチェックボックスをチェックすることで､値を参照渡しすることができます。

.NET項目

.NET項目の名前

先頭の文字は、文字かアンダーバー。

以下の文字は無効です：ドット（.）、コンマ（,）、オープニングブラケット（［）、閉まるブラケット（］）、スペース。

参照

値が参照渡しにするかどうかを指定します。

値が副参照符を送られるかどうか指定します。

値を返す必要がある場合は、ここをチェックしてください。

通常のパラメータ渡しと同様に、データ項目を渡すことは参照渡しになります。それは、サブルーチンが呼び出した関数にデータを返します。式を渡す場合は値渡しになります。この場合は、データを返しません。


処理コマンド 外部コール 特性

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性

外部コール特性

Alt+Enterを押下するか、マウスを右クリックし、コンテキストメニューから［特性］を選択することで［特性］シートを表示させることができます。

［外部コール］処理コマンドには、以下の特性があります。

パラメータ

条件

規約

メソッド/プロパティ

エラー情報

フロー方向

フローモード

オブジェクト

処理

オプション

実行

OSコマンド

結果

エラーコード

戻り値

サービス

表示

UDP

値

ウェイト

SOAPヘッダ

.NETコード


処理コマンド 外部コール 特性 NETコード

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性 > .NETコード

.NETコード

ここからズームすると、［.NETコード］ダイアログボックスにアクセスできます。


処理コマンド 外部コール 特性 パラメータ

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性 > パラメータ

パラメータ

コールWebサービス

Webサービスのメソッドを呼び出す場合に使用する［パラメータ］ダイアログは、［コールWebサービス］処理コマンドで選択されたSOAP処理コマンドに基づいたパラメータのリストを表示します。各パラメータには、WSDLで定義された入力定義が割り当てられています。

［パラメータ］テーブルには、以下のカラムがあります。

カラム

内容

名前

パラメータ名を指定します。

項目

パラメータに割り当てる項目。［項目］か［式］のどちらかを指定します。

式

パラメータに割り当てる式

指定可能な型

［外部タイプ］に対応する、Magic xpaのデータ型

外部タイプ

WSDLでのパラメータ定義に基づくデータタイプが表示されます。
複合型（非プリミティブ型）の値は、複合型を定義するXMLスキーマの位置になります。（スキーマは、［サービス］テーブルで「SOAP」サービスを定義すると自動的に作成されます。） 渡された項目や式は、ルート要素名としてパラメータ名を使用して、スキーマと整合性がとれるようにしてください。

注意：

Magic xpaの配列は［コールWebサービス］処理コマンドの複合タイプに自動的に変換されません。また、Magic xpaがWebサービスプロバイダとして実行している時も、複合タイプとして値を戻しませんせん。

方向

ここには、「In」、「Out」または、「In,Out」が指定できます。（［コールCOM］処理コマンドは表示のみ）。［式］で指定されたたパラメータは、「In」のみ有効です。

コールWebサーバライト

［コールWebサーバライト］処理コマンドでのパラメータについては、パラメータのトピックを参照してください。

コールCOM

COMのメソッドを呼び出す場合に使用する［パラメータ］ダイアログは、メソッドに対応したパラメータのリストを表示します。

［パラメータ］テーブルには、以下のカラムがあります。

カラム | 内容
名前 | パラメータ名を指定します。
項目 | パラメータに割り当てる項目。［項目］か［式］のどちらかを指定します。
式 | パラメータに割り当てる式
指定可能な型 | ［外部タイプ］に対応する、Magic xpaのデータ型
外部タイプ | COMでのパラメータ定義に基づくデータタイプが表示されます。
方向 | ここには、「In」、「Out」または、「In,Out」が指定できます。（［コールCOM］処理コマンドは表示のみ）。［式］で指定されたたパラメータは、「In」のみ有効です。
オプション | COMに渡すパラメータがオプションか否かが表示されます。（COMオブジェクト側に依存します。）
登録 | この特性のために使用される項目を作成するかどうかを指定します。
項目作成 | このボタンをクリックすると、登録オプションがチェック状態のすべてのパラメータに対して対応する項目が作成されます。
項目 | このパラメータに対する値の列挙リストが表示されます。

参考：

  • 項目または式のどちらかを指定してください。

  • WSDLで宣言されたアタッチメントは、「予期されている型で」で「BLOB」に設定されたパラメータとして定義されています。

  • ［項目］カラムと［式］カラム以外のカラムは、変更できません。

コール.NET

［コール.NET］のパラメータ特性については、パラメータテーブルのトピックを参照してください。

コールUDP

UDPを呼び出す場合に使用する［パラメータ］ダイアログには、最初のパラメータでパラメータタイプと数を指定し、これをもとにUDPに渡すパラメータと（必要があれば）戻り値を受け取るデータ項目を定義します。


処理コマンド 外部コール 特性 規約

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性 > 規約

規約

UDPを呼び出す際のC 言語での呼び出し規約を指定します。

  • CDECL …… _cdecl を使用している関数をMagic xpaから起動する場合は、これを指定します。

  • STDCALL …… _stdcall を使用している関数をMagic xpaから起動する場は、これを指定します。Windows のAPI を呼ぶ場合は、STDCALL を指定してください。

  • FASTCALL …… _fastcall を使用しているプログラムを関数から起動する場合は、これを指定します。

デフォルト：STDCALL


処理コマンド 外部コール 特性 要素

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性 > メソッド/プロパティ

メソッド/プロパティ

［コールCOM］処理コマンドにおいて、［オプション］特性が、「M=メソッド呼出」に設定されている場合、ここには呼び出すメソッドを指定します。「S=プロパティの設定」または、「G=プロパティの取得」の場合は、プロパティ名を指定します。


処理コマンド 外部コール 特性 エラー情報

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性 > エラー情報

エラー情報

Webサービスの呼び出しに失敗した場合、エラーメッセージが返ります。エラーメッセージを格納できる文字型項目を設定してください。


処理コマンド 外部コール 特性 オブジェクト

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性 > オブジェクト

オブジェクト

COMオブジェクトの呼び出し

ここには、COMオブジェクトが定義されている変数項目を指定します。

処理を実行させたいオブジェクトを指定してください。直接入力するか、ここからズームして［項目一覧］からOLE型／ActiveX型の項目を選択してください。


処理コマンド 外部コール 特性 処理

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性 > 処理

処理

Webサービスによって提供される処理を一覧から選択できます。


処理コマンド 外部コール 特性 オプション

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性 > オプション

オプション

［オプション］特性のコンボボックスから実行したい処理のタイプを選択してください。有効なオプションは以下の通りです。

  • M=メソッドの呼出

  • G=プロパティの取得

  • S=プロパティの設定


処理コマンド 外部コール 特性 OSコマンド

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性 > OSコマンド

OSコマンド

OS上で実行できるコマンド名を指定します。［式］エディタに定義されている式の識別番号を指定することもできます。この式には、OS上で実行できるコマンド名が返る式を指定してください。

モバイル仕様：

Windows環境では、"%"で囲まれた文字列を論理値として扱いますが、モバイル環境では論理名として処理しません。論理値を使用したい場合は、Translate関数を使用するようにしてください


処理コマンド 外部コール 特性 結果

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性 > 結果

結果

処理の戻り値を格納するデータ項目を指定してください。

戻り値の値

［コールOSコマンンド］処理コマンドは、ShellExecuteのAPI関数を呼び出します。

この関数の詳細は、以下を参照してください。

http://msdn.microsoft.com/ja-jp/library/cc422072.aspx

32以下の数値が返る場合は、上記のリンクに説明されているエラーが発生したことを意味しています。

32より大きな数値が返る場合は、処理が成功したことを意味しています。

モバイル仕様：

モバイル環境では、サポートされません。


処理コマンド 外部コール 特性 実行先

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性 > 実行

実行

この特性は、処理コマンドがサーバ上で実行されるかクライアント上で実行されるかを指定します。この特性は、リッチクライアントタスクでのみ表示されます。

選択可能なオプションは以下の通りです。

  • C=クライアント …… クライアント上で実行されます。

  • S=サーバ（デフォルト） …… サーバ上で実行されます。

参考：

「サーバ」に設定した場合、［ウェイト］特性は無効になります。


処理コマンド 外部コール 特性 エラーコード

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性 > エラーコード

エラーコード

処理が成功したか失敗したかを示すコードが返ります。ここからズームして［項目一覧］からエラーコードを受け取る項目を選択します。


処理コマンド 外部コール 特性 戻り値

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性 > 戻り値

戻り値

コールWebサービス

［戻り値］ダイアログには、［コールWebサービス］処理コマンドにおける選択されたSOAP処理からの戻り値、または［コールCOM］処理コマンドにおけるCOMオブジェクトからの戻り値に関する情報を設定します。

［戻り値］ダイアログには、以下のカラムがあります。

カラム | 内容
名前 | パラメータ名です。
項目 | 戻り値を格納する項目を指定します。この指定は必須です。
内部タイプ/指定可能な型 | ［外部タイプ］に対応するMagic xpaのデータ型です。
外部タイプ | COMやWSDLでのパラメータ定義に基づくデータタイプが表示されます。

注意：

WSDLの場合、複合型（非プリミティブ型）の値は、複合型を定義するXMLスキーマの位置になります。（スキーマは、［サービス］テーブルで「SOAP」サービスを定義すると自動的に作成されます。） 渡された項目や式は、ルート要素名としてパラメータ名を使用して、スキーマと整合性がとれるようにしてください。

［項目］欄以外は、変更できません。


処理コマンド 外部コール 特性 サービス

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性 > サービス

サービス

［サービス一覧］から、サービスを選択してください。SOAPサービスだけが選択でき、その他のサービスは灰色で表示されます。


処理コマンド 外部コール 特性 ヘッダ

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性 > SOAPヘッダ

SOAPヘッダ

［SOAPヘッダ］特性にはデータ項目を設定します。指定された項目の内容がヘッダブロックとしてプロバイダに送られます。また、プロバイダからからの応答に含まれるヘッダブロックが格納されます。

［SOAPヘッダ］特性の内容はEDEV_SOAP_HEADERSという名前のルート要素を持つXMLドキュメントです。このXMLドキュメントには、1つ以上のヘッダブロックを含めなければなりません。

この特性から項目一覧にズームすることができます。ここには、現在のタスクを含む上位のタスク内に定義されたBLOB型、文字型およびUnicode型の項目が含まれています。

実行時の考慮事項

特性が指定されていなかったり、指定された項目がNULLの場合、ヘッダは渡されません。

特性に項目が設定され、項目の値がULLではなく、XMLのルート要素がEDEV_SOAP_HEADERSでない場合、クライアントの問題としてエラーが返ります。

関連トピック：

SOAPヘッダ付きのリクエストを送ったり、戻り値を取得するには


処理コマンド 外部コール 特性 表示

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性 > 表示

表示 (デフォルト:N=通常)

外部プログラムの表示形式を指定します。指定できる値は、「H ＝なし」、「N ＝通常」、「X ＝最大化」、「M ＝最小化」のいずれかです。

  • H ＝なし …… 外部プログラムは現在表示されているウィンドウの裏で動作します。したがって、外部プログラムのウィンドウは見えません。

  • N ＝通常 …… 外部プログラムのウィンドウは、一番上に表示されます。

  • X ＝最大化 …… この設定では、外部プログラムのウィンドウは一番上に表示されると同時に、そのサイズが最大になります。

  • M ＝最小化 …… この設定では、外部プログラムのウィンドウは最小化されて実行します。

注意：

  • 「H=なし」で起動する場合は、外部アプリケーションの出力メッセージをファイルにリダイレクトするようにしてください。

  • リッチクライアントタスクでは、［実行］特性を「サーバ」に設定されている場合は、［表示］特性は「N=なし」の状態で無効になります。

モバイル仕様：

モバイル環境ではサポートされません。


処理コマンド 外部コール 特性 UDP

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性 > UDP

UDP

ここには、呼び出されるUDP（ユーザ定義プロシジャ）を示す式の番号を指定します。番号は、[式]エディタの番号を指定します。[式]エディタの式は、実行時、このコマンドにより実行されるUDPの名前（文字列）が返るような式にします。

呼び出す関数は以下のように指定します。

UDP 用に作成されたモジュールの場合

<Dll ファイル名>. 関数名

Windows のAPI を呼び出すような場合

@<Dll ファイル名>. 関数名

例えば、kernel32.dll （このファイルは、Windows で提供されています。）のGetSystemTimeという関数を呼び出す場合、以下のようになります。

@kernel32.GetSystemTime


処理コマンド 外部コール 特性 値

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性 > 値

値

［コールCOM］処理コマンドにおいて、「プロパティの設定」オプションを指定した場合、設定する値を格納する値を指定します。ここからズームすると［値］テーブルが表示されます。


処理コマンド 外部コール 特性 ウェイト

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 外部コール > 外部コール特性 > ウェイト

ウェイト (デフォルト：No)

［ウェイト］特性を使用して、呼び出したプログラムが完了してからMagic xpaのプログラムを続行するかどうかを指定します。

  • No …… Magicプログラムは、呼び出したプログラムの完了を待たずに処理が続行されます。

  • Yes …… Magicプログラムは、呼び出したプログラムの完了後、処理が続行されます。

モバイル仕様：

モバイル環境ではサポートされません。


処理コマンド イベント実行

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > イベント実行

イベント実行

［イベント実行］処理コマンドは、イベントが定義されたハンドラを実行するために使用します。

この処理コマンドを使用することで、Magicエンジンの処理フローの間に様々なイベントを発行させることができます。これらのイベントは、システムによって発生したイベントと同じように処理することができます。

プロジェクトとコンポーネント間で相互にやり取りする場合、ホストプロジェクト内のハンドラを実行させる必要が出てきます。Magic xpaは、コンポーネント側でホストプロジェクトに定義されているイベントの公開名を指定することで、イベントを発行させることができます。

Alt+Enterを押下することによって、［イベント実行特性］シートにアクセスすることができます。

関連トピック：

公開イベントの実行時の動作


処理コマンド イベント実行 公開イベントの実行時の動作

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > イベント実行 > 公開イベントの実行時の動作

公開イベントの実行時の動作

公開イベントに対する［イベント実行］処理コマンドが実行されると、定義された式の内容をイベントの公開名と評価します。公開名は、大文字と小文字が区別されます。

Magic xpaは、実行環境でのタスクツリー上において、指定された公開イベントを使用しているユーザ［イベント］ロジックユニットを検索します。指定した公開［イベント］ロジックユニットが見つかれば実行します。見つからない場合は実行されません。

ホストアプリケーションのイベントをコンポーネントから実行する場合、イベントに［公開］特性が指定されていなかったり、ハンドラが［公開］特性を指定したイベントを使用していない場合は実行されません。

最初の一致するハンドラが見つかり実行されると、次にそのハンドラの［伝播］特性を確認します。［伝播］特性が「No」であれば、イベント処理は終了し、「Yes」であればイベントを伝播します。［伝播］特性は、イベントの公開名の検索時には使用されませんが、ユーザイベントテーブルに定義されたイベントとして参照されます。


処理コマンド イベント実行 特性

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > イベント実行 > イベント実行特性

イベント実行特性

Alt+Enterを押下するかマウスで右クリックしてコンテキストメニューから［特性］を選択すると、［イベント実行特性］シートにアクセスできます。

［イベント実行］処理コマンドには、以下の特性があります。

条件

イベント

ウェイト

パラメータ

出力先コンテキスト名


処理コマンド イベント実行 イベント

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > イベント実行 > イベント実行特性 > イベント

イベント

ここには、［イベント実行］処理コマンドで使用されるイベントまたはトリガを指定します。ここからズームすると［イベント］ダイアログが表示され、ここで［イベントタイプ］と［イベント］を設定します。

イベントタイプには以下のものがあります。

  • S=システム …… ［キーボード割付］キー操作の組み合わせをトリガとするイベント

  • I=内部 …… ［イベント一覧］に定義されているMagic xpaの内部イベント

  • U=ユーザ …… ［ユーザイベント］テーブルに定義されているイベント
    他のコンポーネントのプログラムが、ホストプロジェクトの［イベント］ロジックユニットを呼び出すようにするには、ホストプロジェクトのメインプログラムで［ユーザイベント］テーブルに定義されたイベントの［公開］カラムをチェックする必要があります。

  • P=公開イベント …… 公開名が定義されたユーザイベント。イベント名は文字列の式で指定します。ホストアプリケーションのメインプログラムのユーザテーブルの［公開］特性を選択することで、コンポーネントからのイベント実行によりこのイベントをトリガとしたハンドラを実行させることができます。


処理コマンド イベント実行 ウェイト

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > イベント実行 > イベント実行特性 > ウェイト

ウェイト

この特性に、「Yes」、「No」または式のいずれかを指定することで、［イベント］ロジックユニットが即座に実行されるか、イベントキューの最後に置かれるかを指定します。

  • Yes …… ［イベント実行］処理コマンドに続くコマンドを実行する前に［イベント］ロジックユニットが実行されます。

  • No …… 呼び出されたイベントは即座には実行されず、イベントキューに登録されます。先に登録されていた［イベント］ロジックユニットが終了した後、［イベント実行］コマンドのイベントに対応する［イベント］ロジックユニットが実行されます。

  • 式 …… 指定された式が「True」と評価されると、［イベント］ロジックユニットまたはトリガが即座に実行されます。「False」と評価されると、イベントはイベントキューに登録されます。

注意：

内部イベントは、非同期で発行しなければなりません。内部イベントを発行して、タスクの内部処理として処理させたい場合は、この特性を「No」に設定する必要があります。「Yes」に設定した場合、これらのイベントの内部処理は実行されません。

新しいイベントが［イベント選択］ダイアログボックスで選択され、式が［ウェイト］特性に設定されない場合、Magic xpaは以下ように値を設定します。

  • 内部イベント …… ［ウェイト］特性が「No」に設定されます。

  • その他のイベント …… ［ウェイト］特性が「Yes」に設定されます。

関連トピック：

イベントを即時に処理させるには

イベントの処理を延期させるには


処理コマンド イベント実行 パラメータ

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > イベント実行 > イベント実行特性 > パラメータ

パラメータ

この特性で、［イベント］ロジックユニットやトリガの呼び出し後に［イベント］ロジックユニットで定義された変数に渡されるパラメータを定義します。ここには選択したパラメータの数が表示されます。ここからズームすると、［パラメータ］テーブルが開き、［項目］または［式］により、パラメータを指定します。

パラメータは参照のみ可能です。従ってイベントプログラムでパラメータを変更しても、値を戻すことはできません。

［パラメータ］テーブルには以下のカラムがあります。

カラム | 内容
# | ここには、Magic xpaによって生成された連番が表示されます。このカラムにはカーソルはパークできません。
項目 | このカラムには「参照渡し」による受け渡しを行うパラメータを指定します。［項目一覧］にズームしてデータ項目を選択するか、データ項目のシンボル名を入力してください。 パラメータとして定数値を渡す場合は、［項目］カラムではなく［式］カラムに入力します。式がすでに定義されている場合は、［項目］カラムはスキップされます。
式 | このカラムには「値渡し」による受け渡しを行うパラメータを指定します。また、式によって定数をサブルーチンに受け渡すためにも使用します。 このカラムには式番号が表示されます。［内容］カラムには展開された式の最初の部分が表示されます。［式］テーブルにズームして既存の式を選択するか、新たに式を定義することができます。 データ項目がパラメータとしてすでに定義されている場合、［式］カラムはスキップされます。式をパラメータとして使用したい場合は、データ項目の識別子を削除します。
説明 | ［説明］カラムには、［項目］または［式］のどちらのパラメータを使用しているかによって、項目名か式の最初の部分が表示されます。このカラムには、カーソルはパークできません。
スキップ | ［スキップ］カラムのチェックボックスをオンにすることで、その行のパラメータについての定義を省くことができます。チェックボックスがオンになっている場合は、コール先に値は渡されません。


処理コマンド イベント実行 出力先コンテキスト名

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > イベント実行 > イベント実行特性 > 出力先コンテキスト名

出力先コンテキスト名

この特性によって、処理されるイベントを使用してアプリケーションサーバ間との通信を実行することができます。ここにはイベントを実行するコンテキスト名を指定します。

この特性は、複数のコンテキストが同じプロセスによって処理される、バックグラウンドエンジンに対してのみ有効です。1つのコンテキストから別のコンテキストにイベントを送る場合、出力先のコンテキスト内で CtxSetName関数を使用して、出力先のコンテキストの名前を設定することで可能になります。そして、出力先を指定した［イベント実行］処理コマンドを使用してイベントを発行することで、コンテキストに渡すことができます。

コンテキストは、共有値とデータベースファイルを使用してリソースを共有することができます。

この特性は、［イベント］メニューで有効です。

この特性は、リッチクライアントタスクではサポートされません。


処理コマンド アクション

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > アクション

アクション

この処理コマンドは、結果を受けるデータ項目を渡すことなく関数を実行させます。たとえば、結果がプログラムとして必要ない様な関数（Delay()やINIPut()など）を実行させる場合に利用できます。

式の中で、必要に応じて複数の関数と組み合わせることができます。このようなロジックを定義した場合、すべての関数が成功の場合だけ、処理コマンドの戻り値として"TRUE"が返ります。

アクション特性

アクション特性には、以下の特性値があります。

特性

内容

式

アクション関数が定義されている式の識別番号を指定します。ズームすると［式］エディタが表示されますので、ここでアクション関数を選択するか、定義します。

戻り値

この特性はオプションです。ここには、処理コマンドの実行結果を受け取る項目を指定します。通常、変数項目を指定します。

論理型の項目を指定してください。処理が成功した場合「True」、失敗した場合「False」が設定されます。

参考：

処理が失敗した場合、［戻り値コード］特性を使用してエラー内容を確認することができます。

条件

この特性には、論理条件を指定します。その論理条件から返る値を使用して、コマンドの実行を制御できます。

指定できる値は以下の通りです。

  • 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

［ブロックIf］処理コマンドは、基本的なブロック処理です。

このタイプは、［ブロックEnd］処理コマンドと対になっていなければなりません。Magicエンジンがこのタイプの処理を見つけた場合、処理コマンドの条件を評価します。条件に合えばブロック内の処理を実行します。条件に合わない場合は、［ブロックEnd］処理コマンドまでの処理をスキップします。［ブロックIf］処理コマンドで指定されたブロック内に別の［ブロック］処理コマンドをネストさせることができます。

関連トピック：

Else

While


処理コマンド ブロック Else

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > ブロック > 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

［ブロックWhile］処理コマンドは、ブロック内の処理を繰り返し実行するように指定するものです。

Magicエンジンが［ブロックWhile］処理コマンドを見つけると、まず条件設定を評価します。その条件が満たされるのであれば、ブロック内の処理を実行します。

［ブロック終了］処理コマンドに達すると、［ブロックWhile］処理コマンドの先頭に戻り、再び条件を評価します。条件が満たされる限り、［ブロックWhile］処理コマンドの処理を実行します。条件が満たされない場合、［ブロック終了］処理コマンドを抜けて、タスクフローを続けます。

LoopCounter関数を使用して、［ブロックWhile］処理コマンドによって実行される回数を監視できます。

関連トピック：

一連の処理を繰り返し実行させるには


処理コマンド ブロック End

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > ブロック > End

End

このオプションは、ブロックのユニットを終了させます。

使用の際の注意

  • ［ブロックEnd］処理コマンドは、［ブロック］処理コマンドを定義すると、その下に自動的に定義されます。

  • ［ブロックEnd］処理コマンドは、［ブロック］処理コマンドが定義されている限り、削除しないでください。また、別のコマンドに変更しないでください。

  • ［ブロックEnd］処理コマンドを誤って削除した時には、手動で定義してください。

  • ［ブロック］処理コマンドと［ブロックEnd］処理コマンドが対になっていないなど構文に誤りがある場合、構文チェック（［オプション／構文チェック］）でエラーになります。


処理コマンド エラー

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > エラー

エラー

［エラー］処理コマンドは、エンドユーザにエラーが発生したことを通知したり、入力ミスを防止するために使用します。

エラー特性

［エラー］処理コマンドには、以下の特性があります。

モード

テキスト

表示

タイトル

イメージ

ボタン

デフォルトボタン

戻り値

エラーログに追加

フローモード

フロー方向

条件

関連トピック：

サブフォームの表示内容を実行時に差し替えるには


処理コマンド エラー モード

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > エラー > モード

モード

［モード］特性の有効な値は以下の通りです。

  • E=エラー …… メッセージが表示され、その後、次の規則にしたがって動作が実行されます。

［エラー］処理コマンドがオンライン（またはインタラクティブなリッチクライアント）タスクのコントロールレベルで使用されている場合

    1. 処理が一時中断します。

    2. カーソルが対応するコントロールに止まります。

    3. エンドユーザがエラーを訂正するまで待機状態に入ります。

［エラー］処理コマンドがオンライン（またはインタラクティブなリッチクライアント）タスクの［レコード後］で使用されている場合

    1. 処理が一時中断します。

    2. カーソルは、フォーム上の現在のレコードでパーク可能項目のうち、カーソルが最後にパークしたコントロールに戻ります。

    3. エンドユーザがエラーを訂正するまで待機状態に入ります。

［エラー］処理コマンドがバッチ（または非インタラクティブなリッチクライアント）タスクの［レコード後］で使用されている場合

    1. 処理が中断します。

    2. Magic xpaは、現在のレコードをスキップしユーザの入力を待ちます。Esc以外のキーを押下すると、次のレコードからタスクの処理を再開します。Escキーを押下するとタスクを終了します。この場合のエラーメッセージは、エラーを訂正してからEscキー以外のキーを押下するような指示にしてください。プログラムのデバック機能として、この処理コマンドが使用できます。

上記以外のレベル（［タスク前／後］やグループレベル、［レコード前］）で使用する場合は、処理が中断し、そのレベルの実行がアボートされます。

  • W=警告 …… 警告音が鳴ると同時に指定したメッセージが表示されます。ただし、タスクの実行は停止しません。メッセージステータスバーに表示される場合は、エンドユーザはメッセージを無視して作業を続けることができます。ユーザが次の操作を行なうとメッセージは見えなくなります。メッセージをダイアログボックスで表示させた場合は、［OK］ボタンをクリックすることでメッセージは見えなくなります。

  • R=復帰 …… メッセージが表示され、ハンドラ内をフローが逆方法に移動し、ハンドラの先頭に戻ります。
    ［ブロックIf］処理コマンドが定義されている場合、ブロックユニット内を逆順に実行します。［ブロックWhile］処理コマンドが定義されている場合、ブロック処理を終了し［ブロックWhile］処理コマンドの前に定義されている処理コマンドを］を逆順に実行します。
    このモードは、以下のロジックユニット内でのみ有効です。

    • ［イベント（ユーザ、システム、内部、タイマー、式）］

    • ［コントロール前］

    • ［コントロール後］

    • ［コントロール検証］

デフォルト：W=警告

関連トピック：

表示


処理コマンド エラー テキスト

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > エラー > テキスト

テキスト

テキストを入力するか、［式］エディタにズームして文字列が返る式を指定します。最大255文字まで指定可能です。改行表示も可能ですが、改行コードも文字として指定可能文字数に含まれます。

入力した文字列がテキスト入力欄の幅より大きい場合、自動的に広域ウィンドウが表示されます。式を指定した場合、式の最初の部分が表示されます。

テキスト（メッセージ）を指定し、実行時に［条件］特性が「True」と評価されると、メッセージ行にエラーメッセージが表示されるとともに警告音が鳴ります。［式］特性の値が「0」で、［テキスト］特性にメッセージを入力していない場合、メッセージは表示されませんし、警告音も鳴りませんが、処理は通常どおり実行されます。

テキストを直接入力した場合、［テキスト］カラムにマウスカーソル置くとツールチップで入力されたテキストが表示されます。

関連トピック：

モード


処理コマンド エラー タイトル

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > エラー > タイトル

タイトル

この特性は、メッセージボックスのタイトルテキストを指定します。最大260文字まで指定可能ですが、実際に表示されるは、メッセージボックスのサイズに依存し124文字までになります。改行表示はできません。この特性はオンライン、リッチクライアント、およびバッチタスクで利用可能です。

この特性は、［モード］特性の設定内容に依存します。


処理コマンド エラー イメージ

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > エラー > イメージ

イメージ

この特性では、メッセージボックスに表示するイメージを選択することができます。この特性はオンライン、リッチクライアント、およびバッチタスクで利用可能です。

有効な値は以下の通りです。

E=感嘆詞

C=重要

Q=疑問符

I=情報

N=なし

この特性は、［モード］特性の設定内容によって以下のような影響があります。

  • この特性が、デフォルト値に設定されている場合、［モード］特性を変更すると、変更内容にもとづいて更新されます。特性が無効または表示されない場合も、値は変更されます。

  • この特性がデフォルト値以外で設定されている場合、［モード］特性が変更されても変わりません。

モバイル仕様：

iOSではサポートされません。


処理コマンド エラー ボタン

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > エラー > ボタン

ボタン

この特性によって、メッセージボックスに表示するボタンを選択することができます。この特性はオンライン、リッチクライアント、およびバッチタスクで利用可能です。

複数ボタンを設定した場合、［戻り値］特性に数値型の項目を定義する必要があります。

設定可能な値は以下の通りです。

O=OK

K=OK ｷｬﾝｾﾙ

A=中止 再試行 無視

Y=はい いいえ ｷｬﾝｾﾙ

N=はい いいえ

R=再試行 ｷｬﾝｾﾙ


処理コマンド エラー デフォルトボタン

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > エラー > デフォルトボタン

デフォルトボタン

この特性では、メッセージボックスに表示されるボタンの中で、デフォルトとしてフォーカスが置かれるボタン番号を選択することができます。この特性はオンライン、リッチクライアント、およびバッチタスクで利用可能です。

有効な値は1-3です。

0を含めた無効な番号が指定された場合、1と評価されます。

モバイル仕様：

モバイル環境ではサポートされません。


処理コマンド エラー 戻り値

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > エラー > 戻り値

戻り値

この特性には、メッセージボックスから戻った値を格納する項目を設定します。この特性はオンライン、リッチクライアント、およびバッチタスクで利用可能です。

戻り値のコードは以下の一覧に対応します。この値は、Windowsのメッセージボックスの場合と同じです。

1 | OK
2 | キャンセル
3 | 中止
4 | 再試行
5 | 無視
6 | はい
7 | いいえ


処理コマンド エラー エラーログに追加

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > エラー > エラーログに追加

エラーログに追加

この特性は、メッセージテキストをエラーログに追加するかどうかを指定します。

有効な値は以下の通りです。

  • Yes

  • No

この特性は、オンライン、リッチクライアント、バッチの各タスクで有効です。

リッチクライアントタスクでは、この特性が「Yes」に設定された場合、InternalLogFile が設定されている場合のみ有効です。

この特性は、［モード］特性の設定内容に依存します。


処理コマンド エラー 表示

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > エラー > 表示

表示

［表示］特性では、［エラー］処理コマンドで表示されるメッセージの形式を指定できます。指定できるオプションは、以下の通りです。

  • B=ボックス …… メッセージがダイアログボックスで表示されます。Magic xpaはこのダイアログが閉じられるまで次の処理に移行しません。［モード］特性が「E=エラー」の場合、エラーダイアログが表示され、「W=警告」の場合、警告ダイアログが表示されます。

  • S=ライン …… ウィンドウのステータス行にメッセージが表示されます。［モード］特性が「W=警告」の場合、Magicエンジンは直ちに次の処理に移行します。

デフォルト：B=ボックス

モバイル仕様：

モバイル環境では、「ボックス」のみ有効です。


処理コマンド フォーム

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > フォーム

フォーム

［フォーム］処理コマンドは、以下の処理を行うことができます。

  • 入力フォームによる読み込み …… このオプションは、テキストファイルや入力デバイスからデータを読み込み、フォームに定義された項目に設定します。

  • 出力フォームによる書き込み …… このオプションは、テキストファイルや出力デバイスに、フォームに定義されたレイアウトを使用してデータを出力します。この処理コマンドは通常、印刷処理で使用します。出力フォームを［マージ形式］フォームにした場合、書式が定義されたテンプレートファイルにデータをマージすることができます。

注意：

リッチクライアントタスクではサポートされません。

用途

［フォーム入力］処理コマンドは、以下のような場合に使用します。

  • ［テキスト形式］フォームを使用したデータ入力

［フォーム出力］処理コマンドは、以下のような場合に使用します。

  • 帳票の出力

  • データをテキスト形式で出力

  • タスクのデータを定義済みテンプレートファイルにマージして出力

関連トピック：

フォーム出力

フォーム入力


処理コマンド フォーム 出力

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > フォーム > フォーム出力

フォーム出力

この処理コマンドを使用して、レコードをテキストファイルや出力デバイスに出力することができます。レコードは、フォームに定義されているレイアウトにしたがって出力されます。このコマンドは、通常、帳票の出力に使用します。

出力フォームがマージフォームの場合に、このコマンドはデータを独立したテンプレートファイルにマージして出力します。

用途

［フォーム出力］処理コマンドは、以下のような場合に使用します。

  • 帳票の出力

  • データをテキスト形式で出力

  • タスクのデータを定義済みテンプレートファイルにマージして出力

注意：

リッチクライアントタスクではサポートされません。

使用の際の注意事項

  • データ出力プログラムは、APGを使用して自動的に作成することができます。

  • ［フォーム出力］処理コマンドは、外部テキストファイル（出力ファイル）を処理するためのコマンドで、DBテーブルを処理するものではありません。

  • ［フォーム出力］処理コマンドは、出力先をディスクファイルやプリンタにリダイレクトすることができます。

  • 帳票を出力する場合、帳票の構成要素（ヘッダ、フッタ、明細行）ごとにそれぞれ、［フォーム出力］処理コマンドを定義します。その場合、帳票の構成要素を全て、テキストファイルが定義されているタスク（［入出力ファイル］テーブルで定義します）に一括して定義することも可能ですし、そのタスクの子タスクに定義することもできます。

  • ページ終了（EOP）状態は、［ページ］特性を「A＝自動」または「T＝先頭」に設定した［フォーム出力］処理コマンドを実行することでクリアできます。

フォーム出力特性

［フォーム出力］処理コマンドには、以下の特性があります。

フォーム

入出力ファイル

ページ

フローモード

フロー方向

条件


処理コマンド フォーム 出力 ファイル

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > フォーム > フォーム出力 > 入出力ファイル

入出力ファイル

ここには、［入出力ファイル］テーブルの番号を指定します。［入出力ファイル一覧］で表示される番号を指定します。ここで指定した出力ファイルにデータが出力されます。デフォルトは、「1」です。

ここで指定したファイルは、［入出力ファイル］テーブルの［アクセス］カラムの値が［W＝書出］または［A＝追加］になっていなければなりません。フォームがマージ形式の場合には、［アクセス］カラムの値は［W＝書出］のものを指定します。

ここには、上位タスクで定義されているファイルを指定することもできます。

ここでズームすると［入出力ファイル一覧］が表示されますので、ここでファイルを指定します。

新規のファイルを定義したい場合、［タスク環境］の［入出力ファイル］（Ctrl+I）を選択して［入出力ファイル］テーブルを開き、ここで作成してください。


処理コマンド フォーム 出力 ページ

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > フォーム > フォーム出力 > ページ

ページ

この特性は、帳票をプリンタまたは画面に出力する場合に使用します。この特性を使用して、ページ終了（EOP）状態が発生した時の動作を指定できます。マージには関係しません。

ページ終了（EOP）状態は、出力対象のフォームが現在のページの残りのスペースより大きい場合に発生します。ページ終了（EOP）状態の識別にはページサイズ（行数）が使用されますが、このページサイズは論理ページサイズで、プリンタの物理ページサイズとは無関係です。Magic xpaの論理ページサイズとプリンタの物理ページサイズは、［プリンタ］テーブルで関係を指定できます。Magic xpaの論理ページサイズは、次のどちらかの値により計算されます。

  • ［フォーム出力］処理コマンドで指定されている入出力ファイルの［行］カラムの値。

  • ［行］カラムに値が設定されていない時には、［フォーム出力］処理コマンドで指定されている入出力ファイルが出力されるプリンタの［行］カラムの値。

ページ終了（EOP）状態は、次の［フォーム出力］処理コマンドで改ページが実行されるように設定されている場合、そのコマンドでクリアされます。つまり、次の［フォーム出力］処理コマンドの［ページ］特性の値が「A＝自動」または「T＝先頭」の時にクリアされます。

Magic xpaでは、複数の入出力ファイルや出力デバイスに対して同時に出力が可能ですが、この場合、ページ終了（EOP）状態は、入出力ファイルや出力デバイスごとに処理されます。つまり、特定の入出力ファイルでページ終了（EOP）状態が発生した時でも、別の入出力ファイルは通常どおり処理されます。

［ページ］特性に指定できる値は、次の通りです。

  • S＝スキップ …… この設定にしておくと、フォームが出力される前に、現在のページにフォームを出力するスペースが十分あるかどうかがチェックされます。スペースがある場合、フォームが出力されます。スペースがない時には、そのフォームはスキップされ、出力先への書き込みは行われません。その場合、ページ終了（EOP）状態がオンになります。このオンのページ終了（EOP）状態は、EOP関数を使用してチェックできます。

  • A＝自動 …… 現在のフォームを印刷する前に、Magic xpaは、現在のページに印刷可能なスペースがあるかどうかをチェックします。十分なスペースが存在していれば現在のページのフォームを印刷します。十分なスペースがない場合、改ページが実行され、新しいページのフォームを印刷することによって、自動的にEDPを処理します。
    現在のフォームと同じクラスのヘッダフォームがある場合、Magic xpaは最初にヘッダフォームを印刷し、その後、現在のフォームを印刷します。

  • T＝先頭 …… この設定にしておくと、プリンタに対して改ページコードが送られ、その後、フォームデータがプリンタに送られます。この場合、次のページの先頭から印刷が始まります。つまり、強制改ページが実行されます。この処理では、ヘッダがもう一度出力されることはありません。

注意：

ページ終了（EOP）状態が発生した時の処理は、必要に応じて決めます。例えば、ページ終了（EOP）状態が発生した時、強制的に改ページして出力を続けたい時は、［ページ］特性の値を「T＝先頭」にしておきます。

［ページ］特性の値を「S＝スキップ」にした場合、ページ終了（EOP）状態が発生すると、その後の出力は無視されます。その後、ページ終了（EOP）状態がクリアされると、出力が再開されます。

このため、「S＝スキップ」は、特にアプリケーションで出力関連の処理を制御したい場合に指定します。その場合、EOP関数、Line関数を使用して［フォーム出力］処理コマンドの実行を制御します。

デフォルト：A=自動


処理コマンド フォーム 入力

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > フォーム > フォーム入力

フォーム入力

このオプションは、テキストファイルや入力デバイスからデータを読み込み、フォームに定義された項目に設定します。

用途

［フォーム入力］処理コマンドは、以下のような場合に使用します。

  • テキスト形式フォームを使用したデータ入力

注意：

リッチクライアントタスクではサポートされません。

フォーム入力特性

［フォーム入力］処理コマンドには、以下の特性があります。

フォーム

入出力ファイル

区切り方法

区切り文字

フローモード

フロー方向

条件

使用の際の注意事項

  • データ入力プログラムは、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=複区切」が指定された時に有効になります。


処理コマンド 項目変更

ホーム > リファレンスガイド > ロジックエディタ > 処理コマンド > 項目

項目

この処理コマンドは、以下のどちらかを選択します：

  • 変数項目 …… 変数項目は、計算処理や一時的な格納処理のためにユーザ定義関数によって使用します。［モデル］リポジトリに定義した項目モデルを使用したり、項目特性を定義することで、変数項目を定義することができます。

  • パラメータ項目 …… 呼び出されたタスクまたはプログラムから値を受け取るために定義される変数項目


[フォーム]エディタ

ホーム > リファレンスガイド > フォームエディタ

［フォーム］エディタ

［フォーム］エディタには、タスクのフォーム定義情報が含まれています。各エントリはフォームを表しています。先頭のフォームはタスクのメインウィンドウです。

［タスク環境］メニューから［フォーム］をクリックすると［フォーム］エディタが開きます。

プログラムを新規に作成すると、［フォーム］エディタに最初のエントリ（メインフォーム）を自動的に作成します。このエントリは、そのタスク固有のもので、削除したり、別の場所に移動することはできません。また、その前に別のエントリを作成することもできません。

サブタスクを作成すると、親タスクの［フォーム］エディタに定義されたエントリの下にサブタスク用のメインフォームが追加されます。このエントリはサブタスク固有のものでは削除できません。上位タスクの［フォーム］エディタでエントリを追加または削除すると、このエントリの［フォーム］エディタ内の位置が移動します。サブタスクの［フォーム］エディタからは、サブタスクに関する全てのフォームや上位タスクで作成されたエントリにアクセスすることができます。

［クラス］特性が「0」のフォームの場合、［フォーム］エディタは、プログラム階層上における全ての上位タスクのメインウィンドウの上位に表示されます。このため、実行時にどのように表示されるかを確認することができます。

オンラインタスクやリッチクライアントタスクでは、表示フォームはデータ項目を表示したり、エンドユーザによる入力を行うために使用されます。

バッチタスクでは、タスクが実行中であることや、進捗状況などの処理に関する情報を表示するために使用します。また、表示フォームは、バッチタスクの位置付や範囲を設定するなど、エンドユーザが選択するテンプレートとしても役立ちます。

インタラクティブなフォームには、以下のタイプがあります。

  • 表示フォーム

  • フレームフォーム

非インタラクティブなフォームとしては、出力フォーム があります。

［フォーム特性］シート上の特性値によって、指定したフォームの定義を行なうことができます。

フォームエントリをダブルクリックするか、［オプション］メニューから［フォーム表示］（Ctrl+M）をクリックすることで、［フォーム］エディタを開始することができます。

［コントロール］パレットからコントロールを選び、フォーム上にコントロールをドラッグ& ドロップすることで、コントロールをフォームに配置することができます。［コントロール特性］シートに表示された特性値を変更することでコントロールを定義することができます。

参考：

/* ... */ という書式でコメントを定義した場合、［フォーム一覧］の［説明］欄にコメントが表示されます。

関連トピック：

［フォーム］エディタのカラム

タスクのメインフォームに移動するには


[フォーム]エディタ カラム

ホーム > リファレンスガイド > フォームエディタ > フォームエディタのカラム

［フォーム］エディタのカラム

［フォーム］エディタには、以下のカラムがあります。

#（フォームID）

名前

クラス

区分

インタフェースタイプ


[フォーム]エディタ カラム ID

ホーム > リファレンスガイド > フォームエディタ > フォームエディタのカラム > #（フォームID）

#（フォームID）

テーブル内のフォームの位置を表す連番です。番号は自動的に設定され変更することはできません。タスクの最初のフォームは、［クラス］カラムが「0」になり、削除も移動もできません。


[フォーム]エディタ カラム 名前

ホーム > リファレンスガイド > フォームエディタ > フォームエディタのカラム > 名前

名前

フォームの名前を指定します。新規のプログラムやサブタスクを作成すると、そのタスクに対応する［フォーム］エディタのエントリが自動的に作成されますが、その際タスク名が、デフォルトのフォーム名として設定されます。この名前は、後で変更することができます。ただし、タスク名とフォーム名が同じデフォルト状態の場合、［タスク特性］で［タスク名］を変更すると、自動的にフォーム名に反映されます。

［フォーム］エディタ上で開発者が後から追加したエントリには、手動で名前を設定する必要があります。この名前は［クラス］が「0」のフォームの場合、表示ウィンドウのタイトルバーとして表示されます。

［名前］カラムからズームすると、［フォーム］エディタが起動され、フォームが編集できるようになります。フォームがブラウザフォームやマージフォームの場合、［動作環境］ダイアログの［アプリケーションサーバ］タブの［Webオーサリングツール］に設定されている外部エディタが起動されます。


[フォーム]エディタ カラム クラス

ホーム > リファレンスガイド > フォームエディタ > フォームエディタのカラム > クラス

クラス

Magic xpaは、タスクのメインフォームとして［クラス］が「0」のフォームを自動的に割り当てます。開発者は、メインフォーム以外にも［クラス］が「0」のフォームを定義することができます。このフォームは、ユーザとの対話用のフォームです。

［クラス］が「0」より大きいフォームを定義することもできます。このフォームは、帳票や入出力データのレイアウトを定義したりマージ用のテンプレートの割り当てに使用されます。

１つのタスクで２種類の帳票を出力するようにしたい場合は、［クラス］が「1」のフォームを最初の帳票用として定義し、［クラス］が「2」のフォームを２番目の帳票用に定義します。

1つの帳票にヘッダやフッタ、明細を関連させるかどうかや、最後のページまで１つのフォームで出力するかどうかは、［クラス］を指定する上であまり重要ではありません。

クラス値が1以上の［フォーム］エディタのエントリからズームすると、同一のクラス値を持つ全てのフォームが表示されます。帳票フォームの場合は、ページヘッダ、ヘッダ、明細、フッタ、ページフッタの各フォームが存在する時、全てが同時に表示されます。

この時、同じクラス値（クラス値＞0）のグループのフォームに対し、［寸法単位］、［垂直精度］、［水平精度］の特性が自動的に調整され、同じ値になります。解像度については、同じクラスのいずれかのフォームで定義されている最高の解像度に統一されます。

参考：

［クラス］の値を変更するとフォーム上のコントロールが削除される場合があります。


[フォーム]エディタ カラム 区分

ホーム > リファレンスガイド > フォームエディタ > フォームエディタのカラム > 区分

区分

［クラス］が「0」（対話型ウィンドウ）のフォームの場合、［区分］カラムは無効になります。帳票出力用のフォームに対して［区分］カラムは、以下のように設定できます。

  • D=詳細（デフォルト）

  • H=ヘッダ …… ヘッダは、見出しを出力する場合に使用されます。同じクラスの新しいページが出力され場合、その後に出力される２番目以降のページの見出しとして自動的に出力されます。［ヘッダ］フォームは、最初のページに対して出力されません。従って、最初のページ対して手動で出力させる必要があります。［タスク前］ロジックユニットは、プログラムが起動される際に1回だけ実行する処理を定義します。従って、［タスク前］ロジックユニットに、［ヘッダ］フォームを出力するためのフォーム出力処理コマンドを追加することで対応できます。

  • F=フッタ …… フッタは、帳票の概要出力用に使用されます。

  • P=ページヘッダ …… ページヘッダは、テキストのメインボディから分離され、出力されたるページの先頭に表示されます。

  • G=ページフッタ …… ページフッタは、ロゴなどの会社情報を出力する場合に使用されます。

対話用のウィンドウはクラスが「0」のフォームのため、［区分］特性は無効になります。マージ形式やフレームセット形式のフォームも無効になります。

［フォーム］エディタにおける、ヘッダ、明細、フッタの各フォームエントリは、配置の仕方が重要になります。ヘッダフォームの次のエントリには、（対応するフッタが存在する場合には）必ずそのフッタフォームがなくてはなりません。全てのヘッダとフッタの対は、明細行よりも先に配置してください。ヘッダとフッタの対は、そのネスト構造の外側から順に配置されなければなりません。明細フォームは、最も内側にあるヘッダとフッタの対のフォームエントリの後ろに配置します。明細フォームは、レポートに表示される順に配置しなければなりません。フォームを編集する場合は、これらのフォームはネストしたヘッダ、明細、フッタの順で入れ子形式に表示され、実際の帳票に出力される順序に並びます。

参考：

  • フッターフォームは帳票用のフッタで、帳票の最後のページに1回プリントされるものです。従って、［タスク後］ロジックユニットから出力するようにします（プログラム終了時に、一度だけ実行されます)。

  • ページヘッダとページフッタは、ページ内容を問わずどのようなページに対しても出力することができます。従って、［ページヘッダ］と［ページフッタ］フォームは、［入出力特性］で定義します。このようにして、Magic xpaは常に出力されたページにこれらのフォームを含むことになります。


[フォーム]エディタ カラム インタフェースタイプ

ホーム > リファレンスガイド > フォームエディタ > フォームエディタのカラム > インタフェースタイプ

インタフェースタイプ

以下のテーブルのように、タスクタイプ毎に選択できるインタフェースタイプが変わります。

クラス | インタフェースタイプ | 目的
0 | B=ブラウザ | ブラウザクライアントタスク（利用できません）
 | G=GUI表示形式 | オンラインタスク
 | C=リッチクライアント表示形式 | リッチクライアントタスク
 | A=リッチクライアントフレーム形式 | リッチクライアントフォームを複数のフレームに分割して、複雑な表示を実現させます。
 | M=GUIフレーム形式 | GUI表示フォームを複数のフレームに分割して、複雑な表示を実現させます。メインプログラム以外で定義可能です。
> 0 | G=GUI出力形式 | 帳票作成用
 | T=テキスト形式 | テキスト出力用
 | F=フレームセット形式 | ブラウザウィンドウを複数のフレームに分割することで、複雑なインターネットドキュメントを作成します。
 | M=マージ形式 | Magicタスクのデータをテンプレートファイルとマージさせて動的なドキュメントを作成します。

［クラス］が「0」より大きいフォームでは、既存のフォームの［インタフェースタイプ］を変更すると、現在の表示に上書きするかどうかを尋ねる、「変更しますか？」というダイアログが表示されます。ここでEnterキーを押下すると、変換が実行され、互換性がないコントロールが削除されます。

表示フォーム は、［インタフェースタイプ］が、「GUI表示形式」か「リッチクライアント形式」のフォームです。

出力フォーム は、［インタフェースタイプ］が、「テキスト形式」か「GUI出力形式」、「フレームセット形式」、「マージ形式」のフォームです。


[フォーム]エディタ フォームの操作 コントロールロジック

ホーム > リファレンスガイド > フォームエディタ > コントロールロジックの操作

コントロールロジックの操作

［フォーム］エディタからコントロールに対応するロジックユニットを直接作成することができます。

［フォーム］エディタ内で、ロジックをサポートするコントロールを右クリックします。コンテキストメニューから［ロジック］を選択すると、［事前定義ロジック］テーブルに定義されたロジックユニットが表示されます。作成したいロジックユニットを選択すると、（タスクレベルやレコードレベルを除き）選択したコントロールに対するロジックユニットが作成され、［ロジック］エディタに表示が切り替わります。

［ロジック］エディタにコントロールに対応するロジックユニットが作成されると、そのコントロール上で表示されるコンテキストメニューの［ロジック］オプションには、作成されたロジックユニットが表示されます。

コンテキストメニューから作成済みのロジックユニットを選択すると、［ロジック］エディタ内の該当するロジックユニットに表示が切り替わります。

注意：

［コントロール名］特性が設定されていないコントロールの場合、このメニューは無効になります。


[フォーム]エディタ フォームの操作 フォームテンプレート

ホーム > リファレンスガイド > フォームエディタ > フォームテンプレート

フォームテンプレート

現在のフォームレイアウトは、テンプレートとしてファイルに保存できます。デフォルトのファイル拡張子はMFT（Magic Form Template）です。テンプレートには、以下のものを除き、全てのコントロールとコントロール特性が格納されます。

  • コントロール名

  • ［式］特性の内容

  • ［データ］特性の内容

  • ［ヘルプ画面］特性と［自動ヘルプ］特性の内容

  • ［選択プログラム］特性の内容

上記の特性は、テンプレートファイルを読み込むと、空白になります。

テンプレートファイルを既存のフォームに読み込むと、テンプレートファイルによってフォームの全ての設定が上書きされるため、フォーム上の全てのコントロールが削除されます。

フォームテンプレートはGUI形式とリッチクライアント形式のフォームで有効です。

フォームをテンプレートとして保存する

  1. テンプレートとして保存したいフォームを開きます。

  2. ［オプション］メニューの［テンプレートの作成］を選択します。

  3. ［ファイル］ダイアログが開いたら、ファイル名を入力します。デフォルト拡張子は、.mftです。

  4. ［保存］をクリックします。

テンプレートフォームを使用する

  1. テンプレートを追加したいフォームを開きます。

  2. ［オプション］メニューの［テンプレートの読込］を選択します。

  3. ［ファイル］ダイアログが開いたら、使用したいテンプレートを選択します。

  4. ［開く］をクリックします。

テンプレートがフォームに読み込まれます。全てのコントロールは、元のフォームと同じように配置されます。配置されたコントロールに、タスクに定義された項目を割り付ける必要があります。

注意：

フォームを標準化する別の方法として、フォームとコントロールのモデルを使用することがあります。これらはただ、似たようなフォームを作成することを可能にするだけでなく、標準フォームを変更することで、既存のフォームやコントロールを自動的に変換してくれるようになります。


表示フォーム フォームパレット

ホーム > リファレンスガイド > フォームエディタ > フォームパレット

フォームパレット

［フォーム］パレットには、配置するコントロールを選択したり、コントロールの書式を指定するためのアイコンが配置されています。

Magic xpaには以下のパレットがあります。

［コントロール］パレット | フォーム上に配置するコントロールが選択できます。指定したフォームのタイプに基づいたコントロールのアイコンが表示されています。コントロールをフォームに配置する操作は「ドラッグ＆ドロップ」ではなく「クリック＆プレイス」になります。
［コマンド］パレット | フォームの編集コマンドを選択できます。フォーム上のコントロールを整列したり、サイズを変更したり、親子リンクを設定したり、グループを設定したりすることができます。
［色］パレット | コントロールに指定する色を選択できます。各色は、ボタンで表示されています。
［項目］パレット | ここには、現在のタスクとその上位タスクで定義された利用可能なデータ項目が一覧表示されています。各エントリには、項目の識別番号と項目名、その項目が実項目か変数またはパラメータかを表示しています。


表示フォーム コマンドパレット

ホーム > リファレンスガイド > フォームエディタ > フォームパレット > コマンドパレット

コマンドパレット

［コマンド］パレットや［描画］メニュー、またはコンテキストメニューを使用して、フォームに配置したコントロールを編集することができます。［コマンド］パレットには、整列、サイズ変更、コントロールのZオーダ変更のためのツールが含まれています。

［GUIコマンド］パレットのアイコンをクリックすると簡単な説明が表示されます。

［描画］メニュー内の［リンク］サブメニューには、［テーブルへのリンク調整］オプションがあります。これは、テーブルに項目をリンクした場合の「親子リンクの作成」の動作を定義することができます。このオプションを有効にすると、項目は移動しテーブル内に配置されます。無効にすると、項目は現在の位置に留まります。（ただし、テーブルにリンクされた状態になります。）

［テーブルへの配置］オプションは、選択されたフォームに配置済みのコントロールを［テーブル］コントロールにリンクします。リンクされたテーブルは、［テーブル］コントロールに配置されます。この動作は、コントロールを選択し、［テーブルへのリンク調整］オプションが有効な状態で［テーブル］コントロールに対して「親子リンクの作成」を行うことと同じになります。

テーブルに大きなコントロールを配置したい場合、この機能は役に立ちます。直接コントロールをテーブルに配置した場合、コントロールのサイズを変更することは難しいかもしれません。したがって、最初にコントロールをフォームに配置し、コントロールのサイズを修正します、そして、［テーブルへの配置］を使用してコントロールを配置します。

この方法は、コントロールを選択し、［テーブル］コントロールと親子リンクを定義する方法と同じです。

注意：

取り消しバッファに保存される操作の最大数は10です。

特性の編集の間に式が削除された場合、取り消されたコントロールは使用不可になり、バッファは消去されます。

関連トピック：

基本色パレット

すべてのコントロールのTAB順序表示するには

フォームエディタの修正内容を取り消すには

複数のコントロールの幅や高さを同じにするには

タブコントロールの異なるタブにコントロールを関連付けるには


表示フォーム 基本色パレット

ホーム > リファレンスガイド > フォームエディタ > フォームパレット > 基本色パレット

基本色パレット

［基本色］パレットは［コマンド］パレットと同じ領域を共有しています。2つのパレットを切り替えるには、パレットの下部にあるタブをクリックします。

パレットには、［アプリケーション用基本色］定義ファイルに定義された色の一部が一覧で表示されます。どの色も［色］ボタンで確認できます。［色］ボタンをクリックすると、選択したコントロールにその色が設定されます。

テキストやコントロールの背景の色を変更するには、フォームコントロールを選択して希望する色の組み合わせをクリックします。

注意：

［基本色］テーブルにて背景色を透過指定した場合、［フォーム］エディタ上の色パレットでは黒の背景色で表示されます。


表示フォーム 項目パレット

ホーム > リファレンスガイド > フォームエディタ > フォームパレット > 項目パレット

項目パレット

［項目］パレットは、［コントロール］パレットと同じ領域を共有します。2つのパレットを切り替えるには、パレットの下部にあるタブをクリックします。

現在のタスクおよび上位タスクに定義されている項目が一覧表示されます。一覧内の各エントリは、データ項目ID（文字）、カラム名、実項目、変数、パラメータを表示します。

タスクの境界には、タスク名を含むセパレータが表示されます。

コントロールと同じように、項目をクリックして選択し、フォームにドロップできます。項目を［テーブル］コントロールへドロップした場合、項目名がカラムのタイトルとして設定されます。

この時項目名の［エディット］コントロールが一緒にドロップされます。項目の選択をキャンセルするには、Escキーを押します。

［項目］パレットの端をドラッグすることで、サイズを自由に調整できます。変更されたパレットのサイズは保持されます。項目番号のカラムサイズは変わりません、またオリジナルのサイズより小さくできません。［項目］パレットサイズを変更してもコントロールパレット自体に影響を与えません。［コントロール］パレットの表示は左上に接した状態で変更されません。


[フォーム]エディタ フォームの操作 描画メニュー

ホーム > リファレンスガイド > フォームエディタ > 描画メニュー

描画メニュー

［フォーム］エディタを開くと、［描画］メニューにアクセスすることができます。ここには、以下のオプションが含まれています。これらのオプションの多くは、コマンドパレットでもアクセス可能です。

オプション

内容

整列

以下のオプションの使用して、コントロールの位置を合わせることができます。

  • 選択左寄せ

  • 選択右寄せ

  • 選択上寄せ

  • 選択下寄せ

  • 選択水平センタリング

  • 選択垂直センタリング

センタリング

水平または垂直方向にフォームの中央にコントロールを寄せることができます。

均等揃え

水平または垂直方向に均等間隔でコントロールを配置することができます。

サイズ

表示される様々なオプションを使用することで、コントロールのサイズを変更することができます。

順序

コントロールの順番を表示したり変更することができます。選択したコントロールを最前面や最背面、一つ後ろや前に移動させることができます。また、以下のオプションを使用することもできます。

  • 自動Zオーダ …… 自動的にZオーダを定義するように指定します。コントロールのZオーダも参照してください。

  • Zオーダ表示 …… 現在のZオーダを表示します。

  • 自動TAB順序 …… 現在のフォーム上のすべてのコントロールに対して自動的にTAB IDを割り当てるように指定します。このオプションは、コントロール間のTAB順序を指定することになります。TABの順序も参照してください。

  • TAB順序表示 …… 現在のTAB順序を表示します。

関連トピック： コントロールを他のコントロールより前面に表示させるには

リンク

ここには、以下のオプションが含まれています。

  • テーブルへのリンク調整 …… ［テーブル］コントロールに他のコントロールを親子リンクする場合の、コントロール動作を指定します。
    オンに設定されている場合、項目は移動し［テーブル］コントロールのカラムとして配置されます。オフに設定されている場合、項目は、現在の位置に留まった状態で、［テーブル］コントロールとリンクされます。［テーブル］コントロールの［スタイル］特性が｢Windows｣の場合は、この設定内容にかかわらず、リンクされたコントロールはカラムとして配置されます。

  • テーブルへの配置 …… フォーム上に配置済みのコントロールを、［テーブル］コントロールのカラムとしてリンクします。
    ［テーブル］コントロールに追加したい大きなコントロールを持っている場合に、このオプションは有効です。コントロールを直接［テーブル］コントロールに配置した場合、配置後にコントロールのサイズを変更することは面倒です。従って、最初にコントロールをフォーム上に配置し、コントロールのサイズを編集してから、このオプションを使用して［テーブル］コントロール」にリンクした方が簡単になります。
    このオプションは、［テーブルへのリンク調整］がオンの状態でコントロールをリンクした場合と同じ動作になります。

  • 親子リンク作成 …… コントロール間の親子リンクを定義します。

  • 親子リンクを解除 …… コントロール間の親子リンクを解除します。

  • 親の表示 …… 現在のコントロールがどのコントロールにリンクされているかを表示します。

注意：

次のコントロールは［テーブル］コントロールにリンクできません。

  • .NET

  • ブラウザ

  • リストボックス

  • ラジオボタン

  • タブ

コントロール追加

任意のコントロールをフォームに配置することができます。

コントロールツリー

フォーム上に配置されたコントロールの階層構造を表示します。

描画の終了(F8)

フォームの編集処理を終了し、［タスク］エディタに戻ります。


フォーム

オンラインタスクやでリッチクライアントタスクでは、フォームはデータビューを表示して、エンドユーザの操作を可能にするために使用されます。

フォームの［クラス］特性を「0」に設定することで、インタラクティブなGUI表示で使用することができます。［クラス］特性が「0」に設定されるフォームは、［フォーム］エディタにおいて、プログラムの階層におけるすべての上位タスクのメインウィンドウの次に表示されますこれは、実行時にどのように表示されるかを示しています。

バッチタスクでは、フォームはフィードバック情報（例えばタスクが実行中であること示す）を表示するために使用することができます。これは、エンドユーザ用のオプション（例えばバッチ処理の位置付けや範囲指定の設定）のテンプレートとして使用することもできます。

［クラス］特性が「0」より大きい場合、同じクラスの［フォーム］エディタ上のフォームは、一緒に表示されます。フォームの以下の［フォーム特性］を変更した場合、Magic xpaは同じクラスの他のフォームの全ての特性値を変更内容に合わせて変更します。

  • 寸法単位

  • 垂直精度

  • 水平精度

  • グリッド間隔(X)

  • グリッド間隔(Y)

  • フォント

Magic xpaは、クラス＞0の場合のみテキスト形式のフォームをサポートします。テキスト形式のフォームに適用されない特性は、利用できません。

関連トピック：

表示フォームとコントロール

出力フォームとコントロール

フレームフォームとコントロール


表示フォームとコントロール

オンラインタスクやでリッチクライアントタスクでは、フォームはデータビューを表示して、エンドユーザの操作を可能にするために使用されます。

関連トピック：

表示フォーム

表示コントロール

TABの順序

コントロールの親子リンク

MDIとSDI


表示フォーム

［フォーム特性］シートでフォームの外観と動作を指定します。［編集/特性］を選択するか、［フォーム］エディタ内のエントリにカーソルを合わせてAlt+Enterキーを押下して、［フォーム特性］シートにアクセスします。

表示フォームの特性は、以下のセクション毎に分けられています。

モデル

詳細

SDI

入力

表示

モバイル

位置とサイズ


表示フォーム 特性 モデル

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示フォーム > モデル

モデル

継承が解除されている特性の継承をし直したり、モデルの全ての特性の継承を解除することができます。さらに、別のモデルを選択することもできます。

他のモデルを選択する場合にクリックします。

デフォルトモデルの特性を表示する場合にクリックします。

モデル特性の継承を解除する場合にクリックします。

モデル特性を継承する場合にクリックします。


表示フォーム 特性 詳細

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示フォーム > 詳細

詳細

表示フォーム特性の［詳細］セクションには以下の特性があります。

特性

内容

モバイル

ウィンドウタイプ

ウィンドウのタイプを設定します。この設定は、ウィンドウの外観や動作に影響します。

Android

iOS

ウィンドウリストに表示

タスクが［ウィンドウ一覧］に表示されるかどうか、そして、それがナビゲーションイベントでアクセスできるようにするかどうかを指定します。

この特性は、オンラインタスクのみ有効です。

サポートバージョン：

2.3

寸法単位

フォームの寸法単位を指定します。寸法単位に基づいてフォームのサイズと位置が決定されます。また、フォームの解像度も決定されます。以下のオプションがあります。

  • D=ダイアログ（文字） …… フォームの現在のフォントのサイズです。

  • C=センチメートル

  • I=インチ

異なる解像度の画面を使用する場合、同じ比率でフォームを維持する場合は、「ダイアログ」を使用してください。ダイアログ単位でより高精細に定義するには、［垂直精度］と［水平精度］の各特性を使用してください。

モバイル仕様：

モバイル用デバイスで「ダイアログ」を使用した場合、位置とサイズの計算はデフォルトフォントを基準（7×13ポイント)に行われます。

Android

iOS

垂直精度

各単位内の垂直解像度を指定します。値が高いほど細かい解像度が得られます。

水平精度

各単位内の水平解像度を指定します。値が高いほど細かい解像度が得られます。

グリッド表示

［フォーム］エディタにグリッドを表示するかどうかを指定します。

  • Yes …… フォームのレイアウトにグリッドが表示されます。

  • No …… フォームのレイアウトにグリッドが表示されません。

グリッド間隔（X）

グリッド間隔（Y）

フォームのグリッド間の距離を指定します。

フォーム名

［フォーム］エディタの［名前］カラムの値であり、フォームのタイトルバーに表示されます。実行時に評価されるフォームのタイトルを表す式を選択することもできます。

関連トピック：

ウィンドウタイトルを動的に表示させるには

動的にウィンドウタイトルを設定するには

Android

iOS

フォーム状態の維持

フォームが状態を維持するかどうかを指定します。FormStateClear関数のトピックを参照してください。

  • Yes …… フォーム毎に状態を保存します。

  • No …… フォームの状態は保存されません。

関連トピック： エンドユーザがカスタマイズしたフォーム状態を保持するには

コンテキストメニュー

［メニュー一覧］からメニューを選択することで、フォーム用のコンテキストメニューを指定することができます。式で指定することで、実行時に動的にメニュー番号を指定することができます。

関連トピック： フォームのコントロールにデフォルトのコンテキストメニューを設定するには

Android

iOS

ドロップ許可

同一Magicアプリケーションの他のコントロールや、同一PC上の他のMagic xpa以外のアプリケーションからフォームに対してデータのドロップを可能にします。フォーム上にドロップすると、ドロップイベントがトリガされます。

この特性を式で定義した場合、タスクが起動された時点で評価されます。


表示フォーム 特性 詳細 ウィンドウタイプ

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示フォーム > 詳細 > ウィンドウタイプ

ウィンドウタイプ （デフォルト：D=デフォルト）

ウィンドウのタイプを設定します。この設定は、ウィンドウの外観や動作に影響します。

設定可能な値は以下の通りです。

値

オプション

1

D=デフォルト …… （以下のように動作します）

  • MDI子ウィンドウ …… フォームがMDIコンテナまたは他のMDIの子ウィンドウから直接オープンされた場合、このタイプで開きます。。MDI子ウィンドウは、MDIフレームより大きくはできません。これらのフォームは実行時にサイズが調整されます。

  • フローティングウィンドウ …… フォームがフローティングウィンドウからオープンされた場合、このタイプで開きます。

  • モーダルウィンドウ …… フォームがモーダルウィンドウ（または、アプリケーションモーダル）からオープンされた場合、このタイプで開きます。

  • 子ウィンドウの［ウィンドウタイプ］ウィンドウタイプに依存 …… フォームが子ウィンドウからオープンされた場合、このタイプで開きます。

  • MDI子ウィンドウ …… 並行プログラムが実行され、MDIフレームがオープンされた場合、このタイプで開きます。

  • フローティングウィンドウ ……並行プログラムが起動され、MDIフレームがオープンされなかった場合、このタイプで開きます。

このオプションは、リッチクライアントタスクではサポートされません。

2

S=SDI …… ウィンドウは、新しいコンテキスト内で新しいSDIウィンドウとしてオープンされます。「SDIサポート」を参照してください。

3

C=子ウィンドウ …… 子ウィンドウとしてオープンされます。リッチクライアントタスクの場合、子ウィンドウはサブフォームまたはフレームの中でのみ動かすことができます。子ウィンドウはモーダルにはできません。たとえモーダルに設定されていたり、その親タスクがモーダルであっても、Magic xpaはモーダレスとして子ウィンドウを開きます。

4

(分割子ウィン) Ver2.xではサポートされなくなりました。

5

F=フローティング …… フォームが、フローティングウィンドウとしてオープンされます。このウィンドウは、Magic xpaのメインウィンドウの外に移動することができます。フローティングウィンドウからデフォルトウィンドウをオープンした場合、フローティングでオープンされます。

6

M=モーダル …… フォームが、モーダルウィンドウとしてオープンされます。このウィンドウを閉じない限り他のウィンドウにフォーカスを移すことができません。モーダルウィンドウからデフォルトウィンドウやフローティングウィンドウをオープンした場合、モーダルでオープンされます。モーダルウィンドウタスクは、タスク終了後にウィンドウを開いたままにしておく（［ウィンドウ消去］特性を「No」）ことができません。モーダルタスクのウィンドウは、（［ウィンドウを閉じる］特性を無視し、常に「Yes」が設定されているように動作します。

  • オンラインタスクの場合 …… 並行起動タスクは停止します。

  • リッチクライアントタスクの場合 …… 並行起動タスクは停止しません。

モーダルタスクウィンドウは、タスクの［ウィンドウ消去］特性を無視し、常に「Yes」として動作します。

ウィンドウタイプに関係なく、モーダルウィンドウから呼び出された場合は、モーダルウィンドウとしてオープンされます。

リッチクライアントタスクの場合、親がモーダルウィンドウの場合、モーダルになり、コンテキスト内の上位タスクも同じです。

7

(アプリケーションモーダル) Ver2.xではサポートされなくなりました。

8

T=ツール …… ウィンドウはツールウィンドウとしてオープンされます。ツールウィンドウの主な特徴は、タイトルバーにアイコンが表示されません。

9

I=MDI調整 …… タスクのウィンドウをMagic xpaのMDI に合わせて表示します。この特性によって、フォームを最大表示させた時と同じサイズになります。

この特性を式で指定した場合、フォームがオープンされた時点で1回だけ評価されます。

このオプションを指定した場合、［最大化ボタン］と［最小化ボタン］の各特性は自動的に「No」になります。また、［開始時の位置］特性は、無効になります。

10

MDI子ウィンドウ …… ［リッチクライアント］フォームのみ利用できます。ウィンドウは、MDIの子ウィンドウとして開きます。MDI子ウィンドウのフォームは、MDIフレームより大きくできません。これらのフォームは、実行中にサイズを変更することができます。

MDIフレーム…… メインプログラムでのみ有効です。GUI表示またはリッチクライアント表示の各フォームに自動的に反映されます。

非インタラクティブタスクは、MDI子タスクを呼び出すことができません。非インタラクティブなリッチクライアントタスクがMDI子ウィンドウまたはMDI調整ウィンドウタイプが定義されたプログラム/タスクを呼び出した場合、このウィンドウタイプは無視されます、そして、呼び出されたプログラム/タスクはモーダルとしてウィンドウをオープンします。

モバイル仕様：

「MDIフレーム」はサポートされません。

この特性は、式で指定することもできます。式の場合は、数値が返る式を指定します。式は、フォームがオープンされる時点で評価されます。式の戻り値の内容に基づいてウィンドウタイプが決定されます。値が、上記に該当しない場合、「デフォルト（1）」として評価されます。

注意：

  • オンラインタスクの場合、「D=デフォルト」がデフォルトのタイプです。

  • リッチクライアントタスクの場合、「M=モーダル」がデフォルトのタイプです。

ウィンドウタイプの矛盾

ウィンドウが、オープンされるコンテキストに対して適切ではないウィンドウタイプが設定されている場合、「デフォルト」と評価されます。

以下のような場合、矛盾が発生します。

  • フローティングウィンドウが、モーダルウィンドウからオープンされた場合 …… モーダルウィンドウとしてオープンされます。

  • MDIコンテナから「子ウィンドウ」に指定されたウィンドウが直接オープンされた場合 …… デフォルトウィンドウとして表示されます。

  • SDIが並行実行の指定がないタスクでオープンされた場合 …… デフォルトウィンドウとして表示されます。

  • プログラムは、［選択プログラム］特性を使用してオープンされた場合 …… ウィンドウは、モーダルウィンドウとしてオープンされます（オンラインタスクの場合）。

  • MDI調整ウィンドウの場合 …… MDI調整ウィンドウタイプが定義されたプログラムがSDIウィンドウタイプで定義された別のプログラムから呼び出される場合、MDI調整プログラムはアプリケーションMDI（SDIプログラム内ではなく)内でオープンされます。

  • SDIプログラムは、非SDIの並行実行プログラムを呼び出すことができません …… このタイプのプログラムがSDIプログラムから呼び出される場合、新しいSDIプログラムとして実行されます。さらに、非インタラクティブなタスクからMDI子タスクを呼び出すこともできません。

モバイルの仕様

モバイル環境の場合、「MDIフレーム」はサポートされず表示されません。

Android

  • 「フローティング」は、ポップアップウィンドウとして開きます。

  • 他のウィンドウタイプは、フルスクリーンで表示されます。

iOS

  • 全てのウィンドウタイプは、フルスクリーンで表示されます。

注意：

  • ［フォーム］エディタは、ウィンドウタイプによって表示を変えることはありません。

  • GUI表示フォームと同じようにリッチクライアントフォームもそれ自身のコンテキストが必要です。2つのSDIウィンドウは同じコンテキスト内で共存することはできません。

  • リッチクライアントフォームは、「モーダル」を除きタスクバーが表示されるため、各タスクをクリックすることが可能になります。

  • 特性は、式をサポートします。式の戻り値は、数値型にしてください。フォームがオープンされる場合のみ、ウィンドウタイプの式が計算されます。ウィンドウタイプは、式によって返される数値によって決定されます。式の戻り値がウィンドウタイプとして該当しない値の場合、「デフォルト」としてオープンされます。


表示フォーム 特性 詳細 ウィンドウメニューに表示

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示フォーム > 詳細 > ウィンドウ一覧に表示

ウィンドウ一覧に表示

この特性によって、タスクが［ウィンドウ一覧］に表示させるかどうか、操作イベントでアクセスできるかどうかを指定します。

この特性は、GUI表示形式のフォームのみ有効です。また、［ウィンドウタイプ］特性が「デフォルト」、「SDI」、「フローティング」、「ツ－ル」または、「ＭＤＩ調整」の場合のみ有効です。

式が指定された場合、タスクが最初に読み込まれた時点で評価されます。

フォーム名が、ウィンドウ用に表示されます。

注意：

この特性は、タスクがサブフォームとして実行している場合は、無効になります。

サポートバージョン：

2.3

関連トピック：

ウィンドウの一覧


表示フォーム 特性 SDI

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示フォーム > SDI

SDI

［SDI］セクションは、SDIウィンドウとして表示される場合のみ有効です。これ以外の場合、［ウィンドウタイプ］特性の「SDI」の設定に基づいて表示されます。

［SDI］セクションには以下の特性があります。

特性

内容

プルダウンメニュー

SDIウィンドウが表示された場合に、表示されるメニューを指定することができます。

メニュー表示

SDIウィンドウを表示する際、プルダウンメニューを表示するかどうかを指定します。以下のオプションが指定可能です。

  • Yes …… ［プルダウンメニュー］特性に有効なメニュー番号が設定されている場合、SDIコンテナにプルダウンメニューが表示されます。

  • No …… プルダウンメニューは表示されません。

  • 式 …… 論理値が返る式を指定します。式はタスクが最初に起動された時点でのみ評価され、再計算されません。

ツールバー表示

SDIウィンドウを表示する際、ツールバーを表示するかどうかを指定します。以下のオプションが指定可能です。

  • Yes …… ［プルダウンメニュー］特性に有効なメニュー番号が設定されている場合、SDIコンテナにツールバーが表示されます。

  • No …… ツールバーは表示されません。

  • 式 …… 論理値が返る式を指定します。式はタスクが最初に起動された時点でのみ評価され、再計算されません。

ステータスバー表示

SDIウィンドウを表示する際、ツールバーを表示するかどうかを指定します。以下のオプションが指定可能です。

  • Yes …… SDIコンテナにステータスバーが表示されます。

  • No …… ステータスバーは表示されません。この場合、メッセージは表示されず、ログファイルやフローにのみ出力されます。

  • 式 …… 論理値が返る式を指定します。式はタスクが最初に起動された時点でのみ評価され、再計算されません。

注意：

リッチクライアントのフォームでは、ステータスバーが表示されている場合は常に、最近のネットワークの動作状況に関する情報を表示させることができます。ステータスバーの適切な領域でマウスポインタを置くと、この機能が利用できます。プログラムが開発環境から実行された場合は、このオプションは常に有効です。

プログラムが実行環境で実行している場合は、アプリケーションを起動するために使用されるHTMLファイルでDisplayStatisticInformation=Yを指定することで、この機能を有効にすることができます。

開始モード

SDI（またはMDI）ウィンドウを最初にどのようにオープンするかを指定します。以下のオプションが指定可能です。

  • D=デフォルト（1） …… SDIウィンドウのデフォルトです。ウィンドウはフォームの［高さ］，［幅］、［X］、［Y］の各特性に基づいて表示されます。

  • X=最大（2） …… MDIウィンドウのデフォルトです。ウィンドウは最大表示されます。フォームの［高さ］，［幅］、［X］、［Y］および［開始時の位置］の各特性は、無視されます。

  • N=最小（3） …… ウィンドウは最小表示されます。フォームの［高さ］，［幅］、［X］、［Y］および［開始時の位置］の各特性は、無視されます。

［式］で定義する場合は、数値で指定します。


表示フォーム 特性 入力

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示フォーム > 入力

入力

表示フォーム特性の［入力］セクションには以下の特性があります。

特性

内容

モバイル

タイトルバー

GUIフォームにタイトルバーを表示するかどうかを指定します。タイトルバーがないと、エンドユーザはフォームを移動できません。また、［最小化］ボタンや［最大化］ボタンを表示できません。タイトルバーは、式を定義して指定することもできます。

［サブフォーム］コントロール上のタスクの場合、無効になります。

注意：

この特性が「No」に設定された場合、手動でフォームのサイズを変更することができなくなります。

関連トピック： ウィンドウタイトルを表示させないようにするには

Android

iOS

システムメニュー

GUIフォームのタイトルバーの左側に［システムメニュー］ボタンを配置するかどうかを指定します。このボタンをクリックすると、Windowsの［システムメニュー］が表示されます。

［サブフォーム］コントロール上のタスクの場合、無効になります。

モバイル仕様：

iOSの場合、「戻る」と［X］ボタンがナビゲーションビューに表示されます。

iOS

最小化ボタン

GUIフォームの右上隅に［最小化］ボタンを配置するかどうかを指定します。

［サブフォーム］コントロール上のタスクの場合、無効になります。

最大化ボタン

GUIフォームの右上隅に［最大化］ボタンを配置するかどうかを指定します。

［サブフォーム］コントロール上のタスクの場合、無効になります。

パレット最適化

多くのグラフィックイメージを含むフォームでは、各イメージに異なるカラーパレットが使用されていることがあり、それらのカラーパレットの組み合わせによってフォーム内で適合しない解像度が生じることがあります。そのような場合、［パレット最適化］を「Yes」に設定して、選択したグラフィックイメージに標準色を与えるパレットが使用されるようにすることができます。

注意：

オンラインフォームのみサポートします。

デフォルトボタン

フォームに配置された［プッシュボタン］コントロールの１つをデフォルトボタンとして定義します。


表示フォーム 特性 入力 デフォルトボタン

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示フォーム > 入力 > デフォルトボタン

デフォルトボタン

複数の［プッシュボタン］コントロールが配置されているフォームにおいて、ユーザがEnterキーを押下した場合、［OK］や［次へ］または［終了］などのような特定の１つのボタンに割り当てられたイベントを実行するような機能を持たせると便利な場合があります。

例えば、フォームがウィザード用に設計されている場合、Enterキーが押されたら、［次へ］のボタンを押下した場合と同じ動作になるようにした方がいいかもしれません。

この特性は、フォーム上に配置されたプッシュボタンのどれかを割り当てることで、上記の機能を持つデフォルトボタンとして使用することができます。式で指定することで、実行時に動的にコントロール名を指定することもできます。

デフォルトボタンと評価されたプッシュボタンは、周囲が1ピクセルの幅の黒い境界線で強調表示されます。

例外

［デフォルトボタン］特性の機能には以下のような制限があります。

  • エンドユーザが、［RTFエディット］コントロールか複数行編集の［エディット］コントロールでデータ入力中に、Enterキーを押下した場合は、無効になります。

  • ［デフォルトボタン］特性に設定されたコントロール名が存在しないか、［プッシュボタン］コントロールでない場合は、無効になります。

  • ［デフォルトボタン］特性に設定されたコントロール名がフォーム上に複数存在する場合、Zオーダで上位に定義されているコントロールが有効になります。

  • ［タスク特性］で［選択テーブル］特性が「Yes」と評価された場合、［デフォルトボタン］特性が優先されます。

  • 該当するプッシュボタンの［可視］特性や［有効］特性が「No」と評価された場合は、［デフォルトボタン］特性は無視されます。

注意：

テーブル選択プログラムに配置したプッシュボタンに［選択］イベントを割り当て、このボタンをデフォルトプッシュボタンに指定しても動作は変わりません。ただし、このボタン以外をデフォルトプッシュボタンに割り当てた場合、Enter キーでの選択ができなくなります。

関連トピック：

フォームにデフォルトのプッシュボタンを設定するには


表示フォーム 特性 表示

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示フォーム > 表示

表示

表示フォーム特性の［表示］セクションには以下の特性があります。

特性

内容

モバイル

背景

タスクウィンドウの背景となるイメージファイル名を指定します。［式］エディタで式を定義して指定することもできます。ここからズームすることでファイルを開くダイアログが開き、イメージファイルを選択することができます。

参考： ファイルを開くダイアログでは、デフォルトでBMPファイルのみが選択可能です。ファイルタイプを変更することでこれ以外のタイプのイメージファイルを選択することができます。

Android

iOS

背景スタイル

背景をフォームに合わせる方法を指定します。

Android

iOS

フォント

フォームのフォントを指定します。［フォント］テーブルにズームしてフォントを選択できます。式で動的に指定することもできます。コントロールのフォントは、［コントロール特性］シートで定義します。コントロールのフォントが指定されていない場合、フォームのフォントが使用されます。

Android

iOS

色

フォームの色を指定します。［基本色一覧］にズームして色を選択できます。［式］エディタにズームし、色番号を表す式を入力することによって動的に指定することもできます。

モバイル仕様：

RGB値のみが使用されます。「0」またはOS色（例えば「タイトルバー」)は無視され、その代わりにデバイスのデフォルト色が使用されます。

Android

iOS

グラデーションスタイル

この特性は、グラデーションの表示スタイルを定義します。［グラデーションスタイル］ダイアログボックスを開き、スタイルを選択して [image] をクリックしてください。

注意：

表示されるグラデーションは、［グラデーション色］特性の前景色から背景色へと変化します。「N=なし」が設定された場合、［色］特性の背景色が表示されます。

モバイル仕様：

次のスタイルのみサポートします。水平、垂直、斜め右、斜め左（サポートバージョン：2.2）

Android

iOS

グラデーション色

この特性は、グラデーション表示の色を定義します。

［グラデーションスタイル］特性の値を変更すると、この特性が無効になる場合があります。

（モバイルのサポートバージョン：2.2）

Android

iOS

ヘルプ画面

フォームと関連付けるヘルプ画面を指定します。［ヘルプ一覧］にズームしてヘルプを選択できます。

リッチクライアント用コントロールの場合、URLヘルプのみサポートされます。この場合、URLは、（Web上でのURLではなく）サーバ側のファイルパスでを指定します。

境界スタイル

フォームの境界線のスタイルを指定します。

  • H=太線

  • T=細線

  • N=なし

この特性は、［サブフォーム］コントロール上のタスクでは無効になります。

モバイル仕様：

この特性はポップアップ画面のみ関係しますが、モバイル上は全ては同じように表示されます。

関連トピック： ユーザがウィンドウのサイズ変更をできないようにするには

Android


表示フォーム 特性 表示 背景スタイル

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示フォーム > 表示 > 背景スタイル

背景スタイル

背景イメージをフォームに表示させる際の、表示方法を指定します。有効な値は以下の通りです。

値 | 内容
T=タイル | 背景イメージは、フォーム全体を埋めるために必要な限り何回もコピーして表示されます。
C=コピー | 背景イメージは、そのままの状態でフォームに表示されます。イメージのサイズがフォームより大きい場合、切り取られて表示されます。フォームより小さい場合、余白部分は背景色が表示されます。
S=フィットスケール | イメージのオリジナルの縦横比を維持した状態で、イメージがフォーム全体に収まるように縮尺/拡大されて表示されます。イメージとフォームの縦横の比率が同一でない場合、余白が生じることになります。
F=フィルスケール | イメージのオリジナルの縦横比を維持した状態で、イメージがフォーム全体に収まるように縮尺されて表示されます。イメージとフォームの縦横の比率が同一でない場合、イメージの一部しか表示されません。
D=コントロールスケール | イメージは、フォーム全体に収まるように縮小／拡大されて表示されます。イメージとフォームの縦横比率が同一でない場合、歪んだ状態で表示されます。

モバイル仕様

  • デバイスのDPIに依存しないため、スタイルを「コピー」に設定することは推奨されません。この場合、デバイスのサイズによって表示が異なります。

  • 「フィットスケール」の場合、イメージは［イメージ］コントロールの中心に表示されます。

Androidのみ

  • 「フィルスケール」の場合、イメージは［イメージ］コントロールの中心に表示されます。


表示フォーム 特性 表示 グラデーションスタイル

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示フォーム > 表示 > グラデーションスタイル

グラデーションスタイル

この特性は、グラデーションの表示スタイルを定義します。 をクリックして[グラデーションスタイル]ダイアログボックスを開き、スタイルを選択して［OK］をクリックしてください。

注意：

表示されるグラデーションは、[グラデーション色]特性の前景色から背景色へと変化します。「N=なし」が設定された場合、[色]特性の背景色が表示されます。

有効なオプションは以下の通りです：

  • N=なし

  • H=水平

  • O=水平(ミラー)

  • O=水平(ミラー)

  • R=水平(ワイド)

  • V=垂直

  • E=垂直(対称)

  • T=垂直(ワイド)

  • D=斜め左

  • I=斜め左(ミラー)

  • A=斜め右

  • G=斜め右(ミラー)

  • F=左上隅

  • P=右上隅

  • M=左下隅

  • B=右下隅

  • C=中央

モバイル仕様

以下のオプションのみ有効です。

  • H=水平

  • V=垂直

  • D=斜め左

  • A=斜め右

サポートバージョン：

2.2

関連トピック：

グラデーション表示を定義するには


モバイル

これは、リッチクライアント表示フォームの［モバイル］セクションの特性です。

特性

説明

モバイル

ポップアップ

フォームがフル画面で開か、ポップアップウインドウで開かを定義します。オプションは、Yes/Noです。

Android, iOS

画面の向きを固定

フォームを指定した向きで固定して表示するように定義します。オプションは以下の通りです。

  • P=縦

  • L=横

  • N=なし

Android, iOS

開始アニメーション

画面遷移の開始アニメーションを指定します。オプションは以下の通りです。

  • D=デフォルト …… OSの設定に依存します。

  • L=左 …… 左側からスライド表示されます。

  • R=右 …… 右側からスライド表示されます。

  • T=上 …… 上から下にスライド表示されます。

  • B=下 …… 下から上にスライド表示されます。

  • F=フェード…… フェードインで表示されます。

  • N=なし …… 表示効果は無効になります。

注意：

  • iOSの場合、開始アニメーションと終了アニメーションは、ポップアップ・フォーム上ではサポートされません。

  • フォームに傾きが定義されている場合、アニメーションが表示されない場合があります。

Android, iOS

終了アニメーション

画面遷移の終了アニメーションを指定します。オプションは以下の通りです。

  • D=デフォルト …… OSの設定に依存します。

  • L=左 …… 左側にスライドされて終了します。

  • R=右 …… 右側にスライドされて終了します。

  • T=上 …… 下から上にスライドされて終了します。

  • B=下 …… 上から下にスライドされて終了します。

  • F=フェード…… フェードアウトで終了します。

  • N=なし …… 表示効果は無効になります。

注意：

  • iOSの場合、開始アニメーションと終了アニメーションは、ポップアップ・フォーム上ではサポートされません。

  • フォームに傾きが定義されている場合、アニメーションが表示されない場合があります。

Android, iOS

ナビゲーション
ドロワーメニュー

ナビゲーションドロワー（Google Playのような左側に表示されるメニュー)として示されるメニューエントリを定義します。メニューは、それから、画面の左側からスワイプすることで開くことができます。数値を入力したり、ズームしてメニューリポジトリからメニューを選択することができます。

Android, iOS

タイトルバーの色

フォームのタイトルバーの色を指定します。数値を入力するか、ズームして色を選択することができます。

Android, iOS

追加情報

モバイル用デバイス上でフォームに関連した追加情報を指定します。複数のパラメータを定義する場合は、カンマ区切りで指定します。

この特性は、リッチクライアントタスクでのみ有効です。

以前使用していた値は、廃止予定の追加情報パラメータを参照してください。

Android, iOS

サポートバージョン：

2.5

関連トピック：

モバイル上でフォームの開始/終了のアニメーションを定義するには


表示フォーム 特性 位置とサイズ

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示フォーム > 位置とサイズ

位置とサイズ

表示フォーム特性の［位置とサイズ］セクションには以下の特性があります。

特性

内容

モバイル

開始時の位置

この特性は、表示フォームをどのように開くかを定義するものです。

位置

親フォームのサイズが変更された場合、子フォームとして定義されている表示フォームのサイズを変更するかどうかを指定します。

この特性は、GUI表示フォームのみ有効です。

Android

iOS

X

フォームのX座標を指定します。［開始時の位置］特性が「カスタマイズ」の場合のみ有効です。

Y

フォームのY座標を指定します。［開始時の位置］特性が「カスタマイズ」の場合のみ有効です。

幅

フォームの幅を指定します。

注意：

幅の最小値は、各フォーム対してWindows OSにもとづいて設定されます。

高さ

フォームの高さを指定します。

注意：

幅の最小値は、各フォーム対してWindows OSにもとづいて設定されます。

最小幅

ウィンドウの幅の最小値を設定します。この特性は、エンドユーザがフレーム領域を小さくし過ぎないようにするために利用できます。

フォームが表示される際に、最小限の幅と高さの式が計算されます。デフォルトは、”0”です。

フォームが、［最小幅］または［最小高さ］より少ないサイズでオープンされた場合、この値は無視されます。

最小高さ

ウィンドウの高さの最小値を設定します。この特性は、エンドユーザがフレーム領域を小さくし過ぎないようにするために利用できます。

フォームが表示される際に、最小限の幅と高さの式が計算されます。デフォルトは、”0”です。

フォームが、［最小幅］または［最小高さ］より少ないサイズでオープンされた場合、この値は無視されます。

関連トピック： ウィンドウの最小サイズを設定するには

関連トピック：

フォームの寸法


表示フォーム 特性 位置とサイズ 開始時の位置

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示フォーム > 位置とサイズ > 開始時の位置

開始時の位置

この特性は、表示形式フォームをどのように開くかを定義するものです。設定できるオプションは以下の通りです。

値 | 内容
C=カスタム | ウィンドウは、フォームの［X］と［Y］の特性で定義された位置に表示されます。フォームサイズは［高さ］と［幅］特性に基づいて表示されます。
B=OSデフォルト | ウィンドウは、OSによって定義されたデフォルトの位置とサイズをもとに表示されます。［X］、［Y］、［幅］と［高さ］の各特性は、無視されます。 ［開始時の位置］特性が「Windowsデフォルト」に設定された場合、オンラインとリッチクライアントでフォームのサイズが異なります。
P=親ウィンドウの中央 | ウィンドウは、親タスクのウィンドウの中央に表示されます。フォームサイズは［幅］と［高さ］の特性によって定義されます。
M=MDIの中央 | ウィンドウはMagic xpaのクライアントエリアの中央に表示されます。フォームサイズは［幅］と［高さ］の特性によって定義されます。
D=デスクトップの中央 | ウィンドウはデスクトップ領域の中央に表示されます。フォームサイズは［幅］と［高さ］の特性によって定義されます。
L=OSデフォルト位置 | ウィンドウは、Windowsのデフォルトの位置に表示され、フォームサイズは［幅］と［高さ］の特性によって定義されます。

注意：

もし親タスクがオープンするフォームを持たない場合、その上位のタスクのフォームを親のフォームとします。全ての上位タスクがオープンするフォームを持たない場合、「M=MDIの中央」に設定されたフォームとして動作します。

SDIウィンドウでの［開始時の位置］特性

［開始時の位置］特性で、SDIウィンドウで「M=MDIの中央」か「P=親ウィンドウの中央」が指定された場合、「D=デスクトップの中央」を指定したような動作になります。これは、SDIウィンドウがMagic xpaのMDIの外部に表示されるため、「M=MDIの中央」と「P=親ウィンドウの中央」のオプションは不適当なものと解釈されるからです。

モバイル仕様

この特性は、以下のデバイスのポップアップフォームでのみ有効になります。

iOS（サポートバージョン：2.3）

Android（サポートバージョン：2.5）

  • 「カスタマイズ」が指定された場合、フォームの［X］または［Y］特性によって定義された位置でポップアップウインドウが表示されます。

  • 「…の中央」が指定された場合、デバイスの中央でポップアップウインドウが表示されます。

  • 「…のデフォルト」が指定された場合、開いたコントロールの隣にポップアップウインドウが表示されます(iPadのみ) 。


表示フォーム 特性 位置とサイズ フォームの寸法

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示フォーム > 位置とサイズ > フォームの寸法

フォームの寸法

SDIフォームでは、［左辺位置］と［上辺位置］の特性はデスクトップの左上の端を基に決定されます。SDIウィンドウがデスクトップの左上の端でオープンされるように、初期値は「0」が設定されます。

［開始時の位置］特性が「M=MDIの中央」か「P=親ウィンドウの中央」または、「D=デスクトップの中央」に設定された場合、［左辺位置］と［上辺位置］の特性は無効になります。［幅］と［高さ］特性は、SDIクライアントの寸法に依存します。

  • SDIコンテナの幅は、フォームの［幅］特性で指定された値が評価されます。

  • SDIコンテナの高さは、［フォーム］特性の指定値に加え、表示される内容（例えば、メニューやツールバー、ステータスバー）のサイズによって決まります。メニューなどが表示されない場合は、フォームの［高さ］特性で定義された値で表示されます。

  • SDIコンテナのサイズは、フォームの［幅］や［高さ］特性に、コンテナのディメンジョンを加えたサイズになります。

  • ［開始時の位置］特性が「T=デフォルト」でない場合、［X］と［Y］の特性は無効になります。この場合でも、幅や高さの寸法は、［フォーム］エディタでのフォームの寸法になります。


表示コントロール 特性 イメージタイプ

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > サポートするイメージフォーマット

サポートするイメージフォーマット

表示フォームでのイメージフォーマットの対応状況は以下の通りです。

タイプ | 種別 | エンコード |  | Windows | Android | iOS
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 |  |  |  |  |


表示コントロール 表示コントロール

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール

表示コントロール

表示コントロールは、プログラムを作成する上でよりわかりやすく利用しやすくするために使用されます。これらは、ユーザインタフェースを明確でわかりやすくし、大量のデータを理解しやすくするために整理する用途でも使用されます。

Magic xpaは、使いやすい様々な表示コントロールを提供しています。短時間に、複雑なGUIウィンドウを構成することができます。WYSWYGインタフェースによって、直観的に、迅速にフォームを設計することができます。また、ハードコードされた値を定義することでサイズや配置場所を制御したり、実行時に動的に変更することもできます。

表示フォームの［コントロール］パレットには以下のようなボタンが表示されています。

ボタン

コントロール名

説明

［コントロール］パレットの選択ツール。コントロールの選択と選択解除はこのツールを使用して行います。コントロールの移動、サイズ変更、削除、［コントロール特性］シートへのズームを行うには、コントロールを選択しておく必要があります。

.NET

ユーザインタフェースの一部として.NETコントロールを直接配置することで、ルック&フィールが向上します。.NET連携を参照してください。

ブラウザ

HTMLファイルを表示する［ブラウザ］コントロールを挿入します。［リッチクライアント形式］フォームでのみ有効です。

チェックボックス

オン/オフを切り替えるのに使用する［チェックボックス］コントロールを挿入します。論理型の項目や論理式を表す時はこのコントロールを使用します。

コンボボックス

2つのデフォルト項目を含んでいる［コンボボックス］コントロールを挿入します。

エディット

［エディット］コントロールを挿入します。このコントロールは、［コントロール特性］シートの［データ］特性のデータ項目または式に関連付けることができます。

グループ

タティックな［グループ］コントロールを挿入します。四角形のボックスを描画し、複数のコントロールをグループにまとめて表示します。そのグループを説明するラベルを含めることができます。

イメージ

［イメージ］コントロールを挿入します。

ラベル（テキスト）

スタティックな［ラベル（テキスト）］コントロールを挿入します。

ライン

［ライン］コントロールを挿入します。

リストボックス

2つのデフォルト項目を含んでいる［リストボックス］コントロールを挿入します。

プッシュボタン

プロジェクトで特定のイベントを実行するために用いる［プッシュボタン］コントロールを挿入します。

ラジオボタン

［ラジオボタン］コントロールを挿入します。

リッチエディット

［リッチエディット］コントロールを挿入します。［データ］特性に式やBLOB項目が設定されている場合、このコントロールは［リッチテキスト］コントロールとして機能します。

リッチテキスト

開発時に書式設定を行なうスタティックテキストを含んだ［リッチテキスト］コントロールを挿入します。リッチテキストの書式設定は、コントロール全体ではなく、コントロール中で選択したテキストに対して行ないます。

サブフォーム

［サブフォーム］コントロールを挿入します。現在のフォーム上に別のフォームを表示させることができます。

タブ

2つのデフォルトタブを含んでいる［タブ］コントロールを挿入します。このコントロールにはエディットやプッシュボタンなどコントロールを配置することができます。

テーブル

［テーブル］コントロールを挿入します。このコントロールにエディットやプッシュボタンなどのコントロールを配置することができます。

ツリー

［ツリー］コントロールを挿入します。親子関係のノードデータをツリー形式で表示します。

四角

四角形の［スタティック］コントロールを挿入します。［コントロール特性］シートで、四角形にテキストを追加したり、そのテキストの位置を指定することができます。

注意：

Ver2.xではサポートされません。［ラベル］コントロールで似たような表示にすることができます。

楕円

楕円形の［スタティック］コントロールを挿入します。［コントロール特性］シートで、楕円内にテキストを追加したり、そのテキストの位置を指定することができます。

注意：

Ver2.xではサポートされません。

垂直スライダ

矢印付きの［垂直スライダ］コントロールを挿入します。

注意：

Ver2.xではサポートされません。

水平スライダ

矢印付きの［水平スライダ］コントロールを挿入します。

注意：

Ver2.xではサポートされません。

以下の方法でコントロールにアクセスすることができます：

  • ［コントロール］パレット

  • ［描画］メニュー→［コントロール追加］

  • フォームのコンテキストメニューから［コントロール追加］を選択

フォームにコントロールを配置した後、特性をコントロールに割り当てることができます。マウスでコントロールを選択して、F5を押下するかダブルクリックを実行することで［コントロール特性］シートにズームすることができます。

［コントロール特性］シートでは、コントロールの［データ］特性にデータ項目を割り当て、書式に関する特性を定義します。Magic xpaが実行時にデータ項目にアクセスするタブ順序は、フォーム上のコントロールに定義された順番に依存する事を意識しておく必要があります。

同じデータ項目が複数のコントロールの［データ］特性に定義されている場合、最後に定義されたコントロールの値のみが実行時に更新されます。同じデータ項目をウィンドウ内で複数表示させる場合は、そのデータ項目の表示内容を格納する変数項目を定義して、その変数項目を表示するようにします。

テキスト形式のフォーム（クラス＞0)を作成している場合は、テキスト形式のフォームでサポートされないコントロール特性は使用できません。

コントロール特性は個別のセクションで区分されています。内容はコントロールのタイプによって異なります。

注意:

モバイルの場合、［OLE］、［リッチエディット］、［リッチテキスト］、［ツリー］、［リストボックス］と［.NET］の各コントロールをサポートしていません。

関連トピック：

GUI 表示の項目パレット

コントロールモデルを使用して、フォームにコントロールを自動配置するには


データソース

特性

内容

モバイル

選択項目リスト

コントロールから選択することで返される値の範囲を指定します。選択値は、カンマ（,）区切りで複数指定できます。

［選択表示リスト］特性が定義されていない場合は、この値で表示されます。［選択表示リスト］特性が定義されている場合は、この値は表示されません。

空白のエントリを入力する場合は、エスケープ文字（バックスラッシュ）の後に空白を指定する様にしてください：" \ ."

この特性は、データ依存モードをサポートします。このモードは、コントロールの［選択項目リスト］の値としてデータ項目の［範囲］特性を使用するように指示します。

［選択項目リスト］が（性別のように）固定した選択肢の場合、リストはデータソースのカラムを定義する際に設定できます。

iOS

Android

選択表示リスト

コントロールに表示させる選択肢を指定します。表示のみで入力値にはなりません。選択値は、カンマ（,）区切りで複数指定できます。

この特性が指定されている場合は、［選択項目リスト］特性に同じ順番で選択値が指定されている必要があります。

例えば、[選択項目リスト]特性に「1,2,3」と指定されていて、[選択表示リスト]特性に、「赤,青,緑」と指定されている場合。フォーム上の表示は、「赤,青,緑」になりますが、実際に入力される値は、「1,2,3」のどちらかになります。

空白のエントリを入力する場合は、エスケープ文字（バックスラッシュ）の後に空白を指定する様にしてください：" \ ."

この特性が空白の場合、[選択項目リスト]特性の値が表示され、値が返ります。[選択項目リスト]特性の値と［ソーステーブル］特性の値が定義されている場合、表示リストには項目リストの値が最初に表示され、次にソーステーブルの値が表示されます。

関連トピック：

チョイスコントロールで定義されている値と異なるテキストを表示するには

チョイスコントロールに特殊文字を表示するには

アクセラレータをチョイスコントロールオプションに設定するには

iOS

Android

ソーステーブル

コントロールと関連付けるテーブルの番号を指定します。［データソース一覧］からテーブルを選択することができます。

この特性を設定した場合、［表示項目］や［リンク項目］特性を指定する必要があります。

iOS

Android

表示項目

画面に表示されるテーブルのカラムを指定します。［ソーステーブル］特性で指定されたテーブルのカラムを［項目一覧］から選択できます。

iOS

Android

リンク項目

実際に格納されるテーブルのカラムを指定します。［ソーステーブル］特性で指定されたテーブルのカラムを［項目一覧］から選択できます。

iOS

Android

インデックス

画面に表示される順序を決めるテーブルのインデックスを指定します。［ソーステーブル］特性で指定されたテーブルのインデックスを［インデックス一覧］から選択できます。

iOS

Android

範囲

画面に表示されるレコードの範囲を決めるための各項目の開始および終了範囲を指定します。［ソーステーブル］特性で指定されたテーブルに対して、［項目範囲］テーブルから範囲を指定するカラムを選択できます。

指定されたテーブルに範囲に該当するレコードが存在しない場合、選択肢は何も表示されません。

リッチクライアントタスクの場合、この特性の式はサーバ側でのみ有効です。

iOS

Android

サポートバージョン：

2.3


表示コントロール パーク

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > パーク

パーク

特性

内容

モバイル

TAB順序

指定された番号順にTabキーによってフォーム内のカーソルが移動します。

［自動タブ順序］モードが無効な場合、この特性に4桁までのTab ID（数値）を入力することができます。

［自動タブ順序］モードが有効な場合、この特性には自動的にTab IDが表示され、入力はできなくなります。

注意：

［RM互換］ロジックユニットが含まれているロジックユニットでは無効になります。

［データ］特性にデータ項目が定義されていない場合は無効になります。

リッチクライアントのコントロールでは無効です。

Android

iOS

TABで移動

この特性は、Tabの移動によってこのコントロールにカーソルを移すことができるかどうかを指定します。

「No」に設定された場合、Tabの移動でこのコントロールにはパークされず、マウスクリックでしかカーソルをコントロールに置くことができなくなります。

［データ］特性にデータ項目が定義されている場合のみ、この特性は有効です。［サブフォーム］コントロールでは常に有効です。

［イメージ］コントロールでは利用できません。

デフォルト値は、「Yes」です。

注意：

［RM互換］ロジックユニットが含まれているロジックユニットでは無効になります。

関連トピック： マウスを使用した場合のみコントロールへのパークを可能にするには

パーキング可

カーソルがコントロール上でパークできるかどうかを指定します。

「Yes」が設定された場合、Tabの移動やマウスクリックによってこのコントロールにパークすることができます。

［データ］特性にデータ項目が定義されている場合のみ、この特性は有効です。

［イメージ］コントロールでは利用できません。また、すべてのリッチクライアント・コントロールで利用できるというわけではありません。

［.NET］コントロールの場合、この特性は常に有効で、コントロールをクリックすると、フォーカスが現在のコントロールを抜けるかどうかを決定します。

Android

iOS

TAB移動方向

この特性は、コントロール間のTAB移動をどのフロー方向で有効にするかを指定します。指定可能なオプションは以下の通りです。

  • B=両方向(デフォルト値)

  • F=前方のみ

  • C=後方のみ

この特性は、［データ］特性に項目が割り当てられており、［パーキング可］特性が「Yes」に設定されている場合のみ有効です。

実行時、コントロールにパークしている時に、Tabキーを押下するとタブID順にカーソルが移動する場合を「前方」、Shift+Tabキーを押下するとタブIDの逆順に移動する場合を「後方」と呼びます。

［ラジオボタン］コントロールの場合、「両方向」のみ有効です。


コントロール モバイル特性

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > モバイル

モバイル

特性 | 内容 | モバイル
境界幅 | 境界線の幅をデバイスのdpiに基づくピクセル値で指定します。 | Android iOS
境界色 | 境界線の色を指定します。 | Android iOS
角半径 | コントロールの角の丸みの半径をデバイスのdpiに基づくピクセル値で指定します。 デフォルト：2（［グループ］コントロールは、10） | Android iOS
追加情報 | モバイル用のコントロールフォームに関連した追加情報を指定します。 複数のパラメータは、カンマ区切りで指定できます。 以前使用していた値は、廃止予定の追加情報パラメータを参照してください。 | Android iOS

サポートバージョン：

2.5


表示コントロール 位置とサイズ

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > 位置とサイズ

位置とサイズ

特性

内容

モバイル

位置

この特性は、フォームのサイズが変更された場合にコントロールのサイズをどのように対応させるかを指定することができます。

[位置]特性は、[コントロールの位置付]ダイアログ内の[左辺割合]、[幅割合]、[上辺割合]、[高さ割合]の組み合わせになります。この特性からズームして[コントロールの位置付]ダイアログを表示できます。

この特性の設定項目を「100」に設定すると、フォームの対応する方向の変更サイズに対して100%連動することを意味しています。「50」に設定した場合、半分のサイズで連動します。特性が「0」に設定した場合、フォームのサイズを変更しても、コントロールの相対的なサイズは変わりません。

[位置]特性を持つコントロールは、元のサイズより小さいサイズにはできません。

モバイル仕様：

［タブ］コントロールは、常にフルスクリーンで表示されます。

Android

iOS

行の位置

テーブルの高さが変更された場合、行の高さも変更するかどうかを指定します。この特性は、［テーブル］コントロールのみ有効です。

X

コントロールのX座標を指定します。

Android

iOS

Y

コントロールのY座標を指定します。

Android

iOS

注意:

コントロールがコンテナコントロール（例えばグループやタブとテーブルなど)に配置された場合、X、Yと位置の値はフォームにではなくコンテナコントロールを基準にした値になります。

幅

コントロールの幅の初期値を寸法単位で指定します。

Android

iOS

高さ

コントロールの高さの初期値を寸法単位で指定します。

［コンボボックス］コントロールの場合、Windowsプラットホームでは、高さは実行時のコンボボックスのフォントによって定義され、変更することができません。

モバイル仕様：

コントロールの高さを定義するために、この特性はリッチクライアントフォーム上でも修正可能です。（サポートバージョン：2.3）

Android

iOS

コントロールレイヤ

コントロールがチョイスコントロールの子としてリンクされている場合、選択したコントロールのリンク先である親のチョイスコントロールに対する階層を表示します。

この特性は、常に無効になっており、コントロールを別のコントロールにリンクしたり、リンクを削除した場合に変更されます。

例えば、3つの選択肢が定義されたコンボボックスがフォームに配置されている場合、［エディット］コントロールを3番目の選択肢にリンクすると、この特性に「3」が表示されます。

テーブルの子としてリンクされている場合は、カラム番号（[カラム]コントロールのレイヤ番号）が表示されます。


表示トコントロール NET

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > .NETコントロール

［.NET］コントロール

ユーザインタフェースの一部として.NETコントロールを直接配置することで、ルック&フィールが向上します。

［.NET］コントロールの特性は、以下のセクション毎に定義されています。

モデル

詳細

データソース

表示

モバイル

パーク

位置とサイズ

.NET

.NETのバインディング宣言.

注意：

  • Magic xpaに定義された［.NETコントロール特性］と､.NETオブジェクトのプロパティに矛盾がある場合、Magic xpaで定義された内容が優先されます。

  • .NET型項目を使用するには、最初にインスタンス化する必要があります。コントロールに定義された.NET型項目は自動的にインスタンス化されます。.NET型項目がコントロールに割り当てられていない場合、処理を実行する前に最初にコンストラクタを実行させる必要があります。

  • クラスがSystem.Windows.Forms.Controlから継承される.NET項目だけがフォーム上のコントロールとして使用できます。［.NET］コントロールを使用する場合は、CRRにSystem.Windows.Formsアセンブリをロードする必要があります。

  • .NETコントロールを別の.NETコントロールに割り当てることはできません。

  • Magic xpaの内部イベントは、.NETコントロール上で発行させることはできません。

  • ［.NET］コントロール上でクリックした場合、もし.NETコントロールでのアクション（例、.NETのスピナーコントロール上でのクリック)が開始されると、たとえ、前のコントロールに対する［コントロール検証］や［コントロール後］のロジックユニットで［エラー］処理コマンドが定義されていても、このアクションは実行されます。

  • タスクのデータビューを表示するために［.NET］コントロールを使用する場合、タスクは.NETコントロールのカラムを認識できない為、コントロールレベルのロジックユニットを使用することはできません。［項目変更］ロジックユニットを使用することはできます。

モバイル仕様：

［.NET］コントロールは、サポートされません。

関連トピック：

.NETコントロールを定義するには


表示コントロール NET 詳細

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > .NETコントロール > 詳細

［.NET］コントロールの詳細

特性 | 内容
データ | .NET型項目を指定します。 項目は［Value プロパティ名 ］特性に定義されたコントロールのプロパティにリンクされます。これによって、このプロパティによる更新は全てデータ項目に反映されます。更新は、（［ウェイト］特性を「No」]にして更新されたように)すべてのイベントを処理した後に行われます。 この特性は、モデルの［特性］シートでなく、コントロールの［特性］シートで指定します。
項目 | ［データ］特性で指定されたデータ項目の名前が表示されます。
コントロール名 | コントロールの名前を指定します。コントロール名は、コントロールを参照するロジックユニットとコントロールで使用されます。
型 | 選択したデータ項目または式の型です。


表示コントロール NET 表示

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > .NETコントロール > 表示

［.NET］コントロールの表示

特性 | 内容
自動ヘルプ | コントロールに関連付ける自動ヘルプを指定します。［ヘルプ一覧］にズームして自動ヘルプを選択できます。
可視 | コントロールを表示させるかどうか指定します。論理値を返す式で指定することもできます。
有効 | コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。


.NET モバイル特性

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > .NETコントロール > モバイル

［.NET］コントロールのモバイル

特性 | 内容
追加情報 | モバイル用のコントロールフォームに関連した追加情報を指定します。（この特性は、モバイルクライアントの今後の新機能に対応するためのものです。) この特性は、リッチクライアントタスクでのみ利用できます。

サポートバージョン：

2.5


表示コントロール NET NET

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > .NETコントロール > .NET

［.NET］コントロールの.NET

特性

内容

.NETオブジェクト

.NET型のデータ項目を定義します。

.NETコントロールに対応するデータ項目を選択するためにズームすると、［データ項目選択］リストが表示されます。ここには、System.Windows.Forms.Controlクラスから継承されるクラスを持つ.NETデータ項目だけが含まれています。.NETコントロールを使用するには、System.Windows.Formsアセンブリを［コンポーネント］リポジトリに読み込ませる必要があります。

  • コントロールにモデルが定義されていない場合、データ項目の全が表示されます。

  • コントロールにモデルが定義されている場合、モデルに定義されるオブジェクトタイプと同じデータ項目だけが表示されます。

オブジェクトタイプ

項目が定義されたコントロールの.NETオブジェクトを定義する読込専用の特性です。

オブジェクトプロパティ

ここからズームすると、選択した.NETオブジェクトのプロパティを表示する［プロパティ］シートにアクセスすることができます。値や式を使用して、特性を変更することができます。

.NETオブジェクトプロパティ内で.NETコンストラクタを使用することは推奨できません。これは、フォームが再表示される度に、新しい.NETオブジェクトが作成されるためです。.NETオブジェクトプロパティ内で式を使用して新しいオブジェクトを作成する必要がある場合は、新しい.NET項目を定義し、それをコンストラクタ上で実行させるようにし、式として定義した項目を使用することを推奨します。

.NETコントロールには、位置(Locatoin)、サイズ(Size)、有効(Enabled)、および可視(Visible)などの表示されないプロパティがあります。これらは、ロジック内でDNSet()関数を使用することで変更することができます。このため実行時には、［フォーム］エディタ上に表示される位置やサイズにならない場合があります。

実行時、コントロールのプロパティとMagic特性の間に矛盾がある場合、Magic特性が使用されます。プロパティ値には、直接記述できるものや、コンボボックスから選択できるものがあります。.NETオブジェクトを指定する必要がある場合、式でのみ設定できます。

プロパティの設定項目やその内容は、オブジェクトによって異なります。各オブジェクトの仕様を参照して設定してください。

注意:

プロパティの内容は、参照するアセンブリデータをもとに表示されます。このため、英語表記になっています。

式で設定する場合は、"DotNet."の記述の後に、オブジェクトの対応するプロパティ値を設定します。オブジェクトの［プロパティ］シートの下に、各プロパティに対応するヘルプが表示されますが、（）内に記述されている型を参考にしてください。

例：BackColor：DotNet.System.Drawing.Color.Brown

関連トピック：.NETコントロールのプロパティの値を変更するには

データビューコントロール

［.NET］コントロールがタスクのデータビューを処理するかどうかを指定します。

タスクのデータビューを.NETコントロール（例えば、Gridコントロール)に関連付けることで、［テーブル］コントロールの代わりに使用することができます。複数の［.NET］コントロールをフォーム上に配置できるため、どの［.NET］コントロールがタスクのデータビューを表示するかを指定する必要があります。

［Datasourceプロパティ名］特性に値が設定されており、［DisplayMemberプロパティ名］や［ValueMemberプロパティ名］の各特性に値が設定されていない場合、この特性が有効になります。

［モデル］リポジトリの［.NETコントロール］モデルでこの特性の値を「Yes」に設定して、そのモデルを割り当てたフォーム上の［.NET］コントロールの［データビューコントロールのフィールド］特性からズームすることで.NETコントロールに表示させるデータ項目を定義することができます。

実行時、.NET System.Data.DataTableオブジェクトがタスクのデータビューから自動的に作成されます。そして、このオブジェクトはモデルレベルの特性として［DataSource property名］特性内に定義された［.NET］コントロールの特性に割り付けられます。

Magic xpaのデータ項目の変更内容が、.NETコントロール上に反映され、その逆も実行されます。

注意:

いくつかのGridコントロールは、Gridの終わり空の列を追加します。通常、これはコントロールの"AllowUserToAddRows"というGridコントロールのプロパティによって管理されます。この動作は、ユーザがこの列を更新する際、GridとMagic xpaタスクの間で矛盾を発生させます。Magic xpaは新しいレコードが作成されていることを知らないため、タスクは登録モードに変更されません。この動作を回避するには、この特性を"False"に設定することを推奨します。レコードの新規作成は、Magic xpaの［行作成］イベント（F4)を使用して行われます。

この特性は、オンラインタスクのみサポートされ、［タスク特性］の［ビュー事前読込］特性が「Yes」に設定された場合に有効になります。

サポートバージョン：

2.3

関連トピック：.NETコントロールにデータビューをバインドするには

データビューコントロールのフィールド

項目一覧から選択したカラムによってコントロールのデータソースを作成する項目を定義します。

サポートバージョン：

2.3


.NETバインディング宣言

［.NETバインディング宣言］セクション

データを.NETオブジェクトに連結させるため、以下のプロパティを持つ.NETコントロールのモデルを最初に定義しなければなりません。

特性 | 内容
Value プロパティ名 | データ（例：値またはテキスト）の取得／設定を行う.NETコントロールのプロパティ名。 このプロパティが定義されると、Value Changedイベント名も必要となります。 キー入力すると入力候補のリストが表示されます。
Value Changedイベント名 | Valueプロパティが変更された場合に、発行される.NETコントロールのイベント名。 Valueプロパティ名が定義された場合、この特性が必要となります。 キー入力すると入力候補のリストが表示されます。

これらの特性が定義された後、データ項目を.NETコントロールの［データ］特性に割り当てることができます。データ連結は、2つの方向性があります。データ項目値の更新によってコントロールのプロパティが更新されます。逆も同じように行うこともできます。

コントロールの値でMagic xpaのデータ項目を更新しても値が異なる場合、コントロールはMagic xpaのデータ項目の値で更新されます。

注意:

これらの特性は.NETコントロールのモデルで定義されて、［.NETコントロール特性］では表示されるだけです。

［.NETデータソース宣言］セクション

特性 | 内容
DataSource プロパティ名 | Magic xpaの項目一覧または範囲定義されたデータソースを取得する.NETコントロールのプロパティ名
DisplayMember プロパティ名 | 表示するカラムを定義する.NETコントロールのプロパティ名
ValueMember プロパティ名 | データ値を持つカラムを定義する.NETコントロールのプロパティ名

これらの特性が定義された後、項目一覧またはデータソースを.NETコントロールに割り当てることができます。データ連結は、1つの方向性があります。データが変更されると、読み込まれて再度送信されない場合、データはMagic xpaからコントロールに送信されます。.NETコントロール内のデータに対する修正内容は、Magic xpaに送り返されません。

サポートバージョン：

2.3

注意:

これらの特性は.NETコントロールのモデルで定義することができ.NETコントロール特性には表示されません。


項目一覧

項目一覧は、コントロールのデータソース内のデータ項目を選択し指定することができます。

項目を選択するには、［カラム］カラムに値を設定します。

カラムの値を変更することでカラムの順番を変更することができます。"0"が設定され場合は、含まれません。


表示コントロール ブラウザ

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ブラウザコントロール

［ブラウザ］コントロール

［ブラウザ］コントロールはHTMLファイルを表示し、HTMLブラウザによって表示できる他のファイルを利用できるようにする機能があります。

［ブラウザ］コントロールは、リッチクライアントプログラムでのみサポートされています。

［ブラウザ］コントロールは、Internet Explorerの動作をシミュレーションし、ブラウザのActiveXコントロールが使用され場合と同じ動作を行います。このコントロールをフォームに配置することで、ブラウザとして埋め込むことができ、必要なコントロールを使用することができます。これによりHTMLファイル上のJavaScriptやActiveXを使用することができます。

［ブラウザコント］ロールは、WinFormのWebBrowserコントロールに基づいて動作します。これ自体は、Microsoft Windowsのインターネットオプションに依存しています。

以下のようなタイプのファイルを表示する場合に［ブラウザ］コントロールを使用することができます（クライアントにこのファイルに対応したビューワーがインストールされている必要があります）。

  • Wordの文書

  • Excelのスプレッドシート

  • PDFファイル

  • 音楽やムービーなどのマルチメディアファイル

文字型、Unicode型、またはBLOB型の項目と式だけが使用できます。

［ブラウザ］コントロールの特性は、以下のセクション毎に定義されています。

モデル

詳細

表示

モバイル

パーク

位置とサイズ

参考：

コントロールより大きなサイズの内容を表示させた場合、スクロールバーが自動的に表示されます。スクロールバーを表示させないようにするには、表示させるHTMLページに以下のスタイルを指定してください。

<style>
body { margin: 0px; overflow:hidden }
</style>

関連トピック：

BrowserSetContent

BrowserGetContent

BrowserScriptExecute

ブラウザコントロールで実行しているWebページを操作するには

リッチクライアントフォーム内にPDFを表示させるには


表示コントロール ブラウザ 詳細

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ブラウザコントロール > 詳細

［ブラウザ］コントロールの詳細

特性 | 内容 | モバイル
データ | 表示させるHTMLファイル名を指定します。データは、データ項目（値）または式として指定します。 | Android iOS
項目 | ［データ］特性で指定されたデータ項目の名前を表示します。 | Android iOS
コントロール名 | コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や［コントロール］ロジックユニットで参照することができます。LastClicked関数の説明も参照してください。 ［コントロール名］特性は30桁に制限されます。末尾の空白は自動的に削除されます。［フォーム］エディタ内のコントロールのコピー処理では、この特性はコピーされません。 | Android iOS
型 | 選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。 | Android iOS


表示コントロール ブラウザ 表示

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ブラウザコントロール > 表示

［ブラウザ］コントロールの表示

特性 | 内容 | モバイル
可視 | コントロールを表示させるかどうか指定します。論理値を返す式で指定することもできます。 | Android iOS


ブラウザ モバイル特性

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ブラウザコントロール > モバイル

［ブラウザ］コントロールのモバイル

特性 | 内容 | モバイル
追加情報 | モバイル用のコントロールフォームに関連した追加情報を指定します。（この特性は、モバイルクライアントの今後の新機能に対応するためのものです。) この特性は、リッチクライアントタスクでのみ利用できます。 | Android iOS

サポートバージョン：

2.5


表示コントロール チェックボックス

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > チェックボックスコントロール

［チェックボックス］コントロール

チェックボックスを使用することで、論理型項目を「True」（チェックボックスがオンの場合）または「False」（チェックボックスがオフの場合）に設定することができます。

［テキスト］特性は、通常の項目と同様に内容の説明を入力します。チェックボックスの入力値はスペースバーを押下するか、チェックボックスをクリックして指定します。スペースバーまたはマウスクリックでチェックマークのオン／オフを切り替えることができます。

［チェックボックス］コントロールの特性は、以下のセクション毎に定義されています。

モデル

詳細

入力

表示

モバイル

パーク

位置とサイズ


表示コントロール チェックボックス 詳細

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > チェックボックスコントロール > 詳細

［チェックボックス］コントロールの詳細

特性

内容

モバイル

データ

データは、データ項目（値）または式として指定します。

Android

iOS

項目

［データ］特性で指定されたデータ項目の名前を表示します。

Android

iOS

テキスト

［チェックボックス］コントロールに表示するテキストを指定します。

この特性には、Unicode値のみ有効です。Magic V9Plus用のアプリケーションから移行した場合、デフォルトのコードページを使用してANSIからUnicodeへの変更が行われます。

Android

iOS

コントロール名

コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や［コントロール］ロジックユニットで参照することができます。LastClicked 関数の説明を参照してください。

［コントロール名］特性は30桁に制限されます。末尾の空白は自動的に削除されます。［フォーム］エディタ内のコントロールのコピー処理では、この特性はコピーされません。

Android

iOS

型

選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。

Android

iOS

コンテキストメニュー

コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、［メニュー一覧］にアクセスできます。

式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は［メニュー一覧］内のメニュー番号として評価されます。

デフォルト値は「0」です。

Andorid

ドラッグ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic xpa以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。

このコントロールからコピーされたデータは、［ドラッグ開始］イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。

関連トピック：

ドラッグ&ドロップでデータをコピーするには

外部アプリケーションにデータをドラッグ&ドロップするには

ドロップ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic xpa以外のアプリケーションとの間のデータのドロップ処理を可能にします。

このコントロールへのデータのコピーは、［ドロップ］イベントによるロジックユニットによって意図的に行われるか、Magicエンジンにより自動的に行われます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。

関連トピック： 外部アプリケーションからMagic xpaにデータをドラッグするには


表示コントロール チェックボックス 入力

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > チェックボックスコントロール > 入力

［チェックボックス］コントロールの入力

特性

内容

モバイル

必須入力

エンドユーザがコントロールに値を入力する必要があるかどうかを指定します。必須にするかどうかを表す論理値を返す式を使用できます。

修正許可

実行時にユーザがコントロール内の値を変更できるかどうかを指定します。

  • Yes …… ユーザはコントロール内の値を変更できます。

  • No …… コントロールへのユーザアクセスは拒否されます。

Android

iOS

選択プログラム

このコントロールからズームして起動するプログラムを指定します。コントロールに割り当てられた項目は、自動的にプログラムに送られます。

呼び出されるプログラムが（［選択テーブル］特性が「Yes」に設定された)選択プログラムの場合に一般的に利用します。これによって選択リストから値を選択してコントロールの値を更新する処理が簡単に実現できます。

［選択プログラム］特性を設定した場合、［オプション］メニューの［オブジェクトに移動］を選択することで簡単に指定したプログラムに移動することができます。また、［オプション］メニューの［オブジェクトから戻る］を選択することで、［選択プログラム］特性に戻ることもできます。

プログラムが［選択プログラム］特性を使用して呼び出されると、［並行起動］特性は無視され、プログラムはモーダルウィンドウとして表示されます。（サポートバージョン：2.2）

メインプログラムは、選択プログラムとして使用できません。

起動モード

［選択プログラム］特性で定義されたプログラムを呼び出す時期を指定します。有効な値は以下の通りです。

  • A=後置 …… 呼び出した選択プログラムが終了した時に、カーソルが次の項目に移動するように指定します。

  • B=前置 …… 呼び出した選択プログラムが終了した時に、カーソルが呼び出した項目に戻るように指定します。（デフォルト）

  • P=自動 …… 項目にカーソルが移動すると同時にプログラムが自動的に実行されるように指定します。これにより、ユーザは即座に値を選択できます。この場合は、選択プログラムが終了した後、前置モードの場合と同様にカーソルは呼び出した項目に戻ります。

照会モード時修正許可

タスクが照会モードでも、ユーザがコントロールの値を変更することができるようにするかどうかを指定します。

Android

iOS


表示コントロール チェックボックス 表示

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > チェックボックスコントロール > 表示

［チェックボックス］コントロールの表示

特性

内容

モバイル

複数行

以下のオプションがあります。

  • Yes …… 表示テキストが1行に収まらない場合、折返し表示されます。

  • No …… 表示テキストが1行に収まらない場合、コントロールの幅分のみ表示されます。

Android

iOS

3ステータス

この特性を「Yes」に設定した場合、チェックボックスは、３ステータス表示（「True」、「False」、「NULL」）をサポートします。

プログラムの実行時、以下のように表示されます。

  • False …… チェックされない（押されていない）

  • True …… チェックされている（押されている）

  • NULL …… チェックされている（押されている）。ただし、灰色で表示されます。

この特性を「Yes」にする場合、割り当てる項目の［NULL値可］特性も「Yes」にする必要があります。

フォント

コントロールに表示されるテキストのフォントを指定します。［アプリケーション用フォント一覧］にズームして選択するか、直接フォント番号を入力してください。

モバイル仕様：

Magic xpaで定義されるフォントサイズは、以下の式を使用してモバイル用デバイス上のピクセルに変換します。

（ピクセル単位のモバイル上のフォントサイズ) =（Windows上のフォントサイズ)*（デバイスのDPI/72)

Android

iOS

色

コントロールの色を指定します。［アプリケーション用基本色一覧］にズームして選択するか、直接基本色番号を入力してください。［スタイル］特性が、「2= 平面」の場合のみ有効です。

モバイル仕様：

デバイスでシステム色が使用される場合は、コントロールはOSのデフォルト色で表示されます。

Android

iOS

ヘルプ画面

コントロールと関連付けるヘルプ画面を指定します。この指定はオンラインフォームでのみ有効です。 ［ヘルプ一覧］にズームして、ヘルプ画面を選択できます。

リッチクライアント用コントロールの場合、URLヘルプのみサポートされます。この場合、URLは、（Web上でのURLではなく）サーバ側のファイルパスでを指定します。

ツールチップ

コントロールに関連付けるツールチップを指定します。［ヘルプ一覧］にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

自動ヘルプ

コントロールに関連付ける自動ヘルプを指定します。［ヘルプ一覧］にズームして自動ヘルプを選択できます。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。

可視

コントロールを表示させるかどうか指定します。論理値を返す式で指定することもできます。

Android

iOS

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

Android

iOS

表示方法

コントロールの表示方法を指定します。以下のオプションがあります。

  • B=ボックス(デフォルト) …… 通常のチェックボックス表示になります。

  • U=ボタン …… ボタン表示されます。「True」の状態の場合、ボタンが押されたような表示になります。

モバイル仕様：

「ボックス」のみサポートします。

スタイル

コントロールの外観を指定します。有効な値は、以下の通りです。

  • S=凹立体（デフォルト）

  • 2=平面

注意：

XPテーマが有効な場合、スタイルは同じように表示されます。

水平整列

コントロール内の水平方向のテキストの配置を指定します。有効な値は以下の通りです。

  • L=左寄せ

  • C=センタリング

  • R=右寄せ

垂直整列

コントロール内の垂直方向のテキストの配置を指定します。有効な値は以下の通りです。

  • T=上寄せ

  • C=センタリング

  • B=下寄せ

イメージファイル名

ここには、イメージファイル名を指定します。プログラム実行時にテキストの代わりに指定されたイメージが原寸で表示されます。

式で指定することでプログラム実行時に動的にイメージファイルを指定することができます。


チェックボックス モバイル特性

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > チェックボックスコントロール > モバイル

［チェックボックス］コントロールのモバイル

特性 | 内容 | モバイル
境界幅 | 境界線の幅をデバイスのdpiに基づくピクセル値で指定します。 ［イメージ一覧ファイル名］特性が設定されている場合に有効になります。 | iOS
境界色 | 境界線の色を指定します。 ［イメージ一覧ファイル名］特性が設定されている場合に有効になります。 | iOS
角半径 | コントロールの角の丸みの半径をデバイスのdpiに基づくピクセル値で指定します。 ［イメージ一覧ファイル名］特性が設定されている場合に有効になります。 デフォルト：2（［グループ］コントロールは、10） | iOS
イメージ一覧ファイル名 | モバイル用デバイス上に表示するイメージファイルの名前を指定します。Windows上で実行するプロジェクトを開発している場合は、［イメージファイル名］特性で定義してください。 この特性に値が設定されている場合、コントロールは実行中に（チェックボックスではなく)切り替え表示されるイメージボタンとして表示されます。イメージは、開発時の［フォーム］エディタには表示されません。 イメージフォーマットは、イメージボタンの場合と同じです。［ボタンスタイル］特性の「イメージボタン」の説明を参照してください。4つまたは6つのイメージを指定した場合、押下、無効、通常のイメージだけが使用されます。 コントロールの［テキスト］特性に値が設定されている場合、この値がイメージ上に表示されます。 例外：［値］特性が設定されたコントロールは、［テーブル］コントロール上で使用できません。 関連トピック： 2ステートのイメージボタンを定義するには | Android iOS
追加情報 | モバイル用のコントロールフォームに関連した追加情報を指定します。（この特性は、モバイルクライアントの今後の新機能に対応するためのものです。) この特性は、リッチクライアントタスクでのみ利用できます。 | Android iOS

サポートバージョン：

2.5


表示コントロール コンボボックス

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > コンボボックスコントロ－ル

［コンボボックス］コントロ－ル

［コンボボックス］コントロールは、エントリをリストから選択させることができます。コンボボックスの［高さ］特性は、ボックスが閉じた状態の高さを設定します。

［コンボボックス］コントロールの特性は、以下のセクション毎に定義されています。

モデル

詳細

データソース

入力

表示

表示

モバイル

パーク

位置とサイズ


表示コントロール コンボボックス 詳細

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > コンボボックスコントロ－ル > 詳細

［コンボボックス］コントロ－ルの詳細

特性

内容

モバイル

データ

データは、データ項目（値）または式として指定します。

Android

iOS

項目

［データ］特性で指定されたデータ項目の名前を表示します。

Android

iOS

コントロール名

コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や［コントロール］ロジックユニットで参照することができます。LastClicked 関数の説明を参照してください。
［コントロール名］特性は30桁に制限されます。末尾の空白は自動的に削除されます。［フォーム］エディタ内のコントロールのコピー処理では、この特性はコピーされません。

Android

iOS

型

選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。

Android

iOS

コンテキストメニュー

コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、［メニュー一覧］にアクセスできます。

式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は［メニュー一覧］内のメニュー番号として評価されます。

デフォルト値は「0」です。

Andorid

ドラッグ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic xpa以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。

このコントロールからコピーされたデータは、［ドラッグ開始］イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。

関連トピック：

ドラッグ&ドロップでデータをコピーするには

外部アプリケーションにデータをドラッグ&ドロップするには

ドロップ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic xpa以外のアプリケーションとの間のデータのドロップ処理を可能にします。

このコントロールへのデータのコピーは、［ドロップ］イベントによるロジックユニットによって意図的に行われるか、Magicエンジンにより自動的に行われます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。

関連トピック： 外部アプリケーションからMagic xpaにデータをドラッグするには


表示コントロール コンボボックス 入力

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > コンボボックスコントロ－ル > 入力

［コンボボックス］コントロ－ルの入力

特性

内容

モバイル

必須入力

エンドユーザがコントロールに値を入力する必要があるかどうかを指定します。必須にするかどうかを表す論理値を返す式を使用できます。

修正許可

実行時にユーザがコントロール内の値を変更できるかどうかを指定します。

  • Yes …… ユーザはコントロール内の値を変更できます。

  • No …… コントロールへのユーザアクセスは拒否されます。

Android

iOS

選択プログラム

このコントロールからズームして起動するプログラムを指定します。コントロールに割り当てられた項目は、自動的にプログラムに送られます。

呼び出されるプログラムが（［選択テーブル］特性が「Yes」に設定された)選択プログラムの場合に一般的に利用します。これによって選択リストから値を選択してコントロールの値を更新する処理が簡単に実現できます。

［選択プログラム］特性を設定した場合、［オプション］メニューの［オブジェクトに移動］を選択することで簡単に指定したプログラムに移動することができます。また、［オプション］メニューの［オブジェクトから戻る］を選択することで、［選択プログラム］特性に戻ることもできます。

プログラムが［選択プログラム］特性を使用して呼び出されると、［並行起動］特性は無視され、プログラムはモーダルウィンドウとして表示されます。（サポートバージョン：2.2）

メインプログラムは、選択プログラムとして使用できません。

起動モード

［選択プログラム］特性で定義されたプログラムを呼び出す時期を指定します。有効な値は以下の通りです。

  • A=後置 …… 呼び出した選択プログラムが終了した時に、カーソルが次の項目に移動するように指定します。

  • B=前置 …… 呼び出した選択プログラムが終了した時に、カーソルが呼び出した項目に戻るように指定します。（デフォルト）

  • P=自動 …… 項目にカーソルが移動すると同時にプログラムが自動的に実行されるように指定します。これにより、ユーザは即座に値を選択できます。この場合は、選択プログラムが終了した後、前置モードの場合と同様にカーソルは呼び出した項目に戻ります。

照会モード時修正許可

タスクが照会モードの場合も、コントロールの切替操作ができるかどうかを指定します。

Android

iOS


表示コントロール コンボボックス 表示

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > コンボボックスコントロ－ル > 表示

［コンボボックス］コントロ－ルの表示

特性

内容

モバイル

フォント

コントロールに表示されるテキストのフォントを指定します。［アプリ ケーション用フォント一覧］にズームして選択するか、直接フォント番号を入力してください。

モバイル仕様：

Magic xpaで定義されるフォントサイズは、以下の式を使用してモバイル用デバイス上のピクセルに変換します。

（ピクセル単位のモバイル上のフォントサイズ) =（Windows上のフォントサイズ)*（デバイスのDPI/72)

Android

iOS

色

コントロールの色を指定します。［アプリケーション用基本色一覧］に ズームして選択するか、直接基本色番号を入力してください。［スタイル］特性が、「2= 平面」の場合のみ有効です。

モバイル仕様：

モバイル用デバイスでシステム色が使用された場合、コントロールに対するOSのデフォルト色が表示されます。

Android

iOS

ヘルプ画面

コントロールに関連付けるヘルプ画面を指定します。 ［ヘルプ一覧］にズームして、ヘルプ画面を選択できます。

リッチクライアント用コントロールの場合、URLヘルプのみサポートされます。この場合、URLは、（Web上でのURLではなく）サーバ側のファイルパスでを指定します。

ツールチップ

コントロールに関連付けるツールチップを指定します。［ヘルプ一覧］に ズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容 をUnicode書式で定義します。

自動ヘルプ

コントロールに関連付ける自動ヘルプを指定します。［ヘルプ一覧］に ズームして自動ヘルプを選択できます。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表 示されます。

可視

コントロールを表示させるかどうか指定します。論理値を返す式で指定す ることもできます。

Android

iOS

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを 表す論理値を返す式を使用できます。

Android

iOS

列数

コントロールに表示する列数を指定します。

表示行数

［コンボボックス］コントロールにアクセスした時に表示される行数を指定します。

関連トピック： コンボボックスで表示されるドロップダウンリストの長さを制限するには


コンボボックス モバイル特性

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > コンボボックスコントロ－ル > モバイル

［コンボボックス］コントロ－ルのモバイル

特性 | 内容 | モバイル
境界幅 | 境界線の幅をデバイスのdpiに基づくピクセル値で指定します。 | Android iOS
境界色 | 境界線の色を指定します。 | Android iOS
角半径 | コントロールの角の丸みの半径をデバイスのdpiに基づくピクセル値で指定します。 デフォルト：2（［グループ］コントロールは、10） | Android iOS
追加情報 | モバイル用のコントロールフォームに関連した追加情報を指定します。（この特性は、モバイルクライアントの今後の新機能に対応するためのものです。) この特性は、リッチクライアントタスクでのみ利用できます。 | Android iOS

サポートバージョン：

2.5


表示コントロール エディット

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > エディットコントロール

［エディット］コントロール

［エディット］コントロールは、データ項目か（［データ］特性の［値］欄や［式］欄で指定された）式を設定します。［エディット］コントロールをカスタマイズするには、コントロールを選択して、ズームして［コントロール特性］シートにアクセスします。

［エディット］コントロールからドラッグした場合、選択されたテキストのみドラッグされます。

[エディット］コントロールの特性は、以下のセクション毎に定義されています。

モデル

詳細

入力

表示

モバイル

パーク

位置とサイズ


表示コントロール エディット 詳細

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > エディットコントロール > 詳細

［エディット］コントロールの詳細

特性

内容

モバイル

データ

データは、データ項目または式として指定します。

Android

iOS

項目

［データ］特性で指定されたデータ項目の名前が表示されます。

Android

iOS

コントロール名

コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や［コントロール］ロジックユニットで参照することができます。LastClicked関数の説明も参照してください。

［コントロール名］特性は30桁に制限されます。末尾の空白は自動的に削除されます。［フォーム］エディタ内のコントロールのコピー処理では、この特性はコピーされません。

Android

iOS

書式

［エディット］コントロールの書式を指定します。ここで変更できるのは、現在のフォーム表示の形式だけです。初期設定値は、項目の［書式］特性から継承された書式になります。［式］エディタにズームして、コントロールの書式を表す式を入力することもできます。

モバイル仕様：

コントロールを抜けた時点で（文字を入力した後を除き)、文字型とUnicode型の［エディット］コントロールの書式マスクが評価されます。これは、モバイルデバイスのビルトインのオートコンプリート機能をサポートしています。（サポートバージョン：2.3）

Android

iOS

型

選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。

Android

iOS

漢字入力

この特性は、かな漢字変換プログラム（IME）を自動起動するためのものです。IME を手動で起動する場合は、特にこの特性の設定は必要ありません。

かな漢字変換入力モードの値を返す式を［式］エディタに設定し、その式番号をこの式欄に設定します。ただし、式が返す値は0 ～9 で、式番号は255 以下でなければなりません。

モバイル仕様：

［キーボードタイプ］特性の設定が優先されます。

Android

iOS

コンテキストメニュー

コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、［メニュー一覧］にアクセスできます。

式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は［メニュー一覧］内のメニュー番号として評価されます。

デフォルト値は「0」です。

Andorid

ドラッグ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic xpa以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。

このコントロールからコピーされたデータは、［ドラッグ開始］イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。

関連トピック： ドラッグ&ドロップでデータをコピーするには

ドロップ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic xpa以外のアプリケーションとの間のデータのドロップ処理を可能にします。

このコントロールへのデータのコピーは、［ドロップ］イベントによるロジックユニットによって意図的に行われるか、Magicエンジンにより自動的に行われます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。


表示コントロール エディット 入力

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > エディットコントロール > 入力

［エディット］コントロールの入力

特性

内容

モバイル

複数行編集

［エディット］コントロールに複数行のテキストを含めることができるかどうかを指定します。

テーブル内にこのコントロールがある場合、テーブルのセルは［エディット］コントロールのサイズに合わせて拡大されます。テーブルのタイトルは各ページに出力されます。そのほかのコントロールは、［エディット］コントロールの上または下に表示されます。

Android

iOS

水平スクロール

コントロールの幅を超えた入力が行われた場合の動作を指定します。［複数行編集］特性が［Yes］に設定されている［エディット］コントロールに適用されます。

  • W=ワードラップ (デフォルト) …… 自動的に折り返されます(GUI表示と同じ動作になります)。

  • Y=Yes …… 自動的にスクロールバーが表示されます。Enterを押下しない限り複数行表示されません。

  • N=No …… コントロールの幅を超えて入力することができません。Enterを押下して改行することで入力を継続できます。

垂直スクロール

コントロールの行の間を垂直方向にスクロールを可能にするかどうかを指定します。［複数行編集］特性が「Yes」に設定されているコントロールに適用されます。

CR許可

エンドユーザがEnterキーを押下した時にコントロール内の次の行に移動するか、コントロールを終了するかを指定します。［複数行編集］が「Yes」に設定されているコントロールに適用されます。

iOS

パスワードエディット

コントロールへのアクセスをパスワード保護するかどうかを指定します。 ［複数行編集］特性が「False」のときのみ有効になります。

  • No (デフォルト) …… 入力した内容は保護されず、そのまま表示されます。

  • Yes …… 入力した内容は、OSのパスワード文字(OSによって異なります）で表示され、保護されます。

注意：

［複数行編集］特性が「Yes」に設定された場合、この特性は無効になります。

キャップスロックがONの場合、警告が表示されます。

Android

iOS

自動拡張

必要な時に自動的に拡張ウィンドウをオープンするかどうかを指定します。この特性が「Yes」に設定された場合、ユーザが現在のコントロールの幅を超えた位置にカーソルを動かしたり、テキストを入力すると拡張ウィンドウが自動的にオープンされます。

必須入力

エンドユーザがコントロールに値を入力する必要があるかどうかを指定します。必須にするかどうかを表す論理値を返す式を使用できます。

Android

iOS

修正許可

実行時にユーザがコントロール内の値を変更できるかどうかを指定します。

  • Yes …… ユーザはコントロール内の値を変更できます。

  • No …… コントロールへのユーザアクセスは拒否されます。

関連トピック： エンドユーザが特定の項目の内容を変更することを防止するには

Android

iOS

照会モード時修正許可

タスクが照会モード時にコントロールの値を変更することができるかどうかを指定します。

Android

iOS

選択プログラム

このコントロールからズームして起動するプログラムを指定します。コントロールに割り当てられた項目は、自動的にプログラムに送られます。

呼び出されるプログラムが（［選択テーブル］特性が「Yes」に設定された)選択プログラムの場合に一般的に利用します。これによって選択リストから値を選択してコントロールの値を更新する処理が簡単に実現できます。

［選択プログラム］特性を設定した場合、［オプション］メニューの［オブジェクトに移動］を選択することで簡単に指定したプログラムに移動することができます。また、［オプション］メニューの［オブジェクトから戻る］を選択することで、［選択プログラム］特性に戻ることもできます。

プログラムが［選択プログラム］特性を使用して呼び出されると、［並行起動］特性は無視され、プログラムはモーダルウィンドウとして表示されます。（サポートバージョン：2.2）

メインプログラムは、選択プログラムとして使用できません。

起動モード

［選択プログラム］特性で指定したプログラムの起動モードを指定します。

  • B=前置 …… ［ズーム］イベントにより選択プログラムが実行されます。プログラム終了時、項目上にカーソルは残ったままになります。

  • P=自動 …… コントロールにカーソルが置かれた時点で自動的に選択プログラムが実行されます。

  • A=後置 …… ［ズーム］イベントにより選択プログラムが実行されます。プログラム終了時、次の項目上にカーソルは移動します。


表示コントロール エディット 表示

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > エディットコントロール > 表示

［エディット］コントロールの表示

特性

内容

モバイル

境界

コントロールの境界線を表示するかどうかを指定します。

モバイル仕様：

Androidの場合：この特性は、非システム色のみ有効です。システム色の場合、この特性は無視され、境界表示はOSに依存します。

Android

iOS

フォント

コントロールに表示されるテキストのフォントを指定します。［アプリケーション用フォント一覧］にズームして選択するか、直接フォント番号を入力してください。

モバイル仕様：

Magic xpaで定義されるフォントサイズは、以下の式を使用してモバイル用デバイス上のピクセルに変換します。

（ピクセル単位のモバイル上のフォントサイズ) =（Windows上のフォントサイズ)*（デバイスのDPI/72)

Android

iOS

色

コントロールの色を指定します。［アプリケーション用基本色一覧］にズームして選択するか、直接基本色番号を入力してください。

モバイル仕様：

モバイル用デバイスでシステム色が使用された場合、コントロールに対するOSのデフォルト色が表示されます。

Android

iOS

ヘルプ画面

コントロールに関連付けるヘルプ画面を指定します。 ［ヘルプ一覧］にズームして、ヘルプ画面を選択できます。

リッチクライアント用コントロールの場合、URLヘルプのみサポートされます。この場合、URLは、（Web上でのURLではなく）サーバ側のファイルパスでを指定します。

ツールチップ

コントロールに関連付けるツールチップを指定します。［ヘルプ一覧］にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

自動ヘルプ

コントロールに関連付ける自動ヘルプを指定します。［ヘルプ一覧］にズームして自動ヘルプを選択できます。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。

可視

コントロールを表示させるかどうか指定します。論理値を返す式で指定することもできます。

Android

iOS

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

Android

iOS

水平整列

コントロール内の水平方向のテキストの配置を指定します。有効な値は以下の通りです。

  • L=左寄せ

  • C=センタリング

  • R=右寄せ

Android

iOS

垂直整列

コントロール内の垂直方向のテキストの配置を指定します。有効な値は以下の通りです。

  • T=上寄せ

  • C=センタリング

  • B=下寄せ

Android


エディット モバイル特性

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > エディットコントロール > モバイル

［エディット］コントロールのモバイル

特性

説明

モバイル

境界幅

デバイスのdpiに基づきピクセル単位で境界線の幅を定義します。

Android, iOS

境界色

境界線の色を定義します。

Android, iOS

フォーカス時の境界幅

［エディット］コントロールにフォーカスが合う時、デバイスのdpiに基づくピクセル単位で境界線の幅を定義します。

Android, iOS

フォーカス時の境界色

［エディット］コントロールにフォーカスが合うときの境界線の色を定義します。

Android, iOS

角半径

デバイスのdpiに基づきコントロールの角半径をピクセル単位で定義します。

モバイル仕様：

iOSデバイスでは、テーブル上のコントロールでは、コントロールの境界や特に角半径を指定すると、テーブルのパフォーマンスが低下する場合があります。

Android, iOS

ピッカー

OSのネイティブな日付と時間のピッカーを開くようにするかどうかを定義します。日付／時間型の［エディット］コントロールでのみ有効です。

Android, iOS

編集ダイアログ

コントロールの編集をダイアログボックスで行うか、コントロール上で行うかを定義します。文字型／Unicod型の［エディット］コントロールでのみ有効です。

Android

デフォルト整列

コントロールがデバイスのデフォルトの整列ルールを使用するか、［水平整列］特性を使用するかを定義します。この特性が「Yes」に設定されると以下のように動作します。

  • コントロールの英語テキストは左側に整列します。

  • ［水平整列］／［垂直整列］の特性は、無視されます。

この特性を「No」に設定した場合は、以下のように動作します。

  • テキストは、［水平整列］特性に基づいて表示します。

Android

ヒント

コントロールのヒントとして使用されるテキスト。ヒントは、タイプ入力している間に自動的に削除される［エディット］コントロールの上で表示されるテキストです。

例外：iOSデバイスの場合、ヒントは複数行の［エディット］コントロールにはにサポートされません。

関連トピック： モバイル上の[エディット]コントロールにヒントを定義するには

Android, iOS

キーボードタイプ

キーボードタイプを定義します。オプションは以下の通りです。

  • Default …… デバイスのデフォルトのキーボードタイプ

  • Numeric …… 数字と記号が入力可

  • URL …… テキストとURL用文字（.comなど）が入力可

  • Number Pad …… 数値テキストと電話番号が入力可

  • Phone Pad …… 電話番号が入力可

  • Name Phone Pad …… 数値テキストが入力可

  • Email …… テキストとeMailアドレスが入力可

モバイル側のキーボードの設定によって表示内容が異なります。

［漢字入力］特性の設定より優先されます。

関連トピック： モバイル上でキーボードをカスタマイズするには

Android, iOS

キーボードのリターンキー

リターンキーに表示されるテキストを定義します。オプションは以下の通りです。

  • Default …… デフォルトのOSのリターンキー値（次のコントロールがある場合は、「Next」、最後のコントロールの場合は、「Done」)を表示します。

  • Next …… 「次へ」または「Next」などを表示し、［次項目］イベントを発行します。

  • Previous …… 「戻る」または「Prev」などを表示し、［前項目］イベントを発行します。

  • Go …… 「開く」または「Go」などを表示し、タップすると［選択］イベントを発行します。

  • Search …… 「検索」または「Search」などを表示し、［選択］イベントを発行します。

  • Done …… 「完了」または「Done」などを表示し、［選択］イベントを発行します。

［テーブル］コントロール内のコントロールではサポートされません。

モバイル側のキーボードの設定によって表示内容が異なります。

関連トピック：モバイル上でキーボードをカスタマイズするには

Android, iOS

サジェスト有効

サジェスト用（入力途中に予測を行い、入力文字列の下に候補として表示する）テキストを使用するかどうかを定義します。この特性は、文字型／Unicode型のコントロールでのみサポートされます。

Android

追加情報

モバイル用デバイス上でコントロールに関連した追加情報を定義します。

この特性は、リッチクライアントタスクでのみ利用できます。

以前使用していた値は、廃止予定の追加情報パラメータを参照してください。

Android, iOS

サポートバージョン：

2.5


表示コントロール グループ

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > グループコントロール

［グループ］コントロール

［グループ］コントロールは、複数のコントロールを表示の上で集めるためのスタティックな長方形のボックスを定義します。グループの説明のためにラベルを含めることができます。

[グループ］コントロールの特性は、以下のセクション毎に定義されています。

モデル

詳細

入力

表示

モバイル

位置とサイズ


表示コントロール グループ 詳細

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > グループコントロール > 詳細

［グループ］コントロールの詳細

特性

内容

モバイル

テキスト

コントロールに表示するテキストを指定します。

この特性には、Unicode値のみ有効です。

コントロール名

コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や[コントロール]ロジックユニットで参照することができます。LastClicked関数の説明も参照してください。

[コントロール名]特性は30桁に制限されます。末尾の空白は自動的に削除されます。[フォーム]エディタ内のコントロールのコピー処理では、この特性はコピーされません。

Android

iOS

コンテキストメニュー

コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、[メニュー一覧]にアクセスできます。

式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は[メニュー一覧]内のメニュー番号として評価されます。

デフォルト値は「0」です。

Andorid

ドラッグ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic xpa以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。

このコントロールからコピーされたデータは、［ドラッグ開始］イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。

関連トピック：

ドラッグ&ドロップでデータをコピーするには

外部アプリケーションにデータをドラッグ&ドロップするには

ドロップ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic xpa以外のアプリケーションとの間のデータのドロップ処理を可能にします。

このコントロールへのデータのコピーは、［ドロップ］イベントによるロジックユニットによって意図的に行われるか、Magicエンジンにより自動的に行われます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。

関連トピック： 外部アプリケーションからMagic xpaにデータをドラッグするには


表示コントロール グループ 表示

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > グループコントロール > 表示

［グループ］コントロール表示

特性

内容

モバイル

フォント

コントロールに表示されるテキストのフォントを指定します。[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。

モバイル仕様：

Magic xpaで定義されるフォントサイズは、以下の式を使用してモバイル用デバイス上のピクセルに変換します。

（ピクセル単位のモバイル上のフォントサイズ) =（Windows上のフォントサイズ)*（デバイスのDPI/72)

Android

iOS

色

コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。

モバイル仕様：

モバイル用デバイスでシステム色が使用された場合、コントロールに対するOSのデフォルト色が表示されます。

Android

iOS

グラデーションスタイル

この特性は、グラデーションの表示スタイルを定義します。[グラデーションスタイル]ダイアログボックスを開き、スタイルを選択して [image] をクリックしてください。

注意：

表示されるグラデーションは、[グラデーション色]特性の前景色から背景色へと変化します。「N=なし」が設定された場合、[色]特性の背景色が表示されます。

モバイル仕様：

次のスタイルのみサポートします：水平、垂直、斜め右、斜め左（サポートバージョン：2.2）

Android

iOS

グラデーション色

この特性は、グラデーション表示の色を定義します。

[グラデーションスタイル]特性の値を変更すると、この特性が無効になる場合があります。

（モバイルのサポートバージョン：2.2）

Android

iOS

ツールチップ

コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

可視

コントロールを表示させるかどうか指定します。論理値を返す式で指定することもできます。

Android

iOS

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

Android

iOS


表示コントロール イメージ

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > イメージコントロール

［イメージ］コントロール

［イメージ］コントロールに、イメージファイル名を指定したり、、イメージが保存されたデータ項目を指定したり、イメージファイル名を示す式を定義することによってイメージを挿入することができます。

イメージは、2つのモードで使用することができます：

  • スタティックコントロール …… ［データ］特性が定義されていない場合、コントロールはスタティックです。ファイル名やパス名は［デフォルトイメージファイル名］特性で指定します。

  • ダイナミックコントロール …… データ項目または式が［データ］特性で設定されると、コントロールはダイナミックとなります。ここには、ファイル名やパス名の値が含まれた値を指定します。

注意：

  • アニメーションや透過のGIFファイルは、［イメージスタイル］特性が「コピー」の場合のみ表示されます。

  • コントロールを透過の背景色で表示させるには、［スタイル］特性を「平面」に設定し、背景色が透過の色を設定する必要があります。

  • フォームのコントロールサイズがイメージのサイズとは異なる場合、イメージが引き延ばされるため、ゆがめられて表示される可能性があります。正確なコントロールのサイズを維持するには、水平精度および垂直精度の値を高く設定し、［コマンド］パレットの［サイズ調整］オプションを使用することを推奨します。

  • サポートされるイメージタイプは、｢サポートするイメージフォーマット｣を参照してください。

  • 一度イメージが読み込まれるとメモリキャッシュに保存されるため、イメージが更新された場合タスクが再起動されるまで反映されません。

[イメージ］コントロールの特性は、以下のセクション毎に定義されています。

モデル

詳細

表示

モバイル

パーク

位置とサイズ

透過

表示フォームでは、コントロールをその背景上で透過表示させるためには、コントロールは平面表示にする必要があります。そして、その色は背景色で透過指定していなければりません。

出力フォームでは、透過イメージはサポートされません。

モバイル仕様：

  • アニメーションGIFはサポートされません。

  • モバイルクライアントは、異なる解像度の画面に対応した代替イメージをサポートします。詳細は、代替えイメージ を参照してください。


表示コントロール イメージ 詳細

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > イメージコントロール > 詳細

［イメージ］コントロールの詳細

特性

内容

モバイル

データ

データは、データ項目（値）または式として指定します。

設定するデータ型にもとづいて以下のような設定が必要です。

  • 文字型 …… ［読込元］特性が「サーバ」の場合、サーバのファイルパスを指定(フォルダの区切り文字は、\"バックスラッシュ"）します。［読込元］特性が「クライアント」の場合、ServerfiletoClient関数の戻り値を指定します。

  • BLOB（バイナリ）型 …… ［読込元］特性が「サーバ」の場合、表示されません。［読込元］特性が「クライアント」の場合、ClientFile2Blb('ServerfiletoClient関数の戻り値')を指定します。

  • BLOB（ANSI）型 …… 、ファイル名を指定しても、表示されません。

Android

iOS

項目

［データ］特性で指定されたデータ項目の名前が表示されます。

Android

iOS

コントロール名

コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や［コントロール］ロジックユニットで参照することができます。LastClicked関数の説明も参照してください。

［コントロール名］特性は30桁に制限されます。末尾の空白は自動的に削除されます。［フォーム］エディタ内のコントロールのコピー処理では、この特性はコピーされません。

Android

iOS

型

選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。

Android

iOS

デフォルトイメージファイル名

フォームエディタ上で表示されるイメージファイルの名前を指定します。

オンラインタスクでのみ有効です。

注意：

MAGIC.INIファイルの［MAGIC_SPECIALS］セクションに "SpecialConvAddSlash=N" というパラメータが設定されていない場合、［データ］特性にイメージファイルのパスを定義する必要があります。

開発イメージファイル名

開発時に［フォーム］エディタで表示されるイメージファイルの名前を指定します。

リッチクライアントタスクでのみ有効です。

イメージの読込元

イメージファイルをサーバ／クライアントのどちらから取得するかを指定します。「サーバ」を指定した場合、イメージファイルを自動的にクライアントに転送します。

イメージコントロール・データがURL（http//またはhttps//で始まる）で指定されている場合、この特性は「サーバ」に設定してください。

また、オフラインRIAプログラムの場合も、「サーバ」を指定してください。

リッチクライアントタスクでのみ有効です。

（モバイルのサポートバージョン：2.2）

Android

iOS

コンテキストメニュー

コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、［メニュー一覧］にアクセスできます。

式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は［メニュー一覧］内のメニュー番号として評価されます。

デフォルト値は「0」です。

ドラッグ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic xpa以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。

このコントロールからコピーされたデータは、［ドラッグ開始］イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。

関連トピック：

ドラッグ&ドロップでデータをコピーするには

外部アプリケーションにデータをドラッグ&ドロップするには

ドロップ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic xpa以外のアプリケーションとの間のデータのドロップ処理を可能にします。

このコントロールへのデータのコピーは、［ドロップ］イベントによるロジックユニットによって意図的に行われるか、Magicエンジンにより自動的に行われます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。

関連トピック： 外部アプリケーションからMagic xpaにデータをドラッグするには


表示コントロール イメージ 表示

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > イメージコントロール > 表示

［イメージ］コントロールの表示

特性

内容

モバイル

色

コントロールの色を指定します。［アプリケーション用基本色一覧］にズームして選択するか、直接基本色番号を入力してください。

モバイル仕様：

  • モバイル用デバイスでシステム色が使用された場合、コントロールに対するOSのデフォルト色が表示されます。

  • Androidの場合は、次の2つの色が必要です：「通常」と「押下」。Magic xpaでは、コントロールには1つの色しか定義できないため、コントロールに色が定義された場合、この色は「通常」（「押下」ではありません）として表示されます。システムのネイティブな「押下」色が、コントロールの押下色として使用されます。このため、例えば［プッシュボタン］コントロールの［色］のデフォルト色が「通常」（=グレイ）、「押下」（=青）に設定された場合、Magic側でコントロールの［色］特性を「赤」に設定すると、押下されない場合は赤色で表示され、押下されると青色で表示されます。

Android

iOS

ツールチップ

コントロールに関連付けるツールチップを指定します。［ヘルプ一覧］にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

可視

コントロールを表示させるかどうか指定します。論理値を返す式で指定することもできます。

Android

iOS

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

Android

iOS

スタイル

コントロールの外観を指定します。有効な値は、以下の通りです。

  • N=境界なし（デフォルト）

  • S=凹立体

  • 2=平面

モバイル仕様：

「境界なし」以外は、全て同じように表示されます。

Android

iOS

イメージスタイル

イメージをイメージコントロールに合わせる方法を指定します。有効な値は以下の通りです。

  • T=タイル …… 領域全体が埋まるまで、イメージを繰り返しコントロールにコピーします。

  • C=コピー …… イメージをそのままコントロールにコピーします。コントロールより大きいイメージはトリミングされます。イメージがコントロールより小さい場合、コントロールのカバーされていない部分に背景色が塗られます。

  • S=フィットスケール …… イメージが、イメージコントロールの高さまたは幅に収まるようにサイズが調整されてコピーされます。この場合、イメージの縦横比は維持されます。イメージの縦横比とコントロールの縦横比が同じでない場合、コントロールの一部がカバーされないままになることがあります。

  • F=フィルスケール …… イメージが、イメージコントロールの領域を全て埋めるようにコピーされます。イメージの縦横比は維持されます。イメージの縦横比とコントロールの縦横比が同じでない場合、イメージの一部だけがコントロールに表示されることがあります。

  • D=コントロールスケール …… イメージの縦横比が調整され、イメージコントロールの領域を全て埋めるようにコピーされます。したがって、元のイメージは縦長または横長になります。イメージの縦横比とコントロールの縦横比が同じでない場合、縮小または拡大されたイメージは歪んでいます。

注意：

  • アニメーション化されたGifファイルの場合は、「コピー」でのみ表示できます。

  • コントロールを透過の背景色で表示させるには、［スタイル］特性を「平面」に設定し、背景色が透過の色を設定する必要があります。

モバイル仕様：

  • AndroidとiOSの場合：

    • デバイスのDPIが考慮されないため、［スタイル］特性で「コピー」を使用することは推奨しません。この場合、デバイスが異なると異なるサイズで表示されます。

    • 「フィットスケール」の場合、［イメージ］コントロールの中央に表示されます。

  • Androidの場合のみ：「フィルスケール」では、コントロールの中央に配置されます。

Android

iOS


代替えイメージ

AndroidとiOS のRIAクライアントは、異なる解像度の画面のために代替イメージをサポートします。

以下に定義されているように、異なる解像度の異なるイメージを定義することができ、サーバ上の指定したサブフォルダにこれらを置くことができます。RIAクライアントは、デバイスの特性にもとづいて対応するイメージを自動的に読み込みます。

注意：

  • ServerFileToClient()関数は同じアルゴリズムを使用しています。このためイメージ（または、一般的な任意のファイル)を取得する必要がある場合、それは同じ規則に従って実行されます。

  • device_resource-folderの値を指定してClientOSEnvGet（)関数を使用することで、このメカニズムが使用されるデバイス特性を参照することができます。

Androidデバイス：

検索は、プラットホーム（Android)や画面サイズ（例：normal, large）、画面形式（例：ong, not long）、画面のピクセルサイズ（dpi、例：hdpi）に基づいて行われます。

検索はAndroidアルゴリズムに基づいてこれらのパラメータの異なる組合せで行われるため、これらのパラメータを全て指定する必要があるというわけではありません。

以下も参照してください：http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources

たとえば、イメージファイルが"C：\images\a.jpg" と定義されている場合、Androidデバイス用で、大きい画面サイズが"large"、画面形式が"not long"、解像度は"hdpi"の場合、例えば、以下のような様々なデバイス特性に対応したサブフォルダにイメージを置くことができます。

  • c:\images\Android\

  • c:\images\Android\large\

  • c:\images\Android\large\hdpi\

  • c:\images\Android\hdpi\

iOSデバイス：

検索処理は、プラットフォーム（iOS）とデバイス修飾子に（例：~iPad、~iPhone)、そしてRetinaを示す指標（例：@2）に基づいて実行されます。

イメージが指定したサブフォルダ内で見つからない場合、親のフォルダを検索し、元のフォルダまで検索を継続します。

たとえば、画像ファイルが”c：\images\a.jpg”と定義されている場合、iPad 2（Retina）で実行すると、サーバ上の”c:\images\iOS\@2x~iPad\”のフォルダ内の”a.jpg”ファイルを取得します。ファイルが見つからない場合、”C\images\iOS\” を検索し、さらに”c:\images\” からファイルを検索します。

以下も参照してください：http://developer.apple.com/library/ios/#DOCUMENTATION/iPhone/Conceptual/iPhoneOSProgrammingGuide/App-RelatedResources/App-RelatedResources.html


表示コントロール ラベル

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ラベルコントロール

［ラベル］コントロール

スタティックな［ラベル（テキスト）］コントロールを挿入します。

[ラベル］コントロールの特性は、以下のセクション毎に定義されています。

モデル

詳細

入力

表示

モバイル

位置とサイズ


表示コントロール ラベル 詳細

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ラベルコントロール > 詳細

［ラベル］コントロールの詳細

特性

内容

モバイル

テキスト

コントロールに表示するテキストを指定します。 この特性には、Unicodeのみ入力できます。

式エディタにズームして、式を入力することによって、実行時の値を動的に指定することもできます。

Android

iOS

コントロール名

コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や［コントロール］ロジックユニットで参照することができます。LastClicked関数の説明も参照してください。

［コントロール名］特性は30桁に制限されます。末尾の空白は自動的に削除されます。［フォーム］エディタ内のコントロールのコピー処理では、この特性はコピーされません。

Android

iOS

RTFの使用

リッチテキスト形式を有効にするかどうかを指定します。[スタティックタイプ]特性が「テキスト」の場合のみ有効です。

オンラインタスクでのみ有効です。

コンテキストメニュー

コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、［メニュー一覧］にアクセスできます。

式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は［メニュー一覧］内のメニュー番号として評価されます。

デフォルト値は「0」です。

ドラッグ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic xpa以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。

このコントロールからコピーされたデータは、［ドラッグ開始］イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。

関連トピック：

ドラッグ&ドロップでデータをコピーするには

外部アプリケーションにデータをドラッグ&ドロップするには

ドロップ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic xpa以外のアプリケーションとの間のデータのドロップ処理を可能にします。

このコントロールへのデータのコピーは、［ドロップ］イベントによるロジックユニットによって意図的に行われるか、Magicエンジンにより自動的に行われます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。

関連トピック： 外部アプリケーションからMagic xpaにデータをドラッグするには


表示コントロール ラベル 入力

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ラベルコントロール > 入力

［ラベル］コントロールの入力

特性 | 内容 | モバイル
複数行 | コントロールに複数行のテキストを含めることができるかどうかを指定します。 | Android iOS


表示コントロール ラベル 表示

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ラベルコントロール > 表示

［ラベル］コントロールの表示

特性

内容

モバイル

境界

コントロールに境界線を表示するかどうかを指定します。

オンラインタスクでのみ有効です。

フォント

コントロールに表示されるテキストのフォントを指定します。［アプリケーション用フォント一覧］にズームして選択するか、直接フォント番号を入力してください。

モバイル仕様：

Magic xpaで定義されるフォントサイズは、以下の式を使用してモバイル用デバイス上のピクセルに変換します。

（ピクセル単位のモバイル上のフォントサイズ) =（Windows上のフォントサイズ)*（デバイスのDPI/72)

Android

iOS

色

コントロールの色を指定します。［アプリケーション用基本色一覧］にズームして選択するか、直接基本色番号を入力してください。

モバイル仕様：

デバイスでシステム色が使用される場合は、コントロールはOSのデフォルト色で表示されます。

Android

iOS

グラデーションスタイル

この特性は、グラデーションの表示スタイルを定義します。［グラデーションスタイル］ダイアログボックスを開き、スタイルを選択して [image] をクリックしてください。

注意：

表示されるグラデーションは、［グラデーション色］特性の前景色から背景色へと変化します。「N=なし」が設定された場合、［色］特性の背景色が表示されます。

モバイル仕様：

次のスタイルのみサポートします：水平、垂直、斜め右、斜め左（サポートバージョン：2.2）

Android

グラデーション色

この特性は、グラデーション表示の色を定義します。

［グラデーションスタイル］特性の値を変更すると、この特性が無効になる場合があります。

（モバイルのサポートバージョン：2.2）

Android

ツールチップ

コントロールに関連付けるツールチップを指定します。［ヘルプ一覧］にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

可視

コントロールを表示させるかどうか指定します。論理値を返す式で指定することもできます。

Android

iOS

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

Android

iOS

スタイル

コントロールの外観を指定します。有効な値は、以下の通りです。

  • N=境界なし（デフォルト）

  • 2=平面

  • S=凹立体

  • 3=凸立体

  • W=Windows立体 …… Windowsの標準的なコントロール表示になります。

  • E=エンボス

モバイル仕様：

「境界なし」以外は同じように表示されます。

Android

iOS

水平整列

コントロール内の水平方向のテキストの配置を指定します。有効な値は以下の通りです。

  • L=左寄せ

  • C=センタリング

  • R=右寄せ

Android

iOS

垂直整列

コントロール内の垂直方向のテキストの配置を指定します。有効な値は以下の通りです。

  • T=上寄せ

  • C=センタリング(デフォルト)

  • B=下寄せ

Android


表示コントロール ライン

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ラインコントロール

［ライン］コントロール

［ライン］コントロールは、2つの格子点の間でライン（線）を描画します。ラインは、エディットボックスと一緒に配置することができます。

［ライン］コントロールの特性は、以下のセクション毎に定義されています。

モデル

詳細

表示

モバイル

位置とサイズ


表示コントロール ライン 詳細

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ラインコントロール > 詳細

［ライン］コントロールの詳細

特性

内容

モバイル

コントロール名

コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や［コントロール］ロジックユニットで参照することができます。

［コントロール名］特性は30桁に制限されます。末尾の空白は自動的に削除されます。［フォーム］エディタ内のコントロールのコピー処理では、この特性はコピーされません。

Android

iOS

ドラッグ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic xpa以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。

このコントロールからコピーされたデータは、［ドラッグ開始］イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。

関連トピック：

ドラッグ&ドロップでデータをコピーするには

外部アプリケーションにデータをドラッグ&ドロップするには

ドロップ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic xpa以外のアプリケーションとの間のデータのドロップ処理を可能にします。

このコントロールへのデータのコピーは、［ドロップ］イベントによるロジックユニットによって意図的に行われるか、Magicエンジンにより自動的に行われます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。

関連トピック： 外部アプリケーションからMagic xpaにデータをドラッグするには


表示コントロール ライン 表示

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ラインコントロール > 表示

［ライン］コントロールの表示

特性

内容

モバイル

色

コントロールの色を指定します。［アプリケーション用基本色一覧］にズームして選択するか、直接基本色番号を入力してください。

モバイル仕様：

モバイル用デバイスでシステム色が使用された場合、コントロールに対するOSのデフォルト色が表示されます。

Android

iOS

ツールチップ

コントロールに関連付けるツールチップを指定します。［ヘルプ一覧］にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

可視

コントロールを表示させるかどうか指定します。論理値を返す式で指定することもできます。

Android

iOS

スタイル

コントロールの外観を指定します。有効な値は、以下の通りです。

  • 2=平面

  • 3=凸立体（デフォルト）

  • S=凹立体

線種

コントロールの線の外観を指定します。［スタイル］特性が「2=平面」の場合のみ有効です。有効な値は以下の通りです。

  • R=実線

  • T=点線

  • S=破線

  • A=一点鎖線

  • D=二点鎖線

線幅

コントロールの線の幅を指定します。幅はフォームの寸法単位により異なります。［スタイル］特性が「2=平面」の場合のみ有効です。


ライン モバイル特性

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ラインコントロール > モバイル

［ライン］コントロールのモバイル

特性 | 内容 | モバイル
追加情報 | モバイル用のコントロールフォームに関連した追加情報を指定します。（この特性は、モバイルクライアントの今後の新機能に対応するためのものです。) この特性は、リッチクライアントタスクでのみ利用できます。 | Android iOS

サポートバージョン：

2.5


表示コントロール 特性 ライン 位置とサイズ

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ラインコントロール > 位置とサイズ

［ライン］コントロールの位置とサイズ

特性

内容

モバイル

位置

この特性は、フォームのサイズが変更された場合にコントロールのサイズをどのように対応させるかを指定することができます。

[位置]特性は、[コントロールの位置付]ダイアログ内の[左辺割合]、[幅割合]、[上辺割合]、[高さ割合]の組み合わせになります。この特性からズームして[コントロールの位置付]ダイアログを表示できます。

この特性の設定項目を「100」に設定すると、フォームの対応する方向の変更サイズに対して100%連動することを意味しています。「50」に設定した場合、半分のサイズで連動します。特性が「0」に設定した場合、フォームのサイズを変更しても、コントロールの相対的なサイズは変わりません。

[位置]特性を持つコントロールは、元のサイズより小さいサイズにはできません。

Android

iOS

X1

選択したラインの左側の点のx座標

Android

iOS

Y1

選択したラインの左側の点のy座標

Android

iOS

X2

選択したラインの右側の点のx座標

Android

iOS

Y2

選択したラインの右側の点のy座標

Android

iOS

コントロールレイヤ

コントロールがチョイスコントロールの子としてリンクされている場合、選択したコントロールのリンク先である親のチョイスコントロールの階層を表示します。

例えば、3つの選択肢が定義されたメニューを持つコンボボックスがフォームに配置されている場合、エディットを3番目の選択肢にリンクすると、この特性に番号3が表示されます。この特性は、常に無効になっており、フォームレイアウトでのみ変更できます。この特性は、チョイスコントロールにリンクされているコントロールにのみ有効です。


表示コントロール リストボックス

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > リストボックスコントロール

［リストボックス］コントロール

［リストボックス］コントロールは、エンドユーザのに対する選択リストを表示するためのコントロールです。［リストボックス］コントロールは、選択項目のコレクションを表示すために使用され、項目の選択をサポートします。

［リストボックス］コントロールの特性は、以下のセクション毎に定義されています。

モデル

詳細

データソース

入力

表示

モバイル

パーク

位置とサイズ

モバイル仕様：

［リストボックス］コントロールは、サポートされません。


表示コントロール リストボックス 詳細

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > リストボックスコントロール > 詳細

［リストボックス］コントロールの詳細

特性

内容

データ

データは、データ項目（値）または式として指定します。

項目

［データ］特性で指定されたデータ項目の名前を表示します。

コントロール名

コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や［コントロール］ロジックユニットで参照することができます。LastClicked関数の説明も参照してください。

［コントロール名］特性は30桁に制限されます。末尾の空白は自動的に削除されます。［フォーム］エディタ内のコントロールのコピー処理では、この特性はコピーされません。

型

選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。

コンテキストメニュー

コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、［メニュー一覧］にアクセスできます。

式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は［メニュー一覧］内のメニュー番号として評価されます。

デフォルト値は「0」です。

ドラッグ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic xpa以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。

このコントロールからコピーされたデータは、［ドラッグ開始］イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。

関連トピック：

ドラッグ&ドロップでデータをコピーするには

外部アプリケーションにデータをドラッグ&ドロップするには

ドロップ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic xpa以外のアプリケーションとの間のデータのドロップ処理を可能にします。

このコントロールへのデータのコピーは、［ドロップ］イベントによるロジックユニットによって意図的に行われるか、Magicエンジンにより自動的に行われます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。

関連トピック： 外部アプリケーションからMagic xpaにデータをドラッグするには


表示コントロール リストボックス 入力

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > リストボックスコントロール > 入力

［リストボックス］コントロールの入力

特性

内容

選択モード

［リストボックス］コントロールが複数選択をサポートするか否かを指定します。デフォルト値は、 「S=シングル」です。

  • S=シングル …… ［選択項目リスト］特性か［リンク項目］特性の選択肢の中から、ユーザが選択した値が1つだけ返されます。

  • M=マルチ …… ［選択項目リスト］特性か［リンク項目］特性の選択肢の中から、ユーザが選択した複数の値が返されます。文字型の場合は、カンマで区切られた値になります。値は選択された順ではなく、項目の定義された順に並びます。

マルチ選択の動作も参照してください。

必須入力

エンドユーザがコントロールに値を入力する必要があるかどうかを指定します。必須にするかどうかを表す論理値を返す式を使用できます。

選択プログラム

このコントロールからズームして起動するプログラムを指定します。コントロールに割り当てられた項目は、自動的にプログラムに送られます。

呼び出されるプログラムが（［選択テーブル］特性が「Yes」に設定された)選択プログラムの場合に一般的に利用します。これによって選択リストから値を選択してコントロールの値を更新する処理が簡単に実現できます。

［選択プログラム］特性を設定した場合、［オプション］メニューの［オブジェクトに移動］を選択することで簡単に指定したプログラムに移動することができます。また、［オプション］メニューの［オブジェクトから戻る］を選択することで、［選択プログラム］特性に戻ることもできます。

プログラムが［選択プログラム］特性を使用して呼び出されると、［並行起動］特性は無視され、プログラムはモーダルウィンドウとして表示されます。（サポートバージョン：2.2）

メインプログラムは、選択プログラムとして使用できません。

起動モード

［選択プログラム］特性で定義されたプログラムを呼び出す時期を指定します。有効な値は以下の通りです。

  • A=後置 …… 呼び出した選択プログラムが終了した時に、カーソルが次の項目に移動するように指定します。

  • B=前置 …… 呼び出した選択プログラムが終了した時に、カーソルが呼び出した項目に戻るように指定します。（デフォルト）

  • P=自動 …… 項目にカーソルが移動すると同時にプログラムが自動的に実行されるように指定します。これにより、ユーザは即座に値を選択できます。この場合は、選択プログラムが終了した後、前置モードの場合と同様にカーソルは呼び出した項目に戻ります。

照会モード時修正許可

タスクが照会モードの場合も、コントロールの切替操作ができるかどうかを指定します。

この特性を「No」に設定すると、コントロールは実行時に項目リストを操作することができません。


表示コントロール リストボックス 表示

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > リストボックスコントロール > 表示

［リストボックス］コントロールの表示

特性

内容

フォント

コントロールに表示されるテキストのフォントを指定します。［アプリケーション用フォント一覧］にズームして選択するか、直接フォント番号を入力してください。

色

コントロールの色を指定します。［アプリケーション用基本色一覧］にズームして選択するか、直接基本色番号を入力してください。

モバイル仕様：

モバイル用デバイスでシステム色が使用された場合、コントロールに対するOSのデフォルト色が表示されます。

ヘルプ画面

コントロールに関連付けるヘルプ画面を指定します。 ［ヘルプ一覧］にズームして、ヘルプ画面を選択できます。

リッチクライアント用コントロールの場合、URLヘルプのみサポートされます。この場合、URLは、（Web上でのURLではなく）サーバ側のファイルパスでを指定します。

ツールチップ

コントロールに関連付けるツールチップを指定します。［ヘルプ一覧］にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

自動ヘルプ

コントロールに関連付ける自動ヘルプを指定します。［ヘルプ一覧］にズームして自動ヘルプを選択できます。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。

可視

コントロールを表示させるかどうか指定します。論理値を返す式で指定することもできます。

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

境界

コントロールに境界を表示させるかどうかを指定します。

列数

コントロールに表示する列数を指定します。


リストボックス モバイル特性

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > リストボックスコントロール > モバイル

［リストボックス］コントロールのモバイル

特性 | 内容
追加情報 | モバイル用のコントロールフォームに関連した追加情報を指定します。 複数のパラメータは、カンマ区切りで指定できます。 以前使用していた値は、廃止予定の追加情報パラメータを参照してください。

サポートバージョン：

2.5


表示コントロール グループ リストボックス マルチ選択の動作

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > リストボックスコントロール > マルチ選択の動作

リストボックスのマルチ選択の動作

［リストボックス］コントロールの［選択モード］特性を「マルチ」に設定することで、複数の項目を選択することができるようになります。エンドユーザは、以下の組合せキーを使用することで任意に項目を選択することができます。

Click | チェックした項目が選択されたり選択が解除されたりします。
Ctrl+Click | 他の選択項目の状態を変更することなく、チェック項目の選択や選択解除を行うことができます。
Shift+Click | 最後に選択した項目からチェックした項目までを連続して選択します。
Shift+↑ | チェック項目と、それより下の項目が選択されます。
Shift+↓ | チェック項目と、それより上の項目が選択されます。
↑ | すべての項目の選択を解除し、現在の選択項目の前の項目を選択します。
↓ | すべての項目の選択を解除し、現在の選択項目の後の項目を選択します。

マルチ選択オプションは、文字型、リッチテキストのBLOB型、またはベクトル型データとリンクしている場合に有効です。この特性のフォルト値は「シングル」です。

指定されたデータ型がベクトルの場合、選択値は最初のセルに格納されます。更新されたベクトルのサイズは、選択された項目数となります。シングル選択の場合、ベクトル型データにリンクされたリストボックスは常に1が返ります。

選択モードがマルチの場合、指定された型の値が［選択項目リスト］特性や［リンク項目］特性のようにカンマ区切りで表示されます。連結された結果値の文字列の順番は、選択した順番ではなく、リスト上に表示されている順番になります。

関連トピック：

複数選択のリストボックスからデータを取得するには


表示コントロール グループ ETC OLE

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > OLE コントロール

[OLE]コントロール

注意：

［OLE］コントロールは、Ver2.xではサポートされません。


表示コントロール グループ ETC プッシュボタン

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > プッシュボタンコントロール

［プッシュボタン］コントロール

このコントロールは、エンドユーザがクリックしたときにイベントを発行させたい場合に使用します。

プッシュボタンは、［ズーム］イベントなどのMagic xpaの内部イベントを起動する手段として使用されます。 データ項目の値または［書式］特性の内容がボタンラベルになります。プッシュボタンのイベントは、［コントロール特性］シートの［実行イベント］特性で指定します。

実行時にボタンを押下すると、イベントが発行されます。そのイベントによって、［コール］処理コマンドや［イベント実行］処理コマンドなどを実行させることができます。

また、［OK］ボタン、［キャンセル］ボタン、［ヘルプ］ボタンという機能を持たせることができます。これらのボタンには、それぞれ［OK］、［キャンセル］、［ヘルプ］などの内部イベントを割当てます。ボタンに割当てられたイベントは、プログラムの状況に応じてプログラムで処理されます。

デフォルトのWindowsプッシュボタンのデザインを使用するだけでなく、コントロールを独自にデザインすることもできます。この場合、［コントロール特性］ダイアログの［ボタンスタイル］特性を「I=イメージボタン」か「T=イメージ上テキスト」に設定してください。

注意：

  • ［コントロール特性／イベント実行］を設定しないプッシュボタンに対して、「クリック」イベントによるハンドラは使用しないでください。このような場合は、「ユーザアクション」を定義するようにしてください。

  • フォーム上のコントロールのサイズがイメージのサイズとは異なる場合、イメージは歪んで表示される場合があります。コントロールのサイズをより正確に維持するには、高さや幅を大きく設定し、［コマンド］パレットでサイズ調整を使用することを推奨します。

［プッチュボタン］コントロールの特性は、以下のセクション毎に定義されています。

モデル

詳細

入力

表示

モバイル

パーク

位置とサイズ

関連トピック：

プッシュボタンにキーボード操作を許可させるには]

プッシュボタンにホットトラック効果を定義するには


表示コントロール プッシュボタン 詳細

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > プッシュボタンコントロール > 詳細

［プッシュボタン］コントロールの詳細

特性

内容

モバイル

データ

データは、データ項目（値）または式として指定します。

イメージボタンの場合は、イメージファイルのパス名が指定されたデータ項目を定義するか式でパスを指定します。

関連トピック： プッシュボタンにキーボード操作を許可させるには

Android

iOS

項目

［データ］特性で指定されたデータ項目の名前が表示されます。

Android

iOS

コントロール名

コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や［コントロール］ロジックユニットで参照することができます。LastClicked関数の説明も参照してください。

［コントロール名］特性は30桁に制限されます。末尾の空白は自動的に削除されます。［フォーム］エディタ内のコントロールのコピー処理では、この特性はコピーされません。

Android

iOS

書式

［プッシュボタン］コントロールの書式を指定します。ここで変更できるのは、現在のフォーム表示の形式だけです。初期設定値は、［項目特性］の設定から継承された書式になります。［式］エディタにズームして、コントロールの書式を表す式を入力することもできます。

［データ］特性にデータ項目が定義されていない場合、［書式］特性に定義された内容がプッシュボタン上に表示されます。アンパサンド(&)文字は、プッシュボタンのショートカットキーとして使用されます。アンパサンドの後に定義された文字が下線表示になります。実行時は、Alt+ショートカットキーを押下するとプッシュボタンがクリックされたように動作します。プッシュボタンの［データ］特性が定義されていない場合は、プッシュボタンがパーク可能でないため、この機能は便利です。

注意：

［データ］特性にデータ項目が定義された状態で、ここにプッシュボタンの表示内容を定義すると実行時に文字化けする場合があります。

関連トピック： アクセラレータをプッシュボタンに設定するには

Android

iOS

型

選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。

Android

iOS

ボタンスタイル

コントロールの形状を指定します。

Andoid

iOS

デフォルトイメージファイル名

コントロールに表示されるイメージファイル名を指定します。

イメージはオリジナルのサイズで表示され、［垂直整列］と［水平整列］特性の値に基づいてコントロール内で整列します。

この特性は、オンラインタスクでのみ有効です。

注意：

MAGIC.INIファイルの［MAGIC_SPECIALS］セクションに "SpecialConvAddSlash=N" というパラメータが設定されていないと、［データ］特性にイメージファイルのパスを定義する必要がある場合があります。

イメージ一覧ファイル名

開発環境でのみコントロールに表示されるイメージファイル名を指定します。

イメージはオリジナルのサイズで表示され、［垂直整列］と［水平整列］特性の値に基づいてコントロール内で整列します。

この特性は、リッチクライアントタスクでのみ有効です。

イメージファイルは、サーバから取得されます。

Andoid

iOS

実行イベント

エンドユーザがボタンを選択した時に実行される内部イベントを指定します。［イベント一覧］にズームしてイベントを選択します。

Android

iOS

パラメータ

ここには、イベント発行時に、［イベント］ロジックユニットに渡すパラメータを定義することができます。イベントに渡すパラメータの数がここに表示されます。ここからズームすると［パラメータ］テーブルが表示され、必要なパラメータを設定することができます。

［プッシュボタン］によって発行されるイベントは、「ウェイト=No」として動作します。このため、パラメータを戻り値として使用することはできません。

Android

iOS

実行元

イベントがどこで実行されるかを指定します。指定できるオプションは以下の通りです。

  • C=コンテナタスク（デフォルト） …… プッシュボタンが定義されたタスクでのみイベントが実行されます。

  • T=フォーカス上のタスク …… ［パーキング可］特性が「No」の場合のみ有効です。「Yes」の場合、［実行元］特性は無視され、イベントはコンテナタスクで実行されます。この設定でイベントを実行した場合、フォーカス内の（サブ）タスクでイベントが実行されます。

注意：

プッシュボタンがパーク可能に設定されている場合、フォーカスのあるタスクがコンテナタスクとなります。

従ってこの場合に、この特性は意味がありません。フォーカス上のタスクに設定された［実行元］特性を使用して、イベントを発行した場合、イベントはフォーカスのあるタスクで発行されます。

コンテキストメニュー

コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、［メニュー一覧］にアクセスできます。

式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は［メニュー一覧］内のメニュー番号として評価されます。

デフォルト値は「0」です。

ドラッグ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic xpa以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。

このコントロールからコピーされたデータは、［ドラッグ開始］イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。

関連トピック：

ドラッグ&ドロップでデータをコピーするには

外部アプリケーションにデータをドラッグ&ドロップするには

ドロップ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic xpa以外のアプリケーションとの間のデータのドロップ処理を可能にします。

このコントロールへのデータのコピーは、［ドロップ］イベントによるロジックユニットによって意図的に行われるか、Magicエンジンにより自動的に行われます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。

関連トピック： 外部アプリケーションからMagic xpaにデータをドラッグするには


表示コントロール プッシュボタン 入力

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > プッシュボタンコントロール > 入力

［プッシュボタン］コントロールの入力

特性

内容

モバイル

クリックでパーク

プッシュボタンをクリックするとそのコントロールにパークするかどうかを定義します。項目が定義されたプッシュボタンで有効です。

  • Yes …… プッシュボタンをクリックすると、該当する項目が定義された場所までフローが実行され、フォーカスがプッシュボタンに移動します。フォーカスが移動した後にプッシュボタンに定義されたイベントが発行されます。（デフォルト）

  • No …… フロー処理は実行されず、フォーカスも移動しません。

この設定は、キャンセルボタンで利用できます。たとえば、パーク可能なプッシュボタンで「No」を定義した場合、ボタンをクリックすると［キャンセル］イベントが発行されますが、コントロールレベルのハンドラーは実行されることがありません。

関連トピック： プッシュボタンがクリックされたときに実行される検証ロジックをスキップするには

修正許可

実行時にユーザがコントロール内の値を変更できるかどうかを指定します。

  • Yes …… ユーザはコントロール内の値を変更できます。

  • No …… コントロールへのユーザアクセスは拒否されます。

オンラインタスクでのみ有効。

Android

iOS

選択プログラム

このコントロールからズームして起動するプログラムを指定します。コントロールに割り当てられた項目は、自動的にプログラムに送られます。

呼び出されるプログラムが（［選択テーブル］特性が「Yes」に設定された)選択プログラムの場合に一般的に利用します。これによって選択リストから値を選択してコントロールの値を更新する処理が簡単に実現できます。

［選択プログラム］特性を設定した場合、［オプション］メニューの［オブジェクトに移動］を選択することで簡単に指定したプログラムに移動することができます。また、［オプション］メニューの［オブジェクトから戻る］を選択することで、［選択プログラム］特性に戻ることもできます。

プログラムが［選択プログラム］特性を使用して呼び出されると、［並行起動］特性は無視され、プログラムはモーダルウィンドウとして表示されます。（サポートバージョン：2.2）

メインプログラムは、選択プログラムとして使用できません。

起動モード

［選択プログラム］特性で定義されたプログラムを呼び出す時期を指定します。有効な値は以下の通りです。

  • A=後置 …… 呼び出した選択プログラムが終了した時に、カーソルが次の項目に移動するように指定します。

  • B=前置 …… 呼び出した選択プログラムが終了した時に、カーソルが呼び出した項目に戻るように指定します。（デフォルト）

  • P=自動 …… 項目にカーソルが移動すると同時にプログラムが自動的に実行されるように指定します。これにより、ユーザは即座に値を選択できます。この場合は、選択プログラムが終了した後、前置モードの場合と同様にカーソルは呼び出した項目に戻ります。


表示コントロール プッシュボタン 表示

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > プッシュボタンコントロール > 表示

［プッシュボタン］コントロールの表示

特性

内容

モバイル

フォント

コントロールに表示されるテキストのフォントを指定します。［アプリケーション用フォント一覧］にズームして選択するか、直接フォント番号を入力してください。

モバイル仕様：

Android、iOSの場合：Magic xpaで定義されるフォントサイズは、以下の式を使用してモバイル用デバイス上のピクセルに変換します。

（ピクセル単位のモバイル上のフォントサイズ) =（Windows上のフォントサイズ)*（デバイスのDPI/72)

Android

iOS

色

コントロールの色を指定します。［アプリケーション用基本色一覧］にズームして選択するか、直接基本色番号を入力してください。

[ボタンスタイル]特性が「イメージボタン」、「イメージの上のテキスト」または、「ハイパーテキスト」に設定された場合、この特性を設定できます。

「0」を設定した場合、Windowsのデフォルト色で表示されます。

モバイル仕様：

システム色が使用された場合、コントロールに対するOSのデフォルト色が表示されます。

Android

iOS

グラデーションスタイル

この特性は、グラデーションの表示スタイルを定義します。［グラデーションスタイル］ダイアログボックスを開き、スタイルを選択して [image] をクリックしてください。

リッチクライアントタスクでのみ有効です。

注意：

表示されるグラデーションは、［グラデーション色］特性の前景色から背景色へと変化します。「N=なし」が設定された場合、［色］特性の背景色が表示されます。

モバイル仕様：

次のスタイルのみサポートします：水平、垂直、斜め右、斜め左（サポートバージョン：2.2）

Android

iOS

グラデーション色

この特性は、グラデーション表示の色を定義します。

［グラデーションスタイル］特性の値を変更すると、この特性が無効になる場合があります。

リッチクライアントタスクでのみ有効です。

（モバイルのサポートバージョン：2.2）

Android

iOS

ホバー色

［スタイル］特性が「ハイパースタイル」の場合のみ有効です。

マウスポインタが、コントロール上にある場合の色を指定します。［アプリケーション用基本色一覧］にズームして選択するか、直接基本色番号を入力してください。

この特性は［通過色］特性と組み合わせて使用します。

通過色

［スタイル］特性が「ハイパースタイル」の場合のみ有効です。

マウスでクリックしたときのコントロールの色を指定します。［アプリケーション用基本色一覧］にズームして選択するか、直接基本色番号を入力してください。

この特性は［ホバー色］特性と組み合わせて使用します。

ヘルプ画面

コントロールに関連付けるヘルプを指定します。 ［ヘルプ一覧］にズームして選択できます。

リッチクライアント用コントロールの場合は、URLヘルプのみサポートされます。URLヘルプのファイル指定は、サーバ上のファイルパスで指定します。

ツールチップ

コントロールに関連付けるツールチップを指定します。［ヘルプ一覧］にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

自動ヘルプ

コントロールと関連付ける自動ヘルプを指定します。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。

可視

コントロールを表示させるかどうか指定します。論理値を返す式で指定することもできます。

Android

iOS

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

Android

iOS

水平整列

コントロール内の水平方向のテキストの配置を指定します。有効な値は以下の通りです。

  • L=左寄せ

  • C=センタリング（デフォルト）

  • R=右寄せ

Android

垂直整列

コントロール内の垂直方向のテキストの配置を指定します。有効な値は以下の通りです。

  • T=上寄せ

  • C=センタリング(デフォルト)

  • B=下寄せ

リッチクライアントタスクのみ有効です。

Android

iOS


表示コントロール ラジオボタン

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ラジオボタンコントロール

［ラジオボタン］コントロール

ラジオボタンは、複数選択のオブジェクトで使用されます。ラジオボタンは、入力範囲が分かれている項目で利用します。各範囲値は、一つのラジオボタンとしてその値と一緒に表示されます。

ボタンは1つのコントロールのボックス内に表示されますが、ボタンは個別に表示されます。ユーザは、1つのボタンだけをグループから選択します。ユーザがボタンを選択すると、黒い点が表示されます。データ項目には、選択された値が格納されます。

論理型のデータ項目がラジオボタンとして表示され、その範囲が定義されていない場合、Magic xpaは'True'または'False'をデフォルト値として使用します。

［ラジオボタン］コントロールの特性は、以下のセクション毎に定義されています。

モデル

詳細

データソース

入力

表示

モバイル

パーク

位置とサイズ

モバイル仕様

［ラジオボタン］コントロールは、［選択表示リスト］特性に定義された文字列を横並びに表示します（Andoridでのラジオボタンではありません）。

関連トピック：

ラジオボタンを定義するには


表示コントロール ラジオボタン 詳細

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ラジオボタンコントロール > 詳細

［ラジオボタン］コントロールの詳細

特性

内容

モバイル

データ

データは、データ項目（値）または式として指定します。

複数の［ラジオボタン］コントロールに同じデータ項目を定義すると、これらのコントロールはリンクされ、1つのコントロールのように動作します。

Android

iOS

項目

［データ］特性で指定されたデータ項目の名前を表示します。

Android

iOS

コントロール名

コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や［コントロール］ロジックユニットで参照することができます。LastClicked関数で指定されたコントロール名が返ります。

［コントロール名］特性は30桁に制限されます。末尾の空白は自動的に削除されます。［フォーム］エディタ内のコントロールのコピー処理では、この特性はコピーされません。

Android

iOS

型

選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。

Android

iOS

コンテキストメニュー

コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、［メニュー一覧］にアクセスできます。

式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は［メニュー一覧］内のメニュー番号として評価されます。

デフォルト値は「0」です。

Android

iOS

ドラッグ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic xpa以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。

このコントロールからコピーされたデータは、［ドラッグ開始］イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。

関連トピック：

ドラッグ&ドロップでデータをコピーするには

外部アプリケーションにデータをドラッグ&ドロップするには

ドロップ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic xpa以外のアプリケーションとの間のデータのドロップ処理を可能にします。

このコントロールへのデータのコピーは、［ドロップ］イベントによるロジックユニットによって意図的に行われるか、Magicエンジンにより自動的に行われます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。

関連トピック： 外部アプリケーションからMagic xpaにデータをドラッグするには


表示コントロール ラジオボタン 入力

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ラジオボタンコントロール > 入力

［ラジオボタン］コントロールの入力

特性

内容

モバイル

必須入力

エンドユーザがコントロールに値を入力する必要があるかどうかを指定します。必須にするかどうかを表す論理値を返す式を使用できます。

修正許可

実行時にユーザがコントロール内の値を変更できるかどうかを指定します。

  • Yes …… ユーザはコントロール内の値を変更できます。

  • No …… コントロールへのユーザアクセスは拒否されます。

Android

iOS

選択プログラム

このコントロールからズームして起動するプログラムを指定します。コントロールに割り当てられた項目は、自動的にプログラムに送られます。

呼び出されるプログラムが（［選択テーブル］特性が「Yes」に設定された)選択プログラムの場合に一般的に利用します。これによって選択リストから値を選択してコントロールの値を更新する処理が簡単に実現できます。

［選択プログラム］特性を設定した場合、［オプション］メニューの［オブジェクトに移動］を選択することで簡単に指定したプログラムに移動することができます。また、［オプション］メニューの［オブジェクトから戻る］を選択することで、［選択プログラム］特性に戻ることもできます。

プログラムが［選択プログラム］特性を使用して呼び出されると、［並行起動］特性は無視され、プログラムはモーダルウィンドウとして表示されます。（サポートバージョン：2.2）

メインプログラムは、選択プログラムとして使用できません。

起動モード

［選択プログラム］特性で定義されたプログラムを呼び出す時期を指定します。有効な値は以下の通りです。

  • A=後置 …… 呼び出した選択プログラムが終了した時に、カーソルが次の項目に移動するように指定します。

  • B=前置 …… 呼び出した選択プログラムが終了した時に、カーソルが呼び出した項目に戻るように指定します。（デフォルト）

  • P=自動 …… 項目にカーソルが移動すると同時にプログラムが自動的に実行されるように指定します。これにより、ユーザは即座に値を選択できます。この場合は、選択プログラムが終了した後、前置モードの場合と同様にカーソルは呼び出した項目に戻ります。

照会モード時修正許可

タスクが照会モードの場合も、コントロールの切替操作ができるかどうかを指定します。


表示コントロール ラジオボタン 表示

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ラジオボタンコントロール > 表示

［ラジオボタン］コントロールの表示

特性

内容

モバイル

フォント

コントロールに表示されるテキストのフォントを指定します。［アプリケーション用フォント一覧］にズームして選択するか、直接フォント番号を入力してください。

Android

iOS

色

コントロールの色を指定します。［アプリケーション用基本色一覧］にズームして選択するか、直接基本色番号を入力してください。

モバイル仕様：

モバイル用デバイスでシステム色が使用された場合、コントロールに対するOSのデフォルト色が表示されます。

Android

iOS

ヘルプ画面

コントロールに関連付けるヘルプを指定します。 ［ヘルプ一覧］にズームして選択できます。

リッチクライアント用コントロールの場合は、URLヘルプのみサポートされます。URLヘルプのファイル指定は、サーバ上のファイルパスで指定します。

ツールチップ

コントロールに関連付けるツールチップを指定します。［ヘルプ一覧］にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

自動ヘルプ

コントロールに関連付ける自動ヘルプを指定します。［ヘルプ一覧］にズームして自動ヘルプを選択できます。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。

可視

コントロールを表示させるかどうか指定します。論理値を返す式で指定することもできます。

Android

iOS

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

Android

iOS

表示方法

コントロールの表示方法を指定します。以下のオプションがあります。

  • R=ラジオ(デフォルト) …… 通常のラジオボタンの表示になります。

  • U=ボタン …… コントロールはボタン表示になります。選択された値のボタンが押されたような表示になります。

スタイル

コントロールの外観を指定します。有効な値は、以下の通りです。以下の通りです。

  • S=凹立体（デフォルト）

  • 2=平面

複数行

表示されるテキストを複数行で表示するかどうかを指定します。

  • Yes …… テキストが1行に収まらない場合、折り返して表示されます。

  • No …… テキストが1行分のみ表示されます。

［表示方法］特性が「ボタン」の場合はサポートしません。

水平整列

コントロール内の水平方向のテキストの配置を指定します。［表示方法］特性が「U=ボタン」の場合のみ動作します。有効な値は以下の通りです。

  • L=左寄せ

  • C=センタリング

  • R=右寄せ（デフォルト）

垂直整列

コントロール内の垂直方向のテキストの配置を指定します。［表示方法］特性が「U=ボタン」の場合のみ動作します。有効な値は以下の通りです。

  • T=上寄せ

  • C=センタリング(デフォルト)

  • B=下寄せ

列数

選択オプションを何列で表示させるかを指定します。

イメージファイル名

この特性には、ラジオボタンに表示するイメージファイルのファイル名を指定します。式で指定することで動的に変更することができます。

イメージはオリジナルのサイズで表示されます。また、［垂直整列］や［水平整列］の各特性値に基づいて表示位置が決まります。

デフォルト値は、空白です。

イメージ表示は、同じデータ項目の内容を複数の［ラジオボタン］コントロールで選択させる場合に利用します。

注意：

モバイル環境の場合は、［モバイル］セクションの［イメージ一覧ファイル名］を使用します。

ファイル名は、サーバ上のパスで指定します。

MAGIC.INIファイルの［MAGIC_SPECIALS］セクションに "SpecialConvAddSlash=Y" の場合は、式でパス名を設定しないと実行時にイメージが表示されない場合があります。


ラジオボタン モバイル特性

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ラジオボタンコントロール > モバイル

［ラジオボタン］コントロールのモバイル

特性

内容

モバイル

境界幅

境界線の幅をデバイスのdpiに基づくピクセル値で指定します。

iOS

境界色

境界線の色を指定します。

iOS

角半径

コントロールの角の丸みの半径をデバイスのdpiに基づくピクセル値で指定します。

デフォルト：2（［グループ］コントロールは、10）

iOS

イメージ一覧ファイル名

モバイル用デバイス上に表示するイメージファイルの名前を指定します。Windows上で実行するプロジェクトを開発している場合は、［イメージファイル名］特性で定義してください。

この特性に値が設定されている場合、コントロールは実行中に複数のイメージで切り替え可能なイメージボタン（チェックボックスではない)として表示されます。イメージは、開発時の［フォーム］エディタには表示されません。

イメージフォーマットは、イメージボタンの場合と同じです。［ボタンスタイル］特性の「イメージボタン」の説明を参照してください。4つまたは6つのイメージを指定した場合、押下、無効、通常のイメージだけが使用されます。

コントロールの［選択表示リスト］特性に値が設定されている場合、その値はイメージ上に表示されます。Windowsと異なり、［選択表示リスト］の値が空白の場合、値は［選択項目リスト］特性からコピーされず、イメージだけが表示されます。

コントロールの［選択項目リスト］特性に複数の値が設定されている場合、コントロール幅は項目数に基づいて分割されます。［列数］特性は無視され、指定された表示項目が横一列に表示されます。

例えば、［選択項目リスト］特性に2つの項目が設定されている場合、コントロールは2つのイメージボタンを水平に表示します。各選択項目に対して同じイメージが表示されます。

テキストとイメージを表示するには、［選択表示リスト］特性に表示するテキストを設定する必要があります。

推奨する使用法：すべての項目に対して同じイメージを設定する場合は、イメージが定義された一つの［ラジオ］コントロールを使用しなければなりません。しかし、イメージ位置を超える数のコントロールを必要とする場合や、異なる項目に対して異なるイメージを設定する必要がある場合、複数のコントロールを定義して、これらに同じデータ項目を割り当てる必要があります。

例外：この特性が設定されたコントロールは、［テーブル］コントロールで使用することができません。

関連トピック： 2ステートのイメージボタンを定義するには

Android

iOS

追加情報

モバイル用のコントロールフォームに関連した追加情報を指定します。（この特性は、モバイルクライアントの今後の新機能に対応するためのものです。)

この特性は、リッチクライアントタスクでのみ利用できます。

Android

iOS

サポートバージョン：

2.5


表示コントロール ラジオボタン 結合特性

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ラジオボタンコントロール > 結合特性

［ラジオボタン］コントロールの結合特性

Magic xpaは、同じ項目を複数のラジオボタンに割り当てることができます。ラジオボタンの値を切り換えた場合、選択された値に基づいて割り当てられている項目が更新されます。１つのラジオボタンの選択状態を別のボタンに切り替えた場合、前のラジオボタンの選択状態は解除されます。

ラジオボタンは、複数選択オブジェクトのために使用されます。ラジオボタンは、不連続な入力範囲が指定されたカラムに割り当てることができます。それぞれの範囲値は、値が表示された１つのラジオボタンとして表示されます。ボタンは個別の要素のように見えますが、1つのコントロールとしてグループ化するボックスが表示されます。ユーザは、グループ内のコントロールから1つのボタンのみ選択できます。ユーザがボタンを選択した場合、黒いドットが丸の中に表示されるか、ボタンが押されたように表示されます。カラムには、ボタンを選択することで値が設定されます。

論理型の項目がラジオボタンとして表示され、範囲が指定されていない場合、「True」と「false」がデフォルトとして使用されます。

結合特性

同じ項目が割り当てられている全てのラジオボタンのコントロール特性は、［選択項目リスト］と［選択表示リスト］、位置やサイズ以外は同じ値にならなければなりません。これは、１つのラジオボタンの特性を修正した場合、同じ項目を割り当てた他のラジオボタンの特性も同じ値に変更されることを意味しています。

ラジオボタンが結合された時、以下の特性が共有されます。

  • モデル

  • コントロール名

  • 必須入力

  • 修正許可

  • 選択プログラム

  • 起動モード

  • 照会モード時修正許可

  • タブ順序

  • パーキング可

  • タブで移動

  • タブ移動方向

  • コントロールレイヤ

結合特性の扱い

ラジオボタンに項目を割り当てる場合、すでに同じ項目が別のラジオボタンに割り付けられていると、Magic xpaは現在のラジオボタンの特性に、既存のラジオボタンの特性を結合特性として設定します。

複数選択のラジオボタンに対してデータを設定した場合、結合特性には、最初に選択されたボタンと同じ特性値が設定されます。

コントロールレベルとコントロ－ルを特定したロジックユニット

同じ項目を持つ全てのラジオボタンは、同じコントロール名が設定されているものとして扱われます。［ラジオボタン］コントロールに対する操作を行うと、1つのコントロールのように動作します。


表示コントロール リッチエディット

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > リッチエディットコントロール

［リッチエディット］コントロール

［リッチエディット］コントロールの特性は、以下のセクション毎に定義されています。

モデル

詳細

入力

表示

モバイル

パーク

位置とサイズ

モバイル仕様：

［リッチエディット］コントロールは、モバイル環境ではサポートしていません。

［リッチエディット］コントロールは、［コントロール］パレットで上記に表示されたアイコンをクリックして配置します。［リッチエディット］コントロールでは、データ項目や式を指定することができます。

［リッチエディット］コントロールは、［リッチテキスト］コントロールと同じように動作しますが、実行時は異なります。色やフォントまたは段落を設定する方法が、リッチクライアントとオンラインでは動作が異なります。

  • リッチクライアントタスクでは、［リッチエディット］コントロールにバイナリのBLOB型項目を割り当てます。

  • オンラインタスクでは、［リッチエディット］コントロールにUnicodeの BLOB型項目を割り当てます。

実行時に表示属性を変更してBLOBの内容を更新すると、色やフォントまたは段落の設定が削除されるかもしれません。

［リッチエディット］／［リッチテキスト］コントロールで選択されたテキストは、ドラッグ&ドロップ処理することができます。

以下の内部のイベントは、実行時に［リッチテキスト］コントロール内内の文字属性を変更する際に利用できます。

  • 左揃え

  • 右揃え

  • センタリング

  • 箇条書

  • 色の変更

  • フォントの変更

  • OLE2

  • インデント

  • インデント解除

関連トピック：

リッチテキストコントロール


表示コントロール リッチエディット 詳細

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > リッチエディットコントロール > 詳細

［リッチエディット］コントロールの詳細

特性 | 内容
データ | データは、データ項目（値）または式として指定します。
項目 | ［データ］特性で指定されたデータ項目の名前を表示します。
コントロール名 | コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や［コントロール］ロジックユニットで参照することができます。LastClicked関数の説明も参照してください。 ［コントロール名］特性は30桁に制限されます。末尾の空白は自動的に削除されます。［フォーム］エディタ内のコントロールのコピー処理では、この特性はコピーされません。
型 | 選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。
コンテキストメニュー | コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、［メニュー一覧］にアクセスできます。 式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は［メニュー一覧］内のメニュー番号として評価されます。 デフォルト値は「0」です。


表示コントロール リッチエディット 入力

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > リッチエディットコントロール > 入力

［リッチエディット］コントロールの入力

特性

内容

必須入力

エンドユーザがコントロールに値を入力する必要があるかどうかを指定します。必須にするかどうかを表す論理値を返す式を使用できます。

修正許可

実行時にユーザがコントロール内の値を変更できるかどうかを指定します。

  • Yes …… ユーザはコントロール内の値を変更できます。

  • No …… コントロールへのユーザアクセスは拒否されます。

選択プログラム

このコントロールからズームして起動するプログラムを指定します。コントロールに割り当てられた項目は、自動的にプログラムに送られます。

呼び出されるプログラムが（［選択テーブル］特性が「Yes」に設定された)選択プログラムの場合に一般的に利用します。これによって選択リストから値を選択してコントロールの値を更新する処理が簡単に実現できます。

［選択プログラム］特性を設定した場合、［オプション］メニューの［オブジェクトに移動］を選択することで簡単に指定したプログラムに移動することができます。また、［オプション］メニューの［オブジェクトから戻る］を選択することで、［選択プログラム］特性に戻ることもできます。

プログラムが［選択プログラム］特性を使用して呼び出されると、［並行起動］特性は無視され、プログラムはモーダルウィンドウとして表示されます。（サポートバージョン：2.2）

メインプログラムは、選択プログラムとして使用できません。

起動モード

［選択プログラム］特性で定義されたプログラムを呼び出す時期を指定します。有効な値は以下の通りです。

  • A=後置 …… 呼び出した選択プログラムが終了した時に、カーソルが次の項目に移動するように指定します。

  • B=前置 …… 呼び出した選択プログラムが終了した時に、カーソルが呼び出した項目に戻るように指定します。（デフォルト）

  • P=自動 …… 項目にカーソルが移動すると同時にプログラムが自動的に実行されるように指定します。これにより、ユーザは即座に値を選択できます。この場合は、選択プログラムが終了した後、前置モードの場合と同様にカーソルは呼び出した項目に戻ります。


表示コントロール リッチエディット 表示

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > リッチエディットコントロール > 表示

［リッチエディット］コントロールの表示

特性 | 内容
フォント | コントロールに表示されるテキストのフォントを指定します。［アプリケーション用フォント一覧］にズームして選択するか、直接フォント番号を入力してください。
色 | コントロールの色を指定します。［アプリケーション用基本色一覧］にズームして選択するか、直接基本色番号を入力してください。 背景色はサポートされません。
ヘルプ画面 | コントロールに関連付けるヘルプを指定します。 ［ヘルプ一覧］にズームして選択できます。 リッチクライアント用コントロールの場合は、URLヘルプのみサポートされます。URLヘルプのファイル指定は、サーバ上のファイルパスで指定します。
ツールチップ | コントロールに関連付けるツールチップを指定します。［ヘルプ一覧］にズームしてツールチップヘルプを選択できます。 式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。
自動ヘルプ | コントロールに関連付ける自動ヘルプを指定します。［ヘルプ一覧］にズームして自動ヘルプを選択できます。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。
可視 | コントロールを表示させるかどうか指定します。論理値を返す式で指定することもできます。
有効 | コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。
境界 | コントロールに境界線を表示するかどうかを指定します。
追加情報 | モバイル端末用のコントロールまたはフォームに関連した追加情報を指定します。

注意：

エンドユーザにコントロールの色またはフォントを変更するようにさせるには以下のようにします。

  • Magic xpaの内部イベント（例えば［色の変更］、［フォントの変更］、［左揃え］、［右揃え］など）をメニューに定義します。

  • このメニューをコントロールの［コンテキストメニュー］特性に割り当てます。


リッチエディット モバイル特性

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > リッチエディットコントロール > モバイル

［リッチエディット］コントロールのモバイル

特性 | 内容
追加情報 | モバイル用のコントロールフォームに関連した追加情報を指定します。（この特性は、モバイルクライアントの今後の新機能に対応するためのものです。) この特性は、リッチクライアントタスクでのみ利用できます。

サポートバージョン：

2.5


表示コントロール リッチテキスト

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > リッチテキストコントロール

［リッチテキスト］コントロール

[リッチテキスト］コントロールの特性は、以下のセクション毎に定義されています。

モデル

詳細

表示

モバイル

位置とサイズ

モバイル仕様：

［リッチテキスト］コントロールは、モバイル環境ではサポートしていません。

［リッチテキスト］コントロールは、［コントロール］パレットで上記に表示されたアイコンをクリックして配置します。このコントロールは、［スタティック］コントロールの一種で、開発時に各文字に対する色やフォントの指定、各行に対する割付指定を任意に行うことができます。

［リッチテキスト］コントロール内の文字の属性を変更するには以下のようにします。

  1. ［リッチテキスト］コントロールにカーソルを移動します。

  2. Enterを押します。コントロールの境界の色が青からピンクに変わり、編集モードに変わります。

  3. コントロール内の文字をマークします。

  4. マウスの右クリックを行い、ショートカットメニューをオープンし、変更したい特性を選びます。

関連トピック：

リッチエディットコントロール

動的なリッチテキストを作成するには


表示コントロール リッチテキスト 詳細

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > リッチテキストコントロール > 詳細

［リッチテキスト］コントロールの詳細

特性

内容

テキスト

コントロールに表示するテキストを指定します。

オンラインタスクでのみ有効です。

コントロール名

コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や［コントロール］ロジックユニットで参照することができます。LastClicked関数の説明も参照してください。

［コントロール名］特性は30桁に制限されます。末尾の空白は自動的に削除されます。［フォーム］エディタ内のコントロールのコピー処理では、この特性はコピーされません。

RTFの使用

リッチテキスト形式を有効にするかどうかを指定します。［スタティックタイプ］特性が「テキスト」の場合のみ有効です。

オンラインタスクでのみ有効です。

コンテキストメニュー

コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、［メニュー一覧］にアクセスできます。

式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は［メニュー一覧］内のメニュー番号として評価されます。

デフォルト値は「0」です。

ドラッグ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic xpa以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。

このコントロールからコピーされたデータは、［ドラッグ開始］イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。

関連トピック：

ドラッグ&ドロップでデータをコピーするには

外部アプリケーションにデータをドラッグ&ドロップするには

ドロップ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic xpa以外のアプリケーションとの間のデータのドロップ処理を可能にします。

このコントロールへのデータのコピーは、［ドロップ］イベントによるロジックユニットによって意図的に行われるか、Magicエンジンにより自動的に行われます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。

関連トピック： 外部アプリケーションからMagic xpaにデータをドラッグするには


表示コントロール リッチテキスト 表示

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > リッチテキストコントロール > 表示

［リッチテキスト］コントロールの表示

特性

内容

境界

コントロールに境界線を表示させるかどうかを指定します。

フォント

コントロールに表示されるテキストのフォントを指定します。［アプリケーション用フォント一覧］にズームして選択するか、直接フォント番号を入力してください。

色

コントロールの色を指定します。［アプリケーション用基本色一覧］にズームして選択するか、直接基本色番号を入力してください。

透過色はサポートされていません。

グラデーションスタイル

この特性は、グラデーションの表示スタイルを定義します。[グラデーションスタイル]ダイアログボックスを開き、スタイルを選択して [image] をクリックしてください。

［RTFの使用］特性を「No」に設定したオンラインタスクのフォームでのみ有効です。

注意：

表示されるグラデーションは、[グラデーション色]特性の前景色から背景色へと変化します。「N=なし」が設定された場合、[色]特性の背景色が表示されます。

グラデーション色

この特性は、グラデーション表示の色を定義します。

［RTFの使用］特性を「No」に設定したオンラインタスクのフォームでのみ有効です。

[グラデーションスタイル]特性の値を変更すると、この特性が無効になる場合があります。

指定された色の背景色は無視されます。

ツールチップ

コントロールに関連付けるツールチップを指定します。［ヘルプ一覧］にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

可視

コントロールを表示させるかどうか指定します。論理値を返す式で指定することもできます。

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

スタイル

コントロールの外観を指定します。有効な値は、以下の通りです。

  • 3=凸立体

  • S=凹立体

  • 2=平面（デフォルト）

［RTFの使用］特性を「No」に設定したオンラインタスクのフォームでのみ有効です。

水平整列

コントロール内の水平方向のテキストの配置を指定します。有効な値は以下の通りです。

  • L=左寄せ

  • C=センタリング

  • R=右寄せ

［RTFの使用］特性を「No」に設定したオンラインタスクのフォームでのみ有効です。

垂直整列

コントロール内の垂直方向のテキストの配置を指定します。有効な値は以下の通りです。

  • T=上寄せ

  • C=センタリング

  • B=下寄せ

［RTFの使用］特性を「No」に設定したオンラインタスクのフォームでのみ有効です。

追加情報

モバイル端末用のコントロールまたはフォームに関連した追加情報を指定します。


リッチテキスト モバイル特性

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > リッチテキストコントロール > モバイル

［リッチテキスト］コントロールのモバイル特性

特性 | 内容
追加情報 | モバイル用のコントロールフォームに関連した追加情報を指定します。（この特性は、モバイルクライアントの今後の新機能に対応するためのものです。) この特性は、リッチクライアントタスクでのみ利用できます。

サポートバージョン：

2.5


表示コントロール スライダ

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > スライダコントロール

[スライダ]コントロール

注意：

このコントロールは、Ver2.xではサポートされなくなりました。


表示コントロール サブフォーム

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > サブフォームコントロール

［サブフォーム］コントロール

［サブフォーム］コントロールを使用することで、他のタスクのフォーム上にタスクのフォームを組み込むことができます。この場合、サブフォームのタスクのデータ処理やレコードサイクルは、親タスクとは独立して扱うことができます。

［サブフォーム］コントロールに対するロジックユニットを定義することはできません。

［サブフォーム］コントロールの特性は、以下のセクション毎に定義されています。

モデル

詳細

表示

モバイル

パーク

位置とサイズ

モバイルのサポートバージョン：

2.2

サブフォームの利点

親タスクのコントロール上にパークした状態で、サブタスクで詳細データをブラウザコントロール表示する1対多の関係のタスクを作成することができます。

Magic xpaは、パラメータを渡すように設定するだけで親タスクの状況に従ってサブフォームをリフレッシュさせることができます。

サブフォームに入ったり抜けたりした場合、Magic xpaはその時点での最終位置を保持します。

タブの移動サイクルがサブフォーム用に提供されます。

サブフォームの動作

［サブフォーム］コントロールは、インタラクティブなプログラムでのみ動作します。メインプログラムやバッチプログラムでは動作しません。

［サブフォーム］コントロールは、子ウィンドウで表示されるタスクのように動作します。また、親タスクで発生したイベントを処理することができ、フォーカスがサブフォームに戻った時に以前の操作で最後にアクセスしたレコードに自動的に位置付けることができます。

実行エンジンは、親タスクとサブフォームに表示されたタスクの間での操作を自動的に処理します。

実行エンジンは、起動タスクに渡されるパラメータの値が変更された場合、自動的にサブフォームを再表示します。

サブフォームタスクは、親タスクの最初の［レコード前］の処理として初期実行されます。

実行エンジンは、サブタスクの［タスク前］と［レコード前］を実行し、サブタスクのデータビューを作成し、［レコード後］と［タスク後］を実行します。

注意：

起動されるタスクのメインソースにXMLテーブルが定義されている場合、（［サブフォーム］コントロールが定義されている）現在のタスクにも同じXMLテーブルを宣言定義する必要があります.

オフラインタスク

  • オフラインプログラムのサブフォームで使用することができるのは、オフラインプログラムだけです。

  • 非オフラインプログラムのサブフォームでは、オフラインプログラムを使用することができません。

関連トピック：

事前に設定される特性

サブフォーム用関数

［サブフォーム再表示］イベント

サブフォーム用のハンドラ

サブフォームの実行時の動作

サブフォーム (Mastering Magic xpa)

タブコントロールの指定されたタブにタスクを関連付けるには


表示コントロール サブフォーム 詳細

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > サブフォームコントロール > 詳細

［サブフォーム］コントロールの詳細

特性

内容

モバイル

接続先

サブフォームによって呼び出されるタスクのタイプを指定します。指定できるオプションは以下の通りです。

  • P=プログラム（デフォルト） …… プログラムを呼び出します。

  • S=サブタスク …… 現在のタスクの子タスクを呼び出します。

  • N=なし …… 何も表示されないサブフォームが定義されます。これは、呼び出されたタスクに対するプレースフォルダとして動作します。例えば、以下のように利用します。

  1. タスクが読み込まれた時に、サブフォームは何も表示しない。

  2. ［コール］処理コマンドの［出力先］特性をこのサブフォームに設定すると、サブフォームは［可視］特性値にもとづいて表示されます。

  3. ［自動再表示］特性を設定することで、パラメータの内容に基づいて再表示されます。

  4. サブフォームが配置されたプログラムや、実行プログラムの親プログラムの両方から［サブフォーム再表示］イベントを使用することができます。

［モデル］リポジトリでこの特性を設定する場合、「P=プログラム」のみ有効です。

Android

iOS

プログラム/タスク番号

サブフォームで呼び出すタスクまたはプログラムの4桁の番号を指定します。

  • ［接続先］特性が「P=プログラム」の場合 …… ここからズームすると［プログラム一覧］が表示されます。

  • ［接続先］特性が「S=サブタスク」の場合 …… ここからズームすると［サブタスク一覧］が表示されます。［サブタスク一覧］の［登録］ボタンをクリックするとサブタスクを新規作成することができます。

注意：

［選択プログラム］特性を設定した場合、［オプション］メニューの［オブジェクトに移動］を選択することで簡単に指定したプログラムに移動することができます。また、［オプション］メニューの［オブジェクトから戻る］を選択することで、［選択プログラム］特性に戻ることもできます。

Android

iOS

パラメータ

ここには、起動するプログラム／タスクに渡すパラメータの数が表示されます。ここからズームすると［パラメータ］テーブルが表示され、このテーブルにパラメータを定義します。

接続先がサブタスクの場合でも、範囲指定に使用する項目をパラメータとして定義する必要があります。パラメータを使用しないとサブフォームに表示される表示は起動元と連動できません。

Android

iOS

自動再表示

この特性は、（値渡しか参照渡しで）渡されたパラメータのどれか1つでも変更された場合に、サブフォームのビューがの自動的に再表示されるかどうかを指定します。

サブタスクまたはサブプログラム内でサブフォームパラメータが更新されても再表示機能は実行されません。

この特性に「Yes」を設定すると、親タスクから渡されるパラメータが変更された時点でサブフォームの表示を自動的に更新するようになります。範囲またはリンクの値が変更した場合も、サブフォームタスクは再表示されます。

リッチクライアントタスクの場合、この特性で利用できる関数は、（どちらでも動作する）ニュートラルでなければなりません。

関連トピック：

サブフォームの再表示を手動にするには

複数のパラメータをサブフォームに渡した場合、最後のパラメータを修正した時のみ再表示するには

Android

iOS

非表示の再表示

この特性はサブフォームの初期設定と再表示のタイミングを制御するものです。

この特性を「Yes」に設定した場合、サブフォームの表示/非表示で動作に違いはありません。これは以下のようなことを意味しています。

  • サブフォームのタスク初期設定は、最初のレコードの[レコード前]の後で実行されます。

  • サブフォームの再表示は、[自動再表示]特性と[サブフォームの再表示]イベントに従って実行されます。

この特性を「No」に設定した場合、サブフォームの初期設定と再表示はサブフォームが表示されている場合のみ実行されます。これは以下のようなことを意味しています。

  • 各サブフォームを実行する前に、表示されているかどうかがチェックされ、表示されていない場合は、サブフォームは実行されず、クライアントで表示されるまで処理が延期されます。クライアントで表示が必要になった時点で、サーバを呼び出し、サブフォームが表示されます。

  • サブフォームの[タスク前]の実行は、サブフォームが表示されるまで延期されます。

  • サブフォームの[可視]特性の式にクライアント側で実行される式が定義されている場合、タスクがロードされた時点でサブフォームが表示されたものとして評価されます。

  • サブフォームの再表示を実行する前に、サブフォームが表示されているかどうかがチェックされます。サブフォームが表示されない場合、無効として記録され、表示された時点で、サーバを呼び出し再表示されます。

  • オンラインタスクでは、特性が「No」に設定されたネストしたサブフォームの場合, 親のサブフォームが実行時に「Yes」と評価されると、ネストされたサブフォームも「Yes」として実行します。

この特性を式で定義した場合、実行時の式の評価結果によって動作が決まります。式が'True'と評価された場合：

  • オンラインでは、サブフォームはすぐに再表示されます。

  • リッチクライアントでは、サブフォームはすぐに再表示されません。

関連トピック： サブフォームが表示していない場合、サブフォームが再表示されないようにするには

iOS

キャッシュ

クライアントがサブフォームのビューをキャッシュするかどうか制御します。この特性は、リッチクライアントタスクのみ有効です。

注意：

呼び出されたプログラム/タスクの範囲／位置付にサーバ側の式が定義されていない場合のみキャッシュされます。

コントロール名

コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や［コントロール］ロジックユニットで参照することができます。LastClicked関数の説明も参照してください。

［コントロール名］特性は30桁に制限されます。末尾の空白は自動的に削除されます。［フォーム］エディタ内のコントロールのコピー処理では、この特性はコピーされません。

Unicodeはサポートされません。

Android

iOS


表示コントロール サブフォーム 表示

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > サブフォームコントロール > 表示

［サブフォーム］コントロールの表示

特性

内容

モバイル

可視

コントロールを表示させるかどうか指定します。論理値を返す式で指定することもできます。

Android

iOS

境界

コントロールの境界を表示するかどうかを指定します。

Android

iOS

自動調整

この特性は、サブフォームの内容をどのように表示するかを指定します。有効な値は以下の通りです。

  • N=なし …… タスクのフォームはサブフォームのサイズに合うように調整されません。［サブフォーム］コントロールのサイズがタスクのフォームより小さい場合、サブフォーム内にスクロールバーが表示されます。［サブフォーム］コントロールのサイズが大きい場合は、空いた領域が親タスクの背景色で塗りつぶされます。

  • A=コントロールに合わせる（デフォルト） …… サブフォームタスクのフォームは、［サブフォーム］コントロールのサイズに収まるように調整されます。起動先タスク/プログラムのコントロールの［位置］特性の［幅割合］と［高さ割合］が「0」の場合、サイズの調整は行われません。

  • C=起動先フォームに合わせる …… ［サブフォーム］コントロールのサイズは、起動されたタスクのフォームのサイズと同じになるように変更されます。親タスクのフォームに収まらない場合、親タスクのフォームにスクロールバーが表示されます。

関連トピック：

自動調整オプションを使用するには

サブフォームコントロールを起動されるプログラムフォームの寸法に合わせるには

Android

iOS


表示コントロール サブフォーム 事前設定の特性

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > サブフォームコントロール > 事前に設定される特性

事前に設定される特性

フォーム特性

サブフォームで動作するタスクの［フォーム特性］は、あらかじめ以下のように自動的に設定されています。

  • ウィンドウタイプ …… 常に子ウィンドウとみなされます。

  • フォーム名 …… 無視されます。

  • タイトルバー …… No

  • システムメニュー …… No

  • 最小化ボタン …… No

  • 最大化ボタン …… No

  • 境界 …… N=なし

  • MDI調整 …… No

  • 開始時の位置 …… 無視されます。

タスク特性

サブフォームで動作するタスクの［タスク特性］は、あらかじめ以下のように自動的に設定されています。

  • アイコンファイル名 …… 無視されます。

  • ウィンドウ消去 …… No


表示コントロール サブフォーム 関数

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > サブフォームコントロール > サブフォーム用関数

サブフォーム用関数

以下の関数は、［サブフォーム］コントロールと一緒に使用することができます。

  • CtrlGoto …… この関数は、コントロール名を指定することで［サブフォーム］コントロール上で評価されます。関数が評価されると、実行エンジンは現在のコントロールの［コントロール後］の処理と［サブフォーム］コントロールまでの検証ハンドラを実行します。実行エンジンは、サブタスクの最初のコントロールでパークします。

  • SubformExecMode ……この関数は、サブフォームの実行モードを取得します。この情報は、サブフォームのロジックを実行時のモードによって切り替える必要がある場合に使用します。


表示コントロール サブフォーム用のロジックユニット

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > サブフォームコントロール > サブフォーム用のロジックユニット

サブフォーム用のロジックユニット

実行エンジンが親タスク上にフォーカスがある場合、実行されたどのようなイベントも、有効なハンドラの階層を使用して親タスクのために処理されます。

サブフォームタスクに入った場合、実行エンジンがパークした最後のコントロールに対する［コントロール］ロジックユニットが高速モードで起動されます。サブフォームの［コントロール前］のロジックユニットは、［タスク前］と［レコード前］の処理の後に実行されます。

［サブフォーム］コントロールに特有なユーザ定義のロジックユニットは、［コントロール検証］レベルではなく前処理と後処理のレベルでサポートされます。


表示コントロール グループ サブフォーム 実行時の動作

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > サブフォームコントロール > サブフォームの実行時の動作

サブフォームの実行時の動作

サブフォームには、Tabキーによるカーソル移動か、サブフォオームへのクリックで入ることができます。実行エンジンは、サブタスクの最初のコントロールにパークします。パーク可能なコントロールにクリックすると、実行エンジンはフォーカスをサブタスクに移動させ、選択したコントロールにパークします。この時、［タスク前］、［レコード前］、［コントロール前］の処理を実行します。パーク不可のコントロールをクリックした場合、実行エンジンはフォーカスをサブフォームのタスクに移動させ、最初のパーク可能なコントロールにパークします。

実行エンジンが［閉じる］イベントやサブフォーム以外の領域をクリックしたり（リッチクライアントの場合は、［サブフォーム］以外のコントロールをクリックした場合）、［タスク終了条件］特性によってサブタスクを終了させた場合、実行エンジンは、［コントロール後］、［レコード後］、［タスク後］の各処理を実行します（リッチクライアントの場合は、［タスク後］は実行されません）。フォーカスは、親タスクで定義された［タブ順序］特性や［タブ移動方向］特性に基づいて、親タスクの次のコントロールに移動します。

サブタスクに戻り、データビューが再表示されなかった場合、これは、範囲、リンク、ソート、インデックス、結合リンク、または外部結合リンクの設定が修正されていないことを意味しています。サブタスクは、最後に表示された同じページまたはレコードを保持します。

実行エンジンが親タスクにフォーカスを移した場合、サブタスクは自動的にクローズされるため、親タスクがクローズした時は、サブタスクに対する処理は不要になります。

参考：

リッチクライアントタスクでは、親タスクの［タスク前］と［タスク後］が実行される時に、サブフォーム内のタスクの［タスク前］と［タスク後］は1回だけ実行されます。

リッチクライアントタスクでは、［サブフォーム］コントロールの［レコード前］が２回実行されるかもしれません。たとえば、キャレットがサブフォームにあるときで、さらに、親タスクのビューが再表示され、サブフォームが再表示された場合です。この場合、親タスクの［レコード前］とサブフォーム上のタスクで実行されます。また、キャレットがサブフォームに戻った場合のみ、サブフォームの［レコード前］が再度実行されます。

実行時は、リッチクライアントのサブフォームエリアでクリックするとキャレットが現在のコントロール上に置かれたままになります。オンラインの場合は、フォーカスがサブフォームタスクに移動します。

同期

親タスクのトランザクションが「遅延」に設定されている場合、［コール］処理コマンドの［同期］特性が「Yes」に設定されているようにサブフォームタスクを呼び出します。

ロック

サブフォームタスクの呼び出しは、親タスクのレコード上で暗黙のロックを発生させません。［コール］処理コマンドの［ロック］特性が「No」に設定されているかのように、サブフォームタスクを呼び出します。


表示コントロール サブフォーム キーボードアクセス

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > サブフォームコントロール > サブフォームへのキーボードアクセス

サブフォームへのキーボードアクセス

Tabキーを使用することで親タスクからリッチクライアントのサブフォームにアクセスすることができます。

各サブフォームのTab順序は、その［TAB順序］特性によって決定されます。

サブフォームにアクセスする際のMagicエンジンの動作内容は、以下の通りです。

  • 親タスクのパーク可能なコントロールから［次項目］イベントが発行された場合、コントロールがサブフォームの前に定義されていると、カーソルは、サブフォーム内の最初に定義されたパーク可能なコントロールに移動します。

  • カーソルがサブフォーム内の最後のパーク可能なコントロール上に位置している場合、［次項目］イベントが発行されると、カーソルはコントロールの［TAB順序］特性に基づき、親タスクの最後のパーク可能なコントロールの次に移動します。

  • 次のコントロールが別のサブフォームの場合、カーソルは次のサブフォームの最初のパーク可能なコントロールに移動します。

  • サブフォームが最初のコントロールではなく、カーソルが最初のパーク可能なコントロールでパークしている場合、［全項目］イベントが発行されると、サブフォームの前に親タスクにで定義されているパーク可能なコントロールに移動します。

  • 前のコントロールが別のサブフォームの場合、カーソルは前のサブフォーム内の最後のパーク可能なコントロールに移動します。

  • サブフォームが親タスクの最初のコントロールとして定義されると、タスクは直接サブフォームの最初のパーク可能なコントロール上にパークします。これは、ネストされたサブフォームでも同様です。

サブフォームのタスクに設定されている［循環入力］特性は無視されます。

注意：

［TABで移動］特性を「No」に設定することで、Tabキーによって故意にサブフォームにアクセスすることが防止できます。


表示コントロール グループ タブ

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > タブコントロール

［タブ］コントロール

[タブ]コントロールを使用することで、フォームの表示を簡潔にさせることができます。例えば、異なるテーブルと40以上の異なる表項目をフォームに配置する必要がある場合、それらをタブで整理することで、ユーザインタフェースがより簡単になる場合があります。

[タブ]コントロールを使用する場合、タブを選択すると、そのタブに関連付けられてたコントロールのみ表示されます。タブに関連付けるコントロールは、項目のに対応したものであったり、異なるタスク（またはプログラム）にリンクされたサブフォームになる場合があります。

[タブ]コントロールは、複数のコントロールと組み合わせることでフォームを設計することができますが、これらのコントロールは、リンクされたタブをクリックした場合のみ表示されます。

注意：

  • ［タブ］コントロールをクリックすると［ズーム］イベントが発行されます。

  • [タブ]コントロールは、選択用のコントロールのため、照会モードでは動作しません。照会モードで動作するようにしたい場合は、サブフォームを利用することで可能になります。

［タブ］コントロールの特性は、以下のセクション毎に定義されています。

モデル

詳細

データソース

入力

表示

モバイル

パーク

位置とサイズ

モバイル仕様

［タブ］コントロールは、AndroidとiOSデバイス（バージョン：2.5から)のタブバーとして表示されます。タブバーは、フル画面で表示されます。このため、アプリを開発するときは、フォーム全体に渡って［タブ］コントロールを引き延ばすことを推奨します。

一般に、タブバーの機能は、デバイスのデフォルト動作に基づいています。

機能

Android

iOS

ナビゲーション

タブバーの項目をクリックするか、タブバーをスワイプします。

タブバーの項目をクリックします。

位置付

フォームの最上位

フォームの底辺

タブ内の水平スクロール

サポートされません。水平スクロールは、タブ間の移動になります。画面サイズを超える（タブ上の）コントロールは表示されません。

サポートされます。

タブ内の垂直スクロール

サポートされます。

サポートされます。

タイトルバー

必須です。［タブ］コントロールはタイトルバーの統合要素であるため、フォームに［タブ］コントロールを定義した場合、（［タイトルバー］特性が「No」に設定されても)タイトルバーが表示されます。

注意：

Android のOSバージョンよっては、ランドスケープの場合、タブはタイトルバー領域に表示されます。

必須ではありません。タブは、常に底辺に表示されます。

イメージ

タブには、テキストとイメージを含めることができます。イメージは、［イメージ項目ファイル名］と［イメージ項目インデックス］の各特性（Windowsのタブのように)で定義されます。

Windowsのタブとの違い：

  • イメージのサイズは、16x16（ピクセル）に制限されていません。しかし、イメージは正方形でなければなりません。このため、例えばイメージリストには、複数の100x100のイメージを含めることができます。指定されたイメージの高さを基に等分して表示されます。

  • ［イメージファイル名］特性には、タブの全てのイメージを含めなければなりません。

Android：

Androidデバイスでは、テキストを空白にしたりイメージを指定しないようにするすることで、タブのヘッダを表示させないようにすることができます。この場合、タブはヘッダが表示されずオブジェクトの間でスクロールするために使用されます。以下の特性を設定することで、テキストとイメージの表示または非表示を行うことができます。

表示の組合せ | ［選択表示リスト］特性 | ［イメージ一覧ファイル名］特性
テキストのみを表示 |  |
テキストとイメージを表示 |  |
イメージのみを表示 |  |
タブバーを非表示 （スクロール用のペインのみ表示） |  |

iOSでは、［選択表示リスト］と［イメージ一覧ファイル名］を空白にした場合は、空白のタブが表示されます。

例外

デバイスのデフォルト動作のために、以下のようなコントロールを配置した場合は実行時にエラーになります。

  • ［タブ］コントロールの外側に配置されたコントロール。

  • ［タブ］コントロールのレイヤ0にリンクされたコントロール。

  • フォーム上の複数の［タブ］コントロール。

  • コンテナコントロール（例えば、［グループ］または別の［タブ］コントロール)にリンクされた［タブ］コントロール。

  • ［タブ］コントロールが配置されたサブフォームタスク。

注意：

フォームの背景（壁紙や色、グラデーション)は、すべてのタブで使用されます。

関連トピック：

キーボードによる操作

タブコントロールの編集中にタブの切り替えを行うには

タブコントロールの異なるタブにコントロールを関連付けるには

タブコントロールの指定されたタブにタスクを関連付けるには

モバイル上で[タブ]コントロールを使用するには


表示コントロール タブ 詳細

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > タブコントロール > 詳細

［タブ］コントロールの詳細

特性

内容

モバイル

データ

データは、データ項目（値）または式として指定します。

Android

iOS

項目

［データ］特性で指定されたデータ項目の名前を表示します。

Android

iOS

表示レイヤリスト

実行時に表示されるレイヤ番号を指定します。この特性に設定した順番でタブコントロールのレイヤが表示されます。空白の場合は、すべてのタブが表示されます。

取得されるタブ項目の値は［選択項目リスト］特性に定義された内容に基づき、表示内容は［選択表示リスト］に従います。

例えば：

  • 選択項目リスト …… "A,B,C,D"

  • 選択表示リスト …… "タブ1,タブ2,タブ3,タブ4"

  • 表示レイヤリスト …… "3,2"

この場合に、タブは「タブ3」と「タブ2」の2つのタブのみ表示され、最初のタブ(「タブ3」)をクリックするとタブ項目「C」の値が返ります。

3番目のタブにリンクされた全てのコントロールが表示されます。

関連トピック： タブコントロールにタブ順序と可視を動的に定義するには

Android

iOS

コントロール名

コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や［コントロール］ロジックユニットで参照することができます。LastClicked関数の説明も参照してください。

［コントロール名］特性は30桁に制限されます。末尾の空白は自動的に削除されます。［フォーム］エディタ内のコントロールのコピー処理では、この特性はコピーされません。

Android

iOS

型

選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。

Android

iOS

コンテキストメニュー

コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、［メニュー一覧］にアクセスできます。

式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は［メニュー一覧］内のメニュー番号として評価されます。

デフォルト値は「0」です。

ドラッグ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic xpa以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。

このコントロールからコピーされたデータは、［ドラッグ開始］イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。

関連トピック：

ドラッグ&ドロップでデータをコピーするには

外部アプリケーションにデータをドラッグ&ドロップするには

ドロップ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic xpa以外のアプリケーションとの間のデータのドロップ処理を可能にします。

このコントロールへのデータのコピーは、［ドロップ］イベントによるロジックユニットによって意図的に行われるか、Magicエンジンにより自動的に行われます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。

関連トピック： 外部アプリケーションからMagic xpaにデータをドラッグするには


表示コントロール タブ 入力

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > タブコントロール > 入力

［タブ］コントロールの入力

特性

内容

モバイル

必須入力

エンドユーザがコントロールに値を入力する必要があるかどうかを指定します。必須にするかどうかを表す理論値を返す式を使用できます。

修正許可

実行時にユーザがコントロール内の値を変更できるかどうかを指定します。

  • Yes …… ユーザはコントロール内の値を変更できます。

  • No …… ユーザはコントロール内の値を変更できません。

選択プログラム

このコントロールからズームして起動するプログラムを指定します。コントロールに割り当てられた項目は、自動的にプログラムに送られます。

呼び出されるプログラムが（［選択テーブル］特性が「Yes」に設定された)選択プログラムの場合に一般的に利用します。これによって選択リストから値を選択してコントロールの値を更新する処理が簡単に実現できます。

［選択プログラム］特性を設定した場合、［オプション］メニューの［オブジェクトに移動］を選択することで簡単に指定したプログラムに移動することができます。また、［オプション］メニューの［オブジェクトから戻る］を選択することで、［選択プログラム］特性に戻ることもできます。

プログラムが［選択プログラム］特性を使用して呼び出されると、［並行起動］特性は無視され、プログラムはモーダルウィンドウとして表示されます。（サポートバージョン：2.2）

メインプログラムは、選択プログラムとして使用できません。

起動モード

［選択プログラム］特性で定義されたプログラムを呼び出す時期を指定します。有効な値は以下の通りです。

  • A=後置 …… 呼び出した選択プログラムが終了した時に、カーソルが次の項目に移動するように指定します。

  • B=前置 …… 呼び出した選択プログラムが終了した時に、カーソルが呼び出した項目に戻るように指定します。（デフォルト）

  • P=自動 …… 項目にカーソルが移動すると同時にプログラムが自動的に実行されるように指定します。これにより、ユーザは即座に値を選択できます。この場合は、選択プログラムが終了した後、前置モードの場合と同様にカーソルは呼び出した項目に戻ります。

照会モード時修正許可

タスクが照会モードの場合も、タブの切替操作ができるかどうかを指定します。


表示コントロール タブ 表示

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > タブコントロール > 表示

［タブ］コントロールの詳細表示

特性

内容

モバイル

フォント

コントロールに表示されるテキストのフォントを指定します。［アプリケーション用フォント一覧］にズームして選択するか、直接フォント番号を入力してください。

色

コントロールの背景色を指定します。［アプリケーション用基本色一覧］にズームして選択するか、直接基本色番号を入力してください。

タブのボディにのみ影響します。ヘッダには反映されません。

グラデーションスタイル

この特性は、グラデーションの表示スタイルを定義します。［グラデーションスタイル］ダイアログボックスを開き、スタイルを選択して [image] をクリックしてください。

リッチクライアントタスクでのみ有効です。

注意：

表示されるグラデーションは、［グラデーション色］特性の前景色から背景色へと変化します。「N=なし」が設定された場合、［色］特性の背景色が表示されます。

グラデーション色

この特性は、グラデーション表示の色を定義します。

［グラデーションスタイル］特性の値を変更すると、この特性が無効になる場合があります。

リッチクライアントタスクでのみ有効です。

ヘルプ画面

コントロールに関連付けるヘルプを指定します。 ［ヘルプ一覧］にズームして選択できます。

リッチクライアント用コントロールの場合は、URLヘルプのみサポートされます。URLヘルプのファイル指定は、サーバ上のファイルパスで指定します。

ツールチップ

コントロールに関連付けるツールチップを指定します。［ヘルプ一覧］にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

自動ヘルプ

コントロールに関連付ける自動ヘルプを指定します。［ヘルプ一覧］にズームして自動ヘルプを選択できます。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。

可視

コントロールを表示させるかどうか指定します。論理値を返す式で指定することもできます。

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

タブラベル位置

［タブ］コントロールに表示するタブの位置を指定します。有効な値は以下の通りです。

  • T=上

  • B=下

ホットトラック

マウスカーソルがこのコントロールを通過すると、自動的にタブを強調表示するかどうかを指定します。有効なオプションは、Yes、No（デフォルト）または、式です。

式で指定された場合、フォームのオープン時に評価されます。

リッチクライアントコントロールの場合、［XPスタイルの使用］が設定されていると、この特性は無効になり、常に「Yes」に設定されたように動作します。

複数行

全てのタブが1辺に収まらない場合の表示方法を指定します。有効なオプションは、Yes、No（デフォルト）または、式です。

  • Yes …… タブを複数行で表示して、１辺に収まるように表示されます。

  • No …… タブは１行で表示され、矢印ボタンで表示されるタブを切り替えるようにします。

タブ幅

タブの表示幅の調整方法を指定します。有効なオプションは以下の通りです。

  • T=テキストに合わせる …… ［複数行編集］特性が「Yes」に設定されている場合、表示するテキストに従って、各タブの幅が個別に決定されます。すべてのタブ幅の合計長がコントロールの幅を越えた場合、コントロール幅を越えたタブは次行に表示されます。
    ［複数行編集］特性が「No」の場合は、表示するテキストに従ってタブの幅が個別に決定されます。すべてのタブ幅の合計長がコントロールの幅を越えた場合、タブに水平のスクロールバーが表示されます。

  • F=固定 …… ［複数行編集］特性が「Yes」に設定されている場合、表示するテキストの中で最も長いものに合わせて各タブの幅が決定されます。すべてのタブ幅の合計長がコントロールの幅を越えた場合、コントロール幅を越えたタブは次行に表示されます。
    ［複数行編集］特性が「No」の場合は、表示するテキストの中で最も長いものに合わせて各タブの幅が決定されます。すべてのタブ幅の合計長がコントロールの幅を越えた場合、タブに水平のスクロールバーが表示されます。

  • L=行幅に収める …… ［複数行編集］特性が「Yes」に設定されている場合、表示するテキストが一行に収まるように、各タブの幅が決定されます。
    ［複数行編集］特性が「No」の場合は、このオプションは有効になりません。この場合、「テキスに合わせる」と同じ動作になります。

イメージ一覧ファイル名

この特性には、［タブ］コントロール上に表示する画像のコレクションとして使用されるファイルの名前を指定します。推奨する画像ファイルは、高さが16ピクセルのものを横に並べたものです。［イメージ一覧インデックス名］特性の指定値に従って画像が表示されます。

デフォルト値は空白です。

注意：

MAGIC.INIファイルの［MAGIC_SPECIALS］セクションに "SpecialConvAddSlash=N" のパラメータが設定されていないと、式にイメージファイルのパス名を設定する必要がある場合があります。

モバイル仕様：

イメージのサイズは、16x16（ピクセル）に制限されていません。しかし、イメージは正方形でなければなりません。このため、例えばイメージリストには、複数の100x100のイメージを含めることができます。指定されたイメージの高さを基に等分して表示されます。

関連トピック： タブコントロールの各タブにイメージを割り当てるには

Android

iOS

イメージ一覧インデックス

［イメージ一覧ファイル名］特性に指定された画像ファイルから、実際にタブに表示するイメージを指定します。画像ファイル内の左端の画像を「1」としたインデックス値を、カンマ区切りで指定します。

例えば、「12,35,23,16」と指定した場合、最初のタブには、12番目の画像が、２番目のタブには35番目の画像が表示されます。

数値を指定しないで、空白にすることで画像を表示しないタブを指定することができます。（例：「12,35,,16」）12(最初のタブ)、35、(2番目のタブ)、16(4番目のタブ)。）

インデックスの数とタブの数が合わせる必要はありません。インデックスがタブより多い場合は、残ったインデックスは無視され、タブが少ない場合は、指定されないタブに画像が表示されません。

Android

iOS


タブ モバイル特性

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > タブコントロール > モバイル

［タブ］コントロールの詳細モバイル

特性 | 内容 | モバイル
追加情報 | モバイル用のコントロールフォームに関連した追加情報を指定します。（この特性は、モバイルクライアントの今後の新機能に対応するためのものです。) この特性は、リッチクライアントタスクでのみ利用できます。 | Android iOS

サポートバージョン：

2.5


表示コントロール グループ テーブル

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > テーブルコントロール

［テーブル］コントロール

［テーブル］コントロールは、タイトル領域と繰返し領域に分かれています。これらの領域にはテーブルの線が表示されます。

［テーブル］コントロールを含むフォームのグリッドのサイズを変更すると、［テーブル］コントロールのサイズもそれに応じて変更されます。水平方向の変更に対して、サイズ変更率を制御する［位置］特性が影響します。例えば、［位置］特性を80%に設定して、フォームのサイズを10ピクセル増やした場合、［テーブル］コントロールのサイズは8ピクセル増えます。

垂直方向の配置の場合、フォームがどのようにサイズ変更されたかによって、［テーブル］コントロールに表示される行の数が増減します。使用できるデータがなくなると、［テーブル］コントロールには空の行が表示されます。カーソルが置かれている［テーブル］コントロールの行は常に表示されます。

［テーブル］コントロールでは、ドラッグ＆ドロップによってテキストを操作することができます。［テーブル］コントロールのレコードをマークすることで、全てのマークされたレコードに対して［ドラッグ開始］イベントを発生させることができます。マウスの左クリックを行い、コントロールを持ち上げると、Magic xpaがドラッグ操作を認識し、編集モードでのオープンしなくなります。

［テーブル］コントロールの特性は、以下のセクション毎に定義されています。

モデル

詳細

表示

モバイル

位置とサイズ

注意：

  • フォームに配置できる［テーブル］コントロールは１つだけです。従って、フォーム上に既に［テーブル］コントロールが配置されている場合は、［コントロール］パレット上の［テーブル］コントロールアイコンは無効表示になります。

  • ［テーブル］コントロールに配置されるすべてのコントロールは、コントロールにリンクされます。テーブル上にコントロールをドロップすると、自動的にリンクされます。テーブルの外にコントロールをドロップした後に、テーブル領域に移動した場合は、テーブルにリンクされず、テーブルの背後に表示されます。この場合は、手動でリンクを定義する必要があります。

  • クラス>0のフォームに［テーブル］コントロールを配置すると、明細エリアでは出力するレコード毎に行が複写されます。これは、定義された行数分のみフォームに表示され、スクロールすることができるクラス=0のフォームとは異なります。この動作によって、テーブルのデザインを行わなくても表形式でデータを印刷できるようになります。

  • 以下のコントロールは、［テーブル］コントロールにリンクできません。

  • .NET

  • ブラウザー

  • リストボックス

  • ラジオボタン

  • タブ

実行時の動作

リッチクライアントの［テーブル］コントロールでは、選択されたレコードからフォーカスを移すことなくレコードのスクロールを行うことができます。テーブルのスクロールバーやマウスホイール、またはコンテキストメニューを使用してスクロールすることができます。

さらに、Ctrl+PgUp/PgDnを使用して、現在表示中の先頭／末尾レコードを選択することができます。

モバイル仕様：

［テーブル］コントロール内では水平スクロールはサポートされません。特定の領域内でテーブルをスクロールさせる必要がある場合、サブフォーム内にテーブルを配置してください。これによって、サブフォーム領域内でスクロールが実行されます。

関連トピック：

カラム特性


表示コントロール テーブル 詳細

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > テーブルコントロール > 詳細

［テーブル］コントロールの詳細

特性

内容

モバイル

コントロール名

コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や［コントロール］ロジックユニットで参照することができます。LastClicked関数の説明も参照してください。

［コントロール名］特性は30桁に制限されます。末尾の空白は自動的に削除されます。［フォーム］エディタ内のコントロールのコピー処理では、この特性はコピーされません。

Android

iOS

コンテキストメニュー

コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、［メニュー一覧］にアクセスできます。

式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は［メニュー一覧］内のメニュー番号として評価されます。

デフォルト値は「0」です。

Android

ドラッグ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic xpa以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。

このコントロールからコピーされたデータは、［ドラッグ開始］イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。

関連トピック：

ドラッグ&ドロップでデータをコピーするには

外部アプリケーションにデータをドラッグ&ドロップするには

ドロップ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic xpa以外のアプリケーションとの間のデータのドロップ処理を可能にします。

このコントロールへのデータのコピーは、［ドロップ］イベントによるロジックユニットによって意図的に行われるか、Magicエンジンにより自動的に行われます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。

関連トピック： 外部アプリケーションからMagic xpaにデータをドラッグするには


表示コントロール テーブル 表示

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > テーブルコントロール > 表示

［テーブル］コントロールの表示

特性

内容

モバイル

色

コントロールの色を指定します。［アプリケーション用基本色一覧］にズームして選択するか、直接基本色番号を入力してください。

  • ［テーブル色の指定］特性が「C=カラムに依存」の場合は、［スタイル］特性が「平面」場合のみに有効になります。

  • ［テーブル色の指定］特性が「T=テーブルに依存」の場合は全てのスタイルで有効になります。

モバイル仕様：

モバイル用デバイスでシステム色が使用された場合、コントロールに対するOSのデフォルト色が表示されます。

Androidでは、［テーブル］コントロールやそれにリンクされるコントロールで透過色を使用することはパフォーマンスが低下するため推奨されません。

Android

iOS

テーブル色の指定

テーブルの背景色を各カラムごとに指定された色で表示するか、テーブル全体で同じ色によって表示するかを定義します。

  • C=カラムに依存 …… テーブルに配置された各カラムの［色］特性によって表示される色が決まります。

  • T=テーブルに依存 …… ［テーブル］コントロールの［色］特性によってテーブルの背景色が決まります。

モバイル仕様：

「テーブルに依存」のみサポートされます。

交互表示色

テーブルの行の背景色を交互に変更して表示させる場合の変更色を指定します。デフォルト値は「0」です。この場合、全ての行の背景色は同じになります。定義式では指定できません。［テーブル色の指定］特性が「T= テーブルに依存」の場合のみ有効です。

実行時、行の背景色は、［色］特性で指定した色（奇数行）と、［交互表示色］特性で指定した色（偶数行）の交互に切り替わります。行が追加されたり削除された場合、奇数行と偶数業の関係にもづいて表示が切り替わります。データ行がテーブル全体にない場合（テーブルの下部に何も表示されない部分がある場合）も、交互に色が切り替わって表示されます。

モバイル仕様：

Androidでは、交互色の使用はパフォーマンスが低下するため推奨されません。

関連トピック： テーブルコントロールに交互色を表示させるには

Android

iOS

ツールチップ

コントロールに関連付けるツールチップを指定します。［ヘルプ一覧］にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

可視

コントロールを表示させるかどうか指定します。論理値を返す式で指定することもできます。

Android

iOS

境界

コントロールの境界を表するかどうかを指定します。

（モバイルのサポートバージョン：2.2）

Android

iOS

スクロールバー

［テーブル］コントロールに垂直スクロールバーを配置するかどうかを指定します。表示するレコード数が、テーブルの表示行数を超えた場合のみスクローリバーが表示されます。

区切り

［テーブル］コントロールの行間に分割線を表示するかどうかを指定します。

（モバイルのサポートバージョン：2.2）

関連トピック： テーブルコントロールの区切り線の表示／非表示を行うには

Android

iOS

ハイライト行のスタイル

現在の行を強調表示する方法を指定します。

  • N=なし …… 現在の行を強調表示しません。

  • F=フレーム …… 現在の行が、行を取り囲むフレームして強調表示されます。フレームの色は［ハイライト行の色］特性で指定された色の前景色になります。［区切り］特性が「No」の場合は、フレームは表示されません。

  • B=背景 …… 現在の行が［ハイライト行の色］特性で指定された色の背景色によって強調表示されます。

  • C=背景とコントロール …… 現在の行が、背景オプションのような背景色で強調表示されます。強調された色を表示するために、このモードは、また現在行の全てのコントロールの色を変更します。

（モバイルのサポートバージョン：2.3）

Android

iOS

ハイライト行の色

［ハイライト行のスタイル］特性の設定によって強調表示される色を指定します。［基本色一覧］にズームして、色を選択できます。

タイトル高さ

［テーブル］コントロールのタイトルの高さを指定します。この特性は、［フォーム］エディタでタイトルバーの下端をクリックしてドラッグして設定することもできます。

Android

iOS

行高さ

［テーブル］コントロールの行の高さを指定します。テーブルの先頭行の下端をクリックおよびドラッグして設定することもできます。

Android

iOS

下辺位置

ウィンドウのサイズに応じてテーブルの下辺の位置を決める方法を指定します。

  • R=最下行内（デフォルト） …… テーブルの下辺とウィンドウの下辺の間隔が調整され、部分表示行（何も表示されず、行の高さが指定行より小さい行）が表示されないようにします。

  • N=最下行まで …… 部分表示行が表示され、テーブルの下辺とウィンドウの下辺の間隔が同じになるように調整されます。

オンラインタスクでのみ有効です。

カラム数

［テーブル］コントロール内のカラムの数を表示します。カラム数の変更はフォームレイアウト上でのみ行うことができます。

カラムの区切線

アプリケーションの実行時にエンドユーザがカラムの順序を変更することができるかどうかを指定します。

  • Yes …… カラムタイトルをドラッグし、別のカラムのタイトル部にドロップすることで、カラムの順番を変更することができます。

  • No …… カラムの順序は変更できません。

関連トピック： テーブルコントロールの区切り線の表示／非表示を行うには

サイズ変更可

実行モードにおいて［テーブル］コントロールのカラムの区切り線をドラッグすることでカラムのサイズを変更できるようにするかどうかを指定します。

カラムのサイズを変更するには２つの方法があります。

  • カラムの区切り線をクリックしてドラッグします。この場合、区切りの両端のカラムの幅が変わります。

  • カラムの区切り線をクリックして、Shiftキーを押しながらドラッグします。この場合、区切りの左端のカラムの幅が変わり、テーブルの幅も変わります。

カラムの並べ替え可

アプリケーションの実行時にエンドユーザがカラムの順序を変更することができるかどうかを指定します。

  • Yes …… カラムタイトルをドラッグし、別のカラムのタイトル部にドロップすることで、カラムの順番を変更することができます。

  • No …… カラムの順序は変更できません。

エンドユーザが実行中にテーブルカラムの順番を変更した場合、そのコンテキスト内でのみ有効です。タスクを一度終了して再起動した場合、開発時の順番で表示されます。

マルチマーキング

［テーブル］コントロールのマルチマーキング機能を有効にするかどうかを指定します。

マークされたテーブルに対してユーザが定義した処理を実行したり、マーク行を削除したりすることができます。

［キャッシュ範囲］特性が「No」に設定された場合、マルチマーキング機能は利用できなくなります。

オンラインタスクでのみ有効です。


表示コントロール カラム

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > テーブルコントロール > カラム特性

カラム特性

［カラム特性］には、以下の特性があります。

特性

内容

モバイル

モデル

カラムモデルが設定できます。ここからダブルクリックすると［カラムモデル一覧］にアクセスすることができます。

項目モデルには、以下の属性があります。

  • 項目モデルのすべての特性は、カラムによって継承されます。

  • カラム名が空白の場合、項目モデルの名前が設定されます。

Android

iOS

詳細

カラムタイトル

［テーブル］コントロール内のカラムのタイトルを入力します。

カラムタイトルとして複数行のテキストを入力したい場合は、この特性上で広域ウィンドウ（F6)を開いてください。

Android

iOS

ソート可

この特性を「Yes」に指定すると、このカラムを使用してテーブルをソートできるようになります。レコードがソートされる場合、サーバへのアクセスが実行されます。

タスクにメインソースと実カラムが定義されている場合のみ有効です。

BLOB型のデータ項目または［イメージ］コントロールがカラムに定義されている場合は無効です。

ユーザがソート可能なカラムをクリックすると、以下の様に動作します。

  • SQL系のデータソースの場合、Magic xpaはデータベースに対して ODER BY句付きのSELECTステートメントを送ります。大きなビューを持っている場合は、処理に時間がかかる場合があります。

  • Pervasive SQL（ISAM）のデータソースを使用した場合、Magic xpaは一時的なソートテーブルを作成し、それによりソート後に収束されたレコードが最初のレコードとなります。

コンテキストメニュー

コントロール上で使用されるコンテキストメニューを指定します。

Android

表示

上境界線

カラムの上の境界線を表示するか否かを指定します。

この特性を、変更すると即時に有効になります。

式で指定することで実行時に動的に変更することができます。式には、論理値として評価される値を指定してください。

式を使用することで、処理されるカラム内の各行に対して描画することが可能です。

テーブルの一番上に表示されるセルの一番上の境界は常に表示されます。

セルがテーブルの一番上にある場合は、上境界線が常に表示されます。

オンラインタスクでのみ有効です。

右境界線

カラムの右の境界線を表示するか否かを指定します。

この特性を、変更すると即時に有効になります。

式で指定することで実行時に動的に変更することができます。式には、論理値として評価される値を指定してください。

式を使用することで、処理されるカラム内の各行に対して描画することが可能です。

テーブルの一番右に表示されるセルの右端の境界は常に表示されます。

セルがテーブルの右端にある場合は、右境界線が常に表示されます。

オンラインタスクでのみ有効です。

水平整列

コントロール内の水平方向のテキストの配置を指定します。有効な値は以下の通りです。

  • L=左寄せ

  • C=センタリング

  • R=右寄せ

垂直整列

カラムタイトルの垂直方向のテキストの配置を指定します。［カラムタイトル］特性に複数行のテキストが設定されている場合は無効です。有効な値は以下の通りです。

  • T=上寄せ

  • C=センタリング

  • B=下寄せ

フォント

コントロールに表示されるテキストのフォントを指定します。［アプリケーション用フォント一覧］にズームして選択するか、直接フォント番号を入力してください。

Android

iOS

色

コントロールの色を指定します。［アプリケーション用基本色一覧］にズームして選択するか、直接基本色番号を入力してください。

可視

コントロールを表示させるかどうかを指定します。可視にするかどうかを表す論理値を返す式が指定できます。

Android

iOS

追加情報

モバイル端末用のコントロールまたはフォームに関連した追加情報を指定します。

複数のパラメータは、カンマ区切りで指定できます。

Android

iOS

位置とサイズ

位置

テーブルのサイズ変更によってカラムのサイズが変更されるかどうかを指定します。

［位置］特性が「Yes」に設定されたカラムは、カラムの総数に基づいて大きさが変更されます。たとえば、4つのカラムの各［位置］特性を「Yes」に設定すると、各カラムはテーブルの25%のサイズになります。

［位置］特性を「No」に設定した場合、カラムのサイズは変わりません。

Android

iOS

幅

フォームのオープン時のカラム幅を指定します。フォームの寸法単位に基づいた値を指定します。

Android

iOS

コントロールレイヤ

コントロールがチョイスコントロールの子としてリンクされている場合、選択したコントロールのリンク先である親のチョイスコントロールの階層を表示します。

例えば、3つの選択肢が定義されたメニューを持つコンボボックスがフォームに配置されている場合、エディットを3番目の選択肢にリンクすると、この特性に番号3が表示されます。この特性は、常に無効になっており、フォームレイアウトでのみ変更できます。この特性は、チョイスコントロールにリンクされているコントロールにのみ有効です。


表示コントロール テーブル マルチマーキング

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > テーブルコントロール > テーブル内でのマルチマーキング

テーブル内でのマルチマーキング

［テーブル］コントロールでは、Windowsアプリケーションでのマルチマーキング機能と同様の処理を行うことができます。マルチマーキング機能は、オンラインフォームでのみ使用できます。

タスクの［テーブル］コントロールでマルチマーキングを有効にするには、［テーブル］コントロールの［マルチマーキング］特性を「Yes」に設定します。この特性は、オンラインタスクの場合にのみ有効です。

マークされた行は、色が反転されます。

マークされたレコードに対して、次の操作が実行できます。

  • 構文チェック …… 開発モード

  • コピー …… 開発モード

  • 削除 …… 開発モードと実行モード

  • イベント …… 実行モード（マルチマーキング用ロジックユニットを作成して独自のロジックを定義）

サポートバージョン：

2.3

関連トピック：

マルチマーキングのためのイベントロジックユニット

マルチマーキングイベント


表示コントロール テーブル マルチマーキング イベント

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > テーブルコントロール > テーブル内でのマルチマーキング > マルチマーキングのためのイベントハンドラ

マルチマーキングのためのイベントロジックユニット

ユーザは、［マルチマーキング］特性を「Yes」に設定して、マークされている各テーブル行を処理する［イベント］ロジックユニットを作成できます。イベントが起動されると、選択された行ごとにデータビューの先頭から末尾まで実行されます。

例えば、ユーザがフォーム内に表示されているサマリテーブルの合計を再計算したいと考えているとします。ユーザは、合計を計算して更新するプログラムを呼び出します。イベントが実装されると、［イベント］ロジックユニットは選択された行ごとにプログラムを呼び出して、更新された合計を表示します。

マルチマーキング用の関数には以下のものがあります。

MMStop | マルチマーキングのロジックユニットの処理を停止します。
MMCount | マークされている行数を取得します。
MMCurr | イベント実行中にマークされている行の現在の行を取得します。
MMClear | レコードのマークを解除します。

関連トピック：

マルチマーキングイベント


表示コントロール ツリー

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ツリーコントロール

［ツリー］コントロール

親と子の異なるレベルのデータを表すノードデータを持つツリー構造のテーブルをメインソース（または結合テーブル）として使用した場合、このデータビューを［ツリー］コントロールを使用して表示することができます。

異なるデータレベルを表示するには、［ツリー］コントロールの以下の特性を設定します。

  • ルート値 …… 実行エンジンがデータツリーを作成する開始ポイントとして使用される値を式で指定します。この値は、次のレベルのデータにつながる先頭のノードとして表示されます。ルート値が指定されない場合、次のレベルのデータにつながる先頭レコードがないことになります。この場合、実行エンジンは、次のレベルの個別の親ノードとして表示されたデータによってデータツリーを作成します。

  • 親のID …… タスクのデータビュー内の親レコードを表す項目。式で定義できません。

  • ノードID …… タスクのデータビュー内の子レコードを表す項目。式で定義できません。ノードIDは、ツリー内でユニークになるようにしてください。ノードIDとして割り当てる項目で、ユニークなインデックスを定義することをお勧めします。

［ツリー］コントロールは、1 つのデータベーステーブルで定義されたメインまたは結合リンクテーブルのレコードでのみ表示できます。

［マルチマーク］特性を「Yes」に設定すると、複数のノードを選択することができます。

［ツリー］コントロールの特性は、以下のセクション毎に定義されています。

注意：

フォームのクラスを「0」から「1」以上に変更した場合、[ツリー]コントロールは削除されます。

モデル

詳細

入力

表示

モバイル

パーク

位置とサイズ

制限事項：

  • マルチマーキングやドラッグ＆ドロップ、または透過背景色をサポートしていません。

  • モバイル環境ではサポートされません。

  • オフラインタスクではサポートされません。

  • ローカルデータ・ソースは、［ツリー］コントロールが定義されたタスクで使用できません。

関連トピック：

データツリーの作成

ツリーコントロールイベント

ノードの追加／削除

データツリーの操作

ノードテキストの編集

データツリーの再表示

ツリーコントロール関数

ツリーコントロール (Mastering Magic xpa)


表示コントロール ツリー 詳細

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ツリーコントロール > 詳細

［ツリー］コントロールの詳細

特性

内容

ノードID

タスクデータビューのノードIDを定義する項目です。式では定義できません。

親のID

タスクデータビューの親レコードを定義する項目です。式では定義できません

ルート値

実行エンジンがツリーを作成する開始位置として使用される値です。

ルートの表示

ルートを表示するかどうかを指定します。ルート値が指定されない場合は、無効です。

  • Yes …… 先頭のノードに表示されます。

  • No …… 表示されません。

関連トピック： ルートノードの表示/非表示を切り替えるには

コントロール名

コントロールの名前を指定します。クラス0フォーム内に定義されたコントロールに名前を付けると、関数や［コントロール］ロジックユニットで参照することができます。

［コントロール名］特性は30桁に制限されます。末尾の空白は自動的に削除されます。［フォーム］エディタ内のコントロールのコピー処理では、この特性はコピーされません。

イメージ一覧ファイル名

クリックすることで表示される、「ノードの展開」、「縮小」、「パーク」を表すイメージファイル名を指定します。指定されない場合は、Magic xpaのデフォルトイメージを使用します。16×16ピクセルのイメージを横に並べて1つのイメージファイルとして結合したものが使用できます。

注意：

MAGIC.INIファイルの［MAGIC_SPECIALS］セクションに "SpecialConvAddSlash=N" を定義しないと、式にイメージファイルのパス名を設定する必要がある場合があります。

関連トピック： ツリーのノードにアイコンを設定するには

展開表示イメージインデックス

（イメージ一覧ファイル内の）ノードの展開表示に使用するイメージのインデックスを指定します。式で指定することで、実行時にイメージを動的に指定することもできます。指定しない場合は、デフォルトイメージを使用します。

縮小表示イメージインデックス

（イメージ一覧ファイル内の）ノードの縮小表示に使用するイメージのインデックスを指定します。式で指定することで、実行時にイメージを動的に指定することもできます。指定しない場合は、デフォルトイメージを使用します。

パーク展開表示イメージインデックス

（イメージ一覧ファイル内の）展開表示ノードのパーク状態を表すイメージのインデックスを指定します。式で指定することで、実行時にイメージを動的に指定することもできます。指定しない場合は、デフォルトイメージを使用します。

パーク縮小表示イメージインデックス

（イメージ一覧ファイル内の）縮小表示ノードのパーク状態を表すイメージのインデックスを指定します。式で指定することで、実行時にイメージを動的に指定することもできます。指定しない場合は、デフォルトイメージを使用します。

自動展開

「Yes」 が選択された場合、実行時にツリーの全てのノードが展開表示されます。

関連トピック： ツリーを表示する際にノードを自動的に展開させるには

ノード事前読込

実行時にデータツリー用のレコードの読込方法を指定します。

  • Yes …… タスクデータビューの全てのレコードのデータを読み込みます。

  • No …… 拡張されたレコードのデータのみ読み込みます。データツリー表示は、［自動拡張］特性によって指定されます。

注意：

レコード数の多いツリーで使用すると、タスクの起動が遅くなる場合があります。

関連トピック：

ビューの事前読込

子ノードを持つノードのみ展開ボタンを表示させるには

コンテキストメニュー

コントロール上で使用されるコンテキストメニューを指定します。この特性には、9999までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、［メニュー一覧］にアクセスできます。

式でメニューを指定することもできます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。実行時、式は［メニュー一覧］内のメニュー番号として評価されます。

デフォルト値は「0」です。

ドラッグ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドラッグ処理や、同一PC上のMagic xpa以外のアプリケーションとの間でのデータのドラッグ処理を可能にします。

このコントロールからコピーされたデータは、［ドラッグ開始］イベントによるロジックユニットによって意図的に設定されるか、Magicエンジンにより自動的に設定されます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。

関連トピック：

ドラッグ&ドロップでデータをコピーするには

外部アプリケーションにデータをドラッグ&ドロップするには

ドロップ許可

同じMagicアプリケーション間でのコントロールからコントロールへのデータのドロップ処理や、同一PC上のMagic xpa以外のアプリケーションとの間のデータのドロップ処理を可能にします。

このコントロールへのデータのコピーは、［ドロップ］イベントによるロジックユニットによって意図的に行われるか、Magicエンジンにより自動的に行われます。

注意：

ここに設定された式は、タスク起動時にのみ評価されます。

関連トピック： 外部アプリケーションからMagic xpaにデータをドラッグするには

ツリー表示の保持

［ツリー］コントロールの制御から抜けた後、再度コントロールに入った場合に表示状態を保持するかどうかを指定します。通常、ファントムタスクでツールを表示させる場合に「Yes」を設定します。

ファントムタスクに［ツリー］コントロールを配置した場合、ファントムタスクに再度入ると、レコードの範囲指定が変更されていなくても、［ツリー］コントロール表示はリセットされます。したがって、この特性値を「Yes」に設定するとことで、現状のままでツリーが保持されます。

オンラインタスクでのみ有効です。

リッチクライアントでは、定義上ツリーはビューを維持します。


表示コントロール ツリー 入力

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ツリーコントロール > 入力

［ツリー］コントロールの入力

特性

内容

表示項目

ノードに表示される内容が格納された項目を指定します。

項目

［データ］特性で指定されたデータ項目の名前を表示します。

書式

表示項目の書式を指定します。ここで変更できるのは、現在のフォーム表示の形式だけです。初期設定値は、項目のカラムテーブルの設定から継承された書式になります。［式］エディタにズームして、コントロールの書式を表す式を入力することもできます。

型

選択した表示項目の型。この値は変更できません。

修正許可

実行時にユーザがコントロール内の値を変更できるかどうかを指定します。

  • Yes …… ユーザはコントロール内の値を変更できます。

  • No …… コントロールへのユーザアクセスは拒否されます。

有効

コントロールを有効にするかどうかを指定します。有効にするかどうかを表す論理値を返す式を使用できます。

マルチマーキング

エンドユーザがテーブルに表示された複数行をマルチマークできるようにするかどうかを指定します。マークされた全ての行でロジックを実行させることができます。また、マークされた全てのレコードを削除させることもできます。

［キャッシュ範囲］特性が「なし」の場合は、マルチマーキングが利用できません。この特性は、オンラインタスクのみ有効です。


表示コントロール ツリー 表示

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ツリーコントロール > 表示

［ツリー］コントロールの表示

特性

内容

境界

コントロールの境界を表示するかどうかを指定します。

  • Yes …… 境界が表示されます。

  • No …… 境界は表示されません。

フォント

コントロールに表示されるテキストのフォントを指定します。[アプリケーション用フォント一覧]にズームして選択するか、直接フォント番号を入力してください。

色

コントロールの色を指定します。[アプリケーション用基本色一覧]にズームして選択するか、直接基本色番号を入力してください。

注意：

［ツリー］コントロールは、透過色をサポートしていません。

モバイル仕様：

モバイル用デバイスでシステム色が使用された場合、コントロールに対するOSのデフォルト色が表示されます。

可視

コントロールを表示させるかどうか指定します。論理値を返す式で指定することもできます。

ヘルプ画面

コントロールに関連付けるヘルプを指定します。 ［ヘルプ一覧］にズームして選択できます。

リッチクライアント用コントロールの場合は、URLヘルプのみサポートされます。URLヘルプのファイル指定は、サーバ上のファイルパスで指定します。

自動ヘルプ

コントロールと関連付ける自動ヘルプを指定します。指定されたヘルプの内容は、この項目にカーソルがある時に自動的にステータスバーに表示されます。

ツールチップ

コントロールに関連付けるツールチップを指定します。[ヘルプ一覧]にズームしてツールチップヘルプを選択できます。

式で指定することで動的に表示させることができます。式ではヘルプ内容をUnicode書式で定義します。

ボタンの表示

データツリーのボタンイメージの表示を指定します。

  • Yes …… 親ノードの隣にボタンイメージが表示されます。デフォルトのボタンイメージの場合、サブツリーが無くても最初は、'+'が表示されます。これを避けるには、［ノードの事前読込］特性か［自動展開］特性を「Yes」に設定してください。

  • No …… ボタンイメージは表示されません。この場合、エンドユーザは、ツリーレベルを拡張する場合、親ノードをダブルクリックする必要があります。

関連トピック： 展開/縮小ボタンを表示/非表示するには

ラインの表示

データツリーのツリーラインの表示を指定します。

  • Yes …… ツリーラインを表示します。この場合、[選択行のハイライト表示]特性は無効になります。

  • No …… ラインは表示されません。

関連トピック： ツリーコントロールの接続線を表示/非表示させるには

ルートのライン表示

ルートノードのライン表示を指定します。

  • Yes …… ルートにラインが表示されます。

  • No …… ラインは表示されません。

マウスオーバ表示

マウスカーソルがノードを通過したり、ノードにパークしたりした場合の動作を指定します。

  • Yes …… ノードテキストの下にラインを表示します。

  • No …… 表示されません。

オンラインタスクのみ有効です。

ホットトラック

マウスカーソルがノードを通過したり、ノードにパークした場合の動作を指定します。

  • Yes …… ノードテキストの下にラインを表示します。

  • No …… 表示されません。

  • 式 …… 論理式を定義することで動的に定義できます。

リッチクライアントタスクのみ有効です。

選択行のハイライト表示

マウスカーソルがノードにパークした場合の動作を指定します。

  • Yes …… ノードテキストがハイライト表示します。この場合[ラインの表示] 特性が無効になります。

  • No …… ノードテキストの表示は変わりません。

関連トピック： 現在のツリーノードの行を強調表示させるには


ツリー モバイル特性

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ツリーコントロール > モバイル

［ツリー］コントロールのモバイル

特性 | 内容
追加情報 | モバイル用のコントロールフォームに関連した追加情報を指定します。（この特性は、モバイルクライアントの今後の新機能に対応するためのものです。) この特性は、リッチクライアントタスクでのみ利用できます。

サポートバージョン：

2.5


表示コントロール ツリー 作成

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ツリーコントロール > データツリーの作成

データツリーの作成

［ツリー］コントロールを配置したオンラインタスクがメインフォームを開いた場合、以下のような動作をします。

  1. データビューの範囲指定が計算されます。

  2. ルート値が存在する場合、実行エンジンは、トップの親ノードとしてルート値を表示し、データベースからレコードをフェッチします。

  3. ツリーに対する初期拡大レベルは、［自動展開］特性で指定された値によって決まります。

  4. ［ノード事前読込］特性が 「Yes」に設定された場合、実行エンジンは、データビューの範囲内で見つかった各親の子レコードを自動的に検索します。「No」に設定された場合、実行エンジンは、展開表示された子レコードのみ検索します。

  5. 検索された各レコードに対して、新しいノードが対応するノードの GUI データを持つツリーに追加されます。

  6. ［自動展開］特性の指定に基づいて #4と#5 の処理が全レコード分繰り返し実行されます。


表示コントロール ツリー ノード追加

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ツリーコントロール > ノードの追加／削除

ノードの追加／削除

以下の場合に、F4を押下したり、［子ノード作成］イベントを実行することでノードをデータツリーに追加できます。

  • タスクが修正モードでオープンされている場合

  • メインスクリーンが表示されている場合

  • 選択された親ノードが、展開表示されている場合

F3 を押下することによってノードを削除できます。親ノードを削除する場合は、子ノードが全て削除されていなければなりません。ノードを削除した後、実行エンジンはデータツリーを自動的に再表示します。


表示コントロール ツリー 操作

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ツリーコントロール > データツリーの操作

データツリーの操作

実行エンジンは、 フォーカスのある現在のノードで表示されたデータビューの現在のノードを常に示します 。別のノードに移動すると、 現在のノードが更新されます。

親ノードが最初に展開表示された時、 GUI レイヤは、展開された親ノードと関連するノードのレコードを検索するように、実行エンジンに要求を出します。すでに親ノードが展開表示されている場合は、 展開されたノードレベルを表示するだけで、レコードの検索要求は出しません。

展開された親ノードを縮小表示させた場合、 GUI レイヤは、閉じたノードを表示するだけで、実行エンジンへの要求は出しません。選択されたノードが縮小された親ノードの一部の場合、 GUI レイヤは選択されたものとして親ノードを表示し、現在のレコードを変更するように、実行エンジンに要求を送ります。

フォーカスがデータツリーから抜けた場合でも、実行エンジンは選択ノード上にパークし続けます。


表示コントロール ツリー 編集

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ツリーコントロール > ノードテキストの編集

ノードテキストの編集

以下のようにしてノードテキストを変更することができます。

  1. マウスを 1回クリックし、編集したいノードにフォーカスを移します。

  2. ノードテキストを編集するために、再度マウスをクリックします。

  3. テキストが編集された後で、 Enterキーを押下します。更新されたテキストは保存され、実行上のフォーカスは選択されたノードに残ります。


表示コントロール ツリー 再表示

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ツリーコントロール > データツリーの再表示

データツリーの再表示

以下の場合、データツリーの内容が再表示されます。

  • 親または子ノードが、追加、修正、削除された場合

  • ［画面再表示］イベントが実行された場合

タスクを修正しても、データツリーの表示方法が変更されるだけです。


表示コントロール ツリー 関数

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ツリーコントロール > ツリーコントロールの関数

［ツリー］コントロールの関数

［ツリー］コントロール関数には以下のものがあります。

  • TreeLevel …… データツリー上の選択ノードの現在のレベルを取得します。

  • TreeValue …… 選択ノードの現在のレベルによって決定されたノードIDを取得します。

  • TreeNodeGoto …… 指定したノードにパークします。


表示コントロール チョイス

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > チョイスコントロール

チョイスコントロール

チョイスコントロールは、複数の値を表示します。チョイスコントロールをクリックしたり、Altキーを押下すると選択したレイヤに関連する全てのコントロールがマークされます。

チョイスコントロールには、以下のものがあります。

ラジオボタン …… ［ラジオボタン］コントロールは複数選択オブジェクトに使用されます。ラジオボタンは不連続な入力範囲を持つ項目に割り当てます。範囲内のそれぞれの値は、1つのラジオボタンとして表示され、ラジオボタンと一緒に値が表示されます。ボタンは、1つのコントロールとして、ボックス内にまとめられて表示されるが、各ボタンは別個の構成要素のように見えます。
ユーザはグループから1つのボタンだけを選択します。ユーザがボタンを選択すると、円の中に黒い点が表示され、そのボタンが選択されていることを示します。カラムは選択されたボタンが表す値を取得します。論理型項目がラジオボタンとして表示されていて、その範囲が定義されていない場合、デフォルト値「True」または「False」が使用されます。

タブ …… ［タブ］コントロールは、ファイルキャビネットやノートの仕切りに似ています。タブを使用して、同一ウィンドウに複数の論理ページや論理セクションを定義できます。ユーザはタブタイトルを選択してタブカードを開きます。タブカードには、選択したタブタイトルの子としてのコントロールを含むことができます。

リストボックス …… 選択肢の一覧が表示されたコントロールです。［リストボックス］コントロールは一連の項目を表示するのに使用されます。ほとんどの場合、その一覧から1つの項目を選択できるようになっています。

コンボボックス …… ユーザは、一覧からエントリを選択できます。［高さ］特性で、閉じた状態のコンボボックスの高さを設定します。開いているコンボボックスは、［動作環境］ダイアログの［プルダウンメニュータイムアウト］で指定されている時間が経過すると自動的に閉じます。

関連トピック：

チョイスコントロールによるデータの選択動作


表示コントロール チョイス 選択動作

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > チョイスコントロール > チョイスコントロールによるデータの選択動作

チョイスコントロールによるデータの選択動作

各チョイスコントロールは、データベーステーブルを定義して有効な選択範囲を指定することでデータ選択処理ができます。Magic xpaでは、このように設定されたチョイスコントロールを「データコントロール」と表現しています。

このためには以下のようなコントロール特性の設定を行ってください。

  • ソーステーブル …… チョイスコントロールのオプションを設定するデータソース

  • 表示項目 …… 選択オプションとして画面に表示される項目

  • リンク項目 …… 選択された場合に値を返す項目

  • インデックス …… テーブルの表示順を決めるインデックス

  • 範囲項目 …… データソース内で選択対象を制限する場合に指定します。

データコントロールは、チョイスコントロールの表示項目の重複を許します。重複項目のどれかを選択するとそれに対応したリンク項目が返ります。リンク項目が重複している場合は無視されます。この場合は、最初に見つかった項目が表示されます。

チョイスコントロールによって作成されたビューは、各データコントロール用に取得されます。

  • ビューは、定義された範囲基準に基づいて取得されます。もし、取得条件がフェッチされたビューと合った場合だけ、データコントロールのビューとして取得されます。

  • 各ビューは、それぞれのデータコントロールごとに取得されるので、他のデータコントロールで、同じテーブルの同じ項目を指定しても、データを共有することはありません。


表示コントロール 特性 一覧 自動拡張

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > 自動拡張

自動拡張 （デフォルト：No）

必要な時に自動的に拡張ウィンドウをオープンするかどうかを指定します。この特性が「Yes」に設定された場合、ユーザが現在の［エディット］コントロールの幅を超えた位置にカーソルを動かしたり、テキストを入力すると拡張ウィンドウが自動的にオープンされます。

拡張ウィンドウが自動的にオープンされた後、キャレットは拡張ウィンドウ内のテキストの同じ位置に表示されます。ただし、拡張ウィンドウがクローズされた場合、キャレットは文字列の先頭に表示されます。

ユーザ定義による拡張表示とデフォルトの拡張表示

［自動拡張］特性を設定すると、以下の場合に自動的に拡張ウィンドウが表示されます。

  • コントロールの幅を超えた長さのテキストを入力した場合

  • すでにコントロールの幅を超える長さのテキストが入力された［エディット］コントロールの処理（切取り、削除、マーク、置換、貼り付け、挿入）を行なった場合

  • ［全てマーク］イベントや、複数マーク（Shift+カーソルキー や Shift+End）処理を実行して、コントロールの幅を超えるテキストをマークした場合.

  • すでにコントロールの幅を超える長さのテキストが入力された［エディット］コントロール内でキャレットの操作（次文字、項目末尾、行末）を行なった場合

マウスを使用したマーキング

マウスを使用して、［エディット］コントロールをマークした場合、コントロール内に表示されている最後の文字だけがマークされ、実際に入力されている最後の文字がマークされている訳ではありません。


表示コントロール 特性 一覧 ボタンスタイル

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > ボタンスタイル

ボタンスタイル

［プッシュボタン］コントロールの表示方法を定義します。

プッシュボタン

プッシュボタンコントロールにデフォルトのWindowsプッシュボタンデザインが使用されます。

イメージボタン

［データ］特性または［デフォルトイメージファイル名］特性に指定されたイメージファイルがボタンに表示されます。ボタンに表示されるテキストは［書式］特性で定義されます。

このイメージは、（［動作環境］の［プッシュボタン用イメージ数］の設定によって）プッシュボタンの4つまたは6つの異なる状態のイメージを含めておく必要があります。

  • パーク …… これは、プッシュボタンにデータ項目が定義されている場合のみ有効です。この場合、Tab移動できます。

  • 選択

  • 無効

  • 通常 …… これは、表示されているだけ（パークしておらず、ボタンが有効な）の状態です。

モバイル仕様：

「選択」、「無効」、「通常」のみ表示されます。

6つのイメージの場合は、以下のオプションがあります。

  • ホットトラック …… マウスカーソルがプッシュボタン上にある場合の表示

  • デフォルトボタン …… プッシュボタンがフォームのデフォルトボタンとして設定される場合に表示されます。デフォルトボタンは、ユーザがEnterキーを押下した場合に起動されるプッシュボタンです。複数行コントロールを編集する場合は、デフォルトプッシュボタンは起動されません。

Magic xpaは、実行時に4つか6つのイメージのどちらを表示するかを決定します。

各イメージの最大サイズは256x256ピクセルです。例えば6つの状態のイメージを使用する場合は、イメージサイズは、1536x256ピクセルになります。イメージファイルの名前は、変数や式を使用して［データ］特性を指定してください。

リッチクライアントの［イメージリストファイル名］特性(またはGUI表示の［デフォルトイメージファイル］特性)は、開発環境でのみ有効です。

関連トピック：

イメージボタンを作成するには

イメージとテキストを組み合わせてボタンを表示するには

ハイパースタイル

この設定にすると、プッシュボタンは2本の下線付きテキストとして表示されます。ボタンスタイルがハイパーテキストの時に、データ項目を定義するための条件は次のように制限されています。

  • 名前の最大文字数は30文字です。

  • 先頭と末尾に空白を使用できます。

  • 名前には空白を使用できます。

  • 数値および特殊文字を使用できます。

  • 言語テーブルで定義した特定言語の文字を使用できます。


表示コントロール 特性 一覧 コンテキストメニュー

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > コンテキストメニュー

コンテキストメニュー

コントロールやフォーム上で使用されるコンテキストメニューを指定します。この特性には、［サブフォーム］コントロール以外の全てのコントロールで表示されます。

［コンテキスト］特性には、以下のオプションがあります。

  • コンテキストメニュー項目 …… ここには、「9999」までの数値を入力することができます。存在していないメニュー番号を入力した場合、「0」にリセットされます。ここからズームして、［メニュー一覧］にアクセスできます。

  • 式 …… ［メニュー定義］テーブルのエントリとして評価される式を指定することができます。この式は再計算され、コンテキストメニューの表示要求がある度に評価されます。

コントロールのデフォルト値は、「0」で、フォームのデフォルト値は「2」です。

コンテキストメニューが定義されると、以下のように開きます：

  • Windows …… マウスの右クリック操作やキーボード（Shift+F10）操作を行った場合に開きます。

  • Android ……デバイスのメニューボタンをタップするとフォームのコンテキストメニューが開きます。コントロールを"長押し"するとコントロールのコンテキストメニューが開きます。

  • iOS…… フォームにタイトルバーが表示されている場合、フォームの右端のボタンをタップすることでフォームのコンテキストメニューが開きます。

コンテキストメニューが必要な場合：

  • コントロールにデフォルトのコンテキストメニューが定義されていない場合、その親コントロールのコンテキストメニューを表示しようとします。コントロールの階層をさかのぼって検索します（Windowsのみ）。

  • どのコンテキストメニューも有効でない場合、［フォーム特性］に定義されたコンテキストメニューを表示します（Windowsのみ）。

  • 有効なコンテキストメニューが無い場合は、アプリケーション特性に定義されたコンテキストメニューが表示されます（Windowsのみ）。

  • デフォルトのメニューも見つからない場合、コンテキストメニューは表示されません。

  • コンテキストメニューが親タスクまたはファンントムタスクのどちらかで動作する場合、Magic xpaは最初にフォーカスをそのタスクに移し、それからコンテキストメニューを表示します。

  • コントロールの［有効］特性が「No」の場合、コンテキストメニューを表示させることはできません。この場合に、親コントロールのコンテキストメニューが表示されます。

  • ［OLE］/［.NET］コントロールがそれ自身のコンテキストメニューを持っている場合、このメニューが表示されます。

イメージ

Windowsの場合は、イメージがメニューシステム(両方またはメニューのどちらかとして)に定義されている場合、コンテキストメニューに表示されます。

モバイル仕様

AndroidとiOS

  • 最上位レベルのメニューだけが利用できます。

  • 「プログラム」と「イベント」のみ表示されます。

  • フォームにコンテキストメニューが定義されていない場合、（Windowsと異なり）アプリケーションのコンテキストメニューはフォーム用として表示されません。

  • 無効にされたエントリは、表示されません。

Android

  • メニューには自動的に「その他」ボタンが表示されれる場合があります。ここをタップすると残りのメニュー項目が表示されます。

iOS

  • イメージはサポートされません。

  • コントロールレベルのコンテキストメニューは、サポートされません。長押しした場合、iOSのデフォルトのコンテキストメニューが表示されます。

関連トピック：

実行時のコンテキストメニュー

個々のコントロールにコンテキストメニューを設定するには


GUIコントロール 特性 一覧 漢字入力

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > 漢字入力

漢字入力

[漢字入力]特性は、かな漢字変換プログラム（IME）を自動起動するためのものです。IME を手動で起動する場合は、この特性の設定は必要ありません。

かな漢字変換入力モードの値を返す式を[式]エディタに設定し、その式番号をこの式欄に設定します。ただし、式が返す値は0 ～ 8 でなければなりません。

各値に対するかな漢字変換入力モードは、以下のようになります。

値 | 入力モード | サイズ | 入力方法 | 入力例
0 | OFF | - | - | -
1 | 全Ｒ かな | 全角 | ローマ字 | かな
2 | 全かな | 全角 | 直接 | のちみち（ＫＡＮＡ ）
3 | 全Ｒ カナ | 全角 | ローマ字 | カナ
4 | 全カナ | 全角 | 直接 | ノチミチ（ＫＡＮＡ ）
5 | 半Ｒ カナ | 半角 | ローマ字 | ｶﾅ
6 | 半カナ | 半角 | 直接 | ﾉﾁﾐﾁ（KANA ）
7 | 全英数 | 全角 | 直接 | ｋａｎａ
8 | 半英数 | 半角 | 直接 | kana
9 | (予約) | - | - | -

注意：

  • この特性は、日本語版でのみ有効です。

  • IMEによっては、「1」と「2」、「3」と「4」、「5」と「6」が同じ結果になる場合があります。

モバイル仕様：

Android：「8」で半角英数字モードに切り替わる以外は、全て全角かなモードになります。

iOS：「7/8」で半角英数字モードに切り替わる以外は、全て全角かなモードになります。

デフォルトが英語キーボードに設定されている場合や手動で英語入力に切り替えている場合は、動作しません。日本語キーボードに切り替えることで有効になります。

使用するキーボードソフトによってはモード切替の動作内容が異なる場合があります。


表示コントロール 特性 一覧 グラデーションスタイル

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > グラデーションスタイル

グラデーションスタイル

この特性は、グラデーションの表示スタイルを定義します。［グラデーションスタイル］ダイアログボックスを開き、スタイルを選択して [image] をクリックしてください。

注意：

表示されるグラデーションは、［グラデーション色］特性の前景色から背景色へと変化します。「N=なし」が設定された場合、［色］特性の背景色が表示されます。

リッチクライアントのラジオボタンとチェックボックスの各コントロールでは、［表示］特性が「ボタン」に設定された場合のみ有効です。

有効なオプションは以下の通りです：

  • N=なし

  • H=水平

  • O=水平(ミラー)

  • O=水平(ミラー)

  • R=水平(ワイド)

  • V=垂直

  • E=垂直(対称)

  • T=垂直(ワイド)

  • D=斜め左

  • I=斜め左(ミラー)

  • A=斜め右

  • G=斜め右(ミラー)

  • F=左上隅

  • P=右上隅

  • M=左下隅

  • B=右下隅

  • C=中央


表示フォーム 特性 モデル

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > モデル

モデル

継承が解除されている特性の継承をし直したり、モデルの全ての特性の継承を解除することができます。さらに、別のモデルを選択することもできます。

他のモデルを選択する場合にクリックします。

デフォルトモデルの特性を表示する場合にクリックします。

モデル特性の継承を解除する場合にクリックします。

モデル特性を継承する場合にクリックします。


表示コントロール 特性 一覧 位置

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > 位置

位置

［位置］特性は、各コントロールの以下の設定を行います：

  • フォームのサイズの変更方法にもとづくいて、コントロールのサイズを変更する

  • フォームのサイズの変更方法にもとづくいて、コントロールを移動する

［幅］または［高さ］の特性を「100」に設定すると、フォームの対応する方向の変更サイズに対して100%連動することを意味しています。「50」に設定した場合、半分のサイズで連動します。

［X］または［Y］の特性を「100」に設定すると、フォームの対応する方向の変更位置に対して100%連動することを意味しています。

例

フォームの大きさを変更した場合：

  • X=100／Y=100に値を定義した場合、コントロールを右下の位置を維持します。これは、フォームのサイズを変更してもそのままの位置で表示させたいボタンなどで利用できます。

  • 幅=100に値を定義した場合、コントロールの大きさを水平方向に変更します。これは、コントロールのサイズがデータより小さくなる場合に利用できます。

  • X=100に値を定義した場合、コントロールを水平に移動します。このコントロールが［幅］が「100」に設定されたコントロールの後に表示されている場合に利用できます。

コントロールの［位置］特性が「0」の場合、フォームサイズが実行時に変更されても、コントロールの相対的なサイズは変更されません。［位置］特性が＞0の場合、フォームサイズが実行時に変更されると相対的なサイズも変更されます。

[テーブル]コントロールで[位置]特性を使用した場合、よりわかりやすくなります。テーブルの下辺位置が「100」に設定されている場合、フォームのサイズを変更すると、テーブルの表示行数が変化します。右辺位置が「100」に設定された場合、カラムのサイズが変更され、表示されるデータ長が変わります。

注意：

コントロールは、オリジナルサイズより小さくなりません。従って、フォームのサイズの最小サイズを前提に、各コントロールを定義してください。

モバイル仕様：

表示される画面サイズはデバイスによって異なるため、［位置］特性の設定内容に基づいてコントロールの位置やサイズが自動的に変更されます。運用時に表示される最小の画面サイズをもとに画面を設計することを推奨します。

関連トピック：

コントロールのサイズを表示フォームに合わせるには


表示コントロール 特性 一覧 実行元

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > 実行元

実行元 （デフォルト：C=コンテナタスク）

イベントがどこで実行されるかを指定します。指定できるオプションは以下の通りです。

  • C=コンテナタスク …… ［プッシュボタン］コントロールが定義されたタスクでイベントを実行します。

  • T=フォーカス上のタスク …… フォーカス内のタスクに対してイベントを実行するタスクに［プッシュボタン］コントロールが定義されていない場合に使用します。

ボタンがパーク可能な場合、フォーカス内のタスクはコンテナタスクになります。この場合は、この特性は意味がありません。

ボタンがパーク可能でなく、［実行元］特性が「フォーカス上のタスク」に設定された場合、ボタンをクリックしてもコンテナタスクは読み込まれません。これは、以下のことを意味しています。

  • 定義されたパラメータは、イベントに渡されません。

  • タスクに定義される［イベント］ロジックユニットは、処理されません。

この特性の利点は、1つのボタンの使用で複数のタスクから同じイベントを実行させることです。

例：

親タスクのフォームに［プッシュボタン］コントロールが定義されており、［削除］イベントが割り当てられているものとします。このコントロールの［実行元］特性の設定内容によって以下のように動作が変わります。

「C=コンテナタスク」の場合

プッシュボタンを押下すると［削除］イベントが実行され、親タスクで選択したコントロール内のデータを削除しますが、サブタスクのフォーム上に定義されたコントロールのデータは削除されません。

「T=フォーカス上のタスク」の場合

プッシュボタンを押下すると、選択したコントロールが親タスクに定義されたものであっても、子タスクに定義されていてもどちらも削除対象となります。

関連トピック：

サブフォームやその親タスクに影響するプッシュボタンを定義するには


表示コントロール 特性 一覧 実行イベント

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > 表示コントロール > 実行イベント

実行イベント

エンドユーザがボタンを選択した時に実行されるイベントを指定します。

ここから［イベント］ダイアログにズームして以下のイベントを選択することができます。

  • S=システム …… キーの組み合わせ操作をトリガとするイベントを定義します。

  • I=内部 …… ［イベント一覧］から内部イベントを選択します。

  • U=ユーザ …… ユーザ定義イベントを選択します。コンポーネントがホストプロジェクトのユーザイベントを起動するには、ホストプロジェクト内のメインプログラムにて、［イベント］テーブルの［公開］カラムをチェックする必要があります。

  • N=なし …… イベントは何も選択されません。

注意：

［修正可］特性が「No」に設定される場合、［実行イベント］特性に定義された内部アクションは呼び出すことができません。


廃止予定の追加情報パラメータ

Magic xpa 2.5では、［追加情報］特性の以下のパラメータが廃止予定となりました。現在は、プログラムで使用されても動作します。これらの特性の代わりに、各特性シートの［モバイル］セクションの特性を使用してください。

パラメータ

設定箇所

説明

モバイル

対応バージョン

orientation=

表示フォーム

表示方向の固定指定

  • orientation=portrait

  • orientation=landscape

Android

iOS

Android：2.2a

iOS：2.3

popup=

表示フォーム

フォームがポップアップウインドウ（フル画面でない)かどうか

  • popup=Y

  • popup=N

Androidデバイスでは、デバイスのテーマに従い、アイコンはポップアップウインドウでは表示されません。

Android

iOS

2.3

BorderWidth=xxx

エディット、ラベル、グループ、イメージ、プッシュボタン、サブフォーム、システム色を使用しないテーブル

デバイスのdpiに基づくピクセル単位の境界幅

Android

iOS

2.3

BorderColor=xxx

エディット、ラベル、グループ、イメージ、プッシュボタン、サブフォーム、システム色を使用しないテーブル

境界色

Android

iOS

2.3

BorderFocusWidth=xxx

システム色を使用しないエディット

［エディット］コントロールにフォーカスがある場合の境界幅

Android

iOS

2.3

BorderFocusColor=xxx

システム色を使用しないエディット

［エディット］コントロールがある場合の境界色

Android

iOS

2.3

CornerRadius=xxx

エディット、ラベル、グループ、イメージ、プッシュボタン、サブフォーム、システム色を使用しないテーブル

デバイスのdpiに基づくピクセル単位でのコントロールの角半径

Android

iOS

2.3

Picker=0

日付型／時刻型のデータを持つ修正可能なエディット

日付または時間のピッカーを開かないようにする。

Android

iOS

2.3

EditDialog=x

文字型／Unicode型のデータを持つ修正可能なエディット

コントロールの編集をダイアログボックスか、コントロールで行うかを定義。

  • 0 …… ダイアログボックスが開かず、編集はコントロール内で行われます。（これは、テーブルの外の［エディット］コントロールのデフォルトです。)

  • 1…… コントロールは読み込み専用となり、編集はダイアログボックスで行われます。（これは、テーブルの［エディット］コントロールのデフォルトです。)

Android

2.4

DefaultAlignment=Y

文字型／Unicode型のデータを持つ修正可能なエディット

［エディット］コントロールがAndroidのデフォルトの調整ルールを使用して整列するかどうかを定義します。値が設定された場合、Magic xpaの水平／垂直整列の各特性は無視されます。

Android

2.4


タブの順序

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > TABの順序

TABの順序

実行時

この特性は、コントロール間でTabキーを押下した場合の移動順序を定義します。各コントロールには、Tab順序を決定する［TAB順序番号］特性があります。

［TAB順序番号］特性が「1」の場合、プログラム起動時に最初にパークするコントロールになります。［TAB順序番号］特性が「2」の場合、カーソルが最初のコントロール上にパークしている状態でエンドユーザがTabキーを押下すると、このコントロールに移動することを意味します。

開発時

オンラインタスクの［フォーム］エディタにて、［コマンド］パレットから［自動タブ順序］コマンドを選択することができます。この設定によって、フォーム上のコントロールのTab IDを自動的に設定することができます。

［自動TAB順序］が有効な場合、［コマンド］パレットから［自動TAB順序］のアイコンが押されたように表示されます。モードを無効にするには、このアイコンをクリックします。

注意：

タスクに［RM互換］ロジックユニットが定義されている場合、この特性は無効になります。

自動TAB順序

［自動TAB順序］が動作していると、Magic xpaはオンラインタスクのフォーム上のコントロールにTab IDを設定します。このTab IDは、ユーザがコントロールにパーク可能かどうかを問わず１からコントロール数分の連番を割り振ります。ブラウザタスクの場合は、常に自動設定になっています。

フォーム上に新しくコントロールを配置したり、既存のコントロールを移動した場合、Magic xpaはコントロールの上辺位置、左辺位置、および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 xpaがフォーム上の全てのコントロールのTAB順序を管理します。この場合、コントロールの追加、移動、削除によってTAB順序は自動的に変更されてしまいます。

TAB順序を手動モードに設定した場合、追加されるコントロールに対して、現在定義されている最も大きなTab IDの次の値を割り当てます。コントロールが移動した場合は、コントロールのTab IDは変更されません。コントロールが削除された場合、削除されたコントロール以降のTab IDを1つ減算します

コントロールの［Tab順序］特性を変更すると、TAB順序の再計算が発生します。

例えば、TAB順序が1から10までの定義されているものとします。あるコントロールの［Tab順序］特性を「8」から「4」に変更した場合、Magic xpaは、TAB順序を以下のように変更します。

4 → 5

5 → 6

6 → 7

7 → 8

［Tab順序］特性に、フォーム上に定義されているTAB順序の最大値より大きい数値を入力した場合、最大値に設定し直し、その上でTAB番号を再計算します。

例えば、TAB順序が1から6までの定義されているものとします。あるコントロールの［Tab順序］特性を「2」から「8」に変更した場合、Magic xpaは、このコントロールのTAB順序を「6」に設定した上で、その他のコントロールを以下のように変更します。

3 → 2

4 → 3

5 → 4

6 → 5

［Tab順序］特性に「0」を設定した場合、Magic xpaは自動的に「1」に設定し直します。

コントロールの複数選択

［自動TAB順序］が無効な場合、複数のコントロールの［Tab順序］特性を変更すると、入力した値を基に順番に各コントロールにTab IDを割り振ります。

例えば、４つのコントロールがあり、それぞれのTab IDは、A=1、B=2、C=3、D=4とします。C、B、A、Dのコントロールを選択し、［Tab順序］特性に「1」を入力した場合、Magic xpaは、タブIDを C=1、B=2、A=3、D=4に設定し直します。複数のコントロールを選択した場合、［Tab順序］特性は、「?」表示になります。

関連トピック：

パーク

Tabによるコントロールの移動順序を設定するには


コントロールの親子リンク

親子リンクにより、コントロールの親子関係を定義できます。

有効化

  • リンクの定義は［フォーム］エディタで行います。

  • デフォルトでは、フォーム上の全てのコントロールがフォームの子という形式になります。

  • コントロールは、親コントロールに割当てることもできます。ただし、フォームに対して親コントロールを割り当てることはできません。

  • 他のコントロールの親であるコントロールでも、別のコントロールの子とすることができます。

  • 複数のコントロールを同一の親コントロールに割当てることができます。

  • 親子リンクは循環リンクにはできません。

  • ［テーブル］コントロールの子であるコントロールは、他のコントロールを子としてリンクできません。

実行時の動作

  • 親コントロールが非表示になると、その子コントロールも全て非表示になります。

  • 親コントロールが無効になると、その子コントロールも全て無効になります。

  • ヘルプが定義されていないコントロールでヘルプを呼び出すと、親のコントロールのヘルプを探して呼び出します。どのコントロールにもヘルプが定義されていない場合は、フォームに定義されているヘルプを呼び出します。

関連トピック：

チョイスコントロールによる親子リンク

コントロールを複数選択した場合のコントロールの特性


コントロールの親子リンク チョイスコントロール

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > コントロールの親子リンク > チョイスコントロールによる親子リンク

チョイスコントロールによる親子リンク

チョイスコントロールには、ラジオボタン、タブ、リストボックス、コンボボックス、チェックボックスがあり、表示されるデータ値の一覧から値を選択することができます。選択できる値は、コントロールの［選択項目リスト］特性の内容で決まります。［選択項目リスト］特性にはカンマ区切の形式で複数登録できます。特性のデータ項目に割当てることができるデータ値は、その項目の書式に依存します。定義式をコントロールの［選択項目リスト］特性に割当てることで、有効な選択肢を動的に指定できます。

［表示項目リスト］特性に値を設定する場合は、［選択項目リスト］特性に指定した選択肢に対応した項目数を同じ順番で指定してください。

チョイスコントロールの値が、そのコントロールに対応する項目の範囲を外れている場合、その値はコントロール上では選択できません。

チョイスコントロールの選択肢は、キーボードショートカットを使用して表示などの操作が可能です。

チョイスコントロールに表示される選択肢には、それぞれ子コントロールを定義できます。選択肢に子コントロールが定義されている場合、その選択肢を選択すると、その選択肢の子コントロールが表示されます。選択されていない場合は表示されません。また、子となっているコントロールはピンク色の制御ボックスで囲まれます（通常のコントロールでは、制御ボックスは青色です）。

チョイスコントロールの選択肢を編集時に選択するには、Shiftキーを押しながらその選択肢をクリックします。

一方、チョイスコントロールの選択肢に定義されていない、チョイスコントロール自体の子コントロールは、選択肢を選択したかどうかにかかわらず、常時、表示されます。

この表示関係は、内部的にはコントロールレイヤという概念で制御しています。上記の内容をコントロールレイヤを使用して説明すると以下のようになります。

  • 新規のコントロールを親コントロールにドロップすると、新規のコントロールは、自動的に親チョイスコントロールの現在表示されているレイヤの子コントロールとなります。ただし、レイヤが特定されていない場合、新規のコントロールは、親コントロール（チョイスコントロール）の全てのレイヤで子コントロールとしてリンクされます。

  • チョイスコントロールの表示されているレイヤを切り替えると、切り替え後のレイヤにリンクしている子コントロールが表示され、他のレイヤにリンクしている子コントロールは全て非表示になります。

  • Altキーを併用すると、それぞれのレイヤにリンクされたコントロールだけが選択できます。


コントロールの親子リンク 複数選択

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > コントロールの親子リンク > コントロールを複数選択した場合のコントロールの特性

コントロールを複数選択した場合のコントロールの特性

コントロールを複数選択した場合、［コントロール特性］シートには、選択されているコントロールに共通した特性のみが有効表示されます。残された特性の値は、選択された最初のコントロールの特性と同一です。選択されたコントロールが異なるタイプの場合、モデルの特性は表示されません。選択されたコントロールが同じタイプの場合、モデルが有効になり、変更することができます。

1つのコントロールの特性を変更すると、選択されている全てのコントロールの特性が変更されます。ある特性の継承を解除すると、選択されている全てのコントロールにおいて継承が解除されます。ある特性の継承がすでに解除されている場合は、特性は変更されません。継承を行うように設定されていると、特性の継承が解除され、指定されたコントロールの値を取得してきます。継承を行うように設定しなおすと、選択されている全てのコントロールの特性が継承しなおされます。各コントロールは、それぞれのモデルから特性を継承します。

他の特性の設定によって、変更可能か否かが決定される特性は、常に有効表示されます。

他のコントロールにおいて無効な特性を変更した場合、特性の変更は他のコントロールに影響しません。その変更が反映されるのは、その特性が有効となっているコントロールに対してのみです。

［特性］シートには常に選択された最初のコントロールの値が表示されます。


MDIとSDI

Magic xpaでは、SDI（Single Document Interface）だけでなく、MDI（Multiple Document Interface）を定義することができます。

MDIとSDIの機能によって、アプリケーションが並行して複数のタスクを実行させることが可能になります。これにより、新規のインスタンスをオープンすることなく複数のタスクを実行することができます。

Magicエンジンは、同じアプリケーション内や同じMagicエンジンのインスタンス内でプログラムを実行する、並行性を維持することができます。

並行実行は、コンテキストを使用して行われます。プログラムが同時に実行され、新しいコンテキストが開いた場合、新しいコンテキストは個別にメインプログラムを持つことになります。このメインプログラムとコンテキストは、同じプロセスで実行している他のコンテキストから独立しています。

MDIとSDI機能を使用して実行させる上で、Magic xpaには以下のオブジェクトが提供されています。

［タスク特性］の［拡張］タブ

［フォーム特性］の［SDI］セクション

［フォーム特性］の［ウィンドウタイプ］特性

［フォーム特性］の［開始時の位置］特性

［動作環境］ダイアログの［実行モード］

マルチコンテキスト関数

［アプリケーションクローズ］イベント

［コンテキストを閉じる］イベント

戻り値としてのコンテキストID

［コール］特性

［メニュー］特性

関連トピック：

MDIとSDIとは？

実行時の動作

コンテキスト間のイベント

データ管理


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 SDIサポート

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > MDIとSDI > SDIサポート

SDI サポート

SDIプログラムが呼ばれた場合、Magic xpaはMDIコンテナの外に新しいコンテナをオープンします。この新しいコンテナは、それ自身のメニュー、ツールバー、およびステータスバーを持っています。

SDIコンテナのウィンドウタイトルはフォームのタイトルになります。タイトルに空白が設定された場合、空白で表示されます。

SDIウィンドウのアイコンは、以下のように扱われます。

  • ［タスク特性］にアイコンファイルが指定されている場合、そのアイコンが表示されます。

  • ［タスク特性］にアイコンファイルが指定されていない場合、起動したプログラムに定義されているアイコンが表示されます。

SDIウィンドウが別のオンラインプログラムを子ウィンドウとして呼び出し、起動されたプログラムの［ウィンドウタイプ］が「子ウィンドウ」に設定されている場合、プログラムはフローティングウィンドウで表示されます。

注意：

  • Alt+Tabキーを押下することでSDIウィンドウにアクセスすることができます。

  • SDIフォームを定義したフォームモデルを作成することができます。

  • リッチクライアントタスクのSDIフォームでは、Escキーを押下してもタスクは終了しません。リッチクライアントでは通常、オープンし続けるMDIフレームがないため、エンドユーザによって意図しないアプリケーションの終了を防止するために変更されました。

SDIフォームにおいて、［フォーム特性］の［プルダウンメニュー］、 ［ツールバー表示］、［ステータスバー表示］を変更することでメニューやツールバー、ステータスバーを表示するかどうかを定義することができます。

SDIの実行時の課題

SDIとして実行することになっているアプリケーションを準備する場合、メインプログラムの設定内容についていくつかの注意点があります。

  • メインプログラムの［タスク前］からSDIプログラムを呼び出します。このように定義しないと、メインプログラムの終了時にコンテキストがクローズされます。

  • ［コールプログラム］処理コマンドの［条件］特性には、「CtxGetName() ='main'」と設定しなければなりません。このように定義しないと、コンテキストがロードされる度に、何度もプログラムが呼び出されるようになります。

  • メインプログラムの［ウィンドウを開く］特性（［タスク特性］の［インタフェース］タブ）が「No」に設定されていることを確認してください。この設定にしないと、実行時にエラーが発生します。


MDIとSDI MDIサポート

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > MDIとSDI > MDI サポート

MDI サポート

Magic xpaは、MDIアプリケーションを定義することができます。MDIは、同時に複数のプログラムを実行させることができます。MDIは、1つの親ウィンドウと複数の子ウィンドウを持っています。子ウィンドウは通常、親のウィンドウインタフェース（メニューバーやツールバー、ステータスバーを含む）を共有しています。このため、MDIは、親ウィンドウに制約されます。

関連トピック：

実行時の動作


MDIとSDI MDIサポート 実行時の動作

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > MDIとSDI > MDI サポート > 実行時の動作

実行時の動作

MDIプロジェクトがロードされた場合、メニューやツールバーが定義されたMagic xpaのMDIコンテナがロードされます。

プログラムが並行モードで実行された場合、［ウィンドウタイプ］特性が「子ウィンドウ」に設定されていると、同じMDIコンテナの新しいコンテキスト内でプログラムがオープンされます。

プログラムが実行され、［ウィンドウタイプ］特性が「フローティング」や「SDI」に設定されていない場合、プログラムは同じMDIコンテナを共有します。

新しいウィンドウが異なるコンテキスト内でオープンされた場合、ウィンドウはフォーカス内のウィンドウの上にオープンされます。

注意：

モーダルウィンドウが同じMDIコンテナ内で並行タスクを呼び出した場合、モーダルウィンドウがクローズされるまで、フォーカスはそのタスクに移りません。

関連トピック：

ウィンドウフォーカス


MDIとSDI MDIサポート 実行時の動作 ウィンドウフォーカス

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > MDIとSDI > MDI サポート > 実行時の動作 > ウィンドウフォーカス

ウィンドウフォーカス

異なるコンテキスト内のウィンドウにフォーカスが移った場合、Magic xpaは現在のコンテキストに制御を残すことはしません。フォーカスがこのウィンドウに戻った時に、制御も同じコントロールに戻ります。

フォーカスがないウィンドウがある場合で［エラー］処理コマンドやモーダルのウィンドウタイプの特性によるダイアログウィンドウが表示されると、フォーカスはダイアログボックスに移ります。

異なるコンテキストがウィンドウをオープンした場合、フォーカスはそのウィンドウに移ります。


MDIとSDI MDIサポート ウィンドウメニュー

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > MDIとSDI > MDI サポート > ウィンドウリスト

ウィンドウリスト

Magic xpaは、アプリケーション用のメニューを定義することができます。この機能によって、メニューエントリやキーボードショートカットを使用してアクセスすることができます。

ウィンドウの一覧を定義するには、以下の手順を実行してください。

  1. ［メニュー］リポジトリを開きます。

  2. メニューエントリからズームして、［メニュー定義］テーブルをオープンします。

  3. １行作成します。

  4. ［タイプ］カラムから、「W=ウィンドウリスト」を選びます。

  5. ［論理メニュー名］カラムにメニュー名を入力します。

［フォーム特性］の［ウィンドウリストに表示］特性を「Yes」に設定すると、プログラムはWindowリスト内に表示されます。

注意：

ウインドウリストはリッチクライアントタスクではサポートされません。

Magic xpaは、また以下のオブジェクトを提供します。これによって、［ウィンドウの一覧］機能が利用しやすくなります。

  • ［全て閉じる］内部イベント

  • ［コンテキストがフォーカス取得］内部イベント

  • ［コンテキストがフォーカス喪失］内部イベント

  • ［次のウィンドウ］内部イベント

  • ［前のウィンドウ］内部イベント

  • SetContextFocus 関数

  • SetWindowFocus 関数

オープンMagicウィンドウ間の実行時の操作

（ウィンドウメニューから［次へ］や［戻る］を選択することによる）ウィンドウ間の動きの順番は、［アプリケーション特性］の［ウィンドウリストの表示順序］特性によって定義された内容に依存します。

注意：

  • エンドユーザは、Ctrl+Tabキーを押下して、オープンウィンドウ間や、タブコントロール内のタブ間を移動することができます。

  • Ctrl+Tabキー以外を押下して、タブコントロール内のタブ間を移動することができるようにするには、［次のウィンドウ］や［前のウィンドウ］の内部イベントのキーボード割付を変更する必要があります。

サポートバージョン：

2.3


MDIとSDI 関数

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > MDIとSDI > マルチコンテキスト関数

マルチコンテキスト関数

Magic xpaには、複数のコンテキスト内で使用できる以下のような関数が提供されています。

  • CtxGetName …… 現在のコンテキストの名前を取得します。

  • CtxSetName …… 現在のオンテキストに名前を設定します。この名前は、メッセージをコンテキストに送る場合に使用されます。

  • WinMaximize …… 関数が起動されたタスクのフォームを最大化します。

  • WinMinimize …… 関数が起動されたタスクのフォームを最小化します。

  • WinRestore …… タスクのフォームサイズを元に戻します。

WinMaximize、WinMinimize、およびWinRestore関数がSDIコンテキストで使用された場合、SDIコンテキスト内でのみ実行されます。これらの関数は、MDIフレーム全体で動作します。


コンテキスト-実行時の動作

プログラムが並行して実行された場合、それぞれ別個のコンテキストの中で実行されます。

［式］イベントは、それらが「True」と評価される各コンテキスト内で処理されます。

［タイマ］イベントは、各コンテキスト内で個別に処理されます。

メニュー

メニューとツールバーは、フォーカス内のコンテキストに従って変更されます。

メニューオプションが選択された場合、指定されたプログラムやイベント、OSコマンドがフォーカス内のコンテキストで実行されます。

バックグラウンドエンジン

プログラムが並行起動されると、全てのGUI要素が無視され、プログラムが別個のコンテキスト内で実行されます。

関連トピック：

初期コンテキス

新しいコンテキストの開始

実行時の動作(MDI)

実行時の動作(SDI)

コンテキスト間のイベント

データ管理


MDIとSDI 実行時の動作 初期コンテキスト

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > MDIとSDI > 実行時の動作 > 初期コンテキスト

初期コンテキスト

フォアグラウンドプロジェクトのメインプログラムが最初に実行された時点で、コンテキストは初期設定され、「main」という名前が設定されます。

プロジェクトがクローズされるまで、このコンテキストはオープンされ続けます。

このコンテキストがクローズされると、このプロジェクト用の実行中の全てのSDIコンテキストもクローズされます。このコンテキストがアボートされた場合、プロジェクトはクローズされます。

外部イベントとリクエストは、このコンテキスト内で処理されます。

このコンテキストは、MDIプロジェクトに対してのみ有効です。

タスクの［メインプログラムを初期化］特性は、新しいコンテキストのメインプログラムをどのように初期化するかを定義します。


新しいコンテキストの開始

現在のプログラムによって並行モードでプログラムが呼び出された場合、Magic xpaは新しいコンテキストを作成し、コンテキストIDを割り当てます。このIDは、起動したプログラムに文字列で返ります。

この新しいコンテキストは、呼び出したプログラムと同時にロードされます。

新しいコンテキストは、それ自身のメインプログラムとメインツリーを持っています。これらは、起動したプログラムの環境とは独立しています。

新しいタスクがMDIとSDIのどちらで実行されるかは、［フォーム特性］の［ウィンドウタイプ］特性で決まります。

［タスク特性］の［拡張］タブを使用することで、新しいコンテキストをどのように開始するか定義できます。

（［コールプログラム］処理コマンドやメニューから）プログラムが並行モードで呼び出された場合、コンテキストに渡すパラメータは、「値渡し」で渡されます。「参照渡し」は使用できません。

関連トピック：

CtxSetName


MDIとSDI コンテキスト間のイベント

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > MDIとSDI > コンテキスト間のイベント

コンテキスト間のイベント

［イベント実行］処理コマンドの［出力先コンテキスト名］特性を使用することで、他のコンテキストにイベントを送ることができます。

この機能は、非同期型のイベントに対してのみ有効です。

同期型のイベントが実行されると、コンテキストはハンドラの処理が終了するまで待ちます。

注意：

この機能は、リッチクライアントではサポートされません。


MDIとSDI データ管理

ホーム > リファレンスガイド > フォーム > 表示フォームとコントロール > MDIとSDI > データ管理

データ管理

コンテキスト間で、トランザクションを共有することはできません。起動されるタスクがトランザクションをオープンするように定義されている場合、新しいトランザクションがオープンされます。

トランザクションモードによって以下のように動作します。

  • 遅延 …… 遅延トランザクションが新規にオープンされます。

  • ネスト遅延 …… 遅延トランザクションが新規にオープンされます。

  • 親と同じ …… Magic xpaのデフォルト指定に基づいてトランザクションが新規にオープンされます。

キャッシュ機能は、コンテキスト単位です。

注意：

一方のコンテキストが他方をロックする可能性があります。もしこのようなことが発生した場合、「レコードは他のユーザによってロックされています。」というメッセージが表示されます。このメッセージの「他のユーザ」とは自分のことを示しています。

メモリテーブル

メモリテーブルの内容は、明示的に渡される必要があります。メモリテーブルは自動的にコピーされません。メモリテーブルをコピーするには、MTblSet関数を使用してください。

Mtblset関数が［タスク前］で定義され、テーブルが現在空の状態で、メモリテーブルがこのプログラムのデータソースとして定義されている場合であれば、テーブルは直ちに新しいデータによってオープンされ、プログラムが使用できる状態になります。


フレームフォームとコントロール

GUIフレームフォームは、複数のフレーム（それぞれが、サブフォームとして動作する）を使用可能にします。

関連トピック：

フレームフォーム

フレームコントロール


フレーム フォーム 特性

ホーム > リファレンスガイド > フォーム > フレームフォームとコントロール > フレームフォーム

フレームフォーム

フレームフォームは、複数のフレームを定義することが可能で、これらはサブフォームと同じように動作します。

［フォーム特性］シートには、フォームの外観と動作を指定します。［編集/特性］を選択するか、［フォーム］エディタ上でAlt+Enterを押下して［フォーム特性］シートにアクセスできます。

［フレームフォーム］特性は、以下のセクションに分かれています。

モデル

詳細

SDI

入力

表示

モバイル

位置とサイズ

注意：

リッチクライアントフレームフォームは、フレームのレイアウトを指定する必要があります。

オフラインタスクではサポートされません。

モバイル仕様：

モバイルではサポートされていません。

関連トピック：

フレームコントロール


フレーム フォーム 特性 詳細

ホーム > リファレンスガイド > フォーム > フレームフォームとコントロール > フレームフォーム > 詳細

詳細

［フレームフォーム］特性の［詳細］セクションには以下の特性があります。

特性

内容

ウィンドウタイプ

ウィンドウのタイプを設定します。この設定は、ウィンドウの外観や動作に影響します。リッチクライアントフレームの場合、以下のオプションが選択できます。リッチクライアントフレームフォームの選択肢は以下の通りです。

  • S=SDI

  • C=子ウィンドウ

  • F=フローティング

  • M=モーダル（デフォルト）

  • T=ツール

ウィンドウタイプも参照してください。

寸法単位

フォームの寸法単位を指定します。寸法単位に基づいてフォームのサイズと位置が決定されます。また、フォームの解像度も決定されます。

GUIフレームの場合は、以下のオプションが指定できます。

  • D=ダイアログ

  • C=センチメートル

  • I=インチ

「ダイアログ」の場合、フォームに設定したフォントサイズに依存します。異なる解像度の画面を使用する場合、フォームで同じ画面比率を維持するために、ダイアログ単位を使用してください。

よりすばらしい解像度のためにダイアログ単位の比率で定義するには、［垂直精度］と［水平精度］の各特性を使用してください。

垂直精度

各単位内の垂直解像度を指定します。値が高いほど細かい解像度が得られます。

水平精度

各単位内の水平解像度を指定します。値が高いほど細かい解像度が得られます。

フォーム名

［フォーム］エディタの［名前］カラムの値であり、フォームのタイトルバーに表示されます。実行時に評価されるフォームのタイトルを表す式を選択することもできます。

関連トピック：

ウィンドウタイトルを動的に表示させるには

動的にウィンドウタイトルを設定するには

永続的なフォーム状態

フォームが状態を維持するかどうかを指定します。

  • Yes …… フォーム毎に状態を保存します。

  • No …… フォームの状態は保存されません。

関連トピック：

FormStateClear

エンドユーザがカスタマイズしたフォーム状態を保持するには

コンテキストメニュー

［メニュー一覧］からメニューを選択することで、フォーム用のコンテキストメニューを指定することができます。式で指定することで、実行時に動的にメニュー番号を指定することができます。


フレーム フォーム 特性 SDI

ホーム > リファレンスガイド > フォーム > フレームフォームとコントロール > フレームフォーム > SDI

SDI

［SDI］セクションは、SDIウィンドウとして表示される場合のみ有効です。これ以外の場合、［ウィンドウタイプ］特性の「SDI」の設定に基づいて表示されます。

［SDI］セクションには以下の特性があります。

特性

内容

プルダウンメニュー

SDIウィンドウが表示された場合に、表示されるメニューを指定することができます。

メニュー表示

SDIウィンドウを表示する際、プルダウンメニューを表示するかどうかを指定します。以下のオプションが指定可能です。

  • Yes …… ［プルダウンメニュー］特性に有効なメニュー番号が設定されている場合、SDIコンテナにプルダウンメニューが表示されます。

  • No …… プルダウンメニューは表示されません。

  • 式 …… 論理値が返る式を指定します。式はタスクが最初に起動された時点でのみ評価され、再計算されません。

ツールバー表示

SDIウィンドウを表示する際、ツールバーを表示するかどうかを指定します。以下のオプションが指定可能です。

  • Yes …… ［プルダウンメニュー］特性に有効なメニュー番号が設定されている場合、SDIコンテナにツールバーが表示されます。

  • No …… ツールバーは表示されません。

  • 式 …… 論理値が返る式を指定します。式はタスクが最初に起動された時点でのみ評価され、再計算されません。

ステータスバー表示

SDIウィンドウを表示する際、ツールバーを表示するかどうかを指定します。以下のオプションが指定可能です。

  • Yes …… SDIコンテナにステータスバーが表示されます。

  • No …… ステータスバーは表示されません。この場合、メッセージは表示されず、ログファイルやフローにのみ出力されます。

  • 式 …… 論理値が返る式を指定します。式はタスクが最初に起動された時点でのみ評価され、再計算されません。

注意：

リッチクライアントフォームでは、ステータスバーが表示される場合は、最近のネットワーク状況が表示されます。これは、ステータスバーの右側の領域にマウスポインタをホバリングさせると表示されます。Magic xpa Studioでプログラムを実行させた場合は、このオプションは常に有効になります。プログラムがアプリケーションサーバで実行される場合は、アプリケーションを起動するために使用されたHTMLファイルのDisplayStatisticInformation=Yを設定することで有効になります。

開始モード

SDIウィンドウを最初にどのようにオープンするかを指定します。以下のオプションが指定可能です。

  • D=デフォルト …… この特性のデフォルト値です。この設定にすると、［位置とサイズ］セクションで定義された値に従ってウィンドウが開きます。

  • X=最大 …… SDIウィンドウは最大表示されます。［位置とサイズ］セクションで定義された値は、無視されます。

  • N=最小 …… SDIウィンドウは最小表示されます。［位置とサイズ］セクションで定義された値は、無視されます。


フレーム フォーム 特性 入力

ホーム > リファレンスガイド > フォーム > フレームフォームとコントロール > フレームフォーム > 入力

入力

［フレームフォーム］特性の［入力］セクションには以下の特性があります。

特性 | 内容
タイトルバー | リッチクライアントフレームフォームにタイトルバーを表示するかどうかを指定します。タイトルバーがないと、エンドユーザはフォームを移動できません。また、［最小化］ボタンや［最大化］ボタンを表示できません。タイトルバーは、式を定義して指定することもできます。 関連トピック： ウィンドウタイトルを表示させないようにするには
システムメニュー | リッチクライアントフレームフォームのタイトルバーの左側に［システムメニュー］ボタンを配置するかどうかを指定します。このボタンをクリックすると、Windowsの［システムメニュー］が表示されます。
最小化ボタン | リッチクライアントフレームフォームの右上隅に［最小化］ボタンを配置するかどうかを指定します。 デフォルトは、「Yes」です。
最大化ボタン | リッチクライアントフレームフォームの右上隅に［最大化］ボタンを配置するかどうかを指定します。 デフォルトは、「Yes」です。


フレーム フォーム 特性 表示

ホーム > リファレンスガイド > フォーム > フレームフォームとコントロール > フレームフォーム > 表示

表示

[フレームフォーム]特性の[表示]セクションには以下の特性があります。

特性

内容

フォント

フォームのフォントを指定します。[フォント]テーブルにズームしてフォントを選択できます。式で動的に指定することもできます。コントロールのフォントは、[コントロール特性]シートで定義します。コントロールのフォントが指定されていない場合、フォームのフォントが使用されます。

ヘルプ画面

フォームと関連付けるヘルプ画面を指定します。[ヘルプ一覧]にズームしてヘルプを選択できます。

リッチクライアント用コントロールの場合、URLヘルプのみサポートされます。この場合、URLは、（Web上でのURLではなく）サーバ側のファイルパスでを指定します。

境界スタイル

フォームの境界線のスタイルを指定します。[ウィンドウタイプ]特性が「SDI」の場合は、指定できません。

  • H=太線

  • T=細線

  • N=なし

関連トピック： ユーザがウィンドウのサイズ変更をできないようにするには

追加情報

モバイル端末でのコントロールまたはフォームに関連した追加情報を指定します。（この特性は、モバイルクライアント用に開発中のものです。)


フレームフォーム モバイル特性

ホーム > リファレンスガイド > フォーム > フレームフォームとコントロール > フレームフォーム > モバイル

モバイル特性

特性 | 内容 | モバイル
追加情報 | モバイル用のコントロールフォームに関連した追加情報を指定します。 複数のパラメータは、カンマ区切りで指定できます。 | Android iOS

サポートバージョン：

2.5


フレーム フォーム 特性 位置とサイズ

ホーム > リファレンスガイド > フォーム > フレームフォームとコントロール > フレームフォーム > 位置とサイズ

位置とサイズ

[フレームフォーム]特性の[位置とサイズ]セクションには以下の特性があります。

特性 | 内容
開始時の位置 | この特性は、フレームフォームをどのように開くかを定義するものです。
X | フォームのフレームの左端の位置を指定します。[式]エディタにズームし、フォームにあるフレームの左端の座標を表す式を入力することもできます。
Y | フォームのフレームの上端の位置を指定します。[式]エディタにズームし、フォームにあるフレームの上端の座標を表す式を入力することもできます。
幅 | フォームを囲むフレームの水平方向の寸法を指定します。フレームが小さすぎてコントロールを表示できない場合、ウィンドウ内の内容をスクロールするためのスクロールバーが表示されます。フレームの幅は、フレームの右端をドラッグして変更できます。 各フォームに対するWindows OSによる最小幅があります。
高さ | フォームを囲むフレームの垂直方向の寸法を指定します。フレームが小さすぎてコントロールを表示できない場合、ウィンドウ内の内容をスクロールするためのスクロールバーが表示されます。フレームの高さは、フレームの下端をマウスでドラッグして変更できます。 各フォームに対するWindows OSによる最小高さがあります。
最小幅 | ウィンドウの幅の最小値を設定します。この特性は、エンドユーザによってウィンドウが使用できないほど小さくされることを防止します。フォームがここで指定された幅より小さいサイズで開こうとした場合は、この値は無視されます。
最小高さ | ウィンドウの高さの最小値を設定します。この特性は、エンドユーザによってウィンドウが使用できないほど小さくされることを防止します。フォームがここで指定された高さより小さいサイズで開こうとした場合は、この値は無視されます。 関連トピック： ウィンドウの最小サイズを設定するには


リッチクライアントフレーム コントロール

ホーム > リファレンスガイド > フォーム > フレームフォームとコントロール > フレームコントロール

フレームコントロール

パレットからレイアウトを選択することでフレームのレイアウトを変更することができます。ただし、フレームを削除したり、ドラッグ＆ドロップすることはできません。

フレームは、すべての方向に対してサイズを変更することができます。フレームのサイズを変更すると隣り合ったフレームサイズも変更されます。この操作によってフォーム自体のサイズは変更されません。

フレームの幅や高さを「0」に設定することはできません。

マウス操作によって、フレームの幅を「2」まで、高さを「0.5」まで小さくすることができます。

周辺のフレームの幅（2まで）や高さ（0.5まで）を縮小することで、可能な限りフレームのサイズを大きくすることができます。

フレーム上で右クリックを行うと、コンテキストメニューに以下のオプションが表示されます。

  • 元に戻す

  • フォームに合わせる …… フレーム内で定義されたフォームに従ってフレームのサイズが調整されます。プログラムまたはタスクがフレームに定義された場合、最初のフォームサイズによって表示されます。このオプションは、フレームの[プログ/タスク/フォーム #]特性が設定されている場合のみ有効です。フレームのサイズを変更すると、周辺のフレームは以下のように変更されます。

  • フレームの幅 …… フォームのサイズと上下に隣接するフレームのサイズが変更されます。

  • フレームの高さ …… フォームサイズと左右に隣接するフレームのサイズが変更されます。

  • TAB順序の表示

  • 特性

  • フォーム特性

フレームコントロール特性

フレームセットの各特性は、以下のセクション毎に分けられています。

モデル

詳細

表示

パーク

位置とサイズ


フレーム コントロール 特性 詳細

ホーム > リファレンスガイド > フォーム > フレームフォームとコントロール > フレームコントロール > 詳細

詳細

特性

内容

キャッシュ

この特性は、クライアントがフレーム表示のためにデータビューをキャッシュするかどうかを指定します。

注意：

呼び出されたプログラム/タスクの範囲/位置付指定にサーバ側で実行される式が定義されていない場合のみ、キャッシュは有効です。

接続先

ここには、フレームから呼び出すオブジェクトを指定します。

［フォーム］エディタの場合は、ここには、｢プログラム｣か｢サブタスク｣、｢フォーム｣が指定できます。モデルの場合は、｢プログラム｣のみ指定できます。

この特性は、すべてのフレームで必須です。

｢フォーム｣は、1つのフレームのみ設定できます。

フレーム内で実行できるのは、オンラインまたはインタラクティブなリッチクライアントタスクのみです。

プログ/タスク/フォーム #

ここには、フレームから呼び出すプログラムやタスク、またはフォームの番号を指定します。

［接続先］特性が｢プログラム｣または｢サブタスク｣に設定される場合、［プログラム一覧］にズームすることができます。プログラムの場合は、［式］エディタにアクセスしてプログラム番号を指定することもできます。

［接続先］特性が｢フォーム｣に設定される場合、［フォーム一覧］にズームすることで現在のタスクに定義されているフォームを選択することができます。

注意：

［選択プログラム］特性を設定した場合、［オプション］メニューの［オブジェクトに移動］を選択することで簡単に指定したプログラムに移動することができます。また、［オプション］メニューの［オブジェクトから戻る］を選択することで、［選択プログラム］特性に戻ることもできます。

パラメータ

ここには、起動するプログラム／タスクに渡すパラメータの数が表示されます。ここからズームすると［パラメータ］テーブルが表示され、このテーブルにパラメータを定義します。

［接続先］特性が｢フォーム｣の場合、この特性は無効になります。

自動再表示

この特性は、（値渡しか参照渡しで）渡されたパラメータのどれか1つでも変更された場合に、フォーム上のビューが自動的に再表示されるかどうかを指定します。

この特性に「Yes」を設定すると、親タスクから渡されるパラメータが変更された時点でフレームの表示を自動的に更新するようになります。範囲またはリンクの値が変更した場合も、サブフォームタスクは再表示されます。

この特性で使用される式は、ニュートラル(クライアントとサーバ側の両方で実行可能）でなければなりません。

［接続先］特性が｢フォーム｣の場合、この特性は無効になります。

フレーム名

フレームの名前を指定します。

フレーム名前は、ハイパーリンク、あるいは、送信ボタンが別のフレーム上でクリックされた場合に表示先としてのフレームを参照するために使用されます。


フレーム コントロール 特性 表示

ホーム > リファレンスガイド > フォーム > フレームフォームとコントロール > フレームコントロール > 表示

表示

特性

内容

自動調整

この特性は、フレームの内容をどのように表示するかを指定します。有効な値は以下の通りです。

  • N=なし …… タスクのフォームはフレームのサイズに合うように調整されません。フレームのサイズがタスクのフォームより小さい場合、フレーム内にスクロールバーが表示されます。サイズが大きい場合は、空いた領域が親タスクの背景色で塗りつぶされます。

  • A=フレームに合わせる（デフォルト） …… タスクのフォームは、フレームのサイズに収まるように調整されます。

追加情報

モバイル端末でのコントロールまたはフォームに関連した追加情報を指定します。（この特性は、モバイルクライアント用に開発中のものです。)


フレームコントロール モバイル特性

ホーム > リファレンスガイド > フォーム > フレームフォームとコントロール > フレームコントロール > モバイル

モバイル特性

特性 | 内容 | モバイル
追加情報 | モバイル用のコントロールフォームに関連した追加情報を指定します。 複数のパラメータは、カンマ区切りで指定できます。 | Android iOS

サポートバージョン：

2.5


フレーム コントロール 特性 パーク

ホーム > リファレンスガイド > フォーム > フレームフォームとコントロール > フレームコントロール > パーク

パーク

特性

内容

TAB順序

指定された番号順にTabキーによってフォーム内のカーソルが移動します。

［自動タブ順序］モードが無効な場合、この特性に4桁までのTab ID（数値）を入力することができます。

［自動タブ順序］モードが有効な場合、この特性には自動的にTab IDが表示され、入力はできなくなります。

注意:

［RM互換］ロジックユニットが含まれているロジックユニットでは無効になります。

TABで移動

この特性は、Tabの移動によってこのコントロールにカーソルを移すことができるかどうかを指定します。

「No」に設定された場合、Tabの移動でこのコントロールにはパークされず、マウスクリックでしかカーソルをコントロールに置くことができなくなります。

［データ］特性にデータ項目が定義されている場合のみ、この特性は有効です。［サブフォーム］コントロールでは常に有効です。

［イメージ］コントロールでは利用できません。

デフォルト値は、「Yes」です。

注意:

［RM互換］ロジックユニットが含まれているロジックユニットでは無効になります。

関連トピック： マウスを使用した場合のみコントロールへのパークを可能にするには

パーキング可

カーソルがコントロール上でパークできるかどうかを指定します。

「Yes」が設定された場合、Tabの移動やマウスクリックによってこのコントロールにパークすることができます。

［データ］特性にデータ項目が定義されている場合のみ、この特性は有効です。

［イメージ］コントロールでは利用できません。また、すべてのリッチクライアント・コントロールで利用できるというわけではありません。

［.NET］コントロールの場合、この特性は常に有効で、コントロールをクリックすると、フォーカスが現在のコントロールを抜けるかどうかを決定します。


フレーム コントロール 特性 位置とサイズ

ホーム > リファレンスガイド > フォーム > フレームフォームとコントロール > フレームコントロール > 位置とサイズ

位置とサイズ

特性 | 内容
水平位置 | この特性は、ウィンドウの高さを変更する場合に、フレームのサイズも変更するかどうかを指定します。この特性が｢No｣に設定された場合、フレームのサイズは変更されません。 フォームのサイズが変更される場合、少なくとも1つのフレームのサイズが変更されることになることに注意してください。従って、すべてのフレームのこの特性が｢No｣に設定されている場合、最後のフレームのサイズが変更されます。
垂直位置 | この特性は、ウィンドウの高さを変更する場合に、フレームのサイズも変更するかどうかを指定します。この特性が｢No｣に設定された場合、フレームのサイズは変更されません。 フォームのサイズが変更される場合、少なくとも1つのフレームのサイズが変更されることになることに注意してください。従って、すべてのフレームのこの特性が｢No｣に設定されている場合、最後のフレームのサイズが変更されます。
幅 | 起動時のコントロールの幅を寸法単位で指定します。
高さ | 起動時のコントロールの高さを寸法単位で指定します。
最小幅 | フレームの幅の最小値を設定することができます。デフォルトは0です。式で指定した場合、フォームを開く際に計算されます。 この特性は、フレームフォームを小さくしすぎることで、フレーム内のコントロールが表示されなくなる問題を防止するためのものです。この特性は、エンドユーザがフレームエリアを使用できない状態に変形してしますことも防止します。
最小高さ | フレームの高さの最小値を設定することができます。デフォルトは0です。式で指定した場合、フォームを開く際に計算されます。 この特性は、フレームフォームを小さくしすぎることで、フレーム内のコントロールが表示されなくなる問題を防止するためのものです。この特性は、エンドユーザがフレームエリアを使用できない状態に変形してしますことも防止します。


出力フォーム

ホーム > リファレンスガイド > フォーム > 出力フォームとコントロール

出力フォームとコントロール

出力フォームは、常にバッチタスクがベースになっており、そのクラス値が１以上に定義されている必要があります。

出力フォームには、インターネットフォームと帳票フォームの２種類があります。

インターネットフォームでは、以下のインタフェースタイプが利用できます。

  • フレームセット形式

  • マージ形式

帳票フォームには、以下のインタフェースタイプが利用できます。

  • GUI出力形式

  • テキスト形式

クラスが１以上の場合、[フォーム]エディタは同じクラスのフォームを全て表示します。従って、帳票フォームの場合、関連するヘッダ、明細、およびフッターの全てのフォームがラベル付きの区切り線とともに表示されます。

コントロールには、以下のようにしてアクセスできます。

  • ［GUIコントロール］パレット

  • ［描画］メニュー → ［コントロール追加］オプション

  • フォームのコンテキストメニューから、［コントロール追加］オプションの選択

注意

帳票フォーム上のテーブルコントロールに新規にコントロールを追加する場合、フォーム特性の幅をテーブルコントロールの幅が十分収まるようなサイズに設定しておく必要があります。

関連トピック：

帳票印刷フォーム


帳票フォーム

帳票フォームは、クラス>0で、［テキスト形式］、または［GUI出力形式］のインタフェースタイプのフォームです。

［GUI出力形式］フォームについては、以下を参照してください。

GUI出力形式フォーム特性

GUI出力形式コントロール特性

［テキスト形式］フォームについては、以下を参照してください。

テキスト形式フォーム特性

テキスト形式コントロール特性

クラスが１以上の場合、［フォーム］エディタは同じクラスのフォームを全て表示します。従って、帳票フォームの場合、関連するヘッダ、明細、およびフッターの全てのフォームがラベル付きの区切り線とともに表示されます。

関連トピック：

帳票印刷フォーム

レポート （Mastering Magic xpa）


帳票フォーム 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行に納まらない場合は、テーブル行が拡大されます。

注意：

  • 印刷プレビュー機能で折り返し行の最終行が正しく出力されない場合があります。

  • テーブル内の拡張コントロールは、テーブル外に拡張コントロールが定義されていない場合のみ、「複数ページ」が機能します。テーブル外に拡張コントロールが定義されてる場合は、「1ページ」の場合と同じように動作します。

  • データがページ間で切り分けることができないため、［リッチエディット］コントロールでは「複数ページ」は出力されません。この場合、「1ページ」と同じように動作します。

パレット最適化

多くのグラフィックイメージを含むフォームでは、各イメージに異なるカラーパレットが使用されていることがあり、それらのカラーパレットの組み合わせによってフォーム内で適合しない解像度が生じることがあります。

このような場合、［パレット最適化］を「Yes」に設定して、選択したグラフィックイメージに標準色を与えるパレットが使用されるようにすることができます.


帳票フォーム GUI出力形式フォーム特性 表示

ホーム > リファレンスガイド > フォーム > 出力フォームとコントロール > 帳票フォーム > GUI出力形式フォーム特性 > 表示

表示

［GUI出力フォーム特性］の［表示］セクションには以下の特性があります。

特性 | 内容
フォント | フォームのフォントを指定します。［アプリケーション用フォント一覧］にズームしてフォントを選択できます。式で動的に指定することもできます。コントロールのフォントは、［コントロール特性］シートで定義します。コントロールのフォントが指定されていない場合、フォームのフォントが使用されます。
色 | フォームの色を指定します。［アプリケーション用基本色一覧］にズームして色を選択できます。［式］エディタにズームし、色番号を表す式を入力することによって動的に指定することもできます。


帳票フォーム GUI出力形式フォーム特性 位置とサイズ

ホーム > リファレンスガイド > フォーム > 出力フォームとコントロール > 帳票フォーム > GUI出力形式フォーム特性 > 位置とサイズ

位置とサイズ

［GUI出力フォーム特性］の［位置とサイズ］セクションには以下の特性があります。

特性 | 内容
幅 | フォームの横幅を指定します。指定された幅のフォームを超えてコントロールが定義されている場合、水平スクロールバーが表示されます。 フォームの右端をドラッグすることによって幅を変更することができます。
高さ | フォームの高さを指定します。指定された高さのフォームを超えてコントロールが定義されている場合、垂直スクロールバーが表示されます。 フォームの下辺の端をドラッグすることによって高さを変更することができます。


GUI 出力形式コントロール特性

ホーム > リファレンスガイド > フォーム > 出力フォームとコントロール > 帳票フォーム > GUI出力形式コントロール特性

GUI出力形式コントロール特性

GUI出力形式フォーム上のコントロールからズームすることで［GUI出力コントロール特性］シートにアクセスすることができます。

GUI出力コントロールには以下のものがあります。

エディット

イメージ

ライン

リッチエディット

スタティック

テーブル


帳票フォーム GUI出力形式コントロール特性 エディット

ホーム > リファレンスガイド > フォーム > 出力フォームとコントロール > 帳票フォーム > GUI出力形式コントロール特性 > エディットコントロール特性

［エディット］コントロール特性

［GUI出力形式］フォームの［エディット］コントロールには以下の特性があります。

特性

内容

モデル

選択したコントロールに関連付けるモデルを指定します。
このコントロールに一覧される特性は、継承することも、継承を解除することもできます。継承を解除した特性の値は、モデルを更新しても更新されません。虫眼鏡のアイコンをクリックすると、コントロール特性が表示されます。

データ

データは、データ項目または式として指定します。

項目

［データ］特性で指定されたデータ項目の名前が表示されます。

書式

［エディット］コントロールの書式を指定します。ここで変更できるのは、現在のフォーム表示の形式だけです。初期設定値は、［項目］の［書式］特性から継承された書式になります。［式］エディタにズームして、コントロールの書式を表す式を入力することもできます。

式で指定された特性値が、同じデータ型の別の書式に変更された場合、コントロールの書式の値は同じ内容のままになります。これはすべてのタイプのフォーム、またはマージフォームの［タグ］テーブルに定義された書式タグに対しても同様です。

例えば、［エディット］コントロールの書式が文字型の「10」と設定されている場合、式を別の文字型書式に変更しても書式が維持され、デフォルトの「30」には変更されません。

型

選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。

複数行編集

［エディット］コントロールに複数行のテキストを含めることができるかどうかを指定します。

フォント

出力されるテキストのフォントを指定します。［アプリケーション用フォント一覧］にズームして選択するか、直接フォント番号を入力してください。

色

コントロールの色を指定します。［アプリケーション用基本色一覧］にズームして選択するか、直接基本色番号を入力してください。

可視

コントロールを出力させるかどうか指定します。論理値を返す式で指定することもできます。

スタイル

コントロールの外観を指定します。有効な値は、以下の通りです。

  • D=Windows立体（デフォルト）

  • 3=凸立体

  • S=凹立体

  • 2=平面

境界スタイル

コントロールの境界スタイルを指定します。［スタイル］特性が「2=平面」の場合のみ有効です。有効な値は以下の通りです。

  • T=細線 …… 細線でコントロールを囲みます。

  • H=太線 …… 太線でコントロールを囲みます。

  • N=なし …… コントロールに境界線を表示しません。（デフォルト）

水平整列

コントロール内の水平方向のテキストの配置を指定します。有効な値は以下の通りです。

  • L=左寄せ

  • C=センタリング

  • R=右寄せ

垂直整列

コントロール内の垂直方向のテキストの配置を指定します。有効な値は以下の通りです。

  • T=上寄せ

  • C=センタリング

  • B=下寄せ

左辺位置

コントロールの左上のx座標を指定します。

上辺位置

コントロールの右上のy座標を指定します。

幅

コントロールの幅を指定します。

高さ

コントロールの高さを指定します。

コントロールレイヤ

コントロールのリンク先である親のチョイスコントロールの階層を表示します。

テーブルの子としてリンクされている場合は、カラム番号（［カラム］コントロールのレイヤ番号）が表示されます。


帳票フォーム GUI出力形式コントロール特性 イメージ

ホーム > リファレンスガイド > フォーム > 出力フォームとコントロール > 帳票フォーム > GUI出力形式コントロール特性 > イメージコントロール特性

［イメージ］コントロール特性

［GUI出力形式］フォームの［イメージ］コントロールには以下の特性があります。

特性

内容

モデル

選択したコントロールに関連付けるモデルを指定します。
このコントロールに一覧される特性は、継承することも、継承を解除することもできます。継承を解除した特性の値は、モデルを更新しても更新されません。虫眼鏡のアイコンをクリックすると、コントロール特性が表示されます。

データ

データは、データ項目または式として指定します。

項目

［データ］特性で指定されたデータ項目の名前が表示されます。

型

選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。

デフォルトイメージファイル名

出力するイメージファイルの名前を指定します。

［イメージ］コントロールは、データ項目や［デフォルトイメージファイル名］特性にイメージファイル名を指定する必要があります。

色

コントロールの色を指定します。［アプリケーション用基本色一覧］にズームして選択するか、直接基本色番号を入力してください。

可視

コントロールを出力させるかどうか指定します。論理値を返す式で指定することもできます。

スタイル

コントロールの外観を指定します。有効な値は、以下の通りです。

  • 3=凸立体

  • S=凹立体

  • 2=平面

境界スタイル

コントロールの境界スタイルを指定します。［スタイル］特性が「2=平面」の場合のみ有効です。有効な値は以下の通りです。

  • T=細線 …… 細線でコントロールを囲みます。

  • H=太線 …… 太線でコントロールを囲みます。

  • N=なし …… コントロールに境界線を表示しません。（デフォルト）

イメージスタイル

イメージをイメージコントロールに合わせる方法を指定します。有効な値は以下の通りです。

  • T=タイル …… 領域全体が埋まるまで、イメージを繰り返しコントロールにコピーします。

  • C=コピー …… イメージをそのままコントロールにコピーします。コントロールより大きいイメージはトリミングされます。イメージがコントロールより小さい場合、コントロールのカバーされていない部分に背景色が塗られます。

  • S=フィットスケール …… イメージが、イメージコントロールの高さまたは幅に収まるようにサイズが調整されてコピーされます。この場合、イメージの縦横比は維持されます。イメージの縦横比とコントロールの縦横比が同じでない場合、コントロールの一部がカバーされないままになることがあります。

  • F=フィルスケール …… イメージが、イメージコントロールの領域を全て埋めるようにコピーされます。イメージの縦横比は維持されます。イメージの縦横比とコントロールの縦横比が同じでない場合、イメージの一部だけがコントロールに表示されることがあります。

  • D=コントロールスケール …… イメージの縦横比が調整され、イメージコントロールの領域を全て埋めるようにコピーされます。したがって、元のイメージは縦長または横長になります。イメージの縦横比とコントロールの縦横比が同じでない場合、縮小または拡大されたイメージは歪んでいます。

左辺位置

コントロールの左上のx座標を指定します。

上辺位置

コントロールの右上のy座標を指定します。

幅

コントロールの幅を指定します。

高さ

コントロールの高さを指定します。

コントロールレイヤ

コントロールのリンク先である親のチョイスコントロールの階層を表示します。

テーブルの子としてリンクされている場合は、カラム番号（［カラム］コントロールのレイヤ番号）が表示されます。


帳票フォーム GUI出力形式コントロール特性 ライン

ホーム > リファレンスガイド > フォーム > 出力フォームとコントロール > 帳票フォーム > GUI出力形式コントロール特性 > ラインコントロール特性

ラインコントロール特性

［GUI出力形式］フォームの［ライン］コントロールには以下の特性があります。

特性

内容

モデル

選択したコントロールに関連付けるモデルを指定します。
このコントロールに一覧される特性は、継承することも、継承を解除することもできます。継承を解除した特性の値は、モデルを更新しても更新されません。虫眼鏡のアイコンをクリックすると、コントロール特性が表示されます。

スタティックタイプ

［スタティック］コントロールのタイプが表示されます。ラインの表示内容にもとづいて「右上がり対角線」か「右下がり対角線」が表示されます。

色

コントロールの色を指定します。［アプリケーション用基本色一覧］にズームして選択するか、直接基本色番号を入力してください。

可視

コントロールを出力させるかどうか指定します。論理値を返す式で指定することもできます。

スタイル

コントロールの外観を指定します。有効な値は、以下の通りです。

  • 3=凸立体

  • S=凹立体

  • 2=平面

線種

コントロールの線の外観を指定します。［スタイル］特性が「2=平面」の場合のみ有効です。有効な値は以下の通りです。

  • R=実線

  • T=点線

  • S=破線

  • A=一点鎖線

  • D=二点鎖線

線幅

コントロールの線の幅を指定します。幅はフォームの寸法単位により異なります。［スタイル］特性が「2=平面」の場合のみ有効です。

X1

選択したラインの左側の点のx座標

Y1

選択したラインの左側の点のy座標

X2

選択したラインの右側の点のx座標

Y2

選択したラインの右側の点のy座標


帳票フォーム GUI出力形式コントロール特性 リッチエディット

ホーム > リファレンスガイド > フォーム > 出力フォームとコントロール > 帳票フォーム > GUI出力形式コントロール特性 > リッチエディットコントロール特性

リッチエディットコントロール特性

［GUI出力形式］フォームの［リッチエディット］コントロールには以下の特性があります。

特性

内容

モデル

選択したコントロールに関連付けるモデルを指定します。
このコントロールに一覧される特性は、継承することも、継承を解除することもできます。継承を解除した特性の値は、モデルを更新しても更新されません。虫眼鏡のアイコンをクリックすると、コントロール特性が表示されます。

データ

データは、データ項目または式として指定します。

項目

［データ］特性で指定されたデータ項目の名前が表示されます。

型

選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。

フォント

出力されるテキストのフォントを指定します。［アプリケーション用フォント一覧］にズームして選択するか、直接フォント番号を入力してください。

色

コントロールの色を指定します。［アプリケーション用基本色一覧］にズームして選択するか、直接基本色番号を入力してください。

可視

コントロールを出力させるかどうか指定します。論理値を返す式で指定することもできます。

スタイル

コントロールの外観を指定します。有効な値は、以下の通りです。

  • 3=凸立体

  • S=凹立体

  • 2=平面

水平整列

コントロール内の水平方向のテキストの配置を指定します。有効な値は以下の通りです。

  • L=左寄せ

  • C=センタリング

  • R=右寄せ

左辺位置

コントロールの左上のx座標を指定します。

上辺位置

コントロールの右上のy座標を指定します。

幅

コントロールの幅を指定します。

高さ

コントロールの高さを指定します。

コントロールレイヤ

コントロールのリンク先である親のチョイスコントロールの階層を表示します。

テーブルの子としてリンクされている場合は、カラム番号（［カラム］コントロールのレイヤ番号）が表示されます。


帳票フォーム GUI出力形式コントロール特性 スタティック

ホーム > リファレンスガイド > フォーム > 出力フォームとコントロール > 帳票フォーム > GUI出力形式コントロール特性 > スタティックコントロール特性

スタティックコントロール特性

［GUI出力形式］フォームの［スタティック］コントロールには以下の特性があります。

特性

内容

モデル

選択したコントロールに関連付けるモデルを指定します。
このコントロールに一覧される特性は、継承することも、継承を解除することもできます。継承を解除した特性の値は、モデルを更新しても更新されません。虫眼鏡のアイコンをクリックすると、コントロール特性が表示されます。

テキスト

コントロールに表示されるテキストを指定します。

RTFの使用

リッチテキスト形式を有効にするかどうかを指定します。［スタティックタイプ］特性が「テキスト」の場合のみ有効です。

スタティックタイプ

［スタティック］コントロールのタイプを指定します。ここからズームすると［スタティックタイプ］ダイアログが表示されます。［RTFの使用］特性が「No」の場合のみ有効です。

以下のオプションがあります

  • 右上がり対角線 …… コントロールの左上隅角から右下隅角に斜めのラインを挿入します。

  • 左上がり対角線 …… コントロールの右上隅角から左下隅角に斜めのラインを挿入します。

  • 水平線 …… コントロールに水平線を定義します。

  • 垂直線 …… コントロールに垂直線を定義します。

  • 四角形 …… 四角形としてスタティックコントロールを定義します。

  • 丸四角形 …… 丸四角形としてスタティックコントロールを定義します。

  • 楕円形 …… 楕円形としてスタティックコントロールを定義します。

  • グループ …… ［グループ］コントロールとして定義します。

複数行編集

コントロールに複数行のテキストを含めることができるかどうかを指定します。

フォント

出力されるテキストのフォントを指定します。［アプリケーション用フォント一覧］にズームして選択するか、直接フォント番号を入力してください。

色

コントロールの色を指定します。［アプリケーション用基本色一覧］にズームして選択するか、直接基本色番号を入力してください。

可視

コントロールを出力させるかどうか指定します。論理値を返す式で指定することもできます。

スタイル

コントロールの外観を指定します。有効な値は、以下の通りです。

  • 3=凸立体

  • S=凹立体

  • 2=平面

境界スタイル

コントロールの境界スタイルを指定します。［スタイル］特性が「2=平面」の場合のみ有効です。有効な値は以下の通りです。

  • T=細線 …… 細線でコントロールを囲みます。

  • H=太線 …… 太線でコントロールを囲みます。

  • N=なし …… コントロールに境界線を表示しません。（デフォルト）

水平整列

コントロール内の水平方向のテキストの配置を指定します。有効な値は以下の通りです。

  • L=左寄せ

  • C=センタリング

  • R=右寄せ

垂直整列

コントロール内の垂直方向のテキストの配置を指定します。有効な値は以下の通りです。

  • T=上寄せ

  • C=センタリング

  • B=下寄せ

線種

コントロールの線の外観を指定します。［スタイル］特性が「2=平面」の場合のみ有効です。有効な値は以下の通りです。

  • R=実線

  • T=点線

  • S=破線

  • A=一点鎖線

  • D=二点鎖線

線幅

コントロールの線の幅を指定します。幅はフォームの寸法単位により異なります。［スタイル］特性が「2=平面」の場合のみ有効です。

左辺位置

コントロールの左上のx座標を指定します。

上辺位置

コントロールの右上のy座標を指定します。

幅

コントロールの幅を指定します。

高さ

コントロールの高さを指定します。

コントロールレイヤ

Iコントロールのリンク先である親のチョイスコントロールの階層を表示します。

テーブルの子としてリンクされている場合は、カラム番号（［カラム］コントロールのレイヤ番号）が表示されます。


[テーブル]コントロール特性

ホーム > リファレンスガイド > フォーム > 出力フォームとコントロール > 帳票フォーム > GUI出力形式コントロール特性 > テーブルコントロール特性

テーブルコントロール特性

出力用フォームの［テーブル］コントロールには、以下の特性があります。

特性

内容

モデル

選択したコントロールに関連付けるモデルを指定します。
このコントロールに一覧される特性は、継承することも、継承を解除することもできます。継承を解除した特性の値は、モデルを更新しても更新されません。虫眼鏡のアイコンをクリックすると、コントロール特性が表示されます。

カラムの区切り線

［テーブル］コントロールのカラムの間に区切り線を表示するかどうかを指定します。

最終区切り線

［テーブル］コントロールで表示されます。タイトルバーに最終カラムの区切線を表示するかどうかを指定します。

  • 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座標を指定します。

幅

コントロールの幅を指定します。

高さ

コントロールの高さを指定します。


帳票フォーム テキスト形式フォーム特性

ホーム > リファレンスガイド > フォーム > 出力フォームとコントロール > 帳票フォーム > テキスト形式フォーム特性

テキスト形式フォーム特性

［テキスト形式］フォームは、クラス>0にする必要があります。

以下の操作で、［テキスト形式フォーム特性］シートにアクセスすることができます。

  • ［インタフェースタイプ］が「T=テキスト形式」に設定された［フォーム］エディタ内のエントリにカーソルを置き、［編集／特性］を選択します。

  • ［インタフェースタイプ］が「T=テキスト形式」に設定された［フォーム］エディタ内のエントリにカーソルを置き、Alt+Enterを押下します。

  • ［インタフェースタイプ］が「T=テキスト形式」に設定された［フォーム］エディタ内のエントリにカーソルを置き、右クリックでコンテキストメニューを開きます。［特性］を選択します。

  • ［インタフェースタイプ］が「T=テキスト形式」に設定されたフォームを開き、フォームのグリッドをダブルクリックします。

［T=テキスト形式特性］シートは、以下の５つのセクションに分かれています。

特性

内容

モデル

継承が解除されている特性の継承をし直したり、モデルの全ての特性の継承を解除することができます。さらに、別のモデルを選択することもできます。

詳細

フォーム名

［フォーム］エディタの［名前］カラムの値で、プログラム作成時にフォームを定義する上でわかりやすい名前を指定してください。

書式

［フォーム］エディタにグリッドを表示するかどうかを指定します。

  • Yes …… フォームのレイアウトにグリッドが表示されます。

  • No …… フォームのレイアウトにグリッドが表示されません。

入力

区分

帳票フォーム用です。以下の値が設定できます。

  • D=明細

  • H=ヘッダ

  • F=フッタ

  • P=ページヘッダ

  • G=ページフッタ

入出力レコードレイアウトとして用いるフォームでは、この特性値には意味がなく無視されます。

フォーム拡大

［複数行編集］が設定されたいる［エディット］コントロール内のテキストを全て出力するために、コントロールのサイズを拡大するかどうかを指定します。以下の値が設定できます。

  • N=なし …… コントロールサイズは拡大されません。

  • O=１ページ …… このコントロールによって拡大できるフォームの最大サイズが1ページ分になります。

  • M=複数ページ …… ［エディット］コントロールの全ての行が収まるまで、フォームは複数ページに渡って拡大されます。

注意：

  • この特性は、GUI出力の場合のみ有効です。

  • 印刷プレビューワの場合、ラップされたフィールドの最後の行が正しく表示されない場合があります。これは印刷プレビューワによる問題ですが、プリンターに出力する場合は、正しく動作します。

  • フォームがテーブルの外で拡大されるコントロールを含まない場合だけ、テーブルの拡大コントロールは複数のページで印刷されます。この場合は、「1ページ」に設定された場合と同じように動作します。

表示

色

論理プリンタ属性に関連付けられている色番号を指定します。

この特性をダブルクリックすると、［プリンタ属性一覧］が表示されます。実行モードでの値は、この特性をダブルクリックして［式］エディタを表示し、［プリンタ属性一覧］のカラー番号の計算式を入力することによって動的に指定できます。式を使用すると、プリンタ属性設定は式の結果で上書きされます。デフォルトは「1」です。

関連トピック： 出力テキストのセクションに印刷スタイルを指定する

位置とサイズ

幅

フォームの横幅を指定します。

高さ

フォームの高さを指定します。


出力テキストのセクションに印刷スタイルを指定する

出力テキストのセクションに印刷スタイルを指定するには、次の手順で行います。

  1. ［プログラム］リポジトリのプログラム項目をダブルクリックして、［タスク定義］ウィンドウを表示し、プルダウンメニューの［タスク環境］から［フォーム］を選択します。

  2. ［フォーム］テーブルで、［インタフェースタイプ］が「T=テキスト形式」のフォームを選択します。フォームのクラスは「0」より大きくなければなりません。

  3. ［名前］カラムをダブルクリックして、［フォーム］エディタを表示します。

  4. 印刷スタイルを指定するコントロールを選択します。

  5. ［コントロール特性］の［色］特性からズームして、［プリンタ属性一覧］を表示します。

  6. ［プリンタ属性一覧］から印刷スタイルを選択します。

  7. プリンタ属性が設定されたコントロールは、指定した印刷スタイルに対応する色でフォームに表示されます。

  8. ［タスク環境］メニューから［入出力ファイル］を選択し、［メディア］カラムが［P=テキスト形式プリンタ］に設定されていることを確認します。［プリンタ］カラムには、指定した印刷コマンドファイルに制御コードが含まれているプリンタの名前が設定されていなければなりません。例えば、特定のレーザプリンタに印刷コマンドファイルを指定した場合は、［プリンタ］カラムに同じタイプのプリンタが指定されている必要があります。


テキスト形式コントロール特性

［テキスト形式コントロール特性］シートは、［テキスト形式］フォーム上でコントロールからズームすると表示されます。

ここでは、コントロールのタイプごとに、各種の特性値を定義できます。現在のフォームでサポートされていないコントロール特性のオプションは使用できません。

テキスト形式コントロールには以下のものがあります。

エディット

スタティック

ライン


テキスト形式コントロール特性 エディット

ホーム > リファレンスガイド > フォーム > 出力フォームとコントロール > 帳票フォーム > テキスト形式コントロール特性 > エディットコントロール特性

エディットコントロール特性

［テキスト形式］フォームの［エディット］コントロールには以下の特性があります。

特性

内容

モデル

選択したコントロールに関連付けるモデルを指定します。
このコントロールに一覧される特性は、継承することも、継承を解除することもできます。継承を解除した特性の値は、モデルを更新しても更新されません。虫眼鏡のアイコンをクリックすると、コントロール特性が表示されます。

データ

データは、データ項目または式として指定します。

項目

［データ］特性で指定されたデータ項目の名前が表示されます。

書式

項目に対応した書式を指定してください。書式を変更した場合、フォームの表示のみに影響します。デフォルトは、項目特性に定義された内容が引き継がれます。

［式］欄から［式］エディタにズームして式を定義することで動的に変更することができます。

型

選択したデータ項目または式の型です。データ項目を設定した場合、この値は変更できませんが、式を設定した場合は変更できます。

複数行編集

［スタティック］コントロールに適用され、コントロールに複数行のテキストを含めることができるかどうかを指定できます。テキストが編集フレームまたはテキストフレームに入りきらない場合は、フォーム内に全てのテキストが表示されるようにフレームが拡張されます。拡張されたフレームからはみ出たコントロールは全て下に押し出され、新しいフレームの長さに対応する余白を形成します。

テキスト形式のフォームで複数行の［エディット］コントロールを使用すると、フォームの［フォーム拡大］特性を設定することによって、フォームを単一ページのサイズに設定できます。

色

［テキスト形式］フォームでは、プリンタの属性値を指定します。ここでズームすると［プリンタ属性一覧］が表示されます。

可視

コントロールをユーザに表示するか非表示にするかを定義します。実行モード時に動的に値を設定するには、式を使用します。式の戻り値が論理値の「True」の場合はコントロールを表示し、「False」の場合はコントロールを非表示にします。

水平整列

コントロール内の水平方向のテキストの配置を指定します。有効な値は以下の通りです。

  • L=左寄せ

  • C=センタリング

  • R=右寄せ

垂直整列

コントロール内の垂直方向のテキストの配置を指定します。有効な値は以下の通りです。

  • T=上寄せ

  • C=センタリング

  • B=下寄せ

左辺位置

コントロールの左上のx座標を指定します。

上辺位置

コントロールの右上のy座標を指定します。

幅

コントロールの幅を指定します。

高さ

コントロールの高さを指定します。


テキスト形式コントロール特性 スタティック

ホーム > リファレンスガイド > フォーム > 出力フォームとコントロール > 帳票フォーム > テキスト形式コントロール特性 > スタティックコントロール特性

スタティックコントロール特性

［テキスト形式］フォームの［スタティック］コントロールには以下の特性があります。

特性

内容

モデル

選択したコントロールに関連付けるモデルを指定します。
このコントロールに一覧される特性は、継承することも、継承を解除することもできます。継承を解除した特性の値は、モデルを更新しても更新されません。

虫眼鏡のアイコンをクリックすると、コントロール特性が表示されます。

テキスト

コントロールに表示されるテキストを指定します。

スタティックタイプ

［スタティック］コントロールのタイプを指定します。この設定は、スタティックなコントロールをフォームに配置することで自動的に定義されます。

ここからズームして、［スタティックタイプ］ダイアログを表示できます。

以下のオプションがあります。

  • 水平線

  • 垂直線

  • 四角形

複数行編集

コントロールに複数行のテキストを含めることができるかどうかを指定します。

テキスト形式のフォームで複数行の［エディット］コントロールを使用する場合は、［フォーム特性］の［フォーム拡張］特性を設定することで一ページ内で実行されます。

色

［テキスト形式］フォームでは、プリンタの属性値を指定します。ここでズームすると［プリンタ属性一覧］が表示されます。

コントロールは、選択された印刷属性に定義された色で表示されます。色は、印刷されません。印刷属性の使用内容を視覚化しているだけです。

可視

コントロールを出力させるかどうか指定します。論理値を返す式で指定することもできます。

水平整列

コントロール内の水平方向のテキストの配置を指定します。有効な値は以下の通りです。

  • L=左寄せ

  • C=センタリング

  • R=右寄せ

垂直整列

コントロール内の垂直方向のテキストの配置を指定します。有効な値は以下の通りです。

  • T=上寄せ

  • C=センタリング

  • B=下寄せ

線幅

境界線の幅を指定します。

左辺位置

コントロールの左上のx座標を指定します。

上辺位置

コントロールの右上のy座標を指定します。

幅

コントロールの幅を指定します。

高さ

コントロールの高さを指定します。


テキスト形式コントロール特性 ライン

ホーム > リファレンスガイド > フォーム > 出力フォームとコントロール > 帳票フォーム > テキスト形式コントロール特性 > ラインコントロール特性

ラインコントロール特性

［テキスト形式］フォームの［ライン］コントロールには以下の特性があります。

特性 | 内容
モデル | 選択したコントロールに関連付けるモデルを指定します。 このコントロールに一覧される特性は、継承することも、継承を解除することもできます。継承を解除した特性の値は、モデルを更新しても更新されません。 虫眼鏡のアイコンをクリックすると、コントロール特性が表示されます。
色 | ［テキスト形式］フォームでは、プリンタの属性値を指定します。ここでズームすると［プリンタ属性一覧］が表示されます。 コントロールは、選択された印刷属性に定義された色で表示されます。色は、印刷されません。印刷属性の使用内容を視覚化しているだけです。
可視 | コントロールを出力させるかどうか指定します。論理値を返す式で指定することもできます。
線幅 | 境界線の幅を指定します。
X1 | 選択したラインの左側の点のx座標
Y1 | 選択したラインの左側の点のy座標
X2 | 選択したラインの右側の点のx座標
Y2 | 選択したラインの右側の点のy座標


帳票フォーム 帳票印刷フォーム

ホーム > リファレンスガイド > フォーム > 出力フォームとコントロール > 帳票フォーム > 帳票印刷フォーム

帳票印刷フォーム

Magic xpaは、GUI形式プリンタ（Windowsのプリンタドライバを使用)とテキスト形式プリンタ（印刷属性を使用する)の印刷をサポートします。

GUI形式プリンタ

GUIプリンタに印刷するには、［入出力ファイル］テーブルの［メディア］カラムを「G＝GUI形式プリンタ」として定義し、出力フォームの［インタフェースタイプ］を「GUI出力形式」にすることで可能になります。

GUI印刷機能として、フォントやカラーを利用することができます。

GUIプリンタにTrue Typeフォント以外のフォントを使用して出力すると、該当するフォントがそのプリンタで使用できない場合は、文字が正常に印刷されないことがあります。

テキスト形式プリンタ

テキスト形式プリンターに印刷するには、［入出力ファイル］テーブルの［メディア］カラムを「P＝テキスト形式プリンタ」として定義し、出力フォームの［インタフェースタイプ］を「テキスト形式」にすることで可能になります。

テキスト形式プリンタは、［プリンタ］テーブルに定義されていなければなりません。

［プリンタ］テーブルで定義されている個々のプリンタについて、字体／フォントの組み合わせごとにどのプリンタ制御コードが使用されているか、またどの色がどの印刷スタイルを表しているかを、Magic xpaに認識させる必要があります。この情報は、「プリンタ属性ファイル」および「プリンタコマンドファイル」の2つのファイルに格納されます。

Magic xpaのプリンタ属性サポートを利用すると、印刷出力の表示状態を簡単に制御できます。プリンタ属性サポートは、テキスト形式の入出力ファイルのみを対象にしています。使用するプリンタがサポートしているフォント（明朝体、ゴシック体など）や字体（ボールド、イタリックなど）であれば出力することができます。

関連トピック：

プリンタ属性


マージフォーム

マージフォームは、Magicタスクからのデータを、あらかじめ定義されたテンプレートファイルとマージすることで、動的なHTMLファイルやXMLファイル、テキストファイルを作成する場合に使用します。

Webオーサリングツールを使用してマージフォームを設計する時は、［フォーム］エディタの［名前］カラムからズームします。このWebオーサリングツールは、［動作環境］ダイアログの［アプリケーションサーバ］タブの［Webオーサリングツール］欄で指定します。

関連トピック：

マージフォーム特性

テンプレートファイルのタグ

マージのタグ

ファイルマージの例

リクエスタのアップロード機能

マージ (Mastering Magic xpa)


マージフォーム 特性

ホーム > リファレンスガイド > フォーム > 出力フォームとコントロール > マージフォーム > マージフォーム特性

マージ形式フォーム特性

［マージ形式フォーム特性］には、以下の特性があります。

特性

内容

モデル

継承が解除されている特性の継承をし直したり、モデルの全ての特性の継承を解除することができます。さらに、別のモデルを選択することもできます。

詳細

ファイル名

マージフォームを利用した［フォーム出力］処理コマンドで使用されるテンプレートファイルの名前を定義します。Magic xpaの論理名も使用できます。［ファイルを開く］ダイアログから選択するには、ここからズームします。
定義式でファイル名を動的に指定する場合は、［式］特性からズームして［式］エディタに入り、ここでファイル名を指定する式を定義してください。

トークン前付符号

テンプレート内のマージタグで使用される前処理を定義します。マージメカニズムでは、この文字列で始まるタグを検索し、テンプレートファイル内のタグに従って値を置換します（デフォルト： <!$）。

トークン後付符号

テンプレート内のマージタグで使用される後処理を定義します。マージメカニズムでは、この文字列で終わるタグを検索し、テンプレートファイル内のタグに従って値を置換します（デフォルト： >）。

タグテーブル

関連付けられているテンプレートファイル内の該当するマージタグと突き合わせ、それらに置き換えるデータ要素を定義します。ここからズームすると［タグ］テーブルが表示されます。詳細は、テンプレートファイルのタグの説明を参照してください。

フォーム名

この名前はフォームの識別用です。

XML出力

XML ファイルの出力時に特殊記号（&<>'"）をキーワード(&amp;&lt;&gt;&apos;&quot;）に変換して出力するか否かを指定します。

  • Yes …… マージされた文字値は、正規のXML 値に変換されます。

  • No …… 変換処理を行いません。

式を使用した場合、式の評価はタスク開始時に1度だけ行われます。

位置とサイズ

X

フォームにあるフレームの左端の位置を指定します。［式］エディタにズームして、フォームのフレームの左端の座標を返す式を入力することにより、実行時に値を指定できます。

Y

フォームにあるフレームの上端の位置を指定します。［式］エディタにズームして、フォームにあるフレームの上端の座標を返す式を入力することにより、値を実行時に指定できます。

幅

フォームを表示するウィンドウの幅を指定します。

高さ

フォームを表示するウィンドウの高さを定します。


マージフォーム テンプレートファイルのタグ

ホーム > リファレンスガイド > フォーム > 出力フォームとコントロール > マージフォーム > テンプレートファイルのタグ

テンプレートファイルのタグ

［タグ］テーブルは、関連付けられているテンプレートファイル内の該当するマージタグと突き合わせて置き換えるデータ要素を定義する場合に使用します。［タグ］テーブルを開くには、マージ形式フォームの［タグテーブル］特性でズームしてください。

［フォーム出力］処理コマンドが実行されると、項目／式および書式からタグと表示値がマージメカニズムに送られます。マージメカニズムがテンプレートファイル内でタグを検出できない場合、タグとマージ値は無視されます。

タグが繰り返し領域に定義されていない場合は、最初のタグのみマージ値に置き換えられ、同じタグが２回以上送られても２番目の以降は無視されます。 繰り返し領域内に定義されたれタグの場合は、［フォーム出力］処理コマンドを実行するたびにマージ値で置き換えられます。

IFブロックの先頭にあるタグ（MGIFタグの一部）の場合、そのタグの値は、このIFブロックを出力先にコピーするかどうかを指定する論理値とみなされるか、あるいはELSEブロック（存在する時は）とみなされます。IFブロックは繰り返し領域の内側に置くことができます。これは、このタグに複数の値があり、「True」ごとにIFブロックが複写されることを意味します。

非論理値が［フォーム出力］処理コマンドによってMGIFタグに「属する」タグに送られると、値は「True」とみなされます。

マージメカニズムに対する出力として送られる文字列の後に空白が入力されている場合は、全て削除されます。


マージフォーム タグテーブル

ホーム > リファレンスガイド > フォーム > 出力フォームとコントロール > マージフォーム > タグテーブル

タグテーブル

［タグ］テーブルには以下のカラムがあります。

特性

内容

タグ名

テンプレートファイル内のマージタグと突き合わせるデータ要素の名前を指定します。選択したマージファイルに対してテンプレートファイルの名前が明示的に指定されている場合は、ズームすることにより、そのテンプレートファイルを基に表示される［タグ名一覧］からタグ名を選択できます。

名前（式）

タグ名を定義式で動的に指定する場合は、ここから［式］エディタにズームして定義してください。

項目

タグを置き換える値が入っている項目を定義します。BLOB項目だけは選択できません。使用可能な項目の一覧から項目を選択する時はズームします。

式（データ項目）

タグを置き換える値が入っている式を定義します。

名前

選択した項目または式の名前を表示します。

書式

項目または式のいずれかの値をテンプレートにマージする時に使用する書式を定義します。項目に対して定義されている書式、式のデフォルト書式のいずれかが書式のデフォルトとなります。

式（書式）

書式を、実行時に評価される式として定義します。

［新しいタグを選択］
ボタン

このボタンをクリックすると、テンプレートファイルに定義されたタグ名のリストが表示されます。リストに表示されていない場合は、以下の可能性があります。

  • すでにすべてのタグが選択されています。この場合ビープ音が鳴り、以下のメッセージが表示されます。
    テンプレートファイルに新しい入力タグが見つかりませんでした.

  • テンプレートファイル内のタグ名が正しく定義されていません(トークン前付符号と後付符号接が、指定された値と異なっているなど)。

  • テンプレートファイルの名前が正しくない。［フォーム名］カラムからズームしてエディタを開くことで確認できます。

最初のカラム(「#」が表示されています)でクリックして、使用するタグを選択します。クリックされたタグは黒く反転表示します。Ctrl+クリックを使用することで複数のタグを選択することができます。

選択したら、［選択］ボタンをクリックしてください。選択したすべてのタグが［タグ］テーブルに追加されます。

関連トピック：

テキストファイルにデータをマージするには

テンプレートへのデータ挿入を調整するには


マージフォーム マージのタグ

ホーム > リファレンスガイド > フォーム > 出力フォームとコントロール > マージフォーム > マージのタグ

マージのタグ

Magic xpaのマージタグが通常のASCII文字列として保存されている限り、テンプレートファイルはどの文字コードでも構いません。

マージの各タグの一般的な形式は次のとおりです。

{トークン前付符号}{Token［_name］}{トークン後付符号}

「トークン前付符号」と「トークン後付符号」は、［入出力ファイル］テーブルのエントリごとに定義します。デフォルトでは、「トークン前付符号」と「トークン後付符号」はそれぞれ「<!$」と「>」として定義されています。

タグの{Token［_name］}の部分は、以下のいずれかになります。

タグ

内容

<!$MG_NAME>

［マージ特性］ダイアログのタグテーブル内で定義されたデータ要素と、実行時に同一の名前で一致したデータタグ。一致が検出されると、［フォーム出力］処理コマンドの実行時にその値がタグと置き換えられることになります。

<!$MGREPEAT>

繰り返し領域の先頭を定義します。繰り返し領域は、［フォーム出力］処理コマンドごとに複写と処理が行われるため、データ行の数が不明な場合でも処理を実行できます。このタグは出力からは除去されます。

関連トピック：

テンプレートに繰り返し可能なデータを挿入するには

HTMLテンプレートのテーブルに繰り返し可能なデータを挿入するには

<!$MGENDREPEAT>

繰り返し領域の末尾を定義します。このタグは出力からは除去されます。

<!$MGIF_NAME>

IFブロックの先頭を定義します。指定した名前は、［マージ特性］ダイアログのタグテーブル内で定義されたデータ要素と突き合わされます。データは論理値として評価されます。このデータが「True」であれば、IFブロックの残りの部分が処理されます。それ以外の場合はELSEブロックが処理されます。データが論理値でないと評価されると、そのデータは「True」とみなされます。このタグは出力からは除去されます。

<!$MGELSE>

ELSEブロックの先頭と、IFブロックの末尾（ELSEブロックより前になければならない）を定義します。ELSEブロックは、IFブロックの名前データ値が「False」と評価された場合に処理されます。このタグは任意指定です。このタグそのものは出力からは除去されます。

<!$MGENDIF>

IFブロックの末尾、またはELSEブロック（もしあれば）の末尾を定義します。<!$MGIF_name>が存在する場合、このタグは必須。このタグは出力からは除去されます。

<!$MGINCLUDE>

このタグを使用すると、マージ処理中にテンプレートファイル全体を組み込むことができます。開始タグの後ろに、組み込むファイルの名前を指定します。ファイル名としてタグそのものを指定できます。組み込み処理は、ファイルを完全にマージした後で実行されます。

このタグを使用する場合は、指定したファイルが存在しているかどうかをあらかじめ確認するようにしてください。

関連トピック： テンプレートにファイルを埋め込むには

<!$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ブロックはネスト指定できます。

関連トピック：

ファイルマージの例

HTMLタグとマージのトークンを区別するには


マージフォーム 例

ホーム > リファレンスガイド > フォーム > 出力フォームとコントロール > マージフォーム > ファイルマージの例

ファイルマージの例

マージメカニズムを利用した簡単な例を以下に示します。

  1. 以下のようなHTMLファイルを作成し、保存します。（例：C:\in_merge.htm）

<!$MGREPEAT>

<!$MG_number> <!$MGIF_IsEven>Even<!$MGELSE>Odd<!$MGENDIF>

<!$MGENDREPEAT>

  2. Magicプログラムを作成し、以下のパラメータを設定します。

  • タスクタイプ …… バッチ

  • タスク終了条件 …… Counter(0)=10

  • チェック時期 …… 後置

  3. 以下のパラメータで［入出力］テーブルを作成します。

  4. 名前 …… 「マージファイル」（任意の名前を入力できます）

  5. メディア …… ファイル

  6. 式/項目 …… 出力されるファイル名とパス名（例：C:\out_Merge.txt）

  4. 以下のパラメータでフォームを作成します。

  • 名前 …… 「HTMLテンプレート」（任意の名前を入力できます）

  • クラス …… 1

  • インタフェースタイプ …… マージ

  • HTMLファイル …… #1で作成されたマージファイルを指定します。

  • タグテーブル …… テンプレートファイルに定義されている2つのHTMLタグに値を割り当てます。

    4. タグ名：number …… 式（Counter(0)）の値で置き換えられます。

    • タグ名:IsEven …… 式（Counter(0) MOD 2 =0）の値で置き換えられます。

  5. ［レコード後］ロジックユニットに、以下のロジックを定義します。

    • 処理コマンド：フォーム出力

    • フォーム： 「HTMLテンプレート」

    • 入出力：「マージファイル」

プログラムを保存し、チェックした後で実行します。出力された「C:\out_Merge.txt」には、以下のような行が書き込まれます。

Number | Even/Odd
1 | Odd
2 | Even
3 | Odd
4 | Even
5 | Odd
6 | Even
7 | Odd
8 | Even
9 | Odd
10 | Even


フレームセットフォーム

フレームセットは、ブラウザウィンドウを複数のフレームに分割して表示する、高度なインターネット文書を作成する時に使用します。各フレームにはソースがそれぞれ異なる、独立したHTMLページが表示されます。

フレームセットには、各フレームのURLと名前を定義します。各フレームの内容は、フレームセットに定義されているURLから最初に読み込まれます。フレーム名を使用することにより、ハイパーリンクでリンクされているフレームの内容や送信アクションで送られたフレームの内容を別のフレームで表示することが可能になります。この方法により、プロジェクトでは、サイトの操作メニューや会社ロゴなどの表示部分を持続的に表示しておくことができるため、プロジェクトのどのページにもそれらの部分を組み込んで毎回読み込ませる必要がなくなります。

HTMLフレームセットはその性質上、階層構造をとっています。各フレームセットには別のフレームセットを含めることができ、それを同じフレームの一部として、あるいはそのフレームのURLが参照するページとして定義します。

フレームセットは、［フォーム］エディタで1以上のクラス値を指定しなければなりません。［フレームセットフォーム］エディタにアクセスするには、［フォーム］エディタ内のフレームセットフォームエントリの名前をズームします。

関連トピック：

フレームセットフォーム特性

コマンドパレット

フレームパレット

フレームセットコントロール特性


フレームセットフォーム 特性

ホーム > リファレンスガイド > フォーム > 出力フォームとコントロール > フレームセットフォーム > フレームセットフォーム特性

フレームセット形式フォーム特性

［フレームセット形式］フォームの［フォーム特性］は以下の通りです。

特性

内容

モデル

継承が解除されている特性の継承をし直したり、モデルの全ての特性の継承を解除することができます。さらに、別のモデルを選択することもできます。

詳細

境界線の表示

このフレームセット内のフレーム枠を表示するかどうかを指定します。「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内部属性］特性でそれを参照することによって行います。

位置とサイズ

幅

フォームの幅を指定できます。

高さ

フォームの高さを指定できます。


フレームセットフォーム コマンドパレット

ホーム > リファレンスガイド > フォーム > 出力フォームとコントロール > フレームセットフォーム > コマンドパレット

フレームセットのコマンドパレット

［コマンド］メニュー、ショートカットメニュー、またはフレームセットの［コマンド］パレットを使用して、フレームセットフォームのフレームを編集することができます。

フレームセットの［コマンド］パレットには、フレームまたはフレームセット全体を編集するためのコマンドが含まれています。

フレームセットの［コマンド］パレットの各ボタンについての説明は以下の通りです。

コマンド | 名前 | 説明
 | 縦に分割 | カーソルを縦分割カーソルに変更するにはこのボタンをクリックします。フレームを左右2つに分割する時は、この状態で任意のフレームをクリックします。
 | 横に分割 | カーソルを横分割カーソルに変更するにはこのボタンをクリックするフレームを上下2つに分割する時は、この状態で任意のフレームをクリックします。
 | フレームセット選択 | 選択したフレームのコンテナフレームを選択します。
 | フレームセット表示 | 選択したフレームのコンテナフレームを選択せずに表示します。
 | 縦に均等分割 | 選択したフレームを縦方向に、2つの全く同じフレームとして分割します。
 | 横に均等分割 | 選択したフレームを横方向に、2つの全く同じフレームとして分割します。
 | 縦に３分割 | 選択したフレームを縦方向に、3つの全く同じフレームとして分割します。
 | 横に３分割 | 選択したフレームを横方向に、3つの全く同じフレームとして分割します。
 | ハイパーリンク | 選択したフレームと、MagicプログラムやURLとの間にハイパーリンクを確立します。
 | マーク解除 | 選択したフレームの選択状態を取り消します。
 | 枠なし | ブラウザ上でのフレーム境界線の表示と非表示を切り替えます。デフォルトでは、境界線が表示されます。
 | 相対サイズ | ［相対サイズ］特性を「Yes」に設定します。
 | 削除 | フォーム上に表示されている選択したフレームまたはフレームセットを削除します。
 | 区切りなし表示 | フレームセットとフレームセット間の区切線を消去します。
 | 元に戻す | 直前のコマンドの操作内容を取り消します。
 | やり直し | ［元に戻す］コマンドによって取り消された直前のコマンドの操作内容を繰り返します。
 | HTMLファイル書込 | HTML形式でフレームセットデザインファイルを保存します。
 | ブラウザで表示 | ブラウザを起動してフレームセットデザインを表示します。


フレームセットフォーム フレームパレット

ホーム > リファレンスガイド > フォーム > 出力フォームとコントロール > フレームセットフォーム > フレームパレット

フレームパレット

［フレームセット形式］フォームの［フレーム］パレットはあらかじめ定義された多数の標準フレームセットデザインで構成されており、フレームセットの編集を開始する時にはこれらのデザインを利用できます。基になるフレームセットデザインを選択した後、そのデザイン内でフレームの追加、削除、サイズ変更を行い、フレームセット内のフレームごとに特性を定義することができます。

フレームセットの設計を開始する時、あるいは現在フォーム上にあるフレームセットデザインを置き換える時は、フレームセットの［フレーム］パレットにある任意のフレームセットを選択します。フレームセットの［フレーム］パレットからフレームセットデザインを選択すると、現在フォーム上にあるフレームセットデザインが自動的に置き換えられる点に注意してください。自動的に置き換えられたデザインを元に戻したい場合は、フレームセットの［コマンド］パレットの［元に戻す］ボタンを選択するだけで前のフレームセットに戻ります。


フレームセットフォーム コントロール特性

ホーム > リファレンスガイド > フォーム > 出力フォームとコントロール > フレームセットフォーム > フレームセットコントロール特性

フレームセットコントロール特性

フレームセットフォーム内にある各フレームのコントロール特性は以下の通りです。

特性

内容

モデル

継承が解除されている特性の継承をし直したり、モデルの全ての特性の継承を解除することができます。さらに、別のモデルを選択することもできます。

詳細

フレーム名

フレームの名前を定義します。フレーム名は、別のフレームでハイパーリンクや送信ボタンをクリックした時に、要求された対象としてそのフレームを参照する場合に使用します。
これに対応するHTMLコードは以下のようになります。

<FRAME name="..."...>

スクロール

表示するHTMLコンテンツがフレームより大きい場合に、そのフレームに水平または垂直スクロールバーを表示するかどうかを指定します。デフォルト設定は「No」です。
これに対応するHTMLコードは以下のようになります。

<FRAME scrolling=no...>

サイズ変更

フレーム枠のクリックとドラッグによるフレームのサイズ変更を可能にするかどうかを指定します。ドラッグする枠に隣接するどのフレームもこの特性が「Yes」に設定されている必要があります。デフォルト設定は「No」です。
これに対応するHTMLコードは以下のようになります。

<FRAME noresize...>

入力

ハイパーリンク

フレームの内容がある参照先を指定します。ハイパーリンクを定義するには、ハイパーリンク値特性をズームするかダブルクリックして［ハイパーリンク］ダイアログを開きます。選択したハイパーリンクがフレーム内部に表示されます。
これに対応するHTMLコードは以下のようになります。

<FRAME src="..."...>

XML出力

XML ファイルの出力時に特殊記号（&<>'"）をキーワード(&amp;&lt;&gt;&apos;&quot;）に変換して出力するか否かを指定します。

  • Yes …… マージされた文字値は、正規のXML 値に変換されます。

  • No …… 変換処理を行いません。

式を使用した場合、式の評価はタスク開始時に1度だけ行われます。

表示

HTML内部属性

［HTMLスタイル］テーブルから<FRAME>タグに追加する属性を選択します。［式］カラムから［式］エディタにズームすることにより式を作成することもできます。


フレームセットフォーム コントロール特性 ハイパーリンク

ホーム > リファレンスガイド > フォーム > 出力フォームとコントロール > フレームセットフォーム > フレームセットコントロール特性 > ［ハイパーリンク］ダイアログボックス

［ハイパーリンク］ダイアログボックス

フォームをWebサーバに送信したり、Magicプログラムを起動するためのハイパーリンクをクリックする時のために使用されるURLを定義することができます。

Magic xpaのハイパーリンクは、以下のタイプの内どれかを指定することができます。

URL

「URL」が選択された場合、以下の項目が有効になります。

  • URL

Magicプログラム

［ハイパーリンク］ダイアログにて、「Magicプログラム」を選択すると他のプログラムに対するハイパーリンクを定義することができます。

フォームをHTMLに変換された場合、Magic xpaは以下の内容でURLを構成します。

  • HTTPリクエスタ の設定：［動作環境］ダイアログの［アプリケーションサーバ］タブで定義されます。

  • ユーザによって提供されるMagic xpaのシステム名と公開名

  • 設定されたパラメータ

［ハイパーリンクタイプ］で「Magicプログラム」を選択した場合、以下の設定を定義することができます。

特性

内容

Magicアプリケーション

呼び出されるプログラムが定義されているプロジェクト名を指定します。ここからズームして［プロジェクトを選択］ダイアログからプロジェクトファイルまたはキャビネットファイルを選択します。右側の式欄からズームすることで式で定義することもできます。

公開名

起動されるプログラムの公開名を指定します。この名前は、［プログラム］リポジトリに定義された公開名と同じ名前を指定します。ここからズームして［公開プログラム一覧］からプログラムを選択することができます。右側の式欄からズームすることで式で定義することもできます。

パラメータ

Magicプログラムに渡されるパラメータを指定します。ここからズームして［パラメータ］テーブルを表示し、パラメータを選択することができます。

マージフォームの入力フィールドを使用するMagicプログラムの呼び出しを指定する場合は、ここからズームして［パラメータ］テーブルを開きパラメータを設定します。

  • 項目 …… 項目一覧に表示されているMagic xpaの項目を指定します。

  • 式 …… 固定値を渡す場合に使用します。

  • 説明 …… 項目についての説明が表示されます。


式エディタ

ホーム > リファレンスガイド > 式エディタ

［式］エディタ

［式］エディタは、モーダルウィンドウです。ここではテーブル形式で式が表示され、内容を編集することができます。右クリックすることで、様々な［選択一覧］にアクセスすることができる［コンテキスト］メニューが表示されます。［式］エディタのウィンドウの上部に表示されているアイコンをクリックすることで各オブジェクトの一覧にアクセスすることもできます。項目一覧は、ウィンドウの右側に表示されており、F5を押下することで項目一覧に移動することができます。

式には、値を計算するための定数または公式を定義します。式は、アクションの実行を指示する一連の演算子と演算の実行対象であるオペランドから成り立っています。オペランドには、データ項目、関数、定数（リテラルと呼ぶ）、またはその他の下位の式が使用できます。

［式］エディタの各エントリは、評価されると、使用するデータ項目と関数の型に応じて、数値、文字列、BLOB、または論理値（「True」または「False」）になります。使用する型の組み合わせが不適切だと、エラーメッセージが表示されます。

参考：

［式］エディタには、9999行まで式を定義できます。１つの式は、2048バイトまで定義できます。

文字列

式に定義される文字列は、シングルクオーテーションで囲む必要があります。（例：'abc')。

シングルクオーテーションの文字自体を指定する場合は、別のシングルクオーテーション内に二つのシングルクオーテーションで指定するようにしてください。

例：'it''s' を指定することで it's として扱われます。

ダブルクオーテーション（'')は、通常の文字をみなされます。

関数

関数は括弧を使用することでネストして使用することができます。例えば、データ項目Aに格納されている文字列の実際の長さ（後続の空白文字を除く）を求めるには、Len(LTrim(RTrim(A)))、あるいは Len(Trim(A))とします。

IF、AND、NOT、ORを含む論理式をネストすることにより、さらに複雑な式を作ることもできます。不要な括弧は自動的に除去されます。

ここには、代数学や文字列、論理式の規則に従うどのような演算式も指定することができます。

関数は通常、1つまたは複数のパラメータ（カンマで区切る）を持ちます。パラメータは括弧で囲みます。関数にパラメータがなくても、括弧は必要です。例えば、今日の日付を返すDate関数を使用する場合には、Date()とします。

例：Date()

関数は全て値を返します。

式内の関数名は、大文字と小文字の区別を行いません。

構文チェック

編集中の式の構文をチェックするには、Tabキーを押下します。

拡張ウィンドウの状態で構文をチェックする場合は、Ctrl+Enterを押下するか、［編集］メニューかコンテキストメニューから［式の確認］を選択します。

ワードラップ

［式］エディタが複数行モードになっている場合に、［表示］メニュー/コンテキストメニューの［ワードラップ］をチェックすると（チェックマークが表示されます）、テーブル行に表示できない内容が折り返して表示されるようになります。［ワードラップ］のチェックを解除すると表示は折り返さなくなります。

複数行モード

式の入力行を拡張表示することで、複数行入力ができるようになります。

拡張表示されたテキストは全部または一部をコピーすることが可能です。またこの表示モードの場合、スペースやＴａｂを入力することができるため、複雑な式に改行やインデントを指定して見やすくすることができます。

以下の操作で複数行モードに移行できます。

  • F6の押下

  • 表示されている入力行の範囲を超えて文字を入力

  • 通常のモードでは表示できないほど大きい式を貼り付け

関数のツールチップ

［関数一覧］から関数を選択したり、関数を記述すると関数のツールチップが表示されます。また、関数の左の括弧でCtrl+Shift+スペースを押下することでも表示されます。

ツールチップには、関数のパラメータや戻り値の概要が表示されます。

ツールチップは、ESCを押下したり、［動作環境］の［ツールチップタイムアウト］で定義された時間が経過した場合に閉じます。

ユーザ定義関数に戻り値が定義されていない場合、“Any” が表示されます。

関連トピック：

クイック式エディタ

正規表現

リテラル

関数ディレクトリ

式エディタ内でのショートカット

式 (Mastering Magic xpa)


選択一覧 関数 オートコンプリート

ホーム > リファレンスガイド > 式エディタ > 関数のオートコンプリート機能

関数のオートコンプリート機能

関数のオートコンプリート機能は、関数の設定時に利用できます。

この機能を使用するには、関数の頭文字をまず入力します。その後、Ctrl+Spaceを押下します。

例えば、「ab」を入力した場合、[関数一覧]が開き、カーソルがABS()関数にパークします。

オートコンプリート機能は、入力されたテキストに従って照合された関数に位置付けられます。

照合された関数が1つだけの場合は、関数入力は自動的に完了されます。

複数の候補がある場合、整合する関数名がリストボックスに表示されます。その中から関数名をクリックすることで、使用する関数を選択することができます。

照合処理では、大文字/小文字を区別しません。

「do」と入力して、Ctrl+Spaceを押下すると「DotNet」がリストに表示されます。これを選択することで、.NETオブジェクトを選択できます。

注意：

カーソルが文字列内にある場合は、オートコンプリート機能が動作しません。

関連トピック：

関数名の入力を簡単に行うには


選択一覧

Magic xpaの任意の場所から、選択一覧にズームすることができます。

  • 項目を選択するには、Enterをクリックするか、ダブルクリックするか、［選択］ボタンをクリックしてください。

  • 項目を選択しないで一覧を抜けるには、Escを押下するか、［キャンセル］ボタンをクリックしてください。

一部の一覧では、ボタンが追加されているものもあります。

  • ［全て表示］ボタンをクリックすると、現在のタスクで定義済みの項目が全て表示されます。

  • ［適用表示］ボタンをクリックすると、現在の論理ユニットに関連する項目のみが表示されます。

  • ［登録］ボタンをクリックするかF4を押下すると、選択一覧から直接項目を作成することができます。


クイック式エディタ

このエディタは、［式］エディタを開かずに簡単な式を入力することができます。

式(［代入］や［条件］特性などの)を必要とする［ロジック］エディタや［データビュー］エディタの［特性］シート上にパークしている時に、等号(=)キーを押下すると式を入力するテキストボックスが表示されます。このテキストボックスに式を入力した後、Enterキーを押下することで式が確定され、［式］エディタ内に追加されます。EscやF2を押下すると式を保存しないで終了します。

Enter以外の操作用のキー（カーソルキーやTab、PageUp、PageDown、エディットボックス以外をマウスクリックする操作）の操作でも式が保存されます。

注意：

このエディタは、［ロジック］エディタや［データビュー］エディタ、［特性］シートで有効です。

式が確定された場合、［式］エディタ内の既存の式に入力された式が追加されます。

すでに式が定義されている状態で式を定義した場合、既存の式は削除されず、既存の式の最後に入力された定義が追加され、その式の番号が設定されます。

入力した式にエラーが存在する場合、［式］エディタが開き、作成された式にカーソルがパークされます。

関連トピック：

タスクエディタで直接に式を編集するには

簡単な式が重複して定義されることを防ぐには


正規表現

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

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

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

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

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

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

［ ］ | ブラケット | 文字のセットを表します。 "VAR［1-3］"は、サブ文字列: "VAR1","VAR2", と"VAR3"を含んだ行に位置付けます。
. | ドット | どのような文字または文字のセットとも一致します。 “a..b“ は、aで始まり、bによって終わるあらゆる4文字のサブ文字列が含まれた行に位置付けられます。例えば："aab"、"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.


リテラル

リテラルとは、特定の意味を持った定数のことをいいます。

数値の場合、特に識別子を使用しなくても識別されます。例えば、「123」や「15.52」はそのまま、数値リテラルとして（それ自体がリテラルとして）解釈されます。

数値以外のリテラルは、文字列として扱われます。通常、文字列は単引用符（'）で囲みます。文字列のうち、テキスト以外の文字列には全て、その後ろにリテラルコードを付加します。このリテラルコードにより、単引用符（'）で囲まれた文字列の種類を示すことができます。リテラルコード自体は単引用符で囲む必要はありません。例えば、'abcd'はテキストとして、'95/01/01'DATE は日付として扱われます。

リテラルとしての文字列は、Magic xpaの内部表現に変換されます。式に文字列が定義されている場合、その文字列は、Magic xpaの内部表現を使用して解析されます。実行時の式の評価には、内部表現の値（内部値）が使用されます。内部値は、その変更がないかどうか常にMagic xpaにより追跡され、変更があった時には、内部値に対応するリテラルも変更されます。

例えば、文字列「'1'DSOURCE」は、［データ］リポジトリの最初のデータ（行）を表します。このデータの前に新しいデータを挿入すると、このデータは１つ繰り下がり、2 番目のデータになります。その場合、自動的にリテラル文字列が「'2'DSOURCE」に更新されます。したがって、式でリテラルコード（この場合は「DSOURCE」）を使用して文字列を指定しておくことで、式を訂正しなくても済みます。

リテラルを使用することで、Magic xpaのプログラムを別の言語に移植する作業も楽になります。例えば、タスクモードは「'MCDQLRUSFOE'」などと定義することで多言語に対応が可能になります。この場合、MODEリテラルを使用して「'MCDQLRUSFOE'MODE 」としておくと、文字列の中のタスクモードが自動的に変換先の言語を所定の値に変更されます。

リテラルコードを使用することで、式はより確実になり、プロジェクトを手直ししても式に影響が及ぶことが少なくなります。

以下は、Magic xpaで使用できるリテラルコードです。

リテラル

内容

例

DATE

文字列は日付として解釈されます。日付の場合、Magic xpaの内部表現は数値になります。このため、日付の算術計算が可能です。例えば、「'97/01/01'DATE＋14」は有効な式で、結果は、「97/01/15」になります。

日付の西暦年は、［動作環境］ダイアログの［西暦基準年］パラメータの値によって変わってきます。例えば、「'97/01/28'DATE」の場合、［西暦基準年］パラメータに設定されている値が1892を超え、1997以下の時には、日付の西暦年は2097年となります。一方、［西暦基準年］パラメータに設定されている値が1997を超え、2097以下の時には、日付の西暦年は1997年となります。なお、Magic xpaでは、西暦年は通常、4桁で表示されます。

'97/01/01'DATE

DSOURCE

文字列が［データ］リポジトリのデータソースの番号（連番）として解釈されます。したがって、DSOURCE リテラルコードを式で使用することで、［データ］リポジトリの行に変更が加えられた時でも、式で指定したデータソースの番号が自動的に更新されるようになります。例えば、「'5'DSOURCE」は、［データ］リポジトリの5 番目のデータソースであることを示し、「5」という番号は、行の削除や追加に応じて自動的に更新されます。

注意：

V9Plus 以前の FILEリテラルと同じです。

'1'DSOURCE

ERR

文字列がデータベースエラーのエラーとして認識されます。対象となるエラーは、自動的にリトライする を参照してください。

'デッドロック'ERR

EVENT

文字列は、Magic xpaの内部イベントを示す文字列として解釈されます。イベントとは、ユーザの操作の結果、Magic xpaに送られる命令をいいます。イベントは、ユーザにより［キーボード割付］テーブルで定義されているキー操作が行われた時に発生します。Magic xpaの内部イベントは式の中で指定することができます。これによりユーザによる操作をチェックしたり、マクロを作ったりといった作業が可能です。

イベントの名前は、［設定／キーボード割付］テーブルの［内部イベント］カラムで確認できます。イベント文字列（例では、「'終了'EVENT」）では、このカラムに定義されているものを使用しなければなりません。なお、イベントの名前は最初の数文字を入力すると、後は自動的に入ります。ただし、名前が長い時には、少し長めに入力することも必要になります。

注意：

  • V9Plus 以前の ACTリテラルと同じです。

  • EVENTリテラルはリッチクライアントでは利用できません。

'終了'EVENT

EXP

文字列が［式］エディタの式の番号として認識されます。このリテラルコードは、通常、ExpCalc関数で使用します。EXPリテラルコードを使用することで、式の定義されている位置が変更された場合、EXPリテラルコードの前の文字列も自動的に更新されます。

'A'EXP

FORM

文字列が［フォーム］エディタ上の番号として認識されます。このリテラルコードは、通常、［タスク特性］の［メインフォーム］特性を定義する際に使用します。FORMリテラルコードを使用することで、フォームの定義位置が変更された場合、FORM リテラルコードの前の文字列も自動的に更新されます。

'2'FORM

INDEX

文字列は、［インデックス］テーブルに定義されているインデックスの番号（連番）として解釈されます。このINDEX リテラルを使用することで、［インデックス］テーブルの行の位置に変更があった時でも、INDEXリテラルのインデックスが自動的に行使されます。例えば、「'5'INDEX」は、［インデックス］テーブルの5番目のインデックスであることを示し、「5」という番号は、行の削除や追加に応じて自動的に更新されます。

注意：

V9Plus 以前の KEYリテラルと同じです。

'5'INDEX

KBD

文字列は、キーボード値として解釈されます。キーボード値とは、キーボードから入力されるキー名を指し、この値は、［キーボード割付］テーブルの設定にしたがってイベントに変換されます。同じキーに複数のイベントを設定することもでき、その場合、イベントはコンテキストによって別のものが実行されます。キーボード値は式で使用できます。これによりユーザによる入力のチェックやマクロの作成が可能です。

キーボード値の名前は、［設定／キーボード割付］テーブルの［キー］カラムで確認できます。KBD リテラルの文字列には、このパラメータで定義されているものを使用しなければなりません。

注意：

KBDリテラルはリッチクライアントタスクでは利用できません。

'F2'KBD

LOG

文字列は論理値（「True」 または「False」）として解釈されます。つまり、LOG リテラルコードの文字列は、「'TRUE'LOG」または「'FALSE'LOG」のいずれかとなります。「True」または「False」以外の文字の場合、自動的に「'FALSE'LOG」となります。

'TRUE'LOG

MENU

文字列は、メニュー名として解釈されます。'1'MENUは、［メニュー］リポジトリ内の最初のメニュー（通常は、デフォルトのプルダウンメニューになります。）を示しています。

'1'MENU

MODE

文字列は、タスク処理モードとして解釈されます。文字列としては、［タスク特性］の［初期モード］特性に指定できるいずれかのモードが指定できます。

'MC'MODE

PROG

文字列は、［プログラム］リポジトリに定義されているプログラムの番号（連番）として解釈されます。PROGリテラルを使用すると、［プログラム］リポジトリのプログラム行の位置が変わった時、PROGリテラルの直前の文字列が自動的に更新されます。例えば、「'5'PROG」は、［プログラム］リポジトリで5 行目に定義されているプログラムを示しますが、この「5」という文字は、［プログラム］リポジトリのプログラム行の位置が変わった場合、自動的に更新されます。

注意：

クロスリファレンスユーティリティを実行した場合、PROGリテラルを使用した式も検索対象になります。

'5'PROG

RIGHT

文字列が、権利IDとして認識されます。このRIGHTリテラルコードは、通常、Rights関数で使用します。開発者は、Rights関数を使用して、ユーザに与えられている権利をチェックできます。

なお、Rights関数を使用してユーザの権利を確認する場合、開発者に権利がない時には、そのリテラルが表示されます。

'RIGHT #4'RIGHT

TIME

文字列は、時刻として解釈されます。時刻の内部表現は数値であるため、算術演算に使用できます。

例えば、「'14:30:15'TIME+5」は式として有効で、「'14:30:15'TIME」という値に「5」が追加されます。（この場合、「5」は秒です。）

'14:30:15'TIME

VAR

文字列が項目のシンボル名として認識されます。このリテラルコードは、通常、VarAttr, VarCurr, VarMod, VarName, VarPrev, and VarSet の各関数で使用します。VAR リテラルコードを使用することで、項目の定義位置が変更された場合、VAR リテラルコードの前の文字列も自動的に更新されます。

'A'VAR


関数ディレクトリ

関数を使用することで、条件の設定、データの変換や操作、Magic xpaのパラメータへのアクセス、結果の取り出し、アクションの実行などの処理が可能です。

  • 関数一覧のダイアログを開くには、［式］エディタの左上の、 [image] アイコンをクリックしてください。

  • 関数リストを開くには、Ctrl+Spaceを押下してください。

関連トピック： 式エディタから関数一覧を開くには

関数グループ

Magic xpaは、以下の関数グループを提供しています。

.NET関数

Base64変換関数

COM関数

DLL関数

DDE関数

HTTP関数

Java関数

LDAP関数

Unicode関数

XML関数

Windowsダイアログ関数

アプリケーションサーバ関数

インタフェース関数

オフライン関数

セキュリティ関数

タスク関数

データベース関数

ドラッグ&ドロップ関数

バッファ保存関数

ベクトル関数

メール関数

ライセンス関数

項目関数

数値関数

他アプリ連携関数

動作環境関数

日付／時刻関数

日本語関数

入出力関数

文字列操作関数

変換関数

リッチクライアント関数

演算子

関数のアルファベット順の一覧

ABS

ACOS

AddDate

AddTime

AddDateTime

ANSI2OEM

AppName

ASCIIChr

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

CabinetUnload

CallDLL

CallDLLF

CallDLLS

CallJS

CallOBJ

CallProg

CallProgURL

CallURL

CaretPosGet

CASE

CDOW

CHeight

ChkDgt

Cipher

CLeft

CLeftMDI

ClickCX

ClickCY

ClickWX

ClickWY

ClientBlb2File

ClientCertificateAdd

ClientCertificateDiscard

ClientDbDel

ClientDbDiscnt

ClientDirDlg

ClientFile2Blb

ClientFileCopy

ClientFileDelete

ClientFileExist

ClientFileInfo

ClientFileListGet

ClientFileOpenDlg

ClientFileRename

ClientFileSaveDlg

ClientFileSize

ClientFileToServer

ClientGetUniqueMachineID

ClientNativeCodeExecute

ClientOSEnvGet

ClientSessionSet

ClientSessionStatisticsGet

ClipAdd

ClipRead

ClipWrite

ClrCache

CMonth

CndRange

CodePage

COMError

COMHandleGet

COMHandleSet

COMObjCreate

COMObjRelease

COS

Counter

CRC

CtrlGoto

CtrlHWND

CtxClose

CtxGetAllNames

CtxGetId

CtxGetName

CtxKill

CtxLstUse

CtxNum

CtxProg

CtxSetName

CtxSize

CtxStat

CurRow

CurrPosition

CWidth

CX

CY

DataViewToDataSource

DataViewToDNDataTable

DataViewToHTML

DataViewToText

DataViewToXML

DataViewVars

DataViewVarsIndex

Date

Day

DbCache

DbCopy

DbDel

DbDiscnt

DbERR

DbExist

DbName

DbRecs

DbReload

DbRound

DbSize

DbViewRowIdx

DbViewSize

DbXmlExist

DbXmlMixedGet

DbXmlMixedSet

DDEBegin

DDEEnd

DDEGet

DDEPoke

DDERR

DDExec

DeCipher

Del

Delay

DifDateTime

DirDlg

DiscSrvr

DNCast

DNException

DNExceptionOccurred

DNRef

DNSet

DOW

DragSetCrsr

DragSetData

DropFormat

DropGetData

DropMouseX

DropMouseY

DStr

DVal

EditGet

EditSet

EJBCreate

EJBExplore

EmptyDataview

EncryptionError

EOF

EOM

EOP

EOY

ErrDatabaseName

ErrDbmsCode

ErrDbmsMessage

ErrMagicName

ErrPosition

ErrTableName

EvalStr

EvalStrInfo

EXP

ExpCalc

File2Blb

File2OLE

File2Req

FileCopy

FileDelete

FileDlg

FileExist

FileInfo

FileListGet

FileRename

FileSize

Fill

Fix

Flip

Flow

FlwMtr

FormStateClear

GetComponentName

GetGUID

GetLang

GetParam

GetParamAttr

GetParamNames

GroupAdd

Han

HandledCtrl

Hour

HStr

HTTPCall

HTTPGet

HTTPLastHeader

HTTPPost

HVal

Idle

IF

IN

INIGet

INIGetLn

INIPut

Ins

InStr

InTrans

IOCurr

IsComponent

IsDefault

IsFirstRecordCycle

IsMobileClient

ISNULL

IsServerAvailable

JCall

JCallStatic

JCDOW

JCreate

JException

JExceptionOccurred

JExceptionText

JExplore

JGengo

JGet

JGetStatic

JInstanceOf

JMonth

JNDOW

JSet

JSetStatic

JYear

KbGet

KbPut

LastClicked

LastPark

LDAPConnect

LDAPDisconnect

LDAPError

LDAPGet

LDAPGroupAdd

LDAPGroupDel

LDAPUserAdd

LDAPUserDel

LDAPUserGroupAssign

LDAPUserGroupRemove

LDAPUserModify

Left

Len

Level

LIKE

Line

LMChkIn

LMChkOut

LMUVStr

LMVStr

LocateAdd

LocateReset

Lock

LOG

Logging

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

MarkedTextGet

MarkedTextSet

MarkText

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

Prog

ProgIdx

ProjectDir

PublicName

RAND

Range

RangeAdd

RangeReset

Rep

RepStr

RepV

Right

RightAdd

Rights

Rollback

Round

RqContexts

RqCtxInf

RqCtxTrm

RqExe

RqHTTPHeader

RqHTTPStatusCode

RqLoad

RqQueDel

RqQueLst

RqQuePri

RqReqInf

RqReqLst

RqRtApp

RqRtApps

RqRtBlock

RqRtCtx

RqRtCtxs

RqRtInf

RqRtResume

RqRts

RqRtTrm

RqRtTrmEx

RqStat

RqTrmTimeout

RTrim

RunMode

Second

ServerFileToClient

ServerLastAccessStatus

SetBufCnvParam

SetContextFocus

SetCrsr

SetLang

SetParam

SetWindowFocus

SharedValGet

SharedValGetAttr

SharedValGetNames

SharedValPack

SharedValSet

SharedValUnPack

SIN

SNMPNotify

SortAdd

SortReset

SoundX

Stat

StatusBarSetText

Str

StrBuild

StrToken

StrTokenCnt

StrTokenIdx

SubformExecMode

TAN

TaskID

TaskInstance

TaskTypeGet

TDepth

Term

Text

THIS

Time

Translate

TranslateNR

TransMode

TreeLevel

TreeNodeGoto

TreeValue

Trim

TStr

TVal

UDF

UDFF

UDFS

UnicodeChr

UnicodeFromANSI

UnicodeToANSI

UnicodeVal

UnLock

Upper

User

UserAdd

UserDel

UTCDate

UTCmTime

UTCTime

UTF8FromAnsi

UTF8ToAnsi

Val

VarAttr

VarCurr

VarCurrN

VarDbName

VariantAttr

VariantCreate

VariantGet

VariantGetVector

VariantType

VarIndex

VarInp

VarMod

VarName

VarPic

VarPrev

VarSet

VecCellAttr

VecGet

VecSet

VecSize

ViewMod

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


関数ディレクトリ NET関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > NET関数

.NET関数

.NETオブジェクトを処理したり操作するために、Magic xpaには以下の関数が提供されています。

DataViewToDNDataTable …… データビューから.NETデータテーブルオブジェクトを作成

DNCast …… データタイプの変換を行います。

DNException …… 例外情報を取得します。

DNExceptionOccurred …… 例外発生を通知します。

DNRef …… 参照情報を取得します。

DNSet …… .NETオブジェクトのプロパティを設定します。


関数ディレクトリ BAse64変換関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Base64変換関数

Base64変換関数

BlobFromBase64 …… BASE64でエンコードされたBLOBデータをデコードします。

BlobToBase64 …… BLOBデータをBASE64でエンコードします。


関数ディレクトリ COM関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > COM関数

COM関数

COMError …… Magic xpaがCOM オブジェクトをアクセスした時に発生した最後のエラー情報を取得します。

COMHandleGet …… ロードされたCOM オブジェクトのハンドルを取得します。

COMHandleSet …… COMHandleGet 関数によって返されたハンドル番号と、COM オブジェクト項目から以前にロードされたオブジェクトを参照します。

COMObjCreate …… オブジェクトが定義された変数項目を基にCOM オブジェクトのインスタンスを作成します。

COMObjRelease …… COMObjCreate関数や自動インスタンス化設定によってロードされたCOM オブジェクトを解放します。


関数ディレクトリ DDE関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > DDE関数

DDE関数

DDEは、Magic xpaの関数を使用して実行します。つまり、関数を使用してDDE 通信を開始し、その後、通信を終了し、Magic xpaに戻るという操作が必要です。Magic xpaでのDDEは「コールドリンク」です、必ず、Magic xpaからDDE通信を開始しなければなりません。また、DDEに関連するデータに対して、別のアプリケーションで変更が加えられても、その変更は自動的にはMagic xpaには伝えられません。また、そのデータがDDEを介してMagic xpaに取り込まれた時にも、その変更は認識されません。

DDEサーバアプリケーションとMagic xpaとの間で通信が実行される場合、そのDDEサーバアプリケーションがオンラインで稼働している必要があります。DDEサーバがオンラインで動作していない状態でMagic xpaからDDEサーバに対してアクセスが試みられた時には、サーバはロードされず、そのためDDE処理は実行されません。

クライアントアプリケーションからアクセスが実行された場合、DDEサーバ上では、フォーカスが発生することはありません。Magic xpaのDDE関数によりサーバアプリケーション上でエラーが引き起こされた時には、エラーダイアログが出力されますが、上記の理由から、このダイアログにはフォーカスは提供されません。したがって、Magic xpaのDDE処理はタイムアウトになり処理は失敗します。

DDE関数は同期モードで実行されます。これは、Magic xpaが DDE関数の終了を待ってから次の処理に移ることを意味します。

注意：

DDE関数は、Windowsでのみ利用できます。異なるOSでこの関数を使用した場合、以下のように動作します。

  • DDEGet関数 …… 空白を返します。

  • DDEPoke／DDExec関数 …… 常に「False」を返します。

  • DDERR関数 …… 常に「15」が返ります。

関連トピック：

DDEBegin

DDEEnd

DDEGet

DDEPoke

DDERR

DDExec


関数ディレクトリ DLL関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > DLL関数

DLL関数

CallDLL …… Magic xpaからCDECL呼び出し規約でDLLを呼び出します。

CallDLLF …… Magic xpaからFASTCALL呼び出し規約でDLLを呼び出します。

CallDLLS …… Magic xpaからSTDCALL呼び出し規約でDLLを呼び出します。


関数ディレクトリ HTTP関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > HTTP関数

HTTP関数

ClientCertificateAdd …… 動作環境の[SSLクライアント証明書ファイル]に設定されたクライアント証明書以外の証明書を指定します。

HTTPCall …… HTTPリクエストを処理し、結果を取得します。（HTTPGetやHTTPPostを使用している場合は、こちらを使用するようにしてください）。

HTTPGet …… HTTPリクエストの結果として返されるHTMLをBLOBとして取得します。

HTTPLastHeader …… HTTPGet/HTTPPost関数で取得した 直近のHTTPリクエストのヘッダ情報を取得します。

HTTPPost …… HTTP メッセージ経由で情報を渡したり、HTTP リクエストの戻り値としてのHTML/XML 結果を形式で取得します。

RqHTTPHeader …… バッチプログラムがHTTPリクエスタを送信する際の HTTPヘッダ情報を設定します。

RqHTTPStatusCode …… HTTPの戻り状態を制御します。


関数ディレクトリ Java関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Java関数

Java関数

CodePage …… Magic xpaがデータの入出力時に使用するコードページを指定します。

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 の関数


関数ディレクトリ LDAP関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > LDAP関数

LDAP関数

LDAPConnect …… LDAPによる別のセッションを作成します。

LDAPDisconnect …… LDAPセッションを終了します。

LDAPError …… LDAP処理に対するエラーメッセージを取得します。

LDAPGet …… LDAP内のデータの検索を行います。

LDAPGroupAdd …… グループをLDAPに追加します。

LDAPGroupDel …… グループをLDAPから削除します。

LDAPUserAdd …… ユーザをLDAPに追加します。

LDAPUserDel …… ユーザをLDAPから削除します。

LDAPUserGroupAssign …… ユーザをLDAP上のグループに追加します。

LDAPUserGroupRemove …… ユーザをLDAP上のグループから削除します。

LDAPUserModify …… LDAP上のユーザ情報を更新します。


式とUnicode Unicode関数

Unicode関数

UnicodeChr …… 指定された文字コードをUnicode文字に変換します。

UnicodeFromANSI …… ANSI文字列を指定されたコードページに基づいてUnicode文字列に変換します。

UnicodeToANSI …… Unicode文字列を指定されたコードページに基づいてANSI文字列に変換します。

UnicodeVal …… Unicode文字を文字コードに変換します。


関数ディレクトリ XML関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > XML関数

XML関数

汎用関数

XMLStr …… 正規のXML表記を予約語を使用したXML表記に変換します。

XMLVal …… 予約語を使用したXML表記を正規の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を書き込みます。

関連トピック：

CDATA セクション

参考：

  • XMLデータの中に、encoding の指定を常に行うようにしてください。encoding の指定が無い場合に、タグ名にDBCSが使えないなどの問題が起こることがあります。

  • XML中のタグの指定に&lt; &gt; が使用されている場合は、処理されません。

  • データ内の文字列に、&lt; &gt; などの特殊文字（XMLStr を参照）が含まれている場合は、デコード（「<」、「>」文字への変換）されます。

  • XML関数は、リッチクライアントではサポートされません。


関数ディレクトリ Windowsダイアログ関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Windowsダイアログ関数

Windowsダイアログ関数

DirDlg …… Windowsの［ディレクトリ選択］ダイアログボックスを開き、選択したディレクトリの名前を取得します。

FileDlg …… Windows の［ファイルを開く］ダイアログをオープンします。


関数ディレクトリ アプリケーションサーバ関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > アプリケーションサーバ関数

アプリケーションサーバ関数

BLOB2Req …… BLOB内のデータをリクエスタで送信します。

CtxClose …… コンテキストを正常にクローズさせます。

CtxGetAllNames …… アクティブになっているか実行可能な全コンテキストのリストを取得します。

CtxGetId …… コンテキスト名よりコンテキストIDを取得します。

CtxGetName …… 現在のコンテキストの名前を取得します。

CtxKill …… コンテキストテーブルに存在する任意のコンテキストを削除します。

CtxLstUse …… コンテキストテーブルに存在する任意のコンテキストが最後に有効になってからの経過時間を秒単位で取得します。

CtxNum …… アプリケーションサーバ上で有効なコンテキストの数を取得します。

CtxProg …… コンテキストテーブルに存在する任意のコンテキストの最上位レベルのプログラム名を取得します。

CtxSetName …… 現在のコンテキストの名前を設定します。

CtxSize …… コンテキストテーブルに存在する任意のコンテキストのサイズ（バイト単位）を取得します。

CtxStat …… コンテキストテーブルに存在する任意のコンテキストの状態を取得します。

DiscSrvr …… 不必要なサーバ接続を開放します。

File2Req …… 指定されたファイルの内容をMRBに送信します。

IsMobileClient …… セッションがモバイル端末で開始されたかどうかを取得します。

RqContexts …… 実行中のコンテキスト毎のMRBの情報を取得します。

RqCtxInf …… コンテキストID に対応したコンテキストの情報を取得します。

RqCtxTrm …… コンテキストを終了させます。

RqExe …… MRB が起動しているコンピュータにリクエストを送り、指定された実行可能エンジンをロードするように指示します。

RqHTTPHeader …… バッチプログラムがHTTPリクエスタを送信する際の HTTPヘッダ情報を設定します。

RqHTTPStatusCode …… 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 xpaのメモリ上に格納される共有値を作成します。

SharedValGetAttr …… 共有値の書式を取得します。（サポートバージョン：2.3）

SharedValGetNames …… 共有値の名前を取得します。（サポートバージョン：2.3）

Text …… サーバがバックグラウンドモードで機能しているかどうかを確認します。

WSConsumerAttachmentAdd …… コンシューマWebサービスプログラムが使用することにより、SOAPリクエストにアタッチメントを付加します。

WSConsumerAttachmentGet …… コンシューマWebサービスプログラムが使用することにより、SOAP応答のからアタッチメントを取り出します。

WSProviderAttachmentAdd …… WebサービスメッセージにBLOB項目を添付します。

WSProviderAttachmentGet …… Webサービスメッセージに添付されているDIME仕様のデータを取り出します。

WsSetIdentity …… 現在のコンテキストに対するIDを設定します。


関数ディレクトリ インタフェース関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > インタフェース関数

インタフェース関数

CHeight …… 指定したコントロール、またはカーソルが最後にパークしたコントロールの高さを取得します。

ClickCX …… 最後にクリックしたコントロールのクリック位置（X 座標）をコントロール上の座標で取得します。

ClickCY …… 最後にクリックしたコントロールのクリック位置（Y 座標）をコントロール上の座標で取得します。

ClickWX …… 最後にクリックしたウィンドウ（フォーム）のクリック位置（X 座標）を取得します。

ClickWY …… 最後にクリックしたウィンドウ（フォーム）のクリック位置（Y 座標）を取得します。

CtrlGoto …… カーソルを指定したコントロールに移動します。

CtrlHWND …… コントロールのウィンドウハンドル値を取得します。

CurRow …… [テーブル]コントロール上での現在の行番号を取得します。

CWidth …… 指定したコントロールまたはカーソルが最後にパークしたコントロールの幅の値を取得します。

CX …… 指定したコントロール、またはカーソルが最後にパークしたコントロールのフォーム内でのX 座標値を取得します。

CY …… 指定したコントロール、または最後にパークしていたコントロールの、フォーム基準のY 座標値を取得します。

FormStateClear …… フォームの永続状態をクリアにします。

LastClicked …… 最後にクリックされたコントロールの名前を取得します。

LastPark …… 指定タスクのフォーム内で、最後にカーソルがパークしていたコントロール名を取得します。

SetCrsr …… カーソル形状を変更します。

StatusBarSetText …… ステータスバーの文字列を取得します。

TreeNodeGoto …… 指定されたツリーノードにパークします。

WinBox …… ウィンドウのX 座標、Y 座標、幅、高さを取得します。

WinHWND …… Magic xpaのウィンドウに対応するWindows のウィンドウハンドル（HWND ）を取得します。

WinMaximize …… Magic xpaのウィンドウを最大表示します。

WinMinimize …… Magic xpaのウィンドウをアイコン化します。

WinRestore …… Magic xpaのウィンドウを通常のサイズに戻します。


オフライン関数

ServerLastAccessStatus …… サーバに最後のアクセスしたときの状態を返します。

ClientDbDel …… クライアント側のデータソースを削除します。

ClientDbDiscnt …… クライアント側のデータベースを切断します。

DataViewToDataSource …… データビューの内容をデータソースにコピーします。


関数ディレクトリ セキュリティ関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > セキュリティ関数

セキュリティ関数

GroupAdd …… アプリケーション上で、セキュリティファイルのユーザグループにユーザを追加します。

LMChkIn …… 指定されたライセンスのユーザインスタンスの中でチェックインします。

LMChkOut …… ユーザが指定したフィーチャライセンスのユーザインスタンスをチェックアウトします。

LMUVStr …… LMChkOut関数でユーザによってチェックアウトしたライセンスのVENDOR_STRINGの値を取得します。

LMVStr …… MagicエンジンがチェックアウトしたライセンスのVENDOR_STRINGの値を取得します。

Logon …… 一時的に指定されたユーザとして現在のアプリケーションにアクセスします。

RightAdd …… セキュリティファイルに定義されているユーザに対して権利を割当てます。

Rights …… 権利がユーザに与えられているかどうかを確認します。

User …… [ユーザID]テーブルに記録されているユーザ情報を取得します。

UserAdd …… セキュリティファイルにユーザを追加します。

UserDel …… Magic xpaのセキュリティファイルから指定されたユーザを削除します。


関数ディレクトリ タスク関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > タスク関数

タスク関数

CallProg …… Magic xpaのプログラムを呼び出します。

Counter …… バッチタスクでレコードレベルの処理が何回行われたかをカウントします。

DataViewToDNDataTable …… 現在のデータビューから.NETデータテーブルオブジェクトを作成します。

DataViewToHTML …… データビューからHTMLファイル作成します。

DataViewToText …… データビューからテキストファイル作成します。

DataViewToXML …… データビューからXMLファイル作成します。

DataViewVars …… [データ出力ウィザード]イベントが実行された時のフォーム上の項目を取得します。

Delay …… 現在の処理を一時的に中断します。

EmptyDataView …… データビューが空の場合、Trueを取得します。

Flow …… 操作のフローモードを確認します。

FlwMtr …… Magic xpaフローモニタにメッセージを表示させます。

GetComponentName …… 現在のコンポーネントの名前を取得します。

GetGUID …… プロジェクトのGUIDを取得します。

GetLang …… 現在使用している言語を取得します。

GetParam …… プログラムにグローバルパラメータとして渡されているパラメータの値を取得します。

GetParamAttr …… グローバルパラメータの型を取得します。 （サポートバージョン：2.3）

GetParamNames …… グローバルパラメータの名前を取得します。（サポートバージョン：2.3）

HandledCtrl …… ハンドラが起動されたコントロールの名前を取得します。

Idle …… キー操作が実行された後、操作が行われていない時間を取得します。

InTrans …… トランザクションが現在オープンしているかどうかを確認します。

IsComponent …… 実行されたプログラムやハンドラがコンポーネントアプリケーションのものかホストアプリケーションのものかを確認します。

IsFirstRecordCycle …… タスク内の最初のレコードサイクルかどうかを確認します。 この情報は、［タスク前］の後で取得されたデータに基づく実行ロジックに対してや、タスク起動時に一度だけ実行されるロジックに対して利用できます。

KbGet …… 直前のキー入力／アクションを取得します。

KbPut …… アクションまたはキー操作をシミュレートします。

Level …… タスクの実行レベルを確認します。

LocateAdd …… 位置付の条件を追加します。

LocateReset …… タスクのロジックにもとづいて位置付の条件をリセットします。

Lock …… 一定の時間内に一人のユーザのみによって占有される仮想的なリソースを作成し、テーブルの行やタスクをロックします。

LoopCounter …… ブロックループ処理時の現在のループ回数を取得します。

MainDisplay …… 現在表示されているフォームのインデックスを取得します。

MainLevel …… タスクのメインレベルを取得します。

Menu …… メニュー経路を取得します。

MenuIdx …… メニュー経路を取得します。

MMClear …… マルチマークされた行をクリアします。

MMCount …… マルチマークされた行数を取得します。

MMCurr …… マークされた行の中の現在処理中の行を取得します。

MMStop …… マルチマークハンドラを中断します。

MnuAdd …… プログラム内で動的にメニュー構造を追加します。

MnuCheck …… メニュー項目の前のチェックマークの表示／非表示を設定します。

MnuEnabl …… メニュー項目の有効／無効を設定します。

MnuName …… 指定したメニューのユーザメニュー名を変更します。

MnuRemove …… メニュー構造を削除します。

MnuReset …… 動的に変更されたメニューを初期化します。

MnuShow …… メニュー項目の表示／非表示を設定します。

Prog …… 現在のタスクのパスを取得します。

ProgIdx …… プログラムリポジトリ番号を取得します。

ProjectDir …… プロジェクトファイルが保存されているディレクトリ名を取得します。

PublicName …… 実行中のプログラムの公開名を取得します。

RangeAdd …… 範囲付の条件を追加します。

RangeReset …… タスクのロジックにもとづいて範囲付の条件をリセットします。

Rollback …… ネストレベルを指定し、その位置までトランザクションをロールバックします。

RunMode …… エンジンの実行モードに対応する数値コードを取得します。

SetLang …… 使用する言語を設定します。

SetParam …… グローバルパラメータを設定します。

SetWindowFocus …… フォーカスをウィンドウリスト内の別のウィンドウに移します。

SharedValGet …… 指定された名前に基づいて共有された値を取得します。

SharedValSet …… Magic xpaのメモリ上に格納される共有値を作成します。

SharedValGetAttr …… 共有値の型を取得します。（サポートバージョン：2.3）

SharedValGetNames …… 共有値の名前を取得します。（サポートバージョン：2.3）

SortAdd …… ソート条件を追加します。

SortReset …… タスクロジックにもとづいてソート条件をリセットします。

Stat …… タスクのモードを確認します。

SubformExecMode …… サブフォームの実行モードを取得します。

TaskID …… 実行中のタスクIDを取得します。

TaskInstance …… 実行タスクのインスタンスを取得します。

TaskTypeGet …… タスクタイプﾟを取得します。

TDepth …… 現在のタスクのネスト情報を取得します。

THIS …… イベントが発生したデータ項目のインデックスまたはタスクの階層を表します。

TransMode …… 現在アクティブなトランザクションのモードを取得します。

TreeLevel …… データツリー上の選択されたノードの現在のレベルを取得します。

TreeNodeGoto …… データツリーの指定されたノードIDにカーソルを移動します。

TreeValue …… 選択されたノードの現在のレベルによって決定されたノードIDを取得します。

UnLock …… Lock関数によってロックされたリソースを解除します。

ViewMod …… データビューのレコードが読み込まれた後、そのレコードが修正されたかどうかを確認します。


関数ディレクトリ データベース関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > データベース関数

データベース関数

ClrCache …… 現在のタスクのデータキャッシュをクリアします。

CurrPosition …… 現在のタスクのメインソースのレコードの位置を取得します。

DbCache …… キャッシュのヒット率（整数）を取得します。

DbCopy …… 既存のデータソースのコピーを行います。

DbDel …… ［データ］リポジトリに定義されているデータソースを削除します。

DbDiscnt …… データベースの現在の接続を切断します。

DbERR …… データベースのエラーメッセージを返したり消したりします。

DbExist …… データソースがディスクに存在するかどうかを確認します。

DbName …… ［データ］リポジトリのデータソースの名前を取得します。

DbRecs …… データソースにある行（レコード）の数をカウントします。

DbReload …… 実行時に常駐テーブルを読み込みます。

DbRound …… 指定した小数点で数値を四捨五入します。

DbSize …… データソースのサイズを取得します。

DbViewRowIdx …… キャッシュされたビュー内のレコードの連番を取得します。

DbViewSize …… キャッシュされたレコード数を取得します。

DbXmlExist …… XNLビューにレコードが存在するかどうかをチェックします。

DbXmlMixedGet …… 混在内容のXML要素からテキストを取得します。

DbXmlMixedSet …… 混在内容のXML要素にテキストを設定します。

EmptyDataView …… データビューが空の場合、Trueを取得します。

ErrDatabaseName …… エラーが発生したデータベースの名前を取得します。

ErrDbmsCode …… エラーが発生したDBMS のオリジナルのエラーコードを取得します。

ErrDbmsMessage …… エラーが発生したDBMS のオリジナルのエラーメッセージを取得します。

ErrMagicName …… 発生した（リテラル付きの）エラーメッセージを取得します。

ErrPosition …… エラーが発生したレコードの位置を取得します。

ErrTableName …… エラーが発生したDB テーブル名を取得します。

InTrans …… トランザクションが現在オープンしているかどうかをチェックします。

LocateAdd …… 位置付の条件を追加します。

LocateReset …… タスクのロジックに基づいて位置付の条件をリセットします。

Logging …… プログラム内で動的にアクティビティモニタのフィルタ指定（有効／無効）を指定します。

MTblGet …… メモリテーブルの内容をBLOBデータに変換します。

MTblSet …… （MTblGetで作成された）BLOB項目の内容をメモリテーブルに展開します。

RangeAdd …… 範囲付の条件を追加します。

RangeReset …… タスクのロジックに基づいて範囲付の条件をリセットします。

Rollback …… ネストレベルを指定し、その位置までトランザクションをロールバックします。

SortAdd …… ソート条件を追加します。

SortReset …… タスクのロジックに基づいてソート条件をリセットします。

TransMode …… 現在アクティブなトランザクションのモードを取得します。

ViewMod …… データビューのレコードが読み込まれた後、そのレコードが修正されたかどうかをチェックします。


関数ディレクトリ ドラッグ&ドロップ関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ドラッグ&ドロップ関数

ドラッグ&ドロップ関数

DragSetCrsr …… 指定したカーソルファイルがドラッグ操作によってコピー可か否かのモードとして定義します。この関数は、リッチクライアントタスクではサポートされません。

DragSetData …… 自動的にドラッグ処理されないコントロールのデータ内容やフォーマットを定義します。この関数は、データ内容を異なるデータフォーマットに割り当てる処理も行います。

DropFormat …… 定義されたデータフォーマットがMagic xpaの Drop関数でサポートされているかどうかを確認します。

DropGetData …… 定義されたフォーマットでドラッグしたデータを取り出します。

DropMouseX …… ドラッグしたデータをドロップした時のフォームの X座標（フォームの寸法単位）値を取得します。

DropMouseY …… ドラッグしたデータをドロップした時のフォームのY座標（フォームの寸法単位）値を取得します。

関連トピック：

ドラッグ&ドロップでデータをコピーするには

外部アプリケーションにデータをドラッグ&ドロップするには


関数ディレクトリ バッファ保存関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > バッファ保存関数

バッファ保存関数

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 xpa側のデータ型を取得します。

VariantCreate …… 指定したデータから Variant値を作成します。

VariantGet …… 指定したVariantデータに対する値を取得します。

VariantGetVector …… Variantデータタイプのベクトル値を取得します。

VariantType …… Variantデータタイプの記憶形式を取得します。

VecCellAttr …… ベクトル項目のベクトルセルのデータ型を取得します。

VecGet …… ベクトル項目の指定したセルのデータを取得します。

VecSet …… ベクトル項目の指定したセルのデータを更新します。

VecSize …… ベクトル項目のセルの数を取得します。


関数ディレクトリ ベクトル関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ベクトル関数

ベクトル関数

Magic xpaでのベクトルとは、指定されたセルインデックスからデータを格納したり検索することのできる配列です。ベクトル型は、[セルモデル]特性が追加された BLOB 型に基づいています。

ベクトルのセルは、[モデル]リポジトリで定義された項目モデルから指定しなければなりません。セルモデルには、あらゆる項目のデータ型（文字、数値、論理、時刻、日付、メモ、BLOB、OLE 、ActiveX 、ベクトル）を指定できます。

ベクトルのインデックス付けは、１から始まります。ベクトル型は、変数とパラメータ項目でのみ指定できます。テーブルのカラムには指定できません。

ベクトルのベクトル（2次元）を作成することができます。

セルモデルに同じベクトル型のモデルは使用できません。

再帰的ベクトル定義は、サポートされません。また、ベクトル型の項目を、フォームに配置できません。多量のデータをベクトルに格納しないようにしてください、この内容はメモリ上に格納されるためメモリを消費します。

ベクトル関数を使用することによってベクトルセルの内容を参照したり更新したりすることができます。

BufGetVector …… BLOBバッファ内の指定された位置の値をベクトル値に変換します。

BufSetVector …… ベクトルデータをBLOBバッファ指定した位置に挿入します。

VecCellAttr …… ベクトル項目のベクトルセルのデータ型を取得します。

VecSet …… ベクトル項目の指定したセルのデータを更新します。

VecGet …… ベクトル項目の指定したセルのデータを取得します。

VecSize …… ベクトル項目のセルの数を取得します。


関数ディレクトリ マルチマーク関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > マルチマーク関数

マルチマーク関数

サポートバージョン：

2.3

ここでは、マルチマーク関数の説明を行います。

MMClear …… マルチマークされた行をクリアします。

MMCount …… マルチマークされた行数を取得します。

MMCurr …… マークされた行の中の現在処理中の行を取得します。

MMStop …… マルチマークハンドラを中断します。


関数ディレクトリ メール関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > メール関数

メール関数

ここでは、メール関数の説明を行います。

注意：

メール関数は、ANSIとUTF-8のみサポートします。unicodeはサポートしていません。

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 …… メールの送信を行います。


関数ディレクトリ メニュー関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > メニュー関数

メニュー関数

Menu …… 在のプログラムに至るまでのメニュー経路を取得します。

MenuIdx …… 指定されたメニュー名に対応する[メニュー]リポジトリ上の番号を取得します。

MnuAdd …… メニュー構造を現在実行中のプルダウンメニューに追加します。

MnuCheck …… メニュー項目の前のチェックマークの表示/非表示を設定します。

MnuEnabl …… メニュー項目の有効/無効を設定します。

MnuName …… ユーザメニュー名を変更します。

MnuRemove …… MnuAdd関数で追加されたメニュー構造を削除します。

MnuReset …… デフォルトのプルダウンメニュー構造に戻します。

MnuShow …… メニュー項目の表示/非表示を設定します。


関数ディレクトリ ライセンス関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ライセンス関数

ライセンス関数

LMChkIn …… 指定されたライセンスのユーザインスタンスの中でチェックインします。

LMChkOut …… ユーザが指定したフィーチャライセンスのユーザインスタンスをチェックアウトします。

LMUVStr …… LMChkOut関数でユーザによってチェックアウトしたライセンスのVENDOR_STRINGの値を取得します。

LMVStr …… MagicエンジンがチェックアウトしたライセンスのVENDOR_STRINGの値を取得します。


関数ディレクトリ 項目関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 項目関数

項目関数

CaretPosGet …… エディットコントロールのキャレットの位置を取得します。

DataViewToDNDataTable …… 現在のデータビューから.NETデータテーブルオブジェクトを作成します。

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 …… 項目のオリジナルのデータソースとカラムの名前を取得します。

VarPic …… 指定した項目の書式を取得します。

VarPrev …… 項目のオリジナルの値を取得します。

VarSet …… 項目に値を設定します。


関数ディレクトリ 数値関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 数値関数

数値関数

乗算演算子

加算演算子

減算演算子

除算演算子

指数演算子

ABS …… 実数の絶対値を取得します。

ACOS …… 角度の逆余弦（アークコサイン）がラジアンで取得します。

ASIN …… 角度の逆正弦（アークサイン）がラジアンで取得します。

ATAN …… 角度の逆正接（アークタンジェント）がラジアンで取得します。

ChkDgt …… 検査数字（チェックディジット）を作成します。

COS …… 角度の余弦（コサイン）を取得します。

EXP …… 指数を計算します。

Fix …… 数値（実数または整数）を指定し、その一部を切り取ります。

HStr …… 10 進数を16 進数に変換します。

LOG …… 指定した数値の自然対数を取得します。

MAX …… 複数の値を指定し、その中の最大値を取得します。

MIN …… 複数の値を指定し、その中の最小値を取得します。

MOD …… 整数を除算したときの余りを取得します。

MStr …… 数値を指定された長さ（バイト数）のMagic数字に変換します。

RAND …… 乱数を生成します。

Range …… 値と範囲を指定し、その値が指定した範囲にあるかどうかをチェックします。

Round …… 数値の一部を取り出し、その結果を四捨五入します。

SIN …… 角度の正弦（サイン）がラジアンで取得します。

Str …… 数値を文字列に変換します。

TAN …… 角度の正接（タンジェント）がラジアンで取得します。

関連トピック：

演算子


関数ディレクトリ 他アプリ連携関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 他アプリ連携関数

他アプリ連携関数

BLOBFromBase64 …… BASE64でエンコードされたBLOBデータをデコードします。

BLOBToBase64 …… BLOBデータをBASE64でエンコードします。

BrowserGetContent …… [ブラウザ]コントロール内に表示されたhtmlの内容を取得します。

BrowserScriptExecute …… [ブラウザ]コントロールに定義されたスクリプトコマンド（JavaScript、VBスクリプト）を実行します。

BrowserSetContent …… フォーム上の[ブラウザ]コントロールに表示内容を設定します。

CallDLL …… Magic xpaからCDECL呼び出し規約でDLLを呼び出します。

CallDLLF …… Magic xpaからFASTCALL呼び出し規約でDLLを呼び出します。

CallDLLS …… Magic xpaから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 xpaがCOM オブジェクトをアクセスした時に発生した最後のエラー情報を取得します。

COMHandleGet …… ロードされたCOM オブジェクトのハンドルを取得します。

COMHandleSet …… COMHandleGet 関数によって返されたハンドル番号と、COM オブジェクト項目から以前にロードされたオブジェクトを参照します。

COMObjCreate …… オブジェクトが定義された変数項目を基にCOM オブジェクトのインスタンスを作成します。

COMObjRelease …… COMObjCreate関数や自動インスタンス化設定によってロードされたCOM オブジェクトを解放します。

DbXmlMixedGet …… 混在内容のXML要素からテキストを取得します。

DbXmlMixedSet …… 混在内容のXML要素にテキストを設定します。

DDEBegin …… DDE サーバとのセッションの確立を明示的に開始します。

DDEEnd …… DDE サーバとのセッションを明示的に終了させます。

DDEGet …… 指定したDDE サービスから文字列を取り出します。

DDEPoke …… Magic xpaからDDE サーバアプリケーションに対して文字列を転送します。

DDERR …… Magic xpaのDDE 処理の際に発生したエラーを取得します。

DDExec …… Magic xpaからDDE サーバへ、コマンド文字列を転送します。

DeCipher …… 暗号化されたバッファを 文字列や BLOBを含むバッファに変換します。

DNCast …… Magicデータを.NET用にデータ型を変換します。

DNException …… .NET処理で発生した直近の例外の疑似参照を取得します。

DNExceptionOccurred …… 直近の.NET処理で例外が発生したことを通知します。

DNRef …… 項目の参照情報が戻ります。

DNSet …… .NETアセンブリオブジェクトにプロパティを設定します。

DragSetCrsr …… 指定したカーソルファイルがドラッグ操作によってコピー可か否かのモードとして定義します。

DragSetData …… 自動的にドラッグ処理されないコントロールのデータ内容やフォーマットを定義します。

DropFormat …… 定義されたデータフォーマットがMagic xpaの Drop関数でサポートされているかどうかを確認します。

DropGetData …… 定義されたフォーマットでドラッグしたデータを取り出します。

DropMouseX …… ドラッグしたデータをドロップした時のフォームの X座標（フォームの寸法単位）値を取得します。

DropMouseY …… ドラッグしたデータをドロップした時のフォームのY座標（フォームの寸法単位）値を取得します。

EncryptionError …… 暗号／復号化処理のエラーメッセージを取得します。

HTTPCall …… HTTPリクエストを送り、結果として返される応答を受け取ります。

HTTPGet …… HTTPリクエストの結果として返されるHTMLをBLOBとして取得します。

HTTPLastHeader …… HTTPGet/HTTPPost関数で取得した 直近のHTTPリクエストのヘッダ情報を取得します。

HTTPPost …… HTTP メッセージ経由で情報を渡したり、HTTP リクエストの戻り値としてのHTML/XML 結果を形式で取得します。

LDAPConnect …… LDAPによる別のセッションを作成します。

LDAPDisconnect …… LDAPセッションを終了します。

LDAPError …… LDAP サーバの直近のエラーメッセージを取得します。

LDAPGet …… LDAPサーバのディレクトリに格納されているユーザ情報を取得します。

LDAPGroupAdd …… グループをLDAPに追加します。

LDAPGroupDel …… グループをLDAPから削除します。

LDAPUserAdd …… ユーザをLDAPに追加します。

LDAPUserDel …… ユーザをLDAPから削除します。

LDAPUserGroupAssign …… ユーザをLDAP上のグループに追加します。

LDAPUserGroupRemove …… ユーザをLDAP上のグループから削除します。

LDAPUserModify …… 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 …… メールの送信を行います。

SetContextFocus …… 指定されたコンテキストの現在のウィンドウにフォーカスを設定します。

SNMPNotify …… アプリケーションで定義されたトラップメッセージをNMSに送信します。

UDF …… C言語で書かれたユーザ関数呼び出します。

UDFF …… C言語で書かれたユーザ関数呼び出します。（FASTCALL形式）

UDFS …… C言語で書かれたユーザ関数呼び出します。（STDCALL形式）

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関数に基づくエラーの一覧を取得します。


関数ディレクトリ 動作環境関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 動作環境関数

動作環境関数

ANSI2OEM …… ANSI文字セットの文字列をOEM文字セットに変換します。

AppName …… アプリケーションの名前を取得します。

INIGet …… MAGIC.INI ファイルの環境設定値を取得します。

INIGetLn …… セクションと行番号を指定し、MAGIC.INI ファイル内のパラメータ名と値を取り出します。

INIPut …… MAGIC.INIファイルの環境値を更新します。

OEM2ANSI …… OEM文字セットの文字列をANSI文字セットに変換します。

OSEnvGet …… 指定したOSの環境変数の値を文字列で取得します。

OSEnvSet …… 指定したOSの環境変数に値を指定します。指定された環境変数は、Magic xpaが終了するまで有効です。

Owner …… MAGIC.INI のOwnerパラメータの値を取得します。

ParamsPack …… （SetParam 関数で設定された） グローバル変数をBLOBにパッケージ化します。

ParamsUnPack …… ParamsPack 関数で作成されたBLOB値をグローバル変数に変換します。

SetLang …… 使用する言語を設定します。

SharedValPack …… SharedValSet関数によって設定され、共有化された値のコレクションをBLOB変数の中にパッケージ化します。

SharedValUnpack …… SharedValPack関数を使用して作成されたBLOB値から、SharedValGet関数によって作成された共有値を作成します。

Term …… [動作環境]ダイアログの[端末番号]欄に指定されている値を取得します。


関数ディレクトリ 日付／時刻関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 日付／時刻関数

日付／時刻関数

日付関数

AddDate …… 日付を指定し、その日付に年数、月数、日数を加算します。

BOM …… 指定した月の最初の日付を取得します。

BOY …… 指定した年の最初の日付を取得します。

CDOW …… 指定した日付または日付式に対応する、英語の曜日名（Sunday など）を取得します。

CMonth …… 指定した日付または日付式の月の名前（英語）を取得します。

Date …… システム日付を取得します。

Day …… 日付の日（1～31）を取得します。

DifDateTime …… Datetime値の差分を計算します。

DOW …… 日付から曜日番号を取得します。

DStr …… 日付または日付式を文字列に変換します。

DVal …… 文字列を日付型に変換します。

EOM …… 日付を指定された月の最後の日付を取得します。

EOY …… 日付を指定された年の最後の日付を取得します。

Han …… 全角文字を１バイトの半角文字に変換します。

JCDOW …… 日付から日本語の曜日名を取得します。

JGengo …… 日付から元号名を取得します。

JMonth …… 月番号を、対応する月名に変換します。

JNDOW …… 週の曜日番号を対応する曜日名に変換します。

JYear …… 日付から元号年を取得します。

MDate …… Magic xpaの日付（[ログオン]ダイアログで入力された日付）を取得します。

Month …… 日付の月（1～12）を取得します。

NDOW …… 曜日番号（1 、2 など）を曜日名（Sunday 、Monday など）に変換します。

NMonth …… 月番号（1 、2 など）を月名（January 、February など）に変換します。

TVal …… 文字型データで表された日付を数値に変換します。

Year …… 日付の年を取得します。

時刻関数

AddDateTime …… Datetime値に日付と時刻を加算します。

AddTime …… 時刻を指定し、その時刻に時数、分数、秒数を加算します。

Hour …… 時刻または時刻式の時間を取得します。

Minute …… 時刻または時刻式の分が数値で返ります。

mTime …… 現在の時間をミリ秒単位で取得します。

mTStr …… 書式に基づいてミリ秒の時間値を文字列に変換します。

Second …… 時刻のうち、秒の値を取得します。

Time …… システムの時刻を取得します。

TStr …… 時刻を文字列に変換します。


関数ディレクトリ 日本語関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 日本語関数

日本語関数

以下の関数は、日本語版でのみ有効です。他言語版のMagic xpaとアプリケーションを共有する場合、使用できなくなることを考慮してください。

Han …… 全角文字を１バイトの半角文字に変換します。

JCDOW …… 日付から日本語の曜日名を取得します。

JGengo …… 日付から元号名を取得します。

JMonth …… 月番号を、対応する月名に変換します。

JNDOW …… 週の曜日番号を対応する曜日名に変換します。

JYear …… 日付から元号年を取得します。

MIDV …… 機能はMID関数と同じですが、全角文字を２分する場合でも半角スペースに置き換えません。

RepV …… 機能はRep 関数と同じですが、全角文字を２分しても半角スペースに置き換えません。

Zen …… １バイトの半角文字を全角文字に変換します。ただし、半角スペースは、全角スペースに変換しません。

ZenS …… 機能はZen 関数と同じですが、半角スペースの処理を細かく設定できます。

ZIMERead …… 直前にIMEにて入力した漢字の読みを取得します。

ZKana …… ひらがなからカタカナへ、またはカタカナからひらがなへの変換を行います。


関数ディレクトリ 入出力関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 入出力関数

入出力関数

Blb2File …… BLOB オブジェクトをファイルに保存します。

DirDlg …… Windowsの[ディレクトリ選択]ダイアログを表示して、ディレクトリを選択できるようにします。

EOF …… 入出力ファイルに指定されているデータが終了したどうかを確認します。

EOP …… 指定されたファイルの現在のページが終了したかどうかを確認します。

File2Blb …… ファイルをBLOB オブジェクトに変換します。

File2Ole …… ファイルをBLOB オブジェクトに変換します。（リンク、埋め込みが指定できます。）

FileCopy …… ファイルをコピーします。

FileDelete …… ディスク上のファイルを削除します。

FileDlg …… Windows の[ファイルを開く]ダイアログをオープンします。

FileExist …… 指定したディレクトリにファイルかサブディレクトリがあるかどうかを確認します。

FileInfo …… ファイルの情報を取得します。

FileListGet …… ファイル名のフィルタの設定に基づきディレクトリ内のファイルリストを取得します。

FileRename …… ディスク上のファイルかサブディレクトリの名前を変更します。

FileSize …… ディスク上のファイルのサイズ（バイト数）を取得します。

IOCurr …… 現在、出力中の入出力ファイル番号を取得します。

Line …… 出力ファイルの現在処理中の行番号を取得します。

Page …… 入出力ファイルの現在のページ番号を取得します。

以下の関数は、リッチクライアントタスクでのみ表示されます。

ClientBlb2File …… BLOB項目の内容をファイルとして変換してクライアント側に保存します。

ClientDirDlg …… Windowsの[フォルダの参照]ダイアログボックスを開き、選択されたフォルダ名を取得します。

ClientFile2Blb …… クライアントのファイルをBLOB項目に変換します。

ClientFileCopy …… クライアント側のディスク上のファイルをコピーします。

ClientFileDelete …… クライアント側のディスク上のファイルを削除します。

ClientFileExist …… クライアント側のディスク上のファイルの存在を確認します。

ClientFileInfo …… クライアント側のディスク上のファイルの情報を取得します。

ClientFileListGet …… クライアント側のディスク上の指定したディレクトリ内のファイル一覧を取得します。

ClientFileOpenDlg …… Windowsの[ファイルを開く]ダイアログを開き、選択されたファイル名を取得します。

ClientFileRename …… クライアント側のディスク上のファイルの名前を変更します。

ClientFileSaveDlg …… Windowsの[名前を付けて保存]ダイアログを開き、選択されたファイル名を取得します。

ClientFileToServer …… クライアントからサーバにファイルをコピーします。

ServerFileToClient …… サーバからクライアントにファイルをコピーします。


関数ディレクトリ 文字列操作関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 文字列操作関数

文字列操作関数

注意：

エンドユーザに対するテキストの一部としてアポストロフィ（')を表示する場合は、2つのアポストロフィ（'')を入力してください。

& …… 文字列を連結します。

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 …… 多言語環境で、言語の変換を行います。

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 …… 文字列を数値に変換します。

Zen …… １バイトの半角文字を全角文字に変換します。ただし、半角スペースは、全角スペースに変換しません。

ZenS …… 機能はZen 関数と同じですが、半角スペースの処理を細かく設定できます。

ZKana …… ひらがなからカタカナへ、またはカタカナからひらがなへの変換を行います。


関数ディレクトリ 変換関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 変換関数

変換関数

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 Magic数字（内部コード）を数値に変換します。

OEM2ANSI …… OEM文字セットの文字列をANSI文字セットに変換します。

TStr …… 時刻を文字列に変換します。

TVal …… 文字列として格納されている時刻を通常の時刻（数値）に変換します。

Upper …… 小文字を大文字に変換します。

UnicodeChr …… 数値をUnicode文字セットに対応した文字に変換します。

UnicodeVal …… Unicode文字を、文字コードに変換します。

UTF8FromAnsi …… データをANSIからUTF8 にエンコードします。

UTF8ToAnsi …… データをUTF8からANSI にエンコードします。この関数は、CodePage関数によって定義されたコードページを使用します。CodePage関数を使用していない場合、デフォルトOSコードページがJava関数と同様の方法で使用されます。

Val …… 文字列を数値に変換します。

XMLStr …… 正規のXML表記を予約語を使用したXML表記に変換します。

XMLVal …… 予約語を使用したXML表記を正規のXML表記に変換します。


関数ディレクトリ 演算子

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 演算子

演算子

Magic xpaの式には、算術演算子、論理演算子、文字列演算子が指定できます。

算術演算子 | 例 |
加算 | A+B+C |
減算 | A-B-C |
乗算 | A*B |
除算 | A/B | 整数を除算した結果は、最も近い整数に丸められます。
剰余 | 17 MOD 10は、7を戻します。 | 整数を除算した時の余りが返ります。
指数 | A^Bは、AをB乗して戻します。 |
単項 | -(3) | 数式の符号を変更する算術演算子です。
文字列演算子 |  |
連結 | 'John'&'Smith'は'JohnSmith'が返ります。 | &記号を使用して、文字型文字列を連結します。
論理演算子 |  | 論理演算子を含む式は全て、論理型の「True」または「False」が返ります。
等号 | A=B |
不等号 | A<>B |
以下 | A<=B |
未満 | A<B |
以上 | A>=B |
より大きい | A>B |
論理否定 | NOT ('FALSE' LOG) は、' TRUE'が返ります | オペランドの論理値が逆転されます。
論理積 | A AND B | 両方のオペランドが「True」の時だけ、「True」が返ります。
論理和 | A OR B | どちらかのオペランドが「True」の場合、「True」が返ります。


関数ディレクトリ ABS

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ABS

ABS

絶対値

実数の絶対値を取得します。戻り値は必ず正の値です。

構文：

ABS(数値)

パラメータ：

  • 数値 …… 数値

戻り値：

数値の絶対値

例：

x=20 、y=30 の場合、ABS(x-y)では、10 が返ります。


関数ディレクトリ ACOS

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ACOS

ACOS

逆余弦（アークコサイン）

数値の逆余弦(アークコサイン)をラジアンで取得します。

構文：

ACOS(数値)

パラメータ：

  • 数値 …… 数値

戻り値：

数値（ラジアン）

例：

x=1 、y=0.5 の場合、ACOS(x-y)では、1.04719755 が返ります。

関連トピック：

COS, SIN, ASIN, TAN, ATAN


関数ディレクトリ AddDate

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > AddDate

AddDate

日付項目に関する計算

日付に年数/月数/日数を加算した値を取得します。結果は、日付型で返ります。

構文：

AddDate(日付,年数,月数,日数)

パラメータ：

  • 日付 …… 日付

  • 年数 …… この年数が日付に加算されます。0 を指定することも可能です。

  • 月数 …… この月数が日付に加算されます。0 を指定することも可能です。

  • 日数 …… この日数が日付に加算されます。0 を指定することも可能です。

戻り値：

日付値

例：

AddDate('1992/01/01'DATE,1,2,2)では、1993/03/03 が返ります。

関連トピック：

DVal

日付データの計算を行うには


関数ディレクトリ AddDateTime

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > AddDateTime

AddDateTime

日付と時刻の加算

日付型と時刻型が組み合わされたデータの加算処理を行います。

指定された年数や月数、日数、時数、分数、秒数によって、日付と時刻の項目が更新されます。時刻の更新によって24時を越えた場合、日付データが更新されます。

構文：

AddDateTime (日付,時刻, 年数, 月数, 日数, 時数, 分数, 秒数)

パラメータ：

  • 日付と時刻 …… Magic xpaの日付型と時刻型の項目

  • 年数 …… 加算する年数を表す数値

  • 月数 …… 加算する月数を表す数値

  • 日数 …… 加算する日数を表す数値

  • 時数 …… 加算する時数を表す数値

  • 分数 …… 加算する分数を表す数値

  • 秒数 …… 加算する秒数を表す数値

戻り値：

論理値 …… 関数の処理が成功した場合「True」が返ります。

計算結果は、日付と時刻のパラメータに設定された項目に返ります。

注意事項：

日付と時刻のパラメータには、VARリテラルを指定する必要があります。

関連トピック：

DifDateTime, AddDate, AddTime

日付と時刻を組み合わせたデータを加算するには


関数ディレクトリ AddTime

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > AddTime

AddTime

時刻に関する計算

時刻に時数/分数/秒数を加算した値を取得します。結果は、時刻型で返ります。

構文：

AddTime(時刻,時数,分数,秒数)

パラメータ：

  • 時刻 …… 時刻型のデータです。

  • 時数 …… この数値が時刻に加算されます。

  • 分数 …… この数値が時刻に加算されます。

  • 秒数 …… この数値が時刻に加算されます。

戻り値：

時刻値

例：

AddTime('12:00:00'TIME,1,2,3)では、13:02:03 が返ります。

注意事項：

パラメータに「0」を指定した場合、その「0」は無視されます。

関連トピック：

AddDate,TVal

時刻データの計算を行うには


関数ディレクトリ ANSI2OEM

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ANSI2OEM

ANSI2OEM

ANSI コードからOEM コードに変換

ANSI 文字セットの文字列をOEM 文字セットに変換します。

構文：

ANSI2OEM (文字列)

パラメータ：

  • 文字列 …… 変換する文字列

戻り値：

文字列 …… 変換された文字列

注意事項：

日本語環境においては、この関数を使用する必要はありません。


関数ディレクトリ AppName

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > AppName

AppName

アプリケーション名の取得 アプリケーション(プロジェクト)の名前を取得します。
構文： | AppName()
パラメータ： | なし
戻り値： | 文字列 …… アプリケーション名
例： | AppName() は、アプリケーション名が返ります。
関連トピック： | Val


関数ディレクトリ ASCIIChr

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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

ASCIIVal

文字をASCII コードに変換

文字列（英数字）の左端の文字をASCII コード値に変換します。

構文：

ASCIIVal('文字列')

パラメータ：

  • 文字列 …… 文字または文字列

戻り値：

ASCII コード値

例：

ASC('N')、ASC('New')では、どちらも78 が返ります。

注意事項：

V9Plus以前の ASC関数と同じ機能の関数です。

関連トピック：

ASCIIChr


関数ディレクトリ ASIN

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ASIN

ASIN

逆正弦（アークサイン）

数値の逆正弦（アークサイン）をラジアンで取得します。

構文：

ASIN(数値)

パラメータ：

  • 数値 …… 数値

戻り値：

逆正弦（ラジアン）

例：

x=1 、y=0.5 の場合、ASIN(x-y)では、0.52359878 が返ります。

関連トピック：

SIN, COS, ACOS, TAN, ATAN


関数ディレクトリ AStr

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > AStr

AStr

文字列の書式変換

指定した書式で変換された文字列を取得します。

構文：

AStr(元の文字列, 変換書式)

パラメータ：

  • 元の文字列 …… 変換される文字列

  • 変換書式 …… 変換する書式を表す文字列

下記の文字は位置指示記号および機能指示記号を表します。

  • X …… 任意の文字

  • H …… 任意の文字(ヘブライ語用)

  • # …… 任意の数字

  • U …… 文字を大文字に変換します

  • L …… 文字を小文字に変換します

「A」(オートスキップ)は無視されます。

数字はカウント値で、前に指定した記号が指定数を表します。前に記号がない場合、「X」があるものとして動作します。

（例： 2@3U5 は、XX@@@UUUUU と同じ意味です。）

エスケープ文字「\」は、その直後の文字がマスク文字であることを指定します。指示記号を無効化できます。

戻り値：

指定した書式に変換された文字列

例：

AStr('abcd','2@3A\U\5\A') は、 'ab@@@U5A' が返ります。

注意事項：

書式文字列の中で指定された位置指示記号の長さの合計が変換する文字列の長さより短い場合、残りの文字が切り詰められます。


関数ディレクトリ ATAN

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ATAN

ATAN

逆正接（アークタンジェント）

数値の逆正接（アークタンジェント）をラジアンで取得します。

構文：

ATAN (数値)

パラメータ：

  • 数値 …… 数値

戻り値：

逆正接（ラジアン）

例：

x=2 、y=1 の場合、ATAN(x-y)では、0.78539816 が返ります。

関連トピック：

TAN, COS, ACOS, SIN, ASIN


関数ディレクトリ Blb2File

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Blb2File

Blb2File

BLOBオブジェクトをファイルに保存

BLOB オブジェクトをファイルに保存します。

構文：

Blb2File (BLOB項目,ファイル名)

パラメータ：

  • BLOB項目 …… BLOB型項目のシンボル名

  • ファイル名（文字列） …… 保存先のファイル名。最大260バイトまで。unicode特有の文字は利用できません。

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例：

Blb2File(BE, 'C:\bfile.blb')では、BLOB 項目であるBE の内容が、C ドライブのbfile.bl という名前のファイルに保存されます。


関数ディレクトリ Blob2Req

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Blob2Req

Blob2Req

BLOB項目の内容をリクエスタに送信

指定されたBLOB項目の内容をリクエスタに送信します。

リクエスタに返す前に各BLOBのためのファイルを作成することなく、BLOBのデータをリクエスタに直接送るようにします。

構文：

Blob2Req(BLOB項目)

パラメータ：

BLOB項目 …… 送信するBLOB項目

戻り値：

  • 論理値 …… 処理に成功した場合「True」が返ります。

以下のような場合、処理は失敗します。

  • BLOB項目の内容が NULL の場合

  • アプリケーションサーバが実行していない場合

例：

Blob2Req(A)：リクエスタに シンボル名「A」で表されたBLOB項目の内容が送られます。

注意事項：

  • 送信する前に、RqHTTPHeader関数を使用することでHTTPヘッダ情報を定義することができます。

  • リモートコールで起動されたプログラムで実行することで、同期型で起動した起動元のプログラムの［結果ファイル］に保存されます。

例外：

リッチクライアントタスクではサポートされません。

関連トピック：

File2Req


関数ディレクトリ BlobFromBase64

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > BlobFromBase64

BlobFromBase64

BLOBデータのデコード

(BASE64でエンコードされた)BLOBデータをBASE64でデコードした値を取得します。

構文：

BlobFromBase64(BLOB データ)

パラメータ：

  • BLOB データ …… BASE64でエンコードされたデータ

戻り値：

BLOB データ …… デコードされたデータ

関連トピック：

BlobToBase64


関数ディレクトリ BlobSize

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > BlobSize

BlobSize

BLOBサイズの取得

BLOBデータのサイズ(バイト)を取得します。

構文：

BlobSize(BLOB データ)

パラメータ：

  • BLOBデータ …… 対称となる BLOBデータ

戻り値：

BLOBのサイズを表す数値。NULLの場合は、0 が返ります。


関数ディレクトリ BlobToBase64

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > BlobToBase64

BlobToBase64

BLOBデータのエンコード

BLOBデータ内の文字列をBASE64でエンコードした値を取得します。

構文：

BlobToBase64(BLOBデータ)

パラメータ：

  • BLOBデータ …… エンコードするBLOBデータ

戻り値：

BASE64でエンコードされたBLOB データを返します。

関連トピック：

BlobFromBase64


関数ディレクトリ BOM

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > BOM

BOM

月の最初の日付

指定した月の最初の日付を取得します。

構文：

BOM(日付)

パラメータ：

  • 日付 …… 日付または日付式

戻り値：

日付値

例：

BOM ('93/05/10'DATE)では、'93/05/01'が返ります。

関連トピック：

BOY, EOM, EOY, AddDate,CDOW, Date

指定された日付に対応する月の最初の日付を取得するには


関数ディレクトリ BOY

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > BOY

BOY

年の最初の日付

指定した年の最初の日付を取得します。

構文：

BOY(日付)

パラメータ：

  • 日付 …… 日付または日付式

戻り値：

日付値

例：

BOY ('93/10/05'DATE)では、'93/01/01'が返ります。

関連トピック：

BOM, EOM, EOY, AddDate,CDOW, Date

指定された日付に対応する年の最初の日付を取得するには


関数ディレクトリ BrowserGetContent

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > BrowserGetContent

BrowserGetContent

ブラウザデータの取得

［ブラウザ］コントロールで設定されたHTMLの内容を取得します。関数は、同じタスクのフォームに定義されたコントロールに対してのみ有効です。

テキストベース以外のオブジェクト（例：PDFファイル）が表示されている場合は、取得できません。

構文：

BrowserGetContent(コントロール名)

パラメータ：

  • コントロール名 …… ［ブラウザ］コントロールのコントロール名

戻り値：

［ブラウザ］コントロールの内容を表す文字列。エラーが発生した場合、Nullが返ります。

注意事項：

クライアント側でのみ実行されます。

モバイル仕様：

この関数は、モバイル環境ではサポートされません。

関連トピック：

BrowserScriptExecute, BrowserSetContent

ブラウザコントロールで実行しているWebページを操作するには


関数ディレクトリ BrowserScriptExecute

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > BrowserScriptExecute

BrowserScriptExecute

スクリプトの実行

［ブラウザ］コントロールに定義されたスクリプトコマンドを実行します。

これは、値をコントロールのパラメータに設定したり、コントロール内の特定のスクリプトを実行させるなどのコントロール処理を行う場合に便利です。

関数は、同じタスクのフォームに定義されたコントロールに対してのみ有効です。

構文：

BrowserScriptExecute(コントロール名, 値, 同期,言語)

パラメータ：

  • コントロール名 …… ［ブラウザ］コントロールのコントロール名

  • 値 …… 実行するスクリプトコマンドが格納された項目を指定します。指定できるデータ型は、文字型、Unicode型、またはBLOB型（［内容］特性は、「ANSI/Unicode」）です。

  • 同期 …… コマンド実行が終了するまでエンジンが処理を待つかどうかを指定します。

  • 言語 …… スクリプトをどの言語として実行させるかを指定します。JScript以外の言語を使用する場合に指定します。htmlファイルに定義されている<SCRIPT LANGUAGE>タグの言語名を指定してください。

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

以下のような場合、処理は失敗します。

  • 指定されたコントロールが存在しない場合

  • コントロールからエラーが返された場合

例：

<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)

注意事項：

この関数を実行させるには、あらかじめWindows MSHTMLアセンブリを［コンポーネント］リポジトリに登録しておく必要があります。

クライアント側でのみ実行されます。

この関数は、モバイル環境ではサポートされません。

関連トピック：

BrowserGetContent, BrowserSetContent

ブラウザコントロールで実行しているWebページを操作するには


関数ディレクトリ BrowserSetContent

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > BrowserSetContent

BrowserSetContent

［ブラウザ］コントロール内に表示内容を設定

フォーム上の［ブラウザ］コントロールに表示内容を設定します。テキストベースの内容のみ指定できます。

関数は、同じタスクのフォームに定義されたコントロールに対してのみ有効です。

構文：

BrowserSetContent(コントロール名, 値)

パラメータ：

  • コントロール名 …… ［ブラウザ］コントロールのコントロール名

  • 値 …… 設定する値が格納された項目を指定します。指定できるデータ型は、文字型、Unicode型、またはBLOB型（［内容］特性は、「ANSI/Unicode」）です。

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

以下のような場合、処理は失敗します。

  • 指定されたコントロールが存在しない場合

  • コントロールからエラーが返された場合

注意事項：

クライアント側でのみ実行されます。

関連トピック：

BrowserGetContent, BrowserScriptExecute

ブラウザコントロールで実行しているWebページを操作するには


関数ディレクトリ BufGetAlpha

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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

バッファ


関数ディレクトリ BufGetAlpha 記憶形式

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > BufGetAlpha > 記憶形式のタイプ

記憶形式のタイプ

指定できる記憶形式タイプは以下の通りです。

# | 型 | ID | 記憶形式名 | 長さ
1 | 文字型 | 1 | String－NULL で終了しない | <32K
2 | 文字型 | 2 | Lstring－記憶長を含んだ short int で圧縮されている | <32K
3 | 文字型 | 3 | Zstring－NULLで終了する | <32K
4 | 数値型 | 1 | Signed Integer | 1,2,4
5 | 数値型 | 2 | Unsigned Integer | 1,2,4
6 | 数値型 | 3 | IEEE 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 の記憶長 + バッファ |
22 | BLOB型 | 2 | バッファ |
23 | Unicode型 | 1 | Unicode－NULL で終了しない | <32K
24 | Unicode型 | 2 | ZUnicode－記憶長を含んだ short int で圧縮されている | <32K


バッファ

Magicアプリケーションは、サードパーティモジュールと連携させる必要がある場合があります。このような連携処理では､一般的に構造体または、バッファとして知られているバイナリデータの集合体を利用して情報の交換を行うことがあります。

バッファは、1つの項目に複数のデータを格納するが可能です。これらはC言語における構造体またはVisual Basicでのユーザ定義タイプに似ています。

これらをコンピュータ言語に組み込む場合は、タイプのサイズについてよく理解している必要があります。例えば、-32,768から32,767または0から65,575の範囲の数値は"Double"と呼ばれるタイプで2バイトのサイズで格納されます。

Magic xpaでは、バッファはBLOB型のデータ項目に格納されます。しかしすべてのBLOB型項目がバッファになっている訳ではありません。バッファ関数を使用してBLOB型項目にデータを格納することで、BLOB型項目はバッファになります。BLOB項目をバッファ化する際、Magic xpaは最初に数バイトを使用してBLOB項目を初期設定します。

特別なバッファ保存関数を使用することで、必要な構造を定義することができ、その構造に対応する関数を使用することで､データを取り出すこともできます。

バッファの内容を直接参照することはできません。しかし、Blb2File()関数を使用することでバッファ（BLOB項目）の内容をファイルに変換することができます。バイナリエディタでこのファイルを開くことでバッファの内容を参照することができます。

バッファをリセットする必要がある場合は、Null()関数でBLOB型項目を更新してください。

同様に、空のバッファについてのテストを行う必要がある場合、BLOB型項目とNull()関数の戻り値を比較してください。

［コールUDP］処理コマンドを使用することで､DLLを呼び出してパラメータの受け渡しを行う事ができます。


関数ディレクトリ BufGetBit

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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

BufGetBlob

バッファからBLOBデータを取得

BLOBバッファの指定された位置のBLOBデータを取得します。

構文：

BufGetBlob(参照項目、位置、記憶形式、長さ、ポインタ値、)

パラメータ：

  • 参照項目 …… バッファとなるBLOB項目。VARリテラルが必要です。

  • 位置 …… 変換を開始する位置を表す数値。バッファの先頭は1です。

  • 記憶形式 …… Magic での記憶形式を表す数値。

  • 長さ …… 記憶長を表す数値

  • ポインタ値 …… 文字データ値が、直接バッファ書き込まれるか、ポインタとして書かれるべきであるかどうかを示す論理値。「True」 の場合は、ポインタとして文字値を書き込みます。

戻り値：

変換が成功した場合、BLOB 値が返ります。失敗した場合、空白が返ります。

以下の場合は失敗します。

  • 参照項目が正しくない場合

  • 参照項目が BLOB でない場合

  • 位置パラメータが負数の場合

  • 位置や長さパラメータが、バッファの内容に合っていない場合

  • 記憶形式パラメータが正しくない場合

例：

BufGetBlob ('A'VAR,1,1,1,'TRUE'LOG)

関連トピック：

SetBufCnvParam

バッファ


関数ディレクトリ BufGetDate

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > BufGetDate

BufGetDate

バッファから日付データを取得

BLOBバッファの指定された位置の日付データを取得します。

構文：

BufGetDate(参照項目、位置、記憶形式)

パラメータ：

  • 参照項目 …… バッファとなるBLOB項目。VARリテラルが必要です。

  • 位置 …… 変換を開始する位置を表す数値。バッファの先頭は1です。

  • 記憶形式 …… Magic での記憶形式を表す数値

戻り値：

変換が成功した場合、日付データが返ります。失敗した場合 「0」 が返ります。

以下の場合は失敗します。

  • 位置パラメータが負数の場合

  • 位置や長さパラメータが、バッファの内容と合っていない場合

  • 記憶形式パラメータが正しくない場合

  • 変換エラーが発生した場合

関連トピック：

SetBufCnvParam

バッファ


関数ディレクトリ BufGetLog

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > BufGetLog

BufGetLog

バッファから論理データを取得

BLOBバッファの指定された位置の論理値データを取得します。

構文：

BufGetLog(参照項目、位置、記憶形式)

パラメータ：

  • 参照項目 …… バッファとなるBLOB項目。VARリテラルが必要です。

  • 位置 …… 変換を開始する位置を表す数値。バッファの先頭は1です。

  • 記憶形式 …… Magic での記憶形式を表す数値

戻り値：

変換が成功した場合は論理値が返ります。失敗した場合は、NULLが返ります。

以下の場合は失敗します。

  • 位置パラメータが負数の場合

  • 位置や長さパラメータが、バッファの内容に合っていない場合

  • 記憶形式パラメータが正しくない場合

  • 値が正しくない場合

関連トピック：

バッファ


関数ディレクトリ BufGetNum

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > BufGetNum

BufGetNum

バッファから数値データを取得

BLOBバッファの指定された位置の数値データを取得します。

構文：

BufGetNum(参照項目、位置、記憶形式、長さ)

パラメータ：

  • 参照項目 …… バッファとなるBLOB項目。VARリテラルが必要です。

  • 位置 …… 変換を開始する位置を表す数値。バッファの先頭は1です。

  • 記憶形式 …… Magic での記憶形式を表す数値。

  • 長さ …… 記憶長を表す数値

戻り値：

変換が成功した場合は数値が返ります。 失敗した場合は、「0」が返ります。

以下の場合は失敗します。

  • 位置パラメータが負数の場合

  • 位置や長さパラメータが、バッファの内容に合っていない場合

  • 記憶形式パラメータが正しくない場合

  • 長さパラメータが正しくない場合

  • 変換でオーバーフローが発生した場合

関連トピック：

SetBufCnvParam

バッファ


関数ディレクトリ BufGetTime

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > BufGetTime

BufGetTime

バッファから時刻データを取得

BLOBバッファの指定された位置の時刻データを取得します。

構文：

BufGetTime(参照項目、位置、記憶形式)

パラメータ：

  • 参照項目 …… バッファとなるBLOB項目。VARリテラルが必要です。

  • 位置 …… 変換を開始する位置を表す数値。バッファの先頭は1です。

  • 記憶形式 …… Magic での記憶形式を表す数値

戻り値：

変換が成功した場合は時刻値が返ります。失敗した場合は、「0」が返ります。

以下の場合は失敗します。

  • 位置パラメータが負数の場合

  • 位置や長さパラメータが、バッファの内容に合っていない場合

  • 記憶形式パラメータが正しくない場合

  • 変換エラーが発生した場合

関連トピック：

SetBufCnvParam

バッファ


関数ディレクトリ BufGetUnicode

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > BufGetUnicode

BufGetUnicode

バッファからUnicodeデータを取得

BLOBバッファ内の指定された位置の値をUnicodeデータに変換します。

Unicode型の場合は、定義した項目長の2倍の値をデータ長として長さや位置を指定する必要があります。

構文：

BufGetUnicode(参照項目、位置、記憶形式、長さ、ポインタ値)

パラメータ：

  • 参照項目 …… バッファとなる BLOB項目。VARリテラルが必要です。

  • 位置 …… 変換を開始する位置（Byte単位）を表す数値。バッファの先頭は1です。

  • 記憶形式 …… Magic xpaでの記憶形式を表す数値。

  • 長さ …… 記憶長を表す数値。（単位は、直前に実行したSetBufCnvParam関数によって設定されたエンコード指定に依存します。）

  • ポインタ値 …… Unicodeデータ値が、直接バッファ書き込まれるか、ポインタとして書かれるべきであるかどうかを示す論理値。「True」 の場合は、ポインタとして文字値を書き込みます。

戻り値：

変換が成功した時はUnicode型の文字列が返ります。失敗した場合は空白が返ります。

以下の場合は失敗します。

  • 位置パラメータに負数が指定された場合

  • 位置や長さパラメータが、 バッファの内容の範囲外を指定している場合

  • 記憶形式パラメータが正しくない場合

  • 長さパラメータが正しくない場合

関連トピック：

BufSetUnicode, SetBufCnvParam

バッファ


関数ディレクトリ BufGetVariant

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > BufGetVariant

BufGetVariant

バッファからVariantデータを取得

BLOBバッファの指定された位置のVariantデータを取得します。

構文：

BufGetVariant(参照項目、位置、ポインタ値 )

パラメータ：

  • 参照項目 …… バッファとなるBLOB項目。VARリテラルが必要です。

  • 位置 …… 変換を開始する位置を表す数値。バッファの先頭は1です。

  • ポインタ値 …… Variantデータが、直接バッファ書き込まれるか、ポインタとして書かれるべきであるかどうかを示す論理値。「True」の場合は、ポインタとして書き込みます。

戻り値：

変換が成功した場合はVariantデータが返ります。失敗した場合は、NULL が返ります。

関連トピック：

SetBufCnvParam, BufSetVariant

バッファ


関数ディレクトリ BufGetVector

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > BufGetVector

BufGetVector

バッファからベクトルデータを取得

BLOBバッファの指定された位置のベクトルデータを取得します。

構文：

BufGetVector (参照項目、位置、ベクトル型、 エレメント番号、ポインタ値、セル記憶形式、セル長)

パラメータ：

  • 参照項目 …… バッファとなるBLOB項目。VARリテラルが必要です。

  • 位置 …… 変換を開始する位置を表す数値。バッファの先頭は1です。

  • ベクトル型 …… ベクトルのデータ型を表す数。以下の通りです。

  • 1 …… 文字型

  • 2 …… 数値型

  • 3 …… 論理型

  • 4 …… 日付型

  • 5 …… 時刻型

  • 6 …… BLOB型

  • エレメント番号 …… ベクトル長を表す数値

  • ポインタ値 …… ベクトル値データをバッファに直接書き込むか、ポインタとして書き込むかを指定する論理値。 「True」ならば、ポインタとして書き込みます。

  • セル記憶形式 …… ベクトルセルの記憶形式。外部のベクトルがバッファから読み込まれた場合に指定します。このパラメータは、セルのデータ型に対応する記憶形式のうちのどれかを指定します。

  • セル長 …… ベクトルセルの記憶長タイプ。外部のベクトルがバッファから読み込まれた場合に指定します。このパラメータは、「セル記憶形式」に対応する長さを指定します。

戻り値：

変換が成功した場合はベクトルデータが返ります。失敗した場合は、NULL が返ります。

以下の場合は失敗します。

  • 位置パラメータが負数の場合

  • 位置や長さパラメータが、バッファの内容に合っていない場合

  • 記憶形式パラメータが正しくない場合

  • セル長パラメータが正しくない場合

関連トピック：

BufSetVector

バッファ


関数ディレクトリ BufSetAlpha

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > BufSetAlpha

BufSetAlpha

バッファに文字データを格納

文字データをBLOBバッファの指定した位置に挿入します。

構文：

BufSetAlpha(参照項目、位置、値、記憶形式、長さ、ポインタ値)

パラメータ：

  • 参照項目 …… バッファとなるBLOB項目。VARリテラルが必要です。

  • 位置 …… データの挿入位置（Byte単位）を表す数値。バッファの先頭は1です。

  • 値 …… 挿入される文字データ

  • 記憶形式 …… Magic での記憶形式を表す数値

  • 長さ …… 文字の長さを表す数値。（単位は、直前に実行したSetBufCnvParam関数によって設定されたエンコード指定に依存します。）

  • ポインタ値 …… 文字データが直接バッファ書き込まれるか、ポインタとして書かれるべきであるかどうかを示す論理値。 「True」の場合は、 バッファに文字列のポインタを書き込みます。この場合、4バイトのデータが消費されます。サイズが定義されない文字列を扱う場合は、ポインタを使用してください。

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

以下のような場合、処理は失敗します。

  • 参照項目が正しくない場合

  • 参照項目が BLOB でない場合

  • 位置パラメータが負数の場合

例：

以下の例は、バッファの先頭から9バイト分'my-string'という文字列を挿入しています。次に、'dynamic-string1' と'dynamic-string2' という文字列をポインタで挿入しています。

BufSetAlpha('A'VAR,1,'my-string',1,9,'FALSE'LOG)

BufSetAlpha('A'VAR,10,'dynamic-string1',1,15,'True'LOG)

BufSetAlpha('A'VAR,14,'dynamic-string2',1,15,'True'LOG)

注意事項：

リッチクライアントタスクでは、ポインタ指定は使用できません。

記憶形式タイプとして「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

BufSetBit

バッファにビットデータを格納

1バイトの内容をビットレベルで値を指定し、BLOB バッファの指定した位置に挿入します。

構文：

BufSetBit(参照項目、位置、ビット番号、論理値)

パラメータ：

  • 参照項目 …… バッファとなるBLOB項目。VARリテラルが必要です。

  • 位置 …… データの挿入位置を表す数値。バッファの先頭は1です。

  • ビット番号 …… １バイト内のビット番号を表す 1 ～ 8 の値

  • 論理値 …… 指定されたビットをセットするための論理値

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

関連トピック：

バッファ


関数ディレクトリ BufSetBLOB

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > BufSetBlob

BufSetBlob

バッファにBLOBデータを格納

BLOBデータをBLOBバッファの指定した位置に挿入します。

構文：

BufSetBlob(参照項目、位置、値、記憶形式、ポインタ値)

パラメータ：

  • 参照項目 …… バッファとなるBLOB項目。VARリテラルが必要です。

  • 位置 …… データの挿入位置を表す数値。バッファの先頭は1です。

  • 値 …… 挿入されるBLOBデータ

  • 記憶形式 …… Magic での記憶形式を表す数値。

  • ポインタ値 …… BLOBデータをバッファに直接書き込むか、ポインタとして書き込むかを指定する論理値。 「True」ならば、ポインタとして書き込みます。

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

以下のような場合、処理は失敗します。

  • 参照項目が正しくない場合

  • 参照項目が BLOB でない場合

  • 位置パラメータが負数の場合

  • 記憶形式パラメータが正しくない場合

注意事項：

リッチクライアントタスクでは、ポインタ指定は使用できません。

関連トピック：

SetBufCnvParam

バッファ


関数ディレクトリ BufSetDate

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > BufSetDate

BufSetDate

バッファに日付データを格納

日付データをBLOBバッファの指定した位置に挿入します。

構文：

BufSetDate(参照項目、位置、値、記憶形式)

パラメータ：

  • 参照項目 …… バッファとなるBLOB項目。VARリテラルが必要です。

  • 位置 …… データの挿入位置を表す数値。バッファの先頭は1です。

  • 値 …… 挿入される日付データ

  • 記憶形式 …… Magic での記憶形式を表す数値

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

以下のような場合、処理は失敗します。

  • 参照項目が正しくない場合

  • 参照項目が BLOB でない場合

  • 位置パラメータが負数の場合

  • 記憶形式パラメータが正しくない場合

例：

BufSetDate('A'VAR,1,Date(),1)

項目'A' の 1バイト目に 現在の日付を挿入します。

関連トピック：

SetBufCnvParam

バッファ


関数ディレクトリ BufSetLog

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > BufSetLog

BufSetLog

バッファに論理データを格納

論理データをBLOBバッファの指定した位置に挿入します。

構文：

BufSetLog(参照項目、位置、値、記憶形式)

パラメータ：

  • 参照項目 …… バッファとなるBLOB項目。VARリテラルが必要です。

  • 位置 …… データの挿入位置を表す数値。バッファの先頭は1です。

  • 値 …… 挿入される論理データ

  • 記憶形式 …… Magic での記憶形式を表す数値

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

以下のような場合、処理は失敗します。

  • 参照項目が正しくない場合

  • 参照項目が BLOB でない場合

  • 位置パラメータが負数の場合

  • 記憶形式パラメータが正しくない場合

関連トピック：

SetBufCnvParam

バッファ


関数ディレクトリ BufSetNum

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > BufSetNum

BufSetNum

バッファに数値データを格納

数値データをBLOBバッファの指定した位置に挿入します。

構文：

BufSetNum(参照項目、位置、値、記憶形式、長さ)

パラメータ：

  • 参照項目 …… バッファとなるBLOB項目。VARリテラルが必要です。

  • 位置 …… データの挿入位置を表す数値。バッファの先頭は1です。

  • 値 …… 挿入される数値データ

  • 記憶形式 …… Magic での記憶形式を表す数値。

  • 長さ …… 数値の長さを表す数値

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

以下のような場合、処理は失敗します。

  • 参照項目が正しくない場合

  • 参照項目が BLOB でない場合

  • 位置パラメータが負数の場合

  • 記憶形式パラメータが正しくない場合

  • 長さパラメータが正しくない場合

  • 変換時にオーバーフローが発生した場合

関連トピック：

SetBufCnvParam

バッファ


関数ディレクトリ BufSetTime

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > BufSetTime

BufSetTime

バッファに時刻データを格納

時刻データをBLOBバッファの指定した位置に挿入します。

構文：

BufSetTime(参照項目、位置、値、記憶形式)

パラメータ：

  • 参照項目 …… バッファとなるBLOB項目。VARリテラルが必要です。

  • 位置 …… データの挿入位置を表す数値。バッファの先頭は1です。

  • 値 …… 挿入される時刻データ

  • 記憶形式 …… Magic での記憶形式を表す数値

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

以下のような場合、処理は失敗します。

  • 参照項目が正しくない場合

  • 参照項目が BLOB でない場合

  • 位置パラメータが負数の場合

  • 記憶形式パラメータが正しくない場合

関連トピック：

SetBufCnvParam

バッファ


関数ディレクトリ BufSetUnicode

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > BufSetUnicode

BufSetUnicode

バッファにUnicodeデータを格納

Unicode型データをBLOB バッファの指定した位置に挿入します。

Unicode型の場合は、定義した項目長の2倍の値をデータ長として長さや位置を指定する必要があります。

構文：

BufSetUnicode(参照項目、位置、値、記憶形式、長さ、ポインタ値)

パラメータ：

  • 参照項目 …… バッファとなるBLOB項目。VARリテラルが必要です。

  • 位置 …… データの挿入位置（Byte単位）を表す数値。バッファの先頭は1です。

  • 値 …… 挿入されるUnicode型データ

  • 記憶形式 …… Magic xpaでの記憶形式を表す数値

  • 長さ …… 文字の長さを表す数値。（単位は、直前に実行したSetBufCnvParam関数によって設定されたエンコード指定に依存します。）

  • ポインタ値 …… Unicodeデータが直接バッファ書き込まれるか、ポインタとして書かれるべきであるかどうかを示す論理値。 「True」の場合は、 ポインタとして 書き込みます。

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

以下のような場合、処理は失敗します。

  • 参照項目が正しくない場合

  • 参照項目が BLOB でない場合

  • 位置パラメータが負数の場合

例：

BufSetUnicode('A'VAR,1,'filler',1,6,'FALSE'LOG)

1バイト目から 6バイト分 "filler" という文字列を挿入します。

注意事項：

リッチクライアントタスクでは、ポインタ指定は使用できません。

関連トピック：

BufGetUnicode, SetBufCnvParam

バッファ


関数ディレクトリ BufSetVariant

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > BufSetVariant

BufSetVariant

バッファにVariantデータを格納

VariantデータをBLOBバッファの指定した位置に挿入します。

構文：

BufSetVariant(参照項目、位置、値、ポインタ値)

パラメータ：

  • 参照項目 …… バッファとなるBLOB項目。VARリテラルが必要です。

  • 位置 …… データの挿入位置を表す数値。バッファの先頭は1です。

  • 値 …… 挿入されるVariantデータ

  • ポインタ値 …… Variantデータをバッファに直接書き込むか、ポインタとして書き込むかを指定する論理値。 「True」ならば、ポインタとして書き込みます。

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

関連トピック：

SetBufCnvParam, BufGetVariant

バッファ


関数ディレクトリ BufSetVector

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > BufSetVector

BufSetVector

バッファにベクトルデータを格納

ベクトルデータをBLOBバッファの指定した位置に挿入します。

構文：

BufSetVector (参照項目、位置、値、セル記憶形式、セル長、ポインタ値)

パラメータ：

  • 参照項目 …… バッファとなるBLOB項目。VARリテラルが必要です。

  • 位置 …… データの挿入位置を表す数値。バッファの先頭は1です。

  • 値 …… 挿入されるベクトルデータ

  • セル記憶形式 …… ベクトルセルの記憶形式。このパラメータは、セルのデータ型に対応する記憶形式のうちのどれかを指定します。Magic xpaでの記憶形式を表す数値を指定します。

  • セル長 …… ベクトルセルの記憶長タイプ。外部のベクトルがバッファから読み込まれた場合に指定します。このパラメータは、「セル記憶形式」に対応する長を指定します。

  • ポインタ値 …… ベクトル値データをバッファに直接書き込むか、ポインタとして書き込むかを指定する論理値。 「True」ならば、ポインタとして書き込みます。

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

以下のような場合、処理は失敗します。

  • 参照項目が正しくない場合

  • 参照項目が BLOB でない場合

  • 位置パラメータが負数の場合

  • 記憶形式パラメータが正しくない場合

関連トピック：

BufGetVector

バッファ


関数ディレクトリ CabinetUnload

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > CabinetUnload

CabinetUnload

コンポーネントのアンロード

［コール公開］処理コマンドで呼び出したキャビネットファイルを解放します。コンポーネント内のプログラムを呼び出すことで、再度読み込まれます。

構文：

CabinetUnload (キャビネットファイル名)

パラメータ：

  • キャビネットファイル名 …… 解放するアプリケーションのキャビネットファイル名

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例外：

リッチクライアントタスクではサポートされません。


関数ディレクトリ CallDLL

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > CallDLL

CallDLL

外部DLL のCDECL規約関数の呼び出し

Magic xpaからCDECL呼び出し規約でDLLを呼び出します。

構文：

CallDLL(モジュール名.関数名,引数型文字列,パラメータ１ ,パラメータ２ ,.)

パラメータ：

  • モジュール名.関数名 …… DLL のモジュール名と使用する関数名

  • 引数型文字列 …… 一つ一つの文字がパラメータタイプを意味する文字列
    最後の一文字が関数の戻り値の型を意味します。

  • パラメータ …… DLL への引数

戻り値：

DLL 内の指定した関数が返す値

戻り値だけは、Magic xpaに返されます。送られる項目に対する修正内容は、Magic xpaniには反映されません。

例：

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 からの戻り値が返ります。

注意事項：

  • 多くのDLLは、ウインドウの「ハンドル値」を必要とします。これは、既存のウインドウごとの識別番号です。WinHWND（)関数を使用することで、CallDLLにこの値を簡単に指定することができます。この関数は世代番号というパラメータを指定します。現在のタスクのウインドウのハンドル値を取得する場合は、常にWinHWND（0)を実行するだけです。

  • DLL関数が複雑な構造体を受けとることを期待しているのであれば、.NETコードを呼びだす方がより簡単です。たとえば、項目A を CallDLL('mydll.myfunc','AA',B) で更新する（A と B は文字型項目）代わりに、文字列バッファ(BStr)を受け取ったり返す関数をを考えます。以下のように、［コール.NET］処理コマンドでAを戻り値、Bをパラメータとすることができます。

using System;

using System.Runtime.InteropServices;

public static class Snippet

{

public static System.String func(ref System.String input)

{

return myfunc(input);

}

[DllImport("mydll.dll", CharSet = CharSet.Auto)]

[return: MarshalAs(UnmanagedType.BStr)]

public static extern string myfunc([MarshalAs(UnmanagedType.BStr)] string Interface);

}

  • パラメータとして文字データを直接指定した場合、［動作環境］の［外部コードページ］で指定されたコードページに基づいて値がエンコードされます。このようなプログラムを使用する場合は、CodePage関数でコードページを「932」に設定するか、文字型変数項目を指定するか、UnicodeToANSI関数で変換する必要があります。

関連トピック：

DLL関数を呼び出すには


関数ディレクトリ CallDLLF

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > CallDLLF

CallDLLF

外部DLLのFASTCALL規約関数の呼び出し

Magic xpaから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 と指定されているものです。

  • パラメータで結果を受け取る関数を実行しても、結果を受けることはできません。

  • パラメータとして文字データを直接指定した場合、［動作環境］の［外部コードページ］で指定されたコードページに基づいて値がエンコードされます。このようなプログラムを使用する場合は、CodePage関数でコードページを「932」に設定するか、文字型変数項目を指定するか、UnicodeToANSI関数で変換する必要があります。


関数ディレクトリ CallDLLS

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > CallDLLS

CallDLLS

外部DLLのSTDCALL規約関数の呼び出し

Magic xpaから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 を起動する場合、通常はこの関数を使用します。

  • パラメータで関数の結果を受け取る関数を実行しても、結果を受けることはできません。

  • パラメータとして文字データを直接指定した場合、［動作環境］の［外部コードページ］で指定されたコードページに基づいて値がエンコードされます。このようなプログラムを使用する場合は、CodePage関数でコードページを「932」に設定するか、文字型変数項目を指定するか、UnicodeToANSI関数で変換する必要があります。


関数ディレクトリ CallJS

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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

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関数を実行させるようにしてください。


関数ディレクトリ CallProg

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > CallProg

CallProg

Magicプログラムの呼び出し

Magic xpaのプログラムを呼び出し、タスクの［戻り値］特性に定義された値を取得します。

構文：

CallProg(プログラム番号,パラメータ1,パラメータ２ ,..)

パラメータ：

  • プログラム番号 …… プログラムリポジトリ上の番号

  • パラメータ …… プログラムに渡す引数

戻り値：

呼ばれたプログラムが返す戻り値(タスク特性で定義された戻り値）

例：

Str(CallProg('23'PROG,A,FG,'Preferd',23),'2P0')

23 番のプログラム呼び出され、数値が返ります。

注意事項：

  • NULL値はCallProg関数のパラメータとして渡すことができません。また、NULL値を戻り値として受け取ることもできません。

  • ［アクション］処理コマンドでCallProg関数の式を指定した場合、［戻り値］特性には「False」が返ります（呼び出されたプログラムの戻り値ではありません）。

  • リッチクライアントの場合、CallProg関数によって呼び出されるプログラムは戻り値を返しません。これはプログラムが終了するまで待たないためです。

  • この関数で呼び出された並行起動設定のリッチクライアントプログラムは、並行起動されません。

関連トピック：

プログラム番号を指定して動的にプログラムを呼び出すには

以下の表は、CallProg関数と［コール］処理コマンドを比較したものです。

CallProg 関数 | ［コール］処理コマンド
プログラムのみ呼び出せます。 | プログラムまたはタスクを呼び出すことができます。
パラメータを受け取る事はできません。 | 任意のパラメータの受け渡しが可能です。
パラメータは、「値渡し」で渡されます。 | パラメータは、「値渡し」または「参照渡し」で渡されます。
起動されるプログラムの［戻り値］特性に設定した値が戻り値として返ります。 | 起動されるプログラムの［戻り値］特性に設定した値が、［戻り値］特性に設定された項目に返ります。
式が定義できる場所であれば、タスクのどこにでも使用することができます。 | ［ロジック］エディタ内でのみ定義できます。
手続型または無手続き型のどちらの方法でも実行させることができます。 | 手続上の処理コマンドとしてのみ実行させることができます。


関数ディレクトリ CallProgURL

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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

CallURL

URLの呼び出し

ブラウザタスクから［アクション］処理コマンドを使用してURLを呼び出します。

構文：

CallURL(URL,出力先)

パラメータ：

  • URL …… 呼び出したいURLを表す文字列

  • 出力先 …… 表示したいフレーム名

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例：

CallURL('http://www.magicsoftware.com','Magic')

フレーム名'Magic'に指定したURLを表示します。

注意事項：

フレーム名が空白の場合は、新しいウィンドウをオープンします。


関数ディレクトリ CaretPosGet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > CaretPosGet

CaretPosGet

［エディット］コントロールのキャレットの位置を取得

［エディット］コントロール内の現在のキャレットの位置を取得します。位置は、表示内容の先頭からの文字数として返ります。［エディット］コントロールの一番左端は、「1」になります。

［複数行編集］特性が「Yes」の場合や［リッチエディト］コントロールの場合は、改行コードを２文字としてカウントします。

構文：

CaretPosGet( )

パラメータ：

なし

戻り値：

  • 数値 …… ［エディット］コントロールの現在のキャレットの位置

以下の場合、「0」が返ります。

  • フォーカス内にコントロールが存在しない

  • フォーカス内のコントロールが［エディット］コントロールでない

  • Magicエンジンが［エディット］コントロール上にパークしていない時にこの関数が実行された。

  • ハンドラが、［強制終了］が「コントロール」や「レコード」に設定されているイベントで起動された

モバイル仕様：

モバイル環境ではサポートされません。

関連トピック：

MarkText, MarkedTextGet, MarkedTextSet


関数ディレクトリ CASE

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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 以外の場合'黒'が返ります。

この例は、ネストされたIF関数を使用すると以下のように置き換えられます。

IF (A=1, ‘赤’, IF (A=2, ‘緑’, IF (A=3, ‘青’, ‘黒’)))

注意事項：

14ケースが上限です。


関数ディレクトリ CDOW

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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

指定された日付に対応する曜日名を取得するには


関数ディレクトリ CHeight

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > CHeight

CHeight

コントロールの高さを取得

指定したコントロールまたはカーソルが最後にパークしたコントロールの高さを取得します。

構文：

CHeight(コントロール名,世代番号)

パラメータ：

  • コントロール名 …… 指定するコントロールの名前。NULL文字列('')を指定した場合、カーソルが最後にパークしているコントロールが対象となります。

  • 世代番号 …… タスクツリー表示における、タスクの階層的位置を示す数値です。例えば、「0」0 はそのタスク自身であり、「1」 はすぐ上位の親タスクを意味します。

戻り値：

数値…フォームの寸法単位での値

注意事項：

  • パーク可能コントロールだけが有効な値を返します。パーク可能コントロールとは、データを持つコントロールやアクションを返すコントロールのことで、具体的には次のものがあります。

  • チェックボックス，コンボボックス，エディット，イメージ，リストボックス，OLE，プッシュボタン，ラジオボタン，リッチエディット，スライダ，タブ

モバイル仕様：

モバイル環境ではサポートされません。


関数ディレクトリ ChkDgt

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ChkDgt

ChkDgt

検査数字を作成

検査数字（チェックデジット）を作成します。チェックデジットは、前後に数が追加された数値で、数値の整合性を高めるために使用されます。簡単なアルゴリズムが、チェックデジットを算出する数値の他の数値に適用されます。アルゴリズムを実行し、チェックデジットを比較することで数値が正しいかどうかを判定できます。チェックデジットは、クレジットカードやID番号の照合などに使用されます。

構文：

ChkDgt(文字列,数値)

パラメータ：

  • 文字列 …… 数値を文字列として指定します。この文字列について、検査数字が作成されます（処理対象の数値は、あらかじめ文字列に変換しておかなければなりません）。

  • 数値 …… 係数（モジュラス）が10 または11 を表す数値

  • 0 …… モジュラス10

  • 1 …… モジュラス11

戻り値：

数値

例：

ChkDgt('6789',0)では、2 が返ります。

x が文字列'6789'の場合、ChkDgt(x,0)では2 が返ります。

ChkDgt('6789',1)では、1 が返ります。

例外：

EANコード方式はサポートしていません。

関連トピック：

CRC


関数ディレクトリ Cipher

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Cipher

Cipher

データの暗号化

文字列やバッファデータを暗号化します。

構文：

Cipher(暗号 ID 、バッファ、キー [ , モード , IV ])

パラメータ：

  • 暗号ID …… 指定された暗号のアルゴリズムを表す数値

  • バッファ …… 暗号化対象の文字列またはバッファデータを含んだBLOB項目

  • キー …… 暗号化キーを含む（BLOB）文字列

  • モード …… 暗号IDによって指定された暗号化方法によって選択されたモードを含む文字列。暗号化方法に対応したモードが指定されない場合、デフォルト値としてCBCが使用されます。

注意：

ブロック暗号（CBCを含む)は、フルブロックで動作します。最後のブロックが不完全な場合、NULLで埋められます。したがって、解読後に、埋め込まれたNULLを削除する必要fがあります。代わりに、CFBまたはOFBストリーム暗号を使用してください。

  • IV …… 初期化ベクトルを含むBLOB項目。このパラメータは任意です。

戻り値：

暗号化された文字列またはBLOB値

暗号ID が正しくなかったり、キー長が 暗号IDに合わない場合は、NULL値を返します。

互換性：

Magic Ver9では、文字データでBLOB項目を更新すると、NULLがBLOBの最後に追加されました。

Ver9でのこのようなBLOBの暗号化処理は、Magic xpaと異なる結果を返します。同じ結果を返すようにするには、AsciiChr(0)が連結された文字データでBLOB項目を更新するようにします。これによって、BLOB項目には、追加されたNULL文字が含まれるようになります。

関連トピック：

サポートする暗号化方法とモード

DeCipher

データの暗号化/復号化を行うには


関数ディレクトリ 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 | 8 推奨: 8 | 対称
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 | 16 / 24 推奨:24 | 対称
9 | RSA |  | 48～2048 推奨:128 | 非対称
10 | AES | ECB - NA CBC - 8 CFB - 8 OFB - 8 | 16、24、32 推奨:16 | 対称

注意：

ブロック暗号（CBCを含む)は、フルブロックで動作します。最後のブロックが不完全な場合、NULLで埋められます。したがって、解読後に、埋め込まれたNULLを削除する必要fがあります。代わりに、CFBまたはOFBストリーム暗号を使用してください。


関数ディレクトリ ClickCX

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ClickCX

ClickCX

コントロール内のクリック位置（X座標）を取得 最後にクリックしたコントロールのクリック位置(X座標)がコントロール上の座標を取得します。
構文： | ClickCX()
パラメータ： | なし
戻り値： | 数値
 | コントロール上の座標は、コントロールの左上の座標が（0,0）となり、右下の座標が（水平精度×幅、垂直精度×高さ）となります。 「水平精度」、「垂直精度」はそれぞれ[フォーム特性]ダイアログの[水平精度]欄、[垂直精度]欄の値を示し、「幅」、「高さ」、はそれぞれ[コントロール特性]ダイアログの[幅]欄、[高さ]欄の値を示します。
関連トピック： | ClickCY, ClickWX, ClickWY
モバイル仕様： | モバイル環境ではサポートされません。
注意事項： | ［タブ］コントロールではレイヤ番号を返します。


関数ディレクトリ ClickCY

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ClickCY

ClickCY

コントロール内のクリック位置（Y座標）を取得 最後にクリックしたコントロールのクリック位置(Y座標)がコントロール上の座標を取得します。
構文： | ClickCY()
パラメータ： | なし
戻り値： | 数値
 | コントロール上の座標は、コントロールの左上の座標が（0,0）となり、右下の座標が（水平精度×幅、垂直精度×高さ）となります。 「水平精度」、「垂直精度」はそれぞれ[フォーム特性]ダイアログの[水平精度]欄、[垂直精度]欄の値を示し、「幅」、「高さ」、はそれぞれ[コントロール特性]ダイアログの[幅]欄、[高さ]欄の値を示します。
注意事項： | ［タブ］コントロールでは（-1）を返します。
モバイル仕様： | モバイル環境ではサポートされません。
関連トピック： | ClickCX, ClickWX, ClickWY


関数ディレクトリ ClickWX

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ClickWX

ClickWX

ウィンドウ内のクリック位置（X座標）を取得 最後にクリックしたウィンドウ(フォーム)のクリック位置(X座標)を取得します。
構文： | ClickWX()
パラメータ： | なし
戻り値： | 数値
 | 正確には、ウィンドウ内に表示されているフォームのクリック位置（座標）が返されます。
モバイル仕様： | モバイル環境ではサポートされません。
関連トピック： | ClickCX, ClickCY, ClickWY


関数ディレクトリ ClickWY

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ClickWY

ClickWY

ウィンドウ内のクリック位置（Y座標）を取得 最後にクリックしたウィンドウ(フォーム)のクリック位置(Y座標)を取得します。
構文： | ClickWY()
パラメータ： | なし
戻り値： | 数値
 | 正確には、ウィンドウ内に表示されているフォームのクリック位置（座標）が返されます。
モバイル仕様： | モバイル環境ではサポートされません。
関連トピック： | ClickCX, ClickCY, ClickWX


関数ディレクトリ ClientBlb2File

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ClientBlb2File

ClientBlb2File

BLOBをクライアントのファイルに変換

BLOB項目の内容をファイルとして変換してクライアント側に保存します。

構文：

ClientBlb2File (BLOB項目, ファイル名)

パラメータ：

  • BLOB項目 …… 項目

  • ファイル名 …… パス名を含むファイル名（文字型）。パスが指定されない場合のカレントは、カレントディレクトリ内になります。

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例:

ClientBlb2File (BE, 'C:\bfile.blb')

BLOB項目「BE」の内容をCドライブ上のbfile.blbと名付けられたファイルに変換します。

注意事項：

この関数は、リッチクライアントタスクでのみ有効なクライアント側の関数です。サーバ側で同じ機能を利用する場合は、Blb2Fileを使用してください。

モバイル仕様：

iOSでは、一時フォルダへのアクセスのみが可能です。相対パスを使用したり、ClientOSEnvGet('temp')関数を使用してアクセスできます。


関数ディレクトリ ClientCertificateAdd

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ClientCertificateAdd

ClientCertificateAdd

証明書の定義

動作環境の[SSLクライアント証明書ファイル]に設定された証明書以外のクライアント証明書を指定します。
[コールWebサービス]処理コマンドやHTTP Post/Get関数を呼び出す前に実行します。

構文：

ClientCertificateAdd (PKCS12証明書,パスワード )

パラメータ：

  • PKCS12証明書 …… 証明書のURL（またはパスを含んだファイル名）。PKCS12(Public Key Cryptography Standard #12 )の書式で作成された証明書ファイルを指定してください。

  • パスワード …… 証明書ファイルのエクスポート用パスワード。パスワードなしで出力されている場合は、NULLになります。

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

以下の場合は失敗します。

  • 同じ認証局が複数指定された場合

  • 証明書が存在しない場合

  • 証明書がPKCS12フォーマットでない場合

  • パスワードが正しくない場合

例：

ClientCertificateAdd('my.pfx','%MY_PASS%')

パラメータは以下の通りです。

My.pfx… PKCS12 証明書

%MY_PASS%… パスワードの論理名

注意事項：

  • 動作環境の「SSL CA証明書ファイル」で指定されたCAを基に認証されます。ここに指定されていないCA用の証明書が指定された場合はエラーになります。

  • 証明書が、ClientCertificateDiscard()関数を使用して現在のコンテキストから削除されるまで、全てのクライアント証明書は、現在のコンテキスト上では以降の呼び出し処理でも有効になります。

  • 複数のクライアント証明書を追加する場合は、その都度ClientCertificateAdd関数を実行してください。ただし、同じクライアント証明書を追加することはできません。

  • 秘密キーを出力しないで作成された証明書では認証できません。

例外：

リッチクライアントタスクではサポートされません。

関連トピック：

HTTPGet, HTTPPost, 起動Webサービス,SSL CA証明書ファイル,SSL クライアント証明書ファイル,SSLクライアント証明書パスワード


関数ディレクトリ ClientCertificateDiscard

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ClientCertificateDiscard

ClientCertificateDiscard

証明書の破棄

証明書のリストからクライアント証明書を破棄します。
クライアント証明書は、セキュアWebアプリケーションにアクセスする際にユーザの確認のために使用されます。

構文：

ClientCertificateDiscard (PKCS12 証明書)

パラメータ：

  • PKCS12 証明書 …… クライアント証明書ファイルを指定するURL（またはパスを含んだファイル名）。英数文字で指定してください。

戻り値：

  • 論理値 …… 処理に成功した場合「True」が返ります。クライアント証明書のURLが、ClientCertificateAdd関数によって同じURLによって追加されされた場合や、動作環境の[SSLクライアント証明書ファイル]で指定された名前と合っている場合のみ、証明書は破棄されます。

例：

ClientCertificateDiscard('My.pfx')

パラメータは以下の通りです。

"My.pfx"は、使用するクライアントの証明書です。

注意事項：

証明書がこの関数で実行中に破棄された場合でも、環境設定において指定された証明書は、実行モードから開発モードに切り換える時に再発行されます。

例外：

リッチクライアントタスクではサポートされません。


ClientDbDel

ローカルデータソースの削除

［データ］リポジトリに定義されているローカルデータソースを削除して、処理結果を返します。

構文：

ClientDbDel(データソース番号, ファイル名)

パラメータ：

  • データソース番号 …… ［データ］リポジトリ内のデータソースを示す番号。このパラメータは必須です。

  • ファイル名 …… 上記の[データソース番号]パラメータの代わりに、ここにデータソースの名前を指定することもできます。指定しない場合、「''」を入力しておきます。パスを指定することもでき、パスを指定していない場合、ディレクトリはカレントのディレクトリと解釈されます。

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例：

ClientDbDel('1'DSOURCE,'')

処理が成功した場合、［データ］リポジトリから最初のローカルデータソースが削除され、'True'が返ります。

使用方法：

通常、サーバとクライアントの間でデータの同期を行いたい場合に利用します。

注意事項：

  • この関数は、リッチクライアントタスクでのみ有効なクライアント側の関数です。

  • DSOURCEリテラルを使用することで、［データ］リポジトリ上でデータソースの位置が変更されても、正しくデータソースが削除されます。

  • サーバ上のデータソースを削除する場合は、DbDelを利用してください。

モバイル仕様：

Andorid、iOSでサポートされます。

サポートバージョン：

2.4


ClientDbDiscnt

ローカルデータベースの切断

パラメータで指定されたローカルデータベースを切断します。ローカルデータベースでのみ有効です。

構文：

ClientDbDiscnt(データベース名)

パラメータ：

  • データベース名 …… データベース名を表す文字列を指定します。

戻り値：

論理値 ：以下の値が返ります。

  • Tue …… データベースの切断に成功した場合

  • False…… 切断に失敗したか、データベースに接続できなかった場合

例：

ClientDbDiscnt('Local')

"Local"は、［データベース］テーブルに定義されているローカルデータベースの名前です。

使用方法：

すでに接続された後で（ServerFileToClientを使用して)別のデータベースファイルと差し替える場合に、'Local'データベースから切断します。

注意事項：

  • この関数は、リッチクライアントタスクでのみ有効なクライアント側の関数です。

  • サーバ上のデータベースを切断する場合は、DbDiscntを利用してください。

サポートバージョン：

2.4


関数ディレクトリ ClientDirDlg

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ClientDirDlg

ClientDirDlg

フォルダの選択

Windowsの[フォルダの参照]ダイアログボックスを開き、選択されたフォルダ名を取得します。

構文:

ClientDirDlg (タイトル, 初期フォルダ, 新規フォルダ表示)

パラメータ:

  • タイトル（文字） …… ダイアログボックス内の説明文として表示される文字列。

  • 初期フォルダ（文字） …… 最初にパークするディレクトリ名。空白の場合、カレントディレクトリが選択されます。

  • 新規フォルダ表示（論理） …… [新しいフォルダの作成]ボタンを表示させるかどうかを指定します。

戻り値:

文字列 …… 選択されたフォルダ名がフルパスで返ります。

選択されたパスが存在しない場合、カレントディレクトリが返ります。

ダイアログ上でEscキーか[キャンセル]ボタンを押下すると空の文字列が返ります。

例：

ClientDirDlg ('Select a folder', 'c:\temp\', 'TRUE'LOG)

デフォルフォルダが「C:\temp」で[フォルダの参照]ダイアログが表示されます。

注意事項：

この関数は、リッチクライアントタスクでのみ有効なクライアント側の関数です。

モバイル仕様：

モバイル環境ではサポートされません。


関数ディレクトリ ClientFile2Blb

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ClientFile2Blb

ClientFile2Blb

クライアントのファイルをBLOB化する

クライアントのファイルをBLOB項目に変換します。これはクライアント側の関数です。

構文：

ClientFile2Blb (ファイル名)

パラメータ：

  • ファイル名 …… パス名を含むファイル名（文字型）。

  • パスが指定されない場合は、カレントディレクトリと解釈されます。

戻り値：

BLOB項目… BLOB型項目としてパッケージ化されたファイル

例：

ClientFile2Blb('C:\att1.rtf')

att1.rtfファイルがBLOB項目化して返ります。

注意事項：

この関数は、リッチクライアントタスクでのみ有効なクライアント側の関数です。サーバ側で同じ機能を利用する場合は、File2Blbを使用してください。

モバイル仕様：

iOSでは、一時フォルダへのアクセスのみが可能です。相対パスを使用したり、ClientOSEnvGet('temp')関数を使用してアクセスできます。


関数ディレクトリ ClientFileCopy

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ClientFileCopy

ClientFileCopy

クライアントのファイルをコピーする

クライアント側のディスク上のファイルをコピーします。これはクライアント側の関数です。

構文：

ClientFileCopy(元ファイル,新ファイル)

パラメータ：

  • 元ファイル …… コピー元となる既存のファイル名

  • 新ファイル …… コピー先となる新規のファイル名

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例：

ClientFileCopy('MAGIC.FIL','MAGIC.SAV')

MAGIC.FIL という名前のファイルの内容が、MAGIC.SAV という新規のファイルにコピーされます。

注意事項：

  • ２つのパラメータにはそれぞれ、パスを指定することもできます。パスを省略した場合、カレントのディレクトリと解釈されます。

  • この関数は、リッチクライアントタスクでのみ有効なクライアント側の関数です。サーバ側で同じ機能を利用する場合は、FileCopyを使用してください。この場合は、サーバ側のファイルしかアクセスできません。

モバイル仕様：

iOSでは、一時フォルダへのアクセスのみが可能です。相対パスを使用したり、ClientOSEnvGet('temp')関数を使用してアクセスできます。

関連トピック：

ClientFileDelete , ClientFileExist, ClientFileRename, ClientFileSize


関数ディレクトリ ClientFileDelete

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ClientFileDelete

ClientFileDelete

クライアントのファイルを削除する

クライアント側のディスク上のファイルを削除します。これはクライアント側の関数です。

構文：

ClientFileDelete(ファイル名)

パラメータ：

  • ファイル名 …… 削除するファイルの名前。このパラメータにはパスを指定することもできます。パスが指定されない場合は、カレントディレクトリと解釈されます。

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例：

ClientFileDelete('C:\TEMP\TMPFILE.TMP')

Cドライブ のTEMPディレクトリにあるTMPFILE.TMPが削除されます。

注意事項：

  • ファイルの削除は、[コールOSコマンド]処理コマンドではなく、この関数を使用するようにしてください。

  • この関数は、リッチクライアントタスクでのみ有効なクライアント側の関数です。サーバ側で同じ機能を利用する場合は、FileDeleteを使用してください。この場合は、サーバ側のファイルしかアクセスできません。

モバイル仕様：

iOSでは、一時フォルダへのアクセスのみが可能です。相対パスを使用したり、ClientOSEnvGet('temp')関数を使用してアクセスできます。

関連トピック：

ClientFileCopy , ClientFileExist, ClientFileRename, ClientFileSize


関数ディレクトリ ClientFileExist

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ClientFileExist

ClientFileExist

クライアントのファイルの存在を確認

クライアント側のディスク上のファイルの存在を確認します。これはクライアント側の関数です。

構文：

ClientFileExist(ファイル名)

パラメータ：

  • ファイル名 …… 確認するファイルの名前。このパラメータにはパスを指定することもできます。パスが指定されない場合は、カレントディレクトリと解釈されます。

戻り値：

論理値 …… ファイルが存在する場合「True」が返ります。

例：

ClientFileExist('c:\xpa\magic.ini')

C ドライブのMagic xpaディレクトリにmagic.iniファイルがあれば、「True」 が返ります。

注意事項：

この関数は、リッチクライアントタスクでのみ有効なクライアント側の関数です。サーバ側で同じ機能を利用する場合は、FileExistを使用してください。

モバイル仕様：

iOSでは、一時フォルダへのアクセスのみが可能です。相対パスを使用したり、ClientOSEnvGet('temp')関数を使用してアクセスできます。

関連トピック：

ClientFileCopy, ClientFileDelete, ClientFileRename, ClientFileSize


関数ディレクトリ ClientFileInfo

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ClientFileInfo

ClientFileInfo

クライアントのファイル情報

クライアント側のディスク上のファイルの情報を取得します。これはクライアント側の関数です。

構文：

ClientFileInfo(ファイル名、情報タイプ)

パラメータ：

  • ファイル名(文字列) …… 情報を取得したいファイル名。論理名が使用できます。

  • 情報タイプ(数値) …… 取得する情報の種類を指定します（詳細は、MSDNのサイトを参照してください）。

情報タイプ

内容

1

ファイル名のみ

2

パス名のみ

3

ファイル名+パス名

4

属性 … カンマ区切りで以下の文字列を指定できます。

  • FILE … ファイル

  • DIRECTORY … ディレクトリ

  • ARCHIVE … アーカイブ可能

  • READONLY … 読み取り専用

  • HIDDEN … 隠しファイル

  • COMPRESSED … 圧縮

  • ENCRYPTED … 暗号化

  • SYSTEM … システムファイル

5

サイズ（バイト数）

6

作成日付

7

作成時刻

8

更新日付

9

更新時刻

10

アクセス日付

11

アクセス時刻

戻り値：

指定した情報タイプによってデータ型が異なります。指定したファイルが存在しないような場合、NULLが返ります。

  • 1～4…文字列

  • 5…数値

  • 6,8,10…日付

  • 7,9,11…時刻

例：

ClientFileInfo('C:\Program Files\xpa\Studio\MagicxpaStudio.exe,2)

パス名のみの「C:\Program Files\xpa\Studio」が返ります。

注意事項：

この関数は、リッチクライアントタスクでのみ有効なクライアント側の関数です。サーバ側で同じ機能を利用する場合は、FileInfoを使用してください。

モバイル仕様：

モバイル環境では、サポートされません。

関連トピック：

FileInfo


関数ディレクトリ ClientFileListGet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ClientFileListGet

ClientFileListGet

クライアントのファイル一覧の取得

クライアント側のディスク上の指定したディレクトリ内のファイル一覧を取得します。これはクライアント側の関数です。

構文：

ClientFileListGet(ディレクトリ名, フィルタ,サブディレクトリ検索フラグ)

パラメータ：

  • ディレクトリ名 …… ファイル一覧を取得するディレクトリ名を表す文字列。論理名が使用できます。

  • フィルタ …… 検索ファイルの名前を絞り込むフィルタを表す文字列。ワイルドカード(*)が指定できます。複数のフィルタを指定する場合は、「|」で区切ります。（例： ‘*.xml|*.xsd’）空白が指定された場合は、全てのファイル名が返ります。

  • サブディレクトリ検索フラグ… サブディレクトリも検索するかどうかを指定する論理値。

  • True …… サブディレクトリも検索する

  • False …… 指定されたディレクトリのみ検索する

戻り値：

文字型のセルモデルが定義されたベクトル項目

各セルにファイル名が格納されます。ファイルが存在しない場合、NULLが返ります。サブディレクトリ内のファイルは、相対パスが付加された名前が返ります。

例：

ClientFileListGet('c:\temp','*.xml|*.xsd','TRUE’LOG)

「c:\temp」ディレクトリ内のサブディレクトリを含んだファイル名の内、拡張子が、「xml」と「xsd」のファイルの一覧が返ります。

注意事項：

この関数は、リッチクライアントタスクでのみ有効なクライアント側の関数です。サーバ側で同じ機能を利用する場合は、FileListGetを使用してください。

モバイル仕様：

モバイル環境ではサポートされません。


ClientFileOpenDlg

［ファイルを開く］ダイアログのオープン

Windowsの［ファイルを開く］ダイアログを開き、選択されたファイル名を取得します。

構文:

ClientFileOpenDlg (タイトル, 初期ディレクトリ, フィルタ, ファイルの存在チェック, 複数指定)

パラメータ:

  • タイトル （文字列） …… ダイアログボックスのウィンドウタイトルに表示される文字列

  • 初期ディレクトリ （文字列） …… 最初にパークするディレクトリ名。ファイル名を含めることもできます。その場合、ダイアログに表示されます。空白の場合、以前オープンしたときのディレクトリが選択されます。

  • フィルタ （文字列） …… ダイアログに表示されるファイルの種類（拡張子）を指定するためのフィルタ。垂直バー(|)とフィルタパターンを組み合わせることで、ファイルの種類の説明を指定することができます。複数の種類を指定する場合は、垂直バーを区切文字として連結させます。セミコロン（;）を使用することで1つのファイルの種類に対して複数の拡張子を連結させることもできます。先頭に指定されたフィルタ指定が、ダイアログボックスのデフォルトとなります。

例: '画像ファイル (*.BMP;*.JPG;*.GIF) | *.BMP;*.JPG;*.GIF|すべてのファイル (*.*)|*.*'

  • ファイルの存在チェック （論理） …… ユーザが指定したファイル名が存在しない場合に警告メッセージを表示するかどうかを指定します。'FALSE'LOG が指定された場合、警告は表示されず、指定されたファイル名が戻り値としてそのまま返ります。

  • 複数指定 （論理） …… ダイアログボックスで複数のファイルが選択できるようにするかどうかを指定するフラグです。「True」が指定された場合、"|"によって区切られた複数の名前が返ります。

戻り値:

文字列 …… 選択されたファイル名

例：

ClientFileOpenDlg ('Open file', 'c:\temp\', 'All files (*.*)|*.*', 'False'LOG, 'False'Log)

デフォルトフォルダが「C:\temp」で、すべてのファイルを表示するダイアログが開きます。

ClientFileOpenDlg ('Open file', 'c:\temp\', '画像ファイル (*.BMP;*.JPG;*.GIF) | *.BMP;*.JPG;*.GIF|すべてのファイル (*.*)|*.*', 'True'LOG, 'False'LOG)

デフォルトフォルダが「C:\temp」で、2種類のファイル種類が選択できます。指定したファイルが存在しない場合、警告メッセージが表示されます。

ClientFileOpenDlg ('Open file', 'c:\temp\', 'All files (*.*)|*.*', 'False'LOG, 'True'Log)

デフォルトフォルダが「C:\temp」で、すべてのファイルを表示するダイアログが開きます。複数のファイルを選択することができます。

注意事項：

この関数は、リッチクライアントタスクでのみ有効なクライアント側の関数です。

フィルタは、必ず垂直バー(|)とフィルタパターンを組合せて指定してください。

モバイル仕様：

ClientFileOpenDlg関数を使用することでiOSクライアントからカメラを操作することができます。

この関数で”初期ディレクトリ”（2番目のパラメータ）に以下の値を設定することができます。（サポートバージョン：2.2）

  • Camera …… カメラ機能が起動します。標準でカメラ機能が利用できないデバイスでこの関数を実行した場合は、撮影／保存ができない場合があります。

  • images …… イメージ（ギャラリー）でイメージを選択できます。ファイルを選択するアプリが別途インストールされている場合は、ファイルを開くためのアプリの選択画面が表示されますが、Androidはギャラリーで開くようにしてください。

関数からは、写真のファイル名がフルパスで返ります。ClientFileToServer関数を使用したり、BLOB項目に画像を格納したりすることでサーバに画像をアップロードすることができます。


関数ディレクトリ ClientFileRename

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ClientFileRename

ClientFileRename

クライアントのファイルの名前の変更

クライアント側のディスク上のファイルの名前を変更します。これはクライアント側の関数です。

構文：

ClientFileRename(元ファイル,新ファイル)

パラメータ：

  • 元ファイル …… 名前を変更するファイルの名前

  • 新ファイル …… 変更後の名前

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例：

ClientFileRename('MAGIC.FILE','MAGIC.SAV')

MAGIC.FIL という名前がMAGIC.SAVに変更されます。

注意事項：

  • 2 つのパラメータにはそれぞれ、パスを指定することもできます。パスを省略した場合、ディレクトリはカレントディレクトリと解釈されます。

  • （ドライブ名が間違っていたなどの理由で）リネームできなかった場合、指定されたドライブにファイルがコピーされます。

  • この関数は、リッチクライアントタスクでのみ有効なクライアント側の関数です。サーバ側で同じ機能を利用する場合は、FileRenameを使用してください。

モバイル仕様：

iOSでは、一時フォルダへのアクセスのみが可能です。相対パスを使用したり、ClientOSEnvGet('temp')関数を使用してアクセスできます。

関連トピック：

ClientFileCopy , ClientFileDelete, ClientFileExist, ClientFileSize


関数ディレクトリ ClientFileSaveDlg

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ClientFileSaveDlg

ClientFileSaveDlg

［名前を付けて保存］ダイアログのオープン

Windowsの［名前を付けて保存］ダイアログを開き、選択されたファイル名が返ります。

構文：

ClientFileSaveDlg (タイトル, 初期ディレクトリ, フィルタ, デフォルト拡張子, 上書き確認)

パラメータ：

  • タイトル（文字列） …… ダイアログボックスのウィンドウタイトルに表示される文字列

  • 初期ディレクトリ （文字列） …… 最初にパークするディレクトリ名。ファイル名を含めることもできます。この場合、ダイアログに表示されます。空白の場合、以前オープンしたときのディレクトリが選択されます。

  • フィルタ（文字列） …… ダイアログに表示されるファイルの種類（拡張子）を指定するためのフィルタ。垂直バー(|)とフィルタパターンを組み合わせることで、ファイルの種類の説明を指定することができます。複数の種類を指定する場合は、垂直バーを区切文字として連結させます。セミコロン（;）を使用することで1つのファイルの種類に対して複数の拡張子を連結させることもできます。先頭に指定されたフィルタ指定が、ダイアログボックスのデフォルトとなります。

例: '画像ファイル (*.BMP;*.JPG;*.GIF) | *.BMP;*.JPG;*.GIF|すべてのファイル (*.*)|*.*'

  • デフォルト拡張子（文字列） …… ファイルの拡張子が省略された場合、ここで指定された文字列が拡張子として設定されます。

  • 上書き確認（論理） …… すでに存在しているファイル名が指定された場合に、警告メッセージを表示するかどうかを指定します。

戻り値：

文字列 …… 選択されたファイル名

例：

ClientFileSaveDlg ('Save file', 'c:\temp\', 'All files (*.*)|*.*, '', 'False'LOG)

デフォルトフォルダが「C:\temp」で、すべてのファイルを表示するダイアログが開きます。

ClientFileSaveDlg ('Save file', 'c:\temp\', 'Image Files (*.BMP;*.JPG;*.GIF) | *.BMP;*.JPG;*.GIF|All files (*.*)|*.*', '', 'False'LOG)

デフォルトフォルダが「C:\temp」で、2種類のファイル種類が選択できます。指定したファイルが存在していても、確認メッセージは表示されません。

ClientFileSaveDlg ('Save file', 'c:\temp\', 'All files (*.*)|*.*, 'txt', 'True'LOG)

デフォルトフォルダが「C:\temp」で、すべてのファイルを表示するダイアログが開きます。拡張子を指定しない場合、「TXT」として扱われ、が指定したファイルが存在している場合、確認メッセージが表示されます。

ClientFileSaveDlg ('Save file', 'c:\temp\abc.txt', 'All files (*.*)|*.*', 'FALSE'LOG, 'False'Log)

「abc.txt」がデフォルトファイル名、「C:\temp」がデフォルトパスになるファイル保存ダイアログボックスを開き、すべてのファイル名が表示されます。

注意事項：

この関数は、リッチクライアントタスクでのみ有効なクライアント側の関数です。

フィルタは、必ず垂直バー(|)とフィルタパターンを組合せて指定してください。

モバイル仕様：

モバイル環境ではサポートされません。


関数ディレクトリ ClientFileSize

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ClientFileSize

ClientFileSize

クライアントのファイルサイズの照会

クライアント側のディスク上のファイルのサイズ（バイト）を取得します。これはクライアント側の関数です。

構文：

ClientFileSize(ファイル名)

パラメータ：

  • ファイル名 …… サイズを取り出すファイルの名前。パスを指定することもできます。パスが指定されない場合は、カレントディレクトリと解釈されます。

戻り値：

数値 …… ファイルのサイズ（Byte）

例：

ClientFileSize('c:\xpa\magic.ini')

C ドライブのMagic xpaディレクトリのmagic.iniファイルのサイズ（バイト数）が返ります。

注意事項：

この関数は、リッチクライアントタスクでのみ有効なクライアント側の関数です。サーバ側で同じ機能を利用する場合は、FileSizeを使用してください。

ファイルサイズの取得する場合、ClientFileInfo関数を使用することを推奨します。

モバイル仕様：

モバイル環境ではサポートされません。

関連トピック：

ClientFileCopy, ClientFileDelete, ClientFileExist


関数ディレクトリ ClientFileToServer

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ClientFileToServer

ClientFileToServer

ファイルをコピーする

リッチクライアントのクライアント側からサーバ側に指定されたファイルをコピーします。

構文：

ClientFileToServer(クライアントのファイル名, サーバのファイル名)

パラメータ：

  • クライアントのファイル名 …… クライアント側のファイルの名前。パスが指定されなかったり相対パスが指定された場合、アプリケーションのキャッシュフォルダをカレントとして扱われます。

  • サーバのファイル名 …… サーバ側のファイルの名前。パスが指定されなかったり相対パスが指定された場合、アプリケーションのフォルダをカレントとして扱われます。

戻り値：

数値 …… 処理結果に応じて以下の数値が返ります。

  • 0 …… 成功

  • 1 …… クライアント側のファイルが見つからない

  • 2 …… サーバ側にファイルを書き込まなかった

  • 3 …… 転送上の問題

失敗した場合、[存在確認]オプションの設定内容に基づいて以下の内容を返します。

  • True …… Nullが返ります。

  • False(または指定されていない場合) …… 空白が返ります。

例：

ClientFileToServer ('c:\temp\my.bmp', 'c:\images\my.bmp')

my.bmpファイルをクライアント側のC:\tempフォルダからサーバ側の C:\imagesフォルダにコピーします。

注意事項：

この関数は、リッチクライアントタスクでのみ有効なクライアント側の関数です。

IISは、リクエストサイズを30MBに制限します。

クライアントからサーバによりサイズの大きいファイルを送る必要がある場合、以下のようにIISの値を変更してください。

  1. ［コンピュータの管理］（PCの、「コンピューター」アイコンで右クリックし、「管理」を選択します）を実行します。

  2. 「サービスとアプリケーション」を選択し、「インターネットインフォメーションサービス（IIS）マネージャー」をクリックします。

  3. 「要求フィルター」アイコンをダブルクリックします。

  4. 右側の［操作］ペインで「機能設定の編集」をクリックします。

  5. ［要求フィルター設定の編集］ダイアログボックスで、［許可されたコンテンツ最大長（バイト）］の値を増やします。

モバイル仕様：

iOSでは、一時フォルダへのアクセスのみが可能です。相対パスを使用したり、ClientOSEnvGet('temp')関数を使用してアクセスできます。

関連トピック：

ServerFileToClient

サーバとクライアントの間でファイル転送を行うには


関数ディレクトリ ClientGetUniqueMachineID

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ClientGetUniqueMachineID

ClientGetUniqueMachineID

クライアントIDの取得

クライアントPCのユニークなIDを取得します。

構文：

ClientGetUniqueMachineID()

パラメータ：

なし

戻り値：

文字列 …… クライアントPCを識別するための18桁のユニークな英数字

IDは、ユニークで同じPCでは同じ値が返ります。

  • リッチクライアントの呼び出し時にクライアントの識別用に使用されます。

  • 中間的なネットワークサーバに依存しません

戻り値のIDの最後の文字によって、クライアントがモバイルデバイス（M）かWindows PC（D） なのかが分かります。残りの文字はハッシュIDです。

IDの書式は、Magic xpa側に依存します。これを解析することはできません。返された値をそのまま使用してください。

注意事項：

このIDは、再起動やインターネットとの再接続時に変更される場合があります。


ClientNativeCodeExecute 関数

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ClientNativeCodeExecute

ClientNativeCodeExecute

モバイル用ネイティブコードの呼び出し

Android/iOSデバイス用に定義されたネイティブコードを呼び出してパラメータを渡します。

構文：

ClientNativeCodeExecute ('モジュール名.メソッド名, '引数タイプ', 引数1, 引数2, ...)

パラメータ：

モジュール名.メソッド名 …… 呼び出したいモジュール名とメソッド名

引数タイプ …… 引数のタイプを表す文字列。最後の文字は、メソッドのからの戻り値のタイプを表しています。ここをクリックすると引数タイプのリストが表示されます。

Arg1, Arg2, …… ネイティブコードのメソッドにに渡すパラメータ。

戻り値：

ネイティブコードのメソッドからの戻り値。

例：

ClientNativeCodeExecute('myclass.myfunc','2AA',123,A)

myclassクラス内のmyfuncという名前のメソッドを呼び出し、数値と文字列を含む項目Aを渡します。戻り値は、文字列になります。

この構文は、2.4までの以下の処理を置き換わります。

ClientOSEnvGet('Device_udf|myfunc_123_'&A) この場合、ユーザ定義関数内で文字列を解析します。

注意事項：

  • この関数は、リッチクライアントでのみ有効なクライアント側の関数です。

  • この関数の場合、primitiveタイプ（例えば、stiringとnumeric）間でのMagic xpaによる型変換は行われません。

  • 戻り値だけが、Magic xpaに返されます。送られた項目に対する修正内容は、Magic xpaには反映されません。

  • スタティックなネイティブコードのメソッドのみ呼び出すことができます。

  • iOSデバイスの場合は、メソッドに複数の異なるパラメータを送っても、NSArrayタイプの1つのパラメータだけが定義されたメソッド呼び出すように定義する必要があります。

サポートバージョン：

2.5


関数ディレクトリ ClientOSEnvGet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ClientOSEnvGet

ClientOSEnvGet

クライアントの環境変数の取得

クライアント側のOSの環境変数の値を取得します。これはクライアント側の関数です。

構文：

ClientOSEnvGet(環境変数)

パラメータ：

  • 環境変数 …… OSの環境変数の名前を指定します。

戻り値：

文字列 …… 指定された環境変数の実行値を返します。環境変数が指定されていない場合は、空白が返ります。

例：

ClientOSEnvGet(‘PATH’)

「PATH」という環境変数の実行値が返ります。

注意事項：

この関数は、リッチクライアントタスクでのみ有効なクライアント側の関数です。サーバ側で同じ機能を利用する場合は、OSEnvGetを使用してください。この場合、サーバPCの環境変数の値が返ります。

モバイル仕様：

Android／iOS端末の場合は、以下のような値を取得することができます。

  • ClientOSEnvGet（‘device_os’) …… 端末のOSを返します。

  • ClientOSEnvGet（‘device_screen-width’) …… 端末の縦方向の幅をピクセル単位で返します。

  • ClientOSEnvGet（‘device_screen-height’) …… 端末の縦方向の高さをピクセル単位で返します。

  • ClientOSEnvGet（‘device_physical-width’) …… 端末の縦方向の物理幅をインチ単位で返します。（サポートバージョン：2.3）

  • ClientOSEnvGet（‘device_physical-height’) …… 端末の縦方向の物理高さをインチ単位で返します。（サポートバージョン：2.3）

  • ClientOSEnvGet（‘device_orientation’) …… 端末の傾きを返します。

  • ClientOSEnvGet（‘device_os-version’) …… 端末のOSのバージョン番号を返します。

  • ClientOSEnvGet（‘device_model’) …… 端末の機種モデルを返します。

  • ClientOSEnvGet（‘device_touch’) …… 端末がタッチスクリーンを備えている場合、“true”を返します。

  • ClientOSEnvGet（‘temp’) …… 端末の一時フォルダを返します。（サポートバージョン：2.3）

  • ClientOSEnvGet（‘device_location’) …… 端末の位置を返します（「装置の位置情報（GPS)の取得」の説明を参照してください）。

  • ClientOSEnvGet (‘device_magic-version’) …… RIAクライアントのバージョンを返します。

  • ClientOSEnvGet (‘device_udf|my_string’) …… ユーザ定義関数を呼び出します(「ネイティブOSコードの利用」の説明を参照してください)。（サポートバージョン：2.2）

  • ClientOSEnvGet (‘device_udf|getargs’) …… URLスキーマによる呼び出しで指定されたパラメータの値を返します。（サポートバージョン：2.3）

  • ClientOSEnvGet ('device_resource-folder') …… リソースフォルダとして利用できる名前を返します。（サポートバージョン：2.3）

  • ClientOSEnvGet ('device_udf|getpushid ') …… Push通知を以下のようにデバイスに送るために使用するデバイスIDを返します。（サポートバージョン：2.４）

Androidデバイスでは、Javaの定義済みキーを使用することもできます（例：ClientOSEnvGet（ejava.io.tmpdir’)で、追加情報を取得します）。

詳細は、以下を参照してください。

http://developer.android.com/reference/java/lang/System.html


ClientSessionSet

クライアントのセッションの設定

このクライアント側の関数は、セッションの環境設定を行います。

構文：

ClientSessionSet (キー, 値)

パラメータ：

  • キー …… 環境設定用のキーを指定します。現在以下のキーがサポートされています。

  • EnableCommunicationDialogs…… このキーは、サーバまたはネットワークへのアクセスエラーが発生した場合に［リトライ］ダイアログの表示を無効にするかどうかを定義します。

    • True(デフォルト) …… ダイアログボックスは表示されます。

    • False …… ダイアログボックスは表示されません。"False"が設定された場合、ServerLastAccessStatus関数や［無効サーバ］イベントを使用してアプリケーション内でネットワークエラーを処理する必要があります。

  • 値 …… 「キー」に設定する値

戻り値：

論理値 …… 処理が成功したら設定されます。

使用方法：

オフラインプログラムやクライアント側でデータ保存を行う場合のように、アプリケーション内でネットワークエラーの処理を行う場合に利用できます。

例：

ClientSessionSet('EnableCommunicationDialogs','FALSE'LOG)

サポートバージョン：

2.4


関数ディレクトリ ClientSessionStatisticsGet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ClientSessionStatisticsGet

ClientSessionStatisticsGet

クライアントのセッション情報の取得

クライアント側の現在のセッション情報を取得します。

構文：

ClientSessionStatisticsGet()

パラメータ：

なし

戻り値：

以下の数値がカンマ区切りの連続値として返ります。

  • リクエスト数

  • 外部時間(ms) …… クライアントがリクエストの終了待ちをする時間。ネットワーク上の時間+MRBの処理時間+サーバの処理時間

  • ブローカ時間(ms) …… MRBによってリクエストが有効なサーバに割り当てられるまでの待ち時間

  • サーバ時間(ms) …… サーバがリクエストを処理する時間

  • セッション時間(ms) …… クライアントが開始されてから終了するまでの時間

  • アップロード(kb)

  • ダウンロード(kb)

  • アップロード率(%)

  • ダウンロード率(%)

例：

ClientSessionStatisticsGet()

注意事項：

  • リッチクライアントタスクでのみ有効なクライアント側の関数です。

  • この関数の一般的な利用方法は、いくつかのスナップショット情報を取得し、リクエストの超過分や外部時間との比較などがあります。

  • この関数はリクエストをMRBに送信します。このためクエスト数を増やすことになります。

  • プログラムがMagic xpa Studioで実行された場合、圧縮されないためダウンロードとアップロード比率は0%になります。

関連トピック：

Magic.iniの[MAGIC_RIA] セクション

リッチクライアントアプリケーションの微調整を行うには


関数ディレクトリ ClipAdd

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ClipAdd

ClipAdd

クリップボードに追加する値の定義

OSのクリップボードに追加する値と型を定義してバッファに追加します。

構文：

ClipAdd (値,書式, [値, 型,])

パラメータ：

１対のパラメータの組み合わせで複数の値を指定できます。

  • 値 …… BLOB を除くxpaの項目

  • 書式 …… 項目の書式

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

OS がクリップボードに対応してない場合は、「False」になります。

注意事項：

この関数は、クリップボードのバッファに値を置きます。 値の間にタブを挿入します。文字列の末尾に改行コードを入れます。

モバイル仕様：

モバイル環境ではサポートされません。

関連トピック：

ClipRead、ClipWrite


関数ディレクトリ ClipRead

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ClipRead

ClipRead

クリップボードの読込 OSのクリップボードの内容を取得します。
構文： | ClipRead()
パラメータ： | なし
戻り値： | BLOB値 …… クリップボードの内容がCF_TEXT形式で返ります。処理が実行されなかった場合やクリップボードが空の場合は、NULL が返ります。
モバイル仕様： | モバイル環境ではサポートされません。
関連トピック： | ClipAdd、ClipWrite


関数ディレクトリ ClipWrite

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ClipWrite

ClipWrite

クリップボードの書込 ClipAdd関数で定義された内容をOSのクリップボードに書き込みます。
構文： | ClipWrite()
パラメータ： | なし
戻り値： | 論理値 …… 処理に成功した場合「True」が返ります。
モバイル仕様： | モバイル環境ではサポートされません。
関連トピック： | ClipAdd、ClipRead


関数ディレクトリ ClrCache

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ClrCache

ClrCache

現在のタスクのキャッシュをクリア 現在のタスクのデータキャッシュをクリアし、Magic xpaが直接データベースからレコードを読むようにします。この関数はオンラインタスクとリッチクライアントタスクでのみ有効です。
構文： | ClrCache()
パラメータ： | なし
戻り値： | 論理値 …… 処理に成功した場合「True」が返ります。


関数ディレクトリ CMonth

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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

指定された日付に対応する月名を取得するには


関数ディレクトリ CndRange

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > CndRange

CndRange

条件を使用して項目に値を設定

項目の値に関する条件付き範囲／位置付を指定します。

構文：

CndRange (条件,値)

パラメータ：

  • 条件 …… 実行時に評価される論理式

  • 値 …… 条件が「True」 の時に戻り値として返される値

戻り値：

指定した条件が’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」の場合、この指定は範囲条件としては処理されません。


関数ディレクトリ CodePage

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > CodePage

CodePage

コードページの指定

Magic xpaがデータの入出力時に使用するコードページを指定します。

Magic xpaがデータを受ける場合、指定されたコードページを基に Magic xpaの内部書式に変換されます。またMagic xpa がデータを送る場合も、Magic xpaの内部書式から指定されたコードページを基に変換します。コードページは、現在のコンテキストによって次のコードページが指定されるまで、現在のコンテキストのみに対して有効です。デフォルトコードページは、OSに依存します。(日本語OS では、Shift-JIS)この関数は、Java 関数や Webサービスの処理で使用します。

構文：

CodePage(コードページ)

パラメータ：

  • コードページ……… コードページを表す数値。 「0」の場合、コードページをOSのデフォルト値にします。

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例：

CodePage(932)は、コードページを 「Shift-JIS」 に設定します。

関連トピック：

コードページ、Java関数


関数ディレクトリ COMError

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > COMError

COMError

COMとのアクセスエラー情報の取得

xpaがCOMオブジェクトをアクセスした時に発生した最後のエラー情報を取得します。

構文：

COMError(情報タイプ)

パラメータ：

  • 情報タイプ …… 取得する情報を指定する数値。 以下の通りです。

  • 1 …… エラー内容

  • 2 …… エラーが発生したCOMオブジェクト

  • 3 …… エラーが発生したインデックス番号

  • 4 …… エラーに関するヘルプファイル

  • 5 …… エラーに関するヘルプトピックのコンテキスト番号

  • 0 …… 実際のエラー番号を示すHRESULT 値。16進コードで返ります。

戻り値：

情報タイプパラメータによって定義された文字列。 引数インデックスのような数値も文字列で返ります。 エラーがない時や、情報タイプの値が正しくない場合は空白が返ります。

関連トピック：

COMオブジェクトによって発生したエラーを処理するには


関数ディレクトリ COMHandleGet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > COMHandleGet

COMHandleGet

COMオブジェクトのハンドルを取得

ロードされたCOMオブジェクトのハンドル値を取得します。ハンドルは数値を取得します。

構文：

COMHandleGet(オブジェクト)

パラメータ：

  • オブジェクト …… COM オブジェクトが定義された BLOB項目

戻り値：

オブジェクトのハンドルを表す正数値

処理が失敗した場合は 以下の負数が返ります。

  • -1 …… 項目の型が、ActiveXかOLE でない場合

  • -3 …… オブジェクトがロードされない場合

注意事項：

COMHandleGetやCOMHandleSet 関数の扱いには十分注意してください。間違ったハンドルを誤ったオブジェクトに割り当てると、予期しない動作を実行する場合があります。


関数ディレクトリ COMHandleSet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > COMHandleSet

COMHandleSet

指定したハンドルのオブジェクトを参照

COMHandleGet関数によって返されたハンドル番号を別のCOMオブジェクト項目に設定します。

構文：

COMHandleSet(参照項目、ハンドル)

パラメータ：

  • 参照項目 …… COMオブジェクトが定義された変数項目。VARリテラルが必要です。

  • ハンドル …… 数値：COMHandleGet関数で取得されたハンドル値

戻り値：

数値 …… 処理が成功すると 0 が返ります。

失敗した場合は、以下のような負数が返ります。

  • -1 …… 項目の型が、 ActiveXかOLE でない場合

  • -2 …… 項目の[インスタンス化]特性が「A=自動」と設定されている場合

  • -3 …… オブジェクトは、定義された項目によってロードされていない場合

  • -4 …… 項目によって提供されたハンドルが正しくない場合

  • -5 …… オブジェクトが既にインスタンス化されている場合

  • -6 …… オブジェクトが更新できない場合

注意事項：

COMHandleGetやCOMHandleSet 関数の扱いには十分注意してください。間違ったハンドルを誤ったオブジェクトに割り当てると、予期しない動作を実行する場合があります。


関数ディレクトリ COMObjCreate

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > COMObjCreate

COMObjCreate

COMオブジェクトのインスタンスを作成

オブジェクトが定義された変数項目を基にCOM オブジェクトのインスタンスを作成します。COMObjCreate関数は、[保存データ]特性が「R=参照」に設定されたActiveXかOLE項目のみ有効です。

構文：

COMObjCreate(項目)

パラメータ：

  • 項目 …… COMオブジェクトが定義された変数項目。VARリテラルが必要です。

戻り値：

数値 …… 処理が成功した場合は、0が返ります。処理が失敗した場合は、以下のような負数が返ります。

  • -1 …… 項目の型が、ActiveXかOLE ではない場合

  • -2 …… 項目の[インスタンス化]特性が「A=自動」と設定されている場合

  • -3 …… オブジェクトは、定義された項目によって既にロードされていた場合

  • -4 …… 原因不明のエラー

COMのハンドルは、COMHandleGet関数でのみ取得できます。

注意事項：

  • 必ず［項目更新］処理コマンドを使用してください。［アクション］処理コマンドは使用できません。

  • 手動でロードされたCOM オブジェクトは、手動で解放してください。Magicエンジンは、この関数でロードされたオブジェクトを自動的に解放しません。 手動でロードされたオブジェクトを解放する場合は、COMObjRelease 関数を使用します。


関数ディレクトリ COMObjRelease

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > COMObjRelease

COMObjRelease

COMオブジェクトの解放

COMObjCreate関数や自動インスタンス化設定によってロードされたCOM オブジェクトを解放します。

構文：

COMObjRelease(項目)

パラメータ：

  • 項目 …… COMオブジェクトが定義された変数項目。VARリテラルが必要です。

戻り値：

数値 …… 処理が成功すると 0 が返ります。

失敗した場合は、以下のような負数が返ります。

  • -1 …… 項目の型が、ActiveXかOLE ではない場合

  • -2 …… 項目の[インスタンス化]特性が「A=自動」と設定されている場合

  • -3 …… オブジェクトは、定義された項目によってロードされていない場合

注意事項：

必ず［項目更新］処理コマンドを使用してください。［アクション］処理コマンドは使用できません。


関数ディレクトリ COS

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > COS

COS

余弦（コサイン）

角度の余弦(コサイン)を取得します。角度はラジアンで指定します。

構文：

COS(数値)

パラメータ：

  • 数値 …… ラジアンで示した角度

戻り値：

数値

例：

COS(0.7854)では、0.70711 が返ります。

関連トピック：

ACOS, SIN, ASIN, TAN, ATAN


関数ディレクトリ Counter

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Counter

Counter

バッチ繰り返しカウンタ

バッチタスクや非インタラクティブなリッチクライアントタスクにおけるレコードレベル処理の実行回数が返ります。

構文：

Counter(世代番号)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

数値

例：

[タスク終了条件]特性に式としてCounter(0)=5 を指定し、[チェック時期]を「A=後置」にした場合、現在のタスク（世代番号は0 ）は、レコードレベルの処理が5 回実行されると終了します。

関連トピック：

バッチプログラムで処理されたレコードの連番を取得するには


関数ディレクトリ CRC

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > CRC

CRC

CRC方式による計算

文字列に対するCRC方式での計算値が返ります。

構文：

CRC(文字列,数値)

パラメータ：

  • 文字列 …… この文字列に対してCRC が実行されます。

  • 数値 …… CRC アルゴリズムを示す数値。Magic xpaでは、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


関数ディレクトリ CtrlGoto

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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になります。ただし、移動方法によっては、前のコントロールに移動する場合もあります。

注意事項：

  • 関数の実行後、アプリケーションがアイドル状態になった時に、フォーカスが切り替わります。

  • 行番号は、可視行のみを対象とします。これは、テーブルに10行表示されている場合は、11行目の値が無視されることを意味します。表示されないレコードへ移動したい場合は、LocateAdd関数を使用してください。

  • オンラインタスクの場合、移動したいコントロールがサブフォームまたはフレームの場合、サブフォームのタスクはまだロードされていないため、CtrlGoto関数は［タスク前］または［レコード前］のロジックユニットで使用できません。［ウェイト］特性が「No」に設定されたユーザイベントを［タスク前］または［レコード前］から発行する代わりに、CtrlGotoを使用することができます。

モバイル仕様：

Androidではサポートされません。

関連トピック：

特定のコントロールにカーソルを移動させるには


関数ディレクトリ CtrlHWIND

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > CtrlHWND

CtrlHWND

コントロールのウィンドウハンドルを取得

コントロールのウィンドウハンドル値が返ります。外部DLLのユーザ関数内でこのハンドルを使用して、Magicアプリケーションの表示形式を決定します。

構文：

CtrlHWND(コントロール名)

パラメータ：

  • コントロール名 …… [フォーム]エディタで指定されるコントロール名

戻り値：

ウィンドウハンドル値（4 バイトのロング数値） …… この値はユーザ関数(UDF ）またはユーザプロシージャ（UDP ）へ渡すことができます。

例：

CtrlHWND('Olecontrol')

Olecontrol はフォーム（クラス1 以上）上のコントロール名です。関数はこのコントロールのウィンドウズハンドル値を返します。

注意事項：

具体的には次のコントロールで利用できます。

ラジオボタン，リストボックス，OLE コントロール，プッシュボタン，コンボボックス，スライダ，リッチエディットコントロール，テキストコントロール，チェックボックス

モバイル仕様：

モバイル環境では、サポートされません。


関数ディレクトリ CtxClose

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > CtxClose

CtxClose

コンテキストのクローズ

コンテキストテーブルに存在する任意のコンテキストを削除します。
コンテキストをクローズする際、エンジンが処理している全てのプログラムを終了させます。

構文：

CtxClose (コンテキストID,ウェイト)

パラメータ：

  • コンテキストID …… コンテキストを表す数値。この値は、現在のコンテキストリストの中のコンテキスト番号か実際のコンテキストIDのどちらかです。

  • ウェイト …… 論理値

  • True …… コンテキストの処理が終了されるまで待ち状態になります。

  • False（デフォルト） …… 処理は待ちになりません。

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

以下のような場合、処理は失敗します。

  • コンテキストが見つからない場合

戻り値は、以下の場合にFalseのままになります。

  • [ウェイト]パラメータが「Yes」で、自身のコンテキストをクローズさせるために関数が使用された場合。

  • [ウェイト]パラメータが「Yes」で、存在しないコンテキストをクローズさせるために関数が使用された場合。

注意事項：

  • ペンディング中のコンテキストのみ削除できます。

  • RqCTxTrm関数は、CtxClose 関数と同じ仕様です。したがって、CtxClose機能を実行する前に、CtxNum関数を実行してコンテキストリストを読み込むようにしてください。

関連トピック：

CtxKill


関数ディレクトリ CtxGetAllNames

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > CtxGetAllNames

CtxGetAllNames

実行可能なコンテキストのリストを取得

アクティブになっているか実行可能な全コンテキストのリストを取得します。

構文：

CtxGetAllNames()

パラメータ：

なし

戻り値：

ベクトル値 …… 全てのコンテキストを含んだ文字型のベクトル値。コンテキストが指定された名前を持っている場合は、その名前が含まれます。持っていない場合は、コンテキストIDが含まれます。 Magicエンジンが[アプリケーションサーバとして動作]設定が「No」の場合、空白のベクトル値が返ります。

注意事項：

  • ベクトルのセルタイプは、128文字以下にする必要があります。

  • この関数は、サーバエンジンでない場合、空のベクトルデータが返ります。


関数ディレクトリ CtxGetId

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > CtxGetId

CtxGetId

コンテキストIDの取得

コンテキスト名に対応したコンテキストIDを取得します。
CtxSetName関数を使用することで、コンテキストIDに対応したコンテキスト名を割り当てることができます。

構文：

CtxGetId(コンテキスト名)

パラメータ：

  • コンテキスト名 …… コンテキストの名前を表す文字列

戻り値：

数値 …… コンテキストIDを表す数値

例：

CtxGetId('Dispatcher')

「Dispatcher」というコンテキスト名に対するコンテキストIDを返します。

関連事項：

CtxGetName

注意事項：

  • コンテキスト名が空白の場合、現在のコンテキストのIDが返ります。

  • 指定されたコンテキスト名が見つからない場合、「0」が返ります。


関数ディレクトリ CtxGetName

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > CtxGetName

CtxGetName

現在のコンテキスト名の取得 現在のコンテキスト名を取得します。
構文： | CtxGetName ()
パラメータ： | なし
戻り値： | 文字 …… 現在のコンテキストの名前 コンテキストが、CtxSetName関数を使用して名前を設定されている場合、この名前が返ります。 コンテキストに名前が設定されていない場合、コンテキストIDが返ります。 初期のコンテキスト上でこの関数が実行された場合、「Main」のコンテキストが返ります。
注意事項： | コンテキストIDを取得する場合は、CtxGetId関数を使用してください。


関数ディレクトリ CtxKill

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > CtxKill

CtxKill

コンテキストの中断

コンテキストテーブルに存在する任意のコンテキストを削除します。

この関数は、終了処理やDLLの呼び出しなどの一定の処理の終了を待っているアクティブなコンテキストを終了させる場合に使用します。

構文：

CtxKill (エントリ,コンテキスト)

パラメータ：

  • エントリ …… コンテキストを表す番号。コンテキストテーブル上の番号か、実行中のコンテキストIDのどちらかを指定します。

  • コンテキスト …… 論理値を指定します。「True」が設定された場合、指定されたスレッドが外部リソースをのアクセスによってビジー中であってもコンテキストは削除されます。この場合、リソースがロックされたままになる危険性が発生します。

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

以下のような場合、処理は失敗します。

  • コンテキストが見つからない場合

注意事項：

  • 実行中のコンテキストは、[コールUDP]処理コマンドのような同期型の外部処理を含め、現在の実行中であっても終了させることができます。

  • CtxKill関数は、指定したコンテキストの全ての実行中のスレッドを終了させます。実行中のスレッドの終了によって、データベース接続やインスタンス化されたJavaやCOMオブジェクトのようなリソースの不適切な解放処理を行ってしまう可能性があります。(突然エンジンを終了させたような状態になります。）

  • 旧バージョンからの移行を行うと、CtxKill関数は（CtxCloseにではなく）現バージョンでのCtxKil関数になります。

  • CtxKill関数を実行する前に、CtxNum関数を実行してコンテキストリストを再読込してください。

関連トピック：

CtxClose


関数ディレクトリ CtxLstUse

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > CtxLstUse

CtxLstUse

コンテキストの最終使用時間を取得

コンテキストテーブルに存在する任意のコンテキストが最後に有効になってからの経過時間(秒数)を取得します。

構文：

CtxLstUse (エントリ)

パラメータ：

  • エントリ …… コンテキストテーブル上の番号。この値は、現在のコンテキストリストの中のコンテキスト番号か実際のコンテキストIDのどちらかです。

戻り値：

数値

  • 0 …… 動作中

  • 数値 …… ペンディング中の場合、コンテキストが最後に有効になってからの経過時間を返します。

  • -1 …… 終了済

  • -2 …… 不正なエントリ

注意事項：

CtxLstUse関数を実行する前に、CtxNum関数を実行してコンテキストリストを再読込してください。


関数ディレクトリ CtxNum

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > CtxNum

CtxNum

コンテキスト数を取得 アプリケーションサーバ上で有効なコンテキストの数が返ります。
構文： | CtxNum( )
パラメータ： | なし
戻り値： | 数値 …… アプリケーションサーバ上で有効なコンテキストの数 少なくとも1（実行エンジンの初期コンテキスト）を返します。
注意事項： | 以下の関数を実行する前に、コンテキストリストを再読込するためこの関数を実行する必要があります。 CtxClose, CtxKill, CtxLstUse, CtxNum, CtxProg, CtxSize, CtxStat


関数ディレクトリ CtxProg

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > CtxProg

CtxProg

コンテキストのプログラム名を取得

コンテキストテーブルに存在する任意のコンテキストの最上位レベルのプログラム名を取得します。

構文：

CtxProg (エントリ)

パラメータ：

  • エントリ …… コンテキストテーブル上の番号。この値は、現在のコンテキストリストの中のコンテキスト番号か実際のコンテキストIDのどちらかです。

戻り値：

文字列 …… コンテキストの上位レベルのプログラム名

終了済、または不正なエントリを指定した場合、空白が返ります。

注意事項：

CtxProg関数を実行する前に、CtxNum関数を実行してコンテキストリストを再読込してください。


関数ディレクトリ CtxSetName

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > CtxSetName

CtxSetName

コンテキストへの名前の指定

現在のコンテキストの名前を設定します。この名前は、コンテキストに対するログインやメッセージのポストで使用されます。

構文：

CtxSetName (名前)

パラメータ：

  • 名前 …… コンテキストの名前を表す文字列（最大、128桁）

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

以下の場合、処理は失敗します。

  • NULL 値が渡された時

  • 空白が渡された時

  • 指定した名前を持つコンテキストがすでに存在している場合

注意事項：

  • コンテキスト名は、128桁以上指定できません。

  • 単一インスタンスのコンテキストで利用する場合に便利です。

  • この関数がプログラムの[タスク前]で使用された場合、[コンテキストID]特性内に値が返りません。これは、コンテキストがロードされた時点でコンテキストIDが設定されますが、コンテキストがすでにロードされる前に[タスク前]が有効になるからです。

  • CtxSetNameを使用してコンテキスト名を変更した場合、コンテキスト名はユニークではないかもしれません。この場合、コンテキスト間での対話を行う場合に問題が発生する可能性があります。


関数ディレクトリ CtxSize

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > CtxSize

CtxSize

コンテキストのサイズを取得

コンテキストテーブルに存在する任意のコンテキストのサイズ(バイト)を取得します。

構文：

CtxSize (エントリ)

パラメータ：

  • エントリ …… コンテキストテーブル上の番号。この値は、現在のコンテキストリストの中のコンテキスト番号か実際のコンテキストIDのどちらかです。

戻り値：

数値 …… コンテキストのサイズ

終了済、または不正なエントリを指定した場合は、0 が返ります。

注意事項：

CtxSize関数を実行する前に、CtxNum関数を実行してコンテキストリストを再読込してください。


関数ディレクトリ CtxStat

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > CtxStat

CtxStat

コンテキストの状態を取得

コンテキストテーブルに存在する任意のコンテキストの状態を取得します。

構文：

CtxStat (エントリ)

パラメータ：

  • エントリ …… コンテキストテーブル上の番号。この値は、現在のコンテキストリストの中のコンテキスト番号か実際のコンテキストIDのどちらかです。

戻り値：

コンテキストの状態を表す文字

  • E …… 動作中

  • P …… ペンディング中

  • T …… 終了済

  • I …… 不正なエントリ

注意事項：

CtxStat関数を実行する前に、CtxNum関数を実行してコンテキストリストを再読込してください。


関数ディレクトリ CurRow

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > CurRow

CurRow

[テーブル]コントロール上での現在の行番号を取得

[テーブル]コントロール上での現在の行番号を取得します。

構文：

CurRow(世代番号)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

指定されたタスクに[テーブル]コントロールが存在している場合、現在パークしている行番号が返ります。以下の場合は、 0 が返ります。

  • 指定した世代のタスクが存在しない場合

  • ［テーブル］コントロールが存在しない場合

  • 指定したタスクがバッチタスクの場合

例：

CurRow(0)

現在のタスクの[テーブル]コントロールのパークしている行の行番号が返ります。

モバイル仕様：

Androidではサポートされません。


関数ディレクトリ CurrPosition

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > CurrPosition

CurrPosition

メインソースの現在の位置を取得

現在のタスクのメインソースのレコードの位置が返ります。

同じメインソースを使用するタスクの、[範囲／位置付]ウィンドウの[ポジション]特性に、この関数で取得したBLOB 変数を代入することにより、本関数発行時の位置に位置付けできます。

構文：

CurrPosition(世代番号)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

BLOB値

例外：

この関数は、XMLソースでサポートされません。


関数ディレクトリ CWidth

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > CWidth

CWidth

コントロールの幅を取得

指定したコントロールまたはカーソルが最後にパークしたコントロールの幅を取得します。

構文：

CWidth(コントロール名,世代番号)

パラメータ：

  • コントロール名 …… 指定するコントロールの名前。ヌル文字列（''）を指定した場合、カーソルが最後にパークしているコントロールが対象となります。

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

数値…フォームで設定された寸法単位での値

注意事項：

パーク可能コントロールだけが有効な値を返します。パーク可能コントロールとは、データを持つコントロールやアクションを返すコントロールのことで、具体的には次のものがあります。

チェックボックス，コンボボックス，エディット，イメージ，リストボックス，OLE，プッシュボタン，ラジオボタン，リッチエディット，スライダ，タブ

モバイル仕様：

モバイル環境ではサポートされません。


関数ディレクトリ CX

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > CX

CX

コントロールのX軸

指定されたコントロールまたは、最後にパークしたコントロールのウンドウ上の相対的なX軸の位置を取得します。

構文：

CX(コントロール名、世代番号)

パラメータ：

  • コントロール名 …… フォームに定義されたコントロール名を指定します。NULLが指定された場合、最後にパークされたコントロールとして動作します。

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

数値 …… X軸の位置がピクセル単位で返ります。

注意事項：

パーク可能なコントロールだけが値を返します。パーク可能なコントロールとは、[データ]特性が定義されているか、イベントが定義されているコントロールです。

モバイル仕様：

Androidではサポートされません。

関連トピック：

CY


関数ディレクトリ CY

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > CY

CY

コントロールのY軸

指定されたコントロールまたは、最後にパークしたコントロールのウンドウ上の相対的なY軸の位置を取得します。

構文：

CY(コントロール名、世代番号)

パラメータ：

  • コントロール名 …… フォームに定義されたコントロール名を指定します。NULLが指定された場合、最後にパークされたコントロールとして動作します。

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

数値 …… Y軸の位置がピクセル単位で返ります。

注意事項：

パーク可能なコントロールだけが値を返します。パーク可能なコントロールとは、[データ]特性が定義されているか、イベントが定義されているコントロールです。

モバイル仕様：

Androidではサポートされません。

関連トピック：

CX


DataViewToDataSource

データビューをデータソースに追加

現在のデータビューをデータソースに追加します。

構文：

DataViewToDataSource (世代番号, タスクの項目名, 出力データソース番号, 出力データソース名, 出力カラム名)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

  • タスクの項目名（文字） …… 出力する項目の名前をカンマ区切りでリストアップした文字列。現在のタスクの項目のみ有効です。大文字小文字を区別します。空白を指定した場合、すべてのタスクの項目が出力されます。

  • 出力データソース番号（数値） …… ［データ］リポジトリ上の通番を表す数値（例：'3'DSOURCE）。このパラメータは必須です。

  • 出力データソース名（文字） ……このパラメータは、ソース番号の代わりに使用することができます。必要ない場合は、空白('')で指定してください。必要な場合のみ、データソース名を表す文字列を指定してください。文字列には、パスを含めることもできます。パスが含まれない場合、現在のディレクトリとして扱います。

  • 出力カラム名（文字） …… 出力先のデータソースで更新されるカラムのすべての名前をカンマ区切りで指定します。大文字小文字を区別します。

  • これは、Magicのカラム名（DBカラム名ではない）です。

  • 空白は、タスク項目名で定義された名前と同じ値が使用されることを意味します。

戻り値：

論理値 ：以下の値が返ります。

  • Tue …… 現在のデータビューがデータソースに追加された場合

  • False…… データビューが追加されなかった場合

用途：

以下のような場合にこの関数を使用することができます。

  • データを表示するインタラクティブなリッチクライアントタスクで、データビューを出力したい場合

  • 非インタラクティブなリッチクライアントタスクで、データを表示することなく出力したい場合
    この場合、関数そのものがデータビューを作成してスキャンするため、データビュー定義を保持するタスクはレコードをスキャンすることなく終了することができます。このタスクは、以下のように定義することができます。

  • メインデータソースを定義し、出力したいデータに基づいて、カラムに範囲条件を指定します。

  • ［タスク後］ロジックユニットで関数を呼び出します。

  • ［タスク終了条件］特性を「Y」に設定し、[チェック時期]特性を「前置」に設定します。この場合は、タスクは全てのレコードのスキャンするわけではありません。

注意事項：

  • この関数は、リッチクライアントでのみサポートされます。

  • メインデータソースと出力先のデータソースを同じ側（ローカル側とサーバ側）にすることはできません。

  • 出力先のデータソースが存在しない場合、データソースが作成されます。

  • レコードが出力先のデータソース内に存在する場合、更新されます。

  • この関数を使用する場合、ユニークなインデックスを出力先のデータソースに定義しておかなければなりません。そして、ユニークインデックスのセグメントが全て選択されていなければなりません。

  • サーバ側のデータソースを更新するとき、更新は新しい物理トランザクションで行われます。

  • ［NULL値可］特性が「No」に設定されたカラムは、必ず更新するようにしてください。

  • ローカルのデータソースを更新する場合：

    • 出力先のデータソースのデータベース上でオープンされたトランザクションがない場合、トランザクションは挿入が開始されるオープンされ、関数の処理が終了するとクローズされます。

    • 出力先のデータソースのデータベース上でトランザクションがオープンされている場合、変更はトランザクションの一部で行われトランザクションがクローズされる時に一緒にコミットされます。

モバイル仕様：

この関数は、AndroidとiOSデバイスでサポートされます。

サポートバージョン：

2.4


DataViewToDNDataTable

データビューから.NETデータテーブルオブジェクトを作成

現在のデータビューから.NETデータテーブルのオブジェクトを作成します。

構文：

DataViewToDNDataTable (世代番号, タスクの項目名, 出力項目名 )

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

  • タスクの項目名（文字） …… 出力する項目の名前をカンマ区切りでリストアップした文字列

  • 出力項目名（文字） …… 出力される項目の名前をカンマ区切りでリストアップした文字列。空白の場合、ヘッダが出力されません。「@」が指定された場合、タスクに定義された項目名でヘッダが出力されます。名前にカンマが含まれている場合、その前に「\」を設定してください。

戻り値：

現在のデータビューを基にした.NETデータテーブルのオブジェクト

用途：

以下のような場合にこの関数を使用することができます。

  • インタラクティブなリッチクライアントタスクでデータを表示する場合に現在のデータビューを出力したい場合

  • 非インタラクティブなリッチクライアントタスクで、データを表示することなく出力したい場合
    この場合、関数そのものがデータビューを作成してスキャンするため、データビュー定義を保持するタスクはレコードをスキャンすることなく終了することができます。このタスクは、以下のように定義することができます。

メインデータソースを定義し、出力したいデータに基づいて、カラムに範囲条件を指定します。

［タスク後］ロジックユニットで関数を呼び出します。

［タスク終了条件］特性を「Y」に設定し、[チェック時期]特性を「前置」に設定します。この場合は、タスクは全てのレコードのスキャンするわけではありません。

注意事項：

  • これは、クライアント側の関数です。関数はすべてのデータビューのレコードを取得するためにサーバに要求しますが、リッチクライアントで使用された場合、.NETオブジェクトはクライアントで作成されるため、.NETコントロール用に利用できます。

  • 関数は非インタラクティブなタスクで使用することもできます。このため、即終了する非インタラクティブなサブタスクを呼び出して、データビューのすべてのレコードを含んだ.NETデータテーブルを取得することができ、これを親タスクのDataGridコントロールで使用することができます。

  • 特定の値のみでテーブルを作成したい場合は、テーブルの範囲を使用することができます。

  • .NETからエラーが発生した場合、関数はNULLを返し、.NET例外を発生します。DNexceptionOccured()関数は、Trueを返し、DNException()関数は、例外オブジェクトの参照情報を返します。

  • 項目名リストが‘@’と評価された場合、データ項目リストに基づいてタスクで定義されたヘッダを出力します。

  • タスク項目名にOLEやBLOB、.NET、ベクトル型の項目がある場合は、「False」が返ります。

モバイル仕様：

モバイル環境ではサポートされません。


関数ディレクトリ DataViewToHTML

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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）として動作します。

関連トピック：

データをHTMLファイルとして出力するには


関数ディレクトリ DataViewToText

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > DataViewToText

DataViewToText

データビューからテキストファイルを作成

［データビュー］エディタに定義された項目を基にテキストファイルを作成します。

データソースをCSV形式でテキスト出力する際、文字列の前後をダブルクォーテーションで囲む形式で出力する場合は、この関数を使用すると便利です。

構文：

DataViewToText (世代番号, タスクの項目名, 出力項目名, テキストファイル名, 区切り文字, エンクォート文字,文字セット )

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

  • タスクの項目名（文字） …… 出力する項目の名前をカンマ区切りでリストアップした文字列

  • 出力項目名（文字） …… 出力される項目の名前をカンマ区切りでリストアップした文字列。空白の場合、ヘッダが出力されません。Excelファイルとして出力した場合、Excelシートのヘッダとして扱われます。「@」が指定された場合、タスクに定義された項目名でヘッダが出力されます。名前にカンマが含まれている場合、その前に「\」を設定してください。

  • テキストファイル名（文字） …… 作成されるファイルの名前.

  • 区切り文字（文字） …… 出力されるテキストの区切り文字として使用されるする文字列.

  • エンクォート文字（文字） …… 文字列の識別（エンクォート）に使用される文字。文字型とUnicode型の文字列の前後に設定されます。

  • 文字セット（数値） …… 出力データの文字セットを指定します。以下の数値が指定できます。

  • 0 …… ANSI

  • 1 …… Unicode

  • 2 …… UTF-8

戻り値：

論理 …… 成功した場合、「True」が返ります。

注意事項：

  • テキストファイルが作成できなかった場合、「False」が返ります。

  • 区切り文字や文字IDが指定されない場合、出力ファイルには、何も付加されません。

  • タスク項目のリストが空白の場合、「False」が返ります。

  • 出力項目のリストがタスク項目で指定された項目数より少ない場合、ヘッダが出力されません。

  • 出力項目のリストがタスク項目で指定された項目数より多い場合、余分な項目名はヘッダに出力されません。

  • タスク項目名に誤りがある場合、「False」が返ります。

  • タスク項目名にOLEやBLOB、ActiveX、ベクトル型の項目がある場合は、「False」が返ります。

  • 文字セットの指定値が正しくない場合、「0」（ANSI）として動作します。

  • データ内にエンクォート文字と同じ文字が存在する場合、その文字は2回繰り返されます。例えば、エンクォート文字が「"」、データが「A"B」の場合、「"A""B"」と出力されます。

関連トピック：

データをテキストファイルとして出力するには

データをCSVファイルとして出力するには


関数ディレクトリ DataViewToXML

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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コード）が含まれている場合、ブラウザによっては正常に表示できない場合があります。

関連トピック：

データをXMLファイルとして出力するには


関数ディレクトリ DataViewVars

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > DataViewVars

DataViewVars

データビューの取得

タスクに定義されたデータビューやフォーム上に配置されたデータビューの項目名を取得します。

構文：

DataViewVars (世代番号, オプション)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

  • オプション（数値） …… 取得する項目の範囲を定義する数値。このパラメータは必須です。以下の値が指定できます。

  • 0 …… タスクのデータビュー全体

  • 1 …… フォーム上の全ての項目

  • 2 …… 表示されたフォームの項目（表示される項目のみを対象とします。）

戻り値：

ベクトルデータ …… 文字型項目を含むベクトル型の値が返ります。ここには、データビューの項目名が格納されます。

オプションが「0」でない場合、ベクトル内の項目の順序は、フォームに表示されている順番になります。

オプションが「0」の場合、ベクトル内の項目の順序は、［データビュー］エディタに定義されている順番になります。

［世代番号］で定義されたタスクの定義項目のみ出力されます。

注意事項：

  • この関数は、フォーム項目を取得するためにどのような段階でも使用できます。

  • ２番目のパラメータが「2」と評価された場合、表示されているかどうかは、現在のレコードで判断されます。データビューを取得できない［タスク前］で実行された場合、オプション指定は無視され、全てのフォーム項目を取得します。この場合、オプションの「1」と「2」では、同じ動作になります。

  • ２番目のパラメータが不正な値と評価された場合、関数は空のベクトルデータを返します。

  • ２番目のパラメータが「1」または「2」と評価され、フォーム上に項目が定義されていなかったり、タスクの［ウィンドウ表示］特性が「No」に設定されている場合、関数は空のベクトルデータを返します。


DataViewVarsIndex

データビューのインデックス

タスクに定義されたデータビューのインデックスを取得します。

構文：

DataViewVarsIndex (世代番号, オプション)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

  • オプション（数値） …… 取得する項目の範囲を定義する数値。このパラメータは必須です。以下の値が指定できます。

  • 0 …… タスクのデータビュー全体

  • 1 …… フォーム上の全ての項目

  • 2 …… 表示されたフォームの項目（表示される項目のみを対象とします。）

戻り値：

ベクトルデータ …… データ項目のインデックス値（数値）を含むベクトル値が返ります。

オプションが「0」でない場合、ベクトル内の項目の順序は、フォームに表示されている順番になります。

オプションが「0」の場合、ベクトル内の項目の順序は、［データビュー］エディタに定義されている順番になります。

［世代番号］で定義されたタスクの定義項目のみ出力されます。

注意事項：

  • ２番目のパラメータが「2」と評価された場合、表示されているかどうかは、現在のレコードで判断されます。データビューを取得できない［タスク前］で実行された場合、オプション指定は無視され、全てのフォーム項目を取得します。この場合、オプションの「1」と「2」では、同じ動作になります。

  • ２番目のパラメータが不正な値と評価された場合、関数は空のベクトルデータを返します。

  • ２番目のパラメータが「1」または「2」と評価され、フォーム上に項目が定義されていなかったり、タスクの［ウィンドウ表示］特性が「No」に設定されている場合、関数は空のベクトルデータを返します。

  • この関数は、世代パラメータで指定されたタスクに関する値のみ返します。

サポートバージョン：

2.3


関数ディレクトリ Date

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Date

Date

システム日付

システム日付を取得します。

構文：

Date()

パラメータ：

なし

戻り値：

日付

例：

システム日付が97/01/28 の場合、Date(）では97/01/28 が返ります。

また、Date(）+5 では、97/02/02 が返ります。

注意事項：

  • Date()関数は、［代入］特性でよく利用されます。ユーザが画面を最初に確認した時の日付を設定したり、レコードの作成／修正時に設定されるタイムスタンプとして利用できます。

  • システムの日付は、MAGIC.INI で設定されている日付形式、または、日付が格納される項目に設定されている書式にしたがって表示されます。したがって、システムの日付の形式が「E 」に設定されている場合、MAGIC.INI のDateMode パラメータの値を「A」に設定することで、日付をアメリカ形式で表示できます。または、書式を使用して日付をアメリカ形式（MM/DD/YY ）にすることもできます。

関連トピック：

MDate,DStr,DVal,Str,UTCDate

現在の日付を取得するには


関数ディレクトリ Day

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Day

Day

日付の日（1～31）

日付の日数(1～31)を取得します。

構文：

Day(日付)

パラメータ：

  • 日付 …… 日付または日付式

戻り値：

数値

例：

Day('96/01/28'DATE）では、28 が返ります。

また、IF(Day(Date(））>15,'延滞',''）という日付式では、システムの日付が15 日より遅い（16 日以後の）場合、「延滞」という文字が表示されます。

関連トピック：

CDOW, DOW, NDOW

指定された日付の年/月/日の各部分を取得するには


関数ディレクトリ DbCache

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > DbCache

DbCache

キャッシュのヒット率

キャッシュのヒット率（整数）を取得します。キャッシュのヒット率とは、キャッシュの検索でレコードが見つかった回数をキャッシュが検索された合計回数で割った値です。この値が大きいほどキャッシュの効率が高いことになります。

構文：

DbCache (番号,世代番号)

パラメータ：

  • 番号 …… [データ]リポジトリに定義されているデータソースを示す番号（連番）です。このパラメータは、必ず指定しなければなりません。]

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

ヒット率 …… 0～100の整数

例：

DbCache('1' DSOURCE, 0)では、[データ]リポジトリの最初のデータソースに関するヒット率が返ります。この関数では、リテラルコードDSOURCEが使用できます。


関数ディレクトリ DbCopy

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > DbCopy

DbCopy

データベーステーブルのコピー

既存のデータソースのコピーを行います。データの定義情報もコピーされます。この関数は、ISAMとSQLの両方のファイルに使用できます。

構文：

DbCopy (番号,元データ,新データ)

パラメータ：

  • 番号 …… [データ]リポジトリに定義されているデータソースを示す番号（連番）です。

  • 元データ …… コピー元のデータソース名です。[データ]リポジトリの[データソース名]カラムに指定された名前と違う名前を指定する場合に使用するオプション。

  • 新データ …… コピー先のデータソース名です。

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

以下の場合、処理は失敗します。

  • 元データが現在オープン中の場合

  • 元データが常駐テーブルである場合

  • 元データが存在しない場合…この時には、「データソースがみつかりません：<データソース名>」というエラーメッセージが表示されます。

  • 新データがすでに存在している場合…この時には、「目的のデータソースは既に存在しています。作成に失敗しました：<データソース名>」というエラーメッセージが表示されます。

  • 元データがビューの場合…この時には、「ビューの作成／移動／複写はできません.ビュー：<データソース名>」というエラーメッセージが表示されます。

  • 上記以外のエラーの場合…この時には、「データソースの複写に失敗しました. データソース：<元データ>」というエラーメッセージが表示されます。

例：

DbCopy (5,'c:\temp\firstfile.txt','c:\temp\copiedfile.txt')

注意事項：

Oracleのテーブルに対してDbCopyを実行するとインデックス名はKEY001＋ファイル名１２文字以下で作成されます。


関数ディレクトリ DbDel

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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

現在のデータベース接続を切断

指定したデータベースの現在の接続を切断します。DbDiscntはSQL データベースに関連した関数です。現在接続しているデータベースにおいて、オープンしているカーソルが存在しない場合にのみ、その切断を行うことが許されます。カーソルがオープンされている状態でDbDiscnt関数が起動された場合には、エラーメッセージが表示されます。

現在のデータベース接続の切断は、アプリケーションで必要のなくなったデータベースからユーザを切断したり、あるいは別のユーザをそのデータベースに接続するために既接続ユーザを切断したりする目的で行われます。

構文：

DbDiscnt(文字列)

パラメータ：

  • 文字列 …… データベース名を意味する英文字列

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

以下の場合、「False」が返ります。

  • 切断に失敗した場合

  • 接続そのものが存在しない場合

例：

DbDiscnt('MSSQL')

「MSSQL」は、[データベース]テーブルに定義されているデータベース名を表しています。


関数ディレクトリ DbERR

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > DbERR

DbERR

データベースからのエラーメッセージ

現在発生したデータベースエラーの最初のエラーメッセージを取得します。

この関数では、データベースエラーメッセージまたはデータベースエラーコードの取得のほか、ユーザにメッセージを表示することもできます。また、この関数ではエラーメッセージの消去も可能です。

構文：

DbERR(文字列)

パラメータ：

  • 文字列 …… 文字列または文字列式で、データベースの名前を指定します。

戻り値：

SQL の場合 …… エラーメッセージが返ります。

ISAM の場合 …… エラーコマンドを指す数値が返ります。

例：

エラーチェックの直後、DbERR 関数を[項目更新]処理コマンドで使用することで、直前のエラーを消去することができます。

注意事項：

戻り値の内容は、使用するDBMS に依存します。


関数ディレクトリ DbExist

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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(番号,タイプ)

パラメータ：

  • 番号 …… [データ]リポジトリの行（データソース）の番号です。この番号のデータソースの名前が返ります。

  • タイプ… …… 返される情報の対応を指定します。

  • 1 …… データベース上のデータソース名（デフォルト）

  • 2 …… Magic xpa上のデータソース名

  • 3 …… データベース名

  • 4 …… DBMS名

指定が無かったり、値が正しくない場合、「1」が指定されたものとして動作します。

戻り値：

[データ]リポジトリの行(データテーブル）の名前

例：

DbName(3,1）またはDbName('3'SROURCE,1）では、どちらも、[データ]リポジトリの3 番目のデータソースの名前が返ります。

注意事項：

リテラルコードのDSOURCEを使用してデータソースを指定しておくと、[データ]リポジトリのデータソースの順番が変わった時には自動的にデータソースの番号が更新されます。このため、いつでも、指定したデータソース名を取り出すことができます。一方、DSOURCEを使用しない場合は、必ず指定した番号のデータソース名が取り出されます。


関数ディレクトリ DbRecs

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > DbRecs

DbRecs

データソースの行数

データソースにある行（レコード）数を取得します。

構文：

DbRecs(番号,データソース名)

パラメータ：

  • 番号 …… [データ]リポジトリに定義されているデータソースの番号（連番）

  • データソース名 …… 上記の[番号]パラメータの代わりに、ここにデータソース名を指定することもできます。指定しない場合、「''」を入力しておきます。パスを指定することもでき、パスを指定していない場合、ディレクトリはカレントディレクトリと解釈されます。

戻り値：

数値 …… レコードの数（レコードがない時には0 ）

例：

DbRecs(1,''）またはDbRecs（'1'DSOURCE,''）では、どちらも、[データ]リポジトリの最初のデータソースのレコード数が返ります。

DbRecs(1,'FSTFIL.DAT'）では、カレントディレクトリの「FSTFIL.DAT」という名前のデータソースのレコード数が返ります。

注意事項：

  • リテラルコードのDSOURCEを使用してデータソースを指定しておくと、[データ]リポジトリのデータソースの順番が変わった時には自動的にデータソースの番号が更新されます。このため、いつでも、指定したデータソース名を正しく取り出すことができます。一方、DSOURCE を使用しない場合は、必ず指定した番号のデータソース名が取り出されます。

  • 指定されたデータソースがXMLソースの場合、この関数はフラットビュー内のレコード数を返します。これ以外の場合は、「0」が返ります。

関連トピック：

DbDel, DbExist, DbSize

データベーステーブルからレコードを取得する際のデータサイズを指定するには


関数ディレクトリ DbReload

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > DbReload

DbReload

実行時の常駐テーブルの読込

実行時に常駐テーブルを読み込みます。

第２パラメータにデータソースのパスを指定した場合、それまでのパスは削除され、指定したパスのデータソースが読み込まれます。

構文：

DbReload(番号,データソース名)

パラメータ：

  • 番号 …… [データ]リポジトリに定義されているデータソースの番号（連番）

  • データソース名 …… 上の[番号]パラメータの代わりに、ここにデータソース名を指定することもできます。指定しない場合、「''」を入力しておきます。パスを指定することもでき、パスを指定していない場合、ディレクトリはカレントディレクトリと解釈されます。

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例：

DbReload(3,'')

注意事項：

  • この関数は、[常駐テーブル読込]特性が「Yes」に設定されている場合のみ有行です。

  • XMLソースの場合は使用できません。常に「False」が返ります。

関連トピック：

データベースのアクセス頻度を減らすには


関数ディレクトリ DbRound

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > DbRound

DbRound

SQL系DB用の四捨五入処理

SQL系のDBMSの動作に基づいて四捨五入された値を取得します。この関数は、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

データソースのサイズ

データソースのサイズ(バイト)を取得します。

構文：

DbSize(数値,データソース名)

パラメータ：

  • 番号… …… [データ]リポジトリに定義されているデータソースの番号（連番）

  • データソース名 …… 上の[番号]パラメータの代わりに、ここにデータソース名を指定することもできます。指定しない場合、「''」を入力しておきます。パスを指定することもでき、パスを指定していない場合、ディレクトリはカレントディレクトリと解釈されます。

戻り値：

数値 …… テーブルサイズ（データソースがない時には0 ）

例：

DbSize(1,'')またはDbSize('1'DSOURCE,'')では、[データ]リポジトリの最初のデータソースのデータのサイズ(バイト数）が返ります。なお、ディスク上の実際のデータソースのサイズは、これより大きいことがあります。

DbSize(1,'FSTFIL.DAT')では、カレントディレクトリの「FSTFIL.DAT」という名前のデータソースのサイズが返ります。

注意事項：

  • リテラルコードのDSOURCEを使用してデータソースを指定しておくと、[データ]リポジトリのデータソースの順番が変わった時には自動的にデータソースの番号が更新されます。このため、いつでも、指定したデータソースの名前を正しく取り出すことができます。一方、DSOURCE を使用しない場合は、必ず指定した番号のデータソースの名前が取り出されます。

  • 指定されたデータソースがXMLソースの場合、この関数は（通常のデータソースのように）レコード長によって増加されたフラットビュー内のレコード数を返します。これ以外は「0」が返ります。

関連トピック：

DbDel, DbExist, DbRecs

データベーステーブルからレコードを取得する際のデータサイズを指定するには


関数ディレクトリ DbViewRowIdx

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > DbViewRowIdx

DbViewRowIdx

レコード番号の取得

タスクのデータビューがキャッシュされている場合、キャッシュ内のレコード番号を取得します。この関数を使用することで、どの行に現在パークしているかが確認できます。

構文：

DbViewRowIdx (世代番号)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

数値 …… キャッシュされたビュー内のレコードの連番を表す数値

注意事項：

  • この関数は、タスクの[ビュー事前読込]特性が、「Yes」に設定された場合のみ有効です。

  • メインソースが定義されていなかったり、[ビュー事前読込]特性が「No」に設定されている場合は、「0」が返ります。

関連トピック：

DbViewSize


関数ディレクトリ DbViewSize

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > DbViewSize

DbViewSize

キャッシュレコード数の取得

現在のデータビュー内のレコード数を取得します。

構文：

DbViewSize(世代番号)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

数値 …… キャッシュされたレコード数を表す数値

注意事項：

  • メインソースが定義されていない場合は、「0」が返ります。

  • [ビュー事前読込]特性が「Yes」に設定されている場合は、ビュー定義によって取得された全てのレコード数が返ります。

  • [ビュー事前読込]特性が「No」に設定されている場合は、0が返ります。

関連トピック：

DbViewRowIdx

データベーステーブルからレコードを取得する際のデータサイズを指定するには


関数ディレクトリ DbXmlExist

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > DbXmlExist

DbXmlExist

XMLデータのチェック

BLOB項目内に格納されたXMLデータがビューが定義された要素を含んでいるかどうかを確認します。

XMLビューには、1つのメインの複合型(Complex)または反復型(Repeatable)または再帰型(Recursion)の要素を含んでいなければなりません。

XMLビューを読み込むと、タスクのデータビューにはそのメイン要素のレコードが含まれます。

タスク内でデータソースに割り当てるXML(BLOB項目)が、そのXMLビューに対応するレコードを含んでいない場合、特定のXMLビューを処理するためにタスクを呼び出すことを回避する目的でこの関数が使用されます。

再帰的なXMLビューを処理する場合に、効率的な停止条件を定義する上でこの関数を使用すると、プログラムの性能を改善することができます。

構文：

DbXmlExist(データソース番号, BLOB項目)

パラメータ：

  • データソース番号 …… [データ]リポジトリ上の番号

  • BLOB項目 …… XML項目名

戻り値：

論理値 …… データソース内に定義されたビューにXMLが要素が含まれている場合は、Trueが返ります。

注意事項：

これはサーバ側の関数です。

例外：

DB SQLではサポートされません。また、実行時にエンドユーザによって利用することもできません。

関連トピック：

DbXmlExist の例


関数ディレクトリ DbXmlExist 例

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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 が返ります。


関数ディレクトリ DbXmlMixedGet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > DbXmlMixedGet

DbXmlMixedGet

混在内容のXMLからテキストを取得

混在内容(Mixed-content)のXML要素のテキストを取得します。

構文：

DbXmlMixedGet(ソース, パス, 要素)

パラメータ：

  • ソース …… XMLタイプのデータソース（例：'1'DSOURCE）

  • パス（文字） …… 混在内容の要素で構成されるXMLファイルをパス付きで指定します（例：/root /mixed_child）。パスには、複数存在する要素のインスタンス番号を指定するためのインデックスを指定することができます。（例： /root/mixed_child［2］）

  • 要素（文字） …… 混在内容要素内の要素の名前。この値は、どのテキストノードから取得するかを指定するために使用されます。この値が空白の場合、最初のノードから取得されます。値が空白でない場合、指定されたノードの次のノードから取得されます。要素が存在していない場合、空白が返ります。

戻り値：

文字列 …… テキストノードの値を持つ文字列が返ります。指定されたデータソ－スがオープンされない場合、または指定されたパスが存在しない場合、NULLが返ります。テキストノードが存在しない場合、空白が返ります。

注意：

アクセスするデータソースは、［データビュー］エディタ内に（メインソースやリンクテーブル、または宣言定義で）定義しておく必要があります。

例：

［データ］リポジトリの１番目に、以下の内容のXMLがデータソースとして定義されているものとします。

<?xml version="1.0" >

<root>

<child>Text1

<elem1>String</elem1>

<elem2>String</elem2>&#xD;&#xA; 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

XMLドキュメント内の混在内容を扱うには


関数ディレクトリ 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がデータソースとして定義されているものとします。

<?xml version="1.0" >

<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

XMLドキュメント内の混在内容を扱うには


関数ディレクトリ DDEBegin

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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 xpaを終わらせた時点

  • 対象となるDDEサーバが終了した時点

関連トピック：

DDEEnd, DDEGet, DDEPoke, DDERR,DDExec


関数ディレクトリ DDEEnd

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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

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 xpaには、項目を文字列と識別させるための単引用符（'）が必要です。取り出されるデータは、最大で2000 バイトです。

関連トピック：

DDEBegin, DDEEnd, DDEPoke, DDERR,DDExec


関数ディレクトリ DDEPoke

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > DDEPoke

DDEPoke

DDE サーバに対する文字列の転送

xpaから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'は関数によって渡される情報を受け取る、スプレッドシートのセル番号です。例に示したように、項目を文字列と判断させるための単引用符（'）が必要です。

注意事項：

サーバアプリケーションによっては、あらかじめデータを所定の形式にしておかなければならないこともあります。データの形式については、サーバアプリケーションのマニュアルを参照してください。

Unicodeはサポートしていません。

関連トピック：

DDEBegin, DDEEnd, DDEGet, DDERR, DDExec


関数ディレクトリ DDERR

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > DDERR

DDERR

DDE エラーの検出

Magic xpaの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

DDExec

DDEサーバに対するコマンド文字列の転送

Magic xpaからDDEサーバへコマンド文字列を転送します。３つの識別子「サービス」、「トピック」、「項目」を組み合わせて、各DDEサーバアプリケーションにアクセスできます。この３つの識別子によってアクセス対象を特定できます。

Magic xpaによって転送されたコマンド文字列はサーバアプリケーションに転送され、サーバアプリケーションがそのコマンドを実行します。コマンド文字列は、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 xpaには、項目を文字列と識別させるための単引用符（'）が必要です。コマンドのパラメータには、二重引用符（"）が必要です。

関連トピック：

DDEBegin, DDEEnd, DDERR, DDEGet, DDEPoke


関数ディレクトリ DeCipher

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > DeCipher

DeCipher

データの復号化

暗号化されたバッファデータや文字列を元の値に変換します。

構文：

DeCipher(暗号 ID 、バッファ、キー [ , モード , IV ])

パラメータ：

  • 暗号ID …… 指定された暗号のアルゴリズムを表す数値

  • バッファ …… 暗号化された文字列またはBLOB値

  • キー …… 暗号化キーを含む（BLOB）文字列。必要なキーの長さは、使用するアルゴリズムに依存します。

  • モード …… 暗号IDによって指定された暗号化方法によって選択されたモードを含む文字列。暗号化方法に対応したモードが指定されない場合、デフォルト値としてCBCが使用されます。サポート化する暗号化方法とモードを参照してください。

注意：

（CBCを含む）ブロック暗号文は全てのブロックに対して動作します。最後のブロックが不完全な場合、NULLが埋め込まれます。従って、複合後にNULLを削除してください。

代わりに、CFBまたはOFBストリームの暗号方式を使用することができます。

  • IV …… 初期化ベクトルを含むBLOB項目。このパラメータは任意です。

戻り値：

復号化された文字列または、バッファを含むBLOB

暗号 ID が正しくなかったり、キー長が 暗号 ID に合わない場合は、NULL 値を返します。

関連トピック：

Cipher , EncryptionError

データの暗号化/復号化を行うには


関数ディレクトリ Del

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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


関数ディレクトリ Delay

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Delay

Delay

処理の一時停止（単位：1/10秒）

現在の処理を0.1秒単位で一時的に中断します。

処理は、指定した時間の経過後、またはユーザがいずれかのキーを押下した時に再開されます。

構文：

Delay (数値)

パラメータ：

  • 数値 …… 処理を中断させる長さ。1/10秒を単位として指定します。

戻り値：

論理値 …… 常に「True」が返ります。

例：

Delay(10)では、処理が1秒間中断します。1秒経過後、処理が再開されます。また、1秒以内にユーザがいずれかのキーを押下すると、その時点で処理が再開されます。


関数ディレクトリ DifDateTime

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > DifDateTime

DifDateTime

２つの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秒」が返ります。

注意事項：

  • 秒数を時刻型項目と見なしHour, Minute, と Second の各関数を使用することで、秒数を時/分/秒 に変換することができます。

  • 最後の2つのパラメータ（結果用日付と結果用時間）は、項目の参照値としてVARリテラルで指定します。これは、Magic xpaがアドレスを使用して項目を参照するため使用するフォーマットです。これは、式の中で項目を更新する場合に必要です。通常、Magic xpaは［項目更新］処理コマンドで項目を更新するだけですが、この場合、同時に2つの項目を更新しているため、参照値が必要です。

関連トピック：

AddDateTime, AddDate, AddTime

２つの日付/時刻データの差分を計算するには


関数ディレクトリ DirDlg

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > DirDlg

DirDlg

ディレクトリ選択

Windowsの[フォルダーの参照]ダイアログボックスを開き、選択したディレクトリ名を取得します。

構文：

DirDlg(タイトル, ルート, 新規フォルダ表示)

パラメータ：

  • タイトル（文字） …… ダイアログボックス内の説明文として表示される文字列。

  • ルート （文字） …… 最初にパークするディレクトリ。最初にパークするディレクトリ名。空白の場合、カレントディレクトリが選択されます。

  • 新規フォルダ表示（論理） …… [新しいフォルダの作成]ボタンを表示させるかどうかを指定します。

戻り値：

文字列 …… 選択したディレクトリのフルパスを表す文字列

例：

DirDlg('My Description','d:\temp','TRUE'LOG)

[フォルダーの参照]ダイアログボックスが表示され、説明文には、「My Description」と表示されます。

ダイアログボックスの[OK]ボタンをクリックすると選択したフォルダ名が返ります。

注意事項：

  • 選択したパスがパスが存在していない場合、現在の作業フォルダが返ります。

  • Escキーまたは[キャンセル]ボタンを押下すると、空白が返ります。

例外：

リッチクライアントタスクではサポートされません。リッチクライアントのクライアント側の[ディレクトリ選択]ダイアログボックスを開く場合は、ClientDirDlg関数を利用してください。

モバイル仕様：

モバイル環境では、サポートされません。

関連トピック：

FileDLG


関数ディレクトリ DiscSrvr

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > DiscSrvr

DiscSrvr

不必要なサーバ接続の切断

指定されたサーバとの接続を切断します。

構文：

DiscSrvr (文字列)

パラメータ：

  • 文字列 …… [サーバ]テーブルで定義されたサーバ名

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

以下の場合、処理が失敗します。

  • 指定されたサーバが[サーバ]テーブルに存在しない場合

  • 該当サーバに接続されていなかった場合

  • Magic xpaはそのサーバとの接続がまだ必要な状態にある場合

  • 切断処理そのものに失敗した場合


関数ディレクトリ DNCast

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > DNCast

DNCast

データタイプの変換

Magicデータを.NET用にデータ型を変換します。明示的に.NETタイプの値に変換する必要がある場合は、この関数を使用してください。

オーバロード・メソッドを使用する場合に有効です。

別の使用方法として、.NET項目のタイプオブジェクトに特定のオブジェクトタイプを指定する場合があります。この場合、そのメソッドにアクセスすることができます。以下の2番目の例を参照してください。

構文：

DNCast (値, タイプ)

パラメータ：

  • 値 …… 変換対象のデータ

  • タイプ …… 変換する .NETタイプ

戻り値：

指定されたタイプの値

例：

DNCast(5, DotNet.System.Int16)

以下の場合を考えてみます。

同じ名前の2つの.NETメソッドがあります。

一方はInt16のパラメータを受け取り、もう一方はDoubleのパラメータを受け取ります。

この場合、Magic xpaはどのメソッドを呼び出せばいいのか区別できないため、数値型でパラメータを渡す方法は、正しくありません。

従って、DNCast関数を実行して、明示的に.NETタイプを指定する必要があります。

DNCast(A,'DotNet.System.Windows.Forms.TextBox').Text

.NETイベントに対応するロジックユニットを定義する場合、ほとんどの場合(イベントに応じて)、2つのパラメータ('sender'と'e'）がロジックユニットに追加されます。'sender'は、イベント発行するオブジェクトであり、'e'はイベントパラメータです。'sender'は、オブジェクトの.NETタイプを持っています。これは一般的なオブジェクトであり、それを簡単に処理することができません。

DNCast()関数を使用することで、指定した.NETオブジェクトにオブジェクトタイプをキャストして設定することができます。例えば、'System.Windows.Forms.TextBox'は、このオブジェクトを参照し、'System.Windows.Forms.TextBox'のすべてのプロパティやメソッドにアクセスすることができます。

DNCast関数を実行した直後からオブジェクトにアクセスすることができるようになります。

モバイル仕様：

モバイル環境ではサポートされません。


関数ディレクトリ DNException

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > DNException

DNException

例外情報の取得

.NET処理で発生した直近の例外の参照情報を取得します。

Exceptionクラスのプロパティの取得やメソッドを実行します。

構文：

DNException().プロパティ

パラメータ：

なし

戻り値：

.NET項目に対応する直近の処理で発生した例外の参照情報。指定するプロパティによって内容が変わります。

例:

  • DNexception().Message …… 現在の例外を説明するメッセージを取得します。

  • DNexception().Source …… エラーの原因となったアプリケーションまたはオブジェクトの名前

  • DNexception().StackTrace …… 現在の例外がスローされたときにコール スタックにあったフレームの文字列形式

例外が発生していない場合は、NULLが返ります。

.NET処理が行われる度に例外情報はクリアされます。

例：

項目更新 A DNException()

注意事項：

  • この関数を選択した後、ドット(.)を入力すると、オートコンプリート機能が動作します。

  • 例外が発生したオブジェクトの複数のプロパティに対応するため、.NET項目での例外タイプを定義してDNException（)で更新してください。

  • 例外は、2つのプロパティを持っています。一つは、InnerExceptionで、通常、に関する詳細情報を返します（例えばメール送信や接続が失敗したり、PCへのPingが失敗した場合）。もう一つは、メッセージで、エラーに関する説明を文字列で返します。

  • この関数は、.NETオブジェクトを返します。この戻り値を他の.NETオブジェクトに対する式の一部として利用できます。例えば、DNException（)関数を［エラー］処理コマンドで使用することができます。例外メッセージをボックス表示させることができます。

  • この関数の詳細は、MSDNのExceptionクラスの説明を参照してください。

モバイル仕様：

モバイル環境ではサポートされません。

関連トピック：

DNExceptionOccurred

.NETの例外処理

.NETの例外処理を行うには


関数ディレクトリ DNExceptionOccurred

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > DNExceptionOccurred

DNExceptionOccurred

例外発生通知

直近の.NET処理で例外が発生したことを通知します。

構文：

DNExceptionOccurred()

パラメータ：

なし

戻り値：

論理値

直近の.NETの処理で例外が発生した場合に「True」が返ります。

例：

ClientSessionStatisticsGet()

注意事項：

  • 例外が発生しても、DNException()関数が評価されるまで、DNExceptionOccurred()関数は'TRUE'LOGを返します。

  • ［ブロックWhile］処理コマンドの中で、次のような式を使用しようと思うかもしれません：NOT（DNExceptionOccured（))。しかし、最後の.NET処理に対してエラーが発生した場合のみFalseが返るため、この場合は不具合が発生します。以前の処理コマンドでエラーが発生した場合、無限ループになる可能性があります。

モバイル仕様：

モバイル環境ではサポートされません。

関連トピック：

DNException

.NETの例外処理

.NETの例外処理を行うには


関数ディレクトリ DNRef

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > DNRef

DNRef

参照情報の取得

項目の参照情報が返ります。この情報は、.NETメソッドに「参照型」として渡すことができます。

この関数は､参照型でパラメータが宣言されているメソッドがオブジェクトへの参照情報を受け取る必要がある場合に使用することができます。

構文：

DNRef (項目)

パラメータ：

  • 項目 …… .NETオブジェクト

戻り値：

.NETオブジェクトの参照情報

例：

DotNet.MyClass.MyMethod(DNRef(A))

この場合、項目'A'は､参照情報としてMyMethodに渡され、MyMethodによる変更が項目'A'に定義されたオブジェクトに適用され、メソッドからの戻り値として項目'A'に反映されます。

モバイル仕様：

モバイル環境ではサポートされません。


関数ディレクトリ DNSet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > DNSet

DNSet

プロパティの設定

.NETアセンブリオブジェクトのプロパティを設定します。この関数は、データメンバやプロパティ、または配列セルを更新する場合に使用されます。

構文：

DNSet (プロパティ, 値)

パラメータ：

  • プロパティ …… 設定するプロパティ（.NET項目､データメンバ、プロパティ、または 配列セル）

  • 値 …… 設定する値

戻り値：

送信した値

例：

DNSet(A,DotNet.System.Drawing.Font('Arial', 10))

Aが､System.Drawing.Font の.NET項目の場合、Arialfのサイズ10のフォントに設定します。これは、DotNet.System.Drawing.Font('Arial',10)で項目Aを更新する場合と同じになります。

DNSet(A.Font, DotNet.System.Drawing.Font('Arial', 10))

Aが、フォントのプロパティを持つ.NET型項目の場合、サイズ10のArialフォントに設定します。

DNSet(A.myIntProp, 7)

Aが、myIntPropという名前の Int型プロパティを持っている場合､myIntPropの値を7に設定します。

DNSet(A[3], 'hello')

AがSystem.String[]をもっている場合、'hello'という値を四番目のセルに設定します。

注意事項：

.NET型項目をの値を設定する場合は、[項目更新]処理コマンドまたはDNSet()関数の使用という2つの方法があります。データメンバやプロパティ、または配列セルの値を設定する場合は、DNSet()関数の使用でのみ可能です。

モバイル仕様：

モバイル環境ではサポートされません。

関連トピック：

.NETオブジェクトのプロパティを変更するには


関数ディレクトリ DOW

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > DOW

DOW

日付の曜日を示す番号

日付の曜日番号を取得します。

構文：

DOW(日付)

パラメータ：

  • 日付 …… 特定の日付

戻り値：

数値 …… 曜日番号

日…１ 、月…２ 、火…３ 、水…４ 、木…５ 、金…６ 、土…７

例：

DOW('92/01/29'DATE)

この日は水曜日なので4 が返ります。

IF(DOW(Date())=1,'Never on Sunday','')

この式では、システム日付が日曜日の場合、指定したメッセージが表示されます。

関連トピック：

CDOW, Day, NDOW

指定された日付の週単位の日数を取得するには


DragSetCrsr

ドラッグ時のカーソル定義

指定したカーソルファイルがドラッグ操作によってコピー可か否かを定義します。

構文：

DragSetCrsr(モード、カーソルファイル)

パラメータ：

  • モード …… カーソルモードを表す数値。指定できる値は、以下の通りです。

  • 1 …… カーソルファイルは、「コピー可」モードとして設定されます。1つのオブジェクトが別のオブジェクトに対して複写を許可し、最初のオブジェクトが他方のオブジェクトの上にドラッグされた時、「コピー可」モードが有効になります。

  • 2 …… カーソルファイルは、「コピー不可」モードとして設定されます。 1 つのオブジェクトが別のオブジェクトに対して複写を許可しない場合に、そのオブジェクトがもう一方のオブジェクト上にドラッグされた時、「コピー不可」モードが有効になります。

  • カーソルファイル …… カーソルファイル名とファイルパス (*.cur)を表す文字列

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例：

DragSetCrsr(1,'c:\images\dragcopy.cur')

「コピー可」モードで表示されるカーソルファイルを指定しています。

注意事項：

  • カーソルモード番号が指定された値以外の場合、カーソルファイルは、 「コピー可」モードに設定されます。

  • リッチクライアントタスクの場合、カーソルファイルはサーバ上のファイルを指定します。（サポートバージョン：2.2）

  • オフラインタスクの場合、クライアントはキャッシュからサーバイメージを検索します。キャッシュで見つからない場合、この関数は無視され、エラーは表示されません。最初に非オフラインプログラムで関数を実行するか、ServerFileToClient関数を使用してカーソルファイルをクライアントにコピーする必要があります。（サポートバージョン：2.4 ）

モバイル仕様：

モバイル環境ではサポートされません。


関数ディレクトリ DragSetData

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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関数で同じフォーマットを指定しなければ、処理されません。

モバイル仕様：

モバイル環境ではサポートされません。

関連トピック：

外部アプリケーションがデータを取得できないようにMagic xpa内だけでドラッグ＆ドロップを許可するには


関数ディレクトリ DropFormat

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > DropFormat

DropFormat

ドロップ操作の可否を確認

定義されたデータフォーマットがMagic xpaの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

ドロップデータを取得します。

指定したフォーマットでドロップされたデータを取得します。

構文：

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 を使用したファイル名の取得が正しく行えなくなる場合があります。

モバイル仕様：

モバイル環境ではサポートされません。

関連トピック：

ドラッグされたファイルからファイル名を取得するには

外部アプリケーションからMagic xpaにデータをドラッグするには


関数ディレクトリ DropMouseX

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > DropMouseX

DropMouseX

ドロップしたX座標の取得

ドラッグしたデータをドロップした時のフォームのX座標(フォームの寸法単位)値を取得します。

構文：

DropMouseX()

パラメータ：

なし

戻り値：

数値 …… マウスカーソルの X 座標。フォームの寸法単位に基づいた値が返ります。

注意事項：

  • Magic xpaのフォーム外をドロップした場合（例：フォームタイトル）、負数が返ります。

  • 同じ場所でも、フォームの寸法単位によって値が変わります。

モバイル仕様：

モバイル環境ではサポートされません。

関連トピック：

DropMouseY


関数ディレクトリ DropMouseY

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > DropMouseY

DropMouseY

ドロップしたY座標の取得

ドラッグしたデータをドロップした時のフォームのY座標(フォームの寸法単位)値を取得します。

構文：

DropMouseY()

パラメータ：

なし

戻り値：

数値 …… マウスカーソルの Y 座標。フォームの寸法単位に基づいた値が返ります。

注意事項：

  • Magic xpaのフォーム外をドロップした場合（例：フォームタイトル）、負数が返ります。

  • 同じ場所でも、フォームの寸法単位によって値が変わります。

モバイル仕様：

モバイル環境ではサポートされません。

関連トピック：

DropMouseX


関数ディレクトリ DStr

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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

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が返ります。

注意事項：

  • 書式が日付文字列の書式と合っていない場合には、結果が不定となります。

  • 書式と日付文字列の桁数を合わせてください。書式より短い日付を指定する場合は、空白で埋めてください。

関連トピック：

DStr

文字列で格納された日付を日付データに変換するには


関数ディレクトリ EditGet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > EditGet

EditGet

コントロールの値

ハンドラを起動したコントロールの値を取得します。

構文：

EditGet ( )

パラメータ：

なし

戻り値：

ハンドラを起動した項目の入力値が返ります。

注意事項：

  • ハンドラによる処理でのみ有効です。

  • ハンドラを起動した最後のコントロールの項目に入力されている値が返ります。

  • 戻り値の型は、対象となる項目の型と同じになります。

  • エディットコントロール以外で、編集モードにならないコントロールの場合は、そのコントロールの現在値か、項目値が返ります。

  • どのコントロールにもパークしないような処理フローのなかで関数が実行された場合、NULLが返ります。

  • コントロールから起動されるハンドラの設定において、イベントの[強制終了]の設定が[R=レコード]の場合、NULLが返ります。

  • [コントロール修正]イベントのロジックユニット内でこの関数を使用することで、修正時のコントロールの内容を取得することができます。

例外：

この関数は、［プッシュボタン］コントロールではサポートされません。［プッシュボタン］コントロールでは代わりにLastClicked関数を使用してください。

関連トピック：

EditSet

コントロール上（エディット/リッチエディット/複数選択リストボックス）にフォーカスが残っている状態で新規入力データを検索するには


関数ディレクトリ EditSet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > EditSet

EditSet

コントロールに値を設定

ハンドラを起動したコントロールに値を設定します。

構文：

EditSet (値)

パラメータ：

  • 値 …… コントロールに設定する値

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

注意事項：

  • ハンドラによる処理でのみ有効です。

  • 設定する値の型は、コントロールに関連付けられた項目の型と一致していなければいけません。異なる場合は、「False」 が返ります。

  • エディットコントロール以外のコントロールでは、そのコントロールに対応した変数項目の値を更新します。

  • どのコントロールにもパークしないような処理フローのなかで関数が実行された場合、「False」が返ります。

  • コントロールから起動されるハンドラの設定において、イベントの[強制終了]の設定が[R=レコード]の場合、「False」 が返ります。[C=コントロール]の場合、コントロールに対応する項目に値が設定されます。

関連トピック：

EditGet


関数ディレクトリ EJBCreate

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > EJBCreate

EJBCreate

EJBのインスタンス作成

EJBの新しいインスタンスが作成され、このインスタンスの疑似参照を取得します。

構文：

EJBCreate(JNDI 名[,Jndiプロパティ])

パラメータ：

  • JNDI名 …… JNDI名を表す文字列

  • Jndiプロパティ …… JNDIプロパティを表す文字列

戻り値：

BLOB値 …… 作成されたインスタンスの疑似参照が返ります。

例：

EJBCreate('JNDI_ejb1')

関連トピック：

Java関数


関数ディレクトリ EJBExplore

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > EJBExplore

EJBExplore

EJBの参照

EJBのXML記述が返ります。

構文：

EJBExplore(JNDI 名'[,'Jndiプロパティ])

パラメータ：

  • JNDI名 …… JNDI名を表す文字列

  • Jndiプロパティ …… JNDIプロパティを表す文字列

戻り値：

文字列 …… EJB の XML 記述を表す文字列

関連トピック：

Java関数


関数ディレクトリ EmptyDataview

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > EmptyDataview

EmptyDataview

タスクのデータビューの状態をチェック

データビューか空の状態かどうかを確認します。

構文：

EmptyDataview(世代番号)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

論理値 …… データビューか空の場合、Trueを返します。

注意事項：

タスクにメインソースが定義されいる場合は、Falseが返ります。

関連トピック：

データビューが空 イベント

空のデータビューを許可 特性


関数ディレクトリ EncryptionError

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > EncryptionError

EncryptionError

暗号／復号化処理のエラー情報の取得 Cipher/DeCipher 関数の直近のエラーメッセージが返ります。この関数は、コンテキストごとに対応します。
構文： | EncryptionError()
パラメータ： | なし
戻り値： | 文字列 …… Cipher/DeCipher関数処理の直近のエラーメッセージ


関数ディレクトリ EOF

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > EOF

EOF

入出力ファイルの処理終了を確認

指定した入出力ファイルのデータ処理が終了したかどうかを確認します。入出力ファイルのデータが終わった場合、EOF フラグが立てられますが、この関数を使用してEOF フラグを検索します。

構文：

EOF(世代番号,ファイル番号)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

  • ファイル番号 …… 指定されたタスクの[入出力ファイル]テーブルの番号

戻り値：

論理値 …… 最後のレコードの場合は、「True」が返ります。

例：

EOF(0,1)

現在のタスクでの最初の入出力ファイルで最後のレコードが処理されると、「True」 が返ります。

注意事項：

EOF 関数は入力ファイルに使用します。OSのテキストファイル（入出力ファイル）のデータを読み込むタスクでは、EOF 関数を条件として使用できます。例えば、EOF（0,1）を指定しておくことで、ファイルの最後のレコードの読み込みが完了すると同時にタスクが終了します。

関連トピック：

EOP, Line, Page


関数ディレクトリ EOM

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > EOM

EOM

月の最後の日付

日付を指定された月の最後の日付を取得します。

構文：

EOM(日付)

パラメータ：

  • 日付 …… 日付または日付式

戻り値：

日付値

例：

EOM ('97/05/05'DATE)

'97/05/31'が返ります。

関連トピック：

BOY, BOM, EOY, AddDate, CDOW, Date

指定された日付に対応する月の最後の日付を取得するには


関数ディレクトリ EOP

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > EOP

EOP

出力ファイルのページ終了の確認

指定した入出力ファイルでの現在のページで行カウンタの値が、[行]カラムに設定されている行数を超えたかどうか(EOP状態)を確認します。[行]カラムの設定が「0」の場合、そのファイルに関連しているプリンタに設定されている行数が使用されます。

構文：

EOP(世代番号,ファイル番号)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

  • ファイル番号 …… 指定されたタスクの[入出力ファイル]テーブルの番号

戻り値：

論理値 …… 最後のページの場合は、「True」が返ります。

例：

EOP(0,1)

現在のタスクでの最初の出力ファイルでEOP状態が検出されると、「True」が返ります。

注意事項：

［フォーム出力］処理コマンドで［ページ］特性を｢スキップ｣にした場合のみ､この関数は有益です。

関連トピック：

EOF, Line, Page


関数ディレクトリ EOY

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > EOY

EOY

年の最後の日付

日付を指定された年の最後の日付を取得します。

構文：

EOY(日付)

パラメータ：

  • 日付 …… 日付または日付式

戻り値：

日付 …… 日付または日付式

例：

EOY('97/11/17'DATE)

'97/12/31'が返ります。

関連トピック：

BOY, BOM, EOM, AddDate, CDOW, Date

指定された日付に対応する年の最後の日付を取得するには


関数ディレクトリ ErrDatabaseName

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ErrDatabaseName

ErrDatabaseName

エラーデータベース名 エラーが発生したデータベースの名前が返ります。
構文： | ErrDatabaseName( )
パラメータ： | なし
戻り値： | 文字列 …… エラーが発生したデータベースの名前


関数ディレクトリ ErrDbmsCode

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ErrDbmsCode

ErrDbmsCode

データベースエラーコード エラーが発生したDBMSのオリジナルのエラーコードが返ります。
構文： | ErrDbmsCode( )
パラメータ： | なし
戻り値： | 数値 …… DBMS のオリジナルのエラーコード
注意事項： | この関数は、致命的で予測できないエラーに対して使用できます。このエラーコードを基に開発者がDBMS のエラー原因を追求できます。


関数ディレクトリ ErrDbmsMessage

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ErrDbmsMessage

ErrDbmsMessage

データベースエラーメッセージ エラーが発生したDBMSのオリジナルのエラーメッセージが返ります。
構文： | ErrDbmsMessage( )
パラメータ： | なし
戻り値： | DBMS のオリジナルのエラーメッセージ
注意事項： | この関数は、致命的で予測できないエラーに対して使用できます。Magic xpaは、DBMS から内部メッセージを取得して表示します。


関数ディレクトリ ErrMagicName

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ErrMagicName

ErrMagicName

データベースエラー：Magic xpaのエラーメッセージ 直前に発生したMagic xpaのエラーメッセージを取得します。エラー一覧に表示されている文字列で返ります。 返されるエラーメッセージとERRリテラルを比較することで、発生したエラー内容を判断させることができます。
構文： | ErrMagicName( )
パラメータ： | なし
戻り値： | 文字 …… Magic xpaのエラーメッセージ
注意事項： | この関数は、「任意のエラー」タイプのエラーハンドラ内でエラー内容を判別する場合に使用します。
関連トピック： | リテラル


関数ディレクトリ ErrPosition

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ErrPosition

ErrPosition

エラー情報：位置

エラーが発生したレコードの位置が返ります。

構文：

ErrPosition ( )

パラメータ：

なし

戻り値：

BLOB値 …… エラーが発生したレコードの位置が含まれています。

注意事項：

  • エラーのスコープの外にある場合は空白を返します。この関数は、エラーが発生したレコードを表示させる時に使用します。

  • [範囲／位置付]ダイアログの[ポジション]特性に、本関数で取得したBLOB 変数を代入することにより、エラー発生時のレコードに位置付けできます。

例外：

XMLソースをサポートしていません。


関数ディレクトリ ErrTableName

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ErrTableName

ErrTableName

エラー情報：DB テーブル名

エラーが発生したDB テーブル名を取得します。

構文：

ErrTableName ( )

パラメータ：

なし

戻り値：

文字列 …… エラーが発生したDB テーブル名

関数が正常に処理されなかった場合は、空白が返ります。

注意事項：

  • エラーがメインソースで発生したか、リンクテーブルで発生したのかを調べるような場合に使用できます。

  • エラーハンドラが特定のテーブルに対して定義されている場合、この関数は必要ありません。


関数ディレクトリ EvalStr

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > EvalStr

EvalStr

文字列の評価

指定した文字列をMagic xpaの式として実行し、実行結果を取得します。

例えばDBテーブル内に処理内容をマクロとして格納したい場合などに便利です。処理内容を1つのプログラムとして作成することで、別のプログラムから実行させることができます。

この関数は、どのようなMagic関数でも実行させることができます。

構文：

EvalStr(文字列, デフォルト値)

パラメータ：

  • 文字列 …… Magic xpaの定義式として評価される文字列

  • デフォルト値 …… 式が正しくない場合に返される値。型は、評価式が返す値の型に合わせる必要があります。

例： 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

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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' が返ります。

関連トピック：

実行時に式の構文の確認と評価を行うには


関数ディレクトリ EXP

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > EXP

EXP

指数

指数を計算します。

構文：

EXP(数値)

パラメータ：

  • 数値 …… 指数関数の ex のx値

戻り値：

数値 …… ex の値

例：

EXP（5）は、e5の値を返します。

関連トピック：

LOG


関数ディレクトリ ExpCalc

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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関数を使用してください。

関連トピック：

式の中で別の式を再利用するには


関数ディレクトリ File2Blb

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > File2Blb

File2Blb

ファイルをBLOB オブジェクトに変換

ファイルをBLOB オブジェクトに変換した値が返ります。

構文：

File2Blb (ファイル名)

パラメータ：

  • ファイル名 …… ファイル名（文字列）。最大260バイトまで。unicode特有の文字は利用できません。

戻り値：

BLOB値 …… BLOB オブジェクトとして格納されたファイル

例：

File2Blb('C:\att1.rtf')

ファイル「att1.rtf」がBLOB 項目に格納されます。

プラットフォーム仕様：

Androidデバイスの場合、ファイルシステムは大文字と小文字を区別します。Magic xpa関連のファイル（例えばイメージやローカルデータベース）の名前は、小文字（ファイルが大文字で定義されていても)で、自動的に保存されます。この関数は、ファイル名を小文字に変換しません。したがって、Magic xpaで転送先のファイルを参照する必要がある場合、関数で小文字の名を使用しなければなりません。

例外：

［コールWebサービスライト］処理コマンドではサポートされません。

関連トピック：

Blb2File


関数ディレクトリ File2Ole

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > File2OLE

File2OLE

注意：

この関数は、Ver2.xではサポートされません。

ファイルをBLOBオブジェクトに変換

ファイルをBLOB オブジェクトに変換します。リンクまたは埋め込みの指定が可能です。

構文：

File2OLE (ファイル名,リンク)

パラメータ：

  • ファイル名 …… 変換するファイルの名前

  • リンク …… 論理値

  • True …… ファイルにリンクが設定されます。

  • False …… ファイルが埋め込まれます。

戻り値：

BLOB値。BLOB がNULL の場合、この関数では変換は実行されません。

例：

File2OLE('C:\att1.doc','TRUE'LOG)

OLE2 のBLOB 変数に、「att1.doc」（Word ファイル）へのリンクが対応付けられます。


関数ディレクトリ File2Req

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > File2Req

File2Req

ファイルの内容をリクエスタに送信

指定されたファイルの内容をリクエスタに送信します。

構文：

File2Req (ファイル名)

パラメータ：

  • ファイル名 …… ファイル名（文字列）。最大260バイトまで。unicode特有の文字は利用できません。

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例：

File2Req('C:\att1.doc')

リクエスタに「att1.doc」というファイルが送られます。

注意事項：

リクエスタにデータを送る前に、RqHTTPHeader関数を使用するでHTTPヘッダ情報を定義することができます。

例外：

リッチクライアントタスクではサポートされません。

プラットフォーム仕様：

Androidデバイスの場合、ファイルシステムは大文字と小文字を区別します。Magic xpa関連のファイル（例えばイメージやローカルデータベース）の名前は、小文字（ファイルが大文字で定義されていても)で、自動的に保存されます。この関数は、ファイル名を小文字に変換しません。したがって、Magic xpaで転送先のファイルを参照する必要がある場合、関数で小文字の名を使用しなければなりません。

関連トピック：

Blb2File


関数ディレクトリ FileCopy

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > FileCopy

FileCopy

ファイルのコピー（ディスク上）

ファイルをコピーします。

構文：

FileCopy(元ファイル,新ファイル)

パラメータ：

  • 元ファイル …… コピー元となる既存のファイルの名前

  • 新ファイル …… コピー先となる新規のファイルの名前

ファイル名は、最大260バイトまで。unicode特有の文字は利用できません。

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例：

FileCopy('MAGIC.FIL','MAGIC.SAV')

MAGIC.FIL という名前のファイルの内容が、MAGIC.SAV という新規のファイルにコピーされます。

注意事項：

２つのパラメータにはそれぞれ、パスを指定することもできます。パスを省略した場合、カレントのディレクトリと解釈されます。

プラットフォーム仕様：

Androidデバイスの場合、ファイルシステムは大文字と小文字を区別します。Magic xpa関連のファイル（例えばイメージやローカルデータベース）の名前は、小文字（ファイルが大文字で定義されていても)で、自動的に保存されます。この関数は、ファイル名を小文字に変換しません。したがって、Magic xpaで転送先のファイルを参照する必要がある場合、関数で小文字の名を使用しなければなりません。

関連トピック：

FileDelete, FileExist, FileRename, FileSize

ディスク上のファイルをコピーするには


関数ディレクトリ FileDelete

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > FileDelete

FileDelete

ファイルの削除（ディスク上）

ディスク上のファイルを削除します。

構文：

FileDelete(ファイル名)

パラメータ：

  • ファイル名 …… 削除するファイルの名前。このパラメータにはパスを指定することもできます。パスを指定しなかった場合、カレントディレクトリが使用されます。
    最大260バイトまで。unicode特有の文字は利用できません。

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例：

FileDelete('c:\xpa\MAGIC.FIL')

Cドライブ のMagic xpaディレクトリにあるMAGIC.FIL が削除されます。

注意事項：

ファイルは、[コールOSコマンド]処理コマンドを使用して削除することもできますが、できるだけこの関数を使用するようにしてください。

プラットフォーム仕様：

Androidデバイスの場合、ファイルシステムは大文字と小文字を区別します。Magic xpa関連のファイル（例えばイメージやローカルデータベース）の名前は、小文字（ファイルが大文字で定義されていても)で、自動的に保存されます。この関数は、ファイル名を小文字に変換しません。したがって、Magic xpaで転送先のファイルを参照する必要がある場合、関数で小文字の名を使用しなければなりません。

関連トピック：

FileCopy, FileExist, FileRename, FileSize

同じファイルやデータソースを扱っているタスク内でファイルやデータソースを削除するには

ディスク上のファイルを削除するには


関数ディレクトリ FileDlg

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > FileDlg

FileDlg

[ファイルを開く]ダイアログのオープン

Windows の[ファイルを開く]ダイアログをオープンし、選択したファイル名が返ります。

構文：

FileDlg(ファイルタイプ,グループ)

パラメータ：

  • ファイルタイプ… …… [ファイルの種類]ボックスに表示されるファイル名

  • グループ… …… ファイル名のグループ。ワイルドカードが使用できます。セミコロン（;）で複数指定することもできます。

戻り値：

文字列 …… 「ファイルを開く」ダイアログで選択したファイル名

例：

FileDLG('DataFile',' *.dat;*.txt')

プロジェクトフォルダをカレントトした[ファイルを開く]ダイアログボックスが開き、拡張子が.datまたは.txtのすべてのファイルが表示されます。

FileDLG('MyFiles',' *.*')

‘c：\temp\’をカレントトした[ファイルを開く]ダイアログボックスが開き、すべてのファイルが表示されます。

例外：

リッチクライアントタスクではサポートされません。ファイルダイアログボックスを開く場合は、ClientFileOpenDlg関数やClientFileSaveDlg関数を使用してください。

プラットフォーム仕様：

Androidデバイスの場合、ファイルシステムは大文字と小文字を区別します。Magic xpa関連のファイル（例えばイメージやローカルデータベース）の名前は、小文字（ファイルが大文字で定義されていても)で、自動的に保存されます。この関数は、ファイル名を小文字に変換しません。したがって、Magic xpaで転送先のファイルを参照する必要がある場合、関数で小文字の名を使用しなければなりません。

関連トピック：

DirDlg


関数ディレクトリ FileExist

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > FileExist

FileExist

ファイルの存在の確認（ディスク上）

ドライブ内に指定されたディレクトリやファイルが存在しているかどうかを確認します。

構文：

FileExist(ファイル名)

パラメータ：

  • ファイル名 …… 検索するファイルの名前。パスを指定することもできます。パスを指定しなかった場合、カレントのディレクトリに対して検索が行われます。
    最大260バイトまで。unicode特有の文字は利用できません。

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例：

FileExist('c:\xpa\magic.ini')

C ドライブのMagic xpaディレクトリにmagic.iniファイルがあれば、「True」 が返ります。

注意事項：

パスがバックスラッシュ（\）で終了するように指定された場合、関数は空白が返ります。パスの最後にバックスラッシュを含めないようにしてください。

プラットフォーム仕様：

Androidデバイスの場合、ファイルシステムは大文字と小文字を区別します。Magic xpa関連のファイル（例えばイメージやローカルデータベース）の名前は、小文字（ファイルが大文字で定義されていても)で、自動的に保存されます。この関数は、ファイル名を小文字に変換しません。したがって、Magic xpaで転送先のファイルを参照する必要がある場合、関数で小文字の名を使用しなければなりません。

関連トピック：

FileCopy, FileDelete, FileRename, FileSize

ディスク上のファイルの存在をチェックするには


関数ディレクトリ FileInfo

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > FileInfo

FileInfo

ファイル情報の取得

指定したファイルの情報を取得します。

構文：

FileInfo(ファイル名, 情報タイプ)

パラメータ：

  • ファイル名(文字列) …… 情報を取得したいファイル名。論理名が使用できます。最大260バイトまで。unicode特有の文字は利用できません。

  • 情報タイプ(数値) …… 取得する情報の種類を指定します。

情報タイプ

内容

1

ファイル名のみ

2

パス名のみ

3

ファイル名+パス名

4

属性 …… カンマ区切りで以下の文字列を指定できます。

  • FILE …… ファイル

  • DIRECTORY …… ディレクトリ

  • ARCHIVE …… アーカイブ可能

  • READONLY …… 読み取り専用

  • HIDDEN …… 隠しファイル

  • COMPRESSED …… 圧縮

  • ENCRYPTED …… 暗号化

  • SYSTEM …… システムファイル

5

サイズ（バイト数）

6

作成日付

7

作成時刻

8

更新日付

9

更新時刻

10

アクセス日付

11

アクセス時刻

戻り値：

ファイルの属性が返ります。指定した情報タイプによって異なります。

  • 1～4 …… 文字列

  • 5 …… 数値

  • 6,8,10 …… 日付

  • 7,9,11 …… 時刻

エラーが発生した場合は、Null が返ります。

例：

FileInfo('C:\Program Files\Magic xpa\Studio\MagicxpaStudio.exe,2)

パス名のみの「C:\Program Files\Magic xpa\Studio」が返ります。

注意事項：

パスがバックスラッシュ（\）で終わる場合、関数は空白を返します。パスの最後にバックスラッシュを含めないようにしてください。

プラットフォーム仕様：

Androidデバイスの場合、ファイルシステムは大文字と小文字を区別します。Magic xpa関連のファイル（例えばイメージやローカルデータベース）の名前は、小文字（ファイルが大文字で定義されていても)で、自動的に保存されます。この関数は、ファイル名を小文字に変換しません。したがって、Magic xpaで転送先のファイルを参照する必要がある場合、関数で小文字の名を使用しなければなりません。

関連トピック：

ClientFileInfo

ディスク上のファイルのサイズを取得するには

ディスク内のファイルの作成日付を取得するには


関数ディレクトリ FileListGet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > FileListGet

FileListGet

ファイル一覧の取得

指定されたディレクトリ内のファイル一覧を取得します。フィルタを指定することで取得内容を絞り込むことができます。

構文：

FileListGet(ディレクトリ名, フィルタ,サブディレクトリ検索フラグ)

パラメータ：

  • ディレクトリ名 …… ファイル一覧を取得するディレクトリ名を表す文字列。論理名が使用できます。

  • フィルタ …… 検索ファイルの名前を絞り込むフィルタを表す文字列。ワイルドカード(*)が指定できます。複数のフィルタを指定する場合は、「|」で区切ります。（例： "*.xml|*.xsd"）空白が指定された場合は、全てのファイル名が返ります。

  • サブディレクトリ検索フラグ…… サブディレクトリも検索するかどうかを指定する論理値。

  • True …… サブディレクトリも検索する

  • False …… 指定されたディレクトリのみ検索する

戻り値：

文字型のセルモデルが定義されたベクトル項目

各セルにファイル名が格納されます。ファイルが存在しない場合、NULLが返ります。サブディレクトリ内のファイルは、相対パスが付加された名前が返ります。

例：

FileListGet('c:\temp','*.xml|*.xsd','TRUE'LOG)

「c:\temp」ディレクトリ内のサブディレクトリを含んだファイル名の内、拡張子が、「xml」と「xsd」のファイルの一覧が返ります。

プラットフォーム仕様：

Androidデバイスの場合、ファイルシステムは大文字と小文字を区別します。Magic xpa関連のファイル（例えばイメージやローカルデータベース）の名前は、小文字（ファイルが大文字で定義されていても)で、自動的に保存されます。この関数は、ファイル名を小文字に変換しません。したがって、Magic xpaで転送先のファイルを参照する必要がある場合、関数で小文字の名を使用しなければなりません。

関連トピック：

ファイルディレクトリの内容を取得するには


関数ディレクトリ FileRename

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > FileRename

FileRename

ファイルの名前の変更（ディスク上）

ディスク上のファイルの名前を変更します。

構文：

FileRename(元ファイル,新ファイル)

パラメータ：

  • 元ファイル …… 名前を変更するファイルの名前

  • 新ファイル …… 変更後の名前

ファイル名は、最大260バイトまで。unicode特有の文字は利用できません。

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例：

FileRename('MAGIC.FILE','MAGIC.SAV')

MAGIC.FIL という名前がMAGIC.SAVに変更されます。

注意事項：

  • 2 つのパラメータにはそれぞれ、パスを指定することもできます。パスを省略した場合、ディレクトリはカレントディレクトリと解釈されます。

  • （ドライブ名が間違っていたなどの理由で）リネームできなかった場合、指定されたドライブにファイルがコピーされます。

プラットフォーム仕様：

Androidデバイスの場合、ファイルシステムは大文字と小文字を区別します。Magic xpa関連のファイル（例えばイメージやローカルデータベース）の名前は、小文字（ファイルが大文字で定義されていても)で、自動的に保存されます。この関数は、ファイル名を小文字に変換しません。したがって、Magic xpaで転送先のファイルを参照する必要がある場合、関数で小文字の名を使用しなければなりません。

関連トピック：

FileCopy, FileExist, FileDelete, FileSize

ディスク上のファイルをリネームするには


関数ディレクトリ FileSize

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > FileSize

FileSize

ファイルサイズの照会（ディスク上）

ディスク上のファイルのサイズ(バイト)を取得します。

構文：

FileSize(ファイル名)

パラメータ：

  • ファイル名 …… サイズを取り出すファイルの名前。パスを指定することもできます。パスを指定しなかった場合、カレントのディレクトリに対して検索が行われます。最大260バイトまで。unicode特有の文字は利用できません。

戻り値：

数値 …… ファイルのサイズ（Byte）

例：

FileSize('c:\xpa\magic.ini')

C ドライブのMagic xpaディレクトリのmagic.iniファイルのサイズ（バイト数）が返ります。

注意事項：

ファイルサイズの取得する場合、FileInfo関数を使用することを推奨します。

関連トピック：

FileCopy, FileExist, FileDelete


関数ディレクトリ Fill

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Fill

Fill

文字列の繰り返し

文字列または文字列式を繰り返します。

構文：

Fill(文字列,回数)

パラメータ：

  • 文字列 …… 文字列または文字列式

  • 回数 …… 文字列を繰り返す回数

戻り値：

文字列

例：

Fill('*',5)

'*'が5 回繰り返され、'*****'という文字列が作成されます。

注意事項：

この関数の上限は、32KByteです。

関連トピック：

Ins, Del, Rep


関数ディレクトリ Fix

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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


関数ディレクトリ Flip

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Flip

Flip

文字列を反転

文字列を反転した鏡字イメージを取得します。

構文：

Flip(文字列)

パラメータ：

  • 文字列 …… 文字列または文字列式

戻り値：

文字列

例：

Flip('Good')

'dooG'が返ります。


関数ディレクトリ Flow

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Flow

Flow

フローモードのチェック

現在の操作のフローモードを確認します。

構文：

Flow(文字列)

パラメータ：

  • 文字列 …… フローモードを表す文字

  • N …… 順方向通常モード

  • F …… 順方向高速モード

  • P …… 逆方向通常モード

  • R …… 逆方向高速モード

  • S …… 選択終了（選択操作後に終了）

  • C …… 取消終了（選択操作なしで終了）

戻り値：

論理値

  • True …… 現在の処理モードが指定した処理モードの場合

  • False …… 指定した処理モードでない場合

例：

Flow('N')

通常モードでカーソルが次の項目に移動した場合、「True」が返ります。

関連トピック：

ViewMod, VarMod

カーソルを一定の方向に移動させた場合のみ処理を実行させるには


関数ディレクトリ FlwMtr

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > FlwMtr

FlwMtr

アクティビティモニタにメッセージを表示

Magic xpaのアクティビティモニタにメッセージを表示させます。

構文：

FlwMtr(文字列,論理ブレイク)

パラメータ：

  • 文字列 …… アクティビティモニタに表示させる文字列

  • 論理ブレイク …… このパラメータは動作しません。常に'FALSE'として扱われます。

戻り値：

論理値 …… 常に'FALSE'が返ります。

例：

FlwMtr(DSTR(B,'DDMMYYYY'),'FALSE'LOG)

処理を止めて項目をウォッチに追加することなく、日付項目「B」の値をログに追加するように指定します。アクティビティモニタを手動で停止させることなく項目の内容を確認したい場合に使用してください。


関数ディレクトリ FormStateClear

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > FormStateClear

FormStateClear

保存されているフォームの状態情報を初期化します。

プログラム終了後に、保持されているフォームの位置やサイズなどの状態を初期化します。この関数の主な使用目的は、指定したフォームの状態をデフォルトに設定してユーザに提供することです。

構文：

FormStateClear (フォーム名)

パラメータ：

  • フォーム名（文字） …… 初期化するフォームの[フォーム特性]の［フォーム状態ID］特性を指定します。

以下の予約語を使用することができます。

  • 空白 …… 空白は、現在のフォームの状態を初期化します。

  • * …… アスタリスクは、現在のプロジェクトの全てのフォームの状態情報を初期化します。

戻り値：

論理値 …… 指定されたフォームに保存されている状態情報が存在する場合は、「True」が返ります。

注意：

すべてのデータをクリアするために、ステータスファイルを削除することもできます。ステータスファイルは、以下の場所に保存されます。

  • C:\Documents and Settings\<user>\Application Data\MSJ\<アプリケーションのGUI ID>\

Windows 7の場合は、以下の場所になります。

  • C:\Users\<user>\AppData\Roaming\MSJ\<アプリケーションのGUI ID>\

この関数は、オンラインとリッチクライアントタスク（クライアント側の関数）で有効です。

リッチクライアントタスクでは、空白とアスタリスクのみサポートします。空白を使用した場合、サブフォームに対しても有効です。

モバイル仕様：

モバイル環境ではサポートされません。

関連トピック：

フォーム状態ID


関数ディレクトリ GetComponentName

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > GetComponentName

GetComponentName

コンポーネント名の取得 現在のコンポーネントのファイル名を取得します。これはプロジェクト用データの永続性のために必要になります。
構文： | GetComponentName ( )
パラメータ： | なし
戻り値： | 文字列 …… 関数を起動したアプリケーションのキャビネット（またはプロジェクト）ファイル名を表す文字列が返ります。関数がコンポーネントから呼び出されない場合、プロジェクトのedpファイル名を返します。


関数ディレクトリ GetGUID

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > GetGUID

GetGUID

アプリケーションのGUID取得

アプリケーション(プロジェクト)のGUIDが返ります。これはプロジェクト用データの永続性のために必要になります。

構文：

GetGUID (世代番号)

パラメータ：

  • 世代番号（数値） …… プロジェクトの階層的位置を示す数値。

  • 0 …… 現在のプロジェクト／コンポーネント

  • 1 …… 親のプロジェクト／コンポーネント

戻り値：

文字列 …… GUIDを含む文字列


関数ディレクトリ GetLang

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > GetLang

GetLang

現在使用されている言語を取得 [動作環境]ダイアログの[デフォルト言語]に設定されている言語を取得します。SetLang関数で変更された場合、その言語が返ります。
構文： | GetLang( )
パラメータ： | なし
戻り値： | 文字列または空白
例： | GetLang()
関連トピック： | SetLang


関数ディレクトリ GetParam

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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##」を使用して引数を順番に取り出すことができます。

    • 値が-Aまたは -Nで始まる場合、それらは値タイプに基づくエンジンに対する指示になるため、これらの接頭辞は値から削除されます。この値をそのまま渡したい場合は、例えば、-A-Aabcdというように追加された接頭辞で更新する非表示の入力フィールドを追加するようにHTMLページを変更する必要があります。これによって、以下の通りに非表示の追加フィールドを更新するために、JavaScript関数を使用することができます。

function confirm() {

document.getElementById("Username1").
value = "-A" + document.getElementById("Username2").
value;

}

次に、HTMLページ内のformタグに以下を追加することで、この関数を呼び出すことができます。

onsubmit="return confirm();

関連トピック：

SetParam、SharedValGet、SharedValSet


GetParamAttr

グローバルパラメータのデータ型を取得

（SetParam関数によって設定された)グローバルパラメータのデータ型を返します。

構文：

GetParamAttr (パラメータ名)

パラメータ：

  • パラメータ名 …… グローバルパラメータの名前

戻り値：

データ型を表す文字列

例：

GetParamAttr('myparam')

「myparam」というパラメータがUnicode型の場合、「U」の値が返ります。

関連トピック：

SetParam、GetParamNames

サポートバージョン：

2.3


GetParamNames

グローバルパラメータ名の取得 （SetParam関数によって設定された)グローバルパラメータの名前を返します。
構文： | GetParamNames ()
パラメータ： | なし
戻り値： | 文字型のベクトルデータ …… ベクトルデータ内にはグローバルパラメータの名前が含まれています。
関連トピック： | SetParam、GetParamAttr

サポートバージョン：

2.3


関数ディレクトリ GroupAdd

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > GroupAdd

GroupAdd

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

セキュリティファイルに定義されているユーザに対してグループを割当てます。

構文：

GroupAdd(ユーザ,ユーザグループ)

パラメータ：

  • ユーザ …… ユーザのユーザID を指定します。このユーザが、ユーザグループに割当てられます。

  • グループ …… ユーザが追加されるユーザグループ

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例：

GroupAdd('Accountant', 'Accounting')

'Accountant'というユーザが'Accounting'というグループに追加されます。これで、'Accountant'には、'Accounting'に定義されている権利が全て与えられます。

注意事項：

この関数は、SUPERVISOR権利を持ったユーザだけが使用できます。ほかのユーザの場合、この関数を使用しても無視されます。

関連トピック：

ユーザグループ権利


関数ディレクトリ Han

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Han

Han

全角文字を半角に変換

全角文字（英数字、またはカタカナ）を半角文字に変換します。

構文：

Han（文字列）

パラメータ：

  • 文字列 …… 文字列

戻り値：

文字列

例：

Han('１６ＫＢ')='16KB'

Han('カタカナ')='カタカナ'

注意事項：

日本語版のみ有効です。

関連トピック：

Zen、Zens


関数ディレクトリ HandledCtrl

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > HandledCtrl

HandledCtrl

コントロール名の取得

ハンドラが起動されたコントロールの名前を取得します。

構文：

HandledCtrl()

パラメータ：

なし

戻り値：

文字列 …… 現在のハンドラが起動されたコントロールの名前

注意事項：

  • 特定のコントロール（タスクやレコードレベルハンドラ、バッチタスクのハンドラ）から起動された場合は、空白が返ります。

  • この関数は、パークしていなくてもイベントを起動したコントロールの名前を返します。例えば、マウスオーバやマウスアウトイベントなどです。

  • コントロールレベルで実行しても値は返りません。

関連トピック：

イベントが発行されたコントロールを識別するには


関数ディレクトリ Hour

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Hour

Hour

時刻の時間の値

時刻の時数値を取得します。

構文：

Hour(時刻)

パラメータ：

  • 時刻 …… 時刻または時刻式

戻り値：

数値（1～99）

例：

Hour('12:00:00'Time)

12 が返ります。

項目A の時刻値が14:00:00 の場合、Hour(A)+2 では16 が返ります。

関連トピック：

Minute, Second

指定された時刻の時/分/秒の各部分を取得するには


関数ディレクトリ HStr

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > HStr

HStr

10進数から16進数に変換

10進数を16進数に変換します。

構文：

HStr(数値)

パラメータ：

  • 数値 …… 10進数、または10 進数を表す数値

戻り値：

文字列 …… 16進数を表す文字列

例：

HStr(15)

'F'が返ります。

HStr(16)

'10'が返ります。

注意事項：

結果は、左寄せの形式で返ります。

関連トピック：

HVal


HTTPCall

HTMLリクエストの処理

HTTPリクエストを処理し、結果を取得します。この関数を使用することによりREST(Representational State Transfer)サービスを使用することができます。

構文：

HTTPCall (メソッド名, サービスURL, メッセージ, [ヘッダ1], [ヘッダ2], ...)

パラメータ：

  • メソッド名…… メソッドを表す文字列。オプションとして、GET、POST、PUT、DELETEが指定できます。

  • サービスURL …… HTTPリクエストを受け取るHTTPアドレスを意味する文字列。

  • MagicクライアントがWebサーバにアクセスする場合にユーザ名やパスワードを渡したい場合は、URLを以下のようにしてください。

http://User:Password@URL

シークレット名を使用することで以下のように指定できます。

http://user_secretname:pass_secretname@URL

  • メッセージ …… メッセージとして処理される文字列。メッセージ内容に対する制限はありません。GETメソッドを使用する場合も、空白で指定する必要があります。

  • ヘッダ …… 文字列:追加したいリクエストヘッダ情報。必要な数のヘッダ情報文字列を指定できます。

戻り値：

BLOBデータ …… 指定したURLによって取得された情報が含まれています。接続に失敗した場合は、NULL が返ります。

例：

HTTPCall('Get','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)で指定されたファイルを取得します。

３番目のパラメータは、追加リクエストヘッダ情報のサンプルです。もし、ページが指定された日以降に変更された場合のみ、ページの受信要求を行います。

４番目のパラメータは、このリクエストをシミュレートするユーザエージェントのサーバタイプを指定します。

HTTPCall('Post',‘http://www.magicsoftware.com/uniScripts/MGrqispi0xxx.dll’,'Appname=ApplicationName&Prgname=ProgramName')

アプリケーションサーバ上のMagicアプリケーション（ApplicationName）を起動します。起動されたアプリケーション内でリクエストに対してデータ出力した場合、出力内容が戻り値として返ります。

関連トピック：

HTTPGet、HTTPPost

注意事項：

  • HTTPGet 関数は、Proxy サーバを通して接続できます。MAGIC.INI または、[動作環境]ダイアログで Proxy サーバの指定を行ってください。

  • 関数の取得処理に対するタイムアウトは、MAGIC.INI または、動作環境ダイアログ の「HTTPタイムアウト」で指定できます。

  • 受け取ったHTMLファイル、またはテキストファイルは、文字列操作関数を使用して内容を表示することができます。

  • Blb2File関数で、ファイルに保存することができます。

  • データに特殊な文字（例えば、%、や、＜、＞…)が含まれている場合、変換したくなければ、リクエストのHTTPヘッダに 'content-type:text/html を含めてください。

参考：

HTTPメソッドについて

  • GET …… URLで指定した情報を要求します。URLがファイル名のときはそのファイルの中身を、プログラム名のときはそのプログラムの出力を返します。

  • POST …… クライアントからデータを（名前と値）のセットで渡します。フォームデータを送るときなどに使用します。

  • PUT …… URLで指定したサーバ上のファイルを置き換えます。

  • DELETE …… URIで指定したサーバ上のファイルを削除します。

PUT/DELETEを使用する場合は、IISを以下のように設定してください。

  • Windows XP/Windows2003 …… エイリアスの書き込み権を有効にしてください。

  • Windows 7/Winsows 2008R2 …… ルートエイリアスで以下の設定を行います。

    • 基本認証を有効にします。

    • WebDAVオーサリング規則で「書き込み」のアクセス許可を有効にします。

    • HTTPCallで指定するURLにユーザIDとパスワードを指定します。


HTTPGet

HTMLの取得

HTTPリクエストの結果として返されるHTMLのBLOBデータを取得します。

この関数の利用は推奨しません。代わりに HTTPCall を使用するようにしてください。

構文：

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関数で、ファイルに保存することができます。

  • データに特殊な文字（例えば、%、や、＜、＞…)が含まれている場合、変換したくなければ、リクエストのHTTPヘッダに 'content-type:text/html を含めてください。

関連トピック：

Webページやその他のURLコンテンツを受信するには


関数ディレクトリ HTTPLastHeader

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > HTTPLastHeader

HTTPLastHeader

直近のHTTPリクエストのヘッダ情報

HTTPGet/HTTPPost関数で取得した直近のHTTPリクエストのヘッダ情報を取得します。ヘッダ名を指定することで、該当するHTTPヘッダの値が取得できます。

構文：

HTTPLastHeader(ヘッダタイトル)

パラメータ：

  • ヘッダタイトル …… ヘッダタイトルを表す文字列

例：'Content-Type' または、'Expires'、'Content-Length' など

戻り値：

文字列 …… ヘッダとして定義された文字列

ヘッダタイトルが空白の場合、ヘッダ全てが返ります。

使用目的：

ヘッダリストの取得

適用範囲：

この関数は、HTTPリクエストの後に使用された場合、値を返します。別のプログラムまたはイベントの呼び出しを実行すると、HTTPLastHeader関数によって返される値は消去されます。

例：

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

HTTPPost

HTMLデータの送信

HTTP メッセージ経由で情報を渡します。HTTP リクエストの戻り値としてのHTML/XML結果を BLOBで受け取ることもできます。

この関数の利用は推奨しません。代わりに HTTPCall を使用するようにしてください。

構文：

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/MagicScripts/MGrqispi.dll’,'Appname=ApplicationName&Prgname=ProgramName'）

アプリケーションサーバ上のMagicアプリケーション（ApplicationName）を起動します。起動されたアプリケーション内でリクエストに対してデータ出力した場合、出力内容が戻り値として返ります。

注意事項：

  • HTTPPost 関数は、Proxy サーバを通して接続できます。MAGIC.INI または、動作環境ダイアログで Proxy サーバの指定を行ってください。

  • 関数の取得処理に対するタイムアウトは、MAGIC.INI または、動作環境ダイアログ の「HTTPタイムアウト」で指定できます。

  • 受け取ったHTMLファイル、またはテキストファイルは、文字列操作関数を使用して内容を表示することができます。

  • Blb2File関数で、ファイルに保存することができます。

  • データに特殊な文字（例えば、%、や、＜、＞…)が含まれている場合、変換したくなければ、リクエストのHTTPヘッダに 'content-type:text/html を含めてください。


関数ディレクトリ HVal

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > HVal

HVal

16進数の10進数への変換

16進数を10進数に変換します。

構文：

HVal(文字列)

パラメータ：

  • 文字列 …… 16 進数を表す文字列

戻り値：

数値

例：

HVal('FF')

255 が返ります。

HVal('10')

16 が返ります。

関連トピック：

HStr


関数ディレクトリ Idle

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Idle

Idle

システムのアイドル時間の確認

Magic xpa上でキー操作が実行された後、操作が行われていない時間を取得します。この関数は、[動作環境]テーブルの[キーボード休止秒数]パラメータの値と関連しており、この[キーボード休止秒数］に設定されている時間（単位秒）が経過した時に限って、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


関数ディレクトリ IF

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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

データの照合

カンマ区切りのデータ列内に指定したデータが存在するかどうかを確認します。

構文：

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 ゲートウェイでは無効です。


関数ディレクトリ INIGet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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 xpaの項目を操作できます。また、アプリケーションのグローバルデータの取り出しも可能です。取り出すアプリケーションのデータが更新できる場合、ユーザごとにMAGIC.INI ファイルを用意します。一方、グローバルデータとカウンタを複数のユーザで共有する場合、標準のDB テーブルを使用するようにします。

  • [動作環境]ダイアログの[MAGIC.INI 常駐]パラメータを「Yes」にしておくと、処理速度が向上します。

関連トピック：

INIPut


関数ディレクトリ INIGetLn

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > INIGetLn

INIGetLn

MAGIC.INI ファイルの値の取得

MAGIC.INIファイルの指定したセクション/行番号に定義された値を取得します。

構文：

INIGetLn(セクション名,行番号)

パラメータ：

  • セクション名 …… 内容を取得するパラメータが置かれているセクションの名前

  • 行番号 …… 内容を取得するパラメータの行番号（セクション行を基点とする）

戻り値：

文字列 …… 指定した行のパラメータ名と値

例：

INIGetLn('[MAGIC_ENV]',3)

MAGIC.INI ファイルのMAGIC ENV セクションで3 番目の行の内容が返ります。

注意事項：

  • 指定した行番号が１より小さい場合、空白の文字列が返ります。

  • 最初の空白の行を指定すると、空白の文字列が返ります。

  • Magic xpaの起動時にコマンドラインでパラメータを指定している場合は、[MAGIC]セクションの１行目としてその値が返ります。


関数ディレクトリ INIPut

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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('[HELLO_TEST]aa=1\\2'、'TRUE'LOG)

  • ワイルドカードとして、アスタリスク(*)を使用することができます。
    例：INIPut('[HELLO_TEST]aa=*1\2'、'TRUE'LOG)

関連トピック：

INIGet, INIPut関数の動作


関数ディレクトリ Ins

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Ins

Ins

文字列を別の文字列に挿入

文字列を別の文字列に挿入します。

構文：

Ins(文字列1,文字列2,位置,文字数)

パラメータ：

  • 文字列1 …… 文字列の挿入先となる文字列

  • 文字列2 …… 挿入する文字列

  • 位置 …… 文字列が挿入される位置で、先頭からの位置を数値で示します。

  • 文字数 …… 挿入する文字列の文字のうち、実際に挿入する文字数を指定します。

戻り値：

文字列

例：

Ins('abcde','xxx',3,1)

'abxcd'が返ります。

関連トピック：

Del, Rep, Fill


関数ディレクトリ InStr

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > InStr

InStr

文字列内の検索文字列の最初の出現位置を検索

文字列内の検索文字列の最初の出現位置を取得します。

構文：

InStr(文字列,検索文字列)

パラメータ：

  • 文字列 …… 文字列または文字列式で、この文字列または文字列式に対して検索が実行されます。

  • 検索文字列 …… 検索対象となる文字

戻り値：

数値 …… 検索対象の文字の位置を示す数値が返ります。文字が見つからなかった時には、0が返ります。

例：

InStr('abcd','b')

2 が返ります。

InStr('ABCDEF','DE')

4 が返ります。


関数ディレクトリ InTrans

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > InTrans

InTrans

トランザクションの確認 トランザクションが現在オープンしているかどうかを確認します。
構文： | InTrans()
パラメータ： | なし
戻り値： | 論理値


関数ディレクトリ IOCurr

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > IOCurr

IOCurr

出力中の入出力ファイル番号

現在、処理中の[入出力ファイル]テーブルの入出力ファイル番号を取得します。

構文：

IOCurr()

パラメータ：

なし

戻り値：

数値 …… [入出力ファイル]テーブルの入出力ファイルの番号が返ります。

注意事項：

  • この関数は、実際に入出力ファイルが処理されている時に実行します。

  • この関数は、[イベント]テーブルの[式]カラムで定義します。または、[イベント]テーブルの[イベント]カラムに指定しているイベントが「ページヘッダ」または「ページフッタ」の場合に使用します。

  • なお、ページヘッダやページフッタのフォームを、[メディア]カラムが[G=GUI 形式プリント]に設定された入出力ファイルに割当てられている場合に限り、この関数から入出力ファイルの番号が返ります。これ以外メディア指定の場合、この関数からは「0」が返ります。


関数ディレクトリ IsComponent

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > IsComponent

IsComponent

コンポーネントプログラムの確認

実行されたプログラムやハンドラがコンポーネントアプリケーションのものかどうかを確認します。

構文：

IsComponent( )

パラメータ：

なし

戻り値：

論理値

  • True …… 関数を実行したプログラム（またはハンドラ）がコンポーネントアプリケーション内の場合

  • False …… ホストアプリケーションの場合

例：

以下のような場合、「True」が返ります。

  • コンポーネントプログラムでこの関数を実行した場合

  • コンポーネントのタスク前／後でこの関数を実行した場合

  • ホストアプリケーション側のイベント実行によって、コンポーネントアプリケーションのグローバルハンドラが実行され、この関数を実行した場合

以下のような場合、「False」が返ります。

  • ホストアプリケーションのプログラムでこの関数を実行した場合

  • コンポーネントアプリケーション側のイベント実行によって、ホストアプリケーションのハンドラが実行され、この関数を実行した場合

関連トピック：

現在実行中のアプリケーションがコンポーネントかどうかを確認するには


関数ディレクトリ IsDefault

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > IsDefault

IsDefault

デフォルト値かどうかの確認

項目の値がデフォルト値であるかどうかを確認します。

構文：

IsDefault (項目のシンボル名)

パラメータ：

  • 項目のシンボル名 …… デフォルト値であるかどうかをチェックする項目のシンボル名。[項目一覧]で表示される値を指定します。VARリテラルが必要です。

戻り値：

論理値

  • True …… 項目の値がデフォルト値である場合

  • False …… 項目の値がデフォルト値でない場合

例：

IsDefault('C'VAR)では、項目C の値がデフォルト値（[カラム特性]ダイアログで指定した値）であるかどうかがチェックされます。


関数ディレクトリ IsFirstRecordCycle

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > IsFirstRecordCycle

IsFirstRecordCycle

最初のレコード処理の確認

タスク内の最初のレコードサイクルかどうかを確認します。この内容は、[タスク前]の後にフェッチされたデータの内容を処理したり、タスクに入って一回だけ実行する処理がある場合の判定に使用できます。

構文：

IsFirstRecordCycle (世代番号)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

論理値 …… 現在のレコードサイクルの状態を返します。

  • True …… 現在のレコードがタスク開始後の最初のレコードサイクルの場合、または［タスク前］ロジックユニット内で実行された場合

  • False …… 誤って、関数が［タスク後］またはグループレベルのロジックユニットで実行された場合。

この関数が、サブフォーム内で実行するタスクで使用された場合は以下のようになります。

  • オンラインタスク …… サブフォームタスクにフォーカスが移った時､タスクは再度オープンされるため、 Trueが返ります。

  • リッチクライアントタスク……サブフォームタスクにフォーカスが移っても、タスクは常にオープンされているため、Falseが返ります。

注意事項：

再表示イベント（ビュー再表示、画面再表示、など）の実行結果や、ユーザの操作による範囲指定やソート後のデータビューの再表示が行われた場合は、「False」が返ります。

[サブフォーム]コントロールが定義されているリッチクライアントタスクでは、常に「False」が返ります。

関連トピック：

オンラインタスクで最初のレコードの場合のみ実行する条件を設定するには


関数ディレクトリ IsMobileClient

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > IsMobileClient

IsMobileClient

モバイル機能のチェック セッションがモバイル端末から起動されたかどうかをチェックします。
構文： | IsMobileClient()
パラメータ： | なし
戻り値： | 論理型 …… セッションがモバイル端末から起動された場合、「True」が返ります。
注意事項： | この関数の一般的な利用方法は、モバイル端末に最適なフォームに切り替えたり、既存のフォーム上のコントロールを異なる配置で表示させる場合に使用します。


関数ディレクトリ ISNULL

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ISNULL

ISNULL

NULL値かどうかの確認

値がNULL値であるかどうかを確認します。

構文：

ISNULL(値)

パラメータ：

  • 値 …… チェックする値。項目や式を指定します。

戻り値：

論理値

  • True …… 指定した項目がNULL値 の場合

  • False …… 指定した項目がNULL値 以外の場合

例：

ISNULL(BE)

項目BE の値がNULL の時「True」 が返ります。

関連トピック：

NULL


関数ディレクトリ JCall

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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

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関数


関数ディレクトリ JCDOW

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > JCDOW

JCDOW

週の曜日名（日本語）

日付から日本語の曜日名（日曜日、月曜日など）を求めます。

構文：

JCDOW(日付)

パラメータ：

  • 日付 …… 日付

戻り値：

文字列

例：

JCDOW('97/11/01'DATE)='土曜日'

システム日付が97/11/03（YY/MM/DD）の場合

JCDOW(DATE())='月曜日'

注意事項：

この関数は日本語版でのみ有効です。

関連トピック：

曜日名を英語で求める場合は、「CDOW」を使用します。


関数ディレクトリ JCreate

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > JCreate

JCreate

インスタンスの作成

Javaクラスの新しいインスタンスが作成され、このインスタンスの疑似参照が返ります。

構文：

JCreate(クラス名,コンストラクタのシグニチャ,パラメータ)

パラメータ：

  • クラス名 …… インスタンスを作成するクラス名

  • コンストラクタのシグニチャ …… コンストラクタに渡すパラメータの型のシグニチャ

  • パラメータ …… コンストラクタに渡すパラメータの値

戻り値：

BLOB項目 …… 新しいインスタンスの疑似参照

例：

Jcreate('pkg.CLS_A','(I)V',1000)

'pkg.CLS_A' クラスのインスタンスを作成し、疑似参照を返します。

注意時億：

JavaのCLASSPATHを設定することで、Javaクラスに対するインスタンスのみ作成することができます。

関連トピック：

Java関数


関数ディレクトリ JException

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > JException

JException

Javaの例外処理 発生したJavaの例外の疑似参照を作成します。
構文： | JException ()
パラメータ： | なし
戻り値： | BLOB値 …… 最後の、Java関数かEJB関数の処理中にスローされた最後の例外に対する疑似参照。アクティブにされた場合は、例外をクリアします。
注意事項： | 別の関数が呼び出されるまで、Magic xpaは繰り返しJException関数を呼び出すことができます。
関連トピック： | Java関数


関数ディレクトリ JExceptionOccurred

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > JExceptionOccurred

JExceptionOccurred

例外通知 最後のJava/EJB関数が例外をスローしたことを確認します。
構文： | JExceptionOccurred()
パラメータ： | なし
戻り値： | 論理値 …… 最後に実行した関数が例外をスローした場合のみ「True」を返します。
例： | JExceptionText() の実行条件に JExceptionOccurred()を指定できます。
関連トピック： | Java関数


関数ディレクトリ JExceptionText

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > JExceptionText

JExceptionText

例外情報の参照

最後に発生した例外やスタックの任意のバックトレースの内容がテキストで返ります。この関数は、最後に実行した Java関数やEJB関数の実行中にスローした例外を参照する場合に使用します。

構文：

JExceptionText(摘要フラグ)

パラメータ：

  • 摘要フラグ …… 論理値

  • True …… メッセージとスタックトレースを出力します。

  • False …… メッセージのみ出力します。

戻り値：

文字列 …… 以下のエラーメッセージの内どれかが返ります。

  • JVM could not be loaded

  • Class not found

  • Method not found

  • Failure to convert parameters to JNI

  • Failure to convert return value from JNI

関連トピック：

Java関数


関数ディレクトリ JExplore

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > JExplore

JExplore

クラスの表示

クラスのXML記述が返ります。

構文：

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関数


関数ディレクトリ JGengo

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > JGengo

JGengo

元号名（日本語）

日付から元号名を取得します。文字数に「1」が指定されると、元号のシンボル名を返し、「2」または「4」が指定されると漢字名を返します。

構文：

JGengo(日付,文字数)

パラメータ：

  • 日付 …… 日付

文字数 …… 数値(1,2,4)

戻り値：

文字列

例：

文字数の指定が「4」の場合

JGengo('97/11/01'DATE,4)='平成'

文字数の指定が「1」の場合

JGengo('97/11/01'DATE,1)='H'

注意事項：

この関数は日本語版でのみ有効です。


関数ディレクトリ JGet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > JGet

JGet

インスタンス変数

インスタンス変数の値を取得します。

構文：

JGet(疑似参照、変数名,変数のシグニチャ)

パラメータ：

  • 疑似参照 …… JCreate関数で取得した疑似参照が格納されたBLOB項目

  • 変数名 …… インスタンス変数名

  • 変数のシグニチャ …… 変数の型のシグニチャ

戻り値：

変数の値。データ型は、インスタンス変数の書式に依存します。

例：

JGet (A, 'elementCount', 'I')

変数'elementCount'の値が返ります。｢A｣は、JCreate ('java.util.Vector','()V')の値を格納したBLOB型項目

関連トピック：

Java関数


関数ディレクトリ JGetStatic

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > JGetStatic

JGetStatic

スタティック変数の値

クラスのスタティック変数の値が返ります。

構文：

JGetStatic(クラス名.変数名,変数のシグニチャ)

パラメータ：

  • クラス名.変数名 …… クラス変数の名前

  • 変数のシグニチャ …… 変数の型のシグニチャ

戻り値：

変数の値。型は、データ型は、インスタンス変数の書式に依存します。

例：

JGetStatic('pkg.CLS_A.a2', 'I')

注意事項：

Javaでは、Private メンバとして定義された変数にアクセスできません.

関連トピック：

Java関数


関数ディレクトリ JInstanceOf

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > JInstanceOf

JInstanceOf

オブジェクトの確認

Javaの Instanceof 演算子と同じような動作をします。オブジェクトが、特定のクラスのインスタンスを含んでいるかどうかを確認します。

構文：

JInstanceOf(疑似参照, クラス名)

パラメータ：

  • 疑似参照 …… JCreate関数で取得した疑似参照が格納されたBLOB項目

  • クラス名 …… 参照するクラス名を表す文字列

戻り値：

論理値 …… オブジェクトがNULLでなく、例外を発生せずにクラスのCASTができる場合 「True」 が返ります。

例：

JInstanceOf(A, 'javax.jms.Message')

関連トピック：

Java関数


関数ディレクトリ JMonth

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > JMonth

JMonth

月番号の月名（日本語）への変換

月番号（1～12）を、対応する月名（１月～12月）に変換します。

構文：

JMonth(月番号)

パラメータ：

  • 月番号 …… 数値（1～12）

戻り値：

文字列

例：

JMonth(5)= '_5月'（_は半角スペースを表す）

注意事項：

  • 月番号が12よりも大きい場合の結果は保証しません。

  • この関数は日本語版でのみ有効です。

参考：

月名を英語で求める場合は、「NMonth」を使用します。


関数ディレクトリ JNDOW

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > JNDOW

JNDOW

曜日番号の曜日名（日本語）への変換

週の曜日番号（1,2など）を対応する曜日名（日曜日、月曜日など）に変換します。

構文：

JNDOW(曜日番号)

パラメータ：

  • 曜日番号 …… 数値（1～7）

戻り値：

文字列

例：

JNDOW(1)='日曜日'

注意事項：

この関数は日本語版でのみ有効です。

参考：

曜日名を英語で求める場合は、「NDOW」を使用します。


関数ディレクトリ JSet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > JSet

JSet

インスタンス変数の更新

Javaのインスタンス変数を更新します。

構文：

JSet(疑似参照,変数名,変数のシグニチャ,値)

パラメータ：

  • 疑似参照 …… JCreate関数で取得した疑似参照

  • 変数名 …… 更新する変数名

  • 変数のシグニチャ …… 変数の型のシグニチャ

  • 値 …… 更新する値

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

以下の場合に、処理が失敗します。

  • 疑似参照が現在のコンテキストの一部でない場合

  • 指定した変数が見つからない場合

  • 値が、シグニチャに基づいて変換できなかった場合

例：

JSet(A, 'a', 'I', B)

関連トピック：

Java関数


関数ディレクトリ JSetStatic

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > JSetStatic

JSetStatic

スタティック変数の更新

Javaのスタティック変数を更新します。

構文：

JSetStatic(クラス名.変数名,変数のシグニチャ,値)

パラメータ：

  • クラス名.変数名 …… クラス変数の名前

  • 変数のシグニチャ …… 変数の型のシグニチャ

  • 値 …… 更新する値

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

以下の場合に、処理が失敗します。

  • 指定した変数が見つからない場合

  • 値がシグニチャに基づいて変換できなかった場合

例：

JSetStatic('pkg.CLS_A.a2', 'I', B)

関連トピック：

Java関数


関数ディレクトリ JYear

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > JYear

JYear

日付の年を元号年に変換

日付から元号年を求めます。

構文：

JYear(日付)

パラメータ：

  • 日付 …… 日付

戻り値：

数値

例：

JYear('97/09/01'DATE)=9

注意事項：

この関数は日本語版でのみ有効です。


関数ディレクトリ KbGet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > KbGet

KbGet

直前のキー入力

直前のキー入力、または内部イベントを取得します。

構文：

KbGet(数値)

パラメータ：

  • 数値 …… アクションの場合は「1」、キーの場合は「0」を指定します。

戻り値：

文字列

例：

KbGet (0)

F2キーが押されていれば「F2」という文字列が返ります。

例外：

リッチクライアントタスクではサポートされません。


関数ディレクトリ KbPut

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > KbPut

KbPut

キー入力のシミュレーション

内部イベントやキー操作をシミュレートします。

構文：

KbPut(文字列)

パラメータ：

  • 文字列 …… 文字列、キーボードリテラル（KBD）、イベントリテラル（EVENT）を組み合わせて指定できます。

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例：

KbPut('F2'KBD&'Exit'EVENT&'abcd')

まず、F2キーが押され（シミュレート）、[キーボード割付]テーブルの[イベント]カラムに定義されているイベントが実行され、最後に、'abcd'という文字列が入力されます。

KBDとEVENTの各リテラルコードを使用して、<キーボード値>と<内部イベント値>を表すことができます。これによって複数のキーボード値と内部イベント値を指定することができます。また、リテラルを使用することで、他言語への移植も行いやすくなります。

この関数で指定した値は、内部キーボードバッファの最後に格納され、値は、その入力が必要になった時に取り出され使用されます。このため、この関数を使用する場合、タイミングが大切になります。

以上のような理由から、この関数は、[アクション]処理コマンドで使用するようにします。

NumLock 、CapsLock 、ScrollLock などの操作はサポートしていません。

例外：

リッチクライアントタスクではサポートされません。

関連トピック：

リテラル, KBGet

キー操作をシミュレートするには


関数ディレクトリ LastClicked

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > LastClicked

LastClicked

最終にクリックされたコントロール

最後にクリックされたコントロールの名前（[コントロール名]特性で指定された値）が返ります。

構文：

LastClicked()

パラメータ：

なし

戻り値：

文字列 …… 最後にクリックされたコントロール名

注意事項：

  • ［サブフォーム］コントロールの名前は返りません。

  • ユーザがクリックしたコントロールに基づいたロジックを定義する場合は、［クリック］イベントに対する［イベント］ロジックユニットでコントロール名を指定することでも対応できます。

関連トピック：

LastPark

ユーザがクリックしたコントロール名を取得するには


関数ディレクトリ LastPark

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > LastPark

LastPark

最後にパークしたコントロールの名前

指定タスクのフォーム内で最後にカーソルがパークしていたコントロール名が返ります。

構文：

LastPark (世代番号)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

文字列 …… ユーザが最後にカーソルをパークしていたコントロール名。最後にクリックされたコントロール名とは異なります。

例：

LastPark (1)

親タスクで最後にカーソルがパークしていたコントロール名を返します。

注意事項：

この関数は、コントロールが定義されている現在のタスク、またはその子タスクからコントロール名を取得することができます。

しかし、以下の場合は動作しません。

  • 現在パークしているフィールドのコントロール名の取得

  • 親タスク内で実行されるロジックユニット内から子タスクのコントロール名の取得

HandledCtrl関数を使用することで現在パークしているコントロール名を取得することができます。現在のフィールドに関するその他の情報を取得する場合は、THIS関数を使用することができます。

現在のタスクの中で特定のフィールドに対するロジックを定義したい場合は、そのコントロールに対する［コントロール］イベントを使用することで対応できます。

関連トピック：

CWidth, CHeight, LastClicked,CX,CY,LastClicked

ユーザがパークしたコントロール名を取得するには


関数ディレクトリ LDAPConnect

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > LDAPConnect

LDAPConnect

LDAPへの接続

LDAPによって別のセッションを作成します。これにより他のLDAP関数はこの接続を利用することができます。

構文：

LDAPConnect (アドレス:ポート,接続文字列, ドメインコンテキスト, ユーザID, パスワード)

パラメータ：

  • アドレス:ポート …… LDAPサーバのアドレスとポート番号。必要に応じて 'ssl：//'を付加することができます。この場合、SSLセッションでサーバに接続されます。また、ポート636でSSLセッションが開始されます。

  • 接続文字列 …… LDAPサーバデータベース内のユニークな入力識別子である､ユーザ識別名(DN)を指定します。

  • ドメインコンテキスト …… LDAPユーザがメンバになっているグループに位置付けるために使用される検索ベース

  • ユーザID …… アカウント用ユーザID

  • パスワード …… ユーザIDに対応するパラメータ

アドレス：ポート、接続文字列､ドメインコンテキストの各パラメータは､[動作環境]で定義された内容と同じような値が指定できます。

戻り値：

数値 …… LDAP接続のハンドル値(数)。このハンドル値は､この接続を使用する他のLDAP関数で利用できます。

エラーが発生した場合、負値が返ります。

例：

LDAPConnect ('127.0.0.1:389','OU=users','dc=mycompany,dc=com,dc=com','User1','mypass')

注意事項：

［シークレット］テーブルに"LDAP_USER"と"LDAP_PASS"が定義されている場合、ユーザIDを%LDAP_USER%、パスワードを%LDAP_PASS%と指定することができます。

関連トピック：

LDAPサーバによる認証


関数ディレクトリ LDAPDisconnect

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > LDAPDisconnect

LDAPDisconnect

LDAPとの接続を閉じる

LDAPサーバとのセッションを閉じます。

構文：

LDAPDisconnect (LDAP 接続ハンドル)

パラメータ：

  • LDAP 接続ハンドル …… このパラメータが0か指定されていない場合、LOGON()関数の接続を使用して動作します。このパラメータが正値の場合、指定されたハンドル値をもとに動作します。

戻り値：

論理値 …… 処理が成功した場合、「True」が返ります。

例：

LDAPDisconnect (A)

Aは、LDAPConnect()関数によって取得したハンドル値です。

関連トピック：

LDAPサーバによる認証


関数ディレクトリ LDAPError

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > LDAPError

LDAPError

LDAPサーバのエラー LDAPサーバの直近のエラーメッセージが返ります。 関数の有効範囲は、コンテキスト単位です。
構文： | LDAPError()
パラメータ： | なし
戻り値： | 文字列 …… LDAPサーバから直近に返されたエラーメッセージ


関数ディレクトリ LDAPGet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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$$$........


関数ディレクトリ LDAPGroupAdd

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > LDAPGroupAdd

LDAPGroupAdd

LDAPグループの追加

LDAPを使用して、グループをOSのディレクトリに追加します。

構文：

LDAPGroupAdd (グループDN, [LDAP 接続ハンドル])

パラメータ：

  • グループDN …… LDAPのグループ識別名。ドメインコンポーネント(DC)が指定されていない場合、接続詳細から引き継がれます。

  • LDAP 接続ハンドル …… オプションです。このパラメータが0か、指定されていない場合、LOGON()関数での接続を使用して動作します。このパラメータが正値の場合、このハンドル値による接続を使用して動作します。

戻り値：

論理値 …… 処理が成功した場合、「True」が返ります。

例：

LDAPGroupAdd('N=Group1,OU=groups')


関数ディレクトリ LDAPGroupDel

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > LDAPGroupDel

LDAPGroupDel

LDAPグループの削除

LDAPを使用して、グループをOSのディレクトリから削除します。

構文：

LDAPGroupDel (グループDN, [LDAP 接続ハンドル])

パラメータ：

  • グループDN …… LDAPのグループ識別名。ドメインコンポーネント(DC)が指定されていない場合、接続詳細から引き継がれます。

  • LDAP 接続ハンドル …… オプションです。このパラメータが0か、指定されていない場合、LOGON()関数での接続を使用して動作します。このパラメータが正値の場合、このハンドル値による接続を使用して動作します。

戻り値：

論理値 …… 処理が成功した場合、「True」が返ります。

例：

LDAPGroupDel ('N=Group1,OU=groups')


関数ディレクトリ LDAPUserAdd

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > LDAPUserAdd

LDAPUserAdd

LDAPユーザの追加

LDAPを使用して、ユーザをOSのディレクトリに追加します。

構文：

LDAPUserAdd (ユーザ DN, 名, 姓, パスワード, [LDAP 接続ハンドル])

パラメータ：

  • ユーザDN …… LDAPサーバでのユーザ識別名。ドメインコンポーネント(DC)が指定されない場合､接続詳細から継承されます。

  • 名 …… ユーザの名前（ファーストネーム）

  • 姓 …… ユーザの姓（ラストネーム）

  • パスワード …… ユーザのパスワード

  • LDAP 接続ハンドル …… オプションです。このパラメータが0か、指定されていない場合、LOGON()関数での接続を使用して動作します。このパラメータが正値の場合、このハンドル値による接続を使用して動作します。

戻り値：

論理値 …… 処理が成功した場合、「True」が返ります。

注意事項：

SSL経由で実行した場合のみ有効です。

この関数を使用しているユーザを加えた後に、userPrincipalNameとdisplayName属性を定義する必要もあるかもしれません。これは、LDAPUserModify関数を使用して実現できます。

例：

LDAPUserAdd ('N=User1,OU=users','F_name','L_name','mypass')

関連トピック：

LDAPサーバによる認証


関数ディレクトリ LDAPUserDel

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > LDAPUserDel

LDAPUserDel

LDAPユーザの削除

LDAPを使用して、ユーザをOSのディレクトリから削除します。

構文：

LDAPUserDel (ユーザ DN, [LDAP 接続ハンドル])

パラメータ：

  • ユーザDN …… LDAPサーバでのユーザ識別名。ドメインコンポーネント(DC)が指定されない場合､接続詳細から継承されます。

  • LDAP 接続ハンドル …… オプションです。このパラメータが0か、指定されていない場合、LOGON()関数での接続を使用して動作します。このパラメータが正値の場合、このハンドル値による接続を使用して動作します。

戻り値：

論理値 …… 処理が成功した場合、「True」が返ります。

例：

LDAPUserDel ('CN=User1, OU=users')


関数ディレクトリ LDAPUserGroupAssign

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > LDAPUserGroupAssign

LDAPUserGroupAssign

LDAPグループにユーザを追加

LDAPを使用してOSディレクトリ上のグループにユーザを追加します。

構文：

LDAPUserGroupAssign (ユーザ DN, グループ DN, [LDAP 接続ハンドル])

パラメータ：

  • ユーザDN …… LDAPサーバでのユーザ識別名。ドメインコンポーネント(DC)が指定されない場合､接続詳細から継承されます。

  • グループDN …… LDAPのグループ識別名。ドメインコンポーネント(DC)が指定されていない場合、接続詳細から引き継がれます。

  • LDAP 接続ハンドル …… オプションです。このパラメータが0か、指定されていない場合、LOGON()関数での接続を使用して動作します。このパラメータが正値の場合、このハンドル値による接続を使用して動作します。

戻り値：

論理値 …… 処理が成功した場合、「True」が返ります。

例：

LDAPUserGroupAssign ('CN=User1, OU=users','CN=Group1,OU=groups')


関数ディレクトリ LDAPUserGroupRemove

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > LDAPUserGroupRemove

LDAPUserGroupRemove

LDAPグループからユーザを削除

LDAPを使用してOSのディレクトリのグループからユーザを削除します。

構文：

LDAPUserGroupRemove (ユーザ DN, グループ DN, [LDAP 接続ハンドル])

パラメータ：

  • ユーザDN …… LDAPサーバでのユーザ識別名。ドメインコンポーネント(DC)が指定されない場合､接続詳細から継承されます。

  • グループDN …… LDAPのグループ識別名。ドメインコンポーネント(DC)が指定されていない場合、接続詳細から引き継がれます。

  • LDAP 接続ハンドル …… オプションです。このパラメータが0か、指定されていない場合、LOGON()関数での接続を使用して動作します。このパラメータが正値の場合、このハンドル値による接続を使用して動作します。

戻り値：

論理値 …… 処理が成功した場合、「True」が返ります。

例：

LDAPUserGroupRemove ('CN=User1, OU=users','CN=Group1, OU=groups')


関数ディレクトリ LDAPUserModify

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > LDAPUserModify

LDAPUserModify

LDAPのユーザ情報を更新

LDAPを使用して、OSのディレクトリのユーザ詳細を更新します。

構文：

LDAPUserModify (ユーザ DN, 属性, 値, [LDAP 接続ハンドル])

パラメータ：

  • ユーザ DN …… LDAPサーバでのユーザ識別名。ドメインコンポーネント(DC)が指定されない場合､接続詳細から継承されます。

  • 属性 …… 更新したい属性を定義する文字項目

  • 値 …… 更新する値を定義するBLOB項目。UnicodeまたはANSIデータは､テキスト形式で値を保存します。その他の形式の値はバイナリデータで保存します。値をNull()に設定すると､値がLDAPサーバから削除されます。

  • LDAP 接続ハンドル …… オプションです。このパラメータが0か、指定されていない場合、LOGON()関数での接続を使用して動作します。このパラメータが正値の場合、このハンドル値による接続を使用して動作します。

戻り値：

論理値 …… 処理が成功した場合、「True」が返ります。

例：

LDAPUserModify ('CN=User1, OU=users','First name','newname')


関数ディレクトリ Left

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Left

Left

文字列の左側の文字

文字列の左側にある文字を取得します。

構文：

Left(文字列,文字数)

パラメータ：

  • 文字列 …… 文字を取り出す文字列

  • 文字数 …… 取り出す文字の数を指定します。この数の文字が、文字列の左側から取り出されます。

戻り値：

文字列

例：

Left('abcdefg',3)

'abc'が返ります。

関連トピック：

Right, MID


関数ディレクトリ Len

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Len

Len

文字列の長さ

文字列の長さ(文字数)を取得します。

構文：

Len(文字列)

パラメータ：

  • 文字列 …… 長さを取り出す文字列

戻り値：

数値 …… 長さ（文字数）

例：

Len('abcdefg')

7 が返ります。

注意事項：

  • 文字型の項目に格納されている文字列の長さを取り出したい場合、Len(RTrim(項目))とします。これによって空白は計算されず、文字の数だけが取得できます。例えば、項目のサイズが20文字で、'John_'（'_'は空白）が格納されていたとします。この場合、Len(RTrim(項目))では、4 が返ります。

  • 文字型の場合はバイト数が返りますが、Unicode型の場合は文字数が返ります。このため、文字列に全角文字が入っている場合、データ型によって値が異なります。

関連トピック：

Trim, RTrim, LTrim


関数ディレクトリ Level

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Level

Level

タスクの実行レベル

タスクの実行レベルがを取得します。

構文：

Level(世代番号)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。タスク自身を、1 はそのすぐ上位の親タスクを指定し、以下同様です。

戻り値：

文字列 …… タスクレベルを意味する文字列が返ります。文字列の意味は次の通りです。

  • CP_<コントロール名> …… [コントロール <コントロール名> 前]

  • CS_<コントロール名> …… [コントロール <コントロール名> 後]

  • CV_<コントロール名> …… [コントロール <コントロール名> 検証]

  • GP_<項目名> …… [グループ <変数名> 前]

  • GS_<項目名> …… [グループ<変数名> 後]

  • HD_<式イベント名> …… .NETイベントによるハンドラ

  • HE_<式イベント名> …… 式イベントによるハンドラ

  • HI_<内部イベント名> …… 内部イベントによるハンドラ

  • HR_<エラーイベント名> …… エラーイベントによるハンドラ

  • HS_<システムイベント名> …… システムイベントによるハンドラ

  • HT_<タイマイベント名> …… タイマイベントによるハンドラ

  • HU_<ユーザイベント名> …… ユーザイベントによるハンドラ

  • 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


関数ディレクトリ LIKE

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > LIKE

LIKE

文字列の比較（パターンマッチング）

文字列が指定したパターンに一致するかどうかを確認します。

構文：

文字列 LIKE パターン

パラメータ：

  • 文字列 …… 比較の対象となる文字列

  • パターン …… パターンの指定

戻り値：

論理値 …… パターンと一致した場合「True」が返ります。

例：

'abcd' LIKE 'a*d'

「True」が返ります

'abcd' LIKE 'a?d'

「False」が返ります

'abc' LIKE 'a?c'

「True」が返ります

注意事項：

  • パターンには、通常の文字とワイルドカード文字を含めることができます。次の文字がワイルドカードに使用されます。

    • * … 0個以上の文字列

    • ? … 1個の文字

  • ワイルドカードを通常の文字として比較させる場合には、「\」をワイルドカードの前に追加する必要があります。

  • LIKEを使用して文字列の比較を実行する時、先頭の空白や末尾の空白も対象となります。


関数ディレクトリ Line

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Line

Line

出力ファイルのカレントの行番号

入出力ファイルの現在処理中の行番号を取得します。

構文：

Line(世代番号,ファイル番号)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

  • ファイル番号 …… 指定されたタスクの[入出力ファイル]テーブルの番号

戻り値：

現在の出力行数。出力がテキスト形式の場合、テキストの行が返ります。GUI 出力の場合、出力フォームの寸法単位を使用して現在の出力位置が返ります。

寸法単位を「センチメートル」にした場合、Line関数で取得できるピクセル値のカウント方法は、「垂直精度」を「100」にすると、1センチを100に分割して1ピクセルとみなします。

例：

Line(1,1)

すぐ上の親タスクの最初の出力ファイルの現在の出力行数が返ります。

関連トピック：

Page


関数ディレクトリ LMChkIn

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > LMChkIn

LMChkIn

ライセンスのチェックイン

指定されたライセンスのユーザインスタンスの中でチェックインします。

構文：

LMChkIn (フィーチャ名)

パラメータ：

  • フィーチャ名 …… チェックアウトされたインスタンスの名前を示す文字列

戻り値：

処理結果を表す数値

  • 0 …… 成功

  • 8 …… ライセンスのユーザインスタンスのチェックインに失敗しました

注意事項：

この関数は、日本語版ではサポートしていません。


関数ディレクトリ LMChkOut

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > LMChkOut

LMChkOut

ライセンスのチェックアウト

ユーザが指定されたフィーチャライセンスのユーザインスタンスをチェックアウトします。関数の処理が成功した場合、1ユーザ分のインスタンスがカウントアップされます。インスタンスが最大値に達した場合、以後の関数に対して "7"（チェックアウト失敗） が返ります。

構文：

LMChkOut (ライセンスファイル名,フィーチャ名, バージョン)

パラメータ：

  • ライセンスファイル名 …… ライセンスファイルあるいはライセンスサーバの位置を示す文字列。ライセンス位置は、アプリケーション全体にわたってこの関数を最初に発行した時点で設定されます。

  • フィーチャ名 …… フィーチャの名前を指定する文字列

  • バージョン …… 指定されたフィーチャのバージョンを指定する文字列

戻り値：

数値 …… 処理結果を表します。

  • 0 …… 成功

  • 1 …… ライセンスサーバへの接続の初期化の失敗

  • 2 …… ライセンスファイルが破損しているか存在しません

  • 3 …… フィーチャ名が指定されていません

  • 4 …… 指定されたフィーチャは、ライセンスファイル中で存在しません

  • 5 …… フィーチャの有効期限は過ぎました

  • 6 …… 指定したフィーチャは、ライセンスサーバのライセンスファイル中に存在しません

  • 7 …… ライセンスのユーザインスタンスのチェックアウトに失敗しました

注意事項：

この関数は、日本語版ではサポートしていません。


関数ディレクトリ LMUVStr

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > LMUVStr

LMUVStr

ユーザライセンスのVENDOR_STRINGを取得 LMChkOut関数でユーザによってチェックアウトしたライセンスのVENDOR_STRINGの値を取得します。 VENDOR_STRINGは、ライセンスファイル内のライセンス項目の一部です。
構文： | LMUVStr ()
パラメータ： | なし
戻り値： | 文字列 …… ユーザによってチェックアウトされたライセンスのVENDOR_STRINGが返ります。
例： | LMUVStr()
 | PRODUCT=30,TRANS=50 といったような値が返ります。
注意事項： | この関数は、日本語版ではサポートしていません。
関連トピック： | LMVStr, LMChkln, LMChkOut


関数ディレクトリ LMVStr

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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


関数ディレクトリ LocateAdd

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > LocateAdd

LocateAdd

位置付け条件の追加

位置付けするための条件を追加し、ビューを再表示します。この関数によって定義された条件がタスクの位置付け定義に置き換わります。

構文：

LocateAdd (項目, 開始値, [終了値])

パラメータ：

  • 項目 …… 参照する項目。VARリテラルが必要です。BLOB、OLE、ActiveX、ベクトルと.NET型の項目は、サポートされません。

  • 開始値 …… 項目のデータ型にもとづいた開始値

  • 終了値 …… オプション：項目のデータ型にもとづいた終了値

  • 全てのデータ型で、文字列''が使用でき、値は無視されます。

戻り値：

論理値 …… 処理結果が返ります。

  • True …… 位置付け条件が更新されました。

  • False …… （項目指定が間違っているなどの）不正な条件です。

注意事項：

  • この関数は、複数の位置付け条件を追加するために使用され、ビューが再表示されると、条件に従って位置付けが実行されます。

  • 項目の名前はデータビュー内でユニークにする必要があります。

  • 親タスクの項目を指定することで、関連したタスクの位置付け条件が更新されます。

  • この関数は、複数の項目に対する位置付け実行を行うために、複数回使用することができます。

  • NULL関数を値として使用することができます。この場合、NULL値が条件として送られます。

  • LocateAdd関数によって位置付け条件が追加された場合、［ビュー再表示］イベントの［再位置付モード］パラメータの値は無視されます。

  • アスタリスク（*)は、範囲や位置付でワイルドカードとして使用することができます。範囲や位置付の値としてアスタリスクを使用する場合は、バックスラッシュ（\)をアスタリスクの前に付加してください。

例：

  • a*：a*で位置付をします（*は、ワイルドカードになります)

  • a\*：a*で位置付をします（*は、文字として処理されます)

  • a\\：a\ で位置付をします。

  • a\\*：a\* で位置付をします（*は、ワイルドカードになります)

  • a\b：a\b として動作します

関連トピック：

LocateReset,RangeAdd

サポートバージョン：

2.5

ローカルデータをサポートしました。


関数ディレクトリ LocateReset

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > LocateReset

LocateReset

位置付け条件のリセット

位置付け条件をリセットし、ビューを再表示します。これにより、タスクに定義された位置付け条件が使用されます。

構文：

LocateReset (世代番号)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。タスク自身を、1 はそのすぐ上位の親タスクを指定し、以下同様です。

戻り値：

論理値 …… 処理結果が返ります。

  • True …… 位置付け条件が更新されました。

  • False …… （指定された世代のタスクが存在しないなどのため）エラーが発生しました。

注意事項：

  • この関数が位置付け条件のリセットに使用された場合、ビューが再表示されると、タスクの位置付け条件や、［ビュー再表示］イベントに基づいて位置付けが実行されます。

  • 関数は、LocateAdd関数によって追加された位置付けだけでなく、Ctrl+Lによる位置付もリセットされます。

関連トピック：

LocateAdd

サポートバージョン：

2.5

ローカルデータをサポートしました。


関数ディレクトリ Lock

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Lock

Lock

リソースをロック

一定の時間内に一人のユーザのみによって占有される仮想的な要素（リソース）を作成し、テーブルの行やタスクをロックします。

構文：

Lock (リソース, タイムアウト)

パラメータ：

  • リソース …… 任意の文字列。長さは0～128。リソース名はユニークでなければいけません。

  • タイムアウト …… リソースが別のユーザによりロックされている場合の待ち時間（秒）。負の値を指定した時は、無制限に待ちます。

戻り値：

処理結果を表す数値

  • 0 …… ロックが成功

  • 1 …… 同一セッションで同じリソースに既にロックがかかっている場合

  • 2 …… 別のセッションで同じリソースにロックがかかっていて、待ち時間がタイムアウトを越えた場合（ロックは失敗）

注意事項：

  • 通常項目更新の式で設定します。

  • Lockしたリソースは必ずUnlockして解放する必要があります。

関連トピック：

UnLock


関数ディレクトリ LOG

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > LOG

LOG

自然対数

指定した数値の自然対数を取得します。

構文：

LOG(数値)

パラメータ：

  • 数値 …… 入力数値

戻り値：

数値 …… 対数

例：

LOG(2.71828)

1 が返ります。

関連トピック：

EXP


Logging

アクイティビティモニタの動的フィルタの制御

動的にアクイティビティモニタのフィルタ指定（有効／無効）を行います。関数を実行すると即有効になります。また、MAGIC.INIは更新されません。

構文：

Logging (開始/停止, フィルタ, コンテキスト番号／ID)

パラメータ：

  • 開始/停止 …… フィルタの開始／停止を指定する論理値

  • True …… フィルタを開始します。

  • False …… フィルタを停止します。

  • フィルタ（文字） …… フィルタオプションを表す文字列。以下のオプションが指定できます。

  • Task

  • Levels

  • DataView

  • Recompute

  • Flow

  • Events

  • LogBrowser

  • Gateway

  • TransCache

  • BackgroundMsg

  • BeginEndMsg

  • LogSynch

  • ExecutionLogFileName=(ファイル名)

  • Btrieve= (N,D,S,C のどれか)

  • Pervasive.SQL(ISAM)= (N,D,S,C のどれか)

  • DB2/400= (N,D,S,Cのどれか)

  • Oracle= (N,D,S,Cのどれか)

  • AS/400= (N,D,S,Cのどれか)

  • DB2= (N,D,S,Cのどれか)

  • ODBC= (N,D,S,Cのどれか)

  • MicrosoftSQLServer = (N,D,S,Cのどれか)

  • Memory= (N,D,S,Cのどれか)

  • ALL

  • RESET

  • コンテキスト番号／ID …… （オプション）コンテキストを示す番号。この値は、現在のコンテキストリスト内の番号か実際のコンテキストIDを指定します。このパラメータで、関数がすべてのコンテキストに影響するか、指定したコンテキストに影響するかを指定することができます。（サポートバージョン：2.4）

戻り値：

論理値 …… 処理が成功した場合「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」が返ります。

  • フィルタのパラメータでGatewayやLogSunc、Levelsを設定した場合、この変更は、特定のコンテキストではなく、全てのコンテキストに影響します。

関連トピック：

アクティビティモニタ

デバッガによって記録される情報を制御するには


関数ディレクトリ Logon

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Logon

Logon

アプリケーションへのログオン

一時的に指定されたユーザとして現在のアプリケーションにログオンします。現在のアプリケーションを閉じることなくユーザを切り替える必要がある場合に使用できます。

構文：

Logon (ユーザID,パスワード)

パラメータ：

  • ユーザID …… ログオンさせるユーザID

  • パスワード …… ユーザID に対応したパスワード

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例：

Logon('CARL',PASS321')

この関数は、「設定／ログオン」と同様の動作をします。ただし、Logon 関数ではユーザ名とパスワードをバッチモードで処理します。

注意事項：

  • LDAPサーバ（［システムログオン］を「LDAP」に設定)にログオンする場合、Logon()関数を使用する代わりに、ユーザ名とパスワードとして［シークレット名］テーブルに定義された、LDAP_USERとLDAP_PASSを利用することもできます。接続文字列の$USER$エイリアスは、シークレット名のLDAP_USERの値に置き換えることができます。

  • リッチクライアントタスクからのログオン関数を実行した場合は、ユーザID情報がコンテキストに保存されます。この場合、RqContexts関数を使用することでユーザIDを取得することができます。このコンテキストからオープンされたどのようなコンテキストでも自動的にユーザIDを取得することができます。


関数ディレクトリ LoopCounter

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > LoopCounter

LoopCounter

ブロックループ回数

[ブロックWhile]処理コマンドの現在の処理回数を取得します。

構文：

LoopCounter()

パラメータ：

なし

戻り値：

数値 …… 現在のブロックWhileの処理回数

例：

[ブロックWhile]処理コマンドの7回目に LoopCounter() を実行した場合、7 が返ります。

注意事項：

  • [ブロックWhile]処理コマンドの最初の処理にこの関数が評価された場合、１が返ります。ブロックループの外で評価された場合は、0 が返ります。

  • [ブロックWhile]処理コマンド内にエラーコマンドを定義する場合は、ブロックWhileが定義されるロジックユニットから抜け出せるように考慮してください。

  • [ブロックWhile]処理コマンドがネストしている場合に実行されると、現在のブロックWhile（内側のブロック）の処理回数を返します。

  • [ブロックWhile]処理コマンド内の既存のブロックオプション(IF/ELSE)で評価された時は、その時のカウンタを返します。

関連トピック：

一連の処理を繰り返し実行させるには


関数ディレクトリ Lower

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Lower

Lower

大文字を小文字に変換

大文字を小文字に変換します。（全角英文字を含む）

構文：

Lower(文字列)

パラメータ：

  • 文字列 …… 変換する文字列または文字列式（大文字）

戻り値：

変換された文字列（小文字）

例：

Lower('JOHN')

'john'が返ります。

注意事項：

この関数の結果は使用するMgconstに依存する場合があります。

関連トピック：

Upper


関数ディレクトリ LTrim

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > LTrim

LTrim

文字列の左側にある空白を削除

文字列の左側の空白（スペース）を削除します。

構文：

LTrim(文字列)

パラメータ：

  • 文字列 …… 編集対象となる文字列

戻り値：

空白が取り除かれた文字列

例：

LTrim(' John')

'John'が返ります。

関連トピック：

RTrim, Trim


関数ディレクトリ MailBoxSet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MailBoxSet

MailBoxSet

IMAPメールサーバのメールボックス（フォルダ）の切替

現在接続している IMAPメールサーバのメールボックス（フォルダ）を切り替えます。

構文：

MailBoxSet(メールボックス名)

パラメータ：

  • メールボックス名 …… 切り替えたい（既存の）メールボックス（フォルダ）の名前

戻り値：

数値 …… 指定したメールボックス内にある文書数。処理が失敗した場合は、エラーコードである負数が返ります。

例：

MailBoxSet('Deleted')

実行中のメールボックスとして、'Deleted' を設定します。この関数が発行されたあとに他のメール関数でアクセスする場合は、'Deleted' のメールボックスをアクセスします。

注意事項：

メールボックス名にDBCSコードは使用できません。また、メールボックスがネストしている場合指定できません。

サーバ側の関数です。

関連トピック：

メール 関数


関数ディレクトリ MailConnect

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MailConnect

MailConnect

メールサーバへの接続

メールサーバに接続します。この関数を使用するには、接続するメールサーバの名前を知っている必要があります。サーバ名が不明な場合は、Eメール用ソフトの設定オプションから確認することができます。

SMTP サーバは、メールの送信に使用されますが、ユーザID やパスワードを必要とする場合があります。この関数が、POP3 または、IMAP サーバに接続される場合も、ユーザIDやパスワードが必要です。Magic xpaは、ユーザ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とパスワードを省略するか戻り値を無視するようにプログラムに組み込む必要があります。

例外：

この関数はセキュア接続を使用しないため、セキュアな接続（例えばTLSまたはSSL）を必要とするメールサーバはサポートされません。

関連トピック：

メール 関数


関数ディレクトリ MailDisconnect

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MailDisconnect

MailDisconnect

メールサーバとの接続を切断

メールサーバとの接続を切断します。

構文：

MailDisconnect(タイプ, 削除フラグ)

パラメータ：

  • タイプ …… 数値

  • 1 …… メール送信サーバ

  • 2 …… メール受信サーバ

  • 削除フラグ …… メールボックスのメールを全て削除するかどうかを指定する論理値

戻り値：

数値

  • 0 …… 切断に成功

  • 負数 …… 切断に失敗（エラーコード）

注意事項：

  • POP3 サーバに接続していて、削除フラグ「True」で切断した場合、POP3サーバに接続した時に受信したメールのみ削除されます。

  • IMAPサーバの場合は、メールの削除は行われません。

関連トピック：

メール 関数


関数ディレクトリ MailError

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MailError

MailError

メール関数のエラーメッセージ

メール関数から戻されたエラーコードをエラーメッセージに変換します。

構文：

MailError(エラーコード)

パラメータ：

  • エラーコード …… 数値 メール関数から返されるエラーコード

戻り値：

文字列 …… エラーメッセージ

関連トピック：

メール 関数


関数ディレクトリ MailFileSave

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MailFileSave

MailFileSave

添付ファイルの保存

受信メールに添付されているファイルを保存します。

構文：

MailFileSave(インデックス,ファイルインデックス,保存先パス名,上書きフラグ)

パラメータ：

  • インデックス …… メールボックス内のメールのインデックス番号

  • ファイルインデックス …… 受信メッセージに添付されているファイルのインデックス番号

  • 保存先パス名 …… ファイル名とパス または パス名のみ

  • 上書きフラグ …… 同じファイル名が存在する場合に上書きするかどうかを指定する

戻り値：

数値

  • 0 …… 保存に成功

  • 負数 …… 保存に失敗（エラーコード）

注意事項：

  • 保存先のファイル名にパス名のみ指定した場合、添付時のファイル名で保存されます。

  • ファイルインデックスが「0」の場合、添付された全てのファイルを指定されたパスに保存します。

関連トピック：

メール 関数


関数ディレクトリ MailLastRC

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MailLastRC

MailLastRC

直近のメール関数のエラー メール関数の処理が失敗した場合の最後のエラーコードが返りま。
構文： | MailLastRC()
パラメータ： | なし
戻り値： | 数値 …… 最後に発生したメール関数でのエラーコード
注意事項： | MailError関数を使用することで、エラーコードからエラーメッセージを取得できます。
関連トピック： | メール 関数


関数ディレクトリ MailMsgBCC

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MailMsgBCC

MailMsgBCC

BCC アドレス

受信メールのBCCで指定されたアドレスを取得します。

構文：

MailMsgBCC (インデックス)

パラメータ：

  • インデックス …… メールボックス内のメールのインデックス番号

戻り値：

文字列 …… 受信メールの BCC で指定されたアドレス

例：

MailMsgBCC(12)

例えば以下のようなデータが返ります。

John Smith <johnsmith@mymail.com>,Jane Doe <janedoe@mymail.com>

関連トピック：

メール 関数


関数ディレクトリ MailMsgCC

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MailMsgCC

MailMsgCC

CC アドレス

受信メールのCCで指定されたアドレスを取得します。

構文：

MailMsgCC(インデックス)

パラメータ：

  • インデックス …… メールボックス内のメールのインデックス番号

戻り値：

文字列 …… 受信メールの CC で指定されたアドレス

関連トピック：

メール 関数


関数ディレクトリ MailMsgDate

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MailMsgDate

MailMsgDate

日付／時刻

受信メールの日付と時刻の情報を取得します。日付と時刻は文字列で返ります。

構文：

MailMsgDate(インデックス)

パラメータ：

  • インデックス …… メールボックス内のメールのインデックス番号

戻り値：

文字列 …… メールの日付と時刻が組み合わさっています。

例：

MailMsgDate(12)

例えば以下のようなデータが返ります。

Wed, 26 Jul 2006 12:32:05.

関連トピック：

メール 関数


関数ディレクトリ MailMsgDel

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MailMsgDel

MailMsgDel

メッセージの削除

メールボックスからメッセージを削除します。

構文：

MailMsgDel(インデックス)

パラメータ：

  • インデックス …… メールボックス内のメールのインデックス番号

戻り値：

数値

  • 0 …… 削除に成功

  • 負数 …… 削除に失敗（エラーコード）

注意事項：

  • IMAP サーバに対しては即削除されます。

  • POP3 サーバに対しては、メールサーバから切断した時点で削除されます。

関連トピック：

メール 関数


関数ディレクトリ MailMsgFile

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MailMsgFile

MailMsgFile

添付ファイル名

受信メールに添付されているファイル名を取得します。

構文：

MailMsgFile(インデックス,ファイルインデックス)

パラメータ：

  • インデックス …… メールボックス内のメールのインデックス番号

  • ファイルインデックス …… 受信メッセージに添付されているファイルのインデックス番号

戻り値：

文字列 …… 受信メールに添付されているファイル名

関連トピック：

メール 関数


関数ディレクトリ MailMsgFiles

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MailMsgFiles

MailMsgFiles

添付ファイル数

受信メールに添付されているファイルの数を取得します。

構文：

MailMsgFiles(インデックス)

パラメータ：

  • インデックス …… メールボックス内のメールのインデックス番号

戻り値：

数値 …… 受信メールに添付されているファイルの数

関連トピック：

メール 関数


関数ディレクトリ MailMsgFrom

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MailMsgFrom

MailMsgFrom

FROM アドレス

受信メールのFROMで指定されたアドレスを取得します。

構文：

MailMsgFrom(インデックス)

パラメータ：

  • インデックス …… メールボックス内のメールのインデックス番号

戻り値：

文字列 …… 受信メールの FROM で指定されたアドレス

関連トピック：

メール 関数


関数ディレクトリ MailMsgHeader

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MailMsgHeader

MailMsgHeader

ヘッダ情報

受信メールのヘッダ情報を取得します。

構文：

MailMsgHeader(インデックス, ヘッダキー)

パラメータ：

  • インデックス …… メールボックス内のメールのインデックス番号

  • ヘッダキー …… ヘッダ情報セグメントに対応した文字列

戻り値：

文字列

  • ヘッダキーが空白の場合、全てのヘッダ情報が返ります。

  • ヘッダキーが空白でない場合、ヘッダキーによって定義されたヘッダセグメントの値が返ります。

関連トピック：

メール 関数


関数ディレクトリ MailMsgId

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MailMsgId

MailMsgId

メッセージID

受信メールのメッセージIDを取得します。

構文：

MailMsgId(インデックス)

パラメータ：

  • インデックス …… メールボックス内のメールのインデックス番号

戻り値：

文字列 …… メッセージID

関連トピック：

メール 関数


関数ディレクトリ MailMsgReplyTo

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MailMsgReplyTo

MailMsgReplyTo

REPLAY TO アドレス

受信メールのREPLAY TO アドレスを取得します。

構文：

MailMsgReplyTo(インデックス)

パラメータ：

  • インデックス …… メールボックス内のメールのインデックス番号

戻り値：

文字列 …… 受信メールの REPLAY TO で指定されたアドレス

例：

MailMsgReplyTo(12)

例えば以下のようなデータが返ります。

John Doe <johndoe@mymail.com>

関連トピック：

メール 関数


関数ディレクトリ MailMsgSubj

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MailMsgSubj

MailMsgSubj

件名

受信メールの件名を取得します。

構文：

MailMsgSubj(インデックス)

パラメータ：

  • インデックス …… メールボックス内のメールのインデックス番号

戻り値：

文字列 …… 受信メールの件名

関連トピック：

メール 関数


関数ディレクトリ MailMsgText

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MailMsgText

MailMsgText

メール内容

受信メールの内容を取得します。

構文：

MailMsgText(インデックス)

パラメータ：

  • インデックス …… メールボックス内のメールのインデックス番号

戻り値：

文字列 …… 受信メールの本文の内容

関連トピック：

メール 関数


関数ディレクトリ MailMsgTo

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MailMsgTo

MailMsgTo

TO アドレス

受信メールのTOアドレスを取得します。

構文：

MailMsgTo(インデックス)

パラメータ：

  • インデックス …… メールボックス内のメールのインデックス番号

戻り値：

文字列 …… 受信メールの TO で指定されたアドレス

関連トピック：

メール 関数


関数ディレクトリ MailSend

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MailSend

MailSend

メールの送信

メールの送信を行います。送信するために必要な全ての情報を指定する必要があります。

構文：

MailSend(From, To, CC, BCC, 件名, メッッセージ, ファイル, … )

パラメータ：

  • From …… 文字列：送信元のメールアドレス

  • To …… 文字列：送信するメールアドレスをカンマ区切りの文字列として指定します。

  • CC …… 文字列：CCで送信するメールアドレスをカンマ区切りの文字列で指定します。

  • BCC …… 文字列：BCCで送信するメールアドレスをカンマ区切りの文字列で指定します。

  • 件名 …… 文字列：メッセージのタイトル。451文字まで指定できます。

  • メッセージ …… 文字列： メッセージの内容。一行はSBCS だけの場合は、最大979桁です。これを超えると自動的に改行コードを挿入して送信します。DBCSが混在するとそれ以下の桁数で改行されます。

  • ファイル …… 文字列：メールに貼り付けるファイルのパスとファイル名。カンマで区切ることで複数のファイル名を指定できます。

戻り値：

数値

  • 0 …… 送信に成功

  • 負数 …… 送信に失敗（エラーコード）

注意事項：

  • 送信者をアドレスではなく名前で表示させる場合は、"FROM"パラメータを以下のような書式で指定してください。
    '表示名 <アドレス>'

  • カンマ区切りで複数のアドレスを連結して指定することができます。

  • 戻り値が0でない場合、MailError関数を使用してエラーメッセージを取得することができます。例えば、戻り値が項目BPに格納されている場合、以下のように指定することでエラーコードとメッセージを表示させることができます。
    '送信結果は、: '&Str (BP,'5NC')&' '&MailError (BP)

関連トピック：

メール 関数


関数ディレクトリ MainDisplay

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MainDisplay

MainDisplay

使用中のメインフォーム

現在表示されているフォームのインデックスを取得します。

構文：

MainDisplay(世代番号)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

数値 …… ［フォーム］エディタ内の現在表示されているフォームのインデックスを表す番号

例：

MainDisplay(0)

現在のタスクに２つのフォーム（#2、#3）が定義されており、#3が表示されている場合、「3」が返ります。

注意事項：

［ウィンドウ表示］特性が「No」の場合、「0」が返ります。


関数ディレクトリ MainLevel

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MainLevel

MainLevel

イベントが発生したタスクのメインレベル

タスクのメインレベルを取得します。Level関数との違いは、以下の通りです。

オンライン

  • 同期モードで実行されたロジックユニットでこの関数が実行された場合、実行したロジックユニットではなくイベントを発行したロジックユニットの情報が返ります。

  • 非同期モードで実行されたロジックユニットでこの関数が実行された場合、「RM」が常に返ります。

  • プッシュボタンをクリックしたことによって実行されたイベントのロジックユニットでこの関数が実行された場合、「RM」が常に返ります。

バッチタスク

  • 非同期のイベントのロジックユニットを実行するバッチタスクのレベルは、実際のロジックユニットレベルの代わりに「RS」が返ります。タスクが非同期で起動されたイベントのロジックユニットから同期モードで起動されたイベントのロジックユニットを実行した場合も「RS」が返ります。

構文：

MainLevel(世代番号)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

文字型 …… 以下の文字列が返ります。

  • RP …… レコード前

  • RM …… RM互換/ユーザとの対話モード

  • RS …… レコード後

  • GP_<Group depth> …… グループ前

  • GS_<Group depth> …… グループ後

  • TP …… タスク前

  • TS …… タスク後


関数ディレクトリ MarkedTextGet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MarkedTextGet

MarkedTextGet

マークされたテキスト マークされたテキストを取得します。
構文： | MarkedTextGet ( )
パラメータ： | なし
戻り値： | 文字列 …… マークされた文字列が返ります。[エディット]コントロールにテキストがなかったり、マークされていない場合は、空白が返ります。
モバイル仕様： | モバイル環境ではサポートされません。
関連トピック： | CaretPosGet, MarkText, MarkedTextSet


関数ディレクトリ MarkedTextSet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MarkedTextSet

MarkedTextSet

マークされたテキストの設定

マークされたテキストを指定された文字列に置き換えます。マークされていないテキストは変更されません。テキストがマークされていない場合、何も変わりません。

構文：

MarkedTextSet(文字列)

パラメータ：

  • 文字列 …… マークされたテキストを置き換える文字列

戻り値：

論理値 …… テキストが置き換わった場合、「True」が返ります。

以下の場合は処理が失敗し、「False」が返ります。

  • フォーカス上にコントロールがないか[エディット]コントロール以外の場合

  • Magicエンジンが[エディット]コントロールにパークしておらず、この関数がフロー上で評価された場合

  • [強制終了]が「コントロール」か「レコード」のイベントによって起動されたハンドラから実行された場合

  • テキストがマークされていない場合

注意事項：

この関数は、リッチクライアントタスクではサポートされません。

モバイル仕様：

モバイル環境ではサポートされません。

関連トピック：

CaretPosGet, MarkText, MarkedTextGet


関数ディレクトリ MarkText

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MarkText

MarkText

テキストのマーク

現在のフォーカスがある[エディット]コントロール内の文字列をマークします。指定された位置から指定された文字数分がマークされます。

構文：

MarkText(開始位置, 文字数)

パラメータ：

  • 開始位置（数値） …… マークを開始する文字列上の位置を表す数値。「1」が文字列の先頭になります。

  • 文字数（数値） …… マークする文字数を表す数値。負数を指定した場合、逆方向にマークされます。複数行編集の[エディット]コントロールや[リッチエディット]コントロールの場合、改行コードは、２文字とカウントされます。

戻り値：

数値 …… マークされた文字数

以下の場合、「0」が返ります。

  • フォーカス上にコントロールがない場合

  • フォーカス上のコントロールが[エディット]コントロールでない場合

  • Magicエンジンが[エディット]コントロールにパークしておらず、この関数がフロー上で評価された場合

  • [強制終了]が「コントロール」か「レコード」のイベントによって起動されたハンドラから実行された場合

  • 開始位置が、文字列のサイズより大きい場合

関連トピック：

CaretPosGet, MarkedTextGet, MarkedTextSet


関数ディレクトリ MAX

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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


関数ディレクトリ MDate

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MDate

MDate

Magic日付 Magic日付を取得します。
構文： | MDate()
パラメータ： | なし
戻り値： | 日付
例： | MDate()+5
 | Magic日付の5 日後の日付が返ります。加算または減算する数値は、日数です。
注意事項： | この関数は、リッチクライアントタスクではサポートされません。
関連トピック： | Date


関数ディレクトリ Menu

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Menu

Menu

メニュー経路 現在のプログラムに至るまでのメニュー経路を取得します。現在のプログラムのメニュー名のほか、それまでのメニュー名も取り出されます。メニュー名はセミコロン（;）で区切られます。
構文： | Menu()
パラメータ： | なし
戻り値： | 文字列
例： | Menu()では、メニュー名がセミコロンで区切られて出力されます。
注意事項： | プログラムが開発モードで呼び出されている場合、NULLが返ります。
モバイル仕様： | モバイル環境ではサポートされません。
関連トピック： | Prog


関数ディレクトリ MenuIdx

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MenuIdx

MenuIdx

メニュー番号の取得

指定されたメニュー名に対応する［メニュー］リポジトリ上の番号を取得します。ショートカットメニューを式で動的に指定する場合で、メニュー名で指定する必要がある場合は、この関数を利用してください。また、MnuAdd関数やMnuRemove関数で使用することができます。

構文：

MenuIdx(メニュー名,'論理値)

パラメータ：

  • メニュー名 …… ［メニュー］リポジトリに定義されているメニュー名

  • 論理値 …… このパラメータは予約値です。必ず「False」を指定してください。

戻り値：

数値 …… 指定されたメニュー名が登録されている［メニュー］リポジトリ上の番号

例

メニューリポジトリに以下のようにメニューが登録されているものとします。

#1 Default Pulldown menu

#2 Default Context menu

#3 Sample menu

MenuIdx('Sample menu','FALSE'LOG)では、「3」が返ります。

注意事項：

返されるインデックス値は、［メニュー特性］の式でメニューインデックスとして扱ったり、MnuAdd()やMnuRemove()関数で使用できます。

モバイル仕様：

モバイル環境ではサポートされません。


関数ディレクトリ MID

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MID

MID

部分文字列の取り出し

指定した文字列から文字を取り出します。取り出す文字の数も指定できます。

構文：

MID(文字列,開始位置,文字数)

パラメータ：

  • 文字列 …… 文字を取り出す文字列。

  • 開始位置 …… 文字を取り出す位置。この位置から文字が取り出されます。

  • 文字数 …… 取り出す文字の数を指定します。

戻り値：

文字列 …… 取り出した文字列

例：

MID('John',3,2)

'hn'が返ります。

関連トピック：

Left, Right


関数ディレクトリ MIDV

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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


関数ディレクトリ MIN

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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


関数ディレクトリ Minute

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Minute

Minute

時刻の分の値

時刻の分数値を取得します。

構文：

Minute(時刻)

パラメータ：

  • 時刻 …… 時刻または時刻式

戻り値：

数値（0～59）

例：

Minute('12:15:00'TIME)

15 が返ります。

項目A の値が'12:15:00'TIMEの場合、Minute(A)+2 では17 が返ります。

関連トピック：

リテラル, Second, Hour, Time

指定された時刻の時/分/秒の各部分を取得するには


関数ディレクトリ MlsTrans

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MlsTrans

MlsTrans

文字列を他の言語に変換

多言語環境によって変換された文字列が返ります。[言語]テーブルの設定にしたがって変換されます。

構文：

MlsTrans (文字列)

パラメータ：

  • 文字列 …… 変換する文字列。最大で32000 文字まで指定できます。

戻り値：

変換された文字列

例：

MlsTrans('Cancel')

関連トピック：

式で使用している文字列を別の言語に翻訳するには


MMClear

マーク行のクリア マルチマークされた行をクリアします。
構文： | MMClear( )
パラメータ： | なし
戻り値： | 論理値 …… 処理に成功した場合「True」が返ります。
注意事項： | 関数が、マークされた行の処理中に実行されると、処理が終了した後にクリアされます。
例外： | マルチマーク関数は、リッチクライアントタスクではサポートされません。
関連トピック： | 複数のレコードをマークしたり、マークしたレコードを処理させるには

サポートバージョン：

2.3


MMCount

マーク行数

マルチマークされた行数が返ります。

構文：

MMCount(世代番号)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

数値 …… マークされた行数

例外：

マルチマーク関数は、リッチクライアントタスクではサポートされません。

関連トピック：

複数のレコードをマークしたり、マークしたレコードを処理させるには

サポートバージョン：

2.3


MMCurr

現在処理中のマーク行

マークされた行の中の現在処理中の行が返ります。

構文：

MMCurr(世代番号)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

値 …… マークされた行の中の現在処理中の行

例外：

マルチマーク関数は、リッチクライアントタスクではサポートされません。

関連トピック：

複数のレコードをマークしたり、マークしたレコードを処理させるには

サポートバージョン：

2.3


MMStop

マルチマークの中断

マルチマークハンドラを中断します。

構文：

MMStop()

パラメータ：

なし

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

現在実行中のレコードに対するハンドラの実行が停止します。レコードのマーク処理がキャンセルされ、この関数が実行されたレコード上にカーソルがパークします。

例外：

  • マルチマーク関数は、リッチクライアントタスクではサポートされません。

  • マルチマークイベント内でMMStopの評価後の処理は実行されません。

関連トピック：

複数のレコードをマークしたり、マークしたレコードを処理させるには

サポートバージョン：

2.3


関数ディレクトリ MnuAdd

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MnuAdd

MnuAdd

メニューの追加

メニュー構造を現在実行中のプルダウンメニューに追加します。

構文：

MnuAdd (メニュー番号, メニューパス)

パラメータ：

  • メニュー番号 …… 追加するメニュー構造となる[メニュー]リポジトリのテーブル番号。MENUリテラルが使用できます。

  • メニューパス …… 追加されるメニューの論理メニュー名
    指定されたメニューパスの右（または下）隣に追加されます。「M=メニュー」タイプのサブメニューとして追加する場合は、「\」で論理メニューをつなげてパス表記にします。パスの末尾に｢\｣がない場合は、メニューの下に追加され、｢\｣がある場合は、指定されたメニューのサブメニューとして追加されます。

「メニューパスの設定」を参照してください。

戻り値：

論理値 …… 処理が成功した場合、「True」が返ります。

追加されるメニューが以下の場合は、「False」が返ります。

  • メニューのタイプが「M=メニュー」以外

  • プロダウンメニュー以外

例：

MnuAdd('3’MENU,'Edit\Customers’)

[メニュー]リポジトリの３番目のメニューが[Edit]メニューの[Customers]サブメニューの後に追加されます。

注意事項：

  • アプリケーション実行時のプルダウンメニューを検索します。メニューが見つかった場合、指定されたメニュー構造を追加します。

    • メニュー構造は、一致した最初の位置に追加されます。

    • メニューパスが見つからない場合は、処理が失敗します。

    • メニュー構成は、パスの最後に追加されます。更なるサブメニューに追加したい場合は、バックスラッシュを指定してください。バックスラッシュの前に記述されたメニュー名がサブメニューとして評価されない場合、関数は失敗します。

    • メニューパスが空白の場合、最上位のプルダウンメニューに追加されます。

    • 以下のメニュー関数が、追加されたメニューに対して有効になります。

    • MnuEnabl, MnuShow, MnuName, MnuCheck

  • メニューに並行プログラムを追加するためにこの関数を使用すると、メニュー名ははプルダウンメニューとコンテキストメニューに追加されます。

モバイル仕様：

モバイル環境ではサポートされません。

関連トピック：

実行プログラムのメニューを変更するには


関数ディレクトリ MnuCheck

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MnuCheck

MnuCheck

メニュー項目のチェックマークの表示/非表示を設定

メニュー項目の前のチェックマークの表示/非表示を設定します。

構文：

MnuCheck(論理メニュー名,論理値)

パラメータ：

  • 論理メニュー名 …… [メニュー定義]テーブルの[論理メニュー名]カラムの論理メニュー名

  • 論理値 …… チェックマークの有効／無効を指定します。

  • True …… チェックマークが表示されます。

  • False …… チェックマークは表示されません。

戻り値：

論理値… 処理に成功した場合「True」が返ります。

例：

MnuCheck('ENTRY','TRUE'LOG)

注意事項：

この関数は、［タイプ］が「メニュー」と「OSコマンド」の全てのプルダウンメニューの構成を検索し、検索された項目に対して処理が実行されます。

例外：

この関数は、トップレベルのプルダウンメニューには使用できません。

モバイル仕様：

モバイル環境ではサポートされません。

関連トピック：

実行時にメニューの表示／非表示を行うには


関数ディレクトリ MnuEnabl

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MnuEnabl

MnuEnabl

メニュー項目の有効/無効を設定

メニュー項目の有効/無効を設定します。

構文：

MnuEnabl(論理メニュー名,論理値)

パラメータ：

  • 論理メニュー名 …… [メニュー定義]テーブルの[論理メニュー名]カラムの論理メニュー名

  • 論理値 …… メニュー項目の有効／無効を指定します。

  • True …… メニュー項目が有効になります。

  • False …… メニュー項目は無効になります。

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例：

MnuEnabl('Prog1','TRUE'LOG)

注意事項：

  • この関数は、［タイプ］が「メニュー」と「OSコマンド」の全てのプルダウンメニューの構成を検索し、検索された項目に対して処理が実行されます。

  • 内部イベントが設定されたメニューの有効/無効は設定できません

モバイル仕様：

モバイル環境ではサポートされません。

関連トピック：

実行時にメニューの表示／非表示を行うには


関数ディレクトリ MnuName

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MnuName

MnuName

メニュー名の変更

ユーザメニュー名を変更します。

構文：

MnuName(論理メニュー名、ユーザメニュー名)

パラメータ：

  • 論理メニュー名 …… 変更したいメニューの論理メニュー名

  • ユーザメニュー名 …… 置き換えるメニュー名

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例：

MnuName('entity_list', '&Customer list')

'Customer list' は、変更するメニュー名です。

先頭の '&' は、先頭の文字がショートカットキーであることを示します。

'entry_list' は、論理メニュー名です。

注意事項：

メニューの階層の検索が行われた後、検索された項目に対して処理が実行されます。

モバイル仕様：

モバイル環境ではサポートされません。


関数ディレクトリ MnuRemove

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MnuRemove

MnuRemove

メニューの削除

MnuAdd関数で追加されたメニュー構造を削除します。

構文：

MnuRemove (メニュー番号, メニューパス)

パラメータ：

  • メニュー番号 …… 削除されるメニュー構造となる[メニュー]リポジトリのテーブル番号。MENUリテラルが使用できます。

  • メニューパス …… 削除されるメニューの論理メニュー名

メニューパスは、論理メニュー名で構成されます。バックスラッシュ（\)は、サブメニューを定義します。パスの書式は、以下の通りです：論理メニュー名［\論理メニュー名］［\］

バックスラッシュは、メニュー構造が最後の<メニュー名>内に定義されているサブメニューから削除するかどうかを定義します。

例：“オプション\プロジェクト\”は、［オプション］メニューの［プロジェクト］サブメニューから、メニューを削除します。

戻り値：

論理値 …… 処理が成功した場合、「True」が返ります。

例：

MnuRemove('3’MENU,'Edit\Customers’)

実行時のメニューからMnuAdd('3’MENU,'Edit\Customers)によって追加されたメニューが削除されます。

注意事項：

  • プルダウンメニューからMnuAdd関数で追加されたメニューを検索して削除します。

  • メニュー構造は、検索された最初の場所から削除されます。

  • 同じメニューが複数追加されている場合、右（または下）隣から削除されます。

  • メニューが存在しない場合、関数は「False」を返します。

  • 関数が実行されたコンテキスト内でのみ削除されます。

  • メニュー番号にデフォルトのプロダウンメニューの番号を指定し、メニューパスを空白にすることで、プルダウンメニューが全て削除されます。

モバイル仕様：

モバイル環境ではサポートされません。

関連トピック：

実行プログラムのメニューを変更するには


関数ディレクトリ MnuReset

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MnuReset

MnuReset

デフォルトプルダウンメニューの復元 デフォルトのプルダウンメニュー構造に戻します。
構文： | MnuReset ()
パラメータ： | なし
戻り値： | 論理値 … 処理が成功した場合、「True」が返ります。
注意事項： | SDIの場合、この関数は[フォーム特性]の[プルダウンメニュー]特性で定義されたメニューの復旧を行います。
モバイル仕様： | モバイル環境ではサポートされません。
関連トピック： | 実行プログラムのメニューを変更するには


関数ディレクトリ MnuShow

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MnuShow

MnuShow

メニュー項目の表示/非表示を設定

メニュー項目の表示/非表示を設定します。

構文：

MnuShow (論理メニュー名,論理値)

パラメータ：

  • 論理メニュー名 …… [メニュー定義]テーブルの[論理メニュー名]カラムの論理メニュー名

  • 論理値 …… メニュー項目を表示するか否かを指定します。'TRUE'LOGを指定すると表示されます。

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例：

MnuShow('Menu','TRUE'LOG)

注意事項：

  • メニューが表示されていない時には、ショートカットキーを使用できるメニュー項目であっても無効になります。

  • メニューの階層の検索が行われた後、検索された項目に対して処理が実行されます。

モバイル仕様：

モバイル環境ではサポートされません。

関連トピック：

実行時にメニューの表示／非表示を行うには


関数ディレクトリ Month

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Month

Month

日付の月（1～12）

日付の月数(1～12)を取得します。

構文：

Month(日付)

パラメータ：

  • 日付 …… 日付

戻り値：

数値（1～12）

例：

Month('1992/01/28'DATE)

1 が返ります。

関連トピック：

CMonth,NMonth

指定された日付の年/月/日の各部分を取得するには


関数ディレクトリ MStr

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MStr

MStr

数値を文字列に変換

数値を指定された長さ（バイト）のMagic数字に変換します。

構文：

MStr(数値,バイト数)

パラメータ：

  • 数値 …… 文字列に変換される数値

  • バイト数 …… 変換後の文字列の長さ（バイト数）

戻り値：

文字列 …… Magic Magic数字に変換された文字列

例：

MStr(123456,4)

数値123456 が4 バイトの文字列に変換されます。

注意事項：

  • この関数は、配列にデータを格納するすることを前提に設計されます。

  • 精度の最大値は、項目の[格納形式]特性が「Magic数値」として認識されます。

関連トピック：

MVal


関数ディレクトリ MTblGet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > MTblGet

MTblGet

メモリテーブルのBLOB化

メモリテーブルの内容がBLOBデータに変換されて返ります。

構文：

MTblGet(テーブル番号, DB テーブル名)

パラメータ：

  • テーブル番号 …… [データ]リポジトリ内のメモリテーブルのテーブル番号

  • DBテーブル名 …… （指定された場合）同じテーブル構成の異なるインスタンスを参照します。

戻り値：

BLOB値 …… メモリテーブルの内容が取り込まれたBLOB 。

注意事項：

  • メモリデータベース以外のテーブルで実行された場合、NULL値を返します。

  • BLOBデータ項目の内容は、テーブルの最後にコミットされたトランザクションの前に存在するメモリテーブル内容です。

  • DBテーブル名パラメータ(これによって別のテーブルを参照することが可能です。) で指定されたテーブルが、実行中のタスクでオープンされている場合は処理できません。


関数ディレクトリ MTblSet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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」の場合）

利用目的：

MTblGet関数と組み合わせて利用してメモリテーブルの内容を永続的に維持することで、メモリテーブルの内容を保存し、必要に応じて変換することができるようになります。

注意事項：

  • 関数の実行中に発生した全ての DB エラーは、テーブル内容の終りまでスキップされます。

  • 現在のタスクのトランザクション設定に関係なく、ネストトランザクションとして、メモリテーブルが更新実行されます。 これは、関数が終了した時、全ての追加レコードがコミットされることを意味します。

  • この関数は、メモリテーブル構造と BLOB の内容の構造の整合性を確認します。テーブル構造は、カラムの順番、数、型のみ比較され、インデックスや外部キーはチェックされません。

  • DBテーブル名パラメータ(これによって別のテーブルを参照することが可能です。) で指定されたテーブルが、実行中のタスクでオープンされている場合は処理できません。


関数ディレクトリ mTime

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > mTime

mTime

システム時刻の取得（ミリ秒単位） 現在の時間がミリ秒単位で返ります。
構文： | mTime()
パラメータ： | なし
戻り値： | 数値 …… 現在の時刻を表す数値をミリ秒単位で返します。
例： | 時刻が、02:30:21.5am の時に mTime()を実行すると 9021500 を返します。
注意事項： | 通常、タイムスタンプで利用します。 ミリ秒を取得したい場合、次のような式を使用することができます。 mTime（)－Time（) * 1000 時刻型の書式はは、ミリ秒をサポートしません。
関連トピック： | Time,UTCTime 現在の時間をミリ秒単位で取得するには


関数ディレクトリ mTStr

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > mTStr

mTStr

時刻を文字列に変換（ミリ秒単位）

書式に基づいてミリ秒の時間値を文字列に変換します。

構文：

mTStr(時間値、書式)

パラメータ：

  • 時間値 …… ミリ秒数を表す数値

  • 書式 …… 変換する書式。この書式に基づいて、文字列に変換します。

戻り値：

文字列 …… 指定した書式に基づいた時間値

例：

mTStr(52221123,'HH:MM:SS.mmm')

文字列 '14:30:21.123' を返します。

mTStr(52221123,'HH:MM:SS')

文字列 '14:30:21' を返します。


関数ディレクトリ mTVal

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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

MVal

文字例（Magic数字）を数値に変換

Magic数字（内部コード）を数値に変換します。

構文：

MVal(文字列)

パラメータ：

  • 文字列 …… Magic xpaの内部コードを含む文字列

戻り値：

数値

例：

MVal(MStr(1234,4))

1234 が返ります。

関連トピック：

MStr


関数ディレクトリ NDOW

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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

NMonth

月番号の月名（英語）への変換

月数(1、2 など)を英語の月名(January、Februaryなど)に変換します。

構文：

NMonth(月番号)

パラメータ：

  • 月番号 …… 月を示す番号（1～12）

戻り値：

文字列 …… 月名

例：

NMonth(1)

'January'が返ります。

NMonth(Month('1992/01/28'DATE))

'January'が返ります。

関連トピック：

Month, CMonth, NDOW


関数ディレクトリ NULL

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > NULL

NULL

NULL に設定

項目の値をNULL に設定します。

構文：

NULL()

パラメータ：

なし

関連トピック：

NULL値可

注意事項：

  • この関数にパラメータはなく、必要に応じて実行し、項目の値をNULL値にすることができます。

  • NULL値が許可されていない場合、項目の値はNULL にできません。

  • 項目がNULLかどうかを確認する場合は、ISNULL（）関数を使用してください。


関数ディレクトリ OEM2ANSI

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > OEM2ANSI

OEM2ANSI

OEMコードから ANSIコードに変換

OEM文字セットの文字列をANSI文字セットに変換します。

構文：

OEM2ANSI(文字列)

パラメータ：

  • 文字列 …… 変換されるOEM文字列

戻り値：

文字列 …… ANSIに変換された文字列

注意事項：

日本語環境においては、この関数を使用する必要はありません。

関連トピック：

ANSI2OEM、変換ファイル


関数ディレクトリ OSEnvGet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > OSEnvGet

OSEnvGet

OSの環境変数の取得

指定されたOSの環境変数の値を取得します。

構文：

OSEnvGet(環境変数)

パラメータ：

  • 環境変数 …… OSの環境変数の名前を指定します。

戻り値：

文字列 …… 指定された環境変数の実行値を返します。環境変数が指定されていない場合は、空白が返ります。

例：

OSEnvGet(‘PATH’)

「PATH」という環境変数の実行値が返ります。

関連項目:

OSEnvSet,ClientOSEnvGet

システムの環境変数から値を取得するには


関数ディレクトリ OSEnvSet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > OSEnvSet

OSEnvSet

OSの環境変数に実行値を設定する

指定されたOSの環境変数に値を指定します。指定された環境変数は、Magic xpaが終了するまで有効です。

構文：

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

Owner

オーナ名を取得 [動作環境]ダイアログの[オーナ名]パラメータに設定されている値を取得します。取り出される文字列の最大サイズは30文字です。
構文： | Owner()
パラメータ： | なし
戻り値： | 文字列 …… [動作環境]ダイアログの[オーナ名]の値
関連トピック： | INIGet
注意事項： | オーナ名は、この関数のほか、INIGet関数を使用して取り出すこともできます。ただし、INIGet関数ではオーナ名はディスクから取り出されるのに対して、このOwner関数ではメモリ上のオーナ名が返ります。このため、Owner関数のほうが処理速度は高速です。


関数ディレクトリ Page

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Page

Page

出力ファイルのページ番号

入出力ファイルの現在処理中のページ番号を取得します。

構文：

Page(世代番号,ファイル番号)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

  • ファイル番号 …… 指定されたタスクの[入出力ファイル]テーブルの番号

戻り値：

数値 …… ページ番号

例：

Page(1,1)

親タスクの最初の出力ファイルのページ番号が返ります。

関連トピック：

Line


関数ディレクトリ ParamsPack

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ParamsPack

ParamsPack

グローバル変数のパッケージ化 （SetParam 関数で設定された）グローバル変数をBLOBにパッケージ化します。BLOB値は、他のコンテキストやプロセスでParamsUnpack 関数を使用してグローバル変数に変換できます。
構文： | ParamsPack()
パラメータ： | なし
戻り値： | パッケージ化したBLOB値を返します。
関連項目: | ParamsUnPack


関数ディレクトリ ParamsUnPack

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ParamsUnPack

ParamsUnPack

（パッケージ化された）グローバル変数の取り出し

ParamsPack関数で作成されたBLOB値をグローバル変数に変換します。グローバル変数の値は、GetParam 関数で参照できます。

構文：

ParamsUnPack (パッケージ)

パラメータ：

  • パッケージ …… ParamsPack 関数で作成された BLOB値

戻り値：

論理値 …… 常に「True」 を返します。

例：

ParamsUnpack(A)

項目A（ BLOB型)の内容をグローバル変数に変換します。

関連トピック：

ParamsPack

注意事項：

現在のコンテキストに同じ名前のグローバル変数がすでに存在している場合は、変換する値で上書きされます。


関数ディレクトリ Prog

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Prog

Prog

タスクのパス 現在のタスクの実行パスを取得します。そのタスクのパスとタスク名が文字列で返ります。パスのタスク名はセミコロン（;）で区切られます。
構文： | Prog()
パラメータ： | なし
戻り値： | 文字列 …… タスクの実行パス（文字列）
例： | Prog()
 | 例えば、「販売受注書（顧客別）;顧客（ヘッダ）;受注行」が返ります。
関連トピック： | Menu


関数ディレクトリ ProgIdx

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ProgIdx

ProgIdx

プログラム番号

[プログラム]リポジトリ上の番号が返ります。

構文：

ProgIdx(プログラム名,種別)

パラメータ：

  • プログラム名 …… [プログラム]リポジトリ上のプログラム名

  • 種別 …… プログラム名の種別（論理値）

  • True …… 公開プログラム名を示します

  • False …… プログラム名を示します

戻り値：

数値 …… [プログラム]リポジトリ上の番号

例：

ProgIdx('Calculate', 'FALSE'LOG)

ProgIdx(A,'TRUE'LOG) A は文字項目です。

この関数の使用例として、外部のデータベースに格納されているプログラム名を基にユーザメニューを動的に表示させることができます。プログラムの名前を変更することは、アプリケーション内の位置を変更するほど一般的でないため、この方法がプログラムを動的に呼び出すよい方法になります。

関連トピック：

Menu


関数ディレクトリ ProjectDir

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ProjectDir

ProjectDir

プロジェクトディレクトリ名の取得 プロジェクトファイルが保存されているディレクトリ名を取得します。
構文： | ProjectDir ()
パラメータ： | なし
戻り値： | 文字列 …… プロジェクトファイル（EDP）のディレクトリを表す文字列が返ります。
関連トピック： | プロジェクトディレクトリの取得 コンポーネントが存在するディレクトリにアクセスするには


関数ディレクトリ PublicName

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > PublicName

PublicName

公開プログラム名の取得

実行中のプログラムの公開名を取得します。

構文：

PublicName (世代番号)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

文字列 …… プログラムの公開名。世代番号がプログラムを指定していない（サブタスクやメインプログラムなど）場合、NULLが返ります。

例：

PublicName(0)

現在実行中のプログラムの公開名が「LIST」の場合、「LIST」が返ります。

関連トピック：

TaskID


関数ディレクトリ RAND

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > RAND

RAND

乱数

乱数値を取得します。

構文：

RAND(開始番号)

パラメータ：

  • 開始番号 …… 乱数の生成に使用されるシード値

戻り値：

数値 …… 乱数が１未満の小数値で返ります。

例：

開始番号が「-1」の場合、シード値自体が乱数となります。

開始番号が「n」の場合（n は、0 または-1 以外）、シード値がn になります。

開始番号が「0」の場合、既存のシード値を基に次の乱数が生成されます。したがって、既存のシード値を基に乱数を生成したい場合、RAND(0)を使用します。


関数ディレクトリ Range

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Range

Range

範囲チェック

値が指定した範囲にあるかどうかを確認します。

構文：

Range(値,下限値,上限値)

パラメータ：

  • 値 …… チェックの対象

  • 下限値 …… 範囲の下限となる値

  • 上限値…範囲の上限となる値

戻り値：

論理値

  • True …… 値が指定した範囲内にある（境界値を含む）

  • False …… 値が指定した範囲内にない

例：

Range(10,5,15)

「True」 が返ります。

注意事項：

MIN やMAX と同じく、この関数でも、任意のデータ型の値が指定できます。ただし、値、下限値、上限値の各パラメータのデータ型は全て同じでなければなりません。BLOB は、全て「False」 が返ります。

関連トピック：

MIN, MAX


関数ディレクトリ RangeAdd

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > RangeAdd

RangeAdd

範囲条件の追加

範囲条件を追加し、ビューを再表示します。タスクに定義された範囲条件に新しい条件が追加されます。

構文：

RangeAdd (項目, 開始値, [終了値])

パラメータ：

  • 項目 …… 参照する項目。VARリテラルが必要です。BLOB、OLE、ActiveX、ベクトルと.NET型の項目はサポートされません。

  • 開始値 …… 項目のデータ型にもとづいた開始値

  • 終了値 …… オプション：項目のデータ型にもとづいた終了値

全てのデータ型で、文字列''が使用でき、値は無視されます。

戻り値：

論理値 …… 処理結果が返ります。

  • True …… 範囲条件が更新されました。

  • False …… （項目指定が間違っているなどの）不正な条件です。

注意事項：

  • この関数は、複数の範囲条件を追加するために使用され、ビューが再表示されると、条件に従って絞り込みが実行されます。

  • 項目の名前はデータビュー内でユニークにする必要があります。

  • 親タスクの項目を指定することで、関連したタスクの範囲条件が更新されます。

  • この関数は、複数の項目に対する範囲指定の実行を行うために、複数回使用することができます。

  • NULL関数を値として使用することができます。この場合、NULL値が条件として送られます。

  • アスタリスク（*)は、範囲や位置付でワイルドカードとして使用することができます。範囲や位置付の値としてアスタリスクを使用する場合は、バックスラッシュ（\)をアスタリスクの前に付加してください。

例：

  • a*：a*で範囲指定をします（*は、ワイルドカードになります)

  • a\*：a*で範囲指定をします（*は、文字として処理されます)

  • a\\：a\ で範囲指定をします。

  • a\\*：a\* で範囲指定をします（*は、ワイルドカードになります)

  • a\b：a\b として動作します

関連トピック：

RangeReset,LocateAdd

サポートバージョン：

2.5

ローカルデータをサポートしました。


関数ディレクトリ RangeReset

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > RangeReset

RangeReset

範囲条件のリセット

範囲条件をリセットします。これにより、タスクに定義された範囲条件が使用されます。

構文：

RangeReset (世代番号)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。タスク自身を、1 はそのすぐ上位の親タスクを指定し、以下同様です。

戻り値：

論理値 …… 処理結果が返ります。

  • True …… 範囲条件が更新されました。

  • False …… （指定された世代のタスクが存在しないなどのため）エラーが発生しました。

注意：

  • この関数が範囲条件のリセットに使用された場合、ビューを再表示すると、タスクの範囲条件に基づいて絞り込みが実行されます。

  • 関数は、RangeAdd関数によって追加された範囲指定だけでなく、Ctrl+Rによる範囲指定もリセットされます。

関連トピック：

RangeAdd

サポートバージョン：

2.5

ローカルデータをサポートしました。


関数ディレクトリ Rep

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Rep

Rep

文字列内の部分文字列の置き換え

文字列の一部分を別の文字列に置き換えます。置き換えは、[位置]パラメータで指定された位置から始まります。

構文：

Rep(文字列1,文字列2,位置,文字数)

パラメータ：

  • 文字列1 …… 文字列または文字列式で、この文字列の中の文字列が置き換えられることになります。

  • 文字列2 …… 文字列または文字列式で、この文字列が挿入されます。

  • 位置 …… [文字列1 ]上の位置で、この位置から置き換えが始まります。

  • 文字数 …… 置き換えられる文字の数で、この数の文字が置き換えの対象となります。

戻り値：

置き換え後の文字列

例：

Rep('12345','abcde',3,2)

'12ab5'が返ります。

関連トピック：

RepV


関数ディレクトリ RepStr

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > RepStr

RepStr

文字列内の特定文字列を検索して置き換え

文字列内にある特定の部分文字列が検索され、別の文字列に置き換えられます。

構文：

RepStr(文字列, 検索文字列,置換文字列)

パラメータ：

  • 文字列 …… 対象となる文字列

  • 検索文字列 …… この文字列で検索します。

  • 置換文字列 …… この文字列で置き換えます。

戻り値：

置き換え後の文字列

例：

RepStr('BB//CC//DD//EE','//','==',)

'BB==CC==DD==EE'が返ります。

注意事項：

  • 元の部分文字列と新しい部分文字列は文字列の長さが異なっていても構いません。

  • 新しい文字列が元の文字列より短い場合には、置き換え後の文字列は置き換え前よりも短くなります。

  • 逆に、新しい文字列が元の文字列よりも長い場合には、置き換え後の文字列は置き換え前よりも長くなります。


関数ディレクトリ RepV

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > RepV

RepV

文字列内の部分文字列の置き換え

機能はRep 関数と同じですが、全角文字を2 分しても半角スペースに置き換えません。

構文：

RepV(文字列１,文字列２,位置,文字数)

パラメータ：

  • 文字列１ …… 置き換え対象となる文字列

  • 文字列２ …… 置き換える文字列

  • 位置 …… 文字列１の置き換え開始位置

  • 文字数 …… 置き換え文字数。文字列２から文字列１に複写される文字の数で、文字列２の一番左の文字から数えます。

戻り値：

置き換え後の文字列

注意事項：

この関数は日本語版でのみ有効です。

関連トピック：

Rep


関数ディレクトリ Right

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Right

Right

文字列の右側から文字を取り出す

文字列の右側にある文字を取得します。

構文：

Right(文字列,文字数)

パラメータ：

  • 文字列 …… 文字を取り出す文字列

  • 文字数 …… 取り出す文字の数を指定します。この数の文字が、文字列の右側から取り出されます。

戻り値：

文字列

例：

Right('abcdefg',3)

'efg'が返ります。

注意事項：

この関数では、文字列として文字列項目を指定した場合、その項目の長さ全体に対して働きます。例えば、項目A の長さが20 文字で、この項目に'abcdefg'という文字列が入っていた場合、Right(A,3)では''が返ります（20 文字のうち、'abcdefg'の右側は全て空白のためです）。このため、実際の文字列の右側から文字を取り出したい時には、Right(RTrim(A),3)とします。

関連トピック：

Left, MID, RTrim


関数ディレクトリ RightAdd

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > RightAdd

RightAdd

ユーザに権利を割当てる

セキュリティファイルに定義されているユーザに対して権利を割当てます。

構文：

RightAdd(ユーザ,権利)

パラメータ：

  • ユーザ …… ユーザを指定します。このユーザに、[権利]パラメータで指定した権利が割当てられます。

  • 権利 …… ユーザに割当てる権利を指定します。

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例：

RightAdd('Accountant','Issue Invoice')

'Accountant'というユーザに対して'Issue Invoice'という権利が付与されます。

注意事項：

この関数は、SUPERVISOR権利を持つユーザだけが使用できます。


関数ディレクトリ Rights

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Rights

Rights

権利付与の照会

指定された権利がユーザに与えられているかどうかを確認します。指定した権利が与えられていない場合、「False」 が返ります。

構文：

Rights(権利名)

パラメータ：

  • 権利名 …… 権利の名前で、RIGHT リテラルコマンドを付加します。

戻り値：

論理値

  • True …… 指定した権利が付与されている場合

  • False …… 権利が付与されていない場合

例：

Rights('right #4'RIGHT)

ユーザに「right #4」という権利が与えられていれば、「True」 が返ります。

関連トピック：

GroupAdd, User

ログオンユーザにもとづいて機能を制限するには


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と評価されます。

関連インターフェース：

リッチクライアントタスクの場合は、Rollback（FALSE'LOG,1)のみサポートされます。他の値は、'FALSE'LOGと1として扱われます。

この関数は、以下の通り動作します。

  • 非オフラインのリッチクライアントタスクで使用した場合、関数はサーバにアクセスしますが、ニュートラルとなります。

サポートバージョン：

2.4

関連トピック；

明示的にトランザクションをロールバックするには


関数ディレクトリ Round

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Round

Round

数値の四捨五入

数値の一部を取り出し、その結果を四捨五入します。

構文：

Round(数値,整数部桁数,小数部桁数)

パラメータ：

  • 数値 …… 処理の対象となる数値

  • 整数部桁数 …… 取り出したい桁の整数の桁数を指定します。指定した数の桁は、小数点から左に向かって取り出されます。

  • 小数部桁数 …… 取り出したい桁の少数の桁数を指定します。指定した数の桁は、小数点から右に向かって取り出されます。負数の場合、数値式は小数点の左側で丸められます。

戻り値：

数値 …… 取り出される小数部で一番右の次の桁が四捨五入され、その結果が返ります。

例：

Round(345.995,2,2)

46.00 が返ります。

Round(657.37,3,-1)

660.00が返ります。

関連トピック：

Fix,DbRound


関数ディレクトリ RqContexts

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > RqContexts

RqContexts

コンテキスト情報

コンテキストに関する情報を取得します。

構文：

RqContexts (サービス/サーバ名,参照用パスワード)

パラメータ：

  • サービス/サーバ名 …… [サービス／サーバ]テーブルに定義されているサーバ／サービス名

  • 参照用パスワード …… MGRB.INIファイルに設定されたPasswordQueryパラメータで設定された、照会用パスワード

戻り値：

各コンテキストについての以下の内容がXML形式で返ります。

  1. コンテキスト ID

  2. ユーザ ID

  3. コンテキストグループ：ログイン後にオープンされたコンテキストID。ネストされた並行コンテキストは､すべて同じコンテキストグループ値を共有します。

  4. 開始時刻

  5. クライアントアドレス

  6. 実行エンジンのホスト名/ポート番号

  7. アプリケーション名

エラーが発生した場合は、空白が返ります。

例：

RqContexts ('Default Broker','')


関数ディレクトリ RqCtxInf

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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

RqCtxTrm

コンテキストの終了

コンテキストを終了させます。コンテキストは、RqRtCtxs 関数によって取得した番号を指定します。

構文：

RqCtxTrm(サービス/サーバ名,コンテキスト番号, Supervisor パスワード)

パラメータ：

  • サービス/サーバ名 …… [サービス／サーバ]テーブルに定義されているサーバ／サービス名

  • コンテキスト番号 …… RqRtCtxs 関数で取得したコンテキスト番号（RqRts関数をまず呼ぶ必要があります。）

  • Supervisor パスワード …… MGRB.INIファイルに設定されたPasswordSupervisorパラメータで設定されたパスワード

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例：

RqCtxTrm('My Service',14,'MY PASS')

この例では、RqRtCtxs 関数で取得した 14番目のコンテキストを終了させます。


関数ディレクトリ RqExe

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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に対するアクセスが許可され、実行可能ファイルが読み込み可能の状態になった時に、戻り値が返ります。


関数ディレクトリ RqHTTPHeader

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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関数が有効になります。次のリクエストは、前のリクエストでのこの関数の実行結果に影響されることはありません。

例外：

リッチクライアントタスクではサポートされません。


関数ディレクトリ RqHTTPStatusCode

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > RqHTTPStatusCode

RqHTTPStatusCode

HTTPのステータスコードの制御

HTTPの戻り値のステータスコードの内容を制御します。

構文：

RqHttpStatusCode (ステータスコード, 理由)

パラメータ：

  • ステータスコード… …… 3桁の数値

  • 理由 …… ステータスコードの意味を表す短いテキスト

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例：

Webページが別のアドレスに移動されたことを通知する場合は、リクエストの実行時に、以下のように定義する必要があります。

1,ステータスコード:301を返す

RqHTTPStatusCode(301,” 移動しました”)

2,新しいパスを指定する

RqHTTPHeader('Location: http://newaddress/page.html')

使用方法：

ユーザがGoogleによってすでにインデックス化されたページを持っている場合、クライアント（やGoogleボット)に対して、Webページが移動されたことを認識させるために、ユーザはMagic xpaに対してHTTPステータスを301に設定させる必要があります。このようにすれば、Webページのインデックス内容は失われません。

注意事項：

  • リクエスト処理が終了すると、リクエストに対するHTTPのステータスコードが設定されます。そして、リクエスタに出力が送り返されます。これは、RqHTTPStatusCode関数がリクエストタスクのフロー上のどの場所からでも評価されることを意味します。

  • 最後に評価されるRqHTTPStatusCodeが実行されます。次のリクエストは、前のリクエストでこの関数のいかなる評価にも影響を受けません。

例外：

リッチクライアントタスクではサポートされません。


関数ディレクトリ RqLoad

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > RqLoad

RqLoad

リクエスタの起動情報

サービスの起動に関する統計情報を取得します。

構文：

RqLoad(サービス/サーバ名,参照用パスワード)

パラメータ：

  • サービス/サーバ名 …… [サービス／サーバ]テーブルに定義されているサーバ／サービス名

  • 参照用パスワード …… MGRB.INIファイルに設定されたPasswordQueryパラメータで設定された、照会用パスワード

戻り値：

文字列 …… 情報がカンマで区切られた文字列で返ります。情報の種類と形式は次のとおりです。

  • 平均待ち時間 …… 小数点以下が2 桁の浮動小数点数値。これは、ユーザがアプリケーションサーバがリクエストを割り当てるために待たされる平均的時です。

  • リクエストの合計数 …… 数値

  • 保留/待ち行列内のリクエスト数 …… 数値

  • 処理中のリクエスト数（実行時） …… 数値

  • 実行済みのリクエスト数 …… 数値

  • 実行に失敗したリクエスト数 …… 数値

  • リクエストの1日の総数 …… 数値

  • リクエストに対する応答の1日の総数 …… 数値

例：

RqLoad('Default Broker','Secret')

注意事項：

サービス名が不適当な場合、処理に失敗するとともに空白の文字列が返ります。また、パスワードが参照用パスワードでない場合は、処理に失敗します。


関数ディレクトリ RqQueDel

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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

リクエスタのキュー一覧を取得

キュー内で待機状態にあるエントリ数を取得します。

構文：

RqQueLst(サービス/サーバ名,Supervisor パスワード)

パラメータ：

  • サービス/サーバ名 …… [サービス／サーバ]テーブルに定義されているサーバ／サービス名

  • Supervisor パスワード …… MGRB.INIファイルに設定されたPasswordSupervisorパラメータで設定されたパスワード

戻り値：

数値 …… 指定したサービスのキューで待機状態にあるキューの数

例：

RqQueLst('Default service', 'Secret')


関数ディレクトリ RqQuePri

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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

RqReqInf

リクエスタのリクエスト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

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

RqRtApp

リクエスタ対応アプリケーションの情報

MRBによって起動された実行エンジンがサポートしているアプリケーションの情報を取得します。

構文：

RqRtApp(サービス/サーバ名,アプリケーション番号)

パラメータ：

  • サービス/サーバ名 …… [サービス／サーバ]テーブルに定義されているサーバ／サービス名

  • アプリケーション番号 …… アプリケーションの内部番号を示す数値。ここで指定するアプリケーションは、RqRtApps 関数で検索したもののいずれかでなければなりません（したがって、この関数は、RqRtApps 関数の後で使用します）。

戻り値：

文字列 …… カンマで区切られた、以下の文字列情報が返ります。

  • アプリケーション名 …… アプリケーションの名前。全てのアプリケーションを要求した場合（RqRtApps 関数で、[実行エンジン番号]パラメータを「0」にした場合）、次の情報も返ります。

  • ホスト名 …… 実行エンジンが起動されるホストの名前

  • ポート番号 …… 実行エンジンのチェック対象となるポートの番号

例：

RqRtApp('Default Broker', BD)

数値型の変数項目BD に格納されているアプリケーション番号を使用して処理が行われます。このアプリケーション番号は、RqRtApps 関数の実行により与えられます（アプリケーション番号は、RqRtApps関数で指定した実行エンジン番号によって異なってきます）。また、アプリケーション番号は、RqRts 関数を実行した時にも返ります。


関数ディレクトリ RqRtApps

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > RqRtApps

RqRtApps

リクエスタのアプリケーション数

MRBによって起動された実行エンジンがサポートしているアプリケーションの数を取得します。

構文：

RqRtApps(サービス/サーバ名、実行エンジン番号、Supervisorパスワード)

パラメータ：

  • サービス/サーバ名 …… [サービス／サーバ]テーブルに定義されているサーバ／サービス名

  • 実行エンジン番号 …… 0 でない場合は、該当サービスに関連した全ての実行エンジンの内部番号を示す数値。ここで指定する実行エンジンは、RqRts 関数で検索したもののいずれかでなければなりません（したがって、この関数は、RqRts 関数の後で呼び出さなければなりません）。

  • Supervisor パスワード …… MGRB.INIファイルに設定されたPasswordSupervisorパラメータで設定されたパスワード

戻り値：

数値 …… 指定したサービスの実行エンジンでサポートされているアプリケーションの数

例：

RqRtApps('Default Broker',BA,'')

変数項目BA に格納されている実行エンジン番号を使用して、その実行エンジンでサポートされているアプリケーションの数が取り出されます。この実行エンジン番号は、RqRts 関数で返ったものです。

注意事項：

不正なパラメータ値が与えられた時は、戻り値として0 が戻ります。


関数ディレクトリ RqRtBlock

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > RqRtBlock

RqRtBlock

リクエストの受付をブロックします。

発行された内部/外部リクエストがサーバに到達することを防止します。サーバがMRBと全く接続しなかったかのように、リクエストは処理されます。例えば、各リクエストのブローカータイムアウトに基づいて待ち続けます。

構文：

RqRtBlock (サーバ/サービス名, 実行エンジン番号, Supervisor パスワード, 全て,シャットダウン)

パラメータ：

  • サーバ/サービス名 …… [サービス／サーバ]テーブルに定義されているサーバ／サービス名。サービス名が指定された場合、そのサービスに対応するサーバからのリクエストがブロックされます。

  • エントリ番号 …… 実行エンジンの内部番号を示す数値。ここで指定する実行エンジンは、RqRts関数で検索したもののいずれかでなければなりません（したがって、この関数は、RqRts 関数の後で呼び出さなければなりません）。

  • この値を「0」に設定した場合、全ての実行エンジンがブロックされます。

  • この値を「-1」に設定した場合、現在のエンジンがブロックされます。

  • Supervisor パスワード …… MGRB.INIファイルに設定されたPasswordSupervisorパラメータで設定されたパスワード

  • 全て …… 論理値

  • True …… 全てのリクエストがブロックされます。

  • False …… 外部のリクエストのみブロックされます。

  • シャットダウン …… 論理型。Trueが設定されるとエンジンに誰もアクセスしていない場合に終了するようになります。
    RIAアプリケーションをアップグレードするには、現在の実行エンジンに新規ユーザがアクセスできない状態で、現在利用中のユーザのみ継続して使用できるようにします。新しいエンジンは、アップグレードされたアプリケーションを実行し、新規のユーザを受け付けるようにします。
    このパラメータは、サーバを誰も使用していない状態になるまでシャットダウンしないように指定することができます。

戻り値：

論理値 …… アプリケーションサーバがブロックされたり、必要な状態の場合は「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関数によってロック状態が解除されます。

関連トピック：

アプリケーションサーバとして動作

実行エンジンがMRB のリクエストを受けないようするするには


関数ディレクトリ RqRtCtx

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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

リクエスタの実行エンジンに関する情報

MRBによって起動された実行エンジンの情報を取得します。

構文：

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｣ と設定されている場合、ライセンスの内容に基づいた最大利用可能数を返します。

  • 平均リクエスト時間 …… リクエストがアプリケーションサーバによって処理された平均時間（秒数）。

  • 処理リクエスト数 …… 処理されたリクエストの数

  • 実行ユーザ数…… （RIAライセンスを使用した場合の)実行中のユーザ数

  • 最大ユーザ数…… （RIAライセンスを使用した場合の)現在までに実行されたユーザ数の最大値

  • 利用可ユーザ数…… （RIAライセンスを使用した場合の)使用可能な最大ユーザ数

例：

RqRtInf('Data Server',BA)

変数項目BA に格納されている実行エンジン番号を使用して、その実行エンジンに関する情報が取り出されます。この実行エンジン番号は、RqRts 関数で返ったものです。

注意事項：

サービス名や実行エンジン番号が無効の場合、空白の文字列が返ります。


関数ディレクトリ RqRtResume

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > RqRtResume

RqRtResume

リクエストのブロックを解除

サーバのリクエスト処理を受け付けるようにします。

構文：

RqRtResume (サーバ/サービス名, 実行エンジン番号, Supervisor パスワード)

パラメータ：

  • サーバ/サービス名 …… [サービス／サーバ]テーブルに定義されているサーバ／サービス名。サービス名が指定された場合、そのサービスに対応するサーバからのリクエストがブロックされます。

  • エントリ番号 …… 実行エンジンの内部番号を示す数値。ここで指定する実行エンジンは、RqRts関数で検索したもののいずれかでなければなりません（したがって、この関数は、RqRts 関数の後で呼び出さなければなりません）。

  • この値を「0」に設定した場合、全ての実行エンジンが解除されます。

  • この値を「-1」に設定した場合、現在のエンジンが解除されます。

  • Supervisor パスワード …… MGRB.INIファイルに設定されたPasswordSupervisorパラメータで設定されたパスワード

戻り値：

論理値 …… アプリケーションサーバのブロックが解除されたり、必要な状態の場合は「True」が返ります。解除できなかった場合は「False」が返ります。

サービス名やエンジン番号が正しくない場合は、この関数は失敗します。また、Supervisorパスワードが正しくない場合も失敗します。

例：

RqRtResume ('Default Broker', BA, 'Secret')

変数項目「BA」には、エンジン番号が一時的に保存されているものとします。この番号は、RqRts関数で取得します。

関連トピック：

RqRtBlock

アプリケーションサーバとして動作

実行エンジンがMRB のリクエストを受けないようするするには


関数ディレクトリ RqRts

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > RqRts

RqRts

リクエスタの実行エンジン数

MRBによって起動された実行エンジンの数を取得します。

構文：

RqRts (サービス/サーバ名,Supervisorパスワード)

パラメータ：

  • サービス/サーバ名 …… [サービス／サーバ]テーブルに登録されているサーバ／サービス名

  • Supervisor パスワード …… MGRB.INIファイルに設定されたPasswordSupervisorパラメータで設定されたパスワード

戻り値：

数値 …… 指定したサービスに登録されている実行エンジンの数。サービスを指定しなかった時には、MRBに登録されている実行エンジンの合計数が返ります。

例：

RqRts('Data Server', 'Secret')


関数ディレクトリ RqRtTrm

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > RqRtTrm

RqRtTrm

実行エンジンを終了

MRBによって起動された実行エンジンを終了させます。同一MRBが管理する全ての実行エンジンを終了させることもできます。

構文：

RqRtTrm(サービス/サーバ名,実行エンジン番号,Supervisorパスワード)

パラメータ：

  • サービス/サーバ名 …… [サービス／サーバ]テーブルに登録されているサーバ／サービス名

  • 実行エンジン番号 …… 実行エンジンの内部番号を示す数値。ここで指定する実行エンジンは、RqRts 関数で返ったもののいずれかでなければなりません。「0」を指定すると、全ての実行エンジンが終了します。

  • Supervisor パスワード …… MGRB.INIファイルに設定されたPasswordSupervisorパラメータで設定されたパスワード

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例：

RqRtTrm('Default Broker',BA,'Secret')

数値型の変数項目BA に格納されている実行エンジン番号を使用して処理が行われます。この実行エンジン番号は、RqRts 関数で返った値です。

注意事項：

サービス名や実行エンジン番号が無効な場合、処理に失敗し「False」が返ります。また、パスワードがSupervisorパスワードでない場合も、処理に失敗します。

関連トピック：

RqRtTrmEx


関数ディレクトリ 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

リクエストの状態

特定のリクエストのステータスを取得します。

構文：

RqStat (サービス/サーバ名,リクエストID,Supervisorパスワード)

パラメータ：

  • サービス/サーバ名 …… [サービス／サーバ]テーブルに定義されているサーバ／サービス名

  • リクエストID …… [コールリモート]処理コマンドによって返されたリクエストID

  • Supervisor パスワード …… MGRB.INIファイルに設定されたPasswordSupervisorパラメータで設定されたパスワード

戻り値：

リクエストのステータスを表す数値

  • 0 …… 検出不可

  • 1 …… 待機中

  • 2 …… 実行中

  • 3 …… 完了

  • 4 …… 失敗

  • 5 …… クリア


関数ディレクトリ RqTrmTimeout

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > RqTrmTimeout

RqTrmTimeout

サーバ終了時間 サーバ終了までの残りの時間(秒数)を取得します。
構文： | RqTrmTimeout()
パラメータ： | なし
戻り値： | 数値 …… サーバ終了までの残りの時間を秒数で返します。サーバが終了しない場合は、「0」が返ります。
例： | サーバエンジンが終了するまで残り30秒の場合、「30」が返ります。


関数ディレクトリ RTrim

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > RTrim

RTrim

文字列の右側にある空白を削除

文字列の右側の空白を削除します。

構文：

RTrim(文字列)

パラメータ：

  • 文字列 …… 空白の削除を行う文字列

戻り値：

空白の削除後の文字列

例：

Rtrim('John ')

'John'が返ります。

関連トピック：

LTrim, Trim


関数ディレクトリ RunMode

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > RunMode

RunMode

実行モードに対応する数値コード

エンジンの実行モードに対応する数値コードを取得します。

構文：

RunMode()

パラメータ：

なし

戻り値：

実行モードを表す数値

  • -1 …… 最初にメインプログラムが実行された場合
    プロジェクトがクローズされ、他のプロジェクトが最初のコンテキストでオープンされた場合
    プロジェクトがマルチスレッドで最初にオープンされた場合
    （サブタスクや、サブプログラムで実行された場合は、0 になる。）

  • 0 …… プログラムが実行版で動作しており、フォアグラウンドまたはバックグラウンドで動作している場合
    開発エンジンがバックグラウンドで動作している場合

  • 1 …… アプリケーションがユーザ定義開発メニューから起動されている場合

  • 2 …… プログラムが開発版で動作しており、プロジェクトが実行モードに切り替わった場合

  • 3 …… プログラムが開発版で動作しており、[プログラム]リポジトリ上から実行されている場合

関連トピック：

初期設定のプログラムを省略するには


関数ディレクトリ Second

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Second

Second

時刻の秒の値

時刻の秒数値を取得します。

構文：

Second(時刻)

パラメータ：

  • 時刻 …… 時刻または時刻式

戻り値：

数値（0～59）

例：

Second('12:15:48'TIME)

48 が返ります。

A の値が'12:15:48'TIMEの場合、Second(A)+ 2 では50 が返ります。

関連トピック：

Minute, Hour

指定された時刻の時/分/秒の各部分を取得するには


ServerFileToClient

ファイルをコピーする

リッチクライアントのサーバ側からクライアントのキャッシュフォルダに指定されたファイルをコピーします。

構文：

ServerFileToClient(ファイル名)

パラメータ：

  • ファイル名 …… サーバ側のファイルの名前。パスが指定されなかったり相対パスが指定された場合、アプリケーションのフォルダがカレントとして扱われます。

ワイルドカードやフォルダ名（末尾に'\'を設定）を指定することで、クライアントに複数のファイルを送ることができます（サポートバージョン：2.4）。フォルダを指定した場合は、フォルダ内のファイルだけで、サブフォルダはコピーされません。

戻り値：

文字型 …… コピーされたクライアント側のファイル名。サーバ側のパス名をもとにした名前になるため、変数項目に保存する場合はデータ長を長く定義してください。

（ファイルが見つからないなどの）エラ－が発生した場合、空白が返ります。

パス名やファイル名の「\」や「:」は、「_（アンダーバー）」に変換されます。

例：

ServerFileToClient ('c:\images\my.bmp')

my.bmpファイルをサーバ側のC:\imageフォルダからクライアント側にコピーし、コピー先のフォルダ名+ファイル名を返します。

利用目的：

  • サーバ上の非公開フォルダ上のイメージまたはPDFファイルを表示させたい場合

  • サーバからクライアントへファイルをコピーしたい場合

  • .NETメソッドにサーバリソースを渡したい場合

注意事項：

  • この関数は、リッチクライアントタスク､またはリッチクライアントとして使用するメインプログラムでのみ有効です。

  • ファイルをクライアントへコピーする前に、関数はサーバ上のファイルがクライアント側のキャッシュ内のファイルより新しいかどうか調べるために、リクエストを送ります。ファイルが同じタイムスタンプの場合、関数はファイルをクライアントにコピーしません。

  • 関数が呼び出される度にタイムスタンプの確認を行うため、クライアントに同じファイルを何度も送ろうとすると、低帯域幅のネットワークではパフォーマンスの低下につながるかもしれません。このため、関数は1回だけ実行し、ワイルドカードやフォルダ名を使用することを推奨します。この場合、タイムスタンプのチェックは、1つのリクエストに対して全てのファイルで行われます。更新されたファイルは、個別のリクエストを使用して、後で読み込まれます。

  • Windowsクライアントの場合、キャッシュフォルダは、%TEMP%\MagicxpaRIACache\(ServerName) です。

  • 接続中のデータベースファイルをコピーしようとすると失敗します。DbDiscnt関数やClientDbDiscnt関数を実行して対応するデータベースを予め切断するようにしてください。

モバイル仕様：

  • この関数は、モバイル用の代替イメージを検索するメカニズムを利用して、サーバからクライアントにファイルをコピーします。

  • クライアントがモバイルの場合、Unicodeの名前はサポートされません。

関連トピック：

ClientFileToServer

サーバとクライアントの間でファイル転送を行うには


ServerLastAccessStatus

サーバへの最後のアクセス状態

サーバに最後にアクセスしたときの状態を返します。

構文：

ServerLastAccessStatus()

パラメータ：

なし

戻り値：

数値

  • 0 …… 成功

  • 1…… メタデータファイルが同期していない

  • 2…… サーバは、利用できません（起動時の場合や、リトライ確認のダイアログでユーザが'N'をクリックしたため)。

  • 3…… サーバは、リクエストを処理できません（ライセンスエラーのようなサーバエラーのため)

  • 4…… コンテキストは、利用できません

  • 5…… Magic xpa Studioで、リクエストを処理できません（Magic xpa Studioがオンラインモードで起動しているか、アプリケーションがオフラインのモードで開始している場合)。

  • 6……ConnectOnStartupの特性がNに設定されているためにクライアントがサーバへの接続をスキップした場合。

用途：

この関数は以下のように使用することができます。

  • ［コール］処理コマンドが失敗した後でメッセージを表示するような場合

  • ［無効サーバ］イベントでユーザに問題発生を通知する場合

注意事項：

  • 戻り値は、次のサーバアクセスが実行されるまで残ります。

  • メタデータが同期しない場合、将来のサーバアクセスは無視されるため、関数は常に同じエラーコードを返します。

サポートバージョン：

2.4


関数ディレクトリ SetBufCnvParam

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > SetBufCnvParam

SetBufCnvParam

変換パラメータの設定

バッファ間のデータの読み書きでの変換方法を定義するためのパラメータを設定します。

構文：

SetBufCnvParam (変換パラメータ名, 変換パラメータ値)

パラメータ：

  • 変換パラメータ名 …… 変換パラメータの名前を表す文字列（以下の表を参照）

  • 変換パラメータ値 …… 変換値

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

パラメータ名や値が間違っていたりすると失敗します。

パラメータ名

説明

型

デフォルト

Low-Hi

数値が Windowsの標準の文字での昇順または降順、UNIXの標準の文字での昇順または降順で読み書きを行うことを示します。

論理型

True

Encoding

文字データに対するエンコードのタイプ

  • 1 …… ANSI

  • 2 …… EBCDIC

  • 3 …… UNICODE

数値型

1

Code Page

UnicodeかEBCDICでエンコードする場合に使用します。

数値型

なし


関数ディレクトリ SetContextFocus

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > SetContextFocus

SetContextFocus

コンテキストフォーカスの設定

与えられたコンテキストの現在のウィンドウにフォーカスを設定します。

構文：

SetContextFocus (コンテキスト名)

パラメータ：

  • コンテキスト名（文字） …… コンテキスト名を表す文字列

戻り値：

論理値 …… コンテキストが存在し、フォーカスがそのコンテキストに切り替わった場合「true」が返ります。

例：

SetContextFocus('Property Sheet')

「Property Sheet」という名前のコンテキストのウィンドウにフォーカスが設定されます。

注意事項：

  • コンテキストが存在している場合、フォーカスは実行中のコンテキストの現在のプログラムに切り替わります。

  • フォーカスが設定できない場合、（例えば他のコンテキストがモーダルウィンドウを開いている場合）関数の処理は失敗します。

  • コンテキストプログラムがウィンドウを持っていない場合、現在のウィンドウがそのまま残っているように表示され、他のウィンドウにフォーカスは移りません。

  • コンテキストが存在している場合、関数は常に「True」を返します。

  • コンテキストが存在していない場合、フォーカスは修正されず、関数は「False」を返します。

  • 起動されたプログラムにCtxSetName関数が定義されている場合、SetContextFocus関数は動作しません。従って、

    • 起動されたプログラム内でCtxSetName関数を実行させることで、プログラムにフォーカスが移ります。

    • この場合、コンテキスト名は、起動されたプログラムのコンテキストIDを指定します。

例外：

リッチクライアントタスクではサポートされません。

関連トピック：

CtxSetName


関数ディレクトリ SetCrsr

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > SetCrsr

SetCrsr

カーソル形状の指定

カーソル形状を変更します。この関数 は［アクション］処理コマンドによって起動されます。

構文：

SetCrsr(番号)

パラメータ：

  • 番号 …… カーソル形状を指定する以下の数値

  • 1 …… 標準の矢印

  • 2 …… 砂時計

  • 3 …… 手

  • 4 …… 標準の矢印と砂時計

  • 5 …… 十文字

  • 6 …… 矢印とクエスチョンマーク

  • 7 …… I ビーム

  • 8 …… 禁止

  • 9 …… 四方向矢印

  • 10 …… 斜め両方矢印（左下がり）

  • 11 …… 上下両方矢印

  • 12 …… 斜め両方向矢印（右下がり）

  • 13 …… 左右両方向矢印

  • 14 …… 上向き矢印

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

注意事項：

  • Windows 以外のプラットフォームでは常に「False」が返ります。また、パラメータが1～14 以外の値の時にも「False 」が返ります。

  • クライアント側で実行される場合だけ有効になります。

  • この関数を使用しなくても、アプリケーションがビジー状態になると自動的にスピナーが表示されますs

モバイル仕様：

この関数は、スピナーイメージを表示するために使用されます。例えば、実行時間が長いバッチまたは非インタラクティブなタスクを呼び出す前に実行させることができます。

パラメータは、"1"と"2"の値だけがサポートされます。

  • 1 …… スピナーイメージは表示されなくなります（デフォルト)。

  • 2…… スピナーイメージが表示されます。一旦、スピナーが表示されると、ユーザインタフェースは停止され、ユーザは何もすることができません。ユーザにコントロールを返すために、SetCrsr(1)を実行してスピナーを解除する必要があります。

関連トピック：

マウスカーソルのアイコンを変更するには


関数ディレクトリ SetLang

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > SetLang

SetLang

使用する言語を設定

使用する言語を設定します。ここで指定した言語変換ファイルを使用してMLS機能が動作します。

構文：

SetLang(文字列)

パラメータ：

  • 文字列 …… ［言語］テーブルに定義されている言語名を指定します。空白の場合、設定が解除されます。

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例：

SetLang('French')

関連トピック：

GetLang

アプリケーションを別の言語用に変換するには


関数ディレクトリ SetParam

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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’)を実行することで、同じ式を使用する代わりにメモリ内のこの値を取り出して日付型項目に設定することができます。

これは、２つのグローバルパラメータ間でデータのやり取りをする新しい方法です。

SetParam ('*','')

コンテキスト内のすべての既存のパラメータを消去します。

関連トピック：

GetParam


SetWindowFocus

ウィンドウフォーカスの設定

フォーカスをウィンドウリスト内の別のウィンドウに移します。

ここでの「ウィンドウ名」とは、[フォーム]エディタで、[ウィンドウメニューに表示]特性が「Yes」に設定されたフォーム名を意味します。

Magic xpa以外のアプリケーションのウィンドウ名を指定することで、そのアプリケーションにフォーカスを移すこともできます。

構文：

SetWindowFocus (ウィンドウ名)

パラメータ：

  • ウィンドウ名 …… ウィンドウ名を表す文字列

戻り値：

論理値 …… 指定されたウィンドウが存在する場合、「True」が返ります。

例：

SetWindowFocus('Customer Transaction')

注意事項：

  • 実行中に、ウィンドウが存在していない場合(、[ウィンドウメニューに表示]特性が「Yes」に設定されているフォーム名前が存在していなか、空白になっているか、NULLの場合)、フォーカスは現在のウィンドウの上に残り、「False」が返ります。

  • 関数がMagicウィンドウで使用される場合は、ウィンドウ名はフォーム名と同じになります。オンラインフォームでは、［ウィンドウ一覧に表示］特性が「Yes」に設定されたフォームでのみ有効です。

例外：

リッチクライアントタスクではサポートされません。

モバイル仕様：

モバイル環境ではサポートされません。

サポートバージョン：

2.3


関数ディレクトリ SharedValGet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > SharedValGet

SharedValGet

共有値の取得

指定された名前に対応した共有値を取得します。共有値は、Magic xpaのメモリ上に格納されます。一度作成されると、この値は全てのコンテキストで参照することができます。

構文：

SharedValGet(名前)

パラメータ：

  • 名前 …… 共有値の名前

戻り値：

定義された名前によって共有された値を返します。

戻り値の型は、SharedValueSet 関数によって設定された値の型によって決まります。共有値が存在しない場合は、NULL 値を返します。

例：

SharedValGet('RATIO')

共有値名'RATIO'を基に値を返します。

関連トピック：

SetParam,GetParam


SharedValGetAttr

共有値のデータ型の取得

（SharedValSet関数で設定された)共有値のデータ型を返します。

構文：

SharedValGetAttr(名前)

パラメータ：

  • 名前 …… 共有値の名前

戻り値：

共有値のデータ型を表す文字列

例：

SharedValGetAttr（'myparam')

共有値「myparam」のデータ型がUnicodeの場合'U'を返します。

関連トピック：

SharedValGet, SharedValGetNames

サポートバージョン：

2.3


SharedValGetNames

共有値の名前の取得 （SharedValSet関数で設定された)共有値の名前を返します。
構文： | SharedValGetNames()
パラメータ： | なし
戻り値： | 文字型ベクトル …… 共有値の名前を含むベクトルデータ
関連トピック： | SharedValGet, SharedValGetAttr

サポートバージョン：

2.3


関数ディレクトリ SharedValPack

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > SharedValPack

SharedValPack

共有値のパッケージ化 SharedValSet関数によって設定され共有化された値のコレクションをBLOB項目内にパッケージ化します。パッケージ化された内容は、SharedValUnpack関数で元の値に戻すことができます。
構文： | SharedValPack()
パラメータ： | なし
戻り値： | BLOB値 …… 共有データの集まりをパッケージ化したものです。


関数ディレクトリ SharedValSet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > SharedValSet

SharedValSet

共有値の作成

Magic xpaのメモリ上に格納される共有値を作成します。一度作成されると、この値は全てのコンテキストで参照することができます。

構文：

SharedValSet(名前, 値)

パラメータ：

  • 名前 …… 共有値の名前

  • 値 …… 設定する値

戻り値：

論理値 …… 常に「True」 が返ります。

例：

SharedValSet('RATIO', 0.34)

'RATIO' という名前で共有できる 数値 0.34 を作成します。

注意事項：

共有値は、共有名を基に SharedValGet 関数で取得できます。

関連トピック：

GetParam、SetParam


関数ディレクトリ SharedValUnpack

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > SharedValUnPack

SharedValUnPack

共有値の取得

SharedValPack関数を使用して作成されたBLOB値から、SharedValGet関数によって作成された共有値を作成します。

構文：

SharedValUnPack(パッケージ)

パラメータ：

  • パッケージ …… SharedValPack関数で作成されたBLOB値

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。


関数ディレクトリ SIN

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > SIN

SIN

正弦（サイン）三角関数

角度の正弦(サイン)を取得します。角度はラジアンで指定します。

構文：

SIN(ラジアン)

パラメータ：

  • ラジアン …… 角度を示すラジアン

戻り値：

正弦値（サイン）

例：

SIN(0.7854)

0.70711 が返ります。

関連トピック：

ASIN, ACOS, ATAN, COS, TAN


関数ディレクトリ SNMPNotify

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > SNMPNotify

SNMPNotify

SNMPメッセージの送信

アプリケーショントラップメッセージを NMS(Network Management Station) に送信します。

構文：

SNMPNotify(メッセージ、重要度)

パラメータ：

  • メッセージ …… 文字列

  • 重要度 …… 1 ( 最も高い) から 3 までの数値

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。メッセージがNMSに送信できない場合は、「False」が返ります。

例：

SNMPNotify('The transaction failed',1)

'Transaction faile' というメッセージを SNMP で送信します。

注意事項：

この関数は、アプリケーションのエラーメッセージ用です。

例外：

リッチクライアントタスクではサポートされません。


関数ディレクトリ SortAdd

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > SortAdd

SortAdd

ソート条件の追加

ソート条件を追加し、ビューを再表示します。この関数によって定義された条件がタスクのソート定義に置き換わります。

構文：

SortAdd (項目, 昇順)

パラメータ：

  • 項目 …… 参照する項目。VARリテラルが必要です。BLOB、OLE、ActiveX、ベクトルと.NET型の項目は、サポートされません。

  • 昇順 …… 論理値

  • True …… 昇順

  • False …… 降順

戻り値：

論理値 …… 処理結果が返ります。

  • True …… ソート条件が更新されました。

  • False …… （項目指定が間違っているなどの）不正な条件です。

注意事項：

  • この関数は、複数のソート条件を追加するために使用されると、ビューが再表示されると、条件に従ってソート処理が実行されます。

  • 項目の名前はデータビュー内でユニークにする必要があります。

  • SortAdd関数によってソート条件が追加された場合、［ビュー再表示］イベントの［ユーザソートの保持再］パラメータの値は無視されます。

  • 親タスクの項目を指定することで、関連したタスクのソート条件が更新されます。

  • この関数は、複数の項目に対するソート処理の実行を行うために、複数回使用することができます。

関連トピック：

SortReset

サポートバージョン：

2.5

ローカルデータをサポートしました。


関数ディレクトリ SortReset

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > SortReset

SortReset

ソート条件のリセット

ソート条件をリセットし、ビューを再表示します。これにより、タスクに定義された範囲条件が使用されます。

構文：

SortReset (世代番号)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。タスク自身を、1 はそのすぐ上位の親タスクを指定し、以下同様です。

戻り値：

論理値 …… 処理結果が返ります。

  • True …… ソート条件が更新されました。

  • False …… （指定された世代のタスクが存在しないなどのため）エラーが発生しました。

注意事項：

  • この関数がソート条件のリセットに使用された場合、ビューが再表示されると、タスクのソート条件に基づいてソート処理が実行されます。

  • 関数は、SortAdd関数によって追加された範囲指定だけでなく、Ctrl+Tによるソート指定もリセットされます。

関連トピック：

SortAdd

サポートバージョン：

2.5

ローカルデータをサポートしました。


関数ディレクトリ SoundX

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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コード）では動作しません。


関数ディレクトリ Stat

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Stat

Stat

タスクの処理モードのチェック

現在実行中のタスクの実行モード(照会、修正など)を確認します。

構文：

Stat(世代番号,モード)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

  • モード …… 確認する処理モードの頭文字を表す文字。MODEリテラルを指定してください。

  • 'C'MODE …… 登録モード

  • 'M'MODE …… 修正モード

  • 'Q'MODE …… 照会モード

  • 'D'MODE …… 削除モード

戻り値：

論理値

  • True …… 指定した処理モードが正しい場合

  • False …… 処理モードが合っていない場合

例：

現在のタスクのモードが登録モードまたは修正モードの場合、Stat（0,'CM'MODE）では、「True」 が返ります。

注意事項：

  • 削除（'D'MODE）モードは、[レコード後]でのみチェックが可能です。

  • ハンドラの[有効]欄に指定された場合、指定したタスクのモードではなく、イベントが実行されたタスクのモードで判断されます。

関連トピック：

リテラル


関数ディレクトリ StatusBarSetText

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > StatusBarSetText

StatusBarSetText

Magic xpaのステータスバーにテキストを設定する

Magic xpaのステータスバーに、指定したテキストを表示させます。

構文：

StatusBarSetText(文字列)

パラメータ：

  • 文字列 …… ステータスバーに設定する文字列。文字型、Unicode型、BLOB型（[内容]特性が「ANSI」か「Unicode」）

戻り値：

文字列 …… この関数によって以前に設定されたステータステキストの内容が返ります。

注意事項：

起動元のタスクのステータスバーにテキストが設定されていても、新規の各コンテキストのステータスバーは空白になっています。

関連トピック：

ステータスバーにテキストを設定するには


関数ディレクトリ Str

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Str

Str

数値を文字列に変換

数値を文字列に変換します。

構文：

Str(数値,書式)

パラメータ：

  • 数値 …… この数値が文字列に変換されます。

  • 書式 …… この書式に従って数値が文字列に変換されます。

戻り値：

変換された文字列

例：

Str(45.12,'##.#')

'45.1'が返ります。

注意事項：

この関数では書式を指定しますので、数値によっては四捨五入されることもあります。例えば、Str（39.999,'##.##'）では'40.00'が返ります。

関連トピック：

Val


関数ディレクトリ StrBuild

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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

文字列のトークン

区切り文字で区切られている文字列のトークンを取得します。

構文：

StrToken(ソース文字列,トークンインデックス,区切文字列)

パラメータ：

  • ソース文字列 …… 複数の文字列で構成される文字列。区切文字で区切られ、トークンが置かれています。

  • トークンインデックス …… 取り出したいトークンで、その位置をインデックス（順番を示す番号）で指定します。

  • 区切文字列 …… 区切文字の文字列。1文字以上の文字列を指定できます。

戻り値：

文字列（トークン） …… トークンが見つからなかった場合は、空白が返ります。

例：

StrToken(A,2,',')

Aが'abcd,cdef,ghik,lmnp'の時、'cdef'が返ります。

注意事項：

  • ソース文字列は、文字型、Unicode型または、RTFのBLOB型が使用できます。

  • トークンインデックスが1で、区切文字がNULLの場合や、区切文字が見つからなかった場合、ソース文字列が返ります。

  • トークンインデックスが1より大きく、区切文字が見つからなかった場合は（区切文字がNULL、インデックスが範囲外、区切文字が存在しないなど）、空の文字列が返ります。

  • 区切文字はそれぞれ、インデックスの処理の際に個別にカウントされます（繰り返して処理されることはありません）。

  • スペースは区切文字には使用できません。

関連トピック：

StrTokenCnt,StrTokenIdx


関数ディレクトリ StrTokenCnt

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > StrTokenCnt

StrTokenCnt

トークン数

区切り文字で区切られている文字列のトークン数を取得します。

構文：

StrTokenCnt(ソース文字列、区切文字列)

パラメータ：

  • ソース文字列 …… 複数の文字列で構成される文字列。区切文字で区切られ、トークンが置かれています。

  • 区切文字列 …… 区切文字の文字列。1文字以上の文字列を指定できます。

戻り値：

数値 …… 区切り文字によって区切られるソース文字列内にあるトークンの数。区切り文字が見つからない場合は、1 が返ります。

例：

StrTokenCnt('abcd\cdef\ghik\lmnp','\')

4が返ります。

注意事項：

  • ソース文字列は、文字型、Unicode型または、RTFのBLOB型が使用できます。

  • スペースは、区切文字として使用できません。

関連トピック：

StrToken,StrTokenIdx


関数ディレクトリ StrTokenIdx

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > StrTokenIdx

StrTokenIdx

トークンインデックス

区切り文字で区切られている文字列内のトークンインデックスを取得します。

構文：

StrTokenIdx (ソース文字列、トークン文字列、区切文字列)

パラメータ：

  • ソース文字列 …… 複数の文字列で構成される文字列。区切文字で区切られ、トークンが置かれています。

  • トークン文字列 …… 検索する文字列

  • 区切文字列 …… 区切文字の文字列。1文字以上の文字列を指定できます。

戻り値：

数値 …… 指定された区切り文字で区切られた文字列の位置する番号。トークン文字列が見つからない場合は、 0 が返ります。

例：

StrTokenIdx('AA,BB,CC,DD','CC','','')

3 が返ります。

注意事項：

  • ソース文字列は、文字型、Unicode型または、RTFのBLOB型が使用できます。

  • スペースは、区切文字として使用できません。

関連トピック：

StrToken,StrTokenCnt


関数ディレクトリ SubformExecMode

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > SubformExecMode

SubformExecMode

サブフォームの実行モード

サブフォームの実行モードを取得します。この情報は、サブフォームのロジックを実行時のモードによって切り替える必要がある場合に使用します。

構文：

SubformExecMode(世代番号)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

数値 …… 実行モードを表す数値。以下の値が返ります。

  • -1 …… タスクは、サブフォームとして実行していない場合

  • 0 …… フォーカスを設定することでサブフォーム内のタスクが実行された場合

  • 1 …… サブフォーム内のタスクが初めて実行された場合

  • 2 …… [自動再表示]特性や[サブフォーム再表示]イベントによってタスクが起動された場合

例：

SubformExecMode(0)

もしサブフォームが初めて現在のタスクで起動された場合、「1」が返ります。

関連トピック：

サブフォーム上のコントロールから親のコントロールに自動的に戻るには

最初にサブフォームタスクが起動されたときのみタスク前/後を実行させるには

ユーザがサブフォームに入ると常にタスク前/後が実行されるようにするには

サブフォームが再表示されたときにサブタスクのタスク前/後を実行させるには


関数ディレクトリ TAN

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > TAN

TAN

正接（タンジェント）三角関数

角度の正接（タンジェント）を取得します。角度はラジアンで指定します。

構文：

TAN(ラジアン)

パラメータ：

  • ラジアン …… 角度で、ラジアンで指定します。

戻り値：

数値 …… 正接値

例：

TAN(0.7853981634)

1 が返ります。

関連トピック：

ASIN, ACOS, ATAN, SIN, COS


関数ディレクトリ TaskID

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > TaskID

TaskID

タスクIDの取得

実行中のタスクのタスクIDを取得します。

構文：

TaskID (世代番号)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値：

文字列 …… タスクIDを表す文字列。世代番号で指定されたタスクが存在しない場合、NULLが返ります。

例：

TaskID(0)

現在実行中のプログラムのタスクIDが「TSK_A12」の場合、「TSK_A12」が返ります。

参照

PublicName,タスクID


関数ディレクトリ TaskInstance

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > TaskInstance

TaskInstance

タスクのインスタンス番号

指定されたタスクに対するユニークな番号をインスタンス番号として取得します。

タスクが呼び出されるたびに、新しいインスタンス番号が返ります。

構文：

TaskInstance (世代番号)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。タスク自身を、1 はそのすぐ上位の親タスクを指定し、以下同様です。

戻り値：

数値…… タスクのインスタンス番号が返ります。タスクが実行される度に、カウントアップされます。指定された世代のタスクが存在しない場合は、0が返ります。

関連トピック：

TaskID


関数ディレクトリ TaskTypeGet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > TaskTypeGet

TaskTypeGet

タスクのタイプ

タスクの［タスクタイプ］特性の設定値を取得します。

構文：

TaskTypeGet (世代番号)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。タスク自身を、1 はそのすぐ上位の親タスクを指定し、以下同様です。

戻り値：

文字列 …… タスクタイプのコードが返ります。

  • O …… オンライン

  • B …… バッチ

  • C …… リッチクライアント

  • R …… ブラウザクライアント

  • M …… メインプログラム

  • MC …… リッチクライアントでのメインプログラム

使用目的：

  • エラーがオンラインまたはバッチタスクから発生した場合、異なる処理を実行するロジックユニットを定義することができます。

  • リッチクライアントとオンライン用のロジックをメインプログラムに定義している場合、起動元のタスクタイプに基づいた処理を定義することができます。

関連トピック：

TaskID

同じロジックユニット内で実行されるロジックをタスクタイプによって切り替えるには


関数ディレクトリ TDepth

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > TDepth

TDepth

タスクの深さ 現在のタスクのネスト情報を取得します。
構文： | TDepth()
パラメータ： | なし
戻り値： | 数値（1～256） …… 現在のタスクに対するタスク階層上の深さを示します。
例： | Depth()では、現在のタスクがメインプログラムから呼び出されている場合、1 が返ります。
関連トピック： | Level


関数ディレクトリ Term

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Term

Term

端末番号 [動作環境]ダイアログの[端末番号]パラメータに指定されている値を取得します。
構文： | Term()
パラメータ： | なし
戻り値： | 数値 …… 端末番号
注意事項： | マルチユーザ環境では、Term関数を使用して単一の端末番号を指定することができます。その場合、各ユーザごとに、MAGIC.INI ファイルの[Terminal]パラメータを設定することが必要です。この設定は、別個のMAGIC.INI ファイルを用意したり、コマンドラインを使用して指定することもできます。
関連トピック： | INIGet, INIPut, User


関数ディレクトリ Text

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Text

Text

バックグラウンドモードの確認

Magicクライアント/サーバ環境で使用している場合、サーバがバックグラウンドモードで動作しているかどうかを確認します。

構文：

Text()

パラメータ：

なし

戻り値：

論理値

  • True …… バックグラウンドモードの場合

  • False …… バックグラウンドモードでない場合

例外：

リッチクライアントタスクではサポートされません。


関数ディレクトリ THIS

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > THIS

THIS

イベントが発生したデータ項目のシンボル名またはタスクの階層 イベントが発生したデータ項目のインデックスまたはタスクの階層を取得します。この関数は独自で使用せず、下記に挙げるデータ項目関連の関数またはタスク世代関連の関数の引数として使用されます。 発生したイベントは、上位レベルタスクのハンドラが処理できます。この場合、ハンドラのタスクレベルより下のデータビューと実行ツリーは使用できません。 データ項目関連の関数（VarAttr、VarCurr、VarMod、VarName、VarPrev、VarSet）では、この関数の戻り値は、イベントが発生したデータ項目のインデックスを表します。 世代関連の関数（CHeight、CLeft、CLeftMDI、Counter、CTop、CTopMDI、CWidth、DbCache、EOF、EOP、LastPark、Level、Line、Page、Stat、TaskTypeGet、ViewMod、WINBox、WINHWND）では、この関数の戻り値は、イベントが発生したタスクの階層の位置を表します。
構文： | THIS()
パラメータ： | なし
戻り値： | イベントが発生したデータ項目のインデックスまたはタスクの階層
例： | VarCurr(THIS())
 | イベントが発生した項目の値が返ります。
 | Stat(THIS(),'C'MODE)
 | イベントが発生したタスクが登録モードの時「True」が返ります。
例外： | この関数は、上記で挙げられていない関数には適用できません。単独で使用することもできません。 他の算術関数や変換関数をこの関数の後に続けることはできません。


関数ディレクトリ Time

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Time

Time

システムの時刻 システムの時刻を取得します。
構文： | Time()
パラメータ： | なし
戻り値： | 時刻値 …… 現在の時刻(デフォルトの書式は、'HH:MM:SS')
例： | Time()で、17:08:42 が返る場合、Time()+5 では、システムの時刻に5 秒が加えられ、17:08:47 が返ります。
関連トピック： | Date, MDate UTCTime 現在の時刻を取得するには


関数ディレクトリ Translate

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Translate

Translate

論理名の変換

(ネストされた論理名を含めて)論理名に対応する実行名を取得します。 シークレット名は変換されません。

TransleteNR関数との違いは、指定された論理名が存在しない場合に、論理名以外を返すことです。

構文：

Translate(文字列)

パラメータ：

  • 文字列 …… 論理名（実際に指定した名前の前後に % を付加します。）

戻り値：

文字列 …… 実行名が返ります。

例：

Driver = 'C:' と登録されている場合

Translate('チェックドライブ %Driver%) → 'チェックドライブ C:'

Temp = '%Driver%\temp\''と登録されている場合

Translate('%Temp% が見つかりません') → 'C:\temp\ が見つかりません'

注意事項：

指定した論理名が見つからない場合は、戻り値から論理名が削除されます。

関連トピック：

TranslateNR


関数ディレクトリ TranslateNR

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > TranslateNR

TranslateNR

論理名の変換

論理名に対応する実行名を取得します。指定された論理名が存在しない場合は、論理名がそのまま返ります。 シークレット名は変換されません。

Translete関数との違いは、指定された論理名が存在しない場合に、論理名を文字列として返すことです。

構文：

TranslateNR(文字列)

パラメータ：

  • 文字列 …… 論理名（実際に指定した名前の前後に % を付加します。）

戻り値：

文字列 …… 実行名が返ります。

例：

Driver = 'C:' と登録されている場合

Translate('チェックドライブ %Driver%) → 'チェックドライブ C:'

Temp = '%Driver%temp\''と登録されている場合

Translate('%Temp% が見つかりません') → 'C:\temp\ が見つかりません'

注意事項：

指定した論理名が見つからない場合は、指定した文字列がそのまま返ります。

関連トピック：

Translate


関数ディレクトリ TransMode

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > TransMode

TransMode

トランザクション情報

現在アクティブなトランザクションのモードを取得します。

構文：

TransMode ()

パラメータ：

なし

戻り値：

文字 …… 以下の値が返ります。

  • D …… 遅延トランザクション

  • P …… 物理トランザクション

トランザクションがアクティブでない場合は、空白が返ります。

例外：

リッチクライアントタスクではサポートされません。


関数ディレクトリ TreeLevel

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > TreeLevel

TreeLevel

ツリーレベルの取得 データツリー上の選択されたノードの現在のレベルを取得します。
構文： | TreeLevel()
パラメータ： | なし
戻り値： | 選択されたノードのレベル
関連トピック： | ツリーを表示する際にノードを自動的に展開させるには


関数ディレクトリ TreeNodeGoto

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > TreeNodeGoto

TreeNodeGoto

ノードの移動

［ツリー］コントロールの指定されたノードIDにカーソルを移動します。

構文：

TreeNodeGoto (ノードID)

パラメータ：

  • ノードID …… ツリーのノードを表す値。書式は、データツリー用のID用項目に依存します。

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例：

TreeNodeGoto('A001')

ノードIDが'A001' のツリーに移動します。

注意事項：

  • ツリー内のノードが読み込まれた場合のみ、この関数は動作します。

  • ツリーは一連のレコードから構成されるため、TreeNodeGoto が使用されると現在のレコードを抜けて新しいレコードがオープンされることになります。

関連トピック：

特定のノードに移動するには


関数ディレクトリ TreeValue

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > TreeValue

TreeValue

ノードID

選択されたノードの現在のレベルによって決定されたノードIDを取得します。

構文：

TreeValue(ツリーレベル)

パラメータ：

  • ツリーレベル …… データツリーにおけるノードの階層上の位置を表す数値。 0 は現在のノード、 1はその親を表します。

戻り値：

ノードID


関数ディレクトリ Trim

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Trim

Trim

文字列の左右にある空白を削除

文字列の先頭と末尾の空白を削除します。

構文：

Trim(文字列)

パラメータ：

  • 文字列 …… 編集対象となる文字列

戻り値：

文字列 …… 空白削除後の文字列

例：

Trim(' abc ')

前後の空白が取り除かれ、'abc'が返ります。（アポストロフィを除きます。）

関連トピック：

LTrim, RTrim,SpecialTrimTrailingNulls


関数ディレクトリ TStr

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > TStr

TStr

時刻を文字列に変換

時刻型のデータを指定された書式で文字列に変換します。

構文：

TStr(時刻,書式)

パラメータ：

  • 時刻 …… 文字列に変換する時刻

  • 書式 …… この書式にしたがって時刻が文字列に変換されます。

戻り値：

時刻の変換後の文字列

例：

TStr ('14:30'TIME,'HH:MM PM')

'2:30 PM'が返ります。

注意事項：

書式が空白の場合は、"HH:MM:SS" と見なされます。

関連トピック：

TVal, DStr, DVal


関数ディレクトリ TVal

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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


関数ディレクトリ UDF

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > UDF

UDF

ユーザ定義関数の呼び出し

CDECL形式のユーザ定義関数を呼び出します。

構文：

UDF('モジュール名.関数名',[パラメータ])

パラメータ：

  • モジュール名 …… ユーザ定義関数が置かれている外部モジュールまたはプログラム。

  • 関数名 …… 呼び出す関数

  • パラメータ …… 呼び出すユーザ定義関数にパラメータが必要な場合に指定できます。パラメータは、最大で30 までカンマで区切って指定できます。

戻り値：

関数からの戻り値

注意事項：

  • UDF関数による呼び出しは、ユーザプロシージャの呼び出しと似ています。ただし、呼び出し方法は、プラットフォームによって異なります。詳しくは、使用しているプラットフォームのマニュアルを参照してください。

  • パラメータとして文字データを直接指定した場合、［動作環境］の[外部コードページ]で指定されたコードページに基づいて値がエンコードされます。このようなプログラムを使用する場合は、CodePage関数でコードページを「932」に設定するか、文字型変数項目を指定するか、UnicodeToANSI関数で変換する必要があります。

例外：

リッチクライアントタスクではサポートされません。


関数ディレクトリ UDFF

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > UDFF

UDFF

ユーザ定義関数の呼び出し（FASTCALL形式）

FASTCALL形式のユーザ定義関数を呼び出します。

構文：

UDFF('モジュール名.関数名',[パラメータ])

パラメータ：

  • モジュール名 …… ユーザ定義関数が置かれている外部モジュールまたはプログラム。

  • 関数名 …… 呼び出す関数

  • パラメータ …… 呼び出すユーザ定義関数にパラメータが必要な場合に指定できます。パラメータは、最大で30 までカンマで区切って指定できます。

戻り値：

関数からの戻り値

注意事項：

  • UDF関数による呼び出しは、ユーザプロシージャの呼び出しと似ています。ただし、呼び出し方法は、プラットフォームによって異なります。詳しくは、使用しているプラットフォームのマニュアルを参照してください。

  • パラメータとして文字データを直接指定した場合、［動作環境］の[外部コードページ]で指定されたコードページに基づいて値がエンコードされます。このようなプログラムを使用する場合は、CodePage関数でコードページを「932」に設定するか、文字型変数項目を指定するか、UnicodeToANSI関数で変換する必要があります。

例外：

リッチクライアントタスクではサポートされません。


関数ディレクトリ UDFS

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > UDFS

UDFS

ユーザ定義関数の呼び出し（STDCALL形式）

STDCALL形式のユーザ定義関数を呼び出します。

構文：

UDFS('モジュール名.関数名',[パラメータ])

パラメータ：

  • モジュール名 …… ユーザ定義関数が置かれている外部モジュールまたはプログラム。

  • 関数名 …… 呼び出す関数

  • パラメータ …… 呼び出すユーザ定義関数にパラメータが必要な場合に指定できます。パラメータは、最大で30 までカンマで区切って指定できます。

戻り値：

関数からの戻り値

注意事項：

  • UDF関数による呼び出しは、ユーザプロシージャの呼び出しと似ています。ただし、呼び出し方法は、プラットフォームによって異なります。詳しくは、使用しているプラットフォームのマニュアルを参照してください。

  • パラメータとして文字データを直接指定した場合、［動作環境］の[外部コードページ]で指定されたコードページに基づいて値がエンコードされます。このようなプログラムを使用する場合は、CodePage関数でコードページを「932」に設定するか、文字型変数項目を指定するか、UnicodeToANSI関数で変換する必要があります。

例外：

リッチクライアントタスクではサポートされません。


関数ディレクトリ UnicodeChr

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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

Unicodeの文字コードを文字に変換するには


関数ディレクトリ UnicodeFromANSI

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > UnicodeFromANSI

UnicodeFromANSI

ANSIをUnicodeに変換

指定されたコードページに基づいて、ANSI文字列をUnicode文字に変換します。

構文：

UnicodeFromANSI (ANSI 文字列, コードページ)

パラメータ：

  • ANSI 文字列（文字） …… ANSI文字を含む文字列

  • コードページ（数値） …… Unicodeに変換する際に使用されるコードページを表す数値。「0」が指定された場合、デフォルトのシステムコードページが使用されます。

戻り値：

Unicode文字列 … 変換されたUnicode文字列。コードページが正しくない場合やANSI文字列がNULLの場合、NULLが返ります。

関連トピック：

UnicodeToANSI

Unicodeのテキストファイルの作成/読み込みを行うには

ANSIとUnicode間でデータを変換するには


関数ディレクトリ UnicodeToANSI

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > UnicodeToANSI

UnicodeToANSI

UnicodeをANSIに変換

指定されたコードページに基づいて、Unicode文字列をANSI文字列に変換します。

構文：

UnicodeToANSI (Unicode文字列, コードページ)

パラメータ：

  • Unicode文字列（Unicode） …… Unicode文字を含む文字列

  • コードページ（数値） …… ANSIに変換する際に使用されるコードページを表す数値。「0」が指定された場合、デフォルトのシステムコードページが使用されます。

戻り値：

Unicode文字列 … 変換されたANSI文字列。コードページが正しくない場合やUnicode文字列がNULLの場合、NULLが返ります。

注意事項：

Unicode文字列内に指定されたコードページに含まれていない文字がある場合、変換処理時にスキップされます。

関連トピック：

UnicodeFromANSI

Unicodeのテキストファイルの作成/読み込みを行うには

ANSIとUnicode間でデータを変換するには


関数ディレクトリ UnicodeVal

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > UnicodeVal

UnicodeVal

Unicode文字を文字コードに変換

Unicode文字を対応する文字コード（10進）に変換します。

構文：

UnicodeVal (Unicode文字)

パラメータ：

  • Unicode文字(文字) …… 数値に変換されるUnicode文字。複数の文字が含まれている場合、最初の文字だけ変換されます。

戻り値：

数値 …… Unicodeの文字コードを表す10進数の数値

空白が指定された場合、「0」が返ります。

NULLが指定された場合、NULLが返ります。

これ以外の場合は、指定された文字列の最初の文字が数値に変換されます。

例：

UnicodeVal ('あ')

「あ」は、Unicodeでは、「x'3042'」のため、10進数の「12354」が返ります。

関連トピック：

UnicodeChr

Unicode文字の文字コードを取得するには


関数ディレクトリ UnLock

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > UnLock

UnLock

リソースのロックを解除

Lock関数によってロックされたリソースを解除します。

構文：

UnLock(リソース)

パラメータ：

  • リソース …… ロック済みのリソースを示す文字列。長さは0～128。スペースを渡すと、スペースのリソースのロックを解除します。

戻り値：

数値 …… 処理結果を表します。

  • 0 …… 失敗（リソースが同一セッション内においてロックされていない）

  • 1 …… 成功

注意事項：

  • 長い式は切り捨てられます。

  • リソースをロックしたセッションに対してのみ、そのリソースのロックを解除することができます。

関連トピック：

Lock


関数ディレクトリ Upper

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Upper

Upper

小文字を大文字に変換

小文字を大文字に変換します。（全角英文字を含む）

構文：

Upper(文字列)

パラメータ：

  • 文字列 …… 変換する文字列

戻り値：

文字列 …… 大文字に変換された文字列

例：

Upper('john')

'JOHN'が返ります。

注意事項：

この関数の結果は使用するMgconstに依存する場合があります。

関連トピック：

Lower


関数ディレクトリ User

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > User

User

ユーザ情報

[ユーザID]テーブルに登録されたユーザ情報を取得します。

構文：

User(番号)

パラメータ：

  • 番号 …… 0 、1 、2 のいずれか

  • 0 …… ユーザID

  • 1 …… ユーザ名

  • 2 …… [ユーザ情報]欄の値

戻り値：

文字列

例：

User(1)

現在のユーザのユーザ名が返ります。

注意事項：

  • （例えば、リクエスタのコマンドラインを使用して)匿名のリクエストが送信されると、空白が返されます。

  • [システムログオン]の設定が、「LDAP」か「ActiveDirectory」の場合、User(1)はUser(0)と同じ値が返ります。

  • リッチクライアントタスクでは、バックグラウンドモードの場合のみこの関数は動作します。

関連トピック：

INIGet, INIPut


関数ディレクトリ UserAdd

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > UserAdd

UserAdd

ユーザの追加

セキュリティファイルにユーザを追加します。

構文：

UserAdd(ユーザID,名前,パスワード,情報)

パラメータ：

  • ユーザID …… このユーザID がセキュリティファイルに挿入されます。

  • 名前 …… 追加するユーザの名前

  • パスワード …… ユーザのパスワード

  • 情報 …… ユーザの情報

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例：

UserAdd('John', 'John Doe', 'xyz', 'no info')

ユーザID が'John'、ユーザ名が'John Doe'、パスワードが'xyz'というユーザがセキュリティファイルに追加されます。また、ユーザ情報はとしては、'no info'という情報が追加されます。

注意事項：

この関数は、SUPERVISOR権利を持つユーザだけが使用できます。ほかのユーザの場合、この関数を使用しても無視されます。

関連トピック：

UserDel


関数ディレクトリ UserDel

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > UserDel

UserDel

ユーザの削除

Magic xpaのキュリティファイルから指定されたユーザを削除します。

構文：

UserDel(ユーザID)

パラメータ：

  • ユーザID …… 削除されるユーザID

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

例：

UserDel('John')

ユーザ「John」がセキュリティファイルから削除されます。

注意事項：

この関数は、SUPERVISOR権利を持つユーザだけが使用できます。ほかのユーザの場合、この関数を使用しても無視されます。

関連トピック：

UserAdd


UTCDate

協定世界時（UTC)日付

現在の協定世界時（UTC)日付を返します。

構文：

UTCDate()

パラメータ：

なし

戻り値：

日付型 …… UTCフォーマットで現在の日付を返します。

例：

システム日付が92/01/28の場合、UTCDate（)は92/01/28を返します。

UTCDate（)+5は、92/02/02を返します。

注意事項：

  • UTCTime（)関数は、［代入］特性でよく使用されます。ユーザ向けの画面を表示する際、最初の時刻としてフィールドに設定し、レコードの修正や作成時にタイムスタンプを設定する場合に使用できます。

  • さらに正確な時間が必要な場合は、UTCmTime関数を使用してください。

  • Magic xpaは、［環境設定］ダイアログの［日付表示形式］の設定内容や、データ項目の書式に基づいて自動的に書式を自動的に変換します。

関連トピック：

Date、UTCTime、UTCmTime

サポートバージョン：

2.4


UTCmTime

協定世界時（UTC)時刻（ミリ秒）

現在の協定世界時（UTC)時刻を、深夜からのミリ秒で返します。

構文：

UTCmTime()

パラメータ：

なし

戻り値：

数値 …… 0時（UTC）から現在の時刻までの経過時間をミリ秒で表した数値。

例：

02:30:21.5 AM(UTC) にUTCmTime() を評価した場合、9021500が返ります。

注意事項：

  • これは通常、タイムスタンプで使用されます。ミリ秒を取得したい場合、次の式を使用することができます。

UTCmTime（)－UTCTime（) * 1000

  • 時刻データ型は、ミリ秒をサポートしません。

関連トピック：

mTime、UTCTime、UTCDate

サポートバージョン：

2.4


UTCTime

協定世界時（UTC)時刻

現在の協定世界時（UTC)時刻を返します。

構文：

UTCTime()

パラメータ：

なし

戻り値：

時刻 …… 現在のUTC時刻が返ります。

例：

日本標準時（JST）が12:30:00の場合、UTCTime（)は-9時間となり、05:30:00を返します。

注意事項：

  • UTCTime（)関数は、［代入］特性でよく使用されます。ユーザ向けの画面を表示する際、最初の時刻としてフィールドに設定し、レコードの修正や作成時にタイムスタンプを設定する場合に使用できます。

  • さらに正確な時間が必要な場合は、UTCmTime関数を使用してください。

関連トピック：

Time、UTCDate

サポートバージョン：

2.4


関数ディレクトリ UTF8FromAnsi

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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

UTF8ToAnsi

ANSIへのエンコード

データをUTF8からANSI にエンコードします。この関数は、CodePage関数で指定されたコードページを使用します。CodePage関数を使用しない場合、OSのデフォルトのコードページが使用されます。

構文：

UTF8ToAnsi(文字列)

パラメータ：

  • 文字列 …… 変換される文字列。データの型は、文字、Unicodeおよび RTF形式のBLOBです。

戻り値：

BLOB値 …… ANSIでエンコードされたRTFデータ

例：

UTF8ToAnsi(A)

項目'A'を ANSIにエンコードします。

関連トピック：

UTF8FromAnsi


関数ディレクトリ Val

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Val

Val

文字列を数値に変換

文字列を数値に変換します。書式も指定できます。

構文：

Val(文字列,書式)

パラメータ：

  • 文字列 …… 数値に変換される文字列

  • 書式 …… この書式にしたがって文字列が数値に変換されます。

戻り値：

数値

例：

Val('45.12','##.#')

45.1 が返ります。

注意事項：

書式を指定しなかった場合、標準の書式で数値が返ります。

関連トピック：

Str


関数ディレクトリ VarAttr

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > VarAttr

VarAttr

項目の型

項目の型が返ります。

構文：

VarAttr(シンボル名)

パラメータ：

  • シンボル名 …… 型をチェックしたい項目で、[項目一覧]の項目のシンボル名を指定します。VARリテラルが必要です。

戻り値：

文字列 …… 項目の型を表します。

例：

VarAttr('BE'VAR)

関連トピック：

VarCurr, VarInp, VarMod, VarName, VarPrev


関数ディレクトリ VarCurr

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > VarCurr

VarCurr

項目の値（シンボル名）

指定した項目の現在の値を取得します。項目は、シンボル名を使用して指定します。

構文：

VarCurr(シンボル名)

パラメータ：

  • シンボル名 …… 型をチェックしたい項目で、[項目一覧]の項目のシンボル名を指定します。VARリテラルが必要です。

戻り値：

指定した項目の現在の値。値の型は、その項目の型と同じになります。

例：

VarCurr('BE'VAR)

項目BE の現在の値が返ります。

VarCurr('CR'VAR + 7)

項目CY （CR の項目から7 つ後ろの項目）の現在値が返ります。

関連トピック：

リテラル, VarMod, VarPrev


関数ディレクトリ VarCurrN

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > VarCurrN

VarCurrN

項目の値（項目名）

項目名に対応した項目の現在の値を取得します。

構文：

VarCurrN(項目名)

パラメータ：

  • 項目名 …… 項目名を示す文字列

戻り値：

指定した項目の現在の値。値の型は、その項目の型と同じになります。

例：

VarCurrN('Customer ID')

項目名「Customer ID」の現在の値が返ります。

注意事項：

  • 指定した項目名が存在しない場合は、NULLが返ります。

  • 同じ項目名の項目が複数ある場合は、タスクツリー上のもっとも下位の項目の値が返ります。


関数ディレクトリ VarDbName

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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構文の一部でないローカル変数の場合は空白が返ります。


関数ディレクトリ VariantAttr

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > VariantAttr

VariantAttr

Variantデータのデータ型

Variantデータのデータタイプに対するMagic xpa側のデータ型を取得します。

構文：

VariantAttr(Variant値)

パラメータ：

  • Variant値 …… Variant データを保持するBLOBデータ

戻り値：

Magic xpaのデータ型を表す文字

  • 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' を返します。

例外：

リッチクライアントタスクではサポートされません。

関連トピック：

COMオブジェクトのVariant値のタイプと対応するMagicデータ型を決定するには


関数ディレクトリ VariantCreate

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > VariantCreate

VariantCreate

Variant値の作成

指定されたデータを基にVariant値を作成します。

構文：

VariantCreate(VTタイプ、値、オプションの時間値)

パラメータ：

  • VTタイプ …… Variant タイプを表す数値

  • 値 …… Variant に対する選択された値。ここには、どのようなデータ型（日付、文字、数値またはBLOB）でも指定できます。

  • オプションの時間値 …… Magic xpaのデータ型が時刻型で 'D' と設定されている場合のみ有効です。Variant の日付データタイプは、変日付と時間の両方で格納されます。[値]パラメータには日付を指定し、[オプションの時間値]パラメータには時間を指定してください。

戻り値：

作成されたVariantを表す BLOB値。BLOB項目を更新したり、Variant値を保持したり、外部オブジェクトに直接BLOB値を渡す場合に使用できます。

例：

VariantCreate(8,'Hello')

指定された文字列が設定された VT_BSTR データタイプのVariant 値を返します。

VariantCreate(7,Date(),Time())

日付と時刻を基に設定された VT_DATE データタイプの Variant 値を返します。

例外：

リッチクライアントタスクではサポートされません。


関数ディレクトリ VariantGet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > VariantGet

VariantGet

Variant データ

指定したVariantデータに対する値を取得します。

構文：

VariantGet (Variant値、型)

パラメータ：

  • Variant値 …… Variantを含んだ BLOB値

  • 型 …… Magic xpaの型を表す文字

  • A …… 文字型

  • N …… 数値型

  • L …… 論理型

  • D …… 日付型

  • T …… 時刻型

  • B …… BLOB型

  • U …… Unicode型

戻り値：

VariantデータタイプとMagic xpaのデータ型によって値が決まります。

例：

VariantGet(B,'A')

文字値を返します。

VariantGet(C,'D')

日付値を返します。

例外：

リッチクライアントタスクではサポートされません。


関数ディレクトリ VariantGetVector

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > VariantGetVector

VariantGetVector

Variantデータの取得 Variantデータタイプのベクトル値を取得します。
構文： | VariantGetVector (Variant値, ベクトルのプロトタイプ)
パラメータ： | Variant値 …… Variantのデータタイプが保存されているBLOBデータ ベクトルのプロトタイプ …… ベクトル構造のプロトタイプとして使用されるベクトル項目。VARリテラルが必要です。
戻り値： | ベクトルデータ
例： | VariantGetVector(B,'A'VAR)
 | 項目Aによって表されるベクトル構造に基づいて、項目Bによって表されるVariantのベクトル値が返ります。
例外： | リッチクライアントタスクではサポートされません。


関数ディレクトリ VariantType

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > VariantType

VariantType

Variantデータタイプ

Variantデータタイプの記憶形式を取得します。

構文：

VariantType(Variant 値)

パラメータ：

  • Variant値 …… Variant データタイプを含んだBLOB値

戻り値：

記憶形式を表す数値。BLOBパラメータが正当なVariantでない場合、NULL を返します。

例：

VariantType(B)

データタイプが「VT_I8」の場合、20 が返ります。

例外：

リッチクライアントタスクではサポートされません。

関連トピック：

Variant の記憶形式

COMオブジェクトのVariant値のタイプと対応するMagicデータ型を決定するには


関数ディレクトリ VariantType 記憶形式

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > VariantType > Variant の記憶形式

Variant の記憶形式

表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

VarIndex

項目のシンボル名を取得

項目名に対応した項目のシンボル名を取得します。VarMod, VarAttr, VarPrev, VarSet, VarPic などのシンボル名を指定する関数と組み合わせて使用できます。

構文：

VarIndex(項目名)

パラメータ：

  • 項目名 …… 項目名を示す文字列

戻り値：

数値 …… 指定された項目のシンボル名（インデックス）

例：

VarIndex('Customer ID')

項目名'Customer ID'のシンボル名が返ります。

注意事項：

  • 指定した項目名が存在しない場合は、0 が返ります。

  • 同じ項目名の項目が複数ある場合は、タスクツリー上のもっとも下位の項目の値が返ります。


関数ディレクトリ VarInp

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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

項目の値が変更されたことの確認

データビューのレコードが取り出されてから、項目の値が変更されているかどうかを確認します。

構文：

VarMod(シンボル名)

パラメータ：

  • シンボル名 …… 値をチェックしたい項目。[項目一覧]の項目のシンボル名を指定します。VARリテラルが必要です。

戻り値：

論理値

  • True …… 項目の値が変更されていた場合

  • False …… 値が変更されていない場合

例：

VarMod('A'VAR)

データビューのレコードの取り出し後、項目A の値が変更されていれば「True」 が返ります。

関連トピック：

ViewMod


関数ディレクトリ VarName

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > VarName

VarName

オリジナルのデータソースとカラム名

項目のオリジナルのデータソースとカラムの名前を取得します。

構文：

VarName(シンボル名)

パラメータ：

  • シンボル名 …… ［項目一覧］の項目のシンボル名を指定します。VARリテラルが必要です。

戻り値：

文字列 …… シンボル名で指定したカラム名が、元のデータソース名と一緒に返ります。データソース名とカラム名はピリオド（.）でつながれます。変数項目の場合、データソース名は「変数項目」と表示されます。

例：

VarName('A'VAR)

項目Aのオリジナルのデータソースとカラムがそれぞれ、「顧客」、「顧客番号」の場合、「顧客.顧客番号」という文字列が返ります。

関連トピック：

VarAttr, VarCurr, VarInp, VarMod, VarPrev


関数ディレクトリ VarPic

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > VarPic

VarPic

項目の書式

指定した項目の書式を取得します。

構文：

VarPic (シンボル名、モード)

パラメータ：

  • シンボル名 …… [項目一覧]の項目のシンボル名を指定します。VARリテラルが必要です。

  • モード（数値） …… 機能モード

戻り値：

文字列 …… 書式を表す文字列です。

  • モード=0 の場合 …… カラム特性、変数特性で定義された書式が返ります。BLOBは、空白が返ります。

  • モード= 1の場合 …… その項目に対応するコントロールの特性で定義された書式が返ります。ただしクラス=0 のフォームに定義されたコントロールでのみ、この機能モードが有効です。
    ベクトル変数でVarPic関数を評価した場合、ベクトルのセルの書式が返ります。

例：

VarPic('BE'VAR,0)

項目BEの書式が '10'の場合、10が返ります。

注意事項：

  • モード=1を指定した場合でも、コントロール特性に書式が定義されていない場合、モード=0と同じ結果が返ります。またフォームに定義されていない項目は、モード=0 と同じ結果になります。

  • モードに0,1以外を設定した時は、モード=0とみなされます。


関数ディレクトリ VarPrev

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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

値を設定

指定した項目に値を設定します。

構文：

VarSet(シンボル名,値)

パラメータ：

  • シンボル名 …… [項目一覧]の項目のシンボル名を指定します。VARリテラルが必要です。

  • 値 …… 項目に格納する値

戻り値：

論理値 …… 常に「True」が返ります。

例：

VarSet('P'VAR, X+6)

項目Pの内容を項目X+6の結果で更新します。

VarSet('P'VAR+1, X+6)

項目Q（Pの次の項目）の内容を項目X+6の結果で更新します。このようにすることで、配列のように項目を扱うことができます。

注意事項：

  • VarSet()関数は、動的な項目の参照を必要とする非常に特殊なインスタンスで使用されます。通常の［項目更新］処理コマンドは、項目を更新するために使用されます。

  • VarSet()関数は論理関数で、常に'True'を返します。[項目更新]処理コマンドは、常に普通に更新します（加算としては指定できません)。VarSet関数の終了後に再計算が実行されます。

  • VarCurr()とVarSet()の両方を利用することで、通常のデータベース機構を通常の配列となるようにデータベースアプリケーションに実装させることができます。例えば、整数値の1000行×100カラムの配列を、各々100項目の1,000レコードとして保存することを想定してください。アプリケーションでは、value_aを行と列によって識別される配列のセル内の値に加算する必要があります。最小/最大の範囲指定によって行として認識されるレコードとしてデータビューを制限するバッチサブタスクを定義してください。そして、［レコード後］でカラムとして識別された項目を更新します。VarCurr()とVarSet()を使用しない場合は、200以上の項目更新と他の処理コマンドを必要とします。

  • これらは、以下のような式を実行する［アクション］処理コマンドに置き換えることができます。

VarSet('A'VAR + column-1, VarCurr('A'VAR + column-1)+value_a)

  • 'A'VAR は、レコード内の最初の項目のIDで、columnの値は'1'から開始されます。


関数ディレクトリ VecCellAttr

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > VecCellAttr

VecCellAttr

ベクトルセルの型

ベクトル項目のベクトルセルのデータ型を取得します。

構文：

VecCellAttr (ベクトル項目)

パラメータ：

  • ベクトル項目 …… ベクトル項目を表すシンボル名

戻り値：

文字 …… ベクトル項目のセルのデータ型を表します。

  • A …… 文字型

  • N …… 数値型

  • L …… 論理型

  • D …… 日付型

  • T …… 時刻型

  • B …… BLOB型

  • U …… Unicode型

ベクトル項目が指定されていない場合は、空白が返ります。

関連トピック：

ベクトルデータ


関数ディレクトリ VecGet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > VecGet

VecGet

ベクトル項目からデータ

ベクトル項目の指定したセルのデータを取得します。

構文：

VecGet(ベクトル項目、セルインデックス)

パラメータ：

  • ベクトル項目 …… ベクトル項目を表すシンボル名

  • セルインデックス …… データを取り出すセルのインデックス

戻り値：

格納されているデータ。型は、セルのデータ型に依存します。

以下の場合、NULL が返ります。

  • ベクトル項目でない場合

  • セルインデックスが負の場合

  • セルが更新されていない場合は、セルモデルのデフォルト値が返ります。

例：

VecGet(C,1)

項目C の最初のセルの内容が返ります。

関連トピック：

ベクトルデータ


関数ディレクトリ VecSet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > VecSet

VecSet

ベクトル項目にデータを格納

ベクトル項目の指定したセルのデータを更新します。

構文：

VecSet(ベクトル項目、セルインデックス、値)

パラメータ：

  • ベクトル項目 …… ベクトル項目を表すシンボル名。VARリテラルが必要です。

  • セルインデックス …… データを更新するセルのインデックス

  • 値 …… 更新する値

戻り値：

論理値 …… 処理に成功した場合「True」が返ります。

以下の場合、処理が失敗します。

  • ベクトル項目でない場合

  • セルインデックスが負の場合

例：

VecSet('B'VAR,1,'a')

項目B の最初のセルに「a」を設定します。

注意事項：

  • ベクトル項目以内のx番目のセルに値を設定する必要がある場合、セルxに値を入力し、次にすべてのセルを更新することを推奨します。これによって、（値が新しいセルに追加されるたびに、メモリーを割り当てる代わりに)すぐにメモリーをベクトルに割り当てられます。

  • ベクトルの配分は、そのサイズに依存します。

  • 998番目のセルに値がない場合でも、VecSet関数のセルインデックスで"999"を指定した場合、999番目にセルを割り当てます。

  • ベクトルのポインターをNULL()関数で更新することで、ベクトルの割当てを取り消すことができます。

  • ベクトルの終端（たとえば、1000セルを持つベクトルから最後の500セル)を解放する方法はありません。

  • NULL()関数で更新すると、全ベクトル全体が消去されます。

  • NULLでベクトルを更新しても、メモリーに即反映される訳ではありません。この種の更新は、無効なポインターを残し、ガーベージコレクターはメモリーを解放する必要があります。さらに、OSは、プロセスのサイズをすぐに減らすことはないでしょう。ベクトルを使用して動作することは、メモリテーブルを使用して動作することと同じようになります。同じ説明は、Magic xpaのBLOB項目のメモリ処理にも当てはまります。
    つまり、セルの値を0またはNULLで更新したとしてもl、メモリの消費量を減らすことができません。ベクトルは完全に解放される必要があります、その際、OSもメモリ解放のタイミングで役割を担います。

関連トピック：

ベクトルデータ


関数ディレクトリ VecSize

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > VecSize

VecSize

ベクトル項目のセル数

ベクトル項目のセル数を取得します。

構文：

VecSize (ベクトル項目)

パラメータ：

  • ベクトル項目 …… ベクトル項目を表すシンボル名

戻り値：

数値 …… データが格納されているセルの数

以下の場合は、-1が返ります。

  • ベクトル項目でない場合

  • ベクトル（BLOB）項目の値がNULLの場合

関連トピック：

ベクトルデータ


関数ディレクトリ ViewMod

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ViewMod

ViewMod

データビューのレコードが修正されたことの確認

データビューのレコードが修正されたかどうかを確認します。

構文：

ViewMod(世代番号)

パラメータ：

  • 世代番号 …… タスクの階層上の位置を示す値で、カレントのタスクが0 、親タスクが1 、その親タスクが2 などとなります。

戻り値：

論理値

  • True …… レコードの内容が修正されていた場合

  • False …… 修正されていない場合

例：

ViewMod（0）という式が[エラー]処理コマンドで条件として使用されている場合、現在のタスクで現在のレコードが読込後に修正されていれば、エラーメッセージが表示されます。

関連トピック：

VarMod


関数ディレクトリ WinBox

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > WinBox

WinBox

ウィンドウの位置とサイズ

ウィンドウのX座標、Y座標、幅、高さのいずれかが返ります。

構文：

WinBox(世代番号,文字)

パラメータ：

  • 世代番号 …… タスクの実行レベル。0 は、カレントのレベル、1 は親タスクのレベルを表します。

  • 文字列 …… 取り出す情報を指定します。Xを指定するとX座標、YではY座標、Wでは幅、Hでは高さが取り出されます。

戻り値：

数値 …… サイズに関する情報

例：

WinBox (0,'W')

モバイル仕様：

モバイル環境ではサポートされません。


関数ディレクトリ WinHelp

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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 xpaのヘルプ ファイルのコンテンツを指定してオープンします。

WinHelp('Support\MGHELPW.CHM',1,'1001')

Magic xpaのヘルプファイルを開き、そして、コンテキスト番号(1001)に割り当てられた トピックを表示します。

例外：

  • CHMファイル（Htmlヘルプ）の場合、SetContents、ContextPopup、Key、Command、ForceFile、HelpOnHelp コマンドは動作しません。

  • リッチクライアントタスクではサポートされません。


関数ディレクトリ WinHWND

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > WinHWND

WinHWND

ウィンドウハンドル

Magic xpaのウィンドウに対応するWindows のウィンドウハンドル（HWND）が返ります。

構文：

WinHWND(世代番号)

パラメータ：

  • 世代番号 …… タスクの実行レベル。0 は、カレントのレベル、1 は親タスクのレベルを表します。

戻り値：

数値 …… Windows のウィンドウハンドル（HWND）

例：

WinHWND(1)

注意事項：

  • SDIウィンドウの場合、WinHWND(0)はフレームウィンドウ自身のハンドル値ではなくSDIフレームウィンドウで作成された内部ウィンドウのハンドル値を返します。

  • フレームウィンドウのハンドル値を取得したい場合は、以下の関数を実行してください。

CallDLL ('USER32.GetAncestor'、'444'、WinHWND(0)、2)

モバイル仕様：

モバイル環境ではサポートされません。


関数ディレクトリ WinMaximize

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > WinMaximize

WinMaximize

Magicウィンドウを最大表示 Magic xpaのウィンドウを最大表示します。 MDIプログラムで実行した場合、MDIが最大化されます。SDIプログラムで実行した場合、SDIが最大化されます。
構文： | WinMaximize()
パラメータ： | なし
戻り値： | 論理値 …… 処理に成功した場合「True」が返ります。
注意事項： | V9Plus以前のMAXMAGICと同じ機能です。
モバイル仕様： | モバイル環境ではサポートされません。


関数ディレクトリ WinMinimize

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > WinMinimize

WinMinimize

Magicウィンドウを最小表示 Magic xpaのウィンドウを最小表示します。 MDIプログラムで実行した場合、MDIが最小化されます。SDIプログラムで実行した場合、SDIが最小化されます。
構文： | WinMinimize()
パラメータ： | なし
戻り値： | 論理値 …… 処理に成功した場合「True」が返ります。
注意事項： | V9Plus以前のMINMAGICと同じ機能です。
モバイル仕様： | モバイル環境ではサポートされません。


関数ディレクトリ WinRestore

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > WinRestore

WinRestore

Magicウィンドウのサイズを通常サイズに戻す。 Magic xpaのウィンドウを通常サイズに変更します。非SDIプログラムで呼び出された場合、MDIのサイズは戻ります。そして、SDIプログラムから呼び出された場合、SDIのサイズが戻ります。 開始モードが最大化／最小化のどちらかが指定されている場合、ウィンドウは、フォームの[位置]特性に定義された値を基に表示されます。
構文： | WinRestore()
パラメータ： | なし
戻り値： | 論理値 …… 処理に成功した場合「True」が返ります。
注意事項： | V9Plus以前のResMAGICと同じ機能です。
モバイル仕様： | モバイル環境ではサポートされません。


関数ディレクトリ WSConsumerAttachmentAdd

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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サービスを呼び出した後に自動的にメモリから削除されます。

例外：

［コールWebサービスLite］処理コマンドはサポートされません。

関連トピック：

WsConsumerAttachmentGet

Webサービスアタッチメントを使用するには


関数ディレクトリ WSConsumerAttachmentGet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > WsConsumerAttachmentGet

WsConsumerAttachmentGet

SOAPレスポンスから添付内容を取り出します。

この関数は、［コールWebサービス］処理コマンドによって受信したSOAPレスポンスに添付されたデータが返ります

この関数は、WSDLに定義されていないSOAP添付を処理する場合に使用します。

構文：

WsConsumerAttachmentGet (ID)

パラメータ：

  • ID …… 次のどちらかのタイプの値を指定してください。

  • UUID …… DIME添付を識別するユニークな英数字。場合によっては、送信側はUDDIをXMLメッセージの中に追加することもできます。

  • インデクス（数値） …… Magic xpaが添付ファイルを取り出す際のインデックス値。1から始まるインデックス値に基づいて取り出します。

戻り値：

添付ファイルが含まれたBLOB値

指定されたUUIDやインデックスに該当する添付ファイルが見つからない場合、NULLが返ります。

プロバイダが実行していない場合もNULLが返ります。

例：

WsConsumerAttachmentGet(1)

メッセージ中の最初の添付ファイルを返します。

WsConsumerAttachmentGet('F2DA3C9C-74D3-4A46-B925-B150D62D9483')

指定したUUIDに基づいて 添付ファイルを返します。

注意事項：

  • 実行中に、以下の構文を使用することで、プロバイダプログラム間で受信メッセージの添付ファイルを取得できます。

WsConsumerAttachmentGet(UUID)／WSConsumerAttachmentGet(インデックス）

  • インデックスの場合、DIMEメッセージ内に添付されている順に取り出されます。

  • プロバイダプログラムの［タスク後］の実行後に、添付内容はメモリから削除されます。

例外：

［コールWebサービスLite］処理コマンドはサポートされません。

関連トピック：

WsConsumerAttachmentGet

Webサービスアタッチメントを使用するには


関数ディレクトリ WSProviderAttachmentAdd

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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サービスのプロバイダプログラムの[タスク後]の実行後に、添付内容はメモリから削除されます。

例外：

  • リッチクライアントタスクではサポートされません。

  • ［コールWebサービスLite］処理コマンドはサポートされません。


関数ディレクトリ WSProviderAttachmentGet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > WsProviderAttachmentGet

WsProviderAttachmentGet

Webサービスメッセージの添付ファイル

Webサービスメッセージに添付されているDIME仕様のデータを取得します。

プロバイダ用Webサービスプログラムは、SOAPリクエストから添付内容を取り出します。

構文：

WsProviderAttachmentGet (ID)

パラメータ：

  • ID …… 次のどちらかのタイプの値を指定してください。

  • UUID …… DIME添付を識別するユニークな英数字。場合によっては、送信側はUUIDIをXMLメッセージの中に追加することもできます。

  • インデックス（数値） …… Magic xpaが添付ファイルを取り出す際のインデックス値。1から始まるインデックス値に基づいて取り出されます。

戻り値：

添付ファイルが含まれたBLOB値

指定されたUUIDやインデックスに該当する添付ファイルが見つからない場合、NULLが返ります。

プロバイダとして実行していない場合もNULLが返ります。

例：

WsProviderAttachmentGet (1)

メッセージ中の最初の添付ファイルを返します。

WsProviderAttachmentGet ('F2DA3C9C-74D3-4A46-B925-B150D62D9483')

指定したUUIDに基づいて 添付ファイルを返します。

注意事項：

  • 実行中に、以下の構文を使用することで、プロバイダプログラム間で受信メッセージの添付ファイルを取得できます。

WsProviderAttachmentGet (UUID)／WSProviderAttachmentGet (インデックス）

  • インデックスの場合、DIMEメッセージ内に添付されている順に取り出されます。

  • プロバイダプログラムの[タスク後]の実行後に、添付内容はメモリから削除されます。

例外：

  • リッチクライアントタスクではサポートされません。

  • ［コールWebサービスLite］処理コマンドはサポートされません。


関数ディレクトリ WsSetIdentity

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > WsSetIdentity

WsSetIdentity

Webサービスの認証用のIDを設定します。

SOAPサービスのセキュリティレベルが「Transport」か「WS-Security」に設定されている場合、設定されたIDが［コールWebサービス］処理コマンドによってプロバイダ側に送信されます。

一度、この関数が実行されると同一コンテキスト内で次に関数が発行されるまで、設定されたIDが有効になります。

構文：

WsSetIdentity (ID, パスワード)

パラメータ：

  • ID(文字) …… ［コールWebサービス］処理コマンドによって送信されるユーザID。プロバイダ側に定義されたIDを指定してください。

  • パスワード(文字) …… ユーザIDに対応したパスワード

戻り値：

文字列 …… 値は返されません。

例：

変数項目 A 文字型 30
項目更新 A WsSetIdentity ('ws-user-1’,'ws-user-pass’)
…

外部コール Webサービス

注意事項：

  • ユーザIDやパスワードに誤りがあっても関数の処理でエラーにはなりませんが、 ［コールWebサービス］処理コマンドの実行時にプロバイダから拒否されます。

  • (関数呼び出し前の)初期IDは、Magic xpaへのログオン時に使用したユーザIDやパスワードです。

関連トピック：

Webサービスに安全にアクセスするには


関数ディレクトリ XMLBlobGet

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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


関数ディレクトリ XMLBLOBGet 例

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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要素またはXML属性の数

指定された要素パスに基づいたXML要素の数またはXML属性の数を取得します。

構文：

XMLCnt(世代番号,ファイル番号,要素パス ,属性名)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

  • ファイル番号 …… 指定されたタスクの（「XMLダイレクトアクセス」または、「項目」が設定された）［入出力ファイル］テーブルの番号

  • 要素パス …… XML 要素のパスを表す文字列。 パス文字列の構文は、以下の通りです。

/要素名［［インデックス］］ ［/要素名［［インデックス］］ ... ］

  • 要素名 …… XML 要素の名前です。エイリアスを指定することができます。エイリアスは、「all:My_Element」のように、コロン（:）で要素名と分けて指定します。

  • インデックス …… 複数存在する中の特定の要素を示すインデックス。インデックス値は、1以上の値を指定してください。

要素パスのスラッシュ「/」は、区切り文字です。

  • 属性名 …… 指定された要素の中に定義されたXML属性名

戻り値：

数値 …… 指定したパス内の要素数。XMLの解析が完了しなかったり指定した要素が存在しない場合、0 が返ります。

例：

XMLCnt の例

例外：

リッチクライアントタスクではサポートされません。

関連トピック：

XML のネームスペース , XML 関数のエラーコード


関数ディレクトリ XMLCnt 例

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > XMLDelete

XMLDelete

XML要素またはXML属性の削除

指定したパス内のXML要素やXML属性を削除します。

構文：

XMLDelete (世代番号,ファイル番号,要素パス ,属性名)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

  • ファイル番号 …… 指定されたタスクの（「XMLダイレクトアクセス」または、「項目」が設定された）［入出力ファイル］テーブルの番号

  • 要素パス …… XML 要素のパスを表す文字列。 パス文字列の構文は、以下の通りです。

/要素名［［インデックス］］ ［/要素名［［インデックス］］ ... ］

  • 要素名 …… XML 要素の名前です。エイリアスを指定することができます。エイリアスは、「all:My_Element」のように、コロン（:）で要素名と分けて指定します。

  • インデックス …… 複数存在する中の特定の要素を示すインデックス。インデックス値は、1以上の値を指定してください。

要素パスのスラッシュ「/」は、区切り文字です。

  • 属性名 …… 指定された要素の中に定義されたXML属性名。この値が空白の場合、要素パスで指定されたXML要素が削除されます。

戻り値：

数値 ……

要素が正常に削除された場合は、「0」を返します。

関数の処理が失敗した場合、Magic xpaは以下のエラーコードを返します。

  • -1 …… 入出力ファイルの指定が正しくありません。

  • -2 …… 挿入された要素や属性が定義されていません

  • -3 …… 入出力ファイルを書き込みモードでオープンできません

  • -4 …… 指定した要素パスが存在していません

  • -11 …… 要素パスやインデックスが正しくありません

  • -20 …… XML ファイルの構造が正しくありません（XML の解析に失敗しました）

例：

XML Delete の例

注意事項：

［入出力］テーブルの［メディア］カラムで「V=項目」を指定した場合は、以下のように使用してください。

  • 親タスクでBLOB項目と入出力ファイルを定義します。

  • XMLDeleteを実行する子タスクを定義し、BLOB型のパラメータ項目を定義します。

  • 親タスクから子タスクを呼ぶ際、パラメータでBLOB項目を渡します。

例外：

リッチクライアントタスクではサポートされません。

関連トピック：

XML のネームスペース , XML 関数のエラーコード

XMLドキュメント内のデータの取得、更新、挿入を行うには


関数ディレクトリ XMLDelete 例

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > XMLDelete > XML Delete の例

XML Delete の例

<?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要素やXML属性の存在確認

指定したパス内にXML要素または、XML属性が存在するかどうかを確認します。

構文：

XMLExist(世代番号,ファイル番号,要素パス ,属性名)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

  • ファイル番号 …… 指定されたタスクの（「XMLダイレクトアクセス」または、「項目」が設定された）［入出力ファイル］テーブルの番号

  • 要素パス …… XML 要素のパスを表す文字列。 パス文字列の構文は、以下の通りです。

/要素名［［インデックス］］ ［/要素名［［インデックス］］ ... ］

  • 要素名 …… XML 要素の名前です。エイリアスを指定することができます。エイリアスは、「all:My_Element」のように、コロン（:）で要素名と分けて指定します。

  • インデックス …… 複数存在する中の特定の要素を示すインデックス。インデックス値は、1以上の値を指定してください。

要素パスのスラッシュ「/」は、区切り文字です。

  • 属性名 …… 指定された要素の中に定義されたXML属性名

戻り値：

論理値

  • True …… XML要素やXML属性が存在した場合

  • False …… XML解析処理が成功しなかったり、要素が存在しない場合

例：

XMLExist の例

例外：

リッチクライアントタスクではサポートされません。

関連トピック：

XML のネームスペース , XML 関数のエラーコード


関数ディレクトリ XMLExist 例

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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要素の値や属性値と一致するインデックス値

指定した値とXML要素の値や属性値が一致した場合、そのインデックス値を取得します。要素の配列形式の場合に使用します。

構文：

XMLFind (世代番号,ファイル番号,要素パス ,複数要素名、番号、子要素名／属性名、値)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

  • ファイル番号 …… 指定されたタスクの（「XMLダイレクトアクセス」または、「項目」が設定された）［入出力ファイル］テーブルの番号

  • 要素パス …… XML 要素のパスを表す文字列。 パス文字列の構文は、以下の通りです。

/要素名［［インデックス］］ ［/要素名［［インデックス］］ ... ］

  • 要素名 …… XML 要素の名前です。エイリアスを指定することができます。エイリアスは、「all:My_Element」のように、コロン（:）で要素名と分けて指定します。

  • インデックス …… 複数存在する中の特定の要素を示すインデックス。インデックス値は、1以上の値を指定してください。

要素パスのスラッシュ「/」は、区切り文字です。

  • 複数要素名 …… 指定した要素パス上に複数存在するXML要素の名前

  • 番号 …… 数値。次のパラメータの意味を示します。

  • 0 …… 子要素を表します。

  • 1 …… 属性名を表します。

  • 子要素名 …… 複合要素名の子要素を示すXML要素名。値パラメータと比較されます。値パラメータが空白の場合、複合要素名で指定された要素の値と比較されます。

  • 属性名 …… 指定された要素の中に定義されたXML属性名

  • 値 …… この値が含まれた、子要素または属性を検索します。

戻り値：

数値 …… 要素のインデックス。XMLの解析処理が正常に終わらなかったり、指定した要素が存在しない場合、0 が返ります。

例：

XMLFind の例

例外：

リッチクライアントタスクではサポートされません。

関連トピック：

XML のネームスペース , XML 関数のエラーコード


関数ディレクトリ XMLFind 例

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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要素や属性の値

指定された要素パスに基づいたXML要素またはXML属性の値を取得します。

構文：

XMLGet(世代番号,ファイル番号,要素パス ,属性名, 存在確認)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

  • ファイル番号 …… 指定されたタスクの（「XMLダイレクトアクセス」または、「項目」が設定された）［入出力ファイル］テーブルの番号

  • 要素パス …… XML 要素のパスを表す文字列。 パス文字列の構文は、以下の通りです。

/要素名［［インデックス］］ ［/要素名［［インデックス］］ ... ］

  • 要素名 …… XML 要素の名前です。エイリアスを指定することができます。エイリアスは、「all:My_Element」のように、コロン（:）で要素名と分けて指定します。

  • インデックス …… 複数存在する中の特定の要素を示すインデックス。インデックス値は、1以上の値を指定してください。

要素パスのスラッシュ「/」は、区切り文字です。

  • 属性名 …… 指定された要素の中に定義されたXML属性名。

  • 存在確認 …… （オプション）要求する要素/属性が見つかった場合に知らせるかどうかを指定する論理値

戻り値：

文字列 …… XMLの解析に成功した場合、要求される要素/属性の値が返ります。

失敗した場合、［存在確認］オプションの設定内容に基づいて以下の内容を返します。

  • True …… Nullが返ります。

  • False(または指定されていない場合) …… 空白が返ります。

注意事項：

  • XMLGet関数は、CDATAのコンテンツをサポートします。XMLタグにCDATA部を記述するには、タグの値としてCDATAシーケンス全体を配置してください。

  • XMLGetを使用して属性値を取得した場合、属性名がエイリアス名を接頭辞として付加していない場合、名前空間を指定することなく、値を取得しようとします。そして、そのような属性が見つからない場合、Magic xpaはそのコンテナ要素と同じ名前空間URI（URI）を使用して再び取得を試みます。

  • XMLGet関数を使用する場合、XMLレスポンス内のコメント行は自動的に削除されます。コメントは、(スキーマで定義されていないため)データ構造の一部ではないので、これは仕様になります。従って、XMLパーザはこれらを無視します。コメント行の使用したい場合は、コメントを定義する代わりに、それを含めた要素を定義することで実現できます。

例：

XMLGet の例

例外：

リッチクライアントタスクではサポートされません。

関連トピック：

XML のネームスペース , XML 関数のエラーコード , XMLBlobGet

XMLドキュメント内のデータの取得、更新、挿入を行うには


関数ディレクトリ XMLGet 例

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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'属性が存在しないため。）


関数ディレクトリ XMLGetAlias

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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

XMLGetEncoding

XMLドキュメントのエンコード方法

XMLドキュメントのエンコード情報を取得します。

構文：

XMLGetEncoding (世代番号, ファイル番号)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

  • ファイル番号 …… 指定されたタスクの（「XMLダイレクトアクセス」または、「項目」が設定された）［入出力ファイル］テーブルの番号

戻り値：

文字列 …… 指定されたXMLファイルのエンコード方法を返します。エンコード指定がない場合は、空白が返ります。

注意事項：

XMLデータをBLOB項目に保存する場合は、BLOB項目の［内容］特性を「ANSI」か「バイナリ」に設定してください。

例外：

リッチクライアントタスクではサポートされません。

関連トピック：

XMLSetEncoding

ドキュメント対するエンコードを指定するには


関数ディレクトリ XMLInsert

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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 xpaは以下のエラーコードを返します。

  • -1 …… 入出力ファイルの指定が正しくありません

  • -2 …… 挿入された要素や属性が定義されていません

  • -3 …… 入出力ファイルを書き込みモードでオープンできませんでした。

  • -4 …… 指定した要素パスが、すでに存在しています.

  • -6 …… 指定した属性値が指定した要素内にすでに存在しています。

  • -7 …… 前置／後値フラグの文字が間違っています。

  • -8 …… 参照要素が存在していません。

  • -9 …… ドキュメントがルート要素を含んでいて親のパスが空白です。

  • -10 …… 自動変換フラグが論理型ではありません。

  • -11 …… 要素指定に対して、インデックスが正しくありません。

  • -13 …… 要素か属性の名前が正しくありません。

  • -20 …… XMLファイルが正しくありません（解析に失敗）。

例：

XML Insert の例

例外：

リッチクライアントタスクではサポートされません。

関連トピック：

XML のネームスペース , XML 関数のエラーコード

MLドキュメント内のデータの取得、更新、挿入を行うには


関数ディレクトリ XMLInsert 例

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > XMLInsert > XML Insert の例

XML Insert の例

<?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

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > XMLModify

XMLModify

XML要素か属性値の修正

XML要素または属性値を修正します。

構文：

XMLModify (世代番号, ファイル番号, 要素パス, 属性値, 値［,自動変換］)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

  • ファイル番号 …… 指定されたタスクの（「XMLダイレクトアクセス」または、「項目」が設定された）［入出力ファイル］テーブルの番号

  • 要素パス …… XML 要素のパスを表す文字列。 パス文字列の構文は、以下の通りです。

/要素名［［インデックス］］ ［/要素名［［インデックス］］ ... ］

  • 要素名 …… XML 要素の名前です。エイリアスを指定することができます。エイリアスは、「all:My_Element」のように、コロン（:）で要素名と分けて指定します。

  • インデックス …… 複数存在する中の特定の要素を示すインデックス。インデックス値は、1以上の値を指定してください。

要素パスのスラッシュ「/」は、区切り文字です。

  • 属性名 …… XML 属性の名前。この値が空白の場合、要素パスで指定されたXML要素が修正されます。

  • 値 …… 修正される要素／属性の値が含まれる文字列

  • 自動変換（任意） …… 論理値

  • True …… XMLVal関数のように正規のXMLフォーマットに変換します。

  • False …… 変換処理を行いません。

戻り値：

数値 …… 変更処理が正常に終了した場合は、「0」が返ります。

関数の処理が失敗した場合、Magic xpaは以下のエラーコードを返します。

  • -1 …… 入出力ファイルの指定が正しくありません

  • -2 …… 挿入された要素や属性が定義されていません

  • -3 …… 入出力ファイルを書き込みモードでオープンできません

  • -4 …… 指定した要素パスが正しくありません

  • -5 …… 属性が見つかりません

  • -10 …… 自動変換フラグが論理型でありません

  • -11 …… 要素指定に対して、インデックスが正しくありません

  • -20 …… XMLファイルが正しくありません（解析に失敗しました）

例：

XML Modify の例

例外：

リッチクライアントタスクではサポートされません。

関連トピック：

XML のネームスペース , XML 関数のエラーコード

MLドキュメント内のデータの取得、更新、挿入を行うには


関数ディレクトリ XMLModify 例

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > XMLModify > XML Modify の例

XML Modify の例

<?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」に更新します。


関数ディレクトリ XMLSetEncoding

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > XMLSetEncoding

XMLSetEncoding

入出力ファイルのエンコード処理

XMLドキュメントをエンコードします。ドキュメント部分とヘッダ部分の両方に影響します。ヘッダ部分のエンコード指定を読み、パラメータで指定されたエンコード方法を基にエンコードされます。

ヘッダにエンコード方法が指定されている場合のみ有効です。

構文：

XMLSetEncoding (世代番号, ファイル番号, エンコード)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

  • ファイル番号 …… 指定されたタスクの（「XMLダイレクトアクセス」または、「項目」が設定された）［入出力ファイル］テーブルの番号

  • エンコード …… エンコード方式を指定します。（例：'Shift_JIS' または、'UTF-8'）

戻り値：

数値 …… エンコード処理結果を返します。

正常終了時は、「0」が返ります。正常に終わらない場合は、負数が返ります。「-3」の場合、入出力ファイルが書き込みモードでオープンできなかったことを示します。

例外：

リッチクライアントタスクではサポートされません。

関連トピック：

XMLGetEncoding


関数ディレクトリ XMLSetNS

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > XMLSetNS

XMLSetNS

ネームスペースURIの定義

指定したXMLファイルにネームスペースURIを書き込みます。

構文：

XMLSetNS (世代番号, ファイル番号,エイリアス, URI)

パラメータ：

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

  • ファイル番号 …… 指定されたタスクの（「XMLダイレクトアクセス」または、「項目」が設定された）[入出力ファイル]テーブルの番号

  • エイリアス …… ネームスペースエイリアスを表す文字列。先頭は必ず文字で指定してください。空白の場合、デフォルトのネームスペースを使用します。

  • URI …… ネームスペースURIを表す文字列。空白は無効です。

戻り値：

数値 …… 処理が正常に終了した場合は、「0」が返ります。

関数の処理が失敗した場合、Magic xpaは以下のエラーコードを返します。

  • -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

XMLStr

XMLデータの文字列変換

正規のXML文字列を予約語を使用したXML表記に変換します。

構文：

XMLStr(ソース文字列)

パラメータ：

  • ソース文字列 …… 正規のXML 文字列

戻り値：

文字列 …… 予約語を使用した XML表記に変換された文字列

例：

XMLStr('&It;Hello &quot; World&gt;')

'<Hellow World>' を返します。

例外：

リッチクライアントタスクではサポートされません。


関数ディレクトリ XMLVal

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > XMLVal

XMLVal

正規のXMLデータへの変換

予約語を使用したXML文字列を正規のXML表記に変換します。

構文：

XMLVal(ソース文字列)

パラメータ：

  • ソース文字列 …… 文字列表記のXMLデータ

戻り値：

文字列 …… 正規のXML表記に変換されたXML文字列

例：

XMLVal('<Hello World>')

'&It;Hello World!&gt;' を返します。

例外：

リッチクライアントタスクではサポートされません。


関数ディレクトリ XMLValidate

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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」が返ります。

  • スキーマが指定されていない場合、XMLファイル内にスキーマのパスが指定されている限り正しいものと判断します。

  • 警告だけの場合、XMLは正しいものと判断します。

注意事項：

XMLValidateを実行すると、以前のXMLValidateで発生したエラーがクリアされます。

例外：

リッチクライアントタスクではサポートされません。

関連トピック：

XMLValidationError

XMLドキュメントを検証するには


関数ディレクトリ 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関数の結果はクリアされます。
関連トピック： | XMLドキュメントの検証エラーを取得するには


関数ディレクトリ Year

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Year

Year

日付の年

日付の年数を取得します。4桁の数値で返ります。

構文：

Year(日付)

パラメータ：

  • 日付 …… 日付

戻り値：

数値 …… 年（4 桁）

例：

システムの日付が97/01/28 の場合、Year(Date())では、1997 が返ります。

関連トピック：

指定された日付の年/月/日の各部分を取得するには


関数ディレクトリ Zen

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > Zen

Zen

半角文字を全角に変換

半角文字（英数字またはカタカナ）を全角文字に変換します。ただし、半角スペースは、全角スペースに変換しません。

構文：

Zen(文字列)

パラメータ：

  • 文字列 …… 変換する文字列

戻り値：

文字列 …… 変換された文字列

例：

ZEN('16KB')='１６ＫＢ'

ZEN('カタカナ')='カタカナ'

注意事項：

この関数は日本語版でのみ有効です。

関連トピック：

Han


関数ディレクトリ ZenS

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > ZenS

ZenS

半角文字を全角に変換

機能はZen 関数と同じですが、半角スペースの処理を細かく設定できます。

構文：

ZenS(文字列,変換モード）

パラメータ：

  • 文字列 …… 変換する文字列

  • 変換モード …… 0, 1, 2 のいずれか

  • 0 …… 半角スペースを全角スペースに変換しません。（Zen 関数と同じ）

  • 1 …… 半角スペースを全角スペースに変換します。

  • 2 …… 半角スペースを2 個の半角スペースに変換します。

戻り値：

文字列 …… 変換された文字列

例：

ZenS（'トウキョウト トシマク',0）='トウキョウト_ トシマク'

ZenS（'トウキョウト トシマクク',1）='トウキョウト＿トシマク'

ZenS（'トウキョウト トシマク',2）='トウキョウト_ _ トシマク'

注意事項：

この関数は日本語版でのみ有効です。


関数ディレクトリ ZIMERead

ホーム > リファレンスガイド > 式エディタ > 関数ディレクトリ > 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

ひらがな/カタカナ変換

ひらがなからカタカナへ、またはカタカナからひらがなへの変換を行います。

構文：

ZKana（文字列, 変換モード）

パラメータ：

  • 文字列 …… 変換する文字列

変換モード …… 0, 1 のいずれか

  • 0 …… ひらがなをカタカナに変換

  • 1 …… カタカナをひらがなに変換

戻り値：

変換された文字列

例：

ZKana（' あいうえお',0）=' アイウエオ'

ZKana（' カキクケコ',1）=' かきくけこ'

ZKana（' サシすせそ',1）=' さしすせそ'

注意事項：

  • 半角カナの文字は変換されません。

  • この関数は日本語版でのみ有効です。


Magic xpaで使用するデータベース

ホーム > リファレンスガイド > データベース

データベース

Magic xpa で使用するデータベースの違いについては、以下のトピックを参照してください。

メモリデータベース

Oracleデータベース

MS-SQL Server データベース

ODBC データベース

Pervasive(ISAM)データベース

Pervasive(SQL) データベース

SQLite データベース

Local データベース

Magicゲートウェイの命名規則

注意：

Pervasive 製品は、バージョンによって製品名が異なる場合がありますが、本リファレンス上は「Pervasive」という製品名で説明しています。

関連トピック：

特定のSQL タイプにアクセスするには


データベース メモリ

ホーム > リファレンスガイド > データベース > メモリデータベース

メモリデータベース

メモリデータベースは、メモリテーブルが必要の場合に、内部利用で使用することができます。

インデックス | インデックスが定義されていないメモリテーブルからレコードを取得すると、毎回異なるソート順序になる場合があります。
トランザクション | メモリデータベースは背後で実行するデータベースが存在しないため、トランザクションをサポートしません。アプリケーションによって入力されるデータは、ファイルに保存されないことを前提に使用してください。

関連トピック：

データベース情報


データベース メモリ データベース情報

ホーム > リファレンスガイド > データベース > メモリデータベース > データベース情報

データベース情報

（DBMS特性、データベース特性、データソース特性、カラム特性とインデックス特性の)データベース情報パラメータは、Magic xpaがDBMSに渡すことができるデータベース依存の情報を指定することができます。このパラメータの使用は、オプションです。

キーワード | 内容 |  |
FILE_CHUNK_SIZE=500 | メモリテーブルを読み込む際に、指定した数のレコード分の領域を割り当てるように指定します。 このキーワードを使用することでパフォーマンスが向上する可能性があります。カラム数が多く、レコード数が少ない場合は、チャンクサイズを少なくすることでメモリーの消費を減らして、読み込み時間を短くすることができます。 |  | ○
INITFILE=500 | 一つのMagicエンジンが同時にオープンできるメモリテーブルの総数を指定します。ソート／一時用データベースでメモリテーブルが使用されている場合は、これも含まれます。 ここでは、オープンしたいメモリーテーブルの総数を示す数を設定します。各コンテキストが独自のメモリテーブルを開くことに注意してください。 RIAサーバの場合： コンテキストごとにオープンされるメモリテーブルの最大数×RIAクライアント数（［データ］リポジトリで実際に使用しているメモリテーブルの数をもとに算出してください。) RIA以外のサーバの場合： コンテキストごとにオープンされるメモリテーブル数×並行実行されるコンテキスト数 オンラインクライアントの場合： 並行実行プログラムツリーの最大数×並行のプログラムツリーごとにオープンされるメモリテーブルの数 | ○ |


データベース固有の追加情報 Memory

ホーム > リファレンスガイド > データベース > メモリデータベース > 追加情報

追加情報

ここでは、Magic xpa（以下 Magic と表記）Memory データベースゲートウェイ（以降「Memory ゲートウェイ」と表記）として提供されるプログラム（mgmemory.dll）に関する情報が含まれています。文書中に記述されている「本プログラム」とは、mgmemory.dll を示します。

関連トピック：

制限事項及び留意事項

技術仕様


データベース固有の追加情報 Memory 制限事項

ホーム > リファレンスガイド > データベース > メモリデータベース > 追加情報 > 制限事項

制限事項及び留意事項

使用目的

  • Memory ゲートウェイ は、データをメモリ上に格納しながらオペレーションを実行します。用途としては、常駐テーブルを使用する時に標準的に使用されることがあげられます。その他の用途として、ソートファイルおよびワークファイルとして使用することがあげられます。

  • Memory ゲートウェイにより作成されるファイルは Magic xpa 終了時には削除される一時ファイルですので、セッションを越えて保存が必要なデータに対しては使用できません。

  • メモリゲートウェイのデータを保存するには、メモリテーブル用の関数(MTblSet, MTblGetなど)を利用し、BLOB データとしてファイルなどに保存・復旧することができます。

起動方法

  • 常駐テーブルを使用する場合、動作環境の［常駐テーブル読込］欄を「Yes」に設定します。その上で［データ特性］の［常駐］特性を設定します。 注意：全てのテーブルが常駐できるわけではありません。カラム及びインデックスの制限は元になるデータベースではなく、Memory テーブルの制限に依存するためです。

  • 動作環境の［ソート／一時用データベース］欄に Memory テーブルを使用する場合、ソートファイルや一時ファイルは、一時ファイル名で作成されます。ソートファイルや一時ファイルが置かれる位置は、［一時ファイルパス］欄の設定に依存しません。

  • データテーブルを Memory テーブルファイルとして宣言するには、［データ］リポジトリの［データベース］カラムを Memory テーブルベースのデータベースに設定します。

  • ［データ］リポジトリの［データソース名］カラムを設定した場合、Magic xpaが設定するデフォルトの Memory テーブルの DB テーブル名を変更することができます。

  • Memory テーブルファイルにカラムを作成する場合、各カラムに適する記憶型式が使用されます。記憶型式を変更したいときは、［データ］リポジトリの各カラムで［カラム特性］ダイアログを表示し、［記憶型式］特性に希望する記憶型式を設定します。

その他

  • Memoryテーブルの定義内容を変更すると「メモリテーブルは、変更内容を反映するためドロップされます」というダイアログが表示され、データが削除されます。


データベース固有の追加情報 Memory 技術仕様

ホーム > リファレンスガイド > データベース > メモリデータベース > 追加情報 > 技術仕様

技術仕様

有効なパラメータ

Memory ゲートウェイが認識するパラメータには以下のものがあります。

指定場所 | パラメータと有効な値 | 意味
［設定］／［DBMS］ | INIFILE=n | 1インスタンスでオープンできるメモリテーブルの個数を指定します。デフォルトは、500です。（リッチクライアントアプリケーションのような）1インスタンスを複数のユーザで利用する場合、利用するユーザ数に応じてテーブル数を増やす必要があります。

テーブルの解放処理

DbDel関数を実行すると、指定されたMemoryテーブルが解放されます。

オープンできるテーブル数には上限（デフォルトでは、1インスタンスで500）があります。これ以上のMemoryテーブルをオープンしようとした場合、エラーが発生します。この問題を回避するには、上記のパラメータを使用して上限値を増やすか、DbDel関数を実行して使用していないテーブルを解放してください。

記憶型式と有効キー長

これらのカラムの［データベース定義］特性は「N=標準」に設定されます。

型 | 記憶型式 | 有効キー長
文字 | String | 制限なし
 | LString | 1-255
 | ZString | 制限なし
Unicode | Unicode | 制限なし
 | ZUnicode | 制限なし
数値 | Signed Integer | 2、4
 | Unsigned Integer | 2、4
 | Float | 4、8
 | C-ISAM Decimal | 2-17
論理 | Integer Logical | 1、2
 | String Logical | 1
日付 | Integer Date | 4
 | Integer Date - 1901 | 4
 | String Date | 6、8
 | YYMD Date | 4
 | Magic Date | 4
 | Magic Date - 1901 | 4
時刻 | Integer Time | 4
 | String Time | 6
 | HMSH Time | 4
 | Magic Time | 4

制限値

項 目 | 制限値
インデックスの最大数 | 65,535
インデックスセグメントの最大数 | 65,535
インデックスあたりの最大セグメント数 | 65,535
最大インデックス長 | 32,768
最大固定レコード長 | 32,768
最小固定レコード長 | 1
最大可変レコード長 | 32,768
最大文字型長 | 32,768
BLOB項目数 | 1
双方向インデックスのサポート | 有
デフォルト識別子 | mem


データベース ORACLE

ホーム > リファレンスガイド > データベース > Oracleデータベース

Oracleデータベース

Oracleデータベースと接続する際のMagic xpaの機能については、以下のトピックを参照してください。

Magic xpaのデータタイプ

Oracleのデータタイプ

データベース情報

ストアドプロシジャ

追加情報

以下は、Oracleデータベースでの動作に関する追加情報です：

ヒント

ヒント文字列を使用すると、開発者は、チェックなしでそのままSELECT文に追加することができるハードコードされた文字列を指定することができます。ヒントの構文は次のとおりです。

/*+ Oracle Hint */

最適化ヒントは、特殊な場合にのみ使用するようお勧めします。Oracleに送信することができる最適化ヒントの完全な一覧については、Oracleのマニュアルを参照してください。

物理ロック

物理ロックは、現在ロックされているレコードをどのユーザも修正できないようにする方法です。つまり、ユーザがレコードをロックした時から、そのユーザがレコードを解放するまで、別のユーザはそのレコードを修正することができません。物理ロックは、次のように実行されます。Magic xpaのロック方式に基づいてレコードがロックされると、SELECT文がFOR UPDATE句とともに発行されます。

FOR UPDATE句によって、トランザクションが完了するまで、ほかのアプリケーションでそのレコードを変更することができなくなります。

テーブルのロック

テーブルのロックは、Magicトランザクション内でのみ使用可能です。トランザクション外でロックの要求が発行された場合は、無視されます。

また、共有モードが「N=なし」の場合は［排他モード］のテーブルロックを行い、共有モードが「R=読込」の場合は［共有モード］のテーブルロックを行います。

一意の識別子

Magic xpaで開かれる各テーブルには、一意の行識別子が必要です。Magic xpaでは、可能な限り、一意の識別子としてOracleのROWIDが使用されます。データビューが複数のOracleデータベーステーブルのフィールドから作成されている場合は、OracleのROWIDがないので、一意のインデックスを入力する必要があります。このインデックスは仮想インデックスでもかまいません。

ビュー

ビューには、仮想のユニークインデックスを定義する必要があります。ビューではINSERT、UPDATEおよびDELETE操作を使用することができますが、ビューにROWIDがある場合のみです。複数のテーブルに定義されているビューにはROWIDはありません。したがって、［データソース特性］の［SQL］セクションの［位置］特性は、「D=デフォルト」または「R=ROWID」でなく、「U=重複不可インデックス」に設定する必要があります。

注意：

Magic xpaでは、ビューは通常のテーブルと見なされます。Magic xpaを使用して名前の変更または変換操作は実行できません。このような操作を実行した場合、エラーメッセージが表示され、データベース内のビューの変換や名前の変更は行われません。


データベース ORACLE xpaデータタイプ

ホーム > リファレンスガイド > データベース > Oracleデータベース > Magic xpaのデータタイプ

Magic xpaのデータタイプ

Magic xpaのデータ型とサポートされる保存タイプ、およびOracleで有効なデータ型の詳細については、以下のトピックを参照してください。

文字型

数値型

論理型

日付型

時刻型

BLOB型

Unicode型


データベース ORACLE xpaデータタイプ 文字

ホーム > リファレンスガイド > データベース > Oracleデータベース > Magic xpaのデータタイプ > 文字型

文字型

次の表は、Magic xpaの文字型と有効なOracleのデータ型の一覧です。

表内の各項目には、［カラム特性］の［SQL］セクションの［タイプ］特性で指定されるデフォルトのデータ型が含まれています。

Magic xpaの記憶型式 | Magic xpaの書式 | Magic xpaの保存サイズ | 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 以上 | n+2 | LONG RAW

注意：

nは、指定された書式番号です。


データベース ORACLE xpaデータタイプ 数値

ホーム > リファレンスガイド > データベース > Oracleデータベース > Magic xpaのデータタイプ > 数値型

数値型

次の表は、Magic xpaの数値型と有効なOracleのデータ型の一覧です。

表内の各項目には、［カラム特性］の［SQL］セクションの［タイプ］特性で指定されるデフォルトのデータ型が含まれています。

Magic xpaの記憶型式 | Magic xpaの書式 | Magic xpaの 保存サイズ | 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 | n+1 | NUMBER
Magic Number | n, 1-18 | n/2+1 | RAW
C-Isam Decimal | n, 1-32 | n/2+1 | RAW
Extended Float | n, 1-15 | 8 | RAW

注意：

  • nは、指定された書式番号です。

  • Magic xpaでは、18桁までの数字がサポートされます。


データベース ORACLE xpaデータタイプ 論理

ホーム > リファレンスガイド > データベース > Oracleデータベース > Magic xpaのデータタイプ > 論理型

論理型

次の表は、Magic xpaの論理型と有効なOracleのデータ型の一覧です。

表内の各項目には、［カラム特性］の［SQL］セクションの［タイプ］特性で指定されるデフォルトのデータ型が含まれています。

Magic xpaの記憶型式 | Magic xpaの書式 | Magic xpaの 保存サイズ | Oracleの データタイプ
Integer Logical | 5 | 1 | NUMBER
 | 5 | 2 | RAW
String Logical | 5 | 1 | RAW


データベース ORACLE xpaデータタイプ 日付

ホーム > リファレンスガイド > データベース > Oracleデータベース > Magic xpaのデータタイプ > 日付型

日付型

次の表は、Magic xpaの日付型と有効なOracleのデータ型の一覧です。

表内の各項目には、［カラム特性］の［SQL］セクションの［タイプ］特性で指定されるデフォルトのデータ型が含まれています。

Magic xpaの記憶型式 | Magic xpaの書式 | Magic xpaの 保存サイズ | 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 xpaのString DateをOracleのCHARにマップするには、［タイプ］特性でCHAR（8）を指定します。

  • OracleのDATEフィールドをMagic xpaの文字型項目にマップして、レコードの更新、挿入、読み込みを行うことで、日付表示形式関連のDBエラーを避けることができます。

    • データベースフィールドの日付と時間の両方を保持して、オラクルセッションを最適な書式に変更するために十分長い文字型を使用してください。

    • 例えば、以下のような文字列"31/03/2010 16:53:10"を保持するMagic xpaの24桁の文字型項目は、対応するOracleフォーマットを使用しなければなりません。

    • それに応じてOracleフォーマットを変更するには、以下のステートメントが定義されたSQLコマンドタスクをメインプログラムのタスク後から呼び出すことで実行できます。

ALTER SESSION SET NLS_DATE_FORMAT = 'DD/MM/YYYY HH24:MI:SS'


データベース ORACLE xpaデータタイプ 時刻

ホーム > リファレンスガイド > データベース > Oracleデータベース > Magic xpaのデータタイプ > 時刻型

時刻型

次の表は、Magic xpaの時刻型と有効なOracleのデータ型の一覧です。

表内の各項目には、［カラム特性］の［SQL］セクションの［タイプ］特性で指定されるデフォルトのデータ型が含まれています。

Magic xpaの記憶型式 | Magic xpaの書式 | Magic xpaの 保存サイズ | 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 xpaのString TimeをOracleのDATEデータ型にマップするには、［タイプ］特性に「MGTIME」を指定することもできます。


データベース ORACLE xpaデータタイプ BLOB

ホーム > リファレンスガイド > データベース > Oracleデータベース > Magic xpaのデータタイプ > Blob型

BLOB型

次の表は、Magic xpaのBLOB型と有効なOracleのデータ型の一覧です。

表内の各項目には、［カラム特性］の［SQL］セクションの［タイプ］特性で指定されるデフォルトのデータ型が含まれています。

Magic xpaの記憶型式 | Magic xpaの書式 | Magic xpaの 保存サイズ | Oracleの データタイプ
BLOB Binary |  |  | BLOB
BLOB Ansi |  |  | CLOB
BLOB Unicode |  |  | NCLOB


データベース ORACLE xpaデータタイプ Unicode

ホーム > リファレンスガイド > データベース > Oracleデータベース > Magic xpaのデータタイプ > Unicode型

Unicode型

次の表は、Magic xpaのUnicode型と有効なOracleのデータ型の一覧です。

表内の各項目には、［カラム特性］の［SQL］セクションの［タイプ］特性で指定されるデフォルトのデータ型が含まれています。

Magic xpaの記憶型式 | Magic xpaの書式 | Magic xpaの保存サイズ | Oracleのデータタイプ
ZUnicode | n,1-2000 >2000 | n*2+2 | NVARCHAR2 NCLOB
Unicode | n,1-2000 >2000 | n*2 | NVARCHAR2 NCLOB


データベース ORACLE Oracleデータタイプ

ホーム > リファレンスガイド > データベース > Oracleデータベース > Oracleのデータタイプ

Oracleのデータタイプ

次の表は、Oracleテーブルに対するMagic xpaの［定義取得］の結果、Oracleデータベースのデータタイプに対応するMagic xpaのデータタイプの一覧です。

Oracleの データタイプ | 型 | Magic xpaの 保存タイプ | 保存サイズ | 書式
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 String Time | 8 | YYYY/MM/DD
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 xpaの日付型保存タイプにマップされます。DATEカラムの全ての部分を「YYYY/MM/DD HH:MM:SS.mmm」形式で表示するには、OracleのDATEデータタイプをMagic xpaの文字型にマップする必要があります。これは［DBMS］特性の［データベース情報］特性で「SQL_DATEALPHA=Y」を指定して実行できます。

  • 保存サイズはデータソース（ゲートウェイの保存テーブル）に割り当てられたデータベースに基づいて計算されています。保存サイズは、インポート時に再計算されます。

  • テーブルの定義の取得後、LOGやLONG RAW のデータタイプに対してプロジェクトに適切なサイズの書式に設定してください。


データベース ORACLE DB情報

ホーム > リファレンスガイド > データベース > Oracleデータベース > データベース情報

データベース情報

［DBMS］テーブルの［パラメータ］カラムや、［データベース特性］、［データソース特性］、［カラム特性］、および［インデックス特性］の［SQLデータベース情報］特性を使用すると、Magic xpaからDBMSにデータベース依存の情報を渡すことができます。このパラメータの使用は任意です。

［データベース情報］で送信することができる値については、以下の通りです。

キーワード

内容

ALPHA_DATE=N

このキーワードをNに設定した場合、デフォルトのデータ型が文字型に変更されます。日付表示形式は、YYYY-MM-DD-HH24：MM：SSになります。

○

CLUSTER="cluster-name"

表がクラスタの一部となるように指定します。なお、クラスタ名の後に(列名)を入れないと「新規登録できません」のエラーになります。 例．CLUSTER="TMP_USR(TMP_ID)" INITRANS=n 表に割り当てられた各データ・ブロック内で割り当てられるトランザクション・エントリの初期値を指定します。

○

Default_Blob_to_Blob=Y

OracleテーブルのBLOB型のカラムは、Magic xpaによってLONGRAWタイプにマップされます。LONGRAWタイプには、カラムがBLOBタイプにマップされると、様々な制限事項があります。

○

INITRANS=N

テーブルに割り当てられる各々のデータブロックに割り当てられるトランザクションエントリの最初の値

○

MAXTRANS=N

表に割り当てられたデータ・ブロックを同時に更新することができるトランザクションの最大値を指定します。

○

NLSSORT=N

NLSSORTのサポート機能を使用すると、アプリケーションはアルファベットの規則に準拠する文字列を突き合わせることができます。

○

OCI_DEFAULT_FOR_SP=Y

SQLコマンドでOracleのストアードプロシージャを呼び出すプログラムにおいて、このフラグを設定するとautocommit offで実行されます。

これによって、DMLのSQL文を含むストアドプロシージャを実行する場合、トランザクションの終了をMagic xpaのプログラムで明示的に制御することが可能になります。ただし、DMLのSQL文を含むストアドプロシージャでCOMMITを行っていない場合には、プロシージャの実行直後にデータが反映されないことによって、意図した処理が行われないことがあります。

また、戻り値や結果セットを返さないSQLコマンドのストアドプロシージャに対して有効です。

○

ORA_Zero_Dates_allowed=Y

Oracleに0の日付を送ることを認めないようにします。このキーワードがNに設定された場合、Magic xpaがOracle（Oracle日付にマップされるMAGICの日付型フィールド)に0日付を送ると、即座に、エラーメッセージを表示します。通常のMagicタスク（ダイレクトSQLでない)を使用して、0日付の作成/修正を行った場合に適用されます。

○

PCTFREE=N

表の行に対する次回の更新に備えて、予約(確保)されている各表のデータ・ブロック中の領域の占有率を指定します。

○

PCTUSED=N

表の各データ・ブロックに対してOracleがメンテナンスしている使用中の領域の最小限の占有率を指定します。

○

SQL_ DATETOALPHA=N

SQL_DATETOALPHA=Yを設定すると、定義取得の際にRDBMSのDATE型カラムが、長さ19文字、YYYY- MM- DD HH: MM: SS形式のMagic xpaの文字型（Zstring）カラムに自動的に変換されます。

注意：

RDBMSでDATE型であっても、Magic xpaは文字型として処理するため、日付型としてのデータの検証を行うことはできません。SQL_ DATETOALPHAパラメータを使用する場合、INSERTおよびUPDATE操作の妥当性検査をユーザが独自に制御する必要があります。行わない場合には、データベースに無効な日付が挿入される可能性があります。

○

STORAGE ="storage-clause"

表に対する記憶特性を指定します。

○

TABLESPACE="tablespace-name"

Oracleがテーブルを作る表領域を示します。

○


ダイレクトSQL バインディング

D-SQLバインディングは、Oracleデータベースでのみ該当します。

ダイレクトSQLタスクを使用するとき、Magic xpaはSQLステートメントを動的に作成した後にデータベースに送ります。データベースはSQLステートメントを文字または数値文字列の値として受け取り、SQLステートメントを解析して実行します。

解析段階は、ステートメントを翻訳して、その有効性のチェックを行います。そして、カラムとテーブル定義をチェックして、権利をチェックして、ステートメントを実行するために最適な方法を見つけ出します。

SQLステートメントの要素は、事前に定義された値に対するプレイスホルダーとなります。プレイスホルダーを値と入れ替えることはバインディングと呼ばれています。これにより、データベースによってSQLステートメントを再解析するプロセスを回避できます。

分析されたステートメントは、共有SQLエリアに保存されます。ステートメントが同じものとして確認されたものだけが、次のステートメントで再生利用されます。

例：:

select * from orders_line where order_line=1

2番目のステートメントが以下のような場合：

select * from orders_line where order_line=2

SQLステートメントが複雑になると、分析プロセスに時間がかかる場合があります。バインディングはパラメータとして値を送ることを許可し、分析段階でより一般的なステートメントを許可します。分析の後、値はパラメータ内のステートメントとバインドされ、ステートメントが実行されます。

Magic xpaの暗黙のプログラムは、最適なパフォーマンスを考慮に入れるために、自動的にバインディングを使用します。

ダイレクトSQLタスクでは、パラメータは値だけでなくステートメント自体の要素でもあります。デフォルトでは、Magic xpaはダイレクトSQLタスクでバインディングを使用しません。ステートメントは、値と一緒にデータベースに送られ、分析において再利用できません。

バインディング変数として項目を指定するには、パラメータは入力引数でコロン（：)の代わりに、チルダ文字（~)で記述しなければなりません。Magic xpaは、そのデータ型に基づいて~1を適切な値と入れ替えます。

例：

Select * from orders_lines where order_line = ~1

バインディングは、Magic xpaの文字型、論理型、数値型でサポートされます。シングルクォーテーション（''）は、文字型パラメータでは必要ありません。Magic xpaは、日付型、時刻型、論理型、数値型のデータを数値としてを保存します。

Oracleの並行データ型が数値の場合、バインディング機能を使用することができます。

注意：

数値式が使用される場合、Magic xpaはクォーテーションで囲みます。クォーテーションを使用したくない場合は、式の代わりにバウンド項目を使用してください。

バインディング制約

バインディングは、以下のデータベースとゲートウェイ規制のもとで使用することができます。

  • 出力を返すSelectステートメントまたはストアドプロシージャーだけでバインディングを使用することができます。

  • フィールド名のためにでなく、値のためにだけバインディングを使用することができます。

バウンド（~)とアンバウンドパラメータが指定されたSQLステートメントは、バインディング項目の恩恵を排除します。

注意：

~5 =0（カラム名を意味すると思われるバウンド式）のような式の使用はサポートできません。


データベース固有の追加情報 Oracle

ホーム > リファレンスガイド > データベース > Oracleデータベース > 追加情報

追加情報

関連トピック：

注意事項

ロックとトランザクション


データベース固有の追加情報 Oracle 注意事項

ホーム > リファレンスガイド > データベース > Oracleデータベース > 追加情報 > 注意事項

注意事項

Uicode

Oracle 上で Unicode を扱う場合の注意事項は、「Unicodeを利用する場合の注意事項」 を参照してください。

Magic SQL パラメータの式

Magic SQL パラメータの式では、以下の関数をサポートしておりません。

  • DVAL

  • TVAL

  • ADDTIME

Oracle12cを使用する場合の注意事項

Oracle 12c の新機能や仕様変更についてはサポートしておりません。

以下の件について確認しています。

マルチテナントアーキテクチャーについて

Oracle12cでは、マルチテナントアーキテクチャーによるコンテナデータベースとプラガブルデータベースの構成が、インストール時またはデータベース作成時のデフォルトで行われます。Magic xpaでは、Oracleクライアント(32bit)でのプラガブルデータベースに対する接続可能な環境(※)において、動作を確認しています。
また、プラガブルデータベースを作成しないOracle 11g以前と同様のデータベース構成においても、動作を確認しています。

(※) Oracleクライアントにおけるネットサービス名のサービス名に、プラガブル・データベース名（デフォルトではpdborcl)を設定

VARCHAR2型/NVARCHAR2型/RAW型のサイズ拡張について

VARCHAR2型、NVARCHAR2型、RAW型の最大サイズが4000バイトから32Kバイトに拡張することが可能になりましたが、Magic xpa 2.3 では対応していません。

IDENTITY columnsについて

Oracle12cでは、数値型カラムに対して、自動採番を行うANSI標準のIDENTITY Columnsがサポートされました。

カラムの［タイプ］特性に「NUMBER GENERATED AS IDENTITY」などの設定を行うことによって、テーブルの新規作成時に有効にすることが可能ですが、このオプションの仕様により、以下の点に注意して下さい。

  • カラムの［NULL値可］、［デフォルト値］、［データベースデフォルト値］の各特性は無効になります。

  • プログラムのデータビューに、この設定を行ったカラムを定義した場合、実行時にデータの登録および修正を行うとエラーが発生します。

その他

  • Oracleは、P.SQL等の ISAM 系のファイルマネージャと、排他制御、トランザクション等に関する仕様が異なるため、P.SQL等の ISAM 系のファイルマネージャを使用する場合と Oracle 等の SQL RDBMSを使用する場合では、プログラムの作成方法が異なる部分があります。

  • ストアドプロシジャのINパラメータにスペースを渡す場合は、1バイトの文字型変数項目をセットしてください。


データベース固有の追加情報 Oracle ロックとトランザクション

ホーム > リファレンスガイド > データベース > Oracleデータベース > 追加情報 > ロックとトランザクション

ロックとトランザクション

物理トランザクションモードで Oracle のロック機構のみを使用するときの注意事項

物理トランザクションモードのプログラムにおいて、Magic xpaのロックファイル(mglock.dat)を非共用にし Oracleの並行処理制御機能のみを使用する場合、テーブルのアクセス規制はOracleの排他制御のみに依存します。

注意すべき点は、共有モードがR(=読込)の時に、Magic xpaはOracleのSHAREモードのロックをかけますが、このモードでは、Magic xpaのRモードと異なり、他の端末から処理(W=書出)モードでのアクセス（ファイルのオープン）を許可することです。 その際、後の端末がレコードへの書き出しを行い、レコードロックをかけようとする時に、先に共有Rモード、すなわちSHAREモードでロックをかけた端末が終了しない限り、後の端末は待ちの状態が発生します。また下表の特定の場合によっては、先のSHAREモードの端末側でデッドロックが発生することがあります。

以下にアクセス規制を挙げます。 なお、下表は、処理A から先にアクセスされたテーブルに対して、処理Bが後からアクセスした場合のアクセス規制を示しています。 この表中、次の記号を使っています。

記号 | 意味
T- | テーブルアクセスに制限があります（テーブルがオープンできません）。
R- | レコードアクセスに制限があります（レコードロックがかかります）。

(1) タスクレベルのトランザクションの場合

 | 処理A
処理B | アクセスモード |  | 読込(R) |  |  | 書出(W)
 |  | 共有 | 読込(R) | 書出(W) | なし(N) | 読込(R) | 書出(W) | なし(N)
 | 読込(R) | 読込(R) |  |  | T- | 注2 | 注2 | T-
 |  | 書出(W) |  |  |  |  |  |
 |  | なし(N) | T- |  | T- | 注2 | 注2 | T-
 | 書出(W) | 読込(R) | 注3 |  | T- | 注2,3,4 | 注2,4 | T-
 |  | 書出(W) | 注3 |  |  | 注3 | 注1 | 注1
 |  | なし(N) | T- |  | T- | T- | 注2 | T-

  • 注1： T+R- ですが、レコードロックが解除されるタイミングは処理ＡのPGを終了する時です。

  • 注2： 処理A側でレコードに書込みを行うと、テーブルロックがかかります。

  • 注3： レコードに書込みを行うと、処理Aがテーブルを閉じるまで黙り状態になることがあります。

  • 注4： 処理Aでレコードの書込みを行う前に処理Bが実行された場合、いずれかでレコードの書込みのタイミングで「ORA-00060:デッドロック」のエラーが発生するか、フリーズすることがあります。

(2) レコードレベルでのトランザクションの場合

 | 処理A
処理B | アクセスモード |  | 読込(R) |  |  | 書出(W)
 |  | 共有 | 読込(R) | 書出(W) | なし(N) | 読込(R) | 書出(W) | なし(N)
 | 読込(R) | 読込(R) |  |  | T- |  |  | T-
 |  | 書出(W) |  |  |  |  |  |
 |  | なし(N) | T- |  | T- | T- |  | T-
 | 書出(W) | 読込(R) | 注1 |  | T- | 注1 |  | T-
 |  | 書出(W) | 注1 |  | R- | 注1 |  | R-
 |  | なし(N) | T- |  | T- | T- |  | T-

注1:処理Aで行移動したときに書き込みが行われます。

物理トランザクションモードでのDBテーブル/共有パラメータと Oracleに発行されるSQL文の関係

共有モードW | （ロックコマンドは発行されません）
共有モードR | lock table ... in share mode
共有モードN | lock table ... in exclusive mode
入力時（即時）ロック | select ... for update

物理トランザクションモードで推奨する環境設定

(1) 他のアプリケーションとのデータベースの共有を行う場合

データソースの［データベース特性］ ／［MAGICロック］ | 「テーブル」
プログラムの［ロック方式］ | オンラインタスクは「入力時」 バッチタスクは「即時」
ロックパス | 環境ごとに違うロケーション

(2) Magic xpaでのみデータベースを操作し、従来のアクセス規制をなるだけ引き継ぎたい場合

データソースの［データベース特性］ ／［MAGICロック］ | 「両方」
プログラムの［ロック方式］ | オンラインタスクは「入力時」 バッチタスクは「即時」
ロックパス | 全てのMagic xpaで同じロケーション


データベース MS-SQL

ホーム > リファレンスガイド > データベース > MS-SQL Server データベース

MS-SQL Server データベース

MS-SQL Serverデータベースと接続する際のMagic xpaの機能については、以下のトピックを参照してください。

Magic xpaのデータタイプ

MS-SQL Serverのデータタイプ

TEXTデータタイプ

物理ロック

ヒント

IDENTITYカラム

ビュー

一時テーブル

カーソルとDBコマンド

データベース情報

追加情報


データベース MS-SQL xpaデータタイプ

ホーム > リファレンスガイド > データベース > MS-SQL Server データベース > Magic xpaのデータタイプ

Magic xpaのデータタイプ

Magic xpaのデータ型とサポートされる保存タイプ、およびMS-SQL Serverで有効なデータタイプの詳細については、以下のトピックを参照してください。

文字型

数値型

論理型

日付型

時刻型

BLOB型

Unicode型


データベース MS-SQL xpaデータタイプ 文字

ホーム > リファレンスガイド > データベース > MS-SQL Server データベース > Magic xpaのデータタイプ > 文字型

文字型

次の表は、Magic xpaの文字型とMS-SQL Serverで有効なデータ型の一覧です。

表内の各項目には、［カラム特性］の［SQL］タブの［タイプ］特性で指定されるデフォルトのデータ型が含まれています。

Magic xpaの記憶型式 | Magic xpaの書式 | Magic xpaの保存サイズ | 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 以上 | n+2 | IMAGE

注意：

nは、指定された書式番号です。


データベース MS-SQL xpaデータタイプ 数値

ホーム > リファレンスガイド > データベース > MS-SQL Server データベース > Magic xpaのデータタイプ > 数値型

数値型

以下の表は、Magic xpaの数値型とMS-SQL Serverで有効なデータ型の一覧です。

表内の各項目には、［カラム特性］の［SQL］タブの［タイプ］特性で指定されるデフォルトのデータ型が含まれています。

Magic xpaの 記憶型式 | Magic xpaの書式 | Magic xpaの 保存サイズ | 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 xpaでは、18桁までの数字がサポートされます。


データベース MS-SQL xpaデータタイプ 論理

ホーム > リファレンスガイド > データベース > MS-SQL Server データベース > Magic xpaのデータタイプ > 論理型

論理型

次の表は、Magic xpaの論理型とMS-SQL Serverで有効なデータ型の一覧です。

表内の各項目には、［カラム特性］の［SQL］タブの［タイプ］特性で指定されるデフォルトのデータ型が含まれています。

Magic xpaの 記憶型式 | Magic xpaの書式 | Magic xpaの 保存サイズ | MS-SQL Serverの データタイプ
Integer Logical | 5 | 1 | BIT
 | 5 | 2 | SMALLINT
String Logical | 5 | 1 | BINARY


データベース MS-SQL xpaデータタイプ 日付

ホーム > リファレンスガイド > データベース > MS-SQL Server データベース > Magic xpaのデータタイプ > 日付型

日付型

次の表は、Magic xpaの日付型とMS-SQL Serverで有効なデータ型の一覧です。

表内の各項目には、［カラム特性］の［SQL］タブの［タイプ］特性で指定されるデフォルトのデータ型が含まれています。

Magic xpaの 記憶型式 | Magic xpaの書式 | Magic xpaの 保存サイズ | 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 xpaのString DateをMS-SQL ServerのCHARにマップするには、［タイプ］特性にCHAR（8）を指定します。


データベース MS-SQL xpaデータタイプ 時刻

ホーム > リファレンスガイド > データベース > MS-SQL Server データベース > Magic xpaのデータタイプ > 時刻型

時刻型

次の表は、Magic xpaの時刻型とMS-SQL Serverで有効なデータ型の一覧です。

表内の各項目には、［カラム特性］の［SQL］タブの［タイプ］特性で指定されるデフォルトのデータ型が含まれています。

Magic xpaの 記憶型式 | Magic xpaの書式 | Magic xpaの 保存サイズ | 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 xpaのString TimeをMS-SQL ServerのDATETIMEデータ型にマップするには、［タイプ］特性に「MGTIME」を指定します。


データベース MS-SQL xpaデータタイプ BLOB

ホーム > リファレンスガイド > データベース > MS-SQL Server データベース > Magic xpaのデータタイプ > Blob型

BLOB型

次の表は、Magic xpaのBLOB型とMS-SQL Serverで有効なデータ型の一覧です。

表内の各項目には、［カラム特性］の［SQL］タブの［タイプ］特性で指定されるデフォルトのデータ型が含まれています。

Magic xpaの記憶型式 | Magic xpaの 書式 | Magic xpaの 保存サイズ | MS-SQL Serverの データタイプ
BLOB Binary |  | 28 | IMAGE
BLOB Snsi |  | 28 | TEXT※
BLOB Unicode |  | 28 | NTEXT

※：TEXTフィールドにデータを入力する場合は、 ［項目更新］処理コマンドまたはFile2Blb関数を使用する方法を推奨します。ダイレクトSQLステートメントでこのデータ型を使用する場合は、BLOBサイズの最大値は64Kになります。そのサイズを変更するには、［データベース特性］で「SQLBLOB=サイズ」のキーワードを使用することができます。

注意：

このフィールドからデータを取得すると、Magic xpaはBLOBデータの終了までの余分のバイトデータが追加されます。

ファイルにBLOBを保存するためにBlb2File関数を使用した場合、ファイルサイズは最初のサイズより1バイト大きくなります。


データベース MS-SQL xpaデータタイプ Unicode

ホーム > リファレンスガイド > データベース > MS-SQL Server データベース > Magic xpaのデータタイプ > Unicode型

Unicode型

次の表は、Magic xpaのUnicode型とMS-SQL Serverで有効なデータ型の一覧です。

表内の各項目には、［カラム特性］の［SQL］タブの［タイプ］特性で指定されるデフォルトのデータ型が含まれています。

Magic xpaの記憶型式 | Magic xpaの書式 | Magic xpaの保存サイズ | MS-SQL Serverの データタイプ
ZUnicode | n,1-4000 >4000 | n*2+2 | nVARCHAR nTEXT
Unicode | n,1-4000 >4000 | n*2 | nVARCHAR nTEXT


データベース MS-SQL MS-SQLデータタイプ

ホーム > リファレンスガイド > データベース > MS-SQL Server データベース > MS-SQL Serverのデータタイプ

MS-SQL Serverのデータタイプ

次の表は、MS-SQL Serverテーブルに対するMagic xpaの［定義取得］処理コマンドの結果の一覧です。また、Microsoft SQL Serverのデータタイプに対応するMagic xpaのデータタイプも示します。

MS-SQL Serverのデータタイプ | 型 | Magic xpaの保存タイプ | 保存サイズ | 書式
CHAR(n), VARCHAR(n) | 文字型 | Zstring | n+1, 2- 8001 | n, 1-8000
UNIQUEIDENTIFER | 文字型 | Zstring | 39 | 38
カラムがUNIQUEIDENTIFERとして定義されるテーブル内に定義されている場合、以下の規則があてはまります。 NewID（)のようなデフォルト値がカラムの［データベースデフォルト］特性で定義されている場合、この関数値はデータベースから取得され、INSERTステートメントの一部として送られます。 ［データベースデフォルト値］に値が定義されていない場合、Magic xpaはカラムを通常のカラムとしてアクセスします。
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 | 日付型 時刻型 | 2つのフィールドを作成します。1つは、tring Date、もう1つは、String Timeになります。これらは、［datetimeの一部］特性でリンクされます。 | 8 | ##/##/####
SMALLDATETIME | 日付型 時刻型 | 2つのフィールドを作成します。1つは、tring Date、もう1つは、String Timeになります。これらは、［datetimeの一部］特性でリンクされます。 | 8 | ##/##/####
DATE (SQL Server 2008) | 日付型 | String Date | 8 |
TIME (SQL Server 2008) | 数値型 | String Time 注：Timeと同等のTime(7)を除き、Magic xpaはTime(N)フィールドをサポートしません。 | 6 |
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 xpaの日付型保存タイプにマップされます。

  • DATETIME/SMALLDATETIMEカラムの全ての部分を、「YYYY/MM/DD HH:MM:SS.mmm」（DATETIME）/「YYYY/MM/DD HH:MM」（SMALLDATETIME）形式で表示するには、MS-SQL ServerのDATETIME/SMALLDATETIMEをMagic xpaの文字型属性にマップする必要があります。
    そのためには、［データベース特性］の［データベース情報］特性で「SQL_DATETOALPHA=Y」を指定します。

  • 保存サイズはデータソース（ゲートウェイの保存テーブル）に割り当てられたデータベースに基づいて計算されています。保存サイズは、インポート時に再計算されます。


データベース MS-SQL Textデータタイプ

ホーム > リファレンスガイド > データベース > MS-SQL Server データベース > TEXTデータタイプ

TEXTデータタイプ

MS-SQL Serverテーブルで［定義取得］を実行したら、TEXTデータタイプのカラムの適切な書式を入力しなければなりません。デフォルトでは、このカラムを受け取るフィールドの書式は10ですが、1から32000までの有効な書式を入力する必要があります。


データベース MS-SQL 物理ロック

ホーム > リファレンスガイド > データベース > MS-SQL Server データベース > 物理ロック

物理ロック

物理ロックは、現在ロックされているレコードをどのユーザも修正できないようにする方法です。

つまり、ユーザがレコードをロックした時から、そのユーザがレコードを解放するまで、別のユーザはそのレコードを修正することができません。物理ロックは、次のように実行されます。Magic xpaのロック方式に基づいてレコードがロックされると、SELECT文がUPDLOCKヒントとともに発行されます。

UPDLOCKヒントによって、トランザクションが完了するまで、ほかのアプリケーションでそのレコードを変更することができなくなります。

また、論理ロックを有効にするには以下のフラグを使用します。

SQL_PHYSICAL_LOCKING=N


データベース MS-SQL ヒント

ホーム > リファレンスガイド > データベース > MS-SQL Server データベース > ヒント

ヒント

ヒント文字列を使用すると、開発者は、チェックなしでそのままSELECT文に追加されるハードコードされた文字列を指定することができます。

［インデックス特性］でFORCE_ INDEXヒントを指定すると、そのインデックスのみに適用されます。［データソース特性］で［ヒント］特性に「FORCE_ INDEX」を指定すると、そのテーブル内の全てのインデックスに適用され、［データベース特性］でFORCE_ INDEXヒントを指定すると、データベース内の全てのテーブルの全てのインデックスに適用されます。

［データソース特性］または［インデックス特性］でFORCE_ INDEXヒントを指定した場合、ゲートウェイでオプティマイザが特定のインデックスのインデックス、または特定のテーブル内の全てのインデックスのインデックスを使用しないようにするには、［データソース特性］または［インデックス特性］で［ヒント］特性を「No」に設定します。これにより最適化ヒントが発行されなくなります。

FORCE_ INDEXヒントを使用すると、ゲートウェイで次のようにインデックスを強制することができます。

ゲートウェイによって生成されたSELECT文に次の文字列が追加されます。

（INDEX indname）

Indnameは、Magic xpaのそのテーブルのインデックスの名前です。

最適化ヒントは、特殊な場合にのみ使用するようお勧めします。MS-SQL Serverに送信することができる最適化ヒントの完全な一覧については、MS-SQL Serverのマニュアルを参照してください。


データベース MS-SQL IDENTITY

ホーム > リファレンスガイド > データベース > MS-SQL Server データベース > IDENTITYカラム

IDENTITYカラム

IDENTITY特性を持つカラムには、テーブル内の各行を一意に識別するシステム生成の値が含まれています。これを使用して、従業員のID番号などの一連の番号が生成されます。IDENTITYカラムがあるテーブルに値を挿入すると、MS-SQL Serverによって、最後に使用されたIDENTITY値（行の追加によって増加されます）とカラム作成時に指定された増分値に基づいて次の識別子が自動的に生成されます。

デフォルトでは、IDENTITYカラムにデータを直接挿入することはできません。

IDENTITYカラムは、通常、Magic xpaのテーブルの位置として使用されるように定義されるので、Magicタスクで選択されなければなりません。つまり、タスクによって発行されるINSERTコマンドにこのカラムが含まれることになります。MS-SQL Serverではこのカラムの値を手動で更新することはできないので、データを挿入するとエラーメッセージが表示されます。解決策は、カラムがIDENTITYカラムであるため、Magic xpaのINSERTコマンドではこのカラムを無視するようにMagic xpaに知らせることです。

これは、Magic MS-SQL Serverゲートウェイに次のように実装されました。

  • ［カラム特性］の［SQLタイプ］にキーワード「IDENTITY」を追加することによって、カラムがIDENTITYカラムとして識別されます。これは、Magic xpaのプログラマがテーブルを新規作成しても、定義取得を実行しても機能します。その結果、このカラムをIDENTITYとして処理するようゲートウェイに通知されます。

例：

IDENTITY特性をもつINTカラムは、［カラム特性］の［SQL］セクションの［タイプ］特性で次のように定義します。

INT IDENTITY

  • ゲートウェイによってINSERTコマンドが発行されても、IDENTITYカラムはスキップされます。

  • 定義取得では、IDENTITYカラムは［修正許可］が「No」になります。

注意：

プログラマがIDENTITYカラムの［修正許可］を「Yes」に変更した場合、タスクでカラムを更新すると、エラーメッセージが表示されます。


データベース MS-SQL ビュー

ホーム > リファレンスガイド > データベース > MS-SQL Server データベース > ビュー

ビュー

ビューには、仮想のユニークインデックスを定義する必要があります。ビューではINSERT、UPDATEおよびDELETE操作を行うことができます。MS-SQL Serverでは、複数のテーブルビューで更新を実行することができます。［データソース特性］の「位置」として指定されているインデックスのセグメントのいずれかが更新されると、画面に表示されるレコードが一致しなくなることがあります。Magic xpaでは、［ビュー］は通常のテーブルとみなされることに注意してください。

また、Magic xpaを使用して名前の変更または変換操作は実行できません。Magic xpaを使用して名前の変更または変換操作を実行すると、エラーメッセージが表示され、データベース内のビューの変換や名前の変更は行われません。


データベース MS-SQL 一時テーブル

ホーム > リファレンスガイド > データベース > MS-SQL Server データベース > 一時テーブル

一時テーブル

一時テーブルは、MS-SQL Serverによる処理が完了すると、自動的に消去されるテーブルです。一時テーブルには、ローカルとグローバルの2種類があります。

関連トピック：

ローカル一時テーブル

グローバル一時テーブル


データベース MS-SQL 一時テーブル ローカル

ホーム > リファレンスガイド > データベース > MS-SQL Server データベース > 一時テーブル > ローカル一時テーブル

ローカル一時テーブル

ローカル一時テーブルは、現在のセッション中のみ参照することができ、現在のセッションが終了すると自動的に消去されます。テーブル名には、先頭に記号が1つ付きます（#table_name）。

注意：

  • ローカル一時テーブルをサブタスクで作成することはできません。実行中にローカル一時テーブルを作成するには、親タスクの[メインソース特性]か[リンク特性]で定義する必要があります。また、グローバル一時テーブルを使用する方法もあります。

  • ローカル一時テーブルは、SQLコマンドを使用して参照することはできません。代わりに、グローバル一時テーブルを使用してください。


データベース MS-SQL 一時テーブル グローバル

ホーム > リファレンスガイド > データベース > MS-SQL Server データベース > 一時テーブル > グローバル一時テーブル

グローバル一時テーブル

グローバル一時テーブルは、全てのセッションで参照することができます。グローバル一時テーブルは、テーブルを作成したセッションが終了し、ほかの全てのタスクでテーブルが参照されなくなると自動的に消去されます。

セッションとテーブルとの関連は、1つのTransact-SQL文が有効な間のみ維持されます。つまり、グローバル一時テーブルは、テーブルを作成しているセッションが完了した時、そのテーブルを参照していた最後のTransact-SQL文が完了すると消去されます。

グローバル一時テーブル名には、先頭に記号が2つ付きます（##table_name）。

グローバル一時テーブルとローカル一時テーブルは、CREATEコマンドの発行元のデータベースに関係なく、MS-SQL Serverによって自動的にTempDBに作成されます。T_が接頭辞として付加される場合とは対照的に、一時的なSQLテーブル名は、常駐テーブルやダイレクトSQLタスク（結果テーブル)、ソート処理の）用として、TEMP_が接頭辞として付加されて作成されます。

一時テーブルは、DROP TABLEを使用して明示的に消去されていない限り、参照されなくなった時に自動的に消去されます。

MS-SQL Serverゲートウェイでは、［データ］リポジトリでテーブル名の前に番号記号（「#」または「##」）を追加するだけで、TempDBデータベースに一時テーブルを保存することができます。


データベース MS-SQL カーソルとDBコマンド

ホーム > リファレンスガイド > データベース > MS-SQL Server データベース > カーソルとDBコマンド

カーソルとDBコマンド

MS-SQL Serverでの作業には、カーソルまたはDBコマンドを使用する2つの方法があります。

関連トピック：

DBコマンド

カーソル


データベース MS-SQL カーソルとDBコマンド DBコマンド

ホーム > リファレンスガイド > データベース > MS-SQL Server データベース > カーソルとDBコマンド > DBコマンド

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コマンドタスクを使用しないようにアプリケーションを修正してください。


データベース MS-SQL カーソルとDBコマンド カーソル

ホーム > リファレンスガイド > データベース > MS-SQL Server データベース > カーソルとDBコマンド > カーソル

カーソル

MS-SQL Serverゲートウェイでは、オンラインタスクには動的カーソル、バッチタスクにはキーセットカーソルが使用されます。

関連するパラメータ

  • ［データソース特性］の［SQL］タブの［カーソル］特性を「No」に設定すると、特定のテーブルのカーソル使用が無効になり、代わりにDBコマンドが使用されます。

  • ［DBMS特性］の［最大接続数］特性を設定すると、ゲートウェイで使用可能な最大接続数を制御することができます。デフォルト値は「3」です（追加接続が1つあります）。追加接続は、1つのレコードをSELECTするSQLコマンド、あるいはUPDATEなどの取得可能な結果がないSQLコマンドで使用されます。この数字は、サーバ/ユーザ名ごとに適用されます。［データベース］テーブルで複数のデータベースが定義されており、異なるサーバまたは異なるユーザ名を使用するデータベースがある場合、この数字は、異なるサーバまたはユーザ名を持つそれぞれのデータベースに適用されます。

Magic xpaでは、SQL Serverのストアドプロシジャ内のDSQLステートメントでカーソルを使用することができます。

Magic xpaは、結果セットを戻すDSQLステートメントに対してもカーソルの使用をサポートしています。

これは、DSQLステートメントに以下のような記述を追加することで可能です。

/*===CURSOR=Y ===*/

/*===CURSOR=Y ===*/ は、埋め込みSQLのバッチコマンドやオンラインとバッチ・タスク内でのストアドプロシージャーだけに適用できます。


データベース MS-SQL DB情報

ホーム > リファレンスガイド > データベース > MS-SQL Server データベース > データベース情報

データベース情報

［データベース特性］、［データソース特性］、［カラム特性］、および［インデックス特性］の［データベース情報］特性を使用すると、Magic xpaが基になっているDBMSに渡すことができるデータベース依存の情報を指定することができます。このパラメータの使用は任意です。

［データベース情報］で送信することができる値については、以下の通りです。

キーワード

内容

FORCE_INDEX=N

オプティマイザーにインデックスを使用することを強制します。

○

○

MAGICKEY=N

ユニークでないインデックスを使用したデータソースに対して、ユニークなインデックスのカラムを追加します。MAgic xpaはこのカラムに自動的に値を挿入します。

○

○

MSDATE=Y

このキーワードをNに設定した場合、デフォルトのデータ型が文字型に変更されます。日付表示形式は、YYYY-MM-DD-HH24：MM：SSになります。

○

SQL_APPLICATION_ROLE = ［Role Name］

SQL_APPLICATION_ROLE_PASSWORD = ［Password］

データベースへの接続は、これらの2つのキーワードを使用しているアプリケーションで実行されます。これらのキーワードは、デフォルト値がありません。

シークレット名は、実行名とパスワードを定義するために使用できます。

○

SQL_ DATETOALPHA=N

SQL_ DATETOALPHA=Yを設定すると、RDBMSの日付型カラムが、長さ31文字、YYYY- MM- DD HH: MM: SS形式のMagic xpaの文字型（Zstring）カラムに自動的に変換されます。

注意：

RDBMSでDATE型であっても、Magic xpaは文字型として処理するため、日付型としてのデータの検証を行うことはできません。SQL_ DATETOALPHAパラメータを使用する場合、INSERTおよびUPDATE操作の妥当性検査をユーザが独自に制御する必要があります。行わない場合には、データベースに無効な日付が挿入される可能性があります。

○

SQL_PHYSICAL_LOCKING=Y

SQL_PHYSICAL_LOCKING

MS-SQL Serverでは、Magic xpaのデフォルトとして行レベルの物理ロックがサポートされています。論理ロックを使用するには、［データベース特性］の［データベース情報］特性で次のフラグを追加します。

SQL_PHYSICAL_LOCKING=N

このフラグが「Y」に設定されている場合、またはフラグがまったく設定されていない場合、次のように、FROM句内のUPDLOCKヒントが送信されます。

SELECT a,b

FROM tab1 （UPDLOCK NOWAIT）

ORDER BY a

このフラグが「N」に設定されている場合は、ロック動作は論理ロックになります。

○

SQLBLOB = size

パラメータSQLBLOB=nを使用すると、「n」、つまりテーブルの最大BLOBのバイト数を指定することができます。デフォルト値は「65534」で、最大値は「2147483647」です。SQLBLOBの値は、以下のSQLコマンドとデータ変換の2つの場合に関連があります。

SQLコマンドからBLOBを含むストアドプロシジャを実行する場合

結果データベースとしてPervasive(ISAM)を設定してSQLコマンドを使用する場合、またはファイルをPervasive(ISAM)に変換する場合。

Pervasive(ISAM)では、各BLOBに「65534」の制限があります。SQLBLOBの値を「65534」より少なくすることはできますが、「65534」より多くしようとしても変わりません。

○


データベース固有の追加情報 MS-SQL Server

ホーム > リファレンスガイド > データベース > MS-SQL Server データベース > 追加情報

追加情報

Unicode

MS-SQL Server上で Unicode を扱う場合の注意事項については、「Unicodeを利用する場合の注意事項」 を参照してください。

データ型

  • 現在、以下に挙げるデータタイプはサポートされておりません。

  • Cursor型

  • uniqueidentifier型

  • 論理型の項目をキーセグメントに含めると、構文チェックによって「項目番号が無効です」というエラーが出ます。これは、論理型項目はデフォルトでBIT型となりますが、MS-SQL Serverの仕様上、BIT データをインデックスに入れることができないためです。論理型データ項目をキーに入れる場合には、格納形式を「String Logical」にするか、あるいは「Integer Logical」で「サイズ」を2にしてください。

  • money 型では最大19桁(書式15.4)の数値まで扱えますが、Magic xpaで 19桁の数値を扱う場合には、MAGIC.INIの[MAGIC_SPECIALS]に以下のパラメータを設定する必要があります。 この設定がない場合には、Magic xpaは最大18桁までしか使えません。

[MAGIC_SPECIALS]
XXLNumericSize = Y

Magic SQL パラメータの式

Magic SQL パラメータの式では、以下の関数をサポートしています。

  • TIME

  • HOUR

  • MINUTE

  • SECOND

  • DSTR

  • DVAL

  • TSTR

  • TVAL

  • ADDDATE

その他

  • 数字で始まるテーブル名を扱う場合は、データソース名を[ ]で囲んで指定してください。

  • 外部結合リンクは、左外部結合を使用しています。

  • プライマリキーでデータの重複エラーが発生した場合、MSSQLから返されるエラーコードは、ユニークインデックスで重複エラーが発生した場合と異なります。この場合、エラーハンドラのイベントは「制約違反」で捕捉されます。

  • 親タスクのトランザクションモードをタスクトランザクションに設定し、子タスクでオープンするテーブルが読込モードに設定した場合、実行時に子タスクのテーブルが新規作成が行われると、それ以降は処理が続行できなくなることがあります。


データベース ODBC

ホーム > リファレンスガイド > データベース > ODBC データベース

ODBC データベース

ODBCを使用して作業する際のMagic xpaの機能については、以下のトピックを参照してください。

Magic xpaのデータタイプ

ODBCのデータタイプ

データベース情報

トラブルシューティング

ODBC チェックドライバユーティリティ

追加情報

以下の追加情報は、ODBCデータベースゲートウェイを使用した場合に関連するものです。

データベースデフォルト値 | ODBCでは、デフォルト値はサポートされません。
SQLコマンド | ODBCは、SQLコマンドタスクの結果データベースとして使用することはできません。
ロック | ODBCには、明示的なテーブルロックはありません。したがって、共有モードが「N=なし」や「R=読込」に設定しても機能しません。基になっているデータベースエンジンによってロックが実行されます。
ソート／一時データベース | ODBCは、ソートまたは一時テーブル用のデータベースとして使用することはできません。
ビュー | ビューには、仮想の一意インデックスを定義する必要があります。ビューではINSERT、UPDATEおよびDELETE操作を行うことができます。Magic xpaでは、［ビュー］は通常のテーブルとみなされることに注意してください。Magic xpaを使用して名前の変更または変換操作を実行しないでください。Magic xpaを使用して名前の変更または変換操作を実行すると、エラーメッセージが表示され、データベース内のビューの変換や名前の変更は行われません。

注意：

ODBCゲートウェイはβ版です。

本プログラムは、ODBCを介しての試験的・一時的なDBMSへのアクセスの目的のために公開されるモジュールです。以下の点にご注意の上、ご利用ください。

  • 本プログラムは、品質管理プロセスを十分に経たものではないため、本番の環境では使用せず、必ず、実際の業務の運営上影響の出ることのない試験環境 などでご利用ください。

  • 本プログラムは、マジックソフトウェアジャパンのサポートセンターでのサポート対象外ですが、 本プログラムについてのご意見、ご質問、気が付いた点などは、「ベータ評価レポート」に記入して、メールで japan_mgxpa_beta@magicsoftware.com までお送りください。製品の改善に反映させていただきたいと思います。 お送りいただいたメールはすべて良く検討し、製品改善のための参考にさせていただきますが、お問い合わせの内容に対し個別にはお答えできない場合もありますので、予めご了承願います。


データベース ODBC xpaデータタイプ

ホーム > リファレンスガイド > データベース > ODBC データベース > Magic xpaのデータタイプ

Magic xpaのデータタイプ

Magic xpaのデータ型とサポートされる保存タイプ、およびODBCで有効なデータ型の詳細については、以下のトピックを参照してください。

文字型

数値型

論理型

日付型

時刻型

BLOB型

Unicode型


データベース ODBC xpaデータタイプ 文字

ホーム > リファレンスガイド > データベース > ODBC データベース > Magic xpaのデータタイプ > 文字型

文字型

次の表は、Magic xpaの文字型とODBCで有効なデータ型の一覧です。

表内の各項目には、［カラム特性］の［SQL］セクションの［タイプ］特性で指定されるデフォルトのデータ型が含まれています。

Magic xpaの 記憶型式 | Magic xpaの書式 | Magic xpaの 保存サイズ | 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は、指定された書式番号です。


データベース ODBC xpaデータタイプ 数値

ホーム > リファレンスガイド > データベース > ODBC データベース > Magic xpaのデータタイプ > 数値型

数値型

次の表は、Magic xpaの数値型とODBCで有効なデータ型の一覧です。

表内の各項目には、［カラム特性］の［SQL］セクションの［タイプ］特性で指定されるデフォルトのデータ型が含まれています。

Magic xpaの 記憶型式 | Magic xpaの書式 | Magic xpaの 保存サイズ | 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 | 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
Extended Float | n, 1-15 | 8 | BINARY

注意：

  • nは、指定された書式番号です。

  • Magic xpaでは、18桁までの数字がサポートされます。


データベース ODBC xpaデータタイプ 論理

ホーム > リファレンスガイド > データベース > ODBC データベース > Magic xpaのデータタイプ > 論理型

論理型

次の表は、Magic xpaの論理型とODBCで有効なデータ型の一覧です。

表内の各項目には、［カラム特性］の［SQL］セクションの［タイプ］特性で指定されるデフォルトのデータ型が含まれています。

Magic xpaの 記憶型式 | Magic xpaの書式 | Magic xpaの 保存サイズ | ODBCの データタイプ
Integer Logical | 5 | 1 | BIT
 | 5 | 2 | SMALLINT
String Logical | 5 | 1 | BINARY


データベース ODBC xpaデータタイプ 日付

ホーム > リファレンスガイド > データベース > ODBC データベース > Magic xpaのデータタイプ > 日付型

日付型

次の表は、Magic xpaの日付型とODBCで有効なデータ型の一覧です。

表内の各項目には、［カラム特性］の［SQL］セクションの［タイプ］特性で指定されるデフォルトのデータ型が含まれています。

Magic xpaの 記憶型式 | Magic xpaの書式 | Magic xpaの 保存サイズ | 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 xpaのString DateをODBCのCHARにマップするには、［タイプ］特性に「SQL_CHAR(8)」を指定します。


データベース ODBC xpaデータタイプ 時刻

ホーム > リファレンスガイド > データベース > ODBC データベース > Magic xpaのデータタイプ > 時刻型

時刻型

次の表は、Magic xpaの時刻型とODBCで有効なデータ型の一覧です。

表内の各項目には、［カラム特性］の［SQL］セクションの［タイプ］特性で指定されるデフォルトのデータ型が含まれています。

Magic xpaの 記憶型式 | Magic xpaの書式 | Magic xpaの 保存サイズ | 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 xpaのString TimeをODBCのDATETIMEデータ型にマップするには、［タイプ］特性に「MGTIME」を指定することもできます。


データベース ODBC xpaデータタイプ BLOB

ホーム > リファレンスガイド > データベース > ODBC データベース > Magic xpaのデータタイプ > Blob型

BLOB型

次の表は、Magic xpaのBLOB型とODBCで有効なデータ型の一覧です。

表内の各項目には、［カラム特性］の［SQL］セクションの［タイプ］特性で指定されるデフォルトのデータ型が含まれています。

Magic xpaの記憶型式 | Magic xpaの書式 | Magic xpaの 保存サイズ | ODBCの データタイプ
Binary Large Object |  | 12 (デフォルト) | IMAGE


データベース ODBC xpaデータタイプ Unicode

ホーム > リファレンスガイド > データベース > ODBC データベース > Magic xpaのデータタイプ > Unicode型

Unicode型

次の表は、Magic xpaのUnicode型とODBCで有効なデータ型の一覧です。

表内の各項目には、［カラム特性］の［SQL］セクションの［タイプ］特性で指定されるデフォルトのデータ型が含まれています。

Magic xpaの記憶型式 | Magic xpaの書式 | Magic xpaの 保存サイズ | 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


データベース ODBC ODBCデータタイプ

ホーム > リファレンスガイド > データベース > ODBC データベース > ODBCのデータタイプ

ODBCのデータタイプ

次の表は、ODBCテーブルに対するMagic xpaの［定義取得］処理コマンドの結果と、Microsoft ODBCのデータタイプに対応するMagic xpaのデータタイプの一覧です。

ODBCのデータタイプ | 型 | Magic xpaの保存タイプ | 保存サイズ | 書式
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_LONGVARCHARのデータタイプのカラムに対応した書式を設定してください。
SQL_BIGINT | 数値型 | Signed Integer | 4 | 10
SQL_INTEGER | 数値型 | Signed Integer | 4 | 10
SQL_SMALLINT | 数値型 | Signed Integer | 2 | 5
SQL_TINYINT | 数値型 | Float | 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 |  |
SQL_BIT | 論理型 | Integer Logical | 1 | 5
TIMESTAMP | 日付型 時刻型 | String Date String Time | 8 | DD/MM/YYYY

注意：

*1…テーブルの定義を取得したら、SQL_LONGVARCHARデータタイプカラムの書式を、アプリケーションに適したサイズに設定する必要があります。


データベース ODBC トラブルシューティング

ホーム > リファレンスガイド > データベース > ODBC データベース > トラブルシューティング

トラブルシューティング

ODBC用のMagicデータベースゲートウェイの使用中に発生した問題を解決するには、次の段階的なアプローチを使用します。

  1. ODBCドライバをテストします。

  2. データに正常にアクセスすることができても、ゲートウェイが正しく動作しない場合、Microsoft QueryやODBC Testなどのツールを使用してODBCドライバそのものをテストします。

  3. これらのツールを使用してデータにアクセスできる場合、ODBCドライバは正しくインストールされています。

Magic xpaに付属しているODBC Check Driverユーティリティを使用することもできます。

関連トピック：

ODBC チェックドライバユーティリティ


データベース ODBC DB情報

ホーム > リファレンスガイド > データベース > ODBC データベース > データベース情報

データベース情報

［データベース特性］や［データソース特性］、［カラム特性］、および［インデックス特性］の［データベース情報］特性は、Magic xpaが使用するDBMSに渡すことができるデータベースに依存する情報を指定します。この特性の使用はオプションです。

［データベース情報］で送信することができる値については、以下の通りです。

キーワード | 内容 |  |
MAGICKEY=N | ユニークでないインデックスを使用したデータソースに対して、ユニークなインデックスのカラムを追加します。MAgic xpaはこのカラムに自動的に値を挿入します。 |  | ○
SQL_EXTENDED_FETCH=Y | 拡張フェッチをスキップするかどうかを指定します。デフォルトでは、配列サイズによって、ゲートウェイはデータベースから一組のレコード（拡張フェッチ)を取得します。SQL_EXTENDED_FETCH=Nの場合、データベースから一度に一レコードのみを取得するようにゲートウェイに通知します。 | ○ |
SQL_STARTPOS=N | エンドユーザが1ページから別のページに移動する度に、テーブルからレコードを取ってくるカーソルを閉じるかどうかを指定します。カーソルを閉じることで、それに応じて特定のレコード上に移動するもう一つのカーソルを開けるようにMagic xpaに指示します。 デフォルトはNです。これは、Magic xpaが各画面毎に位置付けを行うことせずに、元のカーソルを使用することを意味します。 | ○ |


データベース固有の追加情報 ODBC

ホーム > リファレンスガイド > データベース > ODBC データベース > 追加情報

追加情報

設定方法

  1. コントロールパネル、または管理ツールの中のODBCデータソースを起動し、ユーザDSNまたはシステムDSNで、利用するデータソースを作成します。データソースの構成の詳細な設定、およびODBCドライバのインストール等については、ODBC付属のドライバドキュメントやヘルプファイルを参照してください。

  2. Magic xpaの起動前に、MAGIC.INIの中の ［MAGIC_GATEWAYS］ セクションに、MGDB19=(パス名)MGODBC.DLLを正しく記述し、かつMGODBC.DLLが存在することを確認します。 MGODBC.DLLがディスク上（インストールフォルダの下の\Gateways）に存在しない場合、追加オプションでODBC データベースゲートウェイをインストールしてください。

  3. Magic xpaを起動し、［設定／データベース］を開きます。そこで、1.で登録したデータベースのエントリを作成します。［DBMS］カラムには「ODBC」を選択し、［DB名］カラムにはデータソース名を入力します。

  4. ユーザ名やパスワードを要求するデータベースの場合は、データベース特性ダイアログの中の［ユーザ名］や［ユーザパスワード］特性で設定します。このダイアログは、［編集／特性］を選択するか、"Alt+Enter"のショートカットキーで開きます。

  5. プロジェクトを開き、［データ］リポジトリの［データベース］カラムに3.で作成したデータベースを選択し、テーブルの定義を行います。

  6. 既存のテーブルに対して、［オプション／定義取得］を起動することにより、［データ］リポジトリに定義内容を取り込むことが可能です。

仕様および制限事項

  • 接続するODBCドライバの制限事項等により、Magic xpa、およびODBC データベースゲートウェイが提供する機能をすべて利用できないことがあります。

  • Oracle、MS-SQL、DB2/UDB のデータベースを利用する場合、それぞれ固有の データベースゲートウェイを使用することを推奨します。

  • MS-ACCESSのデータベースを利用する場合、すべてのカラム特性の［NULL値可］特性を「Yes」に設定する必要があります。

  • ODBCドライバは論理ロックを使用するため、DBMSに対してロックを発行しません。複数台のマシンで実行する場合は、Magicロックを使用してください。

  • データベース特性、データ特性、インデックス特性にある［ヒント］特性は有効にはなりません。


データベース Pervasive(ISAM)

ホーム > リファレンスガイド > データベース > Pervasive(ISAM)データベース

Pervasive(ISAM)データベース

注意：

バージョンによって製品名が異なる場合がありますが、本リファレンス上は「Pervasive」という製品名で説明しています。

次の表は、Pervasive(ISAM)テーブルに対するMagic xpaでサポートする保存タイプと有効なキー長の一覧です。

型 | 保存タイプ | 有効なキー長
文字型 | String | 1 - 255
文字型 | LString | 1 - 254
文字型 | ZString | 1 - 254
数値型 | Signed Integer | 2, 4
数値型 | Unsigned Integer | 1, 2, 4
数値型 | Float | 4, 8
数値型 | Float MS-Basic | 4, 8
数値型 | Float Decimal | 4, 8
数値型 | Packed Decimal | 1 - 10
数値型 | Numeric | 1 - 18
数値型 | Numeric Character |
数値型 | Numeric String |
数値型 | Numeric Magic | 2 - 20
数値型 | C-ISAM Decimal | 2 - 17
数値型 | Extended Float |
論理型 | Integer | 1, 2
論理型 | String | 1
日付型 | Integer Date | 4
日付型 | Integer Date-1901 | 4
日付型 | String Date | 6, 8
日付型 | YYMD Date | 4
日付型 | Magic Date | 4
日付型 | Magic Date-1901 | 4
時刻型 | Integer Time | 4
時刻型 | String Time | 6
時刻型 | HMSH Time | 4
時刻型 | Magic Time | 4
Unicode | Unicode String | 254
Unicode | ZUnicode String | 254


データベース Pervasive(ISAM) xpaデータタイプ

ホーム > リファレンスガイド > データベース > Pervasive(ISAM)データベース > Magic xpaのデータタイプ

Magic xpaのデータタイプ

文字型

Magic xpaの 記憶型式 | Magic xpaの書式 | Magic xpaの 保存サイズ | 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

数値型

Magic xpaの 記憶型式 | Magic xpaの書式 | Magic xpaの 保存サイズ | Pervasive のデータタイプ
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

論理型

Magic xpaの 記憶型式 | Magic xpaの書式 | Magic xpaの 保存サイズ | Pervasive のデータタイプ
Integer logical | n | n, 1-2 | LOGICAL
String logical | n | n, 1 | CHAR

日付型

Magic xpaの 記憶型式 | Magic xpaの書式 | Magic xpaの 保存サイズ | Pervasive のデータタイプ
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

時刻型

Magic xpaの 記憶型式 | Magic xpaの書式 | Magic xpaの 保存サイズ | Pervasive のデータタイプ
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型

Magic xpaの 記憶型式 | Magic xpaの書式 | Magic xpaの 保存サイズ | Pervasive のデータタイプ
String | n,1-2044 | n*2 | WSTRING
Zstring | n,1-2043 | n*2+2 | WZSTRING

注意：

  • 保存サイズは、テーブルのデータベース/ゲートウェイの格納テーブルに基づいて計算されます。

  • 保存サイズは、インポート時に再計算されます。


データベース固有の追加情報 Pervasive(ISAM)

ホーム > リファレンスガイド > データベース > Pervasive(ISAM)データベース > 追加情報

追加情報

ここでは、Magic xpa Pervasive SQL (以下、P.SQLと表記) データベースゲートウェイとして提供されるプログラム（MGBtrieve.dll）に関する情報が含まれています。文書中に記述されている「本プログラム」とは、MGBtrieve.dll を示します。なお、P.SQL を使用する場合、P.SQL に添付されるドキュメントも参照してください。

関連トピック：

Pervasive SQL の設定

技術情報

ロックとトランザクション

既知の問題と対応方法

注意事項


データベース固有の追加情報 Pervasive 設定

ホーム > リファレンスガイド > データベース > Pervasive(ISAM)データベース > 追加情報 > 設定

Pervasive SQL の設定

推奨環境設定

環境設定は P.SQL に添付の Pervasive Control Center にて行います。 以下の設定値を確認してください。

カテゴリ | 設定 | 推奨設定値
サーバ／通信バッファサイズ | 通信バッファサイズ | 設定可能な最大値
サーバ／通信バッファサイズ | MKDE 通信バッファサイズ | 設定可能な最大値
サーバ／データインテグリティ | トランザクション一貫性保守 | On

注意：

  • 「起動時間制限」および「オペレーションバンドル制限」の設定を変更する場合は、システム障害時のデータ損失とパフォーマンスとの間でのトレードオフを考慮する必要があります。

  • この設定を大きくすると、大半の構成ではパフォーマンスの利点が生まれますが、トランザクションを使っていないアプリケーション実行中に停電などのシステム障害が発生すると、失われるデータが多くなります。逆に設定を小さくすると、システムトランザクションが頻繁に起こるようになりますのでディスクアクセスが多くなり、更新の多いアプリケーションではディスクアクセスが処理のボトルネックになることがあります。

  • 詳細は、Pervasive.SQL V9 SDK の「Programmer's Guide」の「トランザクショナルインタフェースの基礎 > パフォーマンスの向上>システムトランザクション」などを参照してください。

  • この資料は、AG-TECH 社のWebサイト
    http://www.agtech.co.jp/download/manual/pervasive/index.html
    からもダウンロード可能です。

サーバベースの P.SQL の使用について

  • 中規模以上のシステムでは、P.SQL の Server Edition の使用を強くお勧めします。 この P.SQL（Server Edition）を使用する場合、レコードの選択はサーバで行われ 、範囲で指定されたレコードだけがクライアントに送られるので、検索の性能が向上し、マルチユーザ環境での安定性も向上します。

  • Magic xpaから P.SQL（Server Edition）を使用する場合、[クライアント／アクセス]カテゴリの[リクエスタ]設定を「On」にしてください。

  • P.SQLに対して、下位バージョンのリクエスタからのアクセスはサポートされていませんので、 混在する場合にはリクエスタとサーバのバージョンの組み合わせにご注意ください。

Windows の簡易 LAN について

Windows の Microsoft ネットワーク共有サービス、またはワークステーションを利用して、任意の Windows マシンをMagic xpa のサーバとして使用し、更にこのマシン上でMagic xpa を実行することができます。

この場合、全てのマシンがサーバとして動作する可能性があります。そのため、P.SQL に添付の Gateway Locator を使用、または[クライアント／アクセス]カテゴリの[ローカル]設定および[リクエスタ]設定を設定する等、サーバとなるマシンが明確になるように設定することをお勧めします。

  • サーバとなるマシンでは[サーバ／アクセス]カテゴリの[リモートリクエストの受付]設定を「On」にしてください。


データベース固有の追加情報 Pervasive 技術情報

ホーム > リファレンスガイド > データベース > Pervasive(ISAM)データベース > 追加情報 > 技術情報

技術情報

記憶型式と有効キー長

これらのカラムの[データベース定義]特性は「N=標準」に設定されます。

型 | 記憶型式 | 有効キー長
文字 | String | 1-255
 | 1-255 |
 | 1-255 |
Unicode | Unicode | 1-127
 | 1-126 |
数値 | Signed Integer | 2、4
 | 2、4 |
 | 4、8 |
 | 4、8 |
 | 1-10 |
 | 1-18 |
 | 2-10 |
 | 2-17 |
論理 | Integer Logical | 1、2
 | 1 |
日付 | Integer Date | 4
 | 4 |
 | 6、8 |
 | 4 |
 | 4 |
 | 4 |
時刻 | Integer Time | 4
 | 6 |
 | 4 |
 | 4 |

制限値

項目 | 制限値
インデックスの最大数 | 119
インデックスセグメントの最大数 | 119
インデックスあたりの最大セグメント数 | 119
最大インデックス長 | 255
最大固定レコード長 | 4,088
最小固定レコード長 | 5
最大可変レコード長 | 32,765
最大文字型長 | 4,088
BLOB項目数 | 1
双方向インデックスのサポート | 有
デフォルト識別子 | dat

データベースに対するパラメータ

Pervasive ゲートウェイでは、以下のパラメータを設定することができます。

場所 | パラメータ | 意味
[DBMS]テーブル[Btrieve]行の[パラメータ]カラム | /EXTENDED=Y、N | P.SQL の Extended オペレーションを使用するか否かを設定します。 Extended オペレーションを使用する場合、セレクトコマンドの範囲／位置付の条 件によるレコード絞込みが P.SQL エンジンにより実行されます。この機能は、ク ライアント／サーバシステムにおいてパフォーマンスを向上させます。 デフォルトでは「Y」となります。
 | /RTRY=n:m | n は最大リトライ回数、m はリトライ間隔（ミリ秒単位）です。レコードの挿入、更新、削除においてレコードロックまたはファイルロックが発生 した時にオペレーションをリトライする回数を設定します。 デフォルトではリトライを行いません。
[データベース]テーブルの[データベース情報]特性 | /PAGESIZE=n | 新規に作成するファイルのページサイズを設定します。 n には、512バイトの倍数、かつ4096バイトを超えない数を設定してください。 なお、この値は、P.SQL の仕様に合致したものである必要があります。 デフォルトでは、ファイル定義にしたがって最適なページサイズを計算します。


データベース固有の追加情報 Pervasive ロックとトランザクション

ホーム > リファレンスガイド > データベース > Pervasive(ISAM)データベース > 追加情報 > ロックとトランザクション

ロックとトランザクション

推奨環境設定

本ゲートウェイ使用時（並行開発時、並行運用時共に）の最適な環境設定を以下に示します。

場所 | 設定欄 |  | 設定
[DBMS]テーブル | パラメータ |  | /EXTENDED=Y
[データベース]テーブル→ [データベース特性]ダイアログ | Magicロック |  | テーブル（物理トランザクション使用時）
 |  |  | 両方 （遅延トランザクション使用時）※1
 | ロックパス |  | スペース（何も設定しない）
[動作環境]テーブル | ロックファイル |  | mglock.dat
[タスク特性]ダイアログ | オンラインタスク ブラウザタスク | トランザクション開始 | レコード前の前（遅延トランザクション使用時）※2
 |  | ロック方式 | 入力時
 | バッチタスク | トランザクションモード | 物理
 |  | ロック方式 | 即時

  • ※1 遅延トランザクション使用時、ロック制御はロックファイルで行われるため

  • ※2 遅延トランザクション使用時、更新レコードの識別は行われないため

データテーブルアクセス規制

下表は、物理トランザクション使用時に、処理A から先にアクセスされたテーブルに対して、処理B が後からアクセスした場合、どういうアクセス規制が働くかを示しています。下表では次の記号を使用しています。

表中の記号 | 意味
T- | テーブルアクセスに制限があり、テーブルがオープンできません。
T+R- | テーブルアクセスには制限はありませんが、 レコードアクセスに制限があり、レコードロックがかかります。
T+R+ | テーブルアクセスにも、レコードアクセスにも制限がありません。

(1) Magic xpaのロックファイル（mglock.dat）を共用した場合 かつ[Magicロック]が「両方」または「テーブル」の場合

  • 処理A： [タスクタイプ]=オンライン、[ロック方式]=入力時

  • 処理B： [タスクタイプ]=オンライン、[ロック方式]=入力時 または [タスクタイプ]=バッチ、 [ロック方式]=即時

 | 処理A
処理B | アクセスモード |  | 読込(R) |  |  | 書出(W)
 |  | 共有 | 読込(R) | 書出(W) | なし(N) | 読込(R) | 書出(W) | なし(N)
 | 読込(R) | 読込(R) | T+R+ | T+R+ | T- | T- | T- | T-
 |  | 書出(W) | T+R+ | T+R+ | T- | T+R+ | T+R+ | T-
 |  | なし(N) | T- | T- | T- | T- | T- | T-
 | 書出(W) | 読込(R) | T- | T+R+ | T- | T- | T- | T-
 |  | 書出(W) | T- | T+R+ | T- | T- | T+R- | T-
 |  | なし(N) | T- | T- | T- | T- | T- | T-

(2) Magic xpa のロックファイル（mglock.dat）を非共用にした場合 または[Magicロック]が「なし」または「レコード」の場合

  • 処理A： [タスクタイプ]=オンライン、[ロック方式]=入力時

  • 処理B： [タスクタイプ]=オンライン、[ロック方式]=入力時 または [タスクタイプ]=バッチ、 [ロック方式]=即時

 | 処理A
処理B | アクセスモード |  | 読込(R) |  |  | 書出(W)
 |  | 共有 | 読込(R) | 書出(W) | なし(N) | 読込(R) | 書出(W) | なし(N)
 | 読込(R) | 読込(R) | T+R+ | T+R+ | T- | T+R+ | T+R+ | T-
 |  | 書出(W) | T+R+ | T+R+ | T- | T+R+ | T+R+ | T-
 |  | なし(N) | T- | T- | T- | T- | T- | T-
 | 書出(W) | 読込(R) | T- | T+R+ | T- | T+R+ | 注１ | T-
 |  | 書出(W) | T- | T+R+ | T- | T+R+ | T+R- | T-
 |  | なし(N) | T- | T- | T- | T- | T- | T-

注1: 入力時レコードロックはかかりませんが、レコードを更新しようとした場合、レコードロック解除待ちとなります。即時レコードロックはかかりませんが、レコードを更新しようとした場合、レコードロック解除待ち、もしくはレコードがロックされていますとなります。

これらの表からわかりますように、[データベース特性]ダイアログの[Magicロック]を「両方」または「テーブル」に設定し、Magic xpaのロックファイル（mglock.dat）を共用してください。


データベース固有の追加情報 Pervasive 既知の問題

ホーム > リファレンスガイド > データベース > Pervasive(ISAM)データベース > 追加情報 > 既知の問題と対応方法

既知の問題と対応方法

レコードの挿入、更新、削除を行うタスクがアボートする問題の対応

  • 暗黙のページロックの説明： P.SQL では並行トランザクションをサポートしています。つまり、複数のアプリケーションが同じファイル（Ver6.x 以降のファイル形式）に同時に複数のトランザクションを実行できます。 並行トランザクション中にファイルが変更されると、変更されたレコードを含むページ（レコードが可変長のときには複数ページ）とそれに関連するインデックスのページが、P.SQL により自動的にロックされます。これを暗黙のページロックと言います。 暗黙のページロックによりロックされたページ上にある明示的にロックされていないレコードを更新、削除する場合、ロックとなります。 暗黙のページロックとレコードロックは互いにブロックしません。

  • Magic におけるマルチユーザ制御： レコードロック発生時の Magic xpaの動作はイベントハンドラの［行ロック］イベントおよび［タスク特性］ダイアログの［エラー発生時］欄の設定により決定されます。 レコードの挿入、更新、削除に失敗した時の Magic の動作はイベントハンドラの［挿入／更新／削除に失敗］イベントおよび［タスク特性］ダイアログの［エラー発生時］欄の設定により決定されます。

  • 問題点： ［挿入／更新／削除に失敗］イベント発生時に「アボート」する設定となっているタスクでは、レコードの挿入、更新、削除においてレコードロックまたはファイルロックとなった場合、タスクはアボートします。 この動作は、Ver7 以前の dbMAGIC と 標準添付の Btrieve の組み合わせの動作と異なります。

  • 問題の対応： レコードの挿入、更新、削除においてレコードロックまたはファイルロックが発生した場合、そのオペレーションをリトライします。リトライが失敗した場合、イベントハンドラの設定に基づいた動作を行います。リトライ回数およびリトライ間隔を設定するには、［DBMS］テーブル［Btrieve］行の［パラメータ］欄に以下のように設定してください。

/RTRY=リトライ回数:リトライ間隔（ミリ秒単位）

この設定がない場合、リトライは行われません。リトライ回数の上限は 10 回となります。また、リトライ間隔の設定がない場合、リトライ間隔は 500 ミリ秒となります。

  • 問題の対応の副作用： 並行トランザクションがコミット、または、アボートされるか、リトライ回数が上限を越えるまで Magic に制御が戻りません。必要に応じてリトライ回数とリトライ間隔を調節してください。

暗黙のページロックによるデッドロック

P.SQL の仕様（暗黙のページロック）により、次のような手順で操作を行うと、デッドロック状態になる場合があります。

  1. ユーザＡとユーザＢが Magic のロックファイル（mglock.dat）を共用します。

  2. ユーザＡがオンラインタスクにより、あるファイルのあるレコードをロックします。 （このタスクの［タスク特性］ダイアログの［ロック方式］特性は「入力時」に設定）

  3. ユーザＢがバッチタスクにより、上記ファイルのあるレコードを更新した後、ユーザＡがロック中のレコードにきたところで、レコードロック解除待ちになります。（このタスクの［タスク特性］ダイアログの［ロック方式］特性は「即時」、［トランザクションモード］特性は「物理」、［トランザクション開始］特性は「タスク前の前」に設定）

  4. ユーザＡがレコードの更新を行います。 ステップ３で、このレコードを含むページに対して暗黙のページロックがかかっているため、ユーザＡの方もレコードロック解除待ちになります。

なお、Esc キーを押せば、レコードロックは解除できます。

Magic xpaの異常終了によるファイルロック

Magic xpa が異常終了した場合、ファイルがロック状態になる場合があります。 これはP.SQL がまだ動作しているため、P.SQL で管理しているロック情報が残るためです。必要に応じて以下の処理を行ってください。

  • P.SQL に添付の Monitor を使用して異常終了したユーザを削除してください。

  • タスクトレイ上の P.SQL のアイコンを右クリックし、P.SQL を停止してください。

P.SQL はスタートアッププログラムに登録されています。このようにしておきますと、Magic xpaの起動がより速くなります。P.SQL を終了した場合、Magic 起動前にP.SQL を起動しておくことをお勧めします。


データベース固有の追加情報 Pervasive 注意事項

ホーム > リファレンスガイド > データベース > Pervasive(ISAM)データベース > 追加情報 > 注意事項

注意事項

Unicode

Pervasive 上で Unicode を扱う場合の注意事項は、「Unicodeを利用する場合の注意事項」 を参照してください。

ファイルフォーマットについて

  • 以前のファイルフォーマットで新規ファイルを作成したい場合、［サーバ／ファイル互換性］カテゴリの［作成ファイルのバージョン］設定を使用したいファイルフォーマットに合わせて変更してください。

注意：

Magic においてファイル定義を変更（例えば、項目の定義順の入替え等）した時にも、ファイルフォーマットは設定されているファイルフォーマットに変更されます。

  • ファイルフォーマットは、以下の理由から 7.x 以上にすることをお勧めします。

  • Unicode 型項目を扱うためには、ファイルフォーマットを 7.x 以上にする必要があります。

  • Btrieve 5 で作成されたファイルと Btrieve 6 以降で作成された 5.x フォーマットには差異があります。

  • パフォーマンスの面で有利になります。

  • 6.x 以前のフォーマットのファイルは BLOB 型項目を扱えません。 これは P.SQL の仕様制限によるものです。

  • 6.x 以前のフォーマットのファイルに対する並行トランザクションは排他トランザクションとして扱われるため、ファイル全体がロックされます。 これは P.SQL の仕様制限によるものです。

  • 6.x 以前のフォーマットのファイルに対する Extended 命令は発行されません。

  • Pervasive PSQL v9では、古い5.x 形式のファイルは、読込のみサポートしており更新はサポートしていません。このため、Magic xpaから更新しようとすると「エラー#46 ファイルマネージャの異常です」というエラーが出ます。この場合にはデータファイルを6形式以降にリビルドしてください。

ファイル名について

  • 長いファイル名を使用できます。ただし、ファイル名の最大長に関しては P.SQL が動作しているオペレーティングシステムの仕様の制限、Pervasive ゲートウェイが 動作しているオペレーティングシステムの仕様の制限、および P.SQL がサポートしている仕様の制限を受けます。 ファイル名の最大長の詳細については、各々の製品に添付されているマニュアルおよび注意事項を参照してください。

  • ファイル名に空白文字を使用する場合、クライアント側のマシンの［クライアント／アクセス］カテゴリの［スペースを含むファイル／ディレクトリ名］設定を「On」にしてください。 この設定が「Off」の場合、空白文字の１つ手前の文字までをファイル名とします。 これは P.SQL の仕様制限によるものです。

P.SQL 7 以降の新機能の使用について

現時点で注意が必要と思われる内容を以下に示します。

  • 7.x 以降のフォーマットを使用する場合、ページあたりレコード数が256に制限されます。［データベース］テーブルの［データベース情報］特性に「/PAGESIZE=####」を設定し、より適切なページサイズとなるように設定することをお勧めします。ページサイズは、512の倍数、かつ、4096を超えない値を設定してください。 ただし、ファイルが分割された場合、Magic の持つファイル管理関数、入出力機能関数およびファイル変換ユーティリティなどは、分割されたファイルの一つにしか有効にならず、処理が正常に終了しない場合がありますのでご注意ください。

  • P.SQL のオンラインマニュアルに”ファイルに対してキーを定義していない場合でも、トランザクションの一貫性保守機能を有効にすると自動的にキーが追加されます”と書かれています。そのため、ファイルには明示的にユニークキーを設定することをお勧めします。

  • Magic では ACS（オルタネートコレーティングシーケンス）及び ISR（インターナショナルソート規約）はサポートしていません。これらの機能を使用するとファイルの内容が予期した通りに表示されない可能性があります。

  • ステータスコードの変更点については P.SQL に添付されるオンラインマニュアル（Status Codes and Message）を参照してください。P.SQL 7 以降に追加されたステータスコードが返された場合、ファイルマネージャの異常としてダイアログに表示されます。

Pervasive.SQL のキャッシュエンジンの使用について

リモートPCで実行されているPervasive SQLを使用して、遅延トランザクションのタスクを実行した場合に、他のクライアントによるデータ更新の直後に同じデータを読み込んだ場合、更新前のデータが取得されることがあります。これにより、運用上支障が出る場合は、Pervasive Control Centerで以下の設定を行ってください。

ローカルクライアント → Microkernel ルータ → パフォーマンスチューニング → キャッシュエンジンの使用をOff

その他

  • P.SQL ではトランザクショナルアクセス及びリレーショナルアクセスがサポートされていますが、本ゲートウェイではトランザクショナルアクセスのみを使用していますので、リレーショナルアクセスは使用できません。アクセス方法等の詳細については P.SQL に添付されるオンラインマニュアル（Getting Started with Pervasive.SQL）を参照してください。

  • 可変レコード長と固定レコード長との合計サイズは 32767 バイトまでです。これは Magic xpaの仕様制限によるものです。

  • １個のファイルにつき、BLOB 型項目を１項目のみ定義することができます。また、BLOB 型項目は１個のファイルに同時に定義できません。

  • P.SQL を使用する場合、トランザクションの範囲外ですべてのファイルをオープンしてください。

  • レコードレベルのトランザクション機能を使用する場合、［トランザクション開始］特性を「レコードロック時」としてください。これは P.SQL ではトランザクション開始前に読込んだレコードに対して更新および削除ができず、トランザクション終了時にレコードロックを解除するためです。

  • ［トランザクション開始］特性を「レコード前の前」とした場合、トランザクション開始前にレコードが読込まれる場合があります。

  • レコードを確定する場合、処理対象となるレコードの前または後のレコードを一時的に取得することがあります。そのため、それらのレコードに既にロックがかけられている場合、レコードロックが発生することがあります。

  • 親子タスクにおいて同一のテーブルを使用した場合、子タスクでレコード登録に失敗すると、親タスクのレコードに対するロック情報が残る場合があります。

  • 存在するファイルに対してテーブル特性のアクセスキーおよび暗号化キーを変更することはできません。ただし、新規に設定する事は可能ですので、変更する場合、一度これらの設定を解除してから再設定してください。

  • ［データベース特性］ダイアログの［照合順序ファイル］特性は無効となります。


データベース Pervasive

ホーム > リファレンスガイド > データベース > Pervasive(SQL)データベース

Pervasive SQL データベースゲートウェイ

注意：

バージョンによって製品名が異なる場合がありますが、本リファレンス上は「Pervasive」という製品名で説明しています。

Pervasive SQLを使用して作業する際のMagic xpaの機能については、以下のトピックを参照してください。

Pervasive SQLのデータタイプ

Magic xpaのデータタイプ

Btrieve から移行した場合のサポートデータタイプ

追加情報

以下の追加情報は、Pervasiveデータベースゲートウェイを使用した場合に関連するものです。

  • インデックス …… 重複不可のインデックスが最低一つは必要です。

  • ロック …… テーブルロックはサポートされていません。また、レコードロックは論理ロックとして機能します。

  • ビュー …… ビューには重複不可の仮想インデックスを定義します。また、定義の変更、レコードの更新などはできません。


データベース Pervasive xpaデータタイプ

ホーム > リファレンスガイド > データベース > Pervasive(SQL)データベース > Magic xpaデータタイプ

Magic xpaのデータタイプ

Magic xpaの［データ］リポジトリで定義したテーブルを、Pervaive SQL上で CREATE TABLE する場合、以下のように定義されます。

文字型

数値型

論理型

日付型

時刻型

BLOB型

Unicode型


データベース Pervasive xpaデータタイプ 文字

ホーム > リファレンスガイド > データベース > Pervasive(SQL)データベース > Magic xpaデータタイプ > 文字型

文字型

次の表は、Magic xpaの文字型属性とPervasive SQLで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magic xpa データリポジトリ定義 |  |  | Pervasive .SQL |
記憶型式 | 書式 | カラム特性/サイズ | 対応データ型 | 備考
String | n, 1 - 8000 | n, 1 - 8000 | BINARY(n) |
 | n, 8001 - 32700 | n, 8001 - 32700 | LONGVARCHAR | 注１
Lstring | n, 1 - 254 | n + 1, 2 - 255 | BINARY(n+1) |
Zstring | n, 1 - 8000 | n + 1, 2 - 8001 | CHAR(n) |
 | n, 8001 - 32700 | n+1, 8002 - 32701 | LONGVARCHAR | 注１
String Memo | n, 1 - 7998 | n+2, 3 - 8000 | BINARY(n+2) |
Magic Memo | n, 1 - 7998 | n+2, 3 - 8000 | BINARY(n+2) |

注意：

注１： 書式が8000を超える場合は、［カラム特性］の［タイプ］特性に「SQL_LONGVARCHAR」と指定してください。


データベース Pervasive xpaデータタイプ 数値

ホーム > リファレンスガイド > データベース > Pervasive(SQL)データベース > Magic xpaデータタイプ > 数値型

数値型

次の表は、Magic xpaの数値型属性とPervasive SQLで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magic xpa データリポジトリ定義 |  |  | Pervasive .SQL |
記憶型式 | 書式 | カラム特性/サイズ | 対応データ型 | 備考
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 - 7 | 4 | BFLOAT8 |
 | n, 8 - 16 | 8 | DOUBLE |
MSBasic | n, 1 - 7 | 4 | BINARY(4) |
 | n, 8 - 16 | 8 | BINARY(8) |
Float Decimal | n, 1 - 7 | 4 | BINARY(4) |
 | n, 8 - 16 | 8 | BINARY(8) |
Packed Decimal | n, 1 - 18 | n/2+1 | BINARY(n/2+1) |
Numeric | n, 1 - 18 | n+1 | BINARY(n+1) |
Character Number | n, 1 - 18 | n+1 | BINARY(n+1) |
String Number | n, 1 - 18 | n+1 | CHAR(n+1) | 注
Magic Number | n, 1 - 18 | n/2+1 | BINARY(n/2+1) |
CISAM | n, 1 - 18 | n/2+1 | BINARY(n/2+1) |
Extended Float | n, 1 - 15 | 8 | BINARY(8) |

注意：

  • 注： 負数可の場合には、負数記号用にサイズが１バイト増えます。

  • nは、指定された書式番号です。

  • Magic xpaでは、18桁までの数字がサポートされます。


データベース Pervasive xpaデータタイプ 論理

ホーム > リファレンスガイド > データベース > Pervasive(SQL)データベース > Magic xpaデータタイプ > 論理型

論理型

次の表は、Magic xpaの論理型属性とPervasive SQLで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magic xpa データリポジトリ定義 |  |  | Pervasive .SQL
記憶型式 | 書式 | カラム特性/サイズ | 対応データ型
Integer Logical | 5 | 1 | BIT
Integer Logical | 5 | 2 | BIT
String Logical | 5 | 1 | BINARY(1)


データベース Pervasive xpaデータタイプ 日付

ホーム > リファレンスガイド > データベース > Pervasive(SQL)データベース > Magic xpaデータタイプ > 日付型

日付型

次の表は、Magic xpaの日付型属性とPervasive SQLで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magic xpa データリポジトリ定義 |  |  | Pervasive .SQL
記憶型式 | 書式 | カラム特性/サイズ | 対応データ型
Integer Date | ####/##/## | 4 | INTEGER
Integer Date - 1901 | ####/##/## | 4 | INTEGER
String Date | ####/##/## | 8 | DATE
YYMD Date | ####/##/## | 4 | BINARY(4)
Magic Date | ####/##/## | 4 | BINARY(4)
Magic Date - 1901 | ####/##/## | 4 | BINARY(4)


データベース Pervasive xpaデータタイプ 時刻

ホーム > リファレンスガイド > データベース > Pervasive(SQL)データベース > Magic xpaデータタイプ > 時刻型

時刻型

次の表は、Magic xpaの時刻型属性とPervasive SQLで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magic xpa データリポジトリ定義 |  |  | Pervasive .SQL
記憶型式 | 書式 | カラム特性/サイズ | 対応データ型
Integer Time | HH:MM:SS | 4 | INTEGER
String Time | HH:MM:SS | 6 | TIME
HMSH Time | HH:MM:SS | 4 | BINARY(4)
Magic Time | HH:MM:SS | 4 | BINARY(4)

注意：

Magic xpaのString TimeをPervasive SQLのDATETIMEデータ型にマップするには、[タイプ]特性に「MGTIME」を指定することもできます。


データベース Pervasive xpaデータタイプ BLOB

ホーム > リファレンスガイド > データベース > Pervasive(SQL)データベース > Magic xpaデータタイプ > BLOB型

BLOB型

次の表は、Magic xpaのBLOB属性とPervasive SQLで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magic xpa データリポジトリ定義 |  |  | Pervasive .SQL |
記憶型式 | 書式 | カラム特性/サイズ | 対応データ型 | 備考
Binary |  | 12 | LONGVARBINARY |
ANSI |  | 12 | LONGVARCHAR |
Unicode |  |  | (非サポート) | 注


データベース Pervasive xpaデータタイプ Unicode

ホーム > リファレンスガイド > データベース > Pervasive(SQL)データベース > Magic xpaデータタイプ > Unicode型

Unicode型

次の表は、Magic xpaのUnicode型属性とPervasive SQLで有効なデータ型の一覧です。

表内の各項目には、[カラム特性]の[SQL]セクションの[タイプ]特性で指定されるデフォルトのデータ型が含まれています。

Magic xpa データリポジトリ定義 |  |  | Pervasive .SQL |
記憶型式 | 書式 | カラム特性/サイズ | 対応データ型 | 備考
Unicode | n,1 ～ 255 256～3200 3200～ | n*2 | NCHAR(n*2) NVARCHAR(n*2) NLONGVARCHAR(n*2) |
ZUnicode | n,1 ～ 255 256～3200 3200～ | n*2+2 | NCHAR(n*2) NVARCHAR(n*2) NLONGVARCHAR(n*2) |


データベース Pervasive データタイプ

ホーム > リファレンスガイド > データベース > Pervasive(SQL)データベース > Pervasive SQLのデータタイプ

Pervasive SQLのデータタイプ

次の表は、Pervasive SQLテーブルに対するMagic xpaの［定義取得］処理コマンドの結果と、Pervasive SQLのデータタイプに対応するMagic xpaのデータタイプの一覧です。

Pervasive SQL | Magic xpa定義取得後のデータリポジトリの定義 |  |  |  |
データタイプ | 型 | 格納形式 | カラム特性/サイズ | 書式 | 備考
CHAR(n) | 文字 | Zstring | n+1 | n | 注１
VARCHAR(n) | 文字 | Zstring | n+1 | n | 注１
LONGVARCHAR | BLOB(ANSI) | ANSI BLOB | 12 |  |
NCHAR(n) | Unicode | ZUniucode | n*2+2 | n |
NVARCHAR(n) | Unicode | ZUniucode | n*2+2 | n |
NLONGVARCHAR(n) | BLOB (Unicode) | Binary Large Object | 28 |  |
BIGINT | 数値 | String Number | 20 | N18 |
INTEGER | 数値 | Signed Integer | 4 | N9 |
SMALLINT | 数値 | Signed Integer | 2 | N5 |
TINYINT | 数値 | Unsigned Integer | 1 | 3 |
DOUBLE | 数値 | Float | 8 | 10.3 | 注２
REAL | 数値 | Float | 4 | 5.2 |
FLOAT | 数値 | Float | ８ | 10.3 | 注２
NUMERIC(m,n) | 数値 | String Number | m+2 | N(m-n).n |
DECIMAL(m,n) | 数値 | String Number | m+2 | N(m-n).n |
DATE | 日付 | String Date | 8 | YYYY/MM/DD |
TIME | 時刻 | String Time | 6 | HH:MM:SS |
BINARY(80) | BLOB (Binary) | Binary Large Object | 12 |  |
LONGVARBINARY | BLOB (Binary) | Binary Large Object | 12 |  |
BIT | 論理 | Integer Logical | 1 | 5 |
TIMESTAMP | 日付+時刻 |  |  |  | 注３

注意：

  • 注１： Pervasive.SQL での CHAR/VARCHAR の最大サイズは 8000 です。

  • 注２： 書式は、DBMS特性で指定されます。デフォルトでは 10.3 になっています。

  • 注３： TIMESTAMP 型を定義取得すると、日付型と時刻型の二つのカラムとして定義取得されます。


データベース Pervasive xpaデータタイプ 移行時

ホーム > リファレンスガイド > データベース > Pervasive(SQL)データベース > Btrieve から移行した場合のサポートデータタイプ

Btrieve から Pervasive SQLに移行した場合のサポートデータタイプ

Pervasive (ISAM) ゲートウェイを使用して ISAMファイルとして作成したファイル (以下、Btrieveファイルと呼びます) を、Pervasive.SQL に登録して、SQL テーブルとしてアクセスすることができる機能が、Pervasive.SQL では提供されています。ここでは、Btrieveファイル移行の方法や、注意点について説明します。

重要：

  • Btrieve から Pervasive.SQL への移行は、本質的に危険を伴う作業です。移行を行う前に、Btrieveファイルのバックアップを取っておいてください。また、Btrieve ファイル構造をよく理解した上で慎重に行ってください。

  • Pervasive.SQLとBtrieveとの基本仕様の違いにより、BtrieveファイルからPervasive.SQL に移行できない場合があります。また、Magic xpa独自のデータ型では、Pervasive.SQL でBINARYデータとしてアクセスできても、本来のデータの意味を正しく認識できない場合もあります。下記「データ型の対応」を参照してください。

  • Btrieveファイルの物理的構造と、CREATE TABLE (下記)での定義とが正しく対応していないと、定義と実際のデータ構造との乖離が起こり、正しくデータをアクセスできないとか、最悪、データ破損や動作の異常を引き起こす可能性があります。

  • Pervasive が提供するユーティリティ DDF Builder を使うと、テーブル定義と物理データ構造の対応が正しいかの確認を行うことができます。移行後には DDF Builder で対応が正しいかを確認することをお勧めします。

参考：

下記の方法によりBtrieveファイルをPervasive SQLテーブルとして移行した後も、Btrieveファイル自体には変更はないので、引き続き、Pervasive (ISAM) ゲートウェイを通してアクセスすることが可能です。

ただし、同一のBtrieveファイルを、Pervasive (ISAM) ゲートウェイと Pervasive (SQL) ゲートウェイとを通して、同時に更新することは、危険が伴う可能性があります。

このため、共存して同時アクセスする場合には、データ更新はISAMゲートウェイを使い、SQLゲートウェイは、高度な検索機能 (LIKE句を使った曖昧検索や、GROUP BY、集約関数などを使うSELECT文等) に使う、というように、利用方法を分けることを推奨します。

BtrieveファイルからPervasive.SQLファイルへの移行方法

過去のMagicのバージョンでは、 DDF （Pervasive.SQLのメタデータ）を DDF Builder （DDF Maker) を使って作成することにより行っていましたが、最近の Pervase.SQL では、DDFを直接作成・変更することは、互換性や安定性の上から許可されていません。これに代わって、「IN DICTIONARY」句付きの CREATE TABLE 文を使って、メタデータを登録する方法が推奨されています。

この方法では、次のようなDML文をPervasive Control Center で実行して、メタデータを登録します。ここでは、数値型 N と文字型 A とを定義したテーブルを例としています。

SET TRUENULLCREATE = OFF;

CREATE TABLE "NA"

IN DICTIONARY USING 'NA.dat'

(

"N" INTEGER NOT NULL,

"A" CHAR(20) NOT NULL

);

SET TRUENULLCREATE = ON;

インデックス定義は次のように行います。この例は、数値項目 N に重複不可のキーが定義されている場合です。

CREATE (UNIQUE) INDEX "NA_N"

IN DICTIONARY ON "NA"

(

"N"

);

データ型の対応

移行時には、Btrieve のファイルの構造に正しく対応した CREATE TABLE 文を発行することが重要です。Btrieveファイルの物理的構造と、CREATE TABLEでの定義とが正しく対応していないと、定義と実際のデータ構造との乖離が起こり、正しくデータをアクセスできないとか、最悪、データ破損や動作の異常を引き起こす可能性があります。

CREATE TABLE 文で発行する際の各カラムのデータタイプは、Btrieve ファイルのデータ型と記憶形式、サイズ特性から導きだすことができます。以下の表に、BtrieveファイルとPervasive.SQLのカラムタイプとの対応を示します。

注意： すべてのBtrieveファイルがPervasive.SQLテーブルに移行できるわけではありません。下記テーブルで「×」印が付いているものは、対応する Pervasive.SQL タイプがないので、移行が不可能であることを意味します)

文字型

Btrieveファイルでの定義 |  |  | Pervasive .SQLの対応データ型 | 注意事項
記憶型式 | 最大文字/桁数(n) | カラム特性／サイズ
String | 1 ～ 8000 | n | CHAR(n) |
 | 8001～ |  | × | 注1
Lstring | 1 ～ 254 | n+1 | LSTRING(n+1) |
 | 255 |  | × | 注1
Zstring | 1 ～ 8000 | n+1 | VARCHAR(n) |
 | 8001～ |  | × | 注1
String Memo |  |  | × | 注2
Magic Memo |  |  | × | 注2

数値型

Btrieveファイルでの定義 |  |  | Pervasive .SQLの対応データ型 | 注意事項
記憶型式 | 最大文字/桁数(n) | カラム特性／サイズ
Integer | 2 | 2 | SMALLINT |
Integer | 4 | 4 | INTEGER |
Unsigned Integer | 2 | 2 | SMALLINT |
Unsigned Integer | 4 | 4 | INTEGER |
Float | 4 | 4 | REAL |
Float | 8 | 8 | DOUBLE |
MSBasic | 4 | 4 | BFLOAT4 |
MSBasic | 8 | 8 | BFLOAT8 |
Float Decimal | 8 | 8 | BINARY(8) | 注3
Packed Decimal | 18 | n/2+1 | DECIMAL(w,d) |
Numeric | 18 | n+1 | NUMERIC(w,d) |
Character Number | 18 | n+1 | NUMERICSTS(w,d) |
String Number | 18 | n,または n+1 | CHAR(n+1) |
Magic Number |  | n/2+1 | BINARY(s) | 注3
CISAM |  |  | BINARY(s) | 注3
Extended Float |  | 8 | BINARY(8) | 注3

論理型

Btrieveファイルでの定義 |  |  | Pervasive .SQLの対応データ型 | 注意事項
記憶型式 | 最大文字/桁数(n) | カラム特性／サイズ
Integer Logical | 1 | 1 | BIT |
Integer Logical | 2 | 2 | SMALLINT | 注4
String Logical | 1 | 1 | CHAR(1) | 注5

日付型

Btrieveファイルでの定義 |  |  | Pervasive .SQLの対応データ型 | 注意事項
記憶型式 | 最大文字/桁数(n) | カラム特性／サイズ
Integer Date | 4 | 4 | INTEGER | 注6
Integer Date - 1901 | 4 | 4 | INTEGER | 注7
String Date | 8 | 8 | CHAR(0) | 注8
YYMD Date | 4 | 4 | DATE |
Magic Date | 4 | 4 | BINARY(4) | 注3
Magic Date - 1901 | 4 | 4 | BINARY(4) | 注3

時刻型

Btrieveファイルでの定義 |  |  | Pervasive .SQLの対応データ型 | 注意事項
記憶型式 | 最大文字/桁数(n) | カラム特性／サイズ
Integer Time | 4 | 4 | INTEGER | 注9
String Time | 6 | 6 | CHAR(6) | 注10
HMSH Time | 4 | 4 | TIME |
Magic Time | 4 | 4 | BINARY(4) | 注3

Unicode型

Btrieveファイルでの定義 |  |  | Pervasive .SQLの対応データ型 | 注意事項
記憶型式 | 最大文字/桁数(n) | カラム特性／サイズ
Unicode | 1 ～ 4000 | 4 | BINARY(n*2) |
Zunicode | 1 ～ 4000 | 4 | BINARY(n*2+2) |

その他(BLOB/OLE)

Btrieveファイルでの定義 |  |  | Pervasive .SQLの対応データ型 | 注意事項
記憶型式 | 最大文字/桁数(n) | カラム特性／サイズ
 |  |  | × | 注2

注意：

注１ ：Pervasive.SQLでは、CHAR/VARCHAR型は 8000バイトまでの制限があるので、それ以上のカラムは対応できず、移行不可能となります。

注２ ：独自の内部形式の可変長レコードとなるので、Pervasive.SQLでは取り扱うことができず、移行不可能となります。

注３ ：BINARYデータとして取り出すことができますが、データは Magic xpa の独自形式となります。

注４ ：数値 0 = FALSE、１ = TRUE という解釈となります。

注５ ：文字 'F' = FALSE、'T' = TRUE という解釈となります。

注６ ：0000/00/00 を起点とした日数を数値で表します。

注７ ：1901/1/1 を起点とした日数を数値で表します。

注８ ：日付を YYYYMMDD 形式で文字列として表現します。

注９ ：00:00:00 を起点とした秒数を数値で表します。

注１０：時刻を HHMMSS 形式で、文字列として表現します。

参考：

  • Pervasive が提供するユーティリティ DDF Builder を使うと、CREATE TABLE文を発行せずに BtrieveファイルからPervasive.SQLテーブルへのマッピングを行うことができ、また、テーブル定義と物理データ構造の対応が正しいかの確認も行うことができます。

  • CREATE TABLE/INDEX 文の詳細、DDF Builder の使い方などについては、Pervasive のマニュアルを参照してください。

  • Btrieve から Pervasive.SQLに移行したテーブルを、Magic xpaで定義取得すると、すべてのカラムが NULL値可 ＝ Yes となります。これはPervasive.SQL の動作によるものです。
    NULL値可であっても、実際には NULL 値を格納することはできません。また、インデックス定義でシンタックスエラーとなるので、必要に応じ、手作業で Null値可 ＝ No に設定してください。

移行後の定義取得

Pervasive.SQLテーブルとして定義したファイルを、Magic xpaからアクセスするには、定義取得機能を使うのが一番簡単です。

このとき、Btrieveで定義したデータ型と、定義取得後のデータ型とが異なってしまうことがあります。
例えば、日付型項目は、Btrieveファイルでは 格納形式が「Integer Date」、サイズが「4」 として定義されますが、これをPervasive.SQLのテーブルとして移行すると、INTEGER 型となります。このテーブルをMagic xpa Studio で定義取得すると、数値型として取りこまれることになります。この数値は、0000/00/00 を起点とした日数を表したものであり、本来の日付の意味がこのままでは認識されません。

このような場合には、手作業で、以下のようにして、定義取得後のテーブル定義を変更する必要があります。

  1. 「型」をBtrieveでのカラム定義の型と合わせます。(上の例では、日付型)

  2. 「書式」を、Btrieveでのカラム定義と合わせます (例では、YYYY/MM/DDなど)

  3. 「カラム特性/記憶形式」および「カラム特性/サイズ」 を、Btrieveでの定義と合わせます (例では、Integer Date、4バイト)

  4. 「カラム特性/タイプ」欄に、「SQL_(データ型)」と記入します。(例では、「SQL_INTEGER」)

注意：

  • 定義取得後、書式を変更すると、「記憶形式」「サイズ」などが自動再計算されます。書式を変更した際には、必ず、記憶形式やサイズを元に戻すようにしてください。データリポジトリの定義とPervasive.SQLの定義とで互換性がないと、エラーになったり、異常終了したりすることがあります。

  • Btrieve から Pervasive.SQLに移行したテーブルを、Magic xpa で定義取得すると、すべてのカラムが NULL値可 ＝ Yes となります。これはPervasive.SQL の動作によるものです。
    NULL値可であっても、実際には NULL 値を格納することはできません。
    また、インデックス定義でシンタックスエラーとなるので、必要に応じ、手作業で Null値可 ＝ No に設定してください。


データベース Pervasive インデックス

ホーム > リファレンスガイド > データベース > Pervasive(SQL)データベース > インデックス

インデックス

Pervasive SQLのテーブルには、重複不可のキーを定義する必要があります。

重複不可のキーがない場合には、シンタックスチェッカーでエラーとなります。

既存のテーブルで、重複不可のキーがない場合には、インデックス特性 → SQL(Q)タブ → タイプ に「V=仮想」と設定して、仮想キーとして定義することができます。この場合、DBMS上にインデクスは作成されませんが、仮想キーを使ってMagic xpaがテーブルをアクセスできるようになります。

この場合には、仮想キーとして定義したカラムが、実際のデータにおいて一意性を持つようなものであることが必要です。そうでない場合には、予測できない結果となることがあります。

一意となるようなカラムの組み合わせが全くないテーブルは、Magic xpaからは正しくアクセスすることができません。


データベース Pervasive ビュー

ホーム > リファレンスガイド > データベース > Pervasive(SQL)データベース > ビュー

ビュー

ビューには、仮想の一意インデックスを定義する必要があります。ビューではINSERT、UPDATEおよびDELETE操作を行うことができます。Magic xpaでは、［ビュー］は通常のテーブルとみなされることに注意してください。Magic xpaを使用して名前の変更または変換操作を実行しないでください。Magic xpaを使用して名前の変更または変換操作を実行すると、エラーメッセージが表示され、データベース内のビューの変換や名前の変更は行われません。


データベース Pervasive ロック

ホーム > リファレンスガイド > データベース > Pervasive(SQL)データベース > ロック

ロック

  • レコードレベルのロック …… Pervasive SQLでは、レコードレベルのロックは、論理ロック（楽観的ロック）として実装されています。このため、ロック時にDBMS上のレコードに物理的なロックはかかりません。レコードの排他制御は、レコード更新時に、データがフェッチ時から変更されていないことを確認することにより、行われます。

  • テーブルレベルのロック …… Pervasive SQLでは、明示的なテーブルロックの機能がありません。このため、共有モードを「N=なし」や「R=読込」に設定しても、排他制御が機能しません。

Btrieve からの移行で、レコードレベルやテーブルレベルのロックが必要な場合には、Magic ロックを併用することを検討してください。


追加情報 Pervasive.SQL

ホーム > リファレンスガイド > データベース > Pervasive(SQL)データベース > 追加情報

追加情報

ここでは、Magic xpa Pervasive SQL(SQL)データベースゲートウェイとして提供されるプログラム（MGPervasiveSQL.dll ）に関する情報が含まれています。

IDENTITY型カラムについて

  • IDENTITY 型カラムのあるテーブルを作成するには、次のようにしてください。

    1. カラムの［型］は［N=数値］、［書式］ は 9 とし、［タイプ］ 特性に IDENTITY と指定します。

    2. このカラムに重複不可のインデックスを作成し、インデックス特性の［タイプ］は［V=仮想］とします。実インデックスとした場合には、テーブル作成時に Btrieve のエラー 55 が発生します。

  • IDENTITY 型カラムのあるテーブルを定義取得して、Magic xpaからライン形式でレコードを登録したときに、登録したレコードが正しく表示されないことがあります。ビュー再表示を行うと表示されます。

仕様および主な制限事項

  • ストアドプロシージャのパラメータには、IN パラメータのみを指定することができます。

  • ストアドプロシージャの戻り値は、結果セット RETURNS で取得することができます。
    但し、特殊なデータ型には対応していないことがあります。

  • システムストアドプロシージャに対しては、SQL APGで正しくパラメータを取得できません。手作業で入力／出力パラメータを設定してください。

  • ［テーブル特性］の［オーナ名］特性が設定されていると、次のようなメッセージが出てアクセスできません（MS-SQLやOracle のテーブル定義をPervasive.SQLに変更したときに発生する可能性があります。）。

エラーメッセージ：「指定された名前付きデータベースは見つかりません(Btrieve Error 2301)


設定方法 Pervasive.SQL

ホーム > リファレンスガイド > データベース > Pervasive(SQL)データベース > 追加情報 > 設定方法

設定方法

データソース名（DSN）の定義

Pervasive.SQL に接続するには、ODBCに定義されているデータソース名を参照します。

データソース名を定義するには、次のいずれかの方法により行ってください。

  • Pervasive Control Centerでデータベースを作成する際に、DSNオプション → DSNの作成 にチェックを入れてください。

  • Pervasive Control Center のプルダウンメニュー ［ツール／ODBC Administrator］ で、ユーザDSNまたはシステムDSNの追加により、DSNを定義してください。64bit のOS上で利用する場合は、［ODBC Administrator(32-ビット)］を選択してください。
    この場合、「ドライバー」としては、「Pervasive ODBC Client Inteface」あるいは「Pervasive ODBC Engine Interface」 を選択してください。Unicode型のカラムを定義する場合は、「Pervasive ODBC Unicode Interface」 を選択してください。

Pervasive には、データソース名として、クライアントDSNとエンジンDSNとがありますが、Magic xpaから接続する場合にはいずれも使用することができますが、汎用性の高いクライアントDSNを利用するこことを推奨します。

Magic xpaの設定方法

  1. Magic xpaの起動前に、MAGIC.INIの中の ［MAGIC_GATEWAYS］ セクションに、MGDB01=gateways\MGPervasiveSQL.dll と記述し、かつGateways ディレクトリに MGPervasiveSQL.dll が存在することを確認します。 MGPervasiveSQL.dll がインストールフォルダの下のGateways ディレクトリに存在しない場合、追加オプションでPervasive.SQL データベースゲートウェイをインストールしてください。

  2. Magic xpaを起動し、［設定／データベース］を開き、新規データベースのエントリを作成します。［DBMS］カラムには「Pervasive」を選択し、［DB名］カラムにはデータソース名を入力します。

  3. ユーザ名やパスワードを要求するデータベースの場合は、Alt+Enter で「データベース特性」を開き、［ユーザ名］と［ユーザパスワード］特性で設定します。［サーバ］および［接続文字列］には何も記入しないでください。

  4. プロジェクトを開き、［データ］リポジトリの［データベース］カラムに3.で作成したデータベースを選択し、テーブルの定義を行います。

  5. 既存のテーブルに対して、［オプション／定義取得］を起動することにより、［データ］リポジトリに定義内容を取り込むことが可能です。


データベース DB2/400

ホーム > リファレンスガイド > データベース > DB2/400 データベース

DB2/400 データベース

以下の表は、Magic xpaのデータ型とサポートされる保存タイプ、およびDB2/400で有効なデータ型の一覧です。

Magic xpaのデータ型 | 記憶型式(デフォルト) | 書式 | DB2/400のデータタイプ
文字型 | String | 1 to 32000 | CHAR(n)
文字型 | String Memo (n+2) | 1 to 32000 | VARCHAR(n)
数値型 | Packed Decimal | 1 | DECIMAL(1,0)
数値型 | Packed Decimal | 2 to 3 | DECIMAL(3,0)
数値型 | Packed Decimal | 4 to 5 | DECIMAL(5,0)
数値型 | Packed Decimal | 6 to 7 | DECIMAL(7,0)
数値型 | Packed Decimal | 8 to 9 | DECIMAL(9,0)
数値型 | Packed Decimal | 10 to 11 | DECIMAL(11,0)
数値型 | Packed Decimal | 12 to 13 | DECIMAL(13,0)
数値型 | Packed Decimal | 14 to 15 | DECIMAL(15,0)
数値型 | Packed Decimal | 16 to 17 | DECIMAL(17,0)
数値型 | Packed Decimal | 18 | DECIMAL(19,0)
数値型 | Packed Decimal | #.# (Total up to 2 digits e.g 0.11 0 + 2 = 2 digits) | DECIMAL(3,n)
数値型 | Packed Decimal | #.# (Total 3-4 digits e.g 1.113 1 + 3= 4 digits) | DECIMAL(5,n)
数値型 | Packed Decimal | #.# (Total 5-6 digits e.g 142.13 3 + 2= 5 digits) | DECIMAL(7,n)
数値型 | Packed Decimal | #.# (Total 7-8 digits e.g 14213.353 5 + 3= 8 digits) | DECIMAL(9,n)
数値型 | Packed Decimal | #.# (Total 9-10 digits e.g 142133.5388 6 + 4= 10 digits) | DECIMAL(11,n)
数値型 | Packed Decimal | #.# (Total 11-12 digits e.g 142.133538811 3 + 9= 12 digits) | DECIMAL(13,n)
数値型 | Packed Decimal | #.# (Total 13-14 digits e.g 142133.53881133 6 + 8= 14 digits) | DECIMAL(15,n)
数値型 | Packed Decimal | #.# (Total 15-16 digits e.g 142133538.8113348 9 + 7= 16 digits) | DECIMAL(17,n)
論理型 | String Logical(1) | 5 | CHAR(1)
日付型 | String Date (8) | ## / ## / #### | DATE
時刻型 | String Time (6) | HH:MM:SS | TIME
BLOB型 | BLOB | 12 Default | BLOB


データベース固有の追加情報 IBM i

ホーム > リファレンスガイド > データベース > DB2/400 データベース > 追加情報

追加情報

ここでは、Magic xpa IBM i Gatewayに関する情報が含まれています。

関連トピック：

制限事項


データベース固有の追加情報 IBM i 制限事項

ホーム > リファレンスガイド > データベース > DB2/400 データベース > 追加情報 > 制限事項

制限事項および留意事項

Unicodeに関する制限事項

xpa IBM i GatewayによるUnicode型項目の制御に関して、いくつかの制限事項があります。詳細は、「Magic xpa for IBM i 開発者ガイド」第4章を参照してください。

ISAMゲートウェイ

  • データ特性／SQLタブ／SQLデータベース情報にてCACHEパラメータを指定し、メインソースに指定したファイルと同じファイルをデータリンクした場合、正しくリンクできないことがあります。その場合は、同一ファイルでデータリンクを 行うファイルのみをCACHEパラメータを指定しないようにしてください。

  • ISAMファイルの［データベース特性］に「*RNGSVR=Y」を指定した場合、親子タスクの両方で、同じファイルをメインソースに指定し、かつカラム定義で範囲指定を行ったプログラムを実行すると、子タスクでファイルのオープンに失敗します。

  • ISAMファイルのキーに数値項目が含まれ、かつ［データソース特性］の［更新レコードの識別］特性に「S=位置と選択項目」または「U=位置と更新項目」を設定 した場合、実行時にレコードの修正、または削除に失敗することがあります。その場合はMAGIC.INIに次の設定を行ってください。

    ［MAGIC_SPECIALS］
    SpecialNegativePackedDecimalNotation=Y

  • トランザクション設定したファイルの構造を変更する場合は、事前にトランザクション設定を外して変更することをお奨めします。外さずにファイル変更を行うとファイル変換時にCommitment Control Errorが発生する場合があります。

トランザクション設定を外す方法：

    1. テーブル変換の前に'TRANSACTIONS=N'に変更します。

    2. 「変更しますか？」と聞いてきた場合は、'No'を選択します（テーブル変換は実施しません） 。

    3. 5250エミュレータ上で、ジャーナル、ジャーナルレシーバを削除します（必要に応じてバックアップします）。

    4. Magic xpaを再起動します。

    5. ファイル変換処理を行います。

    6. 'TRANSACTIONS=Y'に設定します。

    7. 「変更しますか？」と聞いてきた場合は、'No'を選択します（テーブル変換は実施しません）。

    8. APGを実行してジャーナルが生成されるのを確認します。

SQLゲートウェイ

  • Studioで定義取得する場合は、QSYS/QADBXREFへのアクセス権限が必要です。例えば、＊ALLOBJ特殊権限があるユーザプロファイルを使用してください。この権限がない場合、書式が正しく取得できません。

  • メインソースの［共有］特性を「N=なし」に設定したプログラムを実行してテーブルロックが発生した場合、プログラムが終了しても、テーブルに対する排他 ロック、または共有ロックが解除されないため、それ以降テーブルがオープンできなくなることがあります。これは、SQLゲートウェイではコミット処理に関 して、すべてのカーソルがクローズするCOMMITコマンドでなく、 COMMIT HOLDコマンドを実行していることによるものです。ロックを解除すると同時にカーソルをクローズしても構わない場合、SQLコマンドでCOMMITを実 行するか、アプリケーションを再起動してください。

  • バッチタスクでトランザクションレベルがレコードの場合、BLOB項目のあるテーブルをバッチ処理すると、エラーが発生します。BLOB項目のあるデータソースをバッチ処理する場合には、［トランザクション開始］特性を「T=タスク前の前」に設定してください。


SQLite データベース

SQLiteデータベースは、シングルユーザで自己完結型のトランザクショナルSQLデータベースエンジンです。サーバや何らかのインストール処理または設定を必要としません。

Magic xpaのインストール処理時に、コンポーネントとして選択されることなく、常にインストールされます。

以下は、SQLiteデータベースで動作させるために指定する情報です。

位置 | SQLiteは、テーブル位置としてrowidをサポートします。デフォルトの位置は、ROWIDです。
定義取得 | SQLiteでは、プライマリキーが自動インクリメントをもつ一つのカラムで構成されている場合、定義取得ユーティリティはテーブル構造内のキーを取得しません。カラムを使用している分離インデックスがないからです。インデックスは、内部的にrowidを参照しています。
ヒント | ヒントはサポートされないため無視されます。
分離レベル | 分離レベルは変更できません。DBMS上で変更しても無視されます。
ジョイン | 内部結合、外部結合は、SQLサーバを使用した場合と同じ構文を使用して実装しなければなりません。
トランザクション | 物理/遅延トランザクションをサポートします。
配列の取得 | SQLiteは、配列の取得をサポートしません。したがって、［配列サイズ］の設定は無視され、レコードは一度に1つのレコードを取得します。
並行実行 | 一つのMagicエンジン、または同じPC上の複数のエンジンが、並行プログラムでSQLiteにアクセスするかもしれません。この場合は、SQLiteファイルが排他ロックされるため、1スレッド/EXEでのみ物理トランザクションを開始することができます。
APG | DSQLのSELECTステートメント内でAPGを使用した場合、カラムの［NULL値可］特性が「Yes」に設定されます。
識別 | 識別は、"INTEGER PRIMARY KEY"タイプとして定義されなければなりません。 SQLiteは、複数のINTEGER PRIMARY KEYフィールドを許可しません。 識別フィールドは、SQLiteのINT64データ型として保持されます。したがって、8バイトのデータを保持するために、数値フィールドを作成しなければなりません。
管理ツール | 管理ツールは提供されていませんが、フリーソフトとして提供されているものを使用することでデータベースファイルの内容を参照することができます。
インデックス | 1つのデータベースファイル内には、重複したインデックス定義することができません。例えば、2つのデータソースが同じデータベースファイルに格納される場合、各デーデータソースのインデックスに定義されている［DBインデックス名］特性に重複した値がある場合、インデックスが作成されなくなります。

注意：

テーブルの作成時に"unrecognized token"エラーが発生する場合は、データソースのカラムの［データベースデフォルト値］特性を二重引用符 囲んで定義するようにしてください。

関連トピック：

SQLite データタイプ


SQLite データタイプ

次の表は、SQLiteテーブルに対するMagic xpaの［定義取得］処理コマンドの結果の一覧です。また、SQLiteのデータタイプに対応するMagic xpaのデータタイプも示します。

SQLiteのデータタイプ | Magic xpaの保存タイプ | 書式
INTEGER | 数値型 | N9
TINYINT | 数値型 | 3
SMALLINT | 数値型 | N5
BIGINT | 数値型 | N9
CHAR(x) | 文字型 | x
VARCHAR(x) | 文字型 | x
NCHAR(x) | Unicode型 | x
NVARCHAR(x) | Unicode型 | x
TEXT | Blob | (Unicode)
CLOB | Blob | (Ansi)
BLOB | Blob | (Binary)
REAL | 数値型 | 10.3
DOUBLE PRECISION | 数値型 | 10.3
FLOAT | 数値型 | 10.3
NUMERIC | 数値型 | 10.3
DECIMAL (x,y) | 数値型 | (x-y,y)
BOOLEAN | 論理型 |
DATE | 日付型 |
DATETIME | 日付 &時刻型 |


Local データベース

Localデータベースは、RIAクライアントでローカルクライアントにデータを保存、アクセスする場合に使用することができます。このデータベースを使用することで、サーバにアクセスしないオフラインプログラムで、クライアント側にデータを保存したり、利用したりすることができるローカルデータソースを定義することができます。

ローカルストレージを使用することで、データをローカルのキャッシュに格納することができ、パフォーマンスを向上させることもできます。

以下は、Localデータベースで動作する上での関連情報です。

埋め込みSQL

Localデータベースは、埋め込みSQLのステートメントで使用することができません。

トランザクション

ローカル・データソースに対するトランザクションは、物理トランザクションとして動作します。ローカル・データソースを含むすべてのタスクは、同じトランザクション内で動作します。

コミット

ローカルデータのコミットは、トランザクションをオープンしたタスクによって行われます。トランザクションが兄弟関係のタスクでも開始される場合、これらのタスクのデータもコミットされます。

ロールバック

ローカル・データソースを持つタスクをロールバックすると、以下の内容がロールバックされます。

  • ローカル・データソースを持つすべてのタスク

  • 親タスクの遅延トランザクション

注意：

  • テーブルの作成時に"unrecognized token"エラーが発生する場合は、データソースのカラムの［データベースデフォルト値］特性を二重引用符 囲んで定義するようにしてください。

  • Android上では、Local データベースでのBLOB項目の最大サイズは１MBです。大きなサイズのデータをRIAクライアント側に格納する場合には、ClientBlb2File() 関数を使ってファイルとして格納することを推奨します。

サポートバージョン：

2.4

関連トピック：

ローカル（オフライン）ストレージ


SQL考慮事項 命名規約

ホーム > リファレンスガイド > データベース > Magicゲートウェイの命名規則

Magicゲートウェイの命名規則

ゲートウェイは、OSごとに異なります。したがって、ファイル名の構成は、OSごとに異なります。

WindowsTMの場合は、「MGyyyy.dll」になります。yyyyはOra8やODBCなどの特定のRDBMSを表します。

関連トピック：

ゲートウェイ名の構成

Magic xpaのAPIの実装とバージョン


SQL考慮事項 命名規約 ゲートウェイ名の構成

ホーム > リファレンスガイド > データベース > Magicゲートウェイの命名規則 > ゲートウェイ名の構成

ゲートウェイ名の構成

[ヘルプ]の[Magic情報]に表示されるMagicゲートウェイのバージョン情報の構成は、次のとおりです。

  • 最初の文字列には、名前とバージョンが表示されます。

  • 次の文字列には、Versionという単語が表示されます。

  • 3番めの文字列には、Magic xpaのバージョン番号が表示され、その後に「-」が続きます。

  • 4番めの文字列には、ソースIDがX.Yの形式で表示されます。「X」は9や10などのメジャーソースバージョン、「Y」はマイナーソースバージョン、つまりソースが変更されるたびに変わる実行番号を表します。

  • 最後の文字列には、ゲートウェイが作成された日付が表示されます。

例えば、次のようになります。

Oracle 8 Version xpa 1.5 - 9.1 08-Jan-2006

Oracle 8はRDBMSの名前とバージョンを表し、その後にVersion、Magic xpaのバージョン番号10.00、ソースID9.1、ゲートウェイの作成日08-Jan-2006が続きます。

注意：

この機能は、Magic Studioでのみ動作します。アプリケーション内で[MAGIC情報]ダイアログを表示させることはできません。

実行エンジンでMagic情報を出力するには、コマンドラインパラメータを指定して起動してください。


SQL考慮事項 命名規約 API実装

ホーム > リファレンスガイド > データベース > Magicゲートウェイの命名規則 > Magic xpaのAPIの実装とバージョン

Magic xpaのAPIの実装とバージョン

Magic xpaは、コンパイルやリンクの段階がないダイナミックなツールです。Magicプログラムは、必要な処理コマンドをタスクの[ロジック]エディタなどに定義するだけですぐに実行できます。Magic xpaで定義されているデータビューもダイナミックなので、プログラム間やアプリケーション間で変更が可能です。Magic xpaのデータビューは柔軟で、様々な形で利用できます。

この柔軟性に単一の規則に基づいたエンジンを提供するために、Magic xpaでは、ダイナミックSQLを使用して、Magicプログラムに必要なSQLデータビューを構築します。SQLテーブルを使用するMagic xpaの各タスクによって、適切なSQL文が発行され、必要なデータビューが指定されます。その後、SQL文がMagicデータベースゲートウェイ によって準備されます。この準備段階で、DBMSオプティマイザによってSQL文の分析と処理の準備が行われます。

3GLや4GLは、コンパイルによって実行時のSQL文の解析と最適化を行わなくてもすむように埋め込みSQLを使用しますが、Magic xpaではコンパイルは使用しません。そのため、準備段階で繰り返し呼び出されるタスクを実行することによって、余分なオーバーヘッドが生じることがありますが、この場合、常駐タスクを利用すると、SQL文を一度だけ準備して解放しません。タスクが繰り返し呼び出される場合、新しいSQL文を準備する代わりに、既存のSQL文が使用されます。こうすれば、Magic xpaのダイナミックSQLは、埋め込みSQLを使用したプログラムと同等のパフォーマンスになります。

各データベースゲートウェイ毎の情報は以下のとおりです。

  • Oracle …… Oracleデータベースゲートウェイは、OCI（Oracle Call Interface）インタフェースを使用して、最大の処理能力とパフォーマンスを実現するように記述されています。このゲートウェイは、Oracle8以降で動作するように設計されています。

  • MS-SQL …… MS-SQL Serverデータベースゲートウェイは、OLE-DB（Object Link Embedding DB）インタフェースを使用して記述されています。最大限のパフォーマンスを得るために、クライアントのカーソルとコマンドが使用されます。このゲートウェイは、Microsoft SQL Server7以降で動作するように設計されています。

  • ODBC …… ODBCデータベースゲートウェイは、ODBC 2.00 APIを使用して記述されています。このゲートウェイは、ODBCドライバのVer2以降で動作するように設計されています。

  • Pervasive …… Magic xpaは、Pervasive SQL 2000 のISAMエンジン（Magic xpa Btrieveゲートウェイ)とSQLエンジン（Magic xpa Pervasiveゲートウェイを通して)をサポートします。


SQL考慮事項

ホーム > リファレンスガイド > SQLに関する考慮事項

SQLに関する考慮事項

トランザクションを開くタスクは、トランザクションに関連する各データベースを使用したテーブルを少なくとも1つは定義しておく必要があります。テーブルを定義しないで、トランザクションを(タスクまたはレコードレベルで)オープンする必要がある場合は、ISAM トランザクションの利用を考慮してください。

組み込みSQL機能の利用

Magic xpaは、同時に複数のSQLデータベースにアクセスすることができ、開発者がデータベースとのやり取りを理解できるようにしています。

Magic xpaは、タスクの処理コマンドとパラメータをSQLステートメントとして変換します。

この動作は、DBMS APIを使用して各データベースと直接にアクセスする専用のゲートウェイの使用することで実現しています。

Magic xpaのデータベースゲートウェイは、Magic.iniファイルの［MAGIC_GATEWAYS］セクションで定義します。

SQLデータベースを使用して動作するようにMagic xpaの実行環境を定義するためには、Magic.iniファイルの設定内容を知っておく必要があります。

ダイレクトSQL機能の利用

Magic xpaは、任意のSQLステートメント(ANSI SQL)を含んだプログラムを作成することも可能です。このステートメントは、Magic xpaでチェックされず直接データベースに送られます。

このオプションは、Magic xpaの処理コマンドではサポートされなかったり、(統計処理などので)SQLステートメントを直接発行した方が、より効率的に実行される場合に有効です。

オンラインタスクでは、ステートメントの結果セットやプロシジャーを格納する新しいテーブルを作成します。テーブルを作成する処理は「重い」処理になるため、オンラインタスクで頻繁にダイレクトSQLタスクを使用することは推奨されません。

関連トピック：

Magic xpaの動作環境の構成と定義

Magicゲートウェイの命名規則

構成とパフォーマンス


SQL考慮事項 動作環境

ホーム > リファレンスガイド > SQLに関する考慮事項 > Magic xpaの動作環境の構成と定義

Magic xpaの動作環境の構成と定義

SQLデータベースのMagicデータベースゲートウェイを使用するには、Magicクライアントと、DBMSのクライアント／サーバのインストール、および環境設定を行う必要があります。Magic xpaでは、DBMSの番号を含む項目をMAGIC.INIに定義して、それぞれのゲートウェイをロードする必要があります。DBの番号は、実行可能なゲートウェイごとに決められています。

関連トピック：

Windows の場合


SQL考慮事項 動作環境 Windows

ホーム > リファレンスガイド > SQLに関する考慮事項 > Magic xpaの動作環境の構成と定義 > Windows の場合

Windows の場合

Windowsプラットフォームでは、MGDBnnは、MAGIC.INIファイルの[MAGIC_GATEWAYS]セクションで関連するDLLにアクセスするように設定します。例えば、Oracle は、DBMSセクションの番号は13なので、次のように指定します。

MGDB13= Gateways\MGOracle.dll

Windows におけるMAGIC. INIファイルのゲートウェイセクションの例は次のとおりです。

[MAGIC_GATEWAYS]
;MGCOMM01=mgwsock.dll
MGDB00=Gateways\MGBtrieve.dl
MGDB01=Gateways\MGPervasiveSQL.DLL
;MGDB06=Gateways\MGdb2400.dll
MGDB10=Gateways\mglocal.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考慮事項 構成とパフォーマンス

ホーム > リファレンスガイド > SQLに関する考慮事項 > 構成とパフォーマンス

構成とパフォーマンス

Magic xpaとSQLの動作方法を理解できたら、次にMagic xpaとSQLの効率的な動作方法について説明します。以下は、Magic xpaとSQLのパフォーマンスを最適にするため、様々なコンセプトとテクニックについて説明しています。

トランザクション

ロック

NULL値

インデックスの定義と使用

範囲の定義

ソート

ストアドプロシジャ

ネットワークトラフィックを軽減する

照会モード位置付け

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 xpaは、以下の３種類のロックを提供しています。

  • Magicロック …… Magic xpaは、MGLOCKファイルを使用してロックを管理します。データベースのロック機構を使用したくなかったり、使用できない場合、このタイプのロックを使用します。ほとんどはISAMデータベースで使用され、SQLデータベースで使用されることはありません。

  • 物理ロック …… Magic xpaは、データベースに実際にロックを発行します。データベースはロックを管理して、さまざまなインターフェース（アプリケーションまたはデータベースツール)を使用した他のユーザによるレコードの変更を防止します。

  • 論理ロック ……論理ロックは、ロックのシミュレーションです。実際に外部ロックがデータベースに発行されることはありません。Magic xpaは、ロックを行う代わりに、レコードが最初に読み込まれた時から他のユーザによって変更されたレコードデータの内容がデータベースに書き込まれないようにするため、ソフトウェアによるチェックを行います。

トランザクションとロックは、RDBMSで密接に関連しています。SQLデータベースはマルチユーザ環境で実行されるので、無計画なロックによって、ユーザのアプリケーションへのアクセスが極端に制限されてしまうことがあります。全てのRDBMSでは、さまざまなロックのレベルを設定できます。

ISAMでは、更新の際にレコードがロックされ、更新が完了するとすぐに解放されます。RDBMSでは、トランザクションの開始時には必ずロックが行われ、COMMITまたはROLLBACK処理コマンドによってのみ解放されます。

通常の処理中は、RDBMSはビュー構造をロックします。暗黙のロックが自動的に実行されて、他のユーザからのアクセスからデータを保護します。

デフォルトのロックを変更する機能は、明示的ロックとして知られています。SQLステートメントが実行されると、暗黙のロックが自動的に発生します。たとえば、INSERT、UPDATE、DELETEの各ステートメントは、トランザクション中データの一貫性と完全性を維持するように、暗黙のロックを発行します。

いくつかのRDBMS（例えばOracle）は、レコードレベルでロックされます。RDBMSによってはページレベルのロックのみを行います。この場合、同じページ内の他のレコードがロックの原因になります。

ロックレベル

SQLのロックには、主に2つのレベルがあります。

  • 排他ロック …… 他のユーザは、レコードの読み込みも行うことができません。UPDATE文が発行されると、自動的に生成されます。

  • 共有ロック …… 他のユーザは、レコードを修正することはできませんが、読み込むことはできます。SELECT文によって発行されるか、またはSELECT文の終わりにFOR UPDATE句を追加することによって発行されます。共有ロックは、予定されているレコードの更新を、このロックが解放されてから実行するようにSQLサーバに指示します。レコードを更新しようとしたり、SELECT ... FOR UPDATE文を送信しようとしたりするユーザには、レコードがほかのユーザによってロックされているというエラーメッセージが表示されます。

デフォルトのロック

Magic xpaには、物理および遅延トランザクションモードの概念が導入されています。両方のモードでのMagic SQLゲートウェイのデフォルトの動作は次のとおりです。

トランザクションモード | デフォルトの動作
物理 | ODBCを除くSQLゲートウェイでは、デフォルトのロック方式として物理ロックが使用されます。 ODBCでは、トランザクションモードに関係なく、常に論理ロックが使用されます。
遅延 | 全てのSQLゲートウェイで、ロック方式として論理ロックが使用されます。

関連トピック：

テーブルロックへのエスカレート

強制的なロック

ロックの期間

ロックとトランザクション処理

テーブルのアクセスモードと共有モード


SQL考慮事項 構成とパフォーマンス ロック 排他共有 物理

ホーム > リファレンスガイド > SQLに関する考慮事項 > 構成とパフォーマンス > ロック > 物理ロック

物理ロック

物理ロックは、データベースによって管理されます。データベースは、ロックを管理します。Magic xpaリクエスト/ステートメントにもとづいてロックのオープンや解放を行います。

物理ロックがかかると、他のユーザは変更することができず、アプリケーションやデータベースツールによって同じレコードをロックすることもできません。

物理ロックは、常に物理トランザクション内で行われます。トランザクションがコミットまたはロールバックによって開始された場合にだけロックが開始され、トランザクションの終了時にのみロックは終了します。

物理ロックに以下の2つのタイプがあります。

  • 暗黙のロック …… DMLコマンドは、トランザクションが終了するまでトランザクションによって自動的にロックが発生します。Magic xpaがUPDATE、DELETEまたはINSERTコマンドを送ると、データベースはユーザの意図に関係なくDMLの結果セット内のすべてのレコードを自動的にロックします。このロックの期間は、DMLコマンドが送られてからトランザクションの終了までになります。

注意：

Magic xpaで「ロックなし」を指定しても、DMLが送られるとロックはデータベースで自動的に行われます。

  • 明示ロック …… データが他のユーザによって変更されないようにするために、通常は計画的なDMLの前に、明示的なロックがユーザのリクエストによって作成されます。

SELECT ...FOR UPDATE文は、Oracle、MS-SQL Serverで使用できます。これらのRDBMSでは、行レベルのロックがサポートされています。したがって、選択したロック方式に基づいてロックが要求されると、Magic xpaは、ゲートウェイにロックを使用して再びレコードを読み取るように指示します。トランザクションが開始されていない場合は、ゲートウェイによって開始されます。その後、ゲートウェイは、FOR UPDATE句を使用して現在のレコードを読み取ります。MS-SQL Serverの場合は、UPDLOCKヒントを使用します。

上記のプロシージャによって、Magic xpa以外のアプリケーションを含むどのアプリケーションでも、トランザクションが完了するまでレコードを更新することはできません。通常は、更新が行われた後、トランザクションが行われます。

物理ロックのプロセス

1. ロックフェーズ

フック …… Magic xpaは、レコードがロックフェーズまで変更されないことを確認します。Magic xpaは、最初に読み込まれた新しい値と、ロックによるSELECTで読み込まれた値を比較します。

2. 更新フェース

更新フェースでは、データが変更されたかどうかを確認しません。これはレコードがロックされたからです。これによってユーザは変更することができません。

Magic xpaは、書込みモードでアクセスされたテーブルをロックするだけです。読込みモードでオープンしたテーブルではロックされません。このパラメータは、タスクの［データソース］テーブル（Ctrl+D)で設定することができます。

例：

現在のレコードを取得します。

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句を使用して宣言されます。その後、このカーソルから全てのレコードが取得されます。


SQL考慮事項 構成とパフォーマンス ロック 排他共有 論理

ホーム > リファレンスガイド > SQLに関する考慮事項 > 構成とパフォーマンス > ロック > 論理ロック

論理ロック

論理ロックは、ロックのシミュレーションです。実際に外部ロックがデータベースに発行されることはありません。Magic xpaは、ロックを行う代わりに、レコードが最初に読み込まれた時から他のユーザによって変更されたレコードデータの内容がデータベースに書き込まれないようにするため、ソフトウェアによるチェックを行います。

論理的ロックでは、他のユーザが同じレコードを更新するのを防ぐことができません、レコードが変更された場合に自身の更新を防ぐことができるだけです。Magic xpaは、ロック開始の時点と、更新段階の２回レコードをチェックします。

論理ロックは、失われた更新（Loast Update）の防止を支援します。

ロックが要求され、Magic xpaがゲートウェイにロックを使用してレコードを読み取るように指示すると、ゲートウェイはレコードを読み取り、読み取ったレコードの値を保持します。

その後、UPDATE文が［レコード後］で発行されると、全てのカラム、Magic xpaで呼び出されたフィールドがWHERE句に追加されます。

その間、ロックされていないレコードが別のユーザによって変更された場合、ゲートウェイによって、レコードが別のユーザによって変更されたというメッセージが送信され、UPDATEは失敗します。

論理ロックは、2つの状況で使用することができます。各状況、実装は異なります。

  • 遅延トランザクション …… 遅延トランザクションは、データベースではなくキャッシュに保存されます。これは、物理ロックが発行できないことを意味します。

  • 物理トランザクション …… データベース/ゲートウェイがレコードレベルでのロックをサポートしない場合、物理トランザクションが使用されます。

論理ロックのタイプ

論理ロックには以下の２種類あります。

  • 物理トランザクション内の論理ロック …… データベース/ゲートウェイがレコードレベルでのロックをサポートしない場合、物理トランザクションが使用されます。この種のロックでは、外部ロックはデータベースに送信されません。しかし、DMLコマンドを送ることでトランザクションの終了まで保持される暗黙のロックが発生します。

  • 遅延トランザクション内の論理ロック …… 遅延トランザクション内のすべての変更はトランザクションキャッシュで保存されます。そして、トランザクションの終了時にのみ、データベースに物理的に書き込まれます。これは、物理ロックが発行できないことを意味します。

論理ロックのプロセス

論理ロックは、データベースで管理されません。したがって、２回チェックされます。最初は、ロックが要求された時点でチェックされ（ロックフェース)、2回めは更新がデータベースに送信される時です。

1. ロックフェーズ

フック …… Magic xpaは、レコードがロックフェースまで変更されないことを確認します。Magic xpaは、最初に読み込まれた新しい値と、ロックによるSELECTで読み込まれた値を比較します。

2. 更新フェース

遅延トランザクションの終了時、DMLコマンドの全ては、データベースに送信されます。この段階では、レコードが変更されていないかどうかの2回目のチェックが実行されます。このチェックは、トランザクションが終了するまで論理ロックの段階から必要です、他のユーザはレコードを変更することができます。Magic xpaは、［更新レコード識別］特性で定義されたレコード・フィールドを含むWHERE句を持つUPDATE/DELETEコマンドを送ります。

プラットホーム仕様

MS-SQL Serverでは、論理ロックと物理ロックの両方がサポートされています。論理ロックを使用するには、［データベース特性］ダイアログの［データベース情報］特性で「SQL_PHYSICAL_LOCKING=N」というフラグを指定する必要があります。

ODBCではページレベルのロックのみがサポートされていますが、ページレベルのロックはロックの問題を引き起こす可能性があります。したがって、実際にはレコードがロックされない論理ロック方式が使用されます。この場合、整合性を保つために、レコードが論理的にロックされた時から更新まで、レコードが変更されないことが保証されます。

例：

現在のレコードを取得します。

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考慮事項 構成とパフォーマンス ロック テーブルロック

ホーム > リファレンスガイド > 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 xpaでは、［メインソース特性］や［リンク特性］で指定した［アクセス］特性と［共有］特性の両方を使用してテーブルを開きます。テーブルを開くと、データベースからのテーブル構造の取得やテーブルの有無の確認などの内部タスクが実行されます。Magicロックが使用されている場合、関連する情報がmglockファイルに書き込まれます。

RDBMSを使用している場合は、Open FileコマンドもOpen Tableコマンドもありません。したがって、アクセスモードおよび共有モードは、ほとんど意味がありません。ただし、以下の場合は例外です。

  • ［共有］特性が「N=なし」の場合、SQLゲートウェイによって、SQLデータベースに［LOCK TABLE］コマンドが送信されます。これは、Oracleでのみ行われます。

  • ［アクセス］特性が「R=読込」、共有モードが「W=書出」で、テーブルがリンクテーブルの場合、ロックが要求されても、リンクテーブルのレコードはロックされません。

  • ［アクセス］特性が「W=書込」の場合は、リンクテーブルも更新されると想定し、リンクテーブルに対してもロックが発行されます。


SQL考慮事項 構成とパフォーマンス NULL値

ホーム > リファレンスガイド > SQLに関する考慮事項 > 構成とパフォーマンス > NULL値

NULL値

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 xpaでは、以下の4つの箇所から範囲を指定することができます。

  • Magic xpaの項目定義の［範囲］特性 …… 項目定義の［範囲］特性で指定した全ての範囲は、SELECT文の一部になります。その後、一連の検索中であっても、範囲はRDBMSおよびWHERE句によって処理されます。Magic xpaは、クエリに一致したレコードのみを受け取ります。

  • タスクレベルの範囲式 …… タスクレベルの範囲式を使用すると、Magic xpaによって、データベースから返された各レコードが式と比較され、レコードをビューの一部とするかどうかが決定されます。Magic xpaは全てのレコードを受け取り、フィルタリングを実行します。

  • DB SQL範囲 …… データベースにそのまま送信されるWHERE句に連結されるフリーテキスト。これは、物理トランザクションモードのタスクでのみ実行されます。固有のデータベース構文を理解している必要があります。

  • Magic SQL範囲 …… データベースごとに適切な構文に変換されるMagic xpaの式。これは、データベースに送信されるWHERE句に追加されます。固有のデータベース構文を理解していなくてもかまいません。

これら４つのオプションの動作は、まったく異なります。できるだけデータベースに送信できる箇所で、範囲を設定することをお勧めします。タスクレベルの範囲では、他で指定できない範囲条件のみ設定してください。


SQL考慮事項 構成とパフォーマンス ソート

ホーム > リファレンスガイド > SQLに関する考慮事項 > 構成とパフォーマンス > ソート

ソート

Magic xpaの内部ソートは、パフォーマンスに大きく影響します。そのためデータのソートはRDBMSに指示し、その順序でMagic xpaにレコードを取り込むことが、最善の方法です。これは、RDBMSのソート機能を使用して行われます。


SQL考慮事項 構成とパフォーマンス ストアドプロシジャ

ホーム > リファレンスガイド > SQLに関する考慮事項 > 構成とパフォーマンス > ストアドプロシージャ

ストアドプロシジャ

ストアドプロシジャは、アプリケーションロジックの一部をサーバで実行するための強力な方法です。ストアドプロシジャは、SQLコマンドタスクを使用して、Magic xpaから呼び出すことができます。

Magic xpaからCOMMITステートメントを送った場合は、すべてのコネクションがコミットされます。

ストアドプロシジャの構文はデータベースによって異なります。したがって、この機能を使用するか、アプリケーションの移植性を優先するかを選択しなければなりません。

MS-SQL Serverでのストアドプロシージャ

Magic xpaは、MS-SQL Serverに対するストアドプロシージャーで戻り値をサポートします。

これを実装するには、［SQLコマンド］ダイアログボックス内に入力するステートメントに、以下の構文を含めなければなりません。

? =

例えば以下のように指定します。

EXEC？= proc_name

［戻り値］欄にで変数項目を指定する必要があります。

戻り値が BOOLEAN か、ステートメントに上記の構文がや戻り値が含まれていない場合、Magic xpaはストアドプロシージャーのステータス（成功／失敗）を表示するだけです。

注意：

出力が無い場合、ストアドプロシージャーは戻り値として空白を返します。このような場合、戻り値を取得するために、ストアドプロシージャーでダミーのSelectステートメントを定義してください。

Magic xpaでは、開発者が（SQLサーバで）どのSelectステートメントで戻り値を返すかを決めることができます。

これを実装するには、［SQLコマンド］ダイアログボックス内のSQLステートメントに以下の構文を追加する必要があります。

/*=== ROWSET=n ===*/

nは、戻したいSelectステートメントの番号を示しています。

例えば以下のように指定します。

例：/*=== ROWSET=5 ===*/

この場合、5番目の結果セットが返ります。

現存していないROW-IDを指定するとエラーメッセージが返ります。

Magic xpaでは、SQL Serverのストアドプロシジャ内のDSQLステートメントでカーソルを使用することができます。また、結果セットを戻すDSQLステートメントでのカーソルの使用をサポートしています。

これは、ダイレクトSQLステートメントに以下の構文を追加することで可能になります。

/*===CURSOR=Y ===*/

カーソルを参照してください。

Oracleでのストアドプロシージャー

INOUTまたはOUTパラメータがないプロシージャは、PL/ SQLブロックとして呼び出す必要があります。

begin procname （par1 int, par2 int）; end;

プロシージャに複数のパラメータを使用することができる場合、パラメータをカンマで区切ります。OracleパラメータがINOUTまたはOUTでない場合は、APGボタンを選択してからプロシージャを実行する必要があります。ストアドプロシジャにはOUTパラメータを入力しないでください。代わりに、プレイスホルダとしてカンマを使用します。プロシージャの終わりに句読点を追加しないでください。


SQL考慮事項 構成とパフォーマンス ネットワークトラフィックの軽減

ホーム > リファレンスガイド > SQLに関する考慮事項 > 構成とパフォーマンス > ネットワークトラフィックを軽減する

ネットワークトラフィックを軽減する

ネットワークトラフィックの軽減は、パフォーマンスを向上させるための最善の方法です。ネットワークトラフィックを軽減するには、以下のガイドラインに従います。

  • 実際に必要なフィールドのみをレコードから選択します。選択したフィールドのみがデータベースから取得されます。

  • タスクの範囲ではなく、データベースに送信できる範囲を使用します。

  • ［照会リンク］コマンドではなく、［結合／外部リンク］コマンドを使用します。

  • 可能な場合、リンクではなくRDBMSが提供するビューの機能を使用します。

テーブルを結合する場合、単純なテーブルの代わりにRDBMSビューを使用すると、パフォーマンスが向上します。Magic xpaの［リンク］コマンドは、リンクテーブルごとに異なるSELECT文をデータベースに発行することで実行されます。バッチタスクをより効果的に実行するには、メインソースとリンクテーブルを結合するビューを使用するか、または［照会リンク］コマンドの代わりに［結合／外部リンク］コマンドを使用します。これにより、データベースによって結合が実行されます。

注意：

Magic xpaとRDBMSでは、ビューという用語の意味が異なります。

  • Magic xpaでは、ビューとは、メインソースから選択された項目とリンクテーブルから選択された項目、およびこれらの実項目の計算用に使用する変数項目を意味します。

  • 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コマンド

SQLコマンドは、通常のMagic xpaのプログラミングでは使用されないRDBMS機能を使用することで、パフォーマンスを向上させます。

テーブルの行に対するグローバルな更新やテーブルの行のグローバルな削除がよい例です。クライアント／サーバ環境で作業している場合、過剰なネットワークトラフィックを防ぐには、グローバルな文を使用することが特に重要です。

別の例として、SUM、MAX、AVGなどのグループ関数の使用があります。レコードをカウントする場合、SQLコマンドタスクでSELECT COUNT（*）を使用すると、カウントするためだけにレコードを読み込むよりも効率的です。


メニュー

Magic xpaでは、プロジェクト内にメニューを定義することができます。エンドユーザがアプリケーションを実行する場合、このメニューを使用してプログラムを起動します。

Magic xpaには、以下のメニューオプションがあります。

  • デフォルトプルダウンメニュー …… Magic xpaはプロジェクトを作成する際にデフォルトプルダウンメニューを自動的に表示するように定義します。このメニューには、実行時に必要な基本的なオプションがすべて含まれています。

  • ツールバーメニュー …… プルダウンメニューの下に表示されるボタンの集まり。このボタンをクリックすることでプルダウンメニューに定義されている機能を簡単に起動させることができます。

  • 追加のメニュー構造 …… 必要に応じて作成することができます。これらのメニューは、コンテキストメニューとしてアプリケーションで使用することもできます。

参考：

メニューは、エンドユーザが簡単に操作できることを考慮して配置してください。

モバイル仕様：

  • メニューはタスクの実行時に作成され、実行中に変更することができません。

  • 最上位レベルのメニューのみ表示されます。

  • 無効なメニューは表示されません。

  • Androidの場合、メニューは画面の下にボタンとして表示されます（デバイスメニューボタンをクリックした場合)。

  • iOSの場合、フォームにコンテキストメニューが定義されていれば、フォームの右端にボタンが追加されます。このボタンは、アクティブシートのリストを表示します。

関連トピック：

［メニュー］リポジトリ

［メニュー定義］テーブル

権利設定

メニュー特性

プログラムメニューサポート

メニュー関数

メニュー (Mastering Magic xpa)


メニュー リポジトリ

ホーム > リファレンスガイド > メニュー > メニュー リポジトリ

［メニュー］リポジトリ

［メニュー］リポジトリには、1つのデフォルトプルダウンメニューが含まれています。

新規プロジェクトを作成すると、「デフォルトプルダウンメニュー」が作成され、アプリケーションの実行に必要な基本的なオプション（［ファイル］，［編集］，［オプション］，［ヘルプ］）が含まれています。このデフォルトメニューは変更したり、削除したり、拡張したりすることができます。

［メニュー］リポジトリには、以下のカラムがあります。

カラム

内容

#

ここには、テーブルの連番が自動的に設定されます。修正はできません。

メニュー名

［メニュー名］カラムにはメニュー構造の論理的な名前を定義します。ここで定義された名前は、実行時には表示されません。

論理メニュー名

このカラムは、メニュー表示を制御するためのMagic xpaのメニュー関数で使用されます。

［論理メニュー名］カラムには、メニューの表示に関する制御を行う場合に使用されます。この名前は、MnuEnable関数のようなMagic xpaのメニュー関数を使用することでプルダウンメニューの表示を制御することができます。

［メニュー］リポジトリのトップレベルで定義されたこの名前を使用することで、メニュー全体を捧持させないようにすることができます。

参考：

  • この関数を有効に利用するには、［論理メニュー名］にユニークな名前を定義する必要があります。

  • 「\」記号は、メニューパスを表す場合に使用するため、論理名には、使用しないでください。詳細は、「プログラムメニューサポート」を参考にしてください。

プルダウンメニューは、一番上のレベルにメニューバーを含め、最高10までの階層を持つように設計することができます。メニューバーは、ユーザが実行時にアプリケーションを選択すると表示されます。ほとんどのプロジェクトでは、少なくとも１つのメニューが定義されており、ここには、プログラム名が定義されており、［プログラム］リポジトリへのリンクが定義されています。

プルダウンメニューのオプションとして、ショートカットとなるツールバーボタンを定義することができます。

［メニュー］リポジトリには、プロジェクトで入手可能なメニュー構造を追加することができます。最高9,999までのメニューを含めることができます。

メニューのタイプは、メニューが使用されるコンテキストによって決まります。

例えば：

  • タスクのフォームの［コンテキストメニュー］特性から「デフォルトプルダウンメニュー」を選択した場合、「デフォルトプルダウンメニュー」がコンテキストメニューとして表示されます。

  • プルダウンメニューにメニューを追加した場合、実行時にプルダウンメニューの一部として表示されます。

［メニュー］リポジトリ内の各メニュー構造から［メニュー定義］テーブルにズームし、各メニュー構造の具体的なメニューとオプションを定義することができます。各メニュー構造には、最高10までのメニューレベルを定義することができます。

［メニュー］リポジトリには、デフォルトまたはユーザ定義のメニュー構造のどちらかが入力できます。

Magic xpaでは、特定のプログラムとそのサブプログラムに特有なメニューを追加することができます。詳細については、「プログラムメニューサポート」を参照してください。

モバイル仕様：

新規作成のプロジェクトには、「デフォルトプルダウンメニュー」が作成されます。これはMDIアプリケーションように設計されたものです。MDIは、モバイルデバイスにはないため、モバイルアプリケーションを開発する場合は、このデフォルトエントリを削除することを推奨します。

参考：

/* ... */という書式でコメントを定義した場合、［メニュー一覧］の［説明］欄にコメントが表示されます。

関連トピック：

メニュー関数

MENU リテラル

実行時のメニューコンテキスト


メニュー 定義テーブル

ホーム > リファレンスガイド > メニュー > メニュー 定義テーブル

［メニュー定義］テーブル

［メニュー］リポジトリの各メニュー構成項目からズームすることで、［メニュー定義］テーブルにアクセスできます。ここでは、各メニュー構成の具体的なメニューとオプションを定義することができます。各メニュー構成には、最大10階層のメニューが定義できます。

［メニュー定義］テーブルには以下のカラムがあります。

カラム

内容

#

ここには、テーブルの連番が自動的に設定されます。修正はできません。

タイプ

メニュー項目タイプは、起動内容を定義します。オプションの詳細は、タイプを参照してください。

ユーザメニュー名

このカラムには、実行時にメニューに表示されるテキスト（コマンド名）を定義します。エンドユーザは、このテキストを見ることになります。

最上位レベルのプルダウンメニューでは、［ユーザメニュー名］カラムに指定した名前がメニューバーに表示されます。プルダウンのサブメニューレベルと、全てのコンテキストメニューレベルでは、［ユーザメニュー名］カラムに指定した名前が、サブメニュー、関連表示、または動作を呼び出すメニューオプションになります。

下線の付いた文字の前にアンパサンド（&）を挿入すると、プルダウンまたはコンテキストメニューの任意のレベルにアクセスキーを指定できます。実行時にメニューが表示されたら、下線の付いた文字を入力すると、そのメニューオプションが選択されます。 例えば：ファイル(&F)と指定されたメニューは、Alt+Fキーを使用して起動させることができます。

このカラムではUnicodeを使用することができます。Magic V9Plusのアプリケーションから移行した場合、テキストはデフォルトコードページに従って自動的にUnicodeに変換されます。

論理メニュー名

このカラムには、メニュー項目（コマンド）の論理名を設定します。この論理名は、エンドユーザには見えません。プログラム内でメニュー関数を使用して指定する場合はこのメニュー名を使用します。

パラメータ

このカラムの値は、［タイプ］カラムに指定した値（メニューのタイプ）によって異なります。このカラムからズームすると、［タイプ］カラムに指定した値に応じたメニュー定義画面が表示されます。オプションの詳細は、パラメータを参照してください。

ショートキー

ショートカットキーを変更したい場合、このカラムからズームし［キー設定］ダイアログを表示し、定義する実際のキーの組み合わせを押します。アクティブなキーの組み合わせが、それぞれユニークである必要があります。

アクセスキーを変更したい場合、［キーボード割付］テーブルの［キー］カラムの内容変更する必要があります。

このカラムは、［メニュータイプ］が「プログラム」、「OSコマンド」、および「イベント」のみ有効です。

関連トピック： メニューにショートカットキーを定義するには


メニュー 定義テーブル タイプ

ホーム > リファレンスガイド > メニュー > メニュー 定義テーブル > タイプ

タイプ

［メニュー定義］テーブルのメニュー項目タイプは、起動内容を定義します。次のオプションがあります。

P＝プログラム

この値を指定した場合、［パラメータ］カラムを使用して［プログラム］リポジトリのプログラム番号を指定します。実行時には、指定したプログラムをエンドユーザが選択すると、そのプログラムが実行されます。また、各カラムでは、実行するプログラムに関する設定を行います。

O＝OSコマンド

この値を指定した場合、［パラメータ］カラムを使用してOSのコマンドを指定します。実行時には、指定したOSのコマンドをエンドユーザが選択すると、そのコマンドが実行されます。

リッチクライアントタスクでは、クライアント側だけでのみ動作します。

V＝イベント

［パラメータ］カラムには、Magic xpaの内部のイベントが含まれます。実行時にエンドユーザによって選択された場合、内部のイベントと関連した機能が実行されます。

「V=イベント」タイプを選択した場合、［イベント］ダイアログボックスにズームし、以下のオプションのうち1つを選択することができます。

  • S=システム …… ［キーボード割付］テーブルに定義された組み合わせキーによってトリガされたイベント

  • I=内部 …… ［内部イベント一覧］から選択されるイベント

  • U=ユーザ …… ［ユーザ定義イベント］として定義されたイベント。コンポーネントから呼び出す場合は、メインプログラムの［ユーザ定義イベント］テーブルの［公開］カラムをチェックする必要があります。

注意：

コンポーネントに定義されたイベントを利用する場合、リッチクライアントのこのメニューを使用すると、コンポーネントがロードされます。

E＝ライン

この値を指定した場合、メニュー上、この位置に横線（区切り線）が表示されます。

M＝メニュー

メニューを階層化する場合に、この値を指定します。プルダウンメニューで、このメニューが最上位の場合、［パラメータ］カラムで指定した名前がメニューバーに表示されます。一方、メニューが下位のメニューの場合、またはコンテキストメニューの場合は、［パラメータ］カラムで指定した名前は、メニューの中のテキスト（コマンド名）になります。

実行時、このメニューの中のテキストをエンドユーザが選択すると、その下位のメニューが表示されます。また、プルダウンメニューの最上位を除くレベル、またはコンテキストメニューの全てのレベルで、実行時にメニューの中でテキストの文字の前に下線が表示されるように設定できます。その場合、下線付きで表示したい文字の前にアンパサンド（＆）を付けます。これで、実行時、メニューが表示された時、この文字をエンドユーザが入力すると、このテキスト（コマンド）を選択したことになります。

なお、プルダウンメニューの最上位のレベル（メニューバーのレベル）の場合には、Altキーとの組み合わせ文字によるショートカットキーが自動生成されます。ただし、ショートカットキーは、テキストベースのシステムだけ有効です。

モバイル仕様：

モバイル環境では、サポートされません。

W=ウィンドウリスト

この値を指定した場合、メニューは「ウィンドウの一覧」として表示されます。［ウィンドウリストに表示］特性が「Yes」の場合このメニューが表示されます。

このメニュータイプは、リッチクライアントタスクではサポートされません。

サポートバージョン：

2.3

注意：

リッチクライアントではサポートされません。


メニュー 定義テーブル パラメータ

ホーム > リファレンスガイド > メニュー > メニュー 定義テーブル > パラメータ

パラメータ

このカラムの値は、［タイプ］カラムに指定した値（メニューのタイプ）によって異なります。このカラムからズームすると、［タイプ］カラムに指定した値に応じたメニュー定義画面が表示されます。

タイプ | パラメータ | 意味
M＝メニュー | サブメニュー | ズームすると、［メニュー定義］テーブルが表示されます。このテーブルは、１つ下のレベルのメニュー定義画面です。 ここには、このサブメニューレベルのオプション数が表示されます。
P＝プログラム | プログラム番号 | ズームすると［プログラム一覧］が表示され、プログラム番号が選択できます。 ここには、プログラム番号が表示されます。
E＝OSコマンド | OSコマンド | 一時的にOSに抜け、OSのコマンドを実行することができます。スクリプトやバッチファイルなどの実行可能なOSのコマンドを指定できます。 Windowsの「ファイルを開く」ダイアログでファイルを選択することもできます。 OSコマンドを指定しなかった時には、実行時、このメニュー項目をエンドユーザが選択するとOSシェルへ移行します。
V＝イベント | イベント | イベントを発行し、［イベント］ロジックユニットを実行させます。 ［システム］、［内部］、［ユーザ］のいずれかのタイプに属するイベントを指定できます。 ここには、イベント名が表示されます。
L＝ライン | N/A | 前のメニュー項目と次のメニュー項目との間に横の区切り線を表示することができます。


メニュー 権利設定

ホーム > リファレンスガイド > メニュー > 権利設定

権利設定

［メニュー特性］による権利設定

［メニュー特性］ダイアログの［特性］タブの［権利］特性を使用して、メニューの使用権利を指定することもできます。［権利］特性には使用権利を番号で指定します。

この番号により、エンドユーザが、そのメニューを使用できるかどうかが決まります。指定した使用権利が付与されていないユーザは、このメニューにはアクセスできず、メニュー項目を選択することもできません。具体的には、メニューは表示されず、他のメニューが寄せられて表示されます。


メニュー 特性

ホーム > リファレンスガイド > メニュー > メニュー 特性

メニュー特性

［メニュー定義］テーブル上で、［編集］メニューから［特性］を選択すると、［メニュー特性］ダイアログが表示されます。［特性］タブに表示される特性は、［メニュー定義］リポジトリの［タイプ］カラムの設定値によって異なります。

［メニュー特性］ダイアログは、次の3つのタブで構成されます。

［特性］タブ

［イメージ］タブ

［初期設定］タブ


メニュー 特性 特性タブ

ホーム > リファレンスガイド > メニュー > メニュー 特性 > 特性タブ

［特性］タブ

［特性］タブでは、メニュー項目に対するアクセス権を割り当てることなどができます。［メニュー特性］ダイアログの［権利］に入力した番号によって、各エンドユーザがこのメニュー項目に対するアクセス権を持っているかどうかが判断されます。ここで指定する権利を持たないエンドユーザには、この項目がメニューに表示されません。

［OSコマンド］メニュー項目には、特別な［メニュー特性］ダイアログが表示されます。このダイアログでは、［権利］特性のほかに、［表示］および［ウェイト］ボックスでOSセッションの開き方を指定できます。

［特性］タブで設定する特性は次のとおりです。

特性

内容

モバイル

権利

このカラムには使用権利を指定します。この使用権利により、実行時、エンドユーザがメニューにアクセスできるかどうかが決まります。

アクセス権を持たないエンドユーザは、このメニュー項目をアクセスすることができなくなります。このメニュー項目はメニューに表示されず、スペース表示もされません。

関連トピック： ログオンユーザにもとづいてメニューをカスタマイズするには

全て

ヘルプ画面

この特性を使用して、アプリケーションメニューにヘルプ画面を関連付けることができます。ズームすると［ヘルプ一覧］が表示されますので、ここからヘルプ画面を指定します。

リッチクライアントタスクの場合は、URLヘルプのみ有効です。

自動ヘルプ

アプリケーションメニューに自動ヘルプを設定します。ズームすると［ヘルプ一覧］が表示されますので、ここから自動ヘルプを指定します。

リッチクライアントアプリケーションの場合は、URLヘルプのみサポートされます。

表示

メニュー項目のタイプが［OSコマンド］の場合には、外部プログラムの表示形式を指定します。値は、「H=なし」、「N=通常」、「Ｘ＝最大化」、「Ｍ＝最小化」のいずれかが指定できます。

  • H＝なし …… この値にしておくと、外部プログラムが、現在表示されているウィンドウの裏で実行されます。つまり、外部プログラムはエンドユーザには見えません。

  • N＝通常 …… デフォルト値です。この値にしておくと、外部プログラムが最前面のウィンドウで実行されます。

  • X＝最大化 …… 外部プログラムが最前面のウィンドウで実行されるとともに、そのウィンドウが画面いっぱいに最大化されます。

  • M＝最小化 …… 外部プログラムが最小化されて実行されます。つまり、外部プログラムはアイコン化されます。

参考：

この特性は、リッチクライアントタスクでは無効です。

ウェイト

［ウェイト］特性では、呼び出されているプログラムの実行と並行してMagicプログラムを実行するか、または、プログラムの完了までMagicプログラムをいったん待機させるかどうかを指定できます。

この特性は、［メニュー定義］テーブルの［タイプ］カラムを「OSコマンド」にしている時にだけ表示されます。

  • アンチェック …… デフォルト値です。呼び出されているプログラムの実行と並行してプログラムが実行されます。

  • チェック …… 呼び出されているプログラムの完了後、プログラムが再開されます。

パラメータ

メニューのタイプが「プログラム」か「イベント」の場合に有効になります。［パラメータ］特性からズームすると、［パラメータ一覧］が開きます。ここで、呼び出すプログラム／ハンドラに渡すパラメータを定義します。

コンテキストID

［コンテキストID］特性は、メニュータイプが「プログラム」の場合に有効になります。この特性は、新しいセッションを表す文字列が返ります。この特性は、オプションです。

この欄に項目のシンボル名を入力するか、［項目一覧］にズームして文字型項目を選択してください。メインプログラムで定義された項目を定義することができます。

項目のデータ型が文字型かUnicode型でない場合、入力内容はキャンセルされます。

通常、2つのプログラムが相互に参照できるようにさせる場合に使用されます。例えば、プログラムAがプログラムBを呼び出し、［コンテキストID］特性にコンテキスト名を設定した場合、プログラムBの名前がプログラムAに渡ります。コンテキスト間のイベントも参照してください。

［コンテキストID］特性に設定されるIDは、各コンテキストごとにユニークで、動的です。従って、同じプログラムを何回も起動した場合に、各プログラムのコンテキストを区別したい時に、この特性が使用できます。このような場合、コンテキストIDはコンテキスト名より効果的です。（プログラムが１回実行されるだけの場合は、コンテキスト名の方が効果的です。）

参考：

この特性は、リッチクライアントタスクでは無効です。

ソースコンテキスト

この特性は、プログラムメニューでのみ有効です。

複数のプログラムが並行して起動され、直近で起動されたプログラムから他のコンテキストをロードした場合、新しいプログラムのメインプログラムやグローバルパラメータをどこからコピーするか指定します。

指定できるオプションは以下の通りです。

  • M=メインコンテキスト …… 最初に起動されたプログラムからコピーされます。

  • C=現在のコンテキスト …… 現在フォーカスのあるプログラムからコピーされます。

この特性は、｢プログラム｣でのみ有効です。

リッチクライアントの並行起動タスクでは、｢現在のコンテキスト｣のみ利用できます。

出力先コンテキスト

発行されたイベントを使用してコンテキストがアプリケーションサーバ上で相互通信する場合に使用します。指定されたコンテキスト内でイベント発行させるために、ここにコンテキスト名を式で指定します。コンテキスト名は、CtxSetName関数を使用して定義することができます。コンテキストは、共有値やデータベースファイルを使用してリソースを共有することができます。

この特性は［イベント］メニューで利用可能です。

参考：

この特性は、リッチクライアントタスクでは無効です。


メニュー 特性 特性タブ パラメータ

ホーム > リファレンスガイド > メニュー > メニュー 特性 > 特性タブ > パラメータ

パラメータ

メニューのタイプが「プログラム」か「イベント」の場合に有効になります。

［パラメータ］特性からズームすると、［パラメータ一覧］が開きます。ここで、呼び出すプログラム／ハンドラに渡すパラメータを定義します。

［パラメータ一覧］には、以下のカラムがあります。

カラム | 内容
項目 | 起動プログラムにパラメータとして渡すデータ項目を指定します。起動先から値を受け取ることもできます。パラメータは「参照渡し」で渡されます。 このカラムからズームして、［項目一覧］を表示し、ここから項目を選択できます。パラメータを式で指定する場合は、ここをスキップしてください。
式 | 起動プログラムにパラメータとして渡す値を式で指定します。この場合、起動先から値を受け取ることはできません。パラメータは「値渡し」で渡されます。 このカラムからズームして、［式］エディタを表示し、ここでパラメータ値となる式を定義します。［項目］カラムに定義済の場合は、このカラムにパークできません。
内容 | このカラムには、［項目］カラムに定義した項目名か、［式］カラムに定義した式の内容が表示されます。
スキップ | 起動先にパラメータ項目が定義してあり、このパラメータを渡さない場合は、このカラムをチェックしてください。

イベントメニューのパラメータ

イベントの場合は、［ユーザイベント］テーブルに定義されたパラメータを元に指定します。

注意：

［ユーザイベント］テーブル側の［パラメータ］テーブルの各パラメータ項目に対してコメントボックスを開き、/*と*/に囲まれたテキストを入力することでパラメータに対するツールチップを定義することができます。ツールチップは、メニュー定義側の［パラメータ］テーブルの説明領域に表示されます。

関連トピック：

パラメータの受け渡し

コール処理コマンド


メニュー 特性 イメージタブ

ホーム > リファレンスガイド > メニュー > メニュー 特性 > イメージタブ

［イメージ］タブ

［イメージ］タブで設定する特性は次のとおりです。

特性

内容

モバイル

イメージ場所

Magic xpaは、メニューにツールイメージを表示させることができます。この特性は、オプションイメージが表示される場所を指定します。次のオプションから選択します。

  • N＝なし …… メニューイメージを表示しません。

  • B＝両方 …… メニューイメージをツールバーとメニューに表示します。

  • T＝ツールバー …… メニューイメージをツールバーだけに表示します。

  • M＝メニュー …… メニューイメージをメニューだけに表示します。

ボタンイメージ

Magicイメージファイルの記述に基づいて定義したユーザイメージファイルを指定します。指定したイメージがツールバーボタンに表示されます。ここからズームするとWindowsの［ファイルを開く］ダイアログが表示されます。ここから、イメージファイルを選択してください。

Windowsの場合は、イメージは16x16ピクセルのbmpファイルでなければなりません。

モバイル仕様：

ナビゲーションドロワーで表示されるメニューでのみ表示されます。

Android

iOS

ツールチップ

50桁以内の文字列を入力します。マウスカーソルをツールボタン上に置いた時に表示されます。ボタンの機能に関する簡単なヒントを記述します。

表示グループ

ツールバーのボタンをグループ分けする場合のグループ番号（0～9999）を指定します。ツールボタンの表示位置を示すグループ番号を指定してください。

グループ間にはセパレータが挿入されます。

数値が小さい順に、左側から表示されます。

イメージ番号

内部ツールボタンイメージの番号です。これらのイメージはMagic xpaの内部に埋め込まれており、選択時に使用できます。イメージは、ここからズームして［イメージを取得］ダイアログから選択します。

メニュー項目に表示されルイメージは、以下のような特徴があります。

  • メニュー項目が無効の場合、そのイメージは灰色で表示されます。

  • メニュー項目イメージが選択された場合、イメージは立体表示されます。

  • ユーザによって指定されたイメージが見つからない場合、イメージは表示されません。

関連トピック：

メニューにアイコンを追加するには

ツールバーにアイコンを追加するには


メニュー 特性 初期設定タブ

ホーム > リファレンスガイド > メニュー > メニュー 特性 > 初期設定タブ

［初期設定］タブ

［初期設定］タブで設定する特性は次のとおりです。

特性

内容

モバイル

チェックマーク

メニュー項目の左にチェックマークを付けるかどうかを指定します。ツールボタンを指定している場合、このチェックを付けると、そのボタンが押されている状態で表示されます。

可視

メニュー項目またはツールバーボタンの表示、非表示を指定します。

全て

有効

メニュー項目またはツールバーボタンの有効、無効を指定します。

注意：

内部イベントが設定されたメニューの場合は、この設定は無効です。メニューに無効なイベントが割り当てられている場合、実行中はメニューが無効になります。


メニュー プログラムメニューサポート

ホーム > リファレンスガイド > メニュー > プログラムメニューサポート

プログラムメニューサポート

プログラムメニューは、通常いくつかのメニュー（デフォルトメニューや［顧客］メニュー、および［印刷］メニューなど）が組み合わされて表示されます。

Magic xpaには、特定のプログラムやそのサブプログラムをメニューに追加する機能があります。

さらに、フォーム上の各コントロールごとに異なるコンテキストメニューを割り当てることができます。

メニューは、入力されたメニューの集まりです。メニューがコンテキストメニューか、プルダウンメニューかどうかは、それが使用されるコンテキスト内で定義されます。

メニュー関数を使用することで、プログラムによってメニューを操作することが可能です。

［論理メニュー名］カラムで指定された名前をメニュー関数で指定することで、メニューを表示したり、非表示にしたりすることができます。これらの機能を有効に利用するには、ユニークな名前を指定する必要があります。

コントロールの［コンテキストメニュー］特性には、コントロールで表示するためのコンテキストメニューを指定します。

関連トピック：

MENU リテラル

実行時のコンテキストメニュー

メニューパスの設定


メニュー プログラムメニューサポート 実行時のメニュー

ホーム > リファレンスガイド > メニュー > プログラムメニューサポート > 実行時のメニュー

実行時のコンテキストメニュー

メニューのタイプ（プルダウンまたはコンテキスト）は、使用されるコンテキストによって決まります。メニューは、使用されるコンテキストに依存し、プルダウンメニューやコンテキストメニューとして使用することができます。

例えば、フォームの［コンテキストメニュー］特性に「デフォルトプルダウンメニュー」を選択した場合、表示されるコンテキストメニューは「デフォルトプルダウンメニュー」と同じ構造を持っています。

この機能によって、新たにメニュー構造を定義することなく、コンテキストメニューを表示させることができるようになります。

関連トピック：

メニューパスの設定


メニュー プログラムメニューサポート メニューパスの設定

ホーム > リファレンスガイド > メニュー > プログラムメニューサポート > メニューパスの設定

メニューパスの設定

MnuAdd関数でメニューパスを設定することができます。メニューパスは、「\」記号によって区切られた論理メニュー名によって定義されます。「\」記号は、メニュー構造内のサブメニューを表しています。

例えば、以下の構造で説明します。(括弧内は、論理メニュー名です。)

ファイル (fle) | 編集 | 表示 | ヘルプ
新規 (nw) | 切り取り |  |
メッセージ (msg) | コピー |  |
Fax | 貼り付け |  |
開く (opn) |  |  |
メッセージ |  |  |

  • ［ファイル］メニューに「プロジェクト」と呼ばれるエントリを追加します。このエントリは、［新規］サブメニューの下に同じレベルで表示するようにします。この場合、「fle\nw」を指定します。これにより、［ファイル］メニューには、［新規］、［プロジェクト］、［開く］が含まれます。

  • ［ファイル］サブメニューの最初のエントリとして、「閉じる」を追加します。この場合、「fle\」を指定します。パスの最後に「\」記号が付いているため、入力すると新しいエントリは、最初のエントリになります。これにより、［ファイル］メニューには、［閉じる］、［新規］、［開く］が含まれます。

  • ［ファイル］メニューの［新規］サブメニュー内に「接続」と呼ばれるエントリを追加します。この場合、「fle\nw\」を指定します。「新規」サブメニューの最初に新しいエントリが追加されます。これにより、［新規］サブメニューには、［接続］、［メッセージ］、［Fax］が含まれます。

  • ［ファイル］メニューの［新規］サブメニュー内で［メッセージ］サブメニューの後に「接続」と呼ばれるエントリを追加します。この場合、「fle\nw\msg」を指定します。「メッセージ」サブメニューの後に新しいエントリが追加されます。これにより、［新規］サブメニューには、［メッセージ］、［接続］、［Fax］が含まれます。

  • もし名前が存在しない場合、見つかったパスの最後のメニューの次に追加されます。例えば、［印刷］メニューの後に「特性」というエントリを追加したい場合、「fle\prn」を指定したとします。しかし、「prn」が存在しないとしたら、「特性」エントリは、［ファイル］メニューの最後に追加されます。これにより、［ファイル］メニューには、［閉じる］、［新規］、［開く］、［特性］が含まれます。

関連トピック：

実行時のメニューコンテキスト


メニュー 関数

ホーム > リファレンスガイド > メニュー > メニュー関数

メニュー関数

メニューの機能を拡張するために、以下のようなメニュー関数が提供されています。

  • Menu …… 現在のプログラムに至るまでのメニュー経路を取得します。

  • MenuIdx …… 指定されたメニュー名に対応する[メニュー]リポジトリ上の番号を取得します。

  • MnuCheck …… メニュー項目の前のチェックマークの表示／非表示を設定します。

  • MnuEnabl …… メニュー項目の有効／無効を設定します。

  • MnuName …… 指定したメニューのユーザメニュー名を変更します。

  • MnuShow …… メニュー項目の表示／非表示を設定します。

以下のメニュー関数を使用することで、メニューにメニュー構造を動的に追加することができます。

  • MnuAdd …… プログラム実行時に動的にプルダウンメニューにメニューを追加します。

  • MnuRemove …… プログラム実行時に動的にプルダウンメニューからメニューを削除します。

  • MnuReset …… デフォルトのプルダウンメニュー構造に戻します。

注意：

並行実行のバッチプログラム内では、メニュー関数が使用できません。


ヘルプ リポジトリ

ホーム > リファレンスガイド > ヘルプ

ヘルプリポジトリ

［ヘルプ］リポジトリでは、エンドユーザヘルプを定義します。

参考：

/* ... */という書式でコメントを定義した場合、［ヘルプ一覧］の［説明］欄にコメントが表示されます。

このリポジトリには以下のカラムがあります。

カラム

内容

#

ここには、テーブルの連番が自動的に設定されます。修正はできません。

名前

ヘルプの名前を入力します。

タイプ

［ヘルプ］リポジトリの［タイプ］カラムには、ヘルプの種類を指定します。

Magic xpaでは、以下の５種類のヘルプが使用できます。

  • I=内部 …… Magic xpa独自形式の内部ヘルプです。簡単なテキスト形式のウィンドウを表示します。

  • P=自動 …… カーソルを置いた場合に自動的にステータスバーに表示される自動ヘルプです。

  • W=Window …… WindowsヘルプまたはHTMLヘルプを開きます。

  • T=ツールチップ …… ツールバーのボタンにカーソルを置いた場合に自動的に表示されるバルーンヘルプです。

  • U=URL …… ブラウザ形式のヘルプです。

タイプのデフォルト値は「I=内部」です。［タイプ］のコンボボックスをクリックすると、別のタイプを選択できます。

注意：

WindowsヘルプとURLヘルプの定義内容は、外部ツールで定義する必要があります。

フォルダ

ヘルプを格納するフォルダを指定することができます。ナビゲータ上の［ヘルプ］ノードでF4を押下することでフォルダが作成されます。フォルダに格納することでグループ分けすることができます。フォルダも参照してください。

公開名

ヘルプの公開名を指定します。そのヘルプ定義をコンポーネントとして外部から利用する場合に必須です。公開名はプロジェクトファイル内でユニークでなければなりません。


ヘルプ リポジトリ タイプ 内部

ホーム > リファレンスガイド > ヘルプ > 内部

内部ヘルプ

xpa独自の形式のヘルプで、「内部ヘルプ」といいます。内部ヘルプの編集を行うには以下のようにします。

ヘルプリポジトリ上で、［編集］メニューから［特性］（Alt+Enter）を選択するかズームで［ヘルプ特性］シートを開きます。 ［ヘルプ特性］シートの［テキスト］をクリックし、ヘルプの内容を入力します。用意されているスペースが十分でない場合は、［テキスト］カラムからズームすることでテキストボックスを開き、メッセージ全体を表示することができます。

設定可能な内部ヘルプの特性には以下のものがあります。

特性

内容

モデル

継承が解除されている特性の継承をし直したり、モデルの全ての特性の継承を解除することができます。さらに、別のモデルを選択することもできます。

他のモデルを選択する場合にクリックします。

デフォルトモデルの特性を表示する場合にクリックします。

モデル特性の継承を解除する場合にクリックします。

モデル特性を継承する場合にクリックします。

テキスト

内部ヘルプのテキストを入力します。

タイトルバー

タイトルバーの見出しスタイルを指定します。「Yes」か「No」のいずれを指定します。タイトルバーのテキストは、［ヘルプ］リポジトリの［名前］カラムから取り込まれます。

タイトルバーが表示されない場合、エンドユーザはヘルプウィンドウを移動することができず、また、最大化や最小化のボタンが表示されなくなります。

システムメニュー

［タイトルバー］特性を「Yes」とした場合、エンドユーザがシステムメニューからヘルプ画面にアクセスできるかどうかを指定します。システムメニューは、ここで「Yes」が設定されている場合のみ表示されます。

境界

フレームの種類を指定します。選択肢は以下の通りです。

  • T＝細線

  • H＝太線（デフォルト）

  • N＝なし

フォント

ヘルプ画面のフォントスタイルを指定します。ズームすると［フォント］テーブルが表示されます。

色

ヘルプ画面の色を指定します。ズームすると［基本色一覧］が表示されます。

注意：

［色］特性は、日本語版でのみ有効です。

左辺位置

ヘルプ画面の左辺位置を指定します。

上辺位置

ヘルプ画面の上辺位置を指定します。

高さ

ヘルプ画面の幅を指定します。

幅

ヘルプ画面の高さを指定します。

参考：

リッチクライアントタスクでは使用できません。


ヘルプ リポジトリ タイプ 自動

ホーム > リファレンスガイド > ヘルプ > 自動ヘルプ

自動ヘルプ

［ヘルプ］リポジトリの［自動ヘルプ］行から、［編集］メニューの［特性］（Alt+Enter）を選択するかズームで［ヘルプ特性］シートを開き、自動ヘルプを作成します。

［テキスト］をクリックすると、自動ヘルプを起動した際にステータスバーに表示されるメッセージ（最大:256桁）を入力できます。

フォントは、［アプリケーションフォント］テーブルの「ステータスライン」で設定されたフォントが使用されます。色は指定できません。


ヘルプ リポジトリ タイプ Windows

ホーム > リファレンスガイド > ヘルプ > Windows形式ヘルプ

Windows形式ヘルプ

Windows形式のヘルプは、Windowsヘルプシステムにより指定された Windows形式のヘルプファイル（HLP/CHM）を開きます。Windows形式ヘルプを［ヘルプ］リポジトリで指定してズームすると、［ヘルプ特性］シートを開くことができます。

Windows形式ヘルプのヘルプ特性には以下の特性があります。

特性

内容

モデル

継承が解除されている特性の継承をし直したり、モデルの全ての特性の継承を解除することができます。さらに、別のモデルを選択することもできます。

他のモデルを選択する場合にクリックします。

デフォルトモデルの特性を表示する場合にクリックします。

モデル特性の継承を解除する場合にクリックします。

モデル特性を継承する場合にクリックします。

ヘルプファイル名

ここには、専用のオーサリングツールなどを使用して作成したWindowsヘルプのファイル名（*.CHM）を入力します。

ヘルプコマンド

Windowsのヘルプコマンドを指定します。この欄には、デフォルトのヘルプコマンドが表示され、そのまま使用することもできます。また、コンボボックスを開いて、そこでコマンドを指定しても結構です。指定できるコマンドは次の通りです。

  • C＝コンテキスト …… HELP_CONTEXTコマンドを発行します。［キー値］欄には、トピックのコンテキスト番号を示す数値を指定します。

  • O＝目次 …… HELP_CONTENTSコマンドを発行します。［キー値］欄の値は無視されます。

  • S＝セットコンテキスト …… HELP_SETCONTENTSコマンドを発行します。SetContent マクロを呼び出し、ヘルプ システムの目次トピックのコンテキスト文字列を定義します。エンドユーザがF1キーを押下した時、この欄で指定した目次トピックが表示されます。

  • P＝コンテキストポップアップ …… HELP_CONTEXTPOPUPコマンドを発行します。［キー値］欄には、トピックのコンテキスト番号を示す数値を指定します。

  • 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のヘルプシステムのヘルプ画面が識別されます。

  • ［ヘルプコマンド］特性が「C=コンテキスト」、「S=セットコンテキスト」、または「P=コンテキストポップアップ」の場合、必要なヘルプトピックのコンテキスト番号を入力します。

  • ［ヘルプコマンド］特性が「O=目次」、「F=ForceFile」、「H=Help on Help」、または「Q=終了」の場合、この特性は無視されます。

  • ［ヘルプコマンド］特性が「M=ヘルプマクロ」の場合、実行するヘルプマクロを含む文字列を入力します。

  • ［ヘルプコマンド］特性が「K=キーワードで検索」の場合、必要なトピックのキーワードを含む文字列を入力します。

注意：

  • Windowsのヘルプシステムについては、Windowsのヘルプ作成用のオーサリングツールのマニュアルを参照してください。

  • リッチクライアントタスクでは使用できません。


ヘルプ リポジトリ タイプ ツールチップ

ホーム > リファレンスガイド > ヘルプ > ツールチップ

ツールチップ

ツールチップは、エンドユーザがコントロール上にカーソルを置いた時に自動的に表示されます。

ツールチップヘルプを作成するには、［ヘルプ］リポジトリのツールチップヘルプ項目の［名前］設定から、［ヘルプ特性］シートにズームします。

ツールチップをコントロールに付加するには、［コントロール特性］シートの［ツールチップ］特性を使用します。この表示は、［設定／動作環境］で表示される［動作環境］ダイアログの［動作設定］タブにある［ツールチップ表示タイムアウト］設定に定義した時間まで、あるいはカーソルが移動するまでユーザの画面に残ります。

使用されるフォントは、フォントテーブルの［ツールチップ］で定義したフォントです。色は選択できません。ツールチップは最大500桁です。


ヘルプ リポジトリ タイプ URL

ホーム > リファレンスガイド > ヘルプ > URLヘルプ

URLヘルプ

URLヘルプは、ブラウザタスクとリッチクライアントタスクでのみ有効なヘルプで、F1キーを押下した時に開くブラウザページを指定します。［URLヘルプ特性］シートの［URL］特性をクリックし、ページのURLを入力します。

注意：

リッチクライアントタスクでは、サーバ上のHTMLファイルをパス指定することができます。


バージョン管理

Magic xpaでは、外部のバージョン管理ソフトウェアを使用してソースファイルを管理するためのバージョン管理機能を使用することができます。この機能を使用することで、プロジェクトのバージョンを保存したり、追跡したり、アクセスすることができます。

バージョン管理機能を使用することで、チーム開発環境（複数の開発者によってソースファイルを共有すること）で作業を行うことができます。チーム開発環境で動作する場合、開発者間で並列性が維持されます。

Magic xpaは、SCC (Source Code Control) API Ver1.01を使用するサードパーティーのバージョン管理ソフト（Visual SourceSafe や PVCSなど）が利用できます。

このバージョン管理機能には、以下の利点があります。

  • バージョンの保存 …… プロジェクトのバージョンを保存し、後でどのバージョンのソースに対してもアクセスすることができます。チーム開発環境で作業する場合、この機能は有益です。1人の開発者で開発を行う場合でも、過去のバージョンを検索し、アクセスするためにこの機能を使用することができます。

  • ファイルの保護 …… ファイルを編集する場合、最初に、ファイルをチェックアウトする必要があります。この機能によって、他のユーザによる上書き操作からソースファイルは保護されます。

  • チーム開発 …… 複数の開発者によって並行してプロジェクトを開発することができます。各開発者は、プロジェクトのソースファイルのコピーを基に開発作業を行い、サーバ上に管理されているファイルとの同期を取る必要があります。詳細は、「チーム開発」を参照してください。

  • 変更の追跡 …… 過去に保存したバージョンと変更内容を比較することができます。

  • ユーザの追跡 …… 誰がどのバージョンに対して編集作業を行ったかを確認できます。

関連トピック：

バージョン管理による作業

リポジトリ入出力（バージョン管理）

バージョン管理用メニュー

チェックアウト一覧

キャビネットファイルの作成

デフォルトデータベース（バージョン管理）

ソース管理 (Mastering Magic xpa)


バージョン管理 作業

ホーム > リファレンスガイド > バージョン管理 > バージョン管理による作業

バージョン管理による作業

バージョン管理機能を利用して作業を行うには、プロジェクトの作成時に［バージョン管理データベースに新規プロジェクトを作成します。］のオプションを選択する必要があります。プロジェクトの作成時に、このオプションを選択しなかった場合、［ファイル］メニューの［バージョン管理］サブメニューから［プロジェクトの追加］を選択することで、バージョン管理を有効にすることができます。

プロジェクトの作成時、プロジェクトに関する情報は多くのソースファイルに保持されます。ソースファイルは、プロジェクト情報を含む出力ファイルです。オブジェクト間の参照情報は、内部連続番号(ISN)に書き込まれます。各ソースファイルは、Magic xpaのオブジェクト（リポジトリやプログラムなど）を含んでいます。プロジェクトを新規作成した時点で、空のプロジェクトには、各リポジトリやメインプログラムのためのソースファイルが作成されます。

プロジェクトの開発時、全てのプロジェクトソースファイルにアクセスできる必要があります。プロジェクトを実行する場合、プロジェクトソースファイルまたはプロジェクトソースファイルを含んだキャビネットファイルのどちらかが必要です。

バージョン管理機能を使用しないでプロジェクトを開発することもできます。この時は、プロジェクトを新規作成する際に、［バージョン管理データベースに新規プロジェクトを作成します。］のオプションを選択しないようにします。

バージョン管理モードでプロジェクトを開いた場合、ソースファイルはチェックアウトしない限り読込専用の状態になっています。

注意：

  • バージョン管理機能を使用して作業するように定義した後、この設定を解除した場合、変更されたオブジェクトが存在する場合、そのオブジェクトはまだチェックアウト状態で残ります。

  • 手動で読込専用モードを解除する必要があります。

バージョン管理サーバが利用できる環境では、プロジェクトの改訂を行い並行開発を行うために、［バージョン管理データベースの上の新しいプロジェクトを作成してください］のチェックボックスを選択することができます。

以前のプロジェクトがバージョン管理システムで管理されている場合、バージョン管理のチェックボックスはデフォルトで選択状態になっています。必要であれば、チェックボックスをクリアすることができます。すでに最新のプロジェクトを持っている場合、サーバから最新のプロジェクトを取り出す必要はありません。バージョン管理の使用をやめる場合は、［バージョン管理］サブメニューから［サーバから除く］を選択してください。

バージョン管理を使用していない状態で、後からバージョン管理を行いたい場合は、［バージョン管理］サブメニューから［サーバへの追加］を選択することでプロジェクトをバージョン管理サーバに追加することができます。

既にバージョン管理を使用するように定義されている状態で、後から"スタンドアロンモード"で動作させたい場合は、［バージョン管理］サブメニューから［バージョン管理から除く］を選択することでプロジェクトをバージョン管理システムから除外することができます。Magic xpaは、プロジェクトをバージョン管理から除外するかどうかを確認するメッセージを表示します。「はい」をクリックすると、バージョン管理から除外され、プロジェクトソースファイルは読み込み専用とは表示されなくなります。

関連トピック：

バージョン管理へのログオン

リポジトリ入出力（バージョン管理）

キャビネットファイルの作成

定義内容の登録

ソースファイルの紛失

プロジェクトのアクセス

バージョン管理の利用

デフォルトデータベース（バージョン管理）

ソース管理 (Mastering Magic xpa)


バージョン管理 作業 ログオン

ホーム > リファレンスガイド > バージョン管理 > バージョン管理による作業 > バージョン管理へのログオン

バージョン管理へのログオン

バージョン管理サーバと接続する場合、バージョン管理ソフトは、デフォルトではOSのユーザIDを使用します。製品によっては、ユーザIDとパスワードを入力するためのログオンダイアログを表示するものもあります。

Visual SourceSafe上で作業する場合、［チェックアウト一覧］を開くか［ログオン］画面でチェックイン処理を行うと、以前入力したユーザIDを使用します。


バージョン管理 作業 リポジトリ入出力

ホーム > リファレンスガイド > バージョン管理 > バージョン管理による作業 > リポジトリ入出力

リポジトリ入出力

プロジェクトのリポジトリ出力ファイルは、出力ファイルに含まれるオブジェクトの種類を表すヘッダを持っています。オブジェクトを入力できるようにするためには、これらのオブジェクトをチェックアウトしなければなりません。ファイルに［プログラム］リポジトリなどの部分的なプロジェクト情報が含まれている場合、そのオブジェクトだけがヘッダ情報に記録されています。

注意：

リポジトリ入力できるのは、Magic xpaから出力されたファイルのみです。

リポジトリ入力処理を開始する時に、［入力時にチェックアウト］ウィンドウを開きます。このウィンドウは、チェックアウトすべきオブジェクトを表示しています。

入力前にチェックアウトしないことを選択できる唯一のオブジェクトは、メインプログラムだけです。

Visual SourceSafeで作業する場合は、［コメント］欄にコメントを入力することができます。この情報は、ウィンドウ内で選択する全てのオブジェクトに適用されます。


バージョン管理 作業 キャビネットファイルの作成

ホーム > リファレンスガイド > バージョン管理 > バージョン管理による作業 > キャビネットファイルの作成

キャビネットファイルの作成

Magic xpaでは、プロジェクトをキャビネットファイルとして保存します。このファイルは、実行時にアプリケーションとして使用することができます。バージョン管理を使用してプロジェクトを開発する場合、作成時の内容をもとにキャビネットファイルが作成されます。

［ファイル］メニューから［キャビネットファイルの作成］を選択した場合、［キャビネットファイル］ダイアログボックスが開きます。［ファイル名］欄にキャビネットファイルの名前を入力します。また、ファイルをどこに保存するかを指定することもできます。デフォルトでは、Magic xpaの作業フォルダに保存されます。


バージョン管理 作業 定義内容の登録

ホーム > リファレンスガイド > バージョン管理 > バージョン管理による作業 > 定義内容の登録

定義内容の登録

プロジェクト開発時にバージョン管理ソフトを使用して行うことを指定した場合、Magic xpaは、デフォルトではシステムレジストリに定義されたバージョン管理ソフトを使用します。Magic xpaは、以下のキーに示されたパスに登録されたバージョン管理ソフトにアクセスします。

32bit Windowsの場合

HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\ProviderRegKey

64bit Windowsの場合

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SourceCodeControlProvider\ProviderRegKey

このキーは、［InstalledSCCProviders］セクション内に定義されます。SCC APIをサポートする全ての製品は、このセクションに登録されます。

バージョン管理プロバイダを切り替える場合、［InstalledSCCProviders］セクション内の使用したい製品にカーソルを置き、データをコピーし、それを［SourceCodeControlProvider\ProviderRegKey］のデータとして貼り付けてください。

注意：

バージョン管理プロバイダを変更した場合、この変更を有効にするには、一旦Magic xpaを終わらせて再起動する必要があります。


バージョン管理 作業 ソースファイルの紛失

ホーム > リファレンスガイド > バージョン管理 > バージョン管理による作業 > ソースファイルの紛失

ソースファイルの紛失

ソースファイルが存在しないか破損しているプログラムを読み込もうとした場合、Magic xpaは、次回プロジェクトを開くまでプログラムを再度読み込む処理を行いません。

このような状態の場合、状況に応じてMagic xpaは以下のように動作します。

  • ズーム処理 …… プログラム上でズームしようとした場合、以下のように動作します。

  • バージョン管理を行っていない場合……新しいプログラムを作成するかどうかの確認ダイアログが表示されます。「はい」を選択すると、空のプログラムソースファイルが作成され、そのプログラムにズームすることができます。「いいえ」を選択すると、ズームはできません。

  • バージョン管理を行っている場合……最新のバージョンを取得するかどうかを確認するダイアログが表示されます。OKを選択すると、最新のバージョンが取得され、そのプログラムにズームできます。キャンセルを選択すると、ズームはできません。

  • 上書処理 …… ソースファイルが存在しなかったり、破損した既存のプログラムを上書きしようとすると、エラーメッセージは表示され、処理は中断します。

  • 複写処理 …… ソースファイルが存在しなかったり、破損した既存のプログラムを複写しようとすると、エラーメッセージは表示され、処理は中断します。

  • 削除／上書処理 …… ソースファイルが存在しなかったり、破損した既存のプログラムを削除しようとした場合は、エラーメッセージは表示されません。


バージョン管理 メニュー

ホーム > リファレンスガイド > バージョン管理 > バージョン管理用メニュー

バージョン管理用メニュー

バージョン管理用メニューは、バージョン管理ソフトを使用して作業するように設定されたプロジェクトでのみ利用可能です。

バージョン管理用メニューは、［ファイル］メニューから［バージョン管理］を選択することでアクセスすることができます。

バージョン管理用メニューには、以下のサブメニューが表示されます。

  • チェックアウト

  • チェックイン

  • チェックアウト取消

  • 最新バージョンの取得

  • 最新プロジェクトの取得

  • オブジェクトの再読込

  • 差分

  • 履歴

  • チェックアウト一覧

  • バージョン管理サーバに追加

  • プロジェクト除外

  • オフライン動作

  • オフラインオブジェクト

関連トピック：

バージョン管理による作業


バージョン管理 メニュー チェックアウト

ホーム > リファレンスガイド > バージョン管理 > バージョン管理用メニュー > チェックアウト

チェックアウト

［チェックアウト］オプションは、オブジェクトの最新バージョンをローカルPCにコピーし、更新作業を行うことができる状態にします。

［バージョン管理］メニューから［チェックアウト］を選択した場合、［オブジェクトのチェックアウト］ダイアログボックスが開きます。

このダイアログボックスは、オブジェクトをチェックアウトする前にコメントを入力することができます。(バージョン管理プロバイダーがチェックアウト処理でのコメントをサポートする場合)

開発者は、チェックアウトした後でのみオブジェクトを編集することができます。オブジェクトをチェックアウトしない場合、オブジェクトは読込のみに制限されます。［フォーム］エディタでは、編集操作ができる場合がありますが、チェックアウトされていない場合、全ての変更内容はソースに反映されません。

［プログラム］リポジトリ以外の全てのリポジトリは、リポジトリ全体がチェックアウトされます。例えば、［データ］リポジトリのチェックアウトは、［データ］リポジトリ全体がチェックアウトされます。プログラムは、個別にチェックアウトされます。

Magic xpaは、1つのオブジェクトを1ユーザのみチェックアウトできるようになっています。チェックインするまで他のユーザがチェックアウトすることはできません。バージョン管理マネージャによっては、複数のユーザが同じオブジェクトをチェックアウトできるものがありますが、このようなマネージャを使用した場合、Magic xpaは複数のチェックアウトを行うことができてしまいます。このため、このようなマネージャを使用しないでください。場合によっては、プロジェクトのオブジェクトが無くなってしまう場合があります。

［プログラム］リポジトリをチェックするには、リポジトリのテーブルヘッダにパークし［バージョン管理］メニューの［チェックアウト］を選択します。

注意：

  • （Visual StudioやSCC APIを使用するIDEを含む）ほとんどのバージョン管理プロバイダーは、現在のユーザによってチェックアウトされたオブジェクトを表示するだけです。すべてのユーザによってチェックアウトされたオブジェクトを参照するには、バージョン管理ユーティリティを使用してください。バージョン管理プロバイダによっては、この動作を変更することのできる設定があります。

  • リポジトリ入力できるのは、Magic xpa Studioで出力されたリポジトリ出力ファイルのみです。リポジトリ入力を実行すると［チェックアウト］ダイアログが表示されます。このダイアログに、入力するファイル内にあるチェックアウトすべきオブジェクトが表示されます。チェックアウトしないで入力できるオブジェクトはメインプログラムのみです。リポジトリ入出力も参照してください。


バージョン管理 メニュー チェックイン

ホーム > リファレンスガイド > バージョン管理 > バージョン管理用メニュー > チェックイン

チェックイン

［チェックイン］オプションは、現在作業中のオブジェクトを最新バージョンとして、バージョン管理サーバに保存します。このオプションは、現在のオブジェクトがチェックアウト状態の時のみ有効になります。

［バージョン管理］メニューから［チェックイン］を選択した場合、［オブジェクトのチェックイン］ダイアログボックスが開きます。このダイアログボックスは、オブジェクトをチェックインする前にコメントを入力することができます。

Visual SourceSafeを使用して作業を行う場合、オブジェクトをチェックアウトした時に入力したコメントが表示されます。コメントを入力しても表示されない場合、Magic xpaのバージョン管理システムが、コメントを取り出すことができなかった可能性があります。複数のオブジェクトにコメントを入力していて、これらをチェックインした場合、全てのオブジェクトのうち1つが表示されます。

［オブジェクトのチェックイン］ダイアログボックスには、［チェックアウトを維持］のチェックボックスが含まれています。コピーをバージョン管理サーバに保存し、オブジェクトの編集作業を継続したい場合、このオプションを使用してください。このチェックボックスをチェックした場合、バージョン管理システムは、オブジェクトを一旦チェックインした後、即チェックアウトします。チェックボックスをチェックしない場合、オブジェクトはチェックインのみ行われます。

コメントなどのオブジェクト用の追加情報がある場合、［ログイン］ダイアログが表示されます。［キャンセル］をクリックすると、システムはオブジェクトに関するコメントや追加情報は表示されません。

注意：

オブジェクトのチェックインを行った後は、更新が成功した場合のみローカルフォルダから削除されます。

ChangeSet

複数のオブジェクトを選択してチェックインを実行すると、オブジェクトはSCC APIへの1回の呼び出しで送られます。

バージョン管理製品がChangeSetsをサポートする場合は、チェックインされたすべてのファイルは同じChangeSetで参照することができます。これによって、どのプログラムが誰によってチェックインされたかが分かります。


バージョン管理 メニュー チェックアウト取消

ホーム > リファレンスガイド > バージョン管理 > バージョン管理用メニュー > チェックアウト取消

チェックアウト取消

［チェックアウト取消］オプションは、チェックアウトされたオブジェクトを解放し、チェックアウト前の状態に戻します。オブジェクトがチェックアウト状態にある場合のみ、この処理は有効です。

チェックアウトされている間に、オブジェクトが修正された場合、修正した内容が無効になる旨のメッセージが表示されます。

オブジェクトが修正されていなければ、操作の確認ダイアログを表示した後、オブジェクトを解放します。


バージョン管理 メニュー 最新バージョン

ホーム > リファレンスガイド > バージョン管理 > バージョン管理用メニュー > 最新バージョンの取得

最新バージョンの取得

［最新バージョンの取得］オプションは、バージョン管理サーバからオブジェクトの最新バージョンを取得します。このオプションを使用する場合、Magic xpaはローカルPC内のオブジェクトのソースファイルを最新のバージョンで置き換えます。

このオプションは、チェックアウトされたオブジェクトに対してのみ有効です。

プログラムの最新バージョンを取得

［プログラム］リポジトリのテーブルヘッダにパークした状態で、［バージョン管理］メニューの［最新バージョンの取得］を選択すると、最新バージョンを取得するかどうかを確認するダイアログボックスが表示されます。［プログラムの最新バージョンを取得］のチェックボックスをチェックすると、［プログラム］リポジトリ内の全てのプログラムの最新バージョンが取得されます。

複数のオブジェクトの最新バージョンを取得

アプリケーションオブジェクトとプログラムの２つのタイプの複数オブジェクトに対して最新バージョンを取得することができます。

注意：

［最新バージョンの取得］オプションのマージオプションは、バージョン管理サーバのソースコードをローカルPCのソースコードにマージしません。ローカルの状態が維持されます。（バージョン管理ソフトによっては利用できないものがあります。）

関連トピック：

最新プロジェクト・バージョン取得

オブジェクトを前の状態にロールバックするには


バージョン管理 メニュー 最新プロジェクトバージョン

ホーム > リファレンスガイド > バージョン管理 > バージョン管理用メニュー > 最新プロジェクトの取得

最新プロジェクトの取得

［最新プロジェクトの取得］オプションは、バージョン管理サーバからプロジェクトの最新バージョンを取得します。

［バージョン管理］メニューから［最新プロジェクトの取得］を選択すると、［確認］ダイアログが表示され、「はい(Yes)」をクリックすると、バージョン管理サーバから最新のプロジェクトのソースファイルでローカルPCの内容を置き換えられ、置き換えられたオブジェクトが一覧表示されます。

最新バージョンバッチファイルのアプリケーション特性にて、最新バージョンの取得処理の一部として実行されるバッチファイルを選択することができます。バッチファイルの作成を選択した場合、最新バージョン取得処理の後に作成されます。

全てのプロジェクトオブジェクトを取得したら、一旦プロジェクトをクローズし、再度オープンすることで、オブジェクトが置き換わったことが確認できます。

チェックさアウトオブジェクト機能を使用した場合、このオプションは使用できません。

関連トピック：

オブジェクトを前の状態にロールバックするには


バージョン管理 メニュー オブジェクトの再読込

ホーム > リファレンスガイド > バージョン管理 > バージョン管理用メニュー > オブジェクトの再読込

オブジェクトの再読込

モデルやデータソースのヘッダ、読み込み済みのデータソースやプログラムヘッダを再読み込みします。

プロジェクトを修正している間、Magic xpa Studioはオブジェクト（例えばモデル、ヘルプ、プログラムヘッダ、コンポーネント、使用されたデータ・ソース)のいくつかをメモリにロードして、メモリ上のコピーを使用します。

たとえば、コントロールのモデルを選択した場合き、それは［モデル］リポジトリのメモリ上のコピーから、取得しており、ソースファイルをアクセスしていません。

プロジェクトの作成時、［ローカルファイルの定義方法］で「全てのファイル」を選択した場合、ローカルのソースファイルは、常にメモリ上のコピーと同じになります。シャドウフォルダ上のオブジェクトは、（他のユーザによって変更されることで）メモリ上のオブジェクトと異なる場合があります。

実行モードでプログラムを読み込んだ場合のみ、これらのオブジェクトは自動的に同期されます。

プログラム実行中は同期を取らないため、プログラムが他のプログラムに呼び出すと、この時点での同期が取れていない状態になります。

開発時は、自動的に同期を取りません。必要に応じて（たとえば、他のユーザによって追加されたモデルを使用しなければならないプログラムを更新する前に)、開発者の判断でこれらのファイルを同期させます。

オブジェクトの再読込オプションを使用すると、オブジェクトを同期させることができます。


バージョン管理 メニュー バージョンの比較

ホーム > リファレンスガイド > バージョン管理 > バージョン管理用メニュー > 差分

差分

［差分］オプションを実行すると、バージョン管理ソフトの比較オプションが実行され、ローカル側のソースファイルとバージョン管理プロジェクト内のファイルの差分を表示します。

関連トピック：

差分ツールコマンドライン


バージョン管理 メニュー 履歴

ホーム > リファレンスガイド > バージョン管理 > バージョン管理用メニュー > 履歴

履歴

［履歴］オプションを実行すると、オブジェクトの異なるバージョンが表示された参照用ウィンドウが開きます。

Visual SourceSafeまたはPVCSを使用している場合、履歴の他にチェックインの時に入力したコメントが［コメント］欄に表示されます。これ以外のバージョン管理ソフトは、履歴が表示されるだけです。

［履歴］ウィンドウに表示されている［差分］ボタンをクリックすると、差分の履歴を参照することができます。PVCSの差分の履歴を参照するには、あらかじめ［動作環境］ダイアログの［差分ツールコマンドライン］パラメータに差分ツールを定義しておく必要があります。

関連トピック：

更新内容を追跡するには


バージョン管理 メニュー チェックアウト一覧

ホーム > リファレンスガイド > バージョン管理 > バージョン管理用メニュー > チェックアウト一覧

チェックアウト一覧

［チェックアウト一覧］を選択すると［チェックアウト一覧］ウィンドウが表示されます。

［チェックアウト一覧］ウィンドウが表示される前に［ログイン］ダイアログが表示される場合があります。［ログイン］ダイアログによって、コメントなどのチェックアウト時の情報を取得することができます。ログインが失敗したり、［キャンセル］ボタンをクリックした場合、チェックアウト情報は無効になります。

このウィンドウには、チェックアウトされた全てのオブジェクトが一覧表示されます。また、誰がチェックアウトしたかも表示されます。

他のユーザによってチェックアウトされるオブジェクトは、ユーザ名に「他のユーザ」と表示されます。この場合、VCのオブジェクト特性でオブジェクトをチェックアウトするユーザを参照することができます。

注意：

  • Visual SourceSafeやSCC APIを使用する大部分のバージョンコントロール・プロバイダーは、現在のユーザによってチェックアウトされたオブジェクトを表示するだけです。

  • すべてのユーザによってチェックアウトされたオブジェクトを参照するには、バージョンコントロール側のユーティリティを使用してください。

  • いくつかのバージョンコントロール・プロバイダーには、この動作を管理する設定機能があります。

Visual SourceSafeの場合

Visual SourceSafeを使用した場合、［チェックアウト一覧］の［チェックアウトユーザ］カラムには、現在のログインIDか「他のユーザ」のどちらかが表示されます。

ユーザが現在のPCの予期しない作業フォルダ上のオブジェクトのチェックアウトを行った場合、アスタリスク（*）がユーザIDとして表示されます。ユーザはこのタイプのオブジェクトを編集することができません。

また、プロジェクトの作業フォルダーに置かれるオブジェクトだけが、青色で表示され、チェックアウトやチェックインを行うことができます。

参考：

  • ［チェックアウトユーザ］カラムは、オブジェクトをチェックしたユーザを示します。

  • ［再表示］ボタンをクリックすると一覧が再読みされ、最新の情報を確認することができます。


バージョン管理 メニュー プロジェクトの追加

ホーム > リファレンスガイド > バージョン管理 > バージョン管理用メニュー > バージョン管理サーバに追加

バージョン管理サーバに追加

プロジェクトの作成時に、バージョン管理の設定を行わなかった場合、［バージョン管理］メニューの［バージョン管理サーバに追加］を実行することで、バージョン管理対象にすることができます。

このオプションを選択すると、［バージョン管理プロジェクトを作成］ダイアログが表示されます。ここでは、使用するバージョン管理製品に基づいて、表示される項目が異なります。

注意：

  • 既存のプロジェクトをバージョン管理サーバに追加する場合、チェックアウトモードに直接移行することはできません。プロジェクトをバージョン管理サーバに追加した後、ローカルコピーを削除することができ、オブジェクトだけをチェックアウトするために、［サーバから開く］オプションを使用することができます。

  • ユーザ名は、現在のクライアント側のログオンID固定ですが、MAGIC.INI のSpecialCVSLogin パラメータを設定することで変更可能になります。

関連トピック：

既存のプロジェクトをバージョン管理データベースに追加するには


バージョン管理 メニュー プロジェクトの除外

ホーム > リファレンスガイド > バージョン管理 > バージョン管理用メニュー > プロジェクト除外

プロジェクト除外

バージョン管理システムからプロジェクトを削除する場合、このオプションを選択してください。最初のうちは、プロジェクトのバージョン管理を行うようにしていたが、後でスタンドアロンモードに変更したい場合に、この操作を行います。

このオプションは、オブジェクトがチェックアウトされている状態では利用できません。

関連トピック：

プロジェクトをバージョン管理から削除するには


バージョン管理 メニュー オフラインに設定

ホーム > リファレンスガイド > バージョン管理 > バージョン管理用メニュー > オフライン動作

オフラインに設定

［オフラインに設定］オプションは、バージョン管理モードで動作するように設定されたプロジェクトをオフラインでアクセスできるようにします。このモードに設定すると、オブジェクトをチェックアウトすることなくプロジェクトを修正することができます。バージョン管理システムに再接続する時、変更内容の一覧が提供されます。

一旦プロジェクトをオフラインにすると、開発エンジンを終了するまでバージョン管理プロジェクトに接続できなくなります。

オブジェクトを更新する必要がある場合、そのソースファイル（XMLファイル）のバックアップが以下の名前で作成されます。

<Original name>_bck.xml

ソースファイルは、書込可能な状態に切り替わります。

オフラインモードに設定されたMagic xpa Studio でプロジェクトを最初に開こうとした場合、Magic xpaは、バージョン管理プロジェクトへの接続を試みます。バージョン管理が利用できない場合、同じStudioセッションでは二度とバージョン管理に再接続しようとしません。

オフラインモードで動作した後にプロジェクトに再接続すると、［プログラム］リポジトリの最新のバージョンを取得したり、チェックアウトして最新のバージョンを取得します。オフラインモードで作成されたプログラムは削除されます。

オブジェクトがチェックアウトされている場合は、このオプションは使用できません。


バージョン管理 メニュー オフラインオブジェクト

ホーム > リファレンスガイド > バージョン管理 > バージョン管理用メニュー > オフラインオブジェクト

オフライン・オブジェクト

［バージョン管理］メニューから［オフラインオブジェクト］を選択すると、［オフライン変更オブジェクト］ウィンドウが表示されます。ここには、オフラインモードの状態で変更されたオブジェクト（書き込み可能なモードで、対応した*_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をインストールした後で,デフォルトによって作成された共通データベースを使用します。

Team Foundation Server

MS-SQL Serverを使用します。


Unicodeサポート

Unicodeは、全ての言語用の文字が含まれるようにデザインされた汎用の文字セットです。また、これは古くて歴史的な文字もサポートしています。

Magic xpaは、データ変換や送信処理の際にUnicodeを標準で使用することができます。この機能は、Magic xpaのANSIとOEMのサポートに追加されたものです。

キャストとUnicode

あるデータ型を別の型に変換することをキャストと呼ばれています。文字型からUnicode型へのキャストには、変換に使用されるコードページを定義する必要があります。Magic xpaの暗黙のキャストメカニズムは、Unicode変換のために使用されるコードページを指定することができます。

[動作環境]ダイアログの[外部コードページ]を使用してコードページを指定することができます。コードページ定義を変更しない限り、Magic xpaはデフォルトコードページを使用します。CodePage関数を使用して外部コードページを変更することもできます。関数を使用して外部コードページを設定した場合、関数が実行されたコンテキスト内でのみ有効です。

関連トピック：

データベースサポート

入出力

プレゼンテーション層

式とUnicode

リポジトリ出力とUnicode

Unicode 利用する場合の注意事項

Unicode (Mastering Magic xpa)


データベースサポート

Magic xpaのUnicodeサポートは、複数バイトのデータを結合したUnicodeフィールドを使用することを意味しています。またUnicodeフィールドでは、フィールドレベルのどのようなMagic xpaの操作も行うことができます。この操作には、範囲指定や位置付け、ソートが含まれています。

Unicodeのデータベースサポートは、いくつかのパラメータに従って決定されます。

  • テーブル定義におけるUnicodeカラムとインデックス（ステートメント内のUnicodeデータのバインドを含みます。）

  • 以下の表示で説明されるような、異なるデータベースによるUnicodeステートメントの実行（SELECTコマンドを含みます。）

データベース | カラム | ステートメント | 注意：
MS-SQL Server | ○ | ○ |
Oracle | ○ |  | Ver 9
ODBC | ○ |  | ODBC 3.5
Pervasive(SQL) | ○ |  | Ver 8
DB/2 400 | ○ |  |
ISAM 400 | ○ |  | インデックスをサポートしません

Unicodeフィールド定義

Unicode型を持つフィールドは、以下の表示に従ってデータベース内に作成されます。

データベース | 長さ | 定義
SQL-Server | <=4000 | NCHAR NVARCHAR
 | >4000 | NTEX

定義取得

定義取得処理を実行すると、Unicodeデータを含むことができる全てのデータ型は自動的にUnicodeフィールドと定義されます。

V9Plusからの移行

文字型フィールドがUnicodeの文字セットを含んでいる場合、フィールドは文字型からUnicode型に変換されます。


データベースサポート 明示的なSQL

ホーム > リファレンスガイド > Unicodeサポート > データベースサポート > 明示的なSQL

明示的なSQL

Magic xpaは、タスク内でダイレクトSQLタスクまたはDB SQL を使用して明示的なSQLコードを記述することができます。作成されたステートメントは、ゲートウェイにそのまま送られ、何も追加されません。この方法で作成された全てのステートメントは、ANSIフォーマットでデータベースに送られます。Unicodeフォーマットは、結果として返るSQLタスクの戻り値でのみサポートされます。


データベースサポート ダイレクトSQL

ホーム > リファレンスガイド > Unicodeサポート > データベースサポート > ダイレクトSQL

ダイレクトSQL

ダイレクトSQLコマンドのダイアログボックスからAPGを実行することで、新しいタスクを作成することができます。結果をもたらすステートメントが定義される場合、選択され、データベースのUnicodeフィールドと定義されたどのようなカラムでもUnicodeフィールドとして作成されます。


データベースサポート SQLWhere句

ホーム > リファレンスガイド > Unicodeサポート > データベースサポート > SQLWhere句

SQLWhere句

Magic xpaのSQL Where句によって作成された文字列は、式が評価されゲートウェイにUnicodeフォーマットで送られます。ゲートウェイがステートメントのためにUnicode文字列をサポートしていない場合、ゲートウェイは、デフォルトのコードページを使用してANSIフォーマットに変換します。


入出力

このセクションは、Unicode形式のファイルの読み書きについて説明しています。

関連トピック：

物理ファイル名

使用する文字セット （入出力特性）

出力フォーム

入力フォーム

マージフォーム

項目入出力


入出力 物理ファイル名

ホーム > リファレンスガイド > Unicodeサポート > 入出力 > 物理ファイル名

物理ファイル名

Magic xpaは、Unicodeベースのファイルシステムをサポートしていません。入出力名（式）で使用される式は、「キャストとUnicode」で定義されたキャストの規則に従ってANSIに変換されます。

ファイル名の最大長はShift-JIS で260バイトです。


入出力 出力フォーム

ホーム > リファレンスガイド > Unicodeサポート > 入出力 > 出力フォーム

出力フォーム

ここでは、テキスト、エディット、および四角形の各コントロールを含んだ[テキスト形式]フォーム内でのUnicode文字の扱いについて説明しています。


入出力 出力フォーム テキスト

ホーム > リファレンスガイド > Unicodeサポート > 入出力 > 出力フォーム > テキスト

テキスト

[テキスト]コントロールは、常にUnicodeデータです。


入出力 出力フォーム エディット

ホーム > リファレンスガイド > 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 xpaの実行エンジンは[エディット]コントロールのみ処理します。[入出力特性]の[使用する文字セット]特性に設定された文字セットの内容と、読み込むファイルのエンコード内容が合っていない場合、実行エンジンはファイルから読み込むことができません。

関連トピック：

エディット


入出力 マージフォーム

ホーム > リファレンスガイド > Unicodeサポート > 入出力 > マージフォーム

マージフォーム

以下に、マージフォームとUnicodeに関する情報が記述されています。

マージタグ

マージテンプレートがUnicodeファイルであることを想定して、Magic xpaのマージタグはUnicodeフィールドで処理されます。

マージユーティリティは、入力ファイルがUnicodeファイルであるかどうかを決定します。もしUnicodeファイルであれば、マージタグはそのまま返されます。ファイルがUnicodeではない場合、タグ名はデフォルトコードページに従ってANSIからUnicodeに変換されます。

出力される文字セット

この文字セットは、[入出力特性]の[使用する文字セット]特性で指定された値によって決定されます。

マージされる値

[テキスト形式]フォーム上の[エディット]コントロールのために定義された規則に従ってマージされた値は変換されます。


入出力 項目入出力

ホーム > リファレンスガイド > Unicodeサポート > 入出力 > 項目入出力

項目入出力

[入出力ファイル]テーブルので「項目」を定義した場合、出力フォームの宛先をBLOB項目に設定することができます。この場合、[入出力特性]で[使用する文字セット]特性を定義することができます。

「項目」が指定された場合の動作は、[フォーム入力]処理コマンドや[フォーム出力]処理コマンドの両方でテキスト形式フォームを使用した場合と同じように動作します。


プレゼンテーション層

OSのプレゼンテーション層によって複数のインタフェース(ANSI、Unicode)を維持することは複雑なため、Magic xpaはUnicodeによってOSとアクセスします。

これは、文字列をプレゼンテーション層に送る全ての特性が、Unicodeセクション内で定義済みの規則に基づいてUnicodeに変換されることを暗示しています。

関連トピック：

エディタ

フォーム特性

コントロール特性


プレゼンテーション層 エディタ

ホーム > リファレンスガイド > Unicodeサポート > プレゼンテーション層 > エディタ

エディタ

Magic xpaの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フォーマットとして定義されます。

[入出力特性]の[使用する文字セット]特性の設定値によって以下のように定義されます。

  • ANSI …… 返されるUnicode文字列は、Magic xpaのキャスト規約に基づいてANSIフォーマットに変換されます。

  • UTF-8 …… 返されるUnicode文字列は、UTF-8フォーマットに変換されます。


プレゼンテーション層 コントロール特性 プッシュボタン

ホーム > リファレンスガイド > Unicodeサポート > プレゼンテーション層 > コントロール特性 > プッシュボタン

プッシュボタン

[プッシュボタン]コントロールの[書式]特性は、[型]特性の指定内容に基づいて処理されます。


プレゼンテーション層 コントロール特性 ツリー

ホーム > リファレンスガイド > Unicodeサポート > プレゼンテーション層 > コントロール特性 > ツリー

ツリー

[表示項目]特性の書式は、[型]特性に基づいて決定されます。


式とUnicode

[式]エディタ定義された式はUnicodeで評価されます。

これは、[式]エディタで使用されるどのような文字項目も内部処理のためにUnicodeに変換されることを意味しています。文字型で返す必要がある式の場合、作成されたUnicodeはANSIに変換されます。

[式]エディタ内で行われる変換処理は、デフォルトのコードページにもとづいて行われます。

注意：

式の中で[内容]特性が「バイナリ」に設定されているBLOB項目が使用されている場合は、変換されません。

関連トピック：

関数とUnicode変換

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

Magic xpaのリポジトリ出力ファイルは、ANSIファイルです。使用しているUnicodeデータが現在のコードページと互換性がある場合、データはANSIで出力されます。互換性がない場合は、UTF-8で出力されます。

ヘッダ

リポジトリ出力ファイルは、以下のフォーマットでヘッダファイル内に追加エントリを含んでいます。

encoding=現在のコードページ

現在のコードページは、リポジトリ出力実行のコードページを定義します。リポジトリ出力ファイルに対するコードページを定義することは、どのようにしてリポジトリ出力データを解析するかをあらかじめ知っておく必要があるからです。

例えば、現在のコードページと互換のUnicode特性がANSI文字列として出力されるため、異なるコードページでその文字列を出力しようとした場合、アプリケーションに関する情報が失われる場合があります。

Unicodeデータ

データは、現在のコードページに対してテストされます。全てのデータがこのコードページの一部であれば、ANSIに変換されて、この方法で出力されます。現在のコードページと互換でない場合、UnicodeからUTF-8に変換されます。

出力される各オブジェクトのためのエントリ名には、接尾辞として「U」が付加されます。

例えば、ヘブライ語と日本語のUnicodeデータを含んでいるメニューエントリは、「DESC」の代わりに「DESCU」と出力されます。


Unicode 利用する場合の注意事項

ホーム > リファレンスガイド > Unicodeサポート > Unicode 利用する場合の注意事項

Unicodeを利用する場合の注意事項

Magic xpa でUnicodeを利用する際、以下の点に注意してください。

プロジェクト開発

実行エンジンの動作

Unicode対応のWebアプリケーションを作成する場合

データベース固有の制限事項


Unicode 利用する場合の注意事項 開発

ホーム > リファレンスガイド > Unicodeサポート > Unicode 利用する場合の注意事項 > プロジェクト開発

プロジェクト開発

Unicode文字を設定できる箇所

開発するプロジェクトの中で設定するデータは、アプリケーション実行時に表示あるいは出力するデータ項目について、Unicode特有の文字を登録することができます。開発者のみ参照できるデータ項目については、Shift-JISコードに含まれる文字のみ登録可能です。

Unicode特有の文字を設定できる箇所

Unicode特有の文字を設定できない箇所

  • フォーム名

  • 定義式の文字データ

  • テキストコントロールの文字データ

  • ユーザメニュー名

  • ヘルプ項目のテキスト

  • モデル、データソース、プログラム等の各リポジトリ名

  • データソースの項目名

  • インデックス名

  • 外部キー名

  • 変数名、パラメータ名

  • ユーザイベント名

  • フォーム内のコントロール名

  • その他、左記以外の箇所


Unicode 利用する場合の注意事項 実行

ホーム > リファレンスガイド > Unicodeサポート > Unicode 利用する場合の注意事項 > 実行エンジンの動作

実行エンジンの動作

データの照合順序

Shift-JISとUnicodeは、格納される文字コードが異なりますので、それぞれをキー項目としたデータの処理順序が異なることにより、プログラムの範囲抽出処理やバッチのグループ処理に影響がでる可能性があります。
また、SQLデータベースを利用する場合は、そのデータベースマネージャ固有の機能や設定による影響があります。

文字コードを比較した場合の文字種類別の順序は次の通りです。

Shift-JIS（文字型項目)のコード順序 | Unicode(Unicode型)のコード順序
1.半角数字 | 1.半角数字
2.半角英 | 2.半角英
3.半角カナ | 3.ひらがな
4.全角数字 | 4.カタカナ
5.全角英 | 5.漢字
6.ひらがな | 6.全角数字
7.カタカナ | 7.全角英
8.漢字 | 8.半角カナ

漢字については、個々の漢字のコード順序が異なります。 例えば、「亜」と「一」ではShift-JISとUnicodeで、次のようにコードの順序が異なります。

 | 亜 | 一 | 結果
Shift-JIS | 0x889F | 0x88EA | 亜が一より先
Unicode | U+4E9C | U+4E00 | 一が亜より先

関数

文字列をパラメータに持つ関数に対して、文字型項目とUnicode型項目を設定した場合の戻り値は次のようなルールがあります。

  • SpecialAnsiExpression=Yが設定されていれば常に文字型（バイト単位）とします。

  • 文字型/Unicode型のパラメータ数を数えます(それぞれを m, n とする) 。文字定数（*1）の場合はカウントしません。

  • n > 0 ならばUnicode型（文字単位）とします。

  • n = 0 かつ m > 0 ならば文字型（バイト単位）とします。

  • n = 0 かつ m = 0 であり、戻り値が文字型かUnicode型ならば、戻り値にあわせます。

  • n = 0 かつ m = 0 であり、戻り値が文字型/Unicode型以外であれば、デフォルトとして文字型（バイト単位）とします。

*1 式に直接、'あいうえお'などの文字列を指定する場合

ただし、IF関数およびCASE関数では、以下の扱いになります。

  • 文字定数は、Unicode型と扱われます。

  • 文字変数は、指定されたデータ型が優先されます。

関数を組み合わせて使用した場合には、それぞれの関数について上記のルールが適用されます。

例1. Len関数

文字列の長さを数える関数
書式：　戻り値 = Len(文字列)

  • 項目Aが文字型項目で'あ'を格納した場合、Len(RTrim(A))の戻り値は2です。

  • 項目BがUnicode型項目で'あ'を格納した場合、Len(RTrim(B))の戻り値は1です。

  • Len('あ')の戻り値は2です。

例2. MID関数

文字列の中から、指定された位置とサイズにあった文字列を取得する関数
書式：　文字の戻り値 = MID(文字列, 開始位置, 文字数)

# | パラメータの型 | 戻り値の型 | 戻り値の結果
1 | 文字型 | 文字型 | バイト単位に取得
2 | 文字型 | Unicode型 | バイト単位に取得
3 | Unicode型 | 文字型 | 文字単位に取得
4 | Unicode型 | Unicode型 | 文字単位に取得
5 | 文字定数 | 文字型 | バイト単位に取得
6 | 文字定数 | Unicode型 | 文字単位に取得

例3. Rep関数

文字列中の位置と文字数を指定し、その部分を別の文字列に置き換える関数
書式：　文字の戻り値 = Rep(文字列1, 文字列2, 位置, 文字数)

# | パラメータ1の型 | パラメータ2の型 | 戻り値の型 | 戻り値の結果
1 | 文字型 | 文字型 | 文字型 | バイト単位に取得
2 | 文字型 | 文字型 | Unicode型 | バイト単位に取得
3 | 文字型 | Unicode型 | 文字型 | 文字単位に取得
4 | 文字型 | Unicode型 | Unicode型 | 文字単位に取得
5 | Unicode型 | 文字型 | 文字型 | 文字単位に取得
6 | Unicode型 | 文字型 | Unicode型 | 文字単位に取得
7 | Unicode型 | Unicode型 | 文字型 | 文字単位に取得
8 | Unicode型 | Unicode型 | Unicode型 | 文字単位に取得
9 | 文字型 | 文字定数 | 文字型 | バイト単位に取得
10 | 文字型 | 文字定数 | Unicode型 | バイト単位に取得
11 | Unicode型 | 文字定数 | 文字型 | 文字単位に取得
12 | Unicode型 | 文字定数 | Unicode型 | 文字単位に取得
13 | 文字定数 | 文字型 | 文字型 | バイト単位に取得
14 | 文字定数 | 文字型 | Unicode型 | バイト単位に取得
15 | 文字定数 | Unicode型 | 文字型 | 文字単位に取得
16 | 文字定数 | Unicode型 | Unicode型 | 文字単位に取得

Rep ('あいうえお',MID('かきくけこ',3,2),3,2)の結果をUnicode型項目に格納する場合、以下のように処理されます。

  1. まず、MID('かきくけこ',3,2)について、文字型/Unicode型の判定が行われます。

  2. パラメータ数がカウントされ、文字型 = 0個、Unicode型 = 0個 となります。戻り値の型にあわせて、Unicode型が返されます。

  3. MID関数の結果（Unicode型）がRep関数のパラメータとなります。

  4. 次に、Rep ('あいうえお',Unicode型,3,2)について、文字型/Unicode型の判定が行われます。

  5. パラメータ数がカウントされ、文字型 = 0個、Unicode型 = 1個 となります。これにより、Unicode型が返されます。

その他の関数の留意事項

  • 文字型項目からUnicode型項目、またはUnicode型項目から文字型項目への代入、または項目更新処理を行う場合、内部で変換を行いますので、UnicodeFromANSI関数/UnicodeToANSI関数を使う必要はありません。

  • Mail関数(MailSend/MailMsgTextなど）は、Unicode特有の文字に対応していません。

その他

  • 入出力ファイルのメディアにテキスト形式プリンタを設定した印刷処理では、Unicode特有の文字の印刷は対応していません。Unicode型データはGUI形式プリンタに設定して印刷してください。

  • メッセージコンポーネントに対して、Unicode型のパラメータを渡すことはできません。

  • フォーム入力で、UnicodeやUTF-8のファイルタイプの場合、文字型項目に入力すると文字列がカットされる場合があります。

  • フォーム出力で、ANSIのファイルタイプの場合、Unicode型項目を出力すると文字列がカットされる場合があります。

  • サロゲート・ペア文字（4バイトのUnicode文字）については、現在対応されておりません。


Unicode 利用する場合の注意事項 Webアプリケーション

ホーム > リファレンスガイド > Unicodeサポート > Unicode 利用する場合の注意事項 > Unicode対応のWebアプリケーションを作成する場合

Unicode対応のWebアプリケーションを作成する場合

マージ機能を用いて Shift-JISに存在しないUnicode固有の文字を使う Web アプリケーションを作成する場合には、以下の点に留意してください。

  • Magic xpaでは、マージテンプレートファイル、および、テンプレートに埋め込むデータに、日本語およびUnicode固有文字を使うことができます。

  • マージテンプレートファイルに、Unicode固有の文字を使う場合には、BOM (Byte Order Marker) 付きの UTF-8 で格納してください。BOMを付加しなければ、デフォルトで Shift-JIS と解釈されますので、正しい結果が得られなくなります。テンプレートにUnicode固有文字を使わない場合には、Shift-JISでも構いません。

  • 入出力ファイルテーブルでは、リクエスタを定義する際、入出力ファイル特性の「使用する文字セット」パラメータに「T=UTF-8」を指定してください。Webブラウザへ返送されるHTMLデータが UTF-8 でエンコードされます。A=Ansi あるいは O=OEM では、Shift-JISに変換されるので、Unicode 固有の文字が正しく出力されません。

  • ハイパーリンクをクリックしたり、フォームのサブミットを行った時には、WebブラウザからWebサーバへ送信されるHTTPリクエスト(GETおよびPOST)のパラメータは、UTF-8でエンコードされてWebサーバに送信されます。文字コードを正しく解釈するために、Magicエンジン(MgxpaRuntime.exe) と同じフォルダにある MGREQ.INI ファイルで、ConvertAlphaFromUTF8ToUnicode = Y フラグを設定してください。

  • ハイパーリンクで定義されたURLに、日本語やUnicode固有文字を埋め込むと、WebブラウザからWebサーバへ送信されるHTTPリクエスト(GET)に不正な文字が入ることがあります。URLにはこのような文字を避けてください。

  • フォームでサブミットするとき(POSTリクエストの場合)には、パラメータに日本語やUnicode固有の文字を使うことはできますが、アプリケーション名や公開プログラム名に使うと正しく動作しません。アプリケーション名や公開プログラム名には、半角英数字のみを使うようにしてください。


Unicode 利用する場合の注意事項 データベース固有の制限

ホーム > リファレンスガイド > Unicodeサポート > Unicode 利用する場合の注意事項 > データベース固有の制限事項

データベース固有の制限事項

MS-SQL Server

  • Unicode型/BLOB型(Unicodeタイプ)に設定したときに対応するMS-SQL Serverのカラムタイプは次の通りです。

データソースの型／内容 | データソースのサイズ | MS-SQL Serverの型
Unicode型 | 1-4000 | nvarchar
Unicode型 | 4001以上 | ntext
BLOB型/Unicode | - | ntext/イメージ(*)

*記憶型式により異なります。

  • デフォルトの照合順序が設定されたデータベースでは、Unicodeに依存しないMS-SQL Serverのソート処理により、文字型項目のソート処理の結果と互換性があります。

  • 埋込SQLの入力パラメータにUnicode特有の文字を渡す場合、パラメータの先頭文字にNを付加する必要があります。
    例．select * from TESTTAB where UNICODEMOJI = N':1'

  • 文字型255桁のカラムを含むデータソースをMagicで定義し、APG実行によりテーブル作成しようとすると「SQL0604N 列の長さ、精度、または位取り属性、特殊タイプ、構造化タイプ、構造化タイプの属性、関数、あるいはタイプ・マッピング "CHAR(255)" が無効です。 SQLSTATE=42611」とエラー表示され、テーブル作成できません。(2000326)

  • 埋込SQLの入力パラメータ、およびDB SQLのパラメータにUnicode特有の文字を渡す場合、パラメータの先頭文字にNを付加する必要があります。

例．select * from TESTTAB where UNICODEMOJI = N':1'

Oracle

  • Unicode型/BLOB型(Unicodeタイプ)に設定したときに対応するOracleのカラムタイプは次の通りです。

データソースの型／内容 | データソースのサイズ | MS-SQL Serverの型
Unicode型 | 1-2000 | NVARCHAR2
Unicode型 | 2001以上 | NCLOB
BLOB型/Unicode | - | NCLOB/BLOB (*)

*記憶型式により異なります。

  • SQL WHERE句に Unicode 固有の文字を文字定数として使うことはできません。

  • 埋込SQLのINOUTのパラメータが定義されたプロシージャに対して、出力パラメータにUnicode型項目を指定した場合、正しく動作しません。

  • 埋込SQLの入力パラメータにUnicode固有の文字を指定する場合、バインド変数(接頭辞にコロン(:)でなく、チルダ(~)を指定）を指定してください．この場合、パラメータを''で囲む必要はありません。

Pervasive.SQL (ISAM)

  • Unicode 型項目を扱うためには、ファイルフォーマットを 7.x あるいはそれ以上にしてください。これは P.SQL の仕様制限によるものです。

  • Unicode 型項目をインデックスとした場合、正しく並ばないことがあります。これは P.SQL の問題で、「P.SQL8 SP3およびP.SQL SP2において対応されています。
    AG-TECH社のホームページ http://www.agtech.co.jp/download/update/pervasive/psqlv8s3/history.html に、以下のような情報があります： 「49474 mkde mkde Btrieve WSTRING キーで UNICODE 文字列データの並べ替え順に問題があった。」


デバッガ

この機能は、アプリケーションに内在する問題を正確に把握するための手助けとなります。

デバッグモード（［デバッグ］メニューから［デバッグモード］を選択した場合）にした場合、実行モードでプログラムを実行することで、デバッガは、（ブレイクポイントに到達した時）プログラムのどこで処理されているかが判るように、読込専用の開発画面上で処理中の位置にパークします。

デバッガ内では以下のことができます。

  • タスクフロービュー内のブレイクポイントと項目の値を参照することができます。ブレイクポイントは、開発画面内の任意の位置でプログラムの実行を停止させることができます。

  • アクティビティモニタを使用して、開発エンジン内のMagic xpaのフローを参照することができます。

  • ブレイクポイントに対する条件を指定できます。

  • 実行中に内容を参照したい項目を選択して、ウォッチリストを作成することができます。

  • 実行中に変数の内容を更新することができます。デバッガ内で値を更新すると、再計算が実行される旨の確認メッセージが表示されます。

  • 開発エンジン内からフローを参照することができます。

  • コールスタックを参照することができます。

  • デバッグのために異なるコンテキスト間で切り替えを行うことができます。

  • Logging関数を使用することで、動的にログを処理することができます。

  • デバッガをリモートで実行させることができます。

デバッガによって提供されるオプションの詳細な説明は、「デバッグオプション」のトピックを参照してください。

デバッガ情報の保存

デバッガは、セッション間の以下の情報を保存します。

  • ブレイクポイント

  • ブレイクポイントのソート順

  • ウォッチ項目

  • コールスタック

これらの項目は、プロジェクトファイルと同じフォルダ内にローカルファイルとして保存されます。このファイル名は、以下のように命名されます。

<プロジェクトファイル名>.opt

このファイルは、プロジェクトのソースセーフには保存されません。

リッチクライアントタスク

リッチクライアントタスクの場合、デバッガはサーバ側のデバッグをサポートします。

サーバ側（またはサーバ側で実行されるニュートラルな)動作でのブレイクポイントは、エンジンが停止され、開発者の操作を待ちます。クライアント側（またはクライアント側で実行されるニュートラな)動作でのブレイクポイントは、無視されます。

ブレイク指定を行うと、次のサーバアクセス中にブレイクされます。クライアントの処理をステップ実行すると、デバッガはサーバに戻った後に再度停止するため、いくつかのクライアント処理がある場合、デバッガによって停止するよと無く実行されます。

関連トピック：

コンポーネントのデバッグ

デバッガの異常終了

開発エンジンでのデバッグモード

クライアント側のデバッグ

アプリケーションのデバッグ (Mastering Magic xpa)


デバッガ デバッグオプション

ホーム > リファレンスガイド > デバッガ > デバッグオプション

デバッグオプション

デバッグオプションに関する様々な機能は、［デバッグ］メニューと［表示］メニューの両方で提供されます。

以下のオプションは、［デバッグ］メニューに表示されています。

メニュー

ショートカット

内容

実行/継続

F7

現在のプログラムを実行します。ブレイクポイントに達した場合、［継続］が表示されます。

Magic xpa Studioが起動されると自動的に実行エンジンもロードされます。しかし、F7を押下してプログラムを実行しない限り、このプロセスはエンドユーザに見えない状態で維持されます。

ブラウザで実行

Ctrl+Shift+F7

現在のプログラムをブラウザで実行します。

プロジェクトの実行

Cｔｒｌ+F7

プロジェクトを実行します。

停止

実行を停止します。プロジェクトがデバッグモードで実行していない場合、このエントリは無効になります。

停止ボタンは､Magic xpa Studioのツールバーに赤い四角のアイコンで表示されます。デバッガが実行されている間、これをクリックすることが可能で、クリックするとプログラムは停止します。

処理時間の長いバッチジョブを途中で中断したり､無限ループから抜け出す場合に便利です。

Androidで実行

Androidデバイスまたはシミュレータでプログラム／プロジェクトの実行を有効にします。Androidシミュレータやデバイスが接続されていない状態でこのモードを有効にすると、実行時にエラーになります。

サポートバージョン：

2.4

デバッグモード

このオプションを選択した場合、全てデバッガ内で実行されます。

ブレイク

Alt+Ctrl+F7

ブレイクポイントに達した場合、ブレイクが実行されます。この設定により､各ブレイクポイントでバッチプログラムを止めることが可能になり、ステップ実行を行うことができます。

データ項目の内容を表示させることができるため、オンラインプログラムでは特に便利です。

プロジェクトがデバッグモードで実行していない場合、このエントリは無効になります。

ステップ

F10

現在のプログラム内の次の操作に進みます。

別のタスクへの［コール］処理コマンドが定義されている場合、デバッガ内には反映されません。

プロジェクトがデバッグモードで実行していない場合、このエントリは無効になります。

ステップイン

F11

現在のプログラム内の次の操作に進みます。プログラムがサブタスクや別のプログラムを呼び出している場合、そのサブタスクやプログラムのデバッグを行います。

強調表示された処理コマンドが以下のどれかでない場合、ステップオプションが起動されたかのように動作します。

  • ［コール］処理コマンド

  • CallProg関数

  • 同期イベント実行（ウェイト=Yes)

  • ユーザ定義関数の実行

プロジェクトがデバッグモードで実行していない場合、このエントリは無効になります。

ステップアウト

Shift+F11

現在のタスクのデバッグ中に、タスクのコール処理が定義されていても、タスク内には入らず、コール処理の次の処理に止まります。

プロジェクトがデバッグモードで実行していない場合、このエントリは無効になります。

ブレイクポイント

F9

現在の処理コマンドにブレイクポイントを設定したり、削除したりします。以下の通りに動作します。

  • パークした行にブレイクポイントが設定されていない場合、ブレイクポイントが作成されます。

  • パークした行にブレイクポイントが設定されていて、有効な処理が定義されている場合、ブレイクポイントは削除されます。

  • パークした行にブレイクポイントが設定されていて、無効になっている場合、ブレイクポイントは有効になります。

  • コメント行にはブレイクポイントを定義できません。ブレイクポイントが定義されている行を[コメント]処理コマンドに変更した場合、ブレイクポイントは削除されます。

ウォッチに追加

ウォッチリストに項目を追加します。

項目の定義行（データビュー、ハンドラ、関数）にパークしている状態で有効になります。

エンジンをリセット

Ctrl+Shift+F9

実行エンジンの動作環境や、メモリテーブル、グローバル変数、共有値がリセットされます。デバッガが動いていない場合のみ、このオプションが選択できます。

例えば、ユーザがログインした直後の状態に戻したい場合に有効です。

リモートエンジンに接続

現在､リモートPC上の実行エンジンによって実行されているアプリケーションをデバッグを可能にします。

リモートデバッガを参照してください

リモートエンジンを切断

現在､リモートPC上の実行エンジンによって実行されているアプリケーションのデバッグを終了します。

リモートデバッガを参照してください

以下のオプションは、［表示］メニューに表示されています。

メニュー | 内容
アクティビティモニタ | アクティビティモニタを開きます。これはプログラムの実行中に発生するコマンドのフロー（タスクやレベル、処理コマンドのフロー）をログに記録し、表示します。
ブレイクポイント | ［ブレイクポイント］テーブルが開きます。ここには、プロジェクト内で定義されたブレイクポイントが表示されます。
項目 | ［項目一覧］が開きます。ここには、現在の実行中のタスクがアクセスできる項目が表示されます。
コールスタック | 実行時の［コールスタック］テーブルが開きます。ここには、現在の実行タスクのセッション内のプログラムや新規プログラムによって起動されたハンドラの状態が表示されます。
実行コンテキスト | ［実行コンテキスト］テーブルが開きます。ここには、現在オープンされているコンテキストの一覧が表示されます。
ウォッチ | ［ウォッチ項目一覧］が開きます。ここには、現在設定されている項目が表示されます。


デバッガ アクティビオティモニタ

ホーム > リファレンスガイド > デバッガ > アクティビティモニタ

アクティビティモニタ

アクティビティモニタは、プログラムの実行中に発生するコマンドのフロー（タスクやレベル、処理コマンドのフロー）をログに記録し、表示します。

［表示］メニューの［アクティビティモニタ］を選択することで、アクティビティ・モニタが起動されます。

アクティビティモニタは、Magicエンジンからのアクティビティメッセージを受け取ります。

Logging関数の使用で、フィルタオプションを動的に有効／無効を切り替えることができます。

アクティビティモニタには、以下のカラムがあります。

カラム | 内容
コンテキスト | アクティビティのコンテキストID。メインのコンテキストIDは、-1です。
時間 | コンテキストが起動された時間。動作時間と以前の時間の差分が括弧内に表示されます。
クライアント | クライアント側で実行される処理には、先頭に「C」という文字か表示されます。これは、リッチクライアントタスクのみ有効です。
ログレベル | 動作内容がアクションか、エラー、情報または警告のどれかを表示します。
実行パス | プログラムがどのような経路で起動されたかをパス表示されます。
内容 | 動作内容が表示されます。

アクティビティモニタのコンテキストメニューとツールバーには、以下のオプションがあります。

オプション | 内容
保存 | ログをテキストファイルに保存します。 XMLファイルで保存されます。外部ツールでこのファイルを加工する場合に便利です。
クリア | ログ表示を消去します。ログのサイズが巨大になる場合や、チェックしたい処理を通過した場合等で、ログを完全に消去したい場合に使用します。
行のコピー | 選択した行をクリックボードにコピーします。
検索 | 指定された文字列でログ内容を検索します。
再検索 | 次の検索対象に位置付けます。
開始/終了 チェック | メッセージのブロックの最初にパークした時に、このオプションを実行すると、カーソルはブロックの終了に移動します。（逆も同様です。) このオプションは、デバッグ開始前に［ロギング］テーブルの［開始／終了メッセージ］オプションを「Yes」に設定されている場合のみ有効になります。
出力開始 | モニタへのログの出力を再開します。
出力停止 | モニタへのログの出力を停止します。

参考：

  • 開発エンジンがデバッグモード中かどうかにかかわらず、アクティビティモニタへのデータの書込は実行されます。モニタがオープンされている場合、ロギング情報は常に送られます。

  • リッチクライアントタスクの場合、アクティビティモニタの表示行の色は、サーバ側の処理はピンクで、クライアント側の処理は白になります。

  • 背景色が切り替わることで、コンテキストを区別することができます。

  • エラーと警告は、デフォルトで赤色で表示されます。開発用基本色の「実行ログ エラー／警告（背景）」（#74）で変更することができます。

関連トピック：

アクティビティモニタのログ

アクティビティモニタ特性

クライアント側のデバッグ

エラーログに追加

FlwMtr

データベースに送信されるSQLステートメントを参照するには


デバッガ アクティビオティモニタ ログ

ホーム > リファレンスガイド > デバッガ > アクティビティモニタ > アクティビティモニタのログ

アクティビティモニタのログ

Magicエンジン(開発エンジンか実行エンジンのどちらか）がロードされると、アクティビティモニタのログが作成されます。

アクティビティモニタのメッセージは、外部のログファイルに書き込まれます。このファイルへの出力は、開発エンジンがデバッグモードであるか否かには影響されません。

アクティビティモニタのメッセージフィルタは、［ロギング］設定によって定義できます。


デバッガ アクティビオティ・モニタ 特性

ホーム > リファレンスガイド > デバッガ > アクティビティモニタ > アクティビティモニタ特性

アクティビティモニタ特性

開始/終了のメッセージを持っているアクティビティに対して、メッセージのどちらか、またはその両方をブロック化することができます。

ブレイクポイントが設定された場合に、アクティビティモニタはそのポイントでフローの実行を停止させます。FlwMtr関数を使用することで、プログラムの実行中にブレイクポイントを設定することもできます。フローが一定の回数分通過したら停止するように、ブレイクポイントに回数条件を設定することもできます。

ブレイクポイントに達した時に、ステップイン、ステップアウト、フローの継続の操作を実行することができます。

  • ステップインは、1度に1ステップづつ処理を進めます。

  • ステップアウトは、サブタスクへの呼出の場合に、サブタスク内のフローのロギングをスキップして同一タスク内の処理のみ進めます。

  • 継続は、ブレイクポイントを無視させ、フローの実行を継続させます。


デバッガ ブレイクポイント

ホーム > リファレンスガイド > デバッガ > ブレイクポイント

ブレイクポイント

ブレイクポイントは、デバッグ時に有用なツールです。これは、開発画面内でプログラムの任意の場所に一時停止する位置を指定することができます。

［表示］メニューから［ブレイクポイント］を選択すると、［ブレイクポイント］テーブルが表示されます。

ブレイクポイントを［ロジック］エディタ内に追加した場合、デフォルトの条件は「Ａ=常時」になります。

注意：

  • 定義情報は、プロジェクトファイルに保存されます。

  • 処理がブレイクポイントで停止した状態で、「ステップアウト」が要求された場合、ステップアウトの処理にしばらく時間がかかるかもしれません。この処理の間、別のコンテキストが、異なるブレイクポイントに達する場合があります。このような場合、デバッガは他のコンテキストのブレイクポイントに移動し、ステップアウトの処理が無効になってしまいます。

  • ブレイク状態で以下のオブジェクトにマウスカーソルを置くと、項目の値がツールチップで表示されます。

    • ［データビュー］エディタ上の項目定義行

    • ［パラメータ］テーブルに定義された項目

    • ［フォーム］エディタ上の項目が定義されているコントロール

ブレイクポイントで停止すると、タスクの実行は中断します。実行しているタスクがフリーズしたかのようになります。しかし、ソースを表示させると、黄色い矢印 [image] が停止行に表示されます。これは、Magic xpaがまだ実行中であることを示す「コード行」です。

関連トピック：

［ブレイクポイント］テーブルのカラム

ブレイクポイントの持続性

ブレイクポイントの削除

データ変更ブレイクポイント

データ変更ブレイクポイントの追加

コンポーネントのデバッグ

ブレイクポイント(実行コンテキスト)

アプリケーションのブレイクポイントを設定するには


デバッガ ブレイクポイント カラム

ホーム > リファレンスガイド > デバッガ > ブレイクポイント > ［ブレイクポイント］テーブルのカラム

［ブレイクポイント］テーブルのカラム

［ブレイクポイント］テーブルには、以下のカラムが含まれています。

カラム

内容

#

識別子として自動的に設定される連番

有効

このブレイクポイントを有効にするかどうかを指定できます。チェックボックスがチェックされていない場合、ブレイクポイントは無効となり、処理はここには停止しません。ブレイクポイントの有効／無効の設定も保存されます。

タスク

プログラム／タスクの名前が「<プログラム名> <タスク名>」の書式で表示されます。最長120文字まで表示されます。

ハンドラ

ブレイクポイントが設定されたタスク内のロジックユニットが表示されます。「<ハンドラ名>：<コントロール名／イベント名>」の書式で最長50文字まで表示されます。

行

ブレイクポイントが設定されたタスク内の行番号が表示されます。

条件

デバッガ内で、条件付きのブレイクポイントを定義することができます。［有効］カラムのチェックボックスがチェックされていない場合、この条件は評価されません。ブレイクポイントに到達するたびに、この条件が評価されます。条件が「Ｆａｌｓｅ」と評価された場合、「無効」と設定されたように動作します。［ブレイクポイント］テーブルでコンテキストメニューを開き、［特性］を選択すると［ブレイクポイント特性］ダイアログが開きます。ここで条件が設定できます。指定できるオプションは以下の通りです。

  • A=常時 …… このブレイクポイントは常に実行（停止）されます。この値はデフォルトです。

  • C=カウント …… フローが［回数］欄に指定された回数分ブレイクポイントに達した場合、ブレイクポイントが有効になります。フローが前方から実行された場合のみカウントされます。［回数］欄に「0」が設定された場合は、回数条件は無効になります。

  • C=条件 …… ［条件］欄には、ブレイクが有効になる場合の論理条件式を指定します。条件式が「Ｔｒｕｅ」と評価された場合のみブレイクが有効になります。このオプションは、条件が設定されたタスクがフォーカス上にある場合のみ有効になります。条件式には、タスクツリー内で定義された項目を使用することができます。

  • D=データ更新 …… 項目の値が変更された場合のみ、ブレイクポイントが有効になります。

値

最長30文字までの内容が表示されます。

  • 条件を設定した場合、指定された条件が表示されます。

  • カウント値（回数）を設定した場合、指定された回数が表示されます。

  • データ変更条件を設定した場合、項目名が表示されます。

以下のツールボタンが表示されます。

1つのブレイクポイントを削除します。

全てのブレイクポイントを削除します。

全てのブレイクポイントを有効にします。

全てのブレイクポイントを無効にします。

［ブレイクポイント特性］ダイアログを表示します。

以下のコンテキストメニューが表示されます。

  • 削除

  • ソースに移動 …… 対応するプログラム内容にカーソルを移動します。

  • 特性


デバッガ ブレイクポイント 特性

ホーム > リファレンスガイド > デバッガ > ブレイクポイント > ブレイクポイント特性

ブレイクポイント特性

［ブレイクポイント特性］ダイアログボックスには、以下の特性が含まれています。

特性

内容

ブレイク

この特性は、ブレイクをどのように実行するかを指定します。指定できるオプションは以下の通りです。

  • A=常時 …… このブレイクポイントは常に実行（停止）されます。この値はデフォルトです。

  • C=カウント …… フローが［回数］欄に指定された回数分ブレイクポイントに達した場合、ブレイクポイントが有効になります。

  • C=条件 …… ［条件］欄には、ブレイクが有効になる場合の論理条件式を指定します。条件式が「Ｔｒｕｅ」と評価された場合のみブレイクが有効になります。

回数

［ブレイク］オプションが「C=カウント」に設定された場合に表示されます。フローに達する回数を指定します。「0」が設定された場合は、回数条件は無効になります。

条件

［ブレイク］オプションが「Ｎ=条件」に設定された場合に表示されます。ここから［式］エディタにズームして論理条件を指定します。このオプションは、条件が設定されたタスクがフォーカス上にある場合のみ有効になります。条件式には、タスクツリー内で定義された項目を使用することができます。


デバッガ ブレイクポイント 持続性

ホーム > リファレンスガイド > デバッガ > ブレイクポイント > ブレイクポイントの持続性

ブレイクポイントの持続性

以下のポイントは、ブレイクポイントの持続性について説明しています。

  • ブレイクポイントの状態は、デバッガセッションの間は持続されます。

  • 設定した処理が移動した場合、移動内容に基づいてブレイクポイントも移動します。

  • 切り取り、コピー、貼り付け、複写登録、上書登録を行った場合は、設定されたブレイクポイントはコピーされません。

  • タスクの最新バージョンを取得した場合、ブレイクポイントは、以前存在していた処理コマンドやデータ定義のために保存されます。エントリが新規入力内容で上書きされた場合、ブレイクポイントは保存されません。


デバッガ ブレイクポイント 削除

ホーム > リファレンスガイド > デバッガ > ブレイクポイント > ブレイクポイントの削除

ブレイクポイントの削除

［ブレイクポイント］テーブルで、コンテキストメニューを開き、［削除］を選択すると強調表示されたブレイクポイントが削除されます。（［ブレイクポイントリ］テーブルと、タスクの定義内容ともに）

考慮事項

  • ブレイクポイントを削除した場合、プロジェクトからも削除されます。

  • ブレイクポイントが定義された処理を削除した場合、定義されていたブレイクポイントも削除されます。

  • ブレイクポイントが定義されているタスクを削除した場合、ブレイクポイントも削除されます。

  • 項目の定義が削除され、その項目がブレイクポイント条件で使用されている場合、ブレイクポイントは自動的に無効になります。


デバッガ ブレイクポイント データ変更

ホーム > リファレンスガイド > デバッガ > ブレイクポイント > データ変更ブレイクポイント

データ変更ブレイクポイント

指定された項目の値が変更された場合、（再計算サイクルの終わりに）ブレイクが実行されます。

開発エンジンは、項目が定義された行にパークします。コールスタックオプションを使用すると、以下の処理に移動することができます。

  • 更新処理（例：［項目更新］、［アクション］）

  • ［コール］処理コマンド（この項目が、参照渡しのパラメータで渡されている場合）

  • ［代入］特性が設定された項目

  • タスクの戻り値

  • 関数の戻り値

  • コントロールによるユーザ入力

項目の定義行でブレイクポイントを定義すると、［ハンドラ］カラムは空白、［条件］カラムには「D=データ更新」が表示され、［値］カラムは項目の名前が表示されます。

関連トピック：

データ変更ブレイクポイントの追加


デバッガ ブレイクポイント データ変更の追加

ホーム > リファレンスガイド > デバッガ > ブレイクポイント > データ変更ブレイクポイントの追加

データ変更ブレイクポイントの追加

項目に対するブレイクポイントは、その項目が定義されているタスクにパークしている場合のみ定義できます。

項目が定義されている行にパークした状態で［ブレイクポイント］オプションを選択すると、［ブレイクポイント］テーブルにデータ変更ブレイクポイントが追加されます。

注意：

処理がブレイクポイントで停止した状態で、「ステップアウト」が要求された場合、ステップアウトの処理にしばらく時間がかかるかもしれません。この処理の間、別のコンテキストが、異なるブレイクポイントに達する場合があります。このような場合、デバッガは他のコンテキストのブレイクポイントに移動し、ステップアウトの処理が無視されます。


デバッガ ブレイクポイント コンポーネント

ホーム > リファレンスガイド > デバッガ > コンポーネントのデバッグ

コンポーネントのデバッグ

コンポーネントが現在のプロジェクトのモジュールとして定義された場合、コンポーネント内にブレイクポイントを追加することができます。

ブレイクポイントの定義内容は、現在のプロジェクトと一緒に保存されます。

コンポーネントが別のプロジェクトでオープンされた場合、（上記で定義された）ブレイクポイント情報は未定義状態になっています。

コンポーネントアプリケーションとしてキャビネットファイルしかない場合、コンポーネントをモジュールリストに追加することはできません。キャビネットファイルにアクセスしてデバッガを使用している場合、項目を参照することはできますが､ソースを参照したり、ブレイクポイントをコンポーネントのソースファイルに設定することはできません。


デバッガ ブレイクポイント デバッガの異常終了

ホーム > リファレンスガイド > デバッガ > デバッガの異常終了

デバッガの異常終了

存在していないプログラムを呼び出したり、長さが0になっている目を定義していたり、無効な式を実行している場合、デバッガは異常終了します。実行エンジンがリセットされたというメッセージが表示されます。Windows自身が不安定にならない限り、Magic xpa Studioの実行環境には影響しません。

認証エラーなどのような他のエラーが発生した場合､停止ボタンをクリックすることで直ちにプログラムの実行を中止させることができます。


デバッガ 項目

ホーム > リファレンスガイド > デバッガ > 項目

項目

［項目リスト］には、現在の実行ツリー内の項目が表示されます。

［表示］メニューから［項目］を選択すると表示されます。実行がブレイク状態（ブレイクポイントで停止しているか、［デバッグ］メニューの［ブレイク］が選択された）場合にこのオプションが有効になります。

［項目リスト］には、以下のエントリが含まれています。

  • 名前 …… 項目の名前が表示されます。

  • 型

  • データソース

  • 値 …… ここに入力される有効な値は、項目の型、書式、および範囲によって定義されます。

［項目リスト］には、以下のツールボタンがあります。この内容は、コンテキストメニューからアクセスすることもできます。

  • ウォッチに追加 …… 現在パークしている項目を［ウォッチリスト］に追加します。このボタンは、プログラムヘッダや共有値、追加済の項目にパークしている場合、無効になります。項目の値が変更した時点で、タスクの処理がブレイクします。プログラムヘッダや共有値、またはすでに［ウォッチリスト］内に項目が設定されている場合、このボタンは無効になります。

  • ソースに移動 …… 現在パークしているソースコードに移動します。

  • データ設定 …… 現在の項目の値を編集します。

  • データにNULLを設定 …… 現在の項目の値をNULLに設定します。

注意：

  • ［ウォッチリスト］内の値を更新しても、再計算は発生しません。

  • ［データソース］が定義された項目を更新しても、データベースには書き込まれません。項目がデータベースに書き込まれた場合、新しい値によって書き込まれます。

  • ベクトル型の項目にパークしている状態で、［ベクトルセル一覧］にズームすることができます。

関連トピック：

項目の値の設定

グローバル変数

デバッグ中にデータを操作するには


デバッガ 項目 値の設定

ホーム > リファレンスガイド > デバッガ > 項目 > 項目の値の設定

項目の値の設定

［項目リスト］内で、強調表示された項目の［値］カラムでパークすると、その値を更新することができます。

ここで入力される有効な値は、項目の型や書式、範囲によって決まります。

無効な値が入力された場合、元の値に戻ります。

［値］カラムで値を更新した場合、再計算は発生しません。また、テーブルの値を更新しても、データベースには反映されません。そのテーブルのカラムの1つがデータベースに書き込まれた場合、この値は書き込まれます。

以下の種類のBLOB項目を編集することはできません。

  • BLOB

  • OLE

  • .NET

  • ベクトル（各セルを編集するためにベクトルの切替で使用することはできます。）

  • バッファ

  • 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 xpaがバックグラウンドモードで起動された場合、Magic xpaのSDI/MDI機能としてコンテキストマネージャが有効になります。コンテキストマネジャーは、フォアグラウンドアプリケーションでも利用可能です。

コンテキストは、最初に起動された順番に表示されます。コンテキストがクローズされると、テーブルから表示されなくなります。

現在デバッグ中のコンテキストは、強調表示されます。

［コンテキスト］テーブルのカラム

［コンテキスト］テーブルには、以下のカラムが表示されています。

カラム | 内容
# | 現在実行中のコンテキストがインジケータ（矢印）で表示されます。
ID | コンテキストIDが表示されます。
名前 | CtxSetName関数を使用して変更されない限り、コンテキストIDが表示されます。（MDI用の）最初のコンテキストは、「Main」と表示されます。
状態 | コンテキストの状態が表示されます。オプションは、「停止済」と「実行中」があります。コンテキストがブレイクポイントに達していない場合は、「実行中」になります。ブレイクポイントに達すると表示が更新されます。
コンテキストの切替 | 指定された時間内で、1つのコンテキストだけを監視することができます。ツールイメージやコンテキストメニューに表示される［コンテキスト切替］を選択することで、別のコンテキストのフローを表示させることができます。 関連トピック： 並行プログラムの実行中にデバッガを使用するには

注意：

  • 一覧に表示されるコンテキストは、起動された順番に表示されます。コンテキストがクローズされると、一覧には表示されなくなります。

  • コンテキストの切替を行うと、開発エンジンはタスクフロー内の現在の処理を表示します。

参照

ブレイクポイント


デバッガ 実行コンテキスト ブレイクポイント

ホーム > リファレンスガイド > デバッガ > 実行コンテキスト > ブレイクポイント

ブレイクポイント

現在のコンテキストで有効なブレイクポイントに達した場合、コンテキストは停止します。

エンジンがブレイクポイントに達すると、実行中の全てのコンテキストを停止しようとします。以下の場合、コンテキストはブレイクされません。

  • 再計算サイクルの途中

  • 外部処理（COM、SQL、Java、DLLなど）の途中

コンテキストマネジャーを使用している場合、上記のコンテキストに切り換えることはできません。

［デバッグ］メニューから［ステップ］を選択した場合（または、F10）、全てのコンテキストは処理を1ステップ進めます。［デバッグ］メニューから［継続］を選択した場合（または、F7）、全てのコンテキスト処理は継続されます。


デバッガ ウォッチリスト

ホーム > リファレンスガイド > デバッガ > ウォッチリスト

ウォッチリスト

［ウォッチリスト］には、監視対象として定義された項目が表示されます。項目の値がどのように更新されたを参照することができます。

項目は、［項目リスト］と項目定義行から追加することができます。

ウォッチ項目がすでに実行ツリー内に存在しない場合、未定義値として表示されます。

ウォッチ項目は、デバッガセッション間は保存されます。

コンテキストメニューには、以下のオプションが表示されます。（ツールバーに表示されるオプションもあります。）

  • 削除

  • ウォッチに追加 …… 現在パークしている項目を［ウォッチリスト］に追加します。このオプションは、プログラムヘッダや共有値、追加済の項目にパークしている場合は無効になります。

  • ソースに移動 …… 現在パークしているエントリに対応するソースにカーソルを移動します。

  • データ設定 …… 現在の項目の値を更新します。

  • データにNULLを設定 …… 現在の項目の値をNULLに更新します。

  • データを展開 …… 現在の項目の内容を展開表示します。このオプションは、セル数が1以上のベクトル項目で有効です。

  • データを縮小 …… 現在の項目の展開表示を閉じます。このオプションは、セル数が1以上のベクトル項目で有効です。


デバッガ リモートデバッガ

ホーム > リファレンスガイド > デバッガ > リモートデバッガ

リモートデバッガ

リモートデバッガは、ユーザ環境でアプリケーションをデバッグすることができます。

リモートデバッガは、通常のデバッガと同じように動作します。しかし、ローカルなデバッガでは、プロジェクトのローカルなコピーを参照できますが、リモートの場合は、キャビネットファイルとしてのアプリケーションのコピーを参照するだけしかできません。

キャビネットファイルは、ローカルPCに置く必要はありません。実際、リモート側は様々なサーバ上で実行されており、.ecfファイルをオープンしています。運用中のアプリケーションかもしれません。特定のユーザでのみ発生するような難解なバグを調べる場合に使用することができます。

リモートデバッガを、2つのMagicエンジン（1つが実行エンジン、もう一方が開発エンジン）に対して実行させる必要がある場合、以下のように設定する必要があります。

  1. ［動作環境］の［リモートデバッガ］を「Yes」に設定します。

  2. ［動作環境］の［リモートデバッガの使用ポート］を設定します。同時に実行する2つのアプリケーションが同じPC上にある場合、異なるポート番号を指定する必要があります。

  3. 必要であれば、［リモートデバッガ権利］を指定することもできます。この設定は、キャビネットファイルを作成する前に［アプリケーション特性］に指定します。権利が指定されている場合、この権利を持つユーザIDでログインする必要があります。

  4. Magic xpa Studioを起動し、すでに実行している.ecfファイルと整合性のある.edpファイルを開きます。

  5. ［デバッグ］メニューから、［リモートエンジンに接続］を選択します。接続ダイアログボックスが開きます。

関連トピック：

リモートアプリケーションからの切断


デバッガ リモートデバッガ コネクション

ホーム > リファレンスガイド > デバッガ > リモートデバッガ > 接続先の指定

接続先の指定

［接続先の指定］ダイアログボックスには、以下の設定欄があります。

項目

内容

アクティビティモニタのみ

このチェックボックスはすべてのデバッグ機能を有効にするか、アクティビティモニタとコンテキストの実行のみ有効にするかどうかを指定します。

注意：

Magic xpa Studioでロードされているものと同じプロジェクトを実行しているリモートエンジンに接続している場合のみ、フル機能が有効になります。

ホスト名

リモートサーバのホスト名を指定します。

ポート番号

Magicエンジンが接続を監視するために使用するポート番号を指定します。リモートPCをデバッグする場合、以下のポートをオープンしておく必要があります。

  • 動作環境で設定されたポート番号

  • 通信ゲートウェイテーブルのTCP/IPとして定義されたポート番号の範囲。範囲指定には、少なくとも2つのポート番号が指定されていなければなりません。

ユーザ

動作環境の［システムログオン］で設定された方法に基づいて認証するためのユーザIDを指定します。

パスワード

動作環境の［システムログオン］で設定された方法に基づいて認証するためのパスワードを指定します。

［OK］ボタンをクリックすると、エンジンはコネクションの確立を行おうとします。ユーザIDとパスワードがリモートPCに送られ、解析されます。

コネクションが確立すると、Magic xpaの認証処理として以下の動作を実行します。

  • Magic xpa Studioは、接続用のダイアログに入力されたユーザIDとパスワードを実行エンジンに渡します。

  • 実行エンジンは、動作環境の［システムログオン］で設定された方法に基づいてユーザ認証を行います。

  • 認証に失敗した場合、エラーメッセージが表示され接続ダイアログに戻ります。

  • 認証に成功して、［アプリケーション特性］にリモートデバッグ権利キーが設定されている場合、実行エンジンは、権利キーをチェックします。

  • 権利キーがない場合、エラーメッセージが表示され接続ダイアログに戻ります。

注意：

  • ホスト名やIPアドレスが指定されない場合、Localhostを参照します。

  • 一度接続した場合、他のStudioエンジンからは接続できません。

  • サーバPC上で2つの実行エンジンを同時に実行させる場合、異なるポート番号を設定する必要があります。この設定を行わないと1つの実行エンジンのみデバッグできます。

関連トピック：

リモートデバッガの有効化

リモートデバッガ権利

リモートアプリケーションからの切断


デバッガ リモートデバッガ 切断

ホーム > リファレンスガイド > デバッガ > リモートデバッガ > リモートアプリケーションからの切断

リモートアプリケーションからの切断

［デバッグ］メニューから［リモートエンジンを切断］を選択することで確認ダイアログが表示されます。

ここで切断を承認した場合以下のように動作します。

  • Magic xpa Studioは、リモートPCのアプリケーションと切断します。

  • 他のMagic xpa Studioは、このアプリケーションに接続できるようになります。

  • Magic xpa Studioのウィンドウタイトルが、通常の表示に戻ります。

  • Magic xpa Studioは、アプリケーションが編集可能なモードに戻ります。

  • フォーカスはそのままの状態に残ります（デバッグを開始する前の位置に戻りません）。

  • 実行が中断している場合は、処理が継続されます。

実行環境が終了（正常／異常に関わらず）した場合、Magic xpa Studioにメッセージが表示され編集モードに戻ります。

Magic xpa Studioがクラッシュしたり切断しないで終了した場合、リモートアプリケーション他のMagic xpa Studioからデバッグできるようになります。実行エンジンの実行が中断している場合、再開されます。


デバッガ 開発エンジン

ホーム > リファレンスガイド > デバッガ > 開発エンジンでのデバッグモード

開発エンジンでのデバッグモード

開発エンジンがデバッグモードの時、新しいブレイクポイントを定義するか、既存のブレイクポイントを削除するために読込専用ーモードで開発エンジンに入ることができます。

ブレイクポイントが追加されたり、削除された場合、［ブレイクポイント］テーブルが開いていれば、即表示されます。

現在のコンテキストのブレイクポイントに達した場合、タスクのロジックエディタが開き、ブレイクポイントが定義された処理が強調表示され、カーソルがパークします。

ブレイクポイントが、無効の場合（または、不正な場合）、ブレイクポイントは無視されます。

フローがコンポーネント内にあり、コンポーネントのソースがプロジェクトの一部であれば、フォーカスはそのコンポーネントに移動します。


認証システム

Magic xpaには認証システムが用意されています。このシステムを使用することで、ユーザの識別やパスワードの認証が可能になります。このシステムでは、エンドユーザに対するアプリケーションの実行管理のみ行うことができます。管理は、ユーザに対して権利を割当てるという方法で行います。

権利の設定は、以下の手順で行います。

  1. ［権利］リポジトリに権利を登録します。

  2. [プログラム]リポジトリの各プログラムに実行権を設定します。

  3. ユーザやグループに対して権利を割り当てます。

関連トピック：

実行/APG権利

シークレット名テーブル

HTTP認証

LDAPサーバによる認証

Activeディレクトリによる認証

セキュリティ （Mastering Magic xpa）


権利リポジトリ

ホーム > リファレンスガイド > 認証システム > 権利リポジトリ

［権利］リポジトリ

［権利］リポジトリを使用して、権利の名前とキーを定義できます。ここで定義した権利がアプリケーションの実行権として使用されます。［権利］リポジトリには、最大9,999の権利を設定できます。

開発者は、権利を定義し、これらをアプリケーションの各リポジトリやオブジェクトに割り当てることができます。権利が割り当てられたオブジェクトに対し、その権利を持っていないユーザはアプリケーションの実行時にアクセスすることができません。アプリケーションレイヤのセキュリティは、アプリケーション開発時にのみ定義できます。

［権利］リポジトリは、全てのユーザでアクセスすることができます。このため、開発時のアクセス制御は、［権利］リポジトリで行うことができません。バージョン管理ツールを利用して、管理を行う必要があります。

［権利］リポジトリには以下のカラムがあります。

カラム

内容

名前

このカラムには、例えば「登録－顧客」など、権利を示す名前を指定します。ここで指定した名前は、［利用可能権利一覧］などに表示されます。

この名前は、Rights関数のパラメータとして指定できます。

キー

このカラムには、コード名を指定します。このコード名を使用して、権利が識別されます。例えば、「顧客情報の更新権利」という例では、キーとしてXYZを使用しています。この場合、このXYZというキーをユーザの［権利テーブル］に定義することで、そのユーザに権利（例では、「顧客情報の更新権利」という権利）が付与されます。

公開

このカラムには、「Yes」または「No」のいずれかの値が設定できます。

  • Yes …… ユーザまたはユーザグループの［権利］リポジトリで定義されている権利が、プロジェクト外部から参照できるようになります。つまり、SUPERVISORが、ユーザIDまたはユーザグループに関する処理を行う場合、［権利］リポジトリを開いて権利（ただし、公開されている権利のみ）を見ることができます。

  • No …… SUPERVISORは、ユーザIDまたはユーザグループに関する処理を行っている時、［権利］リポジトリを開いて権利を見ることができなくなります。プロジェクトの重要な要素に対するアクセスを制限したい場合、通常はこの設定にしておきます。

SUPERVISORは、公開権利のキーを記録しておく必要はありません。これは、［権利一覧］に表示される権利名を使用して、その権利のキーを取得できるためです。SUPERVISORは、ユーザやユーザグループに対して非公開の権利を割当てることができます。この場合は、［権利一覧］には非公開の権利の名前は表示されません。SUPERVISORが直接、権利のキーを指定します。

通常、開発者だけに関係があり、エンドユーザには関係のない権利は、非公開にしておきます。

公開権利が表示される［権利一覧］は、プロジェクト外部にあります。また、［権利一覧］の公開権利の名前を使用して、その権利のキーを取得することもできます。このため、公開権利は、状況によっては保護する必要があります。保護したい場合、［プロジェクト特性］ダイアログで［公開権利アクセスキー］を定義します。この場合、［公開権利アクセスキー］をSUPERVISORの［権利テーブル］に定義しない限り、［権利一覧］を表示できなくなります。この公開権利アクセスキーは、SUPERVISORでも取得することはできないようになっています。

ユーザに付与されている権利は、Rights関数を使用してチェックできます。［式］エディタでこの関数を利用する場合、Ctrl+4を押下して［利用可能権利一覧］を開き、チェックする（公開）権利を選択することができます。

フォルダ

権利が登録されているフォルダ名が表示されます。権利の内容を必要に応じて整理したい場合に使用します。［ナビゲータ］ペインで権利アイコンをクリックしてハイライト状態にし、行作成（F4）を実行することで登録できます。

公開名

権利をコンポーネントとして公開する場合、このカラムにユニークな名前を入力してください。

関連トピック：

ユーザに権利を割り当てる

権利グループを定義するには


ユーザID 権利の定義

ホーム > リファレンスガイド > 認証システム > ユーザに権利を割り当てる

権利の定義

権利を定義するには

  1. ［権利］リポジトリに権利を追加します。

  2. ［権利］ダイアログで特定のMagicオブジェクトに権利を割り当てます。

  3. ［ユーザ］テーブルで特定のユーザに権利を割り当てるか、［グループ］テーブルに権利を割り当てます。

ユーザに権利を割り当てるには、

  1. SUPERVISORでログインします。

  2. ［オプション］メニューから［設定/ユーザID］を選択します。

  3. ［ユーザID］テーブルの［権利］カラムから［権利］テーブルにズームします。

  4. ［権利］テーブルに行を作成します。

  5. 権利が「公開権利」である場合、［権利］テーブルから［公開権利一覧］にズームして権利を選択できます。

  6. 権利が「未公開」である場合、それに割り当てる権利のキーを入力します。また、この方法を使用して［公開権利］を割り当てることができます。

関連トピック：

ユーザにグループメンバシップを割り当てる

グループの権利を定義する


実行/APG権利

［オプション］メニューから［権利設定］を選択すると［権利設定］ダイアログが表示されます。［実行／APG］権の設定は、［プログラム］リポジトリでのみアクセスできます。

［実行／APG］欄には、［利用可能権利一覧］から選択した権利の番号が指定されます。この権利を与えられているユーザが、プログラムを実行することができます。

［実行／APG］権は、プログラムの実行または実行不可という基本的な設定しかできません。ただし、Rights関数とUser関数を使用することで、ユーザごとにプログラムに実行または実行不可を細かく指定できます。例えば、この2 つの関数を使用して、ユーザに付与されている権利を基にカーソルの停止や入力の制限といった処理が可能です。さらに、ユーザID と、そのユーザに与えられている権利を基に、コントロールの［可視］特性を制御することもできます。そのほか、条件付きの［項目更新］コマンドを使用することで、一定範囲外の値を項目に入力できるようにするといったことも可能です。

関連トピック：

特定プログラムの実行を制限するには


HTTP認証

HTTP関数（HTTPCall関数、HTTPGet関数、HTTPPost関数）は、［コールWebサービス］や［コールWebサービスライト］処理コマンドと同じようにWebサーバを参照するURLを指定する必要があります。

URLには、認証用のユーザIDとパスワードを含めることができます。

HTTP：//User:Password@［URL］

シークレット名を使用することで以下のように指定できます。

HTTP：//%user_secretname%:%pass_secretname%@［URL］

サポートされる認証スキーマ

 | HTTP関数 | コールWebサービス | コールWebサービスライト
基本認証 | ○ | ○ | ○
ダイジェスト認証 | ○ | ○ | ○
統合Windows認証 |  | ○ |


Activeディレクトリによる認証

ホーム > リファレンスガイド > 認証システム > Active Directoryによる認証

Active Directoryによる認証

Magic xpaでは、Active Directoryに登録されているアカウントを使用してログインすることができます。これにより、ドメインにログオンされているPCからMagic xpaを起動した場合、自動的にこのドメインユーザとしてMagic xpaにもログインされます。この場合、Magic xpaのログオンダイアログは無効になります。

Active Directory認証は、Magic xpaのセキュリティファイルに登録されたグループ内のグループと、Active Directoryに定義されたグループを照合します。

注意:

Active Directory認証を使用すると、Magic xpa のセキュリティファイルを操作できなくなります。

対応するオブジェクトが見つかると、そのグループに属するすべての権利がユーザに与えられます。このスキーマの配下では、Magic xpaのセキュリティファイル内にグループだけで個々のユーザを定義する必要がありません。一旦、［システムログオン］の設定が「Active Directory」に設定された場合、Magic xpaの実行エンジンへのログオンはネットワーク上に記録されているユーザによって自動的に実行されます。

Active DirectoryまたはADSの詳細を定義するには、以下の手順で行います。

Active Directoryサーバ側のアカウント設定

［Active Directory ユーザとコンピュータ］でユーザとグループを登録します。グループのメンバにユーザを含めてください。

Magic xpaの動作環境の設定

シークレット名の登録

Supervisor でMagic xpaにログインし、［設定／シークレット名］で［シークレット名］テーブルを開きます。ここに以下のようにシークレット名を登録します。

  • 名前 …… Directory_Binding

  • 実行名 …… WinNT://ドメイン名/[ComputerName/]
    例えば、MyADSという名前をドメイン名としているActive Directory Serverをドメインサーバとして使用している場合、すべてのクライアントPCがこのドメインと接続されるのであれば、文字列（大文字小文字は区別されます、マシンの名は大文字にあります）は、「WinNT://MYADS/」と指定します。（文字列の末尾に '/' を必ず入れてください。）

WinNT://MYADS/

ユーザグループの登録

Active Directoryサーバに登録したグループ名と同じグループを登録してください。このグループにMagicオブジェクトに対する権利設定（権利キー）を割り当ててください。

注意:

グループ名をDBCS（日本語）で定義した場合、文字内容によってはMagic xpaで認識できない場合があります。できるだけ、半角の英数字を使用することを推奨します。

動作環境の設定

［動作環境］ダイアログの［システム］タブを開き、［システムログオン］を「D=Active Directory」に変更します。

これで、Magic xpaを再起動することによりActive Directoryによる認証が実行され、ステータスバーにユーザ名が表示されます。

ユーザ名が表示されない場合は、正常に認証されていません。ドメインの登録内容やシークレット名の指定を確認してください。


LDAPサーバによる認証

LDAP（システムログオン= LDAP)を使用すると、Magic xpaは、LDAP（Lightweight Directory Access Protocol)）サーバに登録されているアカウントを使用してログインすることができます。これにより、アカウントの管理はLDAPサーバ上で行うことができます。

Magic xpaは、LDAPサーバデータベース内のグループ（ユーザは、そのグループのメンバーです）に位置づけます。これらと同じ名前のグループは、セキュリティファイル（usr_std.jpn)に定義しなければなりません。これによって、Magic xpaはこれらのグループの利権をユーザに適用することができます。さらに、識別名（DN)とパスワードがLDAPサーバに送信されます。

LDAPを使用するには、以下の4つの動作環境を設定する必要があります。

  • LDAP アドレス：ポート番号

  • LDAP 接続文字列

  • LDAP ドメインコンテキスト

  • LDAP タイムアウト

LDAP認証の場合、ログインダイアログ（または Logon関数）でログオン処理を行うと、Magic xpaは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 xpaの動作環境の設定

［動作環境］ダイアログの［外部参照］タブに以下のように指定します。

  • 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@ドメイン名 （ユーザログオン名）

LDAP関数

Magic xpaは、LDAP環境での動作を支援するために、以下の関数を提供しています：

  • LDAPConnect

  • LDAPDisconnect

  • LDAPError

  • LDAPGet

  • LDAPGroupAdd

  • LDAPGroupDel

  • LDAPUserAdd

  • LDAPUserDel

  • LDAPUserGroupAssign

  • LDAPUserGroupRemove

  • LDAPUserModify


ライセンス管理

Magic xpaに内蔵されているライセンス管理は、LAN環境下で異なるPC上で実行しているMagic xpaのインスタンス間で通信を行います。ライセンス管理は、Magic Software Japan（MSJ)のライセンスに対する不慮の違反行為を防止することを支援します。ライセンス管理用モジュールにより、許可された接続数のユーザ/インスタンスのみ並行実行できるようになります。

ライセンスが無くても、デモライセンスとしてMagic xpa製品をインストールすることができます。このライセンスを使用する場合は、制限された範囲で機能を確認することが出来ます。ただし、フル機能は提供されません。インストールした製品のフル機能を利用するためには、対応する製品のライセンスコードを取得する必要があります。

Magic xpaには、ライセンス管理スキームが含まれています。

ライセンス管理システムは、主に以下の3つから構成されています。

  • ライセンスファイル …… 使用する製品のライセンス情報が保存されているテキストファイル

  • Magicエンジン …… ライセンスファイルの内容に基づいて利用できる機能を制御します。

  • ライセンスサーバ…… Magicエンジンにライセンス情報を提供したり、インストールされた製品の動作中のユーザ数を管理します。

関連トピック：

ライセンスタイプ

ライセンスサーバのインストール

ライセンス名の設定

ライセンス環境の設定

MGSTATIONS（利用しているライセンスの確認）

フローティングライセンスのサポート


ライセンスタイプ

評価ライセンス

Magic xpaを初期インストールするデフォルトでデモライセンスが転送されます。このデモ・ライセンスには日付制限はありませんが、利用できる機能が制限されてており、製品開発やミッションクリティカルなアプリケーションの実行には使用できません。

MGDEMO：開発と実行用デモライセンス

MGDEMOライセンスには、以下の制限があります：

  • アプリケーションとデータファイルの読み込み制限は、500のレコードです。

  • 利用可能なプログラムの最大数は、150です。

  • データソースの最大数は、20です。

  • 利用可能なコンポーネントの最大数は、3です。

製品ライセンス

製品ライセンスには、日付制限はありません。製品ライセンスを使用して実行する場合は、各製品の使用許諾に従ってください。

注意：

サーバ製品については、メンテナンス日付によるアップデート制限があります。


ライセンスサーバのインストール

サーバ製品（Magic xpa Enterprise Serve、Magic xpa RichiClient Server）を使用する場合は、ライセンスサーバをインストールする必要があります。

ライセンスサーバをインストールするには、以下の二つの方法があります。

  • Magic xpaのインストールを行うと製品と一緒に自動的にライセンスサーバがインストールされます。

  • 追加コンポーネントインストール処理を実行し、ライセンスサーバを選択します（Magic xpaと別のサーバPCにライセンスサーバをインストールする場合に利用します）。

Magic製品のインストール時にライセンスサーバをインストールしないように指定した場合、使用するライセンスサーバを指定するダイアログが表示されます。既にインストールされているライセンスサーバを指定してください。

ライセンスサーバは、C:\FlexlM フォルダ固定でインストールされます。

関連トピック：

サーバライセンス用のホストIDを取得

ライセンス管理用アイコン


サーバライセンス用のホストIDを取得する

ホーム > リファレンスガイド > ライセンス管理 > ライセンスサーバのインストール > サーバライセンス用のホストIDを取得

サーバライセンス用のホストIDを取得

ライセンスサーバが実行されているサーバPCのホストIDを取得するには、以下の二つの方法があります。

ライセンスマネージャーを使用する

ライセンスマネージャを起動して、［ホストID表示］ボタンをクリックすると表示されます。

FlexLM用ユーティリティを使用する

コマンドプロンプトを起動し、以下のようにコマンドを実行します。

Lmutil lmhostid

以下のようなメッセージが表示されます。

lmutil - copyright (c) ...

The FLEXlm host ID of this machine is "..."

ホストIDは、ダブルクォーテーション内に表示されます。

注意：

  • サーバPCのネットワーク環境によっては、複数のホストIDが表示される場合があります。

  • NetBIOS over TCP/IP が無効な場合、ホストIDが取得できなくなる場合があります。


ライセンス管理用アイコン

ライセンスサーバをがインストールされると、Magic xpaのプログラムメニュー内の［ライセンスサーバ］に以下の3つのショートカットが作成されます：

  • ライセンスサーバの起動 …… ライセンスサーバを起動します。

  • ライセンスサーバの停止 …… ライセンスサーバを停止します。

  • ライセンスファイルの表示 …… License.datファイルを表示します。

（インストーラのデフォルト処理の場合）ライセンスサーバは、タスクスケジューラに登録され、サーバPCが起動されると自動的に起動されます。ライセンスサーバを自動的に起動させたくない場合は、Magic xpaのインストール時に、「手動」を指定するか、インストール後に、タスクスケジューラから削除してください。


ライセンス名の設定

システム管理者によって登録されたライセンス情報に基づいて、実行させるMagic xpaのライセンス名を設定する必要があります。このため、システム管理者は、使用するMagic製品のライセンスの追加／削除／修正に関する情報をユーザに通知する必要があります。

ライセンス名は、［動作環境］の［ライセンス］または、MAGIC.INIの "LicenseName" パラメータを修正することで変更できます。

注意：

変更されたライセンスを有効にするには、Magicエンジンを起動し直す必要があります。


ライセンス環境の設定

［動作環境］の［ライセンスファイル］では、License.datファイルの位置または、ライセンスサーバを指定します。この設定は必須です。指定しない場合、Magic xpaはライセンスファイルを検索して読み込むことはできません。

ライセンスファイルやライセンスサーバを指定する場合は、以下の書式で指定します。（下記の例は、ライセンスファイルとライセンスサーバを混在して指定した例です。通常は、どちらか一方を指定します。）

licensefilepath;portnumber@hostname

  • licensefilepath …… ライセンスサーバが見つからない場合に参照する、代替のLicense.datのパス。例：C\license.datにように指定します。

  • portnumber …… ライセンスサーバのTCP/IPのポート番号。Magic xpaではデフォルトが744になっています。

  • hostname …… ライセンスサーバがインストールされたサーバPCのホスト名

複数の代替license.datファイルをセミコロン区切りで指定することができます。例：

LicenseFile = C:\FlexLM\license.dat;D:\magic xpa\License.dat;744@KERENS_LP

ライセンスファイルの位置付

Magic xpaを利用する場合は、製品ライセンスが定義された常にアクセスできるライセンスファイルが必要です。MAGIC.INIのLicenseFileパラメータで定義された内容に基づいてMagicエンジンはライセンスを探します。

利用可能なユーザ／インスタンス数を超えた場合

利用可能なユーザ／インスタンス数を超えてc使用した場合、Magic xpaはユーザ数の最大数に達したことを通知するエラーメッセージを表示します。


フローティングライセンスのサポート

デフォルトでは、各Magicサーバがプロジェクトを実行する際に使用するライセンス数を予め定義しなければなりません。この数が指定されたライセンス数の範囲内であることを確認するために、マルチプロジェクト環境においてすべてのサーバに対してチェックされます。たとえば、20スレッドのライセンスを使用してマルチプロジェクト環境で実行する2つのプロジェクトがある場合、前もってスレッドの配分を行っておく必要があります。プロジェクトBが5スレッドを使用しているのであれば、プロジェクトAは15のスレッドを使用するようにできます。

マルチプロジェクト環境では、各サーバは、異なるプロジェクトを実行します。これは、各サーバ（プロジェクト)の性能が重要になることを意味しています。そして、ライセンス（スレッド)を共有する能力が非常に重要になります。

Magic xpaのフローティングライセンス機能は、ライセンスをサーバで分配することによって、マルチプロジェクト環境でこれらのライセンスを最適に利用することができます。したがって、特定のプロジェクトが何もしていない場合、他のプロジェクトはそのライセンスも利用することができます。

MRBがサーバとアプリケーションの能力をコントロールするため、そのサーバで利用できるライセンスの総数を知っておく必要があります。MRBは定義されたライセンスに基づいて各サーバが利用しているスレッドの最大数（またはユーザ数の最大値）を合計します。最大スレッド数が"-1"として定義されたサーバは除きます。MRBは、利用できるスレッド／ユーザの総数として、この数値を使用します。MRBが特定のサーバで割り当てられたスレッド／ユーザ数を使用していないことを確認すると、これらのスレッド／ユーザは他のサーバで使用することができます。

この機能を使用するには、以下の手順に従ってください。

  1. ［最大並行リクエスト数］>=0または、［最大並行ユーザ数］>=0（RIAの場合）にしたサーバを定義します。この設定を行うと、少なくとも1つのサーバがライセンスの数だけチェックアウトしなければなりません。0に設定した場合、Magicエンジンはライセンスで定義された全てのライセンスをチェックアウトします。

  2. 他の全てのサーバでは、［最大並行リクエスト数］または［最大並行ユーザ数］（RIAの場合）を「-1」に設定します。これは、サーバがライセンスをいくつかのスレッドを、チェックアウト済みのエンジンと共有することを意味しています。

  3. mgrb.iniで、FloatingLicenseフラグを「Y」に設定します。

注意：

  • バックグラウンドモードで実行しているアプリケーションサーバエンジン（ActivateRequestsServer = Y)のみが、FloatingLicense= Yで動作しているMRBによってプールされたライセンスを共有することができます。

  • フォアグランド（DeploymentMode=R)で実行しているサーバは、フローティングライセンスモードのMRBには登録されません。しかし、Magic xpa Studoはフォアグラウンドで実行していてもフローティングライセンスモードのMRBに登録されます。

  • MRBは、モバイル用ライセンス（Magic xpa RIA Server for Mobile)では、フローティングライセンスをサポートしません。


コンポーネント

プロジェクトのオブジェクトをコンポーネントとして定義することができます。コンポーネントを出力することにより、Magicプロジェクト間でリソースを共有することができます。また、プロジェクトの修正内容を簡単に配布することもできます。

Magic xpaには、WebサービスやCOMオブジェクトなどをMagic xpaのコンポーネントとして利用するためのウィザードツールが提供されています。また、コンポーネントインタフェースビルダを使用することで、Magic xpaのオブジェクトを外部からアクセスできるコンポーネントを作成することもできます。

コンポーネントは、［コンポーネント］リポジトリに一覧表示されます。画面には、他のプロジェクトと共有できるオブジェクトが表示されます。共有できるオブジェクトは次のとおりです。

  • モデル …… モデルは、コンポーネントとして定義する上で有効なオブジェクトです。プロジェクト間で使用するモデルの汎用的なコンポーネントを作成することができ、プロジェクトを簡素化することができます。例えば、電子メールを作成するアプリケーションをコンポーネント化した場合、ホストアプリケーションでは、パラメータ用に必要となるモデルを公開することができます。しかし、コンポーネント内でしか使用しないモデルは公開する必要はありません。
    公開するモデルには、公開名を定義する必要があります。コンポーネントの作成を行う際、公開名が定義されていないモデルは参照することができません。

  • データソース …… データソースは、モデルと同じように公開されます。公開したいデータソースには、公開名を定義してください。コンポーネントアプリケーション内でのみ使用するデータソースは公開する必要がありません。ホストアプリケーションのプログラムでテーブルを使用する必要がある場合、データソースを公開する必要があります。

  • プログラム …… プログラムを公開する場合は、各プログラムに公開名を定義する必要があります。また、［外部］チェックボックスをチェックする必要もあります。

  • ヘルプ …… ヘルプオブジェクトをモデルやデータソースと同じように公開します。公開したい各オブジェクトに公開名を定義してください。

  • 権利 …… 権利をモデルやデータソースと同じように公開します。公開したい各オブジェクトに公開名を定義してください。

  • メニュー …… メニューをモデルやデータソースと同じように公開します。公開したい各オブジェクトに公開名を定義してください。

  • イベント …… 公開したいイベントは、公開名を定義しさらに［公開］チェックボックスをチェックしてください。

  • 関数 …… メインプログラムに定義されたユーザ定義関数を公開することができます。公開したいユーザ定義関数の［スコープ］特性を「グローバル」に設定してください。

  • 動作環境

読み込まれたコンポーネントは、他のプロジェクトに統合され、［コンポーネント］リポジトリに表示されます。コンポーネントオブジェクトは、オブジェクト一覧から選択できます。

色とフォント

アプリケーションがコンポーネントとして使用されると、プロジェクトに設定された色とフォントは無視されます。

コンポーネントを作成する際、色とフォントの定義番号を大きめ（500または、520より大きく）に定義するようにしておくことを推奨します。

インデックスの分離が必要な場合は、ホストと同じ色のインデックスを使用するコンポーネントを回避することになります。

関連トピック：

コンポーネント （Mastering Magic xpa）


コンポーネントリポジトリ

［コンポーネント］リポジトリは、外部コンポーネントへの呼び出しが全て含まれています。

［プロジェクト］メニューまたは［ナビゲータ］ペインから［コンポーネント］を選択するか、Shift+F7を押下することで［コンポーネント］リポジトリにアクセスすることができます。

［コンポーネント］リポジトリでは、以下のことができます。

  • ［オプション］メニューから［読込/再読込］を選択することで、コンポーネントインタフェースの読込または、再読込を行います。ECIファイルが読み込まれると、Magic xpaはインタフェース内に定義されたコンポーネントタイプをチェックし、それに応じてリソースの［タイプ特性］を変更します。

  • 外部リソースと接続するコンポーネントを作成し、コンポーネントのインタフェースを作成するウィザードを起動します。

  • ［名前］カラムからズームして、コンポーネントインタフェースファイルを参照することができます。

  • コンポーネントに権利を割り当てることができます。

  • 特定のコンポーネントタイプに位置付ける、位置付け機能が使用できます。

注意：

  • 128行まで定義できますが、コンポーネントを大量に定義した場合、Magicアプリケーションの起動に時間がかかる場合があります。

  • /* ... */ という書式でコメントを定義した場合、［コンポーネント一覧］の［説明］欄にコメントが表示されます。

関連トピック：

［コンポーネント］リポジトリのカラム

コンポーネントの読み込み

コンポーネントの削除

コンポーネント特性

コンポーネント項目

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

コンポーネント特性

［CRR_INTERFACES］セクション

INIPut関数の動作

メインプログラムとコンポーネント

プロジェクトにコンポーネントを読み込むには


コンポーネントリポジトリ カラム

ホーム > リファレンスガイド > コンポーネント > コンポーネントリポジトリ > ［コンポーネント］リポジトリのカラム

［コンポーネント］リポジトリのカラム

［コンポーネント］リポジトリには、以下のカラムがあります。

特性

説明

#

内部で自動的に作成される連番です。

アイコンが番号の次に表示されている場合は、コンポーネントの読み込みに失敗したことを示しています。アイコン上をカーソルが通過するとエラーメッセージが表示されます。

名前

Magicコンポーネントの場合

ECIファイルに定義されたコンポーネント名。修正することができます。

ここからズームすると以下のように動作します。

  • コンポーネントがまだ選択されていない場合は、［ファイルを開く］ダイアログボックスが開きコンポーネントインタフェースファイル(ECI)を選択することができます。

  • コンポーネントがすでにロードされてる場合、コンポーネント項目が表示されます。

.NETコンポーネントの場合

.NETアセンブリ名。名前が30桁を越えた場合、30桁分のみ表示されます。

ここからズームすると以下のように動作します。

  • コンポーネントがまだ選択されていない場合は、［.NETアセンブリ選択］ダイアログボックスが開きます。

  • コンポーネントがすでにロードされてる場合、［.NETアセンブリ特性］ダイアログdsが表示されます。

説明

Magicコンポーネントの場合

ECIファイルに定義されたコンポーネントの情報が表示されます。

NETコンポーネントの場合

アセンブリ名が表示されます。

タイプ

Magicコンポーネントか、.NETアセンブリかを選択することができます。まだ何も選択されていない場合のみ選択可能です。

デフォルトは｢Magic xpa｣で、Magicコンポーネントとして扱われます。

フォルダ

コンポーネントのエントリが保存されるフォルダを指定します。

［.NETエイリアス］ボタン

このボタンをクリックすると､［.NETエイリアス］ダイアログが開きます。CRRに.NETアセンブリに対する参照が一回以上含んでいる場合に有効です。

注意：

コンポーネント上でAlt+Enterを押下すると［コンポーネント特性］にアクセスすることができます。

Magicコンポーネント内で定義されたアセンブリは､ホストプロジェクトではアクセスできません。このため、コンポーネント側で.NET型のモデルやプログラムのパラメータを公開した場合、ホスト側でもこのアセンブリに対する参照定義を追加する必要があります。

関連トピック：

コンポーネント特性

.NET アセンブリ特性


コンポーネントリポジトリ コンポーネントの読込 .NETアセンブリの選択

ホーム > リファレンスガイド > コンポーネント > コンポーネントリポジトリ > .NET アセンブリの選択

.NETアセンブリの選択

［.NETアセンブリ選択］ダイアログには、以下のタブが含まれています。

  • .NET …… GAC（グローバル・アセンブリ・キャッシュ）から取得された､すべての.NETアセンブルのバージョンとパスが表示されます。MSIL(Microsoft Intermediate Language)に設定されたアセンブルのみ表示されます。.

  • 参照 …… .NET対応の外部dllや.exeを選択するためのダイアログが表示されます。

  • 最近 …… 最近選択された.NETアセンブリが表示されます。

［タイプ］カラムが｢.NET｣に選択された場合、［コンポーネント］リポジトリの空白の［名前］カラムからズームするとこのダイアログボックスが表示されます。

複数のアセンブリを選択することができます。

注意：

コンポーネント内で異なるバージョンの同じアセンブリを定義しても、1つのバージョンだけがロードされます。

オフラインタスク

オフラインプログラムで使用される場合、［コンポーネント］リポジトリで定義されたサードパーティの.NETアセンブリは自動的にクライアントにはダウンロードされません。

オフラインプログラムがサードパーティの.NETアセンブリを使用する場合は、予めこれらをクライアント上にインストールするか、最初の起動時にアセンブリをクライアントへコピーするためにServerFileToClient関数を使用しなければなりません。


コンポーネントリポジトリ コンポーネントの読込 .NETアセンブリ特性

ホーム > リファレンスガイド > コンポーネント > コンポーネントリポジトリ > .NET アセンブリ特性

.NETアセンブリ特性

［.NETアセンブリ特性］ダイアログは、アセンブリの詳細が表示されます。［パス］と［バージョン］以外のすべての特性は、表示のみです。

.NETコンポーネントからAlt+Enterを押下することでダイアログにアクセスできます。

このダイアログには、以下の特性があります。

特性

内容

カルチャ

アセンブリメソッドのカルチャ（言語などの情報）フィールドの値

内容

アセンブリメソッドのタイトルフィールドの値

ID

参照されるアセンブリのセキュリティID

パス

参照するファイルのパス。パスを変更した場合、アセンブリを再読込します。

このフィールドに対応するエイリアスを利用することを推奨します。

アセンブリは、グローバルなアセンブリキャッシュ（GAC)から、最初に読み込まれます。アセンブリがGACで見つからない場合は、以下のように動作します。

  • オンラインアプリケーションの場合は、このパスからアセンブリが読み込まれます。

  • （非オフラインの）リッチクライアントアプリケーションの場合は、サーバはこのパスからアセンブリを読み込み、クライアントにコピーします。

オフラインプログラムがサードパーティの.NETアセンブリを使用する場合は、予めこれらをクライアント上にインストールするか、最初の起動時にアセンブリをクライアントへコピーするためにServerFileToClient関数を使用しなければなりません。

.NETを実行する上の注意事項も参照してください。

レゾルブ

参照情報が、パスを解決しているかどうかを示しています。

実行バージョン

このアセンブルが再度コンパイルされたバージョン

バージョン指定

この参照がアセンブリの特定バージョンかどうかを指定します。

厳密名

「True」の場合は、参照が相互キーで認証されていることを示しています。

バージョン

参照のバージョン

注意：

  • コンポーネント内で異なるバージョンの同じアセンブリを使用すると、1つのバージョンだけがロードされます。

  • Ver4.0の.NETアセンブリは、サポートしていません。


コンポーネントリポジトリ コンポーネントの読込 .NETエイリアス

ホーム > リファレンスガイド > コンポーネント > コンポーネントリポジトリ > .NET エイリアス

.NET エイリアス

［.NETエイリアス］ダイアログには、アセンブリ名の代わりに使用するエイリアスを定義することができます。

このダイアログボックスを使用することで、エイリアスとそのフルネームを簡単に定義することができます。［.NETタイプ］カラムには、オートコンプリート機能を利用して実際の.NETアセンブリ名をカンマ区切りで指定します。

エイリアスはグローバルで、アセンブリ単位ではありません。

重複したエイリアスは指定できません。

ここで作成されるエイリアスは、［コール.NET］処理コマンドの［.NETコード］ダイアログでは利用できません。


コンポーネントリポジトリ コンポーネントの読込

ホーム > リファレンスガイド > コンポーネント > コンポーネントリポジトリ > コンポーネントの読み込み

コンポーネントの読み込み

空のコンポーネント行を作成し、ズームすると［ファイルを開く］ダイアログが開きます。ここで、コンポーネントインタフェースファイル（*.eci）や.NETアセンブリを選択することができます。［オプション］メニューの［読込／再読込］ を選択して同じように選択することもできます。コンポーネントインタフェースとそれに対応するプロジェクトファイルが読み込まれます。

一旦コンポーネントがプロジェクトに読み込むと、インタフェースが変更されない限り、再読込する必要はありません。

しかし、新しい項目をコンポーネントとして追加したり、パラメータを既存の項目として変更した場合、コンポーネントを再読込する必要があります。これは、Magic xpa Studio内で行い、新しいeciファイルを作成する必要があります。この場合、以下のような手順を実行します。

  1. コンポーネントを変更します（例えば、新しいプログラムやデータソースまたはモデルの追加を行います）。

  2. 変更内容を反映した.ECIファイルを再作成します。変更前のコンポーネントはコンポーネントリストにあるはずです。このため、最初から作成する必要はなく、変更内容を追加するだけになります。好みに応じて、変更の経緯を確認するためのバージョン番号を変更することができます。

  3. ［コンポーネント］リポジトリで、再読み込みしたいコンポーネントを選択し、［オプション］メニューの［読込/再読込］を選択します。これによって、.eciファイルを選択するダイアログボックスが開きます。

  4. ［開く］をクリックすると、コンポーネントは再度読み込まれます。これによって、追加された項目が表示されます。

注意：

読込/再読込の使用は、非常に重要です。古いコンポーネントを削除して、新しいコンポーネントを再登録した場合、コンポーネントオブジェクトに対する全ての内部リンクが失われるからです。


コンポーネントリポジトリ コンポーネントの削除

ホーム > リファレンスガイド > コンポーネント > コンポーネントリポジトリ > コンポーネントの削除

コンポーネントの削除

コンポーネントを削除すると、プロジェクトファイルからコンポーネントインタフェースが削除されます。プロジェクト内のコンポーネントへの参照は削除されません。削除されたコンポーネントにアクセスしようとすると、参照先が不明であることを示す2つのクェスチョンマーク（??）が表示されます。

プロジェクト内のコンポーネントへの参照は削除されず、エラーが表示されます。


コンポーネントリポジトリ コンポーネント特性

ホーム > リファレンスガイド > コンポーネント > コンポーネントリポジトリ > コンポーネント特性

コンポーネント特性

特定のコンポーネントにカーソルをパークした状態で、Alt+Enterを押下するか、コンテキストメニューから［特性］を選択すると、［コンポーネント特性］ダイアログボックスが表示されます。ここには、［汎用特性］と［設定］の２つのセクションがあります。

［汎用特性］セクションには、以下の特性があります。

  • レビジョン …… コンポーネントのレビジョン番号が表示されます。

  • プロジェクトファイル名

  • キャビネットファイル名

  • 即時有効 …… プロジェクトの読込の際にコンポーネントも読み込むかどうかを指定します。デフォルトは、読み込むように設定されています。変更することができます。この特性が選択されていると、プロジェクトのオープン時にコンポーネントも読み込まれます。選択されない場合は、コンポーネントが最初に使用される時点で読み込まれます。デフォルト値は、ECIから読まれますが、修正することもできます。
    並行実行プログラムを使用している場合、この特性はより効果的に働きます。最初のメインプログラムの［タスク特性］の定義によって、新しいコンテキストが実行されると、その都度メインプログラムを実行させることができます。この場合、並行タスクがそれを使用するかどうかにかかわらず、すべての新規タスクはコンポーネントを再読み込みします。従って、どのようにコンポーネントが使用されるかによって、この特性の設定内容を慎重に決める必要があります。

注意：

キャビネットファイルが指定されていないコンポーネントはオープンすることができません。また、プロジェクトファイルとキャビネットファイルの内容が異なる場合も正しく読み込むことができなくなります。

［設定］セクションには、以下の特性があります。

  • ヘルプファイル …… コンポーネントについての説明が記述されたWindowsヘルプファイル名が表示されます。デフォルトのパスは、ECI と同じです。ファイル名はECIの中に設定されていますが、変更可能です。

  • ヘルプキー …… コンポーネントについての説明が記述されたWindowsヘルプファイル名の該当するヘルプキー（キーワード）が表示されます。変更可能です。

このダイアログボックス内の入力内容は、.eciから読み込まれた値によってデフォルト設定されていますが、値のほとんどを変更することができます。

特に、プロジェクトファイルとキャビネットファイル名の指定は重要です。ここには、各ファイル名が定義されていますが、アプリケーションを配備する際に、ホストアプリケーションが実行環境でコンポーネントにアクセスできるように、相対パスや論理名を使用するようにしてください。

関連トピック：

使用コンポーネント


コンポーネントリポジトリ コンポーネント項目

ホーム > リファレンスガイド > コンポーネント > コンポーネントリポジトリ > コンポーネント項目

コンポーネント項目

［コンポーネント］リポジトリの［名前］カラムからズームすると、［コンポーネント項目］テーブルが表示されます。

コンポーネントインタフェースは、コンポーネントに含まれている項目に基づきます。Magicコンポーネント項目は、タブで構成されています。

各タブには、リポジトリのタイプ（モデル、データ、プログラムなど)が表示されます。個々のコンポーネント項目は、コンポーネント項目のタイプごとに表示されます。

各タブには、以下のカラムが含まれています。

カラム | 内容
# | 自動的に生成される連番
名前 | 項目の名前が表示されます。
公開名 | 項目に定義されている公開名が表示されます。
コメント | 項目に関する情報が表示されます。

［環境設定］ボタンをクリックすると、コンポーネントの［動作環境］テーブルにアクセスできます。

これらの項目がどこで使用されるかを確認するには、ここからクロスリファレンスユーティリティ(Ctrl+F）を使用することができます。コンポーネントを変更したり削除する必要がある場合、事前に確認することが非常に重要です。

デフォルトでは、コンポーネントのコメントは公開されません。コンポーネントの［アプリケーション特性］の［コンポーネントとして使用する場合、コメントを公開］のチェックボックスをチェックすることによって公開することができます。

関連トピック：

コンポーネントのオブジェクトに関する詳細情報を参照するには


コンポーネントリポジトリ 動作環境

ホーム > リファレンスガイド > コンポーネント > コンポーネントリポジトリ > 動作環境のコンポーネント

動作環境のコンポーネント

動作環境のコンポーネントは、対応するコンポーネントオブジェクトがアクセスするものです。動作環境のコンポーネントは、［コンポーネント項目］テーブルに表示されている［環境設定］ボタンをクリックすることで表示されます。

コンポーネントで指定されなかった動作環境は、プロジェクトの動作環境が継承されます 。コンポーネントと関連付けることができる環境情報には、以下のものがあります。

西暦基準年

バッチイベント間隔

修正モードでの登録許可

照会モードでの修正許可

ISAMトランザクション

キーボード休止秒数

カーソルの画面中央位置付

修正後の再位置付

日付タイプ

コンポーネントが新規プロジェクトに読み込まれると、MAGIC.INIファイルに次の特性設定が追加されます。

データベース特性

DBMS特性

サーバ特性

サービス特性

論理名

コンポーネントに関係する特性を識別する追加行の前にコメントが表示されます。

コンポーネントが新規プロジェクトに読み込まれると、コンポーネントと関連付けられた特性は、全てのプロジェクトのオブジェクトで利用することができます。

コンポーネントを削除しても、MAGIC.INIファイルに追加されたコンポーネントに関する設定行は削除されません。

関連トピック：

INIPut関数の動作


コンポーネントリポジトリ INIPut関数の動作

ホーム > リファレンスガイド > コンポーネント > コンポーネントリポジトリ > INIPut関数の動作

INIPut関数の動作

マルチスレッドモードでMagic xpaが動作している場合、INIPut関数の動作は、エンドユーザがコンポーネントにアクセスするコンテキストによって異なります。エンドユーザがコンポーネントのタスクにアクセスしてINIPut関数を使用する場合、次のように動作します。

  • ［強制書き込みフラグ］が「True」の場合、MAGIC.INIが更新され、変更内容は全てのアクティブなコンテキストに影響を及ぼします。

  • ［強制書き込みフラグ］が「False」で、動作環境の変更内容がコンポーネントのタスクに関連付けられている場合、変更内容は現在のコンテキスト内の全てのプログラムに影響を及ぼします。エンドユーザがコンポーネントタスクを再開した場合、環境設定値は、コンポーネントと関連付けられている環境特性から再度受け取る必要があります。

  • ［強制書き込みフラグ］が「False」で、環境設定値がコンポーネントに指定されていない場合、この環境設定値は現在のタスクに対してのみ更新されます。

リッチクライアントタスク

INIPut関数の強制書込フラグは、Falseと評価された場合、関数はニュートラルと動作し、サーバ/クライアントにはアクセスしません。サーバ/クライアントでのコンテキストは、次のアクセス時に更新されます。

強制書込フラグは、Trueと評価された場合、関数は実行の直後に（INIファイルを即更新するため）サーバにアクセスします。


コンポーネントリポジトリ パラメータ一覧

ホーム > リファレンスガイド > コンポーネント > コンポーネントリポジトリ > パラメータ一覧

パラメータ一覧

パラメータを持つコンポーネントプログラムを読み込んだ場合、［プログラム］テーブルでズームすると［パラメータ一覧］が表示されます。ここでパラメータの内容を確認できます。

このテーブルには以下のカラムが表示されています。

カラム | 内容
パラメータ名 | パラメータ名が表示されます。
型 | パラメータの型が表示されます。
書式 | パラメータの書式が表示されます。


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

Magic xpaは、以下のウィザードを提供します。これらは、外部リソースを使用したコンポーネントを作成したり、外部リソースに基づく既存のコンポーネントを修正することができます。

  • ストアドプロシジャ

  • Webサービス

  • Java

  • MSMQサポート

［オプション］メニューから［コンポーネントジェネレータ］を選択するか、Ctrl+Shift+Gを押下するとウィザードにアクセスすることができます。

ジェネレータは、各コンポーネントに対して、プロジェクトファイルとECIファイルを作成します。

例えば、通貨換算のWebサービスにアクセスするコンポーネントを作成するために、Webサービスウィザードを使用することができます。

Magic xpaが提供するウィザードは、以下のディレクトリにあります。

<Magic xpaのインストールディレクトリ>\Add_On\CRR\Wizards

関連トピック：

メインウィザードモジュール


コンポーネントジェネレータ [CRR_Interfaces]

ホーム > リファレンスガイド > コンポーネント > コンポーネントジェネレータ > [CRR_INTERFACES] セクション

[CRR_INTERFACES] セクション

CRRオプションの構文は、MAGIC.INIファイル内の[CRR_Interfaces]セクションで定義されます。

Magic xpaのインストール時に以下のデフォルトのパラメータが設定されます。

[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_INTERFACES] セクション > CRRエントリの定義

CRRエントリの定義

各CRRエントリは、以下の構文で定義されます。

コンポーネント名 = キャビネットファイル名, 起動プログラム, コンポーネントタイプ, セットアップ文字列

各パラメータの内容は以下の通りです。

  • コンポーネント名 …… メインウィザード画面に表示されるコンポーネント名です。ユニークな名前を指定してください。

  • キャビネットファイル名 …… コンポーネントアプリケーションのキャビネットファイルの名前をフルパスで指定します。

  • 起動プログラム …… ウィザードによって起動されるプログラムの公開名。ウィザードの開始場所を示しています。Magic xpaによって提供されたウィザードは、「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 xpaのインストールディレクトリ>\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サービスにアクセスするコンポーネントを作成するために使用されます。

［Webサービス］コンポーネントジェネレータを使用して、以下の手順でコンポーネントを作成します。

  1. メインウィザードの操作手順に従って、コンポーネントジェネレータを起動します。

  2. ［Webサービスの詳細］ダイアログを開き、以下のパラメータを設定します。

特性 | 内容
コンポーネントタイプ | ここには、選択されたコンポーネントのタイプ名が表示されます。
コンポーネント名 | この欄は必須入力です。コンポーネント名を入力します。］
コンポーネントの場所 | コンポーネント用の関連ファイルが作成されるフォルダを指定します。［参照］ボタンをクリックして選択することができます。
キャビネットファイル名 | コンポーネント用のキャビネットファイルが作成されるフォルダを指定します。デフォルト名はコンポーネント名に依存します。

  3. ［詳細］ボタンをクリックすると、作成するコンポーネントの詳細情報を入力することができます。

  4. ［拡張］ボタンをクリックすると、作成するコンポーネントの追加特性を入力することができます。以下の特性があります。

特性 | 内容
即時有効 | この特性が選択されると、アプリケーションがオープンされた時点で直ちにコンポーネントが読み込まれます。Webサービスコンポーネント用にユーザ定義関数が作成されますが、この関数が即有効にするために、即時有効をチェックする必要があります。従って、Webサービスコンポーネントでは、この特性が選択状態で、変更できないようになっています。
インタフェース名と場所 | インタフェースファイル(ECI)の名前とパスを指定することができます。
プロジェクトファイルを保存 | プロジェクトファイルがコンポーネント作成処理の終了時に保存するかどうかを指定します。このオプションを選択しないと、プロジェクトファイルは作成されません。プロジェクトファイルを保存しない場合、任意にコンポーネントをカスタマイズすることができません。
モジュールとしてプロジェクトに保存 | プロジェクトファイルを保存する場合、作成したプロジェクトをモジュールとして現在のプロジェクトに追加するかどうかをこのチェックボックスで選択できます。

  5. ［Webサービスの場所］ダイアログで、［SDL URL］または［UDDI検索］オプションをクリックします。

［WSDL URL］を選択した場合

    1. ［WSDL URL］を選択した場合、WSDLのパスを入力します。［WSDL URL］欄には、最大256文字まで入力することができます。入力欄をダブルクリックすることで、ディスクの上のWSDLファイルを検索することができます。

    2. ［次へ］をクリックするとMagic xpaは指定されたWSDLファイルをアクセスし、構文解析を行います。WSDLファイルが存在しなかったり、不正なものであった場合、エラーメッセージが表示されます。

［UDDI検索］オプションを選択した場合

    1. ［UDDI検索］オプションを選択した場合、［UDDIサーバと検索文字列］ダイアログが表示されます。

    2. ［UDDIサーバと検索文字列］ダイアログ内では、サービスを検索するために、UDDIサーバと検索文字列を入力します。検索文字列では、ワイルドカードとして「%」を使用することができます。
      例えば、Windows2003 Server のUDDIサービスにアクセスする場合は、以下のようなURLを指定します。

http://Servername/uddipublic/inquire.asmx

    3. ［次へ］をクリックすると、［サービス選択］ダイアログが表示されます。ここでは、使用したいサービスを選択します。このダイアログには、検索文字列によって照合されたサービスが表示されます。WSDLファイル(アクセスポイント)を持っているサービスのみ表示されます。サービスを選択して［次へ］をクリックすると［アクセスポイントの選択］ダイアログが表示されます。

    4. ［アクセスポイントの選択］ダイアログには、選択されたサービスに対しアクセスポイントが複数存在する場合、アクセスポイントが選択できます。また、このサービスに関する詳細情報も表示されます。

（以下共通）

  5. ［次へ］をクリックすると、［処理の追加］ダイアログが表示され、WSDLに定義されている処理の一覧が表示されます。この中から、使用したい処理を選択します。少なくとも1つの処理を選択してください。
    WSDLファイル内に処理が定義されていない場合、［Webサービスの位置］ダイアログに戻ります。

  6. ［次へ］をクリックすると、［パラメータの変更］ダイアログが表示されます。ここには、WSDLに定義されているデータタイプと対応するMagic xpaのデータタイプが表示されます。［書式］のみ変更できます。

  7. ［次へ］をクリックすると、［コンポーネントの詳細］ダイアログが表示されます。ここには、作成するコンポーネントの情報が表示されます。この内容でよければ、［終了］をクリックしてください。Webアプリケーション（コンポーネント）が作成されます。

  8. ［Webサービス］コンポーネントジェネレータを使用し終えたら、作成されたプログラムを確認してください。詳細は、「作成されるWebサービスコンポーネント」を参照してください。

注意：

  • コンポーネント名にDBCSコード（全角及び半角カタカナ）を含めないようにしてください。

  • ［SOAP Spyのアドレス］こアドレスが設定された場合、SOAP Spyが実行していない状態で実行するとWSDLのURLのアクセスができません。


コンポーネントジェネレータ Webサービス 作成されたコンポーネント

ホーム > リファレンスガイド > コンポーネント > コンポーネントジェネレータ > Webサービス コンポーネントジェネレータ > 作成されるWebサービスコンポーネント

作成されるWebサービスコンポーネント

［Webサービス］コンポーネントジェネレータ使用すると、以下のようなコンポーネントが作成されます。

  • メインプログラムに以下の変数項目が作成されます。

  • Success（論理型

  • Fault (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

［次へ］をクリックします。

  5. ［ストアドプロシージャ選択］ダイログで、使用するストアドプロシージャを選択します。このダイログには、データベースから取得されたストアドプロシージャが表示されます。

  6. ストアドプロシージャ上にパークしている間、［SPを表示］ボタンをクリックするとストアドプロシージャの内容が表示されます。［OK］をクリックし、［次へ］をクリックします。

  7. ［書式の設定］ダイログには、フィールドに対応するMagic xpaのデータタイプが表示されます。書式のみ変更できます。［次へ］をクリックします。

  8. ［コンポーネントの詳細］ダイアログが表示されます。ここには、作成するコンポーネントの情報が表示されます。この内容でよければ、［終了］をクリックしてください。

  9. ［ストアドプロシージャ］コンポーネントジェネレータを使用し終えたら、作成されたプログラムを確認してください。詳細は、「作成されるストアドプロシージャコンポーネント」を参照してください。

注意：

このウィザードを使用して、戻り値を返すストアドプロシージャを作成することができますが、フォームにテーブルの内容を表示するようなオンラインタスクを作成することはできません。

コンポーネント名にDBCSコード（全角及び半角カタカナ）を含めないようにしてください。


コンポーネントジェネレータ ストアドプロシジャ 作成されたコンポーネント

ホーム > リファレンスガイド > コンポーネント > コンポーネントジェネレータ > ストアドプロシージャコンポーネントジェネレータ > 作成されるストアドプロシージャコンポーネント

作成されるストアドプロシジャコンポーネント

［ストアドプロシジャ］コンポーネントジェネレータ使用すると、以下のようなコンポーネントが作成されます。

  • 指定したストアドプロシジャに対応した公開プログラムが作成されます。

  • 各ストアドプロシジャ用パラメータに対応した、パラメータ項目が定義されます。パラメータ項目は、モデルを使用するように定義されます。

  • ストアドプロシジャにアクセスするために、各プログラムはダイレクトSQLを使用するように定義されます。

  • パラメータ項目は、入力パラメータとしてダイレクトSQLステートメントに追加されます。

  • 戻り値は、出力パラメータとして追加されます。

  • ダイレクトSQLステートメントを生成するために、入／出力パラメータは「参照渡し」にする必要があります。

  • Oracleの場合、出力項目もパラメータとして作成されます。


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

ホーム > リファレンスガイド > コンポーネント > コンポーネントジェネレータ > MSMQコンポーネントジェネレータ

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

このウィザードは、Magic xpaのMSMQ機能に簡単にアクセスすることができるコンポーネントを作成することができます。

［MSMQ］コンポーネントジェネレータを使用して、以下の手順でコンポーネントを作成します。

  1. メインウィザードの操作手順に従って、コンポーネントジェネレータを起動します。

  2. ［コンポーネントの選択］ダイアログから「MSMQ」を選択し、［次へ］をクリックします。

  3. ［コンポーネント詳細］ダイログに詳細情報を入力し、［次へ］をクリックします。

  4. ［キューアドレス］ダイアログから、どのようにキューにアクセスするかを選択します。「直接」を選択した場合、メッセージサーバのホスト名を指定します。「TCP経由」を選択した場合、IPアドレスを入力する必要があります。PCのホスト名とIPアドレスの両方を空白にすることもできます。［次へ］をクリックします。

  5. ［キューアクセス］ダイアログから、キューにアクセスする方法を選択します。コンポーネントにトランザクションをサポートする機能を追加したい場合は、「トランザクション機能の追加」を選択します。［次へ］をクリックします。

  6. ［コンポーネントの確認］ダイアログから、［終了］をクリックします。

［MSMQ］コンポーネントジェネレータを使用して作成されたコンポーネントについては、「作成されるMSMQコンポーネント」のトピックを参照してください。

注意:

コンポーネント名やキュー名にDBCSコード（全角及び半角カタカナ）を含めないようにしてください。


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

ホーム > リファレンスガイド > コンポーネント > コンポーネントジェネレータ > MSMQコンポーネントジェネレータ > 作成されるMSMQコンポーネント

作成されるMSMQコンポーネント

［MSMQ］コンポーネントジェネレータによって作成されるコンポーネントは、MSMQ.eciをアクセスするようになっています。

MSMQ用のコンポーネント内に定義されているプログラムを関数形式で呼び出せるように、以下のグローバルなユーザ定義関数がメインプログラム内に作成されます。

  • MsmqOpenReadQueue …… ［キューアクセス］で「メッセージの書込」以外を選択した場合に追加されます。

    機能：読込用のキューをオープンします.

    パラメータ：

    • ComputerAddress …… (A100)サーバPCのホスト名かIPアドレス

    • QueueName …… (A124)受信するキュー名

    戻り値：

    • QueueId …… (N17）キューのハンドル値が返ります。

  • MsmqOpenWriteQueue …… ［キューアクセス］で「メッセージの読込」以外を選択した場合のみ追加されます。

    機能：書込用のキューをオープンします.

    パラメータ：

    • ComputerAddress …… A100）サーバPCのホスト名かIPアドレス

    • QueueName …… (A124）受信するキュー名

    戻り値：

    • QueueId …… (N17）キューのハンドル値が返ります。

  • MsmqCloseQueue

    機能：キューをクローズします.

    パラメータ：

    • QueueId …… (N18）キューID

    戻り値：

    • 戻り値 …… (N17）処理結果が返ります。

  • MsmqLastError

    機能：キューのエラー情報を取得します.

    パラメータ：

    なし

    戻り値：

    • 戻り値コードﾂ …… (N17）MQサーバからの戻り値を返します。

  • MsmqSendMessage …… ［キューアクセス］で「メッセージの読込」以外を選択した場合のみ追加されます。

    機能：メッセージを送信します.

    パラメータ：

    • QueueID …… (N17)オープン次に返されるキューのハンドル値

    • Message …… (BLOB)送信するメッセージ

    • DataType …… (A1)送信するメッセージのデータ型

    • Numeric picture …… (A30)データが数値の場合、書式を指定します。

    • TransactionId …… (N18)トランザクションのハンドル値

    • CorrelationId …… (書式「3」の数値セルが定義されたベクトル型)相関データ

    戻り値：

    • MessageID …… 書式「3」の数値セルが定義された ベクトル型）メッセージIDが返ります。

  • MsmqReadMessage …… ［キューアクセス］で「メッセージの書込」以外を選択した場合に追加されます。

    機能：メッセージを読み込みます.

    パラメータ：

    • QueueID …… (N17)オープン次に返されるキューのハンドル値

    • TimeoutInterval …… (N6)コンポーネントがメッセージを待つ時間(ミリ秒)

    • TransactionId …… (N18)トランザクションのハンドル値

    • MessageId …… (書式「3」の数値セルが定義されたベクトル型)相関データ

    戻り値：

    • Message …… (BLOB）受信されたメッセージ

  • MsmqSetLabel …… ［キューアクセス］で「メッセージの読込」以外を選択した場合のみ追加されます。

    機能：メッセージの説明を定義するラベルを指定します。設定後に送信されたメッセージから有効になります。

    パラメータ：

    • QueueID …… (N17)オープン次に返されるキューのハンドル値

    • Label …… (A30)メッセージのラベル

    戻り値：

    なし

  • MsmqSetPriority …… ［キューアクセス］で「メッセージの読込」以外を選択した場合のみ追加されます。

    機能：メッセージに対する優先順位を指定します。0～7 の間の数値で 0 が最も低い優先順位です。デフォルトは、「3」です。

    パラメータ：

    • QueueID …… (N17)オープン次に返されるキューのハンドル値

    • Priority ……(N6)コンポーネントがメッセージを待つ時間(ミリ秒)

    戻り値：

    なし

  • MsmqSetAcknowledge …… ［キューアクセス］で「メッセージの読込」以外を選択した場合のみ追加されます。

    機能：肯定応答のメッセージタイプを指定します.

    パラメータ：

    • QueueID …… (N17)オープン次に返されるキューのハンドル値

    • Acknowledgement …… (N1)メッセージタイプ

    • Acknowledgement Computer …… (A100)応答先のPCのホスト名

    • Acknowledgement Queue …… (A124)キュー名

    戻り値：

    なし

  • MsmqBeginTrans …… ［トランザクション機能の追加］が選択された場合のみ追加されます。

    機能：メットランザクションを開始します.

    パラメータ：

    なし

    戻り値：

    • TransactionID …… (N17）トランザクションIDが返ります。

  • MsmqCommitTrans …… ［トランザクション機能の追加］が選択された場合のみ追加されます。

    機能：トランザクションをコミットします.

    パラメータ：

    • TransactionId …… (N18)トランザクションのハンドル値

    戻り値：

    • 戻り値 …… (N17)処理結果が返ります.

  • MsmqRollBackTrans …… ［トランザクション機能の追加］が選択された場合のみ追加されます。

    機能：トランザクションをロールバックします.

    パラメータ：

    • TransactionId …… (N18)トランザクションのハンドル値

    戻り値：

    • 戻り値 …… (N17）処理結果が返ります.

また、以下のグローバルイベントも作成されます。

  • MsmqPublicError …… MSMQの処理でエラーが発生した場合、このイベントが発行されます。


コンポーネントビルダ

ホーム > リファレンスガイド > コンポーネント > コンポーネントインタフェースビルダ

コンポーネントインタフェースビルダ

Magic xpaは、以下のコンポーネントインタフェースビルダを使用することで、プロジェクトを外部のアプリケーションからアクセスできるようになります。

Magicインタフェースビルダ

リッチクライアントインタフェースビルダ

Webサービスインタフェースビルダ

EJBインタフェースビルダ

COMインタフェースビルダ

注意：

  • ［動作環境］ダイアログの［外部コードページ］の設定によってコンポーネントインタフェースビルダが正常に動作しない場合があります。特に必要でない限り、デフォルトの「932」に設定しておいてください。

  • 64ビットOSの場合、Magic xpa Enterprise Studioのデフォルトのインストールフォルダは、C:\Program Files (x86)\Magicxpa\Studio ですが、コンポーネント作成用のウィザードユーティリティは、"(" および ")"をフォルダ名としては指定できない文字として判断しています。このため、コンポーネントが作成できない可能性があります。コンポーネント作成を行うような場合は、（これらの文字を使用しない）インストールフォルダに変更するようにしてください。

  • パス名に以下の文字が含まれている場合、不正なパスとして扱われます。

~!@#$%^&*()+=|/?,''<>:;"`


コンポーネントビルダ MIB

ホーム > リファレンスガイド > コンポーネント > コンポーネントインタフェースビルダ > Magicインタフェースビルダ

Magicインタフェースビルダ

［オプション］メニューからに［インタフェースビルダ］をクリックし、ここから［Magic xpa］をクリックすることによってMagicインタフェースビルダ（MIB）を起動することができます。

MIBは以下のことができます。

  • コンポーネントインタフェースファイル（ECI）を作成します。

  • コンポーネントインタフェースの表示や修正を行うことができます。

  • ECIファイルを指定したディレクトリに保存することができます。

関連トピック：

ECIファイル一覧

ECI の詳細とプロジェクト特性

リポジトリの選択

リポジトリ項目の選択

動作環境

サーバ

サービス

データベース

論理名

コンポーネントのパス

ECI エラーの詳細

ECI作成


コンポーネントビルダ MIB ECIファイル一覧

ホーム > リファレンスガイド > コンポーネント > コンポーネントインタフェースビルダ > Magicインタフェースビルダ > コンポーネント一覧

コンポーネント一覧

このダイアログには、有効なコンポーネントが一覧表示されます。既存のコンポーネントを選択するか、［作成］ボタンを押下してコンポーネントを新規に作成することができます。［新規］ボタンを押下したり、［次へ］をクリックすると［ECIの詳細とプロジェクト特性］ダイアログが表示されます。

一つのプロジェクトに複数のコンポーネントを定義することができます。各コンポーネントは、プロジェクトに異なるビューを提供します。

コンポーネント名を選択し、［削除］をクリックするとコンポーネントを削除することができます。［削除］をクリックすると、確認ダイアログが表示されます。「Yes」をクリックすると選択されたコンポーネントと関連するデータが削除されます。


コンポーネントビルダ MIB ECIの詳細

ホーム > リファレンスガイド > コンポーネント > コンポーネントインタフェースビルダ > Magicインタフェースビルダ > コンポーネントとプロジェクトの設定

コンポーネントとプロジェクトの設定

以下の特性に対する情報を入力することでコンポーネントとプロジェクトの詳細を設定することができます。

［コンポーネントの設定］セクション

項目 | 内容
コンポーネント名 | コンポーネント名は必須入力です。最大30字まで入力できます。 コンポーネント名は、ECIファイルとディレクトリを作成するために使用されます。
内容 | コンポーネントに関する簡単な説明を入力することができます。
レビジョン | コンポーネントのレビジョン番号を入力することができます。
即時有効 | コンポーネントを即読み込むかどうかを指定します。 コンポーネントのユーザ定義関数は、ホストアプリケーションが使用する前にコンポーネントが読み込まれた場合のみ使用することができます。ユーザ定義関数が必要とされ、コンポーネントがまだ読み込まれていないような状況を避けるため、この設定は「Yes」にしてください。モジュールが組み込まれる前に、この特性をあらかじめ設定しておくことができます。ユーザ定義関数がコンポーネントに含まれている場合、この特性は自動的に「Yes」に設定されます。
コンポーネントタイプ | コンポーネントのタイプを指定する文字列を入力することができます。デフォルトタイプは、「Magic xpa」です。

［プロジェクトの設定］セクション

項目 | 内容
プロジェクトファイル名 | プロジェクトのソースファイルが保存されているフォルダ名を入力します。［ファイルを開く］ダイアログを開いて検索することもできます。［プロジェクトファイル名］または、［キャビネットファイル名］の指定は必須です。
キャビネットファイル名 | キャビネットファイル名を入力します。デフォルト値は、<プロジェクト名>.ecf です。［ファイルを開く］ダイアログを開いて検索することもできます。［プロジェクトファイル名］または、［キャビネットファイル名］の指定は必須です。
ヘルプファイル名 | コンポーネントに対応したヘルプファイル名を入力します。
ヘルプキー | F1キーを押下した場合に対応するトピックが開くようにヘルプキーを入力します。

［次へ］をクリックすると、［リポジトリの選択］ダイアログが開きます。


コンポーネントビルダ MIB リポジトリの追加

ホーム > リファレンスガイド > コンポーネント > コンポーネントインタフェースビルダ > Magicインタフェースビルダ > リポジトリの追加

リポジトリの追加

ECIファイルに割り当てることのできるリポジトリには以下のものがあります。

  • モデル

  • データソース

  • プログラム

  • ヘルプ

  • 権利

  • イベント

  • 関数

  • 動作環境

組み込みたいリポジトリまたは全てのリポジトリを選択し、［追加］または［全て追加］をクリックすることでコンポーネントを追加することができます。ここには、少なくとも1つの公開名が定義されているリポジトリが表示されます。

1つ以上のリポジトリを選択し、［次へ］をクリックすると［リポジトリ項目の選択］ダイアログが表示されます。

関連トピック：

コンポーネントの動作環境を組み込むには


コンポーネントビルダ MIB リポジトリ項目の追加

ホーム > リファレンスガイド > コンポーネント > コンポーネントインタフェースビルダ > Magicインタフェースビルダ > リポジトリ項目の追加

リポジトリ項目の追加

［リポジトリの追加］ダイアログでリポジトリを選択した後で［次へ］をクリックすると、選択された各リポジトリのための入力用ダイアログが表示されます。

例えば、モデルやプログラム、ヘルプを選択した場合、最初にモデルの一覧が表示されます。モデルの選択後、プログラムの一覧が表示されます。プログラムの選択後は、ヘルプの一覧が表示されます。

注意：

公開名が定義された項目のみ表示されます。

メインプログラムのユーザ定義関数は、Magicコンポーネントの一部として公開することができます(関数は名前で参照するようになっているため、公開名を設定する必要はありません）。関数のスコープが「グローバル」に設定されている場合、メインプログラムの関数はユーザ定義関数の1つとしてホストプロジェクトで使用することができます。

各リポジトリごとに項目を選択し、［詳細］ボタンをクリックして詳細情報を表示したり修正することができます。

リポジトリ項目の［パラメータ項目］ダイアログには、以下の設定欄があります。

  • 名前 …… 選択された項目の名前が表示されます。変更はできません。

  • 公開名 …… 選択された項目の公開名が表示されます。変更はできません。

  • コメント …… 項目に関する情報を入力することができます。

  • ヘルプキー …… この項目に対応するヘルプのトピックを表示するためのヘルプキーを指定します。最大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エラー

ホーム > リファレンスガイド > コンポーネント > コンポーネントインタフェースビルダ > Magicインタフェースビルダ > ECI エラーの詳細

ECI エラーの詳細

修正モードの場合、このダイアログには、削除されたり、リネームされた公開名を持つリポジトリ項目が表示されます。ウィザードを終了して、公開名を入力または修正して、コンポーネント作成時の公開名になるようにする必要があります。


コンポーネントビルダ MIB ECI作成

ホーム > リファレンスガイド > コンポーネント > コンポーネントインタフェースビルダ > Magicインタフェースビルダ > ECIの作成

ECIの作成

このダイアログには、コンポーネントの概要が表示されます。エラーがない場合、［終了］ボタンが有効になります。エラーがある場合、［終了］ボタンは無効となり、適切なメッセージがステータスバーに表示されます。

コンポーネントが作成されたかどうかを知らせるメッセージボックスが表示されます。処理の完了後、コンポーネントが作成されなくてもウィザードは終了します。


XML連携

XML（Extensible Markup Language）はフレキシブルな標準の書式を使用します。これによって、容易にインターネットやイントラネットなどでデータを共有することができます。

Magic xpaは、標準のデータソースとしてXMLファイルを使用することができます。

XMLデータソースを使用する場合、XMLファイルをメインソースやリンクテーブルとして定義されたタスク（バッチやオンライン、リッチクライアント）を作成することができます。

［データ］リポジトリでXMLデータソースを定義し、XMLを処理するタスクを定義することができます。「XMLを使用した開発」のトピックを参照してください。

XMLデータソースを使用すると、XMLビューを使用してXMLドキュメントを読み込んだり、処理したリオするタスクを作成することができます。XMLビューは、タスクのメインソースやリンクテーブルとして定義することができます。

XMLValidateとXMLValidationError関数を使用して、XMLタスクがXMLスキーマと互換であることを確認することができます。「XMLの確認」のトピックを参照してください。

ネームスペースは、Magic xpaによって自動的に処理されます。ネームスペースを使用するXMLとXSDファイルは、エイリアスとURIの間で変換処理を必要としません。

注意：

XMLファイルを使用する２番目の方法は、様々なXML関連の関数を使用することです。しかし、この２つを組み合わせて使用することは推奨できません。このような方法は、下位互換性のために使用してください。「Magic関数を使用したXMLの使用」のトピックを参照してください。

関連トピック：

XML関連の特性

XMLの実行時の動作

デフォルトデータタイプ

XML データベース利用時の注意事項

XML （Mastering Magic xpa）


XMLの用語

XSD | XMLの定義情報が含まれているファイルの拡張子
XML | 実際のデータが含まれているファイルの拡張子
ビュー | Magic用語 Magic xpaは、XMLデータをビューと呼ばれるテーブル書式に変換します。
基本レコード | Magic用語 ベクトル(すなわちmaxOccurs>1)における各複合または単一要素は、ビュー内にレコードを持っています。これらのレコードを基本のレコードと呼びます。
繰り返し要素 | maxOccurs > 1または、制限のない要素
ビューメイン要素 | ビューに含められた複合要素、または単一要素が繰り返されたもの
ビュー内の要素 | ビューの主要な要素、または繰り返し不可の複合要素
ビュー上の要素 | ビューの主要な要素の上位要素、または繰り返し不可の複合要素


XMLを使用した開発 特性

ホーム > リファレンスガイド > XML連携 > XML関連の特性

XML関連の特性

XMLを利用するには、2つの方法があります。

  1. XMLデータソースの使用

XMLデータソースを使用して開発を行う場合、Magic xpaは以下の機能を提供しています。

    • ［DBMS］テーブルの「XML File」

    • ［DBMS特性］の「XMLデフォルト」

    • ［データベース特性］の［一時データベース］特性

    • ［カラム特性］の［XSD］セクション

  2. 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ビュー)から構文解析された複合要素の数を限定する場合は、SpecialSchemaSizeLimitを使用してください。

関連トピック：

ビューの定義取得

XML スキーマを見つけるには


XMLの実行時の動作

実行時のXMLタスクに関する情報については、以下のトピックを参照してください。

  • フラットデータビュー

  • タスクフロー

  • エラー処理

  • XMLエラーコード


XMLの実行時の動作 フラットデータビュー

ホーム > リファレンスガイド > XML連携 > XMLの実行時の動作 > フラットデータビュー

フラットデータビュー

ここでは、XMLの階層モデルをMagicエンジンによって使用されたリレーショナル/ISAMモデルに対応させるための規則について説明しています。（記述された規則に従って作成/保守されるフラットビューを使用します。）

繰り返し要素（MaxOccurs）

maxOccurs > 1 が定義された単一要素は、単一要素の複合型と定義されています。 それらが複合型でなくても、接する単一要素と同様に水平に展開することはできません。各ベクトルは、単一ですが、その親のレコードとしてを開始されません。

anyType要素

anyType要素は、BLOB型項目に割り当てられます。XMLを読み込むと、要素の内容はビューに読み込まれます。XMLを書き込む際、この項目に入力されたどのような値も、そのままXMLに書き込まれます。

hexBinaryとbase64Binary

hexBinary と base64Binaryは、ビューとの間で読み書きが行われると、自動的にバイナリデータとして変換されます。

日付と時刻のデータ型

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データソースでレコードを作成すると、属性を持たない複合要素か単一要素（そして、'All'か'Sequence'の複合タイプの一部になります)が自動的に作成されます。これによって、複合要素のために追加されたXMLビューを定義する必要性がなくなります。


XMLの実行時の動作 タスクフロー

ホーム > リファレンスガイド > XML連携 > XMLの実行時の動作 > タスクフロー

タスクフロー

実行モードでは、XMLデータソースを使用して動作する時、以下の手順で実行されます。

  1. XMLの読込 …… タスクがオープンされると、［タスク前］の後にXMLソースがビューに読み込まれます。Magic xpaは一度にXMLの全体を読み込みます。同じXMLスキーマの異なるテーブルを使用するサブタスクを起動した場合、XMLを再度読み込むうことは行われません。この手順では、テーブルを定義するだけで構いません。
    ［アクセス］特性が「R=読込」に設定された空のXMLは、オープンできませんので注意してください。

  2. XMLドキュメントから取り出されたデータをもとにしたビューにレコードが格納されます。

  3. タスクは指定された処理を実行します。

  4. XMLの書込 …… （ステップ#3で）XMLのビューが変更され、XMLデータソースのアクセスモードが「W=書込」の場合、Magic xpaはタスクの終了時に新しいXMLを出力先（BLOBやファイル）に書き込みます。新しいXMLによって、既存のXMLは置き換えられます。XMLドキュメントの更新/作成内容は、XMLドキュメントをアクセスした最初のタスクが終了した時点で書き込まれます。

注意：

  • XMLファイルの読み込みから書き出しまでの間、XMLファイル全体を排他する必要があるため、複数のユーザが同時に同一のXMLファイルをアクセスすることはできません。
    また、XMLファイルはトランザクションの対象外となります。

  • 親子関係のプログラムの場合、遅延トランザクションを使用してコール特性の「同期」の設定を行うことは可能ですが、Rollbackすることはできません。

  • XMLデータソースの場合は、継承されなかったデフォルト値だけがXMLに要素を記述する時に考慮されます。従って、デフォルト値として0を渡す場合は、この特性の継承を解除する必要があります。

  • CDATAセクションの値は、読み込むことはできますが、更新時は、値は無視されCDATAセクションに書き込まれません。

関連トピック：

タスクの初期モード


XMLの実行時の動作 タスクフロー 初期モード

ホーム > リファレンスガイド > XML連携 > XMLの実行時の動作 > タスクフロー > タスクモードによる動作

XMLデータソースに対応したタスクモードの動作

メインソースがXMLデータソースの場合、タスクの［初期モード］はすべて有効になります。

登録モード

存在しない親を参照しようとした場合、新しい親は作成されず、「存在していない親ID」というメッセージが表示されます。

登録モードには、処理にために２つの段階があります。

親の選択

親IDは、以下の２つの方法のうちの1つで設定することができます。

  • 明示的 …… 親ID項目を更新します。

  • 暗黙的 …… （明示的に設定されない場合のみ）修正された要素に依存します。上位の複合要素に属している挿入レコード内の修正項目に基づいて、実行エンジンが挿入レコードがどの親のものかを決定しようとします。位置付け機能は、ビューの上の複合要素に属している全ての修正項目を使用し、これらの値を使用して親のレコードを取得しようとします。

挿入の実行

前の段階（親の選択）で（明示的または暗黙的に）選択され、有効にされる親IDに基づいて行われます。

  • Magic xpaは、明示的に親IDを使用したり、挿入されたレコード内で暗黙的に他の修正項目を使用したりして位置付けられた親レコードの下にレコードを挿入します。

  • レコードは、ビューの最後に挿入されます。

  • Magic xpaは、暗黙的にはXMLを有効にしません。例えば、「A.E」または「A.D」は、制限するmaxOccurs属性を持つかもしれません。妥当性を保証するために、XMLValidate関数を明示的に実行する必要があります。

修正モード

ビューメイン要素は、単一要素の修正を制御します。

  • ビューメイン要素内の単一要素/属性だけが、［レコード後］で修正されることができます。

  • 上位の単一要素/属性は、変更できません。これは、再位置付けできないことを意味しています。要素を移動するには、現在の場所の内容を削除し、他の場所にその内容を入力する必要があります。

  • 開発者は、既存のレコードの親IDを修正することができません。このような操作を行った場合、エラーが発生します。

削除モード

複合レコードを削除すると、その子要素も削除されます。


XMLの実行時の動作 エラー処理

ホーム > リファレンスガイド > XML連携 > XMLの実行時の動作 > エラー処理

エラー処理

XMLファイルののオープン／クローズの間に発生するエラーに対応するためのハンドラを定義することができます。

  • エラータイプ …… 「任意のエラー」と「未定義エラー」を定義できます。

  • ［指示］特性 …… A=アボート

  • ERRリテラル（ErrMagicName 関数で使用）

  • テーブルが存在する場合 …… XMLがオープンできない場合や解析エラーの場合、「テーブルのオープンに失敗」が発生します。

  • 新規の場合 …… 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の確認

Magic xpaのXML連携機能は、XMLがXMLスキーマと互換であることを確認するために以下の２つの関数を提供します。

  • XMLValidate …… XMLドキュメントがスキーマに対して有効かどうかを確認します。

  • XMLValidationError …… XMLValidate関数の最後のエラーを取得します。


Magic関数を使用したXMLの使用

色々なXML関数を使用してXMLを利用することもできます。しかし、XML連係機能と組み合わせて使用することは推奨できません。このような方法は、主に下位互換性のために使用されます。

XML関数を使用して、XMLファイルからデータを取得したり、XMLファイルを変更したり、ドキュメント内のデータを検索したりすることができます。

関連トピック：

XMLネームスペース

XMLエラーコード


Magic関数を使用したXMLの使用 ネームスペース

ホーム > リファレンスガイド > XML連携 > Magic関数を使用したXMLの使用 > XMLネームスペース

XML ネームスペース

XML関数をネームスペースモードと非ネームスペースモードの両方で使用することができます。

非ネームスペースモードでは、要素に対して接頭語を指定しません。

ネームスペースモードでは、要素に対するネームスペースのエイリアスとして接頭語を指定することができます。要素は、ネームスペースURIと要素名を元にアクセスされます。エイリアスとURIの間でマッピングされ、ネームスペース内部のテーブルが指定された各入出力ファイルに作成されます。XMLGetAliasとXMLSetNS関数を使用して、この内部テーブルをオープンし、更新することができます。接頭語は、XMLのURIの１つとして定義されたエイリアスと合わせる必要があります。XMLデフォルトネームスペースに対して、エイリアスは空白の文字列になります。

Magic xpaがXMLの入出力ファイルを読み込む場合、この内部のテーブルは、XMLドキュメントの中の各ネームスペースURIで指定された内容を自動的更新します。

接頭語は、要素パスの各要素のために指定できます。接頭語が1つ以上の要素に指定された場合、Magic xpaは、ネームスペースモードを開始します。ネームスペースモードの中で、接頭語が指定されていない要素はデフォルトのネームスペースURI をもとに比較されます。

例えば、要素パスa.al1：b.c.al2：dの場合

  • ルートの要素には、接頭語がありません。

  • 要素「b」は、「al1」というエイリアスを持っています。

  • 要素「c」には、接頭語がありません。

  • 要素「d」は、「al2」というエイリアスを持っています。

ネームスペースモードを使用しない場合は、要素パスに接頭辞を付けないでください。

関連トピック：

XML ネームスペースの例

XML 関数のエラーコード

XML関数の概要


関数ディレクトリ XMLネームスペース 例

ホーム > リファレンスガイド > XML連携 > Magic関数を使用したXMLの使用 > XMLネームスペース > 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連携 > Magic関数を使用したXMLの使用 > XMLエラーコード

XML エラーコード

エラーコード | エラー内容
-1 | 入出力ファイルが正しくありません。
-2 | 挿入される要素やエイリアスが定義されていません。
-3 | 出力ファイルが書き込みモードでオープンされていません。
-4 | 要素パスが見つかりません。
-5 | 属性値が見つかりません。
-6 | 指定した属性値が指定した要素内にすでに存在しています。
-7 | 前置／後値フラグの文字が間違っています。
-8 | 参照要素が見つかりません。
-9 | ドキュメントにルート要素が含まれています。複数のルート指定は無効です。
-10 | 自動変換フラグが正しくありません。
-11 | 要素パスやインデックスが正しくありません。
-12 | エイリアスがすでに使用されています。
-13 | エイリアスや要素、属性の名前が正しくありません。
-14 | パラメータのタイプが正しくありません。（オプションのパラメータに対して）
-20 | XML ファイルが正しくありません。（XML の解析に失敗しました


XML データベース利用時の注意事項

XML データベース利用時には、以下の点に留意してください。

  • 定義取得において取得できる要素の最大数は10,000になります。10,000を越える要素が存在する場合、スキーマを分割するなどの対応を検討してください。

  • XMLファイル、および定義取得で読み込むスキーマファイルのデフォルトの文字コードはUTF-8です。

  • ［レコード書込］イベント、［ビュー再表示］イベントは、フラットビューに設定されたデータベースの一時テーブルへの書き込みのみ行います。物理的なXMLファイルへの書込はタスクの終了時に行われます。

  • サーバでファイルを共有する場合、複数のクライアントで同時に同じファイルに対して書込を行うことはできません。

  • トランザクション処理はサポートされていません。Rollback関数は無効です。

  • BLOB型項目(HexBinaryまたは、Base64binary) は、現在のバージョンではサポートしていません。

  • XMLデータベースに対するAPGは照会のみになります。

  • 定義取得時、単純型要素および複合型要素（element）に対する出現回数が2以上に指定されている場合、複数のレコードを登録できるようにするためにデータソースを追加作成しますが、モデルグループ（sequence、choice）に対して出現回数が指定されていてもデータソースは追加作成されません。

  • 出現回数が2以上に指定されている要素に同一の要素（レコード）を登録する場合、既存の要素の末尾に追加されるため、途中に挿入することはできません。

  • 定義取得時、［カラム特性］に反映される制約ファセットは、maxLengthのみとなります。

  • 定義取得時、匿名データ型による宣言（element内に直接に型を定義）を行っている場合、型を正しく取得できないことがあります。

  • 定義取得時に作成されるテンプレートプログラムは、パラメータとして受け取るBLOB項目に対して操作を行ないます。そのため、実際のXMLファイルに対して作成および検索を行う場合、XMLファイルの読込み（File2Blb）および書込み（Blb2File）を行う親プログラムが必要になります。

  • ［データ］リポジトリに制限により、XML Schemaに定義されている要素および属性の名前にはUnicode特有文字は使用できません。また、要素および属性の名前の長さは30バイトまでに制限されます。


COM オブジェクト

ホーム > リファレンスガイド > COM オブジェクトサポート

COM オブジェクトサポート

Magic xpaは、プロジェクト内に登録されたCOMオブジェクトを、OLE オートメーションによって処理される一般的なOLE オブジェクトとしてアクセスすることができます。

COM オブジェクトはOLE 型として定義された項目を通して処理されます。

COMオブジェクトに関連する処理は、オブジェクト用に定義される変数項目を使用して行われます。

OLEオブジェクトはフォームに配置することはできません。実行時にOLEオートメーション用のコマンドを使用してのみ操作できます。

OLEオブジェクトを定義するには、指定したオブジェクトが定義されたCOMオブジェクト項目を作成しなければなりません。

［オブジェクト名］特性は、COMオブジェクトを完全に定義するために重要で必須です。

注意：

OLE項目は、リッチクライアントタスクではサポートされません。

関連トピック：

［コールCOM］処理コマンド

コレクションのアクセス

実行時の動作

OLE項目とBLOB項目との違い

COMインタフェースビルダ

COM （Mastering Magic xpa）


コレクションのアクセス

COM オブジェクトによっては、サブオブジェクトのコレクションを持つものがあります。コレクションは通常 ID フィールドにより識別されますが、ID が非連続的な場合には、ID をすべて知っていない限りコレクションをすべてアクセスすることができませんでした。

［コールCOM］処理コマンドで このようなコレクションのサブオブジェクトを扱う場合は、「MGItemSequential」という名前の（Magic xpaによって追加された）メソッドを指定してください。このメソッドにより、非連続なコレクションであっても、1から始まる連続なインデックス番号を指定してアクセスできるようになります。


COM オブジェクト 実行時の動作

ホーム > リファレンスガイド > COM オブジェクトサポート > 実行時の動作

実行時の動作

OLE項目やActiveX項目が定義されたタスクをオープンすると、Magicエンジン は定義されたオブジェクトを自動的にインスタンス化します。

［コールCOM］処理コマンドは、インスタンス化されたオブジェクトを呼び出します。

ActiveXオブジェクトがMagicプロジェクトによって処理されたイベントをトリガすると、対応するハンドラが実行されます。

オブジェクトをインスタンス化したタスクが終了すると、オブジェクトは自動的に解放されます。

パラメータとしてオブジェクトを渡す

パラメータとしてOLEオブジェクトを別のタスクに渡すことができます。これによって、パラメータを渡されたタスクは、継続してオブジェクトを処理することができます。

この場合、起動されるタスクでは、パラメータ項目を定義する必要があります。このタスクは、［コールCOM］処理コマンドや、［イベント］ロジックユニットを使用してオブジェクトを処理するようにプログラムを作成することができます。これによって、起動するタスクはインスタンス化されたオブジェクトを渡すことができます。

この時、パラメータ項目の［インスタンス化］特性は、「N=なし」にしてください。これは、このパラメータ項目が COM オブジェクトをインスタンス化するのではなく、すでにインスタンス化されているオブジェクトを参照していることを意味しています。

オブジェクトを手動でインスタンス化する

OLE項目 やActiveX 項目のデフォルト設定は、これらの項目が定義されたタスクをオープンした時に、Magicエンジンによって自動的にオブジェクトがインスタンス化されるように設定されています。タスクが終了するとそのオブジェクトは解放されます。

オブジェクトを手動でインスタンス化したり解放したい場合は、項目特性の［インスタンス化］の指定を「N=なし」 に指定し、 COMObjCreate や COMObjRelease 関数を使用してオブジェクトの作成や解放を行ってください。

注意:

［インスタンス化］特性が無効な場合、オブジェクトは手動で作成できません。

作成されたオブジェクトの参照

全ての COM オブジェクトは、「ハンドル」という内部管理番号を持っています。

タスク上でオブジェクトを手動でインスタンス化し、そのハンドルを保持し、そのハンドルを使用してオブジェクトを別のタスクから参照させることができます。

このような処理は、COMHandleGetやCOMHandleSet関数を使用して行います。

COMのエラーの取得

COMError関数を使用して、最後に発生したCOMのエラーに関する情報を取得することができます。


COM オブジェクト BLOB項目との違い

ホーム > リファレンスガイド > COM オブジェクトサポート > OLE項目とOLEコントロールとしてのBLOB項目

OLE項目とOLEコントロールとしてのBLOB項目

OLE 型項目と［スタイル］特性で「OLE」として設定されたBLOB型項目には大きな違いがあります。

OLE コントロールとして設定されたBLOB項目は、OLEオブジェクトとしてフォームに埋め込まれ、OLE アプリケーションを表示したり手動で操作したりできます。Magic xpaは、オブジェクトを単に表示するだけで、エンドユーザがオブジェクトを操作します。

一方、OLE 項目は OLE オートメーション用に使用されます。OLE 項目は、フォームに配置できず、Magicプロジェクトによって表示することができません。


NET連携

ホーム > リファレンスガイド > .NET連携

.NET連携

Magic xpaは、.NETコントロールやアセンブリを埋め込み、統合するための簡単な方法を提供しています。

ユーザインターフェイスの一部として.NETコントロールを直接フォームに配置することで、リッチインターネットアプリケーションのルック＆フィールをより見栄えの良いものにすることができます。.NETアセンブリのフォームを統合することによってアプリケーションの機能性を強化することもできます。

注意：

.NET機能を使用する場合は、実行させるPCに.NET Framework Ver2.0 SP1以上がインストールされている必要があります。.NET Framework Ver2.0 SP1を使用する場合は、再配布可能なMicrosoft Visual C++ 2008をインストールする必要があります。Scripts\RIA フォルダ内のNetFx20SP1_x86.exeファイルとVCRedist_x86.exeファイルを実行することでインストールすることができます。

.NET機能は、リッチクライアントタスクとオンラインタスクでのみ有効です。

.NETとの連携を行うには、以下の内容について理解しておく必要があります。

  • アセンブリの読み込み

  • .NET項目の利用

  • .NETコントロール

  • .NETと式エディタ

  • .NETメソッド

  • .NETオブジェクト

  • .NETコンストラクタ

  • .NETの配列

  • .NETの例外処理

  • .NETイベントの処理

  • .NET関数

  • .NETコードの実行

  • .NETコードをMagic xpaコードに変換

  • .NETの自動タイプ変換

  • .NET利用時の注意事項

注意：

.NET機能を確認する場合は、『.NETチュートリアル』を一読することを推奨します。

公認の.NETコントロール

商用の.NETコントロールは、異なるライセンス・メカニズムを使用しています。多くは、プロジェクトフォルダ内にファイルの存在を必要とします。他にも、ライセンスファイルの編集を必要とするものもあります。

ほとんどの場合、コントロールがライセンスを含めてアプリケーションをコンパイルすることを要求する場合、単にライセンスを新しいユーザ用コントロール内に含めることでコントロールとして使用することができます。

コントロールが最上位レベルの実行可能（.exe)ファイルの一部としてコンパイルされるライセンスを必要とする場合、Magic xpaでこのコントロールを使用することはできません。

関連トピック：

.NET統合 （Mastering Magic xpa）


アセンブリの定義

ホーム > リファレンスガイド > .NET連携 > アセンブリの読み込み

アセンブリの読み込み

.NETを使用したプログラムを作成するには、使用するアセンブリを読み込む必要があります。

［コンポーネント］リポジトリに登録されたアセンブリを読み込まれます。

まず、どのアセンブリを参照するのかを見つける必要があります。

この情報は、通常はアセンブリを提供しているベンダのHPか、Google検索などを利用して取得することになります。

たとえば、DevXpress（http://documentation.devexpress.com/#WindowsForms/CustomDocument1921)の‘PivotArea’列挙の内容は、DevExpress.PivotGrid.v11.1.Core.dllアセンブリ（http://documentation.devexpress.com/#CoreLibraries/DevExpressXtraPivotGridPivotAreaEnumtopic で定義されています)で見つかります。

最も役立つアセンブリのうちの2つは、以下の通りです：

  • System.Windows.Forms …… アプリケーションで使用することができるWindowsフォームやコントロール、ダイアログボックスが含まれています。サードパーティ製の.NETコンポーネントを使用したい場合は、このアセンブリも読み込ませておく必要があります。

  • System.Drawing……基本的なWindowsグラフィックスが含まれています。一旦.NETアセンブリを読み込むと、そのクラスとメソッドの全てを Magicプロジェクトで使用することができます。

注意：

コンポーネント側で定義されたアセンブリは、ホストプロジェクトでは利用できません。これは、コンポーネントが.NETタイプのモデルまたはプログラムのパラメータを公開している場合、ホスト側でも同じアセンブリを定義しておく必要があることを意味しています。


.NET項目の利用

一旦、アセンブリを読み込むようにした場合、アセンブリを使用するために.NETデータ項目を作成する必要があります。［データビュー］エディタで、他のデータ項目と同じように.NET型のデータ項目を作成します。

［.NET］セクションの［オブジェクトタイプ］特性を設定する必要があります。

コントロールとして.NETデータ項目を使用するには、［フォーム］エディタ上で［項目］パレットからこのデータ項目をドラッグします。［.NET］コントロールは、Magic xpaの特性とオブジェクト独自のプロパティを持っています。［.NET］コントロールのMAGICモデルを定義することができ、その際、オブジェクトのプロパティをモデルの［特性］シートで設定することができます。

.NET項目の初期設定

フォームが表示される際に、コントロールに対応する.NET項目は自動的に初期設定されます。しかし、コントロールが割り当てられていない.NET項目は、コンストラクタによって手動で初期設定する必要があります。既存の.NETオブジェクトによって更新したり、.NETオブジェクトを作成するメソッドを実行することで初期設定することができます。

例:項目更新 A DotNet.System.Drawing.Font ("MS ゴシック",0)

注意：

  • .NET項目は、リッチクライアントタスクからバッチタスクにパラメータとして送ることができません。

  • リッチクライアントタスクで定義された.NET項目を、バッチタスクで使用することはできません。

  • メインプログラムで定義された.NET項目は、パラメータとしてリッチクライアントタスクに渡すことはできません。

  • メインプログラムで使用される.NET項目は、（.NETオブジェクトの異なるインスタンスとなる)クライアントとサーバで"繰り返され”ます。これは、メインプログラムで定義された.NET項目がリッチクライアントタスクやバッチタスクで使用できることを意味します。しかし、リッチクライアントタスク内の項目のあらゆる更新は、バッチタスクでは利用できません。これは逆もまた同じです。


.NETと式エディタ

DotNetキーワード

PCに定義されたアセンブル内に定義されたオブジェクトを直接参照するためのキーワードとして、｢DotNet｣が使用できます。このキーワードを使用することで､［式］エディタに直接.NETコードを入力することができます。.NET項目を定義する場合は、（例えば、DotNet.System.Windows.Forms.のように）使用する必要はありません。

オートコンプリート機能

［式］エディタ内で、Ctrl+スペースを押下することで関数のリストを表示させることができます。このリストには、以下のようなDotNetという接頭語も表示されます。

［式］エディタ内で、.NETオブジェクトまたはDotNetキーワードの後にドット(.)を入力すると、オートコンプリート機能が実行されます。Ctrl+スペースを押下することで手動で選択リストを表示させることもできます。オートコンプリートリストには、プロパティやメソッドのような関連する.NETオブジェクトが表示されます。

.NET項目やDotNetキーワードが含まれた記述のある式または処理コマンドは、クライアント側で処理されるものとして扱われ、「C」が表示されます。

注意：

.NET項目をリッチクライアントタスクからバッチタスクに渡すことはできません。

Icons

［式］エディタで、オートコンプリート関数を使用すると、さまざまなアイコンが表示されます。よく表示されるアイコンには以下のようなものがあります。

Namespace

Public property

Public macro

Public interface

Public class

Public enumeration

Constant inside enumeration

Public structure

Public method

Protected method

Public event

Public delegate

［式］エディタ内での.NETの使用

以下のような処理で、［式］エディタが使用できます。

  • .NET項目を初期設定します。

  • .NET項目のプロパティ値またはメンバ値の取得 …… ドット（.）とプロパティ名の後に項目を記述するだけで.NET項目の値を取得することができます。例：A. Text(Aは.NET項目)の場合、以下のようになります。

  • ネストされたスタティックなプロパティはサポートされます。例：A.Text.LengthまたはDotNet.System.Drawing.Text。

  • 配列用のブラケット［ ］はサポートされます。ブラケット内に別の式を記述することができます。

  • この参照は､タイプに従ったプロパティ値を返します。

  • エラーが発生した場合、Null()が返ります。

  • DNSet関数を使用して、.NET項目のプロパティ値やメンバ値を設定することができます。

  • .NET項目メソッドの呼び出し …… .NET項目メソッドの呼び出しは、項目名とそれに続くドットとメソッド名を単に指定することで定義できます。例：A.ToString() (Aは.NET項目)。

  • ネスティングされたメソッドはサポートされます。

  • メソッドのシグニチャ内のOutパラメータで、DNRef関数を使用する必要があります。

  • 配列用のブラケット［ ］はサポートされます。ブラケット内に別の式を記述することができます。

  • この参照は､メソッドから返される値を返します。

  • エラーが発生した場合やvoidの場合は、Null()が返ります。

  • メソッドにポインタを返すことはできません。その代わり、DNRef(var)の送信によって参照される項目を送る必要があります。

  • 列挙型の使用 …… 列挙型を使用することで、.NET項目を使用して様々なプロパティやメソッドを直接に参照することができます。
    例：DotNet.System.Windows.Forms.AutoScaleMode.Dpi

関連トピック：

.NETの列挙型を使用するには


.NET項目メソッド

ホーム > リファレンスガイド > .NET連携 > .NETメソッド

.NETメソッド

［式］エディタ内で.NETメソッド名の入力を始めると、Magic xpaはメソッドを選択することができるオートコンプリート機能が実行されます。［オートコンプリート］ボックスでは、プロパティ名とメソッド名が表示されます。（Hide()やShow()のような）メソッドのいくつかは、プロパティとしてMagic xpaないで利用できます。これらのメソッドを使用することができるますが、実行時中は、オブジェクトのプロパティとMagic xpaの特性の間に矛盾がある場合、MAgic xpa側の特性が使用されます。

Magic xpa内部の機能と矛盾しないメソッドやプロパティを選択するようにしてください。これによって、コントロールは確実に動作します。ここには、コントロールのサイズや位置に影響するプロパティやメソッドが含まれています。

例えば、SetCalendarDimensions（6、2)メソッドを使用して二行に一年分を表示すると、Magic xpaはフォームの範囲内にでコントロール表示しようとします。この場合プログラムを実行すると、多分水平と垂直のスクロールバーが表示されるはずです。フォームのサイズを大きくすると、Magic xpaはコントロールの表示内容をを再計算します。このため、多分、正しく表示されないはずです。

例えばコントロール特性のように、頻繁に評価されるメソッドを実行することは、推奨されません。これは、パフォーマンスに影響します。

注意：

オーバロードメソッドのツールチップ

  • メソッドが選択され、左の括弧「（」が入力されると、関数に渡すパラメータがツールチップで表示されます。

  • 現在のメソッドが利用可能な複数のオーバーロードを持っている場合、Magic xpaは、ツールチップに上下の矢印を持つボックス [image] を表示させ、どのパラメータを使用するのかを選択できるようになります。

  • 特定のシグニチャを選択するため、Magicによって決まれられたくないのであれば、DNCast()関数を使用して必要な.NETタイプを暗黙的に指定することが出来ます。
    例：C.Append(DNCast(Trim(D)&': ',DotNet.System.String))

関連トピック：

.NETメソッドを実行するには


.NETオブジェクト

サブフォーム上で実行するオンラインタスクで.NETオブジェクトを使用する

オンラインタスクで、サブフォーム上でタスクが実行した状態で、再度このタスクにフォーカスを移すと、すべてのデータ項目は初期化されます。［.NET］コントロールが定義されていないデータ項目も、同じように動作します。

［.NET］コントロールが定義されたデータ項目は初期化されず、.NETオブジェクトの内容を維持します。この場合は、再度プロパティを設定する必要はありません。

.NETオブジェクトの廃棄

実行エンジンが終了すると、.NETオブジェクトは自動的に廃棄されます。 サーバ上で実行されるバッチタスクで.NETオブジェクトを使用したり、開発環境で実行する場合、実行エンジンは終了しません。この場合は、.NETオブジェクトは廃棄されません。 これらを廃棄したい場合は、.NETオブジェクトのDisposeメソッドを使用することができます。

例：［アクション］処理コマンド 式：var.Dispose() 条件：'Not IsNull(var)'

注意：

  • 2つの .NETオブジェクトがあり、一方を他方で更新する際、［項目更新］処理コマンドを使用すると、期待するような.NETオブジェクトのコピーは作成されません。両方のデータ項目が同じオブジェクトを参照しているため、これは、1つのデータ項目の特性を変更すると他方のデータ項目にも反映されることを意味します。

  • 同じ.NETオブジェクトは、リッチクライアントタスクと非インタラクティブなリッチクライアントタスクから参照することができます。

  • リッチクライアントタスクとバッチタスクで同じオブジェクトを使用することはできません。

関連トピック：

.NETオブジェクトのプロパティの値を取得するには


.NETコンストラクタ

オブジェクトのインスタンス化

コンストラクタは、オブジェクトをインスタンス化して初期化します。コンストラクタは、メソッド名がクラス名と同じになっているメソッドです。たとえば、StringBuilderオブジェクトは、StringBuilder（)という名前のコンストラクタを持っています。複数のコンストラクタ（各々パラメータの異なるセット）が存在する場合があります。

コンストラクを使用する場合は、一度だけ実行する必要があります。二度目に実行されると、オブジェクトの新しいインスタンスが作成されます。結果として、どこでコンストラクタを定義するべきか、気をつける必要があります。

リッチクライアントタスクとして動作させる場合、［タスク前］はクライアント側の処理コマンドを使用することができません。そして、.NETはクライアントで実行させる必要があります。このため、［タスク前］でコンストラクタを実行させることはできません（オフラインタスクの場合はクライアント処理になるため例外）。どこでコンストラクタを定義するべきかを考慮した場合、以下の点に気付くはずです。

  • 複数レコード …… ［レコード前］ロジックユニットでコンストラクタを実行させることができます。しかし、複数のレコードがある場合、または、フォームの表示方法がラインモードになっている場合、1回だけしか実行しないように条件を設定する必要があります。このような場合は、IsFirstRecordCycle（0)を条件式に設定することで対応できます。

  • 再計算 …… ［.NET］コントロールの特性からコンストラクタ（さらに、どんなメソッドも)を実行させることは推奨されません。これは、フォームの再表示を複数回実行するため、そのたび毎に.NETオブジェクトが作成されるからです。

たとえば、フォントを定義したい場合、コントロールの［フォント］特性にコンストラクタのメソッドを直接定義することができます。しかし、この場合、フォームが再表示される度にコンストラクタが呼び出されます。このような時は、フォントのコンストラクタで更新する特別なデータ項目を作成して、コントロールの［フォント］特性でそのデータ項目を使用するようにしてください。


.NET Arrays

ホーム > リファレンスガイド > .NET連携 > .NETの配列

.NETの配列

Magic xpa内から.NETを使用してプログラムを実行させ、プログラムが.NETの実行エラーを発生させた場合、Magicプログラムから.NETの例外を補足して、エンドユーザに対して問題のソースに関する基本的な情報を提供することは重要です。

.NETの配列定義

.NETの配列は、Magic xpaのベクトルと同じようなものです。配列とは、同じタイプの複数の値を保持することができるデータ項目です。Magic xpaのベクトル項目とは対照的に、.NETで動作する場合、事前にセルまたは配列の定義数を決めておく必要があります。

.NETの配列を定義することは、通常の.NETオブジェクトを定義することと非常によく似ています。Magic xpaで配列を定義するには、.NETと同じような方法で、角括弧［］を.NETオブジェクトタイプに追加します。配列を定義する場合、配列のサイズは定義しません。オブジェクトのコンストラクタを使用するときに宣言されます。

ブラケット内に、使用したい要素の数を入力します。

DNSetを使用して要素の値を設定するには、以下のように使用します。

DNSet（H［2］,2)

.NETの配列は、"0"から開始されます。これは、H［2］が3番目の要素であり、2番目ではないことを意味します。Magic xpaのLoopCounter関数は、1から開始されます。したがって、H［0］要素を設定するためには、LoopCounter（)-1から開始させる必要があります。


.NETの例外処理

.NETで不正な処理がある場合、例外が発生します。しかし、プログラムで例外処理を定義しない限り、エンドユーザには表示されません。

Magic xpaでは、2つの内部関数を使用することで.NETの例外処理を実装することができます。

  • DNExceptionOccurred（)関数は、最後の.NET処理によってエラーが発生したことを通知します。

  • DNException（)関数は、.NET処理によって発生したエラー情報を取得します。

Magic xpaとJavaを組み合わせたプログラムを作成した経験ががある場合なら、この概念はよく分かると思います。

.NETでプログラムを行う場合、Try/Catchのブロックを作成します。0割の簡単なサンプルプログラムを見てください：

Dim num as Integer

Dim zero as Integer

Try

Zero = 0

num = num / zero

Catch

MessageBox.Show (“Zero divide!”)

End Try

Magic xpaでの動作は多少異なります。Magic xpaではあらゆる.NET処理をTry/Catchブロックに入れます。発生する可能性のある例外をどの様に処理かは、開発者の責任になります。Magic xpaの .NETエラー処理の関数は、最後に発生したエラーに適用されるため、関連する処理ごとに例外内容を調べることが重要になります。

Magic xpaのベクトルとは対照的に、配列を宣言した後に、定義された範囲内の要素に値を保存したり取り出したりすることができません。これは、7つの要素を宣言した後に、値を8番目の要素に設定することができないことを意味します。この場合は、例外が発生します。


NET連携 NETイベントの処理

ホーム > リファレンスガイド > .NET連携 > .NETイベントの処理

.NETイベントの処理

実行時、.NETオブジェクトはイベントを発行させることができます。Magic xpaのイベントハンドラはこれらのイベントを処理することができます。

大部分の.NETコントロールで利用できる一般的なイベント（例えばOnMouseClick）があり、そのコントロールを指定することができます。Magic xpa内で、.NETイベントを補足し、それに対する処理を定義することができます。これによって、.NETオブジェクトを使用した操作を異なるレベルで実現することができます。

.NETイベントを処理するために、イベント用のロジックユニットを作成し、[イベントタイプ]を「.NET」に設定してください。

.NET項目か.NETクラスを定義することで.NETイベントを選択することができます。

各コントロールに対応したロジックユニットを作成する代わりに、ロジックなしで［.NET］コントロールとMagic xpaのデータ項目を同期させることができます。.NETモデルを作成して、バインディング特性を設定することによって実現できます。

  • ［イベント］ロジックユニットが.NET項目で定義された場合、指定された項目に対応するロジックユニットになります。

  • ［イベント］ロジックユニットが.NETクラスで定義された場合、タスクや実行時のタスクツリー内に定義されているオブジェクトの任意のインスタンスに対する汎用的なロジックユニットになります。これは、メインプログラムのロジックユニットで役立ちます。これは、様々なオブジェクトのオブジェクトレベルのイベントに対して適用されます。

処理するイベントを選択すると、Magic xpaは、オブジェクトがパラメータを受け取るかどうかをチェックします。パラメータを受け取る場合は、自動的にパラメータ項目を作成するかどうかを確認するメッセージを表示します。

有効なイベントの選択リスト内には、Magic xpaの内部イベント（例えばOnDoubleClick）と同じような名前が表示されています。これらは、Magic xpaのイベントと同じように動作します。［.NET］コントロールを使用する場合、.NETイベントを使用してください。Magic xpaのイベントではありません。

伝播とイベント処理規則

Magic xpaでは、イベントを処理し、実行時のタスクツリー内の親タスクにそのイベントを伝播することができます。.NETオブジェクトをフォームのコントロールとしている場合は、同じように動作します。

親タスクでイベントを処理するには、.NETオブジェクトに対応したロジックユニットを定義します。フォーム上のコントロールとして配置されていない.NETオブジェクトを持っている場合、.NETオブジェクトは異なるタスク内の異なるデータ項目を参照することができます。たとえば、タスクのパラメータとしてデータ項目を渡すような場合があります。イベントが.NETオブジェクトによって発行されると、そのオブジェクトを参照しているデータ項目を持つすべてのタスクで処理することができます。これらのイベントには伝播されないため、親タスクでイベントを処理したい場合、親タスクで同じようにそのオブジェクトを参照できるようにする必要があります。

Magic xpaは、2つのタイプの.NETオブジェクトとその応答を区別して処理します。

  • フォームに配置される.NETオブジェクトの場合：
    [.NET]コントロール上のイベントは、Magicイベントとして処理されます。
    これは、親タスクでオブジェクトタイプを選択するだけで、[伝播]特性を使用できることを意味しています。

  • フォームに配置されない.NETオブジェクトの場合：
    .NETオブジェクトがイベントを発行した場合、2つの異なる.NET項目が同じ.NETオブジェクトを参照することができるため、Magic xpaは、項目が定義されている各タスク内でイベントを発行します。
    例えば、タスク1に項目Aが、タスク2に項目Bが定義されている場合、項目Bが項目Aで更新され、両方のタスクに.NETイベントに対するロジックユニットが定義されているとすると、.NETオブジェクトがイベントを発行すると、それは両方のタスクでイベントが処理されます。
    オンラインタスクの場合は、イベントは全てのコンテキスト内で発生します。リッチクライアントタスクの場合は、現在のコンテキス内でのみ発生します。

  • [伝播]特性は、このようなイベントには関係しません。

  • タスクが項目を定義しないで定義されたハンドラのみを持っている場合、イベントは処理されず使用されないことを意味しています。

  • タスク内の.NETクラス用の一般的なハンドラを使用することができますが、それを作動させるためには、そのクラスに対応する項目をタスク内に定義する必要があります。

イベントパラメータ

Magicイベントと同じように.NET イベントにもパラメータが必要なものがあります。

イベントによってはほとんどの場合、.NETイベントに対応するロジックユニットを定義する際、2つのパラメータ(senderとe)がロジックユニットに追加されます。senderは、イベントが発行されたオブジェクトで、eはイベントパラメータです。senderは、「オブジェクト」という.NETタイプが定義されています。これは汎用的なオジェクトであり、簡単に処理することはできません。

DNCast関数を使用してオブジェクトタイプを特定の.NETオブジェクトに変換することができます。例えば、‘System.Windows.Forms.TextBox’はこのオブジェクトを参照し、‘System.Windows.Forms.TextBox’のすべてのプロパティとメソッドにアクセスすることができます。

DNCast関数を使用することで、以下のように.NETオブジェクトタイプを直接指定することができます。

DNCast(A,DotNet.System.Windows.Forms.TextBox).Text

注意：

.NETイベントは非同期で処理されます。これは、イベントパラメータを更新しても、イベントを発行したオブジェクトには影響しないことを意味します。


.NETコードをMagic xpaコードに変換

ホーム > リファレンスガイド > .NET連携 > .NETコードをMagic xpaコードに変換

.NETコードをMagic xpaのコードに変換する

.NETコードをMagic xpaコードに移行する際、手助けとなるFAQを列挙します。

どのアセンブリを参照した方がよいのでしょうか？

アセンブリを使用するには、Magic xpaの［コンポーネント］リポジトリにアセンブラを登録しておく必要があります。

最初にすべきことは、どのアセンブリを使用するかを見つけることです。

この情報は、通常はアセンブリを提供しているベンダのHPか、Google検索などを利用して取得することになります。

たとえば、DevXpress（http://documentation.devexpress.com/#WindowsForms/CustomDocument1921)の‘PivotArea’列挙の内容は、DevExpress.PivotGrid.v11.1.Core.dllアセンブリ（http://documentation.devexpress.com/#CoreLibraries/DevExpressXtraPivotGridPivotAreaEnumtopic で定義されています)で見つかります。

.NETコードと同等機能をMagic用に移行するにはどうすればよいのでしょうか？

.NETオブジェクトのプロパティを設定する場合は、DNSet（property,value)関数を使用する必要があります。

例：‘fieldOrderDate.AreaIndex = 0;' という処理は、DNSet（A.AreaIndex,0)と記述します。

Aは、.NET型のデータ項目（fieldOrderDate)で、AreaIndexはそのプロパティ名です。そして、「0」で更新されます。

.NETコードの'Type Var' 処理はどのようにして、Magic用に移行するのでしょうか？

'Type Var’の組合せを持っている場合、通常.NETデータ項目を定義する必要があることを意味します。

例：‘DataTableなsourceData’文は、.NET型の変数項目（‘sourceData’ と命名します)を作成し、オブジェクトタイプを‘System.Data.DataTable’として定義します。

'New'オペレーションは、どの様に移行しますか？

.NETオブジェクトの更新は、通常はオブジェクトのインスタンス化を行うために実行されます。

例：‘DataTable sourceData = new DataTable();

［項目更新］処理コマンドで、変数AをDotNet.System.Data.DataTable（) で更新します。Aは、‘System.Data.DataTable’タイプの.NETデータ項目です。

.NETオブジェクトのプロパティを取得したり、.NETをメソッドを呼び出すにはどのようにしたらいいのでしょうか？

‘XX.YY’表記法は、プロパティの値を取得したり、メソッドを実行する場合に使用されます。

例：DotNet.DevExpress.XtraPivotGrid.PivotArea.RowArea

.NETコード内のブラケット(‘{}’) 処理を移行するにはどのようにすればよいでしょうか？

ブラケットは、通常は初期値が設定された.NETの配列を定義するために使用されます。Magic xpaでは、.NET用の配列セルを設定する必要があります。

例：‘MyRange = new Object[] {“aaa”,”bbb” }’ は、以下のように２つの部分から構成されます。

  • 配列のインスタンス化：

項目更新 A DotNet.System.Object[2]

A:‘System.Object［］’タイプの。NET型変数

これは、‘MyRange = new Object[]’ の’ステートメントと同等です。

  • データの格納：

DNSet（A［0］、’aaa’)

DNSet（A［1］、’bbb’)


NET連携 NETの自動タイプ変換

ホーム > リファレンスガイド > .NET連携 > .NETの自動タイプ変換

.NETの自動タイプ変換

Magic xpaは自動的にMagicのデータ型を.NETタイプに変換します。またその逆も行います。これによって、Magicのデータ項目をキャストしないで.NETのメソッドに送ることができます。

変換規則は以下の通りです。

Magicタイプ | .NETタイプ
数値型 | SByte, Byte , Int16, Uint16, Int32, UInt32, Int64, UInt64, IntPtr, UIntPtr, Char, Decimal, Single, Double, Float
文字型、Unicode型 | Char, Char［］, String, StringBuilder
日付型 | DateTime
時刻型 | DateTime, TimeSpan
論理型 | Boolean
BLOB型 | Byte, Byte［］, Char, Char［］, String, StringBuilder
ベクトル型 | 'This'キーワードをインデクサとして使用するICollection(.NETから Magicタイプの場合のみ)やIList、およびオブジェクト。整数のインデックスを持っているインデクサのみ変換されます。

注意：

  • ネストされたベクトルデータは、自動的に変換されません。

  • .NETの配列は、自動的に変換されません。

  • 通常、(文字列や数値などの)簡単な値を使用した場合は、Magic xpaは自動的にそれらを適切な.NETのデータ型に変換します。
    しかし、変換がユニークでない(例えば、メソッドがオーバロードされおり、Int型かLong型のデータを両方とも受け取ることができるようになっている)場合や、特殊な.NETタイプに変換する必要がある場合は、DNCast()関数を使用して変換する必要があります。

  • .NETのDatatimeプロパティを数値で更新しようとする場合（例：Datetime+12）、自動変換は失敗し、構文エラーが発生します。これはMagic xpaでは日付の内部表記が数値だからで、結果は数値になります。この問題を解決するためには、AddDate関数を使用することができます。

自動的変換は以下のような場合に使用されます。

  • .NETメソッドを呼び出す際のデータの受け渡し

  • 式を使用した項目の更新
    ベクトル型：自動変換は､簡単なベクトル項目でのみ有効です。複雑なベクトル項目では、自動変換されません。


NET連携 NET利用時の注意事項

ホーム > リファレンスガイド > .NET連携 > .NET利用時の注意事項

.NET利用時の注意事項

.NET Frameworkの特定のバージョンのアセンブリを使用する場合は、クライアントにも.NET Frameworkのそのバージョンをインストールしておくことを確認してください。

クライアントPCからアプリケーションを実行する場合、プログラムが.NETアセンブリを必要とすると、アセンブリはグローバルなアセンブリ・キャッシュ（GAC)からに読み込まれます。

アセンブリがGACで見つからない場合や、アセンブリが非オフラインプログラムで必要な場合、RIAモジュールはサーバからクライアントにアセンブリを自動的にコピーします。

サーバ側の位置は､［コンポーネント］リポジトリの［.NETアセンブリ］特性に定義されたパスになります。開発環境と運用環境でパス環境が異なる可能性がある場合は、論理名を使用して定義することを推奨します。

これらが依存アセンブリ（別のアセンブリで必要となるアセンブリ）が［コンポーネント］リポジトリ内に存在しない場合、クライアントにダウンロードされないことに注意してください。

このため、依存アセンブリを持つアセンブリを使用する場合、同じように［コンポーネント］リポジトリでこのアセンブリを定義することを推奨します。これによって、必要な場合にクライアントにダウンロードされます。

オフラインタスク

オフラインプログラムで使用される場合、［コンポーネント］リポジトリで定義されたサードパーティの.NETアセンブリは自動的にクライアントにはダウンロードされません。

オフラインプログラムがサードパーティの.NETアセンブリを使用する場合は、予めこれらをクライアント上にインストールするか、最初の起動時にアセンブリをクライアントへコピーするためにServerFileToClient関数を使用しなければなりません。


Javaとの連携

ホーム > リファレンスガイド > Java連携

Java連携

Java との連携機能とは、JavaクラスやEJB(Enterprise Java Beans)のインスタンスを表す「疑似参照」を用いることによって 、Magic xpaがJava クラスやEJBと接続する機能です。Javaクラスに対しては、疑似参照を使用しないでスタティックメソッドや変数にアクセスすることもできます。インスタンスやスタティックメソッドまたは、変数は、JavaやEJB用の関数を使用してアクセスすることができます。

Java コンポーネントジェネレータは、JNIのシグニチャを使用しないでコンポーネントを作成することによって、自動的にJavaクラスやEJBメソッドにアクセスさせることができるウィザードです。

関連トピック：

Javaの用語

JavaとEJB用の関数

コードページ

タイプシグニチャ

実行エンジンの動作


Javaの用語

以下の用語は、様々な Javaクラスの要素を表しています。

Java クラス (Java Class) | Javaクラスは、特別な種類のオブジェクト内にあるメソッドと変数のテンプレート定義です。オブジェクトは、クラスの特定のインスタンスとなることができ、変数の代わりに実数値を含めることができます。
クラスインスタンス (Class Instance) | Javaクラスの実体
スタティッククラスメソッド (Static Class Method) | クラスをインスタンス化せずに呼び出す事のできるクラスメソッド
スタティッククラス変数 (Static Class Variable) | クラスをインスタンス化せずにアクセスできるクラス変数
コンストラクタメソッド (Constructor Method) | 新しいクラスオブジェクトがインスタンス化された時に自動的に初期化される機能
疑似参照 (Pseudo-Reference) | クラスインスタンスを表すxpaの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連携 > JavaとEJB用の関数

JavaとEJB用の関数

Magic xpaは、メソッドを実行したり、疑似参照を使用して変数を参照したり更新したりするJavaクラスのインスタンスを作成することができます。疑似参照とは、Javaクラスのインスタンスを表すBLOB項目です。メソッドが呼び出されると関数の戻り値としてBLOB値をMagic xpaに返します。

クラスのスタティックメソッドや変数は、クラス名とメソッドまたは変数名を指定することで、Java クラスのインスタンスを作成しないでアクセスすることができます。

以下のMagic xpaの関数は、Javaでのメソッド呼び出しのように使用することができます。エンジンの各コンテキストは疑似参照と実参照の間で内部マップを作成します。

例えば、 Magicプログラムは、変数項目（A）として疑似参照を作成する場合、JCreate関数を使用します。インスタンスに対する実参照は、変数項目（A）と内部的にリンクしています。コンテキスト内のあらゆるMagicプログラムは、JCall(A,….) を使用することでメソッドやオブジェクトの変数にアクセスすることができます。

Java関数をMagicプログラムから呼び出すことで次のようなことができます。

  • Javaクラスの新しいインスタンス作成

  • Java クラスかインスタンスのメソッド呼び出し

  • 例外報告の取得

  • 変数の値の照会や更新

EJB関数は、Magic xpaがEnterprise Java Beansを検証して、呼び出すことができます。

JavaとEJBの関数の一覧と説明はここをクリックして参照してください。

JavaとEJBエのラー関連の関数

Javaクラスのメソッドによって例外がスローされた場合、JCreate、JCall、JCallStaticの各関数は、NULL値を返します。例外や例外テキストの疑似参照を受け取るためには、JExceptionかJExceptionTextのいずれかの関数を呼び出す必要があります。

Magic xpaは、別の関数が呼ばれるまでJExceptionかJexceptionText関数を繰り返し呼び出すことができます。

JExceptionOccurred関数で、発生した例外の内容を確認することができます。


コードページ

Javaの文字とMagic xpaの文字を変換する際に使用される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


タイプシグニチャ

以下の表で示されるように、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の開発キット(JDK)や、実行モジュール（JRE)がインストールされている必要があり、呼ばれるJavaクラスは、環境変数に定義されたクラスパス上に配置しなければなりません。

ライフサイクル

マルチスレッド

ブラウザベースのプログラム

変換テーブル

疑似参照の戻り値

エラーと例外処理

ガーベッジコレクション機能

ライフサイクル

コンテキストの終了時、Java関数やEJB関数により獲得された全ての疑似参照がJVMから解放されます。

マルチスレッド

各エンジンのコンテキストは、自身の疑似参照を持っています。1つのエンジンのコンテキストの疑似参照は、同じJavaクラスのものであっても、別のエンジンのコンテキストの疑似参照に対して影響を与えません。スタティックなクラスメソッドや変数のアクセスは、メソッド内の同期化されたキーワードを使用することによってJavaサイドで同期化される必要があります。

ブラウザベースのプログラム

Magic xpaは、コンテキストのライフサイクル内でJCreate関数を使用して疑似参照を作成し、エンジンコンテキストのサブシーケンスイベント内で利用することができます。

変換テーブル

以下のテーブルは、JCreate、JCall、JSet、JCallStatic、JsetStaticの各関数に渡される値と、Jcall、JGet、JCallStatic、JGetStatic の各関数の戻り値のシグニチャによって自動変換される内容です。

Magic xpaの型 | 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 xpaの型
基本関数型 | オブジェクト型 |
char, char[ ] | String, StringBuffer, Character | 文字(32Kまで) BLOB (32K超)
byte[ ] |  | BLOB
boolean | Boolean | 論理
byte, short, int, long, float, double | Byte, Short, Integer, Long, Float, Double | 数値

疑似参照の戻り値

signature*p を使用することで前のセクションで説明した自動変換を無効にすることができます。

自動変換するには以下のようにします。

JCall(A,’increment2’,'()Ljava/lang/Long;')

関数はLong型の数値を返します。

自動変換を無効にするには以下のようにします。

JCall(A,'increment2','()Ljava/lang/Long;*p')

関数は、Long型の疑似参照 (BLOB項目) を返します。

エラーと例外処理

Magic xpaのJava関数は、クラスのロードや指定されたタイプシグニチャによって、要求されたコンストラクタを設置に失敗する場合があります。このような場合、Java関数によって例外をキャッチすることができます。

ガーベッジコレクション機能

タスクの終了時、更新されたパラメータや戻り値の更新内容を反映後、Magic xpaは疑似参照の値を自動的に解放します。この値は、タスクを含むタスクツリー内の変数には割り当てられません。この動作によって、不必要なリソースが解放されます。


JCG

ホーム > リファレンスガイド > Java連携 > Javaコンポーネントジェネレータ

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

Javaコンポーネントジェネレータ（以下JCG と略します。）は、Magic xpaが特定の JNI シグニチャを指定することなくJavaクラスやEJBファイルにアクセスできるように、コンポーネントを作成するユーティリティです。

  1. 以下のメインウィザードモジュールの手順に従って、コンポーネントジェネレータにアクセスします。

  2. JCGを起動するには、サブメニューからJavaコンポーネントを選択します。［オブジェクトタイプ］ダイアログからオプションを選択します。

注意：

オブジェクトブラウザには、クラスパス内のサブフォルダ名が表示されますが、そこに表示されるオブジェクトを選択しても無効になります。クラスファイルの場合は、<no package>内のクラス名を選択してください。

環境設定

Javaオブジェクトにアクセスするには、OSの環境変数かMAGIC.INIの［MAGIC_JAVA］セクションでCLASSPATHを指定する必要があります。


JCG JavaクラスやEJBタイプの指定

ホーム > リファレンスガイド > Java連携 > Javaコンポーネントジェネレータ > JavaクラスやEJBタイプの指定

JavaクラスやEJBタイプの指定

［JavaクラスとEJB］ダイアログから、作成するJavaコンポーネントのタイプ(JavaクラスまたはEJB)を選択することができます。

EJBを選択すると、以下のフィールドが有効になります。

  4. 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 クラス構造］ダイアログが表示されます。


JCG Javaオブジェクトブラウザ

ホーム > リファレンスガイド > Java連携 > Javaコンポーネントジェネレータ > クラスの選択

クラスの選択

Javaオブジェクトブラウザのツリーからクラスを選択することができます。

ブラウザには、パッケージ名が表示され、そのサブノードにクラスが表示されます。パッケージ化されていない場合は、<no package> というノード内にクラスが表示されます。

パッケージ名ではなく、サブフォルダ名で表示される場合もあります。ここから選択しても無効になります。

［次へ］ボタンをクリックすると、ウィザードが自動的にJExplore 関数を起動し、［Java クラス構造］ダイアログが表示されます。Java クラスにアクセスできなかった場合、以下のメッセージを表示します。

Javaクラスが見つかりません.クラスを確信してください:XXXXX

注意：

一度JCGを実行した後にクラスパスを変更した場合、以前の情報がそのまま表示される場合があります。変更されたクラスパスの情報が表示されない場合、［再表示］ボタンをクリックしてください。それでも表示されない場合は、クラスパスの内容を確認してください。


JCG Javaクラス構造

ホーム > リファレンスガイド > Java連携 > Javaコンポーネントジェネレータ > Java クラス構造

Javaクラス構造

コンポーネントインタフェースを作成するために、オブジェクトを選択することができます。

各Javaクラスでは、以下のインタフェースオブジェクトが表示されます。

  • コンストラクタ

  • メンバ変数

  • メソッド

  • スタティックメンバ変数

  • スタティックメソッド

コンテンツを持ったJava クラスのクラス構造だけが表示されます。例えば、スタティックメンバがない場合、スタティックメンバオブジェクトはツリーに表示されません。メソッドはパラメータを含めて表示されます。

オブジェクトブラウザにはクラスパス内のサブフォルダ名が表示されますが、そこに表示されるオブジェクトを選択しても無効になります。クラスファイルの場合は、<no package>内のクラス名を選択してください。

JCG は、配置されたノードから、そのノードの全ての子要素のオブジェクトを呼ぶプログラムを作成します。

［次へ］をクリックすると［型の変更］ダイアログが表示されます。


JCG 型の変更

ホーム > リファレンスガイド > Java連携 > Javaコンポーネントジェネレータ > 型の変更

型の変更

このダイアログは、JavaタイプとMagicタイプでのデータ型のマッピングを表示します。選択したクラスで見つかった各フィールドの書式を変更することができます。

［次へ］をクリックすると、［作成されるJavaコンポーネント］ダイアログが表示されます。


JCG 作成されるJavaコンポーネント

ホーム > リファレンスガイド > 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開発

ホーム > リファレンスガイド > Web 開発

Web 開発

Magic xpaを使用することで、TML、やJavaまたは.NETのプログラミングの知識が無くてもブラウザベースのアプリケーションを開発することができます。Magic xpaでは、以下のようなアプローチでインターネット／イントラネット用のアプリケーションを設計／開発することができます。

  • 以下の機能を使用してWebブラウザで動作するアプリケーションの開発

  • フレームセット

  • マージ

  • .NETのリッチクライアント・アプリケーションの開発 …… アプリケーションはリッチクライアントのタイプとしてタスクが定義され、.NETシンクライアントのエンジンに基づくリッチインタフェースを提供します。このアプローチはWebブラウザーの束縛を受けることがなく、Magic xpa Studioですべてのクライアントインタフェースを処理することができます。

  • モバイルRIAの開発

これらのアプローチは、個別に行うことも、組合せて使用することもできます。

Webアプリケーションの作成、編集、テストを行うためのツールとして、Magic xpaを使用することができます。Magic xpaは、これらの要素がWebブラウザ上でどの様に表示されるかを確認することもできます。また、デバッグすることもできます。

注意：

ブラウザクライアントは、サポートしておりません。


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

Magic xpaでは、リッチインターネットアプリケーション（RIA）を開発することができます。RIAは、リモート環境で運用するためのビネスアプリケーションの開発／実行を行うためのプラットフォームです。

RIAアプリケーションを実行する上での必要条件として、クライアント上に以下の環境をインストールする必要があります。

  • IIS …… Windowsの［Windowsの機能の有効化または無効化］でIISの機能を有効化します。

  • .NET Framework Common Language Runtime (CLR) 2.0 …… .NETフレームワークは、Windows Vista SP1以上であればすでにインストールされているため、手動でインストールする必要はありません。

これらのインストールパッケージは、Magic xpaの Scripts\RIAサブフォルダにコピーされているため、手動でインストールすることもできます。リッチクライアントインタフェースビルダによって作成されるHTMLファイルは、簡単にインストールできるように、これらのファイルに対するリンクが含まれています。

注意:

リッチクライアントで扱われるXMLデータを暗号化させる場合は、MAGIC.INI ファイルの［MAGIC_SPECIALS］セクションに「SecureBrowserClient=Y」を設定してください。

リッチクライアントアプリケーションの開発や実行環境の構築のために、Magic xpaでは以下のユーティリティを提供しています。

  • リッチクライアントインタフェースビルダ

  • リッチクライアント準備ユーティリティ

以下のトピックは、リッチクライアントアプリケーションの開発に必要な情報が提供されています。

  • リッチクライアントタスク

  • リッチクライアントとオンラインの違い

  • リッチクライアント関数

  • リッチクライアントのデータビューの規則

  • クライアントへの大きなデータの送信

  • リッチクライアントのパーティショニング

  • リッチクライアントの内部イベント

  • クライアント/サーバ処理

  • 並行実行

  • クライアント側のデバッグ

  • 共通エラー

  • RIA実行ファイル

  • オフラインと非オフラインの違い

関連トピック：

RIAチュートリアル

リッチクライアント補足 （Mastering Magic xpa）


コンポーネントビルダ リッチクライアント

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > リッチクライアントインタフェースビルダ

リッチクライアントインタフェースビルダ

リッチクライアントアプリケーションで必要なファイルを作成するために、Magic xpaはリッチクライアントインタフェースビルダを提供しています。

以下の操作でリッチクライアントインタフェースビルダを起動させることができます。

  1. ［オプション］メニューを開き、［インタフェースビルダ］をクリックし、［リッチクライアント］をクリックします。

  2. ［ウェルカム］ダイアログから、［次へ］をクリックします。［環境設定］ダイアログが表示されます。

注意：

  • MAGIC.INIの［MAGIC_RIA］セクションに”ClientModulesPath=RIAModules\ ”の（Ver1.8以前で使用された）記述が残っていると、ビルド処理が行われません。

  • Magic xpa Richclient Serverをインストールした場合や追加コンポーネントでインターネットリクエスタをインストールした場合、OSのスタートメニューから、リッチクライアントインタフェースビルダーを実行することができます。環境ファイルを開発用PCからサーバにコピーしたい場合は、Builders\RC\RC_metadata.からビルダのメタデータをコピーしてください。

  • Android版のクライアントモジュールとiOS版のクライアント・ビルドファイルを作成することができますが、JavaのSDKがインストールされている必要があります。Android版を作成する場合は、AndoridのSDKも必要です。


コンポーネントビルダ リッチクライアント 環境設定

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > リッチクライアントインタフェースビルダ > 環境設定ダイアログ

［環境設定］ダイアログ

このダイアログでは、動作環境設定の作成や修正、削除を行うことができます。

一度に複数の設定項目を選択することができます。

［新規］をクリックするか、既存の環境情報を選択して、［次へ］をクリックすると、アプリケーションの設定ダイアログが表示されます。


アプリケーションの設定ダイアログ

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > リッチクライアントインタフェースビルダ > アプリケーションの設定ダイアログ

［アプリケーションの設定］ダイアログ

このダイアログでは、設定とプロジェクト設定を更新することができます。

ダイアログには、以下の特性が含まれています。

設定

説明

アプリケーションタイトル

ここに設定された名前は、［環境設定］ダイアログに一覧表示されます。また、アプリケーションがクライアント側に配布された場合、メニューなどでエンドユーザが参照できる名前として表示されます。

ビルドされるファイル名にも反映されます。

注意：

モバイルの場合は、日本語（半角カタカナ含みます）を使用しないでください。

アプリケーションの説明

アプリケーションの説明を入力します。

Windows版のWelcome画面に反映されます。

発行元の名前

発行元の名前として表示されます。

Windows版のWelcome画面に反映されます。

コピーライト

コピーライトのメッセージを入力します。

モバイル仕様：

この設定は反映されません。

バージョン番号

アプリケーション・コードのバージョンを表す整数値を指定します。この値は別のバージョンとの比較で使用されます。

既に同じアプリケーションがインストールされていてアップグレードする場合はこの数値を更新してください。

注意：

"n.m" というようなピリオドによる区切り表記は利用できません。

バージョン名

アプリケーション・コードのリリース・バージョンを表す任意の文字列を指定します。ここで指定された値がユーザに対して表示されます。

［次へ］をクリックすると、［サーバ情報］ダイアログが表示されます。

サポートバージョン：

2.3


コンポーネントビルダ リッチクライアント サーバ情報

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > リッチクライアントインタフェースビルダ > サーバ情報ダイアログ

［サーバ情報］ダイアログ

このダイアログでは、Webサーバ上に設定する位置とエイリアスの環境情報を指定することができます。

アプリケーションの実行環境は、以下の二つのサーバに別けることができます。

  • 公開用サーバ …… RIAモジュールや、アプリケーションのマニフェストとHTMLファイルが含まれています。

  • アプリケーションサーバ …… アプリケーション用のインターネットリクエスタが含まれています。

［サーバ情報］ダイアログには、以下の特性が含まれています。

公開用Webサーバ環境

特性 | 説明
サーバ名 | HTMLファイルとマニフェストファイルを配置し、エンドユーザに公開するサーバ名またはIPアドレスを指定します。この指定は必須で、空白にはできません。
ドキュメントエイリアス名 | Webサーバ上のリッチクライアントモジュールフォルダのエイリアス名。この特性の設定は必須です。空白のままにしておくことはできません。 デフォルト値は、Magic.iniファイルの［MAGIC_ENV］セクションの］のWebDocumentAliasで指定された値になります。
公開アプリケーション用エイリアス名 | Webサーバ上のRIAアプリケーション用ファイル（HTMLファイルとマニフェストファイル）を格納するフォルダのエイリアス名。以下の書式で指定してください。 <Webサーバに定義されているアプリケーション用エイリアス名>/<アプリケーション固有の名前> アプリケーション用エイリアスのデフォルト値は、Magic.iniファイルの［MAGIC_BUILDERS］セクションの］のRIAApplicationsAliasで指定された値になります。 エイリアス名は、必ず２階層で指定してください。

アプリケーション用Webサーバ環境

特性 | 説明
サーバ名 | Magic xpaのアプリケーションファイルが格納されているサーバ名またはIPアドレスを指定します。
インターネットリクエスタ | 使用するインターネットリクエスタの名前を指定します。 デフォルト値は、［動作環境］の［HTTPリクエスタ］の内容になります。この値が2階層を越えている場合、正しく取得できません。このような場合は、手動で入力し直してください。
セキュアプロトコル（https）の使用 | アプリケーションを実行する際に、httpかhttpsのどちらを使用するかを指定します。

注意：

IIS以外のWebサーバで運用する場合、Webサーバに以下のMIMEタイプ拡張を定義する必要があります：

拡張子 | コンテンツタイプ
manifest | application/x-ms-manifest
application | application/x-ms-application

［次へ］をクリックすると、［実行コマンド］ダイアログが表示されます。


コンポーネントビルダ リッチクライアント 実行コマンド

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > リッチクライアントインタフェースビルダ > 実行コマンドダイアログ

［実行コマンド］ダイアログ

このダイアログでは、実行されるプログラムとアプリケーション起動時に読み込まれる環境変数を設定することができます。

特性

説明

アプリケーション名

呼び出すMagicアプリケーションの名前を指定します。

開始プログラム名

リッチクライアントアプリケーションを実行する場合、リッチクライアントMDIを開いたり、指定したプログラムを実行することができます。

この特性が空白のままの場合、メインプログラムが実行され、ここに定義されたMDIが表示されます。

MDIを使用しない場合は、この特性に実行するリッチクライアントプログラムの公開名を指定する必要があります。

この特性は、手動で入力したり、選択リストから選択することができます。ユーザが選択可能なプログラムが存在する場合、［...］ボタンが表示されます。このボタンをクリックすると、現在のプログラム内の以下の条件にあてはまるプログラムの一覧が表示されます。

  • ［タスクタイプ］特性が「リッチクライアント」に設定されている

  • 公開名が指定されている

  • ［外部］カラムがチェックされている

モバイル仕様：

モバイルで実行させる場合に必要です。

環境変数

リッチクライアントの起動時に、クライアントPCから読み込まれる環境変数をカンマ区切りで指定することができます。GetParam()関数を使用することで、指定された環境変数の内容を参照することができます。

クライアント側で一旦リッチクライアントタスクが起動されると、ClientOSEnvGet()関数を使用することで、任意の環境変数を取得することができます。

モバイル仕様：

モバイルでは不要です。

特性 | 説明
外部の設定ファイルを参照 | ここがチェックされた場合、ビルドファイルに組み込まれる execution.properties ファイル内には実際の実行特性ではなく、サーバ上の環境ファイルを参照する URL が定義されます。 この設定は、Windows 版ではサポートされません。
外部設定ファイル名 | アプリケーションの実行特性が設定された環境ファイルの名前を指定します。デフォルト値は、［アプリケーションの設定］ダイアログ内の［アプリケーションタイトル］から空白を削除した名前をもとに設定されます。［外部設定ファイルファイルを参照］がチェックされると有効になります。 ファイルは、［実行環境の設定］ダイアログ の［作成フォルダ］で指定したフォルダに作成されます。 この設定は、Windows版ではサポートされません。

［次へ］をクリックすると、［実行環境の設定］ダイアログが表示されます。

注意：

Magic xpa RIA Serverがインストールされた環境でインタフェースビルダを実行した場合、［アプリケーション名］や［開始プログラム名］は自動的に表示されません。また、参照ボタンで確認することもできません。予め確認しておいてください。


コンポーネントビルダ リッチクライアント 実行環境 19

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > リッチクライアントインタフェースビルダ > 実行環境の設定ダイアログ

[実行環境の設定]ダイアログ

このダイアログでは、ウィザードで作成される環境設定ファイルの位置を設定することができます。

特性

説明

実行ファイル

以下のデバイスの中から配備ファイルを作成したいデバイスを選択してください：

  • Windowsデスクトップ

  • Android

  • iOS

作成フォルダ

全ての設定ファイルが作成されるフォルダ。

各OS毎にOS名のサブフォルダが作成されます。

注意：

Ver2.3以前のバージョンでは、Windows用の配備ファイルは、サブフォルダに作成されませんでした。以前と同じような動作にする必要がある場合、以前のバージョンのビルダ用メタデータファイルを使用してください。


Windows の設定ダイアログ

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > リッチクライアントインタフェースビルダ > Windows の設定ダイアログ

［Windows用の設定］ダイアログ

Windows用の配備オプションを選択した場合、このダイアログが表示されます。

このダイアログから、Windows用の設定を指定することができます。

特性

説明

アプリケーション・アイコン

ClickOnceを使用して実行する場合に、スタートメニューに表示されルアイコンファイル。

アプリケーションのインストールとショートカットの作成

この特性は、アプリケーションをインストールして、スタートメニューにアプリケーションのショートカットを作成するかどうかを指定します。

スプラッシュイメージ

RIAの起動時に表示されるスプラッシュイメージを指定します。PNGファイルのみサポートします。

サポートバージョン：

2.4

証明書

この特性は、署名されたマニフェストファイルのファイル名とパスを指定します。

注意：

  • .NETは、証明書を使用してファイルに署名する必要があります。発行元を確認することができないため、Magic xpaによって提供される証明書を使用することは推奨できません。

  • Magic xpaによって提供される証明書は、Ver2.3で変更されました。Ver2.3以前のアプリケーションを署名するためにこの証明書を使用する場合は、該当するバージョンの証明書を使用してください。

証明書のパスワード

証明書ファイルを使用するためのパスワード。Magic xpaによって提供される証明書が使用するパスワードが以下の通りです。

test


Androidの設定ダイアログ

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > リッチクライアントインタフェースビルダ > Androidの設定ダイアログ

［Androidの設定］ダイアログ

Android用の配備オプションを選択した場合、このダイアログが表示されます。

このダイアログから、Android用の設定を指定することができます。

SDKの設定

特性

説明

SDKのフォルダ

Android SDKがインストールされているフォルダを指定します。

プラットフォーム

コンパイルが実行されるバージョンを指定します。

パスは指定せず、フォルダ名のみ指定します。

最小バージョンは、"android-15"です。

注意：

Android SDK Managerで事前にコンパイルするバージョンをインストールしておいてください。

ビルドの設定

特性

説明

パッケージ名

プロジェクトのID。パッケージ名は小文字で指定してください。Androidシステム上にインストールされるすべてのパッケージ全体でユニークでなければなりません。大文字が使用された場合、ビルド用スクリプトには小文字に変換して設定します。

パッケージ名には、数値や数と‘new’のようないくつかの予約語を含めることができません。

リソースフォルダ（イメージ）

リソースを保存したいフォルダを指定します。

フォルダ内のファイル名は、デフォルトフォルダ内のファイルと同じ名前にする必要があります。

デフォルトでは、特性は［Magic xpaインスールフォルダ］\RIAModules\Android\Source\resを参照しています。

独自のアイコンでアプリケーションをカスタマイズしたり、起動時にロゴを表示させたい場合は、res\drawable-XXXフォルダ内の全てのイメージを差し替える必要があります。

全のアイコンファイルは、以下のサイズでを提供する必要があります。

  • 36x36

  • 48x48

  • 72x72ピクセル

ロゴファイルは、デバイスの画面サイズに対応して提供してください。

認証

特性

説明

Key store

Keystore用のプロパティです。

注意：

デフォルトでは評価用のファイルが指定されていますが、運用環境で使用する場合は、独自に作成してください。

Keystoreファイルの作成方法は、『モバイルRIA開発者ガイド』を参照してください。

Key store のパスワード

Key alias

Key aliasのパスワード

サポートバージョン：

2.3


iOSの設定ダイアログ

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > リッチクライアントインタフェースビルダ > iOSの設定ダイアログ

［iOSの設定］ダイアログ

iOS用の配備オプションを選択した場合、このダイアログが表示されます。

このダイアログから、iOS用の設定を指定することができます。

注意：

  • iOSデバイスでは、Mac OS上でコンパイルを行う必要があるため、ビルド作業に必要なファイルの作成のみを行います。作成されたファイルMac側にコピーして、ビルド用のスクリプトを実行する必要があります。

  • iTunesArtworkとiTunesArtwork@2xのファイルも必要に応じてMac側にコピーしてください。

  • ビルド方法については、『モバイルRIA開発者ガイド』を参照してください。プロビジョニングファイルの作成方法については、『iOSモジュールのビルド作成ガイド』参照してください。

ビルドの設定

特性

説明

アプリケーションID

アプリケーションのID。このIDは、iOSシステム上にインストールされるすべてのパッケージ全体でユニークにする必要があります。

AppleのiOS Provisioning Profioiles に登録したApp IDをもとに指定する必要があります。

注意：

大文字小文字を区別します。

リソースフォルダ（イメージ）

リソースを保存したいフォルダを指定します。

フォルダ内のファイル名は、デフォルトフォルダ内のファイルと同じ名前にする必要があります。

デフォルトでは、特性は［Magic xpaのインストールフォルダ］\RIAModules\iOS\Sourceを参照します。独自のアイコンやスプラッシュイメージを使用してアプリケーションをカスタマイズしたい場合、Sourceフォルダ内の以下のイメージファイルを置き換える必要があります。

  • デバイスのアイコン …… iPad* と iPhone* のイメージ

  • iTunes と App Store のアイコン …… iTuneArtwork* イメージ。注:ファイルに拡張子は付けません。

  • 起動時のロゴ …… Default* のイメージ

認証

特性

説明

開発名

Appleに登録している開発アカウント名を指定します。

Appleのキーチェーンアクセスに登録されている証明書の名前を指定してください。

プロビジョングのタイプによって、（Appleのポータルの証明書画面に表示されるような)"iPhone Distribution" または "iPhone Developer" を接頭辞として付加してください。

たとえば、iOS Dev Centerのメンバーセンターの｢Certificates｣に登録されている証明書の名前が"Magic Software Japan K.K."の場合、開発用証明書での開発者名は"Phone Developer: Magic Software Japan K.K."、配布用の証明書は "iPhone Distribution: Magic Software Japan K.K."となります。

プロビジョニングファイル

ここには、プロビジョニングの作成後にAppleの開発ポータルからダウンロードしたファイルを指定します。

アップリケーションIDや開発名と整合性のあるプロビジョニングファイルを指定してください。設定内容に整合性がとれないと、正常にビルドすることができません。

例：Magic_distribution.mobileprovision

サポートバージョン：

2.3


コンポーネントビルダ リッチクライアント 配備手順

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > リッチクライアントインタフェースビルダ > 配備手順表示ウィンドウ

配備手順表示ウィンドウ

作成されるファイルは、［Magic xpaのインストールフォルダ］\PublishedApplications\<アプリケーション名> の配下に各OS別のフォルダ毎にコピーされます。

ファイルが正常に作成され、エラーが発生しなかった場合、環境設定ファイルにアクセスするためのURLが表示されます。

WindowsとAndoridの場合は､［実行時のリンク先］に表示されているURLをブラウザでアクセスすることでインストールできます。

Android版とiOS版のアプリケーションについての詳細は、ホワイトペーパの『モバイルRIA開発ガイド』を参照してください。

Windows

Windows用の場合、Magic xpaのRIAの実行は、ClickOnceを使用して行われます。リッチクライアントインタフェースビルダは、2つの設定ファイルを作成します。

  • 公開用Webページ …… publish.html というHTMLファイルで、アプリケーションの実行特性（例えば、開始するアプリケーション名と公開プログラム名）が含まれています。このファイルは、必要なファイルへのリンクも含まれています。
    HTMLファイルには、.NETフレームワークをインストールするためのリンクが含まれています。このリンクを使用して.NETフレームワークをインストールする場合は、Webエイリアスに適切な権限が必要です（場合によっては、実行権限によって、.NETフレームワークのインストールがブロックされるかもしれません)。

  • 実行用マニフェスト …… RIAモジュールのパスのようなClickOnceの配備に必要な情報が含まれているClickOnceのアプリケーションファイルです。

注意：

  • Magic xpaエンジンをアップグレードする場合、マニフェストファイルも常に再作成する必要があります。

  • RIAは、GuestアカウントでClickOnceを使用して配備することができませんん。

  • Magic Studio 環境で実行するプロジェクトでClickOnceを使用したい場合、実行モードをバックグラウンドに設定する必要があります。

Android

リッチクライアントインタフェースビルダは、PublishedApplications\<アプリケーション名>\Androidフォルダに.apk（アプリケーション）ファイルと.txtファイルを作成します。

  • .apkファイル …… Androidデバイスでアクセススすることでインストールすることができます。

  • .txtファイル …… アプリケーションにアクセスする場合のプロパティファイルです。エイリアスが公開されているフォルダにコピーして、Androidアプリケーションからこのファイルにアクセスすることでアプリケーションに接続できます。

iOS

注意：

iOS版のアプリケーションは、Mac OS上でビルドする必要があります。

リッチクライアントインタフェースビルダは、PublishedApplications\<アプリケーション名>\iOSに以下のファイル／フォルダを作成します。

  • install.htm …… デバイスからアプリケーションをインストールするためのポータルとなるHTMLファイル。

  • manifest.plist …… アプリケーションをインストールするためのプロパティが定義されているファイル。

  • txtファイル …… アプリケーションにアクセスする場合のプロパティファイルです。エイリアスが公開されているフォルダにコピーして、iOSアプリケーションからこのファイルにアクセスすることでアプリケーションに接続できます。

  • buildフォルダ …… iOSアプリケーションのビルド用ファイルが格納されています。以下の手順でビルドします。

  • このフォルダごとMacにコピーします。

  • ウイザードで指定したプロビジョニングファイルをbuildフォルダ内にコピーします。

  • buildフォルダ内のシェルスクリプトファイル（build.sh）をMac側のターミナルで実行させることでアプリケーションファイル（.ipa）が作成されます。

  • 作成されたアプリケーションファイル（.ipa）を元の居場所（PublishedApplications\<アプリケーション名>\iOS）にコピーして、iPhone/iPadからinstall.htm を開くことでアプリケーションインストールすることができます。


コンポーネントビルダ リッチクライアント 公開用Webページ

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > リッチクライアントインタフェースビルダ > 公開用Webページ

公開用Webページ

公開用Webページ（publish.html）は、リッチクライアントインタフェースビルダによって作成され、リッチクライアントプログラムの公開／実行を行うために実行用マニフェストファイルとともに使用されます。

デフォルトでは、PublishedApplications\[プロジェクト名]\WinDesktop フォルダに作成されます。

リッチクライアントアプリケーションの詳細情報は「rcExecProps」のIDを持つ、XMLアイランド内に定義されます。

マニフェストファイルと公開用Webページは、常にWebサーバ上の同じフォルダに配置してください。

公開用Webページには、2つの主要な機能が含まれています。

  • 必要な実行環境へのリンク

  • リッチクライアントアプリケーションの詳細定義

Cookie

Cookieを渡す処理については、HTTPリクエストを使用してCookieを渡す を参照してください。

関連トピック：

リッチクライアントのログオンダイアログの言語を変更するには


HTTPリクエストを使用してCookieを渡す

publish.html（アプリケーション公開用HTMLファイル）には、"collectRequiredCookies（)"という名前のJscript関数が含まれています。

collectRequiredCookies（)関数内に"aRequiredCookies" という名前の配列を追加し必要なCookieの名前を指定することで起動時に指定されたCookieの値が送られます。

function collectRequiredCookies()

{

var aRequiredCookies = new Array();

aRequiredCookies[0] = "Name1";

aRequiredCookies[1] = "Name2";

この例は、"Name1"と"Name2"という名前の2つのCookieを指定しています。

publish.htmlのlaunchApplication（)関数は、collectRequiredCookies（)関数を呼び出して、以下のような書式でRIAアプリケーションを起動します。

例：

https://myserver/MagicRIAApplications/myapp/my.application?cookies=Name1=val1,Name2=val2

起動されたリッチクライアントアプリケーション側で、GetParam()関数を実行することでCookieの値を取得することができます。

注意：

Cookieを渡すことができるのは、publish.htmlを使用して起動したときだけです。インストール後に、Windowsのスタートメニューのショートカットから起動した場合は、Cookieは渡りません。


実行用マニフェストファイル

マニフェストファイルは、リッチクライアントインタフェースビルダによって作成され、リッチクライアントプログラムをデプロイし、実行するために公開用Webページとともに使用されます。

マニフェストファイルと公開用Webページは、常にWebサーバ上の同じフォルダに配置してください。

マニフェストファイルは、RIAモジュールのバージョン情報などのClickOnceのためのデプロイ手順が含まれています。

Magicエンジンのアップグレードとダウングレード

サーバ上のMagicエンジンをアップグレーした場合、RIAモジュールのバージョンも更新されます。

配備方法に基づいた対応を行う必要があります。

  • ClickOnceを使用してアプリケーションがクライアントに配備された場合、マニフェストファイルを作成し直す必要があります。

クライアントでアプリケーションを実行する際、ClickOnceはサーバ側で必要なRIAモジュールが更新され、クライアント・モジュールをアップグレードする必要があることを自動的に認識します。

Magicエンジンの旧バージョンに戻る必要があり、そして、新バージョンにアップグレードしクライアントがある場合、次の2つの選択肢があります。

  1. (コントロールパネルを使用して)クライアント側のアプリケーションをアンインストールしてください。その後、アプリケーションを再実行してください。

  2. マイナーバージョンを要求しないように、マニフェストを変更してください。これによって、バージョンを更新するかどうかを確認する確認ダイアログが表示されます。アップグレードを行わないように指定した場合、確認ダイアログは再表示されないため、推奨できる方法ではありません。最小バージョンを要求しないようにするには、リッチクライアントインタフェースビルダが使用する以下のテンプレートファイルから、minimumRequiredVersionプロパティ削除する必要があります。

<Installation folder>\Add_On\Builders\Templates\PublishHtml.tpl

  • RIAモジュールを直接起動してアプリケーションをクライアントで実行させると、内部のアップグレード/ダウングレード処理が実行されます。マニフェストファイルを更新する必要はありません。DisableVersionUpdateキーを使用することで、この機能を無効にすることができます。

マニフェストファイルの保護

.NETのマニフェストファイルを実行するには、証明書によって適切に認証する必要があります。これはリッチクライアントインタフェースビルダを使用する際に、証明書とそのパスワードを指定することによって処理されています。

Magic xpaのインストール時に提供されている test証明書ファイルは、発行元が確認できないため、実運用では使用しないように推奨します。発行元が確認できる、第三者機関によって発行された証明書を使用するようにしてください。

Magic xpaのインストールフォルダにおいて入手可能なmage.exeユーティリティを使用することで、手動でマニフェストを認証することができます。

この場合、パラメータを指定して実行してください。

mage_V2.exe -sign <manifestfilename> -certfile <certificatefile> - password <certification password>

注意：

.NET Framework Ver4がインストールされている場合は、Mage.V4.exe を使用してください。


アプリケーションの実行特性

アプリケーションの実行特性は以下の通りです。

特性

内容

モバイル

protocol

使用される通信プロトコル(httpまたはhttps)。

Android

iOS

server

リッチクライアントアプリケーションが格納されるサーバの名前/IPアドレス。

Android

iOS

requester

使用するWebリクエスタ名

Android

iOS

appname

実行プログラムが定義されているアプリケーション名。Webリクエスタが使用する名前です。

Android

iOS

prgname

実行される最初プログラムの公開名。

この特性が空白の場合、メインプログラムのみが実行されます。この場合、MDIフレームを定義しておく必要があります。

Android

iOS

arguments

最初に実行されるプログラムに渡されるパラメータ値をカンマ区切りで指定できます。

例：<property key="arguments" val="ABC,FALSE,123"/>

envvars

リッチクライアントがロードされる際に、クライアントから読み込む環境変数。カンマで区切りで複数の値を指定できます。GetParam()関数を使用することでタスクやロジックユニット内でアクセスできます。

例:<property key="envvars" val="USERDOMAIN,COMPUTERNAME"/>

注意：

この特性は、モバイル環境ではサポートされません。

UseWindowsXPThemes

［スタイルリ］特性が「Windows」に設定されているコントロールにWindows XPのテーマを適用させるかどうかを指定します。

InternalLogFile

クライアント側の動作内容を記録するログファイルの名前を指定します。ファイルはクライアント側に作成されます。指定されない場合、クライアントのデスクトップ上に作成されます。

ログを出力しない場合は、このパラメータを削除するか、コメント扱いにしてください。

InternalLogLevel

ログの発行レベルを指定します。

  • NONE …… ログは記録されません。

  • BASIC …… HTTPリクエストの受信と送信についてのみ記録されます。このレベルは、製造（そして、テストの)システム、特に通信範囲とコンポーネントのハンドシェークのトラブルシューティングで使用されるはずです。（サポートバージョン：2.4）

  • Server …… HTTPリクエストとその応答が記録されます。

  • Support …… "Server"オプションの内容に加え、データの内容も記録されます。

  • GUI …… クライアント側のGUI表示用データの概要が記録されます。

  • Dev …… クライアント側の全てのメッセージが記録されます。

注意：

SUPPORTレベルを除いて、ログの内容は暗号化、圧縮化されます。

開発時は、キーワードはクライアントのログレベルを設定します。InternalLogFileのキーワードが定義され、InternalLogLevelが空白の場合、ログには警告とエラーのみ含まれます。

実行時は、キーワードはクライアントのログレベルの最大値を設定します。

キーワードが設定されていない場合、最大のログレベルはSERVERになります。

Localゲートウェイに対するロギングは、この設定に基づいています。そして、ロギングレベルはサーバ上のゲートウェイのために定義されません。このため、たとえばクライアントのログレベルがSUPPORTとして定義されている場合、ログには同様にSUPPORTレベルのゲートウェイログが含まれます。

InternalLogSync

ログの開始と終了のタイミングを制御します。

  • Session …… セッション開始時に、ログがオープンされ、セッション終了時にクローズされます。最も高いパフォーマンスが得られます。

  • Flush …… Sessionと基本的に同じですが、メッセージ毎に書込を行い、クライアントがクラッシュしてもログの内容が保証されます。

  • Message ……各メッセージ毎にログファイルがオープン/クローズされます。最もパフォーマンスが低くなりますが、セッション内のログ内容を削除することができます。

LogClientSequenceForActivityMonitor

クライアント側のログファイルにクライアントの動作内容を記録させ、クライアントがクラッシュした場合に、再起動時にサーバのアクティブモニタにログ内容を送信するかどうかを指定します。

デフォルト：No

DisplayStatisticInformation

この特性を「Y」に設定すると、各セッションの終わりに統計画面が表示されます。また、マウスをステータスバーの右側を置くと、直前の5回分のサーバ間の通信内容がツールチップで表示されます。

また、RIAアプリケーションの終了時にセッション情報が別ウィンドウに表示されます。

この特性は、デフォルトはN(OFF)になっています。

HTTPCompressionLevel

メッセージが3KBのしきい値を上回る場合、クライアント／インターネットリクエスタ間で実行される圧縮レベルを、リクエストとその応答に対して設定します。

有効な値：None, Minimum, Normal, Maximum

F7（この場合は、None）によって実行される場合を除いて、この特性のデフォルトは、Normalになります。

注意：

圧縮レベルを高くすると、サーバとクライアント側でより多くのメモリを使用することになります。

モバイル仕様：

「None」のみサポートします。

FirstHTTPRequestTimeout

起動時にMagic xpaエンジンに接続するためのタイムアウトを定義します。

クライアントがサーバからHTTPReuestTimeoutの値を受け取るまで、この値がクライアント側のデフォルトのHTTPタイムアウトになります。

低速のネットワーク環境での実行時における非オフラインが使用可能なアプリケーションの場合、このキーにより高い値（例えば、通信の失敗の影響を最小にするために、10秒に設定します）を設定することを推奨します。

デフォルト値：2秒

注意：

IPアドレスが正しくない場合の接続時のように、この特性が利用できない場合があります。

サポートバージョン：

2.4

Android

DisableVersionUpdate

バージョンアップ機能を無効にします。デフォルトは、Yです。

Expect100Continue

'Expect: 100-continue'ヘッダを追加するかどうかを指定します。このヘッダを送り、サーバが受理した場合'100 Continue'が返されます。これにより、クライアントは処理を継続することができます。

プロキシを使用していて、サーバからエラー417が変える場合、値をNに設定してください。

デフォルト値：Y（3番目のリクエストで'Expect: 100-continue'ヘッダを送ります)。

LogonWindowIconURL

［ログオン］ダイアログに表示されるアイコンを指定します。

LogonImageURL

［ログオン］ダイアログに表示されるイメージを指定します。BMPファイルのみ有効です。

LogonWindowTitle

［ログオン］ダイアログのタイトルを指定します。

LogonGroupTitle

［ログオン］ダイアログに表示されるグループタイトルを指定します。

LogonMessageCaption

［ログオン］ダイアログに表示される説明を指定します。

LogonUserIDCaption

［ログオン］ダイアログに表示されるユーザIDタイトルを指定します。

LogonPasswordCaption

［ログオン］ダイアログに表示されるパスワードタイトルを指定します。

LogonOKCaption

［ログオン］ダイアログに表示されるOKタイトルを指定します。

LogonCancelCaption

［ログオン］ダイアログに表示されるチャンセルのタイトルを指定します。

DisplayGenericError

エラーメッセージにアドレスを表示するかどうかを指定します。

デフォルトは、Y（表示しない） です。

サポートバージョン：

2.3

Android,iOS

以下のパラメータは、モバイルではデフォルトで設定されています。

URL

参照する外部の実行特性ファイルを指定します。

これは、デバイス上にインストールされるファイル内にハードコーティングされた値として実行設定（例、サーバ名やアプリケーション名)を指定することへの代替手段です。

この方法を使用すると、新しいクライアントパッケージをビルドすることなくサーバ上のファイルを変更することができます。

この設定が有効の場合、同じファイル内に定義された上記の特性は無効になります。

Windowsではサポートされません。

Android,iOS

URLRetrievalTimeout

execution propertiesファイルをサーバから読み出すためのタイムアウトを定義します。

このキーが定義される場合だけ有効です。

低速のネットワーク環境での実行時における非オフラインが使用可能なアプリケーションの場合、このキーにより高い値（例えば、通信の失敗の影響を最小にするために、10秒に設定します）を設定することを推奨します。

デフォルト値：2秒

Windowsではサポートされません。

サポートバージョン：

2.4

Android,iOS

ConnectOnStartup

アプリケーションが実行毎にサーバに接続するか、メタデータを更新する時だけ接続するかを定義します。

  • Y …… （デフォルト)実行する度にサーバに接続します

  • N…… メタデータが変更された（メタデータが変更されたというエラーがサーバから返された後の、次の実行時を意味します）場合だけサーバに接続しようとします。クライアントが起動時にサーバにアクセスする必要はない場合は、この特性をNに設定すると効果的です。

開始プログラムがオフラインプログラムの場合のみ、この特性は関連します。

サポートバージョン：

2.4

Android,iOS

アプリケーション実行特性の変更

アプリケーションの実行特性（例えばWebサーバやエイリア）を変更する必要がある場合、サーバ側のファイルの特性を変更する必要があります。

RIAクライアントがクライアントから実行された場合、このファイルで作成された更新内容をチェックします。変更されている場合、更新されたファイルはクライアント側のキャッシュフォルダにコピーされ、新しい実行特性が使用されます。


リッチクライアントアプリケーション 準備ユーティリティ

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > リッチクライアント準備ユーティリティ

リッチクライアント準備ユーティリティ

このユーティリティは、オンラインタスクをリッチクライアントタスクに変換する作業を支援するものです。

  • すべての［GUI表示形式］クラスのモデルを［リッチクライアント表示形式］クラスのモデルとしてコピーします。

  • 項目モデルやカラム、変数項目の各特性に対し、［GUI表示形式］特性の内容を［リッチクライアント形式］特性に、［GUI表示テーブル形式］特性の内容を［リッチクライアントテーブル形式］特性にコピーします。特性が継承されていない場合は、このコピー処理が実行されます。その際、［ユーザアクションXX］イベントは、メインプログラムの［ユーザイベント］テーブルに同じ名前のユーザイベントが定義されている場合、このユーザイベントに変換されます。

  • ［RTF化］特性が｢Yes｣に設定されている［スタティック］モデルは、［リッチテキスト］モデルに変更されます。

この変換ユーティリティを使用することで、フォームを作成する際の作業を一部省くことができます。

このユーティリティを使用する前に以下の作業が必要です。

  1. プロジェクトが使用する全てのコンポーネント用プロジェクトを用意します。

  2. これらのコンポーネントに対するECIファイルを作成し直します。

  3. プロジェクトにECIファイルを再度読み込ませます。

  4. プロジェクトファイルをバックアップします。

  5. プロジェクトがバージョン管理されている場合、最新バージョンを取得し、他のユーザによってチェックアウトされていない状態にします。

以下の操作で、このユーティリティにアクセスすることができます。

  1. ［オプション］メニューを開き、［リッチクライアント準備］を選択します。［リッチクライアント準備］ウィザードが起動されます。

  2. ［ウェルカム］ダイアログから、［次へ］をクリックします。

  3. ［準備方法］ダイアログが表示された段階で、既に変更するプロジェクトが準備されていることを確認します。準備ができたら、［実行］をクリックします。

  5. ［実行］をクリックすると、ウィンドウの下にプログレスバーが表示されます。これは、処理が実行されていることを示しています。処理が終了すると、終了メッセージが表示されます。

  6. ［OK］をクリックするとウィザードは終了します。


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

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > リッチクライアントタスク

リッチクライアントタスク

［タスク特性］の［タスクタイプ］特性で「リッチクライアント」と定義することでリッチクライアントタスクを作成することができます。

リッチクライアントサブタスク

リッチクライアントタスクでサブタスクを作成する場合、作成されるタスクもリッチクライアントタスクになります。

タスクタイプの変更

オンライン/バッチタスクをリッチクライアントに変更する

［タスクタイプ］を「O=オンライン/B=バッチ］から「C=リッチクライアント」に変更した場合、以下のように処理されます。

  • ［タスク特性］は、リッチクライアントのデフォルト値が設定されます。

  • タスクツリー上に定義されたすべてのオンラインタスクは、リッチクライアントタスクに変更されます。

  • 項目の［GUI表示スタイル］特性や［GUIテーブル表示スタイル］特性の継承が解除されており、［リッチクライアント表示スタイル］特性が設定されていない場合、［GUI表示スタイル］特性の内容が［リッチクライアント表示スタイル］にコピーされます。

  • すべてのGUI表示フォームは、リッチクライアント表示フォームに変換されます。

  • ［イメージ］コントロールのスタイルは、以下のように変更されます。

GUI表示フォーム |  | RC表示フォーム
［スタイル］特性 | ［境界線スタイル］特性 | ［スタイル］特性
凸立体 |  | 凹立体
凹立体 |  | 凹立体
平面 | なし | なし
平面 | 細線 | 平面
平面 | 太線 | 平面

  • メインプログラムの［ユーザイベント］テーブルに［ユーザアクションXX］イベント（XX：数値）が定義されている場合、タスク内で使用されている内部イベントの［ユーザアクションXX］イベントは、同じ名前のユーザイベントに変更されます。

  • ユーザアクションの自動変換 …… オンラインタスクに定義された［ユーザアクション］イベントを、リッチクライアントタスクに変換する際に自動的に変換させたい場合は、メインプログラムでユーザイベントを定義し、ここに［ユーザアクション］イベントと同じ名前を定義してください。例えば、オンラインタスク内に［ユーザアクション 5］が使用されて、これをリッチクライアントタスクに変換する前に、メインプログラム内にユーザイベントを定義し、この名前を［ユーザアクション 5］と設定します。リッチクライアントタスクに変換すると、内部イベントの［ユーザアクション 5］イベントのロジックユニットは、メインプログラム内に定義された［ユーザアクション 5］イベントを使用するように自動的に変換されます。

ブラウザタスクをリッチクライアントに変更する

［タスクタイプ］を「B=ブラウザ］から「C=リッチクライアント」に変更した場合、以下のように処理されます。

  • ［タスク特性］は、リッチクライアントのデフォルト値が設定されます。

  • 空のリッチクライアントフォームがこのタスクのメインフォームとして作成されます。

リッチクライアントから別のタスクタイプに変更する

［タスクタイプ］を「C=リッチクライアント」から別のタイプに変更した場合、以下のように処理されます。

  • ［タスク特性］は、変更されたタスクタイプのデフォルト値が設定されます。

  • サブタスクのタスクタイプが変更できないため、すべてのサブタスクのタスクタイプを個別に変更する必要があります。

フォームのタイプをリッチクライアントから別のタイプに変更する（またはその逆）

  • ［ブラウザ形式］フォームを［リッチクライアント形式］フォームに変更すると、すべてのコントロールは削除され、すべての［フォーム特性］はデフォルト値に設定されます。

  • ［リッチクライアント形式］フォームから他のフォームに変更すると、すべてのコントロールは削除され、すべての［フォーム特性］はデフォルト値に設定されます。

  • ［GUI表示形式］フォームを［リッチクライアント形式］フォームに変更すると、フォームとコントロールは以下のように変換されます。

  • リッチクライアントタスクでサポートされないコントロールは、フォームからすべて削除されます。

  • ［テーブル］コントロールに配置されたコントロールは以下のように扱われます。

    • ［グループ］と［タブ］の各コントロールは削除されます。

    • ［リストボックス］コントロールに配置された［コンボボックス］コントロールに変換されます。

    • ［ラジオボタン］コントロールは、［コンボボックス］コントロールに変換されます。

関連トピック：

リッチクライアントのタスクロジック

リッチクライアントとオンラインの違い

処理コマンドの色


リッチクライアントアプリケーション タスク ロジック

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > リッチクライアントタスク > リッチクライアントのタスクロジック

リッチクライアントのタスクロジック

リッチクライアントタスクで必要なロジックは、処理コマンドと関数を使用して作成します。

以下のように処理コマンドや関数には、内容に応じてクライアントでサポートされるものと、サーバ上で実行されるものがあります。

サーバ側でサポートされる処理コマンド

  • ［コール］処理コマンド …… リッチクライアントタスクは、リッチクライアントタスクからのみ呼び出すことができます。またリッチクライアントタスクは、リッチクライアントタスクかバッチタスクのみを呼び出すことができます。

  • モーダルタイプのリッチクライアントタスクの呼び出しは、通常は混在モードで処理されます。これは、クライアントがタスクを開き終了するまで待つようにクライアントにアクセスします。

  • ［出力先］特性を指定してリッチクライアントタスクを呼び出す場合も、混在モードで処理されます。これは、サブフォーム上で実行されるタスクを閉じるようにクライアントにアクセスします。

  • 他の（リッチクライアントタスクかバッチタスクの）呼び出し処理は、サーバ側で処理されます。これは、呼び出されたタスクを初期設定するためにサーバにアクセスします。

  • ［外部コール（UDP、Webサービス）］処理コマンド

クライアント側でサポートされる処理コマンド

  • ［エラー］処理コマンド

  • オフラインタスクの呼び出し

クライアント側とサーバ側のどちらかでサポートされる処理コマンド

  • ［アクション］処理コマンド …… 実行される式の内容に依存します。

  • ［ブロック］処理コマンド …… 実行条件式の内容に依存します。

  • ［項目更新］処理コマンド …… 項目の再計算処理に依存します。項目がサーバとしてマークされている場合、サーバ側で実行されます。それ以外は、ニュートラル(どちらでも実行可能)で実行されます。

  • ［コールOSコマンド］処理コマンド …… ［実行］特性に依存します。

  • ［イベント実行］処理コマンド …… ［ウェイト］特性が「Yes」の場合は、発行されるイベントによって実行されるロジックユニットが、どちらで実行されるかに依存します。［ウェイト］特性が「No」の場合は、ニュートラルとなります。

注意：

  • ［ウェイト］特性が「No」に設定された［イベント実行］処理コマンドが、サーバ側の処理コマンド群の一部として定義されている場合、この処理コマンドはイベント処理がすべて実行された後に処理されるため、ニュートラルとして扱われます。

  • サーバ側の処理コマンド群に実行場所が不明な［イベント実行］処理コマンドが含まれている場合、実行時にエラーが発生する可能性があります。

以下の処理コマンドはリッチクライアントタスクではサポートされません。

  • ［コールCOM］処理コマンド

  • ［フォーム］処理コマンド

注意：

  • クライアント側とサーバ側の両方で処理する必要のある処理コマンドは、リッチクライアントタスクではサポートされません。

  • ［入出力ファイル］テーブルは、リッチクライアントタスクでは利用できません。

  • サーバ側の式と処理コマンドは、オフラインタスクで使用できません。


リッチクライアントアプリケーション タスク 色

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > リッチクライアントタスク > 処理コマンドの色

処理コマンドの色

[ロジック]エディタ内の処理コマンドの背景色は、処理コマンドがサーバ側であるか、クライアント側であるか、混在であるか、不明であるかを示しています。表示される色は、[開発用基本色]テーブルで変更することができます。

以下の表は、色の違いを説明しています。

色

説明

#1の背景色

  • クライアント側でサポートされる処理コマンド

  • クライアント側でサポートされる処理コマンドだけを含むロジックヘッダ

  • クライアント側の処理コマンドの後に定義されているニュートラルな処理コマンド

  • 混在しているようなサポートされていない処理コマンド

#10の背景色

  • サーバ側で実行される処理コマンド

  • サーバ側の処理コマンドを含むロジックヘッダ

  • サーバ側の処理コマンドの後に定義されたニュートラルな処理コマンド

#11の背景色

  • 処理する場所が不明な処理コマンド
    処理コマンドがサーバ側かクライアント側のどちらで実行されるか不明な場合、この色で表示されます。


リッチクライアントアプリケーション タスク オンラインとの違い

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > リッチクライアントとオンラインの違い

リッチクライアントとオンラインの違い

以下は、リッチクライアントタスクがオンラインタスクと異なる点を挙げたものです。

オンラインからリッチクライアントへ

他のプログラムの呼び出し

処理コマンド

サポートされない関数

イベント

リッチクライアントタスクの呼び出し

入出力

帳票

フォーム

ファントムタスク

コントロール特性

コントロールの動作

データ項目

ステータスバー

物理トランザクション

並行コンテキスト

環境設定

クライアントとサーバ側の式

オンラインからリッチクライアントへ

オンラインプログラムは、インタラクティブなリッチクライアント・プログラムに変更されます。

他のプログラムの呼び出し

［コール］処理コマンドの［出力先］特性において

  • リッチクライアントタスクでは、この特性が実行時のツリー内の出力先を探します。

  • オンラインタスクでは、この特性は、現在のタスクの子となるサブフォームタスクのみ探します。

プログラムが別のプログラムを呼び出す場合、オンラインプログラムの場合、プログラムの［並行起動］特性が設定されていない限り、呼び出し元のプログラムは中断されます。しかし、リッチクライアントプログラムが別のプログラムを呼び出す場合は、呼び出したプログラムは、呼び出されたプログラムと同時に一つのコンテキストで実行し続けます。並行実行プログラムを呼び出した場合、呼び出されたプログラムは新しいサーバコンテキストを開き、新しい実行ツリー上の最初のプログラムとして動作します。

並列実行プログラムを呼び出すプログラムを終了しても、呼び出されたプログラムは閉じません。

標準のオンラインプログラムの動作をシミュレーションするには、呼び出されたプログラムのフォームを「モーダル」に設定してください。これは、プログラムの［ウィンドウタイプ］特性を「モーダル」に設定することによって実行されます。

呼び出されたプログラムの［ウィンドウタイプ］が「デフォルト」に定義されている場合、自動的に設定されます。

処理コマンド

サポートされない処理コマンド

以下の処理コマンドは、リッチクライアントタスクではサポートされません。

  • コールCOM

  • フォーム

［エラー］処理コマンド

リッチクライアントタスクでは、［エラーログ］特性が「Yes」に設定された［エラー］処理コマンドは、InternalLogFile が設定されている場合のみ動作します。

リッチクライアントタスクから呼び出されるバッチタスクでは、［エラー］処理コマンドはバッチタスクが終了した後で、クライアント側で実行されます。

サポートされない関数

Magic xpaの関数のいくつかは、リッチクライアントタスクで利用できません。ただし、簡単に回避することもできます。いくつかの関数は、特定のロジックユニットでサポートされません。たとえば、KBPut（)とKBGet（)は、サポートされません。これらの関数の代わりに、［イベント実行］処理コマンドと［イベント］ロジックユニットを使用して同等機能を実装する必要があります。

以下の関数は、サポートされません：

Blob2Req

File2Req

CabinetUnload

COM関数

ClientCertificateAdd

ClientCertificateDiscard

CurrPosition

DirDlg*

EOF

EOP

FileDlg**

IOCurr

KbGet

KbPut

Line

MarkedTextSet

MDate

Page

PPD

RqHTTPHeader

RqHTTPStatusCode

SetContextFocus

SNMPNotify

Text

TransMode

UDF

UDFF

UDFS

VariantAttr

VariantCreate

VariantGet

VariantGetVector

VariantType

WinHelp

WsProviderAttachmentAdd

WsProviderAttachmentGet

XML汎用関数

その他のXML関数

マルチマーク関数

* クライアント側のダイアログを開く場合は、ClientDirDlgを使用します。

**クライアント側でファイルダイアログを開く場合はClientFileOpenDlg関数とClientFileSaveDlg関数を使用します。

注意:

リッチクライアントタスクの場合、実行モードがバックグラウンドに設定された場合のみUser関数が動作します。

イベント

内部イベント

［ユーザアクションxx］イベントのようないくつかの内部イベントは、リッチクライアントタスクでは利用できません。通常は、これらのイベントの代わりにユーザイベントを作成して使用します。

タスクをリッチクライアントタスクに移行した場合、メインプログラム内に同名のユーザイベントが定義されていれば、［ユーザアクションXX］イベントは自動的に通常のユーザイベントに変換されます。

このようなイベントが［モデル］リポジトリに定義されていれば、リッチクライアント準備ユーティリティによってユーザイベントに変換されます。従って、準備ユーティリティを実行する前にメインプログラムにユーザイベントを定義することを推奨します。

以下のイベントはサポートされません。

OSコマンド

アプリケーションクローズ

アプリケーションを開く

オブジェクトの挿入

コンテキストがフォーカス取得

コンテキストがフォーカス喪失

マルチマーキングイベント

ユーザアクションxx

その他のウィンドウ

開始値

下行

次語

次のウィンドウ

上行

前のウィンドウ

前語

入出力ファイル

終了値

以下のイベントは、リッチクライアントタスクでのみ有効です。

  • ブラウザステータスのテキスト変更

  • 親による再表示後

ユーザイベント

［ユーザイベント］テーブルで［強制終了］カラムを「レコード更新前」に設定した場合［コントロール検証］ロジックユニットは以下のように動作します。

  • オンラインタスクでは、データ項目が変更された場合のみ実行されます。

  • リッチクライアントタスクでは、常に実行されます。

.NETイベント

フォームに配置されない.NETオブジェクトに対して：オンラインタスクでは、すべてのコンテキストでイベントが発行され、リッチクライアントでは、現在のコンテキスト内でのみ発行されます。

リッチクライアントタスクの呼び出し

リッチクライアントプログラムが呼び出された場合、CallProg関数でタスクの戻り値は戻りません。これは、式が、プログラムの終了を待たないためです。この関数によって呼び出された並行実行のリッチクライアントプログラムは並行起動でないプログラムとして実行されます。

バッチタスク

バッチタスクはリッチクライアントタスクから呼び出された場合は、ウィンドウを表示しません。これは、バッチタスクがサーバ側のバックグラウンドエンジン上で実行されるためで、インタラクティブなリッチクライアントとして呼び出すことができず、フォームを表示しないからです。クライアント側でインタラクティブでないタスクを実行する必要がある場合は、リッチクライアントタスクを、非インタラクティブとして設定することで可能になります。

C/SからRIAに既存のプログラムを移行する場合は、バッチタスクは自動的に非インタラクティブなリッチクライアントに変換されます。

入出力

リッチクライアントタスクでは、［入出力］テーブルや入出力関連の関数はサポートされません。

帳票

帳票処理は、PDFファイルとして出力し、表示プログラムを使用してPDFを表示することによって実現できます。PDFはクライアントに転送したり保存するか、クライアントからリモートアクセスすることができます。この例は、RIAのホワイトペーパを参照してください。ここの例では、帳票を表示するために、［ブラウザ］コントロールを使用しています。

デフォルトのプリンタに出力したり、印刷ダイアログや印刷プレビュー機能は利用できません。これは、印刷がサーバ側のバックグラウンドエンジン上で処理されるため、フォームが表示されないバッチタスクで行われるからです。

フォーム

以下のフォーム特性は、動作が異なります。

  • ウィンドウタイプ …… 次のウィンドウタイプはリッチクライアントタスクではサポートされません：「デフォルト」と「アプリケーションモーダル」

  • ウィンドウリストに表示 …… ウィンドウリストそのものがサポートされていません。

  • タイトルバー …… 式で指定できません。

［コール］処理コマンドでフォームを指定することができません。

モーダルウィンドウは、他の全てのタスクのフローを停止させます。このため、最初にこのウィンドウを閉じることなく別のウィンドウをクリックすることはできません。

  • オンラインタスクの場合は、並行実行タスクも停止します。

  • リッチクライアントタスクの場合は、並行実行タスクは停止しません。

ファントムタスク

［サブフォーム］コントロールを利用した場合、ファントムタスクはC/Sアプリケーションでは必要ありません。ただ、この機能の既存のアプリケーションに存在している可能性があります。

リッチクライアントでは、［ウィンドウを閉じる］特性が無効になり「No」が設定されます。従って、リッチクライアントプログラムが終了した場合、ウィンドウは常に閉じます。別のプログラムが実行中に、プログラムのウィンドウを開いたままにしたいようなRIAに移行する場合は、非モーダルのリッチクライアントフォームを使用するか、呼び出し側でサブフォームを定義し、ファントムタスクのようにな動作になるように定義する必要があります。

呼び出し側に定義された［コール］処理コマンドは削除する必要があります。

コントロール特性

以下のコントロール特性は完全にサポートされていません：

共通

  • ヘルプ画面 …… URLヘルプのみサポートされます。

［ラジオボタン］コントロール

  • 複数行 …… サポートされません。

  • テーブル内のラジオボタン …… ラジオボタンは［テーブル］コントロール内には定義できません。

［チェックボックス］コントロール

  • 複数行 …… サポートされません。

［テーブル］コントロール

  • マルチマーク …… サポートされません。

  • 下辺位置 …… サポートされません。

［カラム］コントロール

  • 上境界線 …… サポートされません。

  • 右境界線 …… サポートされません。

［ツリー］コントロール

  • マルチマーク …… サポートされません。

  • ツリー表示の保持 …… 「Yes」と同じように動作します。

コントロールの動作

コントロールによっては、リッチクライアント環境では異なる動作になります。プログラムを開発する際にこれらを考慮するために、以下の違いについて理解しておいてください。

［ブラウザ］コントロール

［ブラウザ］コントロールは、リッチクライアントでのみサポートします。

［RTFエディット］コントロール

色やフォント、または箇条書の設定を設定する場合は、オンラインの動作と異なります。

  • リッチクライアントプログラムでは、「バイナリ」のBLOB型に定義された変数をコントロールに割り当てます。

  • オンラインプログラムでは、「Unicode」のBLOB型に定義された変数をコントロールに割り当てます。

  • 上記と異なるデータ型を使用した場合、色やフォント、または箇条書の設定はBLOBの内容が更新されると削除される場合があります。

［RTFエディット］コントロールには、デフォルトで表示されるコンテキストメニューが組み込まれていません。エンドユーザに対して、［RTFエディット］コントロールの色またはフォントを変更することができるようにするには、Magic xpaの内部イベントをメニューに定義することで可能になります。例えば色やフォントを変更したり、左側や左側に整列させたりするイベントをメニューに定義し、このメニューをコントロールの［コンテキストメニュー］特性に割り当てることができます。

パーク不可のコントロールをクリックした後のキャレットの位置

  • オンラインタスクでは、最も近いパーク可能なコントロールにキャレットが位置付けられます。

  • リッチクライアントタスクでは、現在の位置にとどまります。

［テーブル］コントロール

  • テーブル内に表示される変数項目の値を変更すると、そのカラムのすべての変数値が再表示されます。

  • テーブルを表示するためにスクロールバーを使用しても現在のレコードは動きません。

［サブフォーム］コントロール

オンライン環境では、タスクがサブフォームで表示されている場合、キャレットがタスクを抜けると、タスクは自動的に終了します。リッチクライアント環境では、コンテナタスクが終了するまでタスクは実行し続けます。ここに、注意すべき問題があります：

  • サブフォームの［タスク前］と［タスク後］のロジックユニットは異なる動作になります。

  • IsFirstRecordCycle()関数は、一回のみ実行されます。

  • 様々なサブフォーム内で同じデータソースを使用する場合、［データソース名］特性を使用すると、そのデータソースを使用する全てのサブフォームに影響します。

  • サブフォームタスク内で(例えばEscボタン経由で)［終了］イベントを発行した場合、サブフォームのコンテナタスクでイベントが発行され、結果として両方のプログラムが終了することになります。親プログラムを終了させたくない場合は、［終了］イベントを捕捉するようにします。［終了］イベントが二回発生した場合は、親プログラムを終了するために補足をキャンセルするようにします。

  • サブフォームからTabキーを押下した場合に親の次のコントロールに移動するように定義することができます。［タブサイクル］の説明を参照してください。

  • リッチクライアントでサブフォーム領域をクリックすると、現在のコントロールにキャレットを保持し、フォーカスはサブフォームタスクに移動しません。

  • ［非表示の再表示］特性を式で定義した場合、実行時の式の評価結果によって動作が変わります。式が、Trueと評価された場合

  • オンラインタスク …… サブフォームはすぐに再表示されます。

  • リッチクライアントタスク …… すぐに再表示されません。

  • ［タスク前］または［レコード前］で処理コマンドを実行すると、例えば［エラー］処理コマンドのようにフォームの読み込みを中止します。そして、

  • リッチクライアント（非オフライン）の場合は、サブフォームはその処理コマンドの前に表示されます。

  • オンラインやリッチクライアント（オフライン）の場合は、サブフォームはその処理コマンドの後に表示されます。

データ項目

OLE型項目はサポートされません。必要であれば、サーバ側で実行されるバッチプログラムに転送してください。

ステータスバー

リッチクライアントアプリケーションのステータスバーはメッセージセクションだけを含んでいるため、エラーメッセージや自動ヘルプを表示するこのとみ可能です。例えば「ズーム」や「挿入」、「上書」等は表示されません。

これは、コントロールにズームハンドラが定義されていても、この機能があることをステータスバーには表示されないことを意味しています。コントロールやモデルの自動ヘルプにてこの機能が組み込まれていることを表示させる必要があります。

SpecialShowStatusBarPanes を設定することで、ステータスバーにタスクモードを表示させることができます。

物理トランザクション

物理トランザクションはサポートされません。

データの修正(作成、更新、削除)が必要なリッチクライアントプログラムでは、遅延トランザクションが必要です。遅延トランザクションが設定されない場合、データの読み込みのみ可能です。

プログラムへの連続的なアクセスを行う手段として、アプリケーションがデータベースに対する物理ロックに依存する場合、プログラマーはこの代替案を見つけなければなりません。1つの可能な選択肢は、Lock()とUnlock()関数を利用することです。

並行コンテキスト

メインプログラムの［代入］特性はリッチクライアントタスクではサポートされません。

並行のコンテキスト間でイベントを発行することはサポートされません。リッチクライアントタスク内では複数のタスクを同時に実行させることができるので、並行プログラムの使用を減らすことができます。

適用可能であれば、呼び出されるプログラムの［並列実行］特性を無効にすることができます。プログラムの呼び出しの際の、並行実行と非並行実行の違いに気をつけてください。

環境設定

Magic xpa RIA Serverのライセンス(MGRIA12)は、リッチクライアントタスクのみ起動することができます。Magic xpa Enterprise Serverのライセンス(MGENT12)では起動できません。

ライセンスのユーザ数は、［動作環境］の［最大並行ユーザ数］に定義された値がMagicエンジンの起動時に消費されます。［最大並行ユーザ数］が「0」かライセンス上のユーザ数を越えている場合は、ライセンスのユーザ数分が消費されます。

注意:

SQL系のDBMSを利用する場合、［DBMS特性］の［最大接続数］特性の設定値を超えて接続する場合があります。各インスタンス毎で使用する最大スレッド数又はユーザ数の3倍を設定してください。

(例）20ーザ（RichClient Server）の場合……60

それでも最大接続数を超えるエラーが発生した場合は、設定値を大きくしてください。最大接続数を超えた場合、mgerror.logに「サーバに接続できません.最大接続数に達しました.」のエラーが記録されます。

［カーソルの画面中央位置付］は、サポートされません。

クライアントとサーバ側の式

クライアント側の式は、［代入］特性に指定できません。

混在した式は定義できません。

他方で実行されるで式を使用した混在する処理コマンドを使用することができません。

コントロールとフォームの特性にサーバ側の式を使用することができません。

関連トピック：

用語の変更

オフラインと非オフラインの違い


オフラインと非オフラインの違い

タスク特性

オフラインタスクでは、［タスク前］ロジックユニットはクライアントで実行されます。非オフラインタスクは、サーバで実行されます。

サブフォーム

オフラインタスクでは、サブフォームは親タスクの［レコード前］のロジックが終了した後で読み込まれ、表示されます。

これは、以下のことを意味します。

  • タスクにサブフォームが定義されている場合：

  • 非オフラインのリッチクライアントタスクでは、親タスクの［タスク前］の後で全てのサブフォームタスクの［タスク前］が実行されます（これによってサーバのリクエスト数を減らし、パフォーマンスを向上させます)。一旦プログラムが読み込まれると、すべてのサブフォームタスクの［レコード前］は親タスクの［レコード前］の後に実行されます。

  • オフラインのリッチクライアントタスクでは、最初に、親タスクの［タスク前］と［レコード前］が実行されます。そして、各サブフォームタスクの［タスク前］と［レコード前］が一つずつ実行されます。

  • フォームの読み込みを中断した親タスクの［タスク前］や［レコード前］で処理コマンドを実行した場合：

  • 非オフラインのリッチクライアントタスクでは、サブフォームはその処理コマンドの前に表示されます。

  • オフラインのリッチクライアントタスクでは、サブフォームはその処理コマンドの後に表示されます。

.NET アセンブル

非オフラインのリッチクライアントプログラムでは、サーバは［コンポーネント］リポジトリの.NETアセンブリパスからサードパーティの.NETアセンブリを取得し、クライアントにコピーします。

オフラインプログラムでは、［コンポーネント］リポジトリで定義されるサードパーティの.NETアセンブリは、自動的にクライアントにダウンロードされません。

これらを事前にクライアント上にインストールするか、最初の起動時にアセンブリをクライアントへコピーするために、ServerFileToClient関数を使用しなければなりません。

関連トピック：

リッチクライアントとオンラインの違い


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

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > リッチクライアント関数

リッチクライアント関数

サーバ側で処理される関数

クライアント側で処理される関数

サーバ/クライアント側の両方で処理可能な関数

リッチクライアントのみで有効な関数


リッチクライアントアプリケーション 関数 サーバ側

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > リッチクライアント関数 > サーバ側で処理される関数

サーバ側で処理される関数

以下の関数は、リッチクライアントアプリケーションのサーバ側の処理でのみ利用可能です。

ANSI2OEM

Blb2File

BlobFromBase64

BlobToBase64

BufGetAlpha

BufGetBit

BufGetBlob

BufGetDate

BufGetLog

BufGetNum

BufGetTime

BufGetUnicode

BufGetVariant

BufGetVector

BufSetAlpha

BufSetBit

BufSetBlob

BufSetDate

BufSetLog

BufSetNum

BufSetTime

BufSetUnicode

BufSetVariant

BufSetVector

CallDLL

CallDLLF

CallDLLS

CallProg

Cipher

ClrCache

CodePage

CtxClose

CtxGetAllNames

CtxGetId

CtxGetName

CtxKill

CtxLstUse

CtxNum

CtxProg

CtxSetName

CtxSize

CtxStat

DataViewToHTML

DataViewToText

DataViewToXML

DataViewVars

DataViewVarsIndex

DbCache

DbCopy

DbDel

DbDiscnt

DbERR

DbExist

DbName

DbRecs

DbReload

DbSize

DbXmlExist

DbXmlMixedGet

DbXmlMixedSet

DDEBegin

DDEEnd

DDEGet

DDEPoke

DDERR

DDExec

DeCipher

DiscSrvr

EJBCreate

EJBExplore

EncryptionError

ErrDatabaseName

ErrDbmsCode

ErrDbmsMessage

ErrMagicName

ErrPosition

ErrTableName

EvalStr

EvalStrInfo

File2Blb

File2OLE

FileCopy

FileDelete

FileExist

FileInfo

FileListGet

FileRename

FileSize

FlwMtr

GetComponentName

GetGUID

GetLang

GetParamAttr

GetParamNames

GroupAdd

HTTPCall

HTTPGet

HTTPLastHeader

HTTPPost

InTrans

JCall

JCallStatic

JCreate

JException

JExceptionOccurred

JExceptionText

JExplore

JGet

JGetStatic

JInstanceOf

JSet

JSetStatic

LDAPConnect

LDAPDisconnect

LDAPError

LDAPGet

LDAPGroupAdd

LDAPGroupDel

LDAPUserAdd

LDAPUserDel

LDAPUserGroupAssign

LDAPUserGroupRemove

LDAPUserModify

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

MIDV

MTblGet

MTblSet

OEM2ANSI

OSEnvGet

OSEnvSet

ParamsPack

ParamsUnPack

ProgIdx

PublicName

RepV

RightAdd

RqContexts

RqCtxInf

RqCtxTrm

RqExe

RqLoad

RqQueDel

RqQueLst

RqQuePri

RqReqInf

RqReqLst

RqRtApp

RqRtApps

RqRtBlock

RqRtCtx

RqRtCtxs

RqRtInf

RqRtResume

RqRts

RqRtTrm

RqRtTrmEx

RqStat

RqTrmTimeout

RunMode

SetBufCnvParam

SetLang

SharedValGet

SharedValGetAttr

SharedValGetNames

SharedValPack

SharedValSet

SharedValUnPack

TaskID

TranslateNR

UnicodeChr

UnicodeFromANSI

UnicodeToANSI

UnLock

UserAdd

UserDel

UTF8FromAnsi

UTF8ToAnsi

VarDbName

WsConsumerAttachmentAdd

WsConsumerAttachmentGet

WsSetIdentity

リテラル

DSOURCE

ERR

例外：サーバ側の関数は、オフラインタスクでは使用できません。

関連トピック：

クライアント側で処理される関数

サーバ側/クライアント側で処理される関数


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

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > リッチクライアント関数 > クライアント側で処理される関数

クライアント側で処理される関数

以下の関数は、リッチクライアントアプリケーションのクライアント側の処理でのみ利用可能です。

BrowserGetContent

BrowserScriptExecute

BrowserSetContent

CaretPosGet

CHeight

ClickCX

ClickCY

ClickWX

ClickWY

ClientBlb2File

ClientDbDel

ClientDbDiscnt

ClientDirDlg

ClientFile2Blb

ClientFileCopy

ClientFileDelete

ClientFileExist

ClientFileInfo

ClientFileListGet

ClientFileOpenDlg

ClientFileRename

ClientFileSaveDlg

ClientFileSize

ClientFileToServer

ClientGetUniqueMachineID

ClientNativeCodeExecute

ClientOSEnvGet

ClientSessionSet

ClientSessionStatisticsGet

ClipAdd

ClipRead

ClipWrite

CtrlGoto

CtrlHWND

CurRow

CWidth

CX

CY

DataViewToDataSource

DataViewToDNDataTable

DNCast

DNException

DNExceptionOccurred

DNRef

DNSet

DragSetCrsr

DragSetData

DropFormat

DropGetData

DropMouseX

DropMouseY

EditGet

EditSet

FormStateClear

HandledCtrl

IsFirstRecordCycle

LastClicked

LastPark

MarkText

MarkedTextGet

Menu

MenuIdx

MnuAdd

MnuCheck

MnuEnabl

MnuName

MnuRemove

MnuReset

MnuShow

ServerFileToClient

SetCrsr

SetWindowFocus

StatusBarSetText

SubformExecMode

TreeNodeGoto

WinBox

WinHWND

WinMaximize

WinMinimize

WinRestore

関連トピック：

サーバ側で処理される関数

サーバ側/クライアント側で処理される関数


リッチクライアントアプリケーション 関数 クライアント/サーバ

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > リッチクライアント関数 > サーバ/クライアント側の両方で処理可能な関数

サーバ/クライアント側の両方で処理可能な関数

以下の関数は、「ニュートラル」として実行される処理コマンドや関数の組み合わせによって実行場所が異なるものや、「不明」扱いでＭａｇｉｃエンジンによって実行場所が最適化されるものです。

+

-

*

/

MOD

^

&

=

<>

<

<=

>

>=

OR

AND

NOT

ABS

ACOS

AddDate

AddDateTime

AddTime

AppName

ASCIIChr

ASCIIVal

ASIN

AStr

ATAN

BlobSize

BOM

BOY

CASE

CDOW

ChkDgt

CMonth

CndRange

COS

Counter

CRC

Date

Day

DbRound

DbViewRowIdx

DbViewSize

Del

Delay

DifDateTime

DOW

DStr

DVal

EmptyDataview

EOM

EOY

EXP

ExpCalc

Fill

Fix

Flip

Flow

GetParam

Han

Hour

HStr

HVal

Idle

IF

IN

INIGet

INIGetLn

INIPut

Ins

InStr

IsComponent

IsDefault

IsMobileClient

ISNULL

JCDOW

JGengo

JMonth

JNDOW

JYear

Left

Len

Level

LIKE

LocateAdd

LocateReset

LOG

LoopCounter

Lower

LTrim

MainDisplay

MainLevel

MAX

MID

MIN

Minute

MlsTrans

Month

MStr

mTime

mTStr

mTVal

MVal

NDOW

NMonth

NULL

Owner

ProjectDir

Prog

RAND

Range

RangeAdd

RangeReset

Rep

RepStr

Right

Rights

Rollback

Round

RTrim

Second

SetParam

SIN

SortAdd

SortReset

SoundX

Stat

Str

StrBuild

StrToken

StrTokenCnt

StrTokenIdx

TAN

TaskInstance

TaskTypeGet

TDepth

Term

THIS

Time

Translate

TreeLevel

TreeValue

Trim

TStr

TVal

UnicodeVal

Upper

User

UTCDate

UTCmTime

UTCTime

Val

VarAttr

VarCurr

VarCurrN

VarIndex

VarInp

VarMod

VarPic

VarName

VarPrev

VarSet

VecCellAttr

VecGet

VecSet

VecSize

ViewMod

Year

Zen

ZenS

ZIMERead

ZKana

リテラル

RIGHT

関連トピック：

サーバ側で処理される関数

クライアント側で処理される関数


リッチクライアントアプリケーション 関数 専用関数

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > リッチクライアント関数 > リッチクライアントのみで有効な関数

リッチクライアントのみで有効な関数

以下の関数は、リッチクライアントタスクでのみ利用可能です。

BrowserGetContent

BrowserScriptExecute

BrowserSetContent

ClientBlb2File

ClientDbDel

ClientDbDiscnt

ClientSessionSet

ClientDirDlg

ClientFile2Blb

ClientFileCopy

ClientFileDelete

ClientFileExist

ClientFileInfo

ClientFileListGet

ClientFileOpenDlg

ClientFileRename

ClientFileSaveDlg

ClientFileSize

ClientFileToServer

ClientGetUniqueMachineID

ClientOSEnvGet

ClientSessionStatisticsGet

DataViewToDataSource

ServerLastAccessStatus

ServerFileToClient

リッチクライアントで利用できない関数については、リッチクライアントとオンラインの違いを参照してください。


リッチクライアントアプリケーション データビューの規則

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > リッチクライアントのデータビューの規則

リッチクライアントのデータビューの規則

各項目の再計算を実行する際に、データビューに対して以下の規則が適用されます。

  • ［リンク］コマンドによる再計算が行われる場合（リンクカラムの［位置付］特性に項目が定義されている場合）、この項目はサーバ側の再計算項目となります。

  • 項目の［代入］特性は、各レコードに対してサーバで実行されます。

  • 再計算処理にクライアント側の関数が含まれている場合（クライアント側の関数が定義された項目の［代入］特性に再計算項目が定義されている場合）、項目はクライアント側の再計算項目となります。

  • この項目に対する［項目変更］ロジックユニットが定義され、ここにサーバ側の処理コマンドが定義されている場合、項目はサーバ側の再計算項目となります。

  • この項目に対する［項目変更］ロジックユニットが定義され、ここにクライアント側の処理コマンドが定義されている場合、項目はクライアント側の再計算項目となります。

  • 再計算定義と［項目変更］ロジックユニットにニュートラルな関数のみが含まれている場合、項目はニュートラルな再計算項目となります。

  • 項目の再計算定義で使用されるすべての処理コマンドは､クライアント側かサーバ側でサポートされるものでなければなりません。

  • OLE型のデータ項目は定義することができません。

注意：

［リンク］コマンドによる再計算が発生すると、リッチクライアントエンジンは、アプリケーションサーバエンジンに接続し、新しいレコードを取得します。このため、あまりにも多くの［リンク］コマンドを使用すると、サーバ側との処理に負荷がかかる可能性があります。従って、［リンク］コマンドはできるだけ使用しないようにすることを推奨します。

例えば、データコントロール（データソースの内容をもとに、選択肢を表示させるコンボボックスのような選択コントロール）を使用することで［リンク］コマンドの代わりになる場合があります。また、［結合リンク］コマンドを使用する場合もあります。この場合、コマンドはメインソースと一緒にデータベースからフェッチされ、データの1 つの集まりとしてリッチクライアントエンジンに送られます。


リッチクライアントアプリケーション 大きなデータの送信

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > クライアントへの大きなデータの送信

クライアントへの大きなデータの送信

大きなデータをクライアントに送る場合、考慮すべき4つの問題があります。

エンジンによるデータビューの送信

メモリ上の制限は、各クライアント側のPCに依存します。メモリの上限を超えた場合、Magicエンジンが異常終了する場合があります。従って、［タスク特性］の［チャンクサイズ］特性に適切な値を設定することでメモリの割り当てをコントロールする必要があります。チャンクサイズの指定値は、1レコードのサイズと利用するPCで利用可能なメモリ容量に依存します。

［チャンクサイズ］特性を「1」に設定すると、1度に1レコードずつ送信されます。

通信

送受信の両方で対応した場合、通信のための時間を十分に確保できるように適切なHTTPタイムアウトを設定する必要性が発生します。

表示モード

スクリーンモードの場合は、1レコード分のみメモリを使用しますが、ラインモード（［テーブル］コントロールを使用する）のフォームは、各ページ毎にテーブルのサイズ分のメモリを使用します。スクリーンモードで表示させるようにして必要なレコードのみを取得することで、クライアント側で使用するメモリーをコントロールすることができます。

BLOB

リッチクライアントプログラム内で、データビューとして多くのコンテンツをBLOB項目として含めている場合、BLOBデータはサーバとクライアント間で受け渡しが行われ、プログラムの処理速度を低下させる原因となります。

このような場合、データビューにBLOB項目を定義しないようにするか、サーバ側でBLOB項目を使用するのであれば、専用のバッチタスクを作成することを推奨します。


リッチクライアントアプリケーション パーティショニング

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > リッチクライアントのパーティショニング

リッチクライアントのパーティショニング

以下は、リッチクライアントタスクで式を使用した動作に関する情報をまとめたものです。

サーバ側でのみ実行される関数とクライアント側でのみ実行される関数の両方によって構成される式は、両方をアクセスすることになり定義できません。

ユーザ定義関数

  • （メインプログラムを除く）開発時のタスクツリー内に定義され、サーバ側の処理コマンドが含まれているユーザ定義関数は、式をサーバ側で使用するものとして変換します。

  • （コンポーネントを含む）メインプログラムで定義されたユーザ定義関数は、式をどちらで処理されるか不明なものとして変換します。

  • ユーザ定義関数には、クライアント側およびサーバ側の処理コマンドの両方を含めることができません。

クライアント側の式

以下の式は、クライアント側で評価される式のみを使用することができます。

  • ［フォーム／コントロール］特性

  • ［タスク終了条件］特性

  • ［循環入力］特性

  • ［確認確認］特性

  • ［キャンセル確認］特性

  • ［強制レコード後］特性

  • ［修正］特性

  • ［照会］特性

  • ［削除］特性

  • ［登録］特性

サーバ側の式

以下の式は、タスクの初期設定処理で評価され、クライアント側の式を含めることはできません。

  • メインソースとリンクテーブルの各カラムの範囲式と位置付式

  • SQL Where句

  • 項目の［代入］特性

ニュートラルな式と処理コマンド

サーバ側とクライアント側の両方で評価することができるものを「ニュートラル」と呼びます。以下の式は、サーバ側とクライアント側の両方で評価することができるため、これらはニュートラルとなります。

  • ［範囲／位置付］ウィンドウ内の［範囲式］と［位置付式］

ニュートラルな式や処理コマンドが実際にどちらで評価されるかは、定義される場所や定義内容によって異なります。

  • クライアントでのみ評価される式を持つニュートラルな処理コマンドは、クライアント側の処理コマンドとみなされます。

  • サーバでのみ評価される式を持つニュートラルな処理コマンドは、サーバ側の処理コマンドとみなされます。

混在の式と処理コマンド

混在式（クライアント側の関数とサーバ側の関数を両方とも含んでいる式）は使用できません。

混在処理コマンド（少なくとも1回はクライアント側とサーバ側の両方での実行が要求される処理コマンド）は使用できません。

ロジックユニットでの推奨事項

  • ［コントロール］と［レコード前／後］は、ユーザがレコードを参照している間に実行されます。このため、サーバにアクセスする処理を定義しないようにすることを推奨します。

  • ［項目変更］は、ユーザがレコードを参照している間に実行されます。このため、サーバにアクセスする処理を定義しないようにすることを推奨します。

  • ［エラー］は、サーバ上で実行されます。

  • サーバに対する混在アクセスの実行は推奨されません。従って、クライアント側の定義群の次にサーバ側の処理が定義され、さらに、別のサーバ側の処理が続くようになっている場合、サーバ側のアクセス処理をまとめて定義するようにしてください。

  • ［ブロックWhile］処理コマンド内で、クライアント側とサーバ側の両方の処理群が定義されている場合、サーバへの混在アクセスが発生することになります。このような設定は推奨しておりません。


リッチクライアントアプリケーション クライアント/サーバ

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > クライアント/サーバ処理

クライアント/サーバ処理

リッチクライアントタスクでは、各ハンドラや処理コマンド、および関数の処理モードが表示されます。

以下のような処理モードを表す文字が、［行番号］カラムの左側に表示されます。

  • C …… クライアント側の処理。処理コマンドは、クライアント側で実行されます。

  • S …… サーバ側の処理。処理コマンドは、サーバ側で実行されます。

  • M …… 混在モードの処理。処理コマンドは、クライアントとサーバの両方で実行されます。

  • U …… 不明。どちらで実行されるか分からない処理になります。例えば、［イベント実行］処理コマンドを定義し、発行するイベントに対応したイベントロジックユニットが定義されていない場合にこの状態になります。

  • E …… エラー。［フォーム出力］処理コマンドのように、サポートされない処理コマンドが（オンラインやバッチタスクから変更されたことにより）定義されている場合にこの状態になります。

  • 文字が表示されない場合 …… クライアントまたはサーバのどちらかで実行されるニュートラルであることを表します。

リッチクライアントの処理モードの表示は、リッチクライアントタスクでは常に有効になります。メインプログラムでは、［表示］メニューの［RC処理情報を表示］をクリックすることで、表示の有無を切り替えることができます。


リッチクライアントアプリケーション 内部イベント

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > リッチクライアントの内部イベント

リッチクライアントの内部イベント

以下の内部イベントは、クライアント側でサポートしています。

NULLに設定

すべて選択

画面先頭

画面末尾

現文字削除

広域表示

行作成

行削除

行先頭

行末尾

項目先頭

項目末尾

子ノードに移動

子ノード作成

次のノードに移動

次画面

次行

次項目

次文字

取消終了

修正

終了

(xpa)終了

照会

親のノードに移動

切り取り

前のノードに移動

前画面

前行

前項目

前文字

貼り付け

登録

複写

変更取消

アプリケーション・クローズ

ウィンドウ位置変更

ウィンドウサイズ変更

キャンセル

クリック

クローズ

コピー

コントロールヒット

ズーム

ダブルクリック

テーブル先頭

テーブル末尾

ドラッグ開始

ドロップ

データビューが空

ノード縮小

ノード展開

ノード編集

ブラウザステータスのテキスト変更

ヘルプ

マーク次文字

マーク前文字

マウスアウト

マウスオーバー

以下の内部イベントは、サーバ側でサポートしています。

レコード書込

画面再表示

サブフォーム再表示

ビュー再表示


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

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > リッチクライアントのヘルプ

リッチクライアントのヘルプ

［ヘルプ画面］特性には、URLヘルプのみ指定できます。

ヘルプは、［ブラウザ］コントロールが含まれたクライアント専用のウィンドウを使用して表示されます。すなわち、既にヘルプウィンドウが開いた状態で［ヘルプ］イベントが発行されると、このウィンドウ内のヘルプトピックの内容を差し変えて表示されます。

ウィンドウはアプリケーションが終了すると閉じます。


リッチクライアントアプリケーション 並行実行

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > 並行実行

並行実行

リッチクライアントプログラムは、［並列実行］特性を指定することで同時に実行させることができます。例えば、プログラムに対する認証処理を繰り返して実行させることなく、従業員管理のプログラムと財務管理プログラムを1つの起動ファイル（マニフェストファイル）を使用して実行させることができます。

並列実行のリッチクライアントプログラムは、別のリッチクライアントプログラムからのみ起動させることができます。［プログラム］リポジトリでのF7キー操作やエンジンにリクエストを送ることで起動させた場合、プログラムは並行実行されません。

リクエスト（コマンドライン、リモートコールなど）によって並行起動設定のリッチクライアントプログラムを呼び出すと、プログラムは並行起動ではなくなります。

起動プログラムを終了させても、（オンラインプログラムによるのように）呼び出された並行プログラムは終了しません。

［コンテキストID］特性は使用できません。項目を割り当てても削除されます。


Web開発 リッチクライアント クライアント側のデバッグ

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > クライアント側のデバッグ

クライアント側のデバッグ

リッチクライアントタスクでは、アクティビティモニタを使用することでサーバ側のデバッグを行うことができます。クライアント側の処理は、次のイベントが処理される際に、アクティビティモニタに追加されます。

クライアント側のデバッグを行うには:

  1. ［ロギング］テーブルの「クライアントの動作」のオプションを「Yes」に設定します。

この場合、別のイベントが実行される前に、リッチクライアントタスクが異常終了したり、ハングアップした場合、アクティビティモニタの最後の処理内容は残りません。従って、クライアント側のデバッグができるようにすることでこの問題が解決できるようにします。

クライアント側の異常終了をデバッグするには：

  1. リッチクライアントアプリケーションの起動用HTMLファイルの"LogClientSequenceForActivityMonitor"フラグを「Yes」に設定します。このファイルは、リッチクライアントインタフェースビルダで作成されます。このフラグが「Yes」に設定された場合、クライアント側の動作内容がクライアントのローカルなログファイルとして書き込まれます。このログファイルには、サーバに送信されなかったすべての情報が含まれます。ログファイルは、各イベント処理が実行された後や、アプリケーションが終了された時点で削除されます。

  2. アプリケーションが起動されると、既存のログファイルを探し出します。以前に異常終了した時のファイルが存在する場合、その内容がサーバに送られ、アクティビティモニタに表示されます。

  3. 異常終了が発生した場合、ログファイルが正常に削除されるように、他のすべての並列実行プロセスを終了してください。

  4. アプリケーションを再起動すると、最後のクライアントシーケンスを持つログファイルがサーバに送られます。

  5. アクティビティモニタはクライアントログによって更新されし、現在の問題点の発生箇所を確認することができます。

注意：

アクティビティモニタの表示行は、サーバ側はピンク色で、クライアント側は白色です。


RIAの実行

リッチクライアント実行のために、以下の設定が必要です。

実行モード

Magic xpaのリッチクライアント・アプリケーションを実行させるには、［実行モード］を「バックグラウンド」に設定してください。オンラインモードは、Magic xpaスタジオでアプリケーションをデバッグする場合に使用します。

最初のプログラム

外部から呼び出したいプログラムである場合は、リッチクライアントプログラムの［外部］チェックボックスをチェックしておく必要があります。

このプログラムのフォームは、SDIとして定義するようにしてください。

このプログラムが読み込まれると、新しいコンテキストはそれのために自動的に開始され、以降の全てのプログラムはそのタスクツリー内で実行されます。


リッチクライアントアプリケーション RIAの実行ファイル

ホーム > リファレンスガイド > Web 開発 > リッチクライアントアプリケーション > RIAの実行ファイル

RIAの実行ファイル

実行ファイル

ClickOnceを使用してアプリケーションを配備すると、RIAのクライアントファイルがクライアントマシンにダウンロードされます。

ClickOnceは、以下のフォルダにRIAクライアント用のファイルをインストールします：

Windows Vista以降の場合：

c:\users\username\AppData\Local\Apps\2.0\obfuscatedfoldername\obfuscatedfoldername\appname

Windows XPの場合：

C:\Documents and Settings\username\LocalSettings\Apps\2.0\obfuscatedfoldername\obfuscatedfoldername\appname

各RIAクライアント用として、ClickOnceは以下の2つのファイルを作成します：

  • .manifest

  • .cdfms

これらのファイルには、ClickOnceの自動アップデータによって利用する内容に関する情報が含まれています。

キャッシュファイル

パフォーマンスを向上させるため、アプリケーションサーバとRIAクライアントの両方は、アプリケーションのメタデータと特定のセッションで使用されるデータビューのいくつかをキャッシュに格納します。

キャシュファイルの格納される場所は以下のようになります：

サーバ上：

RIAのキャッシュファイルは､Magic xpaの［動作環境］の［リッチクライアントキャッシュパス］で定義されたフォルダ上に作成されます。

クライアントマシン上：

  • RIAプログラムがMagic xpa Studioから実行したり､MgxpaRIA.exeを直接起動することによって（ClickOnceを使用しないで）実行した場合、プログラムの実行に必要なすべてのリソースは､%TEMP%\MgxpaRIACacheフォルダに作成されます。

開始イメージ

Windowsクライアントでアプリケーションを起動する際、スプラッシュイメージを表示させることができます。

イメージは、以下のように定義することができます。

  • ClickOnceを使用して起動する場合、イメージはリッチクライアントインタフェースビルダで定義します。

  • Magic xpa Studioから直接実行する場合は、RIAModules\Desktop\Resources\startup.pngのイメージファイルを参照します。

PNGファイルのみがサポートされます。

サポートバージョン：

2.4


モバイルRIA

Magic xpaを使用することで、iOSやAndroid用のモバイルデバイス対応のリッチクライアントアプリケーションを開発することができます。

モバイル用のアプリケーションを開発する上での情報は、以下のドキュメントを参照してください。

  • Magic xpaのRedme

  • モバイルRIA開発者ガイド（PDF）

  • iOSモジュールのビルド作業ガイド（PDF）

  • iOSに関するAppleのドキュメントは、以下のURLを参照してください。

https://developer.apple.com/jp/devcenter/ios/library/japanese.html

  • Androidの開発情報は、以下のURLを参照してください。

http://developer.android.com/index.html（英語サイトです）


コンテキスト管理

対話型のWebアプリケーションに対するコンテキスト管理によって、リクエスト処理中のプログラムを実行し続けることができます。コンテキスト機能には、実行エンジンやタスクツリー、メモリテーブル、および入出力ファイルの状態が含まれています。

各コンテキストは、識別IDを持っています。このIDによって、実行環境でのコンテキストが識別されます。

コンテキストは、プログラムが終了するか、[非稼動タイムアウト]で指定された秒数を超えるまでアクティブです。[非稼動タイムアウト]の設定値を変更することで、コンテキストが有効な時間を変えることができます。

注意：

  • Magicエンジンがコンテキストを作成すると、クライアントからの全てのリクエストは常に同じエンジンに渡されます。

  • 外部のHTTPロードバランサーを使用すると、クライアントとサーバ間の粘着性（各クライアントから最初のリクエストが作成されたWebサーバへの直接のリクエストへロードバランサーとしての機能）を確実にする必要があります。

  • これをサポートするために、各RIAリクエストは、MgxpaRIAglobalUniqueSessionIDというヘッダ名が含まれています。
    このヘッダは、取得したエンドユーザセッションの各HTTPリクエスト内に同じユニークな値を維持します。ヘッダは、各クライアントのインスタンスに対して異なるユニークな値が含まれています。外部のHTTPロードバランサーは、粘着性をサポートするために、これを使用することができます。

コンテキスト管理

1つのHTMLフォームから別のHTMLに移動した場合に、プロジェクトを通してコンテキストを維持するために使用されます。

以前に呼び出されたプログラムで設定されたコンテキスト変数の値を調べる場合は、GetParam関数を使用してください。

コンテキスト変数は、CookieかHidden項目を使用して実装されます。

関連トピック：

コンテキストの保持


Web サービス

ホーム > リファレンスガイド > Webサービス

Webサービス

Magic xpaは、Webサービスのプロバイダ/コンシューマ機能のフレームワークとして「SOA Enablement server for Java(旧：Systinet Server for Java)」を使用します。

注意:

以降の説明では、「Systinet Server」という名前のままにしています。

Magic xpaのWebサービス機能は以下をサポートしています。

  • SOAP 1.1 / SOAP 1.2

  • WSDL 1.1

  • SOAPアタッチメント

  • MTOM/XOPサポート

  • WS-I Conformance

  • 転送セキュリティ（Transport level security） …… クライアントとサーバ両者の信頼性、および Web サーバとそのクライアントの間でやり取りされるデータの整合性と機密性を保証する一連のセキュリティです。

  • Webサービスセキュリティ（WS-Security） …… SOAPメッセージレベルのセキュリティです。

Magic xpaのインストール処理時に、「Systinet Server for Java」を一緒にインストールことができます。

WebサービスコンシューマとしてMagic xpaを使用するためには、以下の機能を使用することができます。

  • Webサービスコンポーネントジェネレータ

  • ［コールWebサービス］処理コマンド …… この機能は、 Systinet Server for Javaを使用します。一旦セットアップを行うと、様々な機能を利用することができます。

  • ［コールWebサービスライト］処理コマンド …… セキュリティを設定する必要がない場合は、この方法を使用することを推奨します。

  • HTTPCall関数

WebサービスプロバイダーとしてMagic xpaを使用するためには、Webサービスインタフェースビルダを使用してサービスを作成してください。サービスを配置し使用するには、以下のようにWindows OSの「Systinet Server for Java」サービスを起動する必要があります。（Systinet のプログラムメニューから起動できます。）

Magic V9PlusのWebサービスのアプリケーションを Magic xpa用にマイグレーションする方法については、「変換結果(マイグレーション)」参照してください。

参考:

Magic xpaをインストールする際、Webサービスフレームワークのコンポーネントを選択すると、Magic xpaのインストールフォルダ内にSoapClientModulesフォルダが作成されます。WSDLファイルを読み込むと、Jarファイルと2つのXSDファイルがSoapClientModulesフォルダに作成されます。これらのXSDファイルを使用して構造を保存することを推奨します。

Magic xpaは、Webサービス機能を実現するために以下の環境設定や関数を提供しています。

  • SOAP クライアントモジュールパス

  • SOAP スパイアドレス

  • WsSetIdentity

Webサービスで添付ファイルを扱う関数に関しては、「Web サービスと添付ファイル」のトピックを参照してください。

関連トピック：

Webサービス（コンシューマ） （Mastering Magic xpa）

Webサービス（プロバイダ） （Mastering Magic xpa）


コンポーネントビルダ WIB

ホーム > リファレンスガイド > Webサービス > Webサービスインタフェースビルダ

Webサービスインタフェースビルダ

Webサービスインタフェースビルダは、公開名が定義されたバッチプログラムをWebサービス用に公開することができます。

ビルダは、サービスJARファイルを作成し、Systinet™サーバ（Webサービスのフレームワークとして、Magic xpaと一緒にインストールすることができます。）上でオプションで実行させることができます。

Webサービスの作成とデプロイに成功したら、Systinet™サーバのWindowsサービスが実行されていることを確認してください。（サービス名：Systinet Server for Java）

Systinetサーバが実行されていることを確認するには、Webブラウザより以下のＵＲＬを開いてください。

http://localhost:6060

Systinetサーバコンソールのログインページを表示します。以下のパラメータでログインしてください。

  • ユーザ名：admin

  • パスワード：changeit

公開名を持ったバッチプログラムが少なくとも一つは定義されている必要があります。また、［外部］カラムがチェックされている必要があります。

［オプション］メニューから、［インタフェースビルダ］を選択し、［Webサービス］を選択することでWebサービスビルダが実行されます。

［次へ］をクリックすると［Webサービス一覧］画面が表示されます。

注意：

  • 予めSystinet Server を起動してからインタフェースビルダを起動してください。

  • 管理者権限でSystinet Serverを起動してください。

  • コンポーネント名や公開プログラム名、パラメータ名にDBCSは使用できません。また、数値から始まる名前や空白、ハイフンなどの記号を使用することもできません。

関連トピック：

Magic xpaでWebサービスを提供するには


コンポーネントビルダ WIB Webサービス一覧

ホーム > リファレンスガイド > Webサービス > Webサービスインタフェースビルダ > Webサービス一覧

Webサービス一覧

［Webサービル一覧］ダイアログには、今までに作成されたWebサービスが表示されます。ここでは、既存のWebサービスを削除したり、追加することができます。Webサービスを選択して、［次へ］をクリックすると既存のWebサービスの修正を行うことができます。

WSDLビルダが起動されると、「New_Service」コンポーネントが自動的に作成されます。このコンポーネントを削除することはできません。

［割り当て修正］ボタンをクリックすると、［割り当て表示／修正］ダイアログが表示されます。

［サーバ］ボタンをクリックすると、［Systinetサーバの詳細］ダイアログが表示されます。

［次へ］をクリックすると、［Webサービス詳細］ダイアログが表示されます。

削除をクリックした時に、確認ダイアログで「はい」を選択した場合、ウィザードは、WSDLファイルとビルダが作成したJarファイルを削除します。Jarがデプロイされても、ビルダはデプロイしません。


コンポーネントビルダ WIB 割り当て表示/修正

ホーム > リファレンスガイド > Webサービス > Webサービスインタフェースビルダ > 割り当て表示／修正

割り当て表示／修正

［割り当て表示/修正］ダイアログでは、有効なWSDLのデータタイプとMagic xpaのデータ型との割り当てを参照したり、修正したりすることができます。

［Webサービス一覧］ダイアログで、［割り当て修正］ボタンをクリックするとアクセスすることができます。


コンポーネントビルダ WIB サーバ詳細

ホーム > リファレンスガイド > Webサービス > Webサービスインタフェースビルダ > Systinetサーバの詳細

Systinetサーバの詳細

［サーバ詳細］ダイログには、以下の設定項目があります。

項目

内容

サーバ

サービスを配置するために必要な Systinet サーバのアドレスを指定します。デフォルト値は、 MAGIC.INIファイルから取得されます。

［Magic_Builders］Soap Server Address = http://localhost:6060

ユーザID

サーバにログインするためのユーザIDを指定します。（論理名やシークレット名を使用することができます。）

配置

作成されたJarファイルをサーバに配置するかどうかを指定します。

詳細を保存

ユーザIDとパスワードを保存するかどうかを指定します。MAGIC.INIファイルの［Magic_Builders］ セクションに保存されます。

  • ［Magic_Builders］SoapUser = admin

  • ［Magic_Builders］SoapPass = http://localhost:6060

パスワード

サーバにログインするためのパスワードを指定します。（Admin のデフォルトのパスワードは 「changeit」です。アカウントは、SystinetのAdministration Consoleで変更できます。）

パスワードの保存

パスワードをMAGIC.INIの［Magic_Builders］セクションに保存するかどうかを指定します。


コンポーネントビルダ WIB Webサービス詳細

ホーム > リファレンスガイド > Webサービス > Webサービスインタフェースビルダ > Webサービスの詳細

Webサービスの詳細

［Webサービスの詳細］ダイアログには、作成されるWebサービスについての情報を設定します。

このダイログには、以下の設定項目があります。

項目

内容

サービス名

ユーザ定義のサービス名です。サービス名の入力は必須で、プロジェクト毎にユニークな名前にしてください。サービス名には、以下の文字のみ有効です。
A-Z、z、0-9、アンダーバ（_）。
サービス名は、Webサービスモジュールを作成するために使用されます。

説明

WSDL ファイルの説明を入力します。

サービスネームスペース

現在のMagic xpaのインストールによって組み込まれたすべての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サービスインタフェースビルダ > プログラム一覧

プログラム一覧

選択可能なプログラムは、公開名が定義されたバッチプログラムで、［外部］カラムがチェックされているものです。WSDLに追加したいプログラムをここで選択してください。

［次へ］をクリックすると、［処理一覧］に移動します。


コンポーネントビルダ WIB 処理一覧

ホーム > リファレンスガイド > Webサービス > Webサービスインタフェースビルダ > 処理一覧

処理一覧

［処理一覧］ダイアログには、Webサービスとして定義されたプログラムが表示されます。

新規入力時は、「New Operation」と表示されます。

この一覧は、入力順に表示されます。一覧内の全ての処理は、WSDLに追加されます。

ここには、以下の２つのボタンがあります。

  • 削除 …… 一覧内で選択した処理を削除します。

  • 特性 …… ［Webサービス処理の詳細］ダイアログが開きます。ここでは、WSDLファイルに追加する処理の詳細情報の表示／修正を行うことができます。

［次へ］をクリックすると、［WSDLコンポーネントの作成］ダイアログが表示されます。


コンポーネントビルダ WIB 処理の詳細

ホーム > リファレンスガイド > Webサービス > Webサービスインタフェースビルダ > Webサービス処理の詳細

Webサービス処理の詳細

ここでは、処理の詳細情報を定義することができ生ます。

  • プログラム …… ここには、Magic xpaのプログラム名が表示されます。表示のみで入力はできません。ボタンをクリックして、［有効な処理一覧］ダイアログを表示することでプログラムを選択することができます。
    このプログラムのパラメータ（または、戻り値）の１つがOLEかActiveX、またはベクトルか.NETである場合、［OK］ボタンが無効になり、エラーメッセージが表示されます。このプログラムのパラメータは無効で、処理として定義できません。

  • 戻り値 …… Webサービス処理の戻り値です。

パラメータテーブル

ここには、選択されたプログラムのパラメータが表示されます。詳細を変更することができます。WSDLタイプへパラメータの初期割り当ては、デフォルトの割り当てテーブルに基づいて表示されます。

カラム

内容

パラメータ名

パラメータの名前です。小文字や、数字、およびアンダーバ以外の文字は、アンダーバに変換されます。パラメータ名を修正後に、変換処理が実行されます。

タイプ

Magic xpaのデータ型に対するWSDLのデータタイプがコンボボックスで表示されます。

  • データ型がBLOB型の場合、［添付］と呼ばれるコンボボックスのエントリが追加されます。

  • データ型が、文字型やUnicode型、BLOB型の場合、「ドキュメント」と呼ばれるエントリが追加されます。「ドキュメント」が選択された場合、［参照］ボタンを押下すると［スキーマ形式ドキュメント］ダイアログが表示されます。

関連トピック：

アタッチメント付きのWebサービスを提供するには

プロバイダとしてのWebサービスから複雑なパラメータの送受信を行うには

方向

３つのオプションが表示されるコンボボックスです。

  • IN …… パラメータの値は、値渡しで渡されます。

  • IN/OUT …… パラメータの値は、参照渡しで渡されます。

XSDタイプ

WSDLタイプのデフォルト割り当てに基づくビルダは、Magic xpaのデータ型との割り当てを定義します。ユーザはこのカラムを修正することができます。

数値型 | 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 コンポーネントの作成

ホーム > リファレンスガイド > Webサービス > Webサービスインタフェースビルダ > Webサービスコンポーネントの作成

Webサービスコンポーネントの作成

このダイアログボックスは、WSDLコンポーネントの概要が表示されます。エラーがない場合、［終了］ボタンが有効になります。［終了］ボタンをクリックすると、［コンポーネントの状態］ボックスが表示されます。

エラーがある場合、［終了］ボタンが無効となり、該当するメッセージがダイアログボックスの下に表示されます。

［パブリッシュサービスウィザードを進める］のチェックボックスをチェックした場合、［UDDIサーバを提供］ダイアログが表示され、UDDIに登録するWebサービスをパブリッシュすることができます。

メッセージボックスが、WSDLコンポーネントが作成されているかどうかを知らせるために表示されます。処理の完了後、WSDLコンポーネントが作成されなくても、ウィザードは終了します。


UDDIサーバの提供

［UDDIサーバの提供］ダイアログは、コンポーネントの作成が成功し、［パブリッシュウィザードの続行］のチェックボックスがチェックされている場合にのみ有効になります。

  1. ［問い合わせ］と［パブリッシュ］の入力欄では、プロバイダー詳細を確認したり、登録後にサービスを修正／追加のために、UDDIサーバのURLを指定します。この情報は自動的にMAGIC.INIファイルに保存されます。

  2. ユーザID（最大：100文字）とパスワード（最大：30文字）を入力し、［次へ］をクリックします。

  3. ［プロバイダの選択］ダイアログでは、ログインしたユーザによって定義されたプロバイダのリストから、プロバイダを選択します。［次へ］をクリックします。

  4. ［プロバイダオプション］ダイアログから、サービスを作成するか、既存のサービスを修正するかを選択します。［次へ］をクリックします。

  5. ［サービス詳細］ダイアログが表示されます。［作成］を選択した場合、サービス名やサービスの説明、アクセスポイント(［WSDLのURL］)を入力します。［修正］を選択した場合、前のセッションで更新されたサービスが表示されます。

  6. ［終了］をクリックするとUDDIのプロバイダ情報が更新されます。


コンポーネントビルダ WIB コンポーネントの状態

ホーム > リファレンスガイド > Webサービス > Webサービスインタフェースビルダ > コンポーネントの状態

コンポーネントの状態

ここには、コンポーネント作成処理の状態が表示されます。

コンポーネントの作成に成功した場合、その旨のメッセージが表示され、ウィザードは終了します。

［>>］ボタンをクリックすると、以下の詳細が表示されるダイアログボックスを開きます。

  • Webサービスのアドレス

  • 作成されたJARファイル

コンポーネントの作成に成功した場合、その旨のメッセージが表示され、ウィザードは終了します。


Web サービスと添付ファイル

Magic xpaは、以下の関数を使用することで添付ファイルの処理を実行することができます。

  • File2Blb

  • WsConsumerAttachmentAdd

  • WsConsumerAttachmentGet

  • WsProviderAttachmentAdd

  • WsProviderAttachmentGet

これらの関数は、［コールWebサービスLite］処理コマンドでは利用できません。

注意

Webサービスを使用して、あまり大きなファイルを送ることは推奨されません。

関連トピック：

Webサービスアタッチメントを使用するには

アタッチメント付きのWebサービスを提供するには


メッセージング

分散アプリケーション環境において、２つの異なるアプリケーションが情報を交換するには、相互に通信を行う必要があります。これを解決するひとつの方法としてメッセージキューイングがあります。この方法は、メッセージの配信が保証されています。

メッセージキューイングを使用することで、アプリケーションは、返信を待つことなくメッセージを送信します。そして、次の処理を継続させることができます。他のアプリケーションは、任意にメッセージを受け取り、処理を継続させることができます。

メッセージキューイングは、プログラムのインスタンスがシステムによって管理されたメッセージキューに対するインタフェースを使用することで、データを交換することができる方法です。アプリケーションプログラムは、メッセージキューを作成し、アプリケーションプログラムインタフェース(API)を使用して、メッセージを送受信します。

メッセージを送るには、以下の2つの方法があります。

  • 送信/受信 …… 1つまたは複数の送信者が、1つの受信者にメッセージを送りたい場合に使用されます。各メッセージは、特定のキューが設定され、受信者はメッセージをキューから取り出します。

  • パブリッシュ/サブスクライブ …… 複数の送信者(パブリッシャ)と多くの受信者(サブスクライバ)が存在する場合に、この方法が使用されます。パブリッシャはメッセージを、トピックと呼ばれる中心となる場所に送ります。ここに送られたメッセージは、購読を申し込んだユーザであれば誰でも受信することができます。

これらの方法は、どちらもユーザ対して保証された配信を提供します。

メソッドキューに対するすべてのアクセスは、Open、Close、Sendのようなプログラムを使用して行われます。

Magic xpaは、MSMQ （Micorsoft） 、JMS （Java） 、WebSphere （IBM） の３つの標準的なメッセージングキューシステムに対応したインタフェースをもつメッセージングキューコンポーネントを提供しています。

関連トピック：

Magic xpaのメッセージング機能

セットアップ

エラー

メッセージのテスト

メッセージング （Mastering Magic xpa）


メッセージング メッセージングとは

ホーム > リファレンスガイド > メッセージング > メッセージキューイングとはどのようなものか ?

メッセージキューイングとは ?

メッセージキューイングとは、アプリケーション間でメッセージを交換する場合、一旦サーバ上にデータを保管して相手の処理の完了を待つことなく次の処理を行う方式です。アプリケーションプログラムはメッセージキューを作成し、API （アプリケーションプログラムインタフェース） を使用してメッセージの送受信を行います。

アプリケーションは、メッセージキューにメッセージを送信する場合に応答を待つことなく、次の処理を継続させることができます。他のアプリケーションは、空いた時にメッセージを受け取り、そのデータに従って処理を行うようにできます。

メッセージキューは、プログラムのインスタンスが、システムで管理されたメッセージ待ち行列にインタフェースを使用して、データを交換することができる方法です(それはオペレーティングシステムによって管理されます)。

アプリケーションプログラムはメッセージ待ち行列を作成し、アプリケーションプログラムインタフェース(API)を使用して、メッセージを送受信します。

メセージング処理には２種類の型があります。Point to Point型とPublish/Subscriber型です。

Point to Point型

これは相手を特定した１対１通信です。送り手はキューという仮想的なチャネルにメッセージを送り、受け手はそのチャネルからメッセージを取得します。お互いに相手を意識する必要はありません。

Publisher/Subscriber型

これは特定の種類のメッセージを受け取りたい側（Subscriber）がメッセージサーバに対してメッセージ購読を申し込みます（サブスクライブといいます）。

メッセージを送りたい側（Publisher）は、誰に対して送るかは考えず、とりあえずメッセージサーバに対してメッセージを発行します（パブリッシュといいます）。それを受け取ったメッセージサーバは、メッセージの種類や属性をみて、そのメッセージを欲しがっている購読者に対してメッセージを送ります。（Magicコンポーネントを使用する場合は、メッセージの取得処理を実行する必要があります。）

２つの方法はどちらも、ユーザに対してメッセージの配信を保証するものです。

メソッドキューへの各アクセス（オープンやクローズ、送信など）は、コンポーネントプログラムを呼び出すことで実行されます。


メッセージング メッセージング接続

ホーム > リファレンスガイド > メッセージング > Magic xpaのメッセージング機能

Magic xpaのメッセージング機能

コンポーネントは、サポートするメッセージキューイングシステムに対して、以下の4つの基本プログラムを提供しています。

  • キューのオープン

  • メッセージの送信

  • メッセージの読み込み

  • キューのクローズ

例えば、メッセージの読み込み処理を実行する場合は、最低限以下のプログラムを呼び出す必要があります。

  • キューのオープン

  • メッセージの読み込み

  • キューのクローズ

さらに、コンポーネントは、簡易送信用のプログラムを提供しています。これは、キューをオープンし、メッセージを送信し、キューをクローズする処理を全て行うものです。

「キューのオープン」プログラムは、オープンしたキューのハンドル値を返します。この値は、オープンしたキューにアクセスする場合に使用されます。

基本プログラムとは別に、各メッセージキューシステム用に応じた追加プログラムも提供しています。


メッセージング セットアップ

ホーム > リファレンスガイド > メッセージング > セットアップ

セットアップ

  1. Magic xpaをインストールする際に、メッセージングコンポーネントを選択するオプションがあります。ここでこのコンポーネントを選択しなかった場合、再度インストールウィザードを開き、メッセージングコンポーネントを選択する必要があります。

  2. ［コンポーネント］リポジトリを開き。１行追加します。

  3. F5を押下し、使用したいメッセージングコンポーネント用の、.eciファイルを選択してください。

  4. メッセージングコンポーネントは以下のような2つの論理名を使用します。通常は、コンポーネントを読み込むことで自動的に設定されますが、MAGIC.INI に設定されていない場合、追加する必要があります。

  5. MessagingComponentDir …… メッセージングコンポーネントの場所を指定します。この論理名は、「\」で終了させます。

  6. MessagingErrorLogFile …… エラーログファイル名を指定します。ファイルは、「MessagingComponentDir」に作成されます。


メッセージのテスト

メッセージングコンポーネントを実行している場合、［ツール］メニューで［メッセージのテスト］のオプションが有効になります。この機能によって、各メッセージングシステムの接続確認を行うことができます。

各メッセージングシステムのテストに関する情報に関しては、以下のトピックを参照してください。

MSMQ

JMS

WebSphere MQ


メッセージング バージョン

ホーム > リファレンスガイド > メッセージング > コンポーネントのバージョン

コンポーネントのバージョン

コンポーネントのバージョンを確認する場合は、以下に説明するコンポーネントプログラムを呼び出してください。

Version

メッセージングコンポーネントのバージョンを返します。

戻り値 …… 文字（20）：バージョン番号が返ります。


MSMQ

ホーム > リファレンスガイド > メッセージング > MSMQとの接続

MSMQとの接続

Magic xpaのMSMQ メッセージングコンポーネントは、MagicプロジェクトがMicrosoft Messaging Queue（以下MSMQと略します）との間でメッセージの送受信を行うようにするものです。このドキュメントは、MSMQ をサポートするMagic xpaのメッセージング機能について説明するもので、MSMQ の基礎的な知識を持っている事を想定して記述しています。

MSMQ との接続用のコンポーネントを利用する場合は、Messaging サブフォルダ上のMSMQ.eciを使用してコンポーネントを組み込んでください。

関連トピック：

必要条件

コンポーネントプログラム

列挙コード一覧ユーティリティ

メッセージセットアップテーブル

メッセージのテスト


MSMQ 必要条件

ホーム > リファレンスガイド > メッセージング > MSMQとの接続 > 必要条件

必要条件

MSMQメッセージング用コンポーネントを有効にするには、MSMQクライアント／サーバ用ソフトをMagic xpaがインストールされているPCにインストールする必要があります。

また、アプリケーションにMagic xpaのMSMQコンポーネントを定義する必要があります。詳細は、セットアップを参照してください。


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との接続 > コンポーネントプログラム > MSMQ Open Queue

MSMQ Open Queue

メッセージキューをオープンし、キューのハンドルを取得します。

パラメータ

データ型

説明

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との接続 > コンポーネントプログラム > MSMQ Close Destination

MSMQ Close Destination

メッセージキューをクローズして、キューメモリテーブル上のエントリを削除します。

パラメータ | データ型 | 説明
Queue Handle | 数値（18）／入力 | クローズするキューのハンドル（オープン時に返された数値）

戻り値

数値（17）

処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


MSMQ コンポーネントプログラム SendMessage

ホーム > リファレンスガイド > メッセージング > MSMQとの接続 > コンポーネントプログラム > MSMQ Send Message

MSMQ Send Message

メッセージキューにメッセージを送信します。

パラメータ

データ型

説明

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 xpaのベクトル型です。ベクトルデータを渡す場合は、一旦BLOB項目にデータを渡してからパラメータに指定してください。

  • B …… BLOB

  • O …… オブジェクト

Picture

文字列（30）／入力

（オプション）

Magic xpaの項目の書式。VARPIC関数を使用して送ることができます。このパラメータは、データ型が 「N」 の時だけ指定する必要があります。

Transaction Mode

文字（1） ／入力

  • N …… トランザクションなし

  • S …… 単一メッセージトランザクション

  • T …… 定義されたトランザクション内

Transaction Handle

数値（18）／入力

（オプション）

「Begin Transaction」プログラムから返された数値を指定します。定義されたトランザクション内を指定した場合はこの値を指定する必要があります。

Correlation Id

ベクトル ／入力

（オプション）

送信／応答用。書式「3」の数値セルが定義された Magic xpaのベクトル型です。20のセルを渡します。

Message Id

ベクトル／出力

書式「3」の数値セルが定義された Magic xpaのベクトル型です。20のセルが返ります。

戻り値

数値（17）

処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。

注意：

XMLファイルは、文字列として送信されます。


MSMQ コンポーネントプログラム QuickSendMessage

ホーム > リファレンスガイド > メッセージング > MSMQとの接続 > コンポーネントプログラム > MSMQ Quick Send Message

MSMQ Quick Send Message

メッセージキューをオープンし、メッセージを送り、メッセージキューをクローズします。このプログラムは、簡単にメッセージを送りたい場合は有効ですが、大量のメッセージを送る場合は、効率的ではありません。

このプログラムは、「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 xpaのベクトル型です。

  • B …… BLOB：配列として分類され送信されます。

  • O …… オブジェクト：このまま送信されます。

Picture

文字列（25）／入力（オプション）

Magic xpaの項目の書式。VARPIC関数を使用して送ることができます。このパラメータは、データ型が 「N」 の時だけ指定する必要があります。

Message Setup BLOB

BLOB／入力

メッセージセットアップテーブルをBLOB化した値

Transaction Mode

文字（1） ／入力

  • N …… トランザクションなし

  • S …… 単一メッセージトランザクション

  • T …… 定義されたトランザクション内

Transaction Handle

数値（18） ／入力（オプション）

「Begin Transaction」プログラムから返された数値を指定します。定義されたトランザクション内を指定した場合はこの値を指定する必要があります。

Correlation Id

ベクトル ／入力（オプション）

送信／応答用。書式「3」の数値セルが定義された Magic xpaのベクトル型です。20のセルを渡します。

Message Id

ベクトル／出力

書式「3」の数値セルが定義された Magic xpaのベクトル型です。20のセルが返ります。

戻り値

数値（17）

処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


MSMQ コンポーネントプログラム ReadMessage

ホーム > リファレンスガイド > メッセージング > MSMQとの接続 > コンポーネントプログラム > MSMQ Read Message

MSMQ Read Message

メッセージを受け取ったり、データ型を返したりします。

パラメータ

データ型

説明

Queue Handle

数値（18） ／入力

メッセージの送信先のキューのハンドル（オープン時に返された数値）

Timeout

数値（5）／入力（ミリ秒）

コンポーネントがメッセージを待つ時間を指定します。（-1） を指定すると、キューにメッセージがあるまで待つことになります。これは受信側で設定します。

Transaction Mode

文字（1）／入力

  • N …… トランザクションなし

  • S …… 単一メッセージトランザクション

  • T …… 定義されたトランザクション内

Transaction Handle

数値（18） ／入力

（オプション）

「Begin Transaction」プログラムから返された数値を指定します。定義されたトランザクション内を指定した場合はこの値を指定する必要があります。

Numeric Picture

文字列（30） ／入力

（オプション）

Magic xpaの項目の書式。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になります。

  • L …… 論理

  • V …… ベクトル（配列）：3桁の数値型セルを持つように定義された Magic xpaのベクトル型です。

Correlation ID

ベクトル ／入出力

（オプション）

送信／応答用。書式「3」の数値セルが定義された Magic xpaのベクトル型です。20のセルを渡します。

入力の場合は、このIDに合ったメッセージのみ送信されます。

Message ID

ベクトル ／出力

（オプション）

書式「3」の数値セルが定義された Magic xpaのベクトル型です。20のセルを渡します。

ここに設定された項目に、送信されたメッセージのメッセージＩＤが格納されます。

戻り値

数値（17）

処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。

参考：

Ackキューのメッセージを読むこともできます。この場合、Ackメッセージは、通常のメッセージとして返されます。

この方法は、MsgClass特性が「0」でない場合に有効です。Ackメッセージと送信メッセージを照合するためには、「Correlation ID」を使用しなけばなりません。


MSMQ コンポーネントプログラム BeginTransaction

ホーム > リファレンスガイド > メッセージング > MSMQとの接続 > コンポーネントプログラム > MSMQ Begin Transaction

MSMQ Begin Transaction

このプログラムによって、MSMQトランザクションが開始されます。

パラメータ

データ型

説明

Transaction Type

文字（1） ／入力

  • I …… MSMQ内部の環境を使用します。

  • M …… Microsoft Transactional Server環境を使用します。

戻り値

数値 （17）

処理が成功するとトランザクションのハンドル値が返り、エラーが発生すると負の値が返ります。


MSMQ コンポーネントプログラム CommitTransaction

ホーム > リファレンスガイド > メッセージング > MSMQとの接続 > コンポーネントプログラム > MSMQ Commit Transaction

MSMQ Commit Transaction

このプログラムは、トランザクションをコミットします。トランザクションを継続して使用する場合は、新しいトランザクションを開始しなくてはなりません。

パラメータ | データ型 | 説明
Transaction handle | 数値（18） ／入力 | 「Begin Transaction」プログラムから返された数値を指定します。

戻り値

数値（17）

処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


MSMQ コンポーネントプログラム RollbackTransaction

ホーム > リファレンスガイド > メッセージング > MSMQとの接続 > コンポーネントプログラム > MSMQ Rollback Transaction

MSMQ Rollback Transaction

このプログラムは、トランザクションをロールバックします。トランザクションを継続して使用する場合は、新しいトランザクションを開始しなくてはなりません。

パラメータ | データ型 | 説明
Transaction Handle | 数値（18） ／入力 | 「Begin Transaction」プログラムから返された数値を指定します。

戻り値

数値（15）

処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


MSMQ コンポーネントプログラム MessageSetup

ホーム > リファレンスガイド > メッセージング > MSMQとの接続 > コンポーネントプログラム > MSMQ Message Setup

MSMQ Message Setup

デフォルトと異なるプロパティを設定してメッセージをセットアップします。MSMQ の場合、読み込み用にオープンされたキューに対する意味があまりありません。

パラメータ | データ型 | 説明
Queue Handle | 数値（17）／入力 | メッセージの送信先のキューのハンドル（オープン時に返された数値）
Message Setup BLOB | BLOB／入力 | 「メッセージセットアップテーブル」の内容をBLOB化したものを指定します。この中に MSMQプロパティが指定されています。

戻り値

数値（17）

処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


MSMQ コンポーネントプログラム SetupNumericPicture

ホーム > リファレンスガイド > メッセージング > MSMQとの接続 > コンポーネントプログラム > MSMQ Setup Numeric Picture

MSMQ Setup Numeric Picture

数値メッセージを受け取る場合、データをMagic xpaの数値項目に変換する必要があります。このため、データの書式が何であるかをあらかじめ確認する必要があります。受信プログラムは、受け取ったメッセージのデータ型が数値の場合の書式を指定することができますが、指定しない場合はデフォルト値として 「N12.5Z」を使用します。「Setup Numeric Picture」 プログラムは、このデフォルト値を変更する場合に使用します。

パラメータ | データ型 | 説明
Numeric Picture | 文字（30）／入力 | 数値型の書式を指定します。空白は指定できません。

戻り値

数値（15）

処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


MSMQ コンポーネントプログラム FetchReferences

ホーム > リファレンスガイド > メッセージング > MSMQとの接続 > コンポーネントプログラム > MSMQ Fetch References

MSMQ Fetch References

ホストアプリケーションがサポートされない処理を実行する必要がある時、 このプログラムは、実際のMSMQ 接続ハンドルを返します。

パラメータ | データ型 | 説明
Queue Handle | 数値（18）／入力 | メッセージキューのハンドル（オープン時に返された数値）
MSMQ Queue Handle | 数値 （18）／出力 |

戻り値

数値（15）

処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


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］ボタンをクリックすると、メッセージボックスにメッセージが返ります。


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プロパティ

MSMQプロパティ

現在サポートされるプロパティは、以下の通りです。

プロパティ

データ型

説明

Ack

数値

肯定応答メッセージのタイプを指定します。肯定応答が要求される時、管理キュー内にメッセージキューが入ります。

  • 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 です。

AdminPath

文字

Ackメッセージを送るAckキューを指定します。これは、Ack特性と連携して使用され、Ackキューがデフォルトと異なる場合にのみ使用します。

書式は以下の通りです。

<computer name>\<QueueType>\<Queue Name>

例

msmq_Comp\private$\ackQ

AppSpecific

数値

アプリケーションによって生成される情報を指定します。これは、単一のメッセージやメッセージセットの識別に使用できます。

Delivery

数値

PCが再起動した後に、メッセージがキュー残っているかどうか指定します。

  • ０ …… MQMSG_DELIVERY_EXPRESS ：（デフォルト）メッセージは残りません。

  • １ …… MQMSG_DELIVERY_RECOVERABLE ：メッセージは、PCの再起動後も残ります。

Extension

ベクトル

メッセージに関連付けられたアプリケーション定義の追加情報を指定します。3桁の数値型セルを持ったMagic xpaのベクトルデータです。コンポーネントやMSMQでは、チェックされません。

Journal

数値

メッセージが送信先キューに送られた時に、メッセージキューでメッセージのコピーを保持するかどうかを指定します。

  • MQMSG_JOURNAL …… ポジティブなソースのジャーナル化を要求します。メッセージが次のコンピュータに正常に配信された場合は、メッセージのコピーがPCのコンピュータジャーナルに保存されます。しかし、配信に失敗した場合は、該当する配信不能キューにメッセージが保存されません。数値は2 です。

  • MQMSG_DEADLETTER …… ネガティブなソースのジャーナル化を要求します。メッセージの配信に失敗した場合は、該当する配信不能キューにメッセージを保存します。 これは、 MSMQ 3.0以上 で有効です。数値は1 です。

  • MQMSG_JOURNAL | MQMSG_DEADLETTER …… ポジティブなソースのジャーナル化とネガティブなソースのジャーナル化を要求します。メッセージの送信が成功した場合はコンピュータ ジャーナルにメッセージのコピーが保存され、失敗した場合は該当する配信不能キューに保存されます。これは、 MSMQ 3.0以上 で有効です。数値は3 です。

  • MQMSG_JOURNAL_NONE …… （デフォルト）ソースのジャーナル化は無効です。メッセージの送信が成功した場合でも、メッセージのコピーはコンピュータ ジャーナルに保存されず、失敗した場合も該当する配信不能キューに保存されません。 数値は0 です。

Label

文字列（250）

メッセージの説明を指定する文字列です。

LookupId

文字列（40）

メッセージの参照識別子を示します。ある特定のメッセージを読む場合にのみ有効です。また、MSMQ Ver3.0（XP） 以上でのみ有効です。

MaxTimeToReachQueue

秒数を表す数値（9）

メッセージの送信キューへの到達制限時間。指定時間を経過した場合、 メッセージのキューは、メッセージと動作を放棄します。デフォルトは、90 日（7776000 秒）です。

MaxTimeToReceive

秒数を表す数値（9）

メッセージを送信先キューから取得するまでの制限時間。この時間には、メッセージが送信先キューに到達するのに要する時間と、メッセージがアプリケーションによって取得されるまでにキュー内で待機する時間が含まれます。デフォルトは、 0（無制限）です。

Priority

数値（1）

メッセージに対する優先順位を指定します。0～7 の間の数値で 0 が最も低い優先順位です。デフォルトは、「3」です。


JMS

ホーム > リファレンスガイド > メッセージング > JMS との接続

JMSとの接続

Magic xpaの JMS との接続機能は、Magic xpaのプログラムがJava Messaging Service（以下 JMSと略します）との間でメッセージの送受信を行うようにするものです。

JMS との接続用のコンポーネントを利用する場合は、Messaging サブフォルダ上のJMS.eci を使用してコンポーネントを組み込んでください。

このドキュメントは、JMSをサポートするMagic xpaのメッセージング機能について説明するもので、JMS の基礎的な知識を持っている事を想定して記述しています。

関連トピック：

必要条件

コンポーネントプログラム

バッファテーブル

メッセージのテスト

環境設定


JMS 必要条件

ホーム > リファレンスガイド > メッセージング > JMS との接続 > 必要条件

必要条件

JMSメッセージングコンポーネントを使用するには、JMSのクライアントソフトをMagic xpaがインストールしているPCにインストールする必要があります。

また、アプリケーションにMagic xpaのJMSコンポーネントを定義しておく必要があります。詳細は、セットアップを参照してください。


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 との接続 > コンポーネントプログラム > JMS Open Destination

JMS Open Destination

メッセージキューをオープンし、キューのハンドルを取得します。

パラメータ

データ型

説明

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 との接続 > コンポーネントプログラム > JMS Close Destination

JMS Close Destination

メッセージキューをクローズします。

パラメータ | データ型 | 説明
Queue handle | 数値（18）／入力 | クローズするキューのハンドル（オープン時に返された数値）

戻り値

数値（15）

接続が成功した場合、キューのハンドル値が返されます。接続が成功しない場合は、負の値（エラーコード）が返され、エラーがError Log に書き込まれます。


JMS コンポーネントプログラム SendMessage

ホーム > リファレンスガイド > メッセージング > JMS との接続 > コンポーネントプログラム > JMS Send Message

JMS Send Message

メッセージキューにメッセージを送信します。

パラメータ

データ型

説明

Queue Handle

数値（18）／入力

送信先のキューのハンドル（オープン時に返された数値）

Message type

文字（1）

MSメッセージタイプを指定します。

  • 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 との接続 > コンポーネントプログラム > JMS Quick Send Message

JMS Quick Send Message

メッセージキューをオープンし、メッセージを送り、メッセージキューをクローズします。このプログラムは、簡単にメッセージを送りたい場合は有効ですが、大量のメッセージを送る場合は、効率的ではありません。

このプログラムは、「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 との接続 > コンポーネントプログラム > JMS Read Message

JMS Read Message

メッセージを受け取ったり、返したり、 メッセージタイプを返したりします。

パラメータ

データ型

説明

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 との接続 > コンポーネントプログラム > JMS Unsubscribe

JMS Unsubscribe

恒久サブスクリプションをキャンセルします。

パラメータ | データ型 | 説明
Queue Handle | 数値（18）／入力 | キャンセルするキューのハンドル（オープン時に返された数値）

戻り値

数値

処理が成功した場合 0 、失敗した場合 負の数が返り、ErrorLog にエラーが書き込まれます。


JMS コンポーネントプログラム CommitTransaction

ホーム > リファレンスガイド > メッセージング > JMS との接続 > コンポーネントプログラム > JMS Commit Transaction

JMS Commit Transaction

キューがトランザクションとしてオープンされた時、これをコミットし、JMS は自動的にトランザクションのコミット処理を開始します。

パラメータ | データ型 | 説明
Queue Handle | 数値（18）／入力 | コミットするキューのハンドル（オープン時に返された数値）

戻り値

数値（15）

処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


JMS コンポーネントプログラム RollbackTransaction

ホーム > リファレンスガイド > メッセージング > JMS との接続 > コンポーネントプログラム > JMS Rollback Transaction

JMS Rollback Transaction

キューがトランザクションとしてオープンされた時、これをアボートし、JMSは、自動的に　トランザクションのロールバック処理を実行します。キューがまだオープンされている場合、JMS は、自動的に新しいトランザクションを開始します。

パラメータ | データ型 | 説明
Queue Handle | 数値（18）／入力 | アボートするキューのハンドル（オープン時に返された数値）

戻り値

数値（15）

処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


JMS コンポーネントプログラム SetupMessage

ホーム > リファレンスガイド > メッセージング > JMS との接続 > コンポーネントプログラム > JMS Setup Message

JMS Setup Message

デフォルトと異なるプロパティを設定してメッセージをセットアップします。このプロパティのいくつかは、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 との接続 > コンポーネントプログラム > JMS Fetch References

JMS Fetch References

ホストアプリケーションがコンポーネントプログラムでサポートできない処理を実行する必要がある時、 このプログラムを使用して実際のJMSのオブジェクトの疑似参照を取得することができます。この疑似参照とMagic xpaの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 との接続 > コンポーネントプログラム > JMS Define Codepage

JMS Define Codepage

通常使用するコードページと異なるデータを受信した場合に指定します。このプログラムを用いて、JMS を使用して作業をするための新しいコードページを定義します。

パラメータ | データ型 | 説明
CodePage | 数値 （5）／入力 | 変更するコードページを示す数値


JMS バッファテーブル

ホーム > リファレンスガイド > メッセージング > JMS との接続 > バッファテーブル

バッファテーブル

「JMS_MessageBuffer」という名前の公開テーブルです。

ホストアプリケーションと、マップメッセージとストリームメッセージ用のバッファを作成して逆アセンブルするコンポーネント間のインタフェースであるバッファテーブルは、実行時に以下のようなデータを含んでいる必要があります。

以下のカラムで構成されています。

カラム名

データ型

説明

Order

数値（4）

テーブルのユニークなインデックスで、バッファフォーマットにおいて項目の順番を指定します。ストリームメッセージの場合は、項目はこの順番に送られます。マップメッセージの場合、このパラメータは無関係です。

Pair Name

文字（30）

ペア名かマップメッセージを表示します。ストリームメッセージには関係しません。

Name Size

数値（4）

名前の長さ （ 名前に空白が使用される時は、重要になります） 。

Magic Datatype

文字（1）

Magic xpaのデータ型を指定します。

  • A …… 文字

  • N …… 数値

  • L …… 論理

  • B …… BLOB（配列として処理されます。）

Magic Picture

文字（30）

Magic xpaデータの書式を指定します。

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 や 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 を含みます。
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 のパスでなければなりません。


WebSphere MQ

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続

WebSphere MQとの接続

Magic xpaの WebSphere MQ メッセージング機能は、Magic xpaのプログラムが WebSphere MQ（以下 WMQと略します）との間でメッセージの送受信を行うようにするものです。このドキュメントは、WMQをサポートするMagic xpaのメッセージング機能について説明するもので、WMQの基礎的な知識を持っている事を想定して記述しています。

WebSphere MQとの接続用のコンポーネントを利用する場合は、Messaging サブフォルダ上のWMS.eci を使用してコンポーネントを組み込んでください。

参照

必要条件

コンポーネントプログラム

WMQ.CodePageSet関数

WMQGetNeededHeaderSize関数

WMQSetHeaderSize関数

バッファテーブル

メッセージのテスト

環境設定


WMQ 必要条件

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > 必要条件

必要条件

WebSphere MQメッセージングコンポーネントを使用するには、IBM WebSphere MQ V. 5.3のクライアントソフトがMagic xpaをインストールしているPCにインストールする必要があります。

（メッセージングサーバは、すでに存在しているものとします。）

また、アプリケーションにMagic xpaのMSMQコンポーネントを定義する必要があります。詳細は、セットアップを参照してください。


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.CodePageSet

WMQ_CountMessages

WMQ GetRFH2Header

WMQ SetRFH2Header

WMQ GetMessageWithHeader

WMQ SendMessageWithHeader

関数

以下は、関数として提供されます。

WMQ.CodePageGet


WMQ コンポーネントプログラム OpenDestination

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > WMQ.Open Destination

WMQ.Open Destination

メッセージキューをオープンし、キューのハンドルを取得します。

パラメータ

データ型

説明

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 コンポーネントプログラム Open Dynamic

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > WMQ Open Dynamic

WMQ.Open Dynamic

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 に書き込まれます。


WMQ コンポーネントプログラム CloseQueue

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > WMQ Close Queue

WMQ Close Queue

メッセージキューをクローズします。

パラメータ | データ型 | 説明
Queue Handle | 数値（18）／（入力） | クローズするキューのハンドル

戻り値

数値（17）

処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


WMQ コンポーネントプログラム SendMessage

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > WMQ Send Message

WMQ.Send Message

メッセージキューにメッセージを送信します。WMQ.Quick Sendも参照してください。

パラメータ

データ型

説明

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

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > WMQ.Quick Send

WMQ.Quick Send

メッセージキューをオープンし、メッセージを送り、メッセージキューをクローズします。このプログラムは、簡単にメッセージを送りたい場合は有効ですが、大量のメッセージを送る場合は、効率的ではありません。WMQ Send Messageを参照してください。

このプログラムは、「Open Queue」、「Message Setup」、「Send message」、「Close Queue」の各プログラムを順に呼び出します。

WMQ.Quick Sendプログラムはコードページを変更しません。従って、WMQ.CodePageSetによってコードページの設定を行わない限りWMQ.Quick Sendプログラムによるメッセージの送信ではコードページは変更されません。

注意：

WMQ.Quick Sendはには、動的な接続機能がｻﾎﾟｰﾄされていませんが、MQSERVER環境を使用してチャンネル定義を行うことができます。

パラメータ

データ型

説明

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

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > WMQ.Get Message

WMQ.Get Message

メッセージを受け取ったり、データタイプを返したりします。

パラメータ

データ型

説明

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

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > WMQ.Unsubscribe

WMQ.Unsubscribe

このプログラムうはトピックを取り消します。

パラメータ | データ型 | 説明
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

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > WMQ.Delete Publication

WMQ.Delete Publication

トピックに対して全ての未読の パブリケーションを削除します。

パラメータ | データ型 | 説明
Queue Manager | 文字（48）／入力 | キューマネージャ名
Broker Stream | 文字（50）／入力 | ブローカストリーム名 例：SAMPLE.BROKER.RESULTS.STREAM.
Topic | 文字（50）／入力 | トピック名

戻り値

数値（17）

処理が成功した場合は「0」、失敗した場合は負の数（エラーコード）が返ります。


WMQ コンポーネントプログラム CommitTransaction

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > WMQ Commit Transaction

WMQ Commit Transaction

オープンしたトランザクションをコミットします。トランザクションを継続して使用する場合は、新しいトランザクションを開始しなくてはなりません。

パラメータ | データ型 | 説明
Queue Manager | 文字（48）／入力 | キューマネージャ名

戻り値

数値（17）

処理が成功した場合は「0」、失敗した場合は負の数（エラーコード）が返ります。


WMQ コンポーネントプログラム RollbackTransaction

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > WMQ Rollback Transaction

WMQ.Rollback Transaction

この処理は、トランザクションをロールバックします。トランザクションを継続して使用する場合は、新しいトランザクションを開始しなくてはなりません。

パラメータ | データ型 | 説明
Queue Manager | 文字（48）／入力 | キューマネージャ名

戻り値

数値（17）

処理が成功した場合は「0」、失敗した場合は負の数（エラーコード）が返ります。


WMQ コンポーネントプログラム Disconnect

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > WMQ Disconnect

WMQ Disconnect

MQサーバとの接続をクローズします。

パラメータ | データ型 | 説明
Queue Manager | 文字（48）／入力 | キューマネージャ名

戻り値

数値（17）

処理が成功した場合は「0」、失敗した場合は負の数（エラーコード）が返ります。

  • -110 …… 切断に失敗した場合

  • -111 …… [Queue Manager]が指定されていない場合


WMQ コンポーネントプログラム MessageHandleSetup

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > WMQ Message Handle Setup

WMQ.Message Handle Setup

メッセージのプロパティを設定します。キューのオープン時のデフォルト設定を変更する場合に実行します。変更された内容は、キューがクローズされるまで有効になります。

パラメータ

データ型

説明

Queue Handle

数値（18）／入力

オープン時に返された数値

Persistence

文字（1）／入力

そのメッセージがシステム障害に耐えられるかどうかを示します。 サブスクリプションのみ有効です。

  • P …… 持続性あり

  • N …… 持続性なし

  • D …… キューに依存します。

Msg Life Time

数値（10）／入力

メッセージの寿命をミリ秒で指定します。-1 の場合、無期限になります。

Msg Priority

数値（2）／入力

メッセージの優先順位. デフォルトは 0 です。

Group ID

BLOB／入力

一緒に処理されるメッセージグループのID

指定できる最大サイズは、24バイトです。

NULLグループIDを指定する場合は、MG_NULL_IDを指定してください。

Start Sequence ID

数値（10）／入力

グループ内のメッセージのシーケンス番号を指定します。この値が「0」で[Group ID]に値を設定している場合、コンポーネントが処理し値を順に設定します。番号は、各オープンキューに対してこの値から始まります。

Message Fetch Order

文字（1）／入力

順番がオープンキューモードの指定と異なる場合、メッセージが読み込まれる順番を指定します。

  • P …… 物理順 （FIFO）

  • L …… 論理順 （グループとトランザクション）

論理順に指定した場合、同一グループのメッセージを読み終えるとキューにメッセージが残っていても、メッセージがないものと判断され読み込めません。一旦キューをオープンし直す必要があります。

Message Fetch Mode

文字（1）／入力

読み込みメッセージをどのように処理するかを指定します。

  • D …… 読み込まれた後キューから削除されます。

  • B …… 読み込まれた後もキューに残ります。

戻り値

数値（17）

処理が成功した場合 0、失敗した場合は負の数（エラーコード）が返ります。


WMQ コンポーネントプログラム CodePageSet

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > WMQ.CodePageSet

WMQ.CodePageSet

このプログラムは、WebSphere MQとの接続で使用するコードページを設定します。

パラメータ | データ型 | 説明
Queue Handle | 数値(18)／入力 | オープンされたキューのハンドル値です。
Code Page | 数値(5)／入力 | 設定するコードページ

戻り値

数値（17）

処理が成功した場合 0 、失敗した場合はエラーコード が返ります。

関連トピック：

WMQ CodePageGet


WMQ コンポーネントプログラム Messages in Queue

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > WMQ Messages in Queue

WMQ.Messages in Queuee

キュー内のメッセージ数（キューの深さ）が返ります。（文字：20）

パラメータ | データ型 | 説明
Queue Handle | 数値（18）／入力 | キューのハンドル


WMQ コンポーネントプログラム GetLanguageEncoding

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > Get Language Encoding

Get Language Encoding

指定したコードページに対応するエンコード方法を取得する場合に使用します。

パラメータ | データ型 | 説明
pCode Page | 数値（5）／入力 | メッセージをエンコードするためのコードページを指定します。コードページが指定されない場合、グローバル設定が有効になります。グローバル値が設定されていない場合は、エラーが返ります。 環境設定も参照してください。

戻り値

数値

エンコード方法を以下の数値で返します。

  • 1 …… ANSI

  • 2 …… EBCDIC

  • 3 …… UNICODE


WMQ コンポーネントプログラム GetLow-HiWordOrder

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > Get Low-Hi Word Order

Get Low-Hi Word Order

エンコード方法とデータタイプを基にビットデータの並び順を取得します。

パラメータ

データ型

説明

pMachine Encoding

数値（6）／入力

エンコード方法を指定します。

pInteger/Decimal/Float

文字（1）／入力

データタイプを指定します。

  • I …… Integer

  • D …… Decimal

  • F …… Float

戻り値

論理値

指定したデータタイプのビットレベルの並び順を返します。


WMQ コンポーネントプログラム AnalyzeBLOB

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > Analyze Blob

Analyze BLOB

バッファの内容を表示します。デバッグ時に使用します。

パラメータ | データ型 | 説明
BLOB | BLOB／入力 | バッファ用のBLOB項目を指定します。
BLOBSize | 数値（10）／入力 | 表示するテーブルサイズをバイト値で指定します。デフォルトは 32000 です。
Show Window | 論理／入力 | ウィンドウをオープンするかどうかを指定します。デフォルトは「True」です。


WMQ コンポーネントプログラム GetQueueInfo

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > WMQ Get Queue Info

WMQ.Get Queue Info

このプログラムは現在の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

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > WMQ.Global Setup

WMQ.Global Setup

WMQへのアクセスを実行する上で動作環境を変更する場合に実行します。このプログラムは、他のプログラムを実行する前に実行しなければなりません。

パラメータ

データ型

説明

Module Name

文字（1）

インストールのタイプ

  • C …… クライアント

  • S …… サーバ

Low-Hi bit order

論理値／入力

（オプション）

数値の読み書きの順番を指定します。Windows基準では 昇順なので、「True」 が返ります。

Encoding

数値（1）／入力

文字項目のエンコードタイプ。

  • 1 …… ANSI

  • 2 …… EBCIDIC

  • 3 …… UNICODE

Code Page

数値（5）／入力

（オプション）

メッセージのエンコードで使用されるコードページ。パラメータが渡されない場合、グローバル設定値を基に指定されます。グローバルセットアッププログラムや論理名にグローバル値が設定されていない場合、エラーが返ります。


WMQ コンポーネントプログラム SetMaxBufferLength

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > WMQ.Set Max Buffer Length

WMQ.Set Max Buffer Length

コンポーネントプログラムは、WMQでメッセージの送受信にバッファを使用します。バッファを割り当てるための必要なメモリを確保するためバッファサイズを知る必要があります。このプログラムは、処理で使用できる最大サイズのメモリをあらかじめ確保するようにします。このプログラムが実行されない場合は、論理名（[WMQ_MaxMessageSize]）の値が有効になります。論理名も指定されていない場合は、32768Byte がデフォルトになります。

パラメータ | データ型 | 説明
Buffer Length | 数値（10） |


WMQ コンポーネントプログラム GetTextFromBuffer

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > WMQ Get Text From Buffer

WMQ.Get Text From Buffer

バッファ内の文字列を取得することができます。

パラメータ | データ型 | 説明
Buffer | BLOB | バッファとして使用しているBLOB項目を指定します。
Start position | 数値（10） | 取得開始位置
Length | 数値（10） | 取得データ長

戻り値

文字

バッファから取得された文字列が返ります。


WMQ コンポーネントプログラム SetTextintoBuffer

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > WMQ Set Text into Buffer

WMQ.Set Text into Buffer

バッファに文字列を格納します。

パラメータ | データ型 | 説明
Text | 文字（32,768） | バッファに格納する文字列を指定します。
Position | 数値（10） | 格納開始位置

戻り値

BLOB

文字列が格納されたバッファが返ります。 （現在1つのバッファに複数のデータを格納することはできません。）


WMQ コンポーネントプログラム BeginWMQLog

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > WMQ_BeginWMQLog

WMQ_BeginWMQLog

この処理は、MQサーバの低レベルログの採取を実行します。

注意：

一度ログファイルが初期化されると、ファイルを停止することはできません。ホストアプリケーションでの停止はできます。

パラメータ | データ型 | 説明
pFile Name | 文字（255）／入力 | ログファイル名を指定します。

戻り値

数値（17）

処理が成功した場合 0 、失敗した場合はエラーコード が返ります。


WMQ コンポーネントプログラム SetActivityLogFileName

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > WMQ Set Activity Log File Name

WMQ.Set Activity Log File Name

この処理は、アクティビティログのファイル名を指定します。論理名の「MessagingActivityLogFile」の値を上書きします。

パラメータ | データ型 | 説明
File name | 文字（256）／入力 | ログファイル名を指定します。


WMQ コンポーネントプログラム SetActivityLogOnOff

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > WMQ Set Activity Log On/Off

WMQ.Set Activity Log On/Off

この処理は、アクティビティログの有効無効を指定します。

パラメータ

データ型

説明

Set Activity Log On/Off

論理／入力

  • True …… 有効にします。

  • False …… 無効にします。


WMQ コンポーネントプログラム FetchLastError

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > WMQ.Fetch Last Error

WMQ.Fetch Last Error

この処理は、MQサーバから最後に発生したエラーを取得します。エラー内容は、WebSphereMQ のマニュアルを参照してください。

パラメータ | データ型 | 説明
Queue Handle | 数値（18）／入力 | オープンした相手のプログラムから返される数値

戻り値

数値（17）

処理が成功した場合 0 、失敗した場合はエラーコード が返ります。


WMQ コンポーネントプログラム CountMessages

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > WMQ CountMessages

WMQ CountMessages

キュー内のメッセージ数を取得します。

パラメータ | データ型 | 説明
Queue Handle | 数値（18）／入力 | クローズするキューのハンドル

戻り値

数値（17）

キュー内のメッセージ数を、失敗した場合は負の数（エラーコード）が返ります。


WMQ コンポーネントプログラム GetRFH2Header

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > WMQ GetRFH2Header

WMQ.GetRFH2Header

このプログラムは、RFH2ヘッダからデータを取得します。WMQ.GetRFH2Headerプログラムのパラメータと戻り値は以下の通りです。

パラメータ

説明

MQMsgHeader

BLOB／入力（オプション）：メッセージ形式が7の場合、ヘッダBLOBはRFH2構造のフォーマットでなければなりません。

MQHeaderDataindex

数値／入力（オプション）： RFH2ヘッダ内のフィールドまたはフォルダ。RFH2ヘッダから抽出する値。有効な値は以下の通りです。

  • 1 …… エンコーディング

  • 2 …… CodedCharSetId

  • 3 …… フォーマット

  • 4 …… NameValueCCSID

  • 5 …… mcdフォルダ

  • 6 …… pscフォルダ

  • 7 …… pscrフォルダ

  • 8 …… usrフォルダ

  • 9 …… jmsフォルダ

MQHeaderData

BLOB／出力（オプション）：RFH2に追加されるデータが格納されているフォルダ

戻り値

数値（17）：処理が成功した場合 0、失敗した場合は2が返ります。

関連トピック：

WMQ.SetRFH2Header

WMQ.GetMessageWithHeader

WMQ.SendMessageWithHeader


WMQ コンポーネントプログラム SetRFH2Header

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > WMQ SetRFH2Header

WMQ.SetRFH2Header

このプログラムは、RFH2ヘッダのデータを設定します。WMQ.SetRFH2Headerプログラムのパラメータと戻り値は以下の通りです。

パラメータ

説明

MQMsgHeader

BLOB／入力（オプション）：メッセージ形式が7の場合、ヘッダBLOBはRFH2構造のフォーマットでなければなりません。

MQHeaderDataindex

数値／入力（オプション）： RFH2ヘッダ内のフィールドまたはフォルダ。RFH2ヘッダから抽出する値。有効な値は以下の通りです。

  • 1 …… エンコーディング

  • 2 …… CodedCharSetId

  • 3 …… フォーマット

  • 4 …… NameValueCCSID

  • 5 …… mcdフォルダ

  • 6 …… pscフォルダ

  • 7 …… pscrフォルダ

  • 8 …… usrフォルダ

  • 9 …… jmsフォルダ

MQHeaderData

BLOB／出力（オプション）：RFH2に追加されるデータが格納されているフォルダ

戻り値

数値（17）：処理が成功した場合 0、失敗した場合は2が返ります。

関連トピック：

WMQ.GetRFH2Header

WMQ.GetMessageWithHeader

WMQ.SendMessageWithHeader


WMQ コンポーネントプログラム GetMessageWithHeader

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > WMQ GetMessageWithHeader

WMQ.GetMessageWithHeader

WMQ.GetMessageWithHeaderプログラムは、ヘッダ付きのメッセージを受け取り、メッセージを返して、さらに、データ型を返します。

WMQ.GetMessageWithHeaderプログラムのパラメータと戻り値は、以下の通りです。

パラメータ

説明

Queue Handle

数値（18）／入力：オープンされたキューのハンドル値です。

Timeout

数値 (N10)／入力：（ミリ秒） コンポーネントがメッセージを待つ時間を指定します。（-1)の値は無限を意味します。これは、メッセージがキューに入るまで、コンポーネントが待つことを意味します。これは、リスナを実装する場合に使用します。

Message

BLOB／入力：メッセージデータ を含んだ RTF 形式の BLOB

Buffer Identifier index

数値 (4)／入力：

  • 0 の場合、メッセージは、BLOB内になければなりません。

  • 0 より大きい場合、メッセージ構造と値はメモリテーブル（バッファテーブル）にあることになり、この値がインデックスになります。

詳細は、バッファテーブルを参照してください。

Transaction MSG

論理 (5)／入力：：「True」 の場合、メッセージはトランザクションの一部です。トランザクションがオープンされていない場合は、WMQ が自動的に開始します。

Message ID

BLOB／入出力（オプション）：入力の場合は、このパラメータはメッセージ ID を指定します。出力の場合は、送られたメッセージのメッセージIDを受け取ります。

指定できる最大サイズは、24バイトです。

Correlation ID

BLOB／入出力（オプション）：入力の場合は、Correlation IDを指定します。出力の場合は、送られたメッセージのCorrelation IDを受け取ります。

パブリッシュ/サブスクライブモードの場合は、共有するキュー内の指定されたサブスクライバに対するサブスクリプションを識別します。

指定できる最大サイズは、24バイトです。

Group ID

BLOB／入出力（オプション）：一緒に処理されるメッセージグループのID

指定できる最大サイズは、24バイトです。

NULLのグループIDを指定する場合は、以下のキーワードを使用します。MG_NULL_ID

Seq Number

数値（10）／入出力（オプション）：グループ内のメッセージのシーケンス番号を指定します。この値が「0」で[Group ID]に値が設定されている場合、コンポーネントは、それに基づいて処理し、値を増やします。

Message type

数値（1）／入力：メッセージのタイプを指定します。

  • 0 …… メッセージ（MG Datagram）

  • 1 …… リクエスト

  • 2 …… 応答

コンポーネントは、指定されたメッセージタイプに応じてメッセージを送信します。パブリッシュの場合は、関係しません。

Returned Description

文字（100）／出力（オプション）：カンマ区切りで指定します。（例：Reply2QM, Reply2Q, Format, Sent Date, Sent Time）

Code Page

数値（5）／入力（オプション）：メッセージのエンコーディングで使用するコードページを指定します。このパラメータが渡されない場合、グローバルな設定値を使用します。グローバル値がグローバルなセットアッププログラムまたは倫理名で設定されない場合、エラーが返ります。

WMQ Message Endoding

数値（10）／出力：文字項目のエンコードタイプ

  • 1 …… ANSI

  • 2 …… EBCIDIC

  • 3 …… UNICODE

Get 1st Msg?

論理値／入力：キューの中の最初のメッセージや次のメッセージを読むかどうか指定します。

Feedback

数値（10）／出力：レポートメッセージ内のフィードバックコードを返します。

MQMsgHeader

BLOB／入力（オプション）：メッセージ形式が7の場合、ヘッダBLOBはRFH2構造のフォーマットでなければなりません。

ヘッダを挿入するには、WMQ.GetRFH2Headerを使用してください。

IsMessageHeader

論理値／入力：メッセージがヘッダを含むかどうかチェックするかどうか指定します。

FilePath

文字（1000）／入出力（オプション）：有効なファイルパス


WMQ コンポーネントプログラム SendMessageWithHeader

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > コンポーネントプログラム > WMQ SendMessageWithHeader

WMQ.SendMessageWithHeader

このプログラムは、メッセージキューにヘッダを含んだメッセージを送ります。WMQ.SendMessageWithHeaderプログラムのパラメータと戻り値は、以下の通りです。

パラメータ

説明

Queue Handle

数値（18）／入力：オープンされたキューのハンドル値です。

Message

BLOB／入力：メッセージデータ を含んだバッファ形式の BLOB

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／入出力（オプション）：入力の場合は、Correlation IDを指定します。出力の場合は、送られたメッセージのCorrelation IDを受け取ります。

パブリッシュ/サブスクライブモードの場合は、共有するキュー内の指定されたサブスクライバに対するサブスクリプションを識別します。

指定できる最大サイズは、24バイトです。

Message ID

BLOB／入出力（オプション）：入力の場合は、このパラメータはメッセージ 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)

  • 7 …… RFH2ヘッダメッセージ（MQRFH2）

MGMsgHeader

BLOB／入力（オプション）：メッセージ形式が7の場合、ヘッダBLOBはRFH2構造のフォーマットでなければなりません。

ヘッダを挿入するには、WMQ.GetRFH2Headerを使用してください。

GetFromFile

数値（1）／入出力：入力値は、0=No、1=Yes

Yesが設定された場合、メッセージのBLOBボディはファイルパスを保持します、そして、メッセージ内容はファイルシステムからDLLを使用して読み込まれます。

FilePath

文字（1000）／入出力（オプション）：有効なファイルパス


WMQ コンポーネント関数 WMQSetHeaderSize

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > WMQSetHeaderSize関数

WMQSetHeaderSize 関数

この関数は、ヘッダの最大サイズを設定します。
構文: | WMQSetHeaderSize(MQMsgHeaderSize)
パラメータ: | MQMsgHeaderSizet … RFH2ヘッダのサイズ
戻り値: | ヘッダに必要なサイズ
関連トピック： | WMQGetNeededHeaderSize, WMQ.SetRFH2Header, WMQ.GetRFH2Header, WMQ.SendMessageWithHeader, WMQ.GetMessageWithHeader


WMQ コンポーネント関数 WMQGetNeededHeaderSize

ホーム > リファレンスガイド > メッセージング > WebSphere MQとの接続 > WMQGetNeededHeaderSize関数

WMQGetNeededHeaderSize 関数

この関数は、ヘッダに必要なサイズを取得します。
構文: | WMQGetNeededHeaderSize()
パラメータ: | なし
戻り値: | ヘッダに必要なサイズ
関連トピック： | WMQSetHeaderSize Function, WMQ.SetRFH2Header, WMQ.GetRFH2Header, WMQ.SendMessageWithHeader, WMQ.GetMessageWithHeader


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 xpaのデータ型です。

  • A …… 文字

  • N …… 数値

  • L …… 論理

  • D …… 日付

  • T …… 時刻

  • B …… BLOB

  • M …… ネストされたバッファ用のメッセージバッファ

Picture

文字（30）

Magic xpaの書式。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 xpaの論理名として以下のものが指定できます。

環境変数

データ型

内容

WMQ_MaxMessageSize

数値（10）

最大バッファサイズ

WMQ_ModuleName

文字（1）

インストールタイプ

  • C …… クライアント

  • S …… サーバ

WMQ_StartupCodePage

数値（5）

メッセージを作成する際のコードページ

OS の "MODE CON CP" コマンドで、使用するPC のコードページを確認できます。

WMQ_StartupLowHiOrder

数値（1）

数字がどの語順で読み書きされるかを指定します。

  • 1 …… 昇順：Windows の標準

  • 0 …… 降順：UNIX の標準

WMQ_StartupEncoding

数値（1）

文字項目のエンコードタイプです。

  • 1 …… ANSI

  • 2 …… EBCIDIC

  • 3 …… UNICODE

WMQ_SubscriptionLogFile

指定されたログファイルには、異なるブローカに送られたサブスクライブとアンサブスクライブの情報を書き込みます。

MessagingActivityLogFile

指定されたログファイルには、コンポーネント内部の動作が記録されます。コンテキスト番号がファイル名に追加されます。例えば、「MessagingActivity」と指定された場合、「MessagingActivity_1234567890.log」というようなファイル名で出力されます。コンポーネントがロードされた時点でこの名前が設定されますが、[SetActivityLogFileName]プログラムを使用することで変更できます。

MessagingActiviyLogFile_AutoStart

「Yes」に設定されると、アクティビティログが自動的に開始されます。

WMQ_ModuleLogFile

MQサーバの低レベルなログ採機能用のログファイル名を指定します。ここにファイル名が指定されるとログが採取されます。


エラー

メッセージング接続コンポーネントを使用する場合、様々な実行エラーが発生する場合があります。これらのエラーのいくつかは、メッセージの読込用にオープンされたキューにメッセージを送信した場合に発生するような確認チェックの結果かもしれません。また、特定のベンダーのメッセージ・サービスという場合もあります。ここでは、Magic xpaのメッセージングコンポーネントのエラー処理について最低限の事項を記述しています。

関連トピック：

エラー処理

エラーコード一覧

エラーコードメッセージ


エラー 処理

ホーム > リファレンスガイド > メッセージング > エラー > エラー処理

エラー処理

エラー処理のいくつかはコンポーネントによって実行されます。各エラー情報は、Magic xpaのカレントディレクトリーに作成される 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 xpaの照会、修正、登録モードを使用してデータを表示したり、編集したりする時に、エンドユーザの立場でどのようにMagic xpaを使用するかを知っておく必要があります。

エンドユーザとしての立場でこれらのことを知っておくことは、開発作業を行う上でも有効になります。

関連トピック：

ユーザ機能コンポーネント

インクリメンタルサーチ

タスクモード

項目の編集

データ出力ウィザード


ユーザ機能コンポーネント

ユーザ機能コンポーネントは、(オンラインとリッチクライアントで)オプション（範囲、位置付、ソート、およびデータ出力）機能を実行するためのインタフェースを提供するものです。

このコンポーネントのソースコードは、Add_On\UserFunctionalityディレクトリにあり、必要に応じてコンポーネントのインタフェースをカスタマイズすることができます。

注意：

プロジェクトを新規作成すると自動的に追加されます。（サポートバージョン：2.2）

通常、モバイルアプリケーションでは必要ありません。このため、デフォルトで追加されたコンポーネントを削除する事を推奨します。

エンドユーザにこの機能を提供するには：

  1. ［コンポーネント］リポジトリに1行追加します。

  2. ズームしてAdd_On\UserFunctionalityディレクトリのUserFunctionality.eciアプリケーションを選択します。

  3. この機能を使用したいプログラムの［タスク特性］で、範囲、位置付、ソート、およびデータ出力のオプションが許可されていることを確認してください。

エンドユーザがプログラムを実行すると、［オプション］メニューやキーボードショートカットを使用してこの機能にアクセスすることができます。

条件となるデータ項目の選択を全て削除すると、リセットされます。

注意：

範囲、位置付またはソート機能が呼び出されたあと、フォーカスはタスクの最初のコントロールに戻ります。前のコントロールに戻りたい場合、コンポーネント用プログラムを以下のように修正してください。メインプログラムでタスク1.1(RangeLocateSort)の［タスク後］で［ビュー再表示］イベントの後に［アクション］処理コマンドを追加しCtrlGoto（LastPark(1),0,1)を実行するようにします。この機能を動作させるには、すべてのコントロールのコントロール名をユニークにする必要があります。

サポートバージョン：

2.5

ローカルデータソースをサポートしました。

関連トピック：

エンドユーザ向けに範囲/位置付/ソート機能を強化するには


データ表示ツール 位置付 インクリメンタルサーチ

ホーム > リファレンスガイド > エンドユーザ機能 > インクリメンタルサーチ

インクリメンタルサーチ

インクリメンタルサーチは、照会モードのオンラインタスクとリッチクライアントタスクでのみ有効です。この機能を有効にするには、［タスク特性］の［照会モード位置付］特性を「Yes」に設定する必要があります。

オンラインタスクの場合、エンドユーザが入力した１桁の文字や数値に合う最初のレコードに対し、位置付け処理が実行されます。エンドユーザが２文字目を入力すると、この２つの文字を含んだ文字列で再度位置付け処理が行われます。

例えば、照会モードで顧客情報を表示するオンラインプログラムを想定します。「顧客名」カラムで「T」を入力すると、「T」で始まる顧客名の最初のレコードに位置付けられます。次に「o」を入力すると、「To」で始まる顧客名の最初のレコードに位置付けられます。

リッチクライアントタスクの場合、Magic xpaは、文字が入力されると、サーバにアクセスして、タスクのデータビューを（ビュー再表示のように)を再表示します。

注意：

インクリメンタルサーチ処理は、［位置付］イベントとワイルドカード「???」の組み合わせで、シミュレートすることができます。

関連トピック：

照会モード位置付け


タスクモード

ここでは、実行中に有効なデータに関する処理モードについて説明しています。

照会モード

照会モードは、データを参照する場合に使用されます。レコードの更新や削除に関する全ての処理がブロックされます。

テーブルが修正モードでオープンされた場合、照会モードに切り替えるには、［オプション］メニューの［照会］を選択する必要があります。

照会モードに切り替えると、ステータスボックスに「照会」と表示されます。

修正モード

修正モードは、既存のデータを修正したり削除することができます。

修正モードでは、［行作成］イベントを発行することでデータを追加することもできます。この場合、タスクは登録モードになります。［動作環境］ダイアログで［修正モード時の登録許可］を「Yes」に設定した場合にこの動作が有効になります。修正モードに切り替えるには、［オプション］メニューの［修正］を選択（または、Ctrl+M）します。

登録モード

登録モードでは、オンラインプログラムのDBテーブルに新規レコードを追加することができます。

［オプション］メニューから［登録］を選択して登録モードに変更した場合、ユーザは現在のセッション上で追加されたレコードのみ参照することができます。

削除モード

削除モードは、修正モードの一部分になります。このモードは、ステータス行に何も表示されません。F3を押下することでこのモードに切り替えることができます。

以下で表された操作オプションを使用することで、レコード間の操作を行うことができます。

キー操作 | 説明 | ［オプション］メニュー | ツールバーアイコン
PgDown | 次のレコードに移動 | 次画面 |
PgUp | 前のレコードに移動 | 前画面 |
↑ | 前の行に移動 | 前行 |
↓ | 次の行に移動 | 次行 |
Ctrl+Home | 最初のレコードに移動 | テーブル先頭 |
Ctrl+End | 最後のレコードに移動 | テーブル末尾 |

［タスク特性］で許可されたモードを［初期モード］特性に設定することができます。

エンドユーザは、タスク実行中に許可されたモード変更を行うことができます。

例えば、初期モードが「照会」と設定されたプログラムの実行中に、「修正」または「登録」モードに変更することができます。

関連トピック：

タスクフローでの処理モード


項目の編集

項目の編集時には以下の操作を行うことができます。

論理型項目の変更

論理型項目は、TrueかFalseの値のみ持つことができます。Magic xpaでは、論理型項目のデフォルトはFalseです。

論理型項目の値を変更するには、最初の文字（T：True、F：False）を入力するだけで、Magicエンジンが自動的に解釈します。

カット＆ペースト

Magic xpaでのコピー、貼り付け、切り取りの各処理は、テキスト上でのみ実行できます。オブジェクトの上ではできません。

  • コピー …… この操作は、マークされた文字をクリップボードにコピーします。テキストをコピーするには、［編集］メニューから［コピー］を選択するか、Ctrl+C（またはCtrl+Ins）を押下してください。

  • 切り取り …… この操作は、マークされた文字を削除しクリップボードにコピーします。テキストを切り取るには、［編集］メニューから［切り取り］を選択するか、Ctrl+X（またはCtrl+Del）を押下してください。

  • 貼り付け ……この操作は、クリップボードにコピーされたテキストを現在のカーソル位置に貼り付けます。テキストを貼り付けるは、［編集］メニューから［貼り付け］を選択するか、Ctrl+V（またはShift+Ins）を押下してください。貼り付けるテキストの書式は、貼り付け先と同じにする必要があります。

全て選択

この操作は、カラムの内容全てを強調します。

この操作は、［編集］メニューから［全て選択］を選択するか、Ctrl+Aを押下してください。

キャンセル

この操作を実行すると、カラムに対する変更が取り消されます。このオプションは、カラムを抜ける前の修正のみ有効です。

カラムを抜ける前に、［編集］メニューの［変更取消］を選択するか、Alt+Backを押下すると、コントロールの修正前の内容に戻ります。

広域表示

この操作は、現在のカラムの入力幅を最大長まで拡張して表示します。このオプションは、［複数行編集］特性が無効になっているカラムのみ有効になります。［編集］メニューの［広域表示］を選択するか、F6を押下することで実行されます。

広域表示可能なフィールドにパークした場合、ステータスボックスに［広域］と表示されます。ここで、F6を押下すると、広域表示欄が表示され、ステータスボックスは、［標準］に切り替わります。再度F6を押下すると広域表示ウィンドウが閉じます。

ズーム

ズームは、エンドユーザがドリルダウン（下位の階層での処理を参照する）を行うことを可能にするものです。

最も一般的な使用方法は、一覧表示の実行です。

［編集］メニューから［ズーム］を選択するか、F5を押下することで実行されます。

フィールドがズーム可能な場合、ステータスボックスに［ズーム］と表示されます。


データ出力ウィザード

オンラインタスクやリッチクライアントタスクの場合、［タスク特性］ダイアログの［データ出力］を「Yes」に設定すると「データ出力ウィザード」を使用することができるようになります。データ出力ウィザードを使用することで、エンドユーザが実行時に画面に表示されているデータを印刷したり、テキストファイルに出力したりすることができます。

この機能を有効にするには、ユーザ機能コンポーネントを読み込む必要があります。

データ出力ウィザードは、ダイアログボックスが開いて実行時に画面に表示されているデータを以下の設定を基に出力することができます。

  • 出力形式の指定

  • カラムの順序

  • 区切り文字と文字識別子

関連トピック：

XML テンプレートの構造

HTML テンプレート構造

動的にデータ出力させるには


データ出力ウィザード 出力タイプ

ホーム > リファレンスガイド > エンドユーザ機能 > データ出力ウィザード > 出力形式の指定

出力形式の指定

実行モード時に［オプション］メニューの［データ出力］（Ctrl+P）を実行することで起動されます。ここには、以下の入力欄があります。

特性

内容

タイプ

画面に表示されているデータの出力形態を指定します。「H=HTMLファイル」 、「X=XMLファイル」、または、「T=テキストファイル」が指定できます。

ファイル名

出力するファイル名を指定します。パスが指定されない場合は、Magic xpa実行時の作業フォルダに作成されます。［ファイルを開く］ダイアログでパスを確認することもできます。この場合、［タイプ］の指定によってファイルの種類の指定が変わります。
［アクション］で「ファイルの作成とオープン」を選択することでデータのファイルタイプに割り当てられた外部アプリケーションによってデータを表示させることができます。例えば、拡張子が .DOCになっているHTMLファイルは、Microsoft Wordで開くことができます。

テンプレート

HTML、または、XMLファイルを出力する場合は、［テンプレート］を指定することができます。ここで指定されたテンプレートファイルは、［環境設定］ダイアログの［データ出力用HTMLテンプレートファイル］や［データ出力用XML テンプレートファイル］で設定されたデフォルトファイルを上書きします。この設定が空白の場合は自動的にデフィルトのテンプレートファイルを使用するようになります。

アクション

ファイル作成後の処理を指定できます。

  • C=ファイルの作成 …… ファイルの作成のみ行います。（デフォルト）

  • O=ファイルの作成とオープン …… 作成したファイルを参照することができます。ファイルをオープンする場合、指定したファイル名の拡張子に関連づけられているアプリケーションが起動されます。例えば、 .txt の拡張子の場合は、メモ帳などのテキストエディタによって開きます。

  • P=ファイルの作成と印刷 …… 作成したファイルをプリンタへ出力します。必要に応じて［プリンタダイアログを開く］を指定してください。

使用する文字セット

出力時に使用する文字セットを指定します。

プリントダイアログを開く

［アクション］欄が「ファイルの作成と印刷」の場合に有効になります。印刷字に、［プリント］ダイアログを開くかどうかを指定します。

スキーマファイルの作成

［タイプ］欄が「XMLファイル」の場合のみ表示されます。出力されるXMLファイルに対応した、スキーマファイル(XSD)も一緒に出力されます。

ヘッダ行の出力

［タイプ］欄が「HTMLファイル」または「テキストファイル」の場合に表示されます。チェックすると、ファイルにヘッダ行が追加されます。

  • HTMLファイルの場合は、チェックすると<HEAD>セクションが追加されます。

  • テキストファイルの場合は、ヘッダ行に(［データビュー］エディタに定義された)項目名が出力されます。この項目名は、［区切り文字］欄で指定された文字で区切られます。

カラムの順番や、区切りをデフォルトの設定で出力する場合は、ここで［終了］をクリックしてください。

カラムの順番や区切り文字を変更したい場合は、［次へ］をクリックして［カラムの選択］ダイアログを開いてください。


データ出力ウィザード カラムの順序

ホーム > リファレンスガイド > エンドユーザ機能 > データ出力ウィザード > カラムの順序

カラムの順序

出力したくないカラムは、［カラムの順番］ 欄を「0」にしてください。

「0」以外の数値を指定することで、出力する順番を変更することができます。順番を変更した後、出力したい場合は、［終了］をクリックしてください。

テキストファイルの場合は、［次へ］をクリックすることで出力時の区切り文字を指定するダイアログを開くことができます。


データ出力ウィザード 区切り文字と文字識別子

ホーム > リファレンスガイド > エンドユーザ機能 > データ出力ウィザード > 区切り文字と文字識別子

区切り文字と文字識別子

テキストファイルの場合は、区切り文字を選択したり、文字識別子を指定することができます。

文字列識別子として、シングルかダブルのクォーテーションマークを指定するか、任意の文字を指定することができます。

［終了］をクリックすると指定した内容でファイルが出力されます。

データは、常に一覧形式で出力されます。また、マルチマーキングでの選択は無効になります。


データ出力ウィザード XMLテンプレート構造

ホーム > リファレンスガイド > エンドユーザ機能 > データ出力ウィザード > XML テンプレートの構造

XML テンプレートの構造

XMLを出力タイプにした場合、XMLテンプレートにデータをマージして出力します。XMLテンプレートは、<Print_data>タグと</Print_data>タグの間にテキストを記述しないXMLファイルです。Magic xpaは、このタグの間に<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>

ブラウザで以下のように表示させることができます。


データ出力ウィザード HTMLテンプレート構造

ホーム > リファレンスガイド > エンドユーザ機能 > データ出力ウィザード > 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 xpaは、異なるコンピュータ環境における相互運用性を実現しています。相互運用性とは、マルチデータベースやマルチプラットフォーム、マルチネットワークでのデータ処理におけるMagicアプリケーションの運用能力を表しています。全てのMagicアプリケーションに共通のインタフェースを使用すると、全てのユーザは、どのワークステーションからでもあらゆるタイプのローカルデータベースやリモートデータベースへのアクセス、クエリの実行、データの更新ができます。

LAN（ローカルエリアネットワーク）やWAN（ワイドエリアネットワーク）で複数のコンピュータが接続されている環境において、Magic xpaの分散アプリケーションアーキテクチャはここで解説している所定の分散処理を行います。

関連トピック：

分散型アプリケーション構築の背景

アプリケーションサーバ

リクエスタ

MRB

アプリケーションパーティショニング

接続処理

通信のセキュリティ

マルチスレッドサーバ利用時の注意事項


分散型アプリケーション構築の背景

通常、Magic xpaをインストールする際、分散型アプリケーションの構築方法について知る必要はありません。しかし、リッチクライアントとして動作する場合は、舞台裏で何が起こっているかを理解することが役に立つこともあります。そのため、設定内容を少し確認することができます。

以下のイメージは、Magic xpaの分散型アプリケーションの構成を示しています。下記に、各ステップを説明しています。

  1. クライアント（例えばリッチクライアント・アプリケーション）は、アプリケーションサーバに対するリクエストを作成します。リクエストは、インターネットリクエスタを通してWebサーバに送られます。各クライアントは、独自のリクエスタを持っています。

  2. リクエスタは、Magicアプリケーションサーバと通信するために、MRBを使用します。Magicの実行エンジン（MgxpaRuntime.exe)が、アプリケーションサーバとして機能します。MRBはリクエストを受信して、クライアントのリクエストにリクエストIDを割り当てます。

  3. MRBは、ビジー状態になっていないMagicエンジンを見つけるために、アプリケーションサーバのリストを取得します。これは、mgrb.iniファイルのEnginesPriorityパラメータの設定に基づいて優先順位を決定します。パラメータが定義されていない場合、アプリケーションサーバの順番はMRBによって決定されます。
    Magicエンジンが起動されると、利用できることをMRBに通知します。Magicエンジンは、既知のポートを使用して監視を開始します。

  4. MRBは、どのエンジンが利用できるかを、リクエスタに通知します。

  • すべてのエンジンがビジーの場合、イベントがMRBのリクエストキューに追加されます。

  • 同期型のリクエストの場合、クライアントはリクエスト処理中に実行エンジンが結果を返すまで待つ必要があります。

  • 非同期リクエストの場合、クライアントはそのリクエストIDを使用することで、リクエスト結果を受け取るために、MRBに問い合わせを行います。

  5. クライアントのリクエスト（リクエストIDとエンジンのアドレスを含む)が、エンジンに送信されます。リクエストの実行中、エンジンは（ServerTimeoutで指定された秒数毎に）"I'm Alive"メッセージをMRBかクライアントに送ります。ServerTimeoutで指定された秒値は、クライアントがリクエストを送信する間隔を指定します。
    この時点でリクエスタは、Magicエンジンと直接やり取りを行い、MRBは介入しません。これは同期型のリクエスト（［コールリモート］で［ウェイト］が「Yes」）の場合の手順です。
    非同期リクエスト（［ウェイト］が「No」またはコマンドラインリクエスタで：mgrqcmdl -app=x -prg=y -nowait）の場合、リクエスタは処理が再開される前に、結果を待ちません。MRBはクライアントにエンジンのアドレスを返さず、クライアントとエンジンは直接通信しません。
    一旦エンジンがリクエストを処理し終わると、実行エンジンはリクエスト結果を直接クライアントに送信して、次のクライアントリクエストが処理できることをMRBに通知します。Magicアプリケーション内に読み込まれたアプリケーションと同じに対応したキュー内でペンディング状態になっているリクエストがあれば、チェックされます。ペンディング状態のリクエストがある場合、MRBはより高いプライオリティーのリクエストを取得して、Magicエンジンに送ります。

注意：

Magic実行エンジンは、1つのMRBからのリクエストのみ処理することができます。

アプリケーションサーバが非同期リクエストを処理できのであれば、リクエストを実行するためにアプリケーションサーバに到着するまで、遅延が発生します。これは、MRBがアプリケーションサーバのホスト名を名前解決できないような場合に起こりえます。アプリケーションサーバのホスト名が、MRBによって起動されたコンピュータで認識できることを確認しておく必要があります。

MRBは、Magicエンジンのインスタンスと同じシステム上、または、異なるシステム上で実行するセットとなります。両方のケースでMRBと実行エンジンとの間でTCP/IPソケットによる通信が行われるので、個別にセットアップする必要はありません。


アプリケーションサーバ

サポートされるミドルウェアモジュール（MRBや、J2EE)に接続しているMagic実行エンジンは、さまざまな種類のリクエスタに対応したアプリケーションサーバとして動作します。

これは各リクエストを処理して、受信する各タイプのリクエストに対応したアプリケーションのロジックを実行します。インターネットリクエスタを利用するには、MagicアプリケーションサーバがMRBの位置を認識し、それに接続する必要があります。Magicアプリケーションサーバのエンジンは、一つのエンジンプロセスを使用して複数のリクエストを処理するように設計されています。これは、Magicサーバエンジンのマルチスレッド機能を使用して実現しています。

関連トピック：

分散型アプリケーション構築の背景


リクエスタ

クライアントは、サポートされたリクエスタを通してのみアプリケーションサーバにリクエストを出すことができます。

各クライアントは、リクエスタをもっています。3つの主要なリクエスタのタイプは以下の通りです：

  • Magicリクエスタ …… Magicエンジンには、エンジンの一部分としてリクエスタモジュールを備えています。

  • インターネットリクエスタ …… Magic xpaは、2種類（CGIとISAPI）のインターネットリクエスタ（）を提供しています。

  • コマンドラインリクエスタ …… Magic xpaは、Windowsのシェルから実行することができるコマンドラインリクエスタを提供しています。

  • 管理されたリクエスタ

関連トピック：

分散型アプリケーション構築の背景


Magic xpaのリクエスタ

さまざまなタイプのクライアントが、Magicアプリケーションサーバのサービスを使用できます。サポートされている、各クライアントでは、必要なリクエスタモジュールを使用する必要があります。また、リクエスタモジュールはクライアントのタイプごとに指定します。

Magicクライアント、インターネットリクエスタ、コマンドラインリクエスタなどの、リクエスタインタフェースに対する設定は、MGREQ.INIファイルにて行います。このファイルは、リクエスタモジュールおよび、汎用メッセージモジュール（MGrqgnrc.dll）が存在するディレクトリ内に存在する必要があります。

MGREQ.INIファイルは、リクエスタの初期化時に読み込まれます。


Magic xpaのリクエスタ MGREQ.INI

ホーム > リファレンスガイド > 分散アプリケーション > リクエスタ > Magic xpaのリクエスタ > MGREQ.INI

MGREQ.INI

MGREQ.INIファイルは、リクエスタの初期化時に読み込まれます。このファイルは、汎用メッセージモジュール（MGrqgnrc.dll）の初期化ファイルです。

MGREQ.INIファイルは、以下の２箇所にインストールされます。

  • Magic xpaのScriptsサブフォルダ …… インターネットリクエスタやリッチクライアント等で使用されます。

  • Magic xpaのルートフォルダ …… ルート上のMGrqgnrc.dllが使用します。また、MRBやMagicエンジンが起動された場合に、MGrqgnrc.dllが読み込まれ、MGREQ.INIファイルが使用されます。

注意：

MGREQ.INIファイルは、MRBでも使用されます。MRBの低レベルの動作（接続、送信、受信）を追跡する場合に使用する必要があります。

MGREQ.INIファイルは、Magic xpaのパーティショニング機能に関わる全てのモジュール（リクエスタ、アプリケーションサーバ、MRB）で使用されます。これらの３つのモジュールが起動する際、それぞれMGREQ.INIファイルを検索します。

MGREQ.INIファイルには、次のパラメータを定義します。

AltMessagingServer | DefName | Log
Appl | DefPath | [MAGIC_MESSAGING_GATEWAYS]
AutoLoopBack | DefProg | MaxUploadKB
BindFirstIPAddress | EnableAgent | MessagingServer
BrokerTimeout | EnableTraps | NMSAddress
CacheEngineConnections | EncryptedCommunication | Password
CloseWaitTimeout | Filter | Priority
CommTimeout | Gateway | ReportStatusCode
Community | Handles | RequesterTimeout
ConvertAlphaFromUTF8ToUnicode | HttpSigVars | RetryMainTime
DefApp | HttpVarts | SpecialAffinity
DefError | KeepAlive | Username
DefHtml | LocalHost | Version

キーワード

説明

[REQUESTER_ENV]セクション

Gateway

リクエスタが使用するミドルウェア。

  • Gateway = 1 …… MRBを使用します。

  • Gateway = 5 …… J2EEを使用します。

構文：Gateway = n（デフォルト：1　（MRB））

MessagingServer

リクエストを受信するミドルウェアアドレス。

構文：MessagingServer = ノード名/ポート番号

AltMessagingServer

代替となる同じ種類の別のミドルウェアのアドレス。

メインメッセージサーバへの接続がエラーになった場合、リクエスタはこのアドレスを参照します。

構文：AltMessagingServer = ノード名/ポート番号

BrokerTimeout

リクエストがMRB に送られた後、MRB から使用可能なエンジンを割当てることができたことが報告されるまで待機する時のタイムアウト時間（単位：秒）です。この時間内に使用可能なエンジンが見つからなかった場合、MRB から次のいずれかのエラーコードが返されます。

  • 103 APP-NOT-FOUND …… このエラーコードは、MRB の内部データベースにアプリケーションが定義されていないことを示します。

  • 104 APP-IN-USE …… アプリケーションは定義されているものの、エンジンが使用中であることを示します。

  • 119 ERR_LICENSES_EXCEEDED …… アプリケーションをサポートしているすべてのアプリケーションサーバがライセンス上のチェックアウト値に達しました。

管理/問合わせ（例えば、QUERY RT、QUERY APPSとTERM）の場合、リクエスタはブローカタイムアウト* 5として計算される時間まで待ちます。そして、MRBが非常に大きなサイズの問合わせ処理を行うことができるようにします。

ブローカタイムアウトのエラーを解決するには：

  • MRBのディレクトリでは、Mgrb.iniファイルの[APPLICATIONS_LIST]セクション内の（予めロードされたり自動的にロードされる)開始エンジンの数を増やします。Mgrb.iniファイルを修正した場合、MRBを再起動してください。

  • リクエスタのフォルダ（例えばインターネットリクエスタの場合には、Scripts)内のMgreq.iniファイルを編集するか、［リモートコール］処理コマンドを実行する場合は、Magic.iniファイルを修正します。Broker Timeoutの値を 10秒以上に設定してください。

この値を0 に設定した場合、MRB からエンジンに関する情報は返されません。

構文：BrokerTimeout = n　（デフォルト：10秒）

KeepAlive

MGrqgnrc.dll が接続のためのリクエスタオプションを設定したり、接続監視間隔を制御するためにOSレベルでの設定を行う場合に使用します。

この設定は、OSの設定が使用可能な場合のみ有効です。各OSには、異なるフラグがあります。

KeepAlive=Yの場合、Magic xpaの汎用メッセージングレイヤのモジュールは、システム管理者にオープンコネクションごとにkeep-aliveの間隔をコントロールするためにOSレベルの設定を使用させます。

システム管理者のみが、OSの設定間隔を指定できるようにしなければなりません。

Magic.iniファイルのServerTimeoutの設定が「0」でない場合、KeepAliveフラグは（Mgreq.iniに設定されていなくても）、Magicエンジンによって設定されます。

注意：

日本語版では現在サポートされていません。

構文：KeepAlive = Y or N （デフォルト：Y）

RequesterTimeout

アプリケーションサーバがリクエストの実行が終了するまでリクエスタが待つ最大時間（単位：秒）です。

この時間が経過するとアプリケーションサーバはリクエストを割り込ませません。この場合、リクエスタは出力を待つことなく継続できます。

この値を0 に設定した場合、タスクの実行時間に制限がなくなります。しかし、リクエストはTCP/IPのスタック設定によって制限されるかもしれません。その場合は、アプリケーションサーバへの接続がTCP/IPスタックによってリセットされ、-107のエラーが返ります。このが値を0以外を設定すると、タイムアウトが発生し、-110のエラーが返ります。

エンジンからリモートコールを実行すると、Magic.iniファイルのRequester Timeoutの設定がMgreq.iniの設定をオーバーライドします。

構文：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

DefHtmlキーワードは廃止され、DefErrorキーワードに変更されました。

DefError

オプションで省略できます。DefErrorに値が設定された場合、mgrqispi.dllとmgrqcgi.exeなどのインターネットリクエスタは、HTMLまたはXMLフォーマットでエラーを返します。リッチクライアントタスクの場合は、HTMLフォーマットのみサポートされます。

インターネットリクエスタで使用します。リクエスタからの要求に対してプログラムが応答しない場合、エラーメッセージ用に表示するファイル名を指定します。XML形式かHTML形式のファイルが指定できます。

HTMLファイルを使用する場合、以下のように設定方します。

  • 動的指定 …… DefError = http(s)://サーバ名/エイリアス/filename.htmlという形式で結果ファイルを返すURLを指定します。使用できるタグについては、DefErrorファイル構造を参照してください。

XMLファイルを使用する場合、2つの設定方法があります。

  • 静的指定 …… DefError=C:\filename.xmlなどのXMLファイルのフルパス名を使用します。この場合、指定されたファイルにリクエスタが情報データをマージして返します。使用できるタグについては、DefErrorファイル構造を参照してください。

  • 動的指定 …… 定数「XML」を指定する方法です。DefError=XMLと指定します。この場合、定型の書式にデータがマージされて返ります。

HMLファイルを指定した場合、マージ処理は実行されません。

構文：DefError=ファイル名

DefApp

DefProg

これら2つのキーワードを使用することで、アプリケーションの起動時のURLにAPPNAMEやPRGNAMEが指定されていない場合のデフォルトのアプリケーションやプログラムの名前を定義することができます。

これにより、Webページ内のURLにAPPNAMEやPRGNAMEを指定する必要がなくなり、プログラムのエントリポイントを隠すことができます。

両方を指定することも、どちらか一方を指定することもできます。

URLにAPPNAMEとPRGNAMEの両方を指定しない場合、ARGUMENTSも指定できません。起動時にパラメータを指定するアプリケーションには利用できません。

Http Vars

HTTP プロトコル上で使用される環境変数の名前を指定することで、その変数がHTTPサーバからMagicプログラムに送られます。プログラム内でGetParam 関数を使用することでこの変数の値を取得することができます。ISAPI 、CGI の各リクエスタで使用されます。

例：環境変数としてHTTP_USER_AGENTを指定すると、リクエスタがMagicサーバにUSER_AGENTの文字列を渡します。そのため、クライアントのWebブラウザのバージョンを確認することができ、バージョンによるプログラムのロジックを記述することができます。

注意：

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 xpaはLocalhost(127.0.0.1)を使用します。この結果として、ネットワーク接続が失われても、モジュールの間の接続はそのまま維持されます。

構文：AutoLoopBack=Y (デフォルト：Y)

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やアプリケーションサーバ)に強制する場合に使用します。

  • 0 …… すべてのCPU

  • 1 …… CPU0

  • 2 …… CPU1

  • 3 …… CPU2

  • Y …… ランダム

  • N …… すべてのCPU

構文：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）

以下のキーワードを指定できます。

  • Y …… 呼び出されたプログラムに渡されるパラメータがUnicodeの場合は、Unicodeのままです。そうでなければ、一般的な変換規則に基づいてUnicodeからANSIに自動的に変換されます。

  • N …… (UTF-8からUnicodeへの変換が失敗した場合も同じ）引数は変換されることなく呼び出されたプログラムに渡されます。

注意：

Magic実行エンジン (MgxpaRuntime.exe) と同じディレクトリにある MGREQ.INI ファイルでのみ有効です。

Log

低レベルのリクエスタの動作を記録するログファイルを指定します。

構文：LOG=ファイル名 同期 レベル 行数のしきい値

ファイル名 …… ログファイル名を指定します。ファイル名に空白を含むことはできません。

同期：

  • Y …… ログファイルは、行ごとに開閉されます。これにより、コンポーネントがメモリ内にロードされている時にも、ファイルを削除できます。複数のモジュールでログファイルを共有することも可能です。

  • N …… ログファイルは、コンポーネントの初期化と終了の時のみに開閉されます。

レベル：

  • B …… HTTPリクエストの受信と送信についてのみ記録されます。このレベルは、製造（そして、テストの)システム、特に通信範囲とコンポーネントのハンドシェークのトラブルシューティングで使用されるはずです。（サポートバージョン：2.4）

  • C …… ユーザレベル（概要ログ）

  • S …… サポートレベル（中間ログ）

  • R …… MSE社の開発者向けレベル（詳細ログ）

行数のしきい値:（サポートバージョン：2.4)

値を指定することでログファイルの記録行数を変更することができます。指定値/2行を超えるとリネームされて保存されます。値を設定しない場合のデフォルト値は、50,000行になります。この設定は、サーバ側のログだけで、RIAログには反映されません。

ログレベルの内容によってデータ量が多くなる場合は、しきい値に関係なく 50,000行でリネームされます。

CacheEngineConnections

リクエスタから実行エンジンへの接続をキャッシュするかどうかを指定します。

  • N …… 各リクエストは、サーバに割り当てられた実行エンジンに対して新しい接続/切断を行います。（推奨できません）

  • Y …… 現在の動作が保持されます。

インターネットリクエスタの場合、Scriptsフォルダ内のMgreq.iniを修正してください。

コマンドラインリクエスタやブローカモニタ、リモートコールの場合は、デフォルトのインストールフォルダ内のMgreq.iniを修正してください。

構文：CacheEngineConnections = Y/N (デフォルト：Y)

EncryptedCommunication

リクエスタやブローカ、実行エンジンに対し、商用の対称性の暗号化アルゴリズムを使用して全てのメッセージを暗号化するように指定します。

各接続に対する対称キーは、ランダム化され、送信され、非対称の暗号（ＲＳＡ）を使用して暗号化されます。

例：EncryptedCommunication=3,56：56ビットのDESアルゴリズムを使用します。

注意：

全てのMgreq.iniで同じ値を指定する必要があります。

構文：CacheEngineConnections = <暗号化コード>,<キーのサイズ>

以下のコードが使用できます。

コード | アルゴリズム | サポートされるキー長（ビット）
1 | BLOWFISH | 32～448 （推奨値：128）
2 | CAST-128 | 40～128 （推奨値：64）
3 | DES | 56
5 | RC2 | 40～128 （推奨値：64）
7 | RC5 | 8～2040 （推奨値：128）
10 | AES | 128,192,256 （推奨値：128）

BindFirstIPAddress

  • Y …… ポートへの接続中にサーバがホスト名の名前解決を行って接続します。

  • N …… サーバは任意のIPアドレスで接続を試みます。

構文：BindFirstIPAddress=Y/N (デフォルト：Y)

[MAGIC_MESSAGING_GATEWAYS]

ロードする必要のあるモジュールのゲートウェイを指定します。

各リクエスタが処理できるミドルウェアタイプは1つのみです。必要なミドルウェアモジュールをロードするには、ミドルウェアゲートウェイエントリのマークを外します。

構文：MGSRVR##=DLL,レベル,ファイル名,同期 ,パラメータ

[SNMP]

EnableAgent

EnableAgent = Y, N (デフォルト)

Magic xpaのSNMP 拡張モジュールを有効にするかどうかを指定します。

EnableAgent = Yes の場合、NMS でMagic xpaをモニタすることができるようになります。

Magic xpaのSNMPモジュールがインストールされた場合のみ、この設定が自動的に「Yes」に設定されます。

この設定は、SNMPディレクトリ内にあるmgreq.iniでのみ有効です。

EnableTraps

EnableTraps = Y, N (デフォルト)

リクエスタがSNMPモニターにトラップ・メッセージを送信するかどうかを決定します。

これは、アプリケーションサーバやMRB、リクエスタをコントロールするmgreq.iniでのみ有効です。SNMPディレクトリ内のるmgreq.iniは無視されます。

NMSAddress

NMS がインストールされたサーバのホスト名かIP アドレスを指定します。

デフォルトは以下の通りです：Localhost/デフォルトのSNMPポート。

これは、アプリケーションサーバやMRB、リクエスタをコントロールするmgreq.iniでのみ有効です。ポートオプションは、非Windowsプラットホームでのみ有効です。

Version

Version = 1,2 デフォルト: 1)

NMS がサポートするSNMP のバージョンを指定します。

これは、そのバージョンのSNMPプロトコルのフォーマットで、トラップを送信します。

これは、アプリケーションサーバやMRB、リクエスタをコントロールするmgreq.iniでのみ有効です。SNMPディレクトリ内のるmgreq.iniは無視されます。

Community

コミュニティ名を指定します。（デフォルト：Public）コミュニティ名は、NMSへのパスワードとして動作します。

有効な値は英数字です（NMSによって設定されるコミュニティトークンと同じように設定します）。

れは、アプリケーションサーバやMRB、リクエスタをコントロールするmgreq.iniでのみ有効です。SNMPディレクトリ内のるmgreq.iniは無視されます。

ReportStatusCode

ReportStatusCode = xxx

  • xxx …… モニターによってトラップされるコード

SNMP モニタに送られるエラーコードを指定します。カンマやハイフンの組み合わせで、値の範囲を指定できます。例えば、103,104,105、または、102-107,109 と指定できます。全てのエラーコードをモニタするには、0-9999 と指定してください。

エラーコードは負値ですが、エラーコードの範囲を指定している場合は、正値で指定します。

これは、リクエスタをコントロールmgreq.iniでのみ有効です。SNMPディレクトリ内のmgreq.iniまたは、アプリケーションサーバやMRBによって使用されている場合は無視されます。


Magic xpaのリクエスタ DefError ファイル構成

ホーム > リファレンスガイド > 分散アプリケーション > リクエスタ > Magic xpaのリクエスタ > DefError ファイル構成

DefError ファイル構成

動的HTML

以下の例は、HTMLのInput要素をリクエスターからのエラー情報で更新するために使用するHTMLページのサンプルです。これは、以下に示すようにHTMLのInput要素にあらかじめ定義された名前を割り当てることで実行されます。

  • MG_Server …… サーバ名

  • MG_Application …… アプリケーション名

  • MG_Program …… プログラム名

  • MG_Args …… パラメータ名

  • MG_User …… （パラメータとして指定された）ユーザID

  • MG_ErrorCode …… エラーコード

  • MG_ErrorText …… エラーメッセージ

<HTML>

<HEAD><TITLE>Magic Application error</TITLE></HEAD>

<BODY bgcolor=navy><BR><BR>

<CENTER>

<TABLE bgColor=white border=3>

<TR>

<TD width=200><B>Messaging Server</B></TD>

<TD width=250><INPUT type="text" name="MG_Server" readonly style="border: medium none"> </TD>

</TR>

<TR>

<TD width=200><B>Application</B></TD>

<TD width=250><INPUT type="text" name="MG_Application" readonly style="border: medium none"> </TD>

</TR>

<TR>

<TD width=200><B>Program</B></TD>

<TD width=250><INPUT type="text" name="MG_Program" readonly style="border: medium none"></TD>

</TR>

<TR>

<TD width=200><B>Error Code</B></TD>

<TD width=250><INPUT type="text" name="MG_ErrorCode" readonly style="border: medium none"> </TD>

</TR>

<TR>

<TD width=200><B>Error Text</B></TD>

<TD width=250><INPUT type="text" size=50 name="MG_ErrorText" readonly style="border: medium none"> </TD>

</TR>

<TR>

<TD width=200><B>Arguments</B></TD>

<TD width=250><INPUT type="text" size=50 name="MG_Args" readonly style="border: medium none"> </TD>

</TR>

<TR>

<TD width=200><B>User</B></TD>

<TD width=250><INPUT type="text" name="MG_User" readonly style="border: medium none"> </TD>

</TR>

</CENTER>

</BODY>

</HTML>

注意：

リッチクライアントタスクの場合、スタティックなHTMLのみ利用できます。インターネットリクエスタではこれらのタグをマージしません。

XML

DefErrorキーワードを使用した場合に、インターネットリクエスタは、以下のタグが定義されたファイルにデータをマージします。

  • <!$MG_Server> …… サーバ名

  • <!$MG_Application> …… アプリケーション名

  • <!$MG_Program> …… プログラム名

  • <!$MG_Args> …… パラメータ名

  • <!$MG_User> …… （パラメータとして指定された）ユーザID

  • <!$MG_ErrorCode> …… エラーコード

  • <!$MG_ErrorText> …… エラーメッセージ

また、定数「XML」がキーワードとして指定された場合、これらの値を持つ簡単なXMLファイルが作成されますう。XMLファイルに情報を追加する必要がない場合は、このオプションを使用することができます。

以下のXMLドキュメントが作成されます。

<xmlerr>

<errcode> <!$MG_ErrorCode> </errcode>

<errmsg> <!$MG_ErrorText> </errmsg>

<server> <!$MG_Server> </server>

<appname><!$MG_Application> </appname>

<prgname> <!$MG_Program </prgname>

<arguments> <!$MG_Args> </arguments>

<usename> <!$MG_User ></username>

</xmlerr>


インターネットリクエスタ

Magic xpaは、二つのタイプのWebサーバに対応したインターネットリクエスタを提供しています。

  • MGrqispi.dll …… Microsoft のWebサーバ（IIS）で使用することができるインターネットリクエスタ。

  • MGrqcgi.exe …… 様々なWebサーバにアクセスする際に使用することができインターネットリクエスタ。このCGIベースのリクエスタは、すべてのWebサーバで共通に使用することができるため、IIS用のリクエスタより非常に遅という制限があります。

Magicのインターネットリクエスタ用モジュールは、以下の追加ファイルが必要です：

  • MGrqgnrc.dll …… 汎用メッセージレイヤ

  • Mgreq.ini …… 初期化ファイル

Webサーバ

インターネット対応のMagicアプリケーションを開発する前に、少なくとも1台のWebサーバをインストールしておく必要があります。インターネットリクエスタのモジュールは、Webサーバ上にインストールする必要があります。Magic xpaの標準インストールを行うと、インストールプログラムは、自動的にインストールされたWebサーバを探し、必要なインターネットリクエスタのモジュールを定義して、設定します。

関連トピック：

Microsoft Web サーバ

その他のWebサーバ

リクエスタの使用

リクエスタのアップロード

Web 開発


インターネットリクエスタ セットアップ IIS

ホーム > リファレンスガイド > 分散アプリケーション > リクエスタ > インターネットリクエスタ > Microsoft Web サーバ

Microsoft Web サーバ

Microsoft Webサーバを使用する場合、以下の操作を実行します。

注意：

Magic xpaがインストールされるPCにWebサーバが既にインストールされている場合は、Magic xpaのインストーラによって環境設定を行います。

ここでは、Webサーバが別のPCにある場合を想定した手動での環境設定を例として説明しています。

  1. MGrqispi.dllファイル、MGrqgnrc.dllファイル、MGREQ.INIファイルをMagic xpaのインストールディレクトリ内のScriptsサブディレクトリに配置します。

  2. ScriptsサブディレクトリにWebサーバのエイリアスを割り当て、実行権利を設定します。

  3. [設定/動作環境]ダイアログの[サーバ]タブで、[HTTPリクエスタ]欄を次のような形式で指定します。

http://server address/Magic2xScripts/MGrqispi.DLL

//の後ろは実際のサーバアドレスで置き換えます。

  4. Webサーバに仮想ディレクトリを追加し、このディレクトリにMGBCLxxx_XXXX.XXを配置します。

  5. このディレクトリに読取権利を設定します。

  6. [設定/動作環境]ダイアログの[Webドキュメントパスの別名]欄にこのディレクトリのエイリアスを指定します。また、[Webドキュメントパス]欄にこのディレクトリのパスを指定します。

  7. Webサーバを再起動します。

注意：

Webサーバのエイリアスを使用して独自のディレクトリを定義し、そのディレクトリに実行権利を付与して使用することも可能です。


インターネットリクエスタ セットアップ CGI

ホーム > リファレンスガイド > 分散アプリケーション > リクエスタ > インターネットリクエスタ > その他のWebサーバ

その他のWebサーバ

Microsoft以外のWebサーバを使用する場合、以下を実行します。

注意：

Microsoft のWebサーバ以外は、Magic xpaのインストーラによる環境設定ができません。

ここでは、Webサーバが別のPCにある場合を想定した手動での環境設定を例として説明しています。

  1. MGrqcgi.exeファイル、MGrqgnrc.dllファイル、MGREQ.INIファイルをWebサーバの実行可能ディレクトリ（CGI-BINなど）に配置します。

  2. このディレクトリに実行権利を設定します。

  3. [設定/動作環境]ダイアログの[アプリケーションサーバ]タブで、[HTTPリクエスタ]欄を次のように設定します。

    http://your server address/CGI-BIN/MGRQCGI.EXE

//の後ろは実際のサーバアドレスで置き換えます。

  4. Webサーバに仮想ディレクトリを追加し、このディレクトリにMGBCLxxxx_XXXX.XXを配置します。

  5. このディレクトリに読取権利を設定します。

  6. [設定/動作環境]ダイアログの[Webドキュメントパスの別名]欄にこのディレクトリのエイリアスを指定します。また、[Webドキュメントパス]欄にこのディレクトリのパスを指定します。

  7. Webサーバを再起動します。

注意：

Webサーバのエイリアスを使用して独自のディレクトリを定義し、そのディレクトリに実行権利を付与して使用することも可能です。


リクエスタの使用

インターネットリクエスタは、ブラウザの上のHTMLファイルからMagicプログラムを実行したりブラウザにプログラム結果を返す際に使用されます。

注意：

リッチクライアントの場合も使用します。

以下の方法でリクエスタやパラメータを指定することができます。

  • リクエスタを参照するURLを指定したりHiddenフィールドとして送信する設定を埋め込む

  • リクエスタを参照するURLを使用してハイパーリンクを定義する

  • URLを指定する特性値にリクエスタを参照するURLを指定する

リクエスタの参照

外部のHTMLページやブラウザから直接リクエスタを使用する方法について説明します。

Magicプログラムによって作成されたページからリクエスタを使用している場合、Magic xpaは自動的に適切なHTMLコードを作成します。

URLの中でリクエスタを参照するために使用された方法は、どのリクエスタが使用されるか、そしてそれがどのようにインストールされたかに依存します。いくつかの例を示します。

リクエスタ | URLの指定例
CGI | http://servername/scripts/mgrqcgixx.exe
ISAPI | http://servername/scripts/mgrqispixx.dll

パラメータ

インターネットパラメータで指定可能なパラメータは、他のリクエスタと同じように指定できます。以下のパラメータがあります。

APPNAME, PRGNAME, ARGUMENTS, PRIORITY, USER, PASS

注意：

上記のパラメータは、リクエスタ(mgrqispixx.dll、mgrqcgixx.exe)が内部で処理し、実行エンジンには渡されない予約キーワードです。

パラメータの指定

パラメータは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


リクエスタのアップロード

インターネットリクエスタはファイルをアップロードし、Magicプログラムはそれを受信することができます。これらを可能にするにはHTML ファイルを以下のように定義してください。

1. form タグのmethod 属性は、post にしてください。

例）

<form action="/MagicScripts/mgrqispi.dll" method="post">

2. form タグには、以下のような属性を含めてください。

ENCTYPE=”multipart/form-data”

例）

<form action="/MagicScripts/mgrqispi.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 秒以内で転送できるサイズにとどめることを推奨します。


パーティショニング コマンドラインリクエスタ

ホーム > リファレンスガイド > 分散アプリケーション > リクエスタ > コマンドラインリクエスタ

コマンドラインリクエスタ

コマンドラインリクエスタを使用することで、以下のような処理を実行することができます。

  • リモートMagic実行エンジンの起動

  • MRBの終了とMagic実行エンジンの起動と終了

  • Magic実行エンジンに送信された特定リクエストのステータス照会

  • Magic実行エンジンのステータス照会

コマンドラインインタフェース

コマンドラインリクエスタはMGrqcmdl.exeプログラムであり、DOSプロンプトウィンドウで実行できます。その他のMagicリクエスタと同じように、コマンドラインリクエスタではMGREQ.INIファイルを使用して、やり取りするMRBのアドレスを指定できます。

コマンドラインリクエスタを使用するための構文は、パラメータを指定せずにMGrqcmdlコマンドを実行すると表示されます。

パラメータ | サブパラメータ | 説明
-APPNAME |  | 実行するアプリケーション名を指定します。 ここに指定するアプリケーション名は、デフォルトではプロジェクト名と同じ名前になります。ただし、MAGIC.INIファイルの[MAGIC_ENV]セクションにApplicationPublicName パラメータを設定することで、任意に変更することができます。
 |  | 例：-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(PetShopDemo)
 | 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 | 終了までの時間を指定します。（秒数）


サポートされるミドルウェア MRB

ホーム > リファレンスガイド > 分散アプリケーション > MRB

Magic Request Broker (MRB)

Magic xpaは、MRB(Magic Request Broker)として知られているミドルウェアエージェントを提供しています。MRBは、利用可能なMagic実行エンジンのプールを維持します。

実行エンジンが読み込まれると、MRBに名前が登録されます。二次的な各エンジンも、MRBに登録されます。

MRBが起動すると、定義されたTCPポート上のパケットを監視します。MRBは利用可能な全てのMagic実行エンジンのリストを処理して、Magicのインターネットリクエスタから実行対象の実行エンジンまでリクエストを送るように指示します。

Magic実行エンジンは、同時に複数のリクエスト（独自のスレッドで）処理することができます。

MRBは、フェールオーバーに対応するために、ロードバランシング機能と復旧機能を提供しています。

MRBの主要な機能は、以下の通りです：

  • クライアントリクエストのキューイング

  • リクエストに対する使用可能な実行時エンジンの割当て

  • リクエストのステータスの管理と通知

  • 非同期モードでのプログラム起動

  • 処理内容をログに記録

関連トピック：

分散型アプリケーション構築の背景

前提条件

ミドルウェアゲートウェイのロード

MRBのファイル

MGRB.INI

MRBの動作

フィルタ

マルチMRB環境

ポートの使用

名前解決

ログファイルと原因不明のエラー

パーティショニングのエラーメッセージ

Brokerモニタ

インストールと設定

ブローカ （Mastering Magic xpa）


サポートされるミドルウェア MRB 前提条件

ホーム > リファレンスガイド > 分散アプリケーション > MRB > 前提条件

前提条件

MRBを使用するためには、Webサーバのプロパティを設定する必要があります。この場合、以下のいくつかの処理が必要です。

  1. IIS WebサーバをMagic xpaをインストールする前にインストールしておく必要があります。

  2. Magic xpaのインターネットリクエスタをインストールする必要があります。

  3. インストール後にインストール内容をチェックし、サーバが実行していることを確認します。

これらの手順の詳細は、『マスタリングMagic xpa』の「ブローカ」の章を参照してください。


アプリケーションサーバのセットアップ ロード

ホーム > リファレンスガイド > 分散アプリケーション > MRB > ミドルウェアゲートウェイのロード

ミドルウェアゲートウェイのロード

ミドルウェアゲートウェイがロードされ、Magicエンジンをミドルウェアゲートウェイに接続するようにするには、以下の設定が必要です。

  1. 必要なミドルウェアゲートウェイをロードします。
    Magicエンジンの作業フォルダ内にあるMGREQ.INIファイルの[MAGIC_MESSAGING_GATEWAYS]セクション内で、必要なゲートウェイの定義されている行のコメントを解除してください。なお、Magicエンジンは、デフォルトでいつでもMRBに接続が可能であり、MRBに関しては、MGREQ.INIでの設定は必要ありません。
    複数のミドルウェアゲートウェイをロードできますが、1つのサーバエンジンは、1つのミドルウェアモジュールにしか接続できないことに注意してください。

  2. [設定／サーバ]テーブルでサーバ設定を定義します。
    詳細については、関連するミドルウェアのセクションを参照してください。

  3. [設定／動作環境]ダイアログの[サーバ]タグにある[メッセージサーバ]欄に前のステップで定義したサーバを指定し、このサーバがこのエンジンに対するメッセージサーバとなるようにします。

  4. [設定／動作環境]ダイアログの[アプリケーションサーバ]タグにある [アプリケーションサーバとして動作]欄で「Yes」を選択し、アプリケーションサーバとして実行するようにエンジンを定義します。

  5. ミドルウェアエージェントを有効にします。

  6. 設定を有効にするために、Magicエンジンを再起動します。


Magic Request Broker Files

ホーム > リファレンスガイド > 分散アプリケーション > MRB > MRBのファイル

MRBのファイル

MRBは複数のファイルを使用しています。これらのファイルはすべて同じディレクトリに配置する必要があります。：

  • Mgrb.iniは初期化／設定用ファイルです。

  • MgBroker.exeは、MRBの実行ファイルです。MRBは、サービスとして実行することもできます。
    MRBを起動するには、コマンドラインやショートカットからMgBroker.exeを実行します。
    Windowsのタスクバーの [image] アイコンは、MRBが実行していることを表示します。MRBがサービスで起動された場合は、タスクバーにはアイコンが表示されません。

  • MGrqgnrc.dllは、汎用のメッセージ通信レイヤで、サポートライブラリを含んでいます。

  • BrokerActivity.logは、MRBから出力され、MRBやアプリケーションサーバなどの起動や停止のような重要な動作内容が記録されます。

注意：

MRBのINIファイルは、コマンドラインパラメータを使用して制御することができます：

MgBroker.exe-ini=MGRB.INI

*.iniファイルでは、UNC記述でサーバにマッピングすることができます：

\\ServerName\Drive\Folder

MRBが起動されると、1つのプロセスとして実行します（以前のバージョンでは、監視プロセスも実行していました)。監視プロセスが必要な場合は、MRBに"-StartAsWatchdog"パラメータを付加して起動してください。実行形式（サービスではない）場合のみこのパラメータは有効です。（サポートバージョン：2.3）


サポートされるミドルウェア MRB Mgrb.ini

ホーム > リファレンスガイド > 分散アプリケーション > MRB > MRBのファイル > MGRB.INI

MGRB.INI

MGRB.INIは、MRB用の環境設定ファイルです。MGRB.INIファイルは、MRBの初期設定処理中に読み込まれます。MGRB.INIファイルが見つからない場合、MRBはデフォルト値で初期設定を行います。

以下のパラメータが定義されています。

ActivityLog | ContextsUsage | PasswordQuery
AllowReserve | ContextsUsageLog | PasswordSupervisor
[APPLICATION_CLIENTS_MAP] | DelayThresholdTraps | QueueMaxSize
[APPLICATIONS_LIST] | EnableFilters | ReLoad
AverageProcessTime | EnginesPriority | [REMOTE_APPLICATIONS_LIST]
AverageWaitTime | Filters | ReqHistorySize
BrokerPort | FloatingLicense | ServerTimeout
CommTimeout | LoadBalancing | ShutdownTimeout
 | Log | TerminateEnginesDuringShutdown

キーワード

意味

BrokerPort

MRBのポート番号を指定します。このポートにリクエストが送られてきていないか、MRBにより常時チェックされます。MRBは、指定されたポート番号で始まる５つの連続したポートを開くことができます。

構文：BrokerPort =ポート番号

ポート番号のデフォルトは、Magic xpaのレビジョンによって変わります。

EnginesPriority

サーバエンジンとして使用することのできる最大9つまでのホスト名のリストを定義します。このリストは、MRBがどのMagicエンジンにクライアントのリクエストを送るかを指定する順番が定義されます。

この設定が有効な場合、最初のコンピュータ上のMagicエンジンがクライアントのコマンドを実行し、次に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 の処理ではセキュリティチェックは行われないため、ユーザ名とパスワードはチェックされません。

注意：

Supervisor Passwordと同じパスワードを［サーバ特性］の［パスワード］特性に設定する必要があります。この内容は、Magic xpaのインストール時に自動的に行われます。

PasswordQuery

オプションで省略できます。このキーワードを使用して、ユーザからのMRB に対するアクセスを制限できます。

パスワードを指定した場合、あるユーザから別のユーザのリクエストの照会が実行された時、そのユーザのユーザ名とパスワードがチェックされます。リクエストは提出時に使用されたユーザ名とパスワードを使用して行なわれるため、自分のリクエストを照会する場合には、制限はありません。

リクエストの提出時に使用されるユーザ名とパスワードとして、[設定／サービス]のユーザ名とパスワード、Magic xpaのアプリケーションのログオンに使用されたユーザ名とパスワード、MGREQ.INI ファイルに保存されているユーザ名とパスワードは全てMRB により受け入れられます。

この指定を省略した場合、ユーザ名とパスワードはチェックされません。そのためリクエストは、どのユーザからも照会が可能となり、ユーザは別のユーザのリクエストを確認できます。

注意：

このパスワードは、インストール処理では設定されません。これは、ユーザがエンジンスのテータスや実行アプリケーションを問い合わせる時にのみ利用するだけです。

ReLoad

Magicアプリケーションサーバのインスタンスが異常終了した場合、MRBが自動的にMagicアプリケーションサーバを再ロードするかどうかを指定します。

構文：Reload=YまたはN

Log

上位レベルのMRBの動作（初期化、リクエストの受信、アプリケーションサーバの割当、アプリケーションサーバ情報の送信など）を記録するログファイルを指定します。このログにより、特定のリクエストの処理を確認できます。

構文：LOG=ファイル名 同期 レベル

ファイル名……ログファイル名を指定します。ファイル名に空白を含むことはできません。

同期

  • Y …… ログファイルは、行ごとに開閉されます。これにより、コンポーネントがメモリ内にロードされている時にも、ファイルを削除できます。複数のモジュールでログファイルを共有することも可能です。

  • N …… ログファイルは、コンポーネントの初期化と終了の時のみに開閉されます。

  • F …… 印刷用に書式化された各行がログファイルに送られます。ログファイルは、コンポーネントの初期設定と終了操作の間でのみ開閉されます。

レベル

  • B …… HTTPリクエストの受信と送信についてのみ記録されます。このレベルは、製造（そして、テストの)システム、特に通信範囲とコンポーネントのハンドシェークのトラブルシューティングで使用されるはずです。（サポートバージョン：2.4）

  • C …… ユーザレベル（概要ログ）

  • S …… サポートレベル（中間ログ）

  • R …… MSJ社の開発者デバッグ用のレベル（詳細ログ）

低レベルのMRBの動作（接続、送信、受信など）を記録できるようにするには、MRBのカレントディレクトリにあるMGREQ.INIファイルでのログ設定を行います。

ReqHistorySize

MRBは、処理した各リクエストについての履歴ログを持っています。(Magic xpaのRQ関数やコマンドラインリクエスタのQUERY=LOGパラメータでアクセス可能です。)

このキーワードは、MRBが履歴ログに保持するリクエストの数を制御します。

構文：ReqHistorySize = 数値

デフォルトは、20,000、最小値は5,000、最大価値は100,000です。

ActivityLog

MRB の動作イベント内容を記録するログファイルのファイル名を指定します。

構文：ActivityLog= パス名\ ファイル名

指定されない場合、「mrb_event.log」という名前で作成されます。

LoadBalancing

MRBのロードバランシング機能を制御します。

構文：LoadBalancing= Y（デフォルト）/N/T

  • Y …… 要因となる長期のパフォーマンスを分散するためにサーバ間で負荷を分散します。

  • 平均リクエスト時間に基づいて最も低い負荷のサーバが選択されます。
    要因となる平均リクエスト時間（MRBモニタで表示される)は、そのサーバによって提供されるすべてのリクエストの平均実行時間です。そして、サーバから送られるLoadBalancingPriority値によって分けられます。
    ロードバランスが有効な場合、プライオリティーが高いほど要因となる平均的リクエスト時間は低くなります。

  • 同一の要素における平均リクエスト時間の場合：動作中のコンテキストの最少数によるサーバが選択されます。

  • T …… MRBは、エンジンのコンテキスト数(最大スレッド数) に対する実行中のコンテキスト数(スレッド数) の割合に応じて、均等にリクエストを割り振ります。

  • 最も低い割合のエンジンが選択されます。

  • 割合が同じ場合は、より高い最大スレッド数が定義されたエンジンが選択されます。

  • N …… ロードバランシングを実行しません。MRBは、最初に利用できるサーバにすべてのリクエストを送信します。

注意：

一般にMRBのロードバランシング機能は、各リッチクライアントセッションの最初のリクエストだけに適用されます。

この処理中に、バランシング処理は他のどの非クライアントリクエストとも異なりません。各セッションの2番目のリクエストから開始され、MRBはそれらが開始されたものと同じサーバに全てのセッションの送ることになります。

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側が有効になります。

  • 累計されたパーセンテージが100%より大きい場合、最後のフィルタ指定が100%になるように調整されます。またて、すべての二次フィルタは廃棄されます。

インターネントリクエスタ/ コマンドラインリクエスタの場合

  • 呼出側 …… MGREQ.INIの[REQUESTER_ENV]

Filters = HTTP

  • 受信側 …… コールリモートの時と同じです。

AllowReserve

Filterキーワードの割合の合計が100% に満たない場合、残りの割合を他のフィルタ用に利用できるようにするかどうかを指定します。

構文：AllowReserve = Y（デフォルト）またはN

QueueMaxSize

デフォルトは、1,000リクエストです。

MRBがすでにそのキュー内にQueueMaxSizeリクエストを持っている場合、直ちに送信できない以降のリクエスト(同期または非同期)は、キューに入らず、リクエスタは、エラー-198(キューの上限に達した)を受け取ります。

TerminateEnginesDuringShutdown

このキーワードは、[ShutdownTimeout]キーワードに0より大きな値が設定された場合のみ有効です。

「Y」が設定された場合、MRBによって起動された全ての実行エンジンを終了させます。段階的に終了できなかった場合でも、MRBが記録した実行エンジンのプロセスIDに基づいて、指定されたタイムアウト値を越えた時点でシャットダウンさせます。

構文：TerminateEnginesDuringShutdown= Y（デフォルト）またはN

ContextsUsage

MRBがファイルにコンテキストの使用内容を保存するかどうかを指定します。コンテキストが閉じた時点で、データが保存されます。実行時エンジンの実行モードでバックグラウンドに設定される場合のみ有効です。この場合、コンテキストは常にメイン/単一コンテキストになります。

  • Y …… コンテキスト内容が保存されます。

  • N（デフォルト） …… 保存されません。

構文：ContextsUsage= N（デフォルト）またはY

ContextsUsageLog

Contexts Usageで出力するファイル名を指定します。値は相対/絶対パスで指定できます。

デフォルト値は、ContextsUsage_YYYY_MM_DD.Logです。

FloatingLicense

これがYに設定されると、フローティングライセンス環境モードにないサーバは、フローティングライセンス環境モードにあるサーバとライセンスを共有できるようになります。

デフォルトは、N です。

フローティングライセンスのサポートも参照してください。

[APPLICATIONS_LIST]

オプションのセクションで省略できます。このセクションには、コマンドライン実行ファイルまたはシェルコマンドを記述します。

OSのユーザー名やパスワードを指定した場合、コマンドはこのOSアカウントを使用します。

<MRB の初期化時に実行される回数>が「1」に設定された場合、定義されたアプリケーションの1つのインスタンスを読み込みます。

<起動されるエンジンの最大数>は、サーバに送られたリクエストが利用できるアプリケーションサーバを見つけることができない場合、MRBが追加で読み込むアプリケーションサーバ・エンジンを指定するために使用されます。

構文：エントリ名=<コマンド>,[<作業フォルダ>],[<ユーザ名>], [<パスワード>],[<MRB の初期化時に実行される回数>],[<起動されるエンジンの最大数>]

注意：

リクエスタでのパラメータ値（例えば-APPNAME=）は［APPLICATIONS_LIST］で定義されるたAPPNAMEと合っていなければなりません。

[REMOTE_APPLICATIONS_LIST]

オプションのセクションで省略できます。マルチコンピュータ環境で、各コンピュータでエンジンがMRB とは別個に機能している時に、このセクションを記述します。

MRBのインスタンスはローダとして機能しますが、インスタンスは、エンジンが機能しているコンピュータ全てに対して有効でなければなりません。マルチコンピュータ環境の場合、このセクションに実行可能ファイルを一覧で指定しておきます。これで、ローカルのMRB からリモートのMRB に対して自動的に接続が実行されるとともに、このセクションに指定した実行可能ファイルがロードされます。なお、リモートMRB にパスワードが設定されている場合、PasswordSupervisor を指定しなければなりません。指定しない場合、パスワードとしてはローカルのMRB のパスワードが使用されます。

構文：エントリ名=<リモートMRB のノード名／ポート番号>,[<リモートMRB のPasswordSupervisor>],[<リモートMRB に定義されているエントリ名>],[<MRB の初期化時に実行される回数>]

<リモートMRB に定義されているエントリ名>の値が1に設定されている場合、定義されたアプリケーションの1つのインスタンスを起動します。

[APPLICATION_CLIENTS_MAP]

オプションのセクションで省略できます。開発者に対して、リクエストの受信先のエンジンを制御できます。

例えば、同一のプロジェクトファイルに対して複数の開発者で開発を行っている場合、ある開発者が、オブジェクトをチェックアウトし、MRBに自分のエンジンを割当てるといった作業が可能です。

このセクションはソース管理された環境で使用されます。この場合、開発者はそれらのマシンから送信されるリクエストが他の実行エンジンではなく指定されたPCで実行されたいるエンジンに送られるようになります。これはワークグループ開発時に役に立ちます。明示的に指示することなくリクエストが1人の開発者からアプリケーションの自身のコピーに送られるため、変更内容を確認するために、開発者は毎回その変更内容をチェックインする必要があります。たとえば、開発者がそのWebブラウザからリクエストを起動させる場合、開発者はアプリケーションの（中央にあるコピーではなく）修正されたコピーで起動させたいでしょう。

構文：

<サーバ名1>:<クライアント名 または IP a1>,<クライアント名 または IP a2>...,<クライアント名 または IP ax>

<サーバ名1>:<クライアント名 または IP b1>,<クライアント名 または IP b2>...,<クライアント名 または IP bx>

<サーバー名1＞は＜クライアント名またはIP a1>,＜クライアント名またはIP a2>…<クライアント名前またはIP aN>からのみリクエストを受け付けます。

<サーバー名2＞は＜クライアント名またはIP b1>,＜クライアント名またはIP b2>…<クライアント名前またはIP bN>からのみリクエストを受け付けます。

注意：

リモートコールの実行中（このセクションでエンジンがマッピングされている場合）、リクエストゲートウェイでは、リクエストとともに送られてきたユーザ名とパスワードを使用して処理が行われます。

したがって、開発者がまだエンジンにログオンしていない時には、ログオンの際、ユーザ名とパスワードを指定しなければなりません。これで、その開発者が使用できるプロジェクトファイルであるかを確認できます。

なお、ユーザ名とパスワードは、インターネットとコマンドラインではMGREQ.INI ファイル、Magicクライアントでは[サービス]テーブルにおいて定義できます。

[SNMP]

AverageWaitTime

リクエストが利用可能なアプリケーションサーバを待つ平均時間を秒数で指定します。平均待ち時間がこの指定値を超えた場合、SNMP トラップメッセージがNMSに送られます。

構文：AverageWaitTime = N (秒)　(デフォルト値：3)

AverageProcessTime

リクエストがアプリケーションサーバで処理される平均時間を秒数で指定します。リクエストが送られるたびに、この値は登録された全アプリケーションサーバに対してチェックされます。平均処理時間がこの指定値を超える場合は、SNMP トラップメッセージがNMSに送られます。

構文：AverageProcessTime = N (秒)　(デフォルト値：30)

DelayThresholdTraps

指定されたタイプのリクエストがしきい値の間に待たなければならない時間を分数で指定します。これはNMS 側がオーバフローすることを回避するためです。デフォルト値は1分です。

構文：DelayThresholdTraps = N (分)


サポートされるミドルウェア MRB 動作

ホーム > リファレンスガイド > 分散アプリケーション > MRB > MRBの動作

MRBの動作

MRB（MRB）では、0から9の優先順位に従ってリクエストキューが管理されます。0は最低優先順位を表します。キュー内には、次の情報が含まれます。

  • リクエストID

  • 優先順位

  • 実行ステータス

  • アプリケーション名

  • オリジナルのリクエストパケット

  • エラーコード

MRBでは、次の情報を含む関連実行エンジンの各リストが管理されます。

  • アドレス

  • ステータス

  • 現在のアプリケーション

  • 使用可能アプリケーション

自動再起動

MRBが異常終了した場合、そのMRBを監視している管理処理を介して自動的に再起動を実行します。MRBは、MRBをモニターする管理のプロセスを通して再起動します。

アプリケーションサーバの自動終了

MRBが、正常か異常かに関係なく終了して再起動されると、MRBに接続したアプリケーションサーバは、60秒以内に終了します。これは、バックグラウンドモードで実行しているアプリケーションサーバのみに当てはまります。

ロードバランシング機能

Magic xpaのMRBのロードバランシング機能は、優先度や、パフォーマンスおよびコンテキストの処理情況に基づいてリクエストをエンジン振り分けるようにします。

Magicエンジンの優先度を制御するには、動作環境の［ロードバランシングの優先度］を使用します。

関連トピック：

パーティショニングのエラーメッセージ


Filters

ホーム > リファレンスガイド > 分散アプリケーション > MRB > フィルタ

フィルタ

サーバ側 – フィルタ設定

Mgrb.ini

スレッドを異なる種類のリクエスト（例えば、HTTPリクエストやSOAPリクエスト、COM リクエスト、フィルタ外のリクエスト）に割り当てらるために、フィルタ設定を使用することができます。

フィルタは、1つのタイプのリクエストによって他のタイプのリクエストを処理するMRBとサーバの能力を消耗しないようにすることで、サービスレベルを向上させます。

例：下記の例は、20スレッドのライセンスによるアプリケーションサーバを異なる種類のリクエストにを処理する際に、以下のように指定します。

HTTP_endusers:40% | SOAP_primary:10% | SOAP_secondary:5% | RemoteCalls:10% | COM:5%

  • HTTP_endusers …… 8 スレッド (20スレッドの40%)

  • SOAP_primary …… 2 スレッド (20スレッドの10%)

  • SOAP_secondary …… 1 スレッド (20スレッドの5%)

  • RemoteCalls …… 2 スレッド (20スレッドの10%)

  • COM …… 1 スレッド (20スレッドの5%)

  • フィルタ外のリクエスト …… 6 スレッド (残り、20スレッドの30%)

注意：

累積されたパーセンテージが100%より大きい場合、累積値を超える最後のフィルタ入力値が100%と等しくなるように調整されます。そして、すべての二次的なフィルタは破棄されます。

Magic.ini

キーワードをMagic.iniファイルに設定すると、値はサーバからMRBに送られて、（指定したサーバ用の)MRBのデフォルト設定に置き換わります。

クライアント側 – フィルタ設定

Mgrb.ini

関連する（通常は、リクエスタとしての同じフォルダ内の)Mgreq.iniに設定されたフィルタの設定値を基に、MRBは現在のリクエスタからリクエスト受け取ります。Filter=name

例：Filter= HTTP_endusers

Magic.ini

同様に、［サービス特性］に設定されたフィルタの設定値を基に、MRBは、 Magicエンジンからのリモートコールを処理します。Filter=name

例：Filter= RemoteCalls


マルチMRB環境

複数のMRBを使用することで、環境を切り離すことができます。例えば開発用の環境（MRB+アプリケーションサーバ)と運用環境に分けることが出来ます。

注意：

管理目的で、複数のアプリケーション用に複数のMRBを使用してマルチMRB環境を簡単に悪用することができます。このような場合、MRBはパイプであることがわかります。そして、ロードバランシング機能は利用できなくなります。MRBがサービスによって指定されたアプリケーションに対してのみ適用されるため、管理問題の対応ので、モニターアプリケーション内でサービスを使用することはよい方法です。例えば、関数<RQLOAD（eDefault Service’)>を実行すると、［サービス］テーブルに「Default Server」として定義されたアプリケーションに関してのみ統計を返します。

もう一つの可能性は、コマンドラインリクエスタを使用することです：

mgrqcmdl –que=load –app=app1

マルチMRB環境のもう一つの長所は、他のPC上のアプリケーションサーバを起動するエージェントとしてMRBを使用することができるということです。

他のMRBは自身のPC上でアプリケーションサーバを起動することができます。この場合、メインとなるMRB用のmgrb.iniファイルの［REMOTE_APPLICATIONS_LIST］セクションを使用します。

注意：

開発者は、Webサーバによって発行された異なるリクエスタから同じPC上の複数のMRBにアクセスしたいかもしれません。Webサーバが各リクエスタ用の異なるディレクトリ上のmgreq.iniファイルを読み込む場合(たとえば、異なるエイリアスに割り当てられたディレクトリから)、このようなことが実現できます。そのような能力は異なるmgreq.iniファイルの固定した異なるMessagingServerの設定で使用することができ、異なるMRBにアクセスすることができます。Webサーバがそのエイリアスの全てに対応した同じディレクトリを使用する場合、1つのMRBだけにアクセスすることができます。

レジストリキーの"HKEY_LOCAL_MACHINE/Software/MAGIC/MGREQは、上述のシナリオを有効にするためには使用できません。


ポートの使用

MRBは、1つのポート（mgrb.iniファイルのBrokerPortで指定)を使用します、そして、このポートのみ使用します。

これは、MRBがパケットを監視し、リクエストを待つためのポートです。デフォルトは、5415です。MRBは、二次的なポート（デフォルト：5425)を内部の目的用に予約しています。

注意：

指定したIPアドレスの上でMRBを実行するには、BrokerPort（mgrb.ini)を以下のように設定します。

– BrokerPort = n.n.n.n/n.

（リクエスト、アプリケーションサーバの)分散構成のインタフェースコンポーネントが異なるポートを使用したり、ポートを使用していない場合、共通の問題が発生するかもしれません。この場合、デフォルトポート（バージョンによって異なります)が使用されます。特に、デフォルトディレクトリがWebサーバのデフォルトディレクトリの場合、インターネットリクエスタは影響します。それはmgreq.iniファイルが配置されたディレクトリと異なるかもしれません。

このような曖昧さの問題を解決するには、レジストリキー（HKEY_LOCAL_MACHINE/SOFTWARE/MAGIC/MGREQ）にmgreq.iniが配置されたフォルダを指定することもできます。


トラブルシューティング 名前解決

ホーム > リファレンスガイド > 分散アプリケーション > MRB > 名前解決

名前解決

Magic xpaのパーティショニング機能によって、異なるモジュール（MRB、クライアント、アプリケーションサーバ）を異なるマシン上に配置することができます。その際、各マシンは互いのマシンのホスト名を認識できるようにしなければなりません。

例えば、MRBが「SRVR_1」というホスト名のマシンにインストールされ、別のマシン「SRVR_2」と「SRVR_3」にそれぞれアプリケーションサーバがインストールされているものとします。

アプリケーションサーバは、MRBに対して「SRVR_2」と「SRVR_3」のホスト名で認識してもらうようにします。このホスト名は、クライアントが同期リクエストを送信する際にMRBに渡されます。従って、各クライアントは各マシンのホスト名の名前解決ができるようにする必要があります。

一番推奨する方法は、DNSやDHCPを利用することです。

注意：

DHCPは、DHCPを使用しない設定と混在しないようにしてください。別のデータベース（たとえば、DNSのデータベース)を使用する場合もあるため、DHCPを使用しないコンピュータは正しくIPアドレスを変換できないば場合があります。

他には、Hostsファイルを使用することもできます。この場合は、常に最新の環境になるように各クライアントのHostsファイルをメンテナンスをする必要があります。

注意：

Mgreq.iniまたはMagic.iniの［サーバ］テーブルを使用したり、コマンドラインリクエスタを使用して、MRBにアクセスするためにIPアドレスを指定することができます：mgrqcmdl -host=＜ipアドレス>…

しかし、（先に述べたように)名前解決を回避するために使用するIPアドレスはアプリケーションサーバに適用されません（これは名前によって識別されるため）。そして、たとえMRBと同じPC上にあっても、MRBまたはリクエスタがアクセスする必要があるときは常に、これらの名前が使用されます。


ログファイルと原因不明のエラー

MRBが使用するログには、以下の2種類があります。これらのファイルの両方とも、ログパラメータがあります：

  • mgreq.iniファイル …… 低レベルの動作（TCP/IPやスレッド、イベント、接続、送信、受信など）を表示します。設定によっては、すべてのモジュールに関連するというわけではありません。たとえば、プライオリティの設定は、リクエスタにのみ関係します。

  • mgrb.iniファイル …… MRBの高レベルの動作（初期化、リクエストの受信、アプリケーションサーバの位置付、アプリケーションサーバからリクエスタへの処理 など）を表示します。特定のリクエストがMRBによって受け入れられた場合、このログが動作を理解する上で有効です。

予想外のエラー

例えば、ドキュメント内にリストされないエラー：-145は、mgreq.iniで指定したログファイルを使用して処理されます。このログファイルは、たとえば名前解決に関する問題を表示することができます。そして、大部分はこれらのエラーが表示される原因になります。

Webサーバ（それは、Magic xpaのエラーページで表示されません)からMagic xpaに送るエラーの違いを知っておく必要があります。Webサーバのエラーは、リクエスタがダウンしたり、権利が無い場合などが考えられます。

MRBのメインログ

BrokerActivity.logから情報を取得することもできます。このログは、Magic xpaのインストルディレクトリをデフォルトとして位置づけられます。

BrokerActivity.log（それはMRBで作成され、他のINIファイルには関係ありません）は、重要なMRBの動作（例えばMRBやのアプリケーションサーバの起動とシャットダウンなど）を記録します。


MRBのモニタ

ホーム > リファレンスガイド > 分散アプリケーション > MRB > Brokerモニタ

Brokerモニタ

Brokerモニタは、指定されたMRB経由でアプリケーションサーバを監視するものです。

以下のどれかの方法で、Brokerモニタを実行することができます。

  • Magic xpaのインスト－ルディレクトリ内のMgBrokerMonitor.exeとういう実行ファイルをダブルクリックします。

  • Windowsの[スタート]メニューから[Magic xpa 2.x Enterprise Studio（またはMagic xpa 2.x Enterprise Server] > [ブローカとリクエスタ] > [Brokerモニタ]を選択します。

  • ステータスバーのMRBのアイコンを右クリックして[Broker Monitor]を選択します。

Brokerモニタは、以下のウィンドウで構成されています。

  • アプリケーションサーバ

  • コンテキスト

  • リクエスト

  • 統計

関連トピック：

ウィンドウ表示

サーバのモニタ

MRB の動作を監視するには


MRBのモニタ アプリケーションサーバ

ホーム > リファレンスガイド > 分散アプリケーション > MRB > Brokerモニタ > アプリケーションサーバ

アプリケーションサーバ

このウィンドウには、全てのアクティブなサーバが表示されます。[動作]メニューから[アプリケーションサーバ起動]や[アプリケーションサーバ停止]をクリックすることで、アプリケーションサーバエンジンを起動したり停止させたりできます。

[アプリケーションサーバ]ウィンドウには以下のカラムがあります。

カラム | 内容
アプリケーション | エンジンが実行しているアプリケーション名が表示されます。
状態 | エンジンの状態が表示されます。
コンテキスト数 | 有効なコンテキストの数が表示されます。
リクエスト数 | 処理されたリクエストの数が表示されます。
現在のスレッド数 | 現在実行中のスレッド数が表示されます。リッチクライアントエンジンの場合は、ユーザ数が表示されます。
ピークスレッド数 | 今までの同時実行スレッド数のピーク値が表示されます。リッチクライアントエンジンの場合は、ユーザ数が表示されます。
最大スレッド数 | 同時実行可能な最大スレッド数が表示されます。リッチクライアントエンジンの場合は、ユーザ数が表示されます。
アプリケーションサーバ | エンジンが実行されているホスト名とポート番号が表示されます。
PID | エンジンプロセスのプロセスID が表示されます。
平均リクエスト時間 | リクエストの平均処理時間が表示されます。
ミリ秒 | 平均リクエスト時間のミリ秒数が表示されます。

アプリケーションサーバを停止させると、確認表示のダイアログボックスが表示されます。稼働中のアプリケーションサーバに対して[OK]をクリックすると、エンジンは終了します。サーバが動作していない場合、モニタユーティリティは、エラーメッセージを表示します。

以下の図で示すように、MRBのウィンドウ（MRBアイコンのクリック)とMRBモニターは、パイプ（|）で区切られた二つの値で現在値と、ピーク値と最大値を表示します。

エンジンがアプリケーションサーバや、RIAサーバとして使用される場合、この現象が発生します。2つの数値が表示された場合、最初はスレッド数で2番目はRIAのユーザ数です。

アプリケーションサーバをシャットダウンすると、警告のメッセージボックスが表示されます。実行中のサーバに対するボックスのOKをクリックすると、サーバはシャットダウンされます。サーバが実行中でなければ、MRBモニタはエラーメッセージを表示します。


MRBのモニタ コンテンツ

ホーム > リファレンスガイド > 分散アプリケーション > MRB > Brokerモニタ > コンテキスト

コンテキスト

このウィンドウは、選択したMRB のコンテキストスレッドを表示します。［コンテキスト］ウィンドウには以下のカラムがあります。

カラム | 内容
コンテキストID | コンテキストのID が表示されます。
リクエストID | コンテキスト内で有効なリクエストID が表示されます。
プログラム名 | コンテキストでオープンされたプログラム名が表示されます。
ユーザ名 | コンテキスト内でシステムにログインしたユーザ名が表示されます。
状態 | コンテキストの状態が表示されます。
未使用時間 | コンテキストが最後に実行してからの経過時間が表示されます。

[動作]メニューから[コンテキスト破棄]をクリックすると、選択したコンテキストを破棄することができます。

コンテキストが破棄される際に、確認表示のダイアログボックスが表示されます。アクティブなコンテキストに対して[OK]をクリックすると、コンテキストは破棄されます。コンテキストがアクティブでない場合、モニタユーティリティは、エラーメッセージを表示します。コンテキストが破棄された場合、カーソルは次のコンテキストにパークします。

注意：

Magicエンジンがバックグラウンドモードで実行している場合のみ表示されます。


MRBのモニタ リクエスト

ホーム > リファレンスガイド > 分散アプリケーション > MRB > Brokerモニタ > リクエスト

リクエスト

このウィンドウは、選択したMRB によってサーバに送られたリクエストを表示します。

[動作]メニューから[リクエスト削除]をクリックすることで、指定したリクエストを削除することができます。

[リクエスト]ウィンドウには以下のカラムがあります。

カラム

内容

アプリケーション／プログラム

リクエストの処理を実行しているアプリケーション名とプログラム名（タスク名）が表示されます。サブタスク（または、プログラム）を呼び出した場合、その名前もパス表示されます。
プログラム名には、以下の２つの内部値が表示されます。

  • [Caching]……クライアントがサーバにリクエストを送信したり、キャッシュされたファイルを受け取った場合に表示されます。

  • [License Check Out]……Magicエンジンがサーバライセンスを使用して起動された場合に表示されます。スレッドライセンスは、バッチタスクが処理されるとチェックアウトされます。処理が終了するとチェックインされます。

クライアント

リクエストを送信したクライアントのホスト名が表示されます。

リッチクライアントのリクエストの場合は、ClientGetUniqueMachineID関数で取得できるクライアントのユニークIDが表示されます。

状態

リクエストの状態を表示します。（失敗、完了、処理中、ペンディング）

送信時刻

リクエストがMRB によって送信された時刻を表示します。

経過時間

リクエストがMRB に送信され、完了するまでの時間（秒数）を表示します。

処理サーバ

リクエストが処理されたサーバのホスト名とポート番号が表示されます。

注意：

[動作]メニューから［リクエスト削除］をクリックするとペンディング状態のリクエストが終了されます。

関連トピック：

How Do I Remove a Request Waiting in the Queue?


MRBのモニタ 統計

ホーム > リファレンスガイド > 分散アプリケーション > MRB > Brokerモニタ > 統計

統計

このウィンドウでは、リクエストの統計情報が表示されます。以下の内容が表示されます。

  • 失敗したリクエスト …… 完了できなかったリクエストの数

  • 完了したリクエスト …… 完了したリクエストの数

  • 処理中のリクエスト …… 処理中のリクエストの数

  • ペンディング状態のリクエスト …… 処理待ち状態のリクエストの数

  • 全リクエスト …… 上記の全リクエストの総数

リクエストの数は、色分けされた棒グラフで表示されます。この色は、[オプション]メニューの[リクエストフィルタ]で起動される[リクエストフィルタ]ダイアログで指定できます。[デフォルト]ボタンをクリックするとデフォルト状態に戻すことができます。


MRBのモニタ ウィンドウの表示

ホーム > リファレンスガイド > 分散アプリケーション > MRB > Brokerモニタ > ウィンドウ表示

ウィンドウ表示

[表示]メニューから表示するウィンドウを選択することができます。

[ウィンドウ]メニューでは、ウィンドウの表示方法を選択できます。[デフォルト配置]をクリックするとオリジナルの表示方法に戻ります。[動作／再表示]（F5）を実行するとウィンドウ表示がリフレッシュされます。

[オプション]メニューの[再表示設定]を実行することで、モニタユーティリティの表示のリフレッシュするタイミングを指定できます。再表示間隔を秒数で指定し、一度の再表示時に取得するリクエストの最大数を指定できます。


MRBのモニタ サーバのモニタ

ホーム > リファレンスガイド > 分散アプリケーション > MRB > Brokerモニタ > サーバのモニタ

サーバのモニタ

[モニタ]メニューから、[モニタ開始]をクリックすることで、監視を始めることができます。サブメニューには、選択可能なサーバが表示されます。「Local Broker」がデフォルトです。

[オプション]メニューの[MRB 一覧]をクリックすることで、監視するサーバ（MRB）を追加したり、削除することができます。

[モニタ停止]をクリックすると、サーバの監視を止めることができます。


サポートされるミドルウェア MRB インストールと設定

ホーム > リファレンスガイド > 分散アプリケーション > MRB > インストールと設定

インストールと設定

MRBを構成する全てのファイルは、同じディレクトリに存在する必要があります。

  • MgBroker.exeは、MRBの実行プログラムです。Windows版のMRBはサービスとして実行させることができます。（サービスとして実行する場合は、Magic xpaのインストール時に指定する必要があります。）
    MRBの処理を開始するには、MgBroker.exeをコマンドラインから実行するか、ショートカットから実行します。普通のプログラムとして実行した場合、Windowsタスクバー上に [image] アイコンが表示されます。

  • MGrqgnrc.DLLは汎用メッセージレイヤで、これにはサポートライブラリが含まれています。

  • MGRB.INIは、MRB用の環境設定ファイルです。

注意：

MGRB.INIファイルは、MRBの起動時のコマンドラインパラメータでを指定することができます。


パーティショニング

ホーム > リファレンスガイド > 分散アプリケーション > アプリケーションパーティショニング

アプリケーションパーティショニング

「アプリケーションパーティショニング」という用語は、ネットワーク上の複数のコンピュータにアプリケーションロジックを分散するアプリケーションの開発プロセスについて説明するために使用されます。最も単純な構成では、アプリケーションを1つのPC上でリモートサービスとして実行し、タスクの実行要求をサーバに送信できます。より複雑な構成では、アプリケーションロジックを複数のサーバに分散できます。

関連トピック：

アプリケーションの設定

コールリモート処理コマンド

コール UDP処理コマンド

マルチスレッド

アプリケーションパーティショニングの関数


パーティショニング アプリケーションの設定

ホーム > リファレンスガイド > 分散アプリケーション > アプリケーションパーティショニング > アプリケーションの設定

アプリケーションの設定

パーティショニング対象を選択する

アプリケーションパーティショニングの第1段階は、1つあるいは複数のサーバPC上で実行するアプリケーション構成要素を選択することです。選択する構成要素は、サーバ上で実行した場合に、パフォーマンスと保守性の大幅な向上が見込まれるものでなければなりません。プログラムやタスクをクライアントとアプリケーションサーバのどちらで実行するかは、アプリケーションの設計段階で決定する必要はありませんが、考慮に入れる必要はあります。パーティショニングに適するのは、バックグラウンドモードで実行するタスクです。

動作環境の設定

パーティショニングを行うには、以下の環境設定が必要です。

  • アプリケーションサーバとして動作

  • メッセージサーバ

  • リクエスタのタイムアウト

実行時の動作

実行時、[コールリモート]処理コマンドが実行されると、実行エンジンによって有効なサーバが検索されます。その後、リモートコマンドがMagic xpaのリクエスタに渡されます。一方、[コールリモート]処理コマンドの[ウェイト]欄の値が「No」の場合、クライアントの待機は行われません。ここで[ウェイト]欄の値が「Yes」の場合、クライアントはいったん待機状態に入り、そのコマンドによる処理が完了すると（または、タイムアウトに達すると）、通常の動作に戻ります。その後、処理コマンドが完了すると、送られたパラメータ項目が必要に応じて再計算され、後続のプログラムフローが再開されます。

[コールリモート]処理コマンドの実行時にエラーが発生した場合のエラーコードやエラーメッセージは、「パーティショニングエラー」を参照してください。


パーティショニング マルチスレッド

ホーム > リファレンスガイド > 分散アプリケーション > アプリケーションパーティショニング > マルチスレッド

マルチスレッド

バックグラウンドで動作するMagicアプリケーションサーバや並行起動を有効に設定されたオンラインプログラムは、マルチスレッドで動作します。

各スレッドは異なる実行モードのコンテキストにアクセスするので、ほかのスレッドに影響することはありません。

オンラインプログラムをマルチスレッドで動作させるための設定については、「MDIとSDI」を参照してください。

関連トピック：

マルチスレッドの設定

マルチスレッドにおける考慮事項

共有リソース

実行関数

外部プログラムの呼び出し

マルチスレッド（Javaとの連携）


パーティショニング マルチスレッド 環境設定

ホーム > リファレンスガイド > 分散アプリケーション > アプリケーションパーティショニング > マルチスレッド > マルチスレッドの設定

マルチスレッドの設定

Magic xpaはマルチスレッド処理を実行する上で、以下の動作設定や関数を提供しています。

最大並行リクエスト数

最大並行ユーザ数

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


パーティショニング 関数

ホーム > リファレンスガイド > 分散アプリケーション > アプリケーションパーティショニング > アプリケーションパーティショニングの関数

アプリケーションパーティショニングの関数

以下は、アプリケーションパーティショニングをサポートする関数です。

関数 | 説明
GetParam | グローバルパラメータとして渡されているパラメータ値を取得します。
RqContexts | コンテキストの情報を取得します。
RqCtxInf | コンテキストID に対応したコンテキストの情報を取得します。
RqCtxTrm | コンテキストを終了させます。
RqExe | MRB に登録されている実行可能モジュールのリストから、新しいエントリを実行します。
RqHTTPHeader | バッチプログラムがHTTPリクエスタを送信する際の HTTPヘッダ情報を設定します。
RqLoad | MRB で処理されるサービスに関しての統計情報を取得します。
RqQueDel | キュー内で待ち状態にあるリクエストを削除します。
RqQueLst | キュー内で待ち状態にあるリクエストの数を取得します。
RqQuePri | キュー内で待ち状態にあるリクエストの優先順位を再設定します。
RqReqInf | MRBのキューまたは履歴ログから得られる、あるリクエストに関する一連の情報を取得します。この機能を利用するためには、この実行前にRqQueLst またはRqReqLstを実行しておく必要があります。
RqReqLst | MRB の履歴ログから得られるリクエストID の範囲によって識別される、リクエストエントリの数を取得します。
RqRtApp | MRB に登録された１つまたは複数の実行エンジンによってサポートされるアプリケーションに関する情報を取得します。
RqRtApps | MRB に登録された１つまたは全てのアプリケーションサーバによってサポートされるアプリケーションの数を取得します。
RqRtBlock | アプリケーションサーバからの外部/内部リクエストをブロックします。
RqRtCtx | 指定されたサービス／サーバ名の指定したコンテキストの情報を取得します。
RqRtCtxs | アプリケーションサーバのオープンされた全てのコンテキストの情報をロードします。
RqRtInf | MRB に登録されたアプリケーションサーバ情報を取得します。
RqRtResume | リクエストの受信を許可します。
RqRtInf | 指定した実行エンジンに関する情報を取得します。
RqRts | MRB に登録されたアプリケーションサーバの数を取得します。
RqRtTrm | リクエスタによって起動されている１つまたは複数のアプリケーションサーバの処理を終了させます。
RqRtTrmEx | 指定されたアプリケーションサーバエンジンを時間指定で終了させます。
RqStat | あるリクエストの状態を示す数値を取得します。
RqTrmTimeout | サーバ終了までの残りの時間を取得します。
SetParam | グローバルパラメータのパラメータ値を設定します。


接続処理

コネクションの両端が実行中で、機能している限り、分散型アプリケーション・アーキテクチャーのさまざまな要素間のコネクションが残ります。"netstat"コマンドは、TCP/IPの状態図における異なるフェーズ間で、これらのコネクションの内容を参照することができます。

リクエスタ（例えばISAPI用）は、まず最初に、MRBと各アプリケーションサーバへの接続を開始します。リクエスタまたはパートナー（MRBまたはアプリケーションサーバ）がシャットダウンされるまで、これらのコネクションは確立されたままになります。

リクエスタがリクエストをMRBまたはアプリケーションサーバに送信する必要があり、すべての確立したコネクションがすでに使用中である場合、リクエスタは新しい接続を開始して、それを、前述したように確立しておきます。これは、最大接続数に達するまで、確立した接続数が増えていくことを意味します、そして、既存のコネクションは新しい接続を開始することなくすべてのリクエストを処理します。各アプリケーションサーバからMRBまでのコネクションは一つだけあります。

リクエスタがシャットダウン（例えば、IISが再起動される）すると、リクエスタは優雅にMRBと接続されている全てのアプリケーションサーバのコネクションを閉じます。次に、前述したとおりにリクエスタは新しいコネクションを開始します。

MRBまたはアプリケーションサーバが、認識されたリクエスタなしでシャットダウンされた場合、CLOSE_WAITステータスメッセージがリクエスタ側に発行されます。そして、FIN_WAIT_2メッセージはMRBまたはアプリケーションサーバ側に出力されます。


通信のセキュリティ

MagicクライアントとWebサーバ（リクエスタ)間の通信は、圧縮されますが、暗号化されていません。

非Magicクライアント（例えばWebクライアント)とWebサーバ（リクエスタ)間の通信は、圧縮されず、暗号化もされていません。

この通信を暗号化するには、httpsプロトコルを使用してください。

httpsプロトコル（SSL\TLS)は、クライアントとWebサーバ間の通信を暗号化して、サーバが信用されていることを保証します。

リクエスタとMRB、Magicエンジン間の通信は、非対称や対称形の暗号アルゴリズムを使用して暗号化されます。ハードコードされたキーは使用されず、対称型の暗号化アルゴリズムとキー長を定義することができます。

アルゴリズムとキー長は、mgreq.iniファイルのEncryptedCommunicationキーワードで定義します。


ファイアウォールの設定

ホーム > リファレンスガイド > 分散アプリケーション > ファイアウォールの設定

Magic xpa用にファイアウォールを設定する

Magic xpaやWebアプリケーションの一般的なアーキテクチャーにおいて、MagicのインターネットリクエスタはWebサーバで読み込まれます。そして、MRB/アプリケーションサーバは異なるPC上にインストールされている場合があります。

ファイアウォールがWebサーバ用PCとLANの間にある場合、以下のポートはMagic xpaのモジュールで使用されます。

MRB

MRBが利用するポート番号は、Mgrb.iniで定義します。

ポート番号：N+1（N:デフォルトのポート番号)は、 MRBによっても使用されます。しかし、これは内部的に使用するため、ファイアウォールでこの番号を開ける必要はありません。このポートは、Magic xpaのモジュール間での通信には使用されません。

アプリケーションサーバ

各アプリケーションサーバ（Magicの実行エンジン)は1つのポートを使用します。そして、このポートはリクエスタとサーバの間でダイレクト通信のために使用されます。ポート番号は、Magic xpaの［通信ゲートウェイ］テーブルで定義されるTCP/IPポートの範囲で使用されます。

設定→通信→パラメータを選択し、Magic xpaの実行エンジンが使用すると思われるポートの範囲をここで定義してください。アプリケーションで使用されるアプリケーションサーバの数と等しいポート番号の範囲で許可することが最適です。例えば、5つのアプリケーションサーバの場合、範囲は以下のように設定できます：1500-1505.

ポート番号の範囲は、Webサーバ用PCとアプリケーションサーバ用のPC（実行エンジンが起動されるPC)の間で両方向に対して開ける必要があります。

リクエスタ

UDPポート137と138（NBTポート)は、ネットワーク・アドレスの解決を可能にするため、WebサーバPCとアプリケーションサーバPCの間で開ける必要があります。これは、リクエスタがMRBからそのアドレスを受け取った後に直接アプリケーションサーバに接続できるようにすることが要求されます。

注意：

代表的なシナリオでは、すべてのポートがこのトピックで説明しているようにはポートを開けておくことはないため、MRBはリクエスタからリクエストを受け取ります。そして、MRBがこのリクエストのためのMagic xpaエンジンを割り当てます。「リクエストを実行する」としてフラグを設定します。そして、エンジンのアドレスをリクエスタに送り返します。

この場合、リクエスタがエンジンと通信しようとすると、ファイアウォールによって失敗します。しばらくして、すべてのアプリケーションサーバは「リクエストを実行する」ようになります。


SNMPサポート

Magic xpaは、SNMP（Simple Network Management Protocol）機能をサポートします。これはMagicプログラムとMagicエンジン（MRBとリクエスタ)がモニターにSNMPメッセージを送信することができます。さらに、システム管理者は、SNMPモニターによってMagic xpaのモジュールをコントロールすることができます。

SNMPは、ネットワーク管理を制御し、ネットワークデバイスやそれらの機能をモニタすることができます。一旦、Magic xpaがSNMP機能を有効にすると、ネットワーク管理ステーション（NMS)（SNMPモニターとしてみなされます）は、MRB（登録されたアプリケーションサーバを含む)に問い合わせを行ったり、管理することができます。そして、MRBはトラップ（警報や処理の失敗、または他の特別なイベント）を通知することができます。

Magic xpaのSNMP 機能を利用するには

  1. Magic xpaでSNMPをサポートするには、OSにSNMPエージェント（SNMPサービス）がインストールされていなければなりません。すでにOSにインストールされている場合は、Magic xpaのインストール処理時にMagic xpaのSNMPモジュールが自動的にインストールされます。また、MGREQ.INI の EnableAgentパラメータも「Yes」に設定し、SNMPサービスを再起動します。

  2. SNMPエージェント（OSのSNMPサービス）のプロパティを開き、以下のプロパティを設定します。

  1. ［セキュリティ］タブ …… ［コミュニティ］プロパティを追加し、「読み取り、書き込み」の権利を設定します。

  2. ［トラップ］タブ …… トラップ送信先を定義します。通常は、MGREQ.INIに定義されたホスト名と同じにします。

  3. Magic xpaのインストールを行うと、SNMP拡張モジュール（MGsnmp.dll ファイル）がルートにインストールされます。

  4. NMSへの管理情報ベース（MIB)ファイルをコピーします。Magic xpaは2つのMIBファイル（Magic.mibとMagic_trap.mib）を提供します。このファイルは、Supportサブディレクトリにコピーされています。MIBファイルは、インストールされるNMSバージョンによってコンパイルされます。

  5. MIBファイルが通信するのを可能にするために、以下のキーをレジストリに追加してください：

[HKEY_LOCAL_MACHINE\SOFTWARE\MAGIC\SNMP\ExtensionAgents\CurrentVersion]

"Pathname"="mgsnmp.dll"

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ExtensionAgents]

"MAGICSNMP"="SOFTWARE\\MAGIC\\SNMP\\ExtensionAgents\\CurrentVersion"

  6. Mgreq.iniとMgrb.ini でSNMP関連の設定を行います。そして、リクエスタとMRBがトラップメッセージを送信できるようにします。

  7. 必要に応じて［動作環境］の［SNMP データベース接続しきい値］を設定してください

関連トピック：

サポートされるSNMPエージェント

SNMP トラップ

NMS からアプリケーションサーバ情報を参照

NMS からアプリケーションを制御

サポートされるSNMPエージェント


SNMPサポート サポートするSNMPエージェント

ホーム > リファレンスガイド > SNMPサポート > サポートされるSNMPエージェント

サポートされるSNMPエージェント

サポートされるSNMPエージェントには以下のものがあります。

  • Windows …… Microsoft SNMP サービス

  • Linux …… Net-SNMP エージェント

  • iSeries …… ネイティブ SNMP エージェント

SNMP サービスのプロパティを以下のように指定します。

セキュリティ

  • 受け付けるコミュニティ名 …… 「public」の権利を「READ WRITE」（または「読み取り、書き込み」）に設定します。

トラップ

  • コミュニティ名 …… public

  • トラップ送信先 …… 送信先のホスト名かIP アドレス


SNMP Traps

ホーム > リファレンスガイド > SNMPサポート > SNMP トラップ

SNMP トラップ

MagicエンジンやMRB、リクエスタは、SNMPモニター（NMS)にメッセージを送信することができます。これらは、プロセスに関するメッセージで、アプリケーションに関するものではありません。アプリケーションのメッセージは、Magic xpaのアクティビティログに送られます。エラーは、さまざまな個別のログに送られます。これは、エラーとトラップがログとNMSの双方で確認できることを意味します。

アプリケーションサーバから送られる非アプリケーション用トラップ

  • Magic xpaとゲートウェイのクラッシュ／致命的エラー

  • ライセンス制限による終了

  • 指定したDBMSに接続を確立することができない場合

  • データベース接続のしきい値に到達した場合

注意：

SNMP トラップが送信できない場合、エラーはアクティビティログにのみ記録されます。

MRBから送られる非アプリケーション用トラップ

  • アプリケーションサーバが停止したり、起動した場合（アプリケーションサーバのアドレス）

  • アプリケーションサーバが、MRB（トラップには、アプリケーションサーバのアドレスが含まれます）との接続を中止した場合

  • （自動的に再起動された)MRBがアボートした場合

  • リクエストがタイムアウトの場合

  • 以下のしきい値の制限に到達した場合：

    • 平均的待ち時間
    • 平均処理時間

注意：

SNMP トラップが送信できない場合、エラーはアクティビティログにのみ記録されます。

リクエスタから非アプリケーション用トラップ

リクエスタのステータスコード（例：-105）は、NMSに送信されます。

注意：

SNMP トラップが送信できない場合、エラーはアクティビティログにのみ記録されます。


SNMPサポート サーバ制御

ホーム > リファレンスガイド > SNMPサポート > NMSからアプリケーションを制御

NMSからアプリケーションを制御

NMSのSetオペレーションによってMRBの情報を設定したり、Magicエンジンを制御したりすることができます。Setオペレーションのパラメータとして、[private.enterprises.magic.manage]以下のMIB オブジェクトIDを指定します。

具体的な実行方法は、使用するNMSによって異なります。

例：IBM Tivoli NetView の場合は、MIBブラウザよりMIBオブジェクトIDを指定してから、[MIBインスタンス]と[新規値]を指定して、[設定]ボタンをクリックします。

制御内容

MIB ノード

Magicエンジンの停止

  • Host/Port

  • 数値（シャットダウン時間：秒数）

1つのパラメータだけが有効なNMSの場合は、次の構文で指定します：Host/port,T（Tは、正規のシャットダウンを意味します)

[shutdownEntServerRequest]
shutdownEntServer
graceful

Magicエンジンの起動

  • [MRB_EXECUTABLE_LIST]に登録されたキーワード

  • 起動時のパラメータ

1つのパラメータだけが有効なNMSの場合は、次の構文で指定します：background,-LoadMonitor

[startEntServerRequest]
exeEntryEntServer

startupParameters

エンジンの優先順位を指定

  • サーバアドレス

  • 優先順位（1～5）

1つのパラメータだけが有効なNMSの場合は、次の構文で指定します：host/port,priority

[priorityEntServerRequest]
priorityEntServer
priority

指定したエンジンの最大スレッドカウンタをリセット

  • サーバアドレス

[resetPeakThreadCount]
resetEntServerThreadCount

指定したエンジンの最大コンテキストカウンタをリセット

  • サーバアドレス

[resetPeakContextCount]
resetEntServerPeakContextCount

送信リクエスト数をリセット

  • サーバアドレス

[resetNumRequestServed]
resetEntServerNumRequest Served

実行エラー数のリセット

  • サーバアドレス

[resetNumExecutionError]
resetEntServerNumExecuti onError

全てのカウンタ値のリセット

  • サーバアドレス

[resetAllCounters]
resetEntServerAllCounters

ホストやポートのパラメータの値がアスタリスク (*) の時、Setコマンドは、実行中の全てのアプリケーションサーバに影響します。

注意：

アプリケーションサーバの読み込みを実装するには、mgrb.iniの［APPLICATIONS_LIST］に実行するアプリケーションを定義しておく必要があります。アプリケーションを起動する際のコマンドラインパラメータはオプションです。他のパラメータをNMSで追加することもできます。


SNMPサポート サーバ情報取得

ホーム > リファレンスガイド > SNMPサポート > NMS からアプリケーションサーバ情報を参照

NMS からアプリケーションサーバ情報を参照

NMS のGet オペレーションを利用することで、Magicアプリケーションサーバの情報を取得することができます。

Get オペレーションのパラメータとして、[private.enterprises.magic.query]以下のMIB オブジェクトID を指定します。

具体的な実行方法は、使用するNMS によって異なります。

関連トピック：

アプリケーションサーバ情報

リクエストキュー情報

統計情報


SNMPサポート サーバ情報取得 APサーバ情報

ホーム > リファレンスガイド > SNMPサポート > NMS からアプリケーションサーバ情報を参照 > アプリケーションサーバ情報

アプリケーションサーバ情報 (QUE=RT)

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サポート サーバ情報取得 リクエストキュー

ホーム > リファレンスガイド > SNMPサポート > NMS からアプリケーションサーバ情報を参照 > リクエストキュー情報

リクエストキュー情報 (QUE=QUE)

QueryQueTable内の以下のキーワードを指定することで、NMSからキューの情報を取得することができます。

# | 参照情報 | MIB ノード
1 | ユニークなID | entServerQueEntryIndex
2 | アプリケーション名 | application
3 | ユーザ名 | username
4 | リクエストの優先順位 | priorityNum
5 | リクエストID | requestId
6 | クライアントのホスト名 | clientHostName
7 | クライアントのプロセスID | clientProcessId
8 | リクエスト送信時間 | requestSubmittingTime


SNMPサポート サーバ情報取得 統計情報

ホーム > リファレンスガイド > SNMPサポート > NMS からアプリケーションサーバ情報を参照 > 統計情報

統計情報 (QUE=LOAD)

QueryLoad 内の以下のキーワードを指定することで、NMSから、MRBが管理している統計情報を取得できます。

# | 参照情報 | MIB ノード
1 | MRBのホストアドレス | brokerHost
2 | MRBのポート番号 | brokerPort
3 | 平均待ち時間 | averageWaitTime
4 | MRBに送ったリクエストの総数 | totalRequestsNumber
5 | ペンディングリクエストの総数 | pendingRequestsNumber
6 | 処理中のリクエストの総数 | inProgressRequestsNumber
7 | 終了したリクエストの総数 | completedRequestsNumber
8 | 失敗したリクエストの総数 | failedRequestsNumber


マルチユーザ環境

マルチユーザアプリケーションを開発する場合、データの共有の方法や範囲が問題になります。つまり、マルチユーザアプリケーションの場合、ワークステーションは多数存在することになりますが、そういったワースステーションでどのようにデータが共有されるようにするか、その処理について検討しなければなりません。

ここではマルチユーザ環境について焦点を当てており、同じデータを複数のユーザで共有する時の設定について記述しています。

関連トピック：

定義事項

並行性

テーブルモード

マルチユーザ環境の設定

コンテキスト


マルチユーザ環境 用語

ホーム > リファレンスガイド > マルチユーザ環境 > 用語

用語

以下は、マルチユーザについての説明を理解する上で必要な用語です。

  • 分離レベル　…… 分離レベルは、同じトランザクションを同時に使用する間に何が発生するかを定義します。この設定をはデータベース上でのみ変更できます。設定できる分離レベルは使用するDBMSによって異なります。

  • ロック　…… ロックは、データを完全に保存するために使用されます。ユーザがデータを更新した時、何らかの通知が発生することで他のユーザが更新できなくなります。他のユーザはこのデータが現在更新中であることを示す通知を受け取ります。この通知をロックと呼びます。
    ロックが発行されない場合、更新情報が失われてしまします。もし、各ユーザのトランザクションが他のユーザについて知らない状態にいると、最終的な更新処理によって、他のユーザの更新内容が上書きされてしまいます。

  • プロセス　…… プロセスとは、コンピュータ上で実行中のプログラムのインスタンスを意味します。タスクのように、プロセスが処理を記録できるようにデータの特定のセットが関連付けられて実行しているプログラムです。複数のユーザによって共有されるアプリケーションは、一般的に、各ユーザごとに実行できるステージ上で１つのプロセスを持っています。

  • トランザクション　…… トランザクションとは、データベースでデータ操作のステップの１つです。これは、データベースが実際に更新される前に完全に終わらせなければなりません。もし、この処理に失敗した場合全ての変更内容は取り消されます（これをロールバックといいます。）。つまり、トランザクションとして管理された処理は「すべて成功」か「すべて失敗」のいずれかであることが保証されます。例えば、資金移動システムをコンピュータで処理する場合、出金処理と入金処理は「どちらも成功」か「どちらも失敗」のどちらかであることが要求されます。


マルチユーザ環境 並行性

ホーム > リファレンスガイド > マルチユーザ環境 > 並行性

並行性

並行性とは、少なくとも２人のユーザが同じデータを同時にアクセスすることを言います。ここでは、どのようにしてユーザに対してデータの損失が発生することなく同じデータのアクセスを許可するかを説明します。次の例では、並行動作環境下でデータの完全性の重要性を説明しています。

２人のユーザは、「在庫マスタ」と呼ばれるデータベーステーブルをアクセスしているものとします。現在９４個の在庫があります。最初のユーザは、（１個の販売実績があったことで）在庫を９３に更新しました。２番目のユーザは（２個の販売実績があったことで）在庫を９２に更新しました。この場合３個販売されたことになりますが、データの完全性が保証されない場合、２個の販売実績のみが反映されてしまいます。

関連トピック：

ロック

更新レコードの識別

トランザクション

ロック方式

タスクのネストとロック

分離レベル

差分更新


マルチユーザ環境 並行性 ロック

ホーム > リファレンスガイド > マルチユーザ環境 > 並行性 > ロック

ロック

別のトランザクションと競合しているために、実行時に、トランザクションが、テーブルかレコードを開くことができない場合、Magic xpaはテーブルをオープンし続けようとします。アクセス待ちの間、Magic xpaはテーブルかレコードが現在ロックされることを示すメッセージを表示します。

他のユーザがEscキーを押下してタスクをアボートさせたり、トランザクション処理が終了した場合、Magic xpaはテーブルやレコード内容の取得しようとします。もし両方のユーザのトランザクションに矛盾がなければ、テーブルやレコードへのアクセス待の必要はありません。

Magic xpaには、ロック方式として２種類の方法があります。

  • 物理ロック …… DBMSによって定義された方法を使用して実行するデータベースロックです。例えば、Oracle で 「SELECT....FOR UPDATE」を使用する場合や、MS-SQL Serverで「SELECT...UPDLOCK」を使用する場合です。

  • 論理ロック …… タスクで位置や選択カラムを含んだ Where句を使用することでMagic xpa内でUPDATEコマンドを発行します。

  • Magicロック …… mglockを使用して実行される論理ロックです。

デフォルトは、ODBCおよびPervasive SQLを除くSQL系のGateway では物理ロックが使用されます。


マルチユーザ環境 並行性 更新レコード識別

ホーム > リファレンスガイド > マルチユーザ環境 > 並行性 > 更新レコードの識別

更新レコード識別

[メインソース特性]や[リンク特性]の[更新レコード識別]特性は、Magic xpaが行の更新を認識する方法を定義します。選択されたオプションは他のユーザが行のフィールドのどの部分をアクセスするかを定義します。

[更新レコード識別]特性のオプションは以下の通りです。

  • P=位置 …… これは一番低位のレベルです。Magic xpaは、 （Oracleの Row ID のような）ユニークな IDのみを使用してデータベース上のレコードを更新します。この場合は、最後に更新されたものは成功します。複数のユーザが同じ項目を更新するような場合は問題が発生することがあります。一般的に、ID が更新されるか（Oracleではありえませんが）行が削除された場合でなければ、Magic xpaは（更新データを失ったという結果かもしれませんが）この行が更新されたかどうかを認識することはありません。

  • U=位置と更新項目 …… Magic xpaは、ユニークなIDと更新されたカラムを使用してデータベースのレコードを更新します。例えば、もしユーザが「在庫数」の値を更新するためにレコードをアクセスした場合、Magic xpaは、ユニークなIDと「在庫数」の値を使用してレコードをフェッチします。この方法では、他のユーザが「在庫数」の値を更新しようとした場合、そのユーザは更新データを失ったことを示すメッセージを受け取ります。しかし、あるユーザが「在庫数」の値を更新して、他のユーザが「受注数」欄の値を更新した場合にはデータ損失は発生しません。

  • S=位置と選択項目 …… Magic xpaは、ユニークなIDとタスク内で選択された全てのカラムを使用してデータベースのレコードを更新します。言い換えると、同じタスクで受注数の値と「受注数」の値を[セレクト]コマンドで定義されていれば、Magic xpaは、ユニークな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は入力したタスクのデータビューをロックします（範囲内の全てのレコード）。いくつかの場合、これは意図的な動作です。もし、レコードのいくつかをロックしたい場合、それに応じた範囲の調整が必要です。
    この動作は、データの完全性とパフォーマンスに対して有効です。全てのレコードはデータビューの作成でフェッチした場合と同じようにロックされます。他のデータベースでは、データはレコードにパークした時のみロックされます。これは、各レコードに対してデータがロックされるためパフォーマンスに影響します。しかし他方では、並行性は最も高くなります。


マルチユーザ環境 並行性 ロック方式

ホーム > リファレンスガイド > マルチユーザ環境 > 並行性 > ロック方式

ロック方式

[ ロック方式]特性は、オンラインタスクとバッチタスクの両方で有効です。ロックがかけられるタイミングを指定します。ロックがかけられた場合、そのレコードには、ほかのユーザは（書き込み用の）アクセスができなくなります。

また、ロックがかけられると同時に、オリジナルのデータ（レコードが最初に読み取られた時の内容）とメモリに格納されているデータ（ロックの実行時に読み取られた内容）の比較が行われます。詳細については、「データ管理」を参照してください。

[ ロック方式]特性には、次のいずれかの値を指定することができます。

  • I=即時 …… この値を指定しておくと、レコードが読み込まれると同時に、そのレコードにロックがかけられます。したがって、レコードの内容の比較は不要です。ロックは、解除されるまで有効です。この設定は、データの完全性は高くなりますが並行性は低くなります。
    バッチタスクでは、この設定がデフォルトです。マルチユーザ環境のオンラインタスクでは、この設定にしておくと、レコードのロックが異常に継続することがあります。これは、長時間にわたって同じレコードに対して作業を行うユーザもいるためです。この値は、物理的トランザクションモードにのみ適用されます。

  • O=入力時 …… この値にしておくと、レコードが読み込まれた後、ユーザがレコードの更新を始めた時にロックがかけられます。オンラインタスクでは、この設定がデフォルトです。オンラインタスクのタスク特性でのデフォルト設定は、[トランザクションモード]は「遅延トランザクション」、[ロック方式]は、「なし」になります。
    バッチタスクでは、ユーザとの対話がないため、最初の項目処理（[レコード後]で実行されます）の際にロックが実行されます。または、ロックが必要な最初のタスクまたはプログラムがコールされた時に、ロックがかけられます。詳細は、「コール処理コマンド」を参照してください。
    この設定の場合、レコードの内容の比較が必要になります。この設定は、[更新レコードの確認]特性で行います。
    Magic xpaは、以下の場合にロックを発行します。

    • 入力項目を更新した時

    • [ロック]特性を 「Yes」 にしてタスクやプログラムをコールした時

    • [項目更新]処理コマンドの[更新取消可]特性を「No」 にしたタスクを実行した時

    • データ入力コマンドを実行した時

    • イベントプログラムがイベントのデータビューをロックした時

  • B=更新時 …… この設定では、データがデータベースに書き込まれる時にロックが実行されます。この場合、オンラインタスクでは、ユーザがレコードの入力を行っている時にはロックはかけられません。また、オンラインタスクとバッチタスクのいずれの場合も、[レコード後]の実行中にロックがかけられることはありません。この設定ではレコードの内容の比較が行われますが、比較で内容が異なった時には、データベースへのデータの書出は実行されず、その旨のメッセージが表示されます。
    なお、現在のタスクから子タスクが呼び出されている時には、その子タスクによって別のテーブルにデータが書き込まれることもあります。その一方、タスクのレコードがデータベースに書き込まれていない場合、データの整合性に問題が発生します。トランザクションの継続時間が短ければ並行性はあがりますが、データの完全性を犠牲にすることになります。
    したがって、この「更新時」は、データの書込先のデータベースでロック処理による負荷が大きい時、または、比較で内容が異なっても、タスクの構造上、データの整合性を維持できる時に限って指定するようにします。この値は、物理的トランザクションモードにのみ適用されます。

  • N=なし …… この設定では、レコードにロックはいっさいかけられません。
    そのため、この設定は注意して使用しなければなりません。つまり、現在、アクセスされているレコードに対しては別のユーザも変更が可能で、したがって、データの整合性に問題が起こります。

関連トピック：

データ管理


マルチユーザ環境 並行性 ネストとロック

ホーム > リファレンスガイド > マルチユーザ環境 > 並行性 > タスクのネストとロック

タスクのネストとロック

タスクまたはプログラムが呼び出されると、現在のレコードの処理が一時中断され、その後、そのタスクまたはプログラムが完了すると処理が再開されます。その間、呼び出されたタスクまたはプログラムからは、現在のレコードの項目全てに対してアクセスが可能になります。

プログラムの場合、項目へのアクセスはパラメータを介して行われます。一方、タスクの場合、アクセスは直接実行されます。タスク、プログラムでは、どちらの場合も、現在のレコードの項目に対して更新を行うことができます。その場合、更新時のロックの状態が問題になります。ユーザによるレコードの変更では、ロック方式として「入力時」が設定されている時には（ロック方式は[タスク特性]ダイアログで設定できます）、レコードの変更が始まると同時にロックがかけられます。

タスクやプログラムを使用して現在のレコードを変更する場合も、レコードをロックしておくこと重要です。つまり、子タスクやプログラムでは相応の処理が実行され、処理の完了に時間もかかります。このため、タスクやプログラムの実行中は、他のユーザには現在のレコードに対して変更ができないようにしておくことが必要になります。変更が可能な場合、他のユーザによってレコードが操作されているため、タスクやプログラムの終了時に変更をディスクへ書き込めないということも起こります。

以上のことから、呼び出したタスクやプログラムで現在のレコードを変更する時には、あらかじめレコードにロックを設定しておきます。ただし、タスクやプログラムでレコードの更新を行わない時には、ロックは必要ありません。

タスクやプログラムでレコードの更新を行う時には、[コール特性]の[ロック]特性を使用してレコードにロックをかけるかどうかを指定できます。指定できる値は、次の通りです。

  • No …… タスクやプログラムの実行時、現在のレコードにはロックはかけられません。この場合、タスクやプログラムでは、呼び出し側のタスクのレコードの更新は行わないようにします。ロックが設定されていない状態でレコードの更新を行うと、タスクやプログラムの終了時にユーザがレコードを変更していた場合、更新したレコードをディスクに書き込むことができず、そのため、更新した結果が失われることがあります。

  • Yes …… 呼び出されたタスクやプログラムが実行されると同時に、現在のレコードにロックがかけられます。したがって、呼び出されたタスクやプログラムで現在のレコードを更新する時には、「Yes」 を指定します。また、タスクやプログラムの処理で間接的にレコードが更新される時も、「Yes」 にしておきます。この値は、遅延および物理トランザクションモードに適用されます。


マルチユーザ環境 並行性 差分更新

ホーム > リファレンスガイド > マルチユーザ環境 > 並行性 > 差分更新

差分更新

SQLデータベースの場合、[項目特性]の[更新形式]特性で「差分更新」が選択できます。 差分更新は、更新データを失うという問題を小さくします。

以下の例は、[A=値更新]が設定された場合に発生する問題を表しています。

在庫の中の項目として94個になっており（「在庫」カラムの値からフェッチされた）、User-Aが「在庫」カラムの値を93に更新したとします（1個販売したため）。また、User-Bが、カラムの値を92に更新した（2個販売したため）とします。この場合、更新データの損失が発生します。

しかし、差分更新の場合は、以下のように更新されます。

  • 「在庫」の値-1 があるユーザによって更新されます。

  • 「在庫」の値-2 が別のユーザによって更新されます。

「在庫」の値の最終値は、-3の更新となりこの例では、91になります。このように更新データの損失は発生しません。


マルチユーザ環境 テーブルモード

ホーム > リファレンスガイド > マルチユーザ環境 > データソースモード

データソースモード

多数のワークステーションまたはインスタンス間のデータの共有では、同期処理が大切になります。この同期処理の設定により、データソースへのアクセスの制御と制限が可能になります。

データソースに対しプロセスで設定できるモードは以下の通りです。

  • R=読込 …… レコードの内容を読み取だけで、レコードの更新は行われません。

  • W=書出 …… レコードの内容を更新できます。この処理では、読込も可能です。なお、読込は「読込専用」、書込は「読込／書出」などということもあります。

これは、［アクセスモード］と［共有モード］を使用して制御できます。［メインソース］特性や［リンクテーブル］特性、または［データソース］リポジトリでこれらのモードを定義します。

  • アクセスモード …… 値は、読込／書出（デフォルト)の「書出」か、読込専用の「読込」のどちらかを選択できます。

  • 共有モード …… 値は、読込／書出（デフォルト)の「書出」か、読込専用の「読込」か、アクセスできない「なし」のどちらかを選択できます。

関連トピック：

マルチユーザ環境でのデータソースモードの設定

データソース共有の仕組み


マルチユーザ環境 テーブルモード アクセスモード

ホーム > リファレンスガイド > マルチユーザ環境 > データソースモード > アクセスモード

アクセスモード

Magic xpaでは、必要なアクセスモードをデータソースに読込（読込専用）か、書込（読込／書込）で設定することができます。。

これは、プロセスが読み込みを行うか、書き込みを行うためにデータにアクセスすることを意味します。これは、データソースが別のセッションでオープンすることができる場合に重要になります。そして、このセッションは更新（書込モード)でデータソースをオープンした場合に他のプロセスをの処理を防止する場合もあります。詳細は、［共有モード］特性を参照してください。


マルチユーザ環境 テーブルモード 共有モード

ホーム > リファレンスガイド > マルチユーザ環境 > データソースモード > 共有モード

共有モード

アクセスモードの指定に加えて、処理に対して「共有モード」を指定することもできます。この共有モードにより、テーブルに対して最終的にアクセスできるかどうかが決まります。

例えば、統計処理プログラムの場合、アクセスモードは「R=読込」、共有モードも「R=読込」にします。これで、テーブルに対して読込処理が実行されている時でも、同時にほかの処理により同じテーブルの内容の読込が可能になります。

アクセスモードと共有モードの設定は、システムマネージャに伝えられ、最終的に処理が実行されるかどうかが決定されます。

テーブルを排他モードで開きたい時には、共有モードを「N=なし」にしておきます。この設定の場合、そのテーブルに対する別のユーザからのアクセスは、いっさい禁止されます。


マルチユーザ環境 テーブルモード 設定

ホーム > リファレンスガイド > マルチユーザ環境 > データソースモード > マルチユーザ環境でのデータソースモードの設定

マルチユーザ環境でのデータソースの設定

テーブルロックは、[メインソース特性]や[リンク特性]の[共有]特性の設定を「N=なし」 または、「R=読込」 に設定した時に発行されます。「N=なし」の場合、Magic xpaはテーブルを排他的にロックします。排他ロックに対する動作は、使用するDBMSに依存します。多くのDBMSは、排他ロックをサポートしています。例えば、Oracle の場合は、テーブルは排他的にロックされますが他のユーザがそのテーブルを読み込むことができます。このため、[共有]特性の設定を「N=なし」 にすることは正しくありません。

開発者は、使用するDBMSの排他ロックについての制限をあらかじめ知っておく必要があります。

  • ロックはトランザクション内でのみ有効です。従って、テーブルロックと一緒にレコードレベルのトランザクションを使用することはできません。Magic xpaは、テーブル全体がロックされたように動作します。他のユーザは、同じテーブルの他のレコードをアクセスすることはできません。

  • 並行性が失われるため、テーブルロックは、できる限り回避するようにしなけばなりません。

  • 開発者によって意図的にテーブルレベルでのロックを発行させることができます。ただし、排他ロックをかけると上記のように並行性が失われることになります。

  • [アクセス]モードと[共有]モードの両方で「W=書込」に設定することで、Magic xpaはデータベースロックを発行します。もしトランザクションが遅延モードであれば、データベースロックは発行されず、Mglockファイルを使用するMagicロックが発行されます。Magicロックの場合は、トランザクションが終了した時だけロックが解除されます。

  • ブラウザタスク内では、物理トランザクションがないためデータベースロックやテーブルロックは発行されません。論理的な Magicロックのみが発行されます。

  • MS-SQL Server の場合、レコードロックのデフォルトは物理ロックです。Magic xpaは、データベースに対して SELECT...UPDLOCK のコマンドを送ります。（Oracleの SELECT...FOR UPDATEのようなものです。）旧バージョンのデフォルトは論理ロックでした。（通常の SELECTステートメントが全てのセレクトされたカラムに対して送られます。）デフォルトの違いについては、「SQLに関する考慮事項」の「MS-SQL Serverデータベースゲートウェイ」の説明を参照してください。

  • テーブルロック時にリトライする時間は、[動作環境／動作設定タブ／コマンド処理のリトライ間隔] (MAGIC.INIのRetryOperationTime) で制御されます。デフォルト値は600秒です。


マルチユーザ環境 テーブルモード テーブル共有

ホーム > リファレンスガイド > マルチユーザ環境 > データソースモード > データソース共有の仕組み

データソース共有の仕組み

次の表は、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 xpaの環境全体に対して有効です。このダイアログの設定欄の値は、MAGIC.INIファイルの[MAGIC_ENV]セクションに保存され、各欄を使用してMagic xpa環境のカスタマイズを行うことができます。[動作環境]ダイアログで設定欄を変更した場合、変更は全て自動的にMAGIC.INIファイルに記録されます。設定の値を変更した場合、設定欄によってはすぐに有効になることもありますし、Magic xpaを次回起動した時に有効になるものもあります。

Magic xpaの[動作環境]ダイアログの設定欄は、OSの環境変数とは関係ありません。また、Magic xpaは、実行時、コマンドラインパラメータ（オプション）を付加して起動するとこともでき、その場合、パラメータに指定した設定が[動作環境]ダイアログの対応する値に設定されます。この場合、コマンドラインパラメータの設定が、MAGIC.INI ファイルの設定より優先されます。一方、開発モードの場合、[動作環境]ダイアログの設定欄の値を変更すると、その変更は実行モードと同じくMAGIC.INIファイルに自動的に記録されますが、開発モードで[動作環境]ダイアログの設定を変更した場合、この設定内容が優先されます。

関連トピック：

［マルチユーザ］タブ


マルチユーザ環境 コンテキスト

ホーム > リファレンスガイド > マルチユーザ環境 > コンテキスト

コンテキスト

各コンテキストは独自の環境を持っています。次の内容は、共有されず、現在のコンテキストでのみ有効なオブジェクトです。

  • グローバル変数

  • メモリテーブル

  • 常駐されたMAGIC.INI ファイル

  • （遅延トランザクションの）キャッシュ


ユーティリティ

Magic xpaには多数のユーティリティが用意されています。こういったユーティリティを利用して、Magicアプリケーションの開発や修正、保守や移植などを容易に行うことができます。

Magic xpa Enterprise Studioの内部ユーティリティ

構文チェック

リポジトリ入出力

クロスリファレンス

定義取得

APG

コマンドラインユーティリティ

MGSTATIONS

MGUSRDMP

ODBC チェックドライバ

開発用ユーティリティ

文字列抽出ユーティリティ

ユーザ定義開発メニュー

関連トピック：

ユーティリティ （Mastering Magic xpa）


APG

プログラムは、[データ]リポジトリまたは[プログラム]リポジトリから作成することができます。

Magic xpaのAPG（Automatic Program Generator）を使用すると、自動的にプログラムを作成することができます。APGでは以下のようなプログラムを作成します。

  • データ入力／保守を行うオンラインプログラム

  • データベーステーブルのデータをテキストファイルに出力するバッチプログラム

  • テキストファイル読み込んで、データベーステーブルに書き込むバッチプログラム

  • 印刷プログラム

  • リッチクライアントプログラム

[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タブ

[APG]タブには以下の特性があります。

オプション

メインソース

カラム

インデックス

テキスト／HTMLファイル

テンプレートファイル名


APG プログラムリポジトリ APGタブ ソーステーブル

ホーム > リファレンスガイド > ユーティリティ > APG > APG（プログラムリポジトリから） > ［APG］タブ > メインソース

メインソース

[データ]リポジトリのテーブルを指定します。

[プログラム]リポジトリからAPGを実行した場合、この指定は必須です。

タスクツリーから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タブ

[APG]タブには以下の特性があります。

タグデータ

選択

処理モード

フォルダ

オプション

カラム

インデックス

プログラム名

テキスト／HTMLファイル

テンプレートファイル名

リンク


APG データリポジトリ APGタブ タグデータ

ホーム > リファレンスガイド > ユーティリティ > APG > APG（データリポジトリから） > APGタブ > タグデータ

タグデータ (デフォルト：N=なし)

[タグデータ]欄には、データソースの選択方法を指定します。以下の3つのオプションがあります。

  • A=全部 …… データベースが定義された全てのデータソースに対するプログラムを作成します。

  • S=選択 …… 選択されたデータソースに対するプログラムのみ作成します。このオプションを選択した場合、[データソースの選択]ダイアログが表示されます。作成したいデータソースにカーソルを移動し、スペースキーを押下することで[選択]カラムに「V」が表示され、選択状態になります。[選択]ボタンをクリックすることで[APG]ダイアログに戻ります。

  • N=なし …… このセッションのAPGは無効となり、プログラムは作成されません。


APG データリポジトリ APGタブ 選択

ホーム > リファレンスガイド > ユーティリティ > APG > APG（データリポジトリから） > APGタブ > 選択

選択

[選択]欄には、選択されたデータソースの数が表示されます。ここからズームすると[データソースの選択]ダイアログが表示され、データソースを選択することができます。


APG データリポジトリ APGタブ 処理モード

ホーム > リファレンスガイド > ユーティリティ > APG > APG（データリポジトリから） > APGタブ > 処理モード

処理モード (デフォルト: E=実行)

APGの処理モードは、実行モード（E＝実行）と作成モード（G＝作成）の２つがあります。

実行モードは、選択されたデータソースを基に一時的なプログラムを作成し、実行します。例えば、[オプション]特性で「B=照会」を指定して実行すると、エンジンは実行モードに切り替わり、データソースを表示したり、入力したりできます。ESCキーを押下すると実行モードが終了し、[データ]リポジトリに戻ります。[オプション]特性で「E=出力／I=入力」を指定した場合も同じようになります。この場合は、プログラムを実行する前に、実行確認のダイアログボックスが表示され、プログラム実行後には、再実行の確認ダイアログが表示されます。

作成モードで作成したプログラムは保存され、[プログラム]リポジトリに追加されます。作成モードでは、作成されたプログラムは自動的に実行されません。

注意：

［動作環境］ダイアログの［実行モード］が「バックグラウンド」の場合、デフォルトは、「G=作成」になります。

リッチクライアントプログラムは、［作成］オプションの場合のみ有効になります。


APG データリポジトリ APGタブ フォルダ

ホーム > リファレンスガイド > ユーティリティ > APG > APG（データリポジトリから） > APGタブ > フォルダ

フォルダ

作成されるプログラムに割り当てるフォルダを指定できます。このオプションは、[処理モード]欄が「G=作成」の場合のみ有効です。


APG プログラムリポジトリ APGタブ オプション

ホーム > リファレンスガイド > ユーティリティ > APG > APG（データリポジトリから） > APGタブ > オプション

オプション (デフォルト: B=照会)

[オプション]欄では、プログラムの機能を指定します。指定できる機能は以下の通りです。

照会

アプリケーションの開発時に、使用しているデータの内容を簡単に参照できると便利な場合があります。オンラインのデータ入力／保守プログラムを実行（実行モード）したり、作成（作成モード）します。参照画面では、位置付けや範囲指定を行う事で表示するレコードを絞り込むことができます。また、プルダウンメニューからレコードの追加や削除、編集などを行うことができます。
XMLデータソースを使用する場合は、このオプションのみ有効です。［データ］リポジトリの［データソース名］カラムが"http://" または "https://" から開始される場合は、［アクセス］特性が「読込」、［共有］特性が「読込」でプログラムが作成されます。

注意：

RIA Editionの場合、［データ］リポジトリ上での実行した場合で、［モード］が「E=実行」の場合のみ有効になります。

照会プログラムが実行される前に、メインプログラムのタスク前が実行されます。ユーザ作業時間表などの照会プログラムを実行しようとする間、タスク前に障害となる処理が定義されている場合、RunMode()関数を使用することで実行させないようにすることができます。

関連トピック：

データベーステーブルを参照するには

簡単な参照プログラムを作成するには

データソースを参照するには

データソースを参照する簡単なプログラムを作成するには

出力

現在、選択しているデータテーブルのデータを出力するプログラムを作成、実行します。データは、テキストファイルで出力されます。

関連トピック： データベーステーブルからテキストにデータを出力するには

入力

テキストファイルからデータを取り込むためのプログラムを作成、実行します。読み込むファイル構造は、「E=出力」で出力したファイル構造と同じにしなければなりません。
入出力オプションは、同じデータを出力し、入力する1対のプログラムを作成するように設計されています。

関連トピック： テキストファイルのデータをデータベーステーブルに入力するには

印刷

データテーブルの内容を印刷するプログラムを作成、実行します。このオプションは、[データ]リポジトリから実行した場合は、無効です。

リッチクライアント

リッチクライアントプログラムを作成します。


APG データリポジトリ APGタブ 選択カラム数

ホーム > リファレンスガイド > ユーティリティ > APG > APG（データリポジトリから） > APGタブ > カラム

カラム

ここには、現在選択しているデータソースのカラム数が表示されます。

ここからズームすると[カラム選択]テーブルが表示され、[カラム]欄で表示の順番を変更することができます。 「0」を入力することでプログラムに反映されなくなります。 （外部キーによる）リンクテーブルの順番は変更できません。

[プログラム]リポジトリからAPGを実行した場合、[カラム]欄は、データソースが定義されデータソースにカラムが定義されている場合のみ有効になります。

関連トピック：

データソースの内容をテキストファイルに出力したり、テキストファイルをデータソースに入力するには


APG データリポジトリ APGタブ インデックス

ホーム > リファレンスガイド > ユーティリティ > APG > APG（データリポジトリから） > APGタブ > インデックス

インデックス

ここには、データソースをオープンする際に使用するインデックスを指定します。

テーブルのレコードを表示させるためにAPGを実行したり、デフォルトでないインデックスを使用したい場合に、必要になります。

ここからズームして[インデックス一覧]から選択できます。


APG データリポジトリ APGタブ プログラム名

ホーム > リファレンスガイド > ユーティリティ > APG > APG（データリポジトリから） > APGタブ > プログラム名

プログラム名

[プログラム]リポジトリに定義されるプログラムの名前です。作成モードの場合のみ表示されます。


APG プログラムリポジトリ APGタブ テキスト/HTML

ホーム > リファレンスガイド > ユーティリティ > APG > APG（データリポジトリから） > APGタブ > テキスト／HTMLファイル

テキスト／HTMLファイル

データの入出力処理時にアクセスするテキストファイルの名前を指定します。

出力／入力／印刷

[オプション]で「E=出力」か「I=入力」を指定した場合、Magic xpaは自動的に出力／入力用のファイル名を設定します。この名前は、[データ]リポジトリの[データソース名]カラムの入力値を基に拡張子「.TXT」を付加した名前になります。

例えば、[データ]リポジトリの「顧客マスタ」というデータを基にプログラムを作成する場合、このデータのデータソース名が「Customer_dat」とするとテキストファイルの名前は「Customer_dat.TXT」になります。

テキストファイル名は、変更することができます。その際、OSのファイルの命名規約を基に指定してください。ファイル名に、パス名を付加することもできます。パス名が指定されない場合、Magic xpaの作業フォルダ上のファイルをアクセスします。

入力処理を実行する場合は、指定されたパスにファイルが存在していることを確認してください。

出力処理を実行する場合は、指定したパスが存在していることを確認してください。また、指定されたパスに同じファイル名が存在している場合、ファイルは上書きされます。


APG プログラムリポジトリ APGタブ テンプレートファイル

ホーム > リファレンスガイド > ユーティリティ > APG > APG（データリポジトリから） > APGタブ > テンプレートファイル名

テンプレートファイル名

ブラウザクライアント用のHTMLファイルの基になるテンプレートファイルの名前です。

注意

ブラウザクライアント機能は、利用できません。


APG データリポジトリ APGタブ リンク

ホーム > リファレンスガイド > ユーティリティ > APG > APG（データリポジトリから） > APGタブ > リンク

リンク

[リンク]欄でズームすると、[外部キーの選択]ダイアログが表示されます。

[リンク]欄は、外部キーを含んだテーブルを使用してプログラムを作成する場合のみ表示されます。


データソースタイプ テーブルソース 外部キーテーブル 外部キー選択テーブル

ホーム > リファレンスガイド > ユーティリティ > APG > APG（データリポジトリから） > APGタブ > 外部キー選択テーブル

外部キー選択テーブル

このテーブルから、作成されたプログラムで使用する外部キーを定義し、全ての外部キーを選択するかどうかを決めることができます。

選択された各外部キーに対して、作成されたプログラムに［リンク］コマンドが追加されます。メインソースや参照テーブルのどちらかがデフォルトデータベースに割り当てられている場合、［リンク照会］コマンドが定義されます。メインソースおよび参照テーブルの両方がRDBMSデータベースに割り当てられている場合、［リンク結合］コマンドが定義されます。


APG プログラムリポジトリ スタイルタブ

ホーム > リファレンスガイド > ユーティリティ > APG > APG（データリポジトリから） > ［スタイル］タブ

スタイルタブ

[スタイル]タブでは、参照プログラムがテーブルで表示するのか、１レコードずつ表示するかを定義することができます。

[スタイル]タブには以下の特性があります。

特性

内容

表示モード

ここには、画面上に表示されるレコードの形式を指定します。指定できる形式は以下の通りです。

  • L＝ライン ……（デフォルト） レコードの検索を行ったり、最小の情報を簡易表示させたい場合に通常使用されます。このモードでは、複数のレコードが１画面に表示されます。各行が１レコードに対応します。

  • S＝スクリーン …… 特定のレコードに関して詳細な情報を表示させたい場合に通常使用されます。このモードでは、1レコードだけが1画面に表示されます。

  • N=なし …… レコードは表示されません。このオプションは、[データ]リポジトリのヘッダ行にカーソルがパークしている状態でAPGを起動すると表示されます。

スタイル

ここでは、画面を２次元または３次元のどちらの形式で表示するかを指定します。

  • 3=立体

  • 2=平面

  • O=オリジナル（スクリーンモードのみ有効）

モデルを使用

作成するプログラムのフォームに対して、使用するフォームモデルを定義できます。

フォームサイズ

GUIフォームの表示を定義します。以下のオプションがあります。

  • M＝モデルに依存 …… フォームの幅と高さは指定したモデルによって定義されます。

  • C＝表示内容に依存 …… フォームの幅と高さは画面に表示される内容に依存します。[ライン]モードの場合は、フォームの高さは、「M＝モデルに依存」の時と同じになります。

  • D＝MDI内に納める …… フォームの幅と高さは画面に表示される内容に依存します。しかし、各寸法は、MDIよりは大きくなりません。 このオプションは、リッチクライアントプログラムでは表示されません。

注意：

表示内容の幅が、MDIより大きい場合は、MDIと同じになります。MDIより小さい場合は、表示内容に依存した幅になります。

ブラウザ形式の場合は無効です。

タイトル

ここでは、フォーム上にタイトルを表示するかどうかを指定します。


APG データリポジトリ 特定のテーブル

ホーム > リファレンスガイド > ユーティリティ > APG > APG（データリポジトリから） > 特定のテーブルでのAPG

特定のテーブルでのAPG

  1. 特定のデータベーステーブル用の1つのプログラムを実行または作成するには、[データ]リポジトリの該当するテーブルの行にカーソルを移動します。

  2. 次に、[オプション]メニューの[APG]（Ctrl+G）を実行します。テーブル定義のエラーを確認するために構文チェックユーティリティが実行されます。テーブルが適切な場合、[APG]ダイアログが開きます。

  3. ダイアログにはデフォルト値が設定されていますので、このままAPGを実行することができます。

  4. [処理モード]で「E=実行」にしてAPGを実行した場合、プログラムの作成および実行は行われますが、[プログラム]リポジトリには保存されません。[オプション]で「E=出力」または「I=入力」を指定した場合は、バッチプログラムが実行されます。この場合、[確認]ダイアログが表示されます。実行が終了すると、再び[確認]ダイアログが表示され処理を繰り返し実行することができます。


APG フォーム作成

ホーム > リファレンスガイド > ユーティリティ > APG > フォーム作成

フォーム作成

APGを使用することで、プログラムのフォームのみを作成することもできます。

[フォーム]エディタから [オプション]メニューの[フォーム自動作成]（Ctrl+G）を実行すると[フォーム作成]ダイアログが表示されます。

タスクに定義されている項目を基にフォームを自動作成します。このダイアログには以下の設定欄があります。

項目

内容

インタフェースタイプ

フォームの[インタフェースタイプ]を指定します。以下の2つが指定できます。

クラスが｢0｣の場合

  • G=GUI表示形式

  • C=リッチクライアント表示形式

クラスが｢1｣以上の場合場合

  • G=GUI出力形式

  • T=テキスト形式

表示モード

プログラムのオンライン画面へのレコードの表示形式です。[L=ライン]と[S=スクリーン]の2つのオプションがあります。

  • L=ライン …… レコードが行として表示されます。各行は1レコードに相当します。画面ごとに多数の行が表示されます。

  • S=スクリーン …… 画面ごとに1つのレコードが表示されます。

スタイル

[スクリーン]モードの場合、次のオプションを選択することができます。

  • 3=立体

  • 2=平面

  • O=オリジナル

[ライン]モードの場合、次のオプションを選択することができます。

  • 3=立体

  • 2=平面

注意：

リッチクライント表示形式の場合は無効です。

モデルを使用

既存のモデルを割り当てることができます。

フォームサイズ

GUIフォームの表示を定義します。以下のオプションがあります。

  • M＝モデルに依存 …… フォームの幅と高さは指定したモデルによって定義されます。

  • C＝表示内容に依存 …… フォームの幅と高さは画面に表示される内容に依存します。[ライン]モードの場合は、フォームの高さは、「M＝モデルに依存」の時と同じになります。

  • D＝MDI内に納める …… フォームの幅と高さは画面に表示される内容に依存します。しかし、各寸法は、MDIよりは大きくなりません。 このオプションは、リッチクライアントプログラムでは表示されません。

注意：

表示内容の幅が、MDIより大きい場合は、MDIと同じになります。MDIより小さい場合は、表示内容に依存した幅になります。

タイトル

ここでは、フォーム上にタイトルを表示するかどうかを指定します。

HTMLファイル名

ブラウザフォームの場合、HTMLファイルを指定します。

テンプレートファイル名

作成するHTMLファイルの元になるテンプレートファイルの名前を指定します。

関連トピック：

デフォルトのフォームレイアウトを自動的に作成するには


構文チェック

ホーム > リファレンスガイド > ユーティリティ > 構文チェック

構文チェックユーティリティ

言語で開発したプログラムを実行する場合、事前に構文が正しいかどうかを確認する必要があります。

Magic xpaは、プログラムを実行する前にコンパイルする必要がないため、構文チェックは任意になりますが、プログラムにエラー要因が含まれている場合は、正しく動作しません。

Magic xpaのプログラムチェックにかかる時間は、数秒ほどです。構文チェックが終了すると、（もし存在すれば）エラー一覧が表示されます。一覧上のエラーをクリックすると、該当箇所に移動することができます。

このユーティリティは、モデル、データソース、プログラム、ヘルプ、メニューの文法についてのエラーをチェックします。

開発者が迅速に開発を進めるために、定期的に構文チェックやプログラムのロジックをチェックしてください。

もし、エラーが内在したプログラムを実行すると、予期できない動作を引き起こし、場合によってはデータを失うことがありますので、作成後には、常にプログラムチェックを行うようにしてください。

構文チェックは、F8を押下するか[オプション]メニューで[構文チェック]を選択することで実行されます。

また、リポジトリのヘッダ行にカーソルを置き、Alt+F8をクリックすることで、プログラムやデータのリポジトリ全体をチェックすることができます。新規アプリケーションを配布する前にプログラム全体をチェックすることは、アプリケーションの品質を保証する上で有効な手段です。

［動作環境］ダイアログの［未使用の式に対するチェック処理］を指定することで、構文チェックで使用していない式が見つかった場合の動作を指定することができます。

関連トピック：

チェック結果表示

構文チェック処理

SpecialProgXMLSizeWarning

使用していない式を検索するには

使用していないすべての式を削除するには

プログラムの構文チェックを行うには

データソースの構造を検証するには


構文チェック 結果

ホーム > リファレンスガイド > ユーティリティ > 構文チェック > チェック結果表示

チェック結果表示

構文チェックの結果は、[チェック結果]ウィンドウに表示されます。

この後、これらの結果表示に対応した処理を行う必要があります。その際、以下の2つの基本的な方法があります。

  • ［チェック結果］ウィンドウに表示されている各メッセージをクリックしてください。

  • メッセージ上でCtrl+F8を押下すると、次のメッセージに移動します。この方法を使用するためには、［動作環境］の［チェック項目の自動的位置付け］を「Yes」に設定する必要があります。

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

チェック結果はツリー表示され、結果表示グループを選択すると、最初のレベルのツリーが表示されます。構文チェックの結果は、以下のように表示されます。

  • タイプ …… メッセージタイプ（エラー、警告、推奨）によって区分けされます。メッセージは、発見された順に表示されます。

  • オブジェクト …… Magic xpaのオブジェクト（モデル、テーブル、プログラム、サブタスク、ヘルプ、メニュー）によって区分けされます。メッセージは、発見された順に表示されます。

  • オブジェクトとタイプ …… Magic xpaのオブジェクトと、メッセージタイプの両方によって区分けされます。

チェック結果の表示については、「メッセージのグループ化」を参照してください。

［動作環境］ダイアログの［チェック結果の出力ファイル］を指定することで、チェック結果を保存することができます。

関連トピック：

チェック結果を使用するには


構文チェック 処理

ホーム > リファレンスガイド > ユーティリティ > 構文チェック > 構文チェック処理

構文チェック処理

構文チェックユーティリティを実行すると、メッセージボックスが表示されます。

チェック処理の終了前にキャンセルされた場合、チェック結果 ウィンドウは、チェックユーティリティが中止された時点でのチェック内容を表示します。

構文チェック処理が終了すると、以下のようなメッセージのうちの 1 つが表示されます。

エラーまたは警告 レベル :

構文チェックが終了しました - チェック結果ペインを確認してください.

推奨または 未使用オブジェクト レベル :

プログラムは正常です.：チェック結果ペインを参照してください.

不正な構文が見つからなかった:

プログラムは正常です.

注意：

[動作環境]の[チェック項目の自動位置付]の指定が「No」の場合、最初のチェック項目をハイライト表示せず位置付けも行いません。

関連トピック：

未使用オブジェクト

チェック項目の自動位置付け


構文チェック 処理 未使用オブジェクト

ホーム > リファレンスガイド > ユーティリティ > 構文チェック > 構文チェック処理 > 未使用オブジェクト

未使用オブジェクト

構文チェックユーティリティが、使用していないオブジェクトを見つけた場合、次のコマンドのうちの 1 つを選択するよう要求を出します。

  • 削除 …… 現在のオブジェクトを削除します。

  • 全て削除 …… 現在のオブジェクトと、同一オブジェクト内の全ての未使用オブジェクトを削除します。

  • スキップ …… 現在のオブジェクトを保持します。

  • 全てスキップ …… 現在のオブジェクトと、全ての未使用オブジェクトをそのまま残します。

未使用オブジェクトに対するメッセージは、[チェック結果]ウィンドウに表示されます。


リポジトリ入出力

Magic xpaのリポジトリ入出力ユーティリティを使用するこことで、プロジェクトのオブジェクトを外部に出力したり、または入力したりできます。

出力または入力を行いたい場合、[ファイル／リポジトリ入出力]（Ctrl+Shift+E）を選択し、[リポジトリ入出力]ダイアログを開きます。

このユーティリティには、以下の機能があります。

  • 移植 …… 別のMagicプロジェクトに移植するために、プロジェクトのオブジェクトを出力することができます。

  • プロジェクトの再構築 …… プロジェクトファイルを整理するために、出力し、新規プロジェクトに入力することができます。

入力ユーティリティでは、出力ユーティリティで出力されたオブジェクトを取り込むことができます。入力されたオブジェクトは所定のリポジトリに追加されます。例えば「顧客ファイル」という名前のデータソースを取り込むと、そのデータソースが現在のプロジェクトの[データ]リポジトリの最後に追加されます。また、「顧客一覧印刷」という名前のプログラムを取り込むと、そのプログラムが[プログラム]リポジトリに追加されます。

各オブジェクトがフォルダ情報を含めて出力されている場合、同じ名前のフォルダの最後にされます。フォルダが存在しない場合は、新たにフォルダを追加します。

出力/入力を組み合わせることで、プロジェクト内のオブジェクトの一部を他のプロジェクトにコピーすることができます。これにより、オブジェクトの再利用が可能となります。

[リポジトリ入出力]ダイアログには以下のような設定欄があります。ユーザが入力した値は、その前の入力項目の内容と照合され、正しくない場合はエラーメッセージを表示します。

項目

説明

処理

実行する処理を指定します。処理としては、「E＝出力」、「I＝入力」のいずれかが指定できます。

  • E＝出力 …… プロジェクトのオブジェクトを出力します。

  • I＝入力 …… Magic xpaで作成されたプロジェクトを入力する場合に指定します。

注意：

  • "CALL-MODAL が解読不可能な文字"　である旨のエラーが出た場合は、出力ファイルからこの文字を削除してください。

  • Magic eDeveloper V9Plus 以前のアプリケーションのリポジトリ出力ファイルは入力できません。

タイプ

出力を行う時に使用します。ここには、出力するプロジェクトのオブジェクトを指定します。

プロジェクトのオブジェクトであれば、どのオブジェクトでも指定できます。この欄をクリックするとコンボボックスが開きますので、ここでオブジェクトを選択します。コンボボックスには、次のようなオプションが表示されます。

  • E=プロジェクト …… プロジェクト全体を出力します。

  • O=モデル …… [モデル]リポジトリを出力します。

  • S=データソース …… [データ]リポジトリを出力します。

  • P=プログラム …… [プログラム]リポジトリを出力します。

  • H=ヘルプ …… [ヘルプ]リポジトリを出力します。

  • R=権利 …… [権利]リポジトリを出力します。

  • M=メニュー …… [メニュー]リポジトリを出力します。

  • C=コンポーネント …… [コンポーネント]リポジトリを出力します。.NETエイリアスは、プロジェクト全体を出力する場合のみ出力されます。コンポーネントのみを出力する場合は、.NETコンポーネントエイリアスは出力されません。

  • T=アプリケーション特性 …… [アプリケーション特性]データを出力します。

注意：

オブジェクトは、相互に参照関係にあるため、全て取り込まなければなりません。また、オブジェクトの取り込みは、1回のセッションで行うようにしてください。これで、リポジトリとリポジトリ、またはリポジトリ内の参照関係が維持されます。

例えば、[プログラム]リポジトリを何回かに分けて入力すると、最初の入力で取り込まれたプログラムの間でだけ参照関係が維持されます。また、既存のプロジェクトにプログラムを取り込むと、内部の参照関係が崩れることがあります。

モデルの出力

「E＝出力」操作を行う場合、[リポジトリタイプ]が「モデル」や「データソース」、「プログラム」、「ヘルプ」の時、[リポジトリ入出力]ダイアログに「モデルの出力」チェックボックスが表示されます。

ここをチェックすることで、プロジェクトのオブジェクトモデルが出力されるようになります。チェックしない場合にはモデル情報は出力されないため、リポジトリ入力を行うプロジェクトのモデル情報か、またはデフォルトモデルが利用されるようになります。ただし項目モデルについては、入力先に対応するモデルが存在していないと書式が未定義状態になり、プロジェクトが正しく動作しなくなりますので注意してください。

フォルダ情報を入力

このチェックボックスをチェック状態にすることによりフォルダ情報が入力されます。フォルダがすでに存在している場合、既存のフォルダの最後に追加されます。フォルダが存在していない場合は追加されます。

チェックを外すとフォルダ情報は入力されません。

フォルダ

フォルダが定義されたリポジトリの出力時に有効になります。

ここでは、リポジトリに登録されているフォルダ名を選択することができます。フォルダを選択すると、フォルダ内のオブジェクトのみ出力されます。選択しない場合は、全てのオブジェクトが出力対象となります。

リポジトリの出力時は、フォルダ情報を含めて出力されます。

開始/終了番号

モデル、データソース、プログラム、ヘルプを出力する場合、このパラメータを使用して、出力の範囲を指定することができます。

例えば、[データ]リポジトリのデータベーステーブルのうち、最初の3つのデータソース（[データ]リポジトリの最初の3行のテーブル）を出力したい場合、[開始番号]欄を「1」、[終了番号]欄を「3」とします。

[開始番号]または[終了番号]のどちらの欄も、ズームすると[テーブル一覧]、[プログラム一覧]、[ヘルプ一覧]が表示されます。どの一覧が表示されるかは、[リポジトリタイプ]欄の設定によります。

ファイル名

入出力処理で使用されるファイルの名前を指定します。

入力時のエラーメッセージ

Magic xpaはリポジトリ入力処理に失敗した場合、エラーメッセージが表示されます。

このメッセージに表示される行番号から、入力ファイルの中のエラー箇所を特定することができます。

関連トピック：

バージョン管理

SpecialRelativeImport

別のプロジェクトにオブジェクトを転送するには

プロジェクトをバックアップするには

モデルを含めてプログラムやデータソースを出力するには


クロスリファレンス

Magic xpaのクロスリファレンスユーティリティを使用することで、モデル、カラム、プログラムなどがどこで使用されているかという情報を取得することができます。例えば、特定のカラム、インデックス、またはデータソースを参照するプログラムの一覧を表示させることができます。

このユーティリティは、特定のオブジェクトを変更することによる影響を確認する必要がある場合に使用できます。例えば、特定のデータソースをリポジトリから削除する場合、このデータソースを使用しているオブジェクト（プログラムなど）が存在していないことを事前に検索することができます。

このユーティリティを使用してプログラムを検索したい場合、PROGリテラルを使用すると、プログラムを参照している式を検索することもできます。

注意：

クロスリファレンス・ユーティリティは、継承が解除された特性でのみ指定されたオブジェクトを検索します。検索されたオブジェクトに対する参照内容を継承する特性は、検索結果に含まれません。

関連トピック：

オブジェクトの検索を実行する場所

検索結果

クロスリファレンス - インタフェース

オブジェクトがどこで使用されているかを確認するには

式がどこで使用されているかを調べるには


クロスリファレンス 検索を実行する場所

ホーム > リファレンスガイド > ユーティリティ > クロスリファレンス > オブジェクトの検索を実行する場所

オブジェクトの検索を実行する場所

次のテーブルは、クロスリファレンスが起動する場所によってどのオブジェクトが検索対象になるかを示したものです。

検索対象となるオブジェクト | 実行される場所
データソース | プログラム チョイスコントロール チョイスコントロールモデル 外部キー
カラム | プログラム インデックス 外部キー チョイスコントロール チョイスコントロールモデル
インデックス | プログラム チョイスコントロール チョイスコントロールモデル 外部キー
プログラム | プログラム モデル/コントロールモデル データソース/カラム メニュー コールタスク/プログラム処理コマンド 変数項目 コントロール特性 サブフォーム
ヘルプ画面 | データソース/カラム プログラム/実、変数項目 フォーム特性 コントロール メニュー 項目モデル コントロールモデル フォームモデル
自動ヘルプ | データソース/カラム プログラム/実、変数項目 コントロール メニュー 項目モデル コントロールモデル
ツールチップ | データソース/カラム プログラム/実、変数項目 フォーム特性 コントロール 項目モデル コントロールモデル
権利 | モデル データソース プログラム/タスクの権利リテラル ヘルプ メニュー アプリケーションイベント コンポーネント
メニュー | モデル プログラム アプリケーション特性
項目モデル | データソース/カラム プログラム/タスク (変数,パラメータ)
コントロールモデル | データソース/カラム プログラム/タスク (変数,パラメータ) コントロール 項目モデル
タスクモデル | プログラム
ヘルプモデル | ヘルプ
フォームモデル | フォーム
コンポーネント | コンポーネントは全体をオブジェクトとしたり、コンポーネントの単一のアイテムとしてリファレンス対象となります。
メインプログラムのイベント | プログラム
タスクイベント | プログラムツリー

[編集]メニューから[クロスリファレンス]（Ctrl+F）を実行することで、Magic xpaのリポジトリの選択したオブジェクトから実行することができます。


クロスリファレンス 検索結果

ホーム > リファレンスガイド > ユーティリティ > クロスリファレンス > 検索結果

検索結果

クロスリファレンスの結果は、[ナビゲータ]ペインの[クロスリファレンス]セクションにリポジトリ名ごとに表示されます。クロスリファレンスの結果は、複数の結果が一緒に表示されます。

各オブジェクトは、以下の情報とともに表示されます。

  • リポジトリ名

  • エントリ名

  • （エントリ番号）

  • データソースの場合は、アクセスモードと共有モードを括弧内に表示します。（例：W W）

末端のノード（その下に別のノードが表示されていないもの）をクリックすると[ワークスペース]ペインの関連するリポジトリが表示され、選択した内容にパークします。

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

  • 検索結果を削除できます。

  • 検索結果から検索処理を再度実行させることができます。

  • 検索結果を印刷したりテキストファイルに出力することができます。

  • 検索が完了すると、自動的に[ナビゲータ]ペインの検索結果が開きます。結果はグレーで強調表示されます。

  • プロジェクトを閉じると、検索結果は、プロジェクトフォルダ内にCrossRef.XRFというファイル名でバイナリ形式で保存されます。

関連トピック：

オブジェクト内のテキストを検索/置換するには

検索結果を保存/印刷するには


定義取得

既存のデータベースを使用する場合、テーブルをMagic内で再定義し直すより、DBMSのデータ辞書に対応したテーブルの定義情報を読み込む方がよりよい方法です。これによってエラーが発生するリスクを減らし、開発作業をより迅速で簡単なものにします。

定義取得ユーティリティは、[オプション]メニューから[定義取得]をクリックするか F9 で実行されます。

定義取得ユーティリティには、[DBMS]タブと[XML]タブが含まれています。

DBMSテーブル

定義取得ユーティリティを使用することで、RDBMSのデータ辞書からMagic xpaの[データ]リポジトリにテーブル定義を直接読み込むことができます。1つまたは複数のテーブル定義をデータベースから読み込むこともできます。

ただし、このユーティリティでは、Magic xpaとRDBMSのデータ辞書間でテーブル定義のどちらか一方が変更されても、もう一方の定義が自動で変更されることはありません。このため、テーブル定義の同期化は手動で処理を行わなければなりません。

この機能は、既存のシステムで使用されているデータベースをMagic xpaで利用する場合、そのテーブル定義を、手動で[データ]リポジトリに定義する手間を省きます。これにより、エラー発生の可能性も低くなるため、作業を迅速に進めることができます。

注意：

[定義取得]オプションは、SQL系のゲートウェイでのみ機能します。

XMLデータソース

定義取得ユーティリティで、XMLスキーマ(XSD)の読み込みやXMLビューの定義を行うことができます。

[データ]リポジトリ上でパークした状態で、XMLスキーマに対するビューを定義することができます。

[データ]リポジトリのタイトル行にパークしている場合、このユーティリティはXMLスキーマに対する必要なビューを作成し、オプションでこのスキーマに基づくXMLドキュメントの読込/書込プログラムを作成します。この方法は、既存のビューを更新するためにスキーマを再読込します。

注意：

同じ構成でファイル名や位置が異なって設定されているスキーマファイルから定義取得されたデータソースを1つのプログラム内に定義させることはできません。 構成が同じ場合、同じ名前、同じパス上のスキーマファイルから定義取得するようにしてください。

定義取得の動作について

既存のテーブル定義を読み込む場合に、Magic xpaは各データベースカラムで最適なMagic xpaのデータ型を使用します。

サポートされていれば、Magic uniPaSは、特別なデータ型に対応する場合もあります。サポートしていないデータ型が定義されている場合は、定義取得は失敗します。

この機能は、使用するRDBMSによって機能が異なる場合があります。

関連トピック：

ビューの定義取得

XMLデータソースの定義取得

Datetimeデータの定義取得

浮動小数点


定義取得 DBMSタブ

ホーム > リファレンスガイド > ユーティリティ > 定義取得 > DBMSタブ

DBMSタブ

[定義取得]ダイアログの[DBMS]タブには、以下の設定欄があります。

設定欄

内容

データベース

定義情報を取得するデータベースを指定します。ここからズームして[データベース一覧]を開き、選択してください。

タグデータ

データソースの選択方法を指定します。以下の３つのオプションがあります。

  • A=全部 …… データベース内の全てのデータソースを読み込みます。

  • S=選択 …… 指定したデータソースのみを読み込みます。このオプションを選択すると、[データソース選択一覧]が表示されます。使用したいデータソースにカーソルを移動し、スペースバーを押下することでデータソースにタグ（チェックマーク）が設定され選択状態になります。チェックマークは、データソース名の隣に表示されます。[選択]ボタンをクリックすると[定義取得]ダイアログに戻ります。

  • N=なし(デフォルト) …… データソースは選択されません。

データソース

ここには、選択されたデータソースの数が表示されます。

関連トピック：

既存のデータベーステーブルにアクセスするには

データベースのビューからデータを取得するには


定義取得 XMLタブ

ホーム > リファレンスガイド > ユーティリティ > 定義取得 > 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ビュー)から構文解析された複合要素の数を限定する場合は、SpecialSchemaSizeLimitを使用してください。

関連トピック：

XML ビューを作成するには


定義取得 XML定義の再読込

ホーム > リファレンスガイド > ユーティリティ > 定義取得 > XMLタブ > XML定義の再読込

XMLビューの再読込

すでに定義されているXMLデータエントリ上で定義取得ユーティリティを実行すると、スキーマが再度読み込まれ、既存のデータエントリが更新されます。

[XMLビューの再読込]ダイアログで、[関連するビューの検索と再読込を行う]のチェックボックスの設定によって、更新されたスキーマをもとにする全てのXMLビューを更新するか、該当するXMLビューだけを更新するかを決めることができます。

デフォルトは、チェック状態になっています。


定義取得 ビュー

ホーム > リファレンスガイド > ユーティリティ > 定義取得 > ビューの定義取得

ビューの定義取得

SQLではまた、テーブルの定義取得と同じ方法でビューの定義情報を取得できます。SQLのビューは、クエリによって定義される仮想テーブルです。SQLビューはテーブルと同じようにアクセスできますが、格納されている行は物理行ではありません。SQLビューへは照会モードでアクセスできます。また、RDBMSによっては、RDBMSのテーブルと同じように行の更新ができるものもあります。

ビューには、インデックスはありません。しかし、ビューを取得する時は仮想のユニークなインデックスが必要です。これは、Magic xpaは処理を行う上でテーブルの位置情報が必要なためです。

ROWIDを持つOracleでは、ビューが1つのテーブルに基づいている場合、そのROWIDが取得され、このROWIDが位置情報になります。ROWIDがないRDBMSの場合は、仮想ユニークインデックスを定義しなければなりません。


データソース テーブルソース カラム 特性 Datetime 定義取得

ホーム > リファレンスガイド > ユーティリティ > 定義取得 > Datetimeデータの定義取得

Datetimeデータの定義取得

定義取得処理の間、最初のDatetimeフィールドが見つかると、Magic xpaは以下のようなポップアップウィンドウが表示されます。

SQLの Date-Time のカラムを Magic xpaの日付と時刻の項目の組み合わせに変換しますか？

「はい」を選択すると、以下のように動作します。

  • Magic xpaが、Datetimeフィールドを含むテーブルの定義を取得する際に、Magicエンジンは自動的に２つのカラム（日付と時間）を作成します。[Datetimeの一部]特性がそれに対応して設定されます。

  • 定義取得処理は、00-23:59の制約で時間値を取得します。

  • Magic xpaでの時間部分のカラム名を、_timeで連結された実際のフィールド名とします。


DDLMaker

Magic xpa DDLMaker は、Magic xpa で作成したBtrieve ファイルを、SQLテーブルとしてアクセスできるようにするためのユーティリティです。

旧バージョンのMagic製品において、BtrieveデータをSQLテーブルとして扱うためには、DDFユーティリティ(Magic eDeveloper V9Plusまで)、あるいはDDFMaker (Magic uniPaaS　V1Plus (Ver1.8SP1) まで)として提供されていたユーティリティを利用して行っていました。このユーティリティは、Magic開発版 (Studio)のテーブルリポジトリを読み込み、Pervasive.SQL のメタデータ (DDF)を作成します。Pervasive.SQLはこのDDFを使って、リレーショナルテーブルとしてファイルを認識していました。

これらのユーティリティはDDFを直接操作するものですが、Pervasive社の情報によると、DDFを直接操作すると、DDFの非公開データなどが作成されないため、正しいDDFの構造にならない可能性があり、現在のPervasive.SQLでは推奨されていません。代わりに、Pervasive社は、IN DICTIONARY 句を使ったCREATETABLE/INDEX 文により、メタデータを作成する方法を推奨しています。

このような背景から、新しいユーティリティとして、DDLMaker を提供することになりました。

注意：

  • 本ユーティリティは、Btrieve ファイルを SQLテーブルとしてアクセスするための補助ツールとして提供するものです。細心の注意を払って確認を行っておりますが、すべてのケースについて常に正しい結果を出力することを保証するものではありません。本ユーティリティを利用した結果については、MSJ/MSE社は一切の責任を負いません。

  • 本ユーティリティは出力としてDDL文を作成し、実際のBtrieveデータに対しては一切変更を行いません。開発者は、まず、作成されたDDL文を良く確認してから、Pervasive Control Center などで実行するようにしてください。

  • Btrieve から Pervasive.SQL への移行は、操作を誤ると、データ破損などの危険を伴う可能性がある作業です。移行を行う前に、Btrieveファイルのバックアップを取っておいてください。また、Btrieve ファイル構造をよく理解した上で慎重に行ってください。

  • Pervasive.SQL とBtrieve との基本仕様の違いにより、Btrieve ファイルからPervasive.SQLに移行できない場合があります。また、Magic xpa独自のデータ型では、Pervasive.SQL でBINARYデータとしてアクセスできても、本来のデータの意味を正しく認識できない場合もあります。

  • Btrieve ファイルの物理的構造と、CREATE TABLE での定義とが正しく対応していないと、定義と実際のデータ構造との乖離が起こり、正しくデータをアクセスできないとか、最悪、データ破損や動作の異常を引き起こす可能性があります。

Btrieve ファイルと、Pervasive PSQLテーブルとのデータ型の対応等に関する技術的詳細は、リファレンスヘルプの「Magic xpaで使用するデータベース→ Pervasive (SQL) データベース」 以下に詳説してありますので、本ユーティリティを利用する前に、必ず一読しておいてください。

詳細情報は、<Magic xpa Studioのインストールフォルダ>\Add_On\DDLMaker\DDLMakerGuide.pdf を参照してください。


MGSTATIONS

ネットワーク上の指定されたライセンスのライセンス数を確認するユーティリティです。 ライセンスサーバを使用している場合は使用できません。
構文： | MGSTATIONS.EXE<ライセンス名>, [<ライセンスファイル>]
パラメータ： | <ライセンス名> …… ライセンス名を表す文字列です。 <ライセンスファイル> …… ライセンスファイルとパス名です。
戻り値： | ライセンスファイルによって指定されたライセンスの使用状況が表示されます。
注意事項： | このユーティリティは、同一ネットワーク上で同じユーザ名、同じシリアル番号のライセンスを使用しているユーザ数をカウントするものです。 Magic xpaが実行されていないPC上で実行してください。そうでない場合は、正確にユーザ数が取得できません。
例： | MGSTATIONS MGCSTK1P “c:\Program Files\Magicxpa\Studio 2.x\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ファイルとして認識されません。


データベース ODBC チェックドライバ

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ

ODBC チェックドライバユーティリティ(MGCHCKDRV.EXE)

ODBC Check Driverユーティリティは、ODBCドライバに付属しています。このプログラムを実行するとODBCデータソースがテストされ、ドライバによって作成される関数の一覧が印刷されます。このテストによって、ODBCに対してMagicデータベースゲートウェイでそのドライバが使用できるかどうかがわかります。

Magic xpaのインストール時に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コマンドの例


データベース ODBC チェックドライバ 製品情報

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > ドライバとDBMS製品情報

ドライバとDBMS製品情報

このユーティリティは、選択されたデータソースに接続し、接続の割当てられたハンドルと関連付けられているドライバに関する一般情報を返す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で、データソース名に利用します。


データベース 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 =

NULL値の文字型カラムと非NULL値の文字型カラムとの結合に対して、データソースが処理する方法を示す文字列です。

16ビットのint型の値によって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_COMMIT_BEHAVIOR = SQL_CB_PRESERVEが定義されたドライバにのみ適用されます。

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

特定のデータベースで使用する名前を含む文字列です。ログイン名と異なってもかまいません。


データベース ODBC チェックドライバ SQL文

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > データソースでサポートされるSQL文

データソースでサポートされるSQL文

このユーティリティは、選択されたデータソースへの既存の接続を使用し、割当てられた接続のハンドルと関連付けられているデータソースでサポートされるSQL文の型に関する情報を返すSQLGetInfo関数を送信します。

同じ情報を取得するには、単にConnect/Full Connectを使用してデータソースと接続し、Connect/SQLGetInfoを選択して必要なfinfoTypeを指定します。結果は、結果ウィンドウのrgbInfoValueフィールドに返ります。

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の引用符で囲まれた識別子は大文字と小文字を区別せず、システムカタログに両方の文字で格納されます。


データベース 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ビットの整数値です。制限が指定されていない場合、または制限が不明の場合は、この値はゼロに設定されます。


データベース 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チェックドライバ 固有のキーワード

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 固有のキーワード

固有のキーワード

このユーティリティは、選択されたデータソースへの既存の接続を使用し、fInfoTypeフィールドに「SQL_KEYWORDS」を持つSQLGetInfo関数を送信します。

その結果、データソース固有のキーワード全てのカンマ区切りの一覧を含む文字列が返されます。この一覧には、ODBCに固有のキーワードや、データソースとODBCの両方で使用されるキーワードは含まれません。キーワードは予約語です。構文に基づいて、特定の場所でのみ使用することができます。

同じ情報を取得するには、単に、Connect\Full-Connectを使用してデータソースと接続し、fInfoTypeフィールドのSQL_KEYWORDSと一緒にConnect\SQL Getinfoを選択してください。結果ウィンドウの中のrgbInfoValueフィールドに結果が返ります。

SQL_KEYWORDS =

ALPHANUMERIC
AUTOINCREMENT
BINARY
BYTE
COUNTER
CURRENCY
DATABASE
DATABASENAME
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


データベース ODBC チェックドライバ 関数

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数

関数

このユーティリティは、選択されたデータソースへの既存の接続を使用し、Functionフィールドに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 xpaで必要かどうか（Required/Not Required）

注意：

関数がMagic xpaで必要であるにもかかわらず、データソースでサポートされていない場合、このデータソースを使用してMagic xpaおよび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

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLAllocConnect

SQLAllocConnect

接続ハンドルによって識別された環境内でハンドルにメモリを割当てます。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLAllocEnv

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLAllocEnv

SQLAllocEnv

環境ハンドルにメモリを割当て、アプリケーションによって使用されるODBC Call Level Interfaceを初期化します。アプリケーションは、ほかのODBC関数より先にSQLAllocEnvを呼び出す必要があります。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLAllocStmt

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLAllocStmt

SQLAllocStmt

構文ハンドルにメモリを割当て、その構文ハンドルを接続ハンドルによって指定された接続と関連付けます。アプリケーションは、SQL文を実行する前にSQLAllocStmtを呼び出す必要があります。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLBindCol

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLBindCol

SQLBindCol

結果セット内のカラムに以下のようなストレージとデータタイプを割当てます。

  • データのカラムの内容を受け取る保存バッファ

  • 保存バッファの長さ

  • フェッチ処理によって返されたデータ内のカラムの実際の長さを保存するストレージ

  • データタイプの変換

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLBindParameter

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLBindParameter

SQLBindParameter

SQL文内のパラメータマーカにバッファをバインドします。

注意：

この関数は、ODBC 1.0のSQLSetParam関数に代わるものです。

ドライバによるサポート： | あり
Magic xpaによる使用： | 不要


ODBCチェックドライバ 関数 SQLBrowseConnect

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLBrowseConnect

SQLBrowseConnect

データソースへの接続に必要な属性および属性値を反復して検出および列挙する方法をサポートします。SQLBrowseConnectへの各呼び出しによって、属性および属性値の連続するレベルが返されます。

全てのレベルが列挙されると、データソースへの接続が完了し、SQLBrowseConnectによって完全な接続文字列が返されます。SQL_SUCCESSまたはSQL_SUCCESS_WITH_INFOのリターンコードは、全ての接続情報が指定されており、現在、アプリケーションがデータソースに接続されていることを示します。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLCancel

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLCancel

SQLCancel

構文のハンドルの処理をキャンセルします。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLColAttributes

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLColAttributes

SQLColAttributes

結果セット内のカラムに関する記述子情報を取得します。この関数を使用してブックマークカラム（カラム0）に関する情報を返すことはできません。記述子情報は、文字列、32ビットの記述子依存の値、または整数値で返されます。

ドライバによるサポート： | あり
Magic xpaによる使用： | 不要


ODBCチェックドライバ 関数 SQLColumnPrivileges

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLColumnPrivileges

SQLColumnPrivileges

指定されたテーブルに関するカラムと、関連する特権の一覧を取得します。ドライバは、指定された文のハンドルの結果セットとして情報を返します。

ドライバによるサポート： | あり
Magic xpaによる使用： | 不要


ODBCチェックドライバ 関数 SQLColumns

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLColumns

SQLColumns

指定されたテーブル内のカラム名の一覧を取得します。ドライバは、指定された文のハンドルの結果セットとしてこの情報を返します。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLConnect

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLConnect

SQLConnect

ドライバを読み込み、データソースへの接続を確立します。接続ハンドルによって、状態、トランザクション状態、エラー情報など、接続に関するあらゆる情報のストレージが参照されます。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLDataSources

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLDataSources

SQLDataSources

データソース名を一覧表示します。この関数は、Driver Managerによってのみ実行されます。

ドライバによるサポート： | あり
Magic xpaによる使用： | 不要


ODBCチェックドライバ 関数 SQLDescribeCol

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLDescribeCol

SQLDescribeCol

結果セット内の1つのカラムに関する結果記述子カラムの名前、タイプ、有効桁数、小数点部桁数、およびNULL値の許容を取得します。この関数を使用してブックマークカラム（カラム0）に関する情報を返すことはできません。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLDescribeParam

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLDescribeParam

SQLDescribeParam

準備されたSQL文と関連付けられているパラメータマーカの説明を取得します。

ドライバによるサポート： | あり
Magic xpaによる使用： | 不要


ODBCチェックドライバ 関数 SQLDisconnect

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLDisconnect

SQLDisconnect

特定の接続ハンドルと関連付けられている接続を閉じます。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLDriverConnect

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLDriverConnect

SQLDriverConnect

SQLDriverConnectは、SQLConnectの代わりに使用します。SQLConnectの3つのパラメータより多くの接続情報を必要とするデータソース、全ての接続情報の入力をユーザに要求するダイアログボックス、ODBC.INIファイルまたはレジストリで定義されていないデータソースをサポートします。

SQLDriverConnectには、次のような接続オプションがあります。

  • データソース名、1つ以上のユーザID、1つ以上のパスワード、およびデータソースによって必要とされるその他の情報を含む接続文字列を使用して接続を確立する。

  • 部分的な接続文字列を使用して、または追加情報なしで接続を確立する。この場合、Driver Managerおよびドライバは、ユーザに接続情報の入力を要求することができる。

  • ODBC.INIファイルまたはレジストリで定義されていないデータソースへの接続を確立する。アプリケーションによって部分的な接続文字列が提供される場合、ドライバは、ユーザに接続情報の入力を要求できる。

接続が確立すると、SQLDriverConnectによって完全な接続文字列が返されます。アプリケーションは、それ以降の接続要求にこの文字列を使用できます。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLDrivers

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLDrivers

SQLDrivers

ドライバの説明とドライバ属性キーワードを一覧表示します。

この関数は、Driver Managerによってのみ実行されます。

ドライバによるサポート： | あり
Magic xpaによる使用： | 不要


ODBCチェックドライバ 関数 SQLError

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLError

SQLError

エラーや状態に関する情報を取得します。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLExecDirect

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLExecDirect

SQLExecDirect

文内にパラメータがある場合、パラメータマーカ変数の現在の値を使用して、準備可能な文を実行します。SQLExecDirectを使用すると、1回の実行で最も速くSQL文を実行することができます。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQL Execute

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQL Execute

SQL Execute

文内にパラメータマーカがある場合、パラメータマーカ変数の現在の値を使用して、準備された文を実行します。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLExtendedFetch

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLExtendedFetch

SQLExtendedFetch

次の方法で、SQLFetchの機能を拡張します。

  • バインドされた各カラムについて、配列の形式で行セットデータ（1つ以上の行）を返す。

  • スクロールタイプのパラメータの設定に基づいて、結果セットをスクロールする。

SQLExtendedFetchは、SQLSetStmtOptionとともに動作します。前方に一度に1行ずつ取り出す場合は、アプリケーションはSQLFetchを呼び出す必要があります。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLFetch

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLFetch

SQLFetch

結果セットからデータの行を取得します。ドライバによって、SQLBindColを使用して保存場所にバインドされた全てのカラムのデータが返されます。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLForeignKeys

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLForeignKeys

SQLForeignKeys

SQLForeignKeysは、以下の一覧を返すことができます。

  • 指定されたテーブルの外部キー（ほかのテーブルの主キーを参照する指定されたテーブル内のカラム）の一覧

  • 指定されたテーブルの主キーを参照するほかのテーブルの外部キーの一覧

ドライバは、指定された文のハンドルの結果セットとして各一覧を返します。

ドライバによるサポート： | あり
Magic xpaによる使用： | 不要


ODBCチェックドライバ 関数 SQLFreeConnect

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLFreeConnect

SQLFreeConnect

接続ハンドルを解放し、ハンドルと関連付けられている全てのメモリを解放します。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLFreeEnv

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLFreeEnv

SQLFreeEnv

環境ハンドルを解放し、環境ハンドルと関連付けられている全てのメモリを解放します。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLFreeStmt

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLFreeStmt

SQLFreeStmt

特定の文ハンドルと関連付けられている処理を停止し、その文ハンドルと関連する開いているカーソルを閉じ、保留中の結果を破棄します。さらに、オプションで、この文ハンドルに関連する全てのリソースを解放します。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLGetConnectOption

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLGetConnectOption

SQLGetConnectOption

接続オプションの現在の設定を取得します。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLGetCursorName

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLGetCursorName

SQLGetCursorName

指定された文ハンドルと関連付けられているカーソル名を取得します。

ドライバによるサポート： | あり
Magic xpaによる使用： | 不要


ODBCチェックドライバ 関数 SQLGetData

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLGetData

SQLGetData

現在の行内のバインドされていない1つのカラムの結果データを取得します。アプリケーションは、SQLGetDataを呼び出す前に、データの行にカーソルを置くためにSQLFetch、またはSQLExtendedFetchおよびSQLSetPos（任意）を呼び出す必要があります。一部のカラムにSQLBindColを使用し、同じ行内のほかのカラムにSQLGetDataを使用することができます。

この関数を使用すると、文字型、バイナリ型、またはデータソース固有のデータ型を持つカラムから文字型またはバイナリ型のデータ値（SQL_LONGVARBINARYカラムやSQL_LONGVARCHARカラム内のデータなど）を部分的に取得することができます。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLGetFunctions

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLGetFunctions

SQLGetFunctions

ドライバで特定のODBC関数がサポートされているかどうかに関する情報を取得します。この関数はDriver Managerで実行されますが、ドライバで実行することもできます。ドライバでSQLGetFunctionsが実行される場合、Driver Managerはドライバの関数を呼び出します。それ以外の場合は、Driver Managerによって関数が実行されます。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLGetInfo

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLGetInfo

SQLGetInfo

接続ハンドルと関連付けられているドライバおよびデータソースに関する一般情報を取得します。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLGetStmtOption

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLGetStmtOption

SQLGetStmtOption

構文プションの現在の設定を取得します。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLGetTypeInfo

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLGetTypeInfo

SQLGetTypeInfo

データソースでサポートされているデータ型に関する情報を取得します。ドライバは、SQL結果セットの形式で情報を返します。

注意：

アプリケーションは、ALTER TABLE文およびCREATE TABLE文のTYPE_NAMEカラムに返されたタイプ名を使用する必要があります。SQLGetTypeInfoによって、DATA_TYPEカラムに同じ値を持つ複数の行が返されることがあります。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLMoreResults

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLMoreResults

SQLMoreResults

SELECT、UPDATE、INSERT、またはDELETE文を含む文ハンドルで使用可能なより多くの結果があるかどうかを判断します。より多くの結果がある場合は、それらの結果に対する処理を開始します。

ドライバによるサポート： | あり
Magic xpaによる使用： | 不要


ODBCチェックドライバ 関数 SQLNativeSql

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLNativeSql

SQLNativeSql

ドライバによって変換されたSQL文字列を取得します。

ドライバによるサポート： | あり
Magic xpaによる使用： | 不要


ODBCチェックドライバ 関数 SQLNumParams

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLNumParams

SQLNumParams

SQL文内のパラメータ数を取得します。

ドライバによるサポート： | あり
Magic xpaによる使用： | 不要


ODBCチェックドライバ 関数 SQLNumResultCols

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLNumResultCols

SQLNumResultCols

結果セット内のカラム数を取得します。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLParamData

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLParamData

SQLParamData

SQLPutDataとともに、文の実行時にパラメータデータを提供するために使用されます。

ドライバによるサポート： | あり
Magic xpaによる使用： | 不要


ODBCチェックドライバ 関数 SQLParamOptions

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLParamOptions

SQLParamOptions

SQLBindParameterによって割り当てられたパラメータのセットにアプリケーションが複数の値を指定できるようにします。

パラメータのセットに複数の値を指定できれば、データソースがさまざまなパラメータ値を使用して複数回同じSQL文を処理しなければならない一括挿入などの作業を行う際に便利です。

例えば、アプリケーションがINSERT文と関連するパラメータのセットに3セットの値を指定することができる場合、INSERT文を一度実行して、3つの挿入操作を行うことができます。

ドライバによるサポート： | あり
Magic xpaによる使用： | 不要


ODBCチェックドライバ 関数 SQLPrepare

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLPrepare

SQLPrepare

SQL文字列を実行する準備をします。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLPrimaryKeys

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLPrimaryKeys

SQLPrimaryKeys

テーブルの主キーを含むカラム名を取得します。

ドライバは結果セットとして情報を返します。この関数では、1回の呼び出しで複数のテーブルから主キーを返すことはできません。

ドライバによるサポート： | あり
Magic xpaによる使用： | 不要


ODBCチェックドライバ 関数 SQLProcedureColumns

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLProcedureColumns

SQLProcedureColumns

入力パラメータと出力パラメータの一覧、および指定されたプロシージャの結果セットを構成するカラムを取得します。

ドライバは、指定された文ハンドルの結果セットとして情報を返します。

ドライバによるサポート： | あり
Magic xpaによる使用： | 不要


ODBCチェックドライバ 関数 SQLProcedures

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLProcedures

SQLProcedures

特定のデータソースに格納されているプロシージャ名の一覧を取得します。

プロシージャとは、実行可能なオブジェクト、つまり入力パラメータおよび出力パラメータを使用して呼び出すことができる名前付きエンティティを表す一般的な用語です。プロシージャは、SQLのSELECT式によって返される結果と同様の結果セットを返すことができます。

ドライバによるサポート： | あり
Magic xpaによる使用： | 不要


ODBCチェックドライバ 関数 SQLPutData

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLPutData

SQLPutData

構文の実行時に、アプリケーションからドライバへのパラメータまたはカラムに関するデータの送信を可能にします。この関数を使用すると、文字型、バイナリ型、またはデータソース固有のデータ型を持つカラムに文字型またはバイナリ型のデータ値（SQL_LONGVARBINARY型やSQL_LONGVARCHAR型のパラメータなど）を部分的に送信することができます。

ドライバによるサポート： | あり
Magic xpaによる使用： | 不要


ODBCチェックドライバ 関数 SQLRowCount

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLRowCount

SQLRowCount

UPDATE、INSERT、またはDELETE文、あるいはSQLSetPosのSQL_UPDATE、SQL_ADD、またはSQL_DELETE処理コマンドによって影響を受ける行の数を取得します。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLSetConnectOption

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLSetConnectOption

SQLSetConnectOption

接続を制御するオプションを設定します。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLSetCursorName

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLSetCursorName

SQLSetCursorName

カーソル名をアクティブな文ハンドルと関連付けます。

アプリケーションでSQLSetCursorNameが呼び出されない場合、ドライバによってSQL文の処理に必要なカーソル名が生成されます。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLSetParam

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLSetParam

SQLSetParam

ODBC 2.0では、ODBC 1.0のSQLSetParam関数はSQLBindParameterに置き換えられました。詳細については、 SQLBindParameterを参照してください。

ドライバによるサポート： | あり
Magic xpaによる使用： | 不要


ODBCチェックドライバ 関数 SQLSetpos

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLSetpos

SQLSetpos

行セット内のカーソル位置を設定し、アプリケーションによるデータのリフレッシュ、更新、削除、または行セットへの追加を可能にします。

ドライバによるサポート： | あり
Magic xpaによる使用： | 不要


ODBCチェックドライバ 関数 SQLSetScrollOptions

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLSetScrollOptions

SQLSetScrollOptions

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 xpaによる使用： | 不要


ODBCチェックドライバ 関数 SQLSetStmtOption

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLSetStmtOption

SQLSetStmtOption

構文ハンドルに関するオプションを設定します。特定の接続ハンドルと関連付けられている全ての文にオプションを設定する場合、アプリケーションはSQLSetConnectOptionを呼び出すことができます。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLSpecialColumns

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLSpecialColumns

SQLSpecialColumns

指定されたテーブル内のカラムに関する以下の情報を取得します。

  • テーブル内の行を一意に識別する最適なカラムのセット

  • 行内の値がトランザクションによって更新された際に自動的に更新されるカラム

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLStatistics

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLStatistics

SQLStatistics

１つのテーブルに関する統計情報の一覧とそのテーブルと関連付けられているインデックスを取得します。ドライバは結果セットとして情報を返します。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLTablePrivileges

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLTablePrivileges

SQLTablePrivileges

テーブルと各テーブルに関連付けられている特権の一覧を取得します。ドライバは、指定された文ハンドルの結果セットとして情報を返します。

ドライバによるサポート： | あり
Magic xpaによる使用： | 不要


ODBCチェックドライバ 関数 SQLTables

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLTables

SQLTables

特定のデータソースに格納されているテーブル名の一覧を取得します。ドライバは結果セットとして情報を返します。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


ODBCチェックドライバ 関数 SQLTransact

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > 関数 > SQLTransact

SQLTransact

接続と関連付けられている全ての文ハンドル上の全てのアクティブな処理コマンドのコミットまたはロールバック操作を要求します。

また、環境ハンドルと関連付けられている全ての接続に対してコミットまたはロールバック操作を実行するように要求することもできます。

ドライバによるサポート： | あり
Magic xpaによる使用： | 必要


データベース ODBC チェックドライバ コマンド例

ホーム > リファレンスガイド > ユーティリティ > ODBC チェックドライバユーティリティ > DMLコマンドの例

DMLコマンドの例

このユーティリティは、選択されたデータソースへの既存の接続を使用し、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 . ******
******************************************************


文字列抽出ユーティリティ

開発者が、多言語対応インタフェースのアプリケーションを開発したい場合、アプリケーション内に定義されている語句をすべて含む変換辞書を作成する必要があります。このユーティリティを使用することで、アプリケーション内の語句を抽出することができるため、辞書作成の手間を省くことができます。

このユーティリティは、以下のように使用します。

ユーザ定義開発メニューから起動する場合

  1. [ツール]メニューを開き、[文字列抽出]を選択して[文字抽出]ウィザードを起動します。

  2. [ウェルカム]ダイアログから、[次へ]をクリックします。

  3. [プロジェクト詳細]ダイアログから、すべてのプログラムをスキャンするか、前回の処理以降に更新された内容のみをスキャンするかを選択します。初めてスキャンするプロジェクトに場合は、この選択オプションは利用できません。

  4. 式内の文字をすべて対象にするか、MLSTrans()内の文字のみを対象にするかを選択します。

  5. [出力ファイル]欄に出力ファイル名を入力します。

  6. [実行]をクリックすると、ウィンドウの下にプログレスバーが表示されます。これは、抽出処理が実行されていることを示しています。処理が終了すると、終了メッセージが表示されます。

  7. [OK]をクリックするとウィザードは終了します。

注意：

  • このツールのソースファイルは、以下のフォルダ内にあります。スキャンするプロジェクトに合わせてこのユーティリティを修正することも可能です。

%EngineDir%Add_On\StringExtractor

  • このユーティリティは、Magic xpaのバージョン毎にアップデートされることはありません。必要に応じて、ソースファイルをもとに修正することができます。

  • このユーティリティは、ソースファイルを読み込んで、出力ファイルを保存するために、XMLビューを使用しています。XMLビューはDOMに読み込むため多くのメモリーを使用します。大きなアプリケーションまたは大きなプログラム上で実行させると、メモリ不足で異常終了する場合があります。この問題は以下のように対応してください：

  • 対象となるプログラムのサイズを制限します。
    問題の原因となるプログラムがある場合、ソースプログラムのサイズを確認し、xxx MBより大きなファイルをスキップするために文字列抽出ユーティリティで条件を追加してください。その文字列を処理するために、一時的に2つのプログラムに分割するようにしてください。

  • 結果ファイルを変更します。
    結果のXMLファイル内の項目のサイズを減らしたり、SQLファイルの代わりにDBのファイルに出力を保存するようにすることができます。この変更によってパフォーマンスが上がり、メモリの消費を減らすことができます。

関連トピック：

変換ファイルを定義するには


ユーザ定義開発メニュー

ユーザ定義開発メニューを使用することで、外部ツールやMagic xpaに組み込まれたツールを使用して、アプリケーション用にカスタマイズされたツールメニューを定義することができます。

開発時に使用する様々なMagicプロジェクトの起動メニューを提供するものです。このメニューに、「アプリケーションウィザード」や他のウィザードなどのツールを含めることができます。このメニューは、開発モードでプロジェクトを開いた時に[ツール]というプルダウンメニューとして表示されます。

開発者は、［ツール］メニューに表示される内容をMagic.iniファイルの[TOOLS_MENU]セクションに定義すること必要があります。

関連トピック：

メニューの登録

開発メニュー指定の例

処理コマンド

自動処理

グローバルパラメータ情報


ユーザ定義開発メニュー 登録

ホーム > リファレンスガイド > ユーティリティ > ユーザ定義開発メニュー > メニューの登録

メニューの登録

ユーザ定義開発メニューは、開発エンジンでのみ有効です。MAGIC.INIファイルの[TOOLS_MENU]セクションを修正することで次のセッションから有効になります。

[TOOLS_MENU]セクションへの登録順に ツールメニューの表示順とサブメニューが定義されます。

開発メニューは、MAGIC.INI ファイルに以下のような構文で定義します。

メニュー名= メニュータイプ,表示メニュー名,親メニュー名,ECF パス/コマンド,アクセスキー,事前処理ファイル,事後処理ファイル、ツールメニュー番号

構文に誤りがある場合は、メニューは表示されません。

指定したファイルがない場合は、メニューは表示されますが実行時にエラーが表示されます。

関連トピック：

メニュータイプ

表示メニュー名

親メニュー名

ECF パス/コマンド

アクセスキー

事前処理ファイル

事後処理ファイル

ツールメニュー番号


ユーザ定義開発メニュー メニューの登録 メニュータイプ

ホーム > リファレンスガイド > ユーティリティ > ユーザ定義開発メニュー > メニューの登録 > メニュータイプ

メニュータイプ

メニュータイプとして以下の文字が指定できます。

  • A …… アプリケーション。ECF形式のMagicアプリケーションを実行する場合に指定します。

  • O …… OS コマンド

  • M …… サブメニュー。別のメニューのサブメニューにする場合に指定します。

  • S …… 区切り。メニューとメニューの間に区切り線を表示します。

例：: Menu4=A


ユーザ定義開発メニュー 登録 表示メニュー名

ホーム > リファレンスガイド > ユーティリティ > ユーザ定義開発メニュー > メニューの登録 > 表示メニュー名

表示メニュー名

実行時に表示されるメニュー名を指定します。

メニュータイプが、A（アプリケーション）、O（OSコマンド）、および、M（サブメニュー）の場合は必須です。S（区切り）の場合は不要です。表示メニュー名には、アクセラレータキーとして、アンパサンド (&) を含めることができます。


ユーザ定義開発メニュー 登録 親メニュー名

ホーム > リファレンスガイド > ユーティリティ > ユーザ定義開発メニュー > メニューの登録 > 親メニュー名

親メニュー名

親の[メニュー名]を指定します。指定されていない場合は、[ツール]メニューの下に表示されます。


ユーザ定義開発メニュー 登録 ECFパス/コマンド

ホーム > リファレンスガイド > ユーティリティ > ユーザ定義開発メニュー > メニューの登録 > 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

注意：

開発用のアクセスキーと重ならないように指定してください。同じアクセスキーが指定された場合、こちらが優先されます。


ユーザ定義開発メニュー 登録 事前処理ファイル

ホーム > リファレンスガイド > ユーティリティ > ユーザ定義開発メニュー > メニューの登録 > 事前処理ファイル

事前処理ファイル

現在のプロジェクトを閉じる前に、実行される処理の手順リストを提供する自動処理手順ファイル名を指定します。このパラメータは、論理名をサポートします。利用可能な処理については、「処理コマンド」を参照してください。

注意：

メニュータイプが「A」の場合のみ有効です。


ユーザ定義開発メニュー 登録 事後処理ファイル

ホーム > リファレンスガイド > ユーティリティ > ユーザ定義開発メニュー > メニューの登録 > 事後処理ファイル

事後処理ファイル

起動したプロジェクトが終了して、現在のプロジェクトが再開する時に、実行される処理の手順を提供する自動処理手順ファイル名を指定します。このパラメータは、論理名をサポートします。利用可能な処理については、「処理コマンド」を参照してください。

注意：

メニュータイプが「A」の場合のみ有効です。


ユーザ定義開発メニュー 指定例

ホーム > リファレンスガイド > ユーティリティ > ユーザ定義開発メニュー > 開発メニュー指定の例

開発メニュー指定の例

[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 xpaは、自動的に元のプロジェクト（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として出力するファイル名を指定します。指定されたファイル名のまま出力されます。（「.ecf」という拡張子は付加されません。）


ユーザ定義開発メニュー プロジェクトのオープン

ホーム > リファレンスガイド > ユーティリティ > ユーザ定義開発メニュー > プロジェクトのオープン

プロジェクトのオープン

指定されたプロジェクトファイルを開くように指示することができます。プロジェクトは、プロジェクトファイル名とパスを使用して指定します。

この処理では以下のように指定します。

Project, <edp ファイル/パス名>


ユーザ定義開発メニュー 定義取得処理

ホーム > リファレンスガイド > ユーティリティ > ユーザ定義開発メニュー > 定義取得処理

定義取得処理

Getdefコマンドは、直接SQLテーブルからMagic xpaの[データ]リポジトリにデータソース定義をロードするために使用されます。

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コマンドを実行させる上でのオプション指定です。

  • Wait=Y/N

OSコマンドが終了するまで次の処理を待つかどうかを指定します。

  • Show =[Hide, Normal (デフォルト), Maximize, Minimize]

DOSボックス（コマンドプロンプト）をどのように表示させるかを指定します。

    • Hide …… 非表示

    • Normal …… 通常

    • Maximize …… 最大

    • Minimize …… 最小

例：OS, notepad, wait=Y show=hide.


ユーザ定義開発メニュー シミュレート

ホーム > リファレンスガイド > ユーティリティ > ユーザ定義開発メニュー > シミュレート

シミュレート

この処理では以下のように指定します。

Simulate, <有効なトークンの集まり>, <スイッチ>

以下の３つのトークンによってMagic xpaにオブジェクトにパークさせたり、キーボード操作をシミュレートさせたりすることができます。トークンは、セミコロン（;）で区切りることで複数指定することができます。

関連トピック：

WIN

TXT

KEY

注意：

  • ［シミュレート］処理は、AutomaticProcessingMode=B. では動作しません。

  • この動作を制御したい場合は、Magic xpa Studioは1つシミュレートコマンドが次のコマンドへ移行する前に終了を待たないようにしてください。


ユーザ定義開発メニュー シミュレート WIN

ホーム > リファレンスガイド > ユーティリティ > ユーザ定義開発メニュー > シミュレート > WIN

WIN

このトークンは指定したリポジトリにカーソルをパークさせるようにMagic xpaに指示します。

各リポジトリの指定は以下の文字列で行います。

  • 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

TXT

このトークンは、キーボード操作をシミュレートさせます。

例：Simulate, TXT= <テキスト>

現在の位置にテキストを入力します。

このトークンでは、「=」以降をフリーの文字列として処理します。空白も文字として扱います。


ユーザ定義開発メニュー シミュレート KEY

ホーム > リファレンスガイド > ユーティリティ > ユーザ定義開発メニュー > シミュレート > 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ファイル>,スイッチ

  • ECIファイル …… コンポーネントインタフェースファイルのファイル名とパス名

  • スイッチ …… 指定可能なスイッチは以下の通りです。

KeepInterface=Y/N (デフォルト Y)

ECIファイルへのパスがコンポーネントのXMLファイルに保存されるかどうかを指定します。「Y」が設定された場合、エンジンはECIファイル名とパスをXMLの<ECIFile>タグの中のcomps.xmlファイルに保存します。


ユーザ定義開発メニュー モジュールの追加

ホーム > リファレンスガイド > ユーティリティ > ユーザ定義開発メニュー > モジュールの追加

モジュールの追加

指定されたプロジェクトファイルが、現在のプロジェクトのモジュールとして追加されます。

この処理では以下のように指定します。

AddModule,<ファイル名>

  • ファイル名 …… モジュールとして追加するプロジェクトファイル名とパスを指定します。


ユーザ定義開発メニュー グローバルパラメータ情報

ホーム > リファレンスガイド > ユーティリティ > ユーザ定義開発メニュー > グローバルパラメータ情報

グローバルパラメータ情報

ユーザ定義開発メニューから起動されたツールアプリケーションが、起動元のプロジェクト情報を取得する必要がある場合、GetParam関数を使用することで可能になります。

この場合のプロジェクトに関するグローバルパラメータは以下の通りです。

パラメータ名

型

値

MG_ApplicationName

文字

プロジェクト名

MG_CurrentObject

数値

現在カーソルがパークしているオブジェクトの行番号を表す数値

MG_CurrentObjectIsn

数値

現在カーソルがパークしているオブジェクトのISN（内部番号）を表す数値

MG_CurrentObjCheckedOut

論理

最後にパークしたか処理したオブジェクトがチェックアウト状態の場合「True」が返ります。チェックイン状態の場合は「False」が返ります。

プロジェクトがチーム開発モードに定義されていない場合は、値は設定されません。

MG_CurrentRepository

数値

現在カーソルがパークしているリポジトリを表す数値が返ります。数値は以下のようにリポジトリに対応しています。

  • 1 …… モデル

  • 2 …… データソース

  • 3 …… プログラム

  • 4 …… ヘルプ

  • 5 …… 権利

  • 6 …… メニュー

  • 7 …… コンポーネント

MG_ProjectGUID

プロジェクトのGUIDを表す数値

MG_StudioMode

このグローバル値は、ツールアプリケーションが動作しており、ツールアプリケーションを選択する前に設定されなければならないモードを表示するために使用されます。モードIDは以下の通りです。

  • 1 …… 開発

  • 2 …… 実行

  • 3 …… デバッグ

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

注意：

［シミュレート］処理は、AutomaticProcessingMode=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 xpa Studioが起動されると指定された処理が自動的に実行されます。

Magic xpaを起動するショートカットにコマンドラインパラメータとして指定することもできます。必要に応じて、[デフォルトプロジェクト]やMagic xpaの実行に必要なユーザ名やパスワードを指定してください。例えば以下のように指定できます。

"C:\Program files\Magicxpa\Studio.exe" /user=guest /password=guest /AutomaticProcessingSequenceFile=AutoProcess1.txt


アプリケーション実行

プロジェクトの作成時にプログラムを実行する場合、Magic xpa Studioを使用します。

エンドユーザに対してアプリケーションの実行環境を作成する場合は、プロジェクト作成時に設定した動作環境をもとに構築する必要があります。

エンドユーザは、プロジェクトファイル(.edp)を開いたり、[プログラム]リポジトリからプログラムを実行することのできるMagic xpa Studioを持っていません。キャビネットファイル(.ecf)を開いて実行することができる、実行エンジン（Magic xpa ClientやMagic xpa Enterprise Server、Magic xpa RichClient Server）のみ保有しています。従って、アプリケーションをキャビネットファイル形式で保存する必要があります。

以下は、エンドユーザ用にアプリケーションの実行環境を構築するための手順です。

  • アプリケーションデータの出力

  • アプリケーションデータの入力

  • メニューの作成

  • プロジェクトの出力

  • キャビネットファイルの作成

  • 別のPC上のアプリケーションを実行する

関連トピック：

実行 （Mastering Magic xpa）


アプリケーションデータの出力

プロジェクトを作成する場合、一般的に以下の異なる目的のデータソースを使用します。

  • 国名や都道府県名、市町村名、および測定単位などの標準データを含む汎用データソース。

  • 顧客名、取引先名、および製品名などユーザ独自のデータとして入力する必要のあるユーザ関連データソース。

通常は、アプリケーションと一緒に汎用データソースを提供する必要があります。

プロジェクトのデータソースからデータを出力するには、APGを使用することができます。APGを使用することでデータファイルの入出力を簡単に行うことができます。ここをクリックすると例が表示されます。

次のステップは、｢アプリケーションデータの入力｣です。


アプリケーションデータの入力

アプリケーションの実行環境を構築する場合、使用するデータベースにアプリケーションデータを入力する必要があります。

データベースのデータを作成／更新を行うためにデータベース関連のユーティリティを使用することができます。

Magic xpaを使用してデータベースのデータを更新することもできます。

エンドユーザ側のPCには、Magic xpa Studioがインストールされていないため、入力プログラムを作成し、このプログラムを起動するためのメニューを定義する必要があります。

APGを使用することでこのようなプログラムを簡単に作成することができます。ここをクリックすると例が表示されます。

次のステップは、｢メニューの作成｣です。


メニューの作成

アプリケーションを実行する場合、エンドユーザは実行メニューを使用してプログラムを実行します。従って、実行環境を構築する場合は、エンドユーザが使用するすべてのプログラムが実行メニューに定義されていることを確認する必要があります。

次のステップは、｢プロジェクトの出力｣です。


プロジェクトの出力

プロジェクトをバックアップしたり、プロジェクト間で複数のオブジェクトをコピーする必要があるかもしれません。

Magic xpaの[リポジトリ入出力]ユーティリティを利用することで、プロジェクト全体または一部を1つのファイルに出力することができます。この出力ファイルは、別のプロジェクトファイルに入力することもできます。ここをクリックすると例が表示されます。

プロジェクトを出力することで、プロジェクトのバックアップを作成することができます。この処理で作成されたファイルは、そのままでは利用できません。リポジトリ入出力ユーティリティを利用して、空のプロジェクトに入力することで利用することができます。

次のステップは、｢キャビネットファイルの作成｣です。


キャビネットファイルの作成

アプリケーションを実行環境で使用するには、プロジェクトのキャビネットファイルを作成する必要があります。

キャビネットファイルは、キャビネット形式でパッケージ化されたプロジェクトのファイルです。これは、Magic xpaの実行エンジンでのみ利用できます。

Magic xpa Studioでキャビネットファイルを開くことはできません。

プロジェクトのキャビネットファイルを作成するには

  1. プロジェクトを開きます。

  2. [ファイル]メニューから、[キャビネット作成]を選択します。
    [キャビネットファイル]ダイアログが開きます。このダイアログボックスでキャビネットファイル名とパスを指定する必要があります。

  3. キャビネットファイルを保存するディレクトリを選択します。
    キャビネットファイル（.ecf）は、プロジェクトファイルと同じディレクトリに保存するように推奨します。

  4. [ファイル名]欄には、キャビネットファイルの名前を入力します。デフォルトのファイル名はプロジェクト名と同じです。

  5. [保存]ボタンをクリックします。これで、キャビネットファイルは作成されます。

次のステップは、｢別のPC上のアプリケーションを実行する｣です。

関連トピック：

キャビネットファイルを作成するには


別のPC上のアプリケーションを実行する

開発環境と同じPC上でアプリケーションを実行させることで、間違えを起こすかもしれません。

実行エンジンと開発エンジンは同じ実行環境を共有しています。

従って、キャビネットファイル（.ecf）を作成し、実行エンジンでこのアプリケーションを実行させることができます。

別のPC上でアプリケーションを実行する場合、開発環境と同じ環境設定を行う必要があります。

設定は、データベースの接続定義、論理名、プロジェクトのフォントファイル、基本色定義や開発時に設定した追加設定が含まれます。これらの設定が反映されたMAGIC.INIファイルや関連する外部ファイルをアプリケーションの実行環境にコピーする必要があります。

アプリケーションを別のPCにインストールする場合、以下の作業も必要になります。

  1. Magic xpaの実行エンジンをインストールします。

  2. アプリケーションディレクトリにキャビネットファイルや（イメージファイルなどの）関連するファイルを配置します。アプリケーションで使用するデータソースを置く場合もあります。これらのデータソースの内容は、アプリケーションの実行環境として新しいデータベースで利用できるようにする必要があります。

  3. 新しいPC上の[データベース]テーブルでデータベースを設定します。

  4. アプリケーションが論理名を使用している場合、その設定も新しいPCにコピーする必要があります。

  5. Notepadなどのテキストエディタを使用して、MAGIC.INIファイルを開きます。Magici.iniファイルの内容をもとに、開発環境での論理名の設定内容を実行環境にコピーします。新しいPCのディレクトリ名に基づいて実行名を変更します。

  6. Magic xpaがサーバ上にインストールされている場合、以下の内容を確認する必要があります。

  • 実行エンジンのインストールフォルダに読込権があること。

  • サーバ側がUNCシステムをサポートしていない場合、クライアント側の実行ディレクトリを同じドライブ/ディレクトリでマッピングされていること。

  • クライアント側でのMgxpaRuntime.exeを起動するショートカットのリンク先が、同じディレクトリを指定していること。

  • Magic.iniファイルの［MAGIC_GATEWAYS］セクションには、Magic xpaがインストールされるディレクトリとして、パスがハードコードされていないこと。

例：変更前 MGDB09=C:\Program Files (x86)\MSE\Magic xpa 2.x\Gateways\mgSQLite.dll

変更後 MGDB09= Gateways\mgSQLite.dll

  7. ロギングが有効になっているとプログラムの実行パフォーマンスを低下させるため、ロギングをオフにすることを推奨します。

  8. Magic xpaの実行エンジンを起動し、[動作環境ダイアログ]（オプション→設定→動作環境→システムタブ）の[開始アプリケーションョン]を選択します。

  9. この設定からズームしてアプリケーションの.ecfファイルを選択します。これで実行エンジンが起動されると自動的にこのアプリケーションが開くようになります。


実行時の必要条件

オンラインやリッチクライアントのプログラムを実行させるには、.NET Framework Ver2.0 SP2以上をPCにインストールする必要があります。.NET Framework Ver2.0SP2を使用している場合、再配布可能なMicrosoft Visual C++ 2008もインストールする必要があります。

Scripts\RIAフォルダにコピーされている NetFx20SP2_x86.exeとVCRedist_x86.exeを実行させることで、インストールすることができます。


マイグレーション2

ホーム > マイグレーション

マイグレーション

Magic xpaは、新しい方法でプロジェクトを作成し、保存し、処理します。

  • Magic eDeveloper V10またはMagic uniPaaSから移行する場合は、ここをクリックしてください。

  • Magic eBusiness Platform V9Plusから移行する場合は、ここを クリックしてください。

  • クライアント／サーバアプリケーションをRIAに移行する場合は、ここをクリックしてください。

注意：

アプリケーション内に物理パスが設定されている場合は、あらかじめ論理名を使用するように変更しておいてください。


Magic V10または Magic uniPaaSから移行する場合

ホーム > マイグレーション > Magic V10 または Magic uniPaaS から移行する場合

Magic eDeveloper V10または Magic uniPaaSから移行する場合

Magic xpaでeDeveloper V10.1または Magic uniPaaS V1/V1Plusで作成されたプロジェクトを開くと、変換ウィザードによって自動的に移行作業が実行されます。ウィザードはeDeveloper V10.1または、Magic uniPaaS V1.x用のプロジェクトで動作します。しかし、最新のMagic uniPaaS Ver1.9で作成されたプロジェクトを使用することを推奨します。

プロジェクトを移行する前に、使用しているコンポーネントを移行する必要があります。プロジェクトがコンポーネント内のモデルを使用している可能性があるため、最初に移行する必要があるかもしれません。

注意：

コンポーネントのeciファイルやecfファイルは、旧バージョンのパスで参照しています。予め、論理名を使用するように変更し、ホスト側のプロジェクトを移行する前に移行後のファイルを参照する様に論理名の実行パスを移行したコンポーネントファイルを参照する様に変更してください。

プロジェクトがバージョン管理を使用している場合は、プロジェクトの変換処理中に自動的にチェックアウトが行われます。他のユーザによってファイルがチェックアウトされていないことを確認してください。

プロジェクトを変換すると、前のバージョンでプロジェクトを編集したり、実行したりすることはできなくなります。

［ウェルカム］ダイアログから［次へ］をクリックした後、プロジェクトをバックアップするかどうかを確認するダイアログが表示されます。

エンドユーザ機能のコンポーネントを［コンポーネント］リポジトリに追加するかどうかを指定することもできます。このコンポーネントは、範囲や位置付、データ出力機能を追加します。ここで選択しない場合でも、移行後に手動で［コンポーネント］リポジトリに追加することができます。

変換処理が終了すると、ウィザードの終了時に、変換ログ(IMP.Log)を表示するか否かを指定することができます。IMP.LOGファイルは、プロジェクトから削除された項目が記録されています。このファイルはプロジェクトのフォルダに保存されます。

Webサービスを移行する場合は、いくつかの考慮点があります。

Magic uniPaaS V1Plus以降の違いについては、｢Magic xpa 2.xでの違い｣と｢サポートされなくなった内部イベント｣を参照してください。


Magic V10のWebサービスプログラムを移行する

ホーム > マイグレーション > Magic V10 または Magic uniPaaS から移行する場合 > Magic V10のWebサービスプログラムを移行する

Magic V10のWebサービスプログラムを Magic xpa 用に移行する

Q. Magic V10を使用してサービスが作成され、デプロイされています。インタフェースビルダを使用してMagic xpaのサービスとしてデプロイし直す必要がありますか？

A. プロバイダ側ではサービスはすでにデプロイされているため、デプロイし直す必要はありません。

Q. Magic xpa がコンシューマ側で動作している場合は、［サービス］テーブル（設定／サービス）で定義し直す必要がありますか？i

A. コンシューマとして、サービスが読み込まれた後、クライアントファイルが作成されます。サービスをロードし直す代わりに、Magic xpaからサービスを利用するために以下の変更処理を行うことができます。

  1. サービスを利用するには、jarと xsdファイルが必要です。これらのファイルは、SoapClientModulesディレクトリに作成されます。これらのファイルは、Magic V10のSoapclientModulesディレクトリからMagic xpaのディレクトリにサービス毎にコピーします。例えば、Test1 は、Magic V10から呼び出されるWebサービスです。したがって、SoapClientModules ディレクトリの Test1 サブディレクトリにクライアント側のファイルがあります。Test1ディレクトリをMagic xpaの SopaclientModules ディレクトリにコピーします。

  2. Magic V10の magic.ini ファイルで、［SERVICES］セクションのTest1サービスの行を Magic xpaのMagic.ini にコピーします。

Q. プロバイダ用PCを別のものに変更した場合、Systinet\appフォルダ内の jarをコピーして手動でデプロイする必要がありますか？Magic\Builders\WSフォルダ内のjarファイルをコピーして使用することができますか？

A. jarファイルを新しいプロバイダPCへコピーして、手動でそれをデプロイしてください。これらのファイルは、Systinet\appか、Magic\Builders\WSからコピーしてください。どちらも同じファイルです。


Magic xpa 2.xでの違い

Magic xpa 2.xでは、オンラインタスクのGUIは、Win32ではなく.NETフレームワークに基づいています。

.NETフレームワークでは、前のバージョンでサポートされていた外観とコントロールの動作を全てサポートする訳ではないため、実行時の表示に違いが発生します。

大きな違いを以下に説明します。

注意：

このトピックでは、Magic uniPaaS V1Plusの既存機能との違いについてのみ説明しています。Magic xpaの新機能については説明していません。新機能の説明は、Readmeを参照してください。

ユーザ状態の維持 | SDI
オンラインタスクのMDI | 入出力ファイル
サポートされないコントロール | エンドユーザ機能
コントロール特性 | ステータスバー
フォーム特性 | その他動作の違い
外部ツールによる修正 | 環境設定
関数 | 特殊設定
タスク特性 | ユーティリティ

ユーザ状態の維持

フォーム状態の維持は、リッチクライアントタスクと同じ値（フォーム名ではなく Yes／No）で定義します。

この変更により、フォーム状態を維持する場合、フォームのユニークIDのリストを維持する必要がなくなり、［ユーザ状態の維持］特性を設定するだけで単純化されました。

オンラインタスクのフォームとモデル特性で以下のように変更されました：

  • ［フォーム状態識別］特性が削除されました。

  • ［ユーザ状態の維持］特性が追加されました。

注意：

この変更のために、既存のユーザのフォーム状態は無視されます。

オンラインタスクのMDI

オンラインタスクの実行時のMDIフレームは、メインプログラムのGUI表示フォームとして定義します。

この変更により、同じ場所でフォームの特性を定義できるようになりました。

以下の特性が変更されました：

  • メインプログラムの［タスク特性］の［ウィンドウ表示］特性によってMDIを表示するかどうかを定義します。

  • ［タスク特性］の［メインフォーム］特性に複数のMDIフレームフォームを定義することで、実行時に動的にMDIフォームを切り替えることができます。

  • メインプログラムの［タスク特性］には、［プロジェクト実行タイプ］と呼ばれる新しい特性が追加されました。これは、Magic xpa Studio でプロジェクトの実行（Ctrl+F7)を実行すると、オンラインで実行するか、リッチクライアントで実行するかを指定します。

  • ［ウィンドウタイトル］や［システムプルダウンメニュー］、［アイコンファイル名］の各特性は、［アプリケーション特性］から削除され、MDIフレームの特性として定義するようになりました。［アプリケーション特性］の［ウィンドウタイトル］特性の値が空白になっている場合、MDIフォームの［フォーム名］特性にプロジェクト名を定義する必要があります。 ［ウィンドウタイトル］特性で倫理名を使用している場合、MDIフォームの［フォーム名］特性で式として定義する必要があり、Translate()関数を使用する必要があります。

  • MDIクライアントエリアは、フォーム特性で指定された色が使用され、開発者によって任意に制御することができます。Ver1.xと同じようなクライアントエリアの色で表示させるには、背景色を「ウィンドウの背景」のシステム色に設定した色を設定するようにしてください。

  • MDI子ウィンドウのフォームは、MDIフレームより大きくできません。これらのフォームは、実行中は大きさが調整されます。

  • MDI子ウィンドウのフォームは、MDIフレームより大きくできません。これらのフォームは、実行時にサイズが変更されます。

  • MDIのプルダウンメニューは、複数行メニューをサポートしません。

  • アプリケーションがMagic xpa Studioから実行され、2つのモニターがPCに接続されている場合、実行時のMDIが毎回、最初からオープンされるため、モニターっを指定して開くことができません。

MDI上のコントロール …… Magic uniPaaS Ver1.xでは、メインプログラムのフォームをMDI上に表示し、スタティックコントロールを表示させることができましたが、このような機能は現在サポートされません（フォームにコントロールを配置することはできますが、実行時に表示されません）。

MagicエンジンのMDI

Magic エンジンに組み込まれていたMDIは、削除されました。これは、以下のことを意味しています。

  1. 開始アプリケーションが定義される場合だけ、実行エンジン（MgxpaRuntime.exe)を起動させることができます。

  2. 実行エンジンは、動作環境を修正するエディタ機能を提供していません。

  3. 環境設定（例えば動作環境や基本色、フォントなど）の修正やユーザ権利の設定は、以下の方法で行います。

  4. Magic xpa Studioの使用

  5. テキストエディタの使用

  6. INIGetとINIPut関数を利用した専用のプログラムの作成

設定用のテーブルを開くために使用される内部イベントは、サポートされなくなりました。

注意：

実行版のインストール時に［環境設定ツール］を選択すると Magic xpa Studioのエンジンモジュールがインストールされます。このダイアログを使用して動作環境の設定を行うことができます。

サポートされないコントロール

ActiveX、OLE、長方形、楕円、水平スライダーと垂直スライダーの各コントロールは、サポートされません。.NET相当、またはサードパーティのコントロールを使用することができます。Windowsフォーム上でのActiveXコントロールの使用は、.NETコントロールでラッピングすることで可能になります。Microsoftは、ActiveXコントロールから.NETコントロールを作成するために、aximp（ActiveX コントロール インポータ）ユーティリティを提供しています。

［テキスト（ラベル)］コントロールは、［長方形］コントロールのように表示させるために使用することができます。

モデルにAcitveXやOLEまたはスライダの各コントロールを定義した場合、変換されたプロジェクトの［モデル］リポジトリでも表示されます。これらのモデルは削除する必要があります。

変換処理によってフォームに定義された［スライダ］コントロールは自動的に削除されます。しかし、スライダのコントロール特性で使用されているデータ項目や式は存在しているため、構文チェッカーを実行すると警告メッセージが表示されます。

ActiveXとOLEのコントロールは、移行処理を行ってもそのまま残りますが、構文チェックでエラーになります。ActiveXコントロールを使用したい場合は、aximpユーティリティを使用して.NETラッバーを作成する必要があり、ActiveXコントロールの代わりにフォーム上に.NETコントロールを配置する必要があります。

注意：

フォームに表示されないCOMオブジェクトの使用は、変更する必要はありません。Magic uniPaaS V1/V1Plus と同じようにサポートされます。

コントロール特性

  • リストボックス、コンボボックス、タブ、グループ、リッチエディットの各コントロールの［水平整列］特性は、サポートされません。

  • ［スタイル］と［境界］特性ではサポートされなくなった値があります。

  • GUI表示コントロールの［左辺位置］と［上辺位置］の各特性は、［X］と［Y］に変更されました。

  • コンテナコントロールの背後のコントロールの表示 …… コントロールがコンテナコントロールに配置された場合、コンテナコントロールにリンクされていなければ、コントロールは実行時に表示されません。具体的には以下のようになります：.

    • ［タブ］コントロールの場合 …… （特定のレイヤにリンクしていないことにより)コントロールをすべてのタブ上に表示させることはできません。

    • ［テーブル］コントロールの場合 …… カラムタイトルの上にコントロールを配置することはできません。タイトル領域の上にコントロールを配置したり、カラムの上にコントロールを配置したり、別のカラムに配置したり、コントロールをカラム幅を越えて拡大させることができません。

  • コンテナコントロールにリンクされたコントロールの［位置］特性 ……コンテナコントロールにリンクされたコントロールの［位置］特性の値は、（Magic uniPaaS ではフォームでしたが)コントロールに依存します。これは以下のことを意味します。

    • コンテナコントロールにリンクされたコントロールの場所（［X］および［Y］特性）で使用されている式は、正しく動作せず、変わる場合があります。

    • コンテナコントロールにリンクされたコントロールの［位置］特性の値は、 正しく動作せず、変わる場合があります。

  • 立体コントロールの背景色は、（Magic uniPaaSでは、一部のコントロールが白または灰色で表示されていました）指定された色が表示されます。

  • Zオーダ …… コンテナコントロールにリンクされていないコントロールは、コンテナコントロール上には表示されません。プロジェクトを移行するとき、設定されたZオーダは残りますが反映されません。コンテナコントロールの上に表示されるコントロールは、コンテナコントロールに自動的にリンクされます。

  • TrueTypeと限定されたOpenTypeのフォントのみサポートされます。Magic xpa Studioでは、非TrueTypeフォントを表示させることができますが、、実行時は自動的にTrueTypeフォントに変わります。これらを置き換えるまで、構文チェッカーは非TrueTypeフォントに対するエラーを表示します。

  • フォントの傾きは、［ラベル］コントロールとカラムヘッダのみサポートされます。（サポートバージョン：2.4）

  • Magic uniPaaS のオンラインタスクでは、［コントロール特性］の式は、再計算が発生すると、式にデータ項目が使用されていなくても常に評価されました。この動作は変更され、コントロール特性の式は、変更されたデータ項目を持つ場合だけ再評価されるようになりました。 該当する特性は以下の通りです：色, コンテキストメニュー, データ, 有効, フォント, 書式, 高さ, 範囲, 可視, 幅, X, Y

［.NET］コントロール

Magic xpaのデータ項目を［.NET］コントロールの特性にリンクさせることができます。［.NETのバインディング宣言］特性を参照してください。（サポートバージョン：2.2）

［.NET］コントロールの［データ］特性は、コントロールに関連したデータ項目または式を保持するようになりました。以前のバージョンでは、［データ］特性は、.NETオブジェクトの参照特性として使用されていました。（サポートバージョン：2.2）

.NETモデルとコントロールには、以下の特性が追加されました：選択項目リスト、選択表示リスト、ソーステーブル、表示項目、リンク項目、インデックス、範囲。（サポートバージョン：2.2）

［チェックボックス］コントロール

［チェックボックス］コントロールの［複数行］特性は、［表示］特性が「ボタン」の場合はサポートされません。

［コンボボックス］コントロール

コンボボックスの［高さ］特性は、変更できません。コンボボックスのフォントサイズに依存するようになりました。

［エディット］コントロール

以下の特性は、［エディット］コントロールでサポートされません。

  • 拡張ウィンドウ …… デフォルトの内部ウィンドウとしてサポートされ、任意のサイズで定義することはできません。前のバージョンで、拡張ウインドウが使用されている場合、変換ユーティリティで削除されません。手動で削除することができます。

  • スクロールバー

［水平スクロール］特性には、「ワードラップ」の値が設定されます。

［エディット］コントロールに割り当てられた項目をイベントによって更新した場合、更新値はコントロールを抜ける前に表示されます。

数値の計算設定（コントロールでの'2+'のような記述）はサポートされません。

［色］特性に設定された値がパーキングしている時に表示されます。

［グループ］コントロール

テキストがコントロールに設定されていなくても、グループの上辺線の位置はコントロールのフォントサイズによって設定されます。［グループ］コントロールの最上位に線を表示させたい場合は、サイズが'1'のフォントを使用する必要があります。

［イメージ］コントロール

以下の特性は、［イメージ］コントロールではサポートされません。

  • イメージ効果

  • パーキング/修正関係の特性 …… 次の特性がオンライン用の［イメージ］コントロールから削除されました。このため、実行時に［イメージ］コントロールからズームして、ファイルを選択することができなくなりました。

    • 必須入力

    • 修正可

    • 選択プログラム

    • 起動モード

    • ヘルプ画面

    • 自動ヘルプ

    • パーキング可

    • TABで移動

    • TAB移動方向

    • TAB順序

.TGAのイメージフォーマットはサポートされません。

［イメージ］コントロールの［スタイル］特性のデフォルト値は、「境界なし」になります。

［プッシュボタン］コントロール

ハイパーテキスト・ボタンは、デフォルト色を内部の色テーブルではなくCLR（Common Language Runtime）から取得します。

オンラインタスクでの［プッシュボタン］コントロールの［ボタンスタイル］特性には、「イメージ上テキスト」のオプションが無くなりました。これは、リッチクライアントと同じように動作します。ボタンに表示するテキストは、［書式］特性で定義され、ボタンイメージがデータ項目や（データ項目が定義されていない場合）［デフォルトイメージ］特性によって定義されます。

変換ユーティリティは、「イメージ上テキスト」に設定されたコントロールをイメージボタンに変換します。

［ラジオボタン］コントロール

［表示］特性が「ボタン」に設定された場合、［ラジオボタン］コントロールの［複数行］特性はサポートされません。

［RTFエディット］コントロール

［RTFエディット］コントロールには、デフォルトのコンテキストメニューがありません。エンドユーザがRTFの色やフォントを変更できるようにさせたい場合は、メニューにMagic xpaの内部イベント（例えば、「色の変更」や「フォントの変更」、「左揃え」、「右揃え」）を定義し、このメニューをコントロールの［コンテキストメニュー］特性に割り当てることで実現できます。

［RTFエディット］コントロールは、透過の背景色をサポートしません。

［RTFテキスト］コントロール

［RTFテキスト］コントロールは、透過の背景色をサポートしません。

［スタティック］コントロール

オンラインタスクでの［テキスト］コントロールの名前は、［ラベル］コントロールに変更されました。

以下の特性は、［スタティック］コントロールではサポートされません：

  • スタティックタイプ

  • 線幅

  • 線種

［サブフォーム］コントロール

［非表示での再表示］特性がオンラインタスクでも追加されました。

この特性は、Magic uniPaaS Ver1.9 と同じ方法で［サブフォーム］コントロール内で実行するタスクを読み込み、再表示することができます。

  • Yes …… ホストタスクの［レコード前］の後で最初と、各サブフォームが再表示されると、サブフォームタスクが呼び出されます。これは、サブフォームがコンテナコントロールに配置され、Magic uniPaaS V1Plusでコンテナコントロールが非表示の場合と同じように動作します。

  • No …… サブフォームが表示される場合のみ、サブフォームタスクが呼び出されます。これは、サブフォームの［可視］特性が指定されたMagic uniPaaS V1Plusと同じように動作します。

「No」が定義されているネストされたサブフォームの場合、親サブフォームが実行時に「True」と評価されると、ネストされたサブフォームも「True」として動作します。

サブフォームがコンテナコントロールに配置され、［可視］特性も定義された場合、Magic uniPaaS V1Plusで［可視］特性と同じ式が定義されている場合と同じように動作します。

さらに、このバージョンまでは、［サブフォーム］コントロールをクリックすると、最初のコントロールの［コントロール前］と［コントロール後］が常に実行されていました。この動作は修正され、クリックされたコントロールの［コントロール前］だけが実行されるようになりました。

サブフォームの［可視］特性に式が設定されている場合、サブフォーム・タスクにフォーカスがある場合、この式は"False"（サブフォームを非表示にする)として動作しません。この動作を有効にするには、CtrlGoto関数を使用してフォーカスを親タスクの方へ移し、親タスクで処理され、サブフォームの可視を制御する式を変更するイベントを［ウェイト］特性が「No」で発行する必要があります。

[サブフォーム]コントロール上で実行しているオンラインタスクが実行できない場合、そのタスクは終了しサブフォームは非表示となりますがホストタスクは実行状態で継続します（以前は、ホストタスクも終了していました）。例えば、［空のデータビュー許可］特性が「No」に設定され、［登録］特性が「No」に設定されている場合、タスクは終了しサブフォームは閉じますが、親タスクはそのまま実行します。（サポートバージョン：2.4）

［タブ］コントロール

［タブラベル位置］特性の左右のオプションは削除されました。

タブにデフォルト値が定義されていない場合、最初のタブが選択され表示されます。

［テーブル］コントロール

スタイル、ウィンドウ内テーブル、最終区切線、幅固定の各特性はサポートされません。

［テーブル］コントロールで［リストボックス］コントロールを配置することはできません。

［カラムのマーキング ］特性は、削除されました。

テーブルカラムの区切り線をダブルクリックしてもカラムの大きさは変更されなくなりました。

テーブル内でパークしている際、マウスのスクロールのみが可能です。

［ツリー］コントロール

［ツリー］コントロールは、マルチマーキング、ドラッグ＆ドロップまたは透過の背景色をサポートしません。

フォーム特性

Magic uniPaaSの分割フォームが定義されたタスクを移行すると、フレームセットフォームが追加されます。このフォームは、フレームの1つで、既存のフォームへの参照定義が含まれています。

移行後に、以下の処理を行う必要があります。

  • 他のフレームに対して手動で呼び出すプログラムを定義し、［コール］処理コマンドの定義を削除します。.

  • 呼び出されるプログラムの［タスク特性］の［タスク終了条件］特性（Level(1)='RP'または、Level(1)='TP'が定義されています）を修正します。

  • 分割フォームのモデルは2つのモデルに変更されます。一つはフレームセット用、もう一つは表示されるフォーム用です。フォームがコンポーネントに定義されたフォームモデルを定義している場合、表示フォームモデルを表示フォームに手動で割り当てる必要があります。

GUI表示フォームの［左辺位置］と［上辺位置］の各特性は、［X］と［Y］の特性に変更されました。

フォームの［開始位置］特性が「デフォルト」に設定されている場合、Magic uniPaaS とMagic xpaでは、オンラインタスクのフォームサイズが異なります。

.TGAイメージは、フォームの［背景］特性でサポートされません。

モーダルウィンドウ

データ項目またはコントロールの［選択プログラム］特性を使用してプログラムが呼び出される場合、［ウィンドウタイプ］はモーダルとなり、MDI子ウィンドウ（MDIとして実行した場合)やフロート（SDIで実行した場合)で表示されません。

モーダルウィンドウは、並行プログラムの実行を停止し、Magic uniPaaS V1Plusでのアプリケーションモーダルというウィンドウタイプと同じように動作します。

［ウィンドウタイプ］から「アプリケーションモーダル」は削除されました。（サポートバージョン：2.2）

MDI調整ウィンドウ

［ウィンドウタイプ］が「MDI調整」として定義されたプログラムが、「SDI」として定義された別のプログラムから呼び出される場合、MDI調整プログラムはアプリケーションMDIに表示されます。

分割フォーム

［ウィンドウ分割］特性と［ウィンドウタイプ］特性の「分割子ウィンドウ」はサポートされません。その代わりに新しいフレーム機構を使用することができます。

プログラムまたはバッチタスクを分割子ウィンドウ内で実行させることはできません。

［フレーム特性］から呼び出されたプログラム/タスクにパラメータを渡すことができ、これらのパラメータを変更すると自動的に再表示されます。

2つ以上のフレームが配置されている場合、親タスクから直接複数のプログラムを呼び出すことができます。

注意：

  • 分割フォームは、子ウィンドウとして実行することができ、［位置］特性を定義することができるため、親のウィンドウのサイズを変更すると、分割フォームのサイズも同様に変更されます。フレームフォームには［位置］特性がないため、分割フォームがフレームフォームに移行され、それが子ウィンドウとして使用されている場合、フレームフォームはサイズが変更されません。実行時に同じように動作させるためには、ホスト側でサブフォームを作成して、サブフォームでフレームタスクを実行させる必要があります。

  • フレーム内に［コール］処理コマンドで起動したプログラムを呼び出す機能は、オンラインタスクで現在利用できません。これは、将来のバージョンで追加される予定です。

外部ツールによる修正

GUIレイヤがWin32からWindowsフォームに変更されたため、外部ツール（例えばget.dll)でMagicフォームとコントロール上で行われるいかなる操作も動作しません。

CtrlHWND（)とWinHWND（)関数は、FromHandle（)関数を使用している.NETライブラリを参照するために使用することができる.NETオブジェクトのハンドルを返します。 これらのオブジェクトを参照する既存のWin32のUDF/UDP dllは、動作しません。

関数

以下の関数は、サポートされなくなりました：

  • CLeftMDI

  • CTopMDI

  • HitZOrdr

  • SplitterOffset

DirDlg()関数 …… .NETライブラリ内の DirDlg関数を実装したことにより、タイトルとフラグのパラメータがサポートされなくなりました。

Cleft()とCTop()関数は、（リッチクライアントと同じように)CX()とCY()関数に置き換わりました。CX()とCY()関数は、すべてのタスクタイプで利用できます。

以前のオンラインタスクでは、式にデータ項目が使用されていなくても、関数（によっては（例えばInTransとViewMod）、常に再評価されました。この動作は変更され、式が変更された項目を使用している場合だけ、再評価されます。

以下の通りにすることで、レコード移動時は以前のように動作させることができます。

  1. 変数項目（［データビューの一部］を「No」に設定)をプログラムに追加します。

  2. ［レコード前］で変数をFalseに更新します。

  3. ViewMod()では、以下の条件を指定した式イベントによるロジックユニットを追加します。

ViewMod(0) AND A<>ViewMod(0) ［A：変数項目］

ロジックユニット内で、ViewMod（0)で、変数項目を更新します。

  4. InTrans()では、［コントロール修正］イベントに対する［イベント］ロジックユニットを追加します。

ロジックユニット内で、変数項目をInTrans（)で更新します。

これだけです。これで、項目はそれに応じて更新され、フォーム上で使用することができます。

タスク特性

［前面表示］特性は、サポートされません。Magic uniPaaS V1Plusでは、［MAGIC_SPECIALS］セクションのSpecialOldZorderパラメータを「Y」に設定した時だけ表示されていました。

以下のタスクモードは、オンラインタスクでサポートされなくなりました：削除、位置付、範囲、キー、ソート、ファイル、オプション。

SDI

SDIのウィンドウタイプは、並行実行のプログラムでなくても指定できます。

並行実行でないプログラムがSDIウィンドウで実行した場合、（他のウィンドウの場合のように)親タスクを閉じると、ウィンドウが閉じることを意味します。

実行時は、EscボタンをクリックしてもSDIウィンドウは閉じません。Escを使用してSDIウィンドウを閉じるためには、Escを押下すると［ウィンドウを閉じる］イベントを発行するロジックユニットを作成してください。

SDI実行モード

［動作環境］ダイアログの［実行モード］から「SDI」が削除されました。

SDIスタイルで実行するためにMDIウィンドウを表示させないようにするには、メインプログラムの［タスク特性］の［ウィンドウを開く］特性を「No」に設定します。

入出力ファイル

［メディア］カラムの「コンソール」タイプは、サポートされなくなりました。Ver1.xのプロジェクト内でコンソール・メディアが定義されているタスクは、［プレビュー］特性が｢Yes｣に設定された｢GUI形式プリンタ｣に変更されます。

エンドユーザ機能

オンラインタスクの実行時に使用できる組み込み型のエンドユーザ機能の一部がサポートされなくなりました。

この機能には、範囲や、位置付、インデックス変更、ソートとデータ出力の各機能が含まれています。

これらの特性はまだ［タスク特性］ダイアログに表示されていますが、実行エンジンで処理されません。

新しいコンポーネントが追加され、範囲や、位置付、ソートとデータ出力の各機能をよりよいGUIで提供されます。このコンポーネントは、ソースコードも提供されるため、任意に変更することができます。

範囲と位置付を実行している間、式エディタを開くことができません。

ステータスバー

ステータスバーには、ユーザ名が表示されなくなりました。

その他動作の違い

［コントロール］特性の［選択プログラム］特性から呼び出されたタスクは、必ずモーダルウィンドウで表示されます。

画面やビューの再表示のタイミングが変更されたため、以下ような動作で値が変更されない場合があります。

  • ［エディット］コントロールの［データ］特性の式でユーザ定義関数を使用した場合、フィールドの移動による再計算処理が実行されません。式には、内部関数や演算子を使用するように変更してください。

  • ViewMod関数やInTrans関数の結果の値は即、'False'に変更されるため。各フィールドに対する［項目変更］ロジックユニット（または、コントロールに対する［検証］ロジックユニット）を定義して、その中でViewMod関数の値を変数項目に格納するようにしてください。

  • F10キーに対する［イベント］ロジックユニットの動作が、Magic uniPaaSと異なります。Magic xpaでは［エディット］コントロール以外に［イベント］ロジックユニットが定義されている場合、ロジックユニットの実行後にカーソルがメニューバーに移動します。

環境設定

以下の環境設定は、サポートされなくなりました。

  • 実行時のカスタムコピーライト(RtUserCopyright)

  • コピーライトメッセージ表示 (CopyrightMessages)

  • GUI実行時ツールバー (RtToolBarGUI)

  • イメージキャッシュサイズ(ImageCacheSize)

  • イメージキャッシュ (ImageCacheCheckTime)

  • インデント文字(IndentCharacters)

  • 日付入力 (InputDate)

  • ロゴファイル(LogoFile)

  • プルダウンメニュータイムアウト(MenuCloseTimeout)

  • MDIClientEdge

  • MDIClientImageFile

  • MDIClientImageStyle

特殊設定

［MAGIC_SPECIALS］セクションの以下の特殊設定は、サポートされなくなりました。

  • Special3DStyle

  • SpecialAsyncCOMEvents

  • SpecialBatchOptions

  • SpecialCenteredFloatingWindow

  • SpecialExitControlOnClick

  • SpecialExitNoParkable

  • SpecialFlat2DCombo

  • SpecialNoSplash

  • SpecialOldWinRunner

  • SpecialOldZorder

  • SpecialPaintFormInCreate

  • SpecialShowDBLogin

［dbMAGIC_ENV］セクションの以下の特殊設定は、サポートされなくなりました。

  • EnableRefreshAction

  • WriteCheckerLog …… 通常機能として組み込まれていますが｢Y｣を設定するとログファイルが作成されます。

  • DisableTransparent

  • TrimParamDSQL

  • VCGetUnit

ユーティリティ

以下のユーティリティはサポートされなくなりました。

  • Mg2Mgic


サポートされなくなった内部イベント

以下の内部イベントは､Magic xpaではサポートされなくなりました。

注意：

［内部イベント］一覧には表示されるものもありますが、動作しません。

  • その他のウィンドウ

  • インデックス

  • 開始値

  • 終了値

  • 入出力ファイル

  • OLE2

  • 全項目クリア

  • 項目クリア

  • 式定義

  • オブジェクトの挿入

以下のイベントは、 Magic Studioでのみ動作します。アプリケーション内で発行しても動作しません。

  • 動作設定用イベント

  • Magicヘルプ

  • Magic情報


Magic V9Plusから移行する場合

ホーム > マイグレーション > Magic V9Plusから移行する場合

Magic eBusiness Platform V9Plusから Magic xpaへ移行する場合

Magic xpaでは、Magic V9Plus以前のバージョンのリポジトリ出力ファイルの構造をサポートしていません。以前のバージョンから移行する場合は、リポジトリ出力ファイルを一旦Magic uniPaaS V1Plusの構造に変換する必要があります。ここでは、Magic V9Plus以前から Magic uniPaaS V1Plus用のアプリケーションに移行する方法について説明しています。

アプリケーションをMagic V1Plus用から Magic xpa用に移行する方法については、｢Magic V10 または Magic uniPaaS から移行する場合｣を参照してください。

Magic xpaには、アプリケーションを移行するために以下のユーティリティも提供しています。これらは、Magic xpaのプログラムメニュー内のマイグレーションのサブフォルダ内にショートカットがあります。このため、Magic uniPaaS V1Plusをインストールする必要はありません。

  • ビルダデータ変換ユーティリティ …… V9Plusの各インタフェースビルダ（uniPaaS、COM、WSDL、EJB）によって作成されたデータをMagic xpaのプロジェクトファイルに変換します。

  • MAGIC.INI変換ユーティリティ …… V9PlusのMAGIC.INI ファイルをMagic xpa用に変換します。

Magic uniPaaSへの移行パス

過去のバージョン(V4 ～ V9Plus) から Magic uniPaaS V1Plusに移行する手順については、以下の通りとなります。

Magic uniPaaS V1Plus用のプロジェクトに変換後、このプロジェクトをMagic xpa でオープンすると、Magic xpa用のアプリケーションへの移行ウィザードが実行され、変換が完了します。

Magic uniPaaS V1Plusへの移行は、V9Plus Ver9.4SP6a (およびそれ以降)のバージョンのリポジトリ出力形式ファイルを、Magic uniPaaS V1Plus添付の V9Plus コンバータにより、Magic uniPaaS V1Plusのプロジェクト形式に変換することにより行います。このため、MCFのバージョンにより、移行手順が異なります。

  • V9Plus V9.4SP6a およびそれ以降のバージョンの場合(上図 ① のケース)：

    1. V9Plus Ver 9.40J SP6a 以降のアプリケーションを準備します。

    2. アプリケーションのリポジトリ出力を行います。

    3. 変換ユーティリティ を使用して、Magic V9Plus（SP6以上）のアプリケーションをMagic uniPaaS V1Plusのプロジェクトファイルに変換します。

  • V8.2 から V 9.40J SP3c までのMCFの場合 (上図 ② および ③ のケース)： いったん V9Plus Ver 9.4J SP6a 以降に移行した上で、上記手順を行ってください。

  • V4 ～ V7 製品のMCFの場合 (上図 ④ のケース)： まず V8.2 に移行し、更に V9Plus Ver 9.4J SP6a 以降に移行した上で、上記手順を行ってください。

移行のための旧バージョン

上記のように、V9Plus Ver9.4SP6a より以前のバージョンからMagic uniPaaS V1Plusにアプリケーションを移行するには、V9Plus Ver9.4SP6a （あるいは、V8.2) が必要となります。Magic xpaの製品DVD-ROMには、開発者の移行の便のために、V9Plus Ver9.4SP6a および V8.2K4SP2 の簡易版が同梱されています。

これらのバージョンは、移行目的のためだけに提供されますので、次のような制限があります。

  • 基本的に、リポジトリ入力と出力を行うためにだけ利用します。

  • 開発・実行機能も利用できますが、移行の確認と最小限必要な修正のためにだけ利用してください。アプリケーション単純移行の目的を超える、新しいアプリケーション開発や新しい機能の追加のために利用することは認められていません。

  • Web機能実行のためのモジュール類(MRB、リクエスタ、ブラウザクライアントモジュール等)およびSQL系のゲートウェイのインストール・設定は行われません。SQL系のDBMSを利用したアプリケーションを移行する場合は、別途インストールファイルとライセンスが必要です。ライセンスは、MSJの担当営業にお問い合わせください。

  • 実運用環境で利用することは認められません。

  • 使用権は、ご購入になった uniPaaS Studio製品に準ずるものとし、特定のPC1台にのみインストール可能です。

V9Plusからのコンバート

  • リポジトリ出力を行うV9Plusの開発版は、mgconstw.jp2を設定して起動してください。

  • リポジトリ出力を行うV9Plusの開発版の MAGIC.INI に[dbMAGIC_ENV]NativeTranslation = Yが設定されていると、正しくコンバートできないことがあります。

ファントムタスクのハンドリングについて

Ver 9.40J SP3 では、ファントムタスクのハンドリングに関する拡張が行われ、［レコードメイン］だけでなく、他のハンドラレベル（［コントロール前］/［コントロール後］、イベントハンドラなど）に［コール］処理コマンドが定義されている場合でも、ファントムタスク呼び出しのために使用されるようになりました。この機能の詳細については、V9Plus (Ver 9.40J SP3c以降) のREADME.CHM の「9.40J SP3 での新機能」のページに記述されています。この機能拡張は、Magic uniPaaS V1Plusにおいても有効です。

これはイベントベースのアプリケーション開発スタイルをより使いやすくするための拡張ですが、Ver 9.40J SP1a および、V8.2、V7.x などを含む旧バージョンから移行を行うと、プログラムの構造によっては、この機能拡張によって、ファントムタスクにカーソルが移動してほしくないときに移動してしまう、という現象が起こる可能性があります。

このような場合には、次のようにファントムタスクを呼び出す［コール］処理コマンドに条件付けを行い、不要なときに［コール］処理コマンドが実行されないように、プログラムを修正してください。

  • ［コントロール後］でファントムタスクを呼び出している場合、［コール］処理コマンドに Level(0) ='CS_コントロール名' というような条件を付ける。

  • プッシュボタンに割り当てられた[イベント]ロジックユニットでファントムタスクを呼び出している場合には、LastClicked ()='ボタンのコントロール名' という条件を付ける。

関連トピック：

V9Plusとのの違い


V9PlusとMagic xpaの違い

ホーム > マイグレーション > Magic V9Plusから移行する場合 > V9Plusとのの違い

V9Plusとの違い

ここでは、Magic eDeveloper V9 と Magic uniPaaS V1/V1Plus との大きな違いについて説明しています。Magic uniPaaS V1以降の違いについては、 Magic xpa 2.xでの違い を参照してください。

アプリケーションのリポジトリ出力を行う前に、以下に挙げるようなMagic xpaでサポートされない機能を修正する必要があります。これらの機能は、変換処理では、無視されてしまいます。

表記の変更 | データベースとDBMS | タブ
メモ型 | インターネット特性 | ウィンドウ特性
基本色とフォント | マルチユーザアクセス | Unicode
セキュリティファイル | リポジトリ出力 | 通貨変換サポート
キーボード割り付け | 権利 | コンポーネント
バージョン管理 | プロジェクト | BLOB
Webオンライン | タスク | メニュー
HTMLフォーム | 処理コマンド | 印刷プレビュー
カラム特性 | ロジックとロジックユニット | 削除されたり名前が変更された関数

メモ型

メモ型の項目は全て文字型に変換されます。

メモ型に定義されているデータベースフィールドは、格納形式が「Memo」の文字型に変換されます。

このため、VarAttr関数も「M」が返ることはありません。ただし、コンバート処理によってVarAttr関数の戻り値を修正することはありません。これらの処理は、検索機能を利用して手動で変換する必要があります。

基本色とフォント

アプリケーションの基本色とフォント定義を継続して使用したい場合は、変換されたプロジェクトのアプリケーション用基本色／フォント定義ファイルや内部用基本色／フォント定義ファイルを設定しなければなりません。

TrueTypeと限られたオープンタイプのフォントのみをサポートします。

フォント傾きは、［ラベル］コントロールとカラムのヘッダのみサポートします。（サポートバージョン：2.4）

アプリケーションで非TrueTypeフォントを使用している場合、［フォント］テーブル非TrueTypeフォントをTrueTypeフォントに変更してください。

セキュリティファイル

旧バージョンのセキュリティファイル（usr_std.jpnなどの）の内容を継続して使用したい場合は、既存のセキュリティファイルを変換する必要があります。コマンドラインからusrupd.exeユーティリティを実行することによって、変換処理を行うことができます。この場合の構文は、以下のようになります。

usrupd <入力ファイル名> <出力ファイル名>

<入力ファイル名> ：V9Plusのセキュリティファイルの名前を指定します。

<出力ファイル名> ：変換されるファイルの名前を指定します。

注意：

Magic xpaでは、実行権利のみ割り当てることができます。

キーボード割り付け

Magic xpaは、２つのキーボード割付ファイルを提供します。act_std_V9.jpnファイルは、Magic V9Plusのショートカットと互換性があります。act_std.jpnファイルは、Microsoft® Windows®と互換性のある組み合わせキーを提供しています。

バージョン管理

Magic xpa は、MVCS機能を使用しません。

開発時は、SCC（Source Code Control） API V1.01（Visual Source Safeなど）を使用したサードパーティ製のバージョン管理製品を使用して管理します。

Webオンライン

Webオンラインは、Magic xpaではサポートされません。

[Webオンライン応答形式]フォームは、Magic xpaではサポートされません。

アプリケーションを変換すると、これらのタイプのフォームは削除され、これらのフォーム定義している[フォーム出力]処理コマンドのフォーム定義は、フォームが定義されていない状態になります。

リポジトリ出力を行う前に、このタイプのフォームをあらかじめ削除するようにしてください。

HTMLフォーム

Magic xpaは、[HTML形式]フォームをサポートしません。

アプリケーションを変換すると、これらのタイプのフォームは削除され、これらのフォーム定義している[フォーム出力]処理コマンドのフォーム定義は、フォームが定義されていない状態になります。

リポジトリ出力を行う前に、このタイプのフォームをあらかじめ削除するようにしてください。

注意：

  • [HTML形式]特性は、変数項目、カラム、およびモデルの各特性の[スタイル]セクションから削除されました。

  • [HTML形式]クラスは、[モデル]リポジトリから削除されました。

  • [インターネット開発ファイルルート]特性は、[アプリケーション特性]から削除されました。

  • インターネットAPG機能は、サポートされなくなりました。

  • [HTMLマージ形式]のインタフェースタイプは、[マージ形式]となりました。変換ユーティリティは、[HTMLマージ形式]の指定を[マージ形式]に変換します。

カラム特性

Magic eDeveloper V9Plusの実行時、カラムの［可視］特性を変更することで表示させない場合、テーブル幅は短くなりました。この動作は変更され、テーブル幅はカラムの可視性に影響を受けなくなりました。

データベースとDBMS

DBMS

[DBMS] テーブルから、以下のカラムが削除されました。

  • 2相コミット

  • 排他トラン

  • ID

MAGIC.INI の[MAGIC_DBMS] セクションから以下のパラメータが削除されました。

  • OnePhaseCommit

  • TwoPhaseCommit

  • NotTransLockExcl

  • TransLockExcl

データベース

[データベース] テーブルから、以下のカラムが削除されました。

  • Magicサーバ

[データベース] 特性から、以下のカ特性が削除されました。

  • 共通のデータ辞書

  • XA トランザクション

インターネット特性

  • Magic uniPaaS V1Plusから、ブラウザクライアント機能は、削除されました。［タスク特性］の［タスクタイプ］特性や［フォーム］テーブルの［インタフェースタイプ］には、ブラウザクライアントのオプションが表示されますが、ブラウザクライアントプログラムを作成しても動作しません。

  • [インターネット開発ファイルルート]特性は、[アプリケーション特性]から削除されました。

  • APGからインターネットオプションが削除されました。

マルチユーザアクセス

［動作環境］ダイアログの［マルチユーザ］タブから［マルチユーザアクセス］が削除されました。

リポジトリ出力

［リポジトリ入出力］ダイアログの［操作］欄から「仕様書出力」オプションが削除されました。

権利

開発用の権利設定は削除されました。

プロジェクト

Magic xpaでは、プロジェクトの情報がMCFとして保存されません。XMLソースファイルに保存されます。

タスク

タスクレイヤ

  • メインソースの定義やリンク定義、データ項目の定義は、タスクの［データビュー］エディタに移動しました。

  • タスクのロジックは、タスクの［ロジック］エディタに配置されます。

  • タスクの全てのフォームは、タスクの［フォーム］エディタに配置されます。

DBテーブル

タスクで使用されないDBテーブルのエントリは、［データビュー］エディタ内の宣言処理に置き換えられます。

オープン／共有モード

[DB テーブル]テーブルの[オープン] カラムでサポートされていた以下のモードが削除されました。

  • F=高速

  • D=破損

また、「再検索」オプションはSQLデータのソースではサポートされません。サポートされないオープンモードは、「通常」に置き換えられます。

処理コマンド

［エディット］処理コマンド

[エディット]処理コマンドは、Magic xpaではサポートされなくなりました。

変換ユーティリティは、この処理コマンドを[コールOSコマンド]処理コマンドに変換します。

リポジトリ出力を行う前に、[エディット]処理コマンドをあらかじめ削除するようにしてください。

［コールWebサービス］処理コマンド

V1Plusでの［コールWebサービス］処理コマンドは、［コールWebサービスLite］処理コマンドに変わります。

［確認リンク］コマンド

［リンク］処理コマンドの確認オプションは、Magic xpaではサポートされません。

変換ユーティリティでは、［確認リンク］を［照会リンク］と［エラー］処理コマンドに変換します。

［リンク］コマンドの［戻り値］特性にデータ項目が定義されている場合、ユーティリティは設定するデータ項目を条件値として使用します。指定されていない場合、ユーティリティは位置付データとリンク結果が合っていない場合チェックするための条件を設定します

位置付式とリンク結果一致ならば、それはチェックします。

前のバージョンの［確認リンク］に実行条件が設定されていた場合は、その条件が追加されます。

注意：

［エラー］処理コマンドのメッセージは、言語に依存しません。変換後に、メッセージの構文を変更するために、テキストの検索／置換の機能を使用することができます。

ロジックとロジックユニット

［レコードメイン］ロジック

Magic xpaは、レコードメインを必要としません。しかし、レコードメインの互換機能が利用できます。Ver9.4のアプリケーションをMagic uniPaaSのプロジェクトに変換した時点で［レコードメイン］のロジックが［RM互換］ロジックユニットに変換されます。これは、Ver9.4のレコードメインと同じような方法でデータ項目間にロジックを定義することができます。このロジックユニットには［データビュー］エディタで入力された全てのデータ項目が表示されており、［データビュー］エディタでのデータ項目の参照表示の間にロジックを定義させることができます。

コントロール変更

［コントロール変更］ハンドラは、［項目変更］ロジックユニットに変換されます。

コントロールに割り当てられたデータ項目は、［項目変更］ロジックユニットに割り当てられます。

複数の［コントロール変更］ハンドラが同じコントロールに対応しており、有効条件が異なる場合も、機能が維持されます。

同じデータ項目が異なるフォームに表示され、それぞれ独自の［コントロール］ハンドラーがある場合、新しい［項目変更］ロジックユニットはデータ項目毎に作成されます。そして、有効条件の式は、新規に追加されたMainDisplay関数の内容に基づきます。

［項目変更］ロジックユニット内の処理コマンドは、以下の実行条件が定義された［ブロック］処理コマンドの中に定義されます。CHG_REASON = 0（前のバージョンの［コントロール変更］ハンドラーは、CHG_REASON = 0が定義された［項目変更］ロジックユニットとして動作します)。

［コントロール］ロジックユニット

コントロールに設定されるロジックユニットは、コントロールの ISNによって参照していたものが、コントロール名で参照する様に変更されます。

［コントロール］ロジックユニットの［スコープ］特性は「タスク」に設定されます。前のバージョンでは［コントロール］ハンドラが同じタスク内でのみ処理されてたため、これと同じ動作を維持します。

同じ名前の異なるコントロールに対するハンドラーが定義されている場合、変換処理しません。したがって、同じコントロール名に対する重複したロジックユニットが作成されます。

異なるクラス 0のフォームの同じコントロール名に対応したハンドラが定義されていて、［メイン表示］特性に条件が定義されている場合、フォームにもとづく各ロジックユニットの有効条件が設定されます。

［メイン表示］特性が定義されていない場合、メインフォームのコントロールに対するロジックユニットの有効条件は「No」に設定されます。

タスクと［レコード］ハンドラ

前のバージョンの［タスク前］/［タスク後］と［レコード前］/［レコード前］の各ハンドラーは、対応するロジックユニットに変換されます。ハンドラーの内容は、ロジックユニットに移ります。

強制レコード終了

［強制終了］特性が「レコード」に設定されたイベントは、「レコード更新前」に変更されます。

タブ

Ver9.4では、タブ移動の順序はレコードメインで定義していました。Magic xpaでは、オンラインタスクの［フォーム］エディタで、［コマンド］パレットの［自動タブ順序］で現在のフォーム上の全てのコントロールにタブ順序を自動的に定義するように指定できます。このパレットをクリックすることで自動タブ順序モードを無効にすることもできます。この特性は、コントロール間でのタブの移動順序を定義します。

パーキング可

データ項目定義の［条件］特性から、コントロールの［パーキング可］特性に移りました。

コントロールにデータ項目が割り当てられていない場合、［パーキング可］特性は「Yes」に設定され、無効化されます。

タブ移動方向

データ項目定義の［カーソル方向］の値は、［タブ移動報告］特性に移りました。

  • 「両方向」の値は、そのまま「両方向」になりました。

  • 「前方」の値は、「前方のみ」の値になりました。

  • 「後方」の値は、「後方のみ」の値になりました。

タブ順序

タブ順序の値は、レコードメインのデータ定義の順番で定義されていましたが、Magic uniPaaS 以降は指定されたコントロールの［タブ順序］特性の値に代わりました。

データ項目が割り当てられていないコントロールの［タブ順序］特性は、コントロールの位置やZオーダによって決定されます。次のタブ順序は、データが定義されたコントロールの後にから開始されます。

自動タブ順序

フォーム上のコントロールのタブ順序をコントロールの位置やZオーダに基づいて自動的に設定する場合は、自動タブオーダのモードをオンに設定します。手動にする場合は、オフに設定します。

タブで移動

この特性の値は、全てのコントロールで「Yes」設定されます。

ウィンドウ特性

［フォーム特性］の［ウィンドウタイプ］特性が「モーダル」、「フロート」、「子ウィン」または「分割子ウィン」の場合は、適切な値に変換されます。この特性は、「フロート」、「モーダル」と「子ウィン」に変換されます。

「デフォルトウィンドウ」が定義された並行プログラムは、呼び出したタスクのウィンドウタイプに関係なく、「MDI子ウィンドウ」としてオープンされます。

Unicode

Magic xpa は、Unicodeをサポートします。

通貨変換サポート

通貨変換機能が削除されました。

  • [通貨変換ファイル]設定は、[動作環境]ダイアログボックスから削除されました。

  • MAGIC.INI の[MAGIC_ENV]セクションで「EuroFile」の設定が削除されました。

  • [基準通貨]と[通貨変換ファイル]特性は、[アプリケーション特性]ダイアログボックスから削除されました。

  • ユーロ関数が削除されました。

コンポーネント

Javaコンポーネントジェネレータは、[コンポーネント]リポジトリの一部となりました。

XMLコンポーネントジェネレータは、削除されました。（[データ]リポジトリでの定義取得機能の一部となりました。）

BLOB

［GUI表示］スタイ「リッチエディット」として定義された Ver9.4での BLOB型データ項目は、［内容］特性が「ANSI」のBLOBデータ項目に変換されます。他の全てのBLOB項目は、「バイナリ」として変換されます。

空のBLOBと既存のファイル名を指定してBlb2File関数を実行した場合、Ver9.4ではファイルが変更されませんでしたが、Magic xpaでは削除されるようになりました。

メニュー

デフォルトのプルダウンメニューは、メインプログラムで定義されたものになります。

メニューに複数のプログラムを追加する機能は削除されました。

印刷プレビュー

［印刷プレビュー］ダイアログは、（Escキーではなく）Alt+F4で閉じるようになりました。


削除されたり名前が変更された関数

以下の関数は、サポートされなくなりました。

Pref

WebRef

EuroCnv

EuroDel

EuroGet

EuroSet

EuroUdp

以下の関数は、名前が変更されました。

Magic V9Plus | Magic xpa
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


旧バージョンのアプリケーションの準備 用語の変更

ホーム > マイグレーション > Magic V9Plusから移行する場合 > V9Plusとのの違い > 用語の変更

用語の変更

以下の項目の名前が変更されました。

V9Plus | Magic xpa
アクション | 内部イベント
ASC 関数 | ASCIIVal関数
ACTリテラル | EVENTリテラル
[コール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 | MgxpaStudio.exe
Mgrntw.exe | MgxpaRuntime.exe
MinMagic関数 | WinMinimize 関数
MRB_ENGINE_CLIENTS_MAP | APPLICATION_CLIENTS_MAP
MRB_EXECUTABLES_LIST | APPLICATIONS_LIST
MRB_REMOTE_EXECUTABLES_LIST | REMOTE_APPLICATIONS_LIST
MTblSet1 関数 | MTblSet 関数 MTblSet1関数（以前のバージョンの関数一覧にも表示されなくなっていましたが使用することはできました)は、サポートされず、MTblSet関数に置き換えられました。変換ユーティリティは、新しい関数に置き換えられます。
[データ出力]処理コマンド | [フォーム出力]処理コマンド
ResMagic関数 | WinRestore 関数
テーブル一覧 | データソース一覧
テーブル特性 | データソース特性
[テーブル]リポジトリ | [データソース]リポジトリ
開発エンジン | スタジオ（開発エンジン）
WSAttachmentGet 関数 | WSProviderAttachmentGet 関数
WSAttachmentAdd 関数 | WSProviderAttachmentAdd 関数


変換ユーティリティ

Magic xpaは、V9PlusのアプリケーションをMagic xpa用のプロジェクトに変換する変換ユーティリティを提供しています。このユーティリティは、Magic V9Plus SP6以上で作成されたアプリケーションを変換することができます。

注意：

ここで変換されたプロジェクトをMagic xpaで読み込むと、移行ウィザードが実行されバージョン情報が反映されます。

変換ユーティリティにアクセスするには、以下のように操作します。

Windowsの[スタート]メニュー > プログラム > Magic xpa xx Enterprise Studio > マイグレーション > V9Plusアプリケーションの変換ユーティリティ

ウェルカムダイアログが表示されたら、[次へ]をクリックします。V9Plusアプリケーションダイアログが表示されます。

注意：

V9Plus でアプリケーションのリポジトリ出力を行う場合、CONSTファイルは、「Mgconstw.jp2」を使用するようにしてください。

コマンドラインによる変換

コマンドラインプログラムによって変換することもできます。 詳細は、コマンドラインコンバータを参照してください。

注意：

アプリケーションの一部を変換する場合は、コマンドラインプログラムで変換してください。


変換ユーティリティ V9Plusアプリケーションダイアログ

ホーム > マイグレーション > Magic V9Plusから移行する場合 > 変換ユーティリティ > V9Plusアプリケーションダイアログ

V9Plusアプリケーションダイアログ

アプリケーションとそのコンポーネントを変換する場合、[追加]ボタンをクリックして[V9Plusアプリケーション]ダイアログに追加する必要があります。

すでに変換されているコンポーネントに対するすべての参照情報も同時に変換したい場合も[追加]ボタンをクリックしてください。

  • [追加]ボタンをクリックすると、[変換の詳細]ダイアログが表示されます。

  • [次へ]ボタンをクリックすると、[一般的な設定]ダイアログが表示されます。


変換ユーティリティ コマンドラインコンバータ 変換詳細ダイアログ

ホーム > マイグレーション > Magic V9Plusから移行する場合 > 変換ユーティリティ > 変換の詳細ダイアログ

変換の詳細ダイアログ

このダイアログでは、アプリケーションとコンポーネントを変換するのか、以前に変換されたコンポーネントを参照しているかどうかを指定します。

各出力ファイルに対して、4つの選択肢があります（入力した順番は重要でありません）。

  • アプリケーションの変換 …… ユーティリティはアプリケーションをMagic xpa用に変換します。

  • コンポーネントの変換 …… ユーティリティはアプリケーションをMagic xpa用に変換し、変換リスト(最初のダイアログ)内のコンポーネントリポジトリに定義されているMCFまたはMFFへの参照情報を取得します。そして、それらの参照情報を新しく作成されたECFに反映させます。

  • アプリケーションの一部の変換 …… この変換オプションは、V9Plus用の辞書ファイルをMagic xpa用の出力ファイルに変換する処理のみを行います。［追加］ボタンを使用することで、複数のV9Plusの出力ファイルを選択することができ、まとめて変換します。出力ファイルは、V9用の辞書ファイルが配置されているフォルダ内に作成されます。

選択されたオプションに基づいて、V9Plusのアプリケーションの詳細やMagic xpaのプロジェクトの詳細情報を入力してください。

V9Plusアプリケーションの詳細

リポジトリ出力ファイル

V9Plusのリポジトリ出力ファイルのファイル名とパス名を指定します。

アプリケーション識別子

V9Plusのアプリケーションにおいて、［テーブル］リポジトリに物理テーブル名が定義されていないテーブルは、FILと00x（テーブル番号）に2文字のアプリケーション識別子が連結された名前として受け取ります。Magic xpaでは、テーブル名を定義しておく必要があり、自動的には定義されません。アプリケーション識別子を指定することで、ユーティリティが関連するファイル名を自動的に［データ］リポジトリに設定します。

コンポーネントファイル名

「コンポーネントの変換」を選択した場合、このオプションが有効になります。ユーティリティは、コンポーネント(mff)の名前を検索し、Magic xpaの［コンポーネント］リポジトリに［Magicキャビネットファイル］で指定されたキャビネットファイルを参照するように変更します。

Magicプロジェクトの詳細 …… 既に変換されたコンポーネントに対する参照の保存」が選択された場合、このセクションは表示されません。

プロジェクト名

作成するプロジェクトの名前を指定します。

プロジェクトの位置

プロジェクトファイルを作成するパスを指定します。

キャビネットファイルの位置

キャビネットファイルを作成するパスを指定します。

Magicキャビネットファイル

「コンポーネントの変換」を選択した場合、このオプションが有効になります。コンポーネントとして指定されたmffの参照定義をここで指定したecf置き換えます。

注意：

指定できるコンポーネントは1つだけです。複数のコンポーネントを置き換えたい場合は、コマンドラインコンバータを利用してください。

関連トピック：

汎用設定ダイアログ


変換ユーティリティ 一般的な設定ダイアログ

ホーム > マイグレーション > Magic V9Plusから移行する場合 > 変換ユーティリティ > 一般的な設定ダイアログ

一般的な設定ダイアログ

このダイアログでは、V9Plusのアプリケーションで使用されたMAGIC.INIファイルを指定し、ログファイルの保存先のパスを指定します。

V9Plusにおけるモーダルウィンドウのタイトルは、Magic xpaではフルサイズのタイトルより幅が狭くなっています。

このため、モーダルウィンドウの高さを表示内容に応じて広げたい場合は、[V9Plusで”SpecialModalToolWindow”が使用される]というチェックボックスを選択してください。

[一般的な設定]ダイアログには以下の設定欄があります。

設定

内容

V9PlusのMAGIC.INI ファイル

V9Plusアプリケーションで使用されたMAGIC.INIファイル

ログファイルディレクトリの位置

ログファイルが作成されるディレクトリ

ログレベル

以下のオプションがあります。

  • P=一部 …… エラーと動作の変更内容のみ記録されます。

  • F=全部 …… すべて記録されます。

空のMagicハンドラも変換する

レコード前/後、タスク前/後に処理が定義されていなくても変換対象とするかどうかを指定します。V9Plus以前は、これらのハンドラはMagic xpaの組み込みハンドラのため自動的に作成されていました。Magic xpaでは、処理が存在しなければ不要になります。このチェックボックスをチェックすると変換されたアプリケーションに空のハンドラが作成されます。

SpecialModalToolWindowを使用

V9Plusでは、モーダルウィンドウのウィンドウタイトルがMagic xpaのそれより狭くなっています。モーダルウィンドウの高さを内容に合わせて拡大させたい場合は、このチェックボックスをチェックしてください。


変換ユーティリティ コマンドラインコンバータ

ホーム > マイグレーション > Magic V9Plusから移行する場合 > 変換ユーティリティ > コマンドラインコンバータ

コマンドラインコンバータ

Magic xpa は、Magic V9Plus までのリポジトリ出力ファイルを入力することができません。しかし、v9converter.exe と呼ばれるコマンドライン形式の変換ユーティリティを利用することで、V9Plus(Ver9.4SP6以上)のリポジトリ出力ファイルをMagic xpaのプロジェクトファイルに変換することができます。

v9converter.exe ファイルは、Magic xpaのインストールディレクトリにあります。

パラメータを指定しないでユーティリティを実行したり、/? パラメータを付けて実行した場合、コンソール上にヘルプを表示します。

ユーティリティを実行すると、変換結果が画面に表示されます。

変換処理が失敗した場合、コマンドラインパラメータを確認したり、リポジトリ出力ファイルがV9Plus のものであるかどうかを確認してください。このユーティリティは、指定されたプロジェクトディレクトリに.edp ファイルを、Sourceサブディレクトリ内にソースファイルを作成します。

変換ログファイル名とパスはLOG= parameter によって設定できます。パスに空白が含まれている場合は、引用符で囲む必要があります。このパラメータが設定されない場合、デフォルトファイル名が使用されます。デフォルトファイル名はV9Plusの出力ファイル名を基に決定されます。

注意：

V9Plus でアプリケーションのリポジトリ出力を行う場合、CONSTファイルは、「Mgconstw.jp2」を使用するようにしてください。

関連トピック：

構文

変換処理

トラブルシューティング

ConversionUtility.iniファイル


変換ユーティリティ コマンドラインコンバータ 構文

ホーム > マイグレーション > Magic V9Plusから移行する場合 > 変換ユーティリティ > コマンドラインコンバータ > 構文

構文

変換ユーティリティは、2つの出力内容のうちの1つを作成することで、V9PlusのアプリケーションをMagic xpaのプロジェクトファイルに変換します。

  • 必要なソースファイルを持つプロジェクト全体。これは-PROJECTパラメータを指定することで作成されます。プロジェクト全体を移行する場合は、このオプションを使用します。

  • Magic xpa互換のリポジトリ出力ファイル。これは-V10EXPORTパラメータを指定することで作成されます。V9Plusのアプリケーションからオブジェクト指定して移行する場合は、このオプションを使用します。作成されたファイルをMagic xpaで入力することでプロジェクトに反映されます。

変換処理で必要なパラメータは、コマンドラインパラメータとして指定します。

例： V9converter -EXPORT=C:\Myapp.exp -PROJECT="c:\my prjs\prj1" -LANG=JPN -LOCALS=J,.-:

パラメータ

説明

Export

V9Plusアプリケーションのリポジトリ出力ファイル（とパス）を指定します。このパラメータは必須です。

例： V9converter -EXPORT=C:\Myapp.exp

Project

Magic xpaのプロジェクトディレクトリを指定します。

このパラメータを使用すると、V9コンバータ・ユーティリティは、プロジェクトファイル（edpとxml)の全て作成します。.edpファイルは、指定されたプロジェクトディレクトリに保存され、XMLソースファイルがSurceサブディレクトリに保存されます。

指定されたプロジェクトディレクトリがすでに存在している場合、別のディレクトリを指定するように求めるメッセージが表示されます。

参考：プロジェクト名と.edp ファイル名は、プロジェクトのサブディレクトリ名と同じ名前を使用します。

このパラメータは必須ですが、指定されない場合、-V10EXPORT パラメータの値をが使用されます。このパラメータか、V10EXPORTパラメータのどちらかを使用しなければなりません。

注意：

アプリケーションの一部のオブジェクトを移行する場合は、-V10EXPORTパラメータを使用してください。

例： V9converter -EXPORT=C:\Myapp.exp -PROJECT="c:\my prjs\prj1"

V10EXPORT

作成されるMagic xpa用のリポジトリ出力ファイル名を指定します。

このパラメータを指定すると、1つのxmlファイルがMagic xpaのプロジェクト構造に基づいて作成されます。

-PROJECTパラメータを使用しない場合、必須パラメタとなります。-PROJECTパラメータと一緒に指定することはできません。

例：V9converter -EXPORT=C:\Magic94\ChA -V10EXPORT= C:\Mgxpa\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ファイルで指定されている場合、「N」に設定する必要があります。

このパラメータはオプションである。デフォルト値はYです。

NativeTranslation

V9Plus側の実行環境(MAGIC.INI)の[dbMAGIC_ENV]で「NativeTranslation=Y」にしたリポジトリデータを入力する場合、このフラグを「Y」に設定してください。

LINKVALIDATE

このパラメータは、[確認]特性が「Yes」に設定された[リンク]処理コマンドを変換した場合に、確認用のフラグ変数項目を定義する位置を指定します。

  • パラメータを受け取るタスクがある場合、このオプションを使用することを推奨します。パラメータを受け取る項目は、変数項目の後に定義されます。

  • このパラメータが指定された場合、確認リンクが照会リンクに変換されると、変数項目がタスクの最後に追加されます。

  • このパラメータが指定されない場合、変数項目は[リンク]コマンドの前に追加されます。

  • 変数項目を追加する必要がなければ、このパラメータは意味がありません。既存の項目は削除されません。

例： V9converter -EXPORT=C:\Myapp.exp -PROJECT="c:\my prjs\prj1" -LINKVALIDATE

INI

上記のパラメータを定義したパラメータファイル（テキストファイル）を指定することで複数のアプリケーションを一括して変換できます。

パラメータファイルの定義内容は、ConversionUtility.iniファイルのトピックを参考にして下さい。

注意：

  • パスに空白が含まれている場合は、引用符で囲む必要があります。

  • パラメータを指定しないでユーティリティを実行したり、/? パラメータを付けて実行した場合、コンソール上にヘルプを表示します。


変換ユーティリティ コマンドラインコンバータ 変換結果

ホーム > マイグレーション > Magic V9Plusから移行する場合 > 変換ユーティリティ > コマンドラインコンバータ > 変換結果

変換結果

変換ユーティリティによって、V9Plusのアプリケーションがどのように変更されるかを以下に示します。

項目

変更結果

Blob項目

GUI表示形式の[スタイル]特性が「I=リッチエディット」と定義されたV9PLusのBlob項目は、[内容]特性が「A=ANSI」のBlob項目に変換されます。他のすべてのBlob項目は「B=バイナリ」に変換されます。

[コールWebサービス]処理コマンド

［コールWebサービス］処理コマンドは、［コールWebサービスライト］処理コマンドに変換されます。

[コール公開名]処理コマンド

V9Plusのアプリケーションファイル名は変換されません。

変換後のプロジェクトファイに定義されている MFF/MCFファイルを文字検索機能で検索し、手動で変更してください。

[コントロール変更]ハンドラ

[コントロール変更]ハンドラは、[項目変更]ロジックユニットに変換されます。

コントロールに割り当てられた項目は、[項目変更]ロジックユニットに割り当てられます。

同じコントロールが割り当てられ、異なる[有効]特性値が設定された複数の[コントロール変更]ハンドラは、その機能が保持されます。

同じ項目が、異なるフォームで表示され、それぞれのコントロールハンドラに割り当てられている場合、新しい[項目変更]ロジックユニットは各項目に対して作成され、[有効]特性値は、新しいMainDisplay関数に基づいて設定されます。

[項目変更]ロジックユニット内の処理は、条件式:CHG_REASON = 0が指定された[ブロック]処理コマンド内に作成されます。V9Plusの[コントロール変更]ハンドラはCHG_REASON = 0が指定された[項目変更]ロジックユニットと同じです。

[コントロール]ハンドラの処理

コントロールに対するハンドラの設定は、コントロール名によって参照されたコントロールのISNによって参照されるように変更されます。

あらゆる[コントロール]ロジックユニットの[スコープ]特性は、タスクに設定されます。

これは、V9Plusと同じ動作を保持します。V9Plus以来、[コントロール]ハンドラは同じタスク内でのみ実行されます。

同じ名前の異なるコントロール上にハンドラが定義されている場合、変換ユーティリティは実行されません。従って、同じコントロール名に対して重複するロジックユニットが作成されます。重複したハンドラが作成されたことを示すメッセージがログファイルに出力されます。

異なるクラス「0」のフォームから同じコントロール名に対して設定されたハンドラがある場合、[メインフォーム]特性に条件が設定されていると、条件はフォームに従って各ロジックユニットの[有効]特性に設定されます。

[メインフォーム]特性に式が設定されていない場合、メインフォームのコントロールに対するロジックユニットの[有効]特性は、「Yes」に設定されます。他のフォームのコントロールに対するロジックユニットの[有効]特性は、「No」に設定されます。

[DBテーブル]テーブル

[DBテーブル]の設定内容は、タスクの[データビュー]エディタ内の定義処理（メインソースやリンクテーブルの特性）に変換されます。

オープン/共有モード

オープンモードの高速モードと破損モードは、すべてのデータソースにサポートされておらず、また再インデックスモードはSQL系のデータソースではサポートされません。このためサポートされないオープンモードは通常モードに変換されます。

[オープン]特性では、「高速」や「破損」モードがサポートされなくなりました。また、「再索引」モードは、SQLデータソースではサポートされなくなりました。サポートされなくなったモードは全て「標準」モードに変換されます。

サポートされないモードは「標準」モードに変換されます。

イベントとハンドラ

全ての処理は、Magic xpaの同等機能に変換されます。

強制レコード終了

[強制終了]特性に「レコード」が設定されたイベントは、「レコード更新前」に変換されます。

HTMLマージ

「HTMLマージ」は、「マージ」に変更されます。

[リンク]コマンドの[確認]特性

[リンク]コマンドの[確認]特性は、Magic xpaではサポートされません。

変換ユーティリティは、[確認リンク]コマンドを[照会リンク]に変換し、[RM互換]ロジックユニットに[エラー]処理コマンドを追加します。

[リンク]コマンドの[戻り値]特性に項目が設定されている場合、この項目を確認条件に指定します。そうでない場合、ユーティリティは、位置付け式とリンク結果が一致するかどうかをチェックする条件を設定します。

V9Plusの[確認]特性に条件が設定されている場合、条件には、新しい条件が追加されます。

変換処理が終了すると、以下のメッセージが表示されます。

Link Validate migrated as Link Query + Verify Error.

参考：[エラー]処理コマンドのメッセージテキストは、英語表記のままになっています。変換の後に、メッセージ内容を変更するために、テキストの[検索]と[置換]機能が利用できます。

リテラル

[ACT]リテラルは、[EVENT]に変換されます。

[KEY]リテラルは、[INDEX]に変換されます。

[FILE]リテラルは、[DSOURCE]に変換されます。

メモ型

メモ型項目は、記憶形式が「String Memo」に設定された文字型項目に変換されます。

メニュー

[デフォルトプルダウンメニュー] は、メインプログラムの中で参照するように設定されます。

処理コマンド

Magic xpaの処理コマンドの中には、V9Plusと異なるものがあります。これらの処理コマンドは、全て同等の処理コマンドに変換されます。

レコードメイン

レコードメインに定義された処理（ビュー定義を除きます。）は、[RM互換]ロジックユニットに変換されます。ここでは、V9Plusと同じように項目定義の間に処理が定義されているように設定されます。

［四角］コントロールのスタイル

［四角］コントロールは、Magic xpaでサポートされなくなりました。

関数の名前

名前が変更される関数は、該当する名前に変換されます。

タブ

パーキング可

[セレクト]処理コマンドの[条件]は、コントロールの[パーク可]特性に変換されます。

コントロールが項目が割り当てらていない場合、[パーク可]特性は「Yes」に設定され、無効表示になります。

タブ移動方向

[セレクト]処理コマンドの[カーソル方向]（[フロー]カラムの2番目）の設定は、[タブ移動方向]特性に変換されます。

「C=両方向」は、「B=両方向」に変換されます。

「F=前方」は、「F=前方のみ」に変換されます。

「B=後方」は、「C=後方のみ」に変換されます。

タブ順序

レコードメイン内の[セレクト]処理コマンドの定義順によって決まっていたタブの順序は、コントロールの[タブ順序]特性に変換されます。

項目が割り当てられていないコントロールの[タブ順序]特性は、データが割り当てられているコントロールの次から始まって、[上辺位置]、[左辺位置]、[Zオーダ]の各特性の組み合わせに基づいて設定されます。

自動タブ順序

フォーム上のコントロールのタブ順序が、（[上辺位置]、[左辺位置]、[Zオーダ]に基づいた）自動タブ順序の設定内容と一致している場合、フォームの[自動タブ順序]の設定は、「On」に設定されます。そうでない場合、「Off」に設定されます。

タブで移動

この特性の値は、全てのコントロールで「Yes」に設定されます。

タスクとレコードハンドラ

V9Plusの[タスク前/後]と[レコード前/後]のハンドラは、対応するロジックユニットに変換されます。ハンドラ内の処理は、ロジックユニットに移動します。

タスクレイヤ

ユーティリティは、新しいタスク構造内にタスクを作成します。

この結果、以下のように変更されます。

  • メインソース定義、リンク定義、および項目の定義は、タスクの[データビュー]エディタに移動します。

  • タスクのロジックは、 [ロジック]エディタに設定されます。

  • タスクの様々なフォームは、[フォーム]エディタに設定されます。

Unicode

Magic xpaは、Unicodeをサポートします。

V9Plusのアプリケーションを変換すると、以下のオブジェクトはMagic xpaのデフォルトコードページに基づいて自動的にUnicodeに変換されます。

  • Unicode文字を含んでいるカラムの型は、文字型からUnicode型に変換されます。

  • [メニュー定義]テーブルの[ユーザメニュー名]カラム

  • ヘルプに指定されたテキスト

  • ツールチップに指定されたテキスト

  • 文字型の式が定義されているコントロールの型は、Unicode型に修正されます。

  • 様々な特性に指定されたテキスト（例えば、[フォーム名]や[表示項目リスト]特性など）

フォーム特性

［フォーム特性］の[モーダルウィンドウ]、[フローティングウィンドウ]、[子ウィンドウ]、[ウィンドウ分割]の各特性は、フォーム特性の[ ウィンドウタイプ]特性に変換されます。この特性は、[フロート]、[モーダル]、[分割子ウィンドウ] に変換されます。


変換ユーティリティ コマンドラインコンバータ トラブルシューティング

ホーム > マイグレーション > Magic V9Plusから移行する場合 > 変換ユーティリティ > コマンドラインコンバータ > トラブルシューティング

トラブルシューティング

ここでは、変換処理で発生すると予想される問題について説明します。

省略できないパラメータ

-V10EXPORT または、-PROJECT パラメータは省略できません。指定されない場合ヘルプが表示されます。

不当な出力ファイル

変換処理中に、出力ファイルが正しいものでないと判断した場合、以下のようなメッセージをコンソール上に表示します。

V9 export file is invalid

プロジェクトディレクトリがすでに存在している

プロジェクトディレクトリがすでに存在していて、同じ名前の.edp ファイルがあったり、ソースサブディレクトリがある場合は、処理を継続できません。変換ユーティリティは、このどちらかの状態であると判断した場合、変換処理を中断し、以下のメッセージをコンソールに表示します。

The project directory already contains project files

変換処理が失敗

変換処理が失敗した場合、コマンドラインパラメータを確認したり、リポジトリ出力ファイルがVer9 のものであるかどうかを確認してください。


変換ユーティリティ コマンドラインコンバータ INIファイル

ホーム > マイグレーション > Magic V9Plusから移行する場合 > 変換ユーティリティ > コマンドラインコンバータ > ConversionUtility.iniファイル

ConversionUtility.iniファイル

変換ユーティリティでは、変換処理に必要なパラメータをテキストファイルに定義することで、複数のアプリケーションを一括で変換することができます。このテキストファイルをMagic xpaのインストールディレクトリ内のConversionUtility.iniとして提供しています。

ConversionUtility.iniを使用して変換ユーティリティを実行するには、以下のように指定します。

例： V9converter -INI=ConversionUtility.ini

ConversionUtility.ini ファイルの書式

ConversionUtility.iniに定義するパラメータは、基本的にはコマンドラインパラメータと同じですが、セクションに分けて指定します。

[MG_CONVERSION]セクション

LogLevel

ログの出力レベル

  • LogLevel =F …… すべて記録されます。

  • LogLevel =P …… エラーと動作の変更内容のみ記録されます。

RemoveEmptyHandlers = N/Y

レコード前/後、タスク前/後に処理が定義されていなくても変換対象とするかどうかを指定します。

  • RemoveEmptyHandlers = Y …… 処理が定義されていない場合は、変換されません。

  • RemoveEmptyHandlers = N …… レコード前/後、タスク前/後等が必ず作成されます。

OverwriteTargetDir

同じ名前の出力ファイルが存在した場合、上書きするかどうかを指定します。

  • OverwriteTargetDir = Y …… 上書きされます。変換後にプログラムの追加などを行なっている場合、ソースファイルの同期が取れなくなることがあります。このような場合は上書きせずに別のフォルダ上に新規作成してください。

  • OverwriteTargetDir = N …… 上書きされません。出力ファイルが存在する場合、変換に失敗します。

LANG

言語を表す以下の3桁の文字列。コマンドラインコンバータの構文を参照してください。

例：LANG = JPN …… 日本語

LOCALS

ローカライズ指定を表す5桁の文字列。コマンドラインコンバータの構文を参照してください。

例：LOCALS = J,./:

ModalResize

モーダルウィンドウの高さを内容に合わせて拡大させるかどうかを指定します。Ver9.4のMAGIC.INIの[MAGIC_SPECIALS]SpecialModalToolWindowの設定と同じ値を指定してください。

  • ModalResize = Y …… モーダルウィンドウの高さを内容に合わせて拡大させます。

  • ModalResize = N …… 考慮されません。

NativeTranslation

V9Plus側の実行環境(MAGIC.INI)の[dbMAGIC_ENV]で「NativeTranslation=Y」にしたリポジトリデータを入力する場合、このフラグを「Y」に設定してください。

[APPLICATION_n]セクション

各アプリケーション毎の変換情報を指定します。nは、0から開始されます。

EXPORT

Magic V9Plusのリポジトリ出力ファイルのファイル名と保存場所

例：EXPORT = D:\Magicxpa\Studio\Projects\EVAL\Migration\CMP1\CompApp1\Export\CompApp1.exp

PREFIX

アプリケーションの拡張子。V9Plusのプログラムに定義されたPref()関数はここの値に置き換わります。

例：PREFIX = L1

PROJECT

プロジェクトファイルの作成場所

例：PROJECT = D:\Magicxpa\Studio\Projects\EVAL10\Migration\CMP1\CompApp1

CreateECF

キャビネットファイル（ECF)を作成するかどうかを指定します。

  • CreateECF = Y …… ECFを作成する。ファイル名は、PROJECTパラメータの内容に依存します。

  • CreateECF = N …… ECFは作成しません。

CabinetLocation

作成するキャビネットファイルの保存先を指定します。

例：

CabinetLocation = D:\MAGIC\Projects\ECHO_PACK\Component\Component.ecf

LOG

ログファイル名

例：LOG = MyFirstApp.log

[COMPONENT_REDIRECTION]セクション

コンポーネントリポジトリに定義されているアプリケーションファイル名の変更指定を行います。左側は、V9Plusのコンポーネント用アプリケーションファイル（パス名は不要）。右側は、Magic xpaのコンポーネント用アプリケーションファイル（必要に応じてパス名を指定してください）。

例：Base1_app1.mff = D:\Magicxpa\Studio\Projects\EVAL10\Migration\Base\BaseApp1\BaseApp1.ecf

注意：

  • パスに空白が含まれている場合でも、引用符で囲まないでください。

  • [APPLICATION_n]セクションの内容は、指定されたアプリケーションに対してのみ有効ですが、[MG_CONVERSION]セクションと[COMPONENT_REDIRECTION]セクションの内容は、INIファイル内で定義された全てのアプリケーションに対して有効です。


ビルダデータコンバータ

ホーム > マイグレーション > Magic V9Plusから移行する場合 > 変換ユーティリティ > ビルダデータ変換ユーティリティ

ビルダデータ変換ユーティリティ

ビルダーデータ変換ユーティリティは、Magic V9Plusの各インタフェースビルダ（COM、WSDL、EJB、およびMCI）によって作成されたデータを、Magic xpaのプロジェクト用に変換するユーティリティです。

データファイルは、MAGIC.INIの[MAGIC_BUILDERS]ECI=Builders\ECI\ で定義されたフォルダに保存されます。

注意：

V9Plus でアプリケーションのリポジトリ出力を行う場合、CONSTファイルは、「Mgconstw.jp2」を使用するようにしてください。

ビルダコンバータの実行

  1. ビルダコンバータを起動するには、Windows の[スタート]メニューの以下の場所から起動します。

[スタート]メニュー > プログラム > Magic xpa 2.x Enterprise Studio > マイグレーション > ビルダデータ変換ユーティリティ

  2. [ウェルカム]ダイアログで[次へ]をクリックすると、[コンポーネントの詳細]ダイアログが表示されます。ここでは、以下の情報を入力します。

Magic xpa プロジェクトファイル

V9Plusのコンポーネントアプリケーションから移行されたプロジェクトファイル

キャビネットファイル

上記のプロジェクトに対するキャビネットファイル

ビルダデータファイル

V9Plusの Componetsサブフォルダ内に保存されている metadataファイル。ビルダのタイプによって以下のサブフォルダに分かれて保存されています。

  • Magic xpa …… MCI

  • COM …… COM

  • EJB …… EJB

  • Web Service …… WS

注意：

COMとEJBはサポート対象外です。

ビルダのタイプ

コンボボックスから選択します。

ECIの作成

インタフェース(ECI)ファイルを作成する場合はチェックします。(ビルダのタイプが「Magic xpa」の場合のみ有効です。)

  3. [次へ]ボタンをクリックすると、[アプリケーションの一覧]ダイアログが表示されます。ここには、ビルダデータ内に格納されているアプリケーション名が表示されます。インタフェースファイルを作成するアプリケーション名をクリックして[次へ]ボタンをクリックします。

  4. [コンポーネントの選択]ダイアログが表示されます。ここには、ビルダデータ内に格納されているコンポーネント名が表示されます。Magic xpaで使用するコンポーネントを選択し、[追加]ボタンをクリックします。

  5. [次へ]ボタンをクリックすると、作成されるインタフェースの内容が表示されます。[終了]ボタンをクリックすると、Magic xpa用のECIファイルが作成されます。

Magic xpaで各インタフェースビルダを起動すると、変換されたコンポーネントが表示されます。必要に応じて修正してください。


MAGIC.INI変換ユーティリティ

Magic V9PlusからMagic xpaに移行すると、V9PlusのMAGIC.INIファイル内の環境設定は、Magic xpaと互換性のあるように修正する必要があります。

MAGIC.INI変換ユーティリティは、この目的のためにMagic xpaと一緒にインストールされるMagicアプリケーションです。

注意：

MAGIC.INIに定義されているパス名の中には変換されないものもあります。予め論理名を使用して定義するように修正しておいて下さい。

Magic V9 Plus でのみ提供されているファイル（例：Mgconstw.jp2）が指定されている場合、変換後に起動できなくなる場合があります。予め変更しておくことを推奨します。

MAGIC.INI コンバータの実行

MAGIC.INI コンバータを起動するには、以下のようにします。

Windows の[スタート]メニュー > プログラム > Magic xpa 2.x Enterprise Studio > マイグレーション > MAGIC.INI変換ユーティリティ

[ウェルカム]ダイアログで[次へ]をクリックすると、[INI情報]ダイアログが表示されます。ここでは、以下の情報を入力します。

  • V9Plusのインストールディレクトリ

  • V9PlusのMAGIC.INIファイル

  • Magic xpa のMAGIC.INIファイル（オリジナル）

  • Magic xpaのMAGIC.INIファイル（移行用）

[実行]ボタンをクリックすると、Magic xpaのMAGIC.INIファイルが作成されます。

Magic xpa のMAGIC.INIファイルがすでに存在している場合、上書するかどうかを確認するダイアログが表示されます。「Yes」をクリックすると上書きされます。

MAGIC.INIの移行内容

MAGIC_ENV

Magic xpaとV9Plusの[MAGIC_ENV]セクションの内容がチェックされ、値が異なる場合は、V9Plus側からコピーされます。

MAGIC_SYSTEMS

V9Plusの[MAGIC_SYSTEMS]セクションの内容はコピーされません。

MAGIC_SERVERS

Magic xpaの[MAGIC_SERVERS]セクションの内容がコピーされます。ポート番号が変更されます。

MAGIC_DBMS

Magic xpaとV9Plusの[MAGIC_DBMS]セクションの内容がチェックされ、いくつかのオプションを削除した上で、V9Plus側から適切なデータがコピーされます。また、Magic xpa用の構成に変更されます。

MAGIC_DATABASES

V9Plusの[MAGIC_DATABASES]セクションの内容がコピーされまが、いくつかのオプションが削除されます。また、Magic xpa用の構成に変更されます。

MAGIC_SERVICES

Magic xpaの[MAGIC_SERVICES]セクションの内容がコピーされます。

V9PlusのSOAPサービス(Default SOAP Server)は､SOAPライトサービス(SOAP Lite)に変換されます。

MAGIC_COMMS

Magic xpaの[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

Magic xpaの[MAGIC_GATEWAYS]セクションの内容がコピーされます。

TOOLS_MENU

Magic xpaの[TOOLS_SECTION]セクションの内容がコピーされます。

INTERFACE_BUILDERS

Magic xpaの[MAGIC_BUILDERS]セクションの内容がコピーされます。

MAGIC_SPECIALS

V9Plusの[MAGIC_SPECIALS]セクションの内容がコピーされます。

ライセンス

[LicenseFile]と[LicenseName]のパラメータは、Magic xpaからコピーされます。

注意：

ライセンスの互換性はありません。後で、Magic xpa用のライセンス名に変更してください。

基本色

[RuntimeApplicationColorDefinitionFile]は、V9Plusの[FontDefinitionFile]からコピーされます。相対パスが指定されている場合、V9Plusのインストールディレクトリが追加されます。

[StudioColorDefinitionFile]と[RuntimeInternalColorDefinitionFile]は、Magic xpa側からコピーされます。

フォント

[RuntimeApplicationFontDefinitionFile]は、V9Plusの[ColorDefinitionFile]からコピーされます。相対パスが指定されている場合、V9Plusのインストールディレクトリが追加されます。

[StudioFontDefinitionFile]と[RuntimeInternalFontDefinitionFile]は、Magic xpa側からコピーされます。

ユーザ定義ファイル

user_std ファイルは、Magic xpaの内容がコピーされます。

キーボード割付

[RuntimeKeyboardMappingFile]は、V9Plusの[KeyboardMappingFile]からコピーされます。相対パスが指定されている場合、V9Plusのインストールディレクトリが追加されます。

[StudioKeyboardMappingFile]は、Magic xpa側からコピーされます。

Web ファイル

以下のファイルの指定は、Magic xpa側からコピーされます。

  • WebDocumentPath

  • InternetDispatcherPath

  • WebDocumentAlias

  • CTLCacheFilesPath

  • CTLCacheFilesAlias

パラメータ名の変更

以下のパラメータ名は変更されます。

  • [StartApplication]は、空白に設定されます。

  • [ApplicationStartup]は、[DeploymentMode]に変更され、「T」が設定されている場合、「R」に設定し直します。

パラメータの削除

以下のパラメータは削除されます。

  • MultiUser

  • FlowModify

  • AccessApplications

  • AccessToolkit

  • TempPath

  • RequestsServerCanReplaceCtl

  • EuroFile

  • LoadMonitor

  • Monitor2File

  • RemoteFlowMonitor

  • RemoteFlowPortNumber

  • Ansi2Unicode

  • ForegroundContextManagement

V9Plusの特殊なパラメータ

MDIClientImageFileパラメータは、オリジナルのMAGIC.INIには存在していませんが追加されます。 もしこのパラメータが見つかった場合、Magic xpaのMAGIC.INIにコピーされます。

V9Plus側のINIに手動で追加されたパラメータは、コピーされます。

ユーザ定義セクション

V9Plus側のINIに追加されたユーザ定義セクションは、コピーされます。

ログファイル

INIConvert.logと呼ばれるログファイルが、Magic xpaのインストールディレクトリに作成されます。

各セクションやパラメータごとにどのように処理されたかが記録されます。

TempPathのような削除された内容はコピーされず、メッセージを書き込みます。

手動でMagic.iniファイルに追加された特別なセクションに定義された内容もコピーされず､その旨をメッセージとして書き込みます。


リッチクライアントアプリケーションの移行

ここには、以下の2つの内容があります。

フルクライアントからリッチインターネットプログラムへの移行

ブラウザクライアントからリッチインターネット・プログラムへの移行


リッチクライアントアプリケーションの移行 フルクライアントから移行

ホーム > マイグレーション > リッチクライアントアプリケーションの移行 > フルクライアントからリッチインターネットプログラムへの移行

フルクライアントからリッチインターネットプログラムへの移行

フルクライアントからリッチインターネットにアプリケーションを変更する場合、最初に行う必要のある作業と、考慮する必要のある動作の違いについて考慮する点があります。さらに、パフォーマンスについても考慮する必要があります。

このセクションには、以下の情報があります。

最初の準備

機能の違い

パフォーマンスに対する認識


リッチクライアントアプリケーションの移行 フルクライアントから移行 最初の準備

ホーム > マイグレーション > リッチクライアントアプリケーションの移行 > フルクライアントからリッチインターネットプログラムへの移行 > 最初の準備

最初の準備

リッチクライアント準備ユーティリティ

クライアント／サーバアプリケーションを変更する前に、リッチクライアント準備ユーティリティを実行する必要があります。このユーティリティは、プロジェクトのモデルをスキャンして、既存のGUI表示モデルを基に、リッチクライアント表示モデルを作成します。GUI表示フォームをリッチクライアント表示フォームに変更した場合、リッチクライアント用モデルを使用するようにします。

RMコンバータ

［RM互換］ロジックが定義されたタスクは、リッチクライアントタスクに変更できません。このようなロジックは、イベントドリブンのロジックに変更する必要があります。RMコンバータは、MSJのサイトからダウンロードできます。RMコンバータは、変換されなかったロジックユニットのリストを作成します。

オプティマイザ

弊社の別売商品であるオプティマイザを利用することで、手動で変更する必要のある箇所を指摘するレポートを作成します。

このツールは、（コンポーネントがアプリケーションによって使用されているような）すべてのケースに対して情報を提供するわけではありません。

オプティマイザは、MSJより購入していただく必要があります。詳しくは、MSJの営業担当者にお問い合わせください。


リッチクライアントアプリケーションの移行 フルクライアントから移行 パフォーマンス

ホーム > マイグレーション > リッチクライアントアプリケーションの移行 > フルクライアントからリッチインターネットプログラムへの移行 > パフォーマンスに対する認識

パフォーマンスについて

リッチインターネットアプリケーション（RIA）を開発する場合、避けるべき様々な落とし穴があります。アプリケーションが快適に実行できるように、これらの問題を解決する必要があります。

サーバと通信するクライアントプログラムがある場合、これはコミュニケーション経路によって作成されます。コミュニケーション経路は、快適に実行するためのボトルネックとなります。サーバ側の処理を実行するために、プログラムが複数のサーバリクエストを処理する場合、ネットワークにオーバーロードすることと同じようにそのプログラムのパフォーマンスを低下させます。

快適なユーザ操作を維持するために、タスクのパフォーマンスと効率を改善することは必須です。

このセクションでは、以下のような情報があります。

クライアント側とサーバ側

クライアント側の特性

サーバ側の特性

サーバ側のイベント内のクライアント側関数

イメージアクセス

項目の［代入］特性の使用

範囲と位置付の式

混在処理


リッチクライアントアプリケーションの移行 フルクライアントから移行 パフォーマンス クライアント側とサーバ側

ホーム > マイグレーション > リッチクライアントアプリケーションの移行 > フルクライアントからリッチインターネットプログラムへの移行 > パフォーマンスに対する認識 > クライアント側とサーバ側

クライアント側とサーバ側

いくつかの処理コマンドは、クライアント側として定義されています。これは、クライアントで実行することを意味しています。その他サーバ側の処理コマンドは、サーバ側で実行されることを意味しています。同じような違いは、関数や式に対しても存在します。

いくつかの内部関数はクライアント側、サーバ側または、ニュートラルとして定義されています。これは、クライアントかサーバで評価されることができることを意味しています。GetComputerName（)関数やメール関数などは、サーバ側で評価されます。式の再計算が必要ない場合、式を［タスク前］で計算されるローカル変数に変更することを考慮する必要があります。クライアント側関数とサーバ側関数の全てのリストは、リッチクライアント関数のトピックを参照してください。

いくつかの関数がクライアントで評価されるために、アプリケーションが呼び出された場合、クライアントからサーバに情報を渡す必要があります。以下の情報は、アプリケーション毎にクライアントに送られます。

  • 色

  • フォント

  • 権利

  • メニュー

  • キーボード割当

同じ式の中でクライアント側の関数とサーバ側の関数が混在している場合、リッチクライアント・モジュールがその式を評価するためにコミュニケーション経路を行き来することになり、パフォーマンスの問題を引き起こします。この種のパフォーマンス問題を防ぐために、Magic xpaは、そのような定義方法を許可せず、構文チェックでエラーメッセージを表示するようにしています。


リッチクライアントアプリケーションの移行 フルクライアントから移行 パフォーマンス クライアント側特性

ホーム > マイグレーション > リッチクライアントアプリケーションの移行 > フルクライアントからリッチインターネットプログラムへの移行 > パフォーマンスに対する認識 > クライアント側の特性

クライアント側の特性

いくつかの特性（例えばフォーム特性やタスク特性）は、サーバ側の処理を最小にするために、クライアント側の特性として定義されます。

クライアント側特性を使用する場合、サーバ側関数（例えばOSEnvGet()）を使用することができません。サーバ側関数を使用する場合、たとえば、画面再表示毎にリッチクライアントモジュールは式を評価するためにサーバにアクセスします。

実装

このような処理を実装するには、［タスク前］ロジックユニットがサーバ側の処理（オフラインタスクの場合はクライアント側の処理になります）であることを理解する必要があります。このようなジレンマを解決するために、以下のように対応してください。

  1. 変数を新規に定義します。

  2. ［タスク前］に、サーバ側関数で新しい変数を更新します。

  3. クライアント側の特性において、サーバ側関数の代わりに新しい変数を使用します。


リッチクライアントアプリケーションの移行 フルクライアントから移行 パフォーマンス サーバ側特性

ホーム > マイグレーション > リッチクライアントアプリケーションの移行 > フルクライアントからリッチインターネットプログラムへの移行 > パフォーマンスに対する認識 > サーバ側の特性

サーバ側の特性

タスクが読み込まれるとき、いくつかのタスク特性が評価されます。これらの特性（例えば範囲式）は、サーバ側特性として定義されます。

特性がサーバ側の場合、クライアント側関数（例えばClipRead()）を使用することができません。タスクの初期中は、リッチクライアントのインタフェースは存在しません。そして、モジュールは式を評価するためにクライアントに戻すことができません。

実装

このような処理を実装するには、実行時のタスクツリー内にすでに存在しているプログラムを使用する必要があります。

  1. 親プログラムまたはメインプログラムで変数を新規に定義します。

  2. 新しいプログラムを呼び出す前に、クライアント側の関数で新しい変数を更新します。

  3. サーバ側特性において、式で新しい変数を使用するようにします。


リッチクライアントアプリケーションの移行 フルクライアントから移行 パフォーマンス サーバイベント内のクライアント関数

ホーム > マイグレーション > リッチクライアントアプリケーションの移行 > フルクライアントからリッチインターネットプログラムへの移行 > パフォーマンスに対する認識 > サーバ側のイベント内のクライアント側関数

サーバ側のイベント内のクライアント側関数

［タスク前］のようなタスクの初期設定を行うロジックユニットは、サーバ側で実行されます。

［タスク前］ロジックユニットでクライアント側関数（例えばMnuShow（)またはCtrlGoto（)）を使用する必要があるかもしれません。関数がクライアント側で、クライアント関数が利用できない場合、そのロジックユニットでクライアント側関数を使用することができません。

実装

このような処理を実装するには、以下のようにイベントを使用する必要があります。

  1. ユーザイベントを作成します。

  2. イベントに対応したロジックユニットを作成します。

  3. ロジックユニット内で、必要なクライアント側のロジックを定義します。

  4. サーバ側のロジックユニットで、［ウェイト］特性が「No」に設定してユーザイベントを発行します。

エンジンがイベント処理を待たないため、このイベントは発行されます。そして、サーバ側がアイドル状態になるまで、イベントの処理は延期されます。クライアントが初期化されてロードされると、イベントはクライアント側で処理されます。

注意:

オフラインタスクでは、［タスク前］ロジックユニットは、クライアント側の処理コマンドになります。したがって、上記のトピックは、オフラインタスクには該当しません。


リッチクライアントアプリケーションの移行 フルクライアントから移行 パフォーマンス イメージアクセス

ホーム > マイグレーション > リッチクライアントアプリケーションの移行 > フルクライアントからリッチインターネットプログラムへの移行 > パフォーマンスに対する認識 > イメージアクセス

イメージアクセス

［イメージ］コントロールで表示させるイメージは、［イメージの読込元］特性でサーバ側かクライアント側かを指定する必要があります。サーバ側のイメージとして指定された場合、実行時にイメージファイルがクライアントに転送されます。

その他のイメージファイル（例えば、フォームの壁紙など）は、指定されたパスがサーバ側のフォルダとして評価され、実行時にイメージファイルがクライアントに転送されます。このため、イメージを表示させるためにエイリアスを作成する必要はありません。


リッチクライアントアプリケーションの移行 フルクライアントから移行 パフォーマンス 代入特性

ホーム > マイグレーション > リッチクライアントアプリケーションの移行 > フルクライアントからリッチインターネットプログラムへの移行 > パフォーマンスに対する認識 > データ項目の［代入］特性の使用

データ項目の［代入］特性の使用

データ項目の［代入］特性は、サーバ側で評価される場合があります。例えば、登録モード時の実カラムがこれに該当します。変数項目の場合は、クライアントで評価されます。

特性がいつ評価されるか分からないため、式で使用される関数はニュートラルである必要があります。これはサーバ側でもクライアント側でもありません。しかし、場合によっては、どちらかに属している関数を使用する必要があります。

実装

このような処理を実装するには、以下の手順に従ってください。

  1. 関数の値を保持する変数項目を新規に定義します。

  2. ［レコード前］に、関連する式で変数項目を更新します。

  3. テーブルのカラムを処理する場合は、タスクが登録モードの場合のみ初期設定が有効になります。したがって、［項目更新］処理コマンドの条件に、Stat(0,'0'Mode)を定義する必要があります。


リッチクライアントアプリケーションの移行 フルクライアントから移行 パフォーマンス 範囲と位置付

ホーム > マイグレーション > リッチクライアントアプリケーションの移行 > フルクライアントからリッチインターネットプログラムへの移行 > パフォーマンスに対する認識 > 範囲と位置付の式

範囲と位置付の式

項目の範囲と位置付式は、サーバで評価される場合があります（例えばメインソースのカラムの時）、それはタスクの初期化処理で評価されます。そして場合によっては、（ローカル変数の場合のように）クライアントで評価されることもあります。

特性がいつ評価されるかわからないため、式で使用される関数はニュートラルな関数である必要があります。これは、サーバ側でもクライアント側でもないことを意味しています。

実装

このような処理を実装するには、以下の手順に従ってください。

  1. 関数の値を保持する変数項目を新規に定義します。範囲式がタスクの初期化中に評価されるような項目の場合、親タスクで変数を新規に定義して、タスクへのパラメータとして式を渡すことが必要になる場合があります。

  2. ［レコード前］に、関連する式で変数項目を更新します。

  3. テーブルのカラムを扱っている場合は、初期設定処理はサーバ側で実行されます。したがって、［項目更新］処理コマンドの実行条件にStat（0、’C'Mode）を設定する必要があります。


リッチクライアントアプリケーションの移行 フルクライアントから移行 パフォーマンス 混在処理

ホーム > マイグレーション > リッチクライアントアプリケーションの移行 > フルクライアントからリッチインターネットプログラムへの移行 > パフォーマンスに対する認識 > 混在処理

混在処理

混乱した処理コマンドとは、サーバ側の処理コマンドまたは式がクライアント側の処理コマンドとともに使用されていることを意味します。これは、いくつかの状況で発生します。

  • クライアント側の処理コマンド（例えば、［エラー］処理コマンド）で、実行条件などの処理コマンド特性の式の中でサーバ側の関数を使用する場合。

  • サーバ側の処理コマンドの特性（例えば条件式）に、クライアント側関数を使用する場合。

  • 一つの式の中で、クライアント側とサーバ側関数を使用する必要があるかもしれません。

  • 処理コマンドを混在させた場合、同じ処理コマンド内、そして、同じ式の中でクライアントとサーバの実行が必要となります。このような状況は、内部のパフォーマンス上の問題を最小にするために、Magic xpaでは防止するようになっています。構文チェッカーを実行すると、エラーメッセージが表示されます。

実装

このような処理を実装するには、複数の処理コマンドを利用する必要があります。

  1. 変数項目を新規に定義します。

  2. 関連する関数の値で変数を更新します。ネットワークのトラフィックを最小にするために、同じ場所（サーバまたはクライアント)で実行される処理コマンドと並べて定義するようにします。

  3. 関数を使用する代わりに式の中ので新しい変数を使用します。


リッチクライアントアプリケーションの移行 ブラウザクライアントから移行

ホーム > マイグレーション > リッチクライアントアプリケーションの移行 > ブラウザクライアントからの移行

ブラウザクライアントの移行

ブラウザクライアントのパラダイムからリッチインターネットのパラダイムにアプリケーションを変更する場合き、考慮に入れる必要がある動作の違いがいくつかあります。

これらの問題のいくつかは、以前のセクションで説明しています。

プルダウンメニュー

リッチクライアントアプリケーションは、利用するOSのルック＆フィールを持つプルダウンメニューを提供します。独自に作成しないで、これらのメニューを使用してください。これによって、アプリケーションにクライアント／サーバと同じルック＆フィールを提供することになります。

認証

リッチインターネット・アプリケーションは、ビルトインされたログオンダイアログを持っています。独自に作成しないで、このダイアログを使用することを検討してください。

帳票と外部ファイル

ブラウザクライアント環境でエクスプローラで表示される出力ファイル（例えばPDFやHTMLファイル)は、［ブラウザ］コントロールを使用することで、リッチクライアントで表示させることができます。これによって、ルック＆フィールをコントロールすることができます。

マージ出力

マージ出力による帳票は、［ブラウザ］コントロールを使用することで、リッチクライアントで表示させることができます。マージ出力の帳票は、同じコンテキストを持たないため、これらのタスクによって渡されるどんなパラメータでも明示的に渡す必要があります。

JavaScript

JavaScript関数は、［ブラウザ］コントロールを使用することにより実行することができます。

フォームとコントロール

ブラウザからリッチクライアントにタスクタイプを変更すると、［フォーム］エディタ内のブラウザ形式フォームは全てでコピーされます。オリジナルのフォームは、リッチクライアント形式のインタフェースに変更されます。

HTMLからリッチクライアントまでの変換方法がないため、リッチクライアント形式フォームは関連したコントロールの全てを作り直す必要があります。

  • ブラウザクライアントがCSSファイルを使用している場合、色とフォントをMagic xpaのアプリケーション定義色と定義フォントのファイルに追加する必要があります。

  • フレームを含んだブラウザクライアント・プログラムは、リッチクライアントのフレームフォームに変更する必要があります。［出力先フレーム］特性を使用しているすべての［コール］処理コマンドは、その代わりに［出力先］特性を使用しなければなりません。

  • ［テーブル］コントロールの交互表示される背景色を実装するには、［テーブルコントロール特性］を使用します。


トラブルシューティング

ここには、トラブルシューティング用の情報が記述されています。

エラーコードなどの内容を基に、現在の状況を確認することができます。

関連トピック：

パーティショニングエラー

名前解決

タイムアウト

ログファイルの設定

リッチクライアントの共通エラー

.NET の問題

表示の障害

フォーム表示の障害

Javaの障害

マージの問題

モバイルでの問題

バージョン管理の障害

Web サービスの問題

XML の問題

ウィンドウの初期化

データ実行防止機能の対応

ライセンスエラー

一般的な障害


サポートされるミドルウェア MRB 動作 エラー

ホーム > トラブルシューティング > パーティショニングエラー

パーティショニングのエラーメッセージ

以下は、 パーティショニングアプリケーションの実行時に発生する可能性のあるエラーメッセージです。

情報

内容

-0 RQ_OK

-1 RQ_INF_TERMINATE

-2 RQ_INF_TERMINATE_THREAD

スレッドが終了しました

-3 RQ_INF_RECONNECT_MAIN

-4 RQ INF RETRY

-5 RQ_INF_LOG_ACTIV

-6 RQ_INF_ALREADY_INITIALIZED

-10 RQGNRC_INF_NOWAIT

-11 RQGNRC INF NO RESULT

-32 RQMRG_INF_NO_REQUEST

Magicサーバの内部ステータスコード

-33 RQMRG_INF_IN_PROGRESS

-34 RQMRG_INF_CLOSE_APPSERV

-35 RQMRG_INF_WARNING_ERRS_ON_INIT

-40 RQMRB_INF_NO_PND_REQ

MRBの内部ステータスコード

-41 RQMRB_INF_APP_NOT_FOUND

-42 RQMRB_INF_APP_IN_USE

-43 RQMRB_INF_RT_NOT_TERM

-44 RQMRB_INF_ACK_SENT

-45 RQMRB_INF_CNCT_MAIN_REFUSED

-46 RQMRB_INF_CNCT_MAIN_NOT_RSPND

-50 MM_INF_LAST_BIGGER

MRBのリソース管理を基にした、メモリテーブルの低次元ステータスコード

-51 MM_INF_LAST_SMALLER

-52 MM_INF_NO_REC

-53 MM_INF_EOF

-54 MM_INF_FILTER_LIMIT

-60 INF TIMEOUT

エラー

-102 ERR CNCT REFUSED MRB

MRBへの接続は、拒否されました。MRBが指定されたPC上のポート番号で開始されたことを確認してください。Mgrb.iniファイルを確認してください。

-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

リクエスタのAPIが使用されるとき、APIに渡された引数に誤りがある可能性があります。

-109 ERR CNCT REFUSED RT

-110 ERR REQUEST TIMEOUT

タスク実行が、リクエストのタイムアウト中に終了できませんでした。RequesterTimeoutキーワード（インターネット処理、またはコマンドラインの場合はMgreq.iniファイル、リモートコールの場合は、Magic.iniファイル)の値を増やしてください。

-111 RQGNRC ERR NOT MRB

リクエスタは、TCP/IPサーバ（MRBではない）に接続しようとしました。

-112 RQGNRC_WRN_ALT_MRB

(サポートしていません)

-113 RQGNRC ERR APPNAME REQUIRED

［コールリモート］処理コマンドでアプリケーション名が指定されていませんでした。

-114 RQGNRC ERR PRGNAME REQUIRED

［コールリモート］処理コマンドでプログラム名が指定されていませんでした。

-117 RQGNRC ERR RMC DISABLED FOR J2EE

-118 RQGNRC ERR TIME STAMP

-119 ERR_LICENSES_EXCEEDED

-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

プログラムの実行中に異常終了しました。問題を見つけるために、[MAGIC_SPECIALS]セクションで、ExceptionMessageBoxDisplayフラグを「Yes」に設定して、デバッグ技術（例えばWinDbg）を使用してください。

-140 RQTCP_ERR_NOT_INITIALIZED

Winsockエラーの10093によるエラー

  • WSANOTINITIALISED …… 成功

  • WSASTARTUP …… 未実行委

-142 ERR BIND FAIL

サーバモジュール（例えば、MRBまたはアプリケーションサーバ)がローカルアドレスと接続できませんでした。すでに使用されるかもしれません。

-143 ERR CNCT REFUSED

クライアントモジュールから対のモジュールへの接続が拒否されました。これは、ほとんどの2つのモジュール間で発生します。例えば、リクエスタからMRBまたはアプリケーションサーバまで、または、アプリケーションサーバからMRBまで。

-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

現在のモジュールは、開いたソケットの最大数（デフォルトは、1000)に達しました。Mgreq.iniファイルでキーワードHandles=NNNNを使用して、この値を増やしてください。

-150 ERR CNCT REFUSED MRB

-151 ERR CNCT CLOSED BY REQ

-156 RQMRG ERR OUT OF SEQ MSG

-157 RQMRG ERR AUTHENTICATION

ユーザやパスワードが間違っていたりして、クライアントから送られる証明書がサーバで認証できませんでした。

-160 RQSPAWN_ERR_EXE_NOT_FOUND

MRBによって起動された実行ファイルに関連するステータスコード。実行ファイル名が正しくないか、ファイルが破損しているか、認証上（ユーザIDやパスワード）の問題が発生した可能性があります。

-161 RQSPAWN_ERR_PATH_NOT_FOUND

-162 RQSPAWN_ERR_BAD_EXE

-163 RQSPAWN_ERR_BAD_LOGIN

-164 RQSPAWN_ERR_PRIVILEGE_NOT_HELD

-165 RQSPAWN_ERR_ARG_BIG

-166 RQSPAWN_ERR_MODE_EINVAL

-167 RQSPAWN_ERR_NOMEM

-168 RQSPAWN_ERR_NOPROCESS

-169 RQSPAWN_ERR_NET_UNREACHABLE

-170 MM_ERR_INV_SEG

MRBの処理中にのみ関連するメモリテーブルのステータスコード

-171 MM_ERR_DUPLICATE

-172 MM_ERR_INV_OPER

-173 MM_ERR_INV_POS

-174 MM_ERR_NO_INIT

-175 MM_ERR_TARGET_EXISTS

-176 MM_ERR_OUT_OF_HDLS

-177 MM_ERR_KEY_DISABLED

-180 RQMRB WRN EXE NOT FOUND

MRBは、［APPLICATIONS_LIST］に登録されていない実行可能形式を発生するように要求されました。

-181 RQMRB WRN RT NOT FOUND

MRBが（ホスト名/ポートが)登録されていないエンジンで処理(例、エンジンの終了)を実行するように要求されました。可能であれば、Mgreq.iniファイルのLogパラメータを有効にして問題を再現してみてください。

-182 RQMRB WRN REQ NOT FOUND

MRBは未知のリクエストの処理（例えば、優先度の変更）を実行するように要求されました。可能であれば、Mgreq.iniファイルのLogパラメータを有効にして問題を再現してみてください。

-183 RQMRB WRN REQ NOT MATCH

MRBは、リクエスタのアプリケーション名に合っていないリクエスト処理を実行するように要求されました。可能であれば、Mgreq.iniファイルのLogパラメータを有効にして問題を再現してみてください。

-185 RQMRB ERR REGISTER SERVICE

MRBが、サービスとして初期化中に失敗しました。Mgreq.iniファイルのLogパラメータを有効にして問題を再現してみてください。

-186 RQMRB ERR REPORT SERVICE STATUS

Windowsのサービスコントロール・マネージャーに通知している間、MRBが失敗しました。Mgreq.iniファイルのLogパラメータを有効にして問題を再現してみてください。

-187 RQMRB ERR CNCT REFUSED REMOTE MRB

MRBは、リモート実行（［REMOTE_APPLICATIONS_LIST］)を開始するためにリモートのMRBに接続できませんでした。リモートMRBのアドレス（ホスト名/ポート)が有効であり、リモートMRBがそのアドレスで接続できることを確認してください。

-188 RQMRB_ERR_RT_LOCK_FAILED

MRBの内部ステータスコード

-189 RQMRB_ERR_LICENSE_CONFLICT_FLOATING

MRBは、Windows（MOBILE=N)かモバイル（MOBILE=Y)として指定していないMagic xpaサーバのみ、RIAにフローティングライセンスを提供しています。

サポートバージョン：

2.5

-197 ERR CTX NOT FOUND

-198 ERR QUE LIMIT

キューの上限に達しました。mgrb.iniファイルのQueueMaxSizeフラグの値を増やしてください。

-200 ERR UNEXPECTED

予期せぬエラー。他のエラーコードが伴う場合、テクニカルサポートに報告してください。

-201 ERR NOT INITIALIZED

コードパーティショニングエラー。TCP/IPサービスがインストールされていません。TCP/IPをインストールしてください。

-202 ERR OPEN RESULT FILE

-203 RQLIB ERR INI FILE

INIファイルがオープンできませんでした。

-204 RQCMDL ERR BAD ARGS

コマンドラインリクエスタは、引数を解析できませんでした。ヘルプの説明を参考にして、引数がない場合の動作を確認してください。

-205 RQ ERR WRONG MSG SRVR

問合わせが、問合わせをサポートしないミドルウェアで要求されました。たとえば、EJBからリクエスト送ってエンジンを開始しようとした場合などです。

-210 RQMRILOW ERR RECV FAIL

対のモジュールからメッセージを受け取る間に内部エラーが発生しました。可能であれば、Mgreq.iniファイルのLogパラメータを有効にして問題を再現してみてください。

-211 RQMRILOW ERR NOT MRI

-212 RQMRILOW ERR OLD MRI

-260 RQHTTP ERR UPLOAD TOO BIG

Webブラウザからリクエスタへのアップロードファイルのサイズの上限を超えました。Scriptsディレクトリ内のMgreq.iniファイルでMaxUploadKBキーワードの値を増やしてください。

-261 RQMRI_ERR_PRG_NOT_EXTERNAL

プログラムの［外部］カラムがチェックされていません。

サポートバージョン：

2.3

-270 RQMRI_ERR_LIMITED_LICENSE

ライセンス制限：現在のリクエストのタイプは利用できません。シングルユーザー版は、ブラウザクライアント・プログラムを利用できません。

サポートバージョン：

2.3

-272 RQMRI_ERR_CANNOT_EXECUTE_OFFLINE_RC_IN_ONLINE_MODE

オフラインとしてサーバへのアクセスを行わないで開始されたアプリケーションは、オンラインモードで実行サーバにアクセスできません。

サポートバージョン：

2.4

-274 RQMRI_ERR_CANNOT_EXECUTE_RC_WITH_ONLINE_MDI

動作環境の［実行モード］が「O=オンライン」で実行している状態でMDIをオープンしている時に、リッチクライアントのリクエストは処理できません。

サポートバージョン：

2.3

-275 RQMRI_ERR_INCOMPATIBLE_RIACLIENT

RIAクライアントのバージョンとサーバ側のバージョンに互換性がありません。

サポートバージョン：

2.4

エラーメッセージをエンドユーザーに表示させたくない場合、DisplayGenericError特性を使用してください。

予期しないエラー

エラー:-145などのような、上記に記述がないエラーは、MGREQ.INIファイルで指定されたログファイルに出力されます。例えば、このログファイルは、ホスト名の名前解決を扱う問題に関する情報を出力します（一般的に、これがエラーの原因になることがよくあります）。

青色のエラページで表示されないWebサーバエラーとMagic xpaのエラーを区別することは重要なことです。Webサーバエラーには、リクエスタが見つからなかったり、権利が与えられていない場合などが考えられます。

注意：

Mgrqcmdl Query=log コマンドを実行した場合、DBエラコードが戻ることがあります。DBコードやWinsockコードについては、PDFファイルの『Magic eDeveloperパーティショニング トラブルシューティングガイド』を参照してください。

関連トピック：

J2EEエラーのタイプ


4 RQ INF RETRY

ホーム > トラブルシューティング > パーティショニングエラー > -4 RQ INF RETRY

-4 RQ INF RETRY

内部ステータスコードです。

  • リクエスタに対して …… MRBがリクエスタにいつ再送要求を出すか指定します。

  • エンジンに対して …… エンジンがMRBへの接続をいつ繰り返すか指定します。

  • MRBに対して …… 同期リクエストの再送をいつ行うかを指定します。

このステータスコードは、他のエラーステータスコードと一緒に発行されない限り無視してください。


11 RQGNRC INF NO RESULT

ホーム > トラブルシューティング > パーティショニングエラー > -11 RQGNRC INF NO RESULT

-11 RQGNRC INF NO RESULT

トラブルシューティング > パーティショニングエラー

リモートアプリケーションから何も返りませんでした。

リクエストによって実行されたリモートアプリケーションのプログラムがリクエスタに値を返さない場合に、このステータスが返ります。

プログラムは、以下のいずれかの方法で値を返すことができます。

  • メディアタイプを｢リクエスト｣に設定した[入出力]テーブルを使用してフォーム出力処理コマンドを実行する。

  • File2ReqまたはBlob2Req関数を起動する。


60 INF TIMEOUT

ホーム > トラブルシューティング > パーティショニングエラー > -60 INF TIMEOUT

-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） として処理されます。


103 ERR APP NOT FOUND

ホーム > トラブルシューティング > パーティショニングエラー > -103 ERR APP NOT FOUND

-103 ERR APP NOT FOUND

アプリケーションがエンジンによりサポートされていない場合、このエラーが発生します。

また、MGREQ.INIファイルの「Appl=」キーワードで正しくアプリケーションを指定していない場合にも、このエラーが発生します。

アプリケーションサーバの状態を表示するには、ブローカモニタを使用してください。

MRB をサービスとして起動した場合、属性値のパスにマッピングされたドライブを使用することができません。標準的なUNCだけが利用できます。パスをチェックして、標準的なUNCで設定されることを確認してください。


104 ERR APP IN USE

ホーム > トラブルシューティング > パーティショニングエラー > -104 ERR APP IN USE

-104 ERR APP IN USE

アプリケーションをサポートする全てのアプリケーションサーバがビジー状態です。

MRBのフィルタ指定の制限を超えた場合も（実際には、ビジー状態ではなくても）発生します。

このエラーは、デフォルト設定の場合、通常10秒後に表示されます。この設定は、同期型のリクエストに対するMRBのタイムアウトになります。「タイムアウト」を参照してください。

このタイムアウトを解決するには以下のようにします。

  1. インターネットリクエスタの場合、Scriptsディレクトリ内のMGREQ.INIファイル(BrokerTimeout)を編集します。コールリモートの場合は、MAGIC.INIファイルを編集します。「タイムアウト」の値は、「10秒」より大きくしてください。例えば、300秒（5分）

  2. またこの設定の代わりに、MRBがあるMagic xpaディレクトリ内でMGRB.INI 内の[MRB_EXECUTABLES_LIST]セクションの起動エンジン数を増やしてみても効果的です。エンジンは、バックグラウンドで実行するようにします。MGRB.INI の設定後に、MRBを再起動してください。

  3. もし、アプリケーションサーバエンジンや、Webサーバ、MRBが異なるマシン上で実行されている場合、互いのマシン間の通信をIPアドレスのみで行うのでなく、ホスト名も使用できるようにしなければなりません。「ping」コマンドでこの件の確認ができます。

  4. MRBモニタでアプリケーションサーバの状態を確認できます。

J2EE環境で使用する場合、EJBは「CommunicationTimeout」で設定された時間内でアプリケーションサーバに接続し続けます。EJBが、接続に失敗した場合、アプリケーションビジーの例外通知を、起動したクライアントに返します。


105 ERR MRB NOT RSPND

ホーム > トラブルシューティング > パーティショニングエラー > -105 ERR MRB NOT RSPND

-105 ERR MRB NOT RSPND

MRBはリクエスタに対して、Ackメッセージも応答も返しませんでした。

問い合わせや管理用のリクエストのために、BrokerTimeout の値を増やすことができます。

MRBがCPUやメモリに負荷を与える場合は以下のようにしてください：

  • リクエスタとMRBの両方のためにMGREQ.INI中の「CommTimeout」の値を増やしてください。

  • 他のパフォーマンスの高いマシンでMRBを実行するようにシステム構成を検討してください。

  • MRBをリクエスタと同じホストに置き、アプリケーションサーバを他のホストで実行するようにしてください。


106 ERR RT NOT RSPND

ホーム > トラブルシューティング > パーティショニングエラー > -106 ERR RT NOT RSPND

-106 ERR RT NOT RSPND

リクエスタは、リクエストを、MRBによって割り当てられたエンジンに送信できませんでした。

エンジンが稼働していることを確認してください。（例えば、タスクマネージャや、MRBのステータスウィンドウでProcessIDを確認してください。)

問題の原因の切り分けのため、コマンドラインリクエスタを使用して、Magicエンジンを呼び出してみてください。（コネクションの作成や切断ができるかどうかの確認ができます。）


107 ERR CNCT RESET

ホーム > トラブルシューティング > パーティショニングエラー > -107 ERR CNCT RESET

-107 ERR CNCT RESET

アプリケーションサーバによって接続がリセットされました。

このメッセージは以下の場合に表示されます。

  • アプリケーション処理用のエンジンがリクエスト実行中にアボートした。

  • ネットワーク接続の失敗が原因で接続がリセットされた。

エンジンが動作しているかどうかを、(例えば、タスクマネージャでMRBのステータスウィンドウに表示されているPIDをもとに)確認してください。問題の原因の切り分けを行うために、コマンドラインリクエスタからこのエンジンを呼び出してください。


109 ERR CNCT REFUSED RT

ホーム > トラブルシューティング > パーティショニングエラー > -109 ERR CNCT REFUSED RT

-109 ERR CNCT REFUSED RT

リクエスタとMagicエンジンとの間のセッションを確立できませんでした。

リクエスタとMagicエンジンとのネットワーク間にファイアウォールやルータなどがある場合、それらのパケットフィルタリングの設定が要因として考えられます。

また、名前解決が正しくできていないことも要因として考えられます。ネットワーク環境を確認してください。


117 RQGNRC ERR RMC DISABLED FOR J2EE

ホーム > トラブルシューティング > パーティショニングエラー > -117 RQGNRC ERR RMC DISABLED FOR J2EE

-117 RQGNRC ERR RMC DISABLED FOR J2EE

J2EEタイプのサーバは、EJBからの呼び出しにのみ応じます。

異なるリクエスタによって呼び出された場合に、このエラーが発生します。

MGREQ.INI でGateway=5 と設定された場合、コマンドラインリクエスタやインターネットリクエスタから呼び出すことはできません。


118 RQGNRC ERR TIME STAMP

ホーム > トラブルシューティング > パーティショニングエラー > -118 RQGNRC ERR TIME STAMP

-118 RQGNRC ERR TIME STAMP

リクエスタはMRBから、他のリクエストの応答を受け取りました。

これは、ログファイルでは見つからないような困難なエラーです。

暫定的な解決策として、ブローカタイムアウトの値を増やしてみてください。


119 ERR_LICENSES_EXCEEDED

ホーム > トラブルシューティング > パーティショニングエラー > -119 ERR_LICENSES_EXCEEDED

-119 ERR_LICENSES_EXCEEDED

アプリケーションをサポートしているすべてのアプリケーションサーバがライセンス上のチェックアウト値に達した場合に、このエラーメッセージが表示されます。したがって、現在のリクエストは処理されません。

Brokerモニタで、ピーク値が最大値と等しくなっているかどうかを確認することができます。

注意：

チェックアウト値は、ライセンスと最大並行リクエスト数と最大並行ユーザ数によって決定されます。

リモートコールを使用するとき、このステータスコードはMgreq.iniファイルのBrokerTimeoutキーワード、または、［サーバ特性］の［タイムアウト］特性によって制御されます。

旧バージョンのクライアントモジュールから、Ver2.4以降のアプリケーションサーバにアクセスしようとした場合もこのエラーが発生する場合があります。

サポートバージョン：

2.3

関連トピック：

タイムアウト


128 ERR APP REJECTED

ホーム > トラブルシューティング > パーティショニングエラー > -128 ERR APP REJECTED

-128 ERR APP REJECTED

アプリケーションがオープンされておらず、コンテキストも存在していない状態で、同じMagicエンジンに異なるアプリケーションをオープンしようとする複数のリクエストが送られた場合に発生します。

リクエストを再送してみてください。

J2EE環境で使用する場合、EJBは「CommunicationTimeout」で設定された時間内でアプリケーションサーバに接続し続けます。EJBが、接続に失敗した場合、アプリケーションビジーの例外通知を、起動したクライアントに返します。


131 ERR BAD PRG

ホーム > トラブルシューティング > パーティショニングエラー > -131 ERR BAD PRG

-131 ERR BAD PRG

指定されたプログラムがアプリケーションに見つからなかった場合、このエラーが発生します。

プログラムの公開名を確認してください。

MRB をサービスとして起動した場合、属性値のパスにマッピングされたドライブを使用することができません。標準的なUNCだけが利用できます。パスをチェックして、標準的なUNCで設定されることを確認してください。


133 ERR ACCESS DENIED

ホーム > トラブルシューティング > パーティショニングエラー > -133 ERR ACCESS DENIED

-133 ERR ACCESS DENIED

ユーザ名またはパスワードが不適当な場合このエラーが発生します。

また、指定されたユーザにアプリケーションのアクセス権およびプログラムの実行権利がない場合もこのエラーが発生します。


136 ERR LIMITED LICENSE CS

ホーム > トラブルシューティング > パーティショニングエラー > -136 ERR LIMITED LICENSE CS

-136 ERR LIMITED LICENSE CS

アクセス数がライセンスの制限を超えました。

アプリケーションサーバのライセンス以外では、アクセス数は2000に制限されています。

アプリケーションサーバのライセンスを使用してください。


138 ERR RT ERROR MSG

ホーム > トラブルシューティング > パーティショニングエラー > -138 ERR RT ERROR MSG

-138 ERR RT ERROR MSG

アプリケーションサーバで実行中のプログラムが処理を正常に終わらすことができなかった場合に発生します。

プログラムが完了できなかった場合、プログラムで発生したエラーメッセージはリクエスタに送られます。

エラーメッセージが表示されていても、プログラムが正常に実行された場合、そのプログラムの出力が戻され、エラーメッセージを無効にします。

  • リクエスタがインターネットリクエスタの場合、エラーメッセージはリモートブラウザへ送られます。

  • リクエスタがコマンドラインリクエスタの場合、エラーメッセージはコンソールに表示されます。

  • リクエスタがMagicエンジンの場合、このエラーメッセージは表示されません。

構文チェック（F8）でプログラムをチェックしてください。

J2EE環境の場合、EJBはアボートしたプログラムのエラーメッセージをEJBクライアントに返します。


144 ERR CNCT RESET

ホーム > トラブルシューティング > パーティショニングエラー > -144 ERR CNCT RESET

-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

ホーム > トラブルシューティング > パーティショニングエラー > -146 ERR BIND HOST NOT FOUND

-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

ホーム > トラブルシューティング > パーティショニングエラー > -147 ERR CNCT HOST NOT FOUND

-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

ホーム > トラブルシューティング > パーティショニングエラー > -148 ERR CNCT CLOSED

-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 という他のエラーが発生するかもしれません。


150 ERR CNCT REFUSED MRB

ホーム > トラブルシューティング > パーティショニングエラー > -150 ERR CNCT REFUSED MRB

-150 ERR CNCT REFUSED MRB

アプリケーションサーバがMRBと接続できない場合、このエラーが発生します。

MRBが起動されている場合、アプリケーションサーバから認識するMRBのホスト名とIPアドレスが正しいかを確認してください。

アプリケーションサーバがインストールされているディレクトリ内の MGREQ.INIにて「Log」パラメータを有効にすることで問題の原因を調べることができます。(例：log = reg.log Y R)


151 ERR CNCT CLOSED BY REQ

ホーム > トラブルシューティング > パーティショニングエラー > -151 ERR CNCT CLOSED BY REQ

-151 ERR CNCT CLOSED BY REQ

リクエストの実行中に、リクエスタはステータス「110 ERR REQUEST TIMEOUT」の受信後に、接続をクローズしました。

この時は、アプリケーションサーバからリクエスタに何も返されません。クライアントPCとアプリケーションサーバのリクエスタをチェックしてください。

可能ならば、リクエスタやアプリケーションサーバのログ（MGREQ.INI のLogキーワードで指定します。）を有効にして問題を再現してみてください。

これはステータス 「110」と関係した内部ステータスコードであり、クライアント側で対応する必要があります。


156 RQMRG ERR OUT OF SEQ MSG

ホーム > トラブルシューティング > パーティショニングエラー > -156 RQMRG ERR OUT OF SEQ MSG

-156 RQMRG ERR OUT OF SEQ MSG

クライアントとサーバ間のセッションが同期していません。

クライアントを提供しているコンテキストは、予期しないセッションカウンタを含んだリクエストをクライアントから受け取りました。（クライアントからの各リクエストのセッションカウンタは、前のセッションカウンター+1にならなければなりません。）

可能ならば、リクエスタやアプリケーションサーバのログ（MGREQ.INI のLogキーワードで指定します。）を有効にして問題を再現してみてください。


189 The license loaded by the Magic xpa server cannot be used in Floating mode

ホーム > トラブルシューティング > パーティショニングエラー > -189 The license loaded by the Magic xpa server cannot be used in Floating mode

-189 The license loaded by the Magic xpa server cannot be used in Floating mode

FloatingLicense=Y に設定してMRBを起動した状態で、モバイル用ライセンス（MGMBL12）でアプリケーションサーバを起動しようとした場合に発生します。


197 ERR CTX NOT FOUND

ホーム > トラブルシューティング > パーティショニングエラー > -197 ERR CTX NOT FOUND

-197 ERR CTX NOT FOUND

コンテキストが見つかりません。

ブラウザクライアントによって送信されたコンテキストIDがアプリケーションサーバに存在していません。

ブラウザクライアントセッションが開始される場合は常に、アプリケーションサーバはそのセッションに対応したユニークなコンテキストIDを生成します。このコンテキストIDは、この次に送信されるリクエストをブラウザクライアントからアプリケーションサーバに結びつけます。

アプリケーションサーバは、MAGIC.INI で定義された「コンテキスト非稼働タイムアウト」で設定された時間内でコンテキストの内容を保持します。このタイムアウトの値は、最後のリクエストを受信してから、指定時間を超えてもリクエストが受信されない場合をタイムアウトとするものです。

ブラウザクライアントとアプリケーションサーバ間でのセッションに影響する可能性のある別の環境設定として、「コンテキストのアンロードタイムアウト」があります。

以下にトラブル例とその解決策を記述します：

例1

ブラウザクライアントのセッション間に、[コンテキスト非稼働タイムアウト]で設定された値より長い時間、エンドユーザがアプリケーションサーバにアクセスできない。

対策：[コンテキスト非稼働タイムアウト]の値を少しずつ増やしてみてください。値を大きくすると、アプリケーションサーバがコンテキストをより長い時間オープンするようになります。ただし、使用しているリソースに対して悪影響を及ぼす場合もあります。[コンテキスト非稼働タイムアウト]は、0.1 秒単位で設定されます。例えば、「600」と設定すると「1分」になります。

例2

ブックマークとして保存されているような、コンテキストIDを含んだURLが、コンテキストの使用期限を過ぎてからアクセスされた場合。

対策：URLは、ブラウザベースのセッションを始めるプログラムにアクセスするように設定する必要があります。例：appname=myapp&prgname=myprg

例３

ブラウザクライアントが実行中に、エンドユーザが（ブックマークのような）他のURLを指定し、[コンテキストのアンロードタイムアウト]で指定された時間を経過後に、IEの[戻る]機能でMagic xpaのブラウザのセッションに戻ろうとした場合

対策：[コンテキストのアンロードタイムアウト]の値を少しずつ増やしてみてください。値を大きくすると、アプリケーションサーバがコンテキストをより長い時間オープンするようになります。ただし、使用しているリソースに対して悪影響を及ぼす場合もあります。

[コンテキストのアンロードタイムアウト]は、0.1 秒単位で設定されます。例えば、「1200」と設定すると「2分」になります。

開発モード時は、このタイムアウトの値が 0.1秒に制限されていることに注意してください。

F7キーで起動されたブラウザプログラムを（Webブラウザを閉じたり、他のURLを指定したりして）止めると、すぐにMagic xpaの開発画面に戻ります。


202 ERR OPEN RESULT FILE

ホーム > トラブルシューティング > パーティショニングエラー > -202 ERR OPEN RESULT FILE

-202 ERR OPEN RESULT FILE

リクエスタは、出力内容をファイルに書き込むように依頼しましたが、指定されたファイル（またはパス）名が正しくありません。

クライアントのMagic xpa/Magicバージョンが異なっていたり、MGREQ.INI や コマンドラインリクエスタによる指定に誤りがあるかもしれません。


211 RQMRILOW ERR NOT MRI

ホーム > トラブルシューティング > パーティショニングエラー > -211 RQMRILOW ERR NOT MRI

-211 RQMRILOW ERR NOT MRI

メッセージの受信中に内部エラーが発生しました。

通信相手がMagicモジュールではありませんでした。メッセージはInternet Explorerなどの別のTCP/IPモジュールによって送信された可能性があります。


212 RQMRILOW ERR OLD MRI

ホーム > トラブルシューティング > パーティショニングエラー > -212 RQMRILOW ERR OLD MRI

-212 RQMRILOW ERR OLD MRI

メッセージの受信中に内部エラーが発生しました。

エンジンとリクエスタのバージョンが合っていない可能性があります。

可能ならば、リクエスタやアプリケーションサーバのログ（MGREQ.INI のLogキーワードで指定します。）を有効にして問題を再現してみてください。


トラブルシューティング タイムアウトと間隔

ホーム > トラブルシューティング > タイムアウトと間隔

タイムアウトと間隔

タイムアウト

INIファイルの中で定義されている様々なタイムアウトの説明を以下に挙げています。これらは、トラブルの解決に有効な場合があります。

タイムアウトの種別 | リクエスタ | MRB | アプリケーションサーバ | クライアント
ブローカタイムアウト BrokerTimeout |  |  |  |
終了待ちタイムアウト CloseWaitTimeout |  |  |  |
通信タイムアウト CommTimeout |  |  |  |
コンテキスト非稼動タイムアウト ContextInactivityTimeout |  |  |  |
コンテキストのアンロードタイムアウト ContextUnloadTimeout |  |  |  |
起動時HTTPタイムアウト FirstHTTPRequestTimeout |  |  |  |
HTTPリクエストタイムアウト HTTPRequestTimeout |  |  |  |
HTTP タイムアウト HTTPTimeout |  |  |  |
LDAP タイムアウト LdapTimeout |  |  |  |
メール接続タイムアウト MailConnectionTimeout |  |  |  |
メール処理タイムアウト MailOperationTimeout |  |  |  |
リクエスタタイムアウト RequesterTimeout |  |  |  |
シャットダウンタイムアウト ShutdownTimeout |  |  |  |
URLタイムアウト URLTimeout |  |  |  |

間隔

INIファイル／使用モジュール | リクエスタ | MRB | アプリケーションサーバ | クライアント
バッチイベント間隔 |  |  |  |
クライアントネットワーク復旧間隔 |  |  |  |
KeepAlive |  |  |  |
キーボード休止秒数 |  |  |  |
レコードイベント間隔 |  |  |  |
RetryMainTime |  |  |  |
コマンド処理のリトライ間隔 |  |  |  |
ServerTimeout |  |  |  |
SpecialLicenseServerInterval |  |  |  |


トラブルシューティング ログファイルの設定

ホーム > トラブルシューティング > ログファイルの設定

ログファイルの設定

３つのログファイルがあります。

  • MGREQ.INI で定義 …… TCP/IP、スレッド、イベントなどの低レベルの動作を記録します。

  • MGRB.INI で定義 …… リクエストの受信、アプリケーションサーバの位置付、アプリケーションサーバへのリクエスタの送信や初期設定などのハイレベルのMRBの動作を記録します。このログは、MRBがリクエストを受け付けたかどうか、またリクエストをどのように処理したかなどを確認することができます。

  • Mrb_event.log …… MRBが記録し、どのINIファイルにも関係しないログです。MRBとアプリケーションサーバの起動やシャットダウンなどの重要なMRBの動作を記録します。


リッチクライアントアプリケーション 共通エラー Dot Net

ホーム > トラブルシューティング > リッチクライアントの共通エラー

リッチクライアントの共通エラー

注意：

エラーを発行するモジュールによって、英語のメッセージになる場合があります。

リッチクライアントアプリケーション起動時のエラー

リッチクライアントアプリケーションを起動した場合に、発生する可能性のあるエラーについて説明します。［詳細］ボタンをクリックするとエラーに関するログ情報が表示されます。

1. MRBとの接続ができない場合

サーバ側でMRBが起動されていない場合、このエラーが発生する可能性があります。

2. マニュフェストファイルの記述に間違いがある

実行時に使用されるHTMLとマニフェストファイルの位置が、その記述内容と異なる場合に発生します(記述内容が、URL指定にもかかわらず、デスクトップ上からファイルをクリックして起動させた場合もこれに該当します)。

3. マニュフェストファイルが改ざんされている

マニフェストファイルをテキストエディタなどで修正された場合に発生します。

4.サーバ名が正しくない

サーバ名がHTMLファイル（のrcExecProps セクション内）に正しく設定されていない場合に発生します。

5.エイリアス名が正しくない

エイリアス名がHTMLファイル(のrcExecProps セクション内）に正しく設定されていない場合に発生します。

6.アプリケーション名が正しくない

アプリケーション名がHTMLファイル（のrcExecProps セクション）に内に正しく設定されていない場合に発生します。

7.プログラム名が正しくない

プログラム名がHTMLファイル(のrcExecProps セクションに)内に正しく設定されていない場合に発生します。

Magicエンジンがバックグラウンドモードで実行されていない場合も発生します。

8.プログラムが公開されていない

指定されたプログラムの[公開]カラムがチェックされていない場合、このエラーが発生する可能性があります。

9.エンジンがダウンした

アプリケーションサーバへのアクセスができない場合に発生します。実行中にアプリケーションサーバがダウンした場合も発生します。

エラー内容を確認するには、アプリケーションファイルが格納されているフォルダ内に作成されるログファイル（mgerror.log）の内容を確認したり、詳細な実行ログを出力するように（［動作環境］の［ロギング／設定］で）設定して確認してください。

10. タイムアウトでセッションがクローズされた

［動作環境］ダイアログの［コンテキスト非稼動タイムアウト］に指定された時間内に操作が行われなかった場合にこのエラーが 発生します。「0」に設定するとタイムアウトは発生しなくなります。

11. アプリケーションにアクセスできない

以下の場合にこのエラーが発生します。

  • アプリケーションが実行されていない場合

  • ［動作環境］ダイアログの［最大並行ユーザ数］に指定されたユーザ数を越えた接続要求が発生した場合にこのエラーが 発生します。また、Magic xpa Studioで実行している場合も、2セッション以上の接続要求が発生した時点でこのエラーが発生します。

  • モバイル用ライセンスで実行しているアプリケーションをPCからアクセスしようとした場合

12.内部解析処理ができない

［動作環境］ダイアログの以下の設定が正しくない場合にこのエラーが発生します。

  • HTTPリクエスタ

  • リッチクライアントのキャッシュパス

14.Webサーバから応答がない

開発時にF7を押下してプログラムを実行させた場合にWebサーバが停止していると発生します。

15.その他

IISが.NETをインストールしていなかったり、MIMEタイプが設定されていない旨のメッセージを表示した場合

IIS Ver7の以下のオプションを無効にします。

［ツール→インターネットオプション→セキュリティ→レベルのカスタマイズ→拡張子でなく、内容によってファイルを開く］

[タブ]コントロールに初期値を設定していないにもかかわらず、一番目のタブが選択されている

オンラインタスクの場合は、初期値を設定しないと表示されませんが、リッチクライアントタスクは、SWT(Standard Widget Toolkit )を使用しているため、常に選択された状態で表示されます。

RIAアプリケーションをクライアントにインストールすると、417のエラーが発生する。

このエラーは、クライアントPCがProxyサーバを使用している場合に発生します。ProxyサーバにRIAサーバのIPアドレスを定義してください。

RIAプログラムの［起動］ボタンをクリックすると、エラーが発生する。

RIAプログラムの最初の起動処理は、HTMLページ（publish.html)を通して行われます。場合によっては、［起動］ボタンは動作しません、または、［起動］ボタンをクリックすると、エラーが表示されます。このようなエラーは、IE8/Vistaを使用した場合によく発生します。指定されたクライアント上でのセキュリティに関する分散COMの様々な設定が原因です。

以下の通りにコンポーネントサービスでの分散COM設定を確認してください。

  1. OSの［スタート］メニューから、［ファイル名を指定して実行］をクリックし、dcomcnfg.exeを入力して、Enterを押下します。

  2. ［コンポーネントサービス］から、［コンピュータ］を選択し、［マイコンピュータ］で右クリックして、［プロパティ］オプションを選択します。

  3. ［規定のプロパティ］タブから、［規定の認証レベル］を「接続」に設定します。

  4. ［規定の偽装レベル］を「識別する」に設定します。

IIS以外のWebブラウザからRIAアプリケーションを配備しようとすると、エラーが発生します。

これは、RIAプログラムがMicrosoftのClickOnceを使用して実行しているからです。IISでは、この機能を利用できますが、他のWebブラウザではClickOnceに関するアドオンを手動でインストールする必要があります。ブラウザのベンダサイトから、適切なアドオンを探してください。

MSHTMLが既にインストールされているにもかかわらず、MSHTMLSetupボタンが有効になっています。

MSHTMLがPCにインストールされるかどうか確認するために、ActiveXスクリプトを使用しています。

したがって、WebブラウザーがActiveXスクリプトの実行を許可していない場合、インストールされないとして扱われ、ボタンが有効になります。この動作の対応は、Webブラウザで判断しています。このため、ブラウザ側のセキュリティの設定を変更する必要があります。

IIS Ver7の以下のオプションを有効にします。

［ツール→インターネットオプション→セキュリティ→ローカルイントラネット→レベルのカスタマイズ」

  • 未署名のActiveXコントロールのダウンロード

  • スクリプトを実行しても安全だとマークされていないActiveXコントロールの初期化とスクリプトの実行

これによって、ActiveXスクリプトの実行が許可され、MSHTMLがPC上にすでにインストールされていれば、ボタンが無効表示になります。

「ファイルを作成することができません：...\execution.properties」のエラーが発生する。

HTTPリクエスタの環境設定が正しく行われていない場合、Windows 7でこのエラーが発生する場合があります。

Magic xpaをインストールする前にWebサーバが実行されていない場合も発生します。

IE 7を使用中の場合、SWFビデオが［ブラウザ］コントロールで直接表示できません。

IE7を使用している場合、［ブラウザ］コントロールで直接SWFビデオを表示させようとすると、プログラムの実行後に解析エラーが発生します。これは、ActiveXの［ブラウザ］コントロールでスクリプトファイルを実行する場合のIE7セキュリティ方法が変更され、ActiveXの［ブラウザ］コントロール上でSWFビデオを表示させることを許可していないからです。

この問題の詳細は、以下を参照してください。

http://support.microsoft.com/kb/934366

Internet Explorer 7でMicrosoft のActiveXコントロール・ベースのMIMEハンドラーをオープンしよとすると、解析エラーが発生します。この問題は、レジストリのFEATURE_BLOCK_LMZ_SCRIPTキー（IE7用に追加されたキーです）が、インターネットゾーンやイントラネットゾーンのHTMLページ内にファイルがのホストされた場合、スクリプトファイルの実行を防止することで発生します。

ここでは、2つの回避方法を提案します。

  • IE 7の信頼されたサイトにサーバ名にRIAサーバを追加します（例えばhttp://servername（e.g.http：//myserver)）、つまりサイトを信頼されたゾーンに追加します。それからこのプログラムを実行してください。これによって正しく動作して、［ブラウザ］コントロールでSWFファイルが表示されます。

  • ローカルマシンゾーンの選択：

  1. ［スタート］メニューをクリックして、［ファイル名を指定して実行］をクリックし、Regeditを入力します。

  2. 以下のレジストリキーに位置付けてクリックします。
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BLOCK_LMZ_SCRIPT

  3. ［編集］メニューから、［新規］を選択して、DWORD値をクリックします。

  4. DWORD値ボックスで、"MgxpaRIA"を入力します。

Microsoftによって提案されるこれらの回避方法を使用したくない場合は、直接SWFを参照する代わりに、SWFが埋め込まれたHTMLを使用して、［ブラウザ］コントロールでそのHTMLを表示させることで可能になります。

Windows Vista上のIIS7でモバイルRIAを実行させると、"mgrqispi.dll - This method was pruned during dead code elimination"というエラーが発生します。

1. IIS7の要求トレースを有効にします。

使用するPCでIISログをチェックして、さらに要求トレースを有効にします。

IIS7トラブルシューティング：http://www.trainsignaltraining.com/iis-7-troubleshooting/2008-07-09/

コントロールパネルを開き、［プログラムと機能］を選択します。［Windowsの機能の有効かまたは無効化］を選択し、［追跡］（Internet Information Services/World Wide Web/健常性と診断）をチェックします。

この機能を有効にすると、IIS7の設定ウィンドウに［失敗した要求トレー所の規則］のアイコンが追加されます。

また、IIS7の設定ウィンドウの「ログ記録」を使用してIIS7のログをチェックすることができます。

注：Windows Vistaでは、ログファイルは、"C:\inetpub\logs\LogFiles\W3SVC1" に保存されます。

2. エラーを再生させます。

3. IIS7でエラーメッセージをチェックします。

"Site 1

Process 6028

Failure Reason STATUS_CODE

Trigger Status 401.2

Final Status 401.2

Time Taken 0 msec

Url http://fml102:80/uniScripts/MGrqispi.dll?RICHCLIENT=Y&UTF8TRANS=Y&CTX=9135957310680&SESSION=1&CTXGROUP=9135957310680

App Pool DefaultAppPool

Authentication NOT_AVAILABLE

User from token

Activity ID {00000000-0000-0000-1700-0080010000FF}

ModuleName IIS Web Core

Notification 2

HttpStatus 401

HttpReason Unauthorized

HttpSubStatus 2

ErrorCode 2147942405

ConfigExceptionInfo

Notification AUTHENTICATE_REQUEST

ErrorCode Access is denied. (0x80070005)

"

このエラーは、IISの認証設定に関連するもするものです。

以下を確認してください。

  • 匿名認証が有効になっているかどうか。

  • 匿名認証用にどのような設定が行われているか。

4. 設定内容に応じてIIS7エラーを修正します。

確認したケースでは、エラーメッセージは匿名認証がII7 ― デフォルトWebサイト特性 ― で使用不能だったことが要因でした。したがって、この問題は、IIS7の匿名認証を有効にすることで解決されました。

"405 Method Not Allowed" というエラーが発生する。

テクニカルノートの「IIS7上でRIAプログラムを実行するためにリクエスタを有効にするには」を参照してください。

"503 Service Unavailable" という HTTPエラーが発生する。

1. 503.0－アプリケーションプールが利用できない。

リクエストが、現在、停止しているか無効になっているアプリケーション・プールに送信されました。

この問題を解決するには、送り先のアプリケーション・プールが開始されていることを確認してください。

イベントログには、アプリケーションプールが停止していたり、無効になっている理由に関する情報が記録されているかもしれません。

AppPoolが自動的に起動できるように設定されているかどうかも確認してくだい。

このエラーについて詳細情報は、ここも参照してください。

Windowsプロセス起動サービス(http://technet.microsoft.com/en-us/library/cc735229(WS.10).aspx)を外して、IISの再インストールを行うこともできます.

2. 503.2－並列のリクエストの制限を超えた

appConcurrentRequestLimitのプロパティは、並行リクエストの現在数より低い値に設定されています。

IIS 7.0は、appConcurrentRequestLimit で設定された値よりを超えた並行リクエストを許可していません。

RIAプログラムの開始ボタンをクリックするとエラーが発生する。

RIAプログラムの最初の起動は、HTMLページ（publish.html)から行われます。

その際、［起動］ボタンが動作しなかったり、エラー('Cannot open an anonymous level security token' or 'Security

id is incorrect...'.)が表示される場合があります。

これらのエラーは、IE8/Vista で発生します。これは指定したクライアントのセキュリティに関するCOMの設定が異なるためです。

http://social.answers.microsoft.com/Forums/en-US/InternetExplorer/thread/c91fdaf1-dac7-439b-a8a7-40005c7a7744

http://social.msdn.microsoft.com/Forums/en-US/iewebdevelopment/thread/88cfa0f8-8eb8-4f81-a1bc-3c0a957d701a

以下の通りにコンポーネントサービスから配信されたcomのセキュリティの設定を確認する必要があります：

1. ［スタート］メニューから、［ファイル名を指定して実行］を起動し、「dcomcnfg.exe」を入力し、Enter を入力します。

2. ［コンポーネントサービス］から、［コンピュータ］を選択し、「マイコンピュータ」で右クリックし、［プロパティ］を選択します。

3. ［規定のプロパティ］タブから、［規定の認証レベル］で「接続」を選択します。

4. ［規定の偽装レベル］で「識別する」を選択します。

リッチクライアントインタフェースビルダを使用してアプリケーションを配備した後に、PublishedApplications\フォルダ内にMgxpaRIA_xxxnフォルダが作成されません。

Magic.iniファイルの［MAGIC_RIA］セクションに以下の設定が含まれている場合に発生します。

［MAGIC_RIA］ClientModulesPath=RIAModules\

このパラメータは、以前のバージョン（Ver1.8以前)でサポートされていましたが、Ver1.9からは不要になりました。

Magic.iniファイルからこのパラメータを削除することによって問題が解決されます。

自動設定のスクリプトに対応した.insファイルを使用すると、RIAアプリケーションでエラーが発生します。

ClickOnceは、.insファイルをサポートしません。

IE8で.insファイルを使用するためには、Microsoft から入手できる解決案を参照するために、http://support.microsoft.com/kb/973529 を参照してください。


.NET の問題

サードパーティ用.NETコンポーネントが動作しないのは何故でしょうか？

サードパーティ用.NETコンポーネントを使用したい場合、［コンポーネント］リポジトリにSystem.Windows.Formsアセンブリを定義する必要があります。

ネットワークパスからMagic xpa Studioを開始した場合、［コンポーネント］リポジトリで.NETのdllを読み込み中に、「これは、有効なアセンブリでありません」というエラーが表示されます。

MgxpaRuntime.exe構成ファイルのV4とV2の.NETの設定順を変更してみてください。

ネットワークパスからmagic xpa Studioを開始した場合、.NET項目が定義されたプログラム上でF8を押下すると「MgDotNet.dllの読み込みに失敗しました」というエラーが表示されます。

MgxpaRuntime.exe構成ファイルのV4とV2の.NETの設定順を変更してみてください。

ユーザ定義開発メニューを使用してバックグラウンドで作成された.ecfファイルが.NETコントロールを表示しません。

Ver4の.NETアセンブリをが使用され、AutomaticProcessingMode=B（バックグラウンドモード）で実行された場合に発生します。

これは、Microsoftの .NET Framework のCLR(Common Language Runtime)のバージョンがMgxpaRuntime.exeプロセスからアセンブリを読み込むためです。しかし、自動処理がバックグラウンドモードで実行された場合、実行エンジンは読み込みません。このため、CLRバージョンが読み込まれません。

アセンブリを読み込まむために使用されるAPIはこのバージョン情報を必要とします。このため、Nullバージョンがに送られると、Ver4より低いアセンブリを読み込みます。

解決手段1：

MgxpaStudio.exe.configファイルに以下を追加してください：

&ltstartup useLegacyV2RuntimeActivationPolicy="true">

&ltsupportedRuntime version="v4.0" />

&ltsupportedRuntime version="v2.0.50727" />

</startup>

解決手段2：

.NET 3.5のフレームワーク用dllを使用してください。


トラブルシューティング データベースの障害

ホーム > トラブルシューティング > データベースの障害

データベースの障害

次のエラーが発生しました："サーバ名：Incorrect syntax near"

データベース名が数字から始まっていたり、スペースを含んでいたり、角括弧で囲まれている場合（例えば［b］）にこのエラーが発止します。

インデックスの重複エラーが発生した場合、ステータス行にエラーメッセージを表示させず、［イベント］ロジックユニット（エラーハンドラー)で処理するようにするには？

［データベース特性］の［チェックインデックス］特性のチェックをはずしてください。

この変更によって、（ISAMデータベースだけは）Magicエンジンによるインデックスチェックは回避されます。

これで以降は、Magic xpaはインデックスをチェックせず、重複値の発生によってデータベースによる例外を発生します。これらの例外は、Magic プログラム内のエラーの［イベント］ロジックユニットで処理することができます。

"Failed to open, table: [TEMP_PATH]\MG7832-1583.mem" というエラーがステータス行やログファイルに表示されるのは何故でしょうか

通常そのようなメッセージは、 物理テーブルを使用している場合に表示されます。このエラーは、さまざまな理由（書き込み権がない、位置が正しくない、アクセスできない位置、など)で発生します。

メモリテーブルを使用している場合に時々発生します。ソート処理のようにMagicエンジンの内部利用によってテーブルが作成されたり、開発者によって作成された場合のどちらかになります。この様な場合の対応方法は、以下の通りです。

オープンできるメモリテーブルの数は、デフォルトで以下の制限があります。

  • Ver9 = 200

  • Magic xpa = 500

デフォルト数より多くのテーブルをオープンした場合、エラーメッセージが表示され、フローは停止し、ロールバックが実行されます。

この制限を変更したい場合は、［DBMS］テーブルのパラメータでINITFILE=nnnn（nnnn：処理したいメモリテーブル数)を設定してください。

たとえば、Magic xpaで、この数を1000に変更したい場合は、Magic.iniファイルで以下ように修正します。：

Memory Tables =22, NotAllowNull, 10.3, INITFILE=1000,N, , NotLogSync, 0, 0, NotCheckExist,

Magicエンジンは、オープンされたメモリテーブルごとにエントリを割り当てるため、内部のメモリテーブルを使用してアプリケーションのメモリテーブルを処理します。

それらがメモリーとして定義されているのであれば、Magicエンジンはソート/一時テーブルを含めてカウントします。

INITFILEパラメータは、Magicエンジンがすべてのオープンしたメモリテーブルを処理するテーブルで、どれくらいのエントリを割り当てるかについて決定します。

そのテーブルの各エントリは、2～3バイトを消費します、理由もなくスペースを割り当てたり、大きなテーブルを処理すると、小さなテーブルに対しても処理が遅くなります。

使用することで到達するであろう制限より20%大きめの値を設定することを推奨します。

オープンしたいメモリテーブルの総数を反映する値を設定してください。

各コンテキストが独自のメモリテーブルをオープンすることに注意してください。オープンする数は以下の通りになります：

RIAクライアント（またはコンテキスト) の最大数×各コンテキストでオープンされるメモリテーブルの数

（実際に使用される［データ］リポジトリ内でのメモリテーブルの数を数えてみてください。)

Magic xpaが常にXMLビューでスキーマが使えないrestriction要素を持っている場合、どの様にすればいいのでしょうか

restrictionの部分（<xs:restriction>タグ）を削除してください。

たとえば、以下のようなタグがある場合、

<xs:element name="description">

<xs:simpleType>

<xs:restriction>

<xs:maxLength value="256">

</xs:restriction>

</xs:simpleType>

</xs:element>

以下のように変更してください。

<xs:element type="xs:string" name="description">

</xs:element>

さらに、Magic xpaのテーブル定義において、Magic xpaのフィールドに移動して、restriction タグ内に記述されている制限を追加してください。例えば、書式を256に変更してみてください。

MS-SQL Server

"MSSQL Error - Incorrect syntax near '-'"というエラーが発生します。

データベースに接続する場合、名前にハイフン(-)が含まれているとこのエラーが発生します。

データベース名を角括弧（［］)で囲まれた名前に変更してください。

例：データベース名を"TEST-DB"から［TEST-DB］に変更します。

MS-SQLで大文字と小文字の区別をしないように定義していますが、Magic xpa で大文字と小文字の区別を行います。

全ての環境で大文字と小文字の区別をしないことを確認するために、クライアントもチェックを行うため、同じ様に大文字と小文字の区別をしないを設定する必要があります。

こうするには、［データベース］特性の［SQL］タブで［照合順序ファイル］特性を使用してください。この特性を有効にするには、Magic xpa Studioを再起動する必要があります。

次のエラーが発生しました："サーバに接続できません：最大接続数に達しました"

このエラーメッセージは、データベースをオープンする接続数が制限値に達した場合に発生します。

該当するDBMS：Microsoft SQL Server

考えられる原因：

  • Magic xpaによって許可された接続数が少なすぎる。

  • トランザクションの外で更新-トランザクション内での更新は、常に1つのコネクションを消費します。トランザクションを使用しないように定義されている場合-各更新は、新規トランザクションを作成します。

  • カーソルを使用しない動作－［データベース特性］で［カーソル］特性が「No」に定義されている。

  • データベース接続がTCP/IPのみに設定されている。

  • プログラムの並行実行－以前のバージョンからアプリケーションを移行する際、並行実行を有効にすることでより多くの接続数が使用されることになったのかもしれません。

  • ダイレクトSQLプログラム－これらのプログラムは、独自の接続数が必要となります。

解決方法：

  • 接続数として明示的に高い値（例えば9999)を設定してください。デフォルト値は0です。この場合、接続数3を意味し、無限ではありません。

  • アプリケーションをチェックして、すべての更新がトランザクション内から行われていることを確認してください。

  • 可能であれば、カーソル使用で実行させるか、デフォルト設定（この場合、オンラインプログラムではカーソルの使用を意味しています)にしてください。

  • 名前付きパイプをクライアントの接続設定に追加してください。

並行実行プログラムとダイレクトSQLタスクは余分の接続数を必要とします。これは回避できません。

DSQLプログラムでレコードをソートしようとするとき、パフォーマンスが遅くなるのは？

メインソースを使用する場合、Magic xpaはサーバにSQLステートメントを作成します。したがって、一旦カラムをクリックすると、新しいステートメントがORDER BY 句で送られるため、ソート処理はデータベース上で行われます。

DSQLタスクでは、開発者によって提供されたステートメントを使用するため、Magic xpaはステートメントを作成しません。したがって、レコードをソートするために、全てのレコードをデータベースから取得する必要があります。そして、Magic xpaはメモリ内でソートを実行します。全データを取得して、ソート処理はパフォーマンスに関する非常に重い処理になるため、このプロセスは多くの時間がかかります。

この問題を解決するには以下のようにしてください。

  1. ステートメントの最後にもう1つのパラメータ（：1)を追加しててください。

  2. 一旦ユーザがカラムをクリックすると、［カラムクリック］イベントを処理しなければなりません。

  3. クリックされたカラムにもとづくORDER BY句のステートメントに追加してください。

  4. 新しいステートメントをデータベースに送るために、［ビュー再表示］イベントを発行してください。

このようにすることで、データベース側でソート処理を行うように維持します。そして、Magic xpaはソートしたり、全体の結果セットを読み込む必要がなくなります。

MSSQLテーブルで［共有］特性を｢No｣に設定して全てのテーブルをロックしようとしても動作しません。

全てのテーブルをロックすることは推奨されないため、SQLサーバでは［共有］特性の「NO」は利用できません。全てのテーブルをロックする必要がある場合、以下のメソッドのうちのどれかを使用してください。

  • mglockファイルを使用したMagicのロック機能を使用する。

  • 全データベースをロックする以下のDSQLステートメントを送る。

(Select * from TABLE with(TABLOCK))

  • 1ユーザだけが一度に指定したタスクを呼び出せるようにするアプリケーションにロックを実装する。

MSSQLでTime（0)カラムを使用し、特定のフィールドを表示したりソートするとデータベースエラーが発生します。

Magic xpaは、TIMEと同等のTIME(7)以外のTIME（N)フィールドをサポートしません。エラーを発生させずにこれらのフィールドを表示したりソートするには、SQLサーバから取得されるデータがTIME(7)であることを確認してください。

これを行うには、［カラム特性］の［DBカラム名］特性を関連したカラムに変更しなければなりません。たとえば、MSSQLにTIME（0)フィールドがあり、その名前がmyTimeの場合、DBカラム名をmyTimeからCONVERT(TIME(7),myTime)に変換する必要があります。このように、変換されたカラムは計算され、実カラムでありません。

Magic xpaからデータソースを変換されないことを確認してください。そうしないと、それは同様にデータベーステーブルに影響します。これは、ビューの部分を解決します。フィールドを更新する必要がある場合、データを挿入する必要があり、表示しない場合だけ、実フィールドを参照して、それを表示する別のカラムを追加する必要があります。

ODBC

ODBCゲートウェイでの問題が発生した場合、どのように対応すればよいのでしょうか?

ODBC用データベースゲートウェイを使用して問題が発生した場合、以下のような対応を検討してください。

  1. ODBCドライバーをテストします。

  2. データにアクセスはできるが、ゲートウェイが正しく機能していない場合は、Microsoft QueryやODBCテストなどのツールを使用して、ODBCドライバー自身をテストしてみてください。

  3. データがそれらのツールを使用してアクセスすることが可能であれば、ODBCドライバーは正しくインストールされていることになります。

Magic xpaが提供しているODBCチェックドライバーユーティリティを使用して確認することもできます。

Oracle

次のOracleエラーが発生しました："ORA-01465: invalid hex number"

Oracleテーブルが更新のためにオープンされ、フィールドのうちの1つが入力値（デフォルト値を含む)のデータ型と合っていない場合にこのエラーが発生します。

以前のバージョンからアプリケーションを移行した場合に、この問題は発生する可能性があります。

エラーは、テーブルの［記憶形式］特性の違いのために発生します。以前のMagicバージョンとmagic xpaとの間での記憶形式が異なる場合があります。

例：ZStringとStringがリスト上の位置が変わりました。

この問題を解決するために、2つの手順があります：

  1. 定義取得を使用して、新しいエントリをデータベーステーブルに追加してください。

  2. 問題を持ったテーブルの数に応じて、以下のうちの1つを行うことができます：

  1. 単一テーブル、または2～3の場合：定義取得オプションを使用して作成されたテーブルで既存のテーブルを上書きします。

  2. 問題がアプリケーション内に存在する場合は、単に移行時のテーブルをエクスポートして、新しいものと比較してみてください。次に、［データ］リポジトリをエクスポートして、検索と置換を使用して、新しいテーブル（ステージＩ)に定義された特性値を全てのリポジトリに対して反映させてください。

開発者によって直接変更された特性が定義取得の後でも残っていることを確認してください。

次のOracleエラーが発生しました：“ORA-12514: TNS”

このエラーの発生理由：

  1. TNS名ファイルのサービス名が正しくない。

  2. サービスが開始されていない：データベースサーバのOracleリスナーサービスが開始されていないことを意味しています。

  3. ファイアウォールはポート：1521をブロックします。これはデフォルトのリスナーポートです。

2つのOracleデータベース接続で動作すると、01002 Fetch out of Sequence error エラーが発生します。

アプリケーションが一つのMagic xpaのトランザクションで2つの異なるデータベースサーバにアクセスすると、トランザクションの開始時に、最初の接続だけが開始され、トランザクションはその上で開始されます。トランザクションは、2回目の接続時には開始されません。2回目の接続時にレコードをロックしようとすると、Oracleはトランザクションの範囲外によりロックすることができないため、"Fetch Out of Sequence" エラーが発生します。

この問題を解決するには、Magic xpaのトランザクションが開始されたタスクツリーにおいて、より上位の2番目のデータベースからテーブルを定義してください。

Oracleデータベースを使用するとき、インクリメンタルサーチが動作しないのは？

セッションのnls_langパラメータとデータベースのパラメータを確認してください。それらは同一でなければなりません。

以下のSQL文を使用することでデータベースのパラメータを取得することができます。

SELECT value FROM nls_database_parameters WHERE parameter=’NLS_LANGUAGE’

（Magic xpaから)次のSQL文を使用してセッション・パラメータを取得することができます。

SELECT value FROM nls_session_parameters WHERE parameter=’NLS_LANGUAGE’

値が同じでない場合、レジストリか環境変数のNLS_LANGキーを使用してnls_session_parametersを編集する必要があります。

SQLite

SQLite DBMSのゲートウェイまたはデータベースを見つけることができません

SQLiteの機能を追加するには、Magic.iniファイルを以下のように修正する必要があります。

[MAGIC_DBMS]

SQLite = 10, NotAllowNull, 10.3, SQLite Parameters, N, , NotLogSync, 0, 1, CheckExist,

[MAGIC_DATABASES]

SQLite Database = DBMS, 10, , sqlite.SQLite, , , , , NoMagicRecordLock, ChangeFileInToolkit, CheckDefinition, NoCheckKey, NoFileLocks, , , CheckExist, 0, , NoAS400SrvrSort,

[MAGIC_GATEWAYS]

MGDB09=Gateways\mgSQLite.dll


トラブルシューティング 表示の障害

ホーム > トラブルシューティング > 表示の障害

表示障害

アプリケーション名がステータスバーに表示されません

Magic Ver10までは、アプリケーション名がステータスバーに表示されていました。Magic xpa では、ウィンドウのタイトルバーに表示させることができるためこの機能はなくなりました。

Ver10と同じようにステータスバーに表示させるには、StatusBarSetText関数を使用してください。

正しいMGCONSTファイルを指定しているにもかかわらず"Constant file cannot be opened" というエラーメッセージが表示されます。

Magic.iniファイルがANSIファイルとしエンコードが指定されていることを確認してください。

NotepadでMagic.iniを開き、文字コードの指定を"ANSI"にして再度保存してください。Unicodeでエンコードされている場合もエラーになります。

DBCS指定はチェックされません。これはEOF（ファイルの終端）がファイルのDBCSの1バイト目の場合があることを意味しています。

Magic xpaのウィンドウやパレットが見えなくなってしまった

Magic xpaは、直前に表示していたウィンドウ（例えば、式エディタ)やパレット（例えば、ナビゲータ)の位置情報を以下の場所に保存しています。

1. レジストリ

HKEY_CURRENT_USER\Software\Magic Software Japan\Magic xpa

たとえば、Magic xpaのチェッカーのパレット位置は、以下で保存されています。

HKEY_CURRENT_USER\Software\Magic Software Japan\Magic xpa\2.2\Checker

フローモニターは以下に保存されています。

HKEY_CURRENT_USER\Software\Magic Software Japan\Magic xpa\2.2\FlowMonitor

2. 追加情報が保存されているXMLファイル

C:\Documents and Settings\user name\AppData\Roaming\MSJ\Magic xpa2.2\FormsUserState_jpn.xml

これらのレジストリ情報やXMLファイルを削除すると、すべてのウィンドウとパレットはデフォルトの位置にリセットされます。

Magic xpaの終了後に（すべての値は、終了時に書き込まれます)ときに、情報を削除してください。Magic xpaが再起動されると、デフォルトの位置にウィンドウが表示されます。

Outlookにフォーカスがある時にMagic xpaが起動されると、Magic xpa StudioはOutlookの後ろで開きます。

これは、Windows 7による既知の問題です。

  1. レジストリの HKEY_CURRENT_USER\Control Panel\Desktop\ForegroundLockTimeoutを0に変更してください。

  2. PCを再起動してください。

  3. 現象がまだ発生する場合は、MicrosoftのWebサイトに記述されているいくつかの回避方法をためしてください。

［印刷プレビュー］ダイアログがGUI表示ウインドウの後に表示されます。

帳票処理の実行中に発生します。変更はGUI表示ウインドウ（例えば、［次項目］イベントを発行した後にフォーカスを変更した場合）内で行われます。

この問題を解決するには、［次項目］イベントを発行して、［ウェイト］特性が「No」のイベントで帳票処理を実行してください。これによって帳票処理を実行する間、フォーカスが変更されることを防止します。

実行時のフォームが、スタジオで定義したサイズより大きく表示されます。

最小サイズは、フォームのForm.FormBorderStyle プロパティによって設定されます。

(http://msdn.microsoft.com/ja-jp/library/system.windows.forms.form.formborderstyle%28v=vs.110%29.aspx)

これを動作させるには、プログラムの［タスク前］に以下の行を追加することで可能になります。

DNSet(DotNet.System.Windows.Forms.Form.FromHandle(WinHWND(0)). Size,DotNet.System.Drawing.Size(65,24))

65と24は、フォームの幅と高さです。

以下の2つの.NETライブラリを［コンポーネント］リポジトリに追加する必要もあります。

  • System.Drawing

  • System.Windows.Forms


トラブルシューティング フォーム表示の障害

ホーム > トラブルシューティング > フォーム表示の障害

フォーム表示の障害

［タブ］コントロールが［テーブル］コントロールにリンクできません

これは、Windows立体のコントロールを使用する際の制限です。この問題を解決するためには、［タブ］コントロールの位置を計算し、それに応じてテーブルを表示するために、［テーブル］コントロールの［可視］特性を使用するようにしてください。

プログラムがハングしてループする［サブフォーム］コントロールが定義された親タスクがあります。

親が空のデータビューを持ち、サブフォームが定義されている場合、［サブフォーム］コントロール上にカーソルがパークします。［サブフォーム］コントロールが非表示の条件が設定されており、親タスクに空のデータビューがある場合（例えば、［サブフォーム］コントロールの［可視］特性を'FALSE'LOGに設定する)、［サブフォーム］コントロールが示さない条件があるならば、プログラムはハングアップしてループします。これはサブタスクがパーク可能（［パーク］特性が「Yes」）になっているからです。

これを解決するには、［サブフォーム］コントロールの［パーク可］特性と［可視］特性を変更してください。


トラブルシューティング Javaの障害

ホーム > トラブルシューティング > Javaの障害

Javaの障害

JVMをインストールしているのに "Java Virtual Machine: Cannot be loaded (status: -1)" というエラーがでるのは何故ですか?

Webサービス（WSDLをロードしたり、Webサービスを呼び出す場合）使用する場合に、このエラーが発生する場合があります。エラーは、構成の不整合から発生します。

最も考えられる理由は、以下のWASP_HOMEの定義が正しくない場合です。

  • %WASP_HOME%\bin\env.bat ファイル

  • %WASP_HOME% 環境変数

もう一つの可能性のある構成の不整合は、以下のJAVA_HOME環境変数です。

  • Magic.iniファイルの［MAGIC_JAVA］セクション

  • 実際のJAVA_HOME環境変数。これは、Javaの正しいインストール先（%JAVA_HOME%\jre\bin\client\フォルダ内のjvm.dll)が設定されていなければなりません。

何故、ヒープスペースエラー発生するのですか？

Magic xpaとSystinetを使用してWebサービスを提供している場合、大きな（4MByte以上) XMLリクエストを受け取ると、Javaヒープスペースエラーが発生します。

エラーは、受信するリクエストに対するJAVA制限です。

Javaのヒープサイズを増やすには、Systinet server.batファイルのJAVA_CMD行に2つのパラメータを追加することで実現できます。

これらのパラメータを追加するには、以下の手順に従ってください。

  • server.batファイルを開いて、%WASP_HOME%\bin\の下に位置付けます。

  • JAVA CMD行を見つけ、以下のようにDjava.xml.parser定義の直前に-Xms512mタグを2つ追加します。

"%JAVA_CMD%" %WASP_XPARAMS% %WASP_DEBUG% -Xms512m -Xms512m "-Djavax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl" "-Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl" "-Dorg.apache.xerces.xni.parser.XMLParserConfiguration=org.apache.xerces.parsers.StandardParserConfiguration" "-Dorg.xml.sax.driver=org.apache.xerces.parsers.SAXParser" "-Djavax.xml.transform.TransformerFactory=org.apache.xalan.processor.TransformerFactoryImpl" "-Djava.security.auth.login.config=%WASP_HOME%\conf\jaas.config" "-Dwasp.config.location=conf\serverconf.xml" "-Dwasp.location=%WASP_HOME%" "-Didoox.debug.level=3" %WASP_PROPS% -cp "%WASP_CLASSPATH%;%WASP_HOME%\lib\wasp.jar;%CLASSPATH%;" "-Djava.library.path=d:\magic\xpa\xpa1.5sp3\scripts" "-Dtorun=com.idoox.wasp.server.Main" com.idoox.build.ant.Runner %PARAMS%

"Web Application Internal Error"のエラーが発生します。

Magic xpaを 1.9e以上にアップグレードした場合、Systinet Serverも 6.5.2から 6.6にアップグレードされます。

新しいバージョンを実行させるためには、Java のVer1.6が必要です（以前は、Ver1.5でした）。

場合によっては、Systinet Consoleにアクセスしたり、他の処理を実行させようとした場合も同じようなエラーが発生します。

Systinetはログに以下のようなエラーを出力します。

ERROR: com.systinet.web.WebRawService - Web Framework exception

EXCEPTION: DEFAULT_PORT

java.lang.NoSuchFieldError: DEFAULT_PORT

このエラーを解決するには、以下ように対応してください：

1. %WASP_HOME%\workディレクトリに移動します。

2. このディレクトリ配下の全てのフォルダサーバパッケージ毎のSystemサブフォルダと追加されたサブフォルダを含む)を削除するかリネームします。

3. Systinet Serverを再起動します。－Systinetは作業フォルダ内のサブフォルダを全て作成し直します。

追加マイグレーション情報：

Webサービスコンシューマとして利用している場合は……SoapClientModule.JARファイルは再作成する必要はありません。

Webサービスプロバイダーとして利用している場合は……新しいサーバパッケージを再度デプロイするる必要はありません。


マージの問題

マージプログラムから空白を出力されてしまうのは何故ですか？

テンプレートファイル内に名前のないマージタグ（< !$MG_）が含まれているような場合に発生します。

このような場合は、マージタグを見直して正しい名前が定義されていることを確認してください。


モバイルでの障害

Windows Vistaの IIS Ver7経由でモバイルRIAを実行すると、"mgrqispi.dll - This method was pruned during dead code elimination"というエラーが発生するのは何故ですか？

1. IIS7のリクエストトラッキングを有効にしてみてください。

PCのIISログをチェックして、リクエストトラッキングを有効を有効にしてください。

IIS7トラブルシューティング：http://technet.microsoft.com/ja-jp/library/dd647604.aspx

［コントロールパネル］の［プログラムと機能］／［Windowsの機能の有効化または無効化］実行し、［インターネットインフォメーションサービス］の［健全性と診断／追跡］を有効にします。

このモジュールを有効にすると、IIS7のマネージャーに追加された「失敗した要求トレースの規則」で参照することができます。

また、「ログ記録」を使用することでIIS7ログをチェックすることができます。

Windows Vistaでは、ログファイルは、"C: \inetpub\logs\LogFiles\W3SVC1" に作成されます。

2. エラーを再現させてください。

3. IIS7でエラーメッセージをチェックしてください。

"Site 1

Process 6028

Failure Reason STATUS_CODE

Trigger Status 401.2

Final Status 401.2

Time Taken 0 msec

Url http://fml102:

80/uniScripts/MGrqispi.dll?RICHCLIENT=Y&UTF8TRANS=Y&CTX=9135957310680&SESSION=1&CTXGROUP=9135957310680

App Pool DefaultAppPool

Authentication NOT_AVAILABLE

User from token

Activity ID {00000000-0000-0000-1700-0080010000FF}

ModuleName IIS Web Core

Notification 2

HttpStatus 401

HttpReason Unauthorized

HttpSubStatus 2

ErrorCode 2147942405

ConfigExceptionInfo

Notification AUTHENTICATE_REQUEST

ErrorCode Access is denied.

(0x80070005)

"

このエラーは、IISの認証設定に関連があるようです。

以下をチェックしてください：

  • 匿名認証が許可されているかどうか

  • 匿名ユーザとしてどの様な設定が行われているか

4. それに応じてIIS7のエラーを修正してください。

確認したケースでは、エラーメッセージは匿名認証がII7の デフォルトWebサイト特性で無効でした。したがって、この問題は、IIS7の匿名認証を有効にすることで解決されました。

モバイルRIAで動作する場合、クライアントがRIAアプリケーションが提供されているWebサーバに接続することができません

この問題が発生する可能性には以下の条件が考えられます。

1. モバイル用デバイスが、Webサーバと通信できない。

この場合、MRBモニターにリクエストが表示されなかったり、Webサーバのログに接続情報が記録されません。

  • WiFi通信を使用している場合は、デバイスがWiFiルータに接続されていることを確認してください。

  • デバイスのWebブラウザでWebサーバに接続できるかどうかを試してください。
    例：http：//192.168.137.1/MagicScripts

Webサーバから応答がない場合、Webサーバは正しく設定されていないか、ファイアウォールによって通信がブロックされています。ファイアウォールのhttp/httpsに対するインバウンド（外部から内部への通信）通信を許可するようにしてください。現象が改善されない場合は、一旦、ファイアウォールを無効にしてみてください。WebブラウザからWebサーバに接続できたり、RIAアプリケーションを実行させることができるのであれば、ファイアウォールのポート80/443のインバウンド接続を有効にして確認してください。

［受信の規則］を開きます。World Wide Webサービス（HTTPトラフィック）を開き、「接続を許可する」を選択してください。

2. 接続設定（サーバのURLやアプリケーション名、プログラムの公開名)が間違っている。

これらの設定や、Magic RIAサーバが稼働可能なことを確認してください。

AndroidとiOSのアプリ上に［タブ］コントロールが配置されている場合、アプリが正しく動作しないの何故ですか？

［選択項目リスト］特性と［選択表示リスト］特性に同じ数のエントリが定義されていることを確認してください。


トラブルシューティング バージョン管理の障害

ホーム > トラブルシューティング > バージョン管理の障害

バージョン管理の障害

TFS（Team Foundation Server ）を使用している場合、2人の開発者が同時に同じオブジェクトをチェックアウトしないようにすることはきますか？

以下の規約により、TFSは複数のチェックアウトを許可しています：

http://msdn.microsoft.com/ja-jp/library/ms242869.aspx

このオプションを無効にする必要がある場合は、[ソース管理の設定] ダイアログ ボックスの [チェックアウトの設定] タブの[複数のチェックアウトを有効にする] チェック ボックスをオフにします。


Web サービスの問題

新しく読み込んだWSDLファイルが、Magic xpaで反映されないのでしょうか？

Webサービスを呼び出すには、WSDLを使用する必要があります。

［WebサービスLite］処理コマンドを使用する場合は、開発者がコマンド内にWSDLのパスやURLを指定することになります。パス/URLは、キャッシュに格納されます。したがって、次にアクセスされた場合、実際のファイルではなくキャッシュから取り出されます。

WSDLがアップされた場合、WSDLの新しいコピーを取り出す必要があります。新しい、WSDLのコピーを使用したいことを示す必要があります。

  1. ［WSDLアシスタ］ダイアログで、［WSDLアドレス］にパークします。

  2. アドレス上で右クリックして［再表示］をクリックします。

サーバリストに「Default SOAP Server」がありません。Webサービスをどのように呼び出せばいいのでしょうか？

Magic xpaの［サーバ］テーブルの「Default SOAP Server」を使用する必要はありません。必要な処理は、サーバタイプとして［サービス］テーブル内のWebサービスとSOAPを選択することです。

何故、全てのWebサービスの呼び出しが消去されたのでしょうか？どのようにしたら、再定義することができるでしょうか？

Magic xpaは、Systinet Serverを使用しています。これは、Webサービスのコンシューマやプロバイダを実行する上での業界標準のフレームワークです。その結果、Magic xpaはWebサービスの呼び出しが強制的に消去されます。

Magic xpaに移行する場合、Ver9の［コールWebサービス］処理コマンドは、（定義直後のように）空の［コールWebサービス］処理コマンドに変換されます。サービス名や、WSDL URL、処理コマンド名は、Ver9の出力ファイルからMagic xpaのプロジェクトに変換される際に、［コールWebサービス］処理コマンドでコメント化されます。

WSDLファイルの読み込み時に、"java.lang.NoClassDefFoundError" というWebサービスエラーが発生するには何故ですか？

Webサービスを呼び出す場合、最初にのWSDLファイルを読み込む必要があります。［読込］ボタンをクリックすると、このメッセージが表示されます：

このエラーに対応するには、Magic xpaを一旦終了します。そして：

  1. %WASP_HOME%\libフォルダ内のuniRequester.jarとuniSSJ.jarファイルを削除します。リネームはしません。削除するか別のフォルダに移動してください。

  2. ［Magic xpa_installation_directory］\supportディレクトリから%WASP_HOME%\libへ2つのファイルをコピーします。

  3. 再度WSDLの読込処理を試してみてください。

"e:server-An exception occurred: sun.ioMailformedInputException"というエラーが発生します

Magic xpaがWebサービスのプロバイダー（document/literalタイプ)として使用される場合、WebサービスはXMLの入力を受付け、XML出力を返します。

出力されるXMLに特殊文字（e.g o,a,u,e（e）、u、e、i、o、u,cその他)が含まれている場合、Systinetからのサービスを処理すると、このエラーを返します。

この問題を解決するには、次の2つの方法があります。

  1. プロバイダー側で、出力パラメータをUnicodeと定義します。

  2. Magicプログラムで、出力パラメータがANSIと定義されている場合、これらの文字はMagic xpaでは認識されません。このため、コンシューマ側に応答を返す前に、プロバイダー側で、出力をUnocode(UTF-8)に変換する必要があります。これは、UTF8FromAnsi関数を使用することで可能です。

Webサービスを呼び出すと"javax.xml.rpc.SOAPFaultException"というエラーが発生します。

Webサービスに非常に大きなリクエストを送信すると以下のようなエラーが発生します。

javax.xml.rpc.SOAPFaultException: There was an exception running the extensions specified in the config file. ---> Maximum request length exceeded

この問題は、以下のMSDNの記事によるとIISの設定に関連しています。

http://msdn.microsoft.com/ja-jp/library/e1f13641%28v=vs.80%29.aspx

問題を解決するには、IISのWeb.configファイルを以下のように修正してください。

<CONFIGURATION>

<SYSTEM.WEB>

<HTTPRUNTIME maxRequestLength="100000">

</SYSTEM.WEB>

</CONFIGURATION>

Webサービスのインタフェースを作成しようとすると "Failed to generate Web Service. java.lang.Exception: Invalid pseudo reference!" というエラーが発生します。

JVMの読み込みに問題があるばあい、このエラーが発生する可能性があります。以下の内容を確認してください。

  • JAVA_HOMEが、正しいパスを指定しているか。

  • 正しいJavaのバージョンがインストールされているか。

  • 古いJVM.dllファイルを参照していないか。

Javaを再インストールするために、以下の手順を実行することもできます。

  1. Magic xpaをアンインストールします。

  2. Magic xpaのフォルダが存在する場合、削除します。

  3. Javaをアンインストールします。

  4. JAVA_HOMEとWASP_HOMEのシステム環境変数を削除します。

  5. Pathのシステム環境変数から、すべてのJavaの参照情報をを削除します。

  6. Magic xpaをインストールします。

Webサービスからの返答は、空になります。

サイズの大きな応答をWebサービスから受け取るとき、Magic xpaがその応答rを受け取ることができないと、空のままになります。

以下のようにしてJVM_ARGSの設定を256から512に変更して使用メモリーを増やす必要があります。

  1. Magic.iniファイルの［MAGIC_JAVA］セクションに位置付けます。

  2. JVM_ARGSの設定を-Xmx256mからXmx512mに変更することでメモリーを増やします。


XML の問題

32K以上（32768バイト)のレコードサイズを持つXMLビューで"Row length too big" というエラーが発生します（デフォルトデータベースが"Memory"の場合)。

長さと制限は、定義されたXMLデータベースに依存します。32767バイト以上を必要とする場合、MSSQLや他のデータベースで動作するようにしてください。


トラブルシューティング 一般的な障害

ホーム > トラブルシューティング > 一般的な障害

一般的な障害

オンラインプログラムが実行されません

エラーが発生していないのにプログラムが実行しない場合は、［動作環境］の［アプリケーションサーバとして動作］の設定が「No」に設定してみてください。Webやアプリケーションサーバとして動作させる場合は、［アプリケーションサーバとして動作］の設定が必要です。

プログラムが実行中の場合、データがデータベースに保存されません

遅延トランザクションで動作している場合、サブタスクでエラーが発生した可能性があります。この場合、トランザクション全体はデータベースにコミットされません。エラーがアクティビティログに記録されている場合、チェックしてみてください。

"Low level parser unexpected"というエラーが発生します

スキーマファイルの問題です。以下の定義を含む要素が繰り返し定義されている可能性があります。

<xsd:element name="MyElement" minOccurs="0" maxOccurs="999999">

この定義はXMLパーザ内の制限値を越えてしまいます。以下のような行に変更することで対応できます。

<xsd:element name="MyElement" minOccurs="0" maxOccurs="unbounded">

"日付が正しくありません."というエラーが発生します

DATEリテラルの値が動作環境の［日付タイプ］に設定された値と一致しない場合、構文チェックユーティリティでこのエラーが表示されます。

［コール公開名］処理コマンドが動作しません

以下の場合、［コール公開名］処理コマンドは失敗する可能性があります。

  • 指定されたファイルが有効なキャビネットファイルでない場合

  • バージョンの異なるMagicエンジンから呼び出そうとした場合

  • 指定した公開プログラム名が存在しない場合

プロジェクトを入力したら、CALL-MODALが無効なトークンである旨のエラーが発生した

プロジェクトを入力時にCALL-MODALが予期しないトークンである旨のエラーが発生したら、そのテキストを入力ファイルから削除してください。

"Waiting for an Application Resource" のエラーが発生する

［並行実行］が設定されたバッチプログラムを実行すると、2つの並列実行のバッチタスクが最初のライセンスを使用してのみ実行できます。

3つ目の並行バッチタスクを実行しようとするとエラーメッセージが返ります。2つの実行中のタスクのうちの1つが終了すると、待ち状態のタスクが実行を開始します。

このエラーを避けるためには、利用できるスレッドライセンスを増やしてください。

Windows 7 でMagic xpa Studioを起動すると、エラーが発生する場合があります。（例えば：「セキュリティファイル－SUPPORT\usr_std.jpnがオープンできませんでした」）

これは、Windows 7 の制限事項です。

この問題は以下のようにして解決できます。

  1. xpa Studioのアイコンを右クリックしてください。

  2. 管理者オプションとして実行するをクリックしてください。

"e:server-An exception occurred: sun.ioMailformedInputException" が発生する

Magic xpaがWebサービスのプロバイダ（document/literalタイプ)として使用されるとき、WebサービスはXML入力を受け入れて、XML出力を返します。

出力XMLに特殊文字（e.g o,a,u,e（e）、u、e、i、o、u,cなど)が含まれている場合、Systinetからのサービスを受ける間、このエラーが返ります。

この問題を解決する方法は2つあります。

  • プロバイダ側で、出力パラメータをUnicodeとして定義してください。

  • Magicプログラムで、出力パラメータがANSIと定義されている場合、これらの文字はプログラムによって認識されません。このため、コンシューマ側に応答を返す前に、プロバイダ側では出力をUnicode(UTF-8)に変換する必要があります。これは、UTF8FromAnsi関数を使用して実現できます。

"ライセンス処理の初期化に失敗しました"というエラーが発生します。

Magicエンジン（実行エンジン/開発エンジン)の読み込み時にこのエラーが発生する場合があります。

このエラーの最も一般的な発生理由は、異なるタスクがライセンスマネージャをつかんでいることです。このため、Magic xpaあが初期化できない状態になっています。

ライセンスマネージャを使用しているプログラムのリストは、OSのレジストリで確認できます。

HKEY_LOCAL_MACHINE\SOFTWARE\FLEXlm License Manager

MAGIC_LICENSE_FILEをダブルクリックすると、ライセンスマネージャにアクセスしているファイルのリストが表示されます。

通常は、２つのプログラムが同時にライセンスマネージャを確保しようとした場合に、このエラーが発生します。

この場合は、ファイルを使用する必要のないプロセスを停止するか、使用されないプログラムをアンインストールしてください。

ほとんどの場合、この問題は古いバージョンのMagicとの競合が原因と思われます。ただし、Magic xpa以外のソフトが起因している可能性もあります。

MRBモニタに、２つのリクエストが表示されるのは何故ですか？

Internet Explorerは、複数のリクエストを作成する場合があります、そして、MRBモニターは（利用できる以上のスレッドがあったとしても)2つのみ同時に実行されます。

これは、Internet Explorerの接続を確立する数の制限のようです。

これについては、以下を参照してください：

http://blogs.msdn.com/ie/archive/2005/04/11/407189.aspx

回避方法は、以下を参照してください：

http://support.microsoft.com/kb/183110

MRBをサービスとして起動した場合、MgxpaRuntimeエンジンが読み込まれません。

まず、MRBを通常の実行モードで起動してください。サービスを停止し、Magic xpaのインストレールフォルダにあるMRBの.exeファイルをダブルクリックすることで実行されます。

exe起動で起動した時にエラーが発生した場合、このエラーを解決してください。このエラーが発生した場合、サービスとして起動した時はエラーメッセージが表示されないことが理由になります。

正常に起動するのであれば、問題はエンジンの起動時に読み込む必要のあるファイル（例えば、基本色やユーザ定義またはライセンスファイル）に問題があるのかもしれません。使用するファイルの位置の全てがマッピングされたドライブで使用されているわけではないことを確認してください。Microsoftの制限のために、マッピングされたドライブは、サービスで使用することができません。これらはユーザに依存します、そして、ユーザがログインしない限り存在せず、使用することができません。参照指定の全てを通常のネットワークパス（必要ならば)に修正して、もう一度サービスを開始してください。

MgxpaRuntime.exe ファイルをにネームした後、Magic xpa 2.xがクラッシュするには何故ですか？

.configファイルがあり、MgxpaRuntime.exeの名前を変更したい場合は、.configファイルの名前も変更する必要があります。

レポートジェネレータではなくデータ出力ウィザードが表示されるのは何故ですか？

レポートジェネレータを動作させるには、レポートジェネレータ用のコンポーネントを［コンポーネント］リポジトリに追加する必要があります。

さらに、エンドユーザ機能とレポートジェネレータを使用している場合、レポートジェネレータ用コンポーネントをエンドユーザ機能コンポーネントより上に定義するようにしてください。

デバッガのデータ項目リストにデータ項目を表示させるにはどのようにしたらよいですか？

処理の実行中にブレイクされると、データ項目のオプションが利用できます。

したがって、データ項目リストでデータ項目を参照するには、［デバッグ］→［ブレイク］（Alt+Ctrl+F7)を選択してブレイクポイントを設定します。

Magic xpa 2.xで範囲、位置付、ソート機能が動作しません

エンドユーザ機能のコンポーネントをプロジェクトに追加してください。

ECIファイルはUserFunctionality.eciという名前で、Add_On\UserFunctionalityフォルダでコピーされています。ECIを読み込むことで、利用できるようになります。

MailConnect関数でMicrosoft Exchange 2007以上に接続しようとすると、"error -67"“が発生するのは何故ですか？

Exchange serverの最新バージョンでは、リレー接続オプションがデフォルトではオフに設定されています。これは、Outlookのようなメールアプリケーションでない場合はメールを送信でlきないことを意味しています。

このデフォルト設定によって、MailConnect関数からエラー-67が返る理由になる場合があります。

問題を解決するには、リレー接続を可能にするように設定してください。

MSG2MGIC.EXEユーティリティを使用すると、"A valid instance of Magic is not running at the moment" というエラーが発生するには何故ですか？

MSG2MGIC.EXEユーティリティは、Magicの実行エンジンにパラメータを送り、外部のイベントを発行させることができます。しかし、バックグラウンド・モードでアプリケーションを実行している場合、このエラーが発生するかもしれません。

MSG2MGICユーティリティは、フォアグラウンドモードで同じPC上で実行しているMagic xpaプログラムでイベントを発行させることができます。Magicエンジンがバックグラウンド・モードで実行している場合や、Magicエンジンが他のPC上で実行している場合、このユーティリティは動作しません。これは、この機能が実行しているMagicエンジンの現在のWindowハンドルを必要とするからです。このため、バックグラウンド・モードや他のPC上でエンジンが実行している場合は利用できません。

バックグラウンド・モードで実行しているアプリケーションでイベントを発行させるには、リクエスタの機能を使用する必要があります。コマンドラインリクエスタ-MGRQCMDL.EXE（これは、非Magic xpaアプリケーションから使用することもできます)や、［コールリモート］処理コマンドで利用することができます。これによって、アプリケーションがバックグラウンド・モードで実行している時にプログラムを呼び出して、［イベント実行］処理コマンドでアプリケーション内のイベントを発行させることがことができます。

異常終了の対応

MgxpaRuntime.exeのファイル名を変更すると、Magic xpaが異常終了する

MgxpaRuntime.exeのファイル名を変更したい場合、.configファイルの名前も変更するる必要があります。

MgxpaStudio.exeファイルの読み込み時に、Magic xpaがクラッシュする

MgxpaStudio.exeが読み込まれて、エラーが発生しないで即時に異常終了する場合があります。

MgxpaStudio.exeが読み込まれるとき、MgxpaStudio.exeとMgxpaRIA.exeの両方が読み込まれます。MgxpaRIA.exeは、.NETフレームワーク Ver2.5をインストールされている必要があります。.NETフレームワーク Ver2.5がPC上にインストールされない場合、MgxpaRIA.exeは異常終了して、同様にMgxpaStudio.exeの異常終了も発生します。

PCに.NETフレームワークVer4がインストールされていても問題は解決しません。問題を解決するためには、Ver2.5を含む.NETフレームワーク Ver2.5または3.5をインストールしてください。


トラブルシューティング ウィンドウの初期化

ホーム > トラブルシューティング > ウィンドウの初期化

ウィンドウの初期化

開発用テーブルのカラムが（カラムサイズが｢0｣になったり、位置がずれるため）表示されなくなるような場合は、以下のファイルを削除することで表示を初期化することができます。

<APPDATA>\MSJ\<製品名>\FormsUserState_jpn.xml

Windows Xp の場合

C:\Documents and Settings\(user id)\Application Data\MSJ\<製品名>\FormsUserState_jpn.xml

Windows Vista/Windows 7/Windows8.xの場合

C:\Users\(user id)\AppData\Roaming\MSJ\\<Magic製品名>\FormsUserState_jpn.xml


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

ホーム > トラブルシューティング > データ実行防止機能の対応

データ実行防止機能の対応

OSによってはMagic xpaの実行中に以下のダイアログが表示される場合があります。

これは、OSの保護機能が働いているためです。このような場合は、Magic xpaをこの保護機能の対象外に指定する必要があります。

  1. ［設定の変更］をクリックします。以下のようなダイアログが表示されます。

  2. ここで「magic xpa runtime」のチェックボックスをチェックするか、「重要なWindowsのプログラムおよびサービスについてのみ有効にする」をチェックした後、［OK］ボタンをクリックします。

  3. OSを再起動してください。これで、Magic xpaを実行させることができます。


トラブルシューティング ライセンスエラー

ホーム > トラブルシューティング > ライセンスエラー

ライセンスエラー

以下のエラーは、ライセンスに関係するものです。

システム日付が正しくありません

MGDEMOライセンスは、開発エンジンでのみ利用できます.

ライセンスのバージョンが合っていません.

ライセンスのメンテナンス日付を過ぎています.

使用ユーザ数の制限を超えました.

開発用ライセンスではありません.

インストールガイドを参考の上ライセンスを設定してください.

ライセンスの使用期限を過ぎています.

ライセンスが指定されていません.

製品のライセンスが指定されていないか、不正なライセンスです.

ホストへの接続に失敗しました - 通信に失敗したか、ホスト名が間違っています.

ライセンスサーバは、このライセンスをサポートしていません.

FlexLMのエラー


トラブルシューティング ライセンスエラー システム日付

ホーム > トラブルシューティング > ライセンスエラー > システム日付が正しくありません

システム日付が正しくありません

PCのシステム日付が現在より24時間以上古かったり、Windowsディレクトリ内に現在の日付より新しいタイムスタンプのファイルやフォルダが存在する場合に発生します。

PCのクロックやファイルのタイムスタンプを確認してください。


トラブルシューティング ライセンスエラー DEMOライセンス

ホーム > トラブルシューティング > ライセンスエラー > MGDEMOライセンスは、開発エンジンでのみ利用できます.

MGDEMOライセンスは、開発エンジンでのみ利用できます.

実行エンジン（MgxpaRuntime.exe）をデモライセンス（MGDEMO）で実行させた場合に発生します。


トラブルシューティング ライセンスエラー バージョン

ホーム > トラブルシューティング > ライセンスエラー > ライセンスのバージョンが合っていません.

ライセンスのバージョンが合っていません.

指定されたライセンスがMagic xpa用のものでない場合に発生します。


トラブルシューティング ライセンスエラー メンテナンス日付

ホーム > トラブルシューティング > ライセンスエラー > ライセンスのメンテナンス日付を過ぎています.

ライセンスのメンテナンス日付を過ぎています.

Magic xpa EnterpriseServer と Magic xpa RIA Serverは、ライセンスのメンテナンス日付をチェックしています。ライセンス上のメンテナンス日付よりも新しいバージョンのMagicエンジンを起動した場合、このエラーが発生します。


トラブルシューティング ライセンスエラー ユーザ数制限

ホーム > トラブルシューティング > ライセンスエラー > 使用ユーザ数の制限を超えました.

使用ユーザ数の制限を超えました.

ライセンスで指定されたユーザ数を越えたクライアントが同じライセンスを使用した場合に発生します。


トラブルシューティング ライセンスエラー 開発用ライセンス

ホーム > トラブルシューティング > ライセンスエラー > 開発用ライセンスではありません.

開発用ライセンスではありません.

実行用ライセンス（MGCSRTやMGENT1、MGRIA1など）でMagic xpa Studioを実行させた場合に発生します。


トラブルシューティング ライセンスエラー 参照エラー

ホーム > トラブルシューティング > ライセンスエラー > インストールガイドを参考の上ライセンスを設定してください.

インストールガイドを参考の上ライセンスを設定してください.

指定されたライセンス情報が正しくない場合に発生します。ライセンス情報に誤りがないか確認してください。


トラブルシューティング ライセンスエラー 使用期限

ホーム > トラブルシューティング > ライセンスエラー > ライセンスの使用期限を過ぎています.

ライセンスの使用期限を過ぎています.

指定されたライセンスには、使用期限が設定されており、その期限が過ぎている場合に発生します。


トラブルシューティング ライセンスエラー 指定されていない

ホーム > トラブルシューティング > ライセンスエラー > ライセンスが指定されていません.

ライセンスが指定されていません.

ライセンス名が指定されていない場合に発生します。


トラブルシューティング ライセンスエラー 不正なライセンス

ホーム > トラブルシューティング > ライセンスエラー > 製品のライセンスが指定されていないか、不正なライセンスです.

製品のライセンスが指定されていないか、不正なライセンスです.

指定されたライセンスファイル情報が正しくない場合や、ライセンスファイル名が指定されていない場合に発生します。

また（アクセス権がないなどの理由で）ライセンスファイルにアクセスできない場合も発生します。


トラブルシューティング ライセンスエラー 通信エラー

ホーム > トラブルシューティング > ライセンスエラー > ホストへの接続に失敗しました - 通信に失敗したか、ホスト名が間違っています.

ホストへの接続に失敗しました - 通信に失敗したか、ホスト名が間違っています.

アプリケーションの起動中にライセンスサーバとの間の通信処理ができなくなった場合に発生します。ネットワーク環境やライセンスサーバのプロセス状態を確認してください。


トラブルシューティング ライセンスエラー 未サポート

ホーム > トラブルシューティング > ライセンスエラー > ライセンスサーバは、このライセンスをサポートしていません.

ライセンスサーバは、このライセンスをサポートしていません.

指定されたライセンスがライセンスサーバ上で無効扱いになっている場合に発生します。

ライセンスファイル内のホストIDが正しくなかったり、ライセンスファイルのパラメータに誤りがある可能性があります。


トラブルシューティング ライセンスエラー FlexLMのエラー

ホーム > トラブルシューティング > ライセンスエラー > FlexLMのエラー

FlexLMのエラーコード

以下の表は、ライセンスサーバ（FlexLM）から返るエラーコードの一覧です。ライセンスエラーのメッセージダイアログ内に"internal error xx" と表示されている場合、このエラーコードを参考にしてトラブルシューティングを行ってください。

コード | 説明
-1 | ライセンス・ファイルが見つかりません。
-2 | ライセンス・ファイルの構文が正しくありません。
-3 | この機能に対応するライセンス・サーバ・システムが存在しません。
-4 | ライセンスされたユーザ数にすでに達しています。
-5 | そのような機能は存在しません。
-6 | ライセンス・ファイルに TCP/IP ポート番号がなく、FLEXnet ライセンスサービスが存在しません。
-7 | ライセンス・サーバ・マネージャ・サービスに対するソケット接続がありません。
-8 | ライセンス・キーまたはシグニチャが正しくありません (矛盾しています)。ライセンス・キー／シグニチャとこの機能のデータが一致しません。このようなことが起こるのは通常、ライセンス・ファイルが改変されたときです。
-9 | ホストが正しくありません。このシステムの hostid とライセンス・ファイル内の hostid が一致しません。
-10 | 機能の有効期限が切れています。
-11 | ライセンス・ファイルの日付フォーマットが正しくありません。
-12 | ライセンス・サーバ・システムから返されるデータが正しくありません。
-13 | ライセンス・ファイルに SERVER 行がありません。
-14 | ネットワーク・データベース内で SERVER のホスト名が見つかりません。ライセンス・ファイル内の SERVER 行でホスト名の検索に失敗しました。これは、NIS または DNS あるいはホスト・ファイルが正しくないときによく起こります。対処方法：ホスト名の代わりに IP アドレス (123.456.789.123など) を使用してください。
-15 | ライセンス・サーバ・システムに接続できません。サーバ (lmgrd) がまだ開始されていないか、間違った port@host もしくはライセンス・ファイルが使用されているか、ライセンス・ファイル内のTCP/IP ポートまたはホスト名が変更されています。
-16 | ライセンス・サーバ・システムからデータを読み込めません。
-18 | ライセンス・サーバ・システムはこの機能をサポートしていません。
-21 | ライセンス・ファイルがこのバージョンをサポートしていません。
-22 | ライセンス・サーバ・システムで機能チェックイン障害が検出されました。
-23 | ライセンス・サーバ・システムが一時的にビジー ( 新規サーバの接続中)です。
-25 | ライセンス・サーバ・システムがこのバージョンのこの機能をサポートしていません。
-29 | イーサネット・デバイスが見つかりません。
-30 | ライセンス・ファイルを読み込めません。
-34 | クライアントとライセンス・サーバ・システムの時刻差が大きすぎます。
-42 | パラメータが無効です。
-62 | ネットワーク・ソフトウェア (TCP/IP) がありません。
-96 | ライセンス・サーバ・マシンがダウンしているか応答しません。サーバの起動方法をシステム管理者に問い合わせるか、参照先のホストが正しいかどうかを確認してください 。
-97 | 必要なベンダ・デーモンがダウンしています。1) lmgrd ログ・ファイルを確認するか、 2) lmreread を実行してください。
-103 | Terminal Server のリモート・クライアントは許可されません。
-119 | ライセンス・サーバ・マシンで lmdown と lmreread を実行する必要があります。
-135 | イベント・ログ有効化エラー
-136 | イベント・ログが無効です。
-137 | イベント・ログ書き込みエラー。


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 Software Japan K.K. の登録商標でもあります。

Magic xpa®は、Magic Software Japan K.K. の登録商標です。

Magic xpa Enterprise Studio、とMagic xpa Client、Magic xpa Enterprise Server、およびMagic xpa RIA Serverは Magic Software Japan K.K. の商標です。

Pervasive.SQL®は Pervasive Software, Inc. の商標です。

IBM®, IBM i,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™は、Hewlett-Packard Development Company,L.P. の商標です。

一般に、会社名、製品名は各社の商標または登録商標です。

MSE およびMSJ は、本製品の使用またはその使用によってもたらされる結果に関する保証や告知は一切していません。この製品のもたらす結果およびパフォーマンスに関する危険性は、すべてユーザが責任を負うものとします。

この製品を使用した結果、または使用不可能な結果生じた間接的、偶発的、副次的な損害（営利損失、業務中断、業務情報の損失などの損害も含む）に関し、事前に損害の可能性が勧告されていた場合であっても、MSE およびMSJ、その管理者、役員、従業員、代理人は、いかなる場合にも一切責任を負いません。


コンポーネントビルダ CIB

ホーム > リファレンスガイド > COM オブジェクトサポート > COMインタフェースビルダ

COMインタフェースビルダ

注意：

COMインタフェースビルダは、サポート対象外です。


WP0094:[チェックボックス]コントロールの[3ステータス]特性を指定した場合、[NULL値許可]特性を「Yes」に設定してください.

ホーム > WP0094:[チェックボックス]コントロールの[3ステータス]特性を指定した場合、[NULL値許可]特性を「Yes」に設定してください.

[チェックボックス]コントロールの[3ステータス]特性を指定した場合、[NULL値許可]特性を「Yes」に設定してください.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[チェックボックス]コントロール

意味：

[チェックボックス]コントロールの[３ステータス]特性が｢Yes｣に設定され、[データ]特性に設定された項目の[NULL値可]特性が｢No｣に設定されている場合に発生します。


EP0186:パラメータが指定されていません.

ホーム > EP0186:パラメータが指定されていません.

パラメータが指定されていません.

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

関数のパラメータ内容が正しくない場合に発生します。


WP0111:XMLデータソースでは、[アクセス]特性が「書出」の場合、[共有]特性を「書出」に設定できません.

ホーム > WP0111:XMLデータソースでは、[アクセス]特性が「書出」の場合、[共有]特性を「書出」に設定できません.

XMLデータソースでは、[アクセス]特性が「書出」の場合、[共有]特性を「書出」に設定できません.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／[メインソース特性]

[プログラム]リポジトリ／[データビュー]エディタ／[リンク]特性

意味：

XMLデータソースを定義する際に、[アクセス]特性と[共有]特性がどちらも「W=書出」の場合に、このエラーが発生します。


EP0190:[公開プログラム名]が指定されていません.

ホーム > EP0190:[公開プログラム名]が指定されていません.

[公開プログラム名]が指定されていません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コール公開名]処理コマンド／[公開プログラム名]特性

意味：

[公開プログラム名]特性が指定されていない場合に発生します。


EP0274:[プログ/タスク/フォーム #]の指定に誤りがあります.

ホーム > EP0274:[プログ/タスク/フォーム #]の指定に誤りがあります.

[プログ/タスク/フォーム #]の指定に誤りがあります.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[リッチクライアントフレーム形式]フォーム／[フレーム特性］

意味：

［フレーム特性］の「プログ/タスク/フォーム #」特性に存在しないオブジェクト番号が定義されている場合にこのエラーが発生します。設定内容を見直してください。


EP0215:プッシュボタンには、この内部イベントを割り当てることはできません.

ホーム > EP0215:プッシュボタンには、この内部イベントを割り当てることはできません.

プッシュボタンには、この内部イベントを割り当てることはできません.ユーザイベントを利用してください.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[プッシュボタン]コントロール／[実行イベント]特性

意味：

[プッシュボタン]コントロールの[実行イベント]特性にサポートされていない内部イベントが定義されている場合にこのエラーが発生します。ユーザイベントを利用して該当するイベントを発行させるようにしてください。


WT0004:チョイスコントロールを使用するためには、[選択項目リスト]特性を指定してください.

ホーム > WT0004:チョイスコントロールを使用するためには、[選択項目リスト]特性を指定してください.

チョイスコントロールを使用するためには、[選択項目リスト]特性を指定してください.

発生場所：

[プログラム]リポジトリ／[フォーム]エヂｈタ／チョイスコントロール／[選択項目リスト]特性

意味：

チョイスコントロールの[選択項目リスト]特性に値が設定されていない場合に発生します。


ET0070:データソースのカラムにベクトル型は指定できません.

ホーム > ET0070:データソースのカラムにベクトル型は指定できません.

データソースのカラムにベクトル型は指定できません.

発生場所：

[データ]リポジトリ／[カラム]テーブル

意味：

データソースのカラムにベクトル型が設定されている場合に発生します。ベクトル型は、変数/パラメータ項目でのみ指定可能です。


ET0041:外部キーの項目を指定してください.

ホーム > ET0041:外部キーの項目を指定してください.

外部キーの項目を指定してください.

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[外部キー]テーブル

意味：

SQLテーブルで外部キーのセグメントが定義されていない場合に発生します。


EP0068:タグ名を入力してください.

ホーム > EP0068:タグ名を入力してください.

タグ名を入力してください.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[タグテーブル]特性

意味：

[タグ名]または[式]のどちらかにタグの名前が定義されていない場合に発生します。


EP0233:Datetimeフィールドの一部としての時刻型項目は、Magic SQL Where句で使用できません.

ホーム > EP0233:Datetimeフィールドの一部としての時刻型項目は、Magic SQL Where句で使用できません.

Datetimeフィールドの一部としての時刻型項目は、Magic SQL Where句で使用できません.

発生場所：

[プログラム]リポジトリ／[範囲/位置付]ダイアログ／Magic SQL

意味：

Datatimeフィールドに対応している時刻型項目を Magic SQL Where句で使用している場合にこのエラーが発生します。


WP0081:[イベント]特性が指定されていません.

ホーム > WP0081:[イベント]特性が指定されていません.

[イベント]特性が指定されていません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[イベント実行]処理コマンド／[イベント]特性

意味：

[イベント実行]処理コマンドの[イベント]特性にイベントの公開名が指定されていない場合に発生します。


WP0006:[項目]処理コマンドは、このロジックユニットでは定義できません.

ホーム > WP0006:[項目]処理コマンドは、このロジックユニットでは定義できません.

[項目]処理コマンドは、このロジックユニットでは定義できません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

[項目]処理コマンドによる変数項目定義が、[イベント]ロジックユニット以外で定義されている場合にこのエラーが発生します。


EP0195:ベクトル項目は、フォームに配置できません.

ホーム > EP0195:ベクトル項目は、フォームに配置できません.

ベクトル項目は、フォームに配置できません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ

意味：

フォームにベクトル型の項目が配置されている場合に発生します。


EP0201:ベクトル項目は、SQLコマンドの[出力パラメータ]には指定できません.

ホーム > EP0201:ベクトル項目は、SQLコマンドの[出力パラメータ]には指定できません.

ベクトル項目は、SQLコマンドの[出力パラメータ]には指定できません.

発生場所：

[プログラム]リポジトリ／SQLコマンド／出力パラメータ

意味：

[SQLコマンド]ダイアログの[出力パラメータ]にベクトル型の項目が設定されている場合にこのエラーが発生します。


ET0068:ベクトル項目には、[セルモデル]を定義してください.

ホーム > ET0068:ベクトル項目には、[セルモデル]を定義してください.

ベクトル項目には、[セルモデル]を定義してください.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／[セルモデル]特性

意味：

ベクトル型項目の[セルモデル]特性が設定されていない場合に発生します。


EP0255:ActiveX型とOLE型の項目は、リッチクライアントタスクでは使用できません.

ホーム > EP0255:ActiveX型とOLE型の項目は、リッチクライアントタスクでは使用できません.

ActiveX型とOLE型の項目は、リッチクライアントタスクでは使用できません.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

リッチクライアントタスクでActiveX型やOLE型のデータ項目が定義されている場合、このエラーが発生します。


EP0194:[ActiveX]コントロールは、[テーブル]コントロールに配置できません.

ホーム > EP0194:[ActiveX]コントロールは、[テーブル]コントロールに配置できません.

[ActiveX]コントロールは、[テーブル]コントロールに配置できません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ActiveX]コントロール

意味：

[ActiveX]コントロールが[テーブル]コントロールのカラムとして配置されている場合に発生します。


EP0187:[ActiveX]コントロールでは、[インスタンス化]特性が「自動」(サブオブジェクトなし)と定義された項目を指定してください.

ホーム > EP0187:[ActiveX]コントロールでは、[インスタンス化]特性が「自動」(サブオブジェクトなし)と定義された項目を指定してください.

[ActiveX]コントロールでは、[インスタンス化]特性が「自動」(サブオブジェクトなし)と定義された項目を指定してください.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ActiveX]コントロール／[データ]特性

意味：

[ActiveX]コントロールとしてフォームに配置するコントロールに配置する項目の[インスタンス化]特性が、「N=なし」と設定されている場合に発生します。


EP0259:ActiveXイベントは、リッチクライアントタスクでは利用できません.

ホーム > EP0259:ActiveXイベントは、リッチクライアントタスクでは利用できません.

ActiveXイベントは、リッチクライアントタスクでは利用できません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

リッチクライアントの[イベント]ロジックユニットにActiveXイベントが定義されている場合に、このエラーが発生します。


EP0019:すべての結合リンクは同じデータベースを使用しなければなりません.

ホーム > EP0019:すべての結合リンクは同じデータベースを使用しなければなりません.

すべての結合リンクは同じデータベースを使用しなければなりません.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／リンク

意味：

結合テーブルがメインソースと異なるデータベースの場合に発生します。


EP0256:項目の再計算定義で使用されるすべての処理コマンドは、クライアントまたはサーバ側のどちらかでサポートされるものでなければなりません.

ホーム > EP0256:項目の再計算定義で使用されるすべての処理コマンドは、クライアントまたはサーバ側のどちらかでサポートされるものでなければなりません.

項目の再計算定義で使用されるすべての処理コマンドは、クライアントまたはサーバ側のどちらかでサポートされるものでなければなりません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

項目の再計算定義で使用される処理コマンドにクライアント側とサーバ側の両方でサポートされるものが定義されている場合に、このエラーが発生します。


EP0090:親タスク、変数、メインソースのいずれかの項目から使用してください.

ホーム > EP0090:親タスク、変数、メインソースのいずれかの項目から使用してください.

親タスク、変数、メインソースのいずれかの項目から使用してください.

発生場所：

[プログラム]リポジトリ/[範囲／位置付]ダイアログ／SQL Where句/[式]特性

意味：

SQL Where句で使用されているデータ項目が、（結合リンク／外部結合リンク以外の）通常のリンク項目の場合にこのエラーが発生します。


EP0120:[HTMLコントロール名]にコントロール名を入力してください.

ホーム > EP0120:[HTMLコントロール名]にコントロール名を入力してください.

[HTMLコントロール名]にコントロール名を入力してください.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザクライアント形式]フォーム／HTMLコントロール

意味：

[HTMLコントロール]カラムが空白の場合にこのエラーが発生します。


EP0257:サーバのみで有効な関数と、クライアントのみで有効な関数を組み合わせた式を実行することはできません.

ホーム > EP0257:サーバのみで有効な関数と、クライアントのみで有効な関数を組み合わせた式を実行することはできません.

サーバのみで有効な関数と、クライアントのみで有効な関数を組み合わせた式を実行することはできません.

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

サーバのみで有効な関数とクライアントのみで有効な関数を組み合わせた式が定義されている場合に、このエラーが発生します。


EP0163:コールWebサービスの［処理］が指定されていません

ホーム > EP0163:コールWebサービスの［処理］が指定されていません

コールWebサービスの[処理]特性が指定されていません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド/[処理]特性

意味：

[コールWebサービス]処理コマンドの[処理]特性が指定されていない場合にこのエラーが表示されます。


EP0251:クライアント側とサーバ側の両方で処理が必要な処理コマンドは、リッチクライアントタスクでは使用できません.

ホーム > EP0251:クライアント側とサーバ側の両方で処理が必要な処理コマンドは、リッチクライアントタスクでは使用できません.

クライアント側とサーバ側の両方で処理が必要な処理コマンドは、リッチクライアントタスクでは使用できません.

発生場所：

[プログラム]リポジトリ

意味：

処理コマンドﾞの実行場所と指定した定義式の実行場所が異なる場合、このエラーが発生します。

定義式の処理結果を一旦変数に格納し、その変数を利用して処理コマンドを実行させるように変更するような工夫が必要です。


EP0225:パラメータ項目の型が正しくありません.

ホーム > EP0225:パラメータ項目の型が正しくありません.

パラメータ項目の型が正しくありません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[項目変更]ロジックユニット

意味：

[項目変更]ロジックユニットに定義されている最初のパラメータ（CHG_REASON_Item）のデータ型が数値型でない場合にこのエラーが発生します。


EP0135:型が合っていません.

ホーム > EP0135:型が合っていません.

型が合っていません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[パラメータ]テーブル

[プログラム]リポジトリ／[フォーム]エディタ／コントロール／[パラメータ]テーブル

意味：

コール先のパラメータのデータ型と異なるパラメータを定義した場合に発生します。


EP0159:型が合っていません.

ホーム > EP0159:型が合っていません.

型が合っていません.－項目は、文字型かUnicode型、またはBLOB型でなければなりません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド/[エラー情報]特性

意味：

[コールWebサービス]処理コマンドの[エラー情報]特性に定義された項目の型が文字型かUnicode型、BLOB型でない場合に発生します。


EP0026:型が合っていません.－項目は、数値型でなければなりません.

ホーム > EP0026:型が合っていません.－項目は、数値型でなければなりません.

型が合っていません.－項目は、数値型でなければなりません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールリモート]処理コマンド／[戻り値コード]特性

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド／[エラーコード]特性

意味：

[コールリモート]処理コマンドの[戻り値]特性や[エラーコード]特性に定義された項目の型が数値型でない場合に発生します。


EP0102:定義式内の型が合っていません.

ホーム > EP0102:定義式内の型が合っていません.

定義式内の型が合っていません.

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

ExpCalc関数で式番号として評価できない式が数値として評価されない場合にこのエラーメッセージが表示されます。

注意：

このエラーは登録時にステータスバーに表示されます。


EP0188:日付が正しくありません.

ホーム > EP0188:日付が正しくありません.

日付が正しくありません.

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

式に指定された日付データが正しくない場合に発生します。

注意：

このエラーは登録時にステータスバーに表示されます。


ET0052:書式が不適当です.

ホーム > ET0052:書式が不適当です.

書式が不適当です.

発生場所：

[データ]リポジトリ／[カラム]テーブル

[プログラム]リポジトリ／[データビュー]エディタ

[プログラム]リポジトリ／[ロジック]エディタ

[プログラム]リポジトリ／[フォーム]エディタ

意味：

BLOB型以外で[書式]が定義されていない項目か、書式の指定が間違っている項目が定義された場合に発生します。


EM0004:終端の[セルモデル]の書式が正しくありません.

ホーム > EM0004:終端の[セルモデル]の書式が正しくありません.

終端の[セルモデル]の書式が正しくありません.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／[セルモデル]特性

意味：

[セルモデル]特性で指定したモデルの書式が正しくない場合に発生します。


EP0127:BLOBは、ソートのセグメントとしては指定できません

ホーム > EP0127:BLOBは、ソートのセグメントとしては指定できません

BLOBは、ソートのセグメントとして指定できません.

発生場所：

[プログラム]リポジトリ／タスク環境／ソートテーブル

意味：

BLOB項目がソートセグメントとして定義された場合にこのエラーが発生します。


EP0107:BLOB項目は、ブラウザフォーム上の参照項目として使用できません.

ホーム > EP0107:BLOB項目は、ブラウザフォーム上の参照項目として使用できません.

BLOB項目は、ブラウザフォーム上の参照項目として使用できません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム／HTMLコントロール

意味：

[ブラウザ形式]フォームにBLOB項目が配置された場合にこのエラーが発生します。


ET0034:BLOB項目は、インデックスとして使用できません.

ホーム > ET0034:BLOB項目は、インデックスとして使用できません.

BLOB項目は、インデックスとして使用できません.

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[セグメント]テーブル

意味：

セグメントカラムの型がBLOB型の場合に、このエラーが発生します。


WP0066:使用されるBLOB項目は、RTF形式ではありません

ホーム > WP0066:使用されるBLOB項目は、RTF形式ではありません

使用されるBLOB項目は、RTF形式ではありません

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド／[戻り値]特性

意味：

RTF形式以外のBLOB型が定義された場合に発生します。


WP0056:BLOB項目は使用できません

ホーム > WP0056:BLOB項目は使用できません

BLOB項目は使用できません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム／[サブフォーム]コントロール

[プログラム]リポジトリ／タスク特性／[終了時URL]特性

意味：

パラメータとして設定された項目がBLOB型の場合、このエラーが発生します。


EP0088:BLOB項目は、マージパラメータとして指定できません.

ホーム > EP0088:BLOB項目は、マージパラメータとして指定できません.

BLOB項目は、マージパラメータとして指定できません.

発生場所：

[プログラム]リポジトリ/[フォーム]エディタ／[マージ]形式フォーム/[タグテーブル]特性

意味：

マージ項目としてBLOB項目を定義した場合にこのエラーが発生します。


EP0015:ブロックIf が定義されていないため、ブロックElseは定義できません.

ホーム > EP0015:ブロックIf が定義されていないため、ブロックElseは定義できません.

ブロックIf が定義されていないため、ブロックElseは定義できません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[ブロック]処理コマンド

意味：

[ブロック処理]コマンドの 「Else」オプションが「If」オプションを指定しないで定義されている場合に発生します。


WP0078:ブロックWhile の条件を「Yes」に設定すると無限ループが実行されます.

ホーム > WP0078:ブロックWhile の条件を「Yes」に設定すると無限ループが実行されます.

ブロックWhile の条件を「Yes」に設定すると無限ループが実行されます.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[ブロック]処理コマンド

意味：

[ブロックWhile]の[条件]特性に「Yes」と設定すると、ブロック内の処理が永久に実行されるようになります。ここには、ループ処理が継続する場合の条件式を指定するようにしてください。


EP0108:ブラウザ形式フォームまたはそのコントロールでは、URLヘルプしか指定できません.

ホーム > EP0108:ブラウザ形式フォームまたはそのコントロールでは、URLヘルプしか指定できません.

ブラウザ形式フォームまたはそのコントロールでは、URLヘルプしか指定できません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム

意味：

[ヘルプ画面]特性に定義されたヘルプがURLヘルプでない場合に発生します。


EP0214:ブラウザフォームに項目が１つも配置されていません.

ホーム > EP0214:ブラウザフォームに項目が１つも配置されていません.

ブラウザフォームに項目が１つも配置されていません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム

意味：

[ブラウザ形式]フォームのコントロールにデータ項目が全く割り当てられていない場合にこのエラーが発生します。


EP0144:ブラウザタスクのメインフォームは、ブラウザ形式フォームでなければなりません

ホーム > EP0144:ブラウザタスクのメインフォームは、ブラウザ形式フォームでなければなりません

ブラウザタスクのメインフォームは、ブラウザ形式フォームでなければなりません.

発生場所：

[プログラム]リポジトリ／タスク特性／[メインフォーム]特性

意味：

ブラウザタスクの[メインフォーム]特性に[ブラウザ形式]フォーム以外が定義された場合に発生します。


EP0066:ブラウザタスクでは、[キャッシュ範囲]を「なし」には指定できません.

ホーム > EP0066:ブラウザタスクでは、[キャッシュ範囲]を「なし」には指定できません.

ブラウザタスクでは、[キャッシュ範囲]特性を「なし」には指定できません.

発生場所：

[プログラム]リポジトリ／タスク環境／タスク特性／[データ]タブ

意味：

メインソースが指定されたブラウザタスクにおいて、[タスク特性]の[キャッシュ範囲]特性が「No」の場合に発生します。


WP0108:キャッシュテーブル - タスクの[範囲/位置付]ダイアログで範囲式や位置付式が設定されている場合、リンクテーブルは、クライアント側でキャッシュできません.

ホーム > WP0108:キャッシュテーブル - タスクの[範囲/位置付]ダイアログで範囲式や位置付式が設定されている場合、リンクテーブルは、クライアント側でキャッシュできません.

キャッシュテーブル - タスクの[範囲/位置付]ダイアログで範囲式や位置付式が設定されている場合、リンクテーブルは、クライアント側でキャッシュできません.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／[リンク]コマンド

意味：

ブラウザクライアントのリンクテーブルが常駐テーブルの場合（[動作環境]の[常駐テーブル読込]が「Yes」衣設定され、[データ]リポジトリでデータソースの[常駐]特性が「B=ブラウザ上で常駐」に設定されている状態を示します）、[範囲/位置付]ダイアログの[範囲式]や[位置付式]に式が定義されている場合、このエラーが発生します。


WP0105:キャッシュテーブル - カラムに範囲式が設定されている場合、リンクテーブルは、クライアント側でキャッシュできません.

ホーム > WP0105:キャッシュテーブル - カラムに範囲式が設定されている場合、リンクテーブルは、クライアント側でキャッシュできません.

キャッシュテーブル - カラムに範囲式が設定されている場合、リンクテーブルは、クライアント側でキャッシュできません.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／[リンク]コマンド

意味：

ブラウザクライアントのリンクテーブルが常駐テーブルの場合（[動作環境]の[常駐テーブル読込]が「Yes」衣設定され、[データ]リポジトリでデータソースの[常駐]特性が「B=ブラウザ上で常駐」に設定されている状態を示します）、[範囲]特性に式が定義されている場合、このエラーが発生します。


WP0106:キャッシュテーブル - 変数項目に範囲/位置付が設定されている場合、リンクテーブルは、クライアント側でキャッシュできません.

ホーム > WP0106:キャッシュテーブル - 変数項目に範囲/位置付が設定されている場合、リンクテーブルは、クライアント側でキャッシュできません.

キャッシュテーブル - 変数項目に範囲/位置付が設定されている場合、リンクテーブルは、クライアント側でキャッシュできません.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／[リンク]コマンド

意味：

ブラウザクライアントのリンクテーブルが常駐テーブルの場合（[動作環境]の[常駐テーブル読込]が「Yes」衣設定され、[データ]リポジトリでデータソースの[常駐]特性が「B=ブラウザ上で常駐」に設定されている状態を示します）、リンク内に変数項目を定義し、この変数の[位置付]／[範囲]特性に式が設定されている場合、このエラーが発生します。


WP0102:キャッシュテーブル - リンクがサーバ側の式で行われた場合、リンクテーブルは、クライアント側でキャッシュできません.

ホーム > WP0102:キャッシュテーブル - リンクがサーバ側の式で行われた場合、リンクテーブルは、クライアント側でキャッシュできません.

キャッシュテーブル - リンクがサーバ側の式で行われた場合、リンクテーブルは、クライアント側でキャッシュできません.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／[リンク]コマンド

意味：

ブラウザクライアントのリンクテーブルが常駐テーブルの場合（[動作環境]の[常駐テーブル読込]が「Yes」衣設定され、[データ]リポジトリでデータソースの[常駐]特性が「B=ブラウザ上で常駐」に設定されている状態を示します）、[位置付]特性に設定された式にサーバ側で実行されるが関数が含まれている場合、このエラーが発生します。


WP0107:キャッシュテーブル - リンクが照会モードでない場合、リンクテーブルは、クライアント側でキャッシュできません.

ホーム > WP0107:キャッシュテーブル - リンクが照会モードでない場合、リンクテーブルは、クライアント側でキャッシュできません.

キャッシュテーブル - リンクが照会モードでない場合、リンクテーブルは、クライアント側でキャッシュできません.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／[リンク]コマンド

意味：

ブラウザクライアントのリンクテーブルが常駐テーブルの場合（[動作環境]の[常駐テーブル読込]が「Yes」衣設定され、[データ]リポジトリでデータソースの[常駐]特性が「B=ブラウザ上で常駐」に設定されている状態を示します）、照会リンク以外の場合、このエラーが発生します。


EP0097:CallProg関数は、タスク特性では使用できません.

ホーム > EP0097:CallProg関数は、タスク特性では使用できません.

CallProg関数は、タスク特性では使用できません.

発生場所：

[プログラム]リポジトリ／タスク環境／タスク特性

意味：

[タスク特性]のパラメータとしてCallProg関数が指定された場合にこのエラーメッセージが表示されます。


EP0138:ブラウザタスクをコールできません.

ホーム > EP0138:ブラウザタスクをコールできません.

ブラウザタスクをコールできません.ブラウザタスクはブラウザタスクからしか起動できません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールプログラム]処理コマンド

意味：

オンラインまたはバッチプログラム(タスク)からブラウザプログラム(タスク)を呼び出すように定義されている場合に発生します。


EP0139:ブラウザタスクからオンラインタスクを起動できません.

ホーム > EP0139:ブラウザタスクからオンラインタスクを起動できません.

ブラウザタスクからオンラインタスクを起動できません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールプログラム]処理コマンド

意味：

ブラウザプログラム（タスク）からオンラインプログラム（タスク）を呼び出すように定義されている場合に発生します。


EP0191:メインプログラムを呼び出すことはできません.

ホーム > EP0191:メインプログラムを呼び出すことはできません.

メインプログラムを呼び出すことはできません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コール式]処理コマンド／[プログラムID]特性

意味：

指定されたプログラム番号が、メインプログラムを指している場合に発生します。


EP0105:異なったタイプのフォームを混在させる事はできません.

ホーム > EP0105:異なったタイプのフォームを混在させる事はできません.

異なったタイプのフォームを混在させる事はできません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ

意味：

[クラス]が同じで[インタフェースタイプ]が異なるフォームが定義されている場合にこのエラーメッセージが表示されます。


EP0161:埋込SQLのバッチタスクではソート処理はできません.

ホーム > EP0161:埋込SQLのバッチタスクではソート処理はできません.

埋込SQLのバッチタスクではソート処理はできません.

発生場所：

[プログラム]リポジトリ／[ソート]テーブル

意味：

SQLコマンドが定義されたバッチタスクで[ソート]テーブルにソート項目が定義されている場合に発生します。

注意：

このエラーは登録時にもステータスバーに表示されます。


EP0038:メインプログラムでは、項目定義に範囲を設定できません.

ホーム > EP0038:メインプログラムでは、項目定義に範囲を設定できません.

メインプログラムでは、項目定義に範囲を設定できません.

発生場所：

[プログラム]リポジトリ／メインプログラム／[データビュー]エディタ

意味：

メインプログラムに定義されている項目の[範囲]特性が設定されている場合に発生します。


WT0006:NULLの使用が許可されていないため、ﾃﾞﾌｫﾙﾄ/NULLは使用できません

ホーム > WT0006:NULLの使用が許可されていないため、ﾃﾞﾌｫﾙﾄ/NULLは使用できません

NULLの使用が許可されていないため、デフォルト/NULLは使用できません

発生場所：

[データ]リポジトリ／[カラム]テーブル／[カラム]特性

[プログラム]リポジトリ／[データビュー]エディタ／[項目]特性／[項目]特性

意味：

[NULL値可]特性が、「No」に設定されていて、[NULLデフォルト]が「Yes」に設定されている場合にこのエラーが発生します。


EP0272:クライアント側で実行される式は、特性に直接定義できません.

ホーム > EP0272:クライアント側で実行される式は、特性に直接定義できません.

クライアント側で実行される式は、特性に直接定義できません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／特性

[プログラム]リポジトリ／[フォーム]エディタ／特性

意味：

クライアント側で実行される関数を含む式が、サーバ側で処理される特性値に設定されている場合にこのエラーが発生します。式の結果を一旦変数項目に格納した上でその変数項目を定義するように工夫する必要があります。w


EP0095:CndRange関数は、項目定義の［範囲／位置付］特性にしか指定できません.

ホーム > EP0095:CndRange関数は、項目定義の［範囲／位置付］特性にしか指定できません.

CndRange関数は、項目定義の[範囲／位置付]特性にしか指定できません.

発生場所：

[プログラム]リポジトリ

意味：

CndRange関数は、[範囲/位置付]の条件設定用の関数のため、これ以外の目的（例：[項目更新]処理コマンド）で使用された場合にこのエラーメッセージが表示されます。


EP0096:CndRange関数は、他の式の一部としては使用できません.

ホーム > EP0096:CndRange関数は、他の式の一部としては使用できません.

CndRange関数は、他の式の一部としては使用できません.

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

別の関数の一部にCndRange関数が指定された場合にこのエラーメッセージが表示されます。

注意：

このエラーは登録時にもステータスバーに表示されます。

例：ASCIIVal (CndRange ('TRUE'LOG,'AAA'))


WP0240:基本色番号は、1 - 登録番号 以外は指定できません.

ホーム > WP0240:基本色番号は、1 - 登録番号 以外は指定できません.

基本色番号は、1 - 登録番号 以外は指定できません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[テーブル]コントロール／[ハイライト行の色]特性

意味：

[テーブル]コントロールの[ハイライト行の色]特性の番号が「0」か、[基本色定義]テーブルに登録されている数より大きい値を指定している場合に発生します。


WP0024:基本色番号は、1 - 登録番号 以外は指定できません

ホーム > WP0024:基本色番号は、1 - 登録番号 以外は指定できません

基本色番号は、1 - 登録番号 以外は指定できません

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[色]特性

[プログラム]リポジトリ／[フォーム]エディタ／コントロール／[色]特性

意味：

[色]特性の番号が「0」か、[基本色定義]テーブルに登録されている数より大きい値を指定している場合に発生します。


ET0076:Datetime型のカラム指定のため、参照されるカラムもDatetime型にする必要があります.

ホーム > ET0076:Datetime型のカラム指定のため、参照されるカラムもDatetime型にする必要があります.

Datetime型のカラム指定のため、参照されるカラムもDatetime型にする必要があります.

発生場所：

[データ]リポジトリ／[外部キー]テーブル

意味：

外部キーにDateET0076:Datetime型のカラム指定のため、参照されるカラムもDatetime型にする必要があります.time型のカラムが設定され、参照テーブルのカラムがDatetime型でない場合にこのエラーが発生します。


ET0053:SQLテーブルでは、[DBカラム名]が必要です.

ホーム > ET0053:SQLテーブルでは、[DBカラム名]が必要です.

SQLテーブルでは、[DBカラム名]が必要です.

発生場所：

[データ]リポジトリ／[カラム]テーブル／[DBカラム名]特性

意味：

SQLテーブルにアクセスする場合には、各カラムの[DBカラム名]特性を定義する必要があります。この設定がありません。


ET0054:DBカラム名が長すぎます.

ホーム > ET0054:DBカラム名が長すぎます.

DBカラム名が長すぎます.

発生場所：

[データ]リポジトリ／[カラム]テーブル／[DBカラム名]特性

意味：

カラムの[DBカラム名]特性に設定されている名前が使用しているRDBMSでサポートする長さを超えた場合に発生します。


WP0025:[テーブル]コントロールの[マルチマーキング]特性が「No」の状態で、[カラム]コントロールの[カラムのマーキング]特性を「Yes」に設定できません.

ホーム > WP0025:[テーブル]コントロールの[マルチマーキング]特性が「No」の状態で、[カラム]コントロールの[カラムのマーキング]特性を「Yes」に設定できません.

[テーブル]コントロールの[マルチマーキング]特性が「No」の状態で、[カラム]コントロールの[カラムのマーキング]特性を「Yes」に設定できません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ

意味：

[テーブル]コントロールの[マルチマーキング]特性が「No」で[カラム]コントロールの[カラムのマーキング]特性が「Yes」の場合に発生します。


ET0002:[位置]特性が「重複不可インデックス」の場合は、[インデックス]特性を指定してください.

ホーム > ET0002:[位置]特性が「重複不可インデックス」の場合は、[インデックス]特性を指定してください.

[位置]特性が「重複不可インデックス」の場合は、[インデックス]特性を指定してください.

発生場所：

[データ]リポジトリ／データソース特性／[SQL]タブ

意味：

SQLテーブルの[位置]特性に「重複不可インデックス」が定義されていて、[インデックス]特性に重複可インデックスが定義された場合に発生します。


WP0026:BLOBコントロールに対して、カラムソートを使用することはできません

ホーム > WP0026:BLOBコントロールに対して、カラムソートを使用することはできません

BLOBコントロールに対して、カラムソートを使用することはできません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[カラム]コントロール／[ソート可]特性

意味：

BLOB項目を[テーブル]コントロールにカラムとして配置し、[カラム]コントロールのの[ソート可]特性を「Yes」にした場合にこのエラーが発生します。


WP0027:[イメージ]コントロールに対して、カラムソートを使用することはできません

ホーム > WP0027:[イメージ]コントロールに対して、カラムソートを使用することはできません

[イメージ]コントロールに対して、カラムソートを使用することはできません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[カラム]コントロール／[ソート可]特性

意味：

[イメージ]コントロールを[テーブル]コントロールにカラムとして配置し、[カラム]コントロールの[ソート可]特性を「Yes」にした場合にこのエラーが発生します。


WP0028:メインソースを指定していない場合は、カラムソートを使用することができません.

ホーム > WP0028:メインソースを指定していない場合は、カラムソートを使用することができません.

メインソースを指定していない場合は、カラムソートを使用することができません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[カラム]コントロール／[ソート可]特性

意味：

SQLタスクでなく、かつメインソースが定義されいないタスクで、[カラム]コントロールの[ソート可]特性を「Yes」にした場合にこのエラーが発生します。


WP0029:項目を指定しないでカラムソートを使用することはできません

ホーム > WP0029:項目を指定しないでカラムソートを使用することはできません

項目を指定しないでカラムソートを使用することはできません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[カラム]コントロール／[ソート可]特性

意味：

カラムに配置されたコントロールの[データ]特性が設定されていない状態で、[カラム]コントロールの[ソート可]特性を「Yes」にした場合にこのエラーが発生します。


WT0007:項目のステップ値が大きすぎます

ホーム > WT0007:項目のステップ値が大きすぎます

項目のステップ値が大きすぎます

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[スライダ]コントロール

意味：

[スライダ]コントロールの[範囲]特性の値に対して[ステップ]特性の値が大きすぎる場合に発生します。


WP0068:メインプログラムで使用されるコンポーネントは、[即時有効]を「ON」にしてください.

ホーム > WP0068:メインプログラムで使用されるコンポーネントは、[即時有効]を「ON」にしてください.

メインプログラムで使用されるコンポーネントは、[即時有効]を「ON」にしてください.

発生場所：

[コンポーネント]リポジトリ／[コンポーネント特性]

意味：

メインプログラムで使用しているコンポーネントの[即時有効]特性がOFFに設定されている場合に発生します。


WP0008:[コントロール]ロジックユニットは、バッチタスクでは定義できません.

ホーム > WP0008:[コントロール]ロジックユニットは、バッチタスクでは定義できません.

[コントロール]ロジックユニットは、バッチタスクでは定義できません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

バッチタスクに[コントロール]ロジックユニットが定義されている場合にこのエラーが発生します。


WP0009:コントロールには、現在のタスクの項目を定義してください.

ホーム > WP0009:コントロールには、現在のタスクの項目を定義してください.

コントロールには、現在のタスクの項目を定義してください.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コントロール]ロジックユニット

意味：

[コントロール]ロジックユニットに定義されたコントロールに、上位タスクで定義されたデータ項目が設定されている場合にこのエラーが発生します。


EP0117:このクラスで、コントロールは使用できません

ホーム > EP0117:このクラスで、コントロールは使用できません

このクラスで、コントロールは使用できません

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI出力形式]フォーム／コントロール

意味：

出力フォームにチョイスコントロールや[プッシュボタン]、[スライダ]コントロールが定義されている場合にこのエラーが発生します。

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[テキスト形式]フォーム／コントロール

意味：

[テキスト形式]フォームに[イメージ]コントロールや[OLE]、[リッチテキスト]、[四角（楕円）]コントロールが定義されている場合にこのエラーが発生します。


EP0157:サーバが見つからないか、サーバタイプが間違っています.

ホーム > EP0157:サーバが見つからないか、サーバタイプが間違っています.

サーバが見つからないか、サーバタイプが間違っています.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールリモート]処理コマンド／[サービス]特性

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド／[サービス]特性

意味：

[コールWebサービス]処理コマンドで定義されているサービスが SOAP以外のサーバを使用している場合に発生します。

[コールリモート]処理コマンドで定義されているサービスが SOAPのサーバを使用している場合に発生します。


EP0166:データコントロールは、[データ]特性に値を設定してください.

ホーム > EP0166:データコントロールは、[データ]特性に値を設定してください.

データコントロールは、[データ]特性に値を設定してください.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／データコントロール

意味：

データコントロールとして定義していながら[データ]特性に項目が設定されていない場合にこのエラーが発生します。


WP0053:データコントロールの［範囲］特性に、範囲式を定義してください.

ホーム > WP0053:データコントロールの［範囲］特性に、範囲式を定義してください.

データコントロールの[範囲]特性に、範囲式を定義してください.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／データコントロール

意味：

データコントロールの[範囲]特性に項目が定義されているが、[開始]と[終了]カラムに範囲式が定義されていない場合に表示されます。


EP0109:データを定義してください!

ホーム > EP0109:データを定義してください!

データを定義してください!

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／各コントロール

意味：

コントロールの[データ]特性が定義されていない場合に発生します。このエラーは以下のコントロールで発生します。

エディット、イメージ、プッシュボタン、リストボックス、ラジオボタン、コンボボックス

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ツリー]コントロール

意味：

[ツリー]コントロールの[ノードID]特性や[表示項目]特性に項目が定義されていない場合に発生します。


ET0074:データソース名が指定されていません.

ホーム > ET0074:データソース名が指定されていません.

データソース名が指定されていません.

発生場所：

[データ]リポジトリ／[データソース]カラム

意味：

SQLテーブルにアクセスする場合には、[データソース名]カラムを定義する必要があります。この設定がありません。


WP0202:データのタイプが合っていません.

ホーム > WP0202:データのタイプが合っていません.

データのタイプが合っていません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールCOM]処理コマンド／[パラメータ]テーブル

意味：

パラメータのデータ型が合っていない場合にこのエラーが発生します。


ET0072:データベースは、Unicodeのインデックスセグメントの定義をサポートしていません.

ホーム > ET0072:データベースは、Unicodeのインデックスセグメントの定義をサポートしていません.

データベースは、Unicodeのインデックスセグメントの定義をサポートしていません.

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[セグメント]テーブル

意味：

使用しているRDBMSがUnicodeのインデックスをサポートしていない場合、インデックスにUnicode型のカラムを定義すると発生します。


ET0073:データベースは、Unicode項目をサポートしていません.

ホーム > ET0073:データベースは、Unicode項目をサポートしていません.

データベースは、Unicode項目をサポートしていません.

発生場所：

[データ]リポジトリ／[カラム]テーブル

意味：

使用しているRDBMSがUnicodeをサポートしていない場合、Unicode型のカラムを定義すると発生します。


EP0220:Date-Timeの組み合わせは、結合リンクで位置付けなければなりません.

ホーム > EP0220:Date-Timeの組み合わせは、結合リンクで位置付けなければなりません.

Date-Timeの組み合わせは、結合リンクで位置付けなければなりません.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／リンク／位置付

意味：

定義された時刻型項目か日付型項目が、[Datetimeの一部]特性で参照する内容と合っていない場合にこのエラーが発生します。


ET0048:日付セグメントに対応する時刻セグメントも定義してください.

ホーム > ET0048:日付セグメントに対応する時刻セグメントも定義してください.

日付セグメントに対応する時刻セグメントも定義してください.

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[セグメント]テーブル

意味：

項目選択値が日付または時刻に設定され、Datetime特性の一部であるが、対応するカラムがインデックス内に定義されていない場合に発生します。


EP0092:DB SQL Where句は、常駐テーブルをメインソースにしているタスクでは定義できません.

ホーム > EP0092:DB SQL Where句は、常駐テーブルをメインソースにしているタスクでは定義できません.

DB SQLは、常駐テーブルをメインソースにしているタスクでは定義できません.

発生場所：

[プログラム]リポジトリ／タスク環境／範囲/位置付／DB SQL

意味：

［DB SQL］は、常駐テーブルをメインソース にしたタスクには定義できません。

範囲式とメインソースで常駐テーブルが定義された場合に、このエラーメッセージが表示されます。


WP0256:DB SQL WHERE句は、リッチ/ブラウザクライアントのタスクでは無視されます.

ホーム > WP0256:DB SQL WHERE句は、リッチ/ブラウザクライアントのタスクでは無視されます.

DB SQLは、リッチ/ブラウザクライアントのタスクでは無視されます.

発生場所：

[プログラム]リポジトリ／[範囲i位置付]／DB SQL

意味：

リッチクライアントタスクやブラウザクライアントタスクに［DB SQL］が定義されている場合に、このエラーが発生します。


WP0099:[デフォルトボタン]特性に指定されたコントロールがありません.

ホーム > WP0099:[デフォルトボタン]特性に指定されたコントロールがありません.

[デフォルトボタン]特性に指定されたコントロールがありません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[デフォルトボタン]特性

意味：

[デフォルトボタン]特性に指定されたコントロール名に該当するコントロールがフォームに定義されていない場合にこのエラーが発生します。


ET0004:[デフォルトの位置]が見つかりません.重複不可インデックスを定義してください.

ホーム > ET0004:[デフォルトの位置]が見つかりません.重複不可インデックスを定義してください.

[デフォルトの位置]が見つかりません.重複不可インデックスを定義してください.

発生場所：

[データ]リポジトリ／データソース特性／[SQL]タブ

意味：

SQLテーブルに対する[位置]特性が「D=デフォルト」で、インデックスが定義されていない場合に発生します。データソースに重複不可のインデックスが１つも定義されていない可能性があります。


EP0039:埋込SQLを使用する場合は、[トランザクションモード]特性を「物理」にしてください.

ホーム > EP0039:埋込SQLを使用する場合は、[トランザクションモード]特性を「物理」にしてください.

埋込SQLを使用する場合は、[トランザクションモード]特性を「P=物理」にしてください.

発生場所：

[プログラム]リポジトリ／タスク環境／タスク特性／[トランザクションモード]特性

意味：

タスクにSQLコマンドが定義されていて、[トランザクションモード]特性が「物理」に設定されていない場合に発生します。


EP0130:データコントロールには、［表示項目］が必須です.

ホーム > EP0130:データコントロールには、［表示項目］が必須です.

データコントロールには、[表示項目]が必須です.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／データコントロール

意味：

データコントロールの[ソーステーブル]特性が定義されているにもかかわらず、[表示項目]特性が定義されていない場合に発生します。


EP0129:[表示項目]特性の型と[データ]特性の型が合っていません.

ホーム > EP0129:[表示項目]特性の型と[データ]特性の型が合っていません.

[表示項目]特性の型と[データ]特性の型が合っていません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／データコントロール

意味：

[表示項目]特性に定義された項目の型が、コントロールに割り当てられた項目の型と合っていない場合に発生します。


EP0212:[選択表示リスト]特性の式には文字型が返る式を指定してください.

ホーム > EP0212:[選択表示リスト]特性の式には文字型が返る式を指定してください.

[選択表示リスト]特性の式には文字型が返る式を指定してください.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／チョイスコントロール／[選択表示リスト]特性

意味：

チョイスコントロールの[選択表示リスト]特性に定義された式に、文字以外が返る式が定義されている場合に発生します。


EP0126:解像度の値が大きすぎます.

ホーム > EP0126:解像度の値が大きすぎます.

解像度の値が大きすぎます.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[位置とサイズ]セクション

意味：

フォームの[左辺位置]、[上辺位置]、[高さ]、[幅]の各特性値が大きすぎる場合に発生します。


ET0058:カラムの[DB名]特性が重複しています.

ホーム > ET0058:カラムの[DB名]特性が重複しています.

カラムの[DB名]特性が重複しています.

発生場所：

[データ]リポジトリ／[カラム]テーブル／[DBカラム名]特性

意味：

SQLテーブルでDBカラム名が重複したカラムを定義した場合に発生します。


EP0040:コントロール前が重複しています

ホーム > EP0040:コントロール前が重複しています

[コントロール前]が重複しています.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

タスクに同じコントロールに対する[コントロール前]ロジックユニットが複数定義された場合にこのエラーが発生します。


EP0041:コントロール後が重複しています

ホーム > EP0041:コントロール後が重複しています

[コントロール後]が重複しています.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

タスクに同じコントロールに対する[コントロール後]ロジックユニットが複数定義された場合にこのエラーが発生します。


EP0042:コントロール検証が重複しています

ホーム > EP0042:コントロール検証が重複しています

[コントロール検証]が重複しています.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

タスクに同じコントロールに対する[コントロール検証]ロジックユニットが複数定義された場合にこのエラーが発生します。


ET0020:DBのインデックス名が重複しています.

ホーム > ET0020:DBのインデックス名が重複しています.

DBのインデックス名が重複しています.

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[インデックス]特性／[SQL]タブ

意味：

[DBインデックス名]特性に他のインデックスと同じ名前が定義されている場合に発生します。


ET0042:同じ外部キー名があります.

ホーム > ET0042:同じ外部キー名があります.

同じ外部キー名があります.

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[外部キー]テーブル

意味：

同じ名前の外部キーが複数登録されている場合に発生します。


ET0021:インデックス定義が重複しています

ホーム > ET0021:インデックス定義が重複しています

インデックス定義が重複しています

発生場所：

[データ]リポジトリ／[インデックス]テーブル

意味：

インデックスのセグメント定義が重複している場合にこのエラーが発生します。


ET0030:セグメント定義が重複しています.

ホーム > ET0030:セグメント定義が重複しています.

セグメント定義が重複しています.

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[インデックス]特性／[セグメント]テーブル

意味：

インデックスセグメント内に同じカラムが定義されている場合に発生します。


EP0043:同じ実項目が２回以上定義されています.

ホーム > EP0043:同じ実項目が２回以上定義されています.

同じ実項目が２回以上定義されています.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

[データビュー]エディタに同じ実項目が２回以上定義されている場合、このエラーが発生します。


WT0010:チョイスコントロールの[選択項目リスト]特性の指定に重複があります.

ホーム > WT0010:チョイスコントロールの[選択項目リスト]特性の指定に重複があります.

チョイスコントロールの[選択項目リスト]特性の指定に重複があります.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／チョイスコントロール／[選択項目リスト]特性

意味：

チョイスコントロールの[選択項目リスト]特性の値に、重複した値が設定されている場合に発生します。


EP0128:アプリケーション名と公開プログラム名は必須入力です.

ホーム > EP0128:アプリケーション名と公開プログラム名は必須入力です.

アプリケーション名と公開プログラム名は必須入力です.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム／[HTMLコントロール]テーブル／ハイパーテキスト／[ハイパーリンク]特性

[プログラム]リポジトリ／タスク環境／タスク特性／[終了時URL]特性

意味：

ハイパーリンクのタイプが「Magicプログラム」の場合で、プロジェクト名や公開プログラム名が指定されていない場合に発生します。


EP0224:[範囲]テーブルに値が指定されていないか、正しくありません.

ホーム > EP0224:[範囲]テーブルに値が指定されていないか、正しくありません.

[範囲]テーブルに値が指定されていないか、正しくありません.

発生場所：

[プログラム]リポジトリ／[範囲／位置付]ダイアログ／[範囲]テーブル

意味：

[範囲]テーブルに何も登録されていない行が存在している場合にこのエラーが発生します。


EP0044:イベントが指定されていないか、正しくありません.

ホーム > EP0044:イベントが指定されていないか、正しくありません.

イベントが指定されていないか、正しくありません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[イベント]ロジックユニット

意味：

[イベント]ロジックユニットにイベントが定義されていない場合に発生します。

［ユーザイベント］テーブルの［トリガタイプ］が「なし」以外の場合、［トリガ］にイベントが定義されていない場合も発生します。


EP0169:データソースが正しくありません.

ホーム > EP0169:データソースが正しくありません.

データソースが正しくありません.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

データソースが指定されていないか、指定されたデータソースが削除された場合に発生します。

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／チョイスコントロール/[ソーステーブル]特性

意味：

[ソーステーブル]特性に指定されたデータソースが削除された場合に発生します。


EP0278:値が設定されていません.

ホーム > EP0278:値が設定されていません.

値が設定されていません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[エラー]処理コマンド

意味：

［エラー］処理コマンドの［ボタン］特性が以下の場合、［戻り値］特性が設定されていない場合に発生します。

  • OK キャンセル

  • 中止 再試行 無視

  • はい いいえ キャンセル

  • はい いいえ

  • 再試行 キャンセル


EP0279:[非表示の再表示]特性は、コントロール名が定義されたサブフォームコントロールでのみ有効です.

ホーム > EP0279:[非表示の再表示]特性は、コントロール名が定義されたサブフォームコントロールでのみ有効です.

[非表示の再表示]特性は、コントロール名が定義されたサブフォームコントロールでのみ有効です.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ

意味：

［サブフォーム］コントロールの［非表示の再表示］特性が式で定義され、［コントロール名］特性が定義されていない場合に発生します。


EP0283:[コントロール]レベルのロジックユニットは、非インタラクティブなリッチクライアントタスクでは定義できません.

ホーム > EP0283:[コントロール]レベルのロジックユニットは、非インタラクティブなリッチクライアントタスクでは定義できません.

[コントロール]レベルのロジックユニットは、非インタラクティブなリッチクライアントタスクでは定義できません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

［インタラクティブ］特性がOFFに設定されているリッチクライアントタスクに、［コントロール］ロジックユニットが定義されている場合にこのエラーが発生します。


EP0284:オブジェクトのタイプを定義してください.

ホーム > EP0284:オブジェクトのタイプを定義してください.

オブジェクトのタイプを定義してください.

発生場所：

[プログラム]リポジトリ

意味：

.NET型項目の［オブジェクトタイプ］特性が定義されていない場合に、このエラーが発生します。


EP0285:.NET型項目は、リッチクライアントタスクでのみ定義できます.

ホーム > EP0285:.NET型項目は、リッチクライアントタスクでのみ定義できます.

.NET型項目は、リッチクライアントタスクでのみ定義できます.

発生場所：

[プログラム]リポジトリ

意味：

リッチクライアント以外のタスクに.NET型のデータ項目が定義されている場合に、このエラーが発生します。タスクタイプを変更した可能性があります。


EP0286:構文エラー.

ホーム > EP0286:構文エラー.

構文エラー.

発生場所：

[プログラム]リポジトリ／［データビュー］エディタ

意味：

.NET型項目の［オブジェクトタイプ］特性に定義されたアセンブリの内容が正しくない場合に発生します。


EP0287:オブジェクトタイプは、オブジェクトを参照していなければなりません.

ホーム > EP0287:オブジェクトタイプは、オブジェクトを参照していなければなりません.

オブジェクトタイプは、オブジェクトを参照していなければなりません.

発生場所：

[プログラム]リポジトリ／［データビュー］エディタ

意味：

.NET型項目に定義された［オブジェクトタイプ］特性の内容に誤りがある場合に発生します。


EP0288:モデルのオブジェクトタイプが項目のオブジェクトタイプと異なっています.

ホーム > EP0288:モデルのオブジェクトタイプが項目のオブジェクトタイプと異なっています.

モデルのオブジェクトタイプが項目のオブジェクトタイプと異なっています.

発生場所：

[プログラム]リポジトリ／［フォーム］エディタ

意味：

.NETコントロールに［モデル］特性と［データ］特性の両方が定義されている場合、各オブジェクトの［オブジェクトタイプ］特性の設定内容が異なる場合に発生します。コントロールの配置後に、どちらかのオブジェクトの特性を変更した可能性があります。


EP0289:コントロールのオブジェクトタイプは、System.Windows.Forms.Controlを継承しなければなりません.

ホーム > EP0289:コントロールのオブジェクトタイプは、System.Windows.Forms.Controlを継承しなければなりません.

コントロールのオブジェクトタイプは、System.Windows.Forms.Controlを継承しなければなりません.

発生場所：

[プログラム]リポジトリ／［フォーム］エディタ

意味：

フォームに配置された.NETコントロールに割り当てられた.NET型のデータ項目の［オブジェクトタイプ］特性が、System.Windows.Formsネームスペース内のコントロールクラスでなければなりません。これ以外のクラスが指定された場合にこのエラーが発生します。


EP0290:.NET型モデルは、ベクトル型のセルモデルとして使用できません.

ホーム > EP0290:.NET型モデルは、ベクトル型のセルモデルとして使用できません.

.NET型モデルは、ベクトル型のセルモデルとして使用できません.

発生場所：

[プログラム]リポジトリ／［データビュー］エディタ

意味：

ベクトル型のデータ項目の［セルモデル］特性に.NET型の項目モデルが定義されている場合に発生します。セルモデルを定義した後に、モデルのデータ型が変更された可能性があります。


EP0291:公開名に不正な文字が含まれています.

ホーム > EP0291:公開名に不正な文字が含まれています.

公開名に不正な文字が含まれています.

発生場所：

[プログラム]リポジトリ

意味：

［プログラム］リポジトリの［公開名］に制御コード扱いのデータが含まれている場合に発生します。


EP0292:選択された項目は、.NET型項目ではありません.

ホーム > EP0292:選択された項目は、.NET型項目ではありません.

選択された項目は、.NET型項目ではありません.

発生場所：

[プログラム]リポジトリ／［ロジック］エディタ

意味：

.NETイベントで指定したデータ項目が.NET型でない場合に発生します。


EP0294:タイプが曖昧です

ホーム > EP0294:タイプが曖昧です

タイプが曖昧です

発生場所：

[プログラム]リポジトリ／［データビュ］エディタ

意味：

［コンポーネント］リポジトリに定義された複数のアセンブリに同じクラス名が定義されている場合、そのクラス名を［オブジェクトタイプ］特性に指定するとこのエラーが発生します。使用するオブジェクト内容を見直す必要があります。


EP0295:タイプが正しくありません

ホーム > EP0295:タイプが正しくありません

タイプが正しくありません.

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

DNSet関数で定義されている.NETオブジェクトが正しくない場合に、このエラーが発生します。


EP0296:メンバが見つかりません.

ホーム > EP0296:メンバが見つかりません.

メンバが見つかりません.

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

式で定義されたメソッドの名前が間違っている場合にこのエラーが発生します。


EP0299:シグネチャデータが合っていません.

ホーム > EP0299:シグネチャデータが合っていません.

シグネチャデータが合っていません.

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

式に定義されたメソッドに対するシグネチャが間違っている場合にこのエラーが発生します。


EP0300:シグネチャが曖昧です.

ホーム > EP0300:シグネチャが曖昧です.

シグネチャが曖昧です.

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

定義された.NETメソッドはオーバロードされており、同じような型のシグネチャになっているため、どちらを呼び出すか判断できない場合にこのエラーが発生します。.NETメソッドを見直す必要があります。


EP0302:例外エラー

ホーム > EP0302:例外エラー

例外エラーが発生しました.

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

［オブジェクトタイプ］の指定内容と式の定義が合っていないような場合に、このエラーが発生します。


EP0305:括弧を指定してください.

ホーム > EP0305:括弧を指定してください.

括弧を指定してください.

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

定義された式の括弧が抜けている場合にこのエラーが発生します。


EP0307:インデックス数値を指定してください.

ホーム > EP0307:インデックス数値を指定してください.

インデックス数値を指定してください.

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

配列のインデックスの指定が不完全の場合（末尾のブラケットが入力されていないなど）に発生します。インデックス値が数値でない場合も発生します。


EP0308:配列の次元が合っていません.

ホーム > EP0308:配列の次元が合っていません.

配列の次元が合っていません.

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

配列の次元がオブジェクト側と式とで異なっている場合に発生します。


EP0310:配列が正しくありません.

ホーム > EP0310:配列が正しくありません.

配列が正しくありません.

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

［オブジェクトタイプ］特性で配列指定されていないオブジェクトを利用して、配列定義を行った場合に発生します。


EP0316:ネームスペースやタイプが見つかりません.

ホーム > EP0316:ネームスペースやタイプが見つかりません.

ネームスペースやタイプが見つかりません.

発生場所：

[プログラム]リポジトリ

意味：

.NET型項目の［オブジェクトタイプ］特性の設定内容が正しくない場合にこのエラーが発生します。


EP0317:DNRef()関数は、.NETのメソッドやコンストラクタに対するパラメータとしてのみ使用できます.

ホーム > EP0317:DNRef()関数は、.NETのメソッドやコンストラクタに対するパラメータとしてのみ使用できます.

DNRef()関数は、.NETのメソッドやコンストラクタに対するパラメータとしてのみ使用できます.

発生場所：

[プログラム]リポジトリ

意味：

DNRef()関数が、.NETのメソッドやコンストラクタのパラメータ以外（Magic関数のパラメータや項目更新など）、で設定されている場合に発生します。


EP0319:値を.NETタイプに変換する際のキャストが正しくありません.

ホーム > EP0319:値を.NETタイプに変換する際のキャストが正しくありません.

値を.NETタイプに変換する際のキャストが正しくありません.

発生場所：

[プログラム]リポジトリ／［式］エディタ

意味：

DNCast()関数で変換型として指定した.NET型が正しくない場合に、このエラーが発生します。

その他の関数内で.NETオブジェクトの指定内容に誤りがある場合も発生します。


EP0320:DNCast()関数の2番目のパラメータは、.NETタイプにしてください.

ホーム > EP0320:DNCast()関数の2番目のパラメータは、.NETタイプにしてください.

DNCast()関数の2番目のパラメータは、.NETタイプにしてください.

発生場所：

[プログラム]リポジトリ／［式］エディタ

意味：

DNCast()関数の2番目のパラメータは、'DotNet'から始まる.NETで定義されるタイプを指定する必要があります。これ以外の指定がある場合、このエラーが発生します。


EP0321:オブジェクトタイプが定義されていません.

ホーム > EP0321:オブジェクトタイプが定義されていません.

オブジェクトタイプが定義されていません.

発生場所：

[プログラム]リポジトリ／［データビュー］エディタ

意味：

.NET型項目の［オブジェクトタイプ］特性が定義されていない場合に発生します。


EP0322:戻り値が合っていません.

ホーム > EP0322:戻り値が合っていません.

戻り値が合っていません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コール.NET]処理コマンド

意味：

[.NETコード]ウィンドウの［戻り値］の定義内容と[戻り値のタイプ]の内容が合っていない場合に、このエラーが発生します。


EP0323:パラメータのタイプが合っていません.

ホーム > EP0323:パラメータのタイプが合っていません.

パラメータのタイプが合っていません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コール.NET]処理コマンド

意味：

[.NETコード]ウィンドウの［パラメータ］から開くパラメータテーブルの［.NETタイプ］の設定内容が間違っている場合に、このエラーが発生します。


EP0324:コンパイルエラー.

ホーム > EP0324:コンパイルエラー.

コンパイルエラー.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コール.NET]処理コマンド

意味：

[.NETコード]ウィンドウに定義されたコードにエラーがある場合コンパイルエラーが発生します。


EP0326:抽象クラスのコントロールは、フォーム上のコントロールとして使用できません.

ホーム > EP0326:抽象クラスのコントロールは、フォーム上のコントロールとして使用できません.

抽象クラスのコントロールは、フォーム上のコントロールとして使用できません.

発生場所：

[プログラム]リポジトリ／［フォーム］エディタ

意味：

抽象クラスとして定義された.NETコントロールがMagicフォーム上に配置されている場合に発生します。


EP0327:パラメータ名が正しくありません.指定されたパラメータ名に空白か特殊文字が含まれています.

ホーム > EP0327:パラメータ名が正しくありません.指定されたパラメータ名に空白か特殊文字が含まれています.

パラメータ名が正しくありません.指定されたパラメータ名に空白か特殊文字が含まれています.

発生場所：

[プログラム]リポジトリ／［ロジック］エディタ／［コール.NET］処理コマンド／.NETコード

意味：

［パラメータ］テーブルの［.NET項目］カラムが空白のままだったり、特殊文字（DBCSも含まれます）が入力された場合に発生します。


EP0328:このイベントは、このオブジェクトではサポートされていません.

ホーム > EP0328:このイベントは、このオブジェクトではサポートされていません.

このイベントは、このオブジェクトではサポートされていません.

発生場所：

[プログラム]リポジトリ／［ロジック］エディタ

意味：

［イベント］ロジックユニットに定義された.NETイベントのオブジェクトが正しくない場合に発生します。


EP0329:.NETコントロールを使用するには、System.Windows.Formsアセンブリを[コンポーネント]リポジトリに定義しておく必要があります.

ホーム > EP0329:.NETコントロールを使用するには、System.Windows.Formsアセンブリを[コンポーネント]リポジトリに定義しておく必要があります.

.NETコントロールを使用するには、System.Windows.Formsアセンブリを[コンポーネント]リポジトリに定義しておく必要があります.

発生場所：

[プログラム]リポジトリ／［フォーム］エディタ

意味：

[コンポーネント]リポジトリに、'System.Windows.Forms'アセンブリが定義されていないプロジェクトでフォーム上に.NETコントロールを配置した場合にこのエラーが発生します。


EP0330:この処理コマンドは、リッチクライアントタスクでのみサポートされています.

ホーム > EP0330:この処理コマンドは、リッチクライアントタスクでのみサポートされています.

この処理コマンドは、リッチクライアントタスクでのみサポートされています.

発生場所：

[プログラム]リポジトリ／［ロジック］エディタ

意味：

［コール.NET］処理コマンドは、リッチクライアントタスクでのみサポートされます。これ以外のタスクにこの処理コマンドが定義されている場合にこのエラーが発生します。


EP0331:配列を作成するには､サイズの指定や配列イニシャライザが必要です.

ホーム > EP0331:配列を作成するには､サイズの指定や配列イニシャライザが必要です.

配列を作成するには､サイズの指定や配列イニシャライザが必要です.

発生場所：

[プログラム]リポジトリ／［ロジック］エディタ

意味：

配列オブジェクトの（［項目更新］処理コマンドを使用した）インスタンス化処理で配列のサイズが指定されていなかったり、イニシャライザ定義がなかい場合に発生します。


EP0333:Public定義のコンストラクタが見つかりません.

ホーム > EP0333:Public定義のコンストラクタが見つかりません.

Public定義のコンストラクタが見つかりません.

発生場所：

[プログラム]リポジトリ／［ロジック］エディタ／［項目更新］処理コマンド

意味：

［項目更新］処理コマンドを使用してインスタンス化するコンストラクタが、Public定義されていない場合に発生します。


EP0334:この特性にクライアント側の式は定義できません.

ホーム > EP0334:この特性にクライアント側の式は定義できません.

この特性にクライアント側の式は定義できません.

発生場所：

[プログラム]リポジトリ

意味：

サーバ側で処理される場所（［代入］特性など）にクライアント側で処理される式が定義されている場合に発生します。


EP0045:論理型を使用してください.

ホーム > EP0045:論理型を使用してください.

論理型を使用してください.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[アクション]処理コマンド／[戻り値]特性

意味：

[戻り値]特性に設定された項目が論理型でない場合に発生します。


EP0046:数値型を使用してください.

ホーム > EP0046:数値型を使用してください.

数値型を使用してください.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールOSコマンド]処理コマンド／[戻り値]特性

意味：

[戻り値]特性に定義された項目が数値型でない場合に発生します。


EP0098:ExpCalc - 再帰型の式です.

ホーム > EP0098:ExpCalc - 再帰型の式です.

ExpCalc - 再帰型の式です.

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

ExpCalc関数で指定された式が、再帰型（自分自身を指定している）の場合にこのエラーメッセージが表示されます。


EP0101:ExpCalc関数では、複雑な式は使用できません.数値のみ使用できます.

ホーム > EP0101:ExpCalc関数では、複雑な式は使用できません.数値のみ使用できます.

ExpCalc関数では、複雑な式は使用できません.数値のみ使用できます.

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

ExpCalc関数で式番号として評価できない式が定義された場合にこのエラーメッセージが表示されます。

注意：

このエラーは登録時にもステータスバーに表示されます。


EP0099:ExpCalc - ネストは、50階層までです.

ホーム > EP0099:ExpCalc - ネストは、50階層までです.

ExpCalc - ネストは、50階層までです.

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

ExpCalc関数で指定された式が、さらにExpcalc関数を使用していることで式がネスト状態の場合、ネストの階層が50階層を越えた場合にこのエラーメッセージが表示されます。


EP0100:ExpCalc - 指定された式が存在しません.

ホーム > EP0100:ExpCalc - 指定された式が存在しません.

ExpCalc - 指定された式が存在しません.

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

ExpCalc関数で指定された式が、[式]エディタ内に存在しない場合にこのエラーメッセージが表示されます。


EP0149:コントロールの[式]特性に、指定できないデータ型の項目が含まれています.

ホーム > EP0149:コントロールの[式]特性に、指定できないデータ型の項目が含まれています.

コントロールの[式]特性に、指定できないデータ型の項目が含まれています.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム／[HTMLコントロール]テーブル

意味：

[HTMLコントロール]テーブルに定義されたコントロールの[式]特性に定義された式内に、BLOB型（OLE型やActiveX型を含む）のデータ項目が含まれている場合にこのエラーが発生します。


EP0229:式に複数のロジックユニットで定義された項目が含まれています.

ホーム > EP0229:式に複数のロジックユニットで定義された項目が含まれています.

式に複数のロジックユニットで定義された項目が含まれています.

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

複数のロジックユニット内に定義されているデータ項目が1つの式で使用されている場合にこのエラーが発生します。


WP0020:式が使用されていません.

ホーム > WP0020:式が使用されていません.

式が使用されていません.

発生場所：

[プログラム]リポジトリ

意味：

各パラメータで指定された式が[式]エディタ内に定義されていない場合にこのエラーが発生します。


WP0230:別のロジックユニットで定義された項目が指定されています.

ホーム > WP0230:別のロジックユニットで定義された項目が指定されています.

別のロジックユニットで定義された項目が指定されています.

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

別のロジックユニット内で定義されたデータ項目が使用されている場合にこのエラーが発生します。


EP0153:式を定義してください.

ホーム > EP0153:式を定義してください.

式を定義してください.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザクライアント式]フォーム／コントロール

意味：

[デフォルトスタイル]、[マウスオーバスタイル]、[マウスダウンスタイル]の各特性得からズームして表示される[スタイル]テーブルに名前だけが指定され、式が定義されていない場合にこのエラーが発生します。


WP0089:[タブ]コントロールの[タブ幅]特性を「テキストに合わせる」に設定する場合は、[複数行]特性を「Yes」に設定してください.

ホーム > WP0089:[タブ]コントロールの[タブ幅]特性を「テキストに合わせる」に設定する場合は、[複数行]特性を「Yes」に設定してください.

[タブ]コントロールの[タブ幅]特性を「テキストに合わせる」に設定する場合は、[複数行]特性を「Yes」に設定してください.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[タブ]コントロール

意味：

[タブ]コントロールの[複数行]特性が「No」で、[タブ幅]特性が「T=テキストに合わせる」に設定されている場合に発生します。


WP0030:フォント番号は、1 - 登録番号 以外は指定できません.

ホーム > WP0030:フォント番号は、1 - 登録番号 以外は指定できません.

フォント番号は、1 - 登録番号 以外は指定できません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[フォント]特性

[プログラム]リポジトリ／[フォーム]エディタ／コントロール／[フォント]特性

意味：

[フォント]特性の番号が「0」か、[フォント]テーブルに登録されている数より大きい値を指定している場合に発生します。


ET0051:外部キーのカラムと参照キーのカラムが合っていません

ホーム > ET0051:外部キーのカラムと参照キーのカラムが合っていません

外部キーのカラムと参照キーのカラムが合っていません

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[外部キー]テーブル

意味：

外部キーに定義されたカラムのﾃﾞｰﾀ型が参照テーブルのカラムと合っていない場合に発生します。


ET0046:外部キーにセグメントを定義してください.

ホーム > ET0046:外部キーにセグメントを定義してください.

外部キーにセグメントを定義してください.

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[外部キー]テーブル

意味：

SQLテーブルで外部キーのセグメントが定義されていない場合に発生します。


ET0047:外部キー名を入力してください.

ホーム > ET0047:外部キー名を入力してください.

外部キー名を入力してください.

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[外部キー]テーブル

意味：

SQLテーブルで外部キーの名前が指定されていない場合に発生します。


ET0044:外部キーが参照しているテーブルのインデックスは、正しくありません.

ホーム > ET0044:外部キーが参照しているテーブルのインデックスは、正しくありません.

外部キーが参照しているテーブルのインデックスは、正しくありません.

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[外部キー]テーブル

意味：

SQLテーブルで外部キーの参照キーが定義されていないか設定されたインデックスにアクセスできない場合に発生します。


WP0062:[フォーム入力]処理コマンドでは、フレームセット/マージ/ブラウザフォームを指定できません.

ホーム > WP0062:[フォーム入力]処理コマンドでは、フレームセット/マージ/ブラウザフォームを指定できません.

[フォーム入力]処理コマンドでは、フレームセット/マージ/ブラウザフォームを指定できません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[フォーム入力]処理コマンド／[フォーム]特性

意味：

[フォーム入力]処理コマンドの[フォーム]特性に、[フレームセット形式]、[マージ形式]、[ブラウザ形式]の各フォームが指定されている場合に発生します。


WP0010:フォームが大きすぎてコンソールに出力できません

ホーム > WP0010:フォームが大きすぎてコンソールに出力できません

フォームが大きすぎてコンソールに出力できません

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[フォーム出力]処理コマンド／[入出力ファイル]特性

意味：

[入出力ファイル]特性に指定された[入出力ファイル]テーブルの[メディア]カラムが「コンソール」で、[行数]指定が「0」 より大きい場合に発生します。


EP0054:[フォーム出力]処理コマンドでは、ブラウザフォームを指定できません.

ホーム > EP0054:[フォーム出力]処理コマンドでは、ブラウザフォームを指定できません.

[フォーム出力]処理コマンドでは、ブラウザフォームを指定できません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[フォーム出力]処理コマンド

意味：

[フォーム出力]処理マンドで[ブラウザ形式]フォームが定義されている場合に発生します。


EP0089:このフォームタイプは、テンプレートファイルが必要です

ホーム > EP0089:このフォームタイプは、テンプレートファイルが必要です

このフォームタイプは、テンプレートファイルが必要です.

発生場所：

[プログラム]リポジトリ/[フォーム]エディタ／[マージ]形式フォーム/[ファイル名]特性

意味：

[ファイル名]特性にテンプレートファイルの名前が指定されていない場合にこのエラーが発生します。


EP0048:フォームのクラスを１以上にしてください.

ホーム > EP0048:フォームのクラスを１以上にしてください.

フォームのクラスを１以上にしてください.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[フォーム出力]処理コマンド／[入出力ファイル]特性

[プログラム]リポジトリ／[フォーム]エディタ／[入出力]テーブル／入出力特性

意味：

指定されたフォームのクラスが「0」の場合に発生します。


WP0005:GUI出力形式/テキスト形式以外のフォームでは印刷できません.

ホーム > WP0005:GUI出力形式/テキスト形式以外のフォームでは印刷できません.

GUI出力形式/テキスト形式以外のフォームでは印刷できません.

発生場所：

[プログラム]リポジトリ／[フォーム出力]処理コマンド／[フォーム]特性

意味：

[フォーム出力]処理コマンドの[フォーム]特性に、[フレームセット形式]や[ブラウザ形式]のフォームを指定した場合にこのエラーが発生します。


EP0121:同じ名前のコントロール名がすでに登録されています.

ホーム > EP0121:同じ名前のコントロール名がすでに登録されています.

同じ名前のコントロール名がすでに登録されています.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザクライアント形式]フォーム／HTMLコントロール

意味：

同じコントロール名が[HTMLコントロール]テーブル上に複数定義されている場合に発生します。

注意：

このエラーは登録時にステータスバーに表示されます。


WP0031:[フレーム]コントロールの［ハイパーリンク］特性に、現在のプログラムが指定されています.

ホーム > WP0031:[フレーム]コントロールの［ハイパーリンク］特性に、現在のプログラムが指定されています.

[フレーム]コントロールの[ハイパーリンク]特性に、現在のプログラムが指定されています.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[フレームセット形式]フォーム／[フレーム]コントロール／[ハイパーリンク]特性

意味：

[フレームセット形式]フォームに配置された[フレーム]コントロールの[ハイパーリンク]特性に、現在のプログラムが指定されている場合にこのエラーが発生します。


EP0250:関数名を入力してください.

ホーム > EP0250:関数名を入力してください.

関数名を入力してください.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[関数]ロジックユニット

意味：

[関数]ロジックユニットに関数名が定義されていない場合に発生します。


WP0011:[グループ]ロジックユニットは、バッチタスクでのみ有効です.

ホーム > WP0011:[グループ]ロジックユニットは、バッチタスクでのみ有効です.

[グループ]ロジックユニットは、バッチタスクでのみ有効です.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

バッチタスク以外で[グループ]ロジックユニットが定義されている場合にこのエラーが発生します。


EP0123:HTMLファイルが存在しません.

ホーム > EP0123:HTMLファイルが存在しません.

HTMLファイルが存在しません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザクライアント形式]フォーム／[HTMLファイル]特性

意味：

[HTMLファイル]特性にファイル名が指定されていないか、指定されたHTMLファイルが存在しない場合に発生します。


WP0061:HTMLスタイルファイルが存在しません.

ホーム > WP0061:HTMLスタイルファイルが存在しません.

HTMLスタイルファイルが存在しません.

発生場所：

アプリケーション起動時

意味：

[アプリケーション特性]に定義された[HTMLスタイルファイル]が存在しない場合に、このエラーが発生します。


EP0049:入出力ファイルの[アクセス]モードが正しくありません.

ホーム > EP0049:入出力ファイルの[アクセス]モードが正しくありません.

入出力ファイルの[アクセス]モードが正しくありません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[フォーム]処理コマンド／[入出力ファイル]特性

意味：

[フォーム出力]処理コマンドで定義された出力ファイルの[アクセス]特性が「読込」になっている場合に発生します。

[フォーム入力]処理コマンドで定義された入力ファイルの[アクセス]特性が「追加」になっている場合に発生します。


EP0136:項目が定義されていません.

ホーム > EP0136:項目が定義されていません.

項目が定義されていません.

発生場所：

[プログラム]リポジトリ／タスク環境／ソートテーブル

意味：

[ソート]テーブルに項目が定義されない時場合に発生します。


EP0168:「IFRAME」と「その他」のコントロールは、Magicのイベントロジックユニットで処理できません.

ホーム > EP0168:「IFRAME」と「その他」のコントロールは、Magicのイベントロジックユニットで処理できません.

「IFRAME」と「その他」のコントロールは、Magic xpaのイベントロジックユニットで処理できません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

[イベント]ロジックユニットの対象となるコントロールに「IFRAME」や「その他」コントロールが定義されている場合にこのエラーが発生します。


WP0050:[ウィンドウ消去]特性の設定が正しくありません.

ホーム > WP0050:[ウィンドウ消去]特性の設定が正しくありません.

[ウィンドウ消去]特性の設定が正しくありません. 並行実行に設定されたプログラムでは、「No」に設定できません.

発生場所：

[プログラム]リポジトリ／タスク特性／[ウィンドウ消去]特性

意味：

並行実行が有効になっているタスクの[ウィンドウ消去]特性が「No」に設定されている場合に、このエラーが発生します。


EP0213:[選択表示リスト]特性が正しくありません.

ホーム > EP0213:[選択表示リスト]特性が正しくありません.

[選択表示リスト]特性が正しくありません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／チョイスコントロール／[選択表示リスト]特性

意味：

チョイスコントロールの[選択表示リスト]特性に定義された値の数が、[選択項目リスト]に定義された数と合っていない発生します。


EP0194:フォームが正しくありません.

ホーム > EP0194:フォームが正しくありません.

フォームが正しくありません.

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

FORMリテラルで指定されたフォームが存在しない場合に発生します。


WP0109:[初期モード]特性が正しくありません.

ホーム > WP0109:[初期モード]特性が正しくありません.

[初期モード]特性が正しくありません. [並行実行]が設定されたプログラムでは、「親と同じ」は設定できません.

発生場所：

[プログラム]リポジトリ／タスク特性／[初期モード]特性

意味：

並行実行が有効になっているタスクの[初期モード]特性が「P=親と同じ」に設定されている場合に、このエラーが発生します。


WP0018:リテラル値が正しくありません.

ホーム > WP0018:リテラル値が正しくありません.

リテラル値が正しくありません.

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

リテラルを指定したオブジェクト（例：式の場合、'999'EXP）が存在しない場合にこのエラーが発生します。


WT0014:項目の[範囲]特性に、[スライダ]コントロールでは利用できない値が指定されています.

ホーム > WT0014:項目の[範囲]特性に、[スライダ]コントロールでは利用できない値が指定されています.

項目の[範囲]特性に、[スライダ]コントロールでは利用できない値が指定されています.

発生場所：

[モデル]リポジトリ／[項目特性]

[データ]リポジトリ／[カラム]テーブル／[項目特性]

[プログラム]リポジトリ／[データビュー]エディタ／[項目特性]

意味：

[スライダ]コントロールに設定された項目の[範囲]特性に、[スライダ]コントロールでは使用できない値（例：1,2,3,4,5）が指定された場合に発生します。


WT0013:項目の[範囲]特性に、チョイスコントロールでは利用できない値が指定されています.

ホーム > WT0013:項目の[範囲]特性に、チョイスコントロールでは利用できない値が指定されています.

項目の[範囲]特性に、チョイスコントロールでは利用できない値が指定されています.

発生場所：

[モデル]リポジトリ／[項目特性]

[データ]リポジトリ／[カラム]テーブル／[項目特性]

[プログラム]リポジトリ／[データビュー]エディタ／[項目特性]

意味：

チョイスコントロールに設定された項目の[範囲]特性に、チョイスコントロールでは使用できない値（例：1-100）が指定された場合に発生します。


WP0110:[戻り値]特性が正しくありません.

ホーム > WP0110:[戻り値]特性が正しくありません.

[戻り値]特性が正しくありません.[並行実行]が設定されたプログラムでは、[戻り値]特性は設定できません.

発生場所：

[プログラム]リポジトリ／タスク特性／[戻り値]特性

意味：

並行実行が有効になっているタスクの[戻り値]特性に式が設定されている場合に、このエラーが発生します。


EP0270:ソースコンテキストの値が正しくありません.

ホーム > EP0270:ソースコンテキストの値が正しくありません.

ソースコンテキストの値が正しくありません. 並行起動のリッチクライアントプログラムは、グローバルパラメータをメインコンテキストからコピーすることはできません.

発生場所：

[メニュー]リポジトリ／[メニュー]特性／[ソースコンテキスト]特性

意味：

[並行起動]特性が「Yes」に設定されたリッチクライアントプログラムをメニューに登録し、メニューの[ソースコンテキスト]特性が「M=メインコンテキスト」に設定されている場合に、このエラーが発生します。


WP0033:[イメージ]コントロールに、データまたは式が定義されていません.

ホーム > WP0033:[イメージ]コントロールに、データまたは式が定義されていません.

[イメージ]コントロールに、データまたは式が定義されていません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム／[イメージ]コントロール

意味：

[イメージ]コントロールの[項目]カラム（または「式」カラム）が定義されていない場合にこのエラーが発生します。


WP0034:[データ]特性または、[デフォルトイメージファイル]特性を設定してください.

ホーム > WP0034:[データ]特性または、[デフォルトイメージファイル]特性を設定してください.

[データ]特性または、[デフォルトイメージファイル]特性を設定してください.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI形式]フォーム／[イメージ]コントロール

意味：

[イメージ]コントロールの[データ]特性か[デフォルトイメージファイル]特性が定義されていない場合にこのエラーが発生します。


WP0064:[イメージ一覧ファイル名]特性が正しくありません..

ホーム > WP0064:[イメージ一覧ファイル名]特性が正しくありません..

[イメージ一覧ファイル名]特性が正しくありません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ツリー]コントロール／[イメージ一覧ファイル名]特性

意味：

[ツリー]コントロールの[イメージ一覧ファイル名]特性に指定されたファイルが読み込めなかった場合にこのエラーが発生します。


EP0280:[イメージインデックス]特性が指定されていません.

ホーム > EP0280:[イメージインデックス]特性が指定されていません.

[イメージインデックス]特性が指定されていません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ツリー]コントロール

意味：

[ツリー]コントロールの[イメージ一覧ファイル名]にファイルが設定されている場合は、[展開表示イメージインデックス]特性と[縮小表示イメージインデックス]特性に値を指定する必要があります。このどちらか、または両方にインデックス値が設定されていない場合に、このエラーが発生します。


EP0150:イメージ番号が[イメージ一覧]にありません.

ホーム > EP0150:イメージ番号が[イメージ一覧]にありません.

イメージ番号が[イメージ一覧]にありません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[ツリー]コントロール

意味：

[ツリー]コントロールの[展開表示イメージインデックス]、[縮小表示イメージインデックス]、[パーク展開表示イメージインデックス]、[パーク縮小表示イメージインデックス] の各特性に設定されたイメージ番号が登録されている数より大きい場合に発生します。


EP0022:加算更新は、この項目では指定できません.

ホーム > EP0022:加算更新は、この項目では指定できません.

加算更新は、この項目では指定できません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[項目更新]処理コマンド／[加算]特性

意味：

[項目更新]処理コマンドの更新項目が 文字型、Unicode型、論理型、BLOB型の時に、[加算]特性が「Yes」に指定されている場合に発生します。


WP0003:加算更新は、バッチタスクでは指定できません.

ホーム > WP0003:加算更新は、バッチタスクでは指定できません.

加算更新は、バッチタスクでは指定できません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[項目更新]処理コマンド／[加算]特性

意味：

バッチタスク内で、[項目更新]処理コマンドの中の[加算]特性が「Yes」に定義されている場合に発生します。


ET0024:SQLテーブルでは、[DBインデックス名]を設定する必要があります.

ホーム > ET0024:SQLテーブルでは、[DBインデックス名]を設定する必要があります.

SQLテーブルでは、[DBインデックス名]を設定する必要があります.

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[インデックス]特性／[SQL]カラム

意味：

SQLデータベースで[DBインデックス名]特性にインデックス名が指定されていない場合にこのエラーが発生します。


ET0026:セグメントが定義されていません.

ホーム > ET0026:セグメントが定義されていません.

セグメントが定義されていません.

発生場所：

[データ]リポジトリ／[インデックス]テーブル

意味：

データソースのインデックスにインデックスセグメントが定義されていない場合に発生します。


ET0033:セグメントサイズの合計が大きすぎます.

ホーム > ET0033:セグメントサイズの合計が大きすぎます.

セグメントサイズの合計が大きすぎます.

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[セグメント]テーブル

意味：

セグメントサイズの合計値が、DBMSのインデックスサイズの制限を超える場合に発生します。

例：

  • ODBC: 254

  • DB2/400: 2000

  • Btrieve: 255

  • MS-SQL Server 7: 700

  • Oracle: 2000


EP0009:初期モードの[式]パラメータを指定してください.

ホーム > EP0009:初期モードの[式]パラメータを指定してください.

初期モードの[式]パラメータを指定してください.

発生場所：

[プログラム]リポジトリ／タスク環境／タスク特性／[初期モード]特性

意味：

[初期モード]を式で設定するようになっているが、式が設定されていない場合に発生します。


EP0167:設定されているタスク初期モードは使用できません.

ホーム > EP0167:設定されているタスク初期モードは使用できません.

設定されているタスク初期モードは使用できません.

発生場所：

[プログラム]リポジトリ／タスク特性

意味：

[オプション]タブの実行モードで無効にされている初期モードを、[初期モード]特性で指定されている場合にこのエラーが発生します。

注意：

このエラーは実行時に表示されます。


EP0186:OLEやActiveX型のパラメータ項目の[インスタンス化]特性は、「なし」に設定してください.

ホーム > EP0186:OLEやActiveX型のパラメータ項目の[インスタンス化]特性は、「なし」に設定してください.

OLEやActiveX型のパラメータ項目の[インスタンス化]特性は、「なし」に設定してください.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／[変数項目]特性

意味：

OLE型やActiveX型のパラメータ項目の[インスタンス化]特性が「A=自動」になっている場合に発生します。


EP0119:［HTMLコントロール名］の文字が正しくありません.

ホーム > EP0119:［HTMLコントロール名］の文字が正しくありません.

[HTMLコントロール名]の文字が正しくありません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザクライアント形式]フォーム／HTMLコントロール

意味：

[HTMLコントロール]カラムに定義されたコントロール名にクォーテーションや空白が含まれていたり、先頭の文字が数字の場合に発生します。

注意：

このエラーは登録時にステータスバーに表示されます。


EP0111:拡張ウィンドウが正しくありません.

ホーム > EP0111:拡張ウィンドウが正しくありません.

拡張ウィンドウが正しくありません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／GUI表示形式フォーム／[エディット]コントロール

意味：

[拡張ウィンドウ]特性で定義されたウィンドウが、[GUI表示形式]/［リッチクライアント表示形式］フォーム以外の場合に発生します。


EP0052:式番号が正しくありません.

ホーム > EP0052:式番号が正しくありません.

式番号が正しくありません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コール式]処理コマンド

[プログラム]リポジトリ／[ロジック]エディタ／[コールUDP]処理コマンド

[プログラム]リポジトリ／[ロジック]エディタ／[アクション]処理コマンド

[プログラム]リポジトリ／[ロジック]エディタ／[項目更新]処理コマンド

意味：

[式]特性に式番号が指定されていない場合に発生します。


EP0199:フォーム番号が正しくありません.

ホーム > EP0199:フォーム番号が正しくありません.

フォーム番号が正しくありません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[フォーム]処理コマンド／[フォーム]特性

意味：

[フォーム]処理コマンドの[フォーム]特性が指定されていなかったり、存在しないフォーム番号が指定されている場合にこのエラーが発生します。


WP0036:ヘルプが正しくありません.

ホーム > WP0036:ヘルプが正しくありません.

ヘルプが正しくありません.

発生場所：

[モデル]リポジトリ

[データソース]リポジトリ／[カラム]テーブル

[プログラム]リポジトリ／[フォーム]エディタ

[メニュー]リポジトリ

意味：

[ヘルプ画面]特性や、[自動ヘルプ]特性、[ツールチップ]特性に指定されたヘルプが[ヘルプ]リポジトリに定義されていない場合に発生します。


EP0198:ファイル番号が正しくありません.

ホーム > EP0198:ファイル番号が正しくありません.

ファイル番号が正しくありません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[フォーム]処理コマンド／[入出力ファイル]特性

意味：

[フォーム]処理コマンドの[入出力ファイル]特性が指定されていなかったり、存在しないファイル番号が指定されている場合にこのエラーが発生します。


WP0035:内部イベントが正しくありません.

ホーム > WP0035:内部イベントが正しくありません.

内部イベントが正しくありません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI形式]フォーム／[プッシュボタン]コントロール／[実行イベント]特性

意味：

[プッシュボタン]コントロールの[実行イベント]特性に内部イベントが定義されているが、指定されたいベントが存在しない場合に発生します。


EP0057:リンク方法が正しくありません.

ホーム > EP0057:リンク方法が正しくありません.

リンク方法が正しくありません.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／リンク

意味：

[リンク]と[リンク終了]の間に別の[リンク]コマンドが定義されている場合に発生します。


EP0232:処理が正しくありません: XXX がクライアントモジュール内に見つかりません.

ホーム > EP0232:処理が正しくありません: XXX がクライアントモジュール内に見つかりません.

処理が正しくありません: % がクライアントモジュール内に見つかりません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド

意味：

[コールWebサービス]処理コマンドで指定された[処理]がWSDL内に定義されていない場合にこのエラーが発生します。


EP0112:プログラムが正しくありません.

ホーム > EP0112:プログラムが正しくありません.

プログラムが正しくありません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／各コントロール

意味：

選択プログラムが無効な場合に発生します。例えば、[選択プログラム]で指定されたプログラムがプロジェクト（またはコンポーネント）から削除された場合です。


EP0113:[行高さ]特性が正しくありません.

ホーム > EP0113:[行高さ]特性が正しくありません.

[行高さ]特性が正しくありません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI形式]フォーム／[テーブル]コントロール

意味：

[テーブル]コントロールの[行高さ]特性が「0」か、テーブルの高さより大きく指定されている場合に発生します。


EP0226:２番目のパラメータ項目の型が正しくありません.

ホーム > EP0226:２番目のパラメータ項目の型が正しくありません.

２番目のパラメータ項目の型が正しくありません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[項目変更]ロジックユニット

意味：

[項目変更]ロジックユニットに定義されている2番目のパラメータ（CHG_PRV_Item)のデータ型が文字型でない場合にこのエラーが発生します。


ET0031:項目番号が無効です.

ホーム > ET0031:項目番号が無効です.

項目番号が無効です.

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[インデックス]特性／[セグメント]テーブル

意味：

カラムが設定されていない行がある場合にこのエラーが発生します。


EP0027:サービスが正しくありません－サービステーブルに登録されていません.

ホーム > EP0027:サービスが正しくありません－サービステーブルに登録されていません.

サービスが正しくありません－サービステーブルに登録されていません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールリモート]処理コマンド／[サービス]特性

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド／[サービス]特性

意味：

定義されたサービスが[サービス]テーブルに定義されていない場合に発生します。


EP0035:サービスが正しくありません－サーバに割り当てられていません.

ホーム > EP0035:サービスが正しくありません－サーバに割り当てられていません.

サービスが正しくありません－サーバに割り当てられていません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールリモート]処理コマンド／[サービス]特性

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド／[サービス]特性

意味：

[サービス]特性に定義されたサービスが使用するサーバが[サーバ]テーブルに定義されていない場合に発生します。


EP0036:サービスが正しくありません－存在しないサーバに割り当てられています.

ホーム > EP0036:サービスが正しくありません－存在しないサーバに割り当てられています.

サービスが正しくありません－存在しないサーバに割り当てられています.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールリモート]処理コマンド／[サービス]特性

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド／[サービス]特性

意味：

サービスで定義されたサーバが[サーバ]テーブルに定義されていない場合に発生します。


EP0234:サービスが正しくありません - クライアントモジュールが見つかりません.

ホーム > EP0234:サービスが正しくありません - クライアントモジュールが見つかりません.

サービスが正しくありません - クライアントモジュールが見つかりません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド

意味：

[コールWebサービス]処理コマンドで指定された[サービス]に対応するクライアントモジュール(.jar）が見つからない場合にこのエラーが発生します。[サービス]テーブルで再度定義し直す必要があります。


EP0146:サポートされるデータタイプは、文字,数値,日付,時刻 のみです

ホーム > EP0146:サポートされるデータタイプは、文字,数値,日付,時刻 のみです

サポートされるデータタイプは、文字,数値,日付,時刻 のみです.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[ツリー]コントロール／[ルート値]特性

意味：

[ルート値]として指定された値が文字, 数値、日付、時刻でない場合に発生します。


EP0058:タスクまたはプログラム番号が正しくありません.

ホーム > EP0058:タスクまたはプログラム番号が正しくありません.

タスクまたはプログラム番号が正しくありません.

発生場所：

[プログラム]リポジトリ／[コールプログラム]処理コマンド／[プログラムID]特性

[プログラム]リポジトリ／[コールタスク]処理コマンド／[タスクID]特性

意味：

以下の場合に発生します。

  • プログラム（またはタスク）が選択されていない

  • [コールタスク]処理コマンドで指定したタスクが存在しない

  • [コールプログラム]処理コマンドで指定したプログラムが存在しない


EP0114:［タイトル高さ］特性が正しくありません

ホーム > EP0114:［タイトル高さ］特性が正しくありません

[タイトル高さ]特性が正しくありません

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI形式]フォーム／[テーブル]コントロール

意味：

[テーブル]コントロールの[タイトル高さ]特性が「0」か、テーブルの高さより大きく指定されている場合に発生します。


EP0061:項目が正しくありません.

ホーム > EP0061:項目が正しくありません.

項目が正しくありません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[パラメータ]テーブル

[プログラム]リポジトリ／[フォーム]エディタ／[パラメータ]テーブル

[メニュー]リポジトリ／[パラメータ]テーブル

意味：

[項目]カラムが指定されず、[スキップ]カラムが「OFF」になっていたりしている場合に発生します。

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[グループ]ロジックユニット

意味：

[グループ]ロジックユニットにブレイク項目が設定されていない場合に発生します。

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

実項目の定義でカラムが指定されていない場合に発生します。

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[項目更新]処理コマンド

意味：

[項目更新]処理コマンドで項目が指定されていない場合に発生します。

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[タグテーブル]特性

意味：

[項目]（または[式]）が定義されていない場合に発生します。

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[項目]ロジックユニット

意味：

[項目]ロジックユニットに項目が定義されていない場合に発生します。


EP0065:［項目］特性が定義されていません.

ホーム > EP0065:［項目］特性が定義されていません.

[項目]特性が定義されていません.

発生場所：

[プログラム]リポジトリ／タスク環境／タスク特性／[データ]タブ

意味：

[トランザクション開始]特性を「グループ」と定義して、[項目]特性が定義されていない場合にこのエラーが発生します。


EP0094:記述の中の項目番号が無効です.

ホーム > EP0094:記述の中の項目番号が無効です.

記述の中の項目番号が無効です.

発生場所：

[プログラム]リポジトリ／タスク環境／範囲/位置付／DB SQL

意味：

［DB SQL］に存在しない項目番号が定義された場合にこのエラーメッセージが表示されます。

注意：

このエラーは登録時にステータスバーに表示され、該当する項目は削除されるため、構文チェックには表示されません。


WP0097:[ウィンドウタイプ]特性が正しくありません.

ホーム > WP0097:[ウィンドウタイプ]特性が正しくありません.

[ウィンドウタイプ]特性が正しくありません.「SDI」は、並行実行プログラムでのみ指定できます.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[ウィンドウタイプ]特性

意味：

[並行実行]特性がONに設定されたタスクのメインフォームの[ウィンドウタイプ]特性が「S=SDI」に設定されている場合に発生します。


WP0254:[ウィンドウタイプ]特性が正しくありません.

ホーム > WP0254:[ウィンドウタイプ]特性が正しくありません.

[ウィンドウタイプ]特性が正しくありません.「SDI」は、並行実行プログラムまたはリッチクライアントフォームでのみ指定できます.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[フォーム特性]／[ウィンドウタイプ]特性

意味：

[並行実行]特性がOFFになっているタスクのメインフォームの[ウィンドウタイプ]特性が「S=SDI」になっている場合に発生します。


WP0091:[ウィンドウタイプ]特性が正しくありません.

ホーム > WP0091:[ウィンドウタイプ]特性が正しくありません.

[ウィンドウタイプ]特性が正しくありません.[ウィンドウ消去]特性が「No」の場合、SDIフォームは定義できません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[ウィンドウタイプ]特性

意味：

[ウィンドウ消去]特性が「No」に設定されたタスクのメインフォームの[ウィンドウタイプ]特性が、「S=SDI」に設定されている場合に発生します。


WP0090:[ウィンドウタイプ]特性が正しくありません.

ホーム > WP0090:[ウィンドウタイプ]特性が正しくありません.

[ウィンドウタイプ]特性が正しくありません.並行実行プログラムでは指定できないタイプです.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[ウィンドウタイプ]特性

意味：

[並行実行]特性がONに設定されたタスクのメインフォームの[ウィンドウタイプ]特性が以下の場合に発生します。

  • C=子ウィンドウ

  • I=MDI調整


EP0219:ブラウザクライアントプログラムでは、XMLデータをメインソースやリンクテーブルとして定義できません.

ホーム > EP0219:ブラウザクライアントプログラムでは、XMLデータをメインソースやリンクテーブルとして定義できません.

ブラウザクライアントプログラムでは、XMLデータをメインソースやリンクテーブルとして定義できません.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

ブラウザクライアントタスクのメインソースやリンクテーブルにXMLデータソースが定義されている場合にこのエラーが発生します。

注意：

このエラーは登録時にもステータスバーに表示されます。


EP0258:リッチクライアントプログラムでは、XMLデータをメインソースやリンクテーブルとして定義できません.

ホーム > EP0258:リッチクライアントプログラムでは、XMLデータをメインソースやリンクテーブルとして定義できません.

リッチクライアントプログラムでは、XMLデータをメインソースやリンクテーブルとして定義できません.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

リッチクライアントのメインソースやリンクテーブルにXMLデータソースが定義されている場合に、このエラーが発生します。


EP0142:J2EEタイプのサーバは、EJB からのリモートコールのみを受け付けます.

ホーム > EP0142:J2EEタイプのサーバは、EJB からのリモートコールのみを受け付けます.

J2EEタイプのサーバは、EJB からのリモートコールのみを受け付けます.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールリモート]処理コマンド／[サービス]特性

意味：

[サービス]特性に定義されたサービスに[J2EE]タイプのサーバが割り当てられている場合に発生します。


EP0013:結合リンクは、SQLデータベースでしか使用できません.

ホーム > EP0013:結合リンクは、SQLデータベースでしか使用できません.

結合リンクは、SQLデータベースでしか使用できません.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／リンク／メインソース

意味：

メインソースがSQLテーブルでないタスクで、結合リンクを使用した場合に発生します。


EP0018:結合リンクのインデックスセグメントは、[位置付：最小/最大]特性に同じ値を設定してください.

ホーム > EP0018:結合リンクのインデックスセグメントは、[位置付：最小/最大]特性に同じ値を設定してください.

結合リンクのインデックスセグメントは、[位置付：最小/最大]特性に同じ値を設定してください.

発生場所：

[プログラム]リポジトリ/[データビュー]エディタ/リンク／[位置付]特性

意味：

結合リンク内に指定されたインデックス用のセグメント項目が全て定義されていない場合に発生します。

結合リンク内の項目定義の[位置付:最小]特性が指定されていないか、[位置付:最大]特性に指定されている値と異なっている場合に発生します。


RP0002:[テーブル]コントロールの[明細行]を設定してください

ホーム > RP0002:[テーブル]コントロールの[明細行]を設定してください

[テーブル]コントロールの[明細行]を設定してください

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム／[テーブル]コントロール／[明細行]特性

意味：

[テーブル]コントロールの[明細行]特性の値が 「0」 で式が指定されていない場合にこのエラーが発生します。


EP0116:実線以外は、[線幅]特性には「1」しか指定できません.

ホーム > EP0116:実線以外は、[線幅]特性には「1」しか指定できません.

実線以外は、[線幅]特性には「1」しか指定できません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[スタティック]コントロール

意味：

[スタイル]特性が「平面」で、[線種]特性が「実線」でなく、[線幅]特性が「1」より大きい場合に発生します。


EP0132:データコントロールには、［リンク項目］が必須です

ホーム > EP0132:データコントロールには、［リンク項目］が必須です

データコントロールには、[リンク項目]が必須です.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／チョイスコントロール/[リンク項目]特性

意味：

データコントロールの[ソーステーブル]特性が定義されているにもかかわらず、[リンク項目]特性が定義されていない場合に発生します。


WP0093:XMLデータソースを使用して、結合リンクや外部リンクはできません.

ホーム > WP0093:XMLデータソースを使用して、結合リンクや外部リンクはできません.

XMLデータソースを使用して、結合リンクや外部リンクはできません.XMLデータソースをタスクのメインデータソースにした場合も同様です.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

[結合リンク]が[外部リンク]でXMLデータソースを指定した場合に発生します。

また、メインソースがXMLデータで、[結合リンク]や[外部リンク]でSQLテーブルを指定した場合にもエラーになります。

注意：

このエラーは登録時にもステータスバーに表示されます。


EP0017:結合リンクの位置付指定には、自分自身のカラムを指定できません.

ホーム > EP0017:結合リンクの位置付指定には、自分自身のカラムを指定できません.

結合リンクの位置付指定には、自分自身のカラムを指定できません.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／リンク／[位置付け]特性

意味：

結合リンクの[位置付]特性に、結合リンクによって定義されたカラムが指定されている場合に発生します。


EP0059:論理型か数値型項目を使用してください.

ホーム > EP0059:論理型か数値型項目を使用してください.

論理型か数値型項目を使用してください.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／照会リンク／[戻り値]特性

意味：

[リンク特性]の[戻り値]特性に設定された項目が数値型、論理型以外の場合に発生します。


EP0131:[リンク項目]特性の型が項目の型と合っていません.

ホーム > EP0131:[リンク項目]特性の型が項目の型と合っていません.

[リンク項目]特性の型が項目の型と合っていません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／データコントロール

意味：

データコントロールの[リンク項目]特性に定義された項目の型が、コントロールに定義された型と異なる場合にこのエラーが発生します。


EP0047:メインプログラムの項目定義に対する[位置付]指定は、リンクでのみ可能です.

ホーム > EP0047:メインプログラムの項目定義に対する[位置付]指定は、リンクでのみ可能です.

メインプログラムの項目定義に対する[位置付]指定は、リンクでのみ可能です.

発生場所：

[プログラム]リポジトリ／メインプログラム／[データビュー]エディタ／項目定義

意味：

メインプログラムの項目に対する[位置付]特性は、リンク定義でのみ有効です。

メインプログラムの項目に対して[位置付]が定義された場合にこのエラーが発生します。


EP0029:結合リンクによる位置付は、項目か定数で指定してください.

ホーム > EP0029:結合リンクによる位置付は、項目か定数で指定してください.

結合リンクによる位置付は、項目か定数で指定してください.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／リンク／[位置付]特性

意味：

結合リンクで定義されたカラムの[位置付]特性に、関数や演算子が含まれた式が指定された場合に発生します。


RP0001:結合リンクの[位置付]特性に指定された変数項目は無視されます.

ホーム > RP0001:結合リンクの[位置付]特性に指定された変数項目は無視されます.

結合リンクの[位置付]特性に指定された変数項目は無視されます.SQL Where句を使用してください.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

結合リンクの[位置付]特性に変数項目が設定された場合にこのエラーが発生します。


EP0014:Magic SQL Where句は、常駐テーブルをメインソースにしているタスクでは定義できません.

ホーム > EP0014:Magic SQL Where句は、常駐テーブルをメインソースにしているタスクでは定義できません.

Magic SQL Where句は、常駐テーブルをメインソースにしているタスクでは定義できません.

発生場所：

[プログラム]リポジトリ／タスク環境／範囲/位置付／SQL Where句

意味：

SQL Where句は、常駐テーブルをメインソース にしたタスクには定義できません。

範囲式とメインソースで常駐テーブルが定義された場合に、このエラーメッセージが表示されます。


WP0059:ブラウザタスクでは、[メディア]カラムが「リクエスタ」に指定されている入出力ファイルを使用できません.

ホーム > WP0059:ブラウザタスクでは、[メディア]カラムが「リクエスタ」に指定されている入出力ファイルを使用できません.

ブラウザタスクでは、[メディア]カラムが「リクエスタ」に指定されている入出力ファイルを使用できません.

発生場所：

[プログラム]リポジトリ／[入出力ファイル]テーブル

意味：

[タスクタイプ]特性が「R=ブラウザ」で[入出力ファイル]テーブルに「メディア」と定義されたテーブルがある場合に発生します。


EP0016:フレームセット/マージフォームでは、［メディア］が「リクエスタ」か「ファイル」に定義された入出力ファイルしか使用できません.

ホーム > EP0016:フレームセット/マージフォームでは、［メディア］が「リクエスタ」か「ファイル」に定義された入出力ファイルしか使用できません.

フレームセット/マージフォームでは、[メディア]が「リクエスタ」か「ファイル」に定義された入出力ファイルしか使用できません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[フォーム出力]処理コマンド／[入出力ファイル]特性

意味：

[フォーム出力]処理コマンドで「フレームセット形式」や「マージ形式」の各フォームを使用した時、[入出力ファイル]テーブルの［メディア]カラムの指定が「リクエスタ」か「ファイル」以外のものを指定した場合に発生します。


EP0177:メソッド名が定義されていません.

ホーム > EP0177:メソッド名が定義されていません.

メソッド名が定義されていません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールCOM]処理コマンド

意味：

[コール]処理コマンドで「メソッド呼出」が指定された状態で、[メソッド]が指定されていない場合に発生します。


EP0055:「ブロックIf/While」がありません

ホーム > EP0055:「ブロックIf/While」がありません

「ブロックIf/While」がありません

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[ブロック]処理コマンド

意味：

[ブロック終了]処理コマンドの「End」オプションのみが定義され、「If」または「While」が定義されていない場合にこのエラーが表示されます。


EP0051:「リンク終了」がありません

ホーム > EP0051:「リンク終了」がありません

[リンク終了]がありません

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／リンク

意味：

[リンク]コマンド対する[リンク終了]が定義されていない場合にこのエラーが表示されます。


EP0162:式の記述が正しくありません.

ホーム > EP0162:式の記述が正しくありません.

式の記述が正しくありません.

発生場所：

各[式]欄

意味：

[式]エディタに設定された式の内容が正しくない場合に発生します。

注意：

このエラーは登録時にステータスバーに表示されます。


EP0025:サービスが指定されていません.

ホーム > EP0025:サービスが指定されていません.

サービスが指定されていません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールリモート]処理コマンド／[サービス]特性

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド／[サービス]特性

意味：

サービス名が指定されていない場合にこのエラーが発生します。


EP0050:「ブロックEnd」がありません

ホーム > EP0050:「ブロックEnd」がありません

[ブロックEnd]がありません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[ブロック]処理コマンド

意味：

[ブロック]処理コマンド対する「End」オプションが定義されていない場合にこのエラーが表示されます。


EP0231:モードが合っていません. 項目を指定してください.

ホーム > EP0231:モードが合っていません. 項目を指定してください.

モードが合っていません. 項目を指定してください.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールWebサービス]処理コマンド／[パラメータ]テーブル

意味：

[コールWebサービス]処理コマンドの[パラメータ]テーブルで[方向]カラムが｢Out｣または、｢In/Out｣になっているパラメータに式が設定されている場合にこのエラーが発生します。Webサーバ側からの値を受け取るためのパラメータのため、データ項目を設定する必要があります。


EP0204:[選択モード]特性が｢マルチ｣のリストボックスは、コントロールのレイヤ定義をサポートしていません

ホーム > EP0204:[選択モード]特性が｢マルチ｣のリストボックスは、コントロールのレイヤ定義をサポートしていません

[選択モード]特性が｢マルチ｣のリストボックスは、コントロールのレイヤ定義をサポートしていません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[リストボックス]コントロール

意味：

[選択モード]特性が｢マルチ｣に設定されている[リストボックス]コントロールが、他のコントロールの親としてリンクされている場合に場合に発生します。親子リンクを解除するか、[選択モード]特性を｢シングル｣に変更してください。


WP0206:[選択モード]特性の「マルチ」は、文字型項目かUnicode型かベクトル型項目でのみ有効です.

ホーム > WP0206:[選択モード]特性の「マルチ」は、文字型項目かUnicode型かベクトル型項目でのみ有効です.

[選択モード]特性の「マルチ」は、文字型項目かUnicode型かベクトル型項目でのみ有効です.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[リストボックス]コントロール

意味：

[リストボックス]コントロールの[選択モード]特性が「M=マルチ」に設定されており、[データ]特性に文字型かUnicode型、ベクトル型以外の項目が定義されている場合にこのエラーが発生します。


EM0002:ベクトルがネストされています.終端の[セルモデル]にベクトル型以外のモデルを指定してください.

ホーム > EM0002:ベクトルがネストされています.終端の[セルモデル]にベクトル型以外のモデルを指定してください.

ベクトルがネストされています.終端の[セルモデル]にベクトル型以外のモデルを指定してください.

発生場所：

[モデル]リポジトリ／[セルモデル]特性

意味：

ベクトル型の項目モデルの[セルモデル]特性に別のベクトル型の項目モデルが設定されていますが、末端のベクトル型モデルの[セルモデル]特性に何も設定されていない場合にこのエラーが発生します。ここには、ベクトル型以外の項目モデルを指定してください。


ET0018:データベースが見つかりません.

ホーム > ET0018:データベースが見つかりません.

データベースが見つかりません.

発生場所：

[データ]リポジトリ／[データベース]カラム

意味：

[データベース]カラムにデータベースが設定されていない場合に発生します。


EP0176:[コールCOM]処理コマンド用の項目が定義されていません.

ホーム > EP0176:[コールCOM]処理コマンド用の項目が定義されていません.

[コールCOM]処理コマンド用の項目が定義されていません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールCOM]処理コマンド

意味：

[コール]処理コマンドに呼び出すオブジェクト項目が指定されていない場合に発生します。


ET0019:XMLスキーマが指定されていません.

ホーム > ET0019:XMLスキーマが指定されていません.

XMLスキーマが指定されていません.

発生場所：

[データ]リポジトリ

意味：

XMLデータソースを指定していますが、XMLスキーマを使用して定義取得が行われていない場合に発生します。


EP0148:[ノードID]、[親のID]と[表示項目]の各特性は、カレントタスクで定義した項目を指定してください.

ホーム > EP0148:[ノードID]、[親のID]と[表示項目]の各特性は、カレントタスクで定義した項目を指定してください.

[ノードID]、[親のID]と[表示項目]の各特性は、カレントタスクで定義した項目を指定してください.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[ツリー]コントロール

意味：

[ツリー]コントロールの[ノードID]、[親ID]、[表示項目]の各特性に設定された項目が現在のタスクで定義されたものでない場合にこのエラーが発生します。


EP0207:[ノードID]特性と[親のID]特性を同じカラムにすることはできません.

ホーム > EP0207:[ノードID]特性と[親のID]特性を同じカラムにすることはできません.

[ノードID]特性と[親のID]特性を同じカラムにすることはできません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ツリー]コントロール

意味：

[ツリー]コントロールの[ノードID]と[親のID]の各特性に同じカラムが定義されている場合にこのエラーが発生します。


EP0151:[ノードID]特性と[親のID]特性では、メインソースか結合リンクテーブルのカラムまたはパラメータ項目のみ有効です.

ホーム > EP0151:[ノードID]特性と[親のID]特性では、メインソースか結合リンクテーブルのカラムまたはパラメータ項目のみ有効です.

[ノードID]特性と[親のID]特性では、メインソースか結合リンクテーブルのカラムまたはパラメータ項目のみ有効です.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[ツリー]コントロール

意味：

[ツリー]コントロールの[ノードID]または[親ID]特性に定義された項目が、変数項目の場合、またはメインソースか結合リンクテーブル以外のカラムの場合にこのエラーが発生します。


WP0037:自動ヘルプ以外のヘルプは、ここには指定できません.

ホーム > WP0037:自動ヘルプ以外のヘルプは、ここには指定できません.

自動ヘルプ以外のヘルプは、ここには指定できません.

発生場所：

[モデル]リポジトリ

[データソース]リポジトリ／[カラム]テーブル

[プログラム]リポジトリ／[フォーム]エディタ

意味：

[自動ヘルプ]特性に指定されたヘルプが自動ヘルプでない場合に発生します。


WP0038:ツールチップ以外は、ここでは指定できません.

ホーム > WP0038:ツールチップ以外は、ここでは指定できません.

ツールチップ以外は、ここでは指定できません.

発生場所：

[モデル]リポジトリ

[データソース]リポジトリ／[カラム]テーブル

[プログラム]リポジトリ／[フォーム]エディタ

意味：

[ツールチップ]特性に指定されたヘルプがツールチップでない場合に発生します。


ET0012:重複可のインデックスは、[インデックス]特性に設定できません.

ホーム > ET0012:重複可のインデックスは、[インデックス]特性に設定できません.

重複可のインデックスは、[インデックス]特性に設定できません.

発生場所：

[データ]リポジトリ／[データソース特性]／[SQL]タブ

意味：

SQLテーブルの[位置]特性に「重複不可インデックス」が定義されていて、[インデックス]特性に重複可インデックスが定義されている場合に発生します。


WP0178:オプションが「No」と設定されたパラメータに項目が設定されていません.

ホーム > WP0178:オプションが「No」と設定されたパラメータに項目が設定されていません.

オプションが「No」と設定されたパラメータに項目が設定されていません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールCOM]処理コマンド

意味：

[コールCOM]処理コマンドの[パラメータ]特性や[値]特性で[オプション]カラムが「No」に設定されているパラメータに項目が設定されていない場合にこのエラーが発生します。


WP0067:SQLデータベースを指定してください.

ホーム > WP0067:SQLデータベースを指定してください.

SQLデータベースを指定してください.

発生場所：

[プログラム]リポジトリ／[SQLコマンド]ダイアログ／[データベース]欄

意味：

指定されたデータベースがSQL系のデータベースとして定義されていない場合に発生します。


RP0008:実行場所が不明な処理をサーバ側のロジックユニットに定義すると、実行時にクライアント側で評価され、エラーが発生する場合があります.

ホーム > RP0008:実行場所が不明な処理をサーバ側のロジックユニットに定義すると、実行時にクライアント側で評価され、エラーが発生する場合があります.

実行場所が不明な処理をサーバ側のロジックユニットに定義すると、実行時にクライアント側で評価され、エラーが発生する場合があります.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

サーバ側で実行されるロジックユニット（例：[タスク前]）に、実行場所が不明な処理（左端に「U」と表示されます）が定義されている場合、この処理がクライアント側で実行されるとエラーが発生する可能性があります。このような設定を行った場合に、この警告が表示されます。


WP0055:パラメータの数が合っていません.

ホーム > WP0055:パラメータの数が合っていません.

パラメータの数が合っていません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コール]処理コマンド／[パラメータ]特性

[プログラム]リポジトリ／[フォーム]エディタ／[サブフォーム]コントロール／[パラメータ]特性

意味：

パラメータの数が呼ぶ側と呼ばれる側で合っていない場合に、このエラーが発生します。


ET0011:BLOBカラムが多すぎます.

ホーム > ET0011:BLOBカラムが多すぎます.

BLOBカラムが多すぎます.

発生場所：

[データ]リポジトリ／[カラム]テーブル

意味：

SQLテーブルの場合：BLOB項目の定義数が DBMSの制限を超えた場合にこのエラーが発生します。
（例：Oracleの場合は 7、Pervasive ISAMは1、Memoryは1）


WP0060:[部数]特性を指定してください.

ホーム > WP0060:[部数]特性を指定してください.

[部数]特性を指定してください.

発生場所：

[プログラム]リポジトリ／[入出力ファイル]テーブル／[入出力ファイル]特性／[部数]特性

意味：

[プリンタ]カラムが「GUI形式プリンタ」と定義され、[部数]特性が指定されていない場合にこのエラーが発生します。


WP0086:SQLコマンドの[入力パラメータ]特性の数が、実際のパラメータ数と合っていません.

ホーム > WP0086:SQLコマンドの[入力パラメータ]特性の数が、実際のパラメータ数と合っていません.

SQLコマンドの[入力パラメータ]特性の数が、実際のパラメータ数と合っていません.

発生場所：

[プログラム]リポジトリ／[SQLコマンド]ダイアログ

意味：

[入力パラメータ]に定義されたの数と、SQLコマンドで指定されたパラメータ（:n）の数が合っていない場合に発生します。


WP0216:ロジックユニット内のパラメータ項目の数が[イベント]テーブル内のパラメータ数と合っていません.

ホーム > WP0216:ロジックユニット内のパラメータ項目の数が[イベント]テーブル内のパラメータ数と合っていません.

ロジックユニット内のパラメータ項目の数が[イベント]テーブル内のパラメータ数と合っていません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[イベント]ロジックユニット

意味：

[ユーザイベント]テーブル内に定義されたイベントに設定されたパラメータの数と、このイベントを使用した[イベント]ロジックユニット内のパラメータ項目の数が合っていない場合に、このエラーが発生します。


ET0061:数値は、18桁まで有効です.

ホーム > ET0061:数値は、18桁まで有効です.

数値は、18桁まで有効です.

発生場所：

[データ]リポジトリ／[カラム]テーブル

意味：

数値型のカラムの書式が、18桁を超えている場合に発生します。

注意：

このエラーは、MAGIC.INI の[MAGIC_SPECIALS]セクションに XXLNumericSize が設定されていないか、 N と設定されている場合にのみ表示されます。


ET0060:数値は、38桁まで有効です.

ホーム > ET0060:数値は、38桁まで有効です.

数値は、38桁まで有効です.

発生場所：

[データ]リポジトリ／[カラム]テーブル

意味：

数値型のカラムの書式が、38桁を超えている場合に発生します。

注意：

このエラーは、MAGIC.INI の[MAGIC_SPECIALS]セクションで XXLNumericSize = Y と設定されている場合にのみ表示されます。


EP0170:オブジェクト名を指定してください.

ホーム > EP0170:オブジェクト名を指定してください.

オブジェクト名を指定してください.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

ActiveX/OLE型型のデータ項目の[オブジェクト名]特性が定義されていない場合に発生します。


EP0193:[OLE]コントロールはBLOB型項目でのみ有効です.

ホーム > EP0193:[OLE]コントロールはBLOB型項目でのみ有効です.

[OLE]コントロールはBLOB型項目でのみ有効です.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[OLE]コントロール／[データ]特性

意味：

[OLE]コントロールの[データ]特性に項目が定義されていないか、BLOB型以外の項目が定義されている場合に発生します。


EP0246:式の中にリッチクライアントタスクではサポートされない関数が含まれています.

ホーム > EP0246:式の中にリッチクライアントタスクではサポートされない関数が含まれています.

式の中にリッチクライアントタスクではサポートされない関数が含まれています.

発生場所：

[データ]リポジトリ／[式]エディタ

意味：

式で使用されている関数の中にリッチクライアントタスクでは使用できない関数が含まれている場合にこのエラーが発生します。


EP0245:式の中にブラウザタスクではサポートされない関数が含まれています.

ホーム > EP0245:式の中にブラウザタスクではサポートされない関数が含まれています.

式の中にブラウザタスクではサポートされない関数が含まれています.

発生場所：

[データ]リポジトリ／[式]エディタ

意味：

式で使用されている関数の中にブラウザクライアントタスクでは使用できない関数が含まれている場合にこのエラーが発生します。


EP0244:式の中にオンライン/バッチタスクではサポートされない関数が含まれています.

ホーム > EP0244:式の中にオンライン/バッチタスクではサポートされない関数が含まれています.

式の中にオンライン/バッチタスクではサポートされない関数が含まれています.

発生場所：

[データ]リポジトリ／[式]エディタ

意味：

式で使用されている関数の中にリッチクライアントタスクでのみ有効な関数が含まれている場合にこのエラーが発生します。


EP0223:[デフォルトボタン]特性には、[プッシュボタン]コントロールしか指定できません.

ホーム > EP0223:[デフォルトボタン]特性には、[プッシュボタン]コントロールしか指定できません.

[デフォルトボタン]特性には、[プッシュボタン]コントロールしか指定できません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[デフォルトボタン]特性

意味：

[デフォルトボタン]特性に[プッシュボタン]以外のコントロール名が指定されている場合にこのエラーが発生します。


EP0275:フレームには、リッチクライアントタスクまたはフォームのみ定義できます.

ホーム > EP0275:フレームには、リッチクライアントタスクまたはフォームのみ定義できます.

リッチクライアントフレームには、インタラクティブなリッチクライアントタスクのみ定義できます.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[リッチクライアントフレーム形式]フォーム／[フレーム特性］

意味：

［リッチクライアントフレーム形式］フォームにインタラクティブなリッチクライアントプログラムが定義されていない場合にこのエラーが発生します。フォーム指定の場合、[リッチクライアント形式]フォーム以外のフォームが指定されると発生します。


WP0074:テキスト形式フォームのみ「項目」メディアを指定することができます.

ホーム > WP0074:テキスト形式フォームのみ「項目」メディアを指定することができます.

テキスト形式フォームのみ「項目」メディアを指定することができます.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[フォーム入力]処理コマンド／[フォーム]特性

意味：

[フォーム入力]処理コマンドの[入出力ファイル]特性に、[メディア]カラムが「V=項目」に設定された入出力ファイルが指定されていて、[フォーム]特性に「テキスト形式」以外のフォームが定義されている場合に発生します。


WP0073:テキスト形式/マージ形式フォームのみ「項目」メディアを指定することができます.

ホーム > WP0073:テキスト形式/マージ形式フォームのみ「項目」メディアを指定することができます.

テキスト形式/マージ形式フォームのみ「項目」メディアを指定することができます.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[フォーム出力]処理コマンド／[フォーム]特性

意味：

[フォーム出力]処理コマンドの[入出力ファイル]特性に、[メディア]カラムが「V=項目」に設定された入出力ファイルが指定されていて、[フォーム]特性に「テキスト形式」か「マージ形式」以外のフォームが定義されている場合に発生します。


EP0103:Magic SQL Where句で指定された関数が正しくありません.

ホーム > EP0103:Magic SQL Where句で指定された関数が正しくありません.

Magic SQL Where句で指定された関数が正しくありません.

発生場所：

[プログラム]リポジトリ／タスク環境／範囲/位置付/xpa SQL

意味：

Magic SQL Where句に指定された式内に使用できない関数が含まれている場合にこのエラーメッセージが表示されます。


ET0025:クラスタ化インデックスとして指定できるのは１つのインデックスだけです

ホーム > ET0025:クラスタ化インデックスとして指定できるのは１つのインデックスだけです

クラスタ化インデックスとして指定できるのは１つのインデックスだけです

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[インデックス]特性／[SQL]カラム

意味：

SQLデータベースで複数のインデックスに[クラスタ化]特性が設定されている場合にこのエラーが発生します。


EP0037:ブロックIfに条件が指定されていない場合、Elseは使用できません.

ホーム > EP0037:ブロックIfに条件が指定されていない場合、Elseは使用できません.

ブロックIfに条件が指定されていない場合、Elseは使用できません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[ブロック]処理コマンド

意味：

If-Else のブロックに[条件]が指定されていない場合に発生します。条件なしの場合は、Else指定ができません。


WP0057:１つのタスクには１つのリクエスタしか指定できません.

ホーム > WP0057:１つのタスクには１つのリクエスタしか指定できません.

１つのタスクには１つのリクエスタしか指定できません.

発生場所：

[プログラム]リポジトリ／[入出力ファイル]テーブル

意味：

[入出力ファイル]テーブルに一つ以上のリクエスタが定義されている場合にこのエラーが発生します。


EP0243:リッチクライアントタスクを呼び出すことができるのは、リッチクライアントタスクだけです.

ホーム > EP0243:リッチクライアントタスクを呼び出すことができるのは、リッチクライアントタスクだけです.

リッチクライアントタスクを呼び出すことができるのは、リッチクライアントタスクだけです.

発生場所：

[データ]リポジトリ／[ロジック]エディタ／[コール]処理コマンド

[データ]リポジトリ／[フォーム]エディタ／[リッチクライアント形式]フォーム／[サブフォーム]コントロール／[プログラム/タスク番号]特性

意味：

リッチクライアント以外のプログラムからリッチクライアントプログラムを呼び出すように指定されている場合にこのエラーが発生します。


EP0266:[出力先サブフォーム]特性を使用する場合、リッチクライアントタスクのみ呼び出すことができます.

ホーム > EP0266:[出力先サブフォーム]特性を使用する場合、リッチクライアントタスクのみ呼び出すことができます.

[出力先]特性を使用する場合、リッチクライアントタスクのみ呼び出すことができます.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コール]処理コマンド

意味：

[出力先]特性を使用して呼び出すプログラムが、リッチクライアントでない場合に、このエラーが発生します。


WT0001:[オープン]特性が「再索引」のデータソースは、排他になるように設定してください

ホーム > WT0001:[オープン]特性が「再索引」のデータソースは、排他になるように設定してください

[オープン]特性が「再索引」のデータソースは、排他になるように設定してください.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／[メインソース特性]

[プログラム]リポジトリ／[データビュー]エディタ／[リンク]特性

意味：

[メインソース特性]や[リンク特性]の[オープン]特性が「R=再索引」に設定されていて、[共有]特性が「W=書出」や「R=読込」に設定されている場合に発生します。


EP0271:OSコマンドが指定されていません.

ホーム > EP0271:OSコマンドが指定されていません.

OSコマンドが指定されていません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールOSコマンド]処理コマンド／[OSコマンド]特性

意味：

実行するOSコマンドが指定されていない場合に、このエラーが発生します。


EP0134:このパラメータ名は、既に存在しています.

ホーム > EP0134:このパラメータ名は、既に存在しています.

このパラメータ名は、既に存在しています.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム/マージイベント／マージコマンド／ハイパーリンク／パラメータ

意味：

パラメータテーブルに同じ名前のパラメータがある場合に発生します。

Ver10には、マージイベントは存在しない


EP0133:パラメータ名を入力してください.

ホーム > EP0133:パラメータ名を入力してください.

パラメータ名を入力してください.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム/マージイベント／マージコマンド／ハイパーリンク／パラメータ

意味：

[パラメータ]テーブルにパラメータ名が定義されていない場合に発生します。

Ver10には、マージイベントは存在しない


ET0023:このパラメータは、このインデックスタイプに使用できません.

ホーム > ET0023:このパラメータは、このインデックスタイプに使用できません.

このパラメータは、このインデックスタイプに使用できません.

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[インデックス]特性

意味：

[方向]特性が「T=双方向」で、[データベース情報]特性で「ORDER_BY_NON_UNIQUE=Yes」に設定されている場合にこのエラーが発生します。
Oracleの場合のみ関係します。


RP0007:[ブロックWhile]処理コマンド内でクライアント側とサーバ側の処理コマンドを一緒に実行させると、サーバへの多重アクセスが発生します.

ホーム > RP0007:[ブロックWhile]処理コマンド内でクライアント側とサーバ側の処理コマンドを一緒に実行させると、サーバへの多重アクセスが発生します.

[ブロックWhile]処理コマンド内でクライアント側とサーバ側の処理コマンドを一緒に実行させると、サーバへの多重アクセスが発生します.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

[ブロックWhile]処理コマンドで定義されたブロック内に、サーバ側で実行される処理とクライアント側で実行される処理が混在している場合に、この警告が表示されます。できるだけ、異なるループ処理処理に分けるように検討してください。


RP0009:[項目変更]ロジックユニットに、クライアントとサーバの処理を混在して定義することは推奨できません.

ホーム > RP0009:[項目変更]ロジックユニットに、クライアントとサーバの処理を混在して定義することは推奨できません.

[項目変更]ロジックユニットに、クライアントとサーバの処理を混在して定義することは推奨できません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

[項目変更]ロジックユニットに、サーバ側で実行される処理とクライアント側で実行される処理が混在して定義されている場合に、この警告が表示されます。どちらかの処理だけにするように検討してください。


RP0005:サーバへの多重アクセスが実行されます.

ホーム > RP0005:サーバへの多重アクセスが実行されます.

サーバへの多重アクセスが発生します.サーバ側の処理をまとめて定義するようにしてください.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

サーバ側で実行される処理とクライアント側で実行される処理が混在しているため、パフォーマンスが低下する可能性がある場合に、この警告が表示されます。サーバ側の処理だけをまとめて実行できるように検討してください。


RP0006:画面表示処理中のサーバアクセス処理は推奨できません.

ホーム > RP0006:画面表示処理中のサーバアクセス処理は推奨できません.

画面表示処理中のサーバアクセス処理は推奨できません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

[レコード前]や[レコード後]のように、画面表示処理中のロジックユニット内にサーバ側の処理を定義するとパフォーマンスが劣化するため、この警告が表示されます。


WP0079:[ツリー]コントロールが定義されたタスクには、[位置方法]は定義できません.

ホーム > WP0079:[ツリー]コントロールが定義されたタスクには、[位置方法]は定義できません.

[ツリー]コントロールが定義されたタスクには、[位置方法]は定義できません.

発生場所：

[プログラム]リポジトリ／[範囲／位置付]ダイアログ／[式]タブ／位置

意味：

[ツリー]コントロールが定義されたタスクの[範囲/位置付]ダイアログに[位置/方法]の式が指定されている場合に発生します。


WP0236:[ビュー事前読込]特性を有効にするには、[キャッシュ範囲]特性を「位置とデータ」に設定する必要があります.

ホーム > WP0236:[ビュー事前読込]特性を有効にするには、[キャッシュ範囲]特性を「位置とデータ」に設定する必要があります.

[ビュー事前読込]特性を有効にするには、[キャッシュ範囲]特性を「位置とデータ」に設定する必要があります.

発生場所：

[プログラム]リポジトリ／タスク特性／[データ]タブ

意味：

[タスク特性]の[ビュー事前読込]特性が「Yes」に設定され、[キャッシュ範囲]特性が「P=位置とデータ」意外に設定されている場合にこのエラーが発生します。


WP0058:[プリンタ]テーブルにプリンタが定義されていません.

ホーム > WP0058:[プリンタ]テーブルにプリンタが定義されていません.

[プリンタ]テーブルにプリンタが定義されていません.

発生場所：

[プログラム]リポジトリ／[入出力ファイル]テーブル

意味：

[メディア]カラムが「G=GUI形式プリンタ」か「P=テキスト形式プリンタ」で、[プリンタ]カラムに定義されたプリンタが存在しない場合に発生します。


EP0081:テンプレートファイルがオープンできませんでした.

ホーム > EP0081:テンプレートファイルがオープンできませんでした.

テンプレートファイルがオープンできませんでした.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[ファイル名]特性

意味：

[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイルが存在しないか、（権利上の制限のために）アクセスできない場合に発生します。


WP0114:プログラムの[外部]カラムがチェックされていません.

ホーム > WP0114:プログラムの[外部]カラムがチェックされていません.

プログラムの[外部]カラムがチェックされていません.

発生場所：

[プログラム]リポジトリ

意味：

ブラウザクライアントやリッチクライアント用のプログラムの[外部]カラムがチェックされていない場合にこのエラーが発生します。


EP0122:[サブフォーム]コントロールに、プログラム番号かタスク番号を指定してください.

ホーム > EP0122:[サブフォーム]コントロールに、プログラム番号かタスク番号を指定してください.

[サブフォーム]コントロールに、プログラム番号かタスク番号を指定してください.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザクライアント形式]フォーム／HTMLコントロール／[サブフォーム]コントロール／[プログラム/タスク番号]特性

意味：

[サブフォーム]コントロールの[プログラム/タスク番号]特性にタスク／プログラムの指定がない場合に発生します。プログラム番号がメインプログラムを指定していたり、指定したプログラム番号が削除された場合も発生します。


WP0004:公開プログラム名が指定されていません.

ホーム > WP0004:公開プログラム名が指定されていません.

公開プログラム名が指定されていません.

発生場所：

[プログラム]リポジトリ／公開名

意味：

ブラウザプログラムやリッチクライアントプログラムに公開プログラム名が指定されていない場合に発生します。

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールリモート]処理コマンド／[プログラム名]

意味：

公開プログラム名（または式）が指定されていない場合に発生します。


WP0039:自動ヘルプ／ツールチップは、[ヘルプ画面]特性には設定できません.

ホーム > WP0039:自動ヘルプ／ツールチップは、[ヘルプ画面]特性には設定できません.

自動ヘルプ／ツールチップは、[ヘルプ画面]特性には設定できません.

発生場所：

[モデル]リポジトリ

[データソース]リポジトリ／[カラム]テーブル

[プログラム]リポジトリ／[フォーム]エディタ

[メニュー]リポジトリ

意味：

[ヘルプ画面]特性に指定されたヘルプが、自動ヘルプやツールチップの場合に発生します。


EP0192:[プロパティ名]が定義されていません.

ホーム > EP0192:[プロパティ名]が定義されていません.

[プロパティ名]が定義されていません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールCOM]処理コマンド／[プロパティ]特性

意味：

[コールCOM]処理コマンドの[オプション]が「S=プロパティの設定」または、「G=プロパティの取得」でプロパティが設定されていない場合に発生します。


WP0002:この公開名は既に存在しています

ホーム > WP0002:この公開名は既に存在しています

この公開名は既に存在しています

発生場所：

[モデル]リポジトリ／[公開名]カラム

[データ]リポジトリ／[公開名]カラム

[プログラム]リポジトリ／[公開名]カラム

[ヘルプ]リポジトリ／[公開名]カラム

[権利]リポジトリ／[公開名]カラム

[イベント]テーブル／[公開名]カラム

意味：

同じ公開名のオブジェクトが定義されている場合に、このエラーが発生します。


EP0118:プッシュボタンに設定されたイベントが正しくありません.

ホーム > EP0118:プッシュボタンに設定されたイベントが正しくありません.

プッシュボタンに設定されたイベントが正しくありません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[プッシュボタン]コントロール

意味：

[実行イベント]特性に無効なイベントが定義された場合にこのエラーが発生します。


WP0040:[データ]特性または、有効な[実行イベント]特性を設定してください.

ホーム > WP0040:[データ]特性または、有効な[実行イベント]特性を設定してください.

[データ]特性または、有効な[実行イベント]特性を設定してください.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[プッシュボタン]コントロール

意味：

以下の場合にこのエラーが発生します。

  • [データ]特性に項目が指定されていない。

  • [実行イベント]特性が指定されていない。


WP0095:フォーカスのあるタスクのイベントを実行するには、[パーキング可]特性を「No」に設定する必要があります.

ホーム > WP0095:フォーカスのあるタスクのイベントを実行するには、[パーキング可]特性を「No」に設定する必要があります.

フォーカスのあるタスクのイベントを実行するには、[パーキング可]特性を「No」に設定する必要があります.

発生場所： タスク/GUI表示形式フォーム/[ツリー]コントロール/[イメージファイル名]特性


WP0054:[範囲]特性の[項目]カラムに、項目を指定してください.

ホーム > WP0054:[範囲]特性の[項目]カラムに、項目を指定してください.

[範囲]特性の[項目]カラムに、項目を指定してください.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式ｆフォーム／データコントロール

意味：

データコントロールの[範囲]特性に[項目]カラムが「0」になっている行がある場合に表示されます。


EP0021:埋込SQLの出力パラメータに範囲は指定できません.

ホーム > EP0021:埋込SQLの出力パラメータに範囲は指定できません.

埋込SQLの出力パラメータに範囲は指定できません.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／[範囲]特性

意味：

[SQLコマンド]ダイアログの[出力パラメータ]欄が設定されている場合、出力パラメータとなるカラムの[範囲]特性が定義されている場合に発生します。


EP0208:スライダを使用するためには、[範囲]を指定してください

ホーム > EP0208:スライダを使用するためには、[範囲]を指定してください

スライダを使用するためには、[範囲]特性を指定してください.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[スライダ]コントロール／[範囲]特性

意味：

[スライダ]コントロールに範囲が指定されていない場合に発生します。


ET0043:指定された[範囲]特性が、項目やコントロールの書式と合っていません.

ホーム > ET0043:指定された[範囲]特性が、項目やコントロールの書式と合っていません.

指定された[選択項目リスト]特性が、項目やコントロールの書式と合っていません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／チョイスコントロール／[選択項目リスト]特性

意味：

チョイスコントロールの[選択項目リスト]特性に定義された値が、コントロールのデータ型と合っていない場合に発生します。


EP0064:BLOB項目には、範囲/位置付の指定はできません.

ホーム > EP0064:BLOB項目には、範囲/位置付の指定はできません.

BLOB項目には、範囲/位置付の指定はできません.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／項目定義

意味：

BLOB項目を定義し、以下の特性値が定義されている場合にこのエラーが発生します。

  • 範囲（最小）

  • 範囲（最大）

  • 位置付（最小）

  • 位置付（最大）


WP0115:RCフォームは、TrueTypeフォントのみサポートします.

ホーム > WP0115:RCフォームは、TrueTypeフォントのみサポートします.

RCフォームは、TrueTypeフォントのみサポートします. 異なるフォントタイプを使用した場合、実行時のフォームやコントロールのサイズや表示内容に影響が出る場合があります.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／各コントロールの[フォント]特性

意味：

[リッチクライアント形式]フォーム上のコントロールにTrueType以外のフォントが定義されている場合にこの警告が発生します。


WP0257:リッチクライアントフレームのプログラムは、並行実行できません.

ホーム > WP0257:リッチクライアントフレームのプログラムは、並行実行できません.

リッチクライアントフレームのプログラムは、並行実行できません.通常モードのプログラムとして実行されます.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[サブフォーム]コントロール／[プログラム/タスク番号]特性

意味：

[リッチクライアントフレーム形式]フォームに指定されたプログラムが、並行起動プログラムの場合にこの警告が表示されます。このプログラムを実行してもフレーム内のプログラムは、並行起動できません。


EP0240:XMLデータソースの再帰的な項目は、BLOB型で定義してください.

ホーム > EP0240:XMLデータソースの再帰的な項目は、BLOB型で定義してください.

XMLデータソースの再帰的な項目は、BLOB型で定義してください.

発生場所：

[データ]リポジトリ／XMLデータソース／ビュー

意味：

再帰的定義（要素定義内に自要素の名前が定義されている構造）のXMLデータソースの項目のデータ型がBLOB型でない場合にこのエラーが発生します。


WP0112:冗長なデータソース定義です. - このデータソースは、すでにこのタスク内で使用されています.

ホーム > WP0112:冗長なデータソース定義です. - このデータソースは、すでにこのタスク内で使用されています.

冗長なデータソース定義です. - このデータソースは、すでにこのタスク内で使用されています.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／宣言

意味：

同じタスク内のメインソースやリンクテーブルに定義されているデータソースを宣言定義している場合に、発生します。


ET0040:外部キーには、参照するテーブルを指定してください.

ホーム > ET0040:外部キーには、参照するテーブルを指定してください.

外部キーには、参照するテーブルを指定してください.

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[外部キー]テーブル

意味：

SQLテーブルで外部キーの参照テーブルが指定されていない場合に発生します。


ET0049:参照キーはユニークでなければなりません.

ホーム > ET0049:参照キーはユニークでなければなりません.

参照キーはユニークでなければなりません.

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[外部キー]テーブル

意味：

外部キーに定義された参照キーが重複可に設定されている場合に発生します。


WP0023:[繰返し行数]特性が指定されていますが、フォームに[テーブル]コントロールがありません.

ホーム > WP0023:[繰返し行数]特性が指定されていますが、フォームに[テーブル]コントロールがありません.

[繰返し行数]特性が指定されていますが、フォームに[テーブル]コントロールがありません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム

意味：

[フォーム特性の[繰り返し行数]特性に行数が指定されているにも関わらず、[テーブル]コントロールが定義されていない場合にこのエラーが発生します。


EP0179:[戻り値]には、数値型の項目を指定してください.

ホーム > EP0179:[戻り値]には、数値型の項目を指定してください.

[戻り値]には、数値型の項目を指定してください.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールCOM]処理コマンド

意味：

[コール]処理コマンドの[戻り値]特性に数値型の項目が定義されていない場合に発生します。


EP0242:リッチクライアントタスクは、リッチクライアントまたはバッチタスクのみを呼び出すことができます.

ホーム > EP0242:リッチクライアントタスクは、リッチクライアントまたはバッチタスクのみを呼び出すことができます.

リッチクライアントタスクは、リッチクライアントまたはバッチタスクのみを呼び出すことができます.

発生場所：

[データ]リポジトリ／[ロジック]エディタ／[コール]処理コマンド

[データ]リポジトリ／[フォーム]エディタ／[リッチクライアント形式]フォーム／[サブフォーム]コントロール／[プログラム/タスク番号]特性

意味：

リッチクライアントからオンラインプログラム/ブラウザクライアントを呼び出すように指定されている場合にこのエラーが発生します。


EP0260:リッチクライアントタスクには、少なくとも1つ以上の項目を定義する必要があります.

ホーム > EP0260:リッチクライアントタスクには、少なくとも1つ以上の項目を定義する必要があります.

リッチクライアントタスクには、少なくとも1つ以上の項目を定義する必要があります.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

リッチクライアントの[データビュー]エディタ内に項目が１つも定義されていない場合に、このエラーが発生します。


WP0096:[タブラベル位置]特性が、｢右｣または｢左｣の[タブ]コントロールは、[複数行]特性を｢Yes｣に設定してください.

ホーム > WP0096:[タブラベル位置]特性が、｢右｣または｢左｣の[タブ]コントロールは、[複数行]特性を｢Yes｣に設定してください.

[タブラベル位置]特性が、｢右｣または｢左｣の[タブ]コントロールは、[複数行]特性を｢Yes｣に設定してください.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[タブ]コントロール

意味：

[タブ]コントロールの[タブラベル位置]特性が｢R=右｣または｢L=左｣に設定され、[複数行]特性が｢No｣に設定されている場合に発生します。


WP0013:[RM互換]ロジックユニットは、オンラインタスクでのみサポートします.

ホーム > WP0013:[RM互換]ロジックユニットは、オンラインタスクでのみサポートします.

[RM互換]ロジックユニットは、オンラインタスクでのみサポートします.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

バッチタスクに[RM互換]ロジックユニットが定義されている場合にこのエラーが発生します。


ET0008:レコードサイズが大きすぎます.

ホーム > ET0008:レコードサイズが大きすぎます.

レコードサイズが大きすぎます.

発生場所：

[データ]リポジトリ／[カラム]テーブル

意味：

カラムサイズの合計がデータベースの制限を超えている場合に発生します。

例：

  • MS-SQL:32767

  • Pervasive：固定長サイズが 4088

  • DB2UDB:32767

  • ODBC：32767

  • Oracle：32511


ET0017:レコードサイズが正しくありません.

ホーム > ET0017:レコードサイズが正しくありません.

レコードサイズが正しくありません.

発生場所：

[データ]リポジトリ／[カラム]テーブル

意味：

カラムサイズの合計が「0」の場合に発生します。


RP0010:推奨レベルのメッセージが25以上あります.最初の25行分のみ表示されます.

ホーム > RP0010:推奨レベルのメッセージが25以上あります.最初の25行分のみ表示されます.

推奨レベルのメッセージが25以上あります.最初の25行分のみ表示されます.

発生場所：

[チェック結果]ペイン

意味：

［R=推奨］に設定されているチェックメッセージが、大量にある場合に表示されます。パフォーマンスを上げるためには、できるだけこのメッセージを減らすように工夫してください。


RP0011:この特性にサーバ側の式を定義することは推奨できません.

ホーム > RP0011:この特性にサーバ側の式を定義することは推奨できません.

この特性にサーバ側の式を定義することは推奨できません.

発生場所：

[プログラム]リポジトリ

意味：

クライアント側で処理される特性値にサーバ側で処理される式が定義されている場合に、この警告が表示されます。


EP0147:ツリーの[ルート値]、[ノードID]と[親のID]の各特性は、同じデータ型でなければなりません.

ホーム > EP0147:ツリーの[ルート値]、[ノードID]と[親のID]の各特性は、同じデータ型でなければなりません.

ツリーの[ルート値]、[ノードID]と[親のID]の各特性は、同じデータ型でなければなりません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[ツリー]コントロール

意味：

[ルート値]や[ノードID]と[親のID]の各特性に定義された項目の型が合っていない場合に発生します。


ET0036:セグメントカラムは、NULL値可に設定できません.

ホーム > ET0036:セグメントカラムは、NULL値可に設定できません.

セグメントカラムは、NULL値可に設定できません.

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[セグメント]テーブル

意味：

セグメントカラムに設定したカラムの[NULL値可]特性が｢Yes｣に設定されている場合に、このエラーが発生します。


ET0032:セグメントサイズが正しくありません.

ホーム > ET0032:セグメントサイズが正しくありません.

セグメントサイズが正しくありません.

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[セグメント]テーブル

意味：

セグメントサイズが「0」か、セグメントカラムの長さより大きい場合に発生します。


EP0137:インデックスのセグメントサイズが正しくありません.

ホーム > EP0137:インデックスのセグメントサイズが正しくありません.

インデックスのセグメントサイズが正しくありません.

発生場所：

[プログラム]リポジトリ／タスク環境／ソートテーブル

意味：

インデックスセグメントに文字項目が定義されており、サイズが 「0」か元の項目長より大きく指定された場合に発生します。

注意：

このエラーは登録時にステータスバーに表示されます。


ET0039:セグメント長をカラム長と等しくしてください.

ホーム > ET0039:セグメント長をカラム長と等しくしてください.

セグメント長をカラム長と等しくしてください.

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[セグメント]テーブル

意味：

インデックスセグメントとして定義されているカラムのサイズの値がカラムのオリジナルの長さより短い場合に、（使用するゲートウェイにより）このエラーが発生します。


ET0037:プライマリキーで使用されるセグメントカラムは、NULL値可に設定できません.

ホーム > ET0037:プライマリキーで使用されるセグメントカラムは、NULL値可に設定できません.

プライマリキーで使用されるセグメントカラムは、NULL値可に設定できません.

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[セグメント]テーブル

意味：

プライマリキーとして設定されたインデックスのセグメントカラムとして設定されたカラムの[NULL値可]特性が｢Yes｣に設定されている場合に、このエラーが発生します。


EP0237:[選択プログラム] 特性に設定されたプログラムは、並行実行プログラムではありません.

ホーム > EP0237:[選択プログラム] 特性に設定されたプログラムは、並行実行プログラムではありません.

[選択プログラム] 特性に設定されたプログラムは、並行実行プログラムではありません.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／[選択プログラム]特性

[プログラム]リポジトリ／[フォーム]エディタ／[エディット]コントロール／[選択プログラム]特性

意味：

自タスクが並行起動プログラムに設定されており、[選択プログラム]特性で指定されたプログラムが、並行起動プログラムでない場合にこのエラーが発生します。


WP0100:[コンテキストID]特性には、文字型またはUnicode型を指定してください.

ホーム > WP0100:[コンテキストID]特性には、文字型またはUnicode型を指定してください.

[コンテキストID]特性には、文字型またはUnicode型を指定してください.

発生場所：

[メニュー]リポジトリ／メニュー特性／[コンテキストID]特性

意味：

[コンテキストID]特性に文字型かUnicode型以外の項目が定義されている場合に発生します。


WP0047:選択した項目はすでにこのフォームで使用されています.

ホーム > WP0047:選択した項目はすでにこのフォームで使用されています.

選択した項目は、すでにこのフォームで使用されています.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム／[HTMLコントロール]テーブル

意味：

コントロールに割り当てられた項目が、同じフォーム内の別のコントロールに割り当てられている場合に発生します。


WP0077:サーバ実行関数はコントロール特性に指定できません.

ホーム > WP0077:サーバ実行関数はコントロール特性に指定できません.

サーバ実行関数はコントロール特性に指定できません.

発生場所：

[プログラム]リポジトリ／[ﾌｫｰﾑ]エディタ／[リッチクライアント形式]フォーム／コントロール

意味：

[リッチクライアント形式]フォーム上のコントロールの[コントロール特性]に、サーバ側で処理される関数を含む式が指定されている場合に発生します。


WP0049:サーバ側で実行される関数をフォーム上に直接定義できません

ホーム > WP0049:サーバ側で実行される関数をフォーム上に直接定義できません

サーバ側で実行される関数をフォーム上に直接定義できません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[リッチクライアント形式]フォーム

意味：

[フォーム特性]や[コントロール特性]に設定された式に、サーバ側で実行される関数が含まれている場合に発生します。

サーバ関数からの値を、一旦変数項目に格納してから使用するように検討してください。


EP0254:サーバ側のロジックユニットには、クライアント側の処理コマンドを含めることはできません.

ホーム > EP0254:サーバ側のロジックユニットには、クライアント側の処理コマンドを含めることはできません.

サーバ側のロジックユニットには、クライアント側の処理コマンドを含めることはできません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

サーバ側で実行されるロジックユニット（例:[タスク前]）にクライアント側で実行される処理が定義されている場合、このエラーが発生します。


EP0261:サーバ側のロジックユニットには、クライアント側の処理コマンドを含めることはできません.

ホーム > EP0261:サーバ側のロジックユニットには、クライアント側の処理コマンドを含めることはできません.

サーバ側のロジックユニットには、クライアント側の処理コマンドを含めることはできません.サーバ処理の後にこの処理コマンドを定義する場合、[ウェイト]特性を「No」に設定してください.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

サーバ側で実行されるロジックユニットにクライアント側で実行される処理コマンドが定義されている場合に、このエラーが発生します。


EP0210:[出力先コンテキスト]特性は、非同期の[イベント実行]処理コマンドでのみ有効です.

ホーム > EP0210:[出力先コンテキスト]特性は、非同期の[イベント実行]処理コマンドでのみ有効です.

[出力先コンテキスト]特性は、非同期の[イベント実行]処理コマンドでのみ有効です.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[イベント実行]処理コマンド／[出力先コンテキスト名]特性

意味：

[ウェイト]特性が「Yes」に設定されている[イベント実行]処理コマンドに[出力先コンテキスト]特性が設定されている場合に発生します。


WP0088:[イメージ一覧ファイル名]特性が指定されていません.

ホーム > WP0088:[イメージ一覧ファイル名]特性が指定されていません.

[イメージ一覧ファイル名]特性が指定されていません.イメージインデックスを指定する場合は必須です.

発生場所： [プログラム]リポジトリ／[フォーム]エディタ／[タブ]コントロール

意味：

[タブ]コントロールの[イメージ一覧ファイル名]特性に値が設定されていない状態で、[イメージ一覧インデックス]特性に値が設定されている場合に発生します。


ET0067:変換処理が必要です.

ホーム > ET0067:変換処理が必要です.

変換処理が必要です.

発生場所：

[データ]リポジトリ

意味：

モデルの書式が変更されたりして、データソースのカラム構成が変更された場合に発生します。


EP0009:初期モードの[式]パラメータを指定してください.

ホーム > EP0009:初期モードの[式]パラメータを指定してください.

メインソースが定義されていないため、ソートテーブルは定義できません.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

メインソースが定義されておらず、SQLタスクでない場合、[ソート]テーブルは定義できません。[ソート]テーブルに項目が定義されている場合にこのエラーが発生します。


EP0228:SQL コマンドが指定されていません.

ホーム > EP0228:SQL コマンドが指定されていません.

SQL コマンドが指定されていません.

発生場所：

[プログラム]リポジトリ／SQLコマンド

意味：

SQLに設定されていながら、[SQLコマンド]ダイアログにSQLコマンドが定義されていない場合にこのエラーが発生します。


EP0106:SQLコマンドの[出力パラメータ]特性や[戻り値]特性には式が指定できません.

ホーム > EP0106:SQLコマンドの[出力パラメータ]特性や[戻り値]特性には式が指定できません.

SQLコマンドの[出力パラメータ]特性や[戻り値]特性には式が指定できません.

発生場所：

[プログラム]リポジトリ／タスク環境／[SQLコマンド]ダイアログ

意味：

[出力パラメータ]や[戻り値]に式で値が定義されている場合にこのエラーメッセージが表示されます。


EP0152:スタイル名がすでに指定されています.

ホーム > EP0152:スタイル名がすでに指定されています.

スタイル名がすでに指定されています.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザクライアント式]フォーム／コントロール

意味：

[デフォルトスタイル]、[マウスオーバスタイル]、[マウスダウンスタイル]の各特性得からズームして表示される[スタイル]テーブルに同じ名前のスタイルが定義されている場合にこのエラーが発生します。


EP0154:スタイル名が指定されていません.

ホーム > EP0154:スタイル名が指定されていません.

スタイル名が指定されていません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザクライアント式]フォーム／コントロール

意味：

[デフォルトスタイル]、[マウスオーバスタイル]、[マウスダウンスタイル]の各特性得からズームして表示される[スタイル]テーブルに名前が定義されていない場合にこのエラーが発生します。


EP0173:サブオブジェクトは、[インスタンス化]特性を「なし」に設定にしてください.

ホーム > EP0173:サブオブジェクトは、[インスタンス化]特性を「なし」に設定にしてください.

サブオブジェクトは、[インスタンス化]特性を「N=なし」に設定にしてください.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

ActiveX型/OLE型のデータ項目の[サブオブジェクト]特性が定義された状態で、[インスタンス]特性が「A=自動」に設定されている場合に発生します。


EP0227:[サブフォーム]コントロールは、ロジックユニットによって処理できません.

ホーム > EP0227:[サブフォーム]コントロールは、ロジックユニットによって処理できません.

[サブフォーム]コントロールは、ロジックユニットによって処理できません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

[イベント]ロジックユニットや[コントロール]ロジックユニットに[サブフォーム]コントロールのコントロール名が指定された場合にこのエラーが発生します。


EP0267:GUI表示フォームのサブフォームコントロールは、オンラインタスクでのみ有効です.

ホーム > EP0267:GUI表示フォームのサブフォームコントロールは、オンラインタスクでのみ有効です.

GUI表示フォームのサブフォームコントロールは、オンラインタスクでのみ有効です.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示表示形式]フォーム／[サブフォーム]コントロール／[プログラム/タスク番号]特性

意味：

オンラインタスクの表示フォームに定義された[サブフォーム]コントロールに、リッチクライアントやブラウザクライアントタスクが設定されている場合に、このエラーが発生します。


EP0268:リッチクライアント表示フォームのサブフォームコントロールは、リッチクライアントタスクでのみ有効です.

ホーム > EP0268:リッチクライアント表示フォームのサブフォームコントロールは、リッチクライアントタスクでのみ有効です.

リッチクライアント表示フォームのサブフォームコントロールは、リッチクライアントタスクでのみ有効です.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[リッチクライアント表示表示形式]フォーム／[サブフォーム]コントロール／[プログラム/タスク番号]特性

意味：

リッチクライアントタスクの表示フォームに定義された[サブフォーム]コントロールに、オンラインやブラウザクライアントタスクが設定されている場合に、このエラーが発生します。


WP0113:[サブフォーム]コントロールは、[RM互換]ロジックユニットを持ったタスクではサポートされません.

ホーム > WP0113:[サブフォーム]コントロールは、[RM互換]ロジックユニットを持ったタスクではサポートされません.

[サブフォーム]コントロールは、[RM互換]ロジックユニットを持ったタスクではサポートされません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ

意味：

[RM互換]ロジックユニットが定義されているタスクのメインフォームに[サブフォーム]コントロールが配置されている場合に発生します。サブフォームは表示されますが、カーソルは移動しません。


EP0265:ブラウザモデルのサブフォームコントロールは、ブラウザタスクでのみ有効です.

ホーム > EP0265:ブラウザモデルのサブフォームコントロールは、ブラウザタスクでのみ有効です.

ブラウザモデルのサブフォームコントロールは、ブラウザタスクでのみ有効です.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ表示形式]フォーム／[サブフォーム]コントロール／[モデル]特性

意味：

オンラインタスクやリッチクライアントの表示フォームに定義された[サブフォーム]コントロールに、[ブラウザ表示形式]クラスのサブフォームモデルが設定されている場合に、このエラーが発生します。


EP0263:GUI表示モデルのサブフォームコントロールは、オンラインタスクでのみ有効です.

ホーム > EP0263:GUI表示モデルのサブフォームコントロールは、オンラインタスクでのみ有効です.

GUI表示モデルのサブフォームコントロールは、オンラインタスクでのみ有効です.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[リッチクライアント形式]フォーム／[サブフォーム]コントロール／[モデル]特性

意味：

リッチクライアントタスクやブラウザクライアントの表示フォームに定義された[サブフォーム]コントロールに、[GUI表示形式]クラスのサブフォームモデルが設定されている場合に、このエラーが発生します。


EP0264:リッチクライアントモデルのサブフォームコントロールは、リッチクライアントタスクでのみ有効です.

ホーム > EP0264:リッチクライアントモデルのサブフォームコントロールは、リッチクライアントタスクでのみ有効です.

リッチクライアントモデルのサブフォームコントロールは、リッチクライアントタスクでのみ有効です.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[サブフォーム]コントロール／[モデル]特性

意味：

オンラインタスクやブラウザクライアントの表示フォームに定義された[サブフォーム]コントロールに、[リッチクライアント表示形式]クラスのサブフォームモデルが設定されている場合に、このエラーが発生します。


EP0239:サブフォームには、並行プログラムを指定できません.

ホーム > EP0239:サブフォームには、並行プログラムを指定できません.

サブフォームには、並行実行プログラムを指定できません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[サブフォーム]コントロール／[プログラム/タスク番号]特性

意味：

[サブフォーム]コントロールに指定されたプログラムが、並行起動プログラムの場合にのエラーが発生します。


WP0255:サブフォームには、並行実行プログラムを指定できません.

ホーム > WP0255:サブフォームには、並行実行プログラムを指定できません.

サブフォームには、並行実行プログラムを指定できません.プログラムは単一スレッドで実行されます.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[サブフォーム]コントロール／[プログラム/タスク番号]特性

意味：

[サブフォーム]コントロールに指定されたプログラムが、並行起動プログラムの場合にこのエラーが発生します。


WP0083:[同期]特性は、物理トランザクションモードでは無視されます.

ホーム > WP0083:[同期]特性は、物理トランザクションモードでは無視されます.

[同期]特性は、物理トランザクションモードでは無視されます.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コール]処理コマンド／[同期]特性

意味：

[タスク特性]の[トランザクションモード]特性が「P=物理」に設定されたタスクに定義された[コール]処理コマンドで、[同期]特性が「Yes」に設定されている場合に発生します。


ET0013:BLOBのみのデータソースは作成できません.

ホーム > ET0013:BLOBのみのデータソースは作成できません.

BLOBのみのデータソースは作成できません.

発生場所：

[データ]リポジトリ／[カラム]テーブル

意味：

データソースのカラムが全てBLOB項目の場合にこのエラーが発生します。


ET0005:SQLテーブルには、DBテーブル名が必須です.

ホーム > ET0005:SQLテーブルには、DBテーブル名が必須です.

SQLテーブルには、DBテーブル名が必須です.

発生場所：

[データ]リポジトリ／[カラム]テーブル／[DBカラム名]特性

意味：

SQLテーブルにアクセスする場合には、カラムに[DBカラム名データソース名]にデータベーステーブル名を定義する必要があります。この設定がありません。


ET0015:DBテーブル名が長すぎます

ホーム > ET0015:DBテーブル名が長すぎます

DBテーブル名が長すぎます

発生場所：

[データ]リポジトリ／[データソース]カラム

意味：

ファイル名の長さが、データベースで定義されるものより大きい場合にこのエラーが発生します。

iSeriesの場合は、ファイル名が10桁を超えた場合に発生します。

SQLテーブルで定義されたDBテーブル名がDBMSの制限を超えた場合に発生します。


EP0012:結合リンクで使用するデータソースは、常駐できません.

ホーム > EP0012:結合リンクで使用するデータソースは、常駐できません.

結合リンクで使用するデータソースは、常駐できません.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／リンク／データソース

意味：

結合リンクしたデータソースが常駐テーブルになっている場合に発生します。

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／リンク／メインソース

意味：

メインソースが常駐テーブルのタスクで、結合リンクを行っている場合に発生します。


EP0273:タスクフォームには、1つのフレームのみ定義できます.

ホーム > EP0273:タスクフォームには、1つのフレームのみ定義できます.

タスクフォームには、1つのフレームのみ定義できます.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ

意味：

1つのタスク内に「リッチクライアントフレーム形式」フォームが複数定義されている場合にこのエラーが発生します。タスクには、1つのフレームフォームしか定義できません。


EP0143:このタスクタイプは指定できません

ホーム > EP0143:このタスクタイプは指定できません

このタスクタイプは指定できません.

発生場所：

[プログラム]リポジトリ／タスク特性／[タスクタイプ]特性

意味：

オンラインタスクのサブタスクにブラウザタスクが定義されていたり、ブラウザタスクのサブタスクとしてオンラインタスクが定義されている場合にこのエラーが発生します。


ET0075:[データベース]特性に指定された、一時データベースが存在していません.

ホーム > ET0075:[データベース]特性に指定された、一時データベースが存在していません.

[データベース]特性に指定された、一時データベースが存在していません.

発生場所：

[データ]リポジトリ／[データベース]カラム

意味：

[データベース]カラムに設定されたXMLデータベースは、[データベース]テーブルに定義されています。このXMLデータベースの[データベース]特性の[一時データベース]特性に設定されているデータベースが[データベース]テーブルに定義されていない場合にこのエラーが発生します。


EP0084:テンプレートファイルエラー:トークン後付符号がありません.

ホーム > EP0084:テンプレートファイルエラー:トークン後付符号がありません.

テンプレートファイルエラー:トークン後付符号がありません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[トークン後付符号]特性

意味：

[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイルに定義されたトークンの後付符号が[トークン後付符号]特性に設定された値と合っていないか、[トークン後付符号]特性に値が設定されていない場合に発生します。


EP0086:テンプレートファイルエラー:IF や REPEAT タグの間に矛盾があります.

ホーム > EP0086:テンプレートファイルエラー:IF や REPEAT タグの間に矛盾があります.

テンプレートファイルエラー:IF や REPEAT タグの間に矛盾があります.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[ファイル名]特性／テンプレートファイル

意味：

[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイルの「MGIF」タグと「MGENDIF」タグ、「MGREPEAT」タグと「MGENDREPEAT」タグの組み合わせが合っていない場合に発生します。


EP0076:テンプレートファイルエラー:ELSE が重複しています.

ホーム > EP0076:テンプレートファイルエラー:ELSE が重複しています.

テンプレートファイルエラー:ELSE が重複しています.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[ファイル名]特性／テンプレートファイル

意味：

[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイルの 「MGELSE」トークンが重複して定義されている場合に発生します。


EP0079:テンプレートファイルエラー:IF-ELSE のタグに不整合があります.

ホーム > EP0079:テンプレートファイルエラー:IF-ELSE のタグに不整合があります.

テンプレートファイルエラー:IF-ELSE のタグに不整合があります.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[ファイル名]特性／テンプレートファイル

意味：

[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイルに｢MGELSE｣タグが定義されているにもかかわらず、「MGIF」タグや「MGENDIF」タグのどちらか（または両方）が定義されていない場合に発生します。


EP0080:テンプレートファイルエラー:IF-ENDIF のタグに不整合があります.

ホーム > EP0080:テンプレートファイルエラー:IF-ENDIF のタグに不整合があります.

テンプレートファイルエラー:IF-ENDIF のタグに不整合があります.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[ファイル名]特性／テンプレートファイル

意味：

[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイルの「MGENDIF」タグに対応する「MGIF」タグが定義されていない場合に発生します。


EP0082:テンプレートファイルエラー:IF-ENDIF のタグに不整合があります.

ホーム > EP0082:テンプレートファイルエラー:IF-ENDIF のタグに不整合があります.

テンプレートファイルエラー:IF-ENDIF のタグに不整合があります.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[ファイル名]特性／テンプレートファイル

意味：

[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイルの「MGIF」タグに対応する「MGENDIF」タグが定義されていない場合に発生します。


EP0085:テンプレートファイルエラー:REPEAT-ENDREPEATのタグに不整合があります.

ホーム > EP0085:テンプレートファイルエラー:REPEAT-ENDREPEATのタグに不整合があります.

テンプレートファイルエラー:REPEAT-ENDREPEATのタグに不整合があります.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[ファイル名]特性／テンプレートファイル

意味：

[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイルの「MGREPEAT」タグとこれに対応する「MGENDREPEAT」タグが対になって定義されていない場合に発生します。


EP0083:テンプレートファイルエラー:REPEAT-ENDREPEATの間に他のタグが必要です.

ホーム > EP0083:テンプレートファイルエラー:REPEAT-ENDREPEATの間に他のタグが必要です.

テンプレートファイルエラー:REPEAT-ENDREPEATの間に他のタグが必要です.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[ファイル名]特性／テンプレートファイル

意味：

[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイルの「MGREPEAT」タグと「MGENDREPEAT」タグの間に他のマージタグが定義されていない場合に発生します。


EP0087:テンプレートファイルエラー:トークンが大きすぎます.

ホーム > EP0087:テンプレートファイルエラー:トークンが大きすぎます.

テンプレートファイルエラー:トークンが大きすぎます.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[ファイル名]特性／テンプレートファイル

意味：

[マージ形式]フォームの[ファイル名]特性で指定されたテンプレートファイル内のトークン名（デフォルト：<!$MG_XXXX>の｢XXXX｣）の長さが31バイト以上の場合に発生します。


EP0093:@ コマンドは値として表示される文字型/Unicode型の項目しか使用できません.

ホーム > EP0093:@ コマンドは値として表示される文字型/Unicode型の項目しか使用できません.

@ コマンドは値として表示される文字型/Unicode型の項目しか使用できません.

発生場所：

[プログラム]リポジトリ／タスク環境／範囲/位置付／DB SQL

意味：

［DB SQL］で、文字型/Unicode型以外のカラムに @コマンドを指定した場合に、このエラーメッセージが表示されます。


WP0092:SDIプログラムでは、[開始時の位置]特性を「MDIの中央」に設定することはできません.

ホーム > WP0092:SDIプログラムでは、[開始時の位置]特性を「MDIの中央」に設定することはできません.

SDIプログラムでは、[開始時の位置]特性を「MDIの中央」に設定することはできません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[開始時の位置]特性

意味：

[ウィンドウタイプ]特性が「S=SDI」に設定され、[開始時の位置]特性が「M=MDIの中央」に設定されている場合に発生します。


CVSクライアントのインストールが不完全です.

ホーム > CVSクライアントのインストールが不完全です.

CVSクライアントのインストールが不完全です.もう一度インストールし直してください.

発生場所：

Magic xpa起動時

意味：

CVSクライアントをインストールしたにも関わらず、Magic xpaのインストール先にcvs_clientサブフォルダが存在しない場合に発生します。このフォルダ内には、CVS関係のファイルを置く必要があります。


ET0045:Datetimeフィールドの日付と時刻の組み合わせは互いに相対していなければなりません.

ホーム > ET0045:Datetimeフィールドの日付と時刻の組み合わせは互いに相対していなければなりません.

Datetimeフィールドの日付と時刻の組み合わせは互いに相対していなければなりません.

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[カラム]テーブル／[Datetimeの一部]特性

意味：

Datetimeフィールドに対応する日付型と時刻型の項目の[Datetimeの一部]特性に、互いの項目が指定されていない場合に発生します。


WT0011:[デフォルト値]特性が列の長さより長くなっています.

ホーム > WT0011:[デフォルト値]特性が列の長さより長くなっています.

[デフォルト値]特性が列の長さより長くなっています.

発生場所：

[モデル]リポジトリ／[項目特性]

[データ]リポジトリ／[カラム]テーブル／[項目特性]

[プログラム]リポジトリ／[データビュー]エディタ／[項目特性]

意味：

[デフォルト値]特性に指定された値のデータ長が、[書式]特性で指定された長さより長い場合に発生します。


EP0028:指定されたフォームは空です.

ホーム > EP0028:指定されたフォームは空です.

指定されたフォームは空です.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[フォーム入力]処理コマンド／[入出力フォーム]特性

意味：

入力フォーム上にコントロールが一つも配置されていない場合に発生します。


EP0276:フレームのレイアウトが定義されていません.

ホーム > EP0276:フレームのレイアウトが定義されていません.

フレームのレイアウトが定義されていません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[リッチクライアントフレーム形式]フォーム

意味：

実行するOSコマンドが指定されていない場合に、このエラーが発生します。


EP0030:結合リンクでは、重複不可インデックスしか使用できません.

ホーム > EP0030:結合リンクでは、重複不可インデックスしか使用できません.

結合リンクでは、重複不可インデックスしか使用できません.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／リンク／インデックス

意味：

結合リンクにインデックスが定義されていないか、重複可のインデックスが指定されている場合に発生します。


WP0084:[選択項目リスト]特性が指定されていません.

ホーム > WP0084:[選択項目リスト]特性が指定されていません.

[選択項目リスト]特性が指定されていません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／チョイスコントロール／[選択項目リスト]特性

意味：

[選択表示リスト]特性が指定されているが、[選択項目リスト]特性が指定されていない場合に発生します。


WT0012:[NULL計算値]特性がカラム長より長くなっています.

ホーム > WT0012:[NULL計算値]特性がカラム長より長くなっています.

[NULL計算値]特性がカラム長より長くなっています.

発生場所：

[モデル]リポジトリ／[項目特性]

[データ]リポジトリ／[カラム]テーブル／[項目特性]

[プログラム]リポジトリ／[データビュー]エディタ／[項目特性]

意味：

[NULL計算値]特性に指定された値のデータ長が、[書式]特性で指定された長さより長い場合に発生します。


WP0238:メインソースが定義されていない場合、[ビュー事前読込]特性は無効になります.

ホーム > WP0238:メインソースが定義されていない場合、[ビュー事前読込]特性は無効になります.

メインソースが定義されていない場合、[ビュー事前読込]特性は無効になります.

発生場所：

[プログラム]リポジトリ／タスク特性／[データ]タブ

意味：

メインソースが定義されていないタスクの[タスク特性]の[ビュー事前読込]特性が「Yes」に設定されている場合にこのエラーが発生します。


ET0050:プライマリキーのセグメントと現在のテーブルのカラムが合っていません.

ホーム > ET0050:プライマリキーのセグメントと現在のテーブルのカラムが合っていません.

プライマリキーのセグメントと現在のテーブルのカラムが合っていません.

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[外部キー]テーブル

意味：

外部キーと参照キーのセグメントの数が異なる場合に発生します。


EM0006:起動されるプログラムは、新しいセッションで実行されません. [コンテキストID]の指定は不要です.

ホーム > EM0006:起動されるプログラムは、新しいセッションで実行されません. [コンテキストID]の指定は不要です.

起動されるプログラムは、新しいセッションで実行されません. [コンテキストID]の指定は不要です.

発生場所：

[メニュー]リポジトリ／メニュー特性／[コンテキストID]特性

意味：

[並行起動]特性が「No」に設定されているプログラム対して[コンテキストID]特性が設定されている場合に発生します。


WP0098:復帰モードは、このロジックユニットでは指定できません.

ホーム > WP0098:復帰モードは、このロジックユニットでは指定できません.

復帰モードは、このロジックユニットでは指定できません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[エラー処理]コマンド／[モード]特性

意味：

以下のロジックユニットで、[エラー]処理コマンドの[モード]特性が｢R=復帰｣に設定されている場合発生します。

  • レコードレベル

  • タスクレベル

  • 項目レベル


WP0101:選択された[ウィンドウタイプ]特性は、メインプログラムでは指定できません.

ホーム > WP0101:選択された[ウィンドウタイプ]特性は、メインプログラムでは指定できません.

選択された[ウィンドウタイプ]特性は、メインプログラムでは指定できません.

発生場所：

[プログラム]リポジトリ／メインプログラム／[フォーム]エディタ／[GUI表示形式]フォーム／[ウィンドウタイプ]特性

意味：

メインプログラムのメインフォームの[ウィンドウタイプ]特性が以下の設定の場合に発生します。

  • C=子ウィンドウ

  • P=分割子ウィンドウ

  • M=モーダル

  • A=アプリケーションモーダル


WP0239:[クリックでパーク]特性が「No」に設定された場合、コントロールをクリックしても選択プログラムは起動されません.

ホーム > WP0239:[クリックでパーク]特性が「No」に設定された場合、コントロールをクリックしても選択プログラムは起動されません.

[クリックでパーク]特性が「No」に設定された場合、コントロールをクリックしても選択プログラムは起動されません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム／[プッシュボタン]コントロール

意味：

[プッシュボタン]コントロールの[クリックでパーク]特性が「No」に設定されていて、[選択プログラム]特性にプログラムが設定されている場合にこのエラーが発生します。


WP0259:プログラムファイルのサイズは、nnnMBです.

ホーム > WP0259:プログラムファイルのサイズは、nnnMBです.

プログラムファイルのサイズは、nnnMBです.プログラムの読み込みに時間がかかるかもしれません.

発生場所：

[プログラム]リポジトリ

意味：

プログラムのXMLファイル上のサイズがSpecialProgXMLSizeWarningで指定された値を超えた場合にこの警告が表示されます。


ET0066:時刻セグメントは、日付セグメントに対応するカラムではありません.

ホーム > ET0066:時刻セグメントは、日付セグメントに対応するカラムではありません.

時刻セグメントは、日付セグメントに対応するカラムではありません.

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[セグメント]テーブル

意味：

Datetimeフィールドの日付カラムをインデックスセグメントにした場合に、異なるDatetimeフィールドの時刻カラムがインデックスセグメントとして定義されている場合に発生します。


EP0062:[トランザクション開始]特性と[ロック方式]特性に矛盾があります.

ホーム > EP0062:[トランザクション開始]特性と[ロック方式]特性に矛盾があります.

[トランザクション開始]特性と[ロック方式]特性に矛盾があります.

発生場所：

[プログラム]リポジトリ／タスク環境／タスク特性／[データ]タブ

意味：

以下の場合にこのエラーが発生します。

  • [トランザクション開始]特性が「レコード更新前」に設定されて、[ロック方式]が「即時」か、「更新時」の場合

  • [トランザクション開始]特性が「なし」に設定されて、[ロック方式]が「なし」の場合


EP0063:[トランザクションモード]特性と[ロック方式]特性に矛盾があります.

ホーム > EP0063:[トランザクションモード]特性と[ロック方式]特性に矛盾があります.

[トランザクションモード]特性と[ロック方式]特性に矛盾があります.

発生場所：

[プログラム]リポジトリ／タスク環境／タスク特性／[データ]タブ

意味：

[トランザクションモード]特性が「遅延」に設定されて、[ロック方式]が「即時」か、「修正後」、「更新前」の場合にこのエラーが発生します。


EP0262:このイベントは、サポートされていません.

ホーム > EP0262:このイベントは、サポートされていません.

このイベントは、はサポートされていません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[プッシュボタン]コントロール／[実行イベント]特性

[メニュー]リポジトリ／[メニュー定義]テーブル

意味：

指定されたイベントがサポートされない場合にこのエラーが発生します。


EP0247:この式はタスクの初期設定時に評価されるため、クライアント側で実行される処理を含めることができません.

ホーム > EP0247:この式はタスクの初期設定時に評価されるため、クライアント側で実行される処理を含めることができません.

この式はタスクの初期設定時に評価されるため、クライアント側で実行される処理を含めることができません.

発生場所：

[データ]リポジトリ／[式]エディタ

意味：

[タスク前]は、サーバ側で実行されます。このため、[タスク前]ロジックユニットに定義された式にクライアント側で実行される処理が含まれている場合、このエラーが発生します。


RP0003:このフォームは、見出しを持っていません.

ホーム > RP0003:このフォームは、見出しを持っていません.

このフォームには、フォーム名が定義されていません.Windowsメニューには、フォーム名が表示されません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[フォーム名]特性

意味：

フォーム名が設定されていない場合に発生します。


EP0241:この処理コマンドは、リッチクライアントタスクではサポートされません.

ホーム > EP0241:この処理コマンドは、リッチクライアントタスクではサポートされません.

この処理コマンドは、リッチクライアントタスクではサポートされません.

発生場所：

[データ]リポジトリ／[ロジック]エディタ

意味：

リッチクライアントで指定できない処理コマンドが定義されている場合にこのエラーが発生します。指定できない処理コマンドの左側に「E」と表示されます。


EP0249:この特性はクライアントとサーバの両方で評価されるため、「クライアント側のみ」または、「サーバ側のみ」の式に含めることはできません.

ホーム > EP0249:この特性はクライアントとサーバの両方で評価されるため、「クライアント側のみ」または、「サーバ側のみ」の式に含めることはできません.

この特性はクライアントとサーバの両方で評価されるため、「クライアント側のみ」または、「サーバ側のみ」の式に含めることはできません.

発生場所：

[プログラム]リポジトリ

意味：

クライアント側とサーバ側の両方で評価される特性値に、どちらかでのみ実行される式が設定されている場合、このエラーが発生します。


EP0248:この特性はクライアントで評価されるため、サーバ側で実行される処理を式に含めることができません.

ホーム > EP0248:この特性はクライアントで評価されるため、サーバ側で実行される処理を式に含めることができません.

この特性はクライアントで評価されるため、サーバ側で実行される処理を式に含めることができません.

発生場所：

[プログラム]リポジトリ

意味：

クライアント側で評価される特性値に、サーバ側で実行される式が設定されている場合、このエラーが発生します。


EM0003:このベクトルは、再帰ベクトル定義の一部になっています.

ホーム > EM0003:このベクトルは、再帰ベクトル定義の一部になっています.

このベクトルは、再帰ベクトル定義の一部になっています.

発生場所：

[モデル]リポジトリ／[セルモデル]特性

意味：

ベクトル型の項目モデルの[セルモデル]特性が再帰定義（自分自身を指定している）されている場合に発生します。再帰定義はサポートされていません。


EP0075:トークン前付符号とトークン後付符号は異なっていなければなりません.

ホーム > EP0075:トークン前付符号とトークン後付符号は異なっていなければなりません.

[トークン前付符号]と[トークン後付符号]は異なっていなければなりません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[トークン前付符号]特性

意味：

[マージ形式]フォームの[トークン前付符号]（式）特性の指定値と[トークン後付符号]（式）特性が同じ場合や、[HTMLファイル]特性にファイル名が指定されていない場合に発生します。


EP0073:トークン前付符号を入力してください.

ホーム > EP0073:トークン前付符号を入力してください.

[トークン前付符号]を入力してください.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[タグテーブル]特性

意味：

[マージ形式]フォームの[トークン前付符号]（式）特性が指定されていない場合に発生します。


EP0074:トークン後付符号を入力してください.

ホーム > EP0074:トークン後付符号を入力してください.

[トークン後付符号]を入力してください.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[マージ形式]フォーム／[タグテーブル]特性

意味：

[マージ形式]フォームの[トークン後付符号]（式）特性が指定されていない場合に発生します。


ET0006:カラム数が多すぎます

ホーム > ET0006:カラム数が多すぎます

カラム数が多すぎます

発生場所：

[データ]リポジトリ／[カラム]テーブル

意味：

データソースに定義されたカラムの数がデータベースゲートウェイの制限を超えた場合に発生します。

例：

  • Oracle: 1000

  • DB2/400: 8000

  • MS-SQL Server7: 1024

  • ODBC: 500


ET0027:セグメント数が多すぎます.

ホーム > ET0027:セグメント数が多すぎます.

セグメント数が多すぎます.

発生場所：

[データ]リポジトリ／[インデックス]テーブル／[インデックス]特性／[SQL]カラム

意味：

[DBインデックス名]特性の長さが、使用するDBMSの制限を超えた場合に発生します。


ET0007:インデックス数が限界を超えています

ホーム > ET0007:インデックス数が限界を超えています

インデックス数が限界を超えています

発生場所：

[データ]リポジトリ／[インデックス]テーブル

意味：

インデックスの数がデータベースゲートウェイの制限を超えた場合に発生します。

例：

  • Oracle 8: 255

  • MS-SQL Server7: 249

  • ODBC: 254

  • DB2/400: 32767


EP0192:パラメータが多すぎます.

ホーム > EP0192:パラメータが多すぎます.

パラメータが多すぎます.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[関数]ロジックユニット

意味：

ユーザ定義関数に定義可能なパラメータ項目の最大値は30です。これを越えるとこのエラーが発生します。


ET0014:セグメント数が限界を超えています.

ホーム > ET0014:セグメント数が限界を超えています.

セグメント数が限界を超えています.

発生場所：

[データ]リポジトリ／[インデックス]テーブル

意味：

セグメントの数がデータベーステーブルに定義された値より大きい場合に発生します。

インデックスのセグメントの合計値がデータベース内のインデックスの数より大きい場合に発生します。（例：DB2 UDB: 120）

インデックスのセグメントの合計値がデータベースゲートウェイの最大値を超えた場合に発生します。

特定のインデックスのセグメント長がデータベースゲートウェイの最大値を超えた場合に発生します。


EP0060:[ツリー]コントロールは、オンラインタスクでのみ有効です.

ホーム > EP0060:[ツリー]コントロールは、オンラインタスクでのみ有効です.

[ツリー]コントロールは、オンラインタスクでのみ有効です.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ツリー]コントロール

意味：

バッチタスクの[GUI表示]フォームに[ツリー]コントロールが配置されている場合に発生します。


EP0185:PCにタイプライブラリが登録されていません.

ホーム > EP0185:PCにタイプライブラリが登録されていません.

PCにタイプライブラリが登録されていません.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

ActiveX型/OLE型のデータ項目の[タイプライブラリ]特性に定義されているライブラリがPCに登録されていない場合に発生します。


EP0203:タイプライブラリを指定してください.

ホーム > EP0203:タイプライブラリを指定してください.

タイプライブラリを指定してください.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ

意味：

ActiveX型/OLE型のデータ項目の[タイプライブラリ]特性が定義されていない場合に発生します。


EP0141:型が合っていません.

ホーム > EP0141:型が合っていません.

型が合っていません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／データコントロール／[範囲]特性

意味：

データコントロールの[範囲]特性に定義された項目と[開始]／[終了]カラムに定義された式のデータ型が合わない場合にこのエラーが発生します。

発生場所：

[プログラム]リポジトリ／SQLコマンド／戻り値

[プログラム]リポジトリ／[条件]特性

意味：

指定した項目のデータ型が論理型でない場合に発生します。

発生場所：

[プログラム]リポジトリ／[入出力ファイル]テーブル／[式/項目]カラム

意味：

指定された式の戻り値が合わない場合に発生します。


EP0217:パラメータの型が合っていません.

ホーム > EP0217:パラメータの型が合っていません.

パラメータの型が合っていません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コール]処理コマンド

[プログラム]リポジトリ／[フォーム]エディタ／[サブフォーム]コントロール／[パラメータ]特性

意味：

パラメータや戻り値のデータ型が起動先の定義内容と合っていない場合にこのエラーが発生します。


EP0023:型が合っていません.－項目は、文字型でなければなりません.

ホーム > EP0023:型が合っていません.－項目は、文字型でなければなりません.

型が合っていません.－項目は、文字型でなければなりません.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[コールリモート]処理コマンド／[メッセージID]特性

意味：

[コールリモート]処理コマンドの[メッセージID]特性に定義された項目の型が文字型でない場合に発生します。


WP0001:URLを入力してください.

ホーム > WP0001:URLを入力してください.

URLを入力してください.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ形式]フォーム／[HTMLコントロール]テーブル／ハイパーテキスト／[ハイパーリンク]特性

[プログラム]リポジトリ／タスク環境／タスク特性／[終了時URL]特性

意味：

リンク先のURLが指定されていない場合に発生します。


WP0043:URLヘルプは、ブラウザフォームまたはそのコントロール以外で指定できません

ホーム > WP0043:URLヘルプは、ブラウザフォームまたはそのコントロール以外で指定できません

URLヘルプは、ブラウザフォームまたはそのコントロール以外で指定できません

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[GUI表示形式]フォーム

意味：

[GUI表示形式]フォームやフォーム上のコントロールにURLヘルプが定義された場合に発生します。


EP0211:[出力先コンテキスト]特性は、メインプログラムのユーザイベントが指定された場合のみ有効です.

ホーム > EP0211:[出力先コンテキスト]特性は、メインプログラムのユーザイベントが指定された場合のみ有効です.

[出力先コンテキスト]特性は、メインプログラムのユーザイベントが指定された場合のみ有効です.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[イベント実行]処理コマンド／[出力先コンテキスト名]特性

意味：

[イベント実行]処理コマンドに自タスクで定義されたユーザイベントを指定し、[出力先コンテキスト]特性が設定されている場合に発生します。設定できるユーザイベントは、メインプログラムで定義されたものだけです。


WP0063:式が正しくありません.

ホーム > WP0063:式が正しくありません.

式が正しくありません.定義式には、ブラウザプログラムでしか使用できない関数が含まれています.

発生場所：

[プログラム]リポジトリ／[式]エディタ

意味：

メインプログラム以外のオンライン／バッチタスクにブラウザタスクでしか使用できない関数が定義されている場合に発生します。現在、以下の 2つ関数が該当します。

  • CallOBJ

  • CallJS


EP0209:[イベント]特性には、文字列が返る式で指定してください.

ホーム > EP0209:[イベント]特性には、文字列が返る式で指定してください.

[イベント]特性には、文字列が返る式で指定してください.

発生場所：

[プログラム]リポジトリ／[ロジック]エディタ／[イベント実行]処理コマンド／[イベント]特性

意味：

[イベント]特性に、文字列で評価される式が指定されていない場合に発生します。

注意：

このエラーは登録時にもステータスバーに表示されます。


EP0218:XMLソースに関連付けられる項目は、BLOB型でなければなりません.

ホーム > EP0218:XMLソースに関連付けられる項目は、BLOB型でなければなりません.

XMLソースに関連付けられる項目は、BLOB型でなければなりません.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／[メインソース特性]／[XMLソース項目]特性

[プログラム]リポジトリ／[データビュー]エディタ／[リンク]特性／[XMLソース項目]特性

意味：

[XMLソース項目]特性に、BLOB型以外の項目が設定された場合にこのエラーが発生します。


WP0044:同じ項目は１つしか指定できません.

ホーム > WP0044:同じ項目は１つしか指定できません.

同じ項目は１つしか指定できません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ

意味：

同じフォーム上の複数のコントロールに同一項目が割り当てられている場合に発生します。


EP0115:式の値と型が一致していません.

ホーム > EP0115:式の値と型が一致していません.

式の値と型が一致していません.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／各コントロール

意味：

コントロールの[型]特性が[データ（式）]特性の型と合っていない場合に発生します。


ET0010:インデックスが定義されていません

ホーム > ET0010:インデックスが定義されていません

インデックスが定義されていません

発生場所：

[データ]リポジトリ／[インデックス]テーブル

意味：

  • SQLテーブルの場合：テーブルにインデックスが定義されていない場合に発生します。

  • ISAMテーブルの場合：インデックスセグメントの項目長が「0」の場合に発生します。


EP0006:[スライダ]コントロールでは、連続する値を[範囲]に指定してください.

ホーム > EP0006:[スライダ]コントロールでは、連続する値を[範囲]に指定してください.

[スライダ]コントロールでは、連続する値を[範囲]に指定してください.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[スライダ]コントロール／[範囲]特性

意味：

[スライダ]コントロールの[範囲]特性に設定された値が、範囲指定（N-M）になっていない場合に発生します。


WP0045:このコントロールに対して、使用できない項目です

ホーム > WP0045:このコントロールに対して、使用できない項目です

このコントロールに対して、使用できない項目です

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／各コントロール／[データ]特性

意味：

以下のコントロールに対して定義された項目が正しない場合にこのエラーが発生します。

  • プッシュボタン …… 文字型/Unicode型項目以外が定義された場合

  • スライダ …… 数値型項目以外が定義された場合

  • チェックボックス …… 論理型項目以外が定義された場合

  • エディット …… BLOB型項目が定義された場合

  • サブフォーム …… 文字型/Unicode型項目以外が定義された場合

  • リッチエディット …… BLOB型項目以外が定義された場合

  • OLE …… BLOB型項目以外が定義された場合.

  • イメージ …… 文字型/Unicode型またはBLOB型項目以外が定義された場合

  • ツリー …… 文字、Unicode、数値、日付、時刻の各型の項目以外が定義された場合

  • チョイス …… 文字、/Unicode、数値、日付、時刻、論理の各型の項目以外が定義された場合


EP0184:入出力用の項目には、BLOB型で定義してください.

ホーム > EP0184:入出力用の項目には、BLOB型で定義してください.

入出力用の項目には、BLOB型で定義してください.

発生場所：

[プログラム]リポジトリ／[入出力ファイル]テーブル／[式/項目]

意味：

[メディア]カラムが「V=項目」と設定された入出力ファイルの[式/項目]カラムにBLOBが対外の項目が設定されている場合に発生します。


EP0034:結合リンクで参照する項目は、同じ型でなくてはなりません.

ホーム > EP0034:結合リンクで参照する項目は、同じ型でなくてはなりません.

結合リンクで参照する項目は、同じ記憶形式でなくてはなりません.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／リンク

意味：

[結合リンク]／[外部結合リンク]によって定義された項目の[位置付]（最小／最大）特性の指定値の記憶形式が合っていない場合に発生します。


EP0033:外部結合リンクの[位置付]特性に設定する項目は、[リンク]コマンドより前に定義しなくてはなりません.

ホーム > EP0033:外部結合リンクの[位置付]特性に設定する項目は、[リンク]コマンドより前に定義しなくてはなりません.

外部結合リンクの[位置付]特性に設定する項目は、[リンク]コマンドより前に定義しなくてはなりません.

発生場所：

[プログラム]リポジトリ／[データビュー]エディタ／リンク

意味：

外部結合リンクによって定義されたカラムの[位置付]特性に、このリンクコマンドより後に定義された項目が設定されている場合に発生します。


UP0020:式が使用されていません.

ホーム > UP0020:式が使用されていません.

式が使用されていません.

発生場所：

[プログラム]リポジトリ

意味：

式で指定すべきパラメータに式が設定されていない場合に、このエラーが発生します。


WT0015:書式が格納サイズより大きくなっています.

ホーム > WT0015:書式が格納サイズより大きくなっています.

書式が格納サイズより大きくなっています.

発生場所：

[データ]リポジトリ／[カラム]テーブル／[サイズ]特性

意味：

[カラム特性]の[サイズ]特性に指定されたサイズより大きなデータ長で[書式]特性を指定した場合に発生します。


WP0260:加算更新は、非インタラクティブタスクではサポートしていません.

ホーム > WP0260:加算更新は、非インタラクティブタスクではサポートしていません.

加算更新は、非インタラクティブタスクではサポートしていません.

発生場所：

[プログラム]リポジトリ／［ロジック］エディタ

意味：

［インタラクティブ］特性がOFFに設定されたリッチクライアントタスクに、［加算］特性が「Yes」に設定された［項目更新］処理コマンドが定義されている場合にこのエラーが発生します。


WP0261:DB SQL Where句を遅延トランザクションタスクで使用すると、別のタスクから更新された同じデータソースの内容を表示しない場合があります.

ホーム > WP0261:DB SQL Where句を遅延トランザクションタスクで使用すると、別のタスクから更新された同じデータソースの内容を表示しない場合があります.

DB SQL を遅延トランザクションタスクで使用すると、別のタスクから更新された同じデータソースの内容を表示しない場合があります.

発生場所：

[プログラム]リポジトリ／［範囲／位置］／［SQL Where句］

意味：

［トランザクションモード］特性を遅延に設定したタスクで［DB SQL］を定義した場合にこの警告が表示されます。


ET0064:サイズが正しくありません.

ホーム > ET0064:サイズが正しくありません.

サイズが正しくありません.

発生場所：

[データ]リポジトリ／[カラム]テーブル

意味：

[書式]に設定されたサイズが大きすぎる場合に発生します。


EP0140:このタイプのフォームは、ページヘッダ／ページフッタとして指定できません.

ホーム > EP0140:このタイプのフォームは、ページヘッダ／ページフッタとして指定できません.

このタイプのフォームは、ページヘッダ／ページフッタとして指定できません.

発生場所：

[プログラム]リポジトリ／[入出力ファイル]テーブル／[入出力ファイル]特性

意味：

[ページヘッダ]や[ページフッタ]特性に[マージ形式]フォームが定義されている場合にこのエラーが発生します。


ET0078:XMLファイル名が長すぎます.

ホーム > ET0078:XMLファイル名が長すぎます.

XMLファイル名が長すぎます.

発生場所：

[データ]リポジトリ／[データソース名]カラム

意味：

[データソース名]カラムに設定されたファイル名が長すぎる(219桁以上)場合にこのエラーが発生します。


ET0077:XMLビューが定義されていません.

ホーム > ET0077:XMLビューが定義されていません.

XMLビューが定義されていません.

発生場所：

[データ]リポジトリ／[ビュー]ウィンドウ

意味：

XMLビューに要素が定義されていない合にこのエラーが発生します。コンテキストメニューの[ビューに含める]を選択して、XMLビューを定義してください。


EP0269:ブラウザフォームのサブフォームコントロールは、ブラウザタスクでのみ有効です.

ホーム > EP0269:ブラウザフォームのサブフォームコントロールは、ブラウザタスクでのみ有効です.

ブラウザフォームのサブフォームコントロールは、ブラウザタスクでのみ有効です.

発生場所：

[プログラム]リポジトリ／[フォーム]エディタ／[ブラウザ表示表示形式]フォーム／[サブフォーム]コントロール／[プログラム/タスク番号]特性

意味：

ブラウザクライアントタスクの表示フォームに定義された[サブフォーム]コントロールに、オンラインやリッチクライアントタスクが設定されている場合に、このエラーが発生します。


Waiting to open transaction

ホーム > Waiting to open transaction

トランザクションのオープン待ちです.

発生場所：

データ
他のユーザによってロックされたレコード／テーブルをアクセスした場合に発生します。


ClientNativeCodeExecute - 引数のタイプ

ホーム > ClientNativeCodeExecute - 引数のタイプ

ClientNativeCodeExecuteの引数のタイプ

1 | Char
2 | Short
4 | Int
F | Float
8 | Double
0 | Void
A | Null terminated string pointer
B | Boolean


Zオーダ表示

コントロールのZオーダをフォームに表示します。


EIB

ホーム > リファレンスガイド > Java連携 > EJBインタフェースビルダ

EJBインタフェースビルダ

注意：

EJBインタフェースビルダは、サポート対象外です。


MQMSG_ACKNOWLEDGMENT_FULL_REACH_QUEUE

メッセージがキューに渡ったか否かによって肯定または否定応答が入ります。メッセージの到達制限時間タイマの期限を超えた場合、否定応答が入ります。

数値は、5 です。


MQMSG_ACKNOWLEDGMENT_FULL_RECEIVE

受信までの到達制限時間タイマの期限を超える前に、メッセージがキューから取り出されるかどうかによって肯定または否定応答が入ります。

数値は、14 です。


MQMSG_ACKNOWLEDGMENT_NACK_REACH_QUEUE

メッセージがキューに到達できなかった場合、否定応答が入ります。メッセージの到達制限時間タイマの期限を超えた場合、否定応答が入ります。

数値は、4 です。


MQMSG_ACKNOWLEDGMENT_NACK_RECEIVE

受信までの到達制限時間タイマの期限を超える前に、メッセージをキューから取り出すことができない時、否定応答が入ります。

数値は、12 です。


MQMSG_ACKNOWLEDGMENT_NONE

（デフォルト）受信の成功、失敗にかかわらず肯定応答メッセージは入りません。

数値は、0 です。


MQMSG_DEADLETTER

ネガティブなソースのジャーナル化を要求します。メッセージの配信に失敗した場合は、該当する配信不能キューにメッセージを保存します。 これは、 MSMQ 3.0以上 で有効です。

数値は1 です。


MQMSG_JOURNAL

ポジティブなソースのジャーナル化を要求します。メッセージが次のコンピュータに正常に配信された場合は、メッセージのコピーがPCのコンピュータジャーナルに保存されます。しかし、配信に失敗した場合は、該当する配信不能キューにメッセージが保存されません。

数値は2 です。


MQMSG_JOURNAL | MQMSG_DEADLETTER

ポジティブなソースのジャーナル化とネガティブなソースのジャーナル化を要求します。メッセージの送信が成功した場合はコンピュータ ジャーナルにメッセージのコピーが保存され、失敗した場合は該当する配信不能キューに保存されます。これは、 MSMQ 3.0以上 で有効です。

数値は3 です。


MQMSG_JOURNAL_NONE

（デフォルト）ソースのジャーナル化は無効です。メッセージの送信が成功した場合でも、メッセージのコピーはコンピュータ ジャーナルに保存されず、失敗した場合も該当する配信不能キューに保存されません。

数値は0 です。


102 ERR CNCT REFUSED MRB

MRBとの接続が拒否されました。

MRB で使用されるホスト名またはポートが不適当な場合、このエラーが発生します。MRB の接続先のポートが適当かどうか、接続が正常かどうかを確認してください。


108 ERR_INVALID_REQ_HDL

リクエスタAPIが使用された場合、APIに不正なパラメータが渡された場合にこのエラーが発生します。


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

[コールリモート]処理コマンドで、プログラム名が指定されませんでした。


129 RQMRI ERR MODE REJECTED

トラブルシューティング > パーティショニングエラー

リクエストは、開発モード上のエンジンや他のアプリケーションを実行中のアプリケーションサーバに渡りました。アプリケーションサーバを、実行可能な状態に切り替えてください。


130 ERR APP OPEN FAIL

アプリケーションサーバがアプリケーションをオープンできませんでした。

指定されたアプリケーションファイルがローカルでオープンできるかどうかを確認してください。


134 RQMRI ERR LIMITED LICENSE PART

パーティショニング用のリクエストのみのライセンスです。


135 RQMRI ERR LIMITED LICENSE HTTP

インターネット用のリクエストのみのライセンスです。


137 ERR REQ REJECTED

アプリケーションサーバは、タイミング問題のためリクエストを実行することができませんでした。

Magicエンジンが実行モードから開発モードに切り替わったタイミングでリクエストが送られた場合、処理を実行することができずこのエラーが発生します。


139 ERR THREAD ABORTED

プログラムの実行中に異常終了した場合に発生します。


142 ERR BIND FAIL

サーバモジュール（MRBやアプリケーションサーバ）がローカルアドレスにバインドする処理に失敗しました。アドレスが使用中の可能性がありますl。


143 ERR CNCT REFUSED

クライアントモジュール間の接続が拒否されました。このような状況は、他のモジュール間でも発生する可能性があります。

例えば、リクエスタからMRB（またはアプリケーションサーバ）へ、アプリケーションサーバからMRBへの接続があります。


149 RQTCP ERR OUT OF SOCKETS

現在のモジュールは、オープンソケット（デフォルト：1000）の最大値に達しました。MGREQ.INI の[Handles]キーワードを指定して増やしてください。


157 RQMRG ERR AUTHENTICATION

RIAクライアントから送られた証明書は､ユーザが不明、パスワードが正しくなどの理由でサーバによって認証されませんでした。


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は、Windowsのサービルコントロールマネージャーにステータスを通知する間に処理に失敗しました。

MRBのログ（MGRB.INIの Logキーワードで指定します。）を有効にして問題を再現してみてください。


187 RQMRB ERR CNCT REFUSED REMOTE MRB

MRBは、MGRB.INIの[MRB_REMOTE_EXECUTABLES_LIST]セクションで定義されたリモートの実行モジュールを開始するために、リモートのMRBへの接続に失敗しました。

リモートMRBの設定（ホスト名/ポート番号）を確認してください。


198 ERR QUE LIMIT

キューの最大数に達しました。

MGRB.INIの [QueueMaxSize]パラメータの値を増やしてください。


200 ERR UNEXPECTED

予期しないエラーです。

他のエラーコードと一緒に表示される場合は、そのエラーの対応を行ってみてください。


201 ERR NOT INITIALIZED

コードパーティショニングエラーです。

TCP/IPのサービスがインストールされていない可能性があります。


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キーワードで指定します。）を有効にして問題を再現してみてください。


260 RQHTTP ERR UPLOAD TOO BIG

ブラウザからリクエスタにアップロードされたファイルのサイズが最大値を超えました。

MGREQ.INI の MaxUploadKB キーワードを使用して上限値を増やしてください。


キャストとUnicode

あるデータ型を別の型に変換することをキャストと呼ばれています。文字型からUnicode型へのキャストには、変換に使用されるコードページを定義する必要があります。Magic xpaの暗黙のキャストメカニズムは、Unicode変換のために使用されるコードページを指定することができます。

[動作環境]ダイアログの[外部コードページ]を使用してコードページを指定することができます。コードページ定義を変更しない限り、Magic xpaはデフォルトコードページを使用します。CodePage関数を使用して外部コードページを変更することもできます。関数を使用して外部コードページを設定した場合、関数が実行されたコンテキスト内でのみ有効です。

関連トピック：

暗黙的なキャスト

明示的なキャスト


キャストとUnicode 明示的

ホーム > キャストとUnicode 明示的

明示的なキャスト

Unicodeに対する変換処理を支援するため、Magic xpaには以下の関数が提供されています。

  • UnicodeFromANSI

  • UnicodeToANSI


キャストとUnicode 暗黙的

ホーム > キャストとUnicode 暗黙的

暗黙的なキャスト

暗黙的なキャストは、デフォルトのシステムコードページまたは[外部コードページ]の設定に基づいて、実行されます。

暗黙的なキャストは、タスク実行中に以下の処理で発生します。

  • パラメータを渡す場合

  • コールプログラム

  • コールタスク

  • イベントロジック

  • コールリモート

  • コールUDP

  • コールCOM

  • タスクの戻り値

  • 以下の操作による項目の更新

  • [項目更新]処理コマンド

  • [代入]特性

  • [エラー]処理コマンド

  • データコントロール（リンクされたカラムとデータカラムの型が合っていない場合、暗黙のキャストが実行されます。）

  • 範囲

  • 位置付け