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上のコントロール …… 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 と同じようにサポートされます。

コントロール特性

[.NET]コントロール

Magic  xpaのデータ項目を[.NET]コントロールの特性にリンクさせることができます。[.NETのバインディング宣言]特性を参照してください。(サポートバージョン:2.2)

[.NET]コントロールの[データ]特性は、コントロールに関連したデータ項目または式を保持するようになりました。以前のバージョンでは、[データ]特性は、.NETオブジェクトの参照特性として使用されていました。(サポートバージョン:2.2)

.NETモデルとコントロールには、以下の特性が追加されました:選択項目リスト、選択表示リスト、ソーステーブル、表示項目、リンク項目、インデックス、範囲。(サポートバージョン:2.2)

[チェックボックス]コントロール

[チェックボックス]コントロールの[複数行]特性は、[表示]特性が「ボタン」の場合はサポートされません。

[コンボボックス]コントロール

コンボボックスの[高さ]特性は、変更できません。コンボボックスのフォントサイズに依存するようになりました。

[エディット]コントロール

以下の特性は、[エディット]コントロールでサポートされません。

[水平スクロール]特性には、「ワードラップ」の値が設定されます。

[エディット]コントロールに割り当てられた項目をイベントによって更新した場合、更新値はコントロールを抜ける前に表示されます。

数値の計算設定(コントロールでの'2+'のような記述)はサポートされません。

[色]特性に設定された値がパーキングしている時に表示されます。

[グループ]コントロール

テキストがコントロールに設定されていなくても、グループの上辺線の位置はコントロールのフォントサイズによって設定されます。[グループ]コントロールの最上位に線を表示させたい場合は、サイズが'1'のフォントを使用する必要があります。

[イメージ]コントロール

以下の特性は、[イメージ]コントロールではサポートされません。

.TGAのイメージフォーマットはサポートされません。

[イメージ]コントロールの[スタイル]特性のデフォルト値は、「境界なし」になります。

[プッシュボタン]コントロール

ハイパーテキスト・ボタンは、デフォルト色を内部の色テーブルではなくCLR(Common Language Runtime)から取得します。

オンラインタスクでの[プッシュボタン]コントロールの[ボタンスタイル]特性には、「イメージ上テキスト」のオプションが無くなりました。これは、リッチクライアントと同じように動作します。ボタンに表示するテキストは、[書式]特性で定義され、ボタンイメージがデータ項目や(データ項目が定義されていない場合)[デフォルトイメージ]特性によって定義されます。

変換ユーティリティは、「イメージ上テキスト」に設定されたコントロールをイメージボタンに変換します。

[ラジオボタン]コントロール

[表示]特性が「ボタン」に設定された場合、[ラジオボタン]コントロールの[複数行]特性はサポートされません。

[RTFエディット]コントロール

[RTFエディット]コントロールには、デフォルトのコンテキストメニューがありません。エンドユーザがRTFの色やフォントを変更できるようにさせたい場合は、メニューにMagic xpaの内部イベント(例えば、「色の変更」や「フォントの変更」、「左揃え」、「右揃え」)を定義し、このメニューをコントロールの[コンテキストメニュー]特性に割り当てることで実現できます。

[RTFエディット]コントロールは、透過の背景色をサポートしません。

[RTFテキスト]コントロール

[RTFテキスト]コントロールは、透過の背景色をサポートしません。

[スタティック]コントロール

オンラインタスクでの[テキスト]コントロールの名前は、[ラベル]コントロールに変更されました。

以下の特性は、[スタティック]コントロールではサポートされません:

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

[非表示での再表示]特性がオンラインタスクでも追加されました。

この特性は、Magic uniPaaS Ver1.9 と同じ方法で[サブフォーム]コントロール内で実行するタスクを読み込み、再表示することができます。

「No」が定義されているネストされたサブフォームの場合、親サブフォームが実行時に「True」と評価されると、ネストされたサブフォームも「True」として動作します。

サブフォームがコンテナコントロールに配置され、[可視]特性も定義された場合、Magic uniPaaS V1Plusで[可視]特性と同じ式が定義されている場合と同じように動作します。

さらに、このバージョンまでは、[サブフォーム]コントロールをクリックすると、最初のコントロールの[コントロール前]と[コントロール後]が常に実行されていました。この動作は修正され、クリックされたコントロールの[コントロール前]だけが実行されるようになりました。

サブフォームの[可視]特性に式が設定されている場合、サブフォーム・タスクにフォーカスがある場合、この式は"False"(サブフォームを非表示にする)として動作しません。この動作を有効にするには、CtrlGoto関数を使用してフォーカスを親タスクの方へ移し、親タスクで処理され、サブフォームの可視を制御する式を変更するイベントを[ウェイト]特性が「No」で発行する必要があります。

[サブフォーム]コントロール上で実行しているオンラインタスクが実行できない場合、そのタスクは終了しサブフォームは非表示となりますがホストタスクは実行状態で継続します(以前は、ホストタスクも終了していました)。例えば、[空のデータビュー許可]特性が「No」に設定され、[登録]特性が「No」に設定されている場合、タスクは終了しサブフォームは閉じますが、親タスクはそのまま実行します。(サポートバージョン:2.4)

[タブ]コントロール

[タブラベル位置]特性の左右のオプションは削除されました。

タブにデフォルト値が定義されていない場合、最初のタブが選択され表示されます。

[テーブル]コントロール

スタイル、ウィンドウ内テーブル、最終区切線、幅固定の各特性はサポートされません。

[テーブル]コントロールで[リストボックス]コントロールを配置することはできません。

[カラムのマーキング ]特性は、削除されました。

テーブルカラムの区切り線をダブルクリックしてもカラムの大きさは変更されなくなりました。

テーブル内でパークしている際、マウスのスクロールのみが可能です。

[ツリー]コントロール

[ツリー]コントロールは、マルチマーキング、ドラッグ&ドロップまたは透過の背景色をサポートしません。

フォーム特性

Magic uniPaaSの分割フォームが定義されたタスクを移行すると、フレームセットフォームが追加されます。このフォームは、フレームの1つで、既存のフォームへの参照定義が含まれています。

移行後に、以下の処理を行う必要があります。

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は、動作しません。 

関数

以下の関数は、サポートされなくなりました:

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)で、変数項目を更新します。

  1. 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で提供されます。このコンポーネントは、ソースコードも提供されるため、任意に変更することができます。

範囲と位置付を実行している間、式エディタを開くことができません。 

ステータスバー

ステータスバーには、ユーザ名が表示されなくなりました。

その他動作の違い

[コントロール]特性の[選択プログラム]特性から呼び出されたタスクは、必ずモーダルウィンドウで表示されます。

画面やビューの再表示のタイミングが変更されたため、以下ような動作で値が変更されない場合があります。

環境設定

以下の環境設定は、サポートされなくなりました。

特殊設定

[MAGIC_SPECIALS]セクションの以下の特殊設定は、サポートされなくなりました。

[dbMAGIC_ENV]セクションの以下の特殊設定は、サポートされなくなりました。

ユーティリティ

以下のユーティリティはサポートされなくなりました。